开始

image.png
image.png
整个代码块
image.png

css也复制过来
image.png
复制method方法过来。
image.png
复制到上面
image.png
这部分数据
image.png
把方法复制过来,选择图片,预览图片,删除图片这三个方法
image.png
父组件内定义属性,传递给子组件。
image.png
子组件内
image.png

  1. this.$emit('upload',this.imageList);

子组件内删除成功后。通知父组件。
image.png

引入子组件

image.png

  1. import uploadImages from '@/components/common/upload-images.vue';
  2. components:{
  3. uploadImages,
  4. },

使用组件
image.png

  1. <upload-images @upload="upload"></upload-images>

监听事件
image.png
打印这个数组
image.png
删除的方法也监听一下

  1. <upload-images @upload="upload" @delect="delect"></upload-images>
  2. 删除的method
  3. delect(arr) {
  4. console.log(arr);
  5. }

测试

image.png
控制台打印的数组
image.png

删掉一张图片后也打印了
image.png

最终组件代码

  1. <template>
  2. <view>
  3. <uni-nav-bar :statusBar="true" rightText="发布"
  4. left-icon="back" left-text="返回"
  5. @clickLeft="back" @clickRight="submit">
  6. <view class="u-f-ajc" @tap="changelook">
  7. {{ yinsi }}
  8. <view class="icon iconfont icon-xialazhankai"></view>
  9. </view>
  10. </uni-nav-bar>
  11. <!-- <uni-nav-bar :statusBar="true">
  12. <block slot="left">
  13. <view class="back"></view>
  14. </block>
  15. <view class="u-f-ajc" @tap="changelook">
  16. {{ yinsi }}
  17. <view class="icon iconfont icon-xialazhankai"></view>
  18. </view>
  19. <block slot="right">
  20. <view class="city">
  21. 发布
  22. </view>
  23. </block>
  24. </uni-nav-bar> -->
  25. <!-- 多行输入框 -->
  26. <view class="uni-textarea">
  27. <textarea value="" v-model="text" placeholder="说一句话吧~" />
  28. </view>
  29. <upload-images @upload="upload" @delect="delect"></upload-images>
  30. </view>
  31. </template>
  32. <script>
  33. import uploadImages from '@/components/common/upload-images.vue';
  34. let changelook = ['所有人可见', '仅自己可见'];
  35. export default {
  36. components:{
  37. uploadImages,
  38. },
  39. data() {
  40. return {
  41. yinsi: "所有人可见",
  42. text: "111",
  43. imageList: [],
  44. }
  45. },
  46. methods: {
  47. // 返回
  48. back(){
  49. uni.navigateBack({
  50. delta: 1
  51. })
  52. },
  53. // 发布
  54. submit(){
  55. console.log('发布')
  56. },
  57. // 隐私
  58. changelook(){
  59. console.log('隐私')
  60. uni.showActionSheet({
  61. itemList: changelook,
  62. success: function (res) {
  63. console.log(res.tapIndex);
  64. console.log(changelook[res.tapIndex]);
  65. this.yinsi=changelook[res.tapIndex];
  66. }
  67. });
  68. },
  69. upload(arr) {
  70. this.imageList=arr;
  71. console.log(this.imageList);
  72. },
  73. delect(arr) {
  74. console.log(arr);
  75. }
  76. }
  77. }
  78. </script>
  79. <style>
  80. textarea{
  81. border: 1upx solid #EEEEEE;
  82. }
  83. /* .uni-navbar__header-container {
  84. justify-content: center;
  85. } */
  86. </style>

结束