account.data.ts 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. import { CrudSchema, useCrudSchemas } from '@/hooks/web/useCrudSchemas'
  2. import { DictTag } from '@/components/DictTag'
  3. import { TableColumn } from '@/types/table'
  4. import { dateFormatter } from '@/utils/formatTime'
  5. const { t } = useI18n() // 国际化
  6. // 表单校验
  7. export const rules = reactive({
  8. mail: [
  9. { required: true, message: t('profile.rules.mail'), trigger: 'blur' },
  10. {
  11. type: 'email',
  12. message: t('profile.rules.truemail'),
  13. trigger: ['blur', 'change']
  14. }
  15. ],
  16. username: [required],
  17. password: [required],
  18. host: [required],
  19. port: [required],
  20. sslEnable: [required]
  21. })
  22. // CrudSchema
  23. const crudSchemas = reactive<CrudSchema[]>([
  24. {
  25. label: '邮箱',
  26. field: 'mail',
  27. isSearch: true
  28. },
  29. {
  30. label: '用户名',
  31. field: 'username',
  32. isSearch: true
  33. },
  34. {
  35. label: '密码',
  36. field: 'password',
  37. isTable: false
  38. },
  39. {
  40. label: 'SMTP 服务器域名',
  41. field: 'host'
  42. },
  43. {
  44. label: 'SMTP 服务器端口',
  45. field: 'port',
  46. form: {
  47. component: 'InputNumber',
  48. value: 465
  49. }
  50. },
  51. {
  52. label: '是否开启 SSL',
  53. field: 'sslEnable',
  54. formatter: (_: Recordable, __: TableColumn, cellValue: boolean) => {
  55. return h(DictTag, {
  56. type: DICT_TYPE.INFRA_BOOLEAN_STRING,
  57. value: cellValue
  58. })
  59. }
  60. },
  61. {
  62. label: '创建时间',
  63. field: 'createTime',
  64. isForm: false,
  65. formatter: dateFormatter
  66. }
  67. ])
  68. export const { allSchemas } = useCrudSchemas(crudSchemas)