{"remainingRequest":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\thread-loader\\dist\\cjs.js!D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\babel-loader\\lib\\index.js!D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!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\\BusinessObjDialog.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\src\\views\\form\\BusinessObjDialog.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":["import \"core-js/modules/es6.number.constructor\";\nimport \"core-js/modules/es6.regexp.split\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.regexp.constructor\";\nimport \"core-js/modules/es7.array.includes\";\nimport \"core-js/modules/es6.string.includes\";\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nimport form from '@/api/form.js';\nimport req from '@/request.js';\nimport util from '@/hotent-ui-util.js';\nimport main from '@/main.js';\nimport BusinessObjHeader from '@/views/form/BusinessObjHeader.vue';\nimport BusinessObjEnts from '@/views/form/BusinessObjEnts.vue';\nimport BusinessObjAttr from '@/views/form/BusinessObjAttr.vue';\nimport BusinessObjExternalDialog from '@/views/form/BusinessObjExternalDialog.vue';\nimport FormTemplateDialog from '@/components/dialog/FormTemplateDialog.vue';\nexport default {\n  components: {\n    BusinessObjHeader: BusinessObjHeader,\n    BusinessObjEnts: BusinessObjEnts,\n    BusinessObjAttr: BusinessObjAttr,\n    BusinessObjExternalDialog: BusinessObjExternalDialog,\n    FormTemplateDialog: FormTemplateDialog\n  },\n  props: ['dataView', 'deployedId', 'clickTree', 'data'],\n  data: function data() {\n    return {\n      asideShow: true,\n      messageCations: {},\n      //用来获取校验弹窗提示的实例，以对对应弹窗进行操作\n      entExtsTableHeight: 0,\n      typeData: [],\n      entIndex: 0,\n      //选中实体下标\n      isHide: true,\n      entExts: {\n        //TODO\n        comment: '',\n        desc: '',\n        dsName: '',\n        index: 0,\n        isExternal: '1',\n        name: '',\n        packageId: '',\n        pk: '',\n        pkType: '',\n        relation: '',\n        show: '',\n        status: '',\n        tableName: '',\n        attributeList: [],\n        type: ''\n      },\n      formData: {\n        //表单\n        alias: '',\n        categoryId: '',\n        categoryName: '',\n        deployed: 0,\n        description: '',\n        dsName: '',\n        isCreateTable: '',\n        isExternal: '',\n        status: 'normal',\n        supportDb: true,\n        ents: []\n      },\n      countAttrLength: 0,\n      dialogVisible: false,\n      openGrandSonAttr: false,\n      grandSonIndex: -1,\n      attrTableData: [],\n      addFk: false,\n      //TODO\n      extLen: 0,\n      showMessage: false,\n      externalTables: [] // 当前外部表的字段\n\n    };\n  },\n  mounted: function mounted() {\n    var this_ = this;\n    this_.$root.$on('validateField', function (res) {\n      this_.closeAllNotification();\n      util.validateForm(this, 'form').then(function () {\n        this_.closeAllNotification();\n      }).catch(function (reason) {\n        var rule = reason.map(function (v) {\n          return v.rule;\n        });\n        rule = rule.unique();\n        this_.closeAllNotification();\n\n        if (rule.includes('required')) {\n          var n = this_.$message.warning('请将信息填写完整');\n          this_.messageCations[n.id] = n;\n        } else if (rule.includes('regex')) {\n          var _n = this_.$message.warning('只能输入字母、数字、下划线，且以字母开头');\n\n          this_.messageCations[_n.id] = _n;\n        }\n      });\n    });\n  },\n  created: function created() {\n    this.$validator = this.$root.$validator;\n  },\n  watch: {\n    data: {\n      handler: function handler(v) {\n        if (this.dataView.id) {\n          this.formData = v;\n        }\n      },\n      deep: true\n    }\n  },\n  methods: {\n    //关闭所有校验通知\n    closeAllNotification: function closeAllNotification() {\n      for (var key in this.messageCations) {\n        this.messageCations[key].close();\n        delete this.messageCations[key];\n      }\n    },\n    addGrandSonEnt: function addGrandSonEnt(index) {\n      this.getEntsByIndex(index);\n      var row = {\n        desc: '',\n        index: this.entIndex,\n        name: '',\n        packageId: '',\n        show: '孙实体',\n        relation: 'onetomany',\n        attributeList: [],\n        status: '',\n        isCheck: true\n      };\n\n      if (!this.formData.ents[index].children) {\n        this.$set(this.formData.ents[index], 'children', []);\n      }\n\n      if (this.checkGrandSonEnts(index)) {\n        return;\n      }\n\n      this.formData.ents[index].children.push(row);\n      this.grandSonIndex = this.formData.ents[index].children.length - 1;\n      this.openGrandSonAttr = true;\n      this.attrTableData = this.formData.ents[index].children[this.grandSonIndex].attributeList;\n    },\n    checkGrandSonEnts: function checkGrandSonEnts(index, param) {\n      if (this.formData.ents[index].children && this.formData.ents[index].children.length == 0 || !this.formData.ents[index].children) {\n        return false;\n      }\n\n      var child = this.formData.ents[index].children;\n      var len = this.formData.ents[index].children.length - 1;\n      child[len].comment = child[len].desc;\n      child[len].description = child[len].desc;\n\n      if (!param && child[len].attributeList.length == 0) {\n        this.$message({\n          message: '请添加字段信息',\n          type: 'warning'\n        });\n        return true;\n      }\n    },\n    //输入检测\n    checkIsChinese: function checkIsChinese(param) {\n      var check = new RegExp(\"[\\u4E00-\\u9FA5]\");\n      var pattern = new RegExp(\"[%--`~!@#$^&*()=|{}':;',\\\\[\\\\].<>/?~！@#￥……&*（）——| {}【】‘；：”“'。，、？]\");\n\n      if (check.test(param) || pattern.test(param)) {\n        this.$message({\n          message: '请勿输入中文或特殊字符',\n          type: 'warning'\n        });\n        return true;\n      }\n    },\n    //输入检测\n    checkInSpecialCharacters: function checkInSpecialCharacters(param) {\n      var pattern = new RegExp(\"[%--`~!@#$^&*()=|{}':;',\\\\[\\\\].<>/?~！@#￥……&*（）——| {}【】‘；：”“'。，、？]\");\n\n      if (pattern.test(param)) {\n        this.$message({\n          message: '请勿输入特殊字符',\n          type: 'warning'\n        });\n        return true;\n      }\n    },\n    getGrandSonEntsByIndex: function getGrandSonEntsByIndex(i, index) {\n      this.getEntsByIndex(index, 'grandSonEnt');\n      this.grandSonIndex = i;\n\n      if (this.formData.ents[this.entIndex].children && this.formData.ents[this.entIndex].children[i]) {\n        this.attrTableData = this.formData.ents[this.entIndex].children[i].attributeList;\n      }\n    },\n    //获取选中实体\n    getEntsByIndex: function getEntsByIndex(index, param) {\n      var _this2 = this;\n\n      //如果是删除自动选择上一个实体\n      if (param == 'delete') {\n        if (this.formData.ents[index]) {\n          this.entIndex = index;\n          this.formData.ents.forEach(function (data) {\n            data.isCheck = false;\n          });\n          this.formData.ents[index].isCheck = true;\n          return true;\n        }\n      } else {\n        var this_ = this;\n        util.validateForm(this, 'form').then(function () {\n          _this2.openGrandSonAttr = false;\n\n          if (param == 'grandSonEnt') {\n            _this2.openGrandSonAttr = true;\n          }\n\n          if (_this2.formData.ents[index]) {\n            _this2.entIndex = index;\n\n            _this2.formData.ents.forEach(function (data) {\n              data.isCheck = false;\n            });\n\n            _this2.formData.ents[index].isCheck = true;\n            return true;\n          }\n        }).catch(function (reason) {\n          var rule = reason.map(function (v) {\n            return v.rule;\n          });\n          rule = rule.unique();\n          this_.closeAllNotification();\n\n          if (rule.includes('required')) {\n            var n = this_.$message.warning('请将信息填写完整');\n            this_.messageCations[n.id] = n;\n          } else if (rule.includes('regex')) {\n            var _n2 = this_.$message.warning('只能输入字母、数字、下划线，且以字母开头');\n\n            this_.messageCations[_n2.id] = _n2;\n          }\n        });\n      }\n    },\n    //表单对话框\n    handleOpen: function handleOpen() {\n      this.dialogVisible = true;\n      this.init();\n    },\n    init: function init() {\n      this.formData.categoryId = this.clickTree.id;\n      this.formData.categoryName = this.clickTree.name;\n\n      if (this.dataView.entIndex) {\n        this.entIndex = this.dataView.entIndex;\n      }\n    },\n    //表单数据加载\n    getFormData: function getFormData() {\n      var _this3 = this;\n\n      if (this.dataView.id) {\n        form.getEntData(this.dataView.id, function (resp) {\n          resp.data.ents.forEach(function (entData, index) {\n            if (entData.isExternal == '1' && index == 0) {\n              entData.show = '主实体-外';\n            } else if (entData.isExternal == '1') {\n              entData.show = '子实体-外';\n            }\n\n            if (index === 0) {\n              entData.isCheck = true;\n            }\n\n            if (entData.children) {\n              entData.children.forEach(function (v) {\n                if (v.isExternal == '1') {\n                  v.show = '孙实体-外';\n                }\n              });\n            }\n\n            for (var q = 0; q < entData.attributeList.length; q++) {\n              if (entData.attributeList[q]) {\n                if (entData.attributeList[q].isRequired == 0) {\n                  entData.attributeList[q].isRequired = '0';\n                } else {\n                  entData.attributeList[q].isRequired = '1';\n                }\n              }\n\n              for (var i = 0; i < entData.attributeList.length - 1 - q; i++) {\n                if (entData.attributeList[i].index > entData.attributeList[i + 1].index) {\n                  var temp = entData.attributeList[i];\n                  entData.attributeList[i] = entData.attributeList[i + 1];\n                  entData.attributeList[i + 1] = temp;\n                }\n              }\n            }\n          });\n          _this3.formData = resp.data;\n        });\n      }\n    },\n    //关闭表单对话框\n    handleDialogClose: function handleDialogClose() {\n      this.$emit('loadTableData');\n      this.dialogVisible = false;\n      this.isSave = false;\n      this.entIndex = 0;\n      this.grandSonIndex = -1;\n      this.openGrandSonAttr = false;\n      this.countAttrLength = 0;\n      this.formData = {\n        alias: '',\n        categoryId: '',\n        categoryName: '',\n        deployed: 0,\n        description: '',\n        dsName: '',\n        isCreateTable: '',\n        isExternal: '',\n        status: 'normal',\n        supportDb: true,\n        ents: []\n      };\n      this.$router.push({\n        path: \"/sysplat/businessObj\"\n      }); //form#businessObj\n    },\n    //新增实体\n    addEntRows: function addEntRows() {\n      var this_ = this;\n      util.validateForm(this_, 'form').then(function () {\n        if (this_.formData.ents.length > 0) {\n          for (var i = 0; i < this_.formData.ents.length; i++) {\n            if (this_.checkGrandSonEnts(i)) {\n              return;\n            }\n          }\n\n          this_.countAttrLength = 0;\n\n          if (!this_.checkEntFunc(this_.formData.ents)) {\n            return false;\n          }\n\n          this_.extLen = 0;\n        }\n\n        this_.formData.ents.forEach(function (data) {\n          data.isCheck = false;\n        });\n        this_.entIndex = ++this_.entIndex;\n        var row = {\n          desc: '',\n          index: this_.entIndex,\n          name: '',\n          packageId: '',\n          show: '子实体',\n          children: [],\n          relation: 'onetomany',\n          attributeList: [],\n          status: '',\n          isCheck: true\n        };\n\n        if (this_.formData.ents.length == 0) {\n          this_.entIndex = 0;\n          row = {\n            desc: '',\n            index: 0,\n            name: '',\n            packageId: '',\n            show: '主实体',\n            relation: 'main',\n            status: '',\n            attributeList: [],\n            isCheck: true\n          };\n        }\n\n        if (this_.formData.ents.length > 0 && this_.checkGrandSonEnts(this_.formData.ents.length - 1)) {\n          return;\n        }\n\n        this_.formData.ents.push(row);\n      }).catch(function (reason) {\n        var rule = reason.map(function (v) {\n          return v.rule;\n        });\n        rule = rule.unique();\n\n        if (rule.includes('required')) {\n          var n = this_.$message.warning('请将信息填写完整');\n          this_.messageCations[n.id] = n;\n        } else if (rule.includes('regex')) {\n          this_.$message.warning('只能输入字母、数字、下划线，且以字母开头');\n        }\n      });\n    },\n    //删除实体\n    deleteEntRows: function deleteEntRows(index) {\n      var _this4 = this;\n\n      this.entIndex = index;\n\n      if (!this.formData.ents[this.entIndex].attributeList) {\n        this.formData.ents[this.entIndex].attributeList = [];\n      } //处理加入的外部表数组\n\n\n      if (this.formData.ents[index] && this.formData.ents[index].isExternal == 1 && this.externalTables && this.externalTables.length > 0) {\n        var extName = this.formData.ents[index].tableName;\n        this.externalTables.forEach(function (item, idx) {\n          if (item == extName) {\n            _this4.externalTables.splice(idx, 1);\n          }\n        });\n      }\n\n      this.formData.ents.splice(index, 1);\n\n      if (this.entIndex >= this.formData.ents.length) {\n        this.entIndex = this.formData.ents.length - 1;\n        this.getEntsByIndex(this.entIndex);\n      }\n\n      if (this.formData.ents.length > 0) {\n        if (index == 0) {\n          if (this.formData.ents[0].isExternal != '1') {\n            this.formData.ents[0].show = '主实体';\n            this.formData.ents[0].relation = 'main';\n            this.formData.ents[0].children = [];\n          } else {\n            this.formData.ents[0].show = '主实体-外';\n            this.formData.ents[0].relation = 'main';\n          }\n        }\n      }\n    },\n    deleteGrandSonEntRows: function deleteGrandSonEntRows(i, index) {\n      this.getEntsByIndex(index, 'noCheck');\n      this.grandSonIndex = i;\n\n      if (!this.formData.ents[this.entIndex].attributeList) {\n        this.formData.ents[this.entIndex].children[i].attributeList = [];\n      }\n\n      this.formData.ents[this.entIndex].children.splice(i, 1);\n      this.openGrandSonAttr = false;\n      this.attrTableData = this.formData.ents[this.entIndex].attributeList;\n\n      if (this.formData.ents[this.entIndex].children[i - 1] && this.formData.ents[this.entIndex].children[i - 1].attributeList.length > 0) {\n        this.attrTableData = this.formData.ents[this.entIndex].children[i - 1].attributeList;\n      }\n    },\n    //数据源\n    addEntExts: function addEntExts(index, i) {\n      var currentEnt = null,\n          currentEntType = '';\n\n      if (typeof index != 'undefined') {\n        if (typeof i != 'undefined') {\n          currentEntType = 'sunTable';\n          currentEnt = this.formData.ents[index].children[i];\n        } else {\n          currentEnt = this.formData.ents[index];\n          currentEntType = index > 0 ? 'subTable' : 'mainTable';\n        }\n      }\n\n      this.$refs.businessObjExternalDialog.open(currentEnt, currentEntType, index == 0 ? 0 : this.formData.ents.length, this.externalTables);\n    },\n    validatorForm: function validatorForm(param) {\n      var _this5 = this;\n\n      util.validateForm(this, 'form').then(function () {\n        for (var i = 0; i < _this5.formData.ents.length; i++) {\n          if (_this5.checkGrandSonEnts(i)) {\n            return;\n          }\n        }\n\n        _this5.countAttrLength = 0;\n\n        if (!_this5.checkEntFunc(_this5.formData.ents)) {\n          return false;\n        }\n\n        _this5.extLen = 0;\n\n        if (param == 'deployed') {\n          _this5.deployedEntData();\n\n          return true;\n        } else if (param == 'save') {\n          _this5.saveEntData();\n\n          return true;\n        } else if (param == 'createTableForm') {\n          _this5.createTableForm();\n\n          return true;\n        }\n\n        return true;\n      }).catch(function (reason) {\n        var rule = reason.map(function (v) {\n          return v.rule;\n        });\n        rule = rule.unique();\n\n        if (rule.includes('required')) {\n          var n = _this5.$message.warning('请将信息填写完整');\n\n          _this5.messageCations[n.id] = n;\n        } else if (rule.includes('regex')) {\n          _this5.$message.warning('只能输入字母、数字、下划线，且以字母开头');\n        }\n      });\n    },\n    checkEntFunc: function checkEntFunc(ent, sonIndex) {\n      var entVal = {};\n\n      if (ent.length < 1) {\n        this.$message({\n          type: 'warning',\n          message: '请添加实体对象！'\n        });\n        return false;\n      }\n\n      for (var i = 0; i < ent.length; i++) {\n        if (ent[i].show != '孙实体') {\n          ent[i].description = ent[i].comment;\n          ent[i].desc = ent[i].comment;\n        }\n\n        if (!entVal['desc' + ent[i].desc]) {\n          entVal['desc' + ent[i].desc] = ent[i].desc;\n        } else {\n          this.entBlurDescRepeatIndex = i;\n\n          if (document.getElementById('changeEntsDesc' + i) && ent[i].show == '子实体') {\n            this.$message({\n              message: '已存在子实体描述为【' + ent[i].desc + '】的bo实体',\n              type: 'warning'\n            });\n            document.getElementById('changeEntsDesc' + i).getElementsByTagName('div')[0].lastElementChild.focus();\n            document.getElementById('changeEntsDesc' + i).getElementsByTagName('div')[0].firstElementChild.style.border = '1px solid red';\n          } else {\n            this.$message({\n              message: '已存在孙实体描述为【' + ent[i].desc + '】的bo实体',\n              type: 'warning'\n            });\n            document.getElementById('changeGrandSonEntsDesc' + i).getElementsByTagName('div')[0].lastElementChild.focus();\n            document.getElementById('changeGrandSonEntsDesc' + i).getElementsByTagName('div')[0].firstElementChild.style.border = '1px solid red';\n          }\n\n          return false;\n        }\n\n        if (!entVal['name' + ent[i].name]) {\n          entVal['name' + ent[i].name] = ent[i].name;\n        } else {\n          this.entBlurNameRepeatIndex = i;\n\n          if (document.getElementById('entName' + i) && ent[i].show == '子实体') {\n            this.$message({\n              message: '已存在子实体名称为【' + ent[i].name + '】的bo实体',\n              type: 'warning'\n            });\n            document.getElementById('entName' + i).getElementsByTagName('div')[0].lastElementChild.focus();\n            document.getElementById('entName' + i).getElementsByTagName('div')[0].firstElementChild.style.border = '1px solid red';\n          } else {\n            this.$message({\n              message: '已存在孙实体名称为【' + ent[i].name + '】的bo实体',\n              type: 'warning'\n            });\n            document.getElementById('changeGrandSonEntsName' + i).getElementsByTagName('div')[0].lastElementChild.focus();\n            document.getElementById('changeGrandSonEntsName' + i).getElementsByTagName('div')[0].firstElementChild.style.border = '1px solid red';\n          }\n\n          return false;\n        }\n\n        if (ent[i].isExternal == '1') {\n          ++this.extLen;\n\n          if (i != 0 && this.extLen > 1 && !ent[i].fk) {\n            this.$message({\n              message: '请给' + ent[i].comment + '实体添加外键！',\n              type: 'warning'\n            });\n            return false;\n          }\n        }\n\n        if (ent[i].attributeList.length > 0) {\n          if (!this.checkAttrFunc(ent[i], i, sonIndex)) {\n            return false;\n          }\n        } else {\n          this.$message({\n            message: '请添加字段！',\n            type: 'warning'\n          });\n          return false;\n        }\n\n        if (ent[i].children && ent[i].children.length > 0) {\n          this.countAttrLength = 0;\n\n          if (!this.checkEntFunc(ent[i].children, i)) {\n            return false;\n          }\n        }\n\n        this.countAttrLength = 0;\n      }\n\n      return true;\n    },\n    checkAttrFunc: function checkAttrFunc(ent, i, sonIndex) {\n      var regPos = new RegExp('^\\\\d*(?:\\\\.\\\\d{1,2})?$');\n      var attrVal = {};\n      var attr = ent.attributeList;\n\n      for (var j = 0; j < attr.length; j++) {\n        attr[j].desc = attr[j].comment;\n\n        if (attr[j].defaultValue == null) {\n          attr[j].defaultValue = '';\n        }\n\n        attr[j].defaultValue = attr[j].defaultValue.trim();\n        this.attrCommentElementId = attr[j].name + 'comment' + j;\n\n        if (ent.isExternal != '1') {\n          if (!attrVal['name' + attr[j].name]) {\n            attrVal['name' + attr[j].name] = attr[j].name;\n          } else {\n            this.entAttrIndex = i;\n\n            if (sonIndex) {\n              this.sonAttrIndex = sonIndex;\n            }\n\n            this.attrNameElementId = attr;\n            this.checkAttrNameIndex = j;\n            var msg = '实体：' + ent.desc + '（' + ent.name + '）中存在重复字段名【' + attr[j].name + '】';\n            this.$message({\n              message: msg,\n              type: 'warning'\n            });\n            document.getElementById(this.attrNameElementId[j].name + 'attrName' + j).focus();\n            document.getElementById(this.attrNameElementId[j].name + 'attrName' + j).getElementsByTagName('div')[0].firstElementChild.style.border = '1px solid red';\n            return false;\n          }\n\n          this.attrLenElementId = attr[j].name + 'attrLen' + j;\n\n          if (attr[j].attrLength && attr[j].attrLength !== 0) {\n            if (!regPos.test(attr[j].attrLength)) {\n              this.entAttrIndex = i;\n\n              if (sonIndex) {\n                this.sonAttrIndex = sonIndex;\n              }\n\n              document.getElementById(this.attrLenElementId).focus();\n              document.getElementById(this.attrLenElementId).style.border = '1px solid red';\n              var n = this.$message.warning('请输入正确数字');\n              this.messageCations[n.id] = n;\n              return false;\n            }\n          }\n\n          this.attrDecimaElementId = attr[j].name + 'decima' + j;\n\n          if (attr[j].decimalLen && attr[j].decimalLen !== 0) {\n            if (!regPos.test(attr[j].decimalLen)) {\n              this.entAttrIndex = i;\n\n              if (sonIndex) {\n                this.sonAttrIndex = sonIndex;\n              }\n\n              document.getElementById(this.attrDecimaElementId).focus();\n              document.getElementById(this.attrDecimaElementId).style.border = '1px solid red';\n\n              var _n3 = this.$message.warning('请输入正确数字');\n\n              this.messageCations[_n3.id] = _n3;\n              return false;\n            }\n          }\n\n          if (attr[j].decimalLen) {\n            if (attr[j].decimalLen.length > 1) {\n              var decimalLen = attr[j].decimalLen.substr(0, 1);\n\n              if (decimalLen == '0') {\n                attr[j].decimalLen = attr[j].decimalLen.substr(1, attr[j].decimalLen.length);\n              }\n            }\n\n            if (attr[j].decimalLen < 0 || attr[j].decimalLen > 30) {\n              this.entAttrIndex = i;\n\n              if (sonIndex) {\n                this.sonAttrIndex = sonIndex;\n              }\n\n              document.getElementById(this.attrDecimaElementId).focus();\n              document.getElementById(this.attrDecimaElementId).style.border = '1px solid red';\n              this.$message({\n                message: '小数长度不能小于0或者大于30',\n                type: 'warning'\n              });\n              return false;\n            }\n          }\n\n          if (attr[j].dataType === 'varchar') {\n            this.countAttrLength += parseInt(attr[j].attrLength);\n          }\n\n          if (attr[j].attrLength) {\n            if (attr[j].attrLength.length > 1) {\n              var attrLength = attr[j].attrLength.substr(0, 1);\n\n              if (attrLength == '0') {\n                attr[j].attrLength = attr[j].attrLength.substr(1, attr[j].attrLength.length);\n              }\n            }\n\n            if (attr[j].dataType === 'varchar') {\n              if (attr[j].attrLength < 1 || this.countAttrLength > 21500) {\n                this.entAttrIndex = i;\n\n                if (sonIndex) {\n                  this.sonAttrIndex = sonIndex;\n                }\n\n                document.getElementById(this.attrLenElementId).focus();\n                document.getElementById(this.attrLenElementId).style.border = '1px solid red';\n                this.$message({\n                  message: '整数长度不能小于1或者长度总和超出21500',\n                  type: 'warning'\n                });\n                return false;\n              }\n            }\n\n            if (attr[j].dataType === 'number' || attr[j].dataType == '数字') {\n              var defaultVal = attr[j].defaultValue.split('.');\n\n              if (Number(attr[j].attrLength) < 1) {\n                this.entAttrIndex = i;\n\n                if (sonIndex) {\n                  this.sonAttrIndex = sonIndex;\n                }\n\n                document.getElementById(this.attrLenElementId).focus();\n                document.getElementById(this.attrLenElementId).style.border = '1px solid red';\n                this.$message({\n                  message: '整数长度不能小于1',\n                  type: 'warning'\n                });\n                return false;\n              }\n\n              if (Number(attr[j].attrLength) + Number(attr[j].decimalLen) > 38) {\n                this.entAttrIndex = i;\n\n                if (sonIndex) {\n                  this.sonAttrIndex = sonIndex;\n                }\n\n                document.getElementById(this.attrLenElementId).focus();\n                document.getElementById(this.attrLenElementId).style.border = '1px solid red';\n                this.$message({\n                  message: '整数长度与小数长度之和不能超过38',\n                  type: 'warning'\n                });\n                return false;\n              }\n\n              if (defaultVal[1] && Number(defaultVal[1].length) > Number(attr[j].decimalLen)) {\n                this.defaultValueIndex = j;\n                this.defaultValueType = 'number';\n                document.getElementsByName('defaultValue' + j)[0].focus();\n                document.getElementsByName('defaultValue' + j)[0].style.border = '1px solid red';\n                this.$message({\n                  message: '默认值中小数长度超出设置值',\n                  type: 'warning'\n                });\n                return false;\n              }\n\n              if (attr[j].defaultValue && attr[j].defaultValue.length > 21) {\n                this.defaultValueIndex = j;\n                this.defaultValueType = 'number';\n                document.getElementsByName('defaultValue' + j)[0].focus();\n                document.getElementsByName('defaultValue' + j)[0].style.border = '1px solid red';\n                this.$message({\n                  message: '整数长度不能超过21',\n                  type: 'warning'\n                });\n                return false;\n              }\n\n              if (!regPos.test(Number(attr[j].defaultValue))) {\n                this.defaultValueIndex = j;\n                this.defaultValueType = 'number';\n                document.getElementsByName('defaultValue' + j)[0].focus();\n                document.getElementsByName('defaultValue' + j)[0].style.border = '1px solid red';\n                this.$message({\n                  message: '默认值应为数字',\n                  type: 'warning'\n                });\n                return false;\n              }\n            }\n\n            var d = attr[j].defaultValue;\n\n            if (d.indexOf('.') > -1) {\n              var _i = d.indexOf('.');\n\n              var start = d.substring(0, _i);\n              var end = d.substring(_i + 1, attr[j].defaultValue.length);\n              d = start + end;\n            }\n\n            if (d.length > attr[j].attrLength + attr[j].decimalLen) {\n              this.defaultValueIndex = j;\n              this.defaultValueType = 'varchar';\n              document.getElementsByName('defaultValue' + j)[0].focus();\n              document.getElementsByName('defaultValue' + j)[0].style.border = '1px solid red';\n              this.$message({\n                message: '默认值长度需小于整数长度',\n                type: 'warning'\n              });\n              return false;\n            }\n          } else if (attr[j].dataType === 'varchar' || attr[j].dataType === 'number') {\n            this.entAttrIndex = i;\n\n            if (sonIndex) {\n              this.sonAttrIndex = sonIndex;\n            }\n\n            document.getElementById(this.attrLenElementId).focus();\n            document.getElementById(this.attrLenElementId).style.border = '1px solid red';\n            this.$message({\n              message: '请添加整数长度',\n              type: 'warning'\n            });\n            return false;\n          }\n        }\n      }\n\n      return true;\n    },\n    entBlur: function entBlur() {\n      if (this.openGrandSonAttr && this.formData.ents[this.entIndex].children[this.grandSonIndex].attributeList && this.formData.ents[this.entIndex].children[this.grandSonIndex].attributeList.length > 0) {\n        this.formData.ents[this.entIndex].children[this.grandSonIndex].attributeList.forEach(function (item) {\n          item.desc = item.comment;\n        });\n      }\n\n      if (typeof this.entBlurDescRepeatIndex == 'number') {\n        if (document.getElementById('changeEntsDesc' + this.entBlurDescRepeatIndex)) {\n          document.getElementById('changeEntsDesc' + this.entBlurDescRepeatIndex).getElementsByTagName('div')[0].firstElementChild.style.border = '';\n        }\n\n        if (document.getElementById('changeGrandSonEntsDesc' + this.entBlurDescRepeatIndex)) {\n          document.getElementById('changeGrandSonEntsDesc' + this.entBlurDescRepeatIndex).getElementsByTagName('div')[0].firstElementChild.style.border = '';\n        }\n      }\n\n      if (typeof this.entBlurNameRepeatIndex == 'number') {\n        if (document.getElementById('entName' + this.entBlurNameRepeatIndex)) {\n          document.getElementById('entName' + this.entBlurNameRepeatIndex).getElementsByTagName('div')[0].firstElementChild.style.border = '';\n        }\n\n        if (document.getElementById('changeGrandSonEntsName' + this.entBlurNameRepeatIndex)) {\n          document.getElementById('changeGrandSonEntsName' + this.entBlurNameRepeatIndex).getElementsByTagName('div')[0].firstElementChild.style.border = '';\n        }\n      }\n\n      if (this.attrCommentElementId && document.getElementById(this.attrCommentElementId)) {\n        document.getElementById(this.attrCommentElementId).getElementsByTagName('div')[0].firstElementChild.style.border = '';\n      }\n\n      if (typeof this.checkAttrNameIndex == 'number') {\n        if (document.getElementById(this.formData.ents[this.entAttrIndex].attributeList[this.checkAttrNameIndex].name + 'attrName' + this.checkAttrNameIndex)) {\n          document.getElementById(this.formData.ents[this.entAttrIndex].attributeList[this.checkAttrNameIndex].name + 'attrName' + this.checkAttrNameIndex).getElementsByTagName('div')[0].firstElementChild.style.border = '';\n        }\n\n        var sonAttr = this.formData.ents[this.sonAttrIndex];\n\n        if (sonAttr) {\n          document.getElementById(sonAttr.children[this.entAttrIndex].attributeList[this.checkAttrNameIndex].name + 'attrName' + this.checkAttrNameIndex).getElementsByTagName('div')[0].firstElementChild.style.border = '';\n        }\n\n        this.checkAttrNameIndex = null;\n      }\n\n      if (this.defaultValueType) {\n        document.getElementsByName('defaultValue' + this.defaultValueIndex)[0].style.border = '';\n        this.defaultValueType = null;\n      }\n\n      if (this.attrLenElementId && document.getElementById(this.attrLenElementId)) {\n        document.getElementById(this.attrLenElementId).style.border = '';\n      }\n\n      if (this.attrDecimaElementId && document.getElementById(this.attrDecimaElementId)) {\n        document.getElementById(this.attrDecimaElementId).style.border = '';\n      }\n    },\n    //发布并保存实体\n    deployedEntData: function deployedEntData() {\n      var _this6 = this;\n\n      var formData = this.formData;\n      this.formData.deployed = true;\n\n      var _this = this;\n\n      var loading = this.$loading();\n      form.saveEntData(this.formData).then(function (resp) {\n        if (resp.data.state) {\n          _this6.$confirm('发布成功，是否跳转到业务表单页面？', '提示', {\n            confirmButtonText: '确定',\n            cancelButtonText: '取消',\n            type: 'warning'\n          }).then(function () {\n            loading.close(); //this.handleDialogClose();\n\n            if (!formData.id) {\n              formData.id = resp.data.message;\n              formData.pkVal = resp.data.message;\n            }\n\n            _this.$refs.formTemplateDialog.showDialog(formData.id);\n          }).catch(function () {\n            loading.close();\n\n            _this6.handleDialogClose();\n\n            _this6.dataView.id = '';\n          });\n        }\n      }).catch(function () {\n        _this6.formData.deployed = false;\n      });\n    },\n    //保存实体\n    saveEntData: function saveEntData() {\n      var _this7 = this;\n\n      var loading = this.$loading();\n      var formData = this.formData;\n\n      if (this.isSave) {\n        this.formData.deployed = true;\n      }\n\n      form.saveEntData(this.formData).then(function (resp) {\n        if (resp.data.state) {\n          if (!_this7.isSave) {\n            _this7.$confirm('保存成功，是否退出？', '提示', {\n              confirmButtonText: '确定',\n              cancelButtonText: '取消',\n              type: 'warning'\n            }).then(function () {\n              loading.close();\n\n              _this7.$emit('loadTableData');\n\n              _this7.handleDialogClose();\n\n              _this7.dataView.id = '';\n            }).catch(function () {\n              loading.close();\n\n              if (resp.data.message != null) {\n                _this7.dataView.id = resp.data.message;\n              }\n\n              _this7.$emit('opreta', 'edit');\n\n              _this7.$emit('opretaId', _this7.dataView.id);\n            });\n          } else {\n            _this7.$confirm('保存成功，是否跳转到业务表单页面', '提示', {\n              confirmButtonText: '确定',\n              cancelButtonText: '取消',\n              type: 'warning'\n            }).then(function () {\n              if (_this7.isSave) {\n                if (!formData.id) {\n                  formData.id = resp.data.message;\n                  formData.pkVal = resp.data.message;\n                }\n\n                _this7.$refs.formTemplateDialog.showDialog(formData.id);\n              }\n            }).catch(function () {\n              _this7.$emit('loadTableData');\n\n              _this7.handleDialogClose();\n\n              _this7.dataView.id = '';\n            }).finally(function () {\n              return loading.close();\n            });\n          }\n        }\n      });\n    },\n    conFirmTemplate: function conFirmTemplate(templateModel) {\n      this.$router.push({\n        path: '/sysplat/form#formManager',\n        query: {\n          bos: [this.formData],\n          templateConf: templateModel\n        }\n      });\n    },\n    cancelFirmTemplate: function cancelFirmTemplate() {\n      this.handleDialogClose();\n    },\n    //外部表数据加入表单\n    handleSelectExternal: function handleSelectExternal(externalEnt) {\n      var entExts = externalEnt.entExts,\n          addFk = externalEnt.addFk,\n          entExtsTable = externalEnt.entExtsTable;\n      var selectEnt = this.entIndex;\n      this.entIndex = entExts.index;\n      var data = {};\n\n      if (this.formData.ents.length == 0 && !addFk) {\n        entExts.show = '主实体-外';\n        entExts.relation = 'main';\n        this.formData.ents.splice(this.entIndex, 1, entExts);\n        this.formData.ents[this.entIndex].attributeList = entExtsTable;\n        data = this.formData.ents[this.entIndex];\n      } else if (entExts.type == 'sunTable' && !addFk) {\n        if (!this.formData.ents[selectEnt].children) {\n          this.$set(this.formData.ents[selectEnt], 'children', []);\n        }\n\n        this.formData.ents[selectEnt].children.push(entExts);\n        this.grandSonIndex = this.formData.ents[selectEnt].children.length - 1;\n        this.formData.ents[selectEnt].children[this.grandSonIndex].attributeList = entExtsTable;\n        data = this.formData.ents[selectEnt].children[this.grandSonIndex];\n        data.desc = entExts.comment;\n        data.name = entExts.name;\n        data.show = '孙实体-外';\n      } else if (!addFk) {\n        this.formData.ents.push(entExts);\n        this.formData.ents[this.entIndex].attributeList = entExtsTable;\n        data = this.formData.ents[this.entIndex];\n      } else if (addFk) {\n        this.entIndex = selectEnt;\n        this.formData.ents[selectEnt].fk = entExts.fk;\n        this.formData.ents[selectEnt].attributeList = entExtsTable;\n        data = this.formData.ents[selectEnt];\n      }\n\n      var _this = this;\n\n      data.attributeList = data.attributeList.filter(function (item) {\n        var val = item.name.toUpperCase();\n        return val != entExts.pk.toUpperCase() && val != 'F_FORM_DATA_REV_' && val != 'REF_ID_' && (!entExts.fk || val != entExts.fk.toUpperCase()) && val.toUpperCase() != 'TENANT_ID_';\n      });\n      data.attributeList.forEach(function (item, index) {\n        item.index = index + 1; // 数字类型长度\n\n        if (item.attrLength == 0 && item.intLen != 0) {\n          item.attrLength = item.intLen;\n        }\n      });\n\n      if (entExts.type == 'sunTable') {\n        this.getGrandSonEntsByIndex(this.grandSonIndex, selectEnt);\n      } else {\n        this.getEntsByIndex(this.entIndex);\n      }\n    },\n    //创建表单\n    createTableForm: function createTableForm() {\n      if (!this.dataView.id) {\n        this.deployedEntData();\n      } else {\n        this.isSave = true; //this.saveEntData();\n\n        this.deployedEntData();\n      }\n    },\n    chineseFormat: function chineseFormat(id, list, param, index, v) {\n      var _this = this;\n\n      var d = document.getElementById(id); // disabled 或者 readonly 时 不需要请求\n\n      var timer = null;\n      if (d === null || d.__vue__.disabled || d.__vue__.readonly || !v) return;\n\n      if (timer) {\n        clearTimeout(timer);\n      }\n\n      timer = setTimeout(function () {\n        req.request({\n          url: \"\".concat(window.context.uc, \"/base/tools/v1/getPinyin\"),\n          method: 'GET',\n          params: {\n            chinese: v,\n            type: 0\n          }\n        }).then(function (res) {\n          if (res.data.state) {\n            list[index][param] = res.data.value;\n            main.$nextTick(function () {\n              main.$validator.validate();\n            });\n          }\n        });\n      }, 500);\n    },\n    addExternalTable: function addExternalTable(tableName) {\n      // 添加外部表\n      this.externalTables.push(tableName);\n    }\n  }\n};",null]}