{"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\\BusinessObjExternalDialog.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\src\\views\\form\\BusinessObjExternalDialog.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\r\nimport form from \"@/api/form.js\";\r\nimport util from \"@/hotent-ui-util.js\";\r\n\r\nexport default {\r\n data() {\r\n return {\r\n dialogVisible: false, // 对话框是否可以见\r\n editSubOrSun: false,\r\n addFk: false,\r\n tableList: [], // 当前数据源的物理表集合\r\n entExtsTable: [], // 所选物理表的字段集合\r\n entExtConfirm: false,\r\n entsCount: 0, // 当前业务对象的模型数量\r\n editing: false, // 是否编辑\r\n hideAttr: [], // 需要隐藏起来的字段集合\r\n entExts: {\r\n // 外部表的form数据\r\n comment: \"\",\r\n desc: \"\",\r\n dsName: \"\",\r\n index: 0,\r\n isExternal: \"1\",\r\n name: \"\",\r\n packageId: \"\",\r\n pk: \"\",\r\n fk: \"\",\r\n pkType: \"\",\r\n relation: \"\",\r\n show: \"\",\r\n status: \"\",\r\n tableName: \"\",\r\n attributeList: [],\r\n type: \"\",\r\n },\r\n dataSource: [], // 当前数据源集合\r\n currentDataSource: null, // 当前所选择的数据源\r\n searchTableName: \"\", // 要搜索的表名\r\n extsTableType: [\r\n { key: \"subTable\", value: \"子表\" },\r\n { key: \"sunTable\", value: \"孙表\" },\r\n ],\r\n querying: false, // 是否正在查询:查询数据源、查询数据库表、查询表字段\r\n externalTables: [],\r\n };\r\n },\r\n watch: {\r\n \"entExts.dsName\": {\r\n handler: function (newVal) {\r\n if (newVal && this.dataSource && this.dataSource.length > 0) {\r\n this.currentDataSource = this.dataSource.find(\r\n (d) => d.alias == newVal\r\n );\r\n }\r\n },\r\n immediate: true,\r\n },\r\n },\r\n methods: {\r\n // 打开选择外部表的对话框\r\n open(currentEnt, currentEntType, entsCount,externalTables) {\r\n this.dialogVisible = true;\r\n this.entsCount = entsCount;\r\n this.entExts.type = currentEntType;\r\n this.externalTables = externalTables;\r\n this.editing = currentEntType ? true : false;\r\n this.editSubOrSun =\r\n currentEntType == \"subTable\" || currentEntType == \"sunTable\";\r\n\r\n this.querying = true;\r\n form\r\n .getDataSource()\r\n .then((resp) => {\r\n this.dataSource = resp.data;\r\n if (!this.entExts.dsName) {\r\n this.entExts.dsName = \"LOCAL\";\r\n this.changeSource();\r\n }\r\n })\r\n .finally(() => {\r\n this.querying = false;\r\n });\r\n let searchTable = null;\r\n if (currentEnt) {\r\n searchTable = currentEnt.tableName;\r\n }\r\n if (searchTable) {\r\n this.entExts.comment = currentEnt.comment;\r\n this.entExts.name = currentEnt.name;\r\n this.entExts.dsName = currentEnt.dsName;\r\n this.entExts.tableName = currentEnt.tableName;\r\n this.entExts.fk = currentEnt.fk;\r\n this.addFk = true;\r\n this.getTableList()\r\n .then(() => {\r\n this.changeTableName();\r\n })\r\n .catch((err) => {\r\n this.$message.error(err);\r\n });\r\n }\r\n },\r\n handleClose() {\r\n this.dialogVisible = false;\r\n this.querying = false;\r\n this.addFk = false;\r\n this.tableList = [];\r\n this.entExts = {\r\n desc: \"\",\r\n dsName: \"\",\r\n index: 0,\r\n isExternal: \"1\",\r\n name: \"\",\r\n packageId: \"\",\r\n pk: \"\",\r\n fk:\"\",\r\n pkType: \"\",\r\n relation: \"\",\r\n show: \"\",\r\n status: \"\",\r\n tableName: \"\",\r\n attributeList: [],\r\n type: \"\",\r\n };\r\n this.entExtsTable = [];\r\n },\r\n changeSource() {\r\n this.entExts.tableName = \"\";\r\n this.searchTableName = \"\";\r\n this.entExtsTable = [];\r\n this.getTableList(\"select\");\r\n },\r\n //外部表数据\r\n getTableList(type) {\r\n const this_ = this;\r\n this.entExtConfirm = true;\r\n return new Promise((resolve, reject) => {\r\n if (type) {\r\n this_.showMessage = true;\r\n }\r\n if (!this_.entExts.dsName) {\r\n reject(\"当前未选择数据源\");\r\n }\r\n var param = {\r\n dsalias: this_.entExts.dsName,\r\n isTable: \"1\",\r\n objName: this_.searchTableName,\r\n };\r\n this_.querying = true;\r\n this_.tableList = [];\r\n form\r\n .getTableList(param)\r\n .then((resp) => {\r\n if (resp.data) {\r\n resp.data.forEach((v) => {\r\n v.comment = v.name + \"(\" + v.comment + \")\";\r\n });\r\n if (this_.showMessage) {\r\n this_.$message({\r\n message: \"查询成功,请选择外部表\",\r\n type: \"success\",\r\n });\r\n }\r\n this_.tableList = resp.data;\r\n }\r\n })\r\n .finally(() => {\r\n this_.entExtConfirm = false;\r\n this_.showMessage = false;\r\n this_.querying = false;\r\n resolve();\r\n });\r\n });\r\n },\r\n //外部表选择\r\n changeTableName() {\r\n this.entExtConfirm = true;\r\n let param = {\r\n dsalias: this.entExts.dsName,\r\n isTable: \"1\",\r\n objName: this.entExts.tableName,\r\n };\r\n this.querying = true;\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 this.querying = true;\r\n form\r\n .changeTableName(param,false)\r\n .then((resp) => {\r\n this.entExtsTable = 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 this.entExtsTable.forEach((item) => {\r\n item.fieldName = item.name;\r\n });\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 this.entExtsTable = this.entExtsTable.filter((value) => {\r\n return !attr.includes(value.fieldName);\r\n });\r\n }\r\n resp.data.table.primayKey.forEach((data) => {\r\n this.entExts.pk = data.fieldName;\r\n this.entExts.pkType = data.columnType;\r\n });\r\n this.hideAttr = [];\r\n })\r\n .finally(() => {\r\n this.entExtConfirm = false;\r\n this.querying = false;\r\n });\r\n })\r\n .finally(() => {\r\n this.querying = false;\r\n });\r\n },\r\n validatorEntExts() {\r\n util\r\n .validateForm(this, \"externalForm\")\r\n .then(() => {\r\n this.buildExternalEnt();\r\n })\r\n .catch((reason) => {\r\n let rule = reason.map((v) => {\r\n return v.rule;\r\n });\r\n if (rule.includes(\"required\")) {\r\n this.$message.warning(\"请将信息填写完整\");\r\n } else if (rule.includes(\"alpha_dash\")) {\r\n this.$message.warning(\"请按正确的格式输入\");\r\n }\r\n });\r\n },\r\n buildExternalEnt() {\r\n this.entExts.index = this.entsCount;\r\n if (!this.editSubOrSun && this.entExts.index > 0) {\r\n if (!this.entExts.type) {\r\n this.$message.warning(\"请选择外部表类型。\");\r\n return;\r\n }\r\n if (!this.entExts.fk) {\r\n this.$message.warning(\"请指定外键字段。\");\r\n return;\r\n }\r\n if (this.externalTables.includes(this.entExts.tableName)){\r\n this.$message.warning(\"该外部表已存在,不允许重复添加。\");\r\n return;\r\n }\r\n }\r\n console.log(this.externalTables)\r\n this.entExts.relation = this.entExts.relation || \"onetomany\";\r\n this.entExts.show = this.entExts.show || \"子实体-外\";\r\n if (this.entExtsTable && this.entExtsTable.length > 0) {\r\n // 若数据源为Oracle的 则要判断数据类型为date 还是 datetime 不同类型赋值类型不同\r\n if (\r\n this.currentDataSource &&\r\n this.currentDataSource.dbType == \"oracle\"\r\n ) {\r\n this.entExtsTable.forEach((item) => {\r\n if (!item.format && item.dataType == \"date\") {\r\n item.format = \"yyyy-MM-dd\";\r\n } else if (!item.format && item.dataType == \"datatime\") {\r\n item.format = \"yyyy-MM-dd HH:mm:ss\";\r\n }\r\n });\r\n } else {\r\n this.entExtsTable.forEach((item) => {\r\n if (!item.format && item.dataType == \"date\") {\r\n if(item.fcolumnType == \"datetime\"){\r\n item.format = \"yyyy-MM-dd HH:mm:ss\";\r\n }else{\r\n item.format = \"yyyy-MM-dd\";\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n const entExts = { ...this.entExts },\r\n entExtsTable = [...this.entExtsTable];\r\n let externalEnt = {\r\n entExts,\r\n entExtsTable,\r\n addFk: this.addFk,\r\n };\r\n this.$emit(\"selectExternal\", externalEnt);\r\n this.$emit(\"addExternalTable\", entExts.tableName);\r\n this.handleClose();\r\n },\r\n },\r\n};\r\n",null]}