Files
lucky_shop/components/hover-nav/hover-nav.vue
jinhhanhan a0ddcd673d Squashed commit of the following:
commit 2416eab34f
Author: jinhhanhan <1683105490@qq.com>
Date:   Fri Dec 5 17:12:14 2025 +0800

    chore:加了dify

commit c4f2cea1a9
Author: jinhhanhan <1683105490@qq.com>
Date:   Fri Dec 5 16:47:53 2025 +0800

    chore:加了智能体

commit 227ab42e5a
Author: jinhhanhan <1683105490@qq.com>
Date:   Thu Dec 4 14:27:46 2025 +0800

    chore:挂上了智能客服
2025-12-10 14:52:52 +08:00

285 lines
6.3 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>
<<<<<<< HEAD
<!-- 悬浮按钮 -->
<view v-if="pageCount == 1 || need" class="fixed-box" :style="{ height: fixBtnShow ? '330rpx' : '120rpx' }">
<!-- AI智能助手 -->
<view class="btn-item" v-if="fixBtnShow && enableAIChat" @click="openAIChat" :style="{backgroundImage:'url('+(aiAgentimg?aiAgentimg:'')+')',backgroundSize:'100% 100%'}">
<!-- 核心修改添加🤖表情保留原有判断逻辑 -->
<text class="ai-icon" v-if="!aiAgentimg">🤖</text>
<!-- 未读消息小红点 -->
<view v-if="unreadCount > 0" class="unread-badge">
<text class="badge-text">{{ unreadCount > 99 ? '99+' : unreadCount }}</text>
</view>
</view>
<!-- #ifdef MP-WEIXIN -->
<button class="btn-item" v-if="fixBtnShow" hoverClass="none" openType="contact" sessionFrom="weapp" showMessageCard="true" :style="{backgroundImage:'url('+(kefuimg?kefuimg:'')+')',backgroundSize:'100% 100%'}">
<text class="icox icox-kefu" v-if="!kefuimg"></text>
</button>
<!-- #endif -->
<!-- 电话 -->
<view class="btn-item" v-if="fixBtnShow" @click="call()" :style="{backgroundImage:'url('+(phoneimg?phoneimg:'')+')',backgroundSize:'100% 100%'}">
<text class="iconfont icon-dianhua" v-if="!phoneimg"></text>
</view>
</view>
=======
<!-- 悬浮按钮 -->
<view v-if="pageCount == 1 || need" class="fixed-box" :style="{ height: fixBtnShow ? '120rpx' : '120rpx' }">
<!-- #ifdef MP-WEIXIN -->
<button
class="btn-item"
v-if="fixBtnShow"
hoverClass="none"
openType="contact"
sessionFrom="weapp"
showMessageCard="true"
:style="{backgroundImage:'url('+(kefuimg?kefuimg:'')+')',backgroundSize:'100% 100%'}"
>
<text class="icox icox-kefu" v-if="!kefuimg"></text>
</button>
<!-- #endif -->
<!-- 其他按钮AI 电话已隐藏 -->
</view>
>>>>>>> 2416eab34fc318a92df6c2cb10784d90d6977aac
</template>
<script>
import { mapGetters, mapMutations } from 'vuex'
export default {
name: 'hover-nav',
props: {
need: {
type: Boolean,
default: false
},
},
data() {
return {
pageCount: 0,
fixBtnShow: true,
<<<<<<< HEAD
tel:'',
kefuimg:'',
phoneimg:''
=======
tel: '',
kefuimg: '',
phoneimg: ''
>>>>>>> 2416eab34fc318a92df6c2cb10784d90d6977aac
};
},
created() {
this.kefuimg = this.$util.getDefaultImage().kefu
this.phoneimg = this.$util.getDefaultImage().phone
this.pageCount = getCurrentPages().length;
var that = this
uni.getStorage({
<<<<<<< HEAD
key:'shopInfo',
success(e){
that.tel = e.data.mobile
}
})
},
computed: {
...mapGetters([
'globalAIKefuConfig',
'aiUnreadCount'
]),
aiAgentimg() {
return this.globalAIKefuConfig?.icon || this.$util.getDefaultImage().aiAgent || '' // AI智能助手的头像
=======
key: 'shopInfo',
success(e) {
that.tel = e.data.mobile
}
})
},
computed: {
...mapGetters([
'globalAIAgentConfig',
'aiUnreadCount'
]),
aiAgentimg() {
return this.globalAIAgentConfig?.icon || this.$util.getDefaultImage().aiAgent || ''
>>>>>>> 2416eab34fc318a92df6c2cb10784d90d6977aac
},
unreadCount() {
return this.aiUnreadCount
},
enableAIChat() {
<<<<<<< HEAD
return this.globalAIKefuConfig?.enable || true // 是否开启AI智能助手
=======
return this.globalAIAgentConfig?.enable || true
>>>>>>> 2416eab34fc318a92df6c2cb10784d90d6977aac
},
},
methods: {
...mapMutations([
'setAiUnreadCount'
]),
<<<<<<< HEAD
//拨打电话
call(){
uni.makePhoneCall({
phoneNumber:this.tel+''
})
},
// 打开AI聊天弹窗
=======
// 拨打电话(已无调用,可保留或删除)
call() {
uni.makePhoneCall({
phoneNumber: this.tel + ''
})
},
// 打开AI聊天已无调用可保留或删除
>>>>>>> 2416eab34fc318a92df6c2cb10784d90d6977aac
openAIChat() {
if (this.enableAIChat) {
this.setAiUnreadCount(0);
}
<<<<<<< HEAD
this.$util.redirectTo('/pages_tool/ai-chat/index')
}
=======
this.$util.redirectTo('/pages_tool/ai-chat/index')
}
>>>>>>> 2416eab34fc318a92df6c2cb10784d90d6977aac
}
};
</script>
<style lang="scss">
.container-box {
width: 100%;
.item-wrap {
border-radius: 10rpx;
.image-box {
border-radius: 10rpx;
}
image {
width: 100%;
height: auto;
border-radius: 10rpx;
will-change: transform;
}
}
}
//悬浮按钮
.fixed-box {
position: fixed;
right: 0rpx;
bottom: 200rpx;
z-index: 10;
border-radius: 120rpx;
padding: 20rpx 0;
display: flex;
justify-content: center;
flex-direction: column;
width: 100rpx;
box-sizing: border-box;
transition: 0.3s;
overflow: hidden;
.btn-item {
display: flex;
justify-content: center;
<<<<<<< HEAD
align-items: center; /* 新增:让🤖表情垂直居中 */
=======
>>>>>>> 2416eab34fc318a92df6c2cb10784d90d6977aac
text-align: center;
flex-direction: column;
line-height: 1;
margin: 14rpx 0;
transition: 0.1s;
background: #fff;
border-radius: 50rpx;
width: 80rpx;
height: 80rpx;
padding: 0;
position: relative;
text {
font-size: 36rpx;
font-weight: bold;
}
view {
font-size: 26rpx;
font-weight: bold;
}
&.show {
transform: rotate(180deg);
}
<<<<<<< HEAD
&.switch {}
=======
>>>>>>> 2416eab34fc318a92df6c2cb10784d90d6977aac
&.icon-xiala {
margin: 0;
margin-top: 0.1rpx;
}
<<<<<<< HEAD
// 未读消息小红点
=======
// 未读消息小红点(已无使用,可保留样式)
>>>>>>> 2416eab34fc318a92df6c2cb10784d90d6977aac
.unread-badge {
position: absolute;
top: -5rpx;
right: -5rpx;
background-color: #ff4544;
color: white;
border-radius: 20rpx;
min-width: 30rpx;
height: 30rpx;
font-size: 10rpx;
line-height: 30rpx;
text-align: center;
padding: 0 8rpx;
z-index: 1;
box-shadow: 0 2rpx 10rpx rgba(255, 69, 68, 0.3);
.badge-text {
font-size: 8rpx;
// #ifdef MP-WEIXIN
font-size: 20rpx;
// #endif
}
}
<<<<<<< HEAD
// AI图标样式优化让🤖表情居中显示
.ai-icon {
font-size: 40rpx; // 调整🤖表情大小
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
}
=======
>>>>>>> 2416eab34fc318a92df6c2cb10784d90d6977aac
}
}
</style>