{"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\\components\\form\\customView\\CustomViewEdit.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\src\\components\\form\\customView\\CustomViewEdit.vue","mtime":1675071992069},{"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/web.dom.iterable\";\nimport \"core-js/modules/es6.regexp.replace\";\nimport \"core-js/modules/es6.function.name\";\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\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 { Message } from \"element-ui\";\nimport form from \"@/api/form.js\";\nimport utils from \"@/hotent-ui-util.js\";\nimport TemplateEdit from \"./TemplateEdit\";\nimport req from \"@/request.js\";\n\nvar fieldDialog = function fieldDialog() {\n return import(\"@/components/form/customView/FieldDialog.vue\");\n};\n\nvar iconDialog = function iconDialog() {\n return import(\"@/components/dialog/IconDialog.vue\");\n};\n\nexport default {\n components: {\n TemplateEdit: TemplateEdit,\n fieldDialog: fieldDialog,\n iconDialog: iconDialog\n },\n props: {\n id: String\n },\n data: function data() {\n return {\n disabled: false,\n tabStatus: \"sql\",\n sqlList: [],\n //SQL生成集合\n tableList: [],\n //数据源中的实体表\n dialogSQLVisible: false,\n //sql生成器Dialog\n dialogVisible: false,\n data: {},\n dataSources: [],\n turnToIndex: \"\",\n isCheckSql: false,\n item: {},\n type: \"\",\n buttonDef: [],\n saveUrl: window.context.form + \"/form/query/querySqldef/save\",\n title: \"添加自定义视图\"\n };\n },\n mounted: function mounted() {\n var _this2 = this;\n\n form.getDataSource().then(function (resp) {\n _this2.dataSources = resp.data;\n });\n },\n methods: {\n //SQL生成器确认事件\n sqlOk: function sqlOk() {\n var this_ = this;\n\n if (this_.sqlList.length == 1) {\n for (var i = 0; i < this_.sqlList.length; i++) {\n if (this_.sqlList[i].connected) {\n if (this_.sqlList[i].relation.length > 0) {\n for (var j = 0; j < this_.sqlList[i].relation.length; j++) {\n //判断有没有添加关联关系\n if (!this_.sqlList[i].relation[j].relatedBind || !this_.sqlList[i].relation[j].connectedBind) {\n Message.warning(\"请先添加关联关系\");\n return;\n }\n }\n }\n } else if (!this_.sqlList[i].related) {\n Message.warning(\"请先添加被关联表\");\n return;\n }\n }\n }\n\n if (this_.sqlList.length > 1) {\n for (var _i = 0; _i < this_.sqlList.length; _i++) {\n if (this_.sqlList[_i].relation.length > 0) {\n for (var _j = 0; _j < this_.sqlList[_i].relation.length; _j++) {\n //判断有没有添加关联关系\n if (!this_.sqlList[_i].relation[_j].relatedBind || !this_.sqlList[_i].relation[_j].connectedBind) {\n Message.warning(\"请先添加关联关系\");\n return;\n }\n }\n }\n }\n }\n\n var sql = \"select * from \"; //生成的SQL语句\n\n for (var _i2 = 0; _i2 < this_.sqlList.length; _i2++) {\n if (_i2 == 0) {\n if (this_.sqlList[_i2].connected) {\n sql = sql + this_.sqlList[_i2].related + \" left join \" + this_.sqlList[_i2].connected + \" on \";\n } else {\n sql = sql + this_.sqlList[_i2].related;\n }\n } else {\n sql = sql + \" left join \" + this_.sqlList[_i2].connected + \" on \";\n }\n\n for (var _j2 = 0; _j2 < this_.sqlList[_i2].relation.length; _j2++) {\n if (this_.sqlList[_i2].relation[_j2].relatedBind && this_.sqlList[_i2].relation[_j2].connectedBind) {\n if (_j2 == 0) {\n sql = sql + this_.sqlList[_i2].relation[_j2].relatedBind + \" = \" + this_.sqlList[_i2].relation[_j2].connectedBind;\n } else {\n sql = sql + \" and \" + this_.sqlList[_i2].relation[_j2].relatedBind + \" = \" + this_.sqlList[_i2].relation[_j2].connectedBind;\n }\n }\n }\n }\n\n this_.data.sql = sql;\n this_.dialogSQLVisible = false;\n },\n handleSql: function handleSql(sqlAlias, index, type) {\n var this_ = this; //选择了关联表或被关联表后修改则需要清空关联关系\n\n if (this_.sqlList[index].relation.length > 0) {\n for (var j = 0; j < this_.sqlList[index].relation.length; j++) {\n if (type == \"related\") {\n if (this_.sqlList[index].relation[j].relatedBind) {\n this_.sqlList[index].relation[j].relatedBind = \"\";\n }\n }\n\n if (type == \"connected\") {\n if (this_.sqlList[index].relation[j].connectedBind) {\n this_.sqlList[index].relation[j].connectedBind = \"\";\n }\n }\n }\n }\n\n var params = {\n dsalias: this_.data.dsName,\n isTable: 1,\n objName: sqlAlias\n }; //获取数据源的字段\n\n var url = window.context.form + \"/form/customQuery/v1/getTable\";\n req.post(url, params).then(function (data) {\n if (type == \"related\") {\n //关联表\n this_.sqlList[index].fieldRelatedList = [];\n\n for (var i = 0; i < data.data.table.columnList.length; i++) {\n data.data.table.columnList[i].key = sqlAlias + \".\" + data.data.table.columnList[i].fieldName;\n data.data.table.columnList[i].value = data.data.table.columnList[i].fieldName + \"(\" + data.data.table.columnList[i].comment + \")\";\n this_.sqlList[index].fieldRelatedList.push(data.data.table.columnList[i]);\n }\n } else if (type == \"connected\") {\n //被关联表\n this_.sqlList[index].fieldConnectedList = [];\n\n for (var _i3 = 0; _i3 < data.data.table.columnList.length; _i3++) {\n data.data.table.columnList[_i3].key = sqlAlias + \".\" + data.data.table.columnList[_i3].fieldName;\n data.data.table.columnList[_i3].value = data.data.table.columnList[_i3].fieldName + \"(\" + data.data.table.columnList[_i3].comment + \")\";\n this_.sqlList[index].fieldConnectedList.push(data.data.table.columnList[_i3]);\n }\n }\n });\n },\n getDivision: function getDivision(sqlAlias, index, type) {\n var this_ = this;\n\n if (index != this_.sqlList.length - 1) {\n var name = \"\";\n\n if (type == \"related\") {\n name = \"关联表\";\n } else if (type == \"connected\") {\n name = \"被关联表\";\n }\n\n this_.$confirm(\"确认修改?\", \"修改\" + name + \"会清空下面所有关联信息\", {\n cancelButtonText: \"取消\",\n confirmButtonText: \"确定\",\n type: \"warning\",\n closeOnClickModal: false\n }).then(function () {\n //删除此下标之后的所有关联数据\n for (var i = this_.sqlList.length - 1; i >= 0; i--) {\n if (i > index) {\n this_.sqlList.splice(i, 1);\n }\n }\n\n if (type == \"related\") {\n this_.$refs.related[index].focus();\n } else if (type == \"connected\") {\n this_.$refs.connected[index].focus();\n }\n }).finally(function () {\n if (type == \"related\") {\n this_.$refs.related[index].blur();\n } else if (type == \"connected\") {\n this_.$refs.connected[index].blur();\n }\n });\n }\n },\n //关联表和被关联表删除按钮\n removeSqlList: function removeSqlList(index) {\n var this_ = this;\n\n if (index != this_.sqlList.length - 1) {\n this_.$confirm(\"确认删除?\", \"点击删除会清空下面所有关联信息\", {\n cancelButtonText: \"取消\",\n confirmButtonText: \"确定\",\n type: \"warning\",\n closeOnClickModal: false\n }).then(function () {\n //删除此下标之后的所有关联数据\n for (var i = this_.sqlList.length - 1; i >= 0; i--) {\n if (i >= index) {\n this_.sqlList.splice(i, 1);\n }\n }\n });\n } else {\n this_.sqlList.splice(index, 1);\n }\n },\n //根据数据库表名获取字段(被关联表)\n changeSql: function changeSql(sqlAlias, index, type) {\n var this_ = this;\n this_.handleSql(sqlAlias, index, type);\n },\n //添加sql关联表\n addSqlList: function addSqlList() {\n //没添加被关联表不允许添加第二组数据\n if (this.sqlList.length == 1 && this.sqlList[0].connected == \"\") {\n Message.warning(\"请先添加被关联表\");\n return;\n }\n\n var tables = []; //从第二组开始只能选择的数据库表\n //添加了被关联表\n\n if (this.sqlList.length > 0) {\n for (var i = 0; i < this.sqlList.length; i++) {\n if (this.sqlList[i].relation.length > 0) {\n for (var j = 0; j < this.sqlList[i].relation.length; j++) {\n //判断有没有添加关联关系\n if (!this.sqlList[i].relation[j].relatedBind || !this.sqlList[i].relation[j].connectedBind) {\n Message.warning(\"请先添加关联关系\");\n return;\n }\n }\n }\n\n if (this.sqlList[i].related) {\n tables.push(this.sqlList[i].related);\n }\n\n if (this.sqlList[i].connected) {\n tables.push(this.sqlList[i].connected);\n }\n }\n } //先把所有数据库表type修改为1\n\n\n for (var _j3 = 0; _j3 < this.tableList.length; _j3++) {\n this.tableList[_j3].type = \"1\";\n } //根据上面的关联关系修改数据库表type为2给下一组选择\n\n\n if (tables.length > 0) {\n for (var _i4 = 0; _i4 < this.tableList.length; _i4++) {\n if (tables.indexOf(this.tableList[_i4].name) != -1) {\n this.tableList[_i4].type = \"2\"; //标记再次添加一组关联表的时候默认只能选择type为2的数据库表\n }\n }\n } //满足以上条件后\n\n\n this.sqlList.push({\n related: '',\n connected: '',\n relation: [{}],\n fieldRelatedList: [],\n fieldConnectedList: []\n });\n },\n //打开SQL生成对话框\n generateSql: function generateSql() {\n var this_ = this;\n this_.dialogSQLVisible = true;\n this_.tableList = []; //获取数据源中的表\n\n var params = {\n dsalias: this_.data.dsName,\n isTable: 1,\n objName: \"\"\n };\n var url = window.context.form + \"/form/customQuery/v1/getByDsObjectName\";\n req.post(url, params).then(function (data) {\n if (!data || data.data.length == 0) {\n Message.warning(\"该数据源中未查询到表或视图\");\n return;\n }\n\n for (var i = 0; i < data.data.length; i++) {\n data.data[i].type = \"1\"; //添加第一组关联表的时候调用\n\n data.data[i].comment = data.data[i].name + \"(\" + data.data[i].comment + \")\";\n this_.tableList.push(data.data[i]);\n }\n });\n },\n //关闭SQL生成对话框\n handleClose: function handleClose() {\n this.dialogSQLVisible = false;\n },\n beforeClose: function beforeClose() {\n this.dialogVisible = false;\n },\n handleOpen: function handleOpen() {\n var _this3 = this;\n\n this.tabStatus = \"sql\";\n this.dialogVisible = true;\n this.disabled = false;\n this.$nextTick(function () {\n if (_this3.id) {\n _this3.title = \"编辑自定义视图\";\n form.getCustomViewById(_this3.id).then(function (response) {\n _this3.data = response;\n _this3.buttonDef = JSON.parse(_this3.data.buttonDef);\n\n for (var i = 0; i < _this3.data.metafields.length; i++) {\n if (_this3.data.metafields[i].alarmSetting) {\n _this3.data.metafields[i].alarmSetting = JSON.parse(_this3.data.metafields[i].alarmSetting);\n }\n\n if (_this3.data.metafields[i].controlContent) {\n _this3.data.metafields[i].controlContent = JSON.parse(_this3.data.metafields[i].controlContent);\n }\n }\n });\n _this3.isCheckSql = true;\n } else {\n _this3.title = \"添加自定义视图\";\n _this3.data = {\n metafields: [],\n buttonDef: [{\n inRow: \"0\",\n name: \"导出\",\n triggerType: \"onclick\",\n isDefault: \"1\",\n urlPath: \"exports()\"\n }],\n dsName: \"LOCAL\",\n supportTab: \"1\",\n alias: \"\"\n };\n _this3.buttonDef = _this3.data.buttonDef;\n _this3.isCheckSql = false;\n }\n });\n },\n checkSql: function checkSql() {\n var _this4 = this;\n\n if (!this.data.sql) {\n this.$message({\n type: \"warning\",\n message: \"请输入sql语句\"\n });\n return;\n }\n\n var checkSql = JSON.stringify(this.data.sql);\n checkSql = checkSql.replace(/\\s/g, \"\");\n\n if (checkSql.toLocaleUpperCase().indexOf(\"ORDERBY\") != -1) {\n this.$message({\n type: \"warning\",\n message: \"请检查sql语句,不能包含order by排序语句\"\n });\n return;\n }\n\n if (checkSql.toLocaleUpperCase().indexOf(\"GROUPBY\") != -1) {\n this.$message({\n type: \"warning\",\n message: \"请检查sql语句,不能包含group by分组语句\"\n });\n return;\n }\n\n var param = {\n sql: this.data.sql,\n dsName: this.data.dsName\n };\n form.checkSql(param).then(function (response) {\n if (response.state) {\n _this4.$message({\n type: \"success\",\n message: response.message\n });\n\n _this4.isCheckSql = true;\n }\n });\n },\n addButton: function addButton() {\n var json = {};\n json.inRow = true;\n json.triggerType = \"onclick\";\n json.isDefault = \"0\";\n this.buttonDef.push(json);\n },\n deleteRow: function deleteRow(index, rows) {\n rows.splice(index, 1);\n },\n changeAlias: function changeAlias() {\n document.getElementsByName(\"dataAlias\")[0].style.border = \"\";\n },\n saveData: function saveData() {\n var _this5 = this;\n\n this.disabled = true;\n this.beforeSaveData();\n utils.validateForm(this, \"customViewEdit\").then(function () {\n req.post(_this5.saveUrl, _this5.data).then(function (resp) {\n _this5.disabled = false;\n\n if (resp.data.state) {\n _this5.$message({\n message: resp.data.message,\n type: \"success\"\n });\n\n _this5.$confirm('保存成功,是否继续添加?', '提示', {\n confirmButtonText: '继续操作',\n cancelButtonText: '退出',\n type: 'warning'\n }).then(function () {\n document.getElementsByName(\"dataAlias\")[0].focus();\n document.getElementsByName(\"dataAlias\")[0].style.border = \"1px solid red\";\n }).catch(function () {\n _this5.afterSaveData();\n });\n } else {\n _this5.afterSaveData();\n }\n }).catch(function () {\n _this5.disabled = false;\n });\n }).catch(function (reason) {\n _this5.disabled = false;\n\n _this5.$message.warning(\"请正确填写表单信息\");\n });\n },\n beforeSaveData: function beforeSaveData() {\n for (var i = 0; i < this.data.metafields.length; i++) {\n this.sn = i + 1;\n\n if (this.data.metafields[i].alarmSetting) {\n this.data.metafields[i].alarmSetting = JSON.stringify(this.data.metafields[i].alarmSetting);\n }\n\n if (this.data.metafields[i].dialogAlarmSetting) {\n this.data.metafields[i].alarmSetting = JSON.stringify(this.data.metafields[i].dialogAlarmSetting);\n }\n\n if (this.data.metafields[i].controlContent) {\n if (this.data.metafields[i].controlContent.alias) {\n var controlContent = {};\n controlContent.alias = this.data.metafields[i].controlContent.alias;\n controlContent.resultfield = this.data.metafields[i].controlContent.resultfield;\n this.data.metafields[i].controlContent = JSON.stringify(controlContent);\n } else {\n this.data.metafields[i].controlContent = JSON.stringify(this.data.metafields[i].controlContent);\n }\n }\n\n this.data.metafields[i].isShow = this.data.metafields[i].isShow ? 1 : 0;\n this.data.metafields[i].isSearch = this.data.metafields[i].isSearch ? 1 : 0;\n this.data.metafields[i].isCombine = this.data.metafields[i].isCombine ? 1 : 0;\n }\n\n if (this.buttonDef) {\n this.data.buttonDef = JSON.stringify(this.buttonDef);\n }\n },\n afterSaveData: function afterSaveData() {\n this.close();\n this.$emit(\"after-save\");\n },\n refresh: function refresh() {\n var _this6 = this;\n\n var loading = this.$loading({\n lock: true,\n text: '正在刷新,请稍后',\n spinner: 'el-icon-loading',\n background: 'rgba(0, 0, 0, 0.7)'\n });\n form.refreshFields(this.id).then(function (response) {\n _this6.data.metafields = response;\n loading.close();\n\n if (response) {\n _this6.$message({\n type: \"success\",\n message: \"刷新成功\"\n });\n }\n });\n },\n close: function close() {\n this.$emit(\"beforeClose\");\n this.dialogVisible = false;\n this.sqlList = []; //清空数据源中的实体表(关联表和被关联表)\n },\n fieldDialog: function fieldDialog(type, item) {\n this.type = type;\n this.item = item;\n this.$refs.fieldDialog.handleOpen();\n },\n select: function select(data) {\n for (var i = 0; i < this.data.metafields.length; i++) {\n if (this.data.metafields[i].id === data.id) {\n this.data.metafields.splice(i, 1);\n this.data.metafields.splice(i, 0, data);\n break;\n }\n }\n },\n fieldSaveX: function fieldSaveX(data) {\n var _this7 = this;\n\n this.data.metafields.forEach(function (item, index) {\n if (item.id === data.id && data.isVirtual) {\n if (_this7.type === \"X\") {\n _this7.data.metafields.push(data);\n } else if (item.isVirtual) {\n _this7.data.metafields.splice(index, 1, data);\n }\n }\n });\n },\n checkHasX: function checkHasX(field) {\n var b = false;\n\n for (var i = 0; i < this.data.metafields.length; i++) {\n if (this.data.metafields[i].isVirtual === 1 && this.data.metafields[i].virtualFrom === field.fieldName) {\n b = true;\n }\n }\n\n return b;\n },\n arrayMove: function arrayMove(group, item, direct) {\n if (group === \"buttonDef\") {\n this[group] = utils.arrayMove(this[group], item, direct);\n } else {\n this.data[group] = utils.arrayMove(this.data[group], item, direct);\n }\n },\n selectIcon: function selectIcon(data, index, item) {\n item.icon = data;\n this.buttonDef.splice(index, 1);\n this.buttonDef.splice(index, 0, item);\n },\n getTenantCode: function getTenantCode() {\n // 获取租户别名\n var _this = this;\n\n var currentUser = JSON.parse(sessionStorage.getItem(\"currentUser\"));\n\n if (currentUser.userAttrs.tenantId != \"-1\") {\n var url = \"${uc}/uc/tenantManage/v1/getJson?id=\" + currentUser.userAttrs.tenantId;\n this.$http.get(url).then(function (resp) {\n var tenantManageCode = resp.data.code;\n\n _this.$copyText(tenantManageCode).then(function (e) {\n _this.$message.success('租户别名复制成功,可粘贴至SQL语句中');\n });\n }); // console.log(currentUser.userAttrs.tenantId)\n } else {\n _this.$message.warning('当前登录账号不是租户账号');\n }\n }\n }\n};",null]}