feat.ts 7.1 KB

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