manage-client 3.2.263 → 3.2.265

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 (33) hide show
  1. package/build/dev-server.js +180 -180
  2. package/package.json +111 -111
  3. package/src/filiale/kelai/ChargeQuery.vue +1341 -0
  4. package/src/filiale/kelai/sale.js +2 -1
  5. package/src/filiale/ningjin/CallReport/CallReportMainPage.vue +146 -0
  6. package/src/filiale/ningjin/CallReport/DropDownBox.vue +64 -0
  7. package/src/filiale/ningjin/CallReport/IncomingTelegram.vue +187 -0
  8. package/src/filiale/ningjin/CallReport/PercentageComplete.vue +413 -0
  9. package/src/filiale/ningjin/CallReport/PercentageCompleteEchart.vue +150 -0
  10. package/src/filiale/ningjin/CallReport/RateBottom.vue +143 -0
  11. package/src/filiale/ningjin/CallReport/RateTop.vue +144 -0
  12. package/src/filiale/ningjin/CallReport/ScrollContent.vue +143 -0
  13. package/src/filiale/ningjin/CallReport/ServiceStatus.vue +371 -0
  14. package/src/filiale/ningjin/CallReport/SwiperTools.vue +145 -0
  15. package/src/filiale/ningjin/CallReport/SwiperTools2.vue +176 -0
  16. package/src/filiale/ningjin/CallReport/Time.vue +100 -0
  17. package/src/filiale/ningjin/CallReport/Userinfo.vue +69 -0
  18. package/src/filiale/ningjin/CallReport/WeatherData.vue +108 -0
  19. package/src/filiale/ningjin/CallReport/WorkOrderPage.vue +260 -0
  20. package/src/filiale/ningjin/FillCardQuery.vue +581 -0
  21. package/src/filiale/ningjin/GasStatistics.vue +39 -20
  22. package/src/filiale/ningjin/LostContactAnalysisList.vue +676 -0
  23. package/src/filiale/ningjin/ManageBusSummaryPeng.vue +241 -0
  24. package/src/filiale/ningjin/ManageHandSellMoney.vue +247 -0
  25. package/src/filiale/ningjin/ManageSellType.vue +284 -0
  26. package/src/filiale/ningjin/MeterExceptionList.vue +54 -9
  27. package/src/filiale/ningjin/UserLostContactAnalysis.vue +592 -0
  28. package/src/filiale/ningjin/config/exportConfig.js +35 -34
  29. package/src/filiale/ningjin/reportManage.js +6 -1
  30. package/src/filiale/ningjin/sale.js +26 -0
  31. package/src/filiale/ningjin/webmeterManage.js +5 -1
  32. package/src/filiale/wenxi/GasDeviceQuery.vue +975 -0
  33. package/src/filiale/wenxi/sale.js +2 -0
@@ -0,0 +1,144 @@
1
+ <template>
2
+ <div id="echart1" ></div>
3
+
4
+ </template>
5
+
6
+ <script>
7
+ import echarts from "echarts";
8
+ export default {
9
+ name: "RateTop",
10
+ // components: {},
11
+ // props:['row','dat1'],
12
+ data(){
13
+ return {
14
+ netHallData:88, //网厅预约占比
15
+ }
16
+ },
17
+ ready(){
18
+ // console.log(this.row)
19
+ this.RateEchart1()
20
+ },
21
+ mounted(){
22
+ },
23
+ methods:{
24
+
25
+ RateEchart1(){
26
+ let myChart = echarts.init(document.getElementById("echart1"));
27
+ let data = {
28
+ value: this.netHallData,
29
+ name: ''
30
+ };
31
+ let option = {
32
+ // backgroundColor: '#0B2C6F',
33
+ title: {
34
+ text: '{num|' + data.value + '%}',
35
+ subtext: '\n' + data.name,
36
+ x: '49%',
37
+ y: '40%',
38
+ textAlign: 'center',
39
+ textStyle: {
40
+ rich: {
41
+ num: {
42
+ fontWeight: '500',
43
+ color: '#fff',
44
+ fontFamily: '微软雅黑',
45
+ fontSize: 40,
46
+ },
47
+ }
48
+
49
+ },
50
+ subtextStyle: {
51
+ lineHeight: 0,
52
+ fontSize: 22,
53
+ color: '#fff',
54
+
55
+ }
56
+ },
57
+ data: [{
58
+ name: data.name,
59
+ }],
60
+ series: [{ // 主圆环
61
+ name: data.name,
62
+ type: 'pie',
63
+ radius: ['70%', '80%'],
64
+ center:['50%','60%'],
65
+ startAngle: 180,
66
+ endAngle: 0,
67
+
68
+ color: [{
69
+ type: 'linear',
70
+ x: 1,
71
+ y: 0,
72
+ x2: 0,
73
+ y2: 0,
74
+ colorStops: [{
75
+ offset: 0,
76
+ color: 'rgba(255, 205, 0, 1)' // 0% 处的颜色
77
+ }, {
78
+ offset: 1,
79
+ color: 'rgba(255, 205, 0, .1)' // 100% 处的颜色
80
+ }]
81
+ }, 'transparent'],
82
+ hoverAnimation: true,
83
+ legendHoverLink: false,
84
+ z: 10,
85
+ labelLine: {
86
+ normal: {
87
+ show: false
88
+ }
89
+ },
90
+ data: [{
91
+ value: 50 * data.value / 100
92
+ }, {
93
+ value: 100 - (50 * data.value / 100)
94
+ }]
95
+ }, { // 中间圈
96
+ name: '',
97
+ z: 5,
98
+ type: 'pie',
99
+ cursor: 'default',
100
+ radius: ['95%', '95%'],
101
+ center:['50%','60%'],
102
+ startAngle: 180,
103
+ hoverAnimation: false,
104
+ legendHoverLink: false,
105
+ labelLine: {
106
+ normal: {
107
+ show: false
108
+ }
109
+ },
110
+ //上层虚线
111
+ // data: [{
112
+ // value: 50,
113
+ // itemStyle: {
114
+ // // borderColor: '#2DF6F3',
115
+ // borderType: 'dashed',
116
+ // borderWidth: 2,
117
+ // }
118
+ // }, {
119
+ // value: 50,
120
+ // itemStyle: {
121
+ // color: 'transparent'
122
+ // }
123
+ // }]
124
+ }]
125
+ };
126
+ myChart.setOption(option);
127
+
128
+ },
129
+
130
+ }
131
+
132
+ }
133
+ </script>
134
+
135
+ <style scoped>
136
+ #echart1{
137
+ width: 10.417vw;
138
+ height: 18.519vh;
139
+ position: absolute;
140
+ top: 20.556vh;
141
+ right: 1.40625vw;
142
+ }
143
+
144
+ </style>
@@ -0,0 +1,143 @@
1
+ <template>
2
+ <div :data="noticeList" class="seamless-warp" :class-option="optionCustomer">
3
+ <ul class="item">
4
+ <li v-for="item in noticeList">
5
+ <span class="date">{{item.date}}</span>
6
+ <span class="duration" >{{item.duration}}</span>
7
+ <span class="name">{{item.name}}</span>
8
+ <span class="orderType">{{item.orderType}}</span>
9
+ <span class="address">{{item.address}}</span>
10
+ <span class="receptionist">{{item.receptionist}}</span>
11
+ <span class="state">{{item.state}}</span>
12
+ </li>
13
+ </ul>
14
+ </div>
15
+ </template>
16
+
17
+ <script>
18
+ export default {
19
+ name: "ScrollContent",
20
+ // name: "ScrollTest",
21
+ components:{
22
+ // ScrollBase
23
+ },
24
+ props:{
25
+ noticeList:{
26
+ type:Array,
27
+ default:[
28
+ {
29
+ date: "2022-09-01 10:25:06",
30
+ duration:'2min',
31
+ name:'赵王莉',
32
+ orderType:'报修',
33
+ address:'建设小区21号112室',
34
+ receptionist:'候倩楠',
35
+ state:'接听'
36
+ },
37
+ {
38
+ date: "2022-09-01 10:25:06",
39
+ duration:'2.5min',
40
+ name:'林妹妹',
41
+ orderType:'抢险',
42
+ address:'伊水花园21-1-1254',
43
+ receptionist:'马静静',
44
+ state:'待处理'
45
+ },
46
+ {
47
+ date: "2022-09-01 10:25:06",
48
+ duration:'2min',
49
+ name:'林妹妹',
50
+ orderType:'抢险',
51
+ address:'伊水花园21-1-1254',
52
+ receptionist:'马静静',
53
+ state:'待处理'
54
+ },
55
+ {
56
+ date: "2022-09-01 10:25:06",
57
+ duration:'2.5min',
58
+ name:'林妹妹',
59
+ orderType:'抢险',
60
+ address:'伊水花园21-1-1254',
61
+ receptionist:'马静静',
62
+ state:'待处理'
63
+ },
64
+ {
65
+ date: "2022-09-01 10:25:06",
66
+ duration:'2.5min',
67
+ name:'林妹妹',
68
+ orderType:'抢险',
69
+ address:'伊水花园21-1-1254',
70
+ receptionist:'马静静',
71
+ state:'待处理'
72
+ },
73
+
74
+
75
+
76
+
77
+
78
+ ]
79
+ }
80
+ },
81
+ data() {
82
+ return {
83
+ optionCustomer: {
84
+ step: 0.2,
85
+ limitMoveNum: 3, //限制开始滚动的条数
86
+ openTouch: false,
87
+ waitTime: 5, //滚动的速度
88
+ direction: 1, //方向 0 往下 1 往上 2向左 3向右
89
+ }
90
+ }
91
+ }
92
+ };
93
+ </script>
94
+
95
+ <style scoped>
96
+ li{
97
+ list-style: none;
98
+ display: flex;
99
+ flex-direction: row;
100
+ align-items: center;
101
+ position: relative;
102
+ }
103
+ span{
104
+ color: #ffffff;
105
+ font-size: 2.037vh;
106
+ line-height: 3.611vh;
107
+ }
108
+ .date{
109
+ margin-left: 2.083vw;
110
+ }
111
+ .duration{
112
+ margin-left: 5.99vw;
113
+ }
114
+ .name{
115
+ position: absolute;
116
+ left: 27.396vw;
117
+ width: 9.259vh;
118
+ }
119
+ .orderType{
120
+ position: absolute;
121
+ left: 35.677vw;
122
+ width: 3.125vw;
123
+ }
124
+ .address{
125
+ position: absolute;
126
+ left: 43.021vw;
127
+ width: 26.042vw;
128
+ }
129
+ .receptionist{
130
+ position: absolute;
131
+ left: 56.771vw;
132
+ width: 4.6875vw;
133
+ }
134
+ .state{
135
+ position: absolute;
136
+ left: 64.6875vw;
137
+ width: 5.208vw;
138
+ color: #F7DB35;
139
+ }
140
+
141
+
142
+
143
+ </style>
@@ -0,0 +1,371 @@
1
+ <template>
2
+ <!-- 客服状态组件 -->
3
+ <div class="service-status">
4
+ <div v-for="serviceData in service" >
5
+ <div v-if="serviceData.aState!=='未登录'">
6
+ <i class="service1"></i>
7
+ <span>{{ serviceData.aName || '未登录' }}</span>
8
+ </div>
9
+ <div v-if="serviceData.aState==='未登录'">
10
+ <i class="service2"></i>
11
+ <span>{{ serviceData.aName || '未登录' }}</span>
12
+ </div>
13
+ <div v-if="serviceData.aState==='正在振铃'"><i class="status1"></i></div>
14
+ <div v-if="['忙','正在保存', '回访通话','通话中'].indexOf(serviceData.aState) >= 0"><i class="status2"></i></div>
15
+ <div v-if="serviceData.aState==='空闲'"><i class="status3"></i></div>
16
+ <div v-if="serviceData.aState==='未登录'"><i class="status4"></i></div>
17
+ </div>
18
+ </div>
19
+ <div class="status-count">
20
+ <div>
21
+ <i class="answer"></i>
22
+ <span class="answer-text">接听中</span>
23
+ <span class="answer-num">{{ data.answerNum }}</span>
24
+ </div>
25
+ <div>
26
+ <i class="await"></i>
27
+ <span class="await-text">闲置</span>
28
+ <span class="await-num">{{ data.awaitNum }}</span>
29
+ </div>
30
+ <div>
31
+ <i class="ring"></i>
32
+ <span class="ring-text">响铃中</span>
33
+ <span class="ring-num">{{ data.ringNum }}</span>
34
+ </div>
35
+ <div>
36
+ <i class="off-line"></i>
37
+ <span class="off-line-text">离线</span>
38
+ <span class="off-line-num">{{ data.offLineNum }}</span>
39
+ </div>
40
+
41
+ </div>
42
+ </template>
43
+
44
+ <script>
45
+ import {HttpResetClass} from "vue-client";
46
+ import * as Util from "../../../Util";
47
+ import axios from "axios";
48
+
49
+ export default {
50
+
51
+ name: "ServiceStatus",
52
+ components:{
53
+
54
+ },
55
+ data(){
56
+ return{
57
+ data:{
58
+ answerNum:0,
59
+ awaitNum:0,
60
+ ringNum:0,
61
+ offLineNum:0,
62
+
63
+ },
64
+ service:[],
65
+
66
+
67
+ }
68
+ },
69
+
70
+ ready(){
71
+ this.getRecordwork()
72
+ setInterval(() => {
73
+ this.getRecordwork()
74
+ }, 2000)
75
+ },
76
+ methods:{
77
+ getRecordwork(){
78
+ let http = new HttpResetClass()
79
+ http.load('GET', '/Dual/GetALLAttendant', {}, {resolveMsg: null, rejectMsg: null}).then((res) => {
80
+ //tag
81
+ console.log("getRecordwork"+JSON.stringify(res.data))
82
+ this.data.answerNum = 0
83
+ this.data.awaitNum = 0
84
+ this.data.ringNum = 0
85
+ this.data.offLineNum = 0
86
+ this.service=res.data.packets
87
+ console.log('this.service='+JSON.stringify(this.service));
88
+ for (const serviceData of this.service) {
89
+ switch (serviceData.aState) {
90
+ case '未登录':
91
+ this.data.offLineNum ++
92
+ break
93
+
94
+ case '忙':
95
+ // case '回访通话':
96
+ case '通话中':
97
+ this.data.answerNum ++
98
+ break
99
+ case '空闲':
100
+ this.data.awaitNum ++
101
+ break
102
+ case '正在振铃':
103
+ case '正在保存':
104
+ this.data.ringNum ++
105
+ break
106
+ }
107
+ }
108
+ })
109
+ // axios.get('/Dual/GetALLAttendant')
110
+ // .then((response) => {
111
+ // console.log("getRecordwork"+JSON.stringify(response.data))
112
+ // this.data.answerNum = 0
113
+ // this.data.awaitNum = 0
114
+ // this.data.ringNum = 0
115
+ // this.data.offLineNum = 0
116
+ // this.service=response.data.packets
117
+ // console.log('this.service='+JSON.stringify(this.service));
118
+ // for (const serviceData of this.service) {
119
+ // switch (serviceData.aState) {
120
+ // case '未登录':
121
+ // this.data.offLineNum ++
122
+ // break
123
+ //
124
+ // case '忙':
125
+ // // case '回访通话':
126
+ // case '通话中':
127
+ // this.data.answerNum ++
128
+ // break
129
+ // case '空闲':
130
+ // this.data.awaitNum ++
131
+ // break
132
+ // case '正在振铃':
133
+ // case '正在保存':
134
+ // this.data.ringNum ++
135
+ // break
136
+ // }
137
+ // }
138
+ // })
139
+ },
140
+
141
+
142
+ }
143
+ }
144
+ </script>
145
+
146
+ <style scoped>
147
+
148
+
149
+ .service-status {
150
+ width: 36.458vw;
151
+ height: 31.944vh;
152
+ position: absolute;
153
+ top: 23.241vh;
154
+ left: 36vw;
155
+ /* background: rgba(255, 255, 255, .04); */
156
+ display: flex;
157
+ flex-flow: row wrap;
158
+ }
159
+
160
+ .service-status div {
161
+ height: 15.741vh;
162
+ display: flex;
163
+ width: 200px;
164
+ }
165
+
166
+ .move-down {
167
+ margin-top: 2.13vh;
168
+ }
169
+
170
+ .service-status div div {
171
+ width: 7.552vw;
172
+ height: 10.463vh;
173
+ position: relative;
174
+ }
175
+
176
+ .service1 {
177
+ width: 3.49vw;
178
+ height: 8.148vh;
179
+ background-image: url("../../../../static/images/zhongyi/service1.png");
180
+ background-repeat: no-repeat;
181
+ background-position: 0 0;
182
+ background-size: contain;
183
+ position: absolute;
184
+ left: 0.78125vw;
185
+ }
186
+ .service2 {
187
+ width: 3.49vw;
188
+ height: 8.148vh;
189
+ background-image: url("../../../../static/images/zhongyi/service2.png");
190
+ background-repeat: no-repeat;
191
+ background-position: 0 0;
192
+ background-size: contain;
193
+ position: absolute;
194
+ left: 0.78125vw;
195
+ }
196
+
197
+
198
+
199
+
200
+
201
+
202
+ .status1 {
203
+ width: 1.875vw;
204
+ background-image: url("../../../../static/images/zhongyi/ring.png");
205
+ height: 4.333vh;
206
+ background-repeat: no-repeat;
207
+ background-position: 0 0;
208
+ background-size: contain;
209
+ position: absolute;
210
+ bottom: 0.185vh;
211
+ }
212
+
213
+ .status2 {
214
+ width: 1.875vw;
215
+ background-image: url("../../../../static/images/zhongyi/phone1.png");
216
+ height: 4.333vh;
217
+ background-repeat: no-repeat;
218
+ background-position: 0 0;
219
+ background-size: contain;
220
+ position: absolute;
221
+ bottom: 0.104vw;
222
+ }
223
+
224
+ .status3 {
225
+ width: 2.34375vw;
226
+ background-image: url("../../../../static/images/zhongyi/telephone1.png");
227
+ height: 4.333vh;
228
+ background-repeat: no-repeat;
229
+ background-position: 0 0;
230
+ background-size: contain;
231
+ position: absolute;
232
+ bottom: 0.185vh;
233
+ }
234
+
235
+ .status4 {
236
+ width: 1.875vw;
237
+ background-image: url("../../../../static/images/zhongyi/phone2.png");
238
+ height: 4.333vh;
239
+ background-repeat: no-repeat;
240
+ background-position: 0 0;
241
+ background-size: contain;
242
+ position: absolute;
243
+ bottom: 0.185vh;
244
+ }
245
+
246
+ .service-status div span {
247
+ width: 5.208vw;
248
+ height: 2.037vh;
249
+ font-size: 2.037vh;
250
+ font-weight: bold;
251
+ color: #FFFEFE;
252
+ display: block;
253
+ text-align: center;
254
+ position: absolute;
255
+ top: 9.537vh;
256
+ }
257
+
258
+
259
+
260
+ .status-count {
261
+ width: 41.667vw;
262
+ height: 4.63vh;
263
+ /* background-color: rgb(131, 238, 188); */
264
+ position: absolute;
265
+ top: 59.537vh;
266
+ left: 30.573vw;
267
+ display: flex;
268
+ }
269
+
270
+ .answer{
271
+ width: 1.875vw;
272
+ height: 4.333vh;
273
+ background-image: url("../../../../static/images/zhongyi/phone1.png");
274
+ background-repeat: no-repeat;
275
+ background-position: 0 0;
276
+ background-size: contain;
277
+ position: absolute;
278
+ top: 1.389vh;
279
+ }
280
+ .answer-text{
281
+ position: absolute;
282
+ top: 1.852vh;
283
+ left: 3.125vw;
284
+ }
285
+ .answer-num{
286
+ font-size: 2.593vh;
287
+ color: #00FFEA;
288
+ position: absolute;
289
+ top: 1.204vh;
290
+ left: 7.24vw;
291
+ }
292
+
293
+ .await{
294
+ width: 2.34375vw;
295
+ height: 4.333vh;
296
+ background-image: url("../../../../static/images/zhongyi/telephone1.png");
297
+ background-repeat: no-repeat;
298
+ background-position: 0 0;
299
+ background-size: contain;
300
+ position: absolute;
301
+ top: 1.389vh;
302
+ left: 10.417vw;
303
+ }
304
+ .await-text{
305
+ position: absolute;
306
+ top: 1.852vh;
307
+ left: 14.0625vw;
308
+ }
309
+ .await-num{
310
+ font-size: 2.593vh;
311
+ color: #FFCD00;
312
+ position: absolute;
313
+ top: 1.204vh;
314
+ left: 17.271vw;
315
+ }
316
+
317
+ .ring{
318
+ width: 1.875vw;
319
+ height: 4.333vh;
320
+ background-image: url("../../../../static/images/zhongyi/ring.png");
321
+ background-repeat: no-repeat;
322
+ background-position: 0 0;
323
+ background-size: contain;
324
+ position: absolute;
325
+ top: 1.389vh;
326
+ left: 21vw;
327
+ }
328
+ .ring-text{
329
+ position: absolute;
330
+ top: 1.852vh;
331
+ left: 24vw;
332
+ }
333
+ .ring-num{
334
+ font-size: 2.593vh;
335
+ color: #FF7E00;
336
+ position: absolute;
337
+ top: 1.204vh;
338
+ left: 28.90625vw;
339
+ }
340
+
341
+ .off-line{
342
+ width: 1.875vw;
343
+ height: 4.333vh;
344
+ background-image: url("../../../../static/images/zhongyi/phone2.png");
345
+ background-repeat: no-repeat;
346
+ background-position: 0 0;
347
+ background-size: contain;
348
+ position: absolute;
349
+ top: 1.389vh;
350
+ left: 32.03125vw;
351
+ }
352
+ .off-line-text{
353
+ position: absolute;
354
+ top: 1.852vh;
355
+ left: 35.417vw;
356
+ }
357
+ .off-line-num{
358
+ font-size: 2.593vh;
359
+ color: #DBDBDB;
360
+ position: absolute;
361
+ top: 1.204vh;
362
+ left: 38.802vw;
363
+ }
364
+
365
+
366
+ .status-count div span:nth-of-type(1) {
367
+ font-size: 2.037vh;
368
+ color: #FFFFFF;
369
+ line-height: 2.315vh;
370
+ }
371
+ </style>