{"remainingRequest":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\xq-web-bpm\\src\\components\\form\\WidgetPanel.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\src\\components\\form\\WidgetPanel.vue","mtime":1675071992038},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":["//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport Draggable from \"vuedraggable\";\r\nimport WidgetDivLayout from '@/components/form/WidgetDivLayout.vue'\r\nimport WidgetFormItem from \"@/components/form/WidgetFormItem.vue\";\r\nimport WidgetGridLayout from \"@/components/form/WidgetGridLayout.vue\";\r\nimport WidgetTableLayout from \"@/components/form/WidgetTableLayout.vue\";\r\nimport WidgetPaginationLayout from \"@/components/form/WidgetPaginationLayout.vue\";\r\nimport WidgetCollapseLayout from \"@/components/form/WidgetCollapseLayout.vue\";\r\nimport WidgetSubtableLayout from \"@/components/form/WidgetSubtableLayout.vue\";\r\nimport WidgetSubdivLayout from \"@/components/form/WidgetSubDivLayout.vue\";\r\nimport WidgetPageStepsLayout from \"@/components/form/WidgetPageStepsLayout.vue\";\r\nimport WidgetPageButtonLayout from \"@/components/form/WidgetPageButtonLayout.vue\";\r\nimport WidgetDataViewLayout from \"@/components/form/WidgetDataViewLayout.vue\";\r\nimport WidgetHottableLayout from \"@/components/form/WidgetHottableLayout.vue\";\r\nimport WidgetMainTableLayout from \"@/components/form/WidgetMainTableLayout.vue\";\r\nimport deepmerge from \"deepmerge\";\r\nexport default {\r\n name: \"widget-panel\",\r\n components: {\r\n Draggable,\r\n WidgetDivLayout,\r\n WidgetGridLayout,\r\n WidgetTableLayout,\r\n WidgetPaginationLayout,\r\n WidgetCollapseLayout,\r\n WidgetSubtableLayout,\r\n WidgetSubdivLayout,\r\n WidgetFormItem,\r\n WidgetPageStepsLayout,\r\n WidgetPageButtonLayout,\r\n WidgetDataViewLayout,\r\n WidgetHottableLayout,\r\n WidgetMainTableLayout,\r\n },\r\n props: [\"data\", \"select\", \"selectWidgetList\"],\r\n data() {\r\n return {\r\n selectWidget: this.select,\r\n };\r\n },\r\n mounted() {\r\n document.body.ondrop = function (event) {\r\n let isFirefox = navigator.userAgent.toLowerCase().indexOf(\"firefox\") > -1;\r\n if (isFirefox) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n };\r\n },\r\n methods: {\r\n handleMoveStart: function (evt) {\r\n window.panelList =this.data.list;\r\n // 新增控件时 将控件属性切断联系\r\n evt.item._underlying_vm_ = deepmerge({}, evt.item._underlying_vm_, {\r\n clone: true,\r\n });\r\n const key =\r\n Date.parse(new Date()) + \"_\" + Math.ceil(Math.random() * 99999);\r\n evt.item._underlying_vm_.key = key;\r\n },\r\n handleMoveEnd({ newIndex, oldIndex }) {\r\n console.log(\"index\", newIndex, oldIndex);\r\n },\r\n handleSelectWidget(index) {\r\n console.log(index, \"#####\");\r\n this.selectWidget = this.data.list[index];\r\n },\r\n handleWidgetAdd(evt) {\r\n const newIndex = evt.newIndex;\r\n const item = evt.item;\r\n if (item.innerText == \"孙表\" || item.innerText == \"div孙表\") {\r\n this.$message.error(\"孙表只能存在子表中\");\r\n this.data.list.splice(newIndex, 1);\r\n return false;\r\n }\r\n //拖拽的控件是高德地图控件时,判断是否已经存在高德地图控件\r\n const vueInst = this;\r\n //拖字段属性时防止子表和孙表字段拖入非对应布局中\r\n if (\r\n vueInst.data.list[newIndex] &&\r\n vueInst.data.list[newIndex].fieldPath\r\n ) {\r\n if (vueInst.data.list[newIndex].fieldPath.indexOf(\"item.\") == 0) {\r\n this.$message.error(\"子表字段只能存在子表中\");\r\n this.data.list.splice(newIndex, 1);\r\n return false;\r\n } else if (\r\n vueInst.data.list[newIndex].fieldPath.split(\".\").length == 4\r\n ) {\r\n this.$message.error(\"孙表字段只能存在子表中\");\r\n this.data.list.splice(newIndex, 1);\r\n return false;\r\n }\r\n }\r\n let amapNum = 0;\r\n for (let i = vueInst.data.list.length - 1; i >= 0; i--) {\r\n if (vueInst.data.list[i].ctrlType == \"amap\") {\r\n amapNum = amapNum + 1;\r\n }\r\n }\r\n //amapNum为1代表只存在一个高德地图控件,大于1则拖拽的控件也是高德地图控件\r\n if (amapNum > 1) {\r\n for (let j = vueInst.data.list.length - 1; j >= 0; j--) {\r\n if (\r\n vueInst.data.list[j].ctrlType == \"amap\" &&\r\n !vueInst.data.list[j].options.addressName\r\n ) {\r\n this.$message.error(\"已存在高德地图控件\");\r\n vueInst.data.list.splice(j, 1);\r\n return;\r\n }\r\n }\r\n }\r\n const to = evt.to;\r\n console.log(to);\r\n this.selectWidget = this.data.list[newIndex];\r\n //如果启用了分页布局,就不能在开头与结尾添加东西了\r\n if (this.data.pageSize && this.data.pageSize >= 2) {\r\n if (evt.newIndex == 0) {\r\n let dataEn = this.data.list[0];\r\n this.data.list.splice(0, 1);\r\n this.data.list.splice(1, 0, dataEn);\r\n } else if (evt.newIndex == this.data.list.length - 1) {\r\n let dataEn = this.data.list[evt.newIndex];\r\n this.data.list.splice(evt.newIndex, 1);\r\n this.data.list.splice(this.data.list.length - 1, 0, dataEn);\r\n }\r\n }\r\n console.log(\"add\", evt);\r\n console.log(\"end\", evt);\r\n console.log(\"data\", this.data);\r\n //如果是分页布局.第一次拖入,会额外添加一个步骤条的头,与一个页尾\r\n if (this.selectWidget.ctrlType == \"page\") {\r\n if (\r\n this.data.pageSize &&\r\n (this.data.pageSize == 2 || this.data.pageSize > 2)\r\n ) {\r\n this.data.pageSize += 1;\r\n this.data.list[0].pageSize = this.data.pageSize;\r\n this.data.list[0].pageStepsArr.push({\r\n name: \"分页\" + (this.data.list[0].pageStepsArr.length + 1),\r\n });\r\n } else {\r\n this.data.pageSize = 2;\r\n let pageSteps = {\r\n ctrlType: \"pageSteps\",\r\n desc: \"分页步骤条\",\r\n key: \"1581473408000_37810\",\r\n isShow: true,\r\n isLayout: true,\r\n columns: [\r\n {\r\n list: [],\r\n },\r\n ],\r\n pageSize: 2,\r\n pageStepsArr: [{ name: \"分页1\" }, { name: \"分页2\" }],\r\n };\r\n\r\n this.data.list.splice(0, 0, pageSteps);\r\n let pageButton = {\r\n ctrlType: \"pageButton\",\r\n desc: \"分页步骤按钮\",\r\n key: \"1581473408000_37811\",\r\n isLayout: true,\r\n columns: [\r\n {\r\n list: [],\r\n },\r\n ],\r\n nextButton: {\r\n name: \"下一步\",\r\n icon: \"\",\r\n color: \"#409eff\",\r\n preScript: \"\",\r\n rearScript: \"\",\r\n },\r\n backButton: {\r\n name: \"上一步\",\r\n icon: \"\",\r\n color: \"#67C23A\",\r\n preScript: \"\",\r\n rearScript: \"\",\r\n },\r\n };\r\n this.data.list.push(pageButton);\r\n }\r\n }\r\n },\r\n handleChange(arr) {\r\n this.data.list.remove(this.data.list.length - 1);\r\n },\r\n },\r\n watch: {\r\n select(val) {\r\n this.selectWidget = val;\r\n },\r\n selectWidget: {\r\n handler(val) {\r\n this.$emit(\"update:select\", val);\r\n },\r\n deep: true,\r\n },\r\n },\r\n};\r\n",null]}