{"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\\customquery\\CustomQueryList.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\src\\views\\form\\customquery\\CustomQueryList.vue","mtime":1675071992960},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":["//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\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 { Message } from \"element-ui\";\r\nimport req from \"@/request.js\";\r\nconst customQueryShow = () =>\r\n import(\"@/views/form/customquery/CustomQueryShow.vue\");\r\nconst VariablesSelector = () =>\r\n import(\"@/components/common/VariablesSelector.vue\");\r\nimport form from \"@/api/form.js\";\r\nexport default {\r\n components: { customQueryShow, VariablesSelector },\r\n computed: {\r\n //删除关联查询数据的URL\r\n deleteUrl: function () {\r\n return window.context.form + \"/form/customQuery/v1/removes\";\r\n },\r\n //保存关联查询数据的URL (关联查询新增修改时)\r\n saveUrl: function () {\r\n return window.context.form + \"/form/customQuery/v1/save\";\r\n },\r\n addColumnsTitle: function () {\r\n let statusWord = \"\";\r\n switch (this.tabStatus) {\r\n case \"condition\":\r\n statusWord = \"条件\";\r\n break;\r\n case \"return\":\r\n statusWord = \"返回\";\r\n break;\r\n case \"order\":\r\n statusWord = \"排序\";\r\n break;\r\n }\r\n return `将左侧所选字段添加到${statusWord}字段中`;\r\n },\r\n },\r\n data() {\r\n return {\r\n isSqlBuildType: false,\r\n isSubmit: true, //侧边栏是否提交\r\n number_opList: [\r\n { value: \"等于\", key: \"EQ\" },\r\n { value: \"大于等于\", key: \"GE\" },\r\n { value: \"大于\", key: \"GT\" },\r\n { value: \"小于\", key: \"LT\" },\r\n { value: \"小于等于\", key: \"LE\" },\r\n { value: \"in\", key: \"IN\" },\r\n ], //运算条件数组-number\r\n string_opList: [\r\n { value: \"等于\", key: \"EQ\" },\r\n { value: \"like\", key: \"LK\" },\r\n { value: \"likeEnd\", key: \"LFK\" },\r\n { value: \"in\", key: \"IN\" },\r\n ], //运算条件数组-varchar\r\n date_opList: [\r\n { value: \"等于\", key: \"EQ\" },\r\n // { value: \"between\", key: \"BETWEEN\" },\r\n { value: \"大于等于\", key: \"GE\" },\r\n { value: \"小于等于\", key: \"LE\" },\r\n ], //运算条件数组-日期\r\n value_sourceList_list: [\r\n { value: \"参数传入\", key: \"1\" },\r\n { value: \"固定值\", key: \"2\" },\r\n ], //值来源数组_列表\r\n value_sourceList_tree: [\r\n { value: \"固定值\", key: \"2\" },\r\n { value: \"动态传入\", key: \"4\" },\r\n ], //值来源数组_树\r\n sort_typeList: [\r\n { value: \"升序\", key: \"asc\" },\r\n { value: \"降序\", key: \"desc\" },\r\n ], //排序字段升序还是降序\r\n param_ctList: [{ value: \"单行文本框\", key: \"1\" }], //控制器的类型\r\n tabStatus: \"return\", //设置列的条件字段、返回字段等的tabs标签页\r\n table: {}, //获取设置列获取字段信息\r\n titleSetting: \"未命名-设置列\", //设置列侧边栏的名称\r\n dialogVisibleSetting: false, //是否显示可配置设置列\r\n disabled: false, //是否禁止操作\r\n tableOrViewList: [], //数据源表\r\n objName: \"\", //查询数据源时表或视图名称\r\n title: \"添加关联查询\",\r\n data: [], //列表数据\r\n treeSidebarData: {\r\n diySql: \"\",\r\n }, //关联查询的新增修改数据\r\n pageResult: {\r\n page: 1,\r\n pageSize: 20,\r\n total: 0,\r\n },\r\n dataSourcesInBean: [], //数据源池\r\n isTableList: [\r\n {\r\n key: 0,\r\n value: \"视图\",\r\n },\r\n {\r\n key: 1,\r\n value: \"表\",\r\n },\r\n ], //表和视图\r\n dialogVisible: false, //侧边栏是否显示\r\n selectOptions: [],\r\n selectOp: \"\",\r\n cmOptions: {\r\n showCursorWhenSelecting: true,\r\n value: \"\",\r\n mode: \"application/json\",\r\n readOnly: false,\r\n smartIndent: true,\r\n autofocus: true,\r\n tabSize: 2,\r\n theme: \"eclipse\",\r\n lineNumbers: true,\r\n line: true,\r\n inputStyle: \"textarea\",\r\n },\r\n uploadDialogVisible: false,\r\n fileList:[],\r\n uploadUrl: window.context.form + \"/form/customQuery/v1/import\",\r\n innerValidation:true\r\n };\r\n },\r\n methods: {\r\n //鼠标选中行改变复选框\r\n rowClick(row, column, event) {\r\n this.$refs.htTable.$refs.htTable.toggleRowSelection(row);\r\n },\r\n changeOptions() {\r\n if (this.treeSidebarData.diySql) {\r\n this.treeSidebarData.diySql =\r\n this.treeSidebarData.diySql + this.selectOp;\r\n } else {\r\n this.treeSidebarData.diySql = this.selectOp;\r\n }\r\n this.selectOp = null;\r\n this.$forceUpdate();\r\n },\r\n diySqlChange(e){\r\n this.$forceUpdate();\r\n },\r\n handleVarSelectorClick(s, n) {\r\n if (n && n.data && n.data.field) {\r\n const fieldExp = \"${\" + n.data.field + \"}\";\r\n this.$refs.dataParamCode &&\r\n this.$refs.dataParamCode.codemirror.replaceSelection(fieldExp);\r\n }\r\n },\r\n //添加为对话框\r\n saveDialogByQuery(id) {\r\n this.$confirm(\"确认添加为对话框?\")\r\n .then((_) => {\r\n this.getDialogById(id, \"add\");\r\n })\r\n .catch((_) => {});\r\n },\r\n //预览\r\n preview(row) {\r\n if (!row || !row.alias) {\r\n this.$message.error(`所要预览的关联查询为空或其别名不存在`);\r\n return;\r\n }\r\n const title = `${row.name} - 关联查询预览`;\r\n this.$refs.customQueryShow.showDialog(row.alias, title); //显示自定义对话框列表预览弹框\r\n },\r\n //判断数据是否包含某个对象,并返回数据包含对象的下标\r\n indexArray(array, item) {\r\n if (array.length == 0) {\r\n return -1;\r\n }\r\n for (let i = 0; i < array.length; i++) {\r\n if (JSON.stringify(array[i]) == JSON.stringify(item)) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n },\r\n //批量勾选设置列的字段\r\n handleSelectionChange(rows) {\r\n //先把所有选择的字段设置为未选中\r\n for (let i = 0; i < this.table.columnList.length; i++) {\r\n if (this.table.columnList[i].selected) {\r\n this.table.columnList[i].selected = false;\r\n }\r\n }\r\n if (rows && rows.length > 0) {\r\n //再根据勾选的字段设置为选中\r\n for (let i = 0; i < rows.length; i++) {\r\n let res = this.indexArray(this.table.columnList, rows[i]);\r\n this.table.columnList[res].selected = true;\r\n }\r\n }\r\n },\r\n //保存设置列的内容\r\n save() {\r\n const this_ = this;\r\n this_.$validator.validateAll(\"settingSave\").then((result) => {\r\n if (result) {\r\n for (let i in this.treeSidebarData.conditionfield) {\r\n let column = this.treeSidebarData.conditionfield[i];\r\n if (column.dbType == \"date\" && column.condition == \"BETWEEN\") {\r\n column.defaultValue += \"|\" + column.endDate;\r\n }\r\n }\r\n if (!this_.treeSidebarData.diySql && this_.isSqlBuildType) {\r\n Message.warning(\"请添加sql语句\");\r\n return;\r\n }\r\n if (\r\n this.treeSidebarData.sortfield &&\r\n this.treeSidebarData.sortfield.length > 3\r\n ) {\r\n Message.warning(\"您添加的排序字段太多,最多只能添加3个排序字段!\");\r\n return;\r\n }\r\n this.dialogVisibleSetting = false;\r\n } else {\r\n let arr = this_.$validator.errors.items.filter(\r\n (item) => item.scope == \"settingSave\"\r\n );\r\n let errorLength = arr.length;\r\n this_.$message({\r\n showClose: true,\r\n message: `有${errorLength}个字段未通过校验,请正确填写表单内容。`,\r\n type: \"warning\",\r\n });\r\n }\r\n });\r\n },\r\n //关闭设置列弹框\r\n close() {\r\n let this_ = this;\r\n this_.$validator.validateAll(\"settingSave\").then(result=>{\r\n if(!result){\r\n this_.innerValidation = false;\r\n this_.doClose();\r\n return ;\r\n }\r\n for (let i in this.treeSidebarData.conditionfield) {\r\n let column = this.treeSidebarData.conditionfield[i];\r\n if (column.dbType == \"date\" && column.condition == \"BETWEEN\") {\r\n column.defaultValue += \"|\" + column.endDate;\r\n }\r\n }\r\n if (!this_.treeSidebarData.diySql && this_.isSqlBuildType) {\r\n this_.innerValidation = false;\r\n this_.doClose();\r\n return;\r\n }\r\n if (\r\n this.treeSidebarData.sortfield &&\r\n this.treeSidebarData.sortfield.length > 3\r\n ) {\r\n this_.innerValidation = false;\r\n this_.doClose();\r\n return;\r\n }\r\n this_.innerValidation = true;\r\n this_.doClose();\r\n })\r\n },\r\n doClose(){\r\n this.dialogVisibleSetting = false;\r\n },\r\n //添加设置列的字段\r\n addFields() {\r\n let column = {};\r\n column.fieldName = \"\";\r\n column.comment = \"\";\r\n column.columnType = \"varchar\";\r\n this.table.columnList.push(column);\r\n },\r\n //把设置列的字段新增到条件字段、返回字段等\r\n addColumns() {\r\n //检查是否选择了列\r\n for (let i in this.table.columnList) {\r\n let c = this.table.columnList[i];\r\n if (c.selected) break;\r\n if (i == this.table.columnList.length - 1) {\r\n if (i == this.table.columnList.length - 1) {\r\n Message.warning(\"请选择左边的列\");\r\n }\r\n }\r\n }\r\n //判断tabs标签页是否选择了条件字段\r\n if (this.tabStatus == \"condition\") {\r\n for (let i in this.table.columnList) {\r\n let c = this.table.columnList[i];\r\n if (!c.selected) continue;\r\n let column = {};\r\n column.field = c.fieldName;\r\n column.comment = c.comment;\r\n column.condition = \"EQ\";\r\n column.dbType = c.columnType;\r\n column.defaultType = \"2\";\r\n column.defaultValue = \"\";\r\n\r\n let show = this.judgeAryData(\r\n this.treeSidebarData.conditionfield,\r\n column\r\n );\r\n if (show) {\r\n this.treeSidebarData.conditionfield.push(column);\r\n }\r\n }\r\n //去除重复项\r\n this.treeSidebarData.resultfield.unique(function (a, b) {\r\n return a.field == b.field;\r\n });\r\n //判断tabs标签页是否选择了返回字段\r\n } else if (this.tabStatus == \"return\") {\r\n for (let i in this.table.columnList) {\r\n let c = this.table.columnList[i];\r\n\r\n if (!c.selected) continue;\r\n let column = {};\r\n column.field = c.fieldName;\r\n column.comment = c.comment;\r\n column.idKey = \"0\";\r\n column.AggFuncOp = \"\"; //合计函数运算符\r\n column.columnType = c.columnType; //字段类型\r\n\r\n let show = this.judgeAryData(\r\n this.treeSidebarData.resultfield,\r\n column\r\n );\r\n if (show) {\r\n this.treeSidebarData.resultfield.push(column);\r\n }\r\n }\r\n //去除重复项\r\n this.treeSidebarData.resultfield.unique(function (a, b) {\r\n return a.field == b.field;\r\n });\r\n } else if (this.tabStatus == \"order\") {\r\n let errorMsg=\"\";\r\n //判断tabs标签页是否选择了排序字段\r\n for (let i in this.table.columnList) {\r\n let c = this.table.columnList[i];\r\n if (!c.selected) continue;\r\n let column = {};\r\n //大文本类型与一些未明确的字段类型不可作为排序字段\r\n if(c.columnType =='clob' || !c.columnType ){\r\n errorMsg+=c.fieldName+\" \";\r\n \r\n continue;\r\n }\r\n column.field = c.fieldName;\r\n column.sortType = \"asc\";\r\n column.comment = c.comment;\r\n\r\n let show = this.judgeAryData(this.treeSidebarData.sortfield, column);\r\n if (show) {\r\n this.treeSidebarData.sortfield.push(column);\r\n }\r\n }\r\n if(errorMsg){\r\n this.$message.error('字段:'+errorMsg+'的字段类型不支持作为排序字段');\r\n }\r\n //去除重复项\r\n this.treeSidebarData.sortfield.unique(function (a, b) {\r\n return a.field == b.field;\r\n });\r\n }\r\n },\r\n //判断是否存在重复字段\r\n judgeAryData(data, column) {\r\n let show = true;\r\n for (var i = 0; i < data.length; i++) {\r\n if (\r\n data[i].field == column.field &&\r\n data[i].comment == column.comment\r\n ) {\r\n show = false;\r\n break;\r\n }\r\n }\r\n return show;\r\n },\r\n //删除字段\r\n deleteSetting(list, index) {\r\n list.splice(index, 1);\r\n },\r\n sourceListChang(item){\r\n //条件字段是参数传入或动态传入,但是固定值还有值,则清空固定值\r\n if((item.defaultType==\"1\" || item.defaultType==\"4\") && item.defaultValue!=\"\"){\r\n for(let i =0;i 0 &&\r\n this.selectOptions.length == 0\r\n ) {\r\n this.treeSidebarData.conditionfield.forEach((item) => {\r\n if (item.defaultType == \"1\") {\r\n let selectOp = {};\r\n selectOp.field = item.field;\r\n selectOp.comment = item.comment;\r\n this.selectOptions.push(selectOp);\r\n }\r\n });\r\n }\r\n if (\r\n this.treeSidebarData.sqlBuildType === 0 ||\r\n !this.treeSidebarData.sqlBuildType\r\n ) {\r\n this.isSqlBuildType = false;\r\n } else {\r\n this.isSqlBuildType = true;\r\n }\r\n if (this.treeSidebarData.name) {\r\n this.titleSetting = this.treeSidebarData.name + \"-设置列\";\r\n } else {\r\n this.titleSetting = \"未命名-设置列\";\r\n }\r\n //打开设置如果是数据源,先获取数据源的字段\r\n if (this.treeSidebarData.dsType == \"dataSource\") {\r\n let params = {\r\n dsalias: this.treeSidebarData.dsalias,\r\n isTable: this.treeSidebarData.isTable,\r\n objName: this.treeSidebarData.objName,\r\n };\r\n const this_ = this;\r\n //获取数据源的字段\r\n let url = window.context.form + \"/form/customQuery/v1/getTable\";\r\n req.post(url, params).then(function (data) {\r\n this_.table = data.data.table;\r\n this_.handleFilterColumn();\r\n });\r\n }\r\n //打开设置列如果不是数据源\r\n if (this.treeSidebarData.dsType != \"dataSource\") {\r\n //值来源数组_树改变如下\r\n this.value_sourceList_tree = [{ key: \"固定值\", value: \"2\" }];\r\n //判断REST接口是否是GET请求\r\n if (this.treeSidebarData.requestType == \"GET\") {\r\n //运算条件数组-varchar改变如下\r\n this.string_opList = [{ value: \"等于\", key: \"EQ\" }];\r\n } else {\r\n //运算条件数组-varchar改变如下\r\n this.string_opList = [{ value: \"like\", key: \"LK\" }];\r\n }\r\n if (this.treeSidebarData.conditionfield) {\r\n this.treeSidebarData.conditionfield.forEach((item) => {\r\n if (item.defaultValue == \"1\") {\r\n let selectOp = {};\r\n selectOp.field = item.field;\r\n selectOp.comment = item.comment;\r\n this.selectOptions.push(selectOp);\r\n }\r\n });\r\n }\r\n //字段设置为空\r\n this.table = { columnList: [] };\r\n }\r\n },\r\n //查询数据源表或视图\r\n getByDsObjectName() {\r\n if (this.treeSidebarData.id) {\r\n return;\r\n }\r\n if (this.treeSidebarData.dsalias == null) {\r\n Message.warning(\"请选择数据源\");\r\n return;\r\n }\r\n this.params = {};\r\n this.params.dsalias = this.treeSidebarData.dsalias;\r\n this.params.isTable = this.treeSidebarData.isTable;\r\n this.params.objName = this.objName;\r\n const this_ = this;\r\n let url = window.context.form + \"/form/customQuery/v1/getByDsObjectName\";\r\n req.post(url, this_.params).then(function (data) {\r\n this_.tableOrViewList = []; //每次查询前先设置为空\r\n if (!data || data.data.length == 0) {\r\n Message.warning(\"该数据源中未查询到表或视图\");\r\n return;\r\n }\r\n Message.success(\"查询成功\");\r\n for (let i = 0; i < data.data.length; i++) {\r\n data.data[i].comment =\r\n data.data[i].name + \"(\" + data.data[i].comment + \")\";\r\n this_.tableOrViewList.push(data.data[i]);\r\n }\r\n //选择表或试图时默认选择第一个\r\n this_.treeSidebarData.objName = this_.tableOrViewList[0].name;\r\n });\r\n },\r\n //关闭侧边栏\r\n handleClose() {\r\n this.treeSidebarData = {}; //清除保存过的数据\r\n this.isSqlBuildType = false;\r\n this.dialogVisible = false;\r\n },\r\n //关联查询新增修改保存后操作\r\n afterSaveData() {\r\n if (this.treeSidebarData.conditionfield.length == 0) {\r\n this.selectOptions = [];\r\n }\r\n this.dialogVisible = false;\r\n this.$refs.htTable.load(); //重新加载列表数据\r\n },\r\n //关联查询新增修改保存前操作\r\n beforeSaveData() {\r\n if(!this.innerValidation){\r\n Message.warning(\"设置列校验失败,请进入设置列中完善信息并点击右上角保存按钮\");\r\n this.isSubmit = false;\r\n return ;\r\n }\r\n //如果数据来源不是数据源则没有所属数据源\r\n if (this.treeSidebarData.dsType != \"dataSource\") {\r\n this.treeSidebarData.dsalias = \"\";\r\n }\r\n //sql生成的方式(0:页面设置 1:diy)\r\n if (this.isSqlBuildType) {\r\n this.treeSidebarData.sqlBuildType = 1;\r\n } else {\r\n this.treeSidebarData.sqlBuildType = 0;\r\n }\r\n if (\r\n this.treeSidebarData.dsType == \"dataSource\" &&\r\n !this.treeSidebarData.id\r\n ) {\r\n if (this.treeSidebarData.objName == \"\") {\r\n Message.warning(\"请选择表或视图\");\r\n this.isSubmit = false;\r\n return;\r\n }\r\n }\r\n if (this.treeSidebarData.resultfield.length == 0) {\r\n Message.warning(\"请设置需要返回的字段\");\r\n this.isSubmit = false;\r\n return;\r\n }\r\n this.isSubmit = true;\r\n //保存成功后清除vuex中的数据,预览时不用再刷新\r\n this.$store.dispatch(\"form/clearCustomQuery\", this.treeSidebarData.alias);\r\n },\r\n //点击按钮打开侧边栏\r\n showDialog(action, id) {\r\n this.dialogVisible = true;\r\n if (action) {\r\n this.objName = \"\";\r\n if (action == \"add\") {\r\n this.title = \"添加关联查询\";\r\n this.disabled = false;\r\n this.treeSidebarData = {\r\n objName: \"\",\r\n conditionfield: [],\r\n resultfield: [],\r\n sortfield: [],\r\n needPage: 0,\r\n dsType: \"dataSource\",\r\n isTable: 1,\r\n dsalias: \"LOCAL\",\r\n alias: \"\",\r\n requestType: \"POST\",\r\n pageKey: \"page\",\r\n pageSizeKey: \"pageSize\",\r\n totalKey: \"total\",\r\n listKey: \"\",\r\n name: \"\",\r\n pageSize: 10,\r\n };\r\n } else if (action == \"edit\") {\r\n this.disabled = true;\r\n this.title = \"编辑关联查询\";\r\n this.getDialogById(id); //根据关联查询信息ID查询关联查询所有信息\\\r\n }\r\n }\r\n },\r\n //根据关联查询信息ID查询关联查询所有信息\r\n getDialogById(id, action) {\r\n const this_ = this;\r\n if (!id) return;\r\n let url = window.context.form + \"/form/customQuery/v1/\" + id;\r\n req.get(url).then(function (data) {\r\n data = data.data;\r\n this_.treeSidebarData = data;\r\n this_.treeSidebarData.resultfield = JSON.parse(data.resultfield);\r\n this_.treeSidebarData.sortfield = JSON.parse(data.sortfield);\r\n this_.treeSidebarData.conditionfield = JSON.parse(data.conditionfield);\r\n\r\n //添加为对话框\r\n if (action && action == \"add\") {\r\n if (this_.treeSidebarData.needPage == 0) {\r\n this_.treeSidebarData.needPage = false;\r\n } else {\r\n this_.treeSidebarData.needPage = true;\r\n }\r\n for (let i = 0; i < this_.treeSidebarData.resultfield.length; i++) {\r\n this_.treeSidebarData.resultfield[i].idKey = \"0\";\r\n this_.treeSidebarData.resultfield[i].AggFuncOp = \"\"; //合计函数运算符\r\n }\r\n let url =\r\n window.context.form + \"/form/customQuery/v1/saveDialogByQuery\";\r\n req.post(url, this_.treeSidebarData).then(function (rep) {\r\n rep = rep.data;\r\n if (rep && rep.state) {\r\n Message.success(rep.message);\r\n } else {\r\n Message.error(rep.message || \"保存失败\");\r\n }\r\n });\r\n }\r\n });\r\n },\r\n //页面加载显示数据\r\n loadData(param, cb) {\r\n // param.sorter = [{ property: \"CREATE_TIME_\", direction: \"DESC\" }]; //排序字段\r\n req\r\n .post(window.context.form + \"/form/customQuery/v1/list\", param)\r\n .then((response) => {\r\n this.data = response.data.rows;\r\n this.pageResult = {\r\n page: response.data.page,\r\n pageSize: response.data.pageSize,\r\n total: response.data.total,\r\n };\r\n })\r\n .finally(() => cb());\r\n },\r\n handleCommond(param) {\r\n switch (param.command) {\r\n case \"preview\":\r\n this.preview(param.row);\r\n break;\r\n case \"dialog\":\r\n this.saveDialogByQuery(param.row.id);\r\n break;\r\n }\r\n },\r\n // 设置参数的面板中tab切换时\r\n handleTabSwitch(m) {\r\n if (m.name == \"dataParam\") {\r\n this.$refs.dataParamCode && this.$refs.dataParamCode.refresh();\r\n }\r\n // 选中自定义SQL tab\r\n if(m.name == \"custom\"){\r\n // 清空自定义sql条件字段\r\n this.selectOptions.splice(0,this.selectOptions.length);\r\n if (this.treeSidebarData.conditionfield) {\r\n this.treeSidebarData.conditionfield.forEach(item => {\r\n if (item.defaultType == \"1\") {\r\n let selectOp = {};\r\n selectOp.field = item.field;\r\n selectOp.comment = item.comment;\r\n this.selectOptions.push(selectOp);\r\n }\r\n });\r\n }\r\n }\r\n },\r\n handleExport(){\r\n let selection = this.$refs.htTable.$refs.htTable.selection;\r\n if(!selection || selection.length == 0){\r\n this.$message({type:\"warning\",message:\"请至少选择一条数据\"});\r\n return;\r\n }\r\n let ids = [];\r\n for(let i = 0;i < selection.length ; i++){\r\n ids.push(selection[i].id);\r\n }\r\n req.download(window.context.form + \"/form/customQuery/v1/export?ids=\"+ids.join(\",\"));\r\n },\r\n //上传对话框关闭\r\n beforeClose(){\r\n this.fileList = [];\r\n this.uploadDialogVisible = false;\r\n },\r\n handleImport(param){\r\n let formData = new FormData();\r\n formData.append(\"file\",param.file);\r\n form.importCustomQuery(formData).then(resp=>{\r\n if(resp.state){\r\n this.$message({type:\"success\",message:resp.message});\r\n this.beforeClose();\r\n this.$refs.htTable.load(); //重新加载列表数据\r\n }else{\r\n this.beforeClose();\r\n }\r\n })\r\n },\r\n uploadSubmit(){\r\n if(this.$refs.elUpload.uploadFiles.length == 0){\r\n this.$message({type:\"warning\",message:\"请上传文件\"});\r\n }\r\n this.$refs.elUpload.submit();\r\n },\r\n handleFilterColumn(){\r\n for(let i = this.table.columnList.length - 1 ; i >= 0 ; i--){\r\n if(this.table.columnList[i].fieldName && this.table.columnList[i].fieldName.toLowerCase() == \"f_form_data_rev_\"){\r\n this.table.columnList.splice(i,1);\r\n }\r\n }\r\n }\r\n },\r\n mounted() {\r\n this.$validator = this.$root.$validator;\r\n const this_ = this;\r\n //获取数据源池\r\n req\r\n .get(window.context.portal + \"/sys/sysDataSource/v1/getDataSources\")\r\n .then(function (data) {\r\n this_.dataSourcesInBean = data.data;\r\n });\r\n },\r\n};\r\n",null]}