| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- import Vue from 'vue';
- import App from './App';
- // 引入全局存储
- import store from '@/store';
- // 引入全局配置
- import $mAssetsPath from '@/config/assets.config.js';
- import $mConfig from '@/config/index.config.js';
- import $mRoutesConfig from '@/config/routes.config.js';
- import $mConstDataConfig from '@/config/constData.config';
- import $mButtonConfig from '@/config/buttons.config'
- // 引入全局方法
- import { http } from '@/utils/request';
- import $mGraceChecker from '@/utils/graceChecker';
- import $mHelper from '@/utils/helper';
- import $mRouter from '@/utils/router';
- // 挂载全局自定义方法
- Vue.prototype.$mStore = store;
- Vue.prototype.$http = http;
- Vue.prototype.$mConfig = $mConfig
- Vue.prototype.$mAssetsPath = $mAssetsPath;
- Vue.prototype.$mRoutesConfig = $mRoutesConfig;
- Vue.prototype.$mConstDataConfig = $mConstDataConfig;
- Vue.prototype.$mButtonConfig = $mButtonConfig;
- Vue.prototype.$mGraceChecker = $mGraceChecker;
- Vue.prototype.$mHelper = $mHelper;
- Vue.prototype.$mRouter = $mRouter;
- if (process.env.NODE_ENV === 'production') {
- Vue.config.productionTip = false;
- }
- // 路由导航
- $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 {
- // 登录成功后的重定向地址和参数
- const 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)
- });
- }
- });
- App.mpType = 'app';
- Vue.mixin({
- computed: {
- themeColor: {
- get () {
- return store.getters.themeColor;
- },
- set (val) {
- store.state.themeColor = val;
- }
- }
- }
- });
- Vue.prototype.moneySymbol = $mConstDataConfig.moneySymbol;
- Vue.prototype.singleSkuText = $mConstDataConfig.singleSkuText;
- // 保留小数点后两位
- Vue.filter('keepTwoDecimal', value => {
- return (Math.floor((value || 0) * 100) / 100).toFixed(2);
- });
- const app = new Vue({
- ...App,
- store: store
- });
- app.$mount();
|