props.ts 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. import type { PropType } from 'vue';
  2. import { FileBasicColumn } from './types';
  3. export const basicProps = {
  4. helpText: {
  5. type: String as PropType<string>,
  6. default: '',
  7. },
  8. // 文件最大多少MB
  9. maxSize: {
  10. type: Number as PropType<number>,
  11. default: 2,
  12. },
  13. // 最大数量的文件,Infinity不限制
  14. maxNumber: {
  15. type: Number as PropType<number>,
  16. default: Infinity,
  17. },
  18. // 根据后缀,或者其他
  19. accept: {
  20. type: Array as PropType<string[]>,
  21. default: () => [],
  22. },
  23. multiple: {
  24. type: Boolean as PropType<boolean>,
  25. default: true,
  26. },
  27. uploadParams: {
  28. type: Object as PropType<any>,
  29. default: {},
  30. },
  31. api: {
  32. type: Function as PropType<PromiseFn>,
  33. default: null,
  34. required: true,
  35. },
  36. };
  37. export const uploadContainerProps = {
  38. value: {
  39. type: Array as PropType<string[]>,
  40. default: () => [],
  41. },
  42. ...basicProps,
  43. showPreviewNumber: {
  44. type: Boolean as PropType<boolean>,
  45. default: true,
  46. },
  47. emptyHidePreview: {
  48. type: Boolean as PropType<boolean>,
  49. default: false,
  50. },
  51. };
  52. export const previewProps = {
  53. value: {
  54. type: Array as PropType<string[]>,
  55. default: () => [],
  56. },
  57. };
  58. export const fileListProps = {
  59. columns: {
  60. type: [Array] as PropType<FileBasicColumn[]>,
  61. default: null,
  62. },
  63. actionColumn: {
  64. type: Object as PropType<FileBasicColumn>,
  65. default: null,
  66. },
  67. dataSource: {
  68. type: Array as PropType<any[]>,
  69. default: null,
  70. },
  71. };