|
@@ -2,13 +2,18 @@
|
2
|
2
|
<div class="group-praise">
|
3
|
3
|
<!-- 广播 -->
|
4
|
4
|
<div class="group-praise__broadcast">
|
5
|
|
- <i class="group-praise__broadcast--icon icon_transport transport-laba1"></i>
|
|
5
|
+ <i
|
|
6
|
+ class="group-praise__broadcast--icon icon_transport transport-laba1"
|
|
7
|
+ ></i>
|
6
|
8
|
<div class="group-praise__broadcastListWrap">
|
7
|
|
- <ul class="group-praise__broadcastList" :class="{marquee_top:animate}" :style="{transform:'translateY('+(0.375*n)+'rem)'}">
|
8
|
|
- <li
|
9
|
|
- v-for="(item,i) in evaluateUserList"
|
10
|
|
- :key="i"
|
11
|
|
- >【{{item[0]}}】支助人员「{{item[1]}}」 {{item[2]}}</li>
|
|
9
|
+ <ul
|
|
10
|
+ class="group-praise__broadcastList"
|
|
11
|
+ :class="{ marquee_top: animate }"
|
|
12
|
+ :style="{ transform: 'translateY(' + 0.375 * n + 'rem)' }"
|
|
13
|
+ >
|
|
14
|
+ <li v-for="(item, i) in evaluateUserList" :key="i">
|
|
15
|
+ 【{{ item[0] }}】支助人员「{{ item[1] }}」 {{ item[2] }}
|
|
16
|
+ </li>
|
12
|
17
|
</ul>
|
13
|
18
|
</div>
|
14
|
19
|
</div>
|
|
@@ -16,22 +21,34 @@
|
16
|
21
|
<div class="group-praise__circle">
|
17
|
22
|
<header class="group-praise__title">NO.2</header>
|
18
|
23
|
<div class="group-praise__circleContent" v-if="gradeRankingList[1]">
|
19
|
|
- <p class="group-praise__circleName ellipsis">{{gradeRankingList[1][1]}}</p>
|
20
|
|
- <p class="group-praise__circlePercent">{{gradeRankingList[1][0]}}</p>
|
|
24
|
+ <p class="group-praise__circleName ellipsis">
|
|
25
|
+ {{ gradeRankingList[1][1] }}
|
|
26
|
+ </p>
|
|
27
|
+ <p class="group-praise__circlePercent">
|
|
28
|
+ {{ gradeRankingList[1][0] }}
|
|
29
|
+ </p>
|
21
|
30
|
</div>
|
22
|
31
|
</div>
|
23
|
32
|
<div class="group-praise__circle--win">
|
24
|
33
|
<header class="group-praise__title">NO.1</header>
|
25
|
34
|
<div class="group-praise__circleContent" v-if="gradeRankingList[0]">
|
26
|
|
- <p class="group-praise__circleName ellipsis">{{gradeRankingList[0][1]}}</p>
|
27
|
|
- <p class="group-praise__circlePercent">{{gradeRankingList[0][0]}}</p>
|
|
35
|
+ <p class="group-praise__circleName ellipsis">
|
|
36
|
+ {{ gradeRankingList[0][1] }}
|
|
37
|
+ </p>
|
|
38
|
+ <p class="group-praise__circlePercent">
|
|
39
|
+ {{ gradeRankingList[0][0] }}
|
|
40
|
+ </p>
|
28
|
41
|
</div>
|
29
|
42
|
</div>
|
30
|
43
|
<div class="group-praise__circle">
|
31
|
44
|
<header class="group-praise__title">NO.3</header>
|
32
|
45
|
<div class="group-praise__circleContent" v-if="gradeRankingList[2]">
|
33
|
|
- <p class="group-praise__circleName ellipsis">{{gradeRankingList[2][1]}}</p>
|
34
|
|
- <p class="group-praise__circlePercent">{{gradeRankingList[2][0]}}</p>
|
|
46
|
+ <p class="group-praise__circleName ellipsis">
|
|
47
|
+ {{ gradeRankingList[2][1] }}
|
|
48
|
+ </p>
|
|
49
|
+ <p class="group-praise__circlePercent">
|
|
50
|
+ {{ gradeRankingList[2][0] }}
|
|
51
|
+ </p>
|
35
|
52
|
</div>
|
36
|
53
|
</div>
|
37
|
54
|
</div>
|
|
@@ -39,14 +56,14 @@
|
39
|
56
|
</template>
|
40
|
57
|
|
41
|
58
|
<script>
|
42
|
|
-import { post, timer2 } from './../http/http'
|
|
59
|
+import { post, timer2 } from "./../http/http";
|
43
|
60
|
export default {
|
44
|
|
- name: 'GroupPraise',
|
45
|
|
- inject: ['hospitalId'],
|
46
|
|
- data () {
|
|
61
|
+ name: "GroupPraise",
|
|
62
|
+ inject: ["hospitalId"],
|
|
63
|
+ data() {
|
47
|
64
|
return {
|
48
|
65
|
allData: {},
|
49
|
|
- fontSize: parseFloat(document.querySelector('html').style.fontSize),
|
|
66
|
+ fontSize: parseFloat(document.querySelector("html").style.fontSize),
|
50
|
67
|
timer: null,
|
51
|
68
|
animate: false,
|
52
|
69
|
timer1: null,
|
|
@@ -56,60 +73,65 @@ export default {
|
56
|
73
|
disY: 0.375, // 滚动数据偏移量
|
57
|
74
|
disHeight: 0, // 滚动数据高度
|
58
|
75
|
isShow: true // 滚动数据显示隐藏
|
59
|
|
- }
|
|
76
|
+ };
|
60
|
77
|
},
|
61
|
78
|
methods: {
|
62
|
79
|
// 无限滚动
|
63
|
|
- scrollInfinite () {
|
64
|
|
- clearTimeout(this.timer1)
|
|
80
|
+ scrollInfinite() {
|
|
81
|
+ clearTimeout(this.timer1);
|
65
|
82
|
this.timer1 = setTimeout(() => {
|
66
|
|
- this.showMarquee()
|
67
|
|
- this.scrollInfinite()
|
68
|
|
- }, 2000)
|
|
83
|
+ this.showMarquee();
|
|
84
|
+ this.scrollInfinite();
|
|
85
|
+ }, 2000);
|
69
|
86
|
},
|
70
|
87
|
// 处理数组方法
|
71
|
|
- showMarquee () {
|
72
|
|
- this.animate = true
|
73
|
|
- this.n--
|
74
|
|
- if (this.n === -(this.evaluateUserList.length)) {
|
75
|
|
- this.animate = false
|
76
|
|
- this.n = 0
|
|
88
|
+ showMarquee() {
|
|
89
|
+ this.animate = true;
|
|
90
|
+ this.n--;
|
|
91
|
+ if (this.n === -this.evaluateUserList.length) {
|
|
92
|
+ this.animate = false;
|
|
93
|
+ this.n = 0;
|
77
|
94
|
}
|
78
|
95
|
},
|
79
|
96
|
// 近30天小组好评排行
|
80
|
|
- async getGroupPraise () {
|
|
97
|
+ async getGroupPraise() {
|
81
|
98
|
const srartTime = this.$moment()
|
82
|
|
- .subtract(1, 'days')
|
83
|
|
- .format('YYYY-MM-DD') // 昨日
|
84
|
|
- const endTime = this.$moment().format('YYYY-MM-DD') // 今天
|
|
99
|
+ .subtract(1, "days")
|
|
100
|
+ .format("YYYY-MM-DD"); // 昨日
|
|
101
|
+ const endTime = this.$moment()
|
|
102
|
+ .subtract(1, "days")
|
|
103
|
+ .format("YYYY-MM-DD"); // 昨日
|
85
|
104
|
const result = await post(
|
86
|
105
|
`/largeScreen/getData/gradeRanking/${this.hospitalId}`,
|
87
|
106
|
{ srartTime, endTime, pageSize: 3 }
|
88
|
|
- )
|
89
|
|
- this.gradeRankingList = result.gradeRankingList
|
90
|
|
- this.evaluateUserList = result.evaluateUserList
|
91
|
|
- this.polling()
|
|
107
|
+ );
|
|
108
|
+ this.gradeRankingList = result.gradeRankingList;
|
|
109
|
+ this.evaluateUserList = result.evaluateUserList;
|
|
110
|
+ this.polling();
|
92
|
111
|
if (this.evaluateUserList.length > 0) {
|
93
|
|
- this.evaluateUserList = [...this.evaluateUserList, this.evaluateUserList[0]]
|
94
|
|
- this.scrollInfinite()
|
|
112
|
+ this.evaluateUserList = [
|
|
113
|
+ ...this.evaluateUserList,
|
|
114
|
+ this.evaluateUserList[0]
|
|
115
|
+ ];
|
|
116
|
+ this.scrollInfinite();
|
95
|
117
|
}
|
96
|
118
|
},
|
97
|
119
|
// 轮询请求
|
98
|
|
- polling () {
|
99
|
|
- clearTimeout(this.timer)
|
|
120
|
+ polling() {
|
|
121
|
+ clearTimeout(this.timer);
|
100
|
122
|
this.timer = setTimeout(() => {
|
101
|
|
- this.getGroupPraise()
|
102
|
|
- }, timer2)
|
|
123
|
+ this.getGroupPraise();
|
|
124
|
+ }, timer2);
|
103
|
125
|
}
|
104
|
126
|
},
|
105
|
|
- mounted () {
|
106
|
|
- this.getGroupPraise()
|
|
127
|
+ mounted() {
|
|
128
|
+ this.getGroupPraise();
|
107
|
129
|
},
|
108
|
|
- beforeDestroy () {
|
109
|
|
- clearTimeout(this.timer)
|
110
|
|
- clearTimeout(this.timer1)
|
|
130
|
+ beforeDestroy() {
|
|
131
|
+ clearTimeout(this.timer);
|
|
132
|
+ clearTimeout(this.timer1);
|
111
|
133
|
}
|
112
|
|
-}
|
|
134
|
+};
|
113
|
135
|
</script>
|
114
|
136
|
|
115
|
137
|
<style lang="less">
|