|
@@ -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>
|