瀏覽代碼

1、报价页面险种大类取消功能
2、非车保单问题
3、险种方案不符问题

@dongkboy 1 年之前
父節點
當前提交
f371575945
共有 68 個文件被更改,包括 17744 次插入330 次删除
  1. 796 0
      components/modules/carInsure/OCRComponent/OCRComponent.vue
  2. 0 0
      components/modules/carInsure/personnel/personnelInfo.vue
  3. 0 0
      components/modules/carInsure/uni-plate-input/uni-plate-input.css
  4. 216 183
      components/modules/carInsure/uni-plate-input/uni-plate-input.vue
  5. 6 4
      components/uni-forms-item/uni-forms-item.vue
  6. 8 8
      config/baseUrl.js
  7. 32 13
      config/login.js
  8. 8 8
      manifest.json
  9. 7 6
      node_modules/uview-ui/components/u-car-keyboard/u-car-keyboard.vue
  10. 133 1
      pages.json
  11. 7 4
      pages/carInsure1/carInfo1.vue
  12. 1 0
      pages/carInsure1/payCode1.vue
  13. 198 0
      pages/carInsure1/quote1.vue
  14. 23 57
      pages/carInsure1/quoteDetail1.vue
  15. 80 5
      pages/carInsure1/underwriting1.vue
  16. 1469 0
      pages/carInsure2/Information.vue
  17. 201 0
      pages/carInsure2/carType.vue
  18. 1043 0
      pages/carInsure2/entry.vue
  19. 532 0
      pages/carInsure2/insuranceType.js
  20. 1614 0
      pages/carInsure2/insureItems.vue
  21. 3773 0
      pages/carInsure2/quote.vue
  22. 3294 0
      pages/carInsure2/quoteDetail.vue
  23. 2 2
      pages/index/index.vue
  24. 22 1
      pages/login/login.vue
  25. 4 4
      pages/my/my.vue
  26. 4 0
      pages/orders/quotation.vue
  27. 39 2
      pages/orders/subOrders.vue
  28. 710 0
      pages/orders1/orders.vue
  29. 467 0
      pages/orders1/paymentCode.vue
  30. 446 0
      pages/orders1/paymentCode1.vue
  31. 613 0
      pages/orders1/quotation.vue
  32. 529 0
      pages/orders1/quotation1.vue
  33. 676 0
      pages/orders1/quoteHistory.vue
  34. 666 0
      pages/orders1/subOrders.vue
  35. 35 2
      pages/roadRescue/Grounding.vue
  36. 32 3
      pages/roadRescue/replacement.vue
  37. 32 3
      pages/roadRescue/trailer.vue
  38. 6 6
      pages/wallet/wallet.vue
  39. 1 1
      pages/wallet/withdraw.vue
  40. 二進制
      static/image/car-insure/Frame.png
  41. 二進制
      static/image/car-insure/Frame1.png
  42. 二進制
      static/image/car-insure/Group.png
  43. 二進制
      static/image/car-insure/Group30.png
  44. 二進制
      static/image/car-insure/advance.png
  45. 二進制
      static/image/car-insure/before.png
  46. 二進制
      static/image/car-insure/carback.png
  47. 二進制
      static/image/car-insure/carban.png
  48. 二進制
      static/image/car-insure/carban2.png
  49. 二進制
      static/image/car-insure/carbg.png
  50. 二進制
      static/image/car-insure/carfront.png
  51. 二進制
      static/image/car-insure/dropdown.png
  52. 二進制
      static/image/car-insure/lastyear.png
  53. 二進制
      static/image/car-insure/leaf.png
  54. 二進制
      static/image/car-insure/ppp.jpg
  55. 二進制
      static/image/car-insure/rotate1.png
  56. 二進制
      static/image/car-insure/rotate2.png
  57. 二進制
      static/image/car-insure/search.png
  58. 二進制
      static/image/car-insure/star1.png
  59. 二進制
      static/image/car-insure/star2.png
  60. 二進制
      static/image/car-insure/state1.png
  61. 二進制
      static/image/car-insure/state2.png
  62. 二進制
      static/image/car-insure/state3.png
  63. 二進制
      static/image/car-insure/state4.png
  64. 二進制
      static/image/car-insure/state5.png
  65. 二進制
      static/image/car-insure/upload.png
  66. 二進制
      static/image/car-insure/userback.png
  67. 二進制
      static/image/car-insure/userfront.png
  68. 19 17
      style/uni.css

+ 796 - 0
components/modules/carInsure/OCRComponent/OCRComponent.vue

@@ -0,0 +1,796 @@
+<template>
+	<view class="page">
+
+		<u-popup v-model="ShowModal" :mode="mode" @close="close" :border-radius="borderRadius" :zoom="zoom">
+			<view class="stips">
+				<view class="tabs">
+					<u-tabs style="justify-content: flex-start;" :list="tabslist" :show-bar="false"
+						active-color="#232832" :is-scroll="false" :current="tabsCurrent" @change="tabschange"
+						bar-width="60"></u-tabs>
+				</view>
+				<view class="upload dis j-s">
+					<template v-if="checkType=='carInfo'">
+						<view class="imgOcr-border">
+							<image :src=" carfrontImg?carfrontImg:'/static/image/car-insure/carfront.png'" mode=""
+								@click="carfrontChange"></image>
+						</view>
+						<view class="imgOcr-border">
+							<image :src="carbackImg?carbackImg:'/static/image/car-insure/carback.png'" mode=""
+								@click="carbackChange"></image>
+						</view>
+					</template>
+					<template v-else>
+						<view class="imgOcr-border">
+							<image :src=" userfrontImg?userfrontImg:'/static/image/car-insure/userfront.png'" mode=""
+								@click="userfrontChange"></image>
+						</view>
+						<view class="imgOcr-border">
+							<image :src="userbackImg?userbackImg:'/static/image/car-insure/userback.png'" mode=""
+								@click="userbackChange"></image>
+						</view>
+					</template>
+				</view>
+				<view class="operateBtn dis ">
+					<view class="cancel dis a-c j-c" @click="ShowModal=false">
+						关闭
+					</view>
+					<view v-if="checkType=='carInfo'" class="confirm dis a-c j-c" @click="ocrInt">
+						识别
+					</view>
+					<view v-if="checkType=='ownerInfo'" class="confirm dis a-c j-c" @click="userocrInt1">
+						识别
+					</view>
+					<view v-if="checkType=='policyHolderInfo'" class="confirm dis a-c j-c" @click="userocrInt2">
+						识别
+					</view>
+					<view v-if="checkType=='insuredPersonInfo'" class="confirm dis a-c j-c" @click="userocrInt3">
+						识别
+					</view>
+				</view>
+			</view>
+		</u-popup>
+		<view class="mask mask-show" v-if="lodingshow">
+			<!-- 加载动画开始 -->
+			<view class="preloader">
+				<view class="loader"></view>
+			</view>
+			<!-- 加载动画结束 -->
+			<view class="title">加载中...</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import {
+		getAgeByIdCard,
+		addressCode,
+	} from '@/plugins/utils';
+	import store from '@/store';
+	import {
+		props
+	} from 'bluebird';
+	export default {
+		name: 'name', //插件名称
+		props: {
+			showModal: {
+				type: Boolean,
+				required: true
+			},
+			mode: {
+				type: String,
+				default: 'bottom'
+			},
+			borderRadius: {
+				type: String,
+				default: '16'
+			},
+			zoom: {
+				type: Boolean,
+				default: false,
+			},
+			tabsCurrent: {
+				type: Number,
+				default: 0,
+			},
+			tabslist: Array,
+			checkType: {
+				type: String,
+				required: true
+			}
+		},
+		computed: {
+
+		},
+		data() {
+			return {
+				ShowModal: this.showModal,
+				Current: this.tabsCurrent,
+				carfrontImg: "",
+				carbackImg: "",
+				carInfoPositiveList: [],
+				carfront: {},
+				carback: {},
+				userfront: {},
+				userback: {},
+				userfrontImg: "",
+				userbackImg: "",
+				ownerInfoPositiveList: [],
+				applicantInfoPositiveList: [],
+				InsuredInfoPositiveList: [],
+				lodingshow: false,
+			};
+		},
+		watch: {
+			showModal(newVal) {
+				this.ShowModal = newVal;
+			},
+
+		},
+		methods: {
+			isEmptyObject(obj) {
+				return JSON.stringify(obj) === '{}';
+			},
+			userocrInt1() {
+				let Info = Object.assign({}, this.userfront, this.userback)
+				if (this.isEmptyObject(Info)) {
+					uni.showToast({
+						icon: 'none',
+						title: '未检测到图片',
+						duration: 1500
+					});
+				} else {
+					let ImgList = this.ownerInfoPositiveList;
+					let img = this.userfrontImg;
+					this.$emit('ownerInfoCallback', {
+						Info,
+						ImgList,
+						img,
+					});
+					this.userfrontImg = '';
+					this.userbackImg = '';
+					this.carfrontImg = '';
+					this.carbackImg = '';
+				}
+			},
+			userocrInt2() {
+				let Info = Object.assign({}, this.userfront, this.userback)
+				if (this.isEmptyObject(Info)) {
+					uni.showToast({
+						icon: 'none',
+						title: '未检测到图片',
+						duration: 1500
+					});
+				} else {
+					let ImgList = this.applicantInfoPositiveList;
+					let img = this.userfrontImg;
+					this.$emit('applicantInfoCallback', {
+						Info,
+						ImgList,
+						img,
+					});
+					this.userfrontImg = '';
+					this.userbackImg = '';
+					this.carfrontImg = '';
+					this.carbackImg = '';
+				}
+			},
+			userocrInt3() {
+				let Info = Object.assign({}, this.userfront, this.userback)
+				if (this.isEmptyObject(Info)) {
+					uni.showToast({
+						icon: 'none',
+						title: '未检测到图片',
+						duration: 1500
+					});
+				} else {
+					let ImgList = this.InsuredInfoPositiveList;
+					let img = this.userfrontImg;
+					this.$emit('InsuredInfoCallback', {
+						Info,
+						ImgList,
+						img,
+					});
+					this.userfrontImg = '';
+					this.userbackImg = '';
+					this.carfrontImg = '';
+					this.carbackImg = '';
+				}
+			},
+			ocrInt() {
+				let Info = Object.assign({}, this.carfront, this.carback)
+				if (this.isEmptyObject(Info)) {
+					uni.showToast({
+						icon: 'none',
+						title: '未检测到图片',
+						duration: 1500
+					});
+				} else {
+					let ImgList = this.carInfoPositiveList;
+					let img = this.carfrontImg;
+					this.$emit('carCallback', {
+						Info,
+						ImgList,
+						img,
+					});
+					this.userfrontImg = '';
+					this.userbackImg = '';
+					this.carfrontImg = '';
+					this.carbackImg = '';
+				}
+			},
+			async carfrontChange() {
+				let [chooseImageErr, chooseImageRes] = await uni.chooseImage({
+					count: 1,
+					sizeType: ['compressed']
+				});
+				let size = chooseImageRes.tempFiles[0].size / 1024 / 1024 < 5;
+				if (!size) {
+					this.$refs.uToast.show({
+						title: '上传图片大小不能超过 5MB!',
+						type: 'error',
+					})
+					return false
+				}
+				if (chooseImageRes) {
+					this.lodingshow = true;
+					this.carfrontImg = chooseImageRes.tempFilePaths[0];
+					uni.uploadFile({
+						url: this.$base.baseUrl + '/ins/taskImage/uploadFile',
+						filePath: chooseImageRes.tempFilePaths[0],
+						name: "multipartFile",
+						formData: {
+							'type': 'image',
+						},
+						header: {
+							Authorization: store.state.token,
+						},
+						success: (imgRes) => {
+							let data = JSON.parse(imgRes.data);
+							if (data.code == '200') {
+								if (this.carInfoPositiveList.some(v => v.imageType == 'C01')) {
+									this.carInfoPositiveList.map(val => {
+										if (val.imageType == 'C01') {
+											val.imageId = data.data.id;
+										}
+									})
+								} else {
+									this.carInfoPositiveList.push({
+										imageId: data.data.id,
+										imageType: "C01",
+									})
+								}
+								uni.uploadFile({
+									url: this.$base.baseUrl + '/order/identify/drivingPermit',
+									filePath: chooseImageRes.tempFilePaths[0],
+									name: "image1",
+									header: {
+										Authorization: store.state.token,
+									},
+									success: (uploadFileRes) => {
+										let data = JSON.parse(uploadFileRes.data).data;
+										let rdate = '';
+										if (!!data.carInfo.registerDate) {
+											rdate = data.carInfo.registerDate.substr(0,
+													4) +
+												'-' + data.carInfo
+												.registerDate.substr(4, 2) + '-' + data
+												.carInfo
+												.registerDate
+												.substr(6,
+													2)
+										}
+										let isdate = '';
+										if (!!data.carInfo.issueDate) {
+											isdate = data.carInfo.issueDate.substr(0, 4) +
+												'-' + data.carInfo
+												.issueDate.substr(4, 2) + '-' + data
+												.carInfo
+												.issueDate.substr(6, 2)
+										}
+										this.carfront = {
+											carOwner: data.carInfo.carOwner, //车主
+											licenseNo: data.carInfo.plateNo, //车牌号
+											modelcname: data.carInfo.backOcrID, //品牌型号
+											frameNo: data.carInfo.vin, //车架号
+											engineNo: data.carInfo.engine, //发动机号
+											vinNo: data.carInfo.vin, //车架号
+											issueDate: isdate, //发证日期
+											registerDate: rdate, //注册日期
+											cimodelclass: data.carInfo
+												.plateType, //车辆种类
+											cartype: data.carInfo.category, //车辆类型
+
+										}
+										this.lodingshow = false;
+									}
+								});
+							}
+
+						}
+					});
+				} else {
+					this.lodingshow = false;
+				}
+			},
+			async carbackChange() {
+				let [chooseImageErr, chooseImageRes] = await uni.chooseImage({
+					count: 1,
+					sizeType: ['compressed']
+				});
+				let size = chooseImageRes.tempFiles[0].size / 1024 / 1024 < 5;
+				if (!size) {
+					this.$refs.uToast.show({
+						title: '上传图片大小不能超过 5MB!',
+						type: 'error',
+					})
+					return false
+				}
+				if (chooseImageRes) {
+					this.lodingshow = true;
+					this.carbackImg = chooseImageRes.tempFilePaths[0];
+					uni.uploadFile({
+						url: this.$base.baseUrl + '/ins/taskImage/uploadFile',
+						filePath: chooseImageRes.tempFilePaths[0],
+						name: "multipartFile",
+						formData: {
+							'type': 'image',
+						},
+						header: {
+							Authorization: store.state.token,
+						},
+						success: (imgRes) => {
+							let data = JSON.parse(imgRes.data);
+							if (data.code == '200') {
+								if (this.carInfoPositiveList.some(v => v.imageType == 'D01')) {
+									this.carInfoPositiveList.map(val => {
+										if (val.imageType == 'D01') {
+											val.imageId = data.data.id;
+										}
+									})
+								} else {
+									this.carInfoPositiveList.push({
+										imageId: data.data.id,
+										imageType: "D01",
+									})
+								}
+								uni.uploadFile({
+									url: this.$base.baseUrl + '/order/identify/drivingPermit',
+									filePath: chooseImageRes.tempFilePaths[0],
+									name: "image2",
+									header: {
+										Authorization: store.state.token,
+									},
+									success: (uploadFileRes) => {
+
+										let data1 = JSON.parse(uploadFileRes.data).data;
+										this.carback = {
+											vehicleweight: data1.carInfo
+												.grossMass, //总质量
+											completeKerbMass: data1.carInfo
+												.unladenMass, //整备质量
+											seatCount: data1.carInfo
+												.approvedPassengersCapacity, //核定载客数
+											limitLoad: data1.carInfo
+												.limitLoad, //核定载质量
+										}
+										this.lodingshow = false;
+									}
+								});
+
+							}
+
+						}
+					});
+				} else {
+					this.lodingshow = false;
+				}
+			},
+			async userfrontChange() {
+				let [chooseImageErr, chooseImageRes] = await uni.chooseImage({
+					count: 1,
+					sizeType: ['compressed']
+				});
+
+				let size = chooseImageRes.tempFiles[0].size / 1024 / 1024 < 5;
+				if (!size) {
+					this.$refs.uToast.show({
+						title: '上传图片大小不能超过 5MB!',
+						type: 'error',
+					})
+					return false
+				}
+				if (chooseImageRes) {
+					this.lodingshow = true;
+					this.userfrontImg = chooseImageRes.tempFilePaths[0];
+					uni.uploadFile({
+						url: this.$base.baseUrl + '/ins/taskImage/uploadFile',
+						filePath: chooseImageRes.tempFilePaths[0],
+						name: "multipartFile",
+						formData: {
+							'type': 'image',
+						},
+						header: {
+							Authorization: store.state.token,
+						},
+						success: (imgRes) => {
+							let data = JSON.parse(imgRes.data);
+							if (data.code == '200') {
+								switch (this.checkType) {
+									case 'ownerInfo':
+										if (this.ownerInfoPositiveList.some(v => v.imageType == 'C02')) {
+											this.ownerInfoPositiveList.map(val => {
+												if (val.imageType == 'C02') {
+													val.imageId = data.data.id;
+												}
+											})
+										} else {
+											this.ownerInfoPositiveList.push({
+												imageId: data.data.id,
+												imageType: "C02",
+											})
+										}
+										break;
+									case 'applicantInfo':
+										if (this.applicantInfoPositiveList.some(v => v.imageType ==
+												'C03')) {
+											this.applicantInfoPositiveList.map(val => {
+												if (val.imageType == 'C03') {
+													val.imageId = data.data.id;
+												}
+											})
+										} else {
+											this.applicantInfoPositiveList.push({
+												imageId: data.data.id,
+												imageType: "C03",
+											})
+										}
+										break;
+									case 'InsuredInfo':
+										if (this.InsuredInfoPositiveList.some(v => v.imageType == 'C04')) {
+											this.InsuredInfoPositiveList.map(val => {
+												if (val.imageType == 'C04') {
+													val.imageId = data.data.id;
+												}
+											})
+										} else {
+											this.InsuredInfoPositiveList.push({
+												imageId: data.data.id,
+												imageType: "C04",
+											})
+										}
+										break;
+									default:
+										break;
+								};
+
+								uni.uploadFile({
+									url: this.$base.baseUrl + '/order/identify/idCard',
+									filePath: chooseImageRes.tempFilePaths[0],
+									name: "image1",
+									header: {
+										Authorization: store.state.token,
+									},
+									success: (uploadFileRes) => {
+										let data = JSON.parse(uploadFileRes.data).data;
+										this.userfront = {
+											age: getAgeByIdCard(data.customerInfo
+												.identifyNumber),
+											name: data.customerInfo.name,
+											gender: data.customerInfo
+												.identifyIssuedCom,
+											identifyNumber: data.customerInfo
+												.identifyNumber,
+											addr: data.customerInfo.addr,
+										}
+										this.lodingshow = false;
+									}
+								});
+							}
+
+						}
+					});
+				} else {
+					this.lodingshow = false;
+				}
+			},
+			async userbackChange() {
+				let [chooseImageErr, chooseImageRes] = await uni.chooseImage({
+					count: 1,
+					sizeType: ['compressed']
+				});
+				let size = chooseImageRes.tempFiles[0].size / 1024 / 1024 < 5;
+				if (!size) {
+					this.$refs.uToast.show({
+						title: '上传图片大小不能超过 5MB!',
+						type: 'error',
+					})
+					return false
+				}
+				if (chooseImageRes) {
+					this.lodingshow = true;
+					this.userbackImg = chooseImageRes.tempFilePaths[0];
+					uni.uploadFile({
+						url: this.$base.baseUrl + '/ins/taskImage/uploadFile',
+						filePath: chooseImageRes.tempFilePaths[0],
+						name: "multipartFile",
+						formData: {
+							'type': 'image',
+						},
+						header: {
+							Authorization: store.state.token,
+						},
+						success: (imgRes) => {
+							let data = JSON.parse(imgRes.data);
+							if (data.code == '200') {
+								switch (this.checkType) {
+									case 'ownerInfo':
+										if (this.ownerInfoPositiveList.some(v => v.imageType == 'D02')) {
+											this.ownerInfoPositiveList.map(val => {
+												if (val.imageType == 'D02') {
+													val.imageId = data.data.id;
+												}
+											})
+										} else {
+											this.ownerInfoPositiveList.push({
+												imageId: data.data.id,
+												imageType: "D02",
+											})
+										}
+										break;
+									case 'applicantInfo':
+										if (this.applicantInfoPositiveList.some(v => v.imageType ==
+												'D03')) {
+											this.applicantInfoPositiveList.map(val => {
+												if (val.imageType == 'D03') {
+													val.imageId = data.data.id;
+												}
+											})
+										} else {
+											this.applicantInfoPositiveList.push({
+												imageId: data.data.id,
+												imageType: "D03",
+											})
+										}
+										break;
+									case 'InsuredInfo':
+										if (this.InsuredInfoPositiveList.some(v => v.imageType == 'D04')) {
+											this.InsuredInfoPositiveList.map(val => {
+												if (val.imageType == 'D04') {
+													val.imageId = data.data.id;
+												}
+											})
+										} else {
+											this.InsuredInfoPositiveList.push({
+												imageId: data.data.id,
+												imageType: "D04",
+											})
+										}
+										break;
+									default:
+										break;
+								};
+								uni.uploadFile({
+									url: this.$base.baseUrl + '/order/identify/idCard',
+									filePath: chooseImageRes.tempFilePaths[0],
+									name: "image2",
+									header: {
+										Authorization: store.state.token,
+									},
+									success: (uploadFileRes) => {
+										let data1 = JSON.parse(uploadFileRes.data).data;
+										let identifyValidDate = '';
+										if (!!data1.customerInfo
+											.identifyValidDate) {
+											identifyValidDate = data1
+												.customerInfo
+												.identifyValidDate
+												.substr(0, 4) +
+												'-' + data1
+												.customerInfo
+												.identifyValidDate
+												.substr(4, 2) + '-' +
+												data1
+												.customerInfo
+												.identifyValidDate
+												.substr(6,
+													2)
+										}
+										let identifyValidEndDate = '';
+										if (!!data1.customerInfo
+											.identifyValidEndDate) {
+											identifyValidEndDate =
+												data1.customerInfo
+												.identifyValidEndDate
+												.substr(0,
+													4) + '-' + data1
+												.customerInfo
+												.identifyValidEndDate
+												.substr(4, 2) + '-' +
+												data1
+												.customerInfo
+												.identifyValidEndDate
+												.substr(6, 2)
+										}
+										this.userback = {
+											identifyValidDate: identifyValidDate, //起期
+											identifyValidEndDate: identifyValidEndDate, //止期
+										}
+										this.lodingshow = false;
+									}
+								});
+
+							}
+
+						}
+					});
+				} else {
+					this.lodingshow = false;
+				}
+			},
+			//弹框关闭
+			close() {
+				this.$emit('closePopup');
+			},
+			//tab切换
+			tabschange(e) {
+				this.$emit('tabschange', e);
+			}
+
+		}
+	};
+</script>
+
+<!--使用scss,只在本组件生效-->
+<style lang="scss" scoped>
+	.tabs {
+		padding: 0 15px;
+		border: 1px solid #f2f2f2;
+	}
+
+	.upload {
+		width: 100%;
+		height: 146px;
+		padding: 15px 20px;
+		background-color: white;
+
+		.imgOcr-border {
+			position: relative;
+			width: 48%;
+			height: 100%;
+			padding: 2px;
+			background-color: #fff;
+			box-shadow: 0px 4px 10px 0px #DAE3F4;
+
+			image {
+				width: 100%;
+				border-radius: 4px;
+				height: 100%;
+			}
+
+			.del_btn {
+				position: absolute;
+				cursor: pointer;
+				position: absolute;
+				top: 5rpx;
+				right: 0;
+				width: 50rpx;
+				height: 50rpx;
+				border-radius: 50%;
+				z-index: 20;
+			}
+		}
+	}
+
+	.operateBtn {
+		font-weight: bold;
+		font-size: 16px;
+
+		.cancel {
+			width: 50%;
+			height: 46px;
+			color: #0052FF;
+			background-color: #EAEAEA;
+		}
+
+		.confirm {
+			width: 50%;
+			height: 46px;
+			color: #fff;
+			background-color: #0052FF;
+		}
+	}
+
+	.mask {
+		/* pointer-events: none; */
+		position: fixed;
+		z-index: 99999;
+		top: 0;
+		left: 0;
+		right: 0;
+		bottom: 0;
+		height: 100vh;
+		width: 100vw;
+		display: flex;
+		flex-direction: column;
+		justify-content: center;
+		align-items: center;
+		flex-wrap: wrap;
+	}
+
+	.mask.mask-show {
+		background: rgba(255, 255, 255, 0.3);
+	}
+
+	.title {
+		color: #333;
+		font-size: 28rpx;
+		margin-top: 20rpx;
+	}
+
+	.loader {
+		display: block;
+		width: 120rpx;
+		height: 120rpx;
+		border-radius: 50%;
+		border: 3rpx solid transparent;
+		border-top-color: #9370db;
+		-webkit-animation: spin 2s linear infinite;
+		animation: spin 2s linear infinite;
+	}
+
+	.loader::before {
+		content: "";
+		position: absolute;
+		top: 5rpx;
+		left: 5rpx;
+		right: 5rpx;
+		bottom: 5rpx;
+		border-radius: 50%;
+		border: 3rpx solid transparent;
+		border-top-color: #ba55d3;
+		-webkit-animation: spin 3s linear infinite;
+		animation: spin 3s linear infinite;
+	}
+
+	.loader::after {
+		content: "";
+		position: absolute;
+		top: 15rpx;
+		left: 15rpx;
+		right: 15rpx;
+		bottom: 15rpx;
+		border-radius: 50%;
+		border: 3rpx solid transparent;
+		border-top-color: #ff00ff;
+		-webkit-animation: spin 1.5s linear infinite;
+		animation: spin 1.5s linear infinite;
+	}
+
+	@-webkit-keyframes spin {
+		0% {
+			-webkit-transform: rotate(0deg);
+			-ms-transform: rotate(0deg);
+			transform: rotate(0deg);
+		}
+
+		100% {
+			-webkit-transform: rotate(360deg);
+			-ms-transform: rotate(360deg);
+			transform: rotate(360deg);
+		}
+	}
+
+	@keyframes spin {
+		0% {
+			-webkit-transform: rotate(0deg);
+			-ms-transform: rotate(0deg);
+			transform: rotate(0deg);
+		}
+
+		100% {
+			-webkit-transform: rotate(360deg);
+			-ms-transform: rotate(360deg);
+			transform: rotate(360deg);
+		}
+	}
+</style>

+ 0 - 0
components/modules/carInsure/personnel/personnelInfo.vue


File diff suppressed because it is too large
+ 0 - 0
components/modules/carInsure/uni-plate-input/uni-plate-input.css


+ 216 - 183
components/modules/carInsure/uni-plate-input/uni-plate-input.vue

@@ -20,55 +20,67 @@
 				</view>
 			</view>
 			<view class="so-plate-body">
-				<view class="so-plate-word" :class="{ active: currentInputIndex == 0 }" @tap="inputSwitch" data-index="0">
+				<view class="so-plate-word" :class="{ active: currentInputIndex == 0 }" @tap="inputSwitch"
+					data-index="0">
 					<text>{{ currentInputValue[0] }}</text>
 				</view>
-				<view class="so-plate-word" :class="{ active: currentInputIndex == 1 }" @tap="inputSwitch" data-index="1">
+				<view class="so-plate-word" :class="{ active: currentInputIndex == 1 }" @tap="inputSwitch"
+					data-index="1">
 					<text>{{ currentInputValue[1] }}</text>
 				</view>
 				<view class="so-plate-dot"></view>
-				<view class="so-plate-word" :class="{ active: currentInputIndex == 2 }" @tap="inputSwitch" data-index="2">
+				<view class="so-plate-word" :class="{ active: currentInputIndex == 2 }" @tap="inputSwitch"
+					data-index="2">
 					<text>{{ currentInputValue[2] }}</text>
 				</view>
-				<view class="so-plate-word" :class="{ active: currentInputIndex == 3 }" @tap="inputSwitch" data-index="3">
+				<view class="so-plate-word" :class="{ active: currentInputIndex == 3 }" @tap="inputSwitch"
+					data-index="3">
 					<text>{{ currentInputValue[3] }}</text>
 				</view>
-				<view class="so-plate-word" :class="{ active: currentInputIndex == 4 }" @tap="inputSwitch" data-index="4">
+				<view class="so-plate-word" :class="{ active: currentInputIndex == 4 }" @tap="inputSwitch"
+					data-index="4">
 					<text>{{ currentInputValue[4] }}</text>
 				</view>
-				<view class="so-plate-word" :class="{ active: currentInputIndex == 5 }" @tap="inputSwitch" data-index="5">
+				<view class="so-plate-word" :class="{ active: currentInputIndex == 5 }" @tap="inputSwitch"
+					data-index="5">
 					<text>{{ currentInputValue[5] }}</text>
 				</view>
-				<view class="so-plate-word" :class="{ active: currentInputIndex == 6 }" @tap="inputSwitch" data-index="6">
+				<view class="so-plate-word" :class="{ active: currentInputIndex == 6 }" @tap="inputSwitch"
+					data-index="6">
 					<text>{{ currentInputValue[6] }}</text>
 				</view>
-				<view class="so-plate-word" :class="{ active: currentInputIndex == 7 }" @tap="inputSwitch" v-if="type == 2" data-index="7">
+				<view class="so-plate-word" :class="{ active: currentInputIndex == 7 }" @tap="inputSwitch"
+					v-if="type == 2" data-index="7">
 					<text>{{ currentInputValue[7] }}</text>
 				</view>
 			</view>
 			<view class="so-plate-foot">
-				<view class="so-plate-keyboard"  :style="{height:keyboardHeight}">
-					<view id="keyboard">
+				<view class="so-plate-keyboard" :style="{height:keyboardHeight}">
+					<view id="keyboard dis f-wrap a-c j-c">
 						<block v-if="inputType == 1">
-							<view hover-class="hover" class="so-plate-key" v-for="el of provinceText" :key="el" :data-value="el" @tap="chooseKey">{{ el }}</view>
+							<view hover-class="hover" class="so-plate-key" v-for="el of provinceText" :key="el"
+								:data-value="el" @tap="chooseKey">{{ el }}</view>
 						</block>
 						<block v-if="inputType == 1">
 							<text class="so-plate-key fill-block"></text>
 							<text class="so-plate-key fill-block"></text>
 						</block>
 						<block v-if="inputType >= 3">
-							<view hover-class="hover" class="so-plate-key" v-for="el of numberText" :key="el" :data-value="el" @tap="chooseKey">{{ el }}</view>
+							<view hover-class="hover" class="so-plate-key" v-for="el of numberText" :key="el"
+								:data-value="el" @tap="chooseKey">{{ el }}</view>
 						</block>
 						<block v-if="inputType >= 2">
-							<view hover-class="hover" class="so-plate-key" v-for="el of wordText" :key="el" :data-value="el" @tap="chooseKey">{{ el }}</view>
+							<view hover-class="hover" class="so-plate-key" v-for="el of wordText" :key="el"
+								:data-value="el" @tap="chooseKey">{{ el }}</view>
 						</block>
 						<block v-if="inputType == 3">
 							<text v-for="el of fillBlock" :key="el.num" class="so-plate-key fill-block"></text>
 						</block>
 						<block v-if="inputType == 4">
-							<view hover-class="hover" class="so-plate-key" v-for="el of lastWordText" :key="el" :data-value="el" @tap="chooseKey">{{ el }}</view>
+							<view hover-class="hover" class="so-plate-key" v-for="el of lastWordText" :key="el"
+								:data-value="el" @tap="chooseKey">{{ el }}</view>
 						</block>
-							<text v-if="inputType == 4" class="so-plate-key fill-block"></text>
+						<text v-if="inputType == 4" class="so-plate-key fill-block"></text>
 					</view>
 				</view>
 				<view class="so-plate-btn-group">
@@ -78,188 +90,209 @@
 					<view>
 						<button class="so-plate-btn so-plate-btn--delete" @tap="deleteKey">删除</button>
 						<button class="so-plate-btn so-plate-btn--submit" @tap="exportPlate">完成</button>
-						
+
 					</view>
-					
+
 				</view>
 			</view>
 		</view>
 	</view>
 </template>
 <script>
-export default {
-	name: 'uni-plate-input',
-	data() {
-		return {
-			type: 1, //车牌类型
-			currentInputIndex: 0, //当前编辑的输入框
-			currentInputValue: ['', '', '', '', '', '', ''],
-			fillBlock:[{num:11},{num:12},{num:13},{num:14},{num:15},{num:16}],  //避免:key报错
-			keyboardHeightInit:false,
-			keyboardHeight:'auto',
-			provinceText: [
-				'粤',
-				'京',
-				'冀',
-				'沪',
-				'津',
-				'晋',
-				'蒙',
-				'辽',
-				'吉',
-				'黑',
-				'苏',
-				'浙',
-				'皖',
-				'闽',
-				'赣',
-				'鲁',
-				'豫',
-				'鄂',
-				'湘',
-				'桂',
-				'琼',
-				'渝',
-				'川',
-				'贵',
-				'云',
-				'藏',
-				'陕',
-				'甘',
-				'青',
-				'宁',
-				'新'
-			],
-			numberText: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],
-			wordText: ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'],
-			lastWordText: ['港', '澳', '学', '领', '警']
-		};
-	},
-	props: {
-		plate: {
-			type: String
-		}
-	},
-	computed: {
-		//输入框类型
-		inputType() {
-			switch (this.currentInputIndex) {
-				case 0:
-					return 1;
-					break;
-				case 1:
-					return 2;
-					break;
-				case 2:
-					return 3;
-					break;
-				case 3:
-					return 3;
-					break;
-				case 4:
-					return 3;
-					break;
-				case 5:
-					return 3;
-					break;
-				case 6:
-					return this.type==2 ? 3 :4 ;
-					break;
-				case 7:
-					return 4;
-					break;
-				default:
-					return 1;
-					break;
+	export default {
+		name: 'uni-plate-input',
+		data() {
+			return {
+				type: 1, //车牌类型
+				currentInputIndex: 0, //当前编辑的输入框
+				currentInputValue: ['', '', '', '', '', '', ''],
+				fillBlock: [{
+					num: 11
+				}, {
+					num: 12
+				}, {
+					num: 13
+				}, {
+					num: 14
+				}, {
+					num: 15
+				}, {
+					num: 16
+				}], //避免:key报错
+				keyboardHeightInit: false,
+				keyboardHeight: 'auto',
+				provinceText: [
+					'粤',
+					'京',
+					'冀',
+					'沪',
+					'津',
+					'晋',
+					'蒙',
+					'辽',
+					'吉',
+					'黑',
+					'苏',
+					'浙',
+					'皖',
+					'闽',
+					'赣',
+					'鲁',
+					'豫',
+					'鄂',
+					'湘',
+					'桂',
+					'琼',
+					'渝',
+					'川',
+					'贵',
+					'云',
+					'藏',
+					'陕',
+					'甘',
+					'青',
+					'宁',
+					'新'
+				],
+				numberText: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],
+				wordText: ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U',
+					'V', 'W', 'X', 'Y', 'Z'
+				],
+				lastWordText: ['港', '澳', '学', '领', '警']
+			};
+		},
+		props: {
+			plate: {
+				type: String
 			}
-		}
-	},
-	watch:{
-		currentInputIndex:function(n,o){
-			if(!this.keyboardHeightInit) return
-				this.$nextTick(()=>{
+		},
+		computed: {
+			//输入框类型
+			inputType() {
+				switch (this.currentInputIndex) {
+					case 0:
+						return 1;
+						break;
+					case 1:
+						return 2;
+						break;
+					case 2:
+						return 3;
+						break;
+					case 3:
+						return 3;
+						break;
+					case 4:
+						return 3;
+						break;
+					case 5:
+						return 3;
+						break;
+					case 6:
+						return this.type == 2 ? 3 : 4;
+						break;
+					case 7:
+						return 4;
+						break;
+					default:
+						return 1;
+						break;
+				}
+			}
+		},
+		watch: {
+			currentInputIndex: function(n, o) {
+				if (!this.keyboardHeightInit) return
+				this.$nextTick(() => {
 					this.changeKeyboardHeight()
 				})
-		}
-	},
-	methods: {
-		//车牌类型切换
-		typeChange(e) {
-			const {value} = e.detail;
-			this.type = parseInt(value)
-			this.currentInputIndex = 0
-			if(value==1){
-				this.currentInputValue = ['','','','','','','']
-			}else{
-				this.currentInputValue = ['','','','','','','','']
 			}
 		},
-		inputSwitch(e) {
-			const { index } = e.currentTarget.dataset;
-			this.currentInputIndex = parseInt(index);
-		},
-		chooseKey(e) {
-			const { value } = e.currentTarget.dataset;
-			this.$set(this.currentInputValue, this.currentInputIndex, value);
-			if(this.type==1 && this.currentInputIndex<6){
-				this.currentInputIndex++
-			}
-			if(this.type==2 && this.currentInputIndex<7){
-				this.currentInputIndex++
+		methods: {
+			//车牌类型切换
+			typeChange(e) {
+				const {
+					value
+				} = e.detail;
+				this.type = parseInt(value)
+				this.currentInputIndex = 0
+				if (value == 1) {
+					this.currentInputValue = ['', '', '', '', '', '', '']
+				} else {
+					this.currentInputValue = ['', '', '', '', '', '', '', '']
+				}
+			},
+			inputSwitch(e) {
+				console.log(e);
+				const {
+					index
+				} = e.currentTarget.dataset;
+				this.currentInputIndex = parseInt(index);
+			},
+			chooseKey(e) {
+				const {
+					value
+				} = e.currentTarget.dataset;
+				this.$set(this.currentInputValue, this.currentInputIndex, value);
+				if (this.type == 1 && this.currentInputIndex < 6) {
+					this.currentInputIndex++
+				}
+				if (this.type == 2 && this.currentInputIndex < 7) {
+					this.currentInputIndex++
+				}
+			},
+			deleteKey() {
+				this.$set(this.currentInputValue, this.currentInputIndex, '')
+				if (this.currentInputIndex != 0) this.currentInputIndex--
+			},
+			exportPlate() {
+				const plate = this.currentInputValue.join('')
+				let err = false
+				if (this.type === 1 && plate.length != 7) {
+					err = true
+				} else if (this.type === 2 && plate.length != 8) {
+					err = true
+				}
+				if (err) return uni.showToast({
+					title: '请输入完整的车牌号码',
+					icon: 'none'
+				})
+
+				this.$emit('export', plate)
+			},
+			changeKeyboardHeight() {
+				const that = this
+				const query = uni.createSelectorQuery().in(this);
+				query.select('#keyboard').boundingClientRect();
+				query.exec(function(res) {
+					if (res && res[0]) {
+						that.keyboardHeight = res[0].height + uni.upx2px(30) + 'px'
+						that.keyboardHeightInit = true
+					}
+				});
 			}
 		},
-		deleteKey(){
-				this.$set(this.currentInputValue,this.currentInputIndex,'')
-				if(this.currentInputIndex!=0) this.currentInputIndex--
-		},
-		exportPlate(){
-			const plate = this.currentInputValue.join('')
-			let err = false
-			if(this.type===1&&plate.length!=7){
-				err = true
-			}else if(this.type===2&&plate.length!=8){
-				err = true
+		mounted() {
+			uni.hideKeyboard();
+			const plateKey = this.plate.split('')
+			if (plateKey.length === 7) {
+				this.type = 1
+			} else if (plateKey.length === 8) {
+				this.type = 2
+			}
+			if (plateKey.length === 7 || plateKey.length === 8) {
+				this.currentInputValue = plateKey
+				this.currentInputIndex = plateKey.length - 1
 			}
-			if(err) return uni.showToast({
-				title:'请输入完整的车牌号码',
-				icon:'none'
-			})
-			
-			this.$emit('export',plate)
-		},
-		changeKeyboardHeight(){
-			const that = this
-			const query = uni.createSelectorQuery().in(this);
-			query.select('#keyboard').boundingClientRect();
-			query.exec(function(res) {
-				if(res&&res[0]){
-					that.keyboardHeight = res[0].height + uni.upx2px(30) + 'px'
-					that.keyboardHeightInit = true
-				}
-			});
-		}
-	},
-	mounted() {
-		 uni.hideKeyboard();
-		const plateKey = this.plate.split('')
-		if(plateKey.length===7){
-			this.type=1
-		}else if(plateKey.length===8){
-			this.type=2
-		}
-		if(plateKey.length===7 || plateKey.length===8){
-			this.currentInputValue = plateKey
-			this.currentInputIndex = plateKey.length-1
-		}
 
-		setTimeout(() => {  //在动画结束之后才开始获取
-			this.$nextTick(()=>{
-				this.changeKeyboardHeight()
-			})
-		}, 500);
-	}
-};
+			setTimeout(() => { //在动画结束之后才开始获取
+				this.$nextTick(() => {
+					this.changeKeyboardHeight()
+				})
+			}, 500);
+		}
+	};
 </script>
-<style scoped >
- @import './uni-plate-input.css'; 
-</style>
+<style scoped>
+	@import './uni-plate-input.css';
+</style>

+ 6 - 4
components/uni-forms-item/uni-forms-item.vue

@@ -1,7 +1,9 @@
 <template>
-	<view class="uni-forms-item" :class="{'uni-forms-item--border':border,'is-first-border':border&&isFirstBorder,'uni-forms-item-error':msg}">
+	<view class="uni-forms-item"
+		:class="{'uni-forms-item--border':border,'is-first-border':border&&isFirstBorder,'uni-forms-item-error':msg}">
 		<view class="uni-forms-item__inner" :class="['is-direction-'+labelPos,]">
-			<view v-if="label" class="uni-forms-item__label" :style="{width:labelWid+'px',justifyContent: justifyContent}">
+			<view v-if="label" class="uni-forms-item__label"
+				:style="{width:labelWid+'px',justifyContent: justifyContent}">
 				<slot name="left">
 					<uni-icons v-if="leftIcon" class="label-icon" size="16" :type="leftIcon" :color="iconColor" />
 					<text>{{label}}</text>
@@ -259,7 +261,8 @@
 				// }
 				if (!this.validator) return
 				const isNoField = this.isRequired(this.formRules.rules || [])
-				let isTrigger = this.isTrigger(this.formRules.validateTrigger, this.validateTrigger, this.form.validateTrigger)
+				let isTrigger = this.isTrigger(this.formRules.validateTrigger, this.validateTrigger, this.form
+					.validateTrigger)
 				let result = null
 				if (!(!isTrigger)) {
 					result = await this.validator.validateUpdate({
@@ -339,7 +342,6 @@
 		text-align: left;
 		color: #333;
 		font-size: 14px;
-		margin-bottom: 22px;
 		background-color: #fff;
 	}
 

+ 8 - 8
config/baseUrl.js

@@ -3,21 +3,21 @@ let h5BaseUrl = "";
 let socketUrl = "";
 if (process.env.NODE_ENV === 'development') {
 	// 开发环境
-	baseUrl = "https://test.baoxianzhanggui.com/web-api"; //测试
-	h5BaseUrl = "https://test.baoxianzhanggui.com/h5";
+	// baseUrl = "https://test.baoxianzhanggui.com/web-api"; //测试
+	// h5BaseUrl = "https://test.baoxianzhanggui.com/h5";
 	// baseUrl = "http://192.168.0.253:8082";
 	// baseUrl = "http://192.168.0.115:8080"; //凯森
 	// baseUrl = "http://192.168.1.101:8080"; //武
-	// baseUrl = "https://sxzgkj.baoxianzhanggui.com/web-api"; //正式
-	// h5BaseUrl = "https://sxzgkj.baoxianzhanggui.com/h5";
+	baseUrl = "https://sxzgkj.baoxianzhanggui.com/web-api"; //正式
+	h5BaseUrl = "https://sxzgkj.baoxianzhanggui.com/h5";
 	socketUrl = "";
 } else if (process.env.NODE_ENV === 'production') {
 	// 生产环境
-	baseUrl = "https://test.baoxianzhanggui.com/web-api"; //测试
-	h5BaseUrl = "https://test.baoxianzhanggui.com/h5";
+	// baseUrl = "https://test.baoxianzhanggui.com/web-api"; //测试
+	// h5BaseUrl = "https://test.baoxianzhanggui.com/h5";
 	// baseUrl = "http://192.168.0.115:8080"; //凯森
-	// baseUrl = "https://sxzgkj.baoxianzhanggui.com/web-api"; //正式
-	// h5BaseUrl = "https://sxzgkj.baoxianzhanggui.com/h5";
+	baseUrl = "https://sxzgkj.baoxianzhanggui.com/web-api"; //正式
+	h5BaseUrl = "https://sxzgkj.baoxianzhanggui.com/h5";
 	socketUrl = "";
 }
 const courtConfig = {

+ 32 - 13
config/login.js

@@ -14,29 +14,48 @@ let userInfo = {
 let lastPageUrl = "";
 // 会员号密码一级手机号验证码登录
 async function login(options = {}) {
+	console.log(options);
 	// 请求登录
 	let res = await $http.post(options.url, options.data);
+	console.log(res);
 	if (res.code != '200') {
 		return Promise.resolve(res);
 	} else {
 		if (options.data.account) {
 			uni.setStorageSync('username', options.data.account);
 			uni.setStorageSync('password', options.data.password);
-		}
-		let loginStatus = await getLoginUserInfo(res.data, options.data.account);
-		if (loginStatus) {
-			// 跳转到首页
-			uni.switchTab({
-				url: "/pages/index/index"
-			})
-			setTimeout(() => {
-				uni.showToast({
-					title: '登录成功',
-					icon: 'none'
-				});
-			}, 500);
+			let loginStatus = await getLoginUserInfo(res.data, options.data.account);
+			if (loginStatus) {
+				// 跳转到首页
+				uni.switchTab({
+					url: "/pages/index/index"
+				})
+				setTimeout(() => {
+					uni.showToast({
+						title: '登录成功',
+						icon: 'none'
+					});
+				}, 500);
+
+			}
+		} else {
+			uni.setStorageSync('username', res.data.userId);
+			let loginStatus = await getLoginUserInfo(res.data.token, res.data.userId);
+			if (loginStatus) {
+				// 跳转到首页
+				uni.switchTab({
+					url: "/pages/index/index"
+				})
+				setTimeout(() => {
+					uni.showToast({
+						title: '登录成功',
+						icon: 'none'
+					});
+				}, 500);
 
+			}
 		}
+
 	}
 }
 

+ 8 - 8
manifest.json

@@ -7,8 +7,8 @@
 		"sizes": "分辨率,192x192",
 		"src": "图片路径"
 	}],
-	"versionName": "1.6.2",
-	"versionCode": 162,
+	"versionName": "1.7.3",
+	"versionCode": 173,
 	"app-plus": {
 		"error": {
 			"url": "hybrid/html/error.html"
@@ -35,8 +35,8 @@
 				"description": "iBeacon"
 			},
 			"Camera": {},
-			"Geolocation": {},
-			"Maps": {}
+			"Maps": {},
+			"Geolocation": {}
 		},
 		"distribute": {
 			"android": {
@@ -114,8 +114,8 @@
 					"amap": {
 						"name": "amap_18335592986CWFSxSLAB",
 						"__platform__": ["android"],
-						"appkey_ios": "197d1a12301a306f82533a23651807b8",
-						"appkey_android": "197d1a12301a306f82533a23651807b8"
+						"appkey_ios": "e410fdbf6be7110af9267b6d56c93c8d",
+						"appkey_android": "e410fdbf6be7110af9267b6d56c93c8d"
 					}
 				},
 				"push": {
@@ -128,8 +128,8 @@
 				"maps": {
 					"amap": {
 						"name": "amap_18335592986CWFSxSLAB",
-						"appkey_ios": "197d1a12301a306f82533a23651807b8",
-						"appkey_android": "197d1a12301a306f82533a23651807b8"
+						"appkey_ios": "e410fdbf6be7110af9267b6d56c93c8d",
+						"appkey_android": "e410fdbf6be7110af9267b6d56c93c8d"
 					}
 				}
 			},

+ 7 - 6
node_modules/uview-ui/components/u-car-keyboard/u-car-keyboard.vue

@@ -3,16 +3,17 @@
 		<view class="u-keyboard-grids">
 			<block>
 				<view class="u-keyboard-grids-item" v-for="(group, i) in abc ? EngKeyBoardList : areaList" :key="i">
-					<view :hover-stay-time="100" @tap="carInputClick(i, j)" hover-class="u-carinput-hover" class="u-keyboard-grids-btn"
-					 v-for="(item, j) in group" :key="j">
+					<view :hover-stay-time="100" @tap="carInputClick(i, j)" hover-class="u-carinput-hover"
+						class="u-keyboard-grids-btn" v-for="(item, j) in group" :key="j">
 						{{ item }}
 					</view>
 				</view>
 				<view @touchstart="backspaceClick" @touchend="clearTimer" :hover-stay-time="100" class="u-keyboard-back"
-				 hover-class="u-hover-class">
+					hover-class="u-hover-class">
 					<u-icon :size="38" name="backspace" :bold="true"></u-icon>
 				</view>
-				<view :hover-stay-time="100" class="u-keyboard-change" hover-class="u-carinput-hover" @tap="changeCarInputMode">
+				<view :hover-stay-time="100" class="u-keyboard-change" hover-class="u-carinput-hover"
+					@tap="changeCarInputMode">
 					<text class="zh" :class="[!abc ? 'active' : 'inactive']">中</text>
 					/
 					<text class="en" :class="[abc ? 'active' : 'inactive']">英</text>
@@ -187,7 +188,7 @@
 		flex: 0 0 64rpx;
 		height: 80rpx;
 		/* #ifndef APP-NVUE */
-		display: inline-flex;		
+		display: inline-flex;
 		/* #endif */
 		font-size: 36rpx;
 		text-align: center;
@@ -254,4 +255,4 @@
 	.u-keyboard-change .en {
 		transform: translateY(10rpx);
 	}
-</style>
+</style>

+ 133 - 1
pages.json

@@ -849,7 +849,139 @@
 				"navigationBarTitleText": "出单员注册",
 				"enablePullDownRefresh": false
 			}
+		},
+
+		//ui升级模块
+		{
+			"path": "pages/carInsure2/entry",
+			"style": {
+				"navigationBarTitleText": "车险投保",
+				"app-plus": {
+					"scrollIndicator": "none", //隐藏滚动条
+					"bounce": "none" //关闭反弹效果
+				}
+			}
+		},
+		{
+			"path": "pages/carInsure2/carType",
+			"style": {
+				"navigationBarTitleText": "选择车型",
+				"app-plus": {
+					"scrollIndicator": "none", //隐藏滚动条
+					"bounce": "none" //关闭反弹效果
+				}
+			}
+		},
+		{
+			"path": "pages/carInsure2/Information",
+			"style": {
+				"navigationBarTextStyle": "white",
+				"enablePullDownRefresh": false, //开启下拉刷新
+				"navigationStyle": "custom",
+				"app-plus": {
+					"titleNView": false
+				}
+			}
+
+		},
+		{
+			"path": "pages/carInsure2/insureItems",
+			"style": {
+				"navigationBarTitleText": "保险配置",
+				"app-plus": {
+					"scrollIndicator": "none",
+					"bounce": "none"
+				}
+			}
+
+		},
+		{
+			"path": "pages/carInsure2/quote",
+			"style": {
+				"navigationBarTitleText": "保费计算",
+				"app-plus": {
+					"scrollIndicator": "none",
+					"bounce": "none"
+				}
+			}
+		},
+		{
+			"path": "pages/carInsure2/quoteDetail",
+			"style": {
+				"navigationBarTitleText": "报价详情",
+				"navigationBarBackgroundColor": "#0052FF",
+				"navigationBarTextStyle": "white",
+				"enablePullDownRefresh": false
+
+			}
+		},
+		{
+			"path": "pages/orders1/orders",
+			"style": {
+				"navigationBarTextStyle": "white",
+				"enablePullDownRefresh": false, //开启下拉刷新
+				"navigationStyle": "custom",
+				"app-plus": {
+					"titleNView": false
+				}
+			}
+		},
+		{
+			"path": "pages/orders1/subOrders",
+			"style": {
+				"navigationBarTitleText": "查看报价",
+				"app-plus": {
+					"scrollIndicator": "none",
+					"bounce": "none"
+				}
+			}
+		},
+		{
+			"path": "pages/orders1/quoteHistory",
+			"style": {
+				"navigationBarTitleText": "报价历史",
+				"app-plus": {
+					"scrollIndicator": "none",
+					"bounce": "none"
+				}
+			}
+		},
+		{
+			"path": "pages/orders1/quotation",
+			"style": {
+				"navigationBarTitleText": "报价单",
+				"navigationBarBackgroundColor": "#0052FF",
+				"navigationBarTextStyle": "white",
+				"enablePullDownRefresh": false
+
+			}
+
+		},
+		{
+			"path": "pages/orders1/paymentCode",
+			"style": {
+				"navigationBarTitleText": "付款码",
+				"navigationBarBackgroundColor": "#0052FF",
+				"navigationBarTextStyle": "white",
+				"enablePullDownRefresh": false
+
+			}
+
+		},
+		{
+			"path": "pages/orders1/paymentCode1",
+			"style": {
+				"navigationBarTitleText": "付款码",
+				"app-plus": {
+					"scrollIndicator": "none",
+					"bounce": "none"
+				}
+			}
+
 		}
+
+		//ui升级模块
+
 	],
 	"globalStyle": {
 		"navigationBarTextStyle": "black",
@@ -877,7 +1009,7 @@
 				"text": "首页"
 			},
 			{
-				"pagePath": "pages/orders/orders",
+				"pagePath": "pages/orders1/orders",
 				"iconPath": "static/icon/tab/icon_xiaoxi.png",
 				"selectedIconPath": "static/icon/tab/icon_xiaoxi_c.png",
 				"text": "订单"

+ 7 - 4
pages/carInsure1/carInfo1.vue

@@ -94,10 +94,12 @@
 						<view class="textColor">{{carInfo1.cartype}}</view>
 					</view>
 				</uni-forms-item>
-				<uni-forms-item label="车辆种类:" required>
-					<view class="d-flex a-center" style="width:100%;height: 100%;">
-						<view class="textColor" v-if="carInfo.cimodelclass=='A0'">客车</view>
-						<view class="textColor" v-if="carInfo.cimodelclass=='A1'">货车</view>
+				<uni-forms-item label="车辆种类:" required name="cimodelclass">
+					<view class="d-flex a-center" style="width:100%;height: 100%;" @click="cimodelclassshow=true">
+						<u-select v-model="cimodelclassshow" mode="single-column" :list="vehicleTypeoptions"
+							@confirm="dictionaryConfirm($event,'cimodelclass')" label-name="dictTag"
+							value-name="dictValue"></u-select>
+						<view class="textColor">{{carInfo1.cimodelclass}}</view>
 					</view>
 				</uni-forms-item>
 				<uni-forms-item label="能源种类: " required name="energyType">
@@ -595,6 +597,7 @@
 				cartypeshow: false,
 				cimodelclassshow: false,
 				energyTypeshow: false,
+				cimodelclassshow: false,
 				lodingshow: false,
 				endYear: Year,
 				endMonth: Month,

+ 1 - 0
pages/carInsure1/payCode1.vue

@@ -299,6 +299,7 @@
 			// 	});
 			// },
 			navOrder() {
+				console.log(1);
 				this.navigate({
 					url: "/pages/orders/orders"
 				}, "switchTab", true);

+ 198 - 0
pages/carInsure1/quote1.vue

@@ -182,6 +182,7 @@
 												label-name="agreementName" v-model="totalitem.selectShow"
 												@confirm="val=>selectConfirm(val,totalindex)"></u-select>
 										</u-form-item>
+
 										<u-button v-if="totalitem.namesimple == '紫金财险'" size="mini " type="warning"
 											:hair-line="false" @click="zijinPopupshow=true"
 											style="margin-left: 10px;">意外险选择</u-button>
@@ -189,6 +190,10 @@
 											:hair-line="false" @click="guoRencontributing(totalitem.agreementId)"
 											style="margin-left: 10px;">特约选择</u-button>
 									</view>
+									<u-form-item label="商业险折扣" v-if="totalitem.namesimple == '中国人寿'" placeholder="请输入数字"
+										label-width="200" :border-bottom='false' style="padding: 0;">
+										<u-input type="number" v-model="totalitem.syAdjustRate"></u-input>
+									</u-form-item>
 									<u-form-item label="自主定价系数" v-if="totalitem.namesimple == '紫金财险'"
 										placeholder="请输入数字" label-width="200" :border-bottom='false'
 										style="padding: 0;">
@@ -197,6 +202,7 @@
 									<text
 										style="color: #ff9000;font-weight: bold;">{{totalitem.underwritingDescription}}</text>
 								</view>
+
 								<template
 									v-if="totalitem.namesimple == '中国人寿' && totalitem.checked && totalitem.agreementId && renshouaccidentalDrivingVo.id">
 									<view class="accident-style dis f-c ">
@@ -288,6 +294,35 @@
 										</view>
 									</view>
 								</template>
+								<template
+									v-if="totalitem.namesimple == '渤海财险' && totalitem.checked && totalitem.agreementId && bohaiaccidentalDrivingVo.productCode">
+									<view class="accident-style dis f-c ">
+										<text style="font-weight: bold;font-size: 12px;">意外险信息</text>
+										<view class=" accident-ins dis a-c j-s">
+											<u-checkbox shape="circle" size="30" v-model="totalitem.jychecked"
+												@change="checkboxChangeInfo($event,totalindex)"
+												active-color="rgb(255, 170, 0)"></u-checkbox>
+											<view class=" dis a-c j-s " @click="bohaiPopupshow=true">
+												<text
+													style="font-size: 14px;">{{bohaiaccidentalDrivingVo.packageName}}</text>
+												<u-icon name="arrow-right" style="color: #999;" size="24"></u-icon>
+											</view>
+										</view>
+										<view class=" dis j-s a-c">
+											<view class="">
+												<text style="font-size: 14px;">保费:</text>
+												<text
+													style="font-size: 14px;color: #ee7000;">¥{{bohaiaccidentalDrivingVo.premium*bohaiaccidentalDrivingVo.copies}}.00</text>
+											</view>
+											<view class="">
+												<text style="font-size: 14px;">份数:</text>
+												<u-number-box v-model="bohaiaccidentalDrivingVo.copies" :min="1"
+													:max="1" :disabled-input="true" :input-width="70" :input-height="44"
+													size="26"></u-number-box>
+											</view>
+										</view>
+									</view>
+								</template>
 								<template
 									v-if="totalitem.namesimple == '恒邦财险' && totalitem.checked && totalitem.agreementId && hengbangaccidentalDrivingVo.programcode">
 									<view class="accident-style dis f-c ">
@@ -536,6 +571,9 @@
 									<u-button v-if="totalitem.lastYearMsg" size="mini " type="warning"
 										:hair-line="false" @click="YearMsg(totalitem.lastYearMsg,totalitem.namesimple)"
 										style="margin-left: 10px;">上年信息</u-button>
+									<u-button v-if='totalitem.result.predictInfo' size="mini " type="warning"
+										:hair-line="false" @click="preUnderwriting(totalitem.result.predictInfo)"
+										style="margin-left: 10px;">预核保信息</u-button>
 									<u-button size="mini " type="warning" :hair-line="false"
 										@click="bjdpreview(totalitem.result.companyId)"
 										style="margin-left: 10px;">报价单</u-button>
@@ -712,6 +750,31 @@
 				</u-radio-group>
 			</view>
 		</u-popup>
+		<!-- 渤海驾意险弹框 -->
+		<u-popup v-model="bohaiPopupshow" mode="center" width="80%" border-radius="10">
+			<view class="popContent dis f-c a-c">
+				<u-radio-group size="30" active-color="rgb(255, 170, 0)" style="display: grid;">
+					<u-radio style="margin: 4px 0;" @change="BHradioChange" v-for="(item, index) in bohaiInsuranceData"
+						:key="index" :name="item.productCode">
+						{{item.packageName}}
+					</u-radio>
+				</u-radio-group>
+			</view>
+		</u-popup>
+		<u-modal v-model="preUnderwritingshow" width="90%" title="预核保信息" :title-style="{fontWeight: 'bold'}">
+			<view class="" style="padding: 10px;overflow-y:auto;height: 400px;">
+				<view v-for="(item,index) in RSpreUnderwritingList" :key="index">
+					<view class="dis f-c ">
+						<text style="font-weight: bold;">审核意见</text>
+						<text style="font-size: 12px;">{{item.opinion}}</text>
+					</view>
+					<view class="dis f-c">
+						<text style="font-weight: bold;">备注</text>
+						<text style="font-size: 12px;">{{item.description}}</text>
+					</view>
+				</view>
+			</view>
+		</u-modal>
 		<u-modal v-model="Generateshow" content="是否生成新的订单?" :content-style="{fontWeight: 'bold'}"
 			:show-cancel-button="true" :show-title="false" :confirm-style="{color: '#ff9000'}"
 			@confirm="GenerateModalConfirm"></u-modal>
@@ -766,6 +829,7 @@
 					minute: true, //分
 					second: true, //秒
 				},
+				preUnderwritingshow: false, //预核保信息
 				Generateshow: false,
 				zhongmeiPopupshow: false,
 				zhongmeiInsuranceData: [], //中煤意外险list
@@ -807,6 +871,9 @@
 				renshouPopupshow: false,
 				renshouInsuranceData: [], //-人寿意外险list
 				renshouaccidentalDrivingVo: {}, //人寿意外险
+				bohaiPopupshow: false,
+				bohaiInsuranceData: [], //渤海意外险list
+				bohaiaccidentalDrivingVo: {}, //渤海意外险
 				jqstartShow: false, //交强起保日期
 				jqendShow: false, //交强终保日期
 				systartShow: false, //商业起保日期
@@ -1391,6 +1458,7 @@
 				notStartedQuote: true, //未开始报价(true表示未开始报价,false表示已经报价结束)
 				quoteCompanyCount: 0,
 				ycdrivingJoyCoverage: {},
+				RSpreUnderwritingList: [], //人寿预核保信息
 			}
 		},
 		async onLoad(params) {
@@ -1540,8 +1608,13 @@
 			}
 			let res = delEmptyQueryNodes(historyInfo);
 			uni.setStorageSync('historyInfo', res);
+			uni.removeStorageSync("companyId")
 		},
 		methods: {
+			preUnderwriting(list) {
+				this.RSpreUnderwritingList = list;
+				this.preUnderwritingshow = true;
+			},
 			// SelectAll(e) {
 			// 	this.totalCompanyList.map((ele, index) => {
 			// 		e.value ? ele.checked = true : ele.checked = false;
@@ -1851,6 +1924,35 @@
 								};
 							}
 							break;
+						case '渤海财险':
+							let bhcallback = await this.$http.post('/order/boHaiApi/productQuery', {
+								agreementId: this.totalCompanyList[index].agreement[0].id,
+								insuredPersonInfo: this.insuredPersonInfo,
+								policyHolderInfo: this.policyHolderInfo,
+								carnature: this.carInfo.carnature,
+								cimodelclass: this.carInfo.cimodelclass,
+								exhaustScale: this.carInfo.enginedesc,
+								limitLoad: "",
+								powerScale: this.carInfo.powerScale,
+								seatCount: Number(this.carInfo.seatCount),
+								vehicleUse: this.carInfo.vehicleUse,
+							});
+							if (bhcallback.code == '200') {
+								let data = bhcallback.data;
+								data.map(ele => {
+									ele.copies = 1;
+									return ele;
+								})
+								this.bohaiInsuranceData = data;
+								this.bohaiaccidentalDrivingVo = {
+									packageCode: data[0].packageCode,
+									productCode: data[0].productCode,
+									copies: data[0].copies,
+									premium: data[0].premium,
+									packageName: data[0].packageName,
+								};
+							}
+							break;
 						case '中国人寿':
 						case '恒邦财险':
 						case '众安财险':
@@ -1862,11 +1964,14 @@
 								});
 							if (Insurancecallback.code == 200) {
 								let data = Insurancecallback.data;
+
 								if (ins == '华农财险') {
 									data.map(ele => {
+										ele.accidentType = "";
 										ele.allQuantity = 1;
 										return ele;
 									})
+									data[0].accidentType = data[0].planCode;
 								} else {
 									data.map(ele => {
 										ele.quantity = 1;
@@ -1900,6 +2005,18 @@
 				}
 				this.zhongmeiPopupshow = false;
 			},
+			//渤海意外险
+			BHradioChange(id) {
+				let info = this.bohaiInsuranceData.find(val => val.productCode == id)
+				this.bohaiaccidentalDrivingVo = {
+					packageCode: info.packageCode,
+					productCode: info.productCode,
+					copies: info.copies,
+					packageName: info.packageName,
+					premium: info.premium,
+				}
+				this.bohaiPopupshow = false;
+			},
 			//人寿意外险
 			RSradioChange(id) {
 				this.renshouaccidentalDrivingVo = this.renshouInsuranceData.find(val => val.id == id)
@@ -1919,6 +2036,7 @@
 			//华农驾意险
 			HNradioChange(id) {
 				this.huanongaccidentalDrivingVo = this.huanongInsuranceData.find(val => val.planCode == id);
+				this.huanongaccidentalDrivingVo.accidentType = this.huanongaccidentalDrivingVo.planCode;
 				this.huanongPopupshow = false;
 			},
 			//大家意外险
@@ -2044,6 +2162,7 @@
 					ele["agreementName"] = "";
 					ele["apiType"] = "";
 					ele["coefficient"] = "";
+					ele["syAdjustRate"] = "";
 					ele["selectShow"] = false;
 					ele['underwritingDescription'] = "";
 				})
@@ -2254,6 +2373,73 @@
 					return;
 				}
 			},
+			//渤海报价
+			async bohai(num, id) {
+				let jychecked = this.totalCompanyList[num].jychecked;
+				let params = {
+					accidentalDrivingVo: jychecked ? [this.bohaiaccidentalDrivingVo] : [],
+					orderNo: this.orderno,
+					companyId: id,
+					agreementId: this.totalCompanyList[num].agreementId,
+				};
+
+				let res = await this.$http.post('/order/boHaiApi/quote', params);
+				this.totalCompanyList[num].msg = res.msg;
+				if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
+					this.totalCompanyList[num].quoteCode = "4";
+					this.totalCompanyList[num].msg = res.msg;
+					return;
+				} else if (
+					res.data == null &&
+					res.msg.indexOf("交强险平台返回") > -1 &&
+					res.msg.indexOf(";终保日期") > -1
+				) {
+					let time =
+						res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
+					this.jqstartDate = time;
+					this.jqendDate = this.oneYearPast(time);
+					if (this.riskList.length > 0) {
+						for (let i = 0; i < this.riskList.length; i++) {
+							if (this.riskList[i].riskCode == "0507") {
+								this.riskList[i].startDate = time;
+								this.riskList[i].endDate = this.oneYearPast(time);
+							}
+						}
+					}
+					let param = {
+						userId: this.userInfo.sysUser.id,
+						quoteno: this.quoteno,
+						orderNo: this.orderno,
+						carInfo: this.carInfo,
+						insuredPersonInfo: this.insuredPersonInfo,
+						ownerInfo: this.ownerInfo,
+						policyHolderInfo: this.policyHolderInfo,
+						kindList: this.kindList,
+						riskList: this.riskList,
+						vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
+					};
+					await this.$http.post('/insurance/order/generateOrder', param);
+					return this.zhongmei(num, id);
+				} else if (res.code == '200') {
+					if (res.data.warnMessageList != null && res.data.warnMessageList[
+							0] != null && res.data
+						.warnMessageList[
+							0] != "") {
+						this.totalCompanyList[num].lastYearMsg = "";
+						let dat = res.data.warnMessageList;
+						dat.map(ele => {
+							this.totalCompanyList[num].lastYearMsg += ele +
+								'<br>';
+						})
+					}
+					this.totalCompanyList[num].quoteCode = 200;
+					this.totalCompanyList[num].result = res.data;
+				} else {
+					this.totalCompanyList[num].quoteCode = "3";
+					this.totalCompanyList[num].msg = res.msg;
+					return;
+				}
+			},
 			//永诚报价
 			async yongcheng(num, id) {
 				let jychecked = this.totalCompanyList[num].jychecked
@@ -2637,6 +2823,7 @@
 
 			//爬虫统一报价接口
 			async quoteInsurance(num, id, apiType, jychecked) {
+				const companyId = uni.getStorageSync('companyId');
 				let api = apiType === 2 ?
 					"/insurance/crawler/quote" :
 					"anshengquote";
@@ -2653,6 +2840,13 @@
 						ccidenttype +
 						'accidentalDrivingVo'] : {},
 				};
+				if (id = 'GPIC1000000') {
+					if (companyId) {
+						params.discount = this.totalCompanyList[num]
+							.syAdjustRate;
+						params.lastCompanyId = companyId;
+					}
+				}
 				let res = await this.$http.post(`${api}`,
 					params);
 				this.totalCompanyList[num].msg = res.msg;
@@ -2685,6 +2879,10 @@
 								.quoteCode = 200;
 							this.totalCompanyList[num].result =
 								res.data;
+							if (res.data.syAdjustRate) {
+								this.totalCompanyList[num].syAdjustRate = res.data.syAdjustRate;
+								uni.setStorageSync('companyId', res.data.companyId);
+							}
 						} else {
 							this.totalCompanyList[num]
 								.quoteCode = "3";

+ 23 - 57
pages/carInsure1/quoteDetail1.vue

@@ -133,45 +133,6 @@
 					</view>
 				</view>
 			</view>
-			<!-- <template v-if="!!token">
-				<view class="quotePlan">
-					<view class="header d-flex a-center j-sb">
-						<view class="title">优惠政策</view>
-					</view>
-					<view class="body">
-						<view class="insurance">
-							<view class="row d-flex a-center j-sb">
-								<view class="d-flex a-center flex-1">险种</view>
-								<view class="d-flex a-center j-center flex-1">优惠比例</view>
-								<view class="d-flex j-end flex-1">优惠金额</view>
-							</view>
-
-							<block v-for="(item,index) in riskList" :key="index">
-								<template v-if="item.riskCode == '0507'">
-									<view class="row d-flex a-center j-sb">
-										<view class="d-flex a-center flex-1">交强险</view>
-										<view class="d-flex a-center j-center flex-1">{{jqdiscountrate}}%</view>
-										<view class="d-flex j-end flex-1">
-											{{(item.premium*jqdiscountrate/100).toFixed(2)}}
-										</view>
-									</view>
-								</template>
-							</block>
-							<block v-for="(item,index) in riskList" :key="index">
-								<template v-if="item.riskCode == '0510'">
-									<view class="row d-flex a-center j-sb">
-										<view class="d-flex a-center flex-1">商业险</view>
-										<view class="d-flex a-center j-center flex-1">{{sydiscountrate}}%</view>
-										<view class="d-flex j-end flex-1">
-											{{(item.premium*sydiscountrate/100).toFixed(2)}}
-										</view>
-									</view>
-								</template>
-							</block>
-						</view>
-					</view>
-				</view>
-			</template> -->
 			<view class="car">
 				<view class="header d-flex a-center j-sb">
 					<view class="title">保费因素</view>
@@ -185,37 +146,42 @@
 						<view style="color: #ff9000;">{{extendInfo.score}}</view>
 					</view>
 					<view class="row d-flex a-center j-sb">
-						<view>出险信息</view>
-						<view style="width: 200px; color: #ff9000;">{{extendInfo.accidentInfoStr}}</view>
+						<view>交强评分</view>
+						<view style="color: #ff9000;">{{extendInfo.jqScore}}</view>
 					</view>
 					<view class="row d-flex a-center j-sb">
-						<view>商业险折扣比例</view>
-						<view>{{extendInfo.nirrratio}}</view>
+						<view>商业评分</view>
+						<view style="color: #ff9000;">{{extendInfo.syScore}}</view>
 					</view>
 					<view class="row d-flex a-center j-sb">
-						<view>交强险折扣比例</view>
-						<view>{{extendInfo.nirrratioCI }}</view>
+						<view>出险信息</view>
+						<view style="width: 200px; color: #ff9000;">{{extendInfo.accidentInfoStr}}</view>
 					</view>
 					<view class="row d-flex a-center j-sb">
-						<view>自主定价系数</view>
-						<view>{{extendInfo.pricingAdjustValue}}</view>
+						<view>总赔付率</view>
+						<view>{{extendInfo.lossRation}}</view>
 					</view>
 					<view class="row d-flex a-center j-sb">
-						<view>业务员交强险销售费用浮动率</view>
-						<view>{{extendInfo.jqFeeSaleChangeRateA4}}</view>
+						<view>交强赔付率</view>
+						<view>{{extendInfo.jqLossRation}}</view>
 					</view>
 					<view class="row d-flex a-center j-sb">
-						<view>交强深度定价分档</view>
-						<view>{{extendInfo.deepPriceGradeCI}}</view>
+						<view>商业赔付率</view>
+						<view>{{extendInfo.syLossRation}}</view>
 					</view>
 					<view class="row d-flex a-center j-sb">
-						<view>业务员商业险销售费用浮动率</view>
-						<view>{{extendInfo.syFeeSaleChangeRateA4}}</view>
+						<view>总折扣率</view>
+						<view>{{extendInfo.totalAdjustRate}}</view>
 					</view>
 					<view class="row d-flex a-center j-sb">
-						<view>商业深度定价分档</view>
-						<view>{{extendInfo.deepPriceGradeBI}}</view>
+						<view>交强险折扣</view>
+						<view>{{extendInfo.jqAdjustRate}}</view>
 					</view>
+					<view class="row d-flex a-center j-sb">
+						<view>商业险折扣</view>
+						<view>{{extendInfo.syAdjustRate}}</view>
+					</view>
+
 				</view>
 			</view>
 			<view class="car">
@@ -2015,8 +1981,8 @@
 	.imageInfo,
 	.appoint {
 		margin-bottom: 20upx;
-		background: #FFFFFF;
-		padding: 0upx 40upx;
+		background-color: #fff;
+		padding: 0 8px;
 	}
 
 	.personInfo .title,

+ 80 - 5
pages/carInsure1/underwriting1.vue

@@ -271,7 +271,7 @@
 
 				<view class="uni-uploader" v-if="showInsuredImageInfo">
 					<view class="uni-uploader-body dis ">
-						<view class="uni-uploader__files dis f-c a-c">
+						<view class="uni-uploader__files dis f-c a-start">
 							<text>正面</text>
 							<block v-for="(image,index) in imgList7" :key="index">
 								<view class="uni-uploader__file">
@@ -474,7 +474,7 @@
 				<u-checkbox-group @change="ziJincontributingChange">
 					<u-checkbox v-model="item.checked" active-color="rgb(255, 153, 0)"
 						v-for="(item, index) in ziJinengageListData" :key="index"
-						:name="item.clauseCode">{{item.clauseName}}</u-checkbox>
+						:name="item.clauseId">{{item.clauseName}}</u-checkbox>
 				</u-checkbox-group>
 			</view>
 		</u-modal>
@@ -674,14 +674,12 @@
 			ziJincontributingChange(param) {
 				this.ziJinengageList = [];
 				param.map(val => {
-					let list = this.ziJinengageListData.find(item => item.clauseCode == val)
+					let list = this.ziJinengageListData.find(item => item.clauseId == val)
 					this.ziJinengageList.push({
 						clauseCode: list.clauseCode,
 						clauseName: list.clauseName,
 						clauses: list.clauseContent,
 						riskCode: list.riskCode,
-						modifyFlag: list.modifyFlag,
-						optType: list.optType,
 					})
 				})
 			},
@@ -1416,6 +1414,83 @@
 										});
 									}
 									break;
+								case "渤海财险":
+									let bhimage = await this.$http.post(
+										'/order/boHaiApi/submitImage', {
+											companyId: this.companyId
+										});
+									if (bhimage.code == '200') {
+										let bhaudit = await this.$http.post(
+											'/order/boHaiApi/audit', {
+												companyId: this.companyId,
+												jqappoint: "",
+												syappoint: ""
+											});
+										if (bhaudit.code == '200') {
+											uni.showModal({
+												content: '订单自核成功',
+												cancelText: '暂不缴费',
+												confirmText: '立即缴费',
+												success: (res1) => {
+													if (res1.confirm) {
+														let pro = this.userInfo.sysUser
+															.managementSource;
+														if (pro == "3") {
+															uni.navigateTo({
+																url: "/pages/carInsure1/payCode2?companyId=" +
+																	this
+																	.companyId
+															})
+														} else {
+															uni.navigateTo({
+																url: "/pages/carInsure1/payCode1?companyId=" +
+																	this
+																	.companyId
+															})
+														}
+													} else {
+														this.navigate({
+																url: "/pages/orders/orders"
+															}, "switchTab",
+															true);
+													}
+												}
+											});
+										} else {
+											uni.showModal({
+												content: '核保失败(' + bhaudit.msg + ')',
+												cancelText: '返回订单',
+												confirmText: '修改',
+												success: async (res2) => {
+													if (res2.confirm) {
+
+													} else {
+														this.navigate({
+																url: "/pages/orders/orders"
+															}, "switchTab",
+															true);
+													}
+												}
+											});
+										}
+									} else {
+										uni.showModal({
+											content: '影像上传失败(' + bhimage.msg + ')',
+											cancelText: '返回订单',
+											confirmText: '修改',
+											success: async (res3) => {
+												if (res3.confirm) {
+
+												} else {
+													this.navigate({
+															url: "/pages/orders/orders"
+														}, "switchTab",
+														true);
+												}
+											}
+										});
+									}
+									break;
 								case "恒邦财险":
 								case "安盛天平":
 								case "众安财险":

+ 1469 - 0
pages/carInsure2/Information.vue

@@ -0,0 +1,1469 @@
+<template>
+	<view class="page">
+		<public-module></public-module>
+		<view class="fixed dis a-c j-start" :style="headerStyle">
+			<u-icon name="arrow-left" size="40" @tap="back"></u-icon>
+			<text style="margin:  auto;">{{headerText}}</text>
+		</view>
+		<view class="banner"></view>
+		<view v-show="carInfoShow" class="Information" style="margin-top: -84px;">
+			<text class="title">车辆信息</text>
+			<view class="collapse">
+				<view class="top-ocr dis j-c a-c" v-show="!carimg">
+					<image src="../../static/image/car-insure/Frame.png" mode="">
+					</image>
+					<text @tap="ocrIdentify('carInfo')" style="margin-left: 5px;">点击上传/拍摄行驶证 自动填写信息</text>
+				</view>
+				<view v-show="!carExpand && !carimg" class="btn-collapse dis a-c j-c" @click="expand('carExpand')">
+					<text>展开手动输入车辆信息</text>
+					<u-icon name="arrow-down" size="30" color="rgb(60 60 60 / 60%)" style="margin-left: 5px;"></u-icon>
+				</view>
+				<view v-show="carExpand" class="">
+					<view v-if=" carimg" class="movable-view dis f-c a-c">
+						<movable-area>
+							<movable-view direction="all" out-of-bounds :scale="true">
+								<image :src="carimg" mode=""
+									:style="{width:'100%',height:'100%',transform:`rotate(-${cardeg}deg)`}">
+								</image>
+							</movable-view>
+						</movable-area>
+						<view class="operate-img dis j-s a-c">
+							<view class="dis a-c" @tap="rotatefront('cardeg')">
+								<image src="/static/image/car-insure/rotate1.png" mode=""></image>
+								左转
+							</view>
+							<view class="dis a-c" @tap="ocrIdentify('carInfo')">
+								<image src="/static/image/car-insure/upload.png" mode=""></image>
+								上传
+							</view>
+							<view class="dis a-c" @tap="rotateback('cardeg')">
+								<image src="/static/image/car-insure/rotate2.png" mode=""></image>
+								右转
+							</view>
+						</view>
+					</view>
+					<uni-forms :rules="carRules" :value="carInfo" ref="carForm" validate-trigger="bind"
+						err-show-type="toast" label-width="100">
+						<uni-forms-item label="车牌号: ">
+							<input class="uni-input-input textColor" placeholder="输入车牌号" v-model="carInfo.licenseNo"
+								placeholder-style="font-size:28upx" @input="upperCaseType('licenseNo')" />
+						</uni-forms-item>
+						<uni-forms-item name="frameNo" required label="车辆识别码:">
+							<view class="d-flex a-center" style="height: 100%;">
+								<input class="uni-input-input flex-1 textColor" placeholder="请输入车辆识别码"
+									v-model="carInfo.frameNo" maxlength="17" placeholder-style="font-size:28upx"
+									@input="upperCaseType('frameNo')" />
+								<image src="/static/image/car-insure/search.png" mode=""
+									style="width: 22px;height: 22px;" @tap="toChooseVin(carInfo.frameNo)">
+								</image>
+							</view>
+						</uni-forms-item>
+						<uni-forms-item name="modelcname" required label="品牌型号: ">
+							<view class="d-flex a-center textColor" style="height: 100%;">
+								<input class="uni-input-input flex-1 textColor" placeholder="请输入品牌型号"
+									v-model="carInfo.modelcname"
+									@blur="binddata('modelcname', $event.detail.value,'carForm')"
+									placeholder-style="font-size:28upx" @input="upperCaseType('modelcname')" />
+								<image src="/static/image/car-insure/search.png" mode=""
+									style="width: 22px;height: 22px;" @tap="toChooseVehicleType(carInfo.modelcname)">
+								</image>
+							</view>
+						</uni-forms-item>
+						<uni-forms-item name="engineNo" required label="发动机号: ">
+							<input class="uni-input-input textColor" placeholder="请输入发动机号" v-model="carInfo.engineNo"
+								@blur="binddata('engineNo', $event.detail.value,'carForm')"
+								placeholder-style="font-size:28upx" @input="upperCaseType('engineNo')" />
+						</uni-forms-item>
+						<uni-forms-item required label="注册日期" name="registerDate">
+							<u-input type="select" :custom-style="{textAlign:'right'}" :select-open="registerDateShow"
+								v-model="carInfo.registerDate" placeholder="请选择注册日期" @click="registerDateShow = true"
+								placeholder-style="color:#808080"></u-input>
+							<u-picker v-model="registerDateShow" mode="time" :params="params" :end-year="endYear"
+								:end-month="endMonth" @confirm="e=> Dateconfirm(e,'carInfo','registerDate')"></u-picker>
+						</uni-forms-item>
+						<uni-forms-item required label="发证日期" name="issueDate">
+							<u-input type="select" :custom-style="{textAlign:'right'}" :select-open="issueDateShow"
+								v-model="carInfo.issueDate" placeholder="请选择发证日期" @click="issueDateShow = true"
+								placeholder-style="color:#808080"></u-input>
+							<u-picker v-model="issueDateShow" mode="time" :params="params"
+								@confirm="e=> Dateconfirm(e,'carInfo','issueDate')"></u-picker>
+						</uni-forms-item>
+						<uni-forms-item v-if="carInfo.transferFlag" required label="转移登记日期" name="transferDate">
+							<u-input type="select" :select-open="transferDateShow" v-model="carInfo.transferDate"
+								placeholder="请选择过户日期" @click="transferDateShow = true"
+								placeholder-style="color:#808080"></u-input>
+							<u-picker v-model="transferDateShow" mode="time" :params="params" :end-year="endYear"
+								:end-month="endMonth" @confirm="e=> Dateconfirm(e,'carInfo','transferDate')"></u-picker>
+						</uni-forms-item>
+						<uni-forms-item label="整备质量: " required name="completeKerbMass">
+							<input class="uni-input-input textColor" placeholder="请输入整备质量"
+								v-model="carInfo.completeKerbMass" placeholder-style="font-size:28upx" />
+						</uni-forms-item>
+						<uni-forms-item label="核定载质量: ">
+							<input class="uni-input-input textColor" placeholder="请输入核定载质量" v-model="carInfo.limitLoad"
+								placeholder-style="font-size:28upx" />
+						</uni-forms-item>
+						<uni-forms-item label="年款: ">
+							<input class="uni-input-input textColor" placeholder="请输入年款" v-model="carInfo.caryear"
+								placeholder-style="font-size:28upx" />
+						</uni-forms-item>
+						<uni-forms-item label="座位数: ">
+							<input class="uni-input-input textColor" placeholder="请输入座位数" v-model="carInfo.seatCount"
+								placeholder-style="font-size:28upx" />
+						</uni-forms-item>
+						<uni-forms-item label="排量: ">
+							<input class="uni-input-input textColor" placeholder="请输入排量" v-model="carInfo.enginedesc"
+								placeholder-style="font-size:28upx" />
+						</uni-forms-item>
+						<uni-forms-item label="功率: ">
+							<input class="uni-input-input textColor" placeholder="请输入功率" v-model="carInfo.powerScale"
+								placeholder-style="font-size:28upx" />
+						</uni-forms-item>
+						<uni-forms-item label="新车购置价: " required name="purchasePrice">
+							<input class="uni-input-input textColor" placeholder="请输入新车购置价"
+								v-model="carInfo.purchasePrice" placeholder-style="font-size:28upx"
+								@blur="binddata('purchasePrice', $event.detail.value,'carForm')"
+								@input="upperCaseType('purchasePrice')" />
+						</uni-forms-item>
+						<uni-forms-item label="是否过户: ">
+							<view class="d-flex j-end a-c" style="height:100%">
+								<u-switch v-model="carInfo.transferFlag" active-color="#ea552d " size="30"
+									@change="transferFlagchange"></u-switch>
+							</view>
+						</uni-forms-item>
+					</uni-forms>
+				</view>
+			</view>
+		</view>
+		<view class="Information">
+			<text class="title">车主信息</text>
+			<view class="collapse">
+				<view class="top-ocr dis j-c a-c" v-show="!ownerimg">
+					<image src="../../static/image/car-insure/Frame1.png" mode="">
+					</image>
+					<text @tap="ocrIdentify('ownerInfo')" style="margin-left: 5px;">点击上传/拍摄行驶证 自动填写信息</text>
+				</view>
+				<view v-show="!ownersExpand  && !ownerimg" class="btn-collapse dis a-c j-c"
+					@click="expand('ownersExpand')">
+					<text>展开手动输入车主信息</text>
+					<u-icon name="arrow-down" size="30" color="rgb(60 60 60 / 60%)" style="margin-left: 5px;"></u-icon>
+				</view>
+				<view v-show="ownersExpand">
+					<view v-if=" ownerimg" class="movable-view dis f-c a-c">
+						<movable-area>
+							<movable-view direction="all" out-of-bounds :scale="true">
+								<image :src="ownerimg" mode=""
+									:style="{width:'100%',height:'100%',transform:`rotate(-${user1deg}deg)`}">
+								</image>
+							</movable-view>
+						</movable-area>
+						<view class="operate-img dis j-s a-c">
+							<view class="dis a-c" @tap="rotatefront('user1deg')">
+								<image src="/static/image/car-insure/rotate1.png" mode=""></image>
+								左转
+							</view>
+							<view class="dis a-c" @tap="ocrIdentify('ownerInfo')">
+								<image src="/static/image/car-insure/upload.png" mode=""></image>
+								上传
+							</view>
+							<view class="dis a-c" @tap="rotateback('user1deg')">
+								<image src="/static/image/car-insure/rotate2.png" mode=""></image>
+								右转
+							</view>
+						</view>
+					</view>
+					<uni-forms :rules="ownerRules" :value="ownerInfo" ref="ownerForm" validate-trigger="bind"
+						err-show-type="toast" label-width="80">
+						<uni-forms-item name="name" required label="姓名: ">
+							<input class="uni-input-input textColor" placeholder="请输入姓名" v-model="ownerInfo.name"
+								maxlength="5" placeholder-style="font-size:28upx" />
+						</uni-forms-item>
+						<uni-forms-item name="identifyType" required label="证件类型:">
+							<view class="dis a-c j-end" style="width:100%;height: 100%;">
+								身份证
+							</view>
+						</uni-forms-item>
+						<uni-forms-item required name="identifyNumber" label="证件号: ">
+							<input class="uni-input-input textColor" placeholder="请输入证件号"
+								v-model="ownerInfo.identifyNumber" maxlength="18"
+								@blur="binddata('identifyNumber', $event.detail.value,'ownerInfo')"
+								placeholder-style="font-size:28upx" />
+						</uni-forms-item>
+						<uni-forms-item required name="age" label="年龄: ">
+							<input class="uni-input-input textColor" disabled placeholder="请输入年龄"
+								v-model="ownerInfo.age" maxlength="18" placeholder-style="font-size:28upx" />
+						</uni-forms-item>
+						<uni-forms-item name="gender" required label="性别:">
+							<u-input v-model="ownerInfo.gender" type="select" :select-open="ownergenderShow"
+								@click="ownergenderShow = true" :custom-style="{textAlign:'right'}"
+								placeholder-style="color:#808080" placeholder="请选择性别" />
+							<u-select mode="single-column" :list="genderList" v-model="ownergenderShow"
+								@confirm="e=>genderConfirm(e,'ownerInfo')"></u-select>
+						</uni-forms-item>
+						<uni-forms-item required name="mobile" label="手机号: ">
+							<input class="uni-input-input textColor" placeholder="请输入手机号" v-model="ownerInfo.mobile"
+								maxlength="11" placeholder-style="font-size:28upx" />
+						</uni-forms-item>
+						<uni-forms-item required name="addr" label="地址: ">
+							<u-input type="textarea" v-model="ownerInfo.addr" :custom-style="{textAlign:'right'}"
+								placeholder-style="color:#808080" :auto-height="true" placeholder="请输入地址" />
+						</uni-forms-item>
+						<uni-forms-item name="email" label="邮箱: ">
+							<input class="uni-input-input textColor" placeholder="请输入邮箱" v-model="ownerInfo.email"
+								placeholder-style="font-size:28upx" />
+						</uni-forms-item>
+						<uni-forms-item required label="有效期起期" name="identifyValidDate">
+							<u-input type="select" :select-open="ownerDateShow" v-model="ownerInfo.identifyValidDate"
+								placeholder="请选择有效期起期" @click="ownerDateShow = true" :custom-style="{textAlign:'right'}"
+								placeholder-style="color:#808080"></u-input>
+							<u-picker v-model="ownerDateShow" mode="time" :params="params"
+								@confirm="e=> Dateconfirm(e,'ownerInfo','identifyValidDate')"></u-picker>
+						</uni-forms-item>
+						<uni-forms-item required label="有效期止期" name="identifyValidEndDate">
+							<u-input v-model="ownerInfo.identifyValidEndDate" :custom-style="{textAlign:'right'}"
+								type="select" placeholder="请输入有效期止期" :select-open="ownerEndDateShow"
+								placeholder-style="color:#808080" @click="ownerEndDateShow=true"></u-input>
+							<u-select mode="single-column" :list="endDateList" v-model="ownerEndDateShow"
+								@confirm="e=>endDateConfirm(e,'ownerInfo','identifyValidDate','identifyValidEndDate')"></u-select>
+						</uni-forms-item>
+					</uni-forms>
+				</view>
+			</view>
+		</view>
+		<view class="Information" style="padding-bottom: 10px;border-bottom: 1px solid #f2f2f2;">
+			<view class=" dis j-s a-c">
+				<text class="title">投保人信息</text>
+				<view class="dis a-c j-c">
+					<view class="status-data" :class="item.value==applicantholder? 'active':''"
+						v-for="(item,index) in holderstatusList" @tap="applicantholderClick(item.value)" :key="index">
+						{{item.label}}
+					</view>
+				</view>
+			</view>
+			<view v-show="applicantholder=='99'" class="collapse">
+				<view class="top-ocr dis j-c a-c" v-show="!applicantimg">
+					<image src="../../static/image/car-insure/Frame1.png" mode="">
+					</image>
+					<text @tap="ocrIdentify('policyHolderInfo')" style="margin-left: 5px;">点击上传/拍摄行驶证 自动填写信息</text>
+				</view>
+				<view v-show="!applicantExpand && !applicantimg" class="btn-collapse dis a-c j-c"
+					@click="expand('applicantExpand')">
+					<text>展开手动输入投保人信息</text>
+					<u-icon name="arrow-down" size="30" color="rgb(60 60 60 / 60%)" style="margin-left: 5px;"></u-icon>
+				</view>
+				<view v-show="applicantExpand">
+					<view v-if=" applicantimg" class="movable-view dis f-c a-c">
+						<movable-area>
+							<movable-view direction="all" out-of-bounds :scale="true">
+								<image :src="applicantimg" mode=""
+									:style="{width:'100%',height:'100%',transform:`rotate(-${user2deg}deg)`}">
+								</image>
+							</movable-view>
+						</movable-area>
+						<view class="operate-img dis j-s a-c">
+							<view class="dis a-c" @tap="rotatefront('user2deg')">
+								<image src="/static/image/car-insure/rotate1.png" mode=""></image>
+								左转
+							</view>
+							<view class="dis a-c" @tap="ocrIdentify('policyHolderInfo')">
+								<image src="/static/image/car-insure/upload.png" mode=""></image>
+								上传
+							</view>
+							<view class="dis a-c" @tap="rotateback('user2deg')">
+								<image src="/static/image/car-insure/rotate2.png" mode=""></image>
+								右转
+							</view>
+						</view>
+					</view>
+					<uni-forms :rules="applicantRules" :value="policyHolderInfo" ref="applicantForm"
+						validate-trigger="bind" err-show-type="toast" label-width="80">
+						<uni-forms-item name="name" required label="姓名: ">
+							<input class="uni-input-input textColor" placeholder="请输入姓名" v-model="policyHolderInfo.name"
+								maxlength="5" placeholder-style="font-size:28upx" />
+						</uni-forms-item>
+						<uni-forms-item name="identifyType" required label="证件类型:">
+							<view class="dis a-c j-end" style="width:100%;height: 100%;">
+								身份证
+							</view>
+						</uni-forms-item>
+						<uni-forms-item required name="identifyNumber" label="证件号: ">
+							<input class="uni-input-input textColor" placeholder="请输入证件号"
+								v-model="policyHolderInfo.identifyNumber" maxlength="18"
+								@blur="binddata('identifyNumber', $event.detail.value,'policyHolderInfo')"
+								placeholder-style="font-size:28upx" />
+						</uni-forms-item>
+						<uni-forms-item required name="age" label="年龄: ">
+							<input class="uni-input-input textColor" disabled placeholder="请输入年龄"
+								v-model="policyHolderInfo.age" maxlength="18" placeholder-style="font-size:28upx" />
+						</uni-forms-item>
+						<uni-forms-item name="gender" required label="性别:">
+							<u-input v-model="policyHolderInfo.gender" type="select" :select-open="ownergenderShow"
+								@click="ownergenderShow = true" :custom-style="{textAlign:'right'}"
+								placeholder-style="color:#808080" placeholder="请选择性别" />
+							<u-select mode="single-column" :list="genderList" v-model="ownergenderShow"
+								@confirm="e=>genderConfirm(e,'policyHolderInfo')"></u-select>
+						</uni-forms-item>
+						<uni-forms-item required name="mobile" label="手机号: ">
+							<input class="uni-input-input textColor" placeholder="请输入手机号"
+								v-model="policyHolderInfo.mobile" maxlength="11" placeholder-style="font-size:28upx" />
+						</uni-forms-item>
+						<uni-forms-item required name="addr" label="地址: ">
+							<u-input type="textarea" v-model="policyHolderInfo.addr" :custom-style="{textAlign:'right'}"
+								placeholder-style="color:#808080" placeholder="请输入地址" />
+						</uni-forms-item>
+						<uni-forms-item name="email" label="邮箱: ">
+							<input class="uni-input-input textColor" placeholder="请输入邮箱"
+								v-model="policyHolderInfo.email" placeholder-style="font-size:28upx" />
+						</uni-forms-item>
+						<uni-forms-item required label="有效期起期" name="identifyValidDate">
+							<u-input type="select" :select-open="applicantDateShow"
+								v-model="policyHolderInfo.identifyValidDate" placeholder="请选择有效期起期"
+								@click="applicantDateShow = true" :custom-style="{textAlign:'right'}"
+								placeholder-style="color:#808080"></u-input>
+							<u-picker v-model="applicantDateShow" mode="time" :params="params"
+								@confirm="e=> Dateconfirm(e,'policyHolderInfo','identifyValidDate')"></u-picker>
+						</uni-forms-item>
+						<uni-forms-item required label="有效期止期" name="identifyValidEndDate">
+							<u-input v-model="policyHolderInfo.identifyValidEndDate" :custom-style="{textAlign:'right'}"
+								type="select" placeholder="请输入有效期止期" :select-open="applicantEndDateShow"
+								placeholder-style="color:#808080" @click="applicantEndDateShow=true"></u-input>
+							<u-select mode="single-column" :list="endDateList" v-model="applicantEndDateShow"
+								@confirm="e=>endDateConfirm(e,'policyHolderInfo','identifyValidDate','identifyValidEndDate')"></u-select>
+						</uni-forms-item>
+					</uni-forms>
+				</view>
+			</view>
+		</view>
+		<view class="Information " style="padding-bottom: 10px;border-bottom: 1px solid #f2f2f2;">
+			<view class="dis j-s a-c">
+				<text class="title">被保人信息</text>
+				<view class="dis a-c j-c">
+					<view class="status-data" :class="item.value==Insuredholder? 'active':''"
+						v-for="(item,index) in insuredstatusList" @tap="InsuredholderClick(item.value)" :key="index">
+						{{item.label}}
+					</view>
+				</view>
+			</view>
+			<view v-show="Insuredholder=='99'" class="collapse">
+				<view class="top-ocr dis j-c a-c" v-show="!Insuredimg">
+					<image src="../../static/image/car-insure/Frame1.png" mode="">
+					</image>
+					<text @tap="ocrIdentify('insuredPersonInfo')" style="margin-left: 5px;">点击上传/拍摄行驶证 自动填写信息</text>
+				</view>
+				<view v-show="!InsuredExpand && !Insuredimg" class="btn-collapse dis a-c j-c"
+					@click="expand('InsuredExpand')">
+					<text>展开手动输入被保人信息</text>
+					<u-icon name="arrow-down" size="30" color="rgb(60 60 60 / 60%)" style="margin-left: 5px;"></u-icon>
+				</view>
+				<view v-show='InsuredExpand'>
+					<view v-if=" Insuredimg" class="movable-view dis f-c a-c">
+						<movable-area>
+							<movable-view direction="all" out-of-bounds :scale="true">
+								<image :src="Insuredimg" mode=""
+									:style="{width:'100%',height:'100%',transform:`rotate(-${user3deg}deg)`}">
+								</image>
+							</movable-view>
+						</movable-area>
+						<view class="operate-img dis j-s a-c">
+							<view class="dis a-c" @tap="rotatefront('user3deg')">
+								<image src="/static/image/car-insure/rotate1.png" mode=""></image>
+								左转
+							</view>
+							<view class="dis a-c" @tap="ocrIdentify('insuredPersonInfo')">
+								<image src="/static/image/car-insure/upload.png" mode=""></image>
+								上传
+							</view>
+							<view class="dis a-c" @tap="rotateback('user3deg')">
+								<image src="/static/image/car-insure/rotate2.png" mode=""></image>
+								右转
+							</view>
+						</view>
+					</view>
+					<uni-forms :rules="InsuredRules" :value="insuredPersonInfo" ref="InsuredForm"
+						validate-trigger="bind" err-show-type="toast" label-width="80">
+						<uni-forms-item name="name" required label="姓名: ">
+							<input class="uni-input-input textColor" placeholder="请输入姓名"
+								v-model="insuredPersonInfo.name" maxlength="5" placeholder-style="font-size:28upx" />
+						</uni-forms-item>
+						<uni-forms-item name="identifyType" required label="证件类型:">
+							<view class="dis a-c j-end" style="width:100%;height: 100%;">
+								身份证
+							</view>
+						</uni-forms-item>
+						<uni-forms-item required name="identifyNumber" label="证件号: ">
+							<input class="uni-input-input textColor" placeholder="请输入证件号"
+								v-model="insuredPersonInfo.identifyNumber" maxlength="18"
+								@blur="binddata('identifyNumber', $event.detail.value,'insuredPersonInfo')"
+								placeholder-style="font-size:28upx" />
+						</uni-forms-item>
+						<uni-forms-item required name="age" label="年龄: ">
+							<input class="uni-input-input textColor" disabled placeholder="请输入年龄"
+								v-model="insuredPersonInfo.age" maxlength="18" placeholder-style="font-size:28upx" />
+						</uni-forms-item>
+						<uni-forms-item name="gender" required label="性别:">
+							<u-input v-model="insuredPersonInfo.gender" type="select" :select-open="ownergenderShow"
+								@click="ownergenderShow = true" :custom-style="{textAlign:'right'}"
+								placeholder-style="color:#808080" placeholder="请选择性别" />
+							<u-select mode="single-column" :list="genderList" v-model="ownergenderShow"
+								@confirm="e=>genderConfirm(e,'insuredPersonInfo')"></u-select>
+						</uni-forms-item>
+						<uni-forms-item required name="mobile" label="手机号: ">
+							<input class="uni-input-input textColor" placeholder="请输入手机号"
+								v-model="insuredPersonInfo.mobile" maxlength="11" placeholder-style="font-size:28upx" />
+						</uni-forms-item>
+						<uni-forms-item required name="addr" label="地址: ">
+							<u-input type="textarea" v-model="insuredPersonInfo.addr"
+								:custom-style="{textAlign:'right'}" :auto-height="true"
+								placeholder-style="color:#808080" placeholder="请输入地址" />
+						</uni-forms-item>
+						<uni-forms-item name="email" label="邮箱: ">
+							<input class="uni-input-input textColor" placeholder="请输入邮箱"
+								v-model="insuredPersonInfo.email" placeholder-style="font-size:28upx" />
+						</uni-forms-item>
+						<uni-forms-item required label="有效期起期" name="identifyValidDate">
+							<u-input type="select" :select-open="InsuredDateShow"
+								v-model="insuredPersonInfo.identifyValidDate" placeholder="请选择有效期起期"
+								@click="InsuredDateShow = true" :custom-style="{textAlign:'right'}"
+								placeholder-style="color:#808080"></u-input>
+							<u-picker v-model="InsuredDateShow" mode="time" :params="params"
+								@confirm="e=> Dateconfirm(e,'insuredPersonInfo','identifyValidDate')"></u-picker>
+						</uni-forms-item>
+						<uni-forms-item required label="有效期止期" name="identifyValidEndDate">
+							<u-input v-model="insuredPersonInfo.identifyValidEndDate"
+								:custom-style="{textAlign:'right'}" type="select" placeholder="请输入有效期止期"
+								:select-open="InsuredEndDateShow" placeholder-style="color:#808080"
+								@click="InsuredEndDateShow=true"></u-input>
+							<u-select mode="single-column" :list="endDateList" v-model="InsuredEndDateShow"
+								@confirm="e=>endDateConfirm(e,'insuredPersonInfo','identifyValidDate','identifyValidEndDate')"></u-select>
+						</uni-forms-item>
+					</uni-forms>
+				</view>
+			</view>
+		</view>
+		<view class="footer-btn">
+			<u-button type="primary" style="background:#0052FF;" @tap="next">下一步</u-button>
+		</view>
+		<OCRComponent :showModal='OCRShow' @closePopup="closePopup" :tabslist="tabslist" @tabschange="OCRtabschange"
+			:tabsCurrent="tabsCurrent" :checkType='checkType' @carCallback="carCallback"
+			@ownerInfoCallback="ownerInfoCallback" @applicantInfoCallback="applicantInfoCallback"
+			@InsuredInfoCallback="InsuredInfoCallback">
+		</OCRComponent>
+	</view>
+</template>
+
+<script>
+	import OCRComponent from '@/components/modules/carInsure/OCRComponent/OCRComponent.vue'; //引用图片信息检查插件
+	import {
+		getAgeByIdCard
+	} from '@/plugins/utils';
+	var dateTime = new Date();
+	let Year = dateTime.getFullYear();
+	let Month = Number(dateTime.getMonth() + 1);
+	export default {
+		components: {
+			OCRComponent
+		},
+		data() {
+			return {
+				carInfo: {
+					licenseNo: "", //车牌号
+					brandName: "", //车辆品牌型号
+					vinNo: "", //车架号
+					engineNo: "", //发动机号
+					modelCode: "", //车型编码
+					seatCount: "0", //核定载客量 核定载人数
+					purchasePrice: "", //新车购置价最低,行业实际价值,协商价值
+					carBrand: "", //车型品牌
+					ciCarName: "", //行业车型名称
+					ciModelCode: "", //行业车型编码
+					completeKerbMass: "", //整备质量
+					exhaustScale: "", //排量
+					factory: "", //工厂名称
+					factoryid: "", //工厂编码
+					frameNo: "", //车架号
+					licenseTypeCode: "02", //号牌种类
+					vehicleclass: "", //车辆类型
+					familyName: "", //车型
+					modelcname: "", //车型名称
+					powertypecode: "", //燃料类型编码
+					vehicleweight: "", //总质量
+					limitLoad: "", //核定载质量
+					caryear: "0", //年款
+					cimodelclass: "A0", //车辆种类
+					powertype: "汽油", //燃料类型
+					energyType: "0", //能源种类
+					enginedesc: "", //排量
+					powerScale: "", //功率
+					registerDate: "", //注册日期
+					issueDate: "", //发证日期
+					transferFlag: false, //过户标志
+					transferFlagBi: false, //商业过户标志
+					transferDate: "", //过户日期
+					loanStatus: 0, //贷款标志
+					firstBeneMan: "", //第一受益人
+					noLicenseFlag: false, //是否新车
+					cartype: "K33", //客车A0 货车H0          
+					carnature: "", //使用性质 家庭自用8A  非营业企业8B   非营业党政机关,事业团体8C  非营业货车8D					
+					property: "1", //所属性质 1个人 2企业 3个人
+					outOfInsurance: false, //脱保
+					secondhandcarflag: false, //二手车
+					vehicleUse: "" //车辆用途
+				},
+				ownerInfo: {
+					name: "",
+					identifyType: "01",
+					identifyNumber: "",
+					addr: "",
+					gender: "", //性别
+					email: "", //邮箱
+					mobile: "",
+					identifyValidDate: "", //有效期起期
+					identifyValidEndDate: "", //有效期止期
+					age: "", //年龄
+				},
+				policyHolderInfo: {
+					name: "",
+					identifyType: "01",
+					identifyNumber: "",
+					addr: "",
+					gender: "", //性别
+					email: "",
+					mobile: "",
+					identifyValidDate: "", //有效期起期
+					identifyValidEndDate: "", //有效期止期
+					age: "", //年龄
+				},
+				insuredPersonInfo: {
+					name: "",
+					identifyType: "01",
+					identifyNumber: "",
+					addr: "",
+					gender: "", //性别
+					email: "",
+					mobile: "",
+					identifyValidDate: "", //有效期起期
+					identifyValidEndDate: "", //有效期止期
+					age: "", //年龄
+				},
+				//影像信息
+				riskList: [], //交强险和商业险的选择
+				kindList: [], //商业险险种的选择
+				carInfoPositiveList: [], //车辆
+				ownerInfoPositiveList: [], //车主
+				policyHolderInfoPositiveList: [], //投保人
+				insuredPersonInfoPositiveList: [], //被保人
+				//影像信息
+				carimg: "", //显示图片
+				ownerimg: "", //显示图片
+				applicantimg: "", //显示图片
+				Insuredimg: "", //显示图片
+				OCRShow: false,
+				tabsCurrent: 0,
+				checkType: "carInfo", //组件类型
+				tabslist: [{
+					name: '行驶证识别'
+				}],
+				params: {
+					year: true, //年
+					month: true, //月
+					day: true, //日
+					hour: false, //时
+					minute: false, //分
+					second: false, //秒
+				},
+				errorType: ['message', 'toast'],
+				carRules: {
+					frameNo: {
+						rules: [{
+							required: true,
+							errorMessage: '请输入车辆识别码',
+						}, {
+							pattern: /^([0-9A-Z]){17}$/,
+							errorMessage: '请输入正确的车辆识别码',
+						}]
+					},
+					modelcname: {
+						rules: [{
+							required: true,
+							errorMessage: '请输入品牌型号',
+						}, ]
+					},
+					engineNo: {
+						rules: [{
+							required: true,
+							errorMessage: '请输入发动机号',
+						}, ]
+					},
+					purchasePrice: {
+						rules: [{
+							required: true,
+							errorMessage: '请输入新车购置价',
+						}, {
+							validateField: function(rule, value, data, callback) {
+								if (value == 0) {
+									callback('新车购置价不能为零')
+								}
+								return true
+							}
+						}]
+					},
+					completeKerbMass: {
+						rules: [{
+							required: true,
+							errorMessage: '请输入整备质量',
+						}, ]
+					},
+					carnature: {
+						rules: [{
+							required: true,
+							errorMessage: '使用性质必选',
+						}, ]
+					},
+					vehicleUse: {
+						rules: [{
+							required: true,
+							errorMessage: '车辆用途必选',
+						}, ]
+					},
+
+					registerDate: {
+						rules: [{
+							required: true,
+							errorMessage: '请选择注册日期',
+						}, {
+							pattern: /^\d{4}-\d{2}-\d{2}$/,
+							errorMessage: '注册日期格式错误',
+						}]
+					},
+					issueDate: {
+						rules: [{
+							required: true,
+							errorMessage: '请选择发证日期',
+						}, {
+							pattern: /^\d{4}-\d{2}-\d{2}$/,
+							errorMessage: '发证日期日期格式错误',
+						}]
+					}
+				},
+				ownerRules: {
+					name: {
+						rules: [{
+								required: true,
+								errorMessage: '请输入车主姓名',
+							},
+							{
+								minLength: 2,
+								maxLength: 5,
+								errorMessage: '车主姓名长度在 {minLength} 到 {maxLength} 个字符',
+							},
+							{
+								pattern: /^([\u4e00-\u9fa5]{1,6}|[a-zA-Z\.\s]{1,6})$/,
+								errorMessage: '请输入正确的车主姓名',
+							}
+						]
+					},
+					identifyNumber: {
+						rules: [{
+								required: true,
+								errorMessage: '请输入车主证件号',
+							},
+							{
+								pattern: /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/,
+								errorMessage: '请输入正确的车主证件号',
+							}
+						]
+					},
+					mobile: {
+						rules: [{
+								required: true,
+								errorMessage: '请输入车主手机号',
+							},
+							{
+								pattern: /^1[3-9]\d{9}$/,
+								errorMessage: '请输入正确的手机号',
+							}
+						]
+					},
+					addr: {
+						rules: [{
+								required: true,
+								errorMessage: '请输入车主地址',
+							},
+							{
+								minLength: 8,
+								maxLength: 40,
+								errorMessage: '车主地址长度在 {minLength} 到 {maxLength} 个字符',
+							},
+						]
+					},
+					identifyValidDate: {
+						rules: [{
+							required: true,
+							errorMessage: '请选择身份证起期',
+						}, {
+							pattern: /^\d{4}-\d{2}-\d{2}$/,
+							errorMessage: '身份证起期格式错误',
+						}]
+					},
+					identifyValidEndDate: {
+						rules: [{
+							required: true,
+							errorMessage: '请选择身份证止期',
+						}, {
+							pattern: /^\d{4}-\d{2}-\d{2}$/,
+							errorMessage: '身份证止期格式错误',
+						}]
+					},
+				},
+				applicantRules: {
+					name: {
+						rules: [{
+								required: true,
+								errorMessage: '请输入投保人姓名',
+							},
+							{
+								minLength: 2,
+								maxLength: 5,
+								errorMessage: '投保人姓名长度在 {minLength} 到 {maxLength} 个字符',
+							},
+							{
+								pattern: /^([\u4e00-\u9fa5]{1,6}|[a-zA-Z\.\s]{1,6})$/,
+								errorMessage: '请输入正确的投保人姓名',
+							}
+						]
+					},
+					identifyNumber: {
+						rules: [{
+								required: true,
+								errorMessage: '请输入投保人证件号',
+							},
+							{
+								pattern: /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/,
+								errorMessage: '请输入正确的投保人证件号',
+							}
+						]
+					},
+					mobile: {
+						rules: [{
+								required: true,
+								errorMessage: '请输入投保人手机号',
+							},
+							{
+								pattern: /^1[3-9]\d{9}$/,
+								errorMessage: '请输入正确的手机号',
+							}
+						]
+					},
+
+
+					addr: {
+						rules: [{
+								required: true,
+								errorMessage: '请输入投保人地址',
+							},
+							{
+								minLength: 8,
+								maxLength: 40,
+								errorMessage: '投保人地址长度在 {minLength} 到 {maxLength} 个字符',
+							},
+						]
+					},
+					identifyValidDate: {
+						rules: [{
+							required: true,
+							errorMessage: '请选择身份证起期',
+						}, {
+							pattern: /^\d{4}-\d{2}-\d{2}$/,
+							errorMessage: '身份证起期格式错误',
+						}]
+					},
+					identifyValidEndDate: {
+						rules: [{
+							required: true,
+							errorMessage: '请选择身份证止期',
+						}, {
+							pattern: /^\d{4}-\d{2}-\d{2}$/,
+							errorMessage: '身份证止期格式错误',
+						}]
+					},
+				},
+				InsuredRules: {
+					name: {
+						rules: [{
+								required: true,
+								errorMessage: '请输入被保人姓名',
+							},
+							{
+								minLength: 2,
+								maxLength: 5,
+								errorMessage: '被保人姓名长度在 {minLength} 到 {maxLength} 个字符',
+							},
+							{
+								pattern: /^([\u4e00-\u9fa5]{1,6}|[a-zA-Z\.\s]{1,6})$/,
+								errorMessage: '请输入正确的被保人姓名',
+							}
+						]
+					},
+					identifyNumber: {
+						rules: [{
+								required: true,
+								errorMessage: '请输入被保人证件号',
+							},
+							{
+								pattern: /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/,
+								errorMessage: '请输入正确的被保人证件号',
+							}
+						]
+					},
+					mobile: {
+						rules: [{
+								required: true,
+								errorMessage: '请输入被保人手机号',
+							},
+							{
+								pattern: /^(13[0-9]|14[01456879]|15[0-3,5-9]|16[2567]|17[0-8]|18[0-9]|19[0-3,5-9])\d{8}$/,
+								errorMessage: '请输入正确的手机号',
+							}
+						]
+					},
+					addr: {
+						rules: [{
+								required: true,
+								errorMessage: '请输入被保人地址',
+
+							},
+							{
+								minLength: 8,
+								maxLength: 40,
+								errorMessage: '被保人地址长度在 {minLength} 到 {maxLength} 个字符',
+							},
+						]
+					},
+					identifyValidDate: {
+						rules: [{
+							required: true,
+							errorMessage: '请选择身份证起期',
+						}, {
+							pattern: /^\d{4}-\d{2}-\d{2}$/,
+							errorMessage: '身份证起期格式错误',
+						}]
+					},
+					identifyValidEndDate: {
+						rules: [{
+							required: true,
+							errorMessage: '请选择身份证止期',
+						}, {
+							pattern: /^\d{4}-\d{2}-\d{2}$/,
+							errorMessage: '身份证止期格式错误',
+						}]
+					},
+				},
+				endYear: Year,
+				endMonth: Month,
+				ownergenderShow: false, //性别选择
+				applicantgenderShow: false, //性别选择
+				InsuredgenderShow: false, //性别选择
+				registerDateShow: false, //注册日期
+				issueDateShow: false, //发证日期
+				transferDateShow: false, //转移登记日期
+				ownerDateShow: false, //
+				ownerEndDateShow: false, //止期选择
+				applicantDateShow: false, //
+				applicantEndDateShow: false, //止期选择
+				InsuredDateShow: false, //
+				InsuredEndDateShow: false, //止期选择
+				identifyType: "身份证",
+				carExpand: false,
+				ownersExpand: false,
+				applicantExpand: false,
+				InsuredExpand: false,
+				carInfoShow: true, //车辆信息显示
+				headerText: '信息录入',
+				headerStyle: {
+					backgroundColor: 'transparent',
+				},
+				prevScrollTop: 0,
+				applicantholder: "1",
+				Insuredholder: "2",
+				holderstatusList: [{
+						label: '同车主',
+						value: "1",
+					},
+					{
+						label: '其他人',
+						value: "99",
+					},
+
+				],
+				insuredstatusList: [{
+						label: '同车主',
+						value: '1',
+					},
+					{
+						label: '同投保人',
+						value: '2',
+					},
+					{
+						label: '其他人',
+						value: '99',
+					},
+
+				],
+				endDateList: [{
+						label: '10年',
+						value: "10年"
+					},
+					{
+						label: '20年',
+						value: "20年"
+					},
+					{
+						label: '长期',
+						value: "长期"
+					},
+				],
+				genderList: [{
+						label: '男',
+						value: "男"
+					},
+					{
+						label: '女',
+						value: "女"
+					},
+
+				],
+
+				cardeg: 0, //旋转角度
+				user1deg: 0, //旋转角度
+				user2deg: 0, //旋转角度
+				user3deg: 0, //旋转角度
+				routepage: "",
+			}
+		},
+		watch: {
+			checkType: {
+				handler(val) {
+					switch (val) {
+						case 'carInfo':
+							this.tabslist = [{
+								name: '行驶证识别'
+							}]
+
+							break;
+						default:
+							this.tabslist = [{
+								name: '证件识别'
+							}]
+							break;
+					}
+				},
+				deep: true
+			}
+		},
+		onShow() {
+
+		},
+		onLoad(params) {
+			let pages = getCurrentPages(); // 当前页面路由
+			if (pages.length > 1) {
+				let beforePage = pages[pages.length - 2].route; // 上一个页面路由
+				this.routepage = beforePage;
+			}
+			if (!!params.licenseNo) {
+				this.carExpand = true;
+				this.carInfo.licenseNo = decodeURIComponent(params.licenseNo);
+			} else {
+				const eventChannel = this.getOpenerEventChannel()
+				eventChannel.on('acceptData', (data) => {
+					console.log(data);
+					if (!!data) {
+						let info = JSON.parse(JSON.stringify(data));
+						let page = this.routepage;
+						console.log(page);
+						switch (page) {
+							case 'pages/carInsure2/entry':
+								this.carInfoShow = false;
+								this.carInfo = info.carInfo; //车辆信息
+								this.carInfoPositiveList = info.carInfoPositiveList; //车辆
+								break;
+							case 'pages/carInsure2/quote':
+							case 'pages/carInsure2/quoteDetail':
+								this.carInfo = info.carInfo; //车辆信息
+								this.ownerInfo = info.ownerInfo; //车主信息
+								this.policyHolderInfo = info.policyHolderInfo; //投保人信息
+								this.insuredPersonInfo = info.insuredPersonInfo; //被保人信息
+								this.riskList = info.riskList; //险种大类
+								this.kindList = info.kindList; //商业险险别
+								this.carInfoPositiveList = info.carInfoPositiveList; //车辆
+								this.ownerInfoPositiveList = info.ownerInfoPositiveList; //车主
+								this.policyHolderInfoPositiveList = info.policyHolderInfoPositiveList; //投保
+								this.insuredPersonInfoPositiveList = info.insuredPersonInfoPositiveList; //被保人
+								this.carExpand = true;
+								this.ownersExpand = true;
+								break;
+							default:
+								break;
+						}
+
+
+					}
+
+				})
+			}
+		},
+		onPageScroll(e) {
+			this.handleScroll(e);
+		},
+		mounted() {
+			uni.pageScrollTo({
+				scrollTop: 0,
+				duration: 0
+			});
+			uni.$on('scroll', this.handleScroll);
+		},
+		destroyed() {
+			uni.$off('scroll', this.handleScroll);
+		},
+		methods: {
+			async toChooseVin(cctype) {
+				if (cctype == '' || cctype == null) {
+					return uni.showToast({
+						icon: 'none',
+						title: '请输入车架号',
+						duration: 1500
+					});
+				} else {
+					if (!this.isFrameno(cctype.trim())) {
+						return uni.showToast({
+							title: '请输入正确的车辆识别码',
+							icon: "none"
+						});
+					}
+					this.navigate({
+						url: '/pages/carInsure2/carType?frameNo=' + encodeURIComponent(cctype)
+					}, "navigateTo", true);
+				}
+			},
+			//跳转选择车辆类型页面
+			toChooseVehicleType(cctype) {
+				if (cctype == '' || cctype == null) {
+					uni.showToast({
+						icon: 'none',
+						title: '请输入车型名称',
+						duration: 1500
+					});
+				} else {
+					let cctypeName = cctype.replace(/[^u4e00-u9fa5|,]+/ig, '')
+					this.navigate({
+						url: '/pages/carInsure2/carType?modelName=' + encodeURIComponent(cctypeName)
+					}, "navigateTo", true);
+				}
+			},
+			//验证车架号
+			isFrameno(str) {
+				let mPattern = /^([0-9A-Z]){17}$/;
+				return mPattern.test(str);
+			},
+			rotatefront(int) {
+				this[int] = this[int] == 270 ? 0 : this[int] + 90;
+			},
+			rotateback(int) {
+				this[int] = this[int] == 0 ? 270 : this[int] - 90;
+			},
+			onMove(e) {
+				this.x = e.detail.x;
+				this.y = e.detail.y;
+			},
+			//OC识别返回信息
+			carCallback(obj) {
+				this.carimg = obj.img;
+				this.carInfoPositiveList = obj.ImgList;
+				Object.assign(this.carInfo, obj.Info);
+				this.OCRShow = false;
+				this.carExpand = true;
+			},
+			ownerInfoCallback(obj) {
+				this.ownerimg = obj.img;
+				this.ownerInfoPositiveList = obj.ImgList;
+				Object.assign(this.ownerInfo, obj.Info);
+				this.OCRShow = false;
+				this.ownersExpand = true;
+			},
+			applicantInfoCallback(obj) {
+				this.applicantimg = obj.img;
+				this.policyHolderInfoPositiveList = obj.ImgList;
+				Object.assign(this.policyHolderInfo, obj.Info);
+				this.OCRShow = false;
+				this.applicantExpand = true;
+			},
+			InsuredInfoCallback(obj) {
+				this.Insuredimg = obj.img;
+				this.insuredPersonInfoPositiveList = obj.ImgList;
+				Object.assign(this.insuredPersonInfo, obj.Info);
+				this.OCRShow = false;
+				this.InsuredExpand = true;
+			},
+			OCRtabschange(e) {
+				this.tabsCurrent = e;
+			},
+			closePopup() {
+				this.OCRShow = false;
+			},
+			ocrIdentify(name) {
+				this.checkType = name;
+				this.OCRShow = !this.OCRShow;
+			},
+			transferFlagchange(status) {
+				if (status) {
+					this.carInfo.transferDate = this.carInfo.issueDate;
+				} else {
+					this.carInfo.transferDate = ""
+				}
+			},
+			binddata(name, value, type) {
+				if (name == 'identifyNumber') {
+					this[type].age = getAgeByIdCard(value)
+				}
+			},
+
+			//转变大写(车型/车架号/发动机号)
+			upperCaseType(type) {
+				this.carInfo[type] = this.carInfo[type].toUpperCase();
+				if (type == 'vinNo') {
+					this.carInfo.frameNo = this.carInfo.vinNo.trim();
+				}
+			},
+			//身份证止期(10/20/长期)处理
+			endDateConfirm(e, obj, param1, param2) {
+				switch (e[0].label) {
+					case '10年':
+						this[obj][param2] = this.endDateInt(this[obj][param1], 10)
+						break;
+					case '20年':
+						this[obj][param2] = this.endDateInt(this[obj][param1], 20)
+						break;
+					case '长期':
+						this[obj][param2] = "9999-12-31"
+						break;
+					default:
+				}
+			},
+			Dateconfirm(e, obj, param) {
+				this[obj][param] = e.year + '-' + e.month + '-' + e.day;
+			},
+			//性别匹配
+			genderConfirm(val, name) {
+				this[name].gender = val[0].label;
+			},
+			//(同车主/同投保人)数据处理
+			setPersonInfoAndImageType(sourceInfo, targetInfo, imageType) {
+				let obj = Object.assign({}, this[sourceInfo]);
+				this[targetInfo] = obj;
+				if (this[sourceInfo + 'PositiveList'].length > 0) {
+					this[targetInfo + 'PositiveList'] = JSON.parse(JSON.stringify(this[sourceInfo + 'PositiveList']));
+					if (this[targetInfo + 'PositiveList'].length == 1) {
+						this[targetInfo + 'PositiveList'][0].imageType = imageType;
+					} else {
+						this[targetInfo + 'PositiveList'][0].imageType = imageType;
+						this[targetInfo + 'PositiveList'][1].imageType = `D${imageType.substr(1)}`;
+					}
+				}
+			},
+			//校验事件
+			next() {
+				//投保人同车主
+				if (this.applicantholder == '1') {
+					this.setPersonInfoAndImageType('ownerInfo', 'policyHolderInfo', "C03");
+				}
+				if (this.Insuredholder == '1') {
+					this.setPersonInfoAndImageType('ownerInfo', 'insuredPersonInfo', "C04");
+				}
+				if (this.Insuredholder == '2') {
+					this.setPersonInfoAndImageType('policyHolderInfo', 'insuredPersonInfo', "C04");
+				}
+				this.$refs.carForm.submit().then(res => {
+					this.$refs.ownerForm.submit().then(res1 => {
+						this.$refs.applicantForm.submit().then(res2 => {
+							this.$refs.InsuredForm.submit().then(res3 => {
+								this.navigate({
+									url: '/pages/carInsure2/insureItems',
+									success: (res) => {
+										res.eventChannel.emit(
+											"acceptData", {
+												carInfo: this
+													.carInfo,
+												ownerInfo: this
+													.ownerInfo,
+												policyHolderInfo: this
+													.policyHolderInfo,
+												insuredPersonInfo: this
+													.insuredPersonInfo,
+												riskList: this
+													.riskList,
+												kindList: this
+													.kindList,
+												carInfoPositiveList: this
+													.carInfoPositiveList, //车辆
+												ownerInfoPositiveList: this
+													.ownerInfoPositiveList, //车主
+												policyHolderInfoPositiveList: this
+													.policyHolderInfoPositiveList, //投保人
+												insuredPersonInfoPositiveList: this
+													.insuredPersonInfoPositiveList, //被保人
+											})
+
+									}
+								}, "navigateTo", true);
+							})
+						})
+					})
+				})
+			},
+			expand(int) {
+				this[int] = true;
+			},
+			//投保人同车主
+			applicantholderClick(value) {
+				this.applicantholder = value;
+				if (value == '99') {
+					for (let key in this.policyHolderInfo) {
+						if (key !== 'identifyType') {
+							this.policyHolderInfo[key] = '';
+						}
+					}
+				}
+			},
+			//被保人同车主/投保人
+			InsuredholderClick(value) {
+				this.Insuredholder = value;
+				if (value == '99') {
+					for (let key in this.insuredPersonInfo) {
+						if (key !== 'identifyType') {
+							this.insuredPersonInfo[key] = '';
+						}
+					}
+				}
+			},
+			//头部颜色变化js
+			handleScroll(e) {
+				const scrollTop = e.scrollTop;
+				let opacity = 1;
+				let shadowOpacity = 0;
+				if (scrollTop > this.prevScrollTop) {
+					// 向下滚动
+					opacity = Math.min((scrollTop - 50) / 100, 1); // 根据滚动距离计算透明度,最大为1
+					shadowOpacity = Math.min((scrollTop - 50) / 500, 0.3); // 根据滚动距离计算阴影透明度,最大为0.3
+				} else if (scrollTop < 50) {
+					// 在顶部附近,设置透明度和阴影透明度均为0
+					opacity = 0;
+					shadowOpacity = 0;
+				} else {
+					// 向上滚动
+					opacity = Math.max(0, 1 - (scrollTop / 100)); // 根据滚动距离计算透明度,最小为0
+					shadowOpacity = Math.max(0, 0.3 - (scrollTop / 500)); // 根据滚动距离计算阴影透明度,最小为0
+				}
+				const rgbaOpacity = opacity * 100; // 将透明度转换为百分比形式
+				const backgroundColor = `rgb(255 255 255 / ${rgbaOpacity}%)`; // 根据透明度设置背景颜色
+				// 计算阴影的颜色和大小
+				const shadowBlur = shadowOpacity * 10; // 阴影模糊程度为阴影透明度的10像素
+				const shadowColor = `rgba(218, 227, 244, ${shadowOpacity})`; // 阴影颜色为黑色,透明度根据阴影透明度计算
+				const boxShadow = `0 0 ${shadowBlur}px ${shadowColor}`; // 生成box-shadow属性值
+				this.headerStyle.backgroundColor = backgroundColor;
+				this.headerStyle.boxShadow = boxShadow;
+				this.prevScrollTop = scrollTop;
+			},
+			//页面返回按钮
+			back() {
+				uni.navigateBack({
+					delta: 1, // 返回的页面数,如果是1表示返回上一页
+					success: function() {}
+				});
+			},
+			endDateInt(time, sum) {
+				let currentDate = new Date(time);
+				currentDate.setFullYear(currentDate.getFullYear() + sum);
+				let year = currentDate.getFullYear();
+				let month = ('0' + (currentDate.getMonth() + 1)).slice(-2);
+				let day = ('0' + currentDate.getDate()).slice(-2);
+				let formattedDate = year + '-' + month + '-' + day;
+				return formattedDate;
+			}
+		},
+	}
+</script>
+
+<style lang="scss" scoped>
+	.uni-forms-item ::v-deep .uni-input-input {
+		text-align: end;
+	}
+
+	.uni-forms-item ::v-deep .u-input__textarea {
+		min-height: auto !important;
+	}
+
+	::v-deep .uni-forms-item {
+		border-bottom: 1px solid #f2f2f2;
+	}
+
+	::v-deep .uni-forms-item:last-child {
+		border: none;
+	}
+
+	.page {
+		min-height: 100%;
+		background: #F8FAFE;
+		padding: 12px 16px 50px 16px;
+	}
+
+	.fixed {
+		position: fixed;
+		top: 0;
+		left: 0;
+		width: 100%;
+		height: auto;
+		background-color: transparent;
+		padding: 50px 16px 16px 16px;
+		z-index: 99;
+		transition: background-color 0.2s;
+
+		text {
+			font-size: 18px;
+			font-weight: bold;
+		}
+	}
+
+	.banner {
+		width: 100%;
+		height: 168px;
+		background-image: url("/static/image/car-insure/carban2.png");
+		background-size: cover;
+		background-position: center;
+
+
+	}
+
+	.Information {
+		width: 100%;
+		height: auto;
+		margin-bottom: 24px;
+
+		.title {
+			font-size: 15px;
+			font-weight: bold;
+		}
+
+		.collapse {
+			width: 100%;
+			height: auto;
+			background: #FFFFFF;
+			margin-top: 10px;
+			box-shadow: 0px 4px 10px 0px #DAE3F4;
+			border-radius: 12px 12px 12px 12px;
+
+			>view:nth-child(1) {
+				width: 100%;
+				height: 42px;
+
+			}
+
+			.top-ocr {
+				background-color: #F9F9F9;
+				border-top-left-radius: 12px;
+				border-top-right-radius: 12px;
+				color: #0052FF;
+				font-size: 14px;
+
+				image {
+					width: 20px;
+					height: 20px;
+				}
+			}
+
+			.btn-collapse {
+				height: 42px;
+				font-size: 12px;
+				background-color: white;
+				border-bottom-left-radius: 12px;
+				border-bottom-right-radius: 12px;
+				color: rgba(60, 60, 60, 0.6);
+			}
+		}
+	}
+
+	.movable-view {
+		.operate-img {
+			width: 90%;
+			height: 38px;
+			background-color: #F9F9F9;
+			border-radius: 8px;
+			padding: 10px 25px;
+			margin-top: 10px;
+
+			image {
+				width: 20px;
+				height: 20px;
+				margin-right: 5px;
+			}
+		}
+	}
+
+	.status-data {
+		width: 66px;
+		height: 30px;
+		margin: 0 7px;
+		font-size: 14px;
+		border: 1px solid #CDCDCD;
+		cursor: pointer;
+		text-align: center;
+		line-height: 30px;
+	}
+
+	.active {
+		position: relative;
+		background: rgba(0, 82, 255, 0.1);
+		color: #0052FF;
+		border: 1px solid #0052FF;
+		font-weight: 700;
+	}
+
+	.active::before {
+		content: "";
+		position: absolute;
+		top: 0;
+		left: 0;
+		width: 10px;
+		height: 10px;
+		background-image: url("/static/image/car-insure/before.png");
+		background-size: cover;
+	}
+
+	.footer-btn {
+		position: fixed;
+		bottom: 0;
+		left: 0;
+		width: 100%;
+		height: 62px;
+		background: #FFFFFF;
+		box-shadow: 0px -4px 10px 0px #DAE3F4;
+		border-radius: 0px 0px 0px 0px;
+		padding: 12px 16px;
+		z-index: 99;
+	}
+
+	movable-area {
+		height: 220px;
+		width: 100%;
+		border-top-left-radius: 12px;
+		border-top-right-radius: 12px;
+		background-color: #D8D8D8;
+		overflow: hidden;
+	}
+
+	movable-view {
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		height: 100%;
+		width: 100%;
+	}
+</style>

+ 201 - 0
pages/carInsure2/carType.vue

@@ -0,0 +1,201 @@
+<template>
+	<view class="page">
+		<!-- 公共组件-每个页面必须引入 -->
+		<view class="box">
+			<view class="row " v-for="(item,index) in typeList" :key="index" @tap="chooseVehicleType(index)">
+				<!-- 永安 -->
+				<view class="row_header dis a-c j-s">
+					<view class="left">{{item.modelName }}</view>
+					<view class="right">¥{{item.replacementValue}}</view>
+				</view>
+				<view class="row_body dis f-c">
+					<view class="dis j-s">
+						<view style="margin-right: 5px;">车系:{{item.series}}</view>
+						<view>{{item.remark}}</view>
+						<view style="margin-left: auto;">({{item.ratedPassengerCapacity}}座)</view>
+					</view>
+					<view class="dis j-s">
+						<view>年款:<text style="color: #2432ff;">{{item.marketYear}}</text></view>
+						<view>排量:<text style="color: #2432ff;">{{item.displacement}}</text></view>
+						<view>功率:<text style="color: #2432ff;">{{item.powerScale}}</text></view>
+					</view>
+
+
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+<script>
+	import {
+		mapState,
+		mapMutations
+	} from "vuex"
+	export default {
+		data() {
+			return {
+				frameNo: "", //车架号
+				modelName: "", //车型
+				enrollDate: "", //
+				typeList: [{
+					modelName: "大众汽车SVW71612CS轿车",
+					replacementValue: "779000",
+					series: "桑塔纳自动档 ",
+					remark: "豪华版国IV",
+					marketYear: "200000",
+					displacement: "1.5858",
+					ratedPassengerCapacity: "32322",
+
+				}],
+			}
+		},
+		async onLoad(options) {
+			if (options.frameNo) {
+				this.frameNo = decodeURIComponent(options.frameNo);
+				let res = await this.$http.get('/order/carModel/vinSearch?frameNo=' + this.frameNo);
+				this.typeList = res.data;
+			} else if (options.modelName) {
+				this.modelName = decodeURIComponent(options.modelName);
+				let params = {
+					modelName: this.modelName
+				}
+				let res = await this.$http.post('/order/zhongMeiApi/modelsQuery', params);
+				this.typeList = res.data;
+			}
+		},
+		computed: {
+			getHeight() {
+				let height = uni.getSystemInfoSync().windowHeight;
+				return `height: ${height}px;`;
+			}
+		},
+		methods: {
+			async queryList(pageNo, pageSize) {
+
+				// if (!!this.brandName) {
+				// 	/* 永安 */
+				// 	let param = {
+				// 		// "rows": pageSize,
+				// 		// "pageNo": pageNo,
+				// 		"modelName": this.brandName,
+				// 		// "enrollDate": this.enrollDate,
+				// 		// "frameNo": this.frameNo,
+				// 	}
+				// 	let res = await this.$http.post('/insZhongmei/modelQuery', param);
+				// 	let resList = [];
+				// 	if (!!res.data) {
+				// 		resList = res.data;
+				// 	}
+				// 	this.$refs.paging.complete(res.data);
+				// 	this.firstLoaded = true;
+				// } else if (!!this.frameNo) {
+				// 	let res = await this.$http.get('/insZhongmei/vinSearch?frameNo=' + this.frameNo);
+				// 	let resList = [];
+				// 	if (!!res.data) {
+				// 		resList = res.data;
+				// 	}
+				// 	this.$refs.paging.complete(res.data);
+				// 	this.firstLoaded = true;
+				// }
+
+			},
+			chooseVehicleType(index) {
+				let pages = getCurrentPages(); //获取所有页面栈实例列表
+				let nowPage = pages[pages.length - 1]; //当前页页面实例
+				let prevPage = pages[pages.length - 2]; //上一页页面实例
+				prevPage.$vm.carInfo.brandName = this.typeList[index].brandCN; //车型
+				prevPage.$vm.carInfo.modelcname = this.typeList[index].modelName; //车型
+				prevPage.$vm.carInfo.caryear = this.typeList[index].marketYear; //年款
+				prevPage.$vm.carInfo.seatCount = this.typeList[index].ratedPassengerCapacity; //座位数
+				prevPage.$vm.carInfo.purchasePrice = this.typeList[index].replacementValue; //价格
+				prevPage.$vm.carInfo.modelCode = this.typeList[index].modelCode; //车辆型号编码
+				prevPage.$vm.carInfo.familyName = this.typeList[index].series; //系列
+				prevPage.$vm.carInfo.enginedesc = this.typeList[index].displacement; //排量
+				prevPage.$vm.carInfo.powertype = this.typeList[index].fuelType; //燃油种类
+				prevPage.$vm.carInfo.powerScale = this.typeList[index].powerScale; //功率
+				uni.navigateBack({ //uni.navigateTo跳转的返回,默认1为返回上一级
+					delta: 1
+				});
+			}
+		}
+	}
+</script>
+<style lang="scss" scoped>
+	.page {
+		min-height: 100vh;
+		background: #F8FAFE;
+		padding: 16px 16px 150px 16px;
+	}
+
+
+	.row {
+		width: 100%;
+		height: auto;
+		background: #FFFFFF;
+		box-shadow: 0px 4px 10px 0px #DAE3F4;
+		border-radius: 12px;
+		border-bottom: 1px solid #f2f2f2;
+		padding: 0 10px;
+		margin-bottom: 10px;
+
+		.row_header {
+			width: 100%;
+			font-size: 28upx;
+			border-bottom: 1upx solid #EEEEEE;
+			padding: 5px 0;
+			font-weight: bold;
+		}
+
+		.row_body {
+			width: 100%;
+			padding: 10px 0;
+
+			view {
+				font-weight: bold;
+				font-size: 12px;
+			}
+		}
+	}
+
+
+
+	.row .row_header .left {
+		flex: 5;
+		overflow: hidden;
+		text-overflow: ellipsis;
+		white-space: nowrap;
+		color: #333;
+	}
+
+	.row .row_header .right {
+		flex: 2;
+		color: #FF5600;
+		text-align: right;
+	}
+
+	.row .row .row_body view>view {
+		margin: 0 5px;
+	}
+
+	/* 底部的样式Start */
+	.bottom {
+		height: 120upx;
+		position: fixed;
+		bottom: 0;
+		left: 0;
+		right: 0;
+		background: #FFFFFF;
+		border-top: 1upx solid #EEEEEE;
+		z-index: 99;
+	}
+
+	.bottom>button {
+		font-size: 30upx;
+		background: #337ab7;
+		color: #FFFFFF;
+		flex: 1;
+		margin: 0upx 30upx;
+	}
+
+	/* 底部的样式End */
+</style>

+ 1043 - 0
pages/carInsure2/entry.vue

@@ -0,0 +1,1043 @@
+<template>
+	<view class="page">
+		<view class="banner mb-3">
+			<image src="/static/image/car-insure/carban.png" mode=""></image>
+		</view>
+		<view class="carinfo">
+			<view class="title dis a-c j-s mb-3">
+				<text>车辆信息</text>
+				<view class="rounded  dis a-c j-c">
+					<view class="left dis a-c j-c" :class="insuranceType==1? 'active':''" @click="insuranceType=1">
+						<text>车牌号</text>
+					</view>
+					<view class="center"></view>
+					<view class="right dis a-c j-c" :class="insuranceType==2? 'active':''" @click="insuranceType=2">
+						<text>行驶证</text>
+					</view>
+				</view>
+			</view>
+			<view class="carinput" v-show="insuranceType==1">
+				<view class="top dis a-c j-s mb-3">
+					<text>车牌号码</text>
+					<u-switch v-model="checked" active-color="#0052FF" inactive-color="#eee" size='30'
+						@change="switchChange"></u-switch>
+				</view>
+				<view class="btn dis a-c j-s">
+					<view class="so-plate-word dis a-c j-c" data-index="0" :class="currentInputIndex==0?'actives':''"
+						@tap="inputSwitch">
+						<text>{{LicenseInputValue[0]}}</text>
+					</view>
+					<view class="so-plate-word dis a-c j-c" data-index="1" :class="currentInputIndex==1?'actives':''"
+						@tap="inputSwitch">
+						<text>{{LicenseInputValue[1]}}</text>
+					</view>
+					<view class="so-plate-dot"></view>
+					<view class="so-plate-word dis a-c j-c" data-index="2" :class="currentInputIndex==2?'actives':''"
+						@tap="inputSwitch">
+						<text>{{LicenseInputValue[2]}}</text>
+					</view>
+					<view class="so-plate-word dis a-c j-c" data-index="3" :class="currentInputIndex==3?'actives':''"
+						@tap="inputSwitch">
+						<text>{{LicenseInputValue[3]}}</text>
+					</view>
+					<view class="so-plate-word dis a-c j-c" data-index="4" :class="currentInputIndex==4?'actives':''"
+						@tap="inputSwitch">
+						<text>{{LicenseInputValue[4]}}</text>
+					</view>
+					<view class="so-plate-word dis a-c j-c" data-index="5" :class="currentInputIndex==5?'actives':''"
+						@tap="inputSwitch">
+						<text>{{LicenseInputValue[5]}}</text>
+					</view>
+					<view class="so-plate-word dis a-c j-c" data-index="6" :class="currentInputIndex==6?'actives':''"
+						@tap="inputSwitch">
+						<text>{{LicenseInputValue[6]}}</text>
+					</view>
+					<view class="so-plate-word dis a-c j-c" data-index="7" :class="currentInputIndex==7?'newactives':''"
+						@tap="inputSwitch">
+						<text v-if="LicenseInputValue[7]">{{LicenseInputValue[7]}}</text>
+						<view v-else class="newEnergy dis f-c a-c j-c">
+							<image src="/static/image/car-insure/leaf.png" mode="">
+							</image>
+							<text>新能源</text>
+						</view>
+					</view>
+				</view>
+
+			</view>
+			<view v-show="insuranceType==2" class="OCRcar">
+				<view class="title dis j-s a-c">
+					<text>行驶证识别</text>
+					<text @click="carSwitching=!carSwitching">{{carSwitching?'手动输入':'拍照识别'}}</text>
+				</view>
+				<view v-show="carSwitching" class="ocr mt-2">
+					<image v-if="!carimg" @tap="ocrIdentify" src="/static/image/car-insure/carbg.png" mode=""
+						style="width: 100%;height: 198px;">
+					</image>
+					<template v-else>
+						<view v-if=" carimg" class="movable-view dis f-c a-c">
+							<movable-area>
+								<movable-view direction="all" out-of-bounds :scale="true">
+									<image :src="carimg" mode=""
+										:style="{width:'100%',height:'100%',transform:`rotate(-${cardeg}deg)`}">
+									</image>
+								</movable-view>
+							</movable-area>
+							<view class="operate-img dis j-s a-c">
+								<view class="dis a-c" @tap="rotatefront('cardeg')">
+									<image src="/static/image/car-insure/rotate1.png" mode=""></image>
+									左转
+								</view>
+								<view class="dis a-c" @tap="ocrIdentify('carInfo')">
+									<image src="/static/image/car-insure/upload.png" mode=""></image>
+									上传
+								</view>
+								<view class="dis a-c" @tap="rotateback('cardeg')">
+									<image src="/static/image/car-insure/rotate2.png" mode=""></image>
+									右转
+								</view>
+							</view>
+						</view>
+						<view class="">
+							<uni-forms :rules="carRules" :value="carInfo" ref="carForm" validate-trigger="bind"
+								err-show-type="toast" label-width="100">
+								<uni-forms-item label="车牌号: ">
+									<input class="uni-input-input textColor" placeholder="输入车牌号"
+										v-model="carInfo.licenseNo" placeholder-style="font-size:28upx"
+										@input="upperCaseType('licenseNo')" />
+								</uni-forms-item>
+								<uni-forms-item name="frameNo" required label="车辆识别码:">
+									<view class="d-flex a-center" style="height: 100%;">
+										<input class="uni-input-input flex-1 textColor" placeholder="请输入车辆识别码"
+											v-model="carInfo.frameNo" maxlength="17" placeholder-style="font-size:28upx"
+											@input="upperCaseType('frameNo')" />
+										<image src="/static/image/car-insure/search.png" mode=""
+											style="width: 20px;height: 20px;" @tap="toChooseVin(carInfo.frameNo)">
+										</image>
+									</view>
+								</uni-forms-item>
+								<uni-forms-item name="modelcname" required label="品牌型号: ">
+									<view class="d-flex a-center textColor" style="height: 100%;">
+										<input class="uni-input-input flex-1 textColor" placeholder="请输入品牌型号"
+											v-model="carInfo.modelcname"
+											@blur="binddata('modelcname', $event.detail.value,'carForm')"
+											placeholder-style="font-size:28upx" @input="upperCaseType('modelcname')" />
+										<image src="/static/image/car-insure/search.png" mode=""
+											style="width: 20px;height: 20px;"
+											@tap="toChooseVehicleType(carInfo.modelcname)">
+										</image>
+									</view>
+								</uni-forms-item>
+								<uni-forms-item name="engineNo" required label="发动机号: ">
+									<input class="uni-input-input textColor" placeholder="请输入发动机号"
+										v-model="carInfo.engineNo"
+										@blur="binddata('engineNo', $event.detail.value,'carForm')"
+										placeholder-style="font-size:28upx" @input="upperCaseType('engineNo')" />
+								</uni-forms-item>
+								<uni-forms-item required label="注册日期" name="registerDate">
+									<u-input type="select" :custom-style="{textAlign:'right'}"
+										:select-open="registerDateShow" v-model="carInfo.registerDate"
+										placeholder="请选择注册日期" @click="registerDateShow = true"
+										placeholder-style="color:#808080"></u-input>
+									<u-picker v-model="registerDateShow" mode="time" :params="params"
+										:end-year="endYear" :end-month="endMonth"
+										@confirm="e=> Dateconfirm(e,'carInfo','registerDate')"></u-picker>
+								</uni-forms-item>
+								<uni-forms-item required label="发证日期" name="issueDate">
+									<u-input type="select" :custom-style="{textAlign:'right'}"
+										:select-open="issueDateShow" v-model="carInfo.issueDate" placeholder="请选择发证日期"
+										@click="issueDateShow = true" placeholder-style="color:#808080"></u-input>
+									<u-picker v-model="issueDateShow" mode="time" :params="params"
+										@confirm="e=> Dateconfirm(e,'carInfo','issueDate')"></u-picker>
+								</uni-forms-item>
+
+								<uni-forms-item label="整备质量: " required name="completeKerbMass">
+									<input class="uni-input-input textColor" placeholder="请输入整备质量"
+										v-model="carInfo.completeKerbMass" placeholder-style="font-size:28upx" />
+								</uni-forms-item>
+								<uni-forms-item label="核定载质量: ">
+									<input class="uni-input-input textColor" placeholder="请输入核定载质量"
+										v-model="carInfo.limitLoad" placeholder-style="font-size:28upx" />
+								</uni-forms-item>
+								<uni-forms-item label="使用性质: " required name="carnature">
+									<u-input v-model="carInfo1.carnature" type="select" :select-open="carnatureShow"
+										@click="carnatureShow = true" :custom-style="{textAlign:'right'}"
+										placeholder-style="color:#808080" placeholder="请选择使用性质" />
+									<u-select mode="single-column" :list="natureOfVehicleUseoptions"
+										v-model="carnatureShow" label-name="dictTag" value-name="dictValue"
+										@confirm="dictionaryConfirm($event,'carnature')"></u-select>
+								</uni-forms-item>
+								<uni-forms-item label="能源种类: " required name="energyType">
+									<u-input v-model="carInfo1.energyType" type="select" :select-open="energyTypeShow"
+										@click="energyTypeShow = true" :custom-style="{textAlign:'right'}"
+										placeholder-style="color:#808080" placeholder="请选择能源种类" />
+									<u-select mode="single-column" :list="energyTypeoptions" v-model="energyTypeShow"
+										label-name="dictTag" value-name="dictValue"
+										@confirm="dictionaryConfirm($event,'energyType')"></u-select>
+								</uni-forms-item>
+								<uni-forms-item label="车辆用途: " required name="vehicleUse">
+									<u-input v-model="carInfo1.vehicleUse" type="select" :select-open="vehicleUseShow"
+										@click="vehicleUseShow = true" :custom-style="{textAlign:'right'}"
+										placeholder-style="color:#808080" placeholder="请选择车辆用途" />
+									<u-select v-if="carInfo.carnature=='01'" mode="single-column"
+										:list="businessVehicleUseoptions" v-model="vehicleUseShow" label-name="dictTag"
+										value-name="dictValue"
+										@confirm="dictionaryConfirm($event,'vehicleUse')"></u-select>
+									<u-select v-else mode="single-column" :list="outOfBusinessVehicleUseoptions"
+										v-model="vehicleUseShow" label-name="dictTag" value-name="dictValue"
+										@confirm="dictionaryConfirm($event,'vehicleUse')"></u-select>
+								</uni-forms-item>
+								<uni-forms-item label="车辆类型: " required name="cartype">
+									<u-input v-model="carInfo1.cartype" type="select" :select-open="cartypeShow"
+										@click="cartypeShow = true" :custom-style="{textAlign:'right'}"
+										placeholder-style="color:#808080" placeholder="请选择车辆类型" />
+									<u-select mode="single-column" :list="trafficManagementVehicleTypeoptions"
+										v-model="cartypeShow" label-name="dictTag" value-name="dictValue"
+										@confirm="dictionaryConfirm($event,'cartype')"></u-select>
+								</uni-forms-item>
+								<uni-forms-item label="车辆种类: " required name="cimodelclass">
+									<u-input v-model="carInfo1.cimodelclass" type="select"
+										:select-open="cimodelclassShow" @click="cimodelclassShow = true"
+										:custom-style="{textAlign:'right'}" placeholder-style="color:#808080"
+										placeholder="请选择车辆种类" />
+									<u-select mode="single-column" :list="vehicleTypeoptions" v-model="cimodelclassShow"
+										label-name="dictTag" value-name="dictValue"
+										@confirm="dictionaryConfirm($event,'cimodelclass')"></u-select>
+								</uni-forms-item>
+								<uni-forms-item label="年款: ">
+									<input class="uni-input-input textColor" placeholder="请输入年款"
+										v-model="carInfo.caryear" placeholder-style="font-size:28upx" />
+								</uni-forms-item>
+								<uni-forms-item label="座位数: ">
+									<input class="uni-input-input textColor" placeholder="请输入座位数"
+										v-model="carInfo.seatCount" maxlength="1" placeholder-style="font-size:28upx" />
+								</uni-forms-item>
+								<uni-forms-item label="排量: ">
+									<input class="uni-input-input textColor" placeholder="请输入排量"
+										v-model="carInfo.enginedesc" placeholder-style="font-size:28upx" />
+								</uni-forms-item>
+								<uni-forms-item label="功率: ">
+									<input class="uni-input-input textColor" placeholder="请输入功率"
+										v-model="carInfo.powerScale" placeholder-style="font-size:28upx" />
+								</uni-forms-item>
+								<uni-forms-item label="新车购置价: " required name="purchasePrice">
+									<input class="uni-input-input textColor" placeholder="请输入新车购置价"
+										v-model="carInfo.purchasePrice" placeholder-style="font-size:28upx"
+										@blur="binddata('purchasePrice', $event.detail.value,'carForm')"
+										@input="upperCaseType('purchasePrice')" />
+								</uni-forms-item>
+								<uni-forms-item label="是否过户: ">
+									<view class="d-flex j-end a-c" style="height:100%">
+										<u-switch v-model="carInfo.transferFlag" active-color="#0052FF " size="30"
+											@change="transferFlagchange"></u-switch>
+									</view>
+								</uni-forms-item>
+								<uni-forms-item v-if="carInfo.transferFlag" required label="转移登记日期" name="transferDate">
+									<u-input type="select" :select-open="transferDateShow"
+										:custom-style="{textAlign:'right'}" v-model="carInfo.transferDate"
+										placeholder="请选择过户日期" @click="transferDateShow = true"
+										placeholder-style="color:#808080"></u-input>
+									<u-picker v-model="transferDateShow" mode="time" :params="params"
+										:end-year="endYear" :end-month="endMonth"
+										@confirm="e=> Dateconfirm(e,'carInfo','transferDate')"></u-picker>
+								</uni-forms-item>
+
+							</uni-forms>
+						</view>
+					</template>
+				</view>
+				<view v-show="!carSwitching" class="content mt-2">
+					<uni-forms :rules="carRules" :value="carInfo" ref="carForm" validate-trigger="bind"
+						err-show-type="toast" label-width="100">
+						<uni-forms-item label="车牌号: ">
+							<input class="uni-input-input textColor" placeholder="输入车牌号" v-model="carInfo.licenseNo"
+								placeholder-style="font-size:28upx" @input="upperCaseType('licenseNo')" />
+						</uni-forms-item>
+						<uni-forms-item name="frameNo" required label="车辆识别码:">
+							<view class="d-flex a-center" style="height: 100%;">
+								<input class="uni-input-input flex-1 textColor" placeholder="请输入车辆识别码"
+									v-model="carInfo.frameNo" maxlength="17" placeholder-style="font-size:28upx"
+									@input="upperCaseType('frameNo')" />
+								<image src="/static/image/car-insure/search.png" mode=""
+									style="width: 20px;height: 20px;" @tap="toChooseVin(carInfo.frameNo)">
+								</image>
+							</view>
+						</uni-forms-item>
+						<uni-forms-item name="modelcname" required label="品牌型号: ">
+							<view class="d-flex a-center textColor" style="height: 100%;">
+								<input class="uni-input-input flex-1 textColor" placeholder="请输入品牌型号"
+									v-model="carInfo.modelcname"
+									@blur="binddata('modelcname', $event.detail.value,'carForm')"
+									placeholder-style="font-size:28upx" @input="upperCaseType('modelcname')" />
+								<image src="/static/image/car-insure/search.png" mode=""
+									style="width: 20px;height: 20px;" @tap="toChooseVehicleType(carInfo.modelcname)">
+								</image>
+							</view>
+						</uni-forms-item>
+						<uni-forms-item name="engineNo" required label="发动机号: ">
+							<input class="uni-input-input textColor" placeholder="请输入发动机号" v-model="carInfo.engineNo"
+								@blur="binddata('engineNo', $event.detail.value,'carForm')"
+								placeholder-style="font-size:28upx" @input="upperCaseType('engineNo')" />
+						</uni-forms-item>
+						<uni-forms-item required label="注册日期" name="registerDate">
+							<u-input type="select" :custom-style="{textAlign:'right'}" :select-open="registerDateShow"
+								v-model="carInfo.registerDate" placeholder="请选择注册日期" @click="registerDateShow = true"
+								placeholder-style="color:#808080"></u-input>
+							<u-picker v-model="registerDateShow" mode="time" :params="params" :end-year="endYear"
+								:end-month="endMonth" @confirm="e=> Dateconfirm(e,'carInfo','registerDate')"></u-picker>
+						</uni-forms-item>
+						<uni-forms-item required label="发证日期" name="issueDate">
+							<u-input type="select" :custom-style="{textAlign:'right'}" :select-open="issueDateShow"
+								v-model="carInfo.issueDate" placeholder="请选择发证日期" @click="issueDateShow = true"
+								placeholder-style="color:#808080"></u-input>
+							<u-picker v-model="issueDateShow" mode="time" :params="params"
+								@confirm="e=> Dateconfirm(e,'carInfo','issueDate')"></u-picker>
+						</uni-forms-item>
+
+						<uni-forms-item label="整备质量: " required name="completeKerbMass">
+							<input class="uni-input-input textColor" placeholder="请输入整备质量"
+								v-model="carInfo.completeKerbMass" placeholder-style="font-size:28upx" />
+						</uni-forms-item>
+						<uni-forms-item label="核定载质量: ">
+							<input class="uni-input-input textColor" placeholder="请输入核定载质量" v-model="carInfo.limitLoad"
+								placeholder-style="font-size:28upx" />
+						</uni-forms-item>
+						<uni-forms-item label="使用性质: " required name="carnature">
+							<u-input v-model="carInfo1.carnature" type="select" :select-open="carnatureShow"
+								@click="carnatureShow = true" :custom-style="{textAlign:'right'}"
+								placeholder-style="color:#808080" placeholder="请选择使用性质" />
+							<u-select mode="single-column" :list="natureOfVehicleUseoptions" v-model="carnatureShow"
+								label-name="dictTag" value-name="dictValue"
+								@confirm="dictionaryConfirm($event,'carnature')"></u-select>
+						</uni-forms-item>
+						<uni-forms-item label="能源种类: " required name="energyType">
+							<u-input v-model="carInfo1.energyType" type="select" :select-open="energyTypeShow"
+								@click="energyTypeShow = true" :custom-style="{textAlign:'right'}"
+								placeholder-style="color:#808080" placeholder="请选择能源种类" />
+							<u-select mode="single-column" :list="energyTypeoptions" v-model="energyTypeShow"
+								label-name="dictTag" value-name="dictValue"
+								@confirm="dictionaryConfirm($event,'energyType')"></u-select>
+						</uni-forms-item>
+						<uni-forms-item label="车辆用途: " required name="vehicleUse">
+							<u-input v-model="carInfo1.vehicleUse" type="select" :select-open="vehicleUseShow"
+								@click="vehicleUseShow = true" :custom-style="{textAlign:'right'}"
+								placeholder-style="color:#808080" placeholder="请选择车辆用途" />
+							<u-select v-if="carInfo.carnature=='01'" mode="single-column"
+								:list="businessVehicleUseoptions" v-model="vehicleUseShow" label-name="dictTag"
+								value-name="dictValue" @confirm="dictionaryConfirm($event,'vehicleUse')"></u-select>
+							<u-select v-else mode="single-column" :list="outOfBusinessVehicleUseoptions"
+								v-model="vehicleUseShow" label-name="dictTag" value-name="dictValue"
+								@confirm="dictionaryConfirm($event,'vehicleUse')"></u-select>
+						</uni-forms-item>
+						<uni-forms-item label="车辆类型: " required name="cartype">
+							<u-input v-model="carInfo1.cartype" type="select" :select-open="cartypeShow"
+								@click="cartypeShow = true" :custom-style="{textAlign:'right'}"
+								placeholder-style="color:#808080" placeholder="请选择车辆类型" />
+							<u-select mode="single-column" :list="trafficManagementVehicleTypeoptions"
+								v-model="cartypeShow" label-name="dictTag" value-name="dictValue"
+								@confirm="dictionaryConfirm($event,'cartype')"></u-select>
+						</uni-forms-item>
+						<uni-forms-item label="车辆种类: " required name="cimodelclass">
+							<u-input v-model="carInfo1.cimodelclass" type="select" :select-open="cimodelclassShow"
+								@click="cimodelclassShow = true" :custom-style="{textAlign:'right'}"
+								placeholder-style="color:#808080" placeholder="请选择车辆种类" />
+							<u-select mode="single-column" :list="vehicleTypeoptions" v-model="cimodelclassShow"
+								label-name="dictTag" value-name="dictValue"
+								@confirm="dictionaryConfirm($event,'cimodelclass')"></u-select>
+						</uni-forms-item>
+						<uni-forms-item label="年款: ">
+							<input class="uni-input-input textColor" placeholder="请输入年款" v-model="carInfo.caryear"
+								placeholder-style="font-size:28upx" />
+						</uni-forms-item>
+						<uni-forms-item label="座位数: ">
+							<input class="uni-input-input textColor" maxlength="1" placeholder="请输入座位数"
+								v-model="carInfo.seatCount" placeholder-style="font-size:28upx" />
+						</uni-forms-item>
+						<uni-forms-item label="排量: ">
+							<input class="uni-input-input textColor" placeholder="请输入排量" v-model="carInfo.enginedesc"
+								placeholder-style="font-size:28upx" />
+						</uni-forms-item>
+						<uni-forms-item label="功率: ">
+							<input class="uni-input-input textColor" placeholder="请输入功率" v-model="carInfo.powerScale"
+								placeholder-style="font-size:28upx" />
+						</uni-forms-item>
+						<uni-forms-item label="新车购置价: " required name="purchasePrice">
+							<input class="uni-input-input textColor" placeholder="请输入新车购置价"
+								v-model="carInfo.purchasePrice" placeholder-style="font-size:28upx"
+								@blur="binddata('purchasePrice', $event.detail.value,'carForm')"
+								@input="upperCaseType('purchasePrice')" />
+						</uni-forms-item>
+						<uni-forms-item label="是否过户: ">
+							<view class="d-flex j-end a-c" style="height:100%">
+								<u-switch v-model="carInfo.transferFlag" active-color="#0052FF " size="30"
+									@change="transferFlagchange"></u-switch>
+							</view>
+						</uni-forms-item>
+						<uni-forms-item v-if="carInfo.transferFlag" required label="转移登记日期" name="transferDate">
+							<u-input type="select" :select-open="transferDateShow" v-model="carInfo.transferDate"
+								placeholder="请选择过户日期" @click="transferDateShow = true"
+								:custom-style="{textAlign:'right'}" placeholder-style="color:#808080"></u-input>
+							<u-picker v-model="transferDateShow" mode="time" :params="params" :end-year="endYear"
+								:end-month="endMonth" @confirm="e=> Dateconfirm(e,'carInfo','transferDate')"></u-picker>
+						</uni-forms-item>
+					</uni-forms>
+				</view>
+			</view>
+		</view>
+		<view class="fixed dis a-c j-c">
+			<u-button type="warning" class="fiexdbtn" shape="circle" @click="toNext">立即投保</u-button>
+		</view>
+		<OCRComponent :showModal='OCRShow' @closePopup="closePopup" :tabslist="tabslist" @tabschange="OCRtabschange"
+			:tabsCurrent="tabsCurrent" :checkType='checkType' @carCallback="carCallback">
+		</OCRComponent>
+		<u-keyboard ref="uKeyboard" mode="car" v-model="keyboardShow" @change="keyboardchange" @backspace="backspacesss"
+			@confirm="backsconfirm"></u-keyboard>
+	</view>
+</template>
+
+<script>
+	import OCRComponent from '@/components/modules/carInsure/OCRComponent/OCRComponent.vue'; //引用图片信息检查插件
+	var dateTime = new Date();
+	let Year = dateTime.getFullYear();
+	let Month = Number(dateTime.getMonth() + 1);
+	export default {
+		components: {
+			OCRComponent,
+		},
+		data() {
+			return {
+				endYear: Year,
+				endMonth: Month,
+				params: {
+					year: true, //年
+					month: true, //月
+					day: true, //日
+					hour: false, //时
+					minute: false, //分
+					second: false, //秒
+				},
+				carRules: {
+					frameNo: {
+						rules: [{
+							required: true,
+							errorMessage: '请输入车辆识别码',
+						}, {
+							pattern: /^([0-9A-Z]){17}$/,
+							errorMessage: '请输入正确的车辆识别码',
+						}]
+					},
+					modelcname: {
+						rules: [{
+							required: true,
+							errorMessage: '请输入品牌型号',
+						}, ]
+					},
+					engineNo: {
+						rules: [{
+							required: true,
+							errorMessage: '请输入发动机号',
+						}, ]
+					},
+					purchasePrice: {
+						rules: [{
+							required: true,
+							errorMessage: '请输入新车购置价',
+						}, {
+							validateField: function(rule, value, data, callback) {
+								if (value == 0) {
+									callback('新车购置价不能为零')
+								}
+								return true
+							}
+						}]
+					},
+					completeKerbMass: {
+						rules: [{
+							required: true,
+							errorMessage: '请输入整备质量',
+						}, ]
+					},
+					carnature: {
+						rules: [{
+							required: true,
+							errorMessage: '使用性质必选',
+						}, ]
+					},
+					vehicleUse: {
+						rules: [{
+							required: true,
+							errorMessage: '车辆用途必选',
+						}, ]
+					},
+
+					registerDate: {
+						rules: [{
+							required: true,
+							errorMessage: '请选择注册日期',
+						}, {
+							pattern: /^\d{4}-\d{2}-\d{2}$/,
+							errorMessage: '注册日期格式错误',
+						}]
+					},
+					issueDate: {
+						rules: [{
+							required: true,
+							errorMessage: '请选择发证日期',
+						}, {
+							pattern: /^\d{4}-\d{2}-\d{2}$/,
+							errorMessage: '发证日期日期格式错误',
+						}]
+					}
+				},
+				//影像信息
+				carSwitching: true, //true识别 false录入
+				keyboardShow: false,
+				insuranceType: 2,
+				checked: false,
+				LicenseInputValue: ['晋', 'A', '', '', '', '', '', ''],
+				currentInputIndex: null,
+				carInfoPositiveList: [], //车辆
+				//车辆信息
+				carInfo: {
+					licenseNo: "", //车牌号
+					brandName: "", //车辆品牌型号
+					vinNo: "", //车架号
+					engineNo: "", //发动机号
+					modelCode: "", //车型编码
+					seatCount: "0", //核定载客量 核定载人数
+					purchasePrice: "", //新车购置价最低,行业实际价值,协商价值
+					carBrand: "", //车型品牌
+					ciCarName: "", //行业车型名称
+					ciModelCode: "", //行业车型编码
+					completeKerbMass: "", //整备质量
+					exhaustScale: "", //排量
+					factory: "", //工厂名称
+					factoryid: "", //工厂编码
+					frameNo: "", //车架号
+					licenseTypeCode: "02", //号牌种类
+					vehicleclass: "", //车辆类型
+					familyName: "", //车型
+					modelcname: "", //车型名称
+					powertypecode: "", //燃料类型编码
+					vehicleweight: "", //总质量
+					limitLoad: "", //核定载质量
+					caryear: "0", //年款
+					cimodelclass: "A0", //车辆种类客车A0 货车H0
+					cartype: "K33", //车辆类型
+					powertype: "汽油", //燃料类型
+					energyType: "0", //能源种类
+					enginedesc: "", //排量
+					powerScale: "", //功率
+					registerDate: "", //注册日期
+					issueDate: "", //发证日期
+					transferFlag: false, //过户标志
+					transferFlagBi: false, //商业过户标志
+					transferDate: "", //过户日期
+					loanStatus: 0, //贷款标志
+					firstBeneMan: "", //第一受益人
+					noLicenseFlag: false, //是否新车
+					carnature: "02", //使用性质 家庭自用8A  非营业企业8B   非营业党政机关,事业团体8C  非营业货车8D					
+					property: "1", //所属性质 1个人 2企业 3个人
+					outOfInsurance: false, //脱保
+					secondhandcarflag: false, //二手车
+					vehicleUse: "05" //车辆用途
+				},
+				carInfo1: {
+					carnature: "非营业",
+					energyType: "燃油",
+					vehicleUse: "家庭自用",
+					cartype: "轿车",
+					cimodelclass: "客车",
+				},
+				registerDateShow: false, //注册日期
+				issueDateShow: false, //发证日期
+				transferDateShow: false, //转移登记日期
+				carnatureShow: false, //使用性质
+				energyTypeShow: false, //能源种类
+				vehicleUseShow: false, //车辆用途
+				cartypeShow: false, //车辆类型
+				cimodelclassShow: false, //车辆种类
+				/* 数据字典 */
+				natureOfVehicleUseoptions: [],
+				vehicleTypeoptions: [],
+				trafficManagementVehicleTypeoptions: [],
+				energyTypeoptions: [],
+				businessVehicleUseoptions: [],
+				outOfBusinessVehicleUseoptions: [],
+				/* 数据字典 */
+				tabslist: [{
+					name: '行驶证识别'
+				}, ],
+				OCRShow: false,
+				tabsCurrent: 0,
+				checkType: "carInfo", //组件类型
+				carimg: null, //展示图片
+				cardeg: 0, //旋转角度
+
+			}
+		},
+		async onLoad() {
+			this.getDicType("businessVehicleUse"); //车辆用途(营业)
+			this.getDicType("outOfBusinessVehicleUse"); //车辆用途(非营业)
+			this.getDicType("natureOfVehicleUse"); //车辆性质
+			this.getDicType("vehicleType"); //车辆种类
+			this.getDicType("trafficManagementVehicleType"); //车辆类型
+			this.getDicType("energyType"); //能源种类
+		},
+		methods: {
+			rotatefront(int) {
+				this[int] = this[int] == 270 ? 0 : this[int] + 90;
+			},
+			rotateback(int) {
+				this[int] = this[int] == 0 ? 270 : this[int] - 90;
+			},
+			dictionaryConfirm(e, name) {
+				if (name == 'carnature') {
+					this.carInfo1['vehicleUse'] = "";
+				}
+				this.carInfo[name] = e[0].value;
+				this.carInfo1[name] = e[0].label;
+			},
+			async getDicType(type) {
+				let res = await this.$http.get('/sysDict/dictDetails/' + type);
+				if (res.code == 200) {
+					this[type + 'options'] = res.data.ddList;
+					// if (type == "trafficManagementVehicleType") {
+					// 	this.carInfo1.cartype = this.dictionaryMatching(this.trafficManagementVehicleTypeoptions, this
+					// 		.carInfo
+					// 		.cartype)
+					// 	this.carInfo1.cimodelclass = this.dictionaryMatching(this.vehicleTypeoptions,
+					// 		this
+					// 		.carInfo
+					// 		.cimodelclass)
+					// }
+				}
+			},
+			//字典name匹配
+			dictionaryMatching(list, value) {
+				let obj = list.find(val => val.dictValue == value);
+				return obj.dictTag;
+			},
+			//OC识别返回信息
+			carCallback(obj) {
+				this.carimg = obj.img;
+				this.carInfoPositiveList = obj.ImgList;
+				Object.assign(this.carInfo, obj.Info);
+				this.carInfo1.cimodelclass = this.dictionaryMatching(this.vehicleTypeoptions,
+					this
+					.carInfo
+					.cimodelclass)
+				this.OCRShow = false;
+			},
+			upperCaseType(type) {
+				this.carInfo[type] = this.carInfo[type].toUpperCase();
+				if (type == 'vinNo') {
+					this.carInfo.frameNo = this.carInfo.vinNo.trim();
+				}
+			},
+			//
+			transferFlagchange(status) {
+				if (status) {
+					this.carInfo.transferDate = this.carInfo.issueDate;
+				} else {
+					this.carInfo.transferDate = ""
+				}
+			},
+			Dateconfirm(e, obj, param) {
+				this[obj][param] = e.year + '-' + e.month + '-' + e.day;
+			},
+
+			//下一步
+			toNext() {
+				switch (this.insuranceType) {
+					case 1:
+						if (!this.carInfo.licenseNo && !this.islicense(this.carInfo.licenseNo)) {
+							return uni.showToast({
+								icon: "none",
+								title: '请填写正确的车牌号码',
+								duration: 1500
+							});
+						}
+						this.navigate({
+							url: "/pages/carInsure2/Information?licenseNo=" + encodeURIComponent(this.carInfo
+								.licenseNo)
+						}, "navigateTo", true)
+						break;
+					case 2:
+						if (!this.carInfo.licenseNo && !this.carimg) {
+							return uni.showToast({
+								icon: "none",
+								title: '请上传资料或录入信息后再投保',
+								duration: 1500
+							});
+						}
+						this.$refs.carForm.submit().then(res => {
+							this.navigate({
+								url: '/pages/carInsure2/Information',
+								success: (res) => {
+									res.eventChannel.emit(
+										"acceptData", {
+											carInfo: this
+												.carInfo,
+											carInfoPositiveList: this
+												.carInfoPositiveList, //车辆
+										})
+								}
+							}, "navigateTo", true);
+						})
+						break;
+					default:
+						break;
+				}
+			},
+			switchChange(value) {
+				if (value) {
+					this.LicenseInputValue.forEach((val, index) => {
+						if (index < 7) {
+							this.$set(this.LicenseInputValue, index, "*");
+						}
+					})
+					let valueList = this.LicenseInputValue;
+					const str = valueList.join("")
+					this.carInfo.licenseNo = str;
+				} else {
+					this.LicenseInputValue.forEach((val, index) => {
+						this.$set(this.LicenseInputValue, index, "");
+					})
+					this.carInfo.licenseNo = "";
+				}
+			},
+			// 通过车架号获取车型
+			async toChooseVin(cctype) {
+				if (cctype == '' || cctype == null) {
+					return uni.showToast({
+						icon: 'none',
+						title: '请输入车架号',
+						duration: 1500
+					});
+				} else {
+					if (!this.isFrameno(cctype.trim())) {
+						return uni.showToast({
+							title: '请输入正确的车辆识别码',
+							icon: "none"
+						});
+					}
+					this.navigate({
+						url: '/pages/carInsure2/carType?frameNo=' + encodeURIComponent(cctype)
+					}, "navigateTo", true);
+				}
+			},
+			//跳转选择车辆类型页面
+			toChooseVehicleType(cctype) {
+				if (cctype == '' || cctype == null) {
+					uni.showToast({
+						icon: 'none',
+						title: '请输入车型名称',
+						duration: 1500
+					});
+				} else {
+					let cctypeName = cctype.replace(/[^u4e00-u9fa5|,]+/ig, '')
+					this.navigate({
+						url: '/pages/carInsure2/carType?modelName=' + encodeURIComponent(cctypeName)
+					}, "navigateTo", true);
+				}
+			},
+			//验证车牌号
+			islicense(val) {
+				let mPattern = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4,5}[A-Z0-9挂学警港澳]{1}$/;
+				return mPattern.test(val);
+			},
+			//验证车架号
+			isFrameno(str) {
+				let mPattern = /^([0-9A-Z]){17}$/;
+				return mPattern.test(str);
+			},
+
+			//OCR识别
+			ocrIdentify() {
+				this.OCRShow = !this.OCRShow;
+			},
+			closePopup() {
+				this.OCRShow = false;
+			},
+
+			OCRtabschange(e) {
+				this.tabsCurrent = e;
+			},
+			//键盘退格键
+			keyboardchange(val) {
+				this.$set(this.LicenseInputValue, this.currentInputIndex, val);
+				if (this.currentInputIndex < 7) {
+					this.currentInputIndex++;
+				}
+			},
+			backsconfirm() {
+				let valueList = this.LicenseInputValue;
+				const str = valueList.join("")
+				this.carInfo.licenseNo = str;
+			},
+			backspacesss() {
+				this.$set(this.LicenseInputValue, this.currentInputIndex, '')
+				if (this.currentInputIndex != 0) this.currentInputIndex--
+			},
+			inputSwitch(e) {
+				this.keyboardShow = true;
+				const {
+					index
+				} = e.currentTarget.dataset;
+				this.currentInputIndex = parseInt(index);
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.uni-forms-item ::v-deep .uni-input-input {
+		text-align: end;
+	}
+
+	::v-deep .uni-forms-item {
+		border-bottom: 1px solid #f2f2f2;
+	}
+
+	::v-deep .uni-forms-item:last-child {
+		border: none;
+	}
+
+	page {
+		height: 100vh;
+		background: #F8FAFE;
+	}
+
+	.page {
+		padding: 16px 16px 50px 16px;
+	}
+
+	.banner {
+		width: 100%;
+		height: 202px;
+
+		image {
+			width: 100%;
+			height: 100%;
+		}
+
+	}
+
+	.carinfo {
+		width: 100%;
+		height: auto;
+
+		>.title {
+			padding: 10px;
+			border-bottom: 1px solid #f2f2f2;
+
+			>text {
+				font-weight: bold;
+				font-size: 15px;
+			}
+
+			.rounded {
+				width: 120px;
+				height: 28px;
+				background: #0052FF;
+				border-radius: 15px;
+				padding: 1px;
+				box-sizing: border-box;
+				position: relative;
+
+				.left {
+					width: 50%;
+					height: 100%;
+					background-color: white;
+					border-top-left-radius: 15px;
+					border-bottom-left-radius: 15px;
+					font-size: 24rpx;
+					color: #0052FF;
+				}
+
+				.right {
+					width: 50%;
+					height: 100%;
+					background-color: #fff;
+					border-top-right-radius: 15px;
+					border-bottom-right-radius: 15px;
+					font-size: 24rpx;
+					color: #0052FF;
+				}
+
+				.center {
+					width: 8px;
+					height: 100%;
+					background-color: white;
+					position: absolute;
+					border-left: 1px solid #0052FF;
+					border-right: 1px solid #0052FF;
+					top: 50%;
+					left: 50%;
+					transform: translate(-50%, -50%) skewX(-10deg);
+				}
+
+				.active {
+					background-color: #0052FF;
+					color: #fff;
+				}
+			}
+		}
+
+		.carinput {
+			width: 100%;
+			height: auto;
+			background: #FFFFFF;
+			box-shadow: 0px 4px 10px 0px #DAE3F4;
+			border-radius: 12px;
+			padding: 10px;
+
+			.top {
+				font-weight: bold;
+				font-size: 15px;
+			}
+
+			.so-plate-word {
+				width: 40px;
+				height: 40px;
+				background-color: #f8f8fa;
+				border-radius: 5px;
+				margin: 0 4px;
+				box-sizing: border-box;
+
+				text {
+					font-size: 18px;
+					font-weight: bold;
+				}
+
+				.newEnergy {
+					image {
+						width: 12px;
+						height: 12px;
+					}
+
+					text {
+						font-size: 16rpx;
+						color: #0eb78e;
+					}
+				}
+			}
+
+			.so-plate-dot {
+				width: 15upx;
+				height: 15upx;
+				background: #ccc;
+				border-radius: 50%;
+				margin: 0 5upx
+			}
+
+			.actives {
+				border: 1px solid #0052FF;
+				background-color: rgba(0, 82, 255, 0.1);
+			}
+
+			.newactives {
+				border: 1px solid #0eb78e;
+				background-color: rgba(14, 183, 142, 0.1);
+			}
+		}
+
+		.OCRcar {
+			width: 100%;
+			height: auto;
+
+			.title {
+				color: #FF5600;
+
+				text:nth-child(1) {
+					font-size: 15px;
+					font-weight: bold;
+					color: #232832;
+				}
+			}
+
+
+			.ocr {
+				width: 100%;
+				height: auto;
+				background-color: white;
+				box-shadow: 0px 4px 10px 0px #DAE3F4;
+				border-radius: 12px;
+
+				.content {
+					padding: 0 15px;
+				}
+
+				.movable-view {
+					.operate-img {
+						width: 90%;
+						height: 38px;
+						background-color: #F9F9F9;
+						border-radius: 8px;
+						padding: 10px 25px;
+						margin-top: 10px;
+
+						image {
+							width: 20px;
+							height: 20px;
+							margin-right: 5px;
+						}
+					}
+				}
+			}
+
+			.content {
+				width: 100%;
+				height: auto;
+				background-color: white;
+				box-shadow: 0px 4px 10px 0px #DAE3F4;
+				border-radius: 12px;
+
+				.input-align-right {
+					padding: 20px;
+				}
+
+
+			}
+		}
+	}
+
+	.fixed {
+		width: 100%;
+		height: 80px;
+		padding: 10px;
+		position: fixed;
+		bottom: 0;
+		left: 0;
+		right: 0;
+		background: white;
+		z-index: 9;
+		border-top: 1px solid #f2f2f2;
+
+		.fiexdbtn {
+			width: 50%;
+			background: linear-gradient(to bottom, #FFF9F5, #FCD4C0, #F8A67D);
+			color: #FF5600;
+			font-weight: bold;
+			font-size: 18px;
+			border: 1px solid #F8A67D;
+		}
+	}
+
+	movable-area {
+		height: 178px;
+		width: 100%;
+		border-top-left-radius: 12px;
+		border-top-right-radius: 12px;
+		background-color: #D8D8D8;
+		overflow: hidden;
+	}
+
+	movable-view {
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		height: 100%;
+		width: 100%;
+	}
+</style>

+ 532 - 0
pages/carInsure2/insuranceType.js

@@ -0,0 +1,532 @@
+const list = [{
+		amount: "0",
+		amountDesc: "投保",
+		amtList: [{
+			"label": "不投保",
+
+			"value": "0"
+		}, {
+			"label": "投保",
+			"value": "1"
+		}],
+		kindCode: "A",
+		isMainRisk: true,
+		kindName: "机动车损失险",
+		desc: "保险期间内,被保险人或被保险机动车驾驶人在使用被保险机动车过程中,因自然灾害、意外事故、机动车被盗窃、抢劫、抢夺等情况(详见保险条款)造成被保险机动车直接损失,且不属于免除保险人责任的范围,保险人依照本保险合同的约定负责赔偿的险种。"
+	},
+	{
+		amount: "0",
+		amountDesc: "不投保",
+		amtList: [{
+				label: "不投保",
+				value: "0"
+			},
+			{
+				label: "50万",
+				value: "500000"
+			},
+			{
+				label: "100万",
+				value: "1000000"
+			},
+			{
+				label: "150万",
+				value: "1500000"
+			},
+			{
+				label: "200万",
+				value: "2000000"
+			},
+			{
+				label: "250万",
+				value: "2500000"
+			},
+			{
+				label: "300万",
+				value: "3000000"
+			},
+			{
+				label: "500万",
+				value: "5000000"
+			},
+			{
+				label: "1000万",
+				value: "10000000"
+			}
+		],
+		kindCode: "B",
+		isMainRisk: true,
+		kindName: "第三者责任险",
+		desc: "保险期间内,被保险人或其允许的驾驶人在使用被保险机动车过程中发生意外事故,致使第三者遭受人身伤亡或财产直接损毁,依法应当对第三者承担的损害赔偿责任,且不属于免除保险人责任的范围,保险人依照本保险合同的约定,对于超过机动车交通事故责任强制保险各分项赔偿限额的部分负责赔偿的险种。"
+	},
+	{
+		amount: "0",
+		amountDesc: "不投保",
+		amtList: [{
+				label: "不投保",
+				value: "0"
+			},
+			{
+				label: "1万",
+				value: "10000"
+			},
+			{
+				label: "2万",
+				value: "20000"
+			},
+			{
+				label: "3万",
+				value: "30000"
+			},
+			{
+				label: "4万",
+				value: "40000"
+			},
+			{
+				label: "5万",
+				value: "50000"
+			},
+			{
+				label: "6万",
+				value: "60000"
+			},
+			{
+				label: "7万",
+				value: "70000"
+			},
+			{
+				label: "8万",
+				value: "80000"
+			},
+			{
+				label: "9万",
+				value: "90000"
+			},
+			{
+				label: "10万",
+				value: "100000"
+			},
+			{
+				label: "15万",
+				value: "150000"
+			},
+			{
+				label: "20万",
+				value: "200000"
+			},
+			{
+				label: "25万",
+				value: "250000"
+			},
+			{
+				label: "30万",
+				value: "300000"
+			},
+			{
+				label: "35万",
+				value: "350000"
+			},
+			{
+				label: "40万",
+				value: "400000"
+			},
+			{
+				label: "45万",
+				value: "450000"
+			},
+			{
+				label: "50万",
+				value: "500000"
+			},
+
+		],
+		kindCode: "D3",
+		isMainRisk: true,
+		kindName: "司机责任险",
+		desc: "保险期间内,被保险人或其允许的驾驶人在使用被保险机动车过程中发生意外事故,致使车上人员遭受人身伤亡,且不属于免除保险人责任的范围,依法应当对车上人员承担的损害赔偿责任,保险人依照本保险合同的约定负责赔偿的险种。"
+	},
+	{
+		amount: "0",
+		amountDesc: "不投保",
+		amtList: [{
+			"label": "不投保",
+			"value": "0"
+		}, {
+			"label": "1万",
+			"value": "10000"
+		}, {
+			"label": "2万",
+			"value": "20000"
+		}, {
+			"label": "4万",
+			"value": "40000"
+		}, {
+			"label": "5万",
+			"value": "50000"
+		}, {
+			"label": "10万",
+			"value": "100000"
+		}, {
+			"label": "15万",
+			"value": "150000"
+		}, {
+			"label": "20万",
+			"value": "200000"
+		}],
+		kindCode: "D4",
+		isMainRisk: true,
+		kindName: "乘客责任险",
+		desc: "保险期间内,被保险人或其允许的驾驶人在使用被保险机动车过程中发生意外事故,致使车上人员遭受人身伤亡,且不属于免除保险人责任的范围,依法应当对车上人员承担的损害赔偿责任,保险人依照本保险合同的约定负责赔偿的险种。"
+	},
+	{
+		amount: "0",
+		amountDesc: "不投保",
+		amtList: [{
+			"label": "不投保",
+			"value": "0"
+		}, {
+			"label": "2000",
+			"value": "2000"
+		}, {
+			"label": "5000",
+			"value": "5000"
+		}, {
+			"label": "1万",
+			"value": "10000"
+		}],
+		desc: "保险期间内,被保险机动车在被保险人或被保险机动车驾驶人使用过程中,发生无明显碰撞痕迹的车身划痕损失,保险人按照保险合同约定负责赔偿的险种",
+		isMainRisk: true,
+		kindCode: "L",
+		kindName: "车身划痕险",
+		mainRiskCodeList: "A"
+	},
+	{
+		amount: "0",
+		amountDesc: "不投保",
+		amtList: [{
+			"label": "不投保",
+			"value": "0"
+		}, {
+			"label": "5%",
+			"value": "5"
+		}, {
+			"label": "10%",
+			"value": "10"
+		}, {
+			"label": "15%",
+			"value": "15"
+		}, {
+			"label": "20%",
+			"value": "20"
+		}],
+		desc: "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
+		isMainRisk: true,
+		kindCode: "MJ1",
+		kindName: "绝对免赔率特约险(车损)",
+		mainRiskCodeList: "A"
+	},
+	{
+		amount: "0",
+		amountDesc: "不投保",
+		amtList: [{
+			"label": "不投保",
+			"value": "0"
+		}, {
+			"label": "5%",
+			"value": "5"
+		}, {
+			"label": "10%",
+			"value": "10"
+		}, {
+			"label": "15%",
+			"value": "15"
+		}, {
+			"label": "20%",
+			"value": "20"
+		}],
+		desc: "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
+		isMainRisk: true,
+		kindCode: "MJ2",
+		kindName: "绝对免赔率特约险(三者)",
+		mainRiskCodeList: "B"
+	},
+	{
+		amount: "0",
+		amountDesc: "不投保",
+		amtList: [{
+			"label": "不投保",
+			"value": "0"
+		}, {
+			"label": "5%",
+			"value": "5"
+		}, {
+			"label": "10%",
+			"value": "10"
+		}, {
+			"label": "15%",
+			"value": "15"
+		}, {
+			"label": "20%",
+			"value": "20"
+		}],
+		desc: "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
+		isMainRisk: true,
+		kindCode: "MJ3",
+		kindName: "绝对免赔率特约险(司机)",
+		mainRiskCodeList: "D3"
+	},
+	{
+		amount: "0",
+		amountDesc: "不投保",
+		amtList: [{
+			"label": "不投保",
+			"value": "0"
+		}, {
+			"label": "5%",
+			"value": "5"
+		}, {
+			"label": "10%",
+			"value": "10"
+		}, {
+			"label": "15%",
+			"value": "15"
+		}, {
+			"label": "20%",
+			"value": "20"
+		}],
+		desc: "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
+		isMainRisk: true,
+		kindCode: "MJ4",
+		kindName: "绝对免赔率特约险(乘客)",
+		mainRiskCodeList: "D4"
+	},
+	{
+		amount: "0",
+		amountDesc: "不投保",
+		coveragePremium: 0,
+		amtList: [{
+				label: "不投保",
+				value: "0"
+			},
+			{
+				label: "1万",
+				value: "10000"
+			},
+			{
+				label: "2万",
+				value: "20000"
+			},
+			{
+				label: "4万",
+				value: "40000"
+			},
+			{
+				label: "5万",
+				value: "50000"
+			},
+			{
+				label: "8万",
+				value: "80000"
+			},
+			{
+				label: "10万",
+				value: "100000"
+			},
+			{
+				label: "20万",
+				value: "200000"
+			},
+			{
+				label: "30万",
+				value: "300000"
+			},
+			{
+				label: "50万",
+				value: "500000"
+			},
+			{
+				label: "100万",
+				value: "1000000"
+			},
+			{
+				label: "200万",
+				value: "2000000"
+			},
+			{
+				label: "300万",
+				value: "3000000"
+			},
+		],
+		kindCode: "SY_FJ_YBW1",
+		isMainRisk: true,
+		kindName: "附加医保-三者",
+		desc: "附加医保外医疗费用责任险(机动车第三者责任保险)"
+	},
+	{
+		amount: "0",
+		amountDesc: "不投保",
+		coveragePremium: 0,
+		amtList: [{
+				label: "不投保",
+				value: "0"
+			},
+			{
+				label: "1万",
+				value: "10000"
+			},
+			{
+				label: "2万",
+				value: "20000"
+			},
+			{
+				label: "5万",
+				value: "50000"
+			},
+			{
+				label: "10万",
+				value: "100000"
+			}
+		],
+		kindCode: "SY_FJ_YBW2",
+		isMainRisk: true,
+		kindName: "附加医保-座位险(乘客)",
+		desc: "附加医保外医疗费用责任险(机动车第三者责任保险)"
+	},
+	{
+		amount: "0",
+		amountDesc: "不投保",
+		coveragePremium: 0,
+		amtList: [{
+				label: "不投保",
+				value: "0"
+			},
+			{
+				label: "1万",
+				value: "10000"
+			},
+			{
+				label: "2万",
+				value: "20000"
+			},
+			{
+				label: "5万",
+				value: "50000"
+			},
+			{
+				label: "10万",
+				value: "100000"
+			}
+		],
+		kindCode: "SY_FJ_YBW3",
+		isMainRisk: true,
+		kindName: "附加医保-座位险(司机)",
+		desc: "附加医保外医疗费用责任险(机动车第三者责任保险)"
+	},
+	{
+		amount: "0",
+		amountDesc: "不投保",
+		coveragePremium: 0,
+		amtList: [{
+				label: "不投保",
+				value: "0"
+			},
+			{
+				label: "2次",
+				value: "2"
+			},
+			{
+				label: "7次",
+				value: "7"
+			},
+			{
+				label: "12次",
+				value: "12"
+			},
+			{
+				label: "17次",
+				value: "17"
+			},
+			{
+				label: "22次",
+				value: "22"
+			},
+		],
+		kindCode: "TY1",
+		isMainRisk: true,
+		kindName: "道路救援服务特约条款",
+		desc: "道路救援服务特约条款是指在保险期内,被保险机动车在使用过程中发生故障而丧失行驶能力时,保险人根据被保险人的请求,向被保险人提供道路救援服务。"
+	},
+	{
+		amount: 0,
+		amountDesc: "不投保",
+		kindCode: "TY2",
+		isMainRisk: true,
+		kindName: "车辆安全检测特约条款",
+		desc: "安全检测特约条款是指保险期间内,为保障车辆安全运行,保险人或其受托人根据被保险人请求,为被保险机动车提供车辆安全检测服务。"
+	},
+	{
+		amount: 0,
+		amountDesc: "不投保",
+		kindCode: "TY3",
+		isMainRisk: true,
+		kindName: "代为驾驶服务特约条款",
+		desc: "代为驾驶特约条款是指保险期间内,在被保险人或其允许的驾驶人因饮酒、服用药物等原因无法驾驶或存在重大安全驾驶隐患时,提供单程30公里以内的短途代驾服务。"
+	},
+	{
+		amount: 0,
+		amountDesc: "不投保",
+		kindCode: "TY4",
+		isMainRisk: true,
+		kindName: "代为送检服务特约条款",
+		desc: "代为送检特约条款是指保险期间内,由保险人或其受托人代替车辆所有人进行车辆送检。"
+	},
+	{
+		amount: "0",
+		amountDesc: "不投保",
+		amtList: [{
+				label: "不投保",
+				value: "0"
+			},
+			{
+				label: "50万",
+				value: "500000"
+			},
+			{
+				label: "100万",
+				value: "1000000"
+			},
+			{
+				label: "150万",
+				value: "1500000"
+			},
+			{
+				label: "200万",
+				value: "2000000"
+			},
+			{
+				label: "250万",
+				value: "2500000"
+			},
+			{
+				label: "300万",
+				value: "3000000"
+			},
+			{
+				label: "500万",
+				value: "5000000"
+			},
+			{
+				label: "1000万",
+				value: "10000000"
+			}
+		],
+		desc: "保险期间内,被保险人或其允许的驾驶人在法定节假日期间使用被保险机动车发生机动车第三者责任保险范围内的事故,并经公安部门或保险人查勘确认的,被保险机动车第三者责任保险所适用的责任限额在保险单载明的基础上增加一倍的险种",
+		isMainRisk: true,
+		kindCode: "BD",
+		kindName: "法定节假日限额翻倍险",
+		mainRiskCodeList: "B"
+	}
+]
+module.exports = {
+	data: list
+}

+ 1614 - 0
pages/carInsure2/insureItems.vue

@@ -0,0 +1,1614 @@
+<template>
+	<view class="page">
+		<!-- 公共组件-每个页面必须引入 -->
+		<public-module></public-module>
+		<view class="plan-ins-title dis j-s a-c">
+			<text>车船税</text>
+		</view>
+		<view class="compulsory-insurance">
+			<u-form ref="uForm" :model="vehicleAndVesselTaxForm" label-width="130px">
+				<u-form-item label="纳税类型" prop="taxRelifFlag" class="modelformcss">
+					<u-input type="select" :select-open="taxRelifFlagShow" v-model="model.taxRelifFlag"
+						:custom-style="{textAlign:'right'}" placeholder="请选择纳税类型"
+						@click="taxRelifFlagShow = true"></u-input>
+					<u-select mode="single-column" :list="taxRelifFlagoptions" v-model="taxRelifFlagShow"
+						label-name="dictTag" value-name="dictValue"
+						@confirm="taxRelifFlagConfirm($event,'taxRelifFlag')"></u-select>
+				</u-form-item>
+				<u-form-item
+					v-show="vehicleAndVesselTaxForm.taxRelifFlag == 2 || vehicleAndVesselTaxForm.taxRelifFlag == 3"
+					label="减免税凭证号" prop="extendChar2" class="modelformcss">
+					<u-input placeholder="请输入减免税凭证号" :custom-style="{textAlign:'right'}"
+						v-model="vehicleAndVesselTaxForm.extendChar2" type="text"></u-input>
+				</u-form-item>
+				<u-form-item v-show="vehicleAndVesselTaxForm.taxRelifFlag == 4" label="完税凭证号" prop="paidFreeCertificate"
+					class="modelformcss">
+					<u-input placeholder="请输入完税凭证号" :custom-style="{textAlign:'right'}"
+						v-model="vehicleAndVesselTaxForm.paidFreeCertificate" type="text"></u-input>
+				</u-form-item>
+				<u-form-item
+					v-show="vehicleAndVesselTaxForm.taxRelifFlag == 2 || vehicleAndVesselTaxForm.taxRelifFlag == 3"
+					label="减免税原因" prop="relifReason" class="modelformcss">
+					<u-input type="select" :select-open="relifReasonShow" v-model="model.relifReason"
+						:custom-style="{textAlign:'right'}" placeholder="请选择减免税原因"
+						@click="relifReasonShow = true"></u-input>
+					<u-select mode="single-column" :list="relifReasonoptions" v-model="relifReasonShow"
+						label-name="dictTag" value-name="dictValue"
+						@confirm="taxRelifFlagConfirm($event,'relifReason')"></u-select>
+				</u-form-item>
+				<u-form-item v-show="vehicleAndVesselTaxForm.taxRelifFlag != 1" label="税务机关代码" prop="taxComCode"
+					class="modelformcss">
+					<u-input placeholder="请输入税务机关代码" :custom-style="{textAlign:'right'}"
+						v-model="vehicleAndVesselTaxForm.taxComCode" type="text"></u-input>
+				</u-form-item>
+				<u-form-item v-show="vehicleAndVesselTaxForm.taxRelifFlag != 1" label="税务机关名称" prop="taxComName"
+					class="modelformcss">
+					<u-input placeholder="请输入税务机关名称" :custom-style="{textAlign:'right'}"
+						v-model="vehicleAndVesselTaxForm.taxComName" type="text"></u-input>
+				</u-form-item>
+				<u-form-item v-show="vehicleAndVesselTaxForm.taxRelifFlag == 4" label="完税凭证填发日期" prop="taxDocumentDate"
+					class="modelformcss">
+					<u-input type="select" :select-open="taxDocumentDateShow" :custom-style="{textAlign:'right'}"
+						v-model="vehicleAndVesselTaxForm.taxDocumentDate" placeholder="请选择时间"
+						@click="taxDocumentDateShow = true"></u-input>
+					<u-picker v-model="taxDocumentDateShow" mode="time" :params="params1"
+						@confirm="taxDocumentDateconfirm"></u-picker>
+				</u-form-item>
+				<u-form-item v-show="vehicleAndVesselTaxForm.taxRelifFlag == 4" label="完税凭证地区" prop="taxPaidAreaCode"
+					class="modelformcss">
+					<u-input type="select" :select-open="taxPaidAreaCodeShow" :custom-style="{textAlign:'right'}"
+						v-model="model.taxPaidAreaCode" placeholder="请选择地区"
+						@click="taxPaidAreaCodeShow = true"></u-input>
+					<u-picker mode="region" v-model="taxPaidAreaCodeShow" :params="params2"
+						@confirm="taxPaidAreaCodeconfirm"></u-picker>
+				</u-form-item>
+				<u-form-item v-show="vehicleAndVesselTaxForm.taxRelifFlag == 3" label="减税比例" prop="taxRelief"
+					class="modelformcss">
+					<u-input placeholder="请输入0~1的小数" :custom-style="{textAlign:'right'}"
+						v-model="vehicleAndVesselTaxForm.taxRelief" type="text"></u-input>
+				</u-form-item>
+			</u-form>
+		</view>
+		<view class="plan-ins-title dis j-s a-c">
+			<text>交强险</text>
+			<u-switch v-model="jqchecked" active-color="#0052FF" inactive-color="#eee" size='30'
+				@change="jqImmediate"></u-switch>
+		</view>
+		<view class="compulsory-insurance">
+			<view class=" immediately  dis j-s a-c" style="border-bottom: 1px solid #eee;">
+				<text>即时投保</text>
+				<view class="dis a-c j-c">
+					<view class="status-data" :class="item.value==jqimmediately? 'active':''"
+						v-for="(item,index) in jqimmediatelyList"
+						@tap="immediatelyClick(item.value,'jqimmediately','jqstartDate','jqendDate')" :key="index">
+						{{item.label}}
+					</view>
+				</view>
+			</view>
+			<u-form ref="uForm" label-width="120px" v-if="CIInsureList.amount!=0">
+				<u-form-item label="交强险投保日期" class="modelformcss">
+					<u-input type="select" :select-open="jqstartShow" :custom-style="{textAlign:'right'}"
+						v-model="jqstartDate" placeholder="请选择开始时间" @click="jqstartShow = true"></u-input>
+					<u-picker v-model="jqstartShow" mode="time" :params="params" @confirm="jqstartconfirm"></u-picker>
+				</u-form-item>
+				<u-form-item label="交强险终保日期" class="modelformcss">
+					<u-input type="select" :select-open="jqendShow" :custom-style="{textAlign:'right'}"
+						v-model="jqendDate" placeholder="请选择结束时间" @click="jqendShow = true"></u-input>
+					<u-picker v-model="jqendShow" mode="time" :params="params" @confirm="jqendconfirm"></u-picker>
+				</u-form-item>
+			</u-form>
+		</view>
+		<view class="plan-ins-title dis j-s a-c">
+			<text>商业险</text>
+			<u-switch v-model="sychecked" active-color="#0052FF" inactive-color="#eee" size='30'
+				@change="syImmediate"></u-switch>
+		</view>
+		<view class="business-insurance">
+			<view class=" immediately  dis j-s a-c" style="border-bottom: 1px solid #eee;">
+				<text>即时投保</text>
+				<view class="dis a-c j-c">
+					<view class="status-data" :class="item.value==syimmediately? 'active':''"
+						v-for="(item,index) in syimmediatelyList"
+						@tap="immediatelyClick(item.value,'syimmediately','systartDate','syendDate')" :key="index">
+						{{item.label}}
+					</view>
+				</view>
+			</view>
+			<u-form ref="uForm" label-width="120px" v-if="BIInsureList.amount!=0">
+				<u-form-item label="商业险投保日期" class="modelformcss">
+					<u-input type="select" :select-open="systartShow" :custom-style="{textAlign:'right'}"
+						v-model="systartDate" placeholder="请选择开始时间" @click="systartShow = true"></u-input>
+					<u-picker v-model="systartShow" mode="time" :params="params" @confirm="systartconfirm"></u-picker>
+				</u-form-item>
+				<u-form-item label="商业险终保日期" class="modelformcss">
+					<u-input type="select" :select-open="syendShow" :custom-style="{textAlign:'right'}"
+						v-model="syendDate" placeholder="请选择开始时间" @click="syendShow = true"></u-input>
+					<u-picker v-model="syendShow" mode="time" :params="params" @confirm="syendconfirm"></u-picker>
+				</u-form-item>
+			</u-form>
+			<view v-if="BIInsureList.amount!=0" class="immediately">
+				<view class=" dis f-c" style="background: #F9F9F9;border-radius: 10px;">
+					<block v-for="(insureItem,index) in insureList" :key="index">
+						<template v-if="insureItem.amount != 0">
+							<view class="car-ins-cell d-flex j-sb common-ins-cell" @tap="adjustBIItem(index)">
+								<view class="cell-title d-flex a-center j-center">{{insureItem.kindName}}</view>
+								<view class="cell-desc d-flex a-center j-center">{{insureItem.amountDesc}}
+									<view class="icon iconfont icon-youjiantou"
+										style="font-size: 24upx;margin-left: 20upx;">
+									</view>
+								</view>
+							</view>
+						</template>
+					</block>
+				</view>
+			</view>
+		</view>
+		<view class="compulsory-insurance">
+			<block v-for="(insureItem,index) in insureList" :key="index">
+				<template
+					v-if="(insureItem.amount == 0) && (insureItem.isMainRisk || (insureItem.isMainRisk && (insureCodeList.indexOf(insureItem.mainRiskCodeList)>=0)))  ">
+					<view class="car-ins-cell d-flex j-sb common-ins-cell" @tap="adjustBIItem(index)">
+						<view class="cell-title d-flex a-center j-center">{{insureItem.kindName}}</view>
+						<view class="cell-desc d-flex a-center j-center">{{insureItem.amountDesc}}
+							<view class="icon iconfont icon-youjiantou" style="font-size: 24upx;margin-left: 20upx;">
+							</view>
+						</view>
+					</view>
+				</template>
+			</block>
+		</view>
+		<view class="bottom-btn">
+			<button type="primary" style="background-color: #0052FF;" @tap="toQuote">下一步</button>
+		</view>
+		<!-- 商业选择方案 -->
+		<wyb-popup ref="popupBI" type="bottom" mode="size-fixed" height="900" radius="6" :showCloseIcon="true">
+			<view class="popup-content">
+				<view class="popHeader d-flex a-center j-center">
+					选择方案
+				</view>
+				<scroll-view scroll-top="0" scroll-y="true" class="popContent">
+					<view class="popContentTitle">{{insureItem.kindName}}</view>
+					<view style="color: #999;font-size: 24upx;">{{insureItem.desc}}</view>
+					<view class="dis a-c j-s p-3" v-if="['TY2','TY3','TY4'].includes(insureItem.kindCode)">
+						<text>自定义次数</text>
+						<u-number-box v-model="insureItem.amount" :input-width="100" :input-height="60" :min="0"
+							color="#fff" size="30" @change="numberBoxChange"></u-number-box>
+					</view>
+					<view v-else style="margin-top: 10px;">
+						<block v-for="(amt,index) in insureItem.amtList" :key="index">
+							<view class="amtSingle" @tap="adjustBIItemLabel(index)"
+								:class="(amt.label== insureItem.amountDesc)?'active':''">
+								{{amt.label}}
+							</view>
+						</block>
+					</view>
+				</scroll-view>
+				<view class="popBottom">
+					<button type="primary" style="background-color: #0052FF;"
+						@tap="adjustBIItemLabelSubmit()">完成</button>
+				</view>
+			</view>
+		</wyb-popup>
+
+	</view>
+</template>
+
+<script>
+	import wybPopup from '@/components/modules/carInsure/wyb-popup/wyb-popup.vue'
+	var dateTime = new Date();
+	dateTime.setTime(dateTime.getTime() + 24 * 60 * 60 * 1000);
+	var tomorrow = dateTime.getFullYear() + "-" + (((dateTime.getMonth() + 1) < 10) ? ("0" + (dateTime.getMonth() + 1)) :
+		(dateTime.getMonth() + 1)) + "-" + ((dateTime.getDate() < 10) ? ("0" + dateTime.getDate() + ' 00:00') :
+		dateTime
+		.getDate() + ' 00:00:00');
+
+	export default {
+		components: {
+			wybPopup
+		},
+		data() {
+			return {
+				jqchecked: true,
+				sychecked: true,
+				jqimmediately: "0",
+				jqimmediatelyList: [{
+						label: '是',
+						value: "1",
+					},
+					{
+						label: '否',
+						value: "0",
+					},
+
+				],
+				syimmediately: "0",
+				syimmediatelyList: [{
+						label: '是',
+						value: "1",
+					},
+					{
+						label: '否',
+						value: "0",
+					},
+				],
+				model: {
+					taxRelifFlag: "正常交税",
+					taxpayerIdentifier: "身份证",
+					relifReason: "",
+					taxPaidAreaCode: "",
+				},
+				//车船税form
+				vehicleAndVesselTaxForm: {
+					taxRelifFlag: "1", //类型
+					identifyNumber: "", //纳税人识别号
+					taxpayerIdentifier: "01", //纳税人证件类型
+					taxpayerName: "", //纳税人名称
+					extendChar2: "", //减免税凭证号
+					paidFreeCertificate: "", //完税凭证号
+					relifReason: "", //减免税原因
+					taxComCode: "", //税务机关代码
+					taxComName: "", ///税务机关名称
+					taxDocumentDate: "", //完税日期
+					taxPaidAreaCode: "", //完税凭证地区代码
+					taxRelief: "", //减税比例
+				},
+
+				form: {},
+				taxPaidAreaCodeShow: false, //完税凭证地区
+				taxDocumentDateShow: false, //完税凭证填发日期
+				taxRelifFlagShow: false, //车船税类型
+				taxpayerIdentifierShow: false, //纳税人证件类型
+				relifReasonShow: false, //减免税原因代码
+				jqstartShow: false, //交强起保日期
+				jqendShow: false, //交强终保日期
+				systartShow: false, //商业起保日期
+				syendShow: false, //商业终保日期
+				params: {
+					year: true, //年
+					month: true, //月
+					day: true, //日
+					hour: true, //时
+					minute: true, //分
+					second: true, //秒
+				},
+				params1: {
+					year: true, //年
+					month: true, //月
+					day: true, //日
+				},
+				params2: {
+					province: true,
+					city: false,
+					area: false
+				},
+				carInfo: {}, //车辆信息
+				ownerInfo: {}, //车主信息
+				policyHolderInfo: {}, //投保人信息
+				insuredPersonInfo: {}, //被保人信息
+				riskList: [], //险种大类信息
+				kindList: [], //商业险险别
+				carInfoPositiveList: [], //车辆
+				ownerInfoPositiveList: [], //车主
+				policyHolderInfoPositiveList: [], //投保人
+				insuredPersonInfoPositiveList: [], //被保人
+				jqstartDate: tomorrow, //交强始
+				jqendDate: " ", //交强终
+				systartDate: tomorrow, //商业始
+				syendDate: "", //商业终
+				BIStartDate: tomorrow,
+				insureItem: {}, //popup弹出框的参数
+				insureCodeList: ["A", "B", "D3"],
+				CIInsureList: {
+					amount: "1",
+					amountDesc: "投保",
+					amtList: [{
+						"label": "不投保",
+						"value": "0"
+					}, {
+						"label": "投保",
+						"value": "1"
+					}],
+					kindCode: "0507",
+					kindName: "交强险",
+					desc: "国家强制规定购买的险种,对第三方的人身或财产损失提供基本保障"
+				},
+				BIInsureList: {
+					amount: "1",
+					amountDesc: "投保",
+					amtList: [{
+						"label": "不投保",
+						"value": "0"
+					}, {
+						"label": "投保",
+						"value": "1"
+					}],
+					kindCode: "0510",
+					kindName: "商业险",
+					desc: "国家强制规定购买的险种,对第三方的人身或财产损失提供基本保障"
+				},
+				insureList: [{
+						amount: "1",
+						amountDesc: "投保",
+						amtList: [{
+							"label": "不投保",
+							"value": "0"
+						}, {
+							"label": "投保",
+							"value": "1"
+						}],
+						kindCode: "A",
+						isMainRisk: true,
+						kindName: "机动车损失险",
+						desc: "保险期间内,被保险人或被保险机动车驾驶人在使用被保险机动车过程中,因自然灾害、意外事故、机动车被盗窃、抢劫、抢夺等情况(详见保险条款)造成被保险机动车直接损失,且不属于免除保险人责任的范围,保险人依照本保险合同的约定负责赔偿的险种。"
+					},
+					{
+						amount: "1000000",
+						amountDesc: "100万",
+						amtList: [{
+								label: "不投保",
+								value: "0"
+							},
+							{
+								label: "50万",
+								value: "500000"
+							},
+							{
+								label: "100万",
+								value: "1000000"
+							},
+							{
+								label: "150万",
+								value: "1500000"
+							},
+							{
+								label: "200万",
+								value: "2000000"
+							},
+							{
+								label: "250万",
+								value: "2500000"
+							},
+							{
+								label: "300万",
+								value: "3000000"
+							},
+							{
+								label: "500万",
+								value: "5000000"
+							},
+							{
+								label: "1000万",
+								value: "10000000"
+							}
+						],
+						kindCode: "B",
+						isMainRisk: true,
+						kindName: "第三者责任险",
+						desc: "保险期间内,被保险人或其允许的驾驶人在使用被保险机动车过程中发生意外事故,致使第三者遭受人身伤亡或财产直接损毁,依法应当对第三者承担的损害赔偿责任,且不属于免除保险人责任的范围,保险人依照本保险合同的约定,对于超过机动车交通事故责任强制保险各分项赔偿限额的部分负责赔偿的险种。"
+					},
+					{
+						amount: "10000",
+						amountDesc: "1万",
+						amtList: [{
+								label: "不投保",
+								value: "0"
+							},
+							{
+								label: "1万",
+								value: "10000"
+							},
+							{
+								label: "2万",
+								value: "20000"
+							},
+							{
+								label: "3万",
+								value: "30000"
+							},
+							{
+								label: "4万",
+								value: "40000"
+							},
+							{
+								label: "5万",
+								value: "50000"
+							},
+							{
+								label: "6万",
+								value: "60000"
+							},
+							{
+								label: "7万",
+								value: "70000"
+							},
+							{
+								label: "8万",
+								value: "80000"
+							},
+							{
+								label: "9万",
+								value: "90000"
+							},
+							{
+								label: "10万",
+								value: "100000"
+							},
+							{
+								label: "15万",
+								value: "150000"
+							},
+							{
+								label: "20万",
+								value: "200000"
+							},
+							{
+								label: "25万",
+								value: "250000"
+							},
+							{
+								label: "30万",
+								value: "300000"
+							},
+							{
+								label: "35万",
+								value: "350000"
+							},
+							{
+								label: "40万",
+								value: "400000"
+							},
+							{
+								label: "45万",
+								value: "450000"
+							},
+							{
+								label: "50万",
+								value: "500000"
+							},
+
+						],
+						kindCode: "D3",
+						isMainRisk: true,
+						kindName: "司机责任险",
+						desc: "保险期间内,被保险人或其允许的驾驶人在使用被保险机动车过程中发生意外事故,致使车上人员遭受人身伤亡,且不属于免除保险人责任的范围,依法应当对车上人员承担的损害赔偿责任,保险人依照本保险合同的约定负责赔偿的险种。"
+					},
+					{
+						amount: "10000",
+						amountDesc: "1万",
+						amtList: [{
+							"label": "不投保",
+							"value": "0"
+						}, {
+							"label": "1万",
+							"value": "10000"
+						}, {
+							"label": "2万",
+							"value": "20000"
+						}, {
+							"label": "4万",
+							"value": "40000"
+						}, {
+							"label": "5万",
+							"value": "50000"
+						}, {
+							"label": "10万",
+							"value": "100000"
+						}, {
+							"label": "15万",
+							"value": "150000"
+						}, {
+							"label": "20万",
+							"value": "200000"
+						}],
+						kindCode: "D4",
+						isMainRisk: true,
+						kindName: "乘客责任险",
+						desc: "保险期间内,被保险人或其允许的驾驶人在使用被保险机动车过程中发生意外事故,致使车上人员遭受人身伤亡,且不属于免除保险人责任的范围,依法应当对车上人员承担的损害赔偿责任,保险人依照本保险合同的约定负责赔偿的险种。"
+					},
+					{
+						amount: "0",
+						amountDesc: "不投保",
+						amtList: [{
+							"label": "不投保",
+							"value": "0"
+						}, {
+							"label": "2000",
+							"value": "2000"
+						}, {
+							"label": "5000",
+							"value": "5000"
+						}, {
+							"label": "1万",
+							"value": "10000"
+						}],
+						desc: "保险期间内,被保险机动车在被保险人或被保险机动车驾驶人使用过程中,发生无明显碰撞痕迹的车身划痕损失,保险人按照保险合同约定负责赔偿的险种",
+						isMainRisk: true,
+						kindCode: "L",
+						kindName: "车身划痕险",
+						mainRiskCodeList: "A"
+					},
+					{
+						amount: "0",
+						amountDesc: "不投保",
+						amtList: [{
+							"label": "不投保",
+							"value": "0"
+						}, {
+							"label": "5%",
+							"value": "5"
+						}, {
+							"label": "10%",
+							"value": "10"
+						}, {
+							"label": "15%",
+							"value": "15"
+						}, {
+							"label": "20%",
+							"value": "20"
+						}],
+						desc: "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
+						isMainRisk: true,
+						kindCode: "MJ1",
+						kindName: "绝对免赔率特约险(车损)",
+						mainRiskCodeList: "A"
+					},
+					{
+						amount: "0",
+						amountDesc: "不投保",
+						amtList: [{
+							"label": "不投保",
+							"value": "0"
+						}, {
+							"label": "5%",
+							"value": "5"
+						}, {
+							"label": "10%",
+							"value": "10"
+						}, {
+							"label": "15%",
+							"value": "15"
+						}, {
+							"label": "20%",
+							"value": "20"
+						}],
+						desc: "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
+						isMainRisk: true,
+						kindCode: "MJ2",
+						kindName: "绝对免赔率特约险(三者)",
+						mainRiskCodeList: "B"
+					},
+					{
+						amount: "0",
+						amountDesc: "不投保",
+						amtList: [{
+							"label": "不投保",
+							"value": "0"
+						}, {
+							"label": "5%",
+							"value": "5"
+						}, {
+							"label": "10%",
+							"value": "10"
+						}, {
+							"label": "15%",
+							"value": "15"
+						}, {
+							"label": "20%",
+							"value": "20"
+						}],
+						desc: "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
+						isMainRisk: true,
+						kindCode: "MJ3",
+						kindName: "绝对免赔率特约险(司机)",
+						mainRiskCodeList: "D3"
+					},
+					{
+						amount: "0",
+						amountDesc: "不投保",
+						amtList: [{
+							"label": "不投保",
+							"value": "0"
+						}, {
+							"label": "5%",
+							"value": "5"
+						}, {
+							"label": "10%",
+							"value": "10"
+						}, {
+							"label": "15%",
+							"value": "15"
+						}, {
+							"label": "20%",
+							"value": "20"
+						}],
+						desc: "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
+						isMainRisk: true,
+						kindCode: "MJ4",
+						kindName: "绝对免赔率特约险(乘客)",
+						mainRiskCodeList: "D4"
+					},
+					{
+						amount: "0",
+						amountDesc: "不投保",
+						coveragePremium: 0,
+						amtList: [{
+								label: "不投保",
+								value: "0"
+							},
+							{
+								label: "1万",
+								value: "10000"
+							},
+							{
+								label: "2万",
+								value: "20000"
+							},
+							{
+								label: "4万",
+								value: "40000"
+							},
+							{
+								label: "5万",
+								value: "50000"
+							},
+							{
+								label: "8万",
+								value: "80000"
+							},
+							{
+								label: "10万",
+								value: "100000"
+							},
+							{
+								label: "20万",
+								value: "200000"
+							},
+							{
+								label: "30万",
+								value: "300000"
+							},
+							{
+								label: "50万",
+								value: "500000"
+							},
+							{
+								label: "100万",
+								value: "1000000"
+							},
+							{
+								label: "200万",
+								value: "2000000"
+							},
+							{
+								label: "300万",
+								value: "3000000"
+							},
+						],
+						kindCode: "SY_FJ_YBW1",
+						isMainRisk: true,
+						kindName: "附加医保-三者",
+						desc: "附加医保外医疗费用责任险(机动车第三者责任保险)"
+					},
+					{
+						amount: "0",
+						amountDesc: "不投保",
+						coveragePremium: 0,
+						amtList: [{
+								label: "不投保",
+								value: "0"
+							},
+							{
+								label: "1万",
+								value: "10000"
+							},
+							{
+								label: "2万",
+								value: "20000"
+							},
+							{
+								label: "4万",
+								value: "40000"
+							},
+							{
+								label: "5万",
+								value: "50000"
+							},
+							{
+								label: "8万",
+								value: "80000"
+							},
+							{
+								label: "10万",
+								value: "100000"
+							},
+							{
+								label: "20万",
+								value: "200000"
+							},
+							{
+								label: "30万",
+								value: "300000"
+							},
+							{
+								label: "50万",
+								value: "500000"
+							},
+							{
+								label: "100万",
+								value: "1000000"
+							},
+							{
+								label: "200万",
+								value: "2000000"
+							},
+							{
+								label: "300万",
+								value: "3000000"
+							},
+						],
+						kindCode: "SY_FJ_YBW2",
+						isMainRisk: true,
+						kindName: "附加医保-座位险(乘客)",
+						desc: "附加医保外医疗费用责任险(机动车第三者责任保险)"
+					},
+					{
+						amount: "0",
+						amountDesc: "不投保",
+						coveragePremium: 0,
+						amtList: [{
+								label: "不投保",
+								value: "0"
+							},
+							{
+								label: "1万",
+								value: "10000"
+							},
+							{
+								label: "2万",
+								value: "20000"
+							},
+							{
+								label: "4万",
+								value: "40000"
+							},
+							{
+								label: "5万",
+								value: "50000"
+							},
+							{
+								label: "8万",
+								value: "80000"
+							},
+							{
+								label: "10万",
+								value: "100000"
+							},
+							{
+								label: "20万",
+								value: "200000"
+							},
+							{
+								label: "30万",
+								value: "300000"
+							},
+							{
+								label: "50万",
+								value: "500000"
+							},
+							{
+								label: "100万",
+								value: "1000000"
+							},
+							{
+								label: "200万",
+								value: "2000000"
+							},
+							{
+								label: "300万",
+								value: "3000000"
+							},
+						],
+						kindCode: "SY_FJ_YBW3",
+						isMainRisk: true,
+						kindName: "附加医保-座位险(司机)",
+						desc: "附加医保外医疗费用责任险(机动车第三者责任保险)"
+					},
+					{
+						amount: "0",
+						amountDesc: "不投保",
+						coveragePremium: 0,
+						amtList: [{
+								label: "不投保",
+								value: "0"
+							},
+							{
+								label: "2次",
+								value: "2"
+							},
+							{
+								label: "7次",
+								value: "7"
+							},
+							{
+								label: "12次",
+								value: "12"
+							},
+							{
+								label: "17次",
+								value: "17"
+							},
+							{
+								label: "22次",
+								value: "22"
+							},
+						],
+						kindCode: "TY1",
+						isMainRisk: true,
+						kindName: "道路救援服务特约条款",
+						desc: "道路救援服务特约条款是指在保险期内,被保险机动车在使用过程中发生故障而丧失行驶能力时,保险人根据被保险人的请求,向被保险人提供道路救援服务。"
+					},
+					{
+						amount: 0,
+						amountDesc: "不投保",
+						kindCode: "TY2",
+						isMainRisk: true,
+						kindName: "车辆安全检测特约条款",
+						desc: "安全检测特约条款是指保险期间内,为保障车辆安全运行,保险人或其受托人根据被保险人请求,为被保险机动车提供车辆安全检测服务。"
+					},
+					{
+						amount: 0,
+						amountDesc: "不投保",
+						kindCode: "TY3",
+						isMainRisk: true,
+						kindName: "代为驾驶服务特约条款",
+						desc: "代为驾驶特约条款是指保险期间内,在被保险人或其允许的驾驶人因饮酒、服用药物等原因无法驾驶或存在重大安全驾驶隐患时,提供单程30公里以内的短途代驾服务。"
+					},
+					{
+						amount: 0,
+						amountDesc: "不投保",
+						kindCode: "TY4",
+						isMainRisk: true,
+						kindName: "代为送检服务特约条款",
+						desc: "代为送检特约条款是指保险期间内,由保险人或其受托人代替车辆所有人进行车辆送检。"
+					},
+					{
+						amount: "0",
+						amountDesc: "不投保",
+						amtList: [{
+								label: "不投保",
+								value: "0"
+							},
+							{
+								label: "50万",
+								value: "500000"
+							},
+							{
+								label: "100万",
+								value: "1000000"
+							},
+							{
+								label: "150万",
+								value: "1500000"
+							},
+							{
+								label: "200万",
+								value: "2000000"
+							},
+							{
+								label: "250万",
+								value: "2500000"
+							},
+							{
+								label: "300万",
+								value: "3000000"
+							},
+							{
+								label: "500万",
+								value: "5000000"
+							},
+							{
+								label: "1000万",
+								value: "10000000"
+							}
+						],
+						desc: "保险期间内,被保险人或其允许的驾驶人在法定节假日期间使用被保险机动车发生机动车第三者责任保险范围内的事故,并经公安部门或保险人查勘确认的,被保险机动车第三者责任保险所适用的责任限额在保险单载明的基础上增加一倍的险种",
+						isMainRisk: true,
+						kindCode: "BD",
+						kindName: "法定节假日限额翻倍险",
+						mainRiskCodeList: "B"
+					}
+				],
+				/* 数据字典 */
+				taxRelifFlagoptions: [],
+				taxpayerIdentifieroptions: [],
+				relifReasonoptions: [],
+				/* 数据字典 */
+			}
+		},
+		// 监听导航栏的按钮
+		onNavigationBarButtonTap(e) {
+			if (e.index == 0) {
+				this.navigate({
+					url: '/pages/index/index'
+				}, "switchTab", true);
+			}
+		},
+		onShow() {
+			dateTime = new Date();
+			dateTime.setTime(dateTime.getTime() + 24 * 60 * 60 * 1000);
+		},
+		onLoad() {
+			this.getDicType("taxRelifFlag"); //车船税类型
+			this.getDicType("taxpayerIdentifier"); //纳税人证件类型
+			this.getDicType("relifReason"); //减免税原因代码
+			this.jqstartDate = this.nextday();
+			this.jqendDate = this.oneYearPast(this.jqstartDate);
+			this.systartDate = this.nextday();
+			this.syendDate = this.oneYearPast(this.jqstartDate);
+			const eventChannel = this.getOpenerEventChannel()
+			// 监听acceptData事件,获取上一页面通过eventChannel传送到当前页面的数据
+			eventChannel.on('acceptData', (data) => {
+				console.log(data);
+				if (!!data) {
+					//读取上一个页面传过来数据(车辆信息,人员信息,险种信息)
+					this.carInfo = data.carInfo; //车辆信息
+					this.ownerInfo = data.ownerInfo; //车主信息
+					this.policyHolderInfo = data.policyHolderInfo; //投保人信息
+					this.insuredPersonInfo = data.insuredPersonInfo; //被保人信息
+					this.vehicleAndVesselTaxForm.identifyNumber = this.policyHolderInfo.identifyNumber;
+					this.vehicleAndVesselTaxForm.taxpayerName = this.policyHolderInfo.name;
+					this.riskList = data.riskList; //险种大类
+					this.kindList = data.kindList; //商业险险别
+					this.carInfoPositiveList = data.carInfoPositiveList; //车辆
+					this.ownerInfoPositiveList = data.ownerInfoPositiveList; //车主
+					this.policyHolderInfoPositiveList = data.policyHolderInfoPositiveList; //投保
+					this.insuredPersonInfoPositiveList = data.insuredPersonInfoPositiveList; //被保人
+					if (this.riskList.length > 0) {
+						this.insureCodeList = [];
+						if (this.riskList.length == 1) {
+							if (this.riskList[0].riskCode == '0507') {
+								this.CIInsureList.amount = "1";
+								this.CIInsureList.amountDesc = "投保";
+								this.jqstartDate = this.riskList[0].startDate;
+								this.jqendDate = this.riskList[0].endDate;
+								this.BIInsureList.amount = "0";
+								this.BIInsureList.amountDesc = "不投保";
+							} else if (this.riskList[0].riskCode == '0510') {
+								this.CIInsureList.amount = "0";
+								this.CIInsureList.amountDesc = "不投保";
+								this.BIInsureList.amount = "1";
+								this.BIInsureList.amountDesc = "投保";
+								this.systartDate = this.riskList[0].startDate;
+								this.syendDate = this.riskList[0].endDate;
+							}
+						} else {
+							this.CIInsureList.amount = "1";
+							this.CIInsureList.amountDesc = "投保";
+							this.jqstartDate = this.riskList[0].startDate;
+							this.jqendDate = this.riskList[0].endDate;
+							this.BIInsureList.amount = "1";
+							this.BIInsureList.amountDesc = "投保";
+							this.systartDate = this.riskList[1].startDate;
+							this.syendDate = this.riskList[1].endDate;
+						}
+						this.kindList.map(ele => {
+							this.insureList.map(ele1 => {
+								if (ele.kindCode == ele1.kindCode) {
+									switch (ele.kindCode) {
+										case 'A':
+											ele1.amount = '1';
+											ele1.amountDesc = '投保'
+											break;
+										case 'D4':
+										case "SY_FJ_YBW2":
+											ele1.amount = ele.unitAmount;
+											ele1.amountDesc = this.toChinesNum(ele.unitAmount)
+											break;
+										case "MJ1":
+										case "MJ2":
+										case "MJ3":
+										case "MJ4":
+											ele1.amount = ele.deductibleRate;
+											ele1.amountDesc = ele.deductibleRate + '%'
+											break;
+										case "TY1":
+										case "TY2":
+										case "TY3":
+										case "TY4":
+											ele1.amount = ele.serviceTimes;
+											ele1.amountDesc = ele.serviceTimes + '次'
+											break;
+										default:
+											ele1.amount = ele.amount;
+											ele1.amountDesc = this.toChinesNum(ele.amount)
+											break;
+									}
+								}
+							})
+
+						})
+						var notselected = this.insureList.filter(item1 => !this.kindList.some(item2 => item2
+							.kindCode === item1.kindCode))
+						notselected.map(ele => {
+							ele.amount = '0';
+							ele.amountDesc = '不投保'
+
+						})
+						// console.log(this.insureList)
+					}
+
+				}
+			})
+		},
+		computed: {
+			startDate() {
+				return this.getDate('start');
+			},
+			endDate() {
+				return this.getDate('end');
+			}
+		},
+		methods: {
+			immediatelyClick(value, name, startDate, endDate) {
+				this[name] = value;
+				if (value == 1) {
+					const date = new Date();
+					date.setHours(date.getHours() + 2);
+					date.setMinutes(0)
+					date.setSeconds(0)
+					this[startDate] = this.transformTime(date)
+					this[endDate] = this.oneYearPast(date);
+				} else {
+					this[startDate] = this.nextday();
+					this[endDate] = this.oneYearPast(this.jqstartDate);
+				}
+			},
+			jqImmediate(value) {
+				if (value) {
+					this.CIInsureList.amount = "1";
+					this.CIInsureList.amountDesc = "投保";
+				} else {
+					this.CIInsureList.amount = "0";
+					this.CIInsureList.amountDesc = "不投保";
+				}
+			},
+			syImmediate(value) {
+				if (value) {
+					this.BIInsureList.amount = "1";
+					this.BIInsureList.amountDesc = "投保";
+					this.insureList[0].amount = 1;
+					this.insureList[0].amountDesc = "投保";
+					// 三者险
+					this.insureList[1].amount = 1000000;
+					this.insureList[1].amountDesc = "100万";
+					// 司机险
+					this.insureList[2].amount = 10000;
+					this.insureList[2].amountDesc = "1万";
+					// 乘客险
+					this.insureList[3].amount = 10000;
+					this.insureList[3].amountDesc = "1万";
+					this.insureList[4].amount = 0;
+					this.insureList[4].amountDesc = "不投保";
+				} else {
+					this.BIInsureList.amount = "0";
+					this.BIInsureList.amountDesc = "不投保";
+					this.insureCodeList = [];
+					for (let i = 0; i < this.insureList.length; i++) {
+						this.insureList[i].amount = '0';
+						this.insureList[i].amountDesc = '不投保';
+					}
+				}
+			},
+			taxRelifFlagConfirm(val, name) {
+				this.vehicleAndVesselTaxForm[name] = val[0].value;
+				this.model[name] = val[0].label;
+			},
+			/* 数据字典 */
+			async getDicType(type) {
+				let res = await this.$http.get('/sysDict/dictDetails/' + type);
+				if (res.code == 200) {
+					this[type + 'options'] = res.data.ddList;
+				}
+			},
+			jqstartconfirm(e) {
+				this.jqstartDate = e.year + '-' + e.month + '-' + e.day + ' ' + e.hour + ':' + e.minute + ':' + e.second;
+				this.jqendDate = this.oneYearPast(this.jqstartDate)
+			},
+			jqendconfirm(e) {
+				this.jqendDate = e.year + '-' + e.month + '-' + e.day + ' ' + e.hour + ':' + e.minute + ':' + e.second;
+			},
+			systartconfirm(e) {
+				this.systartDate = e.year + '-' + e.month + '-' + e.day + ' ' + e.hour + ':' + e.minute + ':' + e.second;
+				this.syendDate = this.oneYearPast(this.systartDate)
+			},
+			syendconfirm(e) {
+				this.syendDate = e.year + '-' + e.month + '-' + e.day + ' ' + e.hour + ':' + e.minute + ':' + e.second;
+			},
+			taxDocumentDateconfirm(e) {
+				this.vehicleAndVesselTaxForm.taxDocumentDate = e.year + '-' + e.month + '-' + e.day;
+			},
+			taxPaidAreaCodeconfirm(e) {
+				this.vehicleAndVesselTaxForm.taxPaidAreaCode = e.province.value;
+				this.model.taxPaidAreaCode = e.province.label;
+			},
+			insureTip() {
+				this.$refs.popupInsure.show() // 显示
+			},
+			adjustPopupInsureSubmit() {
+				this.$refs.popupInsure.hide() // 显示
+			},
+
+			// 交强险提示
+			CITips() {
+				uni.showModal({
+					title: "交强险",
+					content: "指“机动车交通事故责任强制保险”,是由保险公司对被保险机动车发生道路交通事故造成受害人(不包括本车人员和被保险人)的人身伤亡、财产损失,在责任限额内予以赔偿的强制性责任保险。",
+					showCancel: false,
+					confirmText: "我知道了"
+				})
+			},
+			// 商业险提示
+			BITips() {
+				uni.showModal({
+					title: "商业险",
+					content: "指给车辆加上一份全面保障。详细险种包含:第三者责任险、盗抢险、车上人员责任险、车辆损失险、车身划痕损失险、自燃损失险、涉水险等,是您和爱车的必要保障。",
+					showCancel: false,
+					confirmText: "我知道了"
+				})
+			},
+			//弹出popup框并显示基本信息
+			adjustBIItem(index) {
+				var a = {};
+				Object.assign(a, this.insureList[index])
+				this.insureItem = a;
+				this.$refs.popupBI.show() // 显示
+			},
+			//popup内容的label改变
+			adjustBIItemLabel(index) {
+				this.insureItem.amount = this.insureItem.amtList[index].value;
+				this.insureItem.amountDesc = this.insureItem.amtList[index].label;
+			},
+			// 提交popup的label修改
+			adjustBIItemLabelSubmit() {
+				for (let i = 0; i < this.insureList.length; i++) {
+					if (this.insureItem.kindCode == this.insureList[i].kindCode) {
+						this.insureList[i].amount = this.insureItem.amount; /* 保额 */
+						this.insureList[i].amountDesc = this.insureItem.amountDesc; /* 保额名称 */
+
+						if (this.insureItem.kindCode == 'B') {
+							if (this.insureItem.amount != 0) {
+								this.insureList[9].amtList[1].value = this.insureItem.amount;
+							} else {
+								this.insureList[9].amtList[1].value = '1';
+							}
+						}
+
+						if (this.insureList[i].isMainRisk && this.insureList[i].amount == '0') {
+							for (let j = 0; j < this.insureList.length; j++) {
+								if ((!this.insureList[j].isMainRisk) && (this.insureList[j].mainRiskCodeList == this
+										.insureList[i].kindCode)) {
+									this.insureList[j].amount = this.insureList[j].amtList[0].value;
+									this.insureList[j].amountDesc = this.insureList[j].amtList[0].label;
+								}
+							}
+						}
+
+						var codeList = []
+						for (let m = 0; m < this.insureList.length; m++) {
+							if (this.insureList[m].amount != '0') {
+								codeList.push(this.insureList[m].kindCode);
+							}
+						}
+						this.insureCodeList = [];
+						Object.assign(this.insureCodeList, codeList)
+						if (this.insureCodeList.length > 0) {
+							this.BIInsureList.amount = '1';
+							this.BIInsureList.amountDesc = '投保';
+						} else {
+							this.BIInsureList.amount = '0';
+							this.BIInsureList.amountDesc = '不投保';
+						}
+
+						break;
+					}
+				}
+				this.$refs.popupBI.hide();
+			},
+			numberBoxChange(val) {
+				console.log(val)
+				if (val.value > 0) {
+					this.insureItem.amount = val.value;
+					this.insureItem.amountDesc = val.value + '次';
+				} else {
+					this.insureItem.amount = 0;
+					this.insureItem.amountDesc = '不投保';
+				}
+
+			},
+			getDate(type) {
+				const date = new Date();
+				if (type === 'start') {
+					date.setTime(date.getTime());
+				} else if (type === 'end') {
+					date.setTime(date.getTime() + 24 * 60 * 60 * 1000 * 90);
+				}
+				let year = date.getFullYear();
+				let month = date.getMonth() + 1;
+				let day = date.getDate();
+				month = month > 9 ? month : '0' + month;;
+				day = day > 9 ? day : '0' + day;
+				return `${year}-${month}-${day}`;
+			},
+			//日期的选择
+			bindDateChange(e, startDateType) {
+
+				const date = new Date();
+				const date1 = date.getTime();
+				const date2 = date.getTime() + 24 * 60 * 60 * 1000 * 90;
+				const date3 = new Date(e.detail.value).getTime();
+				if (((date3 - date1) > 0) && ((date3 - date2) > 0)) {
+					return uni.showToast({
+						icon: "none",
+						title: "投保日期须在90天内"
+					})
+				}
+				this[startDateType] = e.detail.value;
+			},
+
+			//跳转报价页面
+			toQuote() {
+				var riskList = []; //险种大类信息
+				var kindList = []; //商业险险别
+				if (this.CIInsureList.amount == '1') {
+					this.jqstartDate = this.transformTime(this.jqstartDate);
+					this.jqendDate = this.transformTime(this.jqendDate);
+					riskList.push({
+						amount: "200000",
+						premium: "0",
+						riskCode: "0507",
+						startDate: this.jqstartDate,
+						endDate: this.jqendDate,
+						instantFlag: "0"
+					})
+
+				}
+				if (this.BIInsureList.amount == '1') {
+					this.systartDate = this.transformTime(this.systartDate);
+					this.syendDate = this.transformTime(this.syendDate);
+					riskList.push({
+						startDate: this.systartDate,
+						endDate: this.syendDate,
+						quotePreceptName: "",
+						quotePreceptCode: "",
+						instantFlag: "0",
+						premium: "0",
+						riskCode: "0510"
+					})
+					this.insureList.map((ele, index) => {
+						if (ele.amount != "0" && ["SY_FJ_YBW2", "D4"].includes(ele.kindCode)) {
+							kindList.push({
+								unitAmount: this.insureList[index].amount,
+								kindCode: this.insureList[index].kindCode,
+								kindName: this.insureList[index].kindName
+							});
+						} else if (ele.amount != "0" && ["MJ1", "MJ2", "MJ3", "MJ4"].includes(ele.kindCode)) {
+							kindList.push({
+								deductibleRate: this.insureList[index].amount,
+								kindCode: this.insureList[index].kindCode,
+								kindName: this.insureList[index].kindName
+							});
+						} else if (ele.amount != "0" && ["TY1", "TY2", "TY3", "TY4"].includes(ele.kindCode)) {
+							kindList.push({
+								serviceTimes: String(this.insureList[index].amount),
+								kindCode: this.insureList[index].kindCode,
+								kindName: this.insureList[index].kindName
+							});
+						} else if (ele.amount != "0") {
+							kindList.push({
+								amount: this.insureList[index].amount,
+								kindCode: this.insureList[index].kindCode,
+								kindName: this.insureList[index].kindName
+							});
+						}
+						return ele;
+					});
+				}
+				if (riskList.length == 0) {
+					return uni.showToast({
+						icon: "none",
+						title: "请至少选择一种主险"
+					})
+				}
+				// console.log(riskList, kindList)
+				this.navigate({
+					url: '/pages/carInsure2/quote',
+					success: (res) => {
+						res.eventChannel.emit("acceptData", {
+							carInfo: this.carInfo,
+							ownerInfo: this.ownerInfo,
+							policyHolderInfo: this.policyHolderInfo,
+							insuredPersonInfo: this.insuredPersonInfo,
+							riskList: riskList,
+							kindList: kindList,
+							carInfoPositiveList: this.carInfoPositiveList, //车辆
+							ownerInfoPositiveList: this.ownerInfoPositiveList, //车主
+							vehicleAndVesselTaxForm: this.vehicleAndVesselTaxForm, //车船税信息
+							policyHolderInfoPositiveList: this.policyHolderInfoPositiveList, //投保人
+							insuredPersonInfoPositiveList: this.insuredPersonInfoPositiveList, //被保人
+						})
+					}
+				}, "navigateTo", true);
+			},
+			//计算输入时间一年后的的前一天(输入的参数为字符串("2019-03-02")最终输出也为日期的字符串)
+			oneYearPast(time) {
+				var date = new Date(time);
+				date.setSeconds(date.getSeconds() - 1);
+				date.setFullYear(date.getFullYear() + 1); //一年后
+				date.setTime(date.getTime()); //一年后的前一天
+				var strYear = date.getFullYear();
+				var strDay = date.getDate();
+				var strMonth = date.getMonth() + 1;
+				var hh = date.getHours();
+				var minutes = date.getMinutes(); // 分
+				var Seconds = date.getSeconds();
+				if (hh < 10) {
+					hh = "0" + hh;
+				}
+				if (minutes < 10) {
+					minutes = "0" + minutes;
+				}
+				if (Seconds < 10) {
+					Seconds = "0" + Seconds;
+				}
+				if (strMonth < 10) {
+					strMonth = "0" + strMonth;
+				}
+				if (strDay < 10) {
+					strDay = "0" + strDay;
+				}
+				var datastr =
+					strYear + "-" + strMonth + "-" + strDay + " " + hh + ":" + minutes + ":" + Seconds;
+				return datastr;
+			},
+			//次日
+			nextday() {
+				var date = new Date();
+				date.setFullYear(date.getFullYear());
+				date.setTime(date.getTime() + 24 * 60 * 60 * 1000);
+				var strYear = date.getFullYear();
+				var strDay = date.getDate();
+				var strMonth = date.getMonth() + 1;
+				var hh = date.getHours();
+				if (hh < 10) {
+					hh = "0" + hh;
+				}
+				if (strMonth < 10) {
+					strMonth = "0" + strMonth;
+				}
+				if (strDay < 10) {
+					strDay = "0" + strDay;
+				}
+				var datastr = strYear + "-" + strMonth + "-" + strDay + " " + "00:00:00";
+				return datastr;
+			},
+			//时间转换
+			transformTime(date) {
+				var d = new Date(date);
+				var strYear = d.getFullYear();
+				var strMonth = d.getMonth() + 1;
+				var strDay = d.getDate();
+				var hh = d.getHours();
+				var minutes = d.getMinutes(); // 分
+				var Seconds = d.getSeconds();
+				if (hh < 10) {
+					hh = "0" + hh;
+				}
+				if (minutes < 10) {
+					minutes = "0" + minutes;
+				}
+				if (Seconds < 10) {
+					Seconds = "0" + Seconds;
+				}
+				if (strMonth < 10) {
+					strMonth = "0" + strMonth;
+				}
+				if (strDay < 10) {
+					strDay = "0" + strDay;
+				}
+				var datetime =
+					strYear + "-" + strMonth + "-" + strDay + " " + hh + ":" + minutes + ":" + Seconds;
+				return datetime;
+			},
+			toChinesNum(num) {
+				let overWan = Math.floor(num / 10000);
+				let result = overWan + "万";
+				return result;
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	@import '@/style/mixin.scss';
+
+	/deep/ .uni-switch-input-checked {
+		background-color: #0052FF !important;
+		border-color: #0052FF !important;
+	}
+
+	/* 整个页面的统一样式 Start */
+	.page {
+		min-height: 100vh;
+		background: #F8FAFE;
+		padding: 16px 16px 100px 16px;
+	}
+
+	/* 整个页面的统一样式 End */
+	.plan-ins-title {
+		color: #232832;
+		font-size: 15px;
+		font-weight: bold;
+		padding: 8px 0;
+	}
+
+	.plan-ins-title .title-right {
+		color: #aaa;
+	}
+
+	.compulsory-insurance,
+	.business-insurance {
+		width: 100%;
+		height: auto;
+		background: #FFFFFF;
+		box-shadow: 0px 4px 10px 0px #DAE3F4;
+		border-radius: 6px 6px 6px 6px;
+		margin-bottom: 20px;
+
+		.immediately {
+			padding: 19rpx 15px;
+
+			.common-ins-cell:last-child {
+				border-bottom: none;
+			}
+		}
+	}
+
+	.common-title {
+		font-size: 32upx;
+		font-weight: bold;
+	}
+
+	.common-ins-cell {
+		font-size: 30upx;
+		padding: 0upx 30upx;
+		height: 90upx;
+		border-bottom: 1px solid #eee;
+	}
+
+	/* 底部按钮Start */
+	.bottom-btn {
+		position: fixed;
+		bottom: 0;
+		left: 0;
+		right: 0;
+		padding: 30upx 30upx;
+		z-index: 99;
+		height: 62px;
+		background: #FFFFFF;
+		box-shadow: 0px -4px 10px 0px #DAE3F4;
+		border-radius: 0px 0px 0px 0px;
+	}
+
+	/* 底部按钮End */
+
+	/* 交强险和商业险弹出框Start */
+	.popup-content {
+		position: relative;
+	}
+
+	.popHeader {
+		box-sizing: border-box;
+		font-size: 32upx;
+		font-weight: bold;
+		height: 120upx;
+		border-bottom: 1px solid #eee;
+	}
+
+	.popup-content .popContent {
+		padding: 0upx 30upx;
+		height: 620upx;
+		box-sizing: border-box;
+	}
+
+	.popup-content .popContent .popContentTitle {
+		font-weight: bold;
+		font-size: 32upx;
+		margin: 20upx 0upx 5upx 0upx;
+	}
+
+	.popup-content .popContent .amtSingle {
+		width: 22%;
+		box-sizing: border-box;
+		display: inline-block;
+		text-align: center;
+		vertical-align: middle;
+		border: 1px solid #eee;
+		margin: 0 15rpx 15rpx 0;
+	}
+
+	.popup-content .popBottom {
+		margin: 30upx 30upx 0 30upx;
+		padding-bottom: 30upx;
+	}
+
+	/* 交强险和商业险弹出框End */
+
+	/* 投保方案建议弹出框Start */
+	.popupBody {
+		position: relative;
+	}
+
+	.popupBody .popHeader {
+		border: none;
+	}
+
+	.popupBody .popBottom {
+		position: fixed;
+		box-sizing: border-box;
+		bottom: 0;
+		width: 100%;
+		height: 100upx;
+		border-top: 1px solid #f6f6f6;
+		font-weight: 700;
+		font-size: 36upx;
+	}
+
+	.popupBody .popupScroll {
+		height: 485upx;
+		padding: 0 30upx 0 30upx;
+		box-sizing: border-box;
+	}
+
+	.popupScroll .title {
+		font-weight: 700;
+		font-size: 30upx;
+	}
+
+	.popupScroll .desc {
+		font-size: 28upx;
+	}
+
+	.modelformcss {
+		padding: 5px 15px;
+	}
+
+	.status-data {
+		width: 40px;
+		height: 25px;
+		margin: 0 7px;
+		font-size: 14px;
+		border: 1px solid #CDCDCD;
+		cursor: pointer;
+		text-align: center;
+		line-height: 25px;
+	}
+
+	.active {
+		position: relative;
+		background: rgba(0, 82, 255, 0.1);
+		color: #0052FF;
+		border: 1px solid #0052FF !important;
+		font-weight: 700;
+	}
+
+	.active::before {
+		content: "";
+		position: absolute;
+		top: 0;
+		left: 0;
+		width: 10px;
+		height: 10px;
+		background-image: url("/static/image/car-insure/before.png");
+		background-size: cover;
+	}
+</style>

+ 3773 - 0
pages/carInsure2/quote.vue

@@ -0,0 +1,3773 @@
+<template>
+	<view :style="getHeight" 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>{{this.carInfo.licenseNo}}</text>
+				<view class="name1">
+					<text>{{this.carInfo.modelcname}}</text>
+				</view>
+			</view>
+			<view class="carJump" @tap="toCarInfo">修改方案</view>
+		</view>
+		<!-- 报价方案 -->
+		<view class="pageContent mt-3">
+			<view class="header dis a-c j-s">
+				<text class="title ">报价方案</text>
+				<text class="color" @tap="toInsureItems">修改方案</text>
+			</view>
+			<view class="quotePlan ">
+				<view class="body">
+					<view class="qunimade  dis a-c j-s">
+						<text>交强险</text>
+						<u-switch v-model="jqchecked" active-color="#0052FF" inactive-color="#eee" size='30'
+							@change="jqImmediate"></u-switch>
+					</view>
+					<view class=" qunimade   dis a-c j-start" @click="jqstartShow = true" v-if="jqstartDate">
+						<text>{{jqstartDate}}</text>
+						<text class="mx-2">-</text>
+						<text>{{jqendDate}}</text>
+						<u-picker v-model="jqstartShow" mode="time" :params="params"
+							@confirm="jqstartconfirm"></u-picker>
+					</view>
+					<view class=" qunimade  dis a-c j-s">
+						<text>商业险</text>
+						<u-switch v-model="sychecked" active-color="#0052FF" inactive-color="#eee" size='30'
+							@change="syImmediate"></u-switch>
+					</view>
+					<view class=" qunimade  dis a-c j-start" @click="systartShow = true" v-if="systartDate">
+						<text>{{systartDate}}</text>
+						<text class="mx-2">-</text>
+						<text>{{syendDate}}</text>
+						<u-picker v-model="systartShow" mode="time" :params="params"
+							@confirm="systartconfirm"></u-picker>
+					</view>
+					<view class="insurance">
+						<template v-if="systartDate">
+							<block v-for="(item,index) in insureList" :key="index">
+								<template v-if="item.amount!=0">
+									<view class=" j-sb  d-flex a-center">
+										<view>{{item.kindName}}</view>
+										<text
+											v-if="['TY2','TY3','TY4'].includes(item.kindCode)">{{item.amountDesc}}</text>
+										<block v-else v-for="(item2,index2) in item.amtList" :key="index2">
+											<template v-if="item2.value == item.amount">
+												<view>{{item2.label}}</view>
+											</template>
+										</block>
+									</view>
+								</template>
+							</block>
+						</template>
+					</view>
+
+				</view>
+			</view>
+			<view class="header dis a-c j-s mt-3">
+				<text class="title ">投保注意:</text>
+				<view class="dis a-c  f-wrap">
+					<view class="status-data" :class="item.checked? 'active':''" v-for="(item,index) in vehicleTypeList"
+						@tap="immediatelyClick(index)" :key="index">
+						{{item.label}}
+					</view>
+				</view>
+			</view>
+			<view class="quotePlan dis a-c j-s " style="padding: 5px 10px;" v-if="vehicleTypeList[0].checked">
+				<view>转移登记日期:</view>
+				<u-input type="select" :select-open="transferDateShow" :custom-style="{textAlign:'right'}"
+					v-model="carInfo.transferDate" @click="transferDateShow = true" style="width: 100px;"></u-input>
+				<u-picker v-model="transferDateShow" mode="time" :params="params1"
+					@confirm="transferconfirm"></u-picker>
+			</view>
+			<view class="quoteCompany mt-3">
+				<view class="header dis a-c j-s">
+					<view class="title  d-flex">保险公司</view>
+					<!-- 	<view class="">
+						<u-checkbox v-model="Selectchecked" @change="SelectAll($event)"
+							active-color="rgb(250, 53, 52)">全选</u-checkbox>
+					</view> -->
+				</view>
+				<block v-for="(totalitem,totalindex) in totalCompanyList" :key="totalindex">
+					<template>
+						<view class="quoteCompanyItem dis f-c j-s" :class="totalitem.checked? 'quoteactive':''">
+							<view class="top dis f-c">
+								<view class="companyIcon dis j-s a-c"
+									@tap="checkboxChange(totalitem.id,totalitem.cnName, totalindex)">
+									<view class="dis a-c">
+										<!-- <u-checkbox
+											@change="event=>checkboxChange(event,totalitem.id,totalitem.cnName, totalindex)"
+											v-model="totalitem.checked" active-color="rgb(250, 53, 52)"></u-checkbox> -->
+										<image :src="totalitem.logo"></image>
+										<view class="companyName">{{totalitem.namesimple}}</view>
+									</view>
+									<ls-loading v-show="totalitem.quoteCode==1" text="掌柜正在为您报价,请稍等......"
+										:animation="animation" fontSize="22" />
+									<!-- 价格 -->
+									<text v-show="totalitem.quoteCode==200"
+										class="sum">¥{{totalitem.result.sumPermium}}</text>
+									<text
+										v-show="(totalitem.quoteCode != '200') && (totalitem.quoteCode != '0') && (totalitem.quoteCode != '1')"
+										class="sum" style="color: #999;font-size: 12px;"
+										@click="ErrorMsg(totalitem.msg,totalitem.namesimple)">报价失败,请点击查看</text>
+								</view>
+
+								<view class="dis content  f-c" v-if="totalitem.checked">
+									<u-form-item label="报价协议选择" v-if="totalitem.isTaxSource!=1" size="mini"
+										:prop="totalitem.agreementId" label-width="200" :border-bottom='false'
+										style="padding: 0;">
+										<u-input type="select" :select-open="totalitem.selectShow"
+											:custom-style="{textAlign:'right'}" v-model="totalitem.agreementName"
+											placeholder="请选择协议" @click="totalitem.selectShow = true"></u-input>
+										<u-select mode="single-column" :list="totalitem.agreement" value-name="id"
+											label-name="agreementName" v-model="totalitem.selectShow"
+											@confirm="val=>selectConfirm(val,totalindex)"></u-select>
+									</u-form-item>
+									<u-form-item label="商业险折扣" v-if="totalitem.namesimple == '中国人寿'" placeholder="请输入数字"
+										label-width="200" :border-bottom='false' style="padding: 0;">
+										<u-input type="number" v-model="totalitem.syAdjustRate"
+											:custom-style="{textAlign:'right'}"></u-input>
+									</u-form-item>
+									<u-form-item label="自主定价系数" v-if="totalitem.namesimple == '紫金财险'"
+										placeholder="请输入数字" label-width="200" :border-bottom='false'
+										style="padding: 0;">
+										<u-input type="number" v-model="totalitem.coefficient"
+											:custom-style="{textAlign:'right'}"></u-input>
+									</u-form-item>
+									<text
+										style="color: #ff9000;font-weight: bold;">{{totalitem.underwritingDescription}}</text>
+								</view>
+								<view v-if="totalitem.namesimple == '国任财险' && totalitem.checked"
+									style="padding: 0 8px;">
+									<text style="color: #FF5600;font-size: 14px"
+										@click="guoRencontributing(totalitem.agreementId)">特约选择</text>
+									<view class="contributing dis f-c"
+										v-for="(guoRenitem,guoRenindex) in guoRenSpecialAgreementVo" :key="guoRenindex">
+										<text>{{guoRenitem.clauses}}</text>
+										<text>{{guoRenitem.clausesContext}}</text>
+									</view>
+								</view>
+								<template class=""
+									v-if="totalitem.namesimple == '中国人寿' && totalitem.checked && totalitem.agreementId ">
+									<view class="accident-style dis f-c ">
+										<view class="dis j-s a-c">
+											<text style="font-weight: bold;font-size: 14px;">意外险</text>
+											<u-switch v-model="totalitem.jychecked" active-color="#0052FF"
+												inactive-color="#eee" size='30'
+												@change="accidentChange($event,totalitem.id,totalitem.cnName,totalindex)"></u-switch>
+										</view>
+										<view class="" v-if="renshouaccidentalDrivingVo.id">
+											<view class=" accident-ins dis a-c j-s" @click="renshouPopupshow=true">
+												<text>{{renshouaccidentalDrivingVo.productName}}</text>
+												<u-icon name="arrow-right" style="color: #999;" size="24"></u-icon>
+											</view>
+											<view class=" dis j-s a-c">
+												<view class="">
+													<text>保费:</text>
+													<text
+														style="color: #ee7000;">¥{{renshouaccidentalDrivingVo.totalPremium*renshouaccidentalDrivingVo.quantity}}.00起</text>
+												</view>
+												<view class="">
+													<text>份数:</text>
+													<u-number-box v-model="renshouaccidentalDrivingVo.quantity" :min="1"
+														:max="1" :disabled-input="true" :input-width="70"
+														:input-height="44" size="26"></u-number-box>
+												</view>
+											</view>
+										</view>
+									</view>
+								</template>
+								<template
+									v-if="totalitem.namesimple == '中煤财险' && totalitem.checked && totalitem.agreementId ">
+									<view class="accident-style dis f-c ">
+										<view class="dis j-s a-c">
+											<text style="font-weight: bold;font-size: 14px;">意外险</text>
+											<u-switch v-model="totalitem.jychecked" active-color="#0052FF"
+												inactive-color="#eee" size='30'
+												@change="accidentChange($event,totalitem.id,totalitem.cnName,totalindex)"></u-switch>
+										</view>
+										<view class="" v-if="zhongmeiaccidentalDrivingVo.rideRiskCode">
+											<view class=" accident-ins dis a-c j-s" @click="zhongmeiPopupshow=true">
+												<text>{{zhongmeiaccidentalDrivingVo.rideRiskName}}</text>
+												<u-icon name="arrow-right" style="color: #999;" size="24"></u-icon>
+											</view>
+											<view class=" dis j-s a-c">
+												<view class="">
+													<text>保费:</text>
+													<text
+														style="color: #ee7000;">¥{{zhongmeiaccidentalDrivingVo.unitPremium*zhongmeiaccidentalDrivingVo.quantity}}</text>
+												</view>
+												<view class="">
+													<text>份数:</text>
+													<u-number-box v-model="zhongmeiaccidentalDrivingVo.quantity"
+														:min="1" :max="Number(zhongmeiaccidentalDrivingVo.maxQuantity)"
+														:disabled-input="true" :input-width="70" :input-height="44"
+														size="26"></u-number-box>
+												</view>
+											</view>
+										</view>
+
+									</view>
+								</template>
+								<template
+									v-if="totalitem.namesimple == '紫金财险' && totalitem.checked && totalitem.agreementId ">
+									<view class="accident-style dis f-c">
+										<view class="dis j-s a-c">
+											<text style="font-weight: bold;font-size: 14px;">意外险</text>
+											<u-switch v-model="totalitem.jychecked" active-color="#0052FF"
+												inactive-color="#eee" size='30'
+												@change="accidentChange($event,totalitem.id,totalitem.cnName,totalindex)"></u-switch>
+										</view>
+										<view class="" v-if="totalitem.jychecked">
+											<text @click="zijinPopupshow=true"
+												style="color: #FF5600;font-size: 14px;">意外险选择</text>
+											<view class=" dis f-c " v-for="(item,index) in zijinaccidentalDrivingVo"
+												:key="index">
+												<view class=" accident-ins dis a-c j-s">
+													<text>{{item.projectName}}</text>
+												</view>
+												<view class=" dis j-s a-c">
+													<view class="">
+														<text>保费:</text>
+														<text
+															style="color: #ee7000;">¥{{item.sumPremium*item.quantity}}.00</text>
+													</view>
+													<view class="">
+														<text>份数:</text>
+														<u-number-box v-model="item.quantity" :min="1"
+															:max="item.maxQuantity"
+															:disabled-input="item.maxQuantity==1?true :false"
+															:input-width="70" :input-height="44"
+															size="26"></u-number-box>
+													</view>
+												</view>
+											</view>
+										</view>
+									</view>
+								</template>
+								<template
+									v-if="totalitem.namesimple == '渤海财险' && totalitem.checked && totalitem.agreementId ">
+									<view class="accident-style dis f-c ">
+										<view class="dis j-s a-c">
+											<text style="font-weight: bold;font-size: 14px;">意外险</text>
+											<u-switch v-model="totalitem.jychecked" active-color="#0052FF"
+												inactive-color="#eee" size='30'
+												@change="accidentChange($event,totalitem.id,totalitem.cnName,totalindex)"></u-switch>
+										</view>
+										<view class="" v-if="bohaiaccidentalDrivingVo.productCode">
+											<view class=" accident-ins dis a-c j-s" @click="bohaiPopupshow=true">
+												<text>{{bohaiaccidentalDrivingVo.packageName}}</text>
+												<u-icon name="arrow-right" style="color: #999;" size="24"></u-icon>
+											</view>
+											<view class=" dis j-s a-c">
+												<view class="">
+													<text>保费:</text>
+													<text
+														style="color: #ee7000;">¥{{bohaiaccidentalDrivingVo.premium*bohaiaccidentalDrivingVo.copies}}.00</text>
+												</view>
+												<view class="">
+													<text>份数:</text>
+													<u-number-box v-model="bohaiaccidentalDrivingVo.copies" :min="1"
+														:max="1" :disabled-input="true" :input-width="70"
+														:input-height="44" size="26"></u-number-box>
+												</view>
+											</view>
+										</view>
+									</view>
+								</template>
+								<template
+									v-if="totalitem.namesimple == '恒邦财险' && totalitem.checked && totalitem.agreementId ">
+									<view class="accident-style dis f-c ">
+										<view class="dis j-s a-c">
+											<text style="font-weight: bold;font-size: 14px;">意外险</text>
+											<u-switch v-model="totalitem.jychecked" active-color="#0052FF"
+												inactive-color="#eee" size='30'
+												@change="accidentChange($event,totalitem.id,totalitem.cnName,totalindex)"></u-switch>
+										</view>
+										<view class="" v-if="hengbangaccidentalDrivingVo.programcode">
+											<view class=" accident-ins dis a-c j-s" @click="hengbangPopupshow=true">
+												<text>{{hengbangaccidentalDrivingVo.programname}}</text>
+												<u-icon name="arrow-right" style="color: #999;" size="24"></u-icon>
+											</view>
+											<view class=" dis j-s a-c">
+												<view class="">
+													<text>保费:</text>
+													<text
+														style="color: #ee7000;">¥{{hengbangaccidentalDrivingVo.sumgrosspremium*hengbangaccidentalDrivingVo.quantity}}.00</text>
+												</view>
+												<view class="">
+													<text>份数:</text>
+													<u-number-box v-model="hengbangaccidentalDrivingVo.quantity"
+														:min="1" :max="1" :disabled-input="true" :input-width="70"
+														:input-height="44" size="26"></u-number-box>
+												</view>
+
+											</view>
+										</view>
+
+									</view>
+								</template>
+								<template
+									v-if="totalitem.namesimple == '太平财险' && totalitem.checked && totalitem.agreementId">
+									<view class="accident-style dis f-c ">
+										<view class="dis j-s a-c">
+											<text style="font-weight: bold;font-size: 14px;">意外险</text>
+											<u-switch v-model="totalitem.jychecked" active-color="#0052FF"
+												inactive-color="#eee" size='30'
+												@change="accidentChange($event,totalitem.id,totalitem.cnName,totalindex)"></u-switch>
+										</view>
+										<view class="" v-if="taipingaccidentalDrivingVo.id">
+											<view class=" accident-ins dis a-c j-s" @click="taipingPopupshow=true">
+												<text>{{taipingaccidentalDrivingVo.rationName}}</text>
+												<u-icon name="arrow-right" style="color: #999;" size="24"></u-icon>
+											</view>
+											<view class=" dis j-s a-c">
+												<view class="">
+													<text>保费:</text>
+													<text
+														style="color: #ee7000;">¥{{taipingaccidentalDrivingVo.price*taipingaccidentalDrivingVo.quantity}}.00</text>
+												</view>
+												<view class="">
+													<text>份数:</text>
+													<u-number-box v-model="taipingaccidentalDrivingVo.quantity" :min="1"
+														:max="taipingaccidentalDrivingVo.maxQuantity"
+														:disabled-input="true" :input-width="70" :input-height="44"
+														size="26"></u-number-box>
+												</view>
+											</view>
+										</view>
+									</view>
+								</template>
+								<template
+									v-if="totalitem.namesimple == '众安财险' && totalitem.checked && totalitem.agreementId">
+									<view class="accident-style dis f-c ">
+										<view class="dis j-s a-c">
+											<text style="font-weight: bold;font-size: 14px;">意外险</text>
+											<u-switch v-model="totalitem.jychecked" active-color="#0052FF"
+												inactive-color="#eee" size='30'
+												@change="accidentChange($event,totalitem.id,totalitem.cnName,totalindex)"></u-switch>
+										</view>
+										<view class="" v-if="zhonganaccidentalDrivingVo.combination">
+											<view class=" accident-ins dis a-c j-s" @click="zhonganPopupshow=true">
+												<text>{{zhonganaccidentalDrivingVo.name}}</text>
+												<u-icon name="arrow-right" style="color: #999;" size="24"></u-icon>
+											</view>
+											<view class=" dis j-s a-c">
+												<text>份数:</text>
+												<u-number-box v-model="zhonganaccidentalDrivingVo.quantity" :min="1"
+													:max="1" :disabled-input="true" :input-width="70" :input-height="44"
+													size="26"></u-number-box>
+											</view>
+										</view>
+									</view>
+								</template>
+								<template
+									v-if="totalitem.namesimple == '华农财险' && totalitem.checked && totalitem.agreementId ">
+									<view class="accident-style dis f-c ">
+										<view class="dis j-s a-c">
+											<text style="font-weight: bold;font-size: 14px;">意外险</text>
+											<u-switch v-model="totalitem.jychecked" active-color="#0052FF"
+												inactive-color="#eee" size='30'
+												@change="accidentChange($event,totalitem.id,totalitem.cnName,totalindex)"></u-switch>
+										</view>
+										<view class="" v-if="huanongaccidentalDrivingVo.planCode">
+											<view class=" accident-ins dis a-c j-s" @click="huanongPopupshow=true">
+												<text>{{huanongaccidentalDrivingVo.planName}}</text>
+												<u-icon name="arrow-right" style="color: #999;" size="24"></u-icon>
+											</view>
+											<view class=" dis j-s a-c">
+												<text>份数:</text>
+												<u-number-box v-model="huanongaccidentalDrivingVo.allQuantity" :min="1"
+													:input-width="70" :input-height="44" size="26"></u-number-box>
+											</view>
+										</view>
+									</view>
+								</template>
+								<template
+									v-if="totalitem.namesimple == '永诚财险' && totalitem.checked && totalitem.agreementId">
+									<view class="accident-style dis f-c ">
+										<view class="dis j-s a-c">
+											<text style="font-weight: bold;font-size: 14px;">意外险</text>
+											<u-switch v-model="totalitem.jychecked" active-color="#0052FF"
+												inactive-color="#eee" size='30'
+												@change="accidentChange($event,totalitem.id,totalitem.cnName,totalindex)"></u-switch>
+										</view>
+										<view class="" v-if="yongchengaccidentalDrivingVo.rideRiskCode">
+											<view class=" accident-ins dis a-c j-s" @click="yongchengPopupshow=true">
+												<text>{{yongchengaccidentalDrivingVo.rideRiskName}}</text>
+												<u-icon name="arrow-right" style="color: #999;" size="26"></u-icon>
+											</view>
+											<view class=" dis j-s a-c">
+												<view class="">
+													<text>保费:</text>
+													<text
+														style="color: #ee7000;">¥{{yongchengaccidentalDrivingVo.premium*yongchengaccidentalDrivingVo.quantity}}</text>
+												</view>
+												<view class="">
+													<text>份数:</text>
+													<u-number-box v-model="yongchengaccidentalDrivingVo.quantity"
+														:min="1" :max="100" :input-width="70" :input-height="44"
+														size="26"></u-number-box>
+												</view>
+											</view>
+										</view>
+									</view>
+								</template>
+								<template
+									v-if="totalitem.namesimple == '安盛天平' && totalitem.checked && totalitem.agreementId">
+									<view class="accident-style dis f-c ">
+										<view class="dis j-s a-c">
+											<text style="font-weight: bold;font-size: 14px;">意外险</text>
+											<u-switch v-model="totalitem.jychecked" active-color="#0052FF"
+												inactive-color="#eee" size='30'
+												@change="accidentChange($event,totalitem.id,totalitem.cnName,totalindex)"></u-switch>
+										</view>
+										<view class="" v-if="anshengaccidentalDrivingVo.planCode">
+											<view class=" accident-ins dis a-c j-s" @click="anshengPopupshow=true">
+												<text>{{anshengaccidentalDrivingVo.planCode}}{{anshengaccidentalDrivingVo.planChineseName}}</text>
+												<u-icon name="arrow-right" style="color: #999;" size="24"></u-icon>
+											</view>
+											<template v-if="anshengInsuranceData.length>0">
+												<view class=" accident-ins dis a-c j-s" @click="anshengPopupshow1=true">
+													<text>{{anshengaccidentalDrivingVo.productCode}}{{anshengaccidentalDrivingVo.productName}}</text>
+													<u-icon name="arrow-right" style="color: #999;" size="24"></u-icon>
+												</view>
+												<view class=" dis j-s a-c">
+													<text>份数:</text>
+													<u-number-box v-model="anshengaccidentalDrivingVo.quantity" :min="1"
+														:max="1" :disabled-input="true" :input-width="70"
+														:input-height="44" size="26"></u-number-box>
+												</view>
+											</template>
+										</view>
+									</view>
+								</template>
+								<template
+									v-if="totalitem.namesimple == '国任财险' && totalitem.checked && totalitem.agreementId">
+									<view class="accident-style dis f-c ">
+										<view class="dis j-s a-c">
+											<text style="font-weight: bold;font-size: 14px;">意外险</text>
+											<u-switch v-model="totalitem.jychecked" active-color="#0052FF"
+												inactive-color="#eee" size='30'
+												@change="accidentChange($event,totalitem.id,totalitem.cnName,totalindex)"></u-switch>
+										</view>
+										<view class="" v-if="guoRenaccidentalDrivingVo.goodsCode">
+											<view class=" accident-ins dis a-c j-s" @click="guorenPopupshow=true">
+												<text>{{guoRenaccidentalDrivingVo.goodDesc}}</text>
+												<u-icon name="arrow-right" style="color: #999;" size="24"></u-icon>
+											</view>
+											<template v-if="guoRenInsuranceData.length>0">
+												<view class=" accident-ins dis a-c j-s" @click="guorenPopupshow1=true">
+													<text>{{guoRenaccidentalDrivingVo.prodCName}}</text>
+													<u-icon name="arrow-right" style="color: #999;" size="24"></u-icon>
+												</view>
+												<view class=" dis j-s a-c">
+													<view class="">
+														<text>保费:</text>
+														<text
+															style="color: #ee7000;">¥{{guoRenaccidentalDrivingVo.premium*guoRenaccidentalDrivingVo.quantity}}.00</text>
+													</view>
+													<view class="">
+														<text>份数:</text>
+														<u-number-box v-model="guoRenaccidentalDrivingVo.quantity"
+															:min="1" :max="Number(guoRenaccidentalDrivingVo.policyNum)"
+															:input-width="70" :input-height="44"
+															size="26"></u-number-box>
+													</view>
+												</view>
+											</template>
+										</view>
+									</view>
+								</template>
+								<template
+									v-if="totalitem.namesimple == '大家财险' && totalitem.checked && totalitem.agreementId">
+									<view class="accident-style dis f-c ">
+										<view class="dis j-s a-c">
+											<text style="font-weight: bold;font-size: 14px;">意外险</text>
+											<u-switch v-model="totalitem.jychecked" active-color="#0052FF"
+												inactive-color="#eee" size='30'
+												@change="accidentChange($event,totalitem.id,totalitem.cnName,totalindex)"></u-switch>
+										</view>
+										<view class="" v-if="dajiaaccidentalDrivingVo.rideRiskCode">
+											<view class=" accident-ins dis a-c j-s" @click="dajiaPopupshow=true">
+												<text>{{dajiaaccidentalDrivingVo.rideRiskName}}</text>
+												<u-icon name="arrow-right" style="color: #999;" size="24"></u-icon>
+											</view>
+											<view class=" dis j-s a-c">
+												<view class="">
+													<text>保费:</text>
+													<text
+														style="color: #ee7000;">¥{{dajiaaccidentalDrivingVo.price*dajiaaccidentalDrivingVo.quantity}}.00</text>
+												</view>
+												<view class="">
+													<text>份数:</text>
+													<u-number-box v-model="dajiaaccidentalDrivingVo.quantity" :min="1"
+														:max="1" :disabled-input="true" :input-width="70"
+														:input-height="44" size="26"></u-number-box>
+												</view>
+
+											</view>
+										</view>
+									</view>
+								</template>
+
+								<view class="Premium dis f-c" v-show="totalitem.quoteCode==200">
+									<view class="dis a-c  f-wrap price">
+										<text
+											v-if="totalitem.result.jqPremium">交强险:¥{{totalitem.result.jqPremium}}</text>
+										<text
+											v-if="totalitem.result.syPremium">商业险:¥{{totalitem.result.syPremium}}</text>
+										<text
+											v-if="totalitem.result.taxAmount">车船税:¥{{totalitem.result.taxAmount}}</text>
+										<text
+											v-if="totalitem.result.jyPremium">驾意险:¥{{totalitem.result.jyPremium}}</text>
+									</view>
+									<view class="dis a-c j-s ">
+										<view class="dis f-c time">
+											<text
+												v-if="totalitem.result.jqPremium">交强险:{{totalitem.result.startDateJq}}~{{totalitem.result.endDateJq}}
+
+											</text>
+											<text
+												v-if="totalitem.result.startDateSy">商业险:{{totalitem.result.startDateSy}}~{{totalitem.result.endDateSy}}
+
+											</text>
+										</view>
+										<image src="/static/image/car-insure/Group30.png" mode=""
+											style="width: 14px;height: 14px;" @click="syncData(totalitem.result)">
+										</image>
+									</view>
+									<view class="dis a-c  f-wrap time">
+										<text v-if="totalitem.namesimple == '永诚财险'">光博分:{{ totalitem.result.ilogPreUdwMess ?
+										totalitem.result.ilogPreUdwMess : '无' }}</text>
+										<text v-else>评分:{{ totalitem.result.ilogPreUdwMess ?
+										totalitem.result.ilogPreUdwMess : '无' }}</text>
+										<text v-if="totalitem.result.accidentInfoStr">出险信息:{{ totalitem.result.accidentInfoStr ?
+										totalitem.result.accidentInfoStr : '无' }}</text>
+										<text v-if="totalitem.result.jqScore">交强类型评分:{{ totalitem.result.jqScore ?
+										totalitem.result.jqScore : '无' }}</text>
+										<text v-if="totalitem.result.syScore">商业类型评分:{{ totalitem.result.syScore ?
+										totalitem.result.syScore : '无' }}</text>
+										<text v-if="totalitem.result.lossRation">总赔付率:{{ totalitem.result.lossRation ?
+										totalitem.result.lossRation : '无' }}</text>
+										<text v-if="totalitem.result.jqLossRation">交强赔付率:{{ totalitem.result.jqLossRation ?
+										totalitem.result.jqLossRation : '无' }}</text>
+										<text v-if="totalitem.result.syLossRation">商业赔付率:{{ totalitem.result.syLossRation ?
+										totalitem.result.syLossRation : '无' }}</text>
+									</view>
+									<view class="dis a-c j-end lastyear">
+										<view class=" left dis j-c a-c" v-if="totalitem.lastYearMsg"
+											@click="YearMsg(totalitem.lastYearMsg,totalitem.namesimple)">
+											<image src="/static/image/car-insure/lastyear.png" mode=""></image>
+											<text>上年信息</text>
+										</view>
+										<view class=" right dis j-c a-c" v-if='totalitem.result.predictInfo'
+											@click="preUnderwriting(totalitem.result.predictInfo)">
+											<image src="/static/image/car-insure/advance.png" mode=""></image>
+											<text>预核保信息</text>
+										</view>
+									</view>
+								</view>
+								<view class="quotebtn dis j-s a-c" v-show="totalitem.quoteCode==200">
+									<view class="dis a-c j-c" @click="bjdpreview(totalitem.result.companyId)"
+										style="background-color: #0052FF;border-bottom-left-radius:6px;color: #fff;">
+										报价单
+									</view>
+									<view class="dis a-c j-c"
+										style="background-color: #E6EEFF;border-bottom-right-radius:6px;color: #0052FF;"
+										@click="querydetial(totalitem.result.companyId)">
+										查看详情
+									</view>
+								</view>
+							</view>
+						</view>
+					</template>
+				</block>
+			</view>
+		</view>
+		<wyb-popup ref="lastYearMsgCI" type="center" mode="size-fixed" height="900" radius="6" :showCloseIcon="true">
+
+			<view class="popupBody">
+				<view class="popHeader d-flex a-center j-center">
+					投保方案建议
+				</view>
+				<scroll-view scroll-top="0" scroll-y="true" class="popupScroll">
+
+				</scroll-view>
+				<view class="popBottom d-flex a-center j-center main-text-color" @tap="adjustPopupInsureSubmit">我知道了
+				</view>
+			</view>
+		</wyb-popup>
+		<!-- 人寿驾意险弹框 -->
+		<u-modal v-model="renshouPopupshow" title="驾意险"
+			:title-style="{fontWeight: 'bold',borderBottom:'1px solid #f2f2f2',padding:'10px'}"
+			:scroll-height="{height: '300px'}" :show-confirm-button="false" mask-close-able>
+			<view class="slot-content">
+				<u-radio-group size="30" wrap>
+					<u-radio style="margin: 4px 0; align-items: flex-start;" label-size="30" shape="square"
+						@change="RSradioChange" v-for="(item, index) in renshouInsuranceData" :key="index"
+						:name="item.id">
+						{{item.productName}}w
+					</u-radio>
+				</u-radio-group>
+			</view>
+		</u-modal>
+
+		<!-- 中煤驾意险弹框 -->
+		<u-modal v-model="zhongmeiPopupshow" title="驾意险"
+			:title-style="{fontWeight: 'bold',borderBottom:'1px solid #f2f2f2',padding:'10px'}"
+			:scroll-height="{height: '300px'}" :show-confirm-button="false" mask-close-able>
+			<view class="slot-content">
+				<u-radio-group size="30" wrap>
+					<u-radio style="margin: 4px 0;" label-size="30" @change="ZMradioChange" shape="square"
+						v-for="(item, index) in zhongmeiInsuranceData" :key="index" :name="item.rideRiskCode">
+						{{item.rideRiskName}}
+					</u-radio>
+				</u-radio-group>
+			</view>
+		</u-modal>
+		<!-- 恒邦驾意险弹框 -->
+		<u-modal v-model="hengbangPopupshow" title="驾意险"
+			:title-style="{fontWeight: 'bold',borderBottom:'1px solid #f2f2f2',padding:'10px'}"
+			:scroll-height="{height: '300px'}" :show-confirm-button="false" mask-close-able>
+			<view class="slot-content">
+				<u-radio-group size="30" wrap>
+					<u-radio style="margin: 4px 0;flex: auto;" label-size="30" @change="HBradioChange" shape="square"
+						v-for="(item, index) in hengbangInsuranceData" :key="index" :name="item.programcode">
+						{{item.programname}}
+					</u-radio>
+				</u-radio-group>
+			</view>
+		</u-modal>
+		<!-- 众安驾意险弹框 -->
+		<u-modal v-model="zhonganPopupshow" title="驾意险"
+			:title-style="{fontWeight: 'bold',borderBottom:'1px solid #f2f2f2',padding:'10px'}"
+			:scroll-height="{height: '300px'}" :show-confirm-button="false" mask-close-able>
+			<view class="slot-content">
+				<u-radio-group size="30" wrap>
+					<u-radio style="margin: 4px 0;flex: auto;" label-size="30" @change="ZAradioChange" shape="square"
+						v-for="(item, index) in zhonganInsuranceData" :key="index" :name="item.combination">
+						{{item.name}}
+					</u-radio>
+				</u-radio-group>
+			</view>
+		</u-modal>
+		<!-- 华农驾意险弹框 -->
+		<u-modal v-model="huanongPopupshow" title="驾意险"
+			:title-style="{fontWeight: 'bold',borderBottom:'1px solid #f2f2f2',padding:'10px'}"
+			:scroll-height="{height: '300px'}" :show-confirm-button="false" mask-close-able>
+			<view class="slot-content">
+				<u-radio-group size="30" wrap>
+					<u-radio style="margin: 4px 0;flex: auto;align-items: flex-start;" label-size="30"
+						@change="HNradioChange" shape="square" v-for="(item, index) in huanongInsuranceData"
+						:key="index" :name="item.planCode">
+						{{item.planName}}
+					</u-radio>
+				</u-radio-group>
+			</view>
+		</u-modal>
+		<u-modal v-model="yongchengPopupshow" title="驾意险"
+			:title-style="{fontWeight: 'bold',borderBottom:'1px solid #f2f2f2',padding:'10px'}"
+			:scroll-height="{height: '300px'}" :show-confirm-button="false" mask-close-able>
+			<view class="slot-content">
+				<u-radio-group size="30" wrap>
+					<u-radio style="margin: 4px 0;flex: auto;align-items: flex-start;" label-size="30"
+						@change="YCradioChange" shape="square" v-for="(item, index) in yongchengInsuranceData"
+						:key="index" :name="item.code">
+						{{item.name}}
+					</u-radio>
+				</u-radio-group>
+			</view>
+		</u-modal>
+		<!-- 安盛驾意险弹框 -->
+		<u-modal v-model="anshengPopupshow" title="驾意险"
+			:title-style="{fontWeight: 'bold',borderBottom:'1px solid #f2f2f2',padding:'10px'}"
+			:scroll-height="{height: '300px'}" :show-confirm-button="false" mask-close-able>
+			<view class="slot-content">
+				<u-radio-group size="30" wrap>
+					<u-radio style="margin: 4px 0;flex: auto; align-items: flex-start;" label-size="30"
+						@change="ASprogrammeradioChange" shape="square" v-for="(item, index) in anshengprogrammeData"
+						:key="index" :name="item.planCode">
+						{{item.planCode}}{{item.planChineseName}}
+					</u-radio>
+				</u-radio-group>
+			</view>
+		</u-modal>
+		<u-modal v-model="anshengPopupshow1" title="驾意险"
+			:title-style="{fontWeight: 'bold',borderBottom:'1px solid #f2f2f2',padding:'10px'}"
+			:scroll-height="{height: '300px'}" :show-confirm-button="false" mask-close-able>
+			<view class="slot-content">
+				<u-radio-group size="30" wrap>
+					<u-radio style="margin: 4px 0;flex: auto; align-items: flex-start;" label-size="30"
+						@change="ASInsuranceradioChange" shape="square" v-for="(item, index) in anshengInsuranceData"
+						:key="index" :name="item.productCode">
+						{{item.productCode}}{{item.productName}}
+					</u-radio>
+				</u-radio-group>
+			</view>
+		</u-modal>
+		<!-- 紫金驾意险弹框 -->
+		<u-popup v-model="zijinPopupshow" mode="bottom" border-radius="10" height="700">
+			<view class="ZJcheckboxGroup dis f-c">
+				<view class="title dis a-c j-c">
+					<text>意外险分类</text>
+				</view>
+				<scroll-view scroll-y="true" class="scolcentent">
+					<u-checkbox-group @change="ZJcheckboxGroupChange">
+						<u-checkbox style="margin: 8px 0;flex: auto;" label-size="28" v-model="item.checked"
+							v-for="(item, index) in zijinInsuranceData" :key="index"
+							:name="item.projectCode">{{item.projectName}}</u-checkbox>
+					</u-checkbox-group>
+				</scroll-view>
+				<view class="operateBtn dis ">
+					<view class="cancel dis a-c j-c" @click="zijinPopupshow=false">
+						取消
+					</view>
+					<view class="confirm dis a-c j-c" @click="zijinPopupshow=false">
+						确定
+					</view>
+				</view>
+			</view>
+		</u-popup>
+		<!-- 国任驾意险弹框 -->
+		<u-modal v-model="guorenPopupshow" title="驾意险"
+			:title-style="{fontWeight: 'bold',borderBottom:'1px solid #f2f2f2',padding:'10px'}"
+			:scroll-height="{height: '300px'}" :show-confirm-button="false" mask-close-able>
+			<view class="slot-content">
+				<u-radio-group size="30" wrap>
+					<u-radio style="margin: 4px 0;flex: auto;" label-size="30" @change="GRprogrammeradioChange"
+						shape="square" v-for="(item, index) in guorenprogrammeData" :key="index" :name="item.goodId">
+						{{item.goodDesc}}
+					</u-radio>
+				</u-radio-group>
+			</view>
+		</u-modal>
+		<u-modal v-model="guorenPopupshow1" title="驾意险"
+			:title-style="{fontWeight: 'bold',borderBottom:'1px solid #f2f2f2',padding:'10px'}"
+			:scroll-height="{height: '300px'}" :show-confirm-button="false" mask-close-able>
+			<view class="slot-content">
+				<u-radio-group size="30" wrap>
+					<u-radio style="margin: 4px 0;flex: auto;" label-size="30" @change="GRInsuranceradioChange"
+						shape="square" v-for="(item, index) in guoRenInsuranceData" :key="index" :name="item.prodCode">
+						{{item.prodCName}}
+					</u-radio>
+				</u-radio-group>
+			</view>
+		</u-modal>
+		<!-- 国任特约弹框 -->
+		<u-modal v-model="guoRencontributingshow" title="特约保险"
+			:title-style="{fontWeight: 'bold',borderBottom:'1px solid #f2f2f2',padding:'10px'}"
+			:scroll-height="{height: '300px'}" :confirm-style="{background:'#E6EEFF',color:'#0052FF'}">
+			<view class="slot-content">
+				<u-checkbox-group @change="guoRencontributingChange" style="display: contents;">
+					<u-checkbox v-model="item.checked" v-for="(item, index) in guoRenSpecialAgreementData" :key="index"
+						:name="item.clauseCode">{{item.clauseCode}}{{item.clauses}}</u-checkbox>
+				</u-checkbox-group>
+			</view>
+		</u-modal>
+		<!-- 大家驾意险弹框 -->
+		<u-modal v-model="dajiaPopupshow" title="驾意险"
+			:title-style="{fontWeight: 'bold',borderBottom:'1px solid #f2f2f2',padding:'10px'}"
+			:scroll-height="{height: '300px'}" :show-confirm-button="false" mask-close-able>
+			<view class="slot-content">
+				<u-radio-group size="30" wrap>
+					<u-radio style="margin: 4px 0;flex: auto;" label-size="30" @change="DJradioChange" shape="square"
+						v-for="(item, index) in dajiaInsuranceData" :key="index" :name="item.id">
+						{{item.productName}}
+					</u-radio>
+				</u-radio-group>
+			</view>
+		</u-modal>
+		<!-- 太平驾意险弹框 -->
+		<u-modal v-model="taipingPopupshow" title="驾意险"
+			:title-style="{fontWeight: 'bold',borderBottom:'1px solid #f2f2f2',padding:'10px'}"
+			:scroll-height="{height: '300px'}" :show-confirm-button="false" mask-close-able>
+			<view class="slot-content">
+				<u-radio-group size="30" wrap>
+					<u-radio style="margin: 4px 0;flex: auto;align-items: flex-start;" label-size="30"
+						@change="TPradioChange" shape="square" v-for="(item, index) in taipingInsuranceData"
+						:key="index" :name="item.id">
+						{{item.rationName}}
+					</u-radio>
+				</u-radio-group>
+			</view>
+		</u-modal>
+		<!-- 渤海驾意险弹框 -->
+		<u-modal v-model="bohaiPopupshow" title="驾意险"
+			:title-style="{fontWeight: 'bold',borderBottom:'1px solid #f2f2f2',padding:'10px'}"
+			:scroll-height="{height: '300px'}" :show-confirm-button="false" mask-close-able>
+			<view class="slot-content">
+				<u-radio-group size="30" style="" wrap>
+					<u-radio style="margin: 4px 0;align-items: flex-start;" label-size="30" @change="BHradioChange"
+						shape="square" v-for="(item, index) in bohaiInsuranceData" :key="index"
+						:name="item.productCode">
+						{{item.packageName}}
+					</u-radio>
+				</u-radio-group>
+			</view>
+		</u-modal>
+		<u-modal v-model="preUnderwritingshow" width="72%" title="预核保信息" :title-style="{fontWeight: 'bold'}">
+			<view class="" style="padding: 10px;overflow-y:auto;height: 400px;">
+				<view v-for="(item,index) in RSpreUnderwritingList" :key="index">
+					<view class="dis f-c ">
+						<text style="font-weight: bold;">审核意见</text>
+						<text style="font-size: 12px;">{{item.opinion}}</text>
+					</view>
+					<view class="dis f-c">
+						<text style="font-weight: bold;">备注</text>
+						<text style="font-size: 12px;">{{item.description}}</text>
+					</view>
+				</view>
+			</view>
+		</u-modal>
+		<u-modal v-model="Generateshow" content="是否生成新的订单?" :content-style="{fontWeight: 'bold'}"
+			:show-cancel-button="true" :show-title="false" :confirm-style="{color: '#ff9000'}"
+			@confirm="GenerateModalConfirm"></u-modal>
+		<u-modal v-model="GuidedPopShow"
+			:title-style="{fontWeight: 'bold',borderBottom:'1px solid #f2f2f2',padding:'10px'}"
+			:show-cancel-button="true"
+			:confirm-style="{background:'#0052FF',color:'#fff',height:'40px',lineHeight:'40px'}"
+			:cancel-style="{background:'#E6EEFF',color:'#0052FF',height:'40px',lineHeight:'40px'}"
+			@confirm="Guidedconfirm">
+			<view class="slot-content dis j-c a-c font-weight" style="color: #232832;">
+				<text>将跳转至保险配置页面添加或修改商业险</text>
+			</view>
+		</u-modal>
+		<view class="footer-btn">
+			<u-button type="primary" style="background:#0052FF;" @tap="toNext">保费计算</u-button>
+		</view>
+	</view>
+</template>
+<script>
+	import {
+		mapState
+	} from "vuex"
+	import {
+		delEmptyQueryNodes
+	} from '@/plugins/utils';
+	import wybPopup from '@/components/common/wyb-popup/wyb-popup.vue'
+	import lsLoading from '@/components/common/ls-loading/ls-loading.vue';
+	export default {
+		components: {
+			wybPopup,
+			lsLoading
+		},
+		computed: {
+			...mapState(['userInfo']),
+			getHeight() {
+				let height = uni.getSystemInfoSync().windowHeight;
+				return `minHeight: ${height}px;`;
+			}
+		},
+		// 监听导航栏的按钮
+		onNavigationBarButtonTap(e) {
+			if (e.index == 0) {
+				this.navigate({
+					url: '/pages/index/index'
+				}, "switchTab", true);
+			}
+		},
+		data() {
+			return {
+				vehicleTypeList: [{
+						label: '过户车',
+						checked: false,
+					},
+					{
+						label: '商业险过户',
+						checked: false,
+					},
+					{
+						label: '脱保',
+						checked: false,
+					},
+					{
+						label: '二手车',
+						checked: false,
+					},
+				],
+				shadowStyle: {
+					backgroundImage: "none",
+					paddingTop: "0",
+					marginTop: "20rpx"
+				},
+				Selectchecked: false,
+				params: {
+					year: true, //年
+					month: true, //月
+					day: true, //日
+					hour: true, //时
+					minute: true, //分
+					second: true, //秒
+				},
+				params1: {
+					year: true, //年
+					month: true, //月
+					day: true, //日
+					hour: false, //时
+					minute: false, //分
+					second: false, //秒
+				},
+				GuidedPopShow: false, //引导弹窗
+				preUnderwritingshow: false, //预核保信息
+				Generateshow: false,
+				zhongmeiPopupshow: false,
+				zhongmeiInsuranceData: [], //中煤意外险list
+				zhongmeiaccidentalDrivingVo: [], //中煤意外险
+				zijinPopupshow: false,
+				zijinInsuranceData: [], //紫金意外险list
+				zijinaccidentalDrivingVo: [], //紫金意外险
+				huanongPopupshow: false,
+				huanongInsuranceData: [], //华农意外险list
+				huanongaccidentalDrivingVo: [], //华农意外险
+				taipingPopupshow: false,
+				taipingInsuranceData: [], //太平意外险list
+				taipingaccidentalDrivingVo: [], //太平意外险
+				anshengPopupshow: false,
+				anshengPopupshow1: false,
+				anshengprogrammeData: [],
+				anshengInsuranceData: [], //安盛意外险list
+				anshengaccidentalDrivingVo: {}, //安盛意外险
+				guorenPopupshow: false,
+				guorenPopupshow1: false,
+				guorenprogrammeData: [],
+				guoRenInsuranceData: [], //国任意外险list
+				guoRenaccidentalDrivingVo: {}, //国任意外险
+				guoRencontributingshow: false, //国任特约
+				dajiaPopupshow: false,
+				dajiaInsuranceData: [], //大家意外险list
+				dajiaaccidentalDrivingVo: {}, //大家意外险
+				guoRenSpecialAgreementData: [],
+				guoRenSpecialAgreementVo: [],
+				yongchengPopupshow: false,
+				yongchengInsuranceData: [], //永诚意外险list
+				yongchengaccidentalDrivingVo: {}, //永诚意外险
+				zhonganPopupshow: false,
+				zhonganInsuranceData: [], //-众安意外险list
+				zhonganaccidentalDrivingVo: {}, //众安意外险
+				hengbangPopupshow: false,
+				hengbangInsuranceData: [], //-恒邦意外险list
+				hengbangaccidentalDrivingVo: {}, //恒邦意外险
+				renshouPopupshow: false,
+				renshouInsuranceData: [], //-人寿意外险list
+				renshouaccidentalDrivingVo: {}, //人寿意外险
+				bohaiPopupshow: false,
+				bohaiInsuranceData: [], //渤海意外险list
+				bohaiaccidentalDrivingVo: {}, //渤海意外险
+				jqstartShow: false, //交强起保日期
+				jqendShow: false, //交强终保日期
+				systartShow: false, //商业起保日期
+				syendShow: false, //商业终保日期
+				transferDateShow: false,
+				content: ``,
+				vehicleAndVesselTaxForm: {}, //车船税信息
+				agreementList: [],
+				zmDrivingForm: {}, //中煤驾意险
+				zjaccidentalDrivingVo: [], //紫金驾意险
+				carInfoPositiveList: [], //车辆影像
+				ownerInfoPositiveList: [], //车主影像
+				policyHolderInfoPositiveList: [], //投保人影像
+				insuredPersonInfoPositiveList: [], //被保人影像
+				orderno: "", //订单号
+				show1: false, //华农
+				animation: 'twinkle', //动画类型
+				jqjishi: false,
+				syjishi: false,
+				timeArray: [],
+				jqTimeIndex: 0,
+				syTimeIndex: 0,
+				time1: "",
+				time2: "",
+				carTypeList: [], //车辆品牌型号列表
+				msg: "",
+				quoteno: "", //报价编号
+				hasKindCodeA: false, //是否含有车损险
+				carInfo: {}, //车辆信息
+				ownerInfo: {}, //车主信息
+				policyHolderInfo: {}, //投保人信息
+				insuredPersonInfo: {}, //被保人信息
+				riskList: [], //险种大类信息
+				kindList: [], //商业险险别
+				showCarInfo: false, //控制车辆信息显示
+				showInsureDate: true, //控制险种时间显示
+				jqchecked: false,
+				sychecked: false,
+				jqstartDate: "", //交强险日期
+				jqendDate: " ", //交强险日期
+				systartDate: "", //商业险日期
+				syendDate: "", //商业险日期
+				insureList: [{
+						amount: "0",
+						amountDesc: "投保",
+						amtList: [{
+							"label": "不投保",
+
+							"value": "0"
+						}, {
+							"label": "投保",
+							"value": "1"
+						}],
+						kindCode: "A",
+						isMainRisk: true,
+						kindName: "机动车损失险",
+						desc: "保险期间内,被保险人或被保险机动车驾驶人在使用被保险机动车过程中,因自然灾害、意外事故、机动车被盗窃、抢劫、抢夺等情况(详见保险条款)造成被保险机动车直接损失,且不属于免除保险人责任的范围,保险人依照本保险合同的约定负责赔偿的险种。"
+					},
+					{
+						amount: "0",
+						amountDesc: "不投保",
+						amtList: [{
+								label: "不投保",
+								value: "0"
+							},
+							{
+								label: "50万",
+								value: "500000"
+							},
+							{
+								label: "100万",
+								value: "1000000"
+							},
+							{
+								label: "150万",
+								value: "1500000"
+							},
+							{
+								label: "200万",
+								value: "2000000"
+							},
+							{
+								label: "250万",
+								value: "2500000"
+							},
+							{
+								label: "300万",
+								value: "3000000"
+							},
+							{
+								label: "500万",
+								value: "5000000"
+							},
+							{
+								label: "1000万",
+								value: "10000000"
+							}
+						],
+						kindCode: "B",
+						isMainRisk: true,
+						kindName: "第三者责任险",
+						desc: "保险期间内,被保险人或其允许的驾驶人在使用被保险机动车过程中发生意外事故,致使第三者遭受人身伤亡或财产直接损毁,依法应当对第三者承担的损害赔偿责任,且不属于免除保险人责任的范围,保险人依照本保险合同的约定,对于超过机动车交通事故责任强制保险各分项赔偿限额的部分负责赔偿的险种。"
+					},
+					{
+						amount: "0",
+						amountDesc: "不投保",
+						amtList: [{
+								label: "不投保",
+								value: "0"
+							},
+							{
+								label: "1万",
+								value: "10000"
+							},
+							{
+								label: "2万",
+								value: "20000"
+							},
+							{
+								label: "3万",
+								value: "30000"
+							},
+							{
+								label: "4万",
+								value: "40000"
+							},
+							{
+								label: "5万",
+								value: "50000"
+							},
+							{
+								label: "6万",
+								value: "60000"
+							},
+							{
+								label: "7万",
+								value: "70000"
+							},
+							{
+								label: "8万",
+								value: "80000"
+							},
+							{
+								label: "9万",
+								value: "90000"
+							},
+							{
+								label: "10万",
+								value: "100000"
+							},
+							{
+								label: "15万",
+								value: "150000"
+							},
+							{
+								label: "20万",
+								value: "200000"
+							},
+							{
+								label: "25万",
+								value: "250000"
+							},
+							{
+								label: "30万",
+								value: "300000"
+							},
+							{
+								label: "35万",
+								value: "350000"
+							},
+							{
+								label: "40万",
+								value: "400000"
+							},
+							{
+								label: "45万",
+								value: "450000"
+							},
+							{
+								label: "50万",
+								value: "500000"
+							},
+
+						],
+						kindCode: "D3",
+						isMainRisk: true,
+						kindName: "司机责任险",
+						desc: "保险期间内,被保险人或其允许的驾驶人在使用被保险机动车过程中发生意外事故,致使车上人员遭受人身伤亡,且不属于免除保险人责任的范围,依法应当对车上人员承担的损害赔偿责任,保险人依照本保险合同的约定负责赔偿的险种。"
+					},
+					{
+						amount: "0",
+						amountDesc: "不投保",
+						amtList: [{
+							"label": "不投保",
+							"value": "0"
+						}, {
+							"label": "1万",
+							"value": "10000"
+						}, {
+							"label": "2万",
+							"value": "20000"
+						}, {
+							"label": "4万",
+							"value": "40000"
+						}, {
+							"label": "5万",
+							"value": "50000"
+						}, {
+							"label": "10万",
+							"value": "100000"
+						}, {
+							"label": "15万",
+							"value": "150000"
+						}, {
+							"label": "20万",
+							"value": "200000"
+						}],
+						kindCode: "D4",
+						isMainRisk: true,
+						kindName: "乘客责任险",
+						desc: "保险期间内,被保险人或其允许的驾驶人在使用被保险机动车过程中发生意外事故,致使车上人员遭受人身伤亡,且不属于免除保险人责任的范围,依法应当对车上人员承担的损害赔偿责任,保险人依照本保险合同的约定负责赔偿的险种。"
+					},
+					{
+						amount: "0",
+						amountDesc: "不投保",
+						amtList: [{
+							"label": "不投保",
+							"value": "0"
+						}, {
+							"label": "2000",
+							"value": "2000"
+						}, {
+							"label": "5000",
+							"value": "5000"
+						}, {
+							"label": "1万",
+							"value": "10000"
+						}],
+						desc: "保险期间内,被保险机动车在被保险人或被保险机动车驾驶人使用过程中,发生无明显碰撞痕迹的车身划痕损失,保险人按照保险合同约定负责赔偿的险种",
+						isMainRisk: true,
+						kindCode: "L",
+						kindName: "车身划痕险",
+						mainRiskCodeList: "A"
+					},
+					{
+						amount: "0",
+						amountDesc: "不投保",
+						amtList: [{
+							"label": "不投保",
+							"value": "0"
+						}, {
+							"label": "5%",
+							"value": "5"
+						}, {
+							"label": "10%",
+							"value": "10"
+						}, {
+							"label": "15%",
+							"value": "15"
+						}, {
+							"label": "20%",
+							"value": "20"
+						}],
+						desc: "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
+						isMainRisk: true,
+						kindCode: "MJ1",
+						kindName: "绝对免赔率特约险(车损)",
+						mainRiskCodeList: "A"
+					},
+					{
+						amount: "0",
+						amountDesc: "不投保",
+						amtList: [{
+							"label": "不投保",
+							"value": "0"
+						}, {
+							"label": "5%",
+							"value": "5"
+						}, {
+							"label": "10%",
+							"value": "10"
+						}, {
+							"label": "15%",
+							"value": "15"
+						}, {
+							"label": "20%",
+							"value": "20"
+						}],
+						desc: "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
+						isMainRisk: true,
+						kindCode: "MJ2",
+						kindName: "绝对免赔率特约险(三者)",
+						mainRiskCodeList: "B"
+					},
+					{
+						amount: "0",
+						amountDesc: "不投保",
+						amtList: [{
+							"label": "不投保",
+							"value": "0"
+						}, {
+							"label": "5%",
+							"value": "5"
+						}, {
+							"label": "10%",
+							"value": "10"
+						}, {
+							"label": "15%",
+							"value": "15"
+						}, {
+							"label": "20%",
+							"value": "20"
+						}],
+						desc: "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
+						isMainRisk: true,
+						kindCode: "MJ3",
+						kindName: "绝对免赔率特约险(司机)",
+						mainRiskCodeList: "D3"
+					},
+					{
+						amount: "0",
+						amountDesc: "不投保",
+						amtList: [{
+							"label": "不投保",
+							"value": "0"
+						}, {
+							"label": "5%",
+							"value": "5"
+						}, {
+							"label": "10%",
+							"value": "10"
+						}, {
+							"label": "15%",
+							"value": "15"
+						}, {
+							"label": "20%",
+							"value": "20"
+						}],
+						desc: "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
+						isMainRisk: true,
+						kindCode: "MJ4",
+						kindName: "绝对免赔率特约险(乘客)",
+						mainRiskCodeList: "D4"
+					},
+					{
+						amount: "0",
+						amountDesc: "不投保",
+						coveragePremium: 0,
+						amtList: [{
+								label: "不投保",
+								value: "0"
+							},
+							{
+								label: "1万",
+								value: "10000"
+							},
+							{
+								label: "2万",
+								value: "20000"
+							},
+							{
+								label: "4万",
+								value: "40000"
+							},
+							{
+								label: "5万",
+								value: "50000"
+							},
+							{
+								label: "8万",
+								value: "80000"
+							},
+							{
+								label: "10万",
+								value: "100000"
+							},
+							{
+								label: "20万",
+								value: "200000"
+							},
+							{
+								label: "30万",
+								value: "300000"
+							},
+							{
+								label: "50万",
+								value: "500000"
+							},
+							{
+								label: "100万",
+								value: "1000000"
+							},
+							{
+								label: "200万",
+								value: "2000000"
+							},
+							{
+								label: "300万",
+								value: "3000000"
+							},
+						],
+						kindCode: "SY_FJ_YBW1",
+						isMainRisk: true,
+						kindName: "附加医保-三者",
+						desc: "附加医保外医疗费用责任险(机动车第三者责任保险)"
+					},
+					{
+						amount: "0",
+						amountDesc: "不投保",
+						coveragePremium: 0,
+						amtList: [{
+								label: "不投保",
+								value: "0"
+							},
+							{
+								label: "1万",
+								value: "10000"
+							},
+							{
+								label: "2万",
+								value: "20000"
+							},
+							{
+								label: "5万",
+								value: "50000"
+							},
+							{
+								label: "10万",
+								value: "100000"
+							}
+						],
+						kindCode: "SY_FJ_YBW2",
+						isMainRisk: true,
+						kindName: "附加医保-座位险(乘客)",
+						desc: "附加医保外医疗费用责任险(机动车第三者责任保险)"
+					},
+					{
+						amount: "0",
+						amountDesc: "不投保",
+						coveragePremium: 0,
+						amtList: [{
+								label: "不投保",
+								value: "0"
+							},
+							{
+								label: "1万",
+								value: "10000"
+							},
+							{
+								label: "2万",
+								value: "20000"
+							},
+							{
+								label: "5万",
+								value: "50000"
+							},
+							{
+								label: "10万",
+								value: "100000"
+							}
+						],
+						kindCode: "SY_FJ_YBW3",
+						isMainRisk: true,
+						kindName: "附加医保-座位险(司机)",
+						desc: "附加医保外医疗费用责任险(机动车第三者责任保险)"
+					},
+					{
+						amount: "0",
+						amountDesc: "不投保",
+						coveragePremium: 0,
+						amtList: [{
+								label: "不投保",
+								value: "0"
+							},
+							{
+								label: "2次",
+								value: "2"
+							},
+							{
+								label: "7次",
+								value: "7"
+							},
+							{
+								label: "12次",
+								value: "12"
+							},
+							{
+								label: "17次",
+								value: "17"
+							},
+							{
+								label: "22次",
+								value: "22"
+							},
+						],
+						kindCode: "TY1",
+						isMainRisk: true,
+						kindName: "道路救援服务特约条款",
+						desc: "道路救援服务特约条款是指在保险期内,被保险机动车在使用过程中发生故障而丧失行驶能力时,保险人根据被保险人的请求,向被保险人提供道路救援服务。"
+					},
+					{
+						amount: 0,
+						amountDesc: "不投保",
+						kindCode: "TY2",
+						isMainRisk: true,
+						kindName: "车辆安全检测特约条款",
+						desc: "安全检测特约条款是指保险期间内,为保障车辆安全运行,保险人或其受托人根据被保险人请求,为被保险机动车提供车辆安全检测服务。"
+					},
+					{
+						amount: 0,
+						amountDesc: "不投保",
+						kindCode: "TY3",
+						isMainRisk: true,
+						kindName: "代为驾驶服务特约条款",
+						desc: "代为驾驶特约条款是指保险期间内,在被保险人或其允许的驾驶人因饮酒、服用药物等原因无法驾驶或存在重大安全驾驶隐患时,提供单程30公里以内的短途代驾服务。"
+					},
+					{
+						amount: 0,
+						amountDesc: "不投保",
+						kindCode: "TY4",
+						isMainRisk: true,
+						kindName: "代为送检服务特约条款",
+						desc: "代为送检特约条款是指保险期间内,由保险人或其受托人代替车辆所有人进行车辆送检。"
+					},
+					{
+						amount: "0",
+						amountDesc: "不投保",
+						amtList: [{
+								label: "不投保",
+								value: "0"
+							},
+							{
+								label: "50万",
+								value: "500000"
+							},
+							{
+								label: "100万",
+								value: "1000000"
+							},
+							{
+								label: "150万",
+								value: "1500000"
+							},
+							{
+								label: "200万",
+								value: "2000000"
+							},
+							{
+								label: "250万",
+								value: "2500000"
+							},
+							{
+								label: "300万",
+								value: "3000000"
+							},
+							{
+								label: "500万",
+								value: "5000000"
+							},
+							{
+								label: "1000万",
+								value: "10000000"
+							}
+						],
+						desc: "保险期间内,被保险人或其允许的驾驶人在法定节假日期间使用被保险机动车发生机动车第三者责任保险范围内的事故,并经公安部门或保险人查勘确认的,被保险机动车第三者责任保险所适用的责任限额在保险单载明的基础上增加一倍的险种",
+						isMainRisk: true,
+						kindCode: "BD",
+						kindName: "法定节假日限额翻倍险",
+						mainRiskCodeList: "B"
+					}
+
+				],
+				accidentForm: {
+					fen: "1"
+				}, //意外险内容
+				//永诚转保确认码
+				cqryCdeJq: "",
+				cqryCdeSy: "",
+				renewalCodeJq: "", //交强确认码
+				renewalCodeSy: "", //商业确认码
+				//-----------------
+				totalCompanyList: [], //保险公司列表
+				insAreaCompanyEditingDtos: [],
+				notStartedQuote: true, //未开始报价(true表示未开始报价,false表示已经报价结束)
+				quoteCompanyCount: 0,
+				ycdrivingJoyCoverage: {},
+				RSpreUnderwritingList: [], //人寿预核保信息
+			}
+		},
+		async onLoad(params) {
+			if (params.orderno) {
+				let res = await this.$http.post('/insurance/order/revise', {
+					orderNo: params.orderno
+				});
+				this.carInfo = res.data.carinfo; //车辆信息
+				this.ownerInfo = res.data.ownerinfo; //车主信息
+				this.policyHolderInfo = res.data.applyinfo; //投保人信息
+				this.insuredPersonInfo = res.data.insureinfo; //被保人信息
+				this.riskList = res.data.risk; //险种大类
+				this.kindList = res.data.king; //商业险险别
+				this.vehicleAndVesselTaxForm = res.data.vehicleAndVesselTax; //车船税信息
+				this.orderno = res.data.orderno;
+				this.quoteno = res.data.quoteno;
+				this.imageEcho(res.data.quoteno) // 影像获取完毕
+				this.insAreaCompanyEditingDtos = res.data.insAreaCompanyEditingDtos;
+				if (this.riskList.length > 0) {
+					for (let i = 0; i < this.riskList.length; i++) {
+						if (this.riskList[i].riskCode == '0507') {
+							this.jqchecked = true;
+							this.jqstartDate = this.riskList[i].startDate;
+							this.jqendDate = this.riskList[i].endDate;
+						}
+						if (this.riskList[i].riskCode == '0510') {
+							this.sychecked = true;
+							this.systartDate = this.riskList[i].startDate;
+							this.syendDate = this.riskList[i].endDate;
+							this.kindList.map(ele1 => {
+								this.insureList.map(ele2 => {
+									if (ele2.kindCode == ele1.kindCode) {
+										switch (ele1.kindCode) {
+											case 'D4':
+											case 'SY_FJ_YBW2':
+												ele2.amount = ele1.unitAmount;
+												break;
+											case "MJ1":
+											case "MJ2":
+											case "MJ3":
+											case "MJ4":
+												ele2.amount = ele1.deductibleRate;
+												break;
+											case "TY1":
+											case "TY2":
+											case "TY3":
+											case "TY4":
+												ele2.amount = ele1.serviceTimes;
+												ele2.amountDesc = ele1.serviceTimes +
+													'次'
+												break;
+											default:
+												ele2.amount = ele1.amount;
+										}
+									}
+								})
+							})
+
+						}
+					}
+				}
+			} else {
+				const eventChannel = this.getOpenerEventChannel()
+				// 监听acceptData事件,获取上一页面通过eventChannel传送到当前页面的数据
+				eventChannel.on('acceptData', async (data) => {
+					console.log(data);
+					this.carInfo = data.carInfo; //车辆信息
+					this.ownerInfo = data.ownerInfo; //车主信息
+					this.policyHolderInfo = data.policyHolderInfo; //投保人信息
+					this.insuredPersonInfo = data.insuredPersonInfo; //被保人信息
+					this.riskList = data.riskList; //险种大类
+					this.kindList = data.kindList; //商业险险别
+					this.vehicleAndVesselTaxForm = data.vehicleAndVesselTaxForm; //车船税信息
+					this.carInfoPositiveList = data.carInfoPositiveList; //车辆
+					this.ownerInfoPositiveList = data.ownerInfoPositiveList; //车主
+					this.policyHolderInfoPositiveList = data.policyHolderInfoPositiveList; //投保
+					this.insuredPersonInfoPositiveList = data.insuredPersonInfoPositiveList; //被保人
+					if (this.riskList.length > 0) {
+						for (let i = 0; i < this.riskList.length; i++) {
+							if (this.riskList[i].riskCode == '0507') {
+								this.jqchecked = true;
+								this.jqstartDate = this.riskList[i].startDate;
+								this.jqendDate = this.riskList[i].endDate;
+							}
+							if (this.riskList[i].riskCode == '0510') {
+								this.sychecked = true;
+								this.systartDate = this.riskList[i].startDate;
+								this.syendDate = this.riskList[i].endDate;
+								this.kindList.map(ele1 => {
+									this.insureList.map(ele2 => {
+										if (ele2.kindCode == ele1.kindCode) {
+											switch (ele1.kindCode) {
+												case 'D4':
+												case 'SY_FJ_YBW2':
+													ele2.amount = ele1.unitAmount;
+													break;
+												case "MJ1":
+												case "MJ2":
+												case "MJ3":
+												case "MJ4":
+													ele2.amount = ele1.deductibleRate;
+													break;
+												case "TY1":
+												case "TY2":
+												case "TY3":
+												case "TY4":
+													ele2.amount = ele1.serviceTimes;
+													ele2.amountDesc = ele1.serviceTimes +
+														'次'
+													break;
+												default:
+													ele2.amount = ele1.amount;
+											}
+										}
+									})
+								})
+
+							}
+						}
+					}
+				})
+			}
+			const storage = uni.getStorageSync('historyInfo');
+			if (storage) {
+				Object.keys(storage).forEach(key => {
+					this[key] = storage[key]
+				})
+			} else {
+				this.commpanyList();
+
+			}
+
+		},
+		onHide() {
+			let historyInfo = {
+				quoteno: this.quoteno,
+				orderno: this.orderno,
+				totalCompanyList: this.totalCompanyList,
+				zijinInsuranceData: this.zijinInsuranceData, //紫金意外险list
+				zijinaccidentalDrivingVo: this.zijinaccidentalDrivingVo, //紫金意外险
+				anshengprogrammeData: this.anshengprogrammeData,
+				anshengInsuranceData: this.anshengInsuranceData, //安盛意外险list
+				anshengaccidentalDrivingVo: this.anshengaccidentalDrivingVo, //安盛意外险
+				yongchengInsuranceData: this.yongchengInsuranceData, //永诚意外险list
+				yongchengaccidentalDrivingVo: this.yongchengaccidentalDrivingVo, //永诚意外险
+				zhonganInsuranceData: this.zhonganInsuranceData, //-众安意外险list
+				zhonganaccidentalDrivingVo: this.zhonganaccidentalDrivingVo, //众安意外险
+				hengbangInsuranceData: this.hengbangInsuranceData, //-恒邦意外险list
+				hengbangaccidentalDrivingVo: this.hengbangaccidentalDrivingVo, //恒邦意外险
+				renshouInsuranceData: this.renshouInsuranceData, //-人寿意外险list
+				renshouaccidentalDrivingVo: this.renshouaccidentalDrivingVo, //人寿意外险
+			}
+			let res = delEmptyQueryNodes(historyInfo);
+			uni.setStorageSync('historyInfo', res);
+			uni.removeStorageSync("companyId")
+		},
+		methods: {
+			Guidedconfirm() {
+				this.toInsureItems();
+			},
+			jqImmediate(value) {
+				if (value) {
+					this.riskList.push({
+						amount: 0,
+						endDate: this.jqendDate,
+						instantFlag: "0",
+						premium: 0,
+						riskCode: "0507",
+						startDate: this.jqstartDate,
+					})
+				} else {
+					let list = this.riskList.filter(item => item.riskCode !== "0507");
+					this.riskList = list;
+				}
+			},
+			syImmediate(value) {
+				if (value) {
+					this.GuidedPopShow = true;
+				}
+			},
+			immediatelyClick(index) {
+				this.vehicleTypeList[index].checked = !this.vehicleTypeList[index].checked;
+				let checked = this.vehicleTypeList[0].checked;
+				if (checked) {
+					this.carInfo.transferDate = this.carInfo.issueDate;
+				} else {
+					this.carInfo.transferDate = "";
+				}
+			},
+			preUnderwriting(list) {
+				this.RSpreUnderwritingList = list;
+				this.preUnderwritingshow = true;
+			},
+			// SelectAll(e) {
+			// 	this.totalCompanyList.map((ele, index) => {
+			// 		e.value ? ele.checked = true : ele.checked = false;
+			// 		this.checkboxChange(e, ele.id, ele.cnName, index)
+
+			// 	})
+			// },
+			jqstartconfirm(e) {
+				this.jqstartDate = e.year + '-' + e.month + '-' + e.day + ' ' + e.hour + ':' + e.minute + ':' + e.second;
+				this.jqendDate = this.oneYearPast(this.jqstartDate)
+
+			},
+			systartconfirm(e) {
+				this.systartDate = e.year + '-' + e.month + '-' + e.day + ' ' + e.hour + ':' + e.minute + ':' + e.second;
+				this.syendDate = this.oneYearPast(this.systartDate)
+			},
+			transferconfirm(e) {
+				this.carInfo.transferDate = e.year + '-' + e.month + '-' + e.day;
+			},
+			//影像查询
+			async imageEcho(quotenos) {
+				let imgres = await this.$http.get('/ins/taskImage/findByQuoteNo?quoteNo=' + quotenos);
+				if (imgres.code == "200") {
+					Object.keys(imgres.data).forEach((keys) => {
+						if (imgres.data[keys].url) {
+							imgres.data[keys].url = this.$base.baseUrl + imgres.data[keys].url;
+							switch (keys) {
+								case 'C01':
+									this.carInfoPositiveList.push({
+										imageId: imgres.data[keys].imageId,
+										imageType: imgres.data[keys].imageType,
+									})
+									break;
+								case 'D01':
+									this.carInfoPositiveList.push({
+										imageId: imgres.data[keys].imageId,
+										imageType: imgres.data[keys].imageType,
+									})
+									break;
+								case 'C02':
+									this.ownerInfoPositiveList.push({
+										imageId: imgres.data[keys].imageId,
+										imageType: imgres.data[keys].imageType,
+									});
+									break;
+								case 'D02':
+									this.ownerInfoPositiveList.push({
+										imageId: imgres.data[keys].imageId,
+										imageType: imgres.data[keys].imageType,
+									});
+									break;
+								case 'C03':
+									this.policyHolderInfoPositiveList.push({
+										imageId: imgres.data[keys].imageId,
+										imageType: imgres.data[keys].imageType,
+									});
+									break;
+								case 'D03':
+									this.policyHolderInfoPositiveList.push({
+										imageId: imgres.data[keys].imageId,
+										imageType: imgres.data[keys].imageType,
+									});
+									break;
+								case 'C04':
+									this.insuredPersonInfoPositiveList.push({
+										imageId: imgres.data[keys].imageId,
+										imageType: imgres.data[keys].imageType,
+									});
+									break;
+								case 'D04':
+									this.insuredPersonInfoPositiveList.push({
+										imageId: imgres.data[keys].imageId,
+										imageType: imgres.data[keys].imageType,
+									});
+									break;
+								default:
+									break;
+							}
+						}
+					});
+				}
+			},
+			//查看详情
+			querydetial(id) {
+				this.navigate({
+						url: "/pages/carInsure2/quoteDetail?companyId=" + id
+					},
+					"navigateTo", true);
+			},
+			//报价单
+			bjdpreview(id) {
+				let pro = this.userInfo.sysUser.managementSource;
+				if (pro == "3") {
+					uni.navigateTo({
+						url: "/pages/orders1/quotation1?companyId=" + id
+					})
+				} else {
+					uni.navigateTo({
+						url: "/pages/orders1/quotation?companyId=" + id
+					})
+				}
+
+			},
+			//选择协议
+			selectConfirm(e, index) {
+				this.totalCompanyList[index].agreementId = e[0].value;
+				this.totalCompanyList[index].agreementName = e[0].label;
+				this.totalCompanyList[index].apiType = e[0].extra;
+			},
+			//国任特约
+			async guoRencontributing(id) {
+				let guoRen = await this.$http.post('/api/guoRen/queryClauseData', {
+					agreementId: id,
+				})
+				if (guoRen.code == '200') {
+					this.guoRenSpecialAgreementData = guoRen.data;
+					this.guoRencontributingshow = true;
+				}
+			},
+			guoRencontributingChange(param) {
+				this.guoRenSpecialAgreementVo = [];
+				param.map(val => {
+					let list = this.guoRenSpecialAgreementData.find(item => item.clauseCode == val)
+					this.guoRenSpecialAgreementVo.push({
+						clauseCode: list.clauseCode,
+						clauses: list.clauses,
+						clausesContext: list.clausesContext,
+						riskCode: list.riskCode,
+						riskName: list.riskName,
+					})
+				})
+			},
+			/**
+			 * 选择保险公司方法
+			 * @param {String} event  change选中事件
+			 * @param {String} code 保险公司ID
+			 * @param {String} name 保险公司主体全拼
+			 * @param {String} index 选中下标
+			 */
+			async checkboxChange(code, name, index) {
+				this.totalCompanyList[index].checked = !this.totalCompanyList[index].checked;
+				let value = this.totalCompanyList[index].checked;
+				if (value) {
+					let ins = this.totalCompanyList[index].namesimple;
+					let list = this.totalCompanyList[index].agreement;
+					// let arr = this.totalCompanyList[index].agreement;
+					// let list = [];
+					// list = arr.filter(item => {
+					// 	return item.licenseNo.length > 0 ? item.licenseNo.includes(this.carInfo.licenseNo.slice(0,2)) : "true"
+					// })
+					list.map(ele => {
+						ele.extra = ele.apiType;
+						return ele;
+					})
+					this.totalCompanyList[index].agreement = list;
+					this.totalCompanyList[index].agreementId = this.totalCompanyList[index].agreement[0].id;
+					this.totalCompanyList[index].agreementName = this.totalCompanyList[index].agreement[0]
+						.agreementName;
+					this.totalCompanyList[index].apiType = this.totalCompanyList[index].agreement[0].extra;
+					this.totalCompanyList[index].underwritingDescription = this.totalCompanyList[index].agreement[0]
+						.underwritingDescription;
+				}
+			},
+			//驾意险勾选框
+			async accidentChange(event, code, name, index) {
+				if (event) {
+					this.totalCompanyList[index].jychecked = event;
+					let ins = this.totalCompanyList[index].namesimple;
+					switch (ins) {
+						case '永诚财险':
+							let yccallback = await this.$http.post('/api/yongCheng/gainAccidentList', {
+								agreementId: this.totalCompanyList[index].agreement[0].id,
+								companyCode: code,
+								seatNum: Number(this.carInfo.seatCount)
+							});
+
+							if (yccallback.code == '200') {
+								let yccallback1 = await this.$http.post(
+									'/api/yongCheng/gainAccidentSchemeList', {
+										agreementId: this.totalCompanyList[index].agreement[0].id,
+										companyCode: code,
+										code: yccallback.data[0].code,
+										seatNum: Number(this.carInfo.seatCount)
+									});
+								yccallback1.data.map(val => {
+									yccallback.data[0].premium += Number(val.premium)
+									return val;
+								})
+								let data = yccallback.data;
+
+								data.map(ele => {
+									ele.quantity = 1;
+									return ele;
+								})
+								this.yongchengInsuranceData = data;
+								this.yongchengaccidentalDrivingVo = {
+									rideRiskCode: data[0].code,
+									rideRiskName: data[0].name,
+									quantity: data[0].quantity,
+									premium: data[0].premium,
+								};
+								this.ycdrivingJoyCoverage = {
+									agreementId: this.totalCompanyList[index].agreement[0].id,
+									companyCode: code,
+									seatNum: Number(this.carInfo.seatCount)
+								}
+							}
+							break;
+						case '紫金财险':
+							let zjcallback = await this.$http.post('/order/zijin/queryVehicleProducts', {
+								agreementId: this.totalCompanyList[index].agreement[0].id,
+								seatCount: Number(this.carInfo.seatCount)
+							});
+							if (zjcallback.code == '200') {
+								let data = zjcallback.data;
+								data.map(ele => {
+									ele.quantity = 1;
+									return ele;
+								})
+								this.zijinInsuranceData = data;
+
+							}
+							break;
+						case '安盛天平':
+							let ascallback = await this.$http.post('/insurance/crawler/getDrivingInsurance', {
+								agreementId: this.totalCompanyList[index].agreement[0].id
+							});
+							if (ascallback.code == '200') {
+								let data = ascallback.data;
+								data.map(ele => {
+									ele.departmentProductList.map(val => {
+										val.quantity = 1;
+									})
+									return ele;
+								})
+								this.anshengprogrammeData = data;
+								this.anshengInsuranceData = data[0].departmentProductList;
+								this.anshengaccidentalDrivingVo = {
+									personFlag: data[0].personFlag,
+									planChineseName: data[0].planChineseName,
+									planCode: data[0].planCode,
+									planSeries: data[0].planSeries,
+									productCode: data[0].departmentProductList[0].productCode,
+									productName: data[0].departmentProductList[0].productName,
+									quantity: data[0].departmentProductList[0].quantity
+								}
+							}
+							break;
+						case '国任财险':
+							let grcallback = await this.$http.post('/api/guoRen/syncNonAutoIns', {
+								agreementId: this.totalCompanyList[index].agreement[0].id
+							});
+							if (grcallback.code == '200') {
+								let data = grcallback.data;
+								this.guorenprogrammeData = data;
+								let grcallback1 = await this.$http.post('/api/guoRen/syncNonAutoIns', {
+									goodsCode: grcallback.data[0].goodId
+								});
+								this.guoRenInsuranceData = grcallback1.data;
+								this.guoRenaccidentalDrivingVo = {
+									goodsCode: data[0].goodId, //驾意险商品号
+									prodCode: grcallback1.data[0].prodCode, //产品code
+									riskCode: grcallback1.data[0].riskCode, //险种code
+									premium: grcallback1.data[0].premium, //保费
+									amount: grcallback1.data[0].amount, //保额
+									quantity: Number(grcallback1.data[0].policyNum), //份数
+									goodDesc: data[0].goodDesc, //驾意险商品名称
+									prodCName: grcallback1.data[0].prodCName, //产品名称
+									policyNum: Number(grcallback1.data[0].appnum), //最大份数
+								}
+
+							}
+
+							break;
+						case '大家财险':
+							let djcallback = await this.$http.post('/api/dajia/accidentalDrivingList', {
+								agreementId: this.totalCompanyList[index].agreement[0].id
+							});
+							if (djcallback.code == '200') {
+								let data = djcallback.data;
+								data.map(ele => {
+									ele.quantity = 1;
+									return ele;
+								})
+								this.dajiaInsuranceData = data;
+								this.dajiaaccidentalDrivingVo = {
+									rideRiskCode: data[0].id,
+									rideRiskName: data[0].productName,
+									quantity: data[0].quantity,
+									price: data[0].price,
+								};
+							}
+							break;
+						case '中煤财险':
+							let zmcallback = await this.$http.post('/order/zhongMeiApi/queryRideAccident', {
+								agreementId: this.totalCompanyList[index].agreement[0].id,
+								seatNum: Number(this.carInfo.seatCount)
+							});
+							if (zmcallback.code == '200') {
+								let data = zmcallback.data;
+								data.map(ele => {
+									ele.quantity = 1;
+									return ele;
+								})
+								this.zhongmeiInsuranceData = data;
+								this.zhongmeiaccidentalDrivingVo = {
+									rideRiskCode: data[0].rideRiskCode,
+									rideRiskName: data[0].rideRiskName,
+									quantity: data[0].quantity,
+									maxQuantity: data[0].maxQuantity,
+									unitPremium: data[0].unitPremium,
+								};
+							}
+							break;
+						case '渤海财险':
+							let bhcallback = await this.$http.post('/order/boHaiApi/productQuery', {
+								agreementId: this.totalCompanyList[index].agreement[0].id,
+								insuredPersonInfo: this.insuredPersonInfo,
+								policyHolderInfo: this.policyHolderInfo,
+								carnature: this.carInfo.carnature,
+								cimodelclass: this.carInfo.cimodelclass,
+								exhaustScale: this.carInfo.enginedesc,
+								limitLoad: "",
+								powerScale: this.carInfo.powerScale,
+								seatCount: Number(this.carInfo.seatCount),
+								vehicleUse: this.carInfo.vehicleUse,
+							});
+							if (bhcallback.code == '200') {
+								let data = bhcallback.data;
+								data.map(ele => {
+									ele.copies = 1;
+									return ele;
+								})
+								this.bohaiInsuranceData = data;
+								this.bohaiaccidentalDrivingVo = {
+									packageCode: data[0].packageCode,
+									productCode: data[0].productCode,
+									copies: data[0].copies,
+									premium: data[0].premium,
+									packageName: data[0].packageName,
+								};
+							}
+							break;
+						case '中国人寿':
+						case '恒邦财险':
+						case '众安财险':
+						case '太平财险':
+						case '华农财险':
+							let Insurancecallback = await this.$http.post(
+								'/insurance/crawler/getDrivingInsurance', {
+									agreementId: this.totalCompanyList[index].agreement[0].id
+								});
+							if (Insurancecallback.code == 200) {
+								let data = Insurancecallback.data;
+
+								if (ins == '华农财险') {
+									data.map(ele => {
+										ele.accidentType = "";
+										ele.allQuantity = 1;
+										return ele;
+									})
+									data[0].accidentType = data[0].planCode;
+								} else {
+									data.map(ele => {
+										ele.quantity = 1;
+										return ele;
+									})
+								}
+								this[name + "InsuranceData"] = data;
+								this[name + 'accidentalDrivingVo'] = data[0];
+							}
+							break;
+						default:
+							break;
+					}
+				} else {
+					this.totalCompanyList[index].jychecked = event;
+					this[name + "InsuranceData"] = [];
+					this[name + 'accidentalDrivingVo'] = {};
+				}
+
+			},
+			checkboxChangeInfo(event, index) {
+				this.totalCompanyList[index].jychecked = event.value;
+			},
+			//中煤
+			ZMradioChange(id) {
+				let info = this.zhongmeiInsuranceData.find(val => val.rideRiskCode == id)
+				this.zhongmeiaccidentalDrivingVo = {
+					rideRiskCode: info.rideRiskCode,
+					rideRiskName: info.rideRiskName,
+					quantity: info.quantity,
+					maxQuantity: info.maxQuantity,
+					unitPremium: info.unitPremium,
+				}
+				this.zhongmeiPopupshow = false;
+			},
+			//渤海意外险
+			BHradioChange(id) {
+				let info = this.bohaiInsuranceData.find(val => val.productCode == id)
+				this.bohaiaccidentalDrivingVo = {
+					packageCode: info.packageCode,
+					productCode: info.productCode,
+					copies: info.copies,
+					packageName: info.packageName,
+					premium: info.premium,
+				}
+				this.bohaiPopupshow = false;
+			},
+			//人寿意外险
+			RSradioChange(id) {
+				this.renshouaccidentalDrivingVo = this.renshouInsuranceData.find(val => val.id == id)
+				this.renshouPopupshow = false;
+			},
+			//恒邦意外险
+			HBradioChange(id) {
+				this.hengbangaccidentalDrivingVo = this.hengbangInsuranceData.find(val => val.programcode ==
+					id)
+				this.hengbangPopupshow = false;
+			},
+			//众安意外险
+			ZAradioChange(id) {
+				this.zhonganaccidentalDrivingVo = this.zhonganInsuranceData.find(val => val.combination == id)
+				this.zhonganPopupshow = false;
+			},
+			//华农驾意险
+			HNradioChange(id) {
+				this.huanongaccidentalDrivingVo = this.huanongInsuranceData.find(val => val.planCode == id);
+				this.huanongaccidentalDrivingVo.accidentType = this.huanongaccidentalDrivingVo.planCode;
+				this.huanongPopupshow = false;
+			},
+			//大家意外险
+			DJradioChange(id) {
+				let info = this.dajiaInsuranceData.find(val => val.id == id)
+				this.dajiaaccidentalDrivingVo = {
+					rideRiskCode: info.id,
+					rideRiskName: info.productName,
+					quantity: info.quantity,
+					price: info.price,
+				};
+				this.dajiaPopupshow = false;
+			},
+			TPradioChange(id) {
+				this.taipingaccidentalDrivingVo = this.taipingInsuranceData.find(val => val.id == id)
+				this.taipingPopupshow = false;
+			},
+			//永诚意外险
+			async YCradioChange(id) {
+				let premium = 0;
+				let yccallback1 = await this.$http.post(
+					'/api/yongCheng/gainAccidentSchemeList', {
+						agreementId: this.ycdrivingJoyCoverage.agreementId,
+						companyCode: this.ycdrivingJoyCoverage.companyCode,
+						code: id,
+						seatNum: this.ycdrivingJoyCoverage.seatNum
+					});
+				yccallback1.data.forEach(val => {
+					premium += Number(val.premium);
+				})
+				let info = this.yongchengInsuranceData.find(val => val.code == id)
+				this.yongchengaccidentalDrivingVo.rideRiskCode = info.code;
+				this.yongchengaccidentalDrivingVo.rideRiskName = info.name;
+				this.yongchengaccidentalDrivingVo.quantity = info.quantity;
+				this.yongchengaccidentalDrivingVo.premium = premium;
+				this.yongchengPopupshow = false;
+			},
+			//安盛一级选择
+			ASprogrammeradioChange(id) {
+				let info = this.anshengprogrammeData.find((val => val.planCode == id))
+				this.anshengPopupshow = false;
+				this.anshengInsuranceData = info.departmentProductList;
+				let dataInfo = {
+					personFlag: info.personFlag,
+					planChineseName: info.planChineseName,
+					planCode: info.planCode,
+					planSeries: info.planSeries,
+					productCode: info.departmentProductList[0].productCode,
+					productName: info.departmentProductList[0].productName,
+					quantity: info.departmentProductList[0].quantity
+				}
+				Object.assign(this.anshengaccidentalDrivingVo, dataInfo);
+			},
+			//安盛二级选择
+			ASInsuranceradioChange(id) {
+				let info = this.anshengInsuranceData.find((val => val.productCode == id))
+				Object.assign(this.anshengaccidentalDrivingVo, info);
+				this.anshengPopupshow1 = false;
+			},
+			//国任一级选择
+			async GRprogrammeradioChange(id) {
+				let info = this.guorenprogrammeData.find((val => val.goodId == id))
+				this.guorenPopupshow = false;
+				this.guoRenaccidentalDrivingVo.goodsCode = info.goodId;
+				this.guoRenaccidentalDrivingVo.goodDesc = info.goodDesc;
+				let res = await this.$http.post('/api/guoRen/syncNonAutoIns', {
+					goodsCode: info.goodId
+				});
+				if (res.code == '200') {
+					this.guoRenInsuranceData = res.data;
+					let dataInfo = {
+						prodCode: res.data[0].prodCode, //产品code
+						riskCode: res.data[0].riskCode, //险种code
+						premium: res.data[0].premium, //保费
+						amount: res.data[0].amount, //保额
+						quantity: Number(res.data[0].policyNum), //份数
+						prodCName: res.data[0].prodCName, //产品名称
+						policyNum: res.data[0].appnum, //最大份数
+					}
+					Object.assign(this.guoRenaccidentalDrivingVo, dataInfo);
+				} else {
+					uni.showToast({
+						title: res.msg,
+						icon: 'none',
+					});
+					this.guoRenInsuranceData = []
+				}
+			},
+			//国任二级选择
+			GRInsuranceradioChange(id) {
+				let info = this.guoRenInsuranceData.find((val => val.prodCode == id))
+				let dataInfo = {
+					prodCode: info.prodCode, //产品code
+					riskCode: info.riskCode, //险种code
+					premium: info.premium, //保费
+					amount: info.amount, //保额
+					quantity: Number(info.policyNum), //份数
+					prodCName: info.prodCName, //产品名称
+					policyNum: info.appnum, //最大份数
+				}
+				Object.assign(this.guoRenaccidentalDrivingVo, dataInfo);
+				this.guorenPopupshow1 = false;
+			},
+			//紫金意外险
+			ZJcheckboxGroupChange(detail) {
+				this.zijinaccidentalDrivingVo = [];
+				detail.map(val => {
+					let list = this.zijinInsuranceData.find(item => item.projectCode == val)
+					this.zijinaccidentalDrivingVo.push(list)
+				})
+			},
+			//获取保险公司列表
+			async commpanyList() {
+				let commpanykad = await this.$http.get('/tax/manager/getAllAgreement');
+				commpanykad.data.map(ele => {
+					ele["result"] = {};
+					ele["quoteCode"] = 0;
+					ele["checked"] = false;
+					ele["jychecked"] = false;
+					ele["msg"] = "";
+					ele["agreementId"] = "";
+					ele["lastYearMsg"] = "";
+					ele["agreementName"] = "";
+					ele["apiType"] = "";
+					ele["coefficient"] = "";
+					ele["syAdjustRate"] = "";
+					ele["selectShow"] = false;
+					ele['underwritingDescription'] = "";
+				})
+				if (this.insAreaCompanyEditingDtos.length > 0) {
+					commpanykad.data.forEach((val, index) => {
+						this.insAreaCompanyEditingDtos.map(ele => {
+							if (val.namesimple == ele.inscompany) {
+								commpanykad.data[index].quoteCode = 200;
+								commpanykad.data[index].result = ele;
+							}
+						})
+					})
+				}
+				this.totalCompanyList = commpanykad.data;
+			},
+			async toNext() {
+				var allAreFalse = this.totalCompanyList.every(function(element) {
+					return element.checked === false;
+				});
+				if (!allAreFalse) {
+					this.OrderStageProcessing();
+				} else {
+					uni.showToast({
+						title: "请选择保险公司后,在进行报价",
+						icon: 'none',
+					});
+				}
+			},
+			async OrderStageProcessing() {
+				this.riskList.map(val => {
+					if (val.riskCode == '0507') {
+						val.startDate = this.jqstartDate;
+						val.endDate = this.jqendDate;
+					} else if (val.riskCode == '0510') {
+						val.startDate = this.systartDate;
+						val.endDate = this.syendDate;
+					}
+				})
+				let param = {
+					userId: this.userInfo.sysUser.id,
+					quoteno: this.quoteno ? this.quoteno : "",
+					orderNo: this.orderno ? this.orderno : "",
+					carInfo: this.carInfo,
+					insuredPersonInfo: this.insuredPersonInfo,
+					ownerInfo: this.ownerInfo,
+					policyHolderInfo: this.policyHolderInfo,
+					kindList: this.kindList,
+					riskList: this.riskList,
+					vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
+				};
+				let orders = await this.$http.post('/insurance/order/generateOrder', param);
+				if (orders.code == '200') {
+					this.orderno = orders.data.orderno;
+					this.quoteno = orders.data.quoteno;
+					let mergedArray = [];
+					let mergedArrayList = mergedArray.concat(this.carInfoPositiveList, this
+						.ownerInfoPositiveList, this
+						.policyHolderInfoPositiveList, this.insuredPersonInfoPositiveList)
+
+					if (mergedArrayList.length > 0) {
+						await this.$http.post('/ins/taskImage/uploadImages', {
+							imageList: mergedArrayList,
+							quoteNo: this.quoteno,
+						})
+					}
+					this.totalCompanyList.map((ele, index) => {
+						if (ele.checked) {
+							//动态调用报价接口
+							ele.quoteCode = "1";
+							this.ToolClickFun(ele.cnName, index, ele.id);
+						}
+					});
+				} else if (orders.code == '1001') {
+					this.Generateshow = true;
+				} else {
+					uni.showToast({
+						title: orders.msg,
+						icon: 'none',
+					});
+				}
+			},
+			GenerateModalConfirm() {
+				this.orderno = "";
+				this.quoteno = "";
+				this.toNext();
+			},
+			//动态函数
+			ToolClickFun(MethodName, Parameter, companyId) {
+				this[`${MethodName}`](Parameter, companyId)
+			},
+			//永安报价
+			async yongan(num, id) {
+				let params = {
+					orderNo: this.orderno,
+					companyId: id
+				};
+				let quote = await this.$http('/order/yongAn/quote', params);
+				if (quote.msg == "重复投保" && quote.code == "501") {
+					if (!!quote.data.jqStartDate && !quote.data.syStartDate) {
+						this.jqstartDate = quote.data.jqStartDate;
+						this.jqendDate = quote.data.jqEndDate;
+						if (this.riskList.length > 0) {
+							for (let i = 0; i < this.riskList.length; i++) {
+								if (this.riskList[i].riskCode == "0507") {
+									this.riskList[i].startDate = quote.data.jqStartDate;
+									this.riskList[i].endDate = quote.data.jqEndDate;
+								}
+							}
+						}
+						let param = {
+							userId: this.userInfo.sysUser.id,
+							quoteno: this.quoteno,
+							orderNo: this.orderno,
+							carInfo: this.carInfo,
+							insuredPersonInfo: this.insuredPersonInfo,
+							ownerInfo: this.ownerInfo,
+							policyHolderInfo: this.policyHolderInfo,
+							kindList: this.kindList,
+							riskList: this.riskList,
+							vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
+						};
+						await this.$http.post('/insurance/order/generateOrder', param);
+						return this.yongan(num, id);
+
+					} else if (!!quote.data.syStartDate && !quote.data.jqStartDate) {
+
+
+					} else if (!!quote.data.syStartDate && !!quote.data.jqStartDate) {
+
+					} else {
+						this.totalCompanyList[num].quoteCode = "3";
+						this.totalCompanyList[num].msg = "重复投保";
+					}
+
+				} else if (quote.code == "500" || quote.code == "502" || quote.code ==
+					"-9999") {
+					this.totalCompanyList[num].quoteCode = "-9999";
+					this.totalCompanyList[num].msg = quote.msg;
+				} else {
+					this.totalCompanyList[num].quoteCode = 200;
+					this.totalCompanyList[num].result = quote.data;
+				}
+			},
+			//中煤报价
+			async zhongmei(num, id) {
+				let jychecked = this.totalCompanyList[num].jychecked;
+				let params = {
+					accidentalDrivingVo: jychecked ? this.zhongmeiaccidentalDrivingVo : {},
+					orderNo: this.orderno,
+					companyId: id,
+					agreementId: this.totalCompanyList[num].agreementId,
+				};
+
+				let res = await this.$http.post('/order/zhongMeiApi/quote', params);
+				this.totalCompanyList[num].msg = res.msg;
+				if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
+					this.totalCompanyList[num].quoteCode = "4";
+					this.totalCompanyList[num].msg = res.msg;
+					return;
+				} else if (
+					res.data == null &&
+					res.msg.indexOf("交强险平台返回") > -1 &&
+					res.msg.indexOf(";终保日期") > -1
+				) {
+					let time =
+						res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
+					this.jqstartDate = time;
+					this.jqendDate = this.oneYearPast(time);
+					if (this.riskList.length > 0) {
+						for (let i = 0; i < this.riskList.length; i++) {
+							if (this.riskList[i].riskCode == "0507") {
+								this.riskList[i].startDate = time;
+								this.riskList[i].endDate = this.oneYearPast(time);
+							}
+						}
+					}
+					let param = {
+						userId: this.userInfo.sysUser.id,
+						quoteno: this.quoteno,
+						orderNo: this.orderno,
+						carInfo: this.carInfo,
+						insuredPersonInfo: this.insuredPersonInfo,
+						ownerInfo: this.ownerInfo,
+						policyHolderInfo: this.policyHolderInfo,
+						kindList: this.kindList,
+						riskList: this.riskList,
+						vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
+					};
+					await this.$http.post('/insurance/order/generateOrder', param);
+					return this.zhongmei(num, id);
+				} else if (res.code == '200') {
+					if (res.data.warnMessageList != null && res.data.warnMessageList[
+							0] != null && res.data
+						.warnMessageList[
+							0] != "") {
+						this.totalCompanyList[num].lastYearMsg = "";
+						let dat = res.data.warnMessageList;
+						dat.map(ele => {
+							this.totalCompanyList[num].lastYearMsg += ele +
+								'<br>';
+						})
+					}
+					this.totalCompanyList[num].quoteCode = 200;
+					this.totalCompanyList[num].result = res.data;
+				} else {
+					this.totalCompanyList[num].quoteCode = "3";
+					this.totalCompanyList[num].msg = res.msg;
+					return;
+				}
+			},
+			//渤海报价
+			async bohai(num, id) {
+				let jychecked = this.totalCompanyList[num].jychecked;
+				let params = {
+					accidentalDrivingVo: jychecked ? [this.bohaiaccidentalDrivingVo] : [],
+					orderNo: this.orderno,
+					companyId: id,
+					agreementId: this.totalCompanyList[num].agreementId,
+				};
+
+				let res = await this.$http.post('/order/boHaiApi/quote', params);
+				this.totalCompanyList[num].msg = res.msg;
+				if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
+					this.totalCompanyList[num].quoteCode = "4";
+					this.totalCompanyList[num].msg = res.msg;
+					return;
+				} else if (
+					res.data == null &&
+					res.msg.indexOf("交强险平台返回") > -1 &&
+					res.msg.indexOf(";终保日期") > -1
+				) {
+					let time =
+						res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
+					this.jqstartDate = time;
+					this.jqendDate = this.oneYearPast(time);
+					if (this.riskList.length > 0) {
+						for (let i = 0; i < this.riskList.length; i++) {
+							if (this.riskList[i].riskCode == "0507") {
+								this.riskList[i].startDate = time;
+								this.riskList[i].endDate = this.oneYearPast(time);
+							}
+						}
+					}
+					let param = {
+						userId: this.userInfo.sysUser.id,
+						quoteno: this.quoteno,
+						orderNo: this.orderno,
+						carInfo: this.carInfo,
+						insuredPersonInfo: this.insuredPersonInfo,
+						ownerInfo: this.ownerInfo,
+						policyHolderInfo: this.policyHolderInfo,
+						kindList: this.kindList,
+						riskList: this.riskList,
+						vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
+					};
+					await this.$http.post('/insurance/order/generateOrder', param);
+					return this.zhongmei(num, id);
+				} else if (res.code == '200') {
+					if (res.data.warnMessageList != null && res.data.warnMessageList[
+							0] != null && res.data
+						.warnMessageList[
+							0] != "") {
+						this.totalCompanyList[num].lastYearMsg = "";
+						let dat = res.data.warnMessageList;
+						dat.map(ele => {
+							this.totalCompanyList[num].lastYearMsg += ele +
+								'<br>';
+						})
+					}
+					this.totalCompanyList[num].quoteCode = 200;
+					this.totalCompanyList[num].result = res.data;
+				} else {
+					this.totalCompanyList[num].quoteCode = "3";
+					this.totalCompanyList[num].msg = res.msg;
+					return;
+				}
+			},
+			//永诚报价
+			async yongcheng(num, id) {
+				let jychecked = this.totalCompanyList[num].jychecked
+				let params = {
+					accidentalDrivingVo: jychecked ? this
+						.yongchengaccidentalDrivingVo : {},
+					orderNo: this.orderno,
+					companyId: id,
+					cqryCdeJq: this.cqryCdeJq,
+					cqryCdeSy: this.cqryCdeSy,
+					renewalCodeJq: this.renewalCodeJq,
+					renewalCodeSy: this.renewalCodeSy,
+					agreementId: this.totalCompanyList[num].agreementId,
+				};
+				let res = await this.$http.post('/api/yongCheng/quote', params);
+				this.totalCompanyList[num].msg = res.msg;
+				if (res.code == "200") {
+					if (res.data.warnMessageList != null && res.data
+						.warnMessageList[0] != null && res.data
+						.warnMessageList[
+							0] != "") {
+						this.totalCompanyList[num].lastYearMsg = "";
+						let dat = res.data.warnMessageList;
+						dat.map(ele => {
+							this.totalCompanyList[num].lastYearMsg += ele +
+								'<br>';
+						})
+					}
+					this.totalCompanyList[num].quoteCode = 200;
+					this.totalCompanyList[num].result = res.data;
+				} else if (res.code == "101") {
+					this.totalCompanyList[num].quoteCode = "101";
+					this.totalCompanyList[num].msg = res.msg;
+					this.cqryCdeJq = res.data.cqryCdeJq;
+					this.cqryCdeSy = res.data.cqryCdeSy;
+					let jq = res.data.renewalCodeJq.replace(/[\r\n]/g, "");
+					let jqBase64 = `data:image/png;base64,${jq}`;
+					this.renewalCodeJqImg = jqBase64;
+					if (res.data.renewalCodeSy) {
+						let sy = res.data.renewalCodeSy.replace(/[\r\n]/g, "");
+						let syBase64 = `data:image/png;base64,${sy}`;
+						this.renewalCodeSyImg = syBase64;
+					}
+					this.renewalCodedialogVisible = true;
+				} else {
+					this.totalCompanyList[num].quoteCode = "3";
+					this.totalCompanyList[num].msg = res.msg;
+					return;
+				}
+			},
+			//紫金报价
+			async zijin(num, id) {
+				let params = {
+					accidentalDrivingVo: this.zijinaccidentalDrivingVo,
+					orderNo: this.orderno,
+					companyId: id,
+					agreementId: this.totalCompanyList[num].agreementId,
+					coefficient: this.totalCompanyList[num].coefficient,
+				};
+				let res = await this.$http.post('/order/zijin/quote', params);
+				this.totalCompanyList[num].msg = res.msg;
+				if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
+					this.totalCompanyList[num].quoteCode = "4";
+					this.totalCompanyList[num].msg = res.msg;
+					return;
+				} else if (
+					res.data == null &&
+					res.msg.indexOf("交强险平台返回") > -1 &&
+					res.msg.indexOf(";终保日期") > -1
+				) {
+					let time =
+						res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) +
+						":00";
+					this.jqstartDate = time;
+					this.jqendDate = this.oneYearPast(time);
+					this.systartDate = time;
+					this.syendDate = this.oneYearPast(time);
+					if (this.riskList.length > 0) {
+						for (let i = 0; i < this.riskList.length; i++) {
+							if (this.riskList[i].riskCode == "0507") {
+								this.riskList[i].startDate = time;
+								this.riskList[i].endDate = this.oneYearPast(
+									time);
+							} else if (this.riskList[i].riskCode == "0510") {
+								this.riskList[i].startDate = time;
+								this.riskList[i].endDate = this.oneYearPast(
+									time);
+							}
+						}
+					}
+					let param = {
+						userId: this.userInfo.sysUser.id,
+						quoteno: this.quoteno,
+						orderNo: this.orderno,
+						carInfo: this.carInfo,
+						insuredPersonInfo: this.insuredPersonInfo,
+						ownerInfo: this.ownerInfo,
+						policyHolderInfo: this.policyHolderInfo,
+						kindList: this.kindList,
+						riskList: this.riskList,
+						vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
+					};
+					await this.$http.post('/insurance/order/generateOrder',
+						param);
+					return this.zijin(num, id);
+				} else if (res.code == '200') {
+					if (res.data.warnMessageList != null && res.data
+						.warnMessageList[0] != null && res.data
+						.warnMessageList[
+							0] != "") {
+						this.totalCompanyList[num].lastYearMsg = "";
+						let dat = res.data.warnMessageList;
+						dat.map(ele => {
+							this.totalCompanyList[num].lastYearMsg +=
+								ele + '<br>';
+						})
+					}
+					this.totalCompanyList[num].quoteCode = 200;
+					this.totalCompanyList[num].result = res.data;
+				} else {
+					this.totalCompanyList[num].quoteCode = "3";
+					this.totalCompanyList[num].msg = res.msg;
+					return;
+				}
+			},
+			//国任报价
+			async guoRen(num, id) {
+				let jychecked = this.totalCompanyList[num].jychecked
+				let params = {
+					accidentalDrivingVo: jychecked ? this
+						.guoRenaccidentalDrivingVo : {},
+					orderNo: this.orderno,
+					companyId: id,
+					agreementId: this.totalCompanyList[num]
+						.agreementId,
+					guoRenSpecialAgreementVo: this.guoRenSpecialAgreementVo,
+				};
+				let res = await this.$http.post('/api/guoRen/quote',
+					params);
+				this.totalCompanyList[num].msg = res.msg;
+				if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
+					this.totalCompanyList[num].quoteCode = "4";
+					this.totalCompanyList[num].msg = res.msg;
+					return;
+				} else if (
+					res.data == null &&
+					res.msg.indexOf("交强险平台返回") > -1 &&
+					res.msg.indexOf(";终保日期") > -1
+				) {
+					let time =
+						res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) +
+						":00";
+					this.jqstartDate = time;
+					this.jqendDate = this.oneYearPast(time);
+					this.systartDate = time;
+					this.syendDate = this.oneYearPast(time);
+					if (this.riskList.length > 0) {
+						for (let i = 0; i < this.riskList.length; i++) {
+							if (this.riskList[i].riskCode == "0507") {
+								this.riskList[i].startDate = time;
+								this.riskList[i].endDate = this
+									.oneYearPast(time);
+							} else if (this.riskList[i].riskCode ==
+								"0510") {
+								this.riskList[i].startDate = time;
+								this.riskList[i].endDate = this
+									.oneYearPast(time);
+							}
+						}
+					}
+					let param = {
+						userId: this.userInfo.sysUser.id,
+						quoteno: this.quoteno,
+						orderNo: this.orderno,
+						carInfo: this.carInfo,
+						insuredPersonInfo: this.insuredPersonInfo,
+						ownerInfo: this.ownerInfo,
+						policyHolderInfo: this.policyHolderInfo,
+						kindList: this.kindList,
+						riskList: this.riskList,
+						vehicleAndVesselTax: this
+							.vehicleAndVesselTaxForm,
+					};
+					await this.$http.post('/insurance/order/generateOrder',
+						param);
+					return this.guoRen(num, id);
+				} else if (res.code == '200') {
+					if (res.data.warnMessageList != null && res.data
+						.warnMessageList[0] != null && res.data
+						.warnMessageList[
+							0] != "") {
+						this.totalCompanyList[num].lastYearMsg = "";
+						let dat = res.data.warnMessageList;
+						dat.map(ele => {
+							this.totalCompanyList[num]
+								.lastYearMsg += ele + '<br>';
+						})
+					}
+					this.totalCompanyList[num].quoteCode = 200;
+					this.totalCompanyList[num].result = res.data;
+				} else {
+					this.totalCompanyList[num].quoteCode = "3";
+					this.totalCompanyList[num].msg = res.msg;
+					return;
+				}
+			},
+			//大家报价
+			async dajia(num, id) {
+				let jychecked = this.totalCompanyList[num].jychecked
+				let params = {
+					accidentalDrivingVo: jychecked ? this
+						.dajiaaccidentalDrivingVo : {},
+					orderNo: this.orderno,
+					companyId: id,
+					cqryCdeJq: this.cqryCdeJq,
+					cqryCdeSy: this.cqryCdeSy,
+					renewalCodeJq: this.renewalCodeJq,
+					renewalCodeSy: this.renewalCodeSy,
+					agreementId: this.totalCompanyList[num]
+						.agreementId,
+				};
+				let res = await this.$http.post('/api/dajia/quote',
+					params);
+				this.totalCompanyList[num].msg = res.msg;
+				if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
+					this.totalCompanyList[num].quoteCode = "4";
+					this.totalCompanyList[num].msg = res.msg;
+					return;
+				} else if (
+					res.data == null &&
+					res.msg.indexOf("交强险平台返回") > -1 &&
+					res.msg.indexOf(";终保日期") > -1
+				) {
+					let time =
+						res.msg.substr(res.msg.indexOf(";终保日期 ") + 6,
+							16) + ":00";
+					this.jqstartDate = time;
+					this.jqendDate = this.oneYearPast(time);
+					this.systartDate = time;
+					this.syendDate = this.oneYearPast(time);
+					if (this.riskList.length > 0) {
+						for (let i = 0; i < this.riskList
+							.length; i++) {
+							if (this.riskList[i].riskCode == "0507") {
+								this.riskList[i].startDate = time;
+								this.riskList[i].endDate = this
+									.oneYearPast(time);
+							} else if (this.riskList[i].riskCode ==
+								"0510") {
+								this.riskList[i].startDate = time;
+								this.riskList[i].endDate = this
+									.oneYearPast(time);
+							}
+						}
+					}
+					let param = {
+						userId: this.userInfo.sysUser.id,
+						quoteno: this.quoteno,
+						orderNo: this.orderno,
+						carInfo: this.carInfo,
+						insuredPersonInfo: this.insuredPersonInfo,
+						ownerInfo: this.ownerInfo,
+						policyHolderInfo: this.policyHolderInfo,
+						kindList: this.kindList,
+						riskList: this.riskList,
+						vehicleAndVesselTax: this
+							.vehicleAndVesselTaxForm,
+					};
+					await this.$http.post(
+						'/insurance/order/generateOrder', param);
+					return this.dajia(num, id);
+				} else if (res.code == '200') {
+					if (res.data.warnMessageList != null && res.data
+						.warnMessageList[0] != null && res.data
+						.warnMessageList[
+							0] != "") {
+						this.totalCompanyList[num].lastYearMsg = "";
+						let dat = res.data.warnMessageList;
+						dat.map(ele => {
+							this.totalCompanyList[num]
+								.lastYearMsg += ele + '<br>';
+						})
+					}
+					this.totalCompanyList[num].quoteCode = 200;
+					this.totalCompanyList[num].result = res.data;
+				} else {
+					this.totalCompanyList[num].quoteCode = "3";
+					this.totalCompanyList[num].msg = res.msg;
+					return;
+				}
+			},
+			//华泰报价
+			async huatai(num, id) {
+				let params = {
+					accidentalDrivingVo: {},
+					orderNo: this.orderno,
+					companyId: id,
+					cqryCdeJq: this.cqryCdeJq,
+					cqryCdeSy: this.cqryCdeSy,
+					renewalCodeJq: this.renewalCodeJq,
+					renewalCodeSy: this.renewalCodeSy,
+					agreementId: this.totalCompanyList[num]
+						.agreementId,
+				};
+				let res = await this.$http.post(
+					'/order/huaTaiApi/quote', params);
+				this.totalCompanyList[num].msg = res.msg;
+				if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
+					this.totalCompanyList[num].quoteCode = "4";
+					this.totalCompanyList[num].msg = res.msg;
+					return;
+				} else if (
+					res.data == null &&
+					res.msg.indexOf("交强险平台返回") > -1 &&
+					res.msg.indexOf(";终保日期") > -1
+				) {
+					let time =
+						res.msg.substr(res.msg.indexOf(";终保日期 ") +
+							6, 16) + ":00";
+					this.jqstartDate = time;
+					this.jqendDate = this.oneYearPast(time);
+					this.systartDate = time;
+					this.syendDate = this.oneYearPast(time);
+					if (this.riskList.length > 0) {
+						for (let i = 0; i < this.riskList
+							.length; i++) {
+							if (this.riskList[i].riskCode ==
+								"0507") {
+								this.riskList[i].startDate = time;
+								this.riskList[i].endDate = this
+									.oneYearPast(time);
+							} else if (this.riskList[i].riskCode ==
+								"0510") {
+								this.riskList[i].startDate = time;
+								this.riskList[i].endDate = this
+									.oneYearPast(time);
+							}
+						}
+					}
+					let param = {
+						userId: this.userInfo.sysUser.id,
+						quoteno: this.quoteno,
+						orderNo: this.orderno,
+						carInfo: this.carInfo,
+						insuredPersonInfo: this
+							.insuredPersonInfo,
+						ownerInfo: this.ownerInfo,
+						policyHolderInfo: this
+							.policyHolderInfo,
+						kindList: this.kindList,
+						riskList: this.riskList,
+						vehicleAndVesselTax: this
+							.vehicleAndVesselTaxForm,
+					};
+					await this.$http.post(
+						'/insurance/order/generateOrder', param
+					);
+					return this.huatai(num, id);
+				} else if (res.code == '200') {
+					if (res.data.warnMessageList != null && res
+						.data.warnMessageList[0] != null && res
+						.data
+						.warnMessageList[
+							0] != "") {
+						this.totalCompanyList[num].lastYearMsg =
+							"";
+						let dat = res.data.warnMessageList;
+						dat.map(ele => {
+							this.totalCompanyList[num]
+								.lastYearMsg += ele + '<br>';
+						})
+					}
+					this.totalCompanyList[num].quoteCode = 200;
+					this.totalCompanyList[num].result = res.data;
+				} else {
+					this.totalCompanyList[num].quoteCode = "3";
+					this.totalCompanyList[num].msg = res.msg;
+					return;
+				}
+			},
+
+			//爬虫统一报价接口
+			async quoteInsurance(num, id, apiType, jychecked) {
+				const companyId = uni.getStorageSync('companyId');
+				let api = apiType === 2 ?
+					"/insurance/crawler/quote" :
+					"anshengquote";
+				let ccidenttype = this.totalCompanyList[num]
+					.cnName;
+				let namesimple = this.totalCompanyList[num]
+					.namesimple;
+				let params = {
+					orderNo: this.orderno,
+					companyId: id,
+					agreementId: this.totalCompanyList[num]
+						.agreementId,
+					accidentalDrivingVo: jychecked ? this[
+						ccidenttype +
+						'accidentalDrivingVo'] : {},
+				};
+				if (id = 'GPIC1000000') {
+					if (companyId) {
+						params.discount = this.totalCompanyList[num]
+							.syAdjustRate;
+						params.lastCompanyId = companyId;
+					}
+				}
+				let res = await this.$http.post(`${api}`,
+					params);
+				this.totalCompanyList[num].msg = res.msg;
+				switch (namesimple) {
+					case '安盛天平':
+					case '恒邦财险':
+					case '中国人寿':
+					case '太平财险':
+					case '华农财险':
+						if (!!res.data) {
+							if (res.data.warnMessageList !=
+								null && res.data
+								.warnMessageList[0] != null &&
+								res.data
+								.warnMessageList[
+									0] != "") {
+								this.totalCompanyList[num]
+									.lastYearMsg = "";
+								let dat = res.data
+									.warnMessageList;
+								dat.map(ele => {
+									this.totalCompanyList[
+											num]
+										.lastYearMsg +=
+										ele + '<br>';
+
+								})
+							}
+							this.totalCompanyList[num]
+								.quoteCode = 200;
+							this.totalCompanyList[num].result =
+								res.data;
+							if (res.data.syAdjustRate) {
+								this.totalCompanyList[num].syAdjustRate = res.data.syAdjustRate;
+								uni.setStorageSync('companyId', res.data.companyId);
+							}
+						} else {
+							this.totalCompanyList[num]
+								.quoteCode = "3";
+							this.totalCompanyList[num].msg =
+								res.msg;
+							return;
+						}
+						break;
+					case '众安财险':
+						if (!!res.data) {
+							if (res.data.warnMessageList !=
+								null && res.data
+								.warnMessageList[0] != null &&
+								res.data
+								.warnMessageList[
+									0] != "") {
+								this.totalCompanyList[num]
+									.lastYearMsg = "";
+								let dat = res.data
+									.warnMessageList;
+								dat.map(ele => {
+									this.totalCompanyList[
+											num]
+										.lastYearMsg +=
+										ele + '<br>';
+								})
+							}
+							this.totalCompanyList[num]
+								.quoteCode = 200;
+							this.totalCompanyList[num].result =
+								res.data;
+						} else {
+							this.totalCompanyList[num]
+								.quoteCode = "3";
+							this.totalCompanyList[num].msg =
+								res.msg;
+							return;
+						}
+						break;
+					default:
+						break;
+				}
+			},
+			//华农
+			huanong(num, id) {
+				this.quoteInsurance(num, id, this
+					.totalCompanyList[num].apiType, this
+					.totalCompanyList[num].jychecked);
+			},
+			//太平
+			taiping(num, id) {
+				this.quoteInsurance(num, id, this
+					.totalCompanyList[num].apiType, this
+					.totalCompanyList[num].jychecked);
+			},
+			//安盛天平
+			ansheng(num, id) {
+				this.quoteInsurance(num, id, this
+					.totalCompanyList[num].apiType, this
+					.totalCompanyList[num].jychecked);
+			},
+			//众安
+			zhongan(num, id) {
+				this.quoteInsurance(num, id, this
+					.totalCompanyList[num].apiType, this
+					.totalCompanyList[num].jychecked);
+			},
+			//人寿
+			renshou(num, id) {
+				this.quoteInsurance(num, id, this
+					.totalCompanyList[num].apiType, this
+					.totalCompanyList[num].jychecked);
+			},
+			//恒邦
+			hengbang(num, id) {
+				this.quoteInsurance(num, id, this
+					.totalCompanyList[num].apiType, this
+					.totalCompanyList[num].jychecked);
+			},
+			Lastyear() {
+				this.$refs.lastYearMsgCI.show() // 显示
+			},
+			adjustPopupInsureSubmit() {
+				this.$refs.lastYearMsgCI.hide() // 显示
+			},
+			// 重新选择车型
+			toCarInfo() {
+				this.navigate({
+					url: '/pages/carInsure2/Information',
+					success: (res) => {
+						res.eventChannel.emit(
+							"acceptData", {
+								carInfo: this
+									.carInfo,
+								ownerInfo: this
+									.ownerInfo,
+								policyHolderInfo: this
+									.policyHolderInfo,
+								insuredPersonInfo: this
+									.insuredPersonInfo,
+								riskList: this
+									.riskList,
+								kindList: this
+									.kindList,
+								carInfoPositiveList: this
+									.carInfoPositiveList, //车辆
+								ownerInfoPositiveList: this
+									.ownerInfoPositiveList, //车主
+								policyHolderInfoPositiveList: this
+									.policyHolderInfoPositiveList, //投保
+								insuredPersonInfoPositiveList: this
+									.insuredPersonInfoPositiveList, //被保人
+
+							})
+					}
+				}, "navigateTo", true);
+			},
+			// 重新选择方案
+			toInsureItems() {
+				this.navigate({
+					url: '/pages/carInsure2/insureItems',
+					success: (res) => {
+						res.eventChannel.emit(
+							"acceptData", {
+								carInfo: this
+									.carInfo,
+								ownerInfo: this
+									.ownerInfo,
+								policyHolderInfo: this
+									.policyHolderInfo,
+								insuredPersonInfo: this
+									.insuredPersonInfo,
+								riskList: this
+									.riskList,
+								kindList: this
+									.kindList,
+								carInfoPositiveList: this
+									.carInfoPositiveList, //车辆
+								ownerInfoPositiveList: this
+									.ownerInfoPositiveList, //车主
+								policyHolderInfoPositiveList: this
+									.policyHolderInfoPositiveList, //投保
+								insuredPersonInfoPositiveList: this
+									.insuredPersonInfoPositiveList, //被保人
+								vehicleModel: this
+									.vehicleAndVesselTaxForm,
+							})
+					}
+				}, "navigateTo", true);
+			},
+
+			// 显示报错信息
+			ErrorMsg(msg, title) {
+				uni.showModal({
+					title: title + "报价提示",
+					content: msg,
+					showCancel: false,
+					confirmText: "关闭"
+				})
+
+			},
+			//上年信息
+			YearMsg(msg, title) {
+				let content = msg.replace(/<br>/g, "\r\n")
+				uni.showModal({
+					title: title + "上年信息",
+					content: content,
+					showCancel: false,
+					confirmText: "关闭"
+				})
+			},
+			//使用此时间
+			syncData(item) {
+				this.jqstartDate = item.startDateJq ? item
+					.startDateJq : this.jqstartDate
+				this.jqendDate = item.endDateJq ? item
+					.endDateJq : this.endDateJq
+				this.systartDate = item.startDateSy ? item
+					.startDateSy : this.systartDate
+				this.syendDate = item.endDateSy ? item
+					.endDateSy : this.syendDate
+				uni.showToast({
+					title: '时间已替换',
+					icon: 'none',
+					duration: 1000
+				});
+			},
+			oneYearPast(time) {
+				var date = new Date(time);
+				date.setSeconds(date.getSeconds() - 1);
+				date.setFullYear(date.getFullYear() + 1); //一年后
+				date.setTime(date.getTime()); //一年后的前一天
+				var strYear = date.getFullYear();
+				var strDay = date.getDate();
+				var strMonth = date.getMonth() + 1;
+				var hh = date.getHours();
+				var minutes = date.getMinutes(); // 分
+				var Seconds = date.getSeconds();
+				if (hh < 10) {
+					hh = "0" + hh;
+				}
+				if (minutes < 10) {
+					minutes = "0" + minutes;
+				}
+				if (Seconds < 10) {
+					Seconds = "0" + Seconds;
+				}
+				if (strMonth < 10) {
+					strMonth = "0" + strMonth;
+				}
+				if (strDay < 10) {
+					strDay = "0" + strDay;
+				}
+				var datastr =
+					strYear + "-" + strMonth + "-" + strDay +
+					" " + hh + ":" + minutes + ":" + Seconds;
+				return datastr;
+			},
+
+		},
+
+
+	}
+</script>
+<style lang="scss" scoped>
+	@import '@/style/mixin.scss';
+
+	/deep/ .u-form-item[data-v-5e7216f1] {
+		height: 26px;
+	}
+
+	.page {
+		min-height: 100vh;
+		background: #F8FAFE;
+		padding: 16px 16px 100px 16px;
+	}
+
+	.car-header {
+		width: 100%;
+		height: auto;
+		background: #FFFFFF;
+		box-shadow: 0px 4px 10px 0px #DAE3F4;
+		border-radius: 6px;
+		padding: 8px 15px;
+		position: relative;
+
+		.head-name {
+			margin-left: 20px;
+
+			&>text {
+				font-weight: bold;
+				font-size: 15px;
+				color: #232832;
+			}
+
+			.name1 text {
+				font-size: 14px;
+				font-weight: bold;
+				color: #333333;
+			}
+		}
+
+		.carJump {
+			position: absolute;
+			top: 5px;
+			right: 10px;
+			font-size: 14px;
+			color: #0052FF;
+		}
+	}
+
+	.pageContent {
+		.header {
+			padding: 10px 0;
+
+			.title {
+				font-size: 15px;
+				color: #232832;
+				font-weight: bold;
+			}
+
+			.color {
+				font-size: 14px;
+				color: #0052FF;
+			}
+		}
+	}
+
+	/* 报价方案Start */
+	.quotePlan {
+		background: #FFFFFF;
+		box-shadow: 0px 4px 10px 0px #DAE3F4;
+		border-radius: 6px;
+	}
+
+	.quotePlan .header {
+		padding: 10px 0;
+	}
+
+	.quotePlan .header .title {
+		// font-size: 30upx;
+		font-weight: bold;
+		padding-left: 25upx;
+	}
+
+	.quotePlan .header .title:before {
+		content: "";
+		position: absolute;
+		left: 30upx;
+		top: 25upx;
+		width: 8upx;
+		height: 30upx;
+		background-color: $themeColor;
+	}
+
+	.quotePlan {
+		.body {
+			padding: 0 10px 10px;
+
+			>.qunimade {
+				padding: 19rpx 0;
+				border-bottom: 1px solid #f2f2f2;
+			}
+
+
+		}
+	}
+
+	.quotePlan .body>.qunimade:last-of-type {
+		border-bottom: none;
+	}
+
+	.quotePlan .body .insurance {
+		background: #F9F9F9;
+		border-radius: 10px;
+
+		>view {
+			padding: 8px;
+			border-bottom: 1px solid #f2f2f2;
+
+		}
+
+		>view:last-child {
+			border: none;
+		}
+
+	}
+
+	.accident-style {
+		padding: 5px 8px 5px 8px;
+
+		text {
+			font-size: 13px;
+		}
+
+		>view {}
+
+		.accident-ins {
+			text {
+				margin-right: 10px;
+			}
+		}
+	}
+
+	.popContent {
+		padding: 8px;
+		max-height: 400px;
+	}
+
+	.carTypeItem {
+		padding: 0 30upx 20upx;
+		border-bottom: 1px solid #e5e5e5;
+		margin-top: 20upx;
+		width: 100%;
+		box-sizing: border-box;
+	}
+
+	.carTypeItem .nav .carseriesName {
+		font-size: 34upx;
+		width: 360upx;
+		font-family: PingFangSC-Medium, PingFangSC;
+		color: #4a4a4a;
+		overflow: hidden;
+		text-overflow: ellipsis;
+		white-space: nowrap;
+	}
+
+	.carTypeItem .nav .modelName {
+		font-size: 26upx;
+		width: 400upx;
+		font-family: PingFangSC-Medium, PingFangSC;
+		overflow: hidden;
+		text-overflow: ellipsis;
+		white-space: nowrap;
+	}
+
+	.carTypeItem .nav .nav_box {
+		margin: 10upx 0;
+	}
+
+	.carTypeItem .nav .nav_box .zid {
+		display: inline-block;
+		padding: 6upx 10upx;
+		font-size: 24upx;
+		height: 40upx;
+		background: #AFC9F7;
+		border-radius: 25upx;
+		color: #007AFF;
+		font-weight: bold;
+		line-height: 40upx;
+	}
+
+	.carTypeItem .nav .nav_box>p {
+		margin-left: 30upx;
+		color: #999;
+		font-size: 24upx;
+	}
+
+	.carTypeItem .price {
+		font-size: 16px;
+		width: 200upx;
+		flex-shrink: 0;
+		font-family: PingFangSC-Regular, PingFangSC;
+		font-weight: 400;
+		color: #007AFF;
+	}
+
+
+	.quotePlan .body .row {
+		height: 70upx;
+	}
+
+	.quotePlan .body .date {
+		background-color: $themeColor;
+		color: $themeColor;
+		font-size: 22upx;
+		padding: 0upx 7upx;
+		border-radius: 3upx;
+		margin: 10upx;
+		margin-right: 10upx;
+	}
+
+	/* 报价方案End */
+
+	/* 报价公司Start */
+	.quoteCompany {
+		box-sizing: border-box;
+		/* background:#FFFFFF; */
+		position: relative;
+		border-radius: 20upx;
+	}
+
+	.quoteCompany .header {
+		height: 80upx;
+	}
+
+	.quoteCompany .header .title {
+		font-size: 30upx;
+		font-weight: bold;
+	}
+
+	.quoteCompany .header .title .icon {
+		color: rgba($themeColor, 0.6);
+		margin-left: 15upx;
+	}
+
+	.quoteCompanyItem {
+		margin-bottom: 20upx;
+		background: #FFFFFF;
+		border-radius: 6px;
+		box-shadow: 0px 4px 10px 0px #DAE3F4;
+		box-sizing: border-box;
+		cursor: pointer;
+	}
+
+
+	.quoteCompanyItem .top {
+		position: relative;
+	}
+
+	.quoteCompanyItem .top .companyIcon {
+		padding: 8px;
+		border-radius: 6px 6px 0 0;
+		flex-shrink: 0;
+	}
+
+	.content {
+		padding: 0 8px;
+		margin-bottom: 5px;
+	}
+
+	.quoteCompanyItem .top .companyIcon image {
+		width: 20px;
+		height: 20px;
+		margin-right: 10px;
+	}
+
+	.quoteCompanyItem .top .Premium {
+		padding: 10px 8px;
+		border-top: 1px solid #f2f2f2;
+
+		.price {
+			font-size: 12px;
+			color: #FF5600;
+
+			text {
+				margin-right: 5px;
+			}
+		}
+
+		.time {
+			font-size: 12px;
+			color: #2D4D89;
+
+			>text {
+				margin-right: 5px;
+			}
+
+		}
+	}
+
+	.quoteCompanyItem .top .quotebtn {
+		width: 100%;
+		height: auto;
+
+		>view {
+			width: 50%;
+			font-size: 14px;
+			padding: 4px 0;
+
+		}
+	}
+
+	.lastyear {
+		view {
+			font-size: 12px;
+			font-weight: bold;
+
+			image {
+				width: 14px;
+				height: 14px;
+			}
+		}
+
+		.left {
+			border: 1px solid #229805;
+			border-radius: 2px 2px 2px 2px;
+			padding: 1px 6px;
+			color: #229805;
+		}
+
+		.right {
+			border-radius: 2px 2px 2px 2px;
+			padding: 1px 6px;
+			border: 1px solid #FF5600;
+			margin-left: 10px;
+			color: #FF5600;
+		}
+	}
+
+	.quoteCompanyItem .top .companyName {
+		font-size: 14px;
+		font-weight: bold;
+		color: #232832;
+	}
+
+	.quoteCompanyItem .top .totalMoney {
+		font-size: 40upx;
+		font-weight: bold;
+		color: $themeColor;
+		position: absolute;
+		top: -15upx;
+		right: 0;
+	}
+
+	.quoteCompanyItem .top .tip {
+		font-size: 26upx;
+		font-weight: bold;
+		color: #999;
+		position: absolute;
+		top: 0upx;
+		right: 0;
+	}
+
+	.sum {
+		color: #0052FF;
+		font-size: 14px;
+		font-weight: bold;
+	}
+
+	.quoteCompanyItem .top .signs {
+		width: 500upx;
+		overflow: hidden;
+		text-overflow: ellipsis;
+		white-space: nowrap;
+	}
+
+	.quoteCompanyItem .top .sign {
+		height: 40upx;
+		margin: 0upx 10upx;
+		background: rgba($themeColor, 0.6);
+		color: $themeColor;
+		font-size: 20upx;
+		margin-right: 10upx;
+		border-radius: 6upx;
+		padding: 0 2px;
+		line-height: 40upx;
+	}
+
+	.jqsign {
+		height: 20px;
+		background: rgba(255, 177, 177, 0.55);
+		color: #fd0a0a;
+		font-size: 20upx;
+		border-radius: 6upx;
+		padding: 0 10px;
+		box-sizing: border-box;
+	}
+
+	.quoteCompanyItem .body {
+		padding: 20upx 0;
+		flex-wrap: wrap;
+	}
+
+	.quoteCompanyItem .body>view {
+		flex-shrink: 0;
+		width: 50%;
+		overflow: hidden;
+		text-overflow: ellipsis;
+		white-space: nowrap;
+	}
+
+	.quoteCompanyItem .body .icon-exchange {
+		margin-right: 15upx;
+		display: inline-block;
+	}
+
+	/* 报价公司End */
+	/* 查看详情按钮Start */
+	.btn {
+		font-size: 16px;
+		color: #fff;
+		background-color: #ea552d;
+		margin-top: 10px;
+	}
+
+	.footer-btn {
+		position: fixed;
+		bottom: 0;
+		left: 0;
+		width: 100%;
+		height: 62px;
+		background: #FFFFFF;
+		box-shadow: 0px -4px 10px 0px #DAE3F4;
+		border-radius: 0px 0px 0px 0px;
+		padding: 12px 16px;
+		z-index: 99;
+	}
+
+	.slot-content {
+		padding: 10px;
+		box-sizing: border-box;
+	}
+
+	.ZJcheckboxGroup {
+		padding: 0 10px;
+
+		.title {
+			font-size: 14px;
+			color: #232832;
+			font-weight: bold;
+			padding: 10px;
+		}
+
+		.scolcentent {
+			max-height: 240px;
+			padding-bottom: 40px;
+		}
+
+		.operateBtn {
+			position: absolute;
+			bottom: 0;
+			left: 0;
+			right: 0;
+			font-weight: bold;
+			font-size: 16px;
+
+			.cancel {
+				width: 50%;
+				height: 46px;
+				color: #0052FF;
+				background-color: #EAEAEA;
+			}
+
+			.confirm {
+				width: 50%;
+				height: 46px;
+				color: #fff;
+				background-color: #0052FF;
+			}
+		}
+	}
+
+	.contributing {
+		width: 100%;
+		margin: 4px 0;
+		font-size: 12px;
+
+		text:nth-child(1) {
+			font-weight: bold;
+			color: #232832;
+		}
+	}
+
+
+	/* 查看详情按钮End */
+	.status-data {
+		width: auto;
+		padding: 2px 8px;
+		margin-left: 5px;
+		font-size: 12px;
+		border: 1px solid #CDCDCD;
+		cursor: pointer;
+		text-align: center;
+		line-height: 25px;
+	}
+
+	.active {
+		position: relative;
+		background: rgba(0, 82, 255, 0.1);
+		color: #0052FF;
+		border: 1px solid #0052FF;
+		font-weight: 700;
+	}
+
+	.active::before {
+		content: "";
+		position: absolute;
+		top: 0;
+		left: 0;
+		width: 10px;
+		height: 10px;
+		background-image: url("/static/image/car-insure/before.png");
+		background-size: cover;
+	}
+
+	.quoteactive {
+		border: 1px solid #0052FF;
+
+		.top {
+			.companyIcon {
+				background-color: #E6EEFF;
+			}
+
+			.Premium {
+				border-top-color: #0052FF;
+			}
+		}
+
+
+	}
+</style>

+ 3294 - 0
pages/carInsure2/quoteDetail.vue

@@ -0,0 +1,3294 @@
+<template>
+	<view :style="getHeight">
+		<!-- 公共组件-每个页面必须引入 -->
+		<public-module></public-module>
+		<!-- 头部 -->
+		<view class="headers dis f-c j-end">
+			<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: 15px;">{{orderInfo.inscompany}}</text>
+			</view>
+			<view style="background-color: #fff;box-shadow: inset rgb(218, 227, 244) 0px 1px 4px 0px;"
+				class="dis f-c p-2 ">
+				<view class="" style="border-bottom: 1px dashed  #EFEFEF;padding-bottom: 10px;">
+					<view style="font-size: 16px;" class="dis j-s a-c ">
+						<text style="color: #232832;font-weight: bold;">{{this.licenseNo}}</text>
+						<text style="color: #FF5600;">¥{{sumPermium}}</text>
+					</view>
+					<text style="color: rgba(51,51,51,0.8);font-size: 14px;">{{carInfo.modelcname}}</text>
+				</view>
+				<view class="dis  Circle" style="padding-top: 10px;">
+					<view style="width: 49%;border-right: 1px dashed #EFEFEF;" class="dis f-c a-start ">
+						<text style="font-size: 15px;font-weight: bold;"
+							v-if="orderInfo.jqstartdate">{{ orderInfo.jqstartdate }}</text>
+						<text v-else>-</text>
+						<text style="font-size: 14px;color: rgba(51,51,51,0.8);">交强险起保日期</text>
+					</view>
+					<view style="width: 49%;" class="dis f-c a-end">
+						<text style="font-size: 15px;font-weight: bold;"
+							v-if="orderInfo.systartdate">{{ orderInfo.systartdate }}</text>
+						<text v-else>-</text>
+						<text style="font-size: 14px;color: rgba(51,51,51,0.8);">商业险起保日期</text>
+					</view>
+				</view>
+			</view>
+		</view>
+		<view class="page">
+			<view class="quotePlan">
+				<view class="header d-flex a-center j-sb">
+					<view class="title">报价方案</view>
+				</view>
+				<view class="body" style="box-shadow: 0px 4px 10px 0px #DAE3F4;">
+					<view class="row d-flex a-center j-sb">
+						<view v-if="sumPermium">总额:</view>
+						<view>{{sumPermium}}</view>
+					</view>
+					<view class="row d-flex a-center j-sb">
+						<view>车船税:</view>
+						<view>{{taxAmount}}</view>
+					</view>
+					<view v-if="jypremium" class="row d-flex a-center j-sb">
+						<view>驾意险:</view>
+						<view>{{jypremium}}</view>
+					</view>
+					<view v-if="jqpremium" class="row d-flex a-center j-sb">
+						<view>交强险:</view>
+						<view>{{jqpremium}}</view>
+					</view>
+					<view v-if="sypremium" class="row dis f-c">
+						<view class="dis a-c j-s" style="width: 100%;">
+							<view>商业险:</view>
+							<view>{{sypremium}}</view>
+						</view>
+						<view class="kindList mt-3">
+							<block v-for="(item,index) in kindList" :key="index">
+								<template v-if="item.coveragePremium">
+									<view class="kindItem dis">
+										<view class="dis j-start" style="width: 33.33%;">
+											<text>{{item.kindName}}</text>
+										</view>
+										<view class="dis a-c j-c" v-if="['A'].includes(item.kindCode)"
+											style="width: 33.33%;"><text>
+												{{item.amount}}</text>
+										</view>
+										<view class="dis a-c j-c"
+											v-else-if="['D4', 'SY_FJ_YBW2'].includes(item.kindCode)"
+											style="width: 33.33%;">
+											<text>{{toChinesNum(item.unitAmount)}}/座*{{orderInfo.carinfo.seatCount-1}}</text>
+										</view>
+										<view class="dis a-c j-c"
+											v-else-if="['MJ1', 'MJ2', 'MJ3', 'MJ4'].includes(item.kindCode)"
+											style="width: 33.33%;">
+											<text>{{item.deductibleRate}}%</text>
+										</view>
+										<view class="dis a-c j-c" v-else style="width: 33.33%;">
+											<text>{{toChinesNum(item.amount)}}</text>
+										</view>
+										<view class="dis a-c j-end" style="width: 33.33%;">
+											<text>¥{{item.coveragePremium}}</text>
+										</view>
+									</view>
+								</template>
+							</block>
+						</view>
+					</view>
+					<view class="addedServices" v-if="roadrescueList.length>0">
+						<view class="row d-flex a-center j-sb">
+							<view class="d-flex">增值服务<view class="d-flex a-center"
+									style="color:#999;margin-left: 10upx;font-size: 24upx;">
+									不收费,使用不影响明年保费</view>
+							</view>
+							<view>赠送</view>
+						</view>
+						<view class="kindList">
+							<view class="kindItem d-flex a-center j-sb" v-for="(item,index) in roadrescueList"
+								:key="index">
+								<view>{{item.kindName}}</view>
+								<view class="d-flex j-end">{{item.serviceTimes}}次</view>
+							</view>
+
+						</view>
+					</view>
+				</view>
+			</view>
+			<view class="car">
+				<view class="header d-flex a-center j-sb" @tap="showextendInfo = !showextendInfo">
+					<view class="title">保费因素</view>
+					<view class="adjustPlan d-flex">
+						<view class="icon iconfont icon-xiala" style="font-weight: bold;color: #B3B3B3;"></view>
+					</view>
+				</view>
+				<view class="body" v-if="showextendInfo">
+					<view class="row d-flex a-center j-sb">
+						<view>评分</view>
+						<view>{{extendInfo.score}}</view>
+					</view>
+					<view class="row d-flex a-center j-sb">
+						<view>交强评分</view>
+						<view style="color: #ff9000;">{{extendInfo.jqScore}}</view>
+					</view>
+					<view class="row d-flex a-center j-sb">
+						<view>商业评分</view>
+						<view style="color: #ff9000;">{{extendInfo.syScore}}</view>
+					</view>
+					<view class="row d-flex a-center j-sb">
+						<view>出险信息</view>
+						<view style="width: 200px;text-align: right;">
+							{{extendInfo.accidentInfoStr}}
+						</view>
+					</view>
+					<view class="row d-flex a-center j-sb">
+						<view>总赔付率</view>
+						<view>{{extendInfo.lossRation}}</view>
+					</view>
+					<view class="row d-flex a-center j-sb">
+						<view>交强赔付率</view>
+						<view>{{extendInfo.jqLossRation}}</view>
+					</view>
+					<view class="row d-flex a-center j-sb">
+						<view>商业赔付率</view>
+						<view>{{extendInfo.syLossRation}}</view>
+					</view>
+					<view class="row d-flex a-center j-sb">
+						<view>总折扣率</view>
+						<view>{{extendInfo.totalAdjustRate}}</view>
+					</view>
+					<view class="row d-flex a-center j-sb">
+						<view>交强险折扣</view>
+						<view>{{extendInfo.jqAdjustRate}}</view>
+					</view>
+					<view class="row d-flex a-center j-sb">
+						<view>商业险折扣</view>
+						<view>{{extendInfo.syAdjustRate}}</view>
+					</view>
+
+				</view>
+			</view>
+			<view class="car">
+				<view class="header d-flex a-center j-sb" @tap="showCarInfo = !showCarInfo">
+					<view class="title">车辆信息</view>
+					<view class="adjustPlan d-flex">
+						<view class="icon iconfont icon-xiala" style="font-weight: bold;color: #B3B3B3;"></view>
+					</view>
+				</view>
+				<view class="body" v-if="showCarInfo">
+					<view class="row d-flex a-center j-sb">
+						<view>车牌号</view>
+						<view>{{carInfo.licenseNo}}</view>
+					</view>
+					<view class="row d-flex a-center j-sb">
+						<view>品牌型号</view>
+						<view>{{carInfo.brandName}}</view>
+					</view>
+					<view class="row d-flex a-center j-sb">
+						<view>车辆识别代码</view>
+						<view>{{carInfo.vinNo}}</view>
+					</view>
+					<view class="row d-flex a-center j-sb">
+						<view>发动机号</view>
+						<view>{{carInfo.engineNo}}</view>
+					</view>
+					<view class="row d-flex a-center j-sb">
+						<view>注册日期</view>
+						<view>{{carInfo.registerDate }}</view>
+					</view>
+					<view class="row d-flex a-center j-sb">
+						<view>核定载人数</view>
+						<view>{{carInfo.seatCount}}</view>
+					</view>
+					<view class="row d-flex a-center j-sb">
+						<view>车主</view>
+						<view>{{ownerInfo.name}}</view>
+					</view>
+				</view>
+			</view>
+
+			<view class="personInfo">
+				<view class="title d-flex a-center j-sb" @tap="showOwerInfo=!showOwerInfo">
+					<text style="font-weight: bold;">车主</text>
+					<view class="adjustPlan d-flex">
+						<view class="icon iconfont icon-xiala" style="font-weight: bold;color: #B3B3B3;"></view>
+					</view>
+				</view>
+				<view class="content" v-if="showOwerInfo">
+					<view class="row d-flex a-center">
+						<view class="left">姓名:</view>
+						<view class="right d-flex flex-1">{{ownerInfo.name}}</view>
+					</view>
+					<view class="row d-flex a-center">
+						<view class="left">证件类型:</view>
+						<view class="right flex-1">{{(policyHolderInfo.identifyType=='01')?'身份证':'其他'}}</view>
+					</view>
+					<view class="row d-flex a-center">
+						<view class="left">手机号:</view>
+						<view class="right flex-1">{{ownerInfo.mobile}}</view>
+					</view>
+					<view class="row d-flex a-center">
+						<view class="left">证件号:</view>
+						<view class="right flex-1">{{ownerInfo.identifyNumber}}</view>
+					</view>
+					<view class="row d-flex a-center"
+						style="height:auto;min-height: 80upx;padding: 15upx 0;box-sizing: border-box; ">
+						<view class="left">地址:</view>
+						<view class="right flex-1">{{ownerInfo.addr}}</view>
+					</view>
+				</view>
+			</view>
+
+			<!-- 投保人信息 -->
+			<view class="personInfo">
+				<view class="title d-flex a-center j-sb" @tap="showPolicyHolderInfo=!showPolicyHolderInfo">
+					<text style="font-weight: bold;">投保人</text>
+					<view class="adjustPlan d-flex">
+						<view class="icon iconfont icon-xiala" style="font-weight: bold;color: #B3B3B3;"></view>
+					</view>
+				</view>
+				<view class="content" v-if="showPolicyHolderInfo">
+					<view class="row d-flex a-center">
+						<view class="left">姓名:</view>
+						<view class="right d-flex flex-1">{{policyHolderInfo.name}}</view>
+					</view>
+					<view class="row d-flex a-center">
+						<view class="left">证件类型:</view>
+						<view class="right d-flex flex-1">{{(policyHolderInfo.identifyType=='01')?'身份证':'其他'}}
+						</view>
+					</view>
+					<view class="row d-flex a-center">
+						<view class="left">手机号:</view>
+						<view class="right d-flex flex-1">{{policyHolderInfo.mobile}}</view>
+					</view>
+					<view class="row d-flex a-center">
+						<view class="left">证件号:</view>
+						<view class="right d-flex flex-1">{{policyHolderInfo.identifyNumber}}</view>
+					</view>
+					<view class="row d-flex a-center"
+						style="height:auto;min-height: 80upx;padding: 15upx 0;box-sizing: border-box; ">
+						<view class="left">地址:</view>
+						<view class="right d-flex flex-1">{{policyHolderInfo.addr}}</view>
+					</view>
+				</view>
+			</view>
+
+			<!-- 被保人信息 -->
+			<view class="personInfo">
+				<view class="title d-flex a-center j-sb" @tap="showInsuredPersonInfo=!showInsuredPersonInfo">
+					<text style="font-weight: bold;">被保人</text>
+					<view class="adjustPlan d-flex">
+						<view class="icon iconfont icon-xiala" style="font-weight: bold;color: #B3B3B3;"></view>
+					</view>
+				</view>
+				<view class="content" v-if="showInsuredPersonInfo">
+					<view class="row d-flex a-center">
+						<view class="left">姓名:</view>
+						<view class="right d-flex flex-1">{{insuredPersonInfo.name}}</view>
+					</view>
+					<view class="row d-flex a-center">
+						<view class="left">证件类型:</view>
+						<view class="right d-flex flex-1">{{(policyHolderInfo.identifyType=='01')?'身份证':'其他'}}
+						</view>
+					</view>
+					<view class="row d-flex a-center">
+						<view class="left">手机号:</view>
+						<view class="right d-flex flex-1">{{insuredPersonInfo.mobile}}</view>
+					</view>
+					<view class="row d-flex a-center">
+						<view class="left">证件号:</view>
+						<view class="right d-flex flex-1">{{insuredPersonInfo.identifyNumber}}</view>
+					</view>
+					<view class="row d-flex a-center"
+						style="height:auto;min-height: 80upx;padding: 15upx 0;box-sizing: border-box; ">
+						<view class="left">地址:</view>
+						<view class="right d-flex flex-1">{{insuredPersonInfo.addr}}</view>
+					</view>
+				</view>
+			</view>
+			<view class="imageInfo">
+				<view class="title d-flex a-center j-sb" @tap="showCarImageInfo=!showCarImageInfo">
+					<text style="font-weight: bold;">车辆影像信息</text>
+					<view class="adjustPlan d-flex">
+						<view class="icon iconfont icon-xiala" style="font-weight: bold;color: #B3B3B3;"></view>
+					</view>
+				</view>
+				<view class="uni-uploader" v-if="showCarImageInfo">
+					<view class="uni-uploader-body dis j-s a-c">
+						<view class="uni-uploader__files f-c dis ">
+							<text>行驶证主页</text>
+							<block v-for="(image,index) in imgList1" :key="index">
+								<view class="uni-uploader__file">
+									<image class="uni-uploader__img" :src="image.url" :data-src="image.url"
+										@tap="previewImage($event,'imgList1')"></image>
+									<view class="delImgIcon iconfont icon-cuo d-flex a-center j-center"
+										@tap="delCheckImage(image,'carImageListId','imgList1')"></view>
+								</view>
+							</block>
+							<view v-if="imgList1.length==0" class="uni-uploader__input-box"
+								style="box-sizing: border-box;">
+								<view class="uni-uploader__input" @tap="chooseImage('C01','carImageListId','imgList1')">
+								</view>
+							</view>
+						</view>
+						<view class="uni-uploader__files f-c dis ">
+							<text>行驶证副本</text>
+							<block v-for="(image,index) in imgList2" :key="index">
+								<view class="uni-uploader__file">
+									<image class="uni-uploader__img" :src="image.url" :data-src="image.url"
+										@tap="previewImage($event,'imgList2')"></image>
+									<view class="delImgIcon iconfont icon-cuo d-flex a-center j-center"
+										@tap="delCheckImage(image,'carImageListId','imgList2')"></view>
+								</view>
+							</block>
+							<view v-if="imgList2.length==0" class="uni-uploader__input-box"
+								style="box-sizing: border-box;">
+								<view class="uni-uploader__input" @tap="chooseImage('D01','carImageListId','imgList2')">
+								</view>
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+			<!-- 车辆影像信息End -->
+			<!-- 车主影像信息Start -->
+			<view class="imageInfo">
+				<view class="title d-flex a-center j-sb" @tap="showOwnerImageInfo=!showOwnerImageInfo">
+					<text style="font-weight: bold;">车主影像信息</text>
+					<view class="adjustPlan d-flex">
+						<view class="icon iconfont icon-xiala" style="font-weight: bold;color: #B3B3B3;"></view>
+					</view>
+				</view>
+				<view class="uni-uploader" v-if="showOwnerImageInfo">
+					<view class="uni-uploader-body dis ">
+						<view class="uni-uploader__files dis f-c a-c">
+							<text>正面</text>
+							<block v-for="(image,index) in imgList3" :key="index">
+								<view class="uni-uploader__file">
+									<image class="uni-uploader__img" :src="image.url" :data-src="image.url"
+										@tap="previewImage($event,'imgList3')"></image>
+									<view class="delImgIcon iconfont icon-cuo d-flex a-center j-center"
+										@tap="delCheckImage(image,'ownerImageListId','imgList3')"></view>
+								</view>
+							</block>
+							<view v-if="imgList3.length==0" class="uni-uploader__input-box"
+								style="box-sizing: border-box;">
+								<view class="uni-uploader__input"
+									@tap="chooseImage('C02','ownerImageListId','imgList3')"></view>
+							</view>
+						</view>
+						<view class="uni-uploader__files dis f-c a-c">
+							<text>反面</text>
+							<block v-for="(image,index) in imgList4" :key="index">
+								<view class="uni-uploader__file">
+									<image class="uni-uploader__img" :src="image.url" :data-src="image.url"
+										@tap="previewImage($event,'imgList4')"></image>
+									<view class="delImgIcon iconfont icon-cuo d-flex a-center j-center"
+										@tap="delCheckImage(image,'ownerImageListId','imgList4')"></view>
+								</view>
+							</block>
+							<view v-if="imgList4.length==0" class="uni-uploader__input-box"
+								style="box-sizing: border-box;">
+								<view class="uni-uploader__input"
+									@tap="chooseImage('D02','ownerImageListId','imgList4')"></view>
+							</view>
+						</view>
+					</view>
+				</view>
+
+			</view>
+			<!-- 车主影像信息End -->
+			<!-- 投保人影像信息Start -->
+			<view class="imageInfo">
+				<view class="title d-flex a-center j-sb" @tap="showPolicyImageInfo=!showPolicyImageInfo">
+					<text style="font-weight: bold;">投保人影像信息</text>
+					<view class="adjustPlan d-flex">
+						<view class="icon iconfont icon-xiala" style="font-weight: bold;color: #B3B3B3;"></view>
+					</view>
+				</view>
+				<view class="uni-uploader" v-if="showPolicyImageInfo">
+					<view class="uni-uploader-body dis ">
+						<view class="uni-uploader__files dis f-c a-c">
+							<text>正面</text>
+							<block v-for="(image,index) in imgList5" :key="index">
+								<view class="uni-uploader__file">
+									<image class="uni-uploader__img" :src="image.url" :data-src="image.url"
+										@tap="previewImage($event,'imgList5')"></image>
+									<view class="delImgIcon iconfont icon-cuo d-flex a-center j-center"
+										@tap="delCheckImage(image,'policyImageListId','imgList5')"></view>
+								</view>
+							</block>
+							<view v-if="imgList5.length==0" class="uni-uploader__input-box"
+								style="box-sizing: border-box;">
+								<view class="uni-uploader__input"
+									@tap="chooseImage('C03','policyImageListId','imgList5')"></view>
+							</view>
+						</view>
+						<view class="uni-uploader__files dis f-c a-c">
+							<text>反面</text>
+							<block v-for="(image,index) in imgList6" :key="index">
+								<view class="uni-uploader__file">
+									<image class="uni-uploader__img" :src="image.url" :data-src="image.url"
+										@tap="previewImage($event,'imgList6')"></image>
+									<view class="delImgIcon iconfont icon-cuo d-flex a-center j-center"
+										@tap="delCheckImage(image,'policyImageListId','imgList6')"></view>
+								</view>
+							</block>
+							<view v-if="imgList6.length==0" class="uni-uploader__input-box"
+								style="box-sizing: border-box;">
+								<view class="uni-uploader__input"
+									@tap="chooseImage('D03','policyImageListId','imgList6')"></view>
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+			<!-- 投保人影像信息End -->
+			<!-- 被保人影像信息Start -->
+			<view class="imageInfo">
+				<view class="title d-flex a-center j-sb" @tap="showInsuredImageInfo=!showInsuredImageInfo">
+					<text style="font-weight: bold;">被保人影像信息</text>
+					<view class="adjustPlan d-flex">
+						<view class="icon iconfont icon-xiala" style="font-weight: bold;color: #B3B3B3;"></view>
+					</view>
+				</view>
+				<view class="uni-uploader" v-if="showInsuredImageInfo">
+					<view class="uni-uploader-body dis ">
+						<view class="uni-uploader__files dis f-c a-c">
+							<text>正面</text>
+							<block v-for="(image,index) in imgList7" :key="index">
+								<view class="uni-uploader__file">
+									<image class="uni-uploader__img" :src="image.url" :data-src="image.url"
+										@tap="previewImage($event,'imgList7')"></image>
+									<view class="delImgIcon iconfont icon-cuo d-flex a-center j-center"
+										@tap="delCheckImage(image,'insuredImageListId','imgList7')"></view>
+								</view>
+							</block>
+							<view v-if="imgList7.length==0" class="uni-uploader__input-box"
+								style="box-sizing: border-box;">
+								<view class="uni-uploader__input"
+									@tap="chooseImage('C04','insuredImageListId','imgList7')"></view>
+							</view>
+						</view>
+						<view class="uni-uploader__files dis f-c a-c">
+							<text>反面</text>
+							<block v-for="(image,index) in imgList8" :key="index">
+								<view class="uni-uploader__file">
+									<image class="uni-uploader__img" :src="image.url" :data-src="image.url"
+										@tap="previewImage($event,'imgList8')"></image>
+									<view class="delImgIcon iconfont icon-cuo d-flex a-center j-center"
+										@tap="delCheckImage(image,'insuredImageListId','imgList8')"></view>
+								</view>
+							</block>
+							<view v-if="imgList8.length==0" class="uni-uploader__input-box"
+								style="box-sizing: border-box;">
+								<view class="uni-uploader__input"
+									@tap="chooseImage('D04','insuredImageListId','imgList8')"></view>
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+			<!-- 被保人影像信息End -->
+			<!-- 新车影像信息Start -->
+			<view class="imageInfo">
+				<view class="title d-flex a-center j-sb" @tap="showNewCarImageInfo=!showNewCarImageInfo">
+					<text style="font-weight: bold;">新车照片</text>
+					<view class="adjustPlan d-flex">
+						<view class="icon iconfont icon-xiala" style="font-weight: bold;color: #B3B3B3;"></view>
+					</view>
+				</view>
+				<view class="uni-uploader" v-if="showNewCarImageInfo">
+					<view class="uni-uploader-body dis ">
+						<view class="uni-uploader__files dis f-c a-c">
+							<text>新车合格证</text>
+							<block v-for="(image,index) in imgNewCarQualified" :key="index">
+								<view class="uni-uploader__file">
+									<image class="uni-uploader__img" :src="image.url" :data-src="image.url"
+										@tap="previewImage($event,'imgNewCarQualified')"></image>
+									<view class="delImgIcon iconfont icon-cuo d-flex a-center j-center"
+										@tap="delCheckImage(image,'imgNewCarinvoiceId','imgNewCarQualified')">
+									</view>
+								</view>
+							</block>
+							<view v-if="imgNewCarQualified.length==0" class="uni-uploader__input-box"
+								style="box-sizing: border-box;">
+								<view class="uni-uploader__input"
+									@tap="chooseImage('XC00','imgNewCarinvoiceId','imgNewCarQualified')"></view>
+							</view>
+						</view>
+						<view class="uni-uploader__files dis f-c a-c">
+							<text>购车发票</text>
+							<block v-for="(image,index) in imgNewCarInvoice" :key="index">
+								<view class="uni-uploader__file">
+									<image class="uni-uploader__img" :src="image.url" :data-src="image.url"
+										@tap="previewImage($event,'imgNewCarInvoice')"></image>
+									<view class="delImgIcon iconfont icon-cuo d-flex a-center j-center"
+										@tap="delCheckImage(image,'imgNewCarinvoiceId','imgNewCarInvoice')"></view>
+								</view>
+							</block>
+							<view v-if="imgNewCarInvoice.length==0" class="uni-uploader__input-box"
+								style="box-sizing: border-box;">
+								<view class="uni-uploader__input"
+									@tap="chooseImage('GC00','imgNewCarinvoiceId','imgNewCarInvoice')"></view>
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+			<!-- 新车影像信息End -->
+			<!-- 验车照Start -->
+			<view class="imageInfo">
+				<view class="title d-flex a-center j-sb" @tap="showCarCheckImageInfo=!showCarCheckImageInfo">
+					<text style="font-weight: bold;">其他关系证明</text>
+					<view class="adjustPlan d-flex">
+						<view class="icon iconfont icon-xiala" style="font-weight: bold;color: #B3B3B3;"></view>
+					</view>
+				</view>
+				<view class="uni-uploader" v-if="showCarCheckImageInfo">
+					<view class="uni-uploader-body">
+						<view class="uni-uploader__files">
+							<block v-for="(image,index) in imgRelationship" :key="index">
+								<view class="uni-uploader__file">
+									<image class="uni-uploader__img" :src="image.url" :data-src="image.url"
+										@tap="previewImage($event,'imgRelationship')"></image>
+									<view class="delImgIcon iconfont icon-cuo d-flex a-center j-center "
+										@tap="delCheckImage('imgRelationship',index)"></view>
+								</view>
+							</block>
+							<view class="uni-uploader__input-box" style="box-sizing: border-box;">
+								<view class="uni-uploader__input"
+									@tap="chooseImage('GX00','imgRelationshipid','imgRelationship')"></view>
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+			<!-- 特约 -->
+			<view class="appoint" v-if="['紫金财险','华泰财险'].includes(this.name)">
+				<view class="title d-flex a-center j-sb" @tap="showAppoint=!showAppoint">
+					<text style="font-weight: bold;">特约</text>
+					<view class="adjustPlan d-flex">
+						<view class="icon iconfont icon-xiala" style="font-weight: bold;color: #B3B3B3;"></view>
+					</view>
+				</view>
+				<view class=" dis f-c j-c " v-if="showAppoint"
+					style="background-color: #fff;padding: 8px 15px;border-radius: 6px;">
+					<template v-if="this.name=='紫金财险'">
+						<u-button type="warning" size="mini" style="width: 80px;margin-top: 5px;"
+							@click="ziJinshow=true">特约选择</u-button>
+						<view class="contributing dis f-c" v-for="(ziJinitem,ziJinindex) in ziJinengageList"
+							:key="ziJinindex">
+							<text style="font-size: 14px;">{{ziJinitem.clauseName}}</text>
+							<u-input v-if="ziJinitem.modifyFlag==1" :border="true" v-model="ziJinitem.clauses"
+								size="mini" type="textarea" :custom-style="{fontSize:'12px'}" />
+							<text v-else>{{ziJinitem.clauses}}</text>
+						</view>
+					</template>
+					<template v-if="this.name=='华泰财险'">
+						<u-button type="warning" size="mini" style="width: 80px;margin-top: 5px;"
+							@click="huaTaishow=true">特约选择</u-button>
+						<view class="contributing dis f-c" v-for="(huaTaiitem, huaTaiindex) in huaTaiengageList"
+							:key="huaTaiindex">
+							<text style="font-size: 14px;">{{huaTaiitem.engageTitle}}</text>
+							<u-input v-if="huaTaiitem.modifyFlag==1" :border="true" v-model="huaTaiitem.engageDetail"
+								size="mini" type="textarea" :custom-style="{fontSize:'12px'}" />
+							<text v-else>{{huaTaiitem.engageDetail}}</text>
+						</view>
+					</template>
+				</view>
+			</view>
+
+
+			<view class="personInfo" v-if="!!orderInfo.jqapplyno">
+				<view class="title d-flex a-center j-sb" @tap="showApplyno=!showApplyno">
+					<text style="font-weight: bold;">投保单号</text>
+					<view class="adjustPlan d-flex">
+						<view class="icon iconfont icon-xiala" style="font-weight: bold;color: #B3B3B3;"></view>
+					</view>
+				</view>
+				<view class="content" v-if="showApplyno">
+					<view class="row d-flex a-center" v-if="!!orderInfo.jqapplyno">
+						<view class="left">交强险:</view>
+						<view class="right d-flex flex-1">{{orderInfo.jqapplyno}}</view>
+					</view>
+					<view class="row d-flex a-center" v-if="!!orderInfo.syapplyno">
+						<view class="left">商业险:</view>
+						<view class="right d-flex flex-1">{{orderInfo.syapplyno}}</view>
+					</view>
+				</view>
+			</view>
+			<view class="personInfo" v-if="!!orderInfo.jqpolicyno">
+				<view class="title d-flex a-center j-sb" @tap="showPolicyno=!showPolicyno">
+					<text style="font-weight: bold;">保单号</text>
+					<view class="adjustPlan d-flex">
+						<view class="icon iconfont icon-xiala" style="font-weight: bold;color: #B3B3B3;"></view>
+					</view>
+				</view>
+				<view class="content" v-if="showPolicyno">
+					<view class="row d-flex a-center" v-if="!!orderInfo.jqpolicyno">
+						<view class="left">交强险:</view>
+						<view class="right d-flex flex-1">{{orderInfo.jqpolicyno}}</view>
+					</view>
+					<view class="row d-flex a-center" v-if="!!orderInfo.sypolicyno">
+						<view class="left">商业险:</view>
+						<view class="right d-flex flex-1">{{orderInfo.sypolicyno}}</view>
+					</view>
+				</view>
+			</view>
+			<view class="personInfo" v-if="policyList.length>0">
+				<view class="title d-flex a-center j-sb" @tap="showPolicyFile=!showPolicyFile">
+					<text style="font-weight: bold;">电子保单(点击即可预览下载)</text>
+					<view class="adjustPlan d-flex">
+						<view class="icon iconfont icon-xiala" style="font-weight: bold;color: #B3B3B3;"></view>
+					</view>
+				</view>
+				<view class="content" v-if="showPolicyFile">
+					<view class="row d-flex a-center" v-for="(policyListitem,policyListindex) in policyList"
+						:key="policyListindex">
+						<view class="left" style="width: 110px;flex-shrink: 0;">{{policyListitem.fileTitle}}:
+						</view>
+						<view class="right d-flex flex-1"
+							style="flex-shrink: 0;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;">
+							{{policyListitem.filename}}
+						</view>
+						<view class="right d-flex a-center j-center" style="width: 160upx;flex-shrink: 0;">
+							<text class="checkButton d-flex a-center j-center"
+								@tap="downloadPolicy(policyListitem.fileurl)">下载</text>
+						</view>
+					</view>
+				</view>
+			</view>
+			<view class="personInfo" v-if="policyList1.length>0">
+				<view class="title d-flex a-center j-sb" @tap="showPolicybzFile=!showPolicybzFile">
+					<text style="font-weight: bold;">电子标志(点击即可预览下载)</text>
+					<view class="adjustPlan d-flex">
+						<view class="icon iconfont icon-xiala" style="font-weight: bold;color: #B3B3B3;"></view>
+					</view>
+				</view>
+				<view class="content" v-if="showPolicybzFile" v-for="(policyListitem1,policyListindex1) in policyList1"
+					:key="policyListindex1">
+					<view class="row d-flex a-center">
+						<view class="left" style="width: 110px;flex-shrink: 0;">{{policyListitem1.fileTitle}}:
+						</view>
+						<view class="right d-flex flex-1"
+							style="flex-shrink: 0;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;">
+							{{policyListitem1.filename}}
+						</view>
+						<view class="right d-flex a-center j-center" style="width: 160upx;flex-shrink: 0;">
+							<text class="checkButton d-flex a-center j-center"
+								@tap="downloadPolicy(policyListitem1.fileurl)">下载</text>
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+		<view class="bottomBtn dis f-c"
+			v-if="orderstatus==0 && routepage!='pages/orders/subOrders' && routepage!='pages/orders/quoteHistory'">
+			<view class="agree dis a-c ">
+				<u-checkbox v-model="agree" active-color="#FF5600" size="28" @change="agreed"
+					style="display: block;margin-right: 4px;" />
+				我已确认并同意 <text class="tip">保险条款</text> | <text class="tip">投保须知</text> | <text class="tip">隐私条款</text>
+			</view>
+			<view class="btnView dis a-c">
+				<view class="btn dis j-start a-c">应付:<text
+						style="font-size: 14px;font-weight: bold;">¥{{sumPermium}}</text> </view>
+				<view class="btn dis j-c a-c" @tap="toolPopupshow=true">修改</view>
+				<view class="btn dis a-c j-c" @tap="submitAudit">确认核保</view>
+			</view>
+		</view>
+		<u-popup v-model="toolPopupshow" mode="bottom" border-radius="10" height="">
+			<view class="tool">
+				<!-- <view class="dis j-c a-c" @click="toCarInfo">修改车辆信息</view> -->
+				<view class="dis j-c a-c" @click="toInsureItems">修改险种配置</view>
+			</view>
+			<view class="cancell dis a-c j-c" @click="toolPopupshow=false">取消</view>
+		</u-popup>
+
+		<u-modal v-model="ziJinshow" title="特约保险"
+			:title-style="{fontWeight: 'bold',borderBottom:'1px solid #f2f2f2',padding:'10px'}"
+			:scroll-height="{height: '300px'}" :confirm-style="{background:'#E6EEFF',color:'#0052FF'}">
+			<view class="slot-content">
+				<u-checkbox-group @change="ziJincontributingChange">
+					<u-checkbox v-model="item.checked" active-color="rgb(255, 153, 0)"
+						v-for="(item, index) in ziJinengageListData" :key="index"
+						:name="item.clauseId">{{item.clauseName}}</u-checkbox>
+				</u-checkbox-group>
+			</view>
+		</u-modal>
+
+		<u-modal v-model="huaTaishow" title="华泰特约选择" :title-style="{fontWeight: 'bold'}"
+			:scroll-height="{height: '300px'}">
+			<view class="slot-content">
+				<u-checkbox-group @change="huaTaicontributingChange">
+					<u-checkbox v-model="item.checked" active-color="rgb(255, 153, 0)"
+						v-for="(item, index) in huaTaiengageListData" :key="index"
+						:name="item.engageCode">{{item.engageTitle}}</u-checkbox>
+				</u-checkbox-group>
+			</view>
+		</u-modal>
+		<previewImage ref="previewImage" :opacity="0.8" :circular="true" :imgs="previewImgs"></previewImage>
+	</view>
+</template>
+<script>
+	import {
+		mapState,
+		mapMutations
+	} from "vuex"
+	import {
+		pathToBase64,
+		base64ToPath
+	} from '@/common/pdf.js'
+	import uniPopup from '@/components/uni-popup/uni-popup.vue';
+	import previewImage from '@/components/common/previewImage/previewImage.vue'; //引用插件
+	export default {
+		components: {
+			uniPopup,
+			previewImage
+		},
+		computed: {
+			...mapState(['userInfo', 'token']),
+			getHeight() {
+				let height = uni.getSystemInfoSync().windowHeight;
+				return `minHeight: ${height}px;`;
+			}
+		},
+		data() {
+			return {
+				ziJinshow: false, //紫金特约
+				huaTaishow: false, //紫金特约
+				toolPopupshow: false, //底部弹窗
+				agree: false,
+				logoimg: "",
+				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"
+					},
+				],
+				companyId: "", //订单号
+				orderInfo: {},
+				licenseNo: "", //车牌号
+				icon: "", //保险公司logo
+				name: "", //保险公司名称
+				carInfo: {}, //车辆信息
+				ownerInfo: {}, //车主信息
+				policyHolderInfo: {}, //投保人信息
+				insuredPersonInfo: {}, //被保人信息
+				riskList: [], //险种大类信息
+				kindList: [], //商业险险别
+				sumPermium: "", //报价金额
+				taxAmount: "", //车船税金额
+				jqpremium: "", //交强险金额
+				sypremium: "", //商业险金额
+				feerate: "",
+				disrate: "",
+				syappoint: "",
+				orderstatus: "0", //订单状态
+				CIStartDate: "", //交强险日期
+				BIStartDate: "", //商业险日期
+				showCarInfo: false,
+				showextendInfo: false,
+				insureList: [{
+						amount: "0",
+						coveragePremium: "",
+						amtList: [{
+							"label": "投保",
+							"value": "1"
+						}],
+						kindCode: "A",
+						isMainRisk: true,
+						kindName: "机动车损失险"
+					},
+					{
+						amount: "0",
+						coveragePremium: "",
+						amtList: [{
+							"label": "10万",
+							"value": "100000"
+						}, {
+							"label": "15万",
+							"value": "150000"
+						}, {
+							"label": "20万",
+							"value": "200000"
+						}, {
+							"label": "30万",
+							"value": "300000"
+						}, {
+							"label": "50万",
+							"value": "500000"
+						}, {
+							"label": "100万",
+							"value": "1000000"
+						}, {
+							"label": "150万",
+							"value": "1500000"
+						}, {
+							"label": "200万",
+							"value": "2000000"
+						}, {
+							"label": "250万",
+							"value": "2500000"
+						}, {
+							"label": "300万",
+							"value": "3000000"
+						}, {
+							"label": "500万",
+							"value": "5000000"
+						}, {
+							"label": "1000万",
+							"value": "10000000"
+						}],
+						kindCode: "B",
+						isMainRisk: true,
+						kindName: "第三者责任险"
+					},
+					{
+						amount: "0",
+						coveragePremium: "",
+						amtList: [{
+							"label": "1万",
+							"value": "10000"
+						}, {
+							"label": "2万",
+							"value": "20000"
+						}, {
+							"label": "5万",
+							"value": "50000"
+						}, {
+							"label": "10万",
+							"value": "100000"
+						}, {
+							"label": "15万",
+							"value": "150000"
+						}, {
+							"label": "20万",
+							"value": "200000"
+						}],
+						kindCode: "D3",
+						isMainRisk: true,
+						kindName: "司机责任险"
+					},
+					{
+						amount: "0",
+						coveragePremium: "",
+						amtList: [{
+							"label": "1万",
+							"value": "10000"
+						}, {
+							"label": "2万",
+							"value": "20000"
+						}, {
+							"label": "5万",
+							"value": "50000"
+						}, {
+							"label": "10万",
+							"value": "100000"
+						}, {
+							"label": "15万",
+							"value": "150000"
+						}, {
+							"label": "20万",
+							"value": "200000"
+						}],
+						kindCode: "D4",
+						isMainRisk: true,
+						kindName: "乘客责任险"
+					},
+					{
+						amount: "0",
+						coveragePremium: "",
+						amtList: [{
+							"label": "2000",
+							"value": "2000"
+						}, {
+							"label": "5000",
+							"value": "5000"
+						}, {
+							"label": "1万",
+							"value": "10000"
+						}],
+						isMainRisk: false,
+						kindCode: "L",
+						kindName: "车身划痕险",
+						mainRiskCodeList: "A"
+					},
+					{
+						amount: "0",
+						coveragePremium: "",
+						amtList: [{
+							"label": "5%",
+							"value": "5"
+						}, {
+							"label": "10%",
+							"value": "10"
+						}, {
+							"label": "15%",
+							"value": "15"
+						}, {
+							"label": "20%",
+							"value": "20"
+						}],
+						isMainRisk: false,
+						kindCode: "MJ1",
+						kindName: "绝对免赔率特约险(车损)",
+						mainRiskCodeList: "A"
+					},
+					{
+						amount: "0",
+						coveragePremium: "",
+						amtList: [{
+							"label": "5%",
+							"value": "5"
+						}, {
+							"label": "10%",
+							"value": "10"
+						}, {
+							"label": "15%",
+							"value": "15"
+						}, {
+							"label": "20%",
+							"value": "20"
+						}],
+						isMainRisk: false,
+						kindCode: "MJ2",
+						kindName: "绝对免赔率特约险(三者)",
+						mainRiskCodeList: "B"
+					},
+					{
+						amount: "0",
+						coveragePremium: "",
+						amtList: [{
+							"label": "5%",
+							"value": "5"
+						}, {
+							"label": "10%",
+							"value": "10"
+						}, {
+							"label": "15%",
+							"value": "15"
+						}, {
+							"label": "20%",
+							"value": "20"
+						}],
+						isMainRisk: false,
+						kindCode: "MJ3",
+						kindName: "绝对免赔率特约险(司机)",
+						mainRiskCodeList: "D3"
+					},
+					{
+						amount: "0",
+						coveragePremium: "",
+						amtList: [{
+							"label": "5%",
+							"value": "5"
+						}, {
+							"label": "10%",
+							"value": "10"
+						}, {
+							"label": "15%",
+							"value": "15"
+						}, {
+							"label": "20%",
+							"value": "20"
+						}],
+						isMainRisk: false,
+						kindCode: "MJ4",
+						kindName: "绝对免赔率特约险(乘客)",
+						mainRiskCodeList: "D4"
+					},
+					{
+						amount: "0",
+						coveragePremium: "",
+						amtList: [{
+							"label": "投保",
+							"value": "1"
+						}],
+						isMainRisk: false,
+						kindCode: "BD",
+						kindName: "法定节假日限额翻倍险",
+						mainRiskCodeList: "B"
+					},
+					{
+						amount: "0",
+						amountDesc: "不投保",
+						coveragePremium: "",
+						amtList: [{
+								label: "不投保",
+								value: "0"
+							},
+							{
+								label: "1万",
+								value: "10000"
+							},
+							{
+								label: "2万",
+								value: "20000"
+							},
+							{
+								label: "5万",
+								value: "50000"
+							},
+							{
+								label: "10万",
+								value: "100000"
+							}
+						],
+						kindCode: "SY_FJ_YBW1",
+						isMainRisk: false,
+						kindName: "附加医保-三者",
+						desc: "附加医保外医疗费用责任险(机动车第三者责任保险)"
+					},
+					{
+						amount: "0",
+						amountDesc: "不投保",
+						coveragePremium: 0,
+						amtList: [{
+								label: "不投保",
+								value: "0"
+							},
+							{
+								label: "1万",
+								value: "10000"
+							},
+							{
+								label: "2万",
+								value: "20000"
+							},
+							{
+								label: "5万",
+								value: "50000"
+							},
+							{
+								label: "10万",
+								value: "100000"
+							}
+						],
+						kindCode: "SY_FJ_YBW2",
+						isMainRisk: false,
+						kindName: "附加医保-座位险(乘客)",
+						desc: "附加医保外医疗费用责任险(机动车第三者责任保险)"
+					},
+					{
+						amount: "0",
+						amountDesc: "不投保",
+						coveragePremium: 0,
+						amtList: [{
+								label: "不投保",
+								value: "0"
+							},
+							{
+								label: "1万",
+								value: "10000"
+							},
+							{
+								label: "2万",
+								value: "20000"
+							},
+							{
+								label: "5万",
+								value: "50000"
+							},
+							{
+								label: "10万",
+								value: "100000"
+							}
+						],
+						kindCode: "SY_FJ_YBW3",
+						isMainRisk: false,
+						kindName: "附加医保-座位险(司机)",
+						desc: "附加医保外医疗费用责任险(机动车第三者责任保险)"
+					},
+				],
+
+				bottomData: [
+					// #ifdef APP-PLUS
+					{
+						text: '微信好友',
+						icon: '/static/image/share/weixinhaoyou.png',
+						name: 'wx'
+					},
+					{
+						text: '短信发送',
+						icon: '/static/image/share/shortMessage.png',
+						name: 'dx'
+					},
+					// #endif
+					{
+						text: '报价单',
+						icon: '/static/image/share/shortMessage.png',
+						name: 'bjd'
+					}
+				],
+				vehicleModel: {}, //车型信息
+				showOwerInfo: false, //展示车主信息
+				showPolicyHolderInfo: false, //展示投保人信息
+				showInsuredPersonInfo: false, //展示被保人信息
+				showProposalWay: false, //获取保单方式
+				showAdvancePayment: false, //展示保费
+				showAppoint: false, //展示特约
+				showDistribution: false, //展示快递
+				showApplyno: false, //展示投保单号
+				showPolicyno: false, //展示保单号
+				showPolicyFile: false, //展示电子保单
+				showPolicybzFile: false, //展示电子保单
+				policyList: [], //电子保单文件
+				policyList1: [], //电子标志文件
+				showCarImageInfo: false, //显示车辆影像
+				carImageListId: [],
+				showOwnerImageInfo: false, //显示车主影像
+				ownerImageListId: [],
+				showPolicyImageInfo: false, //显示投保人影像
+				policyImageListId: [],
+				showInsuredImageInfo: false, //显示被保人影像
+				insuredImageListId: [],
+				showCarCheckImageInfo: false, //显示验车照影像
+				imgRelationshipid: [],
+				showNewCarImageInfo: false, //显示新车影像
+				imgNewCarinvoiceId: [],
+				imgList1: [],
+				imgList2: [],
+				imgList3: [],
+				imgList4: [],
+				imgList5: [],
+				imgList6: [],
+				imgList7: [],
+				imgList8: [],
+				imgRelationship: [], //其他证明
+				imgNewCarQualified: [], //合格证
+				imgNewCarInvoice: [], //发票
+				previewImgs: [],
+				dianzibaodan: "",
+				jypremium: "",
+				quoteno: "",
+				extendInfo: {},
+				routepage: "",
+				roadrescueList: [],
+				companyUnderwriting: "",
+				ziJinengageListData: [],
+				ziJinengageList: [],
+				huaTaiengageListData: [],
+				huaTaiengageList: [],
+			}
+		},
+		async onLoad(params) {
+			let pages = getCurrentPages(); // 当前页面路由
+			if (pages.length > 1) {
+				let beforePage = pages[pages.length - 2].route; // 上一个页面路由
+				this.routepage = beforePage;
+			}
+			if (!this.token) {
+				document.getElementsByTagName('uni-page-head')[0].style.display = 'none'
+			}
+			if (!!params.companyId) {
+				this.companyId = params.companyId;
+				let param = {
+					companyId: params.companyId
+				};
+				let res = await this.$http.post('/insurance/order/getByCompanyId', param);
+				if (res.code == 200) {
+					this.icon = "";
+					this.quoteno = res.data.quoteno;
+					this.name = res.data.inscompany;
+					this.carInfo = res.data.carinfo;
+					this.extendInfo = res.data.extendInfo;
+					this.licenseNo = res.data.licenseno;
+					if (!!this.carInfo.loanStatus) {
+						this.carInfo.loanStatus = 1;
+					} else {
+						this.carInfo.loanStatus = 0;
+					}
+					if (!!this.carInfo.registerDate) {
+						let year1 = new Date(this.carInfo.registerDate).getFullYear()
+						let month1 = new Date(this.carInfo.registerDate).getMonth() + 1
+						if (month1 < 10) {
+							month1 = '0' + month1;
+						}
+						let day1 = new Date(this.carInfo.registerDate).getDate()
+						if (day1 < 10) {
+							day1 = '0' + day1;
+						}
+						this.carInfo.registerDate = year1 + '-' + month1 + '-' + day1
+					}
+					if (!!this.carInfo.issueDate) {
+						let year2 = new Date(this.carInfo.issueDate).getFullYear()
+						let month2 = new Date(this.carInfo.issueDate).getMonth() + 1
+						if (month2 < 10) {
+							month2 = '0' + month2;
+						}
+						let day2 = new Date(this.carInfo.issueDate).getDate()
+						if (day2 < 10) {
+							day2 = '0' + day2;
+						}
+						this.carInfo.issueDate = year2 + '-' + month2 + '-' + day2
+					}
+					if (!!this.carInfo.transferDate) {
+						let year3 = new Date(this.carInfo.transferDate).getFullYear()
+						let month3 = new Date(this.carInfo.transferDate).getMonth() + 1
+						if (month3 < 10) {
+							month3 = '0' + month3;
+						}
+						let day3 = new Date(this.carInfo.transferDate).getDate()
+						if (day3 < 10) {
+							day3 = '0' + day3;
+						}
+						this.carInfo.transferDate = year3 + '-' + month3 + '-' + day3
+					}
+					this.ownerInfo = res.data.ownerinfo;
+					this.policyHolderInfo = res.data.applyinfo;
+					this.insuredPersonInfo = res.data.insureinfo;
+					this.riskList = res.data.riskinfo;
+					this.kindList = res.data.kindinfo;
+					this.roadrescueList = this.kindList.filter((val) => {
+						return ["TY1", "TY2", "TY3", "TY4"].includes(val.kindCode)
+					})
+					this.sumPermium = res.data.sumpremium;
+					this.taxAmount = res.data.taxamount;
+					this.sypremium = res.data.sypremium;
+					this.jqpremium = res.data.jqpremium;
+					this.jypremium = res.data.jypremium;
+					this.orderstatus = res.data.orderstatus;
+					this.feerate = res.data.feerate;
+					this.disrate = res.data.disrate;
+					this.jqdiscountrate = res.data.jqdiscountrate;
+					this.sydiscountrate = res.data.sydiscountrate;
+					this.syappoint = res.data.syappoint;
+					this.orderInfo = {};
+					Object.assign(this.orderInfo, res.data)
+					this.imageEcho(this.quoteno) // 影像获取完毕
+					switch (this.name) {
+						case "永安财险":
+							this.yonganprint(); //电子保单
+							break;
+						case "中煤财险":
+							this.zhongMeigetPolicyPrint(); //电子保单
+							break;
+						case "恒邦财险":
+						case "安盛天平":
+						case "众安财险":
+						case "中国人寿":
+						case "太平财险":
+						case "华农财险":
+							this.pythonprint(); //电子保单
+							break;
+						case "永诚财险":
+							this.yongChenggetPolicyPrint(); //电子保单
+							break;
+						case "紫金财险":
+							this.ziJingetPolicyPrint(); //电子保单
+							break;
+						case "华泰财险":
+							this.huaTaigetPolicyPrint(); //电子保单
+							break;
+						case "国任财险":
+							this.guoRengetPolicyPrint(); //电子保单
+							break;
+						case "大家财险":
+							this.daJiagetPolicyPrint(); //电子保单
+							break;
+					}
+					this.insCompanyList.map(ele => {
+						if (ele.name == res.data.inscompany) {
+							uni.getImageInfo({
+								src: ele.icon,
+								success: image => {
+									pathToBase64(image.path)
+										.then(base64 => {
+											this.logoimg = base64;
+										})
+										.catch(error => {});
+								},
+								fail: err => {}
+							});
+						}
+						return ele;
+					})
+				}
+				if (this.name == '紫金财险') {
+					let Zijinres = await this.$http.post('/order/zijin/queryClauseData', param);
+					this.ziJinengageListData = Zijinres.data;
+					let data = this.ziJinengageListData.find(val => val.optType == 3)
+					if (data) {
+						this.ziJinengageList.push({
+							clauseCode: data.clauseCode,
+							clauseName: data.clauseName,
+							clauses: data.clauseContent,
+							riskCode: data.riskCode,
+							modifyFlag: data.modifyFlag,
+							optType: data.optType,
+						})
+					}
+
+				}
+				if (this.name == '华泰财险') {
+					let huaTaires = await this.$http.post('/order/huaTaiApi/queryClauseData', param);
+					this.huaTaiengageListData = huaTaires.data;
+					huaTaires.data.map(val => {
+						if (val.optType == '2') {
+							this.huaTaiengageList.push({
+								engageCode: val.engageCode,
+								engageDetail: val.engageDetail,
+								engageTitle: val.engageTitle,
+								riskCode: val.riskCode,
+								modifyFlag: val.modifyFlag,
+							})
+						}
+					})
+				}
+			} else {
+				uni.showModal({
+					showCancel: false,
+					title: "未查询到该订单"
+				})
+			}
+		},
+		methods: {
+			...mapMutations(['setOrderStage', 'setOrderType']),
+			ziJincontributingChange(param) {
+				this.ziJinengageList = [];
+				param.map(val => {
+					let list = this.ziJinengageListData.find(item => item.clauseId == val)
+					this.ziJinengageList.push({
+						clauseCode: list.clauseCode,
+						clauseName: list.clauseName,
+						clauses: list.clauseContent,
+						riskCode: list.riskCode,
+						modifyFlag: list.modifyFlag,
+					})
+				})
+			},
+			huaTaicontributingChange(param) {
+				this.huaTaiengageList = [];
+				param.map(val => {
+					let list = this.huaTaiengageListData.find(item => item.engageCode == val)
+					this.huaTaiengageList.push({
+						engageCode: list.engageCode,
+						engageDetail: list.engageDetail,
+						engageTitle: list.engageTitle,
+						riskCode: list.riskCode,
+						modifyFlag: list.modifyFlag,
+					})
+				})
+			},
+			//阅读并同意协议
+			agreed(e) {
+				this.agree = e.value;
+			},
+			toCarInfo() {
+				this.navigate({
+					url: '/pages/carInsure2/Information',
+					success: (res) => {
+						res.eventChannel.emit(
+							"acceptData", {
+								carInfo: this
+									.carInfo,
+								ownerInfo: this
+									.ownerInfo,
+								policyHolderInfo: this
+									.policyHolderInfo,
+								insuredPersonInfo: this
+									.insuredPersonInfo,
+								riskList: this
+									.riskList,
+								kindList: this
+									.kindList,
+								carInfoPositiveList: this
+									.carInfoPositiveList, //车辆
+								ownerInfoPositiveList: this
+									.ownerInfoPositiveList, //车主
+								policyHolderInfoPositiveList: this
+									.policyHolderInfoPositiveList, //投保
+								insuredPersonInfoPositiveList: this
+									.insuredPersonInfoPositiveList, //被保人
+
+							})
+					}
+				}, "navigateTo", true);
+			},
+			//去选择险种页面
+			toInsureItems() {
+				this.navigate({
+					url: '/pages/carInsure2/insureItems',
+					success: (res) => {
+						res.eventChannel.emit("acceptData", {
+							carInfo: this.carInfo,
+							ownerInfo: this.ownerInfo,
+							policyHolderInfo: this.policyHolderInfo,
+							insuredPersonInfo: this.insuredPersonInfo,
+							riskList: this.riskList,
+							kindList: this.kindList
+						})
+					}
+				}, "navigateTo", true);
+			},
+			//删除图片
+			delCheckImage(param, IdList, srcList) {
+				this[IdList].map((ele, index) => {
+					if (param.imageId === ele.imageId) {
+						this[IdList].splice(index, 1);
+					}
+					return ele;
+				});
+				this[srcList].map((ele, index) => {
+					if (param.imageId === ele.imageId) {
+						this[srcList].splice(index, 1);
+					}
+					return ele;
+				});
+			},
+			//影像查询
+			async imageEcho(quotenos) {
+				let imgres = await this.$http.get('/ins/taskImage/findByQuoteNo?quoteNo=' + quotenos);
+				if (imgres.code == "200") {
+					Object.keys(imgres.data).forEach((keys) => {
+						if (imgres.data[keys].url) {
+							imgres.data[keys].url = this.$base.baseUrl + imgres.data[keys].url;
+							switch (keys) {
+								case 'C01':
+									this.carImageListId.push({
+										imageId: imgres.data[keys].imageId,
+										imageType: imgres.data[keys].imageType,
+									})
+									this.imgList1.push(imgres.data[keys]);
+									break;
+								case 'D01':
+									this.carImageListId.push({
+										imageId: imgres.data[keys].imageId,
+										imageType: imgres.data[keys].imageType,
+									})
+									this.imgList2.push(imgres.data[keys]);
+									break;
+								case 'C02':
+									this.ownerImageListId.push({
+										imageId: imgres.data[keys].imageId,
+										imageType: imgres.data[keys].imageType,
+									})
+									this.imgList3.push(imgres.data[keys]);
+									break;
+								case 'D02':
+									this.ownerImageListId.push({
+										imageId: imgres.data[keys].imageId,
+										imageType: imgres.data[keys].imageType,
+									})
+									this.imgList4.push(imgres.data[keys]);
+									break;
+								case 'C03':
+									this.policyImageListId.push({
+										imageId: imgres.data[keys].imageId,
+										imageType: imgres.data[keys].imageType,
+									})
+									this.imgList5.push(imgres.data[keys]);
+									break;
+								case 'D03':
+									this.policyImageListId.push({
+										imageId: imgres.data[keys].imageId,
+										imageType: imgres.data[keys].imageType,
+									})
+									this.imgList6.push(imgres.data[keys]);
+									break;
+								case 'C04':
+									this.insuredImageListId.push({
+										imageId: imgres.data[keys].imageId,
+										imageType: imgres.data[keys].imageType,
+									})
+									this.imgList7.push(imgres.data[keys]);
+									break;
+								case 'D04':
+									this.insuredImageListId.push({
+										imageId: imgres.data[keys].imageId,
+										imageType: imgres.data[keys].imageType,
+									})
+									this.imgList8.push(imgres.data[keys]);
+									break;
+								default:
+									break;
+							}
+						}
+					});
+				}
+			},
+
+			// 上传影像并提交核保
+			async submitAudit() {
+				if (!this.agree) {
+					return uni.showToast({
+						title: '请阅读并同意协议',
+						icon: "none",
+						duration: 2000
+					});
+				}
+				const mergedArray = [...this.carImageListId, ...this.ownerImageListId, ...this
+					.policyImageListId, ...this.insuredImageListId, ...this.imgRelationshipid
+				];
+
+				if (mergedArray.length > 0) {
+					await this.$http.post('/ins/taskImage/uploadImages', {
+						imageList: mergedArray,
+						quoteNo: this.quoteno,
+					})
+				}
+				uni.showModal({
+					content: '是否确认提交核保?',
+					success: async (res) => {
+						if (res.confirm) {
+							switch (this.name) {
+								case "永安财险":
+									let yaimage = await this.$http.post(
+										'/order/yongAn/submitImage', {
+											companyId: this.companyId
+										});
+									if (yaimage.code == '200') {
+										let yaaudit = await this.$http.post(
+											'/order/yongAn/audit', {
+												companyId: this.companyId,
+												jqappoint: "",
+												syappoint: ""
+											});
+										if (yaaudit.code == '200') {
+											uni.showModal({
+												content: '订单自核成功',
+												cancelText: '暂不缴费',
+												confirmText: '立即缴费',
+												success: (res1) => {
+													if (res1.confirm) {
+														let pro = this.userInfo.sysUser
+															.managementSource;
+														if (pro == "3") {
+															uni.navigateTo({
+																url: "/pages/orders1/paymentCode1?companyId=" +
+																	this
+																	.companyId
+															})
+														} else {
+															uni.navigateTo({
+																url: "/pages/orders1/paymentCode?companyId=" +
+																	this
+																	.companyId
+															})
+														}
+
+													} else {
+														this.navigate({
+																url: "/pages/orders1/orders"
+															}, "switchTab",
+															true);
+													}
+												}
+											});
+										} else {
+											uni.showModal({
+												content: '核保失败(' + yaaudit.msg + ')',
+												cancelText: '返回订单',
+												confirmText: '继续核保',
+												success: async (res2) => {
+													if (res2.confirm) {
+
+													} else {
+														this.navigate({
+																url: "/pages/orders1/orders"
+															}, "switchTab",
+															true);
+													}
+												}
+											});
+										}
+									} else {
+										uni.showModal({
+											content: '影像上传失败(' + yaimage.msg + ')',
+											cancelText: '返回订单',
+											confirmText: '修改',
+											success: async (res3) => {
+												if (res3.confirm) {
+
+												} else {
+													this.navigate({
+															url: "/pages/orders1/orders"
+														}, "switchTab",
+														true);
+												}
+											}
+										});
+									}
+									break;
+								case "中煤财险":
+									let zmimage = await this.$http.post(
+										'/order/zhongMeiApi/submitImage', {
+											companyId: this.companyId
+										});
+									if (zmimage.code == '200') {
+										let zmaudit = await this.$http.post(
+											'/order/zhongMeiApi/audit', {
+												companyId: this.companyId,
+												jqappoint: "",
+												syappoint: ""
+											});
+										if (zmaudit.code == '200') {
+											uni.showModal({
+												content: '订单自核成功',
+												cancelText: '暂不缴费',
+												confirmText: '立即缴费',
+												success: (res1) => {
+													if (res1.confirm) {
+														let pro = this.userInfo.sysUser
+															.managementSource;
+														if (pro == "3") {
+															uni.navigateTo({
+																url: "/pages/orders1/paymentCode1?companyId=" +
+																	this
+																	.companyId
+															})
+														} else {
+															uni.navigateTo({
+																url: "/pages/orders1/paymentCode?companyId=" +
+																	this
+																	.companyId
+															})
+														}
+													} else {
+														this.navigate({
+																url: "/pages/orders1/orders"
+															}, "switchTab",
+															true);
+													}
+												}
+											});
+										} else {
+											uni.showModal({
+												content: '核保失败(' + zmaudit.msg + ')',
+												cancelText: '返回订单',
+												confirmText: '修改',
+												success: async (res2) => {
+													if (res2.confirm) {
+
+													} else {
+														this.navigate({
+																url: "/pages/orders1/orders"
+															}, "switchTab",
+															true);
+													}
+												}
+											});
+										}
+									} else {
+										uni.showModal({
+											content: '影像上传失败(' + zmimage.msg + ')',
+											cancelText: '返回订单',
+											confirmText: '修改',
+											success: async (res3) => {
+												if (res3.confirm) {
+
+												} else {
+													this.navigate({
+															url: "/pages/orders1/orders"
+														}, "switchTab",
+														true);
+												}
+											}
+										});
+									}
+									break;
+								case "永诚财险":
+									let ycimage = await this.$http.post(
+										'/api/yongCheng/uploadImage', {
+											companyId: this.companyId
+										});
+									if (ycimage.code == '200') {
+										let ycaudit = await this.$http.post(
+											'/api/yongCheng/audit', {
+												companyId: this.companyId,
+											});
+										if (ycaudit.code == '200') {
+											uni.showModal({
+												content: '订单自核成功',
+												cancelText: '暂不缴费',
+												confirmText: '立即缴费',
+												success: (res1) => {
+													if (res1.confirm) {
+														let pro = this.userInfo.sysUser
+															.managementSource;
+														if (pro == "3") {
+															uni.navigateTo({
+																url: "/pages/orders1/paymentCode1?companyId=" +
+																	this
+																	.companyId
+															})
+														} else {
+															uni.navigateTo({
+																url: "/pages/orders1/paymentCode?companyId=" +
+																	this
+																	.companyId
+															})
+														}
+													} else {
+														this.navigate({
+																url: "/pages/orders1/orders"
+															}, "switchTab",
+															true);
+													}
+												}
+											});
+										} else {
+											uni.showModal({
+												content: '核保失败(' + ycaudit.msg + ')',
+												cancelText: '返回订单',
+												confirmText: '修改',
+												success: async (res2) => {
+													if (res2.confirm) {
+
+													} else {
+														this.navigate({
+																url: "/pages/orders1/orders"
+															}, "switchTab",
+															true);
+													}
+												}
+											});
+										}
+									} else {
+										uni.showModal({
+											content: '影像上传失败(' + ycimage.msg + ')',
+											cancelText: '返回订单',
+											confirmText: '修改',
+											success: async (res3) => {
+												if (res3.confirm) {
+
+												} else {
+													this.navigate({
+															url: "/pages/orders1/orders"
+														}, "switchTab",
+														true);
+												}
+											}
+										});
+									}
+									break;
+								case "国任财险":
+									let grimage = await this.$http.post(
+										'/api/guoRen/uploadImage', {
+											companyId: this.companyId
+										});
+									if (grimage.code == '200') {
+										let graudit = await this.$http.post(
+											'/api/guoRen/audit', {
+												companyId: this.companyId,
+											});
+										if (graudit.code == '200') {
+											uni.showModal({
+												content: '订单自核成功',
+												cancelText: '暂不缴费',
+												confirmText: '立即缴费',
+												success: (res1) => {
+													if (res1.confirm) {
+														let pro = this.userInfo.sysUser
+															.managementSource;
+														if (pro == "3") {
+															uni.navigateTo({
+																url: "/pages/orders1/paymentCode1?companyId=" +
+																	this
+																	.companyId
+															})
+														} else {
+															uni.navigateTo({
+																url: "/pages/orders1/paymentCode?companyId=" +
+																	this
+																	.companyId
+															})
+														}
+													} else {
+														this.navigate({
+																url: "/pages/orders1/orders"
+															}, "switchTab",
+															true);
+													}
+												}
+											});
+										} else {
+											uni.showModal({
+												content: '核保失败(' + graudit.msg + ')',
+												cancelText: '返回订单',
+												confirmText: '修改',
+												success: async (res2) => {
+													if (res2.confirm) {
+
+													} else {
+														this.navigate({
+																url: "/pages/orders1/orders"
+															}, "switchTab",
+															true);
+													}
+												}
+											});
+										}
+									} else {
+										uni.showModal({
+											content: '影像上传失败(' + grimage.msg + ')',
+											cancelText: '返回订单',
+											confirmText: '修改',
+											success: async (res3) => {
+												if (res3.confirm) {
+
+												} else {
+													this.navigate({
+															url: "/pages/orders1/orders"
+														}, "switchTab",
+														true);
+												}
+											}
+										});
+									}
+									break;
+								case "大家财险":
+									let djimage = await this.$http.post(
+										'/api/dajia/submitImage', {
+											companyId: this.companyId
+										});
+									if (djimage.code == '200') {
+										let djaudit = await this.$http.post(
+											'/api/dajia/audit', {
+												companyId: this.companyId,
+											});
+										if (djaudit.code == '200') {
+											uni.showModal({
+												content: '订单自核成功',
+												cancelText: '暂不缴费',
+												confirmText: '立即缴费',
+												success: (res1) => {
+													if (res1.confirm) {
+														let pro = this.userInfo.sysUser
+															.managementSource;
+														if (pro == "3") {
+															uni.navigateTo({
+																url: "/pages/orders1/paymentCode1?companyId=" +
+																	this
+																	.companyId
+															})
+														} else {
+															uni.navigateTo({
+																url: "/pages/orders1/paymentCode?companyId=" +
+																	this
+																	.companyId
+															})
+														}
+													} else {
+														this.navigate({
+																url: "/pages/orders1/orders"
+															}, "switchTab",
+															true);
+													}
+												}
+											});
+										} else {
+											uni.showModal({
+												content: '核保失败(' + djaudit.msg + ')',
+												cancelText: '返回订单',
+												confirmText: '修改',
+												success: async (res2) => {
+													if (res2.confirm) {
+
+													} else {
+														this.navigate({
+																url: "/pages/orders1/orders"
+															}, "switchTab",
+															true);
+													}
+												}
+											});
+										}
+									} else {
+										uni.showModal({
+											content: '影像上传失败(' + djimage.msg + ')',
+											cancelText: '返回订单',
+											confirmText: '修改',
+											success: async (res3) => {
+												if (res3.confirm) {
+
+												} else {
+													this.navigate({
+															url: "/pages/orders1/orders"
+														}, "switchTab",
+														true);
+												}
+											}
+										});
+									}
+									break;
+								case "紫金财险":
+									let zjimage = await this.$http.post(
+										'/order/zijin/submitImage', {
+											companyId: this.companyId
+										});
+									if (zjimage.code == '200') {
+										let zjaudit = await this.$http.post(
+											'/order/zijin/audit', {
+												companyId: this.companyId,
+												engageList: this.ziJinengageList,
+											});
+										if (zjaudit.code == '200') {
+											uni.showModal({
+												content: '订单自核成功',
+												cancelText: '暂不缴费',
+												confirmText: '立即缴费',
+												success: (res1) => {
+													if (res1.confirm) {
+														let pro = this.userInfo.sysUser
+															.managementSource;
+														if (pro == "3") {
+															uni.navigateTo({
+																url: "/pages/orders1/paymentCode1?companyId=" +
+																	this
+																	.companyId
+															})
+														} else {
+															uni.navigateTo({
+																url: "/pages/orders1/paymentCode?companyId=" +
+																	this
+																	.companyId
+															})
+														}
+													} else {
+														this.navigate({
+																url: "/pages/orders1/orders"
+															}, "switchTab",
+															true);
+													}
+												}
+											});
+										} else {
+											uni.showModal({
+												content: '核保失败(' + zjaudit.msg + ')',
+												cancelText: '返回订单',
+												confirmText: '修改',
+												success: async (res2) => {
+													if (res2.confirm) {
+
+													} else {
+														this.navigate({
+																url: "/pages/orders1/orders"
+															}, "switchTab",
+															true);
+													}
+												}
+											});
+										}
+									} else {
+
+										uni.showModal({
+											content: '影像上传失败(' + zjimage.msg + ')',
+											cancelText: '返回订单',
+											confirmText: '修改',
+											success: async (res3) => {
+												if (res3.confirm) {
+
+												} else {
+													this.navigate({
+															url: "/pages/orders1/orders"
+														}, "switchTab",
+														true);
+												}
+											}
+										});
+									}
+									break;
+								case "华泰财险":
+									let htimage = await this.$http.post(
+										'/order/huaTaiApi/submitImage', {
+											companyId: this.companyId
+										});
+									if (htimage.code == '200') {
+										let htaudit = await this.$http.post(
+											'/order/huaTaiApi/audit', {
+												companyId: this.companyId,
+												engageList: this.huaTaiengageList,
+											});
+										if (htaudit.code == '200') {
+											uni.showModal({
+												content: '订单自核成功',
+												cancelText: '暂不缴费',
+												confirmText: '立即缴费',
+												success: (res1) => {
+													if (res1.confirm) {
+														let pro = this.userInfo.sysUser
+															.managementSource;
+														if (pro == "3") {
+															uni.navigateTo({
+																url: "/pages/orders1/paymentCode1?companyId=" +
+																	this
+																	.companyId
+															})
+														} else {
+															uni.navigateTo({
+																url: "/pages/orders1/paymentCode?companyId=" +
+																	this
+																	.companyId
+															})
+														}
+													} else {
+														this.navigate({
+																url: "/pages/orders1/orders"
+															}, "switchTab",
+															true);
+													}
+												}
+											});
+										} else {
+											uni.showModal({
+												content: '核保失败(' + htaudit.msg + ')',
+												cancelText: '返回订单',
+												confirmText: '修改',
+												success: async (res2) => {
+													if (res2.confirm) {
+
+													} else {
+														this.navigate({
+																url: "/pages/orders1/orders"
+															}, "switchTab",
+															true);
+													}
+												}
+											});
+										}
+									} else {
+
+										uni.showModal({
+											content: '影像上传失败(' + htimage.msg + ')',
+											cancelText: '返回订单',
+											confirmText: '修改',
+											success: async (res3) => {
+												if (res3.confirm) {
+
+												} else {
+													this.navigate({
+															url: "/pages/orders1/orders"
+														}, "switchTab",
+														true);
+												}
+											}
+										});
+									}
+									break;
+								case "渤海财险":
+									let bhimage = await this.$http.post(
+										'/order/boHaiApi/submitImage', {
+											companyId: this.companyId
+										});
+									if (bhimage.code == '200') {
+										let bhaudit = await this.$http.post(
+											'/order/boHaiApi/audit', {
+												companyId: this.companyId,
+												jqappoint: "",
+												syappoint: ""
+											});
+										if (bhaudit.code == '200') {
+											uni.showModal({
+												content: '订单自核成功',
+												cancelText: '暂不缴费',
+												confirmText: '立即缴费',
+												success: (res1) => {
+													if (res1.confirm) {
+														let pro = this.userInfo.sysUser
+															.managementSource;
+														if (pro == "3") {
+															uni.navigateTo({
+																url: "/pages/orders1/paymentCode1?companyId=" +
+																	this
+																	.companyId
+															})
+														} else {
+															uni.navigateTo({
+																url: "/pages/orders1/paymentCode?companyId=" +
+																	this
+																	.companyId
+															})
+														}
+													} else {
+														this.navigate({
+																url: "/pages/orders1/orders"
+															}, "switchTab",
+															true);
+													}
+												}
+											});
+										} else {
+											uni.showModal({
+												content: '核保失败(' + bhaudit.msg + ')',
+												cancelText: '返回订单',
+												confirmText: '修改',
+												success: async (res2) => {
+													if (res2.confirm) {
+
+													} else {
+														this.navigate({
+																url: "/pages/orders1/orders"
+															}, "switchTab",
+															true);
+													}
+												}
+											});
+										}
+									} else {
+										uni.showModal({
+											content: '影像上传失败(' + bhimage.msg + ')',
+											cancelText: '返回订单',
+											confirmText: '修改',
+											success: async (res3) => {
+												if (res3.confirm) {
+
+												} else {
+													this.navigate({
+															url: "/pages/orders1/orders"
+														}, "switchTab",
+														true);
+												}
+											}
+										});
+									}
+									break;
+								case "恒邦财险":
+								case "安盛天平":
+								case "众安财险":
+								case "中国人寿":
+								case "太平财险":
+								case "华农财险":
+									let pythonimage = await this.$http.post(
+										'/insurance/crawler/submitImage', {
+											subOrderNo: this.companyId
+										});
+									if (pythonimage.code == '200') {
+										let pythonaudit = await this.$http.post(
+											'/insurance/crawler/audit', {
+												subOrderNo: this.companyId,
+											});
+										if (pythonaudit.code == '200') {
+											uni.showModal({
+												content: '订单自核成功',
+												cancelText: '暂不缴费',
+												confirmText: '立即缴费',
+												success: (res1) => {
+													if (res1.confirm) {
+														let pro = this.userInfo.sysUser
+															.managementSource;
+														if (pro == "3") {
+															uni.navigateTo({
+																url: "/pages/orders1/paymentCode1?companyId=" +
+																	this
+																	.companyId
+															})
+														} else {
+															uni.navigateTo({
+																url: "/pages/orders1/paymentCode?companyId=" +
+																	this
+																	.companyId
+															})
+														}
+													} else {
+														this.navigate({
+																url: "/pages/orders1/orders"
+															}, "switchTab",
+															true);
+													}
+												}
+											});
+										} else {
+											uni.showModal({
+												content: '核保失败(' + pythonaudit.msg + ')',
+												cancelText: '返回订单',
+												confirmText: '修改',
+												success: async (res2) => {
+													if (res2.confirm) {
+
+													} else {
+														this.navigate({
+																url: "/pages/orders1/orders"
+															}, "switchTab",
+															true);
+													}
+												}
+											});
+										}
+									} else {
+										uni.showModal({
+											content: '影像上传失败(' + pythonimage.msg + ')',
+											cancelText: '返回订单',
+											confirmText: '修改',
+											success: async (res3) => {
+												if (res3.confirm) {
+
+												} else {
+													this.navigate({
+															url: "/pages/orders1/orders"
+														}, "switchTab",
+														true);
+												}
+											}
+										});
+									}
+									break;
+							}
+						} else if (res.cancel) {}
+					}
+				});
+			},
+			async chooseImage(type, imageIdList, imgurl) {
+				let [chooseImageErr, chooseImageRes] = await uni.chooseImage({
+					count: 1,
+					sizeType: ['compressed']
+				});
+				chooseImageRes.tempFilePaths.map((ele, index) => {
+					uni.uploadFile({
+						url: this.$base.baseUrl + '/ins/taskImage/uploadFile',
+						filePath: ele,
+						name: "multipartFile",
+						formData: {
+							'type': 'image',
+						},
+						header: {
+							Authorization: this.token,
+						},
+						success: async (imgRes) => {
+							let data = JSON.parse(imgRes.data);
+							data.data.url = this.$base.baseUrl + data.data.url;
+							if (data.code == "200") {
+								console.log()
+								if (this[imageIdList].some(v => v.imageType == type)) {
+									this[imageIdList].map(val => {
+										if (val.imageType == type) {
+											val.imageId = data.data.id;
+										}
+									})
+								} else {
+									this[imageIdList].push({
+										imageId: data.data.id,
+										imageType: type,
+									})
+								}
+								this[imgurl].push(data.data)
+							}
+						}
+					});
+				})
+			},
+			//影像预览
+			previewImage(e, type) {
+				this.previewImgs = this[type];
+				var current = e.currentTarget.dataset.src;
+				this.$refs.previewImage.open(current); // 传入当前选中的图片地址或序号
+			},
+			//查询电子保单
+			async yonganprint() {
+				this.policyList = [];
+				this.policyList1 = [];
+				let res = await this.$http.post('/order/yongAn/getPolicyPrint', {
+					companyId: this.companyId,
+					policytype: "jq"
+				}); //永安
+				if (res.data) {
+					let result = res.data.replace(/[\r\n]/g, "");
+					let pdfBase64 = `data:application/pdf;base64,${result}`;
+					base64ToPath(pdfBase64)
+						.then(path => {
+							this.policyList.push({
+								fileTitle: "交强电子保单",
+								filename: this.orderInfo.jqpolicyno,
+								fileurl: path,
+							})
+						})
+				}
+				let res1 = await this.$http.post('/order/yongAn/getPolicyPrint2', {
+					companyId: this.companyId,
+					policytype: "jq"
+				}); //永安
+				if (res1.data) {
+					let result = res1.data.replace(/[\r\n]/g, "");
+					let pdfBase64 = `data:application/pdf;base64,${result}`;
+					base64ToPath(pdfBase64)
+						.then(path => {
+							this.policyList1.push({
+								fileTitle: "交强电子标志",
+								filename: this.orderInfo.jqpolicyno,
+								fileurl: path,
+							})
+						})
+				}
+				if (this.orderInfo.sypolicyno) {
+					let res2 = await this.$http.post('/order/yongAn/getPolicyPrint2', {
+						companyId: this.companyId,
+						policytype: "sy"
+					}); //永安
+					if (res2.data) {
+						let result = res1.data.replace(/[\r\n]/g, "");
+						let pdfBase64 = `data:application/pdf;base64,${result}`;
+						base64ToPath(pdfBase64)
+							.then(path => {
+								this.policyList.push({
+									fileTitle: "商业电子保单",
+									filename: this.orderInfo.sypolicyno,
+									fileurl: path,
+								})
+							})
+					}
+				}
+			},
+			async zhongMeigetPolicyPrint() {
+				this.policyList = [];
+				this.policyList1 = [];
+				if (this.orderInfo.jqpolicyno) {
+					let res = await this.$http.post('/order/zhongMeiApi/getPolicyPrint', {
+						companyId: this.companyId,
+						riskCode: "0507",
+						type: '2', //2:保单
+					});
+					if (res.code == '200') {
+						this.policyList.push({
+							fileTitle: "交强电子保单",
+							filename: this.orderInfo.jqpolicyno,
+							fileurl: res.data[0],
+						})
+					}
+					let res1 = await this.$http.post('/order/zhongMeiApi/getPolicyPrint', {
+						companyId: this.companyId,
+						riskCode: "0507",
+						type: '1', //1:标志
+					});
+					if (res1.code == '200') {
+						this.policyList1.push({
+							fileTitle: "交强电子标志",
+							filename: this.orderInfo.jqpolicyno,
+							fileurl: res1.data[0],
+						})
+					}
+				}
+				if (this.orderInfo.sypolicyno) {
+					let res = await this.$http.post('/order/zhongMeiApi/getPolicyPrint', {
+						companyId: this.companyId,
+						riskCode: "0510",
+						type: '2', //2:标志
+					});
+					if (res.code == '200') {
+						this.policyList.push({
+							fileTitle: "商业电子保单",
+							filename: this.orderInfo.sypolicyno,
+							fileurl: res.data[0],
+						})
+					}
+				}
+
+			},
+			async yongChenggetPolicyPrint() {
+				this.policyList = [];
+				this.policyList1 = [];
+				let res = await this.$http.post('/api/yongCheng/getPolicyPrint', {
+					companyId: this.companyId,
+					riskCode: "0507",
+					type: '2', //2:保单
+				}); //永诚财险
+				if (res.code == '200') {
+					this.policyList.push({
+						fileTitle: "交强电子保单",
+						filename: this.orderInfo.jqpolicyno,
+						fileurl: res.data.jqUrl,
+					})
+					if (res.data.jqFlagUrl) {
+						this.policyList1.push({
+							fileTitle: "交强电子标志",
+							filename: this.orderInfo.jqpolicyno,
+							fileurl: res.data.jqFlagUrl,
+						})
+					}
+				}
+				if (this.orderInfo.sypolicyno) {
+					let res = await this.$http.post('/api/yongCheng/getPolicyPrint', {
+						companyId: this.companyId,
+						riskCode: "0510",
+						type: '2', //2:保单
+					}); //永诚财险
+					if (res.code == '200') {
+						this.policyList.push({
+							fileTitle: "商业电子保单",
+							filename: this.orderInfo.sypolicyno,
+							fileurl: res.data.syUrl,
+						});
+					}
+				}
+				if (this.orderInfo.crossInsurance.length > 0) {
+					this.orderInfo.crossInsurance.map(async ele => {
+						let res = await this.$http.post('/api/yongCheng/getPolicyPrint', {
+							companyId: this.companyId,
+							policyNumber: ele.policyNumber,
+							riskCode: "0513",
+							type: '2', //2:保单
+						});
+						if (res.code == '200') {
+							this.policyList.push({
+								fileTitle: "驾意险保单",
+								filename: ele.policyNumber,
+								fileurl: res.data.jyUrl,
+							})
+						}
+					})
+				}
+			},
+			//爬虫电子保单统一调用
+			async pythonprint() {
+				if (this.orderInfo.jqpolicyno) {
+					let params = {
+						subOrderNo: this.companyId,
+					};
+					let res1 = await this.$http.post('/insurance/crawler/getPolicyPrint', params);
+					if (res1.code == '200') {
+						this.policyList = [];
+						this.policyList1 = [];
+						this.policyList.push({
+							fileTitle: "交强电子保单",
+							filename: this.orderInfo.jqpolicyno,
+							fileurl: res1.data.jqxPolicyUrl,
+						})
+						this.policyList1.push({
+							fileTitle: "交强电子标志",
+							filename: this.orderInfo.jqpolicyno,
+							fileurl: res1.data.jqxFlagUrl,
+						})
+						if (res1.data.syxPolicyUrl) {
+							this.policyList.push({
+								fileTitle: "商业电子保单",
+								filename: this.orderInfo.sypolicyno,
+								fileurl: res1.data.syxPolicyUrl,
+							});
+						}
+						if (res1.data.jyxInfoList.length > 0) {
+							res1.data.jyxInfoList.map(ele => {
+								this.policyList.push({
+									fileTitle: "驾意险保单",
+									filename: ele.application,
+									fileurl: ele.jyx_policy_url,
+								});
+								return ele;
+							})
+
+						}
+					}
+				}
+			},
+			async ziJingetPolicyPrint() {
+				this.policyList = [];
+				this.policyList1 = [];
+				if (this.orderInfo.jqpolicyno) {
+					let res = await this.$http.post('/order/zijin/getPolicyPrint', {
+						companyId: this.companyId,
+						riskCode: "0507",
+						type: '2', //2:保单
+					});
+					if (res.code == '200') {
+						this.policyList.push({
+							fileTitle: "交强电子保单",
+							filename: this.orderInfo.jqpolicyno,
+							fileurl: res.data,
+						})
+					}
+					let res1 = await this.$http.post('/order/zijin/getPolicyPrint', {
+						companyId: this.companyId,
+						riskCode: "0507",
+						type: '1', //1:标志
+					});
+					if (res1.code == '200') {
+						this.policyList1.push({
+							fileTitle: "交强电子标志",
+							filename: this.orderInfo.jqpolicyno,
+							fileurl: res1.data,
+						})
+					}
+				}
+				if (this.orderInfo.sypolicyno) {
+					let res = await this.$http.post('/order/zijin/getPolicyPrint', {
+						companyId: this.companyId,
+						riskCode: "0510",
+						type: '2', //2:标志
+					});
+					if (res.code == '200') {
+						this.policyList.push({
+							fileTitle: "商业电子保单",
+							filename: this.orderInfo.sypolicyno,
+							fileurl: res.data,
+						})
+					}
+				}
+				if (this.orderInfo.crossInsurance.length > 0) {
+					this.orderInfo.crossInsurance.map(async ele => {
+						let res = await this.$http.post('/order/zijin/getPolicyPrint', {
+							companyId: this.companyId,
+							policyNumber: ele.policyNumber,
+							riskCode: "0513",
+							type: '2', //2:保单
+						});
+						if (res.code == '200') {
+							this.policyList.push({
+								fileTitle: "驾意险保单",
+								filename: ele.policyNumber,
+								fileurl: res.data,
+							})
+						}
+					})
+				}
+
+			},
+			async daJiagetPolicyPrint() {
+				this.policyList = [];
+				this.policyList1 = [];
+				if (this.orderInfo.jqpolicyno) {
+					let res = await this.$http.post('/api/dajia/obtainWarranty', {
+						companyId: this.companyId,
+						riskCode: "0507",
+						type: '2', //2:保单
+					});
+					if (res.code == '200') {
+						this.policyList.push({
+							fileTitle: "交强电子保单",
+							filename: this.orderInfo.jqpolicyno,
+							fileurl: res.data,
+						})
+					}
+					let res1 = await this.$http.post('/api/dajia/obtainWarranty', {
+						companyId: this.companyId,
+						riskCode: "0507",
+						type: '1', //1:标志
+					});
+					if (res1.code == '200') {
+						this.policyList1.push({
+							fileTitle: "交强电子标志",
+							filename: this.orderInfo.jqpolicyno,
+							fileurl: res1.data,
+						})
+					}
+					if (this.orderInfo.sypolicyno) {
+						let res = await this.$http.post('/api/dajia/obtainWarranty', {
+							companyId: this.companyId,
+							riskCode: "0510",
+							type: '2', //2:标志
+						});
+						if (res.code == '200') {
+							this.policyList.push({
+								fileTitle: "商业电子保单",
+								filename: this.orderInfo.sypolicyno,
+								fileurl: res.data,
+							})
+						}
+					}
+				}
+			},
+			async huaTaigetPolicyPrint() {
+				this.policyList = [];
+				this.policyList1 = [];
+				if (this.orderInfo.jqpolicyno) {
+					let res = await this.$http.post('/order/huaTaiApi/getPolicyPrint', {
+						companyId: this.companyId,
+						riskCode: "0507",
+					});
+					if (res.code == '200') {
+						this.policyList = [];
+						this.policyList1 = [];
+						this.policyList.push({
+							fileTitle: "交强电子保单",
+							filename: this.orderInfo.jqpolicyno,
+							fileurl: res.data.jqxPolicyUrl,
+						})
+						this.policyList1.push({
+							fileTitle: "交强电子标志",
+							filename: this.orderInfo.jqpolicyno,
+							fileurl: res.data.jqxFlagUrl,
+						})
+						if (res.data.syxPolicyUrl) {
+							this.policyList.push({
+								fileTitle: "商业电子保单",
+								filename: this.orderInfo.sypolicyno,
+								fileurl: res.data.syxPolicyUrl,
+							});
+						}
+					}
+				}
+			},
+			async guoRengetPolicyPrint() {
+				this.policyList = [];
+				this.policyList1 = [];
+				if (this.orderInfo.jqpolicyno) {
+					let res = await this.$http.post('/api/guoRen/policyPrint', {
+						companyId: this.companyId,
+						riskCode: "0507",
+						type: '2', //2:保单
+					});
+					if (res.code == '200') {
+						this.policyList.push({
+							fileTitle: "交强电子保单",
+							filename: this.orderInfo.jqpolicyno,
+							fileurl: res.data,
+						})
+					}
+					let res1 = await this.$http.post('/api/guoRen/policyPrint', {
+						companyId: this.companyId,
+						riskCode: "0507",
+						type: '1', //1:标志
+					});
+					if (res1.code == '200') {
+						this.policyList1.push({
+							fileTitle: "交强电子标志",
+							filename: this.orderInfo.jqpolicyno,
+							fileurl: res1.data,
+						})
+					}
+				}
+				if (this.orderInfo.sypolicyno) {
+					let res = await this.$http.post('/api/guoRen/policyPrint', {
+						companyId: this.companyId,
+						riskCode: "0510",
+						type: '2', //2:标志
+					});
+					if (res.code == '200') {
+						this.policyList.push({
+							fileTitle: "商业电子保单",
+							filename: this.orderInfo.sypolicyno,
+							fileurl: res.data,
+						})
+					}
+				}
+				if (this.orderInfo.crossInsurance.length > 0) {
+					this.orderInfo.crossInsurance.map(async ele => {
+						let res = await this.$http.post('/api/guoRen/policyPrint', {
+							companyId: this.companyId,
+							policyNumber: ele.policyNumber,
+							riskCode: "0513",
+							type: '2', //2:保单
+						});
+						if (res.code == '200') {
+							this.policyList.push({
+								fileTitle: "驾意险保单",
+								filename: ele.policyNumber,
+								fileurl: res.data,
+							})
+						}
+					})
+				}
+
+			},
+			downloadPolicy(file) {
+				//#ifdef APP-PLUS
+				uni.showLoading({
+					title: '文件下载中'
+				});
+				let index = file.lastIndexOf("\/")
+				let licensename = file.substring(index + 1, file.length)
+				let dtask = plus.downloader.createDownload(file, {
+					filename: "_downloads/" + this.name + '-' + this.insuredPersonInfo.name + '-' + licensename
+				}, function(d, status) {
+					if (status == 200) {
+						uni.hideLoading()
+						//下载成功,d.filename是文件在保存在本地的相对路径,使用下面的API可转为平台绝对路径
+						let fileSaveUrl = plus.io.convertLocalFileSystemURL(d.filename);
+						plus.runtime.openFile(d.filename); //选择软件打开文件
+					} else {
+						uni.hideLoading()
+						//下载失败
+						plus.downloader.clear(); //清除下载任务
+					}
+				})
+
+				dtask.start();
+				//#endif
+				//#ifdef H5
+				var win = window.open();
+				win.document.write(
+					'<body style="margin:0px;"><object data="' +
+					file +
+					'" type="application/pdf" width="100%" height="100%"><iframe src="' +
+					file +
+					'" scrolling="no" width="100%" height="100%" frameborder="0" ></iframe></object></body>'
+				);
+				//#endif
+			},
+			//选择缴费方式
+			openPayWay() {
+				this.navigate({
+					url: "/pages/carInsure/payWay?orderno=" + this.orderno
+				}, 'navigateTo', true)
+			},
+			cancelShare() {
+				this.$refs.showshare.close()
+			},
+			//控制详情的展开和收起
+			controlShow(type) {
+				this[type] = !this[type];
+			},
+			//撤销核保
+			cancelUnderwriting() {
+				uni.showModal({
+					content: '是否确认撤销核保?',
+					success: async (res) => {
+						if (res.confirm) {
+							let param = {
+								"auditid": this.userInfo.sysUser.id, //核保人会员号
+								"auditopinion": '', //核保意见
+								"jqapplyno": "", //交强险投保单号
+								"jqappoint": "", //交强特别约定
+								"jqpolicyno": "", //交强保单号
+								"orderno": this.orderno, //订单号
+								"orderstatus": "0", //订单类型
+								"syapplyno": "", //商业险投保单号
+								"syappoint": "", //商业险特别约定
+								"sypolicyno": "" //商业保单号
+							}
+							let res = await this.$http.post('/insOrder/saveAudit', param);
+							uni.showToast({
+								title: '撤销成功',
+								icon: "none",
+								duration: 2000
+							});
+							setTimeout(() => {
+								this.setOrderStage(0);
+								this.setOrderType(0);
+								this.navigate({
+									url: "/pages/orders1/orders"
+								}, "switchTab", true);
+							}, 2000);
+						} else if (res.cancel) {
+							console.log('用户点击取消');
+						}
+					}
+				});
+			},
+			toChinesNum(num) {
+				let overWan = Math.floor(num / 10000);
+				let result = overWan + "万";
+				return result;
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	@import '@/style/mixin.scss';
+
+	.page {
+		background: #F8FAFE;
+		padding: 0 16px 100px 16px;
+
+	}
+
+	.headers {
+		width: 100%;
+		height: 198px;
+		background: linear-gradient(180deg, #0052FF 0%, #F8FAFE 110%);
+		padding: 16px 16px 0 16px;
+
+		.price {
+			width: 100%;
+			height: 40px;
+			background: #FFFFFF;
+			border-radius: 6px 6px 0px 0px;
+		}
+
+
+	}
+
+	.header {
+		height: 80upx;
+		position: relative;
+	}
+
+	.header .title {
+		font-size: 30upx;
+		font-weight: bold;
+	}
+
+
+	.welfare {
+		margin-bottom: 20upx;
+		width: 100%;
+		box-sizing: border-box;
+		background: #FFFFFF;
+		border-radius: 20upx;
+	}
+
+	.welfare .body {
+		padding: 0 30upx 30upx;
+		box-sizing: border-box;
+		flex-wrap: wrap;
+	}
+
+	.welfare .body>.welfareItem {
+		width: 320upx;
+		height: 120upx;
+		padding: 10upx 20upx;
+		margin: 20upx 10upx 0upx;
+		border: 1px solid rgba($themeColor, 0.6);
+		box-sizing: border-box;
+		background: rgba($themeColor, 0.4);
+		border-radius: 10upx;
+	}
+
+	.welfare .body>.welfareItem .name {
+		color: $themeColor;
+		font-size: 30upx;
+		width: 210upx;
+		overflow: hidden;
+		text-overflow: ellipsis;
+		white-space: nowrap;
+	}
+
+	.welfare .body>.welfareItem .content {
+		font-size: 24upx;
+		width: 260upx;
+		overflow: hidden;
+		text-overflow: ellipsis;
+		white-space: nowrap;
+	}
+
+
+	/* 报价方案Start */
+	.quotePlan {
+		margin-bottom: 20upx;
+		width: 100%;
+	}
+
+	.quotePlan .header .adjustPlan {
+		color: $themeColor;
+	}
+
+	.quotePlan .body {
+		background-color: #fff;
+		padding: 10px;
+		border-radius: 6px;
+
+		.kindList {
+			background-color: #F9F9F9;
+			padding: 10px;
+			height: auto;
+			width: 100%;
+			border-radius: 10px;
+			font-size: 13px;
+			color: rgba(35, 40, 50, 0.8);
+		}
+	}
+
+	.quotePlan .body .insurance {
+		padding-bottom: 20upx;
+	}
+
+	.quotePlan .body .row {
+		padding: 5px;
+		border-bottom: 1px solid #F3F3F3;
+	}
+
+	.quotePlan .body .row:last-child {
+		border: none;
+	}
+
+
+	.quotePlan .body .row .date {
+		color: #A4A4A4;
+		font-size: 22upx;
+	}
+
+	.quotePlan .body .insurance .kindList {
+		background: #F3F3F3;
+		padding: 0 10upx;
+	}
+
+	.addedServices .kindList {
+		background: #F3F3F3;
+		padding: 0 10upx;
+	}
+
+	.quotePlan .body .insurance .kindList .kindItem {
+		padding: 2px 0;
+	}
+
+	.quotePlan .body .insurance .kindList .kindItem>view {
+		font-size: 24upx;
+	}
+
+	.quotePlan .body .insurance .kindList .kindItem>view:nth-of-type(1) {
+		width: 310upx;
+	}
+
+	.quotePlan .body .insurance .kindList .kindItem>view:nth-of-type(2) {
+		width: 170upx;
+	}
+
+	.quotePlan .body .insurance .kindList .kindItem>view:nth-of-type(3) {
+		width: 170upx;
+	}
+
+	.addedServices .kindList .kindItem {
+		height: 65upx;
+	}
+
+	.addedServices .kindList .kindItem>view {
+		font-size: 24upx;
+		padding: 0upx 15upx;
+	}
+
+	/* 报价方案End */
+
+	.car {
+		width: 100%;
+
+		.body {
+			padding: 0upx 30upx 0;
+			background-color: #fff;
+			border-radius: 6px;
+			box-shadow: 0px 4px 10px 0px #DAE3F4;
+
+			.row {
+				padding: 5px;
+				border-bottom: 1px solid #F3F3F3;
+
+
+			}
+
+			.row:last-child {
+				border: none;
+			}
+		}
+	}
+
+	/* 预缴费Start */
+	.advancePaymentTotal {
+		margin-bottom: 20upx;
+		width: 100%;
+		box-sizing: border-box;
+		background: #FFFFFF;
+		border-radius: 20upx;
+	}
+
+	.advancePaymentTotal .body {
+		padding: 0upx 40upx 10upx;
+	}
+
+	.advancePaymentTotal .body .row {
+		height: 80upx;
+		border-bottom: 1px solid #F3F3F3;
+	}
+
+	/* 预缴费End */
+
+	/* 底部按钮Start */
+	.bottomBtn {
+		position: fixed;
+		bottom: 0;
+		left: 0;
+		right: 0;
+		height: auto;
+		background-color: #fff;
+
+		.agree {
+			padding: 4px 8px;
+			font-size: 22rpx;
+			color: #858585;
+
+			.tip {
+				color: #FF5600;
+				margin: 0upx 10upx;
+			}
+		}
+
+		.btnView {
+			width: 100%;
+			height: 38px;
+			background-color: #fff;
+
+			.btn {
+				height: 100%;
+			}
+
+			.btn:nth-child(1) {
+				width: 40%;
+				background-color: #E6EEFF;
+				color: #0052FF;
+				padding: 8px;
+				font-size: 13px;
+			}
+
+			.btn:nth-child(2) {
+				width: 20%;
+				background-color: #0052FF;
+				color: #fff;
+				font-weight: bold;
+			}
+
+			.btn:nth-child(3) {
+				width: 40%;
+				color: #fff;
+				background-color: #0038AF;
+				font-weight: bold;
+			}
+		}
+	}
+
+
+	.tool {
+		padding: 10px;
+
+		view {
+			width: 100%;
+			padding: 8px 0;
+			border-bottom: 1px solid #f2f2f2;
+			font-size: 14px;
+			color: #232832;
+		}
+	}
+
+	.cancell {
+		width: 100%;
+		height: 46px;
+		background-color: #E6EEFF;
+		font-size: 16px;
+		color: #0052FF;
+	}
+
+	/* 底部按钮End */
+	.contributing {
+		width: 100%;
+		margin: 4px 0;
+		font-size: 14px;
+
+		text:nth-child(1) {
+			font-weight: bold;
+			color: #ff9000;
+		}
+	}
+
+	/* 人员信息Start */
+	.personInfo,
+	.advancePayment,
+	.imageInfo,
+	.appoint {}
+
+	.personInfo,
+	.advancePayment,
+	.imageInfo,
+	.appoint {
+		.title {
+			height: 80upx;
+			font-size: 15px;
+			box-shadow: inset 0 -3upx 0px #fafafa;
+		}
+
+		.content {
+			padding: 0px 15px 0;
+			background-color: #fff;
+			border-radius: 6px;
+			box-shadow: 0px 4px 10px 0px #DAE3F4;
+		}
+
+		.uni-uploader {
+			padding: 8px;
+			background-color: #fff;
+			border-radius: 6px;
+			height: auto;
+			box-shadow: 0px 4px 10px 0px #DAE3F4;
+
+		}
+	}
+
+	.uni-uploader__file {
+		position: relative;
+	}
+
+	.delImgIcon {
+		width: 40upx;
+		height: 40upx;
+		background-color: #999;
+		position: absolute;
+		right: 0upx;
+		top: 0upx;
+		color: #FFFFFF;
+	}
+
+	.showStatus {
+		font-size: 26upx;
+		color: #007AFF;
+	}
+
+	.personInfo .content .row,
+	.advancePayment .content .row {
+		height: 80upx;
+		border-bottom: 1px solid #F9F9F9;
+		flex-wrap: nowrap;
+	}
+
+	.personInfo .content .row .left,
+	.advancePayment .content .row .left {
+		width: 170upx;
+		flex-shrink: 0;
+		font-size: 28upx;
+	}
+
+	.appoint .content .row {
+		height: auto;
+		margin-top: 10upx;
+	}
+
+	.appoint .content .row>view {
+		width: 240upx;
+		flex-shrink: 1;
+		font-size: 28upx;
+	}
+
+	.appoint .content .row>textarea {
+		/* background: #007AFF; */
+		padding: 15upx;
+		box-sizing: border-box;
+		font-size: 26upx;
+		min-height: 160upx;
+		height: 100upx;
+		border: 1px solid #fafafa;
+		/* over */
+	}
+
+	.personInfo .content .row .right,
+	.advancePayment .content .row .right,
+	.appoint .content .row .right {
+		font-size: 28upx;
+	}
+
+	/* 人员信息End */
+
+	.checkButton {
+		margin: 0 20upx 0 20upx;
+		font-size: 24upx;
+		width: 80upx;
+		height: 50upx;
+		background: $themeColor;
+		font-weight: bold;
+		color: #FFFFFF;
+		border-radius: 5upx;
+	}
+
+
+
+	.uni-popup__wrapper-box {
+		display: block;
+		position: relative;
+	}
+
+	.uni-share {
+		display: flex;
+		flex-direction: column;
+		background-color: #fff;
+		position: fixed;
+		bottom: 0;
+		left: 0;
+		right: 0;
+	}
+
+	.uni-share-title {
+		line-height: 30px;
+		font-size: 12px;
+		padding: 7px 0;
+		text-align: center;
+	}
+
+	.uni-share-content {
+		display: flex;
+		flex-direction: row;
+		flex-wrap: wrap;
+		justify-content: center;
+		padding: 15px;
+	}
+
+	.uni-share-content-box {
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		width: 100px;
+	}
+
+	.uni-share-content-image {
+		display: flex;
+		flex-direction: row;
+		justify-content: center;
+		align-items: center;
+		width: 30px;
+		height: 30px;
+		overflow: hidden;
+		border-radius: 5px;
+	}
+
+	.uni-share-content-text {
+		font-size: 13px;
+		color: #333;
+		padding-top: 5px;
+		padding-bottom: 10px;
+	}
+
+	.uni-share-btn {
+		height: 45px;
+		line-height: 45px;
+		font-size: 14px;
+		border-top-color: #f5f5f5;
+		border-top-width: 1px;
+		border-top-style: solid;
+		text-align: center;
+		color: #666;
+	}
+
+	uni-image>img {
+		display: block;
+		position: absolute;
+		top: 0;
+		left: 0;
+		opacity: 0;
+	}
+
+	uni-image>div,
+	uni-image>img {
+		width: 100%;
+		height: 100%;
+	}
+</style>

+ 2 - 2
pages/index/index.vue

@@ -135,13 +135,13 @@
 						cat_id: 0,
 						img: '/static/image/index/category-img/0.png',
 						title: '车险',
-						src: '/pages/carInsure/entry'
+						src: '/pages/carInsure2/entry'
 					},
 					{
 						cat_id: 1,
 						img: '/static/image/index/category-img/1.png',
 						title: '车损测算',
-						src: ''
+						// src: '/pages/carInsure2/entry'
 					},
 					{
 						cat_id: 2,

+ 22 - 1
pages/login/login.vue

@@ -114,6 +114,7 @@
 		},
 		data() {
 			return {
+				isLoading: false,
 				show: false,
 				contentSlot: true,
 				defaultid: '', //登录默认会员号
@@ -133,6 +134,9 @@
 				listData: [],
 			};
 		},
+		onReady() {
+			this.isLoading = true;
+		},
 		beforeCreate() {
 			setTimeout(() => {
 				this.$refs.app_update.update(); //调用子组件检查更新方法
@@ -142,7 +146,18 @@
 			}, 500)
 		},
 		//第一次加载
-		onLoad(e) {
+		async onLoad(e) {
+			let pageRequest = {
+				pageNum: 1,
+				pageSize: 20,
+				columnFilters: {
+					apptype: {
+						name: "apptype",
+						value: "apk",
+					}
+				}
+			};
+			let getquote = await this.$http.post('/sysVersion/findPage', pageRequest);
 			// #ifdef APP-PLUS
 			this.openSQL();
 			this.selectTableData();
@@ -152,6 +167,7 @@
 		},
 		//页面显示   
 		onShow() {
+
 			uni.getClipboardData({
 				success: (res) => {
 					let id = (res.data.replace(/(^\s*)|(\s*$)/g, "")).toUpperCase();
@@ -470,6 +486,7 @@
 					provider: 'weixin',
 					onlyAuthorize: true,
 					success: function(loginRes) {
+						console.log(loginRes);
 						that.codeRes(loginRes.code);
 
 					},
@@ -489,6 +506,10 @@
 						code: code,
 					}
 				}).then(res => {
+					return uni.showToast({
+						title: res.msg,
+						icon: 'none'
+					});
 					socket.init();
 					return;
 				})

+ 4 - 4
pages/my/my.vue

@@ -599,9 +599,9 @@
 
 			// 去账单明细
 			toBillDetails(type) {
-				// this.navigate({
-				// 	url: "/pages/wallet/billDetails" + type
-				// }, "navigateTo", true)
+				this.navigate({
+					url: "/pages/wallet/billDetails" + type
+				}, "navigateTo", true)
 			},
 			// 去账单明细
 			toWallet(type) {
@@ -620,7 +620,7 @@
 
 				this.setOrderStage(this.orderTypeList[e].orderStage);
 				this.navigate({
-					url: "/pages/orders/orders"
+					url: "/pages/orders1/orders"
 				}, "switchTab", true)
 			}
 		}

+ 4 - 0
pages/orders/quotation.vue

@@ -199,6 +199,10 @@
 						name: "华农财险",
 						icon: "../../static/insuranceicon/huanong.png"
 					},
+					{
+						name: "渤海财险",
+						icon: "../../static/insuranceicon/bohai.png"
+					},
 				],
 				logoimg: "",
 			}

+ 39 - 2
pages/orders/subOrders.vue

@@ -44,14 +44,15 @@
 				</view>
 				<view class="orders-below dis j-end">
 					<u-button
-						v-if="item.orderstatus==2 && ['恒邦财险','安盛天平','中国人寿','众安财险','太平财险','紫金财险','永诚财险','国任财险','大家财险','华泰财险','中煤财险','华农财险'].includes(item.inscompany)"
+						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)"
+					<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>
@@ -344,6 +345,24 @@
 							});
 						}
 						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;
 				}
@@ -477,6 +496,24 @@
 							});
 						}
 						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

+ 710 - 0
pages/orders1/orders.vue

@@ -0,0 +1,710 @@
+<template>
+	<view class="parent">
+		<!-- 查询区域Start -->
+		<view>
+			<view class=" flexd " style="z-index: 99;">
+				<view class="search dis a-c j-s"
+					style="background: linear-gradient( 90deg, #0052FF 0%, #6697FF 100%);padding-top:50px;">
+					<u-search v-model="pageRequest.licenseNo" @custom="custom" @search="search" :shape="shape"
+						:height='68' bg-color="rgba(255,255,255,0.5)" color="#fff"
+						:input-style="{background:'transparent'}" placeholder-color="#fff" :clearabled="clearabled"
+						:show-action="showAction" :input-align="inputAlign" @clear="clear"
+						:action-style="{background:'#fff'}" placeholder="请输入车牌号"></u-search>
+					<image src="/static/image/car-insure/dropdown.png" mode="" @tap="searchPopup"></image>
+				</view>
+				<view :class="['dropdown-content', { 'show': showDropdown }]" @tap="searchPopup">
+					<view :class="['dropdown-content1','dis','f-c','j-s', { 'show1': showDropdown }]" @tap.stop.prevent>
+						<view style="padding: 0 16px; box-sizing: border-box;">
+							<view class="term">
+								<text>订单状态</text>
+								<view class="dis  a-c f-wrap j-s" style="margin-top: 10px;">
+									<view class="status-data" :class="item.value==pageRequest.orderStatus? 'active':''"
+										v-for="(item,index) in statusList" @tap.stop.prevent="statusclick(index)"
+										:key="index">
+										{{item.label}}
+									</view>
+								</view>
+							</view>
+							<view class="term">
+								<text>保险公司</text>
+								<view class="dis  a-c f-wrap j-start" style="margin-top: 10px;">
+									<view class="status-data" :class="item.id==pageRequest.companyId? 'active':''"
+										v-for="(item,index) in esmInsCompanyList" @tap="companystatusclick(item.id)"
+										:key="index">
+										{{item.namesimple}}
+									</view>
+								</view>
+							</view>
+							<view class="term">
+								<text>订单日期</text>
+								<view class="dis  a-c f-wrap j-s" style="margin-top: 10px;">
+									<view class="status-data" :class="item.value==timespecifications? 'active':''"
+										v-for="(item,index) in dateList" @tap="dateclick(index)" :key="index">
+										{{item.label}}
+									</view>
+									<view class="dis a-c">
+										<view class="status-data" :class="startShow? 'active' :''"
+											@tap="startShowmethod()">
+											<text v-if="pageRequest.startDate!=''">{{pageRequest.startDate}}</text>
+											<text v-else>{{transformTime()}}</text>
+										</view>
+										<text style="margin: 0 8px;font-size: 12px;">至</text>
+										<view class="status-data" :class="endShow? 'active' :''" @tap="endShowmethod()">
+											<text v-if="pageRequest.endDate!=''">{{pageRequest.endDate}}</text>
+											<text v-else>{{transformTime()}}</text>
+										</view>
+									</view>
+								</view>
+							</view>
+						</view>
+						<view class="operateBtn dis ">
+							<view class="cancel dis a-c j-c" @click="showDropdown=false">
+								取消
+							</view>
+							<view class="confirm dis a-c j-c" @click="querysearch">
+								确定
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+		<view style="padding: 110px 16px 50px 16px;">
+			<view class=" orderItemPane" v-for="(item,index) in pageResult" :key="index" @click="querydetail(item)">
+				<view class="orderItemPane-upper dis j-s a-c ">
+					<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 class="upper-time moosize">{{item.createtime}}</text>
+				</view>
+				<view class="orderItemPane-centre ">
+					<view class="dis f-c">
+						<view class="dis a-c j-s " style="padding:4px 0;">
+							<text>{{item.licenseno}}</text>
+							<u-icon name="arrow-right" size="14px"
+								style="margin-left: 5px;color: #C7C6CA;"></u-icon></text>
+						</view>
+
+						<text>订单号:{{item.orderno}}</text>
+						<text>业务员:{{item.username}}({{item.userid}})</text>
+						<text>投保人:{{item.insuredname}}</text>
+						<text>投保险种:{{item.product}}</text>
+						<text v-if="item.orderstatus=='3'">承保公司:{{item.insCompany}}</text>
+
+					</view>
+				</view>
+				<view class="orderItemPane-below dis a-c  j-end ">
+					<u-button type="primary" size="mini" :hair-line="false" :custom-style="{fontSize:'15px'}"
+						:plain="true" @click="quotehistory(item)">报价历史</u-button>
+					<u-button v-if="item.orderstatus!='3'" :custom-style="{fontSize:'15px'}" type="warning" size="mini"
+						:hair-line="false" :plain="true" @click="CloseEdit(item.orderno)">编辑</u-button>
+				</view>
+			</view>
+		</view>
+		<o-empty v-if="pageResult.length==0" />
+		<!-- 回到顶部 -->
+		<u-picker v-model="startShow" mode="time" :params="params" @confirm="startconfirm"></u-picker>
+		<u-picker v-model="endShow" mode="time" :params="params" @confirm="endconfirm"></u-picker>
+	</view>
+</template>
+
+<script>
+	import {
+		mapState,
+		mapMutations
+	} from "vuex"
+	// import carOrders from "@/components/modules/orders/carOrders.vue";
+	import {
+		watch
+	} from "vue";
+	export default {
+		components: {},
+		watch: {
+			stageIndex(newVal, oldVal) {
+				if (newVal !== oldVal) {
+					this.pageRequest.orderStatus = newVal;
+				}
+			}
+		},
+		data() {
+			return {
+				show: true,
+				showDropdown: false,
+				/* 时间筛选相关 */
+				startShow: false,
+				endShow: false,
+				params: {
+					year: true, //年
+					month: true, //月
+					day: true, //日
+				},
+				/* 时间筛选相关 */
+				pageRequest: { //查询的默认条件
+					companyId: "",
+					orderNo: "",
+					frameNo: "",
+					insuredName: "",
+					licenseNo: "",
+					orderStatus: "",
+					userId: "",
+					deptId: "",
+					endDate: "",
+					startDate: "",
+					pageNum: 1,
+					pageSize: 20,
+				},
+				timespecifications: null,
+				pageResult: [], //列表数据
+				/* 搜索框配置 */
+				shape: 'square',
+				clearabled: true,
+				showAction: false,
+				inputAlign: 'left',
+				/* 搜索框配置 */
+				//状态筛选list
+				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"
+					}
+				],
+				//日期筛选list
+				dateList: [{
+						label: '全部',
+						value: 0,
+					},
+					{
+						label: '一周内',
+						value: 1,
+					},
+					{
+						label: '一个月内',
+						value: 2,
+					},
+					{
+						label: '三个月内',
+						value: 3,
+					},
+					{
+						label: '六个月内',
+						value: 4,
+					},
+
+				],
+				typeArray: [{
+						label: '车险',
+						value: 0,
+					},
+					{
+						label: '意外险',
+						value: 1,
+					},
+					{
+						label: '寿险',
+						value: 2,
+					}
+				], //订单的类型
+				toTopFlag: false, //显示回到顶部按钮
+				queryLicenseNo: "",
+				queryFrameNo: "",
+				insureMore: false,
+				insureMoreIndex: null,
+				esmInsCompanyList: [],
+
+			}
+		},
+		computed: {
+			...mapState(['userInfo', 'typeIndex', 'stageIndex'])
+		},
+
+		// 页面触底加载
+		onReachBottom() {
+			this.currentPage = this.currentPage + 1;
+			if (this.totalPages >= this.currentPage) {} else {
+				return false;
+			}
+		},
+		// 页面滚动触发
+		onPageScroll(e) { //根据距离顶部距离是否显示回到顶部按钮
+			if (e.scrollTop > 600) { //当距离大于600时显示回到顶部按钮
+				this.toTopFlag = true
+			} else { //当距离小于600时显示回到顶部按钮
+				this.toTopFlag = false
+			}
+		},
+		onShow() {
+			const arr = uni.getStorageSync('historyInfo');
+			if (arr) {
+				uni.removeStorageSync('historyInfo');
+			}
+			this.getOrdersList()
+			this.esmInsCompany()
+		},
+		async onLoad(e) {
+			this.pageRequest.userId = this.userInfo.sysUser.id;
+			this.pageRequest.deptId = this.userInfo.sysUser.deptId;
+			this.getOrdersList()
+
+		},
+		methods: {
+			...mapMutations(['setOrderType', 'setOrderStage']),
+			async getOrdersList() {
+				let res = await this.$http.post('/insurance/order/queryPageOrder', this.pageRequest);
+				if (res.code == '200') {
+					this.pageResult = res.data.content;
+				}
+			},
+			async esmInsCompany() {
+				let commpanykad = await this.$http.get('/insurance/order/getAgreementInsCompany');
+				if (commpanykad.code == '200') {
+					this.esmInsCompanyList = commpanykad.data;
+				}
+			},
+			searchPopup() {
+				this.showDropdown = !this.showDropdown;
+			},
+			//展开
+			selectMore(val) {
+				this.insureMore = true;
+				this.insureMoreIndex = val;
+			},
+			packup(val) {
+				this.insureMore = false;
+				this.insureMoreIndex = val;
+			},
+			//查询事件
+			querysearch() {
+				this.getOrdersList();
+				this.showDropdown = false;
+			},
+			//状态筛选
+			statusclick(e) {
+				this.pageRequest.orderStatus = e;
+			},
+			//保险公司筛选
+			companystatusclick(e) {
+				this.pageRequest.companyId = e;
+			},
+			startShowmethod() {
+				this.startShow = true;
+				this.timespecifications = null;
+			},
+			endShowmethod() {
+				this.endShow = true;
+				this.timespecifications = null;
+			},
+			//日期筛选
+			dateclick(e) {
+				/* 0:全部  1:一周内 2:一个月内 3:三个月内  4:六个月内*/
+				switch (e) {
+					case 0:
+						this.pageRequest.startDate = "";
+						this.pageRequest.endDate = "";
+						break;
+					case 1:
+						this.pageRequest.startDate = this.transformTime(7);
+						this.pageRequest.endDate = this.transformTime();
+						break;
+					case 2:
+						this.pageRequest.startDate = this.transformTime1(1);
+						this.pageRequest.endDate = this.transformTime();
+						break;
+					case 3:
+						this.pageRequest.startDate = this.transformTime1(3);
+						this.pageRequest.endDate = this.transformTime();
+						break;
+					case 4:
+						this.pageRequest.startDate = this.transformTime1(6);
+						this.pageRequest.endDate = this.transformTime();
+						break;
+					default:
+				}
+				this.timespecifications = e;
+			},
+			startconfirm(e) {
+				this.pageRequest.startDate = e.year + '-' + e.month + '-' + e.day;
+			},
+			endconfirm(e) {
+				this.pageRequest.endDate = e.year + '-' + e.month + '-' + e.day;
+			},
+			//验证车架号
+			isFrameno(str) {
+				let mPattern = /^([0-9A-Z]){17}$/;
+				return mPattern.test(str);
+			},
+			isCarBrand(str) {
+				let mPattern = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼A-Z]{1}[A-Z]{1}[A-Z0-9]{4,5}([A-Z0-9挂学警港澳使领]{1}|应急)$/ ||
+					/^沪[0-9A-Z]{5}$/ || /^陆丰[0-9A-Z]{4}临$/;
+				return mPattern.test(str.trim())
+				// return /^陆丰[0-9A-Z]{4}临$/.test(str.trim())
+			},
+			//查看子订单
+			async querydetail(val) {
+				let params = {
+					orderno: val.orderno,
+					insuredname: val.insuredname,
+					licenseno: val.licenseno,
+					modelcname: val.carinfo.modelcname,
+				}
+				uni.navigateTo({
+					url: `/pages/orders1/subOrders?orderno=${JSON.stringify(params)}`
+				})
+			},
+			//报价历史
+			quotehistory(val) {
+				let params = {
+					orderno: val.orderno,
+					insuredname: val.insuredname,
+					licenseno: val.licenseno,
+					modelcname: val.carinfo.modelcname,
+				}
+				uni.navigateTo({
+					url: `/pages/orders1/quoteHistory?orderno=${JSON.stringify(params)}`
+				})
+			},
+			//编辑
+			CloseEdit(val) {
+				uni.navigateTo({
+					url: "/pages/carInsure2/quote?orderno=" + val
+				})
+				// this.navigate({
+				// 	url: '/pages/carInsure1/quote1',
+				// 	success: (res) => {
+				// 		res.eventChannel.emit("acceptData", {
+				// 			carInfo: val.carinfo, //车辆信息
+				// 			ownerInfo: val.ownerinfo, //车主信息
+				// 			policyHolderInfo: val.applyinfo, //
+				// 			insuredPersonInfo: val.insureinfo,
+				// 			riskList: val.risk,
+				// 			kindList: val.king,
+				// 			orderno: val.orderno, //车辆
+				// 			quoteno: val.quoteno, //车主
+				// 			vehicleAndVesselTaxForm: val.vehicleAndVesselTax, //车船税
+
+				// 		})
+				// 	}
+				// }, "navigateTo", true);
+			},
+			//回车搜索事件
+			search(val) {
+				this.getOrdersList();
+			},
+			//搜索按钮事件
+			custom(val) {
+				this.getOrdersList();
+			},
+			//搜索框清除事件
+			clear(val) {
+
+			},
+			//关闭订单后查询
+			closeOrders() {
+				this.totalSize = 0;
+				this.ordersList = []; //获取到的订单列表
+				this.currentPage = 1; //当前的页数
+				this.totalPages = 1; //总共的页数
+			},
+			//当前时间
+			transformTime(day) {
+				var date = new Date();
+				date.setFullYear(date.getFullYear());
+				date.setTime(date.getTime());
+				var strYear = date.getFullYear();
+				var strDay = day ? date.getDate() - day : date.getDate();
+				var strMonth = date.getMonth() + 1;
+				if (strMonth < 10) {
+					strMonth = "0" + strMonth;
+				}
+				if (strDay < 10) {
+					strDay = "0" + strDay;
+				}
+				var datastr = strYear + "-" + strMonth + "-" + strDay;
+				return datastr;
+			},
+			transformTime1(month) {
+				var date = new Date();
+				date.setFullYear(date.getFullYear());
+				date.setTime(date.getTime());
+				var strYear = date.getFullYear();
+				var strDay = date.getDate();
+				var strMonth = month ? (date.getMonth() + 1) - month : date.getMonth() + 1;
+				if (strMonth < 10) {
+					strMonth = "0" + strMonth;
+				}
+				if (strDay < 10) {
+					strDay = "0" + strDay;
+				}
+				var datastr = strYear + "-" + strMonth + "-" + strDay;
+				return datastr;
+			},
+		}
+	}
+</script>
+<style>
+	page {
+		background-color: #F8FAFE;
+	}
+</style>
+<style lang="scss" scoped>
+	@import '@/style/mixin.scss';
+
+	/deep/ uni-tabbar .uni-tabbar-bottom {
+		position: fixed;
+		left: 0;
+		right: 0;
+		bottom: 0;
+	}
+
+	/deep/ .u-action[data-v-1a326067] {
+		color: #FFFFFF;
+	}
+
+	/deep/ .u-dropdown__menu__item__arrow[data-v-01c0c507] uni-text {
+		color: #FFFFFF !important;
+	}
+
+	.dropdown-content {
+		background-color: rgba(0, 0, 0, 0.6);
+		height: 0px;
+		opacity: 0;
+		transition: opacity 0.3s ease;
+
+		.title {
+			font-size: 14px;
+			color: #232832;
+			font-weight: bold;
+			border-bottom: 1px solid #E1E1E1;
+		}
+
+		.term {
+			padding-top: 10px;
+
+			>text {
+				color: #232832;
+				font-weight: bold;
+				font-size: 13px;
+			}
+		}
+
+		.operateBtn {
+			font-weight: bold;
+			font-size: 16px;
+
+			.cancel {
+				width: 50%;
+				height: 46px;
+				color: #0052FF;
+				background-color: #EAEAEA;
+			}
+
+			.confirm {
+				width: 50%;
+				height: 46px;
+				color: #fff;
+				background-color: #0052FF;
+			}
+		}
+	}
+
+	.dropdown-content1 {
+		background-color: #fff;
+		height: 0px;
+		overflow: hidden;
+		transition: height 0.4s ease;
+	}
+
+	.show {
+		height: 100vh;
+		opacity: 1;
+		/* 下拉菜单内容的最大高度 */
+	}
+
+	.show1 {
+		height: 430px;
+		/* 下拉菜单遮罩最大高度 */
+	}
+
+	.headers {
+		background-color: rgba(199, 198, 202, 0.4);
+		width: 100%;
+		height: 0;
+		position: absolute;
+		z-index: 999;
+	}
+
+	.parent {
+		position: relative;
+
+	}
+
+	.search-condition {
+		padding: 0 16px;
+
+		.title {
+			font-size: 14px;
+			color: #232832;
+			font-weight: bold;
+			border-bottom: 1px solid #E1E1E1;
+		}
+
+		.term {
+			padding-top: 10px;
+
+			>text {
+				color: #232832;
+				font-weight: bold;
+				font-size: 13px;
+			}
+		}
+	}
+
+
+
+	.search {
+		padding: 13px 16px;
+
+		image {
+			width: 22px;
+			height: 22px;
+			margin-left: 20px;
+		}
+	}
+
+	.slot-content1 {
+		background-color: #FFFFFF;
+		padding: 24rpx;
+	}
+
+	.title {
+		font-weight: bold;
+		color: #333;
+	}
+
+	.status-data {
+		padding: 4px 10px;
+		box-sizing: border-box;
+		margin: 0 4px 7px 0;
+		font-size: 12px;
+		border: 1px solid #eee;
+		cursor: pointer;
+	}
+
+	.active {
+		position: relative;
+		background: rgba(0, 82, 255, 0.1);
+		color: #0052FF;
+		border: 1px solid #0052FF;
+		font-weight: 700;
+	}
+
+	.active::before {
+		content: "";
+		position: absolute;
+		top: 0;
+		left: 0;
+		width: 10px;
+		height: 10px;
+		background-image: url("/static/image/car-insure/before.png");
+		background-size: cover;
+	}
+
+
+	.orderItemPane {
+		width: 100%;
+		height: auto;
+		margin: 10px 0;
+		border-radius: 10px;
+		background: #FFFFFF;
+		box-shadow: 0px 4px 10px 0px #DAE3F4;
+		border-radius: 12px;
+		cursor: pointer;
+		padding: 10px;
+	}
+
+	.orderItemPane-upper {
+		padding-bottom: 8px;
+		border-bottom: 1px solid #D4D0D0;
+	}
+
+	.orderItemPane .orderItemPane-centre,
+	.inscommny-sum>text {
+		color: rgba(51, 51, 51, 0.8);
+		font-weight: 400;
+	}
+
+	.orderItemPane-centre text:first-child {
+		font-weight: bold;
+		color: #232832;
+	}
+
+	.orderItemPane-below {
+		height: auto;
+
+		&>button {
+			margin-left: 10px;
+		}
+	}
+
+
+	.orderItemPane-extend .extend-button>text {
+		color: #ff9000;
+		font-size: 12px;
+	}
+
+	.orderItemPane-extend {
+		border-bottom-right-radius: 10px;
+		border-bottom-left-radius: 10px;
+	}
+
+	.classes::before {
+		content: "·";
+		color: #ff9000;
+		margin-right: 10px;
+	}
+
+	.flexd {
+		position: fixed;
+		left: 0;
+		right: 0;
+	}
+
+	.moosize {
+		font-size: 12px;
+		color: rgba(51, 51, 51, 0.6);
+		font-weight: 400;
+	}
+
+	.color {
+		color: #ff9000;
+	}
+
+	/* 查询区域End */
+</style>

+ 467 - 0
pages/orders1/paymentCode.vue

@@ -0,0 +1,467 @@
+<template>
+	<view class="">
+		<view class="page" id="panelcanvas">
+			<view class="Shadow"></view>
+			<view class="content">
+				<view class="back">
+					<view class="logo dis j-c a-c">
+						<image :src="logoimg" mode="" style="width: 20px;height: 20px;">
+						</image>
+						<text style="font-weight: bold;margin-left: 6px;font-size: 16px;">{{companyName}}</text>
+					</view>
+					<view class="QR-code dis f-c" style="box-shadow: inset rgb(237 237 237) 0px 2px 1px 0px;">
+						<view class="dis a-c j-c " style="padding: 20px 0;">
+							<view class="d-flex a-center j-center qrcode" style="position: relative;">
+								<image :src="paycodeimg" mode="widthFix"></image>
+							</view>
+						</view>
+						<view style="border-bottom: 1px dashed  #EFEFEF;padding-bottom: 10px;">
+							<view style="font-size: 16px;" class="dis j-s a-c ">
+								<text style="color: #232832;font-weight: bold;">{{licenseNo}}</text>
+								<text style="color: #FF5600;">¥{{sumPermium}}</text>
+							</view>
+							<text style="color: rgba(51,51,51,0.8);font-size: 14px;">{{applyName}}</text>
+						</view>
+						<view class="dis f-wrap" style=" padding: 10px 0; border-bottom: 1px dashed #EFEFEF;"
+							v-if="jqStartDate">
+							<view style="width: 50%;border-right: 1px dashed #EFEFEF;" class="dis f-c a-start ">
+								<text style="font-size: 15px;font-weight: bold;">{{ jqStartDate }}</text>
+								<text style="font-size: 14px;color: rgba(51,51,51,0.8);">交强险起保日期</text>
+							</view>
+							<view style="width: 50%;" class="dis f-c a-end">
+								<text style="font-size: 15px;font-weight: bold;">{{ jqEndDate }}</text>
+								<text style="font-size: 14px;color: rgba(51,51,51,0.8);">交强险终保日期</text>
+							</view>
+
+						</view>
+						<view class="dis f-wrap" style=" padding: 10px 0; border-bottom: 1px dashed #EFEFEF;"
+							v-if="syStartDate">
+							<view style="width: 50%;border-right: 1px dashed #EFEFEF;" class="dis f-c a-start ">
+								<text style="font-size: 15px;font-weight: bold;">{{ syStartDate }}</text>
+								<text style="font-size: 14px;color: rgba(51,51,51,0.8);">商业险起保日期</text>
+							</view>
+							<view style="width: 50%;" class="dis f-c a-end">
+								<text style="font-size: 15px;font-weight: bold;">{{ sysEndDate }}</text>
+								<text style="font-size: 14px;color: rgba(51,51,51,0.8);">商业险终保日期</text>
+							</view>
+						</view>
+						<view class="information">
+							<view class="dis j-s a-c">
+								<text>投保人:</text>
+								<text>{{applyName}}</text>
+							</view>
+							<view class="dis j-s a-c">
+								<text>车船税:</text>
+								<text>¥{{taxamount}}</text>
+							</view>
+							<view v-if="jypremium" class="dis j-s a-c">
+								<text>驾意险:</text>
+								<text>¥{{jypremium}}</text>
+							</view>
+							<view v-if="jqpremium" class="dis j-s a-c">
+								<text>交强险:</text>
+								<text>¥{{jqpremium}}</text>
+							</view>
+							<view v-if="sypremium" class="dis j-s a-c">
+								<text>商业险:</text>
+								<text>¥{{sypremium}}</text>
+							</view>
+							<view v-if="sumPermium" class="dis j-s a-c">
+								<text>保费合计:</text>
+								<text>¥{{sumPermium}}</text>
+							</view>
+						</view>
+					</view>
+				</view>
+				<view class="dis f-c" style="margin-top: 20px;">
+					<!-- #ifdef APP-PLUS -->
+					<u-button type="primary" style="background-color:#0052FF;margin-bottom: 10px;"
+						@click="sendPayCode">发送微信</u-button>
+					<!-- #endif -->
+					<u-button type="primary" style="background-color:#EAEAEA ;color: #0052FF;"
+						@click="navOrder">返回订单</u-button>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import {
+		mapState,
+		mapMutations
+	} from "vuex"
+	import {
+		pathToBase64,
+		base64ToPath
+	} from '@/common/pdf.js'
+	import QR from "@/common/wxqrcode.js"
+	export default {
+		data() {
+			return {
+				paycodeimg: "",
+				payImg: "",
+				endDateTime: "",
+				companyId: "",
+				companyName: "", //保险公司名称
+				sumPermium: "", //保费合计
+				licenseNo: "", //车牌号
+				applyName: "", //车主名字
+				mobile: "", //车主手机号
+				jqpremium: "",
+				sypremium: "",
+				taxamount: "",
+				jypremium: "",
+				jqStartDate: "",
+				jqEndDate: "",
+				syStartDate: "",
+				sysEndDate: "",
+				arr: false,
+				posterUrl: "",
+				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"
+					},
+				],
+				logoimg: "",
+			}
+		},
+		computed: {
+			...mapState(['userInfo', 'token']),
+			getHeight() {
+				let height = uni.getSystemInfoSync().windowHeight;
+				return `height: ${height}px;`;
+			}
+		},
+		async onLoad(data) {
+			if (!!data.companyId) {
+				let params = {
+					companyId: data.companyId
+				};
+				let res = await this.$http.get('/order/qrCode/getQrCode?areaCompanyId=' + data.companyId);
+				//获取前一个页面传过来的信息(车辆信息,人员信息,险种信息)
+				if (res.code == '200') {
+					this.companyName = res.data.inscompany;
+					this.sumPermium = res.data.sumpremium;
+					this.licenseNo = res.data.cPlateNo;
+					this.applyName = res.data.cInsuredNme;
+					this.jqpremium = res.data.jqpremium; // 交强
+					this.sypremium = res.data.sypremium; // 商业
+					this.taxamount = res.data.taxamount; // 车船税
+					this.jypremium = res.data.jypremium; // 驾意险
+					this.jqStartDate = res.data.jqStartDate; // 交强起保日期
+					this.jqEndDate = res.data.jqEndDate; // 交强起保日期
+					this.syStartDate = res.data.syStartDate; // 商业起保日期
+					this.sysEndDate = res.data.sysEndDate; // 商业起保日期
+					if (this.companyName == '太平财险') {
+						let result = res.data.qrCodeUrl.replace(/[\r\n]/g, "");
+						let imgBase64 = `data:image/png;base64,${result}`;
+						base64ToPath(imgBase64)
+							.then(path => {
+								this.paycodeimg = path;
+							})
+					} else {
+						this.paycodeimg = QR.createQrCodeImg(res.data.qrCodeUrl, {
+							size: parseInt(300) //二维码大小  
+						})
+					}
+					this.insCompanyList.map(ele => {
+						if (ele.name == res.data.inscompany) {
+							uni.getImageInfo({
+								src: ele.icon,
+								success: image => {
+									pathToBase64(image.path)
+										.then(base64 => {
+											this.logoimg = base64;
+										})
+										.catch(error => {});
+								},
+								fail: err => {}
+							});
+						}
+						return ele;
+					})
+
+				} else {
+					uni.showModal({
+						showCancel: false,
+						title: res.msg
+					})
+				}
+			} else {
+				uni.showModal({
+					showCancel: false,
+					title: "未查询到该订单"
+				})
+			}
+		},
+		methods: {
+			...mapMutations(['setOrderType', 'setOrderStage']),
+			async tpcodeconfirm() { //输入验证码,获取支付二维码
+				let tpcode = {
+					issueCode: this.tpcodevalue,
+					orderno: this.orderno,
+				}
+				let tpcoderes = await this.$http.post('/API/insCBIT/taiPingPay', tpcode); //太平
+				this.paycodeimg = QR.createQrCodeImg(JSON.parse(tpcoderes.data).payUrl, {
+					size: parseInt(300) //二维码大小  
+				})
+			},
+
+			//发送收款码到微信
+			sendPayCode() {
+				// var that = this;
+				// this.canvasPayImage();
+				if (this.payImg) {
+					uni.share({
+						provider: "weixin",
+						scene: "WXSceneSession",
+						type: 2,
+						imageUrl: this.payImg
+					})
+				}
+			},
+			// canvasPayImage() {
+			// 	let myCanvas = uni.createCanvasContext('mycanvas', this);
+			// 	var ww = '1080px';
+			// 	var hh = '1680px';
+			// 	//画布尺寸
+			// 	// 坐标(0,0) 表示从此处开始绘制,相当于偏移。
+			// 	//背景
+			// 	myCanvas.drawImage('/static/image/car-insure/payBg.jpg', 0, 0, ww, hh);
+			// 	// 失效时间
+			// 	// if (!this.arr) {
+			// 	// 	myCanvas.setFillStyle('#f00') //文字样式
+			// 	// 	myCanvas.font = `40px Arial,sans-serif`; //绘制文字
+			// 	// 	myCanvas.setTextAlign('center') //设置对于坐标点的对齐方式
+			// 	// 	myCanvas.fillText('该二维码将于 ' + this.endDateTime + ' 失效', 540, 355);
+			// 	// }
+			// 	//二维码
+			// 	myCanvas.drawImage(this.paycodeimg, 315, 415, 435, 435);
+			// 	//个人信息
+			// 	myCanvas.setFillStyle('#000') //文字样式
+			// 	myCanvas.font = `44px Arial,sans-serif`; //绘制文字
+			// 	myCanvas.setTextAlign('left')
+			// 	myCanvas.fillText(this.applyName, 535, 965);
+			// 	myCanvas.fillText(this.licenseNo, 535, 1085);
+			// 	myCanvas.fillText(this.companyName, 535, 1205);
+			// 	myCanvas.setFillStyle('#f00') //文字样式
+			// 	myCanvas.font = `bold 48px Arial,sans-serif`; //绘制文字
+			// 	myCanvas.fillText('¥' + this.sumPermium, 535, 1328);
+			// 	//开始绘画,必须调用这一步,才会把之前的一些操作实施
+			// 	myCanvas.draw(true, () => {
+			// 		uni.hideLoading();
+			// 		uni.canvasToTempFilePath({
+			// 			canvasId: 'mycanvas',
+			// 			success: (res) => {
+			// 				// 在H5平台下,tempFilePath 为 base64
+			// 				this.payImg = res.tempFilePath;
+			// 				console.log(this.payImg)
+			// 			},
+			// 			fail: () => {
+			// 				uni.showToast({
+			// 					title: '生成支付码海报失败',
+			// 					duration: 2000
+			// 				});
+			// 			}
+			// 		});
+			// 	});
+			// },
+			navOrder() {
+				this.navigate({
+					url: "/pages/orders1/orders"
+				}, "switchTab", true);
+			},
+			//页面截图转路径
+			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() {
+			setTimeout(() => {
+				this.canvasImage.generateImage()
+			}, 1000);
+		},
+		methods: {
+			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: 2, // 设置生成图片的像素比例,默认是1,如果生成的图片模糊的话可以开启该配置项
+					}).then((canvas) => {
+						// 生成成功
+						this.$ownerInstance.callMethod('hideLoading')
+						this.$ownerInstance.callMethod('receiveRenderData', canvas.toDataURL('image/png'))
+					}).catch(err => {
+						// 生成失败 弹出提示弹窗
+						this.$ownerInstance.callMethod('_errAlert', `【生成图片失败,请重试】${err}`)
+					})
+				}, 300)
+			}
+		},
+	}
+</script>
+
+<style lang="scss" scoped>
+	.page {
+		height: 100%;
+		background: #F8FAFE;
+	}
+
+	.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;
+	}
+
+	.information {
+		width: 100%;
+		height: auto;
+
+		>view {
+			padding: 10px 0;
+			border-bottom: 1px solid #f2f2f2;
+
+			text {
+				font-size: 14px;
+				color: #232832;
+			}
+
+			view:last-child {
+				border: none;
+			}
+		}
+	}
+
+	.Shadow {
+		width: 100%;
+		height: 214px;
+		background: linear-gradient(180deg, #0052FF 0%, #F8FAFE 100%);
+	}
+
+	.content {
+		padding: 16px;
+		margin-top: -190px;
+
+		.back {
+			background-color: white;
+			border-radius: 6px;
+			box-shadow: 0px 4px 10px 0px #DAE3F4;
+
+			.logo {
+				width: 100%;
+				height: 38px;
+			}
+		}
+
+	}
+
+	.info {
+		padding: 0 16px;
+		background-color: #FFFFFF;
+	}
+
+	.QR-code {
+		width: 100%;
+		height: auto;
+		background: #FFFFFF;
+		padding: 0 10px;
+		border-radius: 0 0 6px 6px;
+	}
+
+	.qrcode {
+		width: 120px;
+		height: 120px;
+		border-radius: 4px 4px 4px 4px;
+		border: 1px solid #2D4D89;
+	}
+
+	.qrcode image {
+		width: 105px;
+		height: 105px;
+	}
+</style>

+ 446 - 0
pages/orders1/paymentCode1.vue

@@ -0,0 +1,446 @@
+<template>
+	<view class=" page" :style="getHeight">
+		<!-- 公共组件-每个页面必须引入 -->
+		<public-module></public-module>
+		<view class="panel dis f-c j-c a-c" id="panelcanvas">
+			<view class="d-flex a-center j-center qrcode" style="position: relative;">
+				<image :src="paycodeimg" mode="widthFix"></image>
+				<image :src="logoimg" mode="" style="width: 30px;height: 30px;position: absolute;margin: 0 auto;">
+				</image>
+			</view>
+			<view class="quotation-data">
+				<view class="circulate-impany dis a-c">
+					<view>保险公司:</view>
+					<view>{{companyName}}</view>
+				</view>
+				<view class="circulate-data dis a-c">
+					<view>投保人:</view>
+					<view>{{applyName}}</view>
+				</view>
+				<view class="circulate-data dis a-c">
+					<view>车牌号:</view>
+					<view>{{licenseNo}}</view>
+				</view>
+				<view v-if="jqpremium" class="circulate-data dis a-c">
+					<view>交强险:</view>
+					<view>¥{{jqpremium}}</view>
+				</view>
+				<view v-if="sypremium" class="circulate-data dis a-c">
+					<view>商业险:</view>
+					<view>¥{{sypremium}}</view>
+				</view>
+				<view v-if="taxamount" class="circulate-data dis a-c">
+					<view>车船税:</view>
+					<view>¥{{taxamount}}</view>
+				</view>
+				<view v-if="jypremium" class="circulate-data dis a-c">
+					<view>驾意险:</view>
+					<view>¥{{jypremium}}</view>
+				</view>
+				<view class="circulate-data dis a-c">
+					<view>保费合计:</view>
+					<view style="font-size: 34upx;color: #2D4D89;font-weight: bold;">¥{{sumPermium}}</view>
+				</view>
+				<view class="circulate-data dis a-c " v-if="jqStartDate">
+					<view>交强起保日期:</view>
+					<view>{{jqStartDate}}</view>
+				</view>
+				<view class="circulate-data dis a-c " v-if="jqEndDate">
+					<view>交强终保日期:</view>
+					<view>{{jqEndDate}}</view>
+				</view>
+				<view class="circulate-data dis a-c " v-if="syStartDate">
+					<view>商业起保日期</view>
+					<view>{{syStartDate}}</view>
+				</view>
+				<view class="circulate-data dis a-c " v-if="sysEndDate">
+					<view>商业终保日期</view>
+					<view>{{sysEndDate}}</view>
+				</view>
+			</view>
+		</view>
+		<!-- #ifdef APP-PLUS -->
+		<u-button type="primary" style="width: 100%;background: #2D4D89;" @click="sendPayCode">发送到微信</u-button>
+		<!-- #endif -->
+		<u-button class="tip" type="default" :hair-line="false"
+			style="color: #2D4D89;background: #EAEDF1;font-weight: bold;border: none;" @click="navOrder">返回订单</u-button>
+		<canvas id="mycanvas" ref="mycanvas" canvas-id="mycanvas" style="width: 1080px;height: 1680px;"></canvas>
+	</view>
+</template>
+<script>
+	import {
+		mapState,
+		mapMutations
+	} from "vuex"
+	import {
+		pathToBase64,
+		base64ToPath
+	} from '@/common/pdf.js'
+	import QR from "@/common/wxqrcode.js"
+	export default {
+		data() {
+			return {
+				paycodeimg: "",
+				payImg: "",
+				endDateTime: "",
+				companyId: "",
+				companyName: "", //保险公司名称
+				sumPermium: "", //保费合计
+				licenseNo: "", //车牌号
+				applyName: "", //车主名字
+				mobile: "", //车主手机号
+				jqpremium: "",
+				sypremium: "",
+				taxamount: "",
+				jypremium: "",
+				jqStartDate: "",
+				jqEndDate: "",
+				syStartDate: "",
+				sysEndDate: "",
+				arr: false,
+				posterUrl: "",
+				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"
+					},
+				],
+				logoimg: "",
+			}
+		},
+		computed: {
+			...mapState(['userInfo', 'token']),
+			getHeight() {
+				let height = uni.getSystemInfoSync().windowHeight;
+				return `height: ${height}px;`;
+			}
+		},
+		async onLoad(data) {
+			if (!!data.companyId) {
+				let params = {
+					companyId: data.companyId
+				};
+				let res = await this.$http.get('/order/qrCode/getQrCode?areaCompanyId=' + data.companyId);
+				//获取前一个页面传过来的信息(车辆信息,人员信息,险种信息)
+				if (res.code == '200') {
+					this.companyName = res.data.inscompany;
+					this.sumPermium = res.data.sumpremium;
+					this.licenseNo = res.data.cPlateNo;
+					this.applyName = res.data.cInsuredNme;
+					this.jqpremium = res.data.jqpremium; // 交强
+					this.sypremium = res.data.sypremium; // 商业
+					this.taxamount = res.data.taxamount; // 车船税
+					this.jypremium = res.data.jypremium; // 驾意险
+					this.jqStartDate = res.data.jqStartDate; // 交强起保日期
+					this.jqEndDate = res.data.jqEndDate; // 交强起保日期
+					this.syStartDate = res.data.syStartDate; // 商业起保日期
+					this.sysEndDate = res.data.sysEndDate; // 商业起保日期
+					if (this.companyName == '太平财险') {
+						let result = res.data.qrCodeUrl.replace(/[\r\n]/g, "");
+						let imgBase64 = `data:image/png;base64,${result}`;
+						base64ToPath(imgBase64)
+							.then(path => {
+								this.paycodeimg = path;
+							})
+					} else {
+						this.paycodeimg = QR.createQrCodeImg(res.data.qrCodeUrl, {
+							size: parseInt(300) //二维码大小  
+						})
+					}
+					this.insCompanyList.map(ele => {
+						if (ele.name == res.data.inscompany) {
+							uni.getImageInfo({
+								src: ele.icon,
+								success: image => {
+									pathToBase64(image.path)
+										.then(base64 => {
+											this.logoimg = base64;
+										})
+										.catch(error => {});
+								},
+								fail: err => {}
+							});
+						}
+						return ele;
+					})
+
+				} else {
+					uni.showModal({
+						showCancel: false,
+						title: res.msg
+					})
+				}
+			} else {
+				uni.showModal({
+					showCancel: false,
+					title: "未查询到该订单"
+				})
+			}
+		},
+		methods: {
+			...mapMutations(['setOrderType', 'setOrderStage']),
+			async tpcodeconfirm() { //输入验证码,获取支付二维码
+				let tpcode = {
+					issueCode: this.tpcodevalue,
+					orderno: this.orderno,
+				}
+				let tpcoderes = await this.$http.post('/API/insCBIT/taiPingPay', tpcode); //太平
+				this.paycodeimg = QR.createQrCodeImg(JSON.parse(tpcoderes.data).payUrl, {
+					size: parseInt(300) //二维码大小  
+				})
+			},
+
+			//发送收款码到微信
+			sendPayCode() {
+				// var that = this;
+				// this.canvasPayImage();
+				if (this.payImg) {
+					uni.share({
+						provider: "weixin",
+						scene: "WXSceneSession",
+						type: 2,
+						imageUrl: this.payImg
+					})
+				}
+			},
+			// canvasPayImage() {
+			// 	let myCanvas = uni.createCanvasContext('mycanvas', this);
+			// 	var ww = '1080px';
+			// 	var hh = '1680px';
+			// 	//画布尺寸
+			// 	// 坐标(0,0) 表示从此处开始绘制,相当于偏移。
+			// 	//背景
+			// 	myCanvas.drawImage('/static/image/car-insure/payBg.jpg', 0, 0, ww, hh);
+			// 	// 失效时间
+			// 	// if (!this.arr) {
+			// 	// 	myCanvas.setFillStyle('#f00') //文字样式
+			// 	// 	myCanvas.font = `40px Arial,sans-serif`; //绘制文字
+			// 	// 	myCanvas.setTextAlign('center') //设置对于坐标点的对齐方式
+			// 	// 	myCanvas.fillText('该二维码将于 ' + this.endDateTime + ' 失效', 540, 355);
+			// 	// }
+			// 	//二维码
+			// 	myCanvas.drawImage(this.paycodeimg, 315, 415, 435, 435);
+			// 	//个人信息
+			// 	myCanvas.setFillStyle('#000') //文字样式
+			// 	myCanvas.font = `44px Arial,sans-serif`; //绘制文字
+			// 	myCanvas.setTextAlign('left')
+			// 	myCanvas.fillText(this.applyName, 535, 965);
+			// 	myCanvas.fillText(this.licenseNo, 535, 1085);
+			// 	myCanvas.fillText(this.companyName, 535, 1205);
+			// 	myCanvas.setFillStyle('#f00') //文字样式
+			// 	myCanvas.font = `bold 48px Arial,sans-serif`; //绘制文字
+			// 	myCanvas.fillText('¥' + this.sumPermium, 535, 1328);
+			// 	//开始绘画,必须调用这一步,才会把之前的一些操作实施
+			// 	myCanvas.draw(true, () => {
+			// 		uni.hideLoading();
+			// 		uni.canvasToTempFilePath({
+			// 			canvasId: 'mycanvas',
+			// 			success: (res) => {
+			// 				// 在H5平台下,tempFilePath 为 base64
+			// 				this.payImg = res.tempFilePath;
+			// 				console.log(this.payImg)
+			// 			},
+			// 			fail: () => {
+			// 				uni.showToast({
+			// 					title: '生成支付码海报失败',
+			// 					duration: 2000
+			// 				});
+			// 			}
+			// 		});
+			// 	});
+			// },
+			navOrder() {
+				this.navigate({
+					url: "/pages/orders/orders"
+				}, "switchTab", true);
+			},
+			//页面截图转路径
+			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() {
+			setTimeout(() => {
+				this.canvasImage.generateImage()
+			}, 1000);
+		},
+		methods: {
+			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: 2, // 设置生成图片的像素比例,默认是1,如果生成的图片模糊的话可以开启该配置项
+					}).then((canvas) => {
+						// 生成成功
+						this.$ownerInstance.callMethod('hideLoading')
+						this.$ownerInstance.callMethod('receiveRenderData', canvas.toDataURL('image/png'))
+					}).catch(err => {
+						// 生成失败 弹出提示弹窗
+						this.$ownerInstance.callMethod('_errAlert', `【生成图片失败,请重试】${err}`)
+					})
+				}, 300)
+			}
+		},
+	}
+</script>
+<style lang="scss" scoped>
+	@import '@/style/mixin.scss';
+
+	.page {
+
+		padding: 10px 16px;
+	}
+
+	.panel {
+		width: 100%;
+		margin-bottom: 20px;
+	}
+
+	.qrcode {
+		width: 174px;
+		height: 174px;
+		padding: 10px;
+		margin-top: 16px;
+		border-radius: 4px;
+		border: 1px solid #2D4D89;
+	}
+
+	.qrcode image {
+		width: 174px;
+		height: 174px;
+	}
+
+	.tip {
+		background-color: #FFFFFF;
+		margin-top: 30upx;
+		border-radius: 10upx;
+		font-size: 32upx;
+		font-weight: bold;
+	}
+
+	.quotation-data {
+		width: 100%;
+		margin-top: 16px;
+		border: 1px solid #2D4D89;
+
+		.circulate-impany {
+			height: 37px;
+			padding: 8px 6px;
+			background: rgba(45, 77, 137, 0.1);
+			border-bottom: 1px solid #000000;
+			font-weight: 700;
+
+			view:first-child {
+				margin-right: 10px;
+			}
+		}
+
+		.circulate-data {
+			height: 37px;
+			color: #232832;
+			padding: 8px 6px;
+			border-bottom: 1px solid #000000;
+
+			view:first-child {
+				color: #232832;
+				font-weight: 400;
+				font-size: 14px;
+				margin-right: 5px;
+			}
+
+			view:last-child {
+				font-weight: 400;
+				color: #232832;
+				font-size: 14px;
+			}
+		}
+
+		.circulate-data:last-child {
+			border: none;
+		}
+	}
+
+	#mycanvas {
+		position: absolute;
+		top: -10000px;
+		left: -10000px;
+	}
+</style>

+ 613 - 0
pages/orders1/quotation.vue

@@ -0,0 +1,613 @@
+<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;box-shadow: inset rgb(218, 227, 244) 0px 1px 4px 0px;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;">{{carinfo.modelcname}}</text>
+					</view>
+					<view class="dis  Circle" style="padding-top: 10px;">
+						<view style="width: 49%;font-weight: bold;border-right: 1px dashed #EFEFEF;"
+							class="dis f-c a-start ">
+							<text style="font-size: 14px;" v-if="dataInfo.jqstartdate">{{ dataInfo.jqstartdate }}</text>
+							<text v-else>-</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">
+							<text style="font-size: 14px;" v-if="dataInfo.systartdate">{{ dataInfo.systartdate }}</text>
+							<text v-else>-</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">
+						<text>车船税</text>
+						<text>¥{{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 j-s a-c" v-if="dataInfo.jqpremium">
+						<text>交强险</text>
+						<text>¥{{dataInfo.jqpremium}}</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>
+
+		</view>
+		<view class="fixed-bottom">
+			<u-button type="primary" style="background-color:#0052FF ;" @tap="sendPayCode">发送微信</u-button>
+		</view>
+	</view>
+</template>
+
+<script>
+	import {
+		pathToBase64,
+		base64ToPath
+	} from '@/common/pdf.js'
+	export default {
+		data() {
+			return {
+				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: "",
+			}
+		},
+		async onLoad(options) {
+			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 */
+</style>

+ 529 - 0
pages/orders1/quotation1.vue

@@ -0,0 +1,529 @@
+<template>
+	<view>
+		<view class="page dis f-c a-c" id="panelcanvas">
+			<view class="quotation-header dis a-c">
+				<image :src="caricon" class="image-icon" mode=""></image>
+				<view class="dis f-c j-c">
+					<text>{{dataInfo.licenseno}}</text>
+					<text>{{carinfo.modelcname}}</text>
+				</view>
+			</view>
+			<view class="quotation-data">
+				<view class="circulate-impany dis a-c">
+					<image :src="logoimg" mode="" style="width: 30px;height: 30px;">
+					</image>
+					<text>{{dataInfo.inscompany}}报价单</text>
+				</view>
+				<view class="circulate-data dis a-c">
+					<text>订单号:</text>
+					<text>{{dataInfo.orderno}}</text>
+				</view>
+				<view class="circulate-data dis a-c">
+					<text>车主姓名:</text>
+					<text>{{ownerinfo.name}}</text>
+				</view>
+				<view class="circulate-data dis a-c">
+					<text>投保人姓名:</text>
+					<text>{{applyinfo.name}}</text>
+				</view>
+				<view class="circulate-data dis a-c">
+					<text>被保人姓名:</text>
+					<text>{{insureinfo.name}}</text>
+				</view>
+				<view class="circulate-data dis a-c">
+					<text>发动机号:</text>
+					<text>{{carinfo.engineNo}}</text>
+				</view>
+				<view class="circulate-data dis a-c">
+					<text>车架号:</text>
+					<text>{{carinfo.vinNo}}</text>
+				</view>
+				<view class="circulate-data dis a-c">
+					<text>座位数:</text>
+					<text>{{carinfo.seatCount}}</text>
+				</view>
+				<view class="circulate-data dis a-c " v-if="dataInfo.jqstartdate">
+					<text>交强投保时间:</text>
+					<text>{{ dataInfo.jqstartdate }}</text>
+				</view>
+				<view class="circulate-data dis a-c " v-if="dataInfo.systartdate">
+					<text>商业投保时间:</text>
+					<text>{{ dataInfo.systartdate }}</text>
+				</view>
+				<view class="coverage dis j-s f-c" style="border: none;" v-if="dataInfo.sypremium">
+					<view class="coverage-title dis">
+						<view style=" width: 46%;">
+							<text>商业险金额</text>
+						</view>
+						<view style=" width: 27%;">
+							<text>保险金额</text>
+						</view>
+						<view style=" width: 27%;">
+							<text>保费</text>
+						</view>
+					</view>
+					<view class="coverage-sum dis j-s" v-for="(item,index) in dataInfo.kindinfo" :key="index">
+						<view style=" width: 46%;">
+							<text>{{item.kindName}}</text>
+						</view>
+						<view v-if="['D4', 'SY_FJ_YBW2'].includes(item.kindCode)">
+							<text>{{item.unitAmount}}/座*{{dataInfo.carinfo.seatCount-1}}</text>
+						</view>
+						<view v-else-if="['MJ1', 'MJ2', 'MJ3', 'MJ4'].includes(item.kindCode)">
+							<text>{{item.deductibleRate}}</text>
+						</view>
+						<view v-else-if="['TY1', 'TY2', 'TY3', 'TY4'].includes(item.kindCode)">
+							<text>{{item.serviceTimes}}/次</text>
+						</view>
+						<view v-else>
+							<text>{{item.amount}}</text>
+						</view>
+						<view>
+							<text>¥{{item.coveragePremium}}</text>
+						</view>
+					</view>
+				</view>
+				<view class="circulate-sum dis f-c ">
+					<view class=" dis j-s " v-if="dataInfo.jqpremium">
+						<view>交强险:</view>
+						<view>¥{{dataInfo.jqpremium}}</view>
+					</view>
+					<view class=" dis j-s " v-if="dataInfo.taxamount">
+						<view>车船税:</view>
+						<view>¥{{dataInfo.taxamount}}</view>
+					</view>
+					<view class=" dis j-s " v-if="dataInfo.jypremium">
+						<view>驾意险:</view>
+						<view>¥{{dataInfo.jypremium}}</view>
+					</view>
+					<view class=" dis j-s " v-if="dataInfo.sypremium">
+						<view>商业险:</view>
+						<view>¥{{dataInfo.sypremium}}</view>
+					</view>
+					<view class=" dis j-s " v-if="dataInfo.jqdiscountrate">
+						<view>交强险优惠比例:</view>
+						<view>{{dataInfo.jqdiscountrate}}%</view>
+					</view>
+					<view class=" dis j-s " v-if="dataInfo.sydiscountrate">
+						<view>商业险优惠比例:</view>
+						<view>{{dataInfo.sydiscountrate}}%</view>
+					</view>
+					<view class=" dis j-s ">
+						<view>应缴金额:</view>
+						<view style="color:#2D4D89;font-weight: 600;">¥{{dataInfo.sumpremium}}</view>
+					</view>
+				</view>
+			</view>
+		</view>
+		<view class=" dis a-c j-s" style="padding: 16px;">
+			<u-button type="primary" style="width: 100%;background: #2D4D89;" @click="sendPayCode">发送到微信</u-button>
+			<!-- <button type="default" @tap="sendPayCode">发送到微信</button> -->
+		</view>
+	</view>
+</template>
+
+<script>
+	import {
+		pathToBase64,
+		base64ToPath
+	} from '@/common/pdf.js'
+	export default {
+		data() {
+			return {
+				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"
+					},
+				],
+				logoimg: "",
+			}
+		},
+		async onLoad(options) {
+			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/Group@2x.png',
+				success: image => {
+					pathToBase64(image.path)
+						.then(base64 => {
+							this.caricon = base64
+						})
+						.catch(error => {});
+				},
+
+			});
+		},
+		methods: {
+			//本地图片转换成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: 2, // 设置生成图片的像素比例,默认是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 {
+		padding: 10px 16px;
+		box-sizing: border-box;
+	}
+
+	.image-icon {
+		width: 45px;
+		height: 45px;
+	}
+
+	.quotation-header {
+		width: 100%;
+		height: 60px;
+		background: rgba(45, 77, 137, 0.06);
+		border-radius: 0px 0px 0px 0px;
+		border: 1px dashed rgba(45, 77, 137, 0.2);
+		padding: 10px;
+
+		>view {
+			padding: 10px;
+			margin-left: 25px;
+
+			text:first-child {
+				color: #232832;
+				font-weight: bold;
+				font-size: 14px;
+			}
+		}
+
+	}
+
+	.quotation-data {
+		width: 100%;
+		margin-top: 10px;
+		border: 1px solid #000000;
+
+		.circulate-impany {
+			height: 37px;
+			padding: 8px 6px;
+			background: rgba(45, 77, 137, 0.1);
+			border-bottom: 1px solid #000000;
+			font-weight: 700;
+		}
+
+		.circulate-data {
+			height: 37px;
+			color: #232832;
+			padding: 8px 6px;
+			border-bottom: 1px solid #000000;
+
+			text:first-child {
+				color: #232832;
+				font-weight: bold;
+				font-size: 14px;
+			}
+
+			text:last-child {
+				color: rgba(35, 40, 50, 0.8);
+				font-size: 14px;
+			}
+		}
+
+		.coverage {
+			.coverage-title {
+				width: 100%;
+
+				view:nth-child(1) {
+					border-left: none;
+					border-top: none;
+				}
+
+				view:nth-child(2) {
+					border-top: none;
+					border-left: none;
+					border-right: none;
+				}
+
+				view:nth-child(3) {
+					border-right: none;
+					border-top: none;
+				}
+
+				view {
+					text-align: center;
+					background: #F8F8F8;
+					color: #232832;
+					padding: 6px;
+					border: 1px solid #000;
+					font-size: 12px;
+					box-sizing: border-box;
+				}
+
+			}
+
+			.coverage-sum {
+				width: 100%;
+
+				view:nth-child(1) {
+					border-left: none;
+				}
+
+				view:nth-child(2) {
+					border-left: none;
+					border-right: none;
+					width: 27%;
+				}
+
+				view:nth-child(3) {
+					width: 27%;
+					border-right: none;
+				}
+
+				view {
+					text-align: center;
+					font-size: 12px;
+					background: #F8F8F8;
+					color: #232832;
+					padding: 6px;
+					border: 1px solid #000;
+					border-top: none;
+				}
+			}
+		}
+
+		.circulate-sum {
+			padding: 10px;
+
+			view {
+				view:nth-child(1) {
+					width: 70%;
+					text-align: end;
+				}
+
+				view:nth-child(2) {
+					width: 25%;
+					text-align: 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 */
+</style>

+ 676 - 0
pages/orders1/quoteHistory.vue

@@ -0,0 +1,676 @@
+<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>

+ 666 - 0
pages/orders1/subOrders.vue

@@ -0,0 +1,666 @@
+<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>
+					<text>( {{item.agreementName}} )</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 a-c">
+					<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" :custom-style="{fontSize:'14px'}" type="error" :plain="true"
+						style="margin-right:10px;" @click="queryStatus(item.id,item.inscompany)">查询缴费状态</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 size="mini" type="primary" :custom-style="{fontSize:'14px'}" :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
+				}
+				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;
+				})
+			},
+			//查看详情
+			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>

+ 35 - 2
pages/roadRescue/Grounding.vue

@@ -53,10 +53,10 @@
 				}
 			}
 		},
-		onShow() {},
-		onLoad() {
+		onShow() {
 			this.getCurrentLocation();
 		},
+		onLoad() {},
 		methods: {
 			getCurrentLocation() {
 				//获取当前的地理位置
@@ -65,9 +65,42 @@
 					type: 'gcj02',
 					geocode: true,
 					success: function(res) {
+						console.log(res);
 						let address = res.address.province + res.address.city + res.address.district + res
 							.address.street + res.address.poiName;
 						vthis.dataInfo.rescuePosition = address;
+					},
+					fail: function(err) {
+						console.log(err);
+						// uni.showModal({
+						// 	title: '提示',
+						// 	content: '请打开定位服务',
+						// 	success: ({
+						// 		confirm,
+						// 		cancel
+						// 	}) => {
+						// 		if (confirm) {
+						// 			// android平台
+						// 			if (uni.getSystemInfoSync().platform == 'android') {
+						// 				var Intent = plus.android.importClass(
+						// 					'android.content.Intent');
+						// 				var Settings = plus.android.importClass(
+						// 					'android.provider.Settings');
+						// 				var intent = new Intent(Settings
+						// 					.ACTION_LOCATION_SOURCE_SETTINGS);
+						// 				var main = plus.android.runtimeMainActivity();
+						// 				main.startActivity(intent); // 打开系统设置GPS服务页面
+
+						// 			}
+						// 		}
+						// 		// 用户取消前往开启定位服务
+						// 		if (cancel) {
+						// 			uni.navigateBack({ //uni.navigateTo跳转的返回,默认1为返回上一级
+						// 				delta: 1
+						// 			});
+						// 		}
+						// 	}
+						// });
 					}
 				});
 			},

+ 32 - 3
pages/roadRescue/replacement.vue

@@ -54,11 +54,9 @@
 			}
 		},
 		onShow() {
-
-		},
-		onLoad() {
 			this.getCurrentLocation();
 		},
+		onLoad() {},
 		methods: {
 			getCurrentLocation() {
 				//获取当前的地理位置
@@ -70,6 +68,37 @@
 						let address = res.address.province + res.address.city + res.address.district + res
 							.address.street + res.address.poiName;
 						vthis.dataInfo.rescuePosition = address;
+					},
+					fail: function(err) {
+						uni.showModal({
+							title: '提示',
+							content: '请打开定位服务',
+							success: ({
+								confirm,
+								cancel
+							}) => {
+								if (confirm) {
+									// android平台
+									if (uni.getSystemInfoSync().platform == 'android') {
+										var Intent = plus.android.importClass(
+											'android.content.Intent');
+										var Settings = plus.android.importClass(
+											'android.provider.Settings');
+										var intent = new Intent(Settings
+											.ACTION_LOCATION_SOURCE_SETTINGS);
+										var main = plus.android.runtimeMainActivity();
+										main.startActivity(intent); // 打开系统设置GPS服务页面
+
+									}
+								}
+								// 用户取消前往开启定位服务
+								if (cancel) {
+									uni.navigateBack({ //uni.navigateTo跳转的返回,默认1为返回上一级
+										delta: 1
+									});
+								}
+							}
+						});
 					}
 				});
 			},

+ 32 - 3
pages/roadRescue/trailer.vue

@@ -90,11 +90,9 @@
 			}
 		},
 		onShow() {
-			// this.getCurrentLocation();
-		},
-		onLoad() {
 			this.getCurrentLocation();
 		},
+		onLoad() {},
 		methods: {
 			getCurrentLocation() {
 				//获取当前的地理位置
@@ -108,6 +106,37 @@
 						vthis.startingLatitude = res.latitude;
 						vthis.startingLongitude = res.longitude;
 						vthis.dataInfo.rescueStarting = address;
+					},
+					fail: function(err) {
+						uni.showModal({
+							title: '提示',
+							content: '请打开定位服务',
+							success: ({
+								confirm,
+								cancel
+							}) => {
+								if (confirm) {
+									// android平台
+									if (uni.getSystemInfoSync().platform == 'android') {
+										var Intent = plus.android.importClass(
+											'android.content.Intent');
+										var Settings = plus.android.importClass(
+											'android.provider.Settings');
+										var intent = new Intent(Settings
+											.ACTION_LOCATION_SOURCE_SETTINGS);
+										var main = plus.android.runtimeMainActivity();
+										main.startActivity(intent); // 打开系统设置GPS服务页面
+
+									}
+								}
+								// 用户取消前往开启定位服务
+								if (cancel) {
+									uni.navigateBack({ //uni.navigateTo跳转的返回,默认1为返回上一级
+										delta: 1
+									});
+								}
+							}
+						});
 					}
 				});
 			},

+ 6 - 6
pages/wallet/wallet.vue

@@ -175,9 +175,9 @@
 
 			// 绑定银行卡界面
 			changeBank() {
-				// this.navigate({
-				// 	url: "/pages/wallet/bankCard"
-				// }, "navigateTo", true);
+				this.navigate({
+					url: "/pages/wallet/bankCard"
+				}, "navigateTo", true);
 			},
 			// 推广界面
 			toSpread() {
@@ -187,9 +187,9 @@
 			},
 			//提现界面
 			toWithdraw() {
-				// this.navigate({
-				// 	url: "/pages/wallet/withdraw"
-				// }, "navigateTo", true);
+				this.navigate({
+					url: "/pages/wallet/withdraw"
+				}, "navigateTo", true);
 			},
 
 			//格式化银行卡号

+ 1 - 1
pages/wallet/withdraw.vue

@@ -7,7 +7,7 @@
 				<view class="withdraw-head-to">到账银行卡</view>
 				<view class="dis a-c" style="font-weight: bold;font-size: 12px;">
 					<view class="bankLogo">
-						<image src="../../static/icon/bjdcar.png" mode=""></image>
+						<image src="/static/icon/bjdcar.png" mode="" style="width: 100%;height: 100%;"></image>
 					</view>
 					<text
 						v-if="bankCardInfo.bankAccount && bankCardInfo.bankNumber">{{bankCardInfo.bankAccount.slice(-4)}}({{ bankCardInfo.bankNumber.slice(-4)}})</text>

二進制
static/image/car-insure/Frame.png


二進制
static/image/car-insure/Frame1.png


二進制
static/image/car-insure/Group.png


二進制
static/image/car-insure/Group30.png


二進制
static/image/car-insure/advance.png


二進制
static/image/car-insure/before.png


二進制
static/image/car-insure/carback.png


二進制
static/image/car-insure/carban.png


二進制
static/image/car-insure/carban2.png


二進制
static/image/car-insure/carbg.png


二進制
static/image/car-insure/carfront.png


二進制
static/image/car-insure/dropdown.png


二進制
static/image/car-insure/lastyear.png


二進制
static/image/car-insure/leaf.png


二進制
static/image/car-insure/ppp.jpg


二進制
static/image/car-insure/rotate1.png


二進制
static/image/car-insure/rotate2.png


二進制
static/image/car-insure/search.png


二進制
static/image/car-insure/star1.png


二進制
static/image/car-insure/star2.png


二進制
static/image/car-insure/state1.png


二進制
static/image/car-insure/state2.png


二進制
static/image/car-insure/state3.png


二進制
static/image/car-insure/state4.png


二進制
static/image/car-insure/state5.png


二進制
static/image/car-insure/upload.png


二進制
static/image/car-insure/userback.png


二進制
static/image/car-insure/userfront.png


+ 19 - 17
style/uni.css

@@ -785,35 +785,37 @@ checkbox-group label {
 	color: #B2B2B2;
 }
 
-.uni-uploader-body {
-	margin-top: 16rpx;
-	padding-bottom: 10px;
-}
+.uni-uploader-body {}
 
 .uni-uploader__files {
-	display: flex;
-	flex-direction: row;
-	flex-wrap: wrap;
+	width: 50%;
+	height: 100%;
+}
+
+.uni-uploader__files text {
+	color: #999;
+	font-size: 12px;
 }
 
 .uni-uploader__file {
 	margin: 10rpx;
-	width: 210rpx;
-	height: 210rpx;
+	width: 158px;
+	height: 92px;
 }
 
 .uni-uploader__img {
 	display: block;
-	width: 210rpx;
-	height: 210rpx;
+	width: 158px;
+	height: 92px;
 }
 
 .uni-uploader__input-box {
 	position: relative;
 	margin: 10rpx;
-	width: 208rpx;
-	height: 208rpx;
-	border: 2rpx solid #D9D9D9;
+	width: 158px;
+	height: 92px;
+	border: 1px dashed #CED4DA;
+	background: #F9F9F9;
 }
 
 .uni-uploader__input-box:before,
@@ -824,16 +826,16 @@ checkbox-group label {
 	left: 50%;
 	-webkit-transform: translate(-50%, -50%);
 	transform: translate(-50%, -50%);
-	background-color: #D9D9D9;
+	background-color: #0052FF;
 }
 
 .uni-uploader__input-box:before {
 	width: 4rpx;
-	height: 79rpx;
+	height: 50rpx;
 }
 
 .uni-uploader__input-box:after {
-	width: 79rpx;
+	width: 50rpx;
 	height: 4rpx;
 }
 

Some files were not shown because too many files changed in this diff