roamfuding-xcx/page_user/techan/index.vue
2025-12-20 14:32:28 +08:00

226 lines
4.7 KiB
Vue

<template>
<view class="page">
<u-navbar title=" " :border-bottom="false" :background="bgc" back-icon-color="#262B37" title-color='#262B37'
title-size='36' height='46' id="navbar">
</u-navbar>
<view class="bj">
<image class="bj" src="https://api.ccttiot.com/smartmeter/img/static/uMh22gvApiiWjWXSqnNV" mode=""></image>
</view>
<view class="tit">
精选好物
</view>
<view class="tab">
<view :class="tabindex == 0 ? 'active' : '' " @click="btntab('')">
推荐
</view>
<view :class="tabindex == 1 ? 'active' : '' " @click="btntab(1)">
特色美食
</view>
<view :class="tabindex == 2 ? 'active' : '' " @click="btntab(2)">
农副产品
</view>
<view :class="tabindex == 3 ? 'active' : '' " @click="btntab(3)">
特色干货
</view>
</view>
<view class="techan">
<view class="gundong">
<view v-for="(item,index) in techanlist" :key="index" @click="btnsp(item,index)">
<image :class="imgindex == index ? 'gdactive' : ''" :src="item.picture" mode="aspectFill"></image>
<text>{{item.name}}</text>
</view>
</view>
</view>
<view class="tit">
推荐店铺
</view>
<view class="dianpu">
<view class="list" v-for="(item,index) in dplist" :key="index" @click="btndp(item)">
<view class="lt">
<image :src="item.picture.split(',')[0]" mode="aspectFill"></image>
</view>
<view class="rt">
<view class="name">
{{item.name}}
</view>
<view class="dizhi">
<image src="https://api.ccttiot.com/smartmeter/img/static/upMvbI8C1ghy8GLhLlqT" mode=""></image> {{item.address}}
</view>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
bgc: {
backgroundColor: "#fff",
},
tabindex:'',
type:'',
techanlist:[],
id:'',
dplist:[],
imgindex:0
}
},
onLoad() {
this.getlist()
},
methods: {
// 请求攻略列表
getlist(){
this.$u.get(`/app/specialty/list?pageNum=1&pageSize=999&type=${this.type}`).then((res) => {
if(res.code == 200){
this.techanlist = res.rows
this.id = res.rows[0].id
this.getdianpu()
}
})
},
// 根据特产请求店铺列表
getdianpu(){
this.$u.get(`/app/store/list?pageNum=1&pageSize=999&dishIds=${this.id}`).then((res) => {
if(res.code == 200){
this.dplist = res.rows
}
})
},
// 点击推荐店铺跳转详情
btndp(item){
uni.navigateTo({
url:'/page_user/techan/techandp?id=' + item.id
})
},
// 点击特产商品跳转详情
btnsp(item,index){
// uni.navigateTo({
// url:'/page_user/techan/techansp'
// })
this.id = item.id
this.imgindex = index
this.getdianpu()
},
// 点击tab切换
btntab(num){
this.tabindex = num
this.type = num
this.imgindex = 0
this.getlist()
}
}
}
</script>
<style lang="less">
::v-deep .u-icon__icon,
::v-deep .u-title{
padding-bottom: 22rpx !important;
}
.dianpu{
margin-top: 26rpx;
padding: 0 32rpx;
box-sizing: border-box;
.list{
display: flex;
border-bottom: 1px solid #D8D8D8;
padding-bottom: 26rpx;
margin-bottom: 26rpx;
.lt{
margin-right: 26rpx;
image{
width: 230rpx;
height: 158rpx;
border-radius: 10rpx;
}
}
.rt{
display: grid;
.name{
font-weight: 600;
font-size: 32rpx;
color: #3D3D3D;
}
.dizhi{
display: flex;
align-items: center;
image{
width: 28rpx;
height: 28rpx;
}
font-size: 24rpx;
color: #808080;
}
}
}
}
.active{
background: linear-gradient( 90deg, #15B37E 0%, #57E8B8 100%) !important;
color: #fff !important;
border: none !important;
}
.gdactive{
border: 1px solid #15B37E !important;
}
.techan{
margin-top: 30rpx;
padding-left: 32rpx;
.gundong{
display: flex;
overflow: scroll;
gap: 20rpx;
height: 290rpx;
view{
image{
width: 208rpx;
height: 208rpx;
border-radius: 10rpx;
}
text{
font-weight: 600;
font-size: 30rpx;
color: #3D3D3D;
display: block;
width: 208rpx;
text-align: center;
margin-top: 16rpx;
}
}
}
}
.tab{
box-sizing: border-box;
font-size: 28rpx;
color: #3D3D3D;
display: flex;
align-items: center;
gap: 18rpx;
margin-top: 20rpx;
padding-left: 32rpx;
view{
border: 1px solid #808080;
border-radius: 20rpx;
padding: 4rpx 26rpx;
}
}
.tit{
font-weight: 600;
font-size: 36rpx;
color: #3D3D3D;
margin-top: 18rpx;
padding-left: 32rpx;
box-sizing: border-box;
}
.bj{
width: 750rpx;
height: 420rpx;
}
page {
background: #fff;
}
</style>