From a8ad928324da550605295118681e4123a274cdef Mon Sep 17 00:00:00 2001 From: 疯狂的狮子Li <15040126243@163.com> Date: 星期一, 29 五月 2023 10:26:23 +0800 Subject: [PATCH] !9 代码生成,数据名称从后台加载 Merge pull request !9 from WangBQ/ts --- src/views/tool/gen/index.vue | 39 +++++++++++-------- src/views/tool/gen/importTable.vue | 28 +++++++++++-- src/api/tool/gen/types.ts | 2 + src/api/tool/gen/index.ts | 27 ++++++------- 4 files changed, 61 insertions(+), 35 deletions(-) diff --git a/src/api/tool/gen/index.ts b/src/api/tool/gen/index.ts index b95e865..1aaa7b2 100644 --- a/src/api/tool/gen/index.ts +++ b/src/api/tool/gen/index.ts @@ -5,7 +5,6 @@ // 鏌ヨ鐢熸垚琛ㄦ暟鎹� export const listTable = (query: TableQuery): AxiosPromise<TableVO[]> => { return request({ - headers: { datasource: localStorage.getItem('dataName') }, url: '/tool/gen/list', method: 'get', params: query @@ -14,7 +13,6 @@ // 鏌ヨdb鏁版嵁搴撳垪琛� export const listDbTable = (query: DbTableQuery): AxiosPromise<DbTableVO[]> => { return request({ - headers: { datasource: localStorage.getItem('dataName') }, url: '/tool/gen/db/list', method: 'get', params: query @@ -24,7 +22,6 @@ // 鏌ヨ琛ㄨ缁嗕俊鎭� export const getGenTable = (tableId: string | number): AxiosPromise<GenTableVO> => { return request({ - headers: { datasource: localStorage.getItem('dataName') }, url: '/tool/gen/' + tableId, method: 'get' }); @@ -33,7 +30,6 @@ // 淇敼浠g爜鐢熸垚淇℃伅 export const updateGenTable = (data: DbTableForm) => { return request({ - headers: { datasource: localStorage.getItem('dataName') }, url: '/tool/gen', method: 'put', data: data @@ -41,9 +37,8 @@ }; // 瀵煎叆琛� -export const importTable = (data: { tables: string }) => { +export const importTable = (data: { tables: string, dataName: string }) => { return request({ - headers: { datasource: localStorage.getItem('dataName') }, url: '/tool/gen/importTable', method: 'post', params: data @@ -53,7 +48,6 @@ // 棰勮鐢熸垚浠g爜 export const previewTable = (tableId: string | number) => { return request({ - headers: { datasource: localStorage.getItem('dataName') }, url: '/tool/gen/preview/' + tableId, method: 'get' }); @@ -62,26 +56,31 @@ // 鍒犻櫎琛ㄦ暟鎹� export const delTable = (tableId: string | number | Array<string | number>) => { return request({ - headers: { datasource: localStorage.getItem('dataName') }, url: '/tool/gen/' + tableId, method: 'delete' }); }; // 鐢熸垚浠g爜锛堣嚜瀹氫箟璺緞锛� -export const genCode = (tableName: string) => { +export const genCode = (tableId: string | number) => { return request({ - headers: { datasource: localStorage.getItem('dataName') }, - url: '/tool/gen/genCode/' + tableName, + url: '/tool/gen/genCode/' + tableId, method: 'get' }); }; // 鍚屾鏁版嵁搴� -export const synchDb = (tableName: string) => { +export const synchDb = (tableId: string | number) => { return request({ - headers: { datasource: localStorage.getItem('dataName') }, - url: '/tool/gen/synchDb/' + tableName, + url: '/tool/gen/synchDb/' + tableId, method: 'get' }); }; + +// 鑾峰彇鏁版嵁婧愬悕绉� +export const getDataNames = () => { + return request({ + url: '/tool/gen/getDataNames', + method: 'get' + }); +}; \ No newline at end of file diff --git a/src/api/tool/gen/types.ts b/src/api/tool/gen/types.ts index 662c6e5..7f7b62f 100644 --- a/src/api/tool/gen/types.ts +++ b/src/api/tool/gen/types.ts @@ -1,6 +1,7 @@ export interface TableVO extends BaseEntity { createDept: number | string; tableId: string | number; + dataName: string; tableName: string; tableComment: string; subTableName?: any; @@ -97,6 +98,7 @@ } export interface DbTableQuery extends PageQuery { + dataName: string; tableName: string; tableComment: string; } diff --git a/src/views/tool/gen/importTable.vue b/src/views/tool/gen/importTable.vue index 5ff0145..eada1dc 100644 --- a/src/views/tool/gen/importTable.vue +++ b/src/views/tool/gen/importTable.vue @@ -1,8 +1,13 @@ <template> <!-- 瀵煎叆琛� --> - <el-dialog title="瀵煎叆琛�" v-model="visible" width="800px" top="5vh" append-to-body> + <el-dialog title="瀵煎叆琛�" v-model="visible" width="1100px" top="5vh" append-to-body> <el-form :model="queryParams" ref="queryFormRef" :inline="true"> - <el-form-item label="琛ㄥ悕绉�" prop="tableName"> + <el-form-item label="鏁版嵁婧�" prop="dataName"> + <el-select v-model="queryParams.dataName" filterable placeholder="璇烽�夋嫨/杈撳叆鏁版嵁婧愬悕绉�" style="width: 200px"> + <el-option v-for="item in dataNameList" :key="item" :label="item" :value="item"> </el-option> + </el-select> + </el-form-item> + <el-form-item label="琛ㄥ悕绉�" prop="tableName"> <el-input v-model="queryParams.tableName" placeholder="璇疯緭鍏ヨ〃鍚嶇О" clearable @keyup.enter="handleQuery" /> </el-form-item> <el-form-item label="琛ㄦ弿杩�" prop="tableComment"> @@ -33,7 +38,7 @@ </template> <script setup lang="ts"> -import { listDbTable, importTable } from '@/api/tool/gen'; +import { listDbTable, importTable, getDataNames } from '@/api/tool/gen'; import { DbTableQuery, DbTableVO } from '@/api/tool/gen/types'; import { ComponentInternalInstance } from 'vue'; import { ElTable, ElForm } from 'element-plus'; @@ -50,14 +55,22 @@ const queryParams = reactive<DbTableQuery>({ pageNum: 1, pageSize: 10, + dataName: '', tableName: '', tableComment: '' }); +const dataNameList = ref<Array<string>>([]); const emit = defineEmits(["ok"]); /** 鏌ヨ鍙傛暟鍒楄〃 */ -const show = () => { +const show = (dataName: string) => { + getDataNameList(); + if(dataName){ + queryParams.dataName = dataName; + } else { + queryParams.dataName = 'master'; + } getList(); visible.value = true; } @@ -92,13 +105,18 @@ proxy?.$modal.msgError("璇烽�夋嫨瑕佸鍏ョ殑琛�"); return; } - const res = await importTable({ tables: tableNames }); + const res = await importTable({ tables: tableNames, dataName: queryParams.dataName }); proxy?.$modal.msgSuccess(res.msg); if (res.code === 200) { visible.value = false; emit("ok"); } } +/** 鏌ヨ澶氭暟鎹簮鍚嶇О */ +const getDataNameList = async () => { + const res = await getDataNames() + dataNameList.value = res.data; +} defineExpose({ show, diff --git a/src/views/tool/gen/index.vue b/src/views/tool/gen/index.vue index f78bb0d..5775e6a 100644 --- a/src/views/tool/gen/index.vue +++ b/src/views/tool/gen/index.vue @@ -4,7 +4,10 @@ <div class="search" v-show="showSearch"> <el-form :model="queryParams" ref="queryFormRef" :inline="true" label-width="68px"> <el-form-item label="鏁版嵁婧�" prop="dataName"> - <el-input v-model="queryParams.dataName" placeholder="璇疯緭鍏ユ暟鎹簮鍚嶇О" clearable style="width: 200px" @keyup.enter="handleQuery" /> + <el-select v-model="queryParams.dataName" filterable clearable placeholder="璇烽�夋嫨/杈撳叆鏁版嵁婧愬悕绉�" style="width: 200px"> + <el-option key="" label="鍏ㄩ儴" value="" /> + <el-option v-for="item in dataNameList" :key="item" :label="item" :value="item"> </el-option> + </el-select> </el-form-item> <el-form-item label="琛ㄥ悕绉�" prop="tableName"> <el-input v-model="queryParams.tableName" placeholder="璇疯緭鍏ヨ〃鍚嶇О" clearable style="width: 200px" @keyup.enter="handleQuery" /> @@ -58,6 +61,7 @@ <span>{{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}</span> </template> </el-table-column> + <el-table-column label="鏁版嵁婧�" align="center" prop="dataName" :show-overflow-tooltip="true" /> <el-table-column label="琛ㄥ悕绉�" align="center" prop="tableName" :show-overflow-tooltip="true" /> <el-table-column label="琛ㄦ弿杩�" align="center" prop="tableComment" :show-overflow-tooltip="true" /> <el-table-column label="瀹炰綋" align="center" prop="className" :show-overflow-tooltip="true" /> @@ -107,7 +111,7 @@ </template> <script setup name="Gen" lang="ts"> -import { listTable, previewTable, delTable, genCode, synchDb } from '@/api/tool/gen'; +import { listTable, previewTable, delTable, genCode, synchDb, getDataNames } from '@/api/tool/gen'; import { TableQuery, TableVO } from '@/api/tool/gen/types'; import router from '@/router'; import importTable from './importTable.vue'; @@ -124,9 +128,9 @@ const single = ref(true); const multiple = ref(true); const total = ref(0); -const tableNames = ref<Array<string>>([]); const dateRange = ref<[DateModelType, DateModelType]>(['', '']); const uniqueId = ref(""); +const dataNameList = ref<Array<string>>([]); const queryFormRef = ref(ElForm); const importRef = ref(importTable); @@ -136,7 +140,7 @@ pageSize: 10, tableName: '', tableComment: '', - dataName: "master" + dataName: "" }) const preview = ref <any>({ @@ -147,8 +151,6 @@ visible: false, title: '浠g爜棰勮' }); - -localStorage.setItem('dataName', queryParams.value.dataName); onActivated(() => { const time = route.query.t; @@ -161,6 +163,12 @@ } }) +/** 鏌ヨ澶氭暟鎹簮鍚嶇О */ +const getDataNameList = async () => { + const res = await getDataNames() + dataNameList.value = res.data; +} + /** 鏌ヨ琛ㄩ泦鍚� */ const getList = async () => { loading.value = true; @@ -171,34 +179,33 @@ } /** 鎼滅储鎸夐挳鎿嶄綔 */ const handleQuery = () => { - localStorage.setItem('dataName', queryParams.value.dataName); queryParams.value.pageNum = 1; getList(); } /** 鐢熸垚浠g爜鎿嶄綔 */ const handleGenTable = async (row?: TableVO) => { - const tbNames = row?.tableName || tableNames.value; - if (tbNames == "") { + const tbIds = row?.tableId || ids.value; + if (tbIds == "") { proxy?.$modal.msgError('璇烽�夋嫨瑕佺敓鎴愮殑鏁版嵁'); return; } if (row?.genType === "1") { - await genCode(row.tableName); + await genCode(row.tableId); proxy?.$modal.msgSuccess('鎴愬姛鐢熸垚鍒拌嚜瀹氫箟璺緞锛�' + row.genPath); } else { - proxy?.$download.zip('/tool/gen/batchGenCode?tables=' + tbNames, 'ruoyi.zip'); + proxy?.$download.zip('/tool/gen/batchGenCode?tableIdStr=' + tbIds, 'ruoyi.zip'); } } /** 鍚屾鏁版嵁搴撴搷浣� */ const handleSynchDb = async (row: TableVO) => { - const tableName = row.tableName; - await proxy?.$modal.confirm('纭瑕佸己鍒跺悓姝�"' + tableName + '"琛ㄧ粨鏋勫悧锛�'); - await synchDb(tableName); + const tableId = row.tableId; + await proxy?.$modal.confirm('纭瑕佸己鍒跺悓姝�"' + row.tableName + '"琛ㄧ粨鏋勫悧锛�'); + await synchDb(tableId); proxy?.$modal.msgSuccess('鍚屾鎴愬姛'); } /** 鎵撳紑瀵煎叆琛ㄥ脊绐� */ const openImportTable = () => { - importRef.value.show(); + importRef.value.show(queryParams.value.dataName); } /** 閲嶇疆鎸夐挳鎿嶄綔 */ const resetQuery = () => { @@ -220,7 +227,6 @@ // 澶氶�夋閫変腑鏁版嵁 const handleSelectionChange = (selection: TableVO[]) => { ids.value = selection.map(item => item.tableId); - tableNames.value = selection.map(item => item.tableName); single.value = selection.length != 1; multiple.value = !selection.length; } @@ -240,5 +246,6 @@ onMounted(() => { getList(); + getDataNameList(); }) </script> -- Gitblit v1.9.3