manage-client 4.1.97 → 4.1.98-lyls

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 (38) hide show
  1. package/build/dev-server.js +24 -6
  2. package/package.json +3 -3
  3. package/src/components/DataGrid.vue +483 -0
  4. package/src/components/webmeter/instruction/NewQueryInstructHistory.vue +14 -9
  5. package/src/filiale/WEINAN/BankManager.vue +175 -144
  6. package/src/filiale/WEINAN/BusinessManage.vue +3 -0
  7. package/src/filiale/WEINAN/businessquery/abnormalQuery.vue +500 -0
  8. package/src/filiale/WEINAN/sale.js +2 -0
  9. package/src/filiale/kelai/NewGasStatistics.vue +98 -26
  10. package/src/filiale/liaoyuan/HandplanQuery.vue +1 -1
  11. package/src/filiale/ruihua/config/exportConfig.js +1 -0
  12. package/src/filiale/tongchuan/GasInspection.vue +18 -7
  13. package/src/filiale/tongchuan/InspectListGas.vue +11 -5
  14. package/src/filiale/tongchuan/InspectListUser.vue +22 -6
  15. package/src/filiale/tongchuan/RecordInfoQuery.vue +1 -1
  16. package/src/filiale/tongchuan/ResSelectGroupNew.vue +16 -12
  17. package/src/filiale/tongchuan/RightTree.vue +357 -0
  18. package/src/filiale/tongchuan/utils/LdapHelper.js +75 -0
  19. package/src/filiale/xinkang/reportManage.js +4 -0
  20. package/src/filiale/xinkang/xKGasUsageSummaryNew.vue +176 -0
  21. package/src/filiale/xinkang/xKGasUserSellingGasNew.vue +176 -0
  22. package/src/filiale/yangchun/NewGasStatistics.vue +2 -1
  23. package/.gradle/7.4/checksums/checksums.lock +0 -0
  24. package/.gradle/7.4/dependencies-accessors/dependencies-accessors.lock +0 -0
  25. package/.gradle/7.4/dependencies-accessors/gc.properties +0 -0
  26. package/.gradle/7.4/executionHistory/executionHistory.lock +0 -0
  27. package/.gradle/7.4/fileChanges/last-build.bin +0 -0
  28. package/.gradle/7.4/fileHashes/fileHashes.lock +0 -0
  29. package/.gradle/7.4/gc.properties +0 -0
  30. package/.gradle/8.5/checksums/checksums.lock +0 -0
  31. package/.gradle/8.5/dependencies-accessors/dependencies-accessors.lock +0 -0
  32. package/.gradle/8.5/dependencies-accessors/gc.properties +0 -0
  33. package/.gradle/8.5/executionHistory/executionHistory.bin +0 -0
  34. package/.gradle/8.5/executionHistory/executionHistory.lock +0 -0
  35. package/.gradle/8.5/fileChanges/last-build.bin +0 -0
  36. package/.gradle/8.5/fileHashes/fileHashes.bin +0 -0
  37. package/.gradle/8.5/fileHashes/fileHashes.lock +0 -0
  38. package/.gradle/8.5/gc.properties +0 -0
@@ -1,6 +1,6 @@
1
1
  <template lang="html">
2
2
  <div id="charts">
3
- <div id="bm" :style="{width:'100%',height:'100%'}"></div>
3
+ <div id="instruct" :style="{width:'100%',height:'100%'}"></div>
4
4
  </div>
5
5
  </template>
6
6
 
@@ -8,162 +8,193 @@
8
8
  import * as Util from '../../Util'
9
9
  import co from 'co'
10
10
  import echarts from 'echarts'
11
- import {HttpResetClass } from 'vue-client'
11
+ import {HttpResetClass} from 'vue-client'
12
12
 
13
- let getData = function * (self) {
14
- let load = new HttpResetClass() //qibiao-shouqi
15
- load.load('POST', 'api/af-revenue/sql/qibiao-shouqi',
16
- {data: {startDate: self.startdate, endDate: self.enddate, f_orgid: `f_orgid = ${self.orgid}`,condition: '1=1'}},
17
- {resolveMsg: null, rejectMsg: null})
18
- .then((res) => {
19
- self.texttile = '用户类型'
20
- // let arrparams = []
21
- console.log('获取数据。。', res.data)
22
- let meter = Array.from(new Set(res.data.map(x => x.biaoleixing)))
23
- let jmeter = []
24
- let qkmeter = []
25
- let jkmeter = []
26
- let webmeter = []
27
- jmeter.push(res.data.filter(x => x.biaoleixing === '机表').map(item => item.yongqi).reduce((x, y) => x + y, 0).toFixed(2))
28
- jmeter.push(res.data.filter(x => x.biaoleixing === '机表').map(item => item.jine).reduce((x, y) => x+y, 0).toFixed(2))
29
-
30
- qkmeter.push(res.data.filter(x => x.biaoleixing === '气量卡表').map(item => item.yongqi).reduce((x, y) => x + y, 0).toFixed(2))
31
- qkmeter.push(res.data.filter(x => x.biaoleixing === '气量卡表').map(item => item.jine).reduce((x, y) => x+y, 0).toFixed(2))
32
-
33
- jkmeter.push(res.data.filter(x => x.biaoleixing === '金额卡表').map(item => item.yongqi).reduce((x, y) => x + y, 0).toFixed(2))
34
- jkmeter.push(res.data.filter(x => x.biaoleixing === '金额卡表').map(item => item.jine).reduce((x, y) => x+y, 0).toFixed(2))
35
-
36
- webmeter.push(res.data.filter(x => x.biaoleixing === '物联网表').map(item => item.yongqi).reduce((x, y) => x + y, 0).toFixed(2))
37
- webmeter.push(res.data.filter(x => x.biaoleixing === '物联网表').map(item => item.jine).reduce((x, y) => x+y, 0).toFixed(2))
38
-
39
- self.set(meter, jmeter, qkmeter, jkmeter, webmeter)
13
+ let getData = function* (self) {
14
+ let load = new HttpResetClass()
15
+ load.load('POST', 'api/af-revenue/sql/manage_homeInstructQuery', {
16
+ data: {
17
+ startDate: self.getStartOfRecentFiveDays() + ' 00:00:00',
18
+ endDate: Util.toStandardDateString() + ' 23:59:59',
19
+ f_orgid: self.orgid,
20
+ condition: '1=1'
21
+ }
22
+ }, {
23
+ resolveMsg: null,
24
+ rejectMsg: null
25
+ }).then((res) => {
26
+ let data = res.data
27
+ // 表型
28
+ let xPro = data.map(x => x.f_meter_brand)
29
+ console.log('表型', xPro)
30
+ let f_total_num = data.map(x => x.f_total_num)
31
+ let f_success_num = data.map(x => x.f_success_num)
32
+ let f_failure_num = data.map(x => x.f_failure_num)
33
+ self.set(xPro, f_total_num, f_success_num, f_failure_num)
40
34
  })
41
35
  }
42
36
  export default {
43
37
  props: {
44
- startdate: {
45
- type: String,
46
- default: Util.toStandardDateString()
47
- },
48
- enddate: {
49
- type: String,
50
- default: Util.toStandardDateString()
51
- },
52
38
  orgid: {
53
39
  type: String
54
40
  }
55
- },
56
- data () {
57
- title: '气表售气量'
58
- return {
59
- texttile: '',
60
- xc: '',
61
-
62
- minyongvalue: [],
63
- feiminyongvalue: []
64
- }
65
- },
66
- methods: {
67
- set (meter, jmeter, qkmeter, jkmeter, webmeter) {
68
- this.xc = echarts.init(document.getElementById('bm'))
69
- this.xc.setOption({
70
- title : {
71
- text: '气表售气量',
72
- subtext: '数据查询来源',
73
- x: 'left'
74
- },
75
- tooltip : {
76
- trigger: 'axis'
77
- },
78
- legend: {
79
- x: 'left',
80
- y: 'bottom',
81
- data: meter
82
- },
83
- toolbox: {
84
- show : true,
85
- feature : {
86
- dataView : {show: true, readOnly: false},
87
- magicType : {show: true, type: ['line', 'bar']},
88
- restore : {show: true},
89
- saveAsImage : {show: true}
90
- }
91
- },
92
- calculable : true,
93
- xAxis : [
94
- {
95
- type : 'category',
96
- data : ['气量','金额']
97
- }
98
- ],
99
- yAxis : [
100
- {
101
- type : 'value'
102
- }
103
- ],
104
- series : [
105
- {
106
- name: '机表',
107
- type: 'bar',
108
- data: jmeter,
109
- markLine : {
110
- data : [
111
- {type : 'average', name: '平均值'}
112
- ]
113
- }
41
+ },
42
+ data () {
43
+ return {
44
+ texttile: '',
45
+ xc: '',
46
+ resizeHandler: null // 存储resize监听函数,方便销毁
47
+ }
48
+ },
49
+ methods: {
50
+ getStartOfRecentFiveDays (returnRaw = false) {
51
+ const today = new Date()
52
+ const startDate = new Date(today)
53
+ startDate.setDate(today.getDate() - 4)
54
+ if (returnRaw) {
55
+ return startDate
56
+ }
57
+ const year = startDate.getFullYear()
58
+ const month = String(startDate.getMonth() + 1).padStart(2, '0')
59
+ const day = String(startDate.getDate()).padStart(2, '0')
60
+ return `${year}-${month}-${day}`
61
+ },
62
+ set (arrparams, f_total_num, f_success_num, f_failure_num) {
63
+ this.xc = echarts.init(document.getElementById('instruct'))
64
+ this.xc.setOption({
65
+ title: {
66
+ text: '近五天指令执行情况',
67
+ subtext: '数据查询来源',
68
+ x: 'left'
114
69
  },
115
- {
116
- name:'气量卡表',
117
- type:'bar',
118
- data: qkmeter,
119
- markLine : {
120
- data : [
121
- {type : 'average', name : '平均值'}
122
- ]
123
- }
70
+ tooltip: {
71
+ trigger: 'axis'
124
72
  },
125
- {
126
- name:'金额卡表',
127
- type:'bar',
128
- data: jkmeter,
129
- markLine : {
130
- data : [
131
- {type : 'average', name : '平均值'}
132
- ]
73
+ legend: {
74
+ x: 'center', // 图例居中,避免左侧挤压
75
+ y: 'bottom',
76
+ padding: [0, 0, 10, 0], // 底部预留padding,防止文字截断
77
+ textStyle: {
78
+ fontSize: 12
79
+ },
80
+ data: ['总数', '成功数量', '失败数量']
81
+ },
82
+ toolbox: {
83
+ show: true,
84
+ top: 10, // 工具栏上移,不占用下方空间
85
+ right: 10,
86
+ feature: {
87
+ dataView: {show: true, readOnly: false},
88
+ magicType: {show: true, type: ['line', 'bar']},
89
+ restore: {show: true},
90
+ saveAsImage: {show: true}
133
91
  }
134
92
  },
135
- {
136
- name:'物联网表',
137
- type:'bar',
138
- data: webmeter,
139
- markLine : {
140
- data : [
141
- {type : 'average', name : '平均值'}
142
- ]
93
+ calculable: true,
94
+ xAxis: [
95
+ {
96
+ type: 'category',
97
+ axisLabel: {
98
+ interval: 0,
99
+ rotate: 30, // X轴标签旋转,避免文字重叠
100
+ fontSize: 11, // 缩小X轴文字
101
+ // 文字换行处理(可选,若表型名称过长)
102
+ formatter: function(value) {
103
+ let result = ''
104
+ const len = value.length
105
+ // 每4个字符换一行
106
+ for (let i = 0; i < len; i += 4) {
107
+ result += value.substring(i, i + 4) + '\n'
108
+ }
109
+ return result.trim()
110
+ }
111
+ },
112
+ data: arrparams
113
+ }
114
+ ],
115
+ yAxis: [
116
+ {
117
+ type: 'value',
118
+ axisLabel: {
119
+ fontSize: 11 // 缩小Y轴文字
120
+ }
143
121
  }
122
+ ],
123
+ series: [
124
+ {
125
+ name: '总数',
126
+ type: 'bar',
127
+ data: f_total_num,
128
+ markLine: {
129
+ data: [
130
+ {type: 'average', name: '平均值'}
131
+ ]
132
+ }
133
+ },
134
+ {
135
+ name: '成功数量',
136
+ type: 'bar',
137
+ data: f_success_num,
138
+ markLine: {
139
+ data: [
140
+ {type: 'average', name: '平均值'}
141
+ ]
142
+ }
143
+ },
144
+ {
145
+ name: '失败数量',
146
+ type: 'bar',
147
+ data: f_failure_num,
148
+ markLine: {
149
+ data: [
150
+ {type: 'average', name: '平均值'}
151
+ ]
152
+ }
153
+ }
154
+ ]
155
+ })
156
+ // 绑定resize监听,自适应窗口变化
157
+ this.resizeHandler = () => {
158
+ if (this.xc) {
159
+ this.xc.resize()
144
160
  }
145
- ]
146
- })
147
- },
148
- searchdata () {
149
- let getGen = getData(this)
150
- co(getGen)
151
- }
152
- },
153
- ready () {
154
- this.searchdata()
155
- },
156
- watch: {
157
- 'startdate' (val) {
158
- this.searchdata()
159
- },
160
- 'enddate' (val) {
161
- this.searchdata()
162
- },
163
- 'orgid' (val) {
164
- this.searchdata()
165
- }
166
- }
167
-
161
+ }
162
+ window.addEventListener('resize', this.resizeHandler);
163
+ },
164
+ searchdata () {
165
+ let getGen = getData(this)
166
+ co(getGen)
167
+ }
168
+ },
169
+ ready () {
170
+ this.searchdata()
171
+ },
172
+ watch: {
173
+ 'startdate' (val) {
174
+ this.searchdata()
175
+ },
176
+ 'enddate' (val) {
177
+ this.searchdata()
178
+ },
179
+ 'orgid' (val) {
180
+ this.searchdata()
181
+ }
182
+ },
183
+ // 组件销毁时移除监听,避免内存泄漏
184
+ beforeDestroy() {
185
+ if (this.resizeHandler) {
186
+ window.removeEventListener('resize', this.resizeHandler);
187
+ }
188
+ if (this.xc) {
189
+ this.xc.dispose(); // 销毁ECharts实例
190
+ }
191
+ }
168
192
  }
169
193
  </script>
194
+
195
+ <style scoped>
196
+ /* 可选:若需要额外样式优化可添加 */
197
+ #charts {
198
+ box-sizing: border-box;
199
+ }
200
+ </style>
@@ -45,6 +45,9 @@
45
45
  <tabs header="迁表查询" v-if="permission('迁表查询')">
46
46
  <movemeter-query v-if="show.includes('迁表查询')" @deal-msg="dealMsg" :data="data"></movemeter-query>
47
47
  </tabs>
48
+ <tabs header="异常查询" v-if="permission('业务查询异常查询')">
49
+ <manage-abnormal-query v-if="show.includes('异常查询')" @deal-msg="dealMsg" :data="data"></manage-abnormal-query>
50
+ </tabs>
48
51
  <!-- <tabs header="卡表抄表查询" v-if="permission('卡表抄表查询')">-->
49
52
  <!-- <card-handplan-query v-if="show.includes('卡表抄表查询')" @deal-msg="dealMsg" :data="data"></card-handplan-query>-->
50
53
  <!-- </tabs>-->