apply-clients 7.1.36-yuchuan-12 → 7.1.36-yuchuan-14

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 (72) hide show
  1. package/android.html +28 -28
  2. package/build/dev-server.js +25 -10
  3. package/index.html +39 -39
  4. package/package.json +1 -1
  5. package/src/apply.js +162 -161
  6. package/src/applyAndroid.js +97 -97
  7. package/src/components/android/AppSign.vue +235 -235
  8. package/src/components/android/AppUpload.vue +275 -275
  9. package/src/components/android/Ignition/VentilationIgnition.vue +408 -408
  10. package/src/components/android/Ignition/VentilationIgnitionHandle.vue +462 -462
  11. package/src/components/android/Process/AppExplorationUser.vue +454 -454
  12. package/src/components/android/Process/AppServiceControl.vue +1437 -1437
  13. package/src/components/android/Process/Processes/AppInstallationDetails.vue +980 -980
  14. package/src/components/android/Sign/AppSignTask.vue +183 -183
  15. package/src/components/android/Supervisory/AppProcessSupervisory.vue +344 -344
  16. package/src/components/android/Task/GuanXianJianShe/AppExplorationGuanXian.vue +317 -317
  17. package/src/components/android/Task/ShiGongXinXi/AppShowBuildUser.vue +431 -431
  18. package/src/components/android/Task/yiban/AppShowDone.vue +442 -442
  19. package/src/components/android/Task/yiban/ShowDone.vue +95 -95
  20. package/src/components/android/Task/yiban/satisfactionShow.vue +166 -166
  21. package/src/components/android/newPackage/customerServiceManager.vue +218 -218
  22. package/src/components/android/newPackage/projectPrice.vue +218 -218
  23. package/src/components/product/ApplyCharge/ApplyChargeList.vue +1 -1
  24. package/src/components/product/ApplyGaiXianCharge/ApplyGaiXianViewList.vue +272 -272
  25. package/src/components/product/ApplyGuanXian/GuanXianCaiLiao.vue +236 -236
  26. package/src/components/product/ApplyGuanXian/GuanXianExplorationSelect.vue +324 -324
  27. package/src/components/product/ApplyGuanXian/GuanXianExplorationUser.vue +144 -144
  28. package/src/components/product/ApplyGuanXian/GuanXianSupervisoryhCart.vue +119 -119
  29. package/src/components/product/ApplyMap/AMapLocation.vue +871 -0
  30. package/src/components/product/ApplyMap/ApplyDragaboutList.vue +223 -223
  31. package/src/components/product/ApplyMap/ApplyInputSearch.vue +212 -212
  32. package/src/components/product/ApplyMap/ApplyMapCom.vue +82 -82
  33. package/src/components/product/ApplyMap/ApplyMapInputSearch.vue +335 -335
  34. package/src/components/product/ApplyMap/ApplyMapLocation.vue +862 -862
  35. package/src/components/product/ChongZheng/ApplyChongZhengList.vue +415 -415
  36. package/src/components/product/Function/InstallFunction.vue +133 -133
  37. package/src/components/product/Function/InstallInfoSelect.vue +371 -371
  38. package/src/components/product/Function/Service/FunctionServiceControl.vue +586 -586
  39. package/src/components/product/GongJianPush/ApplyPushManage.vue +90 -90
  40. package/src/components/product/Ignition/IgnitionListManage.vue +602 -602
  41. package/src/components/product/Ignition/IgnitionRecord.vue +380 -380
  42. package/src/components/product/InsuranceApply/InsuranceReport.vue +1 -2
  43. package/src/components/product/List/OldShowDevices.vue +271 -271
  44. package/src/components/product/List/ShowAllActivity.vue +540 -540
  45. package/src/components/product/List/ShowDevices.vue +279 -279
  46. package/src/components/product/Print/BuildOrder/buildOrderList.vue +446 -446
  47. package/src/components/product/Process/ExplorationSelect.vue +597 -597
  48. package/src/components/product/Process/ExplorationUser.vue +158 -158
  49. package/src/components/product/Process/New1ExplorationUser.vue +201 -201
  50. package/src/components/product/Process/NewExplorationSelect.vue +586 -586
  51. package/src/components/product/Process/NewExplorationUser.vue +219 -219
  52. package/src/components/product/Process/Processes/InstallationDetails.vue +1159 -1159
  53. package/src/components/product/Process/Processes/Print/printCharge.vue +250 -250
  54. package/src/components/product/Process/Processes/Print/printGaiXianCharge.vue +244 -244
  55. package/src/components/product/Process/Processes/chargeManagement.vue +704 -704
  56. package/src/components/product/Process/Processes/devicesManagement.vue +393 -393
  57. package/src/components/product/Process/Processes/newDevicesManagement.vue +413 -413
  58. package/src/components/product/Process/Processes/selectChaiChuUserinfo.vue +230 -230
  59. package/src/components/product/Process/Processes/selectOldUserinfo.vue +241 -241
  60. package/src/components/product/Process/Processes/selectUserinfo.vue +234 -234
  61. package/src/components/product/Process/Service/ServiceControl.vue +2205 -2205
  62. package/src/components/product/ServiceView.vue +644 -644
  63. package/src/components/product/Stop/StopApplyList.vue +224 -224
  64. package/src/components/product/Supervisory/NewSupervisoryhCart.vue +175 -175
  65. package/src/components/product/Supervisory/Service/SupervisoryServiceControl.vue +592 -592
  66. package/src/components/product/Supervisory/SupervisoryControl.vue +116 -116
  67. package/src/components/product/Supervisory/SupervisoryList.vue +557 -557
  68. package/src/components/product/Supervisory/SupervisoryhCart.vue +119 -119
  69. package/src/components/product/Supervisory/YiBanSupervisoryList.vue +539 -539
  70. package/src/components/product/VueUtils/ApplyUpload.vue +285 -285
  71. package/src/components/product/records/AdjustmentRecordList.vue +162 -162
  72. package/src/main.js +27 -27
@@ -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?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?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?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?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?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>