1. 同步数据表和字段定义

2. 删除数据库表
This commit is contained in:
YunaiV
2021-02-11 01:05:21 +08:00
parent 63962d557a
commit 0d55ca747c
16 changed files with 239 additions and 548 deletions

View File

@ -1,7 +1,7 @@
import request from '@/utils/request'
// 获得表定义分页
export function getCodeGenTablePage(query) {
export function getCodegenTablePage(query) {
return request({
url: '/tool/codegen/table/page',
method: 'get',
@ -10,7 +10,7 @@ export function getCodeGenTablePage(query) {
}
// 获得表和字段的明细
export function getCodeGenDetail(tableId) {
export function getCodegenDetail(tableId) {
return request({
url: '/tool/codegen/detail?tableId=' + tableId,
method: 'get',
@ -26,6 +26,14 @@ export function updateCodegen(data) {
})
}
// 基于数据库的表结构,同步数据库的表和字段定义
export function syncCodegen(tableId) {
return request({
url: '/tool/codegen/sync?tableId=' + tableId,
method: 'put'
})
}
// 预览生成代码
export function previewCodegen(tableId) {
return request({
@ -42,3 +50,32 @@ export function downloadCodegen(tableId) {
responseType: 'blob'
})
}
// 获得表定义分页
export function getSchemaTableList(query) {
return request({
url: '/tool/codegen/db/table/list',
method: 'get',
params: query
})
}
// 基于数据库的表结构,创建代码生成器的表定义
export function createCodegenList(tableNames) {
return request({
url: '/tool/codegen/create-list',
method: 'post',
headers:{
'Content-type': 'application/x-www-form-urlencoded'
},
data: 'tableNames=' + tableNames
})
}
// 删除数据库的表和字段定义
export function deleteCodegen(tableId) {
return request({
url: '/tool/codegen/delete?tableId=' + tableId,
method: 'delete'
})
}

View File

@ -1,43 +0,0 @@
import request from '@/utils/request'
// 查询db数据库列表
export function listDbTable(query) {
return request({
url: '/tool/gen/db/list',
method: 'get',
params: query
})
}
// 导入表
export function importTable(data) {
return request({
url: '/tool/gen/importTable',
method: 'post',
params: data
})
}
// 删除表数据
export function delTable(tableId) {
return request({
url: '/tool/gen/' + tableId,
method: 'delete'
})
}
// 生成代码(自定义路径)
export function genCode(tableName) {
return request({
url: '/tool/gen/genCode/' + tableName,
method: 'get'
})
}
// 同步数据库
export function synchDb(tableName) {
return request({
url: '/tool/gen/synchDb/' + tableName,
method: 'get'
})
}

View File

@ -126,7 +126,7 @@
</el-card>
</template>
<script>
import { getCodeGenDetail, updateCodegen } from "@/api/tool/codegen";
import { getCodegenDetail, updateCodegen } from "@/api/tool/codegen";
import { listAllSimple as listAllSimpleDictType } from "@/api/system/dict/type";
import { listMenu as getMenuTreeselect } from "@/api/system/menu";
import basicInfoForm from "./basicInfoForm";
@ -161,7 +161,7 @@ export default {
const tableId = this.$route.params && this.$route.params.tableId;
if (tableId) {
// 获取表详细信息
getCodeGenDetail(tableId).then(res => {
getCodegenDetail(tableId).then(res => {
this.table = res.data.table;
this.columns = res.data.columns;
});

View File

@ -28,18 +28,15 @@
<el-row>
<el-table @row-click="clickRow" ref="table" :data="dbTableList" @selection-change="handleSelectionChange" height="260px">
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column prop="tableSchema" label="数据库" :show-overflow-tooltip="true"></el-table-column>
<el-table-column prop="tableName" label="表名称" :show-overflow-tooltip="true"></el-table-column>
<el-table-column prop="tableComment" label="表描述" :show-overflow-tooltip="true"></el-table-column>
<el-table-column prop="createTime" label="创建时间"></el-table-column>
<el-table-column prop="updateTime" label="更新时间"></el-table-column>
<el-table-column prop="createTime" label="创建时间">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</el-row>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="handleImportTable"> </el-button>
@ -49,7 +46,7 @@
</template>
<script>
import { listDbTable, importTable } from "@/api/tool/gen";
import { getSchemaTableList, createCodegenList } from "@/api/tool/codegen";
export default {
data() {
return {
@ -63,8 +60,6 @@ export default {
dbTableList: [],
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
tableName: undefined,
tableComment: undefined
}
@ -85,16 +80,12 @@ export default {
},
// 查询表数据
getList() {
listDbTable(this.queryParams).then(res => {
if (res.code === 200) {
this.dbTableList = res.rows;
this.total = res.total;
}
getSchemaTableList(this.queryParams).then(res => {
this.dbTableList = res.data;
});
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
@ -104,12 +95,10 @@ export default {
},
/** 导入按钮操作 */
handleImportTable() {
importTable({ tables: this.tables.join(",") }).then(res => {
this.msgSuccess(res.msg);
if (res.code === 200) {
this.visible = false;
this.$emit("ok");
}
createCodegenList(this.tables.join(",")).then(res => {
this.msgSuccess("导入成功");
this.visible = false;
this.$emit("ok");
});
}
}

View File

@ -38,9 +38,6 @@
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-download" size="mini" @click="handleGenTable" v-hasPermi="['tool:gen:code']">生成</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="info" plain icon="el-icon-upload" size="mini" @click="openImportTable" v-hasPermi="['tool:gen:import']">导入</el-button>
</el-col>
@ -85,15 +82,12 @@
</template>
<script>
import { delTable, synchDb } from "@/api/tool/gen";
import { getCodeGenTablePage, previewCodegen, downloadCodegen } from "@/api/tool/codegen";
import { getCodegenTablePage, previewCodegen, downloadCodegen, deleteCodegen, syncCodegen } from "@/api/tool/codegen";
import importTable from "./importTable";
// 代码高亮插件
import hljs from "highlight.js/lib/highlight";
import "highlight.js/styles/github-gist.css";
import {list} from "@/api/system/loginlog";
import {exportOperateLog} from "@/api/system/operatelog";
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"));
@ -150,7 +144,7 @@ export default {
/** 查询表集合 */
getList() {
this.loading = true;
getCodeGenTablePage(this.addDateRange(this.queryParams, [
getCodegenTablePage(this.addDateRange(this.queryParams, [
this.dateRange[0] ? this.dateRange[0] + ' 00:00:00' : undefined,
this.dateRange[1] ? this.dateRange[1] + ' 23:59:59' : undefined,
], 'CreateTime')).then(response => {
@ -179,7 +173,7 @@ export default {
cancelButtonText: "取消",
type: "warning"
}).then(function() {
return synchDb(tableName);
return syncCodegen(row.id);
}).then(() => {
this.msgSuccess("同步成功");
})
@ -217,13 +211,13 @@ export default {
},
/** 删除按钮操作 */
handleDelete(row) {
const tableIds = row.tableId || this.ids;
this.$confirm('是否确认删除表编号为"' + tableIds + '"的数据项?', "警告", {
const tableIds = row.id;
this.$confirm('是否确认删除表名称为"' + row.tableName + '"的数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
return delTable(tableIds);
return deleteCodegen(tableIds);
}).then(() => {
this.getList();
this.msgSuccess("删除成功");