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

View File

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

View File

@@ -6,6 +6,9 @@ export default {
couponBtnSwitch: false, //获取优惠券防止重复提交
posterApi: '/api/goods/poster',
// 👇 新增初始定义
contactData: {}, // 客服基础参数初始值
chatRoomParams: {}, // 客服会话参数初始值
//满减活动
manjian: {
@@ -91,6 +94,14 @@ export default {
//同步获取商品详情
await this.getGoodsSkuDetail();
},
// 在detail.js的created/mounted中添加
created() {
// 监听语言切换事件(需项目有全局事件总线,或直接在切换方法中调用)
uni.$on('lang-switch', () => {
this.getGoodsSkuDetail(); // 切换语言后重新获取商品数据,赋值两个变量
});
},
onHide() {
this.couponBtnSwitch = false;
},
@@ -103,6 +114,14 @@ export default {
fail(){}
})
},
// 新增:跳转到客服会话页面
goToContact() {
// 新增这行日志:打印“父页面触发跳转”
console.log('【父页面】点击Contact触发goToContact方法');
uni.navigateTo({
url: '/pages/contact/contact'
});
},
setSkuId(val) {
if (val) {
this.skuId = val;
@@ -141,6 +160,12 @@ export default {
this.chatRoomParams = {
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];
if (typeId) {
// 限时折扣