my-file.vue 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  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. this.zczm = []
  35. newItems.forEach(e => {
  36. this.zczm.push({
  37. url: e,
  38. extname: 'png',
  39. name: 'uniapp-logo.png'
  40. })
  41. })
  42. },
  43. deep: true // 使用深度监听,以便检测到数组内部的变化
  44. },
  45. 'zczm': {
  46. handler(newItems, oldItems) {
  47. // let zczmList = []
  48. // newItems.forEach(e => {
  49. // zczmList.push(e.url)
  50. // })
  51. // this.$emit("@recordsChange", zczmList)
  52. },
  53. deep: true // 使用深度监听,以便检测到数组内部的变化
  54. },
  55. },
  56. methods: {
  57. imgSelect(e) {
  58. translateAll(e.tempFilePaths[0], (base64, blobUrl) => {
  59. this.zczmList.push(base64)
  60. })
  61. },
  62. imgDelete(e) {
  63. this.zczmList.splice(this.zczmList.indexOf(e.tempFile.path), 1)
  64. }
  65. }
  66. }
  67. </script>
  68. <style>
  69. </style>