优化代码生成,添加字典预览与文件预览,使其适配当前版本

This commit is contained in:
zhoumingfa
2025-03-31 23:29:58 +08:00
parent 5136148ce1
commit 4062d5a4bb
14 changed files with 120 additions and 62 deletions

View File

@@ -1,7 +1,6 @@
package net.lab1024.sa.base.module.support.codegenerator.service.variable;
import com.google.common.base.CaseFormat;
import net.lab1024.sa.base.common.util.SmartStringUtil;
import net.lab1024.sa.base.module.support.codegenerator.constant.CodeFrontComponentEnum;
import net.lab1024.sa.base.module.support.codegenerator.domain.form.CodeGeneratorConfigForm;
import net.lab1024.sa.base.module.support.codegenerator.domain.model.CodeField;
@@ -89,7 +88,7 @@ public abstract class CodeGenerateBaseVariableService {
}
CodeInsertAndUpdateField field = first.get();
return SmartStringUtil.equals(field.getFrontComponent(), CodeFrontComponentEnum.FILE_UPLOAD.getValue());
return CodeFrontComponentEnum.FILE_UPLOAD.equalsValue(field.getFrontComponent());
}
/**

View File

@@ -84,14 +84,6 @@ public class VOVariableService extends CodeGenerateBaseVariableService {
packageList.add("import io.swagger.v3.oas.annotations.media.Schema;");
}
//字典
if (isDict(field.getColumnName(), form)) {
finalFieldMap.put("dict", "\n @JsonSerialize(using = DictValueVoSerializer.class)");
packageList.add("import com.fasterxml.jackson.databind.annotation.JsonSerialize;");
packageList.add("import net.lab1024.sa.base.common.json.serializer.DictValueVoSerializer;");
}
//文件上传
if (isFile(field.getColumnName(), form)) {
finalFieldMap.put("file", "\n @JsonSerialize(using = FileKeyVoSerializer.class)");

View File

@@ -2,9 +2,12 @@ package net.lab1024.sa.base.module.support.codegenerator.service.variable.front;
import cn.hutool.core.bean.BeanUtil;
import com.google.common.base.CaseFormat;
import net.lab1024.sa.base.common.util.SmartStringUtil;
import net.lab1024.sa.base.module.support.codegenerator.constant.CodeFrontComponentEnum;
import net.lab1024.sa.base.module.support.codegenerator.constant.CodeQueryFieldQueryTypeEnum;
import net.lab1024.sa.base.module.support.codegenerator.domain.form.CodeGeneratorConfigForm;
import net.lab1024.sa.base.module.support.codegenerator.domain.model.CodeField;
import net.lab1024.sa.base.module.support.codegenerator.domain.model.CodeInsertAndUpdateField;
import net.lab1024.sa.base.module.support.codegenerator.domain.model.CodeQueryField;
import net.lab1024.sa.base.module.support.codegenerator.service.variable.CodeGenerateBaseVariableService;
@@ -29,7 +32,7 @@ public class ListVariableService extends CodeGenerateBaseVariableService {
public Map<String, Object> getInjectVariablesMap(CodeGeneratorConfigForm form) {
Map<String, Object> variablesMap = new HashMap<>();
List<Map<String, Object>> variableList = new ArrayList<>();
List<Map<String, Object>> queryVariable = new ArrayList<>();
List<CodeQueryField> queryFields = form.getQueryFields();
HashSet<String> frontImportSet = new HashSet<>();
frontImportSet.add("import " + CaseFormat.LOWER_CAMEL.to(CaseFormat.UPPER_CAMEL, form.getBasic().getModuleName()) + "Form from './" + CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_HYPHEN, form.getBasic().getModuleName()) + "-form.vue';");
@@ -52,11 +55,34 @@ public class ListVariableService extends CodeGenerateBaseVariableService {
if(CodeQueryFieldQueryTypeEnum.DATE_RANGE.equalsValue(queryField.getQueryTypeEnum())){
frontImportSet.add("import { defaultTimeRanges } from '/@/lib/default-time-ranges';");
}
variableList.add(objectMap);
queryVariable.add(objectMap);
}
variablesMap.put("queryFields",variableList);
variablesMap.put("frontImportList",new ArrayList<>(frontImportSet));
List<Map<String, Object>> listVariable = new ArrayList<>();
for (CodeInsertAndUpdateField field : form.getInsertAndUpdate().getFieldList()) {
Map<String, Object> objectMap = BeanUtil.beanToMap(field);
CodeField codeField = getCodeFieldByColumnName(field.getColumnName(), form);
if (codeField == null) {
continue;
}
objectMap.put("fieldName", codeField.getFieldName());
objectMap.put("dict", codeField.getDict());
if(SmartStringUtil.isNotBlank(codeField.getDict())) {
frontImportSet.add("import DictPreview from '/@/components/dict-preview/index.vue';");
frontImportSet.add("import { useDict } from '/@/utils/dict';");
}
if (CodeFrontComponentEnum.FILE_UPLOAD.equalsValue(field.getFrontComponent())) {
frontImportSet.add("import FilePreview from '/@/components/support/file-preview/index.vue';");
}
listVariable.add(objectMap);
}
variablesMap.put("queryFields", queryVariable);
variablesMap.put("listFields", listVariable);
variablesMap.put("frontImportList", new ArrayList<>(frontImportSet));
return variablesMap;
}
}