@dongkboy 1 год назад
Родитель
Сommit
574a98d98e

+ 2 - 75
App.vue

@@ -2,6 +2,7 @@
 	/* 注意要写在第一行,同时给style标签加入lang="scss"属性 */
 	@import "uview-ui/index.scss";
 </style>
+
 <script>
 	import store from "@/store";
 	import socket from "@/config/socket";
@@ -45,9 +46,7 @@
 			// #endif
 			// #ifdef APP-PLUS
 			this.launch()
-			if (store.state.token) {
-				socket.init();
-			} else {
+			if (store.state.token) {} else {
 				var url = window.location.href;
 				if ((url.indexOf("pages/carInsure/quoteDetail1") > 0) || (url.indexOf("pages/carInsure/quoteDetail") >
 						0) || (url.indexOf("pages/register/register") > 0) ||
@@ -62,81 +61,9 @@
 				}
 			}
 			// #endif
-			//#ifdef APP-PLUS
-			var info = plus.push.getClientInfo()
-
-			// 使用5+App的方式进行监听消息推送
-			plus.push.addEventListener("click", function(msg) {
-				console.log("click:" + JSON.stringify(msg));
-				console.log(msg.payload);
-				console.log(JSON.stringify(msg));
-				// onLaunch 生命周期里,页面跳转有问题,跳不过去
-				// 应该是页面还没加载,加上定时后,就可以了;
-				setTimeout(() => {
-					uni.navigateTo({
-						url: `pages/charging/chargeCoupon?data=${JSON.parse(msg.payload)}`
-					})
-				}, 1000)
-			}, false);
-			// 监听在线消息事件    
-			plus.push.addEventListener("receive", function(msg) {
-				//业务代码
-				console.log("recevice:" + JSON.stringify(msg))
-			}, false);
-			//#endif
-
 		},
 		onShow: function(e) {
-			// #ifdef APP-PLUS
-			DB.openSqlite()
-				.then(res => {})
-				.catch(error => {});
-			// #endif
 
-			// #ifdef MP-WEIXIN
-			//获取二维码携带的参数
-			let scene = decodeURIComponent(e.query.scene);
-			scene = scene.split("&");
-			let data = {
-				//场景值
-				scene: e.scene
-			};
-			scene.forEach(item => {
-				let arr = item.split("=");
-				if (arr.length == 2) {
-					data[arr[0]] = arr[1];
-				}
-			});
-			store.commit("setChatScenesInfo", Object.assign(e.query, data));
-			//小程序更新
-			if (uni.getUpdateManager) {
-				const updateManager = uni.getUpdateManager();
-				updateManager.onCheckForUpdate(function(res) {
-					// 请求完新版本信息的回调
-					// console.log(res.hasUpdate);
-				});
-				updateManager.onUpdateReady(function(res) {
-					uni.showModal({
-						title: "更新提示",
-						content: "新版本已经准备好,是否重启应用?",
-						success(res) {
-							if (res.confirm) {
-								// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
-								updateManager.applyUpdate();
-							}
-						}
-					});
-				});
-				updateManager.onUpdateFailed(function(res) {
-					// 新的版本下载失败
-					uni.showModal({
-						title: "已经有新版本了哟~",
-						content: "新版本已经上线啦~,请您删除当前小程序,重新搜索打开哟~",
-						showCancel: false
-					});
-				});
-			}
-			// #endif
 		},
 		onHide: function() {},
 

+ 12 - 19
components/common/previewImage/previewImage.vue

@@ -31,7 +31,7 @@
 		name: 'ksj-previewImage', //插件名称
 		props: {
 			imgs: {
-				//图片列表
+				//描述列表
 				type: Array,
 				required: true,
 				default: () => {
@@ -65,7 +65,8 @@
 			circular: {
 				type: Boolean,
 				default: false
-			}
+			},
+
 		},
 		data() {
 			return {
@@ -76,7 +77,7 @@
 				time: 0, //定时器
 				interval: 1000, //长按事件
 				scale: 1, //缩放比例
-
+				dataimgs: [...this.imgs]
 			};
 		},
 		methods: {
@@ -144,11 +145,6 @@
 			},
 
 
-			//保存
-			save(e) {
-				var src = this.imgs[this.index];
-				this.downloadImg(src);
-			},
 
 			//下载并保存文件
 			downloadImg(src) {
@@ -182,28 +178,25 @@
 			},
 			//打开
 			open(e) {
+				const newArray = [...this.imgs];
 				if (e === null || e === '') {
 					// console.log('kxj-previewImage:打开参数无效');
 					return;
 				}
 
 				if (!isNaN(e)) {
-					if (e >= this.imgs.length) {
+					if (e >= newArray.length) {
 						// console.log('kxj-previewImage:打开参数无效');
 					} else {
 						this.index = e;
 					}
 				} else {
-					var index = this.imgs.indexOf(e);
-					if (index === -1) {
-						this.imgs = [e];
-						this.index = 0;
-						// console.log('kxj-previewImage:未在图片地址数组中找到传入的图片,已为你自动打开单张预览模式')
-					} else {
-						this.index = this.imgs.indexOf(e);
-					}
+					newArray.map((ele, index) => {
+						if (e == ele.url) {
+							this.index = index;
+						}
+					})
 				}
-				// console.log('kxj-previewImage:当前预览图片序号' + this.index);
 				this.show = true;
 			},
 			//关闭
@@ -222,7 +215,7 @@
 <!--使用scss,只在本组件生效-->
 <style lang="scss" scoped>
 	.previewImage {
-		z-index: 999;
+		z-index: 99999;
 		position: fixed;
 		top: 0;
 		left: 0;

+ 20 - 12
components/modules/carInsure/checkImageInfo/checkImageInfo.vue

@@ -4,18 +4,15 @@
 		<view class="popContent " @tap.stop.prevent @touchmove.stop.prevent @click.stop.prevent>
 			<view class="popHeader center">信息校验</view>
 			<view class="popBody">
-				<view class="icon iconfont icon-fanzhuanshunshizhen  lRotate center" @click.stop.prevent="rotatefront">
+				<!-- 	<view class="icon iconfont icon-fanzhuanshunshizhen  lRotate center" @click.stop.prevent="rotatefront">
 				</view>
 				<view v-if="img.length==2" class="icon iconfont icon-fanzhuanshunshizhen  lRotate1 center"
-					@click.stop.prevent="rotatefront">
+					@click.stop.prevent="rotatefront1">
+				</view> -->
+				<view class="imgOcr dis j-s a-c">
+					<image class="obverseimg" src="/static/carfront.png" @click="obverse_btn" mode="">
+						<image class="obverseimg" src="/static/carfront.png" @click="obverse_btn" mode="">
 				</view>
-				<movable-area class="marea" scale-area v-for="(imgitem,imgindex) in img" :key="imgindex">
-					<movable-view class="mview center" direction="all" :out-of-bounds="false" :inertia="true"
-						damping="90" friction="2" scale="true" scale-min="1" scale-max="4" :scale-value="scale"
-						@scale="onScale" @change="movableChange">
-						<image class="image" :src="imgitem" :style="{ transform: 'rotateZ(' + deg + 'deg)' }" />
-					</movable-view>
-				</movable-area>
 				<template v-if="checkType == '2'">
 					<view class="line d-flex a-center">
 						<view class="line_title">车牌号</view>
@@ -91,14 +88,14 @@
 					<view class="line d-flex a-center">
 						<view class="line_title">有效期起期</view>
 						<view class="line_info d-flex flex-1">
-							<input type="text" placeholder-style="font-size:28upx; color:#999" placeholder="请输入证件号"
+							<input type="text" placeholder-style="font-size:28upx; color:#999" placeholder="请输入有效期起期"
 								v-model="checkInfo.identifyValidDate" />
 						</view>
 					</view>
 					<view class="line d-flex a-center">
 						<view class="line_title">有效期止期</view>
 						<view class="line_info d-flex flex-1">
-							<input type="text" placeholder-style="font-size:28upx; color:#999" placeholder="请输入证件号"
+							<input type="text" placeholder-style="font-size:28upx; color:#999" placeholder="请输入有效期止期"
 								v-model="checkInfo.identifyValidEndDate" />
 						</view>
 					</view>
@@ -201,7 +198,9 @@
 					this.swiper=false;
 				} */
 			},
-
+			arr() {
+				console.log(1)
+			},
 			//旋转
 			rotatefront(e) {
 				this.deg = this.deg == 270 ? 0 : this.deg + 90;
@@ -456,5 +455,14 @@
 		padding: 0px 30px;
 	}
 
+	.imgOcr {
+		background-color: #FFF;
+
+		.obverseimg {
+			width: 50%;
+			height: 150px;
+		}
+	}
+
 	/* 弹出框样式End */
 </style>

+ 12 - 20
components/yzhua006-update/app-update.vue

@@ -37,10 +37,7 @@
 		name: "appUpdate",
 		//@是否强制更新
 		props: {
-			tabbar: {
-				type: Boolean,
-				default: false, //是否有原生tabbar组件
-			}
+
 		},
 		data() {
 			return {
@@ -79,9 +76,6 @@
 			},
 			getHeight: function() {
 				let bottom = 0;
-				if (this.tabbar) {
-					bottom = 10;
-				}
 				return {
 					"bottom": bottom + 'px',
 					"height": "auto"
@@ -153,19 +147,17 @@
 				vm.need_update = vm.compareVersion(vm.version, vm.update_info.versionno); // 检查是否需要升级
 				if (vm.need_update) {
 					vm.popup_show = true; //线上版本号大于当前安装的版本号  显示升级框
-					if (vm.tabbar) {
-						//页面是否有原生tabbar组件
-						// 创建原生view用来遮罩tabbar的点击事件 (如果是没有用原生的tabbar这一步可以取消)
-						vm.viewObj = new plus.nativeObj.View('viewObj', {
-							bottom: '0px',
-							left: '0px',
-							height: '10px',
-							width: '100%',
-							position: "fixed",
-							backgroundColor: "rgba(0,0,0,.6)"
-						});
-						vm.viewObj.show() //显示原生遮罩
-					}
+					//页面是否有原生tabbar组件
+					// 创建原生view用来遮罩tabbar的点击事件 (如果是没有用原生的tabbar这一步可以取消)
+					vm.viewObj = new plus.nativeObj.View('viewObj', {
+						bottom: '0px',
+						left: '0px',
+						height: '10px',
+						width: '100%',
+						position: "fixed",
+						backgroundColor: "rgba(0,0,0,.6)"
+					});
+					vm.viewObj.show() //显示原生遮罩
 				}
 			},
 

+ 7 - 6
config/baseUrl.js

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

+ 5 - 2
config/login.js

@@ -21,6 +21,9 @@ async function login(options = {}) {
 			title: res.msg,
 			icon: 'none'
 		});
+	} else {
+		uni.setStorageSync('username', options.data.account);
+		uni.setStorageSync('password', options.data.password);
 	}
 	let loginStatus = await getLoginUserInfo(res.data, options.data.account);
 	if (loginStatus) {
@@ -235,8 +238,8 @@ async function getLoginUserInfo(token, userId) {
 // 查询人员状态status,1为审核通过 2为新注册人员(新注册人员又分为5个状态 1:未认证 2:认证中 3:驳回认证 4:退回修改 5正常)
 async function getStaffStatus(userId) {
 	// 人员状态:1正常  0删除  2新注册  3审批不通过
-	
- 	//查询登录人的状态信息
+
+	//查询登录人的状态信息
 	let res = await $http.get('/user/findByName?name=' + userId)
 	//默认人员状态是未认证状态
 	// var status = '1';

+ 44 - 31
config/utils.js

@@ -1,47 +1,59 @@
 import $http from '@/config/requestConfig'
 import store from '@/store';
 import base from '@/config/baseUrl';
-import { getAppWxLatLon } from '@/plugins/utils';
-import { getStaffStatus } from '@/config/login';
+import {
+	getAppWxLatLon
+} from '@/plugins/utils';
+import {
+	getStaffStatus
+} from '@/config/login';
 // #ifdef H5
-import { getLatLonH5, publicShareFun, wxPublicPay, getBrowser,appMutual } from '@/config/html5Utils';
+import {
+	getLatLonH5,
+	publicShareFun,
+	wxPublicPay,
+	getBrowser,
+	appMutual
+} from '@/config/html5Utils';
 // 公众号分享
 export const publicShare = publicShareFun;
 // #endif
 // #ifdef APP-PLUS
-import appShareFun, {closeShare} from '@/plugins/share';
+import appShareFun, {
+	closeShare
+} from '@/plugins/share';
 // APP分享
-export const appShare = function(data,callbcak){
+export const appShare = function(data, callbcak) {
 	return appShareFun({
 		shareTitle: data.shareTitle || base.share.title,
 		shareUrl: data.shareUrl || base.share.link,
 		shareContent: data.shareContent || base.share.desc,
 		shareImg: data.shareImg || base.share.imgUrl,
-	},callbcak);
+	}, callbcak);
 };
 export const closeAppShare = closeShare;
 // #endif
 
 // #ifdef MP-WEIXIN
 // 微信小程序分享
-export const wxShare = function (data = {}) {
+export const wxShare = function(data = {}) {
 	let shareInfo = {
 		title: data.title || base.share.title,
 	};
-	if(data.path && typeof(data.path) == "string"){
+	if (data.path && typeof(data.path) == "string") {
 		shareInfo.path = data.path;
-	} else if(data.path != 1){
+	} else if (data.path != 1) {
 		shareInfo.path = "pages/home/home";
 	}
-	if(data.imageUrl){
+	if (data.imageUrl) {
 		shareInfo.imageUrl = data.imageUrl;
 	}
 	let userInfo = store.state.userInfo;
-	if(!(userInfo && userInfo.uid)){
+	if (!(userInfo && userInfo.uid)) {
 		userInfo = uni.getStorageSync("userInfo");
 	}
 	if (userInfo && userInfo.uid) {
-		if(data.query && typeof(data.query) == "object"){
+		if (data.query && typeof(data.query) == "object") {
 			data.query.recommendCode = userInfo.uid;
 		} else {
 			data.query = {
@@ -49,9 +61,9 @@ export const wxShare = function (data = {}) {
 			};
 		}
 	}
-	if(data.query && typeof(data.query) == "object"){
-		Object.keys(data.query).forEach((key,index) => {
-			if(index > 0 && shareInfo.query){
+	if (data.query && typeof(data.query) == "object") {
+		Object.keys(data.query).forEach((key, index) => {
+			if (index > 0 && shareInfo.query) {
 				shareInfo.query += "&" + key + "=" + data.query[key];
 				shareInfo.path += "&" + key + "=" + data.query[key];
 			} else {
@@ -133,7 +145,8 @@ export const setPayAssign = function(orderInfo, callback) {
 	//支付
 	// #ifdef APP-PLUS
 	uni.navigateTo({
-		url: '/pages/home/weChatPay?orderNo=' + orderInfo.orderNo + '&price=' + orderInfo.price + '&title=' + orderInfo.title
+		url: '/pages/home/weChatPay?orderNo=' + orderInfo.orderNo + '&price=' + orderInfo.price +
+			'&title=' + orderInfo.title
 	});
 	// #endif 
 	// #ifdef MP-WEIXIN
@@ -141,7 +154,7 @@ export const setPayAssign = function(orderInfo, callback) {
 		...orderInfo,
 		type: "smallPay"
 	}, res => {
-		if(res.success){
+		if (res.success) {
 			uni.redirectTo({
 				url: "/pages/shopCar/paySuccess?orderNo=" + orderInfo.orderNo
 			});
@@ -152,7 +165,7 @@ export const setPayAssign = function(orderInfo, callback) {
 	if (getBrowser() === '微信') {
 		wxPublicPay({
 			orderNo: orderInfo.orderNo
-		}, function(){
+		}, function() {
 			uni.redirectTo({
 				url: "/pages/shopCar/paySuccess?orderNo=" + orderInfo.orderNo
 			});
@@ -163,18 +176,18 @@ export const setPayAssign = function(orderInfo, callback) {
 	// #endif
 }
 // 获取地址信息 (微信小程序、APP、公众号)
-export const getLatLon = function(tip){
+export const getLatLon = function(tip) {
 	return new Promise((resolve, reject) => {
-		const successProcess = function(res){
+		const successProcess = function(res) {
 			store.commit("setCurrentAddress", {
 				latitude: res.latitude,
 				longitude: res.longitude
 			});
 			resolve(res);
 		};
-		const errProcess = function(err){
+		const errProcess = function(err) {
 			reject(err);
-			if(tip){
+			if (tip) {
 				uni.showToast({
 					title: err,
 					icon: "none"
@@ -182,19 +195,19 @@ export const getLatLon = function(tip){
 			}
 		};
 		// #ifdef H5
-		getLatLonH5(successProcess,errProcess);
+		getLatLonH5(successProcess, errProcess);
 		// #endif
 		// #ifndef H5
-		getAppWxLatLon(successProcess,errProcess);
+		getAppWxLatLon(successProcess, errProcess);
 		// #endif
 	});
 }
 
 // 页面跳转
-export const navigate = async function(options,type = "navigateTo",isRequireLogin = false){
+export const navigate = async function(options, type = "navigateTo", isRequireLogin = false) {
 	uni.hideKeyboard();
-	jumpPage(options,type);
-	
+	jumpPage(options, type);
+
 	// 是否登录验证
 	// if (isRequireLogin == true) {
 	// 	// 进行判断是否用户已登录,如果未登录,则弹出要求登录框,并return false进行截断
@@ -212,7 +225,7 @@ export const navigate = async function(options,type = "navigateTo",isRequireLogi
 	// 						        }
 	// 						    }
 	// 						});
-						
+
 	// 				}else if((store.state.userStatus==='2') || (store.state.userStatus==='3') || (store.state.userStatus==='4')){
 	// 					let title="";
 	// 					if(store.state.userStatus==='2'){
@@ -260,11 +273,11 @@ export const navigate = async function(options,type = "navigateTo",isRequireLogi
 	// 	// 跳转
 	// 	jumpPage(options,type)
 	// }
-	
+
 }
 // 跳转页面
-function jumpPage(options,type){
-	switch (type){
+function jumpPage(options, type) {
+	switch (type) {
 		case "navigateTo":
 			uni.navigateTo(options);
 			break;

+ 205 - 202
manifest.json

@@ -1,204 +1,207 @@
 {
-	"name": "晋掌柜",
-	"appid": "__UNI__D4FE29A",
-	"description": "保险类app",
-	"transformPx": false,
-	"icons": [{
-		"sizes": "分辨率,192x192",
-		"src": "图片路径"
-	}],
-	"versionName": "1.0.161",
-	"versionCode": 161,
-	"app-plus": {
-		"error": {
-			"url": "hybrid/html/error.html"
-		},
-		"compatible": {
-			"ignoreVersion": true
-		},
-		"privacy": {
-			"prompt": "template",
-			"template": {
-				"title": "平台协议和隐私协议",
-				"message": "请你务必审慎阅读、充分理解“隐私政策”各条款,包括但不限于:为了更好的向你提供服务,我们需要收集你的设备标识、操作日志等信息用于分析、优化应用性能。<br/>  你可阅读<a href='http://baoxianzhanggui.com:8091/#/pages/login/xieyi'>《平台协议》</a>和<a href='http://baoxianzhanggui.com:8091/#/pages/login/mimi'>《隐私协议》</a>了解详细信息。如果你同意,请点击下面按钮开始接受我们的服务。",
-				"buttonAccept": "同意",
-				"buttonRefuse": "暂不同意"
-			}
-		},
-		"modules": {
-			"Messaging": {},
-			"OAuth": {},
-			"Payment": {},
-			"Share": {},
-			"Push": {},
-			"SQLite": {
-				"description": "iBeacon"
-			},
-			"Camera": {}
-		},
-		"distribute": {
-			"android": {
-				"permissionPhoneState": {
-					"request": "none",
-					"prompt": "为保证您正常、安全地使用,需要获取设备识别码(部分手机提示为获取手机号码)使用权限,请允许。"
-				},
-				"permissionExternalStorage": {
-					"request": "always",
-					"prompt": "应用保存运行状态等信息,需要获取读写手机存储(系统提示为访问设备上的照片、媒体内容和文件)权限,请允许。"
-				},
-				"permissions": [
-					"<uses-feature android:name=\"android.hardware.camera\"/>",
-					"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
-					"<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
-					"<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
-					"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
-					"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
-					"<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
-					"<uses-permission android:name=\"android.permission.CAMERA\"/>",
-					"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
-					"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
-					"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
-					"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
-					"<uses-permission android:name=\"android.permission.INSTALL_PACKAGES\"/>",
-					"<uses-permission android:name=\"android.permission.INTERNET\"/>",
-					"<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
-					"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
-					"<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>",
-					"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
-					"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
-					"<uses-permission android:name=\"android.permission.READ_SMS\"/>",
-					"<uses-permission android:name=\"android.permission.RECEIVE_BOOT_COMPLETED\"/>",
-					"<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
-					"<uses-permission android:name=\"android.permission.REQUEST_INSTALL_PACKAGES\"/>",
-					"<uses-permission android:name=\"android.permission.SEND_SMS\"/>",
-					"<uses-permission android:name=\"android.permission.SYSTEM_ALERT_WINDOW\"/>",
-					"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
-					"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
-					"<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>",
-					"<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>",
-					"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>",
-					"<uses-permission android:name=\"android.permission.WRITE_SMS\"/>"
-				],
-				"abiFilters": ["armeabi-v7a", "arm64-v8a", "x86"]
-			},
-			"sdkConfigs": {
-				"ad": {},
-				"payment": {
-					"alipay": {
-						"__platform__": ["android"]
-					},
-					"weixin": {
-						"__platform__": ["android"],
-						"appid": "wx612ca90988c46947",
-						"UniversalLinks": ""
-					}
-				},
-				"share": {
-					"weixin": {
-						"appid": "wx612ca90988c46947",
-						"UniversalLinks": ""
-					}
-				},
-				"oauth": {
-					"weixin": {
-						"appid": "wx612ca90988c46947",
-						"appsecret": "75b7d4cda453b2075dec23f849278bc0",
-						"UniversalLinks": ""
-					}
-				},
-				"geolocation": {
-					"amap": {
-						"__platform__": ["android"],
-						"appkey_ios": "",
-						"appkey_android": "64ee5a3ca75539df3775271fa987e8bc"
-					}
-				},
-				"push": {
-					"unipush": {
-						"appid": "YDcU8mcWRO6MWIT1i4naP2",
-						"appkey": "DK2LTzhnc87pFFFhcTSgs8",
-						"appsecret": "wTUMKWB4ReAoPyCp7Jyaz9"
-					}
-				},
-				"maps": {}
-			},
-			"icons": {
-				"android": {
-					"hdpi": "unpackage/res/icons/72x72.png",
-					"xhdpi": "unpackage/res/icons/96x96.png",
-					"xxhdpi": "unpackage/res/icons/144x144.png",
-					"xxxhdpi": "unpackage/res/icons/192x192.png"
-				},
-				"ios": {
-					"appstore": "unpackage/res/icons/1024x1024.png",
-					"ipad": {
-						"app": "unpackage/res/icons/76x76.png",
-						"app@2x": "unpackage/res/icons/152x152.png",
-						"notification": "unpackage/res/icons/20x20.png",
-						"notification@2x": "unpackage/res/icons/40x40.png",
-						"proapp@2x": "unpackage/res/icons/167x167.png",
-						"settings": "unpackage/res/icons/29x29.png",
-						"settings@2x": "unpackage/res/icons/58x58.png",
-						"spotlight": "unpackage/res/icons/40x40.png",
-						"spotlight@2x": "unpackage/res/icons/80x80.png"
-					},
-					"iphone": {
-						"app@2x": "unpackage/res/icons/120x120.png",
-						"app@3x": "unpackage/res/icons/180x180.png",
-						"notification@2x": "unpackage/res/icons/40x40.png",
-						"notification@3x": "unpackage/res/icons/60x60.png",
-						"settings@2x": "unpackage/res/icons/58x58.png",
-						"settings@3x": "unpackage/res/icons/87x87.png",
-						"spotlight@2x": "unpackage/res/icons/80x80.png",
-						"spotlight@3x": "unpackage/res/icons/120x120.png"
-					}
-				}
-			},
-			"splashscreen": {
-				"androidStyle": "common"
-			},
-			"ios": {
-				"dSYMs": false
-			}
-		},
-		"compilerVersion": 3,
-		"nvueLaunchMode": "fast",
-		"splashscreen": {
-			"alwaysShowBeforeRender": true
-		}
-	},
-	// 5+App特有相关
-	"quickapp": {},
-	// 快应用特有相关
-	"mp-weixin": {
-		"setting": {
-			"urlCheck": false,
-			"es6": false,
-			"postcss": false,
-			"minified": false
-		},
-		"usingComponents": true,
-		"appid": "wxe57ddfbe230bcfba",
-		"permission": {}
-	},
-	"h5": {
-		"template": "template.h5.html",
-		"router": {
-			"mode": "hash",
-			"base": "./"
-		},
-		"optimization": {
-			"treeShaking": {
-				"enable": true
-			}
-		},
-		"devServer": {
-			"https": false,
-			"port": 80
-		},
-		"sdkConfigs": {
-			"maps": {}
-		}
-	}
+    "name" : "晋掌柜",
+    "appid" : "__UNI__D4FE29A",
+    "description" : "保险类app",
+    "transformPx" : false,
+    "icons" : [
+        {
+            "sizes" : "分辨率,192x192",
+            "src" : "图片路径"
+        }
+    ],
+    "versionName" : "1.0.167",
+    "versionCode" : 167,
+    "app-plus" : {
+        "error" : {
+            "url" : "hybrid/html/error.html"
+        },
+        "compatible" : {
+            "ignoreVersion" : true
+        },
+        "privacy" : {
+            "prompt" : "template",
+            "template" : {
+                "title" : "平台协议和隐私协议",
+                "message" : "请你务必审慎阅读、充分理解“隐私政策”各条款,包括但不限于:为了更好的向你提供服务,我们需要收集你的设备标识、操作日志等信息用于分析、优化应用性能。<br/>  你可阅读<a href='http://baoxianzhanggui.com:8091/#/pages/login/xieyi'>《平台协议》</a>和<a href='http://baoxianzhanggui.com:8091/#/pages/login/mimi'>《隐私协议》</a>了解详细信息。如果你同意,请点击下面按钮开始接受我们的服务。",
+                "buttonAccept" : "同意",
+                "buttonRefuse" : "暂不同意"
+            }
+        },
+        "modules" : {
+            "Messaging" : {},
+            "OAuth" : {},
+            "Payment" : {},
+            "Share" : {},
+            "Push" : {},
+            "SQLite" : {
+                "description" : "iBeacon"
+            },
+            "Camera" : {}
+        },
+        "distribute" : {
+            "android" : {
+                "permissionPhoneState" : {
+                    "request" : "none",
+                    "prompt" : "为保证您正常、安全地使用,需要获取设备识别码(部分手机提示为获取手机号码)使用权限,请允许。"
+                },
+                "permissionExternalStorage" : {
+                    "request" : "always",
+                    "prompt" : "应用保存运行状态等信息,需要获取读写手机存储(系统提示为访问设备上的照片、媒体内容和文件)权限,请允许。"
+                },
+                "permissions" : [
+                    "<uses-feature android:name=\"android.hardware.camera\"/>",
+                    "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
+                    "<uses-permission android:name=\"android.permission.CAMERA\"/>",
+                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
+                    "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
+                    "<uses-permission android:name=\"android.permission.INSTALL_PACKAGES\"/>",
+                    "<uses-permission android:name=\"android.permission.INTERNET\"/>",
+                    "<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
+                    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_SMS\"/>",
+                    "<uses-permission android:name=\"android.permission.RECEIVE_BOOT_COMPLETED\"/>",
+                    "<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
+                    "<uses-permission android:name=\"android.permission.REQUEST_INSTALL_PACKAGES\"/>",
+                    "<uses-permission android:name=\"android.permission.SEND_SMS\"/>",
+                    "<uses-permission android:name=\"android.permission.SYSTEM_ALERT_WINDOW\"/>",
+                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
+                    "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_SMS\"/>"
+                ],
+                "abiFilters" : [ "armeabi-v7a", "arm64-v8a", "x86" ]
+            },
+            "sdkConfigs" : {
+                "ad" : {},
+                "payment" : {
+                    "alipay" : {
+                        "__platform__" : [ "android" ]
+                    },
+                    "weixin" : {
+                        "__platform__" : [ "android" ],
+                        "appid" : "wx612ca90988c46947",
+                        "UniversalLinks" : ""
+                    }
+                },
+                "share" : {
+                    "weixin" : {
+                        "appid" : "wx612ca90988c46947",
+                        "UniversalLinks" : ""
+                    }
+                },
+                "oauth" : {
+                    "weixin" : {
+                        "appid" : "wx612ca90988c46947",
+                        "appsecret" : "75b7d4cda453b2075dec23f849278bc0",
+                        "UniversalLinks" : ""
+                    }
+                },
+                "geolocation" : {
+                    "amap" : {
+                        "__platform__" : [ "android" ],
+                        "appkey_ios" : "",
+                        "appkey_android" : "64ee5a3ca75539df3775271fa987e8bc"
+                    }
+                },
+                "push" : {
+                    "unipush" : {
+                        "appid" : "YDcU8mcWRO6MWIT1i4naP2",
+                        "appkey" : "DK2LTzhnc87pFFFhcTSgs8",
+                        "appsecret" : "wTUMKWB4ReAoPyCp7Jyaz9"
+                    }
+                },
+                "maps" : {}
+            },
+            "icons" : {
+                "android" : {
+                    "hdpi" : "unpackage/res/icons/72x72.png",
+                    "xhdpi" : "unpackage/res/icons/96x96.png",
+                    "xxhdpi" : "unpackage/res/icons/144x144.png",
+                    "xxxhdpi" : "unpackage/res/icons/192x192.png"
+                },
+                "ios" : {
+                    "appstore" : "unpackage/res/icons/1024x1024.png",
+                    "ipad" : {
+                        "app" : "unpackage/res/icons/76x76.png",
+                        "app@2x" : "unpackage/res/icons/152x152.png",
+                        "notification" : "unpackage/res/icons/20x20.png",
+                        "notification@2x" : "unpackage/res/icons/40x40.png",
+                        "proapp@2x" : "unpackage/res/icons/167x167.png",
+                        "settings" : "unpackage/res/icons/29x29.png",
+                        "settings@2x" : "unpackage/res/icons/58x58.png",
+                        "spotlight" : "unpackage/res/icons/40x40.png",
+                        "spotlight@2x" : "unpackage/res/icons/80x80.png"
+                    },
+                    "iphone" : {
+                        "app@2x" : "unpackage/res/icons/120x120.png",
+                        "app@3x" : "unpackage/res/icons/180x180.png",
+                        "notification@2x" : "unpackage/res/icons/40x40.png",
+                        "notification@3x" : "unpackage/res/icons/60x60.png",
+                        "settings@2x" : "unpackage/res/icons/58x58.png",
+                        "settings@3x" : "unpackage/res/icons/87x87.png",
+                        "spotlight@2x" : "unpackage/res/icons/80x80.png",
+                        "spotlight@3x" : "unpackage/res/icons/120x120.png"
+                    }
+                }
+            },
+            "splashscreen" : {
+                "androidStyle" : "common"
+            },
+            "ios" : {
+                "dSYMs" : false
+            }
+        },
+        "compilerVersion" : 3,
+        "nvueLaunchMode" : "fast",
+        "splashscreen" : {
+            "alwaysShowBeforeRender" : true
+        }
+    },
+    // 5+App特有相关
+    "quickapp" : {},
+    // 快应用特有相关
+    "mp-weixin" : {
+        "setting" : {
+            "urlCheck" : false,
+            "es6" : false,
+            "postcss" : false,
+            "minified" : false
+        },
+        "usingComponents" : true,
+        "appid" : "wxe57ddfbe230bcfba",
+        "permission" : {}
+    },
+    "h5" : {
+        "template" : "template.h5.html",
+        "router" : {
+            "mode" : "hash",
+            "base" : "./"
+        },
+        "optimization" : {
+            "treeShaking" : {
+                "enable" : true
+            }
+        },
+        "devServer" : {
+            "https" : false,
+            "port" : 80
+        },
+        "sdkConfigs" : {
+            "maps" : {}
+        }
+    }
 }
-// 小程序特有相关
+// 小程序特有相关
+

Разница между файлами не показана из-за своего большого размера
+ 598 - 371
pages/carInsure1/carInfo1.vue


+ 9 - 1
pages/carInsure1/carType1.vue

@@ -34,6 +34,7 @@
 		data() {
 			return {
 				frameNo: "", //车架号
+				modelName: "", //车型
 				enrollDate: "", //
 				typeList: [],
 			}
@@ -43,6 +44,13 @@
 				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: {
@@ -85,7 +93,7 @@
 				let pages = getCurrentPages(); //获取所有页面栈实例列表
 				let nowPage = pages[pages.length - 1]; //当前页页面实例
 				let prevPage = pages[pages.length - 2]; //上一页页面实例
-				prevPage.$vm.carInfo.brandName = this.typeList[index].modelName; //车型
+				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; //座位数

+ 366 - 51
pages/carInsure1/insureItems1.vue

@@ -13,13 +13,13 @@
 					style="margin-left: 15upx;color: #aaa;font-weight: normal;" @tap="CITips"></view>
 			</view>
 			<!-- <template v-if="CIInsureList.amount!=0"> -->
-			<u-form ref="uForm" label-width="200px" v-if="CIInsureList.amount!=0" style="padding: 0 15px;">
-				<u-form-item label="交强险投保日期">
+			<u-form ref="uForm" label-width="200px" v-if="CIInsureList.amount!=0">
+				<u-form-item label="交强险投保日期" class="modelformcss">
 					<u-input type="select" :select-open="jqstartShow" 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="交强险终保日期">
+				<u-form-item label="交强险终保日期" class="modelformcss">
 					<u-input type="select" :select-open="jqendShow" v-model="jqendDate" placeholder="请选择结束时间"
 						@click="jqendShow = true"></u-input>
 					<u-picker v-model="jqendShow" mode="time" :params="params" @confirm="jqendconfirm"></u-picker>
@@ -32,18 +32,95 @@
 				</view>
 			</view>
 		</view>
+		<view class="compulsory-insurance">
+			<view class="common-title d-flex a-center">车船税<view class="icon iconfont icon-Group-"
+					style="margin-left: 15upx;color: #aaa;font-weight: normal;"></view>
+			</view>
+			<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"
+						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==1" label="纳税人姓名" prop="taxpayerName"
+					class="modelformcss">
+					<u-input placeholder="请输入姓名" v-model="vehicleAndVesselTaxForm.taxpayerName" type="text"></u-input>
+				</u-form-item>
+				<u-form-item v-show="vehicleAndVesselTaxForm.taxRelifFlag==1" label="纳税人证件号" prop="identifyNumber"
+					class="modelformcss">
+					<u-input placeholder="纳税人证件号" v-model="vehicleAndVesselTaxForm.identifyNumber"
+						type="text"></u-input>
+				</u-form-item>
+				<u-form-item v-show="vehicleAndVesselTaxForm.taxRelifFlag==1" label="证件类型" prop="taxpayerIdentifier"
+					class="modelformcss">
+					<u-input type="select" :select-open="taxpayerIdentifierShow" v-model="model.taxpayerIdentifier"
+						placeholder="请选择证件类型" @click="taxpayerIdentifierShow = true"></u-input>
+					<u-select mode="single-column" :list="taxpayerIdentifieroptions" v-model="taxpayerIdentifierShow"
+						label-name="dictTag" value-name="dictValue"
+						@confirm="taxRelifFlagConfirm($event,'taxpayerIdentifier')"></u-select>
+				</u-form-item>
+				<u-form-item
+					v-show="vehicleAndVesselTaxForm.taxRelifFlag == 2 || vehicleAndVesselTaxForm.taxRelifFlag == 3"
+					label="减免税凭证号" prop="extendChar2" class="modelformcss">
+					<u-input placeholder="请输入减免税凭证号" 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="请输入完税凭证号" 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"
+						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="请输入税务机关代码" 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="请输入税务机关名称" 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"
+						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" 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的小数" v-model="vehicleAndVesselTaxForm.taxRelief" type="text"></u-input>
+				</u-form-item>
+			</u-form>
+		</view>
 		<view class="business-insurance">
 			<view class="common-title d-flex a-center">商业险 <view class="icon iconfont icon-Group-"
 					style="margin-left: 15upx;color: #aaa;font-weight: normal;" @tap="BITips"></view>
 			</view>
-
-			<u-form ref="uForm" label-width="200px" style="padding: 0 15px;" v-if="BIInsureList.amount!=0">
-				<u-form-item label="商业险投保日期">
+			<u-form ref="uForm" label-width="200px" v-if="BIInsureList.amount!=0">
+				<u-form-item label="商业险投保日期" class="modelformcss">
 					<u-input type="select" :select-open="systartShow" 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="商业险投保日期">
+				<u-form-item label="商业险投保日期" class="modelformcss">
 					<u-input type="select" :select-open="syendShow" v-model="syendDate" placeholder="请选择开始时间"
 						@click="syendShow = true"></u-input>
 					<u-picker v-model="syendShow" mode="time" :params="params" @confirm="syendconfirm"></u-picker>
@@ -78,6 +155,7 @@
 					注:包含道路救援/安全检测/代为驾驶/代为送检,投保以上商业主0险免费赠送,各家保司各个地区旅游差异,具体以保单信息为准</view>
 			</view>
 		</view>
+
 		<view>
 			<view class="plan-ins-title own-ins-title d-flex j-sb" v-if="insureCodeList.length < insureList.length">
 				<view class="title-left d-flex a-center j-center main-text-color">未选险种</view>
@@ -184,11 +262,37 @@
 		},
 		data() {
 			return {
-				carInfoRmation: [], //车辆
-				ownerInfoRmation: [], //车主
-				policyHolderInfoRmation: [], //投保人
-				insuredPersonInfoRmation: [], //被保人
+				model: {
+					taxRelifFlag: "正常交税",
+					taxpayerIdentifier: "身份证",
+					relifReason: "",
+					taxPaidAreaCode: "",
+				},
+				//车船税form
+				vehicleAndVesselTaxForm: {
+					taxRelifFlag: "1", //类型
+					identifyNumber: "", //纳税人识别号
+					taxpayerIdentifier: "01", //纳税人证件类型
+					taxpayerName: "", //纳税人名称
+					extendChar2: "", //减免税凭证号
+					paidFreeCertificate: "", //完税凭证号
+					relifReason: "", //减免税原因
+					taxComCode: "", //税务机关代码
+					taxComName: "", ///税务机关名称
+					taxDocumentDate: "", //完税日期
+					taxPaidAreaCode: "", //完税凭证地区代码
+					taxRelief: "", //减税比例
+				},
+				carInfoPositiveList: [], //车辆
+				ownerInfoPositiveList: [], //车主
+				policyHolderInfoPositiveList: [], //投保人
+				insuredPersonInfoPositiveList: [], //被保人
 				form: {},
+				taxPaidAreaCodeShow: false, //完税凭证地区
+				taxDocumentDateShow: false, //完税凭证填发日期
+				taxRelifFlagShow: false, //车船税类型
+				taxpayerIdentifierShow: false, //纳税人证件类型
+				relifReasonShow: false, //减免税原因代码
 				jqstartShow: false, //交强起保日期
 				jqendShow: false, //交强终保日期
 				systartShow: false, //商业起保日期
@@ -201,6 +305,16 @@
 					minute: true, //分
 					second: true, //秒
 				},
+				params1: {
+					year: true, //年
+					month: true, //月
+					day: true, //日
+				},
+				params2: {
+					province: true,
+					city: false,
+					area: false
+				},
 				carInfo: {}, //车辆信息
 				ownerInfo: {}, //车主信息
 				policyHolderInfo: {}, //投保人信息
@@ -306,27 +420,83 @@
 						amount: "10000",
 						amountDesc: "1万",
 						amtList: [{
-							"label": "不投保",
-							"value": "0"
-						}, {
-							"label": "1万",
-							"value": "10000"
-						}, {
-							"label": "2万",
-							"value": "20000"
-						}, {
-							"label": "5万",
-							"value": "50000"
-						}, {
-							"label": "10万",
-							"value": "100000"
-						}, {
-							"label": "15万",
-							"value": "150000"
-						}, {
-							"label": "20万",
-							"value": "200000"
-						}],
+								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: "司机责任险",
@@ -503,14 +673,46 @@
 								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,
@@ -533,14 +735,46 @@
 								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,
@@ -563,14 +797,46 @@
 								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,
@@ -623,7 +889,12 @@
 						kindName: "法定节假日限额翻倍险",
 						mainRiskCodeList: "B"
 					}
-				]
+				],
+				/* 数据字典 */
+				taxRelifFlagoptions: [],
+				taxpayerIdentifieroptions: [],
+				relifReasonoptions: [],
+				/* 数据字典 */
 			}
 		},
 		// 监听导航栏的按钮
@@ -639,6 +910,9 @@
 			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();
@@ -652,13 +926,15 @@
 					this.carInfo = data.carInfo; //车辆信息
 					this.ownerInfo = data.ownerInfo; //车主信息
 					this.policyHolderInfo = data.policyHolderInfo; //投保人信息
+					this.vehicleAndVesselTaxForm.identifyNumber = this.policyHolderInfo.identifyNumber;
+					this.vehicleAndVesselTaxForm.taxpayerName = this.policyHolderInfo.name;
 					this.insuredPersonInfo = data.insuredPersonInfo; //被保人信息
 					this.riskList = data.riskList; //险种大类
 					this.kindList = data.kindList; //商业险险别
-					this.carInfoRmation = data.carInfoRmation; //车辆
-					this.ownerInfoRmation = data.ownerInfoRmation; //车主
-					this.policyHolderInfoRmation = data.policyHolderInfoRmation; //投保
-					this.insuredPersonInfoRmation = data.insuredPersonInfoRmation; //被保人
+					this.carInfoPositiveList = data.carInfoPositiveList; //车辆
+					this.ownerInfoPositiveList = data.ownerInfoPositiveList; //车主
+					this.policyHolderInfoPositiveList = data.policyHolderInfoPositiveList; //投保
+					this.insuredPersonInfoPositiveList = data.insuredPersonInfoPositiveList; //被保人
 					if (this.riskList.length > 0) {
 						this.insureCodeList = [];
 						this.riskList.map(ele => {
@@ -722,6 +998,17 @@
 			}
 		},
 		methods: {
+			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)
@@ -736,6 +1023,13 @@
 			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() // 显示
 			},
@@ -903,7 +1197,6 @@
 
 			//跳转报价页面
 			toQuote() {
-
 				var riskList = []; //险种大类信息
 				var kindList = []; //商业险险别
 				if (this.CIInsureList.amount == '1') {
@@ -969,7 +1262,7 @@
 						title: "请至少选择一种主险"
 					})
 				}
-				console.log(riskList, kindList)
+				// console.log(riskList, kindList)
 				this.navigate({
 					url: '/pages/carInsure1/quote1',
 					success: (res) => {
@@ -980,10 +1273,11 @@
 							insuredPersonInfo: this.insuredPersonInfo,
 							riskList: riskList,
 							kindList: kindList,
-							carInfoRmation: this.carInfoRmation, //车辆
-							ownerInfoRmation: this.ownerInfoRmation, //车主
-							policyHolderInfoRmation: this.policyHolderInfoRmation, //投保人
-							insuredPersonInfoRmation: this.insuredPersonInfoRmation, //被保人
+							carInfoPositiveList: this.carInfoPositiveList, //车辆
+							ownerInfoPositiveList: this.ownerInfoPositiveList, //车主
+							vehicleAndVesselTaxForm: this.vehicleAndVesselTaxForm, //车船税信息
+							policyHolderInfoPositiveList: this.policyHolderInfoPositiveList, //投保人
+							insuredPersonInfoPositiveList: this.insuredPersonInfoPositiveList, //被保人
 						})
 					}
 				}, "navigateTo", true);
@@ -991,22 +1285,32 @@
 			//计算输入时间一年后的的前一天(输入的参数为字符串("2019-03-02")最终输出也为日期的字符串)
 			oneYearPast(time) {
 				var date = new Date(time);
+				date.setSeconds(date.getSeconds() - 1);
 				date.setFullYear(date.getFullYear() + 1); //一年后
-				date.setTime(date.getTime() - 24 * 60 * 60 * 1000); //一年后的前一天
+				date.setTime(date.getTime()); //一年后的前一天
 				var strYear = date.getFullYear();
-				var strMonth = date.getMonth() + 1;
 				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 + ':00:00';
+				var datastr =
+					strYear + "-" + strMonth + "-" + strDay + " " + hh + ":" + minutes + ":" + Seconds;
 				return datastr;
 			},
 			//次日
@@ -1037,9 +1341,17 @@
 				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;
 				}
@@ -1047,7 +1359,7 @@
 					strDay = "0" + strDay;
 				}
 				var datetime =
-					strYear + "-" + strMonth + "-" + strDay + " " + hh + ":00:00";
+					strYear + "-" + strMonth + "-" + strDay + " " + hh + ":" + minutes + ":" + Seconds;
 				return datetime;
 			},
 			toChinesNum(num) {
@@ -1150,6 +1462,7 @@
 		left: 0;
 		right: 0;
 		padding: 30upx 30upx;
+		z-index: 99;
 	}
 
 	/* 底部按钮End */
@@ -1243,5 +1556,7 @@
 		font-size: 28upx;
 	}
 
-	/* 投保方案建议弹出框End */
+	.modelformcss {
+		padding: 5px 15px;
+	}
 </style>

+ 3 - 0
pages/carInsure1/payCode1.vue

@@ -126,6 +126,9 @@
 					case "中煤财险":
 					case "永诚财险":
 					case "众安财险":
+					case "紫金财险":
+					case "国任财险":
+					case "中国人寿":
 						this.paycodeimg = QR.createQrCodeImg(res.data.paymentLink, {
 							size: parseInt(300) //二维码大小  
 						})

+ 465 - 257
pages/carInsure1/quote1.vue

@@ -50,26 +50,43 @@
 								</template>
 							</block>
 						</template>
-						<view class="d-flex" v-if="jqstartDate">
-							<view>起保日期:</view>
-							<view>
-								<p class="date d-flex a-center font-md" style="color: #FFFFFF;" v-if="jqstartDate">
-									交强险 {{this.jqstartDate}}
-								</p>
-								<p class="date  d-flex a-center font-md" style="color: #FFFFFF;" v-if="systartDate">商业险
-									{{this.systartDate}}
-								</p>
-							</view>
+						<view class="dis j-s a-c">
+							<view style="margin-right: 40px;">交强起保日期:</view>
+							<u-input type="select" :select-open="jqstartShow" v-model="jqstartDate"
+								@click="jqstartShow = true" style="width: 100px;"></u-input>
+							<u-picker v-model="jqstartShow" mode="time" :params="params"
+								@confirm="jqstartconfirm"></u-picker>
+						</view>
+						<view class="dis j-s a-c">
+							<view style="margin-right: 40px;">交强终保日期:</view>
+							<u-input type="select" :select-open="jqendShow" v-model="jqendDate"
+								@click="jqendShow = true" style="width: 100px;"></u-input>
+							<u-picker v-model="jqendShow" mode="time" :params="params"
+								@confirm="jqendconfirm"></u-picker>
+						</view>
+						<view class="dis j-s a-c">
+							<view style="margin-right: 40px;">商业起保日期:</view>
+							<u-input type="select" :select-open="systartShow" v-model="systartDate"
+								@click="systartShow = true" style="width: 100px;"></u-input>
+							<u-picker v-model="systartShow" mode="time" :params="params"
+								@confirm="systartconfirm"></u-picker>
+						</view>
+						<view class="dis j-s a-c">
+							<view style="margin-right: 40px;">商业终保日期:</view>
+							<u-input type="select" :select-open="syendShow" v-model="syendDate"
+								@click="syendShow = true" style="width: 100px;"></u-input>
+							<u-picker v-model="syendShow" mode="time" :params="params"
+								@confirm="syendconfirm"></u-picker>
 						</view>
 					</view>
-					<view class="addedServices">
+					<!-- 	<view class="addedServices">
 						<view class="row j-sb  d-flex a-center">
 							<view>增值服务</view>
 							<view>赠送</view>
 						</view>
 						<view style="padding: 15upx;color: #A6A6A6;font-size: 24upx;background-color: #F8FAFC;">
 							注:包含道路救援/安全检测/代为驾驶/代为送检,投保以上商业主险免费赠送,各家保司各个地区旅游差异,具体以保单信息为准</view>
-					</view>
+					</view> -->
 				</view>
 			</view>
 			<view class="quoteCompany">
@@ -84,7 +101,8 @@
 								<ls-loading v-show="totalitem.quoteCode==1" text="掌柜正在为您报价,请稍等......"
 									:animation="animation" fontSize="22" />
 								<view class="companyIcon dis j-s  a-c">
-									<view class="dis ">
+
+									<view class="dis">
 										<!-- 勾选框 -->
 										<u-checkbox
 											@change="event=>checkboxChange(event,totalitem.id,totalitem.cnName, totalindex)"
@@ -100,8 +118,33 @@
 									<text
 										v-show="(totalitem.quoteCode != '200') && (totalitem.quoteCode != '0') && (totalitem.quoteCode != '1')"
 										class="sum" style="color: #999;font-size: 12px;"
-										@click="ErrorMsg(totalitem.msg)">报价失败,请点击查看</text>
+										@click="ErrorMsg(totalitem.msg,totalitem.namesimple)">报价失败,请点击查看</text>
+								</view>
+								<view v-show="totalitem.quoteCode==200" class="dis j-s"
+									style="font-size: 12px;color: #ee7000;">
+									<text v-if="totalitem.result.jqPremium">交强险:¥{{totalitem.result.jqPremium}}</text>
+									<text v-if="totalitem.result.jqPremium"
+										style="margin: 0 5px;">商业险:¥{{totalitem.result.syPremium}}</text>
+									<text>车船税:¥{{totalitem.result.taxAmount}}</text>
+								</view>
+								<view v-show="totalitem.quoteCode==200" class="dis  f-c"
+									style="font-size: 12px;color: #6495ed;border-top: 1px solid #f2f2f2;">
+									<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}}
+										<u-icon style="color:#ee7000;margin-left: 20px;font-size: 16px;" name="clock"
+											@click="syncData(totalitem.result)"></u-icon>
+									</text>
+									<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>
 								</view>
+								<text v-if="totalitem.result.tips" style="color: red;">{{ totalitem.result.tips}}</text>
 								<view class="" v-if="totalitem.checked">
 									<u-form-item label="报价协议选择" :prop="totalitem.agreementId" label-width="200"
 										:border-bottom='false' style="width: 250px;padding: 0;">
@@ -113,41 +156,39 @@
 											@confirm="val=>selectConfirm(val,totalindex)"></u-select>
 									</u-form-item>
 								</view>
-								<button v-show="totalitem.quoteCode==200" type="default"
-									class="d-flex a-center j-center btn"
-									@tap="querydetial(totalitem.result.companyId)">查看详情</button>
+								<view v-show="totalitem.quoteCode==200" class="dis j-end"
+									style="border-top: 1px solid #f2f2f2;padding: 10px 0;">
+									<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 size="mini " type="warning" :hair-line="false"
+										@click="bjdpreview(totalitem.result.companyId)"
+										style="margin-left: 10px;">报价单</u-button>
+									<u-button size="mini" style="background-color: #ea552d;margin-left: 10px;"
+										type="error" :hair-line="false" :disabled="totalitem.result.tips"
+										@click="querydetial(totalitem.result.companyId)">查看详情</u-button>
+								</view>
 							</view>
-
 						</view>
 					</template>
 				</block>
 			</view>
 		</view>
-		<wyb-popup ref="carTypePopup" type="center" :scrollY="true" mode="size-fixed" :maskClickClose="false"
-			height="640" width="690" radius="6">
+		<wyb-popup ref="lastYearMsgCI" type="center" mode="size-fixed" height="900" radius="6" :showCloseIcon="true">
 			<view class="popupBody">
-				<block v-for="(item,index) in carTypeList" :key="index">
-					<view class="carTypeItem d-flex " @tap="chooseCarType(item)">
-						<view class="nav d-flex flex-1 flex-column">
-							<view class="carseriesName">{{item.carseriesname}}</view>
-							<view class="modelName">{{item.modelname}}</view>
-							<view class="nav_box d-flex">
-								<span class="zid">{{item.transmissiontype}}</span>
-								<p class=" d-flex a-center">
-									{{item.caryear}}{{item.caryear==""?"":"款 | "}}{{item.seatmax}}座
-								</p>
-							</view>
-						</view>
-						<view class="price d-flex a-center j-center">¥{{item.purchaseprice}}</view>
-					</view>
-				</block>
+				<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>
 		<view class="infoBottom d-flex a-center j-center j-sb">
 			<button type="default" class="d-flex a-center j-center" @tap="toNext">保费计算</button>
 		</view>
-		<u-modal ref="uModal" v-model="msgshow" :content="content" :title-style="{fontWeight:'bold'}" title="报价提示">
-		</u-modal>
 	</view>
 </template>
 <script>
@@ -178,14 +219,27 @@
 		},
 		data() {
 			return {
-				msgshow: false,
-				content: "",
+				params: {
+					year: true, //年
+					month: true, //月
+					day: true, //日
+					hour: true, //时
+					minute: true, //分
+					second: true, //秒
+				},
+				jqstartShow: false, //交强起保日期
+				jqendShow: false, //交强终保日期
+				systartShow: false, //商业起保日期
+				syendShow: false, //商业终保日期
+				content: ``,
+				vehicleAndVesselTaxForm: {}, //车船税信息
 				agreementList: [],
 				zmDrivingForm: {}, //中煤驾意险
-				carInfoRmation: [], //车辆影像
-				ownerInfoRmation: [], //车主影像
-				policyHolderInfoRmation: [], //投保人影像
-				insuredPersonInfoRmation: [], //被保人影像
+				zjaccidentalDrivingVo: [], //紫金驾意险
+				carInfoPositiveList: [], //车辆影像
+				ownerInfoPositiveList: [], //车主影像
+				policyHolderInfoPositiveList: [], //投保人影像
+				insuredPersonInfoPositiveList: [], //被保人影像
 				orderno: "", //订单号
 				show1: false, //华农
 				animation: 'twinkle', //动画类型
@@ -277,27 +331,83 @@
 						amount: "0",
 						amountDesc: "不投保",
 						amtList: [{
-							"label": "不投保",
-							"value": "0"
-						}, {
-							"label": "1万",
-							"value": "10000"
-						}, {
-							"label": "2万",
-							"value": "20000"
-						}, {
-							"label": "5万",
-							"value": "50000"
-						}, {
-							"label": "10万",
-							"value": "100000"
-						}, {
-							"label": "15万",
-							"value": "150000"
-						}, {
-							"label": "20万",
-							"value": "200000"
-						}],
+								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: "司机责任险",
@@ -474,14 +584,46 @@
 								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,
@@ -596,7 +738,15 @@
 					}
 
 				],
-
+				accidentForm: {
+					fen: "1"
+				}, //意外险内容
+				//永诚转保确认码
+				cqryCdeJq: "",
+				cqryCdeSy: "",
+				renewalCodeJq: "", //交强确认码
+				renewalCodeSy: "", //商业确认码
+				//-----------------
 				totalCompanyList: [], //保险公司列表
 				notStartedQuote: true, //未开始报价(true表示未开始报价,false表示已经报价结束)
 				quoteCompanyCount: 0,
@@ -613,22 +763,30 @@
 				this.insuredPersonInfo = data.insuredPersonInfo; //被保人信息
 				this.riskList = data.riskList; //险种大类
 				this.kindList = data.kindList; //商业险险别
-				this.carInfoRmation = data.carInfoRmation; //车辆
-				this.ownerInfoRmation = data.ownerInfoRmation; //车主
-				this.policyHolderInfoRmation = data.policyHolderInfoRmation; //投保
-				this.insuredPersonInfoRmation = data.insuredPersonInfoRmation; //被保人
+				this.vehicleAndVesselTaxForm = data.vehicleAndVesselTaxForm; //车船税信息
 				this.orderno = data.orderno;
 				this.quoteno = data.quoteno;
+				if (data.quoteno) {
+					this.imageEcho(data.quoteno) // 影像获取完毕
+				} else {
+					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.jqstartDate = this.riskList[i].startDate;
+							this.jqendDate = this.riskList[i].endDate;
 						}
 						if (this.riskList[i].riskCode == '0510') {
 							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) {
+										console.log(ele1.kindCode)
 										switch (ele1.kindCode) {
 											case 'D4':
 											case 'SY_FJ_YBW2':
@@ -646,6 +804,7 @@
 									}
 								})
 							})
+							console.log(this.insureList)
 
 						}
 					}
@@ -654,6 +813,83 @@
 			this.commpanyList();
 		},
 		methods: {
+			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;
+			},
+			//影像查询
+			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({
@@ -661,12 +897,43 @@
 					},
 					"navigateTo", true);
 			},
+			//报价单
+			bjdpreview(id) {
+				uni.navigateTo({
+					url: "/pages/orders/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;
 			},
+			/**
+			 * 选择保险公司方法
+			 * @param {String} event  change选中事件
+			 * @param {String} code 保险公司ID
+			 * @param {String} name 保险公司主体全拼
+			 * @param {String} index 选中下标
+			 */
+			checkboxChange(event, code, name, index) {
+				this.totalCompanyList[index].checked = event.value;
+				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;
+			},
 			//获取保险公司列表
 			async commpanyList() {
 				let commpanykad = await this.$http.get('/insurance/order/getAgreementInsCompany');
@@ -676,6 +943,7 @@
 					ele["checked"] = false;
 					ele["msg"] = "";
 					ele["agreementId"] = "";
+					ele["lastYearMsg"] = "";
 					ele["agreementName"] = "";
 					ele["apiType"] = "";
 					ele["selectShow"] = false;
@@ -693,26 +961,16 @@
 			},
 
 			async OrderStageProcessing() {
-				await this.$http.post('/ins/taskImage/uploadImages', {
-					imageIdList: this.carInfoRmation,
-					imageType: "C01",
-					quoteNo: this.quoteno
-				})
-				await this.$http.post('/ins/taskImage/uploadImages', {
-					imageIdList: this.ownerInfoRmation,
-					imageType: "C02",
-					quoteNo: this.quoteno
-				})
-				await this.$http.post('/ins/taskImage/uploadImages', {
-					imageIdList: this.policyHolderInfoRmation,
-					imageType: "C03",
-					quoteNo: this.quoteno
-				})
-				await this.$http.post('/ins/taskImage/uploadImages', {
-					imageIdList: this.insuredPersonInfoRmation,
-					imageType: "C04",
-					quoteNo: this.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,
+					})
+				}
 				let param = {
 					userId: this.userInfo.sysUser.id,
 					quoteno: this.quoteno,
@@ -722,7 +980,8 @@
 					ownerInfo: this.ownerInfo,
 					policyHolderInfo: this.policyHolderInfo,
 					kindList: this.kindList,
-					riskList: this.riskList
+					riskList: this.riskList,
+					vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
 				};
 				let orders = await this.$http.post('/insurance/order/generateOrder', param);
 				if (orders.code == '200') {
@@ -731,7 +990,6 @@
 						if (ele.checked) {
 							//动态调用报价接口
 							ele.quoteCode = "1";
-							console.log(ele.quoteCode)
 							this.ToolClickFun(ele.cnName, index, ele.id);
 						}
 					});
@@ -769,7 +1027,8 @@
 							ownerInfo: this.ownerInfo,
 							policyHolderInfo: this.policyHolderInfo,
 							kindList: this.kindList,
-							riskList: this.riskList
+							riskList: this.riskList,
+							vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
 						};
 						await this.$http.post('/insurance/order/generateOrder', param);
 						return this.yongan(num, id);
@@ -816,16 +1075,11 @@
 						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);
 							}
 						}
 					}
@@ -838,11 +1092,19 @@
 						ownerInfo: this.ownerInfo,
 						policyHolderInfo: this.policyHolderInfo,
 						kindList: this.kindList,
-						riskList: this.riskList
+						riskList: this.riskList,
+						vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
 					};
 					await this.$http.post('/insurance/order/generateOrder', param);
 					return this.zhongmei(num, id);
-				} else if (!!res.data) {
+				} else if (res.code == '200') {
+					if (res.data.warnMessageList.length > 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 {
@@ -871,51 +1133,19 @@
 					cqryCdeJq: this.cqryCdeJq,
 					cqryCdeSy: this.cqryCdeSy,
 					renewalCodeJq: this.renewalCodeJq,
-					renewalCodeSy: this.renewalCodeSy
+					renewalCodeSy: this.renewalCodeSy,
+					agreementId: this.totalCompanyList[num].agreementId,
 				};
-				let res = await this.$http('/api/yongCheng/quote', params);
+				let res = await this.$http.post('/api/yongCheng/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";
-					let Aortime = this.transformTime2(time); //终保日期的后一天
-					this.jqstartDate = Aortime;
-					this.jqendDate = this.oneYearPast(Aortime);
-					this.systartDate = Aortime;
-					this.syendDate = this.oneYearPast(Aortime);
-					if (this.riskList.length > 0) {
-						for (let i = 0; i < this.riskList.length; i++) {
-							if (this.riskList[i].riskCode == "0507") {
-								this.riskList[i].startDate = Aortime;
-								this.riskList[i].endDate = this.oneYearPast(Aortime);
-							} else if (this.riskList[i].riskCode == "0510") {
-								this.riskList[i].startDate = Aortime;
-								this.riskList[i].endDate = this.oneYearPast(Aortime);
-							}
-						}
+				if (res.code == "200") {
+					if (res.data.warnMessageList.length > 0) {
+						this.totalCompanyList[num].lastYearMsg = "";
+						let dat = res.data.warnMessageList;
+						dat.map(ele => {
+							this.totalCompanyList[num].lastYearMsg += ele + '<br>';
+						})
 					}
-					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
-					};
-					await this.$http.post('/insurance/order/generateOrder', param);
-					return this.yongcheng(num, id);
-				} else if (res.code == "200") {
 					this.totalCompanyList[num].quoteCode = 200;
 					this.totalCompanyList[num].result = res.data;
 				} else if (res.code == "101") {
@@ -938,6 +1168,32 @@
 					return;
 				}
 			},
+			//紫金报价
+			async zijin(num, id) {
+				let params = {
+					accidentalDrivingVo: this.zjaccidentalDrivingVo,
+					orderNo: this.orderno,
+					companyId: id,
+					agreementId: this.totalCompanyList[num].agreementId,
+				};
+				let res = await this.$http.post('/order/zijin/quote', params);
+				this.totalCompanyList[num].msg = res.msg;
+				if (res.code == '200') {
+					if (res.data.warnMessageList.length > 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) {
 				let api = apiType === 2 ? "/insurance/crawler/quote" : "anshengquote";
@@ -946,49 +1202,16 @@
 					companyId: id,
 					agreementId: this.totalCompanyList[num].agreementId,
 				};
-
 				let res = await this.$http.post(`${api}`, 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);
-							}
-						}
+				if (!!res.data) {
+					if (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;
+						})
 					}
-					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
-					};
-					await this.$http.post('/insurance/order/generateOrder', param);
-					return this.quoteInsurance(num, id, apiType);
-				} else if (!!res.data) {
 					this.totalCompanyList[num].quoteCode = 200;
 					this.totalCompanyList[num].result = res.data;
 				} else {
@@ -1013,28 +1236,11 @@
 			hengbang(num, id) {
 				this.quoteInsurance(num, id, this.totalCompanyList[num].apiType);
 			},
-			/**
-			 * 选择保险公司方法
-			 * @param {String} event  change选中事件
-			 * @param {String} code 保险公司ID
-			 * @param {String} name 保险公司主体全拼
-			 * @param {String} index 选中下标
-			 */
-			checkboxChange(event, code, name, index) {
-
-				this.totalCompanyList[index].checked = event.value;
-				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.agreementList = list;
+			Lastyear() {
+				this.$refs.lastYearMsgCI.show() // 显示
+			},
+			adjustPopupInsureSubmit() {
+				this.$refs.lastYearMsgCI.hide() // 显示
 			},
 			// 重新选择车型
 			toCarInfo() {
@@ -1048,10 +1254,10 @@
 							insuredPersonInfo: this.insuredPersonInfo,
 							riskList: this.riskList,
 							kindList: this.kindList,
-							carInfoRmation: this.carInfoRmation, //车辆
-							ownerInfoRmation: this.ownerInfoRmation, //车主
-							policyHolderInfoRmation: this.policyHolderInfoRmation, //投保
-							insuredPersonInfoRmation: this.insuredPersonInfoRmation, //被保人
+							carInfoPositiveList: this.carInfoPositiveList, //车辆
+							ownerInfoPositiveList: this.ownerInfoPositiveList, //车主
+							policyHolderInfoPositiveList: this.policyHolderInfoPositiveList, //投保
+							insuredPersonInfoPositiveList: this.insuredPersonInfoPositiveList, //被保人
 
 						})
 					}
@@ -1069,78 +1275,75 @@
 							insuredPersonInfo: this.insuredPersonInfo,
 							riskList: this.riskList,
 							kindList: this.kindList,
-							carInfoRmation: this.carInfoRmation, //车辆
-							ownerInfoRmation: this.ownerInfoRmation, //车主
-							policyHolderInfoRmation: this.policyHolderInfoRmation, //投保
-							insuredPersonInfoRmation: this.insuredPersonInfoRmation, //被保人
+							carInfoPositiveList: this.carInfoPositiveList, //车辆
+							ownerInfoPositiveList: this.ownerInfoPositiveList, //车主
+							policyHolderInfoPositiveList: this.policyHolderInfoPositiveList, //投保
+							insuredPersonInfoPositiveList: this.insuredPersonInfoPositiveList, //被保人
 							vehicleModel: this.vehicleModel,
 						})
 					}
 				}, "navigateTo", true);
 			},
-			toQuoteDetail(orderno) {
-				this.navigate({
-					url: "/pages/carInsure1/quoteDetail1?orderno=" + orderno
-				}, "navigateTo", true);
-			},
 
 			// 显示报错信息
-			ErrorMsg(msg) {
-				this.content = msg;
-				this.msgshow = true;
-			},
-
-			//选择正确的车型
-			async chooseCarType(item) {
-				this.carInfo.brandName = item.modelname; //品牌型号
-				this.carInfo.ciModelCode = item.vehiclecode; //行业车型编码
-				this.carInfo.modelCode = item.modelcode;
-				this.carInfo.seatCount = item.seatmax + '';
-				this.carInfo.caryear = item.caryear;
-				this.carInfo.exhaustScale = (item.exhaustscale * 1000) + '';
-				this.carInfo.factory = item.factory;
-				this.carInfo.factoryid = item.factorycode;
-				this.carInfo.cimodelclass = item.inscarclassname;
-				this.carInfo.powertype = item.powerType;
-				this.carInfo.purchasePrice = item.purchaseprice + '';
-				this.carInfo.modelcname = item.modelname;
-				this.$refs.carTypePopup.hide()
-				let a = await this.huanongquote(0);
-				this.totalCompanyList[0].result = a;
-				if (this.totalCompanyList[0].quoteCode != '4') {
-					this.quoteCompanyCount++;
-
-
-					let c = await this.zhongmeiquote(2);
-					this.totalCompanyList[2].result = c;
-					this.quoteCompanyCount++;
-					let d = await this.tiananquote(1);
-					this.totalCompanyList[1].result = d;
-					this.quoteCompanyCount++;
-					let b = await this.hengbangquote(3);
-					this.totalCompanyList[3].result = b;
-					this.quoteCompanyCount++;
+			ErrorMsg(msg, title) {
+				uni.showModal({
+					title: title + "报价提示",
+					content: msg,
+					showCancel: false,
+					confirmText: "关闭"
+				})
 
-				}
+			},
+			//上年信息
+			YearMsg(msg, title) {
+				uni.showModal({
+					title: title + "上年信息",
+					content: msg,
+					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() - 24 * 60 * 60 * 1000); //一年后的前一天
+				date.setTime(date.getTime()); //一年后的前一天
 				var strYear = date.getFullYear();
-				var strMonth = date.getMonth() + 1;
 				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 + ':00:00';
+				var datastr =
+					strYear + "-" + strMonth + "-" + strDay + " " + hh + ":" + minutes + ":" + Seconds;
 				return datastr;
 			},
 		}
@@ -1360,11 +1563,15 @@
 		margin-bottom: 20upx;
 		background: #FFFFFF;
 		border-radius: 15upx;
-		padding: 10px 20px;
+		padding: 10px 20px 0 20px;
 		box-sizing: border-box;
 		cursor: pointer;
 	}
 
+	.quoteCompanyItem>view>view {
+		padding: 5px 0;
+	}
+
 	.quoteCompanyItem .top {
 		position: relative;
 	}
@@ -1490,5 +1697,6 @@
 		margin: 0upx 30upx;
 	}
 
+
 	/* 查看详情按钮End */
 </style>

+ 91 - 45
pages/carInsure1/quoteDetail1.vue

@@ -52,7 +52,8 @@
 						<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">交强险 <view class="date">起保日期:{{item.startDate}}</view>
+									<view class="d-flex a-center">交强险 <view class="date">起保日期:{{orderInfo.jqstartdate}}
+										</view>
 									</view>
 									<view>¥{{jqpremium}}</view>
 								</view>
@@ -69,7 +70,8 @@
 						<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">商业险 <view class="date">起保日期:{{item.startDate}}</view>
+									<view class="d-flex a-center">商业险 <view class="date">起保日期:{{orderInfo.systartdate}}
+										</view>
 									</view>
 									<view>¥{{sypremium}}</view>
 								</view>
@@ -84,12 +86,14 @@
 							<block v-for="(item,index) in kindList" :key="index">
 								<template v-if="item.coveragePremium">
 									<view class="kindItem d-flex a-center j-sb">
-										<view class="d-flex flex-1">{{item.kindName}}</view>
+										<view class="d-flex flex-1" style="width: 300px;">{{item.kindName}}</view>
+										<text v-if="['A'].includes(item.kindCode)">投保</text>
 										<text
-											v-if="['D4', 'SY_FJ_YBW2'].includes(item.kindCode)">{{item.unitAmount}}</text>
+											v-else-if="['D4', 'SY_FJ_YBW2'].includes(item.kindCode)">{{toChinesNum(item.unitAmount)}}/{{orderInfo.carinfo.seatCount-1}}座
+										</text>
 										<text
-											v-else-if="['MJ1', 'MJ2', 'MJ3', 'MJ4'].includes(item.kindCode)">{{item.deductibleRate}}</text>
-										<text v-else>{{item.amount}}</text>
+											v-else-if="['MJ1', 'MJ2', 'MJ3', 'MJ4'].includes(item.kindCode)">{{item.deductibleRate}}%</text>
+										<text v-else>{{toChinesNum(item.amount)}}</text>
 										<view class="d-flex flex-1 j-end">¥{{item.coveragePremium}}</view>
 									</view>
 								</template>
@@ -171,6 +175,52 @@
 					</view>
 				</view>
 			</template>
+			<view class="car">
+				<view class="header d-flex a-center j-sb">
+					<view class="title">保费因素</view>
+					<view class="adjustPlan d-flex" @tap="showextendInfo = !showextendInfo">
+						<view class="icon iconfont icon-xiala" style="margin-left: 15upx;"></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="width: 200px;">{{extendInfo.accidentInfoStr}}</view>
+					</view>
+					<view class="row d-flex a-center j-sb">
+						<view>商业险折扣比例</view>
+						<view>{{extendInfo.nirrratio}}</view>
+					</view>
+					<view class="row d-flex a-center j-sb">
+						<view>交强险折扣比例</view>
+						<view>{{extendInfo.nirrratioCI }}</view>
+					</view>
+					<view class="row d-flex a-center j-sb">
+						<view>自主定价系数</view>
+						<view>{{extendInfo.pricingAdjustValue}}</view>
+					</view>
+					<view class="row d-flex a-center j-sb">
+						<view>业务员交强险销售费用浮动率</view>
+						<view>{{extendInfo.jqFeeSaleChangeRateA4}}</view>
+					</view>
+					<view class="row d-flex a-center j-sb">
+						<view>交强深度定价分档</view>
+						<view>{{extendInfo.deepPriceGradeCI}}</view>
+					</view>
+					<view class="row d-flex a-center j-sb">
+						<view>业务员商业险销售费用浮动率</view>
+						<view>{{extendInfo.syFeeSaleChangeRateA4}}</view>
+					</view>
+					<view class="row d-flex a-center j-sb">
+						<view>商业深度定价分档</view>
+						<view>{{extendInfo.deepPriceGradeBI}}</view>
+					</view>
+				</view>
+			</view>
 			<view class="car">
 				<view class="header d-flex a-center j-sb">
 					<view class="title">车辆信息</view>
@@ -205,8 +255,7 @@
 					</view>
 				</view>
 			</view>
-
-			<template v-if="orderstatus != 0">
+			<template>
 				<view class="personInfo">
 					<view class="title d-flex a-center j-sb">
 						<text style="font-weight: bold;">车主</text>
@@ -402,7 +451,7 @@
 				</view>
 				<!-- 被保人影像信息End -->
 				<!-- 验车照Start -->
-				<view class="imageInfo">
+				<!-- <view class="imageInfo">
 					<view class="title  d-flex a-center j-sb">
 						<text style="font-weight: bold;">验车照</text>
 						<view class="showStatus" @tap="controlShow('showCarCheckImageInfo')">
@@ -423,7 +472,7 @@
 						</view>
 					</view>
 
-				</view>
+				</view> -->
 				<!-- 验车照End -->
 				<!-- 特约 -->
 				<template v-if="!!syappoint">
@@ -557,7 +606,7 @@
 					</view>
 					<view style="font-weight: bold;font-size: 34upx;color: #333; ">¥{{sumPermium}}</view>
 				</view>
-				<template v-if="orderstatus ==0">
+				<template v-if="orderstatus">
 					<view class="btn d-flex a-center j-center" @tap="toUnderwriting">确认核保</view>
 				</template>
 				<!-- 	<template v-if="orderstatus ==5">
@@ -624,6 +673,7 @@
 				CIStartDate: "", //交强险日期
 				BIStartDate: "", //商业险日期
 				showCarInfo: false,
+				showextendInfo: false,
 				insureList: [{
 						amount: "0",
 						coveragePremium: "",
@@ -984,6 +1034,7 @@
 				dianzibaodan: "",
 				jypremium: "",
 				quoteno: "",
+				extendInfo: {},
 			}
 		},
 		// 监听导航栏的按钮
@@ -1002,12 +1053,14 @@
 					companyId: params.companyId
 				};
 				let res = await this.$http.post('/insurance/order/getByCompanyId', param);
+				console.log(res)
 				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.transferFlag) {
 						this.carInfo.transferFlag = 1;
@@ -1074,27 +1127,6 @@
 					this.orderInfo = {};
 					Object.assign(this.orderInfo, res.data)
 					this.imageEcho(this.quoteno) // 影像获取完毕
-
-					this.kindList.map(ele => {
-						switch (ele.kindCode) {
-							case "A":
-								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;
-					})
 					switch (this.name) {
 						case "永安财险":
 							this.yonganprint(); //电子保单
@@ -1127,17 +1159,32 @@
 				let imgres = await this.$http.get('/ins/taskImage/findByQuoteNo?quoteNo=' + quotenos);
 				if (imgres.code == "200") {
 					Object.keys(imgres.data).forEach((keys) => {
-						imgres.data[keys].forEach((ele) => {
-							ele.url = this.$base.baseUrl + ele.url;
-							return ele;
-						});
+						if (imgres.data[keys].url) {
+							imgres.data[keys].url = this.$base.baseUrl + imgres.data[keys].url;
+							switch (keys) {
+								case 'C01':
+								case 'D01':
+									this.carImageList.push(imgres.data[keys]);
+									break;
+								case 'C02':
+								case 'D02':
+									this.ownerImageList.push(imgres.data[keys]);
+
+									break;
+								case 'C03':
+								case 'D03':
+									this.policyImageList.push(imgres.data[keys]);
+
+									break;
+								case 'C04':
+								case 'D04':
+									this.insuredImageList.push(imgres.data[keys]);
+									break;
+								default:
+									break;
+							}
+						}
 					});
-					this.carImageList = imgres.data.C01;
-					this.ownerImageList = imgres.data.C02;
-					this.policyImageList = imgres.data.C03;
-					this.insuredImageList = imgres.data.C04;
-					this.carCheckImageList = imgres.data.C05;
-
 				}
 			},
 			//去选择险种页面
@@ -1170,7 +1217,6 @@
 				var current = e.currentTarget.dataset.src;
 				this.$refs.previewImage.open(current); // 传入当前选中的图片地址或序号
 			},
-
 			//查询电子保单
 			async yonganprint() {
 				this.policyList = [];
@@ -1649,7 +1695,7 @@
 	}
 
 	.quotePlan .body .insurance .kindList .kindItem {
-		height: 65upx;
+		padding: 2px 0;
 	}
 
 	.quotePlan .body .insurance .kindList .kindItem>view {
@@ -1691,7 +1737,7 @@
 	}
 
 	.car .body .row {
-		height: 80upx;
+		padding: 5px 0;
 		border-bottom: 1px solid #F3F3F3;
 	}
 

+ 318 - 94
pages/carInsure1/underwriting1.vue

@@ -141,28 +141,42 @@
 					<view class="showStatus" @tap="controlShow('showCarImageInfo')">{{showCarImageInfo?'收起':'展开'}}
 					</view>
 				</view>
-
 				<view class="uni-uploader" v-if="showCarImageInfo">
-					<view class="uni-uploader-body">
+					<view class="uni-uploader-body dis ">
 						<view class="uni-uploader__files">
-							<block v-for="(image,index) in carImageList" :key="index">
+							<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,'car')"></image>
+										@tap="previewImage($event,'imgList1')"></image>
 									<view class="delImgIcon iconfont icon-cuo d-flex a-center j-center"
-										@tap="delCheckImage('car',index)"></view>
+										@tap="delCheckImage(image,'carImageListId','imgList1')"></view>
 								</view>
 							</block>
-							<view class="uni-uploader__input-box" style="box-sizing: border-box;">
-								<view class="uni-uploader__input" @tap="chooseImage('C01','car')"></view>
+							<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">
+							<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">
@@ -170,20 +184,36 @@
 					<view class="showStatus" @tap="controlShow('showOwnerImageInfo')">{{showOwnerImageInfo?'收起':'展开'}}
 					</view>
 				</view>
-
 				<view class="uni-uploader" v-if="showOwnerImageInfo">
-					<view class="uni-uploader-body">
+					<view class="uni-uploader-body dis ">
 						<view class="uni-uploader__files">
-							<block v-for="(image,index) in ownerImageList" :key="index">
+							<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,'owner')"></image>
+										@tap="previewImage($event,'imgList3')"></image>
 									<view class="delImgIcon iconfont icon-cuo d-flex a-center j-center"
-										@tap="delCheckImage('owner',index)"></view>
+										@tap="delCheckImage(image,'ownerImageListId','imgList3')"></view>
 								</view>
 							</block>
-							<view class="uni-uploader__input-box" style="box-sizing: border-box;">
-								<view class="uni-uploader__input" @tap="chooseImage('C02','owner')"></view>
+							<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">
+							<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>
@@ -201,18 +231,33 @@
 				</view>
 
 				<view class="uni-uploader" v-if="showPolicyImageInfo">
-					<view class="uni-uploader-body">
+					<view class="uni-uploader-body dis ">
 						<view class="uni-uploader__files">
-							<block v-for="(image,index) in policyImageList" :key="index">
+							<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,'policy')"></image>
+										@tap="previewImage($event,'imgList5')"></image>
 									<view class="delImgIcon iconfont icon-cuo d-flex a-center j-center"
-										@tap="delCheckImage('policy',index)"></view>
+										@tap="delCheckImage(image,'policyImageListId','imgList5')"></view>
 								</view>
 							</block>
-							<view class="uni-uploader__input-box" style="box-sizing: border-box;">
-								<view class="uni-uploader__input" @tap="chooseImage('C03','policy')"></view>
+							<view v-if="imgList5.length==0" class="uni-uploader__input-box"
+								style="box-sizing: border-box;">
+								<view class="uni-uploader__input" @tap="chooseImage('C01','car')"></view>
+							</view>
+						</view>
+						<view class="uni-uploader__files">
+							<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('C01','car')"></view>
 							</view>
 						</view>
 					</view>
@@ -229,18 +274,33 @@
 				</view>
 
 				<view class="uni-uploader" v-if="showInsuredImageInfo">
-					<view class="uni-uploader-body">
+					<view class="uni-uploader-body dis ">
 						<view class="uni-uploader__files">
-							<block v-for="(image,index) in insuredImageList" :key="index">
+							<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,'insured')"></image>
+										@tap="previewImage($event,'imgList7')"></image>
 									<view class="delImgIcon iconfont icon-cuo d-flex a-center j-center"
-										@tap="delCheckImage('insured',index)"></view>
+										@tap="delCheckImage(image,'insuredImageListId','imgList7')"></view>
 								</view>
 							</block>
-							<view class="uni-uploader__input-box" style="box-sizing: border-box;">
-								<view class="uni-uploader__input" @tap="chooseImage('C04','insured')"></view>
+							<view v-if="imgList7.length==0" class="uni-uploader__input-box"
+								style="box-sizing: border-box;">
+								<view class="uni-uploader__input" @tap="chooseImage('C01','car')"></view>
+							</view>
+						</view>
+						<view class="uni-uploader__files">
+							<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('C01','car')"></view>
 							</view>
 						</view>
 					</view>
@@ -427,22 +487,24 @@
 				showAdvancePayment: false, //展示保费
 				showAppoint: false, //展示特约
 				showCarImageInfo: false, //显示车辆影像
-				carImageList: [],
 				carImageListId: [],
 				showOwnerImageInfo: false, //显示车主影像
-				ownerImageList: [],
 				ownerImageListId: [],
 				showPolicyImageInfo: false, //显示投保人影像
-				policyImageList: [],
 				policyImageListId: [],
 				showInsuredImageInfo: false, //显示被保人影像
-				insuredImageList: [],
 				insuredImageListId: [],
 				showCarCheckImageInfo: false, //显示验车照影像
-				carCheckImageList: [],
-				carCheckImageListId: [],
 				existenceimg: 0,
 				token: "",
+				imgList1: [],
+				imgList2: [],
+				imgList3: [],
+				imgList4: [],
+				imgList5: [],
+				imgList6: [],
+				imgList7: [],
+				imgList8: [],
 			}
 		},
 		async onLoad(params) {
@@ -486,36 +548,70 @@
 				let imgres = await this.$http.get('/ins/taskImage/findByQuoteNo?quoteNo=' + quotenos);
 				if (imgres.code == "200") {
 					Object.keys(imgres.data).forEach((keys) => {
-						imgres.data[keys].forEach((ele) => {
-							ele.url = this.$base.baseUrl + ele.url;
+						if (imgres.data[keys].url) {
+							imgres.data[keys].url = this.$base.baseUrl + imgres.data[keys].url;
 							switch (keys) {
-								case "C01":
-									this.carImageListId.push(ele.imageId);
+								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 "C02":
-									this.ownerImageListId.push(ele.imageId);
+								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(ele.imageId);
+								case 'C03':
+									this.policyImageListId.push({
+										imageId: imgres.data[keys].imageId,
+										imageType: imgres.data[keys].imageType,
+									})
+									this.imgList5.push(imgres.data[keys]);
 									break;
-								case "C04":
-									this.insuredImageListId.push(ele.imageId);
+								case 'D03':
+									this.policyImageListId.push({
+										imageId: imgres.data[keys].imageId,
+										imageType: imgres.data[keys].imageType,
+									})
+									this.imgList6.push(imgres.data[keys]);
 									break;
-								case "C05":
-									this.carCheckImageListId.push(ele.imageId);
+								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;
 							}
-							return ele;
-						});
-					})
-					this.carImageList = imgres.data.C01;
-					this.ownerImageList = imgres.data.C02;
-					this.policyImageList = imgres.data.C03;
-					this.insuredImageList = imgres.data.C04;
-					this.carCheckImageList = imgres.data.C05;
-
+						}
+					});
 				}
 			},
 			// 重新选择车型
@@ -547,9 +643,9 @@
 				}
 			},
 
-			async chooseImage(typename, type) {
+			async chooseImage(type, imageIdList, imgurl) {
 				let [chooseImageErr, chooseImageRes] = await uni.chooseImage({
-					count: 2,
+					count: 1,
 					sizeType: ['compressed']
 				});
 				chooseImageRes.tempFilePaths.map((ele, index) => {
@@ -564,28 +660,46 @@
 							Authorization: this.token,
 						},
 						success: async (imgRes) => {
-							let id = JSON.parse(imgRes.data).data.id;
-							this[type + 'ImageListId'].push(id)
-							let imgres = await this.$http.post('/ins/taskImage/uploadImages', {
-								imageIdList: this[type + 'ImageListId'],
-								imageType: typename,
-								quoteNo: this.quoteno
-							});
-							if (imgres.code == '200') {
-								this.imageEcho(this.quoteno)
+							let data = JSON.parse(imgRes.data);
+							data.data.url = this.$base.baseUrl + data.data.url;
+							if (data.code == "200") {
+								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 + 'ImageList'];
+				this.previewImgs = this[type];
 				var current = e.currentTarget.dataset.src;
 				this.$refs.previewImage.open(current); // 传入当前选中的图片地址或序号
 			},
 			//删除图片
-			delCheckImage(type, index) {
-				this[type + 'ImageList'].splice(index, 1);
+			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 submitAudit() {
@@ -596,7 +710,16 @@
 						duration: 2000
 					});
 				}
+				const mergedArray = [...this.carImageListId, ...this.ownerImageListId, ...this
+					.policyImageListId, ...this.insuredImageListId
+				];
 
+				if (mergedArray.length > 0) {
+					await this.$http.post('/ins/taskImage/uploadImages', {
+						imageList: mergedArray,
+						quoteNo: this.quoteno,
+					})
+				}
 				uni.showModal({
 					content: '是否确认提交核保?',
 					success: async (res) => {
@@ -628,7 +751,7 @@
 														})
 													} else {
 														this.navigate({
-																url: "/pages/index/index"
+																url: "/pages/orders/orders"
 															}, "switchTab",
 															true);
 													}
@@ -636,16 +759,36 @@
 											});
 										} else {
 											uni.showModal({
-												content: '核保失败(' + result.msg + ')',
+												content: '核保失败(' + yaaudit.msg + ')',
+												cancelText: '返回订单',
 												confirmText: '继续核保',
-												success: async (res2) => {}
+												success: async (res2) => {
+													if (res2.confirm) {
+
+													} else {
+														this.navigate({
+																url: "/pages/orders/orders"
+															}, "switchTab",
+															true);
+													}
+												}
 											});
 										}
 									} else {
 										uni.showModal({
-											content: '影像上传失败(' + result.msg + ')',
+											content: '影像上传失败(' + yaimage.msg + ')',
+											cancelText: '返回订单',
 											confirmText: '继续提交',
-											success: async (res2) => {}
+											success: async (res3) => {
+												if (res3.confirm) {
+
+												} else {
+													this.navigate({
+															url: "/pages/orders/orders"
+														}, "switchTab",
+														true);
+												}
+											}
 										});
 									}
 									break;
@@ -675,7 +818,7 @@
 														})
 													} else {
 														this.navigate({
-																url: "/pages/index/index"
+																url: "/pages/orders/orders"
 															}, "switchTab",
 															true);
 													}
@@ -683,16 +826,36 @@
 											});
 										} else {
 											uni.showModal({
-												content: '核保失败(' + result.msg + ')',
+												content: '核保失败(' + zmaudit.msg + ')',
+												cancelText: '返回订单',
 												confirmText: '继续核保',
-												success: async (res2) => {}
+												success: async (res2) => {
+													if (res2.confirm) {
+
+													} else {
+														this.navigate({
+																url: "/pages/orders/orders"
+															}, "switchTab",
+															true);
+													}
+												}
 											});
 										}
 									} else {
 										uni.showModal({
-											content: '影像上传失败(' + result.msg + ')',
+											content: '影像上传失败(' + zmimage.msg + ')',
+											cancelText: '返回订单',
 											confirmText: '继续提交',
-											success: async (res2) => {}
+											success: async (res3) => {
+												if (res3.confirm) {
+
+												} else {
+													this.navigate({
+															url: "/pages/orders/orders"
+														}, "switchTab",
+														true);
+												}
+											}
 										});
 									}
 									break;
@@ -720,7 +883,7 @@
 														})
 													} else {
 														this.navigate({
-																url: "/pages/index/index"
+																url: "/pages/orders/orders"
 															}, "switchTab",
 															true);
 													}
@@ -728,16 +891,36 @@
 											});
 										} else {
 											uni.showModal({
-												content: '核保失败(' + result.msg + ')',
+												content: '核保失败(' + ycaudit.msg + ')',
+												cancelText: '返回订单',
 												confirmText: '继续核保',
-												success: async (res2) => {}
+												success: async (res2) => {
+													if (res2.confirm) {
+
+													} else {
+														this.navigate({
+																url: "/pages/orders/orders"
+															}, "switchTab",
+															true);
+													}
+												}
 											});
 										}
 									} else {
 										uni.showModal({
-											content: '影像上传失败(' + result.msg + ')',
+											content: '影像上传失败(' + ycimage.msg + ')',
+											cancelText: '返回订单',
 											confirmText: '继续提交',
-											success: async (res2) => {}
+											success: async (res3) => {
+												if (res3.confirm) {
+
+												} else {
+													this.navigate({
+															url: "/pages/orders/orders"
+														}, "switchTab",
+														true);
+												}
+											}
 										});
 									}
 									break;
@@ -765,7 +948,7 @@
 														})
 													} else {
 														this.navigate({
-																url: "/pages/index/index"
+																url: "/pages/orders/orders"
 															}, "switchTab",
 															true);
 													}
@@ -773,16 +956,37 @@
 											});
 										} else {
 											uni.showModal({
-												content: '核保失败(' + result.msg + ')',
+												content: '核保失败(' + zjaudit.msg + ')',
+												cancelText: '返回订单',
 												confirmText: '继续核保',
-												success: async (res2) => {}
+												success: async (res2) => {
+													if (res2.confirm) {
+
+													} else {
+														this.navigate({
+																url: "/pages/orders/orders"
+															}, "switchTab",
+															true);
+													}
+												}
 											});
 										}
 									} else {
+
 										uni.showModal({
-											content: '影像上传失败(' + result.msg + ')',
+											content: '影像上传失败(' + zjimage.msg + ')',
+											cancelText: '返回订单',
 											confirmText: '继续提交',
-											success: async (res2) => {}
+											success: async (res3) => {
+												if (res3.confirm) {
+
+												} else {
+													this.navigate({
+															url: "/pages/orders/orders"
+														}, "switchTab",
+														true);
+												}
+											}
 										});
 									}
 									break;
@@ -813,7 +1017,7 @@
 														})
 													} else {
 														this.navigate({
-																url: "/pages/index/index"
+																url: "/pages/orders/orders"
 															}, "switchTab",
 															true);
 													}
@@ -821,16 +1025,36 @@
 											});
 										} else {
 											uni.showModal({
-												content: '核保失败(' + result.msg + ')',
+												content: '核保失败(' + pythonaudit.msg + ')',
+												cancelText: '返回订单',
 												confirmText: '继续核保',
-												success: async (res2) => {}
+												success: async (res2) => {
+													if (res2.confirm) {
+
+													} else {
+														this.navigate({
+																url: "/pages/orders/orders"
+															}, "switchTab",
+															true);
+													}
+												}
 											});
 										}
 									} else {
 										uni.showModal({
-											content: '影像上传失败(' + result.msg + ')',
+											content: '影像上传失败(' + pythonimage.msg + ')',
+											cancelText: '返回订单',
 											confirmText: '继续提交',
-											success: async (res2) => {}
+											success: async (res3) => {
+												if (res3.confirm) {
+
+												} else {
+													this.navigate({
+															url: "/pages/orders/orders"
+														}, "switchTab",
+														true);
+												}
+											}
 										});
 									}
 									break;

+ 2 - 16
pages/index/index.vue

@@ -4,12 +4,8 @@
 			:show="show" :type="type" :list="list" :moreIcon="moreIcon" :volumeIcon="volumeIcon" :duration="duration"
 			bgColor="" padding="8rpx 24rpx" :isCircular="isCircular"
 			style="position: absolute;top: 12%;z-index: 9;width: 100%;"></u-notice-bar> -->
-
-		<!-- 更新组件 force 是否强制更新   tabbar:页面是否有原生tabbar组件-->
-		<app-update ref="app_update" :tabbar="false"></app-update>
 		<!-- 状态栏 -->
 		<view class="status" :style="{position:headerPosition,backgroundColor:bgColor}"></view>
-
 		<!-- 漂浮头部 -->
 		<view class="header" :style="{position:headerPosition,backgroundColor:bgColor}">
 			<view class="scan">
@@ -80,7 +76,6 @@
 <script>
 	import swiperImage from "@/components/modules/index/swiper-image.vue"
 	import indexNav from "@/components/modules/index/index-nav.vue"
-	import appUpdate from "@/components/yzhua006-update/app-update.vue"; //app更新组件
 	import bankBin from "@/common/bankcardinfo.js"
 	import store from '@/store';
 	import {
@@ -94,7 +89,6 @@
 		components: {
 			swiperImage,
 			indexNav,
-			appUpdate
 		},
 		data() {
 			return {
@@ -298,16 +292,8 @@
 
 			};
 		},
-		mounted() {
-			setTimeout(() => {
-				this.$refs.app_update.update(); //调用子组件检查更新方法
-				setTimeout(() => {
-					if (this.$refs.app_update.popup_show == true && this.$refs.app_update.force == true) {
-						uni.hideTabBar()
-					}
-				}, 100)
-			}, 2000)
-		},
+
+
 		computed: {
 			...mapState(['avatar', 'userInfo'])
 		},

+ 51 - 29
pages/login/login.vue

@@ -4,7 +4,7 @@
 		<uni-status-bar></uni-status-bar>
 		<!-- 公共组件-每个页面必须引入 -->
 		<public-module></public-module>
-
+		<app-update ref="app_update"></app-update>
 		<!-- 欢迎语 -->
 		<view class="w-100 flex-column box-sizing font-weight" style="height: 450rpx;padding:135rpx 60rpx;">
 			<view class="font-lgr">您好,</view>
@@ -64,9 +64,9 @@
 				<view @tap="changeStatus">
 					{{status?'密码登录':'验证码登录'}}
 				</view>
-				<!-- <view>
+				<view>
 					<view @tap="navigate({url:'/pages/register/register'})">用户注册</view>
-				</view> -->
+				</view>
 			</view>
 			<!-- #ifdef APP -->
 			<view class="third_party_login_box">
@@ -97,6 +97,7 @@
 	</view>
 </template>
 <script>
+	import appUpdate from "@/components/yzhua006-update/app-update.vue"; //app更新组件
 	import md5 from '@/plugins/md5';
 	let clear;
 	import {
@@ -106,6 +107,9 @@
 	import socket from '@/config/socket';
 	import DB from "@/common/sqlite";
 	export default {
+		components: {
+			appUpdate
+		},
 		data() {
 			return {
 				show: false,
@@ -114,8 +118,8 @@
 				status: false, //false代表账号密码登录,true代表手机验证码登录
 				disabled: true, //登录按钮是否可用
 				loading: false, //是否显示按钮加载状态
-				username: "99140109M03D01003", //登录用户名
-				password: "Zgkj1001..", //登录密码
+				username: "", //登录用户名
+				password: "", //登录密码
 				imgcode: "", //图片验证码0
 				imgcodesrc: "", //验证码图片
 				isHidePassword: true, //是否隐藏密码
@@ -126,36 +130,43 @@
 				listData: [],
 			};
 		},
+		beforeCreate() {
+			setTimeout(() => {
+				this.$refs.app_update.update(); //调用子组件检查更新方法
+				setTimeout(() => {
+					if (this.$refs.app_update.popup_show == true && this.$refs.app_update.force == true) {}
+				}, 100)
+			}, 500)
+		},
 		//第一次加载
 		onLoad(e) {
 			// #ifdef APP-PLUS
-			this.openSQL();
-			this.selectTableData();
+			// this.openSQL();
+			// this.selectTableData();
 			// #endif
 			this.username = this.defaultid;
-			this.username = "99140109M03D01003";
 		},
 		//页面显示   
 
 		onShow() {
-			// uni.getClipboardData({
-			// 	success: (res) => {
-			// 		let id = (res.data.replace(/(^\s*)|(\s*$)/g, "")).toUpperCase();
-			// 		if ((id.length == 17) && (id.indexOf('99') == 0) && (id.indexOf('D') > 0) && (id.indexOf(
-			// 				'M') > 0) && (id !== this.username)) {
-			// 			uni.showModal({
-			// 				content: '是否自动填充会员号',
-			// 				cancelText: '否',
-			// 				confirmText: '是',
-			// 				success: (res1) => {
-			// 					if (res1.confirm) {
-			// 						this.username = id;
-			// 					}
-			// 				}
-			// 			});
-			// 		}
-			// 	}
-			// })
+			uni.getClipboardData({
+				success: (res) => {
+					let id = (res.data.replace(/(^\s*)|(\s*$)/g, "")).toUpperCase();
+					if ((id.length == 17) && (id.indexOf('99') == 0) && (id.indexOf('D') > 0) && (id.indexOf(
+							'M') > 0) && (id !== this.username)) {
+						uni.showModal({
+							content: '是否自动填充会员号',
+							cancelText: '否',
+							confirmText: '是',
+							success: (res1) => {
+								if (res1.confirm) {
+									this.username = id;
+								}
+							}
+						});
+					}
+				}
+			})
 		},
 		watch: {
 			username(val) {
@@ -175,6 +186,16 @@
 				this.OnBtnChange();
 			}
 		},
+		mounted() {
+			//取出缓存中的账号、密码
+			const HBusername = uni.getStorageSync('username');
+			const HBpassword = uni.getStorageSync('password');
+			//有账号、密码就赋值给文本,没有就清空
+			if (HBusername && HBpassword) {
+				this.username = HBusername;
+				this.password = HBpassword;
+			}
+		},
 		onShow() {
 			this.refreshCaptcha();
 			uni.getClipboardData({
@@ -416,9 +437,10 @@
 								captcha: this.imgcode.toLowerCase()
 							}
 						}).then(res => {
-							this.openSQL(); //打开数据库
-							this.createTable(); //创建表
-							this.insertTableData(this.username, this.password); //新增表数据
+							console.log(1)
+							// this.openSQL(); //打开数据库
+							// this.createTable(); //创建表
+							// this.insertTableData(this.username, this.password); //新增表数据
 							socket.init();
 							return;
 						})

+ 7 - 34
pages/my/my.vue

@@ -197,6 +197,7 @@
 			zPopup,
 			myListItem
 		},
+
 		data() {
 			return {
 				popupShow: false, //头像是否展示
@@ -216,7 +217,7 @@
 				orderTypeList: [{
 						icon: 'icon-jixurenwu',
 						orderstatus: 0,
-						text: '待继续',
+						text: '报价中',
 						badge: '0',
 						type: "primary",
 						orderStage: 0,
@@ -225,57 +226,30 @@
 					{
 						icon: 'icon-hebaozhong',
 						orderstatus: 1,
-						text: '核保',
+						text: '核保',
 						badge: '0',
 						type: "success",
 						orderStage: 1,
 						iconColor: '#FFA22A'
 					},
-					{
-						icon: 'icon-daijiaofei',
-						orderstatus: 2,
-						text: '已核保',
-						badge: '0',
-						type: "warning",
-						orderStage: 2,
-						iconColor: '#0696FF'
-					},
 					{
 						icon: 'icon-querenzhifu',
-						orderstatus: 5,
+						orderstatus: 2,
 						text: '待缴费',
 						badge: '0',
 						type: "error",
-						orderStage: 3,
+						orderStage: 2,
 						iconColor: '#DD525E'
 					},
-					{
-						icon: 'icon-querenzhifu',
-						orderstatus: 6,
-						text: '已缴费',
-						badge: '0',
-						type: "success",
-						orderStage: 4,
-						iconColor: '#FFA22A'
-					},
 					{
 						icon: 'icon-peisong',
-						orderstatus: 7,
+						orderstatus: 3,
 						text: '已承保',
 						badge: '0',
 						type: "error",
-						orderStage: 5,
+						orderStage: 3,
 						iconColor: '#0696FF'
 					},
-					{
-						icon: 'icon-kehuguanli',
-						orderstatus: 3,
-						text: '待修改',
-						badge: '0',
-						type: "warning",
-						orderStage: 6,
-						iconColor: '#0696FF'
-					}
 				],
 				toolsList: [{
 						icon: 'icon-shandian',
@@ -648,7 +622,6 @@
 			//跳转订单页面
 			openOrder(e) {
 				let index = e.detail.index;
-				this.setOrderType(0);
 				this.setOrderStage(this.orderTypeList[index].orderStage);
 				this.navigate({
 					url: "/pages/orders/orders"

+ 15 - 5
pages/orders/orders.vue

@@ -107,6 +107,13 @@
 			carOrders,
 			nothingOrder,
 		},
+		watch: {
+			stageIndex(newVal, oldVal) {
+				if (newVal !== oldVal) {
+					this.pageRequest.orderStatus = newVal;
+				}
+			}
+		},
 		data() {
 			return {
 				dwdw: this.$u.color['success'],
@@ -126,6 +133,7 @@
 					licenseNo: "",
 					orderStatus: "",
 					userId: "",
+					deptId: "",
 					endDate: "",
 					startDate: "",
 					pageNum: 1,
@@ -229,18 +237,19 @@
 				this.toTopFlag = false
 			}
 		},
+		onShow() {
+			this.getOrdersList()
+		},
 		onLoad() {
 			this.pageRequest.userId = this.userInfo.sysUser.id;
-		},
-		onShow() {
+			this.pageRequest.deptId = this.userInfo.sysUser.deptId;
 			this.getOrdersList()
 		},
 		methods: {
 			...mapMutations(['setOrderType', 'setOrderStage']),
 			async getOrdersList() {
-				let res = await this.$http.post('/insurance/order/queryOrders', this.pageRequest);
+				let res = await this.$http.post('/insurance/order/queryPageOrder', this.pageRequest);
 				if (res.code == '200') {
-
 					this.pageResult = res.data.content;
 				}
 			},
@@ -320,7 +329,7 @@
 				// return /^陆丰[0-9A-Z]{4}临$/.test(str.trim())
 			},
 			//查看子订单
-			querydetail(val) {
+			async querydetail(val) {
 				let params = {
 					orderno: val.orderno,
 					insuredname: val.insuredname,
@@ -345,6 +354,7 @@
 			},
 			//编辑
 			CloseEdit(val) {
+				console.log(val)
 				this.navigate({
 					url: '/pages/carInsure1/quote1',
 					success: (res) => {

+ 4 - 4
pages/orders/quotation.vue

@@ -92,8 +92,8 @@
 						<view style="width: 200px;">
 							<text>{{item.kindName}}</text>
 						</view>
-						<view v-if="['D4', 'SY_FJ_YBW2', 'MJ3', 'MJ4'].includes(item.kindCode)">
-							<text>{{item.unitAmount}}</text>
+						<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>
@@ -243,9 +243,9 @@
 			},
 			toChinesNum(num) {
 				let changeNum = [
-					"零", "一", "二", "三", "四", "五", "六", "七", "八", "九"
+					"零", "1", "2", "3", "4", "5", "6", "7", "8", "9"
 				];
-				let unit = ["", "十", "百", "千", "万"];
+				let unit = ["", "0", "00", "000", "0000"];
 				num = parseInt(num);
 				let getWan = temp => {
 					let strArr = temp

+ 28 - 2
pages/orders/quoteHistory.vue

@@ -34,7 +34,14 @@
 						<text>车船税:¥{{item.taxamount}}</text>
 					</view>
 				</view>
-
+				<view class="orders-below dis j-end">
+					<u-button size="mini" type="error" :plain="true" :hair-line="false" shape="circle"
+						@click="bjdpreview(item.id)">报价单</u-button>
+					<u-button v-if="item.orderstatus==2" size="mini" type="error" :plain="true" :hair-line="false"
+						shape="circle" @click="Payment(item.id)">付款码</u-button>
+					<u-button size="mini" type="primary" :plain="true" :hair-line="false" shape="circle"
+						@click="detial(item.id)">查看详情</u-button>
+				</view>
 			</view>
 		</view>
 
@@ -94,7 +101,25 @@
 				}
 				let res = await this.$http.post('/insurance/order/queryQuoteHistory', params)
 				this.sublist = res.data;
-			}
+			},
+			//查看详情
+			detial(id) {
+				uni.navigateTo({
+					url: "/pages/carInsure1/quoteDetail1?companyId=" + id
+				})
+			},
+			//付款码
+			Payment(id) {
+				uni.navigateTo({
+					url: "/pages/carInsure1/payCode1?companyId=" + id
+				})
+			},
+			//报价单
+			bjdpreview(id) {
+				uni.navigateTo({
+					url: "/pages/orders/quotation?companyId=" + id
+				})
+			},
 		}
 	}
 </script>
@@ -164,6 +189,7 @@
 		.orders-centre {
 			color: #ff9000;
 			padding: 10px 0;
+			border-bottom: 2px dashed #dfdfdf;
 
 			.dis {
 				& text {

+ 44 - 7
pages/orders/subOrders.vue

@@ -14,9 +14,12 @@
 		</view>
 		<view class="pdd" style="padding-top: 120px;">
 			<view class="sub-orders " v-for="(item,index) in sublist" :key="index">
-				<view class="orders-upper dis f-c">
-					<view class="dis a-end">
+				<view class="orders-upper dis j-s">
+					<view class="dis a-c">
 						<text class="strong">{{item.inscompany}}</text>
+						<text class="strong" style="color: #ff9000;">( {{item.agreementName}} )</text>
+					</view>
+					<view class="">
 						<text class="strong">{{licenseno}}</text>
 					</view>
 				</view>
@@ -35,13 +38,12 @@
 					</view>
 				</view>
 				<view class="orders-below dis j-end">
-
-					<u-button size="mini" type="error" :plain="true" :hair-line="false" shape="circle"
-						@click="bjdpreview(item.id)">报价单</u-button>
+					<u-button v-if="item.orderstatus==2 && ['紫金财险'].includes(item.inscompany)" size="mini" type="error"
+						:plain="true" :hair-line="false" shape="circle" @click="cancelorder(item.id)">撤单</u-button>
 					<u-button v-if="item.orderstatus==2" size="mini" type="error" :plain="true" :hair-line="false"
 						shape="circle" @click="Payment(item.id)">付款码</u-button>
 					<u-button
-						v-if="item.orderstatus==2 && ['恒邦财险','安盛天平','中国人寿','众安财险','紫金财险'].includes(item.inscompany)"
+						v-if="item.orderstatus==2 && ['恒邦财险','安盛天平','中国人寿','众安财险','紫金财险','永诚财险'].includes(item.inscompany)"
 						size="mini" type="error" :plain="true" :hair-line="false" shape="circle"
 						@click="queryStatus(item.id,item.inscompany)">查询缴费状态</u-button>
 					<u-button size="mini" type="primary" :plain="true" :hair-line="false" shape="circle"
@@ -104,7 +106,7 @@
 				let params = {
 					orderNo: this.orderno
 				}
-				let res = await this.$http.post('/insurance/order/queryQuoteHistory', params)
+				let res = await this.$http.post('/insurance/order/querySuborder', params)
 				this.sublist = res.data;
 			},
 			//查看详情
@@ -125,6 +127,25 @@
 					url: "/pages/orders/quotation?companyId=" + id
 				})
 			},
+			//撤单
+			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 "紫金财险":
@@ -145,6 +166,22 @@
 							});
 						}
 						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;
 					default:
 						let pythonres = await this.$http.post('/insurance/crawler/verifyPayment', {
 							subOrderNo: id

+ 36 - 0
plugins/utils.js

@@ -4,6 +4,42 @@ import {
 } from './permission'
 // #endif
 import Vue from 'vue';
+export const addressCode = function(address) {
+	let rule = /.+?(省|市|自治区|自治州|县|区)/g;
+	const targetValues = address.match(rule)
+	console.log(targetValues)
+	return targetValues;
+}
+//根据身份证号计算年龄
+export const getAgeByIdCard = function(idCard) {
+	const sexAndAge = {}
+	//获取用户身份证号码
+	const userCard = idCard
+
+	//如果用户身份证号码为undefined则返回空
+	if (!userCard) {
+		return sexAndAge
+	}
+
+	// 获取出生日期
+	const yearBirth = userCard.substring(6, 10)
+	const monthBirth = userCard.substring(10, 12)
+	const dayBirth = userCard.substring(12, 14)
+	// 获取当前年月日并计算年龄
+	const myDate = new Date()
+	const monthNow = myDate.getMonth() + 1
+	const dayNow = myDate.getDate()
+	let age = myDate.getFullYear() - yearBirth
+
+	if (monthNow < monthBirth || (monthNow == monthBirth && dayNow < dayBirth)) {
+		age--
+	}
+
+	// 得到年龄
+	sexAndAge.age = age
+
+	return sexAndAge.age
+}
 // 身份证格式校验
 export const checkIdCard = function(sIdCard) {
 	//Wi 加权因子 Xi 余数0~10对应的校验码 Pi省份代码

BIN
static/carback.png


BIN
static/carfront.png


BIN
static/userback.png


BIN
static/userfront.png


+ 10 - 10
store/modules/order.js

@@ -1,15 +1,15 @@
 export const state = {
-  typeIndex:0,
-  stageIndex:0,
+	typeIndex: 0,
+	stageIndex: null,
 };
 export const mutations = {
-  setOrderType(state, data){
-  	state.typeIndex = data;
-  },
-  setOrderStage(state,data){
-  	state.stageIndex = data;
-  }
+	setOrderType(state, data) {
+		state.typeIndex = data;
+	},
+	setOrderStage(state, data) {
+		state.stageIndex = data;
+	}
 };
 export const actions = {
-  
-};
+
+};

Некоторые файлы не были показаны из-за большого количества измененных файлов