W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
解釋: 上傳圖片組件,支持大圖、多圖模式,可配置圖片個(gè)數(shù)、大小限制等
屬性名 | 類型 | 必填 | 默認(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ù) |
<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í)別
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: