manage-client-xy 3.2.28 → 3.2.30

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 (31) hide show
  1. package/build/dev-server.js +2 -2
  2. package/package.json +1 -1
  3. package/src/components/SellReport/FinancialStatement.vue +30 -0
  4. package/src/components/SellReport/ManageBusSummary.vue +241 -241
  5. package/src/components/SellReport/SmartKitchenSummary.vue +275 -275
  6. package/src/components/SellReport/UserNumber.vue +30 -0
  7. package/src/components/SellReport/XianYangNewCharge.vue +355 -355
  8. package/src/components/sale/businessquery/AreaGeneralQuery.vue +715 -700
  9. package/src/components/sale/businessquery/CMHGasQuery.vue +441 -411
  10. package/src/components/sale/businessquery/ChangeMeterQuery.vue +659 -630
  11. package/src/components/sale/businessquery/ChangeUserQuery.vue +403 -373
  12. package/src/components/sale/businessquery/ChargeQuery.vue +1027 -997
  13. package/src/components/sale/businessquery/DisableQuery.vue +433 -403
  14. package/src/components/sale/businessquery/EnableQuery.vue +422 -392
  15. package/src/components/sale/businessquery/FMYGasQuery.vue +440 -410
  16. package/src/components/sale/businessquery/FillCardQuery.vue +522 -492
  17. package/src/components/sale/businessquery/FillGasQuery.vue +506 -476
  18. package/src/components/sale/businessquery/HandplanQuery.vue +728 -698
  19. package/src/components/sale/businessquery/LogQuery.vue +301 -269
  20. package/src/components/sale/businessquery/NewAccountQuery.vue +518 -488
  21. package/src/components/sale/businessquery/OtherChargeQuery.vue +432 -402
  22. package/src/components/sale/businessquery/RecordQuery.vue +399 -369
  23. package/src/components/sale/businessquery/ResidentialQuery.vue +417 -387
  24. package/src/components/sale/businessquery/ReverseQuery.vue +459 -429
  25. package/src/components/sale/businessquery/SellingHand.vue +408 -378
  26. package/src/components/sale/businessquery/TransferQuery.vue +589 -559
  27. package/src/components/sale/businessquery/cancelAccountQuery.vue +518 -488
  28. package/src/components/sale/filesquery/DeviceQuery.vue +30 -0
  29. package/src/components/sale/filesquery/MeterQuery.vue +30 -0
  30. package/src/components/sale/filesquery/UserQuery.vue +796 -764
  31. package/src/components/webmeter/DrillData/UserGasAll.vue +30 -1
@@ -1,764 +1,796 @@
1
- <template>
2
- <div id="unit" class="flex-row">
3
- <div class="basic-main" @keyup.enter="search">
4
- <div class="flex">
5
- <div style="flex:1;" class="flex" v-if="!show">
6
- <criteria-paged :model="model" v-ref:paged @sort="sort">
7
- <criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:cri>
8
- <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
9
- <div class="row">
10
- <div class="col-sm-2">
11
- <label class="font_normal_body">客户编号</label>
12
- <input type="text" style="width:60%" class="input_search" v-model="model.f_userinfo_code"
13
- condition="f_userinfo_code = '{}' " placeholder="客户编号">
14
- </div>
15
- <div class="col-sm-2">
16
- <label class="font_normal_body">客户名称</label>
17
- <input type="text" style="width:60%" class="input_search" v-model="model.f_user_name"
18
- condition="f_user_name like '%{}%'" placeholder="客户名称">
19
- </div>
20
- <div class="col-sm-2">
21
- <label class="font_normal_body">客户电话</label>
22
- <input type="text" style="width:60%" class="input_search" v-model="model.f_user_phone"
23
- condition="f_user_phone like '%{}%'" placeholder="客户电话">
24
- </div>
25
- <div class="span" style="float:right;">
26
- <button class="button_search button_spacing" @click="search()">查询</button>
27
- <button class="button_clear button_spacing" @click="$parent.$parent.clear()">清空</button>
28
- <!--<button class="btn btn-default" @click="$parent.$parent.stamp()">打印</button>-->
29
-
30
- <export-excel :data="$parent.$parent.exportCondition"
31
- :field="$parent.$parent.getExportField"
32
- v-if="$parent.$parent.authArr.includes('档案查询导出') && $parent.$parent.jurisdiction.includes('excel导出')"
33
- sqlurl="rs/logic/exportfile" sql-name="filesQuery" template-name='用户查询导出'
34
- :choose-col="true"></export-excel>
35
-
36
- <div style="float: right" class="button_spacing" :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}" @click="$parent.$parent.hidden()"></div>
37
- </div>
38
- </div>
39
- <div class="row" v-show="$parent.$parent.criteriaShow">
40
- <div class="col-sm-2">
41
- <label class="font_normal_body">身份证号</label>
42
- <input type="text" style="width:60%" class="input_search" v-model="model.f_idnumber"
43
- condition="f_idnumber like '%{}%'" placeholder="身份证号">
44
- </div>
45
- <div class="col-sm-2">
46
- <label class="font_normal_body">客户状态</label>
47
- <v-select :value.sync="model.f_user_state"
48
- v-model="model.f_user_state" multiple
49
- :options='$parent.$parent.userstates' placeholder='请选择'
50
- condition="f_user_state in {}"
51
- close-on-select></v-select>
52
- </div>
53
- <div class="col-sm-2">
54
- <label class="font_normal_body">开户状态</label>
55
- <v-select :value.sync="model.f_open_date"
56
- v-model="model.f_open_date"
57
- :options='$parent.$parent.openstate' placeholder='请选择'
58
- condition="f_open_date is {}"
59
- close-on-select></v-select>
60
- </div>
61
- <div class="col-sm-2 form-group">
62
- <label class="font_normal_body">用户分类</label>
63
- <v-select :value.sync="model.f_user_type"
64
- @change="$parent.$parent.userTypeChange"
65
- :options='$parent.$parent.usertypes' placeholder='请选择' v-model="model.f_user_type"
66
- condition="f_user_type = '{}'"
67
- close-on-select></v-select>
68
- </div>
69
- <div class="col-sm-2 form-group">
70
- <label class="font_normal_body">用户类型</label>
71
- <v-select :value.sync="model.f_user_mold"
72
- @change="$parent.$parent.userMoldChange"
73
- :options='$parent.$parent.usermold' placeholder='请选择' v-model="model.f_user_mold"
74
- condition="f_user_mold = '{}'"
75
- close-on-select></v-select>
76
- </div>
77
- <div class="col-sm-2 form-group">
78
- <label class="font_normal_body">用气性质</label>
79
- <v-select :value.sync="model.f_gasproperties" v-model="model.f_gasproperties"
80
- :options='$parent.$parent.gasproperties' placeholder='请选择'
81
- condition="f_gasproperties = '{}'"
82
- close-on-select></v-select>
83
- </div>
84
- <div class="col-sm-2">
85
- <label class="font_normal_body">&nbsp;&nbsp;&nbsp;人数&nbsp;&nbsp;&nbsp;</label>
86
- <input type="text" style="width:60%" class="input_search" v-model="model.f_people_num"
87
- condition="f_people_num = '{}'" placeholder="人数">
88
- </div>
89
- <!--<div class="col-sm-2">
90
- <label class="font_normal_body">&nbsp;&nbsp;&nbsp;片区&nbsp;&nbsp;&nbsp;</label>
91
- <v-select
92
- :value.sync="model.f_slice_area"
93
- v-model="model.f_slice_area"
94
- :options='$parent.$parent.sliceArea'
95
- placeholder='请选择'
96
- condition="f_slice_area = '{}'"
97
- close-on-select></v-select>
98
- </div>-->
99
- <div class="col-sm-2">
100
- <label class="font_normal_body">微信绑定</label>
101
- <v-select
102
- :value.sync="model.f_wechat"
103
- v-model="model.f_wechat"
104
- :options='$parent.$parent.weixinSign'
105
- placeholder='请选择'
106
- condition="f_wechat = '{}'"
107
- close-on-select>
108
- </v-select>
109
- </div>
110
- <div class="col-sm-2">
111
- <label class="font_normal_body">客户地址</label>
112
- <input type="text" style="width:60%" class="input_search" v-model="model.f_address"
113
- condition="f_address like '%{}%'" placeholder='客户地址'>
114
- </div>
115
-
116
- <!-- <div class="col-sm-2">-->
117
- <!-- <label class="font_normal_body">&nbsp;&nbsp;&nbsp;小区&nbsp;&nbsp;&nbsp;</label>-->
118
- <!-- <input type="text" style="width:60%" class="input_search" v-model="model.f_residential_area"-->
119
- <!-- condition="f_residential_area like '%{}%'" placeholder="小区"/>-->
120
- <!-- <div class="col-sm-8">-->
121
- <!-- <input type="text" v-show="false" v-model="model.f_residential_area" class="input_search" style="width: 80%"-->
122
- <!-- v-validate:f_residential_area='{required: true }'>-->
123
- <!-- <v-select :value.sync="model.f_residential_area" :value-single="true"-->
124
- <!-- class="select_list select"-->
125
- <!-- :options='fresidentialarea' placeholder='请选择'-->
126
- <!-- close-on-select search="true">-->
127
- <!-- </v-select>-->
128
- <!-- </div>-->
129
- <!-- </div>-->
130
- <div class="col-sm-2">
131
- <label class="font_normal_body">&nbsp;&nbsp;&nbsp;小区&nbsp;&nbsp;&nbsp;</label>
132
- <v-select :value.sync="model.f_residential_area"
133
- class="select_list select"
134
- enter-push
135
- v-model="model.f_residential_area"
136
- style="width: 60%"
137
- multiple="true"
138
- :options='$parent.$parent.residentialArea' placeholder='选择小区' >
139
- </v-select>
140
- </div>
141
- <div class="col-sm-2">
142
- <label class="font_normal_body">&nbsp;&nbsp;&nbsp;楼栋&nbsp;&nbsp;&nbsp;</label>
143
- <input type="text" style="width:60%" class="input_search" v-model="model.f_building"
144
- condition="f_building like '%{}%'" placeholder="楼栋"/>
145
- </div>
146
- <div class="col-sm-2">
147
- <label class="font_normal_body">&nbsp;&nbsp;建档人&nbsp;</label>
148
- <input type="text" style="width:60%" class="input_search" v-model="model.f_createfile_person"
149
- condition="f_createfile_person = '{}'" placeholder="建档人"/>
150
- </div>
151
- <div class="col-sm-2">
152
- <label class="font_normal_body">&nbsp;&nbsp;&nbsp;单元&nbsp;&nbsp;&nbsp;</label>
153
- <input type="text" style="width:60%" class="input_search" v-model="model.f_unit"
154
- condition="f_unit like '%{}%'" placeholder="单元"/>
155
- </div>
156
- <div class="col-sm-2">
157
- <label class="font_normal_body">&nbsp;&nbsp;&nbsp;楼层&nbsp;&nbsp;&nbsp;</label>
158
- <input type="text" style="width:60%" class="input_search" v-model="model.f_floor"
159
- condition="f_floor like '%{}%'" placeholder="楼层"/>
160
- </div>
161
- <div class="col-sm-2">
162
- <label class="font_normal_body">&nbsp;&nbsp;&nbsp;门牌号</label>
163
- <input type="text" style="width:60%" class="input_search" v-model="model.f_room"
164
- condition="f_room like '%{}%'" placeholder="门牌号">
165
- </div>
166
- <div class="col-sm-2">
167
- <label class="font_normal_body">&nbsp;&nbsp;&nbsp;区域码</label>
168
- <input type="text" style="width:60%" class="input_search" v-model="model.f_area_code"
169
- condition="f_area_code = '{}'" placeholder="区域码">
170
- </div>
171
- <!-- <div class="col-sm-2" >-->
172
- <!-- <label for="f_balance" class="font_normal_body">账户结余</label>-->
173
- <!-- <div class="form-group">-->
174
- <!-- <v-input id="f_balance" placeholder="账户结余"-->
175
- <!-- :expression.sync = 'model.f_balance'-->
176
- <!-- v-model="model.f_balance"-->
177
- <!-- condition= "f_balance {}"-->
178
- <!-- :show-reset-button="reset"-->
179
- <!-- v-ref:f_balance>-->
180
- <!-- </v-input>-->
181
- <!-- </div>-->
182
- <!-- </div>-->
183
- <div class="col-sm-2">
184
- <label for="startDate" class="font_normal_body">开始日期</label>
185
- <datepicker id="startDate" placeholder="开始日期" style="width:60%"
186
- v-model="model.startDate"
187
- :value.sync="model.startDate"
188
- :format="'yyyy-MM-dd'"
189
- :show-reset-button="true"
190
- condition="f_createfile_date >= to_date('{} 00:00:00','yyyy-mm-dd hh24:mi:ss')">
191
- </datepicker>
192
- </div>
193
- <div class="col-sm-2">
194
- <label for="endDate" class="font_normal_body">结束日期</label>
195
- <datepicker id="endDate" placeholder="结束日期" style="width:60%"
196
- v-model="model.endDate"
197
- :value.sync="model.endDate"
198
- :format="'yyyy-MM-dd'"
199
- :show-reset-button="true"
200
- condition="f_createfile_date <= to_date('{} 23:59:59','yyyy-mm-dd hh24:mi:ss')">
201
- </datepicker>
202
- </div>
203
-
204
- <div class="col-sm-2">
205
- <label class="font_normal_body">通气时间</label>
206
- <datepicker placeholder="通气开始时间" style="width:60%"
207
- v-model="model.f_gas_date"
208
- :value.sync="model.f_gas_date"
209
- :format="'yyyy-MM-dd'"
210
- :show-reset-button="true"
211
- condition="F_GAS_DATE >= to_date('{} 00:00:00','yyyy-mm-dd hh24:mi:ss')">
212
- </datepicker>
213
- </div>
214
- <div class="col-sm-2">
215
- <label class="font_normal_body">通气时间</label>
216
- <datepicker placeholder="通气结束时间" style="width:60%"
217
- v-model="model.f_gas_dateend"
218
- :value.sync="model.f_gas_dateend"
219
- :format="'yyyy-MM-dd'"
220
- :show-reset-button="true"
221
- condition="F_GAS_DATE <= to_date('{} 23:59:59','yyyy-mm-dd hh24:mi:ss')">
222
- </datepicker>
223
- </div>
224
- <div class="col-sm-2">
225
- <label class="font_normal_body">缴费时间</label>
226
- <datepicker placeholder="报警器缴费开始" style="width:60%"
227
- v-model="model.f_devices_date"
228
- :value.sync="model.f_devices_date"
229
- :format="'yyyy-MM-dd'"
230
- :show-reset-button="true"
231
- condition="f_devices_date >= to_date('{} 00:00:00','yyyy-mm-dd hh24:mi:ss')">
232
- </datepicker>
233
- </div>
234
- <div class="col-sm-2">
235
- <label class="font_normal_body">缴费时间</label>
236
- <datepicker placeholder="报警器缴费结束" style="width:60%"
237
- v-model="model.f_devices_date1"
238
- :value.sync="model.f_devices_date1"
239
- :format="'yyyy-MM-dd'"
240
- :show-reset-button="true"
241
- condition="f_devices_date <= to_date('{} 23:59:59','yyyy-mm-dd hh24:mi:ss')">
242
- </datepicker>
243
- </div>
244
- <res-select-group :initres="$parent.$parent.initres" @re-res="$parent.$parent.getRes"></res-select-group>
245
- <div class="col-sm-2">
246
- <label class="font_normal_body">气表分类</label>
247
- <v-select :value.sync="model.f_meter_classify"
248
- v-model="model.f_meter_classify"
249
- :options='$parent.$parent.metertypes' placeholder='请选择'
250
- condition="f_meter_classify = '{}'"
251
- close-on-select></v-select>
252
- </div>
253
- <div class="col-sm-2">
254
- <label class="font_normal_body">气表状态</label>
255
- <v-select :value.sync="model.f_table_state"
256
- v-model="model.f_table_state" multiple
257
- :options='$parent.$parent.meterstate' placeholder='请选择'
258
- condition="f_table_state in {}"
259
- close-on-select></v-select>
260
- </div>
261
- </div>
262
- </div>
263
- </criteria>
264
-
265
- <data-grid :model="model" partial='list' class="list_area table_sy" @dblclick="$parent.dblclick" v-ref:grid>
266
- <template partial='head'>
267
- <tr>
268
- <th>
269
- <data-order field="f_userinfo_code" name="客户编号"></data-order>
270
- </th>
271
- <th>
272
- <nobr>客户名称</nobr>
273
- </th>
274
- <th>
275
- <nobr>客户电话</nobr>
276
- </th>
277
- <th>
278
- <nobr>身份证号</nobr>
279
- </th>
280
- <th>
281
- <nobr>表上余额</nobr>
282
- </th>
283
- <th>
284
- <nobr>客户地址</nobr>
285
- </th>
286
- <th>
287
- <nobr>小区</nobr>
288
- </th>
289
- <th>
290
- <nobr>楼栋</nobr>
291
- </th>
292
- <th>
293
- <nobr>单元</nobr>
294
- </th>
295
- <th>
296
- <nobr>楼层</nobr>
297
- </th>
298
- <th>
299
- <nobr>门牌号</nobr>
300
- </th>
301
- <th>
302
- <nobr>客户状态</nobr>
303
- </th>
304
- <th>
305
- <nobr>建档日期</nobr>
306
- </th>
307
- <th>
308
- <nobr>报警器缴费时间</nobr>
309
- </th>
310
- <th>
311
- <nobr>通气时间</nobr>
312
- </th>
313
- <th>
314
- <nobr>建档人</nobr>
315
- </th>
316
- <th>
317
- <nobr>备注</nobr>
318
- </th>
319
- <!-- <th>-->
320
- <!-- <nobr>部门</nobr>-->
321
- <!-- </th>-->
322
- <!-- <th>-->
323
- <!-- <nobr>公司</nobr>-->
324
- <!-- </th>-->
325
- </tr>
326
- </template>
327
- <template partial='body'>
328
- <td style="text-align: center;"><nobr>
329
- <span @click="$parent.$parent.$parent.showmsg(row)"><a>{{row.f_userinfo_code}}</a></span>
330
- </nobr> </td>
331
- <td style="text-align: center;">
332
- <nobr>{{row.f_user_name}}</nobr>
333
- </td>
334
- <td style="text-align: center;">
335
- <nobr>{{row.f_user_phone}}</nobr>
336
- </td>
337
- <td style="text-align: center;">
338
- <nobr>{{row.f_idnumber}}</nobr>
339
- </td>
340
- <td style="text-align: center;">
341
- <nobr>{{row.f_balance_amount}}</nobr>
342
- </td>
343
- <td style="text-align: center;">
344
- <nobr>{{row.f_address}}</nobr>
345
- </td>
346
- <td style="text-align: center;">
347
- <nobr>{{row.f_residential_area}}</nobr>
348
- </td>
349
- <td style="text-align: center;">
350
- <nobr>{{row.f_building}}{{row.f_building_suffix}}</nobr>
351
- </td>
352
- <td style="text-align: center;">
353
- <nobr>{{row.f_unit}}{{row.f_unit_suffix}}</nobr>
354
- </td>
355
- <td style="text-align: center;">
356
- <nobr>{{row.f_floor}}{{row.f_floor_suffix}}</nobr>
357
- </td>
358
- <td style="text-align: center;">
359
- <nobr>{{row.f_room}}{{row.f_room_suffix}}</nobr>
360
- </td>
361
- <td style="text-align: center;">
362
- <nobr>{{row.f_user_state}}</nobr>
363
- </td>
364
- <td style="text-align: center;">
365
- <nobr>{{row.f_createfile_date}}</nobr>
366
- </td>
367
- <td style="text-align: center;">
368
- <nobr>{{row.f_devices_date}}</nobr>
369
- </td>
370
- <td style="text-align: center;">
371
- <nobr>{{row.f_gas_date}}</nobr>
372
- </td>
373
- <td style="text-align: center;">
374
- <nobr>{{row.f_createfile_person}}</nobr>
375
- </td>
376
- <td style="text-align: center;">
377
- <nobr>{{row.f_comments}}</nobr>
378
- </td>
379
- <!-- <td style="text-align: center;">-->
380
- <!-- <nobr>{{row.f_depname}}</nobr>-->
381
- <!-- </td>-->
382
- <!-- <td style="text-align: center;">-->
383
- <!-- <nobr>{{row.f_orgname}}</nobr>-->
384
- <!-- </td>-->
385
- </template>
386
- <template partial='foot'>
387
- </template>
388
- </data-grid>
389
- </criteria-paged>
390
-
391
- <table class="table-hover">
392
- <tr style="position: relative" class="table-bordered">
393
- <td
394
- style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;color: #5CB95C;font-weight: bold">
395
- 汇总信息
396
- </td>
397
- <td style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px">
398
- 结余合计:&emsp;{{sumsmodel.f_balance}}
399
- </td>
400
- </tr>
401
- </table>
402
-
403
- <!--<modal :show.sync="printshow" v-ref:modal backdrop="false">-->
404
- <!--<header slot="modal-header" class="modal-header text-center">-->
405
- <!--<h4 class="modal-title">打印列选择</h4>-->
406
- <!--<input type="checkbox" class="" id="f_generations" v-model="all">-->
407
- <!--<label for="f_generations" class="font-size">全选</label>-->
408
- <!--</header>-->
409
- <!--<article slot="modal-body">-->
410
- <!--<div class="auto col-sm-11 col-md-offset-1" style="margin-top: 10px;">-->
411
- <!--<div class="col-sm-3" v-for="f in fields">-->
412
- <!--<input type="checkbox" class="" :id="'water-owe-details-'+$index" v-model="modelval" :value="$key">-->
413
- <!--<label :for="'water-owe-details-'+$index" class="font-size">{{f}}</label>-->
414
- <!--</div>-->
415
- <!--</div>-->
416
- <!--</article>-->
417
- <!--<footer slot="modal-footer" class="modal-footer">-->
418
- <!--<center>-->
419
- <!--<button v-show="printshow" type="button" class="btn btn-default" @click='close()'>取消</button>-->
420
- <!--<button v-show="printshow" type="button" class="btn btn-success" @click='print()'>打印</button>-->
421
- <!--<print-table :model='model' v-show="false" v-ref:print-->
422
- <!--:top='40' :left='60' :right='40' :bottom='60'-->
423
- <!--:thead="thead" :tfoot='tfoot' :attach="yangsen"-->
424
- <!--:fields="modelval" :printpage="true">-->
425
- <!--</print-table>-->
426
- <!--</center>-->
427
- <!--</footer>-->
428
- <!--</modal>-->
429
- <!--<user-detail v-if="userdetail.show" :data="userdetail"></user-detail>-->
430
- </div>
431
- <div v-if="show">
432
- <user-info-detail-manage :f_userinfo_id="rowdata.f_userinfo_id" @cancel-main="cancel"></user-info-detail-manage>
433
- </div>
434
- </div>
435
- </div>
436
- </div>
437
- </template>
438
-
439
- <script>
440
- import {HttpResetClass, PagedList} from 'vue-client'
441
- import defaultPrint from '../config/DefaultPrint'
442
- import exportConfig from '../config/exportConfig'
443
-
444
- let readySomething = async function (self) {
445
- // 获取区县
446
- // self.$refs.paged.$refs.cri.model.startDate = self.$login.toStandardDateString()
447
- // self.$refs.paged.$refs.cri.model.endDate = self.$login.toStandardDateString()
448
- // await self.$refs.paged.$refs.cri.search()
449
- self.sumsmodel = self.$refs.paged.$refs.grid.model.sums
450
- }
451
-
452
- export default {
453
- data() {
454
- return {
455
- model: new PagedList('rs/sql/filesQuery', 20, {orderitem: "'f_userinfo_code desc'"}, {f_balance: 0}),
456
- criteriaShow: false,
457
- jurisdiction:this.$login.r,
458
- orgCondtionStr: '',
459
- modelval: [],
460
- orderFields: {
461
- f_userinfo_code: 'no'
462
- },
463
- printshow: false,
464
- all: false,
465
- fields: {},
466
- thead: '',
467
- tfoot: '',
468
- area: [],
469
- //合计数据
470
- sumsmodel: {},
471
- initres: {
472
- org:[this.$login.f.orgid],
473
- dep:[],
474
- user:[],
475
- },
476
- userdetail: {
477
- show: false,
478
- f_userinfo_code: '',
479
- f_filialeids: ''
480
- },
481
- userstates:this.$appdata.getParam('用户状态') ? [{label: '全部', value: ''}, ...this.$appdata.getParam('用户状态')] : [],
482
- openstate:[{label:'全部',value:''},{label:'未开户',value:' null'},{label:'已开户',value:' not null'}],
483
- show:false,
484
- rowdata:{},
485
- meterInfo:{},
486
- deviceInfo:{},
487
- sliceArea: [],
488
- weixinSign:[{label:"全部",value:""},{label:"已绑定",value:"已绑定"},{label:"未绑定",value:"未绑定"}],
489
- gasproperties:[],
490
- usermold:[],
491
- usertypes:[{label:"全部",value:''},{label:"民用",value:'民用'},{label:"非民用",value:'非民用'}],
492
- usertype:'民用',
493
- gaspropertie:'',
494
-
495
- //小区
496
- residentialArea: [],
497
- exportCondition:{}
498
- }
499
- },
500
- ready() {
501
- this.getaddress()
502
-
503
- readySomething(this).then(() => {
504
- this.$emit('ready')
505
- }).catch((error) => {
506
- this.$emit('error', error)
507
- })
508
- this.initAreas(this.$login.f.orgid)
509
- },
510
- methods: {
511
- async getaddress(){
512
- console.log('开始获取小区')
513
- let HttpReset = new HttpResetClass()
514
- var data = await HttpReset.load('POST', 'rs/sql/manage_getarealist', {
515
- data: {
516
- condition: '1=1'
517
- }
518
- }, {resolveMsg: null, rejectMsg: '获取小区失败!'})
519
- console.log('小区',data)
520
- let house = []
521
- for (let row of data.data){
522
- console.log('开始保存小区')
523
- house.push({label: row.f_residential_area, value: row.f_residential_area})
524
- }
525
- this.residentialArea = house
526
- },
527
- sort (field, rule) {
528
- // 将所有排序方式设为不排序,实现相互排斥
529
- for (let key in this.orderFields) {
530
- if (key === field) {
531
- this.orderFields[key] = rule
532
- } else {
533
- this.orderFields[key] = 'no'
534
- }
535
- }
536
- // 如果新规则不排序,还原为默认排序
537
- if (rule === 'asc') {
538
- this.model.paramSource.orderitem = `'${field} ${rule}'`
539
- }else if (rule === 'desc') {
540
- this.model.paramSource.orderitem = `'${field} ${rule}'`
541
- }
542
-
543
- this.search()
544
- },
545
-
546
- //把数据库查询数据转换为下拉数据
547
- calculate(rows){
548
- let data = []
549
- rows.forEach((row, n) => {
550
- data[n] = {label: row.f_residential_area, value: row.id}
551
- })
552
- return data
553
- },
554
- search(){
555
- this.$refs.paged.$refs.cri.search()
556
- },
557
- cancel(obj) {
558
- this.show = false
559
- },
560
- showmsg(obj){
561
-
562
- this.rowdata=obj
563
- this.show=true
564
- // let http = new HttpResetClass()
565
- // http.load('POST','rs/sql/getUserMeter',{data: {condition: `f_userinfo_id ='${obj.f_userinfo_id}'`}},
566
- // {resolveMsg: null, rejectMsg: null}).then((res) => {
567
- // this.meterInfo = res.data})
568
- // let http2 = new HttpResetClass()
569
- // http2.load('POST','rs/sql/deviceQuery',{data: {condition: `f_userinfo_id ='${obj.f_userinfo_id}'`}},
570
- // {resolveMsg: null, rejectMsg: null}).then((res) => {
571
- // this.deviceInfo = res.data})
572
-
573
- // this.f_userinfo_id=obj.f_userinfo_id
574
- },
575
- async initAreas (val) {
576
-
577
- if (val) {
578
- let getAllArea = await this.$resetpost('/rs/search', {
579
- source: 'this.getParentByType($organization$).getAllChildrens().where(row.getType() == $zone$)',
580
- userid: this.$login.f.id
581
- }, {resolveMsg: null, rejectMsg: '获取片区出错!!!'})
582
-
583
- let arr = getAllArea.data.filter((res) => {
584
- return res.parentid == val
585
- })
586
- console.log('过滤之后的片区', arr)
587
- this.sliceArea = []
588
- this.sliceArea.push({label: "全部", value: ""})
589
- arr.forEach((res) => {
590
- this.sliceArea.push({label: res.name, value: res.name})
591
- })
592
- console.log(this.sliceArea)
593
- }
594
- },
595
- userTypeChange () {
596
- this.usermold=[]
597
- this.f_gasproperties=[]
598
- if(this.$refs.paged.$refs.cri.model !== null) {
599
- this.$refs.paged.$refs.cri.model.f_gasproperties=''
600
- this.$refs.paged.$refs.cri.model.f_user_mold=''
601
- this.usermold = this.$appdata.getParam(this.$refs.paged.$refs.cri.model.f_user_type[0])
602
- }
603
- else{
604
- this.usermold =[{label: '全部', value: ''}]
605
- }
606
- },
607
- userMoldChange () {
608
- this.gasproperties=[]
609
- if(this.$refs.paged.$refs.cri.model !==null) {
610
- this.$refs.paged.$refs.cri.model.f_gasproperties=''
611
- if (this.$refs.paged.$refs.cri.model.f_user_mold[0] ==='居民'){
612
- this.gasproperties = this.$appdata.getParam(this.$refs.paged.$refs.cri.model.f_user_type[0] + this.$refs.paged.$refs.cri.model.f_user_mold[0])
613
- return
614
- }
615
- this.gasproperties = this.$appdata.getParam(this.$refs.paged.$refs.cri.model.f_user_mold[0])
616
- }
617
- else{
618
- this.gasproperties =[{label: '全部', value: ''}]
619
- }
620
- },
621
- selfSearch(args) {
622
- //小区查询条件
623
- this.area = this.$refs.paged.$refs.cri.model.f_residential_area
624
- console.log("=====小区model绑定====",this.area)
625
- if(this.area.length !== 0){
626
- let str = JSON.stringify(this.area)
627
- str = str.replace(/"/g,`'`)
628
- str = str.replace(/\[/g,``)
629
- str = str.replace(/\]/g,``)
630
- console.log("=====小区model22222222222绑定====",str)
631
- //查询多个小区时条件
632
- args.condition += ` and f_residential_area in ( ${str} )`
633
- }
634
-
635
- if (!this.orgCondtionStr) {
636
- args.condition = `${args.condition}` + " and f_orgid = " + this.$login.f.orgid
637
- } else {
638
- args.condition = `${args.condition}` + this.orgCondtionStr
639
- }
640
- this.model.search(args.condition, args.model)
641
- this.sumsmodel = this.$refs.paged.$refs.grid.model.sums
642
- console.log('合计字段', this.sumsmodel)
643
- this.exportCondition = {condition: `${args.condition}`,orderitem:`${this.model.paramSource.orderitem }`}
644
- console.log("导出条件")
645
- },
646
- clear() {
647
- Object.keys(this.$refs.paged.$refs.cri.model).forEach((key) => {
648
- this.$refs.paged.$refs.cri.model[key] = ''
649
- })
650
- },
651
- hidden() {
652
- this.criteriaShow = !this.criteriaShow
653
- },
654
- getRes(obj) {
655
- this.orgCondtionStr = obj
656
- },
657
- stamp() {
658
- this.all = false
659
- //默认选择要打印的列
660
- this.modelval = defaultPrint.config
661
- this.fields = this.getfield
662
- console.log('所有打印字段', this.fields)
663
- this.printshow = true
664
- this.put()
665
- },
666
- put() {
667
- // 对Modelval进行排序
668
- this.sortModelval()
669
- this.thead = `<tr><th colspan=${this.modelval.length}>用户查询统计报表</th></tr><tr>`
670
- for (let key of this.modelval) {
671
- this.thead += '<th>' + this.fields[key] + '</th>'
672
- }
673
- this.thead += '</tr>'
674
- },
675
- print() {
676
- this.$refs.print.PrintAsFile()
677
- this.printshow = false
678
- },
679
- close() {
680
- this.printshow = false
681
- },
682
- // 对选择的列进行排序
683
- sortModelval() {
684
- let sortModel = []
685
- Object.keys(this.fields).forEach((key) => {
686
- if (this.modelval.includes(key)) {
687
- sortModel.push(key)
688
- }
689
- })
690
- this.modelval = sortModel
691
- console.log('选择的打印的字段', this.modelval)
692
- },
693
- dblclick(row, index) {
694
- console.log('双击之后数据', row, index)
695
- this.userdetail.show = true
696
- this.userdetail.f_userinfo_code = row.f_userinfo_code
697
- this.userdetail.f_filialeids = row.f_filialeids
698
- }
699
- },
700
- watch: {
701
- 'all'(val) {
702
- if (val) {
703
- this.modelval = this.bodyData
704
- } else {
705
- this.modelval = defaultPrint.config
706
- this.put()
707
- }
708
- },
709
- 'modelval.length'() {
710
- this.put()
711
- },
712
- },
713
- computed: {
714
- authArr () {
715
- return this.$login.r ? this.$login.r : []
716
- },
717
- metertypes() {
718
- return [{label: '全部', value: ''}, ...this.$appdata.getParam('气表类型')]
719
- },
720
- meterstate() {
721
- return [{label: '全部', value: ''},{label: '停用', value: '停用'},{label: '换表', value: '换表'},{label: '无效', value: '无效'},{label: '正常', value: '正常'},]
722
- },
723
- getCondition() {
724
- console.log({condition: `${this.$refs.paged.$refs.cri.condition}` + this.orgCondtionStr})
725
- return {condition: `${this.$refs.paged.$refs.cri.condition}` + this.orgCondtionStr}
726
- },
727
- getfield() {
728
- let data = {}
729
- this.bodyData.forEach((value, index) => {
730
- data[this.bodyData[index]] = this.headData[index]
731
- })
732
- //合计字段打印
733
- this.tfoot = `<tr><th colspan=${this.modelval.length}>全表汇总信息: `
734
- if (this.sumsmodel) {
735
- Object.keys(this.sumsmodel).forEach((key) => {
736
- this.tfoot += this.fields[key] + '合计: ' + `<font color="blue">${this.sumsmodel[key]} </font>`
737
- })
738
- } else {
739
- this.tfoot += '暂无'
740
- }
741
- this.tfoot += '</th></tr>'
742
- return data
743
- },
744
- getExportField() {
745
- return exportConfig.userConfig
746
- },
747
- userstates() {
748
- return [{label: '全部', value: ''}, ...this.$appdata.getParam('用户状态')]
749
- }
750
- // sliceArea() {
751
- // let rs = new Array()
752
- // for (let i = 0; i < this.$login.f.f_allArea.length; i++) {
753
- // let temp = {
754
- // label: this.$login.f.f_allArea[i].label,
755
- // value: this.$login.f.f_allArea[i].label
756
- // }
757
- // rs.push(temp)
758
- // }
759
- // return [{label: '全部', value: ''}, ...rs]
760
- // }
761
- }
762
- }
763
- </script>
764
-
1
+ <template>
2
+ <div id="unit" class="flex-row">
3
+ <div class="basic-main" @keyup.enter="search">
4
+ <div class="flex">
5
+ <div style="flex:1;" class="flex" v-if="!show">
6
+ <criteria-paged :model="model" v-ref:paged @sort="sort">
7
+ <criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:cri>
8
+ <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
9
+ <div class="row">
10
+ <div class="col-sm-2">
11
+ <label class="font_normal_body">客户编号</label>
12
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_userinfo_code"
13
+ condition="f_userinfo_code = '{}' " placeholder="客户编号">
14
+ </div>
15
+ <div class="col-sm-2">
16
+ <label class="font_normal_body">客户名称</label>
17
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_user_name"
18
+ condition="f_user_name like '%{}%'" placeholder="客户名称">
19
+ </div>
20
+ <div class="col-sm-2">
21
+ <label class="font_normal_body">客户电话</label>
22
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_user_phone"
23
+ condition="f_user_phone like '%{}%'" placeholder="客户电话">
24
+ </div>
25
+ <div class="span" style="float:right;">
26
+ <button class="button_search button_spacing" @click="search()">查询</button>
27
+ <button class="button_clear button_spacing" @click="$parent.$parent.clear()">清空</button>
28
+ <!--<button class="btn btn-default" @click="$parent.$parent.stamp()">打印</button>-->
29
+
30
+ <export-excel :data="$parent.$parent.exportCondition"
31
+ :field="$parent.$parent.getExportField"
32
+ v-if="$parent.$parent.authArr.includes('档案查询导出') && $parent.$parent.jurisdiction.includes('excel导出')"
33
+ sqlurl="rs/logic/exportfile" sql-name="filesQuery" template-name='用户查询导出'
34
+ :choose-col="true"></export-excel>
35
+
36
+ <div style="float: right" class="button_spacing" :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}" @click="$parent.$parent.hidden()"></div>
37
+ </div>
38
+ </div>
39
+ <div class="row" v-show="$parent.$parent.criteriaShow">
40
+ <div class="col-sm-2">
41
+ <label class="font_normal_body">身份证号</label>
42
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_idnumber"
43
+ condition="f_idnumber like '%{}%'" placeholder="身份证号">
44
+ </div>
45
+ <div class="col-sm-2">
46
+ <label class="font_normal_body">客户状态</label>
47
+ <v-select :value.sync="model.f_user_state"
48
+ v-model="model.f_user_state" multiple
49
+ :options='$parent.$parent.userstates' placeholder='请选择'
50
+ condition="f_user_state in {}"
51
+ close-on-select></v-select>
52
+ </div>
53
+ <div class="col-sm-2">
54
+ <label class="font_normal_body">开户状态</label>
55
+ <v-select :value.sync="model.f_open_date"
56
+ v-model="model.f_open_date"
57
+ :options='$parent.$parent.openstate' placeholder='请选择'
58
+ condition="f_open_date is {}"
59
+ close-on-select></v-select>
60
+ </div>
61
+ <div class="col-sm-2 form-group">
62
+ <label class="font_normal_body">用户分类</label>
63
+ <v-select :value.sync="model.f_user_type"
64
+ @change="$parent.$parent.userTypeChange"
65
+ :options='$parent.$parent.usertypes' placeholder='请选择' v-model="model.f_user_type"
66
+ condition="f_user_type = '{}'"
67
+ close-on-select></v-select>
68
+ </div>
69
+ <div class="col-sm-2 form-group">
70
+ <label class="font_normal_body">用户类型</label>
71
+ <v-select :value.sync="model.f_user_mold"
72
+ @change="$parent.$parent.userMoldChange"
73
+ :options='$parent.$parent.usermold' placeholder='请选择' v-model="model.f_user_mold"
74
+ condition="f_user_mold = '{}'"
75
+ close-on-select></v-select>
76
+ </div>
77
+ <div class="col-sm-2 form-group">
78
+ <label class="font_normal_body">用气性质</label>
79
+ <v-select :value.sync="model.f_gasproperties" v-model="model.f_gasproperties"
80
+ :options='$parent.$parent.gasproperties' placeholder='请选择'
81
+ condition="f_gasproperties = '{}'"
82
+ close-on-select></v-select>
83
+ </div>
84
+ <div class="col-sm-2">
85
+ <label class="font_normal_body">&nbsp;&nbsp;&nbsp;人数&nbsp;&nbsp;&nbsp;</label>
86
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_people_num"
87
+ condition="f_people_num = '{}'" placeholder="人数">
88
+ </div>
89
+ <!--<div class="col-sm-2">
90
+ <label class="font_normal_body">&nbsp;&nbsp;&nbsp;片区&nbsp;&nbsp;&nbsp;</label>
91
+ <v-select
92
+ :value.sync="model.f_slice_area"
93
+ v-model="model.f_slice_area"
94
+ :options='$parent.$parent.sliceArea'
95
+ placeholder='请选择'
96
+ condition="f_slice_area = '{}'"
97
+ close-on-select></v-select>
98
+ </div>-->
99
+ <div class="col-sm-2">
100
+ <label class="font_normal_body">微信绑定</label>
101
+ <v-select
102
+ :value.sync="model.f_wechat"
103
+ v-model="model.f_wechat"
104
+ :options='$parent.$parent.weixinSign'
105
+ placeholder='请选择'
106
+ condition="f_wechat = '{}'"
107
+ close-on-select>
108
+ </v-select>
109
+ </div>
110
+ <div class="col-sm-2">
111
+ <label class="font_normal_body">客户地址</label>
112
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_address"
113
+ condition="f_address like '%{}%'" placeholder='客户地址'>
114
+ </div>
115
+
116
+ <!-- <div class="col-sm-2">-->
117
+ <!-- <label class="font_normal_body">&nbsp;&nbsp;&nbsp;小区&nbsp;&nbsp;&nbsp;</label>-->
118
+ <!-- <input type="text" style="width:60%" class="input_search" v-model="model.f_residential_area"-->
119
+ <!-- condition="f_residential_area like '%{}%'" placeholder="小区"/>-->
120
+ <!-- <div class="col-sm-8">-->
121
+ <!-- <input type="text" v-show="false" v-model="model.f_residential_area" class="input_search" style="width: 80%"-->
122
+ <!-- v-validate:f_residential_area='{required: true }'>-->
123
+ <!-- <v-select :value.sync="model.f_residential_area" :value-single="true"-->
124
+ <!-- class="select_list select"-->
125
+ <!-- :options='fresidentialarea' placeholder='请选择'-->
126
+ <!-- close-on-select search="true">-->
127
+ <!-- </v-select>-->
128
+ <!-- </div>-->
129
+ <!-- </div>-->
130
+ <div class="col-sm-2">
131
+ <label class="font_normal_body">&nbsp;&nbsp;&nbsp;小区&nbsp;&nbsp;&nbsp;</label>
132
+ <v-select :value.sync="model.f_residential_area"
133
+ class="select_list select"
134
+ enter-push
135
+ v-model="model.f_residential_area"
136
+ style="width: 60%"
137
+ multiple="true"
138
+ :options='$parent.$parent.residentialArea' placeholder='选择小区' >
139
+ </v-select>
140
+ </div>
141
+ <div class="col-sm-2">
142
+ <label class="font_normal_body">&nbsp;&nbsp;&nbsp;楼栋&nbsp;&nbsp;&nbsp;</label>
143
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_building"
144
+ condition="f_building like '%{}%'" placeholder="楼栋"/>
145
+ </div>
146
+ <div class="col-sm-2">
147
+ <label class="font_normal_body">&nbsp;&nbsp;建档人&nbsp;</label>
148
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_createfile_person"
149
+ condition="f_createfile_person = '{}'" placeholder="建档人"/>
150
+ </div>
151
+ <div class="col-sm-2">
152
+ <label class="font_normal_body">&nbsp;&nbsp;&nbsp;单元&nbsp;&nbsp;&nbsp;</label>
153
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_unit"
154
+ condition="f_unit like '%{}%'" placeholder="单元"/>
155
+ </div>
156
+ <div class="col-sm-2">
157
+ <label class="font_normal_body">&nbsp;&nbsp;&nbsp;楼层&nbsp;&nbsp;&nbsp;</label>
158
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_floor"
159
+ condition="f_floor like '%{}%'" placeholder="楼层"/>
160
+ </div>
161
+ <div class="col-sm-2">
162
+ <label class="font_normal_body">&nbsp;&nbsp;&nbsp;门牌号</label>
163
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_room"
164
+ condition="f_room like '%{}%'" placeholder="门牌号">
165
+ </div>
166
+ <div class="col-sm-2">
167
+ <label class="font_normal_body">&nbsp;&nbsp;&nbsp;区域码</label>
168
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_area_code"
169
+ condition="f_area_code = '{}'" placeholder="区域码">
170
+ </div>
171
+ <!-- <div class="col-sm-2" >-->
172
+ <!-- <label for="f_balance" class="font_normal_body">账户结余</label>-->
173
+ <!-- <div class="form-group">-->
174
+ <!-- <v-input id="f_balance" placeholder="账户结余"-->
175
+ <!-- :expression.sync = 'model.f_balance'-->
176
+ <!-- v-model="model.f_balance"-->
177
+ <!-- condition= "f_balance {}"-->
178
+ <!-- :show-reset-button="reset"-->
179
+ <!-- v-ref:f_balance>-->
180
+ <!-- </v-input>-->
181
+ <!-- </div>-->
182
+ <!-- </div>-->
183
+ <div class="col-sm-2">
184
+ <label for="startDate" class="font_normal_body">开始日期</label>
185
+ <datepicker id="startDate" placeholder="开始日期" style="width:60%"
186
+ v-model="model.startDate"
187
+ :value.sync="model.startDate"
188
+ :format="'yyyy-MM-dd'"
189
+ :show-reset-button="true"
190
+ condition="f_createfile_date >= to_date('{} 00:00:00','yyyy-mm-dd hh24:mi:ss')">
191
+ </datepicker>
192
+ </div>
193
+ <div class="col-sm-2">
194
+ <label for="endDate" class="font_normal_body">结束日期</label>
195
+ <datepicker id="endDate" placeholder="结束日期" style="width:60%"
196
+ v-model="model.endDate"
197
+ :value.sync="model.endDate"
198
+ :format="'yyyy-MM-dd'"
199
+ :show-reset-button="true"
200
+ condition="f_createfile_date <= to_date('{} 23:59:59','yyyy-mm-dd hh24:mi:ss')">
201
+ </datepicker>
202
+ </div>
203
+
204
+ <div class="col-sm-2">
205
+ <label class="font_normal_body">通气时间</label>
206
+ <datepicker placeholder="通气开始时间" style="width:60%"
207
+ v-model="model.f_gas_date"
208
+ :value.sync="model.f_gas_date"
209
+ :format="'yyyy-MM-dd'"
210
+ :show-reset-button="true"
211
+ condition="F_GAS_DATE >= to_date('{} 00:00:00','yyyy-mm-dd hh24:mi:ss')">
212
+ </datepicker>
213
+ </div>
214
+ <div class="col-sm-2">
215
+ <label class="font_normal_body">通气时间</label>
216
+ <datepicker placeholder="通气结束时间" style="width:60%"
217
+ v-model="model.f_gas_dateend"
218
+ :value.sync="model.f_gas_dateend"
219
+ :format="'yyyy-MM-dd'"
220
+ :show-reset-button="true"
221
+ condition="F_GAS_DATE <= to_date('{} 23:59:59','yyyy-mm-dd hh24:mi:ss')">
222
+ </datepicker>
223
+ </div>
224
+ <div class="col-sm-2">
225
+ <label class="font_normal_body">缴费时间</label>
226
+ <datepicker placeholder="报警器缴费开始" style="width:60%"
227
+ v-model="model.f_devices_date"
228
+ :value.sync="model.f_devices_date"
229
+ :format="'yyyy-MM-dd'"
230
+ :show-reset-button="true"
231
+ condition="f_devices_date >= to_date('{} 00:00:00','yyyy-mm-dd hh24:mi:ss')">
232
+ </datepicker>
233
+ </div>
234
+ <div class="col-sm-2">
235
+ <label class="font_normal_body">缴费时间</label>
236
+ <datepicker placeholder="报警器缴费结束" style="width:60%"
237
+ v-model="model.f_devices_date1"
238
+ :value.sync="model.f_devices_date1"
239
+ :format="'yyyy-MM-dd'"
240
+ :show-reset-button="true"
241
+ condition="f_devices_date <= to_date('{} 23:59:59','yyyy-mm-dd hh24:mi:ss')">
242
+ </datepicker>
243
+ </div>
244
+ <div class="col-sm-2">
245
+ <label class="font_normal_body">气表分类</label>
246
+ <v-select :value.sync="model.f_meter_classify"
247
+ v-model="model.f_meter_classify"
248
+ :options='$parent.$parent.metertypes' placeholder='请选择'
249
+ condition="f_meter_classify = '{}'"
250
+ close-on-select></v-select>
251
+ </div>
252
+ <div class="col-sm-2">
253
+ <label class="font_normal_body">气表状态</label>
254
+ <v-select :value.sync="model.f_table_state"
255
+ v-model="model.f_table_state" multiple
256
+ :options='$parent.$parent.meterstate' placeholder='请选择'
257
+ condition="f_table_state in {}"
258
+ close-on-select></v-select>
259
+ </div>
260
+ </div>
261
+ <div class="row" v-show="$parent.$parent.criteriaShow">
262
+ <res-select-group :initres="$parent.$parent.initres" @re-res="$parent.$parent.getRes"></res-select-group>
263
+ <div class="col-sm-2 form-group">
264
+ <label class="font_normal_body">房产地址</label>
265
+ <input class="input_search" condition="f_house_address = '{}'"
266
+ placeholder='房产地址'
267
+ style="width:60%" type="text" v-model="model.f_house_address">
268
+ </div>
269
+ <div class="col-sm-2 form-group">
270
+ <label class="font_normal_body">用途</label>
271
+ <input class="input_search" condition="f_property_usage = '{}'"
272
+ placeholder='用途'
273
+ style="width:60%" type="text" v-model="model.f_property_usage">
274
+ </div>
275
+ <div class="col-sm-2 form-group">
276
+ <label class="font_normal_body">房型</label>
277
+ <input class="input_search" condition="f_house_type = '{}'"
278
+ placeholder='房型'
279
+ style="width:60%" type="text" v-model="model.f_house_type">
280
+ </div>
281
+ <div class="col-sm-2 form-group">
282
+ <label class="font_normal_body">是否一户多表</label>
283
+ <input class="input_search" condition="f_is_multi_meter = '{}'"
284
+ placeholder='是否一户多表'
285
+ style="width:60%" type="text" v-model="model.f_is_multi_meter">
286
+ </div>
287
+ <div class="col-sm-2 form-group">
288
+ <label class="font_normal_body">关联ID</label>
289
+ <input class="input_search" condition="f_house_id = '{}'"
290
+ placeholder='关联ID'
291
+ style="width:60%" type="text" v-model="model.f_house_id">
292
+ </div>
293
+ </div>
294
+ </div>
295
+ </criteria>
296
+
297
+ <data-grid :model="model" partial='list' class="list_area table_sy" @dblclick="$parent.dblclick" v-ref:grid>
298
+ <template partial='head'>
299
+ <tr>
300
+ <th>
301
+ <data-order field="f_userinfo_code" name="客户编号"></data-order>
302
+ </th>
303
+ <th>
304
+ <nobr>客户名称</nobr>
305
+ </th>
306
+ <th>
307
+ <nobr>客户电话</nobr>
308
+ </th>
309
+ <th>
310
+ <nobr>身份证号</nobr>
311
+ </th>
312
+ <th>
313
+ <nobr>表上余额</nobr>
314
+ </th>
315
+ <th>
316
+ <nobr>客户地址</nobr>
317
+ </th>
318
+ <th>
319
+ <nobr>小区</nobr>
320
+ </th>
321
+ <th>
322
+ <nobr>楼栋</nobr>
323
+ </th>
324
+ <th>
325
+ <nobr>单元</nobr>
326
+ </th>
327
+ <th>
328
+ <nobr>楼层</nobr>
329
+ </th>
330
+ <th>
331
+ <nobr>门牌号</nobr>
332
+ </th>
333
+ <th>
334
+ <nobr>客户状态</nobr>
335
+ </th>
336
+ <th>
337
+ <nobr>建档日期</nobr>
338
+ </th>
339
+ <th>
340
+ <nobr>报警器缴费时间</nobr>
341
+ </th>
342
+ <th>
343
+ <nobr>通气时间</nobr>
344
+ </th>
345
+ <th>
346
+ <nobr>建档人</nobr>
347
+ </th>
348
+ <th>
349
+ <nobr>备注</nobr>
350
+ </th>
351
+ <!-- <th>-->
352
+ <!-- <nobr>部门</nobr>-->
353
+ <!-- </th>-->
354
+ <!-- <th>-->
355
+ <!-- <nobr>公司</nobr>-->
356
+ <!-- </th>-->
357
+ </tr>
358
+ </template>
359
+ <template partial='body'>
360
+ <td style="text-align: center;"><nobr>
361
+ <span @click="$parent.$parent.$parent.showmsg(row)"><a>{{row.f_userinfo_code}}</a></span>
362
+ </nobr> </td>
363
+ <td style="text-align: center;">
364
+ <nobr>{{row.f_user_name}}</nobr>
365
+ </td>
366
+ <td style="text-align: center;">
367
+ <nobr>{{row.f_user_phone}}</nobr>
368
+ </td>
369
+ <td style="text-align: center;">
370
+ <nobr>{{row.f_idnumber}}</nobr>
371
+ </td>
372
+ <td style="text-align: center;">
373
+ <nobr>{{row.f_balance_amount}}</nobr>
374
+ </td>
375
+ <td style="text-align: center;">
376
+ <nobr>{{row.f_address}}</nobr>
377
+ </td>
378
+ <td style="text-align: center;">
379
+ <nobr>{{row.f_residential_area}}</nobr>
380
+ </td>
381
+ <td style="text-align: center;">
382
+ <nobr>{{row.f_building}}{{row.f_building_suffix}}</nobr>
383
+ </td>
384
+ <td style="text-align: center;">
385
+ <nobr>{{row.f_unit}}{{row.f_unit_suffix}}</nobr>
386
+ </td>
387
+ <td style="text-align: center;">
388
+ <nobr>{{row.f_floor}}{{row.f_floor_suffix}}</nobr>
389
+ </td>
390
+ <td style="text-align: center;">
391
+ <nobr>{{row.f_room}}{{row.f_room_suffix}}</nobr>
392
+ </td>
393
+ <td style="text-align: center;">
394
+ <nobr>{{row.f_user_state}}</nobr>
395
+ </td>
396
+ <td style="text-align: center;">
397
+ <nobr>{{row.f_createfile_date}}</nobr>
398
+ </td>
399
+ <td style="text-align: center;">
400
+ <nobr>{{row.f_devices_date}}</nobr>
401
+ </td>
402
+ <td style="text-align: center;">
403
+ <nobr>{{row.f_gas_date}}</nobr>
404
+ </td>
405
+ <td style="text-align: center;">
406
+ <nobr>{{row.f_createfile_person}}</nobr>
407
+ </td>
408
+ <td style="text-align: center;">
409
+ <nobr>{{row.f_comments}}</nobr>
410
+ </td>
411
+ <!-- <td style="text-align: center;">-->
412
+ <!-- <nobr>{{row.f_depname}}</nobr>-->
413
+ <!-- </td>-->
414
+ <!-- <td style="text-align: center;">-->
415
+ <!-- <nobr>{{row.f_orgname}}</nobr>-->
416
+ <!-- </td>-->
417
+ </template>
418
+ <template partial='foot'>
419
+ </template>
420
+ </data-grid>
421
+ </criteria-paged>
422
+
423
+ <table class="table-hover">
424
+ <tr style="position: relative" class="table-bordered">
425
+ <td
426
+ style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;color: #5CB95C;font-weight: bold">
427
+ 汇总信息
428
+ </td>
429
+ <td style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px">
430
+ 结余合计:&emsp;{{sumsmodel.f_balance}}
431
+ </td>
432
+ </tr>
433
+ </table>
434
+
435
+ <!--<modal :show.sync="printshow" v-ref:modal backdrop="false">-->
436
+ <!--<header slot="modal-header" class="modal-header text-center">-->
437
+ <!--<h4 class="modal-title">打印列选择</h4>-->
438
+ <!--<input type="checkbox" class="" id="f_generations" v-model="all">-->
439
+ <!--<label for="f_generations" class="font-size">全选</label>-->
440
+ <!--</header>-->
441
+ <!--<article slot="modal-body">-->
442
+ <!--<div class="auto col-sm-11 col-md-offset-1" style="margin-top: 10px;">-->
443
+ <!--<div class="col-sm-3" v-for="f in fields">-->
444
+ <!--<input type="checkbox" class="" :id="'water-owe-details-'+$index" v-model="modelval" :value="$key">-->
445
+ <!--<label :for="'water-owe-details-'+$index" class="font-size">{{f}}</label>-->
446
+ <!--</div>-->
447
+ <!--</div>-->
448
+ <!--</article>-->
449
+ <!--<footer slot="modal-footer" class="modal-footer">-->
450
+ <!--<center>-->
451
+ <!--<button v-show="printshow" type="button" class="btn btn-default" @click='close()'>取消</button>-->
452
+ <!--<button v-show="printshow" type="button" class="btn btn-success" @click='print()'>打印</button>-->
453
+ <!--<print-table :model='model' v-show="false" v-ref:print-->
454
+ <!--:top='40' :left='60' :right='40' :bottom='60'-->
455
+ <!--:thead="thead" :tfoot='tfoot' :attach="yangsen"-->
456
+ <!--:fields="modelval" :printpage="true">-->
457
+ <!--</print-table>-->
458
+ <!--</center>-->
459
+ <!--</footer>-->
460
+ <!--</modal>-->
461
+ <!--<user-detail v-if="userdetail.show" :data="userdetail"></user-detail>-->
462
+ </div>
463
+ <div v-if="show">
464
+ <user-info-detail-manage :f_userinfo_id="rowdata.f_userinfo_id" @cancel-main="cancel"></user-info-detail-manage>
465
+ </div>
466
+ </div>
467
+ </div>
468
+ </div>
469
+ </template>
470
+
471
+ <script>
472
+ import {HttpResetClass, PagedList} from 'vue-client'
473
+ import defaultPrint from '../config/DefaultPrint'
474
+ import exportConfig from '../config/exportConfig'
475
+
476
+ let readySomething = async function (self) {
477
+ // 获取区县
478
+ // self.$refs.paged.$refs.cri.model.startDate = self.$login.toStandardDateString()
479
+ // self.$refs.paged.$refs.cri.model.endDate = self.$login.toStandardDateString()
480
+ // await self.$refs.paged.$refs.cri.search()
481
+ self.sumsmodel = self.$refs.paged.$refs.grid.model.sums
482
+ }
483
+
484
+ export default {
485
+ data() {
486
+ return {
487
+ model: new PagedList('rs/sql/filesQuery', 20, {orderitem: "'f_userinfo_code desc'"}, {f_balance: 0}),
488
+ criteriaShow: false,
489
+ jurisdiction:this.$login.r,
490
+ orgCondtionStr: '',
491
+ modelval: [],
492
+ orderFields: {
493
+ f_userinfo_code: 'no'
494
+ },
495
+ printshow: false,
496
+ all: false,
497
+ fields: {},
498
+ thead: '',
499
+ tfoot: '',
500
+ area: [],
501
+ //合计数据
502
+ sumsmodel: {},
503
+ initres: {
504
+ org:[this.$login.f.orgid],
505
+ dep:[],
506
+ user:[],
507
+ },
508
+ userdetail: {
509
+ show: false,
510
+ f_userinfo_code: '',
511
+ f_filialeids: ''
512
+ },
513
+ userstates:this.$appdata.getParam('用户状态') ? [{label: '全部', value: ''}, ...this.$appdata.getParam('用户状态')] : [],
514
+ openstate:[{label:'全部',value:''},{label:'未开户',value:' null'},{label:'已开户',value:' not null'}],
515
+ show:false,
516
+ rowdata:{},
517
+ meterInfo:{},
518
+ deviceInfo:{},
519
+ sliceArea: [],
520
+ weixinSign:[{label:"全部",value:""},{label:"已绑定",value:"已绑定"},{label:"未绑定",value:"未绑定"}],
521
+ gasproperties:[],
522
+ usermold:[],
523
+ usertypes:[{label:"全部",value:''},{label:"民用",value:'民用'},{label:"非民用",value:'非民用'}],
524
+ usertype:'民用',
525
+ gaspropertie:'',
526
+
527
+ //小区
528
+ residentialArea: [],
529
+ exportCondition:{}
530
+ }
531
+ },
532
+ ready() {
533
+ this.getaddress()
534
+
535
+ readySomething(this).then(() => {
536
+ this.$emit('ready')
537
+ }).catch((error) => {
538
+ this.$emit('error', error)
539
+ })
540
+ this.initAreas(this.$login.f.orgid)
541
+ },
542
+ methods: {
543
+ async getaddress(){
544
+ console.log('开始获取小区')
545
+ let HttpReset = new HttpResetClass()
546
+ var data = await HttpReset.load('POST', 'rs/sql/manage_getarealist', {
547
+ data: {
548
+ condition: '1=1'
549
+ }
550
+ }, {resolveMsg: null, rejectMsg: '获取小区失败!'})
551
+ console.log('小区',data)
552
+ let house = []
553
+ for (let row of data.data){
554
+ console.log('开始保存小区')
555
+ house.push({label: row.f_residential_area, value: row.f_residential_area})
556
+ }
557
+ this.residentialArea = house
558
+ },
559
+ sort (field, rule) {
560
+ // 将所有排序方式设为不排序,实现相互排斥
561
+ for (let key in this.orderFields) {
562
+ if (key === field) {
563
+ this.orderFields[key] = rule
564
+ } else {
565
+ this.orderFields[key] = 'no'
566
+ }
567
+ }
568
+ // 如果新规则不排序,还原为默认排序
569
+ if (rule === 'asc') {
570
+ this.model.paramSource.orderitem = `'${field} ${rule}'`
571
+ }else if (rule === 'desc') {
572
+ this.model.paramSource.orderitem = `'${field} ${rule}'`
573
+ }
574
+
575
+ this.search()
576
+ },
577
+
578
+ //把数据库查询数据转换为下拉数据
579
+ calculate(rows){
580
+ let data = []
581
+ rows.forEach((row, n) => {
582
+ data[n] = {label: row.f_residential_area, value: row.id}
583
+ })
584
+ return data
585
+ },
586
+ search(){
587
+ this.$refs.paged.$refs.cri.search()
588
+ },
589
+ cancel(obj) {
590
+ this.show = false
591
+ },
592
+ showmsg(obj){
593
+
594
+ this.rowdata=obj
595
+ this.show=true
596
+ // let http = new HttpResetClass()
597
+ // http.load('POST','rs/sql/getUserMeter',{data: {condition: `f_userinfo_id ='${obj.f_userinfo_id}'`}},
598
+ // {resolveMsg: null, rejectMsg: null}).then((res) => {
599
+ // this.meterInfo = res.data})
600
+ // let http2 = new HttpResetClass()
601
+ // http2.load('POST','rs/sql/deviceQuery',{data: {condition: `f_userinfo_id ='${obj.f_userinfo_id}'`}},
602
+ // {resolveMsg: null, rejectMsg: null}).then((res) => {
603
+ // this.deviceInfo = res.data})
604
+
605
+ // this.f_userinfo_id=obj.f_userinfo_id
606
+ },
607
+ async initAreas (val) {
608
+
609
+ if (val) {
610
+ let getAllArea = await this.$resetpost('/rs/search', {
611
+ source: 'this.getParentByType($organization$).getAllChildrens().where(row.getType() == $zone$)',
612
+ userid: this.$login.f.id
613
+ }, {resolveMsg: null, rejectMsg: '获取片区出错!!!'})
614
+
615
+ let arr = getAllArea.data.filter((res) => {
616
+ return res.parentid == val
617
+ })
618
+ console.log('过滤之后的片区', arr)
619
+ this.sliceArea = []
620
+ this.sliceArea.push({label: "全部", value: ""})
621
+ arr.forEach((res) => {
622
+ this.sliceArea.push({label: res.name, value: res.name})
623
+ })
624
+ console.log(this.sliceArea)
625
+ }
626
+ },
627
+ userTypeChange () {
628
+ this.usermold=[]
629
+ this.f_gasproperties=[]
630
+ if(this.$refs.paged.$refs.cri.model !== null) {
631
+ this.$refs.paged.$refs.cri.model.f_gasproperties=''
632
+ this.$refs.paged.$refs.cri.model.f_user_mold=''
633
+ this.usermold = this.$appdata.getParam(this.$refs.paged.$refs.cri.model.f_user_type[0])
634
+ }
635
+ else{
636
+ this.usermold =[{label: '全部', value: ''}]
637
+ }
638
+ },
639
+ userMoldChange () {
640
+ this.gasproperties=[]
641
+ if(this.$refs.paged.$refs.cri.model !==null) {
642
+ this.$refs.paged.$refs.cri.model.f_gasproperties=''
643
+ if (this.$refs.paged.$refs.cri.model.f_user_mold[0] ==='居民'){
644
+ this.gasproperties = this.$appdata.getParam(this.$refs.paged.$refs.cri.model.f_user_type[0] + this.$refs.paged.$refs.cri.model.f_user_mold[0])
645
+ return
646
+ }
647
+ this.gasproperties = this.$appdata.getParam(this.$refs.paged.$refs.cri.model.f_user_mold[0])
648
+ }
649
+ else{
650
+ this.gasproperties =[{label: '全部', value: ''}]
651
+ }
652
+ },
653
+ selfSearch(args) {
654
+ //小区查询条件
655
+ this.area = this.$refs.paged.$refs.cri.model.f_residential_area
656
+ console.log("=====小区model绑定====",this.area)
657
+ if(this.area.length !== 0){
658
+ let str = JSON.stringify(this.area)
659
+ str = str.replace(/"/g,`'`)
660
+ str = str.replace(/\[/g,``)
661
+ str = str.replace(/\]/g,``)
662
+ console.log("=====小区model22222222222绑定====",str)
663
+ //查询多个小区时条件
664
+ args.condition += ` and f_residential_area in ( ${str} )`
665
+ }
666
+
667
+ if (!this.orgCondtionStr) {
668
+ args.condition = `${args.condition}` + " and f_orgid = " + this.$login.f.orgid
669
+ } else {
670
+ args.condition = `${args.condition}` + this.orgCondtionStr
671
+ }
672
+ this.model.search(args.condition, args.model)
673
+ this.sumsmodel = this.$refs.paged.$refs.grid.model.sums
674
+ console.log('合计字段', this.sumsmodel)
675
+ this.exportCondition = {condition: `${args.condition}`,orderitem:`${this.model.paramSource.orderitem }`}
676
+ console.log("导出条件")
677
+ },
678
+ clear() {
679
+ Object.keys(this.$refs.paged.$refs.cri.model).forEach((key) => {
680
+ this.$refs.paged.$refs.cri.model[key] = ''
681
+ })
682
+ },
683
+ hidden() {
684
+ this.criteriaShow = !this.criteriaShow
685
+ },
686
+ getRes(obj) {
687
+ this.orgCondtionStr = obj
688
+ },
689
+ stamp() {
690
+ this.all = false
691
+ //默认选择要打印的列
692
+ this.modelval = defaultPrint.config
693
+ this.fields = this.getfield
694
+ console.log('所有打印字段', this.fields)
695
+ this.printshow = true
696
+ this.put()
697
+ },
698
+ put() {
699
+ // 对Modelval进行排序
700
+ this.sortModelval()
701
+ this.thead = `<tr><th colspan=${this.modelval.length}>用户查询统计报表</th></tr><tr>`
702
+ for (let key of this.modelval) {
703
+ this.thead += '<th>' + this.fields[key] + '</th>'
704
+ }
705
+ this.thead += '</tr>'
706
+ },
707
+ print() {
708
+ this.$refs.print.PrintAsFile()
709
+ this.printshow = false
710
+ },
711
+ close() {
712
+ this.printshow = false
713
+ },
714
+ // 对选择的列进行排序
715
+ sortModelval() {
716
+ let sortModel = []
717
+ Object.keys(this.fields).forEach((key) => {
718
+ if (this.modelval.includes(key)) {
719
+ sortModel.push(key)
720
+ }
721
+ })
722
+ this.modelval = sortModel
723
+ console.log('选择的打印的字段', this.modelval)
724
+ },
725
+ dblclick(row, index) {
726
+ console.log('双击之后数据', row, index)
727
+ this.userdetail.show = true
728
+ this.userdetail.f_userinfo_code = row.f_userinfo_code
729
+ this.userdetail.f_filialeids = row.f_filialeids
730
+ }
731
+ },
732
+ watch: {
733
+ 'all'(val) {
734
+ if (val) {
735
+ this.modelval = this.bodyData
736
+ } else {
737
+ this.modelval = defaultPrint.config
738
+ this.put()
739
+ }
740
+ },
741
+ 'modelval.length'() {
742
+ this.put()
743
+ },
744
+ },
745
+ computed: {
746
+ authArr () {
747
+ return this.$login.r ? this.$login.r : []
748
+ },
749
+ metertypes() {
750
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('气表类型')]
751
+ },
752
+ meterstate() {
753
+ return [{label: '全部', value: ''},{label: '停用', value: '停用'},{label: '换表', value: '换表'},{label: '无效', value: '无效'},{label: '正常', value: '正常'},]
754
+ },
755
+ getCondition() {
756
+ console.log({condition: `${this.$refs.paged.$refs.cri.condition}` + this.orgCondtionStr})
757
+ return {condition: `${this.$refs.paged.$refs.cri.condition}` + this.orgCondtionStr}
758
+ },
759
+ getfield() {
760
+ let data = {}
761
+ this.bodyData.forEach((value, index) => {
762
+ data[this.bodyData[index]] = this.headData[index]
763
+ })
764
+ //合计字段打印
765
+ this.tfoot = `<tr><th colspan=${this.modelval.length}>全表汇总信息: `
766
+ if (this.sumsmodel) {
767
+ Object.keys(this.sumsmodel).forEach((key) => {
768
+ this.tfoot += this.fields[key] + '合计: ' + `<font color="blue">${this.sumsmodel[key]} </font>`
769
+ })
770
+ } else {
771
+ this.tfoot += '暂无'
772
+ }
773
+ this.tfoot += '</th></tr>'
774
+ return data
775
+ },
776
+ getExportField() {
777
+ return exportConfig.userConfig
778
+ },
779
+ userstates() {
780
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('用户状态')]
781
+ }
782
+ // sliceArea() {
783
+ // let rs = new Array()
784
+ // for (let i = 0; i < this.$login.f.f_allArea.length; i++) {
785
+ // let temp = {
786
+ // label: this.$login.f.f_allArea[i].label,
787
+ // value: this.$login.f.f_allArea[i].label
788
+ // }
789
+ // rs.push(temp)
790
+ // }
791
+ // return [{label: '全部', value: ''}, ...rs]
792
+ // }
793
+ }
794
+ }
795
+ </script>
796
+