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