<template>
	<view>
		<lf-nav title="发表" :showIcon="true" :backInquiry="backInquiry"></lf-nav>
		<view class="content">
			<!-- 文本输入 -->
			<textarea class="textarea" placeholder="这一刻的想法…" v-model="content"></textarea>
			<!-- 上传图片 -->
			<view class="my-images">
				<view class="my-image-item" @click="uploadImage" v-if="image_list.length < 6">
					<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="lookImage(index)">
					<image :src="item" mode="aspectFill"></image>
					<view class="remove-image" @click.stop="removeInage(index)">
						<text class="lf-iconfont icon-shanchu"></text>
					</view>
				</view>
			</view>
			<!-- 发表按钮 -->
			<button class="my-btn" hover-class="lf-opacity" @click="send()">发表</button>
		</view>
	</view>
</template>

<script>
	export default {
		data(){
			return {
				image_list: [],
				image_count: 6,
				content: '',
				backInquiry: false,
				uploadImg: []
			}
		},
		watch: {
			content(val){
				if(String(val).length){
					this.backInquiry = true;
				}else{
					this.backInquiry = false;
				}
			}
		},
		onLoad(){
			
		},
		methods: {
			send() {
				if(!this.content) {
					this.$msg('请输入文字内容!');
					return
				}
				if(this.uploadImg.length == 0) {
					this.$msg('请上传图片!');
					return
				}
				this.$http
				    .post({
				        api: 'api/discover/create',
						data: {
							images: this.uploadImg,
							content: this.content
						},
						header: {
						   Authorization: this.$cookieStorage.get('user_token')
						},
				    })
				    .then(res => {
				        if (res.data.code == 200) {
				            if (res.data.status) {
				        		this.$msg('发布成功').then(() => {
				        			this.$toBack();
				        		})
				            } else {
				                wx.showModal({
				                    content: res.data.message || '发布失败，请稍后尝试！',
				                    showCancel: false
				                });
				            }
				        } else {
				            wx.showModal({
				                content: res.data.message || '发布失败，请稍后尝试！',
				                showCancel: false
				            });
				        }
				        wx.hideLoading();
				    })
				    .catch(() => {
				        wx.hideLoading();
				        wx.showModal({
				            content: '请求失败',
				            showCancel: false
				        });
				    });
			},
			uploadDiscover(img) {
				uni.uploadFile({
					header: {
						Authorization: this.$cookieStorage.get('user_token')
					},
					url: this.$config.GLOBAL.baseUrl+'api/discover/upload_image',
					filePath: img,
					fileType: 'image',
					name: 'image',
					success: res => {
						var result = JSON.parse(res.data).data.url; 
						this.uploadImg.push(result)
						console.log('上传后的图片路径',this.uploadImg)
					},
					fail: err => {
						console.log(err)
					}
				})
			},
			// 上传凭证图片
			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 < 1000000){
								image_list.push(item.path);
							}else{
								overstep = true;
							}
						})
						if(overstep){
							uni.showModal({
								title: '温馨提示',
								content: '您上传的图片含有超出10M大小的限制，请优化大小后再上传！',
								showCancel: false
							})
						}
						this.image_list.push(...image_list);
						this.uploadDiscover(tempFiles[0].path)
						
						console.log('当前选择的图片列表',this.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);
				this.uploadImg.splice(current, 1);
				console.log('删除的图片列表',this.uploadImg);
			}
		}
	}
</script>

<style lang="scss" scoped="scoped">
	.content{
		width: 750rpx;
		height: max-content;
		box-sizing: border-box;
		padding: 30rpx 32rpx;
		.textarea{
			width: 100%;
			height: 160rpx;
		}
	}
	
	.my-images{
		display: flex;
		flex-wrap: wrap;
		margin-top: 30rpx;
		margin-bottom: 18rpx;
		.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;
			}
		}
		.my-image-item-after{
			position: absolute;
			width: 100%;
			height: 100%;
			display: flex;
			justify-content: center;
			align-items: center;
			font-size: 60rpx;
			color: #999999;
		}
	}
	
	.my-btn{
		margin-top: 30rpx;
		background-color: #15716E;
		color: #FFFFFF;
	}
	
	/deep/.textarea-placeholder{
		color: #999999;
		line-height: 1;
		vertical-align: middle;
	}
</style>
