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

216 lines
4.7 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<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>
<u-swiper class="bj" :height="582" bg-color="#fff" :list="list"></u-swiper>
<view class="box">
<view class="name">
{{obj.name}}
</view>
<view class="xiao">
营业时间{{obj.startTime}}-{{obj.endTime}}
</view>
<view class="xiao">
地址{{obj.address}}
</view>
<view class="liat">
<image @click="btndh" src="https://api.ccttiot.com/smartmeter/img/static/u8ItYUuDcFXMAe4xGutU" mode=""></image>
<image @click="btntel" src="https://api.ccttiot.com/smartmeter/img/static/uJph4gXvhIFYLsExnUYF" mode=""></image>
<!-- <image src="" mode=""></image> -->
</view>
<view class="haowu">
精选好物
</view>
<view class="hwlist">
<view class="hwitem" v-for="(item,index) in obj.specialties" :key="index" @click="btnhw(item)">
<image :src="item.picture ? item.picture.split(',')[0] : item.picture" mode="aspectFill"></image>
<text>{{item.name}}</text>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
bgc: {
backgroundColor: "#fff",
},
id:'',
list:[],
obj:{}
}
},
onLoad(e) {
this.id = e.id
this.getdianpu()
},
methods: {
// 点击拨打电话
btntel(){
uni.makePhoneCall({
phoneNumber: this.obj.contactMobile,
success: function(res) {
console.log('拨打电话成功', res)
},
fail: function(err) {
console.error('拨打电话失败', err)
}
})
},
// 点击进行导航
btndh(){
if (!this.obj.latitude || !this.obj.longitude) {
uni.showToast({
title: '坐标数据不完整',
icon: 'none',
duration:3000
})
return
}
uni.getSetting({
success: (res) => {
if (res.authSetting['scope.userLocation'] === false) {
uni.showModal({
title: '位置权限',
content: '需要获取您的位置信息才能进行导航,请在设置中开启位置权限',
confirmText: '去设置',
success: (modalRes) => {
if (modalRes.confirm) {
uni.openSetting()
}
}
})
return
}
this.openMap()
}
})
},
// 打开地图
openMap() {
uni.openLocation({
latitude: parseFloat(this.obj.latitude), // 确保是数字类型
longitude: parseFloat(this.obj.longitude), // 确保是数字类型
name: this.obj.name || '目的地', // 地点名称
success: function(res) {
console.log('打开地图成功', res)
},
fail: function(err) {
console.error('打开地图失败', err)
uni.showToast({
title: '打开地图失败: ' + (err.errMsg || '未知错误'),
icon: 'none',
duration: 3000
})
}
})
},
// 请求店铺详情
getdianpu(){
this.$u.get(`/app/store/detail/${this.id}`).then((res) => {
if(res.code == 200){
this.obj = res.data
let imgArray = res.data.picture.split(',')
imgArray.forEach(item =>{
this.list.push({
image: item
})
})
}
})
},
// 点击精选好物跳转详情
btnhw(item){
uni.navigateTo({
url:'/page_user/techan/techansp?id=' + item.id
})
}
}
}
</script>
<style lang="less">
::v-deep .u-icon__icon,
::v-deep .u-title{
padding-bottom: 22rpx !important;
}
.box{
width: 750rpx;
overflow: hidden;
height: 59vh;
background: #FFFFFF;
border-radius:50rpx 50rpx 0 0;
position: relative;
top: -100rpx;
overflow: scroll;
padding-bottom: 30rpx;
padding: 36rpx 48rpx;
.hwlist{
display: flex;
gap: 30rpx;
margin-top: 26rpx;
overflow: scroll;
width: 750rpx;
padding-right: 80rpx;
padding-bottom: 30rpx;
.hwitem{
width: 200rpx;
image{
width: 200rpx;
height: 200rpx;
border-radius: 10rpx;
}
text{
font-weight: 600;
font-size: 30rpx;
color: #3D3D3D;
display: block;
margin-top: 16rpx;
text-align: center;
}
}
}
.haowu{
font-weight: 600;
font-size: 36rpx;
color: #3D3D3D;
margin-top: 56rpx;
}
.liat{
display: flex;
justify-content: space-around;
gap: 122rpx;
margin-top: 68rpx;
padding-left: 38rpx;
image{
width: 112rpx;
height: 166rpx;
}
}
.name{
font-weight: 600;
font-size: 48rpx;
color: #3D3D3D;
margin-bottom: 14rpx;
}
.xiao{
font-size: 28rpx;
color: #3D3D3D;
margin-top: 16rpx;
}
}
.bj{
width: 750rpx;
height: 582rpx;
}
page {
background: #fff;
height: 100vh;
overflow: hidden;
}
</style>