{"remainingRequest":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\xq-web-bpm\\src\\views\\form\\BusinessObjAttr.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\src\\views\\form\\BusinessObjAttr.vue","mtime":1675071992881},{"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//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\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 form from \"@/api/form.js\";\r\nimport utils from \"@/hotent-ui-util.js\";\r\n\r\nexport default {\r\n name: \"BusinessObjAttr\",\r\n props: [\r\n \"openGrandSonAttr\",\r\n \"attrTableData\",\r\n \"formData\",\r\n \"entIndex\",\r\n \"grandSonIndex\",\r\n ],\r\n watch: {\r\n openGrandSonAttr: function (v) {\r\n this.isOpenGrandSonAttr = v;\r\n },\r\n attrTableData: function (v) {\r\n this.sonData = v;\r\n },\r\n formData: function (v) {\r\n this.tableData = v;\r\n },\r\n entIndex: function (v) {\r\n this.index = v;\r\n },\r\n grandSonIndex: function (v) {\r\n this.sonIndex = v;\r\n },\r\n },\r\n data() {\r\n return {\r\n index: 0,\r\n sonIndex: 0,\r\n isOpenGrandSonAttr: false,\r\n hideAttr: [],\r\n sonData: [],\r\n tableData: [],\r\n dataType: [\r\n { key: \"varchar\", value: \"字符串\" },\r\n { key: \"number\", value: \"数字\" },\r\n { key: \"date\", value: \"日期\" },\r\n { key: \"clob\", value: \"大文本\" },\r\n ],\r\n dateFormat: [\r\n { key: \"yyyy-MM-dd HH:mm:ss\", value: \"yyyy-MM-dd HH:mm:ss\" },\r\n { key: \"yyyy-MM-dd\", value: \"yyyy-MM-dd\" },\r\n ],\r\n };\r\n },\r\n computed: {\r\n attrData: function () {\r\n const data = this.openGrandSonAttr\r\n ? this.sonData\r\n : this.formData.ents[this.entIndex].attributeList;\r\n return data;\r\n },\r\n },\r\n beforeDestroy() {\r\n //组件注销移除事件监听器,以防多次调用\r\n this.$root.$off(\"validateField\");\r\n },\r\n methods: {\r\n //校验当前实体字段\r\n checkEntFunc(type){\r\n let checkEntFuncData = {\"type\":type,\"formData\":[this.formData.ents[this.entIndex]]};\r\n this.$root.$emit(\"validateField\",checkEntFuncData);\r\n },\r\n //表单数据加载\r\n getFormData() {\r\n const this_ = this;\r\n if (this_.formData.id) {\r\n form.getEntData(this_.formData.id, (resp) => {\r\n resp.data.ents.forEach((entData, index) => {\r\n if (entData.isExternal == \"1\" && index == 0) {\r\n entData.show = \"主实体-外\";\r\n } else if (entData.isExternal == \"1\") {\r\n entData.show = \"子实体-外\";\r\n }\r\n if (index === 0) {\r\n entData.isCheck = true;\r\n }\r\n if (entData.children) {\r\n entData.children.forEach((v) => {\r\n if (v.isExternal == \"1\") {\r\n v.show = \"孙实体-外\";\r\n }\r\n });\r\n }\r\n for (let q = 0; q < entData.attributeList.length; q++) {\r\n if (entData.attributeList[q]) {\r\n if (entData.attributeList[q].isRequired == 0) {\r\n entData.attributeList[q].isRequired = \"0\";\r\n } else {\r\n entData.attributeList[q].isRequired = \"1\";\r\n }\r\n }\r\n for (let i = 0; i < entData.attributeList.length - 1 - q; i++) {\r\n if (\r\n entData.attributeList[i].index >\r\n entData.attributeList[i + 1].index\r\n ) {\r\n let temp = entData.attributeList[i];\r\n entData.attributeList[i] = entData.attributeList[i + 1];\r\n entData.attributeList[i + 1] = temp;\r\n }\r\n }\r\n }\r\n });\r\n resp.data.ents.forEach((data) => {\r\n data.isCheck = false;\r\n });\r\n //获取选中实体\r\n resp.data.ents[this_.entIndex].isCheck = true;\r\n this_.$emit(\"update:formData\", resp.data);\r\n });\r\n }\r\n },\r\n //刷新元数据\r\n reloadByEntId(ent){\r\n let id=ent.id;\r\n if(this.openGrandSonAttr&& ent.children && ent.children.length>0){\r\n id=ent.children[this.grandSonIndex].id;\r\n }\r\n let _this=this;\r\n form.reloadByEntId(id,_this.formData.alias).then(resp => {\r\n if (resp.state) {\r\n _this.$message({ message: \"刷新成功,若字段有变化请重新拖拽字段设计表单\", type: \"success\" });\r\n _this.getFormData();\r\n } else {\r\n this.$message({ message: resp.message, type: \"error\" });\r\n }\r\n })\r\n },\r\n entBlur(index) {\r\n this.$emit(\"entBlur\", index);\r\n this.checkEntFunc(true);\r\n },\r\n chineseFormat(id, list, param, index, v) {\r\n this.$emit(\"chineseFormat\", id, list, param, index, v);\r\n },\r\n //新增字段\r\n addAttrRows() {\r\n let row = {\r\n comment: \"\",\r\n name: \"\",\r\n isRequired: \"0\",\r\n dataType: \"varchar\",\r\n format: \"\",\r\n intLen: \"\",\r\n attrLength: 200,\r\n decimalLen: 0,\r\n isNew: true,\r\n defaultValue: \"\",\r\n desc: \"\",\r\n index: this.openGrandSonAttr\r\n ? this.sonData.length + 1\r\n : this.formData.ents[this.entIndex].attributeList.length + 1,\r\n };\r\n if (this.openGrandSonAttr) {\r\n this.sonData.push(row);\r\n } else {\r\n this.formData.ents[this.entIndex].attributeList.push(row);\r\n }\r\n },\r\n //数据类型切换设置默认值\r\n defaultDataFormat(row, index) {\r\n let selectAttr = this.formData.ents[this.entIndex].attributeList;\r\n if (this.openGrandSonAttr) {\r\n selectAttr = this.sonData;\r\n }\r\n selectAttr[index].attrLength = 0;\r\n selectAttr[index].decimalLen = 0;\r\n selectAttr[index].format = \"\";\r\n if (row.dataType == \"date\") {\r\n selectAttr[index].format = \"yyyy-MM-dd HH:mm:ss\";\r\n } else if (row.dataType == \"varchar\") {\r\n selectAttr[index].attrLength = 200;\r\n } else if (row.dataType == \"number\") {\r\n selectAttr[index].attrLength = 10;\r\n selectAttr[index].decimalLen = 2;\r\n }\r\n },\r\n handleCommand(param) {\r\n switch (param.command) {\r\n case \"del\":\r\n this.deleteAttrRows(param.row, param.index);\r\n break;\r\n case \"up\":\r\n this.attrUp(param.row, param.index);\r\n break;\r\n case \"down\":\r\n this.attrDown(param.row, param.index);\r\n break;\r\n default:\r\n break;\r\n }\r\n },\r\n\r\n // 删除字段 伪删除 设置字段 status 值 hide\r\n isDel(row, index) {\r\n let count = 0;\r\n this.formData.ents[this.entIndex].attributeList.forEach((item) => {\r\n if (item.status === \"hide\") {\r\n count++;\r\n }\r\n });\r\n if (count >= this.formData.ents[this.entIndex].attributeList.length - 1) {\r\n this.$message({ message: \"最后一个字段不能删除!\", type: \"warning\" });\r\n return;\r\n }\r\n if (!this.formData.deployed) {\r\n form\r\n .deleteAttr(row.id)\r\n .then((resp) => {\r\n if (resp.data.state) {\r\n this.$message({ message: resp.data.message, type: \"success\" });\r\n } else {\r\n this.$message({ message: resp.data.message, type: \"error\" });\r\n return;\r\n }\r\n })\r\n .then(() => {\r\n this.formData.ents[this.entIndex].attributeList.splice(index, 1);\r\n this.formData.ents[this.entIndex].attributeList.forEach(\r\n (item, attrIndex) => {\r\n if (attrIndex == index) {\r\n item.index = item.index - 1;\r\n ++index;\r\n }\r\n }\r\n );\r\n form.saveEntData(this.formData).then((resp) => {\r\n if(resp.data.state){\r\n this.formData.rev++;\r\n }\r\n });\r\n });\r\n } else {\r\n form.removeAttr(row,this.formData.alias).then((resp) => {\r\n if (resp.data.state) {\r\n this.$message({\r\n message: resp.data.message + \",建模数据已更新!\",\r\n type: \"success\",\r\n });\r\n this.$emit(\"getFormData\");\r\n } else {\r\n this.$message({ message: resp.data.message, type: \"error\" });\r\n return;\r\n }\r\n });\r\n }\r\n },\r\n //删除字段\r\n deleteAttrRows(row, index) {\r\n if (!this.openGrandSonAttr) {\r\n if (row.id == undefined) {\r\n this.formData.ents[this.entIndex].attributeList.splice(index, 1);\r\n this.formData.ents[this.entIndex].attributeList.forEach(\r\n (item, attrIndex) => {\r\n if (attrIndex == index) {\r\n item.index = item.index - 1;\r\n ++index;\r\n }\r\n }\r\n );\r\n return;\r\n }\r\n this.isDel(row, index);\r\n } else {\r\n if (!row.id) {\r\n this.attrTableData.splice(index, 1);\r\n this.attrTableData.forEach((item, i) => {\r\n if (i == index) {\r\n item.index = item.index - 1;\r\n ++index;\r\n }\r\n });\r\n return;\r\n }\r\n this.isDel(row, index);\r\n }\r\n },\r\n attrUp(row, index) {\r\n if (!this.openGrandSonAttr) {\r\n this.formData.ents[this.entIndex].attributeList[index].index =\r\n this.formData.ents[this.entIndex].attributeList[index].index - 1;\r\n this.formData.ents[this.entIndex].attributeList[index - 1].index =\r\n this.formData.ents[this.entIndex].attributeList[index - 1].index + 1;\r\n this.formData.ents[this.entIndex].attributeList = utils.arrayMove(\r\n this.formData.ents[this.entIndex].attributeList,\r\n row,\r\n \"up\"\r\n );\r\n } else {\r\n this.sonData[index].index = this.sonData[index].index - 1;\r\n this.sonData[index - 1].index = this.sonData[index - 1].index + 1;\r\n this.sonData = utils.arrayMove(this.sonData, row, \"up\");\r\n }\r\n },\r\n attrDown(row, index) {\r\n if (!this.openGrandSonAttr) {\r\n this.formData.ents[this.entIndex].attributeList[index].index =\r\n this.formData.ents[this.entIndex].attributeList[index].index + 1;\r\n this.formData.ents[this.entIndex].attributeList[index + 1].index =\r\n this.formData.ents[this.entIndex].attributeList[index + 1].index - 1;\r\n this.formData.ents[this.entIndex].attributeList = utils.arrayMove(\r\n this.formData.ents[this.entIndex].attributeList,\r\n row,\r\n \"down\"\r\n );\r\n } else {\r\n this.sonData[index].index = this.sonData[index].index + 1;\r\n this.sonData[index + 1].index = this.sonData[index + 1].index - 1;\r\n this.sonData = utils.arrayMove(this.sonData, row, \"down\");\r\n }\r\n },\r\n recovery(row) {\r\n form.recovery(row,this.formData.alias).then((resp) => {\r\n if (resp.data.state) {\r\n this.$message({\r\n message: resp.data.message + \",建模数据已更新\",\r\n type: \"success\",\r\n });\r\n this.$emit(\"getFormData\");\r\n }\r\n });\r\n },\r\n refreshAttr(cb) {\r\n let param = {\r\n dsalias: this.formData.ents[this.entIndex].dsName,\r\n isTable: \"1\",\r\n objName: this.formData.ents[this.entIndex].tableName,\r\n };\r\n if (this.openGrandSonAttr) {\r\n param.objName = this.formData.ents[this.entIndex].children[\r\n this.grandSonIndex\r\n ].tableName;\r\n param.dsalias = this.formData.ents[this.entIndex].children[\r\n this.grandSonIndex\r\n ].dsName;\r\n }\r\n form\r\n .getHideAttr(param.objName)\r\n .then((resp) => {\r\n if (resp) {\r\n this.hideAttr = resp;\r\n }\r\n })\r\n .then(() => {\r\n form\r\n .getTableList(param)\r\n .then((resp) => {\r\n this.isExit = false;\r\n this.refreshData = resp;\r\n })\r\n .then(() => {\r\n for (let i = 0; i < this.refreshData.data.length; i++) {\r\n if (this.refreshData.data[i].name == param.objName) {\r\n // 删除主键和外键\r\n this.$http\r\n .get(\r\n \"${form}/bo/def/v1/reloadByEntId?entId=\" +\r\n this.formData.ents[this.entIndex].id\r\n )\r\n .then((resp) => {\r\n let json = JSON.parse(\r\n JSON.stringify(resp.data.table.columnList)\r\n .replace(/charLen/g, \"attrLength\")\r\n .replace(/fieldName/g, \"name\")\r\n .replace(/columnType/g, \"dataType\")\r\n .replace(/fdataType/g, \"fcolumnType\")\r\n );\r\n let _this = this;\r\n let data = {};\r\n if (this.hideAttr.length > 0) {\r\n let attr = \"\";\r\n this.hideAttr.forEach((v) => {\r\n attr += v.fieldName + \",\";\r\n });\r\n json = json.filter((value) => {\r\n return !attr.includes(value.fieldName);\r\n });\r\n }\r\n if (this.openGrandSonAttr) {\r\n this.formData.ents[this.entIndex].children[\r\n this.grandSonIndex\r\n ].attributeList = json;\r\n data = this.formData.ents[this.entIndex].children[\r\n this.grandSonIndex\r\n ];\r\n } else {\r\n this.formData.ents[this.entIndex].attributeList = json;\r\n data = this.formData.ents[this.entIndex];\r\n }\r\n data.attributeList = data.attributeList.filter((item) => {\r\n let val = item.name.toUpperCase();\r\n return (\r\n !item.isPk &&\r\n val != \"F_FORM_DATA_REV_\" &&\r\n val != \"REF_ID_\" &&\r\n (!_this.formData.ents.fk ||\r\n val != _this.formData.ents.fk.toUpperCase())\r\n );\r\n });\r\n data.attributeList.forEach((item, index) => {\r\n item.index = index + 1;\r\n if (item.attrLength == 0 && item.intLen != 0) {\r\n item.attrLength = item.intLen;\r\n }\r\n });\r\n this.$message({ message: \"刷新成功\", type: \"success\" });\r\n this.isExit = true;\r\n });\r\n break;\r\n }\r\n }\r\n setTimeout(() => {\r\n if (!this.isExit) {\r\n if (this.openGrandSonAttr) {\r\n this.formData.ents[this.entIndex].children[\r\n this.grandSonIndex\r\n ].attributeList = [];\r\n this.getGrandSonEntsByIndex(\r\n this.grandSonIndex,\r\n this.entIndex\r\n );\r\n } else {\r\n if (this.entIndex == 0) {\r\n form.removeBusinessObj(this.formData.id).then(() => {\r\n this.handleDialogClose();\r\n });\r\n } else {\r\n this.formData.ents[this.entIndex].attributeList = [];\r\n this.$emit(\"getEntsByIndex\", this.entIndex);\r\n }\r\n }\r\n }\r\n }, 500);\r\n this.isExit = false;\r\n });\r\n });\r\n },\r\n },\r\n mounted() {\r\n let _this = this;\r\n document.onkeydown = function () {\r\n if (_this.formData.ents && _this.formData.ents.length > 0) {\r\n let key = window.event.keyCode;\r\n if (key == 113) {\r\n //== 83 && event.ctrlKey\r\n _this.addAttrRows();\r\n setTimeout(function () {\r\n _this.$refs.attrTableScrollbarHeight.bodyWrapper.scrollTop =\r\n _this.$refs.attrTableScrollbarHeight.bodyWrapper.scrollHeight;\r\n }, 500);\r\n }\r\n }\r\n };\r\n },\r\n};\r\n",null]}