{"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\\WidgetMainTableLayout.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\src\\components\\form\\WidgetMainTableLayout.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\r\nimport Draggable from \"vuedraggable\";\r\nimport WidgetFormItem from \"@/components/form/WidgetFormItem.vue\";\r\nimport controlsApi from \"@/api/controlsConfig.js\";\r\nimport deepmerge from \"deepmerge\";\r\nexport default {\r\n  name: \"widget-main-table-layout\",\r\n  components: { Draggable, WidgetFormItem },\r\n  props: [\"element\", \"select\", \"index\", \"data\",\"selectWidgetList\"],\r\n  data() {\r\n    return {\r\n      selectWidget: this.select,\r\n    };\r\n  },\r\n  methods: {\r\n    handleMoveStart: function(evt) {\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    getTdWidth(cols,col){\r\n      let colspans = 0;\r\n      cols.forEach(item =>{\r\n        colspans += item.colspan;\r\n      })\r\n      return (100/colspans)*col.colspan  + '%';\r\n    },\r\n    handleSelectWidget(index) {\r\n      this.selectWidget = this.data.list[index];\r\n    },\r\n    handleMoveEnd({ newIndex, oldIndex }) {\r\n      console.log(\"index\", newIndex, oldIndex);\r\n    },\r\n    handleWidgetColAdd($event, row, rowIndex, colIndex) {\r\n      const newIndex = $event.newIndex;\r\n      const oldIndex = $event.oldIndex;\r\n      const item = $event.item;\r\n      if(item.innerText==\"高德地图\"){\r\n        row.rows[rowIndex]['cols'][colIndex].list.splice(newIndex, 1);\r\n        this.$message.warning(\"表格布局中不允许拖入高德地图\");\r\n        return false;\r\n      }\r\n      //表格布局一个td中只允许拖入一个控件\r\n      if(row.rows[rowIndex]['cols'][colIndex].list &&  row.rows[rowIndex]['cols'][colIndex].list.length>1){\r\n        row.rows[rowIndex]['cols'][colIndex].list.splice(newIndex, 1);\r\n        this.$message.warning(\"表格布局中每个单元格最多只允许拖入一个控件。\");\r\n        return false;\r\n      }\r\n      // 防止布局元素的嵌套拖拽\r\n      if (item.className.indexOf(\"data-grid\") >= 0 || item.innerText==\"分页符\") {\r\n        // 如果是列表中拖拽的元素需要还原到原来位置\r\n        item.tagName === \"DIV\" &&\r\n          this.data.list.splice(\r\n            oldIndex,\r\n            0,\r\n            row.rows[rowIndex]['cols'][colIndex].list[newIndex]\r\n          );\r\n        row.rows[rowIndex]['cols'][colIndex].list.splice(newIndex, 1);\r\n        if(item.innerText==\"分页符\"){\r\n          this.$message.warning(\"表格布局中不允许再拖入分页布局\");\r\n        }\r\n        return false;\r\n      }\r\n      controlsApi.handleLayoutComponents(this, row, row.rows[rowIndex]['cols'][colIndex].list, newIndex);\r\n      if(row.rows[rowIndex].cols[colIndex].list[newIndex]){\r\n        this.selectWidget = row.rows[rowIndex].cols[colIndex].list[newIndex];\r\n        this.selectWidget.parentNodeType = row.parentNodeType;\r\n        this.selectWidget.boSubEntity = row.boSubEntity;\r\n      }\r\n    },\r\n    handleWidgetDelete(index) {\r\n      if (this.data.list.length - 1 === index) {\r\n        if (index === 0) {\r\n          this.selectWidget = { options: { validateType: \"\" } };\r\n        } else {\r\n          this.selectWidget = this.data.list[index - 1];\r\n        }\r\n      } else {\r\n        this.selectWidget = this.data.list[index + 1];\r\n      }\r\n\r\n      this.$nextTick(() => {\r\n        this.data.list.splice(index, 1);\r\n      });\r\n    },\r\n    handleWidgetClone(index) {\r\n      let cloneData = deepmerge({}, this.data.list[index], { clone: true });\r\n\r\n      cloneData.key =\r\n              Date.parse(new Date()) + \"_\" + Math.ceil(Math.random() * 99999);\r\n      cloneData.columns.forEach(v =>{\r\n        v.list = [];\r\n      })\r\n      this.data.list.splice(index + 1, 0, cloneData);\r\n\r\n      this.$nextTick(() => {\r\n        this.selectWidget = this.data.list[index + 1];\r\n      });\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]}