新增营销系统、分销系统、会员功能、门店、提现功能
This commit is contained in:
127
hooks/useService.js
Normal file
127
hooks/useService.js
Normal file
@ -0,0 +1,127 @@
|
||||
/**
|
||||
* @name: useService
|
||||
* @author: kahu4
|
||||
* @date: 2024-01-24 17:35
|
||||
* @description:客服
|
||||
* @update: 2024-01-24 17:35
|
||||
* */
|
||||
import { useInterface } from "@/hooks/useInterface";
|
||||
import { onLoad } from "@dcloudio/uni-app";
|
||||
import { getServiceDetail } from "@/api/global";
|
||||
|
||||
|
||||
const {toast, loading, hideLoading} = useInterface()
|
||||
|
||||
export const useService = () => {
|
||||
let serviceData = {
|
||||
corpId: '',
|
||||
accountLink: ''
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取客服数据
|
||||
* @return {Promise<void>}
|
||||
*/
|
||||
async function getServiceData() {
|
||||
try {
|
||||
loading()
|
||||
serviceData = await getServiceDetail();
|
||||
} finally {
|
||||
hideLoading()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 区分环境打开客服
|
||||
* @return {Promise<*>}
|
||||
*/
|
||||
async function openService() {
|
||||
if (Reflect.ownKeys(serviceData).length <= 0) return toast({title: '暂无客服~', icon: 'error'})
|
||||
if (!serviceData.corpId || !serviceData.accountLink) return toast({title: '暂无客服~', icon: 'error'})
|
||||
// #ifdef MP-WEIXIN
|
||||
return _miniProgramOpen(serviceData)
|
||||
// #endif
|
||||
// #ifdef APP-PLUS
|
||||
return _appPlusOpen(serviceData)
|
||||
// #endif
|
||||
// #ifdef H5
|
||||
return _h5Open(serviceData)
|
||||
// #endif
|
||||
}
|
||||
|
||||
|
||||
|
||||
return {
|
||||
getServiceData,
|
||||
openService
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 小程序环境打开客服
|
||||
* @param serviceData
|
||||
* @return {Promise<unknown>}
|
||||
* @private
|
||||
*/
|
||||
function _miniProgramOpen(serviceData) {
|
||||
return new Promise((resolve, reject) => {
|
||||
wx.openCustomerServiceChat({
|
||||
extInfo: {
|
||||
url: serviceData.accountLink
|
||||
},
|
||||
corpId: serviceData.corpId,
|
||||
success() {
|
||||
resolve(true)
|
||||
},
|
||||
fail(err) {
|
||||
reject(err)
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* app环境打开客服
|
||||
* @param serviceData
|
||||
* @return {Promise<unknown>}
|
||||
* @private
|
||||
*/
|
||||
function _appPlusOpen(serviceData) {
|
||||
return new Promise((resolve, reject) => {
|
||||
plus.share.getServices(
|
||||
res => {
|
||||
const wechatServices = res.find(appItem => appItem.id === 'weixin')
|
||||
if (!wechatServices) return reject('当前环境不支持微信操作')
|
||||
wechatServices.openCustomerServiceChat(
|
||||
{
|
||||
corpid: serviceData.corpId,
|
||||
url: serviceData.accountLink,
|
||||
},
|
||||
() => {
|
||||
resolve(true)
|
||||
},
|
||||
err => {
|
||||
reject(err)
|
||||
})
|
||||
},
|
||||
err => {
|
||||
reject(err)
|
||||
}
|
||||
)
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* h5环境打开客服
|
||||
* @param serviceData
|
||||
* @return {Promise<Awaited<boolean>>}
|
||||
* @private
|
||||
*/
|
||||
function _h5Open(serviceData) {
|
||||
// window.open(serviceURL) safari浏览器不支持window.open
|
||||
window.location.href = serviceData.accountLink
|
||||
return Promise.resolve(true)
|
||||
}
|
Reference in New Issue
Block a user