百度智能小程序 圖片上傳器

2020-09-03 16:20 更新

image-uploader 圖片上傳器

解釋: 上傳圖片組件,支持大圖、多圖模式,可配置圖片個(gè)數(shù)、大小限制等

屬性說(shuō)明

屬性名 類型 必填 默認(rèn)值 說(shuō)明
theme String default 主題:default 為小圖,large 為大圖模式
pictureList Array [] i 上傳圖片地址列表
pictureLimit Number 9 上傳圖片個(gè)數(shù)上限
showPreview Boolean false 是否支持預(yù)覽
showTips Boolean false 是否展示提示信息
pictureSizeLimit Number 1e7 單張圖片大小限制
pictureSelectLimit Number 2 從本地相冊(cè)中選擇圖片個(gè)數(shù)

示例 

在開(kāi)發(fā)者工具中打開(kāi)


代碼示例

<view class="wrap {{theme}}">
    <view class="card-panel" s-for="item,index in list">
        <view class="mode-title">
            <view class="mode-title-line-left"></view>
            <view class="mode-title-text">{{item.titleBar}}</view>
            <view class="mode-title-line-right"></view>
        </view>
        <view class="smt-card-area">
            <smt-image-uploader 
                picture-container-class="image-uploader-container"
                picture-item-class="image-uploader-item"
                theme="{{item.theme}}"
                data-index="{{index}}"
                bind:chooseimage="chooseImage"
                bind:delimage="delImage"
                picture-list="{{item.images}}"
                picture-limit="{{item.pictureLimit}}"
                picture-select-limit="{{item.pictureSelectLimit}}"
                showTips="true"/>
        </view>
    </view>
    <view class="smt-card-config">
        <view class="item-scroll">
            <text class="switch-text switch-text-before">沉浸式主題</text>
            <switch color="{{theme ==='dark' ? '#f5f5f5' : '#ddd'}}" class="init-switch" disabled="false" bind:change="changeTheme"></switch>
        </view>
    </view>
</view>
Page({
    data: {
        theme: '',
        searchIconColor: '#999',
        list: [
            {
                titleBar: '上傳圖片',
                theme: 'default',
                images: [],
                pictureLimit: 9,
                pictureSelectLimit: 9
            },
            {
                titleBar: '上傳證照',
                theme: 'large',
                images: [],
                pictureLimit: 2,
                pictureSelectLimit: 2
            }
        ]
    },

    /**
     * 選擇圖片
     *
     * @param {Event} e 事件對(duì)象
     * @param {Object} e.currentTarget.dataset 獲取事件對(duì)象的數(shù)據(jù)
     */
    chooseImage(e) {
        const {images, currentTarget} = e;
        const index = currentTarget.dataset.index;
        this.setData(`list.${index}.images`, images);
    },

    /**
     * 刪除圖片
     *
     * @param {Event} e 事件對(duì)象
     * @param {Object} e.currentTarget.dataset 獲取事件對(duì)象的數(shù)據(jù)
     */
    delImage(e) {
        const index = e.currentTarget.dataset.index;
        this.setData(`list.${index}.images`,
            this.data.list[index].images.filter(function (item, index) {
                if (index !== e.index) {
                    return item;
                }
            })
        );
    },

    /**
     * 切換主題
     *
     * @param {Event} e 事件對(duì)象
     * @param {Object} e.detail 獲取checked值
     */
    changeTheme(e) {
        const checked = e.detail.checked;
        this.setData({
            theme: checked ? 'dark' : '',
            searchIconColor: checked ? ' #a4c2ec' : '#999'
        });
        swan.nextTick(() => {
            swan.setBackgroundColor({
                backgroundColor: checked ? '#3670c2' : '#f5f5f5'
            });
        });
    }
});
.wrap {
    padding-top: .2rem;
    background: #f5f5f5;
}

.wrap .smt-card-area {
    margin: 25.362rpx 0 72.464rpx;
    background: #fff;
}

.wrap .area-content {
    height: 635.87rpx;
}

.wrap .init-switch {
    vertical-align: middle;
    margin: 28.986rpx 0;    
}

.wrap .switch-text-before {
    font-size: 28.986rpx;
    color: #333;
    display: flex;
    align-items: center;
}

.wrap .smt-card-config {
    background: #fff;
    overflow: hidden;
}

.wrap .item-logo {
    display: inline-block;
    width: 32.609rpx;
    height: 32.609rpx;
    margin: 34.005rpx 0;
}

.page-status-hover {
    opacity: .2;
}

.wrap.dark {
    background-color: #3670c2;
}

.wrap.dark .smt-card-config {
    background-color: #4985da;
}

.dark .image-uploader-container {
    background-color: #528fe6;
}

.dark .image-uploader-item {
    border: 1px solid #7fa9e5;
}

.dark .image-uploader-container text {
    color: rgba(255, 255, 255, .6);
}

.wrap.dark .switch-text-before {
    color: #fff;
    background: #4985da;
}

.wrap.dark .mode-title-line-left {
    background-image: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, #fff 100%);
    opacity: .3;
}

.wrap.dark .mode-title-line-right {
    background-image: linear-gradient(-90deg, rgba(255, 255, 255, 0) 0%, #fff 100%);
    opacity: .3;
}

.wrap.dark .mode-title-text {
    color: #fff;
}

.wrap.dark .swan-switch-input:after {
    background: #38f;
}


設(shè)計(jì)指南

上傳圖片個(gè)數(shù)上限(pictureLimit),和從本地相冊(cè)中選擇圖片個(gè)數(shù)(pictureSelectLimit)需保持一致;自定義圖片上傳器主題(theme)時(shí),若圖片類型為卡片或證照,建議使用大圖模式。

正確

上傳證照素材時(shí)使用大圖模式,圖片清晰完整

錯(cuò)誤

上傳證照素材時(shí)使用小圖模式,圖片展示不全,影響識(shí)別



以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)