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