manage-client 3.2.19 → 3.2.20

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 (73) hide show
  1. package/.gradle/4.4/fileHashes/fileHashes.bin +0 -0
  2. package/.gradle/4.4/fileHashes/fileHashes.lock +0 -0
  3. package/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  4. package/.gradle/buildOutputCleanup/cache.properties +2 -2
  5. package/build/dev-server.js +4 -2
  6. package/package.json +1 -1
  7. package/src/App.vue +28 -28
  8. package/src/components/BasisEcharts/BarChart.vue +247 -247
  9. package/src/components/SellReport/BonSummary.vue +178 -178
  10. package/src/components/SellReport/GasBaozhuangFee.vue +237 -237
  11. package/src/components/SellReport/ManageBusSummary.vue +219 -219
  12. package/src/components/SellReport/ManageGasPrice.vue +176 -176
  13. package/src/components/SellReport/NonResidentGas.vue +203 -203
  14. package/src/components/SellReport/OutletTable.vue +258 -258
  15. package/src/components/SellReport/ReportComponrnt/TieAnAccount.vue +501 -501
  16. package/src/components/SellReport/SaleMonthReport.vue +153 -153
  17. package/src/components/SellReport/SellingTable.vue +220 -220
  18. package/src/components/SellReport/UserSellingGas.vue +177 -177
  19. package/src/components/TelReport/ZhiHuanservice.vue +162 -162
  20. package/src/components/daping/GMap.vue +636 -636
  21. package/src/components/sale/businessquery/AccountQuery/ExpectGasList.vue +504 -504
  22. package/src/components/sale/businessquery/AccountQuery/PreGasList.vue +371 -371
  23. package/src/components/sale/businessquery/AccountQuery/SellingGasList.vue +404 -404
  24. package/src/components/sale/businessquery/FMYGasQuery.vue +713 -713
  25. package/src/components/sale/businessquery/MonthGasQuery.vue +467 -467
  26. package/src/components/sale/businessquery/OtherChargeQuery.vue +619 -619
  27. package/src/components/sale/businessquery/ProceedsOper.vue +417 -417
  28. package/src/components/sale/businessquery/YingShouMingXi.vue +525 -525
  29. package/src/components/sale/report/aode/DayReportList.vue +371 -371
  30. package/src/components/statistical/StatisticalAnalysis.vue +252 -252
  31. package/src/components/webmeter/DrillData/LostContactAnalysisList.vue +633 -633
  32. package/src/components/webmeter/DrillData/LostContactEcharts.vue +177 -177
  33. package/src/components/webmeter/DrillData/UserGasEform.vue +227 -227
  34. package/src/components/webmeter/DrillData/UserLostContactAnalysis.vue +585 -585
  35. package/src/components/webmeter/instruction/NewQueryInstruct.vue +443 -443
  36. package/src/components/webmeter/newwebmeter/NewException/NewGasEcharts.vue +208 -208
  37. package/src/components/webmeter/newwebmeter/NewException/TotalExceptionByMeter.vue +607 -607
  38. package/src/components/webmeter/newwebmeter/UserGasEchartsList.vue +284 -284
  39. package/src/components/webmeter/newwebmeter/UserGasList.vue +438 -438
  40. package/src/components/webmeter/newwebmeter/UserInstructEchartsList.vue +242 -242
  41. package/src/components/webmeter/newwebmeter/signAnalysisEcharts.vue +266 -266
  42. package/src/components/webmeter/newwebmeter/signAnalysisEform.vue +175 -175
  43. package/src/components/webmeter/newwebmeter/signAnalysisListMain.vue +387 -387
  44. package/src/components/webmeter/report/ReportList.vue +36 -22
  45. package/src/filiale/WEINAN/EchartsBox.vue +110 -110
  46. package/src/filiale/WEINAN/ReportDataQuery.vue +27 -0
  47. package/src/filiale/WEINAN/SiteManager.vue +191 -191
  48. package/src/filiale/WEINAN/UserGasAll.vue +577 -577
  49. package/src/filiale/WEINAN/UserGasEcharts.vue +281 -281
  50. package/src/filiale/WEINAN/UserGasList.vue +438 -438
  51. package/src/filiale/WEINAN/config/exportConfig.js +99 -83
  52. package/src/filiale/WEINAN/reportManage.js +12 -12
  53. package/src/filiale/WEINAN/sale.js +36 -36
  54. package/src/filiale/alashan/reportManage.js +10 -10
  55. package/src/filiale/jingzhou/ChargeQuery.vue +1243 -1243
  56. package/src/filiale/jingzhou/config/exportConfig.js +861 -861
  57. package/src/filiale/meihekou/UserGasEform.vue +267 -267
  58. package/src/filiale/meihekou/YingShouMingXi.vue +538 -538
  59. package/src/filiale/meihekou/config/exportConfig.js +831 -831
  60. package/src/filiale/meihekou/sale.js +29 -29
  61. package/src/filiale/rongchuang/SellingTable.vue +250 -250
  62. package/src/filiale/rongchuang/reportManage.js +11 -11
  63. package/src/filiale/shaoguan/RecordInfoQuery.vue +1108 -1108
  64. package/src/filiale/tongchuan/ManageBusSummary.vue +240 -240
  65. package/src/filiale/tongchuan/reportManage.js +5 -5
  66. package/src/main.js +66 -66
  67. package/static/wuhai.json +1610 -1610
  68. package/.gradle/4.4/fileContent/fileContent.lock +0 -0
  69. package/.gradle/4.4/taskHistory/taskHistory.bin +0 -0
  70. package/.gradle/4.4/taskHistory/taskHistory.lock +0 -0
  71. package/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
  72. package/build/libs/ManageClient-3.1.0-17.jar +0 -0
  73. package/build/tmp/jar/MANIFEST.MF +0 -2
@@ -1,438 +1,438 @@
1
- <template>
2
- <div class="flex-row" v-show="!echarts">
3
- <div id='app' class="basic-main">
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
-
9
- <div class="col-sm-2 form-group">
10
- <label class="font_normal_body">客户编号</label>
11
- <input @keyup.enter="search" style="width:60%" type="text" class="input_search"
12
- v-model="model.f_userinfo_code" placeholder='客户编号'
13
- condition="u.f_userinfo_code like '%{}%'" v-next-el='f_userinfo_code' v-el:meternumber
14
- >
15
- </div>
16
- <div class="col-sm-2 form-group">
17
- <label class="font_normal_body">客户名称</label>
18
- <input @keyup.enter="search" style="width:60%" type="text" class="input_search"
19
- v-model="model.f_username" placeholder='客户名称'
20
- condition="u.f_user_name like '%{}%'" v-next-el='userid' v-el:username>
21
- </div>
22
- <div class="col-sm-2 form-group">
23
- <label class="font_normal_body">客户地址</label>
24
- <input @keyup.enter="search" style="width:60%" type="text" class="input_search"
25
- v-model="model.f_address" placeholder='地址'
26
- condition="a.f_address like '%{}%'" v-el:xq v-next-el='address' v-el:area
27
- >
28
- </div>
29
- <div class="col-sm-2 form-group">
30
- <label class="font_normal_body">表&emsp;&emsp;号</label>
31
- <input @keyup.enter="search" style="width:60%" type="text" class="input_search"
32
- v-model="model.f_meternumber" placeholder='表钢号'
33
- condition="uf.f_meternumber like '%{}%'" v-next-el='meternumber' v-el:meternumber
34
- >
35
- </div>
36
- <div class="span" style="float:right;margin-top:10px">
37
- <button class="button_search button_spacing" @click="search()">查询</button>
38
- <button class="button_clear button_spacing" @click="$parent.$parent.clearmsg">清空</button>
39
- <export-excel :data="$parent.$parent.getCondition" class="button_export button_spacing"
40
- :field="$parent.$parent.getfield"
41
- sqlurl="rs/logic/exportfile" sql-name="webmeter_getNewHandChanceList" template-name='抄表分析'
42
- :choose-col="true"></export-excel>
43
- <button class="button_export button_spacing" @click="$parent.$parent.showEcharts()">显示图表</button>
44
- <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>
45
- </div>
46
- </div>
47
- <div class="row" v-show="$parent.$parent.criteriaShow">
48
- <div class="col-sm-2 form-group">
49
- <label class="font_normal_body">公&emsp;&emsp;司</label>
50
- <right-tree @re-res="$parent.$parent.getRes"
51
- :initresid='$parent.$parent.orgid'></right-tree>
52
- <!-- <label class="font_normal_body">组织机构</label>-->
53
- <!-- <res-select :initresid="$parent.$parent.orgid"-->
54
- <!-- style="width:60%"-->
55
- <!-- @res-select="$parent.$parent.getRes"-->
56
- <!-- restype='organization'>-->
57
- <!-- </res-select>-->
58
- </div>
59
- <!-- <res-select-group :initres="$parent.$parent.initres" :show-component="['company']" @re-res="$parent.$parent.getRes" v-ref:sel></res-select-group>-->
60
- <div class="col-sm-2 form-group">
61
- <label class="font_normal_body">用户类型</label>
62
- <v-select style="width:60%" id="f_user_type"
63
- v-model="model.f_user_type"
64
- placeholder='用户类型'
65
- :value.sync="model.f_user_type"
66
- @change="$parent.$parent.userTypeChange()"
67
- :options='$parent.$parent.usertypes'
68
- condition="uf.f_user_type = '{}'"
69
- close-on-select>
70
- </v-select>
71
- </div>
72
- <div class="col-sm-2 form-group">
73
- <label class="font_normal_body">用气性质</label>
74
- <v-select style="width:60%" id="f_gasproperties"
75
- v-model="model.f_gasproperties"
76
- placeholder='用气性质'
77
- :value.sync="model.f_gasproperties"
78
- :options='$parent.$parent.gasproperties'
79
- condition="uf.f_gasproperties = '{}'"
80
- close-on-select>
81
- </v-select>
82
- </div>
83
- <div class="col-sm-2 form-group">
84
- <label class="font_normal_body">气表品牌</label>
85
- <v-select
86
- placeholder='气表品牌'
87
- :value.sync="model.f_meter_brand"
88
- v-model="model.f_meter_brand"
89
- :options='$parent.$parent.WarningType'
90
- @change="$parent.$parent.getMeterType"
91
- close-on-select
92
- condition="gb.f_meter_brand='{}'">
93
- </v-select>
94
- </div>
95
- <div class="col-sm-2 form-group" >
96
- <label class="font_normal_body">气表型号</label>
97
- <v-select v-if="$parent.$parent.styles"
98
- placeholder='气表型号'
99
- :value.sync="model.f_meter_style"
100
- v-model="model.f_meter_style"
101
- :options='$parent.$parent.Warningstyle'
102
- close-on-select
103
- condition="gm.f_meter_style='{}'">
104
- </v-select>
105
- <v-select v-if="!$parent.$parent.styles"
106
- placeholder='气表型号'
107
- :value.sync="model.f_meter_style"
108
- v-model="model.f_meter_style"
109
- :options='$parent.$parent.Warningstyles'
110
- close-on-select
111
- condition="f_meter_style='{}'">
112
- </v-select>
113
- </div>
114
- <div class="col-sm-2 form-group">
115
- <label class="font_normal_body" style="word-break:keep-all;">上报时间</label>
116
- <datepicker style="width:60%" placeholder="起始时间"
117
- :value.sync="model.startDate"
118
- v-model="model.startDate"
119
- :format="'yyyy-MM-dd HH:mm:ss'"
120
- ></datepicker>
121
- </div>
122
- <div class="col-sm-2 form-group">
123
- <label class="font_normal_body" style="word-break:keep-all;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;至&nbsp;&nbsp;&nbsp;</label>
124
- <datepicker style="width:60%" placeholder="结束时间"
125
- :value.sync="model.endDate"
126
- v-model="model.endDate"
127
- :format="'yyyy-MM-dd HH:mm:ss'"
128
- ></datepicker>
129
- </div>
130
- <div class="col-sm-2 form-group">
131
- <label class="font_normal_body">壁&ensp;挂&ensp;炉</label>
132
- <v-select id="f_meter_brand"
133
- v-model="model.f_usetype"
134
- placeholder='壁挂炉'
135
- :value.sync="model.f_usetype"
136
- :options='$parent.$parent.usetypes'
137
- condition="" :search="false"
138
- close-on-select style="width: 60%">
139
- </v-select>
140
- </div>
141
- <div class="col-sm-2 form-group">
142
- <label class="font_normal_body">房屋类型</label>
143
- <v-select :value.sync="model.f_house_type" v-model="model.f_house_type"
144
- :options='$parent.$parent.houseTypes' placeholder='请选择'
145
- close-on-select
146
- condition=""></v-select>
147
- </div>
148
- <div class="col-sm-2 form-group">
149
- <label class="font_normal_body">安装位置</label>
150
- <v-select :value.sync="model.f_position" v-model="model.f_position"
151
- :options='$parent.$parent.positions' placeholder='请选择'
152
- condition=""
153
- close-on-select></v-select>
154
- </div>
155
- </div>
156
- </div>
157
- </criteria>
158
- <data-grid id="reportgas" :model="model" partial='list' class="list_area table_sy" v-ref:grid>
159
- <template partial='head'>
160
- <tr>
161
- <th style="text-align:center">序号</th>
162
- <th style="text-align:center"><nobr>上报日期</nobr></th>
163
- <th style="text-align:center" title="安装户数=正常户数+停用户数+未注册户数"><nobr>安装户数</nobr></th>
164
-
165
- <th style="text-align:center" title="停用户数:表具状态为停用的用户数"><nobr>停用户数</nobr></th>
166
- <th style="text-align:center" title="在用户数:表具状态为正常的用户数"><nobr>在用户数</nobr></th>
167
-
168
- <th style="text-align:center" title="用户使用率=在用户数/正常户数"><nobr>用户使用率</nobr></th>
169
- <th style="text-align:center"><nobr>抄表成功户数</nobr></th>
170
- <th style="text-align:center"><nobr>总用气量</nobr></th>
171
- <th style="text-align:center" title="日均用气量=总用气量/在用户数"><nobr>日均用气量</nobr></th>
172
- <!--<th style="text-align:center"><nobr>指令成功户数</nobr></th>-->
173
- <th style="text-align:center" title="抄表成功率=抄表成功户数/在用户数"><nobr>抄表成功率</nobr></th>
174
- <!--<th style="text-align:center" title="指令成功率=指令成功户数/抄表成功户数"><nobr>指令成功率</nobr></th>-->
175
- <!--<th style="text-align:center" title="综合成功率=指令成功户数/在用户数"><nobr>综合成功率</nobr></th>-->
176
- </tr>
177
- </template>
178
- <template partial='body' partial='list' v-ref:grid>
179
- <tr>
180
- <td style="text-align:center">{{$index + 1}}</td>
181
- <td style="text-align:center;width: 170px;"><nobr>{{row.f_insert_date}}</nobr></td>
182
- <td style="text-align:center">{{row.anzhuang}}</td>
183
-
184
- <th style="text-align:center">{{row.c0}}</th>
185
- <td style="text-align:center"><nobr>{{row.c}}</nobr></td>
186
-
187
- <td style="text-align:center"><nobr>{{row.user_bv}}%</nobr></td>
188
- <!--<td style="text-align:center"><nobr>{{row.f_gas}}</nobr></td>-->
189
- <td style="text-align:center">{{row.c1}}</td>
190
- <td style="text-align:center">{{row.f_gas_all}}</td>
191
- <td style="text-align:center">{{row.f_gas1}}</td>
192
- <td style="text-align:center">{{row.f_bv1}}%</td>
193
- <!--<td style="text-align:center">{{row.f_bv2}}%</td>-->
194
- <!--<td style="text-align:center;width: 170px;"><nobr>{{row.f_bv3}}%</nobr></td>-->
195
- </tr>
196
- </template>
197
- <template partial='foot'></template>
198
- </data-grid>
199
- </criteria-paged>
200
- </div>
201
- <!-- <div style="height: 40px;width: 100%;" v-show="echarts">-->
202
- <!-- <button class="button_search button_spacing" @click="showEcharts()">隐藏图表</button>-->
203
- <!-- </div>-->
204
-
205
- </div>
206
- <!--图显示模板-->
207
- <div class="flex-row" v-if="echarts" style="width: 100%;height: 98%;">
208
- <user-gas-echarts-list :condition="condition" :startdate="startDate"
209
- :enddate="endDate" :echarts="echarts"></user-gas-echarts-list>
210
- </div>
211
- </template>
212
- <script>
213
- import {HttpResetClass, PagedList} from 'vue-client'
214
- import UserGasEcharts from './UserGasEchartsList'
215
- import * as Util from '../../../Util'
216
- import plugins from '../../../plugins/GetLoginInfoService'
217
- import plugin from 'system-clients/src/plugins/GetLoginInfoService'
218
-
219
- export default {
220
- title: '抄表分析',
221
- props: ['data'],
222
- components: {UserGasEcharts},
223
- data () {
224
- return {
225
- model: new PagedList('rs/sql/webmeter_getNewHandChanceList', 50, {startDate: 'this.model.startDate', endDate: 'this.model.endDate'}),
226
- condition: '1=1',
227
- startDate: '',
228
- gasproperties:[{label: '全部', value: ''}],
229
- endDate: '',
230
- WarningType: [
231
- {label: '全部', value: ''}
232
- ],
233
- Warningstyles: [
234
- {label: '全部', value: ''}
235
- ],
236
- styles:false,
237
- orgid:[this.$login.f.orgid],
238
- getfield:{"f_insert_date":"上报日期","anzhuang":"安装户数",
239
- "c0":"停用户数",
240
- "c":"在用户数","user_bv":"用户使用率",
241
- "c1":"抄表成功户数",
242
- "f_gas_all":"总用气量","f_gas":"日均户均用气量(成功)",
243
- "f_gas1":"日均户均用气量(在用)",
244
- "f_bv1":"抄表成功率"
245
- },
246
- criteriaShow:false,
247
- echarts: false,
248
- orgCondtionStr: '(' + this.$login.f.orgid + ')',
249
- searchshow: false,
250
- initres: {
251
- org:[this.$login.f.orgid],
252
- dep:[],
253
- user:[]
254
- },
255
- obj: {
256
- userid: this.$login.f.id,
257
- source: `tool.getFullTree(this.getRights().where(row.getType() == $organization$))`,
258
- res: this.$login.f.f_fengongsi,
259
- resids: this.$login.f.orgid
260
- },
261
- usetypes: [{label: '全部', value: ''},{label: '是', value: `= '壁挂炉'`},{label: '否', value: `!= '壁挂炉'`}]
262
- }
263
- },
264
- ready () {
265
- this.$refs.paged.$refs.cri.model.startDate = Util.addDate(new Date(),-6).substring(0,10) + ' 00:00:00'
266
- this.$refs.paged.$refs.cri.model.endDate = Util.toStandardDateString() + ' 23:59:59'
267
- this.getMeterTypeAndBrand('f_meter_brand', '1=1')
268
- this.$refs.paged.$refs.cri.search()
269
- },
270
- methods: {
271
- getMeterType() {
272
- this.Warningstyle = [{label: '全部', value: ''}]
273
- this.styles = false
274
- let f_meter_brand = this.$refs.paged.$refs.cri.model.f_meter_brand
275
- this.getMeterTypeAndBrand('f_meter_style', `f_meter_brand='${f_meter_brand}'`)
276
- },
277
- getMeterTypeAndBrand(groupname, condition) {
278
- condition = `${condition} and ui.f_orgid like '${this.$login.f.orgid}%'`
279
- let self = this
280
- let load = new HttpResetClass()
281
- load.load('POST', 'rs/sql/getMeterStyleAndBrand1', {
282
- data: {
283
- condition: condition,
284
- groupname: groupname
285
- }
286
- }, {warnMsg: null, resolveMsg: null}).then((res) => {
287
- let dr = {label: '', value: ''}
288
- let i = 0
289
- for (i = 0; i < res.data.length; i++) {
290
- dr = {label: '', value: ''}
291
- if (groupname == 'f_meter_brand') {
292
- dr.label = res.data[i].f_meter_brand
293
- dr.value = res.data[i].f_meter_brand
294
- //气表品牌
295
- self.WarningType.push(dr)
296
- console.log('气表品牌~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~')
297
- console.log(dr)
298
- console.log( self.WarningType)
299
- } else if (groupname == 'f_meter_style') {
300
- dr.label = res.data[i].f_meter_style
301
- dr.value = res.data[i].f_meter_style
302
- //气表类型
303
- self.Warningstyle.push(dr)
304
- }
305
- }
306
- if (self.Warningstyle.length > 1) {
307
- self.showMeterStyle()
308
- }
309
- })
310
-
311
- },
312
- showMeterStyle() {
313
- this.styles = true
314
- },
315
- userTypeChange () {
316
- this.gasproperties=[{label: '全部', value: ''}]
317
- if(this.$refs.paged.$refs.cri.model !==null) {
318
- this.$refs.paged.$refs.cri.model.f_gasproperties=''
319
-
320
- console.log(this.$refs.paged.$refs.cri.model.f_user_type[0])
321
- this.gasproperties = this.$appdata.getParam(this.$refs.paged.$refs.cri.model.f_user_type[0])
322
- // this.gasproperties.push({label: '全部', value: ''})
323
- }
324
- else{
325
- this.gasproperties =[{label: '全部', value: ''}]
326
- }
327
- },
328
- hidden(){
329
- this.criteriaShow = !this.criteriaShow
330
- },
331
- // 查询开关
332
- seachchange () {
333
- this.searchshow = !this.searchshow
334
- },
335
-
336
- // 显示柱状图
337
- showEcharts () {
338
- this.echarts = !this.echarts
339
- console.log(this.echarts)
340
- },
341
- close () {
342
- this.show = false
343
- },
344
- // SaveAsFile(str) {
345
- // this.$showMessage('您是否需要导出本页数据?', ['confirm', 'cancel']).then((res) => {
346
- // if (res === 'confirm') {
347
- // let style = '<style>' +
348
- // 'td {border-width: 1px;padding: 2px;border-style: solid; border-color:black; border-collapse:collapse;} .tdright{text-align: right;} .tdcenter{text-align: center;}</style>';
349
- // let strHtml = style + document.getElementById(str).innerHTML;
350
- // console.log(strHtml);
351
- // let LODOP = getLodop();
352
- // LODOP.PRINT_INIT('');
353
- // LODOP.ADD_PRINT_TABLE(5, 5, '99%', '100%', strHtml);
354
- // LODOP.SAVE_TO_FILE('抄表统计.xls')
355
- // }
356
- // })
357
- // },
358
- clearmsg () {
359
- this.$refs.paged.$refs.cri.model = {}
360
- },
361
- search (args) {
362
- this.startDate = this.$refs.paged.$refs.cri.model.startDate
363
- this.endDate = this.$refs.paged.$refs.cri.model.endDate
364
- if (this.endDate == '' || this.startDate == '') {
365
- return this.$showMessage("时间区间的开始和结束时间不能为空!")
366
- }
367
- if (this.orgCondtionStr){
368
- this.condition = this.$refs.paged.$refs.cri.condition + `and uf.f_orgid in ${this.orgCondtionStr}`
369
- }
370
- else
371
- this.condition = this.$refs.paged.$refs.cri.condition
372
- args.condition = this.condition
373
- this.model.search(args.condition, args.model)
374
- },
375
- // getRes (obj) {
376
- // this.orgCondtionStr = plugins.convertToIn(obj)
377
- // }
378
- getRes (obj) {
379
- this.orgCondtionStr = plugins.convertToIn(obj.resids)?plugin.convertToIn(obj.resids):'(' + this.$login.f.orgid + ')'
380
- }
381
- // getRes(condition,obj) {
382
- // this.orgCondtionStr = condition
383
- // this.orgname = obj.orgnames[0]
384
- // this.depname = obj.depnames[0]
385
- // }
386
- },
387
- computed: {
388
- houseTypes() {
389
- return [{label: '全部', value: ''}, ...this.$appdata.getParam('房屋类型')]
390
- },
391
- positions() {
392
- return [{label: '全部', value: ''}, ...this.$appdata.getParam('安装位置')]
393
- },
394
- getCondition() {
395
- var con=""
396
- if (this.orgCondtionStr) {
397
- con= `${this.$refs.paged.$refs.cri.condition} and u.f_orgid in ${this.orgCondtionStr}`
398
- }
399
- else{
400
- con= `${this.$refs.paged.$refs.cri.condition} `
401
- }
402
- return {
403
- condition: con ,
404
- startDate:`${this.$refs.paged.$refs.cri.model.startDate}`,
405
- endDate:`${this.$refs.paged.$refs.cri.model.endDate}`
406
- }
407
-
408
- },
409
- usertypes () {
410
- return [{label: '全部', value: ''}, ...this.$appdata.getParam('用户类型')]
411
- },
412
- // usertypes () {
413
- // return this.$getParams('用户类型', [{label: '全部', value: ''}])
414
- // },
415
- f_outlets () {
416
- return [{label: '全部', value: ''}, ...this.$appdata.getParam('网点查询用')]
417
- },
418
- valveStatus () {
419
- return [{label: '全部', value: ''}, ...this.$appdata.getParam('气表类型')]
420
- },
421
- Getuserstyle () {
422
- return [{label: '全部', value: ''}, ...this.$appdata.getParam('用气类型')]
423
- }
424
- }
425
- }
426
- </script>
427
- <style>
428
- .mystyle{
429
- margin-left:80px;
430
- }
431
- .datapanel {
432
- color: #333;
433
- background-color: white;
434
- box-shadow: darkgrey 0.5px 0.5px 0.5px 0.5px ;
435
- padding: 10px 10px 10px 10px;
436
- border-radius:15px;
437
- }
438
- </style>
1
+ <template>
2
+ <div class="flex-row" v-show="!echarts">
3
+ <div id='app' class="basic-main">
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
+
9
+ <div class="col-sm-2 form-group">
10
+ <label class="font_normal_body">客户编号</label>
11
+ <input @keyup.enter="search" style="width:60%" type="text" class="input_search"
12
+ v-model="model.f_userinfo_code" placeholder='客户编号'
13
+ condition="u.f_userinfo_code like '%{}%'" v-next-el='f_userinfo_code' v-el:meternumber
14
+ >
15
+ </div>
16
+ <div class="col-sm-2 form-group">
17
+ <label class="font_normal_body">客户名称</label>
18
+ <input @keyup.enter="search" style="width:60%" type="text" class="input_search"
19
+ v-model="model.f_username" placeholder='客户名称'
20
+ condition="u.f_user_name like '%{}%'" v-next-el='userid' v-el:username>
21
+ </div>
22
+ <div class="col-sm-2 form-group">
23
+ <label class="font_normal_body">客户地址</label>
24
+ <input @keyup.enter="search" style="width:60%" type="text" class="input_search"
25
+ v-model="model.f_address" placeholder='地址'
26
+ condition="a.f_address like '%{}%'" v-el:xq v-next-el='address' v-el:area
27
+ >
28
+ </div>
29
+ <div class="col-sm-2 form-group">
30
+ <label class="font_normal_body">表&emsp;&emsp;号</label>
31
+ <input @keyup.enter="search" style="width:60%" type="text" class="input_search"
32
+ v-model="model.f_meternumber" placeholder='表钢号'
33
+ condition="uf.f_meternumber like '%{}%'" v-next-el='meternumber' v-el:meternumber
34
+ >
35
+ </div>
36
+ <div class="span" style="float:right;margin-top:10px">
37
+ <button class="button_search button_spacing" @click="search()">查询</button>
38
+ <button class="button_clear button_spacing" @click="$parent.$parent.clearmsg">清空</button>
39
+ <export-excel :data="$parent.$parent.getCondition" class="button_export button_spacing"
40
+ :field="$parent.$parent.getfield"
41
+ sqlurl="rs/logic/exportfile" sql-name="webmeter_getNewHandChanceList" template-name='抄表分析'
42
+ :choose-col="true"></export-excel>
43
+ <button class="button_export button_spacing" @click="$parent.$parent.showEcharts()">显示图表</button>
44
+ <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>
45
+ </div>
46
+ </div>
47
+ <div class="row" v-show="$parent.$parent.criteriaShow">
48
+ <div class="col-sm-2 form-group">
49
+ <label class="font_normal_body">公&emsp;&emsp;司</label>
50
+ <right-tree @re-res="$parent.$parent.getRes"
51
+ :initresid='$parent.$parent.orgid'></right-tree>
52
+ <!-- <label class="font_normal_body">组织机构</label>-->
53
+ <!-- <res-select :initresid="$parent.$parent.orgid"-->
54
+ <!-- style="width:60%"-->
55
+ <!-- @res-select="$parent.$parent.getRes"-->
56
+ <!-- restype='organization'>-->
57
+ <!-- </res-select>-->
58
+ </div>
59
+ <!-- <res-select-group :initres="$parent.$parent.initres" :show-component="['company']" @re-res="$parent.$parent.getRes" v-ref:sel></res-select-group>-->
60
+ <div class="col-sm-2 form-group">
61
+ <label class="font_normal_body">用户类型</label>
62
+ <v-select style="width:60%" id="f_user_type"
63
+ v-model="model.f_user_type"
64
+ placeholder='用户类型'
65
+ :value.sync="model.f_user_type"
66
+ @change="$parent.$parent.userTypeChange()"
67
+ :options='$parent.$parent.usertypes'
68
+ condition="uf.f_user_type = '{}'"
69
+ close-on-select>
70
+ </v-select>
71
+ </div>
72
+ <div class="col-sm-2 form-group">
73
+ <label class="font_normal_body">用气性质</label>
74
+ <v-select style="width:60%" id="f_gasproperties"
75
+ v-model="model.f_gasproperties"
76
+ placeholder='用气性质'
77
+ :value.sync="model.f_gasproperties"
78
+ :options='$parent.$parent.gasproperties'
79
+ condition="uf.f_gasproperties = '{}'"
80
+ close-on-select>
81
+ </v-select>
82
+ </div>
83
+ <div class="col-sm-2 form-group">
84
+ <label class="font_normal_body">气表品牌</label>
85
+ <v-select
86
+ placeholder='气表品牌'
87
+ :value.sync="model.f_meter_brand"
88
+ v-model="model.f_meter_brand"
89
+ :options='$parent.$parent.WarningType'
90
+ @change="$parent.$parent.getMeterType"
91
+ close-on-select
92
+ condition="gb.f_meter_brand='{}'">
93
+ </v-select>
94
+ </div>
95
+ <div class="col-sm-2 form-group" >
96
+ <label class="font_normal_body">气表型号</label>
97
+ <v-select v-if="$parent.$parent.styles"
98
+ placeholder='气表型号'
99
+ :value.sync="model.f_meter_style"
100
+ v-model="model.f_meter_style"
101
+ :options='$parent.$parent.Warningstyle'
102
+ close-on-select
103
+ condition="gm.f_meter_style='{}'">
104
+ </v-select>
105
+ <v-select v-if="!$parent.$parent.styles"
106
+ placeholder='气表型号'
107
+ :value.sync="model.f_meter_style"
108
+ v-model="model.f_meter_style"
109
+ :options='$parent.$parent.Warningstyles'
110
+ close-on-select
111
+ condition="f_meter_style='{}'">
112
+ </v-select>
113
+ </div>
114
+ <div class="col-sm-2 form-group">
115
+ <label class="font_normal_body" style="word-break:keep-all;">上报时间</label>
116
+ <datepicker style="width:60%" placeholder="起始时间"
117
+ :value.sync="model.startDate"
118
+ v-model="model.startDate"
119
+ :format="'yyyy-MM-dd HH:mm:ss'"
120
+ ></datepicker>
121
+ </div>
122
+ <div class="col-sm-2 form-group">
123
+ <label class="font_normal_body" style="word-break:keep-all;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;至&nbsp;&nbsp;&nbsp;</label>
124
+ <datepicker style="width:60%" placeholder="结束时间"
125
+ :value.sync="model.endDate"
126
+ v-model="model.endDate"
127
+ :format="'yyyy-MM-dd HH:mm:ss'"
128
+ ></datepicker>
129
+ </div>
130
+ <div class="col-sm-2 form-group">
131
+ <label class="font_normal_body">壁&ensp;挂&ensp;炉</label>
132
+ <v-select id="f_meter_brand"
133
+ v-model="model.f_usetype"
134
+ placeholder='壁挂炉'
135
+ :value.sync="model.f_usetype"
136
+ :options='$parent.$parent.usetypes'
137
+ condition="" :search="false"
138
+ close-on-select style="width: 60%">
139
+ </v-select>
140
+ </div>
141
+ <div class="col-sm-2 form-group">
142
+ <label class="font_normal_body">房屋类型</label>
143
+ <v-select :value.sync="model.f_house_type" v-model="model.f_house_type"
144
+ :options='$parent.$parent.houseTypes' placeholder='请选择'
145
+ close-on-select
146
+ condition=""></v-select>
147
+ </div>
148
+ <div class="col-sm-2 form-group">
149
+ <label class="font_normal_body">安装位置</label>
150
+ <v-select :value.sync="model.f_position" v-model="model.f_position"
151
+ :options='$parent.$parent.positions' placeholder='请选择'
152
+ condition=""
153
+ close-on-select></v-select>
154
+ </div>
155
+ </div>
156
+ </div>
157
+ </criteria>
158
+ <data-grid id="reportgas" :model="model" partial='list' class="list_area table_sy" v-ref:grid>
159
+ <template partial='head'>
160
+ <tr>
161
+ <th style="text-align:center">序号</th>
162
+ <th style="text-align:center"><nobr>上报日期</nobr></th>
163
+ <th style="text-align:center" title="安装户数=正常户数+停用户数+未注册户数"><nobr>安装户数</nobr></th>
164
+
165
+ <th style="text-align:center" title="停用户数:表具状态为停用的用户数"><nobr>停用户数</nobr></th>
166
+ <th style="text-align:center" title="在用户数:表具状态为正常的用户数"><nobr>在用户数</nobr></th>
167
+
168
+ <th style="text-align:center" title="用户使用率=在用户数/正常户数"><nobr>用户使用率</nobr></th>
169
+ <th style="text-align:center"><nobr>抄表成功户数</nobr></th>
170
+ <th style="text-align:center"><nobr>总用气量</nobr></th>
171
+ <th style="text-align:center" title="日均用气量=总用气量/在用户数"><nobr>日均用气量</nobr></th>
172
+ <!--<th style="text-align:center"><nobr>指令成功户数</nobr></th>-->
173
+ <th style="text-align:center" title="抄表成功率=抄表成功户数/在用户数"><nobr>抄表成功率</nobr></th>
174
+ <!--<th style="text-align:center" title="指令成功率=指令成功户数/抄表成功户数"><nobr>指令成功率</nobr></th>-->
175
+ <!--<th style="text-align:center" title="综合成功率=指令成功户数/在用户数"><nobr>综合成功率</nobr></th>-->
176
+ </tr>
177
+ </template>
178
+ <template partial='body' partial='list' v-ref:grid>
179
+ <tr>
180
+ <td style="text-align:center">{{$index + 1}}</td>
181
+ <td style="text-align:center;width: 170px;"><nobr>{{row.f_insert_date}}</nobr></td>
182
+ <td style="text-align:center">{{row.anzhuang}}</td>
183
+
184
+ <th style="text-align:center">{{row.c0}}</th>
185
+ <td style="text-align:center"><nobr>{{row.c}}</nobr></td>
186
+
187
+ <td style="text-align:center"><nobr>{{row.user_bv}}%</nobr></td>
188
+ <!--<td style="text-align:center"><nobr>{{row.f_gas}}</nobr></td>-->
189
+ <td style="text-align:center">{{row.c1}}</td>
190
+ <td style="text-align:center">{{row.f_gas_all}}</td>
191
+ <td style="text-align:center">{{row.f_gas1}}</td>
192
+ <td style="text-align:center">{{row.f_bv1}}%</td>
193
+ <!--<td style="text-align:center">{{row.f_bv2}}%</td>-->
194
+ <!--<td style="text-align:center;width: 170px;"><nobr>{{row.f_bv3}}%</nobr></td>-->
195
+ </tr>
196
+ </template>
197
+ <template partial='foot'></template>
198
+ </data-grid>
199
+ </criteria-paged>
200
+ </div>
201
+ <!-- <div style="height: 40px;width: 100%;" v-show="echarts">-->
202
+ <!-- <button class="button_search button_spacing" @click="showEcharts()">隐藏图表</button>-->
203
+ <!-- </div>-->
204
+
205
+ </div>
206
+ <!--图显示模板-->
207
+ <div class="flex-row" v-if="echarts" style="width: 100%;height: 98%;">
208
+ <user-gas-echarts-list :condition="condition" :startdate="startDate"
209
+ :enddate="endDate" :echarts="echarts"></user-gas-echarts-list>
210
+ </div>
211
+ </template>
212
+ <script>
213
+ import {HttpResetClass, PagedList} from 'vue-client'
214
+ import UserGasEcharts from './UserGasEchartsList'
215
+ import * as Util from '../../../Util'
216
+ import plugins from '../../../plugins/GetLoginInfoService'
217
+ import plugin from 'system-clients/src/plugins/GetLoginInfoService'
218
+
219
+ export default {
220
+ title: '抄表分析',
221
+ props: ['data'],
222
+ components: {UserGasEcharts},
223
+ data () {
224
+ return {
225
+ model: new PagedList('rs/sql/webmeter_getNewHandChanceList', 50, {startDate: 'this.model.startDate', endDate: 'this.model.endDate'}),
226
+ condition: '1=1',
227
+ startDate: '',
228
+ gasproperties:[{label: '全部', value: ''}],
229
+ endDate: '',
230
+ WarningType: [
231
+ {label: '全部', value: ''}
232
+ ],
233
+ Warningstyles: [
234
+ {label: '全部', value: ''}
235
+ ],
236
+ styles:false,
237
+ orgid:[this.$login.f.orgid],
238
+ getfield:{"f_insert_date":"上报日期","anzhuang":"安装户数",
239
+ "c0":"停用户数",
240
+ "c":"在用户数","user_bv":"用户使用率",
241
+ "c1":"抄表成功户数",
242
+ "f_gas_all":"总用气量","f_gas":"日均户均用气量(成功)",
243
+ "f_gas1":"日均户均用气量(在用)",
244
+ "f_bv1":"抄表成功率"
245
+ },
246
+ criteriaShow:false,
247
+ echarts: false,
248
+ orgCondtionStr: '(' + this.$login.f.orgid + ')',
249
+ searchshow: false,
250
+ initres: {
251
+ org:[this.$login.f.orgid],
252
+ dep:[],
253
+ user:[]
254
+ },
255
+ obj: {
256
+ userid: this.$login.f.id,
257
+ source: `tool.getFullTree(this.getRights().where(row.getType() == $organization$))`,
258
+ res: this.$login.f.f_fengongsi,
259
+ resids: this.$login.f.orgid
260
+ },
261
+ usetypes: [{label: '全部', value: ''},{label: '是', value: `= '壁挂炉'`},{label: '否', value: `!= '壁挂炉'`}]
262
+ }
263
+ },
264
+ ready () {
265
+ this.$refs.paged.$refs.cri.model.startDate = Util.addDate(new Date(),-6).substring(0,10) + ' 00:00:00'
266
+ this.$refs.paged.$refs.cri.model.endDate = Util.toStandardDateString() + ' 23:59:59'
267
+ this.getMeterTypeAndBrand('f_meter_brand', '1=1')
268
+ this.$refs.paged.$refs.cri.search()
269
+ },
270
+ methods: {
271
+ getMeterType() {
272
+ this.Warningstyle = [{label: '全部', value: ''}]
273
+ this.styles = false
274
+ let f_meter_brand = this.$refs.paged.$refs.cri.model.f_meter_brand
275
+ this.getMeterTypeAndBrand('f_meter_style', `f_meter_brand='${f_meter_brand}'`)
276
+ },
277
+ getMeterTypeAndBrand(groupname, condition) {
278
+ condition = `${condition} and ui.f_orgid like '${this.$login.f.orgid}%'`
279
+ let self = this
280
+ let load = new HttpResetClass()
281
+ load.load('POST', 'rs/sql/getMeterStyleAndBrand1', {
282
+ data: {
283
+ condition: condition,
284
+ groupname: groupname
285
+ }
286
+ }, {warnMsg: null, resolveMsg: null}).then((res) => {
287
+ let dr = {label: '', value: ''}
288
+ let i = 0
289
+ for (i = 0; i < res.data.length; i++) {
290
+ dr = {label: '', value: ''}
291
+ if (groupname == 'f_meter_brand') {
292
+ dr.label = res.data[i].f_meter_brand
293
+ dr.value = res.data[i].f_meter_brand
294
+ //气表品牌
295
+ self.WarningType.push(dr)
296
+ console.log('气表品牌~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~')
297
+ console.log(dr)
298
+ console.log( self.WarningType)
299
+ } else if (groupname == 'f_meter_style') {
300
+ dr.label = res.data[i].f_meter_style
301
+ dr.value = res.data[i].f_meter_style
302
+ //气表类型
303
+ self.Warningstyle.push(dr)
304
+ }
305
+ }
306
+ if (self.Warningstyle.length > 1) {
307
+ self.showMeterStyle()
308
+ }
309
+ })
310
+
311
+ },
312
+ showMeterStyle() {
313
+ this.styles = true
314
+ },
315
+ userTypeChange () {
316
+ this.gasproperties=[{label: '全部', value: ''}]
317
+ if(this.$refs.paged.$refs.cri.model !==null) {
318
+ this.$refs.paged.$refs.cri.model.f_gasproperties=''
319
+
320
+ console.log(this.$refs.paged.$refs.cri.model.f_user_type[0])
321
+ this.gasproperties = this.$appdata.getParam(this.$refs.paged.$refs.cri.model.f_user_type[0])
322
+ // this.gasproperties.push({label: '全部', value: ''})
323
+ }
324
+ else{
325
+ this.gasproperties =[{label: '全部', value: ''}]
326
+ }
327
+ },
328
+ hidden(){
329
+ this.criteriaShow = !this.criteriaShow
330
+ },
331
+ // 查询开关
332
+ seachchange () {
333
+ this.searchshow = !this.searchshow
334
+ },
335
+
336
+ // 显示柱状图
337
+ showEcharts () {
338
+ this.echarts = !this.echarts
339
+ console.log(this.echarts)
340
+ },
341
+ close () {
342
+ this.show = false
343
+ },
344
+ // SaveAsFile(str) {
345
+ // this.$showMessage('您是否需要导出本页数据?', ['confirm', 'cancel']).then((res) => {
346
+ // if (res === 'confirm') {
347
+ // let style = '<style>' +
348
+ // 'td {border-width: 1px;padding: 2px;border-style: solid; border-color:black; border-collapse:collapse;} .tdright{text-align: right;} .tdcenter{text-align: center;}</style>';
349
+ // let strHtml = style + document.getElementById(str).innerHTML;
350
+ // console.log(strHtml);
351
+ // let LODOP = getLodop();
352
+ // LODOP.PRINT_INIT('');
353
+ // LODOP.ADD_PRINT_TABLE(5, 5, '99%', '100%', strHtml);
354
+ // LODOP.SAVE_TO_FILE('抄表统计.xls')
355
+ // }
356
+ // })
357
+ // },
358
+ clearmsg () {
359
+ this.$refs.paged.$refs.cri.model = {}
360
+ },
361
+ search (args) {
362
+ this.startDate = this.$refs.paged.$refs.cri.model.startDate
363
+ this.endDate = this.$refs.paged.$refs.cri.model.endDate
364
+ if (this.endDate == '' || this.startDate == '') {
365
+ return this.$showMessage("时间区间的开始和结束时间不能为空!")
366
+ }
367
+ if (this.orgCondtionStr){
368
+ this.condition = this.$refs.paged.$refs.cri.condition + `and uf.f_orgid in ${this.orgCondtionStr}`
369
+ }
370
+ else
371
+ this.condition = this.$refs.paged.$refs.cri.condition
372
+ args.condition = this.condition
373
+ this.model.search(args.condition, args.model)
374
+ },
375
+ // getRes (obj) {
376
+ // this.orgCondtionStr = plugins.convertToIn(obj)
377
+ // }
378
+ getRes (obj) {
379
+ this.orgCondtionStr = plugins.convertToIn(obj.resids)?plugin.convertToIn(obj.resids):'(' + this.$login.f.orgid + ')'
380
+ }
381
+ // getRes(condition,obj) {
382
+ // this.orgCondtionStr = condition
383
+ // this.orgname = obj.orgnames[0]
384
+ // this.depname = obj.depnames[0]
385
+ // }
386
+ },
387
+ computed: {
388
+ houseTypes() {
389
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('房屋类型')]
390
+ },
391
+ positions() {
392
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('安装位置')]
393
+ },
394
+ getCondition() {
395
+ var con=""
396
+ if (this.orgCondtionStr) {
397
+ con= `${this.$refs.paged.$refs.cri.condition} and u.f_orgid in ${this.orgCondtionStr}`
398
+ }
399
+ else{
400
+ con= `${this.$refs.paged.$refs.cri.condition} `
401
+ }
402
+ return {
403
+ condition: con ,
404
+ startDate:`${this.$refs.paged.$refs.cri.model.startDate}`,
405
+ endDate:`${this.$refs.paged.$refs.cri.model.endDate}`
406
+ }
407
+
408
+ },
409
+ usertypes () {
410
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('用户类型')]
411
+ },
412
+ // usertypes () {
413
+ // return this.$getParams('用户类型', [{label: '全部', value: ''}])
414
+ // },
415
+ f_outlets () {
416
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('网点查询用')]
417
+ },
418
+ valveStatus () {
419
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('气表类型')]
420
+ },
421
+ Getuserstyle () {
422
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('用气类型')]
423
+ }
424
+ }
425
+ }
426
+ </script>
427
+ <style>
428
+ .mystyle{
429
+ margin-left:80px;
430
+ }
431
+ .datapanel {
432
+ color: #333;
433
+ background-color: white;
434
+ box-shadow: darkgrey 0.5px 0.5px 0.5px 0.5px ;
435
+ padding: 10px 10px 10px 10px;
436
+ border-radius:15px;
437
+ }
438
+ </style>