Explorar el Código

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

余思翰 hace 1 año
padre
commit
d2169654e7
Se han modificado 1 ficheros con 60 adiciones y 212 borrados
  1. 60
    212
      oa-ui/src/views/flowable/form/settleForm.vue

+ 60
- 212
oa-ui/src/views/flowable/form/settleForm.vue Ver fichero

15
         </div>
15
         </div>
16
         <el-form ref="form" :model="form" :rules="rules" label-width="160px">
16
         <el-form ref="form" :model="form" :rules="rules" label-width="160px">
17
           <el-form-item label="项目编号" prop="projectId">
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
               </el-option>
22
               </el-option>
34
             </el-select>
23
             </el-select>
35
             <el-descriptions border v-if="isSelect" style="margin-top: 10px" :column="2">
24
             <el-descriptions border v-if="isSelect" style="margin-top: 10px" :column="2">
48
               <el-descriptions-item label="项目负责人" label-class-name="my-label">
37
               <el-descriptions-item label="项目负责人" label-class-name="my-label">
49
                 {{
38
                 {{
50
                   chooseProject.projectLeaderUser
39
                   chooseProject.projectLeaderUser
51
-                    ? chooseProject.projectLeaderUser.nickName
52
-                    : ""
40
+                  ? chooseProject.projectLeaderUser.nickName
41
+                  : ""
53
                 }}
42
                 }}
54
               </el-descriptions-item>
43
               </el-descriptions-item>
55
               <el-descriptions-item label="甲方单位" label-class-name="my-label">
44
               <el-descriptions-item label="甲方单位" label-class-name="my-label">
76
             </el-descriptions>
65
             </el-descriptions>
77
           </el-form-item>
66
           </el-form-item>
78
           <el-form-item label="工作量上报说明" prop="workloadReport">
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
           </el-form-item>
69
           </el-form-item>
85
           <el-row>
70
           <el-row>
86
             <el-col :span="6" :xs="24" :offset="12">
71
             <el-col :span="6" :xs="24" :offset="12">
97
             </el-col>
82
             </el-col>
98
           </el-row>
83
           </el-row>
99
           <el-form-item label="原始上报数据" prop="">
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
               <div slot="tip" class="el-upload__tip">
88
               <div slot="tip" class="el-upload__tip">
116
                 只能上传docx/doc文件,且不超过500kb
89
                 只能上传docx/doc文件,且不超过500kb
117
               </div>
90
               </div>
118
             </el-upload>
91
             </el-upload>
119
           </el-form-item>
92
           </el-form-item>
120
           <el-form-item label="项目管理部审核结算单" prop="">
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
               <div slot="tip" class="el-upload__tip">
97
               <div slot="tip" class="el-upload__tip">
137
                 只能上传docx/doc文件,且不超过500kb
98
                 只能上传docx/doc文件,且不超过500kb
138
               </div>
99
               </div>
139
             </el-upload>
100
             </el-upload>
140
           </el-form-item>
101
           </el-form-item>
141
           <el-form-item label="分管领导审核结算单" prop="">
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
               <div slot="tip" class="el-upload__tip">
106
               <div slot="tip" class="el-upload__tip">
158
                 只能上传docx/doc文件,且不超过500kb
107
                 只能上传docx/doc文件,且不超过500kb
159
               </div>
108
               </div>
183
                   {{ index + 1 }}
132
                   {{ index + 1 }}
184
                 </td>
133
                 </td>
185
                 <td>
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
                 </td>
137
                 </td>
193
                 <td>
138
                 <td>
194
                   {{ work.scale == "" ? "无" : work.scale }}
139
                   {{ work.scale == "" ? "无" : work.scale }}
203
                   {{ work.price }}
148
                   {{ work.price }}
204
                 </td>
149
                 </td>
205
                 <td>
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
                 </td>
153
                 </td>
214
                 <td>
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
                 </td>
157
                 </td>
223
                 <td>
158
                 <td>
224
                   <!-- <el-input-number style="width:100px" v-model="work.settle" clearable :controls="false"></el-input-number> -->
159
                   <!-- <el-input-number style="width:100px" v-model="work.settle" clearable :controls="false"></el-input-number> -->
225
                   {{ work.settle }}
160
                   {{ work.settle }}
226
                 </td>
161
                 </td>
227
                 <td>
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
                 </td>
165
                 </td>
235
                 <td>
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
                 </td>
170
                 </td>
250
               </tr>
171
               </tr>
251
               <tr>
172
               <tr>
252
                 <td :colspan="8">结算费用合计</td>
173
                 <td :colspan="8">结算费用合计</td>
253
                 <td>{{ settleSumTr.amount }}</td>
174
                 <td>{{ settleSumTr.amount }}</td>
254
                 <td>
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
                 </td>
178
                 </td>
262
               </tr>
179
               </tr>
263
             </table>
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
           </el-form-item>
182
           </el-form-item>
272
 
183
 
273
           <!-- 结算汇总 -->
184
           <!-- 结算汇总 -->
289
                   {{ index + 1 }}
200
                   {{ index + 1 }}
290
                 </td>
201
                 </td>
291
                 <td>
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
                   </el-input>
204
                   </el-input>
299
                 </td>
205
                 </td>
300
                 <td>
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
                   <!-- {{ work.amount }} -->
209
                   <!-- {{ work.amount }} -->
309
                 </td>
210
                 </td>
310
                 <td>
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
                   </el-input>
213
                   </el-input>
318
                 </td>
214
                 </td>
319
                 <td>
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
                 </td>
218
                 </td>
328
               </tr>
219
               </tr>
329
               <tr>
220
               <tr>
330
                 <td :colspan="2">实际结算总金额</td>
221
                 <td :colspan="2">实际结算总金额</td>
331
                 <td :colspan="3">
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
                 </td>
225
                 </td>
339
               </tr>
226
               </tr>
340
             </table>
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
           </el-form-item>
229
           </el-form-item>
349
 
230
 
350
           <!-- 结算审核情况 -->
231
           <!-- 结算审核情况 -->
354
               <div class="line"></div>
235
               <div class="line"></div>
355
             </div>
236
             </div>
356
             <el-form-item label="综合事务部(设备领用情况)">
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
               </el-input>
239
               </el-input>
364
             </el-form-item>
240
             </el-form-item>
365
             <el-row>
241
             <el-row>
375
               </el-col>
251
               </el-col>
376
             </el-row>
252
             </el-row>
377
             <el-form-item label="技术质量部(质量及工作量)">
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
               </el-input>
255
               </el-input>
385
             </el-form-item>
256
             </el-form-item>
386
             <el-row>
257
             <el-row>
396
               </el-col>
267
               </el-col>
397
             </el-row>
268
             </el-row>
398
             <el-form-item label="项目管理部(结算)">
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
               </el-input>
271
               </el-input>
406
             </el-form-item>
272
             </el-form-item>
407
             <el-row>
273
             <el-row>
417
               </el-col>
283
               </el-col>
418
             </el-row>
284
             </el-row>
419
             <el-form-item label="项目承担部门(确认)">
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
               </el-input>
287
               </el-input>
427
             </el-form-item>
288
             </el-form-item>
428
             <el-row>
289
             <el-row>
438
               </el-col>
299
               </el-col>
439
             </el-row>
300
             </el-row>
440
             <el-form-item label="经营发展部(校核)">
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
               </el-input>
303
               </el-input>
448
             </el-form-item>
304
             </el-form-item>
449
             <el-row>
305
             <el-row>
459
               </el-col>
315
               </el-col>
460
             </el-row>
316
             </el-row>
461
             <el-form-item label="分管领导(审核)">
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
               </el-input>
319
               </el-input>
469
             </el-form-item>
320
             </el-form-item>
470
             <el-row>
321
             <el-row>
480
               </el-col>
331
               </el-col>
481
             </el-row>
332
             </el-row>
482
             <el-form-item label="总经理(审批)">
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
               </el-input>
335
               </el-input>
490
             </el-form-item>
336
             </el-form-item>
491
             <el-row>
337
             <el-row>
518
     </el-row>
364
     </el-row>
519
 
365
 
520
     <el-drawer title="选择单价" :visible.sync="drawer" direction="rtl">
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
     </el-drawer>
368
     </el-drawer>
527
   </div>
369
   </div>
528
 </template>
370
 </template>
532
 import { flowXmlAndNode } from "@/api/flowable/definition";
374
 import { flowXmlAndNode } from "@/api/flowable/definition";
533
 import { parseTime } from "@/utils/ruoyi";
375
 import { parseTime } from "@/utils/ruoyi";
534
 import { listProject, getProject } from "@/api/oa/project/project";
376
 import { listProject, getProject } from "@/api/oa/project/project";
377
+import { deepClone } from '@/utils'
535
 import {
378
 import {
536
   listSettle,
379
   listSettle,
537
   getSettle,
380
   getSettle,
599
           remark: "",
442
           remark: "",
600
         },
443
         },
601
       ],
444
       ],
445
+      oldSettleWorkList: [],
602
       settleSumTr: {
446
       settleSumTr: {
603
         content: "结算费用合计",
447
         content: "结算费用合计",
604
         amount: 0,
448
         amount: 0,
611
           remark: "",
455
           remark: "",
612
         },
456
         },
613
       ],
457
       ],
458
+      oldSettleSumList: [],
614
       actualSumSettle: "",
459
       actualSumSettle: "",
615
       clickWork: {},
460
       clickWork: {},
616
     };
461
     };
628
       this.flowData = res.data;
473
       this.flowData = res.data;
629
     });
474
     });
630
   },
475
   },
631
-  mounted() {},
476
+  mounted() { },
632
   methods: {
477
   methods: {
633
     initForm() {
478
     initForm() {
634
       listSettle({ settleId: this.taskForm.formId }).then(res => {
479
       listSettle({ settleId: this.taskForm.formId }).then(res => {
774
     // 保存按钮
619
     // 保存按钮
775
     preserve() {
620
     preserve() {
776
       if (this.flag) {
621
       if (this.flag) {
622
+        this.updateSettleSummaryFn();
777
       } else {
623
       } else {
778
         console.log(this.form);
624
         console.log(this.form);
779
         console.log(this.settleWorkList);
625
         console.log(this.settleWorkList);
824
       listSettleSummary({ settleId: this.taskForm.formId }).then(res => {
670
       listSettleSummary({ settleId: this.taskForm.formId }).then(res => {
825
         console.log(res);
671
         console.log(res);
826
         this.settleSumList = res.rows;
672
         this.settleSumList = res.rows;
673
+        this.oldSettleSumList = res.rows;
827
         for (let s of this.settleSumList) {
674
         for (let s of this.settleSumList) {
828
           if (s.content == "结算费用合计") {
675
           if (s.content == "结算费用合计") {
829
             this.settleSumTr = s;
676
             this.settleSumTr = s;
836
         this.calculateActualSumSettle();
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
 </script>
698
 </script>

Loading…
Cancelar
Guardar