import $store from '@/store' import $tools from '@/toolJs/tools.js' export default { msg, toHex, gethms, str2hex, hex2str, ab2hex, inArray, getMonth, getDate, GetDateStr, PrefixZero, showModal, NewsPtype, compareVersions, validatePhoneEmail, checkPrivacyAgreement, getBluetoothAdapter } function NewsPtype(con) { if (con.type == "wechat") { //跳小程序 // #ifdef APP uni.navigateTo({ url: "/pageTwo/webview/webview?id=" + con.id + '&url=' + con.jump_url }) // #endif // #ifdef MP-WEIXIN uni.navigateToMiniProgram({ //小程序跳小程序 appId: con.appid, path: con.path, extraData: {}, }) // #endif } else if (con.type != 'wechat') { //跳h5或文本 uni.navigateTo({ url: "/pageTwo/webview/webview?id=" + con.id + '&url=' + con.jump_url }) } } function showModal(text) { uni.showModal({ title: "提示", content: text, showCancel: false, success: function(res) { if (res.confirm) { uni.switchTab({ //返回 url: "/pages/home/home" }) } } }) } // 版本对比 function compareVersions(version1, version2) { console.log("版本对比", version1, version2) // 将版本号拆分成数字数组 var arr1 = version1.split('.').map(Number);; var arr2 = version2.split('.').map(Number);; // 遍历数字数组进行逐段比较 for (var i = 0; i < Math.max(arr1.length, arr2.length); i++) { var num1 = parseInt(arr1[i] || 0); // 如果数组长度不够,则将缺失部分补0 var num2 = parseInt(arr2[i] || 0); if (num1 < num2) { return -1; // 版本1小于版本2 } else if (num1 > num2) { return 1; // 版本1大于版本2 } } return 0; // 版本1等于版本2 } // 2进制位数不足补0 function PrefixZero(num, n) { return (Array(n).join(0) + num).slice(-n); } //转16进制位数不足补0 function toHex(num, length) { return num.toString(16).padStart(length, '0'); } function inArray(arr, key, val) { if (!arr || !arr.length || typeof arr != 'object' || !Array.isArray(arr)) { return -1 } for (let i = 0; i < arr.length; i++) { if (!key) { if (arr[i] == val) { return i } } else if (arr[i][key] === val) { return i } } return -1; } function validatePhoneEmail(input) { const phoneRegex = /^(\+?\d{1,4})?[-\s.]?\(?(\d{3})\)?[-\s.]?(\d{3})[-\s.]?(\d{4})$/; const emailRegex = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/; const isPhone = phoneRegex.test(input); const isEmail = emailRegex.test(input); return { isPhone, isEmail }; } function msg(str) { uni.showToast({ title: str, icon: 'none', duration: 3000 }) } function ab2hex(buffer, split) { var hexArr = Array.prototype.map.call( new Uint8Array(buffer), function(bit) { return ('00' + bit.toString(16)).slice(-2) } ) return hexArr.join(split); } function hex2str(arr) { let decoder = new TextDecoder('utf8') let uint8 = new Uint8Array(arr) let res = decoder.decode(uint8) return res } function str2hex(str) { let encoder = new TextEncoder('utf8') return encoder.encode(str) } // 跳绳分秒时间选择 function gethms(type) { var mindata = [] var secondData = [] let timeList = [] for (var i = 0; i <= 59; i++) { i = i > 9 ? i : '0' + i mindata.push(i + '分'); } for (var i = 0; i <= 59; i++) { i = i > 9 ? i : '0' + i secondData.push(i + '秒'); } timeList[0] = mindata timeList[1] = secondData return timeList } function getMonth(dates, months) { var d = new Date(dates.substring(0, 10)); let year = d.getFullYear(); var month = d.getMonth() + 1; if (Math.abs(months) > 12) { months = months % 12; }; if (months != 0) { if (month + months > 12) { year++; month = (month + months) % 12; } else if (month + months < 1) { year--; month = 12 + month + months; } else { month = month + months; }; }; month = month < 10 ? "0" + month : month; var date = d.getDate(); if (month == "01" || month == "03" || month == "05" || month == "07" || month == "08" || month == "10" || month == "12") { return year + "-" + month + "-01" + "~" + year + "-" + month + "-31"; } else if (month == "02") { if ((year % 4 == 0 && year % 100 != 0) || (year % 100 == 0 && year % 400 == 0)) { return year + '-' + month + "-01" + "~" + year + "-" + month + "-29"; } else { return year + '-' + month + "-01" + "~" + year + "-" + month + "-28"; }; } else { return year + '-' + month + "-01" + "~" + year + "-" + month + "-30"; }; }; function getDate(type) { const date = new Date(); let year = date.getFullYear(); let month = date.getMonth() + 1; let day = date.getDate(); month = month > 9 ? month : '0' + month; day = day > 9 ? day : '0' + day; if (type === 'tow') { year = year - 2; return `${year}-${month}-${day}`; } if (type === 'start') { year = year; return `${year}-${month}-${day}`; } if (type === 'end') { year = year + 60; return `${year}-${month}-${day}`; } if (type === 'year') { year = year; return `${year}`; } if (type === 'month') { year = year; return `${year}-${month}`; } if (type == "m") { if (month == "01" || month == "03" || month == "05" || month == "07" || month == "08" || month == "10" || month == "12") { return year + "-" + month + "-01" + "~" + year + "-" + month + "-31"; } else if (month == "02") { if ((year % 4 == 0 && year % 100 != 0) || (year % 100 == 0 && year % 400 == 0)) { return year + "-" + month + "-01" + "~" + year + "-" + month + "-29"; } else { return year + "-" + month + "-01" + "~" + year + "-" + month + "-28"; }; } else { return year + "-" + month + "-01" + "~" + year + "-" + month + "-30"; }; } } //获取AddDayCount天后的日期 function GetDateStr(AddDayCount) { var dd = new Date(); dd.setDate(dd.getDate() + AddDayCount); var y = dd.getFullYear(); var m = (dd.getMonth() + 1) < 10 ? "0" + (dd.getMonth() + 1) : (dd.getMonth() + 1); //获取当前月份的日期,不足10补0 var d = dd.getDate() < 10 ? "0" + dd.getDate() : dd.getDate(); //获取当前几号,不足10补0 return y + "-" + m + "-" + d; } //用于检查用户是否同意隐私协议 function checkPrivacyAgreement() { // 这里应该是获取用户同意状态的逻辑,例如从本地存储或服务端获取 const isAgreed = uni.getStorageSync('isPrivacyAgreed'); return !!isAgreed; } function getBluetoothAdapter(err) { let textLink = "" if (err.errMsg == "openBluetoothAdapter:fail auth denied" || err.errMsg === "openBluetoothAdapter:fail auth deny" || err.errMsg === "openBluetoothAdapter:fail authorize no response" ) { uni.showModal({ title: "提示", content: "需要您授权使用手机蓝牙", showCancel: false, success(modalSuccess) { uni.openSetting({ success(settingdata) { if (settingdata.authSetting["scope.bluetooth"]) { uni.openBluetoothAdapter({ success: e => { $store.commit("changeBluetooth", true); textLink = "蓝牙权限获取成功,重新连接蓝牙" return textLink }, fail: err => { textLink = "请打开手机蓝牙后,开始测量" console.log('初始化蓝牙失败:' + err.errMsg); return textLink } }); } else { textLink = "获取权限失败,将无法使用手机蓝牙进行测量" return textLink } } }) } }) } else { textLink = "请打开手机蓝牙后,开始测量" return textLink } }