huangyinfeng
2024-09-18 ccfd07feeaa670a3d56548d7fea0936e299df95b
提交 | 用户 | 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;