upload-bim.vue 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. <template>
  2. <a-form-item :label="$t('scene.nameLabel1')" required>
  3. <a-input
  4. :value="data.name"
  5. name="radioGroup"
  6. :placeholder="$t('scene.nameLabel1Rule', { max: 40 })"
  7. :maxlength="40"
  8. @update:value="name => $emit('update:data', { ...data, name })"
  9. />
  10. </a-form-item>
  11. <a-form-item :label="$t('scene.fileLabel')" required>
  12. <Upload
  13. :disabled="update"
  14. :file="data.file"
  15. :max-size="5 * 1024"
  16. :extnames="['ifc', 'fbx']"
  17. @update:file="file => $emit('update:data', { ...data, file })"
  18. />
  19. </a-form-item>
  20. </template>
  21. <script setup lang="ts">
  22. import Upload from '@/components/upload/index.vue'
  23. import { BimUploadData } from '@/store'
  24. import type { BUploadProps } from '@/components/upload/index.vue'
  25. export type UploadData = Pick<BUploadProps, 'file'> &
  26. Omit<BimUploadData, 'file'>
  27. defineOptions<{ name: 'project-bim-upload' }>()
  28. defineProps<{ data: UploadData; update?: boolean }>()
  29. defineEmits<{ (e: 'update:data', value: UploadData): void }>()
  30. </script>