examples.ts 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386
  1. import type { RouteRecordRaw } from 'vue-router';
  2. import { $t } from '#/locales';
  3. const routes: RouteRecordRaw[] = [
  4. {
  5. meta: {
  6. icon: 'ion:layers-outline',
  7. keepAlive: true,
  8. order: 1000,
  9. title: $t('examples.title'),
  10. },
  11. name: 'Examples',
  12. path: '/examples',
  13. children: [
  14. {
  15. name: 'FormExample',
  16. path: '/examples/form',
  17. meta: {
  18. icon: 'mdi:form-select',
  19. title: $t('examples.form.title'),
  20. },
  21. children: [
  22. {
  23. name: 'FormBasicExample',
  24. path: '/examples/form/basic',
  25. component: () => import('#/views/examples/form/basic.vue'),
  26. meta: {
  27. title: $t('examples.form.basic'),
  28. },
  29. },
  30. {
  31. name: 'FormQueryExample',
  32. path: '/examples/form/query',
  33. component: () => import('#/views/examples/form/query.vue'),
  34. meta: {
  35. title: $t('examples.form.query'),
  36. },
  37. },
  38. {
  39. name: 'FormValueFormatExample',
  40. path: '/examples/form/value-format',
  41. component: () => import('#/views/examples/form/value-format.vue'),
  42. meta: {
  43. title: $t('examples.form.valueFormat'),
  44. },
  45. },
  46. {
  47. name: 'FormRulesExample',
  48. path: '/examples/form/rules',
  49. component: () => import('#/views/examples/form/rules.vue'),
  50. meta: {
  51. title: $t('examples.form.rules'),
  52. },
  53. },
  54. {
  55. name: 'FormDynamicExample',
  56. path: '/examples/form/dynamic',
  57. component: () => import('#/views/examples/form/dynamic.vue'),
  58. meta: {
  59. title: $t('examples.form.dynamic'),
  60. },
  61. },
  62. {
  63. name: 'FormLayoutExample',
  64. path: '/examples/form/custom-layout',
  65. component: () => import('#/views/examples/form/custom-layout.vue'),
  66. meta: {
  67. title: $t('examples.form.layout'),
  68. },
  69. },
  70. {
  71. name: 'FormCustomExample',
  72. path: '/examples/form/custom',
  73. component: () => import('#/views/examples/form/custom.vue'),
  74. meta: {
  75. title: $t('examples.form.custom'),
  76. },
  77. },
  78. {
  79. name: 'FormApiExample',
  80. path: '/examples/form/api',
  81. component: () => import('#/views/examples/form/api.vue'),
  82. meta: {
  83. title: $t('examples.form.api'),
  84. },
  85. },
  86. {
  87. name: 'FormMergeExample',
  88. path: '/examples/form/merge',
  89. component: () => import('#/views/examples/form/merge.vue'),
  90. meta: {
  91. title: $t('examples.form.merge'),
  92. },
  93. },
  94. {
  95. name: 'FormScrollToErrorExample',
  96. path: '/examples/form/scroll-to-error-test',
  97. component: () =>
  98. import('#/views/examples/form/scroll-to-error-test.vue'),
  99. meta: {
  100. title: $t('examples.form.scrollToError'),
  101. },
  102. },
  103. {
  104. name: 'FormCollapsibleExample',
  105. path: '/examples/form/collapsible-test',
  106. component: () => import('#/views/examples/form/collapsible.vue'),
  107. meta: {
  108. title: $t('examples.form.collapsible'),
  109. },
  110. },
  111. ],
  112. },
  113. {
  114. name: 'VxeTableExample',
  115. path: '/examples/vxe-table',
  116. meta: {
  117. icon: 'lucide:table',
  118. title: $t('examples.vxeTable.title'),
  119. },
  120. children: [
  121. {
  122. name: 'VxeTableBasicExample',
  123. path: '/examples/vxe-table/basic',
  124. component: () => import('#/views/examples/vxe-table/basic.vue'),
  125. meta: {
  126. title: $t('examples.vxeTable.basic'),
  127. },
  128. },
  129. {
  130. name: 'VxeTableRemoteExample',
  131. path: '/examples/vxe-table/remote',
  132. component: () => import('#/views/examples/vxe-table/remote.vue'),
  133. meta: {
  134. title: $t('examples.vxeTable.remote'),
  135. },
  136. },
  137. {
  138. name: 'VxeTableTreeExample',
  139. path: '/examples/vxe-table/tree',
  140. component: () => import('#/views/examples/vxe-table/tree.vue'),
  141. meta: {
  142. title: $t('examples.vxeTable.tree'),
  143. },
  144. },
  145. {
  146. name: 'VxeTableFixedExample',
  147. path: '/examples/vxe-table/fixed',
  148. component: () => import('#/views/examples/vxe-table/fixed.vue'),
  149. meta: {
  150. title: $t('examples.vxeTable.fixed'),
  151. },
  152. },
  153. {
  154. name: 'VxeTableCustomCellExample',
  155. path: '/examples/vxe-table/custom-cell',
  156. component: () =>
  157. import('#/views/examples/vxe-table/custom-cell.vue'),
  158. meta: {
  159. title: $t('examples.vxeTable.custom-cell'),
  160. },
  161. },
  162. {
  163. name: 'VxeTableFormExample',
  164. path: '/examples/vxe-table/form',
  165. component: () => import('#/views/examples/vxe-table/form.vue'),
  166. meta: {
  167. title: $t('examples.vxeTable.form'),
  168. },
  169. },
  170. {
  171. name: 'VxeTableEditCellExample',
  172. path: '/examples/vxe-table/edit-cell',
  173. component: () => import('#/views/examples/vxe-table/edit-cell.vue'),
  174. meta: {
  175. title: $t('examples.vxeTable.editCell'),
  176. },
  177. },
  178. {
  179. name: 'VxeTableEditRowExample',
  180. path: '/examples/vxe-table/edit-row',
  181. component: () => import('#/views/examples/vxe-table/edit-row.vue'),
  182. meta: {
  183. title: $t('examples.vxeTable.editRow'),
  184. },
  185. },
  186. {
  187. name: 'VxeTableVirtualExample',
  188. path: '/examples/vxe-table/virtual',
  189. component: () => import('#/views/examples/vxe-table/virtual.vue'),
  190. meta: {
  191. title: $t('examples.vxeTable.virtual'),
  192. },
  193. },
  194. {
  195. name: 'VxeTableViewedExample',
  196. path: '/examples/vxe-table/viewed',
  197. component: () => import('#/views/examples/vxe-table/viewed.vue'),
  198. meta: {
  199. title: $t('examples.vxeTable.viewed'),
  200. },
  201. },
  202. ],
  203. },
  204. {
  205. name: 'CaptchaExample',
  206. path: '/examples/captcha',
  207. meta: {
  208. icon: 'logos:recaptcha',
  209. title: $t('examples.captcha.title'),
  210. },
  211. children: [
  212. {
  213. name: 'DragVerifyExample',
  214. path: '/examples/captcha/slider',
  215. component: () =>
  216. import('#/views/examples/captcha/slider-captcha.vue'),
  217. meta: {
  218. title: $t('examples.captcha.sliderCaptcha'),
  219. },
  220. },
  221. {
  222. name: 'RotateVerifyExample',
  223. path: '/examples/captcha/slider-rotate',
  224. component: () =>
  225. import('#/views/examples/captcha/slider-rotate-captcha.vue'),
  226. meta: {
  227. title: $t('examples.captcha.sliderRotateCaptcha'),
  228. },
  229. },
  230. {
  231. name: 'TranslateVerifyExample',
  232. path: '/examples/captcha/slider-translate',
  233. component: () =>
  234. import('#/views/examples/captcha/slider-translate-captcha.vue'),
  235. meta: {
  236. title: $t('examples.captcha.sliderTranslateCaptcha'),
  237. },
  238. },
  239. {
  240. name: 'CaptchaPointSelectionExample',
  241. path: '/examples/captcha/point-selection',
  242. component: () =>
  243. import('#/views/examples/captcha/point-selection-captcha.vue'),
  244. meta: {
  245. title: $t('examples.captcha.pointSelection'),
  246. },
  247. },
  248. ],
  249. },
  250. {
  251. name: 'ModalExample',
  252. path: '/examples/modal',
  253. component: () => import('#/views/examples/modal/index.vue'),
  254. meta: {
  255. icon: 'system-uicons:window-content',
  256. keepAlive: true,
  257. title: $t('examples.modal.title'),
  258. },
  259. },
  260. {
  261. name: 'DrawerExample',
  262. path: '/examples/drawer',
  263. component: () => import('#/views/examples/drawer/index.vue'),
  264. meta: {
  265. icon: 'iconoir:drawer',
  266. keepAlive: true,
  267. title: $t('examples.drawer.title'),
  268. },
  269. },
  270. {
  271. name: 'EllipsisExample',
  272. path: '/examples/ellipsis',
  273. component: () => import('#/views/examples/ellipsis/index.vue'),
  274. meta: {
  275. icon: 'ion:ellipsis-horizontal',
  276. title: $t('examples.ellipsis.title'),
  277. },
  278. },
  279. {
  280. name: 'VueResizeDemo',
  281. path: '/demos/resize/basic',
  282. component: () => import('#/views/examples/resize/basic.vue'),
  283. meta: {
  284. icon: 'material-symbols:resize',
  285. title: $t('examples.resize.title'),
  286. },
  287. },
  288. {
  289. name: 'ColPageDemo',
  290. path: '/examples/layout/col-page',
  291. component: () => import('#/views/examples/layout/col-page.vue'),
  292. meta: {
  293. badge: 'Alpha',
  294. badgeVariants: 'destructive',
  295. icon: 'material-symbols:horizontal-distribute',
  296. title: $t('examples.layout.col-page'),
  297. },
  298. },
  299. {
  300. name: 'TippyDemo',
  301. path: '/examples/tippy',
  302. component: () => import('#/views/examples/tippy/index.vue'),
  303. meta: {
  304. icon: 'mdi:message-settings-outline',
  305. title: 'Tippy',
  306. },
  307. },
  308. {
  309. name: 'JsonViewer',
  310. path: '/examples/json-viewer',
  311. component: () => import('#/views/examples/json-viewer/index.vue'),
  312. meta: {
  313. icon: 'tabler:json',
  314. title: 'JsonViewer',
  315. },
  316. },
  317. {
  318. name: 'Motion',
  319. path: '/examples/motion',
  320. component: () => import('#/views/examples/motion/index.vue'),
  321. meta: {
  322. icon: 'mdi:animation-play',
  323. title: 'Motion',
  324. },
  325. },
  326. {
  327. name: 'CountTo',
  328. path: '/examples/count-to',
  329. component: () => import('#/views/examples/count-to/index.vue'),
  330. meta: {
  331. icon: 'mdi:animation-play',
  332. title: 'CountTo',
  333. },
  334. },
  335. {
  336. name: 'Loading',
  337. path: '/examples/loading',
  338. component: () => import('#/views/examples/loading/index.vue'),
  339. meta: {
  340. icon: 'mdi:circle-double',
  341. title: 'Loading',
  342. },
  343. },
  344. {
  345. name: 'ButtonGroup',
  346. path: '/examples/button-group',
  347. component: () => import('#/views/examples/button-group/index.vue'),
  348. meta: {
  349. icon: 'mdi:check-circle',
  350. title: $t('examples.button-group.title'),
  351. },
  352. },
  353. {
  354. name: 'ContextMenu',
  355. path: '/examples/context-menu',
  356. component: () => import('#/views/examples/context-menu/index.vue'),
  357. meta: {
  358. icon: 'mdi:menu',
  359. title: $t('examples.function.contentMenu'),
  360. },
  361. },
  362. {
  363. name: 'CropperDemo',
  364. path: '/examples/cropper',
  365. component: () => import('#/views/examples/cropper/index.vue'),
  366. meta: {
  367. icon: 'mdi:crop',
  368. title: $t('examples.cropper.title'),
  369. },
  370. },
  371. {
  372. name: 'TiptapExample',
  373. path: '/examples/tiptap',
  374. component: () => import('#/views/examples/tiptap/index.vue'),
  375. meta: {
  376. icon: 'lucide:square-pen',
  377. title: $t('examples.tiptap.title'),
  378. },
  379. },
  380. ],
  381. },
  382. ];
  383. export default routes;