From d61e401f63fa30b64d99c97bebe9b844a6c59d65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BB=95=E5=B5=A9?= <17854119262@163.com> Date: Mon, 10 Jun 2024 18:03:16 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9B=E5=BB=BA=E8=A1=A8=E5=89=8D=E6=9F=A5?= =?UTF-8?q?=E7=9C=8B=E6=95=B0=E6=8D=AE=E5=BA=93=E6=9C=89=E6=97=A0=E9=87=8D?= =?UTF-8?q?=E5=90=8D=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/database/index.ts | 4 +++ .../formdesign/modal/AutomaticModal.vue | 29 ++++++++++++++++++- .../system/graphicaltable/modal/index.vue | 13 +++++++-- 3 files changed, 43 insertions(+), 3 deletions(-) diff --git a/src/api/database/index.ts b/src/api/database/index.ts index 722612b6..9758cefb 100644 --- a/src/api/database/index.ts +++ b/src/api/database/index.ts @@ -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({ url: Api.loadTableRecordInfo, params }); + +export const CheckTableExist = (params: AccountParams) => + defHttp.get({ url: Api.CheckTableExist, params }); diff --git a/src/views/demo/onlineform/formdesign/modal/AutomaticModal.vue b/src/views/demo/onlineform/formdesign/modal/AutomaticModal.vue index dc126d92..bf0ac726 100644 --- a/src/views/demo/onlineform/formdesign/modal/AutomaticModal.vue +++ b/src/views/demo/onlineform/formdesign/modal/AutomaticModal.vue @@ -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 diff --git a/src/views/demo/system/graphicaltable/modal/index.vue b/src/views/demo/system/graphicaltable/modal/index.vue index ffa46d86..54ef19a7 100644 --- a/src/views/demo/system/graphicaltable/modal/index.vue +++ b/src/views/demo/system/graphicaltable/modal/index.vue @@ -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) {