This commit is contained in:
2023-10-08 22:53:13 +08:00
parent b883b02fb9
commit e36d60d015
83 changed files with 18303 additions and 9590 deletions

View File

@@ -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>