sale-client 3.6.21 → 3.6.23

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 (88) hide show
  1. package/build/dev-server.js +1 -1
  2. package/package.json +2 -2
  3. package/src/components/FilesManage/FileUserFiles.vue +1014 -1014
  4. package/src/components/FilesManage/FileUserMerge.vue +203 -203
  5. package/src/components/FilesManage/UserPaperInfoTest.vue +58 -51
  6. package/src/components/FilesManageNew/FileUserFiles.vue +756 -756
  7. package/src/components/FilesManageNew/FileUserMerge.vue +202 -202
  8. package/src/components/charge/business/CardMeterCenter.vue +944 -944
  9. package/src/components/charge/business/IOTMeterCenter.vue +793 -793
  10. package/src/components/charge/business/OtherChargeNew.vue +550 -550
  11. package/src/components/charge/business/machine/MachineMeterCenter.vue +676 -676
  12. package/src/components/charge/gasloss/gasLossOperate.vue +383 -383
  13. package/src/components/newBill/CardMeterCenter.vue +902 -902
  14. package/src/components/newBill/IOTMeterCenter.vue +797 -797
  15. package/src/components/revenue/Common/EticketModal.vue +95 -90
  16. package/src/components/revenue/comprehen/Maintenance/T+MoneyDocking/moneyDocking.vue +202 -202
  17. package/src/components/revenue/comprehen/SpecialUser/BasicLiving/BasicLivingList.vue +280 -280
  18. package/src/filiale/alashan/business/CardMeterCenter.vue +897 -897
  19. package/src/filiale/ancheng/FilesManage/FileUserFiles.vue +1010 -1010
  20. package/src/filiale/ancheng/FilesManageNew/FileUserFiles.vue +763 -763
  21. package/src/filiale/chengtou/components/FilesManage/FileUserFiles.vue +1019 -1019
  22. package/src/filiale/chengtou/components/OtherChargeNew.vue +549 -549
  23. package/src/filiale/dongguan/components/FilesManage/FileUserFiles.vue +1037 -1037
  24. package/src/filiale/gaomi/components/FilesManage/FileUserFiles.vue +934 -934
  25. package/src/filiale/gehua/CardMeterCenter.vue +898 -898
  26. package/src/filiale/gehua/FileManageNew/FileUserFiles.vue +769 -769
  27. package/src/filiale/gehua/FileUserFiles.vue +1007 -1007
  28. package/src/filiale/gehua/IOTMeterCenter.vue +791 -791
  29. package/src/filiale/gehua/MachineMeterCenter.vue +685 -685
  30. package/src/filiale/gehua/OtherChargeNew.vue +558 -558
  31. package/src/filiale/guangxi/CardMeterCenter.vue +891 -891
  32. package/src/filiale/guangxi/IOTMeterCenter.vue +774 -774
  33. package/src/filiale/guangxi/MachineMeterCenter.vue +622 -622
  34. package/src/filiale/haile/MachineMeterCenter.vue +762 -762
  35. package/src/filiale/huayin/CardMeterCenter.vue +903 -903
  36. package/src/filiale/huayin/FileUserFiles.vue +1007 -1007
  37. package/src/filiale/huayin/IOTMeterCenter.vue +796 -796
  38. package/src/filiale/huayin/MachineMeterCenter.vue +680 -680
  39. package/src/filiale/jingwei/CardMeterCenter.vue +870 -870
  40. package/src/filiale/jingwei/FileUserFiles.vue +905 -905
  41. package/src/filiale/jingwei/ShowCardSellGas.vue +903 -903
  42. package/src/filiale/kelai/CardMeterCenter.vue +934 -934
  43. package/src/filiale/kelai/FileUserFiles.vue +762 -762
  44. package/src/filiale/kelai/IOTMeterCenter.vue +833 -833
  45. package/src/filiale/kelai/MachineMeterCenter.vue +705 -705
  46. package/src/filiale/konggang/FileUserFiles.vue +990 -990
  47. package/src/filiale/liaoyuan/FileUserFiles.vue +844 -844
  48. package/src/filiale/macheng/CardMeterCenter.vue +939 -939
  49. package/src/filiale/macheng/FileUserFiles.vue +930 -930
  50. package/src/filiale/meihekou/FileUserFiles.vue +995 -995
  51. package/src/filiale/ningjin/FileUserFiles.vue +1020 -1020
  52. package/src/filiale/qianneng/OtherChargeNew.vue +544 -544
  53. package/src/filiale/qianneng/eticket/EticketModal.vue +96 -91
  54. package/src/filiale/qianneng/eticket/EticketPrint.vue +377 -376
  55. package/src/filiale/qianneng/eticket/EticketRecordList.vue +309 -289
  56. package/src/filiale/qianneng/machine/MachineMeterCenter.vue +676 -676
  57. package/src/filiale/rizhao/FileUserFiles.vue +984 -984
  58. package/src/filiale/rizhao/IOTMeterCenter.vue +795 -795
  59. package/src/filiale/rongcheng/FileUserFiles.vue +881 -881
  60. package/src/filiale/rongcheng/FilesManageNew/FileUserFiles.vue +732 -732
  61. package/src/filiale/rongcheng/FilesManageNew/FileUserMerge.vue +202 -202
  62. package/src/filiale/shanggao/FileUserFiles.vue +995 -995
  63. package/src/filiale/shangluo/CardMeterCenter.vue +892 -892
  64. package/src/filiale/shangluo/IOTMeterCenter.vue +797 -797
  65. package/src/filiale/shangluo/MachineMeterCenter.vue +734 -734
  66. package/src/filiale/shanxian/OtherChargeNew.vue +561 -561
  67. package/src/filiale/shanxian/components/FilesManage/FileUserFiles.vue +1004 -1004
  68. package/src/filiale/shanxian/components/FilesManageNew/FileUserFiles.vue +756 -756
  69. package/src/filiale/shanxian/components/revenue/CardMeterCenter.vue +944 -944
  70. package/src/filiale/shaoguan/FilesManage/FileUserFiles.vue +881 -881
  71. package/src/filiale/shaoguan/FilesManageNew/FileUserFiles.vue +734 -734
  72. package/src/filiale/shexian/FilesManage/FileUserFiles.vue +991 -991
  73. package/src/filiale/tongchuan/BasicLivingList.vue +253 -253
  74. package/src/filiale/tongchuan/CardMeterCenter.vue +923 -923
  75. package/src/filiale/tongchuan/FileUserFiles.vue +1206 -1206
  76. package/src/filiale/tongchuan/bill/EticketModal.vue +90 -90
  77. package/src/filiale/tongchuan/filemanagenew/FileUserFiles.vue +842 -842
  78. package/src/filiale/wenxi/CardMeterCenter.vue +942 -942
  79. package/src/filiale/wenxi/FileUserFiles.vue +1032 -1032
  80. package/src/filiale/wenxi/IOTMeterCenter.vue +774 -774
  81. package/src/filiale/wuan/FileUserFiles.vue +1006 -1006
  82. package/src/filiale/wuhai/CardMeterCenter.vue +945 -945
  83. package/src/filiale/wuhai/IOTMeterCenter.vue +757 -757
  84. package/src/filiale/yuansheng/CardMeterCenter.vue +950 -950
  85. package/src/filiale/yuansheng/IOTMeterCenter.vue +788 -788
  86. package/src/filiale/zhongsheng/FilesManage/FileUserFiles.vue +1038 -1038
  87. package/src/filiale/zhongyi/FileUserFiles.vue +1020 -1020
  88. package/src/main.js +27 -27
@@ -1,1206 +1,1206 @@
1
- <template>
2
- <div v-show='!isShowDetailInfo' id="file-user-files" class="binary">
3
- <div :class="{'basic-main': !createFile,'binary-left': createFile}" >
4
- <div class="flex" style="flex: 1;">
5
- <div style="flex: 1.2">
6
- <criteria-paged :model="model" v-ref:paged @sort="sort">
7
- <criteria @condition-changed="$parent.selfSearch" partial='criteria' v-ref:criteria>
8
- <div class="form-horizontal select-overspread container-fluid auto" novalidate partial>
9
- <div class="row">
10
- <res-select-group :initres="$parent.$parent.initres"
11
- :show-component="['company','department','operator']"
12
- @re-res="$parent.$parent.getRes"
13
- v-ref:sel></res-select-group>
14
- <!-- <div-->
15
- <!-- :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"-->
16
- <!-- class="form-group" v-if="!$parent.$parent.createFile">-->
17
- <!-- <label class="font_normal_body">组织机构</label>-->
18
- <!-- <res-select-->
19
- <!-- :initresid='$parent.$parent.curorgid'-->
20
- <!-- @res-select="$parent.$parent.getorg"-->
21
- <!-- is-mul="false"-->
22
- <!-- restype='organization'-->
23
- <!-- >-->
24
- <!-- </res-select>-->
25
- <!-- </div>-->
26
- <div
27
- :class="{'col-sm-3':$parent.$parent.clientWidth>1600||!$parent.$parent.createFile,'col-sm-4':$parent.$parent.clientWidth<1600&&$parent.$parent.createFile}"
28
- class="form-group button-range">
29
- <!--<button class="button_search button_spacing" style="width: 90px" @click="$parent.$parent.showFileInfo()">查看批量状态-->
30
- <!--</button>-->
31
-
32
- <button @click="search(), $parent.$parent.clean()" class="button_search button_spacing"
33
- style="float: right">查询
34
- </button>
35
- <button @click="$parent.$parent.clear()" class="button_clear button_spacing"
36
- style="float: right">清空
37
- </button>
38
- <button @click="$parent.$parent.createnewfile()" class="button_search button_spacing"
39
- style="float: right">单户建档
40
- </button>
41
- <button class="button_search button_spacing" style="width: 90px" @click="$parent.$parent.createInfoForFile()">批量建档
42
- </button>
43
- <button @click="$parent.$parent.importFile" class="button_export button_spacing"
44
- style="float: right" v-if="false">导入
45
- </button>
46
- <!-- <button class="button_search" style="width: 90px" @click=" $parent.$parent.selectaddress()">选择地址</button>-->
47
- <button @click="$parent.$parent.xiaohu()"
48
- class="button_delete button_spacing"
49
- style="float: right"
50
- v-if="$parent.$parent.rows && $parent.$parent.rows.length > 1 && this.$login.r.includes('批量销户')">
51
- 批量销户
52
- </button>
53
- <button @click="$parent.$parent.bulkOperations('批量销户', 'batch-cancellation')"
54
- class="button_delete button_spacing"
55
- style="float: right"
56
- v-if="$parent.$parent.rows && $parent.$parent.rows.length === 1 && $parent.$parent.rows[0].f_user_state === '正常'">
57
- 销户
58
- </button>
59
- <button @click="$parent.$parent.bulkOperations('批量启用', 'batch-enable')"
60
- class="button_search button_spacing"
61
- style="float: right"
62
- v-if="$parent.$parent.rows && $parent.$parent.rows.length === 1 && $parent.$parent.rows[0].f_user_state === '销户'">
63
- 启用
64
- </button>
65
- <div
66
- :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
67
- @click="$parent.$parent.hidden()"
68
- class="button_spacing"
69
- style="float: right"></div>
70
- </div>
71
- </div>
72
- <div class="row" v-if="$parent.$parent.criteriaShow">
73
- <div
74
- :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
75
- class="form-group"
76
- v-if="$parent.$parent.clientWidth>1600">
77
- <label class="font_normal_body">客户编号</label>
78
- <input class="input_search" condition="f_userinfo_code like '%{}%'"
79
- placeholder='客户编号'
80
- style="width:60%" type="text" v-model="model.f_userinfo_code">
81
- </div>
82
- <div
83
- :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
84
- class="form-group"
85
- v-if="$parent.$parent.clientWidth<1600&&!$parent.$parent.createFile">
86
- <label class="font_normal_body">客户编号</label>
87
- <input class="input_search" condition="f_userinfo_code like '%{}%'"
88
- placeholder='客户编号'
89
- style="width:60%" type="text" v-model="model.f_userinfo_code">
90
- </div>
91
- <div
92
- :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
93
- class="form-group" v-if="!$parent.$parent.createFile">
94
- <label class="font_normal_body">客户名称</label>
95
- <input class="input_search" condition="f_user_name like '%{}%'"
96
- placeholder='客户姓名'
97
- style="width:60%" type="text" v-model="model.f_user_name">
98
- </div>
99
-
100
- <!-- <div-->
101
- <!-- :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"-->
102
- <!-- class="form-group" v-if="$parent.$parent.createFile">-->
103
- <!-- <label class="font_normal_body">组织机构</label>-->
104
- <!-- <res-select-->
105
- <!-- :initresid='$parent.$parent.curorgid'-->
106
- <!-- @res-select="$parent.$parent.getorg"-->
107
- <!-- is-mul="false"-->
108
- <!-- restype='organization'-->
109
- <!-- >-->
110
- <!-- </res-select>-->
111
- <!-- </div>-->
112
- <div
113
- :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
114
- class="form-group"
115
- v-if="$parent.$parent.clientWidth<1600&&$parent.$parent.createFile">
116
- <label class="font_normal_body">客户编号</label>
117
- <input class="input_search" condition="f_userinfo_code like '%{}%'"
118
- placeholder='客户编号'
119
- style="width:60%" type="text" v-model="model.f_userinfo_code">
120
- </div>
121
-
122
- <div
123
- :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
124
- class="form-group" v-if="$parent.$parent.createFile">
125
- <label class="font_normal_body">客户名称</label>
126
- <input class="input_search" condition="f_user_name = '{}'"
127
- placeholder='客户姓名'
128
- style="width:60%" type="text" v-model="model.f_user_name">
129
- </div>
130
- <div class="form-group" :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}">
131
- <label class="font_normal_body">表&emsp;&emsp;号</label>
132
- <input class="input_search" condition="f_meternumber like '%{}%'" placeholder='表号' style="width:60%"
133
- type="text" v-model="model.f_meternumber">
134
- </div>
135
- <div :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
136
- class="form-group">
137
- <label class="font_normal_body">开户时间</label>
138
- <datepicker :format="'yyyy-MM-dd'" :value.sync="model.f_start_date"
139
- class="datepicker"
140
- condition="f_open_date >= '{} 00:00:00' "
141
- placeholder="起始时间"
142
- style="width:60%"
143
- v-model="model.f_start_date"
144
- ></datepicker>
145
- </div>
146
- <div :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
147
- class="form-group" >
148
- <label class="font_normal_body" >&emsp;&ensp;至&emsp;&ensp;</label>
149
- <datepicker :format="'yyyy-MM-dd'" :value.sync="model.f_end_date"
150
- class="datepicker"
151
- condition="f_open_date <= '{} 23:59:59' "
152
- placeholder="结束时间"
153
- style="width:60%"
154
- v-model="model.f_end_date"
155
- ></datepicker>
156
- </div>
157
- <div
158
- :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
159
- class="form-group">
160
- <label class="font_normal_body">&emsp;建档人</label>
161
- <input class="input_search" condition="f_createfile_person like '%{}%'" placeholder='建档人' style="width:60%"
162
- type="text" v-model="model.f_createfile_person">
163
- </div>
164
- <div
165
- :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
166
- class="form-group">
167
- <label class="font_normal_body">用户类型</label>
168
- <v-select :options='$parent.$parent.user_type' :value.sync="model.f_user_type"
169
- close-on-select condition="f_user_type='{}'"
170
- placeholder='用户类型' v-model="model.f_user_type"></v-select>
171
- </div>
172
- <div
173
- :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
174
- class="form-group">
175
- <label class="font_normal_body">用气性质</label>
176
- <v-select :options='$parent.$parent.gasproperties' :value.sync="model.f_gasproperties"
177
- close-on-select condition="f_gasproperties='{}'"
178
- placeholder='用气性质' v-model="model.f_gasproperties"></v-select>
179
- </div>
180
- <div
181
- :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
182
- class="form-group">
183
- <label class="font_normal_body" title="二级用气性质">二级性质</label>
184
- <v-select :options='$parent.$parent.gaspropertiessecond' :value.sync="model.f_gasproperties_second"
185
- close-on-select condition="f_gasproperties_second='{}'"
186
- placeholder='二级用气性质' v-model="model.f_gasproperties_second"></v-select>
187
- </div>
188
- <div
189
- :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
190
- class="form-group">
191
- <label class="font_normal_body">气表类型</label>
192
- <v-select :options='$parent.$parent.meter_classify' :value.sync="model.f_meter_classify"
193
- close-on-select condition="f_meter_classify='{}'"
194
- placeholder='气表类型' v-model="model.f_meter_classify"></v-select>
195
- </div>
196
- <div
197
- :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
198
- class="form-group">
199
- <label class="font_normal_body">气价名称</label>
200
- <v-select :value.sync="model.f_price_name"
201
- v-model="model.f_price_name"
202
- :options="$parent.$parent.getPricenames"
203
- placeholder='请选择'
204
- condition="f_price_name = '{}'"
205
- close-on-select></v-select>
206
- </div>
207
- <div class="form-group" :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}">
208
- <label class="font_normal_body">气表品牌</label>
209
- <v-select :value.sync="model.f_meter_brand" multiple
210
- v-model="model.f_meter_brand"
211
- :options='$parent.$parent.meterbrands' placeholder='请选择'
212
- condition="f_meter_brand in {}"
213
- close-on-select></v-select>
214
- </div>
215
- <div
216
- :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
217
- class="form-group">
218
- <label class="font_normal_body">客户状态</label>
219
- <v-select :options='$parent.$parent.userstates' :value.sync="model.f_user_state"
220
- close-on-select condition="f_user_state='{}'"
221
- placeholder='客户状态' v-model="model.f_user_state"></v-select>
222
- </div>
223
- <!-- <div-->
224
- <!-- :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"-->
225
- <!-- class="form-group">-->
226
- <!-- <label class="font_normal_body">气表品牌</label>-->
227
- <!-- <v-select :options='$parent.$parent.meter_brand' :value.sync="model.f_meter_brand"-->
228
- <!-- close-on-select condition="f_meter_brand='{}'"-->
229
- <!-- placeholder='气表品牌' v-model="model.f_meter_brand"></v-select>-->
230
- <!-- </div>-->
231
- <div
232
- :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
233
- class="form-group">
234
- <label class="font_normal_body">小&emsp;&emsp;区</label>
235
- <input class="input_search" condition="f_residential_area like '%{}%'" placeholder='小区' style="width:60%"
236
- type="text" v-model="model.f_residential_area">
237
- </div>
238
- <div
239
- :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
240
- class="form-group">
241
- <label class="font_normal_body">客户地址</label>
242
- <input class="input_search" condition="f_address like '%{}%'" placeholder='客户地址' style="width:60%"
243
- type="text" v-model="model.f_address">
244
- </div>
245
- <div
246
- :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
247
- class="form-group">
248
- <label class="font_normal_body">发卡状态</label>
249
- <v-select :options='$parent.$parent.f_whether_hairpin' :value.sync="model.f_whether_hairpin"
250
- close-on-select condition="f_whether_hairpin = '{}'"
251
- placeholder='发卡状态' v-model="model.f_whether_hairpin"></v-select>
252
- </div>
253
- <div
254
- :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
255
- class="form-group">
256
- <label class="font_normal_body" title="参数:场站">场&emsp;&emsp;站</label>
257
- <v-select :options='$parent.$parent.userfilesaddress' :value.sync="model.f_userfiles_address"
258
- condition="f_userfiles_address in {}"
259
- :multiple="true"
260
- placeholder='场站' v-model="model.f_userfiles_address"></v-select>
261
- </div>
262
- <div
263
- :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
264
- class="form-group">
265
- <label class="font_normal_body" title="参数:场站">供气方式</label>
266
- <v-select :options='$parent.$parent.feedmethod' :value.sync="model.f_feed_method"
267
- condition="f_feed_method = '{}'"
268
- placeholder='供气方式' v-model="model.f_feed_method"></v-select>
269
- </div>
270
- <div
271
- :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
272
- class="form-group">
273
- <label class="font_normal_body">客户电话</label>
274
- <input class="input_search" condition="f_user_phone = '{}'" placeholder='客户电话' style="width:60%"
275
- type="text"
276
- v-model="model.f_user_phone">
277
- </div>
278
- <!-- <div class="col-sm-2 form-group">-->
279
- <!-- <label class="font_normal_body">操&ensp;作&ensp;员</label>-->
280
- <!-- <input type="text" class="input_search" style="width:60%" v-model="model.f_operator" style="width:60%"-->
281
- <!-- condition="f_operator like '%{}%'" placeholder="操作员"-->
282
- <!-- />-->
283
- <!-- </div>-->
284
- <div
285
- :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
286
- class="form-group">
287
- <label class="font_normal_body" style="width: auto">天然气证</label>
288
- <v-select :options='$parent.$parent.usegas' :value.sync="model.f_send_usegas_card"
289
- close-on-select condition="f_send_usegas_card='{}'"
290
- placeholder='天然气使用证' v-model="model.f_send_usegas_card"></v-select>
291
- </div>
292
- <div
293
- :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
294
- class="form-group">
295
- <label class="font_normal_body">调&ensp;压&ensp;箱</label>
296
- <v-select :options='$parent.$parent.adjustables' :search='true'
297
- :value.sync="model.f_adjustable_id"
298
- close-on-select
299
- condition="f_adjustable_id = '{}'" placeholder='调压箱'
300
- v-model='model.f_adjustable_id'></v-select>
301
- </div>
302
- <div
303
- :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
304
- class="form-group">
305
- <label class="font_normal_body">用户等级</label>
306
- <v-select :options='$parent.$parent.userlevel' :search='true'
307
- :value.sync="model.userlevel"
308
- close-on-select
309
- condition="f_user_level = '{}'" placeholder='用户等级'
310
- v-model='model.userlevel'></v-select>
311
- </div>
312
- <div
313
- :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
314
- class="form-group">
315
- <label class="font_normal_body">用气设备</label>
316
- <v-select :options='$parent.$parent.devicestype' :value.sync="model.f_devices_type"
317
- close-on-select condition="f_devices_type ='{}'"
318
- placeholder='用气设备' v-model="model.f_devices_type"></v-select>
319
- </div>
320
- <div
321
- :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
322
- class="form-group">
323
- <label class="font_normal_body">选择区域</label>
324
- <v-select
325
- v-model="model.f_pcd"
326
- placeholder='选择区域'
327
- :value.sync="model.f_pcd"
328
- :options='$parent.$parent.pcdslist'
329
- condition="f_pcd_id = '{}'"
330
- style="width: 60%"
331
- close-on-select >
332
- </v-select>
333
- </div>
334
- </div>
335
- </div>
336
- </criteria>
337
- <data-grid :model="model" class="list_area table_sy" v-ref:grid partial='list'>
338
- <template partial='head'>
339
- <tr>
340
- <th>
341
- <nobr>序号</nobr>
342
- </th>
343
- <th>
344
- <nobr>客户编号</nobr>
345
- </th>
346
- <th>
347
- <nobr>表号</nobr>
348
- </th>
349
- <th>
350
- <nobr>客户名称</nobr>
351
- </th>
352
- <th>
353
- <nobr>客户电话</nobr>
354
- </th>
355
- <th v-if="!$parent.$parent.$parent.isOper">
356
- <nobr>地址信息</nobr>
357
- </th>
358
- <th>
359
- <nobr>用户类型</nobr>
360
- </th>
361
- <th>
362
- <nobr>用气性质</nobr>
363
- </th>
364
- <th>
365
- <nobr>二级用气性质</nobr>
366
- </th>
367
- <th>
368
- <nobr>气表类型</nobr>
369
- </th>
370
- <th>
371
- <nobr>气表品牌</nobr>
372
- </th>
373
- <th>
374
- <nobr>气价名称</nobr>
375
- </th>
376
- <th>
377
- <nobr>发卡状态</nobr>
378
- </th>
379
- <th v-if="!$parent.$parent.$parent.createFile">
380
- <nobr>开户时间</nobr>
381
- </th>
382
- <th v-if="!$parent.$parent.$parent.createFile">
383
- <nobr>建档人</nobr>
384
- </th>
385
- <th v-if="!$parent.$parent.$parent.createFile">
386
- <nobr>场站</nobr>
387
- </th>
388
- <th v-if="!$parent.$parent.$parent.createFile">
389
- <nobr>供气方式</nobr>
390
- </th>
391
- <th v-if="!$parent.$parent.$parent.createFile">
392
- <nobr>状态</nobr>
393
- </th>
394
- <th v-if="!$parent.$parent.$parent.createFile">
395
- <nobr>用户等级</nobr>
396
- </th>
397
- <th v-if="!$parent.$parent.$parent.createFile">
398
- <nobr>所属公司</nobr>
399
- </th>
400
- <!--<th>-->
401
- <!--<nobr v-if="this.$login.r.includes('通知单打印')||this.$login.r.includes('流程表打印') ">下载</nobr>-->
402
- <!--</th>-->
403
- <th>
404
- <nobr>操作</nobr>
405
- </th>
406
- </tr>
407
- </template>
408
- <template partial='body'>
409
- <td style="text-align: center;">{{$index + 1}}</td>
410
- <td style="text-align: center;">
411
- <span @click="$parent.$parent.$parent.dealmsg(row)"><a><b>{{row.f_userinfo_code}}</b></a></span>
412
- </td>
413
- <td style="text-align: center;">{{row.f_meternumber}}</td>
414
- <td style="text-align: center;">{{row.f_user_name}}</td>
415
- <td style="text-align: center;">{{row.f_user_phone}}</td>
416
- <td style="text-align: center;" v-if="!$parent.$parent.$parent.isOper">{{row.f_address_detail ? row.f_address + row.f_address_detail :
417
- row.f_address}}
418
- </td>
419
- <td style="text-align: center;">{{row.f_user_type}}</td>
420
- <td style="text-align: center;">{{row.f_gasproperties}}</td>
421
- <td style="text-align: center;">{{row.f_gasproperties_second}}</td>
422
- <td style="text-align: center;">{{row.f_meter_classify}}</td>
423
- <td style="text-align: center;">{{row.f_meter_brand}}</td>
424
- <td style="text-align: center;">{{row.f_price_name}}</td>
425
- <td style="text-align: center;">{{row.f_whether_hairpin}}</td>
426
- <td style="text-align: center;" v-if="!$parent.$parent.$parent.createFile">{{row.f_open_date}}</td>
427
- <td style="text-align: center;" v-if="!$parent.$parent.$parent.createFile">{{row.f_createfile_person}}</td>
428
- <td style="text-align: center;" v-if="!$parent.$parent.$parent.createFile">{{row.f_userfiles_address}}</td>
429
- <td style="text-align: center;" v-if="!$parent.$parent.$parent.createFile">{{row.f_feed_method}}</td>
430
- <td style="text-align: center;" v-if="!$parent.$parent.$parent.createFile">{{row.f_user_state}}</td>
431
- <td style="text-align: center;" v-if="!$parent.$parent.$parent.createFile">{{row.f_user_level}}</td>
432
- <td style="text-align: center;" v-if="!$parent.$parent.$parent.createFile">{{row.f_orgname}}</td>
433
- <td style="text-align: center;">
434
- <button type="button" name="button" class="button_search button_spacing width-60"
435
- v-if="row.f_user_state === '正常' || row.f_user_state==='预备'"
436
- @click.stop="$parent.$parent.$parent.modifyUser(row)">修正
437
- </button>
438
- </td>
439
- </template>
440
- </data-grid>
441
- </criteria-paged>
442
- </div>
443
-
444
- <modal v-if="batcan || batenable" :show.sync="batcan || batenable" width="1500px" v-ref:modal large backdrop="false">
445
- <article slot="modal-body" class="modal-body">
446
- <batch-cancellation v-if="batcan" :useraccount="model.rows" @clean="batchClean"
447
- @success="batchSuccess"></batch-cancellation>
448
- <batch-enable v-if="batenable" :useraccount="model.rows" @clean="batchClean"
449
- @success="batchSuccess"></batch-enable>
450
- </article>
451
- <footer slot="modal-footer" class="modal-footer">
452
- </footer>
453
- </modal>
454
-
455
-
456
- </div>
457
- </div>
458
- <div class="binary-right" :style="{width:'70%'}" v-if="createFile">
459
- <div class="auto" style="height: 100%; margin-top: 1%" >
460
- <file-user-general-info :f_filialeid="f_filialeid" :orgs="orgs" :initres="initres" :row="row" :areainfo="areainfo"
461
- :haslimit="config.hasLimit" @success="renew" @clean="clean"
462
- :isedit="isedit"
463
- @build-success="buildFileSuccess" v-ref:info></file-user-general-info>
464
- </div>
465
- </div>
466
-
467
- <modal :show.sync="show" width="500px" title="文件导入" v-ref:modal large backdrop="false">
468
- <article slot="modal-body" class="modal-body">
469
- <file-upload class="my-file-uploader " name="UploadFile" class="btn btn-success" style="border-radius: 2px;"
470
- action="rs/file/uploadFile" tagname="导入档案" v-ref:file :headers="headers"></file-upload>
471
- </article>
472
- <footer slot="modal-footer" class="modal-footer">
473
- </footer>
474
- </modal>
475
- <modal :show.sync="batchMeterShow" width="500px" title="文件导入" v-ref:modal large backdrop="false">
476
- <article slot="modal-body" class="modal-body">
477
- <file-upload class="my-file-uploader" name="useraddressUploadFile" action="rs/file/uploadFile" tagname="确定" multiple v-ref:file></file-upload>
478
- </article>
479
- <footer slot="modal-footer" class="modal-footer">
480
- </footer>
481
- </modal>
482
-
483
- <modal :show.sync="xiaohushow" width="500px" title="批量销户" v-ref:modal large backdrop="false">
484
- <article slot="modal-body" class="modal-body" style="height: 70px">
485
- <div>
486
- <label class="font_normal_body" style="line-height: 20px">销户原因</label>
487
- <input class="input_search"
488
- placeholder='销户原因'
489
- type="text" v-model="xiaohureason">
490
- </div>
491
- </article>
492
- <footer slot="modal-footer" class="modal-footer">
493
- <button class="button_search button_spacing" type="button" @click="batchCancellation()">确认</button>
494
- <button class="button_search button_spacing" type="button" @click="closexiaohu()">取消</button>
495
- </footer>
496
- </modal>
497
- <modal :show.sync="resshow" width="500px" title="建档成功" v-ref:modal large backdrop="false">
498
- <article slot="modal-body" class="modal-body" style="height: 70px">
499
- <div>
500
- <label class="font_normal_body" style="line-height: 20px">客户编号</label>
501
- <input class="input_search" condition="f_userinfo_code = '{}'"
502
- placeholder='客户编号' disabled
503
- type="text" v-model="resdata">
504
- </div>
505
- </article>
506
- <footer slot="modal-footer" class="modal-footer">
507
- <button class="button_search button_spacing" type="button" @click="doCopy()">复制</button>
508
- <button class="button_search button_spacing" type="button" @click="close2()">取消</button>
509
- </footer>
510
- </modal>
511
- <!--<user-flow-sheet :show="printflag" :bill-config='configs' :bill-data='billData' :data='newdata' v-on:toggle="close" @printok="printok" v-ref:printbill></user-flow-sheet>-->
512
-
513
- <work-busy :is-busy="iswork" v-show="iswork"></work-busy>
514
- </div>
515
- <div v-if="isShowDetailInfo">
516
- <user-info-detail-manage-new :f_userinfo_id="rowData.f_userinfo_id" @cancel-main="cancel"></user-info-detail-manage-new>
517
- </div>
518
- <modal :show.sync="progressShow" v-ref:modal width="50%" style="width:auto;" backdrop="false" >
519
- <header slot="modal-header" class="modal-header">
520
- 批量建档
521
- </header>
522
- <article slot="modal-body" class="modal-body">
523
- <div class="progress" style="margin: 20px" >
524
- <div class="progress-bar progress-bar-success progress-bar-striped active" :style="{width: percent+'%'}">
525
- {{percent}}%
526
- </div>
527
- </div>
528
- <div style="width:100%;display: flex">
529
- <p style="text-align: center;width: 100%;" v-show="!downbutton">文件正在导入..</p>
530
- <p style="text-align: center;width: 100%;" v-show="downbutton">导入成功:{{inputsuccessmage}}</p>
531
- </div>
532
- </article>
533
- <footer slot="modal-footer" class="modal-footer">
534
- <button type="button" class="btn btn-default" @click='closeRequeset'>关闭</button>
535
- </footer>
536
- </modal>
537
- </template>
538
-
539
- <script>
540
- import {PagedList, HttpResetClass} from 'vue-client'
541
- import Vue from 'vue'
542
- import co from 'co'
543
- import axios from 'axios'
544
-
545
- let loadParamGem = async function (self) {
546
- await self.$getConfig(self, 'UserFiles')
547
- self.headers.username = Vue.$login.f.name
548
- self.headers.username = Vue.$login.guid()
549
- self.orgs=null
550
- await self.$LoadParams.loadParam(self.f_filialeid)
551
- // await self.$LoadParams.loadMeterBook(self.f_filialeid)
552
- // await self.search()
553
-
554
- let req = await self.$resetpost('rs/sql/address_singleTableOrderBy?pageNo=1&pageSize=9999999', {
555
- data: {
556
- items: '*',
557
- tablename: 't_pcd',
558
- orderitem: 'id',
559
- condition: `1=1 and f_filialeid = '${self.$login.f.orgid}'`
560
- }
561
- }, {resolveMsg: null, rejectMsg: '获取地址失败!'})
562
- let redata = []
563
- req.data.forEach((row, n) => {
564
- redata[n] = {
565
- label: row.f_pcd,
566
- value: row.id,
567
- data: row,
568
- id: row.id
569
- }
570
- })
571
- self.pcdslist = redata
572
- self.initAdjustables()
573
- this.createFile=false
574
- }
575
-
576
- let addressInfoGen = async function (self, areainfo) {
577
- areainfo.isEdit = false
578
- if (areainfo.file_num > 0 && !areainfo.f_userinfo_id) {
579
- // 完善
580
- // 将表档案信息带入,完善客户信息
581
- let getMetersInfo = await self.$resetpost('rs/logic/sale_getMeterByAddress', {
582
- data: {
583
- f_useraddress_id: areainfo.id
584
- }
585
- }, {resolveMsg: null, rejectMsg: '获取表信息出错'})
586
- areainfo.meter = getMetersInfo.data[0]
587
- }
588
- if (areainfo.file_num > 0 && areainfo.f_userinfo_id) {
589
- // 添加 将客户信息带入
590
- let getUserinfo = await self.$resetpost('rs/sql/saleSingleTable', {
591
- data: {
592
- tablename: 't_userinfo',
593
- condition: `f_userinfo_id = '${areainfo.f_userinfo_id}'`
594
- }
595
- }, {resolveMsg: null, rejectMsg: '获取档案出错'})
596
-
597
- areainfo.user = getUserinfo.data[0]
598
- }
599
- self.bulidFiles(areainfo)
600
- }
601
-
602
- export default {
603
- 'title': '档案信息',
604
- data () {
605
- return {
606
- devicestype:this.$appdata.getParam('用气设备') ?[{
607
- label: '全部',
608
- value: ''
609
- }, ...this.$appdata.getParam('用气设备')]:[],
610
- initres: {
611
- org: [this.$login.f.orgid],
612
- dep: [],
613
- user: []
614
- },
615
- orgCondtionStr: '',
616
- iswork: false,
617
- isShowDetailInfo: false,
618
- config: {
619
- createType: ['address', 'area'], // 建档方式: address-地址建档 area-小区建档
620
- hasLimit: true
621
- },
622
- orgs:null,
623
- model: new PagedList('rs/sql/filemanage_getUserfies', 30, {orderitem: '"f_userinfo_id DESC"'}),
624
- row: null, // 选择一条客户信息,对其进行修改
625
- areainfo: null, // 小区批量建档使用的数据
626
- rows: [], // 客户档案选择一条时,将只显示一条信息,rows用来存放整页的数据
627
- headers: {'username': this.$login.f.name, 'blodid': this.$login.guid()},
628
- contract: [{label: '全部', value: ' is null or f_contract_id is not null'}, {
629
- label: '有',
630
- value: ' is not null'
631
- },
632
- {label: '无', value: ' is null'}],
633
- orderDefault: 'f_createfile_date desc',
634
- orderFields: {
635
- f_userinfo_id: 'no'
636
- },
637
- userfilesaddress:this.$appdata.getParam('场站')?[{label: '全部',value: ''}, ...this.$appdata.getParam('场站')] : [],
638
- createFile: false,
639
- feedmethod:this.$appdata.getParam('供气方式')?[{label: '全部',value: ''}, ...this.$appdata.getParam('供气方式')]:[],
640
- curorgid: [this.$login.f.orgid],
641
- f_filialeid: this.$login.f.orgid,
642
- pcdslist:[],
643
- // 销户启用
644
- batcan: false,
645
- batenable: false,
646
- version: '',
647
- xiaohureason: '',
648
- xiaohushow: false,
649
- inputtores: this.$appdata.getParam('抄表员'),
650
- adjustables: [],
651
-
652
- // 导入组件
653
- show: false,
654
-
655
- // 点击建档或修正时控制列表展示, 防止拥挤
656
- isOper: false,
657
-
658
- criteriaShow: false,
659
- industrycomments: this.$appdata.getParam('工业备注') ? [{
660
- label: '全部',
661
- value: ''
662
- }, ...this.$appdata.getParam('工业备注')] : [],
663
- gasproperties: this.$appdata.getParam('用气性质') ? [{
664
- label: '全部',
665
- value: ''
666
- }, ...this.$appdata.getParam('用气性质')] : [],
667
- gaspropertiessecond: this.$appdata.getParam('二级用气性质') ? [{
668
- label: '全部',
669
- value: ''
670
- }, ...this.$appdata.getParam('二级用气性质')] : [],
671
- user_type: this.$appdata.getParam('用户类型') ? [{
672
- label: '全部',
673
- value: ''
674
- }, ...this.$appdata.getParam('用户类型')] : [],
675
- meter_classify: this.$appdata.getParam('气表类型') ? [{
676
- label: '全部',
677
- value: ''
678
- }, ...this.$appdata.getParam('气表类型')] : [],
679
- meterbrands: [],
680
- f_whether_hairpin: this.$appdata.getParam('发卡状态') ? [{
681
- label: '全部',
682
- value: ''
683
- }, ...this.$appdata.getParam('发卡状态')] : [],
684
- showselectaddress: false,
685
- isedit: false,
686
- clientWidth: document.body.clientWidth,
687
- batchMeterShow: false,
688
- billData: {
689
- url: 'rs/report/userignition',
690
- bill: ''
691
- },
692
- configs: {
693
- hasPrint: false, // 默认打票
694
- hasBillManage: false // 默认不启用发票管理
695
- },
696
- printflag: false,
697
- newdata: {},
698
- resdata: '',
699
- resshow: false,
700
- useoptions: this.$appdata.getParam('使用类型'),
701
- userlevel: this.$appdata.getParam('用户等级') ? [{label: '全部', value: ''}, ...this.$appdata.getParam('用户等级')] : [],
702
- downbutton:false,
703
- percent:0,
704
- timer:'',
705
- uuida:'',
706
- progressShow:false,
707
- inputsuccessmage:''
708
- }
709
- },
710
- ready () {
711
- loadParamGem(this)
712
- console.log('%^*T^&*',this.$login)
713
- },
714
- compiled () {
715
- window.onresize = () => {
716
- return (() => {
717
- this.clientWidth = document.body.clientWidth
718
- })()
719
- }
720
- },
721
- methods: {
722
- progressclose(){
723
- if(this.timer != null){
724
- clearInterval(this.timer);
725
- }
726
- this.progressShow = false;
727
- this.percent=0;
728
- },
729
- closeRequeset(){
730
- this.$showMessage("确定关闭吗,当前正常导入,关闭后将无法获取导入进度!",['confirm','cancel']).then(res=>{
731
- if(res === 'confirm'){
732
- if(this.timer != null){
733
- clearInterval(this.timer);
734
- }
735
- this.progressclose();
736
- this.percent=0;
737
- this.uuida='';
738
- this.downbutton=false;
739
- }
740
- })
741
- },
742
- async getRequestReturn(){
743
- let timer = null;
744
- let self = this;
745
- let param = {
746
- uuid:this.uuida
747
- };
748
- this.timer = setInterval(function(){
749
- self.$resetpost('/rs/logic/getBatchOperaPro',{data:param},{resolveMsg: null, rejectMsg: null}, 0).then((res)=>{
750
- if(res.data && res.data.speed ){
751
- if(res.data.speed==100 || res.data.speed>100 ){
752
- clearInterval(self.timer);
753
- self.percent = 99;
754
- setTimeout(function(){
755
- self.percent = 100
756
- self.inputsuccessmage = `本次上传共上传${res.data.totalsum}条数据, 成功${res.data.successsum}条,失败${res.data.errorsum}条,具体失败数据请在稽查查询错误查询中查看!!`
757
- self.downbutton = true;
758
- },100);
759
- }else{
760
- self.percent = res.data.speed
761
- }
762
- }
763
- });
764
- },2000);
765
- },
766
- getuuid(){
767
- let uuidA = '';
768
- var s = [];
769
- var hexDigits = '0123456789abcdef';
770
- for (var i = 0; i < 36; i++) {
771
- s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
772
- }
773
- s[14] = '4';
774
- s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1);
775
- s[8] = s[13] = s[18] = s[23] = '-';
776
- uuidA = s.join('');
777
- this.uuida = uuidA;
778
- },
779
- getRes (obj) {
780
- this.orgCondtionStr = obj
781
- if(this.$refs.paged.$refs.criteria.$refs.sel.depresid.length>0){
782
- this.f_filialeid=this.$refs.paged.$refs.criteria.$refs.sel.depresid[0]
783
- if (this.$refs.paged.$refs.criteria.$refs.sel.userresid.length==0){
784
- this.createFile = false
785
- this.orgs=null
786
- }
787
- }else{
788
- this.f_filialeid=this.$login.f.orgid
789
- }
790
- },
791
- // async getChildOrg(){
792
- // let results = await this.$resetpost('rs/sql/saleSingleTable', {
793
- // data: {
794
- // tablename: 't_organization',
795
- // condition: `parentid = '${this.$login.f.orgid}'`
796
- // }
797
- // }, {resolveMsg: null, rejectMsg: '获取子公司失败'})
798
- // return results
799
- // },
800
- /**
801
- * 退出用户详细信息页面
802
- */
803
- cancel () {
804
- this.isShowDetailInfo = false
805
- },
806
- /**
807
- * 展示用户详细信息
808
- * @param obj 传递的row
809
- */
810
- dealmsg (obj) {
811
- console.log('==================>', obj)
812
- this.isShowDetailInfo = true
813
- this.rowData = obj
814
- },
815
- async doCopy () {
816
- await this.$copyText(this.resdata)
817
- this.resshow = false
818
- this.$showAlert(`内容已复制到剪切板!`, 'success', 2000)
819
- },
820
- close () {
821
- this.printflag = false
822
- this.clean()
823
- },
824
- close2 () {
825
- this.resshow = false
826
- },
827
- closemodal () {
828
- this.batchMeterShow = false
829
- },
830
- createInfoForFile () {
831
- this.batchMeterShow = true
832
- },
833
- hidden () {
834
- this.criteriaShow = !this.criteriaShow
835
- },
836
- search () {
837
- this.$refs.paged.$refs.criteria.search()
838
- },
839
- modifyUser (row) {
840
- this.isOper = true
841
- this.createFile = true
842
- this.isedit = true
843
- this.row = row
844
- this.areainfo = null
845
- this.row.version = row.version
846
- },
847
- clean () {
848
- this.createFile = false
849
- this.row = null
850
- this.isOper = false
851
- this.areainfo = null
852
- // this.$refs.paged.$refs.grid.select(null)
853
- this.$refs.paged.$refs.grid.model.rows = this.rows
854
- },
855
- async createnewfile () {
856
- // await this.getChildOrg()
857
- if(this.f_filialeid!=this.$login.f.orgid ){
858
- if (this.$refs.paged.$refs.criteria.$refs.sel.userresid.length==0){
859
- this.$showAlert('选择的公司与登陆人的公司不同,请先选择左侧的部门', 'warning', 2000)
860
- return
861
- }else{
862
- this.orgs={
863
- f_orgid:this.f_filialeid,
864
- f_depid:this.$refs.paged.$refs.criteria.$refs.sel.userresid[0],
865
- f_orgname:this.$refs.paged.$refs.criteria.$refs.sel.obj.orgnames[0],
866
- f_depname:this.$refs.paged.$refs.criteria.$refs.sel.obj.depnames[0]
867
- }
868
- }
869
- }else{
870
- this.orgs=null
871
- }
872
- this.isOper = true
873
- this.createFile = true
874
- this.isedit = false
875
- this.row = null
876
- this.areainfo = null
877
- this.$refs.info.clearinfo()
878
- },
879
- renew () {
880
- this.row = null
881
- this.areainfo = null
882
- this.isOper = false
883
- this.$refs.info.clearinfo()
884
- this.clearCondition()
885
- this.search()
886
- // 建档或修正档案成功刷新地址列表
887
- this.$refs.addressfiles.$refs.paged.$refs.cri.search()
888
- },
889
- clearCondition () {
890
- Object.keys(this.$refs.paged.$refs.criteria.model).forEach((key) => {
891
- this.$refs.paged.$refs.criteria.model[key] = ''
892
- })
893
- },
894
-
895
- bulkOperations (name, type) {
896
- if (name === '批量销户') {
897
- this.batcan = true
898
- this.batenable = false
899
- this.newArea = false
900
- } else if (name === '批量启用') {
901
- this.batenable = true
902
- this.batcan = false
903
- this.newArea = false
904
- }
905
- },
906
- closexiaohu () {
907
- this.xiaohushow = false
908
- },
909
- xiaohu () {
910
- this.xiaohushow = true
911
- },
912
- batchCancellation () {
913
- this.$showMessage('此操作无法还原,是否确定要批量销户?', ['confirm', 'cancel']).then(async (res) => {
914
- if (res === 'confirm') {
915
- var infoIds = []
916
- var count = 0
917
- this.model.rows.forEach((item) => {
918
- item.f_state = '有效'
919
- item.f_user_state = item.f_user_state
920
- item.f_operat_type = '销户'
921
- item.f_operator = Vue.$login.f.name
922
- item.f_operatorid = Vue.$login.f.id
923
- item.f_orgid = Vue.$login.f.orgid
924
- item.f_orgname = Vue.$login.f.orgs
925
- item.f_depid = Vue.$login.f.depids
926
- item.f_depname = Vue.$login.f.deps
927
- item.f_describe = `${Vue.$login.f.name}对${item.f_user_name}进行批量销户`
928
- item.f_comments = this.xiaohureason
929
- infoIds.push(item)
930
- count++
931
- })
932
- await this.$resetpost('rs/logic/saveCancellation', {infoIds: infoIds}, {resolveMsg: null, rejectMsg: '批量销户失败'}).then((res) => {
933
- if(res && res.data){
934
- this.$showMessage(`本次批量销户总计: ${res.data.allnum}户 ,成功: ${res.data.successnum}户 ,失败(已经销户): ${res.data.errornum2} 户,失败(待审核): ${res.data.errornum1}户 `);
935
- }
936
- this.xiaohushow = false
937
- this.close()
938
- this.search()
939
- })
940
- }
941
- })
942
- },
943
- batchSuccess () {
944
- this.clearCondition()
945
- this.batchClean()
946
- },
947
- batchClean () {
948
- this.batcan = false
949
- this.batenable = false
950
- this.newArea = false
951
- this.search()
952
- },
953
- buildFile (row) {
954
- // console.log('我是建档。。。', row)
955
- this.row = row
956
- },
957
- // 小区批量建档
958
- bulidFiles (row) {
959
- this.row = null
960
- this.areainfo = row
961
- // 将列表的数据清空
962
- this.$refs.paged.$refs.grid.model.rows = []
963
- },
964
- // 小区批量建档成功
965
- buildFileSuccess (data) {
966
- // console.log('建档案成功', data)
967
- this.model.rows.unshift(data)
968
- },
969
- selfSearch (args) {
970
- console.log('开始查询档案', this.f_filialeid)
971
- if (!this.f_filialeid) {
972
- this.f_filialeid = this.$login.f.orgid
973
- }
974
- if (!this.orgCondtionStr) {
975
- args.condition = `${args.condition}` + ' and f_orgid = ' + this.$login.f.orgid
976
- } else {
977
- args.condition = `${args.condition}` + this.orgCondtionStr
978
- }
979
- this.criteriaShow = false
980
- this.$refs.paged.$refs.grid.$el.scrollTop = 0
981
- this.model.search(args.condition, args.model)
982
- this.clean()
983
- },
984
- // printok () {
985
- // console.log("======================")
986
- // //this.$dispatch('success')
987
- // },
988
- sort (field, rule) {
989
- // 将所有排序方式设为不排序,实现相互排斥
990
- for (let key in this.orderFields) {
991
- if (key === field) {
992
- this.orderFields[key] = rule
993
- } else {
994
- this.orderFields[key] = 'no'
995
- }
996
- }
997
- // 如果新规则不排序,还原为默认排序
998
- if (rule === 'no') {
999
- this.model.paramSource.orderitem = `'${this.orderDefault}'`
1000
- } else {
1001
- this.model.paramSource.orderitem = `'${field} ${rule}'`
1002
- }
1003
-
1004
- this.search()
1005
- },
1006
-
1007
- getLocation (row) {
1008
- // 可能会存在添加,完善,建档
1009
- addressInfoGen(this, row)
1010
- },
1011
- areaFiles (row) {
1012
- row.isEdit = true
1013
- row.f_residential_area_id = row.id
1014
- // row.id = null
1015
- delete row.id
1016
- this.bulidFiles(row)
1017
- },
1018
- initAdjustables () {
1019
- console.log('初始化调压箱', this.$GetSaleParam)
1020
- let arr = []
1021
- let filter = this.$login.f.orgid
1022
- this.$GetSaleParam.getAdjustable(filter).forEach((item) => {
1023
- let temp = {}
1024
- temp.label = `[${item.value.f_adjustable_id}]-${item.label}`
1025
- temp.value = `${item.value.id}`
1026
- arr.push(temp)
1027
- })
1028
- this.adjustables = [{label: '全部', value: ''}, ...arr]
1029
- // 初始化气表品牌
1030
- let brandArr = []
1031
- this.$GetSaleParam.getGasbrand().forEach((item) => {
1032
- let temp1 = {}
1033
- temp1.label = item.label
1034
- temp1.value = item.value.f_meter_brand
1035
- brandArr.push(temp1)
1036
- })
1037
- this.meterbrands = [{label: '全部', value: ''}, ...brandArr]
1038
- },
1039
- importFile () {
1040
- this.show = true
1041
- },
1042
- clear () {
1043
- Object.keys(this.$refs.paged.$refs.criteria.model).forEach((key) => {
1044
- this.$refs.paged.$refs.criteria.model[key] = []
1045
- })
1046
- },
1047
- getorg (val) {
1048
- this.f_filialeid = val[0]
1049
- }
1050
- },
1051
- computed: {
1052
- getPricenames() {
1053
- let f_filialeid = this.f_filialeid
1054
- let result = []
1055
- this.$GetSaleParam.prices.forEach((item) => {
1056
- if (item.f_state === '有效') {
1057
- let value = {
1058
- label: item.f_price_name,
1059
- value: item.f_price_name
1060
- }
1061
- result.push(value)
1062
- }
1063
- })
1064
- return Array.from(new Set(result))
1065
- },
1066
- userstates () {
1067
- return [{label: '全部', value: ''}, ...this.$appdata.getParam('客户状态')]
1068
- },
1069
- usegas () {
1070
- return [{label: '全部', value: ''}, {label: '是', value: '是'}, {label: '否', value: '否'}]
1071
- },
1072
- areas () {
1073
- let rs = []
1074
- for (let i = 0; i < this.$login.f.f_allArea.length; i++) {
1075
- let temp = {
1076
- label: this.$login.f.f_allArea[i].label,
1077
- value: this.$login.f.f_allArea[i].label
1078
- }
1079
- rs.push(temp)
1080
- }
1081
- return [{label: '全部', value: ''}, ...rs]
1082
- },
1083
- firestates () {
1084
- return [
1085
- {label: '全部', value: ''},
1086
- {label: '点火', value: '1'},
1087
- {label: '未点火', value: '0'}
1088
- ]
1089
- },
1090
- jurisdiction () {
1091
- return this.$login.r
1092
- }
1093
- },
1094
- watch: {
1095
- // 每次查询将查询到的数据存储起来,供选择操作后的替换
1096
- 'model.state' (val) {
1097
- if (val === '正确') {
1098
- this.rows = this.model.rows
1099
- }
1100
- },
1101
- 'f_filialeid' (val) {
1102
- loadParamGem(this)
1103
- }
1104
- },
1105
- events: {
1106
- FileUpload: function (file, res) {
1107
- let data = {
1108
- tablename: 't_userinfo',
1109
- filepath: res.path
1110
- }
1111
- this.$resetpost('rs/logic/import', data, {resolveMsg: null, rejectMsg: '上传失败'}).then((res) => {
1112
- this.close()
1113
- this.$showAlert(`一共上传${res.data.total}条数据, 成功${res.data.successnum}条`, 'success', 2000)
1114
- this.search()
1115
- })
1116
- },
1117
- 'onFileUpload': async function (file, res) {
1118
- if (this.batchMeterShow) {
1119
- // this.iswork = true
1120
- this.getuuid();
1121
- if(this.uuida == '') return;
1122
- // 当前上传的是批量导入的档案
1123
- let batchParam = {
1124
- filepath: res.f_downloadpath,
1125
- f_operator: this.$login.f.name,
1126
- f_operatorid: this.$login.f.id,
1127
- f_orgid: this.$login.f.orgid,
1128
- f_orgname: this.$login.f.orgs,
1129
- f_depid: this.$login.f.depids,
1130
- f_depname: this.$login.f.deps,
1131
- uuid: this.uuida
1132
- }
1133
- let jobParam = {
1134
- f_operatorid: this.$login.f.id,
1135
- total: 0,
1136
- operator: this.$login.f.orgs +":"+ this.$login.f.deps +":"+ Vue.$login.f.name,
1137
- jobType: "批量建档"
1138
- }
1139
- let param = {
1140
- jobParam: jobParam,
1141
- batchParam: batchParam
1142
- }
1143
- let self = this
1144
- try {
1145
- self.progressShow = true;
1146
- axios.post('rs/business/batchRunExcel/filemanage_fileSave_tongchuan/newSettleFileImport_tongchuan',
1147
- {data: param}, {timeout: 30000}).then((res) => {
1148
- })
1149
- self.percent=0;
1150
- self.getRequestReturn();
1151
- } catch (error) {
1152
- if (error.response) {
1153
- if (error.response.status == 500) {
1154
- this.$showAlert('服务繁忙,请重试!!!', 'danger', 3000)
1155
- } else if (error.response.status == 404) {
1156
- this.$showAlert('服务运行中,请耐心等待后进行重试!!', 'danger', 3000)
1157
- } else {
1158
- this.$showAlert(error.response.data, 'danger', 2000)
1159
- }
1160
- console.log(error.response.data)
1161
- console.log(error.response.status)
1162
- console.log(error.response.headers)
1163
- } else if (error.request) {
1164
- console.log(error.request)
1165
- this.$showAlert(error.request, 'danger', 2000)
1166
- } else {
1167
- console.log('Error', error.message)
1168
- this.$showAlert(error.message, 'danger', 2000)
1169
- }
1170
- this.iswork = false
1171
- }
1172
- this.batchMeterShow = false
1173
- // this.$showAlert(`一共上传${res.data.total}条数据, 成功${res.data.successnum}条`, 'success', 2000)
1174
- this.search()
1175
- } else {
1176
- let data = {
1177
- tablename: 't_userinfo',
1178
- filepath: res.f_downloadpath,
1179
- f_operator: this.$login.f.name,
1180
- f_operatorid: this.$login.f.id,
1181
- f_orgid: this.$login.f.orgid,
1182
- f_orgname: this.$login.f.orgs,
1183
- f_depid: this.$login.f.depids,
1184
- f_depname: this.$login.f.deps
1185
- }
1186
- this.$resetpost('rs/logic/sale_userfilesImp', {data: data}, {
1187
- resolveMsg: null,
1188
- rejectMsg: '上传失败'
1189
- }).then((res) => {
1190
- this.show = false
1191
- this.$showAlert(`一共上传${res.data.total}条数据, 成功${res.data.successnum}条`, 'success', 2000)
1192
- this.search()
1193
- })
1194
- }
1195
- },
1196
- 'confirmaddress' (res) {
1197
- console.log('选定地址', res)
1198
- }
1199
- }
1200
- }
1201
- </script>
1202
- <style>
1203
- .nav-tabss ul > li > a {
1204
- padding: 5px 10px;
1205
- }
1206
- </style>
1
+ <template>
2
+ <div v-show='!isShowDetailInfo' id="file-user-files" class="binary">
3
+ <div :class="{'basic-main': !createFile,'binary-left': createFile}" >
4
+ <div class="flex" style="flex: 1;">
5
+ <div style="flex: 1.2">
6
+ <criteria-paged :model="model" v-ref:paged @sort="sort">
7
+ <criteria @condition-changed="$parent.selfSearch" partial='criteria' v-ref:criteria>
8
+ <div class="form-horizontal select-overspread container-fluid auto" novalidate partial>
9
+ <div class="row">
10
+ <res-select-group :initres="$parent.$parent.initres"
11
+ :show-component="['company','department','operator']"
12
+ @re-res="$parent.$parent.getRes"
13
+ v-ref:sel></res-select-group>
14
+ <!-- <div-->
15
+ <!-- :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"-->
16
+ <!-- class="form-group" v-if="!$parent.$parent.createFile">-->
17
+ <!-- <label class="font_normal_body">组织机构</label>-->
18
+ <!-- <res-select-->
19
+ <!-- :initresid='$parent.$parent.curorgid'-->
20
+ <!-- @res-select="$parent.$parent.getorg"-->
21
+ <!-- is-mul="false"-->
22
+ <!-- restype='organization'-->
23
+ <!-- >-->
24
+ <!-- </res-select>-->
25
+ <!-- </div>-->
26
+ <div
27
+ :class="{'col-sm-3':$parent.$parent.clientWidth>1600||!$parent.$parent.createFile,'col-sm-4':$parent.$parent.clientWidth<1600&&$parent.$parent.createFile}"
28
+ class="form-group button-range">
29
+ <!--<button class="button_search button_spacing" style="width: 90px" @click="$parent.$parent.showFileInfo()">查看批量状态-->
30
+ <!--</button>-->
31
+
32
+ <button @click="search(), $parent.$parent.clean()" class="button_search button_spacing"
33
+ style="float: right">查询
34
+ </button>
35
+ <button @click="$parent.$parent.clear()" class="button_clear button_spacing"
36
+ style="float: right">清空
37
+ </button>
38
+ <button @click="$parent.$parent.createnewfile()" class="button_search button_spacing"
39
+ style="float: right">单户建档
40
+ </button>
41
+ <button class="button_search button_spacing" style="width: 90px" @click="$parent.$parent.createInfoForFile()">批量建档
42
+ </button>
43
+ <button @click="$parent.$parent.importFile" class="button_export button_spacing"
44
+ style="float: right" v-if="false">导入
45
+ </button>
46
+ <!-- <button class="button_search" style="width: 90px" @click=" $parent.$parent.selectaddress()">选择地址</button>-->
47
+ <button @click="$parent.$parent.xiaohu()"
48
+ class="button_delete button_spacing"
49
+ style="float: right"
50
+ v-if="$parent.$parent.rows && $parent.$parent.rows.length > 1 && this.$login.r.includes('批量销户')">
51
+ 批量销户
52
+ </button>
53
+ <button @click="$parent.$parent.bulkOperations('批量销户', 'batch-cancellation')"
54
+ class="button_delete button_spacing"
55
+ style="float: right"
56
+ v-if="$parent.$parent.rows && $parent.$parent.rows.length === 1 && $parent.$parent.rows[0].f_user_state === '正常'">
57
+ 销户
58
+ </button>
59
+ <button @click="$parent.$parent.bulkOperations('批量启用', 'batch-enable')"
60
+ class="button_search button_spacing"
61
+ style="float: right"
62
+ v-if="$parent.$parent.rows && $parent.$parent.rows.length === 1 && $parent.$parent.rows[0].f_user_state === '销户'">
63
+ 启用
64
+ </button>
65
+ <div
66
+ :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
67
+ @click="$parent.$parent.hidden()"
68
+ class="button_spacing"
69
+ style="float: right"></div>
70
+ </div>
71
+ </div>
72
+ <div class="row" v-if="$parent.$parent.criteriaShow">
73
+ <div
74
+ :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
75
+ class="form-group"
76
+ v-if="$parent.$parent.clientWidth>1600">
77
+ <label class="font_normal_body">客户编号</label>
78
+ <input class="input_search" condition="f_userinfo_code like '%{}%'"
79
+ placeholder='客户编号'
80
+ style="width:60%" type="text" v-model="model.f_userinfo_code">
81
+ </div>
82
+ <div
83
+ :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
84
+ class="form-group"
85
+ v-if="$parent.$parent.clientWidth<1600&&!$parent.$parent.createFile">
86
+ <label class="font_normal_body">客户编号</label>
87
+ <input class="input_search" condition="f_userinfo_code like '%{}%'"
88
+ placeholder='客户编号'
89
+ style="width:60%" type="text" v-model="model.f_userinfo_code">
90
+ </div>
91
+ <div
92
+ :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
93
+ class="form-group" v-if="!$parent.$parent.createFile">
94
+ <label class="font_normal_body">客户名称</label>
95
+ <input class="input_search" condition="f_user_name like '%{}%'"
96
+ placeholder='客户姓名'
97
+ style="width:60%" type="text" v-model="model.f_user_name">
98
+ </div>
99
+
100
+ <!-- <div-->
101
+ <!-- :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"-->
102
+ <!-- class="form-group" v-if="$parent.$parent.createFile">-->
103
+ <!-- <label class="font_normal_body">组织机构</label>-->
104
+ <!-- <res-select-->
105
+ <!-- :initresid='$parent.$parent.curorgid'-->
106
+ <!-- @res-select="$parent.$parent.getorg"-->
107
+ <!-- is-mul="false"-->
108
+ <!-- restype='organization'-->
109
+ <!-- >-->
110
+ <!-- </res-select>-->
111
+ <!-- </div>-->
112
+ <div
113
+ :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
114
+ class="form-group"
115
+ v-if="$parent.$parent.clientWidth<1600&&$parent.$parent.createFile">
116
+ <label class="font_normal_body">客户编号</label>
117
+ <input class="input_search" condition="f_userinfo_code like '%{}%'"
118
+ placeholder='客户编号'
119
+ style="width:60%" type="text" v-model="model.f_userinfo_code">
120
+ </div>
121
+
122
+ <div
123
+ :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
124
+ class="form-group" v-if="$parent.$parent.createFile">
125
+ <label class="font_normal_body">客户名称</label>
126
+ <input class="input_search" condition="f_user_name like '%{}%'"
127
+ placeholder='客户姓名'
128
+ style="width:60%" type="text" v-model="model.f_user_name">
129
+ </div>
130
+ <div class="form-group" :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}">
131
+ <label class="font_normal_body">表&emsp;&emsp;号</label>
132
+ <input class="input_search" condition="f_meternumber like '%{}%'" placeholder='表号' style="width:60%"
133
+ type="text" v-model="model.f_meternumber">
134
+ </div>
135
+ <div :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
136
+ class="form-group">
137
+ <label class="font_normal_body">开户时间</label>
138
+ <datepicker :format="'yyyy-MM-dd'" :value.sync="model.f_start_date"
139
+ class="datepicker"
140
+ condition="f_open_date >= '{} 00:00:00' "
141
+ placeholder="起始时间"
142
+ style="width:60%"
143
+ v-model="model.f_start_date"
144
+ ></datepicker>
145
+ </div>
146
+ <div :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
147
+ class="form-group" >
148
+ <label class="font_normal_body" >&emsp;&ensp;至&emsp;&ensp;</label>
149
+ <datepicker :format="'yyyy-MM-dd'" :value.sync="model.f_end_date"
150
+ class="datepicker"
151
+ condition="f_open_date <= '{} 23:59:59' "
152
+ placeholder="结束时间"
153
+ style="width:60%"
154
+ v-model="model.f_end_date"
155
+ ></datepicker>
156
+ </div>
157
+ <div
158
+ :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
159
+ class="form-group">
160
+ <label class="font_normal_body">&emsp;建档人</label>
161
+ <input class="input_search" condition="f_createfile_person like '%{}%'" placeholder='建档人' style="width:60%"
162
+ type="text" v-model="model.f_createfile_person">
163
+ </div>
164
+ <div
165
+ :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
166
+ class="form-group">
167
+ <label class="font_normal_body">用户类型</label>
168
+ <v-select :options='$parent.$parent.user_type' :value.sync="model.f_user_type"
169
+ close-on-select condition="f_user_type='{}'"
170
+ placeholder='用户类型' v-model="model.f_user_type"></v-select>
171
+ </div>
172
+ <div
173
+ :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
174
+ class="form-group">
175
+ <label class="font_normal_body">用气性质</label>
176
+ <v-select :options='$parent.$parent.gasproperties' :value.sync="model.f_gasproperties"
177
+ close-on-select condition="f_gasproperties='{}'"
178
+ placeholder='用气性质' v-model="model.f_gasproperties"></v-select>
179
+ </div>
180
+ <div
181
+ :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
182
+ class="form-group">
183
+ <label class="font_normal_body" title="二级用气性质">二级性质</label>
184
+ <v-select :options='$parent.$parent.gaspropertiessecond' :value.sync="model.f_gasproperties_second"
185
+ close-on-select condition="f_gasproperties_second='{}'"
186
+ placeholder='二级用气性质' v-model="model.f_gasproperties_second"></v-select>
187
+ </div>
188
+ <div
189
+ :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
190
+ class="form-group">
191
+ <label class="font_normal_body">气表类型</label>
192
+ <v-select :options='$parent.$parent.meter_classify' :value.sync="model.f_meter_classify"
193
+ close-on-select condition="f_meter_classify='{}'"
194
+ placeholder='气表类型' v-model="model.f_meter_classify"></v-select>
195
+ </div>
196
+ <div
197
+ :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
198
+ class="form-group">
199
+ <label class="font_normal_body">气价名称</label>
200
+ <v-select :value.sync="model.f_price_name"
201
+ v-model="model.f_price_name"
202
+ :options="$parent.$parent.getPricenames"
203
+ placeholder='请选择'
204
+ condition="f_price_name = '{}'"
205
+ close-on-select></v-select>
206
+ </div>
207
+ <div class="form-group" :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}">
208
+ <label class="font_normal_body">气表品牌</label>
209
+ <v-select :value.sync="model.f_meter_brand" multiple
210
+ v-model="model.f_meter_brand"
211
+ :options='$parent.$parent.meterbrands' placeholder='请选择'
212
+ condition="f_meter_brand in {}"
213
+ close-on-select></v-select>
214
+ </div>
215
+ <div
216
+ :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
217
+ class="form-group">
218
+ <label class="font_normal_body">客户状态</label>
219
+ <v-select :options='$parent.$parent.userstates' :value.sync="model.f_user_state"
220
+ close-on-select condition="f_user_state='{}'"
221
+ placeholder='客户状态' v-model="model.f_user_state"></v-select>
222
+ </div>
223
+ <!-- <div-->
224
+ <!-- :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"-->
225
+ <!-- class="form-group">-->
226
+ <!-- <label class="font_normal_body">气表品牌</label>-->
227
+ <!-- <v-select :options='$parent.$parent.meter_brand' :value.sync="model.f_meter_brand"-->
228
+ <!-- close-on-select condition="f_meter_brand='{}'"-->
229
+ <!-- placeholder='气表品牌' v-model="model.f_meter_brand"></v-select>-->
230
+ <!-- </div>-->
231
+ <div
232
+ :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
233
+ class="form-group">
234
+ <label class="font_normal_body">小&emsp;&emsp;区</label>
235
+ <input class="input_search" condition="f_residential_area like '%{}%'" placeholder='小区' style="width:60%"
236
+ type="text" v-model="model.f_residential_area">
237
+ </div>
238
+ <div
239
+ :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
240
+ class="form-group">
241
+ <label class="font_normal_body">客户地址</label>
242
+ <input class="input_search" condition="f_address like '%{}%'" placeholder='客户地址' style="width:60%"
243
+ type="text" v-model="model.f_address">
244
+ </div>
245
+ <div
246
+ :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
247
+ class="form-group">
248
+ <label class="font_normal_body">发卡状态</label>
249
+ <v-select :options='$parent.$parent.f_whether_hairpin' :value.sync="model.f_whether_hairpin"
250
+ close-on-select condition="f_whether_hairpin = '{}'"
251
+ placeholder='发卡状态' v-model="model.f_whether_hairpin"></v-select>
252
+ </div>
253
+ <div
254
+ :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
255
+ class="form-group">
256
+ <label class="font_normal_body" title="参数:场站">场&emsp;&emsp;站</label>
257
+ <v-select :options='$parent.$parent.userfilesaddress' :value.sync="model.f_userfiles_address"
258
+ condition="f_userfiles_address in {}"
259
+ :multiple="true"
260
+ placeholder='场站' v-model="model.f_userfiles_address"></v-select>
261
+ </div>
262
+ <div
263
+ :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
264
+ class="form-group">
265
+ <label class="font_normal_body" title="参数:场站">供气方式</label>
266
+ <v-select :options='$parent.$parent.feedmethod' :value.sync="model.f_feed_method"
267
+ condition="f_feed_method = '{}'"
268
+ placeholder='供气方式' v-model="model.f_feed_method"></v-select>
269
+ </div>
270
+ <div
271
+ :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
272
+ class="form-group">
273
+ <label class="font_normal_body">客户电话</label>
274
+ <input class="input_search" condition="f_user_phone = '{}'" placeholder='客户电话' style="width:60%"
275
+ type="text"
276
+ v-model="model.f_user_phone">
277
+ </div>
278
+ <!-- <div class="col-sm-2 form-group">-->
279
+ <!-- <label class="font_normal_body">操&ensp;作&ensp;员</label>-->
280
+ <!-- <input type="text" class="input_search" style="width:60%" v-model="model.f_operator" style="width:60%"-->
281
+ <!-- condition="f_operator like '%{}%'" placeholder="操作员"-->
282
+ <!-- />-->
283
+ <!-- </div>-->
284
+ <div
285
+ :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
286
+ class="form-group">
287
+ <label class="font_normal_body" style="width: auto">天然气证</label>
288
+ <v-select :options='$parent.$parent.usegas' :value.sync="model.f_send_usegas_card"
289
+ close-on-select condition="f_send_usegas_card='{}'"
290
+ placeholder='天然气使用证' v-model="model.f_send_usegas_card"></v-select>
291
+ </div>
292
+ <div
293
+ :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
294
+ class="form-group">
295
+ <label class="font_normal_body">调&ensp;压&ensp;箱</label>
296
+ <v-select :options='$parent.$parent.adjustables' :search='true'
297
+ :value.sync="model.f_adjustable_id"
298
+ close-on-select
299
+ condition="f_adjustable_id = '{}'" placeholder='调压箱'
300
+ v-model='model.f_adjustable_id'></v-select>
301
+ </div>
302
+ <div
303
+ :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
304
+ class="form-group">
305
+ <label class="font_normal_body">用户等级</label>
306
+ <v-select :options='$parent.$parent.userlevel' :search='true'
307
+ :value.sync="model.userlevel"
308
+ close-on-select
309
+ condition="f_user_level = '{}'" placeholder='用户等级'
310
+ v-model='model.userlevel'></v-select>
311
+ </div>
312
+ <div
313
+ :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
314
+ class="form-group">
315
+ <label class="font_normal_body">用气设备</label>
316
+ <v-select :options='$parent.$parent.devicestype' :value.sync="model.f_devices_type"
317
+ close-on-select condition="f_devices_type ='{}'"
318
+ placeholder='用气设备' v-model="model.f_devices_type"></v-select>
319
+ </div>
320
+ <div
321
+ :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
322
+ class="form-group">
323
+ <label class="font_normal_body">选择区域</label>
324
+ <v-select
325
+ v-model="model.f_pcd"
326
+ placeholder='选择区域'
327
+ :value.sync="model.f_pcd"
328
+ :options='$parent.$parent.pcdslist'
329
+ condition="f_pcd_id = '{}'"
330
+ style="width: 60%"
331
+ close-on-select >
332
+ </v-select>
333
+ </div>
334
+ </div>
335
+ </div>
336
+ </criteria>
337
+ <data-grid :model="model" class="list_area table_sy" v-ref:grid partial='list'>
338
+ <template partial='head'>
339
+ <tr>
340
+ <th>
341
+ <nobr>序号</nobr>
342
+ </th>
343
+ <th>
344
+ <nobr>客户编号</nobr>
345
+ </th>
346
+ <th>
347
+ <nobr>表号</nobr>
348
+ </th>
349
+ <th>
350
+ <nobr>客户名称</nobr>
351
+ </th>
352
+ <th>
353
+ <nobr>客户电话</nobr>
354
+ </th>
355
+ <th v-if="!$parent.$parent.$parent.isOper">
356
+ <nobr>地址信息</nobr>
357
+ </th>
358
+ <th>
359
+ <nobr>用户类型</nobr>
360
+ </th>
361
+ <th>
362
+ <nobr>用气性质</nobr>
363
+ </th>
364
+ <th>
365
+ <nobr>二级用气性质</nobr>
366
+ </th>
367
+ <th>
368
+ <nobr>气表类型</nobr>
369
+ </th>
370
+ <th>
371
+ <nobr>气表品牌</nobr>
372
+ </th>
373
+ <th>
374
+ <nobr>气价名称</nobr>
375
+ </th>
376
+ <th>
377
+ <nobr>发卡状态</nobr>
378
+ </th>
379
+ <th v-if="!$parent.$parent.$parent.createFile">
380
+ <nobr>开户时间</nobr>
381
+ </th>
382
+ <th v-if="!$parent.$parent.$parent.createFile">
383
+ <nobr>建档人</nobr>
384
+ </th>
385
+ <th v-if="!$parent.$parent.$parent.createFile">
386
+ <nobr>场站</nobr>
387
+ </th>
388
+ <th v-if="!$parent.$parent.$parent.createFile">
389
+ <nobr>供气方式</nobr>
390
+ </th>
391
+ <th v-if="!$parent.$parent.$parent.createFile">
392
+ <nobr>状态</nobr>
393
+ </th>
394
+ <th v-if="!$parent.$parent.$parent.createFile">
395
+ <nobr>用户等级</nobr>
396
+ </th>
397
+ <th v-if="!$parent.$parent.$parent.createFile">
398
+ <nobr>所属公司</nobr>
399
+ </th>
400
+ <!--<th>-->
401
+ <!--<nobr v-if="this.$login.r.includes('通知单打印')||this.$login.r.includes('流程表打印') ">下载</nobr>-->
402
+ <!--</th>-->
403
+ <th>
404
+ <nobr>操作</nobr>
405
+ </th>
406
+ </tr>
407
+ </template>
408
+ <template partial='body'>
409
+ <td style="text-align: center;">{{$index + 1}}</td>
410
+ <td style="text-align: center;">
411
+ <span @click="$parent.$parent.$parent.dealmsg(row)"><a><b>{{row.f_userinfo_code}}</b></a></span>
412
+ </td>
413
+ <td style="text-align: center;">{{row.f_meternumber}}</td>
414
+ <td style="text-align: center;">{{row.f_user_name}}</td>
415
+ <td style="text-align: center;">{{row.f_user_phone}}</td>
416
+ <td style="text-align: center;" v-if="!$parent.$parent.$parent.isOper">{{row.f_address_detail ? row.f_address + row.f_address_detail :
417
+ row.f_address}}
418
+ </td>
419
+ <td style="text-align: center;">{{row.f_user_type}}</td>
420
+ <td style="text-align: center;">{{row.f_gasproperties}}</td>
421
+ <td style="text-align: center;">{{row.f_gasproperties_second}}</td>
422
+ <td style="text-align: center;">{{row.f_meter_classify}}</td>
423
+ <td style="text-align: center;">{{row.f_meter_brand}}</td>
424
+ <td style="text-align: center;">{{row.f_price_name}}</td>
425
+ <td style="text-align: center;">{{row.f_whether_hairpin}}</td>
426
+ <td style="text-align: center;" v-if="!$parent.$parent.$parent.createFile">{{row.f_open_date}}</td>
427
+ <td style="text-align: center;" v-if="!$parent.$parent.$parent.createFile">{{row.f_createfile_person}}</td>
428
+ <td style="text-align: center;" v-if="!$parent.$parent.$parent.createFile">{{row.f_userfiles_address}}</td>
429
+ <td style="text-align: center;" v-if="!$parent.$parent.$parent.createFile">{{row.f_feed_method}}</td>
430
+ <td style="text-align: center;" v-if="!$parent.$parent.$parent.createFile">{{row.f_user_state}}</td>
431
+ <td style="text-align: center;" v-if="!$parent.$parent.$parent.createFile">{{row.f_user_level}}</td>
432
+ <td style="text-align: center;" v-if="!$parent.$parent.$parent.createFile">{{row.f_orgname}}</td>
433
+ <td style="text-align: center;">
434
+ <button type="button" name="button" class="button_search button_spacing width-60"
435
+ v-if="row.f_user_state === '正常' || row.f_user_state==='预备'"
436
+ @click.stop="$parent.$parent.$parent.modifyUser(row)">修正
437
+ </button>
438
+ </td>
439
+ </template>
440
+ </data-grid>
441
+ </criteria-paged>
442
+ </div>
443
+
444
+ <modal v-if="batcan || batenable" :show.sync="batcan || batenable" width="1500px" v-ref:modal large backdrop="false">
445
+ <article slot="modal-body" class="modal-body">
446
+ <batch-cancellation v-if="batcan" :useraccount="model.rows" @clean="batchClean"
447
+ @success="batchSuccess"></batch-cancellation>
448
+ <batch-enable v-if="batenable" :useraccount="model.rows" @clean="batchClean"
449
+ @success="batchSuccess"></batch-enable>
450
+ </article>
451
+ <footer slot="modal-footer" class="modal-footer">
452
+ </footer>
453
+ </modal>
454
+
455
+
456
+ </div>
457
+ </div>
458
+ <div class="binary-right" :style="{width:'70%'}" v-if="createFile">
459
+ <div class="auto" style="height: 100%; margin-top: 1%" >
460
+ <file-user-general-info :f_filialeid="f_filialeid" :orgs="orgs" :initres="initres" :row="row" :areainfo="areainfo"
461
+ :haslimit="config.hasLimit" @success="renew" @clean="clean"
462
+ :isedit="isedit"
463
+ @build-success="buildFileSuccess" v-ref:info></file-user-general-info>
464
+ </div>
465
+ </div>
466
+
467
+ <modal :show.sync="show" width="500px" title="文件导入" v-ref:modal large backdrop="false">
468
+ <article slot="modal-body" class="modal-body">
469
+ <file-upload class="my-file-uploader " name="UploadFile" class="btn btn-success" style="border-radius: 2px;"
470
+ action="rs/file/uploadFile" tagname="导入档案" v-ref:file :headers="headers"></file-upload>
471
+ </article>
472
+ <footer slot="modal-footer" class="modal-footer">
473
+ </footer>
474
+ </modal>
475
+ <modal :show.sync="batchMeterShow" width="500px" title="文件导入" v-ref:modal large backdrop="false">
476
+ <article slot="modal-body" class="modal-body">
477
+ <file-upload class="my-file-uploader" name="useraddressUploadFile" action="rs/file/uploadFile" tagname="确定" multiple v-ref:file></file-upload>
478
+ </article>
479
+ <footer slot="modal-footer" class="modal-footer">
480
+ </footer>
481
+ </modal>
482
+
483
+ <modal :show.sync="xiaohushow" width="500px" title="批量销户" v-ref:modal large backdrop="false">
484
+ <article slot="modal-body" class="modal-body" style="height: 70px">
485
+ <div>
486
+ <label class="font_normal_body" style="line-height: 20px">销户原因</label>
487
+ <input class="input_search"
488
+ placeholder='销户原因'
489
+ type="text" v-model="xiaohureason">
490
+ </div>
491
+ </article>
492
+ <footer slot="modal-footer" class="modal-footer">
493
+ <button class="button_search button_spacing" type="button" @click="batchCancellation()">确认</button>
494
+ <button class="button_search button_spacing" type="button" @click="closexiaohu()">取消</button>
495
+ </footer>
496
+ </modal>
497
+ <modal :show.sync="resshow" width="500px" title="建档成功" v-ref:modal large backdrop="false">
498
+ <article slot="modal-body" class="modal-body" style="height: 70px">
499
+ <div>
500
+ <label class="font_normal_body" style="line-height: 20px">客户编号</label>
501
+ <input class="input_search" condition="f_userinfo_code = '{}'"
502
+ placeholder='客户编号' disabled
503
+ type="text" v-model="resdata">
504
+ </div>
505
+ </article>
506
+ <footer slot="modal-footer" class="modal-footer">
507
+ <button class="button_search button_spacing" type="button" @click="doCopy()">复制</button>
508
+ <button class="button_search button_spacing" type="button" @click="close2()">取消</button>
509
+ </footer>
510
+ </modal>
511
+ <!--<user-flow-sheet :show="printflag" :bill-config='configs' :bill-data='billData' :data='newdata' v-on:toggle="close" @printok="printok" v-ref:printbill></user-flow-sheet>-->
512
+
513
+ <work-busy :is-busy="iswork" v-show="iswork"></work-busy>
514
+ </div>
515
+ <div v-if="isShowDetailInfo">
516
+ <user-info-detail-manage-new :f_userinfo_id="rowData.f_userinfo_id" @cancel-main="cancel"></user-info-detail-manage-new>
517
+ </div>
518
+ <modal :show.sync="progressShow" v-ref:modal width="50%" style="width:auto;" backdrop="false" >
519
+ <header slot="modal-header" class="modal-header">
520
+ 批量建档
521
+ </header>
522
+ <article slot="modal-body" class="modal-body">
523
+ <div class="progress" style="margin: 20px" >
524
+ <div class="progress-bar progress-bar-success progress-bar-striped active" :style="{width: percent+'%'}">
525
+ {{percent}}%
526
+ </div>
527
+ </div>
528
+ <div style="width:100%;display: flex">
529
+ <p style="text-align: center;width: 100%;" v-show="!downbutton">文件正在导入..</p>
530
+ <p style="text-align: center;width: 100%;" v-show="downbutton">导入成功:{{inputsuccessmage}}</p>
531
+ </div>
532
+ </article>
533
+ <footer slot="modal-footer" class="modal-footer">
534
+ <button type="button" class="btn btn-default" @click='closeRequeset'>关闭</button>
535
+ </footer>
536
+ </modal>
537
+ </template>
538
+
539
+ <script>
540
+ import {PagedList, HttpResetClass} from 'vue-client'
541
+ import Vue from 'vue'
542
+ import co from 'co'
543
+ import axios from 'axios'
544
+
545
+ let loadParamGem = async function (self) {
546
+ await self.$getConfig(self, 'UserFiles')
547
+ self.headers.username = Vue.$login.f.name
548
+ self.headers.username = Vue.$login.guid()
549
+ self.orgs=null
550
+ await self.$LoadParams.loadParam(self.f_filialeid)
551
+ // await self.$LoadParams.loadMeterBook(self.f_filialeid)
552
+ // await self.search()
553
+
554
+ let req = await self.$resetpost('rs/sql/address_singleTableOrderBy?pageNo=1&pageSize=9999999', {
555
+ data: {
556
+ items: '*',
557
+ tablename: 't_pcd',
558
+ orderitem: 'id',
559
+ condition: `1=1 and f_filialeid = '${self.$login.f.orgid}'`
560
+ }
561
+ }, {resolveMsg: null, rejectMsg: '获取地址失败!'})
562
+ let redata = []
563
+ req.data.forEach((row, n) => {
564
+ redata[n] = {
565
+ label: row.f_pcd,
566
+ value: row.id,
567
+ data: row,
568
+ id: row.id
569
+ }
570
+ })
571
+ self.pcdslist = redata
572
+ self.initAdjustables()
573
+ this.createFile=false
574
+ }
575
+
576
+ let addressInfoGen = async function (self, areainfo) {
577
+ areainfo.isEdit = false
578
+ if (areainfo.file_num > 0 && !areainfo.f_userinfo_id) {
579
+ // 完善
580
+ // 将表档案信息带入,完善客户信息
581
+ let getMetersInfo = await self.$resetpost('rs/logic/sale_getMeterByAddress', {
582
+ data: {
583
+ f_useraddress_id: areainfo.id
584
+ }
585
+ }, {resolveMsg: null, rejectMsg: '获取表信息出错'})
586
+ areainfo.meter = getMetersInfo.data[0]
587
+ }
588
+ if (areainfo.file_num > 0 && areainfo.f_userinfo_id) {
589
+ // 添加 将客户信息带入
590
+ let getUserinfo = await self.$resetpost('rs/sql/saleSingleTable', {
591
+ data: {
592
+ tablename: 't_userinfo',
593
+ condition: `f_userinfo_id = '${areainfo.f_userinfo_id}'`
594
+ }
595
+ }, {resolveMsg: null, rejectMsg: '获取档案出错'})
596
+
597
+ areainfo.user = getUserinfo.data[0]
598
+ }
599
+ self.bulidFiles(areainfo)
600
+ }
601
+
602
+ export default {
603
+ 'title': '档案信息',
604
+ data () {
605
+ return {
606
+ devicestype:this.$appdata.getParam('用气设备') ?[{
607
+ label: '全部',
608
+ value: ''
609
+ }, ...this.$appdata.getParam('用气设备')]:[],
610
+ initres: {
611
+ org: [this.$login.f.orgid],
612
+ dep: [],
613
+ user: []
614
+ },
615
+ orgCondtionStr: '',
616
+ iswork: false,
617
+ isShowDetailInfo: false,
618
+ config: {
619
+ createType: ['address', 'area'], // 建档方式: address-地址建档 area-小区建档
620
+ hasLimit: true
621
+ },
622
+ orgs:null,
623
+ model: new PagedList('rs/sql/filemanage_getUserfies', 30, {orderitem: '"f_userinfo_id DESC"'}),
624
+ row: null, // 选择一条客户信息,对其进行修改
625
+ areainfo: null, // 小区批量建档使用的数据
626
+ rows: [], // 客户档案选择一条时,将只显示一条信息,rows用来存放整页的数据
627
+ headers: {'username': this.$login.f.name, 'blodid': this.$login.guid()},
628
+ contract: [{label: '全部', value: ' is null or f_contract_id is not null'}, {
629
+ label: '有',
630
+ value: ' is not null'
631
+ },
632
+ {label: '无', value: ' is null'}],
633
+ orderDefault: 'f_createfile_date desc',
634
+ orderFields: {
635
+ f_userinfo_id: 'no'
636
+ },
637
+ userfilesaddress:this.$appdata.getParam('场站')?[{label: '全部',value: ''}, ...this.$appdata.getParam('场站')] : [],
638
+ createFile: false,
639
+ feedmethod:this.$appdata.getParam('供气方式')?[{label: '全部',value: ''}, ...this.$appdata.getParam('供气方式')]:[],
640
+ curorgid: [this.$login.f.orgid],
641
+ f_filialeid: this.$login.f.orgid,
642
+ pcdslist:[],
643
+ // 销户启用
644
+ batcan: false,
645
+ batenable: false,
646
+ version: '',
647
+ xiaohureason: '',
648
+ xiaohushow: false,
649
+ inputtores: this.$appdata.getParam('抄表员'),
650
+ adjustables: [],
651
+
652
+ // 导入组件
653
+ show: false,
654
+
655
+ // 点击建档或修正时控制列表展示, 防止拥挤
656
+ isOper: false,
657
+
658
+ criteriaShow: false,
659
+ industrycomments: this.$appdata.getParam('工业备注') ? [{
660
+ label: '全部',
661
+ value: ''
662
+ }, ...this.$appdata.getParam('工业备注')] : [],
663
+ gasproperties: this.$appdata.getParam('用气性质') ? [{
664
+ label: '全部',
665
+ value: ''
666
+ }, ...this.$appdata.getParam('用气性质')] : [],
667
+ gaspropertiessecond: this.$appdata.getParam('二级用气性质') ? [{
668
+ label: '全部',
669
+ value: ''
670
+ }, ...this.$appdata.getParam('二级用气性质')] : [],
671
+ user_type: this.$appdata.getParam('用户类型') ? [{
672
+ label: '全部',
673
+ value: ''
674
+ }, ...this.$appdata.getParam('用户类型')] : [],
675
+ meter_classify: this.$appdata.getParam('气表类型') ? [{
676
+ label: '全部',
677
+ value: ''
678
+ }, ...this.$appdata.getParam('气表类型')] : [],
679
+ meterbrands: [],
680
+ f_whether_hairpin: this.$appdata.getParam('发卡状态') ? [{
681
+ label: '全部',
682
+ value: ''
683
+ }, ...this.$appdata.getParam('发卡状态')] : [],
684
+ showselectaddress: false,
685
+ isedit: false,
686
+ clientWidth: document.body.clientWidth,
687
+ batchMeterShow: false,
688
+ billData: {
689
+ url: 'rs/report/userignition',
690
+ bill: ''
691
+ },
692
+ configs: {
693
+ hasPrint: false, // 默认打票
694
+ hasBillManage: false // 默认不启用发票管理
695
+ },
696
+ printflag: false,
697
+ newdata: {},
698
+ resdata: '',
699
+ resshow: false,
700
+ useoptions: this.$appdata.getParam('使用类型'),
701
+ userlevel: this.$appdata.getParam('用户等级') ? [{label: '全部', value: ''}, ...this.$appdata.getParam('用户等级')] : [],
702
+ downbutton:false,
703
+ percent:0,
704
+ timer:'',
705
+ uuida:'',
706
+ progressShow:false,
707
+ inputsuccessmage:''
708
+ }
709
+ },
710
+ ready () {
711
+ loadParamGem(this)
712
+ console.log('%^*T^&*',this.$login)
713
+ },
714
+ compiled () {
715
+ window.onresize = () => {
716
+ return (() => {
717
+ this.clientWidth = document.body.clientWidth
718
+ })()
719
+ }
720
+ },
721
+ methods: {
722
+ progressclose(){
723
+ if(this.timer != null){
724
+ clearInterval(this.timer);
725
+ }
726
+ this.progressShow = false;
727
+ this.percent=0;
728
+ },
729
+ closeRequeset(){
730
+ this.$showMessage("确定关闭吗,当前正常导入,关闭后将无法获取导入进度!",['confirm','cancel']).then(res=>{
731
+ if(res === 'confirm'){
732
+ if(this.timer != null){
733
+ clearInterval(this.timer);
734
+ }
735
+ this.progressclose();
736
+ this.percent=0;
737
+ this.uuida='';
738
+ this.downbutton=false;
739
+ }
740
+ })
741
+ },
742
+ async getRequestReturn(){
743
+ let timer = null;
744
+ let self = this;
745
+ let param = {
746
+ uuid:this.uuida
747
+ };
748
+ this.timer = setInterval(function(){
749
+ self.$resetpost('/rs/logic/getBatchOperaPro',{data:param},{resolveMsg: null, rejectMsg: null}, 0).then((res)=>{
750
+ if(res.data && res.data.speed ){
751
+ if(res.data.speed==100 || res.data.speed>100 ){
752
+ clearInterval(self.timer);
753
+ self.percent = 99;
754
+ setTimeout(function(){
755
+ self.percent = 100
756
+ self.inputsuccessmage = `本次上传共上传${res.data.totalsum}条数据, 成功${res.data.successsum}条,失败${res.data.errorsum}条,具体失败数据请在稽查查询错误查询中查看!!`
757
+ self.downbutton = true;
758
+ },100);
759
+ }else{
760
+ self.percent = res.data.speed
761
+ }
762
+ }
763
+ });
764
+ },2000);
765
+ },
766
+ getuuid(){
767
+ let uuidA = '';
768
+ var s = [];
769
+ var hexDigits = '0123456789abcdef';
770
+ for (var i = 0; i < 36; i++) {
771
+ s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
772
+ }
773
+ s[14] = '4';
774
+ s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1);
775
+ s[8] = s[13] = s[18] = s[23] = '-';
776
+ uuidA = s.join('');
777
+ this.uuida = uuidA;
778
+ },
779
+ getRes (obj) {
780
+ this.orgCondtionStr = obj
781
+ if(this.$refs.paged.$refs.criteria.$refs.sel.depresid.length>0){
782
+ this.f_filialeid=this.$refs.paged.$refs.criteria.$refs.sel.depresid[0]
783
+ if (this.$refs.paged.$refs.criteria.$refs.sel.userresid.length==0){
784
+ this.createFile = false
785
+ this.orgs=null
786
+ }
787
+ }else{
788
+ this.f_filialeid=this.$login.f.orgid
789
+ }
790
+ },
791
+ // async getChildOrg(){
792
+ // let results = await this.$resetpost('rs/sql/saleSingleTable', {
793
+ // data: {
794
+ // tablename: 't_organization',
795
+ // condition: `parentid = '${this.$login.f.orgid}'`
796
+ // }
797
+ // }, {resolveMsg: null, rejectMsg: '获取子公司失败'})
798
+ // return results
799
+ // },
800
+ /**
801
+ * 退出用户详细信息页面
802
+ */
803
+ cancel () {
804
+ this.isShowDetailInfo = false
805
+ },
806
+ /**
807
+ * 展示用户详细信息
808
+ * @param obj 传递的row
809
+ */
810
+ dealmsg (obj) {
811
+ console.log('==================>', obj)
812
+ this.isShowDetailInfo = true
813
+ this.rowData = obj
814
+ },
815
+ async doCopy () {
816
+ await this.$copyText(this.resdata)
817
+ this.resshow = false
818
+ this.$showAlert(`内容已复制到剪切板!`, 'success', 2000)
819
+ },
820
+ close () {
821
+ this.printflag = false
822
+ this.clean()
823
+ },
824
+ close2 () {
825
+ this.resshow = false
826
+ },
827
+ closemodal () {
828
+ this.batchMeterShow = false
829
+ },
830
+ createInfoForFile () {
831
+ this.batchMeterShow = true
832
+ },
833
+ hidden () {
834
+ this.criteriaShow = !this.criteriaShow
835
+ },
836
+ search () {
837
+ this.$refs.paged.$refs.criteria.search()
838
+ },
839
+ modifyUser (row) {
840
+ this.isOper = true
841
+ this.createFile = true
842
+ this.isedit = true
843
+ this.row = row
844
+ this.areainfo = null
845
+ this.row.version = row.version
846
+ },
847
+ clean () {
848
+ this.createFile = false
849
+ this.row = null
850
+ this.isOper = false
851
+ this.areainfo = null
852
+ // this.$refs.paged.$refs.grid.select(null)
853
+ this.$refs.paged.$refs.grid.model.rows = this.rows
854
+ },
855
+ async createnewfile () {
856
+ // await this.getChildOrg()
857
+ if(this.f_filialeid!=this.$login.f.orgid ){
858
+ if (this.$refs.paged.$refs.criteria.$refs.sel.userresid.length==0){
859
+ this.$showAlert('选择的公司与登陆人的公司不同,请先选择左侧的部门', 'warning', 2000)
860
+ return
861
+ }else{
862
+ this.orgs={
863
+ f_orgid:this.f_filialeid,
864
+ f_depid:this.$refs.paged.$refs.criteria.$refs.sel.userresid[0],
865
+ f_orgname:this.$refs.paged.$refs.criteria.$refs.sel.obj.orgnames[0],
866
+ f_depname:this.$refs.paged.$refs.criteria.$refs.sel.obj.depnames[0]
867
+ }
868
+ }
869
+ }else{
870
+ this.orgs=null
871
+ }
872
+ this.isOper = true
873
+ this.createFile = true
874
+ this.isedit = false
875
+ this.row = null
876
+ this.areainfo = null
877
+ this.$refs.info.clearinfo()
878
+ },
879
+ renew () {
880
+ this.row = null
881
+ this.areainfo = null
882
+ this.isOper = false
883
+ this.$refs.info.clearinfo()
884
+ this.clearCondition()
885
+ this.search()
886
+ // 建档或修正档案成功刷新地址列表
887
+ this.$refs.addressfiles.$refs.paged.$refs.cri.search()
888
+ },
889
+ clearCondition () {
890
+ Object.keys(this.$refs.paged.$refs.criteria.model).forEach((key) => {
891
+ this.$refs.paged.$refs.criteria.model[key] = ''
892
+ })
893
+ },
894
+
895
+ bulkOperations (name, type) {
896
+ if (name === '批量销户') {
897
+ this.batcan = true
898
+ this.batenable = false
899
+ this.newArea = false
900
+ } else if (name === '批量启用') {
901
+ this.batenable = true
902
+ this.batcan = false
903
+ this.newArea = false
904
+ }
905
+ },
906
+ closexiaohu () {
907
+ this.xiaohushow = false
908
+ },
909
+ xiaohu () {
910
+ this.xiaohushow = true
911
+ },
912
+ batchCancellation () {
913
+ this.$showMessage('此操作无法还原,是否确定要批量销户?', ['confirm', 'cancel']).then(async (res) => {
914
+ if (res === 'confirm') {
915
+ var infoIds = []
916
+ var count = 0
917
+ this.model.rows.forEach((item) => {
918
+ item.f_state = '有效'
919
+ item.f_user_state = item.f_user_state
920
+ item.f_operat_type = '销户'
921
+ item.f_operator = Vue.$login.f.name
922
+ item.f_operatorid = Vue.$login.f.id
923
+ item.f_orgid = Vue.$login.f.orgid
924
+ item.f_orgname = Vue.$login.f.orgs
925
+ item.f_depid = Vue.$login.f.depids
926
+ item.f_depname = Vue.$login.f.deps
927
+ item.f_describe = `${Vue.$login.f.name}对${item.f_user_name}进行批量销户`
928
+ item.f_comments = this.xiaohureason
929
+ infoIds.push(item)
930
+ count++
931
+ })
932
+ await this.$resetpost('rs/logic/saveCancellation', {infoIds: infoIds}, {resolveMsg: null, rejectMsg: '批量销户失败'}).then((res) => {
933
+ if(res && res.data){
934
+ this.$showMessage(`本次批量销户总计: ${res.data.allnum}户 ,成功: ${res.data.successnum}户 ,失败(已经销户): ${res.data.errornum2} 户,失败(待审核): ${res.data.errornum1}户 `);
935
+ }
936
+ this.xiaohushow = false
937
+ this.close()
938
+ this.search()
939
+ })
940
+ }
941
+ })
942
+ },
943
+ batchSuccess () {
944
+ this.clearCondition()
945
+ this.batchClean()
946
+ },
947
+ batchClean () {
948
+ this.batcan = false
949
+ this.batenable = false
950
+ this.newArea = false
951
+ this.search()
952
+ },
953
+ buildFile (row) {
954
+ // console.log('我是建档。。。', row)
955
+ this.row = row
956
+ },
957
+ // 小区批量建档
958
+ bulidFiles (row) {
959
+ this.row = null
960
+ this.areainfo = row
961
+ // 将列表的数据清空
962
+ this.$refs.paged.$refs.grid.model.rows = []
963
+ },
964
+ // 小区批量建档成功
965
+ buildFileSuccess (data) {
966
+ // console.log('建档案成功', data)
967
+ this.model.rows.unshift(data)
968
+ },
969
+ selfSearch (args) {
970
+ console.log('开始查询档案', this.f_filialeid)
971
+ if (!this.f_filialeid) {
972
+ this.f_filialeid = this.$login.f.orgid
973
+ }
974
+ if (!this.orgCondtionStr) {
975
+ args.condition = `${args.condition}` + ' and f_orgid = ' + this.$login.f.orgid
976
+ } else {
977
+ args.condition = `${args.condition}` + this.orgCondtionStr
978
+ }
979
+ this.criteriaShow = false
980
+ this.$refs.paged.$refs.grid.$el.scrollTop = 0
981
+ this.model.search(args.condition, args.model)
982
+ this.clean()
983
+ },
984
+ // printok () {
985
+ // console.log("======================")
986
+ // //this.$dispatch('success')
987
+ // },
988
+ sort (field, rule) {
989
+ // 将所有排序方式设为不排序,实现相互排斥
990
+ for (let key in this.orderFields) {
991
+ if (key === field) {
992
+ this.orderFields[key] = rule
993
+ } else {
994
+ this.orderFields[key] = 'no'
995
+ }
996
+ }
997
+ // 如果新规则不排序,还原为默认排序
998
+ if (rule === 'no') {
999
+ this.model.paramSource.orderitem = `'${this.orderDefault}'`
1000
+ } else {
1001
+ this.model.paramSource.orderitem = `'${field} ${rule}'`
1002
+ }
1003
+
1004
+ this.search()
1005
+ },
1006
+
1007
+ getLocation (row) {
1008
+ // 可能会存在添加,完善,建档
1009
+ addressInfoGen(this, row)
1010
+ },
1011
+ areaFiles (row) {
1012
+ row.isEdit = true
1013
+ row.f_residential_area_id = row.id
1014
+ // row.id = null
1015
+ delete row.id
1016
+ this.bulidFiles(row)
1017
+ },
1018
+ initAdjustables () {
1019
+ console.log('初始化调压箱', this.$GetSaleParam)
1020
+ let arr = []
1021
+ let filter = this.$login.f.orgid
1022
+ this.$GetSaleParam.getAdjustable(filter).forEach((item) => {
1023
+ let temp = {}
1024
+ temp.label = `[${item.value.f_adjustable_id}]-${item.label}`
1025
+ temp.value = `${item.value.id}`
1026
+ arr.push(temp)
1027
+ })
1028
+ this.adjustables = [{label: '全部', value: ''}, ...arr]
1029
+ // 初始化气表品牌
1030
+ let brandArr = []
1031
+ this.$GetSaleParam.getGasbrand().forEach((item) => {
1032
+ let temp1 = {}
1033
+ temp1.label = item.label
1034
+ temp1.value = item.value.f_meter_brand
1035
+ brandArr.push(temp1)
1036
+ })
1037
+ this.meterbrands = [{label: '全部', value: ''}, ...brandArr]
1038
+ },
1039
+ importFile () {
1040
+ this.show = true
1041
+ },
1042
+ clear () {
1043
+ Object.keys(this.$refs.paged.$refs.criteria.model).forEach((key) => {
1044
+ this.$refs.paged.$refs.criteria.model[key] = []
1045
+ })
1046
+ },
1047
+ getorg (val) {
1048
+ this.f_filialeid = val[0]
1049
+ }
1050
+ },
1051
+ computed: {
1052
+ getPricenames() {
1053
+ let f_filialeid = this.f_filialeid
1054
+ let result = []
1055
+ this.$GetSaleParam.prices.forEach((item) => {
1056
+ if (item.f_state === '有效') {
1057
+ let value = {
1058
+ label: item.f_price_name,
1059
+ value: item.f_price_name
1060
+ }
1061
+ result.push(value)
1062
+ }
1063
+ })
1064
+ return Array.from(new Set(result))
1065
+ },
1066
+ userstates () {
1067
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('客户状态')]
1068
+ },
1069
+ usegas () {
1070
+ return [{label: '全部', value: ''}, {label: '是', value: '是'}, {label: '否', value: '否'}]
1071
+ },
1072
+ areas () {
1073
+ let rs = []
1074
+ for (let i = 0; i < this.$login.f.f_allArea.length; i++) {
1075
+ let temp = {
1076
+ label: this.$login.f.f_allArea[i].label,
1077
+ value: this.$login.f.f_allArea[i].label
1078
+ }
1079
+ rs.push(temp)
1080
+ }
1081
+ return [{label: '全部', value: ''}, ...rs]
1082
+ },
1083
+ firestates () {
1084
+ return [
1085
+ {label: '全部', value: ''},
1086
+ {label: '点火', value: '1'},
1087
+ {label: '未点火', value: '0'}
1088
+ ]
1089
+ },
1090
+ jurisdiction () {
1091
+ return this.$login.r
1092
+ }
1093
+ },
1094
+ watch: {
1095
+ // 每次查询将查询到的数据存储起来,供选择操作后的替换
1096
+ 'model.state' (val) {
1097
+ if (val === '正确') {
1098
+ this.rows = this.model.rows
1099
+ }
1100
+ },
1101
+ 'f_filialeid' (val) {
1102
+ loadParamGem(this)
1103
+ }
1104
+ },
1105
+ events: {
1106
+ FileUpload: function (file, res) {
1107
+ let data = {
1108
+ tablename: 't_userinfo',
1109
+ filepath: res.path
1110
+ }
1111
+ this.$resetpost('rs/logic/import', data, {resolveMsg: null, rejectMsg: '上传失败'}).then((res) => {
1112
+ this.close()
1113
+ this.$showAlert(`一共上传${res.data.total}条数据, 成功${res.data.successnum}条`, 'success', 2000)
1114
+ this.search()
1115
+ })
1116
+ },
1117
+ 'onFileUpload': async function (file, res) {
1118
+ if (this.batchMeterShow) {
1119
+ // this.iswork = true
1120
+ this.getuuid();
1121
+ if(this.uuida == '') return;
1122
+ // 当前上传的是批量导入的档案
1123
+ let batchParam = {
1124
+ filepath: res.f_downloadpath,
1125
+ f_operator: this.$login.f.name,
1126
+ f_operatorid: this.$login.f.id,
1127
+ f_orgid: this.$login.f.orgid,
1128
+ f_orgname: this.$login.f.orgs,
1129
+ f_depid: this.$login.f.depids,
1130
+ f_depname: this.$login.f.deps,
1131
+ uuid: this.uuida
1132
+ }
1133
+ let jobParam = {
1134
+ f_operatorid: this.$login.f.id,
1135
+ total: 0,
1136
+ operator: this.$login.f.orgs +":"+ this.$login.f.deps +":"+ Vue.$login.f.name,
1137
+ jobType: "批量建档"
1138
+ }
1139
+ let param = {
1140
+ jobParam: jobParam,
1141
+ batchParam: batchParam
1142
+ }
1143
+ let self = this
1144
+ try {
1145
+ self.progressShow = true;
1146
+ axios.post('rs/business/batchRunExcel/filemanage_fileSave_tongchuan/newSettleFileImport_tongchuan',
1147
+ {data: param}, {timeout: 30000}).then((res) => {
1148
+ })
1149
+ self.percent=0;
1150
+ self.getRequestReturn();
1151
+ } catch (error) {
1152
+ if (error.response) {
1153
+ if (error.response.status == 500) {
1154
+ this.$showAlert('服务繁忙,请重试!!!', 'danger', 3000)
1155
+ } else if (error.response.status == 404) {
1156
+ this.$showAlert('服务运行中,请耐心等待后进行重试!!', 'danger', 3000)
1157
+ } else {
1158
+ this.$showAlert(error.response.data, 'danger', 2000)
1159
+ }
1160
+ console.log(error.response.data)
1161
+ console.log(error.response.status)
1162
+ console.log(error.response.headers)
1163
+ } else if (error.request) {
1164
+ console.log(error.request)
1165
+ this.$showAlert(error.request, 'danger', 2000)
1166
+ } else {
1167
+ console.log('Error', error.message)
1168
+ this.$showAlert(error.message, 'danger', 2000)
1169
+ }
1170
+ this.iswork = false
1171
+ }
1172
+ this.batchMeterShow = false
1173
+ // this.$showAlert(`一共上传${res.data.total}条数据, 成功${res.data.successnum}条`, 'success', 2000)
1174
+ this.search()
1175
+ } else {
1176
+ let data = {
1177
+ tablename: 't_userinfo',
1178
+ filepath: res.f_downloadpath,
1179
+ f_operator: this.$login.f.name,
1180
+ f_operatorid: this.$login.f.id,
1181
+ f_orgid: this.$login.f.orgid,
1182
+ f_orgname: this.$login.f.orgs,
1183
+ f_depid: this.$login.f.depids,
1184
+ f_depname: this.$login.f.deps
1185
+ }
1186
+ this.$resetpost('rs/logic/sale_userfilesImp', {data: data}, {
1187
+ resolveMsg: null,
1188
+ rejectMsg: '上传失败'
1189
+ }).then((res) => {
1190
+ this.show = false
1191
+ this.$showAlert(`一共上传${res.data.total}条数据, 成功${res.data.successnum}条`, 'success', 2000)
1192
+ this.search()
1193
+ })
1194
+ }
1195
+ },
1196
+ 'confirmaddress' (res) {
1197
+ console.log('选定地址', res)
1198
+ }
1199
+ }
1200
+ }
1201
+ </script>
1202
+ <style>
1203
+ .nav-tabss ul > li > a {
1204
+ padding: 5px 10px;
1205
+ }
1206
+ </style>