From b099e758396f61b39d24cf5fa6be7bb0d10c2b4d Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期一, 18 五月 2026 19:16:26 +0800
Subject: [PATCH] 提交
---
small-program/pages/index/index.vue | 100 +++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 99 insertions(+), 1 deletions(-)
diff --git a/small-program/pages/index/index.vue b/small-program/pages/index/index.vue
index 3dd218b..c5a7244 100644
--- a/small-program/pages/index/index.vue
+++ b/small-program/pages/index/index.vue
@@ -49,6 +49,14 @@
<text class="section-title">鎺ㄨ崘瀵勫瓨鐐�</text>
<text class="section-more" @click="jumpJC">鏌ョ湅鏇村</text>
</view>
+
+ <scroll-view class="label-list" scroll-x="true">
+ <view class="list-item" v-for="(item, index) in tagShopList" :key="index">
+ <text class="tag-name">{{ item.tagName }}</text>
+ <text>{{ item.shopCount }}</text>
+ <image src="/static/icon/ic_box@2x.png" mode="widthFix"></image>
+ </view>
+ </scroll-view>
<view class="recommend-list">
<template v-if="pointList.length > 0">
@@ -60,6 +68,9 @@
<view class="point-head">
<text class="point-name">{{ item.name ||'' }}</text>
<text class="point-distance">{{ item.distanceText ||''}}</text>
+ </view>
+ <view class="point-tips" v-if="item.locationTagNames && item.locationTagNames.length > 0">
+ <view class="point-tips-item" v-for="(tag, idx) in item.locationTagNames" :key="idx">{{ tag }}</view>
</view>
<view class="point-address">
<image src="/static/icon/home_ic_location3@2x.png" mode="aspectFit"></image>
@@ -108,6 +119,7 @@
return {
bannerList: [],
pointList: [],
+ tagShopList: [],
ingOrder: null,
showLogin: false,
pendingNavigate: null,
@@ -120,6 +132,7 @@
if (this.cityId && this.latitude && this.longitude) {
await this.getNearbyShopList()
}
+ await this.getTagShopCount()
},
onShow() {
this.ingOrder =null
@@ -134,9 +147,19 @@
this.showLogin = false
fn()
}
+ },
+ cityId() {
+ this.getTagShopCount()
}
},
methods: {
+ async getTagShopCount() {
+ if (!this.cityId) return
+ const res = await this.$u.api.locationTagShopCount({ cityId: this.cityId })
+ if (res.code === 200) {
+ this.tagShopList = res.data || []
+ }
+ },
async checkLocationAuth() {
const _this = this
uni.getSetting({
@@ -220,7 +243,13 @@
}
})
if (res.code === 200) {
- this.pointList = res.data.records || []
+ const list = res.data.records || []
+ list.forEach(item => {
+ if (item.locationTagNames) {
+ item.locationTagNames = item.locationTagNames.split(',')
+ }
+ })
+ this.pointList = list
}
},
jumpJC() {
@@ -527,6 +556,56 @@
justify-content: space-between;
margin-top: 40rpx;
}
+
+ .label-list {
+ width: 100%;
+ margin-top: 30rpx;
+ white-space: nowrap;
+ .list-item {
+ width: 210rpx;
+ height: 120rpx;
+ padding: 16rpx 20rpx;
+ box-sizing: border-box;
+ background: #E6F7FF;
+ border-radius: 16rpx;
+ position: relative;
+ display: inline-flex;
+ flex-direction: column;
+ justify-content: space-between;
+ margin-right: 20rpx;
+ vertical-align: middle;
+ text {
+ &:nth-child(1) {
+ font-weight: 400;
+ font-size: 26rpx;
+ color: #10B2FA;
+ }
+ &:nth-child(2) {
+ font-weight: 600;
+ font-size: 34rpx;
+ color: #222222;
+ }
+ }
+ image {
+ width: 76rpx;
+ height: 62rpx;
+ position: absolute;
+ bottom: 0;
+ right: 0;
+ }
+ }
+ }
+
+ .label-list::-webkit-scrollbar {
+ display: none;
+ }
+
+ .tag-name {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ max-width: 170rpx;
+ }
.section-title {
font-size: 36rpx;
@@ -594,6 +673,25 @@
gap: 10rpx;
}
+ .point-tips {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ margin-top: 12rpx;
+ .point-tips-item {
+ width: 116rpx;
+ height: 36rpx;
+ line-height: 36rpx;
+ text-align: center;
+ border-radius: 8rpx;
+ font-weight: 400;
+ font-size: 20rpx;
+ color: #10B2FA;
+ margin-right: 12rpx;
+ border: 1rpx solid #10B2FA;
+ }
+ }
+
.point-name {
flex: 1;
font-size: 32rpx;
--
Gitblit v1.9.3