Browse Source

修改细节

余思翰 1 year ago
parent
commit
208532b73d

+ 17
- 6
oa-ui/src/utils/deleteResource.js View File

@@ -1,8 +1,8 @@
1 1
 /*
2 2
  * @Author: ysh
3 3
  * @Date: 2024-06-13 17:07:59
4
- * @LastEditors: 
5
- * @LastEditTime: 2024-06-14 09:55:50
4
+ * @LastEditors: Please set LastEditors
5
+ * @LastEditTime: 2024-06-19 16:43:47
6 6
  */
7 7
 import request from '@/utils/request'
8 8
 
@@ -11,9 +11,11 @@ const apiEndpoints = [
11 11
     procDefName: '承接合同评审',
12 12
     apiUrl: [
13 13
       '/oa/contract/:id',
14
+      '/oa/contractWork/:id',
14 15
       '/oa/contractComment/:id',
15 16
       '/oa/contractMeeting/:id',
16 17
       '/oa/contractPayment/:id',
18
+      '/oa/projectContract/:id',
17 19
     ]
18 20
   },
19 21
   {
@@ -25,11 +27,20 @@ const apiEndpoints = [
25 27
     ]
26 28
   },
27 29
   {
28
-    procDefName: '项目结算',
30
+    procDefName: '分包合同评审',
29 31
     apiUrl: [
30
-      '/oa/settle/:id',
31
-      '/oa/settleSummary/:id',
32
-      '/oa/settleWork/:id',
32
+      '/oa/subContract/:id',
33
+      '/oa/contractWork/:id',
34
+      '/oa/contractComment/:id',
35
+      '/oa/contractMeeting/:id',
36
+      '/oa/contractPayment/:id',
37
+      '/oa/projectSubcontract/:id',
38
+    ]
39
+  },
40
+  {
41
+    procDefName: '用车审批',
42
+    apiUrl: [
43
+      '/oa/carApproval/:id',
33 44
     ]
34 45
   }
35 46
 ]

+ 0
- 1
oa-ui/src/views/flowable/form/budget/components/choosePeople.vue View File

@@ -121,7 +121,6 @@ export default {
121 121
       this.chooseUser = val
122 122
     },
123 123
     handleCurrentChange(val) {
124
-      console.log(val);
125 124
       if (!this.multiple) {
126 125
         this.chooseUser = val
127 126
       }

+ 33
- 23
oa-ui/src/views/flowable/form/business/contractForm.vue View File

@@ -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-06-18 19:11:39
5
+ * @LastEditTime: 2024-06-19 15:55:48
6 6
 -->
7 7
 <template>
8 8
   <div class="app-container">
@@ -14,29 +14,31 @@
14 14
           <el-row :gutter="20">
15 15
             <el-col :span="12" :xs="24">
16 16
               <el-form-item label="投标项目名称:" prop="tenderId">
17
-                <el-button type="primary" size="mini" @click="tbOpen = true" v-if="taskName == '合同拟稿'">选择投标项目</el-button>
17
+                <el-button type="primary" size="mini" @click="tbOpen = true"
18
+                  v-if="taskName == '合同拟稿'">选择投标项目</el-button>
18 19
                 <el-descriptions border v-if="isSelect" style="margin-top: 10px;" :column="3" direction="vertical">
19 20
                   <el-descriptions-item label="投标项目名称" label-class-name="my-label" :span="3">{{ chooseTender.projectName
20
-                  }}</el-descriptions-item>
21
+                    }}</el-descriptions-item>
21 22
                   <el-descriptions-item label="项目来源" label-class-name="my-label">{{ getProjectSource(chooseTender)
22
-                  }}</el-descriptions-item>
23
+                    }}</el-descriptions-item>
23 24
                   <el-descriptions-item label="联系人" label-class-name="my-label">{{ chooseTender.aPerson
24
-                  }}</el-descriptions-item>
25
+                    }}</el-descriptions-item>
25 26
                   <el-descriptions-item label="联系电话" label-class-name="my-label">{{ chooseTender.aPhone
26
-                  }}</el-descriptions-item>
27
+                    }}</el-descriptions-item>
27 28
                 </el-descriptions>
28 29
               </el-form-item>
29 30
               <el-form-item label="合同名称" prop="contractName">
30
-                <el-input type="textarea" :rows="3" style="width: 100%;" v-model="form.contractName" placeholder="请输入合同名称"
31
-                  :disabled="taskName != '合同拟稿'"></el-input>
31
+                <el-input type="textarea" :rows="3" style="width: 100%;" v-model="form.contractName"
32
+                  placeholder="请输入合同名称" :disabled="taskName != '合同拟稿'"></el-input>
32 33
               </el-form-item>
33 34
               <el-form-item label="甲方单位" prop="partyAId">
34 35
                 <el-select v-model="form.partyAId" filterable placeholder="请选择" disabled style="width: 100%;">
35
-                  <el-option v-for="item in partyAList" :key="item.value" :label="item.partyAName" :value="item.partyAId"
36
-                    :disabled="taskName != '合同拟稿'">
36
+                  <el-option v-for="item in partyAList" :key="item.value" :label="item.partyAName"
37
+                    :value="item.partyAId" :disabled="taskName != '合同拟稿'">
37 38
                   </el-option>
38 39
                 </el-select>
39
-                <el-button type="primary" @click="partyAOpen = true" size="mini" v-if="taskName == '合同拟稿'">选择单位</el-button>
40
+                <el-button type="primary" @click="partyAOpen = true" size="mini"
41
+                  v-if="taskName == '合同拟稿'">选择单位</el-button>
40 42
               </el-form-item>
41 43
               <el-form-item label="合同编码" prop="contractCode">
42 44
                 <el-input style="width: 100%;" v-model="form.contractCode" placeholder="请输入合同编码"
@@ -47,7 +49,8 @@
47 49
                   :disabled="taskName != '合同拟稿'"></el-input>
48 50
               </el-form-item>
49 51
               <el-form-item label="合同金额" prop="amount">
50
-                <el-input style="width:100%;" v-model="form.amount" placeholder="请输入合同金额" :disabled="taskName != '合同拟稿'">
52
+                <el-input style="width:100%;" v-model="form.amount" placeholder="请输入合同金额"
53
+                  :disabled="taskName != '合同拟稿'">
51 54
                   <template slot="append">元</template>
52 55
                 </el-input>
53 56
               </el-form-item>
@@ -168,8 +171,8 @@
168 171
                     clearable :disabled="taskName != '合同拟稿'"></el-input-number>
169 172
                 </td>
170 173
                 <td>
171
-                  <el-date-picker style="width: 140px" v-model="payment.paymentTime" value-format="yyyy-MM-dd" type="date"
172
-                    placeholder="选择日期" :disabled="taskName != '合同拟稿'">
174
+                  <el-date-picker style="width: 140px" v-model="payment.paymentTime" value-format="yyyy-MM-dd"
175
+                    type="date" placeholder="选择日期" :disabled="taskName != '合同拟稿'">
173 176
                   </el-date-picker>
174 177
                 </td>
175 178
                 <td>
@@ -371,8 +374,8 @@
371 374
           </el-row>
372 375
           <el-divider></el-divider>
373 376
           <el-form-item label="签订日期" prop="signDate">
374
-            <el-date-picker clearable v-model="form.signDate" type="date" value-format="yyyy-MM-dd" placeholder="请选择签订日期"
375
-              :disabled="taskName != '合同签订'">
377
+            <el-date-picker clearable v-model="form.signDate" type="date" value-format="yyyy-MM-dd"
378
+              placeholder="请选择签订日期" :disabled="taskName != '合同签订'">
376 379
             </el-date-picker>
377 380
           </el-form-item>
378 381
           <el-form-item label="签订备注" prop="signRemark">
@@ -447,7 +450,7 @@ import { listContractWork, addContractWork, delContractWork } from "@/api/oa/con
447 450
 import { listContractPayment, addContractPayment, delContractPayment } from "@/api/oa/contract/contractPayment";
448 451
 import { listContractComment, addContractComment, updateContractComment } from "@/api/oa/contract/contractComment";
449 452
 import { getContractMeeting, addContractMeeting, updateContractMeeting } from "@/api/oa/contract/contractMeeting";
450
-import { listProjectContract, addProjectContract } from "@/api/oa/contract/projectContract";
453
+import { listProjectContract, addProjectContract, delProjectContract } from "@/api/oa/contract/projectContract";
451 454
 import { complete, rejectTask, returnList, returnTask, getNextFlowNode, delegate, flowTaskForm, } from "@/api/flowable/todo";
452 455
 import { listTender, getTender } from "@/api/oa/tender/tender";
453 456
 import { getUsersDeptLeader, getUsersManageLeader, getUsersDeptLeaderByDept } from '@/api/system/post.js'
@@ -458,7 +461,7 @@ import ChooseTender from '../components/chooseTender.vue';
458 461
 import { listPartyA } from "@/api/oa/partyA/partyA";
459 462
 import FileItem from './fileItem.vue';
460 463
 import { mapGetters } from "vuex";
461
-import ChoosePartyA from '../components/choosePartyA.vue';
464
+import ChoosePartyA from '@/views/flowable/form/components/choosePartyA.vue';
462 465
 export default {
463 466
   dicts: ['cmc_scale_grade', 'cmc_unit'],
464 467
   components: {
@@ -519,7 +522,7 @@ export default {
519 522
       // 是否显示弹出层
520 523
       open: false,
521 524
       tbOpen: false,
522
-      partyAOpen:false,
525
+      partyAOpen: false,
523 526
       // 表单参数
524 527
       form: {
525 528
         amount: 0,
@@ -771,7 +774,6 @@ export default {
771 774
         pageSize: 99999999
772 775
       }).then(response => {
773 776
         this.partyAList = response.rows;
774
-        console.log(this.partyAList)
775 777
       })
776 778
     },
777 779
     // 查询项目列表
@@ -984,6 +986,7 @@ export default {
984 986
           if (this.formTotal != 0) {
985 987
             const params = { taskId: this.taskForm.taskId };
986 988
             this.updateContractData();
989
+            this.updateRelatedProject();
987 990
             if (this.taskName == '合同拟稿') {
988 991
               this.firstGetNextFlow();
989 992
               return
@@ -1075,6 +1078,13 @@ export default {
1075 1078
         })
1076 1079
       });
1077 1080
     },
1081
+    updateRelatedProject() {
1082
+      delProjectContract(this.taskForm.formId).then(() => {
1083
+        for (let projectId of this.projectContractForm.projectIds) {
1084
+          addProjectContract({ projectId: projectId, contractId: this.taskForm.formId });
1085
+        }
1086
+      })
1087
+    },
1078 1088
     firstGetNextFlow() {
1079 1089
       const params = { taskId: this.taskForm.taskId };
1080 1090
       getNextFlowNode(params).then(res => {
@@ -1158,13 +1168,13 @@ export default {
1158 1168
       this.isSelect = true
1159 1169
       this.form.partyAId = val.partyAId
1160 1170
     },
1161
-    confirmPartyA(val){
1171
+    confirmPartyA(val) {
1162 1172
       this.partyAOpen = false
1163
-      if(val && val.length > 1 ){
1173
+      if (val && val.length > 1) {
1164 1174
         return this.$message.error('请选择一个甲方单位')
1165 1175
       }
1166 1176
       if (val) {
1167
-        this.$set(this.form,'partyAId',val[0].partyAId)
1177
+        this.$set(this.form, 'partyAId', val[0].partyAId)
1168 1178
       }
1169 1179
     },
1170 1180
     calculatePaymentAmount(payment) {

+ 144
- 106
oa-ui/src/views/flowable/form/business/subContract.vue View File

@@ -2,7 +2,13 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-05-10 15:31:57
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-06-18 18:41:01
5
+ * @LastEditTime: 2024-06-19 16:18:08
6
+-->
7
+<!--
8
+ * @Author: ysh
9
+ * @Date: 2024-05-10 15:31:57
10
+ * @LastEditors: Please set LastEditors
11
+ * @LastEditTime: 2024-06-19 10:26:51
6 12
 -->
7 13
 <template>
8 14
   <div class="app-container">
@@ -13,7 +19,7 @@
13 19
           <el-divider></el-divider>
14 20
           <el-form-item label="项目编号:" prop="projectId">
15 21
             <el-button type="primary" size="mini" @click="open = true" v-if="taskName == '合同拟稿'">选择项目</el-button>
16
-            <el-descriptions border v-if="isSelect" style="margin-top: 10px;" :column="1">
22
+            <!-- <el-descriptions border v-if="isSelect" style="margin-top: 10px;" :column="1">
17 23
               <el-descriptions-item label="项目编号" label-class-name="my-label">
18 24
                 {{ chooseProject.projectNumber }}</el-descriptions-item>
19 25
               <el-descriptions-item label="项目名称" label-class-name="my-label">{{ chooseProject.projectName
@@ -25,25 +31,18 @@
25 31
               </el-descriptions-item>
26 32
               <el-descriptions-item label="项目类型" label-class-name="my-label">{{ chooseProject.projectType
27 33
                 }}</el-descriptions-item>
28
-            </el-descriptions>
34
+            </el-descriptions> -->
35
+            <el-table :data="chooseProjectList" border v-if="isSelect">
36
+              <el-table-column type="index" width="50" label="序号" />
37
+              <el-table-column label="项目编号" align="center" key="projectNumber" prop="projectNumber" />
38
+              <el-table-column label="项目名称" align="center" key="projectName" prop="projectName" />
39
+              <el-table-column label="项目负责人" align="center" key="projectLeaderName" prop="projectLeaderUser.nickName" />
40
+              <el-table-column label="主合同编码" align="center" key="contractCode" prop="contractCode" />
41
+              <el-table-column label="主合同编号" align="center" key="contractNumber" prop="contractNumber" />
42
+              <el-table-column label="主合同金额" align="center" key="amount" prop="amount" />
43
+            </el-table>
29 44
           </el-form-item>
30
-          <el-row :gutter="20">
31
-            <el-col :span="8" :xs="24">
32
-              <el-form-item label="主合同金额" prop="amount">
33
-                <el-input v-model="amount" :disabled="true" />
34
-              </el-form-item>
35
-            </el-col>
36
-            <el-col :span="8" :xs="24">
37
-              <el-form-item label="合同编码" prop="contractCode">
38
-                <el-input v-model="contractCode" :disabled="true" />
39
-              </el-form-item>
40
-            </el-col>
41
-            <el-col :span="8" :xs="24">
42
-              <el-form-item label="合同编号" prop="contractNumber">
43
-                <el-input v-model="contractNumber" :disabled="true" />
44
-              </el-form-item>
45
-            </el-col>
46
-          </el-row>
45
+
47 46
           <el-divider></el-divider>
48 47
           <el-row :gutter="20">
49 48
             <el-col :span="16" :xs="24">
@@ -67,7 +66,8 @@
67 66
                     :value="item.partnerId">
68 67
                   </el-option>
69 68
                 </el-select>
70
-                <el-button type="primary" @click="partnerOpen = true" size="mini" v-if="taskName == '合同拟稿'">选择单位</el-button>
69
+                <el-button type="primary" @click="partnerOpen = true" size="mini"
70
+                  v-if="taskName == '合同拟稿'">选择单位</el-button>
71 71
               </el-form-item>
72 72
             </el-col>
73 73
             <el-col :span="8" :xs="24">
@@ -426,13 +426,14 @@ import { listProject, getProject } from "@/api/oa/project/project";
426 426
 import { listDept } from '@/api/system/dept'
427 427
 import { listUser } from '@/api/system/user'
428 428
 import { listPartner, getPartner } from "@/api/oa/partner/partner";
429
-import { listContractWork, addContractWork } from "@/api/oa/contract/contractWork";
430
-import { listContractPayment, addContractPayment } from "@/api/oa/contract/contractPayment";
431
-import { listContractComment, addContractComment, updateContractComment } from "@/api/oa/contract/contractComment";
432
-import { getContractMeeting, addContractMeeting, updateContractMeeting } from "@/api/oa/contract/contractMeeting";
429
+import { listContractWork, addContractWork, delContractWork } from "@/api/oa/contract/contractWork";
430
+import { listContractPayment, addContractPayment, delContractPayment } from "@/api/oa/contract/contractPayment";
431
+import { listContractComment, addContractComment, updateContractComment, delContractComment } from "@/api/oa/contract/contractComment";
432
+import { getContractMeeting, addContractMeeting, updateContractMeeting, delContractMeeting } from "@/api/oa/contract/contractMeeting";
433 433
 import { listProjectContract } from "@/api/oa/contract/projectContract";
434 434
 import { getContract } from "@/api/oa/contract/contract";
435 435
 import { listSubContract, getSubContract, delSubContract, addSubContract, updateSubContract } from "@/api/oa/contract/subContract";
436
+import { listProjectSubcontract, addProjectSubcontract, delProjectSubcontract } from '@/api/oa/contract/projectSubcontract'
436 437
 import { getUsersDeptLeader, getUsersManageLeader, getUsersDeptLeaderByDept } from '@/api/system/post.js'
437 438
 import flow from '@/views/flowable/task/todo/detail/flow'
438 439
 import { flowXmlAndNode } from "@/api/flowable/definition";
@@ -523,6 +524,7 @@ export default {
523 524
       projectList: [],
524 525
       partnerList: [],
525 526
       chooseProject: {},
527
+      chooseProjectList: [],
526 528
       chooseContract: {
527 529
         contractCode: [],
528 530
         contractNumber: [],
@@ -660,28 +662,18 @@ export default {
660 662
             this.commentOpen = true;
661 663
             this.meetingOpen = false;
662 664
           }
663
-          if (res.data.projectId) {
664
-            getProject(res.data.projectId).then(res => {
665
-              this.chooseProject = res.data;
666
-              this.isSelect = true
667
-              listProjectContract({ projectId: this.chooseProject.projectId }).then(response => {
668
-                if (response.rows) {
669
-                  for (let row of response.rows) {
670
-                    getContract(row.contractId).then(r => {
671
-                      this.chooseContract.amount.push(r.data.amount);
672
-                      this.chooseContract.contractCode.push(r.data.contractCode);
673
-                      this.chooseContract.contractNumber.push(r.data.contractNumber);
674
-                      this.amount = this.chooseContract.amount.join('、');
675
-                      this.contractCode = this.chooseContract.contractCode.join('、');
676
-                      this.contractNumber = this.chooseContract.contractNumber.join('、');
677
-                    });
665
+          listProjectSubcontract({ subContractId: res.data.subContractId }).then(res => {
666
+            if (res.rows) {
667
+              res.rows.forEach(project => {
668
+                getProject(project.projectId).then(res => {
669
+                  if (res.data) {
670
+                    this.chooseProjectList.push(res.data);
671
+                    this.confirmProject(this.chooseProjectList)
678 672
                   }
679
-                }
680
-                else
681
-                  this.chooseContract = {};
673
+                })
682 674
               })
683
-            })
684
-          }
675
+            }
676
+          })
685 677
           listContractWork({ contractId: this.taskForm.formId }).then(res => {
686 678
             if (res.rows)
687 679
               this.workList = res.rows;
@@ -863,7 +855,7 @@ export default {
863 855
     },
864 856
     /** 提交按钮 */
865 857
     submitForm() {
866
-      let isProjectValid = this.validateManual(this.form.projectId);
858
+      let isProjectValid = this.validateManual(this.chooseProjectList);
867 859
       let isDocValid = this.validateDocument(this.form.contractDocument)
868 860
       if (!(isProjectValid || isDocValid)) {
869 861
         // 无效,阻止提交  
@@ -878,16 +870,22 @@ export default {
878 870
             })
879 871
           };
880 872
           if (this.formTotal != 0) {
873
+            if (this.form.partnerId)
874
+              this.form.partnerId = this.form.partnerId.join(',')
881 875
             updateSubContract(this.form).then(response => {
882 876
               this.$modal.msgSuccess("修改成功");
883 877
               this.open = false;
884 878
               this.getList();
879
+              this.updateChooseProjectList()
885 880
             });
886 881
             const params = { taskId: this.taskForm.taskId };
887 882
             getNextFlowNode(params).then(res => {
888 883
               if (this.taskName == '分管审核') {
889 884
                 handleComplete(this.taskForm);
890 885
               }
886
+              else if (this.taskName == '合同拟稿') {
887
+                this.contractDraftSubmit(handleComplete)
888
+              }
891 889
               else if (this.taskName == '线上会审') {
892 890
                 for (let comment of this.commentList) {
893 891
                   updateContractComment(comment);
@@ -924,6 +922,9 @@ export default {
924 922
               this.getList();
925 923
             });
926 924
             const subContractId = this.form.subContractId;
925
+            this.chooseProjectList.forEach(item => {
926
+              addProjectSubcontract({ subContractId: subContractId, projectId: item.projectId })
927
+            })
927 928
             for (let work of this.workList) {
928 929
               work.contractId = subContractId;
929 930
               addContractWork(work);
@@ -934,62 +935,65 @@ export default {
934 935
             }
935 936
             const params = { taskId: this.taskForm.taskId };
936 937
             getNextFlowNode(params).then(res => {
937
-              if (this.commentOpen == false && this.meetingOpen == false) {
938
-                getUsersManageLeader({ userId: this.$store.getters.userId }).then(res => {
939
-                  let userId = res.data.userId;
940
-                  this.$set(this.taskForm.variables, "approval", userId);
941
-                  this.$set(this.taskForm.variables, "commentType", '0');
942
-                  handleComplete(this.taskForm);
943
-                })
944
-              }
945
-              else if (this.commentOpen == true && this.meetingOpen == false) {
946
-                let approvalList = [];
947
-                for (let comment of this.commentList) {
948
-                  comment.contractId = this.form.subContractId
949
-                  addContractComment(comment);
950
-                  approvalList.push(comment.userId)
951
-                }
952
-                this.$set(this.taskForm.variables, "approvalList", approvalList);
953
-                this.$set(this.taskForm.variables, "commentType", '2');
954
-                handleComplete(this.taskForm);
955
-              }
956
-              else if (this.commentOpen == false && this.meetingOpen == true) {
957
-                this.meetingForm.contractId = this.form.subContractId;
958
-                let formData = new FormData();
959
-                let jsonForm = JSON.stringify(this.meetingForm);
960
-                formData.append("form", jsonForm);
961
-                addContractMeeting(formData);
962
-                this.$set(this.taskForm.variables, "approval", this.meetingForm.hostId);
963
-                this.$set(this.taskForm.variables, "commentType", '1');
964
-                handleComplete(this.taskForm);
965
-              }
938
+              this.contractDraftSubmit(handleComplete)
966 939
             })
940
+
967 941
           }
968 942
         }
969 943
       });
970 944
     },
971
-    confirmProject(val) {
972
-      this.open = false
973
-      if (val.length > 1) {
974
-        this.$message.error('请选择一个项目');
975
-        return;
945
+    // 合同拟稿提交事件
946
+    contractDraftSubmit(handleComplete) {
947
+      if (this.commentOpen == false && this.meetingOpen == false) {
948
+        getUsersManageLeader({ userId: this.$store.getters.userId }).then(res => {
949
+          let userId = res.data.userId;
950
+          this.$set(this.taskForm.variables, "approval", userId);
951
+          this.$set(this.taskForm.variables, "commentType", '0');
952
+          handleComplete(this.taskForm);
953
+        })
976 954
       }
977
-
978
-      if (val.length === 1) {
979
-        this.chooseProject = val[0];
980
-        this.isSelect = true;
981
-        this.form.projectId = val[0].projectId;
982
-
983
-        this.fetchContracts(this.form.projectId)
984
-          .then(contractData => {
985
-            this.processContractData(contractData);
986
-          })
987
-          .catch(error => {
988
-            console.error('获取合同列表时出错:', error);
989
-            this.$message.error('获取合同列表时出错');
990
-          });
955
+      else if (this.commentOpen == true && this.meetingOpen == false) {
956
+        let approvalList = [];
957
+        for (let comment of this.commentList) {
958
+          comment.contractId = this.form.subContractId
959
+          addContractComment(comment);
960
+          approvalList.push(comment.userId)
961
+        }
962
+        this.$set(this.taskForm.variables, "approvalList", approvalList);
963
+        this.$set(this.taskForm.variables, "commentType", '2');
964
+        handleComplete(this.taskForm);
965
+      }
966
+      else if (this.commentOpen == false && this.meetingOpen == true) {
967
+        this.meetingForm.contractId = this.form.subContractId;
968
+        let formData = new FormData();
969
+        let jsonForm = JSON.stringify(this.meetingForm);
970
+        formData.append("form", jsonForm);
971
+        addContractMeeting(formData);
972
+        this.$set(this.taskForm.variables, "approval", this.meetingForm.hostId);
973
+        this.$set(this.taskForm.variables, "commentType", '1');
974
+        handleComplete(this.taskForm);
991 975
       }
992 976
     },
977
+    updateChooseProjectList() {
978
+      const subContractId = this.taskForm.formId
979
+      delProjectSubcontract(subContractId).then(() => {
980
+        this.chooseProjectList.forEach(item => {
981
+          addProjectSubcontract({ subContractId: subContractId, projectId: item.projectId })
982
+        })
983
+      })
984
+      delContractWork(subContractId).then(() => {
985
+        for (let work of this.workList) {
986
+          work.contractId = subContractId;
987
+          addContractWork(work);
988
+        }
989
+      })
990
+      delContractPayment(subContractId).then(() => {
991
+        for (let payment of this.paymentList) {
992
+          payment.contractId = subContractId;
993
+          addContractPayment(payment);
994
+        }
995
+      })
996
+    },
993 997
     // 确定合作单位
994 998
     confirmPartners(val) {
995 999
       this.partnerOpen = false
@@ -1009,6 +1013,40 @@ export default {
1009 1013
         this.form.partnerId = ids
1010 1014
       }
1011 1015
     },
1016
+    confirmProject(val) {
1017
+      this.open = false
1018
+      // if (val.length > 1) {
1019
+      //   this.$message.error('请选择一个项目');
1020
+      //   return;
1021
+      // }
1022
+      // if (val.length === 1) {
1023
+      //   this.chooseProject = val[0];
1024
+      //   this.isSelect = true;
1025
+      //   this.form.projectId = val[0].projectId;
1026
+
1027
+      //   this.fetchContracts(this.form.projectId)
1028
+      //     .then(contractData => {
1029
+      //       this.processContractData(contractData);
1030
+      //     })
1031
+      //     .catch(error => {
1032
+      //       console.error('获取合同列表时出错:', error);
1033
+      //       this.$message.error('获取合同列表时出错');
1034
+      //     });
1035
+      // }
1036
+      if (val) {
1037
+        this.chooseProjectList = val;
1038
+        this.isSelect = true
1039
+        val.map(item => {
1040
+          this.fetchContracts(item.projectId)
1041
+            .then(contractData => {
1042
+              let [contractCode, contractNumber, amount] = this.processContractData(contractData);
1043
+              this.$set(item, 'contractCode', contractCode)
1044
+              this.$set(item, 'contractNumber', contractNumber)
1045
+              this.$set(item, 'amount', amount)
1046
+            })
1047
+        })
1048
+      }
1049
+    },
1012 1050
     // 获取合同详情
1013 1051
     fetchContracts(projectId) {
1014 1052
       return new Promise((resolve, reject) => {
@@ -1032,22 +1070,22 @@ export default {
1032 1070
     },
1033 1071
     // 处理合同编码、合同编号的格式
1034 1072
     processContractData(contractData) {
1035
-      this.chooseContract = {
1073
+      let chooseContract = {
1036 1074
         amount: [],
1037 1075
         contractCode: [],
1038 1076
         contractNumber: []
1039
-      };
1077
+      }
1040 1078
       contractData.forEach(contract => {
1041 1079
         if (contract.data) {
1042
-          this.chooseContract.amount.push(contract.data.amount);
1043
-          this.chooseContract.contractCode.push(contract.data.contractCode);
1044
-          this.chooseContract.contractNumber.push(contract.data.contractNumber);
1080
+          chooseContract.amount.push(contract.data.amount);
1081
+          chooseContract.contractCode.push(contract.data.contractCode);
1082
+          chooseContract.contractNumber.push(contract.data.contractNumber);
1045 1083
         }
1046 1084
       });
1047
-
1048
-      this.amount = this.chooseContract.amount.join('、');
1049
-      this.contractCode = this.chooseContract.contractCode.join('、');
1050
-      this.contractNumber = this.chooseContract.contractNumber.join('、');
1085
+      let amount = chooseContract.amount.join('、');
1086
+      let contractCode = chooseContract.contractCode.join('、');
1087
+      let contractNumber = chooseContract.contractNumber.join('、');
1088
+      return [contractCode, contractNumber, amount]
1051 1089
     },
1052 1090
     getFileName(name) {
1053 1091
       if (name) {
@@ -1090,15 +1128,15 @@ export default {
1090 1128
     validateManual(name) {
1091 1129
       // 这里添加你的验证逻辑  
1092 1130
       // 例如,检查tenderId是否为空或者是否符合其他规则  
1093
-      if (!name || name.trim() === '') {
1094
-        this.$message.error('请选择一个有效项目');
1131
+      if (name && name.length == 0) {
1132
+        this.$message.error('请选择至少一个有效项目');
1095 1133
         return false;
1096 1134
       }
1097 1135
       return true;
1098 1136
     },
1099 1137
     calculatePaymentAmount(payment) {
1100 1138
       let amount = (payment.paymentPercentage / 100) * this.form.subAmount
1101
-      this.$set(payment, 'paymentAmount', Number(amount))
1139
+      this.$set(payment, 'paymentAmount', Number(amount).toFixed(2))
1102 1140
     },
1103 1141
   }
1104 1142
 };

+ 1
- 2
oa-ui/src/views/flowable/form/components/choosePartner.vue View File

@@ -14,8 +14,7 @@
14 14
     </el-form>
15 15
     <el-row :gutter="10" class="mb8">
16 16
       <el-col :span="1.5">
17
-        <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
18
-          v-hasPermi="['oa:partner:add']">新增</el-button>
17
+        <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd">新增</el-button>
19 18
       </el-col>
20 19
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
21 20
     </el-row>

+ 1
- 1
oa-ui/src/views/flowable/form/components/chooseProject.vue View File

@@ -29,7 +29,7 @@
29 29
       <el-table-column label="项目名称" align="center" key="projectName" prop="projectName" :show-overflow-tooltip="true" />
30 30
       <el-table-column label="项目负责人" align="center" key="projectLeader" prop="projectLeaderUser.nickName"
31 31
         :show-overflow-tooltip="true" />
32
-      <el-table-column label="甲方公司" align="center" key="partyA" prop="partyA.partyName" :show-overflow-tooltip="true" />
32
+      <el-table-column label="甲方单位" align="center" key="partyA" prop="partyA.partyName" :show-overflow-tooltip="true" />
33 33
       <el-table-column label="项目类型" align="center" key="projectType" prop="projectType" />
34 34
     </el-table>
35 35
     <div style="text-align: right;" class="mt20 mr20">

+ 4
- 1
oa-ui/src/views/flowable/form/oa/carForm.vue View File

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-02-29 11:44:28
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-06-13 14:19:03
5
+ * @LastEditTime: 2024-06-19 16:36:07
6 6
 -->
7 7
 
8 8
 <template>
@@ -500,6 +500,8 @@ export default {
500 500
     // 获取下一个审批人
501 501
     getNextFlowNodeApproval() {
502 502
       if (this.taskName == '用车申请') {
503
+        if (this.dept < 102 && this.dept != 0)
504
+          this.dept = 102
503 505
         this.$set(this.taskForm.variables, "dept", this.dept);
504 506
         if (this.dept == 102) {
505 507
           getUserByPost({ postName: '总经理' }).then(result => {
@@ -705,6 +707,7 @@ export default {
705 707
   width: 100px;
706 708
   background: #E1F3D8;
707 709
 }
710
+
708 711
 ::v-deep .el-textarea.is-disabled .el-textarea__inner {
709 712
   color: #121212 !important;
710 713
 }

+ 0
- 1
oa-ui/src/views/flowable/form/projectProcess/addproject.vue View File

@@ -329,7 +329,6 @@ export default {
329 329
         partyAName: partyAName
330 330
       }).then(response => {
331 331
         this.partyAList = response.rows;
332
-        console.log(this.addForm, this.partyAList);
333 332
       })
334 333
     },
335 334
     cancel() {

+ 34
- 28
oa-ui/src/views/flowable/form/projectProcess/technicalTab.vue View File

@@ -1,8 +1,8 @@
1 1
 <!--
2 2
  * @Author: ysh
3 3
  * @Date: 2024-04-19 15:32:00
4
- * @LastEditors: wrh
5
- * @LastEditTime: 2024-06-19 15:56:42
4
+ * @LastEditors: Please set LastEditors
5
+ * @LastEditTime: 2024-06-19 17:36:00
6 6
 -->
7 7
 <template>
8 8
   <div class="app-container">
@@ -164,8 +164,8 @@ export default {
164 164
   },
165 165
   watch: {
166 166
     'taskForm.formId'(newval) {
167
-      this.getUserList();
168 167
       this.initForm();
168
+      this.getUserList();
169 169
     },
170 170
     projectNumber(newval) {
171 171
       this.$set(this.form, "projectNumber", newval);
@@ -190,35 +190,41 @@ export default {
190 190
   methods: {
191 191
     /** 查询cmc技术交底列表 */
192 192
     initForm() {
193
-      getTechnical(this.taskForm.formId).then((res) => {
194
-        if (res.data) {
193
+      this.loadTechnicalAndProjectData();
194
+    },
195
+    async loadTechnicalAndProjectData() {
196
+      try {
197
+        const technicalRes = await getTechnical(this.taskForm.formId);
198
+        if (technicalRes.data) {
195 199
           this.haveTechnical = true;
196
-          this.form = res.data;
197
-          if (this.projectNumber != '' && this.projectName != '') {
198
-            this.$set(this.form, "projectNumber", this.projectNumber);
199
-            this.$set(this.form, "projectName", this.projectName);
200
-          } else {
201
-            getProject(this.taskForm.formId).then(res => {
202
-              if (res.data) {
203
-                this.$set(this.form, "projectNumber", res.data.projectNumber);
204
-                this.$set(this.form, "projectName", res.data.projectName);
205
-              }
206
-            })
207
-          }
208
-          let data = res.data;
209
-          if (res.data.qualityInspector == null || res.data.qualityInspector == undefined || res.data.qualityInspector == "") {
210
-            data.qualityInspector = []
211
-          } else {
212
-            let arr = []
213
-            data.qualityInspector = data.qualityInspector.split(',');
214
-            for (let inspector of data.qualityInspector) {
215
-              arr.push(parseInt(inspector))
200
+          this.form = technicalRes.data;
201
+          if (!this.projectNumber || !this.projectName) {
202
+            // 仅在需要时调用getProject  
203
+            const projectRes = await getProject(this.taskForm.formId);
204
+            if (projectRes.data) {
205
+              this.$set(this.form, "projectNumber", projectRes.data.projectNumber);
206
+              this.$set(this.form, "projectName", projectRes.data.projectName);
216 207
             }
217
-            data.qualityInspector = arr
218 208
           }
219
-          this.$set(this.form, "qualityInspector", data.qualityInspector);
209
+          this.processQualityInspector(this.form);
220 210
         }
221
-      });
211
+      } catch (error) {
212
+      }
213
+    },
214
+    processQualityInspector(form) {
215
+      debugger
216
+      if (Array.isArray(form.qualityInspector)) {
217
+        // 如果已经是数组,则不需要进一步处理  
218
+        // 除非你想将数组中的字符串元素转换为整数  
219
+        // 例如:form.qualityInspector = form.qualityInspector.map(inspector => parseInt(inspector, 10));  
220
+      } else if (typeof form.qualityInspector === 'string') {
221
+        // 如果是一个字符串,则按逗号分割并转换为整数数组  
222
+        const qualityInspectorArr = form.qualityInspector.split(',').map(inspector => parseInt(inspector, 10));
223
+        this.$set(form, "qualityInspector", qualityInspectorArr);
224
+      } else if (form.qualityInspector === null || form.qualityInspector === undefined || form.qualityInspector === '') {
225
+        // 如果为空、null或undefined,则设置为空数组  
226
+        this.$set(form, "qualityInspector", []);
227
+      }
222 228
     },
223 229
     // 查询用户列表
224 230
     getUserList() {

+ 2
- 11
oa-ui/src/views/flowable/task/myProcess/index.vue View File

@@ -2,13 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-01-03 09:23:11
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-06-13 18:24:59
6
--->
7
-<!--
8
- * @Author: ysh
9
- * @Date: 2024-01-03 09:23:11
10
- * @LastEditors: Please set LastEditors
11
- * @LastEditTime: 2024-06-13 17:23:42
5
+ * @LastEditTime: 2024-06-19 16:29:56
12 6
 -->
13 7
 <template>
14 8
   <div class="app-container">
@@ -478,10 +472,7 @@ export default {
478 472
       })
479 473
     },
480 474
     deleteDataByUrl(procDefName, id) {
481
-      switch (procDefName) {
482
-        case '承接合同评审':
483
-          return deleteResources(procDefName, id)
484
-      }
475
+      return deleteResources(procDefName, id)
485 476
     },
486 477
     // 子流程不可以删除
487 478
     beDeleted(row) {

+ 0
- 1
oa-ui/src/views/oa/budget/index.vue View File

@@ -230,7 +230,6 @@ export default {
230 230
       });
231 231
     },
232 232
     remoteMethod(val) {
233
-      console.log(val);
234 233
       listProject({
235 234
         pageNum: 1,
236 235
         pageSize: 20, 

+ 3
- 1
oa-ui/src/views/oa/contract/index.vue View File

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-03-18 09:05:41
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-06-18 17:34:15
5
+ * @LastEditTime: 2024-06-19 11:03:15
6 6
 -->
7 7
 <template>
8 8
   <div class="app-container">
@@ -60,6 +60,7 @@
60 60
     <el-table v-loading="loading" border :data="contractList" @selection-change="handleSelectionChange">
61 61
       <el-table-column type="selection" width="55" align="center" />
62 62
       <!-- <el-table-column label="合同id" align="center" prop="contractId" /> -->
63
+      <el-table-column label="甲方单位" align="center" prop="partyA.partyAName" width="220px" />
63 64
       <el-table-column label="合同名称" align="center" prop="contractName" width="220px" />
64 65
       <el-table-column label="合同编码" align="center" prop="contractCode" />
65 66
       <el-table-column label="合同编号" align="center" prop="contractNumber" />
@@ -229,6 +230,7 @@ export default {
229 230
       this.loading = true;
230 231
       listContract(this.queryParams).then(response => {
231 232
         this.contractList = response.rows;
233
+
232 234
         this.total = response.total;
233 235
         this.loading = false;
234 236
       });

+ 38
- 11
oa-ui/src/views/oa/contract/subContract.vue View File

@@ -1,11 +1,8 @@
1 1
 <template>
2 2
   <div class="app-container">
3 3
     <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="128px">
4
-      <el-form-item label="主合同id" prop="contractId">
5
-        <el-input v-model="queryParams.contractId" placeholder="请输入主合同id" clearable @keyup.enter.native="handleQuery" />
6
-      </el-form-item>
7
-      <el-form-item label="承接单位id" prop="partnerId">
8
-        <el-input v-model="queryParams.partnerId" placeholder="请输入承接单位id" clearable @keyup.enter.native="handleQuery" />
4
+      <el-form-item label="承接单位" prop="partnerId">
5
+        <el-input v-model="queryParams.partnerId" placeholder="请输入承接单位" clearable @keyup.enter.native="handleQuery" />
9 6
       </el-form-item>
10 7
       <el-form-item label="拟稿人" prop="drafter">
11 8
         <el-select v-model="queryParams.drafter" filterable clearable @change="handleQuery">
@@ -28,14 +25,18 @@
28 25
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
29 26
     </el-row>
30 27
 
31
-    <el-table v-loading="loading" :data="subContractList" @selection-change="handleSelectionChange">
28
+    <el-table v-loading="loading" border :data="subContractList" @selection-change="handleSelectionChange">
32 29
       <el-table-column type="index" label="序号" width="55" align="center" />
33
-      <el-table-column label="主合同id" align="center" prop="contractId" />
34
-      <el-table-column label="合同名称" align="center" prop="subContractName" />
30
+      <el-table-column label="合同名称" align="center" prop="subContractName" width="200px" />
35 31
       <el-table-column label="分包合同金额" align="center" prop="subAmount" />
36 32
       <el-table-column label="承接单位id" align="center" prop="partnerId" />
37 33
       <!-- <el-table-column label="承接单位联系人" align="center" prop="contactPerson" /> -->
38
-      <el-table-column label="拟稿人" align="center" prop="drafter" />
34
+      <el-table-column label="拟稿人" align="center" prop="drafter">
35
+        <template slot-scope="scope">
36
+          {{ getUserName(scope.row.drafter) }}
37
+        </template>
38
+      </el-table-column>
39
+
39 40
       <el-table-column label="拟稿日期" align="center" prop="draftTime" width="180">
40 41
         <template slot-scope="scope">
41 42
           <span>{{ parseTime(scope.row.draftTime, '{y}-{m}-{d}') }}</span>
@@ -48,8 +49,20 @@
48 49
         </template>
49 50
       </el-table-column>
50 51
       <el-table-column label="签订备注" align="center" prop="signRemark" />
51
-      <el-table-column label="签订扫描件" align="center" prop="signScan" />
52
-      <el-table-column label="评审方式" align="center" prop="commentType" />
52
+      <el-table-column label="签订扫描件" align="center" prop="signScan">
53
+        <template slot-scope="scope">
54
+          <el-link type="primary" @click="reviewWord(`${baseUrl}${'/profile/upload' + scope.row.signScan}`)">
55
+            {{ getFileName(scope.row.signScan) }}
56
+          </el-link>
57
+        </template>
58
+      </el-table-column>
59
+      <el-table-column label="评审方式" align="center" prop="commentType" >
60
+        <template slot-scope="scope">
61
+          <el-tag :type="scope.row.commentType == '2' ? 'success':'warning'">
62
+            {{ setCommentType(scope.row.commentType) }}
63
+          </el-tag>
64
+        </template>
65
+      </el-table-column>
53 66
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
54 67
         <el-button size="mini" type="text" icon="el-icon-view" @click="handleView(scope.row)"
55 68
           v-hasPermi="['oa:subContract:query']">查看</el-button>
@@ -104,6 +117,10 @@
104 117
         <el-button @click="cancel">取 消</el-button>
105 118
       </div>
106 119
     </el-dialog>
120
+
121
+    <el-dialog :title="title" :visible.sync="openInfo" append-to-body>
122
+      
123
+    </el-dialog>
107 124
   </div>
108 125
 </template>
109 126
 
@@ -114,6 +131,7 @@ export default {
114 131
   name: "SubContract",
115 132
   data() {
116 133
     return {
134
+      baseUrl: process.env.VUE_APP_BASE_API,
117 135
       // 遮罩层
118 136
       loading: true,
119 137
       // 选中数组
@@ -265,6 +283,15 @@ export default {
265 283
       this.download('oa/subContract/export', {
266 284
         ...this.queryParams
267 285
       }, `subContract_${new Date().getTime()}.xlsx`)
286
+    },
287
+    setCommentType(commentType){
288
+      if(commentType == '2'){
289
+        return '线上评审'
290
+      }else if (commentType == '0'){
291
+        return '无须评审'
292
+      }else{
293
+        return '会议评审'
294
+      }
268 295
     }
269 296
   }
270 297
 };

+ 4
- 2
oa-ui/src/views/oa/technical/index.vue View File

@@ -153,7 +153,7 @@
153 153
         <el-button @click="cancel">取 消</el-button>
154 154
       </div>
155 155
     </el-dialog>
156
-    <el-dialog :title="title" :visible.sync="infoOpen" width="70%" append-to-body>
156
+    <el-dialog :title="title" :visible.sync="infoOpen" width="50%" append-to-body>
157 157
       <technical-tab :taskForm="taskForm"></technical-tab>
158 158
     </el-dialog>
159 159
   </div>
@@ -208,7 +208,9 @@ export default {
208 208
       },
209 209
       // 表单参数
210 210
       form: {},
211
-      taskForm: {},
211
+      taskForm: {
212
+        formId:''
213
+      },
212 214
       // 表单校验
213 215
       rules: {
214 216
       }

+ 24
- 7
oa-ui/src/views/oa/tender/index.vue View File

@@ -2,7 +2,8 @@
2 2
   <div class="app-container">
3 3
     <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
4 4
       <el-form-item label="投标项目名称" prop="projectName" label-width="100px">
5
-        <el-input v-model="queryParams.projectName" placeholder="请输入投标项目名称" clearable @keyup.enter.native="handleQuery" />
5
+        <el-input v-model="queryParams.projectName" placeholder="请输入投标项目名称" clearable
6
+          @keyup.enter.native="handleQuery" />
6 7
       </el-form-item>
7 8
       <el-form-item label="投标时间" prop="tenderTime">
8 9
         <el-date-picker clearable v-model="queryParams.tenderTime" type="date" value-format="yyyy-MM-dd"
@@ -38,14 +39,9 @@
38 39
     <el-table v-loading="loading" :data="tenderList" @selection-change="handleSelectionChange">
39 40
       <el-table-column type="selection" width="55" align="center" min-width="100px" />
40 41
       <el-table-column type="index" label="序号" width="55" align="center" min-width="100px" />
41
-      <!-- <el-table-column label="投标id" align="center" prop="tenderId" min-width="100px" /> -->
42 42
       <el-table-column label="投标项目名称" align="center" prop="projectName" min-width="100px" />
43 43
       <el-table-column label="招标业主" align="center" prop="partyA.partyAName" min-width="100px" />
44
-      <!-- <el-table-column label="业主联系人" align="center" prop="aPerson" min-width="100px" /> -->
45
-      <!-- <el-table-column label="业主联系电话" align="center" prop="aPhone" min-width="100px" /> -->
46 44
       <el-table-column label="招标代理" align="center" prop="agent" min-width="100px" />
47
-      <!-- <el-table-column label="代理联系人" align="center" prop="agentPerson" min-width="100px" /> -->
48
-      <!-- <el-table-column label="代理联系电话" align="center" prop="agentPhone" min-width="100px" /> -->
49 45
       <el-table-column label="招标地点" align="center" prop="place" min-width="100px" />
50 46
       <!-- <el-table-column label="投标部门" align="center" prop="dept" min-width="100px">
51 47
         <template slot-scope="scope">
@@ -121,10 +117,12 @@
121 117
               <span class="require_input">* </span>招标业主
122 118
             </template>
123 119
             <el-form-item prop="partyAId">
124
-              <el-select allow-create v-model="form.partyAId" filterable placeholder="请选择" style="width: 100%;" clearable>
120
+              <el-select allow-create v-model="form.partyAId" filterable disabled placeholder="请选择" style="width: 100%;"
121
+                clearable>
125 122
                 <el-option v-for="item in partyAList" :key="item.value" :label="item.partyAName" :value="item.partyAId">
126 123
                 </el-option>
127 124
               </el-select>
125
+              <el-button type="primary" @click="partyAOpen = true" size="mini">选择单位</el-button>
128 126
             </el-form-item>
129 127
           </el-descriptions-item>
130 128
           <el-descriptions-item>
@@ -381,6 +379,10 @@
381 379
         <el-button @click="cancel">取 消</el-button>
382 380
       </div>
383 381
     </el-dialog>
382
+
383
+    <el-dialog title="选择甲方单位" :visible.sync="partyAOpen" width="70%" append-to-body>
384
+      <ChoosePartyA @confirm="confirmPartyA"></ChoosePartyA>
385
+    </el-dialog>
384 386
   </div>
385 387
 </template>
386 388
 
@@ -390,8 +392,12 @@ import { listDept } from '@/api/system/dept'
390 392
 import { listUser, deptTreeSelect } from "@/api/system/user";
391 393
 import { Snowflake } from '@/utils/snowFlake.js'
392 394
 import { listPartyA } from "@/api/oa/partyA/partyA";
395
+import ChoosePartyA from '@/views/flowable/form/components/choosePartyA.vue';
393 396
 export default {
394 397
   name: "Tender",
398
+  components:{
399
+    ChoosePartyA
400
+  },
395 401
   data() {
396 402
     return {
397 403
       baseUrl: process.env.VUE_APP_BASE_API,
@@ -414,6 +420,7 @@ export default {
414 420
       title: "",
415 421
       // 是否显示弹出层
416 422
       open: false,
423
+      partyAOpen: false,
417 424
       isView: true,
418 425
       // 对话框属性
419 426
       dialogProperty: {
@@ -725,6 +732,16 @@ export default {
725 732
     toPath(url) {
726 733
       this.open = false
727 734
       this.reviewWord(url)
735
+    },
736
+    confirmPartyA(val) {
737
+      this.partyAOpen = false
738
+      if (val && val.length > 1) {
739
+        return this.$message.error('请选择一个甲方单位')
740
+      }
741
+      if (val) {
742
+        this.getPartyAList();
743
+        this.$set(this.form, 'partyAId', val[0].partyAId)
744
+      }
728 745
     }
729 746
   }
730 747
 };

Loading…
Cancel
Save