fileConfig.data.ts 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. import { reactive } from 'vue'
  2. import { useI18n } from '@/hooks/web/useI18n'
  3. import { required } from '@/utils/formRules'
  4. import { CrudSchema, useCrudSchemas } from '@/hooks/web/useCrudSchemas'
  5. import { DICT_TYPE } from '@/utils/dict'
  6. const { t } = useI18n() // 国际化
  7. // 表单校验
  8. export const rules = reactive({
  9. name: [required],
  10. storage: [required],
  11. config: {
  12. basePath: [required],
  13. host: [required],
  14. port: [required],
  15. username: [required],
  16. password: [required],
  17. mode: [required],
  18. endpoint: [required],
  19. bucket: [required],
  20. accessKey: [required],
  21. accessSecret: [required],
  22. domain: [required]
  23. }
  24. })
  25. // CrudSchema
  26. const crudSchemas = reactive<CrudSchema[]>([
  27. {
  28. label: t('common.index'),
  29. field: 'id',
  30. type: 'index',
  31. form: {
  32. show: false
  33. },
  34. detail: {
  35. show: false
  36. }
  37. },
  38. {
  39. label: '配置名',
  40. field: 'name',
  41. search: {
  42. show: true
  43. }
  44. },
  45. {
  46. label: '存储器',
  47. field: 'storage',
  48. dictType: DICT_TYPE.INFRA_FILE_STORAGE,
  49. search: {
  50. show: true
  51. }
  52. },
  53. {
  54. label: '主配置',
  55. field: 'primary',
  56. dictType: DICT_TYPE.INFRA_BOOLEAN_STRING
  57. },
  58. {
  59. label: t('form.remark'),
  60. field: 'remark',
  61. form: {
  62. component: 'Input',
  63. componentProps: {
  64. type: 'textarea',
  65. rows: 4
  66. },
  67. colProps: {
  68. span: 24
  69. }
  70. }
  71. },
  72. {
  73. label: t('common.createTime'),
  74. field: 'createTime',
  75. form: {
  76. show: false
  77. },
  78. search: {
  79. show: true,
  80. component: 'DatePicker',
  81. componentProps: {
  82. type: 'datetimerange',
  83. valueFormat: 'YYYY-MM-DD HH:mm:ss',
  84. defaultTime: [new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 2, 1, 23, 59, 59)]
  85. }
  86. }
  87. },
  88. {
  89. label: t('table.action'),
  90. field: 'action',
  91. width: '400px',
  92. form: {
  93. show: false
  94. },
  95. detail: {
  96. show: false
  97. }
  98. }
  99. ])
  100. export const { allSchemas } = useCrudSchemas(crudSchemas)