feat(Sku): add custom-upload prop (#9389)

This commit is contained in:
neverland 2021-09-03 15:00:20 +08:00 committed by GitHub
parent 3a53fa3aed
commit a69385d867
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 24 additions and 1 deletions

View File

@ -340,6 +340,14 @@ messageConfig: {
setTimeout(() => resolve('https://img01.yzcdn.cn/upload_files/2017/02/21/FjKTOxjVgnUuPmHJRdunvYky9OHP.jpg!100x100.jpg'), 1000); setTimeout(() => resolve('https://img01.yzcdn.cn/upload_files/2017/02/21/FjKTOxjVgnUuPmHJRdunvYky9OHP.jpg!100x100.jpg'), 1000);
}); });
}, },
// 可选项,自定义图片上传逻辑,使用此选项时,会禁用原生图片选择
customUpload: () => {
return new Promise((resolve) => {
setTimeout(() => {
resolve('https://img01.yzcdn.cn/vant/leaf.jpg');
}, 1000);
});
},
// 最大上传体积 (MB) // 最大上传体积 (MB)
uploadMaxSize: 3, uploadMaxSize: 3,
// placeholder 配置 // placeholder 配置

View File

@ -12,6 +12,7 @@ export default createComponent({
props: { props: {
value: String, value: String,
uploadImg: Function, uploadImg: Function,
customUpload: Function,
maxSize: { maxSize: {
type: Number, type: Number,
default: 6, default: 6,
@ -56,6 +57,15 @@ export default createComponent({
onDelete() { onDelete() {
this.$emit('input', ''); this.$emit('input', '');
}, },
onClickUpload() {
if (this.customUpload) {
this.customUpload().then((url) => {
this.fileList.push({ url });
this.$emit('input', url);
});
}
},
}, },
render() { render() {
@ -63,10 +73,12 @@ export default createComponent({
<Uploader <Uploader
vModel={this.fileList} vModel={this.fileList}
maxCount={1} maxCount={1}
afterRead={this.afterReadFile} readonly={!!this.customUpload}
maxSize={this.maxSize * 1024 * 1024} maxSize={this.maxSize * 1024 * 1024}
afterRead={this.afterReadFile}
onOversize={this.onOversize} onOversize={this.onOversize}
onDelete={this.onDelete} onDelete={this.onDelete}
onClick-upload={this.onClickUpload}
/> />
); );
}, },

View File

@ -59,6 +59,8 @@ export default createComponent({
messages[`message_${index}`] = item.value; messages[`message_${index}`] = item.value;
}); });
console.log('messages', messages);
return messages; return messages;
}, },
@ -141,6 +143,7 @@ export default createComponent({
vModel={this.messageValues[index].value} vModel={this.messageValues[index].value}
maxSize={this.messageConfig.uploadMaxSize} maxSize={this.messageConfig.uploadMaxSize}
uploadImg={this.messageConfig.uploadImg} uploadImg={this.messageConfig.uploadImg}
customUpload={this.messageConfig.customUpload}
/> />
<div class={bem('image-cell-label')}>{t('imageLabel')}</div> <div class={bem('image-cell-label')}>{t('imageLabel')}</div>
</Cell> </Cell>