<template>
	<view style="height: 100vh;">
		<view class="page" id="panelcanvas">
			<view class="content">
				<view class="price dis a-c j-c">
					<image :src=" logoimg" mode="" style="width: 20px;height: 20px;">
					</image>
					<text style="font-weight: bold;margin-left: 6px; font-size: 16px;">{{dataInfo.inscompany}}报价单</text>
				</view>
				<view style="background-color: #fff;border-radius:0 0  6px 6px ;" class="dis f-c p-2 ">
					<view class="" style="border-bottom: 1px dashed  #EFEFEF;padding-bottom: 10px;">
						<view style="font-size: 16px;font-weight: bold;" class="dis j-s a-c ">
							<text style="color: #232832;">{{dataInfo.licenseno}}</text>
							<text style="color: #FF5600;">￥{{dataInfo.sumpremium}}</text>
						</view>
						<text
							style="color: rgba(51,51,51,0.8);font-size: 14px;font-weight: bold;letter-spacing:2px;">{{carinfo.modelcname}}</text>
					</view>
					<view class="dis  Circle" style="padding-top: 10px;">
						<view style="width: 49%;font-weight: bold;border-right: 1px dashed #EFEFEF;"
							v-if="dataInfo.jqstartdate" class="dis f-c a-start ">
							<text style="font-size: 14px;">{{ dataInfo.jqstartdate }}</text>
							<text style="font-size: 12px;color: rgba(51,51,51,0.8);">交强险起保日期</text>
						</view>
						<view style="width: 49%;font-weight: bold;" class="dis f-c a-end" v-if="dataInfo.systartdate">
							<text style="font-size: 14px;">{{ dataInfo.systartdate }}</text>
							<text style="font-size: 12px;color: rgba(51,51,51,0.8);">商业险起保日期</text>
						</view>
					</view>
				</view>
			</view>
			<view style="padding:0 16px;margin-top: -20px;">
				<view class="information">
					<view class="dis j-s a-c">
						<text>订单号：</text>
						<text>{{dataInfo.orderno}}</text>
					</view>
					<view class="dis j-s a-c">
						<text>车主姓名：</text>
						<text>{{ownerinfo.name}}</text>
					</view>
					<view class="dis j-s a-c">
						<text>投保人姓名：</text>
						<text>{{applyinfo.name}}</text>
					</view>
					<view class="dis j-s a-c">
						<text>被保人姓名：</text>
						<text>{{insureinfo.name}}</text>
					</view>
					<view class="dis j-s a-c">
						<text>发动机号：</text>
						<text>{{carinfo.engineNo}}</text>
					</view>
					<view class="dis j-s a-c">
						<text>车架号：</text>
						<text>{{carinfo.vinNo}}</text>
					</view>
					<view class="dis j-s a-c">
						<text>座位数：</text>
						<text>{{carinfo.seatCount}}</text>
					</view>
					<view class="dis j-s a-c" v-if="dataInfo.jqpremium">
						<text>交强险</text>
						<text>￥{{dataInfo.jqpremium}}</text>
					</view>
					<view class="dis j-s a-c">
						<text>车船税</text>
						<text v-if="dataInfo.taxamount">￥{{dataInfo.taxamount}}</text>
					</view>
					<view class="dis j-s a-c" v-if="dataInfo.jypremium">
						<text>驾意险</text>
						<text>￥{{dataInfo.jypremium}}</text>
					</view>
					<view class="dis  f-c " v-if="dataInfo.sypremium">
						<view class="dis j-s a-c">
							<text>商业险</text>
							<text>￥{{dataInfo.sypremium}}</text>
						</view>
						<view class=" dis j-s f-c p-2"
							style="border: none;background-color: #F9F9F9;border-radius: 10px;">
							<view class="coverage-sum dis j-s" v-for="(item,index) in dataInfo.kindinfo" :key="index">
								<view style="width: 33.33%;" class="dis a-c j-start">
									<text>{{item.kindName}}</text>
								</view>
								<view style="width: 33.33%;" class="dis a-c j-c"
									v-if="['D4', 'SY_FJ_YBW2'].includes(item.kindCode)">
									<text>{{item.unitAmount}}/座*{{dataInfo.carinfo.seatCount-1}}</text>
								</view>
								<view style="width: 33.33%;" class="dis a-c j-c"
									v-else-if="['MJ1', 'MJ2', 'MJ3', 'MJ4'].includes(item.kindCode)">
									<text>{{item.deductibleRate}}</text>
								</view>
								<view style="width: 33.33%;" class="dis a-c j-c"
									v-else-if="['TY1', 'TY2', 'TY3', 'TY4'].includes(item.kindCode)">
									<text>{{item.serviceTimes}}/次</text>
								</view>
								<view style="width: 33.33%;" class="dis a-c j-c" v-else>
									<text>{{item.amount}}</text>
								</view>
								<view style="width: 33.33%;" class="dis a-c j-end">
									<text>￥{{item.coveragePremium}}</text>
								</view>
							</view>
						</view>
					</view>
					<view class="dis j-s a-c">
						<text>应缴金额：</text>
						<text style="color: #0052FF;font-weight: bold;">￥{{dataInfo.sumpremium}}</text>
					</view>
				</view>
			</view>
			<kxj-watermark type="fixation" color="#333" :texts="texts" :count="12"></kxj-watermark>
		</view>
		<view class="fixed-bottom">
			<u-button type="primary" style="background-color:#0052FF ;" @tap="sendPayCode">发送微信</u-button>
		</view>
	</view>
</template>

<script>
	import {
		mapState,
		mapMutations
	} from 'vuex';
	import kxjWatermark from '@/components/common/kxj-watermark/kxj-watermark.vue'
	import {
		pathToBase64,
		base64ToPath
	} from '@/common/pdf.js'
	export default {
		components: {
			kxjWatermark
		},
		data() {
			return {
				texts: [],
				payImg: "",
				posterUrl: "",
				caricon: "", //carlogo
				show: false,
				companyId: "",
				dataInfo: {},
				carinfo: {}, //车辆信息
				ownerinfo: {}, //车主信息
				applyinfo: {}, //投保人信息
				insureinfo: {}, //被保人信息
				insCompanyList: [{
						name: "中煤财险",
						icon: "../../static/insuranceicon/zhongmei.png"
					}, //华农
					{
						name: "恒邦财险",
						icon: "../../static/insuranceicon/hengbang.png"
					},
					{
						name: "安盛天平",
						icon: "../../static/insuranceicon/ansheng.png"
					},
					{
						name: "中国人寿",
						icon: "../../static/insuranceicon/renshou.png"
					},
					{
						name: "众安财险",
						icon: "../../static/insuranceicon/zhongan.png"
					},
					{
						name: "永诚财险",
						icon: "../../static/insuranceicon/yongcheng.png"
					},
					{
						name: "永安财险",
						icon: "../../static/insuranceicon/yongan.png"
					},
					{
						name: "紫金财险",
						icon: "../../static/insuranceicon/zijin.png"
					},
					{
						name: "国任财险",
						icon: "../../static/insuranceicon/guoren.png"
					},
					{
						name: "华泰财险",
						icon: "../../static/insuranceicon/huatai.png"
					},
					{
						name: "大家财险",
						icon: "../../static/insuranceicon/dajia.png"
					},
					{
						name: "太平财险",
						icon: "../../static/insuranceicon/taiping.png"
					},
					{
						name: "华农财险",
						icon: "../../static/insuranceicon/huanong.png"
					},
					{
						name: "渤海财险",
						icon: "../../static/insuranceicon/bohai.png"
					},
				],
				logoimg: "",
			}
		},
		computed: {
			...mapState(["userLoginId"])

		},
		async onLoad(options) {
			this.texts = [this.userLoginId]
			this.companyId = options.companyId;
			let params = {
				companyId: options.companyId
			};
			let res = await this.$http.post('/insurance/order/getByCompanyId', params);
			var data = res.data;
			data.kindinfo.map((ele, index) => {
				switch (ele.kindCode) {
					case "A":
						if (ele.amount == 1) {
							ele.amount = "投保"
						} else {
							ele.amount = ele.amount
						}
						break;
					case "D4":
					case "SY_FJ_YBW2":
						ele.unitAmount = this.toChinesNum(ele.unitAmount);
						break;
					case "MJ1":
					case "MJ2":
					case "MJ3":
					case "MJ4":
						ele.deductibleRate = ele.deductibleRate + "%";
						break;
					default:
						ele.amount = this.toChinesNum(ele.amount);
				}
				return ele;
			});
			this.insCompanyList.map(ele => {
				if (ele.name == data.inscompany) {
					uni.getImageInfo({
						src: ele.icon,
						success: image => {
							pathToBase64(image.path)
								.then(base64 => {
									this.logoimg = base64;
								})
								.catch(error => {});
						},
						fail: err => {}
					});
				}
				return ele;
			})
			this.dataInfo = data;
			this.carinfo = data.carinfo;
			this.ownerinfo = data.ownerinfo;
			this.applyinfo = data.applyinfo;
			this.insureinfo = data.insureinfo;
			uni.getImageInfo({
				src: '../../static/icon/bjdcar.png',
				success: image => {
					pathToBase64(image.path)
						.then(base64 => {
							this.caricon = base64
						})
						.catch(error => {});
				},

			});
		},
		methods: {
			//页面返回按钮
			back() {
				uni.navigateBack({
					delta: 1, // 返回的页面数，如果是1表示返回上一页
					success: function() {}
				});
			},
			//本地图片转换成base64
			turnBase64Image() {
				this.
				uni.getImageInfo({
					src: img,
					success: image => {
						pathToBase64(image.path)
							.then(base64 => {
								this[key] = base64;
							})
							.catch(error => {});
					},
					fail: err => {}
				});
			},
			toChinesNum(num) {
				let overWan = Math.floor(num / 10000);
				let result = overWan + "万";
				return result;
			},
			//分享图片到微信
			sendPayCode() {
				if (this.payImg) {
					uni.share({
						provider: "weixin",
						scene: "WXSceneSession",
						type: 2,
						imageUrl: this.payImg
					})
				}
			},
			//页面截图转路径
			receiveRenderData(val) {
				this.posterUrl = val.replace(/[\r\n]/g, ''); // 去除base64位中的空格
				const imageStr = this.posterUrl;
				// 将base64转化为临时地址
				base64ToPath(imageStr).then(path => {
					this.payImg = path
				}).catch(error => {});
			},
			showLoading() {
				uni.showLoading({
					title: '正在生成图片'
				});
			},

			hideLoading() {
				uni.hideLoading();
			},
		},
	}
</script>
<script module="canvasImage" lang="renderjs">
	import html2canvas from 'html2canvas'
	export default {
		data() {
			return {

			}
		},
		mounted() {
			// #ifdef APP-PLUS
			setTimeout(() => {
				this.canvasImage.generateImage()
			}, 1000);
			// #endif


		},
		methods: {
			// #ifdef APP-PLUS
			generateImage() {
				setTimeout(() => {
					this.$ownerInstance.callMethod('showLoading')
					const dom = document.getElementById('panelcanvas') // 需要生成图片内容的 dom 节点
					html2canvas(dom, {
						width: dom.clientWidth, //dom 原始宽度
						height: dom.clientHeight,
						scrollY: 0, // html2canvas默认绘制视图内的页面，需要把scrollY，scrollX设置为0
						scrollX: 0,
						useCORS: true, //支持跨域
						// allowTaint: false,
						scale: 3, // 设置生成图片的像素比例，默认是1，如果生成的图片模糊的话可以开启该配置项
					}).then((canvas) => {
						// 生成成功
						this.$ownerInstance.callMethod('hideLoading')
						this.$ownerInstance.callMethod('receiveRenderData', canvas.toDataURL('image/png'))
					}).catch(err => {
						// 生成失败 弹出提示弹窗
						this.$ownerInstance.callMethod('_errAlert', `【生成图片失败，请重试】${err}`)
					})
				}, 300)
			}
			// #endif
		},
	}
</script>
<style lang="scss" scoped>
	@import '@/style/mixin.scss';

	.page {
		background-color: #F8FAFE;
		padding-bottom: 100px;
		box-sizing: border-box;
	}

	.fixed-bottom {
		position: fixed;
		bottom: 0;
		width: 100%;
		height: 62px;
		background-color: #FFFFFF;
		padding: 16px;
		box-shadow: 0px -4px 10px 0px #DAE3F4;
		border-radius: 0px 0px 0px 0px;
	}

	.content {
		width: 100%;
		height: 214px;
		background: linear-gradient(180deg, #0052FF 0%, #F8FAFE 100%);
		padding: 10px 16px 150px 16px;

		.price {
			width: 100%;
			height: 40px;
			background: #FFFFFF;
			border-radius: 6px 6px 0px 0px;
		}
	}

	.information {
		width: 100%;
		height: auto;
		background-color: #fff;
		box-shadow: 0px 4px 10px 0px #DAE3F4;
		border-radius: 6px;
		margin-top: 10px;
		padding: 0 10px;

		>view {
			padding: 10px 0;
			border-bottom: 1px solid #f2f2f2;

			text {
				font-size: 14px;
				color: #232832;
			}

		}

		:last-child {
			border: none;
		}
	}


	.Basic-information {
		background-color: white;
		width: 100%;
		height: auto;

		.basic-logo {
			padding: 10px 16px;
			border-bottom: 1px solid #f2f2f2;

			image {
				width: 50px;
				height: 50px;
				margin-right: 20px;
			}

			text {
				font-size: 12px;
			}

			text:first-child {
				font-weight: bold;
				font-size: 18px;
			}
		}

		.basic-data {
			padding: 16px;

			.arrange {
				margin: 4px 0;
				font-size: 14px;

				text:first-child {
					font-weight: bold;
					margin-right: 5px;
				}

				text:last-child {
					color: #606266;
				}

				&::before {
					content: "·";
					color: #606266;
					margin-right: 10px;
					font-weight: bold;
				}

			}
		}

		.bjdCarSum {
			padding: 10px 16px;
			border-bottom: 1px solid #f2f2f2;
			font-weight: bold;
			font-size: 14px;
		}

		.coverage {
			padding: 10px 16px;

			.coverage-title {
				width: 100%;

				view:first-child {
					border-top-left-radius: 8px;
				}

				view:last-child {
					border-top-right-radius: 8px;
				}

				view:nth-child(2) {
					border-left: none;
					border-right: none;
				}

				view {
					width: 33.33%;
					text-align: center;
					background: #ff8f63;
					color: #fff;
					padding: 6px 16px;
					border: 1px solid #fff;
					font-size: 12px;
					box-sizing: border-box;
				}

			}

			.coverage-sum {
				width: 100%;

				view {
					width: 33.33%;
					font-size: 12px;
					padding: 6px 16px;
				}
			}
		}

	}

	.Circle {
		position: relative;

		&::before {
			display: block;
			content: "";
			position: absolute;
			width: 10px;
			height: 10px;
			background: #92b5fe;
			top: -5px;
			left: -15px;
			border-radius: 50%;
		}

		&::after {
			content: "";
			position: absolute;
			width: 10px;
			height: 10px;
			background: #92b5fe;
			top: -5px;
			right: -15px;
			border-radius: 50%;
		}

	}

	.footer-button {
		z-index: 9999;
		margin-top: 20px;
		position: fixed;
		bottom: 0;
		width: 100%;
		background: white;
		padding: 10px 20px;

		button {
			width: 70%;
			cursor: pointer;
		}
	}

	.tip {
		width: 100%;
		background-color: #fff;
		border-radius: 10upx;
		font-size: 32upx;
		font-weight: bold;
		margin: 0 auto;
		padding: 20px;
		box-sizing: border-box;
		position: fixed;
		bottom: 0;
	}

	/* 底部的样式Start */
	.infoBottom {
		height: 140upx;
		position: fixed;
		bottom: 0;
		left: 0;
		right: 0;
		background: #ea552d;
		border-top: 1upx solid #ea552d;
		z-index: 99;
		margin-top: 100px;
	}

	.infoBottom>button {
		// font-size: 30upx;
		background: #fff;
		color: #333;
		flex: 1;
		margin: 0upx 30px;
		font-weight: bold;
	}

	/* 底部的样式End */
	.watermark {
		position: fixed;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		font-size: 24px;
		color: rgba(0, 0, 0, 0.3);
		pointer-events: none;
		z-index: 9999;
	}
</style>