提交 | 用户 | age
|
4d2fb0
|
1 |
import type { AppRouteModule } from '@/router/types'; |
2f6253
|
2 |
|
4d2fb0
|
3 |
import { getParentLayout, LAYOUT } from '@/router/constant'; |
X |
4 |
import { t } from '@/hooks/web/useI18n'; |
2f6253
|
5 |
|
fc4666
|
6 |
const feat: AppRouteModule = { |
c303ec
|
7 |
path: '/feat', |
V |
8 |
name: 'FeatDemo', |
|
9 |
component: LAYOUT, |
|
10 |
redirect: '/feat/icon', |
|
11 |
meta: { |
913c22
|
12 |
orderNo: 19, |
37669d
|
13 |
icon: 'ion:git-compare-outline', |
a0b05e
|
14 |
title: t('routes.demo.feat.feat'), |
2f6253
|
15 |
}, |
5465f0
|
16 |
|
c303ec
|
17 |
children: [ |
2f6253
|
18 |
{ |
c303ec
|
19 |
path: 'icon', |
949db9
|
20 |
name: 'IconDemo', |
4d2fb0
|
21 |
component: () => import('@/views/demo/feat/icon/index.vue'), |
949db9
|
22 |
meta: { |
a0b05e
|
23 |
title: t('routes.demo.feat.icon'), |
949db9
|
24 |
}, |
V |
25 |
}, |
|
26 |
{ |
5a2d74
|
27 |
path: 'screenshot', |
T |
28 |
name: 'Screenshot', |
|
29 |
component: () => import('@/views/demo/feat/screenshot/index.vue'), |
|
30 |
meta: { |
|
31 |
title: t('routes.demo.feat.screenShot'), |
|
32 |
}, |
|
33 |
}, |
|
34 |
{ |
c62546
|
35 |
path: 'ws', |
V |
36 |
name: 'WebSocket', |
4d2fb0
|
37 |
component: () => import('@/views/demo/feat/ws/index.vue'), |
c62546
|
38 |
meta: { |
V |
39 |
title: t('routes.demo.feat.ws'), |
|
40 |
}, |
|
41 |
}, |
|
42 |
{ |
136cbb
|
43 |
path: 'request', |
C |
44 |
name: 'RequestDemo', |
|
45 |
// @ts-ignore |
4d2fb0
|
46 |
component: () => import('@/views/demo/feat/request-demo/index.vue'), |
136cbb
|
47 |
meta: { |
C |
48 |
title: t('routes.demo.feat.requestDemo'), |
|
49 |
}, |
|
50 |
}, |
|
51 |
{ |
5465f0
|
52 |
path: 'session-timeout', |
V |
53 |
name: 'SessionTimeout', |
4d2fb0
|
54 |
component: () => import('@/views/demo/feat/session-timeout/index.vue'), |
5465f0
|
55 |
meta: { |
V |
56 |
title: t('routes.demo.feat.sessionTimeout'), |
|
57 |
}, |
|
58 |
}, |
|
59 |
{ |
2f9989
|
60 |
path: 'print', |
V |
61 |
name: 'Print', |
4d2fb0
|
62 |
component: () => import('@/views/demo/feat/print/index.vue'), |
2f9989
|
63 |
meta: { |
V |
64 |
title: t('routes.demo.feat.print'), |
|
65 |
}, |
|
66 |
}, |
|
67 |
{ |
c303ec
|
68 |
path: 'tabs', |
02d6a3
|
69 |
name: 'TabsDemo', |
4d2fb0
|
70 |
component: () => import('@/views/demo/feat/tabs/index.vue'), |
02d6a3
|
71 |
meta: { |
a0b05e
|
72 |
title: t('routes.demo.feat.tabs'), |
052eff
|
73 |
hideChildrenInMenu: true, |
02d6a3
|
74 |
}, |
052eff
|
75 |
children: [ |
H |
76 |
{ |
|
77 |
path: 'detail/:id', |
|
78 |
name: 'TabDetail', |
4d2fb0
|
79 |
component: () => import('@/views/demo/feat/tabs/TabDetail.vue'), |
052eff
|
80 |
meta: { |
H |
81 |
currentActiveMenu: '/feat/tabs', |
|
82 |
title: t('routes.demo.feat.tabDetail'), |
|
83 |
hideMenu: true, |
|
84 |
dynamicLevel: 3, |
|
85 |
realPath: '/feat/tabs/detail', |
|
86 |
}, |
|
87 |
}, |
|
88 |
], |
02d6a3
|
89 |
}, |
819bcb
|
90 |
{ |
V |
91 |
path: 'breadcrumb', |
|
92 |
name: 'BreadcrumbDemo', |
|
93 |
redirect: '/feat/breadcrumb/flat', |
|
94 |
component: getParentLayout('BreadcrumbDemo'), |
|
95 |
meta: { |
|
96 |
title: t('routes.demo.feat.breadcrumb'), |
|
97 |
}, |
|
98 |
|
|
99 |
children: [ |
|
100 |
{ |
|
101 |
path: 'flat', |
|
102 |
name: 'BreadcrumbFlatDemo', |
4d2fb0
|
103 |
component: () => import('@/views/demo/feat/breadcrumb/FlatList.vue'), |
819bcb
|
104 |
meta: { |
V |
105 |
title: t('routes.demo.feat.breadcrumbFlat'), |
|
106 |
}, |
|
107 |
}, |
|
108 |
{ |
|
109 |
path: 'flatDetail', |
|
110 |
name: 'BreadcrumbFlatDetailDemo', |
4d2fb0
|
111 |
component: () => import('@/views/demo/feat/breadcrumb/FlatListDetail.vue'), |
819bcb
|
112 |
meta: { |
V |
113 |
title: t('routes.demo.feat.breadcrumbFlatDetail'), |
|
114 |
hideMenu: true, |
|
115 |
hideTab: true, |
|
116 |
currentActiveMenu: '/feat/breadcrumb/flat', |
|
117 |
}, |
|
118 |
}, |
|
119 |
{ |
|
120 |
path: 'children', |
|
121 |
name: 'BreadcrumbChildrenDemo', |
4d2fb0
|
122 |
component: () => import('@/views/demo/feat/breadcrumb/ChildrenList.vue'), |
819bcb
|
123 |
meta: { |
84d930
|
124 |
title: t('routes.demo.feat.breadcrumbChildren'), |
819bcb
|
125 |
}, |
V |
126 |
children: [ |
|
127 |
{ |
|
128 |
path: 'childrenDetail', |
|
129 |
name: 'BreadcrumbChildrenDetailDemo', |
4d2fb0
|
130 |
component: () => import('@/views/demo/feat/breadcrumb/ChildrenListDetail.vue'), |
819bcb
|
131 |
meta: { |
V |
132 |
currentActiveMenu: '/feat/breadcrumb/children', |
|
133 |
title: t('routes.demo.feat.breadcrumbChildrenDetail'), |
84d930
|
134 |
//hideTab: true, |
5b2fbf
|
135 |
// hideMenu: true, |
819bcb
|
136 |
}, |
V |
137 |
}, |
|
138 |
], |
|
139 |
}, |
|
140 |
], |
|
141 |
}, |
02d6a3
|
142 |
|
N |
143 |
{ |
c303ec
|
144 |
path: 'context-menu', |
2f6253
|
145 |
name: 'ContextMenuDemo', |
4d2fb0
|
146 |
component: () => import('@/views/demo/feat/context-menu/index.vue'), |
2f6253
|
147 |
meta: { |
a0b05e
|
148 |
title: t('routes.demo.feat.contextMenu'), |
2f6253
|
149 |
}, |
陈 |
150 |
}, |
|
151 |
{ |
c303ec
|
152 |
path: 'download', |
db3092
|
153 |
name: 'DownLoadDemo', |
4d2fb0
|
154 |
component: () => import('@/views/demo/feat/download/index.vue'), |
db3092
|
155 |
meta: { |
a0b05e
|
156 |
title: t('routes.demo.feat.download'), |
db3092
|
157 |
}, |
V |
158 |
}, |
|
159 |
{ |
c303ec
|
160 |
path: 'click-out-side', |
949db9
|
161 |
name: 'ClickOutSideDemo', |
4d2fb0
|
162 |
component: () => import('@/views/demo/feat/click-out-side/index.vue'), |
949db9
|
163 |
meta: { |
a0b05e
|
164 |
title: t('routes.demo.feat.clickOutSide'), |
949db9
|
165 |
}, |
V |
166 |
}, |
|
167 |
{ |
c303ec
|
168 |
path: 'img-preview', |
2f6253
|
169 |
name: 'ImgPreview', |
4d2fb0
|
170 |
component: () => import('@/views/demo/feat/img-preview/index.vue'), |
2f6253
|
171 |
meta: { |
a0b05e
|
172 |
title: t('routes.demo.feat.imgPreview'), |
2f6253
|
173 |
}, |
陈 |
174 |
}, |
|
175 |
{ |
c303ec
|
176 |
path: 'copy', |
2f6253
|
177 |
name: 'CopyDemo', |
4d2fb0
|
178 |
component: () => import('@/views/demo/feat/copy/index.vue'), |
2f6253
|
179 |
meta: { |
a0b05e
|
180 |
title: t('routes.demo.feat.copy'), |
2f6253
|
181 |
}, |
陈 |
182 |
}, |
|
183 |
{ |
872247
|
184 |
path: 'ellipsis', |
Z |
185 |
name: 'EllipsisDemo', |
4d2fb0
|
186 |
component: () => import('@/views/demo/feat/ellipsis/index.vue'), |
872247
|
187 |
meta: { |
Z |
188 |
title: t('routes.demo.feat.ellipsis'), |
|
189 |
}, |
|
190 |
}, |
|
191 |
{ |
c303ec
|
192 |
path: 'msg', |
2f6253
|
193 |
name: 'MsgDemo', |
4d2fb0
|
194 |
component: () => import('@/views/demo/feat/msg/index.vue'), |
2f6253
|
195 |
meta: { |
a0b05e
|
196 |
title: t('routes.demo.feat.msg'), |
2f6253
|
197 |
}, |
陈 |
198 |
}, |
|
199 |
{ |
c303ec
|
200 |
path: 'watermark', |
2f6253
|
201 |
name: 'WatermarkDemo', |
4d2fb0
|
202 |
component: () => import('@/views/demo/feat/watermark/index.vue'), |
2f6253
|
203 |
meta: { |
a0b05e
|
204 |
title: t('routes.demo.feat.watermark'), |
2f6253
|
205 |
}, |
陈 |
206 |
}, |
|
207 |
{ |
2e79c9
|
208 |
path: 'ripple', |
V |
209 |
name: 'RippleDemo', |
4d2fb0
|
210 |
component: () => import('@/views/demo/feat/ripple/index.vue'), |
2e79c9
|
211 |
meta: { |
V |
212 |
title: t('routes.demo.feat.ripple'), |
|
213 |
}, |
|
214 |
}, |
|
215 |
{ |
c303ec
|
216 |
path: 'full-screen', |
2f6253
|
217 |
name: 'FullScreenDemo', |
4d2fb0
|
218 |
component: () => import('@/views/demo/feat/full-screen/index.vue'), |
2f6253
|
219 |
meta: { |
a0b05e
|
220 |
title: t('routes.demo.feat.fullScreen'), |
2f6253
|
221 |
}, |
陈 |
222 |
}, |
31e271
|
223 |
{ |
341bd6
|
224 |
path: '/error-log', |
bcab4b
|
225 |
name: 'ErrorLog', |
4d2fb0
|
226 |
component: () => import('@/views/sys/error-log/index.vue'), |
bcab4b
|
227 |
meta: { |
a0b05e
|
228 |
title: t('routes.demo.feat.errorLog'), |
bcab4b
|
229 |
}, |
V |
230 |
}, |
daf2b1
|
231 |
{ |
V |
232 |
path: 'excel', |
|
233 |
name: 'Excel', |
|
234 |
redirect: '/feat/excel/customExport', |
|
235 |
component: getParentLayout('Excel'), |
|
236 |
meta: { |
|
237 |
// icon: 'mdi:microsoft-excel', |
|
238 |
title: t('routes.demo.excel.excel'), |
|
239 |
}, |
e6db0d
|
240 |
|
daf2b1
|
241 |
children: [ |
V |
242 |
{ |
|
243 |
path: 'customExport', |
|
244 |
name: 'CustomExport', |
4d2fb0
|
245 |
component: () => import('@/views/demo/excel/CustomExport.vue'), |
daf2b1
|
246 |
meta: { |
V |
247 |
title: t('routes.demo.excel.customExport'), |
|
248 |
}, |
|
249 |
}, |
|
250 |
{ |
|
251 |
path: 'jsonExport', |
|
252 |
name: 'JsonExport', |
4d2fb0
|
253 |
component: () => import('@/views/demo/excel/JsonExport.vue'), |
daf2b1
|
254 |
meta: { |
V |
255 |
title: t('routes.demo.excel.jsonExport'), |
|
256 |
}, |
|
257 |
}, |
|
258 |
{ |
|
259 |
path: 'arrayExport', |
|
260 |
name: 'ArrayExport', |
4d2fb0
|
261 |
component: () => import('@/views/demo/excel/ArrayExport.vue'), |
daf2b1
|
262 |
meta: { |
V |
263 |
title: t('routes.demo.excel.arrayExport'), |
|
264 |
}, |
|
265 |
}, |
|
266 |
{ |
|
267 |
path: 'importExcel', |
|
268 |
name: 'ImportExcel', |
4d2fb0
|
269 |
component: () => import('@/views/demo/excel/ImportExcel.vue'), |
daf2b1
|
270 |
meta: { |
V |
271 |
title: t('routes.demo.excel.importExcel'), |
|
272 |
}, |
|
273 |
}, |
|
274 |
], |
|
275 |
}, |
e6db0d
|
276 |
{ |
c303ec
|
277 |
path: 'testTab/:id', |
31e271
|
278 |
name: 'TestTab', |
4d2fb0
|
279 |
component: () => import('@/views/demo/feat/tab-params/index.vue'), |
31e271
|
280 |
meta: { |
a0b05e
|
281 |
title: t('routes.demo.feat.tab'), |
b8353f
|
282 |
carryParam: true, |
d52b0d
|
283 |
hidePathForChildren: true, |
31e271
|
284 |
}, |
72ac24
|
285 |
children: [ |
无 |
286 |
{ |
|
287 |
path: 'testTab/id1', |
|
288 |
name: 'TestTab1', |
4d2fb0
|
289 |
component: () => import('@/views/demo/feat/tab-params/index.vue'), |
72ac24
|
290 |
meta: { |
无 |
291 |
title: t('routes.demo.feat.tab1'), |
|
292 |
carryParam: true, |
|
293 |
ignoreRoute: true, |
|
294 |
}, |
|
295 |
}, |
|
296 |
{ |
|
297 |
path: 'testTab/id2', |
|
298 |
name: 'TestTab2', |
4d2fb0
|
299 |
component: () => import('@/views/demo/feat/tab-params/index.vue'), |
72ac24
|
300 |
meta: { |
无 |
301 |
title: t('routes.demo.feat.tab2'), |
|
302 |
carryParam: true, |
|
303 |
ignoreRoute: true, |
|
304 |
}, |
|
305 |
}, |
|
306 |
], |
31e271
|
307 |
}, |
48fcd7
|
308 |
{ |
L |
309 |
path: 'testParam/:id', |
|
310 |
name: 'TestParam', |
|
311 |
component: getParentLayout('TestParam'), |
|
312 |
meta: { |
|
313 |
title: t('routes.demo.feat.menu'), |
|
314 |
ignoreKeepAlive: true, |
|
315 |
}, |
|
316 |
children: [ |
|
317 |
{ |
|
318 |
path: 'sub1', |
|
319 |
name: 'TestParam_1', |
4d2fb0
|
320 |
component: () => import('@/views/demo/feat/menu-params/index.vue'), |
48fcd7
|
321 |
meta: { |
L |
322 |
title: t('routes.demo.feat.menu1'), |
|
323 |
ignoreKeepAlive: true, |
|
324 |
}, |
|
325 |
}, |
|
326 |
{ |
|
327 |
path: 'sub2', |
|
328 |
name: 'TestParam_2', |
4d2fb0
|
329 |
component: () => import('@/views/demo/feat/menu-params/index.vue'), |
48fcd7
|
330 |
meta: { |
L |
331 |
title: t('routes.demo.feat.menu2'), |
|
332 |
ignoreKeepAlive: true, |
|
333 |
}, |
|
334 |
}, |
|
335 |
], |
|
336 |
}, |
2f6253
|
337 |
], |
fc4666
|
338 |
}; |
V |
339 |
|
|
340 |
export default feat; |