manage-client 4.0.62 → 4.0.63

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "manage-client",
3
- "version": "4.0.62",
3
+ "version": "4.0.63",
4
4
  "description": "经营管控模块前台组件",
5
5
  "main": "src/index.js",
6
6
  "directories": {
@@ -0,0 +1,216 @@
1
+ <template>
2
+ <div class="basic-main" style="height: 100%">
3
+ <criteria-paged :model="model" :pager='false' v-ref:paged>
4
+ <criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:criteria>
5
+ <div novalidate class="form-horizontal select-overspread container-fluid auto" partial >
6
+ <div class="row">
7
+ <div class="col-sm-2" >
8
+ <label class="font_normal_body" for="startDate">开始日期:</label>
9
+ <datepicker id="startDate" placeholder="开始日期" style="width: 60%"
10
+ v-model="model.startDate"
11
+ :value.sync="model.startDate"
12
+ :disabled-days-of-Week="[]"
13
+ :format="'yyyy-MM-dd HH:mm:ss'"
14
+ :show-reset-button="reset">
15
+ </datepicker>
16
+ </div>
17
+ <div class="col-sm-2" >
18
+ <label class="font_normal_body" for="endDate">结束日期:</label>
19
+ <datepicker id="endDate" placeholder="结束日期" style="width: 60%"
20
+ v-model="model.endDate"
21
+ :value.sync="model.endDate"
22
+ :disabled-days-of-Week="[]"
23
+ :format="'yyyy-MM-dd HH:mm:ss'"
24
+ :show-reset-button="reset">
25
+ </datepicker>
26
+ </div>
27
+ <div class="col-sm-2">
28
+ <label class="font_normal_body" title="参数:气表类型查询">气表类型:</label>
29
+ <v-select :value.sync="model.f_meter_type" multiple
30
+ v-model="model.f_meter_type"
31
+ :options='$parent.$parent.metertype' placeholder='请选择'
32
+ condition="f_meter_classify in {}"
33
+ close-on-select></v-select>
34
+ </div>
35
+ <div class="col-sm-2">
36
+ <label class="font_normal_body">&nbsp;&nbsp;&nbsp;公司&nbsp;&nbsp;&nbsp; </label>
37
+ <right-tree @re-res="$parent.$parent.getRes" style="width: 60%"></right-tree>
38
+ </div>
39
+ <div class="col-sm-2">
40
+ <label class="font_normal_body">&nbsp;&nbsp;&nbsp;部门&nbsp;&nbsp;&nbsp; </label>
41
+ <res-select restype='department'
42
+ is-mul="false"
43
+ @res-select="$parent.$parent.getdep"
44
+ :parentresid="$parent.$parent.depresid"
45
+ :initresid='$parent.$parent.depid'>
46
+ </res-select>
47
+
48
+ </div>
49
+ <div class="col-sm-2">
50
+ <label class="font_normal_body">&nbsp;&nbsp;&nbsp;人员&nbsp;&nbsp;&nbsp; </label>
51
+ <res-select restype='user'
52
+ is-mul="false"
53
+ @res-select="$parent.$parent.getuser"
54
+ :parentresid="$parent.$parent.userresid"
55
+ :initresid='$parent.$parent.operatorid'>
56
+ </res-select>
57
+ </div>
58
+ </div>
59
+ <div class="span" style = "float:right;">
60
+ <button class="button_search" @click="$parent.$parent.searchData()">查询</button>
61
+ <report-print id='gasprice' top='3cm' left='0' width='100%' height='100%' :preview="true"></report-print>
62
+ <report-excel id='gasprice'></report-excel>
63
+ </div>
64
+ </div>
65
+ </criteria>
66
+ <div partial='list' v-el:handcollect id='gasprice' style="overflow-y: scroll">
67
+ <table class='tableprint' style="margin: 0px auto" v-if="!$parent.data.f_files_path">
68
+ <thead>
69
+ <tr>
70
+ <th :colspan='$parent.spans' style="font-weight: normal; text-align: left;">
71
+ <h3 style="text-align: center">非民用用气统计</h3>
72
+ </th>
73
+ </tr>
74
+ <tr>
75
+ <th :colspan='$parent.spans' style="font-weight: normal; text-align: center;">
76
+ 开始时间:{{model.model.startDate}}&nbsp;&nbsp;&nbsp;
77
+ 结束时间:{{ model.model.endDate }}&nbsp;&nbsp;<br/>
78
+ 打印时间:{{{$parent.printTime}}}
79
+ </th>
80
+ </tr>
81
+ <tr>
82
+ <th :colspan='$parent.spans' style="font-weight: normal; text-align: center;">
83
+ <div>
84
+ <span v-show="$parent.orgname.trim()!=''">公司:{{$parent.orgname}}</span>
85
+ <span v-show="$parent.depname.trim()!=''"> 部门:{{$parent.depname}}</span>
86
+ <span v-show="$parent.operatorname.trim()!=''">人员:{{$parent.operatorname}}</span>
87
+ </div>
88
+ </th>
89
+ </tr>
90
+ </thead>
91
+ <tr>
92
+ <td :colspan='$parent.spans' class="noborder">
93
+ {{{ model.data.substring(26,model.data.length-8) }}}
94
+ </td>
95
+ </tr>
96
+ <tfoot>
97
+ <tr style="text-align: left">
98
+ <th :colspan='Math.floor($parent.spans/3)'>财务审核:</th>
99
+ <th :colspan='Math.floor($parent.spans/3)'>收款审核:</th>
100
+ <th :colspan='Math.floor($parent.spans/3)'>收款员:</th>
101
+ </tr>
102
+ </tfoot>
103
+ </table>
104
+ {{{ $parent.reportStr}}}
105
+ </div>
106
+ </criteria-paged>
107
+ <modal :show.sync="show" v-ref:modal small backdrop="false">
108
+ <header slot="modal-header" class="modal-header">
109
+ <h4 class="modal-title">输入文件名称</h4>
110
+ </header>
111
+ <article slot="modal-body" class="modal-body">
112
+ <div class="form-group">
113
+ <input type="text" class="form-control" v-model="filename" placeholder='保存的文件名'>
114
+ </div>
115
+ </article>
116
+ <footer slot="modal-footer" class="modal-footer">
117
+ <button v-show="show" type="button" class="btn btn-default" @click='close'>取消</button>
118
+ <button v-show="show" type="button" class="btn btn-success" @click='confirm(filename)'>确认</button>
119
+ </footer>
120
+ </modal>
121
+ </div>
122
+ </template>
123
+
124
+ <script>
125
+ import { DataModel } from 'vue-client'
126
+ import co from 'co'
127
+
128
+ export default {
129
+ title: '非民用用气统计',
130
+ props: ['data'],
131
+ data () {
132
+ return {
133
+ printTime: this.$login.toStandardTimeString(),
134
+ depresid: [],
135
+ userresid: [],
136
+ f_orgid: this.$login.f.orgid,
137
+ f_depid: this.$login.f.depids,
138
+ f_operatorid: this.$login.f.id,
139
+ operatorid: [],
140
+ depid: [],
141
+ orgname: '',
142
+ depname: '',
143
+ operatorname: '',
144
+ orgCondtionStr: '1=1',
145
+ model: new DataModel('api/af-revenue/report/sy_nonResidentGas', {startDate: 'this.model.startDate', endDate: 'this.model.endDate',
146
+ f_orgid: 'this.model.f_orgid'}),
147
+ reportStr: null,
148
+ spans: 0
149
+ }
150
+ },
151
+ ready () {
152
+ this.$refs.paged.$refs.criteria.model.startDate = this.$login.toStandardDateString() + ' 00:00:00'
153
+ this.$refs.paged.$refs.criteria.model.endDate = this.$login.toStandardDateString() + ' 23:59:59'
154
+ this.$refs.paged.$refs.criteria.search()
155
+ console.log(this.$login.f)
156
+ },
157
+ methods: {
158
+ searchData () {
159
+ this.$refs.paged.$refs.criteria.search()
160
+ },
161
+ selfSearch (args) {
162
+ this.printTime = this.$login.toStandardTimeString()
163
+ let orgcondition ='1=1'
164
+ if (this.f_orgid && this.f_orgid[0]) {
165
+ orgcondition += ` and f_orgid in ('${this.f_orgid}')`
166
+ }
167
+ if (this.f_depid && this.f_depid[0]) {
168
+ orgcondition += ` and f_depid in ('${this.f_depid}')`
169
+ }
170
+ if(this.f_operatorid && this.f_operatorid[0]) {
171
+ orgcondition += ` and f_operatorid in ('${this.f_operatorid}')`
172
+ }
173
+ console.log('111111',args)
174
+ orgcondition = orgcondition + ' and ' +args.condition
175
+ this.$refs.paged.$refs.criteria.model.f_orgid = orgcondition
176
+ this.$refs.paged.search(args)
177
+ },
178
+ getRes (obj) {
179
+ this.orgname = obj.res[0]
180
+ this.depresid = obj.resids
181
+ this.f_orgid = obj.resids
182
+ },
183
+ getdep (obj, val) {
184
+ this.depname = val[0]
185
+ this.userresid = obj
186
+ this.f_depid = obj
187
+ },
188
+ getuser ( obj, val) {
189
+ this.operatorname = val[0]
190
+ this.f_operatorid = obj
191
+ }
192
+ },
193
+ watch: {
194
+ 'model.data' (val) {
195
+ let len=0
196
+ let a=val.split('</tr>')
197
+ for(let i=0;i<a.length;i++){
198
+ if(a[i].split('</td>').length-1>len){
199
+ len=a[i].split('</td>').length-1
200
+ }
201
+ }
202
+ this.spans = len
203
+ }
204
+ },
205
+ computed: {
206
+ metertype() {
207
+ return [...this.$appdata.getParam('气表类型查询')]
208
+ }
209
+ }
210
+ }
211
+ </script>
212
+ <style scoped>
213
+ .noborder{
214
+ border: none;
215
+ }
216
+ </style>
@@ -281,7 +281,9 @@
281
281
  <th style="text-align:center">
282
282
  <nobr>启用日期</nobr>
283
283
  </th>
284
-
284
+ <th style="text-align:center">
285
+ <nobr>最后通讯时间</nobr>
286
+ </th>
285
287
  <th style="text-align:center">
286
288
  <nobr>应报天数</nobr>
287
289
  </th>
@@ -329,6 +331,7 @@
329
331
  <td style="text-align:center"><nobr>{{row.f_meternumber}}</nobr></td>
330
332
  <td style="text-align:center"><nobr>{{row.f_startuse_date}}</nobr></td>
331
333
 
334
+ <td style="text-align:center"><nobr>{{row.f_meteread_date}}</nobr></td>
332
335
  <td style="text-align:center">{{row.ybdays}}</td>
333
336
  <td style="text-align:center">{{row.sbdays}}</td>
334
337
  <td style="text-align:center">
@@ -418,6 +421,7 @@
418
421
  "f_gasproperties":"用气性质",
419
422
  "f_meternumber":"表号",
420
423
  "f_startuse_date":"启用日期",
424
+ "f_meteread_date": "最后通讯时间",
421
425
  "ybdays":"应报天数",
422
426
  "sbdays":"实报天数",
423
427
  "max_interval_day":"最长失联天数",
@@ -61,6 +61,24 @@
61
61
  <right-tree @re-res="$parent.$parent.getorg"
62
62
  :initresid='$parent.$parent.org'></right-tree>
63
63
  </div>
64
+
65
+ <div class="col-sm-2 form-group">
66
+ <label class="font_normal_body">客户类型</label>
67
+ <v-select :value.sync="model.f_user_type"
68
+ @change="$parent.$parent.userTypeChange()"
69
+ :options='$parent.$parent.usertypes' placeholder='请选择' v-model="model.f_user_type"
70
+ condition="f_user_type = '{}'"
71
+ close-on-select></v-select>
72
+ </div>
73
+ <div class="col-sm-2 form-group">
74
+ <label class="font_normal_body">用气性质</label>
75
+ <v-select :value.sync="model.f_gasproperties" v-model="model.f_gasproperties"
76
+ :options='$parent.$parent.gasproperties' placeholder='请选择'
77
+ condition="f_gasproperties = '{}'"
78
+ close-on-select></v-select>
79
+ </div>
80
+
81
+
64
82
  <div class="col-sm-2 form-group">
65
83
  <label class="font_normal_body">&nbsp;&nbsp;&nbsp;余额&nbsp;&nbsp;&nbsp;</label>
66
84
  <input type="number" style="width:30%" class="input_search" title="大于等于" v-model="model.f_balance_amount_small"
@@ -181,6 +199,12 @@
181
199
  <th style="text-align:center">
182
200
  <nobr>客户地址</nobr>
183
201
  </th>
202
+ <th style="text-align:center">
203
+ <nobr>客户类型</nobr>
204
+ </th>
205
+ <th style="text-align:center">
206
+ <nobr>用气性质</nobr>
207
+ </th>
184
208
  <th style="text-align:center">
185
209
  <nobr>账户余额</nobr>
186
210
  </th>
@@ -245,6 +269,9 @@
245
269
  <td>
246
270
  <nobr>{{row.address}}</nobr>
247
271
  </td>
272
+ <td style="text-align:center">{{row.f_user_type}}</td>
273
+ <td style="text-align:center">{{row.f_gasproperties}}</td>
274
+
248
275
  <td style="text-align:center">{{row.f_balance_amount}}</td>
249
276
  <td style="text-align:center">{{row.f_user_phone}}</td>
250
277
  <td style="text-align:center"><nobr>{{row.f_meternumber}}</nobr></td>
@@ -360,13 +387,14 @@
360
387
  {label: '日', value: 'day'}
361
388
  ],
362
389
  getfield:{
363
- "f_userinfo_code":"客户编号", "f_user_name":"客户名称","f_residential_area":"小区", "address":"客户地址","f_balance_amount":"账户余额","f_user_phone":"联系电话",
390
+ "f_userinfo_code":"客户编号", "f_user_name":"客户名称","f_residential_area":"小区", "address":"客户地址","f_user_type":"客户类型","f_gasproperties":"用气性质","f_balance_amount":"账户余额","f_user_phone":"联系电话",
364
391
  "f_meternumber":"表号","f_meter_brand":"气表品牌","f_hand_date":"抄表日期","f_insert_date":"最后一次通讯时间","f_electricity":"电池电量","f_batterylevel":"电池电压",
365
392
  "f_signal":"信号强度","f_magneticInterference":"磁干扰异常","f_valvestate":"阀门状态","f_error_type":"异常类型","f_error_level":"异常级别","f_is_read":"处理状态","f_error_reason":"备注信息","f_orgname":"分公司"
366
393
  },
367
394
  outlets: [],
368
395
  operator: [],
369
396
  showdetail:false,
397
+ gasproperties:[],
370
398
  rowdata:{},
371
399
  filename: '',
372
400
  criteriaShow: false,
@@ -404,6 +432,16 @@
404
432
  this.orgCondtionStr = " and f_orgid = " + this.$login.f.orgid + " and f_error_type IS NOT NULL and f_error_level IS NOT NULL "
405
433
  }
406
434
  },
435
+ userTypeChange () {
436
+ this.gasproperties=[]
437
+ if(this.$refs.paged.$refs.cri.model !==null) {
438
+ this.$refs.paged.$refs.cri.model.f_gasproperties=''
439
+ this.gasproperties = this.$appdata.getParam(this.$refs.paged.$refs.cri.model.f_user_type[0])
440
+ }
441
+ else{
442
+ this.gasproperties =[{label: '全部', value: ''}]
443
+ }
444
+ },
407
445
  initParams () {
408
446
  let arr = []
409
447
  this.$MagGetSaleParam.getGasbrand().forEach((item) => {
@@ -558,9 +596,6 @@
558
596
  usertypes() {
559
597
  return [{label: '全部', value: ''}, ...this.$appdata.getParam('用户类型')]
560
598
  },
561
- Gasproperties() {
562
- return [{label: '全部', value: ''}, ...this.$appdata.getParam('用气性质')]
563
- },
564
599
  isread() {
565
600
  return [{label: '全部', value: ''}, ...this.$appdata.getParam('处理状态')]
566
601
  },
@@ -0,0 +1,633 @@
1
+ <template>
2
+ <div class="flex-row" v-if="!showdetail">
3
+ <div id='app1' class="basic-main" v-show="(!echarts)&&(!isActiveTotalForm)">
4
+ <criteria-paged :model="model" :pager='true' v-ref:paged>
5
+ <criteria partial='criteria' @condition-changed='$parent.search' v-ref:cri>
6
+ <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
7
+ <div class="row">
8
+ <div class="col-sm-2 form-group">
9
+ <label class="font_normal_body">客户编号</label>
10
+ <input style="width:60%" type="text" class="input_search"
11
+ v-model="model.f_userinfo_code"
12
+ placeholder='客户编号'
13
+ @keyup.enter="search"
14
+ condition="f_userinfo_code like '%{}%'"
15
+ v-el:xq v-next-el='f_userinfo_code'
16
+ v-el:username>
17
+ </div>
18
+ <div class="col-sm-2 form-group">
19
+ <label class="font_normal_body">客户名称</label>
20
+ <input style="width:60%" type="text" class="input_search"
21
+ v-model="model.username"
22
+ @keyup.enter="search"
23
+ placeholder='客户名称'
24
+ condition="username like '%{}%'"
25
+ v-el:xq v-next-el='username'
26
+ v-el:username>
27
+ </div>
28
+ <div class="col-sm-2 form-group">
29
+ <label class="font_normal_body">客户地址</label>
30
+ <input style="width:60%" type="text" class="input_search"
31
+ v-model="model.address" placeholder='地址'
32
+ condition="address like '%{}%'"
33
+ @keyup.enter="search"
34
+ v-el:xq v-next-el='address' v-el:area
35
+ >
36
+ </div>
37
+ <div class="col-sm-2 form-group">
38
+ <label class="font_normal_body">&nbsp;&nbsp;&nbsp;表号&nbsp;&nbsp;&nbsp;</label>
39
+ <input style="width:60%" type="text" class="input_search"
40
+ v-model="model.f_meternumber" placeholder='表号'
41
+ @keyup.enter="search"
42
+ condition="f_meternumber = '{}'"
43
+ v-next-el='meternumber' v-el:meternumber>
44
+ </div>
45
+ <div style="float:right">
46
+ <button class="button_search button_spacing" @click="search()">查询</button>
47
+ <button class="button_clear button_spacing" @click="$parent.$parent.clearmsg">清空</button>
48
+ <export-excel :data="$parent.$parent.getCondition" class="button_export button_spacing"
49
+ :field="$parent.$parent.getfield"
50
+ :header="$parent.$parent.other"
51
+ sqlurl="api/af-revenue/logic/openapi/exportfile" sql-name="getExceptionList" template-name='异常查询'
52
+ :choose-col="true"></export-excel>
53
+ <!--<button class="button_export button_spacing" style="width: max-content" @click="$parent.$parent.showTotalForm()">显示汇总</button>-->
54
+ <!-- <button class="button_search button_spacing" @click="$parent.$parent.showEcharts()">显示图表</button>-->
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
+ <div class="row" v-show="$parent.$parent.criteriaShow">
59
+ <div class="col-sm-2 form-group">
60
+ <label class="font_normal_body">&nbsp;&nbsp;&nbsp;公司&nbsp;&nbsp;&nbsp;</label>
61
+ <right-tree @re-res="$parent.$parent.getorg"
62
+ :initresid='$parent.$parent.org'></right-tree>
63
+ </div>
64
+
65
+ <div class="col-sm-2 form-group">
66
+ <label class="font_normal_body">客户类型</label>
67
+ <v-select :value.sync="model.f_user_type"
68
+ @change="$parent.$parent.userTypeChange()"
69
+ :options='$parent.$parent.usertypes' placeholder='请选择' v-model="model.f_user_type"
70
+ condition="f_user_type = '{}'"
71
+ close-on-select></v-select>
72
+ </div>
73
+ <div class="col-sm-2 form-group">
74
+ <label class="font_normal_body">用气性质</label>
75
+ <v-select :value.sync="model.f_gasproperties" v-model="model.f_gasproperties"
76
+ :options='$parent.$parent.gasproperties' placeholder='请选择'
77
+ condition="f_gasproperties = '{}'"
78
+ close-on-select></v-select>
79
+ </div>
80
+
81
+
82
+ <div class="col-sm-2 form-group">
83
+ <label class="font_normal_body">&nbsp;&nbsp;&nbsp;余额&nbsp;&nbsp;&nbsp;</label>
84
+ <input type="number" style="width:30%" class="input_search" title="大于等于" v-model="model.f_balance_amount_small"
85
+ condition="f_balance_amount >= {} " placeholder="大于等于">
86
+ <input type="number" style="width:30%" class="input_search" title="小于等于" v-model="model.f_balance_amount_big"
87
+ condition="f_balance_amount <= {} " placeholder="小于等于">
88
+ </div>
89
+ <div class="col-sm-2 form-group">
90
+ <label class="font_normal_body">气表品牌</label>
91
+ <v-select :value.sync="model.f_meter_brand" multiple="true"
92
+ v-model="model.f_meter_brand"
93
+ :options='$parent.$parent.meterbrands' placeholder='请选择'
94
+ condition="f_meter_brand in {}"
95
+ ></v-select>
96
+ </div>
97
+ <div class="col-sm-2 form-group">
98
+ <label class="font_normal_body">上报区间</label>
99
+ <datepicker style="width:60%" id="startdate" placeholder="开始时间"
100
+ v-model="model.startDate"
101
+ :value.sync="model.startDate"
102
+ :disabled-days-of-Week="[]"
103
+ :format="'yyyy-MM-dd HH:mm:ss'"
104
+ :show-reset-button="reset">
105
+ </datepicker>
106
+ </div>
107
+ <div class="col-sm-2 form-group">
108
+ <label class="font_normal_body" style="word-break:keep-all;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;至&nbsp;&nbsp;&nbsp;</label>
109
+ <datepicker style="width:60%" id="enddate" placeholder="结束日期"
110
+ v-model="model.endDate"
111
+ :value.sync="model.endDate"
112
+ :format="'yyyy-MM-dd HH:mm:ss'"
113
+ :disabled-days-of-Week="[]"
114
+ :show-reset-button="reset">
115
+ </datepicker>
116
+ </div>
117
+ <div class="col-sm-2 form-group">
118
+ <label class="font_normal_body">未抄表天数</label>
119
+ <input type="number" style="width:30%" class="input_search" title="大于等于" v-model="model.f_day_small"
120
+ condition="DateDiff(dd,f_hand_date,getdate()) >= {} " placeholder="大于等于">
121
+ <input type="number" style="width:30%" class="input_search" title="小于等于" v-model="model.f_day_big"
122
+ condition="DateDiff(dd,f_hand_date,getdate()) <= {} " placeholder="小于等于">
123
+ </div>
124
+ <div class="col-sm-2 form-group">
125
+ <label class="font_normal_body">电池电量</label>
126
+ <input type="number" style="width:30%" class="input_search" title="大于等于" v-model="model.f_electricity_small"
127
+ condition="f_electricity >= {} " placeholder="大于等于">
128
+ <input type="number" style="width:30%" class="input_search" title="小于等于" v-model="model.f_electricity_big"
129
+ condition="f_electricity <= {} " placeholder="小于等于">
130
+ </div>
131
+ <div class="col-sm-2 form-group">
132
+ <label class="font_normal_body">电池电压</label>
133
+ <input type="number" style="width:30%" class="input_search" title="大于等于" v-model="model.f_batterylevel_small"
134
+ condition="f_batterylevel >= {} " placeholder="大于等于">
135
+ <input type="number" style="width:30%" class="input_search" title="小于等于" v-model="model.f_batterylevel_big"
136
+ condition="f_batterylevel <= {} " placeholder="小于等于">
137
+ </div>
138
+ <div class="col-sm-2 form-group">
139
+ <label class="font_normal_body">异常级别</label>
140
+ <v-select style="width:60%"
141
+ v-model="model.f_error_level"
142
+ placeholder='异常级别'
143
+ @change="$parent.$parent.getErrorInfo('f_error_type')"
144
+ :value.sync="model.f_error_level"
145
+ :options='$parent.$parent.GetErrorLevel'
146
+ condition="f_error_level = '{}'"
147
+ close-on-select>
148
+ </v-select>
149
+ </div>
150
+ <div class="col-sm-2 form-group">
151
+ <label class="font_normal_body">异常类型</label>
152
+ <v-select style="width:60%" multiple="true"
153
+ v-model="model.f_error_type"
154
+ placeholder='异常类型'
155
+ :value.sync="model.f_error_type"
156
+ :options='$parent.$parent.GetErrorType'
157
+ condition="f_error_type in {}"
158
+ >
159
+ </v-select>
160
+ </div>
161
+ <div class="col-sm-2 form-group">
162
+ <label class="font_normal_body">处理状态</label>
163
+ <v-select style="width:60%"
164
+ v-model="model.f_is_read"
165
+ placeholder='处理状态'
166
+ :value.sync="model.f_is_read"
167
+ :options='$parent.$parent.isread'
168
+ condition="f_is_read = '{}'"
169
+ close-on-select>
170
+ </v-select>
171
+ </div>
172
+ <div class="col-sm-2 form-group">
173
+ <label class="font_normal_body">备注信息</label>
174
+ <input style="width:60%" type="text" class="input_search"
175
+ v-model="model.f_error_reason"
176
+ placeholder='备注信息'
177
+ condition="f_error_reason like '%{}%'"
178
+ v-el:xq v-next-el='f_error_reason'
179
+ v-el:f_error_reason>
180
+ </div>
181
+ </div>
182
+ </div>
183
+ </criteria>
184
+ <data-grid id="lostuserlist" :model="model" class="list_area table_sy" partial='list' v-ref:grid>
185
+ <template partial='head'>
186
+ <tr>
187
+ <th style="text-align:center">
188
+ <nobr>序号</nobr>
189
+ </th>
190
+ <th style="text-align:center">
191
+ <nobr>客户编号</nobr>
192
+ </th>
193
+ <th style="text-align:center">
194
+ <nobr>客户名称</nobr>
195
+ </th>
196
+ <th style="text-align:center">
197
+ <nobr>小区</nobr>
198
+ </th>
199
+ <th style="text-align:center">
200
+ <nobr>客户地址</nobr>
201
+ </th>
202
+ <th style="text-align:center">
203
+ <nobr>客户类型</nobr>
204
+ </th>
205
+ <th style="text-align:center">
206
+ <nobr>用气性质</nobr>
207
+ </th>
208
+ <th style="text-align:center">
209
+ <nobr>账户余额</nobr>
210
+ </th>
211
+ <th style="text-align:center">
212
+ <nobr>联系电话</nobr>
213
+ </th>
214
+ <th style="text-align:center">
215
+ <nobr>表号</nobr>
216
+ </th>
217
+ <th style="text-align:center">
218
+ <nobr>气表品牌</nobr>
219
+ </th>
220
+ <th style="text-align:center">
221
+ <nobr>抄表日期</nobr>
222
+ </th>
223
+ <th style="text-align:center">
224
+ <nobr>最后一次通讯时间</nobr>
225
+ </th>
226
+ <th style="text-align:center">
227
+ <nobr>电池电量</nobr>
228
+ </th>
229
+ <th style="text-align:center">
230
+ <nobr>电池电压</nobr>
231
+ </th>
232
+ <th style="text-align:center">
233
+ <nobr>信号强度</nobr>
234
+ </th>
235
+ <th style="text-align:center">
236
+ <nobr>磁干扰异常</nobr>
237
+ </th>
238
+ <th style="text-align:center">
239
+ <nobr>阀门状态</nobr>
240
+ </th>
241
+ <th style="text-align:center">
242
+ <nobr>异常类型</nobr>
243
+ </th>
244
+ <th style="text-align:center">
245
+ <nobr>异常级别</nobr>
246
+ </th>
247
+ <th style="text-align:center">
248
+ <nobr>报警详情</nobr>
249
+ </th>
250
+ <th style="text-align:center">
251
+ <nobr>处理状态</nobr>
252
+ </th>
253
+ <th style="text-align:center">
254
+ <nobr>备注信息</nobr>
255
+ </th>
256
+ <th style="text-align:center">
257
+ <nobr>分公司</nobr>
258
+ </th>
259
+
260
+ </tr>
261
+
262
+ </template>
263
+ <template partial='body'>
264
+ <td style="text-align:center">
265
+ <nobr>{{$index+1}}</nobr>
266
+ </td>
267
+ <td style="text-align: center;"><nobr>
268
+ <span @click="$parent.$parent.$parent.showmsg(row)"><a>{{row.f_userinfo_code}}</a></span>
269
+ </nobr> </td>
270
+ <td style="text-align:center"><nobr>{{row.username}}</nobr></td>
271
+ <td style="text-align:center"><nobr>{{row.f_residential_area}}</nobr></td>
272
+ <td>
273
+ <nobr>{{row.address}}</nobr>
274
+ </td>
275
+ <td style="text-align:center">{{row.f_user_type}}</td>
276
+ <td style="text-align:center">{{row.f_gasproperties}}</td>
277
+
278
+ <td style="text-align:center">{{row.f_balance_amount}}</td>
279
+ <td style="text-align:center">{{row.f_user_phone}}</td>
280
+ <td style="text-align:center"><nobr>{{row.f_meternumber}}</nobr></td>
281
+ <td style="text-align:center">
282
+ <nobr>{{row.f_meter_brand}}</nobr>
283
+ </td>
284
+ <td style="text-align:center">
285
+ <nobr>{{row.f_hand_date}}</nobr>
286
+ </td>
287
+ <td style="text-align:center">
288
+ <nobr>{{row.f_insert_date}}</nobr>
289
+ </td>
290
+ <td style="text-align:center">
291
+ <nobr>{{row.f_electricity}}</nobr>
292
+ </td>
293
+ <td style="text-align:center">
294
+ <nobr>{{row.f_batterylevel}}</nobr>
295
+ </td>
296
+ <td style="text-align:center">
297
+ <nobr>{{row.f_signal}}</nobr>
298
+ </td>
299
+ <td style="text-align:center">
300
+ <nobr>{{row.f_magneticInterference == 1 ? '异常' : '正常'}}</nobr>
301
+ </td>
302
+ <td style="text-align:center">
303
+ <nobr>{{row.f_valvestate == 0 ? '开阀' : '关阀'}}</nobr>
304
+ </td>
305
+ <td style="text-align:center">
306
+ <nobr>{{row.f_error_type}}</nobr>
307
+ </td>
308
+ <td style="text-align:center">
309
+ <nobr>{{row.f_error_level}}</nobr>
310
+ </td>
311
+ <td style="text-align:center">
312
+ <nobr>{{row.f_error_msg}}</nobr>
313
+ </td>
314
+ <td style="text-align:center">
315
+ <nobr>{{row.f_is_read}}</nobr>
316
+ </td>
317
+ <td style="text-align:center">
318
+ <nobr>{{row.f_error_reason}}</nobr>
319
+ </td>
320
+ <td style="text-align:center">
321
+ <nobr>{{row.f_orgname}}</nobr>
322
+ </td>
323
+ </template>
324
+ </data-grid>
325
+ </criteria-paged>
326
+ </div>
327
+ <!--<div style="height: 40px;width: 100%;" v-show="echarts">
328
+ <div style="display: inline-block;width: 20%;">
329
+ <button class="button_search button_spacing" v-show="echarts" @click="notShowEcharts()">隐藏图表</button>
330
+ <button class="button_search button_spacing" v-show="isActiveTotalForm" @click="notShowTotalForm()">隐藏汇总</button>
331
+ </div>
332
+ &lt;!&ndash;图显示模板&ndash;&gt;
333
+ <div class="mystyle" style="display: inline-block;" >
334
+ <label class="font_normal_body">图表统计项</label>
335
+ <v-select style="width:60%" id="groupname" v-model="groupname"
336
+ placeholder='分组项'
337
+ value-single="true"
338
+ :value.sync="groupname"
339
+ :options='getgroupname'
340
+ close-on-select></v-select>
341
+ </div>
342
+ </div>
343
+ <div v-show="echarts" style="width: 100%;height: 90%;">
344
+ <new-exception-echarts :condition="condition" :startdate="startDate" :groupname="groupname[0]"
345
+ :enddate="endDate" :echarts="echarts"></new-exception-echarts>
346
+ </div>
347
+ <div v-show="isActiveTotalForm" style="width: 100%;height: 90%;">
348
+ <new-exception-eform-total :condition="condition" :startdate="startDate"
349
+ :enddate="endDate"></new-exception-eform-total>
350
+ </div>-->
351
+ </div>
352
+ <div class="flex" v-if="showdetail">
353
+ <user-info-detail-manage-new :f_userinfo_id="rowdata.f_userinfo_id" @cancel-main="cancel"></user-info-detail-manage-new>
354
+ </div>
355
+ </template>
356
+
357
+ <script>
358
+ import {HttpResetClass, PagedList} from 'vue-client'
359
+ import * as Util from '../../Util'
360
+ import getLodop from '../../plugins/LodopFuncs'
361
+ import plugin from 'system-clients/src/plugins/GetLoginInfoService'
362
+
363
+ let readySomething = async function (self) {
364
+ await self.$MagLoadParams.loadParam()
365
+ self.initParams()
366
+ self.sumsmodel = self.$refs.paged.$refs.grid.model.sums;
367
+ }
368
+ export default {
369
+ title: '异常查看',
370
+ props: ['data'],
371
+ data() {
372
+ return {
373
+ model: new PagedList('/api/af-revenue/sql/getExceptionList',20,{startDate: 'this.model.startDate', endDate: 'this.model.endDate'}),
374
+ // model: new PagedList('/api/af-revenue/sql/getExceptionList',20,{startDate: 'this.model.startDate', endDate: 'this.model.endDate'}),
375
+ reportStr: null,
376
+ show: false,
377
+ startDate: '',
378
+ endDate: '',
379
+ meterbrands: [],
380
+ initres: {
381
+ org:[this.$login.f.orgid],
382
+ dep:[],
383
+ user:[],
384
+ },
385
+ other: [],
386
+ sumsmodel: {},
387
+ f_error_type:'',
388
+ groupname: ['year'],
389
+ getgroupname: [
390
+ {label: '年份', value: 'year'},
391
+ {label: '月份', value: 'month'},
392
+ {label: '周', value: 'week'},
393
+ {label: '日', value: 'day'}
394
+ ],
395
+ getfield:{
396
+ "f_userinfo_code":"客户编号", "f_user_name":"客户名称","f_residential_area":"小区", "address":"客户地址","f_user_type":"客户类型","f_gasproperties":"用气性质","f_balance_amount":"账户余额","f_user_phone":"联系电话",
397
+ "f_meternumber":"表号","f_meter_brand":"气表品牌","f_hand_date":"抄表日期","f_insert_date":"最后一次通讯时间","f_electricity":"电池电量","f_batterylevel":"电池电压",
398
+ "f_signal":"信号强度","f_magneticInterference":"磁干扰异常","f_valvestate":"阀门状态","f_error_type":"异常类型","f_error_level":"异常级别","f_is_read":"处理状态","f_error_msg":"报警详情","f_error_reason":"备注信息","f_orgname":"分公司"
399
+ },
400
+ outlets: [],
401
+ operator: [],
402
+ showdetail:false,
403
+ gasproperties:[],
404
+ rowdata:{},
405
+ filename: '',
406
+ criteriaShow: false,
407
+ echarts: false,
408
+ searchshow: false,
409
+ isActiveTotalForm: false,
410
+ GetErrorLevel:[],
411
+ GetErrorType:[],
412
+ condition: '1=1 and f_error_type IS NOT NULL and f_error_level IS NOT NULL',
413
+ org: [this.$login.f.orgid],
414
+ orgCondtionStr: ` and f_orgid = ${this.$login.f.orgid} `
415
+ }
416
+ },
417
+ ready() {
418
+ readySomething(this)
419
+ this.$refs.paged.$refs.cri.model.startDate = Util.toStandardDateString() + ' 00:00:00'
420
+ this.$refs.paged.$refs.cri.model.endDate = Util.toStandardDateString() + ' 23:59:59'
421
+ // console.log("type:"+this.$refs.paged.$refs.cri.model.f_error_type)
422
+ this.getErrorInfo('f_error_level')
423
+ // console.log("type:"+this.$refs.paged.$refs.cri.model.f_error_type)
424
+ },
425
+ methods: {
426
+ showmsg(obj){
427
+ this.rowdata=obj
428
+ this.showdetail=true
429
+ },
430
+ cancel() {
431
+ this.showdetail = false
432
+ },
433
+ getorg(obj) {
434
+ if (obj.resids.length>0) {
435
+ this.orgCondtionStr = " and f_orgid in " + plugin.convertToIn(obj.resids) + " and f_error_type IS NOT NULL and f_error_level IS NOT NULL "
436
+ }else
437
+ {
438
+ this.orgCondtionStr = " and f_orgid = " + this.$login.f.orgid + " and f_error_type IS NOT NULL and f_error_level IS NOT NULL "
439
+ }
440
+ },
441
+ userTypeChange () {
442
+ this.gasproperties=[]
443
+ if(this.$refs.paged.$refs.cri.model !==null) {
444
+ this.$refs.paged.$refs.cri.model.f_gasproperties=''
445
+ this.gasproperties = this.$appdata.getParam(this.$refs.paged.$refs.cri.model.f_user_type[0])
446
+ }
447
+ else{
448
+ this.gasproperties =[{label: '全部', value: ''}]
449
+ }
450
+ },
451
+ initParams () {
452
+ let arr = []
453
+ this.$MagGetSaleParam.getGasbrand().forEach((item) => {
454
+ let temp = {}
455
+ if(item.value.f_meter_type==='物联网表'){
456
+ temp.label = item.label
457
+ temp.value = item.value.f_meter_brand
458
+ arr.push(temp )
459
+ }
460
+
461
+ })
462
+ this.meterbrands = [{label: '全部', value: ''}, ...arr]
463
+ },
464
+ hidden(){
465
+ this.criteriaShow = !this.criteriaShow
466
+ },
467
+ clickshow() {
468
+ this.searchshow = !this.searchshow
469
+ },
470
+ getErrorInfo(items){
471
+ let self = this
472
+ let f_error_level=''
473
+ if (items!='f_error_level') {
474
+ if(this.$refs.paged.$refs.cri.model.f_error_level){
475
+ f_error_level=this.$refs.paged.$refs.cri.model.f_error_level[0]
476
+ }
477
+ }
478
+ let load = new HttpResetClass()
479
+ load.load('POST', 'api/af-revenue/sql/singleTableParam', {
480
+ data: {
481
+ items:items+' f_type',
482
+ tablename:'t_exception',
483
+ condition:items=='f_error_level'?'1=1 group by '+items:`f_error_level='${f_error_level}' group by `+items
484
+ }
485
+ },{warnMsg:null,resolveMsg:null}).then((res) => {
486
+ let i = 0
487
+ let rows=res.data
488
+ let array1=[]
489
+ array1.push({label: '全部', value: ''})
490
+ console.log("rows========",rows)
491
+ for (i = 0; i < rows.length; i++) {
492
+ let dr = {label: '全部', value: ''}
493
+ dr.label=rows[i].f_type
494
+ dr.value=rows[i].f_type
495
+ array1.push(dr)
496
+ console.log("rows[i]========",rows[i],dr)
497
+ }
498
+ console.log("array1========",array1)
499
+ if (items=='f_error_level'){
500
+ self.GetErrorLevel=array1
501
+ }else {
502
+ self.GetErrorType=array1
503
+ }
504
+ })
505
+
506
+ },
507
+ search(args) {
508
+ this.startDate = this.$refs.paged.$refs.cri.model.startDate
509
+ this.endDate = this.$refs.paged.$refs.cri.model.endDate
510
+ this.f_error_type=this.$refs.paged.$refs.cri.model.f_error_type
511
+ /* if (this.endDate == '' || this.startDate == '') {
512
+ return this.$showMessage("时间区间的开始和结束时间不能为空!")
513
+ }*/
514
+ if (this.orgCondtionStr){
515
+ args.condition = `${args.condition}` + this.orgCondtionStr
516
+ }
517
+ this.condition = args.condition
518
+ this.model.search(args.condition, args.model)
519
+ },
520
+ SaveAsFile(str) {
521
+ this.$showMessage('您是否需要导出本页数据?', ['confirm', 'cancel']).then((res) => {
522
+ if (res === 'confirm') {
523
+ let style = '<style>' +
524
+ 'td {border-width: 1px;padding: 2px;border-style: solid; border-color:black; border-collapse:collapse;} .tdright{text-align: right;} .tdcenter{text-align: center;}</style>';
525
+ let strHtml = style + document.getElementById(str).innerHTML;
526
+ console.log(strHtml);
527
+ let LODOP = getLodop();
528
+ LODOP.PRINT_INIT('');
529
+ LODOP.ADD_PRINT_TABLE(5, 5, '99%', '100%', strHtml);
530
+ LODOP.SAVE_TO_FILE('异常分析(表统计).xls')
531
+ }
532
+ })
533
+ },
534
+ clearmsg() {
535
+ this.$refs.paged.$refs.cri.model = {}
536
+ },
537
+ close() {
538
+ this.show = false
539
+ },
540
+ // 显示柱状图
541
+ showEcharts() {
542
+ this.echarts = true
543
+ this.isActiveTotalForm = false
544
+ },
545
+ notShowTotalForm() {
546
+ this.echarts = false
547
+ this.isActiveTotalForm = false
548
+ },
549
+ // 不显示柱状图
550
+ notShowEcharts() {
551
+ this.echarts = false
552
+ this.isActiveTotalForm = false
553
+ },
554
+ // 显示汇总数据表格
555
+ showTotalForm() {
556
+ this.echarts = false
557
+ this.isActiveTotalForm = true
558
+ },
559
+ getotherfooter() {
560
+ this.other = [];
561
+
562
+ let firstLine = [`导出时间: ${this.$login.toStandardTimeString()}`];
563
+
564
+
565
+ let secondLine = [
566
+ `开始时间(上报区间): ${this.$refs.paged.$refs.cri.model.startDate}`,
567
+ `结束时间: ${this.$refs.paged.$refs.cri.model.endDate}`
568
+ ];
569
+
570
+ this.other.push(firstLine);
571
+ this.other.push(secondLine);
572
+
573
+ console.log('Header Data:', this.other);
574
+ },
575
+ },
576
+ watch: {
577
+ 'data'(val) {
578
+ if (val.f_files_path) {
579
+ this.getFileContent(val.f_files_path)
580
+ } else {
581
+ this.reportStr = null
582
+ }
583
+ },
584
+ sumsmodel:{
585
+ handler: function(val) {
586
+ this.getotherfooter();
587
+ },
588
+ deep: true
589
+ },
590
+ }, mounted() {
591
+ this.getotherfooter();
592
+ },
593
+ computed: {
594
+ getCondition() {
595
+ let condition=this.$refs.paged.$refs.cri.condition + this.orgCondtionStr
596
+ return {
597
+ condition: condition,
598
+ startDate: this.$refs.paged.$refs.cri.model.startDate,
599
+ endDate: this.$refs.paged.$refs.cri.model.endDate
600
+ }
601
+ },
602
+ usertypes() {
603
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('用户类型')]
604
+ },
605
+ isread() {
606
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('处理状态')]
607
+ },
608
+ abnormalstatus(){
609
+ return this.$getParams('异常状态', [{label: '全部', value: ''}])
610
+ }
611
+
612
+ }
613
+ }
614
+ </script>
615
+ <style>
616
+ .form-input-group label {
617
+ text-align: right;
618
+ width: auto;
619
+ }
620
+
621
+ .mystyle {
622
+ float: right;
623
+ padding-right: 10%;
624
+ }
625
+
626
+ .datapanel {
627
+ color: #333;
628
+ background-color: white;
629
+ box-shadow: darkgrey 0.5px 0.5px 0.5px 0.5px;
630
+ padding: 10px 30px 10px 30px;
631
+ border-radius: 15px;
632
+ }
633
+ </style>
@@ -6,4 +6,6 @@ export default function () {
6
6
  Vue.component('new-use-gas-statistics', (resolve) => { require(['./NewGasStatistics'], resolve) })
7
7
  // 用户失联
8
8
  Vue.component('user-lost-contact-analysis', (resolve) => { require(['./UserLostContactAnalysis'], resolve) })
9
+ // 异常汇总分析
10
+ Vue.component('meter-exception-list', (resolve) => { require(['.//MeterExceptionList'], resolve) })
9
11
  }
@@ -284,10 +284,10 @@
284
284
  </div>
285
285
  <div class="col-sm-2 form-group">
286
286
  <label class="font_normal_body">累计充值气量</label>
287
- <input type="text" style="width:30%" class="input_search" title="大于等于" v-model="model.f_total_pregas_small"
288
- condition="f_total_pregas >= '{}' " placeholder="大于等于">
289
- <input type="text" style="width:30%" class="input_search" title="小于等于" v-model="model.f_total_pregas_big"
290
- condition="f_total_pregas <= '{}' " placeholder="小于等于">
287
+ <input type="text" style="width:30%" class="input_search" title="大于" v-model="model.f_total_pregas_small"
288
+ condition="f_total_pregas > '{}' " placeholder="大于">
289
+ <input type="text" style="width:30%" class="input_search" title="小于" v-model="model.f_total_pregas_big"
290
+ condition="f_total_pregas < '{}' " placeholder="小于">
291
291
  </div>
292
292
  </div>
293
293
  </div>
@@ -198,10 +198,10 @@
198
198
  </div>
199
199
  <div class="col-sm-2 form-group">
200
200
  <label class="font_normal_body">累计用气量</label>
201
- <input type="text" style="width:30%" class="input_search" title="大于等于"
202
- v-model="model.f_total_oughtamount_big" condition="f_total_oughtamount >= {}" placeholder='大于等于'>
203
- <input type="text" style="width:30%" class="input_search" title="小于等于"
204
- v-model="model.f_total_oughtamount_small" condition="f_total_oughtamount <= {}" placeholder='小于等于'>
201
+ <input type="text" style="width:30%" class="input_search" title="大于"
202
+ v-model="model.f_total_oughtamount_big" condition="f_total_oughtamount > {}" placeholder='大于'>
203
+ <input type="text" style="width:30%" class="input_search" title="小于"
204
+ v-model="model.f_total_oughtamount_small" condition="f_total_oughtamount < {}" placeholder='小于'>
205
205
  </div>
206
206
  <!-- <div class="col-sm-2 form-group">-->
207
207
  <!-- <label class="font_normal_body">气价名称</label>-->
@@ -848,6 +848,10 @@ export default function () {
848
848
  Vue.component('sy-gas-sale-fee', (resolve) => {
849
849
  require(['./components/SellReport/siyang/SYGasSaleFee'], resolve)
850
850
  })
851
+ // 非民用用气统计
852
+ Vue.component('sy_non-resident-gas', (resolve) => {
853
+ require(['./components/SellReport/siyang/NonResidentGas'], resolve)
854
+ })
851
855
  // 用户数量统计报表
852
856
  Vue.component('manage-metertype-number', (resolve) => {
853
857
  require(['./components/SellReport/ManageMetertypeNumber'], resolve)