From 9d4cc859d6e6e1181d9f10653ce6d51a0c50639c Mon Sep 17 00:00:00 2001 From: woody Date: Tue, 23 Sep 2025 11:56:22 +0800 Subject: [PATCH 1/9] =?UTF-8?q?fix(other):=20=E4=BF=AE=E5=A4=8D=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E9=94=80=E6=AF=81=E6=97=B6=E8=A7=A6=E5=8F=91=E4=BC=9A?= =?UTF-8?q?=E5=91=98=E7=BC=96=E5=8F=B7=E8=A7=A6=E5=8F=91=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/other/index.vue | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/pages/other/index.vue b/pages/other/index.vue index d4364f9..50013e7 100644 --- a/pages/other/index.vue +++ b/pages/other/index.vue @@ -20,7 +20,12 @@ --> - + - + { if (res.data.isEnough) { - console.log(res.data, 'res.data...memLevel') this.form.pkGradeVal = res.data.pkGradeVal } else { this.isLoading.close() @@ -826,6 +835,7 @@ export default { }, // 升级编号获取name upgradeMemberCodePass(rule, value, callback) { + console.log('asdasd?') if (!value) { callback(new Error('请输入会员编号')) } else { From 304d8892963cd579a77840ae9d19555e55be5e73 Mon Sep 17 00:00:00 2001 From: woody Date: Wed, 24 Sep 2025 09:50:21 +0800 Subject: [PATCH 2/9] =?UTF-8?q?fix(shoppingCar):=20=E8=B4=AD=E7=89=A9?= =?UTF-8?q?=E8=BD=A6=E4=BC=9A=E5=91=98=E4=B8=93=E5=8C=BA=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/shoppingCar/index.vue | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/pages/shoppingCar/index.vue b/pages/shoppingCar/index.vue index ef2f273..a134f4d 100644 --- a/pages/shoppingCar/index.vue +++ b/pages/shoppingCar/index.vue @@ -356,7 +356,7 @@ export default { }) // sangelxiu1 this.newShareMember = uni.getStorageSync('User')?.loginType !== 0 - if(this.newShareMember){ + if (this.newShareMember) { uni.navigateTo({ url: '/pages/regiest/shareRegister?specialArea=' + @@ -364,7 +364,7 @@ export default { '&shoppArr=' + JSON.stringify(shoppArr), }) - }else{ + } else { uni.navigateTo({ url: '/pages/regiest/index?specialArea=' + @@ -586,12 +586,14 @@ export default { }) }) this.shopCarList = res.data - if(this.newShareMember){ - if(this.shopCarList){ - this.shopCarList = this.shopCarList.filter(car => car.specialArea === 41); - let subCar = this.shopCarList.find(car => car.specialArea === 41) - this.$set(subCar, 'specialAreaVal', '会员专区') - } + if (this.newShareMember) { + if (this.shopCarList) { + this.shopCarList = this.shopCarList.filter( + car => car.specialArea === 1 + ) + let subCar = this.shopCarList.find(car => car.specialArea === 1) + this.$set(subCar, 'specialAreaVal', '会员专区') + } } }) }, From 2e4edbd887647663e1ca4d157243984bc7492267 Mon Sep 17 00:00:00 2001 From: woody Date: Wed, 24 Sep 2025 14:57:32 +0800 Subject: [PATCH 3/9] =?UTF-8?q?fix(other):=20=E5=8D=87=E7=BA=A7=E5=8D=95?= =?UTF-8?q?=E5=BC=82=E6=AD=A5=E6=A0=A1=E9=AA=8C=E9=97=AE=E9=A2=98=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/request.js | 3 +- pages/other/index.vue | 129 ++++++++++++++++++++++++++---------------- 2 files changed, 82 insertions(+), 50 deletions(-) diff --git a/config/request.js b/config/request.js index 4b3290c..8a68a49 100644 --- a/config/request.js +++ b/config/request.js @@ -19,7 +19,7 @@ module.exports = vm => { //#ifdef DEV_SERVER console.log('DEV_SERVER') - config.baseURL = 'https://t-app.beida666.com/prod-api' + config.baseURL = 'http://192.168.0.86:8080' //#endif //#ifdef QA_SERVER @@ -57,7 +57,6 @@ module.exports = vm => { // 响应拦截 uni.$u.http.interceptors.response.use( response => { - console.log(response, '......response') const data = response.data // uni.$u.toast(data.msg) // if (data.code == 200) { diff --git a/pages/other/index.vue b/pages/other/index.vue index 50013e7..78a5d55 100644 --- a/pages/other/index.vue +++ b/pages/other/index.vue @@ -64,6 +64,7 @@ v-model="form.upgradeMemberCode" :disabled="isSpace" border="none" + @blur="upgradeMemberCodeHandleCb" /> { - deleteList.push({ - shoppingId: item, + return new Promise((resolve, reject) => { + let deleteList = [] + this.shoppingArr.forEach(item => { + deleteList.push({ + shoppingId: item, + }) }) - }) - this.allGoodsData.deleteList = deleteList - this.allGoodsData.upgradeMemberCode = this.form.upgradeMemberCode + this.allGoodsData.deleteList = deleteList + this.allGoodsData.upgradeMemberCode = this.form.upgradeMemberCode - api.memLevel(this.allGoodsData).then(res => { - if (res.data.isEnough) { - this.form.pkGradeVal = res.data.pkGradeVal - } else { - this.isLoading.close() - } + api + .memLevel(this.allGoodsData) + .then(res => { + if (res.data.isEnough) { + this.form.pkGradeVal = res.data.pkGradeVal + resolve() + } else { + this.isLoading.close() + reject() + } + }) + .catch(err => { + reject(err) + }) }) }, addAdress() { @@ -835,36 +845,59 @@ export default { }, // 升级编号获取name upgradeMemberCodePass(rule, value, callback) { - console.log('asdasd?') if (!value) { - callback(new Error('请输入会员编号')) - } else { + return callback(new Error('请输入会员编号')) + } + callback() + // else { + + // api + // .upgRel({ + // upgradeMemberCode: value, + // }) + // .then(res => { + // if (res.code == 200) { + // this.form.upgradeMemberName = res.data.upgradeMemberName + // if ( + // this.specialArea == 2 || + // this.specialArea == 25 || + // this.specialArea == 27 + // ) { + // this.getMember() + // } + // this.$forceUpdate() + // callback() + // } else { + // callback(new Error(res.msg)) + // } + // }) + // .catch(err => { + // callback(new Error(err)) + // }) + // } + }, + getMemberName(val) { + return new Promise((resolve, reject) => { api .upgRel({ - upgradeMemberCode: value, + upgradeMemberCode: val || this.form.upgradeMemberCode, }) .then(res => { if (res.code == 200) { + reslove() this.form.upgradeMemberName = res.data.upgradeMemberName - if ( - this.specialArea == 2 || - this.specialArea == 25 || - this.specialArea == 27 - ) { - this.getMember() - } this.$forceUpdate() - callback() } else { - callback(new Error(res.msg)) + reject() } }) - .catch(err => { - callback(new Error(err)) - }) - } + }) + }, + upgradeMemberCodeHandleCb(val) { + this.getMemberName(val).then(() => { + this.getMember() + }) }, - sureCk(e) { const { value } = e this.form.pkStorehouse = value[0].id @@ -1027,16 +1060,8 @@ export default { uni.setStorageSync('mToken', res.msg) }) }, - goBuy() { - this.$refs.uForm.validate().then(res => { - if (this.agreementShow.length == 0) { - uni.showToast({ - title: '请阅读并同意购买协议', - icon: 'none', - duration: 1500, - }) - return - } + async goBuy() { + this.$refs.uForm.validate().then(async res => { if (this.specialArea == 31) { if (this.totalAmont < 1000) { uni.showToast({ @@ -1048,6 +1073,14 @@ export default { } } this.isLoading = true + try { + await this.getMemberName() + await this.getMember() + } catch (err) { + this.isLoading = false + return + } + let deleteList = [] this.shoppingArr.forEach(item => { deleteList.push({ From 3c2b8f74753a332f8ed87ddd7ee2396e85007552 Mon Sep 17 00:00:00 2001 From: woody Date: Wed, 24 Sep 2025 15:28:17 +0800 Subject: [PATCH 4/9] fix(other): promise resolve --- pages/other/index.vue | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pages/other/index.vue b/pages/other/index.vue index 78a5d55..240b809 100644 --- a/pages/other/index.vue +++ b/pages/other/index.vue @@ -878,17 +878,19 @@ export default { }, getMemberName(val) { return new Promise((resolve, reject) => { + const promiseResolve = resolve + const promiseReject = reject api .upgRel({ upgradeMemberCode: val || this.form.upgradeMemberCode, }) .then(res => { - if (res.code == 200) { - reslove() + if (res.code === 200) { + promiseResolve() this.form.upgradeMemberName = res.data.upgradeMemberName this.$forceUpdate() } else { - reject() + promiseReject() } }) }) From f066a7aab9b7754968b1d44c38e002125f9d648a Mon Sep 17 00:00:00 2001 From: woody Date: Thu, 25 Sep 2025 11:18:52 +0800 Subject: [PATCH 5/9] =?UTF-8?q?feat(rankIng):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=8E=92=E8=A1=8C=E6=A6=9C=E5=BC=B9=E7=AA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/RankingPopup.vue | 670 +++++++++++++++++++++++++++++ components/RankingPopupExample.vue | 127 ++++++ components/noticePopup.vue | 7 +- components/region-select/index.vue | 30 +- config/index.js | 25 +- config/request.js | 2 +- pages/index/index.vue | 93 +++- static/images/rank-1.svg | 1 + static/images/rank-2.svg | 1 + static/images/rank-3.svg | 1 + 10 files changed, 920 insertions(+), 37 deletions(-) create mode 100644 components/RankingPopup.vue create mode 100644 components/RankingPopupExample.vue create mode 100644 static/images/rank-1.svg create mode 100644 static/images/rank-2.svg create mode 100644 static/images/rank-3.svg diff --git a/components/RankingPopup.vue b/components/RankingPopup.vue new file mode 100644 index 0000000..aa1dac8 --- /dev/null +++ b/components/RankingPopup.vue @@ -0,0 +1,670 @@ + + + + + diff --git a/components/RankingPopupExample.vue b/components/RankingPopupExample.vue new file mode 100644 index 0000000..2e4d364 --- /dev/null +++ b/components/RankingPopupExample.vue @@ -0,0 +1,127 @@ + + + + + diff --git a/components/noticePopup.vue b/components/noticePopup.vue index 49884e5..91e2827 100644 --- a/components/noticePopup.vue +++ b/components/noticePopup.vue @@ -19,7 +19,6 @@
- @@ -42,12 +41,12 @@ export default { } }, mounted() { - this.getUserTc() + // this.getUserTc() }, methods: { closeTap() { this.noticeFlag = false - // this.$emit("getTree"); + this.$emit('close') }, getUserTc(data) { api @@ -63,6 +62,8 @@ export default { if (items == this.publishLocationIndex) { this.noticeFlag = true this.content = res.data[0] + } else { + this.$emit('close') } }) } diff --git a/components/region-select/index.vue b/components/region-select/index.vue index 59824a0..4679daa 100644 --- a/components/region-select/index.vue +++ b/components/region-select/index.vue @@ -101,20 +101,24 @@ export default { if (!this.autoTrigger) { return } - uni.showLoading({ - title: '加载中...', - }) - this.getRegionSelect() - .then(selectedList => { - this.selectedList = selectedList - const area = selectedList.shift() - this.open(area) - }) - .catch(() => { - uni.hideLoading() - }) + this.init() }, methods: { + init() { + uni.showLoading({ + title: '加载中...', + }) + this.getRegionSelect() + .then(selectedList => { + this.selectedList = selectedList + const area = selectedList.shift() + this.open(area) + }) + .catch(() => { + this.$emit('success') + uni.hideLoading() + }) + }, async getRegionSelect() { return new Promise(async (resolve, reject) => { try { @@ -125,7 +129,6 @@ export default { .filter(key => res.data[key]) .filter(key => !res.data?.data?.[`${key}Data`]) .reverse() - console.log(needSelected, 'needSelected') if ( needSelected?.length && Object.keys(res.data?.data || {}).length < needSelected?.length @@ -274,6 +277,7 @@ export default { throw new Error(res.message || 'Failed to set region') } } catch (error) { + this.$emit('success') console.error('Failed to set region:', error) } }, diff --git a/config/index.js b/config/index.js index 5d2d869..3525b65 100644 --- a/config/index.js +++ b/config/index.js @@ -1,19 +1,30 @@ - const http = uni.$u.http //首页 -export const userIndex = (params) => http.get('/sale/api/wares/get-app-index', { params }) +export const userIndex = params => + http.get('/sale/api/wares/get-app-index', { params }) //修改头像 -export const updateHead = (data) => http.post('/member/api/member/update-head', data) +export const updateHead = data => + http.post('/member/api/member/update-head', data) //提货记录列表 -export const pickList = (params) => http.get('/activity/api/pick/list', { params }) +export const pickList = params => + http.get('/activity/api/pick/list', { params }) //提货专区列表 -export const pickLogList = (params) => http.get('/activity/api/pick/pick-log', { params }) +export const pickLogList = params => + http.get('/activity/api/pick/pick-log', { params }) //植树活动 -export const queryTreeActivity = (params) => http.get('/activity/api/sa-tree-order/queryTreeActivity', { params }) +export const queryTreeActivity = params => + http.get('/activity/api/sa-tree-order/queryTreeActivity', { params }) //创客空间列表 -export const marketList = (params) => http.get('/member/api/maker-space/list', { params }) \ No newline at end of file +export const marketList = params => + http.get('/member/api/maker-space/list', { params }) + +export const getTopPeople = params => + http.post('/member/api/member-statistics/topPeople', params) + +export const getTopAmount = params => + http.post('/member/api/member-statistics/topAmount', params) diff --git a/config/request.js b/config/request.js index 8a68a49..de3f61c 100644 --- a/config/request.js +++ b/config/request.js @@ -19,7 +19,7 @@ module.exports = vm => { //#ifdef DEV_SERVER console.log('DEV_SERVER') - config.baseURL = 'http://192.168.0.86:8080' + config.baseURL = 'https://t-app.beida666.com/prod-api' //#endif //#ifdef QA_SERVER diff --git a/pages/index/index.vue b/pages/index/index.vue index 576377e..71006c1 100644 --- a/pages/index/index.vue +++ b/pages/index/index.vue @@ -27,6 +27,7 @@
+ @@ -54,7 +55,7 @@
- + +
- +
@@ -107,6 +112,7 @@ import { mapGetters } from 'vuex' import RegionSelect from '@/components/region-select/index.vue' import RaisedTabbar from '@/components/raised-tabbar.vue' import GoodsList from '@/components/goods-list.vue' +import RankingPopup from '@/components/RankingPopup.vue' export default { components: { noticePopup, @@ -116,6 +122,7 @@ export default { areaProductList, RegionSelect, GoodsList, + RankingPopup, }, filters: { seles(value) { @@ -128,6 +135,7 @@ export default { }, data() { return { + rankingComplete: false, newShareMember: false, promptFlag: false, promptMsg: '', @@ -353,6 +361,7 @@ export default { // this.getLanguage(); this.getService() + // this.showRankingPopups() }, onShow() { this.$store.dispatch('getCarLength') @@ -360,6 +369,10 @@ export default { this.user = uni.getStorageSync('User') this.getAreaGoods() this.newShareMember = this.user?.loginType !== 0 + if (this.user.memberCode !== 'BD68880628') { + console.log('init') + this.$refs.regionSelect.init() + } }) }, onPullDownRefresh() { @@ -379,6 +392,33 @@ export default { } }, + // 显示排行榜弹窗 + async showRankingPopups() { + try { + this.$nextTick(async () => { + await this.$refs.rankingPopup.showRankingPopups() + }) + } catch (error) { + console.error('显示排行榜失败:', error) + uni.showToast({ + title: '加载排行榜失败', + icon: 'error', + }) + } + }, + + // 排行榜查看完成回调 + handleRankingComplete() { + this.rankingComplete = true + this.$refs.child.getUserTc() + }, + regionSelectSuccess() { + if (this.rankingComplete) { + return + } + this.showRankingPopups() + }, + goAreaUrl() { ban.agreementName().then(res => { if (res.data == 0) { @@ -450,15 +490,11 @@ export default { } }) }, - callChildMethod() { - this.$refs.child.getUserTc() - }, callznMethod() { this.$refs.child2.getUserTc2() }, - // 植树弹层 - getTree() { - this.$refs.tree.getData() + noticePopupHandleClose() { + // this.$refs.regionSelect.getRegionSelect() }, isEmpty(v) { switch (typeof v) { @@ -619,6 +655,37 @@ export default { height: 100%; } } + +// 排行榜入口样式 +.ranking-entry { + padding: 20rpx 30rpx; + + .ranking-btn { + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + border-radius: 25rpx; + padding: 20rpx 30rpx; + display: flex; + align-items: center; + justify-content: center; + box-shadow: 0 4rpx 12rpx rgba(102, 126, 234, 0.3); + + .ranking-icon { + font-size: 32rpx; + margin-right: 12rpx; + } + + .ranking-text { + color: #fff; + font-size: 28rpx; + font-weight: bold; + } + + &:active { + transform: scale(0.98); + transition: transform 0.1s ease; + } + } +} .content1 { background: url('~@/static/images/fBgd.jpg') no-repeat; background-size: 100% 100%; diff --git a/static/images/rank-1.svg b/static/images/rank-1.svg new file mode 100644 index 0000000..2e71275 --- /dev/null +++ b/static/images/rank-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/images/rank-2.svg b/static/images/rank-2.svg new file mode 100644 index 0000000..cd262ed --- /dev/null +++ b/static/images/rank-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/images/rank-3.svg b/static/images/rank-3.svg new file mode 100644 index 0000000..cc5c979 --- /dev/null +++ b/static/images/rank-3.svg @@ -0,0 +1 @@ + \ No newline at end of file From 495d23317d614f92623f595c9094188d11f1f66d Mon Sep 17 00:00:00 2001 From: woody Date: Thu, 25 Sep 2025 14:31:39 +0800 Subject: [PATCH 6/9] =?UTF-8?q?feat(ranking):=20=E5=BC=B9=E7=AA=97?= =?UTF-8?q?=E6=A0=B7=E5=BC=8F=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/RankingPopup.vue | 475 +++++++++++++++++++++++++++++------- 1 file changed, 384 insertions(+), 91 deletions(-) diff --git a/components/RankingPopup.vue b/components/RankingPopup.vue index aa1dac8..d521c55 100644 --- a/components/RankingPopup.vue +++ b/components/RankingPopup.vue @@ -78,9 +78,9 @@ - + - + Date: Thu, 25 Sep 2025 15:44:51 +0800 Subject: [PATCH 7/9] =?UTF-8?q?fix(rankingPopup):=20=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=A0=B7=E5=BC=8F=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/RankingPopup.vue | 119 ++++++++++++++++++++++-------------- 1 file changed, 72 insertions(+), 47 deletions(-) diff --git a/components/RankingPopup.vue b/components/RankingPopup.vue index d521c55..289253d 100644 --- a/components/RankingPopup.vue +++ b/components/RankingPopup.vue @@ -23,15 +23,16 @@ + {{ + peopleTopThree[1].memberCode + }} - {{ peopleTopThree[1].memberName }} + {{ peopleTopThree[1].memberName | formatMemberName }} - {{ - peopleTopThree[1].memberCode - }} + {{ peopleTopThree[1].count }}人 @@ -42,15 +43,16 @@ + + + {{ peopleTopThree[0].memberCode }} + - {{ peopleTopThree[0].memberName }} + {{ peopleTopThree[0].memberName | formatMemberName }} - {{ - peopleTopThree[0].memberCode - }} {{ peopleTopThree[0].count }}人 @@ -61,15 +63,16 @@ + {{ + peopleTopThree[2].memberCode + }} - {{ peopleTopThree[2].memberName }} + {{ peopleTopThree[2].memberName | formatMemberName }} - {{ - peopleTopThree[2].memberCode - }} + {{ peopleTopThree[2].count }}人
@@ -78,9 +81,6 @@ - {{ index + 4 }} + {{ item.memberCode }} - {{ item.memberName }} + {{ item.memberName | formatMemberName }} - {{ item.memberCode }} - {{ item.count }}人 + + {{ item.count }} + + 暂无更多数据 @@ -147,7 +150,7 @@ class="member-name" :class="{ highlight: amountTopThree[1].isLoginMember == 1 }" > - {{ amountTopThree[1].memberName }} + {{ amountTopThree[1].memberName | formatMemberName }} {{ amountTopThree[1].memberCode @@ -168,7 +171,7 @@ class="member-name" :class="{ highlight: amountTopThree[0].isLoginMember == 1 }" > - {{ amountTopThree[0].memberName }} + {{ amountTopThree[0].memberName | formatMemberName }} {{ amountTopThree[0].memberCode @@ -189,7 +192,7 @@ class="member-name" :class="{ highlight: amountTopThree[2].isLoginMember == 1 }" > - {{ amountTopThree[2].memberName }} + {{ amountTopThree[2].memberName | formatMemberName }} {{ amountTopThree[2].memberCode @@ -219,15 +222,17 @@ > {{ index + 4 }} + {{ item.memberCode }} - {{ item.memberName }} + {{ item.memberName | formatMemberName }} - {{ item.memberCode }} - {{ formatAmount(item.amount) }} + + {{ item.amount }} + 暂无更多数据 @@ -278,7 +283,11 @@ export default { userInfo: uni.getStorageSync('User') || {}, } }, - + filters: { + formatMemberName(val) { + return val?.slice(0, 8) || '' + }, + }, methods: { // 显示排行榜弹窗(先显示人数排行) async showRankingPopups() { @@ -542,7 +551,7 @@ export default { font-size: 24rpx; color: #fff; text-align: center; - + margin-bottom: 8rpx; font-weight: bold; max-width: 110rpx; overflow: hidden; @@ -556,7 +565,7 @@ export default { .member-code { color: #fff; text-align: center; - margin-bottom: 8rpx; + margin-top: 8rpx; font-size: 24rpx; font-weight: 600; overflow: hidden; @@ -589,6 +598,18 @@ export default { background: linear-gradient(135deg, #c0c0c0 0%, #e8e8e8 50%, #c0c0c0 100%); } + // .member-name { + // font-size: 26rpx; + // } + + // .member-code { + // font-size: 26rpx; + // } + + // .score { + // font-size: 26rpx; + // } + .rank-number img { height: 70rpx; width: 70rpx; @@ -625,16 +646,15 @@ export default { } .member-code { - font-size: 22rpx; + font-size: 28rpx; color: #ffd700; font-weight: 600; } .score { color: #ffd700; - font-size: 24rpx; + font-size: 28rpx; font-weight: 900; - min-width: 70rpx; } } @@ -643,17 +663,23 @@ export default { .player-area { transform: translateY(10rpx); } - &::after { - width: 110rpx; - height: 80rpx; - background: linear-gradient(135deg, #cd7f32 0%, #deb887 50%, #cd7f32 100%); - } .rank-number img { height: 65rpx; width: 65rpx; animation: bronze-glow 2s ease-in-out infinite alternate; } + // .member-name { + // font-size: 22rpx; + // } + + // .member-code { + // font-size: 22rpx; + // } + + // .score { + // font-size: 22rpx; + // } } @keyframes title-bling { @@ -794,7 +820,7 @@ export default { .list-item { display: flex; align-items: center; - padding: 24rpx 40rpx; + padding: 24rpx 30rpx; border-bottom: 1rpx solid rgba(226, 232, 240, 0.8); position: relative; transition: all 0.3s ease; @@ -820,8 +846,8 @@ export default { margin-right: 20rpx; background: linear-gradient(135deg, #f1f5f9 0%, #e2e8f0 100%); border-radius: 50%; - width: 60rpx; - height: 60rpx; + width: 40rpx; + height: 40rpx; display: flex; align-items: center; justify-content: center; @@ -829,10 +855,10 @@ export default { } .item-info { - flex: 1; + flex: 2; display: flex; - flex-direction: column; - margin-left: 15rpx; + align-items: center; + justify-content: space-between; } .item-name { @@ -841,7 +867,6 @@ export default { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; - margin-bottom: 6rpx; font-weight: 600; &.highlight { @@ -870,19 +895,19 @@ export default { .item-code { font-size: 22rpx; color: #64748b; - overflow: hidden; - text-overflow: ellipsis; white-space: nowrap; } .item-score { + flex: 1; font-size: 24rpx; color: #374151; font-weight: bold; min-width: 100rpx; text-align: center; - padding: 8rpx 16rpx; border-radius: 20rpx; + display: flex; + justify-content: flex-end; } } @@ -898,7 +923,7 @@ export default { } .popup-footer { - padding: 25rpx 40rpx 35rpx; + padding: 20rpx; flex-shrink: 0; position: relative; z-index: 2; @@ -911,7 +936,7 @@ export default { ); color: #005bac; text-align: center; - padding: 28rpx 50rpx; + padding: 20rpx 50rpx; border-radius: 50rpx; font-size: 30rpx; font-weight: bold; From 6b1169ea4340e64c686b2ddd9017633e1321a12f Mon Sep 17 00:00:00 2001 From: woody Date: Fri, 26 Sep 2025 09:20:24 +0800 Subject: [PATCH 8/9] =?UTF-8?q?fix(rankingPopup):=20=20=E6=8E=92=E8=A1=8C?= =?UTF-8?q?=E6=A6=9C=E9=80=BB=E8=BE=91=E5=AE=8C=E5=96=84=EF=BC=8C=E5=A6=82?= =?UTF-8?q?=E6=9E=9C=E5=88=97=E8=A1=A8=E4=B8=BA=E7=A9=BA=E4=B8=8D=E5=B1=95?= =?UTF-8?q?=E7=A4=BA=E6=8E=92=E8=A1=8C=E6=A6=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/RankingPopup.vue | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/components/RankingPopup.vue b/components/RankingPopup.vue index 289253d..86d061a 100644 --- a/components/RankingPopup.vue +++ b/components/RankingPopup.vue @@ -295,9 +295,14 @@ export default { try { // 并行加载两个排行榜数据 await Promise.all([this.loadPeopleRanking(), this.loadAmountRanking()]) - // 先显示人数排行榜 - this.showPeopleRanking = true + if (this.peopleTopThree.length > 0) { + this.showPeopleRanking = true + } else if (this.amountTopThree.length > 0) { + this.showAmountRanking = true + } else { + this.$emit('onRankingComplete') + } } catch (error) { console.error('加载排行榜数据失败:', error) uni.showToast({ @@ -327,6 +332,7 @@ export default { faker: true, } const res = await api.getTopPeople(params) + console.log(res.data) if (res.code === 200 && res.data) { // 数据字段映射 const mappedData = res.data.map(item => ({ From 6e93dcdde3daff80065ecdaab76aa56f3c1d8651 Mon Sep 17 00:00:00 2001 From: woody Date: Fri, 26 Sep 2025 09:44:43 +0800 Subject: [PATCH 9/9] =?UTF-8?q?fix(ranking):=20=E5=85=B3=E9=97=AD=E4=BA=BA?= =?UTF-8?q?=E6=95=B0=E6=8E=92=E8=A1=8C=E5=90=8E=E5=88=A4=E6=96=AD=E9=87=91?= =?UTF-8?q?=E9=A2=9D=E6=8E=92=E8=A1=8C=E6=98=AF=E5=90=A6=E6=9C=89=E6=95=B0?= =?UTF-8?q?=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/RankingPopup.vue | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/components/RankingPopup.vue b/components/RankingPopup.vue index 86d061a..d174f86 100644 --- a/components/RankingPopup.vue +++ b/components/RankingPopup.vue @@ -384,10 +384,13 @@ export default { // 关闭人数排行榜,显示金额排行榜 closePeopleRanking() { this.showPeopleRanking = false - // 延迟显示金额排行榜,让关闭动画完成 - setTimeout(() => { - this.showAmountRanking = true - }, 300) + if (this.amountTopThree.length > 0) { + setTimeout(() => { + this.showAmountRanking = true + }, 300) + } else { + this.$emit('onRankingComplete') + } }, // 关闭金额排行榜