{"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\\WidgetHottableLayout.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\src\\components\\form\\WidgetHottableLayout.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\r\nimport { HotTable } from \"@handsontable/vue\";\r\nimport \"handsontable/dist/handsontable.full.css\";\r\nimport Handsontable from \"handsontable\";\r\nimport \"handsontable/languages/zh-CN\";\r\nimport controlsApi from \"@/api/controlsConfig.js\";\r\n\r\nexport default {\r\n name: \"widget-hottable-layout\",\r\n components: {HotTable},\r\n props: [\"element\", \"select\", \"index\", \"data\"],\r\n data() {\r\n return {\r\n selectWidget: this.select,\r\n root: 'designer-hot',\r\n hotSettings: {\r\n data: [ //数据可以是二维数组,也可以是数组对象\r\n {xm:'李四',xb:'男',account:'lisi', nl:23},\r\n {xm:'张三',xb:'男',account:'zhangsan', nl:22},\r\n ],\r\n // colHeaders: true,\r\n startRows: 11,//行列范围\r\n startCols: 6,\r\n minRows: 1, //最小行列\r\n minCols: 0,\r\n maxRows: 200, //最大行列\r\n maxCols: 200,\r\n rowHeights: 25,\r\n rowHeaders: true,//行表头,可以使布尔值(行序号),可以使字符串(左侧行表头相同显示内容,可以解析html),也可以是数组(左侧行表头单独显示内容)。\r\n colHeaders: [ '姓名','性别', '账号','年龄'],//自定义列表头or 布尔值\r\n minSpareCols: 0, //列留白\r\n minSpareRows: 0,//行留白\r\n // currentRowClassName: 'currentRow', //为选中行添加类名,可以更改样式\r\n // currentColClassName: 'currentCol',//为选中列添加类名\r\n autoWrapRow: true, //自动换行\r\n contextMenu:{\r\n items:{\r\n \"row_above\": {\r\n name:'上方插入一行'\r\n },\r\n \"row_below\": {\r\n name:'下方插入一行'\r\n },\r\n \"remove_row\": {\r\n name: '删除行',\r\n },\r\n }\r\n },\r\n licenseKey: \"non-commercial-and-evaluation\",\r\n manualColumnFreeze: true, //手动固定列 ?\r\n manualColumnMove: true, //手动移动列\r\n manualRowMove: true, //手动移动行\r\n manualColumnResize: true,//手工更改列距\r\n manualRowResize: true,//手动更改行距\r\n comments: true, //添加注释 \r\n customBorders:[],//添加边框\r\n columnSorting: true,//排序\r\n stretchH: 'all',//根据宽度横向扩展,last:只扩展最后一列,none:默认不扩展\r\n fillHandle: true, //选中拖拽复制 possible values: true, false, \"horizontal\", \"vertical\"\r\n fixedColumnsLeft: 2,//固定左边列数\r\n fixedRowsTop: 2,//固定上边列数\r\n beforeRemoveRow: this.beforeRemoveRowMe,\r\n afterCreateRow: this.afterCreateRow,\r\n afterChange: this.afterChangeMe,\r\n mergeCells: [ //合并\r\n // {row: 1, col: 1, rowspan: 3, colspan: 3}, //指定合并,从(1,1)开始行3列3合并成一格\r\n // {row: 3, col: 4, rowspan: 2, colspan: 2}\r\n ],\r\n columns: [\r\n {\r\n data:'xm',\r\n type: 'text', \r\n },\r\n {\r\n data:'xb',\r\n type: 'text', \r\n },\r\n {\r\n data:'account',\r\n type: 'text', \r\n },\r\n {\r\n data:'nl',\r\n type: 'numeric', \r\n },\r\n ],\r\n }\r\n };\r\n },\r\n methods: {\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, element) {\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 this.$message.error(\"子表不允许存在二维码\");\r\n element.list.splice(newIndex, 1);\r\n return false;\r\n }\r\n if(item.innerText==\"里程碑\"){\r\n this.$message.error(\"子表不允许存在里程碑\");\r\n element.list.splice(newIndex, 1);\r\n return false;\r\n }\r\n if(item.innerText==\"高德地图\"){\r\n this.$message.error(\"子表不允许存在高德地图\");\r\n element.list.splice(newIndex, 1);\r\n return false;\r\n }\r\n if(item.innerText==\"相关流程\"){\r\n this.$message.error(\"子表不允许存在相关流程\");\r\n element.list.splice(newIndex, 1);\r\n return false;\r\n }\r\n if (!controlsApi.handleLayoutComponents(this)) {\r\n return;\r\n }\r\n if(!element.options.boSubEntity){\r\n this.$message.error(\"请先绑定子表\");\r\n return false;\r\n }\r\n // 防止布局元素的嵌套拖拽\r\n if (item.isLayout) {\r\n element.list.list.splice(newIndex, 1);\r\n return false;\r\n }\r\n this.selectWidget = element.list[newIndex];\r\n this.selectWidget.parentNodeType = \"hot\";\r\n this.selectWidget.boSubEntity = element.options.boSubEntity;\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 beforeRemoveRowMe: function (changes, source) { // 数据改变时触发此方法\r\n this.hotSettings.dataList.splice(changes, source)\r\n },\r\n // 添加行\r\n afterCreateRowMe: function (changes) {\r\n this.hotSettings.dataList.splice(changes, 0, {\r\n region: '',\r\n destination: '',\r\n firstWeight: '',\r\n firstWeightPrice: '',\r\n riseWeight: '',\r\n riseWeightPrice: ''\r\n })\r\n },\r\n // 新增行时,动态改变值\r\n afterChangeMe: function (changes) {\r\n if (changes) {\r\n changes.forEach(([row, prop, oldValue, newValue]) => {\r\n console.log(oldValue)\r\n try {\r\n this.hotSettings.dataList[row][prop] = newValue;\r\n } catch (error) {}\r\n })\r\n }\r\n },\r\n // 查看-excel不可编辑\r\n excalEdit() {\r\n this.hotSettings.columns.forEach(par => {\r\n par.readOnly = true\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,oldVal) {\r\n this.$emit(\"update:select\", val);\r\n },\r\n deep: true\r\n },\r\n 'selectWidget.options.colHeadersRelations': {\r\n handler(val,oldVal) {\r\n if(val && val.length>0){\r\n if(oldVal !== val){\r\n let headers = [];\r\n let columns = [];\r\n let dataList = [[]];\r\n if(val.length>0){\r\n for (let index = 0; index < val.length; index++) {\r\n let relation = val[index];\r\n headers.push(relation.desc);\r\n columns.push(relation.column);\r\n }\r\n }\r\n this.hotSettings.colHeaders = headers;\r\n this.hotSettings.columns = columns;\r\n this.hotSettings.data = dataList;\r\n if(this.selectWidget.options.initFillbackData && this.selectWidget.options.initFillbackData.length>0){\r\n this.hotSettings.data = JSON.parse(JSON.stringify(this.selectWidget.options.initFillbackData));\r\n }\r\n }\r\n }\r\n },\r\n deep: true\r\n },\r\n 'selectWidget.options.initFillbackData': {\r\n handler(val,oldVal) {\r\n if(oldVal !== val){\r\n if(val){\r\n this.hotSettings.data = JSON.parse(JSON.stringify(val));\r\n }else{\r\n this.hotSettings.data = [[]];\r\n }\r\n }\r\n },\r\n deep: true\r\n },\r\n }\r\n};\r\n",null]}