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 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 packageMap = (Map) 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 fields = data.getColumns().stream() .filter(item -> !removeFields.contains(item.getColumnName())) .collect(Collectors.toList()); // 设置vuex中表单的字段 vueTemplate.setVuexFormFields(fields); List 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; } }