From b83f2ff60baada9ce1d83bb15f247e14ed1776d6 Mon Sep 17 00:00:00 2001 From: RuoYi <yzz_ivy@163.com> Date: 星期一, 11 三月 2024 10:47:40 +0800 Subject: [PATCH] 添加新群号:138988063 --- ruoyi-ui/src/views/tool/gen/genInfoForm.vue | 129 +++++++++++++++++++++++++++++++++++------- 1 files changed, 106 insertions(+), 23 deletions(-) diff --git a/ruoyi-ui/src/views/tool/gen/genInfoForm.vue b/ruoyi-ui/src/views/tool/gen/genInfoForm.vue index 6fcf27b..a15e073 100644 --- a/ruoyi-ui/src/views/tool/gen/genInfoForm.vue +++ b/ruoyi-ui/src/views/tool/gen/genInfoForm.vue @@ -4,13 +4,22 @@ <el-col :span="12"> <el-form-item prop="tplCategory"> <span slot="label">生成模板</span> - <el-select v-model="info.tplCategory"> + <el-select v-model="info.tplCategory" @change="tplSelectChange"> <el-option label="单表(增删改查)" value="crud" /> <el-option label="树表(增删改查)" value="tree" /> + <el-option label="主子表(增删改查)" value="sub" /> </el-select> </el-form-item> </el-col> - + <el-col :span="12"> + <el-form-item prop="tplWebType"> + <span slot="label">前端类型</span> + <el-select v-model="info.tplWebType"> + <el-option label="Vue2 Element UI 模版" value="element-ui" /> + <el-option label="Vue3 Element Plus 模版" value="element-plus" /> + </el-select> + </el-form-item> + </el-col> <el-col :span="12"> <el-form-item prop="packageName"> <span slot="label"> @@ -60,6 +69,19 @@ </el-col> <el-col :span="12"> + <el-form-item prop="genType"> + <span slot="label"> + 生成代码方式 + <el-tooltip content="默认为zip压缩包下载,也可以自定义生成路径" placement="top"> + <i class="el-icon-question"></i> + </el-tooltip> + </span> + <el-radio v-model="info.genType" label="0">zip压缩包</el-radio> + <el-radio v-model="info.genType" label="1">自定义路径</el-radio> + </el-form-item> + </el-col> + + <el-col :span="12"> <el-form-item> <span slot="label"> 上级菜单 @@ -75,19 +97,6 @@ :show-count="true" placeholder="请选择系统菜单" /> - </el-form-item> - </el-col> - - <el-col :span="12"> - <el-form-item prop="genType"> - <span slot="label"> - 生成代码方式 - <el-tooltip content="默认为zip压缩包下载,也可以自定义生成路径" placement="top"> - <i class="el-icon-question"></i> - </el-tooltip> - </span> - <el-radio v-model="info.genType" label="0">zip压缩包</el-radio> - <el-radio v-model="info.genType" label="1">自定义路径</el-radio> </el-form-item> </el-col> @@ -126,8 +135,8 @@ </span> <el-select v-model="info.treeCode" placeholder="请选择"> <el-option - v-for="column in info.columns" - :key="column.columnName" + v-for="(column, index) in info.columns" + :key="index" :label="column.columnName + ':' + column.columnComment" :value="column.columnName" ></el-option> @@ -144,8 +153,8 @@ </span> <el-select v-model="info.treeParentCode" placeholder="请选择"> <el-option - v-for="column in info.columns" - :key="column.columnName" + v-for="(column, index) in info.columns" + :key="index" :label="column.columnName + ':' + column.columnComment" :value="column.columnName" ></el-option> @@ -162,8 +171,47 @@ </span> <el-select v-model="info.treeName" placeholder="请选择"> <el-option - v-for="column in info.columns" - :key="column.columnName" + v-for="(column, index) in info.columns" + :key="index" + :label="column.columnName + ':' + column.columnComment" + :value="column.columnName" + ></el-option> + </el-select> + </el-form-item> + </el-col> + </el-row> + <el-row v-show="info.tplCategory == 'sub'"> + <h4 class="form-header">关联信息</h4> + <el-col :span="12"> + <el-form-item> + <span slot="label"> + 关联子表的表名 + <el-tooltip content="关联子表的表名, 如:sys_user" placement="top"> + <i class="el-icon-question"></i> + </el-tooltip> + </span> + <el-select v-model="info.subTableName" placeholder="请选择" @change="subSelectChange"> + <el-option + v-for="(table, index) in tables" + :key="index" + :label="table.tableName + ':' + table.tableComment" + :value="table.tableName" + ></el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item> + <span slot="label"> + 子表关联的外键名 + <el-tooltip content="子表关联的外键名, 如:user_id" placement="top"> + <i class="el-icon-question"></i> + </el-tooltip> + </span> + <el-select v-model="info.subTableFkName" placeholder="请选择"> + <el-option + v-for="(column, index) in subColumns" + :key="index" :label="column.columnName + ':' + column.columnComment" :value="column.columnName" ></el-option> @@ -173,16 +221,20 @@ </el-row> </el-form> </template> + <script> import Treeselect from "@riophae/vue-treeselect"; import "@riophae/vue-treeselect/dist/vue-treeselect.css"; export default { - name: "BasicInfoForm", components: { Treeselect }, props: { info: { type: Object, + default: null + }, + tables: { + type: Array, default: null }, menus: { @@ -192,6 +244,7 @@ }, data() { return { + subColumns: [], rules: { tplCategory: [ { required: true, message: "请选择生成模板", trigger: "blur" } @@ -211,7 +264,16 @@ } }; }, - created() {}, + watch: { + 'info.subTableName': function(val) { + this.setSubTableColumns(val); + }, + 'info.tplWebType': function(val) { + if (val === '') { + this.info.tplWebType = "element-ui"; + } + } + }, methods: { /** 转换菜单数据结构 */ normalizer(node) { @@ -223,6 +285,27 @@ label: node.menuName, children: node.children }; + }, + /** 选择子表名触发 */ + subSelectChange(value) { + this.info.subTableFkName = ''; + }, + /** 选择生成模板触发 */ + tplSelectChange(value) { + if(value !== 'sub') { + this.info.subTableName = ''; + this.info.subTableFkName = ''; + } + }, + /** 设置关联外键 */ + setSubTableColumns(value) { + for (var item in this.tables) { + const name = this.tables[item].tableName; + if (value === name) { + this.subColumns = this.tables[item].columns; + break; + } + } } } }; -- Gitblit v1.9.2