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-item
label="<#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
@Override
public 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.接口文档,写多了就快了。(深入熟悉了就知道如何定制可扩展兼容性强的规则。)(针对子类,参数表的配置处理)