import Vue from 'vue' import store from './store' import App from './App' // 后端api地址 Vue.prototype.$unishow = "https://www.msveni.com/addons/unishop"; //Vue.prototype.$unishow = "http://t.fastadmin-ceshi.com:8888/addons/unishop"; //Vue.prototype.$unishow = "http://shop.weivee.com/addons/unishop"; // 为了方便每次上传的时候忘记修改上面的参数 uni.getSystemInfo({ success(res) { //console.log(res) if (res.platform != "devtools") { Vue.prototype.$unishow = "https://www.msveni.com/addons/unishop"; } } }) // 平台号 // #ifdef APP-PLUS Vue.prototype.$platform = 'APP-PLUS'; // #endif // #ifdef H5 Vue.prototype.$platform = 'H5'; // #endif // #ifdef MP-WEIXIN Vue.prototype.$platform = 'MP-WEIXIN'; // #endif // #ifdef MP-ALIPAY Vue.prototype.$platform = 'MP-ALIPAY'; // #endif // #ifdef MP-BAIDU Vue.prototype.$platform = 'MP-BAIDU'; // #endif // #ifdef MP-TOUTIAO Vue.prototype.$platform = 'MP-TOUTIAO'; // #endif // 提示 const msg = (title, duration = 3000, mask = false, icon = 'none') => { //统一提示方便全局修改 if (Boolean(title) === false) { return; } uni.showToast({ title, duration, mask, icon }); setTimeout(function() { uni.hideToast(); }, duration) } // 返回上一页 const prePage = () => { let pages = getCurrentPages(); let prePage = pages[pages.length - 2]; // #ifdef H5 return prePage; // #endif return prePage.$vm; } // 检查有没有登录 const checkLogin = () => { return new Promise(resolve => { if (Vue.prototype.$store.state.hasLogin == false) { uni.showModal({ title: '温馨提示', content: '你还没,请先登录', success(res) { if (res.confirm) { // 账户秘密登录 let url = '/pages/public/login'; uni.navigateTo({ url: url }); } resolve(false); } }) } else { resolve(true); } }); } // 深拷贝 const deepCopy = (p, c) => { var c = c || {}; for (var i in p) { if (typeof p[i] === "object") { c[i] = (p[i].constructor === Array) ? [] : {}; deepCopy(p[i], c[i]) } else { c[i] = p[i] } } return c; } // 同步网络请求 const request = async (url, method = 'GET', data = {}, showMsg = true) => { let header = { 'content-type': 'application/x-www-form-urlencoded', 'lang': Vue.prototype.$store.state.lang, 'platform': Vue.prototype.$platform }; if (Vue.prototype.$store.state.userInfo.token) { header.token = Vue.prototype.$store.state.userInfo.token; } if (Vue.prototype.$store.state.cookie) { header.cookie = Vue.prototype.$store.state.cookie; } var [error, res] = await uni.request({ url: Vue.prototype.$unishow + url, method: method, header: header, data: data, timeout: 50000 }); if (url == '/pay/submit') { console.log(res); } return new Promise(function(revolve) { if (error) { showMsg && msg(JSON.stringify(res)); revolve(false); } if (res) { if (res.header.hasOwnProperty('Set-Cookie')) { let cookie = res.header['Set-Cookie'].replace("; path=/", ""); Vue.prototype.$store.commit('setCookie', cookie); } if (res.hasOwnProperty('data')) { if (res.data.hasOwnProperty('code') && res.data.code == 401) { // 未登录 或 登录失效 Vue.prototype.$store.commit('logout'); } if (res.data.hasOwnProperty('code') && res.data.code == 1) { if (res.data.msg) { showMsg && msg(res.data.msg); } else { uni.hideToast(); } revolve(res.data.data); } else { if (res.data.hasOwnProperty('msg')) { showMsg && msg(res.data.msg); } else { showMsg && msg('返回参数错误'); } revolve(false); } } else { showMsg && msg('不能识别数据'); revolve(false); } } }); } // 跳转判断是否登录 const navTo = (url, check = false) => { if (check && !Vue.prototype.$store.state.hasLogin) { url = '/pages/public/login'; } uni.navigateTo({ url: url }); } Vue.config.productionTip = false Vue.prototype.$fire = new Vue(); Vue.prototype.$store = store; Vue.prototype.$api = { msg, prePage, checkLogin, request, deepCopy, navTo }; // #ifdef MP-WEIXIN // 微信小程序 const wechatMiniLogin = async () => { msg('登录中'); let [error, loginRes] = await uni.login({ provider: 'weixin' }); if (loginRes.hasOwnProperty('code')) { let data = await request('/user/authSession', 'GET', { code: loginRes.code }); if (data) { if (data.hasOwnProperty('userInfo') && data.userInfo.token && data.userInfo.token != '') { Vue.prototype.$store.commit('login', data.userInfo); //Vue.prototype.$store.mutations.login(data.userInfo) } } return true; } else { msg('登录失败'); return false; } }; Vue.prototype.$wechatMiniLogin = wechatMiniLogin; // #endif App.mpType = 'app' const app = new Vue({ ...App }) app.$mount()