{"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\\FormDesigner.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\src\\components\\form\\FormDesigner.vue","mtime":1675071991960},{"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\r\nimport FormNavigator from \"@/components/form/FormNavigator.vue\";\r\nimport FieldPanel from \"@/components/form/FieldPanel.vue\";\r\nimport WidgetPanel from \"@/components/form/WidgetPanel.vue\";\r\nimport PropertyPanel from \"@/components/form/PropertyPanel.vue\";\r\nimport request from \"@/request.js\";\r\n\r\nexport default {\r\n props: [\"visibleDialog\", \"formId\", \"formDefId\", \"addBpmForm\", \"formType\"],\r\n components: { FormNavigator, FieldPanel, WidgetPanel, PropertyPanel },\r\n data() {\r\n return {\r\n asideShow:true,\r\n rightAsideShow:true,\r\n widgetForm: {\r\n list: [],\r\n config: {\r\n labelWidth: 100,\r\n labelPosition: \"right\",\r\n size: \"small\",\r\n },\r\n },\r\n selectWidgetList: [],\r\n formData: this.addBpmForm,\r\n boDefData: null,\r\n widgetFormSelect: { options: { validateType: \"\" } },\r\n mainBoFields: [],\r\n subTables: [],\r\n sunTablesMap: {},\r\n boDefIds: \"\",\r\n copyFormList:[],\r\n };\r\n },\r\n watch: {\r\n visibleDialog: {\r\n handler: function (newVal) {\r\n if (newVal) {\r\n this.initData(this.formId, this.addBpmForm.bos);\r\n }\r\n },\r\n immediate: true,\r\n },\r\n },\r\n mounted() {\r\n this.monitor();\r\n },\r\n methods: {\r\n addTocopyFormList(form){\r\n if(this.copyFormList.length>0){\r\n let isIn = false;\r\n this.copyFormList.forEach(item =>{\r\n if(item.id == form.id){\r\n isIn = true;\r\n }\r\n });\r\n if(!isIn){\r\n this.copyFormList.push(form);\r\n }\r\n }else{\r\n this.copyFormList.push(form);\r\n }\r\n },\r\n monitor() {\r\n let that = this;\r\n document.onkeydown = function (e) {\r\n //按下删除提交\r\n let key = window.event.keyCode;\r\n //事件中keycode=18为删除事件 左Alt\r\n if (key == 18 && e.code== \"AltRight\") {\r\n that.handleWidgetDelete();\r\n }\r\n };\r\n },\r\n //删除表单字段控件\r\n deleteWidget(list) {\r\n for (let i = list.length - 1; i >= 0; i--) {\r\n if (list[i].key && !list[i].columns && !list[i].rows && !list[i].list) {\r\n //没使用布局字段\r\n if (this.selectWidgetList.indexOf(list[i].key) != -1) {\r\n list.splice(i, 1);\r\n }\r\n } else if (list[i].columns && list[i].columns.length > 0) {\r\n //栅格,tab页签,折叠面板\r\n for (let j = list[i].columns.length - 1; j >= 0; j--) {\r\n this.deleteWidget(list[i].columns[j].list);\r\n }\r\n } else if (list[i].rows && list[i].rows.length > 0) {\r\n //表格布局\r\n for (let k = list[i].rows.length - 1; k >= 0; k--) {\r\n if (list[i].rows[k].cols.length > 0) {\r\n for (let m = list[i].rows[k].cols.length - 1; m >= 0; m--) {\r\n this.deleteWidget(list[i].rows[k].cols[m].list);\r\n }\r\n }\r\n }\r\n } else if (list[i].list && list[i].list.length > 0) {\r\n //子表,孙表\r\n this.deleteWidget(list[i].list);\r\n }\r\n }\r\n },\r\n handleWidgetDelete() {\r\n let list = this.widgetForm.list;\r\n if (list.length > 0) {\r\n this.deleteWidget(list);\r\n this.selectWidgetList.empty();\r\n }\r\n },\r\n /**\r\n * 保存本地配置\r\n */\r\n localSave() {\r\n let localSaveData = {};\r\n localSaveData.widgetForm = this.widgetForm;\r\n localSaveData.formData = this.formData;\r\n localSaveData.boDefData = this.boDefData;\r\n localSaveData.widgetFormSelect = this.widgetFormSelect;\r\n localSaveData.mainBoFields = this.mainBoFields;\r\n localSaveData.subTables = this.subTables;\r\n localSaveData.sunTablesMap = this.sunTablesMap;\r\n\r\n var jsonStr = JSON.stringify(localSaveData);\r\n var blob = new Blob([jsonStr], { type: \"application/json\" });\r\n var saveAs = window.saveAs;\r\n var name = this.formData.name || this.formData.key || \"表单设计\";\r\n saveAs(blob, name + new Date().getTime() + \".json\");\r\n },\r\n /**\r\n * 加载本地存储\r\n */\r\n loadLocal(localSaveData) {\r\n let newVersion = this.formData.rev;\r\n this.widgetForm = localSaveData.widgetForm;\r\n this.formData = localSaveData.formData;\r\n this.formData.rev = newVersion;\r\n this.boDefData = localSaveData.boDefData;\r\n this.widgetFormSelect = localSaveData.widgetFormSelect;\r\n this.mainBoFields = localSaveData.mainBoFields;\r\n this.subTables = localSaveData.subTables;\r\n this.sunTablesMap = localSaveData.sunTablesMap;\r\n console.log(this.widgetFormSelect)\r\n },\r\n saveEnd() {\r\n this.$refs.FormNavigator.saveEnd();\r\n },\r\n saveValidate() {\r\n this.$refs.propertyPanel.saveValidate();\r\n },\r\n close(value) {\r\n if (value) {\r\n this.$emit(\"update:formDefId\", value.formData.defId);\r\n this.$emit(\"update:formId\", value.formData.id);\r\n this.formData = value.formData;\r\n this.formData.rev = value.rev;\r\n } else {\r\n this.$emit(\"update:visibleDialog\", false);\r\n }\r\n },\r\n initData(formId, bos) {\r\n this.copyFormList = [];\r\n if (this.formDefId) {\r\n request\r\n .get(\"${form}/form/formDef/v1/get?formDefId=\" + this.formDefId)\r\n .then((response) => {\r\n this.widgetForm = JSON.parse(response.data.value.expand);\r\n });\r\n } else if (\r\n this.formData.templateConf &&\r\n this.formData.templateConf.boDefId\r\n ) {\r\n request\r\n .post(\r\n \"${form}/form/form/v1/generateExpand\",\r\n this.formData.templateConf\r\n )\r\n .then((response) => {\r\n this.widgetForm = JSON.parse(response.data.value);\r\n });\r\n }\r\n\r\n if (bos && bos.length > 0) {\r\n const boDefIds = bos.extractByKey(\"id\").join(\",\");\r\n this.getBoDefData(boDefIds);\r\n this.widgetForm.boDefList = bos;\r\n this.boDefIds = boDefIds;\r\n return;\r\n }\r\n\r\n if (formId) {\r\n request\r\n .get(\"${form}/form/form/v1/formDesign?formId=\" + formId)\r\n .then((response) => {\r\n this.formData = response.data;\r\n this.formData.id = formId;\r\n this.boDefIds = JSON.parse(this.formData.bos)\r\n .extractByKey(\"id\")\r\n .join(\",\");\r\n this.getBoDefData(this.boDefIds);\r\n });\r\n }\r\n },\r\n getBoDefData(boDefId) {\r\n request.post(\"${form}/bo/def/v1/getBOTree\", boDefId).then((response) => {\r\n this.boDefData = response.data;\r\n this.getMainBoFields();\r\n });\r\n },\r\n getMainBoFields() {\r\n this.mainBoFields = [];\r\n // 多个BO 一个Bo 对应一个主表\r\n this.boDefData.children.forEach((element) => {\r\n let boData = { ...element };\r\n let boSubTables = boData.children.filter(\r\n (field) => field.nodeType == \"sub\"\r\n );\r\n\r\n boSubTables.forEach((subTable) => {\r\n //收集孙实体\r\n const sunTables = subTable.children.filter(\r\n (field) => field.nodeType == \"sub\"\r\n );\r\n if (sunTables && sunTables.length > 0) {\r\n this.sunTablesMap[subTable.name] = sunTables;\r\n }\r\n\r\n let sunTable1 = { ...subTable };\r\n sunTable1.children = subTable.children.filter(\r\n (field) => field.status != \"hide\" && field.nodeType != \"sub\"\r\n );\r\n this.subTables.push(sunTable1);\r\n });\r\n\r\n // 删除子表字段\r\n boData.children = boData.children.filter((field) => {\r\n return field.nodeType != \"sub\" && field.status != \"hide\";\r\n });\r\n\r\n this.mainBoFields.push(boData);\r\n });\r\n },\r\n },\r\n};\r\n",null]}