import Vue from 'vue' import { thirdLogin } from '../request/api.js' import { baseUrl } from '../request/baseUrl.js' export const isWechat = async () => { // #ifdef H5 var ua = window.navigator.userAgent.toLowerCase(); //alert(ua); // if (ua.match(/windowswechat/i) == "windowswechat") { // //alert('这是电脑版微信浏览器'); // return false; // } else { // console.log('这不是微信浏览器'); // } if (ua.match(/MicroMessenger/i) == 'micromessenger') { return true; } return false; // #endif // #ifdef MP-WEIXIN return true // #endif } export const login = async () => { // #ifdef H5 let appid = 'wx877c9b57a770f86e' let url = ""; url = window.location.href; var a = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appid}&redirect_uri=${encodeURIComponent(url)}&response_type=code&scope=snsapi_userinfo&state=isLogin#wechat_redirect` window.location.href = a // #endif // #ifdef MP-WEIXIN let res = await wx.login() if (res.errMsg === 'login:ok') { wechatloginAfter(res.code) } console.log('小程序登录结果:', res); // wechatloginAfter(res.code) // #endif } export const getUrlParams = (key) => { // let pages = getCurrentPages() // let currentRoute = pages[pages.length - 1] // return currentRoute.options[key] // 获取当前页面的 URL 参数 // var pages = getCurrentPages(); // 获取当前页面栈 // var currentPage = pages[pages.length - 1]; // 获取当前页面 // var url = currentPage.route; // 获取当前页面路径 // var options; // // 判断是否在微信小程序环境下 // if (uni.getSystemInfoSync().platform === 'mp-weixin') { // // 在微信小程序中,通过 options 属性获取 URL 参数 // options = currentPage.options; // } else { var searchParams = new URLSearchParams(window.location.search); // 获取code参数的值 var code = searchParams.get(key); return code // } } export const wechatloginAfter = async (code) => { // 向后端发起请求 let { data } = await thirdLogin({ platform: 'wechat', code }) console.log(data); if (!data.data || !data.data.userinfo || !data.data.userinfo?.token) { uni.$u.toast('微信自动登录失败'); return } uni.setStorageSync('userInfo', data.data.userinfo) uni.setStorageSync('token', data.data.userinfo.token) uni.setStorageSync('thirdinfo', data.data.thirdinfo) uni.navigateTo({ url: '/pages/index/index?code=', }) // 本地存储token // console.log('获取到的用户数据', data.data); // localStorage.setItem('USER_INFO', JSON.stringify(data.data.userinfo)) // localStorage.setItem('TOKEN', data.data.userinfo.token) // localStorage.setItem('USER_THIRD', JSON.stringify(data.data.thirdinfo)) // _this.userInfo = data.data.userinfo // console.log(_this.userInfo); } function qsFormatter(href) { if (href.includes("?")) { var a = href.split("?")[1] var b = a.split("&") var r = {}; b.forEach(item => { var kv = item.split("=") r[kv[0]] = kv[1] }) return r } else { return {} } } function isPhoneNumber(phone) { // 使用正则表达式匹配手机号 var pattern = /^1[3456789]\d{9}$/; return pattern.test(phone); } // 格式化日期 Date.prototype.$formatDate = function() { console.log(this); const year = this.getFullYear(); // 年份 const month = this.getMonth() + 1; // 月份(注意月份范围是 0-11) const day = this.getDate(); // 日期 // 拼接成字符串形式的日期 const formattedDate = `${year}年${(month < 10 ? '0' : '') + month}月${(day < 10 ? '0' : '') + day}日`; return formattedDate; } function showImg(urls, index) { uni.previewImage({ urls, index }) } Vue.prototype.$getUrlParams = getUrlParams Vue.prototype.$showImg = showImg Vue.prototype.$isWechat = isWechat Vue.prototype.$wechatloginAfter = wechatloginAfter Vue.prototype.$login = login Vue.prototype.$isPhoneNumber = isPhoneNumber