diff --git a/api/http.js b/api/http.js index ea499ea..5eda179 100644 --- a/api/http.js +++ b/api/http.js @@ -10,12 +10,13 @@ // 导入全局属性 import appConfig from '@/config/appConfig.js' import storageManage from '@/commons/utils/storageManage.js' -import { - sm4DecryptByResData -} from '@/commons/utils/encryptUtil.js' -import infoBox from "@/commons/utils/infoBox.js" -// let baseUrl = '' -let baseUrl = 'https://cashier-client.sxczgkj.cn/cashier-client' + +// let baseUrl = '' //测试 +// let baseUrl = 'https://cashier-client.sxczgkj.cn/cashier-client' //测试环境 +// let baseUrl = 'https://pre-cashierclient.sxczgkj.cn/cashier-client' //预发布环境 +// let baseUrl = 'https://cashierclient.sxczgkj.cn/cashier-client' //线上环境 +let baseUrl = appConfig.ENV_ENUM.VITE_API_URL + // 多少 ms 以内, 不提示loading const loadingShowTime = 200 @@ -45,7 +46,7 @@ function commonsProcess(showLoading, httpReqCallback) { let reqFinishFunc = () => { if (reqState == 'ingLoading') { // 关闭loading弹层 - infoBox.hideLoading() + uni.hideLoading() } reqState = 'finish' // 请求完毕 } @@ -56,7 +57,7 @@ function commonsProcess(showLoading, httpReqCallback) { setTimeout(() => { if (reqState == 'ing') { reqState = 'ingLoading' - infoBox.showLoading() + uni.showLoading({ title: '请稍后', mask: true }) } }, loadingShowTime) } @@ -87,7 +88,10 @@ function commonsProcess(showLoading, httpReqCallback) { // http响应码不正确 if (statusCode != 200 && statusCode != 204 && statusCode != 201) { isShowErrorToast = true - infoBox.showErrorToast(data.message || '服务器异常') + uni.showToast({ + title: data.message || '服务器异常', + icon: 'none' + }) return Promise.reject(bodyData) // 跳转到catch函数 } @@ -97,19 +101,25 @@ function commonsProcess(showLoading, httpReqCallback) { }).catch(res => { if(res.status==401){ - infoBox.showToast(`登录失效`) + uni.showToast({ + title: '登录失效', + icon: 'none' + }) } if(res.status==500){ - infoBox.showToast(`网络异常`) + uni.showToast({ + title: '网络异常', + icon: 'none' + }) } - // if(res&&res.msg){ - // infoBox.showErrorToast(res.msg) - // } reqFinishFunc(); // 请求完毕的动作 // 如果没有提示错误, 那么此处提示 异常。 if (!isShowErrorToast) { - infoBox.showErrorToast(`请求网络异常`) + uni.showToast({ + title: '请求网络异常', + icon: 'none' + }) } return Promise.reject(res) diff --git a/commons/utils/cal.js b/commons/utils/cal.js deleted file mode 100644 index b160920..0000000 --- a/commons/utils/cal.js +++ /dev/null @@ -1,37 +0,0 @@ -/** - * 数字, 计算相关函数 - * - * @author terrfly - * @site https://www.jeepay.vip - * @date 2022/11/22 10:38 - */ - -/** - * 保留小数n位,不进行四舍五入 - * num你传递过来的数字, - * decimal你保留的几位,默认保留小数后两位 - */ -const formatDecimal = function(num, decimal = 2) { - num = num.toString() - const index = num.indexOf('.') - if (index !== -1) { - num = num.substring(0, decimal + index + 1) - } else { - num = num.substring(0) - } - //截取后保留两位小数 - return parseFloat(num).toFixed(decimal) -} - -const model = { - // 分转元 - // amount - 金额 parseFloat - 是否转换为数字格式, 默认String - cert2Dollar(amount, needParseFloat = false) { - if (needParseFloat) { // parseFlot - return formatDecimal(amount / 100) - } - return formatDecimal(amount / 100) - } -} - -export default model \ No newline at end of file diff --git a/commons/utils/dataKit.js b/commons/utils/dataKit.js deleted file mode 100644 index 8dd0691..0000000 --- a/commons/utils/dataKit.js +++ /dev/null @@ -1,38 +0,0 @@ -/** - * 数据 工具类 - * - * @author terrfly - * @site https://www.jeepay.vip - * @date 2022/11/30 14:18 - */ - -const model = { - - // 递归遍历树状结构数据 matchFunc 匹配结果, true表示匹配成功, 否则继续匹配。 - // pnode 可不传入 - // 返回结构: [当前数据, 上级数据 ] - recursionTreeData: (treeData, matchFunc, childrenName = 'children', pnode = null ) => { - - for (let i = 0; i < treeData.length; i++) { - - const item = treeData[i] - - // 匹配成功 - if(matchFunc(item)){ - return [item, pnode] - } - - if (item[childrenName] && item[childrenName].length > 0) { - let res = model.recursionTreeData(item[childrenName], matchFunc, childrenName, item) - if(res){ - return res - } - } - } - - } - -} - -export default model - diff --git a/commons/utils/encryptUtil.js b/commons/utils/encryptUtil.js deleted file mode 100644 index 95881ce..0000000 --- a/commons/utils/encryptUtil.js +++ /dev/null @@ -1,72 +0,0 @@ -/** - * 加解密工具包 - * - * @author terrfly - * @site https://www.jeepay.vip - * @date 2021/5/16 17:35 - */ -import { SM4 } from 'gm-crypto' -import appConfig from '@/config/appConfig.js' - -let HEX_KEY = null - -// 字符串转16进制 -function str2hex(str) { - var val = '' - for (var i = 0; i < str.length; i++) { - if (val == '') - val = str.charCodeAt(i).toString(16) - else - val += str.charCodeAt(i).toString(16) - } - val += '' - return val -} - -// 获取hex秘钥 -function getHexKey(){ - - if(!HEX_KEY){ - - HEX_KEY = str2hex(appConfig.encryptKey) - - } - return HEX_KEY -} - - -// 解密 (http响应数据, 做通用处理) -export function sm4DecryptByResData(data){ - - if(!data){ - return data - } - - let res = SM4.decrypt(data, getHexKey(), { - inputEncoding: 'base64', - outputEncoding: 'utf8' - }) - - if(!res){ - return res - } - - return JSON.parse(res)['originData'] -} - -// 加密 (http响应数据, 做通用处理) -export function sm4EncryptByReqData(data){ - - if(!data){ - return data - } - - // 加密处理 - let encryptData = SM4.encrypt(JSON.stringify(data), getHexKey(), { - inputEncoding: 'utf8', - outputEncoding: 'base64' - }) - - return {encryptData : encryptData} -} - diff --git a/commons/utils/formUtil.js b/commons/utils/formUtil.js deleted file mode 100644 index 8d51bf8..0000000 --- a/commons/utils/formUtil.js +++ /dev/null @@ -1,101 +0,0 @@ -/** - * form 验证 工具类 - * - * @author terrfly - * @site https://www.jeepay.vip - * @date 2022/11/25 10:58 - */ - -import infoBox from '@/commons/utils/infoBox.js' - -const model = { - - - // 正则表达式 - regexp: { - - // 手机号验证规则 - mobile: /^1\d{10}$/, - - // 登录用户名: 字母开头 6 -18位。 - loginUsername: /^[a-zA-Z][a-zA-Z0-9]{5,17}$/, - - }, - - - // 验证规则: - rules: { - - // showText 为空, 说明是 input的placeHoloder 直接飘红, - // showText 有值: 在文本框下方提示。 - // 只有input 才有这种特殊判断。 - requiredInput: (showText, type = 'string') => { - return {format: type, required: true, errorMessage: showText ? ('请输入' + showText) : ' ' } - }, - - requiredSelect: (showText, type = 'string') => { - return {format: type, required: true, errorMessage: '请选择' + showText } - }, - - requiredUpload: (showText, type = 'string') => { - return {format: type, required: true, errorMessage: '请上传' + showText } - }, - - // 正则验证 , 请注意: 该规则需要在required后面, 此处不可包含required - patternRule: (showText, p) => { - return {pattern: p, errorMessage: '请输入正确的' + showText } - }, - - requiredInputShowToast: (showText, type = 'string') => { - return {format: type, required: true, errorMessage:' ', toastErrorMessage: '请输入' + showText } - }, - - requiredSelectShowToast: (showText, type = 'string') => { - return {format: type, required: true, errorMessage:' ', toastErrorMessage: '请选择' + showText } - }, - - requiredUploadShowToast: (showText, type = 'string') => { - return {format: type, required: true, errorMessage:' ', toastErrorMessage: '请上传' + showText } - }, - - patternRuleShowToast: (showText, p) => { - return {pattern: p, errorMessage:' ', toastErrorMessage: '请输入正确的' + showText } - }, - - }, - - - // 支持 提示信息 - // 类型如下: - // { - // required: true, - // toastErrorMessage: "请输入去去去去群", - // errorMessage: ' ', // 不会显示在下部, 需要空格占位 - // } - validate: (form) => { - - return form.validate().catch(e => { - - if(!e || e.length <= 0){ - return Promise.reject() - } - - for(let i = 0; i < e.length; i++){ - let k = e[i].key - let rules = form.rules[k].rules - for(let j = 0; j < rules.length; j++){ - if(rules[j].toastErrorMessage && rules[j].required){ - infoBox.showToast(rules[j].toastErrorMessage) // 仅提示一次即可 - return Promise.reject(e) - } - } - } - return Promise.reject(e) - }) - - }, - -} - -export default model - diff --git a/commons/utils/format.js b/commons/utils/format.js deleted file mode 100644 index f8f915f..0000000 --- a/commons/utils/format.js +++ /dev/null @@ -1,54 +0,0 @@ -/** - * 格式化价格函数,将价格限定在指定的最小值和最大值范围内,并保留两位小数。 - * - * @param {number} price - 需要格式化的价格。 - * @param {number} min - 价格的最小值。 - * @param {number} max - 价格的最大值,默认为100000000。 - * @param {Boolean} returnIsArea - 是否返回值符合范围区间,默认为false。 - * @returns {number} - 返回格式化后的价格,如果超出范围则返回最小值或最大值。 - */ -export const formatPrice = (price,min=-Infinity, max = 100000000,returnIsArea=false ) => { - if(price === undefined || price === null||price===''){ - return 0 - } - // 将价格转换为浮点数并保留两位小数 - const newval = parseFloat((Math.floor(price * 100) / 100).toFixed(2)) - // 如果价格大于最大值,返回最大值 - if (newval > max) { - return returnIsArea?{value:max,error:true}:max - } - // 如果价格小于最小值,返回最小值 - if (newval < min) { - return returnIsArea?{value:min,error:true}:min - } - // 如果价格小于最小值,返回最小值 - if (newval < min) { - return min - } - // 返回格式化后的价格 - return newval -} -export function returnReverseVal(val, isReturnString = true) { - const isBol = typeof val === "boolean"; - const isString = typeof val === "string"; - let reverseNewval = ""; - if (isBol) { - reverseNewval = !val; - } - if (isString) { - reverseNewval = val === "true" ? "false" : "true"; - } - return reverseNewval; -} -export function returnBoolean(val) { - const isBol = typeof val === "boolean"; - const isString = typeof val === "string"; - let newval = ""; - if (isBol) { - newval = val; - } - if (isString) { - newval = val === "true" ? true : false; - } - return newval; -} \ No newline at end of file diff --git a/commons/utils/getDateArea.js b/commons/utils/getDateArea.js deleted file mode 100644 index 50583c6..0000000 --- a/commons/utils/getDateArea.js +++ /dev/null @@ -1,32 +0,0 @@ -function getDayArea(date = new Date(), type) { - const now = date - if (type === 'start') { - const startOfDay = new Date(now.getFullYear(), now.getMonth(), now.getDate()); - return startOfDay - } - if (type === 'end') { - const endOfDay = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 23, 59, 59, 999); - return endOfDay; - } - return `${startOfDay}-${endOfDay}` -} -function getMonthArea(date = new Date(), type) { - let now = date - let currentMonthStart = new Date(now.getFullYear(), now.getMonth(), 1); - let currentMonthEnd = new Date(now.getFullYear(), now.getMonth() + 1, 0 , 23, 59, 59, 999); - if (type === 'start') { - return currentMonthStart - } - if (type === 'end') { - return currentMonthEnd; - } - return { - start: currentMonthStart, - end: currentMonthEnd - }; -} - - -export default { - getDayArea, getMonthArea -} \ No newline at end of file diff --git a/commons/utils/getQueryString.js b/commons/utils/getQueryString.js deleted file mode 100644 index ed310c7..0000000 --- a/commons/utils/getQueryString.js +++ /dev/null @@ -1,13 +0,0 @@ -/** - * 获取url链接参数 - * @param {Object} url - * @param {Object} name - */ -export function getQueryString(url, name) { - var reg = new RegExp('(^|&|/?)' + name + '=([^&|/?]*)(&|/?|$)', 'i') - var r = url.substr(1).match(reg) - if (r != null) { - return r[2] - } - return null; -} \ No newline at end of file diff --git a/commons/utils/infoBox.js b/commons/utils/infoBox.js deleted file mode 100644 index 603e646..0000000 --- a/commons/utils/infoBox.js +++ /dev/null @@ -1,62 +0,0 @@ -/** - * 提示信息公共文件 - * - * @author terrfly - * @site https://www.jeequan.com - * @date 2022/11/14 15:29 - */ - -const model = { - - // uni.showToast的封装 - // 参数: 标题、 显示时长(单位: 秒), 扩展参数 - // 返回: promise对象, 当提示消失后调用 resolve() - showToast: (title, duration = 1.5, extObject) => { - return new Promise((resolve, reject) => { - uni.showToast(Object.assign({ title: title, icon: 'none', mask: true, duration: (duration * 1000) }, extObject)) - setTimeout(resolve, (duration * 1000)); - }) - }, - - // success类型的提示 - showSuccessToast: (title, duration) => { - return model.showToast(title, duration, {icon: 'success'}) - }, - - // error类型的提示 - showErrorToast: (title, duration) => { - return model.showToast(title, duration, {icon: 'error'}) - }, - - showLoading: (title = '请稍后' ) => { - return uni.showLoading({ title: title, mask: true }) - }, - - hideLoading: () => { - return uni.hideLoading() - }, - - // 返回 Promise 点击确定和取消 - // APP安卓原生提示(比较丑), APP 不推荐使用该函数 。 - showModal: (title, confirmText = '确定', cancalText = '取消', extObject) => { - return new Promise((resolve, reject) => { - uni.showModal( Object.assign({ - title: title, - confirmText: confirmText, - showCancel: cancalText ? true : false, - cancelText: cancalText, - success: function(r) { - if (r.confirm) { - resolve() - }else if (r.cancel) { - reject() - } - } - }, extObject )); - }); - }, - - -} - -export default model \ No newline at end of file diff --git a/commons/utils/pushmsg/QS-baiduyy.js b/commons/utils/pushmsg/QS-baiduyy.js deleted file mode 100644 index 9341b2d..0000000 --- a/commons/utils/pushmsg/QS-baiduyy.js +++ /dev/null @@ -1,143 +0,0 @@ -import { $getBaiduToken } from '@/http/apiManager.js'; -const audioTeam = []; -let audioStartSwitch = false; -const getAudioUrl = 'https://tsn.baidu.com/text2audio'; - -export default function openVoice(objs) { // 传入需转为语音的文本内容 - let lineUp = false; - let returnAudio = false; - if (typeof(objs) !== 'string') { - if (objs && objs.lineUp === true) { - lineUp = true; - } - if (objs && objs.returnAudio === true) { - returnAudio = true; - } - } - if(returnAudio) { - return new Promise((resolve, reject)=>{ - openVoiceFc(objs, returnAudio).then(res=>{ - resolve(res); - }).catch(err=>{ - reject(err) - }); - }) - } - - if (!audioStartSwitch || lineUp) { - audioStartSwitch = true; - openVoiceFc(objs); - } else { - audioTeam.push(objs); - } -} - -function openVoiceFc(objs, returnAudio) { - if(returnAudio) { - return new Promise((resolve, reject)=>{ - $getBaiduToken().then(({bizData}) => { - if (bizData) { - resolve(tts(objs, bizData, returnAudio)); - } else { - reject('获取语音tok接口为空'); - } - }) - }) - }else{ - $getBaiduToken().then(({bizData}) => { - if (bizData) { - tts(objs, bizData); - } else { - } - }) - } -} - -function tts(objs, tok, returnAudio) { - if(typeof(objs)=='string') - objs = {voiceSet: {tex: objs}}; - const data = { - tok, - cuid: tok, - ctp: 1, - lan: 'zh', - ...objs.voiceSet - } - if(returnAudio) - return btts( data, objs.audioSet, objs.audioCallback, objs.lineUp, returnAudio); - btts( data, objs.audioSet, objs.audioCallback, objs.lineUp, returnAudio); -} - -function setAudioSet(options, audio) { - if (options) { - audio.volume = options.volume || 1; - audio.startTime = options.startTime || 0; - audio.loop = options.loop || false; - audio.obeyMuteSwitch = options.obeyMuteSwitch && typeof(options.obeyMuteSwitch) == 'boolean' ? options.obeyMuteSwitch : - true; //支持微信小程序、百度小程序、头条小程序 - } -} - -function btts(param, options, audioCallback, lineUp, returnAudio) { - let audio = uni.createInnerAudioContext(); - setAudioSet(options, audio); - // 序列化参数列表 - let fd = []; - for (let k in param) { - fd.push(k + '=' + encodeURIComponent(encodeURIComponent(param[k]))); - } - audio.src = `${getAudioUrl}?${fd.join('&')}`; - - if(returnAudio) { - audio.onEnded(() => { - audio.destroy(); //销毁音频实例 - audio = null; - }) - audio.onError((e)=>{ - if (audioCallback && audioCallback.onError && typeof(audioCallback.onError) == 'function') audioCallback.onError(e); - audio.destroy(); //销毁音频实例 - audio = null; - }) - return audio; - } - audio.onPlay(() => { - if (audioCallback && audioCallback.onPlay && typeof(audioCallback.onPlay) == 'function') audioCallback.onPlay(); - }) - audio.onPause(()=>{ - if (audioCallback && audioCallback.onPause && typeof(audioCallback.onPause) == 'function') audioCallback.onPause(); - }) - audio.onWaiting(()=>{ - if (audioCallback && audioCallback.onWaiting && typeof(audioCallback.onWaiting) == 'function') audioCallback.onWaiting(); - }) - audio.onStop(()=>{ - if (audioCallback && audioCallback.onStop && typeof(audioCallback.onStop) == 'function') audioCallback.onStop(); - }) - audio.onTimeUpdate(()=>{ - if (audioCallback && audioCallback.onTimeUpdate && typeof(audioCallback.onTimeUpdate) == 'function') audioCallback.onTimeUpdate(); - }) - audio.onSeeking(()=>{ - if (audioCallback && audioCallback.onSeeking && typeof(audioCallback.onSeeking) == 'function') audioCallback.onSeeking(); - }) - audio.onSeeked(()=>{ - if (audioCallback && audioCallback.onSeeked && typeof(audioCallback.onSeeked) == 'function') audioCallback.onSeeked(); - }) - audio.onEnded(() => { - audio.destroy(); //销毁音频实例 - audio = null; - if (audioCallback && audioCallback.onEnded && typeof(audioCallback.onEnded) == 'function') audioCallback.onEnded(); - if (lineUp !== false) { - if (audioTeam.length > 0) { - openVoiceFc(audioTeam[0]); - audioTeam.splice(0, 1); - } else { - audioStartSwitch = false; - } - } - }) - audio.onError((e)=>{ - if (audioCallback && audioCallback.onError && typeof(audioCallback.onError) == 'function') audioCallback.onError(e); - audio.destroy(); //销毁音频实例 - audio = null; - }) - audio.play(); -} diff --git a/commons/utils/pushmsg/pushMsgManage.js b/commons/utils/pushmsg/pushMsgManage.js deleted file mode 100644 index 10385dc..0000000 --- a/commons/utils/pushmsg/pushMsgManage.js +++ /dev/null @@ -1,71 +0,0 @@ -import storageManage from '@/commons/utils/storageManage.js' -import dayjs from 'dayjs' -import baiduyy from './QS-baiduyy.js'; // 百度语音合成 - -// #ifdef MP-WEIXIN -import wxTextToSpeach from './wxTextToSpeach.js'; // 微信小程序插件语音合成 -// #endif - - -const model = { - // 监听推送通知 - addPushMsgEventListener: function(){ - - console.log("监听推送") - - // #ifdef APP-PLUS - // unipush1.0监听消息 - if(plus && plus.push) { - plus.push.addEventListener('receive', model.handlePush) - } - // #endif - // unipush2.0监听消息 - model.uniPushListener2() - }, - - - // uniPush2.0 接收推送消息 - uniPushListener2: function() { - uni.onPushMessage((res) => { - console.log("uniPush2.0 收到推送消息:", res.data) //监听推送消息 - model.handlePush(res.data) - }) - }, - - // 语音播报 - handlePush: function(message) { - - // 没有token信息 - if(!storageManage.token()){ - return false; - } - - // 信息不存在 - if(!message || !message.content) { - return false; - } - - const content = JSON.parse(message.content) - console.log("消息内容:", content) - - // 支付成功 - if (content && content.type == 'paySuccess') { - // 在过期时间之内, 则调起语音播报。 - if( dayjs(content.expiredTime).isAfter(dayjs()) ){ - console.log('执行消息播报'); - // #ifdef MP-WEIXIN - wxTextToSpeach(content.msg) - // #endif - - // #ifndef MP-WEIXIN - baiduyy(content.msg) - // #endif - uni.vibrateLong({}); - } - } - } - -} - - -export default model \ No newline at end of file diff --git a/commons/utils/pushmsg/registerPush.js b/commons/utils/pushmsg/registerPush.js deleted file mode 100644 index 1d8c813..0000000 --- a/commons/utils/pushmsg/registerPush.js +++ /dev/null @@ -1,50 +0,0 @@ -import { - $pushInfoRegister -} from '@/http/apiManager.js' -import storageManage from '@/commons/utils/storageManage.js' -// 默认导出 方法 注册 push连接 -export default async function() { - let cid1 = undefined // unipush1.0 客户端CID - let cid2 = undefined // unipush2.0 客户端CID - let orgCid = undefined // 原始cid如果获取的cid和新的cid不相同赋值原始cid后端会根据原始cid更新 - let cidType = undefined //传递类型 是 app 还是 微信 - // #ifdef APP-PLUS - cidType = 'app_plus' - // #endif - - // #ifdef MP-WEIXIN - cidType = 'mp_weixin' - // #endif - - // #ifdef APP-PLUS - if (!plus) { - cid1 = plus.push.getClientInfo().clientid - } - // #endif - const data = await uni.getPushClientId() - console.log('客户端推送标识:', data.cid) - cid2 = data.cid - // 如果不存 cid 本地存储 写入 cid - if (!storageManage.uniPush2Cid()) { - storageManage.uniPush2Cid(data.cid) - } else if (cid2 !== storageManage.uniPush2Cid()) { // 否则进行 cid 对比 判断 是否相等 不相等 赋值 orgCid - orgCid = storageManage.uniPush2Cid() //赋值原始cid - storageManage.uniPush2Cid(data.cid) //重新写入 cid - } - if (cid1) { - pushInfoRegister(cid1) - } else { - pushInfoRegister(cid1, cid2, orgCid, cidType) - } - - function pushInfoRegister(cid1 = '', cid2 = '', org = '', cidType = '') { - $pushInfoRegister({ - cid1, - cid2, - orgCid: org, - cidType - }).then(res => { - orgCid = '' //重置 数据 - }) - } -} diff --git a/commons/utils/pushmsg/wxTextToSpeach.js b/commons/utils/pushmsg/wxTextToSpeach.js deleted file mode 100644 index bfd523d..0000000 --- a/commons/utils/pushmsg/wxTextToSpeach.js +++ /dev/null @@ -1,87 +0,0 @@ -import { $mchConfig } from "@/http/apiManager" -import storageManage from '@/commons/utils/storageManage.js' -let num = 0 //计算错误此时 超过5次错误 不在出触发 -const plugin = requirePlugin("WechatSI") -const pushMsgArr = [] //维护一个消息队列 -let backgroundAudioManager = undefined //获取背景音频实例 -let audioMp3 = '' -console.log('执行创建 语音播报逻辑'); -// 获取配置项 判断是否 开启 小程序 语音推送 -export function getPushStatus () { - if (!storageManage.token()) return //未登录 不播放 - $mchConfig('orderConfig').then(({ bizData = [] }) => { - const weChat = bizData.find(v => v.configKey == "weChatVoice") - if (weChat && weChat?.configVal == 1) { - createBgMusice() - } - }) -} -// getPushStatus() -// 创建 背景音乐 -function createBgMusice (file) { - backgroundAudioManager = wx.getBackgroundAudioManager() - backgroundAudioManager.title = '订单通知' - if (!audioMp3) { - createFile() - } else { - backgroundAudioManager.src = audioMp3 - } - - // 监听 音频播放失败事件 - backgroundAudioManager.onError(function (res) { - console.log('音频播放失败', res, num); - if (num >= 5) return - createFile() - num++ - }) - // 监听 音频播放结束事件 - onBgMusiceEnd() -} -// 监听bei背景音乐播放状态 -export function onBgMusiceEnd () { - backgroundAudioManager.onEnded(() => { - if (pushMsgArr.length > 0) return broadcast(pushMsgArr.pop()) //如果有消息 则继续播放 - backgroundAudioManager.src = audioMp3 //否则播放默认背景音乐 - }) -} -export function startOrEndMusice (flag) { - if (!flag && !!backgroundAudioManager) return backgroundAudioManager.stop() //关闭背景音乐 地址指向空即可 - if (!backgroundAudioManager) return createBgMusice() // 如果一开始是关闭状态 则创建背景音乐实例 - backgroundAudioManager.src = audioMp3 // 否则重新赋值背景音地址即可 -} -export default function (message) { - if (!backgroundAudioManager) return - pushMsgArr.unshift(message) //将消息添加到消息队列头部 背景音乐播放结束后 会对消息队列 进行校验 如果消息队列有消息 会进行播放 否则继续循环背景音乐 -} -// 播放订单 -function broadcast (msg) { - plugin.textToSpeech({ - lang: "zh_CN", - tts: true, - content: msg, - success: function (res) { - backgroundAudioManager.src = res.filename; - onBgMusiceEnd() - }, - fail: function (res) { - console.log("fail tts", res) - } - }) -} - -// 创建文件 -export function createFile (file) { - const fs = wx.getFileSystemManager() - fs.copyFile({ - srcPath: `static/noiseless.mp3`, - destPath: `${wx.env.USER_DATA_PATH}/noiseless.mp3`, - success (res) { - console.log(res, `${wx.env.USER_DATA_PATH}/noiseless.mp3`) - audioMp3 = `${wx.env.USER_DATA_PATH}/noiseless.mp3` - backgroundAudioManager.src = audioMp3 - }, - fail (res) { - console.error(res) - } - }) -} \ No newline at end of file diff --git a/commons/utils/pushmsg/推送和播报相关.txt b/commons/utils/pushmsg/推送和播报相关.txt deleted file mode 100644 index 11b6a55..0000000 --- a/commons/utils/pushmsg/推送和播报相关.txt +++ /dev/null @@ -1,10 +0,0 @@ -创建 云空间 上传云函数 云函数 url化 运营平台 配置云函数地址 - -打包时 勾选云push 2.0 push1.0 仅支持 app 推送 - -注意配置 百度语音相关参数 - -使用push2.0 请将 static\noiseless.mp3 文件 配置到运营平台 系统 配置 通知配置 push2.0 uniPush语音播报音频文件(小程序播报必填) 下 - -注意:扩展库依赖3张opendb表:opendb-tempdata,opendb-device,uni-id-device。公测版uniCloud,执行扩展库会自动创建。如果你使用的是uniCloud正式版需要自己创建这3张表。 - \ No newline at end of file diff --git a/config/appConfig.js b/config/appConfig.js index 8e2a36a..570a6b1 100644 --- a/config/appConfig.js +++ b/config/appConfig.js @@ -15,7 +15,13 @@ const appConfig = { DEVELOPMENT: 'development', // 本地调试地址 TEST: 'test', // 测试地址 DEMO: 'demo', // 演示环境 - PRODUCTION: 'production' // 生产环境 + PRODUCTION: 'production' ,// 生产环境, + // # 测试 + // VITE_API_URL: 'https://cashier-client.sxczgkj.cn/cashier-client', + // # 预发布 + VITE_API_URL: 'https://pre-cashierclient.sxczgkj.cn/cashier-client', + // # 线上环境接口地址 + // VITE_API_URL: 'https://cashierclient.sxczgkj.cn/cashier-client', }, storeEnvEnumKey: 'currentEnvEnum', // 本地存储的envkey的值 diff --git a/manifest.json b/manifest.json index c4ddbc2..3c8f574 100644 --- a/manifest.json +++ b/manifest.json @@ -56,7 +56,7 @@ }, "router" : { "mode" : "history", //采用history模式URL的路径才跟配置的对应上,不然URL是先加/#再追加配置的地 - "base" : "/pay" //在页面路由上加上该前缀 + "base" : "/pay_pre" //在页面路由上加上该前缀 }, "devServer" : { "port" : 80, diff --git a/pages/index/index.vue b/pages/index/index.vue index 267a38f..ce2f6a4 100644 --- a/pages/index/index.vue +++ b/pages/index/index.vue @@ -1,7 +1,7 @@