refactor: 代码生成器

This commit is contained in:
2024-04-26 18:11:13 +08:00
parent d2275d700f
commit 9282e10873
18 changed files with 127 additions and 118 deletions

View File

@@ -6,6 +6,14 @@ import org.apache.commons.configuration.PropertiesConfiguration;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
/**
* <p>
* 工具类
* </p>
*
* @author lyd
* @since 2023-05-03
*/
public class ColUtil { public class ColUtil {
private static final Logger log = LoggerFactory.getLogger(ColUtil.class); private static final Logger log = LoggerFactory.getLogger(ColUtil.class);

View File

@@ -21,7 +21,6 @@ import java.util.Map;
import static org.nl.modules.common.utils.FileUtil.SYS_TEM_DIR; import static org.nl.modules.common.utils.FileUtil.SYS_TEM_DIR;
/** /**
* @author: lyd * @author: lyd
* @description: 代码生成 * @description: 代码生成
@@ -101,7 +100,7 @@ public class GenUtil {
* 定义后端文件路径以及名称 * 定义后端文件路径以及名称
*/ */
private static String getAdminFilePath(String templateName, CodeGenConfig genConfig, String className, String rootPath) { private static String getAdminFilePath(String templateName, CodeGenConfig genConfig, String className, String rootPath) {
String projectPath = rootPath + File.separator; String projectPath = rootPath + File.separator + genConfig.getModule_name() + File.separator;
String packagePath = projectPath + "src" + File.separator + "main" + File.separator + "java" + File.separator; String packagePath = projectPath + "src" + File.separator + "main" + File.separator + "java" + File.separator;
if (!ObjectUtils.isEmpty(genConfig.getPack())) { if (!ObjectUtils.isEmpty(genConfig.getPack())) {
packagePath += genConfig.getPack().replace(".", File.separator) + File.separator; packagePath += genConfig.getPack().replace(".", File.separator) + File.separator;
@@ -323,7 +322,6 @@ public class GenUtil {
/** /**
* 打包下载 * 打包下载
*
* @param columns * @param columns
* @param genConfig * @param genConfig
* @return * @return
@@ -371,7 +369,6 @@ public class GenUtil {
/** /**
* 生成文件 * 生成文件
*
* @param file * @param file
* @param template * @param template
* @param map * @param map
@@ -394,7 +391,6 @@ public class GenUtil {
/** /**
* 生成代码 * 生成代码
*
* @param columnInfos * @param columnInfos
* @param genConfig * @param genConfig
* @throws IOException * @throws IOException

View File

@@ -1,4 +1,4 @@
/* package org.nl.modules.common.utils;/*
* Copyright 2019-2020 Zheng Jie * Copyright 2019-2020 Zheng Jie
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
@@ -13,7 +13,6 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package org.nl.modules.common.utils;
import cn.hutool.core.io.IoUtil; import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
@@ -96,7 +95,6 @@ public class FileUtil extends cn.hutool.core.io.FileUtil {
File file = null; File file = null;
try { try {
// 用uuid作为文件名防止生成的临时文件重复 // 用uuid作为文件名防止生成的临时文件重复
//file = File.createTempFile(IdUtil.simpleUUID(), prefix);
file = new File(SYS_TEM_DIR + IdUtil.simpleUUID() + prefix); file = new File(SYS_TEM_DIR + IdUtil.simpleUUID() + prefix);
// MultipartFile to File // MultipartFile to File
multipartFile.transferTo(file); multipartFile.transferTo(file);
@@ -249,7 +247,7 @@ public class FileUtil extends cn.hutool.core.io.FileUtil {
// 1M // 1M
int len = 1024 * 1024; int len = 1024 * 1024;
if (size > (maxSize * len)) { if (size > (maxSize * len)) {
throw new BadRequestException("文件超出规定大小"); throw new BadRequestException("文件超出规定大小!");
} }
} }

View File

@@ -2,6 +2,9 @@ package org.nl.system.controller.generator;
import cn.dev33.satoken.annotation.SaIgnore; import cn.dev33.satoken.annotation.SaIgnore;
import lombok.RequiredArgsConstructor;
import org.nl.system.service.generator.ICodeGenConfigService; import org.nl.system.service.generator.ICodeGenConfigService;
import org.nl.system.service.generator.dao.CodeGenConfig; import org.nl.system.service.generator.dao.CodeGenConfig;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -20,7 +23,6 @@ import org.springframework.web.bind.annotation.*;
*/ */
@SaIgnore @SaIgnore
@RestController @RestController
@RequestMapping("api/genConfig") @RequestMapping("api/genConfig")
public class CodeGenConfigController { public class CodeGenConfigController {

View File

@@ -28,7 +28,6 @@ import java.util.List;
@SaIgnore @SaIgnore
@RestController @RestController
@RequestMapping("/api/generator") @RequestMapping("/api/generator")
public class CodeGeneratorController { public class CodeGeneratorController {
@Autowired @Autowired
private ICodeGeneratorService generatorService; private ICodeGeneratorService generatorService;
@@ -70,22 +69,18 @@ public class CodeGeneratorController {
@PostMapping(value = "/{tableName}/{type}") @PostMapping(value = "/{tableName}/{type}")
public ResponseEntity<Object> generator(@PathVariable String tableName, @PathVariable Integer type, HttpServletRequest request, HttpServletResponse response){ public ResponseEntity<Object> generator(@PathVariable String tableName, @PathVariable Integer type, HttpServletRequest request, HttpServletResponse response){
if(!generatorEnabled && type == 0){ if(!generatorEnabled && type == 0){
throw new BadRequestException("此环境不允许生成代码,请选择预览或者下载查看"); throw new BadRequestException("此环境不允许生成代码,请选择预览或者下载查看");
} }
switch (type){ switch (type){
// 生成代码 // 生成代码
case 0: case 0: generatorService.generator(genConfigService.findByTableName(tableName), generatorService.getColumns(tableName));
generatorService.generator(genConfigService.findByTableName(tableName), generatorService.getColumns(tableName));
break; break;
// 预览 // 预览
case 1: case 1: return generatorService.preview(genConfigService.findByTableName(tableName), generatorService.getColumns(tableName));
return generatorService.preview(genConfigService.findByTableName(tableName), generatorService.getColumns(tableName));
// 打包 // 打包
case 2: case 2: generatorService.download(genConfigService.findByTableName(tableName), generatorService.getColumns(tableName), request, response);
generatorService.download(genConfigService.findByTableName(tableName), generatorService.getColumns(tableName), request, response);
break; break;
default: default: throw new BadRequestException("信息为空");
throw new BadRequestException("没有这个选项");
} }
return new ResponseEntity<>(HttpStatus.OK); return new ResponseEntity<>(HttpStatus.OK);
} }

View File

@@ -1,7 +1,7 @@
package org.nl.system.service.generator; package org.nl.system.service.generator;
import com.baomidou.mybatisplus.extension.service.IService;
import org.nl.system.service.generator.dao.CodeGenConfig; import org.nl.system.service.generator.dao.CodeGenConfig;
import com.baomidou.mybatisplus.extension.service.IService;
/** /**
* <p> * <p>
@@ -15,7 +15,6 @@ public interface ICodeGenConfigService extends IService<CodeGenConfig> {
/** /**
* 根据表名查找 * 根据表名查找
*
* @param tableName * @param tableName
* @return * @return
*/ */
@@ -23,7 +22,6 @@ public interface ICodeGenConfigService extends IService<CodeGenConfig> {
/** /**
* 根据表名更新 * 根据表名更新
*
* @param tableName * @param tableName
* @param genConfig * @param genConfig
* @return * @return

View File

@@ -1,11 +1,12 @@
package org.nl.system.service.generator; package org.nl.system.service.generator;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.nl.common.domain.query.PageQuery; import org.nl.common.domain.query.PageQuery;
import org.nl.system.service.generator.dao.CodeColumnConfig; import org.nl.system.service.generator.dao.CodeColumnConfig;
import com.baomidou.mybatisplus.extension.service.IService;
import org.nl.system.service.generator.dao.CodeGenConfig; import org.nl.system.service.generator.dao.CodeGenConfig;
import org.nl.system.service.generator.dto.TablesInfo; import org.nl.system.service.generator.dto.TablesInfo;
import org.springframework.data.domain.Pageable;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Async;
@@ -25,16 +26,14 @@ public interface ICodeGeneratorService extends IService<CodeColumnConfig> {
/** /**
* 获得所有的表格信息 * 获得所有的表格信息
*
* @param name * @param name
* @param pageQuery * @param pageQuery
* @return * @return IPage<TablesInfo>
*/ */
IPage<TablesInfo> getTables(String name, PageQuery pageQuery); IPage<TablesInfo> getTables(String name, PageQuery pageQuery);
/** /**
* 得到数据表的元数据 * 得到数据表的元数据
*
* @param tableName 表名 * @param tableName 表名
* @return / * @return /
*/ */
@@ -42,7 +41,6 @@ public interface ICodeGeneratorService extends IService<CodeColumnConfig> {
/** /**
* 根据表名查询表字段 * 根据表名查询表字段
*
* @param tableName * @param tableName
* @return * @return
*/ */
@@ -50,7 +48,6 @@ public interface ICodeGeneratorService extends IService<CodeColumnConfig> {
/** /**
* 同步表数据 * 同步表数据
*
* @param columnInfos / * @param columnInfos /
* @param columnInfoList / * @param columnInfoList /
*/ */
@@ -58,17 +55,15 @@ public interface ICodeGeneratorService extends IService<CodeColumnConfig> {
void sync(IPage<CodeColumnConfig> columnInfos, List<CodeColumnConfig> columnInfoList); void sync(IPage<CodeColumnConfig> columnInfos, List<CodeColumnConfig> columnInfoList);
/** /**
* 预览代码 * 视图
*
* @param byTableName * @param byTableName
* @param columns * @param columns
* @return * @return ResponseEntity<Object>
*/ */
ResponseEntity<Object> preview(CodeGenConfig byTableName, IPage<CodeColumnConfig> columns); ResponseEntity<Object> preview(CodeGenConfig byTableName, IPage<CodeColumnConfig> columns);
/** /**
* 打包下载 * 打包下载
*
* @param genConfig 配置信息 * @param genConfig 配置信息
* @param columnsPage 字段信息分页数据 * @param columnsPage 字段信息分页数据
* @param request / * @param request /
@@ -78,7 +73,6 @@ public interface ICodeGeneratorService extends IService<CodeColumnConfig> {
/** /**
* 代码生成 * 代码生成
*
* @param genConfig 配置信息 * @param genConfig 配置信息
* @param columnsPage 字段信息分页数据 * @param columnsPage 字段信息分页数据
*/ */

View File

@@ -5,12 +5,15 @@ import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode;
import org.nl.common.utils.GenUtil; import org.nl.common.utils.GenUtil;
import org.nl.system.service.generator.dto.ColumnInfo; import org.nl.system.service.generator.dto.ColumnInfo;
import java.io.Serializable;
/** /**
* <p> * <p>
* 列的数据信息表 * 列的数据信息表
@@ -72,10 +75,9 @@ public class CodeColumnConfig implements Serializable {
/** /**
* 创建默认的实体 * 创建默认的实体
* * @param tableName /
* @param tableName * @param config /
* @param config * @return CodeColumnConfig
* @return
*/ */
public static CodeColumnConfig createDefault(String tableName, ColumnInfo config) { public static CodeColumnConfig createDefault(String tableName, ColumnInfo config) {
CodeColumnConfig columnConfig = new CodeColumnConfig(); CodeColumnConfig columnConfig = new CodeColumnConfig();

View File

@@ -2,12 +2,11 @@ package org.nl.system.service.generator.dao;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.io.Serializable;
/** /**
* <p> * <p>
* 代码生成配置表 * 代码生成配置表

View File

@@ -1,7 +1,7 @@
package org.nl.system.service.generator.dao.mapper; package org.nl.system.service.generator.dao.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.nl.system.service.generator.dao.CodeColumnConfig; import org.nl.system.service.generator.dao.CodeColumnConfig;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.nl.system.service.generator.dto.ColumnInfo; import org.nl.system.service.generator.dto.ColumnInfo;
import org.nl.system.service.generator.dto.TablesInfo; import org.nl.system.service.generator.dto.TablesInfo;
@@ -19,25 +19,24 @@ public interface CodeColumnConfigMapper extends BaseMapper<CodeColumnConfig> {
/** /**
* 分页查找 * 分页查找
* * @param name /
* @param name 表名 * @param pageSize /
* @return 表信息 * @param offset /
* @return List<TablesInfo>
*/ */
List<TablesInfo> getTables(String name, int pageSize, int offset); List<TablesInfo> getTables(String name, int pageSize, int offset);
/** /**
* 分页查询的总数 * 分页查询的总数
* * @param name
* @param name 表名 * @return long
* @return 表信息
*/ */
long getTablesTotal(String name); long getTablesTotal(String name);
/** /**
* 获取 * 获取字段名称
* * @param tableName
* @param tableName 表名 * @return List<ColumnInfo>
* @return 列数据
*/ */
List<ColumnInfo> getTablesByTableName(String tableName); List<ColumnInfo> getTablesByTableName(String tableName);
} }

View File

@@ -1,5 +1,6 @@
package org.nl.system.service.generator.dto; package org.nl.system.service.generator.dto;
import lombok.Data; import lombok.Data;
/** /**

View File

@@ -9,8 +9,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.nl.common.domain.query.PageQuery; import org.nl.common.domain.query.PageQuery;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.common.utils.GenUtil; import org.nl.common.utils.GenUtil;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.common.utils.FileUtil; import org.nl.modules.common.utils.FileUtil;
import org.nl.system.service.generator.ICodeGeneratorService; import org.nl.system.service.generator.ICodeGeneratorService;
import org.nl.system.service.generator.dao.CodeColumnConfig; import org.nl.system.service.generator.dao.CodeColumnConfig;
@@ -142,7 +142,7 @@ public class CodeGeneratorServiceImpl extends ServiceImpl<CodeColumnConfigMapper
ZipUtil.zip(file.getPath(), zipPath); ZipUtil.zip(file.getPath(), zipPath);
FileUtil.downloadFile(request, response, new File(zipPath), true); FileUtil.downloadFile(request, response, new File(zipPath), true);
} catch (IOException e) { } catch (IOException e) {
throw new BadRequestException("打包失败"); throw new BadRequestException("系统繁忙,稍后在试");
} }
} }
@@ -156,7 +156,7 @@ public class CodeGeneratorServiceImpl extends ServiceImpl<CodeColumnConfigMapper
GenUtil.generatorCode(columns, genConfig); GenUtil.generatorCode(columns, genConfig);
} catch (IOException e) { } catch (IOException e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
throw new BadRequestException("生成失败,请手动处理已生成的文件"); throw new BadRequestException("系统繁忙,稍后在试");
} }
} }
} }

View File

@@ -1,9 +1,9 @@
package ${package}.controller; package ${package}.controller;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.nl.common.TableDataInfo; import org.nl.common.base.TableDataInfo;
import org.nl.common.domain.query.PageQuery; import org.nl.common.domain.query.PageQuery;
import org.nl.modules.logging.annotation.Log; import org.nl.common.logging.annotation.Log;
import ${package}.service.I${className}Service; import ${package}.service.I${className}Service;
import ${package}.service.dao.${className}; import ${package}.service.dao.${className};
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -36,8 +36,7 @@ public class ${className}Controller {
@PostMapping @PostMapping
@Log("新增${apiAlias}") @Log("新增${apiAlias}")
//@SaCheckPermission("@el.check('${changeClassName}:add')") //@SaCheckPermission("@el.check('${changeClassName}:add')")
public ResponseEntity public ResponseEntity<Object> create(@Validated @RequestBody ${className} entity){
<Object> create(@Validated @RequestBody ${className} entity){
${changeClassName}Service.create(entity); ${changeClassName}Service.create(entity);
return new ResponseEntity<>(HttpStatus.CREATED); return new ResponseEntity<>(HttpStatus.CREATED);
} }

View File

@@ -1,16 +1,23 @@
package ${package}.service.dto; package ${package}.service.dto;
import lombok.Data;
import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
<#if hasTimestamp> <#if hasTimestamp>
import java.sql.Timestamp; import java.sql.Timestamp;
import java.sql.Timestamp;
</#if> </#if>
<#if hasBigDecimal> <#if hasBigDecimal>
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.BigDecimal;
</#if> </#if>
import lombok.Data; import lombok.Data;
import lombok.Builder; import lombok.Builder;
import java.io.Serializable; import java.io.Serializable;
<#if !auto && pkColumnType = 'Long'>
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
</#if>
/** /**
* @description / * @description /
@@ -33,6 +40,17 @@ public class ${className}Dto implements Serializable {
</#if> </#if>
</#if> </#if>
private ${column.columnType} ${column.changeColumnName}; private ${column.columnType} ${column.changeColumnName};
<#if column.remark != ''>
/** ${column.remark} */
</#if>
<#if column.columnKey = 'PRI'>
<#if !auto && pkColumnType = 'Long'>
/** 防止精度丢失 */
@JsonSerialize(using= ToStringSerializer.class)
</#if>
</#if>
private ${column.columnType} ${column.changeColumnName};
</#list> </#list>
</#if> </#if>
} }

View File

@@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
</#if> </#if>
import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
@@ -18,12 +18,11 @@ import java.math.BigDecimal;
import java.io.Serializable; import java.io.Serializable;
/** /**
* @description 添加'@Builder'注解最好不好添加'@NoArgsConstructor' * @description /
* @author ${author} * @author ${author}
* @date ${date} * @date ${date}
**/ **/
@Data @Data
@Builder
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
@TableName("${tableName}") @TableName("${tableName}")
public class ${className} implements Serializable { public class ${className} implements Serializable {
@@ -35,7 +34,7 @@ public class ${className} implements Serializable {
<#if column.columnKey = 'PRI'> <#if column.columnKey = 'PRI'>
@TableId(value = "${column.columnName}", type = <#if auto>IdType.AUTO<#else>IdType.NONE</#if>) @TableId(value = "${column.columnName}", type = <#if auto>IdType.AUTO<#else>IdType.NONE</#if>)
</#if> </#if>
<#if column.remark != ''> <#if column.remark?has_content>
/** ${column.remark} */ /** ${column.remark} */
<#else> <#else>
/** ${column.changeColumnName} */ /** ${column.changeColumnName} */

View File

@@ -8,8 +8,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.nl.modules.common.exception.BadRequestException; import org.nl.config.language.LangProcess;
import org.nl.common.domain.query.PageQuery; import org.nl.common.domain.query.PageQuery;
import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.SecurityUtils; import org.nl.common.utils.SecurityUtils;
import ${package}.service.I${className}Service; import ${package}.service.I${className}Service;
import ${package}.service.dao.mapper.${className}Mapper; import ${package}.service.dao.mapper.${className}Mapper;
@@ -59,7 +60,7 @@ public class ${className}ServiceImpl extends ServiceImpl<${className}Mapper, ${c
@Override @Override
public void update(${className} entity) { public void update(${className} entity) {
${className} dto = ${changeClassName}Mapper.selectById(entity.get${pkChangeColName ? cap_first }()); ${className} dto = ${changeClassName}Mapper.selectById(entity.get${pkChangeColName ? cap_first }());
if (dto == null) throw new BadRequestException("被删除或无权限,操作失败!"); if (dto == null) throw new BadRequestException(LangProcess.msg("error_SystemAuthError"));
String currentUserId = SecurityUtils.getCurrentUserId(); String currentUserId = SecurityUtils.getCurrentUserId();
String nickName = SecurityUtils.getCurrentNickName(); String nickName = SecurityUtils.getCurrentNickName();

View File

@@ -9,8 +9,8 @@
<#if queryColumns??> <#if queryColumns??>
<#list queryColumns as column> <#list queryColumns as column>
<#if column.queryType != 'BetWeen'> <#if column.queryType != 'BetWeen'>
<label class="el-form-item-label"><#if column.remark != ''>${column.remark}<#else>${column.changeColumnName}</#if></label> <label class="el-form-item-label"><#if column.remark?has_content>${column.remark}<#else>${column.changeColumnName}</#if></label>
<el-input v-model="query.${column.changeColumnName}" clearable placeholder="<#if column.remark != ''>${column.remark}<#else>${column.changeColumnName}</#if>" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" /> <el-input v-model="query.${column.changeColumnName}" clearable placeholder="<#if column.remark?has_content>${column.remark}<#else>${column.changeColumnName}</#if>" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
</#if> </#if>
</#list> </#list>
</#if> </#if>
@@ -37,7 +37,7 @@
<#if columns??> <#if columns??>
<#list columns as column> <#list columns as column>
<#if column.formShow> <#if column.formShow>
<el-form-item label="<#if column.remark != ''>${column.remark}<#else>${column.changeColumnName}</#if>"<#if column.istNotNull> prop="${column.changeColumnName}"</#if>> <el-form-item label="<#if column.remark?has_content>${column.remark}<#else>${column.changeColumnName}</#if>"<#if column.istNotNull> prop="${column.changeColumnName}"</#if>>
<#if column.formType = 'Input'> <#if column.formType = 'Input'>
<el-input v-model="form.${column.changeColumnName}" style="width: 370px;" /> <el-input v-model="form.${column.changeColumnName}" style="width: 370px;" />
<#elseif column.formType = 'Textarea'> <#elseif column.formType = 'Textarea'>
@@ -80,15 +80,15 @@
<#list columns as column> <#list columns as column>
<#if column.columnShow> <#if column.columnShow>
<#if (column.dictName)?? && (column.dictName)!=""> <#if (column.dictName)?? && (column.dictName)!="">
<el-table-column prop="${column.changeColumnName}" label="<#if column.remark != ''>${column.remark}<#else>${column.changeColumnName}</#if>" :min-width="flexWidth('${column.changeColumnName}',crud.data,'<#if column.remark != ''>${column.remark}<#else>${column.changeColumnName}</#if>')"> <el-table-column prop="${column.changeColumnName}" label="<#if column.remark?has_content>${column.remark}<#else>${column.changeColumnName}</#if>" :min-width="flexWidth('${column.changeColumnName}',crud.data,'<#if column.remark?has_content>${column.remark}<#else>${column.changeColumnName}</#if>')">
<template slot-scope="scope"> <template slot-scope="scope">
{{ dict.label.${column.dictName}[scope.row.${column.changeColumnName}] }} {{ dict.label.${column.dictName}[scope.row.${column.changeColumnName}] }}
</template> </template>
</el-table-column> </el-table-column>
<#elseif column.columnType != 'Timestamp'> <#elseif column.columnType != 'Date'>
<el-table-column prop="${column.changeColumnName}" label="<#if column.remark != ''>${column.remark}<#else>${column.changeColumnName}</#if>" :min-width="flexWidth('${column.changeColumnName}',crud.data,'<#if column.remark != ''>${column.remark}<#else>${column.changeColumnName}</#if>')"/> <el-table-column prop="${column.changeColumnName}" label="<#if column.remark?has_content>${column.remark}<#else>${column.changeColumnName}</#if>" :min-width="flexWidth('${column.changeColumnName}',crud.data,'<#if column.remark?has_content>${column.remark}<#else>${column.changeColumnName}</#if>')"/>
<#else> <#else>
<el-table-column prop="${column.changeColumnName}" label="<#if column.remark != ''>${column.remark}<#else>${column.changeColumnName}</#if>" :min-width="flexWidth('${column.changeColumnName}',crud.data,'<#if column.remark != ''>${column.remark}<#else>${column.changeColumnName}</#if>')"> <el-table-column prop="${column.changeColumnName}" label="<#if column.remark?has_content>${column.remark}<#else>${column.changeColumnName}</#if>" :min-width="flexWidth('${column.changeColumnName}',crud.data,'<#if column.remark?has_content>${column.remark}<#else>${column.changeColumnName}</#if>')">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.${column.changeColumnName}) }}</span> <span>{{ parseTime(scope.row.${column.changeColumnName}) }}</span>
</template> </template>
@@ -152,7 +152,7 @@ export default {
<#list isNotNullColumns as column> <#list isNotNullColumns as column>
<#if column.istNotNull> <#if column.istNotNull>
${column.changeColumnName}: [ ${column.changeColumnName}: [
{ required: true, message: '<#if column.remark != ''>${column.remark}</#if>不能为空', trigger: 'blur' } { required: true, message: '<#if column.remark?has_content>${column.remark}</#if>不能为空', trigger: 'blur' }
]<#if column_has_next>,</#if> ]<#if column_has_next>,</#if>
</#if> </#if>
</#list> </#list>
@@ -162,7 +162,7 @@ export default {
<#if queryColumns??> <#if queryColumns??>
<#list queryColumns as column> <#list queryColumns as column>
<#if column.queryType != 'BetWeen'> <#if column.queryType != 'BetWeen'>
{ key: '${column.changeColumnName}', display_name: '<#if column.remark != ''>${column.remark}<#else>${column.changeColumnName}</#if>' }<#if column_has_next>,</#if> { key: '${column.changeColumnName}', display_name: '<#if column.remark?has_content>${column.remark}<#else>${column.changeColumnName}</#if>' }<#if column_has_next>,</#if>
</#if> </#if>
</#list> </#list>
</#if> </#if>