更新代码生成模板
This commit is contained in:
parent
12c4661173
commit
f593c88083
|
|
@ -1,11 +1,11 @@
|
||||||
{
|
{
|
||||||
"project": {
|
"project": {
|
||||||
"packageName": "net.maku",
|
"packageName": "net.maku",
|
||||||
"version": "1.0.0",
|
"version": "",
|
||||||
"backendPath": "D:\\generator\\maku-boot\\maku-server",
|
"backendPath": "/Users/maku/makunet/maku-boot/maku-boot-new",
|
||||||
"frontendPath": "D:\\generator\\maku-admin",
|
"frontendPath": "/Users/maku/makunet/maku-admin",
|
||||||
"tablePrefix": "tb_",
|
"tablePrefix": "tb_",
|
||||||
"moduleName": "business",
|
"moduleName": "test",
|
||||||
"author": "阿沐",
|
"author": "阿沐",
|
||||||
"email": "babamu@126.com"
|
"email": "babamu@126.com"
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ package ${package}.${moduleName}.convert;
|
||||||
|
|
||||||
import ${package}.${moduleName}.entity.${ClassName}Entity;
|
import ${package}.${moduleName}.entity.${ClassName}Entity;
|
||||||
import ${package}.${moduleName}.vo.${ClassName}VO;
|
import ${package}.${moduleName}.vo.${ClassName}VO;
|
||||||
<#if tableOperation?seq_contains('import') || tableOperation?seq_contains('export')>
|
<#if !hasSub?? && (tableOperation?seq_contains('import') || tableOperation?seq_contains('export'))>
|
||||||
import ${package}.${moduleName}.vo.${ClassName}ExcelVO;
|
import ${package}.${moduleName}.vo.${ClassName}ExcelVO;
|
||||||
</#if>
|
</#if>
|
||||||
import org.mapstruct.Mapper;
|
import org.mapstruct.Mapper;
|
||||||
|
|
@ -28,7 +28,7 @@ public interface ${ClassName}Convert {
|
||||||
|
|
||||||
List<${ClassName}Entity> convertList2(List<${ClassName}VO> list);
|
List<${ClassName}Entity> convertList2(List<${ClassName}VO> list);
|
||||||
|
|
||||||
<#if tableOperation?seq_contains('import') || tableOperation?seq_contains('export')>
|
<#if !hasSub?? && (tableOperation?seq_contains('import') || tableOperation?seq_contains('export'))>
|
||||||
List<${ClassName}ExcelVO> convertExcelList(List<${ClassName}Entity> list);
|
List<${ClassName}ExcelVO> convertExcelList(List<${ClassName}Entity> list);
|
||||||
|
|
||||||
List<${ClassName}Entity> convertExcelList2(List<${ClassName}ExcelVO> list);
|
List<${ClassName}Entity> convertExcelList2(List<${ClassName}ExcelVO> list);
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,12 @@ public class ${ClassName}Entity<#if baseClass??> extends ${baseClass.code}</#if>
|
||||||
<#if field.primaryPk>
|
<#if field.primaryPk>
|
||||||
@TableId
|
@TableId
|
||||||
</#if>
|
</#if>
|
||||||
|
<#if field.fieldName == 'deleted'>
|
||||||
|
@TableLogic
|
||||||
|
</#if>
|
||||||
|
<#if field.fieldName == 'version'>
|
||||||
|
@Version
|
||||||
|
</#if>
|
||||||
<#if field.autoFill == "INSERT">
|
<#if field.autoFill == "INSERT">
|
||||||
@TableField(value = "${field.fieldName}", fill = FieldFill.INSERT)
|
@TableField(value = "${field.fieldName}", fill = FieldFill.INSERT)
|
||||||
<#elseif field.autoFill == "INSERT_UPDATE">
|
<#elseif field.autoFill == "INSERT_UPDATE">
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
import com.fhs.core.trans.vo.TransPojo;
|
import com.fhs.core.trans.vo.TransPojo;
|
||||||
import com.fhs.core.trans.anno.Trans;
|
import com.fhs.core.trans.anno.Trans;
|
||||||
import com.fhs.core.trans.constant.TransType;
|
import com.fhs.core.trans.constant.TransType;
|
||||||
|
import ${package}.framework.common.excel.LocalDateTimeConverter;
|
||||||
<#list importList as i>
|
<#list importList as i>
|
||||||
import ${i!};
|
import ${i!};
|
||||||
</#list>
|
</#list>
|
||||||
|
|
@ -29,11 +30,10 @@ public class ${ClassName}ExcelVO implements TransPojo {
|
||||||
|
|
||||||
</#if>
|
</#if>
|
||||||
<#list gridList as field>
|
<#list gridList as field>
|
||||||
<#if field.fieldComment!?length gt 0>
|
|
||||||
@ExcelProperty("${field.fieldComment}")
|
|
||||||
</#if>
|
|
||||||
<#if field.attrType == 'LocalDateTime'>
|
<#if field.attrType == 'LocalDateTime'>
|
||||||
@ExcelProperty(value = "${field.fieldComment}", converter = LocalDateTimeConverter.class)
|
@ExcelProperty(value = "${field.fieldComment!}", converter = LocalDateTimeConverter.class)
|
||||||
|
<#elseif field.fieldComment!?length gt 0>
|
||||||
|
@ExcelProperty("${field.fieldComment}")
|
||||||
</#if>
|
</#if>
|
||||||
<#if field.formDict??>
|
<#if field.formDict??>
|
||||||
private String ${field.attrName}Label;
|
private String ${field.attrName}Label;
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ package ${package}.${moduleName}.query;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
import java.util.*;
|
||||||
import ${package}.framework.common.query.Query;
|
import ${package}.framework.common.query.Query;
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
|
|
@ -24,12 +25,14 @@ public class ${ClassName}Query extends Query {
|
||||||
<#if field.fieldComment!?length gt 0>
|
<#if field.fieldComment!?length gt 0>
|
||||||
@Schema(description = "${field.fieldComment}")
|
@Schema(description = "${field.fieldComment}")
|
||||||
</#if>
|
</#if>
|
||||||
<#if field.queryFormType == 'date'>
|
<#if field.queryFormType == 'date' || field.queryFormType == 'datetime'>
|
||||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
private List<String> ${field.attrName};
|
||||||
<#elseif field.queryFormType == 'datetime'>
|
<#else>
|
||||||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
private ${field.attrType} ${field.attrName};
|
||||||
</#if>
|
</#if>
|
||||||
private ${field.attrType}<#if field.queryFormType == 'date' || field.queryFormType == 'datetime'>[]</#if> ${field.attrName};
|
|
||||||
|
|
||||||
</#list>
|
</#list>
|
||||||
|
<#if hasLeftTree>
|
||||||
|
private List<Long> ${leftRelationField};
|
||||||
|
</#if>
|
||||||
}
|
}
|
||||||
|
|
@ -75,32 +75,35 @@ public class ${ClassName}ServiceImpl extends BaseServiceImpl<${ClassName}Dao, ${
|
||||||
|
|
||||||
private LambdaQueryWrapper<${ClassName}Entity> getWrapper(${ClassName}Query query){
|
private LambdaQueryWrapper<${ClassName}Entity> getWrapper(${ClassName}Query query){
|
||||||
LambdaQueryWrapper<${ClassName}Entity> wrapper = Wrappers.lambdaQuery();
|
LambdaQueryWrapper<${ClassName}Entity> wrapper = Wrappers.lambdaQuery();
|
||||||
<#if hasTree>
|
<#list queryList as field>
|
||||||
|
<#if hasTree && field.attrName == treePid>
|
||||||
|
<#assign hasTreePid = true>
|
||||||
|
if (ObjectUtil.isNotEmpty(query.get${field.attrName?cap_first}())) {
|
||||||
|
wrapper.eq(${ClassName}Entity::get${field.attrName?cap_first}, query.get${field.attrName?cap_first}());
|
||||||
|
} else {
|
||||||
|
wrapper.isNull(${ClassName}Entity::get${treePid?cap_first});
|
||||||
|
}
|
||||||
|
<#else>
|
||||||
|
<#if field.queryFormType == 'date' || field.queryFormType == 'datetime'>
|
||||||
|
if (ObjectUtil.isNotEmpty(query.get${field.attrName?cap_first}())) {
|
||||||
|
wrapper.between(${ClassName}Entity::get${field.attrName?cap_first}, query.get${field.attrName?cap_first}().get(0), query.get${field.attrName?cap_first}().get(1));
|
||||||
|
}
|
||||||
|
<#elseif field.queryType == '='>
|
||||||
|
wrapper.eq(ObjectUtil.isNotEmpty(query.get${field.attrName?cap_first}()), ${ClassName}Entity::get${field.attrName?cap_first}, query.get${field.attrName?cap_first}());
|
||||||
|
<#elseif field.queryType == 'like'>
|
||||||
|
wrapper.like(ObjectUtil.isNotEmpty(query.get${field.attrName?cap_first}()), ${ClassName}Entity::get${field.attrName?cap_first}, query.get${field.attrName?cap_first}());
|
||||||
|
</#if>
|
||||||
|
</#if>
|
||||||
|
|
||||||
|
</#list>
|
||||||
|
<#if hasTree && !hasTreePid??>
|
||||||
wrapper.isNull(${ClassName}Entity::get${treePid?cap_first});
|
wrapper.isNull(${ClassName}Entity::get${treePid?cap_first});
|
||||||
</#if>
|
</#if>
|
||||||
<#list queryList as field>
|
<#if hasLeftTree>
|
||||||
<#if field.queryFormType == 'date' || field.queryFormType == 'datetime'>
|
|
||||||
wrapper.between(ObjectUtil.isNotEmpty(query.get${field.attrName?cap_first}()), ${ClassName}Entity::get${field.attrName?cap_first}, ArrayUtils.isNotEmpty(query.get${field.attrName?cap_first}()) ? query.get${field.attrName?cap_first}()[0] : null, ArrayUtils.isNotEmpty(query.get${field.attrName?cap_first}()) ? query.get${field.attrName?cap_first}()[1] : null);
|
// 左侧树过滤
|
||||||
<#elseif field.queryType == '='>
|
wrapper.in(query.get${leftRelationField?cap_first}() != null, ${ClassName}Entity::get${leftRelationField?cap_first}, query.get${leftRelationField?cap_first}());
|
||||||
wrapper.eq(ObjectUtil.isNotEmpty(query.get${field.attrName?cap_first}()), ${ClassName}Entity::get${field.attrName?cap_first}, query.get${field.attrName?cap_first}());
|
</#if>
|
||||||
<#elseif field.queryType == '!='>
|
|
||||||
wrapper.ne(ObjectUtil.isNotEmpty(query.get${field.attrName?cap_first}()), ${ClassName}Entity::get${field.attrName?cap_first}, query.get${field.attrName?cap_first}());
|
|
||||||
<#elseif field.queryType == '>'>
|
|
||||||
wrapper.gt(ObjectUtil.isNotEmpty(query.get${field.attrName?cap_first}()), ${ClassName}Entity::get${field.attrName?cap_first}, query.get${field.attrName?cap_first}());
|
|
||||||
<#elseif field.queryType == '>='>
|
|
||||||
wrapper.ge(ObjectUtil.isNotEmpty(query.get${field.attrName?cap_first}()), ${ClassName}Entity::get${field.attrName?cap_first}, query.get${field.attrName?cap_first}());
|
|
||||||
<#elseif field.queryType == '<'>
|
|
||||||
wrapper.lt(ObjectUtil.isNotEmpty(query.get${field.attrName?cap_first}()), ${ClassName}Entity::get${field.attrName?cap_first}, query.get${field.attrName?cap_first}());
|
|
||||||
<#elseif field.queryType == '<='>
|
|
||||||
wrapper.le(ObjectUtil.isNotEmpty(query.get${field.attrName?cap_first}()), ${ClassName}Entity::get${field.attrName?cap_first}, query.get${field.attrName?cap_first}());
|
|
||||||
<#elseif field.queryType == 'like'>
|
|
||||||
wrapper.like(ObjectUtil.isNotEmpty(query.get${field.attrName?cap_first}()), ${ClassName}Entity::get${field.attrName?cap_first}, query.get${field.attrName?cap_first}());
|
|
||||||
<#elseif field.queryType == 'left like'>
|
|
||||||
wrapper.likeLeft(ObjectUtil.isNotEmpty(query.get${field.attrName?cap_first}()), ${ClassName}Entity::get${field.attrName?cap_first}, query.get${field.attrName?cap_first}());
|
|
||||||
<#elseif field.queryType == 'right like'>
|
|
||||||
wrapper.likeRight(ObjectUtil.isNotEmpty(query.get${field.attrName?cap_first}()), ${ClassName}Entity::get${field.attrName?cap_first}, query.get${field.attrName?cap_first}());
|
|
||||||
</#if>
|
|
||||||
</#list>
|
|
||||||
|
|
||||||
return wrapper;
|
return wrapper;
|
||||||
}
|
}
|
||||||
|
|
@ -200,7 +203,11 @@ public class ${ClassName}ServiceImpl extends BaseServiceImpl<${ClassName}Dao, ${
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void delete(List<Long> idList) {
|
public void delete(List<Long> idList) {
|
||||||
|
<#if hasTree>
|
||||||
|
idList.forEach(this::deleteAllChildren);
|
||||||
|
<#else>
|
||||||
removeByIds(idList);
|
removeByIds(idList);
|
||||||
|
</#if>
|
||||||
|
|
||||||
<#if subs?size gt 0>
|
<#if subs?size gt 0>
|
||||||
// 删除子表数据
|
// 删除子表数据
|
||||||
|
|
@ -213,6 +220,25 @@ public class ${ClassName}ServiceImpl extends BaseServiceImpl<${ClassName}Dao, ${
|
||||||
}
|
}
|
||||||
</#if>
|
</#if>
|
||||||
|
|
||||||
|
<#if hasTree>
|
||||||
|
/**
|
||||||
|
* 递归删除所有子节点
|
||||||
|
*
|
||||||
|
* @param id 节点ID
|
||||||
|
*/
|
||||||
|
private void deleteAllChildren(Long id) {
|
||||||
|
// 查询当前节点的所有子节点
|
||||||
|
List<${ClassName}Entity> childrenList = baseMapper.selectList(new LambdaQueryWrapper<${ClassName}Entity>().eq(${ClassName}Entity::get${treePid?cap_first}, id));
|
||||||
|
// 递归删除每个子节点
|
||||||
|
for (${ClassName}Entity children : childrenList) {
|
||||||
|
deleteAllChildren(children.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除当前节点
|
||||||
|
baseMapper.deleteById(id);
|
||||||
|
}
|
||||||
|
</#if>
|
||||||
|
|
||||||
<#if tableOperation?seq_contains('import')>
|
<#if tableOperation?seq_contains('import')>
|
||||||
@Override
|
@Override
|
||||||
public void importByExcel(MultipartFile file) {
|
public void importByExcel(MultipartFile file) {
|
||||||
|
|
|
||||||
|
|
@ -18,9 +18,7 @@ import ${i!};
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@Schema(description = "${tableComment}")
|
@Schema(description = "${tableComment}")
|
||||||
public class ${ClassName}VO implements Serializable {
|
public class ${ClassName}VO {
|
||||||
private static final long serialVersionUID = 1L;
|
|
||||||
|
|
||||||
<#list fieldList as field>
|
<#list fieldList as field>
|
||||||
<#if field.fieldComment!?length gt 0>
|
<#if field.fieldComment!?length gt 0>
|
||||||
@Schema(description = "${field.fieldComment}")
|
@Schema(description = "${field.fieldComment}")
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@ const emit = defineEmits(['refreshDataList'])
|
||||||
const visible = defineModel<boolean>('visible')
|
const visible = defineModel<boolean>('visible')
|
||||||
const dataFormRef = ref()
|
const dataFormRef = ref()
|
||||||
<#if subs?size gt 0>
|
<#if subs?size gt 0>
|
||||||
const activeName = ref("${subs[0].className}")
|
const activeName = ref('${subs[0].className}')
|
||||||
</#if>
|
</#if>
|
||||||
<#list subs as sub>
|
<#list subs as sub>
|
||||||
const ${sub.className}Ref = ref()
|
const ${sub.className}Ref = ref()
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,21 @@
|
||||||
<#macro maFormItem model field>
|
<#macro maFormItem model field>
|
||||||
<el-form-item label="${field.fieldComment!}" prop="${field.attrName}">
|
<el-form-item label="${field.fieldComment!}" prop="${field.attrName}">
|
||||||
<#if hasTree && field.fieldName == treePid>
|
<#if hasTree && field.attrName == treePid>
|
||||||
<ma-data-tree-select
|
<ma-data-tree-select
|
||||||
v-model="${model}.${field.attrName}"
|
v-model="${model}.${field.attrName}"
|
||||||
url="${requestUrl}/list"
|
url="${requestUrl}/list"
|
||||||
:props="{ label: '${treeLabel}', value: '${treeId}' }"
|
:props="{ label: '${treeLabel}', value: '${treeId}', pid: '${treePid}' }"
|
||||||
pplaceholder="${field.fieldComment!}" />
|
placeholder="${field.fieldComment!}" />
|
||||||
|
<#elseif hasLeftTree?? && field.attrName == leftRelationField>
|
||||||
|
<ma-data-tree-select
|
||||||
|
v-model="${model}.${field.attrName}"
|
||||||
|
<#if hasLeftFormDs??>
|
||||||
|
:props="{ label: '${leftTreeLabel}', value: '${leftTreeId}' }"
|
||||||
|
url="${leftRequestUrl}/list"
|
||||||
|
<#else>
|
||||||
|
url="${leftRequestUrl}"
|
||||||
|
</#if>
|
||||||
|
/>
|
||||||
<#elseif field.formType == 'input'>
|
<#elseif field.formType == 'input'>
|
||||||
<el-input v-model="${model}.${field.attrName}" placeholder="${field.fieldComment!}"></el-input>
|
<el-input v-model="${model}.${field.attrName}" placeholder="${field.fieldComment!}"></el-input>
|
||||||
<#elseif field.formType == 'number'>
|
<#elseif field.formType == 'number'>
|
||||||
|
|
@ -24,32 +34,40 @@
|
||||||
</#if>
|
</#if>
|
||||||
<#elseif field.formType == 'radio'>
|
<#elseif field.formType == 'radio'>
|
||||||
<#if field.formDict??>
|
<#if field.formDict??>
|
||||||
<ma-dict-radio v-model="${model}.${field.attrName}" dict-type="${field.formDict}"></ma-dict-radio>
|
<ma-dict-radio v-model="${model}.${field.attrName}" dict-type="${field.formDict}"></ma-dict-radio>
|
||||||
<#else>
|
<#else>
|
||||||
<el-radio-group v-model="${model}.${field.attrName}">
|
<el-radio-group v-model="${model}.${field.attrName}">
|
||||||
<el-radio :value="0">启用</el-radio>
|
<el-radio :value="0">启用</el-radio>
|
||||||
<el-radio :value="1">禁用</el-radio>
|
<el-radio :value="1">禁用</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</#if>
|
</#if>
|
||||||
<#elseif field.formType == 'checkbox'>
|
<#elseif field.formType == 'checkbox'>
|
||||||
|
<#if field.formDict??>
|
||||||
|
<ma-dict-checkbox v-model="${model}.${field.attrName}" dict-type="${field.formDict}"></ma-dict-checkbox>
|
||||||
|
<#else>
|
||||||
<el-checkbox-group v-model="${model}.${field.attrName}">
|
<el-checkbox-group v-model="${model}.${field.attrName}">
|
||||||
<el-checkbox :value="1">启用</el-checkbox>
|
<el-checkbox :value="1">启用</el-checkbox>
|
||||||
<el-checkbox :value="0">禁用</el-checkbox>
|
<el-checkbox :value="0">禁用</el-checkbox>
|
||||||
</el-checkbox-group>
|
</el-checkbox-group>
|
||||||
|
</#if>
|
||||||
<#elseif field.formType == 'address'>
|
<#elseif field.formType == 'address'>
|
||||||
<ma-address v-model="${model}.${field.attrName}" placeholder="${field.fieldComment!}"></ma-address>
|
<ma-address v-model="${model}.${field.attrName}" placeholder="${field.fieldComment!}"></ma-address>
|
||||||
<#elseif field.formType == 'date'>
|
<#elseif field.formType == 'date'>
|
||||||
<el-date-picker type="date" placeholder="${field.fieldComment!}" v-model="${model}.${field.attrName}"></el-date-picker>
|
<el-date-picker type="date" value-format="YYYY-MM-DD" placeholder="${field.fieldComment!}" v-model="${model}.${field.attrName}"></el-date-picker>
|
||||||
<#elseif field.formType == 'datetime'>
|
<#elseif field.formType == 'datetime'>
|
||||||
<el-date-picker type="datetime" placeholder="${field.fieldComment!}" v-model="${model}.${field.attrName}"></el-date-picker>
|
<el-date-picker type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="${field.fieldComment!}" v-model="${model}.${field.attrName}"></el-date-picker>
|
||||||
<#elseif field.formType == 'treeselect'>
|
<#elseif field.formType == 'treeselect'>
|
||||||
<el-tree-select v-model="${model}.${field.attrName}" placeholder="${field.fieldComment!}"></el-tree-select>
|
<ma-data-tree-select v-model="${model}.${field.attrName}" url="${field.formDict!}" :props="{ label: 'name', value: 'id' }" placeholder="${field.fieldComment!}" />
|
||||||
<#elseif field.formType == 'user'>
|
<#elseif field.formType == 'user'>
|
||||||
<ma-user-input v-model="${model}.${field.attrName}" placeholder="${field.fieldComment!}"></ma-user-input>
|
<ma-user-input v-model="${model}.${field.attrName}" placeholder="${field.fieldComment!}"></ma-user-input>
|
||||||
<#elseif field.formType == 'org'>
|
<#elseif field.formType == 'org'>
|
||||||
<ma-org-select v-model="${model}.${field.attrName}" placeholder="${field.fieldComment!}"></ma-org-select>
|
<ma-org-select v-model="${model}.${field.attrName}" placeholder="${field.fieldComment!}"></ma-org-select>
|
||||||
<#elseif field.formType == 'post'>
|
<#elseif field.formType == 'post'>
|
||||||
<ma-post-input v-model="${model}.${field.attrName}" placeholder="${field.fieldComment!}"></ma-post-input>
|
<ma-post-input v-model="${model}.${field.attrName}" placeholder="${field.fieldComment!}"></ma-post-input>
|
||||||
|
<#elseif field.formType == 'file'>
|
||||||
|
<ma-upload-file v-model="${model}.${field.attrName}"></ma-upload-file>
|
||||||
|
<#elseif field.formType == 'image'>
|
||||||
|
<ma-upload-images v-model="${model}.${field.attrName}"></ma-upload-images>
|
||||||
<#else>
|
<#else>
|
||||||
<el-input v-model="${model}.${field.attrName}" placeholder="${field.fieldComment!}"></el-input>
|
<el-input v-model="${model}.${field.attrName}" placeholder="${field.fieldComment!}"></el-input>
|
||||||
</#if>
|
</#if>
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,31 @@
|
||||||
<template>
|
<template>
|
||||||
|
<#if hasLeftTree>
|
||||||
|
<el-row :gutter="10">
|
||||||
|
<el-col :span="5">
|
||||||
|
<#if hasLeftFormDs??>
|
||||||
|
<ma-data-tree-left url="${leftRequestUrl}/list" title="${leftTitle}" manage @click="handleClick" @manage="treeVisible = true" />
|
||||||
|
<#else>
|
||||||
|
<ma-data-tree-left url="${leftRequestUrl}" title="${leftTitle}" @click="handleClick" />
|
||||||
|
</#if>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="19">
|
||||||
|
</#if>
|
||||||
<#if tableOperation?seq_contains('query')>
|
<#if tableOperation?seq_contains('query')>
|
||||||
<el-card class="layout-query">
|
<el-card class="layout-query">
|
||||||
<el-form ref="queryRef" :inline="true" :model="state.queryForm" @keyup.enter="getDataList()">
|
<el-form ref="queryRef" :inline="true" :model="state.queryForm" @keyup.enter="getDataList()">
|
||||||
<#list queryList as field>
|
<#list queryList as field>
|
||||||
<el-form-item prop="${field.attrName}">
|
<el-form-item prop="${field.attrName}">
|
||||||
<#if field.queryFormType == 'text' || field.queryFormType == 'textarea' || field.queryFormType == 'editor'>
|
<#if hasTree && field.attrName == treePid>
|
||||||
|
<ma-data-tree-select
|
||||||
|
v-model="state.queryForm.${field.attrName}"
|
||||||
|
url="${requestUrl}/list"
|
||||||
|
:props="{ label: '${treeLabel}', value: '${treeId}', pid: '${treePid}' }"
|
||||||
|
placeholder="${field.fieldComment!}" />
|
||||||
|
<#elseif field.queryFormType == 'input'>
|
||||||
<el-input v-model="state.queryForm.${field.attrName}" placeholder="${field.fieldComment!}"></el-input>
|
<el-input v-model="state.queryForm.${field.attrName}" placeholder="${field.fieldComment!}"></el-input>
|
||||||
<#elseif field.queryFormType == 'select'>
|
<#elseif field.queryFormType == 'select'>
|
||||||
<#if field.queryDict??>
|
<#if field.formDict??>
|
||||||
<ma-dict-select v-model="state.queryForm.${field.attrName}" dict-type="${field.queryDict}" placeholder="${field.fieldComment!}" clearable></ma-dict-select>
|
<ma-dict-select v-model="state.queryForm.${field.attrName}" dict-type="${field.formDict}" placeholder="${field.fieldComment!}" clearable></ma-dict-select>
|
||||||
<#else>
|
<#else>
|
||||||
<el-select v-model="state.queryForm.${field.attrName}" placeholder="${field.fieldComment!}">
|
<el-select v-model="state.queryForm.${field.attrName}" placeholder="${field.fieldComment!}">
|
||||||
<el-option label="选择" value="0"></el-option>
|
<el-option label="选择" value="0"></el-option>
|
||||||
|
|
@ -16,24 +33,22 @@
|
||||||
</#if>
|
</#if>
|
||||||
<#elseif field.queryFormType == 'radio'>
|
<#elseif field.queryFormType == 'radio'>
|
||||||
<#if field.formDict??>
|
<#if field.formDict??>
|
||||||
<ma-dict-radio v-model="state.queryForm.${field.attrName}" dict-type="${field.formDict}"></ma-dict-radio>
|
<ma-dict-radio v-model="state.queryForm.${field.attrName}" dict-type="${field.formDict}" placeholder="${field.fieldComment!}"></ma-dict-radio>
|
||||||
<#else>
|
<#else>
|
||||||
<el-radio-group v-model="state.queryForm.${field.attrName}">
|
<el-radio-group v-model="state.queryForm.${field.attrName}" placeholder="${field.fieldComment!}">
|
||||||
<el-radio :label="0">单选</el-radio>
|
<el-radio :label="0">单选</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</#if>
|
</#if>
|
||||||
<#elseif field.queryFormType == 'date'>
|
<#elseif field.queryFormType == 'date'>
|
||||||
<el-date-picker
|
<el-date-picker v-model="state.queryForm.${field.attrName}" value-format="YYYY-MM-DD" type="daterange" start-placeholder="${field.fieldComment!}" end-placeholder="结束日期" clearable />
|
||||||
v-model="daterange"
|
|
||||||
type="daterange"
|
|
||||||
value-format="yyyy-MM-dd">
|
|
||||||
</el-date-picker>
|
|
||||||
<#elseif field.queryFormType == 'datetime'>
|
<#elseif field.queryFormType == 'datetime'>
|
||||||
<el-date-picker
|
<el-date-picker v-model="state.queryForm.${field.attrName}" value-format="YYYY-MM-DD HH:mm:ss" type="datetimerange" start-placeholder="${field.fieldComment!}" end-placeholder="结束日期" clearable />
|
||||||
v-model="datetimerange"
|
<#elseif field.queryFormType == 'user'>
|
||||||
type="datetimerange"
|
<ma-user-input v-model="state.queryForm.${field.attrName}" placeholder="${field.fieldComment!}"></ma-user-input>
|
||||||
value-format="yyyy-MM-dd HH:mm:ss">
|
<#elseif field.queryFormType == 'org'>
|
||||||
</el-date-picker>
|
<ma-org-input v-model="state.queryForm.${field.attrName}" placeholder="${field.fieldComment!}"></ma-org-input>
|
||||||
|
<#elseif field.queryFormType == 'post'>
|
||||||
|
<ma-post-input v-model="state.queryForm.${field.attrName}" placeholder="${field.fieldComment!}"></ma-post-input>
|
||||||
<#else>
|
<#else>
|
||||||
<el-input v-model="state.queryForm.${field.attrName}" placeholder="${field.fieldComment!}"></el-input>
|
<el-input v-model="state.queryForm.${field.attrName}" placeholder="${field.fieldComment!}"></el-input>
|
||||||
</#if>
|
</#if>
|
||||||
|
|
@ -59,9 +74,9 @@
|
||||||
</#if>
|
</#if>
|
||||||
<#if tableOperation?seq_contains('import')>
|
<#if tableOperation?seq_contains('import')>
|
||||||
<el-space <#if authLevel==1>v-auth="'${authority}:import'"</#if>>
|
<el-space <#if authLevel==1>v-auth="'${authority}:import'"</#if>>
|
||||||
<ma-upload-file action="${requestUrl}/import">
|
<ma-upload-excel action="${requestUrl}/import">
|
||||||
<el-button plain icon="Upload">导入</el-button>
|
<el-button plain icon="Upload">导入</el-button>
|
||||||
</ma-upload-file>
|
</ma-upload-excel>
|
||||||
</el-space>
|
</el-space>
|
||||||
</#if>
|
</#if>
|
||||||
<#if tableOperation?seq_contains('export')>
|
<#if tableOperation?seq_contains('export')>
|
||||||
|
|
@ -80,7 +95,9 @@
|
||||||
<el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column>
|
<el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column>
|
||||||
<#list gridList as field>
|
<#list gridList as field>
|
||||||
<#if field.formDict??>
|
<#if field.formDict??>
|
||||||
<ma-dict-table prop="${field.attrName}" label="${field.fieldComment!}" dict-type="${field.formDict}"></ma-dict-table>
|
<ma-dict-column prop="${field.attrName}" label="${field.fieldComment!}" dict-type="${field.formDict}"></ma-dict-column>
|
||||||
|
<#elseif field.formType=='image'>
|
||||||
|
<ma-image-column prop="${field.attrName}" label="${field.fieldComment!}" header-align="center" align="center"></ma-image-column>
|
||||||
<#else>
|
<#else>
|
||||||
<el-table-column prop="${field.attrName}" label="${field.fieldComment!}" header-align="center" align="center"></el-table-column>
|
<el-table-column prop="${field.attrName}" label="${field.fieldComment!}" header-align="center" align="center"></el-table-column>
|
||||||
</#if>
|
</#if>
|
||||||
|
|
@ -113,7 +130,16 @@
|
||||||
<!-- 弹窗, 新增 / 修改 -->
|
<!-- 弹窗, 新增 / 修改 -->
|
||||||
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdateRef" v-model:visible="addOrUpdateVisible" @refreshDataList="getDataList"></add-or-update>
|
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdateRef" v-model:visible="addOrUpdateVisible" @refreshDataList="getDataList"></add-or-update>
|
||||||
</#if>
|
</#if>
|
||||||
|
<#if hasLeftTree && hasLeftFormDs??>
|
||||||
|
<el-drawer v-if="treeVisible" v-model="treeVisible" title="${leftTitle}" :size="800" :before-close="handleClose">
|
||||||
|
<Left${FunctionNameLeft}></Left${FunctionNameLeft}>
|
||||||
|
</el-drawer>
|
||||||
|
</#if>
|
||||||
</el-card>
|
</el-card>
|
||||||
|
<#if hasLeftTree>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</#if>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts" name="${ModuleName}${FunctionName}Index">
|
<script setup lang="ts" name="${ModuleName}${FunctionName}Index">
|
||||||
|
|
@ -124,13 +150,30 @@
|
||||||
import AddOrUpdate from './add-or-update.vue'
|
import AddOrUpdate from './add-or-update.vue'
|
||||||
</#if>
|
</#if>
|
||||||
<#if hasTree>import { use${FunctionName}TreeLoadApi } from '@/api/${moduleName}/${functionName}'</#if>
|
<#if hasTree>import { use${FunctionName}TreeLoadApi } from '@/api/${moduleName}/${functionName}'</#if>
|
||||||
|
<#if hasLeftTree>
|
||||||
|
<#if hasLeftFormDs??>
|
||||||
|
import Left${FunctionNameLeft} from '../${functionNameLeft}/index.vue'
|
||||||
|
import emit, { MittEvent } from '@/utils/emits'
|
||||||
|
|
||||||
|
const treeVisible = ref(false)
|
||||||
|
const handleClose = () => {
|
||||||
|
treeVisible.value = false
|
||||||
|
emit.emit(MittEvent.LeftTree)
|
||||||
|
}
|
||||||
|
</#if>
|
||||||
|
const handleClick = (idList: any[]) => {
|
||||||
|
state.queryForm.${leftRelationField} = idList
|
||||||
|
getDataList()
|
||||||
|
}
|
||||||
|
|
||||||
|
</#if>
|
||||||
const state: IHooksOptions = reactive({
|
const state: IHooksOptions = reactive({
|
||||||
dataListUrl: '${requestUrl}/page',
|
dataListUrl: '${requestUrl}/page',
|
||||||
<#if tableOperation?seq_contains('query')>
|
<#if tableOperation?seq_contains('query')>
|
||||||
deleteUrl: '${requestUrl}',
|
deleteUrl: '${requestUrl}',
|
||||||
</#if>
|
</#if>
|
||||||
queryForm: {
|
queryForm: {
|
||||||
|
<#if hasLeftTree>${leftRelationField}: [],</#if>
|
||||||
<#list queryList as field>
|
<#list queryList as field>
|
||||||
<#if field.formType == 'date'>
|
<#if field.formType == 'date'>
|
||||||
startDate: '',
|
startDate: '',
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user