优化代码生成api

This commit is contained in:
不做码农
2021-12-13 21:53:48 +08:00
parent 57f5437920
commit 3037718786
8 changed files with 90 additions and 61 deletions
+10 -10
View File
@@ -5,7 +5,7 @@
<basic-info-form ref="basicInfo" :info="info" />
</el-tab-pane>
<el-tab-pane label="字段信息" name="cloum">
<el-table ref="dragTable" :data="cloumns" row-key="columnId" :max-height="tableHeight">
<el-table ref="dragTable" :data="columns" row-key="columnId" :max-height="tableHeight">
<el-table-column label="序号" type="index" min-width="5%" class-name="allowDrag" />
<el-table-column label="字段列名" prop="columnName" min-width="10%" :show-overflow-tooltip="true" />
<el-table-column label="字段描述" min-width="10%">
@@ -101,7 +101,7 @@
</el-table>
</el-tab-pane>
<el-tab-pane label="生成信息" name="genInfo">
<gen-info-form ref="genInfo" :info="info" :tables="tables" :menus="menus" :columns="cloumns" />
<gen-info-form ref="genInfo" :info="info" :tables="tables" :menus="menus" :columns="columns" />
</el-tab-pane>
</el-tabs>
<el-form label-width="100px">
@@ -114,7 +114,7 @@
</el-card>
</template>
<script>
import { updateGenTable, queryColumnInfo } from "@/api/tool/gen";
import { updateGenTable, getGenTable } from "@/api/tool/gen";
import { listType } from "@/api/system/dict/type";
import { listMenu as getMenuTreeselect } from "@/api/system/menu";
import basicInfoForm from "./basicInfoForm";
@@ -136,7 +136,7 @@ export default {
// 表信息
tables: [],
// 表列信息
cloumns: [],
columns: [],
// 字典信息
dictOptions: [],
// 菜单信息
@@ -154,10 +154,10 @@ export default {
if (tableId) {
// 获取表详细信息
queryColumnInfo(tableId).then((res) => {
this.cloumns = res.data.cloumns;
getGenTable(tableId).then((res) => {
this.columns = res.data.columns;
this.info = res.data.info;
// this.tables = res.data.tables;/子表
this.tables = res.data.tables;//子表
});
/** 查询字典下拉列表 */
listType().then((response) => {
@@ -177,7 +177,7 @@ export default {
const validateResult = res.every((item) => !!item);
if (validateResult) {
const genTable = Object.assign({}, basicForm.model, genForm.model);
genTable.columns = this.cloumns;
genTable.columns = this.columns;
genTable.params = {
// treeCode: genTable.treeCode,
// treeName: genTable.treeName,
@@ -217,7 +217,7 @@ export default {
const sortable = Sortable.create(el, {
handle: ".allowDrag",
onEnd: (evt) => {
const targetRow = that.cloumns.splice(evt.oldIndex, 1)[0];
const targetRow = that.columns.splice(evt.oldIndex, 1)[0];
columns.splice(evt.newIndex, 0, targetRow);
for (let index in columns) {
columns[index].sort = parseInt(index) + 1;
@@ -230,7 +230,7 @@ export default {
},
},
watch: {
cloumns: {
columns: {
handler(val) {
this.sortTable(val);
},
+28 -8
View File
@@ -7,7 +7,8 @@
<el-select v-model="info.tplCategory" @change="tplSelectChange">
<el-option label="单表(增删改查)" value="crud" />
<!-- <el-option label="树表(增删改查)" value="tree" />
<el-option label="主子表(增删改查)" value="sub" /> -->
<el-option label="导航查询" value="subNav"></el-option> -->
<!-- <el-option label="主子表(增删改查)" value="sub" /> -->
</el-select>
</el-form-item>
</el-col>
@@ -179,7 +180,7 @@
<i class="el-icon-question"></i>
</el-tooltip>
</span>
<el-select v-model="info.subTableName" placeholder="请选择" @change="subSelectChange">
<el-select v-model="info.subTableName" placeholder="请选择" @change="subSelectChange(this)">
<el-option v-for="(table, index) in tables" :key="index" :label="table.tableName + ':' + table.tableComment" :value="table.tableName">
</el-option>
</el-select>
@@ -203,6 +204,7 @@
</el-form>
</template>
<script>
import { queryColumnInfo } from "@/api/tool/gen";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
@@ -214,7 +216,7 @@ export default {
type: Object,
default: null,
},
// 字表
// 子表
tables: {
type: Array,
default: null,
@@ -237,10 +239,20 @@ export default {
{ required: true, message: "请选择生成模板", trigger: "blur" },
],
moduleName: [
{ required: true, message: "请输入生成模块名", trigger: "blur", pattern:/^[A-Za-z]+$/ },
{
required: true,
message: "请输入生成模块名",
trigger: "blur",
pattern: /^[A-Za-z]+$/,
},
],
businessName: [
{ required: true, message: "请输入生成业务名", trigger: "blur", pattern:/^[A-Za-z]+$/},
{
required: true,
message: "请输入生成业务名",
trigger: "blur",
pattern: /^[A-Za-z]+$/,
},
],
functionName: [
{ required: true, message: "请输入生成功能名", trigger: "blur" },
@@ -281,10 +293,18 @@ export default {
},
/** 设置关联外键 */
setSubTableColumns(value) {
console.log(value);
if (value == null || value == undefined || value == "") {
return;
}
for (var item in this.tables) {
const name = this.tables[item].tableName;
if (value === name) {
this.subColumns = this.tables[item].columns;
const obj = this.tables[item];
if (value === obj.tableName) {
queryColumnInfo(obj.tableId).then((res) => {
if (res.code == 200) {
this.subColumns = res.data.columns;
}
});
break;
}
}