feat(manager/plans + biz-project): 审核 dialog 项目编号改远程 el-select
后端 (BizProjectController):
- 新增 GET /business/project/projectNoOptions
- 返回 [{projectNo, projectName}], 仅 project_no 非空, 按 projectNo 倒序
- 不加 @PreAuthorize (manager 是业务角色, 与 specialPlan/options 一致)
前端 (manager/Plans.vue):
- 模板: 项目编号 el-input → el-select (filterable, 显示 projectNo / projectName)
- script: 加 projectNoOptions ref + loadProjectNoOptions() 函数
- onAudit: 每次打开 dialog 调 loadProjectNoOptions 拿最新 options
This commit is contained in:
+22
@@ -84,6 +84,28 @@ public class BizProjectController extends BaseController
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 项目编号下拉选项 (供 manager/Plans 审核 dialog "通过时" 选项目编号用)
|
||||
* 返回 [{projectNo, projectName}], 仅 project_no 非空的项目, 按 project_no DESC
|
||||
* 注: 不加 @PreAuthorize, 与 BizSpecialPlanController.options 一致 — manager 是业务角色
|
||||
*/
|
||||
@GetMapping("/projectNoOptions")
|
||||
public AjaxResult projectNoOptions()
|
||||
{
|
||||
List<BizProject> all = bizProjectService.selectList(new BizProject());
|
||||
java.util.List<java.util.Map<String, Object>> opts = new java.util.ArrayList<>();
|
||||
for (BizProject p : all) {
|
||||
if (p.getProjectNo() == null || p.getProjectNo().isEmpty()) continue;
|
||||
java.util.Map<String, Object> m = new java.util.LinkedHashMap<>();
|
||||
m.put("projectNo", p.getProjectNo());
|
||||
m.put("projectName", p.getProjectName());
|
||||
opts.add(m);
|
||||
}
|
||||
// 按 projectNo 倒序 (新 → 旧)
|
||||
opts.sort((a, b) -> String.valueOf(b.get("projectNo")).compareTo(String.valueOf(a.get("projectNo"))));
|
||||
return success(opts);
|
||||
}
|
||||
|
||||
/**
|
||||
* sponsor 专属项目列表 (按当前登录 sponsor 的 user_id 过滤)
|
||||
* GET /business/project/sponsorList
|
||||
|
||||
Reference in New Issue
Block a user