1. 修改代码生成器普通表格为虚拟滚动

(cherry picked from commit da3487a54d)
This commit is contained in:
chenbowen
2025-08-27 09:42:53 +08:00
committed by chenbowen
parent d5ad443a7f
commit 7ccf4f03c2
25 changed files with 1795 additions and 167 deletions

View File

@@ -30,7 +30,7 @@ public class PageParam implements Serializable {
@Schema(description = "每页条数,最大值为 100", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
@NotNull(message = "每页条数不能为空")
@Min(value = 1, message = "每页条数最小值为 1")
@Max(value = 100, message = "每页条数最大值为 100")
@Max(value = 10000, message = "每页条数最大值为 10000")
private Integer pageSize = PAGE_SIZE;
}

View File

@@ -0,0 +1,15 @@
package cn.iocoder.yudao.framework.common.pojo.vo;
import jakarta.validation.constraints.NotEmpty;
import lombok.Data;
import java.util.List;
/**
* @author chenbowen
*/
@Data
public class BatchDeleteReqVO {
@NotEmpty(message = "批量删除 ids 不能为空")
private List<Long> ids;
}

View File

@@ -1,59 +0,0 @@
package cn.iocoder.yudao.module.infra.api.stdnms;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.module.infra.api.stdnms.dto.StdNmsRespDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.Collection;
import java.util.List;
@FeignClient(name = "stdnms-api") // 可根据实际服务名调整
@Tag(name = "RPC 服务 - 数据命名与简写标准")
public interface StdNmsApi {
String PREFIX = "/api/stdnms";
@DeleteMapping(PREFIX + "/delete")
@Operation(summary = "删除数据命名与简写标准")
@Parameters({
@Parameter(name = "id", description = "主键ID", example = "1001", required = true)
})
CommonResult<Boolean> deleteStdNms(@RequestParam("id") Long id);
@DeleteMapping(PREFIX + "/delete-batch")
@Operation(summary = "批量删除数据命名与简写标准")
@Parameters({
@Parameter(name = "ids", description = "主键ID集合", example = "[1001,1002]", required = true)
})
CommonResult<Boolean> deleteStdNmsList(@RequestParam("ids") List<Long> ids);
@GetMapping(PREFIX + "/get")
@Operation(summary = "根据主键获取数据命名与简写标准")
@Parameters({
@Parameter(name = "id", description = "主键ID", example = "1001", required = true)
})
CommonResult<StdNmsRespDTO> getStdNms(@RequestParam("id") Long id);
@GetMapping(PREFIX + "/get-by-abbr")
@Operation(summary = "根据缩写获取数据命名与简写标准")
@Parameters({
@Parameter(name = "abbr", description = "简写/缩写", example = "devNm", required = true)
})
CommonResult<StdNmsRespDTO> getStdNmsByAbbr(@RequestParam("abbr") String abbr);
@GetMapping(PREFIX + "/list-by-abbrs")
@Operation(summary = "根据缩写列表查询数据命名与简写标准")
@Parameters({
@Parameter(name = "abbrs", description = "简写/缩写集合", example = "[devNm,devType]", required = true)
})
CommonResult<List<StdNmsRespDTO>> getStdNmsListByAbbrs(@RequestParam("abbrs") Collection<String> abbrs);
}

View File

@@ -1,26 +0,0 @@
package cn.iocoder.yudao.module.infra.api.stdnms.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Schema(description = "数据命名与简写标准响应 DTO")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class StdNmsRespDTO implements Serializable {
@Schema(description = "主键ID", example = "1001")
private Long id;
@Schema(description = "名称", example = "设备名称")
private String name;
@Schema(description = "简写/缩写", example = "devNm")
private String abbr;
// 可根据实际需求补充其他字段
}

View File

@@ -24,6 +24,7 @@ import ${jakartaPackage}.servlet.http.*;
import java.util.*;
import java.io.IOException;
import ${basePackage}.framework.common.pojo.vo.BatchDeleteReqVO;
import ${PageParamClassName};
import ${PageResultClassName};
import ${CommonResultClassName};
@@ -111,8 +112,8 @@ public class ${sceneEnum.prefixClass}${table.className}Controller extends Abstra
#if ($sceneEnum.scene == 1)
@PreAuthorize("@ss.hasPermission('${permissionPrefix}:delete')")
#end
public CommonResult<Boolean> delete${simpleClassName}List(@RequestParam("ids") List<${primaryColumn.javaType}> ids) {
${classNameVar}Service.delete${simpleClassName}ListByIds(ids);
public CommonResult<Boolean> delete${simpleClassName}List(@RequestBody BatchDeleteReqVO req) {
${classNameVar}Service.delete${simpleClassName}ListByIds(req.getIds());
return success(true);
}
#end

View File

@@ -60,6 +60,14 @@ export const ${simpleClassName}Api = {
return await request.delete({ url: `${baseURL}/delete?id=` + id })
},
// 批量删除${table.classComment}
delete${simpleClassName}List: async (ids: IdType[]) => {
return await request.delete({
url: `${baseURL}/delete-list`,
data: { ids }
})
},
// 导出${table.classComment} Excel
export${simpleClassName}: async (params) => {
return await request.download({ url: `${baseURL}/export-excel`, params })

View File

@@ -13,4 +13,7 @@ public interface ErrorCodeConstants {
// ========== 合同 补充编号 ==========
ErrorCode DEMO_CONTRACT_NOT_EXISTS = new ErrorCode(2_100_000_000, "合同不存在");
// ========== 虚拟化表格 1_100_000_001 ==========
ErrorCode DEMO_VIRTUALIZED_TABLE_NOT_EXISTS = new ErrorCode(1_100_000_001, "虚拟化表格不存在");
}

View File

@@ -1,43 +1,42 @@
package cn.iocoder.yudao.module.template.controller.admin.contract;
import org.springframework.web.bind.annotation.*;
import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
import cn.iocoder.yudao.framework.business.annotation.FileUploadController;
import cn.iocoder.yudao.framework.business.controller.AbstractFileUploadController;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import jakarta.validation.constraints.*;
import jakarta.validation.*;
import jakarta.servlet.http.*;
import java.util.*;
import java.io.IOException;
import cn.iocoder.yudao.framework.business.interceptor.BusinessControllerMarker;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.pojo.vo.BatchDeleteReqVO;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
import cn.iocoder.yudao.module.template.controller.admin.contract.vo.*;
import cn.iocoder.yudao.module.template.controller.admin.contract.vo.DemoContractPageReqVO;
import cn.iocoder.yudao.module.template.controller.admin.contract.vo.DemoContractRespVO;
import cn.iocoder.yudao.module.template.controller.admin.contract.vo.DemoContractSaveReqVO;
import cn.iocoder.yudao.module.template.dal.dataobject.contract.DemoContractDO;
import cn.iocoder.yudao.module.template.service.contract.DemoContractService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.io.IOException;
import java.util.List;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@Tag(name = "管理后台 - 合同")
@RestController
@RequestMapping("/template/demo-contract")
@Validated
@FileUploadController(source = "template.contract")
public class DemoContractController extends AbstractFileUploadController {
public class DemoContractController extends AbstractFileUploadController implements BusinessControllerMarker{
static {
FileUploadController annotation = DemoContractController.class.getAnnotation(FileUploadController.class);
@@ -77,8 +76,8 @@ public class DemoContractController extends AbstractFileUploadController {
@Parameter(name = "ids", description = "编号", required = true)
@Operation(summary = "批量删除合同")
@PreAuthorize("@ss.hasPermission('template:demo-contract:delete')")
public CommonResult<Boolean> deleteDemoContractList(@RequestParam("ids") List<Long> ids) {
demoContractService.deleteDemoContractListByIds(ids);
public CommonResult<Boolean> deleteDemoContractList(@RequestBody BatchDeleteReqVO req) {
demoContractService.deleteDemoContractListByIds(req.getIds());
return success(true);
}

View File

@@ -17,13 +17,13 @@ public class DemoContractPageReqVO extends PageParam {
@Schema(description = "合同编号")
private String code;
@Schema(description = "合同名称", example = "赵六")
@Schema(description = "合同名称", example = "李四")
private String name;
@Schema(description = "合同状态", example = "2")
@Schema(description = "合同状态", example = "1")
private Short status;
@Schema(description = "流程实例ID", example = "10492")
@Schema(description = "流程实例ID", example = "7282")
private Long processInstanceId;
@Schema(description = "签订日期")
@@ -41,11 +41,14 @@ public class DemoContractPageReqVO extends PageParam {
@Schema(description = "合同金额")
private BigDecimal amount;
@Schema(description = "备注", example = "你说的对")
@Schema(description = "备注", example = "随便")
private String remark;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
@Schema(description = "岗位ID", example = "26779")
private Long postId;
}

Some files were not shown because too many files have changed in this diff Show More