manage-client 3.3.32 → 3.3.34

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.
@@ -0,0 +1,539 @@
1
+ <template>
2
+ <div id="unit" class="flex-row">
3
+ <div class="basic-main" @keyup.enter="search">
4
+ <div class="flex" v-if="!show">
5
+
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 form-group">
11
+ <label for="startDate" class="font_normal_body" title="停用时间">开始日期</label>
12
+ <datepicker id="startDate" placeholder="开始日期" style="width:60%"
13
+ v-model="model.startDate"
14
+ :value.sync="model.startDate"
15
+ :format="'yyyy-MM-dd HH:mm:ss'"
16
+ :show-reset-button="true"
17
+ condition="f_operate_date >= '{}'">
18
+ </datepicker>
19
+ </div>
20
+ <div class="col-sm-2 form-group">
21
+ <label for="endDate" class="font_normal_body" title="停用时间">结束日期</label>
22
+ <datepicker id="endDate" placeholder="结束日期" style="width:60%"
23
+ v-model="model.endDate"
24
+ :value.sync="model.endDate"
25
+ :format="'yyyy-MM-dd HH:mm:ss'"
26
+ :show-reset-button="true"
27
+ condition="f_operate_date <= '{}'">
28
+ </datepicker>
29
+ </div>
30
+ <div class="col-sm-2 form-group">
31
+ <label class="font_normal_body">客户编号</label>
32
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_userinfo_code"
33
+ condition="f_userinfo_code = '{}' " placeholder="客户编号">
34
+ </div>
35
+ <div class="col-sm-2 form-group">
36
+ <label class="font_normal_body" title="旧客户编号">档案编号</label>
37
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_olduserinfo_code"
38
+ condition="f_olduserinfo_code = '{}' " placeholder="档案编号">
39
+ </div>
40
+
41
+ <div class="span" style="float:right;">
42
+ <button class="button_search button_spacing" @click="search()">查询</button>
43
+ <button class="button_clear button_spacing" @click="$parent.$parent.clear()">清空</button>
44
+ <!--<button class="btn btn-default" @click="$parent.$parent.stamp()">打印</button>-->
45
+
46
+ <export-excel :data="$parent.$parent.getCondition"
47
+ :field="$parent.$parent.getfield"
48
+ :header="$parent.$parent.other"
49
+ sqlurl="rs/logic/exportfile" sql-name="disableQuery" template-name='停用查询导出'
50
+ :choose-col="true"></export-excel>
51
+ <print-data :sum-field="$parent.$parent.getfield" :model="$parent.model" :field="$parent.$parent.getfield"
52
+ :defaultfield="$parent.$parent.defaultfield"
53
+ titletable="停用记录"
54
+ :sumsmodel="$parent.$parent.sumsmodel"></print-data>
55
+ <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>
56
+ </div>
57
+ </div>
58
+
59
+ <div class="row" v-show="$parent.$parent.criteriaShow">
60
+ <div class="col-sm-2 form-group">
61
+ <label class="font_normal_body">客户名称</label>
62
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_user_name"
63
+ condition=" f_user_name = '{}'" placeholder='客户名称'>
64
+ </div>
65
+ <div class="col-sm-2 form-group">
66
+ <label class="font_normal_body">客户电话</label>
67
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_user_phone"
68
+ condition=" f_user_phone like '%{}%'" placeholder='客户电话'>
69
+ </div>
70
+ <div class="col-sm-2 form-group">
71
+ <label class="font_normal_body">客户地址</label>
72
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_address"
73
+ condition="f_address like '%{}%'" placeholder='客户地址'>
74
+ </div>
75
+ <!--<div class="col-sm-2 form-group">-->
76
+ <!--<label class="font_normal_body">操作类型</label>-->
77
+ <!--<v-select :value.sync="model.f_operat_type"-->
78
+ <!--v-model="model.f_operat_type" multiple-->
79
+ <!--:options='$parent.$parent.operattype' placeholder='请选择'-->
80
+ <!--condition="f_operat_type = '{}'"-->
81
+ <!--close-on-select></v-select>-->
82
+ <!--</div>-->
83
+ <div class="col-sm-2 form-group">
84
+ <label class="font_normal_body">表&emsp;&emsp;号</label>
85
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_meternumber"
86
+ condition="f_meternumber = '{}'" placeholder='表号'>
87
+ </div>
88
+ <div class="col-sm-2 form-group">
89
+ <label class="font_normal_body">卡&emsp;&emsp;号</label>
90
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_card_id"
91
+ condition="f_card_id = '{}'" placeholder='卡号'>
92
+ </div>
93
+ <div class="col-sm-2 form-group">
94
+ <label class="font_normal_body">停用原因</label>
95
+ <v-select :value.sync="model.f_disable_reason"
96
+ v-model="model.f_disable_reason" multiple
97
+ :options='$parent.$parent.disablereason' placeholder='请选择'
98
+ condition="f_disable_reason in {}"
99
+ close-on-select></v-select>
100
+ </div>
101
+ <div class="col-sm-2 form-group">
102
+ <label class="font_normal_body">其他原因</label>
103
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_othereason"
104
+ condition="f_othereason like '%{}%'" placeholder='其他原因'>
105
+ </div>
106
+ <div class="col-sm-2 form-group">
107
+ <label class="font_normal_body">小&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;区</label>
108
+ <v-select class="select_list select"
109
+ v-model="model.f_residential_area"
110
+ :value.sync="model.f_residential_area"
111
+ :options='$parent.$parent.residentialarea'
112
+ style="width: 60%"
113
+ placeholder='选择小区'
114
+ condition="f_residential_area = '{}'"
115
+ close-on-select>
116
+
117
+ </v-select>
118
+ </div>
119
+ <div class="col-sm-2 form-group">
120
+ <label class="font_normal_body">具体地址</label>
121
+ <div class="btn-group select_list select" style="width: 60%;">
122
+ <input type="text" style="width: 27%;" placeholder="楼号" class="input_search" v-model="model.f_building" condition="f_building = '{}'"/>&nbsp;-&nbsp;
123
+ <input type="text" style="width: 20%;" placeholder="单元" class="input_search" v-model="model.f_unit" condition="f_unit = '{}'"/>&nbsp;-&nbsp;
124
+ <input type="text" style="width: 36%;" placeholder="室号" class="input_search" v-model="model.f_room" condition="f_room = '{}'" />
125
+ </div>
126
+ </div>
127
+ <div class="col-sm-2 form-group">
128
+ <label class="font_normal_body">气表品牌</label>
129
+ <v-select :value.sync="model.f_meter_brand"
130
+ v-model="model.f_meter_brand"
131
+ :options='$parent.$parent.meterbrands' placeholder='请选择'
132
+ condition="f_meter_brand = '{}'"
133
+ close-on-select></v-select>
134
+ </div>
135
+ <div class="col-sm-2 form-group">
136
+ <label class="font_normal_body">操作类型</label>
137
+ <v-select :value.sync="model.f_operat_type"
138
+ v-model="model.f_operat_type"
139
+ :options='$parent.$parent.operattype' placeholder='请选择'
140
+ condition="f_operat_type = '{}'"
141
+ close-on-select></v-select>
142
+ </div>
143
+ <res-select-group :initres="$parent.$parent.initres" @re-res="$parent.$parent.getRes" :cascade =true v-ref:sel></res-select-group>
144
+ </div>
145
+ </div>
146
+ </criteria>
147
+
148
+ <data-grid :model="model" partial='list' class="list_area table_sy" v-ref:grid>
149
+ <template partial='head'>
150
+ <tr>
151
+ <th>
152
+ <!-- <nobr>客户编号</nobr>-->
153
+ <data-order field="f_userinfo_code" name="客户编号"
154
+ :order.sync="$parent.$parent.$parent.orderFields.f_userinfo_code"></data-order>
155
+ </th>
156
+ <th>
157
+ <nobr>客户名称</nobr>
158
+ </th>
159
+ <th>
160
+ <nobr>档案编号</nobr>
161
+ </th>
162
+ <th>
163
+ <nobr>客户类型</nobr>
164
+ </th>
165
+ <th>
166
+ <nobr>联系电话</nobr>
167
+ </th>
168
+ <th>
169
+ <nobr>操作类型</nobr>
170
+ </th>
171
+ <th>
172
+ <nobr>客户电话</nobr>
173
+ </th>
174
+ <th>
175
+ <nobr>用气点名称</nobr>
176
+ </th>
177
+ <th>
178
+ <!-- <nobr>客户地址</nobr>-->
179
+ <data-order field="f_address" name="客户地址"
180
+ :order.sync="$parent.$parent.$parent.orderFields.f_address"></data-order>
181
+ </th>
182
+ <th>
183
+ <nobr>表号</nobr>
184
+ </th>
185
+ <th>
186
+ <nobr>气表品牌</nobr>
187
+ </th>
188
+ <th>
189
+ <nobr>停用原因</nobr>
190
+ </th>
191
+ <th>
192
+ <nobr>其他原因</nobr>
193
+ </th>
194
+ <th>
195
+ <nobr>状态</nobr>
196
+ </th>
197
+ <th>
198
+ <!-- <nobr>停用日期</nobr>-->
199
+ <data-order field="f_operate_date" name="停用日期"
200
+ :order.sync="$parent.$parent.$parent.orderFields.f_operate_date"></data-order>
201
+ </th>
202
+ <th>
203
+ <nobr>操作类型</nobr>
204
+ </th>
205
+ <th>
206
+ <nobr>人员</nobr>
207
+ </th>
208
+ <th>
209
+ <nobr>部门</nobr>
210
+ </th>
211
+ <th>
212
+ <nobr>公司</nobr>
213
+ </th>
214
+ <th><nobr>附件</nobr></th>
215
+ </tr>
216
+ </template>
217
+ <template partial='body'>
218
+ <td style="text-align: center;">
219
+ <nobr>
220
+ <span @click="$parent.$parent.$parent.dealmsg(row)"><a>{{row.f_userinfo_code}}</a></span></nobr>
221
+ </td>
222
+ <td style="text-align: center;">
223
+ <nobr>{{row.f_user_name}}</nobr>
224
+ </td>
225
+ <td style="text-align: center;">
226
+ <nobr>{{row.f_olduserinfo_code}}</nobr>
227
+ </td>
228
+ <td style="text-align: center;">
229
+ <nobr>{{row.f_user_type}}</nobr>
230
+ </td>
231
+ <td style="text-align: center;">
232
+ <nobr>{{row.f_user_phone}}</nobr>
233
+ </td>
234
+ <td style="text-align: center;">
235
+ <nobr>{{row.f_operat_type}}</nobr>
236
+ </td>
237
+ <td style="text-align: center;">
238
+ <nobr>{{row.cy_lxr}}</nobr>
239
+ </td>
240
+ <td style="text-align: center;">
241
+ <nobr>{{row.f_userfiles_address}}</nobr>
242
+ </td>
243
+ <td style="text-align: center;">
244
+ <nobr>{{row.f_address}}</nobr>
245
+ </td>
246
+ <td style="text-align: center;">
247
+ <nobr>{{row.f_meternumber}}</nobr>
248
+ </td>
249
+ <td style="text-align: center;">
250
+ <nobr>{{row.f_meter_brand}}</nobr>
251
+ </td>
252
+ <td style="text-align: center;">
253
+ <nobr>{{row.f_disable_reason}}</nobr>
254
+ </td>
255
+ <td style="text-align: center;">
256
+ <nobr>{{row.f_othereason}}</nobr>
257
+ </td>
258
+ <td style="text-align: center;">
259
+ <nobr>{{row.f_state}}</nobr>
260
+ </td>
261
+ <td style="text-align: center;">
262
+ <nobr>{{row.f_operate_date}}</nobr>
263
+ </td>
264
+ <td style="text-align: center;">
265
+ <nobr>{{row.f_operat_type}}</nobr>
266
+ </td>
267
+ <td style="text-align: center;">
268
+ <nobr>{{row.f_operator}}</nobr>
269
+ </td>
270
+ <td style="text-align: center;">
271
+ <nobr>{{row.f_depname}}</nobr>
272
+ </td>
273
+ <td style="text-align: center;">
274
+ <nobr>{{row.f_orgname}}</nobr>
275
+ </td>
276
+ <td style="text-align: center;"><nobr>
277
+ <button class="button_search button_spacing width-60" @click.stop="$parent.$parent.$parent.view(row)">查看</button>
278
+ </nobr></td>
279
+ </template>
280
+ <template partial='foot'></template>
281
+ </data-grid>
282
+ </criteria-paged>
283
+
284
+ <!-- <table class="table-hover">-->
285
+ <!-- <tr style="position: relative" class="table-bordered">-->
286
+ <!-- <td-->
287
+ <!-- style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;color: #5CB95C;font-weight: bold">-->
288
+ <!-- 汇总信息-->
289
+ <!-- </td>-->
290
+ <!-- <td style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;font-weight: bold">合计:&emsp;{{sumsmodel.f_pregas}}</td>-->
291
+ <!-- </tr>-->
292
+ <!-- </table>-->
293
+ </div>
294
+ <div class="flex" v-if="show">
295
+ <user-info-detail-manage-new :f_userinfo_id="rowdata.f_userinfo_id" @cancel-main="cancel"></user-info-detail-manage-new>
296
+ </div>
297
+ </div>
298
+ <modal :show.sync="showupload" v-if="showupload" width="80%" style="width:auto;" v-ref:modal middle backdrop="false">
299
+ <article slot="modal-body">
300
+ <upload :blodid="selected.f_userinfo_id" v-ref:upload isupload="false" takeimg="false" fusetype="停用" :isremark="false" style="width:auto" ></upload>
301
+ </article>
302
+ <footer slot="modal-footer" class="modal-footer">
303
+ </footer>
304
+ </modal>
305
+ </div>
306
+ </template>
307
+
308
+ <script>
309
+ import {PagedList} from 'vue-client'
310
+ import defaultPrint from '../../components/sale/config/DefaultPrint'
311
+ import exportConfig from '../../components/sale/config/exportConfig'
312
+
313
+ let readySomething = async function (self) {
314
+ self.$refs.paged.$refs.cri.model.startDate = self.data ? self.data.startDate : self.$login.toStandardDateString() + ' 00:00:00'
315
+ self.$refs.paged.$refs.cri.model.endDate = self.data ? self.data.endDate : self.$login.toStandardDateString() + ' 23:59:59'
316
+ self.defaultfield = [...self.defaultfield, ...self.config.defaultPrint]
317
+ // await self.$refs.paged.$refs.cri.search()
318
+ //self.$refs.paged.$refs.cri.model.f_sendsuccess = ['有效']
319
+ await self.$MagLoadParams.loadParam()
320
+ self.initParams()
321
+ self.sumsmodel = self.$refs.paged.$refs.grid.model.sums
322
+ }
323
+ export default {
324
+ props:['data','residentialarea'],
325
+ title: '停用查询',
326
+ data() {
327
+ return {
328
+ data: {},
329
+ other: [],
330
+ footer: [],
331
+ model: new PagedList('rs/sql/disableQuery', 20, {orderitem: this.orderitem?'"' + this.orderitem + ' "':`'f_operate_date desc'`}),
332
+ criteriaShow: false,
333
+ headData: ["客户编号", "客户名称", "操作人", "操作日期", "停用状态", "停用原因", "其他停用原因", "同步状态"],
334
+ bodyData: ["f_userinfo_id", "f_user_name", "f_operator", "f_operate_date", "f_state", "f_comments", "f_othereason", "f_sendsuccess"],
335
+ orgCondtionStr: '',
336
+ show:false,
337
+ rowdata:{},
338
+ modelval: [],
339
+ printshow: false,
340
+ all: false,
341
+ fields: {},
342
+ config: {
343
+ defaultPrint: ['f_userinfo_code', 'f_user_name', 'f_user_phone', 'f_othereason', 'f_state', 'f_operate_date', 'f_operat_type', 'f_operator']
344
+ },
345
+ //排序
346
+ orderitem:'f_operate_date desc',
347
+ orderFields: {
348
+ f_operate_date: 'no'
349
+ },
350
+ thead: '',
351
+ showupload:false,
352
+ selected:{},
353
+ //默认打印列
354
+ defaultfield: [],
355
+ tfoot: '',
356
+ initres: {
357
+ org:[this.$login.f.orgid],
358
+ dep:[],
359
+ user:[],
360
+ },
361
+ //合计数据
362
+ sumsmodel: {},
363
+ operattype:[{label: '全部', value: ''},{label: '停用', value: '停用'},{label: '拆表', value: '拆表'},{label: '封堵', value: '封堵'}],
364
+ meterbrands: []
365
+ }
366
+ },
367
+ ready() {
368
+ readySomething(this).then(() => {
369
+ this.$emit('ready')
370
+ }).catch((error) => {
371
+ this.$emit('error', error)
372
+ })
373
+ },
374
+ methods: {
375
+ view(row){
376
+ this.showupload = true
377
+ this.selected= row
378
+ },
379
+ getotherfooter() {
380
+ // this.$refs.paged.$refs.cri.$refs.exports.otherData=[];
381
+ // this.$refs.paged.$refs.cri.$refs.exports.footerData=[];
382
+ this.other = [];
383
+ this.footer = [];
384
+ let exportdata = this.getCondition;
385
+ let otherInData = [];
386
+ otherInData.push(`导出时间: ${this.$login.toStandardTimeString()}`);
387
+ let footerData = [], exportfield = this.getfield;
388
+ footerData.push("合计");
389
+ let self = this;
390
+ for (var field in self.sumsmodel) {
391
+ footerData.push(`${exportfield[field]}合计:${self.sumsmodel[field]}`);
392
+ }
393
+ this.footer.push(footerData);
394
+ this.other.push(otherInData);
395
+ },
396
+ search(){
397
+ this.$refs.paged.$refs.cri.search()
398
+ },
399
+ selfSearch(args) {
400
+ if (this.data) {
401
+ this.$parent.$parent.$parent.data.startDate=this.$refs.paged.$refs.cri.model.startDate
402
+ this.$parent.$parent.$parent.data.endDate=this.$refs.paged.$refs.cri.model.endDate
403
+ }
404
+ args.condition = `${args.condition}` + this.orgCondtionStr
405
+ args.condition = args.condition.replace(/f_zones/, "f_slice_area")
406
+ this.model.search(args.condition, args.model)
407
+ this.sumsmodel = this.$refs.paged.$refs.grid.model.sums
408
+ },
409
+ clear() {
410
+ //清空部门和人员
411
+ this.$refs.paged.$refs.cri.$refs.sel.$children[1].selectres = []
412
+ //部门和人员变为全选
413
+ this.$refs.paged.$refs.cri.$refs.sel.$children[1].$children[0].isSelectAll = false
414
+ this.$refs.paged.$refs.cri.$refs.sel.$children[2].$children[0].isSelectAll = false
415
+ Object.keys(this.$refs.paged.$refs.cri.model).forEach((key) => {
416
+ this.$refs.paged.$refs.cri.model[key] = []
417
+ })
418
+ },
419
+ show() {
420
+ this.criteriaShow = true
421
+ },
422
+ hidden() {
423
+ this.criteriaShow = !this.criteriaShow
424
+ },
425
+ getRes(obj) {
426
+ this.orgCondtionStr = obj
427
+ },
428
+ stamp() {
429
+ this.all = false
430
+ //默认选择要打印的列
431
+ this.modelval = defaultPrint.config
432
+ this.fields = this.getfield
433
+ console.log('所有打印字段', this.fields)
434
+ this.printshow = true
435
+ this.put()
436
+ },
437
+ put() {
438
+ // 对Modelval进行排序
439
+ this.sortModelval()
440
+ this.thead = `<tr><th colspan=${this.modelval.length}>停用查询报表</th></tr><tr>`
441
+ for (let key of this.modelval) {
442
+ this.thead += '<th>' + this.fields[key] + '</th>'
443
+ }
444
+ this.thead += '</tr>'
445
+ },
446
+ cancel() {
447
+ this.show = false
448
+ },
449
+ dealmsg(val) {
450
+ console.log('---------------dealmsg')
451
+ this.rowdata=val
452
+ this.show=true
453
+ val.model = this.model.model
454
+ this.$dispatch('deal-msg', val)
455
+ },
456
+ print() {
457
+ this.$refs.print.PrintAsFile()
458
+ this.printshow = false
459
+ },
460
+ close() {
461
+ this.printshow = false
462
+ this.all = false
463
+ },
464
+ // 对选择的列进行排序
465
+ sortModelval() {
466
+ let sortModel = []
467
+ Object.keys(this.fields).forEach((key) => {
468
+ if (this.modelval.includes(key)) {
469
+ sortModel.push(key)
470
+ }
471
+ })
472
+ this.modelval = sortModel
473
+ console.log('选择的打印的字段', this.modelval)
474
+ },
475
+ sort (field, rule) {
476
+ // 将所有排序方式设为不排序,实现相互排斥
477
+ for (let key in this.orderFields) {
478
+ if (key === field) {
479
+ this.orderFields[key] = rule
480
+ } else {
481
+ this.orderFields[key] = 'no'
482
+ }
483
+ }
484
+ // 如果新规则不排序,还原为默认排序
485
+ if (rule === 'no') {
486
+ this.model.paramSource.orderitem = `'${this.orderitem}'`
487
+ } else {
488
+ this.model.paramSource.orderitem = `'${field} ${rule}'`
489
+ }
490
+
491
+ this.search()
492
+ },
493
+ initParams() {
494
+ // 初始化气表品牌
495
+ let brandArr = []
496
+ this.$MagGetSaleParam.getGasbrand().forEach((item) => {
497
+ let temp = {}
498
+ temp.label = item.label
499
+ temp.value = item.value.f_meter_brand
500
+ brandArr.push(temp)
501
+ })
502
+ this.meterbrands = [{label: '全部', value: ''}, ...brandArr]
503
+ }
504
+ },
505
+ watch: {
506
+ 'all'(val) {
507
+ if (val) {
508
+ this.modelval = this.bodyData
509
+ } else {
510
+ this.modelval = defaultPrint.config
511
+ this.put()
512
+ }
513
+ },
514
+ sumsmodel: {
515
+ handler: function (val) {
516
+ this.getotherfooter();
517
+ },
518
+ deep: true
519
+ },
520
+ 'modelval.length'() {
521
+ this.put()
522
+ },
523
+ },
524
+ computed: {
525
+ getCondition() {
526
+ return {
527
+ condition: `${this.$refs.paged.$refs.cri.condition}` + this.orgCondtionStr,
528
+ orderitem: this.orderitem?`${this.orderitem}`: " f_operate_date desc"
529
+ }
530
+ },
531
+ getfield() {
532
+ return exportConfig.disableConfig
533
+ },
534
+ disablereason () {
535
+ return this.$appdata.getParam('停用原因')
536
+ }
537
+ }
538
+ }
539
+ </script>