import '@babel/polyfill' import Es6Promise from 'es6-promise' require('es6-promise').polyfill(); require('es6-promise/auto'); import Vue from 'vue' import App from './App' import ElementUI from 'element-ui' import 'element-ui/lib/theme-chalk/index.css' // jQuery import $ from 'jquery' // vuex import store from './store' import Axios from 'axios' // 复制 import VueClipboard from 'vue-clipboard2' // 全局样式文件 import '@/assets/styles/common.less' // 样式重置 import '@/assets/styles/reset.css' // iconfont字体库 import '@/assets/styles/iconfont.css' import '@/assets/styles/shangqi-iconfont/iconfont.css' import '@/assets/styles/shangqi-iconfont-replace/iconfont.css' // 可直接替换此文件夹 import '@/assets/styles/shangqi-iconfont-2021/iconfont.css' // axios import axios from 'axios' import $axios from '@/common/axios' // 自定义全局组件 import components from '@/components' // 自定义插件 import common from '@/common' // 自定义按钮显示指令 import btnPermission from '@/common/btnPermission' // eslint-disable-line import VueI18n from 'vue-i18n' // 国际化 // import * as echarts from 'echarts' import { simpleUploadPath } from '@/sysConfig' // 时间转换 import moment from 'moment' moment.suppressDeprecationWarnings = true; // 右键菜单 import Contextmenu from 'vue-contextmenujs' // vant import vant from 'vant'; import 'vant/lib/index.css'; //vant import animate from 'animate.css' import tool from './utils/tool' Vue.use(tool) // 引入路由器 import router from './router' // 路由解析器 import Re from 'path-to-regexp' import { get_verify_by_instance,loginIdm,getMenu,loginMobile } from 'api/process' import hwh5 from 'api/hwh5-cloudonline.js'; import { ssoLoginUrlDev,ssoLoginUrl,webLoginType,devWebUrl } from '@/sysConfig' import { mapMutations, mapActions } from 'vuex' import VConsole from 'vuex' import isMobile from "./store/isMobile"; // 路由拦截 router.beforeEach(function (to, from, next) { let fromName = from.name if(fromName === undefined || fromName === null){ window.sessionStorage.clear() } let toName = to.name if (toName === 'CheckPage' || toName === 'loginStandDetails' || toName === 'error' || toName === 'LoginVerifyPhone') { next() return } if(webLoginType === 'idm' && toName === 'Login'){ window.location.href = ssoLoginUrlDev } let token = store.state.token let path = to.path; let userName = "" if((fromName === undefined || fromName === null) && (path.indexOf("/standardSearch/All&userName=") !== -1 || (path.indexOf("/standardSearch/All") !== -1 && to.query.userName !== undefined))){ if((path.indexOf("/standardSearch/All") !== -1 && to.query.userName !== undefined)){ userName = to.query.userName }else { userName = path.split("&")[1].split("=")[1] } window.sessionStorage.clear() }else { if(fromName === 'Home2'){ localStorage.removeItem("external") } } let requireAuth = to.meta.requireAuth; let taskId = to.query.taskIds; let prcId = to.query.prcId; let prcNum = to.query.prcNum; let prcName = to.query.prcName; let prcType = to.query.prcType; let routerType = to.query.routerType; let unShowReceipt = to.query.unShowReceipt; let param = "taskIds=" + taskId + "&prcId=" + prcId + "&prcNum=" + prcNum + "&prcName=" + prcName + "&prcType=" + prcType; if (unShowReceipt) { param += "&unShowReceipt=" + unShowReceipt } let param4 = { path: path, token: token, taskId: taskId, prcId: prcId, prcNum: prcNum, prcName: prcName, prcType: prcType, toName: toName } let url = window.location.search let code = ""; if(url){ url = url.substr(1); url = url.split('&'); let info = []; let obj = {}; for (let i = 0,len = url.length; i < len; i++) { info = url[i].split('=') obj[info[0]] = decodeURI(info[1]); url[i] = obj; } code = url[0].code } function extractedLocalStorage(url,param,param4) { localStorage.removeItem("external") localStorage.removeItem("routerUrl") localStorage.setItem('routerUrl', url) localStorage.removeItem("routerParam") localStorage.setItem('routerParam', param) } // 返回值为登录状态 // 单点登录 /** 判断是不是在手机端操作 */ if (isMobile()) { if(toName === 'phoneHome'){ next('/loginVerifyPhone') }else if(toName === 'processCenter'){ // hwh5.close(); //关闭当前窗口 let userAgent = navigator.userAgent; if (userAgent.indexOf("Firefox") !== -1 || userAgent.indexOf("Chrome") !==-1) { window.location.href="about:blank"; }else if(userAgent.indexOf('Android') > -1 || userAgent.indexOf('Linux') > -1){ window.opener=null;window.open('about:blank','_self','').close(); }else { window.opener = null; window.open("about:blank", "_self"); window.close(); } //如果是微信打开,关闭当前微信窗口 weixinClosePage() }else { if ((token === null || token === '' ) && toName !== 'Login') { if(toName !== 'phoneIndex'){ if(toName === 'phoneHome'){ next('/loginVerifyPhone') }else { if(fromName === 'phoneHome'){ next() }else { localStorage.removeItem("param"); localStorage.setItem('param',JSON.stringify(param4)) next('/phoneIndex') } } }else { next() } } else { if (toName.slice(0,5) !== 'phone') { if(toName === 'LoginVerify'){ next('/blankPage') }else { if(toName === 'blankPage' || toName === 'processedPage') { next() }else { extractedVerify() } } }else { if(toName !== 'blankPage'){ if(to.matched.length === 0){ next('/blankPage') }else { next() } }else { next() } } } } } else { if ((token === null || token === '' ) && toName === 'OtherStandardDetails') { if (document.cookie) { next() return } } if ((token === null || token === '' ) && toName !== 'Login') { if(webLoginType != null && webLoginType === 'idm' ){ if(code){ next() }else { if (taskId !== undefined && taskId !== null && prcId !== undefined && prcId !== null) { extractedVerify(token) }else { if((fromName === undefined || fromName === null) && (path.indexOf("/standardSearch/All&userName") !== -1 || (path.indexOf("/standardSearch/All") !== -1 && userName !== undefined))){ extractedLocalStorage("standardSearch/All",userName) localStorage.setItem('external', "external") next('/LoginVerifyNoEncryption') }else { if (toName === 'LoginVerifyNoEncryption') { next() }else { if(path === '/standardSearch/All'){ extractedLocalStorage('standardSearch/All',''); }else { extractedLocalStorage('home2',''); } // ssoLoginUrlDev 默认sso 地址 window.location.href = ssoLoginUrlDev } } } } }else if(webLoginType != null && webLoginType === 'dev'){ if (isMobile()) { extractedVerify(token) } else { next('/Login') } } }else { extractedVerify(token) } } function weixinClosePage() { if (typeof WeixinJSBridge == "undefined") { if (document.addEventListener) { document.addEventListener('WeixinJSBridgeReady', weixin_ClosePage, false); } else if (document.attachEvent) { document.attachEvent('WeixinJSBridgeReady', weixin_ClosePage); document.attachEvent('onWeixinJSBridgeReady', weixin_ClosePage); } } else { weixin_ClosePage(); } } function weixin_ClosePage() { WeixinJSBridge.call('closeWindow'); } function extractedVerify() { if (taskId !== undefined && taskId !== null && prcId !== undefined && prcId !== null) { get_verify_by_instance({ taskId: taskId, // 任务id pId: prcId // 流程实例 }).then(res => { let hisCount = res.hisCount === undefined ? 0 : res.hisCount; let commitStatus = res.commitStatus === undefined ? 0 : res.commitStatus; let isNotFinished = res.isNotFinished === undefined ? 0 : res.isNotFinished; if ((hisCount && hisCount > 0)) { // 业务系统 当前节点已完成 if(isMobile()){ next('/processedPage') }else { // 根据type判断跳转具体流程页面 if (prcType === '1') { // 标准入库流程数据 extracted("bzrkStep5"); } else if (prcType === 'buss1') { //标准清单发布流程数据 extracted("bussLibraryDetail"); } else if (prcType === 'buss2') { //标准清单发布流程数据 extracted("bussLibraryProductDetail"); } else if (prcType === 'buss3') { //标准清单发布流程数据 extracted("bussFsDetail"); } else if (prcType === '4') { //标准清单发布流程数据 extracted("bzqdfbStep1-4"); } else if (prcType === '5') { //标准项目合规评估 标准维度 if (path === "/xmpgStep2" || path === "/xmpgStep1" || path === "/xmpgStep1-2") { extracted("xmpgStep1-2"); } else { extracted("bzpgStep8-1"); } } else if (prcType === '6') { //标准项目合规评估 项目维度 extracted("xmpgStep1-5"); } else if (prcType === '8') { // 未符合项整改 extracted("wfhxzgStep5-1"); } else if (prcType === '9') { extracted("bzjdStep1-6"); //标准调研流程 } else if (prcType === '2') { extracted("bzdyStep1-9"); } else if (prcType === '3') { //标准征求意见 extracted("bzzqyjStep1-9"); } else if (prcType === '10') { //项目清单确认 extracted("xmqdqrStep1-4"); } } } else { // 业务系统 当前节点未完成 // commitStatus 大于0 表示当前节点存在未完成干活流程 // isNotFinished OA 系统显示接受任务 已置为已办 if (routerType && routerType === 'oa' &&isNotFinished && isNotFinished > 0 && commitStatus && commitStatus > 0) { if(isMobile()) { extractedIphone() }else if (prcType === '3') { //标准征求意见 接受节点 未完成 oa已办 跳转详情页面 if (path === '/bzzqyjStep3') { extracted2("processAcceptDetail","prcNum=" + prcNum + "&tabsName=AlreadyProcess"); } }else if (prcType === '5') { if (path === '/xmpgStep4') { extracted2("processAcceptDetail","prcNum=" + prcNum + "&tabsName=AlreadyProcess"); } }else if (prcType === '2') { if (path === '/bzdyStep3') { extracted2("processAcceptDetail","prcNum=" + prcNum + "&tabsName=AlreadyProcess"); } }else if (prcType === '9') { if (path === '/bzjdStep3') { extracted2("processAcceptDetail","prcNum=" + prcNum + "&tabsName=AlreadyProcess"); } }else if (prcType === '6') { if (path === '/xmpg2Step6') { extracted2("processAcceptDetail","prcNum=" + prcNum + "&tabsName=AlreadyProcess"); } }else if (prcType === '10') { if (path === '/xmqdqrStep2') { extracted2("processAcceptDetail","prcNum=" + prcNum + "&tabsName=AlreadyProcess"); } }else if (prcType === '8') { if (path === '/wfhxzgStep4') { extracted2("processAcceptDetail","prcNum=" + prcNum + "&tabsName=AlreadyProcess"); } } } else { if(isMobile()) { extractedIphone() }else{ extracted3() } } } function extracted(routerPath) { if (token === null || token === '') { extractedLocalStorage(routerPath,param); // ssoLoginUrlDev 默认sso 地址 window.location.href = ssoLoginUrlDev } else { next({path: routerPath + '?' +param}) } } function extracted3() { if (token === null || token === '') { extractedLocalStorage(toName,param); // ssoLoginUrlDev 默认sso 地址 window.location.href = ssoLoginUrlDev } else { next() } } function extractedIphone() { let paramPhone = 'taskIds=' + taskId + '&prcId=' + prcId + '&prcNum=' + prcNum + '&taskAssignee=' + toName + '&prcName=' + prcName + '&prcType=' + prcType let phoneRouter = 'phone' + toName.charAt(0).toUpperCase() + toName.slice(1) next({path: phoneRouter + '?' + paramPhone}) } function extracted2(routerPath,param2) { if (token === null || token === '') { extractedLocalStorage(routerPath,param2); // ssoLoginUrlDev 默认sso 地址 window.location.href = ssoLoginUrlDev } else { next({path: routerPath + '?' + param2}) } } function extracted4(routerPath,param4) { if (token === null || token === '') { extractedLocalStorage(routerPath,param4); // ssoLoginUrlDev 默认sso 地址 window.location.href = ssoLoginUrlDev } else { next({path: routerPath + '?' + param4}) } } }) } if(path === '/loginVerify'){ if(webLoginType != null && webLoginType === 'dev'){ next('/Login') }else { next() } }else { if((fromName === undefined || fromName === null) && (path.indexOf("/standardSearch/All&userName") !== -1 || (path.indexOf("/standardSearch/All") !== -1 && userName !== undefined))) { extractedLocalStorage("standardSearch/All",userName) localStorage.setItem('external', "external") next('/LoginVerifyNoEncryption') }else { next() } } } }) // 设置用户信息 function setUserInfo (userInfo) { const timeStamp = new Date().getTime().toString() const _USERINFO = JSON.parse(userInfo) _USERINFO.userId = _USERINFO.userId || _USERINFO.usId _USERINFO.userName = _USERINFO.userName || _USERINFO.uName try { localStorage.setItem('userInfo', JSON.stringify(_USERINFO)) localStorage.setItem('userInfoModifyTime', timeStamp) } catch (e) {} } Vue.config.productionTip = false // jquery Vue.prototype.$ = $ Vue.use(ElementUI) Vue.use(common) Vue.use(components) Vue.use(VueI18n) Vue.use(VueClipboard) Vue.use(Contextmenu) Vue.use(animate) Vue.use(vant) // Vue.prototype.$echarts = echarts // 原生axios Vue.prototype.axios = axios // 封装后的axios Vue.prototype.$http = $axios Vue.prototype.simpleUploadPath = simpleUploadPath Vue.prototype.$moment = moment // 国际化 const i18n = new VueI18n({ locale: store.getters.getLanguage || 'cn', // 定义默认语言为中文 messages: { cn: require('@/assets/languages/cn'), en: require('@/assets/languages/en') } }) /* eslint-disable no-new */ window.vm = new Vue({ VConsole, router, store, i18n, render: h => h(App) }).$mount('#app')