props.ts 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /* eslint-disable @typescript-eslint/no-unused-vars */
  2. import type { UploadItem } from './types'
  3. export const imageUploadProps = {
  4. // 已上传列表
  5. modelValue: {
  6. type: Array as PropType<UploadItem[]>,
  7. required: true
  8. },
  9. // 是否自动上传
  10. autoUpload: {
  11. type: Boolean,
  12. default: true
  13. },
  14. // 是否只读
  15. readonly: Boolean,
  16. // 是否禁用
  17. disabled: Boolean,
  18. // 是否点击预览
  19. preview: {
  20. type: Boolean,
  21. default: true
  22. },
  23. // 可上传数量
  24. limit: {
  25. type: Number,
  26. default: 5
  27. },
  28. // 是否支持多选
  29. multiple: {
  30. type: Boolean,
  31. default: false
  32. },
  33. // 上传类型
  34. accept: {
  35. type: String,
  36. default: 'image/png,image/jpeg'
  37. },
  38. // item 样式
  39. itemStyle: Object,
  40. // 上传按钮样式
  41. buttonStyle: Object
  42. }
  43. export type ImageUploadProps = ExtractPropTypes<typeof imageUploadProps>
  44. /* 事件 */
  45. export const imageUploadEmits = {
  46. // 上传事件
  47. upload: (_value: UploadItem) => true,
  48. // 单个删除事件
  49. remove: (_value: UploadItem) => true,
  50. // 修改modelValue
  51. 'update:modelValue': (_value: UploadItem[]) => true
  52. }