package com.monkeylessey.gen.handler;
|
|
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
|
import com.monkeylessey.gen.domain.GenerateData;
|
import com.monkeylessey.gen.template.VueTemplate;
|
import com.monkeylessey.gen.utils.WordsUtils;
|
import com.monkeylessey.sys.domain.vo.TableColumnVO;
|
|
import java.util.Arrays;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.Objects;
|
import java.util.stream.Collectors;
|
|
/**
|
* @author xp
|
* @data 2022/9/24
|
*/
|
public class VueHandler {
|
|
private static final List<String> removeFields = Arrays.asList("gmt_create", "gmt_update", "deleted", "update_by", "create_by");
|
|
public Map handler(Map objectMap, GenerateData data) {
|
// 获取table
|
TableInfo tableInfo = (TableInfo) objectMap.get("table");
|
// 获取包信息
|
Map<String, String> packageMap = (Map<String, String>) objectMap.get("package");
|
|
// 实体类名称
|
String entityName = (String) objectMap.get("entity");
|
// 设置VUE相关数据
|
VueTemplate vueTemplate = new VueTemplate();
|
vueTemplate.setName(entityName);
|
// 设置view文件的名称
|
vueTemplate.setViewName(entityName + "View");
|
// 设置首字母小写的名字
|
vueTemplate.setLowerName(WordsUtils.firstWordToLower(entityName));
|
// 设置view路径
|
vueTemplate.setViewFilePath(packageMap.get("Parent") + packageMap.get("ModuleName") + ".vue");
|
|
List<TableColumnVO> fields = data.getColumns().stream()
|
.filter(item -> !removeFields.contains(item.getColumnName()))
|
.collect(Collectors.toList());
|
|
// 设置vuex中表单的字段
|
vueTemplate.setVuexFormFields(fields);
|
List<TableColumnVO> useSelectFields = fields.stream()
|
.filter(item -> "select".equals(item.getInputWay()) && Objects.nonNull(item.getDataSourceId()))
|
.collect(Collectors.toList());
|
vueTemplate.setUseSelectFields(useSelectFields);
|
|
objectMap.put("vueInfo", vueTemplate);
|
return objectMap;
|
}
|
|
|
}
|