123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- import Vue from 'vue'
- import App from './App.vue'
- import router from './router'
- import store from './store'
- import ElementUI from 'element-ui';
- import 'element-ui/lib/theme-chalk/index.css';
- import moment from 'moment' // 时间库
- import * as dd from 'dingtalk-jsapi';
- import VConsole from 'vconsole'
- import './icons'
- import axios from 'axios'
- import service from './api/axios'
- import echarts from 'echarts'
- import NProgress from 'nprogress';
- import 'nprogress/nprogress.css'
- import {returnDeptName, getToken, setToken,getUserData,setUserData,getTyps,setTyps,getIsCreator,supremeAuthority,authoritys,getTypsName,generateUUID,getCache,setCache,removeCache,getEmployeeMapItem} from './api/auth';
- import * as socketApi from './api/websocket'
- import * as socketApiTow from './api/websocketTow'
- import print from "./api/print.js";
- Vue.use(print)
- // 头像
- import userImage from '@/components/UserImage'
- import NoData from '@/components/noData'
- import BrawerBox from '@/components/BrawerBox';
- import FormBox from '@/components/FormBox';
- Vue.component('BrawerBox', BrawerBox)
- Vue.component('userImage', userImage)
- Vue.component('noData', NoData)
- Vue.component('FormBox', FormBox)
- Vue.use(ElementUI);
- if (process.env.NODE_ENV === 'development') {
- new VConsole()
- }
- Vue.prototype.$echarts = echarts
- Vue.prototype.$dd = dd;
- Vue.prototype.$getToken = getToken
- Vue.prototype.$setToken = setToken
- Vue.prototype.$getUserData = getUserData
- Vue.prototype.$setUserData = setUserData
- Vue.prototype.$getTyps = getTyps
- Vue.prototype.$setTyps = setTyps
- Vue.prototype.$getTypsName = getTypsName
- Vue.prototype.$getIsCreator = getIsCreator
- Vue.prototype.$supremeAuthority = supremeAuthority
- Vue.prototype.$authoritys = authoritys
- Vue.prototype.$moment = moment
- Vue.prototype.$appId = process.env.VUE_APP_APPID
- Vue.prototype.$socketApi = socketApi //长连接
- Vue.prototype.$socketApiTow = socketApiTow //长连接
- Vue.prototype.$generateUUID = generateUUID //UID 唯一标识
- Vue.prototype.$getCache = getCache
- Vue.prototype.$setCache = setCache
- Vue.prototype.$removeCache = removeCache
- Vue.prototype.$returnDeptName = returnDeptName
- Vue.prototype.$getEmployeeMapItem = getEmployeeMapItem
- // 上传相关
- Vue.prototype.$action = 'https://integralsys.oss-cn-shenzhen.aliyuncs.com'
- Vue.prototype.$acceptImg = 'image/jpeg,image/png'
- Vue.prototype.$acceptFile = 'application/pdf,application/vnd.ms-excel,application/msword,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.openxmlformats-officedocument.wordprocessingml.document'
- Vue.prototype.$acceptImgFile='image/jpeg,image/png,application/pdf,application/vnd.ms-excel,application/msword,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.openxmlformats-officedocument.wordprocessingml.document'
- Vue.prototype.$xtoken={ 'X-Token': getToken() };
- 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'&&url!='/api/screen/ranking'&&url!='/api/auth/qr'){
- 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');//给个标志,中断请求
- })
- }
- next();
- });
- router.afterEach(() => {
- NProgress.done();
- });
- window.__BIRD_CONFIG = window.__BIRD_CONFIG || {};
- __BIRD_CONFIG.disableReport = true;
- Vue.config.productionTip = false
- new Vue({
- router,
- store,
- render: h => h(App)
- }).$mount('#app')
|