Browse Source

预算和核算新增分包合同信息;

修改员工工资下载模版错误
余思翰 2 weeks ago
parent
commit
90986f691d

+ 56
- 21
oa-ui/src/views/flowable/form/budget/adjust/budgetAdjust.vue View File

@@ -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-21 09:17:51
5
+ * @LastEditTime: 2025-05-21 14:10:34
6 6
 -->
7 7
 <template>
8 8
   <div class="main" v-loading="loading">
@@ -158,6 +158,44 @@
158 158
       <el-descriptions-item label="现场开支" :span="3">
159 159
         <site-cost :siteList.sync="siteList" :taskName="taskName" @update:siteList="handleSiteChange"></site-cost>
160 160
       </el-descriptions-item>
161
+      <el-descriptions-item label="合同总价" :span="3" v-hasRole="['leader', 'finance', 'nfinance', 'admin']">
162
+        <table border="1" style="width:100%;" v-if="contractList.length > 0">
163
+          <tr style="background-color:#f8f8f9">
164
+            <td>序号</td>
165
+            <td>合同名称</td>
166
+            <td>合同总价</td>
167
+          </tr>
168
+          <tr v-for="contract, index in contractList" :key="contract.contractId">
169
+            <td>{{ index + 1 }}</td>
170
+            <td>{{ contract.contractName }}</td>
171
+            <td>{{ contract.amount }}</td>
172
+          </tr>
173
+        </table>
174
+        <div v-else>
175
+          <div class="alert alert-warning">
176
+            暂无合同信息
177
+          </div>
178
+        </div>
179
+      </el-descriptions-item>
180
+      <el-descriptions-item label="分包合同总价" :span="3" v-hasRole="['leader', 'finance', 'nfinance', 'admin']">
181
+        <table border="1" style="width:100%;" v-if="subContractList.length > 0">
182
+          <tr style="background-color:#f8f8f9">
183
+            <td>序号</td>
184
+            <td>分包合同名称</td>
185
+            <td>分包合同总价</td>
186
+          </tr>
187
+          <tr v-for="subContract, index in subContractList" :key="subContract.subContractId">
188
+            <td>{{ index + 1 }}</td>
189
+            <td>{{ subContract.subContractName }}</td>
190
+            <td>{{ subContract.subAmount }}</td>
191
+          </tr>
192
+        </table>
193
+        <div v-else>
194
+          <div class="alert alert-warning">
195
+            暂无分包合同信息
196
+          </div>
197
+        </div>
198
+      </el-descriptions-item>
161 199
       <el-descriptions-item label="经营相关" :span="3">
162 200
         <business-cost :budgetForm.sync="budgetForm" :taskName="taskName"
163 201
           @update:budgetForm="handleBusinessChange"></business-cost>
@@ -223,25 +261,6 @@
223 261
           </tr>
224 262
         </table>
225 263
       </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>
245 264
       <el-descriptions-item label="核算说明" :span="3">
246 265
         <div v-if="taskName == '核算编制' && !checkForm.checkComment" class="alert alert-warning"
247 266
           style="padding: 10px; border: 1px solid #f0ad4e; background-color: #fcf8e3; color: #8a6d3b;">
@@ -349,7 +368,9 @@ import { getDevice } from "@/api/oa/device/device";
349 368
 import { complete, getNextFlowNode } from "@/api/flowable/todo";
350 369
 import { getUsersManageLeader, getUserByPost, getUsersViceDeptLeaderByDept } from "@/api/system/post";
351 370
 import { listProjectContract } from "@/api/oa/contract/projectContract";
371
+import { listProjectSubcontract } from "@/api/oa/contract/projectSubcontract";
352 372
 import { getContract } from "@/api/oa/contract/contract";
373
+import { getSubContract } from "@/api/oa/contract/subContract";
353 374
 import InnerStaffCost from './components/InnerStaffCost.vue';
354 375
 import OuterStaffCost from './components/OuterStaffCost.vue';
355 376
 import CarCost from './components/CarCost.vue';
@@ -394,11 +415,13 @@ export default {
394 415
           this.initBudgetForm();
395 416
           this.initCheckForm();
396 417
           this.getContractInfo();
418
+          this.getSubContractInfo();
397 419
         });
398 420
       } else {
399 421
         this.initBudgetForm();
400 422
         this.initCheckForm();
401 423
         this.getContractInfo();
424
+        this.getSubContractInfo();
402 425
       }
403 426
 
404 427
     }
@@ -434,7 +457,7 @@ export default {
434 457
         participateList: []
435 458
       },
436 459
       contractList: [],
437
-      contract: {}
460
+      subContractList: [],
438 461
     }
439 462
   },
440 463
   async created() {
@@ -445,6 +468,7 @@ export default {
445 468
     this.initBudgetForm();
446 469
     this.initCheckForm();
447 470
     this.getContractInfo();
471
+    this.getSubContractInfo();
448 472
   },
449 473
   methods: {
450 474
     initBudgetForm() {
@@ -642,6 +666,17 @@ export default {
642 666
         }
643 667
       })
644 668
     },
669
+    getSubContractInfo() {
670
+      listProjectSubcontract({ projectId: this.row.projectId }).then(res => {
671
+        let subContractIds = res.rows;
672
+        this.subContractList = [];
673
+        for (let subContract of subContractIds) {
674
+          getSubContract(subContract.subContractId).then(response => {
675
+            this.subContractList.push(response.data);
676
+          })
677
+        }
678
+      })
679
+    },
645 680
     async initActualInfo(project) {
646 681
       let deviceIds = project.devices.split(',');
647 682
       let carIds = project.cars.split(',');

+ 37
- 2
oa-ui/src/views/flowable/form/budget/adjust/newBudgetInfo.vue View File

@@ -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-21 09:18:59
5
+ * @LastEditTime: 2025-05-21 14:16:47
6 6
 -->
7 7
 <template>
8 8
   <div class="main" v-loading="loading">
@@ -411,6 +411,25 @@
411 411
           </div>
412 412
         </div>
413 413
       </el-descriptions-item>
414
+      <el-descriptions-item label="分包合同总价" :span="3" v-hasRole="['leader', 'finance', 'nfinance', 'admin']">
415
+        <table border="1" style="width:100%;" v-if="subContractList.length > 0">
416
+          <tr style="background-color:#f8f8f9">
417
+            <td>序号</td>
418
+            <td>分包合同名称</td>
419
+            <td>分包合同总价</td>
420
+          </tr>
421
+          <tr v-for="subContract, index in subContractList" :key="subContract.subContractId">
422
+            <td>{{ index + 1 }}</td>
423
+            <td>{{ subContract.subContractName }}</td>
424
+            <td>{{ subContract.subAmount }}</td>
425
+          </tr>
426
+        </table>
427
+        <div v-else>
428
+          <div class="alert alert-warning">
429
+            暂无分包合同信息
430
+          </div>
431
+        </div>
432
+      </el-descriptions-item>
414 433
       <el-descriptions-item label="分管领导审核意见" :span="3">
415 434
         <div v-if="taskName == '分管审核' && !budgetForm.managerComment" class="alert alert-warning"
416 435
           style="padding: 10px; border: 1px solid #f0ad4e; background-color: #fcf8e3; color: #8a6d3b;">
@@ -466,7 +485,9 @@ import { getProject } from "@/api/oa/project/project";
466 485
 import { getUsersManageLeader, getUserByPost } from "@/api/system/post";
467 486
 import { complete, getNextFlowNode } from "@/api/flowable/todo";
468 487
 import { listProjectContract } from "@/api/oa/contract/projectContract";
488
+import { listProjectSubcontract } from "@/api/oa/contract/projectSubcontract";
469 489
 import { getContract } from "@/api/oa/contract/contract";
490
+import { getSubContract } from "@/api/oa/contract/subContract";
470 491
 import InnerStaffCost from './components/InnerStaffCost.vue';
471 492
 import OuterStaffCost from './components/OuterStaffCost.vue';
472 493
 import CarCost from './components/CarCost.vue';
@@ -497,6 +518,7 @@ export default {
497 518
       this.initBudgetForm();
498 519
       this.getProjectWorkList();
499 520
       this.getContractInfo();
521
+      this.getSubContractInfo();
500 522
     }
501 523
   },
502 524
   data() {
@@ -515,12 +537,14 @@ export default {
515 537
       returnOpen: false,
516 538
       contractList: [],
517 539
       showAlter: true,
540
+      subContractList: [],
518 541
     }
519 542
   },
520 543
   created() {
521 544
     this.initBudgetForm();
522 545
     this.getProjectWorkList();
523 546
     this.getContractInfo();
547
+    this.getSubContractInfo();
524 548
   },
525 549
   methods: {
526 550
     initBudgetForm() {
@@ -641,6 +665,17 @@ export default {
641 665
         }
642 666
       })
643 667
     },
668
+    getSubContractInfo() {
669
+      listProjectSubcontract({ projectId: this.taskForm.formId }).then(res => {
670
+        let subContractIds = res.rows;
671
+        this.subContractList = [];
672
+        for (let subContract of subContractIds) {
673
+          getSubContract(subContract.subContractId).then(response => {
674
+            this.subContractList.push(response.data);
675
+          })
676
+        }
677
+      })
678
+    },
644 679
     safeNumber(value) {
645 680
       const num = Number(value);
646 681
       return isNaN(num) ? 0 : num;
@@ -846,7 +881,7 @@ table {
846 881
 }
847 882
 
848 883
 .total-budget {
849
-  font-size: 1.5em;
884
+  font-size: 16px;
850 885
   font-weight: bold;
851 886
   color: #4CAF50;
852 887
   text-align: center;

+ 1
- 4
oa-ui/src/views/oa/wage/index.vue View File

@@ -420,14 +420,11 @@ export default {
420 420
     },
421 421
     /* 下载模板 */
422 422
     importTemplate() {
423
-      // const path = "http://127.0.0.1:8080/profile/template/userWage.xlsx"
424
-      const path = `${baseUrl}${'/profile/upload/template/userWage.xlsx'}`
423
+      const path = '/profile/upload/template/userWage.xlsx'
425 424
       downloadTemplate(path).then(res => {
426 425
         const blob = new Blob([res])
427 426
         saveAs(blob, '社保公积金模版.xlsx');
428 427
       });
429
-      // this.download("file/achievement/importTemplate", {
430
-      // }, `成果表模板.xlsx`);
431 428
     },
432 429
   }
433 430
 };

Loading…
Cancel
Save