浏览代码

完善项目结算流程

余思翰 1年前
父节点
当前提交
87549139bc

+ 2
- 1
oa-back/ruoyi-system/src/main/resources/mapper/oa/CmcSettleMapper.xml 查看文件

@@ -40,7 +40,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
40 40
 
41 41
     <select id="selectCmcSettleList" parameterType="CmcSettle" resultMap="CmcSettleResult">
42 42
         <include refid="selectCmcSettleVo"/>
43
-        <where>  
43
+        <where>
44
+            <if test="settleId != null  and settleId != ''"> and settle_id = #{settleId}</if>
44 45
             <if test="projectId != null  and projectId != ''"> and project_id = #{projectId}</if>
45 46
             <if test="workloadReport != null  and workloadReport != ''"> and workload_report = #{workloadReport}</if>
46 47
             <if test="reporter != null "> and reporter = #{reporter}</if>

+ 1
- 0
oa-back/ruoyi-system/src/main/resources/mapper/oa/CmcSettleSummaryMapper.xml 查看文件

@@ -27,6 +27,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
27 27
             <if test="amountXm != null "> and amount_xm = #{amountXm}</if>
28 28
             <if test="amountManager != null "> and amount_manager = #{amountManager}</if>
29 29
         </where>
30
+        order by #{summaryId} asc
30 31
     </select>
31 32
     
32 33
     <select id="selectCmcSettleSummaryBySettleId" parameterType="String" resultMap="CmcSettleSummaryResult">

+ 1
- 0
oa-back/ruoyi-system/src/main/resources/mapper/oa/CmcSettleWorkMapper.xml 查看文件

@@ -35,6 +35,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
35 35
             <if test="settleXm != null "> and settle_xm = #{settleXm}</if>
36 36
             <if test="settleManager != null "> and settle_manager = #{settleManager}</if>
37 37
         </where>
38
+        order by  #{workId} asc
38 39
     </select>
39 40
     
40 41
     <select id="selectCmcSettleWorkBySettleId" parameterType="String" resultMap="CmcSettleWorkResult">

+ 596
- 97
oa-back/sql/cmc_oa(小余测试数据).sql
文件差异内容过多而无法显示
查看文件


+ 10
- 1
oa-ui/src/views/flowable/form/conditionDisplay/index.vue 查看文件

@@ -1,3 +1,9 @@
1
+<!--
2
+ * @Author: ysh
3
+ * @Date: 2024-04-23 17:08:16
4
+ * @LastEditors: Please set LastEditors
5
+ * @LastEditTime: 2024-05-07 16:08:23
6
+-->
1 7
 <template>
2 8
   <div>
3 9
     <sc-table :taskForm="taskForm" :tableForm="tableForm" v-if="taskForm.procDefName == '生产部门考核'"></sc-table>
@@ -10,6 +16,7 @@
10 16
     <car-form :taskForm="taskForm" :taskName="''" v-else-if="taskForm.procDefName == '用车审批'"></car-form>
11 17
     <technical-form :taskForm="taskForm" v-else-if="taskForm.procDefName == '技术交底'"></technical-form>
12 18
     <safe-form :taskForm="taskForm" v-else-if="taskForm.procDefName == '安全交底'"></safe-form>
19
+    <settle-form :taskForm="taskForm" :taskName="''" :disabled="true" v-else-if="taskForm.procDefName == '项目结算'"></settle-form>
13 20
   </div>
14 21
 </template>
15 22
 
@@ -24,6 +31,7 @@ import CarForm from '@/views/flowable/form/carForm.vue';
24 31
 import projectProcess from '@/views/flowable/form/projectProcess/index'
25 32
 import TechnicalForm from '@/views/flowable/form/technicalForm.vue';
26 33
 import SafeForm from '@/views/flowable/form/safeForm.vue';
34
+import SettleForm from '@/views/flowable/form/settleForm.vue';
27 35
 export default {
28 36
   props: {
29 37
     passingParam: {
@@ -45,7 +53,8 @@ export default {
45 53
     CarForm,
46 54
     projectProcess,
47 55
     TechnicalForm,
48
-    SafeForm
56
+    SafeForm,
57
+    SettleForm
49 58
   },
50 59
   data() {
51 60
     return {

+ 10
- 1
oa-ui/src/views/flowable/form/projectProcess/inProgress.vue 查看文件

@@ -1,3 +1,9 @@
1
+<!--
2
+ * @Author: ysh
3
+ * @Date: 2024-04-15 09:35:41
4
+ * @LastEditors: 
5
+ * @LastEditTime: 2024-05-07 17:06:16
6
+-->
1 7
 <!--
2 8
  * @Author: ysh
3 9
  * @Date: 2024-04-08 13:56:14
@@ -97,6 +103,7 @@
97 103
       <div class="headers">
98 104
         产值结算(内部)
99 105
         <div class="line"></div>
106
+        <settle-data :taskForm="taskForm"></settle-data>
100 107
       </div>
101 108
       <div slot="footer" class="dialog-footer" style="text-align: center">
102 109
         <el-button @click="preserve()" :disabled="disabled" type="warning">保 存</el-button>
@@ -138,9 +145,11 @@ import { getProject, updateProject } from "@/api/oa/project/project";
138 145
 import { getCar } from "@/api/oa/car/car";
139 146
 import { listUser } from '@/api/system/user';
140 147
 import borrowData from '../borrow/borrowData.vue';
148
+import SettleData from '../settle/settleData.vue';
141 149
 export default {
142 150
   components: {
143
-    borrowData
151
+    borrowData,
152
+    SettleData
144 153
   },
145 154
   computed: {
146 155
     ...mapGetters(["name", "userId"]),

+ 1
- 3
oa-ui/src/views/flowable/form/projectProcess/index.vue 查看文件

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-02-27 14:49:15
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-04-23 16:06:30
5
+ * @LastEditTime: 2024-05-07 17:44:13
6 6
 -->
7 7
 
8 8
 <template>
@@ -41,8 +41,6 @@
41 41
             <in-progress :taskForm="taskForm" :taskName="taskName" :disabled="taskName != '项目生产'"
42 42
               @goBack="goBack"></in-progress>
43 43
           </el-tab-pane>
44
-          <el-tab-pane label="质量检查" name="质量检查"></el-tab-pane>
45
-          <el-tab-pane label="成果归档" name="成果归档"></el-tab-pane>
46 44
         </el-tabs>
47 45
       </el-col>
48 46
       <el-col :span="6" :xs="24">

+ 69
- 0
oa-ui/src/views/flowable/form/settle/settleData.vue 查看文件

@@ -0,0 +1,69 @@
1
+<template>
2
+  <div class="mt20">
3
+    <div class="nav-btn">
4
+      <div>
5
+        <el-button class="mb20" type="primary" plain size="mini" icon="el-icon-plus"
6
+          @click="addSettleFlow">结算申请</el-button>
7
+      </div>
8
+      <div>
9
+        <el-button icon="el-icon-refresh" circle size="mini" @click="getSettleData()"></el-button>
10
+      </div>
11
+    </div>
12
+
13
+    <el-table :data="dataList" style="width: 100%">
14
+      <el-table-column type="index" label="序号" width="50" />
15
+      <el-table-column label="上报人">
16
+        <template slot-scope="scope">
17
+          {{ getReporter(scope.row) }}
18
+        </template>
19
+      </el-table-column>
20
+    </el-table>
21
+  </div>
22
+</template>
23
+
24
+<script>
25
+import { listSettle, getSettle, delSettle, addSettle, updateSettle } from "@/api/oa/settle/settle";
26
+import { getUser } from "@/api/system/user";
27
+export default {
28
+  props: {
29
+    taskForm: {
30
+      type: Object,
31
+      required: true
32
+    }
33
+  },
34
+  data() {
35
+    return {
36
+      dataList: []
37
+    }
38
+  },
39
+  mounted() {
40
+    this.getSettleData()
41
+  },
42
+  methods: {
43
+    getSettleData() {
44
+      listSettle({ projectId: this.taskForm.formId }).then(res => {
45
+        console.log(res);
46
+        if (res.code == 200) {
47
+          this.dataList = res.rows
48
+        }
49
+      })
50
+    },
51
+    addSettleFlow() {
52
+
53
+    },
54
+    getReporter(row){
55
+      getUser(row.reporter).then(res=>{
56
+        console.log(res);
57
+        return res.data.nickName
58
+      })
59
+    }
60
+  }
61
+}
62
+</script>
63
+
64
+<style lang="scss" scoped>
65
+.nav-btn {
66
+  display: flex;
67
+  justify-content: space-between;
68
+}
69
+</style>

+ 226
- 77
oa-ui/src/views/flowable/form/settleForm.vue 查看文件

@@ -2,10 +2,10 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-04-30 09:03:14
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-05-06 17:48:28
5
+ * @LastEditTime: 2024-05-07 16:13:01
6 6
 -->
7 7
 <template>
8
-  <div class="app-container">
8
+  <div class="app-container" v-loading="loading">
9 9
     <el-row :gutter="20">
10 10
       <el-col :span="19" :xs="24">
11 11
         <h2 class="text-center">项目结算表</h2>
@@ -13,7 +13,7 @@
13 13
           项目信息
14 14
           <div class="line"></div>
15 15
         </div>
16
-        <el-form ref="form" :model="form" :rules="rules" label-width="160px">
16
+        <el-form ref="settleForm" :model="form" :rules="rules" label-width="160px" :disabled="disabled">
17 17
           <el-form-item label="项目编号" prop="projectId">
18 18
             <el-select v-model="form.projectId" filterable placeholder="请选择" @change="handleSelectProject"
19 19
               :disabled="taskName != '结算发起'" clearable style="width: 100%">
@@ -35,11 +35,7 @@
35 35
                 {{ chooseProject.contractNumber }}
36 36
               </el-descriptions-item>
37 37
               <el-descriptions-item label="项目负责人" label-class-name="my-label">
38
-                {{
39
-                  chooseProject.projectLeaderUser
40
-                  ? chooseProject.projectLeaderUser.nickName
41
-                  : ""
42
-                }}
38
+                {{ chooseProject.projectLeaderUser ? chooseProject.projectLeaderUser.nickName : "" }}
43 39
               </el-descriptions-item>
44 40
               <el-descriptions-item label="甲方单位" label-class-name="my-label">
45 41
                 {{ chooseProject.partyA }}
@@ -65,7 +61,8 @@
65 61
             </el-descriptions>
66 62
           </el-form-item>
67 63
           <el-form-item label="工作量上报说明" prop="workloadReport">
68
-            <el-input v-model="form.workloadReport" type="textarea" placeholder="请输入工作量上报说明" />
64
+            <el-input v-model="form.workloadReport" type="textarea" :disabled="taskName != '结算发起'"
65
+              placeholder="请输入工作量上报说明" />
69 66
           </el-form-item>
70 67
           <el-row>
71 68
             <el-col :span="6" :xs="24" :offset="12">
@@ -152,8 +149,8 @@
152 149
                     :controls="false"></el-input-number>
153 150
                 </td>
154 151
                 <td>
155
-                  <el-input-number style="width: 100px" v-model="work.coefficient" clearable @blur="calculateSettle(work)"
156
-                    :controls="false"></el-input-number>
152
+                  <el-input-number style="width: 100px" v-model="work.coefficient" clearable
153
+                    @blur="calculateSettle(work)" :controls="false"></el-input-number>
157 154
                 </td>
158 155
                 <td>
159 156
                   <!-- <el-input-number style="width:100px" v-model="work.settle" clearable :controls="false"></el-input-number> -->
@@ -224,6 +221,14 @@
224 221
                     :controls="false"></el-input-number>
225 222
                 </td>
226 223
               </tr>
224
+              <tr>
225
+                <td :colspan="2">结算说明</td>
226
+                <td :colspan="3">
227
+                  <el-input v-model="form.settleComment" type="textarea" clearable
228
+                    :autosize="{ minRows: 2, maxRows: 10 }">
229
+                  </el-input>
230
+                </td>
231
+              </tr>
227 232
             </table>
228 233
             <el-button icon="el-icon-plus" type="primary" plain size="mini" @click="addSumWorkList"></el-button>
229 234
           </el-form-item>
@@ -235,122 +240,129 @@
235 240
               <div class="line"></div>
236 241
             </div>
237 242
             <el-form-item label="综合事务部(设备领用情况)">
238
-              <el-input v-model="form.zhComment" type="textarea" clearable :autosize="{ minRows: 4, maxRows: 10 }">
243
+              <el-input v-model="form.zhComment" type="textarea" :disabled="taskName != '综合事务部处理'" clearable
244
+                :autosize="{ minRows: 4, maxRows: 10 }">
239 245
               </el-input>
240 246
             </el-form-item>
241 247
             <el-row>
242 248
               <el-col :span="6" :xs="24" :offset="12">
243 249
                 <el-form-item label="签名:" label-width="120px">
244
-                  <span class="auditor"> {{}} </span>
250
+                  <span class="auditor"> {{ form.zhUserName }} </span>
245 251
                 </el-form-item>
246 252
               </el-col>
247 253
               <el-col :span="6">
248 254
                 <el-form-item label="日期:" label-width="120px">
249
-                  <span> {{}} </span>
255
+                  <span> {{ form.zhTime }} </span>
250 256
                 </el-form-item>
251 257
               </el-col>
252 258
             </el-row>
253 259
             <el-form-item label="技术质量部(质量及工作量)">
254
-              <el-input v-model="form.remark" type="textarea" clearable :autosize="{ minRows: 4, maxRows: 10 }">
260
+              <el-input v-model="form.jsComment" type="textarea" :disabled="taskName != '技术质量部审核'" clearable
261
+                :autosize="{ minRows: 4, maxRows: 10 }">
255 262
               </el-input>
256 263
             </el-form-item>
257 264
             <el-row>
258 265
               <el-col :span="6" :xs="24" :offset="12">
259 266
                 <el-form-item label="签名:" label-width="120px">
260
-                  <span class="auditor"> {{}} </span>
267
+                  <span class="auditor"> {{ form.jsUserName }} </span>
261 268
                 </el-form-item>
262 269
               </el-col>
263 270
               <el-col :span="6">
264 271
                 <el-form-item label="日期:" label-width="120px">
265
-                  <span> {{}} </span>
272
+                  <span> {{ form.jsTime }} </span>
266 273
                 </el-form-item>
267 274
               </el-col>
268 275
             </el-row>
269 276
             <el-form-item label="项目管理部(结算)">
270
-              <el-input v-model="form.remark" type="textarea" clearable :autosize="{ minRows: 4, maxRows: 10 }">
277
+              <el-input v-model="form.xmComment" type="textarea" :disabled="taskName != '项目管理部结算'" clearable
278
+                :autosize="{ minRows: 4, maxRows: 10 }">
271 279
               </el-input>
272 280
             </el-form-item>
273 281
             <el-row>
274 282
               <el-col :span="6" :xs="24" :offset="12">
275 283
                 <el-form-item label="签名:" label-width="120px">
276
-                  <span class="auditor"> {{}} </span>
284
+                  <span class="auditor"> {{ form.xmUserName }} </span>
277 285
                 </el-form-item>
278 286
               </el-col>
279 287
               <el-col :span="6">
280 288
                 <el-form-item label="日期:" label-width="120px">
281
-                  <span> {{}} </span>
289
+                  <span> {{ form.xmTime }} </span>
282 290
                 </el-form-item>
283 291
               </el-col>
284 292
             </el-row>
285 293
             <el-form-item label="项目承担部门(确认)">
286
-              <el-input v-model="form.remark" type="textarea" clearable :autosize="{ minRows: 4, maxRows: 10 }">
294
+              <el-input v-model="form.deptComment" type="textarea" :disabled="taskName != '结算发起人确认'" clearable
295
+                :autosize="{ minRows: 4, maxRows: 10 }">
287 296
               </el-input>
288 297
             </el-form-item>
289 298
             <el-row>
290 299
               <el-col :span="6" :xs="24" :offset="12">
291 300
                 <el-form-item label="签名:" label-width="120px">
292
-                  <span class="auditor"> {{}} </span>
301
+                  <span class="auditor"> {{ form.deptUserName }} </span>
293 302
                 </el-form-item>
294 303
               </el-col>
295 304
               <el-col :span="6">
296 305
                 <el-form-item label="日期:" label-width="120px">
297
-                  <span> {{}} </span>
306
+                  <span> {{ form.deptTime }} </span>
298 307
                 </el-form-item>
299 308
               </el-col>
300 309
             </el-row>
301 310
             <el-form-item label="经营发展部(校核)">
302
-              <el-input v-model="form.remark" type="textarea" clearable :autosize="{ minRows: 4, maxRows: 10 }">
311
+              <el-input v-model="form.jyComment" type="textarea" :disabled="taskName != '经营发展部校核'" clearable
312
+                :autosize="{ minRows: 4, maxRows: 10 }">
303 313
               </el-input>
304 314
             </el-form-item>
305 315
             <el-row>
306 316
               <el-col :span="6" :xs="24" :offset="12">
307 317
                 <el-form-item label="签名:" label-width="120px">
308
-                  <span class="auditor"> {{}} </span>
318
+                  <span class="auditor"> {{ form.jyUserName }} </span>
309 319
                 </el-form-item>
310 320
               </el-col>
311 321
               <el-col :span="6">
312 322
                 <el-form-item label="日期:" label-width="120px">
313
-                  <span> {{}} </span>
323
+                  <span> {{ form.jyTime }} </span>
314 324
                 </el-form-item>
315 325
               </el-col>
316 326
             </el-row>
317 327
             <el-form-item label="分管领导(审核)">
318
-              <el-input v-model="form.remark" type="textarea" clearable :autosize="{ minRows: 4, maxRows: 10 }">
328
+              <el-input v-model="form.managerComment" type="textarea" :disabled="taskName != '分管审核'" clearable
329
+                :autosize="{ minRows: 4, maxRows: 10 }">
319 330
               </el-input>
320 331
             </el-form-item>
321 332
             <el-row>
322 333
               <el-col :span="6" :xs="24" :offset="12">
323 334
                 <el-form-item label="签名:" label-width="120px">
324
-                  <span class="auditor"> {{}} </span>
335
+                  <span class="auditor"> {{ form.managerUserName }} </span>
325 336
                 </el-form-item>
326 337
               </el-col>
327 338
               <el-col :span="6">
328 339
                 <el-form-item label="日期:" label-width="120px">
329
-                  <span> {{}} </span>
340
+                  <span> {{ form.managerTime }} </span>
330 341
                 </el-form-item>
331 342
               </el-col>
332 343
             </el-row>
333 344
             <el-form-item label="总经理(审批)">
334
-              <el-input v-model="form.remark" type="textarea" clearable :autosize="{ minRows: 4, maxRows: 10 }">
345
+              <el-input v-model="form.gmComment" type="textarea" :disabled="taskName != '总经理审批'" clearable
346
+                :autosize="{ minRows: 4, maxRows: 10 }">
335 347
               </el-input>
336 348
             </el-form-item>
337 349
             <el-row>
338 350
               <el-col :span="6" :xs="24" :offset="12">
339 351
                 <el-form-item label="签名:" label-width="120px">
340
-                  <span class="auditor"> {{}} </span>
352
+                  <span class="auditor"> {{ form.gmUserName }} </span>
341 353
                 </el-form-item>
342 354
               </el-col>
343 355
               <el-col :span="6">
344 356
                 <el-form-item label="日期:" label-width="120px">
345
-                  <span> {{}} </span>
357
+                  <span> {{ form.gmTime }} </span>
346 358
                 </el-form-item>
347 359
               </el-col>
348 360
             </el-row>
349 361
           </div>
350 362
         </el-form>
351
-        <div style="text-align: center">
363
+        <div style="text-align: center" v-if="!disabled">
352 364
           <el-button type="warning" @click="preserve">保存</el-button>
353
-          <el-button type="primary">提交下一个流程</el-button>
365
+          <el-button type="primary" @click="submitNextFlow">提交下一个流程</el-button>
354 366
         </div>
355 367
       </el-col>
356 368
       <el-col :span="5" :xs="24">
@@ -375,33 +387,15 @@ import { flowXmlAndNode } from "@/api/flowable/definition";
375 387
 import { parseTime } from "@/utils/ruoyi";
376 388
 import { listProject, getProject } from "@/api/oa/project/project";
377 389
 import { deepClone } from '@/utils'
378
-import {
379
-  listSettle,
380
-  getSettle,
381
-  delSettle,
382
-  addSettle,
383
-  updateSettle,
384
-} from "@/api/oa/settle/settle";
385
-import {
386
-  listSettleSummary,
387
-  getSettleSummary,
388
-  addSettleSummary,
389
-  delSettleSummary,
390
-  updateSettleSummary,
391
-} from "@/api/oa/settle/settleSummary";
392
-import {
393
-  listSettleWork,
394
-  getSettleWork,
395
-  addSettleWork,
396
-  updateSettleWork,
397
-  delSettleWork,
398
-} from "@/api/oa/settle/settleWork";
399
-import {
400
-  listProjectContract,
401
-  addProjectContract,
402
-} from "@/api/oa/contract/projectContract";
390
+import { listSettle, getSettle, delSettle, addSettle, updateSettle } from "@/api/oa/settle/settle";
391
+import { listSettleSummary, getSettleSummary, addSettleSummary, delSettleSummary, updateSettleSummary } from "@/api/oa/settle/settleSummary";
392
+import { listSettleWork, getSettleWork, addSettleWork, updateSettleWork, delSettleWork } from "@/api/oa/settle/settleWork";
393
+import { listProjectContract, addProjectContract, } from "@/api/oa/contract/projectContract";
403 394
 import { getPrice } from "@/api/oa/price/price";
404 395
 import ChoosePrice from "./components/choosePrice.vue";
396
+import { getUser } from "@/api/system/user";
397
+import { complete, getNextFlowNode } from "@/api/flowable/todo";
398
+import { getUsersDeptLeader, getUsersDeptLeaderByDept, getUsersManageLeaderByDept } from '@/api/system/post.js'
405 399
 export default {
406 400
   components: {
407 401
     flow,
@@ -416,14 +410,22 @@ export default {
416 410
       type: Object,
417 411
       required: true,
418 412
     },
413
+    disabled: {
414
+      type: Boolean,
415
+      default: false
416
+    }
419 417
   },
420 418
   data() {
421 419
     return {
420
+      loading: true,
422 421
       drawer: false,
423 422
       flag: false,
424 423
       flowData: {},
425 424
       form: {},
426
-      rules: {},
425
+      rules: {
426
+        projectId: [
427
+          { required: true, trigger: "change", message: "请选择项目编号" }]
428
+      },
427 429
       projectList: [],
428 430
       isSelect: false,
429 431
       chooseProject: {},
@@ -458,6 +460,7 @@ export default {
458 460
       oldSettleSumList: [],
459 461
       actualSumSettle: "",
460 462
       clickWork: {},
463
+      deptId: undefined
461 464
     };
462 465
   },
463 466
   created() {
@@ -477,13 +480,20 @@ export default {
477 480
   methods: {
478 481
     initForm() {
479 482
       listSettle({ settleId: this.taskForm.formId }).then(res => {
480
-        console.log(res);
481 483
         if (res.total == 1) {
482 484
           this.form = res.rows[0];
483 485
           this.flag = true;
484 486
           this.handleSelectProject(res.rows[0].projectId);
485 487
           this.listSettleWorkFn();
486 488
           this.listSettleSummaryFn();
489
+          getUser(this.form.reporter).then(res => {
490
+            if (res.data) {
491
+              console.log(res.data);
492
+              this.form.reporterName = res.data.nickName;
493
+              this.deptId = res.data.deptId
494
+            }
495
+          })
496
+          this.getCurrentUser();
487 497
         } else if (res.total == 0) {
488 498
           this.flag = false;
489 499
           if (this.taskName == "结算发起") {
@@ -492,8 +502,145 @@ export default {
492 502
             this.form.reportTime = parseTime(new Date(), "{y}-{m}-{d}");
493 503
           }
494 504
         }
505
+        setTimeout(() => {
506
+          this.loading = false
507
+        }, 500);
508
+
495 509
       });
496 510
     },
511
+    getCurrentUser() {
512
+      if (this.taskName == '综合事务部处理') {
513
+        this.form.zhUserName = this.$store.state.user.name;
514
+        this.form.zhUserId = this.$store.state.user.id;
515
+        this.form.zhTime = parseTime(new Date(), "{y}-{m}-{d}");
516
+      } else if (this.taskName == '技术质量部审核') {
517
+        this.form.jsUserName = this.$store.state.user.name;
518
+        this.form.jsUserId = this.$store.state.user.id;
519
+        this.form.jsTime = parseTime(new Date(), "{y}-{m}-{d}");
520
+      } else if (this.taskName == '项目管理部结算') {
521
+        this.form.xmUserName = this.$store.state.user.name;
522
+        this.form.xmUserId = this.$store.state.user.id;
523
+        this.form.xmTime = parseTime(new Date(), "{y}-{m}-{d}");
524
+      } else if (this.taskName == '结算发起人确认') {
525
+        this.form.deptUserName = this.$store.state.user.name;
526
+        this.form.deptUserId = this.$store.state.user.id;
527
+        this.form.deptTime = parseTime(new Date(), "{y}-{m}-{d}");
528
+      } else if (this.taskName == '经营发展部校核') {
529
+        this.form.jyUserName = this.$store.state.user.name;
530
+        this.form.jyUserId = this.$store.state.user.id;
531
+        this.form.jyTime = parseTime(new Date(), "{y}-{m}-{d}");
532
+      } else if (this.taskName == '分管审核') {
533
+        this.form.managerUserName = this.$store.state.user.name;
534
+        this.form.managerUserId = this.$store.state.user.id;
535
+        this.form.managerTime = parseTime(new Date(), "{y}-{m}-{d}");
536
+      } else if (this.taskName == '总经理审批') {
537
+        this.form.gmUserName = this.$store.state.user.name;
538
+        this.form.gmUserId = this.$store.state.user.id;
539
+        this.form.gmTime = parseTime(new Date(), "{y}-{m}-{d}");
540
+      }
541
+      this.getReviewerName();
542
+    },
543
+    getReviewerName() {
544
+      if (this.form.zhUserId) {
545
+        getUser(this.form.zhUserId).then(res => {
546
+          this.form.zhUserName = res.data.nickName;;
547
+        })
548
+      }
549
+      if (this.form.jsUserId) {
550
+        getUser(this.form.jsUserId).then(res => {
551
+          this.form.jsUserName = res.data.nickName;;
552
+        })
553
+      }
554
+      if (this.form.xmUserId) {
555
+        getUser(this.form.xmUserId).then(res => {
556
+          this.form.xmUserName = res.data.nickName;;
557
+        })
558
+      }
559
+      if (this.form.deptUserId) {
560
+        getUser(this.form.deptUserId).then(res => {
561
+          this.form.deptUserName = res.data.nickName;;
562
+        })
563
+      }
564
+      if (this.form.jyUserId) {
565
+        getUser(this.form.jyUserId).then(res => {
566
+          this.form.jyUserName = res.data.nickName;;
567
+        })
568
+      }
569
+      if (this.form.managerUserId) {
570
+        getUser(this.form.managerUserId).then(res => {
571
+          this.form.managerUserName = res.data.nickName;;
572
+        })
573
+      }
574
+      if (this.form.gmUserId) {
575
+        getUser(this.form.gmUserId).then(res => {
576
+          this.form.gmUserName = res.data.nickName;;
577
+        })
578
+      }
579
+    },
580
+    // 保存按钮
581
+    preserve() {
582
+      if (this.flag) {
583
+        this.updateSettleFn();
584
+        this.updateSettleSummaryFn();
585
+        this.updateSettleWorkFn();
586
+
587
+      } else {
588
+        this.addSettleFn();
589
+      }
590
+    },
591
+    submitNextFlow() {
592
+      this.$refs["settleForm"].validate(vaild => {
593
+        if (vaild) {
594
+          this.preserve();
595
+          debugger
596
+          if (this.taskName == '结算发起') {
597
+            this.getNextFlowNodeFn(17);
598
+          } else if (this.taskName == '综合事务部处理') {
599
+            this.getNextFlowNodeFn(52);
600
+          } else if (this.taskName == '技术质量部审核') {
601
+            this.getNextFlowNodeFn(32);
602
+          } else if (this.taskName == '项目管理部结算') {
603
+            this.getNextFlowNodeFn();
604
+          } else if (this.taskName == '结算发起人确认') {
605
+            this.getNextFlowNodeFn(13);
606
+          } else if (this.taskName == '经营发展部校核') {
607
+            this.getNextFlowNodeFn(null, this.deptId);
608
+          } else if (this.taskName == '分管审核') {
609
+            this.getNextFlowNodeFn();
610
+          } else if (this.taskName == '总经理审批') {
611
+            this.getNextFlowNodeFn();
612
+          }
613
+        }
614
+      })
615
+    },
616
+    getNextFlowNodeFn(userId, deptId) {
617
+      const params = { taskId: this.taskForm.taskId };
618
+      getNextFlowNode(params).then(res => {
619
+        if (userId) {
620
+          this.$set(this.taskForm.variables, "approval", userId);
621
+          complete(this.taskForm).then(response => {
622
+            this.$modal.msgSuccess(response.msg);
623
+            this.$emit('goBack');
624
+          });
625
+        } else {
626
+          if (deptId) {
627
+            getUsersManageLeaderByDept({ deptId }).then(res => {
628
+              let id = res.data.userId;
629
+              this.$set(this.taskForm.variables, "approval", id);
630
+              complete(this.taskForm).then(response => {
631
+                this.$modal.msgSuccess(response.msg);
632
+                this.$emit('goBack');
633
+              });
634
+            })
635
+          } else {
636
+            complete(this.taskForm).then(response => {
637
+              this.$modal.msgSuccess(response.msg);
638
+              this.$emit('goBack');
639
+            });
640
+          }
641
+        }
642
+      })
643
+    },
497 644
     // 查询项目列表
498 645
     getProjectList() {
499 646
       listProject({
@@ -582,7 +729,6 @@ export default {
582 729
       this.calculateSumSettle();
583 730
     },
584 731
     calculateSumSettle() {
585
-      debugger;
586 732
       let sum = 0;
587 733
       let arr = this.settleWorkList;
588 734
       for (let a of arr) {
@@ -616,17 +762,8 @@ export default {
616 762
     setValue(key, name, val) {
617 763
       this.$set(key, name, val);
618 764
     },
619
-    // 保存按钮
620
-    preserve() {
621
-      if (this.flag) {
622
-        this.updateSettleSummaryFn();
623
-      } else {
624
-        console.log(this.form);
625
-        console.log(this.settleWorkList);
626
-        console.log(this.settleSumList);
627
-        this.addSettleFn();
628
-      }
629
-    },
765
+
766
+    // 增加数据
630 767
     addSettleFn() {
631 768
       let settleId = this.taskForm.formId;
632 769
       this.form.settleId = settleId;
@@ -638,16 +775,22 @@ export default {
638 775
     addSettleWorkFn(settleId) {
639 776
       for (let work of this.settleWorkList) {
640 777
         work.settleId = settleId;
641
-        addSettleWork(work);
778
+        setTimeout(() => {
779
+          addSettleWork(work);
780
+        }, 500)
642 781
       }
643 782
     },
644 783
     addSettleSummaryFn(settleId) {
784
+      this.settleSumTr.settleId = settleId
645 785
       addSettleSummary(this.settleSumTr);
646 786
       for (let item of this.settleSumList) {
647 787
         item.settleId = settleId;
648
-        addSettleSummary(item);
788
+        setTimeout(() => {
789
+          addSettleSummary(item);
790
+        }, 500)
649 791
       }
650 792
     },
793
+    // 获取数据
651 794
     listSettleWorkFn() {
652 795
       listSettleWork({ settleId: this.taskForm.formId }).then(res => {
653 796
         this.settleWorkList = res.rows;
@@ -668,7 +811,6 @@ export default {
668 811
     },
669 812
     listSettleSummaryFn() {
670 813
       listSettleSummary({ settleId: this.taskForm.formId }).then(res => {
671
-        console.log(res);
672 814
         this.settleSumList = res.rows;
673 815
         this.oldSettleSumList = res.rows;
674 816
         for (let s of this.settleSumList) {
@@ -683,10 +825,17 @@ export default {
683 825
         this.calculateActualSumSettle();
684 826
       });
685 827
     },
828
+    // 更新数据
686 829
     updateSettleFn() {
830
+      updateSettle(this.form).then(res => {
831
+        if (res.code == 200)
832
+          this.$message.success('保存成功')
833
+      })
687 834
     },
688 835
     updateSettleWorkFn() {
689
-
836
+      delSettleWork([this.taskForm.formId]).then(res => {
837
+        this.addSettleWorkFn(this.taskForm.formId);
838
+      })
690 839
     },
691 840
     updateSettleSummaryFn() {
692 841
       delSettleSummary([this.taskForm.formId]).then(res => {

正在加载...
取消
保存