{"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<this.treeSidebarData.conditionfield.length;i++){\r\n          if((this.treeSidebarData.conditionfield[i].defaultType==\"1\" || this.treeSidebarData.conditionfield[i].defaultType==\"4\") \r\n          && this.treeSidebarData.conditionfield[i].defaultValue!=\"\"){\r\n            this.treeSidebarData.conditionfield[i].defaultValue=\"\";\r\n          }\r\n        }\r\n      }\r\n    },\r\n    //打开设置列弹框\r\n    showSettingDialog() {\r\n      this.tabStatus = \"return\"; //默认打开返回字段\r\n      this.dialogVisibleSetting = true;\r\n      if (\r\n        this.treeSidebarData.conditionfield &&\r\n        this.treeSidebarData.conditionfield.length > 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]}