{"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\\TableDesign\\CreateView.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\src\\views\\form\\TableDesign\\CreateView.vue","mtime":1675071992913},{"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\r\nimport form from '@/api/form.js'\r\nimport req from '@/request'\r\nimport {mapState} from 'vuex'\r\n\r\nexport default {\r\n  data() {\r\n    return {\r\n      data: [],\r\n      pageResult: {\r\n        page: 0,\r\n        pageSize: 50,\r\n        total: 0,\r\n      },\r\n      selectedId: '',\r\n      deleteUrl: window.context.form + '/form/viewManage/v1/remove',\r\n      dialogVisible: false,\r\n      loadDataUrl: '',\r\n      model: {},\r\n      dataSources: [],\r\n      isChecked: false,\r\n      content:\r\n        '请输入符合生成视图的SQL，如联表查询时存在重复字段将会导致验证通过但最后保存并生成视图时出错！',\r\n      checkState: false,\r\n      importDialogVisible: false,\r\n      uploadUrl: window.context.form + '/form/viewManage/v1/import',\r\n      fullscreenLoading: false,\r\n      viewNameValidate: {\r\n        required: true,\r\n        alpha_dash: true,\r\n        regex: {\r\n          exp: '^[a-zA-Z][a-zA-Z0-9_]*$',\r\n          message: '只能输入字母、数字、下划线，且以字母开头',\r\n        },\r\n      },\r\n    }\r\n  },\r\n  computed: mapState({\r\n    uploadHeaders: function (mapState) {\r\n      return {Authorization: 'Bearer ' + mapState.login.currentUser.token}\r\n    },\r\n  }),\r\n  mounted() {\r\n    form.getDataSource().then((resp) => {\r\n      this.dataSources = resp.data\r\n    })\r\n  },\r\n  methods: {\r\n    rowClick(row, column, event) {\r\n      this.$refs.htTable.$refs.htTable.toggleRowSelection(row)\r\n    },\r\n    checkSql() {\r\n      if (!this.model.sql) {\r\n        this.$message({type: 'warning', message: '请输入sql语句'})\r\n        return\r\n      }\r\n      if (!this.model.dsAlias) {\r\n        this.$message({type: 'warning', message: '请选择数据源'})\r\n        return\r\n      }\r\n      if (this.model.sql.endsWith(';')) {\r\n        this.$message({type: 'warning', message: '请不要以;结尾'})\r\n        return\r\n      }\r\n      let param = {sql: this.model.sql, dsName: this.model.dsAlias}\r\n      form.checkSql(param).then((response) => {\r\n        if (response.state) {\r\n          this.$message({type: 'success', message: response.message})\r\n          this.checkState = response.state\r\n        }\r\n      })\r\n    },\r\n    loadData(param, cb) {\r\n      form\r\n        .getViewManageList(param)\r\n        .then((response) => {\r\n          this.data = response.rows\r\n          this.pageResult = {\r\n            page: response.page,\r\n            pageSize: response.pageSize,\r\n            total: response.total,\r\n          }\r\n        })\r\n        .finally(() => {\r\n          cb()\r\n        })\r\n    },\r\n    edit(id) {\r\n      this.dialogVisible = true\r\n      if (id) {\r\n        this.loadDataUrl = `/form/viewManage/v1/getJson?id=${id}`\r\n      } else {\r\n        this.model = {}\r\n        this.loadDataUrl = ''\r\n      }\r\n    },\r\n    afterLoadData(data) {\r\n      this.model = data\r\n    },\r\n    beforeSaveData() {\r\n      if (!this.checkState) {\r\n        this.$message({type: 'warning', message: '请先验证SQL！'})\r\n      }\r\n    },\r\n    afterSaveData() {\r\n      this.dialogVisible = false\r\n      this.checkState = false\r\n      this.$refs.htTable.load()\r\n    },\r\n    handleClose() {\r\n      this.dialogVisible = false\r\n    },\r\n    createPhysicalView(id) {\r\n      form.createPhysicalViewByViewMngId(id).then((response) => {\r\n        if (response.state) {\r\n          this.$message({type: 'success', message: response.message})\r\n          this.$refs.htTable.load()\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.warning('请选择至少一项记录')\r\n        return\r\n      }\r\n      let ids = selection.map((item) => item.id)\r\n      let url = `${window.context.form}/form/viewManage/v1/exportXml?ids=${ids}`\r\n      req.download(url)\r\n    },\r\n    handleUploadResult(data) {\r\n      if (data.state) {\r\n        if (data.message.includes('已存在故跳过')) {\r\n          this.$message({\r\n            type: 'warning',\r\n            message: data.message,\r\n            showClose: true,\r\n            duration: 5000,\r\n            dangerouslyUseHTMLString: true,\r\n          })\r\n        } else {\r\n          this.$message({type: 'success', message: '导入成功'})\r\n        }\r\n      } else {\r\n        this.$message({type: 'error', message: data.message})\r\n      }\r\n      this.$refs.htTable.querys = []\r\n      this.$refs.htTable.load()\r\n      this.importDialogVisible = false\r\n      this.fullscreenLoading = false\r\n    },\r\n    beforeUpload(file) {\r\n      if (!file.name.endsWith('.zip')) {\r\n        this.$message.warning('只能导入zip文件!')\r\n        return false\r\n      }\r\n      this.fullscreenLoading = true\r\n    },\r\n    onExceed(file) {\r\n      this.$message.warning('只能选择一个zip文件!')\r\n    },\r\n    uploadSubmit() {\r\n      if (\r\n        !this.$refs.upload.uploadFiles ||\r\n        this.$refs.upload.uploadFiles.length === 0\r\n      ) {\r\n        this.$message.warning('请选择要导入的视图!')\r\n        return false\r\n      }\r\n      this.$refs.upload.submit()\r\n    },\r\n    dsChange(dsAlias, dataSource) {\r\n      if (\r\n        !dsAlias ||\r\n        (dataSource.dbType !== 'oracle' &&\r\n          dataSource.dbType !== 'dm' &&\r\n          dataSource.dbType !== 'dm8')\r\n      ) {\r\n        this.viewNameValidate = {\r\n          required: true,\r\n          alpha_dash: true,\r\n          regex: {\r\n            exp: '^[a-zA-Z][a-zA-Z0-9_]*$',\r\n            message: '只能输入字母、数字、下划线，且以字母开头',\r\n          },\r\n        }\r\n      } else {\r\n        this.viewNameValidate = {\r\n          required: true,\r\n          alpha_dash: true,\r\n          regex: {\r\n            exp: '^[A-Z][A-Z0-9_]*$',\r\n            message: '只能输入大写字母、数字、下划线，且以大写字母开头',\r\n          },\r\n        }\r\n      }\r\n    },\r\n    handleSqlChange() {\r\n      this.checkState = false\r\n    },\r\n  },\r\n}\r\n",null]}