<template>
	<view @click.native="init">
		<view class="car-header dis a-c">
			<view class="icon-radius">
				<image src="../../static/icon/insurance.png" mode=""></image>
			</view>
			<view class="dis f-c head-name">
				<text>{{licenseno}}</text>
				<view class="name1">
					<text style="margin-right: 10px;">{{insuredname}}</text>
					<text>{{modelcname}}</text>
				</view>
			</view>
		</view>
		<view class="pdd" style="padding-top: 120px;">
			<view class="sub-orders " v-for="(item,index) in sublist" :key="index">
				<view class="orders-upper dis j-s">
					<view class="dis a-c">
						<text class="strong">{{item.inscompany}}</text>
						<text class="strong" style="color: #ff9000;">（ {{item.agreementName}} ）</text>
					</view>
					<view class="">
						<text class="strong">{{licenseno}}</text>
					</view>
				</view>
				<view class="orders-centre dis f-c  strong">
					<view class="dis j-s a-c">
						<text>￥{{item.sumpremium}}</text>
						<view v-for="(statusitem,statusindex) in statusList" :key="statusindex"
							v-if="item.orderstatus==statusitem.value" :style="{color:statusitem.color}">
							{{statusitem.label}}
						</view>
					</view>
					<view class="dis f-wrap" style="font-size: 12px;color: #276D6F;">
						<text v-if="item.jqpremium">交强险：￥{{item.jqpremium}}</text>
						<text v-if="item.sypremium">商业险：￥{{item.sypremium}}</text>
						<text>车船税：￥{{item.taxamount}}</text>
						<text v-if="item.jypremium">驾意险：￥{{item.jypremium}}</text>
					</view>
					<view v-if="item.auditopinion" class="dis f-c" style="font-size: 12px;">
						<text>审核意见</text>
						<text>{{item.auditopinion}}</text>
					</view>
				</view>
				<view class="orders-below dis j-end">
					<u-button
						v-if="item.orderstatus==2 && ['恒邦财险','安盛天平','中国人寿','众安财险','太平财险','紫金财险','永诚财险','国任财险','大家财险','华泰财险','中煤财险','华农财险','渤海财险'].includes(item.inscompany)"
						size="mini" type="error" shape="circle"
						@click="queryStatus(item.id,item.inscompany)">查询缴费状态</u-button>
					<u-button v-if="item.orderstatus==2" size="mini" type="error" shape="circle"
						@click="Payment(item.id)">二维码</u-button>
					<u-button v-if="(item.orderstatus==4 || item.orderstatus==1) && item.inscompany=='华泰财险'" size="mini"
						type="error" shape="circle" @click="huataiunderwriting(item.id)">更新订单</u-button>
					<u-button
						v-if="item.orderstatus==1  && ['中煤财险','永诚财险','国任财险','大家财险','渤海财险'].includes(item.inscompany)"
						size="mini" type="error" shape="circle"
						@click="underwriting(item.id,item.inscompany)">更新订单</u-button>
					<u-button size="mini" type="primary" shape="circle" @click="detial(item.id)">查看详情</u-button>
					<u-button class="arrivalNavigations" size="mini" type="warning" :data-id="item.id" shape="circle"
						@click.native="Moremethods">更多操作
						<view class="arrivalNavigation" v-show="item.checked">
							<view class="d4"></view>
							<view class="sideNavigation">
								<view class="sideNavigation-btn">
									<view @click="bjdpreview(item.id)">报价单</view>
									<view v-if="item.orderstatus==2 && ['紫金财险'].includes(item.inscompany)"
										@click="cancelorder(item.id)">撤单</view>
									<view v-if="item.orderstatus==2" @click="revokeCode(item.id)">撤销二维码</view>
									<!-- <view @click="orderTrajectory(item.id)">订单轨迹</view> -->
								</view>
							</view>
						</view>
					</u-button>
				</view>
			</view>
		</view>
		<!-- <u-popup v-model="trajectoryShow" mode="center" border-radius="8" width="80%">
			<u-steps mode="number" :list="numList" :current="2" direction="column" style="padding: 20px;"></u-steps>
		</u-popup> -->
	</view>
</template>
<script>
	import store from '@/store';
	import {
		mapState,
		mapMutations
	} from "vuex"
	export default {
		data() {
			return {
				show: true,
				modeClass: 'fade',
				styles: {},
				// trajectoryShow: false,
				// trajectoryList: [],
				MoreShow: false,
				moreindex: "",
				companyId: "",
				modelcname: "",
				orderno: "",
				insuredname: "",
				licenseno: "",
				sublist: [],
				numList: [{
						name: '报价中'
					}, {
						name: '待核保'
					},
					{
						name: '核保退回'
					}, {
						name: '已核保待缴费'
					}, {
						name: '已承保'
					},

				],
				statusList: [{
						label: '报价中',
						value: 0,
						color: "#1E9600"
					},
					{
						label: '待核保',
						value: 1,
						color: "#f5af19"
					},
					{
						label: '已核保待缴费',
						value: 2,
						color: "#f12711"
					},
					{
						label: '已承保',
						value: 3,
						color: "#7F7FD5"
					},
					{
						label: '核保退回',
						value: 4,
						color: "#bdc3c7"
					}
				],
			}
		},
		computed: {
			...mapState(['userInfo']),
		},
		onLoad(params) {
			this.styles = {
				justifyContent: 'center',
				alignItems: 'center',
				width: '100px',
				height: '100px',
				borderRadius: '5px',
				textAlign: 'center',
				backgroundColor: '#4cd964',
				boxShadow: '0 0 5px 1px rgba(0,0,0,0.2)'
			}
			let item = JSON.parse(params.orderno);
			this.orderno = item.orderno;
			this.modelcname = item.modelcname;
			this.insuredname = item.insuredname;
			this.licenseno = item.licenseno;
			this.querylist();
		},
		methods: {
			handle(type) {
				this.show = !this.show
				this.modeClass = type
			},
			async querylist() {
				let params = {
					orderNo: this.orderno
				}
				let res = await this.$http.post('/insurance/order/querySuborder', params)
				this.sublist = res.data;
				this.sublist.map(val => {
					val.checked = false;
					return val;
				})
			},
			//更多操作
			Moremethods(e) {
				let id = e.currentTarget.dataset.id;
				let list = this.sublist;
				this.sublist = list.map(val => {
					if (val.id == id) {
						val.checked = !val.checked;
					} else {
						val.checked = false;
					}
					return val;
				})
			},
			// //订单轨迹
			// async orderTrajectory(id) {
			// 	let res = await this.$http.get('/insurance/track/queryBySuborder?suborder=' + id);
			// 	if (res.code == '200') {
			// 		this.trajectoryList = res.data;
			// 		this.trajectoryShow = true;
			// 	}
			// },
			//查看详情
			detial(id) {
				uni.navigateTo({
					url: "/pages/carInsure1/quoteDetail1?companyId=" + id
				})
			},
			//付款码
			Payment(id) {
				let pro = this.userInfo.sysUser.managementSource;
				if (pro == '3') {
					uni.navigateTo({
						url: "/pages/carInsure1/payCode2?companyId=" + id
					})
				} else {
					uni.navigateTo({
						url: "/pages/carInsure1/payCode1?companyId=" + id
					})
				}
			},
			//报价单
			bjdpreview(id) {
				let pro = this.userInfo.sysUser.managementSource;
				if (pro == '3') {
					uni.navigateTo({
						url: "/pages/orders/quotation1?companyId=" + id
					})
				} else {
					uni.navigateTo({
						url: "/pages/orders/quotation?companyId=" + id
					})
				}
			},
			//撤销二维码
			async revokeCode(id) {
				let res = await this.$http.post('/order/qrCode/destructionQrCode?areaCompanyId=' + id)
				if (res.code == '200') {
					uni.showToast({
						title: res.msg,
						icon: 'success',
						duration: 1000
					});
					this.querylist();
				} else {
					uni.showToast({
						title: res.msg,
						icon: 'none',
						duration: 1000
					});
				}
			},
			async huataiunderwriting(id) {
				let params = {
					companyId: id,
				}
				let res = await this.$http.post('/order/huaTaiApi/auditStatusQuery', params)
				if (res.code == '200') {
					uni.showToast({
						title: res.msg,
						icon: 'success',
						duration: 1000
					});
					this.querylist();
				} else {
					uni.showToast({
						title: res.msg,
						icon: 'none',
						duration: 1000
					});
				}
			},

			//核保状态查询
			async underwriting(id, inscompany) {
				switch (inscompany) {
					case "中煤财险":
						let zmres = await this.$http.post('/order/zhongMeiApi/auditStatusQuery', {
							companyId: id
						})
						if (zmres.code == '200') {
							uni.showToast({
								title: zmres.msg,
								icon: 'none',
								duration: 1000
							});
							this.querylist();
						} else {
							uni.showToast({
								title: zmres.msg,
								icon: 'error',
							});
						}
						break;
					case "永诚财险":
						let ycres = await this.$http.get('/api/yongCheng/orderStatusBySuborderId/' + id);
						if (ycres.code == '200') {
							uni.showToast({
								title: ycres.msg,
								icon: 'none',
								duration: 2000
							});
							this.querylist();
						} else {
							uni.showToast({
								title: ycres.msg,
								icon: 'error',
							});
						}
						break;
					case "国任财险":
						let grres = await this.$http.post('/api/guoRen/updateOrderInfo', {
							companyId: id
						});
						if (grres.code == '200') {
							uni.showToast({
								title: grres.msg,
								icon: 'none',
								duration: 2000
							});
							this.querylist();
						} else {
							uni.showToast({
								title: grres.msg,
								icon: 'error',
							});
						}
						break;
					case "大家财险":
						let djres = await this.$http.post('/api/dajia/verifyPayment', {
							companyId: id
						});
						if (djres.code == '200') {
							uni.showToast({
								title: djres.msg,
								icon: 'none',
								duration: 2000
							});
							this.querylist();
						} else {
							uni.showToast({
								title: djres.msg,
								icon: 'error',
							});
						}
						break;
					case "渤海财险":
						let bhres = await this.$http.post('/order/boHaiApi/auditStatusQuery', {
							companyId: id
						});
						if (bhres.code == '200') {
							uni.showToast({
								title: bhres.msg,
								icon: 'none',
								duration: 2000
							});
							this.querylist();
						} else {
							uni.showToast({
								title: bhres.msg,
								icon: 'error',
							});
						}
						break;
					default:
						break;
				}

			},
			//撤单
			async cancelorder(item) {
				let res = await this.$http.post('/order/zijin/cancel', {
					companyId: item
				})
				if (res.code == '200') {
					uni.showToast({
						title: res.msg,
						icon: 'none',
						duration: 1000
					});
					this.querylist();
				} else {
					uni.showToast({
						title: res.msg,
						icon: 'error',
					});
				}
			},
			async queryStatus(id, inscompany) {
				switch (inscompany) {
					case "紫金财险":
						let zjres = await this.$http.post('/order/zijin/getOrderDetail', {
							companyId: id
						});
						if (zjres.code == '200') {
							uni.showToast({
								title: zjres.msg,
								icon: 'none',
								duration: 2000
							});
							this.querylist();
						} else {
							uni.showToast({
								title: zjres.msg,
								icon: 'error',
							});
						}
						break;
					case "大家财险":
						let djres = await this.$http.post('/api/dajia/verifyPayment', {
							companyId: id
						});
						if (djres.code == '200') {
							uni.showToast({
								title: djres.msg,
								icon: 'none',
								duration: 2000
							});
							this.querylist();
						} else {
							uni.showToast({
								title: djres.msg,
								icon: 'error',
							});
						}
						break;
					case "华泰财险":
						let htres = await this.$http.post('/order/huaTaiApi/paymentEnquiry', {
							companyId: id
						});
						if (htres.code == '200') {
							uni.showToast({
								title: htres.msg,
								icon: 'none',
								duration: 2000
							});
							this.querylist();
						} else {
							uni.showToast({
								title: htres.msg,
								icon: 'error',
							});
						}
						break;
					case "永诚财险":
						let ycres = await this.$http.get(
							'/api/yongCheng/orderStatusBySuborderId/' + id);
						if (ycres.code == '200') {
							uni.showToast({
								title: ycres.msg,
								icon: 'none',
								duration: 2000
							});
							this.querylist();
						} else {
							uni.showToast({
								title: ycres.msg,
								icon: 'error',
							});
						}
						break;
					case "国任财险":
						let grres = await this.$http.post('/api/guoRen/updateOrderInfo', {
							companyId: id
						});
						if (grres.code == '200') {
							uni.showToast({
								title: grres.msg,
								icon: 'none',
								duration: 2000
							});
							this.querylist();
						} else {
							uni.showToast({
								title: grres.msg,
								icon: 'error',
							});
						}
						break;
					case "中煤财险":
						let zmres = await this.$http.post('/order/zhongMeiApi/paymentEnquiry', {
							companyId: id
						});
						if (zmres.code == '200') {
							uni.showToast({
								title: zmres.msg,
								icon: 'none',
								duration: 2000
							});
							this.querylist();
						} else {
							uni.showToast({
								title: zmres.msg,
								icon: 'error',
							});
						}
						break;
					case "渤海财险":
						let bhres = await this.$http.post('/order/boHaiApi/getOrderDetail', {
							companyId: id
						});
						if (bhres.code == '200') {
							uni.showToast({
								title: bhres.msg,
								icon: 'none',
								duration: 2000
							});
							this.querylist();
						} else {
							uni.showToast({
								title: bhres.msg,
								icon: 'error',
							});
						}
						break;
					default:
						let pythonres = await this.$http.post('/insurance/crawler/verifyPayment', {
							subOrderNo: id
						});
						if (pythonres.code == '200') {
							uni.showToast({
								title: pythonres.msg,
								icon: 'none',
								duration: 2000
							});
							this.querylist();
						} else {
							uni.showToast({
								title: pythonres.msg,
								icon: 'error',
							});
						}
						break;
				}
			},
			init() {
				this.sublist = this.sublist.map(val => {
					val.checked = false;
					return val;
				})
			}

		}
	}
</script>
<style>
	page {
		background: #f2f2f2;
	}
</style>
<style lang="scss" scoped>
	.car-header {
		width: 100%;
		height: auto;
		background: linear-gradient(to right, #ede574, #e1f5c4);
		padding: 20px;
		box-sizing: border-box;
		position: fixed;
		z-index: 99;

		.icon-radius {
			width: 70px;
			height: 70px;
			background: white;
			border-radius: 50%;
			box-shadow: 0 0 4px 1px #999;
			padding: 12px;
			margin-right: 20px;

			image {
				width: 100%;
				height: 100%;
			}
		}

		.head-name {
			&>text {
				font-weight: bold;
				font-size: 20px;
			}

			.name1 text {
				font-weight: bold;
			}
		}
	}

	.sub-orders {
		width: 100%;
		background: white;
		border-radius: 6px;
		padding: 20px;
		box-shadow: 0 0 4px 1px #dfdfdf;
		padding-bottom: 0;
		margin-bottom: 10px;

		.orders-upper {
			view {
				&>text:first-child {
					margin-right: 10px;
				}

				&>text:last-child {
					font-size: 12px;
				}
			}
		}

		.orders-centre {
			color: #ff9000;
			border-bottom: 2px dashed #dfdfdf;
			padding: 10px 0;

			.dis {
				& text {
					margin-right: 5px;
				}
			}
		}

		.orders-below {
			padding: 10px 0;

			& button {
				margin-left: 10px;
			}
		}
	}

	.pdd {
		padding: 10px;
	}

	.strong {
		font-weight: bold;
	}

	.arrivalNavigations {
		position: relative;
	}

	//从这里开始是弹出框的样式  不需要搜索框的 前面样式都不用加
	.arrivalNavigation {
		width: 250rpx;
		position: absolute;
		right: -50px;
		top: 30px;
		z-index: 99;

		.sideNavigation {
			width: 90px;
			background-color: #999;
			color: #eee;
			border-radius: 10rpx;

			.sideNavigation-btn>view {
				text-align: center;
				font-size: 25rpx;
				text-align: center;
				padding: 6px 0;
				border-bottom: 1px solid #aeaeae;

				&:last-child {
					border: none;
				}
			}


		}

		.d4 {
			width: 0;
			height: 0;
			margin-left: 52px;
			margin-top: -20rpx;
			border-width: 20rpx;
			border-style: solid;
			border-color: transparent #999 transparent transparent;
			transform: rotate(90deg);
			/*顺时针旋转90°*/

		}
	}
</style>