|
@@ -2,7 +2,7 @@
|
2
|
2
|
* @Author: ysh
|
3
|
3
|
* @Date: 2025-05-07 11:01:39
|
4
|
4
|
* @LastEditors: Please set LastEditors
|
5
|
|
- * @LastEditTime: 2025-05-20 17:08:40
|
|
5
|
+ * @LastEditTime: 2025-05-21 09:17:51
|
6
|
6
|
-->
|
7
|
7
|
<template>
|
8
|
8
|
<div class="main" v-loading="loading">
|
|
@@ -219,10 +219,29 @@
|
219
|
219
|
<td style="text-align:right;"><b>{{ isNaN(budgetForm.totalBudget) ? 0 : budgetForm.totalBudget }}</b></td>
|
220
|
220
|
<td style="text-align:right;"><b>{{ isNaN(totalBudgetAdjust) ? 0 : totalBudgetAdjust }}</b></td>
|
221
|
221
|
<td style="text-align:right;"><b>{{ (Number(totalBudgetAdjust) - Number(budgetForm.totalBudget)).toFixed(2)
|
222
|
|
- }}</b></td>
|
|
222
|
+ }}</b></td>
|
223
|
223
|
</tr>
|
224
|
224
|
</table>
|
225
|
225
|
</el-descriptions-item>
|
|
226
|
+ <el-descriptions-item label="合同总价" :span="3" v-hasRole="['leader', 'finance', 'nfinance', 'admin']">
|
|
227
|
+ <table border="1" style="width:100%;" v-if="contractList.length > 0">
|
|
228
|
+ <tr style="background-color:#f8f8f9">
|
|
229
|
+ <td>序号</td>
|
|
230
|
+ <td>合同名称</td>
|
|
231
|
+ <td>合同总价</td>
|
|
232
|
+ </tr>
|
|
233
|
+ <tr v-for="contract, index in contractList" :key="contract.contractId">
|
|
234
|
+ <td>{{ index + 1 }}</td>
|
|
235
|
+ <td>{{ contract.contractName }}</td>
|
|
236
|
+ <td>{{ contract.amount }}</td>
|
|
237
|
+ </tr>
|
|
238
|
+ </table>
|
|
239
|
+ <div v-else>
|
|
240
|
+ <div class="alert alert-warning">
|
|
241
|
+ 暂无合同信息
|
|
242
|
+ </div>
|
|
243
|
+ </div>
|
|
244
|
+ </el-descriptions-item>
|
226
|
245
|
<el-descriptions-item label="核算说明" :span="3">
|
227
|
246
|
<div v-if="taskName == '核算编制' && !checkForm.checkComment" class="alert alert-warning"
|
228
|
247
|
style="padding: 10px; border: 1px solid #f0ad4e; background-color: #fcf8e3; color: #8a6d3b;">
|
|
@@ -329,6 +348,8 @@ import { getCar } from "@/api/oa/car/car";
|
329
|
348
|
import { getDevice } from "@/api/oa/device/device";
|
330
|
349
|
import { complete, getNextFlowNode } from "@/api/flowable/todo";
|
331
|
350
|
import { getUsersManageLeader, getUserByPost, getUsersViceDeptLeaderByDept } from "@/api/system/post";
|
|
351
|
+import { listProjectContract } from "@/api/oa/contract/projectContract";
|
|
352
|
+import { getContract } from "@/api/oa/contract/contract";
|
332
|
353
|
import InnerStaffCost from './components/InnerStaffCost.vue';
|
333
|
354
|
import OuterStaffCost from './components/OuterStaffCost.vue';
|
334
|
355
|
import CarCost from './components/CarCost.vue';
|
|
@@ -372,12 +393,12 @@ export default {
|
372
|
393
|
this.row.projectId = res.data.projectId;
|
373
|
394
|
this.initBudgetForm();
|
374
|
395
|
this.initCheckForm();
|
375
|
|
- // this.getProjectWorkList();
|
|
396
|
+ this.getContractInfo();
|
376
|
397
|
});
|
377
|
398
|
} else {
|
378
|
399
|
this.initBudgetForm();
|
379
|
400
|
this.initCheckForm();
|
380
|
|
- // this.getProjectWorkList();
|
|
401
|
+ this.getContractInfo();
|
381
|
402
|
}
|
382
|
403
|
|
383
|
404
|
}
|
|
@@ -411,7 +432,9 @@ export default {
|
411
|
432
|
deviceList: [],
|
412
|
433
|
carList: [],
|
413
|
434
|
participateList: []
|
414
|
|
- }
|
|
435
|
+ },
|
|
436
|
+ contractList: [],
|
|
437
|
+ contract: {}
|
415
|
438
|
}
|
416
|
439
|
},
|
417
|
440
|
async created() {
|
|
@@ -421,6 +444,7 @@ export default {
|
421
|
444
|
}
|
422
|
445
|
this.initBudgetForm();
|
423
|
446
|
this.initCheckForm();
|
|
447
|
+ this.getContractInfo();
|
424
|
448
|
},
|
425
|
449
|
methods: {
|
426
|
450
|
initBudgetForm() {
|
|
@@ -606,6 +630,18 @@ export default {
|
606
|
630
|
}
|
607
|
631
|
})
|
608
|
632
|
},
|
|
633
|
+ // 获取合同信息
|
|
634
|
+ getContractInfo() {
|
|
635
|
+ listProjectContract({ projectId: this.row.projectId }).then(res => {
|
|
636
|
+ let contractIds = res.rows;
|
|
637
|
+ this.contractList = [];
|
|
638
|
+ for (let contractId of contractIds) {
|
|
639
|
+ getContract(contractId.contractId).then(response => {
|
|
640
|
+ this.contractList.push(response.data);
|
|
641
|
+ })
|
|
642
|
+ }
|
|
643
|
+ })
|
|
644
|
+ },
|
609
|
645
|
async initActualInfo(project) {
|
610
|
646
|
let deviceIds = project.devices.split(',');
|
611
|
647
|
let carIds = project.cars.split(',');
|