瀏覽代碼

修改合同、分包合同添加数据先后顺序乱序的问题;

新增项目流转添加等待执行后再新增功能
余思翰 6 月之前
父節點
當前提交
e0bf7e0ea4

+ 56
- 23
oa-ui/src/views/flowable/form/business/contractForm.vue 查看文件

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-05-10 15:31:57
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-09-04 17:19:17
5
+ * @LastEditTime: 2024-09-29 11:01:48
6 6
 -->
7 7
 <template>
8 8
   <div class="app-container">
@@ -87,7 +87,8 @@
87 87
             </el-form-item>
88 88
           </el-row>
89 89
           <el-form-item label="关联分包合同">
90
-            <el-button type="primary" size="mini" @click="subOpen = true" icon="el-icon-plus" v-if="taskName == '合同拟稿'">新增分包合同</el-button>
90
+            <el-button type="primary" size="mini" @click="subOpen = true" icon="el-icon-plus"
91
+              v-if="taskName == '合同拟稿'">新增分包合同</el-button>
91 92
             <el-table v-loading="subloading" border :data="connectSubContractList">
92 93
               <el-table-column type="index" label="序号" width="55" align="center" />
93 94
               <el-table-column label="合同名称" align="center" prop="subContractName" />
@@ -96,7 +97,7 @@
96 97
               <el-table-column label="操作" align="center">
97 98
                 <template slot-scope="scope">
98 99
                   <el-button type="text" icon="el-icon-view" @click="clickSubFn(scope.row)">查看</el-button>
99
-                  <el-button type="text" style="color:#F56C6C;" icon="el-icon-delete"  v-if="taskName == '合同拟稿'"
100
+                  <el-button type="text" style="color:#F56C6C;" icon="el-icon-delete" v-if="taskName == '合同拟稿'"
100 101
                     @click="handleDeleteSub(scope.$index, scope.row)">删除</el-button>
101 102
                 </template>
102 103
               </el-table-column>
@@ -417,7 +418,7 @@ export default {
417 418
     FileItem,
418 419
     ChoosePartyA,
419 420
     workTable,
420
-    paymentTable, projectInfo,ChooseSubcontract,subContract
421
+    paymentTable, projectInfo, ChooseSubcontract, subContract
421 422
   },
422 423
   props: {
423 424
     taskName: {
@@ -467,12 +468,12 @@ export default {
467 468
       // 遮罩层
468 469
       loading: true,
469 470
       projectloading: true,
470
-      subloading:true,
471
+      subloading: true,
471 472
       // 弹出层标题
472 473
       title: "",
473 474
       // 是否显示弹出层
474 475
       open: false,
475
-      subOpen:false,
476
+      subOpen: false,
476 477
       tbOpen: false,
477 478
       partyAOpen: false,
478 479
       // 表单参数
@@ -491,9 +492,9 @@ export default {
491 492
       meetingOpen: false,
492 493
       commentOpen: false,
493 494
       drawerOpen: false,
494
-      subInfoOpen:false,
495
+      subInfoOpen: false,
495 496
       chooseProjectList: [],
496
-      connectSubContractList:[],
497
+      connectSubContractList: [],
497 498
       partyAList: [],
498 499
       projectList: [],
499 500
       deptList: [],
@@ -538,8 +539,8 @@ export default {
538 539
       formTotal: 0,
539 540
       flowData: {},
540 541
       clickTd: {},
541
-      subContractId:{
542
-        formId:''
542
+      subContractId: {
543
+        formId: ''
543 544
       }
544 545
     };
545 546
   },
@@ -1009,24 +1010,56 @@ export default {
1009 1010
         }
1010 1011
       });
1011 1012
     },
1013
+    // updateContractData() {
1014
+    //   this.workList = this.$refs.workTableRef.workList;
1015
+    //   this.paymentList = this.$refs.paymentRef.paymentList;
1016
+    //   updateContract(this.form).then(response => {
1017
+    //     this.$modal.msgSuccess("修改成功");
1018
+    //     this.open = false;
1019
+    //     delContractWork(this.form.contractId).then(res => {
1020
+    //       for (let work of this.workList) {
1021
+    //         work.contractId = this.form.contractId
1022
+    //         addContractWork(work);
1023
+    //       }
1024
+    //     })
1025
+    //     delContractPayment(this.form.contractId).then(res => {
1026
+    //       for (let payment of this.paymentList) {
1027
+    //         payment.contractId = this.form.contractId
1028
+    //         addContractPayment(payment);
1029
+    //       }
1030
+    //     })
1031
+    //   });
1032
+    // },
1012 1033
     updateContractData() {
1013 1034
       this.workList = this.$refs.workTableRef.workList;
1014 1035
       this.paymentList = this.$refs.paymentRef.paymentList;
1015 1036
       updateContract(this.form).then(response => {
1016 1037
         this.$modal.msgSuccess("修改成功");
1017 1038
         this.open = false;
1018
-        delContractWork(this.form.contractId).then(res => {
1019
-          for (let work of this.workList) {
1020
-            work.contractId = this.form.contractId
1021
-            addContractWork(work);
1022
-          }
1023
-        })
1024
-        delContractPayment(this.form.contractId).then(res => {
1025
-          for (let payment of this.paymentList) {
1026
-            payment.contractId = this.form.contractId
1027
-            addContractPayment(payment);
1028
-          }
1029
-        })
1039
+        // 删除合同的工作和支付信息,并等待两个操作完成
1040
+        Promise.all([
1041
+          delContractWork(this.form.contractId),
1042
+          delContractPayment(this.form.contractId)
1043
+        ]).then(([workRes, paymentRes]) => {
1044
+          // 添加工作信息
1045
+          const workPromises = this.workList.map(work => {
1046
+            work.contractId = this.form.contractId;
1047
+            return addContractWork(work);
1048
+          });
1049
+          // 添加支付信息
1050
+          const paymentPromises = this.paymentList.map(payment => {
1051
+            payment.contractId = this.form.contractId;
1052
+            return addContractPayment(payment);
1053
+          });
1054
+          // 等待所有添加操作完成
1055
+          return Promise.all([...workPromises, ...paymentPromises]);
1056
+        }).then(() => {
1057
+          this.$modal.msgSuccess("计划工作量和回款计划添加成功");
1058
+        }).catch(error => {
1059
+          this.$modal.msgError("操作失败: " + error.message);
1060
+        });
1061
+      }).catch(error => {
1062
+        this.$modal.msgError("合同更新失败: " + error.message);
1030 1063
       });
1031 1064
     },
1032 1065
     updateRelatedProject() {
@@ -1130,7 +1163,7 @@ export default {
1130 1163
         this.$set(this.form, 'partyAId', val[0].partyAId)
1131 1164
       }
1132 1165
     },
1133
-    async confirmSubContract(val){
1166
+    async confirmSubContract(val) {
1134 1167
       let isSame = this.haveSameIds(val, this.connectSubContractList, 'subContractId');
1135 1168
       if (isSame) {
1136 1169
         this.$message.error('请勿重复添加已有的分包合同')

+ 48
- 17
oa-ui/src/views/flowable/form/business/subContract.vue 查看文件

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-05-10 15:31:57
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-09-05 10:39:05
5
+ * @LastEditTime: 2024-09-29 11:15:09
6 6
 -->
7 7
 <template>
8 8
   <div class="app-container">
@@ -813,7 +813,7 @@ export default {
813 813
       return true;
814 814
     },
815 815
     // 保存信息
816
-    saves() {
816
+    async saves() {
817 817
       this.workList = this.$refs.workTableRef.workList;
818 818
       this.paymentList = this.$refs.paymentRef.paymentList;
819 819
       if (this.formTotal != 0) {
@@ -841,11 +841,11 @@ export default {
841 841
         })
842 842
         for (let work of this.workList) {
843 843
           work.contractId = subContractId;
844
-          addContractWork(work);
844
+          await addContractWork(work);
845 845
         }
846 846
         for (let payment of this.paymentList) {
847 847
           payment.contractId = subContractId;
848
-          addContractPayment(payment);
848
+          await addContractPayment(payment);
849 849
         }
850 850
         const params = { taskId: this.taskForm.taskId };
851 851
         getNextFlowNode(params).then(res => {
@@ -987,27 +987,58 @@ export default {
987 987
         handleComplete(this.taskForm);
988 988
       }
989 989
     },
990
-    updateChooseProjectList() {
990
+    // updateChooseProjectList() {
991
+    //   this.workList = this.$refs.workTableRef.workList;
992
+    //   this.paymentList = this.$refs.paymentRef.paymentList;
993
+    //   const subContractId = this.taskForm.formId
994
+    //   delProjectSubcontract(subContractId).then(() => {
995
+    //     this.chooseProjectList.forEach(item => {
996
+    //       addProjectSubcontract({ subContractId: subContractId, projectId: item.projectId })
997
+    //     })
998
+    //   })
999
+    //   delContractWork(subContractId).then(() => {
1000
+    //     for (let work of this.workList) {
1001
+    //       work.contractId = subContractId;
1002
+    //       addContractWork(work);
1003
+    //     }
1004
+    //   })
1005
+    //   delContractPayment(subContractId).then(() => {
1006
+    //     for (let payment of this.paymentList) {
1007
+    //       payment.contractId = subContractId;
1008
+    //       addContractPayment(payment);
1009
+    //     }
1010
+    //   })
1011
+    // },
1012
+    async updateChooseProjectList() {
991 1013
       this.workList = this.$refs.workTableRef.workList;
992 1014
       this.paymentList = this.$refs.paymentRef.paymentList;
993
-      const subContractId = this.taskForm.formId
994
-      delProjectSubcontract(subContractId).then(() => {
995
-        this.chooseProjectList.forEach(item => {
996
-          addProjectSubcontract({ subContractId: subContractId, projectId: item.projectId })
997
-        })
998
-      })
999
-      delContractWork(subContractId).then(() => {
1015
+      const subContractId = this.taskForm.formId;
1016
+      try {
1017
+        // 删除项目分包合同
1018
+        await delProjectSubcontract(subContractId);
1019
+        // 添加新的项目分包合同
1020
+        for (let item of this.chooseProjectList) {
1021
+          await addProjectSubcontract({ subContractId: subContractId, projectId: item.projectId });
1022
+        }
1023
+        // 删除合同工作
1024
+        await delContractWork(subContractId);
1025
+        // 添加新的合同工作
1000 1026
         for (let work of this.workList) {
1001 1027
           work.contractId = subContractId;
1002
-          addContractWork(work);
1028
+          await addContractWork(work);
1003 1029
         }
1004
-      })
1005
-      delContractPayment(subContractId).then(() => {
1030
+        // 删除合同付款
1031
+        await delContractPayment(subContractId);
1032
+        // 添加新的合同付款
1006 1033
         for (let payment of this.paymentList) {
1007 1034
           payment.contractId = subContractId;
1008
-          addContractPayment(payment);
1035
+          await addContractPayment(payment);
1009 1036
         }
1010
-      })
1037
+        this.$modal.msgSuccess("更新成功");
1038
+      } catch (error) {
1039
+        console.error("更新选择项目列表时出错:", error);
1040
+        this.$modal.msgError("更新失败");
1041
+      }
1011 1042
     },
1012 1043
     // 确定合作单位
1013 1044
     confirmPartners(val) {

+ 8
- 9
oa-ui/src/views/flowable/form/projectProcess/addproject.vue 查看文件

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-03-18 11:00:04
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-09-06 09:48:03
5
+ * @LastEditTime: 2024-09-29 11:47:57
6 6
 -->
7 7
 <template>
8 8
   <div class="project-wrapper">
@@ -120,7 +120,7 @@
120 120
 <script>
121 121
 import { parseTime } from "@/utils/ruoyi";
122 122
 import { mapGetters } from "vuex";
123
-import { listProject, getProject, addProject, updateProject, delProject, getProjectNmuber,sendMessage } from "@/api/oa/project/project";
123
+import { listProject, getProject, addProject, updateProject, delProject, getProjectNmuber, sendMessage } from "@/api/oa/project/project";
124 124
 import { listDept } from '@/api/system/dept'
125 125
 import { getUser } from "@/api/system/user";
126 126
 import { getUsersDeptLeaderByDept } from "@/api/system/post";
@@ -325,15 +325,14 @@ export default {
325 325
       }
326 326
       this.openContract = false;
327 327
     },
328
-    updatePlanWorkload() {
328
+    async updatePlanWorkload() {
329 329
       const workList = this.$refs.planworkRef.workList;
330 330
       const projectId = this.taskForm.formId
331
-      delProjectWork(projectId).then(() => {
332
-        workList.forEach(work => {
333
-          work.projectId = projectId;
334
-          addProjectWork(work);
335
-        })
336
-      })
331
+      await delProjectWork(projectId)
332
+      for (let work of workList) {
333
+        work.projectId = projectId;
334
+        await addProjectWork(work);
335
+      }
337 336
     },
338 337
     // 暂存
339 338
     async save() {

+ 8
- 9
oa-ui/src/views/flowable/form/projectProcess/assessWork.vue 查看文件

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-07-08 16:16:27
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-09-05 16:54:57
5
+ * @LastEditTime: 2024-09-29 10:40:31
6 6
 -->
7 7
 <template>
8 8
   <div class="app-container">
@@ -159,14 +159,13 @@ export default {
159 159
       }
160 160
     },
161 161
     // 更新工作量
162
-    updateWorkList() {
163
-      delProjectWork(this.taskForm.formId).then(res => {
164
-        this.workList.forEach(work => {
165
-          work.projectId = this.taskForm.formId;
166
-          addProjectWork(work);
167
-        })
168
-        this.$message.success('保存成功')
169
-      })
162
+    async updateWorkList() {
163
+      await delProjectWork(this.taskForm.formId)
164
+      for (let work of this.workList) {
165
+        work.projectId = this.taskForm.formId;
166
+        await addProjectWork(work);
167
+      }
168
+      this.$message.success('保存成功')
170 169
     },
171 170
     // 保存按钮
172 171
     save() {

+ 2
- 2
oa-ui/src/views/flowable/form/technicalForm.vue 查看文件

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-07-04 17:37:29
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-09-27 16:49:03
5
+ * @LastEditTime: 2024-09-27 17:08:06
6 6
 -->
7 7
 <template>
8 8
   <div class="app-container">
@@ -108,7 +108,7 @@
108 108
           </el-row>
109 109
         </el-form>
110 110
         <div style="text-align: center;" v-if="taskName">
111
-          <el-button type="danger" @click="returnOpen = true">退 回</el-button>
111
+          <el-button type="danger" @click="returnOpen = true" v-show="taskName != '技术交底'">退 回</el-button>
112 112
           <el-button type="primary" @click="submitForm">提 交</el-button>
113 113
         </div>
114 114
       </el-col>

+ 24
- 12
oa-ui/src/views/oa/contract/components/edit.vue 查看文件

@@ -406,18 +406,30 @@ export default {
406 406
       updateContract(this.form).then(response => {
407 407
         this.$modal.msgSuccess("修改成功");
408 408
         this.open = false;
409
-        delContractWork(this.form.contractId).then(res => {
410
-          for (let work of this.workList) {
411
-            work.contractId = this.form.contractId
412
-            addContractWork(work);
413
-          }
414
-        })
415
-        delContractPayment(this.form.contractId).then(res => {
416
-          for (let payment of this.paymentList) {
417
-            payment.contractId = this.form.contractId
418
-            addContractPayment(payment);
419
-          }
420
-        })
409
+        // 删除合同的工作和支付信息,并等待两个操作完成
410
+        Promise.all([
411
+          delContractWork(this.form.contractId),
412
+          delContractPayment(this.form.contractId)
413
+        ]).then(([workRes, paymentRes]) => {
414
+          // 添加工作信息
415
+          const workPromises = this.workList.map(work => {
416
+            work.contractId = this.form.contractId;
417
+            return addContractWork(work);
418
+          });
419
+          // 添加支付信息
420
+          const paymentPromises = this.paymentList.map(payment => {
421
+            payment.contractId = this.form.contractId;
422
+            return addContractPayment(payment);
423
+          });
424
+          // 等待所有添加操作完成
425
+          return Promise.all([...workPromises, ...paymentPromises]);
426
+        }).then(() => {
427
+          this.$modal.msgSuccess("计划工作量和回款计划添加成功");
428
+        }).catch(error => {
429
+          this.$modal.msgError("操作失败: " + error.message);
430
+        });
431
+      }).catch(error => {
432
+        this.$modal.msgError("合同更新失败: " + error.message);
421 433
       });
422 434
     },
423 435
     async updateRelatedProject() {

+ 58
- 25
oa-ui/src/views/oa/contract/components/subEdit.vue 查看文件

@@ -242,6 +242,7 @@ export default {
242 242
       // this.init();
243 243
       this.getContractSubcontractList();
244 244
       this.getProjectSubcontractList();
245
+      this.form.partnerId = this.form.partnerId ? this.form.partnerId.split(',') : null;
245 246
     }
246 247
   },
247 248
   created() {
@@ -256,7 +257,7 @@ export default {
256 257
       this.getContractCommentList();
257 258
       this.getProjectSubcontractList();
258 259
     },
259
-    getContractCommentList(){
260
+    getContractCommentList() {
260 261
       const subContractId = this.form.subContractId;
261 262
       listContractComment({ pageNum: 1, pageSize: 100, contractId: subContractId }).then(res => {
262 263
         if (res.rows && res.rows.length != 0) {
@@ -282,14 +283,13 @@ export default {
282 283
     getContractSubcontractList() {
283 284
       this.contractloading = true;
284 285
       const subContractId = this.form.subContractId;
285
-      if(!subContractId) return
286
+      if (!subContractId) return
286 287
       listContractSubcontract({ subContractId: subContractId }).then(async res => {
287 288
         let list = []
288 289
         for (let r of res.rows) {
289 290
           let obj = await getContract(r.contractId)
290 291
           list.push(obj.data)
291 292
         }
292
-        console.log(res,subContractId);
293 293
         this.connectContractList = list
294 294
         this.contractloading = false;
295 295
       })
@@ -409,31 +409,64 @@ export default {
409 409
         this.form.contractDocument = ""
410 410
       }
411 411
     },
412
-    updateSubContractFn() {
413
-      const subContractId = this.form.subContractId
412
+    // updateSubContractFn() {
413
+    //   const subContractId = this.form.subContractId
414
+    //   this.workList = this.$refs.workTableRef.workList;
415
+    //   this.paymentList = this.$refs.paymentRef.paymentList;
416
+    //   updateSubContract(this.form).then(() => {
417
+    //     this.$modal.msgSuccess("修改成功");
418
+    //     delProjectSubcontract(subContractId).then(() => {
419
+    //       this.connectProjectList.forEach(item => {
420
+    //         addProjectSubcontract({ subContractId: subContractId, projectId: item.projectId })
421
+    //       })
422
+    //     })
423
+    //     delContractWork(subContractId).then(() => {
424
+    //       for (let work of this.workList) {
425
+    //         work.contractId = subContractId;
426
+    //         addContractWork(work);
427
+    //       }
428
+    //     })
429
+    //     delContractPayment(subContractId).then(() => {
430
+    //       for (let payment of this.paymentList) {
431
+    //         payment.contractId = subContractId;
432
+    //         addContractPayment(payment);
433
+    //       }
434
+    //     })
435
+    //   })
436
+
437
+    // },
438
+    async updateSubContractFn() {
439
+      const subContractId = this.form.subContractId;
414 440
       this.workList = this.$refs.workTableRef.workList;
415 441
       this.paymentList = this.$refs.paymentRef.paymentList;
416
-      updateSubContract(this.form).then(() => {
442
+      try {
443
+        // 更新子合同
444
+        await updateSubContract(this.form);
417 445
         this.$modal.msgSuccess("修改成功");
418
-        delProjectSubcontract(subContractId).then(() => {
419
-          this.connectProjectList.forEach(item => {
420
-            addProjectSubcontract({ subContractId: subContractId, projectId: item.projectId })
421
-          })
422
-        })
423
-        delContractWork(subContractId).then(() => {
424
-          for (let work of this.workList) {
425
-            work.contractId = subContractId;
426
-            addContractWork(work);
427
-          }
428
-        })
429
-        delContractPayment(subContractId).then(() => {
430
-          for (let payment of this.paymentList) {
431
-            payment.contractId = subContractId;
432
-            addContractPayment(payment);
433
-          }
434
-        })
435
-      })
436
-
446
+        // 删除项目分包合同
447
+        await delProjectSubcontract(subContractId);
448
+        // 添加新的项目分包合同
449
+        for (let item of this.connectProjectList) {
450
+          await addProjectSubcontract({ subContractId: subContractId, projectId: item.projectId });
451
+        }
452
+        // 删除合同工作
453
+        await delContractWork(subContractId);
454
+        // 添加新的合同工作
455
+        for (let work of this.workList) {
456
+          work.contractId = subContractId;
457
+          await addContractWork(work);
458
+        }
459
+        // 删除合同付款
460
+        await delContractPayment(subContractId);
461
+        // 添加新的合同付款
462
+        for (let payment of this.paymentList) {
463
+          payment.contractId = subContractId;
464
+          await addContractPayment(payment);
465
+        }
466
+      } catch (error) {
467
+        console.error("更新合同时出错:", error);
468
+        this.$modal.msgError("更新失败");
469
+      }
437 470
     },
438 471
     updateRelatedProject() {
439 472
       delProjectContract(this.form.contractId).then(() => {

Loading…
取消
儲存