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