jiuyiUniapp/jiuyi2/components/shop/detail/footerMenu.vue

161 lines
2.9 KiB
Vue

<script setup>
// 店铺 客服 收藏 支付
import {
ref,
reactive,
getCurrentInstance,
computed,
defineEmits,
onMounted
} from 'vue'
//
import util from '@/common/js/util.js'
//
import api from '@/api/index.js'
//
import {
useStore
} from 'vuex'
const {
proxy
} = getCurrentInstance()
//
const store = useStore()
//
const props = defineProps({
// 商品信息
detail: {
type: Object,
default: () => ({})
},
})
//
const emit = defineEmits(['update', 'buy'])
// 用户信息
const userinfo = computed(() => store.state.userinfo)
// 商品收藏
function handleCollect() {
util.isLogin().then(rs => {
//
api.shop.addProductCollect({
query: {
productId: props.detail.id,
type: {
0: 1,
1: 0,
}[props.detail.isCollect]
}
}).then(rs => {
if (rs.code == 200) {
// 关注状态
props.detail.isCollect = {
0: 1,
1: 0,
}[props.detail.isCollect]
// 关注数量
props.detail.collectNumber = rs.data
return
}
util.alert({
content: rs.msg,
showCancel: false,
})
})
}).catch(() => {
// 登录
uni.navigateTo({
url: '/pages/login/loginPhone'
})
})
}
/**
* 跳转
* @param {Object} url 跳转路径
*/
function link(url) {
uni.navigateTo({
url,
})
}
// 商品购买
function handleBuy() {
emit('buy')
}
// 客服
function toCustomer() {
api.shop.getCustomerService({ merchantId: props.detail.merId }).then(rs => {
if (rs.code == 200) {
let param = {};
param.type = 'C2C'
param.name = `${props.detail.merName}`
param.msgId = `${rs.data.serviceId}`
param.isCustomer = true
util.toChat(param)
uni.navigateTo({
url: util.setUrl('/pages/news/chat/chat', param)
})
} else {
util.alert(rs.msg)
}
})
}
</script>
<template>
<!-- 底部 -->
<view class="footerMneu df fdr jcsb aic">
<view class="menu df fdr jcsb aic">
<view class="option df fdc aic">
<image class="wh30" src="/static/store.png" mode="aspectFit" />
<text class="text mt10">店铺</text>
</view>
<view class="option df fdc aic" @click="handleCollect">
<view class="wh30 fmid">
<uni-icons type="star-filled" size="45rpx" color="#FF9B27" v-if="detail.isCollect == 1" />
<uni-icons type="star" size="45rpx" color="#666" v-else />
</view>
<view class="df fdr aic mt10">
<text class="text" v-if="detail.isCollect == 1">已</text>
<text class="text">收藏</text>
</view>
</view>
<!-- <view class="option ver" @click="toCustomer">
<image class="wh30" src="/static/customer-service.png" mode="aspectFit" />
<text class="text mt10">客服</text>
</view> -->
</view>
<!-- 下单 -->
<view class="btn primary f1 ml30" @click="handleBuy">
<text class="tac cfff f32">立即购买</text>
</view>
</view>
</template>
<style scoped lang="scss">
// 底部菜单
.footerMneu {
// 选项
.option {
width: 80rpx;
.text {
color: #999;
font-size: 24rpx;
}
}
}
</style>