examples.ts 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335
  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: 'FormRulesExample',
  40. path: '/examples/form/rules',
  41. component: () => import('#/views/examples/form/rules.vue'),
  42. meta: {
  43. title: $t('examples.form.rules'),
  44. },
  45. },
  46. {
  47. name: 'FormDynamicExample',
  48. path: '/examples/form/dynamic',
  49. component: () => import('#/views/examples/form/dynamic.vue'),
  50. meta: {
  51. title: $t('examples.form.dynamic'),
  52. },
  53. },
  54. {
  55. name: 'FormLayoutExample',
  56. path: '/examples/form/custom-layout',
  57. component: () => import('#/views/examples/form/custom-layout.vue'),
  58. meta: {
  59. title: $t('examples.form.layout'),
  60. },
  61. },
  62. {
  63. name: 'FormCustomExample',
  64. path: '/examples/form/custom',
  65. component: () => import('#/views/examples/form/custom.vue'),
  66. meta: {
  67. title: $t('examples.form.custom'),
  68. },
  69. },
  70. {
  71. name: 'FormApiExample',
  72. path: '/examples/form/api',
  73. component: () => import('#/views/examples/form/api.vue'),
  74. meta: {
  75. title: $t('examples.form.api'),
  76. },
  77. },
  78. {
  79. name: 'FormMergeExample',
  80. path: '/examples/form/merge',
  81. component: () => import('#/views/examples/form/merge.vue'),
  82. meta: {
  83. title: $t('examples.form.merge'),
  84. },
  85. },
  86. {
  87. name: 'FormScrollToErrorExample',
  88. path: '/examples/form/scroll-to-error-test',
  89. component: () =>
  90. import('#/views/examples/form/scroll-to-error-test.vue'),
  91. meta: {
  92. title: $t('examples.form.scrollToError'),
  93. },
  94. },
  95. ],
  96. },
  97. {
  98. name: 'VxeTableExample',
  99. path: '/examples/vxe-table',
  100. meta: {
  101. icon: 'lucide:table',
  102. title: $t('examples.vxeTable.title'),
  103. },
  104. children: [
  105. {
  106. name: 'VxeTableBasicExample',
  107. path: '/examples/vxe-table/basic',
  108. component: () => import('#/views/examples/vxe-table/basic.vue'),
  109. meta: {
  110. title: $t('examples.vxeTable.basic'),
  111. },
  112. },
  113. {
  114. name: 'VxeTableRemoteExample',
  115. path: '/examples/vxe-table/remote',
  116. component: () => import('#/views/examples/vxe-table/remote.vue'),
  117. meta: {
  118. title: $t('examples.vxeTable.remote'),
  119. },
  120. },
  121. {
  122. name: 'VxeTableTreeExample',
  123. path: '/examples/vxe-table/tree',
  124. component: () => import('#/views/examples/vxe-table/tree.vue'),
  125. meta: {
  126. title: $t('examples.vxeTable.tree'),
  127. },
  128. },
  129. {
  130. name: 'VxeTableFixedExample',
  131. path: '/examples/vxe-table/fixed',
  132. component: () => import('#/views/examples/vxe-table/fixed.vue'),
  133. meta: {
  134. title: $t('examples.vxeTable.fixed'),
  135. },
  136. },
  137. {
  138. name: 'VxeTableCustomCellExample',
  139. path: '/examples/vxe-table/custom-cell',
  140. component: () =>
  141. import('#/views/examples/vxe-table/custom-cell.vue'),
  142. meta: {
  143. title: $t('examples.vxeTable.custom-cell'),
  144. },
  145. },
  146. {
  147. name: 'VxeTableFormExample',
  148. path: '/examples/vxe-table/form',
  149. component: () => import('#/views/examples/vxe-table/form.vue'),
  150. meta: {
  151. title: $t('examples.vxeTable.form'),
  152. },
  153. },
  154. {
  155. name: 'VxeTableEditCellExample',
  156. path: '/examples/vxe-table/edit-cell',
  157. component: () => import('#/views/examples/vxe-table/edit-cell.vue'),
  158. meta: {
  159. title: $t('examples.vxeTable.editCell'),
  160. },
  161. },
  162. {
  163. name: 'VxeTableEditRowExample',
  164. path: '/examples/vxe-table/edit-row',
  165. component: () => import('#/views/examples/vxe-table/edit-row.vue'),
  166. meta: {
  167. title: $t('examples.vxeTable.editRow'),
  168. },
  169. },
  170. {
  171. name: 'VxeTableVirtualExample',
  172. path: '/examples/vxe-table/virtual',
  173. component: () => import('#/views/examples/vxe-table/virtual.vue'),
  174. meta: {
  175. title: $t('examples.vxeTable.virtual'),
  176. },
  177. },
  178. ],
  179. },
  180. {
  181. name: 'CaptchaExample',
  182. path: '/examples/captcha',
  183. meta: {
  184. icon: 'logos:recaptcha',
  185. title: $t('examples.captcha.title'),
  186. },
  187. children: [
  188. {
  189. name: 'DragVerifyExample',
  190. path: '/examples/captcha/slider',
  191. component: () =>
  192. import('#/views/examples/captcha/slider-captcha.vue'),
  193. meta: {
  194. title: $t('examples.captcha.sliderCaptcha'),
  195. },
  196. },
  197. {
  198. name: 'RotateVerifyExample',
  199. path: '/examples/captcha/slider-rotate',
  200. component: () =>
  201. import('#/views/examples/captcha/slider-rotate-captcha.vue'),
  202. meta: {
  203. title: $t('examples.captcha.sliderRotateCaptcha'),
  204. },
  205. },
  206. {
  207. name: 'TranslateVerifyExample',
  208. path: '/examples/captcha/slider-translate',
  209. component: () =>
  210. import('#/views/examples/captcha/slider-translate-captcha.vue'),
  211. meta: {
  212. title: $t('examples.captcha.sliderTranslateCaptcha'),
  213. },
  214. },
  215. {
  216. name: 'CaptchaPointSelectionExample',
  217. path: '/examples/captcha/point-selection',
  218. component: () =>
  219. import('#/views/examples/captcha/point-selection-captcha.vue'),
  220. meta: {
  221. title: $t('examples.captcha.pointSelection'),
  222. },
  223. },
  224. ],
  225. },
  226. {
  227. name: 'ModalExample',
  228. path: '/examples/modal',
  229. component: () => import('#/views/examples/modal/index.vue'),
  230. meta: {
  231. icon: 'system-uicons:window-content',
  232. keepAlive: true,
  233. title: $t('examples.modal.title'),
  234. },
  235. },
  236. {
  237. name: 'DrawerExample',
  238. path: '/examples/drawer',
  239. component: () => import('#/views/examples/drawer/index.vue'),
  240. meta: {
  241. icon: 'iconoir:drawer',
  242. keepAlive: true,
  243. title: $t('examples.drawer.title'),
  244. },
  245. },
  246. {
  247. name: 'EllipsisExample',
  248. path: '/examples/ellipsis',
  249. component: () => import('#/views/examples/ellipsis/index.vue'),
  250. meta: {
  251. icon: 'ion:ellipsis-horizontal',
  252. title: $t('examples.ellipsis.title'),
  253. },
  254. },
  255. {
  256. name: 'VueResizeDemo',
  257. path: '/demos/resize/basic',
  258. component: () => import('#/views/examples/resize/basic.vue'),
  259. meta: {
  260. icon: 'material-symbols:resize',
  261. title: $t('examples.resize.title'),
  262. },
  263. },
  264. {
  265. name: 'ColPageDemo',
  266. path: '/examples/layout/col-page',
  267. component: () => import('#/views/examples/layout/col-page.vue'),
  268. meta: {
  269. badge: 'Alpha',
  270. badgeVariants: 'destructive',
  271. icon: 'material-symbols:horizontal-distribute',
  272. title: $t('examples.layout.col-page'),
  273. },
  274. },
  275. {
  276. name: 'TippyDemo',
  277. path: '/examples/tippy',
  278. component: () => import('#/views/examples/tippy/index.vue'),
  279. meta: {
  280. icon: 'mdi:message-settings-outline',
  281. title: 'Tippy',
  282. },
  283. },
  284. {
  285. name: 'JsonViewer',
  286. path: '/examples/json-viewer',
  287. component: () => import('#/views/examples/json-viewer/index.vue'),
  288. meta: {
  289. icon: 'tabler:json',
  290. title: 'JsonViewer',
  291. },
  292. },
  293. {
  294. name: 'Motion',
  295. path: '/examples/motion',
  296. component: () => import('#/views/examples/motion/index.vue'),
  297. meta: {
  298. icon: 'mdi:animation-play',
  299. title: 'Motion',
  300. },
  301. },
  302. {
  303. name: 'CountTo',
  304. path: '/examples/count-to',
  305. component: () => import('#/views/examples/count-to/index.vue'),
  306. meta: {
  307. icon: 'mdi:animation-play',
  308. title: 'CountTo',
  309. },
  310. },
  311. {
  312. name: 'Loading',
  313. path: '/examples/loading',
  314. component: () => import('#/views/examples/loading/index.vue'),
  315. meta: {
  316. icon: 'mdi:circle-double',
  317. title: 'Loading',
  318. },
  319. },
  320. {
  321. name: 'ButtonGroup',
  322. path: '/examples/button-group',
  323. component: () => import('#/views/examples/button-group/index.vue'),
  324. meta: {
  325. icon: 'mdi:check-circle',
  326. title: $t('examples.button-group.title'),
  327. },
  328. },
  329. ],
  330. },
  331. ];
  332. export default routes;