5 changed files with 183 additions and 4 deletions
-
6pages.json
-
2pages/index/index.vue
-
2pages/my/editInfo.vue
-
170pages/my/photoImage.vue
-
7pages/saySomething/saySomething.vue
@ -0,0 +1,170 @@ |
|||||
|
<template> |
||||
|
<view class="content"> |
||||
|
<view class="my-images"> |
||||
|
<view class="my-image-item" @click="uploadImage" v-if="image_list.length < image_count"> |
||||
|
<text class="lf-iconfont icon-jia my-image-item-after"></text> |
||||
|
</view> |
||||
|
<view class="my-image-item" v-for="(item, index) in image_list" :key="index" @click="showMenu(index)"> |
||||
|
<image :src="item" mode="aspectFill"></image> |
||||
|
<!-- <view class="remove-image" @click.stop="removeInage(index)"> |
||||
|
<text class="lf-iconfont icon-shanchu"></text> |
||||
|
</view> --> |
||||
|
<view class="mask">审核中</view> |
||||
|
</view> |
||||
|
</view> |
||||
|
<view class="tips-desc">!小提示:最多可上传9张个人形象照,使用本人近期真实照片为佳。</view> |
||||
|
<u-action-sheet :list="menu_list" v-model="show_menu" @click="clickSheet"></u-action-sheet> |
||||
|
</view> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
export default { |
||||
|
data(){ |
||||
|
return { |
||||
|
image_list: [], |
||||
|
image_count: 9, |
||||
|
menu_list: [{ |
||||
|
text: '设为封面图', |
||||
|
}, { |
||||
|
text: '预览' |
||||
|
}, { |
||||
|
text: '删除', |
||||
|
color: 'red' |
||||
|
}], |
||||
|
show_menu: false, |
||||
|
click_index: null |
||||
|
} |
||||
|
}, |
||||
|
onLoad(){ |
||||
|
|
||||
|
}, |
||||
|
methods: { |
||||
|
// 显示操作菜单 |
||||
|
showMenu(index){ |
||||
|
this.click_index = index; |
||||
|
this.show_menu = true; |
||||
|
}, |
||||
|
// 点击了操作菜单的某一项 |
||||
|
clickSheet(current){ |
||||
|
switch(current){ |
||||
|
case 1: this.lookImage(this.click_index); break; |
||||
|
case 2: this.removeInage(this.click_index); break; |
||||
|
} |
||||
|
}, |
||||
|
// 上传凭证图片 |
||||
|
uploadImage(){ |
||||
|
let current_count = this.image_count - this.image_list.length; |
||||
|
if(current_count == 0) return; |
||||
|
uni.chooseImage({ |
||||
|
count: current_count, |
||||
|
complete: result => { |
||||
|
if(result.errMsg == "chooseImage:fail cancel"){ |
||||
|
return; // 取消选择图片 |
||||
|
} |
||||
|
let tempFiles = result.tempFiles; |
||||
|
let image_list = []; |
||||
|
let overstep = false; |
||||
|
tempFiles.map(item => { |
||||
|
// 上传的图片需小于10MB |
||||
|
if(item.size < 10464788){ |
||||
|
image_list.push(item.path); |
||||
|
}else{ |
||||
|
overstep = true; |
||||
|
} |
||||
|
}) |
||||
|
if(overstep){ |
||||
|
uni.showModal({ |
||||
|
title: '温馨提示', |
||||
|
content: '您上传的图片含有超出10M大小的限制,请优化大小后再上传!', |
||||
|
showCancel: false |
||||
|
}) |
||||
|
} |
||||
|
this.image_list.push(...image_list); |
||||
|
} |
||||
|
}) |
||||
|
}, |
||||
|
// 预览图片 |
||||
|
lookImage(current){ |
||||
|
if(this.image_list.length <= 0) return; |
||||
|
this.$u.throttle(() => { |
||||
|
uni.previewImage({ |
||||
|
urls: this.image_list, |
||||
|
current: current |
||||
|
}); |
||||
|
}, 500); |
||||
|
}, |
||||
|
// 移除图片 |
||||
|
removeInage(current){ |
||||
|
this.image_list.splice(current, 1); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss" scoped="scoped"> |
||||
|
.content{ |
||||
|
width: 750rpx; |
||||
|
height: max-content; |
||||
|
box-sizing: border-box; |
||||
|
padding: 30rpx 32rpx; |
||||
|
} |
||||
|
|
||||
|
.my-images{ |
||||
|
display: flex; |
||||
|
flex-wrap: wrap; |
||||
|
margin-bottom: 40rpx; |
||||
|
.my-image-item{ |
||||
|
width: 220rpx; |
||||
|
height: 220rpx; |
||||
|
background: #DDDDDD; |
||||
|
position: relative; |
||||
|
margin-right: 12rpx; |
||||
|
&:nth-child(3n){ |
||||
|
margin-right: 0rpx; |
||||
|
} |
||||
|
&:nth-child(n+4){ |
||||
|
margin-top: 12rpx; |
||||
|
} |
||||
|
image{ |
||||
|
width: 100%; |
||||
|
height: 100%; |
||||
|
} |
||||
|
.remove-image{ |
||||
|
position: absolute; |
||||
|
right: -4rpx; |
||||
|
top: -18rpx; |
||||
|
color: #e74c3c; |
||||
|
font-size: 40rpx; |
||||
|
padding: 8rpx; |
||||
|
} |
||||
|
.mask{ |
||||
|
position: absolute; |
||||
|
bottom: 0; |
||||
|
left: 0; |
||||
|
width: 100%; |
||||
|
height: 42rpx; |
||||
|
background-color: rgba(0,0,0,0.5); |
||||
|
color: #FFFFFF; |
||||
|
font-size: 24rpx; |
||||
|
display: flex; |
||||
|
justify-content: center; |
||||
|
align-items: center; |
||||
|
} |
||||
|
} |
||||
|
.my-image-item-after{ |
||||
|
position: absolute; |
||||
|
width: 100%; |
||||
|
height: 100%; |
||||
|
display: flex; |
||||
|
justify-content: center; |
||||
|
align-items: center; |
||||
|
font-size: 60rpx; |
||||
|
color: #999999; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.tips-desc{ |
||||
|
font-size: 24rpx; |
||||
|
color: #999999; |
||||
|
} |
||||
|
</style> |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue