更新记录

4.0(2022-07-16)

1.由于上传图片数量不确定性,决定移除rowNum属性,由组件自动计算 2.为了根据设定的图片大小自动适应屏幕宽度,新增属性 colNum,指定每行图片的列数即可自适应屏幕宽度 3.其他优化

3.0(2021-10-19)

1.修复页面滚动后拖拽错乱的问题 2.优化拖拽动画效果,更自然,更流畅

2.0(2021-05-07)

1.优化动画

查看更多

平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
app-vue app-nvue × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari

属性说明

属性名 类型 默认值 说明
imgList Array [] 图片列表
imgPadding Number 20 图片内边距
colNum Number 4 每行的图片列数
imgRadius Number 10 图片圆角
enableDel Boolean false 是否开启删除图片模式

事件说明

事件名 说明 返回值
@moveEndList 移动结束后的新图片列表 []
@addImg 添加图片点击事件
@delImg 删除图片点击事件 []

使用方法

配置easycom规则后,自动按需引入,无需import组件,直接引用即可。

<template>
    <xiaokeai-dragImage
        :imgList.sync="imgList"
        @moveEndList="moveEndList"
    />
</template>

示例

    <template>
        <view class="content" >
            <image class="logo" src="/static/logo.png"></image>
            <xiaokeai-dragImage
                :enableDel="enableDel"
                :imgList.sync="imgList"
                @moveEndList="moveEndList"
                @addImg="addImg"
                @delImg="delImg"
            >
                <view class="addImgBtn">添加</view>
            </xiaokeai-dragImage>
            <button type="default" @click="startDel">删除</button>
        </view>
    </template>

    <script>
    export default {
        data() {
            return {
                enableDel: false,  
                imgList: [{ url: '/static/logo.png' }],
            };
        },
        onLoad() {
                this.imgList = [{ url: 'xxx' }];
        },
        methods: {
            moveEndList(e) {
                console.log('移动结束后的新图片列表');
                console.log(e);
            },
            addImg() {
                console.log('添加图片点击事件');
                let _this = this;
                uni.chooseImage({
                    count: 6, //默认9
                    sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
                    sourceType: ['album'], //从相册选择
                    success: function(res) {
                        for (var i = 0; i < res.tempFilePaths.length; i++) {
                            _this.imgList.push({
                                url: res.tempFilePaths[i]
                            });
                        }
                    }
                });
            },
            delImg(e) {
                console.log('删除图片点击事件');
                console.log(e);
            },
            startDel() {
                this.enableDel = !this.enableDel;
            }
        }
    };
    </script>

    <style>
    .content {
    }
    .addImgBtn {
        width: 100%;
        height: 100%;
        display: flex;
        color: #ffffff;
        justify-content: center;
        align-items: center;
        background-color: #999999;
    }
    </style>

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问