my-file.vue 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <template>
  2. <view>
  3. <uni-file-picker :value="zczm" @select="imgSelect" @delete="imgDelete" :limit="limit"></uni-file-picker>
  4. </view>
  5. </template>
  6. <script>
  7. import {
  8. translate,
  9. base64ToUrl,
  10. blobToDataURI,
  11. translateAll
  12. } from '@/common/image.js'
  13. export default {
  14. name: "my-file",
  15. data() {
  16. return {
  17. zczm: [],
  18. };
  19. },
  20. props: {
  21. zczmList: {
  22. type: Array,
  23. default: () => []
  24. },
  25. limit: {
  26. type: Number,
  27. default: 1
  28. },
  29. },
  30. watch: {
  31. 'zczmList': {
  32. immediate: true,
  33. handler(newItems, oldItems) {
  34. console.log('数组发生变化', newItems, oldItems);
  35. this.zczm = []
  36. newItems.forEach(e => {
  37. this.zczm.push({
  38. url: e,
  39. extname: 'png',
  40. name: 'uniapp-logo.png'
  41. })
  42. })
  43. },
  44. deep: true // 使用深度监听,以便检测到数组内部的变化
  45. },
  46. 'zczm': {
  47. handler(newItems, oldItems) {
  48. // let zczmList = []
  49. // newItems.forEach(e => {
  50. // zczmList.push(e.url)
  51. // })
  52. // this.$emit("@recordsChange", zczmList)
  53. },
  54. deep: true // 使用深度监听,以便检测到数组内部的变化
  55. },
  56. },
  57. methods: {
  58. imgSelect(e) {
  59. translateAll(e.tempFilePaths[0], (base64, blobUrl) => {
  60. this.zczmList.push(base64)
  61. })
  62. },
  63. imgDelete(e) {
  64. this.zczmList.splice(this.zczmList.indexOf(e.tempFile.path), 1)
  65. }
  66. }
  67. }
  68. </script>
  69. <style>
  70. </style>