<template>
	<view class="feedbox">
		<u-form :model="model" :rules="rules" ref="uForm" :errorType="errorType">
			<u-form-item label="反馈内容" prop="content" label-width="150">
				<u-input type="textarea" :border="border" placeholder="请输入您的投诉/建议" v-model="model.content" />
			</u-form-item>		
			<u-form-item label="图片说明" prop="images" label-width="150">
				<!-- <u-upload></u-upload> -->
				<!-- width="160" height="160"  -->
				<u-upload width="160" height="160" 
					max-count='1' 
					v-model="formData.file"
					:action="action" 
					:file-list="fileList" 
					:name="uploadName"
					:header="uploadHeader"
					:form-data="formData"
					@on-error="onError" 
					@on-remove="onRemove"
					@on-success="onSuccess"></u-upload>
			</u-form-item>
			<u-form-item label="联系方式" prop="contact" label-width="150">
				<!--  type="number" -->
				<!-- <u-input :border="border" placeholder="请输入联系方式" v-model="model.contact"></u-input> -->
				<u-input :border="border" placeholder="请输入您的手机号" v-model="model.contact" type="number"></u-input>
			</u-form-item>
		</u-form>
		<view class="submitBtn">
			<u-button class="" type="primary" @click="submit">提交</u-button>
		</view>
		

	</view>
</template>

<script>
import { hex_sha1 } from '@/utils/sha1.js'
import { objKeySort,naviBackEmit } from '@/utils/tools.js'
export default {
	data() {
		let that = this;
		let secret = 'yrb1vdc2qc'
		let formData = {
			target: "oss",
			type: 'image',
		}
		let sign = hex_sha1(secret + objKeySort(formData));
		console.log(sign);
		return {
			action: this.$env.apiUrl + "/api/client/index/upload",
			uploadName: 'file',
			uploadHeader:{
				'Content-Type': 'multipart/form-data',
				sign,
			},
			formData:{
				target: "oss",
				type: 'image',
				file:null
			},
			fileList:[],
			border: false,
			errorType: ['message'],
			model: {
				content: '',		
				contact: '',
				images: ''
			},
			rules: {
				content: [
					{
						required: true,
						message: '请输入您的投诉/建议'
					},
					{
						min: 5,
						message: '投诉/建议不能少于5个字',
						trigger: 'change' ,
					},
					// 正则校验示例，此处用正则校验是否中文，此处仅为示例，因为uView有this.$u.test.chinese可以判断是否中文
					// {
					// 	pattern: /^[\u4e00-\u9fa5]+$/gi,
					// 	message: '简介只能为中文',
					// 	trigger: 'change',
					// },
				],
				/* contact: [
					{
						required: true,
						message: '请输入您的联系方式',
						trigger: ['change','blur'],
					},
					// {
					// 	validator: (rule, value, callback) => {
					// 		// 调用uView自带的js验证规则，详见：https://www.uviewui.com/js/test.html
					// 		return this.$u.test.mobile(value);
					// 	},
					// 	message: '手机号码不正确',
					// 	// 触发器可以同时用blur和change，二者之间用英文逗号隔开
					// 	trigger: ['change','blur'],
					// }
				], */
				
				contact: [
					{
						required: true,
						message: '请输入正确的手机号',
						trigger: ['change','blur'],
					},
					{
						validator: (rule, value, callback) => {
							// 调用uView自带的js验证规则，详见：https://www.uviewui.com/js/test.html
							return this.$u.test.mobile(value);
						},
						message: '请输入正确的手机号',
						// 触发器可以同时用blur和change，二者之间用英文逗号隔开
						trigger: ['change','blur'],
					}
				],
			},
		};
	},
	onLoad() {

	},
	onReady() {
		this.$refs.uForm.setRules(this.rules);
	},
	methods: {
		
		onError(data, index, lists) {
			console.log('onError', data, index, lists);
		},
		onSuccess(data, index, lists) {
			console.log('onSuccess', data, index, lists);
			this.model.images = data.data.full_url;
		},
		onRemove(data, index, lists) {
			this.model.images=null;
		},
		submit() {
			this.$refs.uForm.validate(valid => {
				if (valid) {
					this.addFeedbackFun();
				} else {
					console.log('验证失败');
				}
			});
		},
		addFeedbackFun(){
			console.log(this.model);
			// return;
			this.$u.api.addFeedbackAjax(this.model).then(({code,data})=>{
				this.$u.toast('已收到您的反馈，我们将尽快处理')
			})
		},
	}
};
</script>

<style scoped lang="scss">
	.submitBtn{
		margin: 100rpx 100rpx 0;
	}
.feedbox {
	padding: 30rpx;
	background-color: #fff;
	min-height: 100vh;
}

.agreement {
	display: flex;
	align-items: center;
	margin: 40rpx 0;

	.agreement-text {
		padding-left: 8rpx;
		color: $u-tips-color;
	}
}
</style>
