ImageUpload.tsx 770 B

1234567891011121314151617181920212223242526272829
  1. import type { FormField } from '@/components/FormParser/type'
  2. import { showToast } from 'vant'
  3. export const useImageUpload = function (field: FormField) {
  4. const { props } = field
  5. props.accept = 'image/*'
  6. if (props.limit > 1) {
  7. props.multiple = true
  8. props.maxCount = props.limit
  9. delete props.limit
  10. }
  11. if (props.size > 0) {
  12. props.maxSize = props.size * 1024 * 1024
  13. delete props.size
  14. }
  15. props.onOversize = () => {
  16. showToast(`文件大小不能超过 ${props.size}mb`)
  17. }
  18. props.beforeRead = (file: File) => {
  19. if (props.accept) {
  20. if (props.accept.includes(file.type)) {
  21. return true
  22. } else {
  23. showToast(`文件类型错误,请上传${props.accept}格式文件`)
  24. return false
  25. }
  26. }
  27. }
  28. }