• uni-app实现图片上传,添加展示与删除


    如图,uni-app实现图片上传,添加展示与删除

    <!-- 上传照片 -->
                <view class="item-num">
                    <view class="upload-img">
                        <!-- 预览缩略图 -->
                        <view class="q-image-wrap">
                            <!-- 图片缩略图  -->
                            <block v-for="(imgItem, idx) in photoFiles" :key="idx">
                                <view class="item">
                                    <image class="q-image" :src="imgItem.url" mode="aspectFill" :data-cur="imgItem.url" @tap="refundPicPreView"></image>
                                    </image>
                                    <!-- 移除图片的按钮  -->
                                    <view class="q-image-remover" :data-idx="idx" @tap="removeImage">
                                        <!-- <text>x</text> -->
                                        <image src="../../static/icons/delect.png" mode=""></image>
                                    </view>
                                </view>
                            </block>
                            <!-- 添加图片图标 -->
                            <view class="item" v-if="photoFiles.length < 6" @tap="getUploadImg">
                                <image class="q-image" src="../../static/icons/default-img.png" mode="">
                                </image>
                            </view>
                        </view>
                    </view>
                </view>
                <!-- end -->
    静态的data数据:
    data() { return { photoFiles: [ {url: "../../static/text.jpg",id:1}, {url: "../../static/text.jpg",id:2}, {url: "../../static/text.jpg",id:3}, {url: "../../static/text.jpg",id:4}, {url: "../../static/text.jpg",id:5} ], //凭证图片列表 }; },
    /**
                 * 上传图片
                 */
                getUploadImg: function(e) {
                    var idx = e.target.dataset.idx;
                    console.log(idx);
                    var ths = this;
                    wx.chooseImage({
                        count: 1,
                        // 默认9
                        sizeType: ['compressed'],
                        sourceType: ['album', 'camera'],
                        success: function(res) {
                            // 图片的本地临时文件路径列表
                            var tempFilePaths = res.tempFilePaths;
                            uni.showLoading({
                                mask: true
                            });
                            var params = {
                              url: "/p/file/upload",
                              filePath: tempFilePaths[0],
                              name: 'file',
                              callBack: function (res2) {
                                uni.hideLoading()
                                var img = {};
                                img.path = JSON.parse(res2).filePath;
                                img.url = JSON.parse(res2).resourcesUrl + JSON.parse(res2).filePath;
                                var photoFiles = ths.photoFiles;
                                photoFiles.push(img);
                                ths.setData({
                                  photoFiles: photoFiles
                                });
                              }
                            };
                            http.upload(params);
                        }
                    });
                },
                /**
                 * 图片点击预览
                 */
                refundPicPreView(e) {
                    var current = e.currentTarget.dataset.cur
                    var urls = []
                    this.photoFiles.forEach(el => {
                        urls.push(el.url)
                    })
                    uni.previewImage({
                        current: current,
                        urls: urls
                    })
                },
    
                /**
                 * 删除图片
                 */
                removeImage: function(e){
                    var idx = e.currentTarget.dataset.idx;
                    var photoFiles = this.photoFiles;
                    photoFiles.splice(idx, 1);
                    this.setData({
                        photoFiles: photoFiles
                    })
                }
    .item-num {}
    
    .item-num .upload-img {
        padding: 40rpx 40rpx 40rpx 30rpx;
    }
    
    .item-num .upload-img .q-image-wrap {
        display: flex;
        /* height: 500rpx; */
        flex-wrap: wrap;
    }
    
    .item-num .upload-img .q-image-wrap .item {
        position: relative;
        height: 200rpx;
         200rpx;
        margin-right: 20rpx;
        margin-bottom: 20rpx;
    }
    
    .item-num .upload-img .q-image-wrap .item .q-image {
        height: 200rpx;
         200rpx;
    }
    
    .item-num .upload-img .q-image-wrap .item .q-image-remover {
         0;
        height: 0;
        border-top: 66rpx solid #bfde85;
        border-left: 66rpx solid transparent;
        position: absolute;
        top: 0;
        right: 0;
    }
    
    /* .item-num .upload-img .q-image-wrap .item .q-image-remover text{
         30rpx;
        display: block;
        height: 30rpx;
        color: #FFFFFF;
        text-align: center;
        line-height: 30rpx;
        font-size: 30rpx;
        border-radius: 20rpx;
        background-color: #bfde85;
        position: absolute;
        top: -60rpx;
        right: 0;
    } */
    
    .item-num .upload-img .q-image-wrap .item .q-image-remover image {
         24rpx;
        height: 24rpx;
        position: absolute;
        top: -60rpx;
        right: 4rpx;
    }

    上传的没搞明白,有待改进

  • 相关阅读:
    js循环添加事件
    [Swift]LeetCode1085. 最小元素各数位之和 | Sum of Digits in the Minimum Number
    [Swift]LeetCode1089. 复写零 | Duplicate Zeros
    [Swift]冒泡排序 | Bubble sort
    [Algorithm]巧用多项式系数与进制的联系
    [Swift]LeetCode1081. 不同字符的最小子序列 | Smallest Subsequence of Distinct Characters
    [Swift]LeetCode1080. 根到叶路径上的不足节点 | Insufficient Nodes in Root to Leaf Paths
    [Swift]LeetCode1079. 活字印刷 | Letter Tile Possibilities
    [Swift]LeetCode1078. Bigram 分词 | Occurrences After Bigram
    [Swift]快速反向平方根 | Fast inverse square root
  • 原文地址:https://www.cnblogs.com/yoona-lin/p/13685230.html
Copyright © 2020-2023  润新知