加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
main.js 3.78 KB
一键复制 编辑 原始数据 按行查看 历史
import Vue from 'vue'
import App from './App'
//表单验证
import $mGraceChecker from '@/utils/graceChecker';
import $mRoutesConfig from '@/config/routes.config.js';
import $mFormRule from '@/config/formRule.config.js';
import $mHelper from '@/utils/helper.js';
import $mRouter from '@/utils/router';
import {Config} from '@/config.js';
Vue.prototype.$mGraceChecker = $mGraceChecker;
Vue.prototype.$mFormRule = $mFormRule;
Vue.prototype.$mHelper = $mHelper;
Vue.prototype.$mRouter = $mRouter;
Vue.config.productionTip = false
Vue.prototype.getUrlParam = function(name) {
let reg = new RegExp('(^|&)'+ name + '=([^&]*)(&|$)')
let r = window.location.search.substr(1).match(reg)
if(r!=null){
return unescape(r[2])
}
return null
}
// 路由导航
$mRouter.beforeEach((navType, to) => {
if (to.route === undefined) {
throw '路由钩子函数中没有找到to对象,路由信息:' + JSON.stringify(to);
}
//判断是否登录到登录页面
if (to.route === $mRoutesConfig.login.path && store.getters.hasLogin) {
uni.reLaunch({
url: $mHelper.objParseUrlAndParam($mRoutesConfig.main.path)
});
return;
}
// 过滤需要权限的页面
if (to.route.requiresAuth) {
if (store.getters.hasLogin) {
// 已经登录
uni[navType]({
url: $mHelper.objParseUrlAndParam(to.route.path, to.query)
});
} else {
// 登录成功后的重定向地址和参数
let query = {
redirectUrl: to.route.path,
...to.query
};
// 没有登录 是否强制登录?
if (store.state.forcedLogin) {
uni.redirectTo({
url: $mHelper.objParseUrlAndParam($mRoutesConfig.login.path, query)
});
} else {
uni.navigateTo({
url: $mHelper.objParseUrlAndParam($mRoutesConfig.login.path, query)
});
}
}
} else {
uni[navType]({
url: $mHelper.objParseUrlAndParam(to.route, to.query)
});
}
});
/*
* obj 转 路由地址带参数
* 例子:{a:1,b:2} => /pages/index/index?a=1&b=2
*/
Vue.prototype.createUrl = function(path, obj) {
let url = path || '/';
let paramsStr = '';
if (obj instanceof Array) return url;
if (!(obj instanceof Object)) return url;
paramsStr = this.objParseParam(obj);
paramsStr && (url += '?');
url += paramsStr;
return url;
}
/*
* obj 转 params字符串参数
* 例子:{a:1,b:2} => a=1&b=2
*/
Vue.prototype.objParseParam = function(obj) {
let paramsStr = '';
if (obj instanceof Array) return paramsStr;
if (!(obj instanceof Object)) return paramsStr;
for (let key in obj) {
paramsStr += `${key}=${obj[key]}&`;
}
return paramsStr.substring(0, paramsStr.length - 1);
}
/*
* obj 转 params字符串参数
* 例子:{a:1,b:2} => a=1&b=2
*/
Vue.prototype.goto = function(url='',e='') {
if(Array.isArray(url)){
url = url[0];
}
if(!url){
url = e.currentTarget.dataset.url;
}
if (url.indexOf('/pages/user/user') !== -1
|| url.indexOf('/pages/product/list') !== -1
|| url.indexOf('/pages/index/index') !== -1){
uni.switchTab({
url:url
})
} else {
uni.navigateTo({
url:url
})
}
}
Vue.prototype.setStorageSync = function(key,value) {
uni.setStorageSync(Config.cacheFix+key,value);
}
Vue.prototype.getStorageSync = function(key) {
return uni.getStorageSync(Config.cacheFix+key);
}
Vue.prototype.removeStorageSync = function(key) {
return uni.removeStorageSync(Config.cacheFix+key);
}
/*
* 判断用户是否是vip
*/
Vue.prototype.isVip = function() {
var user = uni.getStorageSync(Config.cacheFix+'userInfo');
if(user){
//在这里判断是否是vip,仅做价格显示,实际购买时还是在后台最终判断是否是vip
var now = (new Date()).getTime()/1000;
if(user.is_vip && user.is_vip == 1 && now < user.vip_expire)
return true;
}
return false;
}
Vue.prototype.getDataSet = function(event, key) {
return event.currentTarget.dataset[key];
}
App.mpType = 'app'
const app = new Vue({
...App
})
app.$mount()
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化