import Vue from 'vue' import Cookies from 'js-cookie' import 'normalize.css/normalize.css' // a modern alternative to CSS resets import '@/assets/css/iconfont/iconfont.css' import Element from 'element-ui' import './styles/element-variables.scss' import 'xterm/css/xterm.css' // import enLang from 'element-ui/lib/locale/lang/en'// 如果使用中文语言包请默认支持,无需额外引入,请删除该依赖 // import 'lib-flexible/flexible' import '@/styles/index.scss' // global css import globalMixin from '@/mixin/globalMixin'; // 替换为实际的文件路径 // 全局混入 Vue.mixin(globalMixin); let ploady={ reseller_orgid:'', start_date:'', end_date:'' } // reqSaleMoneyList(ploady) // import {saveApprovalInfo} from "@/api/finance/approvalList"; // saveApprovalInfo(JSON.stringify({ // "flag":"update", // "id": "GUwHSPn7oKC-LZoqFfdJ9", // "user_id": "11", // "orgid": "x", // "send_dd_user_id": "11", // "source": "sssss", // "app_key": "aaa", // "app_secret": "app_secret", // "http_aes_key": "http_aes_key", // "http_token": "http_token", // "process_code": "PROC-B2DAA076-6A9F-4740-80AB-0D5D4410F7AC", // "process_name": "process_name", // "update_time": "2023-08-25 16:15:18" // })) // bpmn 工作流绘图工具的样式 // import "bpmn-js/dist/assets/diagram-js.css" // 左边工具栏以及编辑节点的样式 // import "bpmn-js/dist/assets/bpmn-font/css/bpmn.css" // import "bpmn-js/dist/assets/bpmn-font/css/bpmn-codes.css" // import "bpmn-js/dist/assets/bpmn-font/css/bpmn-embedded.css" // import 'bpmn-js-properties-panel/dist/assets/properties-panel.css' // 右边工具栏样式 import App from './App' import store from './store' import router from './router' // import 'default-passive-events' import './icons' // icon import './permission' // permission control // import './utils/error-log' // error log import index from '@/styles/index.css' import { v4 as uuidv4 } from 'uuid';//引入uuid // uuidv4(); sessionStorage.setItem('client_uuid', uuidv4()) // console.log(uuidv4()); // 引入form-create 表单生成器 import formCreate from "@form-create/element-ui" Vue.use(formCreate); import * as filters from './filters' // global filters import HappyScroll from 'vue-happy-scroll' // 引入css import 'vue-happy-scroll/docs/happy-scroll.css' import {reqSaleMoneyList} from "@/api/sales/distributorMangement"; Vue.use(HappyScroll) // Vue.use(axios) // Vue.prototype.axios=axios /** * If you don't want to use mock-server * you want to use MockJs for mock api * you can execute: mockXHR() * * Currently MockJs will be used in the production environment, * please remove it before going online ! ! ! */ // if (process.env.NODE_ENV === 'production') { // const { mockXHR } = require('../mock') // mockXHR() // } Vue.use(Element, { size: Cookies.get('size') || 'medium' // set element-ui default size // locale: enLang // 如果使用中文,无需设置,请删除 }) // 解决bug:页面/路由跳转后,滚动条消失,页面无法滚动 //设置跳转页面时给页面的body属性设置滚动条 var onOverflow = ["/shoppingManagement", "/supplierManagement"]; // 修复:在路由守卫中恢复用户状态和重新生成路由 router.beforeEach(async (to, from, next) => { // 清空面包屑状态的代码 // store.commit('tagsView/resetBreadcrumbState'); // 新增:如果已登录且有token,但Vuex状态丢失,从sessionStorage恢复 if (store.getters.token && (!store.getters.user || !store.getters.userType)) { console.log("检测到状态丢失,从sessionStorage恢复用户状态"); const user = sessionStorage.getItem('user'); const auths = sessionStorage.getItem('auths'); const userType = sessionStorage.getItem('userType'); const orgType = sessionStorage.getItem('orgType'); if (user) { store.commit('user/SET_USER', user); } if (auths) { store.commit('user/SET_AUTHS', JSON.parse(auths)); } if (userType) { store.commit('user/SET_USER_TYPE', userType); } if (orgType) { store.commit('user/SET_ORG_TYPE', parseInt(orgType)); } // 重新生成路由 try { const accessRoutes = await store.dispatch('permission/generateRoutes', { user: store.getters.user, auths: store.getters.auths, userType: store.getters.userType, orgType: store.getters.orgType }); // 重新添加路由 router.addRoutes(accessRoutes); // 重定向到当前路由以确保路由更新 next({ ...to, replace: true }); return; } catch (error) { console.error('重新生成路由失败:', error); } } onOverflow.forEach(element => { if (to.path == element) { document.querySelector("body").setAttribute("style", "overflow: auto !important;") } }); next(); }); window.addEventListener('beforeunload', function () { // 清空面包屑状态的代码 store.commit('tagsView/resetBreadcrumbState'); }); Object.keys(filters).forEach(key => { Vue.filter(key, filters[key]) }) Vue.config.productionTip = false new Vue({ el: '#app', router, store, render: h => h(App) })