yshop代码生成器遇到的问题 eFrom.vue没生成
what
eForm.ftl文件文件不支持生成eForm.vue文件
how
1. eForm.ftl文件文件不支持生成eForm.vue文件
Part 1: 生成eForm.vue文件,
Reson: 添加eForm生成文件规则,解决报错问题
module: yshop-generator
pakage: co.yixiang.modules.gen.utils.GenUtil
/* 获取前端代码模板名称* @return List*/private static List<String> getFrontTemplateNames() {List<String> templateNames = new ArrayList<>();templateNames.add("index");templateNames.add("api");/* Date: 2023/04/05* 代码里面没有添加,估计暂时没整合*/templateNames.add("eForm");return templateNames;}
eForm.ftl 修改column.olumnComment为column.remark。
<template><el-dialog :append-to-body="true" :close-on-click-modal="false" :before-close="cancel" :visible.sync="dialog":title="isAdd ? '新增' : '编辑'" width="500px"><el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px"><#if columns??><#list columns as column><#if column.changeColumnName != '${pkChangeColName}'><el-form-itemlabel="<#if column.remark != ''>${column.remark }<#else>${column.changeColumnName}</#if>"<#if column.columnKey = 'UNI'>prop="${column.changeColumnName}"</#if>><el-input v-model="form.${column.changeColumnName}" style="width: 370px;"/></el-form-item></#if></#list></#if></el-form>
..........................此处省略代码
</template>
..........................此处省略代码
end 问题解决,生成eForm.vue也不会报错
Part2: 数据库表添加column_comment
module: yshop-generator
pakage: co.yixiang.modules.gen.utils.GenUtil
/* 获取前端代码模板名称* @return List*/private static List<String> getFrontTemplateNames() {List<String> templateNames = new ArrayList<>();templateNames.add("index");templateNames.add("api");/* Date: 2023/04/05* 代码里面没有添加,估计暂时没整合*/templateNames.add("eForm");return templateNames;}
SQL脚本
ALTER TABLE `column_config`
ADD COLUMN `column_comment` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL AFTER `column_type`;
module: yshop-generator
package: co.yixiang.modules.gen.domain.ColumnConfig
添加字段 && 构造函数
/ 数据库字段描述 */private String columnComment;public ColumnConfig(String tableName, String columnName, Boolean notNull, String columnType, String columnComment, String remark, String keyType, String extra) {this.tableName = tableName;this.columnName = columnName;this.columnType = columnType;this.columnComment = columnComment;this.keyType = keyType;this.extra = extra;this.notNull = notNull;if (GenUtil.PK.equalsIgnoreCase(keyType) && GenUtil.EXTRA.equalsIgnoreCase(extra)) {this.notNull = false;}this.remark = remark;this.listShow = true;this.formShow = true;}
module: yshop-generator
package: co.yixiang.modules.gen.utils.GenUtil
/* 获取前端代码模板名称* @return List*/private static List<String> getFrontTemplateNames() {List<String> templateNames = new ArrayList<>();templateNames.add("index");templateNames.add("api");/* Date: 2023/04/05* 代码里面没有添加,估计暂时没整合*/templateNames.add("eForm");return templateNames;}
module: yshop-generator
package: co.yixiang.modules.gen.service.impl.GeneratorServiceImpl
@Overridepublic List<ColumnConfig> query(String tableName) {List<ColumnConfig> columnInfos = new ArrayList<>();List<Map<String, Object>> result = baseMapper.queryByTableName(tableName);for (Map<String, Object> map : result) {columnInfos.add(new ColumnConfig(tableName,map.get("COLUMN_NAME").toString(),"NO".equals(map.get("IS_NULLABLE").toString()),map.get("DATA_TYPE").toString(),ObjectUtil.isNotNull(map.get("COLUMN_COMMENT")) ? map.get("COLUMN_COMMENT").toString() : null,ObjectUtil.isNotNull(map.get("COLUMN_COMMENT")) ? map.get("COLUMN_COMMENT").toString() : null,ObjectUtil.isNotNull(map.get("COLUMN_KEY")) ? map.get("COLUMN_KEY").toString() : null,ObjectUtil.isNotNull(map.get("EXTRA")) ? map.get("EXTRA").toString() : null));}return columnInfos;}
why
结论:可以正常生成eForm.vue文件,后面自己的项目中可以单独使用。
熟悉了yshop前段,代码生成器的逻辑。支持方法。
what is the next!
1.后台的代码生成器流程代码过一下。
2.支持的调用接口记录一下。
3.接口文档,写多了就快了。(深入熟悉了就知道如何定制可扩展兼容性强的规则。)(针对子类,参数表的配置处理)