| | |
| | | ></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> |
| | | <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> |
| | | <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | icon="el-icon-download" |
| | | size="mini" |
| | | @click="handleGenTable" |
| | |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="info" |
| | | plain |
| | | icon="el-icon-upload" |
| | | size="mini" |
| | | @click="openImportTable" |
| | |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="success" |
| | | plain |
| | | icon="el-icon-edit" |
| | | size="mini" |
| | | :disabled="single" |
| | |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="danger" |
| | | plain |
| | | icon="el-icon-delete" |
| | | size="mini" |
| | | :disabled="multiple" |
| | |
| | | </el-row> |
| | | |
| | | <el-table v-loading="loading" :data="tableList" @selection-change="handleSelectionChange"> |
| | | <el-table-column type="selection" width="55"></el-table-column> |
| | | <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> |
| | |
| | | align="center" |
| | | prop="tableName" |
| | | :show-overflow-tooltip="true" |
| | | width="130" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="表描述" |
| | | align="center" |
| | | prop="tableComment" |
| | | :show-overflow-tooltip="true" |
| | | width="130" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="实体" |
| | | align="center" |
| | | prop="className" |
| | | :show-overflow-tooltip="true" |
| | | width="130" |
| | | width="120" |
| | | /> |
| | | <el-table-column label="创建时间" align="center" prop="createTime" width="160" /> |
| | | <el-table-column label="更新时间" align="center" prop="updateTime" width="160" /> |
| | |
| | | @pagination="getList" |
| | | /> |
| | | <!-- 预览界面 --> |
| | | <el-dialog :title="preview.title" :visible.sync="preview.open" width="80%" top="5vh" append-to-body> |
| | | <el-dialog :title="preview.title" :visible.sync="preview.open" width="80%" top="5vh" append-to-body class="scrollbar"> |
| | | <el-tabs v-model="preview.activeName"> |
| | | <el-tab-pane |
| | | v-for="(value, key) in preview.data" |
| | |
| | | :name="key.substring(key.lastIndexOf('/')+1,key.indexOf('.vm'))" |
| | | :key="key" |
| | | > |
| | | <pre>{{ value }}</pre> |
| | | <pre><code class="hljs" v-html="highlightedCode(value, key)"></code></pre> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | </el-dialog> |
| | |
| | | <script> |
| | | import { listTable, previewTable, delTable, genCode, synchDb } from "@/api/tool/gen"; |
| | | import importTable from "./importTable"; |
| | | import { downLoadZip } from "@/utils/zipdownload"; |
| | | import { downLoadZip } from "@/utils/download"; |
| | | 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", |
| | | components: { importTable }, |
| | |
| | | const time = this.$route.query.t; |
| | | if (time != null && time != this.uniqueId) { |
| | | this.uniqueId = time; |
| | | this.resetQuery(); |
| | | this.queryParams.pageNum = Number(this.$route.query.pageNum); |
| | | this.getList(); |
| | | } |
| | | }, |
| | | methods: { |
| | |
| | | return synchDb(tableName); |
| | | }).then(() => { |
| | | this.msgSuccess("同步成功"); |
| | | }) |
| | | }).catch(() => {}); |
| | | }, |
| | | /** 打开导入表弹窗 */ |
| | | openImportTable() { |
| | |
| | | this.preview.open = true; |
| | | }); |
| | | }, |
| | | /** 高亮显示 */ |
| | | 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 || ' '; |
| | | }, |
| | | // 多选框选中数据 |
| | | handleSelectionChange(selection) { |
| | | this.ids = selection.map(item => item.tableId); |
| | |
| | | /** 修改按钮操作 */ |
| | | handleEditTable(row) { |
| | | const tableId = row.tableId || this.ids[0]; |
| | | this.$router.push("/gen/edit/" + tableId); |
| | | this.$router.push({ path: '/tool/gen-edit/index', query: { tableId: tableId, pageNum: this.queryParams.pageNum } }); |
| | | }, |
| | | /** 删除按钮操作 */ |
| | | handleDelete(row) { |
| | |
| | | }).then(() => { |
| | | this.getList(); |
| | | this.msgSuccess("删除成功"); |
| | | }) |
| | | }).catch(() => {}); |
| | | } |
| | | } |
| | | }; |
| | | </script> |
| | | </script> |