<template>
	<view class="">
		<view class="feedback">
			<u--input v-model="form.FEEDBACK_TITLE" placeholder="请输入标题" border="bottom" clearable></u--input>
			<view class="feedback-type">
				<view class="item" v-for="(item, index) in feedbackType" :key="index"
					:class="{active:item.value === form.FEEDBACK_TYPE}" @click="form.FEEDBACK_TYPE = item.value">
					<u--image :src="item.img" width="40rpx" height="38rpx"
						style="margin-left: 70rpx; margin-top: 20rpx;"></u--image>
					<view style="margin-top: -40rpx;">{{item.label}}</view>
				</view>
			</view>
			<view class="title">我要反馈</view>
			<u--textarea v-model="form.FEEDBACK_CONTENT" maxlength="255" height="100" count confirmType="done"
				placeholder="请输入问题描述"></u--textarea>
			<view class="title">
				<text>请提供相关问题的截图或照片</text>
			</view>
			<u-upload ref="aaa" capture="album" uploadIcon="plus" :fileList="form.fileList" @afterRead="afterRead"
				@delete="deletePic" name="1" multiple :maxCount="4"></u-upload>
			<u-button type="primary" text="提交" @click="$u.debounce(submitFeedback, 1000, true)"></u-button>
		</view>
		<u-toast ref="uToast"></u-toast>
	</view>
</template>

<script>
import {setFeedbackAdd, setFeedbackUpload} from "../../../api";

  export default {
		data() {
			return {
				form: {
					FEEDBACK_TITLE: '',
					FEEDBACK_TYPE: '其他',
					FEEDBACK_CONTENT: '',
					fileList: [],
					urlList: [],
				},
				feedbackType: [{
						label: '系统错误',
						value: '1',
						img: require('../../../static/images/fico1.png'),
					},
					{
						label: '界面优化',
						value: '2',
						img: require('../../../static/images/fico2.png'),
					},
					{
						label: '设计缺陷',
						value: '3',
						img: require('../../../static/images/fico3.png'),
					},
					{
						label: '性能问题',
						value: '4',
						img: require('../../../static/images/fico4.png'),
					},
					{
						label: '其他问题',
						value: '9',
						img: require('../../../static/images/fico5.png'),
					},
				]
			}
		},
		methods: {
			// 新增图片
			afterRead(event) {
				this.form.fileList = [...this.form.fileList, ...event.file]
			},
			// 删除图片
			deletePic(event) {
				this.form.fileList = this.form.fileList.filter(item => item.url !== event.file.url)
			},
			// 提交反馈
      submitFeedback() {
				if (!this.form.FEEDBACK_TITLE) {
					this.$refs.uToast.warning('为了更加方便我们排查，请输入标题')
					return
				}
				if (!this.form.FEEDBACK_CONTENT) {
					this.$refs.uToast.warning('为了更加方便我们排查，请输入问题描述')
					return
				}
				if (this.form.fileList.length === 0) {
					this.$refs.uToast.warning('为了更加方便我们排查，请上传问题截图或照片')
					return
				}
        let PromiseArr = [];
        for (let i = 0; i < this.form.fileList.length; i++) {
          PromiseArr.push(this.fnSetFeedbackUpload(this.form.fileList[i].url))
        }
        Promise.all(PromiseArr).then(async () => {
          await setFeedbackAdd({
            ...this.form,
            USER_ID: this.$store.getters.getUserInfo.USER_ID,
            FEEDBACK_IMG: this.form.urlList.join(';')
          })
          this.$refs.uToast.show({
            message: '反馈成功',
            type: 'success',
            complete: () => {
              uni.switchTab({
                url: '/pages/mine/index/index'
              })
            }
          })
        }).catch(() => {
          this.$refs.uToast.show({
            message: '反馈失败',
            type: 'error',
          })
        })
			},
      async fnSetFeedbackUpload(filePath){
        let resData = await setFeedbackUpload({
          name: 'FFILE',
          filePath,
        })
        this.form.urlList.push(resData.imgPath)
        return resData
      }
		},
	}
</script>

<style lang="scss" scoped>
	.feedback {
		padding: 40rpx;
		background-color: #fff;

		.title {
			font-weight: bold;
			margin-top: 20rpx;
			margin-bottom: 20rpx;
			color: $uni-text-color-placeholder;
			font-size: 30rpx;

			&:irst-child {
				margin-top: 0;
			}
		}

		.feedback-type {
			display: flex;
			flex-wrap: wrap;
			margin-bottom: 20rpx;
			margin-top: 20rpx;


			.item {
				padding: 10rpx;
				border-radius: 10rpx;
				margin-top: 10rpx;
				margin-right: 10rpx;
				margin-bottom: 10rpx;
				background-color: #f6f7fb;
				text-align: center;
				font-size: 30rpx;
				color: #9fa7bc;
				width: 207rpx;
				height: 143rpx;
				box-sizing: border-box;
				line-height: 143rpx;
				text-align: center;

				&.active {
					background-color: #3c9cff;
					color: #fff;
				}
			}
		}

		::v-deep {
			.u-upload__wrap__preview__image {
				width: 146rpx !important;
				height: 146rpx !important;
			}
		}
	}

	.title {
		font-size: 32rpx;
		color: #333;
	}
</style>
