i
This commit is contained in:
@@ -30,9 +30,9 @@
|
||||
</nut-grid>
|
||||
</view>
|
||||
<!-- 标题 -->
|
||||
<view class="titleImg">为你推荐</view>
|
||||
<!-- <view class="titleImg">为你推荐</view> -->
|
||||
<!-- 商品列表 -->
|
||||
<view class="goodBox">
|
||||
<!-- <view class="goodBox">
|
||||
<view
|
||||
class="good"
|
||||
v-for="item in list"
|
||||
@@ -41,23 +41,68 @@
|
||||
>
|
||||
<image :src="(item.cover as string)" />
|
||||
<view class="good-text-box">
|
||||
<text class="good-text">{{ item.name }} </text>
|
||||
<text class="good-text">{{ item.name }}</text>
|
||||
<view class="good-price-box">
|
||||
<text class="good-text-price">
|
||||
<text style="font-size: 20px">{{
|
||||
item.number
|
||||
}}</text>
|
||||
<text style="font-size: 20px"
|
||||
>{{ item.number }}
|
||||
</text>
|
||||
积分
|
||||
</text>
|
||||
<!-- <Cart
|
||||
<Cart
|
||||
size="20"
|
||||
color="#ff0000"
|
||||
@click.stop="add_cart(item.gid as number)"
|
||||
/> -->
|
||||
/>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view> -->
|
||||
<view class="goodBox">
|
||||
<view
|
||||
class="good"
|
||||
v-for="item in (merdata as any)"
|
||||
:key="item.ID"
|
||||
@click.stop="toMerDetails(item)"
|
||||
>
|
||||
<image :src="(item.head_photo as string)" />
|
||||
<view class="good-text-box">
|
||||
<text class="good-text">{{ item.name }}</text>
|
||||
<text style="color: #999"
|
||||
>距离我{{
|
||||
calculateDistance(
|
||||
userLocalNum.t,
|
||||
userLocalNum.l,
|
||||
Number(item.lat),
|
||||
Number(item.lon)
|
||||
)
|
||||
}}</text
|
||||
>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 商家列表 -->
|
||||
<!-- <view class="merBox">
|
||||
<view class="item" v-for="item in merdata" :key="item.ID">
|
||||
<view class="left">
|
||||
<image
|
||||
class="img"
|
||||
src="//www.wanzhuanyongcheng.cn/static/bdae68d9512fecacf744eea61f92e71.jpg"
|
||||
></image>
|
||||
</view>
|
||||
<view class="right">
|
||||
<view class="title">{{ item.name }}</view>
|
||||
<view class="tag">
|
||||
<view class="left">
|
||||
<text>喷射</text>
|
||||
<text>汉堡</text>
|
||||
<text>炸鸡</text>
|
||||
</view>
|
||||
<view class="right">距我900m</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view> -->
|
||||
</view>
|
||||
</template>
|
||||
|
||||
@@ -65,8 +110,12 @@
|
||||
import { ref } from "vue";
|
||||
// import { Cart } from "@nutui/icons-vue-taro";
|
||||
import Taro from "@tarojs/taro";
|
||||
import { getBanner } from "@/api/user";
|
||||
import { getGoodsList, addCart } from "@/api/goods";
|
||||
import { getBanner, bindParent } from "@/api/user";
|
||||
import {
|
||||
// getGoodsList,
|
||||
getMerList,
|
||||
} from "@/api/goods";
|
||||
import { calculateDistance } from "@/utils";
|
||||
|
||||
const searchValue = ref("");
|
||||
// const tabvalue = ref("0");
|
||||
@@ -100,23 +149,71 @@ const userMenuList = ref([
|
||||
},
|
||||
]);
|
||||
|
||||
interface List {
|
||||
gid?: number;
|
||||
name?: string;
|
||||
number?: number;
|
||||
cover?: string;
|
||||
}
|
||||
// interface List {
|
||||
// gid?: number;
|
||||
// name?: string;
|
||||
// number?: number;
|
||||
// cover?: string;
|
||||
// }
|
||||
|
||||
const list = ref<Array<List>>([]);
|
||||
// const list = ref<Array<List>>([]);
|
||||
|
||||
Taro.useLoad(() => {
|
||||
Taro.useDidShow(async () => {
|
||||
getBannerList();
|
||||
get_goods_list();
|
||||
// get_goods_list();
|
||||
get_mer_list();
|
||||
if (Taro.getStorageSync("token") && Taro.getStorageSync("bind_id")) {
|
||||
try {
|
||||
const res = await bindParent({
|
||||
uid: Taro.getStorageSync("bind_id"),
|
||||
});
|
||||
Taro.showToast({
|
||||
title: res.msg,
|
||||
});
|
||||
Taro.removeStorageSync("bind_id");
|
||||
} catch (error) {
|
||||
Taro.removeStorageSync("bind_id");
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
const get_goods_list = async () => {
|
||||
const { data } = await getGoodsList();
|
||||
list.value = data.data;
|
||||
Taro.useShareAppMessage(() => ({
|
||||
title: "捷兑通",
|
||||
path: `/pages/index/index?scene=${Taro.getStorageSync("token")}`,
|
||||
imageUrl:
|
||||
"https://upload.jdt168.com/1694242954957988438_微信图片_20230909150016.jpg",
|
||||
}));
|
||||
|
||||
// const get_goods_list = async () => {
|
||||
// const { data } = await getGoodsList();
|
||||
// list.value = data.data;
|
||||
// };
|
||||
|
||||
const merdata = ref([]);
|
||||
|
||||
const userLocalNum = ref({
|
||||
l: 0,
|
||||
t: 0,
|
||||
});
|
||||
|
||||
const get_mer_list = async () => {
|
||||
Taro.getLocation({
|
||||
type: "wgs84",
|
||||
success: (res) => {
|
||||
userLocalNum.value.l = res.longitude;
|
||||
userLocalNum.value.t = res.latitude;
|
||||
},
|
||||
});
|
||||
|
||||
const res = await getMerList({
|
||||
PageNum: 1,
|
||||
PageSize: 10,
|
||||
Btype: 2,
|
||||
classid: 0,
|
||||
});
|
||||
merdata.value = res.data.data;
|
||||
console.log(res);
|
||||
};
|
||||
|
||||
const getBannerList = async () => {
|
||||
@@ -146,19 +243,21 @@ const toPage = (url: string) => {
|
||||
});
|
||||
};
|
||||
|
||||
const toGoodDetails = (gid: number) => {
|
||||
// const toGoodDetails = (gid: number) => {
|
||||
// Taro.navigateTo({
|
||||
// url: `/pages/goods/goods_detail/index?gid=${gid}`,
|
||||
// });
|
||||
// };
|
||||
|
||||
const toMerDetails = (item: any) => {
|
||||
Taro.setStorageSync("mer_info", item);
|
||||
Taro.navigateTo({
|
||||
url: `/pages/goods/goods_detail/index?gid=${gid}`,
|
||||
url: `/pages/mer/mer_detail/index`,
|
||||
});
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.app {
|
||||
box-sizing: border-box;
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
|
||||
.nut-swiper-item img {
|
||||
width: 100%;
|
||||
height: 350px;
|
||||
@@ -198,12 +297,13 @@ const toGoodDetails = (gid: number) => {
|
||||
width: 340px;
|
||||
background-color: #fff;
|
||||
margin-bottom: 20px;
|
||||
border-bottom-left-radius: 15px;
|
||||
border-bottom-right-radius: 15px;
|
||||
border-radius: 10px;
|
||||
|
||||
image {
|
||||
width: 100%;
|
||||
height: 350px;
|
||||
height: 250px;
|
||||
border-top-right-radius: 10px;
|
||||
border-top-left-radius: 10px;
|
||||
}
|
||||
|
||||
.good-text-box {
|
||||
@@ -216,7 +316,7 @@ const toGoodDetails = (gid: number) => {
|
||||
font-weight: 400;
|
||||
display: -webkit-box;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-line-clamp: 2;
|
||||
-webkit-line-clamp: 1;
|
||||
overflow: hidden;
|
||||
word-break: break-word;
|
||||
}
|
||||
@@ -239,4 +339,60 @@ const toGoodDetails = (gid: number) => {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.merBox {
|
||||
padding: 10px;
|
||||
.item {
|
||||
display: flex;
|
||||
// align-items: center;
|
||||
background-color: #fff;
|
||||
border-radius: 20px;
|
||||
padding: 20px;
|
||||
margin-bottom: 10px;
|
||||
|
||||
.left {
|
||||
.img {
|
||||
width: 150px;
|
||||
height: 150px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.right {
|
||||
flex: 1;
|
||||
margin-left: 15px;
|
||||
border-bottom: 2px solid #f5f5f5;
|
||||
.title {
|
||||
width: 100%;
|
||||
font-weight: bold;
|
||||
display: -webkit-box;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-line-clamp: 1;
|
||||
overflow: hidden;
|
||||
word-break: break-word;
|
||||
}
|
||||
|
||||
.tag {
|
||||
margin: 10px 0;
|
||||
color: #999;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: space-evenly;
|
||||
|
||||
.left {
|
||||
display: flex;
|
||||
width: 50%;
|
||||
text {
|
||||
margin-right: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.right {
|
||||
flex: 1;
|
||||
text-align: right;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user