Vben
2021-03-01 37669d067c43a3807df848f0caf67cbeab3e1b33
提交 | 用户 | age
2f6253 1 import type { AppRouteModule } from '/@/router/types';
2
e6db0d 3 import { getParentLayout, LAYOUT } from '/@/router/constant';
a0b05e 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: {
37669d 12     icon: 'ion:git-compare-outline',
a0b05e 13     title: t('routes.demo.feat.feat'),
2f6253 14   },
c303ec 15   children: [
2f6253 16     {
c303ec 17       path: 'icon',
949db9 18       name: 'IconDemo',
f64568 19       component: () => import('/@/views/demo/feat/icon/index.vue'),
949db9 20       meta: {
a0b05e 21         title: t('routes.demo.feat.icon'),
949db9 22       },
V 23     },
24     {
c303ec 25       path: 'tabs',
02d6a3 26       name: 'TabsDemo',
N 27       component: () => import('/@/views/demo/feat/tabs/index.vue'),
28       meta: {
a0b05e 29         title: t('routes.demo.feat.tabs'),
02d6a3 30       },
N 31     },
819bcb 32     {
V 33       path: 'breadcrumb',
34       name: 'BreadcrumbDemo',
35       redirect: '/feat/breadcrumb/flat',
36       component: getParentLayout('BreadcrumbDemo'),
37       meta: {
38         title: t('routes.demo.feat.breadcrumb'),
39       },
40
41       children: [
42         {
43           path: 'flat',
44           name: 'BreadcrumbFlatDemo',
45           component: () => import('/@/views/demo/feat/breadcrumb/FlatList.vue'),
46           meta: {
47             title: t('routes.demo.feat.breadcrumbFlat'),
48           },
49         },
50         {
51           path: 'flatDetail',
52           name: 'BreadcrumbFlatDetailDemo',
53           component: () => import('/@/views/demo/feat/breadcrumb/FlatListDetail.vue'),
54           meta: {
55             title: t('routes.demo.feat.breadcrumbFlatDetail'),
56             hideMenu: true,
57             hideTab: true,
58             currentActiveMenu: '/feat/breadcrumb/flat',
59           },
60         },
61         {
62           path: 'children',
63           name: 'BreadcrumbChildrenDemo',
64           component: getParentLayout('BreadcrumbChildrenDemo'),
65           redirect: '/feat/breadcrumb/children',
66           meta: {
67             title: t('routes.demo.feat.breadcrumbFlat'),
68           },
69           children: [
70             {
71               path: '',
72               name: 'BreadcrumbChildren',
73               component: () => import('/@/views/demo/feat/breadcrumb/ChildrenList.vue'),
74               meta: {
75                 title: t('routes.demo.feat.breadcrumbChildren'),
76                 hideBreadcrumb: true,
77               },
78             },
79             {
80               path: 'childrenDetail',
81               name: 'BreadcrumbChildrenDetailDemo',
82               component: () => import('/@/views/demo/feat/breadcrumb/ChildrenListDetail.vue'),
83               meta: {
84                 currentActiveMenu: '/feat/breadcrumb/children',
85                 title: t('routes.demo.feat.breadcrumbChildrenDetail'),
86                 hideTab: true,
87                 hideMenu: true,
88               },
89             },
90           ],
91         },
92       ],
93     },
02d6a3 94
N 95     {
c303ec 96       path: 'context-menu',
2f6253 97       name: 'ContextMenuDemo',
98       component: () => import('/@/views/demo/feat/context-menu/index.vue'),
99       meta: {
a0b05e 100         title: t('routes.demo.feat.contextMenu'),
2f6253 101       },
102     },
103     {
c303ec 104       path: 'download',
db3092 105       name: 'DownLoadDemo',
V 106       component: () => import('/@/views/demo/feat/download/index.vue'),
107       meta: {
a0b05e 108         title: t('routes.demo.feat.download'),
db3092 109       },
V 110     },
111     {
c303ec 112       path: 'click-out-side',
949db9 113       name: 'ClickOutSideDemo',
f64568 114       component: () => import('/@/views/demo/feat/click-out-side/index.vue'),
949db9 115       meta: {
a0b05e 116         title: t('routes.demo.feat.clickOutSide'),
949db9 117       },
V 118     },
119     {
c303ec 120       path: 'img-preview',
2f6253 121       name: 'ImgPreview',
122       component: () => import('/@/views/demo/feat/img-preview/index.vue'),
123       meta: {
a0b05e 124         title: t('routes.demo.feat.imgPreview'),
2f6253 125       },
126     },
127     {
c303ec 128       path: 'copy',
2f6253 129       name: 'CopyDemo',
130       component: () => import('/@/views/demo/feat/copy/index.vue'),
131       meta: {
a0b05e 132         title: t('routes.demo.feat.copy'),
2f6253 133       },
134     },
135     {
c303ec 136       path: 'msg',
2f6253 137       name: 'MsgDemo',
138       component: () => import('/@/views/demo/feat/msg/index.vue'),
139       meta: {
a0b05e 140         title: t('routes.demo.feat.msg'),
2f6253 141       },
142     },
143     {
c303ec 144       path: 'watermark',
2f6253 145       name: 'WatermarkDemo',
146       component: () => import('/@/views/demo/feat/watermark/index.vue'),
147       meta: {
a0b05e 148         title: t('routes.demo.feat.watermark'),
2f6253 149       },
150     },
151     {
2e79c9 152       path: 'ripple',
V 153       name: 'RippleDemo',
154       component: () => import('/@/views/demo/feat/ripple/index.vue'),
155       meta: {
156         title: t('routes.demo.feat.ripple'),
157       },
158     },
159     {
c303ec 160       path: 'full-screen',
2f6253 161       name: 'FullScreenDemo',
162       component: () => import('/@/views/demo/feat/full-screen/index.vue'),
163       meta: {
a0b05e 164         title: t('routes.demo.feat.fullScreen'),
2f6253 165       },
166     },
31e271 167     {
c303ec 168       path: 'error-log',
bcab4b 169       name: 'ErrorLog',
V 170       component: () => import('/@/views/sys/error-log/index.vue'),
171       meta: {
a0b05e 172         title: t('routes.demo.feat.errorLog'),
bcab4b 173       },
V 174     },
daf2b1 175     {
V 176       path: 'excel',
177       name: 'Excel',
178       redirect: '/feat/excel/customExport',
179       component: getParentLayout('Excel'),
180       meta: {
181         // icon: 'mdi:microsoft-excel',
182         title: t('routes.demo.excel.excel'),
183       },
e6db0d 184
daf2b1 185       children: [
V 186         {
187           path: 'customExport',
188           name: 'CustomExport',
189           component: () => import('/@/views/demo/excel/CustomExport.vue'),
190           meta: {
191             title: t('routes.demo.excel.customExport'),
192           },
193         },
194         {
195           path: 'jsonExport',
196           name: 'JsonExport',
197           component: () => import('/@/views/demo/excel/JsonExport.vue'),
198           meta: {
199             title: t('routes.demo.excel.jsonExport'),
200           },
201         },
202         {
203           path: 'arrayExport',
204           name: 'ArrayExport',
205           component: () => import('/@/views/demo/excel/ArrayExport.vue'),
206           meta: {
207             title: t('routes.demo.excel.arrayExport'),
208           },
209         },
210         {
211           path: 'importExcel',
212           name: 'ImportExcel',
213           component: () => import('/@/views/demo/excel/ImportExcel.vue'),
214           meta: {
215             title: t('routes.demo.excel.importExcel'),
216           },
217         },
218       ],
219     },
e6db0d 220     {
c303ec 221       path: 'testTab/:id',
31e271 222       name: 'TestTab',
V 223       component: () => import('/@/views/demo/feat/tab-params/index.vue'),
224       meta: {
a0b05e 225         title: t('routes.demo.feat.tab'),
b8353f 226         carryParam: true,
31e271 227       },
V 228     },
2f6253 229   ],
fc4666 230 };
V 231
232 export default feat;