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