index.vue 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <template>
  2. <!-- <fs-page>
  3. <fs-crud ref="crudRef" v-bind="crudBinding" />
  4. </fs-page> -->
  5. <el-upload
  6. v-model:file-list="fileList"
  7. action="#"
  8. method="post"
  9. :data="{profileId: 'xxxx'}"
  10. multiple
  11. :on-progress="onProgress"
  12. :auto-upload="true"
  13. :on-success="onSuccess"
  14. :http-request="submit"
  15. >
  16. <el-button type="primary">Click to upload</el-button>
  17. </el-upload>
  18. <el-button @click="submit">上传</el-button>
  19. </template>
  20. <script lang="ts" setup>
  21. import { ref, onMounted } from 'vue'
  22. import { useFs } from '@fast-crud/fast-crud'
  23. import { createCrudOptions } from './crud'
  24. import { request } from '/@/utils/service'
  25. import type { UploadProps, UploadUserFile, UploadFile, UploadFiles, UploadProgressEvent } from 'element-plus'
  26. const fileList = ref<UploadUserFile[]>([])
  27. const onProgress = (evt: UploadProgressEvent, uploadFile: UploadFile, uploadFiles: UploadFiles) => {
  28. console.log(evt)
  29. console.log(uploadFile)
  30. }
  31. const onSuccess = (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => {
  32. console.log(response)
  33. console.log(uploadFile)
  34. console.log(uploadFiles)
  35. }
  36. const submit = () => {
  37. const formData = new FormData();
  38. formData.append('file', fileList.value[0].raw)
  39. formData.append('profileId', 'xxxx')
  40. return request({
  41. url: 'http://127.0.0.1:8003/api/amazon/assets/upload/',
  42. headers: {
  43. 'Content-Type': 'multipart/form-data'
  44. },
  45. method: 'post',
  46. data: formData
  47. })
  48. }
  49. const { crudBinding, crudRef, crudExpose } = useFs({ createCrudOptions })
  50. onMounted(async () => {
  51. crudExpose.doRefresh()
  52. })
  53. </script>
  54. <style scoped></style>