You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.3 KiB
60 lines
1.3 KiB
import Vue from 'vue';
|
|
import moment from 'moment';
|
|
import { http } from 'plugins/request/index';
|
|
import App from './App';
|
|
import store from './store';
|
|
|
|
// 白名单页面
|
|
const whitePathList = ['basic-info', 'statistics', 'user-code'];
|
|
/**
|
|
* 检查url是否在是否在白名单内
|
|
* @param {string} url path+query
|
|
*/
|
|
const checkWhitePath = url => {
|
|
let str = url.slice(7).split('/')[0];
|
|
return whitePathList.includes(str);
|
|
};
|
|
|
|
Vue.config.productionTip = false;
|
|
Vue.prototype.$http = http;
|
|
Vue.prototype.$moment = moment;
|
|
|
|
moment.locale('zh-cn');
|
|
|
|
Vue.prototype.goHome = () => {
|
|
uni.reLaunch({
|
|
url: '/pages/index/index',
|
|
});
|
|
};
|
|
|
|
/**
|
|
* 打开某个页面
|
|
* @param {string} path 页面完成路径
|
|
* @param {string} query 参数字符串a=x&b=y
|
|
*/
|
|
|
|
// 白名单页面
|
|
const whiteListPath = [
|
|
'/pages/basic-info/basic-info',
|
|
'/pages/statistics/statistics',
|
|
'/pages/user-code/user-code',
|
|
];
|
|
|
|
Vue.prototype.openPage = function(path, query = '') {
|
|
let url = query ? `${path}?${query}` : path;
|
|
store.commit('user/setPagePath', url);
|
|
const isWhite = checkWhitePath(url);
|
|
if (!store.state.user.userInfo.id && !isWhite) {
|
|
url = '/pages/basic-info/basic-info';
|
|
}
|
|
|
|
uni.navigateTo({ url });
|
|
};
|
|
|
|
App.mpType = 'app';
|
|
|
|
const app = new Vue({
|
|
store,
|
|
...App,
|
|
});
|
|
app.$mount();
|
|
|