更新记录

1(2021-09-27)

1。基于uniapp 2。基于colorui 3。实现多文件上传


平台兼容性

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

## 前言 ShareUI,是一个基于colorui的uniapp手机端界面组件库,提供大量的手机端界面组件, 以及整合colorui,提高手机端界面的开发效率以及美观度。

交流

QQ群:795062304

ShareUI介绍

shareui是一个uniapp的快速开发组件库,包含了大量的界面组件和api. 结构上,主要有colorui包,components包和module包。其中components包含了 通用的组件,不依赖于服务端返回的数据结构。而module包下面的组件, 更像是功能组件,其对数据结构有一定的要求。

mo-img-uploader 使用说明

该组件为shareui里的多文件上传组件,上传方式为阻塞式,上传后将地址返回给调用者。

先引入

import moImgUploader from '@/shareui/module/mo-img-uploader/mo-img-uploader.vue';

export default {
    components:{
        'mo-img-uploader':moImgUploader
    },

在模板使用

<mo-img-uploader ref="upload1" :maxLength="9"></mo-img-uploader>

触发上传

async saveFriendInfo(){ this.friend.images = await this.$refs.upload1.uploadAll();

}

注意: 该组件调用了一个通知的Util.js,用于上传代码如下:

var result = await this.Util.uploadFiles(this.imgList);

Util的这个方法,如下

/**
     * 上传单个文件
     * @param {Object} file
     */
    this.uploadSingleFile = async function(file){
        try{
            let result = await uni.uploadFile({
                url:Url.file_upload,
                filePath:file,
                name:"file"
            })
            let info = JSON.parse(result[1].data);
            console.log("path "+info.path)
            return info.path;
        }catch(e){
            console.log(e)
        }

    }

    /**
     * 小程序端只能一个文件一个文件上传
     * @param {Object} files 文件数组 
     * @return 返回上传后的路径,多个路径以逗号隔开
     */
     this.uploadFiles = async function(files){
        console.log("enter uploadFiles and files.length "+files.length)
        var paths = [];
        var finish = false;

        uni.showLoading({
            title: '文件上传中'
        });
        for (let file of files) {
            let path = await this.uploadSingleFile(file);
            paths.push(path);
        }
        uni.hideLoading();
        var params = {
            paths:paths.join(","),
            size:paths.length
        }
        return params;
    };

上面的代码,需要填写一下文件上传的地址: Url.file_upload这个改成自己的上传地址,上传后,需要返回一个json对象, 包含path属性,即该文件的保存地址。

注意在App.vue里引入样式:

@import "shareui/colorui/main.css";
@import "shareui/colorui/icon.css";
@import "shareui/colorui/animation.css";
@import "shareui/share.scss";

隐私、权限声明

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

相册权限

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

插件不采集任何数据

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

许可协议

MIT协议

暂无用户评论。

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