<!--证件照片上传（单张）-->
<template>
	<view class="msf">
		<view class="sfz" @click="chooseImage()" :style="{ border: fileName ? '' : '1px solid #eeeeee' }">
			<image :src="ip + fileName" mode="widthFix" v-if="fileName"></image>
			<view class="uploads" v-else>
				<view class="icon" v-html="icon"></view>
			</view>
		</view>
		<view class="text" v-if="!read">{{ text }}</view>
	</view>
</template>
<script>
export default {
	name: 'card',
	props: {
		icon: {
			type: String
		},
		text: {
			type: String
		},
		value: {
			type: String
		},
		side: {
			type: String
		},
		read: {
			type: Boolean,
			default: false
		}
	},
	data() {
		return {
			fileName: this.value,
			ip: this.http.ip
		};
	},
	watch: {
		value(newValue) {
			this.fileName = newValue;
		}
	},
	methods: {
		chooseImage() {
			if (this.read) {
				this.preview(this.fileName);
				return;
			}
			//照片选择
			uni.chooseImage({
				count: 1, //默认9
				sizeType: ['compressed'], //可以指定是原图还是压缩图，默认二者都有
				success: (res) => {
					res.tempFilePaths.forEach((path) => {
						uni.showLoading({ title: '正在上传图片', mask: true });
						uni.uploadFile({
							url: this.ip + '/app/common/upload',
							filePath: path,
							name: 'file',
							header: { Authorization: this.getUser().token },
							success: (res) => {
								let data = JSON.parse(res.data);
								if (data.code == 200) {
									this.fileName = data.fileName;
						/* 			if(this.side=='face'){
										this.ocr({ imageUrl:'https://chenglantimes.com/prod-api/profile/upload/2024/05/28/hMVl1kQcMSdUc62e08bd903664fce4b69068f2ac9c93_20240528144808A001.jpg', side: this.side });
									}
									if(this.side=='back'){
										this.ocr({ imageUrl:'https://chenglantimes.com/prod-api/profile/upload/2024/05/28/usPhkg6WXRTv578724d2803a2ac809477cfcba4f6d46_20240528144811A002.jpg', side: this.side });
									} */
									this.ocr({ imageUrl: this.ip + data.fileName, side: this.side });
								} else {
									uni.showModal({ content: data.msg, showCancel: false });
								}
								uni.hideLoading();
							},
							fail: (res) => {
								uni.hideLoading();
								uni.showModal({ content: '图片上传失败', showCancel: false });
							}
						});
					});
				}
			});
		},
		ocr(item) {
			this.http.request({
				url: '/app/common/ocr',
				data: item,
				method: 'POST',
				success: (res) => {
					if (this.side == 'face') {
						if (res.data.data) {
							this.$emit('input', this.fileName);
							this.$emit('success', { side: this.side, data: res.data.data });
						} else {
							uni.showModal({ content: '请上传正确的身份证人像面', showCancel: false });
						}
					}
					if (this.side == 'back') {
						if (res.data.data) {
							this.$emit('input', this.fileName);
							this.$emit('success', { side: this.side, data: res.data.data });
						} else {
							uni.showModal({ content: '请上传正确的身份证国徽面', showCancel: false });
						}
					}
				}
			});
		},
		// 预览图片
		preview(item) {
			uni.previewImage({
				urls: [this.ip + item],
				current: this.ip + item,
				success: (res) => {}
			});
		},
		del(item) {
			this.value.splice(this.value.indexOf(item), 1);
			this.$emit('input', this.value);
			this.$forceUpdate();
		}
	}
};
</script>

<style lang="scss" scoped>
.msf {
	padding: 0px 0px 15px 0px;
	text-align: center;
	color: $font-c;
	.sfz {
		text-align: center;
		border-radius: 5px;
		overflow: hidden;
		background-color: white;
		height: 185px;
		image {
			width: 100%;
			margin: 0 auto;
			border-radius: 5px;
		}
		.uploads {
			width: 100%;
			text-align: center;
			.icon {
				font-size: 80px;
				line-height: 160px;
			}
		}
	}
	.text {
		font-size: 14px;
		padding-top: 5px;
	}
}
</style>
