refactor: 移除多数据库支持并简化配置

This commit is contained in:
Ray.Hao
2026-04-22 13:36:46 +08:00
parent 9993302d5c
commit 63c34a4218
16 changed files with 96 additions and 120 deletions

View File

@@ -7,15 +7,10 @@ import com.baomidou.mybatisplus.extension.plugins.inner.DataPermissionIntercepto
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import com.youlai.boot.framework.mybatis.handler.MyMetaObjectHandler;
import com.youlai.boot.framework.mybatis.interceptor.MyDataPermissionHandler;
import org.apache.ibatis.mapping.DatabaseIdProvider;
import org.apache.ibatis.mapping.VendorDatabaseIdProvider;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import java.util.Properties;
/**
* mybatis-plus 配置类
*
@@ -26,9 +21,6 @@ import java.util.Properties;
@EnableTransactionManagement
public class MybatisConfig {
@Value("${app.db-type:mysql}")
private String dbType;
/**
* 分页插件和数据权限插件
*/
@@ -39,13 +31,8 @@ public class MybatisConfig {
// 数据权限
interceptor.addInnerInterceptor(new DataPermissionInterceptor(new MyDataPermissionHandler()));
// 分页插件,根据配置动态选择数据库类型
DbType mpDbType = DbType.MYSQL;
String type = dbType == null ? "mysql" : dbType.toLowerCase();
if ("postgres".equals(type) || "postgresql".equals(type)) {
mpDbType = DbType.POSTGRE_SQL;
}
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(mpDbType));
// 分页插件
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
@@ -60,16 +47,4 @@ public class MybatisConfig {
return globalConfig;
}
/**
* 数据库类型自动识别
*/
@Bean
public DatabaseIdProvider databaseIdProvider() {
DatabaseIdProvider databaseIdProvider = new VendorDatabaseIdProvider();
Properties properties = new Properties();
properties.setProperty("MySQL", "mysql");
databaseIdProvider.setProperties(properties);
return databaseIdProvider;
}
}

View File

@@ -5,8 +5,8 @@
<!--suppress ALL -->
<mapper namespace="com.youlai.boot.codegen.mapper.DatabaseMapper">
<!-- 查询数据库表分页 mysql版本-->
<select id="getTablePage" resultType="com.youlai.boot.codegen.model.vo.TablePageVO" databaseId="mysql">
<!-- 查询数据库表分页 -->
<select id="getTablePage" resultType="com.youlai.boot.codegen.model.vo.TablePageVO">
SELECT
t1.TABLE_NAME ,
t1.TABLE_COMMENT ,
@@ -34,8 +34,8 @@
CREATE_TIME DESC
</select>
<!-- 查询数据库表元数据 mysql版本-->
<select id="getTableMetadata" resultType="com.youlai.boot.codegen.model.vo.TableMetaVO" databaseId="mysql">
<!-- 查询数据库表元数据 -->
<select id="getTableMetadata" resultType="com.youlai.boot.codegen.model.vo.TableMetaVO">
SELECT
TABLE_NAME ,
TABLE_COMMENT ,
@@ -49,8 +49,8 @@
AND TABLE_NAME = #{tableName}
</select>
<!-- 获取数据库表字段元数据 mysql版本-->
<select id="getTableColumns" resultType="com.youlai.boot.codegen.model.vo.ColumnMetaVO" databaseId="mysql">
<!-- 获取数据库表字段元数据 -->
<select id="getTableColumns" resultType="com.youlai.boot.codegen.model.vo.ColumnMetaVO">
SELECT
COLUMN_NAME,
DATA_TYPE,

View File

@@ -5,8 +5,8 @@
<!--suppress ALL -->
<mapper namespace="com.youlai.boot.system.mapper.LogMapper">
<!-- 日志分页列表 mysql版本 -->
<select id="getLogPage" resultType="com.youlai.boot.system.model.vo.LogPageVO" databaseId="mysql">
<!-- 日志分页列表 -->
<select id="getLogPage" resultType="com.youlai.boot.system.model.vo.LogPageVO">
SELECT
t1.id,
t1.module,
@@ -81,8 +81,8 @@
DATE_FORMAT(create_time, '%Y-%m-%d')
</select>
<!-- 获取访问量(PV)统计数据 mysql版本-->
<select id="getPvStats" resultType="com.youlai.boot.system.model.vo.VisitOverviewVO" databaseId="mysql">
<!-- 获取访问量(PV)统计数据 -->
<select id="getPvStats" resultType="com.youlai.boot.system.model.vo.VisitOverviewVO">
SELECT
COUNT(CASE WHEN DATE(create_time) = CURDATE() THEN 1 END) AS todayPvCount,
COUNT(*) AS totalPvCount,
@@ -99,8 +99,8 @@
sys_log
</select>
<!-- 获取IP统计数据 mysql版本-->
<select id="getUvStats" resultType="com.youlai.boot.system.model.vo.VisitOverviewVO" databaseId="mysql">
<!-- 获取IP统计数据 -->
<select id="getUvStats" resultType="com.youlai.boot.system.model.vo.VisitOverviewVO">
SELECT
COUNT(DISTINCT CASE WHEN DATE(create_time) = CURDATE() THEN ip END) AS todayUvCount,
COUNT(DISTINCT ip) AS totalUvCount,

View File

@@ -5,8 +5,8 @@
<!--suppress ALL -->
<mapper namespace="com.youlai.boot.system.mapper.UserMapper">
<!-- 用户分页列表 mysql版本-->
<select id="getUserPage" resultType="com.youlai.boot.system.model.vo.UserPageVO" databaseId="mysql">
<!-- 用户分页列表 -->
<select id="getUserPage" resultType="com.youlai.boot.system.model.vo.UserPageVO">
SELECT
u.id,
u.username,
@@ -203,8 +203,8 @@
GROUP BY u.id
</select>
<!-- 根据用户ID获取用户详情 mysql版本-->
<select id="getUserProfile" resultType="com.youlai.boot.system.model.vo.UserProfileVO" databaseId="mysql">
<!-- 根据用户ID获取用户详情 -->
<select id="getUserProfile" resultType="com.youlai.boot.system.model.vo.UserProfileVO">
SELECT
u.id,
u.username,

View File

@@ -6,7 +6,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import ${packageName}.${moduleName}.model.form.${entityName}Form;
import ${packageName}.${moduleName}.model.query.${entityName}Query;
import ${packageName}.${moduleName}.model.vo.${entityName}Vo;
import ${packageName}.${moduleName}.model.vo.${entityName}VO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import ${packageName}.common.result.PageResult;
import ${packageName}.common.result.Result;
@@ -35,8 +35,8 @@ public class ${entityName}Controller {
@Operation(summary = "$!{businessName}分页列表")
@GetMapping
@PreAuthorize("@ss.hasPerm('${moduleName}:${entityKebab}:list')")
public PageResult<${entityName}Vo> get${entityName}Page(${entityName}Query queryParams ) {
IPage<${entityName}Vo> result = ${entityLowerCamel}Service.get${entityName}Page(queryParams);
public PageResult<${entityName}VO> get${entityName}Page(${entityName}Query queryParams ) {
IPage<${entityName}VO> result = ${entityLowerCamel}Service.get${entityName}Page(queryParams);
return PageResult.success(result);
}

View File

@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import ${packageName}.${moduleName}.model.entity.${entityName};
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import ${packageName}.${moduleName}.model.query.${entityName}Query;
import ${packageName}.${moduleName}.model.vo.${entityName}Vo;
import ${packageName}.${moduleName}.model.vo.${entityName}VO;
import org.apache.ibatis.annotations.Mapper;
/**
@@ -21,8 +21,8 @@ public interface ${entityName}Mapper extends BaseMapper<${entityName}> {
*
* @param page 分页对象
* @param queryParams 查询参数
* @return {@link Page<${entityName}Vo>} $!{businessName}分页列表
* @return {@link Page<${entityName}VO>} $!{businessName}分页列表
*/
Page<${entityName}Vo> get${entityName}Page(Page<${entityName}Vo> page, ${entityName}Query queryParams);
Page<${entityName}VO> get${entityName}Page(Page<${entityName}VO> page, ${entityName}Query queryParams);
}

View File

@@ -3,7 +3,7 @@
<mapper namespace="${packageName}.${moduleName}.mapper.${entityName}Mapper">
<!-- 获取${businessName}分页列表 -->
<select id="get${entityName}Page" resultType="${packageName}.${moduleName}.model.vo.${entityName}Vo">
<select id="get${entityName}Page" resultType="${packageName}.${moduleName}.model.vo.${entityName}VO">
SELECT
#if($fieldConfigs)
#set ($fields = [])
@@ -27,7 +27,7 @@
#else
<if test="queryParams.${fieldConfig.fieldName} != null">
#end
#set ($queryType = ${fieldConfig.queryType})
#set ($queryType = ${fieldConfig.queryType}.name())
#if($queryType == "EQ")
AND ${fieldConfig.columnName} = #{queryParams.${fieldConfig.fieldName}}
#elseif($queryType == "LIKE")
@@ -37,7 +37,7 @@
AND ${fieldConfig.columnName} IN <foreach collection="queryParams.${fieldConfig.fieldName}" item="item" open="(" close=")" separator=",">#{item}</foreach>
</if>
#elseif($queryType == "BETWEEN")
#if($fieldConfig.formType == "DATE" || $fieldConfig.formType == "DATE_TIME")
#if($fieldConfig.formType.name() == "DATE" || $fieldConfig.formType.name() == "DATE_TIME")
<if test="queryParams.${fieldConfig.fieldName}[0] != null and queryParams.${fieldConfig.fieldName}[0] != ''">
<bind name="startDate" value="queryParams.${fieldConfig.fieldName}[0].length() == 10 ? queryParams.${fieldConfig.fieldName}[0] + ' 00:00:00' : queryParams.${fieldConfig.fieldName}[0]"/>
AND ${fieldConfig.columnName} &gt;= #{startDate}

View File

@@ -4,9 +4,9 @@ import ${packageName}.common.base.BaseQuery;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
#if(${hasLocalDateTime})
import java.time.LocalDateTime;
import java.util.List;
#end
#if(${hasBigDecimal})
import java.math.BigDecimal;
@@ -29,8 +29,8 @@ public class ${entityName}Query extends BaseQuery {
#if("$!fieldConfig.fieldComment" != "")
@Schema(description = "${fieldConfig.fieldComment}")
#end
#if($fieldConfig.formType == "DATE" || $fieldConfig.formType == "DATE_TIME")
#if($fieldConfig.queryType == "BETWEEN")
#if($fieldConfig.formType.name() == "DATE" || $fieldConfig.formType.name() == "DATE_TIME")
#if($fieldConfig.queryType.name() == "BETWEEN")
private List<String> ${fieldConfig.fieldName};
#else
private ${fieldConfig.fieldType} ${fieldConfig.fieldName};

View File

@@ -3,7 +3,7 @@ package ${packageName}.${moduleName}.${subpackageName};
import ${packageName}.${moduleName}.model.entity.${entityName};
import ${packageName}.${moduleName}.model.form.${entityName}Form;
import ${packageName}.${moduleName}.model.query.${entityName}Query;
import ${packageName}.${moduleName}.model.vo.${entityName}Vo;
import ${packageName}.${moduleName}.model.vo.${entityName}VO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
@@ -18,9 +18,9 @@ public interface ${entityName}Service extends IService<${entityName}> {
/**
*$!{businessName}分页列表
*
* @return {@link IPage<${entityName}Vo>} $!{businessName}分页列表
* @return {@link IPage<${entityName}VO>} $!{businessName}分页列表
*/
IPage<${entityName}Vo> get${entityName}Page(${entityName}Query queryParams);
IPage<${entityName}VO> get${entityName}Page(${entityName}Query queryParams);
/**
* 获取${businessName}表单数据

View File

@@ -10,7 +10,7 @@ import ${packageName}.${moduleName}.service.${entityName}Service;
import ${packageName}.${moduleName}.model.entity.${entityName};
import ${packageName}.${moduleName}.model.form.${entityName}Form;
import ${packageName}.${moduleName}.model.query.${entityName}Query;
import ${packageName}.${moduleName}.model.vo.${entityName}Vo;
import ${packageName}.${moduleName}.model.vo.${entityName}VO;
import ${packageName}.${moduleName}.converter.${entityName}Converter;
import java.util.Arrays;
@@ -36,17 +36,17 @@ public class ${entityName}ServiceImpl extends ServiceImpl<${entityName}Mapper, $
* 获取${businessName}分页列表
*
* @param queryParams 查询参数
* @return {@link IPage<${entityName}Vo>} $!{businessName}分页列表
* @return {@link IPage<${entityName}VO>} $!{businessName}分页列表
*/
@Override
public IPage<${entityName}Vo> get${entityName}Page(${entityName}Query queryParams) {
Page<${entityName}Vo> pageResult = this.baseMapper.get${entityName}Page(
public IPage<${entityName}VO> get${entityName}Page(${entityName}Query queryParams) {
Page<${entityName}VO> pageResult = this.baseMapper.get${entityName}Page(
new Page<>(queryParams.getPageNum(), queryParams.getPageSize()),
queryParams
);
return pageResult;
}
/**
* 获取${businessName}表单数据
*
@@ -58,7 +58,7 @@ public class ${entityName}ServiceImpl extends ServiceImpl<${entityName}Mapper, $
${entityName} entity = this.getById(id);
return ${entityLowerCamel}Converter.toForm(entity);
}
/**
* 新增${businessName}
*
@@ -70,7 +70,7 @@ public class ${entityName}ServiceImpl extends ServiceImpl<${entityName}Mapper, $
${entityName} entity = ${entityLowerCamel}Converter.toEntity(formData);
return this.save(entity);
}
/**
* 更新${businessName}
*
@@ -81,9 +81,10 @@ public class ${entityName}ServiceImpl extends ServiceImpl<${entityName}Mapper, $
@Override
public boolean update${entityName}(Long id,${entityName}Form formData) {
${entityName} entity = ${entityLowerCamel}Converter.toEntity(formData);
entity.setId(id);
return this.updateById(entity);
}
/**
* 删除${businessName}
*

View File

@@ -1,4 +1,4 @@
package ${packageName}.${moduleName}.model.vo;
package ${packageName}.${moduleName}.${subpackageName};
import java.io.Serial;
import java.io.Serializable;
@@ -21,7 +21,7 @@ import java.math.BigDecimal;
@Getter
@Setter
@Schema( description = "$!{businessName}视图对象")
public class ${entityName}Vo implements Serializable {
public class ${entityName}VO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;

View File

@@ -39,7 +39,7 @@
<!-- 新增 -->
<PageModal ref="addModalRef" :modal-config="addModalConfig" @submit-click="handleSubmitClick">
#foreach($fieldConfig in $fieldConfigs)
#if($fieldConfig.isShowInForm == 1 && $fieldConfig.formType != "HIDDEN" && $fieldConfig.dictType && $fieldConfig.dictType.trim() != "")
#if($fieldConfig.isShowInForm == 1 && $fieldConfig.formType.name() != "HIDDEN" && $fieldConfig.dictType && $fieldConfig.dictType.trim() != "")
<template #$fieldConfig.fieldName="scope">
<Dict v-model="scope.formData[scope.prop]" code="$fieldConfig.dictType" v-bind="scope.attrs" />
</template>
@@ -50,7 +50,7 @@
<!-- 编辑 -->
<PageModal ref="editModalRef" :modal-config="editModalConfig" @submit-click="handleSubmitClick">
#foreach($fieldConfig in $fieldConfigs)
#if($fieldConfig.isShowInForm == 1 && $fieldConfig.formType != "HIDDEN" && $fieldConfig.dictType && $fieldConfig.dictType.trim() != "")
#if($fieldConfig.isShowInForm == 1 && $fieldConfig.formType.name() != "HIDDEN" && $fieldConfig.dictType && $fieldConfig.dictType.trim() != "")
<template #$fieldConfig.fieldName="scope">
<Dict v-model="scope.formData[scope.prop]" code="$fieldConfig.dictType" v-bind="scope.attrs" />
</template>
@@ -208,7 +208,7 @@ const addModalConfig = reactive({
// 表单项配置
formItems: [
#foreach($fieldConfig in $fieldConfigs)
#if($fieldConfig.isShowInForm == 1 && $fieldConfig.formType != "HIDDEN")
#if($fieldConfig.isShowInForm == 1 && $fieldConfig.formType.name() != "HIDDEN")
#if($fieldConfig.dictType && $fieldConfig.dictType.trim() != "")
{
type: "custom",

View File

@@ -5,14 +5,14 @@
#foreach($fieldConfig in $fieldConfigs)
#if($fieldConfig.isShowInQuery == 1)
<el-form-item label="$fieldConfig.fieldComment" prop="$fieldConfig.fieldName">
#if($fieldConfig.formType == "INPUT")
#if($fieldConfig.formType.name() == "INPUT")
<el-input
v-model="queryParams.$fieldConfig.fieldName"
placeholder="$fieldConfig.fieldComment"
clearable
@keyup.enter="handleQuery()"
/>
#elseif($fieldConfig.formType == "SELECT")
#elseif($fieldConfig.formType.name() == "SELECT")
#if($fieldConfig.dictType && $fieldConfig.dictType.trim() != "")
<DictSelect v-model="queryParams.$fieldConfig.fieldName" code="$fieldConfig.dictType" />
#else
@@ -21,7 +21,7 @@
<el-option :key="2" :value="2" label="选项二"/>
</el-select>
#end
#elseif($fieldConfig.formType == "RADIO")
#elseif($fieldConfig.formType.name() == "RADIO")
#if($fieldConfig.dictType && $fieldConfig.dictType.trim() != "")
<DictSelect v-model="queryParams.$fieldConfig.fieldName" type="radio" code="$fieldConfig.dictType" />
#else
@@ -30,7 +30,7 @@
<el-radio :key="2" :value="2">选项二</el-radio>
</el-radio-group>
#end
#elseif($fieldConfig.formType == "CHECK_BOX")
#elseif($fieldConfig.formType.name() == "CHECK_BOX")
#if($fieldConfig.dictType && $fieldConfig.dictType.trim() != "")
<DictSelect v-model="queryParams.$fieldConfig.fieldName" type="checkbox" code="$fieldConfig.dictType" />
#else
@@ -39,26 +39,26 @@
<el-checkbox :key="2" :label="2">选项二</el-checkbox>
</el-checkbox-group>
#end
#elseif($fieldConfig.formType == "INPUT_NUMBER")
#elseif($fieldConfig.formType.name() == "INPUT_NUMBER")
<el-input-number
v-model="queryParams.$fieldConfig.fieldName"
placeholder="$fieldConfig.fieldComment"
/>
#elseif($fieldConfig.formType == "SWITCH")
#elseif($fieldConfig.formType.name() == "SWITCH")
<el-switch
v-model="queryParams.$fieldConfig.fieldName"
:active-value="1"
:inactive-value="0"
/>
#elseif($fieldConfig.formType == "TEXT_AREA")
#elseif($fieldConfig.formType.name() == "TEXT_AREA")
<el-input type="textarea"
v-model="queryParams.$fieldConfig.fieldName"
placeholder="$fieldConfig.fieldComment"
/>
#elseif($fieldConfig.formType == "DATE_TIME")
#elseif($fieldConfig.formType.name() == "DATE_TIME")
<el-date-picker
v-model="queryParams.$fieldConfig.fieldName"
#if($fieldConfig.queryType == "BETWEEN")
#if($fieldConfig.queryType.name() == "BETWEEN")
type="daterange"
range-separator="~"
start-placeholder="开始时间"
@@ -69,11 +69,11 @@
#end
value-format="YYYY-MM-DD HH:mm:ss"
/>
#elseif($fieldConfig.formType == "DATE")
#elseif($fieldConfig.formType.name() == "DATE")
<el-date-picker
class="!w-[240px]"
v-model="queryParams.$fieldConfig.fieldName"
#if($fieldConfig.queryType == "BETWEEN")
#if($fieldConfig.queryType.name() == "BETWEEN")
type="daterange"
range-separator="~"
start-placeholder="开始时间"
@@ -190,14 +190,14 @@
>
<el-form ref="dataFormRef" :model="formData" :rules="rules" label-width="100px">
#foreach($fieldConfig in $fieldConfigs)
#if($fieldConfig.isShowInForm == 1 && $fieldConfig.formType != "HIDDEN")
#if($fieldConfig.isShowInForm == 1 && $fieldConfig.formType.name() != "HIDDEN")
<el-form-item label="$fieldConfig.fieldComment" prop="$fieldConfig.fieldName">
#if($fieldConfig.formType == "INPUT")
#if($fieldConfig.formType.name() == "INPUT")
<el-input
v-model="formData.$fieldConfig.fieldName"
placeholder="$fieldConfig.fieldComment"
/>
#elseif($fieldConfig.formType == "SELECT")
#elseif($fieldConfig.formType.name() == "SELECT")
#if($fieldConfig.dictType && $fieldConfig.dictType.trim() != "")
<DictSelect v-model="formData.$fieldConfig.fieldName" code="$fieldConfig.dictType" />
#else
@@ -206,7 +206,7 @@
<el-option :value="1" label="选项二"/>
</el-select>
#end
#elseif($fieldConfig.formType == "RADIO")
#elseif($fieldConfig.formType.name() == "RADIO")
#if($fieldConfig.dictType && $fieldConfig.dictType.trim() != "")
<DictSelect v-model="formData.$fieldConfig.fieldName" type="radio" code="$fieldConfig.dictType" />
#else
@@ -215,7 +215,7 @@
<el-radio :value="1">选项二</el-radio>
</el-radio-group>
#end
#elseif($fieldConfig.formType == "CHECK_BOX")
#elseif($fieldConfig.formType.name() == "CHECK_BOX")
#if($fieldConfig.dictType && $fieldConfig.dictType.trim() != "")
<DictSelect v-model="formData.$fieldConfig.fieldName" type="checkbox" code="$fieldConfig.dictType" />
#else
@@ -224,30 +224,30 @@
<el-checkbox :value="1">选项二</el-checkbox>
</el-checkbox-group>
#end
#elseif($fieldConfig.formType == "INPUT_NUMBER")
#elseif($fieldConfig.formType.name() == "INPUT_NUMBER")
<el-input-number
v-model="formData.$fieldConfig.fieldName"
placeholder="$fieldConfig.fieldComment"
/>
#elseif($fieldConfig.formType == "SWITCH")
#elseif($fieldConfig.formType.name() == "SWITCH")
<el-switch
v-model="formData.$fieldConfig.fieldName"
:active-value="1"
:inactive-value="0"
/>
#elseif($fieldConfig.formType == "TEXT_AREA")
#elseif($fieldConfig.formType.name() == "TEXT_AREA")
<el-input type="textarea"
v-model="formData.$fieldConfig.fieldName"
placeholder="$fieldConfig.fieldComment"
/>
#elseif($fieldConfig.formType == "DATE_TIME")
#elseif($fieldConfig.formType.name() == "DATE_TIME")
<el-date-picker
v-model="formData.$fieldConfig.fieldName"
type="datetime"
placeholder="$fieldConfig.fieldComment"
value-format="YYYY-MM-DD HH:mm:ss"
/>
#elseif($fieldConfig.formType == "DATE")
#elseif($fieldConfig.formType.name() == "DATE")
<el-date-picker
class="!w-[240px]"
v-model="formData.$fieldConfig.fieldName"
@@ -258,7 +258,7 @@
#end
</el-form-item>
#elseif($fieldConfig.formType == "HIDDEN")
#elseif($fieldConfig.formType.name() == "HIDDEN")
<el-input type="hidden" v-model="formData.$fieldConfig.fieldName" />
#end
#end

View File

@@ -11,8 +11,8 @@ export interface ${entityName}QueryParams extends BaseQueryParams {
#if("$!fieldConfig.fieldComment" != "")
/** ${fieldConfig.fieldComment} */
#end
#if($fieldConfig.formType == "DATE" || $fieldConfig.formType == "DATE_TIME")
#if($fieldConfig.queryType == "BETWEEN")
#if($fieldConfig.formType.name() == "DATE" || $fieldConfig.formType.name() == "DATE_TIME")
#if($fieldConfig.queryType.name() == "BETWEEN")
${fieldConfig.fieldName}?: [string, string];
#else
${fieldConfig.fieldName}?: ${fieldConfig.tsType};

View File

@@ -39,7 +39,7 @@
<!-- 新增 -->
<PageModal ref="addModalRef" :modal-config="addModalConfig" @submit-click="handleSubmitClick">
#foreach($fieldConfig in $fieldConfigs)
#if($fieldConfig.isShowInForm == 1 && $fieldConfig.formType != "HIDDEN" && $fieldConfig.dictType && $fieldConfig.dictType.trim() != "")
#if($fieldConfig.isShowInForm == 1 && $fieldConfig.formType.name() != "HIDDEN" && $fieldConfig.dictType && $fieldConfig.dictType.trim() != "")
<template #$fieldConfig.fieldName="scope">
<DictSelect v-model="scope.formData[scope.prop]" code="$fieldConfig.dictType" v-bind="scope.attrs" />
</template>
@@ -50,7 +50,7 @@
<!-- 编辑 -->
<PageModal ref="editModalRef" :modal-config="editModalConfig" @submit-click="handleSubmitClick">
#foreach($fieldConfig in $fieldConfigs)
#if($fieldConfig.isShowInForm == 1 && $fieldConfig.formType != "HIDDEN" && $fieldConfig.dictType && $fieldConfig.dictType.trim() != "")
#if($fieldConfig.isShowInForm == 1 && $fieldConfig.formType.name() != "HIDDEN" && $fieldConfig.dictType && $fieldConfig.dictType.trim() != "")
<template #$fieldConfig.fieldName="scope">
<DictSelect v-model="scope.formData[scope.prop]" code="$fieldConfig.dictType" v-bind="scope.attrs" />
</template>
@@ -210,7 +210,7 @@ const addModalConfig: IModalConfig<${entityName}Form> = reactive({
// 表单项配置
formItems: [
#foreach($fieldConfig in $fieldConfigs)
#if($fieldConfig.isShowInForm == 1 && $fieldConfig.formType != "HIDDEN")
#if($fieldConfig.isShowInForm == 1 && $fieldConfig.formType.name() != "HIDDEN")
#if($fieldConfig.dictType && $fieldConfig.dictType.trim() != "")
{
type: "custom",

View File

@@ -5,14 +5,14 @@
#foreach($fieldConfig in $fieldConfigs)
#if($fieldConfig.isShowInQuery == 1)
<el-form-item label="$fieldConfig.fieldComment" prop="$fieldConfig.fieldName">
#if($fieldConfig.formType == "INPUT")
#if($fieldConfig.formType.name() == "INPUT")
<el-input
v-model="queryParams.$fieldConfig.fieldName"
placeholder="$fieldConfig.fieldComment"
clearable
@keyup.enter="handleQuery()"
/>
#elseif($fieldConfig.formType == "SELECT")
#elseif($fieldConfig.formType.name() == "SELECT")
#if($fieldConfig.dictType && $fieldConfig.dictType.trim() != "")
<DictSelect v-model="queryParams.$fieldConfig.fieldName" code="$fieldConfig.dictType" />
#else
@@ -21,7 +21,7 @@
<el-option :key="2" :value="2" label="选项二"/>
</el-select>
#end
#elseif($fieldConfig.formType == "RADIO")
#elseif($fieldConfig.formType.name() == "RADIO")
#if($fieldConfig.dictType && $fieldConfig.dictType.trim() != "")
<DictSelect v-model="queryParams.$fieldConfig.fieldName" type="radio" code="$fieldConfig.dictType" />
#else
@@ -30,7 +30,7 @@
<el-radio :key="2" :value="2">选项二</el-radio>
</el-radio-group>
#end
#elseif($fieldConfig.formType == "CHECK_BOX")
#elseif($fieldConfig.formType.name() == "CHECK_BOX")
#if($fieldConfig.dictType && $fieldConfig.dictType.trim() != "")
<DictSelect v-model="queryParams.$fieldConfig.fieldName" type="checkbox" code="$fieldConfig.dictType" />
#else
@@ -39,26 +39,26 @@
<el-checkbox :key="2" :label="2">选项二</el-checkbox>
</el-checkbox-group>
#end
#elseif($fieldConfig.formType == "INPUT_NUMBER")
#elseif($fieldConfig.formType.name() == "INPUT_NUMBER")
<el-input-number
v-model="queryParams.$fieldConfig.fieldName"
placeholder="$fieldConfig.fieldComment"
/>
#elseif($fieldConfig.formType == "SWITCH")
#elseif($fieldConfig.formType.name() == "SWITCH")
<el-switch
v-model="queryParams.$fieldConfig.fieldName"
:active-value="1"
:inactive-value="0"
/>
#elseif($fieldConfig.formType == "TEXT_AREA")
#elseif($fieldConfig.formType.name() == "TEXT_AREA")
<el-input type="textarea"
v-model="queryParams.$fieldConfig.fieldName"
placeholder="$fieldConfig.fieldComment"
/>
#elseif($fieldConfig.formType == "DATE_TIME")
#elseif($fieldConfig.formType.name() == "DATE_TIME")
<el-date-picker
v-model="queryParams.$fieldConfig.fieldName"
#if($fieldConfig.queryType == "BETWEEN")
#if($fieldConfig.queryType.name() == "BETWEEN")
type="daterange"
range-separator="~"
start-placeholder="开始时间"
@@ -69,11 +69,11 @@
#end
value-format="YYYY-MM-DD HH:mm:ss"
/>
#elseif($fieldConfig.formType == "DATE")
#elseif($fieldConfig.formType.name() == "DATE")
<el-date-picker
class="!w-[240px]"
v-model="queryParams.$fieldConfig.fieldName"
#if($fieldConfig.queryType == "BETWEEN")
#if($fieldConfig.queryType.name() == "BETWEEN")
type="daterange"
range-separator="~"
start-placeholder="开始时间"
@@ -190,14 +190,14 @@
>
<el-form ref="dataFormRef" :model="formData" :rules="rules" label-width="100px">
#foreach($fieldConfig in $fieldConfigs)
#if($fieldConfig.isShowInForm == 1 && $fieldConfig.formType != "HIDDEN")
#if($fieldConfig.isShowInForm == 1 && $fieldConfig.formType.name() != "HIDDEN")
<el-form-item label="$fieldConfig.fieldComment" prop="$fieldConfig.fieldName">
#if($fieldConfig.formType == "INPUT")
#if($fieldConfig.formType.name() == "INPUT")
<el-input
v-model="formData.$fieldConfig.fieldName"
placeholder="$fieldConfig.fieldComment"
/>
#elseif($fieldConfig.formType == "SELECT")
#elseif($fieldConfig.formType.name() == "SELECT")
#if($fieldConfig.dictType && $fieldConfig.dictType.trim() != "")
<DictSelect v-model="formData.$fieldConfig.fieldName" code="$fieldConfig.dictType" />
#else
@@ -206,7 +206,7 @@
<el-option :value="1" label="选项二"/>
</el-select>
#end
#elseif($fieldConfig.formType == "RADIO")
#elseif($fieldConfig.formType.name() == "RADIO")
#if($fieldConfig.dictType && $fieldConfig.dictType.trim() != "")
<DictSelect v-model="formData.$fieldConfig.fieldName" type="radio" code="$fieldConfig.dictType" />
#else
@@ -215,7 +215,7 @@
<el-radio :value="1">选项二</el-radio>
</el-radio-group>
#end
#elseif($fieldConfig.formType == "CHECK_BOX")
#elseif($fieldConfig.formType.name() == "CHECK_BOX")
#if($fieldConfig.dictType && $fieldConfig.dictType.trim() != "")
<DictSelect v-model="formData.$fieldConfig.fieldName" type="checkbox" code="$fieldConfig.dictType" />
#else
@@ -224,30 +224,30 @@
<el-checkbox :value="1">选项二</el-checkbox>
</el-checkbox-group>
#end
#elseif($fieldConfig.formType == "INPUT_NUMBER")
#elseif($fieldConfig.formType.name() == "INPUT_NUMBER")
<el-input-number
v-model="formData.$fieldConfig.fieldName"
placeholder="$fieldConfig.fieldComment"
/>
#elseif($fieldConfig.formType == "SWITCH")
#elseif($fieldConfig.formType.name() == "SWITCH")
<el-switch
v-model="formData.$fieldConfig.fieldName"
:active-value="1"
:inactive-value="0"
/>
#elseif($fieldConfig.formType == "TEXT_AREA")
#elseif($fieldConfig.formType.name() == "TEXT_AREA")
<el-input type="textarea"
v-model="formData.$fieldConfig.fieldName"
placeholder="$fieldConfig.fieldComment"
/>
#elseif($fieldConfig.formType == "DATE_TIME")
#elseif($fieldConfig.formType.name() == "DATE_TIME")
<el-date-picker
v-model="formData.$fieldConfig.fieldName"
type="datetime"
placeholder="$fieldConfig.fieldComment"
value-format="YYYY-MM-DD HH:mm:ss"
/>
#elseif($fieldConfig.formType == "DATE")
#elseif($fieldConfig.formType.name() == "DATE")
<el-date-picker
class="!w-[240px]"
v-model="formData.$fieldConfig.fieldName"
@@ -258,7 +258,7 @@
#end
</el-form-item>
#elseif($fieldConfig.formType == "HIDDEN")
#elseif($fieldConfig.formType.name() == "HIDDEN")
<el-input type="hidden" v-model="formData.$fieldConfig.fieldName" />
#end
#end