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