feat:英文状态下,详情页客服新增点击跳转到客服会话页面功能

This commit is contained in:
Zhukj
2025-12-19 17:54:23 +08:00
parent 5c7daab504
commit fe3d00c653
3 changed files with 36 additions and 12 deletions

View File

@@ -1,13 +1,12 @@
<template> <template>
<view> <view>
<block v-if="text == '客服'"> <!-- 修改后兼容英文 -->
<!-- <ns-contact :niushop="chatParam" :send-message-title="sendData.title" :send-message-path="sendData.path" :send-message-img="sendData.img"> --> <block v-if="text == '客服' || text == 'Contact'">
<button hoverClass="none" openType="contact" sessionFrom="weapp" showMessageCard="true" class="action-icon-wrap" style="background: transparent;padding: 0;margin: 0;"> <button hoverClass="none" openType="contact" sessionFrom="weapp" showMessageCard="true" class="action-icon-wrap" style="background: transparent;padding: 0;margin: 0;" @click="contactClick">
<view class="iconfont color-title" :class="icon"></view> <view class="iconfont color-title" :class="icon"></view>
<text>{{ text }}</text> <text>{{ text }}</text>
<view class="corner-mark color-base-bg" v-if="cornerMark.length" :style="{ background: cornerMarkBg+'!important', color: cornerMarkColor }">{{ cornerMark }}</view> <view class="corner-mark color-base-bg" v-if="cornerMark.length" :style="{ background: cornerMarkBg+'!important', color: cornerMarkColor }">{{ cornerMark }}</view>
</button> </button>
<!-- </ns-contact> -->
</block> </block>
<block v-else> <block v-else>
<view class="action-icon-wrap" @click="clickEvent"> <view class="action-icon-wrap" @click="clickEvent">
@@ -24,37 +23,30 @@ import nsContact from '@/components/ns-contact/ns-contact.vue';
export default { export default {
name: 'ns-goods-action-icon', name: 'ns-goods-action-icon',
props: { props: {
// 商品底部icon导航icon图标
icon: { icon: {
type: String, type: String,
default: '' default: ''
}, },
// 商品底部icon导航文字
text: { text: {
type: String, type: String,
default: '' default: ''
}, },
// 角标文字
cornerMark: { cornerMark: {
type: String, type: String,
default: '' default: ''
}, },
// 角标背景色
cornerMarkBg: { cornerMarkBg: {
type: String, type: String,
default: '' default: ''
}, },
// 角标文字颜色
cornerMarkColor: { cornerMarkColor: {
type: String, type: String,
default: '#fff' default: '#fff'
}, },
// 开放能力
openType: { openType: {
type: String, type: String,
default: '' default: ''
}, },
// 发送内容 openType="contact"时有效
sendData: { sendData: {
type: Object, type: Object,
default: function() { default: function() {
@@ -77,7 +69,11 @@ export default {
}, },
methods: { methods: {
clickEvent() { clickEvent() {
console.log('【组件内部】非客服按钮被点击触发clickEvent');
this.$emit('click'); this.$emit('click');
},
contactClick() {
console.log('【组件内部】客服按钮Contact被点击触发contactClick');
} }
} }
}; };
@@ -143,4 +139,4 @@ export default {
font-size: $font-size-tag; font-size: $font-size-tag;
line-height: 1; line-height: 1;
} }
</style> </style>

View File

@@ -17,6 +17,9 @@ export const lang = {
currencySymbol: '¥', currencySymbol: '¥',
submit: 'Submit', submit: 'Submit',
langSwitchBtn: '中文', langSwitchBtn: '中文',
// ========== 新增kefu 对应的英文文案 ==========
kefu: 'Contact',
// =============================================
// App.vue弹窗翻译 // App.vue弹窗翻译
updateTip: 'Update Tip', updateTip: 'Update Tip',
updateContent: 'The new version is ready, do you want to restart the app?', updateContent: 'The new version is ready, do you want to restart the app?',

View File

@@ -6,6 +6,9 @@ export default {
couponBtnSwitch: false, //获取优惠券防止重复提交 couponBtnSwitch: false, //获取优惠券防止重复提交
posterApi: '/api/goods/poster', posterApi: '/api/goods/poster',
// 👇 新增初始定义
contactData: {}, // 客服基础参数初始值
chatRoomParams: {}, // 客服会话参数初始值
//满减活动 //满减活动
manjian: { manjian: {
@@ -91,6 +94,14 @@ export default {
//同步获取商品详情 //同步获取商品详情
await this.getGoodsSkuDetail(); await this.getGoodsSkuDetail();
}, },
// 在detail.js的created/mounted中添加
created() {
// 监听语言切换事件(需项目有全局事件总线,或直接在切换方法中调用)
uni.$on('lang-switch', () => {
this.getGoodsSkuDetail(); // 切换语言后重新获取商品数据,赋值两个变量
});
},
onHide() { onHide() {
this.couponBtnSwitch = false; this.couponBtnSwitch = false;
}, },
@@ -103,6 +114,14 @@ export default {
fail(){} fail(){}
}) })
}, },
// 新增:跳转到客服会话页面
goToContact() {
// 新增这行日志:打印“父页面触发跳转”
console.log('【父页面】点击Contact触发goToContact方法');
uni.navigateTo({
url: '/pages/contact/contact'
});
},
setSkuId(val) { setSkuId(val) {
if (val) { if (val) {
this.skuId = val; this.skuId = val;
@@ -141,6 +160,12 @@ export default {
this.chatRoomParams = { this.chatRoomParams = {
sku_id: this.goodsSkuDetail.sku_id sku_id: this.goodsSkuDetail.sku_id
}; };
// 👇 新增contactData赋值至少空对象也可补充业务参数
this.contactData = {
goodsId: this.goodsId,
shopId: this.goodsSkuDetail.shop_id || '', // 若有店铺ID则补充
lang: uni.getStorageSync('lang') // 传递当前语言标识,方便客服组件兼容
};
let typeId = this.goodsSkuDetail.goods_promotion[0]; let typeId = this.goodsSkuDetail.goods_promotion[0];
if (typeId) { if (typeId) {
// 限时折扣 // 限时折扣