<template>
	<view class="page">
		<navbar
		title="需提交的材料"
		leftClick 
		@leftClick="$utils.navigateBack"
		/>
		
		<view class="form">
			
			<view class="form-item"
			:key="item.id"
			v-for="(item, index) in formList">
				<view class="label">
					{{ item.title }}<text>{{ item.descrip }}</text>
				</view>
				
				<view class="input"
				v-if="item.type == 0">
					<input type="text" 
					:placeholder="'请输入' + item.title"
					v-model="form[item.keyName]"/>
				</view>
				
				<view class="input"
				v-else>
					<uv-upload
					:fileList="fileMapList[item.keyName]" 
					:name="item.keyName"
					:maxCount="1" 
					width="120rpx"
					height="120rpx" 
					multiple 
					@afterRead="afterRead" 
					@delete="deleteImage">
						<view class="upload">
							<image :src="item.image"
							mode="aspectFit"
							style="width: 120rpx;height: 120rpx;" />
						</view>
					</uv-upload>
				</view>
				<view class="icon"
				v-if="item.type == 1">
					<uv-icon
					name="arrow-right"
					size="30rpx"
					></uv-icon>
				</view>
			</view>
			
		</view>
			
		
		<view class="uni-color-btn" 
		v-if="formList.length > 0"
		@click="addMaterial()">
			提交
		</view>
		
		<view class="uni-uncolor-btn"
		@click="$refs.customerServicePopup.open()">
			联系客服
		</view>
		
		<view class="tips"
		style="text-align: center;padding: 20rpx 0;
		width: 750rpx;">
			如有疑问请联系客服
		</view>
		
		<customerServicePopup ref="customerServicePopup"/>
	</view>
</template>

<script>
	import customerServicePopup from '@/components/config/customerServicePopup.vue'
	export default {
		components : {
			customerServicePopup
		},
		data() {
			return {
				form : {
				},
				fileMapList : {},
				formList : [],
				id : 0,
				verification : {},
			}
		},
		onLoad({id}) {
			this.id = id
			this.queryCertById()
		},
		methods: {
			deleteImage(e){
				this.fileMapList[e.name].splice(e.index, 1)
			},
			afterRead(e){
				let self = this
				e.file.forEach(file => {
					self.$Oss.ossUpload(file.url).then(url => {
						self.fileMapList[e.name].push({
							url
						})
					})
				})
			},
			addMaterial(){
				
				this.formList.forEach(n => {
					if(n.type == 1){
						this.form[n.keyName] = this.fileMapList[n.keyName]
						.map((item) => item.url).join(",")
					}
				})
				
				if(this.$utils.verificationAll(this.form, this.verification)) {
					return
				}
				this.$api('addMaterial',this.form, res =>{
					if(res.code == 200){
						uni.showToast({
							title:'提交成功！等待审核',
							icon: 'none'
						})
						setTimeout(uni.navigateBack, 1000, -1)
					}
				})
			},
			queryCertById(){
				this.$api('queryCertById', {
					cerId : this.id,
				}, res => {
					if(res.code == 200){
						this.formList = res.result.employMaterialList
						
						res.result.employMaterialList.forEach(n => {
							if(n.type == 0){
								this.verification[n.keyName] = '请输入' + n.title
								this.form[n.keyName] = ''
							}else{
								this.verification[n.keyName] = '请上传' + n.title
								// this.fileMapList[n.keyName] = []
								this.$set(this.fileMapList, n.keyName, [])
							}
						})
						
					}
				})
			},
		}
	}
</script>

<style scoped lang="scss">
.page{
	min-height: 100vh;
	.required::before{
		content: '*';
		color: #f00;
	}
	.form-item{
		padding: 30rpx 0;
		display: flex;
		align-items: center;
		border-bottom: 1rpx solid #00000009;
		font-size: 28rpx;
		.label{
			font-weight: 600;
			margin-right: 50rpx;
			text{
				font-size: 24rpx;
				font-weight: 500;
			}
		}
		.input{
			margin-left: auto;
			flex-shrink: 0;
			image{
				
			}
			input{
				text-align: right;
			}
		}
		.icon{
			margin-left: 10rpx;
		}
	}
	.tips{
		font-size: 26rpx;
		color: #777;
		padding-bottom: 20rpx;
	}
	.form {
		padding: 0 30rpx;
		background-color: #fff;
		margin: 20rpx;
		border-radius: 20rpx;
		.upload{
			display: flex;
			justify-content: center;
			align-items: center;
			// width: 690rpx;
			width: 120rpx;
			height: 120rpx;
			border-radius: 50%;
			overflow: hidden;
			background-color: #f3f3f3;
			border-radius: 10rpx;
			// .btn-add{
			// 	margin: auto;
			// 	padding: 10rpx 20rpx;
			// 	background-color: $uni-color;
			// 	color: #fff;
			// 	border-radius: 10rpx;
			// }
		}
	}
}
</style>
