{"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]}