From 69c189a0c97cc6efedae19a4d7d89e18cfd4f4e6 Mon Sep 17 00:00:00 2001 From: RuoYi <yzz_ivy@163.com> Date: 星期五, 01 三月 2024 20:08:52 +0800 Subject: [PATCH] 代码生成新增创建表结构功能 --- src/views/tool/gen/createTable.vue | 46 +++++++++++++++++++++++ src/api/tool/gen.js | 9 ++++ src/views/tool/gen/index.vue | 16 ++++++++ 3 files changed, 71 insertions(+), 0 deletions(-) diff --git a/src/api/tool/gen.js b/src/api/tool/gen.js index afaf2a9..5728980 100644 --- a/src/api/tool/gen.js +++ b/src/api/tool/gen.js @@ -43,6 +43,15 @@ }) } +// 鍒涘缓琛� +export function createTable(data) { + return request({ + url: '/tool/gen/createTable', + method: 'post', + params: data + }) +} + // 棰勮鐢熸垚浠g爜 export function previewTable(tableId) { return request({ diff --git a/src/views/tool/gen/createTable.vue b/src/views/tool/gen/createTable.vue new file mode 100644 index 0000000..00fdfdb --- /dev/null +++ b/src/views/tool/gen/createTable.vue @@ -0,0 +1,46 @@ +<template> + <!-- 鍒涘缓琛� --> + <el-dialog title="鍒涘缓琛�" v-model="visible" width="800px" top="5vh" append-to-body> + <span>鍒涘缓琛ㄨ鍙�(鏀寔澶氫釜寤鸿〃璇彞)锛�</span> + <el-input type="textarea" :rows="10" placeholder="璇疯緭鍏ユ枃鏈�" v-model="content"></el-input> + <template #footer> + <div class="dialog-footer"> + <el-button type="primary" @click="handleImportTable">纭� 瀹�</el-button> + <el-button @click="visible = false">鍙� 娑�</el-button> + </div> + </template> + </el-dialog> +</template> + +<script setup> +import { createTable } from "@/api/tool/gen"; + +const visible = ref(false); +const content = ref(""); +const { proxy } = getCurrentInstance(); +const emit = defineEmits(["ok"]); + +/** 鏄剧ず寮规 */ +function show() { + visible.value = true; +} + +/** 瀵煎叆鎸夐挳鎿嶄綔 */ +function handleImportTable() { + if (content.value === "") { + proxy.$modal.msgError("璇疯緭鍏ュ缓琛ㄨ鍙�"); + return; + } + createTable({ sql: content.value }).then(res => { + proxy.$modal.msgSuccess(res.msg); + if (res.code === 200) { + visible.value = false; + emit("ok"); + } + }); +} + +defineExpose({ + show, +}); +</script> diff --git a/src/views/tool/gen/index.vue b/src/views/tool/gen/index.vue index 8c9ce6a..77e8a80 100644 --- a/src/views/tool/gen/index.vue +++ b/src/views/tool/gen/index.vue @@ -41,9 +41,19 @@ type="primary" plain icon="Download" + :disabled="multiple" @click="handleGenTable" v-hasPermi="['tool:gen:code']" >鐢熸垚</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="primary" + plain + icon="Plus" + @click="openCreateTable" + v-hasRole="['admin']" + >鍒涘缓</el-button> </el-col> <el-col :span="1.5"> <el-button @@ -146,6 +156,7 @@ </el-tabs> </el-dialog> <import-table ref="importRef" @ok="handleQuery" /> + <create-table ref="createRef" @ok="handleQuery" /> </div> </template> @@ -153,6 +164,7 @@ import { listTable, previewTable, delTable, genCode, synchDb } from "@/api/tool/gen"; import router from "@/router"; import importTable from "./importTable"; +import createTable from "./createTable"; const route = useRoute(); const { proxy } = getCurrentInstance(); @@ -238,6 +250,10 @@ function openImportTable() { proxy.$refs["importRef"].show(); } +/** 鎵撳紑鍒涘缓琛ㄥ脊绐� */ +function openCreateTable() { + proxy.$refs["createRef"].show(); +} /** 閲嶇疆鎸夐挳鎿嶄綔 */ function resetQuery() { dateRange.value = []; -- Gitblit v1.9.3