创建表前查看数据库有无重名表

zzq
滕嵩 2024-06-10 18:03:16 +08:00
parent 3e6068de87
commit d61e401f63
3 changed files with 43 additions and 3 deletions

View File

@ -11,6 +11,7 @@ enum Api {
createPicTable = '/api/createTable/createTable', //图形化建表
updateTable = '/api/CreateTable/UpdateTable', //图形化建表-修改
loadTableRecordInfo = '/api/CreateTable/LoadTableRecordInfo', //图形化建表记录
CheckTableExist = '/api/CreateTable/CheckTableExist', //图形化建表-新建检查
}
/**
@ -46,3 +47,6 @@ export const updateTable = (params: AccountParams) =>
export const loadTableRecordInfo = (params: AccountParams) =>
defHttp.get<AccountListGetResultModel>({ url: Api.loadTableRecordInfo, params });
export const CheckTableExist = (params: AccountParams) =>
defHttp.get<AccountListGetResultModel>({ url: Api.CheckTableExist, params });

View File

@ -100,11 +100,14 @@
import { CollapseContainer } from '@/components/Container';
import { BasicTable } from '@/components/Table';
import { BasicModal, useModalInner } from '@/components/Modal';
import { dbColumnInfoColumns } from './modelData';
import { useMessage } from '@/hooks/web/useMessage';
import { cloneDeep } from 'lodash-es';
import { dbColumnInfoColumns } from './modelData';
import { functionGetForm, AddTable, AddColumn } from '@/api/demo/formScheme';
import { CheckTableExist } from '@/api/database/index';
const emit = defineEmits(['automatic-modal-submitsuccess']);
const { createMessage } = useMessage();
const props = defineProps({
isAddVisible: {
@ -705,6 +708,12 @@
//
async function submit() {
//
let results = checkTablesAndWarn();
const checkflag = (await results).some(Boolean);
if (checkflag) {
return;
}
// relationField
getRelationField();
if (props.isAddVisible) {
@ -739,6 +748,24 @@
getFromAndTable();
}
//
async function checkTablesAndWarn() {
const promises = db_list.value.map(async (db) => {
if (isNewTable(db)) {
let query: any = { tableName: db.tableName };
let res = await CheckTableExist(query);
if (res) {
createMessage.warn('数据库已有表' + db.tableName);
return true;
}
}
return false;
});
const results = await Promise.all(promises);
return results;
}
// relationField
function getRelationField() {
// primaryKey

View File

@ -90,7 +90,7 @@
import { columns, columns_isDetail } from './modal.data';
import { useMessage } from '@/hooks/web/useMessage';
// api
import { createPicTable, updateTable } from '@/api/database/index';
import { createPicTable, updateTable, CheckTableExist } from '@/api/database/index';
import { getLoad } from '@/api/sys/sysDataItemDetail';
const emit = defineEmits(['submit']);
@ -222,7 +222,9 @@
reload();
}
//
function handleOk() {
async function handleOk() {
//
tableName.value = tableName.value.trim();
//
if (!tableName.value) {
createMessage.warn('表名是必填项!');
@ -233,6 +235,13 @@
createMessage.warn('表名不符合数据库表名的命名规则!');
return;
}
//
let query: any = { tableName: tableName.value };
let res = await CheckTableExist(query);
if (res) {
createMessage.warn('数据库已有此表名!');
return;
}
let arr = getDataSource();
//
if (!arr || arr.length == 0) {