router.ts 10.2 KB
Newer Older
1 2 3 4 5
import Vue from 'vue';
import Router from 'vue-router';
import { AuthGuard } from '@/utils';
import qs from 'qs';
import { globalRoutes, indexRoutes} from '@/router'
6
import { ProjectSetting } from '@/setting';
7 8 9
Vue.use(Router);

const router = new Router({
10
    ...ProjectSetting.routeSetting,
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
    routes: [
        {
            path: '/taskindexview/:taskindexview?',
            beforeEnter: (to: any, from: any, next: any) => {
                const routerParamsName = 'taskindexview';
                const params: any = {};
                if (to.params && to.params[routerParamsName]) {
                    Object.assign(params, qs.parse(to.params[routerParamsName], { delimiter: ';' }));
                }
                const url: string = '/appdata';
                const auth: Promise<any> = AuthGuard.getInstance().authGuard(url, params, router);
                auth.then(() => {
                    next();
                }).catch(() => {
                    next();
                });
            },
            meta: {  
29
                caption: 'app.views.taskindexview.caption',
30
                info:'',
31 32 33 34 35 36 37 38 39
                viewType: 'APPINDEX',
                parameters: [
                    { pathName: 'taskindexview', parameterName: 'taskindexview' },
                ],
                requireAuth: true,
            },
            component: () => import('@pages/task/task-index-view/task-index-view.vue'),
            children: [
                {
40
                    path: 'jobsregistries/:jobsregistry?/gridview/:gridview?',
41
                    meta: {
42
                        caption: 'entities.jobsregistry.views.gridview.caption',
43
                        info:'',
44 45
                        parameters: [
                            { pathName: 'taskindexview', parameterName: 'taskindexview' },
46
                            { pathName: 'jobsregistries', parameterName: 'jobsregistry' },
47 48 49 50
                            { pathName: 'gridview', parameterName: 'gridview' },
                        ],
                        requireAuth: true,
                    },
51
                    component: () => import('@pages/task/jobs-registry-grid-view/jobs-registry-grid-view.vue'),
52 53
                },
                {
54
                    path: 'jobsinfos/:jobsinfo?/gridview/:gridview?',
55
                    meta: {
56
                        caption: 'entities.jobsinfo.views.gridview.caption',
57
                        info:'',
58 59
                        parameters: [
                            { pathName: 'taskindexview', parameterName: 'taskindexview' },
60
                            { pathName: 'jobsinfos', parameterName: 'jobsinfo' },
61
                            { pathName: 'gridview', parameterName: 'gridview' },
62 63 64
                        ],
                        requireAuth: true,
                    },
65
                    component: () => import('@pages/task/jobs-info-grid-view/jobs-info-grid-view.vue'),
66 67
                },
                {
68
                    path: 'jobslogs/:jobslog?/gridview/:gridview?',
69
                    meta: {
70
                        caption: 'entities.jobslog.views.gridview.caption',
71
                        info:'',
72 73
                        parameters: [
                            { pathName: 'taskindexview', parameterName: 'taskindexview' },
74
                            { pathName: 'jobslogs', parameterName: 'jobslog' },
75
                            { pathName: 'gridview', parameterName: 'gridview' },
76 77 78
                        ],
                        requireAuth: true,
                    },
79
                    component: () => import('@pages/task/jobs-log-grid-view/jobs-log-grid-view.vue'),
80 81
                },
                {
82
                    path: 'jobsregistries/:jobsregistry?/editview/:editview?',
83
                    meta: {
84
                        caption: 'entities.jobsregistry.views.editview.caption',
85
                        info:'',
86 87
                        parameters: [
                            { pathName: 'taskindexview', parameterName: 'taskindexview' },
88
                            { pathName: 'jobsregistries', parameterName: 'jobsregistry' },
89 90 91 92
                            { pathName: 'editview', parameterName: 'editview' },
                        ],
                        requireAuth: true,
                    },
93
                    component: () => import('@pages/task/jobs-registry-edit-view/jobs-registry-edit-view.vue'),
94 95
                },
                {
96
                    path: 'jobsinfos/:jobsinfo?/editview/:editview?',
97
                    meta: {
98
                        caption: 'entities.jobsinfo.views.editview.caption',
99
                        info:'',
100 101
                        parameters: [
                            { pathName: 'taskindexview', parameterName: 'taskindexview' },
102 103
                            { pathName: 'jobsinfos', parameterName: 'jobsinfo' },
                            { pathName: 'editview', parameterName: 'editview' },
104 105 106
                        ],
                        requireAuth: true,
                    },
107
                    component: () => import('@pages/task/jobs-info-edit-view/jobs-info-edit-view.vue'),
108 109
                },
                {
110
                    path: 'jobslogs/:jobslog?/editview/:editview?',
111
                    meta: {
112
                        caption: 'entities.jobslog.views.editview.caption',
113
                        info:'',
114 115
                        parameters: [
                            { pathName: 'taskindexview', parameterName: 'taskindexview' },
116 117
                            { pathName: 'jobslogs', parameterName: 'jobslog' },
                            { pathName: 'editview', parameterName: 'editview' },
118 119 120
                        ],
                        requireAuth: true,
                    },
121
                    component: () => import('@pages/task/jobs-log-edit-view/jobs-log-edit-view.vue'),
122 123 124 125 126
                },
            ...indexRoutes,
            ],
        },
    {
127
        path: '/jobsregistries/:jobsregistry?/gridview/:gridview?',
128
        meta: {
129
            caption: 'entities.jobsregistry.views.gridview.caption',
130
            info:'',
131
            parameters: [
132
                { pathName: 'jobsregistries', parameterName: 'jobsregistry' },
133 134 135 136
                { pathName: 'gridview', parameterName: 'gridview' },
            ],
            requireAuth: true,
        },
137
        component: () => import('@pages/task/jobs-registry-grid-view/jobs-registry-grid-view.vue'),
138 139 140 141
    },
    {
        path: '/jobsinfos/:jobsinfo?/editview/:editview?',
        meta: {
142
            caption: 'entities.jobsinfo.views.editview.caption',
143
            info:'',
144 145 146 147 148 149 150 151 152 153 154
            parameters: [
                { pathName: 'jobsinfos', parameterName: 'jobsinfo' },
                { pathName: 'editview', parameterName: 'editview' },
            ],
            requireAuth: true,
        },
        component: () => import('@pages/task/jobs-info-edit-view/jobs-info-edit-view.vue'),
    },
    {
        path: '/jobsregistries/:jobsregistry?/editview/:editview?',
        meta: {
155
            caption: 'entities.jobsregistry.views.editview.caption',
156
            info:'',
157 158 159 160 161 162 163 164 165
            parameters: [
                { pathName: 'jobsregistries', parameterName: 'jobsregistry' },
                { pathName: 'editview', parameterName: 'editview' },
            ],
            requireAuth: true,
        },
        component: () => import('@pages/task/jobs-registry-edit-view/jobs-registry-edit-view.vue'),
    },
    {
166
        path: '/jobslogs/:jobslog?/gridview/:gridview?',
167
        meta: {
168
            caption: 'entities.jobslog.views.gridview.caption',
169
            info:'',
170 171
            parameters: [
                { pathName: 'jobslogs', parameterName: 'jobslog' },
172
                { pathName: 'gridview', parameterName: 'gridview' },
173 174 175
            ],
            requireAuth: true,
        },
176
        component: () => import('@pages/task/jobs-log-grid-view/jobs-log-grid-view.vue'),
177 178
    },
    {
179
        path: '/jobslogs/:jobslog?/editview/:editview?',
180
        meta: {
181
            caption: 'entities.jobslog.views.editview.caption',
182
            info:'',
183
            parameters: [
184 185
                { pathName: 'jobslogs', parameterName: 'jobslog' },
                { pathName: 'editview', parameterName: 'editview' },
186 187 188
            ],
            requireAuth: true,
        },
189
        component: () => import('@pages/task/jobs-log-edit-view/jobs-log-edit-view.vue'),
190 191
    },
    {
192
        path: '/jobsinfos/:jobsinfo?/gridview/:gridview?',
193
        meta: {
194
            caption: 'entities.jobsinfo.views.gridview.caption',
195
            info:'',
196
            parameters: [
197
                { pathName: 'jobsinfos', parameterName: 'jobsinfo' },
198 199 200 201
                { pathName: 'gridview', parameterName: 'gridview' },
            ],
            requireAuth: true,
        },
202
        component: () => import('@pages/task/jobs-info-grid-view/jobs-info-grid-view.vue'),
203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219
    },
        ...globalRoutes,
        {
            path: '/login/:login?',
            name: 'login',
            meta: {  
                caption: '登录',
                viewType: 'login',
                requireAuth: false,
                ignoreAddPage: true,
            },
            beforeEnter: (to: any, from: any, next: any) => {
                router.app.$store.commit('resetRootStateData');
                next();
            },
            component: () => import('@components/login/login.vue'),
        },
220 221 222 223 224 225 226 227 228 229 230 231 232 233
        {
            path: '/lock',
            name: 'lock',
            meta: {  
                caption: '锁屏',
                viewType: 'lock',
                requireAuth: false,
                ignoreAddPage: true,
            },
            beforeEnter: (to: any, from: any, next: any) => {
                next();
            },
            component: () => import('@components/app-lock/app-lock.vue'),
        },
234 235 236 237 238 239 240 241 242 243 244 245 246 247
        {
            path: '/404',
            component: () => import('@components/404/404.vue')
        },
        {
            path: '/500',
            component: () => import('@components/500/500.vue')
        },
        {
            path: '*',
            redirect: 'taskindexview'
        },
    ],
});
248 249 250 251 252 253
// 解决路由跳转路由重复时报错
const originalPush = Router.prototype.push
Router.prototype.push = function push(location: any) {
    let result: any = originalPush.call(this, location);
    return result.catch((err: any) => err);
}
254
export default router;