apply-clients 7.1.36-yuchuan-6 → 7.1.36-yuchuan-8

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.
Files changed (59) hide show
  1. package/build/dev-server.js +25 -10
  2. package/index.html +39 -39
  3. package/package.json +1 -1
  4. package/src/apply.js +7 -0
  5. package/src/components/android/AppSign.vue +234 -234
  6. package/src/components/android/AppUpload.vue +275 -275
  7. package/src/components/android/Ignition/VentilationIgnition.vue +408 -408
  8. package/src/components/android/Ignition/VentilationIgnitionHandle.vue +462 -462
  9. package/src/components/android/Process/AppExplorationUser.vue +454 -454
  10. package/src/components/android/Process/AppServiceControl.vue +1437 -1437
  11. package/src/components/android/Process/Processes/AppInstallationDetails.vue +980 -980
  12. package/src/components/android/Sign/AppSignTask.vue +183 -183
  13. package/src/components/android/Supervisory/AppProcessSupervisory.vue +344 -344
  14. package/src/components/android/Task/GuanXianJianShe/AppExplorationGuanXian.vue +317 -317
  15. package/src/components/android/Task/ShiGongXinXi/AppShowBuildUser.vue +431 -431
  16. package/src/components/android/Task/yiban/AppShowDone.vue +442 -442
  17. package/src/components/android/Task/yiban/ShowDone.vue +95 -95
  18. package/src/components/android/Task/yiban/satisfactionShow.vue +166 -166
  19. package/src/components/android/newPackage/customerServiceManager.vue +218 -218
  20. package/src/components/android/newPackage/projectPrice.vue +218 -218
  21. package/src/components/product/ApplyCharge/ApplyChargeList.vue +1101 -1101
  22. package/src/components/product/ApplyGaiXianCharge/ApplyGaiXianViewList.vue +272 -272
  23. package/src/components/product/ApplyGuanXian/GuanXianCaiLiao.vue +236 -236
  24. package/src/components/product/ApplyGuanXian/GuanXianExplorationSelect.vue +324 -324
  25. package/src/components/product/ApplyGuanXian/GuanXianSupervisoryhCart.vue +119 -119
  26. package/src/components/product/ApplyMap/ApplyDragaboutList.vue +223 -223
  27. package/src/components/product/ApplyMap/ApplyMapLocation.vue +862 -862
  28. package/src/components/product/ChongZheng/ApplyChongZhengList.vue +415 -415
  29. package/src/components/product/Function/InstallInfoSelect.vue +371 -371
  30. package/src/components/product/Function/Service/FunctionServiceControl.vue +586 -586
  31. package/src/components/product/GongJianPush/ApplyPushDispose.vue +206 -0
  32. package/src/components/product/GongJianPush/ApplyPushList.vue +196 -0
  33. package/src/components/product/GongJianPush/ApplyPushManage.vue +90 -0
  34. package/src/components/product/Ignition/IgnitionListManage.vue +602 -602
  35. package/src/components/product/Ignition/IgnitionRecord.vue +380 -380
  36. package/src/components/product/List/OldShowDevices.vue +271 -271
  37. package/src/components/product/List/ShowAllActivity.vue +540 -540
  38. package/src/components/product/List/ShowDevices.vue +279 -279
  39. package/src/components/product/Print/BuildOrder/buildOrderList.vue +446 -446
  40. package/src/components/product/Process/ExplorationSelect.vue +597 -597
  41. package/src/components/product/Process/NewExplorationSelect.vue +586 -586
  42. package/src/components/product/Process/Processes/InstallationDetails.vue +1159 -1159
  43. package/src/components/product/Process/Processes/Print/printCharge.vue +250 -250
  44. package/src/components/product/Process/Processes/Print/printGaiXianCharge.vue +244 -244
  45. package/src/components/product/Process/Processes/devicesManagement.vue +393 -393
  46. package/src/components/product/Process/Processes/newDevicesManagement.vue +413 -413
  47. package/src/components/product/Process/Processes/selectChaiChuUserinfo.vue +230 -230
  48. package/src/components/product/Process/Processes/selectOldUserinfo.vue +241 -241
  49. package/src/components/product/Process/Processes/selectUserinfo.vue +234 -234
  50. package/src/components/product/Process/Service/ServiceControl.vue +2205 -2205
  51. package/src/components/product/Stop/StopApplyList.vue +224 -224
  52. package/src/components/product/Supervisory/Service/SupervisoryServiceControl.vue +592 -592
  53. package/src/components/product/Supervisory/SupervisoryControl.vue +116 -116
  54. package/src/components/product/Supervisory/SupervisoryList.vue +557 -557
  55. package/src/components/product/Supervisory/YiBanSupervisoryList.vue +539 -539
  56. package/src/components/product/VueUtils/ApplyUpload.vue +285 -285
  57. package/src/components/product/records/AdjustmentRecordList.vue +162 -162
  58. package/src/main.js +27 -27
  59. package/yarn.lock +0 -9824
@@ -1,1159 +1,1159 @@
1
- <template>
2
- <div style="float: right">
3
- <export-excel :data="getConditions"
4
- :field="getfields"
5
- sqlurl="rs/logic/applyExportfile"
6
- sql-name="getApplyUserinfo"
7
- template-name='用户信息导出'
8
- :choose-col="true"></export-excel>
9
- </div>
10
- <div class="col-sm-12" style="margin: 20px 0px;">
11
-
12
- <criteria-paged :model="model" v-ref:cp>
13
- <criteria partial='criteria' @condition-changed='$parent.searchCondition' v-ref:cri>
14
- <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
15
- </div>
16
- </criteria>
17
- <data-grid :model="model" v-ref:grid partial='list' class="list_area table_sy" style="padding: 0px">
18
- <template partial='head'>
19
- <tr>
20
- <th>序号</th>
21
- <th>客户编号</th>
22
- <th>客户名称</th>
23
- <th>客户电话</th>
24
- <th>身份证号</th>
25
- <th>地址信息</th>
26
- <th>表号</th>
27
- <th>气表品牌</th>
28
- <th>气表型号</th>
29
- <th>
30
- <button
31
- type="button"
32
- v-if="$parent.$parent.$parent.selectdata.f_apply_type !== '非民用报建'"
33
- class="btn btn-info head-but"
34
- @click="$parent.$parent.$parent.openModal()"
35
- :disabled="$parent.$parent.$parent.mark === 1 ||
36
- ($parent.$parent.$parent.model.count >= $parent.$parent.$parent.selectdata.f_apply_count &&
37
- $parent.$parent.$parent.selectdata.defname === '报建受理') ||
38
- ($parent.$parent.$parent.model.count >= $parent.$parent.$parent.selectdata.f_install_count &&
39
- $parent.$parent.$parent.selectdata.defname === '工程施工') ||
40
- $parent.$parent.$parent.selectdata.defname === '施工通气'"
41
- >添加用户</button>
42
- <button
43
- v-if="$parent.$parent.$parent.selectdata.defname === '工程施工'"
44
- type="button"
45
- class="btn btn-info head-but"
46
- @click="$parent.$parent.$parent.openSign()"
47
- >签字照片</button>
48
- <template v-if="$parent.$parent.$parent.selectdata.f_apply_type === '民用报建'">
49
- <button type="button" class="btn btn-info head-but" v-if="$parent.$parent.$parent.mark !== 1"
50
- @click="$parent.$parent.$parent.importBefore()">导入</button>
51
- <a type="button" class="btn btn-info head-but" v-if="$parent.$parent.$parent.mark !== 1 && $parent.$parent.$parent.selectdata.f_apply_nature === '小区' && $parent.$parent.$parent.selectdata.defname !== '工程施工'"
52
- href="/apply/download/excel/小区导入.xlsx" download>模板下载</a>
53
- <a type="button" class="btn btn-info head-but" v-if="$parent.$parent.$parent.mark !== 1 && $parent.$parent.$parent.selectdata.f_apply_nature === '散户' && $parent.$parent.$parent.selectdata.defname !== '工程施工'"
54
- href="/apply/download/excel/散户导入模板.xlsx" download>模板下载</a>
55
- <export-excel :data="$parent.$parent.$parent.getCondition"
56
- :field="$parent.$parent.$parent.getfield"
57
- v-if="$parent.$parent.$parent.mark !== 1 && $parent.$parent.$parent.selectdata.f_apply_nature === '小区' && $parent.$parent.$parent.selectdata.defname === '工程施工'"
58
- sqlurl="rs/logic/applyExportfile"
59
- sql-name="getApplyUserinfoExcel"
60
- template-name='待添加表号信息导出'
61
- :choose-col="true"></export-excel>
62
- </template>
63
- </th>
64
- </tr>
65
-
66
- </template>
67
- <template partial='body'>
68
- <tr>
69
- <td style="text-align: center;">
70
- <nobr>{{$index+1}}</nobr>
71
- </td>
72
- <td style="text-align: center;">
73
- <nobr>{{row.f_userinfo_id}}</nobr>
74
- </td>
75
- <td style="text-align: center;">
76
- <nobr>{{row.f_user_name}}</nobr>
77
- </td>
78
- <td style="text-align: center;">
79
- <nobr>{{row.f_user_phone}}</nobr>
80
- </td>
81
- <td style="text-align: center;">
82
- <nobr>{{row.f_idnumber}}</nobr>
83
- </td>
84
- <td style="text-align: center;">
85
- <nobr>{{row.f_address}}{{row.f_address_detail}}</nobr>
86
- </td>
87
- <td style="text-align: center;">
88
- <nobr>{{row.f_meternumber}}</nobr>
89
- </td>
90
- <td style="text-align: center;">
91
- <nobr>{{row.f_meter_brand}}</nobr>
92
- </td>
93
- <td style="text-align: center;">
94
- <nobr>{{row.f_meter_style}}</nobr>
95
- </td>
96
- <td style="text-align: center;">
97
- <nobr>
98
- <button
99
- type="button" name="button" class="btn btn-link"
100
- @click="$parent.$parent.$parent.openModal(row)">
101
- {{$parent.$parent.$parent.mark === 1 || row.f_user_state === '正常' ? '查看' : '修正'}}
102
- </button>
103
- <button
104
- type="button" name="button" class="btn btn-link"
105
- @click="$parent.$parent.$parent.deleteUserinfo(row)"
106
- v-if="$parent.$parent.$parent.showDeleteUserInfo"
107
- :disabled="$parent.$parent.$parent.mark === 1 || row.f_user_state === '正常'"
108
- >
109
- 销户
110
- </button>
111
- <button
112
- type="button" name="button" class="btn btn-link"
113
- @click="$parent.$parent.$parent.deleteUserinfo(row)"
114
- v-if="$parent.$parent.$parent.newShowDeleteUserInfo"
115
- >
116
- 销户
117
- </button>
118
- </nobr>
119
- </td>
120
- </tr>
121
- </template>
122
- </data-grid>
123
- </criteria-paged>
124
- </div>
125
- <modal v-if="showFile" :show.sync="showFile" v-ref:modal :backdrop="false" title="选择文件">
126
- <header slot="modal-header" class="modal-header">
127
- <button type="button" class="close" @click="closeFile"><span>&times;</span></button>
128
- <h4 class="modal-title">选择文件</h4>
129
- </header>
130
- <article slot="modal-body" class="modal-body">
131
- <div class="form-group">
132
- <file-upload class="my-file-uploader" name="useraddressUploadFile" action="rs/file/uploadFile" tagname="确定" v-ref:file></file-upload>
133
- </div>
134
- </article>
135
- <footer slot="modal-footer" class="modal-footer"></footer>
136
- </modal>
137
- <modal v-if="progressShow" :show.sync="progressShow" v-ref:modal :backdrop="false" title="导入进度">
138
- <header slot="modal-header" class="modal-header">
139
- <button type="button" class="close" @click="close"><span>&times;</span></button>
140
- <h4 class="modal-title">导入进度</h4>
141
- </header>
142
- <article slot="modal-body" class="modal-body">
143
- <div class="progress" style="margin: 20px">
144
- <div class="progress-bar progress-bar-success progress-bar-striped active" :style="{width: percent}">
145
- {{ percent }}
146
- </div>
147
- </div>
148
- </article>
149
- <footer slot="modal-footer" class="modal-footer"></footer>
150
- </modal>
151
-
152
- <modal v-if="Sign" :show.sync="Sign" v-ref:modal :large="true" :backdrop="false">
153
- <header slot="modal-header" class="modal-header">
154
- <button type="button" class="close" @click="closeUserFile"><span>&times;</span></button>
155
- <h4 class="modal-title">用户签字</h4>
156
- </header>
157
- <article slot="modal-body" class="modal-body clearfix">
158
- <div class="left col-sm-6 col-xs-6">
159
- <img-self :src="fileurl" width="100%" height="100%"></img-self>
160
- </div>
161
- </article>
162
- <footer slot="modal-footer" class="modal-footer">
163
- <template v-if="mark !== 1 && userinfo.f_user_state !== '正常'">
164
- </template>
165
- </footer>
166
- </modal>
167
- <validator name="v">
168
- <modal v-if="showModal" :show.sync="showModal" v-ref:modal :large="true" :backdrop="false">
169
- <header slot="modal-header" class="modal-header">
170
- <button type="button" class="close" @click="closeUserFile"><span>&times;</span></button>
171
- <h4 class="modal-title">安装明细</h4>
172
- </header>
173
- <article slot="modal-body" class="modal-body clearfix">
174
- <!-- 基本信息 -->
175
- <div class="form-group col-sm-12 panel panel-info" v-if="showUserInfo">
176
- <div class="panel-heading head col-sm-12" style="background-color: #e8f4ff;margin-bottom: 10px">
177
- <div class="col-sm-6 text-left">用户信息</div>
178
- </div>
179
- <div class="form-group col-sm-6" :class="[$v.f_user_name.required ? 'has-error' : '']">
180
- <label class="col-sm-4 control-label">客户名称:</label>
181
- <div class="col-sm-8">
182
- <input class="form-control input_view" style=""
183
- v-validate:f_user_name = "['required']"
184
- v-model="userinfo.f_user_name"
185
- :value.sync="showUserInformation.f_user_name"
186
- :readonly="mark === 1 || userinfo.f_user_state === '正常'"
187
- placeholder="客户名称"/>
188
- </div>
189
- </div>
190
- <div class="form-group col-sm-6">
191
- <label class="col-sm-4 control-label">客户电话:</label>
192
- <div class="col-sm-8">
193
- <input class="form-control input_view" style=""
194
- v-model="userinfo.f_user_phone"
195
- :value.sync="showUserInformation.f_user_phone"
196
- :readonly="mark === 1 || userinfo.f_user_state === '正常'"
197
- placeholder="客户电话"/>
198
- </div>
199
- </div>
200
- <div class="form-group col-sm-6">
201
- <label class="col-sm-4 control-label">证件类型:</label>
202
- <div class="col-sm-8">
203
- <input-select
204
- class="select select_list"
205
- :value.sync="showUserInformation.f_credentials"
206
- v-model="userinfo.f_credentials"
207
- :options="credentialsList"
208
- :disable="mark === 1 || userinfo.f_user_state === '正常'"
209
- :valueSingle="true"></input-select>
210
- </div>
211
- </div>
212
- <div class="form-group col-sm-6">
213
- <label class="col-sm-4 control-label">证件号码:</label>
214
- <div class="col-sm-8">
215
- <input class="form-control input_view" style=""
216
- placeholder="证件号码"
217
- v-model="userinfo.f_idnumber"
218
- :value="showUserInformation.f_idnumber"
219
- :readonly="mark === 1 || userinfo.f_user_state === '正常'"/>
220
- </div>
221
- </div>
222
- </div>
223
- <!-- 地址信息 -->
224
- <div class="form-group col-sm-12 panel panel-info" v-if="showAddress">
225
- <div class="panel-heading head col-sm-12" style="background-color: #e8f4ff;margin-bottom: 10px">
226
- <div class="col-sm-6 text-left">地址信息</div>
227
- </div>
228
- <div class="form-group col-sm-6" :class="[$v.area.required ? 'has-error' : '']">
229
- <label class="col-sm-4 control-label">小区/巷道:</label>
230
- <div class="col-sm-8">
231
- <input type="text" v-show="false" v-model="area.id" :value.sync="area.id" v-validate:area = "['required']" >
232
- <input-select
233
- class="select select_list"
234
- :value.sync="area"
235
- v-model="area"
236
- :options="areaList"
237
- @change="changeArea(),addressSplicing()"
238
- @select-search = "selectArea"
239
- :disable="mark === 1 || userinfo.f_user_state === '正常'"
240
- :valueSingle="true"></input-select>
241
- </div>
242
- </div>
243
- <div class="form-group col-sm-6">
244
- <label class="col-sm-4 control-label">楼&emsp;&emsp;号:</label>
245
- <div class="col-sm-8">
246
- <input class="form-control input_view" placeholder="楼号"
247
- v-model="userinfo.f_building"
248
- :value="userinfo.f_building"
249
- @change="addressSplicing"
250
- :readonly="mark === 1 || userinfo.f_user_state === '正常'"/>
251
- </div>
252
- </div>
253
- <div class="form-group col-sm-6">
254
- <label class="col-sm-4 control-label">单&emsp;&emsp;元:</label>
255
- <div class="col-sm-8">
256
- <input class="form-control input_view" placeholder="单元"
257
- v-model="userinfo.f_unit"
258
- :value="userinfo.f_unit"
259
- @change="addressSplicing"
260
- :readonly="mark === 1 || userinfo.f_user_state === '正常'"/>
261
- </div>
262
- </div>
263
- <div class="form-group col-sm-6" v-if="false">
264
- <label class="col-sm-4 control-label">楼&emsp;&emsp;层:</label>
265
- <div class="col-sm-8">
266
- <input class="form-control input_view" placeholder="楼层"
267
- v-model="userinfo.f_floor"
268
- :value="userinfo.f_floor"
269
- @change="addressSplicing"
270
- :readonly="mark === 1 || userinfo.f_user_state === '正常'"/>
271
- </div>
272
- </div>
273
- <div class="form-group col-sm-6" :class="[$v.f_room.required ? 'has-error' : '']">
274
- <label class="col-sm-4 control-label">门&ensp;牌&ensp;号:</label>
275
- <div class="col-sm-8">
276
- <input class="form-control input_view" placeholder="门牌号"
277
- v-validate:f_room = "['required']"
278
- v-model="userinfo.f_room"
279
- :value="userinfo.f_room"
280
- @change="addressSplicing"
281
- :readonly="mark === 1 || userinfo.f_user_state === '正常'"/>
282
- </div>
283
- </div>
284
- <div class="form-group col-sm-12">
285
- <label class="col-sm-2 control-label">地&emsp;&emsp;址:</label>
286
- <div class="col-sm-10">
287
- <input class="form-control input_view"
288
- placeholder="地址"
289
- v-model="userinfo.f_address"
290
- :value.sync="userinfo.f_address"
291
- :readonly="true"/>
292
- </div>
293
- </div>
294
- </div>
295
- <!-- 表具信息 -->
296
- <div class="form-group col-sm-12 panel panel-info" v-if="showUserFile">
297
- <div class="panel-heading head col-sm-12" style="background-color: #e8f4ff;margin-bottom: 10px">
298
- <div class="col-sm-6 text-left">表具信息</div>
299
- </div>
300
- <div class="form-group col-sm-6" :class="[$v.f_gasbrand_id.required ? 'has-error' : '']">
301
- <label class="col-sm-4 control-label">气表品牌:</label>
302
- <div class="col-sm-8">
303
- <input type="text" v-show="false" v-model="userfile.f_gasbrand_id" :value.sync="userfile.f_gasbrand_id" v-validate:f_gasbrand_id = "['required']" >
304
- <input-select
305
- class="select select_list"
306
- :value.sync="userfile.f_gasbrand_id"
307
- v-model="userfile.f_gasbrand_id"
308
- :options="meterBrandList"
309
- @change="gasbrandChange()"
310
- :disable="mark === 1 || userinfo.f_user_state === '正常' || gasbrandDisable"
311
- :valueSingle="true"></input-select>
312
- </div>
313
- </div>
314
- <div class="form-group col-sm-6" :class="[$v.f_gasmodel_id.required ? 'has-error' : '']">
315
- <label class="col-sm-4 control-label">气表型号:</label>
316
- <div class="col-sm-8">
317
- <input type="text" v-show="false" v-model="userfile.f_gasmodel_id" :value.sync="userfile.f_gasmodel_id" v-validate:f_gasmodel_id = "['required']" >
318
- <input-select
319
- class="select select_list"
320
- :value.sync="userfile.f_gasmodel_id"
321
- v-model="userfile.f_gasmodel_id"
322
- :options.sync="gasModelList"
323
- :disable="mark === 1 || userinfo.f_user_state === '正常' || gasbrandDisable"
324
- :valueSingle="true"></input-select>
325
- </div>
326
- </div>
327
- <template v-if="showInstall">
328
- <div class="form-group col-sm-6" :class="[$v.f_meternumber.required ? 'has-error' : '']">
329
- <label class="col-sm-4 control-label">表&emsp;&emsp;号:</label>
330
- <div class="col-sm-8">
331
- <input class="form-control input_view" style=""
332
- placeholder="表号" v-validate:f_meternumber = "['required']"
333
- v-model="userfile.f_meternumber"
334
- :value.sync="userfile.f_meternumber"
335
- @change="meternumberValidate()"
336
- :readonly="mark === 1 || userinfo.f_user_state === '正常'"/>
337
- </div>
338
- </div>
339
- <div class="form-group col-sm-6">
340
- <label class="col-sm-4 control-label">表&ensp;封&ensp;号:</label>
341
- <div class="col-sm-8">
342
- <input class="form-control input_view" style=""
343
- placeholder="表封号"
344
- v-model="userfile.f_metertitles"
345
- :value="userfile.f_metertitles"
346
- :readonly="mark === 1 || userinfo.f_user_state === '正常'"/>
347
- </div>
348
- </div>
349
- <div class="form-group col-sm-6">
350
- <label class="col-sm-4 control-label">表&ensp;读&ensp;数:</label>
351
- <div class="col-sm-8">
352
- <input class="form-control input_view" style=""
353
- type="number"
354
- placeholder="表读数"
355
- v-model="userfile.f_meter_base"
356
- :value="userfile.f_meter_base"
357
- :readonly="mark === 1 || userinfo.f_user_state === '正常'"/>
358
- </div>
359
- </div>
360
- <div class="form-group col-sm-6" v-show="false">
361
- <label class="col-sm-4 control-label">初始底数:</label>
362
- <div class="col-sm-8">
363
- <input class="form-control input_view" style=""
364
- type="number"
365
- v-model="userfile.f_initial_base"
366
- :value="userfile.f_meter_base"
367
- placeholder="初始底数"
368
- :readonly="mark === 1 || userinfo.f_user_state === '正常'"/>
369
- </div>
370
- </div>
371
- <div class="form-group col-sm-6">
372
- <label class="col-sm-4 control-label">表&emsp;&emsp;向:</label>
373
- <div class="col-sm-8">
374
- <input-select
375
- class="select select_list"
376
- :value.sync="userfile.f_aroundmeter"
377
- v-model="userfile.f_aroundmeter"
378
- :options="aroundmeters"
379
- :disable="mark === 1 || userinfo.f_user_state === '正常'"
380
- :valueSingle="true"></input-select>
381
- </div>
382
- </div>
383
- <div class="form-group col-sm-6">
384
- <label class="col-sm-4 control-label">安装位置:</label>
385
- <div class="col-sm-8">
386
- <input-select
387
- class="select select_list"
388
- :value.sync="userfile.f_position"
389
- v-model="userfile.f_position"
390
- :options="positions"
391
- :disable="mark === 1 || userinfo.f_user_state === '正常'"
392
- :valueSingle="true"></input-select>
393
- </div>
394
- </div>
395
- <div class="form-group col-sm-6">
396
- <label class="col-sm-4 control-label">安&ensp;装&ensp;人:</label>
397
- <div class="col-sm-8">
398
- <input class="form-control input_view" style=""
399
- v-model="userfile.f_install_person"
400
- :value.sync="installperson(userfile.f_install_person)"
401
- placeholder="安装人"
402
- readonly/>
403
- </div>
404
- </div>
405
- <div class="form-group col-sm-6">
406
- <label class="col-sm-4 control-label">安装日期:</label>
407
- <div class="col-sm-8">
408
- <input class="form-control input_view" style=""
409
- v-model="userfile.f_install_date"
410
- :value.sync="installdate(userfile.f_install_date)"
411
- placeholder="安装日期"
412
- readonly/>
413
- </div>
414
- </div>
415
- </template>
416
- </div>
417
- <div class="form-group col-sm-12 panel panel-info" v-if="showUserFile" >
418
- <header slot="modal-header" class="modal-header">
419
- <h4 class="modal-title">表具设备信息</h4>
420
- </header>
421
- <div v-for="(i, item) in devicesinfo" class="form-group col-sm-12 panel panel-info">
422
- <div class="panel-heading head col-sm-12" style="background-color: #e8f4ff;margin-bottom: 10px">
423
- <div class="col-sm-12 text-left">设备{{$index+1}}信息</div>
424
- </div>
425
- <div class="form-group col-sm-3">
426
- <label class="col-sm-4 control-label">设备:</label>
427
- <div class="col-sm-8">
428
- <input class="form-control input_view" style=""
429
- placeholder="设备类型"
430
- v-model="item.f_devices_type"
431
- :value="item.f_devices_type"
432
- readonly/>
433
- </div>
434
- </div>
435
- <div class="form-group col-sm-3">
436
- <label class="col-sm-4 control-label">编号:</label>
437
- <div class="col-sm-8">
438
- <input class="form-control input_view" style=""
439
- placeholder="设备编号"
440
- v-model="item.f_devices_no"
441
- :value="item.f_devices_no"
442
- readonly/>
443
- </div>
444
- </div>
445
- <div class="form-group col-sm-3">
446
- <label class="col-sm-4 control-label">品牌:</label>
447
- <div class="col-sm-8">
448
- <input class="form-control input_view" style=""
449
- placeholder="设备品牌"
450
- v-model="item.f_brand"
451
- :value="item.f_brand"
452
- readonly/>
453
- </div>
454
- </div>
455
- <div class="form-group col-sm-3">
456
- <label class="col-sm-4 control-label">型号:</label>
457
- <div class="col-sm-8">
458
- <input class="form-control input_view" style=""
459
- placeholder="设备型号"
460
- v-model="item.f_devices_model"
461
- :value="item.f_devices_model"
462
- readonly/>
463
- </div>
464
- </div>
465
- <div class="form-group col-sm-3">
466
- <label class="col-sm-4 control-label">数量:</label>
467
- <div class="col-sm-8">
468
- <input class="form-control input_view" style="" type="number"
469
- placeholder="设备数量"
470
- v-model="item.f_devices_num"
471
- :value="item.f_devices_num"
472
- readonly/>
473
- </div>
474
- </div>
475
- <div class="form-group col-sm-3">
476
- <label class="col-sm-4 control-label">功率:</label>
477
- <div class="col-sm-8">
478
- <input class="form-control input_view" style=""
479
- placeholder="设备功率"
480
- type="number"
481
- v-model="item.f_devices_tonnage"
482
- :value="item.f_devices_tonnage"
483
- readonly/>
484
- </div>
485
- </div>
486
- <div class="form-group col-sm-3">
487
- <label class="col-sm-4 control-label">日期:</label>
488
- <div class="col-sm-8">
489
- <input class="form-control input_view" style=""
490
- placeholder="安装日期"
491
- v-model="item.f_install_date"
492
- :value="item.f_install_date"
493
- readonly/>
494
- </div>
495
- </div>
496
- <div class="form-group col-sm-3">
497
- <label class="col-sm-4 control-label">单位:</label>
498
- <div class="col-sm-8">
499
- <input class="form-control input_view" style=""
500
- placeholder="功率单位"
501
- v-model="item.f_devices_tonnage_unit"
502
- :value="item.f_devices_tonnage_unit"
503
- readonly/>
504
- </div>
505
- </div>
506
- </div>
507
- </div>
508
- </article>
509
- <footer slot="modal-footer" class="modal-footer">
510
- <template v-if="mark !== 1 && userinfo.f_user_state !== '正常'">
511
- <button type="button" class="btn btn-primary" @click="saveUserFile" :disabled="!$v.valid">确认</button>
512
- </template>
513
- </footer>
514
- </modal>
515
- </validator>
516
- <validator name="x">
517
- <modal v-if="showDeleteModel" :show.sync="showDeleteModel" v-ref:modal :large="true" :backdrop="false">
518
- <header slot="modal-header" class="modal-header">
519
- <button type="button" class="close" @click="closeUserFile"><span>&times;</span></button>
520
- <h4 class="modal-title">销户原因</h4>
521
- </header>
522
- <article slot="modal-body" class="modal-body clearfix">
523
- <div class="left col-sm-12 col-xs-12" :class="[$x.f_cancel_cause.required ? 'has-error' : '']">
524
- <div class="form-group col-sm-12">
525
- <label class="col-sm-2 control-label">销户原因:</label>
526
- <div class="col-sm-10">
527
- <input class="form-control input_view" style=""
528
- v-validate:f_cancel_cause = "['required']"
529
- v-model="userinfo.f_cancel_cause"
530
- :value.sync="userinfo.f_cancel_cause"
531
- placeholder="销户原因"/>
532
- </div>
533
- </div>
534
- </div>
535
- </article>
536
- <footer slot="modal-footer" class="modal-footer">
537
- <button type="button" class="btn btn-primary" @click="deleteUser" :disabled="!$x.valid">确认</button>
538
- </footer>
539
- </modal>
540
- </validator>
541
- </template>
542
- <script>
543
- import Vue from 'vue'
544
- import {PagedList} from 'vue-client'
545
- import {HttpResetClass} from 'vue-client'
546
- import {isEmpty} from '../../../Util'
547
- // Date格式化
548
- Date.prototype.Format = function (fmt) {
549
- var o = {
550
- 'M+': this.getMonth() + 1, // 月份
551
- 'd+': this.getDate(), // 日
552
- 'H+': this.getHours(), // 小时
553
- 'm+': this.getMinutes(), // 分
554
- 's+': this.getSeconds(), // 秒
555
- 'q+': Math.floor((this.getMonth() + 3) / 3), // 季度
556
- 'S': this.getMilliseconds() // 毫秒
557
- }
558
- if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length))
559
- for (var k in o) {
560
- if (new RegExp('(' + k + ')').test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)))
561
- }
562
- return fmt
563
- }
564
-
565
- export default {
566
- title: '安装明细',
567
- props: {
568
- selectdata: {
569
- type: Object
570
- },
571
- mark: {
572
- type: Number,
573
- default: 0
574
- }
575
- },
576
- data () {
577
- return {
578
- gasbrandDisable: false,
579
- showFile: false,
580
- showModal: false,
581
- model: new PagedList('rs/sql/getApplyUserinfo', 20, null),
582
- areaList: [],
583
- area: {},
584
- userinfo: {},
585
- userfile: {},
586
- meterBrandList: [],
587
- gasModelList: [],
588
- Sign: false,
589
- fileurl: null,
590
- devicesinfo: [],
591
- showUserInformation: {},
592
- showDeleteModel: false,
593
- uuid: '',
594
- percent: '0%',
595
- progressShow: false,
596
- // 定时器
597
- timer: null,
598
- getfield: {
599
- 'f_userinfo_id': ' 客户编号 ',
600
- 'f_address': ' 地址 ',
601
- 'f_meternumber': ' 表号 ',
602
- 'f_aroundmeter': ' 表向 '
603
- },
604
- getfields:{
605
- 'f_userinfo_id':'客户编号',
606
- 'f_user_name':'客户名称',
607
- 'f_user_phone':'客户电话',
608
- 'f_meter_brand':'气表品牌',
609
- 'f_meter_style':'气表型号',
610
- 'f_idnumber':'身份证号',
611
- 'f_address':'地址',
612
- 'f_meternumber':'表号'
613
- }
614
- }
615
- },
616
- ready () {
617
- this.search()
618
- this.getMeterBrand()
619
- this.getAreaList()
620
- },
621
- methods: {
622
- async deleteUserinfo (row) {
623
- this.userinfo = row
624
- let res = await this.$showMessage('此操作不可撤回,您确定要删除这条记录吗?')
625
- if (res === 'cancel') {
626
- return
627
- }
628
- this.showDeleteModel = !this.showDeleteModel
629
- },
630
- async deleteUser () {
631
- let res = await this.$showMessage('此操作不可撤回,您确定要删除这条记录吗?')
632
- if (res === 'cancel') {
633
- return
634
- }
635
- let data = {
636
- login: this.$login.f,
637
- userinfo: this.userinfo,
638
- selectdata: this.selectdata
639
- }
640
- res = await this.$resetpost('rs/logic/applyDeleteUserinfo', {data:data}, {
641
- resolveMsg: null,
642
- rejectMsg: '删除失败!!!'
643
- })
644
-
645
- this.$dispatch('breakControl', this.selectdata)
646
- },
647
- // 保存档案
648
- async saveUserFile () {
649
- if (this.selectdata.defname === '工程施工'){
650
- await this.meternumberValidate()
651
- if (this.userfile.f_meter_base - 0 === 0 || this.userfile.f_meter_base - 0 > 1.5){
652
- console.log("当前表底数",this.userfile.f_meter_base)
653
- this.$showAlert('表读数必须大于0小于或等于1.5!', 'warning', 3000)
654
- throw '表读数必须大于0小于或等于1.5!'
655
- }
656
- }
657
- let data = {
658
- user: this.$login.f,
659
- userinfo: this.userinfo,
660
- userfile: this.userfile,
661
- selectdata: this.selectdata
662
- }
663
- let res = await this.$resetpost('rs/logic/applyAddUserinfo', {data:data}, {
664
- resolveMsg: null,
665
- rejectMsg: '用户档案添加失败!!!'
666
- })
667
- this.$dispatch('breakControl', this.selectdata)
668
- },
669
- ifDisable() {
670
- if (this.selectdata.f_apply_type === '非民用报建' && this.selectdata.defname === '工程施工') {
671
- this.gasbrandDisable = true
672
- }
673
- },
674
- // 检查表号是否存在
675
- async meternumberValidate() {
676
- if (!this.userfile.f_gasbrand_id) {
677
- this.userfile.f_meternumber = ''
678
- this.$showAlert('请先选择气表品牌!!!', 'warning', 3000)
679
- return
680
- }
681
- if (this.userfile.f_gasbrand_id && this.userfile.f_meternumber) {
682
- let data = {
683
- f_meternumber: this.userfile.f_meternumber,
684
- f_gasbrand_id: this.userfile.f_gasbrand_id
685
- }
686
- if (this.userfile.f_user_id) {
687
- data.f_user_id = this.userfile.f_user_id
688
- }
689
- let res = await this.$resetpost('rs/logic/meterbrandsNumberValidate', {data:data}, {
690
- resolveMsg: null,
691
- rejectMsg: '表号验证失败!!'
692
- })
693
- console.log(`查询结果${res.data}`)
694
- console.log(res.data)
695
- if (res.data === '表号已存在' || res.data === '表号无效') {
696
- this.userfile.f_meternumber = ''
697
- this.$showAlert(res.data, 'warning', 3000)
698
- throw res.data
699
- }
700
- }
701
- },
702
- // 选择气表品牌
703
- async gasbrandChange() {
704
- // 清空已保存的气表型号
705
- this.userfile.f_gasmodel_id = null
706
- if (isEmpty(this.userfile.f_gasbrand_id)) {
707
- return
708
- }
709
- if (this.userfile.f_gasbrand_id === 'null') {
710
- this.gasModelList.push({label: '无', value: 'null'})
711
- this.userfile.f_meter_classify = 'null'
712
- return
713
- }
714
- let data = {
715
- f_gasbrand_id: this.userfile.f_gasbrand_id
716
- }
717
- let http = new HttpResetClass()
718
- let res = await http.load(
719
- 'POST',
720
- `rs/sql/getGasModel`,
721
- {data: data},
722
- {resolveMsg: null, rejectMsg: '气表型号查询失败!!!'}
723
- )
724
-
725
- this.gasModelList = res.data
726
-
727
- // data = {
728
- // tablename: 't_gasbrand',
729
- // condition: `id = '${this.userfile.f_gasbrand_id}'`
730
- // }
731
- // res = await http.load(
732
- // 'POST',
733
- // `rs/sql/applySingleTable`,
734
- // {data: data},
735
- // {resolveMsg: null, rejectMsg: '表具类型查询失败!!!'}
736
- // )
737
- // this.userfile.f_meter_classify = res.data[0].f_meter_type
738
- this.userfile.f_meter_classify = '物联网表'
739
- },
740
- // 地址拼接
741
- addressSplicing () {
742
- let f_area = this.userinfo.f_area || ''
743
- let f_slice_area = this.userinfo.f_slice_area || ''
744
- let f_street = this.userinfo.f_street || ''
745
- let f_residential_area = this.userinfo.f_residential_area || ''
746
- let f_building = this.userinfo.f_building || ''
747
- let f_building_suffix = f_building ? '号楼' : ''
748
- let f_unit = this.userinfo.f_unit || ''
749
- let f_unit_suffix = f_unit ? '单元' : ''
750
- let f_floor = this.userinfo.f_floor || ''
751
- let f_floor_suffix = f_floor ? '层' : ''
752
- let f_room = this.userinfo.f_room || ''
753
- let f_room_suffix = f_room ? '室' : ''
754
-
755
- Vue.set(this.userinfo, 'f_address', f_area + f_slice_area + f_street + f_residential_area + f_building + f_building_suffix + f_unit + f_unit_suffix + f_floor + f_floor_suffix + f_room + f_room_suffix)
756
- },
757
- // 选择小区
758
- changeArea () {
759
- if (isEmpty(this.area)) {
760
- return
761
- }
762
-
763
- this.userinfo.f_area = this.area.f_area
764
- this.userinfo.f_slice_area = this.area.f_slice_area
765
- this.userinfo.f_street = this.area.f_street
766
- this.userinfo.f_residential_area = this.area.f_residential_area
767
- this.userinfo.f_residential_area_id = this.area.id
768
- // this.addressSplicing()
769
- },
770
- openSign(){
771
- this.getFiles()
772
- this.Sign = true
773
- },
774
- importBefore(){
775
- if (this.selectdata.f_apply_nature === '小区' && !this.selectdata.f_residential_area_id){
776
- this.$showAlert('请选择小区/巷道后导入', 'warning', 3000)
777
- }else {
778
- this.showFile = !this.showFile
779
- }
780
- },
781
- async getFiles() {
782
- let http = new HttpResetClass()
783
- console.log('=========pc签字查看===============')
784
- let data = {
785
- tablename: 't_files',
786
- condition: `f_blobid = '${this.selectdata.f_process_id}' and defname = '工程施工' and fremarks = '报装手机签字文件'`
787
- }
788
- let res = await http.load('POST', `rs/sql/applySingleTable`, {data: data}, {
789
- warnMsg: null,
790
- resolveMsg: null
791
- })
792
- if(res.data.length > 0){
793
- console.log('=========签字地址===============',res.data[0])
794
- let URL = res.data[0].f_downloadpath.substring(res.data[0].f_downloadpath.lastIndexOf(":\\") + 2)
795
- res.data[0].f_downloadURL = "http://" + location.host + "/" + URL
796
- console.log("=====查看文件地址=====",res.data[0].f_downloadURL)
797
- this.fileurl = res.data[0].f_downloadURL
798
- }
799
- },
800
- // 打开安装明细
801
- async openModal (row) {
802
- this.ifDisable()
803
- if (row) {
804
- this.getDeviceList(row)
805
- console.log('------------------修正---------------------',row)
806
- this.userinfo = row
807
-
808
-
809
- let data = {
810
- tablename: 't_userfiles',
811
- condition: `f_userinfo_id = ${row.f_userinfo_id}`
812
- }
813
- let http = new HttpResetClass()
814
- let res = await http.load(
815
- 'POST',
816
- `rs/sql/applySingleTable`,
817
- {data: data},
818
- {resolveMsg: null, rejectMsg: '表档案查询失败!!!'}
819
- )
820
- this.userfile = res.data[0]
821
-
822
- if (this.userfile.f_gasbrand_id === 0) {
823
- this.userfile.f_gasbrand_id = null
824
- }
825
- if (this.userfile.f_gasmodel_id === 0) {
826
- this.userfile.f_gasmodel_id = null
827
- }
828
-
829
- if (!isEmpty(this.userfile.f_gasbrand_id)) {
830
- let data = {
831
- f_gasbrand_id: this.userfile.f_gasbrand_id
832
- }
833
- let http = new HttpResetClass()
834
- let res = await http.load(
835
- 'POST',
836
- `rs/sql/getGasModel`,
837
- {data: data},
838
- {resolveMsg: null, rejectMsg: '气表型号查询失败!!!'}
839
- )
840
-
841
- this.gasModelList = res.data
842
- }
843
- }
844
- if (this.selectdata.f_residential_area_id) {
845
- let data = {
846
- tablename: 't_area_address',
847
- condition: `id = '${this.selectdata.f_residential_area_id}'`
848
- }
849
- let http = new HttpResetClass()
850
- let res = await http.load(
851
- 'POST',
852
- `rs/sql/applySingleTable`,
853
- {data: data},
854
- {resolveMsg: null, rejectMsg: '小区查询失败!!!'}
855
- )
856
-
857
- this.area = res.data[0]
858
- this.selectArea(this.area.f_residential_area)
859
- this.changeArea()
860
- this.addressSplicing()
861
- }
862
-
863
- // 档案回填定位信息
864
- this.userinfo.f_lng = this.selectdata.f_lng
865
- this.userinfo.f_lat = this.selectdata.f_lat
866
- this.userinfo.f_location_address = this.selectdata.f_order_address
867
- if(!row){
868
- // 档案回填用户信息
869
- this.showUserInformation.f_user_name = this.selectdata.f_user_name
870
- this.showUserInformation.f_user_phone = this.selectdata.f_phone
871
- this.showUserInformation.f_credentials = this.selectdata.f_credentials
872
- this.showUserInformation.f_idnumber = this.selectdata.f_idnumber
873
- }
874
- this.showModal = true
875
- },
876
- async getDeviceList(row){
877
- let data = {
878
- tablename: 't_devices',
879
- condition: `f_userinfo_id = '${row.f_userinfo_id}'`
880
- }
881
- let http = new HttpResetClass()
882
- let res = await http.load(
883
- 'POST',
884
- `rs/sql/applySingleTable`,
885
- {data: data},
886
- {resolveMsg: null, rejectMsg: '设备查询失败!!!'}
887
- )
888
- this.devicesinfo = res.data
889
- },
890
- // 获取气表品牌
891
- async getMeterBrand () {
892
- let data = {
893
- }
894
-
895
- let http = new HttpResetClass()
896
- let res = await http.load(
897
- 'POST',
898
- `rs/sql/getMeterBrand`,
899
- {data: data},
900
- {resolveMsg: null, rejectMsg: '气表品牌查询失败!!!'}
901
- )
902
-
903
- this.meterBrandList = res.data
904
- this.meterBrandList.push({label: '无', value: 'null'})
905
- },
906
- // 获取小区
907
- async getAreaList () {
908
- let data = {
909
- tablename: 't_area_address',
910
- condition: `f_filiale = '${this.$login.f.f_fengongsi}' and f_area_status = '启用'`
911
- }
912
- let http = new HttpResetClass()
913
- let res = await http.load(
914
- 'POST',
915
- `rs/sql/applySingleTable`,
916
- {data: data},
917
- {resolveMsg: null, rejectMsg: '小区查询失败!!!'}
918
- )
919
- this.areaList = res.data.map(item => {
920
- item.id = String(item.id)
921
- return {
922
- label: item.f_residential_area,
923
- value: item
924
- }
925
- })
926
- },
927
- //搜索小区
928
- selectArea (val) {
929
- let pcdText = `and f_residential_area like '%${val}%'`
930
- let data = {
931
- tablename: 't_area_address',
932
- condition: `f_filiale = '${this.$login.f.f_fengongsi}' and f_area_status = '启用' ${pcdText}`
933
- }
934
- new HttpResetClass().load("POST", `rs/sql/applySingleTable`, {data:data}, {resolveMsg: null, rejectMsg: null}).then((res)=>{
935
- console.log('请求发送完成!!!!!'+JSON.stringify(res))
936
- if(res.data.length>0){
937
- this.areaList = res.data.map(item => {
938
- item.id = String(item.id)
939
- return {
940
- label: item.f_residential_area,
941
- value: item
942
- }
943
- })
944
- }
945
- })
946
- },
947
- searchCondition (args) {
948
- if (this.selectdata.f_apply_type === '分户挂表') {
949
- args.condition = args.condition + `and ui.f_userinfo_id = '${this.selectdata.f_userinfo_id}'`
950
- } else {
951
- args.condition = args.condition + `and ui.f_process_id = '${this.selectdata.f_process_id}'`
952
- }
953
-
954
- this.model.search(args.condition, args.model)
955
- },
956
- // 查询
957
- async search () {
958
- this.$refs.cp.$refs.cri.search()
959
- },
960
- // 关闭安装明细
961
- closeUserFile() {
962
- this.showModal = false
963
- this.devicesinfo = []
964
- this.area = {}
965
- this.userinfo = {}
966
- this.userfile = {}
967
- this.gasModelList = {}
968
- this.Sign = {}
969
- this.showDeleteModel = false
970
- this.search()
971
- },
972
- //关闭导入弹框
973
- closeFile() {
974
- this.showFile = false
975
- // 将选的文件清空
976
- this.$refs.file.$el.querySelector('input').value = ''
977
- this.search()
978
- },
979
- progressQuery() {
980
- console.log('导出进度开始查询')
981
- this.progressShow = true
982
- // 启动定时器之前先关闭定时器,防止之前的定时器未关闭
983
- this.closeTimer()
984
- // 立即执行一遍
985
- this.progressTask()
986
- this.timer = setInterval(this.progressTask, 3000)
987
- },
988
- async progressTask() {
989
- let http = new HttpResetClass()
990
- let res = await http.load('POST', `rs/logic/getBatchOperaPro`,{data: {uuid: this.uuid}}, {resolveMsg: null, rejectMsg: null})
991
- res = res.data
992
- console.log('进度数据', res)
993
- if (res.result.type === 'error') {
994
- this.$showAlert(`导入excel错误: ${res.result.msg}`, 'danger', 0)
995
- await http.load('POST', `rs/logic/updateApplyInstallCount`,{data: this.selectdata}, {resolveMsg: null, rejectMsg: null})
996
- this.close()
997
- } else {
998
- this.percent = Math.floor((res.current && res.total ? res.current/res.total*100 : 0)) + '%'
999
-
1000
- console.log("导入当前进度",this.percent)
1001
- // 进度100%
1002
- if (this.percent === '100%') {
1003
- await http.load('POST', `rs/logic/updateApplyInstallCount`,{data: this.selectdata}, {resolveMsg: null, rejectMsg: null})
1004
- this.close()
1005
- }
1006
- }
1007
- },
1008
- // 关闭定时器
1009
- closeTimer() {
1010
- if (this.timer) {
1011
- clearInterval(this.timer)
1012
- this.timer = null
1013
- }
1014
- },
1015
- guid() {
1016
- return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
1017
- let r = Math.random() * 16 | 0,
1018
- v = c == 'x' ? r : (r & 0x3 | 0x8)
1019
- return v.toString(16)
1020
- })
1021
- },
1022
- close() {
1023
- this.closeTimer()
1024
- this.progressShow = false
1025
- this.percent = '0%'
1026
- this.$dispatch('breakControl', this.selectdata)
1027
- },
1028
- },
1029
- events: {
1030
- async 'onFileUpload'(file, result) {
1031
- this.uuid = this.guid();
1032
- let data = {
1033
- selectdata: this.selectdata,
1034
- filepath: result.f_downloadpath,
1035
- user: this.$login.f,
1036
- mark: this.mark,
1037
- uuid: this.uuid
1038
- }
1039
- let http = new HttpResetClass()
1040
- let res = await http.load('POST',`rs/logic/importAddressAndUserinfo`, {data:data}, {
1041
- resolveMsg: null, rejectMsg: '导入失败!!!', silent: true
1042
- }, 0)
1043
- this.showFile = false
1044
- // 将选的文件清空
1045
- this.$refs.file.$el.querySelector('input').value = ''
1046
- this.progressQuery()
1047
- }
1048
- },
1049
- computed: {
1050
- getConditions () {
1051
- return {
1052
- condition: `ui.f_process_id = '${this.selectdata.f_process_id}'`,
1053
- data: {
1054
- userid: this.$login.f.id,
1055
- f_filiale: this.$login.f.f_fengongsi
1056
- }
1057
- }
1058
- },
1059
- showDeleteUserInfo () {
1060
- return this.selectdata.f_apply_type === '民用报建' &&
1061
- (this.selectdata.defname === '报建受理' || this.selectdata.defname === '现场勘察')
1062
- },
1063
- newShowDeleteUserInfo () {
1064
- return this.selectdata.f_apply_type === '设备拆除' && this.selectdata.defname === '核对气量'
1065
- },
1066
- showAddress () {
1067
- return (this.selectdata.f_apply_type === '民用报建' || this.selectdata.f_apply_type === '设备拆除') && (this.selectdata.defname !== '工程施工')
1068
- },
1069
- showUserInfo () {
1070
- return (this.selectdata.f_apply_type === '民用报建' && this.selectdata.f_apply_nature !== '分户挂表') || (this.selectdata.f_apply_type === '设备拆除')
1071
- },
1072
- showUserFile () {
1073
- return (this.selectdata.f_apply_type === '民用报建' && this.selectdata.f_apply_nature !== '分户挂表' && this.selectdata.defname === '工程施工') ||
1074
- this.selectdata.f_apply_type === '非民用报建' ||
1075
- this.selectdata.f_apply_type === '设备变更' ||
1076
- this.selectdata.f_apply_type === '设备拆除' ||
1077
- this.selectdata.f_apply_type === '分户挂表'
1078
- },
1079
- showInstall () {
1080
- return (this.showUserFile && (this.selectdata.defname === '工程施工' || this.selectdata.defname === '施工通气' ||
1081
- this.selectdata.defname === '点火通气')) || (this.selectdata.f_apply_type === '设备拆除')
1082
- },
1083
- // 证件类型
1084
- credentialsList() {
1085
- return this.$appdata.getParam('证件类型')
1086
- },
1087
- // 安装人
1088
- installperson() {
1089
- return function (f_install_person) {
1090
- if (isEmpty(f_install_person)) {
1091
- return this.$login.f.name
1092
- }
1093
- return f_install_person
1094
- }
1095
- },
1096
- // 安装时间
1097
- installdate() {
1098
- return function (f_install_date) {
1099
- if (isEmpty(f_install_date)) {
1100
- return new Date().Format('yyyy-MM-dd HH:mm:ss')
1101
- }
1102
- return f_install_date
1103
- }
1104
- },
1105
- // 表向
1106
- aroundmeters() {
1107
- return this.$appdata.getParam('左右表')
1108
- },
1109
- // 安装位置
1110
- positions() {
1111
- return this.$appdata.getParam('安装位置')
1112
- },
1113
- getCondition () {
1114
- return {
1115
- condition: `ui.f_process_id = '${this.selectdata.f_process_id}'`,
1116
- data: {
1117
- userid: this.$login.f.id,
1118
- f_filiale: this.$login.f.f_fengongsi
1119
- }
1120
- }
1121
- }
1122
- },
1123
- watch: {
1124
- }
1125
- }
1126
- </script>
1127
- <style scoped>
1128
- .head-but{
1129
- margin-left: 5px;
1130
- height: 34px;
1131
- /*background-color: #6aa6e2;*/
1132
- border-radius: 4px;
1133
- font-family: PingFang;
1134
- color: #ffffff;
1135
- }
1136
- /*清除model中的浮动*/
1137
- .clearfix:after,.clearfix:before{
1138
- display: table;
1139
- }
1140
- .clearfix:after{
1141
- clear: both;
1142
- }
1143
- .input_view{
1144
- background-color: #ffffff;
1145
- border-radius: 2px;
1146
- border: solid 1px #c7c7c7!important;
1147
- color: #333333!important;
1148
- font-size: 15px!important;
1149
- }
1150
-
1151
- .input_view[readonly]{
1152
- border: 1px solid #DDD!important;
1153
- color:#ACA899!important;
1154
- }
1155
- .input_view:disabled{
1156
- border: 1px solid #DDD!important;
1157
- color:#ACA899!important;
1158
- }
1159
- </style>
1
+ <template>
2
+ <div style="float: right">
3
+ <export-excel :data="getConditions"
4
+ :field="getfields"
5
+ sqlurl="rs/logic/applyExportfile"
6
+ sql-name="getApplyUserinfo"
7
+ template-name='用户信息导出'
8
+ :choose-col="true"></export-excel>
9
+ </div>
10
+ <div class="col-sm-12" style="margin: 20px 0px;">
11
+
12
+ <criteria-paged :model="model" v-ref:cp>
13
+ <criteria partial='criteria' @condition-changed='$parent.searchCondition' v-ref:cri>
14
+ <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
15
+ </div>
16
+ </criteria>
17
+ <data-grid :model="model" v-ref:grid partial='list' class="list_area table_sy" style="padding: 0px">
18
+ <template partial='head'>
19
+ <tr>
20
+ <th>序号</th>
21
+ <th>客户编号</th>
22
+ <th>客户名称</th>
23
+ <th>客户电话</th>
24
+ <th>身份证号</th>
25
+ <th>地址信息</th>
26
+ <th>表号</th>
27
+ <th>气表品牌</th>
28
+ <th>气表型号</th>
29
+ <th>
30
+ <button
31
+ type="button"
32
+ v-if="$parent.$parent.$parent.selectdata.f_apply_type !== '非民用报建'"
33
+ class="btn btn-info head-but"
34
+ @click="$parent.$parent.$parent.openModal()"
35
+ :disabled="$parent.$parent.$parent.mark === 1 ||
36
+ ($parent.$parent.$parent.model.count >= $parent.$parent.$parent.selectdata.f_apply_count &&
37
+ $parent.$parent.$parent.selectdata.defname === '报建受理') ||
38
+ ($parent.$parent.$parent.model.count >= $parent.$parent.$parent.selectdata.f_install_count &&
39
+ $parent.$parent.$parent.selectdata.defname === '工程施工') ||
40
+ $parent.$parent.$parent.selectdata.defname === '施工通气'"
41
+ >添加用户</button>
42
+ <button
43
+ v-if="$parent.$parent.$parent.selectdata.defname === '工程施工'"
44
+ type="button"
45
+ class="btn btn-info head-but"
46
+ @click="$parent.$parent.$parent.openSign()"
47
+ >签字照片</button>
48
+ <template v-if="$parent.$parent.$parent.selectdata.f_apply_type === '民用报建'">
49
+ <button type="button" class="btn btn-info head-but" v-if="$parent.$parent.$parent.mark !== 1"
50
+ @click="$parent.$parent.$parent.importBefore()">导入</button>
51
+ <a type="button" class="btn btn-info head-but" v-if="$parent.$parent.$parent.mark !== 1 && $parent.$parent.$parent.selectdata.f_apply_nature === '小区' && $parent.$parent.$parent.selectdata.defname !== '工程施工'"
52
+ href="/apply/download/excel/小区导入.xlsx" download>模板下载</a>
53
+ <a type="button" class="btn btn-info head-but" v-if="$parent.$parent.$parent.mark !== 1 && $parent.$parent.$parent.selectdata.f_apply_nature === '散户' && $parent.$parent.$parent.selectdata.defname !== '工程施工'"
54
+ href="/apply/download/excel/散户导入模板.xlsx" download>模板下载</a>
55
+ <export-excel :data="$parent.$parent.$parent.getCondition"
56
+ :field="$parent.$parent.$parent.getfield"
57
+ v-if="$parent.$parent.$parent.mark !== 1 && $parent.$parent.$parent.selectdata.f_apply_nature === '小区' && $parent.$parent.$parent.selectdata.defname === '工程施工'"
58
+ sqlurl="rs/logic/applyExportfile"
59
+ sql-name="getApplyUserinfoExcel"
60
+ template-name='待添加表号信息导出'
61
+ :choose-col="true"></export-excel>
62
+ </template>
63
+ </th>
64
+ </tr>
65
+
66
+ </template>
67
+ <template partial='body'>
68
+ <tr>
69
+ <td style="text-align: center;">
70
+ <nobr>{{$index+1}}</nobr>
71
+ </td>
72
+ <td style="text-align: center;">
73
+ <nobr>{{row.f_userinfo_id}}</nobr>
74
+ </td>
75
+ <td style="text-align: center;">
76
+ <nobr>{{row.f_user_name}}</nobr>
77
+ </td>
78
+ <td style="text-align: center;">
79
+ <nobr>{{row.f_user_phone}}</nobr>
80
+ </td>
81
+ <td style="text-align: center;">
82
+ <nobr>{{row.f_idnumber}}</nobr>
83
+ </td>
84
+ <td style="text-align: center;">
85
+ <nobr>{{row.f_address}}{{row.f_address_detail}}</nobr>
86
+ </td>
87
+ <td style="text-align: center;">
88
+ <nobr>{{row.f_meternumber}}</nobr>
89
+ </td>
90
+ <td style="text-align: center;">
91
+ <nobr>{{row.f_meter_brand}}</nobr>
92
+ </td>
93
+ <td style="text-align: center;">
94
+ <nobr>{{row.f_meter_style}}</nobr>
95
+ </td>
96
+ <td style="text-align: center;">
97
+ <nobr>
98
+ <button
99
+ type="button" name="button" class="btn btn-link"
100
+ @click="$parent.$parent.$parent.openModal(row)">
101
+ {{$parent.$parent.$parent.mark === 1 || row.f_user_state === '正常' ? '查看' : '修正'}}
102
+ </button>
103
+ <button
104
+ type="button" name="button" class="btn btn-link"
105
+ @click="$parent.$parent.$parent.deleteUserinfo(row)"
106
+ v-if="$parent.$parent.$parent.showDeleteUserInfo"
107
+ :disabled="$parent.$parent.$parent.mark === 1 || row.f_user_state === '正常'"
108
+ >
109
+ 销户
110
+ </button>
111
+ <button
112
+ type="button" name="button" class="btn btn-link"
113
+ @click="$parent.$parent.$parent.deleteUserinfo(row)"
114
+ v-if="$parent.$parent.$parent.newShowDeleteUserInfo"
115
+ >
116
+ 销户
117
+ </button>
118
+ </nobr>
119
+ </td>
120
+ </tr>
121
+ </template>
122
+ </data-grid>
123
+ </criteria-paged>
124
+ </div>
125
+ <modal v-if="showFile" :show.sync="showFile" v-ref:modal :backdrop="false" title="选择文件">
126
+ <header slot="modal-header" class="modal-header">
127
+ <button type="button" class="close" @click="closeFile"><span>&times;</span></button>
128
+ <h4 class="modal-title">选择文件</h4>
129
+ </header>
130
+ <article slot="modal-body" class="modal-body">
131
+ <div class="form-group">
132
+ <file-upload class="my-file-uploader" name="useraddressUploadFile" action="rs/file/uploadFile" tagname="确定" v-ref:file></file-upload>
133
+ </div>
134
+ </article>
135
+ <footer slot="modal-footer" class="modal-footer"></footer>
136
+ </modal>
137
+ <modal v-if="progressShow" :show.sync="progressShow" v-ref:modal :backdrop="false" title="导入进度">
138
+ <header slot="modal-header" class="modal-header">
139
+ <button type="button" class="close" @click="close"><span>&times;</span></button>
140
+ <h4 class="modal-title">导入进度</h4>
141
+ </header>
142
+ <article slot="modal-body" class="modal-body">
143
+ <div class="progress" style="margin: 20px">
144
+ <div class="progress-bar progress-bar-success progress-bar-striped active" :style="{width: percent}">
145
+ {{ percent }}
146
+ </div>
147
+ </div>
148
+ </article>
149
+ <footer slot="modal-footer" class="modal-footer"></footer>
150
+ </modal>
151
+
152
+ <modal v-if="Sign" :show.sync="Sign" v-ref:modal :large="true" :backdrop="false">
153
+ <header slot="modal-header" class="modal-header">
154
+ <button type="button" class="close" @click="closeUserFile"><span>&times;</span></button>
155
+ <h4 class="modal-title">用户签字</h4>
156
+ </header>
157
+ <article slot="modal-body" class="modal-body clearfix">
158
+ <div class="left col-sm-6 col-xs-6">
159
+ <img-self :src="fileurl" width="100%" height="100%"></img-self>
160
+ </div>
161
+ </article>
162
+ <footer slot="modal-footer" class="modal-footer">
163
+ <template v-if="mark !== 1 && userinfo.f_user_state !== '正常'">
164
+ </template>
165
+ </footer>
166
+ </modal>
167
+ <validator name="v">
168
+ <modal v-if="showModal" :show.sync="showModal" v-ref:modal :large="true" :backdrop="false">
169
+ <header slot="modal-header" class="modal-header">
170
+ <button type="button" class="close" @click="closeUserFile"><span>&times;</span></button>
171
+ <h4 class="modal-title">安装明细</h4>
172
+ </header>
173
+ <article slot="modal-body" class="modal-body clearfix">
174
+ <!-- 基本信息 -->
175
+ <div class="form-group col-sm-12 panel panel-info" v-if="showUserInfo">
176
+ <div class="panel-heading head col-sm-12" style="background-color: #e8f4ff;margin-bottom: 10px">
177
+ <div class="col-sm-6 text-left">用户信息</div>
178
+ </div>
179
+ <div class="form-group col-sm-6" :class="[$v.f_user_name.required ? 'has-error' : '']">
180
+ <label class="col-sm-4 control-label">客户名称:</label>
181
+ <div class="col-sm-8">
182
+ <input class="form-control input_view" style=""
183
+ v-validate:f_user_name = "['required']"
184
+ v-model="userinfo.f_user_name"
185
+ :value.sync="showUserInformation.f_user_name"
186
+ :readonly="mark === 1 || userinfo.f_user_state === '正常'"
187
+ placeholder="客户名称"/>
188
+ </div>
189
+ </div>
190
+ <div class="form-group col-sm-6">
191
+ <label class="col-sm-4 control-label">客户电话:</label>
192
+ <div class="col-sm-8">
193
+ <input class="form-control input_view" style=""
194
+ v-model="userinfo.f_user_phone"
195
+ :value.sync="showUserInformation.f_user_phone"
196
+ :readonly="mark === 1 || userinfo.f_user_state === '正常'"
197
+ placeholder="客户电话"/>
198
+ </div>
199
+ </div>
200
+ <div class="form-group col-sm-6">
201
+ <label class="col-sm-4 control-label">证件类型:</label>
202
+ <div class="col-sm-8">
203
+ <input-select
204
+ class="select select_list"
205
+ :value.sync="showUserInformation.f_credentials"
206
+ v-model="userinfo.f_credentials"
207
+ :options="credentialsList"
208
+ :disable="mark === 1 || userinfo.f_user_state === '正常'"
209
+ :valueSingle="true"></input-select>
210
+ </div>
211
+ </div>
212
+ <div class="form-group col-sm-6">
213
+ <label class="col-sm-4 control-label">证件号码:</label>
214
+ <div class="col-sm-8">
215
+ <input class="form-control input_view" style=""
216
+ placeholder="证件号码"
217
+ v-model="userinfo.f_idnumber"
218
+ :value="showUserInformation.f_idnumber"
219
+ :readonly="mark === 1 || userinfo.f_user_state === '正常'"/>
220
+ </div>
221
+ </div>
222
+ </div>
223
+ <!-- 地址信息 -->
224
+ <div class="form-group col-sm-12 panel panel-info" v-if="showAddress">
225
+ <div class="panel-heading head col-sm-12" style="background-color: #e8f4ff;margin-bottom: 10px">
226
+ <div class="col-sm-6 text-left">地址信息</div>
227
+ </div>
228
+ <div class="form-group col-sm-6" :class="[$v.area.required ? 'has-error' : '']">
229
+ <label class="col-sm-4 control-label">小区/巷道:</label>
230
+ <div class="col-sm-8">
231
+ <input type="text" v-show="false" v-model="area.id" :value.sync="area.id" v-validate:area = "['required']" >
232
+ <input-select
233
+ class="select select_list"
234
+ :value.sync="area"
235
+ v-model="area"
236
+ :options="areaList"
237
+ @change="changeArea(),addressSplicing()"
238
+ @select-search = "selectArea"
239
+ :disable="mark === 1 || userinfo.f_user_state === '正常'"
240
+ :valueSingle="true"></input-select>
241
+ </div>
242
+ </div>
243
+ <div class="form-group col-sm-6">
244
+ <label class="col-sm-4 control-label">楼&emsp;&emsp;号:</label>
245
+ <div class="col-sm-8">
246
+ <input class="form-control input_view" placeholder="楼号"
247
+ v-model="userinfo.f_building"
248
+ :value="userinfo.f_building"
249
+ @change="addressSplicing"
250
+ :readonly="mark === 1 || userinfo.f_user_state === '正常'"/>
251
+ </div>
252
+ </div>
253
+ <div class="form-group col-sm-6">
254
+ <label class="col-sm-4 control-label">单&emsp;&emsp;元:</label>
255
+ <div class="col-sm-8">
256
+ <input class="form-control input_view" placeholder="单元"
257
+ v-model="userinfo.f_unit"
258
+ :value="userinfo.f_unit"
259
+ @change="addressSplicing"
260
+ :readonly="mark === 1 || userinfo.f_user_state === '正常'"/>
261
+ </div>
262
+ </div>
263
+ <div class="form-group col-sm-6" v-if="false">
264
+ <label class="col-sm-4 control-label">楼&emsp;&emsp;层:</label>
265
+ <div class="col-sm-8">
266
+ <input class="form-control input_view" placeholder="楼层"
267
+ v-model="userinfo.f_floor"
268
+ :value="userinfo.f_floor"
269
+ @change="addressSplicing"
270
+ :readonly="mark === 1 || userinfo.f_user_state === '正常'"/>
271
+ </div>
272
+ </div>
273
+ <div class="form-group col-sm-6" :class="[$v.f_room.required ? 'has-error' : '']">
274
+ <label class="col-sm-4 control-label">门&ensp;牌&ensp;号:</label>
275
+ <div class="col-sm-8">
276
+ <input class="form-control input_view" placeholder="门牌号"
277
+ v-validate:f_room = "['required']"
278
+ v-model="userinfo.f_room"
279
+ :value="userinfo.f_room"
280
+ @change="addressSplicing"
281
+ :readonly="mark === 1 || userinfo.f_user_state === '正常'"/>
282
+ </div>
283
+ </div>
284
+ <div class="form-group col-sm-12">
285
+ <label class="col-sm-2 control-label">地&emsp;&emsp;址:</label>
286
+ <div class="col-sm-10">
287
+ <input class="form-control input_view"
288
+ placeholder="地址"
289
+ v-model="userinfo.f_address"
290
+ :value.sync="userinfo.f_address"
291
+ :readonly="true"/>
292
+ </div>
293
+ </div>
294
+ </div>
295
+ <!-- 表具信息 -->
296
+ <div class="form-group col-sm-12 panel panel-info" v-if="showUserFile">
297
+ <div class="panel-heading head col-sm-12" style="background-color: #e8f4ff;margin-bottom: 10px">
298
+ <div class="col-sm-6 text-left">表具信息</div>
299
+ </div>
300
+ <div class="form-group col-sm-6" :class="[$v.f_gasbrand_id.required ? 'has-error' : '']">
301
+ <label class="col-sm-4 control-label">气表品牌:</label>
302
+ <div class="col-sm-8">
303
+ <input type="text" v-show="false" v-model="userfile.f_gasbrand_id" :value.sync="userfile.f_gasbrand_id" v-validate:f_gasbrand_id = "['required']" >
304
+ <input-select
305
+ class="select select_list"
306
+ :value.sync="userfile.f_gasbrand_id"
307
+ v-model="userfile.f_gasbrand_id"
308
+ :options="meterBrandList"
309
+ @change="gasbrandChange()"
310
+ :disable="mark === 1 || userinfo.f_user_state === '正常' || gasbrandDisable"
311
+ :valueSingle="true"></input-select>
312
+ </div>
313
+ </div>
314
+ <div class="form-group col-sm-6" :class="[$v.f_gasmodel_id.required ? 'has-error' : '']">
315
+ <label class="col-sm-4 control-label">气表型号:</label>
316
+ <div class="col-sm-8">
317
+ <input type="text" v-show="false" v-model="userfile.f_gasmodel_id" :value.sync="userfile.f_gasmodel_id" v-validate:f_gasmodel_id = "['required']" >
318
+ <input-select
319
+ class="select select_list"
320
+ :value.sync="userfile.f_gasmodel_id"
321
+ v-model="userfile.f_gasmodel_id"
322
+ :options.sync="gasModelList"
323
+ :disable="mark === 1 || userinfo.f_user_state === '正常' || gasbrandDisable"
324
+ :valueSingle="true"></input-select>
325
+ </div>
326
+ </div>
327
+ <template v-if="showInstall">
328
+ <div class="form-group col-sm-6" :class="[$v.f_meternumber.required ? 'has-error' : '']">
329
+ <label class="col-sm-4 control-label">表&emsp;&emsp;号:</label>
330
+ <div class="col-sm-8">
331
+ <input class="form-control input_view" style=""
332
+ placeholder="表号" v-validate:f_meternumber = "['required']"
333
+ v-model="userfile.f_meternumber"
334
+ :value.sync="userfile.f_meternumber"
335
+ @change="meternumberValidate()"
336
+ :readonly="mark === 1 || userinfo.f_user_state === '正常'"/>
337
+ </div>
338
+ </div>
339
+ <div class="form-group col-sm-6">
340
+ <label class="col-sm-4 control-label">表&ensp;封&ensp;号:</label>
341
+ <div class="col-sm-8">
342
+ <input class="form-control input_view" style=""
343
+ placeholder="表封号"
344
+ v-model="userfile.f_metertitles"
345
+ :value="userfile.f_metertitles"
346
+ :readonly="mark === 1 || userinfo.f_user_state === '正常'"/>
347
+ </div>
348
+ </div>
349
+ <div class="form-group col-sm-6">
350
+ <label class="col-sm-4 control-label">表&ensp;读&ensp;数:</label>
351
+ <div class="col-sm-8">
352
+ <input class="form-control input_view" style=""
353
+ type="number"
354
+ placeholder="表读数"
355
+ v-model="userfile.f_meter_base"
356
+ :value="userfile.f_meter_base"
357
+ :readonly="mark === 1 || userinfo.f_user_state === '正常'"/>
358
+ </div>
359
+ </div>
360
+ <div class="form-group col-sm-6" v-show="false">
361
+ <label class="col-sm-4 control-label">初始底数:</label>
362
+ <div class="col-sm-8">
363
+ <input class="form-control input_view" style=""
364
+ type="number"
365
+ v-model="userfile.f_initial_base"
366
+ :value="userfile.f_meter_base"
367
+ placeholder="初始底数"
368
+ :readonly="mark === 1 || userinfo.f_user_state === '正常'"/>
369
+ </div>
370
+ </div>
371
+ <div class="form-group col-sm-6">
372
+ <label class="col-sm-4 control-label">表&emsp;&emsp;向:</label>
373
+ <div class="col-sm-8">
374
+ <input-select
375
+ class="select select_list"
376
+ :value.sync="userfile.f_aroundmeter"
377
+ v-model="userfile.f_aroundmeter"
378
+ :options="aroundmeters"
379
+ :disable="mark === 1 || userinfo.f_user_state === '正常'"
380
+ :valueSingle="true"></input-select>
381
+ </div>
382
+ </div>
383
+ <div class="form-group col-sm-6">
384
+ <label class="col-sm-4 control-label">安装位置:</label>
385
+ <div class="col-sm-8">
386
+ <input-select
387
+ class="select select_list"
388
+ :value.sync="userfile.f_position"
389
+ v-model="userfile.f_position"
390
+ :options="positions"
391
+ :disable="mark === 1 || userinfo.f_user_state === '正常'"
392
+ :valueSingle="true"></input-select>
393
+ </div>
394
+ </div>
395
+ <div class="form-group col-sm-6">
396
+ <label class="col-sm-4 control-label">安&ensp;装&ensp;人:</label>
397
+ <div class="col-sm-8">
398
+ <input class="form-control input_view" style=""
399
+ v-model="userfile.f_install_person"
400
+ :value.sync="installperson(userfile.f_install_person)"
401
+ placeholder="安装人"
402
+ readonly/>
403
+ </div>
404
+ </div>
405
+ <div class="form-group col-sm-6">
406
+ <label class="col-sm-4 control-label">安装日期:</label>
407
+ <div class="col-sm-8">
408
+ <input class="form-control input_view" style=""
409
+ v-model="userfile.f_install_date"
410
+ :value.sync="installdate(userfile.f_install_date)"
411
+ placeholder="安装日期"
412
+ readonly/>
413
+ </div>
414
+ </div>
415
+ </template>
416
+ </div>
417
+ <div class="form-group col-sm-12 panel panel-info" v-if="showUserFile" >
418
+ <header slot="modal-header" class="modal-header">
419
+ <h4 class="modal-title">表具设备信息</h4>
420
+ </header>
421
+ <div v-for="(i, item) in devicesinfo" class="form-group col-sm-12 panel panel-info">
422
+ <div class="panel-heading head col-sm-12" style="background-color: #e8f4ff;margin-bottom: 10px">
423
+ <div class="col-sm-12 text-left">设备{{$index+1}}信息</div>
424
+ </div>
425
+ <div class="form-group col-sm-3">
426
+ <label class="col-sm-4 control-label">设备:</label>
427
+ <div class="col-sm-8">
428
+ <input class="form-control input_view" style=""
429
+ placeholder="设备类型"
430
+ v-model="item.f_devices_type"
431
+ :value="item.f_devices_type"
432
+ readonly/>
433
+ </div>
434
+ </div>
435
+ <div class="form-group col-sm-3">
436
+ <label class="col-sm-4 control-label">编号:</label>
437
+ <div class="col-sm-8">
438
+ <input class="form-control input_view" style=""
439
+ placeholder="设备编号"
440
+ v-model="item.f_devices_no"
441
+ :value="item.f_devices_no"
442
+ readonly/>
443
+ </div>
444
+ </div>
445
+ <div class="form-group col-sm-3">
446
+ <label class="col-sm-4 control-label">品牌:</label>
447
+ <div class="col-sm-8">
448
+ <input class="form-control input_view" style=""
449
+ placeholder="设备品牌"
450
+ v-model="item.f_brand"
451
+ :value="item.f_brand"
452
+ readonly/>
453
+ </div>
454
+ </div>
455
+ <div class="form-group col-sm-3">
456
+ <label class="col-sm-4 control-label">型号:</label>
457
+ <div class="col-sm-8">
458
+ <input class="form-control input_view" style=""
459
+ placeholder="设备型号"
460
+ v-model="item.f_devices_model"
461
+ :value="item.f_devices_model"
462
+ readonly/>
463
+ </div>
464
+ </div>
465
+ <div class="form-group col-sm-3">
466
+ <label class="col-sm-4 control-label">数量:</label>
467
+ <div class="col-sm-8">
468
+ <input class="form-control input_view" style="" type="number"
469
+ placeholder="设备数量"
470
+ v-model="item.f_devices_num"
471
+ :value="item.f_devices_num"
472
+ readonly/>
473
+ </div>
474
+ </div>
475
+ <div class="form-group col-sm-3">
476
+ <label class="col-sm-4 control-label">功率:</label>
477
+ <div class="col-sm-8">
478
+ <input class="form-control input_view" style=""
479
+ placeholder="设备功率"
480
+ type="number"
481
+ v-model="item.f_devices_tonnage"
482
+ :value="item.f_devices_tonnage"
483
+ readonly/>
484
+ </div>
485
+ </div>
486
+ <div class="form-group col-sm-3">
487
+ <label class="col-sm-4 control-label">日期:</label>
488
+ <div class="col-sm-8">
489
+ <input class="form-control input_view" style=""
490
+ placeholder="安装日期"
491
+ v-model="item.f_install_date"
492
+ :value="item.f_install_date"
493
+ readonly/>
494
+ </div>
495
+ </div>
496
+ <div class="form-group col-sm-3">
497
+ <label class="col-sm-4 control-label">单位:</label>
498
+ <div class="col-sm-8">
499
+ <input class="form-control input_view" style=""
500
+ placeholder="功率单位"
501
+ v-model="item.f_devices_tonnage_unit"
502
+ :value="item.f_devices_tonnage_unit"
503
+ readonly/>
504
+ </div>
505
+ </div>
506
+ </div>
507
+ </div>
508
+ </article>
509
+ <footer slot="modal-footer" class="modal-footer">
510
+ <template v-if="mark !== 1 && userinfo.f_user_state !== '正常'">
511
+ <button type="button" class="btn btn-primary" @click="saveUserFile" :disabled="!$v.valid">确认</button>
512
+ </template>
513
+ </footer>
514
+ </modal>
515
+ </validator>
516
+ <validator name="x">
517
+ <modal v-if="showDeleteModel" :show.sync="showDeleteModel" v-ref:modal :large="true" :backdrop="false">
518
+ <header slot="modal-header" class="modal-header">
519
+ <button type="button" class="close" @click="closeUserFile"><span>&times;</span></button>
520
+ <h4 class="modal-title">销户原因</h4>
521
+ </header>
522
+ <article slot="modal-body" class="modal-body clearfix">
523
+ <div class="left col-sm-12 col-xs-12" :class="[$x.f_cancel_cause.required ? 'has-error' : '']">
524
+ <div class="form-group col-sm-12">
525
+ <label class="col-sm-2 control-label">销户原因:</label>
526
+ <div class="col-sm-10">
527
+ <input class="form-control input_view" style=""
528
+ v-validate:f_cancel_cause = "['required']"
529
+ v-model="userinfo.f_cancel_cause"
530
+ :value.sync="userinfo.f_cancel_cause"
531
+ placeholder="销户原因"/>
532
+ </div>
533
+ </div>
534
+ </div>
535
+ </article>
536
+ <footer slot="modal-footer" class="modal-footer">
537
+ <button type="button" class="btn btn-primary" @click="deleteUser" :disabled="!$x.valid">确认</button>
538
+ </footer>
539
+ </modal>
540
+ </validator>
541
+ </template>
542
+ <script>
543
+ import Vue from 'vue'
544
+ import {PagedList} from 'vue-client'
545
+ import {HttpResetClass} from 'vue-client'
546
+ import {isEmpty} from '../../../Util'
547
+ // Date格式化
548
+ Date.prototype.Format = function (fmt) {
549
+ var o = {
550
+ 'M+': this.getMonth() + 1, // 月份
551
+ 'd+': this.getDate(), // 日
552
+ 'H+': this.getHours(), // 小时
553
+ 'm+': this.getMinutes(), // 分
554
+ 's+': this.getSeconds(), // 秒
555
+ 'q+': Math.floor((this.getMonth() + 3) / 3), // 季度
556
+ 'S': this.getMilliseconds() // 毫秒
557
+ }
558
+ if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length))
559
+ for (var k in o) {
560
+ if (new RegExp('(' + k + ')').test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)))
561
+ }
562
+ return fmt
563
+ }
564
+
565
+ export default {
566
+ title: '安装明细',
567
+ props: {
568
+ selectdata: {
569
+ type: Object
570
+ },
571
+ mark: {
572
+ type: Number,
573
+ default: 0
574
+ }
575
+ },
576
+ data () {
577
+ return {
578
+ gasbrandDisable: false,
579
+ showFile: false,
580
+ showModal: false,
581
+ model: new PagedList('rs/sql/getApplyUserinfo', 20, null),
582
+ areaList: [],
583
+ area: {},
584
+ userinfo: {},
585
+ userfile: {},
586
+ meterBrandList: [],
587
+ gasModelList: [],
588
+ Sign: false,
589
+ fileurl: null,
590
+ devicesinfo: [],
591
+ showUserInformation: {},
592
+ showDeleteModel: false,
593
+ uuid: '',
594
+ percent: '0%',
595
+ progressShow: false,
596
+ // 定时器
597
+ timer: null,
598
+ getfield: {
599
+ 'f_userinfo_id': ' 客户编号 ',
600
+ 'f_address': ' 地址 ',
601
+ 'f_meternumber': ' 表号 ',
602
+ 'f_aroundmeter': ' 表向 '
603
+ },
604
+ getfields:{
605
+ 'f_userinfo_id':'客户编号',
606
+ 'f_user_name':'客户名称',
607
+ 'f_user_phone':'客户电话',
608
+ 'f_meter_brand':'气表品牌',
609
+ 'f_meter_style':'气表型号',
610
+ 'f_idnumber':'身份证号',
611
+ 'f_address':'地址',
612
+ 'f_meternumber':'表号'
613
+ }
614
+ }
615
+ },
616
+ ready () {
617
+ this.search()
618
+ this.getMeterBrand()
619
+ this.getAreaList()
620
+ },
621
+ methods: {
622
+ async deleteUserinfo (row) {
623
+ this.userinfo = row
624
+ let res = await this.$showMessage('此操作不可撤回,您确定要删除这条记录吗?')
625
+ if (res === 'cancel') {
626
+ return
627
+ }
628
+ this.showDeleteModel = !this.showDeleteModel
629
+ },
630
+ async deleteUser () {
631
+ let res = await this.$showMessage('此操作不可撤回,您确定要删除这条记录吗?')
632
+ if (res === 'cancel') {
633
+ return
634
+ }
635
+ let data = {
636
+ login: this.$login.f,
637
+ userinfo: this.userinfo,
638
+ selectdata: this.selectdata
639
+ }
640
+ res = await this.$resetpost('rs/logic/applyDeleteUserinfo', {data:data}, {
641
+ resolveMsg: null,
642
+ rejectMsg: '删除失败!!!'
643
+ })
644
+
645
+ this.$dispatch('breakControl', this.selectdata)
646
+ },
647
+ // 保存档案
648
+ async saveUserFile () {
649
+ if (this.selectdata.defname === '工程施工'){
650
+ await this.meternumberValidate()
651
+ if (this.userfile.f_meter_base - 0 === 0 || this.userfile.f_meter_base - 0 > 1.5){
652
+ console.log("当前表底数",this.userfile.f_meter_base)
653
+ this.$showAlert('表读数必须大于0小于或等于1.5!', 'warning', 3000)
654
+ throw '表读数必须大于0小于或等于1.5!'
655
+ }
656
+ }
657
+ let data = {
658
+ user: this.$login.f,
659
+ userinfo: this.userinfo,
660
+ userfile: this.userfile,
661
+ selectdata: this.selectdata
662
+ }
663
+ let res = await this.$resetpost('rs/logic/applyAddUserinfo', {data:data}, {
664
+ resolveMsg: null,
665
+ rejectMsg: '用户档案添加失败!!!'
666
+ })
667
+ this.$dispatch('breakControl', this.selectdata)
668
+ },
669
+ ifDisable() {
670
+ if (this.selectdata.f_apply_type === '非民用报建' && this.selectdata.defname === '工程施工') {
671
+ this.gasbrandDisable = true
672
+ }
673
+ },
674
+ // 检查表号是否存在
675
+ async meternumberValidate() {
676
+ if (!this.userfile.f_gasbrand_id) {
677
+ this.userfile.f_meternumber = ''
678
+ this.$showAlert('请先选择气表品牌!!!', 'warning', 3000)
679
+ return
680
+ }
681
+ if (this.userfile.f_gasbrand_id && this.userfile.f_meternumber) {
682
+ let data = {
683
+ f_meternumber: this.userfile.f_meternumber,
684
+ f_gasbrand_id: this.userfile.f_gasbrand_id
685
+ }
686
+ if (this.userfile.f_user_id) {
687
+ data.f_user_id = this.userfile.f_user_id
688
+ }
689
+ let res = await this.$resetpost('rs/logic/meterbrandsNumberValidate', {data:data}, {
690
+ resolveMsg: null,
691
+ rejectMsg: '表号验证失败!!'
692
+ })
693
+ console.log(`查询结果${res.data}`)
694
+ console.log(res.data)
695
+ if (res.data === '表号已存在' || res.data === '表号无效') {
696
+ this.userfile.f_meternumber = ''
697
+ this.$showAlert(res.data, 'warning', 3000)
698
+ throw res.data
699
+ }
700
+ }
701
+ },
702
+ // 选择气表品牌
703
+ async gasbrandChange() {
704
+ // 清空已保存的气表型号
705
+ this.userfile.f_gasmodel_id = null
706
+ if (isEmpty(this.userfile.f_gasbrand_id)) {
707
+ return
708
+ }
709
+ if (this.userfile.f_gasbrand_id === 'null') {
710
+ this.gasModelList.push({label: '无', value: 'null'})
711
+ this.userfile.f_meter_classify = 'null'
712
+ return
713
+ }
714
+ let data = {
715
+ f_gasbrand_id: this.userfile.f_gasbrand_id
716
+ }
717
+ let http = new HttpResetClass()
718
+ let res = await http.load(
719
+ 'POST',
720
+ `rs/sql/getGasModel`,
721
+ {data: data},
722
+ {resolveMsg: null, rejectMsg: '气表型号查询失败!!!'}
723
+ )
724
+
725
+ this.gasModelList = res.data
726
+
727
+ // data = {
728
+ // tablename: 't_gasbrand',
729
+ // condition: `id = '${this.userfile.f_gasbrand_id}'`
730
+ // }
731
+ // res = await http.load(
732
+ // 'POST',
733
+ // `rs/sql/applySingleTable`,
734
+ // {data: data},
735
+ // {resolveMsg: null, rejectMsg: '表具类型查询失败!!!'}
736
+ // )
737
+ // this.userfile.f_meter_classify = res.data[0].f_meter_type
738
+ this.userfile.f_meter_classify = '物联网表'
739
+ },
740
+ // 地址拼接
741
+ addressSplicing () {
742
+ let f_area = this.userinfo.f_area || ''
743
+ let f_slice_area = this.userinfo.f_slice_area || ''
744
+ let f_street = this.userinfo.f_street || ''
745
+ let f_residential_area = this.userinfo.f_residential_area || ''
746
+ let f_building = this.userinfo.f_building || ''
747
+ let f_building_suffix = f_building ? '号楼' : ''
748
+ let f_unit = this.userinfo.f_unit || ''
749
+ let f_unit_suffix = f_unit ? '单元' : ''
750
+ let f_floor = this.userinfo.f_floor || ''
751
+ let f_floor_suffix = f_floor ? '层' : ''
752
+ let f_room = this.userinfo.f_room || ''
753
+ let f_room_suffix = f_room ? '室' : ''
754
+
755
+ Vue.set(this.userinfo, 'f_address', f_area + f_slice_area + f_street + f_residential_area + f_building + f_building_suffix + f_unit + f_unit_suffix + f_floor + f_floor_suffix + f_room + f_room_suffix)
756
+ },
757
+ // 选择小区
758
+ changeArea () {
759
+ if (isEmpty(this.area)) {
760
+ return
761
+ }
762
+
763
+ this.userinfo.f_area = this.area.f_area
764
+ this.userinfo.f_slice_area = this.area.f_slice_area
765
+ this.userinfo.f_street = this.area.f_street
766
+ this.userinfo.f_residential_area = this.area.f_residential_area
767
+ this.userinfo.f_residential_area_id = this.area.id
768
+ // this.addressSplicing()
769
+ },
770
+ openSign(){
771
+ this.getFiles()
772
+ this.Sign = true
773
+ },
774
+ importBefore(){
775
+ if (this.selectdata.f_apply_nature === '小区' && !this.selectdata.f_residential_area_id){
776
+ this.$showAlert('请选择小区/巷道后导入', 'warning', 3000)
777
+ }else {
778
+ this.showFile = !this.showFile
779
+ }
780
+ },
781
+ async getFiles() {
782
+ let http = new HttpResetClass()
783
+ console.log('=========pc签字查看===============')
784
+ let data = {
785
+ tablename: 't_files',
786
+ condition: `f_blobid = '${this.selectdata.f_process_id}' and defname = '工程施工' and fremarks = '报装手机签字文件'`
787
+ }
788
+ let res = await http.load('POST', `rs/sql/applySingleTable`, {data: data}, {
789
+ warnMsg: null,
790
+ resolveMsg: null
791
+ })
792
+ if(res.data.length > 0){
793
+ console.log('=========签字地址===============',res.data[0])
794
+ let URL = res.data[0].f_downloadpath.substring(res.data[0].f_downloadpath.lastIndexOf(":\\") + 2)
795
+ res.data[0].f_downloadURL = "http://" + location.host + "/" + URL
796
+ console.log("=====查看文件地址=====",res.data[0].f_downloadURL)
797
+ this.fileurl = res.data[0].f_downloadURL
798
+ }
799
+ },
800
+ // 打开安装明细
801
+ async openModal (row) {
802
+ this.ifDisable()
803
+ if (row) {
804
+ this.getDeviceList(row)
805
+ console.log('------------------修正---------------------',row)
806
+ this.userinfo = row
807
+
808
+
809
+ let data = {
810
+ tablename: 't_userfiles',
811
+ condition: `f_userinfo_id = ${row.f_userinfo_id}`
812
+ }
813
+ let http = new HttpResetClass()
814
+ let res = await http.load(
815
+ 'POST',
816
+ `rs/sql/applySingleTable`,
817
+ {data: data},
818
+ {resolveMsg: null, rejectMsg: '表档案查询失败!!!'}
819
+ )
820
+ this.userfile = res.data[0]
821
+
822
+ if (this.userfile.f_gasbrand_id === 0) {
823
+ this.userfile.f_gasbrand_id = null
824
+ }
825
+ if (this.userfile.f_gasmodel_id === 0) {
826
+ this.userfile.f_gasmodel_id = null
827
+ }
828
+
829
+ if (!isEmpty(this.userfile.f_gasbrand_id)) {
830
+ let data = {
831
+ f_gasbrand_id: this.userfile.f_gasbrand_id
832
+ }
833
+ let http = new HttpResetClass()
834
+ let res = await http.load(
835
+ 'POST',
836
+ `rs/sql/getGasModel`,
837
+ {data: data},
838
+ {resolveMsg: null, rejectMsg: '气表型号查询失败!!!'}
839
+ )
840
+
841
+ this.gasModelList = res.data
842
+ }
843
+ }
844
+ if (this.selectdata.f_residential_area_id) {
845
+ let data = {
846
+ tablename: 't_area_address',
847
+ condition: `id = '${this.selectdata.f_residential_area_id}'`
848
+ }
849
+ let http = new HttpResetClass()
850
+ let res = await http.load(
851
+ 'POST',
852
+ `rs/sql/applySingleTable`,
853
+ {data: data},
854
+ {resolveMsg: null, rejectMsg: '小区查询失败!!!'}
855
+ )
856
+
857
+ this.area = res.data[0]
858
+ this.selectArea(this.area.f_residential_area)
859
+ this.changeArea()
860
+ this.addressSplicing()
861
+ }
862
+
863
+ // 档案回填定位信息
864
+ this.userinfo.f_lng = this.selectdata.f_lng
865
+ this.userinfo.f_lat = this.selectdata.f_lat
866
+ this.userinfo.f_location_address = this.selectdata.f_order_address
867
+ if(!row){
868
+ // 档案回填用户信息
869
+ this.showUserInformation.f_user_name = this.selectdata.f_user_name
870
+ this.showUserInformation.f_user_phone = this.selectdata.f_phone
871
+ this.showUserInformation.f_credentials = this.selectdata.f_credentials
872
+ this.showUserInformation.f_idnumber = this.selectdata.f_idnumber
873
+ }
874
+ this.showModal = true
875
+ },
876
+ async getDeviceList(row){
877
+ let data = {
878
+ tablename: 't_devices',
879
+ condition: `f_userinfo_id = '${row.f_userinfo_id}'`
880
+ }
881
+ let http = new HttpResetClass()
882
+ let res = await http.load(
883
+ 'POST',
884
+ `rs/sql/applySingleTable`,
885
+ {data: data},
886
+ {resolveMsg: null, rejectMsg: '设备查询失败!!!'}
887
+ )
888
+ this.devicesinfo = res.data
889
+ },
890
+ // 获取气表品牌
891
+ async getMeterBrand () {
892
+ let data = {
893
+ }
894
+
895
+ let http = new HttpResetClass()
896
+ let res = await http.load(
897
+ 'POST',
898
+ `rs/sql/getMeterBrand`,
899
+ {data: data},
900
+ {resolveMsg: null, rejectMsg: '气表品牌查询失败!!!'}
901
+ )
902
+
903
+ this.meterBrandList = res.data
904
+ this.meterBrandList.push({label: '无', value: 'null'})
905
+ },
906
+ // 获取小区
907
+ async getAreaList () {
908
+ let data = {
909
+ tablename: 't_area_address',
910
+ condition: `f_filiale = '${this.$login.f.f_fengongsi?this.$login.f.f_fengongsi:'榆林.榆川天然气'}' and f_area_status = '启用'`
911
+ }
912
+ let http = new HttpResetClass()
913
+ let res = await http.load(
914
+ 'POST',
915
+ `rs/sql/applySingleTable`,
916
+ {data: data},
917
+ {resolveMsg: null, rejectMsg: '小区查询失败!!!'}
918
+ )
919
+ this.areaList = res.data.map(item => {
920
+ item.id = String(item.id)
921
+ return {
922
+ label: item.f_residential_area,
923
+ value: item
924
+ }
925
+ })
926
+ },
927
+ //搜索小区
928
+ selectArea (val) {
929
+ let pcdText = `and f_residential_area like '%${val}%'`
930
+ let data = {
931
+ tablename: 't_area_address',
932
+ condition: `f_filiale = '${this.$login.f.f_fengongsi?this.$login.f.f_fengongsi:'榆林.榆川天然气'}' and f_area_status = '启用' ${pcdText}`
933
+ }
934
+ new HttpResetClass().load("POST", `rs/sql/applySingleTable`, {data:data}, {resolveMsg: null, rejectMsg: null}).then((res)=>{
935
+ console.log('请求发送完成!!!!!'+JSON.stringify(res))
936
+ if(res.data.length>0){
937
+ this.areaList = res.data.map(item => {
938
+ item.id = String(item.id)
939
+ return {
940
+ label: item.f_residential_area,
941
+ value: item
942
+ }
943
+ })
944
+ }
945
+ })
946
+ },
947
+ searchCondition (args) {
948
+ if (this.selectdata.f_apply_type === '分户挂表') {
949
+ args.condition = args.condition + `and ui.f_userinfo_id = '${this.selectdata.f_userinfo_id}'`
950
+ } else {
951
+ args.condition = args.condition + `and ui.f_process_id = '${this.selectdata.f_process_id}'`
952
+ }
953
+
954
+ this.model.search(args.condition, args.model)
955
+ },
956
+ // 查询
957
+ async search () {
958
+ this.$refs.cp.$refs.cri.search()
959
+ },
960
+ // 关闭安装明细
961
+ closeUserFile() {
962
+ this.showModal = false
963
+ this.devicesinfo = []
964
+ this.area = {}
965
+ this.userinfo = {}
966
+ this.userfile = {}
967
+ this.gasModelList = {}
968
+ this.Sign = {}
969
+ this.showDeleteModel = false
970
+ this.search()
971
+ },
972
+ //关闭导入弹框
973
+ closeFile() {
974
+ this.showFile = false
975
+ // 将选的文件清空
976
+ this.$refs.file.$el.querySelector('input').value = ''
977
+ this.search()
978
+ },
979
+ progressQuery() {
980
+ console.log('导出进度开始查询')
981
+ this.progressShow = true
982
+ // 启动定时器之前先关闭定时器,防止之前的定时器未关闭
983
+ this.closeTimer()
984
+ // 立即执行一遍
985
+ this.progressTask()
986
+ this.timer = setInterval(this.progressTask, 3000)
987
+ },
988
+ async progressTask() {
989
+ let http = new HttpResetClass()
990
+ let res = await http.load('POST', `rs/logic/getBatchOperaPro`,{data: {uuid: this.uuid}}, {resolveMsg: null, rejectMsg: null})
991
+ res = res.data
992
+ console.log('进度数据', res)
993
+ if (res.result.type === 'error') {
994
+ this.$showAlert(`导入excel错误: ${res.result.msg}`, 'danger', 0)
995
+ await http.load('POST', `rs/logic/updateApplyInstallCount`,{data: this.selectdata}, {resolveMsg: null, rejectMsg: null})
996
+ this.close()
997
+ } else {
998
+ this.percent = Math.floor((res.current && res.total ? res.current/res.total*100 : 0)) + '%'
999
+
1000
+ console.log("导入当前进度",this.percent)
1001
+ // 进度100%
1002
+ if (this.percent === '100%') {
1003
+ await http.load('POST', `rs/logic/updateApplyInstallCount`,{data: this.selectdata}, {resolveMsg: null, rejectMsg: null})
1004
+ this.close()
1005
+ }
1006
+ }
1007
+ },
1008
+ // 关闭定时器
1009
+ closeTimer() {
1010
+ if (this.timer) {
1011
+ clearInterval(this.timer)
1012
+ this.timer = null
1013
+ }
1014
+ },
1015
+ guid() {
1016
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
1017
+ let r = Math.random() * 16 | 0,
1018
+ v = c == 'x' ? r : (r & 0x3 | 0x8)
1019
+ return v.toString(16)
1020
+ })
1021
+ },
1022
+ close() {
1023
+ this.closeTimer()
1024
+ this.progressShow = false
1025
+ this.percent = '0%'
1026
+ this.$dispatch('breakControl', this.selectdata)
1027
+ },
1028
+ },
1029
+ events: {
1030
+ async 'onFileUpload'(file, result) {
1031
+ this.uuid = this.guid();
1032
+ let data = {
1033
+ selectdata: this.selectdata,
1034
+ filepath: result.f_downloadpath,
1035
+ user: this.$login.f,
1036
+ mark: this.mark,
1037
+ uuid: this.uuid
1038
+ }
1039
+ let http = new HttpResetClass()
1040
+ let res = await http.load('POST',`rs/logic/importAddressAndUserinfo`, {data:data}, {
1041
+ resolveMsg: null, rejectMsg: '导入失败!!!', silent: true
1042
+ }, 0)
1043
+ this.showFile = false
1044
+ // 将选的文件清空
1045
+ this.$refs.file.$el.querySelector('input').value = ''
1046
+ this.progressQuery()
1047
+ }
1048
+ },
1049
+ computed: {
1050
+ getConditions () {
1051
+ return {
1052
+ condition: `ui.f_process_id = '${this.selectdata.f_process_id}'`,
1053
+ data: {
1054
+ userid: this.$login.f.id,
1055
+ f_filiale: this.$login.f.f_fengongsi
1056
+ }
1057
+ }
1058
+ },
1059
+ showDeleteUserInfo () {
1060
+ return this.selectdata.f_apply_type === '民用报建' &&
1061
+ (this.selectdata.defname === '报建受理' || this.selectdata.defname === '现场勘察')
1062
+ },
1063
+ newShowDeleteUserInfo () {
1064
+ return this.selectdata.f_apply_type === '设备拆除' && this.selectdata.defname === '核对气量'
1065
+ },
1066
+ showAddress () {
1067
+ return (this.selectdata.f_apply_type === '民用报建' || this.selectdata.f_apply_type === '设备拆除') && (this.selectdata.defname !== '工程施工')
1068
+ },
1069
+ showUserInfo () {
1070
+ return (this.selectdata.f_apply_type === '民用报建' && this.selectdata.f_apply_nature !== '分户挂表') || (this.selectdata.f_apply_type === '设备拆除')
1071
+ },
1072
+ showUserFile () {
1073
+ return (this.selectdata.f_apply_type === '民用报建' && this.selectdata.f_apply_nature !== '分户挂表' && this.selectdata.defname === '工程施工') ||
1074
+ this.selectdata.f_apply_type === '非民用报建' ||
1075
+ this.selectdata.f_apply_type === '设备变更' ||
1076
+ this.selectdata.f_apply_type === '设备拆除' ||
1077
+ this.selectdata.f_apply_type === '分户挂表'
1078
+ },
1079
+ showInstall () {
1080
+ return (this.showUserFile && (this.selectdata.defname === '工程施工' || this.selectdata.defname === '施工通气' ||
1081
+ this.selectdata.defname === '点火通气')) || (this.selectdata.f_apply_type === '设备拆除')
1082
+ },
1083
+ // 证件类型
1084
+ credentialsList() {
1085
+ return this.$appdata.getParam('证件类型')
1086
+ },
1087
+ // 安装人
1088
+ installperson() {
1089
+ return function (f_install_person) {
1090
+ if (isEmpty(f_install_person)) {
1091
+ return this.$login.f.name
1092
+ }
1093
+ return f_install_person
1094
+ }
1095
+ },
1096
+ // 安装时间
1097
+ installdate() {
1098
+ return function (f_install_date) {
1099
+ if (isEmpty(f_install_date)) {
1100
+ return new Date().Format('yyyy-MM-dd HH:mm:ss')
1101
+ }
1102
+ return f_install_date
1103
+ }
1104
+ },
1105
+ // 表向
1106
+ aroundmeters() {
1107
+ return this.$appdata.getParam('左右表')
1108
+ },
1109
+ // 安装位置
1110
+ positions() {
1111
+ return this.$appdata.getParam('安装位置')
1112
+ },
1113
+ getCondition () {
1114
+ return {
1115
+ condition: `ui.f_process_id = '${this.selectdata.f_process_id}'`,
1116
+ data: {
1117
+ userid: this.$login.f.id,
1118
+ f_filiale: this.$login.f.f_fengongsi
1119
+ }
1120
+ }
1121
+ }
1122
+ },
1123
+ watch: {
1124
+ }
1125
+ }
1126
+ </script>
1127
+ <style scoped>
1128
+ .head-but{
1129
+ margin-left: 5px;
1130
+ height: 34px;
1131
+ /*background-color: #6aa6e2;*/
1132
+ border-radius: 4px;
1133
+ font-family: PingFang;
1134
+ color: #ffffff;
1135
+ }
1136
+ /*清除model中的浮动*/
1137
+ .clearfix:after,.clearfix:before{
1138
+ display: table;
1139
+ }
1140
+ .clearfix:after{
1141
+ clear: both;
1142
+ }
1143
+ .input_view{
1144
+ background-color: #ffffff;
1145
+ border-radius: 2px;
1146
+ border: solid 1px #c7c7c7!important;
1147
+ color: #333333!important;
1148
+ font-size: 15px!important;
1149
+ }
1150
+
1151
+ .input_view[readonly]{
1152
+ border: 1px solid #DDD!important;
1153
+ color:#ACA899!important;
1154
+ }
1155
+ .input_view:disabled{
1156
+ border: 1px solid #DDD!important;
1157
+ color:#ACA899!important;
1158
+ }
1159
+ </style>