From b115b252ee358430c1ba3bc4d9dae21968591119 Mon Sep 17 00:00:00 2001 From: Harry Yang Date: Tue, 13 Dec 2022 18:16:15 +0800 Subject: [PATCH] =?UTF-8?q?=E9=94=80=E5=94=AE=E5=90=88=E5=90=8C=E6=B8=85?= =?UTF-8?q?=E5=8D=95=E6=98=8E=E7=BB=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/backend/ProcessController.java | 34 +++++++- .../templates/admin/business/process-new.ftl | 85 +++++++++++++------ 2 files changed, 91 insertions(+), 28 deletions(-) diff --git a/src/main/java/cn/palmte/work/controller/backend/ProcessController.java b/src/main/java/cn/palmte/work/controller/backend/ProcessController.java index 734da7d..556dce4 100644 --- a/src/main/java/cn/palmte/work/controller/backend/ProcessController.java +++ b/src/main/java/cn/palmte/work/controller/backend/ProcessController.java @@ -19,9 +19,12 @@ import java.util.stream.Collectors; import cn.palmte.work.model.DeptRepository; import cn.palmte.work.model.Project; +import cn.palmte.work.model.ProjectBudgetIncomeDetail; import cn.palmte.work.model.ProjectRepository; import cn.palmte.work.model.enums.ProcessStatus; import cn.palmte.work.model.enums.SealType; +import cn.palmte.work.service.ProjectBudgetService; +import lombok.Setter; /** * @author Harry Yang @@ -34,10 +37,12 @@ public class ProcessController { private final DeptRepository deptRepository; private final ProjectRepository projectRepository; + private final ProjectBudgetService projectBudgetService; - public ProcessController(ProjectRepository projectRepository, DeptRepository deptRepository) { + public ProcessController(ProjectRepository projectRepository, DeptRepository deptRepository, ProjectBudgetService projectBudgetService) { this.projectRepository = projectRepository; this.deptRepository = deptRepository; + this.projectBudgetService = projectBudgetService; } static class FormMetadata { @@ -129,7 +134,7 @@ public class ProcessController { } // 销售合同流程 - + @Setter static class SaleContractForm { public Integer projectId; @@ -191,4 +196,29 @@ public class ProcessController { } + @ResponseBody + @GetMapping("/sale-contract-details/{id}") + public List queryProjectBudgetIncomeDetail(@PathVariable int id) { + Project project = new Project(); + project.setId(id); + return projectBudgetService.getBudgetIncomeDetail(project); + } + + @Setter + public static class SaleContractDetailForm { + + public int id; + + // 5 个字符 + public String expirationDate; + + } + + @ResponseBody + @PostMapping("/sale-contract-details") + public void saleContractDetails(SaleContractDetailForm form) { + + + } + } diff --git a/src/main/resources/templates/admin/business/process-new.ftl b/src/main/resources/templates/admin/business/process-new.ftl index 6eae1b4..122a687 100644 --- a/src/main/resources/templates/admin/business/process-new.ftl +++ b/src/main/resources/templates/admin/business/process-new.ftl @@ -229,24 +229,25 @@
- - - - - - - - - - - + + + + + + + + + + + - + - - 保存并返回上一级 + + 返回上一级 + 保存并返回上一级
@@ -590,14 +591,8 @@ } ], fileList: [], - businessPurchaseDetails: [ - { - fee: 100 - }, - { - fee: 200 - } - ], + saleContractDetails: [], + businessPurchaseDetails: [], showBusinessPurchaseDetails: false, } } @@ -620,6 +615,22 @@ }, goToSaleContractDetail() { this.changeMode(saleContractDetail) + const loading = this.$loading({ + lock: true, + text: '正在加载项目', + spinner: 'el-icon-loading', + background: 'rgba(0, 0, 0, 0.7)' + }) + + fetch("${base}/process/sale-contract-details/" + this.processForm.id) + .then(res => res.json()) + .then(data => { + this.businessPurchaseDetails = data + }) + .catch(err => { + this.$message.error("销售合同清单明细加载失败"); + }) + .finally(() => loading.close()) }, queryProject(q, callback) { @@ -635,10 +646,7 @@ }]) } else { - callback(data.map(project => ({ - name: project.name, - id: project.id, - }))) + callback(data) } }) .catch(err => { @@ -710,6 +718,31 @@ }) }, + submitToSaleContractProcess() { + const loading = this.$loading({ + lock: true, + text: '正在提交', + spinner: 'el-icon-loading', + background: 'rgba(0, 0, 0, 0.7)' + }) + + const processForm = this.processForm + fetch("${base}/process/sale-contract-details", { + method: 'POST', // or 'PUT' + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify(processForm), + }).then(response => { + this.goToSaleContractProcess() + + }).catch(err => { + this.$message.error("项目提交失败"); + }).finally(() => loading.close()) + + + }, + handleRemove(file, fileList) { console.log(file, fileList); },