lamphua пре 1 година
родитељ
комит
64c7c48f55

+ 0
- 1
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcContractCommentController.java Прегледај датотеку

@@ -6,7 +6,6 @@ import java.util.Objects;
6 6
 import javax.servlet.http.HttpServletResponse;
7 7
 
8 8
 import com.ruoyi.common.utils.SnowFlake;
9
-import org.springframework.security.access.prepost.PreAuthorize;
10 9
 import org.springframework.beans.factory.annotation.Autowired;
11 10
 import org.springframework.web.bind.annotation.GetMapping;
12 11
 import org.springframework.web.bind.annotation.PostMapping;

+ 0
- 1
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcContractMeetingController.java Прегледај датотеку

@@ -6,7 +6,6 @@ import javax.servlet.http.HttpServletResponse;
6 6
 
7 7
 import com.alibaba.fastjson2.JSONObject;
8 8
 import com.ruoyi.common.utils.SnowFlake;
9
-import org.springframework.security.access.prepost.PreAuthorize;
10 9
 import org.springframework.beans.factory.annotation.Autowired;
11 10
 import org.springframework.web.bind.annotation.*;
12 11
 import com.ruoyi.common.annotation.Log;

+ 0
- 1
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcContractPaymentController.java Прегледај датотеку

@@ -4,7 +4,6 @@ import java.util.List;
4 4
 import javax.servlet.http.HttpServletResponse;
5 5
 
6 6
 import com.ruoyi.common.utils.SnowFlake;
7
-import org.springframework.security.access.prepost.PreAuthorize;
8 7
 import org.springframework.beans.factory.annotation.Autowired;
9 8
 import org.springframework.web.bind.annotation.GetMapping;
10 9
 import org.springframework.web.bind.annotation.PostMapping;

+ 0
- 1
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcContractWorkController.java Прегледај датотеку

@@ -4,7 +4,6 @@ import java.util.List;
4 4
 import javax.servlet.http.HttpServletResponse;
5 5
 
6 6
 import com.ruoyi.common.utils.SnowFlake;
7
-import org.springframework.security.access.prepost.PreAuthorize;
8 7
 import org.springframework.beans.factory.annotation.Autowired;
9 8
 import org.springframework.web.bind.annotation.GetMapping;
10 9
 import org.springframework.web.bind.annotation.PostMapping;

+ 0
- 7
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcPartnerController.java Прегледај датотеку

@@ -2,7 +2,6 @@ package com.ruoyi.web.controller.oa;
2 2
 
3 3
 import java.util.List;
4 4
 import javax.servlet.http.HttpServletResponse;
5
-import org.springframework.security.access.prepost.PreAuthorize;
6 5
 import org.springframework.beans.factory.annotation.Autowired;
7 6
 import org.springframework.web.bind.annotation.GetMapping;
8 7
 import org.springframework.web.bind.annotation.PostMapping;
@@ -37,7 +36,6 @@ public class CmcPartnerController extends BaseController
37 36
     /**
38 37
      * 查询cmc合作单位列表
39 38
      */
40
-    @PreAuthorize("@ss.hasPermi('oa:partner:list')")
41 39
     @GetMapping("/list")
42 40
     public TableDataInfo list(CmcPartner cmcPartner)
43 41
     {
@@ -49,7 +47,6 @@ public class CmcPartnerController extends BaseController
49 47
     /**
50 48
      * 导出cmc合作单位列表
51 49
      */
52
-    @PreAuthorize("@ss.hasPermi('oa:partner:export')")
53 50
     @Log(title = "cmc合作单位", businessType = BusinessType.EXPORT)
54 51
     @PostMapping("/export")
55 52
     public void export(HttpServletResponse response, CmcPartner cmcPartner)
@@ -62,7 +59,6 @@ public class CmcPartnerController extends BaseController
62 59
     /**
63 60
      * 获取cmc合作单位详细信息
64 61
      */
65
-    @PreAuthorize("@ss.hasPermi('oa:partner:query')")
66 62
     @GetMapping(value = "/{partnerId}")
67 63
     public AjaxResult getInfo(@PathVariable("partnerId") String partnerId)
68 64
     {
@@ -72,7 +68,6 @@ public class CmcPartnerController extends BaseController
72 68
     /**
73 69
      * 新增cmc合作单位
74 70
      */
75
-    @PreAuthorize("@ss.hasPermi('oa:partner:add')")
76 71
     @Log(title = "cmc合作单位", businessType = BusinessType.INSERT)
77 72
     @PostMapping
78 73
     public AjaxResult add(@RequestBody CmcPartner cmcPartner)
@@ -83,7 +78,6 @@ public class CmcPartnerController extends BaseController
83 78
     /**
84 79
      * 修改cmc合作单位
85 80
      */
86
-    @PreAuthorize("@ss.hasPermi('oa:partner:edit')")
87 81
     @Log(title = "cmc合作单位", businessType = BusinessType.UPDATE)
88 82
     @PutMapping
89 83
     public AjaxResult edit(@RequestBody CmcPartner cmcPartner)
@@ -94,7 +88,6 @@ public class CmcPartnerController extends BaseController
94 88
     /**
95 89
      * 删除cmc合作单位
96 90
      */
97
-    @PreAuthorize("@ss.hasPermi('oa:partner:remove')")
98 91
     @Log(title = "cmc合作单位", businessType = BusinessType.DELETE)
99 92
 	@DeleteMapping("/{partnerIds}")
100 93
     public AjaxResult remove(@PathVariable String[] partnerIds)

+ 0
- 1
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcProjectContractController.java Прегледај датотеку

@@ -2,7 +2,6 @@ package com.ruoyi.web.controller.oa;
2 2
 
3 3
 import java.util.List;
4 4
 import javax.servlet.http.HttpServletResponse;
5
-import org.springframework.security.access.prepost.PreAuthorize;
6 5
 import org.springframework.beans.factory.annotation.Autowired;
7 6
 import org.springframework.web.bind.annotation.GetMapping;
8 7
 import org.springframework.web.bind.annotation.PostMapping;

+ 5
- 1
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcSubContractController.java Прегледај датотеку

@@ -1,8 +1,8 @@
1 1
 package com.ruoyi.web.controller.oa;
2 2
 
3
+import java.util.Date;
3 4
 import java.util.List;
4 5
 import javax.servlet.http.HttpServletResponse;
5
-import org.springframework.security.access.prepost.PreAuthorize;
6 6
 import org.springframework.beans.factory.annotation.Autowired;
7 7
 import org.springframework.web.bind.annotation.GetMapping;
8 8
 import org.springframework.web.bind.annotation.PostMapping;
@@ -83,6 +83,10 @@ public class CmcSubContractController extends BaseController
83 83
     @PutMapping
84 84
     public AjaxResult edit(@RequestBody CmcSubContract cmcSubContract)
85 85
     {
86
+        if (cmcSubContract.getManagerComment() != null && cmcSubContract.getSignDate() == null) {
87
+            cmcSubContract.setManagerUserId(getLoginUser().getUserId());
88
+            cmcSubContract.setManagerTime(new Date());
89
+        }
86 90
         return toAjax(cmcSubContractService.updateCmcSubContract(cmcSubContract));
87 91
     }
88 92
 

+ 0
- 1
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcSupplyController.java Прегледај датотеку

@@ -2,7 +2,6 @@ package com.ruoyi.web.controller.oa;
2 2
 
3 3
 import java.util.List;
4 4
 import javax.servlet.http.HttpServletResponse;
5
-import org.springframework.security.access.prepost.PreAuthorize;
6 5
 import org.springframework.beans.factory.annotation.Autowired;
7 6
 import org.springframework.web.bind.annotation.GetMapping;
8 7
 import org.springframework.web.bind.annotation.PostMapping;

+ 13
- 0
oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/domain/CmcSubContract.java Прегледај датотеку

@@ -42,6 +42,10 @@ public class CmcSubContract extends BaseEntity
42 42
     @Excel(name = "承接单位联系人")
43 43
     private String contactPerson;
44 44
 
45
+    /** 合同文件 */
46
+    @Excel(name = "合同文件")
47
+    private String contractDocument;
48
+
45 49
     /** 拟稿人 */
46 50
     @Excel(name = "拟稿人")
47 51
     private Long drafter;
@@ -139,6 +143,15 @@ public class CmcSubContract extends BaseEntity
139 143
     {
140 144
         return contactPerson;
141 145
     }
146
+    public void setContractDocument(String contractDocument)
147
+    {
148
+        this.contractDocument = contractDocument;
149
+    }
150
+
151
+    public String getContractDocument()
152
+    {
153
+        return contractDocument;
154
+    }
142 155
     public void setDrafter(Long drafter)
143 156
     {
144 157
         this.drafter = drafter;

+ 6
- 1
oa-back/ruoyi-system/src/main/resources/mapper/oa/CmcSubContractMapper.xml Прегледај датотеку

@@ -11,6 +11,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
11 11
         <result property="subAmount"    column="sub_amount"    />
12 12
         <result property="partnerId"    column="partner_id"    />
13 13
         <result property="contactPerson"    column="contact_person"    />
14
+        <result property="contractDocument"    column="contract_document"    />
14 15
         <result property="drafter"    column="drafter"    />
15 16
         <result property="draftTime"    column="draft_time"    />
16 17
         <result property="remark"    column="remark"    />
@@ -36,7 +37,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
36 37
     </resultMap>
37 38
 
38 39
     <sql id="selectCmcSubContractVo">
39
-        select sc.sub_contract_id, sc.project_id, sc.sub_contract_name, sc.sub_amount, sc.partner_id, sc.contact_person, sc.drafter, u.nick_name as draft_nick_name, sc.draft_time,
40
+        select sc.sub_contract_id, sc.project_id, sc.sub_contract_name, sc.sub_amount, sc.partner_id, sc.contact_person, sc.contract_document, sc.drafter, u.nick_name as draft_nick_name, sc.draft_time,
40 41
                sc.remark, sc.sign_date, sc.sign_remark, sc.sign_scan, sc.comment_type, sc.manager_comment, sc.manager_user_id, u1.nick_name as manager_nick_name, sc.manager_time from cmc_sub_contract as sc
41 42
         left join sys_user as u on u.user_id = sc.drafter
42 43
         left join sys_user as u1 on u1.user_id = sc.manager_user_id
@@ -50,6 +51,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
50 51
             <if test="subAmount != null "> and sc.sub_amount = #{subAmount}</if>
51 52
             <if test="partnerId != null  and partnerId != ''"> and sc.partner_id = #{partnerId}</if>
52 53
             <if test="contactPerson != null  and contactPerson != ''"> and sc.contact_person = #{contactPerson}</if>
54
+            <if test="contractDocument != null  and contractDocument != ''"> and sc.contract_document = #{contractDocument}</if>
53 55
             <if test="drafter != null "> and sc.drafter = #{drafter}</if>
54 56
             <if test="draftTime != null "> and sc.draft_time = #{draftTime}</if>
55 57
             <if test="signDate != null "> and sc.sign_date = #{signDate}</if>
@@ -73,6 +75,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
73 75
             <if test="subAmount != null">sub_amount,</if>
74 76
             <if test="partnerId != null">partner_id,</if>
75 77
             <if test="contactPerson != null">contact_person,</if>
78
+            <if test="contractDocument != null">contract_document,</if>
76 79
             <if test="drafter != null">drafter,</if>
77 80
             <if test="draftTime != null">draft_time,</if>
78 81
             <if test="remark != null">remark,</if>
@@ -91,6 +94,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
91 94
             <if test="subAmount != null">#{subAmount},</if>
92 95
             <if test="partnerId != null">#{partnerId},</if>
93 96
             <if test="contactPerson != null">#{contactPerson},</if>
97
+            <if test="contractDocument != null">#{contractDocument},</if>
94 98
             <if test="drafter != null">#{drafter},</if>
95 99
             <if test="draftTime != null">#{draftTime},</if>
96 100
             <if test="remark != null">#{remark},</if>
@@ -112,6 +116,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
112 116
             <if test="subAmount != null">sub_amount = #{subAmount},</if>
113 117
             <if test="partnerId != null">partner_id = #{partnerId},</if>
114 118
             <if test="contactPerson != null">contact_person = #{contactPerson},</if>
119
+            <if test="contractDocument != null">contract_document = #{contractDocument},</if>
115 120
             <if test="drafter != null">drafter = #{drafter},</if>
116 121
             <if test="draftTime != null">draft_time = #{draftTime},</if>
117 122
             <if test="remark != null">remark = #{remark},</if>

+ 3
- 2
oa-back/sql/sql.sql
Разлика између датотеке није приказан због своје велике величине
Прегледај датотеку


+ 13
- 13
oa-ui/src/views/flowable/form/contractForm.vue Прегледај датотеку

@@ -7,7 +7,7 @@
7 7
         <el-form ref="form" :model="form" :rules="rules" label-width="130px">
8 8
           <el-row :gutter="20">
9 9
             <el-col :span="12" :xs="24">
10
-              <el-form-item label="投标项目名称:" prop="tenderName">
10
+              <el-form-item label="投标项目名称:" prop="tenderId">
11 11
                 <el-select v-model="form.tenderId" filterable placeholder="请选择" @change="handleSelectTender"
12 12
                   :disabled="taskName != '合同拟稿'" clearable>
13 13
                   <el-option v-for="item in tenderList" :key="item.value" :label="item.projectName"
@@ -116,11 +116,11 @@
116 116
                 </td>
117 117
                 <td>
118 118
                   <el-button type="danger" icon="el-icon-minus" size="mini" circle
119
-                    @click="deletWorkItem(index)"></el-button>
119
+                    @click="deletWorkItem(index)" :disabled="taskName != '合同拟稿'"></el-button>
120 120
                 </td>
121 121
               </tr>
122 122
             </table>
123
-            <el-button icon="el-icon-plus" size="mini" @click="addWorkList()" type="primary" plain></el-button>
123
+            <el-button icon="el-icon-plus" size="mini" @click="addWorkList()" type="primary" plain :disabled="taskName != '合同拟稿'"></el-button>
124 124
           </el-form-item>
125 125
           <el-form-item label="合同回款计划:">
126 126
             <table border="1">
@@ -157,11 +157,11 @@
157 157
                 </td>
158 158
                 <td>
159 159
                   <el-button type="danger" icon="el-icon-minus" size="mini" circle
160
-                    @click="deletPaymentItem(index)"></el-button>
160
+                    @click="deletPaymentItem(index)" :disabled="taskName != '合同拟稿'"></el-button>
161 161
                 </td>
162 162
               </tr>
163 163
             </table>
164
-            <el-button icon="el-icon-plus" size="mini" @click="addPaymentList()" type="primary" plain></el-button>
164
+            <el-button icon="el-icon-plus" size="mini" @click="addPaymentList()" type="primary" plain :disabled="taskName != '合同拟稿'"></el-button>
165 165
           </el-form-item>
166 166
           <el-form-item label="合同备注" prop="remark">
167 167
             <el-input v-model="form.remark" placeholder="请输入合同备注" :disabled="taskName != '合同拟稿'" />
@@ -231,11 +231,11 @@
231 231
                 </td>
232 232
                 <td>
233 233
                   <el-button type="danger" icon="el-icon-minus" size="mini" circle
234
-                    @click="deletCommentItem(index)"></el-button>
234
+                    @click="deletCommentItem(index)" :disabled="taskName != '合同拟稿'"></el-button>
235 235
                 </td>
236 236
               </tr>
237 237
             </table>
238
-            <el-button icon="el-icon-plus" size="mini" @click="addCommentList()" type="primary" plain></el-button>
238
+            <el-button icon="el-icon-plus" size="mini" @click="addCommentList()" type="primary" plain :disabled="taskName != '合同拟稿'"></el-button>
239 239
           </el-form-item>
240 240
           <el-form-item label="会议评审:" v-if="meetingOpen">
241 241
             <table border="1">
@@ -424,9 +424,15 @@ export default {
424 424
       },
425 425
       // 表单校验
426 426
       rules: {
427
+        tenderId: [
428
+          { required: true, message: '请选择投标项目', trigger: 'blur' },
429
+        ],
427 430
         contractCode: [
428 431
           { required: true, message: '请输入合同编码', trigger: 'blur' },
429 432
         ],
433
+        commentType: [
434
+          { required: true, message: '请选择评审方式', trigger: 'blur' },
435
+        ],
430 436
       },
431 437
       meetingOpen: false,
432 438
       commentOpen: false,
@@ -482,7 +488,6 @@ export default {
482 488
         },
483 489
       ],
484 490
       tenderList: [],
485
-      commentType: '',
486 491
       chooseTender: {},
487 492
       isSelect: false,
488 493
       formTotal: 0,
@@ -951,9 +956,4 @@ table {
951 956
   /*设置背景颜色*/
952 957
   /* background-color: #bfa; */
953 958
 }
954
-
955
-.auditor {
956
-  font-family: '华文行楷';
957
-  font-size: 20px;
958
-}
959 959
 </style>

+ 680
- 29
oa-ui/src/views/flowable/form/subContract.vue Прегледај датотеку

@@ -3,11 +3,12 @@
3 3
     <el-row :gutter="20">
4 4
       <el-col :span="18" :xs="24">
5 5
         <h2 class="text-center">分包合同评审表</h2>
6
-        <el-form ref="form" :model="form" :rules="rules" label-width="80px">
6
+        <el-form ref="form" :model="form" :rules="rules" label-width="130px">
7
+          <el-divider></el-divider>
7 8
           <el-form-item label="项目编号:" prop="projectId">
8 9
             <el-select v-model="form.projectId" filterable placeholder="请选择" @change="handleSelectProject"
9 10
               :disabled="taskName != '合同拟稿'" clearable>
10
-              <el-option v-for="item in projectList" :key="item.value" :label="item.projectNumber"
11
+              <el-option v-for="item in projectList" :key="item.value" :label="item.projectNumber + item.projectName"
11 12
                 :value="item.projectId">
12 13
               </el-option>
13 14
             </el-select>
@@ -16,8 +17,7 @@
16 17
               }}</el-descriptions-item>
17 18
               <el-descriptions-item label="项目名称" label-class-name="my-label">{{ chooseProject.projectName
18 19
               }}</el-descriptions-item>
19
-              <el-descriptions-item label="项目负责人" label-class-name="my-label">{{ chooseProject.projectLeaderUser ?
20
-                chooseProject.projectLeaderUser.nickName : ''
20
+              <el-descriptions-item label="甲方单位" label-class-name="my-label">{{ chooseProject.partyA
21 21
               }}</el-descriptions-item>
22 22
               <el-descriptions-item label="承担部门" label-class-name="my-label">
23 23
                 <el-tag size="small">{{ chooseProject.undertakingDeptName }}</el-tag>
@@ -26,22 +26,146 @@
26 26
               }}</el-descriptions-item>
27 27
             </el-descriptions>
28 28
           </el-form-item>
29
-          <el-form-item label="合同名称" prop="subContractName">
30
-            <el-input v-model="form.subContractName" placeholder="请输入合同名称" />
31
-          </el-form-item>
32
-          <el-form-item label="分包合同金额" prop="subAmount">
33
-            <el-input v-model="form.subAmount" placeholder="请输入分包合同金额" />
29
+          <el-row :gutter="20">
30
+            <el-col :span="8" :xs="24">
31
+              <el-form-item label="主合同金额" prop="amount">
32
+                <el-input v-model="chooseContract.amount" :disabled="true" />
33
+              </el-form-item>
34
+            </el-col>
35
+            <el-col :span="8" :xs="24">
36
+              <el-form-item label="合同编码" prop="contractCode">
37
+                <el-input v-model="chooseContract.contractCode" :disabled="true" />
38
+              </el-form-item>
39
+            </el-col>
40
+            <el-col :span="8" :xs="24">
41
+              <el-form-item label="合同编号" prop="contractNumber">
42
+                <el-input v-model="chooseContract.contractNumber" :disabled="true" />
43
+              </el-form-item>
44
+            </el-col>
45
+          </el-row>
46
+          <el-divider></el-divider>
47
+          <el-row :gutter="20">
48
+            <el-col :span="16" :xs="24">
49
+              <el-form-item label="分包合同名称" prop="subContractName">
50
+                <el-input v-model="form.subContractName" placeholder="请输入分包合同名称" :disabled="taskName != '合同拟稿'" />
51
+              </el-form-item>
52
+            </el-col>
53
+            <el-col :span="8" :xs="24">
54
+              <el-form-item label="分包合同金额" prop="subAmount">
55
+                <el-input v-model="form.subAmount" placeholder="请输入分包合同金额" :disabled="taskName != '合同拟稿'" />
56
+              </el-form-item>
57
+            </el-col>
58
+          </el-row>
59
+          <el-row :gutter="20">
60
+            <el-col :span="16" :xs="24">
61
+              <el-form-item label="承接单位" prop="partnerId">
62
+                <el-select v-model="form.partnerId" filterable placeholder="请选择" :disabled="taskName != '合同拟稿'" clearable>
63
+                  <el-option v-for="item in partnerList" :key="item.value" :label="item.partnerName"
64
+                    :value="item.partnerId">
65
+                  </el-option>
66
+                </el-select>
67
+              </el-form-item>
68
+            </el-col>
69
+            <el-col :span="8" :xs="24">
70
+              <el-form-item label="联系人" prop="contactPerson">
71
+                <el-input v-model="form.contactPerson" placeholder="请输入联系人" :disabled="taskName != '合同拟稿'" />
72
+              </el-form-item>
73
+            </el-col>
74
+          </el-row>
75
+
76
+          <el-form-item label="合同计划工作量:">
77
+            <table border="1">
78
+              <tr>
79
+                <td>序号</td>
80
+                <td>工作内容</td>
81
+                <td>等级或比例尺</td>
82
+                <td>单位</td>
83
+                <td>工作量</td>
84
+                <td>要求完成时间</td>
85
+                <td>备注</td>
86
+              </tr>
87
+              <tr v-for="(work, index) in workList" :key="index">
88
+                <td>
89
+                  {{ index + 1 }}
90
+                </td>
91
+                <td>
92
+                  <el-input v-model="work.content" type="textarea" clearable :autosize="{ minRows: 4, maxRows: 10 }"
93
+                    :disabled="taskName != '合同拟稿'"></el-input>
94
+                </td>
95
+                <td>
96
+                  <el-input v-model="work.scale" clearable :disabled="taskName != '合同拟稿'"></el-input>
97
+                </td>
98
+                <td>
99
+                  <el-input v-model="work.unit" clearable :disabled="taskName != '合同拟稿'"></el-input>
100
+                </td>
101
+                <td>
102
+                  <el-input v-model="work.workload" clearable :disabled="taskName != '合同拟稿'"></el-input>
103
+                </td>
104
+                <td>
105
+                  <el-date-picker style="width: 140px" v-model="work.deadline" value-format="yyyy-MM-dd" type="date"
106
+                    placeholder="选择日期" :disabled="taskName != '合同拟稿'">
107
+                  </el-date-picker>
108
+                </td>
109
+                <td>
110
+                  <el-input v-model="work.remark" type="textarea" clearable :autosize="{ minRows: 4, maxRows: 10 }"
111
+                    :disabled="taskName != '合同拟稿'"></el-input>
112
+                </td>
113
+                <td>
114
+                  <el-button type="danger" icon="el-icon-minus" size="mini" circle
115
+                    @click="deletWorkItem(index)" :disabled="taskName != '合同拟稿'"></el-button>
116
+                </td>
117
+              </tr>
118
+            </table>
119
+            <el-button icon="el-icon-plus" size="mini" @click="addWorkList()" type="primary" plain :disabled="taskName != '合同拟稿'"></el-button>
34 120
           </el-form-item>
35
-          <el-form-item label="承接单位id" prop="partnerId">
36
-            <el-input v-model="form.partnerId" placeholder="请输入承接单位id" />
121
+          <el-form-item label="合同付款计划:">
122
+            <table border="1">
123
+              <tr>
124
+                <td>序号</td>
125
+                <td>付款条件</td>
126
+                <td>付款比例(%)</td>
127
+                <td>付款金额(元)</td>
128
+                <td>预计时间</td>
129
+                <td>备注</td>
130
+              </tr>
131
+              <tr v-for="(payment, index) in paymentList" :key="index">
132
+                <td>
133
+                  {{ index + 1 }}
134
+                </td>
135
+                <td>
136
+                  <el-input v-model="payment.paymentCondition" type="textarea" clearable
137
+                    :autosize="{ minRows: 4, maxRows: 10 }" :disabled="taskName != '合同拟稿'"></el-input>
138
+                </td>
139
+                <td>
140
+                  <el-input v-model="payment.paymentPercentage" clearable :disabled="taskName != '合同拟稿'"></el-input>
141
+                </td>
142
+                <td>
143
+                  <el-input v-model="payment.paymentAmount" clearable :disabled="taskName != '合同拟稿'"></el-input>
144
+                </td>
145
+                <td>
146
+                  <el-date-picker style="width: 140px" v-model="payment.paymentTime" value-format="yyyy-MM-dd" type="date"
147
+                    placeholder="选择日期" :disabled="taskName != '合同拟稿'">
148
+                  </el-date-picker>
149
+                </td>
150
+                <td>
151
+                  <el-input v-model="payment.remark" type="textarea" clearable :autosize="{ minRows: 4, maxRows: 10 }"
152
+                    :disabled="taskName != '合同拟稿'"></el-input>
153
+                </td>
154
+                <td>
155
+                  <el-button type="danger" icon="el-icon-minus" size="mini" circle
156
+                    @click="deletPaymentItem(index)" :disabled="taskName != '合同拟稿'"></el-button>
157
+                </td>
158
+              </tr>
159
+            </table>
160
+            <el-button icon="el-icon-plus" size="mini" @click="addPaymentList()" type="primary" plain :disabled="taskName != '合同拟稿'"></el-button>
37 161
           </el-form-item>
38
-          <el-form-item label="承接单位联系人" prop="contactPerson">
39
-            <el-input v-model="form.contactPerson" placeholder="请输入承接单位联系人" />
162
+          <el-form-item label="合同备注" prop="remark">
163
+            <el-input v-model="form.remark" placeholder="请输入合同备注" :disabled="taskName != '合同拟稿'" />
40 164
           </el-form-item>
41 165
           <el-row>
42 166
             <el-col :span="6" :xs="24" :offset="12">
43 167
               <el-form-item label="拟稿人:" label-width="120px">
44
-                <span class="auditor"> {{ form.draftUser ? form.draftUser.nickName : drafter }} </span>
168
+                <span class="auditor"> {{ form.draftUser ? form.draftUser.nickName : draftUser }} </span>
45 169
               </el-form-item>
46 170
             </el-col>
47 171
             <el-col :span="6">
@@ -50,21 +174,153 @@
50 174
               </el-form-item>
51 175
             </el-col>
52 176
           </el-row>
53
-          <el-form-item label="合同备注" prop="remark">
54
-            <el-input v-model="form.remark" placeholder="请输入合同备注" />
177
+          <el-form-item label="评审方式" prop="commentType">
178
+            <el-radio-group v-model="form.commentType" @change="changeCommentType" :disabled="taskName != '合同拟稿'">
179
+              <el-radio :label="'0'">无须评审</el-radio>
180
+              <el-radio :label="'1'">会议评审</el-radio>
181
+              <el-radio :label="'2'">线上会审</el-radio>
182
+            </el-radio-group>
55 183
           </el-form-item>
184
+          <el-form-item label="线上会审:" v-if="commentOpen">
185
+            <table border="1">
186
+              <tr>
187
+                <td>序号</td>
188
+                <td>会审部门</td>
189
+                <td>会审人</td>
190
+                <td>会审意见</td>
191
+                <td>会审附件</td>
192
+                <td>签名</td>
193
+                <td>日期</td>
194
+              </tr>
195
+              <tr v-for="(comment, index) in commentList" :key="index">
196
+                <td>
197
+                  {{ index + 1 }}
198
+                </td>
199
+                <td>
200
+                  <el-select v-model="comment.deptId" clearable style="width:120px"
201
+                    :disabled="(index < 4 && taskName == '合同拟稿') || taskName != '合同拟稿'" @change="getDeptLeader">
202
+                    <el-option v-for="item in deptList" :key="item.deptId" :label="item.deptName" :value="item.deptId">
203
+                    </el-option>
204
+                  </el-select>
205
+                </td>
206
+                <td>
207
+                  <el-select v-model="comment.userId" clearable style="width:120px"
208
+                    :disabled="(index < 4 && taskName == '合同拟稿') || taskName != '合同拟稿'">
209
+                    <el-option v-for="item in userList" :key="item.userId" :label="item.nickName" :value="item.userId">
210
+                    </el-option>
211
+                  </el-select>
212
+                </td>
213
+                <td>
214
+                  <el-input v-model="comment.comment" type="textarea" clearable :autosize="{ minRows: 4, maxRows: 10 }"
215
+                    :disabled="taskName != '线上会审' || (taskName == '线上会审' && !comment.commentUser)"></el-input>
216
+                </td>
217
+                <td>
218
+                  <el-input v-model="comment.document" clearable
219
+                    :disabled="taskName != '线上会审' || (taskName == '线上会审' && !comment.commentUser)"></el-input>
220
+                </td>
221
+                <td>
222
+                  <span class="auditor"> {{ comment.commentUser ? comment.commentUser.nickName : '' }} </span>
223
+                </td>
224
+                <td>
225
+                  <span> {{ comment.commentTime }} </span>
226
+                </td>
227
+                <td>
228
+                  <el-button type="danger" icon="el-icon-minus" size="mini" circle
229
+                    @click="deletCommentItem(index)" :disabled="taskName != '合同拟稿'"></el-button>
230
+                </td>
231
+              </tr>
232
+            </table>
233
+            <el-button icon="el-icon-plus" size="mini" @click="addCommentList()" type="primary" plain :disabled="taskName != '合同拟稿'"></el-button>
234
+          </el-form-item>
235
+          <el-form-item label="会议评审:" v-if="meetingOpen">
236
+            <table border="1">
237
+              <tr>
238
+                <td>评审时间</td>
239
+                <td>
240
+                  <el-date-picker clearable v-model="meetingForm.meetingTime" type="date" value-format="yyyy-MM-dd"
241
+                    placeholder="请选择评审日期" :disabled="taskName != '合同拟稿'">
242
+                  </el-date-picker>
243
+                </td>
244
+                <td>评审地点</td>
245
+                <td>
246
+                  <el-select v-model="meetingForm.place" clearable style="width:120px" :disabled="taskName != '合同拟稿'">
247
+                    <el-option v-for="item in placeList" :key="item.id" :label="item.name" :value="item.id">
248
+                    </el-option>
249
+                  </el-select>
250
+                </td>
251
+                <td>评审主持人</td>
252
+                <td>
253
+                  <el-select v-model="meetingForm.hostId" clearable style="width:120px" :disabled="taskName != '合同拟稿'">
254
+                    <el-option v-for="item in userList" :key="item.userId" :label="item.nickName" :value="item.userId">
255
+                    </el-option>
256
+                  </el-select>
257
+                </td>
258
+              </tr>
259
+              <tr>
260
+                <td>参与评审人员</td>
261
+                <td colspan="5">
262
+                  <el-select v-model="meetingForm.users" multiple clearable style="width:600px"
263
+                    :disabled="taskName != '合同拟稿'">
264
+                    <el-option v-for="item in userList" :key="item.userId" :label="item.nickName" :value="item.userId">
265
+                    </el-option>
266
+                  </el-select>
267
+                </td>
268
+              </tr>
269
+              <tr>
270
+                <td>评审意见表</td>
271
+                <td colspan="5">
272
+                  <el-input v-model="meetingForm.document" clearable :disabled="taskName != '会议评审'"></el-input>
273
+                </td>
274
+              </tr>
275
+              <tr>
276
+                <td>评审结论</td>
277
+                <td colspan="5">
278
+                  <el-input type="textarea" v-model="meetingForm.conclusion" clearable
279
+                    :disabled="taskName != '会议评审'"></el-input>
280
+                </td>
281
+              </tr>
282
+              <tr>
283
+                <td colspan="2"></td>
284
+                <td>主持人签名</td>
285
+                <td>
286
+                  <span class="auditor"> {{ meetingForm.hostUser ? meetingForm.hostUser.nickName : hostUser }} </span>
287
+                </td>
288
+                <td>日期</td>
289
+                <td>
290
+                  <span> {{ meetingForm.commentTime ? meetingForm.commentTime : commentTime }} </span>
291
+                </td>
292
+              </tr>
293
+            </table>
294
+          </el-form-item>
295
+          <el-form-item label="分管审批意见" prop="remark">
296
+            <el-input v-model="form.managerComment" placeholder="请输入分管审批意见" :disabled="taskName != '分管审核'" />
297
+          </el-form-item>
298
+          <el-row>
299
+            <el-col :span="6" :xs="24" :offset="12">
300
+              <el-form-item label="签名:" label-width="120px" v-if="taskName == '分管审核'">
301
+                <span class="auditor"> {{ form.managerUser ? form.managerUser.nickName : managerUser }} </span>
302
+              </el-form-item>
303
+            </el-col>
304
+            <el-col :span="6">
305
+              <el-form-item label="日期:" label-width="120px" v-if="taskName == '分管审核'">
306
+                <span> {{ form.managerTime ? form.managerTime : managerTime }} </span>
307
+              </el-form-item>
308
+            </el-col>
309
+          </el-row>
310
+          <el-divider></el-divider>
56 311
           <el-form-item label="签订日期" prop="signDate">
57
-            <el-date-picker clearable v-model="form.signDate" type="date" value-format="yyyy-MM-dd" placeholder="请选择签订日期">
312
+            <el-date-picker clearable v-model="form.signDate" type="date" value-format="yyyy-MM-dd" placeholder="请选择签订日期"
313
+              :disabled="taskName != '合同签订'">
58 314
             </el-date-picker>
59 315
           </el-form-item>
60 316
           <el-form-item label="签订备注" prop="signRemark">
61
-            <el-input v-model="form.signRemark" placeholder="请输入签订备注" />
317
+            <el-input v-model="form.signRemark" placeholder="请输入签订备注" :disabled="taskName != '合同签订'" />
62 318
           </el-form-item>
63 319
           <el-form-item label="签订扫描件" prop="signScan">
64
-            <el-input v-model="form.signScan" placeholder="请输入签订扫描件" />
320
+            <el-input v-model="form.signScan" placeholder="请输入签订扫描件" :disabled="taskName != '合同签订'" />
65 321
           </el-form-item>
66 322
         </el-form>
67
-        <div slot="footer" class="dialog-footer">
323
+        <div style="text-align: center;">
68 324
           <el-button type="primary" @click="submitForm">确 定</el-button>
69 325
           <el-button @click="cancel">取 消</el-button>
70 326
         </div>
@@ -84,9 +340,20 @@
84 340
 <script>
85 341
 import { parseTime } from "@/utils/ruoyi";
86 342
 import { listProject, getProject } from "@/api/oa/project/project";
343
+import { listDept } from '@/api/system/dept'
344
+import { listUser } from '@/api/system/user'
345
+import { listPartner } from "@/api/oa/partner/partner";
346
+import { getContractWork, addContractWork } from "@/api/oa/contract/contractWork";
347
+import { getContractPayment, addContractPayment } from "@/api/oa/contract/contractPayment";
348
+import { getContractComment, addContractComment, updateContractComment } from "@/api/oa/contract/contractComment";
349
+import { getContractMeeting, addContractMeeting, updateContractMeeting } from "@/api/oa/contract/contractMeeting";
350
+import { getProjectContract } from "@/api/oa/contract/projectContract";
351
+import { getContract } from "@/api/oa/contract/contract";
87 352
 import { listSubContract, getSubContract, delSubContract, addSubContract, updateSubContract } from "@/api/oa/contract/subContract";
353
+import { getUsersDeptLeader, getUsersManageLeader, getUsersDeptLeaderByDept } from '@/api/system/post.js'
88 354
 import flow from '@/views/flowable/task/todo/detail/flow'
89 355
 import { flowXmlAndNode } from "@/api/flowable/definition";
356
+import { complete, rejectTask, returnList, returnTask, getNextFlowNode, delegate, flowTaskForm, } from "@/api/flowable/todo";
90 357
 export default {
91 358
   components: {
92 359
     flow
@@ -104,8 +371,12 @@ export default {
104 371
   name: "SubContract",
105 372
   data() {
106 373
     return {
107
-      drafter: '',
374
+      draftUser: '',
108 375
       draftTime: undefined,
376
+      managerUser: '',
377
+      managerTime: undefined,
378
+      hostUser: '',
379
+      commentTime: undefined,
109 380
       // 遮罩层
110 381
       loading: true,
111 382
       // 选中数组
@@ -142,10 +413,82 @@ export default {
142 413
       },
143 414
       // 表单参数
144 415
       form: {},
416
+      meetingForm: {
417
+        users: [],
418
+      },
145 419
       // 表单校验
146 420
       rules: {
421
+        projectId: [
422
+          { required: true, message: '请选择登记项目', trigger: 'blur' },
423
+        ],
424
+        partnerId: [
425
+          { required: true, message: '请选择承接单位', trigger: 'blur' },
426
+        ],
427
+        subContractName: [
428
+          { required: true, message: '请输入分包合同名称', trigger: 'blur' },
429
+        ],
430
+        subAmount: [
431
+          { required: true, message: '请输入分包合同额', trigger: 'blur' },
432
+        ],
433
+        commentType: [
434
+          { required: true, message: '请选择评审方式', trigger: 'blur' },
435
+        ],
147 436
       },
437
+      meetingOpen: false,
438
+      commentOpen: false,
439
+      projectList: [],
440
+      partnerList: [],
148 441
       chooseProject: {},
442
+      chooseContract: {},
443
+      deptList: [],
444
+      userList: [],
445
+      users: undefined,
446
+      workList: [{
447
+        content: "",
448
+        scale: "",
449
+        unit: "",
450
+        workload: "",
451
+        deadline: undefined,
452
+        remark: "",
453
+      }],
454
+      paymentList: [{
455
+        paymentCondition: "",
456
+        paymentPercentage: "",
457
+        paymentAmount: "",
458
+        paymentTime: undefined,
459
+        remark: "",
460
+      }],
461
+      placeList: [{ id: '0', name: '301会议室' }, { id: '1', name: '216会议室' }],
462
+      commentList: [
463
+        {
464
+          deptId: 105,
465
+          userId: '',
466
+          comment: '',
467
+          document: '',
468
+          commentTime: undefined
469
+        },
470
+        {
471
+          deptId: 110,
472
+          userId: '',
473
+          comment: '',
474
+          document: '',
475
+          commentTime: undefined
476
+        },
477
+        {
478
+          deptId: 107,
479
+          userId: '',
480
+          comment: '',
481
+          document: '',
482
+          commentTime: undefined
483
+        },
484
+        {
485
+          deptId: 106,
486
+          userId: '',
487
+          comment: '',
488
+          document: '',
489
+          commentTime: undefined
490
+        },
491
+      ],
149 492
       isSelect: false,
150 493
       formTotal: 0,
151 494
       flowData: {},
@@ -153,16 +496,107 @@ export default {
153 496
   },
154 497
   created() {
155 498
     if (this.taskName == '合同拟稿') {
156
-      this.drafter = this.$store.getters.name;
499
+      this.draftUser = this.$store.getters.name;
157 500
       this.draftTime = parseTime(new Date(), '{y}-{m}-{d}')
158 501
     }
502
+    else if (this.taskName == '会议评审') {
503
+      this.hostUser = this.$store.getters.name;
504
+      this.commentTime = parseTime(new Date(), '{y}-{m}-{d}')
505
+    }
506
+    else if (this.taskName == '分管审核') {
507
+      this.managerUser = this.$store.getters.name;
508
+      this.managerTime = parseTime(new Date(), '{y}-{m}-{d}')
509
+    }
159 510
     this.getProjectList();
511
+    this.getPartnerList();
512
+    this.getDeptList();
513
+    this.getUserList();
160 514
     this.getList();
161 515
     flowXmlAndNode({ procInsId: this.taskForm.procInsId, deployId: this.taskForm.deployId }).then(res => {
162 516
       this.flowData = res.data;
163 517
     })
164 518
   },
519
+  mounted() {
520
+    this.initForm();
521
+  },
165 522
   methods: {
523
+    initForm() {
524
+      getSubContract(this.taskForm.formId).then(res => {
525
+        if (this.isEmptyObject(res.data)) {
526
+          this.formTotal = 0;
527
+          this.form.drafter = this.$store.getters.userId;
528
+          this.form.draftTime = parseTime(new Date(), '{y}-{m}-{d}');
529
+        }
530
+        else {
531
+          this.formTotal = 1;
532
+          this.form = res.data;
533
+          if (this.form.commentType == '0') {
534
+            this.commentOpen = false;
535
+            this.meetingOpen = false;
536
+          }
537
+          else if (this.form.commentType == '1') {
538
+            this.commentOpen = false;
539
+            this.meetingOpen = true;
540
+          }
541
+          else if (this.form.commentType == '2') {
542
+            this.commentOpen = true;
543
+            this.meetingOpen = false;
544
+          }
545
+          if (res.data.projectId) {
546
+            getProject(res.data.projectId).then(res => {
547
+              this.chooseProject = res.data;
548
+              this.isSelect = true
549
+              getProjectContract(this.chooseProject.projectId).then(response => {
550
+                if (response.data)
551
+                  getContract(response.data.contractId).then(r => {
552
+                    this.chooseContract = r.data;
553
+                  });
554
+                else
555
+                  this.chooseContract = {};
556
+              })
557
+            })
558
+          }
559
+          getContractWork(this.taskForm.formId).then(res => {
560
+            if (res.data)
561
+              this.workList = res.data;
562
+          });
563
+          getContractPayment(this.taskForm.formId).then(res => {
564
+            if (res.data)
565
+              this.paymentList = res.data;
566
+          });
567
+          getContractComment(this.taskForm.formId).then(res => {
568
+            if (res.data)
569
+              this.commentList = res.data;
570
+            for (let comment of this.commentList) {
571
+              if (comment.commentTime == undefined) {
572
+                if (comment.userId != this.$store.getters.userId) {
573
+                  comment.commentUser = undefined;
574
+                }
575
+                else {
576
+                  comment.commentTime = parseTime(new Date(), '{y}-{m}-{d}');
577
+                }
578
+              }
579
+            }
580
+          });
581
+          getContractMeeting(this.taskForm.formId).then(res => {
582
+            if (res.data) {
583
+              let data = res.data;
584
+              if (res.data.users == null || res.data.users == undefined || res.data.users == "") {
585
+                data.users = []
586
+              } else {
587
+                data.users = data.users.split(',');
588
+                let arr = []
589
+                for (let d of data.users) {
590
+                  arr.push(parseInt(d))
591
+                }
592
+                data.users = arr;
593
+              }
594
+              this.meetingForm = data;
595
+            }
596
+          });
597
+        }
598
+      })
599
+    },
166 600
     /** 查询cmc分包合同评审列表 */
167 601
     getList() {
168 602
       this.loading = true;
@@ -172,6 +606,16 @@ export default {
172 606
         this.loading = false;
173 607
       });
174 608
     },
609
+    // 查询承接单位列表
610
+    getPartnerList() {
611
+      this.loading = true
612
+      listPartner({
613
+        pageNum: 1,
614
+        pageSize: 99999999
615
+      }).then(response => {
616
+        this.partnerList = response.rows;
617
+      })
618
+    },
175 619
     // 查询项目列表
176 620
     getProjectList() {
177 621
       this.loading = true
@@ -182,23 +626,130 @@ export default {
182 626
         this.projectList = response.rows;
183 627
       })
184 628
     },
629
+    getUserList() {
630
+      listUser({ pageSize: 9999, pageNum: 1 }).then(res => {
631
+        this.userList = res.rows
632
+      })
633
+    },
634
+    getDeptList() {
635
+      listDept({ pageSize: 9999, pageNum: 1 }).then(res => {
636
+        this.deptList = res.data
637
+      })
638
+    },
185 639
     // 选择项目
186 640
     handleSelectProject(val) {
187 641
       if (val != "" && val != undefined && val != null) {
188 642
         getProject(val).then(res => {
189 643
           this.chooseProject = res.data;
190
-          this.isSelect = true
644
+          this.isSelect = true;
645
+          getProjectContract(this.chooseProject.projectId).then(response => {
646
+            if (response.data)
647
+              getContract(response.data.contractId).then(r => {
648
+                this.chooseContract = r.data;
649
+              });
650
+            else
651
+              this.chooseContract = {};
652
+          })
191 653
         })
192 654
       } else {
193 655
         this.isSelect = false
194 656
       }
195
-
196 657
     },
197 658
     // 取消按钮
198 659
     cancel() {
199 660
       this.open = false;
200 661
       this.reset();
201 662
     },
663
+    isEmptyObject(obj) {
664
+      for (var key in obj) {
665
+        if (obj.hasOwnProperty(key)) {
666
+          return false;
667
+        }
668
+      }
669
+      return true;
670
+    },
671
+    addWorkList() {
672
+      this.workList.push({
673
+        content: "",
674
+        scale: "",
675
+        unit: "",
676
+        workload: "",
677
+        deadline: undefined,
678
+        remark: "",
679
+      });
680
+    },
681
+    addPaymentList() {
682
+      this.paymentList.push({
683
+        paymentCondition: "",
684
+        paymentPercentage: "",
685
+        paymentAmount: "",
686
+        paymentTime: undefined,
687
+        remark: "",
688
+      });
689
+    },
690
+    addCommentList() {
691
+      this.commentList.push({
692
+        deptId: "",
693
+        userId: "",
694
+        comment: "",
695
+        document: "",
696
+        commentTime: undefined,
697
+      });
698
+    },
699
+    deletWorkItem(index) {
700
+      let arr = this.workList;
701
+      if (arr.length == 1) {
702
+        return;
703
+      }
704
+      if (index >= 0 && index < arr.length) {
705
+        arr.splice(index, 1);
706
+      }
707
+    },
708
+    deletPaymentItem(index) {
709
+      let arr = this.paymentList;
710
+      if (arr.length == 1) {
711
+        return;
712
+      }
713
+      if (index >= 0 && index < arr.length) {
714
+        arr.splice(index, 1);
715
+      }
716
+    },
717
+    deletCommentItem(index) {
718
+      let arr = this.commentList;
719
+      if (arr.length == 1) {
720
+        return;
721
+      }
722
+      if (index >= 0 && index < arr.length) {
723
+        arr.splice(index, 1);
724
+      }
725
+    },
726
+    changeCommentType(val) {
727
+      if (val == '0') {
728
+        this.commentOpen = false;
729
+        this.meetingOpen = false;
730
+      }
731
+      else if (val == '1') {
732
+        this.commentOpen = false;
733
+        this.meetingOpen = true;
734
+      }
735
+      else if (val == '2') {
736
+        this.commentOpen = true;
737
+        this.meetingOpen = false;
738
+        for (let comment of this.commentList) {
739
+          getUsersDeptLeaderByDept({ deptId: comment.deptId }).then(res => {
740
+            comment.userId = res.data.userId;
741
+          })
742
+        }
743
+      }
744
+    },
745
+    getDeptLeader(val) {
746
+      getUsersDeptLeaderByDept({ deptId: Number(val) }).then(res => {
747
+        for (let comment of this.commentList) {
748
+          if (comment.deptId == val)
749
+            comment.userId = res.data.userId;
750
+        }
751
+      })
752
+    },
202 753
     // 表单重置
203 754
     reset() {
204 755
       this.form = {
@@ -254,18 +805,112 @@ export default {
254 805
     submitForm() {
255 806
       this.$refs["form"].validate(valid => {
256 807
         if (valid) {
257
-          if (this.form.subContractId != null) {
808
+          if (this.formTotal != 0) {
258 809
             updateSubContract(this.form).then(response => {
259 810
               this.$modal.msgSuccess("修改成功");
260 811
               this.open = false;
261 812
               this.getList();
262 813
             });
814
+            const params = { taskId: this.taskForm.taskId };
815
+            getNextFlowNode(params).then(res => {
816
+              updateSubContract(this.form);
817
+              if (this.taskName == '分管审核') {
818
+                complete(this.taskForm).then(response => {
819
+                  this.$modal.msgSuccess(response.msg);
820
+                  this.$emit('goBack')
821
+                });
822
+              }
823
+              else if (this.taskName == '线上会审') {
824
+                for (let comment of this.commentList) {
825
+                  updateContractComment(comment);
826
+                }
827
+                getUsersManageLeader({ userId: this.form.drafter }).then(res => {
828
+                  let userId = res.data.userId;
829
+                  this.$set(this.taskForm.variables, "approval", userId);
830
+                  complete(this.taskForm).then(response => {
831
+                    this.$modal.msgSuccess(response.msg);
832
+                    this.$emit('goBack')
833
+                  });
834
+                })
835
+              }
836
+              else if (this.taskName == '会议评审') {
837
+                this.meetingForm.contractId = this.form.subContractId;
838
+                let formData = new FormData();
839
+                let jsonForm = JSON.stringify(this.meetingForm);
840
+                formData.append("form", jsonForm);
841
+                updateContractMeeting(formData);
842
+                getUsersManageLeader({ userId: this.form.drafter }).then(res => {
843
+                  let userId = res.data.userId;
844
+                  this.$set(this.taskForm.variables, "approval", userId);
845
+                  complete(this.taskForm).then(response => {
846
+                    this.$modal.msgSuccess(response.msg);
847
+                    this.$emit('goBack')
848
+                  });
849
+                })
850
+              }
851
+              else if (this.taskName == '合同签订') {
852
+                complete(this.taskForm).then(response => {
853
+                  this.$modal.msgSuccess(response.msg);
854
+                  this.$emit('goBack')
855
+                });
856
+              }
857
+            })
263 858
           } else {
859
+            this.form.subContractId = this.taskForm.formId;
264 860
             addSubContract(this.form).then(response => {
265 861
               this.$modal.msgSuccess("新增成功");
266 862
               this.open = false;
267 863
               this.getList();
268 864
             });
865
+            for (let work of this.workList) {
866
+              work.contractId = this.form.subContractId
867
+              addContractWork(work);
868
+            }
869
+            for (let payment of this.paymentList) {
870
+              payment.contractId = this.form.subContractId
871
+              addContractPayment(payment);
872
+            }
873
+            const params = { taskId: this.taskForm.taskId };
874
+            getNextFlowNode(params).then(res => {
875
+              if (this.commentOpen == false && this.meetingOpen == false) {
876
+                getUsersManageLeader({ userId: this.$store.getters.userId }).then(res => {
877
+                  let userId = res.data.userId;
878
+                  this.$set(this.taskForm.variables, "approval", userId);
879
+                  this.$set(this.taskForm.variables, "commentType", '0');
880
+                  complete(this.taskForm).then(response => {
881
+                    this.$modal.msgSuccess(response.msg);
882
+                    this.$emit('goBack')
883
+                  });
884
+                })
885
+              }
886
+              else if (this.commentOpen == true && this.meetingOpen == false) {
887
+                let approvalList = [];
888
+                for (let comment of this.commentList) {
889
+                  comment.contractId = this.form.subContractId
890
+                  addContractComment(comment);
891
+                  approvalList.push(comment.userId)
892
+                }
893
+                this.$set(this.taskForm.variables, "approvalList", approvalList);
894
+                this.$set(this.taskForm.variables, "commentType", '2');
895
+                complete(this.taskForm).then(response => {
896
+                  this.$modal.msgSuccess(response.msg);
897
+                  this.$emit('goBack')
898
+                });
899
+              }
900
+              else if (this.commentOpen == false && this.meetingOpen == true) {
901
+                this.meetingForm.contractId = this.form.subContractId;
902
+                let formData = new FormData();
903
+                let jsonForm = JSON.stringify(this.meetingForm);
904
+                formData.append("form", jsonForm);
905
+                addContractMeeting(formData);
906
+                this.$set(this.taskForm.variables, "approval", this.meetingForm.hostId);
907
+                this.$set(this.taskForm.variables, "commentType", '1');
908
+                complete(this.taskForm).then(response => {
909
+                  this.$modal.msgSuccess(response.msg);
910
+                  this.$emit('goBack')
911
+                });
912
+              }
913
+            })
269 914
           }
270 915
         }
271 916
       });
@@ -290,9 +935,15 @@ export default {
290 935
 };
291 936
 </script>
292 937
 
293
-<style>
294
-.auditor {
295
-  font-family: '华文行楷';
296
-  font-size: 20px;
938
+<style lang="scss" scoped>
939
+table {
940
+  /*居中*/
941
+  margin: 0 auto;
942
+  /*边框*/
943
+  /* border: 1px solid black; */
944
+  text-align: center;
945
+  border-collapse: collapse;
946
+  /*设置背景颜色*/
947
+  /* background-color: #bfa; */
297 948
 }
298 949
 </style>

Loading…
Откажи
Сачувај