RuoYi
2024-03-01 69c189a0c97cc6efedae19a4d7d89e18cfd4f4e6
代码生成新增创建表结构功能
已修改2个文件
已添加1个文件
71 ■■■■■ 文件已修改
src/api/tool/gen.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/tool/gen/createTable.vue 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/tool/gen/index.vue 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/tool/gen.js
@@ -43,6 +43,15 @@
  })
}
// åˆ›å»ºè¡¨
export function createTable(data) {
  return request({
    url: '/tool/gen/createTable',
    method: 'post',
    params: data
  })
}
// é¢„览生成代码
export function previewTable(tableId) {
  return request({
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>
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 = [];