manage-client 3.2.79-aode → 3.2.80-aode

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 (75) hide show
  1. package/build/dev-server.js +193 -193
  2. package/build/webpack.base.conf.js +79 -79
  3. package/gradle/wrapper/gradle-wrapper.jar +0 -0
  4. package/gradle/wrapper/gradle-wrapper.properties +5 -0
  5. package/gradlew +234 -0
  6. package/gradlew.bat +89 -0
  7. package/package.json +1 -1
  8. package/src/Util.js +383 -383
  9. package/src/components/MeterManage/MeterList.vue +336 -336
  10. package/src/components/WebReport/UserGasAll.vue +214 -214
  11. package/src/components/sale/businessquery/CancelChargeQuery.vue +650 -650
  12. package/src/components/sale/businessquery/ChangeMeterQuery.vue +667 -667
  13. package/src/components/sale/businessquery/ChargeQuery.vue +663 -663
  14. package/src/components/sale/businessquery/DeductionGas.vue +149 -149
  15. package/src/components/sale/businessquery/DisableQuery.vue +315 -315
  16. package/src/components/sale/businessquery/EnableQuery.vue +315 -315
  17. package/src/components/sale/businessquery/FillCardQuery.vue +436 -436
  18. package/src/components/sale/businessquery/FillGasQuery.vue +435 -435
  19. package/src/components/sale/businessquery/HandplanQuery.vue +705 -705
  20. package/src/components/sale/businessquery/InspectListGas.vue +456 -456
  21. package/src/components/sale/businessquery/InspectManage.vue +37 -37
  22. package/src/components/sale/businessquery/NewAccountQuery.vue +512 -506
  23. package/src/components/sale/businessquery/OtherChargeQuery.vue +406 -406
  24. package/src/components/sale/businessquery/QueryUserState.vue +313 -313
  25. package/src/components/sale/businessquery/ReverseQuery.vue +347 -347
  26. package/src/components/sale/businessquery/TransferQuery.vue +363 -363
  27. package/src/components/sale/businessquery/toolCardMakeQuery.vue +340 -340
  28. package/src/components/sale/config/exportConfig.js +271 -271
  29. package/src/components/sale/filesquery/ChangeUserQuery.vue +396 -396
  30. package/src/components/sale/filesquery/DeviceQuery.vue +329 -329
  31. package/src/components/sale/filesquery/MeterQuery.vue +593 -593
  32. package/src/components/sale/filesquery/UserQuery.vue +556 -556
  33. package/src/components/sale/filesquery/filequerydetail/BlackListQueryDetail.vue +219 -219
  34. package/src/components/sale/filesquery/filequerydetail/DisableQueryDetail.vue +272 -272
  35. package/src/components/sale/filesquery/filequerydetail/EnableQueryDetail.vue +274 -274
  36. package/src/components/sale/ncpush/ncUserLoad.vue +176 -176
  37. package/src/components/sale/ncpush/ncpushmanage/NCpushList.vue +497 -497
  38. package/src/components/sale/ncpush/ncrecord/pushdaydatalist.vue +298 -298
  39. package/src/components/sale/ncpush/pushconfirmlist.vue +414 -414
  40. package/src/components/sale/ncpush/pushconfirmmergelist.vue +480 -480
  41. package/src/components/sale/report/aode/MonthByChargeType.vue +526 -526
  42. package/src/components/sale/report/aode/MonthByUserType.vue +562 -562
  43. package/src/components/sale/report/aode/YearByChargeTpye.vue +254 -254
  44. package/src/components/sale/report/aode/YearByUserType.vue +351 -342
  45. package/src/components/sale/report/aode/iot/FarawayQuery.vue +401 -401
  46. package/src/components/sale/report/aode/userbuyQuery.vue +477 -477
  47. package/src/components/valueaddinfo/ValueAddinfoQuery.vue +425 -425
  48. package/src/components/valueaddinfo/renewalvalueAddUserQuery.vue +371 -371
  49. package/src/components/valueaddinfo/valueAddCountQuery.vue +315 -315
  50. package/src/components/valueaddinfo/valueAddUserQuery.vue +404 -404
  51. package/src/components/webmeter/ArreasuserQuery.vue +193 -193
  52. package/src/components/webmeter/DrillData/LostContactAnalysis.vue +531 -531
  53. package/src/components/webmeter/DrillData/LostContactAnalysisList.vue +548 -548
  54. package/src/components/webmeter/DrillData/NewUserGasAll.vue +596 -588
  55. package/src/components/webmeter/DrillData/UserGasAll.vue +24 -0
  56. package/src/components/webmeter/DrillData/UserLostContactAnalysis.vue +507 -507
  57. package/src/components/webmeter/EasyExcelExportCk.vue +396 -396
  58. package/src/components/webmeter/IOTArrears/arrears.vue +324 -324
  59. package/src/components/webmeter/IOTArrears/iotRechargeAudit.vue +377 -377
  60. package/src/components/webmeter/NewWebmeterHandplanQuery.vue +605 -605
  61. package/src/components/webmeter/WebmeterHandplanQuery.vue +640 -640
  62. package/src/components/webmeter/dataCollection/DataCollection.vue +630 -630
  63. package/src/components/webmeter/gasAnalysis/GasAnalysisManage.vue +303 -303
  64. package/src/components/webmeter/handplan/NewWebMeterHandPlan.vue +745 -745
  65. package/src/components/webmeter/newwebmeter/NewException/NewMeterException.vue +449 -449
  66. package/src/components/webmeter/newwebmeter/NewWebUserHand.vue +325 -325
  67. package/src/components/webmeter/newwebmeter/ReportDataQuery.vue +283 -283
  68. package/src/components/webmeter/newwebmeter/UserGasList.vue +295 -295
  69. package/src/components/webmeter/newwebmeter/UserInstructList.vue +311 -311
  70. package/src/components/webmeter/newwebmeter/signAnalysisListMain.vue +386 -386
  71. package/src/components/webmeter/report/ReportList.vue +211 -211
  72. package/src/main.js +56 -56
  73. package/src/saleManage.js +263 -263
  74. package/src/webmeterManage.js +99 -99
  75. package/client.iml +0 -15
@@ -1,342 +1,351 @@
1
- <template>
2
- <div id="unit" class="flex-row">
3
- <div class="basic-main">
4
- <div class="flex">
5
- <criteria-paged :model="model" v-ref:paged>
6
- <criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:cri v-show="$parent.criteriaShow">
7
- <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
8
- <div class="row">
9
- <res-select-group :initres="$parent.$parent.initres" @re-res="$parent.$parent.getRes" :mul="false" v-ref:sel></res-select-group>
10
- <div class="col-sm-2 form-group">
11
- <label class="font_normal_body">时间类型</label>
12
- <v-select
13
- :value.sync="$parent.$parent.typeInfo" v-model="$parent.$parent.typeInfo"
14
- :options='$parent.$parent.DateType' placeholder='时间类型'
15
- close-on-select
16
- @change="$parent.$parent.ThePolesReverse()"
17
- >
18
- </v-select>
19
- </div>
20
- <div class="col-sm-2" v-show="$parent.$parent.oneShow" >
21
- <label for="YeadDate" class="font_normal_body">统计年份</label>
22
- <datepicker placeholder="统计年份" style="width:60%"
23
- v-model="model.YeadDate"
24
- :value.sync="model.YeadDate"
25
- :format="'yyyy'"
26
- :show-reset-button="true"
27
- :select-year="true">
28
- </datepicker>
29
- </div>
30
- <div class="col-sm-2" v-show="!$parent.$parent.oneShow">
31
- <label for="endDate" class="font_normal_body">开始时间</label>
32
- <datepicker placeholder="开始时间" style="width:60%"
33
- v-model="model.f_begin_operate_date"
34
- :value.sync="model.f_begin_operate_date"
35
- :format="'yyyy'"
36
- :show-reset-button="true"
37
- :select-year="true"
38
- >
39
- </datepicker>
40
- </div>
41
- </div>
42
- <div class="row">
43
-
44
- <div class="col-sm-2" v-show="!$parent.$parent.oneShow">
45
- <label for="endDate" class="font_normal_body">结束时间</label>
46
- <datepicker placeholder="结束时间" style="width:60%"
47
- v-model="model.f_end_operate_date"
48
- :value.sync="model.f_end_operate_date"
49
- :format="'yyyy'"
50
- :show-reset-button="true"
51
- :select-year="true"
52
- >
53
- </datepicker>
54
- </div>
55
- <div class="col-sm-2">
56
- <label class="font_normal_body">包含APP</label>
57
- <v-select :value.sync="model.f_hasapp" v-model="model.f_hasapp"
58
- :options='$parent.$parent.hasapps' placeholder='请选择'
59
- condition=" {} "
60
- close-on-select></v-select>
61
- </div>
62
- </div>
63
- <div class="row">
64
- <div class="span" style = "float:right;margin-top:10px">
65
- <button class="button_search button_spacing" @click="search()">查询</button>
66
- <button class="button_clear button_spacing" @click="$parent.$parent.clear()">清空</button>
67
- <!-- <export-excel :data="$parent.$parent.getCondition"-->
68
- <!-- :field="$parent.$parent.getfield" :defaultselect="$parent.$parent.selectfields"-->
69
- <!-- sqlurl="rs/logic/exportfile" sql-name="aode_YearByUserType" template-name='年报(客户类型)' :choose-col="true"></export-excel>-->
70
-
71
- <export-excel-hand :data="$parent.$parent.getCondition"
72
- :field="$parent.$parent.getfield"
73
- :other-data="$parent.$parent.other"
74
- :footer-data="$parent.$parent.footer" v-ref:exports
75
- :sumname="$parent.$parent.sumName"
76
- :defaultselect="$parent.$parent.selectfields"
77
- sqlurl="rs/logic/reportExportfile" sql-name="aode_YearByUserType" template-name='年报(客户类型)'
78
- :choose-col="true"></export-excel-hand>
79
- <year-by-user-print :countmodel="{sumsmodel:$parent.$parent.sumsmodel,model:$parent.$parent.model,orgname:$parent.$parent.orgname,depname:$parent.$parent.depname}"></year-by-user-print>
80
-
81
-
82
- <!--<export-excel :data="$parent.$parent.getCondition"-->
83
- <!--:field="$parent.$parent.getExportField"-->
84
- <!--sqlurl="rs/logic/exportfile" sql-name="filesQuery" template-name='用户查询导出' :choose-col="true"></export-excel>-->
85
- </div>
86
- </div>
87
- </div>
88
- </criteria>
89
- <data-grid :model="model" partial='list' :sumsmodel="sumsmodel" class="list_area table_sy" @dblclick="$parent.dblclick" v-ref:grid>
90
- <template partial='head'>
91
- <tr>
92
- <th><nobr>购买日期</nobr></th>
93
- <th><nobr>民用开户</nobr></th>
94
- <th><nobr>民用人次</nobr></th>
95
- <th><nobr>民用气量</nobr></th>
96
- <th><nobr>民用金额</nobr></th>
97
- <th><nobr>商业开户</nobr></th>
98
- <th><nobr>商业人次</nobr></th>
99
- <th><nobr>商业气量</nobr></th>
100
- <th><nobr>商业金额</nobr></th>
101
- <th><nobr>工业开户</nobr></th>
102
- <th><nobr>工业人次</nobr></th>
103
- <th><nobr>工业气量</nobr></th>
104
- <th><nobr>工业金额</nobr></th>
105
- <th><nobr>合计开户</nobr></th>
106
- <th><nobr>合计人次</nobr></th>
107
- <th><nobr>合计气量</nobr></th>
108
- <th><nobr>合计金额</nobr></th>
109
- </tr>
110
- </template>
111
- <template partial='body'>
112
- <td style="text-align: center;"><nobr>{{row.f_operate_date}}</nobr></td>
113
- <td style="text-align: center;"><nobr>{{row.f_open_my}}</nobr></td>
114
- <td style="text-align: center;"><nobr>{{row.f_count_my}}</nobr></td>
115
- <td style="text-align: center;"><nobr>{{row.f_pregas_my}}</nobr></td>
116
- <td style="text-align: center;"><nobr>{{row.f_collection_my}}</nobr></td>
117
-
118
- <td style="text-align: center;"><nobr>{{row.f_open_sy}}</nobr></td>
119
- <td style="text-align: center;"><nobr>{{row.f_count_sy}}</nobr></td>
120
- <td style="text-align: center;"><nobr>{{row.f_pregas_sy}}</nobr></td>
121
- <td style="text-align: center;"><nobr>{{row.f_collection_sy}}</nobr></td>
122
-
123
- <td style="text-align: center;"><nobr>{{row.f_open_gy}}</nobr></td>
124
- <td style="text-align: center;"><nobr>{{row.f_count_gy}}</nobr></td>
125
- <td style="text-align: center;"><nobr>{{row.f_pregas_gy}}</nobr></td>
126
- <td style="text-align: center;"><nobr>{{row.f_collection_gy}}</nobr></td>
127
-
128
- <td style="text-align: center;"><nobr>{{row.f_open}}</nobr></td>
129
- <td style="text-align: center;"><nobr>{{row.f_count}}</nobr></td>
130
- <td style="text-align: center;"><nobr>{{row.f_pregas}}</nobr></td>
131
- <td style="text-align: center;"><nobr>{{row.f_collection}}</nobr></td>
132
- </template>
133
- <template partial='foot'>
134
- <td style="text-align: center;background-color: mistyrose"><nobr>合计:</nobr></td>
135
- <td style="text-align: center;background-color: mistyrose"><nobr>{{model.sums.f_open_my}}</nobr></td>
136
- <td style="text-align: center;background-color: mistyrose"><nobr>{{model.sums.f_count_my}}</nobr></td>
137
- <td style="text-align: center;background-color: mistyrose"><nobr>{{model.sums.f_pregas_my}}</nobr></td>
138
- <td style="text-align: center;background-color: mistyrose"><nobr>{{model.sums.f_collection_my}}</nobr></td>
139
- <td style="text-align: center;background-color: mistyrose"><nobr>{{model.sums.f_open_sy}}</nobr></td>
140
- <td style="text-align: center;background-color: mistyrose"><nobr>{{model.sums.f_count_sy}}</nobr></td>
141
- <td style="text-align: center;background-color: mistyrose"><nobr>{{model.sums.f_pregas_sy}}</nobr></td>
142
- <td style="text-align: center;background-color: mistyrose"><nobr>{{model.sums.f_collection_sy}}</nobr></td>
143
- <td style="text-align: center;background-color: mistyrose"><nobr>{{model.sums.f_open_gy}}</nobr></td>
144
- <td style="text-align: center;background-color: mistyrose"><nobr>{{model.sums.f_count_gy}}</nobr></td>
145
- <td style="text-align: center;background-color: mistyrose"><nobr>{{model.sums.f_pregas_gy}}</nobr></td>
146
- <td style="text-align: center;background-color: mistyrose"><nobr>{{model.sums.f_collection_gy}}</nobr></td>
147
- <td style="text-align: center;background-color: mistyrose"><nobr>{{model.sums.f_open}}</nobr></td>
148
- <td style="text-align: center;background-color: mistyrose"><nobr>{{model.sums.f_count}}</nobr></td>
149
- <td style="text-align: center;background-color: mistyrose"><nobr>{{model.sums.f_pregas}}</nobr></td>
150
- <td style="text-align: center;background-color: mistyrose"><nobr>{{model.sums.f_collection}}</nobr></td>
151
- </template>
152
- </data-grid>
153
- </criteria-paged>
154
- </div>
155
- </div>
156
- </div>
157
- </template>
158
-
159
- <script>
160
- import { PagedList } from 'vue-client'
161
- // import defaultPrint from '../config/DefaultPrint'
162
- import exportConfig from '../../config/exportConfig'
163
- let readySomething = async function (self) {
164
- let year = new Date().getFullYear()
165
- self.$refs.paged.$refs.cri.model.f_hasapp = [`f_operator != '悦生活'`]
166
- self.$refs.paged.$refs.cri.model.YeadDate = year+""
167
- // await self.$refs.paged.$refs.cri.search()
168
- // self.sumsmodel = self.$refs.paged.$refs.grid.model.sums
169
- }
170
-
171
- export default {
172
- title: '年报(客户类型)',
173
- data() {
174
- return {
175
- oneShow:false,
176
- other:[],
177
- footer:[],
178
- model: new PagedList('rs/sql/aode_YearByUserType', 35,{YeadDate: 'this.model.YeadDate',f_begin_operate_date: 'this.model.f_begin_operate_date',f_end_operate_date: 'this.model.f_end_operate_date'},{
179
- f_open_my:0,
180
- f_count_my:0,
181
- f_pregas_my:0,
182
- f_collection_my:0,
183
- f_open_sy:0,
184
- f_count_sy:0,
185
- f_pregas_sy:0,
186
- f_collection_sy:0,
187
- f_open_gy:0,
188
- f_count_gy:0,
189
- f_pregas_gy:0,
190
- f_collection_gy:0,
191
- f_open: 0,
192
- f_count: 0,
193
- f_pregas: 0,
194
- f_collection: 0
195
- }),
196
- initres: {
197
- org:[this.$login.f.orgid],
198
- dep:[this.$login.f.depids],
199
- user:[this.$login.f.id]
200
- },
201
- typeInfo: '选择年份',
202
- DateType:[{label:'选择年份',value:'选择年份'},{label:'选择区间',value:'选择区间'}],
203
- criteriaShow: true,
204
- orgCondtionStr:'',
205
- sumsmodel: {},
206
- orgname: '',
207
- depname: '',
208
- hasapps: [{label: '包含APP', value: ''}, {label: '不包含APP', value: "f_operator != '悦生活'"},{label: '不包含POS', value: "len(f_voucher_number)<1"},{label: 'POS', value: "f_voucher_number!=''"}],
209
- defaultfield:[],
210
- sumName:['f_open_my','f_count_my','f_pregas_my','f_collection_my',
211
- 'f_open_sy','f_count_sy','f_pregas_sy',
212
- 'f_collection_sy','f_open_gy','f_count_gy','f_pregas_gy',
213
- ' f_collection_gy','f_open','f_count','f_pregas',
214
- 'f_collection'],
215
- selectfields:[],
216
- }
217
- },
218
- ready(){
219
- readySomething(this).then(() => {
220
- this.$emit('ready')
221
- }).catch((error) => {
222
- this.$emit('error', error)
223
- })
224
- for(var item in exportConfig.dataReportConfig){
225
- this.selectfields.push(item)
226
- }
227
- },
228
- methods: {
229
- getotherfooter(){
230
- this.$refs.paged.$refs.cri.$refs.exports.otherData=[];
231
- this.$refs.paged.$refs.cri.$refs.exports.footerData=[];
232
- this.other=[];
233
- this.footer=[];
234
- let exportdata = this.getCondition;
235
- let otherInData=[];
236
- otherInData.push(`导出时间: ${this.$login.toStandardDateString()}`);
237
- otherInData.push(`导出人:${this.$login.f.name}`)
238
- let footerData=[],exportfield=this.getfield;
239
- footerData.push("合计");
240
- let self = this;
241
- for(var field in self.sumsmodel){
242
- footerData.push(`${self.sumsmodel[field]}`);
243
- }
244
- this.footer.push(footerData);
245
- this.other.push(otherInData);
246
- },
247
- ThePolesReverse(){
248
- if(this.typeInfo[0] === '选择年份'){
249
- this.$refs.paged.$refs.cri.model.f_begin_operate_date =''
250
- this.$refs.paged.$refs.cri.model.f_end_operate_date =''
251
- this.$refs.paged.$refs.cri.model.YeadDate = new Date().getFullYear()
252
- this.oneShow =true
253
- }else{
254
- this.$refs.paged.$refs.cri.model.YeadDate =''
255
- this.$refs.paged.$refs.cri.model.f_begin_operate_date =new Date().getFullYear()-1
256
- this.$refs.paged.$refs.cri.model.f_end_operate_date = new Date().getFullYear()
257
- this.oneShow =false
258
- }
259
- },
260
- async selfSearch (args) {
261
- let f_orgstr = this.orgCondtionStr
262
- if(!this.orgCondtionStr){
263
- f_orgstr = 'and f_orgid = ' + this.$login.f.orgid
264
- }
265
- args.condition = `${args.condition} ` + f_orgstr
266
- await this.model.search(args.condition, args.model)
267
-
268
- this.sumsmodel = this.$refs.paged.$refs.grid.model.sums
269
- console.log('计算合计。', this.sumsmodel)
270
- if (this.$refs.paged.$refs.grid.model.rows.length === 0) {
271
- for (let key in this.sumsmodel) {
272
- this.sumsmodel[key] = 0
273
- }
274
- }
275
- this.$dispatch('getdata', this.sumsmodel)
276
- },
277
- clear(){
278
- //清空部门和人员
279
- this.$refs.paged.$refs.cri.$refs.sel.$children[1].selectres = []
280
- //部门和人员变为全选
281
- this.$refs.paged.$refs.cri.$refs.sel.$children[1].$children[0].isSelectAll = false
282
- this.$refs.paged.$refs.cri.$refs.sel.$children[2].$children[0].isSelectAll = false
283
- Object.keys(this.$refs.paged.$refs.cri.model).forEach((key) => {
284
- this.$refs.paged.$refs.cri.model[key] = ''
285
- })
286
- },
287
- show(){
288
- this.criteriaShow = true
289
- },
290
- hidden(){
291
- this.criteriaShow = false
292
- },
293
- getRes(condition,obj) {
294
- this.orgCondtionStr = condition
295
- this.orgname = obj.orgnames[0]
296
- this.depname = obj.depnames[0]
297
- }
298
- },
299
- watch:{
300
- 'all' (val) {
301
- if (val) {
302
- this.modelval = this.bodyData
303
- } else {
304
- this.modelval = defaultPrint.config
305
- this.put()
306
- }
307
- },
308
- sumsmodel:{
309
- handler: function(val) {
310
- this.getotherfooter();
311
- },
312
- deep: true
313
- },
314
- 'modelval.length' () {
315
- this.put()
316
- },
317
- },
318
- computed:{
319
- getCondition(){
320
- return {condition: `${this.$refs.paged.$refs.cri.condition}`+this.orgCondtionStr,YeadDate:`${this.$refs.paged.$refs.cri.model.YeadDate}`
321
- ,f_begin_operate_date:`${this.$refs.paged.$refs.cri.model.f_begin_operate_date}`,f_end_operate_date:`${this.$refs.paged.$refs.cri.model.f_end_operate_date}` }
322
- },
323
- getfield(){
324
- return exportConfig.yearByUserConfig
325
- },
326
- userstates () {
327
- return [{label: '全部', value: ''}, ...this.$appdata.getParam('用户状态')]
328
- },
329
- sliceArea () {
330
- let rs = new Array()
331
- for (let i = 0; i < this.$login.f.f_allArea.length; i++) {
332
- let temp = {
333
- label: this.$login.f.f_allArea[i].label,
334
- value: this.$login.f.f_allArea[i].label
335
- }
336
- rs.push(temp)
337
- }
338
- return [{label: '全部', value: ''}, ...rs]
339
- }
340
- }
341
- }
342
- </script>
1
+ <template>
2
+ <div id="unit" class="flex-row">
3
+ <div class="basic-main">
4
+ <div class="flex">
5
+ <criteria-paged :model="model" v-ref:paged>
6
+ <criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:cri v-show="$parent.criteriaShow">
7
+ <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
8
+ <div class="row">
9
+ <res-select-group :initres="$parent.$parent.initres" @re-res="$parent.$parent.getRes" :mul="false" v-ref:sel></res-select-group>
10
+ <div class="col-sm-2 form-group">
11
+ <label class="font_normal_body">时间类型</label>
12
+ <v-select
13
+ :value.sync="$parent.$parent.typeInfo" v-model="$parent.$parent.typeInfo"
14
+ :options='$parent.$parent.DateType' placeholder='时间类型'
15
+ close-on-select
16
+ @change="$parent.$parent.ThePolesReverse()"
17
+ >
18
+ </v-select>
19
+ </div>
20
+
21
+ <div class="col-sm-2" v-show="$parent.$parent.oneShow" >
22
+ <label for="YeadDate" class="font_normal_body">统计年份</label>
23
+ <datepicker placeholder="统计年份" style="width:60%"
24
+ v-model="model.YeadDate"
25
+ :value.sync="model.YeadDate"
26
+ :format="'yyyy'"
27
+ :show-reset-button="true"
28
+ :select-year="true">
29
+ </datepicker>
30
+ </div>
31
+ <div class="col-sm-2" v-show="!$parent.$parent.oneShow">
32
+ <label for="endDate" class="font_normal_body">开始时间</label>
33
+ <datepicker placeholder="开始时间" style="width:60%"
34
+ v-model="model.f_begin_operate_date"
35
+ :value.sync="model.f_begin_operate_date"
36
+ :format="'yyyy'"
37
+ :show-reset-button="true"
38
+ :select-year="true"
39
+ >
40
+ </datepicker>
41
+ </div>
42
+ </div>
43
+ <div class="row">
44
+
45
+ <div class="col-sm-2" v-show="!$parent.$parent.oneShow">
46
+ <label for="endDate" class="font_normal_body">结束时间</label>
47
+ <datepicker placeholder="结束时间" style="width:60%"
48
+ v-model="model.f_end_operate_date"
49
+ :value.sync="model.f_end_operate_date"
50
+ :format="'yyyy'"
51
+ :show-reset-button="true"
52
+ :select-year="true"
53
+ >
54
+ </datepicker>
55
+ </div>
56
+ <div class="col-sm-2 form-group">
57
+ <label class="font_normal_body">气表类型</label>
58
+ <v-select :value.sync="model.f_meter_type" v-model="model.f_meter_type"
59
+ :options='$parent.$parent.metertypes' placeholder='请选择'
60
+ :value-single="true"
61
+ close-on-select></v-select>
62
+ </div>
63
+ <div class="col-sm-2">
64
+ <label class="font_normal_body">包含APP</label>
65
+ <v-select :value.sync="model.f_hasapp" v-model="model.f_hasapp"
66
+ :options='$parent.$parent.hasapps' placeholder='请选择'
67
+ condition=" {} "
68
+ close-on-select></v-select>
69
+ </div>
70
+ </div>
71
+ <div class="row">
72
+ <div class="span" style = "float:right;margin-top:10px">
73
+ <button class="button_search button_spacing" @click="search()">查询</button>
74
+ <button class="button_clear button_spacing" @click="$parent.$parent.clear()">清空</button>
75
+ <!-- <export-excel :data="$parent.$parent.getCondition"-->
76
+ <!-- :field="$parent.$parent.getfield" :defaultselect="$parent.$parent.selectfields"-->
77
+ <!-- sqlurl="rs/logic/exportfile" sql-name="aode_YearByUserType" template-name='年报(客户类型)' :choose-col="true"></export-excel>-->
78
+
79
+ <export-excel-hand :data="$parent.$parent.getCondition"
80
+ :field="$parent.$parent.getfield"
81
+ :other-data="$parent.$parent.other"
82
+ :footer-data="$parent.$parent.footer" v-ref:exports
83
+ :sumname="$parent.$parent.sumName"
84
+ :defaultselect="$parent.$parent.selectfields"
85
+ sqlurl="rs/logic/reportExportfile" sql-name="aode_YearByUserType" template-name='年报(客户类型)'
86
+ :choose-col="true"></export-excel-hand>
87
+ <year-by-user-print :countmodel="{sumsmodel:$parent.$parent.sumsmodel,model:$parent.$parent.model,orgname:$parent.$parent.orgname,depname:$parent.$parent.depname}"></year-by-user-print>
88
+
89
+
90
+ <!--<export-excel :data="$parent.$parent.getCondition"-->
91
+ <!--:field="$parent.$parent.getExportField"-->
92
+ <!--sqlurl="rs/logic/exportfile" sql-name="filesQuery" template-name='用户查询导出' :choose-col="true"></export-excel>-->
93
+ </div>
94
+ </div>
95
+ </div>
96
+ </criteria>
97
+ <data-grid :model="model" partial='list' :sumsmodel="sumsmodel" class="list_area table_sy" @dblclick="$parent.dblclick" v-ref:grid>
98
+ <template partial='head'>
99
+ <tr>
100
+ <th><nobr>购买日期</nobr></th>
101
+ <th><nobr>民用开户</nobr></th>
102
+ <th><nobr>民用人次</nobr></th>
103
+ <th><nobr>民用气量</nobr></th>
104
+ <th><nobr>民用金额</nobr></th>
105
+ <th><nobr>商业开户</nobr></th>
106
+ <th><nobr>商业人次</nobr></th>
107
+ <th><nobr>商业气量</nobr></th>
108
+ <th><nobr>商业金额</nobr></th>
109
+ <th><nobr>工业开户</nobr></th>
110
+ <th><nobr>工业人次</nobr></th>
111
+ <th><nobr>工业气量</nobr></th>
112
+ <th><nobr>工业金额</nobr></th>
113
+ <th><nobr>合计开户</nobr></th>
114
+ <th><nobr>合计人次</nobr></th>
115
+ <th><nobr>合计气量</nobr></th>
116
+ <th><nobr>合计金额</nobr></th>
117
+ </tr>
118
+ </template>
119
+ <template partial='body'>
120
+ <td style="text-align: center;"><nobr>{{row.f_operate_date}}</nobr></td>
121
+ <td style="text-align: center;"><nobr>{{row.f_open_my}}</nobr></td>
122
+ <td style="text-align: center;"><nobr>{{row.f_count_my}}</nobr></td>
123
+ <td style="text-align: center;"><nobr>{{row.f_pregas_my}}</nobr></td>
124
+ <td style="text-align: center;"><nobr>{{row.f_collection_my}}</nobr></td>
125
+
126
+ <td style="text-align: center;"><nobr>{{row.f_open_sy}}</nobr></td>
127
+ <td style="text-align: center;"><nobr>{{row.f_count_sy}}</nobr></td>
128
+ <td style="text-align: center;"><nobr>{{row.f_pregas_sy}}</nobr></td>
129
+ <td style="text-align: center;"><nobr>{{row.f_collection_sy}}</nobr></td>
130
+
131
+ <td style="text-align: center;"><nobr>{{row.f_open_gy}}</nobr></td>
132
+ <td style="text-align: center;"><nobr>{{row.f_count_gy}}</nobr></td>
133
+ <td style="text-align: center;"><nobr>{{row.f_pregas_gy}}</nobr></td>
134
+ <td style="text-align: center;"><nobr>{{row.f_collection_gy}}</nobr></td>
135
+
136
+ <td style="text-align: center;"><nobr>{{row.f_open}}</nobr></td>
137
+ <td style="text-align: center;"><nobr>{{row.f_count}}</nobr></td>
138
+ <td style="text-align: center;"><nobr>{{row.f_pregas}}</nobr></td>
139
+ <td style="text-align: center;"><nobr>{{row.f_collection}}</nobr></td>
140
+ </template>
141
+ <template partial='foot'>
142
+ <td style="text-align: center;background-color: mistyrose"><nobr>合计:</nobr></td>
143
+ <td style="text-align: center;background-color: mistyrose"><nobr>{{model.sums.f_open_my}}</nobr></td>
144
+ <td style="text-align: center;background-color: mistyrose"><nobr>{{model.sums.f_count_my}}</nobr></td>
145
+ <td style="text-align: center;background-color: mistyrose"><nobr>{{model.sums.f_pregas_my}}</nobr></td>
146
+ <td style="text-align: center;background-color: mistyrose"><nobr>{{model.sums.f_collection_my}}</nobr></td>
147
+ <td style="text-align: center;background-color: mistyrose"><nobr>{{model.sums.f_open_sy}}</nobr></td>
148
+ <td style="text-align: center;background-color: mistyrose"><nobr>{{model.sums.f_count_sy}}</nobr></td>
149
+ <td style="text-align: center;background-color: mistyrose"><nobr>{{model.sums.f_pregas_sy}}</nobr></td>
150
+ <td style="text-align: center;background-color: mistyrose"><nobr>{{model.sums.f_collection_sy}}</nobr></td>
151
+ <td style="text-align: center;background-color: mistyrose"><nobr>{{model.sums.f_open_gy}}</nobr></td>
152
+ <td style="text-align: center;background-color: mistyrose"><nobr>{{model.sums.f_count_gy}}</nobr></td>
153
+ <td style="text-align: center;background-color: mistyrose"><nobr>{{model.sums.f_pregas_gy}}</nobr></td>
154
+ <td style="text-align: center;background-color: mistyrose"><nobr>{{model.sums.f_collection_gy}}</nobr></td>
155
+ <td style="text-align: center;background-color: mistyrose"><nobr>{{model.sums.f_open}}</nobr></td>
156
+ <td style="text-align: center;background-color: mistyrose"><nobr>{{model.sums.f_count}}</nobr></td>
157
+ <td style="text-align: center;background-color: mistyrose"><nobr>{{model.sums.f_pregas}}</nobr></td>
158
+ <td style="text-align: center;background-color: mistyrose"><nobr>{{model.sums.f_collection}}</nobr></td>
159
+ </template>
160
+ </data-grid>
161
+ </criteria-paged>
162
+ </div>
163
+ </div>
164
+ </div>
165
+ </template>
166
+
167
+ <script>
168
+ import { PagedList } from 'vue-client'
169
+ // import defaultPrint from '../config/DefaultPrint'
170
+ import exportConfig from '../../config/exportConfig'
171
+ let readySomething = async function (self) {
172
+ let year = new Date().getFullYear()
173
+ self.$refs.paged.$refs.cri.model.f_hasapp = [`f_operator != '悦生活'`]
174
+ self.$refs.paged.$refs.cri.model.YeadDate = year+""
175
+ // await self.$refs.paged.$refs.cri.search()
176
+ // self.sumsmodel = self.$refs.paged.$refs.grid.model.sums
177
+ }
178
+
179
+ export default {
180
+ title: '年报(客户类型)',
181
+ data() {
182
+ return {
183
+ oneShow:false,
184
+ other:[],
185
+ footer:[],
186
+ model: new PagedList('rs/sql/aode_YearByUserType', 35,{YeadDate: 'this.model.YeadDate',f_begin_operate_date: 'this.model.f_begin_operate_date',f_end_operate_date: 'this.model.f_end_operate_date',f_meter_type:'this.model.f_meter_type'},{
187
+ f_open_my:0,
188
+ f_count_my:0,
189
+ f_pregas_my:0,
190
+ f_collection_my:0,
191
+ f_open_sy:0,
192
+ f_count_sy:0,
193
+ f_pregas_sy:0,
194
+ f_collection_sy:0,
195
+ f_open_gy:0,
196
+ f_count_gy:0,
197
+ f_pregas_gy:0,
198
+ f_collection_gy:0,
199
+ f_open: 0,
200
+ f_count: 0,
201
+ f_pregas: 0,
202
+ f_collection: 0
203
+ }),
204
+ initres: {
205
+ org:[this.$login.f.orgid],
206
+ dep:[this.$login.f.depids],
207
+ user:[this.$login.f.id]
208
+ },
209
+ typeInfo: '选择年份',
210
+ DateType:[{label:'选择年份',value:'选择年份'},{label:'选择区间',value:'选择区间'}],
211
+ metertypes:[{label: '全部', value: ''},{label:'卡表',value:'卡表'},{label:'机表',value:'机表'},{label:'物联网表',value:'物联网表'}],
212
+ criteriaShow: true,
213
+ orgCondtionStr:'',
214
+ sumsmodel: {},
215
+ orgname: '',
216
+ depname: '',
217
+ hasapps: [{label: '包含APP', value: ''}, {label: '不包含APP', value: "f_operator != '悦生活'"},{label: '不包含POS', value: "len(f_voucher_number)<1"},{label: 'POS', value: "f_voucher_number!=''"}],
218
+ defaultfield:[],
219
+ sumName:['f_open_my','f_count_my','f_pregas_my','f_collection_my',
220
+ 'f_open_sy','f_count_sy','f_pregas_sy',
221
+ 'f_collection_sy','f_open_gy','f_count_gy','f_pregas_gy',
222
+ ' f_collection_gy','f_open','f_count','f_pregas',
223
+ 'f_collection'],
224
+ selectfields:[],
225
+ }
226
+ },
227
+ ready(){
228
+ readySomething(this).then(() => {
229
+ this.$emit('ready')
230
+ }).catch((error) => {
231
+ this.$emit('error', error)
232
+ })
233
+ for(var item in exportConfig.dataReportConfig){
234
+ this.selectfields.push(item)
235
+ }
236
+ },
237
+ methods: {
238
+ getotherfooter(){
239
+ this.$refs.paged.$refs.cri.$refs.exports.otherData=[];
240
+ this.$refs.paged.$refs.cri.$refs.exports.footerData=[];
241
+ this.other=[];
242
+ this.footer=[];
243
+ let exportdata = this.getCondition;
244
+ let otherInData=[];
245
+ otherInData.push(`导出时间: ${this.$login.toStandardDateString()}`);
246
+ otherInData.push(`导出人:${this.$login.f.name}`)
247
+ let footerData=[],exportfield=this.getfield;
248
+ footerData.push("合计");
249
+ let self = this;
250
+ for(var field in self.sumsmodel){
251
+ footerData.push(`${self.sumsmodel[field]}`);
252
+ }
253
+ this.footer.push(footerData);
254
+ this.other.push(otherInData);
255
+ },
256
+ ThePolesReverse(){
257
+ if(this.typeInfo[0] === '选择年份'){
258
+ this.$refs.paged.$refs.cri.model.f_begin_operate_date =''
259
+ this.$refs.paged.$refs.cri.model.f_end_operate_date =''
260
+ this.$refs.paged.$refs.cri.model.YeadDate = new Date().getFullYear()
261
+ this.oneShow =true
262
+ }else{
263
+ this.$refs.paged.$refs.cri.model.YeadDate =''
264
+ this.$refs.paged.$refs.cri.model.f_begin_operate_date =new Date().getFullYear()-1
265
+ this.$refs.paged.$refs.cri.model.f_end_operate_date = new Date().getFullYear()
266
+ this.oneShow =false
267
+ }
268
+ },
269
+ async selfSearch (args) {
270
+ let f_orgstr = this.orgCondtionStr
271
+ if(!this.orgCondtionStr){
272
+ f_orgstr = 'and f_orgid = ' + this.$login.f.orgid
273
+ }
274
+ args.condition = `${args.condition} ` + f_orgstr
275
+ await this.model.search(args.condition, args.model)
276
+
277
+ this.sumsmodel = this.$refs.paged.$refs.grid.model.sums
278
+ console.log('计算合计。', this.sumsmodel)
279
+ if (this.$refs.paged.$refs.grid.model.rows.length === 0) {
280
+ for (let key in this.sumsmodel) {
281
+ this.sumsmodel[key] = 0
282
+ }
283
+ }
284
+ this.$dispatch('getdata', this.sumsmodel)
285
+ },
286
+ clear(){
287
+ //清空部门和人员
288
+ this.$refs.paged.$refs.cri.$refs.sel.$children[1].selectres = []
289
+ //部门和人员变为全选
290
+ this.$refs.paged.$refs.cri.$refs.sel.$children[1].$children[0].isSelectAll = false
291
+ this.$refs.paged.$refs.cri.$refs.sel.$children[2].$children[0].isSelectAll = false
292
+ Object.keys(this.$refs.paged.$refs.cri.model).forEach((key) => {
293
+ this.$refs.paged.$refs.cri.model[key] = ''
294
+ })
295
+ },
296
+ show(){
297
+ this.criteriaShow = true
298
+ },
299
+ hidden(){
300
+ this.criteriaShow = false
301
+ },
302
+ getRes(condition,obj) {
303
+ this.orgCondtionStr = condition
304
+ this.orgname = obj.orgnames[0]
305
+ this.depname = obj.depnames[0]
306
+ }
307
+ },
308
+ watch:{
309
+ 'all' (val) {
310
+ if (val) {
311
+ this.modelval = this.bodyData
312
+ } else {
313
+ this.modelval = defaultPrint.config
314
+ this.put()
315
+ }
316
+ },
317
+ sumsmodel:{
318
+ handler: function(val) {
319
+ this.getotherfooter();
320
+ },
321
+ deep: true
322
+ },
323
+ 'modelval.length' () {
324
+ this.put()
325
+ },
326
+ },
327
+ computed:{
328
+ getCondition(){
329
+ return {condition: `${this.$refs.paged.$refs.cri.condition}`+this.orgCondtionStr,YeadDate:`${this.$refs.paged.$refs.cri.model.YeadDate}`
330
+ ,f_begin_operate_date:`${this.$refs.paged.$refs.cri.model.f_begin_operate_date}`,f_end_operate_date:`${this.$refs.paged.$refs.cri.model.f_end_operate_date}`,f_meter_type:`${this.$refs.paged.$refs.cri.model.f_meter_type}` }
331
+ },
332
+ getfield(){
333
+ return exportConfig.yearByUserConfig
334
+ },
335
+ userstates () {
336
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('用户状态')]
337
+ },
338
+ sliceArea () {
339
+ let rs = new Array()
340
+ for (let i = 0; i < this.$login.f.f_allArea.length; i++) {
341
+ let temp = {
342
+ label: this.$login.f.f_allArea[i].label,
343
+ value: this.$login.f.f_allArea[i].label
344
+ }
345
+ rs.push(temp)
346
+ }
347
+ return [{label: '全部', value: ''}, ...rs]
348
+ }
349
+ }
350
+ }
351
+ </script>