|
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
|
icon: 'ion:git-compare-outline',
|
vben
authored
|
13
|
title: t('routes.demo.feat.feat'),
|
|
14
|
},
|
vben
authored
|
15
|
|
vben
authored
|
16
|
children: [
|
|
17
|
{
|
vben
authored
|
18
|
path: 'icon',
|
vben
authored
|
19
|
name: 'IconDemo',
|
vben
authored
|
20
|
component: () => import('/@/views/demo/feat/icon/index.vue'),
|
vben
authored
|
21
|
meta: {
|
vben
authored
|
22
|
title: t('routes.demo.feat.icon'),
|
vben
authored
|
23
24
25
|
},
},
{
|
Vben
authored
|
26
27
28
29
30
31
32
33
|
path: 'ws',
name: 'WebSocket',
component: () => import('/@/views/demo/feat/ws/index.vue'),
meta: {
title: t('routes.demo.feat.ws'),
},
},
{
|
vben
authored
|
34
35
36
37
38
39
40
41
|
path: 'session-timeout',
name: 'SessionTimeout',
component: () => import('/@/views/demo/feat/session-timeout/index.vue'),
meta: {
title: t('routes.demo.feat.sessionTimeout'),
},
},
{
|
Vben
authored
|
42
43
44
45
46
47
48
49
|
path: 'print',
name: 'Print',
component: () => import('/@/views/demo/feat/print/index.vue'),
meta: {
title: t('routes.demo.feat.print'),
},
},
{
|
vben
authored
|
50
|
path: 'tabs',
|
nebv
authored
|
51
52
53
|
name: 'TabsDemo',
component: () => import('/@/views/demo/feat/tabs/index.vue'),
meta: {
|
vben
authored
|
54
|
title: t('routes.demo.feat.tabs'),
|
nebv
authored
|
55
56
|
},
},
|
vben
authored
|
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
{
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',
component: getParentLayout('BreadcrumbChildrenDemo'),
redirect: '/feat/breadcrumb/children',
meta: {
title: t('routes.demo.feat.breadcrumbFlat'),
},
children: [
{
path: '',
name: 'BreadcrumbChildren',
component: () => import('/@/views/demo/feat/breadcrumb/ChildrenList.vue'),
meta: {
title: t('routes.demo.feat.breadcrumbChildren'),
|
Vben
authored
|
101
|
// hideBreadcrumb: true,
|
vben
authored
|
102
103
104
105
106
107
108
109
110
111
|
},
},
{
path: 'childrenDetail',
name: 'BreadcrumbChildrenDetailDemo',
component: () => import('/@/views/demo/feat/breadcrumb/ChildrenListDetail.vue'),
meta: {
currentActiveMenu: '/feat/breadcrumb/children',
title: t('routes.demo.feat.breadcrumbChildrenDetail'),
hideTab: true,
|
Vben
authored
|
112
|
// hideMenu: true,
|
vben
authored
|
113
114
115
116
117
118
|
},
},
],
},
],
},
|
nebv
authored
|
119
120
|
{
|
vben
authored
|
121
|
path: 'context-menu',
|
|
122
123
124
|
name: 'ContextMenuDemo',
component: () => import('/@/views/demo/feat/context-menu/index.vue'),
meta: {
|
vben
authored
|
125
|
title: t('routes.demo.feat.contextMenu'),
|
|
126
127
128
|
},
},
{
|
vben
authored
|
129
|
path: 'download',
|
vben
authored
|
130
131
132
|
name: 'DownLoadDemo',
component: () => import('/@/views/demo/feat/download/index.vue'),
meta: {
|
vben
authored
|
133
|
title: t('routes.demo.feat.download'),
|
vben
authored
|
134
135
136
|
},
},
{
|
vben
authored
|
137
|
path: 'click-out-side',
|
vben
authored
|
138
|
name: 'ClickOutSideDemo',
|
vben
authored
|
139
|
component: () => import('/@/views/demo/feat/click-out-side/index.vue'),
|
vben
authored
|
140
|
meta: {
|
vben
authored
|
141
|
title: t('routes.demo.feat.clickOutSide'),
|
vben
authored
|
142
143
144
|
},
},
{
|
vben
authored
|
145
|
path: 'img-preview',
|
|
146
147
148
|
name: 'ImgPreview',
component: () => import('/@/views/demo/feat/img-preview/index.vue'),
meta: {
|
vben
authored
|
149
|
title: t('routes.demo.feat.imgPreview'),
|
|
150
151
152
|
},
},
{
|
vben
authored
|
153
|
path: 'copy',
|
|
154
155
156
|
name: 'CopyDemo',
component: () => import('/@/views/demo/feat/copy/index.vue'),
meta: {
|
vben
authored
|
157
|
title: t('routes.demo.feat.copy'),
|
|
158
159
160
|
},
},
{
|
vben
authored
|
161
|
path: 'msg',
|
|
162
163
164
|
name: 'MsgDemo',
component: () => import('/@/views/demo/feat/msg/index.vue'),
meta: {
|
vben
authored
|
165
|
title: t('routes.demo.feat.msg'),
|
|
166
167
168
|
},
},
{
|
vben
authored
|
169
|
path: 'watermark',
|
|
170
171
172
|
name: 'WatermarkDemo',
component: () => import('/@/views/demo/feat/watermark/index.vue'),
meta: {
|
vben
authored
|
173
|
title: t('routes.demo.feat.watermark'),
|
|
174
175
176
|
},
},
{
|
vben
authored
|
177
178
179
180
181
182
183
184
|
path: 'ripple',
name: 'RippleDemo',
component: () => import('/@/views/demo/feat/ripple/index.vue'),
meta: {
title: t('routes.demo.feat.ripple'),
},
},
{
|
vben
authored
|
185
|
path: 'full-screen',
|
|
186
187
188
|
name: 'FullScreenDemo',
component: () => import('/@/views/demo/feat/full-screen/index.vue'),
meta: {
|
vben
authored
|
189
|
title: t('routes.demo.feat.fullScreen'),
|
|
190
191
|
},
},
|
vben
authored
|
192
|
{
|
vben
authored
|
193
|
path: 'error-log',
|
vben
authored
|
194
195
196
|
name: 'ErrorLog',
component: () => import('/@/views/sys/error-log/index.vue'),
meta: {
|
vben
authored
|
197
|
title: t('routes.demo.feat.errorLog'),
|
vben
authored
|
198
199
|
},
},
|
vben
authored
|
200
201
202
203
204
205
206
207
208
|
{
path: 'excel',
name: 'Excel',
redirect: '/feat/excel/customExport',
component: getParentLayout('Excel'),
meta: {
// icon: 'mdi:microsoft-excel',
title: t('routes.demo.excel.excel'),
},
|
vben
authored
|
209
|
|
vben
authored
|
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
|
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
|
245
|
{
|
vben
authored
|
246
|
path: 'testTab/:id',
|
vben
authored
|
247
248
249
|
name: 'TestTab',
component: () => import('/@/views/demo/feat/tab-params/index.vue'),
meta: {
|
vben
authored
|
250
|
title: t('routes.demo.feat.tab'),
|
vben
authored
|
251
|
carryParam: true,
|
vben
authored
|
252
253
|
},
},
|
|
254
|
],
|
vben
authored
|
255
256
257
|
};
export default feat;
|