You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
yanzong_qianduan/components/customer-btn/index.vue

113 lines
3.0 KiB

5 months ago
<template>
<view v-if="isShow">
<!-- #ifndef MP-ALIPAY -->
<button class="btn-normal" :open-type="setting.provider == 'mpwxkf' ? 'contact' : ''" @click="handleContact()">
<slot></slot>
</button>
<!-- #endif -->
<!-- #ifdef MP-ALIPAY -->
<!-- 支付宝智能客服 -->
<view class="contact-box">
<slot></slot>
<contact-button v-if="setting.provider === 'myznkf'" :tnt-inst-id="setting.config.myznkf.tntInstId"
:scene="setting.config.myznkf.scene" />
</view>
<!-- #endif -->
</view>
</template>
<script>
import SettingKeyEnum from '@/common/enum/setting/Key'
import SettingModel from '@/common/model/Setting'
import MpAlipaySettingModel from '@/common/model/mp/alipay/Setting'
export default {
props: {},
data() {
return {
isShow: false,
setting: {}
}
},
async created() {
// 是否显示在线客服按钮
this.isShow = await SettingModel.isShowCustomerBtn()
// #ifndef MP-ALIPAY
// 商城客服设置
this.setting = await SettingModel.item(SettingKeyEnum.CUSTOMER.value, true)
// #endif
// #ifdef MP-ALIPAY
// 商城客服设置
this.setting = await MpAlipaySettingModel.item('customer', true)
// #endif
},
methods: {
// 在线客服 (企业微信客服)
handleContact() {
const app = this
const { setting } = app
// 企业微信客服
if (setting.provider == 'wxqykf') {
if (!setting.config.wxqykf.url || !setting.config.wxqykf.corpId) {
this.$toast('客服链接和企业ID不能为空')
return
}
// #ifdef H5
window.open(setting.config.wxqykf.url)
// #endif
// #ifdef MP-WEIXIN
wx.openCustomerServiceChat({
extInfo: { url: setting.config.wxqykf.url },
corpId: setting.config.wxqykf.corpId,
success(res) {}
})
// #endif
// #ifdef APP-PLUS
uni.share({
provider: 'weixin',
scene: 'WXSceneSession',
type: 0,
openCustomerServiceChat: true,
corpid: setting.config.wxqykf.corpId,
customerUrl: setting.config.wxqykf.url,
success(res) {
console.log("success:" + JSON.stringify(res));
},
fail(e) {
console.log('errCode', e.errCode, e)
if (e.errCode === -8) {
app.$toast('很抱歉,您的手机没有安装微信~')
}
}
})
// #endif
}
}
}
}
</script>
<!-- 支付宝小程序智能客服样式 -->
<!-- #ifdef MP-ALIPAY -->
<style lang="scss">
.contact-box {
position: relative;
}
.contact-box contact-button {
width: 100%;
height: 100%;
position: absolute;
left: 0;
top: 0;
opacity: 0;
z-index: 88;
}
</style>
<!-- #endif -->
<style lang="scss" scoped>
</style>