123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546 |
- // 计算坐标之间旋转角度
- 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
- }
|