<template>
	<view @click.native="init" class="page">
		<view class="car-header dis a-c">
			<image src="/static/image/car-insure/Group.png" mode="" style="width: 40px;height: 40px;"></image>
			<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 mt-3">
			<view class="sub-orders " v-for="(item,index) in sublist" :key="index">
				<view class="status dis a-c j-s">
					<view v-for="(statusitem, statusindex) in statusList" :key="statusindex" class="dis a-c"
						style="font-weight: bold;" v-if="item.orderstatus == statusitem.value">
						<image :src="statusitem.src" mode="" style="width: 22px;height: 22px;margin-right: 5px;">
						</image>
						<text :style="{color: statusitem.color}">{{statusitem.label}}</text>
					</view>
					<text>￥{{item.sumpremium}}</text>
				</view>
				<view class="orders-centre">
					<text>{{item.inscompany}}</text>
					<view class="sum dis f-wrap">
						<view v-if="item.jqpremium">交强险：￥{{item.jqpremium}}</view>
						<view v-if="item.sypremium">商业险：￥{{item.sypremium}}</view>
						<view>车船税：￥{{item.taxamount}}</view>
						<view v-if="item.jypremium">驾意险：￥{{item.jypremium}}</view>
					</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">
					<text class="arrivalNavigations" :data-id="item.id" @tap.stop.prevent="Moremethods">更多
						<view class="arrivalNavigation" v-if="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>
					</text>
					<u-button
						v-if="item.orderstatus==2 && ['恒邦财险','安盛天平','中国人寿','众安财险','太平财险','紫金财险','永诚财险','国任财险','大家财险','华泰财险','中煤财险','华农财险','渤海财险'].includes(item.inscompany)"
						size="mini" type="error" :plain="true" style="margin-right:10px;"
						@click="queryStatus(item.id,item.inscompany)"
						:custom-style="{fontSize:'14px'}">查询缴费状态</u-button>
					<u-button v-if="item.orderstatus==2" size="mini" type="error" style="margin-right:10px;"
						:custom-style="{fontSize:'14px'}" :plain="true" @click="Payment(item.id)">二维码</u-button>
					<u-button v-if="(item.orderstatus==4 || item.orderstatus==1) && item.inscompany=='华泰财险'" size="mini"
						:custom-style="{fontSize:'14px'}" type="error" :plain="true"
						@click="huataiunderwriting(item.id)" style="margin-right:10px;">更新订单</u-button>
					<u-button
						v-if="item.orderstatus==1  && ['中煤财险','永诚财险','国任财险','大家财险','渤海财险'].includes(item.inscompany)"
						style="margin-right:10px;" size="mini" type="error" :plain="true"
						:custom-style="{fontSize:'14px'}" @click="underwriting(item.id,item.inscompany)">更新订单</u-button>
					<u-button :custom-style="{fontSize:'14px'}" size="mini" type="primary" :plain="true"
						@click="detial(item.id)">查看详情</u-button>

				</view>
			</view>
		</view>
		<o-empty v-if="sublist.length==0" />
		<!-- <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',
				// trajectoryShow: false,
				// trajectoryList: [],
				MoreShow: false,
				moreindex: "",
				companyId: "",
				modelcname: "",
				orderno: "",
				insuredname: "",
				licenseno: "",
				sublist: [],
				numList: [{
						name: '报价中'
					}, {
						name: '待核保'
					},
					{
						name: '核保退回'
					}, {
						name: '已核保待缴费'
					}, {
						name: '已承保'
					},

				],
				statusList: [{
						label: '报价中',
						value: 0,
						color: "#229805",
						src: "/static/image/car-insure/state1.png"
					},
					{
						label: '待核保',
						value: 1,
						color: "#FF5600",
						src: "/static/image/car-insure/state2.png"
					},
					{
						label: '已核保待缴费',
						value: 2,
						color: "#FF0F00",
						src: "/static/image/car-insure/state3.png"
					},
					{
						label: '已承保',
						value: 3,
						color: "#0052FF",
						src: "/static/image/car-insure/state4.png"
					},
					{
						label: '核保退回',
						value: 4,
						color: "#727272",
						src: "/static/image/car-insure/state5.png"
					}
				],
			}
		},
		computed: {
			...mapState(['userInfo']),
		},
		onLoad(params) {

			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,
					orderStatus: ""
				}
				let res = await this.$http.post('/insurance/order/queryQuoteHistory', 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;
						console.log(val);
					} 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/carInsure2/quoteDetail?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/orders1/paymentCode?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/orders1/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>
	.page {
		min-height: calc(100vh - 44px);
		background-color: #F8FAFE;
		padding: 16px 16px 30px 16px;
	}

	.car-header {
		width: 100%;
		height: auto;
		background: #FFFFFF;
		box-shadow: 0px 4px 10px 0px #DAE3F4;
		border-radius: 6px;
		padding: 8px 15px;


		.head-name {
			margin-left: 20px;

			&>text {
				font-weight: bold;
				font-size: 15px;
				color: #232832;
			}

			.name1 text {
				font-size: 14px;
				font-weight: bold;
				color: #333333;
			}
		}
	}

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

		.status {
			padding-bottom: 8px;
			border-bottom: 1px solid #EFEFEF;

			>text {
				color: #FF5600;
				font-size: 16px;
				font-weight: bold;
			}
		}

		.orders-centre {
			padding: 6px 0;
			border-bottom: 1px solid #EFEFEF;

			>text {
				font-size: 15px;
				font-weight: bold;
				color: #232832;
			}

			.sum {
				view {
					width: 50%;
					color: #2D4D89;
					font-size: 13px;
				}
			}
		}

		.orders-below {
			padding-top: 10px;
		}

	}


	.strong {
		font-weight: bold;
	}

	.arrivalNavigations {
		font-size: 14px;
		color: rgba(51, 51, 51, 0.8);
		margin-right: auto;
		position: relative;
	}

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

		.sideNavigation {
			width: 80px;
			background-color: #fff;
			box-shadow: 0px 4px 10px 0px #DAE3F4;
			border-radius: 10rpx;

			.sideNavigation-btn>view {
				text-align: center;
				font-size: 14px;
				color: #333333;
				text-align: center;
				padding: 6px 0;
				border-bottom: 1px solid #EFEFEF;

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

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

		}
	}
</style>