manage-client 3.3.68 → 3.3.70

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": "3.3.68",
3
+ "version": "3.3.70",
4
4
  "description": "经营管控模块前台组件",
5
5
  "main": "src/index.js",
6
6
  "directories": {
@@ -217,11 +217,22 @@ import {DataModel, HttpResetClass} from 'vue-client'
217
217
  this.operatorname = this.userresid.filter(x => x.value ==val).map(x=>x.label).toString()
218
218
  console.log('dep',this.operatorname )
219
219
  },
220
+ getParamStr (array) {
221
+ let stringValue = ''
222
+ for (let i = 0; i < array.length; i++) {
223
+ if (i === array.length - 1) {
224
+ stringValue = stringValue + "'" + array[i] + "'"
225
+ } else {
226
+ stringValue = stringValue + "'" + array[i] + "',"
227
+ }
228
+ }
229
+ return stringValue
230
+ },
220
231
  selfSearch (args) {
221
232
  this.printTime = this.$login.toStandardTimeString()
222
233
  let orgcondition = '1=1'
223
234
  if (this.f_orgid[0]) {
224
- orgcondition += ` and f_orgid in ('${this.f_orgid}')`
235
+ orgcondition += ` and f_orgid in (${this.getParamStr(this.f_orgid)})`
225
236
  }
226
237
 
227
238
  this.$refs.paged.$refs.criteria.model.f_orgid = orgcondition
@@ -450,6 +450,16 @@
450
450
  if(this.meter_classify == '物联网表'){
451
451
  this.model.url= 'rs/sql/getwulw_listgas'
452
452
  }
453
+ if (this.meter_classify == '卡表') {
454
+ if (!this.$refs.paged.$refs.cri.model.sellcishumin && !this.$refs.paged.$refs.cri.model.sellcishumax) {
455
+ args.condition = args.condition + "and sellcishu > 0"
456
+ }
457
+ }
458
+ if (this.meter_classify == '机表') {
459
+ if (!this.$refs.paged.$refs.cri.model.handsellcishumin && !this.$refs.paged.$refs.cri.model.handsellcishumax) {
460
+ args.condition = args.condition + "and sellcishu > 0"
461
+ }
462
+ }
453
463
  console.log(this.$login.f)
454
464
  if(this.$refs.paged.$refs.cri.model.startDate){
455
465
  this.model.params.startDate = `'${this.$refs.paged.$refs.cri.model.startDate} 00:00:00' `
@@ -314,7 +314,7 @@ export default{
314
314
  'f_last_tablebase': '上期底数', 'f_tablebase': '本期底数', 'f_oughtamount': '用气量', 'overdue': '违约金', 'f_oughtfee': '用气金额', 'f_debt_money': '已交金额',
315
315
  'f_actual_arrears': '欠费金额', 'f_balance': '上期余额', 'f_curbalance': '本期余额',
316
316
  'f_accounts_state': '下账状态', 'f_operate_date': '收费时间', 'f_inputtor': '抄表员', 'f_book_slice_area': '表册片区',
317
- 'f_hand_date': '下发日期', 'f_input_date': '录入日期', 'f_audit_date': '审核日期','f_meter_state': '抄表状态', 'f_hand_state': '记录状态',
317
+ 'f_hand_date': '下发日期', 'f_input_person': '录入人员', 'f_input_date': '录入日期', 'f_audit_date': '审核日期','f_meter_state': '抄表状态', 'f_hand_state': '记录状态',
318
318
  'f_operator': '操作员', 'f_depname': '部门', 'f_orgname': '公司', 'f_surplus_gas': '剩余气量', 'f_haircut_gas': '扣减气量',
319
319
  'f_stair1amount': '一阶气量', 'f_stair1price': '一阶单价', 'f_stair1fee': '一阶气费',
320
320
  'f_stair2amount': '二阶气量', 'f_stair2price': '二阶单价', 'f_stair2fee': '二阶气费',
@@ -3,7 +3,7 @@ import Vue from 'vue'
3
3
 
4
4
  export default function () {
5
5
  // 气量年比
6
- Vue.component('use-gas-year-ratio', (resolve) => { require(['./GasYearRatioQuery'], resolve) })
6
+ Vue.component('use-gas-year-ratio', (resolve) => { require(['./useGasYearRatioQuery'], resolve) })
7
7
  // 发票查询
8
8
  Vue.component('invoice-details-query', (resolve) => { require(['./InvoiceDetailsQuery.vue'], resolve) })
9
9
  // 业务查询
@@ -0,0 +1,463 @@
1
+ <template>
2
+ <div id="unit" class="flex-row">
3
+ <div class="basic-main" @keyup.enter="search">
4
+ <div class="flex">
5
+ <criteria-paged :model="model" v-ref:paged>
6
+ <criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:cri>
7
+ <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
8
+ <div class="row">
9
+ <div class="col-sm-2 form-group">
10
+ <label class="font_normal_body">客户编号</label>
11
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_userinfo_code"
12
+ condition="f_userinfo_code = '{}' " placeholder="客户编号">
13
+ </div>
14
+ <div class="col-sm-2 form-group">
15
+ <label class="font_normal_body">客户名称</label>
16
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_user_name"
17
+ condition="f_user_name = '{}'" placeholder="客户名称">
18
+ </div>
19
+ <div class="col-sm-2 form-group">
20
+ <label class="font_normal_body">客户地址</label>
21
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_address"
22
+ condition="f_address like '%{}%'" placeholder='客户地址'>
23
+ </div>
24
+ <div class="col-sm-2 form-group">
25
+ <label class="font_normal_body">&nbsp;&nbsp;&nbsp;小区&nbsp;&nbsp;&nbsp;</label>
26
+ <v-select :value.sync="model.f_residential_area"
27
+ v-model="model.f_residential_area"
28
+ style="width: 60%"
29
+ multiple
30
+ condition="f_residential_area in {}"
31
+ :options='$parent.$parent.residentialArea' placeholder='选择小区'
32
+ close-on-select>
33
+
34
+ </v-select>
35
+ </div>
36
+ <div class="span" style="float:right;">
37
+ <button class="button_search button_spacing" @click="search()">查询</button>
38
+ <button class="button_clear button_spacing" @click="$parent.$parent.clear()">清空</button>
39
+
40
+ <button class="button_clear button_spacing" style="margin-top: 10px;background-color: #6aa6e2;" @click="$parent.$parent.downloadFiles()">导出</button>
41
+ <div style="float: right" class="button_spacing"
42
+ :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
43
+ @click="$parent.$parent.hidden()"></div>
44
+
45
+ </div>
46
+ </div>
47
+ <div class="row" v-show="$parent.$parent.criteriaShow">
48
+ <res-select-group :show-component="$parent.$parent.resshow" :initres="$parent.$parent.initres"
49
+ :cascade=true @re-res="$parent.$parent.getRes" v-ref:sel></res-select-group>
50
+
51
+ <div class="col-sm-2 form-group">
52
+ <label class="control-label">查询年份</label>
53
+ <v-select
54
+ placeholder='查询年份'
55
+ :value.sync="model.searchyear"
56
+ v-model="model.searchyear"
57
+ :value-single="true"
58
+ :options='$parent.$parent.years'
59
+ close-on-select >
60
+ </v-select>
61
+ </div>
62
+ <div class="col-sm-2 form-group">
63
+ <label class="control-label">对比年份</label>
64
+ <v-select
65
+ placeholder='查询年份'
66
+ :value.sync="model.compareyear"
67
+ v-model="model.compareyear"
68
+ :value-single="true"
69
+ :options='$parent.$parent.years'
70
+ close-on-select >
71
+ </v-select>
72
+ </div>
73
+ <div class="col-sm-2 form-group">
74
+ <label class="font_normal_body">&nbsp;&nbsp;&nbsp;表号&nbsp;&nbsp;&nbsp;</label>
75
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_meternumber"
76
+ condition="f_meternumber like '%{}%'" placeholder="表号">
77
+ </div>
78
+ <div class="col-sm-2 form-group">
79
+ <label class="font_normal_body">客户类型</label>
80
+ <v-select :value.sync="model.f_user_type"
81
+ @change="$parent.$parent.userTypeChange()"
82
+ :options='$parent.$parent.usertypes' placeholder='请选择' v-model="model.f_user_type"
83
+ condition="f_user_type = '{}'"
84
+ close-on-select></v-select>
85
+ </div>
86
+ <div class="col-sm-2 form-group">
87
+ <label class="font_normal_body">用气性质</label>
88
+ <v-select :value.sync="model.f_gasproperties" v-model="model.f_gasproperties"
89
+ :options='$parent.$parent.gasproperties' placeholder='请选择'
90
+ condition="f_gasproperties = '{}'"
91
+ close-on-select></v-select>
92
+ </div>
93
+ <div class="col-sm-2 form-group">
94
+ <label class="font_normal_body">气表品牌</label>
95
+ <v-select :value.sync="model.f_meter_brand"
96
+ v-model="model.f_meter_brand"
97
+ :options='$parent.$parent.meterbrands' placeholder='请选择'
98
+ condition="f_meter_brand = '{}'"
99
+ close-on-select></v-select>
100
+ </div>
101
+ <div class="col-sm-2 form-group">
102
+ <label class="font_normal_body">气表型号</label>
103
+ <v-select :value.sync="model.f_meter_type"
104
+ :options='$parent.$parent.meterStyle' placeholder='请选择' v-model="model.f_meter_style"
105
+ condition="f_meter_type = '{}'"
106
+ close-on-select></v-select>
107
+ </div>
108
+ <div class="col-sm-2 form-group">
109
+ <label class="font_normal_body">抄&nbsp;&nbsp;表&nbsp;员</label>
110
+ <v-select :value.sync="model.f_inputtor"
111
+ v-model="model.f_inputtor"
112
+ :options='$parent.$parent.inputtores' placeholder='请选择'
113
+ condition="f_inputtor = '{}'"
114
+ close-on-select>
115
+ </v-select>
116
+ </div>
117
+ </div>
118
+ </div>
119
+ </criteria>
120
+
121
+ <data-grid :model="model" partial='list' class="list_area table_sy" style="height: 95%" v-ref:grid>
122
+ <template partial='head'>
123
+ <tr>
124
+ <th colspan="10" style="text-align: center;"><nobr>用户信息</nobr></th>
125
+ <th colspan="12" style="text-align: center;"><nobr>查询年份</nobr></th>
126
+ <th colspan="12" style="text-align: center;"><nobr>对比年份</nobr></th>
127
+ </tr>
128
+ <tr>
129
+ <th style="text-align: center;">
130
+ <nobr>用户编号</nobr>
131
+ </th>
132
+ <th style="text-align: center;">
133
+ <nobr>姓名</nobr>
134
+ </th>
135
+ <th style="text-align: center;">
136
+ <nobr>地址</nobr>
137
+ </th>
138
+ <th style="text-align: center;">
139
+ <nobr>联系方式</nobr>
140
+ </th>
141
+ <th style="text-align: center;">
142
+ <nobr>用户类型</nobr>
143
+ </th>
144
+ <th style="text-align: center;">
145
+ <nobr>用户性质</nobr>
146
+ </th>
147
+ <th style="text-align: center;">
148
+ <nobr>气表品牌</nobr>
149
+ </th>
150
+ <th style="text-align: center;">
151
+ <nobr>气表厂家</nobr>
152
+ </th>
153
+ <th style="text-align: center;">
154
+ <nobr>表号</nobr>
155
+ </th>
156
+ <th style="text-align: center;">
157
+ <nobr>抄表员</nobr>
158
+ </th>
159
+ <th style="text-align: center;">
160
+ <nobr>一月</nobr>
161
+ </th>
162
+ <th style="text-align: center;">
163
+ <nobr>二月</nobr>
164
+ </th>
165
+ <th style="text-align: center;">
166
+ <nobr>三月</nobr>
167
+ </th>
168
+ <th style="text-align: center;">
169
+ <nobr>四月</nobr>
170
+ </th>
171
+ <th style="text-align: center;">
172
+ <nobr>五月</nobr>
173
+ </th>
174
+ <th style="text-align: center;">
175
+ <nobr>六月</nobr>
176
+ </th>
177
+ <th style="text-align: center;">
178
+ <nobr>七月</nobr>
179
+ </th>
180
+ <th style="text-align: center;">
181
+ <nobr>八月</nobr>
182
+ </th>
183
+ <th style="text-align: center;">
184
+ <nobr>九月</nobr>
185
+ </th>
186
+ <th style="text-align: center;">
187
+ <nobr>十月</nobr>
188
+ </th>
189
+ <th style="text-align: center;">
190
+ <nobr>十一月</nobr>
191
+ </th>
192
+ <th style="text-align: center;">
193
+ <nobr>十二月</nobr>
194
+ </th>
195
+ <th style="text-align: center;">
196
+ <nobr>一月</nobr>
197
+ </th>
198
+ <th style="text-align: center;">
199
+ <nobr>二月</nobr>
200
+ </th>
201
+ <th style="text-align: center;">
202
+ <nobr>三月</nobr>
203
+ </th>
204
+ <th style="text-align: center;">
205
+ <nobr>四月</nobr>
206
+ </th>
207
+ <th style="text-align: center;">
208
+ <nobr>五月</nobr>
209
+ </th>
210
+ <th style="text-align: center;">
211
+ <nobr>六月</nobr>
212
+ </th>
213
+ <th style="text-align: center;">
214
+ <nobr>七月</nobr>
215
+ </th>
216
+ <th style="text-align: center;">
217
+ <nobr>八月</nobr>
218
+ </th>
219
+ <th style="text-align: center;">
220
+ <nobr>九月</nobr>
221
+ </th>
222
+ <th style="text-align: center;">
223
+ <nobr>十月</nobr>
224
+ </th>
225
+ <th style="text-align: center;">
226
+ <nobr>十一月</nobr>
227
+ </th>
228
+ <th style="text-align: center;">
229
+ <nobr>十二月</nobr>
230
+ </th>
231
+
232
+ </tr>
233
+ </template>
234
+ <template partial='body'>
235
+ <tr style="position: relative" class="table-bordered">
236
+ <td style="text-align: center;">{{ row.f_userinfo_code }}</td>
237
+ <td style="text-align: center;">{{ row.f_user_name }}</td>
238
+ <td style="text-align: center;">{{ row.f_address }}</td>
239
+ <td style="text-align: center;">{{ row.f_user_phone }}</td>
240
+ <td style="text-align: center;">{{ row.f_user_type }}</td>
241
+ <td style="text-align: center;">{{ row.f_gasproperties }}</td>
242
+ <td style="text-align: center;">{{ row.f_meter_brand }}</td>
243
+ <td style="text-align: center;">{{ row.f_manufacturers }}</td>
244
+ <td style="text-align: center;">{{ row.f_meternumber }}</td>
245
+ <td style="text-align: center;">{{ row.f_inputtor }}</td>
246
+ <td style="text-align: center;">{{ row.jan }}</td>
247
+ <td style="text-align: center;">{{ row.feb }}</td>
248
+ <td style="text-align: center;">{{ row.mar }}</td>
249
+ <td style="text-align: center;">{{ row.apr }}</td>
250
+ <td style="text-align: center;">{{ row.may }}</td>
251
+ <td style="text-align: center;">{{ row.jun }}</td>
252
+ <td style="text-align: center;">{{ row.jul }}</td>
253
+ <td style="text-align: center;">{{ row.jug }}</td>
254
+ <td style="text-align: center;">{{ row.sep }}</td>
255
+ <td style="text-align: center;">{{ row.oct }}</td>
256
+ <td style="text-align: center;">{{ row.nov }}</td>
257
+ <td style="text-align: center;">{{ row.dec }}</td>
258
+ <td style="text-align: center;">{{ row.jan1 }}</td>
259
+ <td style="text-align: center;">{{ row.feb1 }}</td>
260
+ <td style="text-align: center;">{{ row.mar1 }}</td>
261
+ <td style="text-align: center;">{{ row.apr1 }}</td>
262
+ <td style="text-align: center;">{{ row.may1 }}</td>
263
+ <td style="text-align: center;">{{ row.jun1 }}</td>
264
+ <td style="text-align: center;">{{ row.jul1 }}</td>
265
+ <td style="text-align: center;">{{ row.jug1 }}</td>
266
+ <td style="text-align: center;">{{ row.sep1 }}</td>
267
+ <td style="text-align: center;">{{ row.oct1 }}</td>
268
+ <td style="text-align: center;">{{ row.nov1 }}</td>
269
+ <td style="text-align: center;">{{ row.dec1 }}</td>
270
+ </tr>
271
+ </template>
272
+ <template partial='foot'></template>
273
+ </data-grid>
274
+ </criteria-paged>
275
+ </div>
276
+ </div>
277
+ </div>
278
+ </template>
279
+
280
+ <script>
281
+ import {HttpResetClass, PagedList} from 'vue-client'
282
+ import exportConfig from './config/exportConfig'
283
+
284
+ let readySomething = async function (self) {
285
+ await self.$MagLoadParams.loadParam()
286
+ self.initParams()
287
+ }
288
+ export default {
289
+ props: ['data'],
290
+ title: '气量年比查询',
291
+ data () {
292
+ return {
293
+ model: new PagedList('rs/sql/useGasYearRatioQuery', 50, {
294
+ searchyear: 'this.model.searchyear',
295
+ compareyear: 'this.model.compareyear'
296
+ }),
297
+ years:[],
298
+ other: [],
299
+ orgCondtionStr: '',
300
+ resshow: ['company'],
301
+ initres: {
302
+ org: [this.$login.f.orgid]
303
+ },
304
+ meterbrands: [],
305
+ inputtores: [{label: '全部',value: ''}],
306
+ criteriaShow: false,
307
+ condition: '',
308
+ //小区
309
+ residentialArea: []
310
+ }
311
+ },
312
+ ready () {
313
+ let year = new Date().getFullYear()
314
+ this.$refs.paged.$refs.cri.model.searchyear = year
315
+ this.$refs.paged.$refs.cri.model.compareyear = year-1
316
+ this.years = [];
317
+ for (let i = 0; i < 30; i++) {
318
+ this.years.push({ value: year - i, label: year - i });
319
+ }
320
+ // this.$refs.paged.$refs.cri.model.stratDate = `'${searchyear}-01-01 00:00:00'`
321
+ // this.$refs.paged.$refs.cri.model.endDate = `'${searchyear}-12-31 23:59:59'`
322
+ // this.$refs.paged.$refs.cri.model.comparestratDate = `'${compareyear}-01-01 00:00:00'`
323
+ // this.$refs.paged.$refs.cri.model.compareendDate = `'${compareyear}-12-31 23:59:59'`
324
+ //加载抄表册
325
+ this.$MagGetSaleParam.initinputtor()
326
+ this.getinputtores()
327
+ this.getaddress()
328
+ readySomething(this).then(() => {
329
+ this.$emit('ready')
330
+ }).catch((error) => {
331
+ this.$emit('error', error)
332
+ })
333
+ },
334
+ methods: {
335
+ async downloadFiles() {
336
+ if (this.getCondition) {
337
+ let data = {
338
+ sqlName: 'useGasYearRatioQuery',
339
+ condition: this.getCondition,
340
+ fileName: '气量年比'
341
+ }
342
+ let HttpReset = new HttpResetClass()
343
+ let res = await HttpReset.load('POST', 'rs/deviceExport/gasDevices', {
344
+ data: data
345
+ }, {resolveMsg: null, rejectMsg: null})
346
+ if (res){
347
+ let downurl = 'rs/deviceExport/download?filename=气量年比.xlsx';
348
+ this.$resetget(downurl, {}).then(res => {
349
+ var link = document.createElement('a');
350
+ link.target = "_blank"
351
+ link.href = downurl;
352
+ link.setAttribute("download", "气量年比.xlsx"); //指定下载后的文件名,防跳转
353
+ document.body.appendChild(link);
354
+ link.click();
355
+ })
356
+ }
357
+ } else {
358
+ this.$showAlert('查询条件为空,请查询后再导出', 'warning', 3000)
359
+ return
360
+ }
361
+ },
362
+ async getaddress(){
363
+ let HttpReset = new HttpResetClass()
364
+ var data = await HttpReset.load('POST', 'rs/sql/manage_getarealist', {
365
+ data: {
366
+ condition: `1=1 and s.f_orgid = '${this.$login.f.orgid}'`
367
+ }
368
+ }, {resolveMsg: null, rejectMsg: '获取小区失败!'})
369
+ let house = [{label: '全部', value: ''}]
370
+ for (let row of data.data){
371
+ house.push({label: row.f_residential_area, value: row.f_residential_area})
372
+ }
373
+ this.residentialArea = house
374
+ },
375
+ async getinputtores () {
376
+ // 获取抄表员
377
+ let rs = []
378
+ if (this.$login.f.f_gasman.length > 0) {
379
+ for (let i = 0; i < this.$login.f.f_gasman.length; i++) {
380
+ let temp = {
381
+ label: this.$login.f.f_gasman[i].name,
382
+ value: this.$login.f.f_gasman[i].name
383
+ }
384
+ rs.push(temp)
385
+ }
386
+ }
387
+ this.inputtores = [{label: '全部', value: ''}, ...rs]
388
+ },
389
+ cancel () {
390
+ this.show = false
391
+ },
392
+ userTypeChange () {
393
+ this.gasproperties = []
394
+ if (this.$refs.paged.$refs.cri.model !== null) {
395
+ this.$refs.paged.$refs.cri.model.f_gasproperties = ''
396
+ this.gasproperties = this.$appdata.getParam(this.$refs.paged.$refs.cri.model.f_user_type[0])
397
+ } else {
398
+ this.gasproperties = [{label: '全部', value: ''}]
399
+ }
400
+ },
401
+ initParams () {
402
+ // 初始化气表品牌
403
+ let brandArr = []
404
+ this.$MagGetSaleParam.getGasbrand().forEach((item) => {
405
+ let temp = {}
406
+ temp.label = item.label
407
+ temp.value = item.value.f_meter_brand
408
+ brandArr.push(temp)
409
+ })
410
+ this.meterbrands = [{label: '全部', value: ''}, ...brandArr]
411
+ //初始化气表价格
412
+ this.prices = this.$MagGetSaleParam.getPrices()
413
+ },
414
+ search () {
415
+ this.$refs.paged.$refs.cri.search()
416
+ },
417
+ selfSearch (args) {
418
+ let f_orgstr = this.orgCondtionStr
419
+ args.condition = `${args.condition} ` + f_orgstr
420
+ this.condition = args.condition
421
+ this.model.search(args.condition, args.model)
422
+ },
423
+ clear () {
424
+ Object.keys(this.$refs.paged.$refs.cri.model).forEach((key) => {
425
+ this.$refs.paged.$refs.cri.model[key] = []
426
+ })
427
+ },
428
+ show () {
429
+ this.criteriaShow = true
430
+ },
431
+ hidden () {
432
+ this.criteriaShow = !this.criteriaShow
433
+ },
434
+ async getRes (condition, obj) {
435
+ this.orgCondtionStr = condition
436
+ this.orgname = obj.orgnames[0]
437
+ },
438
+ },
439
+ events: {},
440
+ watch: {},
441
+ computed: {
442
+ getfield () {
443
+ return exportConfig.useGasyearRatioConfig
444
+ },
445
+ getCondition () {
446
+ return {
447
+ compareyear: this.$refs.paged.$refs.cri.model.compareyear,
448
+ searchyear: this.$refs.paged.$refs.cri.model.searchyear,
449
+ condition: this.condition
450
+ }
451
+ },
452
+ usertypes () {
453
+ return [{label: ' 全部 ', value: ''}, ...this.$appdata.getParam('用户类型')]
454
+ },
455
+ meterStyle () {
456
+ return [{label: ' 全部 ', value: ''}, ...this.$appdata.getParam('燃气表型号')]
457
+ },
458
+
459
+
460
+ }
461
+ }
462
+ </script>
463
+