account.data.ts 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
  2. import { dateFormatter } from '@/utils/formatTime'
  3. const { t } = useI18n() // 国际化
  4. // 表单校验
  5. export const rules = reactive({
  6. mail: [
  7. { required: true, message: t('profile.rules.mail'), trigger: 'blur' },
  8. {
  9. type: 'email',
  10. message: t('profile.rules.truemail'),
  11. trigger: ['blur', 'change']
  12. }
  13. ],
  14. username: [required],
  15. password: [required],
  16. host: [required],
  17. port: [required],
  18. sslEnable: [required]
  19. })
  20. // CrudSchema:https://doc.iocoder.cn/vue3/crud-schema/
  21. const crudSchemas = reactive<CrudSchema[]>([
  22. {
  23. label: '邮箱',
  24. field: 'mail',
  25. isSearch: true
  26. },
  27. {
  28. label: '用户名',
  29. field: 'username',
  30. isSearch: true
  31. },
  32. {
  33. label: '密码',
  34. field: 'password',
  35. isTable: false
  36. },
  37. {
  38. label: 'SMTP 服务器域名',
  39. field: 'host'
  40. },
  41. {
  42. label: 'SMTP 服务器端口',
  43. field: 'port',
  44. form: {
  45. component: 'InputNumber',
  46. value: 465
  47. }
  48. },
  49. {
  50. label: '是否开启 SSL',
  51. field: 'sslEnable',
  52. dictType: DICT_TYPE.INFRA_BOOLEAN_STRING,
  53. dictClass: 'boolean',
  54. form: {
  55. component: 'Radio'
  56. }
  57. },
  58. {
  59. label: '创建时间',
  60. field: 'createTime',
  61. isForm: false,
  62. formatter: dateFormatter,
  63. detail: {
  64. dateFormat: 'YYYY-MM-DD HH:mm:ss'
  65. }
  66. },
  67. {
  68. label: '操作',
  69. field: 'action',
  70. isForm: false,
  71. isDetail: false
  72. }
  73. ])
  74. export const { allSchemas } = useCrudSchemas(crudSchemas)