多租户商城-商户小程序端
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.
 
 
 

91 lines
2.8 KiB

const NET = require("./request");
const API = require("../config/api");
/**
* @FileDescription:客服相关函数
* @Author: kahu
* @Date: 2022/11/4
* @LastEditors: kahu
* @LastEditTime: 2022/11/4
*/
export function Services(shopId) {
let corpId = null, serviceURL = null
const getServiceUrl = async () => {
uni.showLoading({
title:'加载中...'
})
const shopIds = uni.getStorageSync('service_shopids') || []
const corpIds = uni.getStorageSync('service_corpIds') || []
const urls = uni.getStorageSync('service_urls') || []
try {
const res = await NET.request(API.CustomerService, {}, 'get')
if (res.code === '' && res.data.corpId && res.data.url) {
shopIds.push(shopId)
corpIds.push(res.data.corpId)
urls.push(res.data.url)
uni.setStorageSync('service_shopids', shopIds);
uni.setStorageSync('service_corpIds', corpIds);
uni.setStorageSync('service_urls', urls);
corpId = res.data.corpId
serviceURL = res.data.url
}
} finally {
uni.hideLoading()
}
}
const flyToService = ()=>{
if (!serviceURL || !corpId) {
return uni.showToast({
icon:'none',
title:'暂无客服~'
})
}
// #ifdef MP-WEIXIN
wx.openCustomerServiceChat({
extInfo: {
url: serviceURL
},
corpId: corpId
})
// #endif
// #ifdef APP-PLUS
try {
let wechatServices = null
plus.share.getServices(res => {
wechatServices = res.find(wechatItem => wechatItem.id === 'weixin')
if (wechatServices) {
wechatServices.openCustomerServiceChat({
corpid: corpId,
url: serviceURL,
}, success => {
}, err => {
})
} else {
plus.nativeUI.alert('当前环境不支持微信操作!')
}
}, err=>{
console.error(err)
uni.showToast({title: "获取服务失败,不支持该操作。" + JSON.stringify(err), icon: 'none'})
})
} catch (err) {
console.error(err)
uni.showToast({title: "调用失败,不支持该操作。" + JSON.stringify(err), icon: 'none'})
}
// #endif
// #ifdef H5
// window.open(serviceURL) safari浏览器不支持window.open
window.location.href = serviceURL
// #endif
}
return getServiceUrl().then(res=>{
return {
flyToService
}
})
}