Showing
4 changed files
with
78 additions
and
38 deletions
src/components/FlowerIcon/index.vue
0 → 100644
| 1 | +<!-- | ||
| 2 | + * @Date: 2022-06-25 03:29:05 | ||
| 3 | + * @LastEditors: hookehuyr hookehuyr@gmail.com | ||
| 4 | + * @LastEditTime: 2022-06-25 10:26:12 | ||
| 5 | + * @FilePath: /tswj/src/components/FlowerIcon/index.vue | ||
| 6 | + * @Description: 文件描述 | ||
| 7 | +--> | ||
| 8 | +<template> | ||
| 9 | + <div class="flower" @click="goTo"> | ||
| 10 | + <van-icon :name="icon_flower" color="#c5c5c5" size="1.25rem" :style="{ verticalAlign: align }" /> | ||
| 11 | + <span :style="{ color }"> {{ qty }}</span> | ||
| 12 | + </div> | ||
| 13 | + <!-- <div class="global-center" style="color: #222222;" @click="goTo"> | ||
| 14 | + <van-icon :name="icon_flower" color="#c5c5c5" size="1.25rem" :style="{ verticalAlign: align }" /> | ||
| 15 | + <span> {{ qty }}</span> | ||
| 16 | + </div> --> | ||
| 17 | +</template> | ||
| 18 | + | ||
| 19 | +<script setup> | ||
| 20 | +import { icon_flower } from '@/utils/generateIcons.js' | ||
| 21 | + | ||
| 22 | +const props = defineProps({ | ||
| 23 | + qty: Number, | ||
| 24 | + color: String, | ||
| 25 | + align: String, | ||
| 26 | +}) | ||
| 27 | +const emit = defineEmits(['on-click']); | ||
| 28 | +const goTo = () => { | ||
| 29 | + emit('on-click', true) | ||
| 30 | +} | ||
| 31 | +</script> | ||
| 32 | + | ||
| 33 | +<style lang="less" scoped> | ||
| 34 | +.flower { | ||
| 35 | + text-align: center; | ||
| 36 | + position: absolute; | ||
| 37 | + top: 40%; | ||
| 38 | + right: 0.5rem; | ||
| 39 | + color: #713610; | ||
| 40 | +} | ||
| 41 | +</style> |
| ... | @@ -2,24 +2,19 @@ | ... | @@ -2,24 +2,19 @@ |
| 2 | * @Author: hookehuyr hookehuyr@gmail.com | 2 | * @Author: hookehuyr hookehuyr@gmail.com |
| 3 | * @Date: 2022-05-30 10:20:34 | 3 | * @Date: 2022-05-30 10:20:34 |
| 4 | * @LastEditors: hookehuyr hookehuyr@gmail.com | 4 | * @LastEditors: hookehuyr hookehuyr@gmail.com |
| 5 | - * @LastEditTime: 2022-06-07 14:50:28 | 5 | + * @LastEditTime: 2022-06-25 10:17:55 |
| 6 | - * @FilePath: /tswj/src/components/RankingList/index.vue | 6 | + * @FilePath: /tswj/src/components/RankingItem/index.vue |
| 7 | --> | 7 | --> |
| 8 | <template> | 8 | <template> |
| 9 | <div class="wrapper"> | 9 | <div class="wrapper"> |
| 10 | <van-row> | 10 | <van-row> |
| 11 | <van-col span="2" class="rank"> | 11 | <van-col span="2" class="rank"> |
| 12 | - <div v-if="indexKey < 3" class="avatar"> | 12 | + <div :class="[{ 'text': indexKey >= 3 }, { 'avatar': indexKey < 3 }]"> |
| 13 | - <van-icon v-if="indexKey === 0" :name="icon_ranking1" size="1.75rem" /> | 13 | + <van-icon v-if="indexKey < 3" :name="iconRanking(indexKey)" size="1.75rem" /> |
| 14 | - <van-icon v-if="indexKey === 1" :name="icon_ranking2" size="1.75rem" /> | 14 | + <span v-else>{{ indexKey + 1 }} </span> |
| 15 | - <van-icon v-if="indexKey === 2" :name="icon_ranking3" size="1.75rem" /> | ||
| 16 | </div> | 15 | </div> |
| 17 | - <div v-else class="text">{{ indexKey + 1 }}</div> | ||
| 18 | </van-col> | 16 | </van-col> |
| 19 | - <!-- FIXME: 高度先统一,以后有问题再说 --> | ||
| 20 | - <!-- <van-col span="18" :class="{ 'content-wrapper': !rankInfo.multi_name }"> --> | ||
| 21 | <van-col span="18" class="content-wrapper"> | 17 | <van-col span="18" class="content-wrapper"> |
| 22 | - <!-- <div :class="[rankInfo.multi_name ? 'height6rem' : 'height3rem', 'kg-name']" --> | ||
| 23 | <div :class="[rankInfo.multi_name ? 'height3rem' : 'height3rem', 'kg-name']" | 18 | <div :class="[rankInfo.multi_name ? 'height3rem' : 'height3rem', 'kg-name']" |
| 24 | @click="go('/client/chooseBook', { kg_id: rankInfo.id })"> | 19 | @click="go('/client/chooseBook', { kg_id: rankInfo.id })"> |
| 25 | <van-row align="center" justify="center" style="position: relative; top: 50%; transform: translateY(-50%);"> | 20 | <van-row align="center" justify="center" style="position: relative; top: 50%; transform: translateY(-50%);"> |
| ... | @@ -29,8 +24,6 @@ | ... | @@ -29,8 +24,6 @@ |
| 29 | </van-col> | 24 | </van-col> |
| 30 | <van-col span="20"> | 25 | <van-col span="20"> |
| 31 | <div v-if="rankInfo.multi_name" style="margin-left: 0.5rem;"> | 26 | <div v-if="rankInfo.multi_name" style="margin-left: 0.5rem;"> |
| 32 | - <!-- <p style="line-height: 2;">{{ rankInfo.multi_name[0] }}</p> | ||
| 33 | - <p>{{ rankInfo.multi_name[1] }}</p> --> | ||
| 34 | <p>{{ rankInfo.multi_name[0] }}<br />{{ rankInfo.multi_name[1] }}</p> | 27 | <p>{{ rankInfo.multi_name[0] }}<br />{{ rankInfo.multi_name[1] }}</p> |
| 35 | </div> | 28 | </div> |
| 36 | <p v-else style="margin-left: 0.5rem;"> | 29 | <p v-else style="margin-left: 0.5rem;"> |
| ... | @@ -41,24 +34,40 @@ | ... | @@ -41,24 +34,40 @@ |
| 41 | </div> | 34 | </div> |
| 42 | </van-col> | 35 | </van-col> |
| 43 | <van-col> | 36 | <van-col> |
| 44 | - <div class="flower" @click="go('/client/donateList', { kg_id: rankInfo.id })"> | 37 | + <flower-icon :qty="rankInfo.qty" align="bottom" @on-click="onFlowerClick" /> |
| 45 | - <van-icon :name="icon_flower" color="#c5c5c5" size="1.25rem" style="vertical-align: bottom;" /> {{ | ||
| 46 | - rankInfo.qty }} | ||
| 47 | - </div> | ||
| 48 | </van-col> | 38 | </van-col> |
| 49 | </van-row> | 39 | </van-row> |
| 50 | </div> | 40 | </div> |
| 51 | </template> | 41 | </template> |
| 52 | 42 | ||
| 53 | <script setup> | 43 | <script setup> |
| 54 | -import { icon_logo, icon_ranking1, icon_ranking2, icon_ranking3, icon_flower } from '@/utils/generateIcons.js' | 44 | +import { icon_logo, icon_ranking1, icon_ranking2, icon_ranking3 } from '@/utils/generateIcons.js' |
| 55 | 45 | ||
| 56 | import { ref } from 'vue' | 46 | import { ref } from 'vue' |
| 57 | import _ from 'lodash' | 47 | import _ from 'lodash' |
| 58 | - | 48 | +import FlowerIcon from '@/components/FlowerIcon' |
| 59 | import { useGo } from '@/hooks/useGo' | 49 | import { useGo } from '@/hooks/useGo' |
| 60 | const go = useGo() | 50 | const go = useGo() |
| 61 | 51 | ||
| 52 | +const iconRanking = (index) => { | ||
| 53 | + switch (index) { | ||
| 54 | + case 0: | ||
| 55 | + return icon_ranking1 | ||
| 56 | + case 1: | ||
| 57 | + return icon_ranking2 | ||
| 58 | + case 2: | ||
| 59 | + return icon_ranking3 | ||
| 60 | + default: | ||
| 61 | + return 0 | ||
| 62 | + } | ||
| 63 | +} | ||
| 64 | + | ||
| 65 | +const onFlowerClick = (v) => { | ||
| 66 | + if (v) { | ||
| 67 | + go('/client/donateList', { kg_id: rankInfo.value.id }) | ||
| 68 | + } | ||
| 69 | +} | ||
| 70 | + | ||
| 62 | // eslint-disable-next-line no-unused-vars | 71 | // eslint-disable-next-line no-unused-vars |
| 63 | const props = defineProps({ | 72 | const props = defineProps({ |
| 64 | item: { | 73 | item: { | ... | ... |
| ... | @@ -2,7 +2,7 @@ | ... | @@ -2,7 +2,7 @@ |
| 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:43 | 5 | + * @LastEditTime: 2022-06-25 10:28:13 |
| 6 | * @FilePath: /tswj/src/views/client/donateList.vue | 6 | * @FilePath: /tswj/src/views/client/donateList.vue |
| 7 | * @Description: 幼儿园捐赠人捐赠金额排行榜 | 7 | * @Description: 幼儿园捐赠人捐赠金额排行榜 |
| 8 | --> | 8 | --> |
| ... | @@ -29,10 +29,7 @@ | ... | @@ -29,10 +29,7 @@ |
| 29 | </div> | 29 | </div> |
| 30 | </van-col> | 30 | </van-col> |
| 31 | <van-col> | 31 | <van-col> |
| 32 | - <div class="flower"> | 32 | + <flower-icon :qty="kgInfo.kg_total" align="bottom" /> |
| 33 | - <van-icon :name="icon_flower" color="#c5c5c5" size="1.25rem" style="vertical-align: bottom;" /> {{ | ||
| 34 | - kgInfo.kg_total }} | ||
| 35 | - </div> | ||
| 36 | </van-col> | 33 | </van-col> |
| 37 | </van-row> | 34 | </van-row> |
| 38 | </div> | 35 | </div> |
| ... | @@ -51,10 +48,7 @@ | ... | @@ -51,10 +48,7 @@ |
| 51 | </div> | 48 | </div> |
| 52 | </van-col> | 49 | </van-col> |
| 53 | <van-col span="6" style="color: #222222; text-align: right; font-size: 1rem;"> | 50 | <van-col span="6" style="color: #222222; text-align: right; font-size: 1rem;"> |
| 54 | - <div class="global-center"> | 51 | + <flower-icon :qty="item.qty" align="top" color="#222222" /> |
| 55 | - <van-icon style="vertical-align: top;" size="1.25rem" :name="icon_flower" /> | ||
| 56 | - <span> 2</span> | ||
| 57 | - </div> | ||
| 58 | </van-col> | 52 | </van-col> |
| 59 | </van-row> | 53 | </van-row> |
| 60 | </div> | 54 | </div> |
| ... | @@ -71,6 +65,7 @@ import { useTitle } from '@/utils/generatePackage.js' | ... | @@ -71,6 +65,7 @@ import { useTitle } from '@/utils/generatePackage.js' |
| 71 | import { icon_avatar, no_image, icon_flower, icon_logo } from '@/utils/generateIcons.js' | 65 | import { icon_avatar, no_image, icon_flower, icon_logo } from '@/utils/generateIcons.js' |
| 72 | //import { } from '@/composables' | 66 | //import { } from '@/composables' |
| 73 | import { kgDonateListAPI } from '@/api/C/kg.js' | 67 | import { kgDonateListAPI } from '@/api/C/kg.js' |
| 68 | +import FlowerIcon from '@/components/FlowerIcon' | ||
| 74 | 69 | ||
| 75 | const $route = useRoute() | 70 | const $route = useRoute() |
| 76 | useTitle($route.meta.title); | 71 | useTitle($route.meta.title); | ... | ... |
| ... | @@ -2,7 +2,7 @@ | ... | @@ -2,7 +2,7 @@ |
| 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 01:11:12 | 5 | + * @LastEditTime: 2022-06-25 10:30:13 |
| 6 | * @FilePath: /tswj/src/views/client/rankList.vue | 6 | * @FilePath: /tswj/src/views/client/rankList.vue |
| 7 | * @Description: 幼儿园儿童捐赠金额排行榜 | 7 | * @Description: 幼儿园儿童捐赠金额排行榜 |
| 8 | --> | 8 | --> |
| ... | @@ -27,10 +27,7 @@ | ... | @@ -27,10 +27,7 @@ |
| 27 | </div> | 27 | </div> |
| 28 | </van-col> | 28 | </van-col> |
| 29 | <van-col> | 29 | <van-col> |
| 30 | - <div class="flower"> | 30 | + <flower-icon :qty="kgInfo.kg_total" align="bottom" /> |
| 31 | - <van-icon :name="icon_flower" color="#c5c5c5" size="1.25rem" style="vertical-align: bottom;" /> | ||
| 32 | - {{ kgInfo.kg_total }} | ||
| 33 | - </div> | ||
| 34 | </van-col> | 31 | </van-col> |
| 35 | </van-row> | 32 | </van-row> |
| 36 | </div> | 33 | </div> |
| ... | @@ -41,7 +38,7 @@ | ... | @@ -41,7 +38,7 @@ |
| 41 | <van-row style="padding: 0.5rem;"> | 38 | <van-row style="padding: 0.5rem;"> |
| 42 | <van-col span="2"> | 39 | <van-col span="2"> |
| 43 | <div :class="['global-center', { 'rank-other': rank.rownum >= 4 }]"> | 40 | <div :class="['global-center', { 'rank-other': rank.rownum >= 4 }]"> |
| 44 | - <van-icon v-if="rank.rownum < 4" :name="icon_ranking(rank.rownum)" size="1.75rem" /> | 41 | + <van-icon v-if="rank.rownum < 4" :name="iconRanking(rank.rownum)" size="1.75rem" /> |
| 45 | <span v-else>{{ rank.rownum }} </span> | 42 | <span v-else>{{ rank.rownum }} </span> |
| 46 | </div> | 43 | </div> |
| 47 | </van-col> | 44 | </van-col> |
| ... | @@ -54,10 +51,7 @@ | ... | @@ -54,10 +51,7 @@ |
| 54 | </div> | 51 | </div> |
| 55 | </van-col> | 52 | </van-col> |
| 56 | <van-col span="4" style="text-align: right; font-size: 1rem;"> | 53 | <van-col span="4" style="text-align: right; font-size: 1rem;"> |
| 57 | - <div class="global-center" style="color: #222222;"> | 54 | + <flower-icon :qty="rank.qty" align="top" color="#222222" /> |
| 58 | - <van-icon style="vertical-align: top;" size="1.25rem" :name="icon_flower" /> | ||
| 59 | - <span> {{ rank.qty }}</span> | ||
| 60 | - </div> | ||
| 61 | </van-col> | 55 | </van-col> |
| 62 | </van-row> | 56 | </van-row> |
| 63 | </div> | 57 | </div> |
| ... | @@ -74,11 +68,12 @@ import { useTitle } from '@/utils/generatePackage.js' | ... | @@ -74,11 +68,12 @@ import { useTitle } from '@/utils/generatePackage.js' |
| 74 | import { icon_avatar, icon_ranking1, icon_ranking2, icon_ranking3, icon_flower, icon_logo, no_image } from '@/utils/generateIcons.js' | 68 | import { icon_avatar, icon_ranking1, icon_ranking2, icon_ranking3, icon_flower, icon_logo, no_image } from '@/utils/generateIcons.js' |
| 75 | //import { } from '@/composables' | 69 | //import { } from '@/composables' |
| 76 | import { kgDonateRankAPI } from '@/api/C/kg.js' | 70 | import { kgDonateRankAPI } from '@/api/C/kg.js' |
| 71 | +import FlowerIcon from '@/components/FlowerIcon' | ||
| 77 | 72 | ||
| 78 | const $route = useRoute(); | 73 | const $route = useRoute(); |
| 79 | useTitle($route.meta.title); | 74 | useTitle($route.meta.title); |
| 80 | 75 | ||
| 81 | -const icon_ranking = (rownum) => { | 76 | +const iconRanking = (rownum) => { |
| 82 | switch (rownum) { | 77 | switch (rownum) { |
| 83 | case 1: | 78 | case 1: |
| 84 | return icon_ranking1 | 79 | return icon_ranking1 | ... | ... |
-
Please register or login to post a comment