| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 | 
							- <template>
 
- 	<view class="grace-add-list">
 
- 		<view class="grace-add-list-items" v-for="(item, index) in imgLists" :key="index">
 
- 			<image :src="item.url" :data-imgurl="item.url" @tap="showImgs" class="grace-add-list-img" :mode="imgMode"></image>
 
- 			<text class="grace-add-list-remove grace-icons" @tap="removeImg" :id="'grace-items-img-'+index" :style="{color:closeBtnColor}"></text>
 
- 		</view>
 
- 		<view class="grace-add-list-items grace-add-list-btn" @tap="addImg" v-if="imgLists.length < maxFileNumber">
 
- 			<text class="grace-add-list-btn-icon">+</text>
 
- 			<text class="grace-add-list-btn-text">{{btnName}}</text>
 
- 		</view>
 
- 	</view>
 
- </template>
 
- <script>
 
- export default {
 
- 	props:{
 
- 		maxFileNumber : {
 
- 			type : Number,
 
- 			default : 9
 
- 		},
 
- 		btnName : {
 
- 			type : String,
 
- 			default : "添加照片"
 
- 		},
 
- 		items : {
 
- 			type : Array,
 
- 			default : function () {
 
- 				return [];
 
- 			}
 
- 		},
 
- 		closeBtnColor : {
 
- 			type : String,
 
- 			default : "#666666"
 
- 		},
 
- 		imgMode:{
 
- 			type:String,
 
- 			default:'widthFix'
 
- 		}
 
- 	},
 
- 	data() {
 
- 		return {
 
- 			imgLists : []
 
- 		}
 
- 	},
 
- 	created:function () {
 
- 		this.initImgs();
 
- 	},
 
- 	watch:{
 
- 		items:function(){this.initImgs();}
 
- 	},
 
-     methods:{
 
- 		initImgs : function(){
 
- 			var imgs = [];
 
- 			for(let i = 0; i < this.items.length; i++){
 
- 				imgs.push({url:this.items[i],  progress : 100});
 
- 			}
 
- 			this.imgLists = imgs;
 
- 		},
 
-         addImg : function(){
 
-             var num = this.maxFileNumber - this.imgLists.length;
 
-             if(num < 1){return false;}
 
-             uni.chooseImage({
 
-                 count: num,
 
-                 sizeType: ['compressed'],
 
-                 success:(res) => {
 
- 					for(let i = 0; i < res.tempFilePaths.length; i++){
 
- 						this.imgLists.push({url:res.tempFilePaths[i], progress:0})
 
- 					}
 
-                     this.$emit('change', this.imgLists);
 
-                 },
 
- 				fail:function(){
 
- 					//uni.hideLoading();
 
- 				}
 
-             });
 
-         },
 
-         removeImg : function(e){
 
-             var index = e.currentTarget.id.replace('grace-items-img-', '');
 
- 			var removeImg =  this.imgLists.splice(index, 1);
 
- 			this.$emit('removeImg', removeImg[0]);
 
- 			this.$emit('change', this.imgLists);
 
-         },
 
-         showImgs : function(e){
 
-             var currentImg = e.currentTarget.dataset.imgurl;
 
- 			var imgs = [];
 
- 			for(let i = 0; i < this.imgLists.length; i++){
 
- 				imgs.push(this.imgLists[i].url);
 
- 			}
 
-             uni.previewImage({
 
-               urls: imgs,
 
-               current : currentImg
 
-             })
 
-         },
 
- 		setItems : function(items){
 
- 			this.imgLists = [];
 
- 			for(let i = 0; i < items.length; i++){
 
- 				this.imgLists.push({url : items[i], progress : 100});
 
- 			}
 
- 		}
 
-     }
 
- }
 
- </script>
 
- <style scoped>
 
- .grace-add-list{flex-wrap:wrap; flex-direction:row;}
 
- .grace-add-list-btn{flex-direction:column; align-items:center; justify-content:center;}
 
- .grace-add-list-btn-text{font-size:26rpx; line-height:36rpx; text-align:center; color:#999999;}
 
- .grace-add-list-btn-icon{font-size:70rpx; height:80rpx; line-height:80rpx; color:#999999;}
 
- .grace-add-list-items{width:222rpx; height:222rpx; overflow:hidden; margin-bottom:12rpx; margin-right:11rpx; background-color:#F6F7F8; font-size:0; border-radius:10rpx;}
 
- .grace-add-list-image{width:222rpx; height:222rpx;}
 
- .grace-add-list-remove{width:50rpx; height:50rpx; line-height:50rpx; text-align:center; font-size:40rpx; position:absolute; right:0; bottom:0; color:#888888;}
 
- .grace-add-list-img{width:222rpx; height:222rpx;}
 
- </style>
 
 
  |