更新记录

1.0.3(2025-03-05) 下载此版本

支持uni-form验证错误样式

1.0.2(2025-02-28) 下载此版本

解决无限递归问题

1.0.1(2025-02-27) 下载此版本

调整iasei-preview-video文件位置

查看更多

平台兼容性

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

iasei-files

组件介绍

本组件支持微信小程序,H5 上传图片和视频功能,支持对图片和视频的预览。

属性说明

名称 类型 默认值 描述
modelValue String,Array []
readonly Boolean false 只读
height String '112rpx' 元素高度
width String '112rpx' 元素宽带
limit Number 0 上传数量
multiple Boolean false 是否多个
type String '' 文件类型 all video image
action String '' 上传接口地址 可以通过全局属性配置
name String '' 上传文件字段
headers Object,Function undefined 设置上传的请求头部,可以定义为方法,可以全局配置
formData Object {} 上传时附带的额外参数
propsHttp Object '' 返回结构体,可以全局配置

action

上传接口地址 可以通过全局属性配置,如:

// vue2
Vue.prototype.$globalProperties.$iasei = {iaseiFiles:{action:'xxxx'}}
// vue3
app.config.globalProperties.$iasei = {iaseiFiles:{action:'xxxx'}} 

headers

设置上传的请求头部,可以定义为方法,可以全局配置,如:

// vue2
Vue.prototype.$globalProperties.$iasei = {iaseiFiles:{headers:{token:'xxxx'}}}
Vue.prototype.$globalProperties.$iasei = {iaseiFiles:{headers:()=>{return {token:'xxxx'}}}}
// vue3
app.config.globalProperties.$iasei = {iaseiFiles:{headers:{token:'xxxx'}}}
app.config.globalProperties.$iasei = {iaseiFiles:{headers:()=>{return {token:'xxxx'}}}}

propsHttp

返回结构体,可以全局配置,如:

// vue2
Vue.prototype.$globalProperties.$iasei = {iaseiFiles:{propsHttp:{res:'xxxx',url:'xxxx',name:'xxxx'}}}
// vue3
app.config.globalProperties.$iasei = {iaseiFiles:{propsHttp:{res:'xxxx',url:'xxxx',name:'xxxx'}}}

事件

名称 类型 说明
@change function 文件变化时触发,返回文件列表数组

插槽

属性名 属性值 用法 说明
#default 默认插槽 可自定义上传按钮
#item 具名插槽 <template #item="{item,delete,preview}" > item:对象{type,url};delete:删除方法;preview:预览方法

使用方式

<template>
    <iasei-body title="媒体上传组件" header-background="#3fb8ff" header-color="#fff" show-back>
        <view class="content">
            <uni-section title="例子1-数组">
                <iasei-files v-model="form.files" action="http://192.168.50.108:8080/common/upload"
                    multiple></iasei-files>
            </uni-section>
            <uni-section title="例子2-字符串">
                <iasei-files v-model="form.filesStr" action="http://192.168.50.108:8080/common/upload"
                    multiple></iasei-files>
            </uni-section>
            <uni-section title="单文件">
                <iasei-files v-model="form.file"></iasei-files>
            </uni-section>
            <uni-section title="只读">
                <iasei-files v-model="form.files" readonly></iasei-files>
            </uni-section>
            <uni-section title="设置宽高">
                <iasei-files v-model="form.files" width="200rpx" height="200rpx"></iasei-files>
            </uni-section>

            <uni-section title="插槽">
                <iasei-files v-model="form.image" width="200rpx" height="200rpx" multiple>
                    <template #item="{item,preview}">
                        <image :src="item.url" class="slotImage" @click="preview()"></image>
                    </template>
                    <button>添加文件</button>
                </iasei-files>
            </uni-section>
        </view>
    </iasei-body>
</template>

<script>
    export default {
        data() {
            return {
                title: 'Hello',
                form: {
                    files: [
                        'https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/shuijiao.jpg',
                        'https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/2minute-demo.mp4'
                    ],
                    filesStr: 'https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/shuijiao.jpg,https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/2minute-demo.mp4',
                    image: [
                        'https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/shuijiao.jpg',
                    ],
                    file: 'https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/shuijiao.jpg'
                },
                propsHttp: {
                    res: '',
                    url: 'url',
                }
            }
        },
        onLoad() {},
        methods: {
            handleStart(start) {
                start()
                console.log("倒计时开始")
            },
            handleEnd() {
                console.log("倒计时结束")
            }
        }
    }
</script>

<style>
    .content {
        padding: 20rpx;
        display: flex;
        flex-direction: column;
        background-color: #fff;
    }

    .slotImage {
        border-radius: 50%;
        width: 100rpx;
        height: 100rpx;
        margin-right: 20rpx;
    }
</style>

隐私、权限声明

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

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

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

许可协议

MIT协议

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