hookehuyr

🦄 refactor: 写法优化

...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
2 * @Author: hookehuyr hookehuyr@gmail.com 2 * @Author: hookehuyr hookehuyr@gmail.com
3 * @Date: 2022-05-26 23:52:36 3 * @Date: 2022-05-26 23:52:36
4 * @LastEditors: hookehuyr hookehuyr@gmail.com 4 * @LastEditors: hookehuyr hookehuyr@gmail.com
5 - * @LastEditTime: 2022-06-14 14:20:03 5 + * @LastEditTime: 2022-06-25 00:47:11
6 * @FilePath: /tswj/src/App.vue 6 * @FilePath: /tswj/src/App.vue
7 * @Description: 7 * @Description:
8 --> 8 -->
...@@ -86,7 +86,7 @@ body { ...@@ -86,7 +86,7 @@ body {
86 color: red; 86 color: red;
87 } 87 }
88 88
89 -.glob-center { 89 +.global-center {
90 position: relative; 90 position: relative;
91 top: 50%; 91 top: 50%;
92 transform: translateY(-50%); 92 transform: translateY(-50%);
......
...@@ -45,13 +45,13 @@ ...@@ -45,13 +45,13 @@
45 <van-image round width="3rem" height="3rem" :src="item.avatar ? item.avatar : icon_avatar" /> 45 <van-image round width="3rem" height="3rem" :src="item.avatar ? item.avatar : icon_avatar" />
46 </van-col> 46 </van-col>
47 <van-col span="14"> 47 <van-col span="14">
48 - <div class="name-info glob-center"> 48 + <div class="name-info global-center">
49 <p>{{ item.name }}</p> 49 <p>{{ item.name }}</p>
50 <p style="color: #C5C5C5;">{{ item.donate_time }}</p> 50 <p style="color: #C5C5C5;">{{ item.donate_time }}</p>
51 </div> 51 </div>
52 </van-col> 52 </van-col>
53 <van-col span="6" style="color: #222222; text-align: right; font-size: 1rem;"> 53 <van-col span="6" style="color: #222222; text-align: right; font-size: 1rem;">
54 - <div class="glob-center"> 54 + <div class="global-center">
55 <van-icon style="vertical-align: top;" size="1.25rem" :name="icon_flower" /> 55 <van-icon style="vertical-align: top;" size="1.25rem" :name="icon_flower" />
56 <span>&nbsp;2</span> 56 <span>&nbsp;2</span>
57 </div> 57 </div>
......
...@@ -2,62 +2,59 @@ ...@@ -2,62 +2,59 @@
2 * @Author: hookehuyr hookehuyr@gmail.com 2 * @Author: hookehuyr hookehuyr@gmail.com
3 * @Date: 2022-05-30 13:51:47 3 * @Date: 2022-05-30 13:51:47
4 * @LastEditors: hookehuyr hookehuyr@gmail.com 4 * @LastEditors: hookehuyr hookehuyr@gmail.com
5 - * @LastEditTime: 2022-06-25 00:29:24 5 + * @LastEditTime: 2022-06-25 01:11:12
6 * @FilePath: /tswj/src/views/client/rankList.vue 6 * @FilePath: /tswj/src/views/client/rankList.vue
7 * @Description: 幼儿园儿童捐赠金额排行榜 7 * @Description: 幼儿园儿童捐赠金额排行榜
8 --> 8 -->
9 <template> 9 <template>
10 <div class="wrapper"> 10 <div class="wrapper">
11 <van-row> 11 <van-row>
12 - <van-col span="20" style="padding: 1rem 0.5rem 1rem 0;"> 12 + <van-col class="title-wrapper" span="20">
13 - <div :class="[kgInfo.multi_name ? 'heightLow' : 'heightLow', 'kg-name']"> 13 + <div :class="['heightLow', 'kg-name']">
14 - <van-row align="center" justify="center" style="position: relative; top: 50%; transform: translateY(-50%);"> 14 + <van-row align="center" justify="center" class="title">
15 <van-col span="4"> 15 <van-col span="4">
16 <van-image round width="3.5rem" height="3.5rem" :src="kgInfo.kg_logo ? kgInfo.kg_logo : icon_logo" 16 <van-image round width="3.5rem" height="3.5rem" :src="kgInfo.kg_logo ? kgInfo.kg_logo : icon_logo"
17 style="vertical-align: text-bottom;" /> 17 style="vertical-align: text-bottom;" />
18 </van-col> 18 </van-col>
19 - <van-col span="20"> 19 + <van-col span="20" style="padding-left: 1.5rem;">
20 - <div v-if="kgInfo.multi_name" style="margin-left: 1.5rem;"> 20 + <div v-if="kgInfo.multi_name">
21 <p>{{ kgInfo.multi_name[0] }}</p> 21 <p>{{ kgInfo.multi_name[0] }}</p>
22 <p>{{ kgInfo.multi_name[1] }}</p> 22 <p>{{ kgInfo.multi_name[1] }}</p>
23 </div> 23 </div>
24 - <p v-else style="margin-left: 1.5rem;"> 24 + <p v-else> {{ kgInfo.kg_name }} </p>
25 - {{ kgInfo.kg_name }}
26 - </p>
27 </van-col> 25 </van-col>
28 </van-row> 26 </van-row>
29 </div> 27 </div>
30 </van-col> 28 </van-col>
31 <van-col> 29 <van-col>
32 <div class="flower"> 30 <div class="flower">
33 - <van-icon :name="icon_flower" color="#c5c5c5" size="1.25rem" style="vertical-align: bottom;" />&nbsp;{{ 31 + <van-icon :name="icon_flower" color="#c5c5c5" size="1.25rem" style="vertical-align: bottom;" />
34 - kgInfo.kg_total }} 32 + &nbsp;{{ kgInfo.kg_total }}
35 </div> 33 </div>
36 </van-col> 34 </van-col>
37 </van-row> 35 </van-row>
38 </div> 36 </div>
37 +
39 <van-list v-model:loading="loading" :finished="finished" :finished-text="finishedTextStatus ? '没有更多了' : ''" 38 <van-list v-model:loading="loading" :finished="finished" :finished-text="finishedTextStatus ? '没有更多了' : ''"
40 @load="onLoad"> 39 @load="onLoad">
41 <div v-for="(rank, indexKey) in donateRankList" :key="indexKey" class="van-hairline--bottom"> 40 <div v-for="(rank, indexKey) in donateRankList" :key="indexKey" class="van-hairline--bottom">
42 <van-row style="padding: 0.5rem;"> 41 <van-row style="padding: 0.5rem;">
43 <van-col span="2"> 42 <van-col span="2">
44 - <div v-if="indexKey < 3" class="glob-center"> 43 + <div :class="['global-center', { 'rank-other': rank.rownum >= 4 }]">
45 - <van-icon v-if="indexKey === 0" :name="icon_ranking1" size="1.75rem" /> 44 + <van-icon v-if="rank.rownum < 4" :name="icon_ranking(rank.rownum)" size="1.75rem" />
46 - <van-icon v-if="indexKey === 1" :name="icon_ranking2" size="1.75rem" /> 45 + <span v-else>{{ rank.rownum }}&nbsp;</span>
47 - <van-icon v-if="indexKey === 2" :name="icon_ranking3" size="1.75rem" />
48 </div> 46 </div>
49 - <div v-else class="glob-center" style="text-align: center; color: #84909F;">{{ indexKey + 1 }}&nbsp;</div>
50 </van-col> 47 </van-col>
51 <van-col span="4"> 48 <van-col span="4">
52 <van-image round width="3rem" height="3rem" :src="rank.perf_avatar ? rank.perf_avatar : icon_avatar" /> 49 <van-image round width="3rem" height="3rem" :src="rank.perf_avatar ? rank.perf_avatar : icon_avatar" />
53 </van-col> 50 </van-col>
54 <van-col span="14"> 51 <van-col span="14">
55 - <div class="name-info glob-center"> 52 + <div class="name-info global-center">
56 <p>{{ rank.perf_name }}</p> 53 <p>{{ rank.perf_name }}</p>
57 </div> 54 </div>
58 </van-col> 55 </van-col>
59 <van-col span="4" style="text-align: right; font-size: 1rem;"> 56 <van-col span="4" style="text-align: right; font-size: 1rem;">
60 - <div class="glob-center" style="color: #222222;"> 57 + <div class="global-center" style="color: #222222;">
61 <van-icon style="vertical-align: top;" size="1.25rem" :name="icon_flower" /> 58 <van-icon style="vertical-align: top;" size="1.25rem" :name="icon_flower" />
62 <span>&nbsp;{{ rank.qty }}</span> 59 <span>&nbsp;{{ rank.qty }}</span>
63 </div> 60 </div>
...@@ -65,11 +62,12 @@ ...@@ -65,11 +62,12 @@
65 </van-row> 62 </van-row>
66 </div> 63 </div>
67 </van-list> 64 </van-list>
65 +
68 <van-empty v-if="emptyStatus" class="custom-image" :image="no_image" description="暂无明细" /> 66 <van-empty v-if="emptyStatus" class="custom-image" :image="no_image" description="暂无明细" />
69 </template> 67 </template>
70 68
71 <script setup> 69 <script setup>
72 -import { ref, onMounted } from 'vue' 70 +import { ref } from 'vue'
73 import { useRoute } from 'vue-router' 71 import { useRoute } from 'vue-router'
74 import { useTitle } from '@/utils/generatePackage.js' 72 import { useTitle } from '@/utils/generatePackage.js'
75 //import { } from '@/utils/generateModules.js' 73 //import { } from '@/utils/generateModules.js'
...@@ -80,6 +78,19 @@ import { kgDonateRankAPI } from '@/api/C/kg.js' ...@@ -80,6 +78,19 @@ import { kgDonateRankAPI } from '@/api/C/kg.js'
80 const $route = useRoute(); 78 const $route = useRoute();
81 useTitle($route.meta.title); 79 useTitle($route.meta.title);
82 80
81 +const icon_ranking = (rownum) => {
82 + switch (rownum) {
83 + case 1:
84 + return icon_ranking1
85 + case 2:
86 + return icon_ranking2
87 + case 3:
88 + return icon_ranking3
89 + default:
90 + return 0
91 + }
92 +}
93 +
83 const kgInfo = ref({}); 94 const kgInfo = ref({});
84 const kg_id = $route.query.kg_id; 95 const kg_id = $route.query.kg_id;
85 const donateRankList = ref([]) 96 const donateRankList = ref([])
...@@ -120,6 +131,14 @@ const onLoad = async () => { ...@@ -120,6 +131,14 @@ const onLoad = async () => {
120 padding-right: 0.5rem; 131 padding-right: 0.5rem;
121 background-color: #F7F7F7; 132 background-color: #F7F7F7;
122 position: relative; 133 position: relative;
134 + .title-wrapper {
135 + padding: 1rem 0.5rem 1rem 0;
136 + .title {
137 + position: relative;
138 + top: 50%;
139 + transform: translateY(-50%);
140 + }
141 + }
123 142
124 .rank { 143 .rank {
125 position: relative; 144 position: relative;
...@@ -160,4 +179,9 @@ const onLoad = async () => { ...@@ -160,4 +179,9 @@ const onLoad = async () => {
160 height: 6rem; 179 height: 6rem;
161 } 180 }
162 } 181 }
182 +
183 +.rank-other {
184 + text-align: center;
185 + color: #84909F;
186 +}
163 </style> 187 </style>
......