feat: 新增代码字段拖动排序
新增代码字段拖动排序功能 优化代码生成前端vue页面的部分内容
This commit is contained in:
@@ -48,6 +48,11 @@ public class GenFieldConfig extends BaseEntity {
|
||||
*/
|
||||
private String fieldName;
|
||||
|
||||
/**
|
||||
* 字段排序
|
||||
*/
|
||||
private Integer fieldSort;
|
||||
|
||||
/**
|
||||
* 字段类型
|
||||
*/
|
||||
|
||||
@@ -57,6 +57,9 @@ public class GenConfigForm {
|
||||
@Schema(description = "字段名")
|
||||
private String fieldName;
|
||||
|
||||
@Schema(description = "字段排序")
|
||||
private Integer fieldSort;
|
||||
|
||||
@Schema(description = "字段类型")
|
||||
private String fieldType;
|
||||
|
||||
|
||||
@@ -35,6 +35,7 @@ import org.springframework.stereotype.Service;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 数据库服务实现类
|
||||
@@ -112,9 +113,11 @@ public class GeneratorServiceImpl implements GeneratorService {
|
||||
if (CollectionUtil.isNotEmpty(tableColumns)) {
|
||||
// 查询字段生成配置
|
||||
List<GenFieldConfig> fieldConfigList = genFieldConfigService.list(
|
||||
new LambdaQueryWrapper<>(GenFieldConfig.class)
|
||||
new LambdaQueryWrapper<GenFieldConfig>()
|
||||
.eq(GenFieldConfig::getConfigId, genConfig.getId())
|
||||
.orderByAsc(GenFieldConfig::getFieldSort)
|
||||
);
|
||||
Integer maxSort = fieldConfigList.stream().map(GenFieldConfig::getFieldSort).max(Integer::compareTo).orElseGet(() -> 0);
|
||||
for (ColumnMetaData tableColumn : tableColumns) {
|
||||
// 根据列名获取字段生成配置
|
||||
String columnName = tableColumn.getColumnName();
|
||||
@@ -122,7 +125,9 @@ public class GeneratorServiceImpl implements GeneratorService {
|
||||
.filter(item -> StrUtil.equals(item.getColumnName(), columnName))
|
||||
.findFirst()
|
||||
.orElseGet(() -> createDefaultFieldConfig(tableColumn));
|
||||
|
||||
if (genFieldConfig.getFieldSort() == null){
|
||||
genFieldConfig.setFieldSort(++maxSort);
|
||||
}
|
||||
// 根据列类型设置字段类型
|
||||
String fieldType = genFieldConfig.getFieldType();
|
||||
if (StrUtil.isBlank(fieldType)) {
|
||||
@@ -132,8 +137,9 @@ public class GeneratorServiceImpl implements GeneratorService {
|
||||
genFieldConfigs.add(genFieldConfig);
|
||||
}
|
||||
}
|
||||
GenConfigForm configFormData = genConfigConverter.toGenConfigForm(genConfig, genFieldConfigs);
|
||||
return configFormData;
|
||||
//对genFieldConfigs按照fieldSort排序
|
||||
genFieldConfigs = genFieldConfigs.stream().sorted(Comparator.comparing(GenFieldConfig::getFieldSort)).collect(Collectors.toList());
|
||||
return genConfigConverter.toGenConfigForm(genConfig, genFieldConfigs);
|
||||
}
|
||||
|
||||
|
||||
@@ -218,6 +224,8 @@ public class GeneratorServiceImpl implements GeneratorService {
|
||||
|
||||
List<GenFieldConfig> fieldConfigs = genFieldConfigService.list(new LambdaQueryWrapper<GenFieldConfig>()
|
||||
.eq(GenFieldConfig::getConfigId, genConfig.getId())
|
||||
.orderByAsc(GenFieldConfig::getFieldSort)
|
||||
|
||||
);
|
||||
Assert.isTrue(CollectionUtil.isNotEmpty(fieldConfigs), "未找到字段生成配置");
|
||||
|
||||
|
||||
@@ -1,13 +1,11 @@
|
||||
package com.youlai.system.service.impl;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.youlai.system.common.constant.RedisKeyConstants;
|
||||
import com.youlai.system.common.constant.SystemConstants;
|
||||
import com.youlai.system.converter.SysConfigConverter;
|
||||
import com.youlai.system.model.form.ConfigForm;
|
||||
import com.youlai.system.model.query.ConfigPageQuery;
|
||||
@@ -53,10 +51,10 @@ public class SysConfigServiceImpl extends ServiceImpl<SysConfigMapper, SysConfig
|
||||
Page<SysConfig> page = new Page<>(configPageQuery.getPageNum(), configPageQuery.getPageSize());
|
||||
String keywords = configPageQuery.getKeywords();
|
||||
LambdaQueryWrapper<SysConfig> query = new LambdaQueryWrapper<SysConfig>()
|
||||
.and(StrUtil.isNotBlank(keywords),
|
||||
q -> q.like(StrUtil.isNotBlank(keywords), SysConfig::getConfigKey, keywords)
|
||||
.and(StringUtils.isNotBlank(keywords),
|
||||
q -> q.like(SysConfig::getConfigKey, keywords)
|
||||
.or()
|
||||
.like(StrUtil.isNotBlank(keywords), SysConfig::getConfigName, keywords)
|
||||
.like(SysConfig::getConfigName, keywords)
|
||||
);
|
||||
Page<SysConfig> pageList = this.page(page, query);
|
||||
return sysConfigConverter.convertToPageVo(pageList);
|
||||
@@ -104,7 +102,7 @@ public class SysConfigServiceImpl extends ServiceImpl<SysConfigMapper, SysConfig
|
||||
"配置键已存在");
|
||||
SysConfig sysConfig = sysConfigConverter.toEntity(configForm);
|
||||
sysConfig.setUpdateBy(SecurityUtils.getUserId());
|
||||
return this.update(sysConfig, new LambdaQueryWrapper<SysConfig>().eq(SysConfig::getId,id));
|
||||
return this.updateById(sysConfig);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
#if($fieldConfig.dictType != "")
|
||||
<dictionary v-model="formData.$fieldConfig.fieldName" code="$fieldConfig.dictType" />
|
||||
#else
|
||||
<el-select v-model="formData.$fieldConfig.fieldName" placeholder="'请选择$fieldConfig.fieldComment">
|
||||
<el-select v-model="formData.$fieldConfig.fieldName" placeholder="请选择$fieldConfig.fieldComment">
|
||||
<el-option :key="1" :value="1" label="下拉项1"/>
|
||||
<el-option :key="2" :value="2" label="下拉项2"/>
|
||||
<el-option :key="3" :value="3" label="下拉项3"/>
|
||||
@@ -26,15 +26,15 @@
|
||||
<el-checkbox v-for="option in $fieldConfig.options" :key="option.value" :label="option.value">{{ option.label }}</el-checkbox>
|
||||
</el-checkbox-group>
|
||||
#elseif($fieldConfig.formType == "INPUT_NUMBER")
|
||||
<el-input-number v-model="queryParams.$fieldConfig.fieldName" :placeholder="$fieldConfig.fieldComment" />
|
||||
<el-input-number v-model="queryParams.$fieldConfig.fieldName" placeholder="$fieldConfig.fieldComment" />
|
||||
#elseif($fieldConfig.formType == "SWITCH")
|
||||
<el-switch v-model="queryParams.$fieldConfig.fieldName" />
|
||||
#elseif($fieldConfig.formType == "TEXT_AREA")
|
||||
<el-input type="textarea" v-model="queryParams.$fieldConfig.fieldName" :placeholder="$fieldConfig.fieldComment" />
|
||||
<el-input type="textarea" v-model="queryParams.$fieldConfig.fieldName" placeholder="$fieldConfig.fieldComment" />
|
||||
#elseif($fieldConfig.formType == "DATE_TIME")
|
||||
<el-date-picker v-model="queryParams.$fieldConfig.fieldName" type="datetime" :placeholder="$fieldConfig.fieldComment" />
|
||||
<el-date-picker v-model="queryParams.$fieldConfig.fieldName" type="datetime" placeholder="$fieldConfig.fieldComment" />
|
||||
#elseif($fieldConfig.formType == "DATE")
|
||||
<el-date-picker v-model="queryParams.$fieldConfig.fieldName" type="date" :placeholder="$fieldConfig.fieldComment" />
|
||||
<el-date-picker v-model="queryParams.$fieldConfig.fieldName" type="date" placeholder="$fieldConfig.fieldComment" />
|
||||
#end
|
||||
</el-form-item>
|
||||
#end
|
||||
|
||||
Reference in New Issue
Block a user