// 计算坐标之间旋转角度 let calcAngle = (start, end) => { let y = Math.sin(end.longitude - start.longitude) * Math.cos(end.latitude); let x = Math.cos(start.latitude) * Math.sin(end.latitude) - Math.sin(start.latitude) * Math.cos(end.latitude) * Math.cos(end.longitude - start.longitude); let angle = Math.atan2(y, x); angle = (180 * angle) / Math.PI; if (end.latitude > start.latitude) { return angle - 90 } if (end.latitude < start.latitude) { return 180 - angle } return angle - 90; } let isDuringDate = (start, end) => { let curDate = new Date().getTime(); let beginDate = new Date(start.replace(/-/g, '/')).getTime(); let endDate = new Date(end.replace(/-/g, '/')).getTime(); if (curDate >= beginDate && curDate <= endDate) { return true; } else { return false; } } let getImagePath = (path) => { // console.log('工具类', uni.$u.http.config.baseURL); if (uni.$u.test.url(path)) { return path; } else { return uni.$u.http.config.baseURL + path; } } // 对象数组排序 let compareObjArray = (p) => { return (m, n) => { var a = m[p]; var b = n[p]; return a - b; //升序 } } let getTimeState = () => { // 获取当前时间 let timeNow = new Date(); // 获取当前小时 let hours = timeNow.getHours(); console.log('小时', hours); // 设置默认文字 let text = ``; // 判断当前时间段 if (hours >= 0 && hours < 10) { text = `早上好`; } else if (hours >= 10 && hours < 14) { text = `中午好`; } else if (hours >= 14 && hours < 18) { text = `下午好`; } else if (hours >= 18 && hours < 24) { text = `晚上好`; } console.log(text); // 返回当前时间段对应的状态 return text; } let hidePhoneNumberOrName = (hideStr, way = 0) => { if (!hideStr) { return '号码有误' } // 获取当前时间 let result = ''; if (way === 0) { result = hideStr.toString().slice(0, 3) + '****' + hideStr.toString().slice(-4); } if (way === 1) { result = hideStr.toString().slice(0, 1) + '**'; } if (way === 2) { // result = hideStr.toString().slice(0, 1) + '**'; if (hideStr.length <= 7) { result = hideStr; } else { result = hideStr.toString().slice(0, 2) + '***' + hideStr.toString().slice(-2); } } if (way === 3) { result = hideStr.toString().slice(0, 1) + '***' + hideStr.toString().slice(-1); } return result; } let isDuringDateHour = (start, end) => { // console.log(start, end); // let year = new Date().getFullYear(); // let month = new Date().getMonth() + 1; // let day = new Date().getDate(); // let forward = ''; // if (month < 10) { // forward = year + '-0' + month + '-' + day // } else { // forward = year + '-' + month + '-' + day // } // let tempStart = forward + ' ' + start; // let tempEnd = forward + ' ' + end; // tempStart = '2023-10-10 00:00:00' let curDate = new Date().getTime(); let beginDate = new Date(start.replace(/-/g, '/')).getTime(); let endDate = new Date(end.replace(/-/g, '/')).getTime(); if (curDate < beginDate) { return 0; } if (curDate >= beginDate && curDate <= endDate) { return 1; } if (curDate > endDate) { return 2; } } // 判断是否在今天 let isToday = (time) => { let year = new Date().getFullYear(); let month = new Date().getMonth() + 1; let day = new Date().getDate(); let target = new Date(time); let targetYear = new Date().getFullYear(); let targetMonth = new Date().getMonth() + 1; let targetDay = new Date().getDate(); if (year === targetYear && month === targetMonth && day === targetDay) { return true; } else { return false; } } let getDayLater = (time) => { if (time.length === 0) { return '' } let curTime = new Date().getTime(); let targetTime = new Date(time.replace(/-/g, '/')).getTime(); if (curTime >= targetTime) { return '今天' } let sub = targetTime - curTime; const oneDay = 24 * 60 * 60 * 1000; let result = Math.ceil(sub / oneDay) if (result === 1) { return '明天' } if (result === 2) { return '后天' } return `${result}天后`; } let todayOrNext = (time) => { // console.log('time: ',time); let targetYear = new Date(time.replace(/-/g, '/')).getFullYear(); let targetMonth = new Date(time.replace(/-/g, '/')).getMonth() + 1; let targetDay = new Date(time.replace(/-/g, '/')).getDate(); let targetHour = new Date(time.replace(/-/g, '/')).getHours(); let targetMin = new Date(time.replace(/-/g, '/')).getMinutes(); let year = new Date().getFullYear(); let month = new Date().getMonth() + 1; let day = new Date().getDate(); if (targetMin < 10) { targetMin = '0' + targetMin } if (year === targetYear && month === targetMonth && day === targetDay) { return `${targetHour}:${targetMin}`; } if (year === targetYear && month === targetMonth && (targetDay - day) === 1) { return `明天${targetHour}:${targetMin}`; } return `${targetMonth}月${targetDay}日` } // 获取时间差(天) let getRange = (target) => { let targetDate = new Date(target); let currentDate = new Date(); // 获取当前日期对象 let timeDiff = Math.abs(targetDate.getTime() - currentDate.getTime()); let daysDiff = Math.ceil(timeDiff / (1000 * 3600 * 24)); if (daysDiff === 1) { return '明日开抢' } return daysDiff + '天后开抢'; } // 获取时间差(天) let getTimeDiffYear = (start, end) => { console.log('start: ', start); console.log('end: ', end); if (!start || !end) { return true } let startDate = new Date(start.replace(/-/g, '/')).getTime(); let endDate = new Date(end.replace(/-/g, '/')).getTime(); if (endDate < startDate) { uni.$u.toast('结束日期小于开始日期') return false; } const oneYearInMs = 365 * 24 * 60 * 60 * 1000; // 近似一年的毫秒数 if (endDate - startDate > oneYearInMs) { uni.$u.toast('结束日期大于开始日期12个月') return false; } return true; } let isBeforeToday = (time) => { time = time + ' 00:00:00'; let currentDate = new Date(); // 获取当前日期对象 let targetDate = new Date(time.replace(/-/g, '/')).getTime(); return targetDate < currentDate } let getWeekAndDay = (time) => { console.log(time); let targetDate = new Date(time.replace(/-/g, '/')); let temp = targetDate.getDay(); let weekDay = ''; switch (temp) { case 1: weekDay = '一' break; case 2: weekDay = '二' break; case 3: weekDay = '三' break; case 4: weekDay = '四' break; case 5: weekDay = '五' break; case 6: weekDay = '六' break; case 7: weekDay = '日' break; default: break; } return weekDay; } let goElemeAppOrMini = (shopId) => { console.log(shopId); // #ifdef APP-PLUS plus.share.getServices(platforms => { console.log(platforms); let sweixin = null; for (let i = 0; i < platforms.length; i++) { if (platforms[i].id === 'weixin') { sweixin = platforms[i]; break; } } if (sweixin) { sweixin.launchMiniProgram({ id: 'gh_6506303a12bb', path: `ele-estore/ele-takeout-index/ele-takeout-index?&shopId=${shopId}` }) } else { uni.$u.toast('请先安装微信') } }) // #endif // #ifdef MP-WEIXIN uni.navigateToMiniProgram({ appId: 'wxece3a9a4c82f58c9', path: `ele-estore/ele-takeout-index/ele-takeout-index?&shopId=${shopId}`, envVersion: 'release', success: (e) => { console.log(e); }, fail: (error) => { console.log(error); } }) // #endif } let openDouyinApp = (videoId) => { if (plus.runtime.isApplicationExist({ pname: 'com.ss.android.ugc.aweme', action: 'snssdk1128://' })) { plus.runtime.openURL( `snssdk1128://aweme/detail/${videoId}`, ( res) => { console.log(res); }) } else { uni.$u.toast('请先安装抖音App') } } let openDouyinAppUserCenter = (uid) => { console.log('uid: ', uid); if (plus.runtime.isApplicationExist({ pname: 'com.ss.android.ugc.aweme', action: 'snssdk1128://' })) { plus.runtime.openURL( `snssdk1128://user/profile/${uid}`, ( res) => { console.log(res); }) } else { uni.$u.toast('请先安装抖音App') } } let goMeiTuanAppOrMini = (shopId) => { console.log(shopId); // #ifdef APP-PLUS if (plus.os.name === 'Android') { if (plus.runtime.isApplicationExist({ pname: 'com.sankuai.meituan.takeoutnew' })) { console.log('已安装美团外卖App'); plus.runtime.openURL( `meituanwaimai://waimai.meituan.com/menu?restaurant_id=${shopId}&spu_id=0`, ( res) => { console.log(res); }) } else { console.log('未安装美团外卖App'); plus.share.getServices(platforms => { console.log(platforms); let sweixin = null; for (let i = 0; i < platforms.length; i++) { if (platforms[i].id === 'weixin') { sweixin = platforms[i]; break; } } if (sweixin) { sweixin.launchMiniProgram({ id: 'gh_72a4eb2d4324', path: `pages/restaurant/restaurant?poi_id=${shopId}` }) } else { uni.$u.toast('请先安装微信') } }) } } else { plus.share.getServices(platforms => { console.log(platforms); let sweixin = null; for (let i = 0; i < platforms.length; i++) { if (platforms[i].id === 'weixin') { sweixin = platforms[i]; break; } } if (sweixin) { sweixin.launchMiniProgram({ id: 'gh_72a4eb2d4324', path: `pages/restaurant/restaurant?poi_id=${shopId}` }) } else { uni.$u.toast('请先安装微信') } }) } // #endif // #ifdef MP-WEIXIN uni.navigateToMiniProgram({ appId: 'wx2c348cf579062e56', path: `pages/restaurant/restaurant?poi_id=${shopId}`, envVersion: 'release', success: (e) => { console.log(e); }, fail: (error) => { console.log(error); } }) // #endif } let openMiniCouponCenter = (path, appId, originalId) => { console.log(path); console.log(appId); console.log(originalId); if (path.trim().length === 0) { return uni.showToast({ title: '暂未配置跳转链接', icon: 'none' }) } // #ifdef MP-WEIXIN uni.navigateToMiniProgram({ appId: appId, path: path, envVersion: 'release', success: (e) => { console.log(e); }, fail: (error) => { console.log(error); } }) // #endif // #ifdef APP-PLUS plus.share.getServices(platforms => { let sweixin = null; for (let i = 0; i < platforms.length; i++) { if (platforms[i].id === 'weixin') { sweixin = platforms[i]; break; } } if (sweixin) { sweixin.launchMiniProgram({ id: originalId, path: path }) } else { uni.$u.toast('请先安装微信') } }) // #endif } let openWechatServer = () => { uni.share({ provider: 'weixin', scene: 'WXSceneSession', openCustomerServiceChat: true, corpid: 'wwef0708802d6f526c', customerUrl: 'https://work.weixin.qq.com/kfid/kfc65b94a0a45799e77', success: (e) => { console.log(e); }, fail: (error) => { console.log(error); } }) // return uni.$u.toast('微信客服尚未配置') } let openCompanyWechatGroup = () => { plus.share.getServices(platforms => { console.log(platforms); let sweixin = null; for (let i = 0; i < platforms.length; i++) { if (platforms[i].id === 'weixin') { sweixin = platforms[i]; break; } } if (sweixin) { sweixin.launchMiniProgram({ id: uni.$u.http.config.originMiniId, path: `pages/group/pages/store-add-group/store-add-group` }) } else { uni.$u.toast('请先安装微信') } }) } let timestampToDate = (timestamp) => { const date = new Date(timestamp); const year = date.getFullYear(); // 月份+1,因为从0开始计算,并且确保两位数 const month = ('0' + (date.getMonth() + 1)).slice(-2); // 日期确保两位数 const day = ('0' + date.getDate()).slice(-2); return `${year}-${month}-${day}`; } let askLogin = () => { uni.showModal({ title: '暂未登录', content: '请先前往登录', showCancel: false, success: (e) => { if (e.confirm) { uni.navigateTo({ url: '/pages/subpack/common/login/login' }) } } }) } let checkPwdPattern = (text) => { console.log('text: ', text); const upperCaseRegex = /[A-Z]/ const lowerCaseRegex = /[a-z]/ const numberRegex = /[0-9]/ const specialCharRegex = /[~!@#\$%\^&\*\(\)-\+=\{\}:;\|\[\]/.,<>/?']/ if (!upperCaseRegex.test(text) || !lowerCaseRegex.test(text) || !numberRegex.test(text) || ! specialCharRegex.test(text)) { return false } else { return true } } export { // calcAngle, // isDuringDate, // getImagePath, // compareObjArray, // getTimeState, // hidePhoneNumberOrName, // isDuringDateHour, // isToday, // todayOrNext, // getRange, // goMeiTuanAppOrMini, // goElemeAppOrMini, // openDouyinApp, // openWechatServer, // openMiniCouponCenter, // openCompanyWechatGroup, // getDayLater, // timestampToDate, // askLogin, // openDouyinAppUserCenter, // getTimeDiffYear, // isBeforeToday, checkPwdPattern, getWeekAndDay }