184 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			184 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Python
		
	
	
	
| <template>
 | ||
| 	<view>
 | ||
| 		<view class="fanku_con">
 | ||
| 			<view class="img_z">
 | ||
| 				<view class="imgadf center" @click="ongetimg()">
 | ||
| 					<image style="width: 58rpx;height: 58rpx;" src="./tupianadd.png" mode=""></image>
 | ||
| 					<text style="margin-top: 5rpx;">上传图片</text>
 | ||
| 				</view>
 | ||
| 				<view style="position: relative;" v-for="(item,index) in img_list" :key="index">
 | ||
| 					<image @click="preview(index,img_list)" style="width: 120rpx;height: 120rpx;margin-left: 20rpx;margin-bottom: 20rpx;background-color:rgba(0,0,0,0.1);border-radius: 10rpx;"
 | ||
| 					 :src="item"></image>
 | ||
| 					<image class="shancs" src="./shanchus2.png" mode="" @click="selec(index)"></image>
 | ||
| 				</view>
 | ||
| 			</view>
 | ||
| 		</view>
 | ||
| 
 | ||
| 	</view>
 | ||
| </template>
 | ||
| 
 | ||
| <script>
 | ||
| 	export default {
 | ||
| 		data() {
 | ||
| 			return {
 | ||
| 				img_list: []
 | ||
| 			}
 | ||
| 		},
 | ||
| 		props: {
 | ||
| 			// 最多上数量 1-9
 | ||
| 			count: {
 | ||
| 				type: Number,
 | ||
| 				default: false
 | ||
| 			},
 | ||
| 			//图片上传地址
 | ||
| 			url: {
 | ||
| 				type: String,
 | ||
| 				default: ''
 | ||
| 			},
 | ||
| 			//文件对应的 key 
 | ||
| 			name: {
 | ||
| 				type: String,
 | ||
| 				default: ''
 | ||
| 			},
 | ||
| 			//请求头
 | ||
| 			header: {
 | ||
| 				type: Object,
 | ||
| 				default: {}
 | ||
| 			}
 | ||
| 		},
 | ||
| 		computed: {},
 | ||
| 		methods: {
 | ||
| 			ongetimg() { //上传图片方法
 | ||
| 				var that = this
 | ||
| 				if (!that.url) {
 | ||
| 					return uni.showToast({
 | ||
| 						title: '请填写上传地址',
 | ||
| 						icon: 'none',
 | ||
| 						position: 'bottom'
 | ||
| 					});
 | ||
| 				}
 | ||
| 				uni.chooseImage({ //选中本地图片
 | ||
| 					count: that.count,
 | ||
| 					sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
 | ||
| 					sourceType: ['album'], //从相册选择
 | ||
| 					success: res => {
 | ||
| 						uni.showLoading({ //加载框
 | ||
| 							title: '加载中...'
 | ||
| 						})
 | ||
| 						const tempFilePaths = res.tempFilePaths;
 | ||
| 						res.tempFilePaths.forEach((item, index) => { //本地选中的图片组
 | ||
| 							console.log(that.url)
 | ||
| 							uni.uploadFile({ //上传图片
 | ||
| 								url: that.url, //上传接口地址
 | ||
| 								filePath: item, //一张图
 | ||
| 								name: that.name,
 | ||
| 								header: that.header,
 | ||
| 								success: res => {
 | ||
| 									if (that.img_list.length >= that.count) //限制
 | ||
| 										return uni.showToast({
 | ||
| 											title: '最多上传' + that.count + '张图片',
 | ||
| 											icon: 'none',
 | ||
| 											position: 'bottom'
 | ||
| 										});
 | ||
| 									that.img_list.push(JSON.parse(res.data).data.url); //plus数组
 | ||
| 									that.$emit('obtain_img', that.img_list)
 | ||
| 								}
 | ||
| 							});
 | ||
| 							uni.hideLoading() //关闭加载框
 | ||
| 						});
 | ||
| 					}
 | ||
| 				});
 | ||
| 			},
 | ||
| 			//删除
 | ||
| 			selec(index) {
 | ||
| 				this.img_list.splice(index, 1)
 | ||
| 				this.$emit('obtain_img', this.img_list)
 | ||
| 			},
 | ||
| 			//预览
 | ||
| 			preview(index, urls) {
 | ||
| 				console.log(index)
 | ||
| 				console.log(urls)
 | ||
| 				uni.previewImage({
 | ||
| 					urls: urls,
 | ||
| 					current: index,
 | ||
| 					longPressActions: {
 | ||
| 						itemList: ['发送给朋友', '保存图片', '收藏'],
 | ||
| 						success: function(data) {
 | ||
| 							console.log('选中了第' + (data.tapIndex + 1) + '个按钮,第' + (data.index + 1) + '张图片');
 | ||
| 						},
 | ||
| 						fail: function(err) {
 | ||
| 							console.log(err.errMsg);
 | ||
| 						}
 | ||
| 					}
 | ||
| 				});
 | ||
| 			}
 | ||
| 		}
 | ||
| 	}
 | ||
| </script>
 | ||
| 
 | ||
| <style>
 | ||
| 	page {
 | ||
| 		background-color: #181E38;
 | ||
| 		padding-top: 66rpx;
 | ||
| 		box-sizing: border-box;
 | ||
| 	}
 | ||
| 
 | ||
| 	.fanku_con {
 | ||
| 		width: 690rpx;
 | ||
| 		background: rgba(0, 0, 0, 0.1);
 | ||
| 		border-radius: 10rpx;
 | ||
| 		margin-left: 30rpx;
 | ||
| 		padding-top: 20rpx;
 | ||
| 		padding-bottom: 70rpx;
 | ||
| 		box-sizing: border-box;
 | ||
| 	}
 | ||
| 
 | ||
| 	.imgadf {
 | ||
| 		width: 120rpx;
 | ||
| 		height: 120rpx;
 | ||
| 		background-color: rgba(255, 255, 255, 0.5);
 | ||
| 		/* margin-left: 29rpx; */
 | ||
| 		margin-left: 20rpx;
 | ||
| 		border-radius: 10rpx;
 | ||
| 		margin-bottom: 20rpx;
 | ||
| 		font-size: 20rpx;
 | ||
| 		color: #666666;
 | ||
| 		flex-direction: column;
 | ||
| 	}
 | ||
| 
 | ||
| 	.img_z {
 | ||
| 		display: flex;
 | ||
| 		flex-wrap: wrap;
 | ||
| 		margin-top: 90rpx;
 | ||
| 		padding-right: 10rpx;
 | ||
| 		box-sizing: border-box;
 | ||
| 	}
 | ||
| 
 | ||
| 	.shancs {
 | ||
| 		width: 35rpx;
 | ||
| 		height: 35rpx;
 | ||
| 		position: absolute;
 | ||
| 		top: -10rpx;
 | ||
| 		right: -10rpx;
 | ||
| 		background-color: #FFFFFF;
 | ||
| 		border-radius: 100%;
 | ||
| 	}
 | ||
| 
 | ||
| 	.dianhua_on {
 | ||
| 		width: 364rpx;
 | ||
| 		height: 74rpx;
 | ||
| 		background: linear-gradient(to right, #F55C63, #F78361);
 | ||
| 		border-radius: 38rpx;
 | ||
| 		font-size: 28rpx;
 | ||
| 		color: #FFFFFF;
 | ||
| 		margin-top: 130rpx;
 | ||
| 		margin-left: 192rpx;
 | ||
| 	}
 | ||
| 
 | ||
| 	.center {
 | ||
| 		display: flex;
 | ||
| 		justify-content: center;
 | ||
| 		align-items: center;
 | ||
| 	}
 | ||
| </style>
 |