H5端齐采药项目,uniapp框架
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.
 
 
 
 
 

127 lines
2.4 KiB

<template>
<view class="contact-wrap" >
<slot v-if="config && config.type != 'none'"></slot>
<button type="default" hover-class="none" :open-type="openType" class="contact-button" @click="contactServicer"
:send-message-title="sendMessageTitle"
:send-message-path="sendMessagePath"
:send-message-img="sendMessageImg"
></button>
</view>
</template>
<!-- 客服组件 -->
<script>
export default {
name: 'ns-contact',
props: {
niushop: {
type:Object,
default: function(){
return {}
}
},
sendMessageTitle: {
type: String,
default: ''
},
sendMessagePath: {
type: String,
default: ''
},
sendMessageImg: {
type: String,
default: ''
}
},
data() {
return {
config: null,
openType: ''
};
},
created() {
this.getKefuConfig();
},
methods: {
/**
* 获取小程序配置
*/
getKefuConfig(){
this.$api.sendRequest({
url: '/api/config/servicer',
success: res => {
if (res.code == 0) {
// #ifdef H5
this.config = res.data.h5;
// #endif
// #ifdef MP-WEIXIN
this.config = res.data.weapp;
if (this.config.type == 'weapp') this.openType = 'contact';
// #endif
}
}
});
},
/**
* 联系客服
*/
contactServicer(){
if (this.openType == 'contact') return;
switch(this.config.type) {
case 'wxwork':
// #ifdef H5
location.href = this.config.wxwork_url;
// #endif
// #ifdef MP-WEIXIN
wx.openCustomerServiceChat({
extInfo: {url: this.config.wxwork_url},
corpId: this.config.corpid
})
// #endif
break;
case 'third':
location.href = this.config.third_url;
break;
case 'niushop':
this.$util.redirectTo('/pages_tool/chat/room', this.niushop);
break;
default:
this.makePhoneCall();
}
},
/**
* 店铺联系方式
*/
makePhoneCall(){
this.$api.sendRequest({
url: '/api/config/shopcontact',
success: res => {
if (res.code == 0 && res.data.mobile) uni.makePhoneCall({ phoneNumber: res.data.mobile });
}
});
}
}
}
</script>
<style lang="scss">
.contact-wrap {
width: 100%;
height: 100%;
position: relative;
.contact-button {
width: 100%;
height: 100%;
position: absolute;
left: 0;
top: 0;
z-index: 5;
padding: 0;
margin: 0;
opacity: 0;
}
}
</style>