linwenling
2023-07-24 228302bc93feabc7b51a965db4374781844cc033
1
{"remainingRequest":"C:\\Users\\feige\\Desktop\\RuoYi-Vue-master\\RuoYi-Vue-master\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!C:\\Users\\feige\\Desktop\\RuoYi-Vue-master\\RuoYi-Vue-master\\ruoyi-ui\\src\\views\\tool\\gen\\editTable.vue?vue&type=script&lang=js&","dependencies":[{"path":"C:\\Users\\feige\\Desktop\\RuoYi-Vue-master\\RuoYi-Vue-master\\ruoyi-ui\\src\\views\\tool\\gen\\editTable.vue","mtime":1676881540000},{"path":"C:\\Users\\feige\\Desktop\\RuoYi-Vue-master\\RuoYi-Vue-master\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\Users\\feige\\Desktop\\RuoYi-Vue-master\\RuoYi-Vue-master\\ruoyi-ui\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"C:\\Users\\feige\\Desktop\\RuoYi-Vue-master\\RuoYi-Vue-master\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\Users\\feige\\Desktop\\RuoYi-Vue-master\\RuoYi-Vue-master\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmltcG9ydCB7IGdldEdlblRhYmxlLCB1cGRhdGVHZW5UYWJsZSB9IGZyb20gIkAvYXBpL3Rvb2wvZ2VuIjsKaW1wb3J0IHsgb3B0aW9uc2VsZWN0IGFzIGdldERpY3RPcHRpb25zZWxlY3QgfSBmcm9tICJAL2FwaS9zeXN0ZW0vZGljdC90eXBlIjsKaW1wb3J0IHsgbGlzdE1lbnUgYXMgZ2V0TWVudVRyZWVzZWxlY3QgfSBmcm9tICJAL2FwaS9zeXN0ZW0vbWVudSI7CmltcG9ydCBiYXNpY0luZm9Gb3JtIGZyb20gIi4vYmFzaWNJbmZvRm9ybSI7CmltcG9ydCBnZW5JbmZvRm9ybSBmcm9tICIuL2dlbkluZm9Gb3JtIjsKaW1wb3J0IFNvcnRhYmxlIGZyb20gJ3NvcnRhYmxlanMnCgpleHBvcnQgZGVmYXVsdCB7CiAgbmFtZTogIkdlbkVkaXQiLAogIGNvbXBvbmVudHM6IHsKICAgIGJhc2ljSW5mb0Zvcm0sCiAgICBnZW5JbmZvRm9ybQogIH0sCiAgZGF0YSgpIHsKICAgIHJldHVybiB7CiAgICAgIC8vIOmAieS4remAiemhueWNoeeahCBuYW1lCiAgICAgIGFjdGl2ZU5hbWU6ICJjb2x1bW5JbmZvIiwKICAgICAgLy8g6KGo5qC855qE6auY5bqmCiAgICAgIHRhYmxlSGVpZ2h0OiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsSGVpZ2h0IC0gMjQ1ICsgInB4IiwKICAgICAgLy8g6KGo5L+h5oGvCiAgICAgIHRhYmxlczogW10sCiAgICAgIC8vIOihqOWIl+S/oeaBrwogICAgICBjb2x1bW5zOiBbXSwKICAgICAgLy8g5a2X5YW45L+h5oGvCiAgICAgIGRpY3RPcHRpb25zOiBbXSwKICAgICAgLy8g6I+c5Y2V5L+h5oGvCiAgICAgIG1lbnVzOiBbXSwKICAgICAgLy8g6KGo6K+m57uG5L+h5oGvCiAgICAgIGluZm86IHt9CiAgICB9OwogIH0sCiAgY3JlYXRlZCgpIHsKICAgIGNvbnN0IHRhYmxlSWQgPSB0aGlzLiRyb3V0ZS5wYXJhbXMgJiYgdGhpcy4kcm91dGUucGFyYW1zLnRhYmxlSWQ7CiAgICBpZiAodGFibGVJZCkgewogICAgICAvLyDojrflj5booajor6bnu4bkv6Hmga8KICAgICAgZ2V0R2VuVGFibGUodGFibGVJZCkudGhlbihyZXMgPT4gewogICAgICAgIHRoaXMuY29sdW1ucyA9IHJlcy5kYXRhLnJvd3M7CiAgICAgICAgdGhpcy5pbmZvID0gcmVzLmRhdGEuaW5mbzsKICAgICAgICB0aGlzLnRhYmxlcyA9IHJlcy5kYXRhLnRhYmxlczsKICAgICAgfSk7CiAgICAgIC8qKiDmn6Xor6LlrZflhbjkuIvmi4nliJfooaggKi8KICAgICAgZ2V0RGljdE9wdGlvbnNlbGVjdCgpLnRoZW4ocmVzcG9uc2UgPT4gewogICAgICAgIHRoaXMuZGljdE9wdGlvbnMgPSByZXNwb25zZS5kYXRhOwogICAgICB9KTsKICAgICAgLyoqIOafpeivouiPnOWNleS4i+aLieWIl+ihqCAqLwogICAgICBnZXRNZW51VHJlZXNlbGVjdCgpLnRoZW4ocmVzcG9uc2UgPT4gewogICAgICAgIHRoaXMubWVudXMgPSB0aGlzLmhhbmRsZVRyZWUocmVzcG9uc2UuZGF0YSwgIm1lbnVJZCIpOwogICAgICB9KTsKICAgIH0KICB9LAogIG1ldGhvZHM6IHsKICAgIC8qKiDmj5DkuqTmjInpkq4gKi8KICAgIHN1Ym1pdEZvcm0oKSB7CiAgICAgIGNvbnN0IGJhc2ljRm9ybSA9IHRoaXMuJHJlZnMuYmFzaWNJbmZvLiRyZWZzLmJhc2ljSW5mb0Zvcm07CiAgICAgIGNvbnN0IGdlbkZvcm0gPSB0aGlzLiRyZWZzLmdlbkluZm8uJHJlZnMuZ2VuSW5mb0Zvcm07CiAgICAgIFByb21pc2UuYWxsKFtiYXNpY0Zvcm0sIGdlbkZvcm1dLm1hcCh0aGlzLmdldEZvcm1Qcm9taXNlKSkudGhlbihyZXMgPT4gewogICAgICAgIGNvbnN0IHZhbGlkYXRlUmVzdWx0ID0gcmVzLmV2ZXJ5KGl0ZW0gPT4gISFpdGVtKTsKICAgICAgICBpZiAodmFsaWRhdGVSZXN1bHQpIHsKICAgICAgICAgIGNvbnN0IGdlblRhYmxlID0gT2JqZWN0LmFzc2lnbih7fSwgYmFzaWNGb3JtLm1vZGVsLCBnZW5Gb3JtLm1vZGVsKTsKICAgICAgICAgIGdlblRhYmxlLmNvbHVtbnMgPSB0aGlzLmNvbHVtbnM7CiAgICAgICAgICBnZW5UYWJsZS5wYXJhbXMgPSB7CiAgICAgICAgICAgIHRyZWVDb2RlOiBnZW5UYWJsZS50cmVlQ29kZSwKICAgICAgICAgICAgdHJlZU5hbWU6IGdlblRhYmxlLnRyZWVOYW1lLAogICAgICAgICAgICB0cmVlUGFyZW50Q29kZTogZ2VuVGFibGUudHJlZVBhcmVudENvZGUsCiAgICAgICAgICAgIHBhcmVudE1lbnVJZDogZ2VuVGFibGUucGFyZW50TWVudUlkCiAgICAgICAgICB9OwogICAgICAgICAgdXBkYXRlR2VuVGFibGUoZ2VuVGFibGUpLnRoZW4ocmVzID0+IHsKICAgICAgICAgICAgdGhpcy4kbW9kYWwubXNnU3VjY2VzcyhyZXMubXNnKTsKICAgICAgICAgICAgaWYgKHJlcy5jb2RlID09PSAyMDApIHsKICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLiRtb2RhbC5tc2dFcnJvcigi6KGo5Y2V5qCh6aqM5pyq6YCa6L+H77yM6K+36YeN5paw5qOA5p+l5o+Q5Lqk5YaF5a65Iik7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0sCiAgICBnZXRGb3JtUHJvbWlzZShmb3JtKSB7CiAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKICAgICAgICBmb3JtLnZhbGlkYXRlKHJlcyA9PiB7CiAgICAgICAgICByZXNvbHZlKHJlcyk7CiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfSwKICAgIC8qKiDlhbPpl63mjInpkq4gKi8KICAgIGNsb3NlKCkgewogICAgICBjb25zdCBvYmogPSB7IHBhdGg6ICIvdG9vbC9nZW4iLCBxdWVyeTogeyB0OiBEYXRlLm5vdygpLCBwYWdlTnVtOiB0aGlzLiRyb3V0ZS5xdWVyeS5wYWdlTnVtIH0gfTsKICAgICAgdGhpcy4kdGFiLmNsb3NlT3BlblBhZ2Uob2JqKTsKICAgIH0KICB9LAogIG1vdW50ZWQoKSB7CiAgICBjb25zdCBlbCA9IHRoaXMuJHJlZnMuZHJhZ1RhYmxlLiRlbC5xdWVyeVNlbGVjdG9yQWxsKCIuZWwtdGFibGVfX2JvZHktd3JhcHBlciA+IHRhYmxlID4gdGJvZHkiKVswXTsKICAgIGNvbnN0IHNvcnRhYmxlID0gU29ydGFibGUuY3JlYXRlKGVsLCB7CiAgICAgIGhhbmRsZTogIi5hbGxvd0RyYWciLAogICAgICBvbkVuZDogZXZ0ID0+IHsKICAgICAgICBjb25zdCB0YXJnZXRSb3cgPSB0aGlzLmNvbHVtbnMuc3BsaWNlKGV2dC5vbGRJbmRleCwgMSlbMF07CiAgICAgICAgdGhpcy5jb2x1bW5zLnNwbGljZShldnQubmV3SW5kZXgsIDAsIHRhcmdldFJvdyk7CiAgICAgICAgZm9yIChsZXQgaW5kZXggaW4gdGhpcy5jb2x1bW5zKSB7CiAgICAgICAgICB0aGlzLmNvbHVtbnNbaW5kZXhdLnNvcnQgPSBwYXJzZUludChpbmRleCkgKyAxOwogICAgICAgIH0KICAgICAgfQogICAgfSk7CiAgfQp9Owo="},{"version":3,"sources":["editTable.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiIA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"editTable.vue","sourceRoot":"src/views/tool/gen","sourcesContent":["<template>\n  <el-card>\n    <el-tabs v-model=\"activeName\">\n      <el-tab-pane label=\"基本信息\" name=\"basic\">\n        <basic-info-form ref=\"basicInfo\" :info=\"info\" />\n      </el-tab-pane>\n      <el-tab-pane label=\"字段信息\" name=\"columnInfo\">\n        <el-table ref=\"dragTable\" :data=\"columns\" row-key=\"columnId\" :max-height=\"tableHeight\">\n          <el-table-column label=\"序号\" type=\"index\" min-width=\"5%\" class-name=\"allowDrag\" />\n          <el-table-column\n            label=\"字段列名\"\n            prop=\"columnName\"\n            min-width=\"10%\"\n            :show-overflow-tooltip=\"true\"\n          />\n          <el-table-column label=\"字段描述\" min-width=\"10%\">\n            <template slot-scope=\"scope\">\n              <el-input v-model=\"scope.row.columnComment\"></el-input>\n            </template>\n          </el-table-column>\n          <el-table-column\n            label=\"物理类型\"\n            prop=\"columnType\"\n            min-width=\"10%\"\n            :show-overflow-tooltip=\"true\"\n          />\n          <el-table-column label=\"Java类型\" min-width=\"11%\">\n            <template slot-scope=\"scope\">\n              <el-select v-model=\"scope.row.javaType\">\n                <el-option label=\"Long\" value=\"Long\" />\n                <el-option label=\"String\" value=\"String\" />\n                <el-option label=\"Integer\" value=\"Integer\" />\n                <el-option label=\"Double\" value=\"Double\" />\n                <el-option label=\"BigDecimal\" value=\"BigDecimal\" />\n                <el-option label=\"Date\" value=\"Date\" />\n                <el-option label=\"Boolean\" value=\"Boolean\" />\n              </el-select>\n            </template>\n          </el-table-column>\n          <el-table-column label=\"java属性\" min-width=\"10%\">\n            <template slot-scope=\"scope\">\n              <el-input v-model=\"scope.row.javaField\"></el-input>\n            </template>\n          </el-table-column>\n\n          <el-table-column label=\"插入\" min-width=\"5%\">\n            <template slot-scope=\"scope\">\n              <el-checkbox true-label=\"1\" false-label=\"0\" v-model=\"scope.row.isInsert\"></el-checkbox>\n            </template>\n          </el-table-column>\n          <el-table-column label=\"编辑\" min-width=\"5%\">\n            <template slot-scope=\"scope\">\n              <el-checkbox true-label=\"1\" false-label=\"0\" v-model=\"scope.row.isEdit\"></el-checkbox>\n            </template>\n          </el-table-column>\n          <el-table-column label=\"列表\" min-width=\"5%\">\n            <template slot-scope=\"scope\">\n              <el-checkbox true-label=\"1\" false-label=\"0\" v-model=\"scope.row.isList\"></el-checkbox>\n            </template>\n          </el-table-column>\n          <el-table-column label=\"查询\" min-width=\"5%\">\n            <template slot-scope=\"scope\">\n              <el-checkbox true-label=\"1\" false-label=\"0\" v-model=\"scope.row.isQuery\"></el-checkbox>\n            </template>\n          </el-table-column>\n          <el-table-column label=\"查询方式\" min-width=\"10%\">\n            <template slot-scope=\"scope\">\n              <el-select v-model=\"scope.row.queryType\">\n                <el-option label=\"=\" value=\"EQ\" />\n                <el-option label=\"!=\" value=\"NE\" />\n                <el-option label=\">\" value=\"GT\" />\n                <el-option label=\">=\" value=\"GTE\" />\n                <el-option label=\"<\" value=\"LT\" />\n                <el-option label=\"<=\" value=\"LTE\" />\n                <el-option label=\"LIKE\" value=\"LIKE\" />\n                <el-option label=\"BETWEEN\" value=\"BETWEEN\" />\n              </el-select>\n            </template>\n          </el-table-column>\n          <el-table-column label=\"必填\" min-width=\"5%\">\n            <template slot-scope=\"scope\">\n              <el-checkbox true-label=\"1\" false-label=\"0\" v-model=\"scope.row.isRequired\"></el-checkbox>\n            </template>\n          </el-table-column>\n          <el-table-column label=\"显示类型\" min-width=\"12%\">\n            <template slot-scope=\"scope\">\n              <el-select v-model=\"scope.row.htmlType\">\n                <el-option label=\"文本框\" value=\"input\" />\n                <el-option label=\"文本域\" value=\"textarea\" />\n                <el-option label=\"下拉框\" value=\"select\" />\n                <el-option label=\"单选框\" value=\"radio\" />\n                <el-option label=\"复选框\" value=\"checkbox\" />\n                <el-option label=\"日期控件\" value=\"datetime\" />\n                <el-option label=\"图片上传\" value=\"imageUpload\" />\n                <el-option label=\"文件上传\" value=\"fileUpload\" />\n                <el-option label=\"富文本控件\" value=\"editor\" />\n              </el-select>\n            </template>\n          </el-table-column>\n          <el-table-column label=\"字典类型\" min-width=\"12%\">\n            <template slot-scope=\"scope\">\n              <el-select v-model=\"scope.row.dictType\" clearable filterable placeholder=\"请选择\">\n                <el-option\n                  v-for=\"dict in dictOptions\"\n                  :key=\"dict.dictType\"\n                  :label=\"dict.dictName\"\n                  :value=\"dict.dictType\">\n                  <span style=\"float: left\">{{ dict.dictName }}</span>\n                  <span style=\"float: right; color: #8492a6; font-size: 13px\">{{ dict.dictType }}</span>\n              </el-option>\n              </el-select>\n            </template>\n          </el-table-column>\n        </el-table>\n      </el-tab-pane>\n      <el-tab-pane label=\"生成信息\" name=\"genInfo\">\n        <gen-info-form ref=\"genInfo\" :info=\"info\" :tables=\"tables\" :menus=\"menus\"/>\n      </el-tab-pane>\n    </el-tabs>\n    <el-form label-width=\"100px\">\n      <el-form-item style=\"text-align: center;margin-left:-100px;margin-top:10px;\">\n        <el-button type=\"primary\" @click=\"submitForm()\">提交</el-button>\n        <el-button @click=\"close()\">返回</el-button>\n      </el-form-item>\n    </el-form>\n  </el-card>\n</template>\n\n<script>\nimport { getGenTable, updateGenTable } from \"@/api/tool/gen\";\nimport { optionselect as getDictOptionselect } from \"@/api/system/dict/type\";\nimport { listMenu as getMenuTreeselect } from \"@/api/system/menu\";\nimport basicInfoForm from \"./basicInfoForm\";\nimport genInfoForm from \"./genInfoForm\";\nimport Sortable from 'sortablejs'\n\nexport default {\n  name: \"GenEdit\",\n  components: {\n    basicInfoForm,\n    genInfoForm\n  },\n  data() {\n    return {\n      // 选中选项卡的 name\n      activeName: \"columnInfo\",\n      // 表格的高度\n      tableHeight: document.documentElement.scrollHeight - 245 + \"px\",\n      // 表信息\n      tables: [],\n      // 表列信息\n      columns: [],\n      // 字典信息\n      dictOptions: [],\n      // 菜单信息\n      menus: [],\n      // 表详细信息\n      info: {}\n    };\n  },\n  created() {\n    const tableId = this.$route.params && this.$route.params.tableId;\n    if (tableId) {\n      // 获取表详细信息\n      getGenTable(tableId).then(res => {\n        this.columns = res.data.rows;\n        this.info = res.data.info;\n        this.tables = res.data.tables;\n      });\n      /** 查询字典下拉列表 */\n      getDictOptionselect().then(response => {\n        this.dictOptions = response.data;\n      });\n      /** 查询菜单下拉列表 */\n      getMenuTreeselect().then(response => {\n        this.menus = this.handleTree(response.data, \"menuId\");\n      });\n    }\n  },\n  methods: {\n    /** 提交按钮 */\n    submitForm() {\n      const basicForm = this.$refs.basicInfo.$refs.basicInfoForm;\n      const genForm = this.$refs.genInfo.$refs.genInfoForm;\n      Promise.all([basicForm, genForm].map(this.getFormPromise)).then(res => {\n        const validateResult = res.every(item => !!item);\n        if (validateResult) {\n          const genTable = Object.assign({}, basicForm.model, genForm.model);\n          genTable.columns = this.columns;\n          genTable.params = {\n            treeCode: genTable.treeCode,\n            treeName: genTable.treeName,\n            treeParentCode: genTable.treeParentCode,\n            parentMenuId: genTable.parentMenuId\n          };\n          updateGenTable(genTable).then(res => {\n            this.$modal.msgSuccess(res.msg);\n            if (res.code === 200) {\n              this.close();\n            }\n          });\n        } else {\n          this.$modal.msgError(\"表单校验未通过,请重新检查提交内容\");\n        }\n      });\n    },\n    getFormPromise(form) {\n      return new Promise(resolve => {\n        form.validate(res => {\n          resolve(res);\n        });\n      });\n    },\n    /** 关闭按钮 */\n    close() {\n      const obj = { path: \"/tool/gen\", query: { t: Date.now(), pageNum: this.$route.query.pageNum } };\n      this.$tab.closeOpenPage(obj);\n    }\n  },\n  mounted() {\n    const el = this.$refs.dragTable.$el.querySelectorAll(\".el-table__body-wrapper > table > tbody\")[0];\n    const sortable = Sortable.create(el, {\n      handle: \".allowDrag\",\n      onEnd: evt => {\n        const targetRow = this.columns.splice(evt.oldIndex, 1)[0];\n        this.columns.splice(evt.newIndex, 0, targetRow);\n        for (let index in this.columns) {\n          this.columns[index].sort = parseInt(index) + 1;\n        }\n      }\n    });\n  }\n};\n</script>\n"]}]}