123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199 |
- import Vue from 'vue'
- import App from './App.vue'
- import router from './router'
- import store from './store'
- import ElementUI from 'element-ui';
- import moment from 'moment' // 时间库
- import 'element-ui/lib/theme-chalk/index.css';
- import * as dd from 'dingtalk-jsapi';
- import VConsole from 'vconsole'
- import './icons' // icon
- import axios from 'axios'
- import service from './api/axios'
- import echarts from 'echarts'
- import NProgress from 'nprogress';
- import 'nprogress/nprogress.css'
- import {
- getEmployeeList,
- setEmployeeList,
- getDeptTree,
- setDeptTree,
- getToken,
- setToken,
- getUserData,
- setUserData,
- getIsCreator,
- supremeAuthority,
- isAuthoritys,
- authoritys,
- generateUUID,
- getCache,
- setCache,
- removeCache,
- getCycleType,
- getRole,
- returnCode
- } from './api/auth';
- Vue.prototype.$isAuthoritys = isAuthoritys
- Vue.prototype.$getCycleType = getCycleType
- Vue.prototype.$getRole = getRole
- Vue.prototype.$getEmployeeList = getEmployeeList
- Vue.prototype.$setEmployeeList = setEmployeeList
- Vue.prototype.$getDeptTree = getDeptTree
- Vue.prototype.$setDeptTree = setDeptTree
- Vue.prototype.$getToken = getToken
- Vue.prototype.$setToken = setToken
- Vue.prototype.$getUserData = getUserData
- Vue.prototype.$setUserData = setUserData
- Vue.prototype.$getIsCreator = getIsCreator
- Vue.prototype.$supremeAuthority = supremeAuthority
- Vue.prototype.$authoritys = authoritys
- Vue.prototype.$getCache = getCache
- Vue.prototype.$setCache = setCache
- Vue.prototype.$returnCode = returnCode //UID 唯一标识
- Vue.prototype.$removeCache = removeCache
- Vue.prototype.$generateUUID = generateUUID //UID 唯一标识
- import * as socketApi from './api/websocket'
- // 新绩效系统相关
- import Pagination from '@/components/public/Pagination'
- import PreBox from '@/components/public/PreBox'
- Vue.component('Pagination', Pagination)
- Vue.component('PreBox', PreBox)
- // 头像
- import userImage from '@/components/public/UserImage'
- import NoData from '@/components/public/NoData'
- import BrawerBox from '@/components/public/BrawerBox';
- Vue.component('userImage', userImage)
- Vue.component('NoData', NoData)
- Vue.component('BrawerBox', BrawerBox)
- Vue.use(ElementUI);
- // if (process.env.NODE_ENV === 'development') {
- new VConsole()
- // }
- Vue.prototype.$moment = moment
- Vue.prototype.$echarts = echarts
- Vue.prototype.$dd = dd;
- Vue.prototype.$socketApi = socketApi //长连接
- Vue.prototype.$appId = process.env.VUE_APP_APPID //小程序APPID
- Vue.prototype.$serverdomain = process.env.VUE_APP_BASE_API //导出地址
- Vue.prototype.$1 = 1
- Vue.prototype.$2 = 2
- Vue.prototype.$3 = 3
- Vue.prototype.$4 = 4
- Vue.prototype.$5 = 5
- Vue.prototype.$6 = 6
- Vue.prototype.$7 = 7
- Vue.prototype.$8 = 8
- Vue.prototype.$9 = 9
- Vue.prototype.$10 = 10
- Vue.prototype.$11 = 11
- Vue.prototype.$12 = 12
- Vue.prototype.$13 = 13
- Vue.prototype.$14 = 14
- Vue.prototype.$15 = 15
- Vue.prototype.$16 = 16
- Vue.prototype.$17 = 17
- Vue.prototype.$18 = 18
- Vue.prototype.$http = service;
- var CancelToken = axios.CancelToken;
- Vue.$httpRequestList = [];
- Vue.prototype.$axios = (type, url, data, heaStr) => {
- if (url != '/api/ding/login' && url != '/api/integral/types') {
- var Accept = '';
- switch (heaStr) {
- case 'v2':
- Accept = 'application/vnd.test.v2+json'
- break;
- case 'v3':
- Accept = 'application/vnd.test.v3+json'
- break;
- case 'v4':
- Accept = 'application/vnd.test.v4+json'
- break;
- }
- if (getToken()) {
- return new Promise((resolve, reject) => { //封装ajax
- var aa = {
- method: type,
- url: url,
- headers: {
- 'Accept': Accept
- },
- cancelToken: new CancelToken(c => { //强行中断请求要用到的
- Vue.$httpRequestList.push(c);
- })
- }
- var json = (type == 'get') ? Object.assign(aa, {
- params: data
- }) : Object.assign(aa, {
- data: data
- });
- var ajax = Vue.prototype.$http(json).then(res => {
- resolve(res);
- }).catch(error => { //中断请求和请求出错的处理
- if (error == "interrupt") {
- console.log('已中断请求');
- return;
- } else {
- reject(error);
- }
- })
- return ajax;
- })
- } else {
- return Promise.reject('无token')
- }
- } else {
- return new Promise((resolve, reject) => { //封装ajax
- var aa = {
- method: type,
- url: url,
- cancelToken: new CancelToken(c => { //强行中断请求要用到的
- Vue.$httpRequestList.push(c);
- })
- }
- var json = (type == 'get') ? Object.assign(aa, {
- params: data
- }) : Object.assign(aa, {
- data: data
- });
- var ajax = Vue.prototype.$http(json).then(res => {
- resolve(res);
- }).catch(error => { //中断请求和请求出错的处理
- if (error.message == "interrupt") {
- console.log('已中断请求');
- return;
- } else {
- reject(error);
- }
- })
- return ajax;
- })
- }
- };
- router.beforeEach((to, from, next) => { //路由切换检测是否强行中断,
- NProgress.start();
- if (Vue.$httpRequestList.length > 0) { //强行中断时才向下执行
- Vue.$httpRequestList.forEach(item => {
- item('interrupt'); //给个标志,中断请求
- })
- }
- // console.log(to.path)
- next();
- });
- router.afterEach(() => {
- NProgress.done();
- });
- Vue.config.productionTip = false
- new Vue({
- router,
- store,
- render: h => h(App)
- }).$mount('#app')
|