<template>
	<view>
		<view class="tips" v-if="item.isAuthentication === 1">
			<text class="icon">&#xe600;</text>
			<text>实名认证成功</text>
		</view>
		<view class="tips" v-else>
			<text class="icon">&#xe634;</text>
			<text>为保障资金安全,用户需进行实名认证,请务必认真填写</text>
		</view>
		<view class="main">
			<view v-if="step === 1">
				<u-divider text="本人二代身份证"></u-divider>
				<view class="r">
					<view class="r50">
						<card v-model="item.p1" text="点击拍摄/上传人像面" icon="&#xe690;" :read="item.isAuthentication === 1" side="face" @success="success"></card>
					</view>
					<view class="r50">
						<card v-model="item.p2" text="点击拍摄/上传国徽面" icon="&#xe61f;" :read="item.isAuthentication === 1" side="back" @success="success"></card>
					</view>
				</view>
			</view>
			<view v-else>
				<view class="form">
					<view class="form_group">
						<view class="lable re">姓名</view>
						<input type="text" placeholder="请输入姓名" v-model="item.name" :disabled="true" />
					</view>
					<view class="form_group">
						<view class="lable re">身份证</view>
						<input type="text" placeholder="请输入身份证" v-model="item.idCard" :disabled="true" />
					</view>
				</view>
				<view class="form" style="margin-top: 15px">
					<view class="form_group">
						<view class="lable re">手机号</view>
						<input type="text" placeholder="请输入手机号" v-model="item.phone" />
					</view>
					<view class="form_group">
						<view class="lable re">支付宝</view>
						<input type="text" placeholder="请输入支付宝账号" v-model="item.alipay" />
					</view>
				</view>
			</view>
			<view class="form" v-if="item.isAuthentication === 1" style="margin-top: 10px">
				<view class="form_group">
					<view class="lable">姓名</view>
					<input type="text" v-model="item.name" :disabled="true" />
				</view>
				<view class="form_group">
					<view class="lable">身份证</view>
					<input type="text" v-model="item.idCard" :disabled="true" />
				</view>
				<view class="form_group">
					<view class="lable">有效期</view>
					<input type="text" v-model="item.endDate" :disabled="true" />
				</view>
			</view>
			<button class="btn" @click="next()" v-if="step === 1 && item.isAuthentication != 1">下一步</button>
			<button class="btn" @click="save()" v-if="step === 2 && item.isAuthentication != 1">确定</button>
		</view>
	</view>
</template>

<script>
export default {
	data() {
		return {
			step: 1,
			item: {}
		};
	},
	onLoad() {
		this.getData();
	},
	methods: {
		getData() {
			this.http.request({
				url: '/app/user/info',
				data: this.item,
				success: (res) => {
					this.item = res.data.data;
					if (this.item.isAuthentication === 1) {
						uni.setNavigationBarTitle({ title: '我的认证' });
					}
				}
			});
		},
		success(res) {
			if (res.side == 'face') {
				this.item.name = res.data.name;
				this.item.idCard = res.data.num;
				this.item.sex = res.data.sex;
				this.item.address = res.data.address;
				this.item.nationality = res.data.nationality;
				this.item.birth = res.data.birth;
			} else {
				this.item.endDate = res.data.end_date;
			}
		},
		next() {
			if (!this.item.name) {
				uni.showModal({ content: '请上传身份证人像面', showCancel: false });
				return;
			}
			if (!this.item.endDate) {
				uni.showModal({ content: '请上传身份证国徽面', showCancel: false });
				return;
			}
			this.step = 2;
		},
		save() {
			let rule = [
				{ name: 'name', checkType: 'notnull', errorMsg: '请输入姓名' },
				{ name: 'idCard', checkType: 'notnull', errorMsg: '请输入身份证' },
				{ name: 'p1', checkType: 'notnull', errorMsg: '请上传身份证人面像' },
				{ name: 'p2', checkType: 'notnull', errorMsg: '请上传身份证人徽面' },
				{ name: 'phone', checkType: 'phone', errorMsg: '请请输入手机号' },
				{ name: 'alipay', checkType: 'notnull', errorMsg: '请输入支付宝账号' }
			];
			if (!this.verify.check(this.item, rule)) {
				uni.showModal({ content: this.verify.error, showCancel: false });
				return false;
			}
			this.http.request({
				url: '/app/user/auth',
				data: this.item,
				method: 'POST',
				success: (res) => {
					uni.showModal({
						title: '提示',
						content: '实名认证成功。',
						showCancel: false,
						success: (res) => {
							uni.navigateBack();
						}
					});
				}
			});
		}
	}
};
</script>

<style lang="scss">
.btn {
	margin-top: 30px;
}
</style>