瀏覽代碼

修改项目结算变更结算内容的操作

余思翰 1 年之前
父節點
當前提交
d2169654e7
共有 1 個檔案被更改,包括 60 行新增212 行删除
  1. 60
    212
      oa-ui/src/views/flowable/form/settleForm.vue

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

@@ -15,21 +15,10 @@
15 15
         </div>
16 16
         <el-form ref="form" :model="form" :rules="rules" label-width="160px">
17 17
           <el-form-item label="项目编号" prop="projectId">
18
-            <el-select
19
-              v-model="form.projectId"
20
-              filterable
21
-              placeholder="请选择"
22
-              @change="handleSelectProject"
23
-              :disabled="taskName != '结算发起'"
24
-              clearable
25
-              style="width: 100%"
26
-            >
27
-              <el-option
28
-                v-for="item in projectList"
29
-                :key="item.value"
30
-                :label="item.projectNumber + '-' + item.projectName"
31
-                :value="item.projectId"
32
-              >
18
+            <el-select v-model="form.projectId" filterable placeholder="请选择" @change="handleSelectProject"
19
+              :disabled="taskName != '结算发起'" clearable style="width: 100%">
20
+              <el-option v-for="item in projectList" :key="item.value"
21
+                :label="item.projectNumber + '-' + item.projectName" :value="item.projectId">
33 22
               </el-option>
34 23
             </el-select>
35 24
             <el-descriptions border v-if="isSelect" style="margin-top: 10px" :column="2">
@@ -48,8 +37,8 @@
48 37
               <el-descriptions-item label="项目负责人" label-class-name="my-label">
49 38
                 {{
50 39
                   chooseProject.projectLeaderUser
51
-                    ? chooseProject.projectLeaderUser.nickName
52
-                    : ""
40
+                  ? chooseProject.projectLeaderUser.nickName
41
+                  : ""
53 42
                 }}
54 43
               </el-descriptions-item>
55 44
               <el-descriptions-item label="甲方单位" label-class-name="my-label">
@@ -76,11 +65,7 @@
76 65
             </el-descriptions>
77 66
           </el-form-item>
78 67
           <el-form-item label="工作量上报说明" prop="workloadReport">
79
-            <el-input
80
-              v-model="form.workloadReport"
81
-              type="textarea"
82
-              placeholder="请输入工作量上报说明"
83
-            />
68
+            <el-input v-model="form.workloadReport" type="textarea" placeholder="请输入工作量上报说明" />
84 69
           </el-form-item>
85 70
           <el-row>
86 71
             <el-col :span="6" :xs="24" :offset="12">
@@ -97,63 +82,27 @@
97 82
             </el-col>
98 83
           </el-row>
99 84
           <el-form-item label="原始上报数据" prop="">
100
-            <el-upload
101
-              class="upload-demo"
102
-              ref="upload"
103
-              :file-list="fileList"
104
-              :auto-upload="false"
105
-              action=""
106
-            >
107
-              <el-button
108
-                slot="trigger"
109
-                size="mini"
110
-                type="primary"
111
-                icon="el-icon-upload"
112
-                :disabled="taskName != '结算发起'"
113
-                >选取文件</el-button
114
-              >
85
+            <el-upload class="upload-demo" ref="upload" :file-list="fileList" :auto-upload="false" action="">
86
+              <el-button slot="trigger" size="mini" type="primary" icon="el-icon-upload"
87
+                :disabled="taskName != '结算发起'">选取文件</el-button>
115 88
               <div slot="tip" class="el-upload__tip">
116 89
                 只能上传docx/doc文件,且不超过500kb
117 90
               </div>
118 91
             </el-upload>
119 92
           </el-form-item>
120 93
           <el-form-item label="项目管理部审核结算单" prop="">
121
-            <el-upload
122
-              class="upload-demo"
123
-              ref="upload"
124
-              :file-list="fileList"
125
-              action=""
126
-              :auto-upload="false"
127
-            >
128
-              <el-button
129
-                slot="trigger"
130
-                size="mini"
131
-                type="primary"
132
-                icon="el-icon-upload"
133
-                :disabled="taskName != '项目管理部结算'"
134
-                >选取文件</el-button
135
-              >
94
+            <el-upload class="upload-demo" ref="upload" :file-list="fileList" action="" :auto-upload="false">
95
+              <el-button slot="trigger" size="mini" type="primary" icon="el-icon-upload"
96
+                :disabled="taskName != '项目管理部结算'">选取文件</el-button>
136 97
               <div slot="tip" class="el-upload__tip">
137 98
                 只能上传docx/doc文件,且不超过500kb
138 99
               </div>
139 100
             </el-upload>
140 101
           </el-form-item>
141 102
           <el-form-item label="分管领导审核结算单" prop="">
142
-            <el-upload
143
-              class="upload-demo"
144
-              ref="upload"
145
-              :file-list="fileList"
146
-              action=""
147
-              :auto-upload="false"
148
-            >
149
-              <el-button
150
-                slot="trigger"
151
-                size="mini"
152
-                type="primary"
153
-                icon="el-icon-upload"
154
-                :disabled="taskName != '分管审核'"
155
-                >选取文件</el-button
156
-              >
103
+            <el-upload class="upload-demo" ref="upload" :file-list="fileList" action="" :auto-upload="false">
104
+              <el-button slot="trigger" size="mini" type="primary" icon="el-icon-upload"
105
+                :disabled="taskName != '分管审核'">选取文件</el-button>
157 106
               <div slot="tip" class="el-upload__tip">
158 107
                 只能上传docx/doc文件,且不超过500kb
159 108
               </div>
@@ -183,12 +132,8 @@
183 132
                   {{ index + 1 }}
184 133
                 </td>
185 134
                 <td>
186
-                  <el-input
187
-                    v-model="work.content"
188
-                    type="textarea"
189
-                    clearable
190
-                    :autosize="{ minRows: 4, maxRows: 10 }"
191
-                  ></el-input>
135
+                  <el-input v-model="work.content" type="textarea" clearable
136
+                    :autosize="{ minRows: 4, maxRows: 10 }"></el-input>
192 137
                 </td>
193 138
                 <td>
194 139
                   {{ work.scale == "" ? "无" : work.scale }}
@@ -203,71 +148,37 @@
203 148
                   {{ work.price }}
204 149
                 </td>
205 150
                 <td>
206
-                  <el-input-number
207
-                    style="width: 100px"
208
-                    v-model="work.workload"
209
-                    clearable
210
-                    @blur="calculateSettle(work)"
211
-                    :controls="false"
212
-                  ></el-input-number>
151
+                  <el-input-number style="width: 100px" v-model="work.workload" clearable @blur="calculateSettle(work)"
152
+                    :controls="false"></el-input-number>
213 153
                 </td>
214 154
                 <td>
215
-                  <el-input-number
216
-                    style="width: 100px"
217
-                    v-model="work.coefficient"
218
-                    clearable
219
-                    @blur="calculateSettle(work)"
220
-                    :controls="false"
221
-                  ></el-input-number>
155
+                  <el-input-number style="width: 100px" v-model="work.coefficient" clearable @blur="calculateSettle(work)"
156
+                    :controls="false"></el-input-number>
222 157
                 </td>
223 158
                 <td>
224 159
                   <!-- <el-input-number style="width:100px" v-model="work.settle" clearable :controls="false"></el-input-number> -->
225 160
                   {{ work.settle }}
226 161
                 </td>
227 162
                 <td>
228
-                  <el-input
229
-                    v-model="work.remark"
230
-                    type="textarea"
231
-                    clearable
232
-                    :autosize="{ minRows: 4, maxRows: 10 }"
233
-                  ></el-input>
163
+                  <el-input v-model="work.remark" type="textarea" clearable
164
+                    :autosize="{ minRows: 4, maxRows: 10 }"></el-input>
234 165
                 </td>
235 166
                 <td>
236
-                  <el-button
237
-                    size="mini"
238
-                    type="text"
239
-                    @click="handleChoosePrice(work, index)"
240
-                    >选择单价</el-button
241
-                  >
242
-                  <el-button
243
-                    type="text"
244
-                    size="mini"
245
-                    style="color: #f56c6c"
246
-                    @click="deletWorkItem(index, settleWorkList)"
247
-                    >删除行</el-button
248
-                  >
167
+                  <el-button size="mini" type="text" @click="handleChoosePrice(work, index)">选择单价</el-button>
168
+                  <el-button type="text" size="mini" style="color: #f56c6c"
169
+                    @click="deletWorkItem(index, settleWorkList)">删除行</el-button>
249 170
                 </td>
250 171
               </tr>
251 172
               <tr>
252 173
                 <td :colspan="8">结算费用合计</td>
253 174
                 <td>{{ settleSumTr.amount }}</td>
254 175
                 <td>
255
-                  <el-input
256
-                    v-model="settleSumTr.remark"
257
-                    type="textarea"
258
-                    clearable
259
-                    :autosize="{ minRows: 2, maxRows: 10 }"
260
-                  ></el-input>
176
+                  <el-input v-model="settleSumTr.remark" type="textarea" clearable
177
+                    :autosize="{ minRows: 2, maxRows: 10 }"></el-input>
261 178
                 </td>
262 179
               </tr>
263 180
             </table>
264
-            <el-button
265
-              icon="el-icon-plus"
266
-              type="primary"
267
-              plain
268
-              size="mini"
269
-              @click="addWorkList"
270
-            ></el-button>
181
+            <el-button icon="el-icon-plus" type="primary" plain size="mini" @click="addWorkList"></el-button>
271 182
           </el-form-item>
272 183
 
273 184
           <!-- 结算汇总 -->
@@ -289,62 +200,32 @@
289 200
                   {{ index + 1 }}
290 201
                 </td>
291 202
                 <td>
292
-                  <el-input
293
-                    v-model="work.content"
294
-                    type="textarea"
295
-                    clearable
296
-                    :autosize="{ minRows: 2, maxRows: 10 }"
297
-                  >
203
+                  <el-input v-model="work.content" type="textarea" clearable :autosize="{ minRows: 2, maxRows: 10 }">
298 204
                   </el-input>
299 205
                 </td>
300 206
                 <td>
301
-                  <el-input-number
302
-                    style="width: 200px"
303
-                    v-model="work.amount"
304
-                    clearable
305
-                    :controls="false"
306
-                    @blur="calculateActualSumSettle()"
307
-                  ></el-input-number>
207
+                  <el-input-number style="width: 200px" v-model="work.amount" clearable :controls="false"
208
+                    @blur="calculateActualSumSettle()"></el-input-number>
308 209
                   <!-- {{ work.amount }} -->
309 210
                 </td>
310 211
                 <td>
311
-                  <el-input
312
-                    v-model="work.remark"
313
-                    type="textarea"
314
-                    clearable
315
-                    :autosize="{ minRows: 2, maxRows: 10 }"
316
-                  >
212
+                  <el-input v-model="work.remark" type="textarea" clearable :autosize="{ minRows: 2, maxRows: 10 }">
317 213
                   </el-input>
318 214
                 </td>
319 215
                 <td>
320
-                  <el-button
321
-                    type="text"
322
-                    size="mini"
323
-                    style="color: #f56c6c"
324
-                    @click="deletWorkItem(index, settleSumList)"
325
-                    >删除行</el-button
326
-                  >
216
+                  <el-button type="text" size="mini" style="color: #f56c6c"
217
+                    @click="deletWorkItem(index, settleSumList)">删除行</el-button>
327 218
                 </td>
328 219
               </tr>
329 220
               <tr>
330 221
                 <td :colspan="2">实际结算总金额</td>
331 222
                 <td :colspan="3">
332
-                  <el-input-number
333
-                    style="width: 100%"
334
-                    v-model="actualSumSettle"
335
-                    clearable
336
-                    :controls="false"
337
-                  ></el-input-number>
223
+                  <el-input-number style="width: 100%" v-model="actualSumSettle" clearable
224
+                    :controls="false"></el-input-number>
338 225
                 </td>
339 226
               </tr>
340 227
             </table>
341
-            <el-button
342
-              icon="el-icon-plus"
343
-              type="primary"
344
-              plain
345
-              size="mini"
346
-              @click="addSumWorkList"
347
-            ></el-button>
228
+            <el-button icon="el-icon-plus" type="primary" plain size="mini" @click="addSumWorkList"></el-button>
348 229
           </el-form-item>
349 230
 
350 231
           <!-- 结算审核情况 -->
@@ -354,12 +235,7 @@
354 235
               <div class="line"></div>
355 236
             </div>
356 237
             <el-form-item label="综合事务部(设备领用情况)">
357
-              <el-input
358
-                v-model="form.zhComment"
359
-                type="textarea"
360
-                clearable
361
-                :autosize="{ minRows: 4, maxRows: 10 }"
362
-              >
238
+              <el-input v-model="form.zhComment" type="textarea" clearable :autosize="{ minRows: 4, maxRows: 10 }">
363 239
               </el-input>
364 240
             </el-form-item>
365 241
             <el-row>
@@ -375,12 +251,7 @@
375 251
               </el-col>
376 252
             </el-row>
377 253
             <el-form-item label="技术质量部(质量及工作量)">
378
-              <el-input
379
-                v-model="form.remark"
380
-                type="textarea"
381
-                clearable
382
-                :autosize="{ minRows: 4, maxRows: 10 }"
383
-              >
254
+              <el-input v-model="form.remark" type="textarea" clearable :autosize="{ minRows: 4, maxRows: 10 }">
384 255
               </el-input>
385 256
             </el-form-item>
386 257
             <el-row>
@@ -396,12 +267,7 @@
396 267
               </el-col>
397 268
             </el-row>
398 269
             <el-form-item label="项目管理部(结算)">
399
-              <el-input
400
-                v-model="form.remark"
401
-                type="textarea"
402
-                clearable
403
-                :autosize="{ minRows: 4, maxRows: 10 }"
404
-              >
270
+              <el-input v-model="form.remark" type="textarea" clearable :autosize="{ minRows: 4, maxRows: 10 }">
405 271
               </el-input>
406 272
             </el-form-item>
407 273
             <el-row>
@@ -417,12 +283,7 @@
417 283
               </el-col>
418 284
             </el-row>
419 285
             <el-form-item label="项目承担部门(确认)">
420
-              <el-input
421
-                v-model="form.remark"
422
-                type="textarea"
423
-                clearable
424
-                :autosize="{ minRows: 4, maxRows: 10 }"
425
-              >
286
+              <el-input v-model="form.remark" type="textarea" clearable :autosize="{ minRows: 4, maxRows: 10 }">
426 287
               </el-input>
427 288
             </el-form-item>
428 289
             <el-row>
@@ -438,12 +299,7 @@
438 299
               </el-col>
439 300
             </el-row>
440 301
             <el-form-item label="经营发展部(校核)">
441
-              <el-input
442
-                v-model="form.remark"
443
-                type="textarea"
444
-                clearable
445
-                :autosize="{ minRows: 4, maxRows: 10 }"
446
-              >
302
+              <el-input v-model="form.remark" type="textarea" clearable :autosize="{ minRows: 4, maxRows: 10 }">
447 303
               </el-input>
448 304
             </el-form-item>
449 305
             <el-row>
@@ -459,12 +315,7 @@
459 315
               </el-col>
460 316
             </el-row>
461 317
             <el-form-item label="分管领导(审核)">
462
-              <el-input
463
-                v-model="form.remark"
464
-                type="textarea"
465
-                clearable
466
-                :autosize="{ minRows: 4, maxRows: 10 }"
467
-              >
318
+              <el-input v-model="form.remark" type="textarea" clearable :autosize="{ minRows: 4, maxRows: 10 }">
468 319
               </el-input>
469 320
             </el-form-item>
470 321
             <el-row>
@@ -480,12 +331,7 @@
480 331
               </el-col>
481 332
             </el-row>
482 333
             <el-form-item label="总经理(审批)">
483
-              <el-input
484
-                v-model="form.remark"
485
-                type="textarea"
486
-                clearable
487
-                :autosize="{ minRows: 4, maxRows: 10 }"
488
-              >
334
+              <el-input v-model="form.remark" type="textarea" clearable :autosize="{ minRows: 4, maxRows: 10 }">
489 335
               </el-input>
490 336
             </el-form-item>
491 337
             <el-row>
@@ -518,11 +364,7 @@
518 364
     </el-row>
519 365
 
520 366
     <el-drawer title="选择单价" :visible.sync="drawer" direction="rtl">
521
-      <choose-price
522
-        :row="clickWork"
523
-        @getPrice="getPrice"
524
-        @cancel="drawer = false"
525
-      ></choose-price>
367
+      <choose-price :row="clickWork" @getPrice="getPrice" @cancel="drawer = false"></choose-price>
526 368
     </el-drawer>
527 369
   </div>
528 370
 </template>
@@ -532,6 +374,7 @@ import flow from "@/views/flowable/task/todo/detail/flow";
532 374
 import { flowXmlAndNode } from "@/api/flowable/definition";
533 375
 import { parseTime } from "@/utils/ruoyi";
534 376
 import { listProject, getProject } from "@/api/oa/project/project";
377
+import { deepClone } from '@/utils'
535 378
 import {
536 379
   listSettle,
537 380
   getSettle,
@@ -599,6 +442,7 @@ export default {
599 442
           remark: "",
600 443
         },
601 444
       ],
445
+      oldSettleWorkList: [],
602 446
       settleSumTr: {
603 447
         content: "结算费用合计",
604 448
         amount: 0,
@@ -611,6 +455,7 @@ export default {
611 455
           remark: "",
612 456
         },
613 457
       ],
458
+      oldSettleSumList: [],
614 459
       actualSumSettle: "",
615 460
       clickWork: {},
616 461
     };
@@ -628,7 +473,7 @@ export default {
628 473
       this.flowData = res.data;
629 474
     });
630 475
   },
631
-  mounted() {},
476
+  mounted() { },
632 477
   methods: {
633 478
     initForm() {
634 479
       listSettle({ settleId: this.taskForm.formId }).then(res => {
@@ -774,6 +619,7 @@ export default {
774 619
     // 保存按钮
775 620
     preserve() {
776 621
       if (this.flag) {
622
+        this.updateSettleSummaryFn();
777 623
       } else {
778 624
         console.log(this.form);
779 625
         console.log(this.settleWorkList);
@@ -824,6 +670,7 @@ export default {
824 670
       listSettleSummary({ settleId: this.taskForm.formId }).then(res => {
825 671
         console.log(res);
826 672
         this.settleSumList = res.rows;
673
+        this.oldSettleSumList = res.rows;
827 674
         for (let s of this.settleSumList) {
828 675
           if (s.content == "结算费用合计") {
829 676
             this.settleSumTr = s;
@@ -836,15 +683,16 @@ export default {
836 683
         this.calculateActualSumSettle();
837 684
       });
838 685
     },
839
-    updateSettleFn(){
840
-
686
+    updateSettleFn() {
841 687
     },
842
-    updateSettleWorkFn(){
688
+    updateSettleWorkFn() {
843 689
 
844 690
     },
845
-    updateSettleSummaryFn(){
846
-
847
-},
691
+    updateSettleSummaryFn() {
692
+      delSettleSummary([this.taskForm.formId]).then(res => {
693
+        this.addSettleSummaryFn(this.taskForm.formId)
694
+      })
695
+    },
848 696
   },
849 697
 };
850 698
 </script>

Loading…
取消
儲存