apply-clients 3.2.41 → 3.2.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/App.vue +20 -20
- package/src/apply.js +185 -175
- package/src/components/app_apply/Process/AppExplorationUser.vue +1 -1
- package/src/components/app_apply/ProgressReport/ProgressReportList.vue +209 -208
- package/src/components/app_apply/Supervisory/AppProcessSupervisory.vue +183 -183
- package/src/components/image/tubiao.png +0 -0
- package/src/components/product/Ledger/ContractManagement/OtherContract/OtherContractInformation.vue +429 -429
- package/src/components/product/Ledger/ContractManagement/OtherContract/OtherContractList.vue +267 -267
- package/src/components/product/Ledger/ContractManagement/PurchaseContract/PurchaseContractInformation.vue +715 -682
- package/src/components/product/Ledger/ContractManagement/PurchaseContract/PurchaseContractList.vue +304 -304
- package/src/components/product/Ledger/ContractManagement/RepairContract/RepairContractInformation.vue +286 -286
- package/src/components/product/Ledger/ContractManagement/RepairContract/RepairContractList.vue +258 -258
- package/src/components/product/Ledger/FacilityManagement/FacilityInventory/FacilityInventory.vue +31 -0
- package/src/components/product/Ledger/FacilityManagement/FacilityInventory/FacilityInventoryList.vue +5 -0
- package/src/components/product/Ledger/FacilityManagement/FacilityInventory/addoldFacilityInformation.vue +326 -0
- package/src/components/product/Ledger/FileDownload/FileDownload.vue +42 -0
- package/src/components/product/Ledger/Function/InstallInfoSelect.vue +4 -1
- package/src/components/product/Ledger/ImportApply/ImportApply.vue +68 -0
- package/src/components/product/Ledger/MaterialManagement/DeliveryRecord/DeliveryRecordList.vue +39 -3
- package/src/components/product/Ledger/MaterialManagement/InventoryInformation/InventoryInformationList.vue +32 -2
- package/src/components/product/Ledger/MaterialManagement/InventoryInformation/MaterialInformation.vue +1 -1
- package/src/components/product/Ledger/MaterialManagement/InventoryInformation/MaterialOutStock.vue +438 -430
- package/src/components/product/Ledger/MaterialManagement/InventoryInformation/MaterialOutboundOrder.vue +457 -449
- package/src/components/product/Ledger/MaterialManagement/InventoryInformation/PurchaseMaterial.vue +10 -2
- package/src/components/product/Ledger/MaterialManagement/InventoryInformation/PurchaseOrder.vue +10 -2
- package/src/components/product/Ledger/MaterialManagement/InventoryInformation/ReturnMaterial.vue +10 -2
- package/src/components/product/Ledger/MaterialManagement/OutboundOrder/OutboundOrderInformation.vue +3 -1
- package/src/components/product/Ledger/MaterialManagement/OutboundOrder/OutboundOrderList.vue +31 -2
- package/src/components/product/Ledger/MaterialManagement/OutboundOrder/PrintMaterialBill.vue +2 -2
- package/src/components/product/Ledger/MaterialManagement/PurchaseRecords/PrintPurchaseOrder.vue +5 -4
- package/src/components/product/Ledger/MaterialManagement/PurchaseRecords/PurchaseRecordsInformation.vue +5 -1
- package/src/components/product/Ledger/MaterialManagement/PurchaseRecords/PurchaseRecordsList.vue +33 -7
- package/src/components/product/Ledger/MaterialManagement/WarehousingRecord/WarehousingRecordList.vue +45 -3
- package/src/components/product/Ledger/Process/ProcessSelect.vue +3 -5
- package/src/components/product/Ledger/Process/Service/ServiceControl.vue +42 -5
- package/src/components/product/Ledger/QinhuaMaterial/PickingRecord/PickingInformation.vue +24 -3
- package/src/components/product/Ledger/QinhuaMaterial/SeasoningRecord/SeasoningRecordList.vue +14 -2
- package/src/components/product/Ledger/Supervisory/Service/RenWuDan.vue +78 -0
- package/src/components/product/Ledger/Supervisory/Service/SupervisoryServiceControl.vue +38 -2
- package/src/components/product/Ledger/Supervisory/SupervisoryList.vue +182 -7
- package/src/components/product/ServiceView.vue +761 -850
- package/static/images/lefticon//346/226/207/344/273/266/346/250/241/345/235/227.png +0 -0
|
@@ -1,682 +1,715 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="select-overspread" style="background-color: #ffffff;padding: 20px;overflow: scroll">
|
|
3
|
-
<validator name="v">
|
|
4
|
-
<form class="form-horizontal">
|
|
5
|
-
<div class="form-group">
|
|
6
|
-
<div class="col-sm-4 form-group item" :class="[$v.f_contract_number.required ? 'has-error' : '']">
|
|
7
|
-
<label class="control-label-justify control-label col-sm-6">合同编号</label>
|
|
8
|
-
<div class="col-sm-6">
|
|
9
|
-
<input class="form-control input_view" style=""
|
|
10
|
-
type="text"
|
|
11
|
-
:readonly="type !== 'add'"
|
|
12
|
-
v-validate:f_contract_number = "['required']"
|
|
13
|
-
@change="getContractByNumber()"
|
|
14
|
-
v-model="contract.f_contract_number"
|
|
15
|
-
:value="contract.f_contract_number"/>
|
|
16
|
-
</div>
|
|
17
|
-
</div>
|
|
18
|
-
<div class="col-sm-4 form-group item" :class="[$v.f_supplier.required ? 'has-error' : '']">
|
|
19
|
-
<label class="control-label-justify control-label col-sm-6">供方单位</label>
|
|
20
|
-
<div class="col-sm-6">
|
|
21
|
-
<input type="text" v-model="contract.f_supplier" v-validate:f_supplier = "['required']" v-show="false">
|
|
22
|
-
<input-select
|
|
23
|
-
class="select select_list"
|
|
24
|
-
:disable="type !== 'add'"
|
|
25
|
-
:value.sync="contract.f_supplier"
|
|
26
|
-
v-model="contract.f_supplier"
|
|
27
|
-
:options="supplier"
|
|
28
|
-
:valueSingle="true"></input-select>
|
|
29
|
-
</div>
|
|
30
|
-
</div>
|
|
31
|
-
<div class="col-sm-4 form-group item" :class="[$v.f_contact_person.required ? 'has-error' : '']">
|
|
32
|
-
<label class="control-label-justify control-label col-sm-6">联系人</label>
|
|
33
|
-
<div class="col-sm-6">
|
|
34
|
-
<input type="text" v-model="contract.f_contact_person" v-validate:f_contact_person = "['required']" v-show="false">
|
|
35
|
-
<input-select
|
|
36
|
-
class="select select_list"
|
|
37
|
-
:disable="type !== 'add'"
|
|
38
|
-
:value.sync="contract.f_contact_person"
|
|
39
|
-
v-model="contract.f_contact_person"
|
|
40
|
-
:options="f_contact_person"
|
|
41
|
-
:valueSingle="true">
|
|
42
|
-
</input-select>
|
|
43
|
-
</div>
|
|
44
|
-
</div>
|
|
45
|
-
<div class="col-sm-4 form-group item" :class="[$v.f_tel.required ? 'has-error' : '']">
|
|
46
|
-
<label class="control-label-justify control-label col-sm-6">电话</label>
|
|
47
|
-
<div class="col-sm-6">
|
|
48
|
-
<input type="text" v-model="contract.f_tel" v-validate:f_tel = "['required']" v-show="false">
|
|
49
|
-
<input-select
|
|
50
|
-
class="select select_list"
|
|
51
|
-
:disable="type !== 'add'"
|
|
52
|
-
:value.sync="contract.f_tel"
|
|
53
|
-
v-model="contract.f_tel"
|
|
54
|
-
:options="tel"
|
|
55
|
-
:valueSingle="true">
|
|
56
|
-
</input-select>
|
|
57
|
-
</div>
|
|
58
|
-
</div>
|
|
59
|
-
<div class="col-sm-4 form-group item" :class="[$v.f_contract_nature.required ? 'has-error' : '']">
|
|
60
|
-
<label class="control-label-justify control-label col-sm-6">合同性质</label>
|
|
61
|
-
<div class="col-sm-6">
|
|
62
|
-
<input type="text" v-model="contract.f_contract_nature" v-validate:f_contract_nature = "['required']" v-show="false">
|
|
63
|
-
<input-select
|
|
64
|
-
class="select select_list"
|
|
65
|
-
:disable="type !== 'add'"
|
|
66
|
-
:value.sync="contract.f_contract_nature"
|
|
67
|
-
v-model="contract.f_contract_nature"
|
|
68
|
-
:options="contractNature"
|
|
69
|
-
:valueSingle="true"></input-select>
|
|
70
|
-
</div>
|
|
71
|
-
</div>
|
|
72
|
-
<div class="col-sm-4 form-group item" :class="[$v.f_contract_source.required ? 'has-error' : '']">
|
|
73
|
-
<label class="control-label-justify control-label col-sm-6">合同来源</label>
|
|
74
|
-
<div class="col-sm-6">
|
|
75
|
-
<input type="text" v-model="contract.f_contract_source" v-validate:f_contract_source = "['required']" v-show="false">
|
|
76
|
-
<input-select
|
|
77
|
-
class="select select_list"
|
|
78
|
-
:disable="type !== 'add'"
|
|
79
|
-
:value.sync="contract.f_contract_source"
|
|
80
|
-
v-model="contract.f_contract_source"
|
|
81
|
-
:options="contractSource"
|
|
82
|
-
:valueSingle="true"></input-select>
|
|
83
|
-
</div>
|
|
84
|
-
</div>
|
|
85
|
-
<div class="col-sm-4 form-group item" :class="[$v.f_contract_category.required ? 'has-error' : '']">
|
|
86
|
-
<label class="control-label-justify control-label col-sm-6">合同类别</label>
|
|
87
|
-
<div class="col-sm-6">
|
|
88
|
-
<input type="text" v-model="contract.f_contract_category" v-validate:f_contract_category = "['required']" v-show="false">
|
|
89
|
-
<input-select
|
|
90
|
-
class="select select_list"
|
|
91
|
-
:disable="type !== 'add'"
|
|
92
|
-
@change="changeContractCategory()"
|
|
93
|
-
:value.sync="contract.f_contract_category"
|
|
94
|
-
v-model="contract.f_contract_category"
|
|
95
|
-
:options="contractCategory"
|
|
96
|
-
:valueSingle="true"></input-select>
|
|
97
|
-
</div>
|
|
98
|
-
</div>
|
|
99
|
-
<div class="col-sm-4 form-group item" :class="[$v.f_amount.required ? 'has-error' : '']">
|
|
100
|
-
<label class="control-label-justify control-label col-sm-6">合同份数</label>
|
|
101
|
-
<div class="col-sm-6">
|
|
102
|
-
<input class="form-control input_view" style=""
|
|
103
|
-
type="number"
|
|
104
|
-
:readonly="type
|
|
105
|
-
v-validate:f_amount = "['required']"
|
|
106
|
-
v-model="contract.f_amount"
|
|
107
|
-
:value="contract.f_amount"/>
|
|
108
|
-
</div>
|
|
109
|
-
</div>
|
|
110
|
-
<div class="col-sm-4 form-group item" :class="[$v.f_contract_time.required ? 'has-error' : '']">
|
|
111
|
-
<label class="control-label-justify control-label col-sm-6">签订时间</label>
|
|
112
|
-
<div class="col-sm-6">
|
|
113
|
-
<input type="text" v-model="contract.f_contract_time" v-validate:f_contract_time = "['required']" v-show="false">
|
|
114
|
-
<datepicker
|
|
115
|
-
:disabled="type !== 'add'"
|
|
116
|
-
:value.sync="contract.f_contract_time"
|
|
117
|
-
format="yyyy-MM-dd"
|
|
118
|
-
v-model="contract.f_contract_time">
|
|
119
|
-
</datepicker>
|
|
120
|
-
</div>
|
|
121
|
-
</div>
|
|
122
|
-
<div v-if="contract.f_contract_nature !== '单次'" class="col-sm-4 form-group item" :class="[$v.f_contract_expiration_date.required ? 'has-error' : '']">
|
|
123
|
-
<label class="control-label-justify control-label col-sm-6">到期时间</label>
|
|
124
|
-
<div class="col-sm-6">
|
|
125
|
-
<input type="text" v-model="contract.f_contract_expiration_date" v-validate:f_contract_expiration_date = "['required']" v-show="false">
|
|
126
|
-
<datepicker
|
|
127
|
-
:disabled="type
|
|
128
|
-
format="yyyy-MM-dd"
|
|
129
|
-
@change="changeExpirationDate"
|
|
130
|
-
:value.sync="contract.f_contract_expiration_date"
|
|
131
|
-
v-model="contract.f_contract_expiration_date">
|
|
132
|
-
</datepicker>
|
|
133
|
-
</div>
|
|
134
|
-
</div>
|
|
135
|
-
<div class="col-sm-4 form-group item" v-if="type !== 'add'">
|
|
136
|
-
<label class="control-label-justify control-label col-sm-6">合同总金额</label>
|
|
137
|
-
<div class="col-sm-6">
|
|
138
|
-
<input class="form-control input_view" style=""
|
|
139
|
-
type="number"
|
|
140
|
-
readonly
|
|
141
|
-
v-model="contract.f_contract_money"
|
|
142
|
-
:value="contract.f_contract_money"/>
|
|
143
|
-
</div>
|
|
144
|
-
</div>
|
|
145
|
-
<div class="col-sm-4 form-group item" v-if="type !== 'add'">
|
|
146
|
-
<label class="control-label-justify control-label col-sm-6">入库次数</label>
|
|
147
|
-
<div class="col-sm-6">
|
|
148
|
-
<input class="form-control input_view" style=""
|
|
149
|
-
type="number"
|
|
150
|
-
readonly
|
|
151
|
-
v-model="contract.f_warehousing_quantity"
|
|
152
|
-
:value="contract.f_warehousing_quantity"/>
|
|
153
|
-
</div>
|
|
154
|
-
</div>
|
|
155
|
-
<div class="col-sm-12 form-group item">
|
|
156
|
-
<label class="control-label-justify control-label col-sm-3">备注</label>
|
|
157
|
-
<div class="col-sm-10">
|
|
158
|
-
<textarea
|
|
159
|
-
class="form-control input_view"
|
|
160
|
-
style="width: 100%;height: 100%"
|
|
161
|
-
rows="2"
|
|
162
|
-
:readonly="type !== 'add'"
|
|
163
|
-
v-model="contract.f_remarks"
|
|
164
|
-
:value="contract.f_remarks"
|
|
165
|
-
></textarea>
|
|
166
|
-
</div>
|
|
167
|
-
</div>
|
|
168
|
-
|
|
169
|
-
<div class="col-sm-12">
|
|
170
|
-
<data-grid v-if="contract.f_contract_category === '物料'" :model="model" partial='list' v-ref:grid style="overflow: auto" class="list_area table_sy">
|
|
171
|
-
<template partial='head'>
|
|
172
|
-
<tr>
|
|
173
|
-
<th style="white-space: nowrap;">序号</th>
|
|
174
|
-
<th style="white-space: nowrap;">材料名称</th>
|
|
175
|
-
<th style="white-space: nowrap;">材料型号</th>
|
|
176
|
-
<th style="white-space: nowrap;">材料规格</th>
|
|
177
|
-
<th style="white-space: nowrap;">单位</th>
|
|
178
|
-
<th style="white-space: nowrap;"
|
|
179
|
-
<th style="white-space: nowrap;"
|
|
180
|
-
<th style="white-space: nowrap;" v-if="
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
<
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
</td>
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
<
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
</
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
}
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
this.
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
this
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
item.
|
|
459
|
-
item.
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
} else {
|
|
473
|
-
if (isEmpty(this.index)) {
|
|
474
|
-
this.model.data.push(this.
|
|
475
|
-
} else {
|
|
476
|
-
this.model.data.splice(this.index, 1, this.
|
|
477
|
-
}
|
|
478
|
-
}
|
|
479
|
-
}
|
|
480
|
-
this.
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
},
|
|
514
|
-
//
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
this
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
}
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
1
|
+
<template>
|
|
2
|
+
<div class="select-overspread" style="background-color: #ffffff;padding: 20px;overflow: scroll">
|
|
3
|
+
<validator name="v">
|
|
4
|
+
<form class="form-horizontal">
|
|
5
|
+
<div class="form-group">
|
|
6
|
+
<div class="col-sm-4 form-group item" :class="[$v.f_contract_number.required ? 'has-error' : '']">
|
|
7
|
+
<label class="control-label-justify control-label col-sm-6">合同编号</label>
|
|
8
|
+
<div class="col-sm-6">
|
|
9
|
+
<input class="form-control input_view" style=""
|
|
10
|
+
type="text"
|
|
11
|
+
:readonly="type !== 'add'"
|
|
12
|
+
v-validate:f_contract_number = "['required']"
|
|
13
|
+
@change="getContractByNumber()"
|
|
14
|
+
v-model="contract.f_contract_number"
|
|
15
|
+
:value="contract.f_contract_number"/>
|
|
16
|
+
</div>
|
|
17
|
+
</div>
|
|
18
|
+
<div class="col-sm-4 form-group item" :class="[$v.f_supplier.required ? 'has-error' : '']">
|
|
19
|
+
<label class="control-label-justify control-label col-sm-6">供方单位</label>
|
|
20
|
+
<div class="col-sm-6">
|
|
21
|
+
<input type="text" v-model="contract.f_supplier" v-validate:f_supplier = "['required']" v-show="false">
|
|
22
|
+
<input-select
|
|
23
|
+
class="select select_list"
|
|
24
|
+
:disable="type !== 'add'"
|
|
25
|
+
:value.sync="contract.f_supplier"
|
|
26
|
+
v-model="contract.f_supplier"
|
|
27
|
+
:options="supplier"
|
|
28
|
+
:valueSingle="true"></input-select>
|
|
29
|
+
</div>
|
|
30
|
+
</div>
|
|
31
|
+
<div class="col-sm-4 form-group item" :class="[$v.f_contact_person.required ? 'has-error' : '']">
|
|
32
|
+
<label class="control-label-justify control-label col-sm-6">联系人</label>
|
|
33
|
+
<div class="col-sm-6">
|
|
34
|
+
<input type="text" v-model="contract.f_contact_person" v-validate:f_contact_person = "['required']" v-show="false">
|
|
35
|
+
<input-select
|
|
36
|
+
class="select select_list"
|
|
37
|
+
:disable="type !== 'add'"
|
|
38
|
+
:value.sync="contract.f_contact_person"
|
|
39
|
+
v-model="contract.f_contact_person"
|
|
40
|
+
:options="f_contact_person"
|
|
41
|
+
:valueSingle="true">
|
|
42
|
+
</input-select>
|
|
43
|
+
</div>
|
|
44
|
+
</div>
|
|
45
|
+
<div class="col-sm-4 form-group item" :class="[$v.f_tel.required ? 'has-error' : '']">
|
|
46
|
+
<label class="control-label-justify control-label col-sm-6">电话</label>
|
|
47
|
+
<div class="col-sm-6">
|
|
48
|
+
<input type="text" v-model="contract.f_tel" v-validate:f_tel = "['required']" v-show="false">
|
|
49
|
+
<input-select
|
|
50
|
+
class="select select_list"
|
|
51
|
+
:disable="type !== 'add'"
|
|
52
|
+
:value.sync="contract.f_tel"
|
|
53
|
+
v-model="contract.f_tel"
|
|
54
|
+
:options="tel"
|
|
55
|
+
:valueSingle="true">
|
|
56
|
+
</input-select>
|
|
57
|
+
</div>
|
|
58
|
+
</div>
|
|
59
|
+
<div class="col-sm-4 form-group item" :class="[$v.f_contract_nature.required ? 'has-error' : '']">
|
|
60
|
+
<label class="control-label-justify control-label col-sm-6">合同性质</label>
|
|
61
|
+
<div class="col-sm-6">
|
|
62
|
+
<input type="text" v-model="contract.f_contract_nature" v-validate:f_contract_nature = "['required']" v-show="false">
|
|
63
|
+
<input-select
|
|
64
|
+
class="select select_list"
|
|
65
|
+
:disable="type !== 'add'"
|
|
66
|
+
:value.sync="contract.f_contract_nature"
|
|
67
|
+
v-model="contract.f_contract_nature"
|
|
68
|
+
:options="contractNature"
|
|
69
|
+
:valueSingle="true"></input-select>
|
|
70
|
+
</div>
|
|
71
|
+
</div>
|
|
72
|
+
<div class="col-sm-4 form-group item" :class="[$v.f_contract_source.required ? 'has-error' : '']">
|
|
73
|
+
<label class="control-label-justify control-label col-sm-6">合同来源</label>
|
|
74
|
+
<div class="col-sm-6">
|
|
75
|
+
<input type="text" v-model="contract.f_contract_source" v-validate:f_contract_source = "['required']" v-show="false">
|
|
76
|
+
<input-select
|
|
77
|
+
class="select select_list"
|
|
78
|
+
:disable="type !== 'add'"
|
|
79
|
+
:value.sync="contract.f_contract_source"
|
|
80
|
+
v-model="contract.f_contract_source"
|
|
81
|
+
:options="contractSource"
|
|
82
|
+
:valueSingle="true"></input-select>
|
|
83
|
+
</div>
|
|
84
|
+
</div>
|
|
85
|
+
<div class="col-sm-4 form-group item" :class="[$v.f_contract_category.required ? 'has-error' : '']">
|
|
86
|
+
<label class="control-label-justify control-label col-sm-6">合同类别</label>
|
|
87
|
+
<div class="col-sm-6">
|
|
88
|
+
<input type="text" v-model="contract.f_contract_category" v-validate:f_contract_category = "['required']" v-show="false">
|
|
89
|
+
<input-select
|
|
90
|
+
class="select select_list"
|
|
91
|
+
:disable="type !== 'add'"
|
|
92
|
+
@change="changeContractCategory()"
|
|
93
|
+
:value.sync="contract.f_contract_category"
|
|
94
|
+
v-model="contract.f_contract_category"
|
|
95
|
+
:options="contractCategory"
|
|
96
|
+
:valueSingle="true"></input-select>
|
|
97
|
+
</div>
|
|
98
|
+
</div>
|
|
99
|
+
<div class="col-sm-4 form-group item" :class="[$v.f_amount.required ? 'has-error' : '']">
|
|
100
|
+
<label class="control-label-justify control-label col-sm-6">合同份数</label>
|
|
101
|
+
<div class="col-sm-6">
|
|
102
|
+
<input class="form-control input_view" style=""
|
|
103
|
+
type="number"
|
|
104
|
+
:readonly="type != 'add'"
|
|
105
|
+
v-validate:f_amount = "['required']"
|
|
106
|
+
v-model="contract.f_amount"
|
|
107
|
+
:value="contract.f_amount"/>
|
|
108
|
+
</div>
|
|
109
|
+
</div>
|
|
110
|
+
<div class="col-sm-4 form-group item" :class="[$v.f_contract_time.required ? 'has-error' : '']">
|
|
111
|
+
<label class="control-label-justify control-label col-sm-6">签订时间</label>
|
|
112
|
+
<div class="col-sm-6">
|
|
113
|
+
<input type="text" v-model="contract.f_contract_time" v-validate:f_contract_time = "['required']" v-show="false">
|
|
114
|
+
<datepicker
|
|
115
|
+
:disabled="type !== 'add'"
|
|
116
|
+
:value.sync="contract.f_contract_time"
|
|
117
|
+
format="yyyy-MM-dd"
|
|
118
|
+
v-model="contract.f_contract_time">
|
|
119
|
+
</datepicker>
|
|
120
|
+
</div>
|
|
121
|
+
</div>
|
|
122
|
+
<div v-if="contract.f_contract_nature !== '单次'" class="col-sm-4 form-group item" :class="[$v.f_contract_expiration_date.required ? 'has-error' : '']">
|
|
123
|
+
<label class="control-label-justify control-label col-sm-6">到期时间</label>
|
|
124
|
+
<div class="col-sm-6">
|
|
125
|
+
<input type="text" v-model="contract.f_contract_expiration_date" v-validate:f_contract_expiration_date = "['required']" v-show="false">
|
|
126
|
+
<datepicker
|
|
127
|
+
:disabled="type !== 'add'"
|
|
128
|
+
format="yyyy-MM-dd"
|
|
129
|
+
@change="changeExpirationDate"
|
|
130
|
+
:value.sync="contract.f_contract_expiration_date"
|
|
131
|
+
v-model="contract.f_contract_expiration_date">
|
|
132
|
+
</datepicker>
|
|
133
|
+
</div>
|
|
134
|
+
</div>
|
|
135
|
+
<div class="col-sm-4 form-group item" v-if="type !== 'add'">
|
|
136
|
+
<label class="control-label-justify control-label col-sm-6">合同总金额</label>
|
|
137
|
+
<div class="col-sm-6">
|
|
138
|
+
<input class="form-control input_view" style=""
|
|
139
|
+
type="number"
|
|
140
|
+
readonly
|
|
141
|
+
v-model="contract.f_contract_money"
|
|
142
|
+
:value="contract.f_contract_money"/>
|
|
143
|
+
</div>
|
|
144
|
+
</div>
|
|
145
|
+
<div class="col-sm-4 form-group item" v-if="type !== 'add'">
|
|
146
|
+
<label class="control-label-justify control-label col-sm-6">入库次数</label>
|
|
147
|
+
<div class="col-sm-6">
|
|
148
|
+
<input class="form-control input_view" style=""
|
|
149
|
+
type="number"
|
|
150
|
+
readonly
|
|
151
|
+
v-model="contract.f_warehousing_quantity"
|
|
152
|
+
:value="contract.f_warehousing_quantity"/>
|
|
153
|
+
</div>
|
|
154
|
+
</div>
|
|
155
|
+
<div class="col-sm-12 form-group item">
|
|
156
|
+
<label class="control-label-justify control-label col-sm-3">备注</label>
|
|
157
|
+
<div class="col-sm-10">
|
|
158
|
+
<textarea
|
|
159
|
+
class="form-control input_view"
|
|
160
|
+
style="width: 100%;height: 100%"
|
|
161
|
+
rows="2"
|
|
162
|
+
:readonly="type !== 'add'"
|
|
163
|
+
v-model="contract.f_remarks"
|
|
164
|
+
:value="contract.f_remarks"
|
|
165
|
+
></textarea>
|
|
166
|
+
</div>
|
|
167
|
+
</div>
|
|
168
|
+
|
|
169
|
+
<div class="col-sm-12">
|
|
170
|
+
<data-grid v-if="contract.f_contract_category === '物料'" :model="model" partial='list' v-ref:grid style="overflow: auto" class="list_area table_sy">
|
|
171
|
+
<template partial='head'>
|
|
172
|
+
<tr>
|
|
173
|
+
<th style="white-space: nowrap;">序号</th>
|
|
174
|
+
<th style="white-space: nowrap;">材料名称</th>
|
|
175
|
+
<th style="white-space: nowrap;">材料型号</th>
|
|
176
|
+
<th style="white-space: nowrap;">材料规格</th>
|
|
177
|
+
<th style="white-space: nowrap;">单位</th>
|
|
178
|
+
<th style="white-space: nowrap;">含税单价</th>
|
|
179
|
+
<th style="white-space: nowrap;">不含税单价</th>
|
|
180
|
+
<th style="white-space: nowrap;" v-if="type !== 'add'">累计数量</th>
|
|
181
|
+
<th style="white-space: nowrap;" v-if="$parent.$parent.type !== 'view'">
|
|
182
|
+
<button @click="$parent.$parent.showModal = !$parent.$parent.showModal" type="button" class="btn btn-info">
|
|
183
|
+
<span class="glyphicon glyphicon-plus" aria-hidden="true"></span>
|
|
184
|
+
</button>
|
|
185
|
+
<a href="/download/材料批量导入模板.xlsx" type="button" class="btn btn-info">模板下载</a>
|
|
186
|
+
<button @click="$parent.$parent.showFile = !$parent.$parent.showFile" type="button" class="btn btn-info">批量导入</button>
|
|
187
|
+
</th>
|
|
188
|
+
<th v-if="$parent.$parent.type === 'view'">
|
|
189
|
+
<export-excel :data="$parent.$parent.getCondition"
|
|
190
|
+
:field="$parent.$parent.getfield"
|
|
191
|
+
sqlurl="rs/logic/exportfile"
|
|
192
|
+
sql-name="singleTable"
|
|
193
|
+
template-name='合同材料详情'
|
|
194
|
+
:choose-col="true"></export-excel>
|
|
195
|
+
</th>
|
|
196
|
+
</tr>
|
|
197
|
+
</template>
|
|
198
|
+
<template partial='body'>
|
|
199
|
+
<tr>
|
|
200
|
+
<td style="text-align: center;">{{$index+1}}</td>
|
|
201
|
+
<td style="text-align: center;">{{row.f_material_name}}</td>
|
|
202
|
+
<td style="text-align: center;">{{row.f_material_model}}</td>
|
|
203
|
+
<td style="text-align: center;">{{row.f_material_norm}}</td>
|
|
204
|
+
<td style="text-align: center;">{{row.f_unit}}</td>
|
|
205
|
+
<td style="text-align: center;">{{row.f_price}}</td>
|
|
206
|
+
<td style="text-align: center;">{{row.f_noprice}}</td>
|
|
207
|
+
<td style="text-align: center;" v-if="type !== 'add'">{{row.f_total}}</td>
|
|
208
|
+
<td style="text-align: center;" v-if="$parent.$parent.type !== 'view'">
|
|
209
|
+
<button type="button" name="button" class="btn btn-link" @click="$parent.$parent.openUpdate($index,row)">修改</button>
|
|
210
|
+
<button type="button" name="button" class="btn btn-link" @click="$parent.$parent.delete($index)">删除</button>
|
|
211
|
+
</td>
|
|
212
|
+
</tr>
|
|
213
|
+
</template>
|
|
214
|
+
</data-grid>
|
|
215
|
+
|
|
216
|
+
<data-grid v-if="contract.f_contract_category === '设备'" :model="model" partial='list' v-ref:grid style="overflow: auto" class="list_area table_sy">
|
|
217
|
+
<template partial='head'>
|
|
218
|
+
<tr>
|
|
219
|
+
<th style="white-space: nowrap;">序号</th>
|
|
220
|
+
<th style="white-space: nowrap;">设备名称</th>
|
|
221
|
+
<th style="white-space: nowrap;">设备型号</th>
|
|
222
|
+
<th style="white-space: nowrap;">设备规格</th>
|
|
223
|
+
<th style="white-space: nowrap;">设备价格</th>
|
|
224
|
+
<th style="white-space: nowrap;" v-if="type !== 'add'">累计数量</th>
|
|
225
|
+
<th style="white-space: nowrap;" v-if="$parent.$parent.type !== 'view'">
|
|
226
|
+
<button @click="$parent.$parent.showModal = !$parent.$parent.showModal" type="button" class="btn btn-info">
|
|
227
|
+
<span class="glyphicon glyphicon-plus" aria-hidden="true"></span>
|
|
228
|
+
</button>
|
|
229
|
+
<a href="/download/设备批量导入模板.xlsx" type="button" class="btn btn-info">模板下载</a>
|
|
230
|
+
<button @click="$parent.$parent.showFile = !$parent.$parent.showFile" type="button" class="btn btn-info">批量导入</button>
|
|
231
|
+
</th>
|
|
232
|
+
</tr>
|
|
233
|
+
</template>
|
|
234
|
+
<template partial='body'>
|
|
235
|
+
<tr>
|
|
236
|
+
<td style="text-align: center;">{{$index+1}}</td>
|
|
237
|
+
<td style="text-align: center;">{{row.f_facility_name}}</td>
|
|
238
|
+
<td style="text-align: center;">{{row.f_facility_model}}</td>
|
|
239
|
+
<td style="text-align: center;">{{row.f_facility_norm}}</td>
|
|
240
|
+
<td style="text-align: center;">{{row.f_facility_money}}</td>
|
|
241
|
+
<td style="text-align: center;" v-if="type !== 'add'">{{row.f_total}}</td>
|
|
242
|
+
<td style="text-align: center;" v-if="$parent.$parent.type !== 'view'">
|
|
243
|
+
<button type="button" v-if="!row.id" name="button" class="btn btn-link" @click="$parent.$parent.openUpdate($index,row)">修改</button>
|
|
244
|
+
<button type="button" v-if="!row.id" name="button" class="btn btn-link" @click="$parent.$parent.delete($index)">删除</button>
|
|
245
|
+
</td>
|
|
246
|
+
</tr>
|
|
247
|
+
</template>
|
|
248
|
+
</data-grid>
|
|
249
|
+
</div>
|
|
250
|
+
|
|
251
|
+
<div class="col-sm-12 form-group" style="text-align: center">
|
|
252
|
+
<button class="btn btn-primary" v-if="type === 'add'" @click.prevent="addContract()" :disabled='!($v.valid && model.data.length > 0)'>保存</button>
|
|
253
|
+
<button class="btn btn-primary" v-if="type === 'renew'" @click.prevent="renewContract()" :disabled='!($v.valid && model.data.length > 0)'>续签</button>
|
|
254
|
+
</div>
|
|
255
|
+
</div>
|
|
256
|
+
</form>
|
|
257
|
+
</validator>
|
|
258
|
+
|
|
259
|
+
<validator name="mv">
|
|
260
|
+
<modal v-if="showModal" :show.sync="showModal" backdrop="false" large>
|
|
261
|
+
<header slot="modal-header" class="modal-header">
|
|
262
|
+
<button type="button" class="close" @click="closeModal()"><span>×</span></button>
|
|
263
|
+
<span class="modal-title"><font size="3">添加材料</font></span>
|
|
264
|
+
</header>
|
|
265
|
+
<article slot="modal-body" class="form-horizontal modal-body clearfix" v-if="contract.f_contract_category === '物料'">
|
|
266
|
+
<div class="col-sm-12 form-group" :class="[$mv.f_material_name.required ? 'has-error' : '']">
|
|
267
|
+
<label class="control-label col-sm-2">材料名称</label>
|
|
268
|
+
<div class="col-sm-9">
|
|
269
|
+
<input class="form-control" type="text" v-validate:f_material_name = "['required']" v-model="material.f_material_name" :value="material.f_material_name"/>
|
|
270
|
+
</div>
|
|
271
|
+
</div>
|
|
272
|
+
<div class="col-sm-12 form-group" :class="[$mv.f_material_model.required ? 'has-error' : '']">
|
|
273
|
+
<label class="control-label col-sm-2">材料型号</label>
|
|
274
|
+
<div class="col-sm-9">
|
|
275
|
+
<input class="form-control" type="text" v-validate:f_material_model = "['required']" v-model="material.f_material_model" :value="material.f_material_model"/>
|
|
276
|
+
</div>
|
|
277
|
+
</div>
|
|
278
|
+
<div class="col-sm-12 form-group" :class="[$mv.f_material_norm.required ? 'has-error' : '']">
|
|
279
|
+
<label class="control-label col-sm-2">材料规格</label>
|
|
280
|
+
<div class="col-sm-9">
|
|
281
|
+
<input class="form-control" type="text" v-validate:f_material_norm = "['required']" v-model="material.f_material_norm" :value="material.f_material_norm"/>
|
|
282
|
+
</div>
|
|
283
|
+
</div>
|
|
284
|
+
<div class="col-sm-12 form-group" :class="[$mv.f_unit.required ? 'has-error' : '']">
|
|
285
|
+
<label class="control-label col-sm-2">单  位</label>
|
|
286
|
+
<div class="col-sm-9">
|
|
287
|
+
<input class="form-control" type="text" v-validate:f_unit = "['required']" v-model="material.f_unit" :value="material.f_unit"/>
|
|
288
|
+
</div>
|
|
289
|
+
</div>
|
|
290
|
+
<div class="col-sm-12 form-group" :class="[$mv.f_price.required ? 'has-error' : '']">
|
|
291
|
+
<label class="control-label col-sm-2">含税单价</label>
|
|
292
|
+
<div class="col-sm-9">
|
|
293
|
+
<input class="form-control" type="number" v-validate:f_price = "['required']" v-model="material.f_price" :value="material.f_price"/>
|
|
294
|
+
</div>
|
|
295
|
+
</div>
|
|
296
|
+
<div class="col-sm-12 form-group" :class="[$mv.f_noprice.required ? 'has-error' : '']">
|
|
297
|
+
<label class="control-label col-sm-2">不含税单价</label>
|
|
298
|
+
<div class="col-sm-9">
|
|
299
|
+
<input class="form-control" type="number" v-validate:f_noprice = "['required']" v-model="material.f_noprice" :value="material.f_noprice"/>
|
|
300
|
+
</div>
|
|
301
|
+
</div>
|
|
302
|
+
</article>
|
|
303
|
+
<article slot="modal-body" class="form-horizontal modal-body clearfix" v-if="contract.f_contract_category === '设备'">
|
|
304
|
+
<div class="col-sm-12 form-group" :class="[$mv.f_facility_name.required ? 'has-error' : '']">
|
|
305
|
+
<label class="control-label col-sm-2">设备名称</label>
|
|
306
|
+
<div class="col-sm-9">
|
|
307
|
+
<input class="form-control" type="text" v-validate:f_facility_name = "['required']" v-model="facility.f_facility_name" :value="facility.f_facility_name"/>
|
|
308
|
+
</div>
|
|
309
|
+
</div>
|
|
310
|
+
<div class="col-sm-12 form-group" :class="[$mv.f_facility_model.required ? 'has-error' : '']">
|
|
311
|
+
<label class="control-label col-sm-2">设备型号</label>
|
|
312
|
+
<div class="col-sm-9">
|
|
313
|
+
<input class="form-control" type="text" v-validate:f_facility_model = "['required']" v-model="facility.f_facility_model" :value="facility.f_facility_model"/>
|
|
314
|
+
</div>
|
|
315
|
+
</div>
|
|
316
|
+
<div class="col-sm-12 form-group" :class="[$mv.f_facility_norm.required ? 'has-error' : '']">
|
|
317
|
+
<label class="control-label col-sm-2">设备规格</label>
|
|
318
|
+
<div class="col-sm-9">
|
|
319
|
+
<input class="form-control" type="text" v-validate:f_facility_norm = "['required']" v-model="facility.f_facility_norm" :value="facility.f_facility_norm"/>
|
|
320
|
+
</div>
|
|
321
|
+
</div>
|
|
322
|
+
<div class="col-sm-12 form-group" :class="[$mv.f_facility_money.required ? 'has-error' : '']">
|
|
323
|
+
<label class="control-label col-sm-2">设备金额</label>
|
|
324
|
+
<div class="col-sm-9">
|
|
325
|
+
<input class="form-control" type="number" v-validate:f_facility_money = "['required']" v-model="facility.f_facility_money" :value="facility.f_facility_money"/>
|
|
326
|
+
</div>
|
|
327
|
+
</div>
|
|
328
|
+
</article>
|
|
329
|
+
<footer slot="modal-footer" class="modal-footer">
|
|
330
|
+
<button class="btn btn-primary" type="button" @click.prevent="saveOrUpdate()" :disabled='!$mv.valid'>确认</button>
|
|
331
|
+
</footer>
|
|
332
|
+
</modal>
|
|
333
|
+
</validator>
|
|
334
|
+
|
|
335
|
+
<modal :show.sync="showFile" v-ref:modal backdrop="true" title="选择文件">
|
|
336
|
+
<header slot="modal-header" class="modal-header">
|
|
337
|
+
<button type="button" class="close" @click="closeFile"><span>×</span></button>
|
|
338
|
+
<h4 class="modal-title">选择文件</h4>
|
|
339
|
+
</header>
|
|
340
|
+
<article slot="modal-body" class="modal-body">
|
|
341
|
+
<div class="form-group">
|
|
342
|
+
<file-upload class="my-file-uploader" name="useraddressUploadFile" action="rs/file/uploadFile" tagname="确定" multiple v-ref:file></file-upload>
|
|
343
|
+
</div>
|
|
344
|
+
</article>
|
|
345
|
+
<footer slot="modal-footer" class="modal-footer"></footer>
|
|
346
|
+
</modal>
|
|
347
|
+
</div>
|
|
348
|
+
</template>
|
|
349
|
+
|
|
350
|
+
<script>
|
|
351
|
+
import {PagedList} from 'vue-client'
|
|
352
|
+
import {getNowDate,isEmpty} from '../../../../Util'
|
|
353
|
+
// Date格式化
|
|
354
|
+
Date.prototype.Format = function (fmt) {
|
|
355
|
+
var o = {
|
|
356
|
+
'M+': this.getMonth() + 1, // 月份
|
|
357
|
+
'd+': this.getDate(), // 日
|
|
358
|
+
'H+': this.getHours(), // 小时
|
|
359
|
+
'm+': this.getMinutes(), // 分
|
|
360
|
+
's+': this.getSeconds(), // 秒
|
|
361
|
+
'q+': Math.floor((this.getMonth() + 3) / 3), // 季度
|
|
362
|
+
'S': this.getMilliseconds() // 毫秒
|
|
363
|
+
}
|
|
364
|
+
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length))
|
|
365
|
+
for (var k in o) {
|
|
366
|
+
if (new RegExp('(' + k + ')').test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)))
|
|
367
|
+
}
|
|
368
|
+
return fmt
|
|
369
|
+
}
|
|
370
|
+
export default {
|
|
371
|
+
props: ['contract', 'type'],
|
|
372
|
+
title: '合同信息',
|
|
373
|
+
data () {
|
|
374
|
+
return {
|
|
375
|
+
model: {
|
|
376
|
+
data: []
|
|
377
|
+
},
|
|
378
|
+
supplier: [{label: '全部', value: ''}, ...this.$appdata.getParam('供方单位')],
|
|
379
|
+
contractSource: [{label: '全部', value: ''}, ...this.$appdata.getParam('合同来源')],
|
|
380
|
+
contractCategory:[{label: '全部', value: ''}, ...this.$appdata.getParam('合同类别')],
|
|
381
|
+
contractNature:[{label: '全部', value: ''}, ...this.$appdata.getParam('合同性质')],
|
|
382
|
+
f_contact_person:[{label:'全部', value:''}, ...this.$appdata.getParam('联系人')],
|
|
383
|
+
tel:[{label:'全部',value:''}, ...this.$appdata.getParam('电话')],
|
|
384
|
+
showModal: false,
|
|
385
|
+
material: {},
|
|
386
|
+
getfield: {
|
|
387
|
+
'f_material_name': '材料名称',
|
|
388
|
+
'f_material_model': '材料型号',
|
|
389
|
+
'f_material_norm': '材料规格',
|
|
390
|
+
'f_unit': '单位',
|
|
391
|
+
'f_price': '单价'
|
|
392
|
+
},
|
|
393
|
+
facility: {},
|
|
394
|
+
index: null,
|
|
395
|
+
showFile: false
|
|
396
|
+
}
|
|
397
|
+
},
|
|
398
|
+
ready () {
|
|
399
|
+
if (this.type !== 'add') {
|
|
400
|
+
this.getData()
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
},
|
|
404
|
+
methods: {
|
|
405
|
+
closeFile () {
|
|
406
|
+
this.showFile = false
|
|
407
|
+
// 将选的文件清空
|
|
408
|
+
this.$refs.file.$el.querySelector('input').value = ''
|
|
409
|
+
},
|
|
410
|
+
async getData () {
|
|
411
|
+
let data = {
|
|
412
|
+
tablename: `${this.contract.f_contract_category === '物料' ? 't_contract_material' : 't_contract_facility'}`,
|
|
413
|
+
condition: `f_contract_id = '${this.contract.id}'`
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
let res = await this.$resetpost(
|
|
417
|
+
`rs/sql/singleTable`,
|
|
418
|
+
{data: data},
|
|
419
|
+
{resolveMsg: null, rejectMsg: `${this.contract.f_contract_category}查询失败!!!`}
|
|
420
|
+
)
|
|
421
|
+
|
|
422
|
+
this.model.data = res.data
|
|
423
|
+
},
|
|
424
|
+
//续签合同
|
|
425
|
+
renewContract () {
|
|
426
|
+
let data = {
|
|
427
|
+
contract: this.contract,
|
|
428
|
+
data: this.model.data
|
|
429
|
+
}
|
|
430
|
+
this.$dispatch('renewContract', data)
|
|
431
|
+
},
|
|
432
|
+
// 打开修改
|
|
433
|
+
openUpdate (index, row) {
|
|
434
|
+
this.index = index
|
|
435
|
+
this.material = JSON.parse(JSON.stringify(row))
|
|
436
|
+
this.facility = JSON.parse(JSON.stringify(row))
|
|
437
|
+
|
|
438
|
+
this.showModal = true
|
|
439
|
+
},
|
|
440
|
+
// 删除
|
|
441
|
+
async delete (index) {
|
|
442
|
+
this.index = index
|
|
443
|
+
await this.$showMessage('您确定要删除这条记录吗?').then((res) => {
|
|
444
|
+
if (res === 'confirm') {
|
|
445
|
+
this.model.data.splice(this.index, 1)
|
|
446
|
+
}
|
|
447
|
+
})
|
|
448
|
+
this.closeModal()
|
|
449
|
+
},
|
|
450
|
+
// 保存或修改
|
|
451
|
+
saveOrUpdate (i) {
|
|
452
|
+
if (this.contract.f_contract_category === '物料') {
|
|
453
|
+
let flag = this.model.data.some(item => {
|
|
454
|
+
if (
|
|
455
|
+
item.f_material_name === this.material.f_material_name &&
|
|
456
|
+
item.f_material_norm === this.material.f_material_norm &&
|
|
457
|
+
item.f_material_model === this.material.f_material_model &&
|
|
458
|
+
item.f_price === this.material.f_price &&
|
|
459
|
+
item.f_unit === this.material.f_unit
|
|
460
|
+
) {
|
|
461
|
+
return true
|
|
462
|
+
}
|
|
463
|
+
return false
|
|
464
|
+
})
|
|
465
|
+
if (flag) {
|
|
466
|
+
if (isEmpty(i)) {
|
|
467
|
+
this.$showAlert('该物料已经存在!!!', 'warning', 3000)
|
|
468
|
+
} else {
|
|
469
|
+
throw `第${i}行物料已经存在!!!`
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
} else {
|
|
473
|
+
if (isEmpty(this.index)) {
|
|
474
|
+
this.model.data.push(this.material)
|
|
475
|
+
} else {
|
|
476
|
+
this.model.data.splice(this.index, 1, this.material)
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
if (this.contract.f_contract_category === '设备') {
|
|
481
|
+
let flag = this.model.data.some(item => {
|
|
482
|
+
if (
|
|
483
|
+
item.f_facility_name === this.facility.f_facility_name &&
|
|
484
|
+
item.f_facility_model === this.facility.f_facility_model &&
|
|
485
|
+
item.f_facility_norm === this.facility.f_facility_norm
|
|
486
|
+
) {
|
|
487
|
+
return true
|
|
488
|
+
}
|
|
489
|
+
return false
|
|
490
|
+
})
|
|
491
|
+
if (flag) {
|
|
492
|
+
if (isEmpty(i)) {
|
|
493
|
+
this.$showAlert('该设备已经存在!!!', 'warning', 3000)
|
|
494
|
+
} else {
|
|
495
|
+
throw `第${i}行设备已经存在!!!`
|
|
496
|
+
}
|
|
497
|
+
} else {
|
|
498
|
+
if (isEmpty(this.index)) {
|
|
499
|
+
this.model.data.push(this.facility)
|
|
500
|
+
} else {
|
|
501
|
+
this.model.data.splice(this.index, 1, this.facility)
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
this.closeModal()
|
|
506
|
+
},
|
|
507
|
+
// 关闭模态框
|
|
508
|
+
closeModal () {
|
|
509
|
+
this.showModal = false
|
|
510
|
+
this.material = {}
|
|
511
|
+
this.facility = {}
|
|
512
|
+
this.index = null
|
|
513
|
+
},
|
|
514
|
+
// 合同类别
|
|
515
|
+
changeContractCategory () {
|
|
516
|
+
this.model.data = []
|
|
517
|
+
},
|
|
518
|
+
// 添加合同
|
|
519
|
+
addContract () {
|
|
520
|
+
let data = {
|
|
521
|
+
contract: this.contract,
|
|
522
|
+
data: this.model.data
|
|
523
|
+
}
|
|
524
|
+
this.$dispatch('addContract', data)
|
|
525
|
+
},
|
|
526
|
+
// 到期时间检查
|
|
527
|
+
changeExpirationDate () {
|
|
528
|
+
if (!isEmpty(this.contract.f_contract_expiration_date)) {
|
|
529
|
+
if (isEmpty(this.contract.f_contract_time)) {
|
|
530
|
+
this.contract.f_contract_expiration_date = null
|
|
531
|
+
this.$showAlert('先输入合同签订时间!!!', 'warning', 3000)
|
|
532
|
+
}
|
|
533
|
+
if (new Date(this.contract.f_contract_expiration_date) < new Date(this.contract.f_contract_time)) {
|
|
534
|
+
this.contract.f_contract_expiration_date = null
|
|
535
|
+
this.$showAlert('到期时间需要大于签订时间!!!', 'warning', 3000)
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
},
|
|
539
|
+
// 查询合同编号
|
|
540
|
+
async getContractByNumber () {
|
|
541
|
+
let data = {
|
|
542
|
+
tablename: 't_contract',
|
|
543
|
+
condition: `f_contract_number = '${this.contract.f_contract_number}' and f_contract_type = '采购合同'`
|
|
544
|
+
}
|
|
545
|
+
|
|
546
|
+
let res = await this.$resetpost(
|
|
547
|
+
`rs/sql/singleTable`,
|
|
548
|
+
{data: data},
|
|
549
|
+
{resolveMsg: null, rejectMsg: '合同编号查询失败!!!'}
|
|
550
|
+
)
|
|
551
|
+
|
|
552
|
+
if (res.data.length > 0) {
|
|
553
|
+
this.contract.f_contract_number = null
|
|
554
|
+
this.$showAlert('合同编号已存在!!!', 'warning', 3000)
|
|
555
|
+
}
|
|
556
|
+
},
|
|
557
|
+
},
|
|
558
|
+
events: {
|
|
559
|
+
async 'onFileUpload'(file, result) {
|
|
560
|
+
let data = {
|
|
561
|
+
type: this.contract.f_contract_category,
|
|
562
|
+
filepath: result.f_downloadpath
|
|
563
|
+
}
|
|
564
|
+
let res = await this.$resetpost(`rs/logic/importPurchaseContractContent`, {data:data}, {resolveMsg: null, rejectMsg: '导入失败', silent: true}, 0)
|
|
565
|
+
|
|
566
|
+
console.log('----------解析内容--------------')
|
|
567
|
+
console.log(res.data)
|
|
568
|
+
|
|
569
|
+
let i = 1
|
|
570
|
+
for (const item of res.data) {
|
|
571
|
+
if (this.contract.f_contract_category === '物料') {
|
|
572
|
+
if (!item.material.f_material_name) {
|
|
573
|
+
this.$showAlert(`第${i}行数据材料名称不存在!!!`, 'warning', 3000)
|
|
574
|
+
this.closeFile()
|
|
575
|
+
return
|
|
576
|
+
}
|
|
577
|
+
if (!item.material.f_material_model) {
|
|
578
|
+
this.$showAlert(`第${i}行数据材料型号不存在!!!`, 'warning', 3000)
|
|
579
|
+
this.closeFile()
|
|
580
|
+
return
|
|
581
|
+
}
|
|
582
|
+
if (!item.material.f_material_norm) {
|
|
583
|
+
this.$showAlert(`第${i}行数据材料规格不存在!!!`, 'warning', 3000)
|
|
584
|
+
this.closeFile()
|
|
585
|
+
return
|
|
586
|
+
}
|
|
587
|
+
if (!item.material.f_unit) {
|
|
588
|
+
this.$showAlert(`第${i}行数据单位不存在!!!`, 'warning', 3000)
|
|
589
|
+
this.closeFile()
|
|
590
|
+
return
|
|
591
|
+
}
|
|
592
|
+
if (!item.material.f_price) {
|
|
593
|
+
this.$showAlert(`第${i}行数据单价不存在!!!`, 'warning', 3000)
|
|
594
|
+
this.closeFile()
|
|
595
|
+
return
|
|
596
|
+
}
|
|
597
|
+
this.material = item.material
|
|
598
|
+
}
|
|
599
|
+
if (this.contract.f_contract_category === '设备') {
|
|
600
|
+
if (!item.facility.f_facility_name) {
|
|
601
|
+
this.$showAlert(`第${i}行数据设备名称不存在!!!`, 'warning', 3000)
|
|
602
|
+
this.closeFile()
|
|
603
|
+
return
|
|
604
|
+
}
|
|
605
|
+
if (!item.facility.f_facility_model) {
|
|
606
|
+
this.$showAlert(`第${i}行数据设备型号不存在!!!`, 'warning', 3000)
|
|
607
|
+
this.closeFile()
|
|
608
|
+
return
|
|
609
|
+
}
|
|
610
|
+
if (!item.facility.f_facility_norm) {
|
|
611
|
+
this.$showAlert(`第${i}行数据设备规格不存在!!!`, 'warning', 3000)
|
|
612
|
+
this.closeFile()
|
|
613
|
+
return
|
|
614
|
+
}
|
|
615
|
+
if (!item.facility.f_facility_money) {
|
|
616
|
+
this.$showAlert(`第${i}行数据设备价格不存在!!!`, 'warning', 3000)
|
|
617
|
+
this.closeFile()
|
|
618
|
+
return
|
|
619
|
+
}
|
|
620
|
+
this.facility = item.facility
|
|
621
|
+
}
|
|
622
|
+
|
|
623
|
+
try {
|
|
624
|
+
this.saveOrUpdate(i)
|
|
625
|
+
} catch (e) {
|
|
626
|
+
this.$showAlert(e, 'danger', 3000)
|
|
627
|
+
this.closeFile()
|
|
628
|
+
return
|
|
629
|
+
}
|
|
630
|
+
|
|
631
|
+
|
|
632
|
+
i++
|
|
633
|
+
}
|
|
634
|
+
this.$showAlert(`成功导入${i}条数据`, 'success', 3000)
|
|
635
|
+
this.closeFile()
|
|
636
|
+
}
|
|
637
|
+
},
|
|
638
|
+
computed: {
|
|
639
|
+
getCondition() {
|
|
640
|
+
return {
|
|
641
|
+
tablename: `${this.contract.f_contract_category === '物料' ? 't_contract_material' : 't_contract_facility'}`,
|
|
642
|
+
condition: `f_contract_id = '${this.contract.id}'`
|
|
643
|
+
}
|
|
644
|
+
}
|
|
645
|
+
}
|
|
646
|
+
}
|
|
647
|
+
</script>
|
|
648
|
+
|
|
649
|
+
<style scoped>
|
|
650
|
+
.item{
|
|
651
|
+
height: 40px;
|
|
652
|
+
margin-bottom: 20px;
|
|
653
|
+
}
|
|
654
|
+
|
|
655
|
+
th{
|
|
656
|
+
font-size: 15px !important;
|
|
657
|
+
text-align: center !important;
|
|
658
|
+
background-color: #dfedfb!important;
|
|
659
|
+
color: #666666 !important;
|
|
660
|
+
font-family: PINGFANG-BOLD !important;
|
|
661
|
+
font-weight: normal!important;
|
|
662
|
+
}
|
|
663
|
+
/*清除model中的浮动*/
|
|
664
|
+
.clearfix:after,.clearfix:before{
|
|
665
|
+
display: table;
|
|
666
|
+
}
|
|
667
|
+
.clearfix:after{
|
|
668
|
+
clear: both;
|
|
669
|
+
}
|
|
670
|
+
|
|
671
|
+
.input_view{
|
|
672
|
+
padding: 8px;
|
|
673
|
+
background-color: #ffffff;
|
|
674
|
+
border-radius: 2px;
|
|
675
|
+
border: solid 1px #c7c7c7!important;
|
|
676
|
+
color: #333333!important;
|
|
677
|
+
font-size: 15px!important;
|
|
678
|
+
}
|
|
679
|
+
|
|
680
|
+
.input_view[readonly]{
|
|
681
|
+
border: 1px solid #DDD!important;
|
|
682
|
+
/*background-color: #F5F5F5;*/
|
|
683
|
+
color:#ACA899!important;
|
|
684
|
+
}
|
|
685
|
+
.input_view:disabled{
|
|
686
|
+
border: 1px solid #DDD!important;
|
|
687
|
+
/*background-color: #F5F5F5;*/
|
|
688
|
+
color:#ACA899!important;
|
|
689
|
+
}
|
|
690
|
+
|
|
691
|
+
.control-label-justify {
|
|
692
|
+
display: inline-block;
|
|
693
|
+
vertical-align: top;
|
|
694
|
+
width: 110px;
|
|
695
|
+
text-align: justify;
|
|
696
|
+
font-family: PingFang-SC-Bold;
|
|
697
|
+
}
|
|
698
|
+
|
|
699
|
+
.control-label-justify::after {
|
|
700
|
+
content: "";
|
|
701
|
+
display: inline-block;
|
|
702
|
+
width: 70px;
|
|
703
|
+
overflow: hidden;
|
|
704
|
+
height: 0;
|
|
705
|
+
}
|
|
706
|
+
|
|
707
|
+
input::-webkit-outer-spin-button,
|
|
708
|
+
input::-webkit-inner-spin-button {
|
|
709
|
+
-webkit-appearance: none;
|
|
710
|
+
}
|
|
711
|
+
|
|
712
|
+
input[type="number"] {
|
|
713
|
+
-moz-appearance: textfield;
|
|
714
|
+
}
|
|
715
|
+
</style>
|