| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201 | <route lang="json">{  "style": {    "navigationBarTitleText": "获取榜单",    "navigationStyle": "custom"  }}</route><script setup lang="ts">import dayjs from 'dayjs'import { useUserStore } from '@/store'import { storeToRefs } from 'pinia'import { leaderV1, leaderV2, leaderV3 } from '@/core/libs/svgs'import { getCollectionBadgeNotice } from '@/core/libs/requests'const id = ref()const theTop3 = ref<any[]>([])const otherTop = ref<any[]>([])const { data: rankList, run: setRankList } = useRequest(  () => getCollectionBadgeNotice({ badgeId: id.value }),  {    initialData: [],  },)const handleClickLeft = () => {  uni.navigateBack()}onLoad(async (query?: Record<string | 'active' | 'id' | 'isShared', string>) => {  if (query?.id) {    id.value = query.id    await setRankList()    theTop3.value = rankList.value.length >= 3 ? rankList.value.slice(0, 3) : rankList.value    otherTop.value = rankList.value.slice(3)  }})</script><template>  <wd-navbar    fixed    placeholder    left-arrow    safeAreaInsetTop    custom-style="background-color: #22201E !important;"    @click-left="handleClickLeft"    :bordered="false"  >    <template #title>      <view class="wd-navbar__title" style="color: #fff !important">获取榜单</view>    </template>    <template #left>      <wd-icon name="thin-arrow-left" color="#fff" size="24px"></wd-icon>    </template>  </wd-navbar>  <div class="bg-[#22201E] h-full flex flex-[1] flex-col flex-grow">    <!-- 头部区域 -->    <div class="h-[134px] px-[14px]">      <div class="h-[26px] color-[#999999] font-size-[12px] text-center lh-[26px]">        按获取时间排序      </div>      <div class="mt-[42px] w-[calc(100vw-28px)] mx-[auto] flex justify-around">        <!-- 第二名 leader2 -->        <div class="w-[60px] h-[60px] relative">          <div class="absolute top-[-16px] left-[50%] translate-x-[-50%]">            <wd-img :src="leaderV2" width="46" height="23"></wd-img>          </div>          <!-- 头像 -->          <div            class="w-[60px] h-[60px] rounded-full bg-[#999999] border-[1px] border-[#D1E0EE] border-solid absolute top-[0] left-[0] overflow-hidden z-0"          >            <wd-img :src="theTop3[1]?.avatar" width="60" height="60" class="rounded-full"></wd-img>          </div>          <div            class="absolute bottom-[-16px] left-[50%] translate-x-[-50%] sign-bg2 color-[#657A98] text-center font-size-[12px] fw-400 w-[42px] h-[16px]"          >            NO.2          </div>        </div>        <!-- 第一名 leader1 -->        <div class="w-[66px] h-[66px] relative mt-[-13px]">          <div class="absolute top-[-18px] left-[25px] translate-x-[-20px]">            <wd-img :src="leaderV1" width="50" height="25"></wd-img>          </div>          <!-- 头像 -->          <div            class="w-[66px] h-[66px] rounded-full bg-[#999999] border-[1px] border-[#FFC700] border-solid absolute top-[0] left-[0] overflow-hidden z-0"          >            <wd-img :src="theTop3[0]?.avatar" width="66" height="66" class="rounded-full"></wd-img>          </div>          <div            class="absolute bottom-[-12px] left-[23px] translate-x-[-16px] sign-bg1 color-[#FFDF79] text-center font-size-[12px] fw-400 w-[46px] h-[17px]"          >            NO.1          </div>        </div>        <!-- 第三名 leader3 -->        <div class="w-[60px] h-[60px] relative">          <div class="absolute top-[-16px] left-[50%] translate-x-[-50%]">            <wd-img :src="leaderV3" width="46" height="23"></wd-img>          </div>          <!-- 头像 -->          <div            class="w-[60px] h-[60px] rounded-full bg-[#999999] border-[1px] border-[#A87F79] border-solid absolute top-[0] left-[0] overflow-hidden z-0"          >            <wd-img :src="theTop3[2]?.avatar" width="60" height="60" class="rounded-full"></wd-img>          </div>          <div            class="absolute bottom-[-16px] left-[50%] translate-x-[-50%] sign-bg3 color-[#856660] text-center font-size-[12px] fw-400 w-[42px] h-[16px]"          >            NO.3          </div>        </div>      </div>    </div>    <!-- 头部 领奖台 -->    <div class="bg-gradient-to-b pt-[12px] from-[#22201E] to-[#191818] h-[102px]">      <div class="flex justify-around h-[95px] w-[calc(100vw-28px)] mx-[auto]">        <div          class="w-[87px] pr-[50px] h-[95px] mr-[-50px] relative z-5 bg-[url(https://image.zhuchaohui.com/zhucaohui/e5b96189f235d0dee01209cfe50a1e50751459e03099027528f62a8878a4f1a9.png)] bg-[length:100%_100%]"        >          <div class="absolute bottom-[20px] left-[0px]">            <div class="w-[87px] color-[#fff] font-size-[14px] fw-400 lh-[26px] text-center">              {{ theTop3[1]?.name }}            </div>            <div class="w-[87px] color-[#BDBDBD] font-size-[12px] fw-500 text-center">              {{ dayjs(theTop3[1]?.acquisitionTime).format('YYYY-MM-DD') }}            </div>          </div>        </div>        <div          class="w-[137px] h-[107px] mt-[-12px] relative z-10 bg-[url(https://image.zhuchaohui.com/zhucaohui/e5b96189f235d0dee01209cfe50a1e50751459e03099027528f62a8878a4f1a9.png)] bg-[length:100%_100%]"        >          <div class="absolute bottom-[20px] left-[0px] w-[137px]">            <div class="color-[#fff] font-size-[14px] fw-400 lh-[26px] text-center">              {{ theTop3[0]?.name }}            </div>            <div class="color-[#BDBDBD] font-size-[12px] fw-500 text-center">              {{ dayjs(theTop3[0]?.acquisitionTime).format('YYYY-MM-DD') }}            </div>          </div>        </div>        <div          class="w-[97px] h-[95px] ml-[-40px] pl-[40px] relative z-5 bg-[url(https://image.zhuchaohui.com/zhucaohui/e5b96189f235d0dee01209cfe50a1e50751459e03099027528f62a8878a4f1a9.png)] bg-[length:100%_100%]"        >          <div class="absolute bottom-[20px] right-[0px]">            <div class="w-[97px] color-[#fff] font-size-[14px] fw-400 lh-[26px] text-center">              {{ theTop3[2]?.name }}            </div>            <div class="w-[97px] color-[#BDBDBD] font-size-[12px] fw-500 text-center">              {{ dayjs(theTop3[2]?.acquisitionTime).format('YYYY-MM-DD') }}            </div>          </div>        </div>      </div>    </div>    <!-- 其他人员 -->    <div class="bg-gradient-to-t from-[#22201E] to-[#191818]">      <div        class="h-[626px] bg-gradient-to-b from-[#22201E] to-[#191818] m-[14px] p-[14px]"        style="border-radius: 16px"      >        <div          class="flex justify-between items-center pb-[20px]"          v-for="item in otherTop"          :key="item.rank1"        >          <div class="w-[20%] color-[#666] text-center font-size-[18px] fw-700">            {{ item.rank1 >= 10 ? item.rank1 : '0' + item.rank1 }}          </div>          <div class="w-[50%] flex items-center">            <wd-img :src="item.avatar" width="44" height="44"></wd-img>            <div class="color-[#fff] font-size-[16px] fw-400 lh-[26px] ml-[10px]">              {{ item.name }}            </div>          </div>          <div class="w-[30%] text-center font-size-[14px] fw-500 color-[#BDBDBD]">            {{ dayjs(item.acquisitionTime).format('YYYY-MM-DD') }}          </div>        </div>      </div>    </div>  </div></template><style lang="scss" scoped>.sign-bg1 {  border-radius: 20px;  border: 1px solid #e5c57f;  background: linear-gradient(90deg, #f9a939 0%, #d37c2b 100%);}.sign-bg2 {  border-radius: 18.603px;  border: 0.75px solid #d5e8ff;  background: linear-gradient(90deg, #d9e4f7 0%, #a8b9d3 100%);}.sign-bg3 {  border-radius: 18.603px;  border: 1px solid #dcc4ba;  background: linear-gradient(90deg, #fce7dc 0%, #c39f98 100%);}</style>
 |