import $site from "./site"; const ksort = obj => { let keys = Object.keys(obj).sort() , sortedObj = {}; for (let i in keys) { sortedObj[keys[i]] = obj[keys[i]]; } return sortedObj; } const checkNullObj = (obj) => { if (Object.keys(obj).length === 0) { return false } return true } const checkArrayNotNullNumber = (array,notNullNumber = 2) => { let num = 0 for (const item in array) { if(array[item]) num++; } return num >= notNullNumber; } // 正切 const tan = angle => { return Math.tan(angle * Math.PI / 180) } // 余切 const cot = angle => { return 1 / tan(angle) } // 余弦 const cos = angle => { return Math.cos(angle * Math.PI / 180) } // 余割 const csc = angle => { return 1 / sin(angle) } // 正弦 const sin = angle => { return Math.sin(angle * Math.PI / 180) } // 正割 const sec = angle => { return 1 / cos(angle) } // 反正弦 const asin = value => { return Math.asin(value) * 180 / Math.PI; } // 反余弦 const acos = value => { return Math.acos(value) * 180 / Math.PI; } // 反正切 const atan = value => { return Math.atan(value) * 180 / Math.PI; } const checkTriangle = (a,b,c) => { a = parseInt(a); b= parseInt(b); c = parseInt(c); return a + b > c && a + c > b && b + c > a; } const round = (number,percent) => { if(!number) return number number = parseFloat(number).toFixed(percent) let flag = number < 0 ? '-' : ''; let arr = number.toString().split("."); arr[1] = arr[1].padEnd(percent,'0') return flag+arr.join("."); } const objectToUrlParams = function (obj, urlencode) { let str = ""; for (let key in obj) { str += "&" + key + "=" + (urlencode ? encodeURIComponent(obj[key]) : obj[key]); } return str.substr(1); } const shareMessage = user => { let args = { path: '/pages/index/index', params: { user_id : user.id, }, title: '桥架计算和公示表永久使用', desc: '做桥架不求人,让你秒变大师!', imageUrl: $site.root+"assets/images/formula/formula-cover.png" }; return args ; } /** * WXSceneSession 分享到聊天界面 * WXSenceTimeline 分享到朋友圈 * WXSceneFavorite 分享到微信收藏 * @param user * @param scene */ const share = (user,scene = "WXSenceTimeline") => { uni.share({ provider: "weixin", scene: scene, type: 5, // 小程序 miniProgram: { id: 'gh_cdaf361f6966', path:'/pages/index/index?user_id='+user.id, }, title: '桥架计算和公示表永久使用', summary: "做桥架不求人,让你秒变大师!", imageUrl: $site.root+"assets/images/formula/formula-cover.png", success: function (res) { console.log("success:" + JSON.stringify(res)); }, fail: function (err) { console.error("fail:" + JSON.stringify(err)); } }); } const login = () => { let page = getCurrentPages()[0] let route = page.route; let arr = []; for (const key in page.options) { arr.push(`${key}=${page.options[key]}`) } uni.reLaunch({ url: `/pages/login/login?redirect=${route}&${arr.join("&")}`, }); } const saveImage = url => { return new Promise((resolve, reject) => { uni.downloadFile({ url: url, success: (res) => { if (res.statusCode === 200) { console.log('下载成功'); uni.authorize({ scope: 'scope.writePhotosAlbum', success() { uni.saveImageToPhotosAlbum({ filePath: res.tempFilePath, success: function(red) { uni.$u.toast(`保存成功`) //uni.$u.toast(`保存路径:${red.savedFilePath}`) resolve() }, fail: function() { uni.$u.toast(`保存失败`) reject() } }); }, fail: err => { uni.$u.toast(`授权失败`+JSON.stringify(err)) reject() } }) }else{ uni.$u.toast(`保存失败`) reject() } }, fail: err => { uni.$u.toast(`保存失败`+JSON.stringify(err)) reject() } }); }) } const copyText = text => { uni.setClipboardData({ data: text, success: function () { uni.hideLoading(); uni.$u.toast(`复制成功`) } }); } export { ksort, checkNullObj, checkArrayNotNullNumber, tan, cot, cos, csc, sin, sec, asin, acos, atan, checkTriangle, round, objectToUrlParams, shareMessage, share, login, saveImage, copyText }