更新代码生成模板
This commit is contained in:
parent
12c4661173
commit
f593c88083
|
|
@ -1,11 +1,11 @@
|
|||
{
|
||||
"project": {
|
||||
"packageName": "net.maku",
|
||||
"version": "1.0.0",
|
||||
"backendPath": "D:\\generator\\maku-boot\\maku-server",
|
||||
"frontendPath": "D:\\generator\\maku-admin",
|
||||
"version": "",
|
||||
"backendPath": "/Users/maku/makunet/maku-boot/maku-boot-new",
|
||||
"frontendPath": "/Users/maku/makunet/maku-admin",
|
||||
"tablePrefix": "tb_",
|
||||
"moduleName": "business",
|
||||
"moduleName": "test",
|
||||
"author": "阿沐",
|
||||
"email": "babamu@126.com"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package ${package}.${moduleName}.convert;
|
|||
|
||||
import ${package}.${moduleName}.entity.${ClassName}Entity;
|
||||
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;
|
||||
</#if>
|
||||
import org.mapstruct.Mapper;
|
||||
|
|
@ -28,7 +28,7 @@ public interface ${ClassName}Convert {
|
|||
|
||||
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}Entity> convertExcelList2(List<${ClassName}ExcelVO> list);
|
||||
|
|
|
|||
|
|
@ -30,6 +30,12 @@ public class ${ClassName}Entity<#if baseClass??> extends ${baseClass.code}</#if>
|
|||
<#if field.primaryPk>
|
||||
@TableId
|
||||
</#if>
|
||||
<#if field.fieldName == 'deleted'>
|
||||
@TableLogic
|
||||
</#if>
|
||||
<#if field.fieldName == 'version'>
|
||||
@Version
|
||||
</#if>
|
||||
<#if field.autoFill == "INSERT">
|
||||
@TableField(value = "${field.fieldName}", fill = FieldFill.INSERT)
|
||||
<#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.anno.Trans;
|
||||
import com.fhs.core.trans.constant.TransType;
|
||||
import ${package}.framework.common.excel.LocalDateTimeConverter;
|
||||
<#list importList as i>
|
||||
import ${i!};
|
||||
</#list>
|
||||
|
|
@ -29,11 +30,10 @@ public class ${ClassName}ExcelVO implements TransPojo {
|
|||
|
||||
</#if>
|
||||
<#list gridList as field>
|
||||
<#if field.fieldComment!?length gt 0>
|
||||
@ExcelProperty("${field.fieldComment}")
|
||||
</#if>
|
||||
<#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 field.formDict??>
|
||||
private String ${field.attrName}Label;
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package ${package}.${moduleName}.query;
|
|||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import java.util.*;
|
||||
import ${package}.framework.common.query.Query;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
|
|
@ -24,12 +25,14 @@ public class ${ClassName}Query extends Query {
|
|||
<#if field.fieldComment!?length gt 0>
|
||||
@Schema(description = "${field.fieldComment}")
|
||||
</#if>
|
||||
<#if field.queryFormType == 'date'>
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
<#elseif field.queryFormType == 'datetime'>
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||
<#if field.queryFormType == 'date' || field.queryFormType == 'datetime'>
|
||||
private List<String> ${field.attrName};
|
||||
<#else>
|
||||
private ${field.attrType} ${field.attrName};
|
||||
</#if>
|
||||
private ${field.attrType}<#if field.queryFormType == 'date' || field.queryFormType == 'datetime'>[]</#if> ${field.attrName};
|
||||
|
||||
</#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){
|
||||
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});
|
||||
</#if>
|
||||
<#list queryList as field>
|
||||
<#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.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 == '!='>
|
||||
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>
|
||||
<#if hasLeftTree>
|
||||
|
||||
// 左侧树过滤
|
||||
wrapper.in(query.get${leftRelationField?cap_first}() != null, ${ClassName}Entity::get${leftRelationField?cap_first}, query.get${leftRelationField?cap_first}());
|
||||
</#if>
|
||||
|
||||
return wrapper;
|
||||
}
|
||||
|
|
@ -200,7 +203,11 @@ public class ${ClassName}ServiceImpl extends BaseServiceImpl<${ClassName}Dao, ${
|
|||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void delete(List<Long> idList) {
|
||||
<#if hasTree>
|
||||
idList.forEach(this::deleteAllChildren);
|
||||
<#else>
|
||||
removeByIds(idList);
|
||||
</#if>
|
||||
|
||||
<#if subs?size gt 0>
|
||||
// 删除子表数据
|
||||
|
|
@ -213,6 +220,25 @@ public class ${ClassName}ServiceImpl extends BaseServiceImpl<${ClassName}Dao, ${
|
|||
}
|
||||
</#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')>
|
||||
@Override
|
||||
public void importByExcel(MultipartFile file) {
|
||||
|
|
|
|||
|
|
@ -18,9 +18,7 @@ import ${i!};
|
|||
*/
|
||||
@Data
|
||||
@Schema(description = "${tableComment}")
|
||||
public class ${ClassName}VO implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public class ${ClassName}VO {
|
||||
<#list fieldList as field>
|
||||
<#if field.fieldComment!?length gt 0>
|
||||
@Schema(description = "${field.fieldComment}")
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ const emit = defineEmits(['refreshDataList'])
|
|||
const visible = defineModel<boolean>('visible')
|
||||
const dataFormRef = ref()
|
||||
<#if subs?size gt 0>
|
||||
const activeName = ref("${subs[0].className}")
|
||||
const activeName = ref('${subs[0].className}')
|
||||
</#if>
|
||||
<#list subs as sub>
|
||||
const ${sub.className}Ref = ref()
|
||||
|
|
|
|||
|
|
@ -1,11 +1,21 @@
|
|||
<#macro maFormItem model field>
|
||||
<el-form-item label="${field.fieldComment!}" prop="${field.attrName}">
|
||||
<#if hasTree && field.fieldName == treePid>
|
||||
<#if hasTree && field.attrName == treePid>
|
||||
<ma-data-tree-select
|
||||
v-model="${model}.${field.attrName}"
|
||||
url="${requestUrl}/list"
|
||||
:props="{ label: '${treeLabel}', value: '${treeId}' }"
|
||||
pplaceholder="${field.fieldComment!}" />
|
||||
:props="{ label: '${treeLabel}', value: '${treeId}', pid: '${treePid}' }"
|
||||
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'>
|
||||
<el-input v-model="${model}.${field.attrName}" placeholder="${field.fieldComment!}"></el-input>
|
||||
<#elseif field.formType == 'number'>
|
||||
|
|
@ -24,32 +34,40 @@
|
|||
</#if>
|
||||
<#elseif field.formType == 'radio'>
|
||||
<#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>
|
||||
<el-radio-group v-model="${model}.${field.attrName}">
|
||||
<el-radio :value="0">启用</el-radio>
|
||||
<el-radio :value="1">禁用</el-radio>
|
||||
</el-radio-group>
|
||||
<el-radio-group v-model="${model}.${field.attrName}">
|
||||
<el-radio :value="0">启用</el-radio>
|
||||
<el-radio :value="1">禁用</el-radio>
|
||||
</el-radio-group>
|
||||
</#if>
|
||||
<#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 :value="1">启用</el-checkbox>
|
||||
<el-checkbox :value="0">禁用</el-checkbox>
|
||||
<el-checkbox :value="1">启用</el-checkbox>
|
||||
<el-checkbox :value="0">禁用</el-checkbox>
|
||||
</el-checkbox-group>
|
||||
</#if>
|
||||
<#elseif field.formType == 'address'>
|
||||
<ma-address v-model="${model}.${field.attrName}" placeholder="${field.fieldComment!}"></ma-address>
|
||||
<#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'>
|
||||
<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'>
|
||||
<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'>
|
||||
<ma-user-input v-model="${model}.${field.attrName}" placeholder="${field.fieldComment!}"></ma-user-input>
|
||||
<#elseif field.formType == 'org'>
|
||||
<ma-org-select v-model="${model}.${field.attrName}" placeholder="${field.fieldComment!}"></ma-org-select>
|
||||
<#elseif field.formType == 'post'>
|
||||
<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>
|
||||
<el-input v-model="${model}.${field.attrName}" placeholder="${field.fieldComment!}"></el-input>
|
||||
</#if>
|
||||
|
|
|
|||
|
|
@ -1,14 +1,31 @@
|
|||
<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')>
|
||||
<el-card class="layout-query">
|
||||
<el-form ref="queryRef" :inline="true" :model="state.queryForm" @keyup.enter="getDataList()">
|
||||
<#list queryList as field>
|
||||
<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>
|
||||
<#elseif field.queryFormType == 'select'>
|
||||
<#if field.queryDict??>
|
||||
<ma-dict-select v-model="state.queryForm.${field.attrName}" dict-type="${field.queryDict}" placeholder="${field.fieldComment!}" clearable></ma-dict-select>
|
||||
<#if field.formDict??>
|
||||
<ma-dict-select v-model="state.queryForm.${field.attrName}" dict-type="${field.formDict}" placeholder="${field.fieldComment!}" clearable></ma-dict-select>
|
||||
<#else>
|
||||
<el-select v-model="state.queryForm.${field.attrName}" placeholder="${field.fieldComment!}">
|
||||
<el-option label="选择" value="0"></el-option>
|
||||
|
|
@ -16,24 +33,22 @@
|
|||
</#if>
|
||||
<#elseif field.queryFormType == 'radio'>
|
||||
<#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>
|
||||
<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-group>
|
||||
</#if>
|
||||
<#elseif field.queryFormType == 'date'>
|
||||
<el-date-picker
|
||||
v-model="daterange"
|
||||
type="daterange"
|
||||
value-format="yyyy-MM-dd">
|
||||
</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 />
|
||||
<#elseif field.queryFormType == 'datetime'>
|
||||
<el-date-picker
|
||||
v-model="datetimerange"
|
||||
type="datetimerange"
|
||||
value-format="yyyy-MM-dd HH:mm:ss">
|
||||
</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 />
|
||||
<#elseif field.queryFormType == 'user'>
|
||||
<ma-user-input v-model="state.queryForm.${field.attrName}" placeholder="${field.fieldComment!}"></ma-user-input>
|
||||
<#elseif field.queryFormType == 'org'>
|
||||
<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>
|
||||
<el-input v-model="state.queryForm.${field.attrName}" placeholder="${field.fieldComment!}"></el-input>
|
||||
</#if>
|
||||
|
|
@ -59,9 +74,9 @@
|
|||
</#if>
|
||||
<#if tableOperation?seq_contains('import')>
|
||||
<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>
|
||||
</ma-upload-file>
|
||||
</ma-upload-excel>
|
||||
</el-space>
|
||||
</#if>
|
||||
<#if tableOperation?seq_contains('export')>
|
||||
|
|
@ -80,7 +95,9 @@
|
|||
<el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column>
|
||||
<#list gridList as field>
|
||||
<#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>
|
||||
<el-table-column prop="${field.attrName}" label="${field.fieldComment!}" header-align="center" align="center"></el-table-column>
|
||||
</#if>
|
||||
|
|
@ -113,7 +130,16 @@
|
|||
<!-- 弹窗, 新增 / 修改 -->
|
||||
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdateRef" v-model:visible="addOrUpdateVisible" @refreshDataList="getDataList"></add-or-update>
|
||||
</#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>
|
||||
<#if hasLeftTree>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</#if>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts" name="${ModuleName}${FunctionName}Index">
|
||||
|
|
@ -124,13 +150,30 @@
|
|||
import AddOrUpdate from './add-or-update.vue'
|
||||
</#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({
|
||||
dataListUrl: '${requestUrl}/page',
|
||||
<#if tableOperation?seq_contains('query')>
|
||||
deleteUrl: '${requestUrl}',
|
||||
</#if>
|
||||
queryForm: {
|
||||
<#if hasLeftTree>${leftRelationField}: [],</#if>
|
||||
<#list queryList as field>
|
||||
<#if field.formType == 'date'>
|
||||
startDate: '',
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user