123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799 |
- import Vue from 'vue'
- import VueRouter from 'vue-router'
- import Cookies from 'js-cookie'
- import Permission from '@/utils/permissions'
- import {stringifyQuery,parseQuery} from '@/utils/query'
- Vue.use(VueRouter)
- const originalPush = VueRouter.prototype.push
- VueRouter.prototype.push = function push(location) {
- return originalPush.call(this, location).catch(err => err)
- }
- const routes = [
- {
- path: "/route",
- component: () => import('@/utils/model/route.vue'),
- },
- {
- path: "/",
- component: () => import('@/views/index'),
- },
- {
- path: '/login',
- name: 'Login',
- meta: {
- title: '系统登录'
- },
- component: () => import("@/views/login/index.vue")
- },
- {
- path: "/agreeConceal",
- name: 'agreeConceal',
- meta: {
- title: '用户须知'
- },
- component: () => import('@/views/login/compoments/invite/components/index.vue')
- },
- {
- path: "",
- component: () => import('@/views/layout/index.vue'),
- children: [
- {
- path: '/home',
- name: 'Home',
- meta: {
- title: '首页',
- sign: 'home',
- belong: 'home'
- },
- component: () => import('@/views/home/index.vue'),
- },
- //专利数据库
- {
- path: '/project',
- name: 'Project',
- component: { render(c) { return c('router-view') } },
- redirect: '/project',
- children: [
- {
- path: '/',
- meta: {
- title: '专利数据库',
- sign: 'project',
- belong: 'project',
- permission:'xiaoshi/project'
- },
- component: () => import('@/views/project/index.vue'),
- },
- {
- path: '/updateCriteria',
- meta: {
- title: '更新条件',
- sign: 'updateCriteria',
- belong: 'project',
- // permission:'xiaoshi/project'
- },
- component: () => import('@/views/project/components/updateCriteria/index.vue'),
- },
- {
- path: 'patentCollection',
- meta: {
- title: '专利列表',
- sign: 'patentCollection',
- belong: 'project',
- keepAlive:true
- },
- component: () => import('@/views/project/patentCollection/index.vue')
- },
- {
- path: '/patentDetails/:patentNo',
- name: 'patentDetails',
- meta: {
- title: '专利文章',
- sign: 'patentDetails',
- notReturn:true,
- // belong:'project'
- },
- component: () => import('@/views/project/patentDetails/index.vue')
- },
- // 专利数据库导出专利
- {
- path: "/exportPatent",
- name: 'exportPatent',
- meta: {
- title: '专利数据库导出专利',
- sign: 'exportPatent'
- },
- component: () => import('@/views/project/patentCollection/components/export/index.vue'),
- },
- // 专利数据库导出专利
- {
- path: "/patentWorth",
- name: 'patentWorth',
- meta: {
- title: '价值曲线',
- sign: 'patentWorth'
- },
- component: () => import('@/views/project/patentDetails/components/patentMessage/history/echarts/index.vue'),
- },
- ],
- },
- //企业专利数据库
- // {
- // path: '/enterprisePatentDB',
- // name:'enterprisePatentDB',
- // component:{render(c){return c('router-view')}},
- // redirect:'/enterprisePatentDB',
- // children:[
- // {
- // path:'/',
- // meta: {
- // title: '企业专利数据库',
- // },
- // component: () => import('@/views/EnterprisePatentDatabase/index.vue'),
- // },
- // ]
- // },
- // //专利挖掘
- {
- path: '/patentMining',
- name: 'patentMining',
- component: { render(c) { return c('router-view') } },
- redirect: '/patentMining',
- children: [
- {
- path: '/',
- meta: {
- title: '专利挖掘',
- sign: 'patentMining',
- belong: 'patentMining',
- permission:'xiaoshi/patentMining'
- },
- component: () => import('@/views/patentMining/index.vue'),
- },
- {
- path: '/details',
- meta: {
- title: '专利挖掘详情',
- sign: 'patentMiningDetails',
- belong: 'patentMining'
- },
- component: () => import('@/views/patentMining/components/details/index.vue'),
- },
- {
- path: '/excavateTask',
- meta: {
- title: '专利挖掘任务',
- sign: 'patentMiningExcavateTask',
- belong: 'patentMining'
- },
- component: () => import('@/views/patentMining/components/excavateTask/index.vue'),
- },
- {
- path: '/handleExamine',
- meta: {
- title: '专利挖掘任务详情',
- sign: 'patentMiningHandleExamine',
- belong: 'patentMining'
- },
- component: () => import('@/views/patentMining/components/handleExamine/index.vue'),
- },
- ]
- },
- // // 产品
- {
- path: '/product',
- name: 'Product',
- component: { render(c) { return c('router-view') } },
- redirect: '/product',
- children: [
- {
- path: '/',
- name: '/',
- meta: {
- title: '产品/技术',
- sign: 'product',
- belong: 'Product',
- permission:'xiaoshi/product'
- },
- component: () => import('@/views/product/index.vue'),
- },
- {
- path: "/productDetails",
- name: 'productDetails',
- meta: {
- title: '详情',
- sign: 'productDetails',
- belong: 'Product'
- },
- component: () => import('@/views/product/components/details'),
- },
- {
- path: "/mindIndex",
- meta: {
- title: '可视化',
- sign: 'mindIndex',
- belong: 'Product'
- },
- component: () => import('@/views/product/components/jsMind'),
- },
- {
- path: "/chartIndex",
- name: 'chartIndex',
- meta: {
- title: '趋势图',
- sign: 'chartIndex',
- belong: 'Product'
- },
- component: () => import('@/views/product/components/echarts'),
- },
- {
- path: "/frameworkIndex",
- meta: {
- title: '产品架构',
- sign: 'frameworkIndex',
- belong: 'Product'
- },
- component: () => import('@/views/product/components/framework/index.vue'),
- },
- {
- path: "/commodity",
- meta: {
- title: '产品商品化专利',
- sign: 'commodity',
- belong: 'Product'
- },
- component: () => import('@/views/product/components/commodity/index.vue'),
- },
- ],
- },
- //事件
- {
- path: '/Event',
- name: 'Event',
- component: { render(c) { return c('router-view') } },
- redirect: '/Event',
- children: [
- {
- path: '/',
- meta: {
- title: '事件',
- sign: 'event',
- belong: 'Event',
- permission:'xiaoshi/event'
- },
- component: () => import('@/views/event/index.vue'),
- },
- //事件可视化
- {
- path: "/eventVisual",
- name: 'eventVisual',
- meta: {
- title: '事件可视化',
- sign: 'eventVisual',
- belong: 'Event'
- },
- component: () => import('@/views/event/components/details/visualRouter.vue'),
- },
- ],
- },
- //报告
- {
- path: '/AllReport',
- name: 'AllReport',
- component: { render(c) { return c('router-view') } },
- redirect: '/AllReport',
- children: [
- {
- path: '/',
- name:'AllReport/',
- meta: {
- title: '报告',
- sign: 'report',
- belong: 'AllReport',
- permission:'xiaoshi/report'
- },
- component: () => import('@/views/report/index.vue'),
- },
- {
- path: '/reportDetails',
- name: 'reportDetails',
- meta: {
- title: '报告详情',
- sign: 'reportDetails',
- belong: 'AllReport',
- keepAlive:true
- },
- component: () => import('@/views/report/components/details'),
- },
- {
- path: '/reportPatentList',
- name: 'reportPatentList',
- meta: {
- title: '报告专利清单',
- sign: 'reportPatentList',
- },
- component: () => import('@/views/report/components/patentList/index.vue'),
- },
- //code码页面
- {
- path: '/identificationCode',
- name: "identificationCode",
- meta: {
- title: '分析系统',
- sign: 'identificationCode',
- belong: 'AllReport'
- },
- component: () => import('@/views/components/identificationCode/index.vue'),
- },
- //FTO风险排查分配任务
- {
- path: '/allocationTask',
- name: "allocationTask",
- meta: {
- title: '分配任务',
- sign: 'allocationTask',
- },
- component: () => import('@/views/report/components/allocationTask/index.vue'),
- },
- //侵权分析
- {
- path: '/tortIndex',
- name: "tortIndex",
- meta: {
- sign: 'tortIndex',
- belong: 'AllReport'
- },
- component: () => import('@/views/report/tort/index.vue'),
- },
- // 产品信息录入
- {
- path: '/informationEntry',
- name: "informationEntry",
- meta: {
- title: '产品信息录入',
- sign: 'informationEntry',
- belong: 'AllReport'
- },
- component: () => import('@/views/report/tort/components/informationEntry/index.vue'),
- },
- //回避设计
- {
- path: '/avoid',
- name: "avoid",
- meta: {
- title: '回避设计',
- sign: 'avoid',
- belong: 'AllReport'
- },
- component: () => import('@/views/report/avoid/index.vue'),
- },
- //无效应对
- {
- path: '/manualImport',
- name: "manualImport",
- meta: {
- title: '批量手动添加证据文献',
- sign: 'manualImport',
- belong: 'AllReport'
- },
- component: () => import('@/views/report/InvalidResponse/components/ManualImport/index.vue'),
- },
- //导入证据文献
- {
- path: '/evidence',
- name: 'evidence',
- meta: {
- title: '证据详情',
- sign: 'evidence',
- belong: 'AllReport'
- },
- component: () => import('@/views/report/InvalidResponse/components/Evidence/index.vue'),
- },
- //报告文档
- {
- path: '/reportFiles',
- name: 'reportFiles',
- meta: {
- title: '报告文档',
- sign: 'reportFiles',
- },
- component: () => import('@/views/report/components/reportFile/index.vue'),
- },
- //检索记录
- {
- path: '/searchRecord',
- name: 'searchRecord',
- meta: {
- title: '检索记录',
- sign: 'searchRecord',
- },
- component: () => import('@/views/report/analysisAndOpinion/components/searchRecords/index.vue'),
- },
- ],
- },
- //查新检索库
- {
- path: '/noveltySearchDB',
- name: 'noveltySearchDB',
- meta: {
- title: '查新检索标注库',
- sign: 'noveltySearchDB',
- belong: 'noveltySearchDB',
- keepAlive:true
- },
- component: () => import('@/views/components/noveltySearch/index.vue'),
- },
- //查新检索
- {
- path: '/noveltySearch',
- name: 'noveltySearch',
- component: { render(c) { return c('router-view') } },
- redirect: '/noveltySearch',
- children: [
- {
- path: '/',
- name:'noveltySearch',
- meta: {
- title: '查新检索',
- sign: 'noveltySearch',
- belong: 'AllReport',
- permission:'xiaoshi/noveltySearch'
- },
- component: () => import('@/views/noveltySearch/index.vue'),
- },
- {
- path: '/noveltySearchDetails',
- name: 'noveltySearchDetails',
- meta: {
- title: '查新检索详情',
- sign: 'noveltySearchDetails',
- belong: 'AllReport',
- keepAlive:true
- },
- component: () => import('@/views/noveltySearch/components/details/index.vue'),
- },
- // 检索记录
- {
- path: '/noveltySearchRecord',
- name: 'noveltySearchRecord',
- meta: {
- title: '查新检索记录',
- sign: 'noveltySearchRecord',
- belong: 'AllReport',
- },
- component: () => import('@/views/noveltySearch/components/details/components/contrastRecords/index.vue'),
- },
- // 对比文件
- {
- path: '/noveltySearchFile',
- name: 'noveltySearchFile',
- meta: {
- title: '查新对比文件',
- sign: 'noveltySearchFile',
- belong: 'AllReport',
- },
- component: () => import('@/views/noveltySearch/components/details/components/contrastFile/index.vue'),
- },
- // 导出报告
- {
- path: '/exportReport',
- name: 'exportReport',
- meta: {
- title: '导出报告',
- sign: 'exportReport',
- belong: 'AllReport',
- },
- component: () => import('@/views/noveltySearch/components/exportReport/index.vue'),
- },
- // 导出报告2
- {
- path: '/exportReportByFile',
- name: 'exportReportByFile',
- meta: {
- title: '导出报告',
- sign: 'exportReportByFile',
- belong: 'AllReport',
- },
- component: () => import('@/views/noveltySearch/components/exportReport/otherTemplate/index.vue'),
- },
- // 复用结果
- {
- path: '/reuseResults',
- name: 'reuseResults',
- meta: {
- title: '复用结果',
- sign: 'reuseResults',
- belong: 'AllReport',
- },
- component: () => import('@/views/noveltySearch/components/reuseResults/index.vue'),
- },
- ]
- },
- //任务模块
- {
- path: '/myTask',
- name: 'myTask',
- component: { render(c) { return c('router-view') } },
- redirect: '/myTask',
- children: [
- {
- path: '/',
- name:'myTask/',
- meta: {
- title: '我的任务',
- sign: 'myTask',
- belong: 'myTask'
- },
- component: () => import('@/views/task/index.vue'),
- },
- ]
- },
- //场景可视化
- {
- path: '/visual',
- name: 'visual',
- meta: {
- title: '场景可视化',
- sign: 'visual',
- belong: 'visual'
- },
- component: () => import('@/views/visual')
- },
- {
- path: '/visual/:title',
- name: 'flowPath',
- meta: {
- sign: 'flowPath',
- title: '可视化平台',
- belong: 'visual'
- },
- component: () => import('@/views/visual/title/index.vue')
- },
- //图表分析
- {
- path: "customChart",
- name:'customChart',
- component: () => import('@/views/analyse/custom'),
- meta: {
- sign: 'customChart',
- title: '自定义分析列表'
- }
- },
- // {
- // path: "report",
- // component: () => import('@/views/analyse/report/create'),
- // meta: {
- // title: '一键生成报告'
- // }
- // },
- //查看文件
- {
- path: '/checkFile',
- name: '/checkFile',
- meta: {
- aside: true,
- sign: 'checkFile',
- },
- component: () => import('@/views/components/view/checkFile.vue'),
- },
- //excel导入
- {
- path: '/import',
- name: "import",
- meta: {
- title: 'excel导入',
- sign: 'import'
- },
- component: () => import('@/views/components/import/excelImport'),
- },
- //专利号导入
- {
- path: '/PatentNoImport',
- name: "PatentNoImport",
- meta: {
- title: '专利号导入',
- sign: 'PatentNoImport'
- },
- component: () => import('@/views/components/import/PatentNoImport'),
- },
- //检索导入
- {
- path: '/conditionImport',
- name: "conditionImport",
- meta: {
- title: '专利检索',
- sign: 'conditionImport',
- belong: 'conditionImport',
- permission:'xiaoshi/patentSearch'
- },
- component: () => import('@/views/components/import/conditionImport'),
- },
- //检索历史
- {
- path: "/searchHistory",
- name:'searchHistory',
- meta: {
- title: '检索历史',
- sign:'searchHistory',
- belong: 'conditionImport',
- },
- component: () => import('@/views/components/import/conditionImport/components/searchHistory/index.vue'),
- },
- //检索结果
- {
- path: "/searchResult",
- name:'searchResult',
- meta: {
- title: '检索结果',
- // button: [],
- },
- component: () => import('@/views/components/import/conditionImport/searchResultIndex.vue'),
- },
- // 任务清单
- {
- path: "/taskList",
- name: 'taskList',
- meta: {
- title: '任务清单',
- sign: 'taskList'
- },
- component: () => import('@/views/components/import/task/index.vue'),
- },
- //标注库
- {
- path: "/indicia",
- name:'indicia',
- meta: {
- title: '标注库',
- sign: 'indicia',
- permission:'xiaoshi/annotationLibrary'
- },
- component: () => import('@/views/components/indicia/index.vue'),
- },
- //错误网页
- {
- path: '/errorPage',
- name: 'errorPage',
- component: { render(c) { return c('router-view') } },
- redirect: '/errorPage',
- children: [
- {
- path: '/403',
- name:'/403',
- meta: {
- title: '无权限',
- sign: '403',
- belong: 'errorPage'
- },
- component: () => import('@/views/components/errorPage/403.vue'),
- },
- ],
- },
- //onlyoffice在线编辑
- {
- path: '/onlyOffice',
- name: 'onlyOffice',
- component: { render(c) { return c('router-view') } },
- redirect: '/onlyOffice',
- children: [
- {
- path: '/onlyOffice',
- name:'onlyOffice',
- meta: {
- title: '在线编辑',
- sign: 'onlyOffice',
- belong: 'onlyOffice'
- },
- component: () => import('@/views/components/onlyOffice/index.vue'),
- },
- ],
- },
- ]
- },
- ]
- const router = new VueRouter({
- mode: 'history',
- base: '/',
- stringifyQuery: stringifyQuery, // 序列化query参数
- parseQuery: parseQuery, // 反序列化query参数
- routes
- })
- function savePreviousRoute(to){
- if(to.meta.notReturn || to.path == '/login' || to.path == '/'){
- return
- }
- var redirectUrl = {
- userName:localStorage.getItem('username'),
- path:to.path,
- query:to.query,
- params:to.params
- }
- localStorage.setItem('redirectUrl',JSON.stringify(redirectUrl))
- }
- router.beforeEach((to, from, next) => {
- savePreviousRoute(to)
- if(to.path == '/login'){
- Cookies.remove("token")
- localStorage.removeItem('vuex')
- }
- if(from.path.indexOf('/patentDetails/')!=-1 && to.path.indexOf('/patentDetails/')==-1){
- sessionStorage.setItem('search', JSON.stringify({}))
- }
- if (to.path === '/login' || to.path === '/' || to.path == '/agreeConceal') {
- if (to.meta.title) {
- document.title = to.meta.title;
- }
- next()
- }
- else if(to.meta.permission && !Permission.FunPermissions(to.meta.permission)){
- next({ path: '/403' })
- }
- else if (to.meta.allowPath) {
- if (to.meta.title) {
- document.title = to.meta.title;
- }
- next()
- }
- else {
- const tokenStr = Cookies.get('token')
- switch (tokenStr) {
- case undefined:
- if (to.meta.title) {
- document.title = to.meta.title;
- }
- // if(to.matched && to.matched.length>0){
- // var path = to.path
- // var redirectUrl = null
- // for(var i = to.matched.length-1;i>=0;i--){
- // var item = to.matched[i]
- // if(item.meta.notReturn){
- // continue
- // }
- // redirectUrl = {
- // userName:localStorage.getItem('username'),
- // path:to.path,
- // query:to.query,
- // params:to.params
- // }
- // break;
- // }
- // if(to.matched.findIndex(item=>{ return item.path == path}) !=-1){
- // var redirectUrl = {
- // userName:localStorage.getItem('username'),
- // path:to.path,
- // query:to.query,
- // params:to.params
- // }
- // localStorage.setItem('redirectUrl',JSON.stringify(redirectUrl))
- // }
- // }
- next({ name: 'Login' })
- break
- default:
- if (to.meta.title) {
- document.title = to.meta.title;
- }
- next()
- break;
- }
- }
- })
- router.afterEach((to, from) => {
- });
- export default router
|