From b0712811a0421dd3d4bc6ea03c54b7b39096439e Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期六, 28 二月 2026 18:27:42 +0800
Subject: [PATCH] 提交

---
 mini-program/pages/index/index.vue |   84 +++++++++++++++++++++++------------------
 1 files changed, 47 insertions(+), 37 deletions(-)

diff --git a/mini-program/pages/index/index.vue b/mini-program/pages/index/index.vue
index d6f113a..c127892 100644
--- a/mini-program/pages/index/index.vue
+++ b/mini-program/pages/index/index.vue
@@ -1,12 +1,11 @@
 <template>
 	<view class="index">
 		<view class="head" :style="{ height: 'calc(' + (navHeight + statusbarHeight + 'px + 248rpx)') }">
-			<view :style="{ width: '100%', height: navHeight + statusbarHeight + 'px' }"></view>
 			<view class="head-bar" :style="{ height: navHeight + statusbarHeight + 'px' }">
 				<view :style="{ width: '100%', height: statusbarHeight + 'px' }"></view>
 				<view class="head-bar-nav" :style="{ height: navHeight + 'px' }" @click="openLoacing">
 					<image src="/static/icon/home_ic_location@2x.png" mode="widthFix"></image>
-					<text>{{position.formatted_addresses.recommend}}</text>
+					<text>{{position.formatted_addresses.recommend || '鐐瑰嚮瀹氫綅'}}</text>
 					<u-icon name="arrow-right" color="#222222" size="13"></u-icon>
 				</view>
 			</view>
@@ -15,12 +14,12 @@
 					bgColor="rgba(255,255,255,0.9)" :showAction="false" />
 			</view>
 			<view class="banner">
-				<u-swiper :list="list" keyName="imgurl" height="150"></u-swiper>
+				<u-swiper :list="list" keyName="imgurl" height="150" indicator indicatorMode="dot"></u-swiper>
 			</view>
 			<u-scroll-list indicatorActiveColor="#004096">
 				<view class="scroll-list">
 					<view class="scroll-list__line" v-for="(item, index) in labels" :key="index">
-						<view class="cate-item" v-for="(child, index) in item" :key="index" @click="jumpSearch(child, 1)">
+						<view class="cate-item" v-for="(child, a) in item" :key="a" @click="jumpSearch1(child, 1)">
 							<view class="cate-item-image">
 								<image :src="child.imgUrl" mode="widthFix"></image>
 							</view>
@@ -35,7 +34,7 @@
 			<u-scroll-list indicatorActiveColor="#004096">
 				<view class="scroll-list" style="padding: 0;">
 					<view class="scroll-list__line" v-for="(item, index) in brand" :key="index">
-						<view class="cate-item1" v-for="(child, index) in item" :key="index" @click="jumpSearch(child, 2)">
+						<view class="cate-item1" v-for="(child, a) in item" :key="a" @click="jumpSearch1(child, 2)">
 							<image :src="child.imgUrl" mode="widthFix"></image>
 							<text>{{child.name}}</text>
 						</view>
@@ -51,15 +50,15 @@
 			</view>
 			<view class="quality">
 				<view class="quality-item" @click="jumpShopZ(specialZone[0])">
-					<image class="quality-item-image" :src="specialZone[0].imgUrl" mode="widthFix"></image>
+					<image class="quality-item-image" :src="specialZone[0].imgUrl || '/static/icon/default2.png'" mode="widthFix"></image>
 				</view>
 				<view style="width: 22rpx; height: 100%;"></view>
 				<view class="quality-item">
 					<view class="quality-item-row" @click="jumpShopZ(specialZone[1])">
-						<image class="quality-item-row-image" :src="specialZone[1].imgUrl" mode="widthFix"></image>
+						<image class="quality-item-row-image" :src="specialZone[1].imgUrl || '/static/icon/default2.png'" mode="widthFix"></image>
 					</view>
 					<view class="quality-item-row" @click="jumpShopZ(specialZone[2])">
-						<image class="quality-item-row-image" :src="specialZone[2].imgUrl" mode="widthFix"></image>
+						<image class="quality-item-row-image" :src="specialZone[2].imgUrl || '/static/icon/default2.png'" mode="widthFix"></image>
 					</view>
 				</view>
 			</view>
@@ -69,7 +68,7 @@
 			<view class="commodity">
 				<view class="commodity-item" v-for="(item, i) in goodsList" :key="i" @click="jumpDetails(item.id)">
 					<view class="commodity-item-image">
-						<image :src="item.imgurl" mode="widthFix"></image>
+						<image :src="item.imgurl || '/static/icon/default2.png'" mode="widthFix"></image>
 					</view>
 					<view class="commodity-item-box">
 						<view class="commodity-item-box-title">
@@ -92,7 +91,7 @@
 				</view>
 			</view>
 		</view>
-		<view class="dingwei" v-if="!position">
+		<view class="dingwei" v-if="isShow">
 			<view class="dingwei-left">
 				<text>鏈巿鏉冨畾浣�</text>
 				<text>鎴戜滑鏃犳硶鑾峰緱鎮ㄥ綋鍓嶄綅缃俊鎭负鎮ㄦ帹鑽愰檮杩戠粡閿�鍟�</text>
@@ -114,7 +113,7 @@
 			Login
 		},
 		computed: {
-			...mapState(['navHeight', 'statusbarHeight', 'position'])
+			...mapState(['navHeight', 'statusbarHeight', 'position', 'userInfo'])
 		},
 		data() {
 			return {
@@ -130,11 +129,15 @@
 				specialZone: [],
 				goodsList: [],
 				page: 1,
-				next: true
+				next: true,
+				isShow: false
 			}
 		},
 		async onLoad() {
 			await this.$onLaunched;
+			if (!this.position) {
+				this.isShow = true
+			}
 			this.getBanner()
 			this.getLabels()
 			this.getGoodsList()
@@ -149,9 +152,13 @@
 				})
 			},
 			addCard(e) {
+				if (!this.userInfo) {
+					this.$refs.loginRef.open()
+					return
+				}
 				this.$u.api.addCart({
 					goodsId: e.id,
-					goodsSkuId: e.skuResponsesList[0].id,
+					goodsSkuId: e.goodsSkuResponseList[0].id,
 					num: 1
 				}).then(res => {
 					if (res.code === 200) {
@@ -195,7 +202,7 @@
 				this.$u.api.getGoodsLabelsByType({ type: 12 })
 					.then(res => {
 						if (res.code === 200) {
-							this.specialZone = res.data
+							this.specialZone = res.data.length > 0 ? res.data.slice(0, 3) : []
 						}
 					})
 			},
@@ -244,8 +251,12 @@
 						countInCurrentChunk = 0; // 閲嶇疆璁℃暟鍣�
 					}
 				}
-
-				return result;
+				
+				if (result[1].length === 0) {
+					return [result[0]]
+				} else {
+					return result;
+				}
 			},
 			goToAppSetting() {
 				var that = this;
@@ -277,7 +288,6 @@
 							latitude: res1.latitude,
 							longitude: res1.longitude
 						};
-						console.log(locParam)
 						const qqmapsdk = new QQMapWX({
 							key: 'HEIBZ-QJLLM-SZ36X-6ZBHI-S6Y2J-S6FND'
 						});
@@ -286,6 +296,7 @@
 							locParam,
 							success: function(res) {
 								console.log(res,  '==================index鑾峰彇鍦板潃')
+								console.log(locParam)
 								that.$store.commit('setPosition', res.result)
 							},
 							fail: (err) => {
@@ -295,20 +306,20 @@
 					}
 				})
 			},
-			jumpSearch(row, type) {
-				if (row) {
-					if (type === 1) {
-						uni.navigateTo({
-							url: '/pages/search/search?categoryId=' + row.id
-						})
-					} else {
-						uni.navigateTo({
-							url: '/pages/search/search?applicableBrandId=' + row.id
-						})
-					}
+			jumpSearch() {
+				uni.navigateTo({
+					url: '/pages/search/search'
+				})
+			},
+			jumpSearch1(row, type) {
+				console.log(row)
+				if (type === 1) {
+					uni.navigateTo({
+						url: '/pages/search/search?categoryId=' + row.id
+					})
 				} else {
 					uni.navigateTo({
-						url: '/pages/search/search'
+						url: '/pages/search/search?applicableBrandId=' + row.id
 					})
 				}
 			}
@@ -380,12 +391,6 @@
 
 			.head-bar {
 				width: 100%;
-				position: fixed;
-				padding: 0 30rpx;
-				box-sizing: border-box;
-				top: 0;
-				left: 0;
-				z-index: 999;
 				// background-color: #ffffff;
 
 				.head-bar-nav {
@@ -500,6 +505,7 @@
 					.commodity-item-image {
 						width: 100%;
 						height: 336rpx;
+						overflow: hidden;
 						display: flex;
 						align-items: center;
 						justify-content: center;
@@ -623,14 +629,14 @@
 				}
 
 				.cate-item {
-					width: calc(100vw / 4 - 96rpx);
+					width: calc(100vw / 4 - 86rpx);
 					height: auto;
 					display: flex;
 					flex-direction: column;
 					align-items: center;
 					justify-content: center;
 					margin-bottom: 30rpx;
-					margin-right: 96rpx;
+					margin-right: 86rpx;
 
 					&:last-child {
 						margin-right: 0 !important;
@@ -651,6 +657,10 @@
 					}
 
 					text {
+						width: 100%;
+						white-space: nowrap;
+						overflow: hidden;
+						text-overflow: ellipsis;
 						font-weight: 400;
 						font-size: 26rpx;
 						color: #333333;

--
Gitblit v1.9.3