销售合同清单明细
parent
b313dd6f6b
commit
b115b252ee
src/main
java/cn/palmte/work/controller/backend
resources/templates/admin/business
|
@ -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 <a href="https://github.com/TAKETODAY">Harry Yang</a>
|
||||
|
@ -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<ProjectBudgetIncomeDetail> 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) {
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -229,24 +229,25 @@
|
|||
<div class="am-u-sm-12 am-u-md-12" v-if="isSaleContractDetailMode">
|
||||
<el-table border :data="businessPurchaseDetails">
|
||||
<el-table-column type="index" :index="1" label="序号"></el-table-column>
|
||||
<el-table-column prop="fee" label="类别"></el-table-column>
|
||||
<el-table-column prop="fee" label="名称"></el-table-column>
|
||||
<el-table-column prop="fee" label="规格型号"></el-table-column>
|
||||
<el-table-column prop="fee" label="参数"></el-table-column>
|
||||
<el-table-column prop="fee" label="单位"></el-table-column>
|
||||
<el-table-column prop="fee" label="数量"></el-table-column>
|
||||
<el-table-column prop="fee" label="单价"></el-table-column>
|
||||
<el-table-column prop="fee" label="税率"></el-table-column>
|
||||
<el-table-column prop="fee" label="含税金额"></el-table-column>
|
||||
<el-table-column prop="fee" label="不含税金额"></el-table-column>
|
||||
<el-table-column prop="fee" label="含税总金额"></el-table-column>
|
||||
<el-table-column prop="type" label="类别"></el-table-column>
|
||||
<el-table-column prop="name" label="名称"></el-table-column>
|
||||
<el-table-column prop="spec" label="规格型号"></el-table-column>
|
||||
<el-table-column prop="param" label="参数"></el-table-column>
|
||||
<el-table-column prop="unit" label="单位"></el-table-column>
|
||||
<el-table-column prop="amount" label="数量"></el-table-column>
|
||||
<el-table-column prop="price" label="单价"></el-table-column>
|
||||
<el-table-column prop="taxRate" label="税率"></el-table-column>
|
||||
<el-table-column prop="totalTaxInclude" label="含税金额"></el-table-column>
|
||||
<el-table-column prop="totalTaxExclude" label="不含税金额"></el-table-column>
|
||||
<el-table-column prop="totalTax" label="含税总金额"></el-table-column>
|
||||
<el-table-column prop="fee" label="税金"></el-table-column>
|
||||
<el-table-column prop="fee" label="质保期"></el-table-column>
|
||||
<el-table-column prop="expirationDate" label="质保期"></el-table-column>
|
||||
|
||||
</el-table>
|
||||
|
||||
<el-row justify="space-around" type="flex" style="margin: 20px">
|
||||
<el-button type="info" @click="goToSaleContractProcess">保存并返回上一级</el-button>
|
||||
<el-row style="margin: 20px 0">
|
||||
<el-button type="info" @click="goToSaleContractProcess">返回上一级</el-button>
|
||||
<el-button type="primary" @click="submitToSaleContractProcess">保存并返回上一级</el-button>
|
||||
</el-row>
|
||||
|
||||
</div>
|
||||
|
@ -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);
|
||||
},
|
||||
|
|
Loading…
Reference in New Issue