| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form-item label="表名称" prop="tableName"> |
| | | <el-input |
| | | v-model="queryParams.tableName" |
| | | placeholder="请输入表名称" |
| | | clearable |
| | | size="small" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | |
| | | v-model="queryParams.tableComment" |
| | | placeholder="请输入表描述" |
| | | clearable |
| | | size="small" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="创建时间"> |
| | | <el-date-picker |
| | | v-model="dateRange" |
| | | size="small" |
| | | style="width: 240px" |
| | | value-format="yyyy-MM-dd" |
| | | type="daterange" |
| | |
| | | <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> |
| | | </el-row> |
| | | |
| | | <el-table v-loading="loading" :data="tableList" @selection-change="handleSelectionChange"> |
| | | <el-table ref="tables" v-loading="loading" :data="tableList" @selection-change="handleSelectionChange" :default-sort="defaultSort" @sort-change="handleSortChange"> |
| | | <el-table-column type="selection" align="center" width="55"></el-table-column> |
| | | <el-table-column label="序号" type="index" width="50" align="center"> |
| | | <template slot-scope="scope"> |
| | | <span>{{(queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="表名称" |
| | | align="center" |
| | | prop="tableName" |
| | | :show-overflow-tooltip="true" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="表描述" |
| | | align="center" |
| | | prop="tableComment" |
| | | :show-overflow-tooltip="true" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="实体" |
| | | align="center" |
| | | prop="className" |
| | | :show-overflow-tooltip="true" |
| | | width="120" |
| | | /> |
| | | <el-table-column label="创建时间" align="center" prop="createTime" width="160" /> |
| | | <el-table-column label="更新时间" align="center" prop="updateTime" width="160" /> |
| | | <el-table-column label="表名称" align="center" prop="tableName" :show-overflow-tooltip="true" width="120" /> |
| | | <el-table-column label="表描述" align="center" prop="tableComment" :show-overflow-tooltip="true" width="120" /> |
| | | <el-table-column label="实体" align="center" prop="className" :show-overflow-tooltip="true" width="120" /> |
| | | <el-table-column label="创建时间" align="center" prop="createTime" sortable="custom" :sort-orders="['descending', 'ascending']" width="160" /> |
| | | <el-table-column label="更新时间" align="center" prop="updateTime" sortable="custom" :sort-orders="['descending', 'ascending']" width="160" /> |
| | | <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { listTable, previewTable, delTable, genCode, synchDb } from "@/api/tool/gen"; |
| | | import importTable from "./importTable"; |
| | | import hljs from "highlight.js/lib/highlight"; |
| | | import "highlight.js/styles/github-gist.css"; |
| | | hljs.registerLanguage("java", require("highlight.js/lib/languages/java")); |
| | | hljs.registerLanguage("xml", require("highlight.js/lib/languages/xml")); |
| | | hljs.registerLanguage("html", require("highlight.js/lib/languages/xml")); |
| | | hljs.registerLanguage("vue", require("highlight.js/lib/languages/xml")); |
| | | hljs.registerLanguage("javascript", require("highlight.js/lib/languages/javascript")); |
| | | hljs.registerLanguage("sql", require("highlight.js/lib/languages/sql")); |
| | | import { listTable, previewTable, delTable, genCode, synchDb } from "@/api/tool/gen" |
| | | import importTable from "./importTable" |
| | | import hljs from "highlight.js/lib/highlight" |
| | | import "highlight.js/styles/github-gist.css" |
| | | hljs.registerLanguage("java", require("highlight.js/lib/languages/java")) |
| | | hljs.registerLanguage("xml", require("highlight.js/lib/languages/xml")) |
| | | hljs.registerLanguage("html", require("highlight.js/lib/languages/xml")) |
| | | hljs.registerLanguage("vue", require("highlight.js/lib/languages/xml")) |
| | | hljs.registerLanguage("javascript", require("highlight.js/lib/languages/javascript")) |
| | | hljs.registerLanguage("sql", require("highlight.js/lib/languages/sql")) |
| | | |
| | | export default { |
| | | name: "Gen", |
| | |
| | | tableList: [], |
| | | // 日期范围 |
| | | dateRange: "", |
| | | // 默认排序 |
| | | defaultSort: { prop: "createTime", order: "descending" }, |
| | | // 查询参数 |
| | | queryParams: { |
| | | pageNum: 1, |
| | |
| | | data: {}, |
| | | activeName: "domain.java" |
| | | } |
| | | }; |
| | | } |
| | | }, |
| | | created() { |
| | | this.getList(); |
| | | this.queryParams.orderByColumn = this.defaultSort.prop |
| | | this.queryParams.isAsc = this.defaultSort.order |
| | | this.getList() |
| | | }, |
| | | activated() { |
| | | const time = this.$route.query.t; |
| | | const time = this.$route.query.t |
| | | if (time != null && time != this.uniqueId) { |
| | | this.uniqueId = time; |
| | | this.queryParams.pageNum = Number(this.$route.query.pageNum); |
| | | this.getList(); |
| | | this.uniqueId = time |
| | | this.queryParams.pageNum = Number(this.$route.query.pageNum) |
| | | this.getList() |
| | | } |
| | | }, |
| | | methods: { |
| | | /** 查询表集合 */ |
| | | getList() { |
| | | this.loading = true; |
| | | this.loading = true |
| | | listTable(this.addDateRange(this.queryParams, this.dateRange)).then(response => { |
| | | this.tableList = response.rows; |
| | | this.total = response.total; |
| | | this.loading = false; |
| | | this.tableList = response.rows |
| | | this.total = response.total |
| | | this.loading = false |
| | | } |
| | | ); |
| | | ) |
| | | }, |
| | | /** 搜索按钮操作 */ |
| | | handleQuery() { |
| | | this.queryParams.pageNum = 1; |
| | | this.getList(); |
| | | this.queryParams.pageNum = 1 |
| | | this.getList() |
| | | }, |
| | | /** 生成代码操作 */ |
| | | handleGenTable(row) { |
| | | const tableNames = row.tableName || this.tableNames; |
| | | const tableNames = row.tableName || this.tableNames |
| | | if (tableNames == "") { |
| | | this.$modal.msgError("请选择要生成的数据"); |
| | | return; |
| | | this.$modal.msgError("请选择要生成的数据") |
| | | return |
| | | } |
| | | if(row.genType === "1") { |
| | | genCode(row.tableName).then(response => { |
| | | this.$modal.msgSuccess("成功生成到自定义路径:" + row.genPath); |
| | | }); |
| | | this.$modal.msgSuccess("成功生成到自定义路径:" + row.genPath) |
| | | }) |
| | | } else { |
| | | this.$download.zip("/code/gen/batchGenCode?tables=" + tableNames, "ruoyi"); |
| | | this.$download.zip("/code/gen/batchGenCode?tables=" + tableNames, "ruoyi.zip") |
| | | } |
| | | }, |
| | | /** 同步数据库操作 */ |
| | | handleSynchDb(row) { |
| | | const tableName = row.tableName; |
| | | const tableName = row.tableName |
| | | this.$modal.confirm('确认要强制同步"' + tableName + '"表结构吗?').then(function() { |
| | | return synchDb(tableName); |
| | | return synchDb(tableName) |
| | | }).then(() => { |
| | | this.$modal.msgSuccess("同步成功"); |
| | | }).catch(() => {}); |
| | | this.$modal.msgSuccess("同步成功") |
| | | }).catch(() => {}) |
| | | }, |
| | | /** 打开导入表弹窗 */ |
| | | openImportTable() { |
| | | this.$refs.import.show(); |
| | | this.$refs.import.show() |
| | | }, |
| | | /** 重置按钮操作 */ |
| | | resetQuery() { |
| | | this.dateRange = []; |
| | | this.resetForm("queryForm"); |
| | | this.handleQuery(); |
| | | this.dateRange = [] |
| | | this.resetForm("queryForm") |
| | | this.queryParams.pageNum = 1 |
| | | this.$refs.tables.sort(this.defaultSort.prop, this.defaultSort.order) |
| | | }, |
| | | /** 预览按钮 */ |
| | | handlePreview(row) { |
| | | previewTable(row.tableId).then(response => { |
| | | this.preview.data = response.data; |
| | | this.preview.open = true; |
| | | this.preview.activeName = "domain.java"; |
| | | }); |
| | | this.preview.data = response.data |
| | | this.preview.open = true |
| | | this.preview.activeName = "domain.java" |
| | | }) |
| | | }, |
| | | /** 高亮显示 */ |
| | | highlightedCode(code, key) { |
| | | const vmName = key.substring(key.lastIndexOf("/") + 1, key.indexOf(".vm")); |
| | | var language = vmName.substring(vmName.indexOf(".") + 1, vmName.length); |
| | | const result = hljs.highlight(language, code || "", true); |
| | | return result.value || ' '; |
| | | const vmName = key.substring(key.lastIndexOf("/") + 1, key.indexOf(".vm")) |
| | | var language = vmName.substring(vmName.indexOf(".") + 1, vmName.length) |
| | | const result = hljs.highlight(language, code || "", true) |
| | | return result.value || ' ' |
| | | }, |
| | | /** 复制代码成功 */ |
| | | clipboardSuccess(){ |
| | | this.$modal.msgSuccess("复制成功"); |
| | | clipboardSuccess() { |
| | | this.$modal.msgSuccess("复制成功") |
| | | }, |
| | | // 多选框选中数据 |
| | | handleSelectionChange(selection) { |
| | | this.ids = selection.map(item => item.tableId); |
| | | this.tableNames = selection.map(item => item.tableName); |
| | | this.single = selection.length != 1; |
| | | this.multiple = !selection.length; |
| | | this.ids = selection.map(item => item.tableId) |
| | | this.tableNames = selection.map(item => item.tableName) |
| | | this.single = selection.length != 1 |
| | | this.multiple = !selection.length |
| | | }, |
| | | /** 排序触发事件 */ |
| | | handleSortChange(column, prop, order) { |
| | | this.queryParams.orderByColumn = column.prop |
| | | this.queryParams.isAsc = column.order |
| | | this.getList() |
| | | }, |
| | | /** 修改按钮操作 */ |
| | | handleEditTable(row) { |
| | | const tableId = row.tableId || this.ids[0]; |
| | | this.$router.push({ path: '/tool/gen-edit/index/' + tableId, query: { pageNum: this.queryParams.pageNum } }); |
| | | const tableId = row.tableId || this.ids[0] |
| | | const tableName = row.tableName || this.tableNames[0] |
| | | const params = { pageNum: this.queryParams.pageNum } |
| | | this.$tab.openPage("修改[" + tableName + "]生成配置", '/tool/gen-edit/index/' + tableId, params) |
| | | }, |
| | | /** 删除按钮操作 */ |
| | | handleDelete(row) { |
| | | const tableIds = row.tableId || this.ids; |
| | | const tableIds = row.tableId || this.ids |
| | | this.$modal.confirm('是否确认删除表编号为"' + tableIds + '"的数据项?').then(function() { |
| | | return delTable(tableIds); |
| | | return delTable(tableIds) |
| | | }).then(() => { |
| | | this.getList(); |
| | | this.$modal.msgSuccess("删除成功"); |
| | | }).catch(() => {}); |
| | | this.getList() |
| | | this.$modal.msgSuccess("删除成功") |
| | | }).catch(() => {}) |
| | | } |
| | | } |
| | | }; |
| | | } |
| | | </script> |