{"version":3,"sources":["webpack:///./src/api/errorCode.js","webpack:///./src/App.vue?e0f5","webpack:///./src/App.vue","webpack:///src/App.vue","webpack:///./src/router/index.js","webpack:///src/components/Editor/index.vue","webpack:///./src/components/Editor/index.vue?651a","webpack:///./src/components/Editor/index.vue","webpack:///./src/main.js","webpack:///./src/api/api.js","webpack:///./src/api/auth.js","webpack:///./src/utils/ruoyi.js","webpack:///./src/store/modules/app.js","webpack:///./src/store/modules/user.js","webpack:///./src/store/modules/tagsView.js","webpack:///./src/store/getters.js","webpack:///./src/store/index.js","webpack:///./src/plugins/cache.js","webpack:///./src/utils/request.js"],"names":["__webpack_exports__","401","403","404","default","selectortype_template_index_0_src_App","render","_h","this","$createElement","_c","_self","attrs","id","key","$route","fullPath","staticRenderFns","src_App","__webpack_require__","normalizeComponent","name","ssrContext","Vue","use","Router","originalPush","prototype","push","location","call","catch","err","router","routes","path","redirect","meta","title","hideInMenu","component","Promise","all","e","then","bind","children","Editor","props","value","type","String","height","Number","minHeight","readOnly","Boolean","fileSize","data","uploadUrl","Object","NODE_ENV","VUE_APP_BASE_API","Quill","currentValue","options","theme","bounds","document","body","debug","modules","toolbar","list","indent","size","header","color","background","align","placeholder","computed","styles","style","watch","handler","val","pasteHTML","immediate","mounted","init","beforeDestroy","methods","_this","editor","$refs","quill_default","a","getModule","addHandler","uploadType","upload","$children","input","click","quill","format","on","delta","oldDelta","source","html","innerHTML","text","getText","$emit","range","oldRange","eventName","_len","arguments","length","args","Array","_key","apply","concat","handleBeforeUpload","file","$message","error","handleUploadSuccess","res","code","getSelection","index","insertEmbed","detail","url","setSelection","msg","handleUploadError","components_Editor","ref","staticStyle","display","action","before-upload","on-success","on-error","show-file-list","_e","_v","staticClass","disabled","src_components_Editor","Editor_normalizeComponent","VueQuillEditor","ElementUI","Vuex","download","config","productionTip","el","components","App","template","beforeCreate","$bus","request","method","__WEBPACK_IMPORTED_MODULE_0__utils_request__","Cookies","get","TokenKey1","token","set","TokenKey","token1","remove","__WEBPACK_IMPORTED_MODULE_0_js_cookie__","__WEBPACK_IMPORTED_MODULE_0_js_cookie___default","n","params","result","_iteratorNormalCompletion5","_didIteratorError5","_iteratorError5","undefined","_step5","_iterator5","__WEBPACK_IMPORTED_MODULE_2_babel_runtime_core_js_get_iterator___default","__WEBPACK_IMPORTED_MODULE_3_babel_runtime_core_js_object_keys___default","next","done","propName","part","encodeURIComponent","__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_typeof___default","_iteratorNormalCompletion6","_didIteratorError6","_iteratorError6","_step6","_iterator6","subPart","return","_ref","blobValidate","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_asyncToGenerator___default","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default","mark","_callee","wrap","_context","prev","sent","JSON","parse","abrupt","t0","stop","_x","app","namespaced","state","sidebar","opened","withoutAnimation","hide","device","mutations","TOGGLE_SIDEBAR","CLOSE_SIDEBAR","TOGGLE_DEVICE","SET_SIZE","SET_SIDEBAR_HIDE","status","actions","toggleSideBar","commit","closeSideBar","_ref2","_ref3","toggleDevice","_ref4","setSize","_ref5","toggleSideBarHide","_ref6","user","getToken1","avatar","roles","permissions","SET_TOKEN","SET_NAME","SET_AVATAR","SET_ROLES","SET_PERMISSIONS","Login","userInfo","username","trim","password","uuid","promise_default","resolve","reject","login","setToken1","GetInfo","getInfo","userName","LogOut","logout","removeToken","FedLogOut","visitedViews","cachedViews","tagsView","ADD_VISITED_VIEW","view","some","v","assign_default","ADD_CACHED_VIEW","includes","noCache","DEL_VISITED_VIEW","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","get_iterator_default","entries","slicedToArray_default","i","splice","DEL_CACHED_VIEW","indexOf","DEL_OTHERS_VISITED_VIEWS","filter","affix","DEL_OTHERS_CACHED_VIEWS","slice","DEL_ALL_VISITED_VIEWS","affixTags","tag","DEL_ALL_CACHED_VIEWS","UPDATE_VISITED_VIEW","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","DEL_RIGHT_VIEWS","findIndex","item","idx","DEL_LEFT_VIEWS","addView","dispatch","addVisitedView","addCachedView","delView","delVisitedView","_ref7","delCachedView","_ref8","delOthersViews","_ref9","delOthersVisitedViews","_ref10","delOthersCachedViews","_ref11","delAllViews","_ref12","delAllVisitedViews","_ref13","delAllCachedViews","_ref14","updateVisitedView","_ref15","delRightTags","_ref16","delLeftTags","_ref17","getters","introduction","permission_routes","permission","topbarRouters","defaultRoutes","sidebarRouters","deptList","deptData","xiaoQuData","collegeData","Store","settings","cache","session","sessionStorage","setItem","getItem","setJSON","jsonValue","stringify_default","getJSON","removeItem","local","localStorage","filename","downloadLoadingInstance","Loading","service","spinner","post","transformRequest","tansParams","headers","Content-Type","responseType","asyncToGenerator_default","regenerator_default","blob","resText","rspObj","errMsg","Blob","saveAs","errorCode","Message","close","r","console","isRelogin","show","axios","defaults","create","baseURL","timeout","interceptors","isToken","isRepeatSubmit","repeatSubmit","requestObj","typeof_default","time","Date","getTime","sessionObj","s_url","s_data","s_time","warn","Error","response","MessageBox","confirm","confirmButtonText","cancelButtonText","log","clear","href","message","Notification","substr","duration"],"mappings":"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","file":"static/js/app.5edcdc18fd28c3817d57.js","sourcesContent":["export default {\r\n '401': '认证失败,无法访问系统资源',\r\n '403': '当前操作没有权限',\r\n '404': '访问资源不存在',\r\n 'default': '系统未知错误,请反馈给管理员'\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/api/errorCode.js","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('router-view',{key:_vm.$route.fullPath})],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-35082d98\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/App.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-35082d98\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../node_modules/vue-loader/lib/selector?type=styles&index=0!./App.vue\")\n}\nvar normalizeComponent = require(\"!../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../node_modules/vue-loader/lib/selector?type=script&index=0!./App.vue\"\nimport __vue_script__ from \"!!babel-loader!../node_modules/vue-loader/lib/selector?type=script&index=0!./App.vue\"\n/* template */\nimport __vue_template__ from \"!!../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-35082d98\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../node_modules/vue-loader/lib/selector?type=template&index=0!./App.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/App.vue\n// module id = null\n// module chunks = ","\r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// src/App.vue","import Vue from 'vue'\r\nimport Router from 'vue-router'\r\n// import HelloWorld from '@/components/HelloWorld'\r\n\r\nVue.use(Router)\r\n\r\nconst originalPush = Router.prototype.push\r\n//修改原型对象中的push方法\r\nRouter.prototype.push = function push(location) {\r\n return originalPush.call(this, location).catch(err => err)\r\n}\r\n\r\nexport default new Router({\r\n routes: [{\r\n path: \"/\", redirect: \"/home\"\r\n }, {\r\n path: '/home', name: 'home', meta: {\r\n title: '首页', hideInMenu: true\r\n }, component: () => import('@/view/home/home.vue')\r\n }, {\r\n path: '/matchMessage', name: 'matchMessage', meta: {\r\n title: '竞赛介绍', hideInMenu: true\r\n }, component: () => import('@/view/matchMessage/matchMessage.vue')\r\n }, {\r\n path: '/news', name: 'news', meta: {\r\n title: '新闻动态', hideInMenu: true\r\n }, component: () => import('@/view/home/news.vue')\r\n }, {\r\n path: '/newsDetail', name: 'newsDetail', meta: {\r\n title: '新闻动态详情', hideInMenu: true\r\n }, component: () => import('@/view/home/newsDetail.vue')\r\n }, {\r\n path: '/matchMessageDetail', name: 'matchMessageDetail', meta: {\r\n title: '竞赛介绍详情', hideInMenu: true\r\n }, component: () => import('@/view/matchMessage/matchMessageDetail.vue')\r\n },{\r\n path: '/matchClass', name: 'matchClass', meta: {\r\n title: '竞赛课题', hideInMenu: true\r\n }, component: () => import('@/view/matchMessage/matchClass.vue')\r\n },{\r\n path: '/matchClassDetail', name: 'matchClassDetail', meta: {\r\n title: '竞赛课题详情', hideInMenu: true\r\n }, component: () => import('@/view/matchMessage/matchClassDetail.vue')\r\n }, {\r\n path: '/resultDisplay', name: 'resultDisplay', meta: {\r\n title: '获奖名单', hideInMenu: true\r\n }, component: () => import('@/view/matchMessage/resultDisplay.vue')\r\n }, {\r\n path: '/resultDisplayDetail', name: 'resultDisplayDetail', meta: {\r\n title: '获奖名单详情', hideInMenu: true\r\n }, component: () => import('@/view/matchMessage/resultDisplayDetail.vue')\r\n }, {\r\n path: '/person', name: 'person', meta: {\r\n title: '个人中心', hideInMenu: true\r\n }, component: () => import('@/view/person/person.vue')\r\n }, {\r\n path: '/internetApply', name: 'internetApply', meta: {\r\n title: '网上报名', hideInMenu: true\r\n }, component: () => import('@/view/internetApply/internetApply.vue')\r\n }, {\r\n path: '/apply', name: 'apply', meta: {\r\n title: '网上报名', hideInMenu: true\r\n }, component: () => import('@/view/internetApply/apply.vue')\r\n }, {\r\n path: '/workSubmit', name: 'workSubmit', meta: {\r\n title: '作品递交', hideInMenu: true\r\n }, component: () => import('@/view/internetApply/workSubmit.vue')\r\n }, {\r\n path: '/applyDetail', name: 'applyDetail', meta: {\r\n title: '报名须知详情', hideInMenu: true\r\n }, component: () => import('@/view/internetApply/applyDetail.vue')\r\n }, {\r\n path: '/applyInstructions', name: 'applyInstructions', meta: {\r\n title: '报名须知', hideInMenu: true\r\n }, component: () => import('@/view/internetApply/applyInstructions.vue')\r\n }, {\r\n path: '/exam', name: 'exam', meta: {\r\n title: '在线考试', hideInMenu: true\r\n }, component: () => import('@/view/internetApply/exam.vue')\r\n }, {\r\n path: '/joinExam', name: 'joinExam', meta: {\r\n title: '在线考试', hideInMenu: true\r\n }, component: () => import('@/view/internetApply/joinExam.vue')\r\n }, {\r\n path: '/noticeAnnouncement', name: 'noticeAnnouncement', meta: {\r\n title: '通知公告', hideInMenu: true\r\n }, component: () => import('@/view/noticeAnnouncement/noticeAnnouncement.vue')\r\n }, {\r\n path: '/noticeDetail', name: 'noticeDetail', meta: {\r\n title: '通知公告详情', hideInMenu: true\r\n }, component: () => import('@/view/noticeAnnouncement/noticeDetail.vue')\r\n }, {\r\n path: '/displayWorks', name: 'displayWorks', meta: {\r\n title: '作品展示', hideInMenu: true\r\n }, component: () => import('@/view/displayWorks/displayWorks.vue')\r\n }, {\r\n path: '/workDetail', name: 'workDetail', meta: {\r\n title: '作品展示详情', hideInMenu: true\r\n }, component: () => import('@/view/displayWorks/workDetail.vue')\r\n }, {\r\n path: '/previousSessions', name: 'previousSessions', meta: {\r\n title: '往届回顾', hideInMenu: true\r\n }, component: () => import('@/view/previousSessions/previousSessions.vue')\r\n }, {\r\n path: '/commonProblem', name: 'commonProblem', meta: {\r\n title: '常见问题', hideInMenu: true\r\n }, component: () => import('@/view/commonProblem/commonProblem.vue')\r\n }, {\r\n path: '/register', name: 'register', meta: {\r\n title: '注册', hideInMenu: true\r\n }, component: () => import('@/view/home/register.vue')\r\n }, {\r\n path: '/paperDetail', name: 'paperDetail', meta: {\r\n title: '批改', hideInMenu: true\r\n }, component: () => import('@/view/person/judgesCenter/paperDetail.vue')\r\n }, {\r\n path: '/association', name: 'association', meta: {\r\n title: '联席会', hideInMenu: true\r\n }, component: () => import('@/view/association/association.vue')\r\n }, {\r\n path: '/associationDetail', name: 'associationDetail', meta: {\r\n title: '联席会详情', hideInMenu: true\r\n }, component: () => import('@/view/association/associationDetail.vue')\r\n }, {\r\n path: '/download', name: 'download', meta: {\r\n title: '资源下载详情', hideInMenu: true\r\n }, component: () => import('@/view/internetApply/download.vue')\r\n }, {\r\n path: '/downloadPage', name: 'downloadPage', meta: {\r\n title: '资源下载', hideInMenu: true\r\n }, component: () => import('@/view/internetApply/downloadPage.vue')\r\n }, // 学生个人中心\r\n {\r\n path: '/studentCenter',\r\n name: '学生个人中心',\r\n component: () => import('@/view/person/studentCenter/index.vue'),\r\n redirect: '/studentCenter/message',\r\n children: [{\r\n path: 'message', name: '个人信息', component: () => import('@/view/person/studentCenter/message.vue'),\r\n }, {\r\n path: 'teamMessage', name: '赛队信息', component: () => import('@/view/person/studentCenter/teamMessage.vue'),\r\n }, {\r\n path: 'worksMessage', name: '作品信息', component: () => import('@/view/person/studentCenter/worksMessage.vue'),\r\n }, {\r\n path: 'password', name: '密码修改', component: () => import('@/view/person/studentCenter/password.vue'),\r\n },]\r\n }, //评审个人中心\r\n {\r\n path: '/judgesCenter',\r\n name: '评审个人中心',\r\n component: () => import('@/view/person/judgesCenter/index.vue'),\r\n redirect: '/judgesCenter/myJudges',\r\n children: [{\r\n path: 'myJudges', name: '我的评审', component: () => import('@/view/person/judgesCenter/myJudges.vue'),\r\n }, {\r\n path: 'judgesRecord', name: '评审记录', component: () => import('@/view/person/judgesCenter/judgesRecord.vue'),\r\n }, {\r\n path: 'testPaper', name: '试卷批改', component: () => import('@/view/person/judgesCenter/testPaper.vue'),\r\n }, {\r\n path: 'judgesword', name: '评审密码', component: () => import('@/view/person/judgesCenter/password.vue'),\r\n },{\r\n path: 'paperList', name: 'paperList', meta: {\r\n title: '试卷列表', hideInMenu: true\r\n }, component: () => import('@/view/person/judgesCenter/paperList.vue')\r\n }\r\n ,{\r\n path: 'work', name: '作品详情', component: () => import('@/view/person/judgesCenter/work.vue'),\r\n }\r\n ]\r\n }]\r\n})\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/router/index.js","\r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// src/components/Editor/index.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(this.type == 'url')?_c('el-upload',{ref:\"upload\",staticStyle:{\"display\":\"none\"},attrs:{\"action\":_vm.uploadUrl,\"before-upload\":_vm.handleBeforeUpload,\"on-success\":_vm.handleUploadSuccess,\"on-error\":_vm.handleUploadError,\"name\":\"file\",\"show-file-list\":false}}):_vm._e(),_vm._v(\" \"),_c('div',{ref:\"editor\",staticClass:\"editor\",style:(_vm.styles),attrs:{\"disabled\":\"\"}})],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-80690250\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/Editor/index.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-80690250\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./index.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./index.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./index.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-80690250\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./index.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-80690250\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Editor/index.vue\n// module id = null\n// module chunks = ","// The Vue build version to load with the `import` command\r\n// (runtime-only or standalone) has been set in webpack.base.conf with an alias.\r\nimport Vue from 'vue'\r\nimport Vuex from 'vuex'\r\nimport App from './App'\r\nimport router from './router'\r\nimport ElementUI from 'element-ui'\r\nimport 'element-ui/lib/theme-chalk/index.css'\r\n//引用富文本编辑器\r\nimport VueQuillEditor from 'vue-quill-editor'\r\n //引入富文本css\r\n// require styles\r\nimport 'quill/dist/quill.core.css'\r\nimport { download } from '@/utils/request'\r\nimport 'quill/dist/quill.snow.css'\r\nimport 'quill/dist/quill.bubble.css'\r\nimport Editor from \"@/components/Editor\"\r\n//富文本编辑器添加实例\r\nVue.use(VueQuillEditor, /* { default global options } */)\r\nVue.use(ElementUI)\r\nVue.use(Vuex)\r\nVue.prototype.download = download\r\n\r\nVue.config.productionTip = false\r\nVue.component('Editor', Editor)\r\n/* eslint-disable no-new */\r\nnew Vue({\r\n el: '#app',\r\n router,\r\n components: { App },\r\n template: '',\r\n beforeCreate(){\r\n Vue.prototype.$bus = this //$bus作为一个vm是拥有$on $emit的全局事件总线\r\n },\r\n})\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.js","import request from '../utils/request'\r\n\r\n//登录\r\nexport function login(data) {\r\n return request({\r\n url: '/login',\r\n method: 'post',\r\n data: data\r\n })\r\n }\r\n\r\n //获取个人信息\r\n export function getInfo() {\r\n return request({\r\n url: '/getInfo',\r\n method: 'get'\r\n })\r\n }\r\n\r\n //获取当前届次\r\n export function getSession() {\r\n return request({\r\n url: '/period/period/list/tokensession',\r\n method: 'get'\r\n })\r\n }\r\n\r\n //获取当前课题\r\n export function getMatch() {\r\n return request({\r\n url: '/matchquestioninformation/matchquestioninformation/list/tokensession',\r\n method: 'get'\r\n })\r\n }\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/api/api.js","import Cookies from 'js-cookie'\r\n\r\nconst TokenKey = 'Admin-Token'\r\nconst TokenKey1 = 'Admin-Token1'\r\n\r\nexport function getToken() {\r\n return Cookies.get(TokenKey)\r\n}\r\n\r\nexport function getToken1() {\r\n return Cookies.get(TokenKey1)\r\n}\r\n\r\nexport function setToken(token) {\r\n return Cookies.set(TokenKey, token)\r\n}\r\n\r\nexport function setToken1(token1) {\r\n return Cookies.set(TokenKey1, token1)\r\n}\r\n\r\nexport function removeToken() {\r\n return Cookies.remove(TokenKey1)\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/api/auth.js","\r\n\r\n/**\r\n * 通用js方法封装处理\r\n * Copyright (c) 2019 ruoyi\r\n */\r\n\r\n// 日期格式化\r\nexport function parseTime(time, pattern) {\r\n if (arguments.length === 0 || !time) {\r\n return null\r\n }\r\n const format = pattern || '{y}-{m}-{d} {h}:{i}:{s}'\r\n let date\r\n if (typeof time === 'object') {\r\n date = time\r\n } else {\r\n if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) {\r\n time = parseInt(time)\r\n } else if (typeof time === 'string') {\r\n time = time.replace(new RegExp(/-/gm), '/').replace('T', ' ').replace(new RegExp(/\\.[\\d]{3}/gm), '');\r\n }\r\n if ((typeof time === 'number') && (time.toString().length === 10)) {\r\n time = time * 1000\r\n }\r\n date = new Date(time)\r\n }\r\n const formatObj = {\r\n y: date.getFullYear(),\r\n m: date.getMonth() + 1,\r\n d: date.getDate(),\r\n h: date.getHours(),\r\n i: date.getMinutes(),\r\n s: date.getSeconds(),\r\n a: date.getDay()\r\n }\r\n const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {\r\n let value = formatObj[key]\r\n // Note: getDay() returns 0 on Sunday\r\n if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value] }\r\n if (result.length > 0 && value < 10) {\r\n value = '0' + value\r\n }\r\n return value || 0\r\n })\r\n return time_str\r\n}\r\n\r\n// 表单重置\r\nexport function resetForm(refName) {\r\n if (this.$refs[refName]) {\r\n this.$refs[refName].resetFields();\r\n }\r\n}\r\n\r\n// 添加日期范围\r\nexport function addDateRange(params, dateRange, propName) {\r\n let search = params;\r\n search.params = typeof (search.params) === 'object' && search.params !== null && !Array.isArray(search.params) ? search.params : {};\r\n dateRange = Array.isArray(dateRange) ? dateRange : [];\r\n if (typeof (propName) === 'undefined') {\r\n search.params['beginTime'] = dateRange[0];\r\n search.params['endTime'] = dateRange[1];\r\n } else {\r\n search.params['begin' + propName] = dateRange[0];\r\n search.params['end' + propName] = dateRange[1];\r\n }\r\n return search;\r\n}\r\n\r\n// 回显数据字典\r\nexport function selectDictLabel(datas, value) {\r\n if (value === undefined) {\r\n return \"\";\r\n }\r\n var actions = [];\r\n Object.keys(datas).some((key) => {\r\n if (datas[key].value == ('' + value)) {\r\n actions.push(datas[key].label);\r\n return true;\r\n }\r\n })\r\n if (actions.length === 0) {\r\n actions.push(value);\r\n }\r\n return actions.join('');\r\n}\r\n\r\n// 回显数据字典(字符串、数组)\r\nexport function selectDictLabels(datas, value, separator) {\r\n if (value === undefined || value.length ===0) {\r\n return \"\";\r\n }\r\n if (Array.isArray(value)) {\r\n value = value.join(\",\");\r\n }\r\n var actions = [];\r\n var currentSeparator = undefined === separator ? \",\" : separator;\r\n var temp = value.split(currentSeparator);\r\n Object.keys(value.split(currentSeparator)).some((val) => {\r\n var match = false;\r\n Object.keys(datas).some((key) => {\r\n if (datas[key].value == ('' + temp[val])) {\r\n actions.push(datas[key].label + currentSeparator);\r\n match = true;\r\n }\r\n })\r\n if (!match) {\r\n actions.push(temp[val] + currentSeparator);\r\n }\r\n })\r\n return actions.join('').substring(0, actions.join('').length - 1);\r\n}\r\n\r\n// 字符串格式化(%s )\r\nexport function sprintf(str) {\r\n var args = arguments, flag = true, i = 1;\r\n str = str.replace(/%s/g, function () {\r\n var arg = args[i++];\r\n if (typeof arg === 'undefined') {\r\n flag = false;\r\n return '';\r\n }\r\n return arg;\r\n });\r\n return flag ? str : '';\r\n}\r\n\r\n// 转换字符串,undefined,null等转化为\"\"\r\nexport function parseStrEmpty(str) {\r\n if (!str || str == \"undefined\" || str == \"null\") {\r\n return \"\";\r\n }\r\n return str;\r\n}\r\n\r\n// 数据合并\r\nexport function mergeRecursive(source, target) {\r\n for (var p in target) {\r\n try {\r\n if (target[p].constructor == Object) {\r\n source[p] = mergeRecursive(source[p], target[p]);\r\n } else {\r\n source[p] = target[p];\r\n }\r\n } catch (e) {\r\n source[p] = target[p];\r\n }\r\n }\r\n return source;\r\n};\r\n\r\n/**\r\n * 构造树型结构数据\r\n * @param {*} data 数据源\r\n * @param {*} id id字段 默认 'id'\r\n * @param {*} parentId 父节点字段 默认 'parentId'\r\n * @param {*} children 孩子节点字段 默认 'children'\r\n */\r\nexport function handleTree(data, id, parentId, children) {\r\n let config = {\r\n id: id || 'id',\r\n parentId: parentId || 'parentId',\r\n childrenList: children || 'children'\r\n };\r\n\r\n var childrenListMap = {};\r\n var nodeIds = {};\r\n var tree = [];\r\n\r\n for (let d of data) {\r\n let parentId = d[config.parentId];\r\n if (childrenListMap[parentId] == null) {\r\n childrenListMap[parentId] = [];\r\n }\r\n nodeIds[d[config.id]] = d;\r\n childrenListMap[parentId].push(d);\r\n }\r\n\r\n for (let d of data) {\r\n let parentId = d[config.parentId];\r\n if (nodeIds[parentId] == null) {\r\n tree.push(d);\r\n }\r\n }\r\n\r\n for (let t of tree) {\r\n adaptToChildrenList(t);\r\n }\r\n\r\n function adaptToChildrenList(o) {\r\n if (childrenListMap[o[config.id]] !== null) {\r\n o[config.childrenList] = childrenListMap[o[config.id]];\r\n }\r\n if (o[config.childrenList]) {\r\n for (let c of o[config.childrenList]) {\r\n adaptToChildrenList(c);\r\n }\r\n }\r\n }\r\n return tree;\r\n}\r\n\r\n/**\r\n* 参数处理\r\n* @param {*} params 参数\r\n*/\r\nexport function tansParams(params) {\r\n let result = ''\r\n for (const propName of Object.keys(params)) {\r\n const value = params[propName];\r\n var part = encodeURIComponent(propName) + \"=\";\r\n if (value !== null && value !== \"\" && typeof (value) !== \"undefined\") {\r\n if (typeof value === 'object') {\r\n for (const key of Object.keys(value)) {\r\n if (value[key] !== null && value[key] !== \"\" && typeof (value[key]) !== 'undefined') {\r\n let params = propName + '[' + key + ']';\r\n var subPart = encodeURIComponent(params) + \"=\";\r\n result += subPart + encodeURIComponent(value[key]) + \"&\";\r\n }\r\n }\r\n } else {\r\n result += part + encodeURIComponent(value) + \"&\";\r\n }\r\n }\r\n }\r\n return result\r\n}\r\n\r\n// 验证是否为blob格式\r\nexport async function blobValidate(data) {\r\n try {\r\n const text = await data.text();\r\n JSON.parse(text);\r\n return false;\r\n } catch (error) {\r\n return true;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/ruoyi.js","import Cookies from 'js-cookie'\r\n\r\nconst state = {\r\n sidebar: {\r\n opened: Cookies.get('sidebarStatus') ? !!+Cookies.get('sidebarStatus') : true,\r\n withoutAnimation: false,\r\n hide: false\r\n },\r\n device: 'desktop',\r\n size: Cookies.get('size') || 'medium'\r\n}\r\n\r\nconst mutations = {\r\n TOGGLE_SIDEBAR: state => {\r\n if (state.sidebar.hide) {\r\n return false;\r\n }\r\n state.sidebar.opened = !state.sidebar.opened\r\n state.sidebar.withoutAnimation = false\r\n if (state.sidebar.opened) {\r\n Cookies.set('sidebarStatus', 1)\r\n } else {\r\n Cookies.set('sidebarStatus', 0)\r\n }\r\n },\r\n CLOSE_SIDEBAR: (state, withoutAnimation) => {\r\n Cookies.set('sidebarStatus', 0)\r\n state.sidebar.opened = false\r\n state.sidebar.withoutAnimation = withoutAnimation\r\n },\r\n TOGGLE_DEVICE: (state, device) => {\r\n state.device = device\r\n },\r\n SET_SIZE: (state, size) => {\r\n state.size = size\r\n Cookies.set('size', size)\r\n },\r\n SET_SIDEBAR_HIDE: (state, status) => {\r\n state.sidebar.hide = status\r\n }\r\n}\r\n\r\nconst actions = {\r\n toggleSideBar({ commit }) {\r\n commit('TOGGLE_SIDEBAR')\r\n },\r\n closeSideBar({ commit }, { withoutAnimation }) {\r\n commit('CLOSE_SIDEBAR', withoutAnimation)\r\n },\r\n toggleDevice({ commit }, device) {\r\n commit('TOGGLE_DEVICE', device)\r\n },\r\n setSize({ commit }, size) {\r\n commit('SET_SIZE', size)\r\n },\r\n toggleSideBarHide({ commit }, status) {\r\n commit('SET_SIDEBAR_HIDE', status)\r\n }\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/modules/app.js","import { login, getInfo } from '@/api/api'\r\nimport { getToken1, setToken1, removeToken } from '../../api/auth'\r\n\r\nconst user = {\r\n state: {\r\n token: getToken1(),\r\n name: '',\r\n avatar: '',\r\n roles: [],\r\n permissions: []\r\n },\r\n\r\n mutations: {\r\n SET_TOKEN: (state, token) => {\r\n state.token = token\r\n },\r\n SET_NAME: (state, name) => {\r\n state.name = name\r\n },\r\n SET_AVATAR: (state, avatar) => {\r\n state.avatar = avatar\r\n },\r\n SET_ROLES: (state, roles) => {\r\n state.roles = roles\r\n },\r\n SET_PERMISSIONS: (state, permissions) => {\r\n state.permissions = permissions\r\n }\r\n },\r\n\r\n actions: {\r\n // 登录\r\n Login({ commit }, userInfo) {\r\n const username = userInfo.username.trim()\r\n const password = userInfo.password\r\n const code = userInfo.code\r\n const uuid = userInfo.uuid\r\n return new Promise((resolve, reject) => {\r\n login(username, password, code, uuid).then(res => {\r\n setToken1(res.token)\r\n commit('SET_TOKEN', res.token)\r\n resolve()\r\n }).catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n\r\n // 获取用户信息\r\n GetInfo({ commit, state }) {\r\n return new Promise((resolve, reject) => {\r\n getInfo().then(res => {\r\n const user = res.user\r\n // const avatar = (user.avatar == \"\" || user.avatar == null) ? require('1') : process.env.VUE_APP_BASE_API + user.avatar;\r\n if (res.roles && res.roles.length > 0) { // 验证返回的roles是否是一个非空数组\r\n commit('SET_ROLES', res.roles)\r\n commit('SET_PERMISSIONS', res.permissions)\r\n } else {\r\n commit('SET_ROLES', ['ROLE_DEFAULT'])\r\n }\r\n commit('SET_NAME', user.userName)\r\n commit('SET_AVATAR', avatar)\r\n resolve(res)\r\n }).catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n\r\n // 退出系统\r\n LogOut({ commit, state }) {\r\n return new Promise((resolve, reject) => {\r\n logout(state.token).then(() => {\r\n commit('SET_TOKEN', '')\r\n commit('SET_ROLES', [])\r\n commit('SET_PERMISSIONS', [])\r\n removeToken()\r\n resolve()\r\n }).catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n\r\n // 前端 登出\r\n FedLogOut({ commit }) {\r\n return new Promise(resolve => {\r\n commit('SET_TOKEN', '')\r\n removeToken()\r\n resolve()\r\n })\r\n }\r\n }\r\n}\r\n\r\nexport default user\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/modules/user.js","const state = {\r\n visitedViews: [],\r\n cachedViews: []\r\n}\r\n\r\nconst mutations = {\r\n ADD_VISITED_VIEW: (state, view) => {\r\n if (state.visitedViews.some(v => v.path === view.path)) return\r\n state.visitedViews.push(\r\n Object.assign({}, view, {\r\n title: view.meta.title || 'no-name'\r\n })\r\n )\r\n },\r\n ADD_CACHED_VIEW: (state, view) => {\r\n if (state.cachedViews.includes(view.name)) return\r\n if (view.meta && !view.meta.noCache) {\r\n state.cachedViews.push(view.name)\r\n }\r\n },\r\n\r\n DEL_VISITED_VIEW: (state, view) => {\r\n for (const [i, v] of state.visitedViews.entries()) {\r\n if (v.path === view.path) {\r\n state.visitedViews.splice(i, 1)\r\n break\r\n }\r\n }\r\n },\r\n DEL_CACHED_VIEW: (state, view) => {\r\n const index = state.cachedViews.indexOf(view.name)\r\n index > -1 && state.cachedViews.splice(index, 1)\r\n },\r\n\r\n DEL_OTHERS_VISITED_VIEWS: (state, view) => {\r\n state.visitedViews = state.visitedViews.filter(v => {\r\n return v.meta.affix || v.path === view.path\r\n })\r\n },\r\n DEL_OTHERS_CACHED_VIEWS: (state, view) => {\r\n const index = state.cachedViews.indexOf(view.name)\r\n if (index > -1) {\r\n state.cachedViews = state.cachedViews.slice(index, index + 1)\r\n } else {\r\n state.cachedViews = []\r\n }\r\n },\r\n\r\n DEL_ALL_VISITED_VIEWS: state => {\r\n // keep affix tags\r\n const affixTags = state.visitedViews.filter(tag => tag.meta.affix)\r\n state.visitedViews = affixTags\r\n },\r\n DEL_ALL_CACHED_VIEWS: state => {\r\n state.cachedViews = []\r\n },\r\n\r\n UPDATE_VISITED_VIEW: (state, view) => {\r\n for (let v of state.visitedViews) {\r\n if (v.path === view.path) {\r\n v = Object.assign(v, view)\r\n break\r\n }\r\n }\r\n },\r\n \r\n DEL_RIGHT_VIEWS: (state, view) => {\r\n const index = state.visitedViews.findIndex(v => v.path === view.path)\r\n if (index === -1) {\r\n return\r\n }\r\n state.visitedViews = state.visitedViews.filter((item, idx) => {\r\n if (idx <= index || (item.meta && item.meta.affix)) {\r\n return true\r\n }\r\n const i = state.cachedViews.indexOf(item.name)\r\n if (i > -1) {\r\n state.cachedViews.splice(i, 1)\r\n }\r\n return false\r\n })\r\n },\r\n\r\n DEL_LEFT_VIEWS: (state, view) => {\r\n const index = state.visitedViews.findIndex(v => v.path === view.path)\r\n if (index === -1) {\r\n return\r\n }\r\n state.visitedViews = state.visitedViews.filter((item, idx) => {\r\n if (idx >= index || (item.meta && item.meta.affix)) {\r\n return true\r\n }\r\n const i = state.cachedViews.indexOf(item.name)\r\n if (i > -1) {\r\n state.cachedViews.splice(i, 1)\r\n }\r\n return false\r\n })\r\n }\r\n}\r\n\r\nconst actions = {\r\n addView({ dispatch }, view) {\r\n dispatch('addVisitedView', view)\r\n dispatch('addCachedView', view)\r\n },\r\n addVisitedView({ commit }, view) {\r\n commit('ADD_VISITED_VIEW', view)\r\n },\r\n addCachedView({ commit }, view) {\r\n commit('ADD_CACHED_VIEW', view)\r\n },\r\n\r\n delView({ dispatch, state }, view) {\r\n return new Promise(resolve => {\r\n dispatch('delVisitedView', view)\r\n dispatch('delCachedView', view)\r\n resolve({\r\n visitedViews: [...state.visitedViews],\r\n cachedViews: [...state.cachedViews]\r\n })\r\n })\r\n },\r\n delVisitedView({ commit, state }, view) {\r\n return new Promise(resolve => {\r\n commit('DEL_VISITED_VIEW', view)\r\n resolve([...state.visitedViews])\r\n })\r\n },\r\n delCachedView({ commit, state }, view) {\r\n return new Promise(resolve => {\r\n commit('DEL_CACHED_VIEW', view)\r\n resolve([...state.cachedViews])\r\n })\r\n },\r\n\r\n delOthersViews({ dispatch, state }, view) {\r\n return new Promise(resolve => {\r\n dispatch('delOthersVisitedViews', view)\r\n dispatch('delOthersCachedViews', view)\r\n resolve({\r\n visitedViews: [...state.visitedViews],\r\n cachedViews: [...state.cachedViews]\r\n })\r\n })\r\n },\r\n delOthersVisitedViews({ commit, state }, view) {\r\n return new Promise(resolve => {\r\n commit('DEL_OTHERS_VISITED_VIEWS', view)\r\n resolve([...state.visitedViews])\r\n })\r\n },\r\n delOthersCachedViews({ commit, state }, view) {\r\n return new Promise(resolve => {\r\n commit('DEL_OTHERS_CACHED_VIEWS', view)\r\n resolve([...state.cachedViews])\r\n })\r\n },\r\n\r\n delAllViews({ dispatch, state }, view) {\r\n return new Promise(resolve => {\r\n dispatch('delAllVisitedViews', view)\r\n dispatch('delAllCachedViews', view)\r\n resolve({\r\n visitedViews: [...state.visitedViews],\r\n cachedViews: [...state.cachedViews]\r\n })\r\n })\r\n },\r\n delAllVisitedViews({ commit, state }) {\r\n return new Promise(resolve => {\r\n commit('DEL_ALL_VISITED_VIEWS')\r\n resolve([...state.visitedViews])\r\n })\r\n },\r\n delAllCachedViews({ commit, state }) {\r\n return new Promise(resolve => {\r\n commit('DEL_ALL_CACHED_VIEWS')\r\n resolve([...state.cachedViews])\r\n })\r\n },\r\n\r\n updateVisitedView({ commit }, view) {\r\n commit('UPDATE_VISITED_VIEW', view)\r\n },\r\n\r\n delRightTags({ commit }, view) {\r\n return new Promise(resolve => {\r\n commit('DEL_RIGHT_VIEWS', view)\r\n resolve([...state.visitedViews])\r\n })\r\n },\r\n\r\n delLeftTags({ commit }, view) {\r\n return new Promise(resolve => {\r\n commit('DEL_LEFT_VIEWS', view)\r\n resolve([...state.visitedViews])\r\n })\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/modules/tagsView.js","const getters = {\r\n sidebar: state => state.app.sidebar,\r\n size: state => state.app.size,\r\n device: state => state.app.device,\r\n visitedViews: state => state.tagsView.visitedViews,\r\n cachedViews: state => state.tagsView.cachedViews,\r\n token: state => state.user.token,\r\n avatar: state => state.user.avatar,\r\n name: state => state.user.name,\r\n introduction: state => state.user.introduction,\r\n roles: state => state.user.roles,\r\n permissions: state => state.user.permissions,\r\n permission_routes: state => state.permission.routes,\r\n topbarRouters: state => state.permission.topbarRouters,\r\n defaultRoutes: state => state.permission.defaultRoutes,\r\n sidebarRouters: state => state.permission.sidebarRouters,\r\n deptList: state => state.index.deptList,\r\n deptData: state => state.index.deptData,\r\n xiaoQuData: state => state.index.xiaoQuData,\r\n collegeData: state => state.index.collegeData,\r\n}\r\nexport default getters\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/getters.js","import Vue from 'vue'\r\nimport Vuex from 'vuex'\r\nimport app from './modules/app'\r\nimport user from './modules/user'\r\nimport tagsView from './modules/tagsView'\r\nimport permission from './modules/permission'\r\nimport settings from './modules/settings'\r\nimport index from './modules/index'\r\nimport getters from './getters'\r\n\r\nVue.use(Vuex)\r\n\r\nconst store = new Vuex.Store({\r\n modules: {\r\n app,\r\n user,\r\n tagsView,\r\n permission,\r\n settings,\r\n index\r\n },\r\n getters\r\n})\r\n\r\nexport default store\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/index.js","const sessionCache = {\r\n set (key, value) {\r\n if (!sessionStorage) {\r\n return\r\n }\r\n if (key != null && value != null) {\r\n sessionStorage.setItem(key, value)\r\n }\r\n },\r\n get (key) {\r\n if (!sessionStorage) {\r\n return null\r\n }\r\n if (key == null) {\r\n return null\r\n }\r\n return sessionStorage.getItem(key)\r\n },\r\n setJSON (key, jsonValue) {\r\n if (jsonValue != null) {\r\n this.set(key, JSON.stringify(jsonValue))\r\n }\r\n },\r\n getJSON (key) {\r\n const value = this.get(key)\r\n if (value != null) {\r\n return JSON.parse(value)\r\n }\r\n },\r\n remove (key) {\r\n sessionStorage.removeItem(key);\r\n }\r\n}\r\nconst localCache = {\r\n set (key, value) {\r\n if (!localStorage) {\r\n return\r\n }\r\n if (key != null && value != null) {\r\n localStorage.setItem(key, value)\r\n }\r\n },\r\n get (key) {\r\n if (!localStorage) {\r\n return null\r\n }\r\n if (key == null) {\r\n return null\r\n }\r\n return localStorage.getItem(key)\r\n },\r\n setJSON (key, jsonValue) {\r\n if (jsonValue != null) {\r\n this.set(key, JSON.stringify(jsonValue))\r\n }\r\n },\r\n getJSON (key) {\r\n const value = this.get(key)\r\n if (value != null) {\r\n return JSON.parse(value)\r\n }\r\n },\r\n remove (key) {\r\n localStorage.removeItem(key);\r\n }\r\n}\r\n\r\nexport default {\r\n /**\r\n * 会话级缓存\r\n */\r\n session: sessionCache,\r\n /**\r\n * 本地缓存\r\n */\r\n local: localCache\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/cache.js","import axios from 'axios'\r\nimport { Notification, MessageBox, Message, Loading } from 'element-ui'\r\nimport store from '../store'\r\n// import logout from '../store/modules/user'\r\nimport { getToken1 } from '../api/auth'\r\nimport errorCode from '../api/errorCode'\r\nimport { tansParams, blobValidate } from './ruoyi'\r\nimport cache from '../plugins/cache'\r\nimport { saveAs } from 'file-saver'\r\n\r\nlet downloadLoadingInstance\r\n// const baseURL='http://192.168.0.206:8090'\r\n// 是否显示重新登录\r\nexport const isRelogin = { show: false }\r\n\r\naxios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'\r\n// 创建axios实例\r\nconst service = axios.create({\r\n // axios中请求配置有baseURL选项,表示请求URL公共部分\r\n // baseURL: 'http://192.168.0.184:8090', // 测试环境\r\n // baseURL: 'http://localhost:8090',// 本地开发环境\r\n baseURL: 'https://zjshxjs.dodokon.com/api/', // 正式环境\r\n // baseURL: 'http://www.dodokon.com:8666/api/', // 正式环境\r\n // 超时\r\n timeout: 100000\r\n})\r\n// request拦截器\r\nservice.interceptors.request.use(config => {\r\n // 是否需要设置 token\r\n const isToken = (config.headers || {}).isToken === false\r\n // 是否需要防止数据重复提交\r\n const isRepeatSubmit = (config.headers || {}).repeatSubmit === false\r\n if (getToken1() && !isToken) {\r\n config.headers['Authorization'] = 'Bearer ' + getToken1() // 让每个请求携带自定义token 请根据实际情况自行修改\r\n }\r\n // get请求映射params参数\r\n if (config.method === 'get' && config.params) {\r\n let url = config.url + '?' + tansParams(config.params)\r\n url = url.slice(0, -1)\r\n config.params = {}\r\n config.url = url\r\n }\r\n if (!isRepeatSubmit && (config.method === 'post' || config.method === 'put')) {\r\n const requestObj = {\r\n url: config.url,\r\n data: typeof config.data === 'object' ? JSON.stringify(config.data) : config.data,\r\n time: new Date().getTime()\r\n }\r\n const sessionObj = cache.session.getJSON('sessionObj')\r\n if (sessionObj === undefined || sessionObj === null || sessionObj === '') {\r\n cache.session.setJSON('sessionObj', requestObj)\r\n } else {\r\n const s_url = sessionObj.url // 请求地址\r\n const s_data = sessionObj.data // 请求数据\r\n const s_time = sessionObj.time // 请求时间\r\n const interval = 1000 // 间隔时间(ms),小于此时间视为重复提交\r\n if (s_data === requestObj.data && requestObj.time - s_time < interval && s_url === requestObj.url) {\r\n const message = '数据正在处理,请勿重复提交'\r\n console.warn(`[${s_url}]: ` + message)\r\n return Promise.reject(new Error(message))\r\n } else {\r\n cache.session.setJSON('sessionObj', requestObj)\r\n }\r\n }\r\n }\r\n return config\r\n}, error => {\r\n // console.log(error)\r\n Promise.reject(error)\r\n})\r\n\r\n// 响应拦截器\r\nservice.interceptors.response.use(res => {\r\n // 未设置状态码则默认成功状态\r\n const code = res.data.code || 200\r\n // 获取错误信息\r\n const msg = errorCode[code] || res.data.msg || errorCode['default']\r\n // 二进制数据则直接返回\r\n if (res.request.responseType === 'blob' || res.request.responseType === 'arraybuffer') {\r\n return res.data\r\n }\r\n if (code === 401) {\r\n if (!isRelogin.show) {\r\n isRelogin.show = true\r\n MessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', {\r\n confirmButtonText: '重新登录',\r\n cancelButtonText: '取消',\r\n type: 'warning'\r\n }\r\n ).then(() => {\r\n isRelogin.show = false\r\n console.log('1231231')\r\n localStorage.clear ()\r\n location.href = '/#/home'\r\n // this.$router.push({\r\n // name: \"home\"\r\n // });\r\n // store.dispatch('LogOut').then(() => {\r\n // location.href = '/index'\r\n // // this.$router.push({\r\n // // name: \"home\"\r\n // // });\r\n // })\r\n }).catch(() => {\r\n isRelogin.show = false\r\n })\r\n }\r\n return Promise.reject('无效的会话,或者会话已过期,请重新登录。')\r\n } else if (code === 500) {\r\n Message({\r\n message: msg,\r\n type: 'error'\r\n })\r\n return Promise.reject(new Error(msg))\r\n } else if (code !== 200) {\r\n Notification.error({\r\n title: msg\r\n })\r\n return Promise.reject('error')\r\n } else {\r\n return res.data\r\n }\r\n},\r\nerror => {\r\n // console.log('err' + error)\r\n let { message } = error\r\n if (message === 'Network Error') {\r\n message = '后端接口连接异常'\r\n } else if (message.includes('timeout')) {\r\n message = '系统接口请求超时'\r\n } else if (message.includes('Request failed with status code')) {\r\n message = '系统接口' + message.substr(message.length - 3) + '异常'\r\n }\r\n Message({\r\n message: message,\r\n type: 'error',\r\n duration: 5 * 1000\r\n })\r\n return Promise.reject(error)\r\n}\r\n)\r\n\r\n// 通用下载方法\r\nexport function download(url, params, filename) {\r\n downloadLoadingInstance = Loading.service({\r\n text: '正在下载数据,请稍候',\r\n spinner: 'el-icon-loading',\r\n background: 'rgba(0, 0, 0, 0.7)'\r\n })\r\n return service.post(url, params, {\r\n transformRequest: [(params) => {\r\n return tansParams(params)\r\n }],\r\n headers: { 'Content-Type': 'application/x-www-form-urlencoded' },\r\n responseType: 'blob'\r\n }).then(async(data) => {\r\n const isLogin = await blobValidate(data)\r\n if (isLogin) {\r\n const blob = new Blob([data])\r\n saveAs(blob, filename)\r\n } else {\r\n const resText = await data.text()\r\n const rspObj = JSON.parse(resText)\r\n const errMsg = errorCode[rspObj.code] || rspObj.msg || errorCode['default']\r\n Message.error(errMsg)\r\n }\r\n downloadLoadingInstance.close()\r\n }).catch((r) => {\r\n console.error(r)\r\n Message.error('下载文件出现错误,请联系管理员!')\r\n downloadLoadingInstance.close()\r\n })\r\n}\r\n\r\nexport default service\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/request.js"],"sourceRoot":""}