<template>
<view class="index">
<u-upload :fileList="fileList6" @afterRead="afterRead" @delete="deletePic" name="6" multiple :maxCount="1" width="210" height="210" :accept="acceptType">
<view class="index-upload d-flex j-center a-center">
<image v-if="imgType === 'camera'" src="@/static/icon/camera.png" mode="widthFix"></image>
<view class="index-upload-tlo d-flex flex-wrap j-center" v-else-if="imgType === 'cross'">
<image :class="crossTextShow ? 'index-upload-tlo-lp' : ''" src="@/static/icon/cross.png" mode=""></image>
<view class="" v-if="crossTextShow">上传</view>
</view>
</view>
</u-upload>
</view>
</template>
<script>
// import apiBaseConfig from '@/config/index.js';
export default {
props: {
imgType: {
type: String,
default: 'cross' //camera cross
},
acceptType:{
type:String,
default:'image'
},
crossTextShow: {
type: Boolean,
default: true
}
},
data() {
return {
// imgBgUrl: apiBaseConfig.imgBgUrl,
// globalData: getApp().globalData,
fileList6: [
{
url:'https://img2.baidu.com/it/u=955956276,3392954639&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=500'
},
{
url:'https://img1.baidu.com/it/u=3486651663,3991438881&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=500'
},
{
url:'https://img2.baidu.com/it/u=955956276,3392954639&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=500'
},
]
};
},
onLoad() {},
methods: {
// 删除图片
deletePic(event) {
this[`fileList${event.name}`].splice(event.index, 1);
},
// 新增图片
async afterRead(event) {
console.log(event,'短时间内')
// 当设置 multiple 为 true 时, file 为数组格式,否则为对象格式
let lists = [].concat(event.file);
let fileListLen = this[`fileList${event.name}`].length;
lists.map(item => {
this[`fileList${event.name}`].push({
...item,
status: 'uploading',
message: '上传中'
});
});
for (let i = 0; i < lists.length; i++) {
const result = await this.uploadFilePromise(lists[i].url);
let item = this[`fileList${event.name}`][fileListLen];
this[`fileList${event.name}`].splice(
fileListLen,
1,
Object.assign(item, {
status: 'success',
message: '',
url: result
})
);
fileListLen++;
}
},
uploadFilePromise(url) {
return new Promise((resolve, reject) => {
let a = uni.uploadFile({
url: 'http://192.168.2.21:7001/upload', // 仅为示例,非真实的接口地址
filePath: url,
name: 'file',
formData: {
user: 'test'
},
success: res => {
setTimeout(() => {
resolve(res.data.data);
}, 1000);
}
});
});
}
}
};
</script>
<style lang="scss" scoped>
.index {
&-upload {
width: 170rpx;
height: 170rpx;
background-color: #f3f3f3;
> image {
width: 52rpx;
height: 52rpx;
}
&-tlo {
width: 100%;
height: 100%;
image {
width: 40rpx;
height: 40rpx;
}
view {
width: 100%;
text-align: center;
font-size: 24rpx;
font-weight: 400;
color: #000000;
margin-top: -45rpx;
}
&-lp {
margin-top: 43rpx;
}
}
}
}
.index-upload-tlo-lp{
margin-bottom: 30rpx;
}
</style>