@dongkboy 7 months ago
parent
commit
0f94cd2db5
79 changed files with 4045 additions and 11552 deletions
  1. 173 0
      components/uni-permission-view/uni-permission-view.vue
  2. 158 218
      components/uni-popup/uni-popup.vue
  3. 401 0
      components/uni-tabs/uni-tabs.vue
  4. 3 3
      components/yzhua006-update/app-update.vue
  5. 8 8
      config/baseUrl.js
  6. 13 5
      manifest.json
  7. 290 289
      node_modules/uview-ui/components/u-icon/u-icon.vue
  8. 10 8
      node_modules/uview-ui/components/u-tabs/u-tabs.vue
  9. 37 118
      pages.json
  10. 0 1659
      pages/carInsure/Information.vue
  11. 0 199
      pages/carInsure/carType.vue
  12. 0 472
      pages/carInsure/companyQuotable.vue
  13. 0 1224
      pages/carInsure/entry.vue
  14. 0 532
      pages/carInsure/insuranceType.js
  15. 0 1677
      pages/carInsure/insureItems.vue
  16. 0 1155
      pages/carInsure/premiumCalc.vue
  17. 0 3208
      pages/carInsure/quoteDetail.vue
  18. 865 99
      pages/index/index.vue
  19. 90 84
      pages/index/success.vue
  20. 261 0
      pages/institutional/accountFreezeRecord.vue
  21. 157 0
      pages/institutional/incomingTransferLog.vue
  22. 74 3
      pages/institutional/invitationCode.vue
  23. 211 82
      pages/institutional/myEarnings.vue
  24. 131 287
      pages/institutional/partner.vue
  25. 35 23
      pages/institutional/partnerDetail.vue
  26. 1 1
      pages/login/login.vue
  27. 11 8
      pages/my/benefits.vue
  28. 19 18
      pages/my/commission.vue
  29. 2 2
      pages/my/commissionDetail.vue
  30. 359 124
      pages/my/my.vue
  31. 659 0
      pages/my/upgradeTask.vue
  32. 1 1
      pages/tools/addStaff/addStaff.vue
  33. 3 3
      pages/tools/addStaff/codeDownload.vue
  34. 2 2
      pages/wallet/withdraw.vue
  35. BIN
      static/home/frozen.png
  36. BIN
      static/home/imageSel.png
  37. BIN
      static/home/imageUnSel.png
  38. BIN
      static/home/income.png
  39. BIN
      static/home/incomeText.png
  40. BIN
      static/image/index/img/locked.png
  41. BIN
      static/image/index/img/lockedback.png
  42. BIN
      static/image/index/img/p1.jpg
  43. BIN
      static/image/index/img/p10.jpg
  44. BIN
      static/image/index/img/p2.jpg
  45. BIN
      static/image/index/img/p3.jpg
  46. BIN
      static/image/index/img/p4.jpg
  47. BIN
      static/image/index/img/p5.jpg
  48. BIN
      static/image/index/img/p6.jpg
  49. BIN
      static/image/index/img/p7.jpg
  50. BIN
      static/image/index/img/p8.jpg
  51. BIN
      static/image/index/img/p9.jpg
  52. BIN
      static/image/my/benefits/isLocked2.png
  53. BIN
      static/image/my/benefits/isLocked3.png
  54. BIN
      static/image/my/benefits/isLocked4.png
  55. BIN
      static/image/my/benefits/isUnlocked.png
  56. BIN
      static/image/my/benefits/waitingToUnlock2.png
  57. BIN
      static/image/my/benefits/waitingToUnlock3.png
  58. BIN
      static/image/my/benefits/waitingToUnlock4.png
  59. BIN
      static/image/my/grade1.png
  60. BIN
      static/image/my/grade2.png
  61. BIN
      static/image/my/grade3.png
  62. BIN
      static/image/my/grade4.png
  63. BIN
      static/image/my/upgradeTask/back.png
  64. BIN
      static/image/my/upgradeTask/decoration1.png
  65. BIN
      static/image/my/upgradeTask/decoration2.png
  66. BIN
      static/image/my/upgradeTask/icon1.png
  67. BIN
      static/image/my/upgradeTask/icon2.png
  68. BIN
      static/image/my/upgradeTask/icon3.png
  69. BIN
      static/image/my/upgradeTask/lock.png
  70. BIN
      static/image/my/upgradeTask/logo.png
  71. BIN
      static/image/my/upgradeTask/redPacket.png
  72. BIN
      static/image/my/upgradeTask/star-left.png
  73. BIN
      static/image/my/upgradeTask/star-right.png
  74. BIN
      static/image/my/upgradeTask/text.png
  75. BIN
      static/img/shili1.22686c8e.png
  76. BIN
      static/img/shili3.2b97107c.png
  77. BIN
      static/img/shili4.15d03454.png
  78. 70 39
      uni_modules/ui-echarts/components/ui-echarts/ui-echarts.vue
  79. 1 1
      uni_modules/uni-upgrade-center-app/uniCloud/cloudfunctions/check-version/check-version.param.json

+ 173 - 0
components/uni-permission-view/uni-permission-view.vue

@@ -0,0 +1,173 @@
+<template>
+	<view class="permissionView dis  a-c j-c " :class="[
+  direction === 'column' ? 'f-c padding1' : 'padding',  
+  position === 'fixed' ? 'fixed' : 'absolute',
+  backimage===true?'backimage':''
+]" :style="{borderRadius:cornerRadius,background:backimage?'':background,padding:padding}">
+		<image class="lockedimg" src="/static/image/index/img/locked.png" mode="" :style="imageStyle"></image>
+		<view class="content dis f-c a-c" :class="[direction === 'column' ? 'mt-3 mb-3' : 'row-content-margin']"
+			:style="contentStyle">
+			<!-- 锁定金额 -->
+			<text class="lockedAmount" v-if="sum" :style="lockedAmountStyle">有 <text class="sum">{{sum}}</text>
+				元佣金处于锁定状态( <text class="days">{{days}}</text> 天后清0)</text>
+			<!-- 默认内容 -->
+			<text class="genericText" :style="genericTextStyle" v-html="genericText"></text>
+		</view>
+		<view class="locked-btn" @click.stop="requestUnlock">
+			{{btnText}}
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		props: {
+			//定位方式
+			position: {
+				type: String,
+				default: "absolute"
+			},
+			// 组件排列方式 row-横向,column-竖向
+			direction: {
+				type: String,
+				default: 'column',
+			},
+			cornerRadius: {
+				type: String,
+				default: '',
+			},
+			sum: {
+				//锁定金额
+				type: String,
+				default: null,
+			},
+			//天数
+			days: {
+				type: String | Number,
+				default: null,
+			},
+			contentStyle: Object,
+			genericText: String,
+			//内容自定义样式
+			genericTextStyle: Object,
+			//标题自定义样式 
+			lockedAmountStyle: Object,
+			//logo自定义样式
+			imageStyle: Object,
+			background: {
+				type: String,
+				default: 'linear-gradient(180deg, #fff 0%, rgba(255, 255, 255, 0) 100%)'
+			},
+			//自定义padding
+			padding: {
+				type: String,
+				default: ''
+			},
+			backimage: {
+				type: Boolean,
+				default: false,
+			},
+			btnText: {
+				type: String,
+				default: "立即解锁",
+			}
+
+		},
+		data() {
+			return {
+
+			}
+		},
+		onShow() {
+
+		},
+		onLoad() {
+
+		},
+		methods: {
+			requestUnlock() {
+				this.$emit('requestUnlock')
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.backimage {
+		background-image: url('/static/image/index/img/lockedback.png');
+		background-size: 100% 100%;
+	}
+
+	.permissionView {
+		z-index: 999;
+		width: 100%;
+		backdrop-filter: blur(8rpx);
+
+		.lockedimg {
+			width: 92rpx;
+			height: 90rpx;
+		}
+
+		.content {
+			.lockedAmount {
+				font-size: 28rpx;
+				color: #333;
+				font-weight: bold;
+				line-height: 1.4;
+
+				.sum {
+					color: #F74141;
+				}
+
+				.days {
+					color: #2D6DFF;
+				}
+			}
+
+			.genericText {
+				font-size: 28rpx;
+				color: #666;
+				line-height: 1.4;
+			}
+		}
+
+		//横排内容撑开,附带左右margin
+		.row-content-margin {
+			flex: 1;
+			margin-left: 15rpx;
+			margin-right: 23rpx;
+		}
+
+		//解锁按钮样式
+		.locked-btn {
+			background: linear-gradient(132deg, #2DD9FF 0%, #2D6DFF 100%);
+			border-radius: 4rpx 4rpx 4rpx 4rpx;
+			padding: 6rpx 16rpx;
+			box-sizing: border-box;
+			font-size: 26rpx;
+			color: #fff;
+		}
+	}
+
+	.absolute {
+		position: absolute;
+		top: 0;
+		left: 0;
+		height: 100%;
+	}
+
+	.fixed {
+		position: fixed;
+		bottom: 0;
+		left: 0;
+		right: 0;
+	}
+
+	.padding {
+		padding: 52rpx 30rpx;
+	}
+
+	.padding1 {
+		padding: 30rpx;
+	}
+</style>

+ 158 - 218
components/uni-popup/uni-popup.vue

@@ -1,263 +1,203 @@
 <template>
-	<view v-if="showPopup" class="uni-popup" @touchmove.stop.prevent="clear">
-		<uni-transition :mode-class="['fade']" :styles="maskClass" :duration="duration" :show="showTrans" @click="onTap" />
-		<uni-transition :mode-class="ani" :styles="transClass" :duration="duration" :show="showTrans" @click="onTap">
-			<view class="uni-popup__wrapper-box" @click.stop="clear">
-				<slot />
+	<view class='uni-page'>
+		<u-popup v-model="modelshow" @close="close" :closeable="closeable" border-radius="20" :mode="mode"
+			:closeOnClickOverlay="closeOnClickOverlay" :customStyle="{width:width}">
+			<view class="dis f-c ">
+				<view class="header header-padding dis a-c j-c" v-if="!headerSlot" :class="{borderBottom:border}"
+					:style="headerStyle">
+					<text>{{headerTitle}}</text>
+				</view>
+				<view v-else class="header-padding " :class="{borderBottom:border}">
+					<slot name="header"></slot>
+				</view>
+				<view class="content" :style="{overflow:overflow,maxHeight:maxHeight}">
+					<slot name="content" v-if="contentType!='status'">
+					</slot>
+					<view class="quickOptions dis f-c" v-else>
+						<view class=" dis a-c j-s f-wrap">
+							<view class="tab dis  a-c j-c " :class="{tabactive:OptionsTabIndex==index}"
+								v-for="(item,index) in statusList" :key="index" @click="OptionsTabSelect(item,index)">
+								<text>{{item.label}}</text>
+							</view>
+						</view>
+						<view class="custom-footer 	dis j-s a-c ">
+							<view class="dis a-c j-c" @tap="close">取消</view>
+							<view class="dis a-c j-c" @tap="statusConfirm">确定</view>
+						</view>
+					</view>
+				</view>
 			</view>
-		</uni-transition>
+		</u-popup>
 	</view>
 </template>
-
 <script>
-	// import uniTransition from '../uni-transition/uni-transition.vue'
-	/**
-	 * PopUp 弹出层
-	 * @description 弹出层组件,为了解决遮罩弹层的问题
-	 * @tutorial https://ext.dcloud.net.cn/plugin?id=329
-	 * @property {String} type = [top|center|bottom] 弹出方式
-	 * 	@value top 顶部弹出
-	 * 	@value center 中间弹出
-	 * 	@value bottom 底部弹出
-	 * @property {Boolean} animation = [ture|false] 是否开启动画
-	 * @property {Boolean} maskClick = [ture|false] 蒙版点击是否关闭弹窗
-	 * @event {Function} change 打开关闭弹窗触发,e={show: false}
-	 */
-
 	export default {
-		name: 'UniPopup',
-		// components: {
-		// 	uniTransition
-		// },
 		props: {
-			// 开启动画
-			animation: {
+			// 状态数据
+			statusList: {
+				type: Array,
+				default: () => []
+			},
+			// 当前激活标签
+			show: {
+				type: Boolean,
+				default: false
+			},
+			//头部插槽
+			headerSlot: {
+				type: Boolean,
+				default: false,
+			},
+			headerTitle: {
+				//头部标题
+				type: String,
+				default: '请选择',
+			},
+			bgColor: {
+				type: String,
+				default: '#FFF'
+			},
+			overflow: {
+				//是否局部滚动
+				type: String,
+				default: '',
+			},
+			//最大高度
+			maxHeight: {
+				type: String,
+				default: ''
+			},
+			border: {
+				//是否边框
 				type: Boolean,
-				default: true
+				default: true,
+			},
+			headerStyle: Object,
+			closeable: {
+				//是否显示右上角叉号
+				type: Boolean,
+				default: true,
+			},
+			//弹出方向
+			mode: {
+				type: String,
+				default: 'bottom' //top / right / bottom / center
+			},
+			//弹窗宽度
+			width: {
+				type: String,
+				default: '100%'
 			},
-			// 弹出层类型,可选值,top: 顶部弹出层;bottom:底部弹出层;center:全屏弹出层
-			type: {
+			//插槽内容类型
+			contentType: {
 				type: String,
-				default: 'center'
+				default: 'list' //list :列表选择 / custom :自定义 / status :状态筛选 /
 			},
-			// maskClick
-			maskClick: {
+			//点击遮罩是否关闭弹窗 
+			closeOnClickOverlay: {
 				type: Boolean,
-				default: true
+				default: true,
 			}
 		},
 		data() {
 			return {
-				duration: 300,
-				ani: [],
-				showPopup: false,
-				showTrans: false,
-				maskClass: {
-					'position': 'fixed',
-					'bottom': 0,
-					'top': 0,
-					'left': 0,
-					'right': 0,
-					'backgroundColor': 'rgba(0, 0, 0, 0.4)'
-				},
-				transClass: {
-					'position': 'fixed',
-					'left': 0,
-					'right': 0,
-				}
+				modelshow: this.show,
+				OptionsTabIndex: null, //切换下标
+				OptionsTabInfo: {},
 			}
 		},
-		watch: {
-			type: {
-				handler: function(newVal) {
-					switch (this.type) {
-						case 'top':
-							this.ani = ['slide-top']
-							this.transClass = {
-								'position': 'fixed',
-								'left': 0,
-								'right': 0,
-							}
-							break
-						case 'bottom':
-							this.ani = ['slide-bottom']
-							this.transClass = {
-								'position': 'fixed',
-								'left': 0,
-								'right': 0,
-								'bottom': 0
-							}
-							break
-						case 'center':
-							this.ani = ['zoom-out', 'fade']
-							this.transClass = {
-								'position': 'fixed',
-								/* #ifndef APP-NVUE */
-								'display': 'flex',
-								'flexDirection': 'column',
-								/* #endif */
-								'bottom': 0,
-								'left': 0,
-								'right': 0,
-								'top': 0,
-								'justifyContent': 'center',
-								'alignItems': 'center'
-							}
+		onShow() {
 
-							break
-					}
-				},
-				immediate: true
-			}
 		},
-		created() {
-			if (this.animation) {
-				this.duration = 300
-			} else {
-				this.duration = 0
+		onLoad() {
+
+		},
+		watch: {
+			show(newVal) {
+				this.modelshow = newVal
 			}
 		},
 		methods: {
-			clear(e) {
-				// TODO nvue 取消冒泡
-				e.stopPropagation()
-			},
-			open() {
-				this.showPopup = true
-				this.$nextTick(() => {
-					clearTimeout(this.timer)
-					this.timer = setTimeout(() => {
-						this.showTrans = true
-					}, 50);
-				})
-				this.$emit('change', {
-					show: true
-				})
+			//状态切换回调
+			statusConfirm() {
+				this.$emit('statusConfirm', this.OptionsTabInfo)
 			},
-			close(type) {
-				this.showTrans = false
-				this.$nextTick(() => {
-					clearTimeout(this.timer)
-					this.timer = setTimeout(() => {
-						this.$emit('change', {
-							show: false
-						})
-						this.showPopup = false
-					}, 300)
-				})
+			//状态切换
+			OptionsTabSelect(item, index) {
+				this.OptionsTabInfo = item;
+				this.OptionsTabIndex = index;
 			},
-			onTap() {
-				if (!this.maskClick) return
-				this.close()
+			//关闭事件
+			close() {
+				this.$emit('close')
 			}
 		}
 	}
 </script>
-<style scoped>
-	.uni-popup {
-		position: fixed;
-		/* #ifdef H5 */
-		top: var(--window-top);
-		/* #endif */
-		/* #ifndef H5 */
-		top: 0;
-		/* #endif */
-		bottom: 0;
-		left: 0;
-		right: 0;
-		/* #ifndef APP-NVUE */
-		z-index: 99;
-		/* #endif */
-	}
-
-	.uni-popup__mask {
-		position: absolute;
-		top: 0;
-		bottom: 0;
-		left: 0;
-		right: 0;
-		background-color: rgba(0, 0, 0, 0.4);
-		opacity: 0;
-	}
-
-	.mask-ani {
-		transition-property: opacity;
-		transition-duration: 0.2s;
-	}
-
-	.uni-top-mask {
-		opacity: 1;
+<style lang='scss' scoped>
+	.header {
+		color: #333;
+		font-size: 32rpx;
+		font-weight: bold;
 	}
 
-	.uni-bottom-mask {
-		opacity: 1;
+	.header-padding {
+		padding: 27rpx 30rpx;
 	}
 
-	.uni-center-mask {
-		opacity: 1;
+	.borderBottom {
+		border-bottom: 1px solid #EEEEEE;
 	}
 
-	.uni-popup__wrapper {
-		/* #ifndef APP-NVUE */
-		display: block;
-		/* #endif */
-		position: absolute;
-	}
+	.quickOptions {
+		padding: 42rpx 42rpx 0;
+		box-sizing: border-box;
+		margin-bottom: 20rpx;
 
-	.top {
-		top: 0;
-		left: 0;
-		right: 0;
-		transform: translateY(-500px);
-	}
 
-	.bottom {
-		bottom: 0;
-		left: 0;
-		right: 0;
-		transform: translateY(500px);
-	}
-
-	.center {
-		/* #ifndef APP-NVUE */
-		display: flex;
-		flex-direction: column;
-		/* #endif */
-		bottom: 0;
-		left: 0;
-		right: 0;
-		top: 0;
-		justify-content: center;
-		align-items: center;
-		transform: scale(1.2);
-		opacity: 0;
-	}
-
-	.uni-popup__wrapper-box {
-		/* #ifndef APP-NVUE */
-		display: block;
-		/* #endif */
-		position: relative;
-	}
+		.tab {
+			width: 180rpx;
+			padding: 9rpx 24rpx;
+			box-sizing: border-box;
+			font-size: 30rpx;
+			color: #666;
+			border-radius: 4rpx 4rpx 4rpx 4rpx;
+			border: 1rpx solid #EEEEEE;
+			margin-right: 30rpx;
+			margin-bottom: 30rpx;
+		}
 
-	.content-ani {
-		/* transition: transform 0.3s;
- */
-		transition-property: transform, opacity;
-		transition-duration: 0.2s;
+		.tabactive {
+			background: #EAF0FF;
+			color: #2D6DFF;
+			border: 1rpx solid #EAF0FF;
+		}
 	}
 
+	.custom-footer {
+		padding: 40rpx 0 0;
+		box-sizing: border-box;
 
-	.uni-top-content {
-		transform: translateY(0);
-	}
+		view {
+			font-size: 30rpx;
+			padding: 18rpx;
+			box-sizing: border-box;
+			flex: 1;
+		}
 
-	.uni-bottom-content {
-		transform: translateY(0);
-	}
+		view:first-child {
+			background: rgba(45, 109, 255, 0.1);
+			border-radius: 4rpx 4rpx 4rpx 4rpx;
+			font-size: 32rpx;
+			color: #2D6DFF;
+			margin-right: 36rpx;
+		}
 
-	.uni-center-content {
-		transform: scale(1);
-		opacity: 1;
+		view:last-child {
+			background: linear-gradient(132deg, #2DD9FF 0%, #2D6DFF 100%);
+			border-radius: 4rpx 4rpx 4rpx 4rpx;
+			font-size: 32rpx;
+			color: #fff;
+		}
 	}
 </style>

+ 401 - 0
components/uni-tabs/uni-tabs.vue

@@ -0,0 +1,401 @@
+<template>
+	<view class="u-tabs" :style="{
+		background: bgColor
+	}">
+		<!-- $u.getRect()对组件根节点无效,因为写了.in(this),故这里获取内层接点尺寸 -->
+		<view :id="id">
+			<scroll-view scroll-x class="u-scroll-view" :scroll-left="scrollLeft" scroll-with-animation>
+				<view class="u-scroll-box" :class="{'u-tabs-scorll-flex': !isScroll}">
+					<view class="u-tab-item u-line-1 dis a-c" :id="'u-tab-item-' + index" v-for="(item, index) in list"
+						:key="index" @tap="clickTab(index)" :style="[tabItemStyle(index)]">
+						<u-badge :count="item[count] || item['count'] || 0" :offset="offset" size="mini"></u-badge>
+						<image :src="iconSelectToggle(index)" mode="" class="customIconImage">
+						</image>
+						{{ item[name] || item['name']}}
+					</view>
+					<view v-if="showBar" class="u-tab-bar" :style="[tabBarStyle]"></view>
+				</view>
+			</scroll-view>
+		</view>
+	</view>
+</template>
+
+<script>
+	/**
+	 * tabs 标签
+	 * @description 该组件,是一个tabs标签组件,在标签多的时候,可以配置为左右滑动,标签少的时候,可以禁止滑动。 该组件的一个特点是配置为滚动模式时,激活的tab会自动移动到组件的中间位置。
+	 * @tutorial https://www.uviewui.com/components/tabs.html
+	 * @property {Boolean} is-scroll tabs是否可以左右拖动(默认true)
+	 * @property {Array} list 标签数组,元素为对象,如[{name: '推荐'}]
+	 * @property {String Number} current 指定哪个tab为激活状态(默认0)
+	 * @property {String Number} height 导航栏的高度,单位rpx(默认80)
+	 * @property {String Number} font-size tab文字大小,单位rpx(默认30)
+	 * @property {String Number} duration 滑块移动一次所需的时间,单位秒(默认0.5)
+	 * @property {String} active-color 滑块和激活tab文字的颜色(默认#2979ff)
+	 * @property {String} inactive-color tabs文字颜色(默认#303133)
+	 * @property {String Number} bar-width 滑块宽度,单位rpx(默认40)
+	 * @property {Object} active-item-style 活动tabs item的样式,对象形式
+	 * @property {Object} bar-style 底部滑块的样式,对象形式
+	 * @property {Boolean} show-bar 是否显示底部的滑块(默认true)
+	 * @property {String Number} bar-height 滑块高度,单位rpx(默认6)
+	 * @property {String Number} item-width 标签的宽度(默认auto)
+	 * @property {String Number} gutter 单个tab标签的左右内边距之和,单位rpx(默认40)
+	 * @property {String} bg-color tabs导航栏的背景颜色(默认#ffffff)
+	 * @property {String} name 组件内部读取的list参数中的属性名(tab名称),见官网说明(默认name)
+	 * @property {String} count 组件内部读取的list参数中的属性名(badge徽标数),同name属性的使用,见官网说明(默认count)
+	 * @property {Array} offset 设置badge徽标数的位置偏移,格式为 [x, y],也即设置的为top和right的值,单位rpx(默认[5, 20])
+	 * @property {Boolean} bold 激活选项的字体是否加粗(默认true)
+	 * @event {Function} change 点击标签时触发
+	 * @example <u-tabs ref="tabs" :list="list" :is-scroll="false"></u-tabs>
+	 */
+	export default {
+		name: "uni-tabs",
+		props: {
+			// 导航菜单是否需要滚动,如只有2或者3个的时候,就不需要滚动了,此时使用flex平分tab的宽度
+			isScroll: {
+				type: Boolean,
+				default: true
+			},
+			//需循环的标签列表
+			list: {
+				type: Array,
+				default () {
+					return [];
+				}
+			},
+			// 当前活动tab的索引
+			current: {
+				type: [Number, String],
+				default: 0
+			},
+			// 导航栏的高度和行高
+			height: {
+				type: [String, Number],
+				default: 80
+			},
+			// 字体大小
+			fontSize: {
+				type: [String, Number],
+				default: 30
+			},
+			// 过渡动画时长, 单位ms
+			duration: {
+				type: [String, Number],
+				default: 0.5
+			},
+			// 选中项的主题颜色
+			activeColor: {
+				type: String,
+				default: '#2979ff'
+			},
+			// 未选中项的颜色
+			inactiveColor: {
+				type: String,
+				default: '#303133'
+			},
+			// 菜单底部移动的bar的宽度,单位rpx
+			barWidth: {
+				type: [String, Number],
+				default: 40
+			},
+			// 移动bar的高度
+			barHeight: {
+				type: [String, Number],
+				default: 6
+			},
+			// 单个tab的左或有内边距(左右相同)
+			gutter: {
+				type: [String, Number],
+				default: 30
+			},
+			// 导航栏的背景颜色
+			bgColor: {
+				type: String,
+				default: '#ffffff'
+			},
+			// 读取传入的数组对象的属性(tab名称)
+			name: {
+				type: String,
+				default: 'name'
+			},
+			// 读取传入的数组对象的属性(徽标数)
+			count: {
+				type: String,
+				default: 'count'
+			},
+			// 徽标数位置偏移
+			offset: {
+				type: Array,
+				default: () => {
+					return [5, 20]
+				}
+			},
+			// 活动tab字体是否加粗
+			bold: {
+				type: Boolean,
+				default: true
+			},
+			// 当前活动tab item的样式
+			activeItemStyle: {
+				type: Object,
+				default () {
+					return {}
+				}
+			},
+			// 是否显示底部的滑块
+			showBar: {
+				type: Boolean,
+				default: true
+			},
+			// 底部滑块的自定义样式
+			barStyle: {
+				type: Object,
+				default () {
+					return {}
+				}
+			},
+			// 标签的宽度
+			itemWidth: {
+				type: [Number, String],
+				default: 'auto'
+			},
+		},
+		data() {
+			return {
+				scrollLeft: 0, // 滚动scroll-view的左边滚动距离
+				tabQueryInfo: [], // 存放对tab菜单查询后的节点信息
+				componentWidth: 0, // 屏幕宽度,单位为px
+				scrollBarLeft: 0, // 移动bar需要通过translateX()移动的距离
+				parentLeft: 0, // 父元素(tabs组件)到屏幕左边的距离
+				id: this.$u.guid(), // id值
+				currentIndex: this.current,
+				barFirstTimeMove: true, // 滑块第一次移动时(页面刚生成时),无需动画,否则给人怪异的感觉
+			};
+		},
+		watch: {
+			// 监听tab的变化,重新计算tab菜单的布局信息,因为实际使用中菜单可能是通过
+			// 后台获取的(如新闻app顶部的菜单),获取返回需要一定时间,所以list变化时,重新获取布局信息
+			list(n, o) {
+				// list变动时,重制内部索引,否则可能导致超出数组边界的情况
+				if (n.length !== o.length) this.currentIndex = 0;
+				// 用$nextTick等待视图更新完毕后再计算tab的局部信息,否则可能因为tab还没生成就获取,就会有问题
+				this.$nextTick(() => {
+					this.init();
+				});
+			},
+			current: {
+				immediate: true,
+				handler(nVal, oVal) {
+					// 视图更新后再执行移动操作
+					this.$nextTick(() => {
+						this.currentIndex = nVal;
+						this.scrollByIndex(nVal);
+					});
+				}
+			},
+		},
+		computed: {
+			// 移动bar的样式
+			tabBarStyle() {
+				let style = {
+					width: this.barWidth + 'rpx',
+					transform: `translate(${this.scrollBarLeft}px, -100%)`,
+					// 滑块在页面渲染后第一次滑动时,无需动画效果
+					'transition-duration': `${this.barFirstTimeMove ? 0 : this.duration }s`,
+					'background-color': this.activeColor,
+					height: this.barHeight + 'rpx',
+					opacity: this.barFirstTimeMove ? 0 : 1,
+					// 设置一个很大的值,它会自动取能用的最大值,不用高度的一半,是因为高度可能是单数,会有小数出现
+					'border-radius': `${this.barHeight / 2}px`
+				};
+				Object.assign(style, this.barStyle);
+				return style;
+			},
+			// tab的样式
+			tabItemStyle() {
+				return (index) => {
+					let style = {
+						height: this.height + 'rpx',
+						'line-height': this.height + 'rpx',
+						'font-size': this.fontSize + 'rpx',
+						'transition-duration': `${this.duration}s`,
+						padding: this.isScroll ? `0 ${this.gutter}rpx` : '',
+						flex: this.isScroll ? 'auto' : '1',
+						width: this.$u.addUnit(this.itemWidth)
+					};
+					// 字体加粗
+					if (index == this.currentIndex && this.bold) style.fontWeight = 'bold';
+					if (index == this.currentIndex) {
+						style.color = this.activeColor;
+						// 给选中的tab item添加外部自定义的样式
+						style = Object.assign(style, this.activeItemStyle);
+					} else {
+						style.color = this.inactiveColor;
+					}
+					return style;
+
+				}
+
+			},
+			//自定义图标选中未选切换
+			iconSelectToggle() {
+				return (index) => {
+					if (index == this.currentIndex) {
+						return this.list[index].imageSel;
+					} else {
+						return this.list[index].imageUnSel;
+					}
+				}
+			}
+		},
+		methods: {
+			// 设置一个init方法,方便多处调用
+			async init() {
+				// 获取tabs组件的尺寸信息
+				let tabRect = await this.$uGetRect('#' + this.id);
+				// tabs组件距离屏幕左边的宽度
+				this.parentLeft = tabRect.left;
+				// tabs组件的宽度
+				this.componentWidth = tabRect.width;
+				this.getTabRect();
+			},
+			// 点击某一个tab菜单
+			clickTab(index) {
+				// 点击当前活动tab,不触发事件
+				if (index == this.currentIndex) return;
+				// 发送事件给父组件
+				this.$emit('change', index);
+			},
+			// 查询tab的布局信息
+			getTabRect() {
+				// 创建节点查询
+				let query = uni.createSelectorQuery().in(this);
+				// 历遍所有tab,这里是执行了查询,最终使用exec()会一次性返回查询的数组结果
+				for (let i = 0; i < this.list.length; i++) {
+					// 只要size和rect两个参数
+					query.select(`#u-tab-item-${i}`).fields({
+						size: true,
+						rect: true
+					});
+				}
+				// 执行查询,一次性获取多个结果
+				query.exec(
+					function(res) {
+						this.tabQueryInfo = res;
+						// 初始化滚动条和移动bar的位置
+						this.scrollByIndex();
+					}.bind(this)
+				);
+			},
+			// 滚动scroll-view,让活动的tab处于屏幕的中间位置
+			scrollByIndex(index) {
+
+				// 当前活动tab的布局信息,有tab菜单的width和left(为元素左边界到父元素左边界的距离)等信息
+				let tabInfo = this.tabQueryInfo[this.currentIndex];
+				if (!tabInfo) return;
+				// 活动tab的宽度
+				let tabWidth = tabInfo.width;
+				// 活动item的左边到tabs组件左边的距离,用item的left减去tabs的left
+				let offsetLeft = tabInfo.left - this.parentLeft;
+				// 将活动的tabs-item移动到屏幕正中间,实际上是对scroll-view的移动
+				let scrollLeft = offsetLeft - (this.componentWidth - tabWidth) / 2;
+				this.scrollLeft = scrollLeft < 0 ? 0 : scrollLeft;
+				// 当前活动item的中点点到左边的距离减去滑块宽度的一半,即可得到滑块所需的移动距离
+				let left = tabInfo.left + tabInfo.width / 2 - this.parentLeft;
+				// 计算当前活跃item到组件左边的距离
+				this.scrollBarLeft = left - uni.upx2px(this.barWidth) / 2;
+				// 第一次移动滑块的时候,barFirstTimeMove为true,放到延时中将其设置false
+				// 延时是因为scrollBarLeft作用于computed计算时,需要一个过程需,否则导致出错
+				if (this.barFirstTimeMove == true) {
+					setTimeout(() => {
+						this.barFirstTimeMove = false;
+					}, 100)
+				}
+			}
+		},
+		mounted() {
+			this.init();
+		}
+	};
+</script>
+
+<style lang="scss" scoped>
+	// @import "../../libs/css/style.components.scss";
+
+	view,
+	scroll-view {
+		box-sizing: border-box;
+	}
+
+	@mixin vue-flex($direction: row) {
+		/* #ifndef APP-NVUE */
+		display: flex;
+		flex-direction: $direction;
+		/* #endif */
+	}
+
+	/* #ifndef APP-NVUE */
+	::-webkit-scrollbar,
+	::-webkit-scrollbar,
+	::-webkit-scrollbar {
+		display: none;
+		width: 0 !important;
+		height: 0 !important;
+		-webkit-appearance: none;
+		background: transparent;
+	}
+
+	/* #endif */
+
+	.u-scroll-box {
+		position: relative;
+		/* #ifdef MP-TOUTIAO */
+		white-space: nowrap;
+		/* #endif */
+	}
+
+	/* #ifdef H5 */
+	// 通过样式穿透,隐藏H5下,scroll-view下的滚动条
+	scroll-view ::v-deep ::-webkit-scrollbar {
+		display: none;
+		width: 0 !important;
+		height: 0 !important;
+		-webkit-appearance: none;
+		background: transparent;
+	}
+
+	/* #endif */
+
+	.u-scroll-view {
+		width: 100%;
+		white-space: nowrap;
+		position: relative;
+	}
+
+	.u-tab-item {
+		position: relative;
+		/* #ifndef APP-NVUE */
+		display: inline-block;
+		/* #endif */
+		text-align: center;
+		transition-property: background-color, color;
+	}
+
+	.u-tab-bar {
+		position: absolute;
+		bottom: 0;
+	}
+
+	.u-tabs-scorll-flex {
+		@include vue-flex;
+		justify-content: space-between;
+	}
+
+	.customIconImage {
+		position: absolute;
+		left: -5rpx;
+		top: 25rpx;
+		width: 30rpx;
+		height: 30rpx;
+	}
+</style>

+ 3 - 3
components/yzhua006-update/app-update.vue

@@ -100,7 +100,7 @@
 				plus.runtime.getProperty(plus.runtime.appid, function(inf) {
 					vm.version = inf.version
 				});
-				
+
 				vm.getUpdateInfo(); //获取更新信息
 				// #endif
 			},
@@ -117,7 +117,7 @@
 						},
 						appid: {
 							name: "appid",
-							value: "__UNI__3FA05C4",
+							value: "__UNI__2041321",
 						}
 					}
 				});
@@ -134,7 +134,7 @@
 						},
 						appid: {
 							name: "appid",
-							value: "__UNI__3FA05C4",
+							value: "__UNI__2041321",
 						}
 					}
 				});

+ 8 - 8
config/baseUrl.js

@@ -4,23 +4,23 @@ let socketUrl = "";
 if (process.env.NODE_ENV === 'development') {
 	// 开发环境
 	// baseUrl = "http://192.168.0.106:8080"; //屈晨
-	baseUrl = "http://192.168.0.59:8080"; //蔡雅茹
+	baseUrl = "http://192.168.0.59:8080"; //徐强
 	// baseUrl = "http://192.168.0.52:8080"; //贺礼霄
 	// baseUrl = "https://test.baoxianzhanggui.com/web-api"; //测试
-	// h5BaseUrl = "https://test.baoxianzhanggui.com/copartnerH5";
+	h5BaseUrl = "https://test.baoxianzhanggui.com/partner2H5";
 	// baseUrl = "https://pre.baoxianzhanggui.com/web-api"; //预生产
 	// h5BaseUrl = "https://pre.baoxianzhanggui.com/h5";
 	// baseUrl = "https://sxzgkj.baoxianzhanggui.com/web-api"; //生产
-	h5BaseUrl = "https://sxzgkj.baoxianzhanggui.com/copartnerH5";
+	// h5BaseUrl = "https://sxzgkj.baoxianzhanggui.com/partner2H5";
 	socketUrl = "";
 } else if (process.env.NODE_ENV === 'production') {
 	// 生产环境
-	// baseUrl = "https://test.baoxianzhanggui.com/web-api"; //测试
-	// h5BaseUrl = "https://test.baoxianzhanggui.com/copartnerH5";
+	baseUrl = "https://test.baoxianzhanggui.com/web-api"; //测试
+	h5BaseUrl = "https://test.baoxianzhanggui.com/partner2H5";
 	// baseUrl = "https://pre.baoxianzhanggui.com/web-api"; //预生产
-	// h5BaseUrl = "https://pre.baoxian8zhanggui.com/copartnerH5";
-	baseUrl = "https://sxzgkj.baoxianzhanggui.com/web-api"; //生产
-	h5BaseUrl = "https://sxzgkj.baoxianzhanggui.com/copartnerH5";
+	// h5BaseUrl = "https://pre.baoxian8zhanggui.com/partner2H5";
+	// baseUrl = "https://sxzgkj.baoxianzhanggui.com/web-api"; //生产
+	// h5BaseUrl = "https://sxzgkj.baoxianzhanggui.com/partner2H5";
 	socketUrl = "";
 }
 const courtConfig = {

+ 13 - 5
manifest.json

@@ -7,8 +7,8 @@
 		"sizes": "分辨率,192x192",
 		"src": "图片路径"
 	}],
-	"versionName": "1.2.4",
-	"versionCode": 124,
+	"versionName": "1.1.4",
+	"versionCode": 114,
 	"app-plus": {
 		"error": {
 			"url": "hybrid/html/error.html"
@@ -29,6 +29,7 @@
 			"Messaging": {},
 			"OAuth": {},
 			"Share": {},
+			"Payment": {},
 			"SQLite": {}
 		},
 		"distribute": {
@@ -78,18 +79,25 @@
 				"ad": {},
 				"oauth": {
 					"weixin": {
-						"appid": "wx8e8efe710bd99de2",
+						"appid": "wxc1fd4b8455fa7019",
 						"appsecret": "69d6024eb2f2a96a71f1f859a21cc9bf",
 						"UniversalLinks": ""
 					}
 				},
 				"share": {
 					"weixin": {
-						"appid": "wx8e8efe710bd99de2",
+						"appid": "wxc1fd4b8455fa7019",
 						"UniversalLinks": ""
 					}
 				},
-				"push": {}
+				"push": {},
+				"payment": {
+					"weixin": {
+						"__platform__": ["android"],
+						"appid": "wxc1fd4b8455fa7019",
+						"UniversalLinks": ""
+					}
+				}
 			},
 			"icons": {
 				"android": {

+ 290 - 289
node_modules/uview-ui/components/u-icon/u-icon.vue

@@ -1,10 +1,10 @@
 <template>
 	<view :style="[customStyle]" class="u-icon" @tap="click" :class="['u-icon--' + labelPos]">
 		<image class="u-icon__img" v-if="isImg" :src="name" :mode="imgMode" :style="[imgStyle]"></image>
-		<text v-else class="u-icon__icon" :class="customClass" :style="[iconStyle]" :hover-class="hoverClass"
-			  @touchstart="touchstart">
+		<text v-else class="u-icon__icon" :class="computedCustomClass" :style="[iconStyle]" :hover-class="hoverClass"
+			@touchstart="touchstart">
 			<text v-if="showDecimalIcon" :style="[decimalIconStyle]" :class="decimalIconClass" :hover-class="hoverClass"
-				  class="u-icon__decimal">
+				class="u-icon__decimal">
 			</text>
 		</text>
 		<!-- 这里进行空字符串判断,如果仅仅是v-if="label",可能会出现传递0的时候,结果也无法显示 -->
@@ -21,316 +21,317 @@
 </template>
 
 <script>
-/**
- * icon 图标
- * @description 基于字体的图标集,包含了大多数常见场景的图标。
- * @tutorial https://www.uviewui.com/components/icon.html
- * @property {String} name 图标名称,见示例图标集
- * @property {String} color 图标颜色(默认inherit)
- * @property {String | Number} size 图标字体大小,单位rpx(默认32)
- * @property {String | Number} label-size label字体大小,单位rpx(默认28)
- * @property {String} label 图标右侧的label文字(默认28)
- * @property {String} label-pos label文字相对于图标的位置,只能right或bottom(默认right)
- * @property {String} label-color label字体颜色(默认#606266)
- * @property {Object} custom-style icon的样式,对象形式
- * @property {String} custom-prefix 自定义字体图标库时,需要写上此值
- * @property {String | Number} margin-left label在右侧时与图标的距离,单位rpx(默认6)
- * @property {String | Number} margin-top label在下方时与图标的距离,单位rpx(默认6)
- * @property {String | Number} margin-bottom label在上方时与图标的距离,单位rpx(默认6)
- * @property {String | Number} margin-right label在左侧时与图标的距离,单位rpx(默认6)
- * @property {String} label-pos label相对于图标的位置,只能right或bottom(默认right)
- * @property {String} index 一个用于区分多个图标的值,点击图标时通过click事件传出
- * @property {String} hover-class 图标按下去的样式类,用法同uni的view组件的hover-class参数,详情见官网
- * @property {String} width 显示图片小图标时的宽度
- * @property {String} height 显示图片小图标时的高度
- * @property {String} top 图标在垂直方向上的定位
- * @property {String} top 图标在垂直方向上的定位
- * @property {String} top 图标在垂直方向上的定位
- * @property {Boolean} show-decimal-icon 是否为DecimalIcon
- * @property {String} inactive-color 背景颜色,可接受主题色,仅Decimal时有效
- * @property {String | Number} percent 显示的百分比,仅Decimal时有效
- * @event {Function} click 点击图标时触发
- * @example <u-icon name="photo" color="#2979ff" size="28"></u-icon>
- */
-export default {
-	name: 'u-icon',
-	props: {
-		// 图标类名
-		name: {
-			type: String,
-			default: ''
-		},
-		// 图标颜色,可接受主题色
-		color: {
-			type: String,
-			default: ''
-		},
-		// 字体大小,单位rpx
-		size: {
-			type: [Number, String],
-			default: 'inherit'
-		},
-		// 是否显示粗体
-		bold: {
-			type: Boolean,
-			default: false
-		},
-		// 点击图标的时候传递事件出去的index(用于区分点击了哪一个)
-		index: {
-			type: [Number, String],
-			default: ''
-		},
-		// 触摸图标时的类名
-		hoverClass: {
-			type: String,
-			default: ''
-		},
-		// 自定义扩展前缀,方便用户扩展自己的图标库
-		customPrefix: {
-			type: String,
-			default: 'uicon'
-		},
-		// 图标右边或者下面的文字
-		label: {
-			type: [String, Number],
-			default: ''
-		},
-		// label的位置,只能右边或者下边
-		labelPos: {
-			type: String,
-			default: 'right'
-		},
-		// label的大小
-		labelSize: {
-			type: [String, Number],
-			default: '28'
-		},
-		// label的颜色
-		labelColor: {
-			type: String,
-			default: '#606266'
-		},
-		// label与图标的距离(横向排列)
-		marginLeft: {
-			type: [String, Number],
-			default: '6'
-		},
-		// label与图标的距离(竖向排列)
-		marginTop: {
-			type: [String, Number],
-			default: '6'
-		},
-		// label与图标的距离(竖向排列)
-		marginRight: {
-			type: [String, Number],
-			default: '6'
-		},
-		// label与图标的距离(竖向排列)
-		marginBottom: {
-			type: [String, Number],
-			default: '6'
-		},
-		// 图片的mode
-		imgMode: {
-			type: String,
-			default: 'widthFix'
-		},
-		// 自定义样式
-		customStyle: {
-			type: Object,
-			default() {
-				return {}
-			}
-		},
-		// 用于显示图片小图标时,图片的宽度
-		width: {
-			type: [String, Number],
-			default: ''
-		},
-		// 用于显示图片小图标时,图片的高度
-		height: {
-			type: [String, Number],
-			default: ''
-		},
-		// 用于解决某些情况下,让图标垂直居中的用途
-		top: {
-			type: [String, Number],
-			default: 0
-		},
-		// 是否为DecimalIcon
-		showDecimalIcon: {
-			type: Boolean,
-			default: false
-		},
-		// 背景颜色,可接受主题色,仅Decimal时有效
-		inactiveColor: {
-			type: String,
-			default: '#ececec'
-		},
-		// 显示的百分比,仅Decimal时有效
-		percent: {
-			type: [Number, String],
-			default: '50'
-		}
-	},
-	computed: {
-		customClass() {
-			let classes = []
-			classes.push(this.customPrefix + '-' + this.name)
-			// uView的自定义图标类名为u-iconfont
-			if (this.customPrefix == 'uicon') {
-				classes.push('u-iconfont')
-			} else {
-				classes.push(this.customPrefix)
+	/**
+	 * icon 图标
+	 * @description 基于字体的图标集,包含了大多数常见场景的图标。
+	 * @tutorial https://www.uviewui.com/components/icon.html
+	 * @property {String} name 图标名称,见示例图标集
+	 * @property {String} color 图标颜色(默认inherit)
+	 * @property {String | Number} size 图标字体大小,单位rpx(默认32)
+	 * @property {String | Number} label-size label字体大小,单位rpx(默认28)
+	 * @property {String} label 图标右侧的label文字(默认28)
+	 * @property {String} label-pos label文字相对于图标的位置,只能right或bottom(默认right)
+	 * @property {String} label-color label字体颜色(默认#606266)
+	 * @property {Object} custom-style icon的样式,对象形式
+	 * @property {String} custom-prefix 自定义字体图标库时,需要写上此值
+	 * @property {String | Number} margin-left label在右侧时与图标的距离,单位rpx(默认6)
+	 * @property {String | Number} margin-top label在下方时与图标的距离,单位rpx(默认6)
+	 * @property {String | Number} margin-bottom label在上方时与图标的距离,单位rpx(默认6)
+	 * @property {String | Number} margin-right label在左侧时与图标的距离,单位rpx(默认6)
+	 * @property {String} label-pos label相对于图标的位置,只能right或bottom(默认right)
+	 * @property {String} index 一个用于区分多个图标的值,点击图标时通过click事件传出
+	 * @property {String} hover-class 图标按下去的样式类,用法同uni的view组件的hover-class参数,详情见官网
+	 * @property {String} width 显示图片小图标时的宽度
+	 * @property {String} height 显示图片小图标时的高度
+	 * @property {String} top 图标在垂直方向上的定位
+	 * @property {String} top 图标在垂直方向上的定位
+	 * @property {String} top 图标在垂直方向上的定位
+	 * @property {Boolean} show-decimal-icon 是否为DecimalIcon
+	 * @property {String} inactive-color 背景颜色,可接受主题色,仅Decimal时有效
+	 * @property {String | Number} percent 显示的百分比,仅Decimal时有效
+	 * @event {Function} click 点击图标时触发
+	 * @example <u-icon name="photo" color="#2979ff" size="28"></u-icon>
+	 */
+	export default {
+		name: 'u-icon',
+		props: {
+			// 图标类名
+			name: {
+				type: String,
+				default: ''
+			},
+			// 图标颜色,可接受主题色
+			color: {
+				type: String,
+				default: ''
+			},
+			// 字体大小,单位rpx
+			size: {
+				type: [Number, String],
+				default: 'inherit'
+			},
+			// 是否显示粗体
+			bold: {
+				type: Boolean,
+				default: false
+			},
+			// 点击图标的时候传递事件出去的index(用于区分点击了哪一个)
+			index: {
+				type: [Number, String],
+				default: ''
+			},
+			// 触摸图标时的类名
+			hoverClass: {
+				type: String,
+				default: ''
+			},
+			// 自定义扩展前缀,方便用户扩展自己的图标库
+			customPrefix: {
+				type: String,
+				default: 'uicon'
+			},
+			// 图标右边或者下面的文字
+			label: {
+				type: [String, Number],
+				default: ''
+			},
+			// label的位置,只能右边或者下边
+			labelPos: {
+				type: String,
+				default: 'right'
+			},
+			// label的大小
+			labelSize: {
+				type: [String, Number],
+				default: '28'
+			},
+			// label的颜色
+			labelColor: {
+				type: String,
+				default: '#606266'
+			},
+			// label与图标的距离(横向排列)
+			marginLeft: {
+				type: [String, Number],
+				default: '6'
+			},
+			// label与图标的距离(竖向排列)
+			marginTop: {
+				type: [String, Number],
+				default: '6'
+			},
+			// label与图标的距离(竖向排列)
+			marginRight: {
+				type: [String, Number],
+				default: '6'
+			},
+			// label与图标的距离(竖向排列)
+			marginBottom: {
+				type: [String, Number],
+				default: '6'
+			},
+			// 图片的mode
+			imgMode: {
+				type: String,
+				default: 'widthFix'
+			},
+			// 自定义样式
+			customStyle: {
+				type: Object,
+				default () {
+					return {}
+				}
+			},
+			// 用于显示图片小图标时,图片的宽度
+			width: {
+				type: [String, Number],
+				default: ''
+			},
+			// 用于显示图片小图标时,图片的高度
+			height: {
+				type: [String, Number],
+				default: ''
+			},
+			// 用于解决某些情况下,让图标垂直居中的用途
+			top: {
+				type: [String, Number],
+				default: 0
+			},
+			// 是否为DecimalIcon
+			showDecimalIcon: {
+				type: Boolean,
+				default: false
+			},
+			// 背景颜色,可接受主题色,仅Decimal时有效
+			inactiveColor: {
+				type: String,
+				default: '#ececec'
+			},
+			// 显示的百分比,仅Decimal时有效
+			percent: {
+				type: [Number, String],
+				default: '50'
 			}
-			// 主题色,通过类配置
-			if (this.showDecimalIcon && this.inactiveColor && this.$u.config.type.includes(this.inactiveColor)) {
-				classes.push('u-icon__icon--' + this.inactiveColor)
-			} else if (this.color && this.$u.config.type.includes(this.color)) classes.push('u-icon__icon--' + this.color)
-			// 阿里,头条,百度小程序通过数组绑定类名时,无法直接使用[a, b, c]的形式,否则无法识别
-			// 故需将其拆成一个字符串的形式,通过空格隔开各个类名
-			//#ifdef MP-ALIPAY || MP-TOUTIAO || MP-BAIDU
-			classes = classes.join(' ')
-			//#endif
-			return classes
 		},
-		iconStyle() {
-			let style = {}
-			style = {
-				fontSize: this.size == 'inherit' ? 'inherit' : this.$u.addUnit(this.size),
-				fontWeight: this.bold ? 'bold' : 'normal',
-				// 某些特殊情况需要设置一个到顶部的距离,才能更好的垂直居中
-				top: this.$u.addUnit(this.top)
-			}
-			// 非主题色值时,才当作颜色值
-			if (this.showDecimalIcon && this.inactiveColor && !this.$u.config.type.includes(this.inactiveColor)) {
-				style.color = this.inactiveColor
-			} else if (this.color && !this.$u.config.type.includes(this.color)) style.color = this.color
+		computed: {
+			computedCustomClass() {
+				let classes = []
+				classes.push(this.customPrefix + '-' + this.name)
+				// uView的自定义图标类名为u-iconfont
+				if (this.customPrefix == 'uicon') {
+					classes.push('u-iconfont')
+				} else {
+					classes.push(this.customPrefix)
+				}
+				// 主题色,通过类配置
+				if (this.showDecimalIcon && this.inactiveColor && this.$u.config.type.includes(this.inactiveColor)) {
+					classes.push('u-icon__icon--' + this.inactiveColor)
+				} else if (this.color && this.$u.config.type.includes(this.color)) classes.push('u-icon__icon--' + this
+					.color)
+				// 阿里,头条,百度小程序通过数组绑定类名时,无法直接使用[a, b, c]的形式,否则无法识别
+				// 故需将其拆成一个字符串的形式,通过空格隔开各个类名
+				//#ifdef MP-ALIPAY || MP-TOUTIAO || MP-BAIDU
+				classes = classes.join(' ')
+				//#endif
+				return classes
+			},
+			iconStyle() {
+				let style = {}
+				style = {
+					fontSize: this.size == 'inherit' ? 'inherit' : this.$u.addUnit(this.size),
+					fontWeight: this.bold ? 'bold' : 'normal',
+					// 某些特殊情况需要设置一个到顶部的距离,才能更好的垂直居中
+					top: this.$u.addUnit(this.top)
+				}
+				// 非主题色值时,才当作颜色值
+				if (this.showDecimalIcon && this.inactiveColor && !this.$u.config.type.includes(this.inactiveColor)) {
+					style.color = this.inactiveColor
+				} else if (this.color && !this.$u.config.type.includes(this.color)) style.color = this.color
 
-			return style
-		},
-		// 判断传入的name属性,是否图片路径,只要带有"/"均认为是图片形式
-		isImg() {
-			return this.name.indexOf('/') !== -1
-		},
-		imgStyle() {
-			let style = {}
-			// 如果设置width和height属性,则优先使用,否则使用size属性
-			style.width = this.width ? this.$u.addUnit(this.width) : this.$u.addUnit(this.size)
-			style.height = this.height ? this.$u.addUnit(this.height) : this.$u.addUnit(this.size)
-			return style
-		},
-		decimalIconStyle() {
-			let style = {}
-			style = {
-				fontSize: this.size == 'inherit' ? 'inherit' : this.$u.addUnit(this.size),
-				fontWeight: this.bold ? 'bold' : 'normal',
-				// 某些特殊情况需要设置一个到顶部的距离,才能更好的垂直居中
-				top: this.$u.addUnit(this.top),
-				width: this.percent + '%'
+				return style
+			},
+			// 判断传入的name属性,是否图片路径,只要带有"/"均认为是图片形式
+			isImg() {
+				return this.name.indexOf('/') !== -1
+			},
+			imgStyle() {
+				let style = {}
+				// 如果设置width和height属性,则优先使用,否则使用size属性
+				style.width = this.width ? this.$u.addUnit(this.width) : this.$u.addUnit(this.size)
+				style.height = this.height ? this.$u.addUnit(this.height) : this.$u.addUnit(this.size)
+				return style
+			},
+			decimalIconStyle() {
+				let style = {}
+				style = {
+					fontSize: this.size == 'inherit' ? 'inherit' : this.$u.addUnit(this.size),
+					fontWeight: this.bold ? 'bold' : 'normal',
+					// 某些特殊情况需要设置一个到顶部的距离,才能更好的垂直居中
+					top: this.$u.addUnit(this.top),
+					width: this.percent + '%'
+				}
+				// 非主题色值时,才当作颜色值
+				if (this.color && !this.$u.config.type.includes(this.color)) style.color = this.color
+				return style
+			},
+			decimalIconClass() {
+				let classes = []
+				classes.push(this.customPrefix + '-' + this.name)
+				// uView的自定义图标类名为u-iconfont
+				if (this.customPrefix == 'uicon') {
+					classes.push('u-iconfont')
+				} else {
+					classes.push(this.customPrefix)
+				}
+				// 主题色,通过类配置
+				if (this.color && this.$u.config.type.includes(this.color)) classes.push('u-icon__icon--' + this.color)
+				else classes.push('u-icon__icon--primary')
+				// 阿里,头条,百度小程序通过数组绑定类名时,无法直接使用[a, b, c]的形式,否则无法识别
+				// 故需将其拆成一个字符串的形式,通过空格隔开各个类名
+				//#ifdef MP-ALIPAY || MP-TOUTIAO || MP-BAIDU
+				classes = classes.join(' ')
+				//#endif
+				return classes
 			}
-			// 非主题色值时,才当作颜色值
-			if (this.color && !this.$u.config.type.includes(this.color)) style.color = this.color
-			return style
 		},
-		decimalIconClass() {
-			let classes = []
-			classes.push(this.customPrefix + '-' + this.name)
-			// uView的自定义图标类名为u-iconfont
-			if (this.customPrefix == 'uicon') {
-				classes.push('u-iconfont')
-			} else {
-				classes.push(this.customPrefix)
+		methods: {
+			click() {
+				this.$emit('click', this.index)
+			},
+			touchstart() {
+				this.$emit('touchstart', this.index)
 			}
-			// 主题色,通过类配置
-			if (this.color && this.$u.config.type.includes(this.color)) classes.push('u-icon__icon--' + this.color)
-			else classes.push('u-icon__icon--primary')
-			// 阿里,头条,百度小程序通过数组绑定类名时,无法直接使用[a, b, c]的形式,否则无法识别
-			// 故需将其拆成一个字符串的形式,通过空格隔开各个类名
-			//#ifdef MP-ALIPAY || MP-TOUTIAO || MP-BAIDU
-			classes = classes.join(' ')
-			//#endif
-			return classes
-		}
-	},
-	methods: {
-		click() {
-			this.$emit('click', this.index)
-		},
-		touchstart() {
-			this.$emit('touchstart', this.index)
 		}
 	}
-}
 </script>
 
 <style scoped lang="scss">
-@import "../../libs/css/style.components.scss";
-@import '../../iconfont.css';
+	@import "../../libs/css/style.components.scss";
+	@import '../../iconfont.css';
 
-.u-icon {
-	display: inline-flex;
-	align-items: center;
-
-	&--left {
-		flex-direction: row-reverse;
+	.u-icon {
+		display: inline-flex;
 		align-items: center;
-	}
-
-	&--right {
-		flex-direction: row;
-		align-items: center;
-	}
 
-	&--top {
-		flex-direction: column-reverse;
-		justify-content: center;
-	}
-
-	&--bottom {
-		flex-direction: column;
-		justify-content: center;
-	}
-
-	&__icon {
-		position: relative;
-
-		&--primary {
-			color: $u-type-primary;
+		&--left {
+			flex-direction: row-reverse;
+			align-items: center;
 		}
 
-		&--success {
-			color: $u-type-success;
+		&--right {
+			flex-direction: row;
+			align-items: center;
 		}
 
-		&--error {
-			color: $u-type-error;
+		&--top {
+			flex-direction: column-reverse;
+			justify-content: center;
 		}
 
-		&--warning {
-			color: $u-type-warning;
+		&--bottom {
+			flex-direction: column;
+			justify-content: center;
 		}
 
-		&--info {
-			color: $u-type-info;
+		&__icon {
+			position: relative;
+
+			&--primary {
+				color: $u-type-primary;
+			}
+
+			&--success {
+				color: $u-type-success;
+			}
+
+			&--error {
+				color: $u-type-error;
+			}
+
+			&--warning {
+				color: $u-type-warning;
+			}
+
+			&--info {
+				color: $u-type-info;
+			}
 		}
-	}
 
-	&__decimal {
-		position: absolute;
-		top: 0;
-		left: 0;
-		display: inline-block;
-		overflow: hidden;
-	}
+		&__decimal {
+			position: absolute;
+			top: 0;
+			left: 0;
+			display: inline-block;
+			overflow: hidden;
+		}
 
-	&__img {
-		height: auto;
-		will-change: transform;
-	}
+		&__img {
+			height: auto;
+			will-change: transform;
+		}
 
-	&__label {
-		line-height: 1;
+		&__label {
+			line-height: 1;
+		}
 	}
-}
-</style>
+</style>

+ 10 - 8
node_modules/uview-ui/components/u-tabs/u-tabs.vue

@@ -6,8 +6,8 @@
 		<view :id="id">
 			<scroll-view scroll-x class="u-scroll-view" :scroll-left="scrollLeft" scroll-with-animation>
 				<view class="u-scroll-box" :class="{'u-tabs-scorll-flex': !isScroll}">
-					<view class="u-tab-item u-line-1" :id="'u-tab-item-' + index" v-for="(item, index) in list" :key="index" @tap="clickTab(index)"
-					 :style="[tabItemStyle(index)]">
+					<view class="u-tab-item u-line-1" :id="'u-tab-item-' + index" v-for="(item, index) in list"
+						:key="index" @tap="clickTab(index)" :style="[tabItemStyle(index)]">
 						<u-badge :count="item[count] || item['count'] || 0" :offset="offset" size="mini"></u-badge>
 						{{ item[name] || item['name']}}
 					</view>
@@ -136,7 +136,7 @@
 			// 当前活动tab item的样式
 			activeItemStyle: {
 				type: Object,
-				default() {
+				default () {
 					return {}
 				}
 			},
@@ -148,7 +148,7 @@
 			// 底部滑块的自定义样式
 			barStyle: {
 				type: Object,
-				default() {
+				default () {
 					return {}
 				}
 			},
@@ -175,7 +175,7 @@
 			// 后台获取的(如新闻app顶部的菜单),获取返回需要一定时间,所以list变化时,重新获取布局信息
 			list(n, o) {
 				// list变动时,重制内部索引,否则可能导致超出数组边界的情况
-				if(n.length !== o.length) this.currentIndex = 0;
+				if (n.length !== o.length) this.currentIndex = 0;
 				// 用$nextTick等待视图更新完毕后再计算tab的局部信息,否则可能因为tab还没生成就获取,就会有问题
 				this.$nextTick(() => {
 					this.init();
@@ -248,7 +248,7 @@
 			// 点击某一个tab菜单
 			clickTab(index) {
 				// 点击当前活动tab,不触发事件
-				if(index == this.currentIndex) return ;
+				if (index == this.currentIndex) return;
 				// 发送事件给父组件
 				this.$emit('change', index);
 			},
@@ -291,7 +291,7 @@
 				this.scrollBarLeft = left - uni.upx2px(this.barWidth) / 2;
 				// 第一次移动滑块的时候,barFirstTimeMove为true,放到延时中将其设置false
 				// 延时是因为scrollBarLeft作用于computed计算时,需要一个过程需,否则导致出错
-				if(this.barFirstTimeMove == true) {
+				if (this.barFirstTimeMove == true) {
 					setTimeout(() => {
 						this.barFirstTimeMove = false;
 					}, 100)
@@ -322,6 +322,7 @@
 		-webkit-appearance: none;
 		background: transparent;
 	}
+
 	/* #endif */
 
 	.u-scroll-box {
@@ -340,6 +341,7 @@
 		-webkit-appearance: none;
 		background: transparent;
 	}
+
 	/* #endif */
 
 	.u-scroll-view {
@@ -366,4 +368,4 @@
 		@include vue-flex;
 		justify-content: space-between;
 	}
-</style>
+</style>

+ 37 - 118
pages.json

@@ -82,6 +82,7 @@
 				}
 			}
 		},
+
 		{
 			"path": "pages/institutional/institution",
 			"style": {
@@ -142,6 +143,31 @@
 				}
 			}
 		},
+		{
+			"path": "pages/institutional/incomingTransferLog",
+			"style": {
+				"navigationBarTextStyle": "white",
+				"navigationBarTitleText": "转入记录",
+				"app-plus": {
+					"titleNView": false,
+					"scrollIndicator": "none",
+					"bounce": "none"
+				}
+			}
+		},
+		{
+			"path": "pages/institutional/accountFreezeRecord",
+			"style": {
+				"navigationBarTextStyle": "white",
+				"navigationBarTitleText": "冻结记录",
+				"app-plus": {
+					"titleNView": false,
+					"scrollIndicator": "none",
+					"bounce": "none"
+				}
+			}
+		},
+
 		{
 			"path": "pages/institutional/invitationCode",
 			"style": {
@@ -612,30 +638,6 @@
 				}
 			}
 		},
-		{
-			"path": "pages/tools/customer/customer",
-			"style": {
-				"navigationBarTitleText": "客户管理",
-				"onReachBottomDistance": 50,
-				"app-plus": {
-					"titleNView": false,
-					"scrollIndicator": "none",
-					"bounce": "none"
-				}
-			}
-		},
-		{
-			"path": "pages/tools/customer/custormerDetail",
-			"style": {
-				"navigationBarTitleText": "客户订单详情",
-				"navigationBarBackgroundColor": "#0052FF",
-				"navigationBarTextStyle": "white",
-				"app-plus": {
-					"scrollIndicator": "none",
-					"bounce": "none"
-				}
-			}
-		},
 		{
 			"path": "pages/tools/team/team",
 			"style": {
@@ -698,16 +700,7 @@
 				}
 			}
 		},
-		{
-			"path": "pages/tools/policy/quoteDetail",
-			"style": {
-				"navigationBarTitleText": "报价详情",
-				"navigationBarBackgroundColor": "#0052FF",
-				"navigationBarTextStyle": "white",
-				"enablePullDownRefresh": false
 
-			}
-		},
 		{
 			"path": "pages/tools/coupon/coupon",
 			"style": {
@@ -837,18 +830,6 @@
 				}
 			}
 		},
-		{
-			"path": "pages/wallet/billInfo1",
-			"style": {
-				"navigationBarTitleText": "账单详情",
-				"navigationBarBackgroundColor": "#0052FF",
-				"navigationBarTextStyle": "white",
-				"app-plus": {
-					"scrollIndicator": "none",
-					"bounce": "none"
-				}
-			}
-		},
 		{
 			"path": "pages/user/protocol",
 			"style": {
@@ -978,79 +959,6 @@
 		},
 
 		//ui升级模块
-		{
-			"path": "pages/carInsure/companyQuotable",
-			"style": {
-				"navigationBarTitleText": "可报价公司",
-				"app-plus": {
-					"scrollIndicator": "none", //隐藏滚动条
-					"bounce": "none" //关闭反弹效果
-				}
-			}
-		},
-		{
-			"path": "pages/carInsure/premiumCalc",
-			"style": {
-				"navigationBarTitleText": "保费计算",
-				"app-plus": {
-					"scrollIndicator": "none", //隐藏滚动条
-					"bounce": "none" //关闭反弹效果
-				}
-			}
-		},
-		{
-			"path": "pages/carInsure/entry",
-			"style": {
-				"navigationBarTitleText": "车险投保",
-				"app-plus": {
-					"scrollIndicator": "none", //隐藏滚动条
-					"bounce": "none" //关闭反弹效果
-				}
-			}
-		},
-		{
-			"path": "pages/carInsure/carType",
-			"style": {
-				"navigationBarTitleText": "选择车型",
-				"app-plus": {
-					"scrollIndicator": "none", //隐藏滚动条
-					"bounce": "none" //关闭反弹效果
-				}
-			}
-		},
-		{
-			"path": "pages/carInsure/Information",
-			"style": {
-				"navigationBarTextStyle": "white",
-				"enablePullDownRefresh": false, //开启下拉刷新
-				"navigationStyle": "custom",
-				"app-plus": {
-					"titleNView": false
-				}
-			}
-
-		},
-		{
-			"path": "pages/carInsure/insureItems",
-			"style": {
-				"navigationBarTitleText": "保险配置",
-				"app-plus": {
-					"scrollIndicator": "none",
-					"bounce": "none"
-				}
-			}
-		},
-
-		{
-			"path": "pages/carInsure/quoteDetail",
-			"style": {
-				"navigationBarTitleText": "报价详情",
-				"navigationBarBackgroundColor": "#0052FF",
-				"navigationBarTextStyle": "white",
-				"enablePullDownRefresh": false
-
-			}
-		},
 		{
 			"path": "pages/orders/priceComparison",
 			"style": {
@@ -1094,6 +1002,17 @@
 			}
 
 		},
+		{
+			"path": "pages/my/upgradeTask",
+			"style": {
+				"navigationBarTitleText": "升级任务",
+				"app-plus": {
+					"titleNView": false
+				}
+			}
+
+		},
+
 		{
 			"path": "pages/institutional/applicationResult",
 			"style": {

+ 0 - 1659
pages/carInsure/Information.vue

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

+ 0 - 199
pages/carInsure/carType.vue

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

+ 0 - 472
pages/carInsure/companyQuotable.vue

@@ -1,472 +0,0 @@
-<template>
-	<view class="">
-		<image src="/static/image/car-insure/Quotablebanner.png" mode=""
-			style="width: 100%;height: 110px;position: absolute;"></image>
-		<view class="page">
-			<view class="car">
-				<view class="header d-flex a-center j-sb" @tap="showCarInfo = !showCarInfo">
-					<view class="title">车辆信息</view>
-					<view class=" d-flex">
-						<view class="icon iconfont"
-							:class="{ 'icon-up-yixuanzhong': showCarInfo, 'icon-down-weixuanzhong': !showCarInfo }"
-							style="font-weight: bold;color: #fff;">
-						</view>
-					</view>
-				</view>
-				<view class="body" v-if="showCarInfo">
-					<view class="row d-flex a-center j-sb">
-						<view>车牌号</view>
-						<view>{{carInfo.licenseNo}}</view>
-					</view>
-					<view class="row d-flex a-center j-sb">
-						<view>品牌型号</view>
-						<view>{{carInfo.modelcname}}</view>
-					</view>
-					<view class="row d-flex a-center j-sb">
-						<view>车辆识别代码</view>
-						<view>{{carInfo.vinNo}}</view>
-					</view>
-					<view class="row d-flex a-center j-sb">
-						<view>发动机号</view>
-						<view>{{carInfo.engineNo}}</view>
-					</view>
-					<view class="row d-flex a-center j-sb">
-						<view>年款</view>
-						<view>{{carInfo.caryear}}</view>
-					</view>
-					<view class="row d-flex a-center j-sb">
-						<view>座位数</view>
-						<view>{{carInfo.seatCount}}</view>
-					</view>
-					<view class="row d-flex a-center j-sb">
-						<view>整备质量</view>
-						<view>{{carInfo.completeKerbMass}}</view>
-					</view>
-					<view class="row d-flex a-center j-sb" v-if="carInfo.limitLoad">
-						<view>核定载质量</view>
-						<view>{{carInfo.limitLoad}}</view>
-					</view>
-					<view class="row d-flex a-center j-sb">
-						<view>排量</view>
-						<view>{{carInfo.enginedesc}}</view>
-					</view>
-					<view class="row d-flex a-center j-sb">
-						<view>功率</view>
-						<view>{{carInfo.powerScale}}</view>
-					</view>
-					<view class="row d-flex a-center j-sb">
-						<view>新车购置价</view>
-						<view>{{carInfo.purchasePrice}}</view>
-					</view>
-					<view class="row d-flex a-center j-sb font-weight "
-						style="background-color: #E5ECFA;padding:5px 10px;">
-						<view>车主性质</view>
-					</view>
-					<view class="row d-flex a-center j-sb">
-						<view>使用性质</view>
-						<view>{{carInfo1.carnature}}</view>
-					</view>
-					<view class="row d-flex a-center j-sb">
-						<view>车辆用途</view>
-						<view>{{carInfo1.vehicleUse}}</view>
-					</view>
-					<view class="row d-flex a-center j-sb">
-						<view>车辆类型</view>
-						<view>{{carInfo1.cartype}}</view>
-					</view>
-					<view class="row d-flex a-center j-sb">
-						<view>车辆种类</view>
-						<view>{{carInfo1.cimodelclass}}</view>
-					</view>
-					<view class="row d-flex a-center j-sb">
-						<view>能源种类</view>
-						<view>{{carInfo1.energyType}}</view>
-					</view>
-					<view class="row d-flex a-center j-sb">
-						<view>注册日期</view>
-						<view>{{carInfo.registerDate }}</view>
-					</view>
-					<view class="row d-flex a-center j-sb">
-						<view>发证日期</view>
-						<view>{{carInfo.issueDate }}</view>
-					</view>
-					<view class="row d-flex a-center j-sb" v-if="carInfo.transferFlag">
-						<view>转移登记日期</view>
-						<view>{{carInfo.transferDate }}</view>
-					</view>
-					<view class="row d-flex a-center j-sb font-weight "
-						style="background-color: #E5ECFA;padding:5px 10px;">
-						<view>车辆情况</view>
-					</view>
-					<view class="row d-flex a-center j-sb">
-						<view>是否过户</view>
-						<view>{{carInfo.transferFlag?'是':'否' }}</view>
-					</view>
-
-					<view class="row d-flex a-center j-sb">
-						<view>商业是否过户</view>
-						<view>{{carInfo.transferFlagBi?'是':'否' }}</view>
-					</view>
-					<view class="row d-flex a-center j-sb">
-						<view>是否脱保</view>
-						<view>{{carInfo.outOfInsurance?'是':'否' }}</view>
-					</view>
-					<view class="row d-flex a-center j-sb">
-						<view>是否二手车</view>
-						<view>{{carInfo.usedCar?'是':'否' }}</view>
-					</view>
-					<view class="row dis j-c a-c">
-						<u-button type="primary" shape="circle" size="medium"
-							style="background: linear-gradient( 90deg, #0052FF 0%, #6595FA 100%);">修改车辆信息</u-button>
-					</view>
-				</view>
-			</view>
-			<view class="car" style="padding: 0;">
-				<view class="header d-flex a-center j-sb " @tap="showOwerInfo = !showOwerInfo" style="padding: 0 10px;">
-					<view class="title">人员信息</view>
-					<view class=" d-flex">
-						<view class="icon iconfont "
-							:class="{ 'icon-up-yixuanzhong': showOwerInfo, 'icon-down-weixuanzhong': !showOwerInfo }"
-							style="font-weight: bold;color: #fff;">
-						</view>
-					</view>
-				</view>
-				<view class="body" v-if="showOwerInfo">
-					<view class="row d-flex a-center j-sb font-weight "
-						style="background-color: #E5ECFA;padding:5px 10px;">
-						<view>车主姓名:</view>
-						<view>{{ownerInfo.name}}</view>
-					</view>
-					<view class="" style="padding: 0 5px;">
-						<view class="row d-flex a-center j-sb">
-							<view>车主身份证号:</view>
-							<view>
-								{{ownerInfo.identifyNumber}}
-							</view>
-						</view>
-						<view class="row d-flex a-center j-sb">
-							<view>手机号:</view>
-							<view>{{ownerInfo.mobile}}</view>
-						</view>
-						<view class="row d-flex a-center j-sb">
-							<view>地址:</view>
-							<view>{{ownerInfo.addr}}</view>
-						</view>
-					</view>
-					<view class="row d-flex a-center j-sb font-weight "
-						style="background-color: #E5ECFA;padding:5px 10px;">
-						<view>投保人姓名:</view>
-						<view>{{policyHolderInfo.name}}</view>
-					</view>
-					<view class="" style="padding: 0 5px;">
-						<view class="row d-flex a-center j-sb">
-							<view>车主身份证号:</view>
-							<view>
-								{{policyHolderInfo.identifyNumber}}
-							</view>
-						</view>
-						<view class="row d-flex a-center j-sb">
-							<view>手机号:</view>
-							<view>{{policyHolderInfo.mobile}}</view>
-						</view>
-						<view class="row d-flex a-center j-sb">
-							<view>地址:</view>
-							<view>{{policyHolderInfo.addr}}</view>
-						</view>
-					</view>
-					<view class="row d-flex a-center j-sb font-weight "
-						style="background-color: #E5ECFA;padding:5px 10px;">
-						<view>被保人姓名:</view>
-						<view>{{insuredPersonInfo.name}}</view>
-					</view>
-					<view class="" style="padding: 0 5px;">
-						<view class="row d-flex a-center j-sb">
-							<view>车主身份证号:</view>
-							<view>
-								{{insuredPersonInfo.identifyNumber}}
-							</view>
-						</view>
-						<view class="row d-flex a-center j-sb">
-							<view>手机号:</view>
-							<view>{{insuredPersonInfo.mobile}}</view>
-						</view>
-						<view class="row d-flex a-center j-sb">
-							<view>地址:</view>
-							<view>{{insuredPersonInfo.addr}}</view>
-						</view>
-					</view>
-					<view class="row dis j-c a-c">
-						<u-button type="primary" shape="circle" size="medium"
-							style="background: linear-gradient( 90deg, #0052FF 0%, #6595FA 100%);">修改人员信息</u-button>
-					</view>
-				</view>
-			</view>
-			<view class="insuranceType mt-2 dis f-c ">
-				<text class="title">险种信息</text>
-				<view class="dis  a-c f-wrap j-s" style="margin-top: 10px;">
-					<view class="status-data" :class="item.dictValue==insuranceTypeId? 'active':''"
-						v-for="(item,index) in productsTypeoptions" @tap.stop.prevent="statusclick(item.dictValue)"
-						:key="index">
-						{{item.dictTag}}
-					</view>
-				</view>
-			</view>
-			<view class="insuranceType mt-2 dis f-c ">
-				<text class="title">可报价保险公司</text>
-				<view class="dis j-s f-wrap mt-2">
-					<view class="insurer dis j-s a-c">
-						<image src="/static/insuranceicon/dajia.png" mode=""></image>
-						<text>自检财险</text>
-					</view>
-				</view>
-			</view>
-		</view>
-		<view class="footer-btn dis j-s a-c">
-			<u-button type="primary" style="background:#E6EEFF;color:#0052FF;" @tap="back">上一步</u-button>
-			<u-button type="primary" style="background:#0052FF;" @tap="next">下一步</u-button>
-		</view>
-	</view>
-
-</template>
-
-<script>
-	import {
-		dictionaryMatch
-	} from '@/plugins/utils';
-	export default {
-		data() {
-			return {
-				carInfo: {},
-				carInfo1: {
-					carnature: "",
-					vehicleUse: "",
-					cartype: "",
-					cimodelclass: "",
-					energyType: "",
-				},
-				ownerInfo: {},
-				policyHolderInfo: {},
-				insuredPersonInfo: {},
-				carInfoPositiveList: [],
-				ownerInfoPositiveList: [],
-				policyHolderInfoPositiveList: [],
-				insuredPersonInfoPositiveList: [],
-				showCarInfo: true,
-				showOwerInfo: true,
-				productsTypeoptions: [],
-				natureOfVehicleUseoptions: [],
-				vehicleTypeoptions: [],
-				trafficManagementVehicleTypeoptions: [],
-				energyTypeoptions: [],
-				businessVehicleUseoptions: [],
-				outOfBusinessVehicleUseoptions: [],
-				insuranceTypeId: "",
-
-			}
-		},
-		onShow() {
-
-		},
-		async onLoad() {
-			await this.getDicType("productsType");
-			await this.getDicType("businessVehicleUse"); //车辆用途(营业)
-			await this.getDicType("outOfBusinessVehicleUse"); //车辆用途(非营业)
-			await this.getDicType("natureOfVehicleUse"); //车辆性质
-			await this.getDicType("vehicleType"); //车辆种类
-			await this.getDicType("trafficManagementVehicleType"); //车辆类型
-			await this.getDicType("energyType"); //能源种类
-			const eventChannel = this.getOpenerEventChannel()
-			// 监听acceptData事件,获取上一页面通过eventChannel传送到当前页面的数据
-			eventChannel.on('acceptData', (data) => {
-				if (!!data) {
-					//读取上一个页面传过来数据(车辆信息,人员信息,险种信息)
-					this.carInfo = data.carInfo; //车辆信息
-					this.ownerInfo = data.ownerInfo; //车主信息
-					this.policyHolderInfo = data.policyHolderInfo; //投保人信息
-					this.insuredPersonInfo = data.insuredPersonInfo; //被保人信息
-					this.carInfoPositiveList = data.carInfoPositiveList; //车辆影像
-					this.ownerInfoPositiveList = data.ownerInfoPositiveList; //车主影像
-					this.policyHolderInfoPositiveList = data.policyHolderInfoPositiveList; //投保影像
-					this.insuredPersonInfoPositiveList = data.insuredPersonInfoPositiveList; //被保人影像
-					this.carInfo1.carnature = dictionaryMatch(this.natureOfVehicleUseoptions, data.carInfo
-						.carnature)
-					if (data.carInfo.carnature == '01') {
-						this.carInfo1.vehicleUse = dictionaryMatch(this.businessVehicleUseoptions, data.carInfo
-							.vehicleUse)
-					} else {
-						this.carInfo1.vehicleUse = dictionaryMatch(this.outOfBusinessVehicleUseoptions, data
-							.carInfo
-							.vehicleUse)
-					}
-					this.carInfo1.cartype = dictionaryMatch(this.trafficManagementVehicleTypeoptions, data
-						.carInfo
-						.cartype)
-					this.carInfo1.cimodelclass = dictionaryMatch(this.vehicleTypeoptions, data.carInfo
-						.cimodelclass)
-					this.carInfo1.energyType = dictionaryMatch(this.energyTypeoptions, data.carInfo
-						.energyType)
-				}
-			})
-		},
-		methods: {
-			async getDicType(type) {
-				let res = await this.$http.get('/sysDict/dictDetails/' + type);
-				this[type + "options"] = res.data.ddList;
-			},
-			statusclick(e) {
-				this.insuranceTypeId = e;
-			},
-			back() {
-				uni.navigateBack(1)
-			},
-			next() {
-				uni.navigateTo({
-					url: ''
-				})
-				this.navigate({
-					url: '/pages/carInsure/premiumCalc',
-					success: (res) => {
-						res.eventChannel.emit(
-							"acceptData", {
-								carInfo: this
-									.carInfo,
-								ownerInfo: this
-									.ownerInfo,
-								policyHolderInfo: this
-									.policyHolderInfo,
-								insuredPersonInfo: this
-									.insuredPersonInfo,
-								carInfoPositiveList: this
-									.carInfoPositiveList, //车辆
-								ownerInfoPositiveList: this
-									.ownerInfoPositiveList, //车主
-								policyHolderInfoPositiveList: this
-									.policyHolderInfoPositiveList, //投保
-								insuredPersonInfoPositiveList: this
-									.insuredPersonInfoPositiveList, //被保人
-
-							})
-					}
-				}, "navigateTo", true);
-			},
-		}
-	}
-</script>
-
-<style lang="scss" scoped>
-	.page {
-		background: #F8FAFE;
-		padding: 10px 16px 100px 16px;
-
-	}
-
-	.footer-btn {
-		position: fixed;
-		bottom: 0;
-		left: 0;
-		width: 100%;
-		height: 62px;
-		background: #FFFFFF;
-		box-shadow: 0px -4px 10px 0px #DAE3F4;
-		border-radius: 0px 0px 0px 0px;
-		padding: 12px 16px;
-		z-index: 99;
-
-		uni-button {
-			width: 45%;
-		}
-	}
-
-	.status-data {
-		padding: 4px 10px;
-		box-sizing: border-box;
-		margin: 0 4px 4px 0;
-		font-size: 12px;
-		border: 1px solid #eee;
-		cursor: pointer;
-	}
-
-	.active {
-		position: relative;
-		background: rgba(0, 82, 255, 0.1);
-		color: #0052FF;
-		border: 1px solid #0052FF;
-		font-weight: 700;
-	}
-
-	.active::before {
-		content: "";
-		position: absolute;
-		top: 0;
-		left: 0;
-		width: 10px;
-		height: 10px;
-		background-image: url("/static/image/car-insure/before.png");
-		background-size: cover;
-	}
-
-	.insuranceType {
-		.title {
-			font-size: 15px;
-			font-weight: bold;
-			color: #232832;
-		}
-
-		.insurer {
-			width: 100px;
-			height: 40px;
-			background: #FFFFFF;
-			box-shadow: 0px 4px 10px 0px #DAE3F4;
-			border-radius: 6px;
-			margin-bottom: 10px;
-			padding: 8px;
-			box-sizing: border-box;
-
-			image {
-				width: 20px;
-				height: 20px;
-			}
-
-			text {
-				font-size: 14px;
-				color: #232832;
-				font-weight: bold;
-			}
-		}
-	}
-
-	.car {
-		width: 100%;
-		background-color: #fff;
-		border-radius: 6px;
-		box-shadow: 0px 4px 10px 0px #DAE3F4;
-		margin-top: 10px;
-		position: relative;
-
-		.header {
-			height: 80upx;
-			position: relative;
-			padding: 0 10px;
-			background: linear-gradient(132deg, #467FF6 0%, #A5C2FF 59%, #467FF6 100%);
-			border-image: linear-gradient(152deg, rgba(234, 241, 255, 1), rgba(231, 238, 255, 1)) 1 1;
-			border-radius: 6px 6px 0px 0px;
-
-			.title {
-				font-size: 30upx;
-				font-weight: bold;
-				color: #fff;
-			}
-		}
-
-		.body {
-			.row {
-				padding: 6px 10px;
-				border-top: 1px solid #F3F3F3;
-			}
-
-			.row:last-child {
-				border: none;
-			}
-		}
-	}
-</style>

+ 0 - 1224
pages/carInsure/entry.vue

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

+ 0 - 532
pages/carInsure/insuranceType.js

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

+ 0 - 1677
pages/carInsure/insureItems.vue

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

+ 0 - 1155
pages/carInsure/premiumCalc.vue

@@ -1,1155 +0,0 @@
-<template>
-	<view class="">
-		<image src="/static/image/car-insure/Quotablebanner.png" mode=""
-			style="width: 100%;height: 110px;position: absolute;"></image>
-		<view class="page">
-			<view class="car-header dis a-c">
-				<image src="/static/image/car-insure/Group.png" mode="" style="width: 40px;height: 40px;"></image>
-				<view class="dis f-c head-name">
-					<text>{{carInfo.licenseNo}} <text style="color: rgba(35,40,50,0.65);">丨</text> <text
-							style="font-weight: 400;"> {{insuredPersonInfo.name}} (被保人)</text> </text>
-					<view class="name1">
-						<text>{{carInfo.modelcname}}</text>
-					</view>
-				</view>
-				<view class="carJump" @tap="toCarInfo">修改信息</view>
-			</view>
-			<view class=" dis a-c j-s mt-3" style="position: relative;">
-				<view style="color:#FF5600;font-size: 15px;font-weight: bold;">投保注意:</view>
-				<view class="dis a-c  f-wrap">
-					<view class="status-data" :class="carInfo.transferFlag? 'active1':''"
-						@tap="immediatelyClick('transferFlag')">
-						过户车
-					</view>
-					<view class="status-data" :class="carInfo.transferFlagBi? 'active1':''"
-						@tap="immediatelyClick('transferFlagBi')">
-						商业险过户
-					</view>
-					<view class="status-data" :class="carInfo.outOfInsurance? 'active1':''"
-						@tap="immediatelyClick('outOfInsurance')">
-						脱保
-					</view>
-					<view class="status-data" :class="carInfo.usedCar? 'active1':''" @tap="immediatelyClick('usedCar')">
-						二手车
-					</view>
-				</view>
-			</view>
-			<view class="quotePlan dis a-c j-s mt-2 " style="padding: 5px 10px;" v-if="carInfo.transferFlag">
-				<view>转移登记日期:</view>
-				<u-input type="select" :select-open="transferDateShow" :custom-style="{textAlign:'right'}"
-					v-model="carInfo.transferDate" @click="transferDateShow = true" style="width: 100px;"></u-input>
-				<u-picker v-model="transferDateShow" mode="time" :params="params1"
-					@confirm="transferconfirm"></u-picker>
-			</view>
-			<view class="quoteCompany mt-3">
-				<view class="header dis a-c">
-					<view class="title  d-flex">保险公司</view>
-					<!-- 	<view class="">
-						<u-checkbox v-model="Selectchecked" @change="SelectAll($event)"
-							active-color="rgb(250, 53, 52)">全选</u-checkbox>
-					</view> -->
-				</view>
-				<block v-for="(totalitem,totalindex) in totalCompanyList" :key="totalindex">
-					<template>
-						<view class="quoteCompanyItem dis f-c j-s" :class="totalitem.checked? 'quoteactive':''">
-							<view class="top dis f-c">
-								<view class="companyIcon dis j-s a-c mb-2"
-									@tap="checkboxChange(totalitem.id,totalitem.cnName, totalindex)">
-									<view class="dis a-c">
-										<!-- 	<view class="" @click.stop>
-											<u-checkbox @change="priceComparisonChange(totalindex,totalitem)"
-												v-if="totalitem.isComparableshowHide"
-												v-model="totalitem.isComparableShow" active-color="#23C1CB"
-												:disabled='totalitem.isComparableDisabled'></u-checkbox>
-										</view> -->
-										<image :src="totalitem.logo"></image>
-										<view class="companyName">{{totalitem.namesimple}}</view>
-									</view>
-									<view class="insuranceGuide dis a-c j-c" @click.stop="InsureGuideclick">
-										投保指引
-									</view>
-									<ls-loading v-show="totalitem.quoteCode==1" text="掌柜正在为您报价,请稍等......"
-										:animation="animation" fontSize="22" />
-									<!-- 价格 -->
-									<view class="dis a-c" v-if="totalitem.quoteCode==200">
-										<view class="dis a-c" style="margin-right: 10px;">
-											<text style="color: #FF4D4D;font-size: 12px;"
-												v-if="totalitem.result.sumExportFee">优惠金额¥{{totalitem.result.sumExportFee}}</text>
-										</view>
-										<text class="sum">¥{{totalitem.result.sumPermium}}</text>
-									</view>
-									<text
-										v-show="(totalitem.quoteCode != '200') && (totalitem.quoteCode != '0') && (totalitem.quoteCode != '1')"
-										class="sum" style="color: #999;font-size: 12px;"
-										@tap.stop.prevent="ErrorMsg(totalitem.msg,totalitem.namesimple)">报价失败,请点击查看</text>
-								</view>
-								<view class="planDetails mb-2 dis a-c j-c f-c">
-									<view class="headers dis j-c a-c"
-										@tap="totalitem.planDetailsshow = !totalitem.planDetailsshow">
-										<image
-											:src="totalitem.planDetailsshow?'/static/image/car-insure/DoubleLeft1.png':'/static/image/car-insure/DoubleLeft.png'"
-											mode=""></image>
-										<text>展开方案详情</text>
-									</view>
-									<view v-if="totalitem.planDetailsshow">
-										321321321
-									</view>
-								</view>
-								<view class="footer-btn dis j-s a-c">
-									<u-button type="primary" size="medium"
-										style="background:#E6EEFF;color:#0052FF; width: 45%;"
-										@tap="SchemeSelection">方案选择</u-button>
-									<u-button type="primary" size="medium"
-										style="background:#FFEFE6;color: #FF5600; width: 45%;"
-										@tap="next">单独报价</u-button>
-								</view>
-								<view class="Premium dis f-c" v-show="totalitem.quoteCode==200">
-									<view class="dis price" v-if="totalitem.result.feeNoDescription">
-										<text>该车未匹配销管费用,不建议投保!</text>
-										<u-icon name="chat-fill" color="#ff0000" size="40"
-											@click="discountErrorMessageMsg(totalitem.result.feeNoDescription,totalitem.namesimple)"></u-icon>
-									</view>
-									<view class="dis a-c  f-wrap price">
-										<text
-											v-if="totalitem.result.jqPremium">交强险:¥{{totalitem.result.jqPremium}}</text>
-										<text
-											v-if="totalitem.result.syPremium">商业险:¥{{totalitem.result.syPremium}}</text>
-										<text
-											v-if="totalitem.result.taxAmount">车船税:¥{{totalitem.result.taxAmount}}</text>
-										<text
-											v-if="totalitem.result.jyPremium">驾意险:¥{{totalitem.result.jyPremium}}</text>
-									</view>
-									<view class="dis a-c  f-wrap price" style="font-size: 20rpx;color: #FF4D4D;">
-										<text>优惠金额:【
-											<text
-												v-if="totalitem.result.jqPremium">交强险:{{totalitem.result.jqExportFee?totalitem.result.jqExportFee:'无'}}</text>
-											<text
-												v-if="totalitem.result.syPremium">商业险:{{totalitem.result.syExportFee?totalitem.result.syExportFee:'无'}}</text>
-											<text
-												v-if="totalitem.result.jyPremium">驾意险:{{totalitem.result.noExportFee?totalitem.result.noExportFee:"无"}}</text>
-											】</text>
-
-									</view>
-									<view class="dis a-c j-s ">
-										<view class="dis f-c time">
-											<text
-												v-if="totalitem.result.jqPremium">交强险:{{totalitem.result.startDateJq}}~{{totalitem.result.endDateJq}}
-
-											</text>
-											<text
-												v-if="totalitem.result.startDateSy">商业险:{{totalitem.result.startDateSy}}~{{totalitem.result.endDateSy}}
-
-											</text>
-										</view>
-										<image src="/static/image/car-insure/Group30.png" mode=""
-											style="width: 14px;height: 14px;" @click="syncData(totalitem.result)">
-										</image>
-									</view>
-									<view class="dis a-c  f-wrap time">
-										<text v-if="totalitem.namesimple == '永诚财险'">光博分:{{ totalitem.result.ilogPreUdwMess ?
-										totalitem.result.ilogPreUdwMess : '无' }}</text>
-										<text v-else>评分:{{ totalitem.result.ilogPreUdwMess ?
-										totalitem.result.ilogPreUdwMess : '无' }}</text>
-										<text v-if="totalitem.result.jqScore">交强类型评分:{{ totalitem.result.jqScore ?
-										totalitem.result.jqScore : '无' }}</text>
-										<text v-if="totalitem.result.syScore">商业类型评分:{{ totalitem.result.syScore ?
-										totalitem.result.syScore : '无' }}</text>
-										<text v-if="totalitem.result.lossRation">总赔付率:{{ totalitem.result.lossRation ?
-										totalitem.result.lossRation : '无' }}</text>
-										<text v-if="totalitem.result.jqLossRation">交强赔付率:{{ totalitem.result.jqLossRation ?
-										totalitem.result.jqLossRation : '无' }}</text>
-										<text v-if="totalitem.result.syLossRation">商业赔付率:{{ totalitem.result.syLossRation ?
-										totalitem.result.syLossRation : '无' }}</text>
-										<text
-											v-if="totalitem.namesimple == '紫金财险'">鼎然-车辆风险评分:{{totalitem.result.ubiPredictedInfoScore ?
-										totalitem.result.ubiPredictedInfoScore : '无'}}</text>
-										<text v-if="totalitem.result.jqRenewal">交强续保:{{ totalitem.result.jqRenewal ?
-										totalitem.result.jqRenewal : '无' }}</text>
-										<text v-if="totalitem.result.syRenewal">商业续保:{{ totalitem.result.syRenewal ?
-										totalitem.result.syRenewal : '无' }}</text>
-										<text v-if="totalitem.result.jqClaims">交强出险次数:{{ totalitem.result.jqClaims ?
-										totalitem.result.jqClaims : '无' }}</text>
-										<text v-if="totalitem.result.syClaims">商业出险次数:{{ totalitem.result.syClaims ?
-										totalitem.result.syClaims : '无' }}</text>
-									</view>
-									<view class="dis a-c j-end lastyear">
-										<view class=" left dis j-c a-c" v-if="totalitem.lastYearMsg"
-											@click="YearMsg(totalitem.lastYearMsg,totalitem.namesimple)">
-											<image src="/static/image/car-insure/lastyear.png" mode=""></image>
-											<text>上年信息</text>
-										</view>
-										<view class=" right dis j-c a-c" v-if='totalitem.result.predictInfo'
-											@click="preUnderwriting(totalitem.result.predictInfo)">
-											<image src="/static/image/car-insure/advance.png" mode=""></image>
-											<text>预核保信息</text>
-										</view>
-									</view>
-								</view>
-								<view class="quotebtn dis j-s a-c" v-show="totalitem.quoteCode==200">
-									<view class="dis a-c j-c" @click="bjdpreview(totalitem.result.companyId)"
-										style="background-color: #0052FF;border-bottom-left-radius:6px;color: #fff;">
-										报价单
-									</view>
-									<view class="dis a-c j-c"
-										style="background-color: #E6EEFF;border-bottom-right-radius:6px;color: #0052FF;"
-										@click="querydetial(totalitem.result.companyId)">
-										查看详情
-									</view>
-								</view>
-							</view>
-						</view>
-					</template>
-				</block>
-			</view>
-		</view>
-		<u-modal v-model="InsureGuidePopup" ref="uModal" :show-title="false" border-radius="12" confirm-color="#FF5600"
-			:confirm-style="{background:'#FFEFE6',height:'36px',lineHeight:'36px'}">
-			<view class="">
-				<image src="/static/image/car-insure/InsureGuide.png" mode="" style="width: 100%;height: 40px;"></image>
-				<view class="p-2 mb-2" style="min-height:120px;">
-					<text>永诚财产保险股份有限公司是一家由国内实力雄厚的大型电力企业集团和产业投资集团共同发起组建的全国性股份制财产保险公司.</text>
-				</view>
-			</view>
-		</u-modal>
-		<u-popup v-model="PlanPopup" mode="center" width="100%" border-radius="6">
-			<view class="">
-				<image src="/static/image/car-insure/SchemeSelection.png" mode="" style="width: 100%;height: 40px;">
-				</image>
-				<scroll-view :scroll-top="scrollTop" scroll-y="true" class="scroll-Y">
-					<view class="Plancontent dis  f-c ">
-						<text class="title mb-1">方案选择</text>
-						<view class="dis  a-c f-wrap j-s modelformcss" style="margin-top: 10px;">
-							<view class="status-data" :class="item.value==SelectedPlanId? 'active':''"
-								v-for="(item,index) in InsurerPlanList" @tap.stop.prevent="statusclick(item.value)"
-								:key="index">
-								{{item.label}}
-							</view>
-						</view>
-					</view>
-					<view class="" v-if="SelectedPlanId !=='4'">
-						<view class="Plancontent dis  f-c ">
-							<text class="title mb-1">交强险</text>
-							<view class=" dis a-c j-s modelformcss">
-								<text>即时投保</text>
-								<view class="dis a-c j-c">
-									<view class="status-data" :class="item.value==jqimmediately? 'active':''"
-										v-for="(item,index) in jqimmediatelyList"
-										@tap="datelyClick(item.value,'jqimmediately','jqstartDate','jqendDate')"
-										:key="index">
-										{{item.label}}
-									</view>
-								</view>
-							</view>
-							<u-form ref="uForm" label-width="120px">
-								<u-form-item label="交强险投保日期" class="modelformcss">
-									<u-input type="select" :select-open="jqstartShow"
-										:custom-style="{textAlign:'right'}" v-model="jqstartDate" placeholder="请选择开始时间"
-										@click="jqstartShow = true"></u-input>
-									<u-picker v-model="jqstartShow" mode="time" :params="params"
-										@confirm="jqstartconfirm"></u-picker>
-								</u-form-item>
-								<u-form-item label="交强险终保日期" class="modelformcss">
-									<u-input type="select" :select-open="jqendShow" :custom-style="{textAlign:'right'}"
-										v-model="jqendDate" placeholder="请选择结束时间" @click="jqendShow = true"></u-input>
-									<u-picker v-model="jqendShow" mode="time" :params="params"
-										@confirm="jqendconfirm"></u-picker>
-								</u-form-item>
-							</u-form>
-						</view>
-						<view class="Plancontent dis  f-c ">
-							<text class="title mb-1">车船税</text>
-							<view class="">
-								<u-form ref="uForm" :model="vehicleAndVesselTaxForm" label-width="130px">
-									<u-form-item label="纳税类型" prop="taxRelifFlag" class="modelformcss">
-										<u-input type="select" :select-open="taxRelifFlagShow"
-											v-model="model.taxRelifFlag" :custom-style="{textAlign:'right'}"
-											placeholder="请选择纳税类型" @click="taxRelifFlagShow = true"></u-input>
-										<u-select mode="single-column" :list="taxRelifFlagoptions"
-											v-model="taxRelifFlagShow" label-name="dictTag" value-name="dictValue"
-											@confirm="taxRelifFlagConfirm($event,'taxRelifFlag')"></u-select>
-									</u-form-item>
-									<u-form-item
-										v-show="vehicleAndVesselTaxForm.taxRelifFlag == 2 || vehicleAndVesselTaxForm.taxRelifFlag == 3"
-										label="减免税凭证号" prop="extendChar2" class="modelformcss">
-										<u-input placeholder="请输入减免税凭证号" :custom-style="{textAlign:'right'}"
-											v-model="vehicleAndVesselTaxForm.extendChar2" type="text"></u-input>
-									</u-form-item>
-									<u-form-item v-show="vehicleAndVesselTaxForm.taxRelifFlag == 4" label="完税凭证号"
-										prop="paidFreeCertificate" class="modelformcss">
-										<u-input placeholder="请输入完税凭证号" :custom-style="{textAlign:'right'}"
-											v-model="vehicleAndVesselTaxForm.paidFreeCertificate" type="text"></u-input>
-									</u-form-item>
-									<u-form-item
-										v-show="vehicleAndVesselTaxForm.taxRelifFlag == 2 || vehicleAndVesselTaxForm.taxRelifFlag == 3"
-										label="减免税原因" prop="relifReason" class="modelformcss">
-										<u-input type="select" :select-open="relifReasonShow"
-											v-model="model.relifReason" :custom-style="{textAlign:'right'}"
-											placeholder="请选择减免税原因" @click="relifReasonShow = true"></u-input>
-										<u-select mode="single-column" :list="relifReasonoptions"
-											v-model="relifReasonShow" label-name="dictTag" value-name="dictValue"
-											@confirm="taxRelifFlagConfirm($event,'relifReason')"></u-select>
-									</u-form-item>
-									<u-form-item v-show="vehicleAndVesselTaxForm.taxRelifFlag != 1" label="税务机关代码"
-										prop="taxComCode" class="modelformcss">
-										<u-input placeholder="请输入税务机关代码" :custom-style="{textAlign:'right'}"
-											v-model="vehicleAndVesselTaxForm.taxComCode" type="text"></u-input>
-									</u-form-item>
-									<u-form-item v-show="vehicleAndVesselTaxForm.taxRelifFlag != 1" label="税务机关名称"
-										prop="taxComName" class="modelformcss">
-										<u-input placeholder="请输入税务机关名称" :custom-style="{textAlign:'right'}"
-											v-model="vehicleAndVesselTaxForm.taxComName" type="text"></u-input>
-									</u-form-item>
-									<u-form-item v-show="vehicleAndVesselTaxForm.taxRelifFlag == 4" label="完税凭证填发日期"
-										prop="taxDocumentDate" class="modelformcss">
-										<u-input type="select" :select-open="taxDocumentDateShow"
-											:custom-style="{textAlign:'right'}"
-											v-model="vehicleAndVesselTaxForm.taxDocumentDate" placeholder="请选择时间"
-											@click="taxDocumentDateShow = true"></u-input>
-										<u-picker v-model="taxDocumentDateShow" mode="time" :params="params1"
-											@confirm="taxDocumentDateconfirm"></u-picker>
-									</u-form-item>
-									<u-form-item v-show="vehicleAndVesselTaxForm.taxRelifFlag == 4" label="完税凭证地区"
-										prop="taxPaidAreaCode" class="modelformcss">
-										<u-input type="select" :select-open="taxPaidAreaCodeShow"
-											:custom-style="{textAlign:'right'}" v-model="model.taxPaidAreaCode"
-											placeholder="请选择地区" @click="taxPaidAreaCodeShow = true"></u-input>
-										<u-picker mode="region" v-model="taxPaidAreaCodeShow" :params="params2"
-											@confirm="taxPaidAreaCodeconfirm"></u-picker>
-									</u-form-item>
-									<u-form-item v-show="vehicleAndVesselTaxForm.taxRelifFlag == 3" label="减税比例"
-										prop="taxRelief" class="modelformcss">
-										<u-input placeholder="请输入0~1的小数" :custom-style="{textAlign:'right'}"
-											v-model="vehicleAndVesselTaxForm.taxRelief" type="text"></u-input>
-									</u-form-item>
-								</u-form>
-							</view>
-
-						</view>
-						<view class="Plancontent dis  f-c ">
-							<text class="title mb-1">商业险</text>
-							<view class=" dis a-c j-s modelformcss">
-								<text>即时投保</text>
-								<view class="dis a-c j-c">
-									<view class="status-data" :class="item.value==syimmediately? 'active':''"
-										v-for="(item,index) in syimmediatelyList"
-										@tap="datelyClick(item.value,'syimmediately','systartDate','syendDate')"
-										:key="index">
-										{{item.label}}
-									</view>
-								</view>
-							</view>
-							<u-form ref="uForm" label-width="120px">
-								<u-form-item label="交强险投保日期" class="modelformcss">
-									<u-input type="select" :select-open="systartShow"
-										:custom-style="{textAlign:'right'}" v-model="systartDate" placeholder="请选择开始时间"
-										@click="systartShow = true"></u-input>
-									<u-picker v-model="systartShow" mode="time" :params="params"
-										@confirm="systartconfirm"></u-picker>
-								</u-form-item>
-								<u-form-item label="交强险终保日期" class="modelformcss">
-									<u-input type="select" :select-open="syendShow" :custom-style="{textAlign:'right'}"
-										v-model="syendDate" placeholder="请选择结束时间" @click="syendShow = true"></u-input>
-									<u-picker v-model="syendShow" mode="time" :params="params"
-										@confirm="syendconfirm"></u-picker>
-								</u-form-item>
-							</u-form>
-						</view>
-						<view class="Plancontent dis  f-c ">
-							<text class="title mb-1">意外险</text>
-							<view class=" modelformcss">
-								<text>山西驾乘非营业客车2万档</text>
-								<view class="Accident mt-1">
-									<view class="dis a-c j-s">
-										<view class="head dis a-c j-c">保险责任</view>
-										<view class="head dis a-c j-c">保险金额</view>
-										<view class="head dis a-c j-c">保费(元)</view>
-									</view>
-									<view class="dis a-c j-s" v-for="(item,index) in 3" :key="index">
-										<view class="tr"></view>
-										<view class="tr"></view>
-										<view class="tr"></view>
-									</view>
-								</view>
-							</view>
-						</view>
-					</view>
-					<view class="" v-else>
-
-					</view>
-				</scroll-view>
-				<view class="PlanPopup-btn dis a-c j-c">
-					<u-button type="primary" shape="circle" size="medium"
-						style="background: linear-gradient( 90deg, #0052FF 0%, #6595FA 100%);">确定方案</u-button>
-				</view>
-			</view>
-		</u-popup>
-
-	</view>
-
-</template>
-<script>
-	import lsLoading from '@/components/common/ls-loading/ls-loading.vue';
-	export default {
-		components: {
-			lsLoading
-		},
-		data() {
-			return {
-				model: {
-					taxRelifFlag: "正常交税",
-					taxpayerIdentifier: "身份证",
-					relifReason: "",
-					taxPaidAreaCode: "",
-				},
-				//车船税form
-				vehicleAndVesselTaxForm: {
-					taxRelifFlag: "1", //类型
-					identifyNumber: "", //纳税人识别号
-					taxpayerIdentifier: "01", //纳税人证件类型
-					taxpayerName: "", //纳税人名称
-					extendChar2: "", //减免税凭证号
-					paidFreeCertificate: "", //完税凭证号
-					relifReason: "", //减免税原因
-					taxComCode: "", //税务机关代码
-					taxComName: "", ///税务机关名称
-					taxDocumentDate: "", //完税日期
-					taxPaidAreaCode: "", //完税凭证地区代码
-					taxRelief: "", //减税比例
-				},
-				taxRelifFlagoptions: [],
-				taxpayerIdentifieroptions: [],
-				relifReasonoptions: [],
-				taxPaidAreaCodeShow: false, //完税凭证地区
-				taxDocumentDateShow: false, //完税凭证填发日期
-				taxRelifFlagShow: false, //车船税类型
-				taxpayerIdentifierShow: false, //纳税人证件类型
-				relifReasonShow: false, //减免税原因代码
-				params: {
-					year: true, //年
-					month: true, //月
-					day: true, //日
-					hour: true, //时
-					minute: true, //分
-					second: true, //秒
-				},
-				jqimmediately: "0",
-				jqimmediatelyList: [{
-						label: '是',
-						value: "1",
-					},
-					{
-						label: '否',
-						value: "0",
-					},
-
-				],
-				syimmediately: "0",
-				syimmediatelyList: [{
-						label: '是',
-						value: "1",
-					},
-					{
-						label: '否',
-						value: "0",
-					},
-				],
-				jqchecked: false,
-				sychecked: false,
-				jqstartShow: false,
-				jqendShow: false,
-				systartShow: false,
-				syendShow: false,
-
-				jqstartDate: "",
-				jqendDate: "",
-				systartDate: "",
-				syendDate: "",
-				scrollTop: 0,
-				carInfo: {},
-				ownerInfo: {},
-				policyHolderInfo: {},
-				insuredPersonInfo: {},
-				carInfoPositiveList: [],
-				ownerInfoPositiveList: [],
-				policyHolderInfoPositiveList: [],
-				insuredPersonInfoPositiveList: [],
-				transferDateShow: false,
-				params1: {
-					year: true, //年
-					month: true, //月
-					day: true, //日
-					hour: false, //时
-					minute: false, //分
-					second: false, //秒
-				},
-				params2: {
-					province: true,
-					city: false,
-					area: false
-				},
-				totalCompanyList: [],
-				animation: 'twinkle', //动画类型
-				InsureGuidePopup: false,
-				/* 投保指引弹窗*/
-				InsureGuideContent: "", // 指引内容
-				PlanPopup: false, //方案选择弹窗
-				SelectedPlanId: "", //已选方案id
-				InsurerPlanList: [{
-						label: "方案一",
-						value: "1",
-						PlanSet: []
-					},
-					{
-						label: "方案二",
-						value: "2",
-						PlanSet: []
-					},
-					{
-						label: "方案三",
-						value: "3",
-						PlanSet: []
-					},
-					{
-						label: "自选方案",
-						value: "4",
-						PlanSet: []
-					}
-				],
-
-
-			}
-		},
-		onShow() {
-
-		},
-		onLoad() {
-			this.getDicType("taxRelifFlag"); //车船税类型
-			this.getDicType("taxpayerIdentifier"); //纳税人证件类型
-			this.getDicType("relifReason"); //减免税原因代码
-			this.jqstartDate = this.nextday();
-			this.jqendDate = this.oneYearPast(this.jqstartDate);
-			this.systartDate = this.nextday();
-			this.syendDate = this.oneYearPast(this.jqstartDate);
-			this.commpanyList();
-			const eventChannel = this.getOpenerEventChannel()
-			// 监听acceptData事件,获取上一页面通过eventChannel传送到当前页面的数据
-			eventChannel.on('acceptData', async (data) => {
-				console.log(data);
-				this.carInfo = data.carInfo; //车辆信息
-				this.ownerInfo = data.ownerInfo; //车主信息
-				this.policyHolderInfo = data.policyHolderInfo; //投保人信息
-				this.insuredPersonInfo = data.insuredPersonInfo; //被保人信息
-				this.carInfoPositiveList = data.carInfoPositiveList; //车辆
-				this.ownerInfoPositiveList = data.ownerInfoPositiveList; //车主
-				this.policyHolderInfoPositiveList = data.policyHolderInfoPositiveList; //投保
-				this.insuredPersonInfoPositiveList = data.insuredPersonInfoPositiveList; //被保人
-			})
-
-		},
-		methods: {
-			taxRelifFlagConfirm(val, name) {
-				this.vehicleAndVesselTaxForm[name] = val[0].value;
-				this.model[name] = val[0].label;
-			},
-			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;
-			},
-			async getDicType(type) {
-				let res = await this.$http.get('/sysDict/dictDetails/' + type);
-				this[type + "options"] = res.data.ddList;
-			},
-			jqstartconfirm(e) {
-				this.jqstartDate = e.year + '-' + e.month + '-' + e.day + ' ' + e.hour + ':' + e.minute + ':' + e.second;
-				this.jqendDate = this.oneYearPast(this.jqstartDate)
-			},
-			jqendconfirm(e) {
-				this.jqendDate = e.year + '-' + e.month + '-' + e.day + ' ' + e.hour + ':' + e.minute + ':' + e.second;
-			},
-			systartconfirm(e) {
-				this.systartDate = e.year + '-' + e.month + '-' + e.day + ' ' + e.hour + ':' + e.minute + ':' + e.second;
-				this.syendDate = this.oneYearPast(this.systartDate)
-			},
-			syendconfirm(e) {
-				this.syendDate = e.year + '-' + e.month + '-' + e.day + ' ' + e.hour + ':' + e.minute + ':' + e.second;
-			},
-			statusclick(e) {
-				this.SelectedPlanId = e;
-			},
-			InsureGuideclick() {
-				this.InsureGuidePopup = true;
-			},
-			SchemeSelection() {
-				this.PlanPopup = true;
-			},
-
-			datelyClick(value, name, startDate, endDate) {
-				this[name] = value;
-				if (value == 1) {
-					const date = new Date();
-					date.setHours(date.getHours() + 2);
-					date.setMinutes(0)
-					date.setSeconds(0)
-					this[startDate] = this.transformTime(date)
-					this[endDate] = this.oneYearPast(date);
-				} else {
-					this[startDate] = this.nextday();
-					this[endDate] = this.oneYearPast(this.jqstartDate);
-				}
-			},
-			//获取保险公司列表
-			async commpanyList() {
-				let commpanykad = await this.$http.get('/tax/manager/getAllAgreement', {
-					// kindList: this.kindList,
-					// riskList: this.riskList,
-					// systemType: "2",
-				});
-				commpanykad.data.map(ele => {
-					ele["result"] = {};
-					ele["quoteCode"] = 0;
-					ele["checked"] = false;
-					ele["msg"] = "";
-					ele["lastYearMsg"] = "";
-					ele["agreementName"] = "";
-					ele["apiType"] = "";
-					ele["coefficient"] = "";
-					ele["syAdjustRate"] = "";
-					ele["selectShow"] = false;
-					ele['underwritingDescription'] = "";
-					ele['isComparableShow'] = false;
-					ele['planDetailsshow'] = false;
-					ele['isComparableshowHide'] = false;
-					ele['isComparableDisabled'] = false;
-				})
-				commpanykad.data.map(obj => {
-					obj.agreement.map(ele => {
-						ele.businessDescription = ele.businessDescription + "(" +
-							ele.jobDescription + ")";
-						return ele;
-					})
-				});
-				this.totalCompanyList = commpanykad.data;
-			},
-			immediatelyClick(name) {
-				this.carInfo[name] = !this.carInfo[name];
-				if (name == 'transferFlag') {
-					if (this.carInfo[name]) {
-						this.carInfo.transferDate = this.carInfo.issueDate;
-					} else {
-						this.carInfo.transferDate = "";
-					}
-				}
-
-			},
-			toCarInfo() {
-				this.navigate({
-					url: '/pages/carInsure/Information',
-					success: (res) => {
-						res.eventChannel.emit(
-							"acceptData", {
-								carInfo: this
-									.carInfo,
-								ownerInfo: this
-									.ownerInfo,
-								policyHolderInfo: this
-									.policyHolderInfo,
-								insuredPersonInfo: this
-									.insuredPersonInfo,
-								riskList: this
-									.riskList,
-								kindList: this
-									.kindList,
-								carInfoPositiveList: this
-									.carInfoPositiveList, //车辆
-								ownerInfoPositiveList: this
-									.ownerInfoPositiveList, //车主
-								policyHolderInfoPositiveList: this
-									.policyHolderInfoPositiveList, //投保
-								insuredPersonInfoPositiveList: this
-									.insuredPersonInfoPositiveList, //被保人
-
-							})
-					}
-				}, "navigateTo", true);
-			},
-			//计算输入时间一年后的的前一天(输入的参数为字符串("2019-03-02")最终输出也为日期的字符串)
-			oneYearPast(time) {
-				var date = new Date(time);
-				date.setSeconds(date.getSeconds() - 1);
-				date.setFullYear(date.getFullYear() + 1); //一年后
-				date.setTime(date.getTime()); //一年后的前一天
-				var strYear = date.getFullYear();
-				var strDay = date.getDate();
-				var strMonth = date.getMonth() + 1;
-				var hh = date.getHours();
-				var minutes = date.getMinutes(); // 分
-				var Seconds = date.getSeconds();
-				if (hh < 10) {
-					hh = "0" + hh;
-				}
-				if (minutes < 10) {
-					minutes = "0" + minutes;
-				}
-				if (Seconds < 10) {
-					Seconds = "0" + Seconds;
-				}
-				if (strMonth < 10) {
-					strMonth = "0" + strMonth;
-				}
-				if (strDay < 10) {
-					strDay = "0" + strDay;
-				}
-				var datastr =
-					strYear + "-" + strMonth + "-" + strDay + " " + hh + ":" + minutes + ":" + Seconds;
-				return datastr;
-			},
-			//次日
-			nextday() {
-				var date = new Date();
-				date.setFullYear(date.getFullYear());
-				date.setTime(date.getTime() + 24 * 60 * 60 * 1000);
-				var strYear = date.getFullYear();
-				var strDay = date.getDate();
-				var strMonth = date.getMonth() + 1;
-				var hh = date.getHours();
-				if (hh < 10) {
-					hh = "0" + hh;
-				}
-				if (strMonth < 10) {
-					strMonth = "0" + strMonth;
-				}
-				if (strDay < 10) {
-					strDay = "0" + strDay;
-				}
-				var datastr = strYear + "-" + strMonth + "-" + strDay + " " + "00:00:00";
-				return datastr;
-			},
-			//时间转换
-			transformTime(date) {
-				var d = new Date(date);
-				var strYear = d.getFullYear();
-				var strMonth = d.getMonth() + 1;
-				var strDay = d.getDate();
-				var hh = d.getHours();
-				var minutes = d.getMinutes(); // 分
-				var Seconds = d.getSeconds();
-				if (hh < 10) {
-					hh = "0" + hh;
-				}
-				if (minutes < 10) {
-					minutes = "0" + minutes;
-				}
-				if (Seconds < 10) {
-					Seconds = "0" + Seconds;
-				}
-				if (strMonth < 10) {
-					strMonth = "0" + strMonth;
-				}
-				if (strDay < 10) {
-					strDay = "0" + strDay;
-				}
-				var datetime =
-					strYear + "-" + strMonth + "-" + strDay + " " + hh + ":" + minutes + ":" + Seconds;
-				return datetime;
-			},
-			toChinesNum(num) {
-				let overWan = Math.floor(num / 10000);
-				let result = overWan + "万";
-				return result;
-			},
-		}
-	}
-</script>
-
-<style lang="scss" scoped>
-	@import '@/style/mixin.scss';
-
-	.page {
-		background: #F8FAFE;
-		padding: 16px 16px 100px 16px;
-	}
-
-	.scroll-Y {
-		height: 600px;
-	}
-
-	.scroll-view-item {
-		height: 300rpx;
-		line-height: 300rpx;
-		text-align: center;
-		font-size: 36rpx;
-	}
-
-	.modelformcss {
-		padding: 5px 15px;
-	}
-
-	.PlanPopup-btn {
-		width: 100%;
-		height: 48px;
-		background: #FFFFFF;
-		box-shadow: 0px -2px 4px 0px rgba(0, 0, 0, 0.05);
-	}
-
-	.Plancontent {
-		padding: 8px;
-
-		.title {
-			color: #232832;
-			font-size: 15px;
-			font-weight: bold;
-
-			::before {
-				content: "丨";
-				width: 10px;
-				height: 10px;
-				color: #0052FF;
-			}
-		}
-
-		.Accident {
-			width: 100%;
-			border: 1px solid #0874FF;
-			border-radius: 6px;
-			overflow: hidden;
-
-			.head {
-				width: 33.33%;
-				height: 40px;
-				background-color: #0874FF;
-				color: #FFFFFF;
-
-				&:nth-child(1) {
-					width: 50%;
-				}
-			}
-
-			.tr {
-				width: 33.33%;
-				height: 40px;
-				color: #232832;
-				border: 1rpx solid #0874FF;
-			}
-
-		}
-
-	}
-
-	.quotePlan {
-		background: #FFFFFF;
-		box-shadow: 0px 4px 10px 0px #DAE3F4;
-		border-radius: 6px;
-	}
-
-	.status-data {
-		width: auto;
-		padding: 2px 8px;
-		margin-left: 5px;
-		font-size: 12px;
-		border: 1px solid #CDCDCD;
-		cursor: pointer;
-		text-align: center;
-		line-height: 25px;
-	}
-
-	.active {
-		position: relative;
-		background: rgba(0, 82, 255, 0.1);
-		color: #0052FF;
-		border: 1px solid #0052FF;
-		font-weight: 700;
-	}
-
-	.active::before {
-		content: "";
-		position: absolute;
-		top: 0;
-		left: 0;
-		width: 10px;
-		height: 10px;
-		background-image: url("/static/image/car-insure/before.png");
-		background-size: cover;
-	}
-
-	.active1 {
-		position: relative;
-		background: rgba(255, 86, 0, 0.1);
-		color: #FF5600;
-		border: 1px solid #FF5600;
-		font-weight: 700;
-	}
-
-	.active1::before {
-		content: "";
-		position: absolute;
-		top: 0;
-		left: 0;
-		width: 10px;
-		height: 10px;
-		background-image: url("/static/image/car-insure/before1.png");
-		background-size: cover;
-	}
-
-	.car-header {
-		width: 100%;
-		height: auto;
-		background: linear-gradient(0, #FFFFFF 0%, rgba(241, 246, 255, 0.8) 100%);
-		box-shadow: 0px 4px 10px 0px rgba(158, 173, 229, 0.1);
-		border-radius: 6px;
-		padding: 8px 15px;
-		position: relative;
-
-		.head-name {
-			margin-left: 20px;
-
-			&>text {
-				font-weight: bold;
-				font-size: 15px;
-				color: #232832;
-			}
-
-			.name1 text {
-				font-size: 14px;
-				font-weight: bold;
-				color: #333333;
-			}
-		}
-
-		.carJump {
-			position: absolute;
-			top: 5px;
-			right: 10px;
-			font-size: 14px;
-			color: #0052FF;
-		}
-	}
-
-	/* 报价公司Start */
-	.quoteCompany {
-		box-sizing: border-box;
-		/* background:#FFFFFF; */
-		position: relative;
-		border-radius: 20upx;
-	}
-
-	.quoteCompany .header {
-		height: 80upx;
-	}
-
-	.quoteCompany .header .title {
-		font-size: 30upx;
-		font-weight: bold;
-	}
-
-	.quoteCompany .header .title .icon {
-		color: rgba($themeColor, 0.6);
-		margin-left: 15upx;
-	}
-
-	.quoteCompanyItem {
-		margin-bottom: 20upx;
-		background: #FFFFFF;
-		border-radius: 6px;
-		box-shadow: 0px 4px 10px 0px #DAE3F4;
-		box-sizing: border-box;
-		cursor: pointer;
-	}
-
-
-	.quoteCompanyItem .top {
-		position: relative;
-		padding: 8px;
-	}
-
-	.quoteCompanyItem .top .companyIcon {
-		border-radius: 6px 6px 0 0;
-		flex-shrink: 0;
-	}
-
-	.insuranceGuide {
-		background: rgba(255, 86, 0, 0.05);
-		border-radius: 4px 4px 4px 4px;
-		font-weight: bold;
-		font-size: 14px;
-		color: #FF5600;
-		padding: 0 4px;
-	}
-
-	.planDetails {
-		width: 100%;
-		height: auto;
-		background: #F9F9F9;
-		border-radius: 6px;
-		padding: 6px;
-
-		.headers {
-			>image {
-				width: 14px;
-				height: 14px;
-			}
-
-			>text {
-				font-size: 12px;
-				color: #4B6FBA;
-				margin-left: 10px;
-			}
-		}
-
-	}
-
-	.content {
-		padding: 0 8px;
-		margin-bottom: 5px;
-	}
-
-	.quoteCompanyItem .top .companyIcon image {
-		width: 20px;
-		height: 20px;
-		margin-right: 10px;
-	}
-
-	.quoteCompanyItem .top .Premium {
-		padding: 10px 8px;
-		border-top: 1px solid #f2f2f2;
-
-		.price {
-			font-size: 12px;
-			color: #FF5600;
-
-			text {
-				margin-right: 5px;
-			}
-		}
-
-		.time {
-			font-size: 12px;
-			color: #2D4D89;
-
-			>text {
-				margin-right: 5px;
-			}
-
-		}
-	}
-
-	.quoteCompanyItem .top .quotebtn {
-		width: 100%;
-		height: auto;
-
-		>view {
-			width: 50%;
-			font-size: 14px;
-			padding: 4px 0;
-
-		}
-	}
-
-	.lastyear {
-		view {
-			font-size: 12px;
-			font-weight: bold;
-
-			image {
-				width: 14px;
-				height: 14px;
-			}
-		}
-
-		.left {
-			border: 1px solid #229805;
-			border-radius: 2px 2px 2px 2px;
-			padding: 1px 6px;
-			color: #229805;
-		}
-
-		.right {
-			border-radius: 2px 2px 2px 2px;
-			padding: 1px 6px;
-			border: 1px solid #FF5600;
-			margin-left: 10px;
-			color: #FF5600;
-		}
-	}
-
-	.quoteCompanyItem .top .companyName {
-		font-size: 14px;
-		font-weight: bold;
-		color: #232832;
-	}
-
-	.quoteCompanyItem .top .totalMoney {
-		font-size: 40upx;
-		font-weight: bold;
-		color: $themeColor;
-		position: absolute;
-		top: -15upx;
-		right: 0;
-	}
-
-	.quoteCompanyItem .top .tip {
-		font-size: 26upx;
-		font-weight: bold;
-		color: #999;
-		position: absolute;
-		top: 0upx;
-		right: 0;
-	}
-
-	.sum {
-		color: #0052FF;
-		font-size: 14px;
-		font-weight: bold;
-	}
-
-	.quoteCompanyItem .top .signs {
-		width: 500upx;
-		overflow: hidden;
-		text-overflow: ellipsis;
-		white-space: nowrap;
-	}
-
-	.quoteCompanyItem .top .sign {
-		height: 40upx;
-		margin: 0upx 10upx;
-		background: rgba($themeColor, 0.6);
-		color: $themeColor;
-		font-size: 20upx;
-		margin-right: 10upx;
-		border-radius: 6upx;
-		padding: 0 2px;
-		line-height: 40upx;
-	}
-
-	.jqsign {
-		height: 20px;
-		background: rgba(255, 177, 177, 0.55);
-		color: #fd0a0a;
-		font-size: 20upx;
-		border-radius: 6upx;
-		padding: 0 10px;
-		box-sizing: border-box;
-	}
-
-	.quoteCompanyItem .body {
-		padding: 20upx 0;
-		flex-wrap: wrap;
-	}
-
-	.quoteCompanyItem .body>view {
-		flex-shrink: 0;
-		width: 50%;
-		overflow: hidden;
-		text-overflow: ellipsis;
-		white-space: nowrap;
-	}
-
-	.quoteCompanyItem .body .icon-exchange {
-		margin-right: 15upx;
-		display: inline-block;
-	}
-
-	/* 报价公司End */
-</style>

+ 0 - 3208
pages/carInsure/quoteDetail.vue

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

+ 865 - 99
pages/index/index.vue

@@ -2,7 +2,7 @@
 	<view>
 		<public-module></public-module>
 		<view class="headers dis a-c j-c" :style="headerStyle">
-			<text>掌柜合伙人</text>
+			<text>{{userInfo.sysUser.userName}}</text>
 			<view class="right dis a-c">
 				<image src="/static/home/customerService.png" mode=""></image>
 				<text>客服</text>
@@ -11,9 +11,11 @@
 		<view class="homeBackground"></view>
 		<view class="" style="padding: 0 30rpx;">
 			<view class="dailyData-block">
-				<view class="title ">
-					<text>今日状况</text>
-					<image src="/static/home/icon1.png" class="image1" mode=""></image>
+				<view class="title " @click="searchPopup">
+					<view class="search">
+						<text>{{ startTime && endTime ? startTime + '-' + endTime : '时间筛选' }}</text>
+						<i></i>
+					</view>
 					<image src="/static/home/icon3.png" class="image3" mode=""></image>
 				</view>
 				<image src="/static/home/icon2.png" class="image2" mode=""></image>
@@ -36,142 +38,399 @@
 					</view>
 				</view>
 			</view>
+			<!-- 我的收益 -->
+			<view class="earnings dis a-c j-s mt-2" @click="myEarnings">
+				<view class="dis a-c ">
+					<image src="/static/home/wallet.png" mode=""></image>
+					<image class="incomeText ml-1" src="/static/home/incomeText.png" mode=""></image>
+					<image class="income" src="/static/home/income.png" mode=""></image>
+				</view>
+				<view class="btn">
+					去查看
+				</view>
+			</view>
 			<view class="statistics">
-				<u-tabs :list="teamOverview" :is-scroll="true" name="gradeName" active-color="#333"
+				<uni-tabs :list="teamOverview" :is-scroll="true" name="gradeName" active-color="#333"
 					inactive-color="#999" :current="current" @change="change"
-					style="background: transparent;border-bottom: 1rpx solid #EEEEEE;"></u-tabs>
+					style="background: transparent;border-bottom: 1rpx solid #EEEEEE;"></uni-tabs>
 				<view class="count">
 					<template v-if="teamOverviewInfo.grade==1">
 						<image src="/static/home/icon4.png" class="mb-2" mode=""
 							@click="invitationCode(teamOverviewInfo.grade)">
 						</image>
-						<view class="data dis f-wrap j-s mb-3">
+						<view class="data dis f-wrap j-s ">
 							<view class="dis f-c a-c view" style="border-right: 1rpx solid #EEEEEE;"
 								@click="closePartner">
-								<text>{{teamOverviewInfo.vo1.v1}}</text>
+								<text>{{teamOverviewInfo.vo1.v1 || 0}}</text>
 								<text>我的管理人</text>
 							</view>
 							<view class="dis f-c a-c view">
-								<text>{{teamOverviewInfo.vo1.v2}}</text>
+								<text>{{teamOverviewInfo.vo1.v2 || 0}}</text>
 								<text>管理人的合伙人</text>
 							</view>
 							<view class="dis f-c a-c view" style="border-right: 1rpx solid #EEEEEE;"
 								@click="todayclosePartner">
-								<text>{{teamOverviewInfo.vo1.v3}}</text>
+								<text>{{teamOverviewInfo.vo1.v3 || 0}}</text>
 								<text>我今日新增管理人</text>
 							</view>
 							<view class="dis f-c a-c view">
-								<text>{{teamOverviewInfo.vo1.v4}}</text>
+								<text>{{teamOverviewInfo.vo1.v4 || 0}}</text>
 								<text>今日管理人邀请的合伙人</text>
 							</view>
 						</view>
+						<view class="data dis f-wrap j-s  mt-2">
+							<view class="dis f-c a-c view" style="border-right: 1rpx solid #EEEEEE;">
+								<text>{{userWalletInfo.sumPremium || 0}}</text>
+								<text>保费</text>
+							</view>
+							<view class="dis f-c a-c view">
+								<text>{{userWalletInfo.extractFee || 0}}</text>
+								<text>佣金</text>
+							</view>
+							<view class="dis f-c a-c view" style="border-right: 1rpx solid #EEEEEE;">
+								<text>{{userWalletInfo.historyFee || 0}}</text>
+								<text>佣金已转入</text>
+							</view>
+							<view class="dis f-c a-c view">
+								<text>{{userWalletInfo.cashFee || 0}}</text>
+								<text>佣金未转入</text>
+								<view class="commissionIn" @click="roleCommInShow=true">
+									<text>转入</text>
+									<u-icon name="arrow-rightward" color="#2D6DFF" size="20"></u-icon>
+								</view>
+							</view>
+						</view>
 					</template>
 					<template v-if="teamOverviewInfo.grade==2 ">
 						<image src="/static/home/icon5.png" class="mb-2" mode=""
 							@click="invitationCode(teamOverviewInfo.grade)">
 						</image>
-						<view class="data dis f-wrap j-s mb-3">
+						<view class="data dis f-wrap j-s ">
+							<!-- 权限锁定组件 -->
+							<!-- <uni-permission-view v-if="teamOverviewInfo.parentStatus=='2'"
+								:genericText="teamOverviewInfo.lockCommission?`解锁“${gradeText}”,立即到账<text style='color:#F74141;font-weight: bold;'>${teamOverviewInfo.lockCommission}</text>元`:`完成任务,解锁“${gradeText}”,佣金即可提现到账`"
+								cornerRadius="8rpx" :imageStyle="{width:'109rpx',height:'107rpx'}"
+								@requestUnlock="requestUnlock">
+							</uni-permission-view> -->
+							<!-- 权限锁定组件 -->
 							<view class="dis f-c a-c view" style="border-right: 1rpx solid #EEEEEE;"
 								@click="closePartner">
-								<text>{{teamOverviewInfo.vo2.v1}}</text>
+								<text>{{teamOverviewInfo.vo2.v1 || 0}}</text>
 								<text>我的合伙人</text>
 							</view>
 							<view class="dis f-c a-c view">
-								<text>{{teamOverviewInfo.vo2.v2}}</text>
+								<text>{{teamOverviewInfo.vo2.v2 || 0}}</text>
 								<text>合伙人的工作室</text>
 							</view>
 							<view class="dis f-c a-c view" style="border-right: 1rpx solid #EEEEEE;"
 								@click="todayclosePartner">
-								<text>{{teamOverviewInfo.vo2.v3}}</text>
+								<text>{{teamOverviewInfo.vo2.v3 || 0}}</text>
 								<text>我今日新增合伙人</text>
 							</view>
 							<view class="dis f-c a-c view">
-								<text>{{teamOverviewInfo.vo2.v4}}</text>
+								<text>{{teamOverviewInfo.vo2.v4 || 0}}</text>
 								<text>今日合伙人邀请的工作室</text>
 							</view>
 							<view class="dis f-c a-c view" style="border-right: 1rpx solid #EEEEEE;">
-								<text>{{teamOverviewInfo.vo2.v5}}</text>
+								<text>{{teamOverviewInfo.vo2.v5 || 0}}</text>
 								<text>今日保费</text>
 							</view>
 							<view class="dis f-c a-c view">
-								<text>{{teamOverviewInfo.vo2.v6}}</text>
+								<text>{{teamOverviewInfo.vo2.v6 || 0}}</text>
 								<text>今日佣金</text>
 							</view>
 						</view>
+						<view class="data dis f-wrap j-s mt-2">
+							<view class="dis f-c a-c view" style="border-right: 1rpx solid #EEEEEE;">
+								<text>{{userWalletInfo.sumPremium ||0 }}</text>
+								<text>保费</text>
+							</view>
+							<view class="dis f-c a-c view">
+								<text>{{userWalletInfo.extractFee ||0}}</text>
+								<text>佣金</text>
+							</view>
+							<view class="dis f-c a-c view" style="border-right: 1rpx solid #EEEEEE;">
+								<text>{{userWalletInfo.historyFee ||0 }}</text>
+								<text>佣金已转入</text>
+							</view>
+							<view class="dis f-c a-c view">
+								<text>{{userWalletInfo.expired||0 }}</text>
+								<text>佣金已过期</text>
+							</view>
+							<view class="dis f-c a-c view" style="border-right: 1rpx solid #EEEEEE;">
+								<text>{{userWalletInfo.cashFee ||0 }}</text>
+								<text>佣金未转入</text>
+								<view class="commissionIn " @click="roleCommInShow=true">
+									<text>转入</text>
+									<u-icon name="arrow-rightward" color="#2D6DFF" size="20"></u-icon>
+								</view>
+							</view>
+							<view class="dis f-c a-c view">
+								<text
+									:style="{color:userWalletInfo.freeze>0?'#999':'#333'}">{{userWalletInfo.freeze ||0}}</text>
+								<text>佣金已冻结</text>
+								<image v-if="userWalletInfo.freeze>0" class="frozen" src="/static/home/frozen.png"
+									mode="">
+								</image>
+							</view>
+						</view>
 					</template>
 					<template v-if="teamOverviewInfo.grade==3 ">
 						<image src="/static/home/icon6.png" class="mb-2" mode=""
 							@click="invitationCode(teamOverviewInfo.grade)">
 						</image>
-						<view class="data dis f-wrap j-s mb-3">
+						<view class="data dis f-wrap j-s ">
+							<!-- 权限锁定组件 -->
+							<!-- <uni-permission-view v-if="teamOverviewInfo.parentStatus=='2'"
+								:genericText="teamOverviewInfo.lockCommission?`解锁“${gradeText}”,立即到账<text style='color:#F74141;font-weight: bold;'>${teamOverviewInfo.lockCommission}</text>元`:`完成任务,解锁“${gradeText}”,佣金即可提现到账`"
+								cornerRadius="8rpx" :imageStyle="{width:'109rpx',height:'107rpx'}"
+								@requestUnlock="requestUnlock"
+								:btnText="teamOverviewInfo.upgradeStatus==2?'申请中':'立即解锁'">
+							</uni-permission-view> -->
+							<!-- 权限锁定组件 -->
 							<view class="dis f-c a-c view" style="border-right: 1rpx solid #EEEEEE;"
 								@click="closePartner">
-								<text>{{teamOverviewInfo.vo3.v1}}</text>
+								<text>{{teamOverviewInfo.vo3.v1 || 0}}</text>
 								<text>我的工作室</text>
 							</view>
 							<view class="dis f-c a-c view">
-								<text>{{teamOverviewInfo.vo3.v2}}</text>
+								<text>{{teamOverviewInfo.vo3.v2 || 0}}</text>
 								<text>工作室下的业务团队</text>
 							</view>
 							<view class="dis f-c a-c view" style="border-right: 1rpx solid #EEEEEE;"
 								@click="todayclosePartner">
-								<text>{{teamOverviewInfo.vo3.v3}}</text>
+								<text>{{teamOverviewInfo.vo3.v3 || 0}}</text>
 								<text>我今日新增工作室</text>
 							</view>
 							<view class="dis f-c a-c view">
-								<text>{{teamOverviewInfo.vo3.v4}}</text>
+								<text>{{teamOverviewInfo.vo3.v4 || 0}}</text>
 								<text>今日工作室邀请的团队</text>
 							</view>
 							<view class="dis f-c a-c view" style="border-right: 1rpx solid #EEEEEE;">
-								<text>{{teamOverviewInfo.vo3.v5}}</text>
+								<text>{{teamOverviewInfo.vo3.v5 || 0}}</text>
 								<text>今日保费</text>
 							</view>
 							<view class="dis f-c a-c view">
-								<text>{{teamOverviewInfo.vo3.v6}}</text>
+								<text>{{teamOverviewInfo.vo3.v6 || 0}}</text>
 								<text>今日佣金</text>
 							</view>
 						</view>
+						<view class="data dis f-wrap j-s mt-2">
+							<view class="dis f-c a-c view" style="border-right: 1rpx solid #EEEEEE;">
+								<text>{{userWalletInfo.sumPremium ||0 }}</text>
+								<text>保费</text>
+							</view>
+							<view class="dis f-c a-c view">
+								<text>{{userWalletInfo.extractFee ||0}}</text>
+								<text>佣金</text>
+							</view>
+							<view class="dis f-c a-c view" style="border-right: 1rpx solid #EEEEEE;">
+								<text>{{userWalletInfo.historyFee ||0 }}</text>
+								<text>佣金已转入</text>
+							</view>
+							<view class="dis f-c a-c view">
+								<text>{{userWalletInfo.expired||0 }}</text>
+								<text>佣金已过期</text>
+							</view>
+							<view class="dis f-c a-c view" style="border-right: 1rpx solid #EEEEEE;">
+								<text>{{userWalletInfo.cashFee ||0 }}</text>
+								<text>佣金未转入</text>
+								<view class="commissionIn " @click="roleCommInShow=true">
+									<text>转入</text>
+									<u-icon name="arrow-rightward" color="#2D6DFF" size="20"></u-icon>
+								</view>
+							</view>
+							<view class="dis f-c a-c view">
+								<text
+									:style="{color:userWalletInfo.freeze>0?'#999':'#333'}">{{userWalletInfo.freeze ||0}}</text>
+								<text>佣金已冻结</text>
+								<image v-if="userWalletInfo.freeze>0" class="frozen" src="/static/home/frozen.png"
+									mode="">
+								</image>
+							</view>
+						</view>
 					</template>
 					<template v-if="teamOverviewInfo.grade==4 ">
 						<image src="/static/home/icon7.png" class="mb-2" mode=""
 							@click="invitationCode(teamOverviewInfo.grade)">
 						</image>
-						<view class="data dis f-wrap j-s mb-3">
+						<view class="data dis f-wrap j-s ">
+							<!-- 权限锁定组件 -->
+							<!-- <uni-permission-view v-if="teamOverviewInfo.parentStatus=='2'"
+								:genericText="teamOverviewInfo.lockCommission?`解锁“${gradeText}”,立即到账<text style='color:#F74141;font-weight: bold;'>${teamOverviewInfo.lockCommission}</text>元`:`完成任务,解锁“${gradeText}”,佣金即可提现到账`"
+								cornerRadius="8rpx" :imageStyle="{width:'109rpx',height:'107rpx'}"
+								@requestUnlock="requestUnlock">
+							</uni-permission-view> -->
+							<!-- 权限锁定组件 -->
 							<view class="dis f-c a-c view" style="border-right: 1rpx solid #EEEEEE;"
 								@click="closePartner">
-								<text>{{teamOverviewInfo.vo4.v1}}</text>
+								<text>{{teamOverviewInfo.vo4.v1 || 0}}</text>
 								<text>我的团队</text>
 							</view>
 							<view class="dis f-c a-c view">
-								<text>{{teamOverviewInfo.vo4.v2}}</text>
+								<text>{{teamOverviewInfo.vo4.v2 || 0}}</text>
 								<text>代理人人数</text>
 							</view>
 							<view class="dis f-c a-c view" style="border-right: 1rpx solid #EEEEEE;"
 								@click="todayclosePartner">
-								<text>{{teamOverviewInfo.vo4.v3}}</text>
+								<text>{{teamOverviewInfo.vo4.v3 || 0}}</text>
 								<text>我今日新增团队</text>
 							</view>
 							<view class="dis f-c a-c view">
-								<text>{{teamOverviewInfo.vo4.v4}}</text>
+								<text>{{teamOverviewInfo.vo4.v4 || 0}}</text>
 								<text>今日新增代理人</text>
 							</view>
 							<view class="dis f-c a-c view" style="border-right: 1rpx solid #EEEEEE;">
-								<text>{{teamOverviewInfo.vo4.v5}}</text>
+								<text>{{teamOverviewInfo.vo4.v5 || 0}}</text>
 								<text>今日保费</text>
 							</view>
 							<view class="dis f-c a-c view">
-								<text>{{teamOverviewInfo.vo4.v6}}</text>
+								<text>{{teamOverviewInfo.vo4.v6 || 0 }}</text>
 								<text>今日佣金</text>
 							</view>
 						</view>
+						<view class="data dis f-wrap j-s mt-2">
+							<view class="dis f-c a-c view" style="border-right: 1rpx solid #EEEEEE;">
+								<text>{{userWalletInfo.sumPremium ||0 }}</text>
+								<text>保费</text>
+							</view>
+							<view class="dis f-c a-c view">
+								<text>{{userWalletInfo.extractFee ||0}}</text>
+								<text>佣金</text>
+							</view>
+							<view class="dis f-c a-c view" style="border-right: 1rpx solid #EEEEEE;"
+								@click="incomingTransferLog">
+								<text>{{userWalletInfo.historyFee ||0 }}</text>
+								<text>佣金已转入</text>
+							</view>
+							<view class="dis f-c a-c view" @click="accountFreezeRecord">
+								<text>{{userWalletInfo.expired||0 }}</text>
+								<text>佣金已过期</text>
+							</view>
+							<view class="dis f-c a-c view" style="border-right: 1rpx solid #EEEEEE;">
+								<text>{{userWalletInfo.cashFee ||0 }}</text>
+								<text>佣金未转入</text>
+								<view class="commissionIn " @click="roleCommInShow=true">
+									<text>转入</text>
+									<u-icon name="arrow-rightward" color="#2D6DFF" size="20"></u-icon>
+								</view>
+							</view>
+							<view class="dis f-c a-c view" @click="accountFreezeRecord">
+								<text
+									:style="{color:userWalletInfo.freeze>0?'#999':'#333'}">{{userWalletInfo.freeze ||0}}</text>
+								<text>佣金已冻结</text>
+								<image v-if="userWalletInfo.freeze>0" class="frozen" src="/static/home/frozen.png"
+									mode="">
+								</image>
+							</view>
+						</view>
 					</template>
-					<view class="earnings dis a-c j-s " @click="myEarnings">
+				</view>
+			</view>
+		</view>
+		<!-- 购买等级 -->
+		<view class="purchaseLevels  dis a-c j-c " v-if="teamOverviewInfo.parentStatus == '2'">
+			<view class="purchaseLevel">
+				<!-- 头部 -->
+				<view class="header dis a-c j-c mb-2">
+					<!-- 星星装饰图 -->
+					<image class="star" src="/static/image/my/upgradeTask/star-left.png" mode=""></image>
+					<view class="title ">
+						<text>完成任务或直接联系客服购买该等级</text>
+						<view class="line"></view>
+					</view>
+					<image class="star" src="/static/image/my/upgradeTask/star-right.png" mode=""></image>
+				</view>
+				<!-- 内容 -->
+				<view class="dis a-c j-s">
+					<!-- 左侧红包样式 -->
+					<view class="redPacket">
+						<!-- 红包图片 -->
+						<image class="redPacket-img" src="/static/image/my/upgradeTask/redPacket.png" mode="">
+						</image>
+						<!-- 锁定样式 -->
+						<view class="lock">
+							<image class="lock-img" src="/static/image/my/upgradeTask/lock.png" mode=""></image>
+						</view>
+					</view>
+					<view class="redPacket-data dis f-c">
 						<view class="dis a-c ">
-							<image src="/static/home/wallet.png" mode=""></image>
-							<text>我的收益</text>
+							<text class="sum">¥{{teamOverviewInfo.lockCommission || 0 }}</text>
+							<text class="days">(已锁定 {{teamOverviewInfo.zeroDays || 0}}天清0)</text>
 						</view>
-						<u-icon name="arrow-right" size="30" color="rgba(35,40,50,0.5)"></u-icon>
+						<text class="ml-1" style="font-size: 26rpx;color: #999;">支付<text
+								style="color: #FFA008;">{{teamOverviewInfo.fallAmount}}</text>
+							元可解锁</text>
 					</view>
+					<view class="btn" @click="requestUnlock">去解锁</view>
+				</view>
+			</view>
+		</view>
+		<!-- 升级任务 -->
+		<view class="purchaseLevels  dis a-c j-c "
+			v-if="teamOverviewInfo.parentStatus == '1' && teamOverviewInfo.grade!=1">
+			<view class="purchaseLevel">
+				<!-- 头部 -->
+				<view class="header dis a-c j-c mb-1">
+					<!-- 星星装饰图 -->
+					<image class="star" src="/static/image/my/upgradeTask/star-left.png" mode=""></image>
+					<view class="title ">
+						<text>完成任务,解锁{{this.gradeText1(teamOverviewInfo.grade)}}权益</text>
+						<view class="line"></view>
+					</view>
+					<image class="star" src="/static/image/my/upgradeTask/star-right.png" mode=""></image>
+				</view>
+				<!-- 任务轮播 -->
+				<view class="taskCarousel">
+					<!-- 加载状态 -->
+					<view v-if="loading" class="loading">加载中...</view>
+					<swiper v-if="!loading && upgradeTaskdata.requirement.length > 0" :key="swiperKey" class="swiper "
+						circular :indicator-dots="true" :autoplay="true" :duration="300" indicator-color="#D9D9D9"
+						indicator-active-color="#2DD9FF" :circular="true">
+						<swiper-item v-for="(item,index) in upgradeTaskdata.requirement" :key="item.id">
+							<view class="taskitem dis a-c j-s">
+								<view class="task-icon">
+									<image :src="`/static/image/my/upgradeTask/icon${index+1}.png`" mode=""></image>
+								</view>
+								<view class="task-progress">
+									<!-- 任务标题 -->
+									<text class="title " v-if="upgradeTaskdata.grade=='2'">
+										{{ index==0 ? '邀请合伙人' :index==1? `${upgradeTaskdata.gradeName}下属成员出单保费`:'自己的出单保费' }}达{{item.min}}{{ index ? '元' : '人' }}
+									</text>
+									<text class="title " v-if="upgradeTaskdata.grade=='3'">
+										{{ index==0 ? '邀请工作室' :index==1? `${upgradeTaskdata.gradeName}下属成员出单保费`:'自己的出单保费' }}达{{item.min}}{{ index ? '元' : '人' }}
+									</text>
+									<text class="title " v-if="upgradeTaskdata.grade=='4'">
+										{{ index==0 ? '邀请团队长' :index==1? `${upgradeTaskdata.gradeName}下属成员出单保费`:'自己的出单保费' }}达{{item.min}}{{ index ? '元' : '人' }}
+									</text>
+									<text class="title " v-if="upgradeTaskdata.grade=='5'">
+										{{ index==0 ? '邀请团队长' :index==1? `${upgradeTaskdata.gradeName}下属成员出单保费`:'自己的出单保费' }}达{{item.min}}{{ index ? '元' : '人' }}
+									</text>
+									<view class=" dis a-c">
+										<!-- 进度条 -->
+										<view class="progressBar">
+											<view class="jindu"
+												:style="{width: `${ Number(item.achieve) / Number(item.min) * 100}%`}">
+											</view>
+										</view>
+										<!-- 进度条 -->
+										<view class="task-data dis a-c ml-1">
+											<text>{{item.achieve}}</text>
+											<text class="ml-1 mr-1">/</text>
+											<text>{{item.min}}</text>
+										</view>
+									</view>
+								</view>
+								<view :class="index==1?'task-btn1':'task-btn'"
+									v-if="Number(item.achieve)>=Number(item.min)">
+									已完成
+								</view>
+								<view :class="index==1?'task-btn1':'task-btn'" v-else @click="requestUnlock">
+									{{index==1?'未完成':'去完成'}}
+								</view>
+							</view>
+						</swiper-item>
+					</swiper>
 				</view>
 			</view>
 		</view>
@@ -200,13 +459,35 @@
 			cancel-text="重新选择" :cancel-style="{fontSize:'28rpx',color:'#007AFF'}" :confirm-style="{fontSize:'28rpx'}"
 			@confirm="promptshowconfirm">
 			<view class="p-2">
-				<text v-if="deptSource==1">您选择的 <text style="color: #007AFF;margin: 0 10rpx;">个代</text> 模式,业务员出单后,业务员的
-					<text> <strong>佣金都会归到自己账户内</strong> </text>。</text>
-				<text v-else>您选择的 <text style="color: #007AFF;">渠道</text> 模式,业务员出单后,业务员的
+				<text v-if="deptSource==1">您选择的 <text style="color: #007AFF;">渠道</text> 模式,业务员出单后,业务员的
 					<text> <strong>佣金都会归到团队长账户内由团队长进行分配</strong></text>。</text>
+				<text v-else>您选择的 <text style="color: #007AFF;margin: 0 10rpx;">个代</text> 模式,业务员出单后,业务员的
+					<text> <strong>佣金都会归到自己账户内</strong> </text>。</text>
+
 			</view>
 
 		</u-modal>
+		<!-- 佣金转入 -->
+		<u-popup v-model="roleCommInShow" mode="center" border-radius="10">
+			<view class=" roleCommInClass dis f-c a-c">
+				<text class="title font-weight mt-3">佣金转入钱包</text>
+				<view class="dis f-c p-3 content">
+					<text>您的每一个等级收益需要手动转入钱包中,才可以将收益提现</text>
+					<view class="mt-1 ">
+						<text>{{userWalletInfo.cashFee}}元</text>
+						<text class="ml-2" style="color: #2D6DFF;">全部转入</text>
+					</view>
+					<u-input v-model="amount" class="mt-1" type="digit" :border="true" placeholder="输入转入金额" focus />
+				</view>
+
+			</view>
+			<view class="roleCommInClass-footer dis a-c j-s ">
+				<view class="dis a-c j-c" @click="roleCommInShow=false">取消</view>
+				<view class="dis a-c j-c" @click="roleCommInconfirm">确认</view>
+			</view>
+		</u-popup>
+
+		<my-date-picker ref="datePicker" @confirmPickDate="confirmPickDate" />
 	</view>
 </template>
 <script>
@@ -217,38 +498,46 @@
 		mapMutations
 	} from "vuex"
 	import {
+		nextTick,
 		vShow
 	} from "vue"
 	export default {
 		computed: {
 			...mapState(['userInfo', "userCheckInfo"]),
+			gradeText() {
+				const gradeMap = {
+					1: '创始人',
+					2: '管理人',
+					3: '合伙人',
+					4: '工作室'
+				}
+				return gradeMap[this.teamOverviewInfo.grade] || ''
+			},
+			displayData() {
+				return this.upgradeTaskdata.requirement;
+			}
 		},
 		components: {
 			myDatePicker
 		},
 		data() {
 			return {
+				startTime: null,
+				endTime: null,
+				swiperKey: 0, // 用于强制更新 swiper
+				loading: true, // 加载状态
+				upgradeTaskdata: {}, //升级任务数据
+				amount: null, //转入佣金
+				roleCommInShow: false, //佣金转入弹窗
 				promptshow: false, //提示
 				personTypeshow: false, //业务类型弹窗
+				userWalletInfo: {}, //角色钱包数据
 				teamOverviewInfo: {}, //页面展示数据
 				todayOverview: {}, //今日数据
-				teamOverview: [{
-						name: '我是创始人'
-					}, {
-						name: '我是管理人'
-					},
-					{
-						name: '我是合伙人'
-					},
-					{
-						name: '我是工作室'
-					}
-				],
+				teamOverview: [],
 				current: 0,
 				showData: '全部数据',
-				ShowModalCode: false,
-				ShowModalCode1: false,
-				ShowModalCodebusiness: false,
+				ShowModalCodebusiness: false, //业务来源弹窗
 				teamImg: '',
 				workImg: '',
 				totalList: {},
@@ -277,28 +566,153 @@
 				grade: 0,
 			}
 		},
-		async onShow(e) {
+		onShow() {},
+		async onLoad() {
+
 			this.type = uni.getStorageSync('type')
-			this.showData = '全部数据',
-				this.getList()
+			this.showData = '全部数据';
+			await this.getList() //人员统计
+			this.getAmountList(this.userInfo.sysUser.grade); //角色佣金
+			if (this.userInfo.sysUser.grade > 1) this.getUpgradeTask(this.userInfo.sysUser.grade); //角色升级任务
 
-			// let res = await this.$http.post('/APPPartner/getHomePage', {
-			// 	type: uni.getStorageSync('type'),
-			// });
-			// if (res.code == '200') {
-			// 	this.totalList = res.data
-			// }
 
 		},
-
 		methods: {
+			incomingTransferLog() {
+				uni.navigateTo({
+					url: '/pages/institutional/incomingTransferLog'
+				})
+			},
+			accountFreezeRecord() {
+				uni.navigateTo({
+					url: '/pages/institutional/accountFreezeRecord'
+				})
+			},
+			//日期选择回调
+			confirmPickDate(startdate, enddate) {
+				console.log(startdate, enddate);
+				this.startTime = startdate;
+				this.endTime = enddate;
+				this.getList(startdate, enddate) //人员统计
+			},
+			//激活时间选择组件
+			searchPopup() {
+				this.$refs.datePicker.open()
+			},
+			//获取上级角色名称
+			gradeText1(grade) {
+				const gradeMap = {
+					1: '创始人',
+					2: '管理人',
+					3: '合伙人',
+					4: '工作室'
+				}
+				return gradeMap[Number(grade) - 1] || ''
+			},
+			//获取升级任务
+			async getUpgradeTask(grade) {
+				this.loading = true; // 开始加载
+				try {
+					let res = await this.$http.get('/partner/queryDowngradeTask?grade=' + grade); //升级任务
+					if (res.code == 200) {
+						this.upgradeTaskdata = res.data;
+					} else {
+						this.upgradeTaskdata = {}
+					}
+				} catch (error) {
+					console.error("数据加载失败:", error);
+				} finally {
+					this.loading = false; // 加载完成
+					this.swiperKey += 1; // 更新 swiperKey 以强制重新渲染
+				}
+
+			},
+
+			//角色佣金转入
+			async roleCommInconfirm() {
+				if (Number(this.amount) > this.userWalletInfo.cashFee) {
+					return uni.showToast({
+						title: '转入金额不能大于可转入金额',
+						icon: 'none',
+					});
+				}
+				if (Number(this.amount) <= 0) {
+					return uni.showToast({
+						title: '转入金额不能为0',
+						icon: 'none',
+					});
+				}
+				let res = await this.$http.post('/partnerExtractHistory/extractRecords', {
+					grade: this.userWalletInfo.grade,
+					amount: this.amount,
+				});
+				if (res.code == 200) {
+					this.roleCommInShow = true;
+				} else {
+					uni.showToast({
+						title: res.msg,
+						icon: 'none',
+					});
+				}
+
+			},
+			//锁定视图点击事件
+			async requestUnlock() {
+				if (this.teamOverviewInfo.parentStatus == '2' && this.teamOverviewInfo.unlockedStatus) {
+					switch (this.teamOverviewInfo.upgradeStatus) {
+						case 0:
+							let params = {
+								grade: Number(this.teamOverviewInfo.grade),
+								lockingState: this.teamOverviewInfo.parentStatus,
+								lockCommission: this.teamOverviewInfo.lockCommission,
+								zeroDays: this.teamOverviewInfo.zeroDays,
+								fallAmount: this.teamOverviewInfo.fallAmount,
+							}
+							uni.navigateTo({
+								url: "/pages/my/upgradeTask?info=" + JSON.stringify(params),
+							})
+							break;
+						case 1:
+							let res = await this.$http.post('/partner/submitLiftingRecord', {
+								grade: this.teamOverviewInfo.grade,
+								upgradeType: '1'
+							});
+							if (res.code == '200') {
+								uni.showToast({
+									title: res.msg,
+									icon: 'none',
+								});
+								this.getList()
+							} else {
+								uni.showToast({
+									title: res.msg,
+									icon: 'none',
+								});
+							}
+							break;
+						case 2:
+							uni.showToast({
+								title: '申请中',
+								icon: 'none',
+							});
+							break;
+						default:
+					}
+				} else {
+					uni.showToast({
+						title: '先解锁上一级',
+						icon: 'none',
+					});
+				}
+			},
 			//业务来源确定事件
 			promptshowconfirm() {
 				this.promptshow = false;
 				this.ShowModalCodebusiness = false;
 				uni.navigateTo({
 					url: "/pages/institutional/invitationCode?grade=" + this.grade + "&deptSource=" + this
-						.deptSource + '&userId=' + this.userInfo.sysUser.userId,
+						.deptSource + '&userId=' + this.userInfo.sysUser.userId + "&info=" + JSON.stringify(this
+							.teamOverviewInfo),
 				})
 				// uni.navigateTo({
 				// 	url: "/pages/index/applypartner?grade=" + this.grade + "&deptSource=" + this
@@ -315,27 +729,53 @@
 			},
 			//标签切换
 			change(index) {
+				console.log(this.teamOverview[index]);
 				const info = this.teamOverview[index];
+				console.log(info);
 				this.teamOverviewInfo = info;
 				this.current = index;
+				this.getAmountList(info.grade)
+				this.getUpgradeTask(info.grade); //角色升级任务
 			},
-			async getList(beginTime, endTime) {
+			//获取人员数据
+			async getList(startTime, endTime) {
 				let params = {
 					type: this.type,
-					"endTime": endTime || '',
-					"beginTime": beginTime || '',
+					"startTime": startTime + '00:00:00' || '',
+					"endTime": endTime + '23:59:59' || '',
 				}
 				let res = await this.$http.post('/newAppPartner/getHomePage', params); //统计数据
 				if (res.code == '200') {
 					this.todayOverview = res.data.todayOverview; //今日数据
-					this.teamOverview = res.data.teamOverview; //选项卡
-					this.teamOverview.map(val => {
-						val.gradeName = "我是" + val.gradeName;
+					res.data.teamOverview.map(val => {
+						val.gradeName = '我是' + val.gradeName;
+						return val;
+					})
+					res.data.teamOverview.map(val => {
+						if (val.parentStatus == '2') {
+							val.imageSel = '/static/home/imageSel.png'
+							val.imageUnSel = '/static/home/imageUnSel.png'
+						}
 						return val;
 					})
+					this.teamOverview = res.data.teamOverview; //选项卡
+					console.log(this.teamOverview);
+					this.current = 0;
 					this.teamOverviewInfo = res.data.teamOverview[0]; //页面赋值第一条数据
 				}
 			},
+			//钱包
+			async getAmountList(grade) {
+				let params = {
+					grade: grade,
+					"startTime": '',
+					"endTime": '',
+				}
+				let res = await this.$http.post('/newAppPartner/getHomeWallet', params); //佣金
+				if (res.code == '200') {
+					this.userWalletInfo = res.data;
+				}
+			},
 			//业务来源确定
 			ShowModalCodeSumbit() {
 				this.promptshow = true;
@@ -357,7 +797,7 @@
 			//我的收益
 			myEarnings() {
 				uni.navigateTo({
-					url: "/pages/institutional/myEarnings"
+					url: "/pages/institutional/myEarnings?info=" + JSON.stringify(this.teamOverviewInfo),
 				})
 			},
 			//邀请码
@@ -367,12 +807,18 @@
 					this.ShowModalCodebusiness = true;
 				} else {
 					uni.navigateTo({
-						url: "/pages/institutional/invitationCode?grade=" + value,
+						url: "/pages/institutional/invitationCode?grade=" + value + "&info=" + JSON.stringify({
+							...this
+							.teamOverviewInfo,
+							lockingState: this.teamOverviewInfo.parentStatus
+						}),
 					})
+					// uni.navigateTo({
+					// 	url: "/pages/index/applypartner?grade=" + value + '&userId=' + this.userInfo.sysUser
+					// 		.userId,
+					// })
 				}
-				// uni.navigateTo({
-				// 	url: "/pages/index/applypartner?grade=" + value,
-				// })
+
 			},
 		}
 	}
@@ -444,6 +890,26 @@
 			position: relative;
 			display: inline-block;
 
+			.search {
+				text {
+					font-size: 30rpx;
+					color: #fff;
+					font-weight: 400;
+				}
+
+				i {
+					margin-left: 9rpx;
+					display: inline-block;
+					width: 0;
+					height: 0;
+					border: 8rpx solid;
+					border-color: #fff;
+					border-bottom: 8rpx solid transparent;
+					border-right: 8rpx solid transparent;
+					border-left: 8rpx solid transparent;
+				}
+			}
+
 			text {
 				color: #fff;
 				font-weight: bold;
@@ -451,20 +917,14 @@
 				margin-left: 10rpx;
 			}
 
-			.image1 {
-				width: 16rpx;
-				height: 16rpx;
-				position: absolute;
-				top: 0;
-				right: -20rpx;
-			}
+
 
 			.image3 {
-				width: 166rpx;
+				width: 100%;
 				height: 20rpx;
 				position: absolute;
 				bottom: 0;
-				left: 0;
+				left: 4rpx;
 			}
 
 		}
@@ -498,7 +958,7 @@
 	.statistics {
 		background: #FFFFFF;
 		border-radius: 20rpx 20rpx 20rpx 20rpx;
-		margin-top: 15rpx;
+		margin-top: 25rpx;
 
 		.count {
 			padding: 34rpx 30rpx;
@@ -511,6 +971,7 @@
 		}
 
 		.data {
+			position: relative;
 			padding: 30rpx;
 			box-sizing: border-box;
 			background-color: #FBFBFB;
@@ -519,32 +980,39 @@
 			.view {
 				width: 49%;
 
-				text:first-child {
+				>:nth-child(1) {
 					font-size: 36rpx;
 					color: #333;
 					font-weight: bold;
 					margin-bottom: 4rpx;
 				}
 
-				text:last-child {
+				>:nth-child(2) {
 					font-size: 22rpx;
 					color: #999;
 				}
-			}
-		}
 
-		.earnings {
-			image {
-				width: 40rpx;
-				height: 40rpx;
-			}
+				.frozen {
+					width: 28rpx;
+					height: 28rpx;
+					margin-top: 4rpx;
+				}
 
-			text {
-				font-size: 30rpx;
-				color: #333;
-				margin-left: 14rpx;
+				//转入按钮
+				.commissionIn {
+					padding: 0 12rpx;
+					box-sizing: border-box;
+					border-radius: 30rpx 30rpx 30rpx 30rpx;
+					border: 1rpx solid #2D6DFF;
+					font-size: 20rpx;
+					color: #2D6DFF;
+					margin-top: 4rpx;
+					line-height: normal;
+				}
 			}
 		}
+
+
 	}
 
 	::v-deep {
@@ -640,4 +1108,302 @@
 		font-size: 17px;
 		color: #333333;
 	}
+
+	//我的收益
+	.earnings {
+		background: #FFFFFF;
+		padding: 25rpx 30rpx;
+		box-sizing: border-box;
+		border-radius: 20rpx 20rpx 20rpx 20rpx;
+
+		.btn {
+			padding: 3rpx 12rpx;
+			box-sizing: border-box;
+			background: linear-gradient(132deg, #2DD9FF 0%, #2D6DFF 100%);
+			border-radius: 4rpx 4rpx 4rpx 4rpx;
+			font-size: 22rpx;
+			color: #fff;
+		}
+
+		.income {
+			width: 36rpx;
+			height: 36rpx;
+		}
+
+		image {
+			width: 40rpx;
+			height: 40rpx;
+		}
+
+		.incomeText {
+			width: 122rpx;
+			height: 28rpx;
+			margin-right: 4rpx;
+		}
+
+	}
+
+	.roleCommInClass {
+		width: 600rpx;
+		border-radius: 10rpx;
+		box-sizing: border-box;
+		font-size: 26rpx;
+
+		.title {
+			font-size: 32rpx;
+			color: #333;
+		}
+
+		.content {
+			text:nth-child(1) {
+				font-size: 28rpx;
+				color: #333;
+			}
+
+			text:nth-child(2) {
+				font-size: 26rpx;
+				color: #666;
+			}
+
+		}
+
+	}
+
+	.roleCommInClass-footer {
+		width: 100%;
+		border-top: 1rpx solid #eee;
+
+		view {
+			width: 49%;
+			padding: 24rpx;
+			box-sizing: border-box;
+
+		}
+
+		view:first-child {
+			border-right: 1rpx solid #eee;
+		}
+
+		view:last-child {
+			color: #2D6DFF;
+		}
+	}
+
+	// 购买等级
+	.purchaseLevels {
+		position: relative;
+		background: linear-gradient(180deg, #FFD581 0%, #FFFFFF 70%);
+		border-radius: 20rpx;
+		margin: 20rpx 30rpx;
+
+		.purchaseLevel {
+			width: 99.7%;
+			margin-top: 2rpx;
+			padding: 20rpx 30rpx;
+			box-sizing: border-box;
+			background: linear-gradient(0deg, #fff 20%, #FFF6EC 100%);
+			border-radius: 20rpx;
+
+		}
+
+		.header {
+			.star {
+				width: 27rpx;
+				height: 22rpx;
+			}
+
+			.title {
+				position: relative;
+				margin-left: 2rpx;
+				margin-right: 2rpx;
+				text-align: center;
+				font-size: 30rpx;
+				color: #333;
+				font-weight: bold;
+
+				text {
+					position: relative;
+					z-index: 9;
+					margin: 0 4rpx;
+				}
+
+				.line {
+					position: absolute;
+					bottom: 6rpx;
+					left: 0;
+					right: 0;
+					margin: auto;
+					width: 90%;
+					height: 13rpx;
+					background: #FFE262;
+					border-radius: 0rpx 0rpx 0rpx 0rpx;
+				}
+			}
+		}
+
+		// 红包样式
+		.redPacket {
+			position: relative;
+			padding: 15rpx;
+			box-sizing: border-box;
+			background: #FFF0E8;
+			border-radius: 20rpx 20rpx 20rpx 20rpx;
+
+			.redPacket-img {
+				width: 70rpx;
+				height: 70rpx;
+			}
+
+			.lock {
+				position: absolute;
+				bottom: 0;
+				right: 0;
+				padding: 5rpx;
+				z-index: 9;
+				box-sizing: border-box;
+				background: rgba(255, 163, 117, 0.3);
+				border-radius: 20rpx 0rpx 20rpx 0rpx;
+				backdrop-filter: blur(10rpx);
+
+				.lock-img {
+					width: 30rpx;
+					height: 30rpx;
+				}
+			}
+		}
+
+		/* 锁定金额 */
+		.redPacket-data {
+			.sum {
+				font-size: 36rpx;
+				color: #F74141;
+				font-weight: bold;
+			}
+
+			.days {
+				font-size: 30rpx;
+				color: #666;
+			}
+		}
+
+		/* 去解锁按钮 */
+		.btn {
+			padding: 8rpx 20rpx;
+			box-sizing: border-box;
+			background: linear-gradient(132deg, #2DD9FF 0%, #2D6DFF 100%);
+			border-radius: 50rpx 50rpx 50rpx 50rpx;
+			font-size: 28rpx;
+			color: #fff;
+			line-height: 1.5;
+		}
+
+		.taskCarousel {
+			width: 100%;
+
+			.swiper {
+				height: 200rpx;
+			}
+
+			.taskitem {
+				width: 100%;
+				padding: 10rpx;
+				box-sizing: border-box;
+
+				.task-icon {
+					background: #F1FBFF;
+					border-radius: 20rpx 20rpx 20rpx 20rpx;
+					padding: 15rpx;
+					box-sizing: border-box;
+
+					image {
+						width: 70rpx;
+						height: 70rpx;
+					}
+				}
+
+				.task-progress {
+					flex: 1;
+					height: 100%;
+					margin-left: 20rpx;
+					margin-right: 16rpx;
+
+					.title {
+						font-size: 28rpx;
+						color: #333;
+						font-weight: bold;
+						line-height: 1.2;
+					}
+
+					.progressBar {
+						position: relative;
+						width: 90rpx;
+						height: 6rpx;
+						background: #F0F0F0;
+						border-radius: 100px;
+						overflow: hidden;
+
+						.jindu {
+							position: absolute;
+							left: 0;
+							top: 0;
+							height: 6rpx;
+							background: #FFA008;
+							border-radius: 100px;
+						}
+					}
+
+					.task-data {
+						font-size: 26rpx;
+
+						text:nth-child(1) {
+							color: #FFA008;
+						}
+
+						text:nth-child(2),
+						text:nth-child(3) {
+							color: #999999;
+						}
+					}
+
+				}
+
+				.task-btn {
+					padding: 8rpx 20rpx;
+					box-sizing: border-box;
+					background: linear-gradient(132deg, #2DD9FF 0%, #2D6DFF 100%);
+					border-radius: 50rpx 50rpx 50rpx 50rpx;
+					font-size: 28rpx;
+					color: #fff;
+					line-height: 1.5;
+				}
+
+				.task-btn1 {
+					padding: 8rpx 20rpx;
+					box-sizing: border-box;
+					background: transparent;
+					border-radius: 50rpx 50rpx 50rpx 50rpx;
+					font-size: 28rpx;
+					color: #2D74FF;
+					line-height: 1.5;
+				}
+			}
+
+			.taskitem:last-child {
+				margin-bottom: 13rpx;
+			}
+		}
+	}
+
+	::v-deep {
+		uni-swiper .uni-swiper-dots-horizontal .uni-swiper-dot {
+			width: 6rpx;
+			height: 6rpx;
+			background: #D9D9D9;
+		}
+
+		uni-swiper .uni-swiper-dots-horizontal .uni-swiper-dot-active {
+			width: 10rpx;
+			background: linear-gradient(132deg, #2DD9FF 0%, #2D6DFF 100%);
+		}
+	}
 </style>

+ 90 - 84
pages/index/success.vue

@@ -3,8 +3,9 @@
 		<view class="box ">
 			<image src="../../static/img/logo.png" mode=""></image>
 			<image src="../../static/img/2.png" mode=""></image>
-			<view style="margin-top: 10px;">掌柜会员号:{{id}} 
-				<image style="height:12px;width:13px;display: inline-block;margin-left:5px" src="../../static/icon/gongxiang.png" mode="" @tap="aaa"></image>
+			<view style="margin-top: 10px;">掌柜会员号:{{id}}
+				<image style="height:12px;width:13px;display: inline-block;margin-left:5px"
+					src="../../static/icon/gongxiang.png" mode="" @tap="aaa"></image>
 			</view>
 			<view>绑定手机号:{{mobile}}</view>
 			<image style="padding-top: 12px;
@@ -17,45 +18,73 @@
 
 <script>
 	export default {
-	data(){
-		return{
-			mobile:'',
-			id:'',
-			type:'',
-		}
-	},
-	async onLoad(e) {
-		let options = JSON.parse(e.data);
-		if(e){
-			this.id=options.id
-			this.mobile= options.mobile //驳回内容
-		}
-	},
-	methods: {
-		aaa(){
-			uni.setClipboardData({
-						data: this.id
-					})
+		data() {
+			return {
+				mobile: '',
+				id: '',
+				type: '',
+			}
 		},
-		downloadApp(typeId) {
-			var btn = document.getElementById(typeId);
-			this.weixinTip(btn);
+		async onLoad(e) {
+			let options = JSON.parse(e.data);
+			if (e) {
+				this.id = options.id
+				this.mobile = options.mobile //驳回内容
+			}
 		},
-		// 判断是不是微信
-		async weixinTip(ele) {
-			var ua = navigator.userAgent;
-			var isWeixin = !!/MicroMessenger/i.test(ua);
-			if (isWeixin) {
-				ele.onclick = function(e) {
-					window.event ? window.event.returnValue = false : e.preventDefault();
-					document.getElementById('weixin-tip').style.display = 'block';
-				}
-			} else {
-				if (!!this.id) {
-					uni.setClipboardData({
-						data: this.id
-					})
+		methods: {
+			aaa() {
+				uni.setClipboardData({
+					data: this.id
+				})
+			},
+			downloadApp(typeId) {
+				var btn = document.getElementById(typeId);
+				this.weixinTip(btn);
+			},
+			// 判断是不是微信
+			async weixinTip(ele) {
+				var ua = navigator.userAgent;
+				var isWeixin = !!/MicroMessenger/i.test(ua);
+				if (isWeixin) {
+					ele.onclick = function(e) {
+						window.event ? window.event.returnValue = false : e.preventDefault();
+						document.getElementById('weixin-tip').style.display = 'block';
+					}
+				} else {
+					if (!!this.id) {
+						uni.setClipboardData({
+							data: this.id
+						})
+					}
+					let pageRequest = {
+						pageNum: 1,
+						pageSize: 50,
+						columnFilters: {
+							apptype: {
+								name: "apptype",
+								value: "apk",
+							},
+							appid: {
+								name: "appid",
+								value: "__UNI__2041321",
+							}
+						}
+					};
+					let getquote = await this.$http.post('/sysVersion/findPage', pageRequest);
+					let url = getquote.data.content[0].path;
+					if (getquote.code == '200') {
+						window.open(url);
+					} else {
+						uni.showToast({
+							title: getquote.msg,
+							icon: 'none'
+						});
+					}
 				}
+			},
+			async promotionCode() {
+
 				let pageRequest = {
 					pageNum: 1,
 					pageSize: 50,
@@ -66,87 +95,64 @@
 						},
 						appid: {
 							name: "appid",
-							value: "__UNI__3FA05C4",
+							value: '__UNI__2041321',
 						}
 					}
-				};
-				let getquote = await this.$http.post('/sysVersion/findPage', pageRequest);
-				let url = getquote.data.content[0].path;
-				if (getquote.code == '200') {
-					window.open(url);
-				} else {
-					uni.showToast({
-						title: getquote.msg,
-						icon: 'none'
-					});
 				}
-			}
-		},
-		async promotionCode() {
-			
-			let pageRequest={
-				pageNum: 1,
-				pageSize: 50,
-				columnFilters: {
-					apptype: {
-						name: "apptype",
-						value: "apk",
-					},
-					appid: {
-						name: "appid",
-						value: '__UNI__3FA05C4',
-					}
+				let res = await this.$http.post('/sysVersion/findPage', pageRequest);
+				if (res.code == 200) {
+					this.pathUrl = res.data.content[0].path
+					this.workImg = QR.createQrCodeImg(res.data.content[0].path, {
+						size: parseInt(200) //二维码大小  
+					})
 				}
-			}
-			let res = await this.$http.post('/sysVersion/findPage', pageRequest);
-			if (res.code == 200) {
-				this.pathUrl = res.data.content[0].path
-				this.workImg = QR.createQrCodeImg(res.data.content[0].path, {
-					size: parseInt(200) //二维码大小  
-				})
-			}
-		
+
+			},
 		},
-	},
 	}
 </script>
 
 <style lang="scss" scoped>
-	.p-box{
+	.p-box {
 		width: 100%;
 		height: 100vh;
 		background: url(/static/img/beijing1.png) no-repeat;
 		background-size: 100% 100%;
 		// background: #D0CCFB;
 	}
-	.box{
+
+	.box {
 		height: 160px;
 		width: 100%;
 		// position: relative;
-		background: url(/static/img/beijng2.png) no-repeat ;
+		background: url(/static/img/beijng2.png) no-repeat;
 		background-size: 100% 100%;
 		text-align: -webkit-center;
+
 		// position: relative;
-		image{
+		image {
 			display: block;
 		}
-		text{
+
+		text {
 			font-size: 14px;
 			color: #666666;
 			padding-top: 5px;
 		}
-		image:first-child{
+
+		image:first-child {
 			padding-top: 52px;
 			width: 110px;
 			height: 20px;
 		}
-		image:nth-child(2){
+
+		image:nth-child(2) {
 			padding-top: 17px;
 			width: 260px;
 			height: 35px;
 		}
-		
-		image:last-child{
+
+		image:last-child {
 			padding-top: 30px;
 			width: 220px;
 			height: 55px;

+ 261 - 0
pages/institutional/accountFreezeRecord.vue

@@ -0,0 +1,261 @@
+<template>
+	<view class="">
+		<public-module></public-module>
+		<view class="headers dis a-c j-start">
+			<u-icon name="arrow-left" color="#333" size="38" @click="back"></u-icon>
+			<text style="margin: auto;">管理人详情</text>
+		</view>
+		<view class="homeBackground"></view>
+		<view class="intro dis a-c ">
+			<image src="/static/image/my/wuxingb.png" mode=""></image>
+			<view class="dis f-c ml-3">
+				<text class="title">{{referrerInfo.userName}}</text>
+				<text>{{referrerInfo.mobile}}</text>
+				<view class="dis a-c">
+					<text>推荐人:{{referrerInfo.referrerName}}</text>
+					<view class="level dis  a-c j-c ">
+						{{referrerInfo.referrerGrade}}
+					</view>
+				</view>
+			</view>
+		</view>
+		<view class="body p-2" style="padding-top: 400rpx;">
+			<view class="card mb-2" v-for="(item,index) in userlist" :key="index">
+				<!-- 权限锁定组件 -->
+				<uni-permission-view v-if="parentStatus==2 && index==userlist.length-1" direction="row"
+					:genericText="`完成任务,解锁“”,查看我的全部业绩`" cornerRadius="8rpx" :genericTextStyle="{fontSize:'26rpx'}">
+				</uni-permission-view>
+				<!-- 权限锁定组件 -->
+				<view class="card-title dis a-c j-s mb-2">
+					<view class="dis a-c ">
+						<view class="avatar">
+							<image src="/static/image/my/wuxingb.png" mode=""></image>
+						</view>
+						<text class="name ml-1">{{item.userName}}</text>
+					</view>
+					<text>{{item.createTime}} &nbsp;加入</text>
+				</view>
+				<view class="card-data dis a-c j-s ">
+					<view class="view dis f-c a-c ">
+						<text>{{item.number}}</text>
+						<text>{{item.gradeName}}</text>
+					</view>
+					<view class="view dis f-c a-c ">
+						<text>{{item.premium}}</text>
+						<text>保费</text>
+					</view>
+					<view class="view dis f-c a-c ">
+						<text>{{item.commission}}</text>
+						<text>我的佣金</text>
+					</view>
+				</view>
+			</view>
+		</view>
+		<u-loadmore v-if="userlist.length!=0" :status="status" />
+	</view>
+</template>
+<script>
+	export default {
+		data() {
+			return {
+				referrerInfo: {}, //个人信息
+				userlist: [],
+				pageQuery: {
+					id: "",
+					pageNum: 1,
+					pageSize: 10,
+				},
+				status: 'loadmore',
+				totalPages: 0,
+				parentStatus: "",
+			}
+		},
+		onReachBottom() {
+			if (this.pageQuery.pageNum >= this.totalPages) return;
+			this.status = 'loading';
+			this.pageQuery.pageNum = ++this.pageQuery.pageNum;
+			setTimeout(async () => {
+				let res = await this.$http.post('/newAppPartner/selectByIdList', this.pageQuery);
+				if (res.code == '200') {
+					this.userlist = [...this.userlist, ...res.data.list.records];
+
+				}
+				if (this.pageQuery.pageNum >= this.totalPages) this.status = 'nomore';
+				else this.status = 'loading';
+			}, 1000)
+		},
+		onLoad(options) {
+			this.pageQuery.id = options.id;
+			this.querydata();
+		},
+		methods: {
+			back() {
+				uni.navigateBack({
+					delta: 1, // 返回的页面数,如果是1表示返回上一页
+					success: function() {}
+				});
+			},
+			async querydata() {
+				let res = await this.$http.post('/newAppPartner/selectByIdList', this.pageQuery);
+				if (res.code == '200') {
+					this.referrerInfo = res.data.referrer;
+					this.userlist = res.data.list.records;
+					this.parentStatus = res.data.parentStatus;
+					this.totalPages = res.data.list.totalPages;
+				}
+			},
+
+
+		}
+
+	}
+</script>
+
+<style lang="scss" scoped>
+	.headers {
+		position: fixed;
+		top: 0;
+		left: 0;
+		height: auto;
+		width: 100%;
+		z-index: 999999;
+		padding: 30rpx;
+		padding-top: 50px;
+
+		text {
+			font-size: 36rpx;
+			font-weight: bold;
+			color: #000;
+		}
+
+
+
+		.right {
+			position: absolute;
+			right: 30rpx;
+
+			image {
+				width: 28rpx;
+				height: 28rpx;
+				margin-right: 4rpx;
+			}
+
+			text {
+				font-weight: 400;
+				color: #000;
+				font-size: 24rpx;
+			}
+		}
+	}
+
+	//头部背景
+	.homeBackground {
+		position: fixed;
+		top: 0;
+		left: 0;
+		z-index: 999;
+		width: 100%;
+		height: 176rpx;
+		background: linear-gradient(180deg, #D1EFFE 0%, #FFFFFF 100%);
+		border-bottom: 1rpx solid #f2f2f2;
+	}
+
+	.intro {
+		position: fixed;
+		top: 176rpx;
+		left: 0;
+		z-index: 999;
+		width: 100%;
+		padding: 25rpx 30rpx;
+		box-sizing: border-box;
+		background-color: #FFFFFF;
+
+		image {
+			width: 128rpx;
+			height: 128rpx;
+
+		}
+
+		text {
+			font-size: 28rpx;
+			color: #666;
+		}
+
+		.title {
+			font-size: 32rpx;
+			color: #333;
+			font-weight: bold;
+		}
+
+		.level {
+			padding: 0 10rpx;
+			box-sizing: border-box;
+			font-size: 22rpx;
+			color: #2D6DFF;
+			border: 1rpx solid #2D6DFF;
+			border-radius: 4rpx;
+			margin-left: 20rpx;
+			background: rgba(45, 109, 255, 0.1);
+		}
+
+	}
+
+	//列表数据
+	.card {
+		position: relative;
+		background: #FFFFFF;
+		border-radius: 10rpx;
+		background-image: url("/static/card.png");
+		background-size: 100% 100%;
+		border-top: 1px solid;
+		border-image: linear-gradient(270deg, rgba(45, 109, 255, 0), rgba(45, 109, 255, 1), rgba(45, 109, 255, 0)) 1 1;
+		padding: 20rpx 30rpx 30rpx;
+
+		.card-title {
+			.avatar {
+				width: 40rpx;
+				height: 40rpx;
+				border-radius: 50%;
+
+				image {
+					width: 100%;
+					height: 100%;
+				}
+			}
+
+			>text {
+				font-size: 24rpx;
+				color: #666;
+			}
+
+			.name {
+				font-size: 30rpx;
+				color: #333;
+				font-weight: bold;
+			}
+		}
+
+		.card-data {
+			.view {
+				width: 33.33%;
+
+				text:first-child {
+					font-size: 30rpx;
+					color: #333;
+					font-weight: bold;
+				}
+
+				text:last-child {
+					font-size: 24rpx;
+					color: #999;
+				}
+			}
+
+			.view:nth-child(2) {
+				border-left: 1rpx solid #eee;
+				border-right: 1rpx solid #eee;
+			}
+		}
+
+	}
+</style>

+ 157 - 0
pages/institutional/incomingTransferLog.vue

@@ -0,0 +1,157 @@
+<template>
+	<view class="">
+		<public-module></public-module>
+		<u-sticky h5-nav-height="0">
+			<view class="headers dis a-c j-start">
+				<u-icon name="arrow-left" color="#333" size="38" @click="back"></u-icon>
+				<text style="margin: auto;">管理人详情</text>
+			</view>
+			<view class="filterTime dis j-s a-c ">
+				<view class=" dis a-c " @click="timeDropdownFilter">
+					<text>{{pageQuery.startTime && pageQuery.endTime ? pageQuery.startTime + '-' + pageQuery.endTime : '时间筛选' }}</text>
+					<text>▼</text>
+				</view>
+				<view class=" dis a-c " @click="statusFilterShow=true">
+					<text>321321</text>
+					<text>▼</text>
+				</view>
+			</view>
+			<view class="performance dis a-c j-c ">
+				共有 5笔订单,保费5元,佣金5元
+			</view>
+		</u-sticky>
+		<view class="content">
+			<view class="item">
+
+			</view>
+		</view>
+		<u-loadmore v-if="userlist.length!=0" :status="status" />
+	</view>
+</template>
+<script>
+	export default {
+		data() {
+			return {
+				referrerInfo: {}, //个人信息
+				userlist: [],
+				pageQuery: {
+					id: "",
+					endTime: "",
+					startTime: "",
+					pageNum: 1,
+					pageSize: 10,
+				},
+				status: 'loadmore',
+				totalPages: 0,
+				parentStatus: "",
+			}
+		},
+		onReachBottom() {
+			// if (this.pageQuery.pageNum >= this.totalPages) return;
+			// this.status = 'loading';
+			// this.pageQuery.pageNum = ++this.pageQuery.pageNum;
+			// setTimeout(async () => {
+			// 	let res = await this.$http.post('/newAppPartner/selectByIdList', this.pageQuery);
+			// 	if (res.code == '200') {
+			// 		this.userlist = [...this.userlist, ...res.data.list.records];
+
+			// 	}
+			// 	if (this.pageQuery.pageNum >= this.totalPages) this.status = 'nomore';
+			// 	else this.status = 'loading';
+			// }, 1000)
+		},
+		onLoad(options) {
+			this.pageQuery.id = options.id;
+			this.querydata();
+		},
+		methods: {
+			back() {
+				uni.navigateBack({
+					delta: 1, // 返回的页面数,如果是1表示返回上一页
+					success: function() {}
+				});
+			},
+			async querydata() {
+
+			},
+
+
+		}
+
+	}
+</script>
+
+<style lang="scss" scoped>
+	.headers {
+		width: 100%;
+		z-index: 999999;
+		padding: 30rpx;
+		padding-top: 50px;
+		background: linear-gradient(180deg, #D1EFFE 0%, #FFFFFF 100%);
+		border-bottom: 1rpx solid #f2f2f2;
+
+		text {
+			font-size: 36rpx;
+			font-weight: bold;
+			color: #000;
+		}
+
+
+
+		.right {
+			position: absolute;
+			right: 30rpx;
+
+			image {
+				width: 28rpx;
+				height: 28rpx;
+				margin-right: 4rpx;
+			}
+
+			text {
+				font-weight: 400;
+				color: #000;
+				font-size: 24rpx;
+			}
+		}
+	}
+
+	//业绩
+	.performance {
+		width: 100%;
+		height: 60rpx;
+		background: #EBF4FF;
+		border-radius: 0rpx 0rpx 0rpx 0rpx;
+		font-size: 30rpx;
+		color: #2B67EF;
+	}
+
+	//时间筛选
+	.filterTime {
+		width: 100%;
+		background: #fff;
+		border-radius: 0rpx 0rpx 0rpx 0rpx;
+		padding: 20rpx 30rpx;
+		box-sizing: border-box;
+
+		text:first-child {
+			font-size: 26rpx;
+			color: #333;
+		}
+
+		text:last-child {
+			font-size: 19rpx;
+			color: #666;
+			margin-left: 4rpx;
+		}
+	}
+
+	.content {
+		margin: 20rpx 30rpx;
+		box-sizing: border-box;
+		background-color: #FFFFFF;
+		border-radius: 10rpx 10rpx 10rpx 10rpx;
+		padding: 30rpx;
+		box-sizing: border-box;
+	}
+</style>

+ 74 - 3
pages/institutional/invitationCode.vue

@@ -19,6 +19,13 @@
 				</view>
 				<view class="dis f-c a-c ">
 					<view class="panelcanvas " id="panelcanvas">
+						<!-- 权限锁定组件 -->
+						<uni-permission-view v-if="this.teamOverviewInfo.lockingState=='2'"
+							:genericText="`完成仕务,解锁“合伙人,扩展我的业务团队`" background="rgba(255, 255, 255, 0.7)"
+							:imageStyle="{width:'109rpx',height:'107rpx'}" :contentStyle="{marginBottom:'20rpx'}"
+							:genericTextStyle="{fontSize:'28rpx'}" @requestUnlock="requestUnlock">
+						</uni-permission-view>
+						<!-- 权限锁定组件 -->
 						<image :src="recommendImg" mode="widthFix" lazy-load></image>
 					</view>
 					<view class="operation mt-4 dis a-c ">
@@ -39,7 +46,8 @@
 					<text>我的身份:{{gradeText}}</text>
 					<view class="entryPoint" v-show="supportUpgrade" @click="upgrade">去升级</view>
 				</view>
-				<text class="mt-1">再邀请6个工作室,即可升级成为管理人,赚取更多收益</text>
+				<text class="mt-1" v-if="gradeText=='创始人'">您的掌柜合伙人所有专属权益全面解锁,可持续享出单收益</text>
+				<text class="mt-1" v-if="gradeText=='合伙人'">再邀请6个工作室,即可升级成为管理人,赚取更多收益</text>
 			</view>
 			<view class="tag mt-2 dis f-c a-start">
 				<text>我的佣金权益:0.2%</text>
@@ -87,18 +95,72 @@
 			}
 		},
 		onLoad(options) {
+			console.log(options);
 			if (options) {
+				let info = JSON.parse(options.info)
 				this.grade = options.grade;
 				if (options.deptSource) this.deptSource = options.deptSource;
+				this.teamOverviewInfo = info;
+				console.log(this.teamOverviewInfo);
 			}
 			this.recommendCode();
 			this.entryPoint();
 		},
+		onShow() {
+			this.entryPoint();
+		},
 		methods: {
+			async requestUnlock() {
+				if (this.teamOverviewInfo.lockingState == '2' && this.teamOverviewInfo.unlockedStatus) {
+					switch (this.teamOverviewInfo.upgradeStatus) {
+						case 0:
+						case false:
+							let params = {
+								grade: Number(this.teamOverviewInfo.grade),
+								lockingState: this.teamOverviewInfo.lockingState,
+								lockCommission: this.teamOverviewInfo.lockCommission,
+								zeroDays: this.teamOverviewInfo.zeroDays,
+								fallAmount: this.teamOverviewInfo.fallAmount,
+							}
+							console.log(this.teamOverviewInfo);
+							uni.navigateTo({
+								url: "/pages/my/upgradeTask?info=" + JSON.stringify(params),
+							})
+							break;
+						case 1:
+						case true:
+							let res = await this.$http.post('/partner/submitLiftingRecord', {
+								grade: this.teamOverviewInfo.grade,
+								upgradeType: '1'
+							});
+							if (res.code == '200') {
+								uni.showToast({
+									title: res.msg,
+									icon: 'none',
+								});
+								this.getList()
+							} else {
+								uni.showToast({
+									title: res.msg,
+									icon: 'none',
+								});
+							}
+							break;
+						case 2:
+							uni.showToast({
+								title: '申请中',
+								icon: 'none',
+							});
+							break;
+						default:
+					}
+				}
+			},
 			//保存图片
 			saveImage() {
 				base64ToPath(this.posterUrl)
 					.then(path => {
+						console.log(path);
 						uni.saveImageToPhotosAlbum({ //保存图片到系统相册。
 							filePath: path, //图片文件路径
 							success: function() {
@@ -185,6 +247,7 @@
 			//页面截图转路径
 			receiveRenderData(val) {
 				this.posterUrl = val.replace(/[\r\n]/g, ''); // 去除base64位中的空格
+				console.log(this.posterUrl);
 				// 将base64转化为临时地址
 				// base64ToPath(imageStr).then(path => {
 				// 	this.payImg = path;
@@ -231,6 +294,7 @@
 						// allowTaint: false,
 						scale: 2, // 设置生成图片的像素比例,默认是1,如果生成的图片模糊的话可以开启该配置项
 					}).then((canvas) => {
+						console.log(canvas);
 						// 生成成功
 						this.$ownerInstance.callMethod('hideLoading')
 						this.$ownerInstance.callMethod('receiveRenderData', canvas.toDataURL('image/png'))
@@ -244,6 +308,10 @@
 	}
 </script>
 <style lang="scss" scoped>
+	.highlight {
+		color: #F74141;
+	}
+
 	.headers {
 		position: fixed;
 		top: 0;
@@ -321,9 +389,12 @@
 			position: relative;
 
 			image {
-				width: 340rpx;
-				height: 340rpx;
+				width: 350rpx;
+				height: 350rpx;
 			}
+
+
+
 		}
 
 		.operation {

+ 211 - 82
pages/institutional/myEarnings.vue

@@ -4,15 +4,24 @@
 		<public-module></public-module>
 		<!-- 头部 -->
 		<view class="headers dis a-c j-start">
-			<u-icon name="arrow-left" color="#333" size="38" @tap="back"></u-icon>
-			<text style="margin: auto;">我的收益</text>
-
+			<view class="roleIdentity dis a-c j-s">
+				<u-icon name="arrow-left" color="#333" size="38" @click="back"></u-icon>
+				<view class="headers-activeTab">
+					<u-tabs :list="tablist" :is-scroll="true" active-color="#333" inactive-color="#999"
+						:current="current" :show-bar="false" @change="change" name="gradeName" height="50"
+						:active-item-style="{fontSize:'36rpx'}" style="background: transparent;"></u-tabs>
+				</view>
+				<view class="right dis a-c"></view>
+			</view>
 		</view>
-		<view class="homeBackground"></view>
 		<!-- 业绩 -->
-		<view class="filterTime dis j-end a-c ">
+		<view class="filterTime dis j-s a-c ">
 			<view class=" dis a-c " @click="timeDropdownFilter">
-				<text>时间筛选</text>
+				<text>{{pageQuery.startTime && pageQuery.endTime ? pageQuery.startTime + '-' + pageQuery.endTime : '时间筛选' }}</text>
+				<text>▼</text>
+			</view>
+			<view class=" dis a-c " @click="statusFilterShow=true">
+				<text>{{appStatus}}</text>
 				<text>▼</text>
 			</view>
 		</view>
@@ -20,18 +29,25 @@
 			共有 {{totalCount.numberOrders}}笔订单,保费{{totalCount.totalPremium}}元,佣金{{totalCount.commission}}元
 		</view>
 		<view class="body p-2" style="padding-top: 340rpx;">
-			<view class="card mb-2" v-for="(item,index) in incomeList" :key="index"
-				@click="earningsDetail(item.ordersNo)">
+			<view class="card mb-2" v-for="(item,index) in incomeList" :key="index">
+				<!-- 权限锁定组件 -->
+				<uni-permission-view position="fixed" :backimage="true"
+					v-if="index==incomeList.length-1 && pageQuery.grade!='1' && parentStatus=='2'" direction="row"
+					:sum="teamOverviewInfo.lockCommission" :days="teamOverviewInfo.zeroDays"
+					:genericText="`完成任务,解锁“${gradeText}”,查看我的全部业绩`" cornerRadius="8rpx"
+					:genericTextStyle="{fontSize:'26rpx'}" @requestUnlock="requestUnlock">
+				</uni-permission-view>
+				<!-- 权限锁定组件 -->
 				<view class="card-title dis a-c j-s mb-2">
 					<view class="dis a-c ">
-						<view class="avatar">
-							<image src="/static/image/my/wuxingb.png" mode=""></image>
+						<view class="status " :class="item.appStatus==1?'blue':'red'" v-if="item.appStatus!=0">
+							{{item.appStatus==1?'已冻结':'已失效'}}
 						</view>
 						<text class="name ml-1">{{item.carId}}</text>
 					</view>
-					<text>{{item.issuanceTime}} 出单</text>
+					<text>{{item.issuanceTime}}出单</text>
 				</view>
-				<view class="card-data dis a-c j-s ">
+				<view class="card-data dis a-c j-s " @click="earningsDetail(item.ordersNo)">
 					<view class="view dis f-c a-c ">
 						<text>{{item.agent}}</text>
 						<text>代理人</text>
@@ -47,26 +63,12 @@
 				</view>
 			</view>
 		</view>
-		<u-popup v-model="ShowModal" mode="bottom" border-radius="15">
-			<view class="popup-code">
-				<text @click="ShowModalCodeFun(level)">合伙人</text>
-				<text @click="ShowModalCodeworkFun">工作室</text>
-			</view>
-		</u-popup>
-		<u-popup v-model="ShowModalCode" mode="bottom" border-radius="15">
-			<view class="ShowModalCode-style ">
-				<text>{{chineseNumbers[relativeLeavl]}}级合伙人招募码</text>
-				<view class=" ShowModalCode-con">
-					<view>扫码加入</view>
-					<image :src="partnerImg" mode="widthFix" lazy-load style="width: 150px;"></image>
-				</view>
-			</view>
-		</u-popup>
+		<!-- 筛选组件 -->
+		<uni-Popup :show="statusFilterShow" @close='statusFilterShow=false' headerTitle="筛选状态"
+			:statusList="quickOptions" contentType="status" @statusConfirm="statusFilterConfirm">
 
-		<u-popup mode="center" ref="alertDialog" type="dialog">
-			<uni-popup-dialog type="warn" cancelText="取消" confirmText="确定" title=" " :content="dialogContent"
-				@confirm="dialogConfirm" @close="dialogClose"></uni-popup-dialog>
-		</u-popup>
+		</uni-Popup>
+		<u-loadmore v-if="incomeList.length!=0" :status="status" />
 		<my-date-picker ref="datePicker" @confirmPickDate="confirmPickDate" />
 	</view>
 </template>
@@ -86,9 +88,47 @@
 		},
 		computed: {
 			...mapState(['userInfo', "userCheckInfo", ]),
+			gradeText() {
+				const gradeMap = {
+					1: '创始人',
+					2: '管理人',
+					3: '合伙人',
+					4: '工作室'
+				}
+				return gradeMap[this.pageQuery.grade] || ''
+			},
+			appStatus() {
+				const gradeMap = {
+					0: '正常',
+					1: '已冻结',
+					2: '已失效',
+				}
+				return gradeMap[this.pageQuery.appStatus] || '全部'
+			}
 		},
 		data() {
 			return {
+				statusFilterShow: false, //筛选组件
+				quickOptions: [{
+						label: "全部",
+						value: null,
+					},
+					{
+						label: "正常",
+						value: "0",
+					},
+					{
+						label: "已冻结",
+						value: "1",
+					},
+					{
+						label: "已失效",
+						value: "2",
+					}
+				], //快捷选项
+				tablist: [],
+				status: 'loadmore', //下拉状态
+				parentStatus: "", //是否锁定
 				totalCount: {}, //统计
 				incomeList: [], //列表
 				//tab选项
@@ -114,17 +154,9 @@
 				ShowModalCodebusiness: false,
 				chineseNumbers: ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'],
 				teamTabIndex: 0,
-				directLsit: [{
-						partnerNumber: 1
-					},
-					{
-						partnerNumber: 2
-					}
-				],
 				source: 0,
 				totalPages: 0,
 				totalSize: 0,
-				status: 'loadmore',
 				pageRequest: { //查询的默认条件
 					pageNum: 1,
 					pageSize: 20,
@@ -139,23 +171,102 @@
 				userLevel: "",
 
 				deptSource: 1,
-				startTime: "", //时间筛选 开始
-				endTime: "", //时间筛选 结束
+				pageQuery: {
+					grade: "",
+					startTime: "",
+					endTime: "",
+					appStatus: "",
+					pageNum: 1,
+					pageSize: 10,
+				},
+				teamOverviewInfo: {},
 			}
 		},
+		onReachBottom() {
+			if (this.pageQuery.pageNum >= this.totalPages) return;
+			this.status = 'loading';
+			this.pageQuery.pageNum = ++this.pageQuery.pageNum;
+			setTimeout(async () => {
+				let res = await this.$http.post('/newAppPartner/myPerformance', this.pageQuery);
+				if (res.code == '200') {
+					this.incomeList = [...this.incomeList, ...res.data.data.records];
+				}
+				if (this.pageQuery.pageNum >= this.totalPages) this.status = 'nomore';
+				else this.status = 'loading';
+			}, 1000)
+		},
 		async onLoad(params) {
-			this.queryData()
-			this.userLevel = this.userInfo.sysUser.level
+			if (params) {
+				let info = JSON.parse(params.info)
+				console.log(info);
+				this.pageQuery.grade = info.grade
+				this.teamOverviewInfo = info;
+				await this.queryData()
+				await this.GradeListMap();
+				const index = this.tablist.findIndex(item => item.grade == info.grade);
+				this.current = index; //获取对应身份的数据下标
+			}
+
+
 		},
 		methods: {
+			statusFilterConfirm(item) {
+				this.pageQuery.appStatus = item.value;
+				this.queryData();
+				this.statusFilterShow = false;
+			},
+			async requestUnlock() {
+				console.log(1);
+				if (this.teamOverviewInfo.parentStatus == '2') {
+					switch (this.teamOverviewInfo.upgradeStatus) {
+						case 0:
+							let params = {
+								grade: Number(this.teamOverviewInfo.grade),
+								lockingState: this.teamOverviewInfo.parentStatus,
+								lockCommission: this.teamOverviewInfo.lockCommission,
+								zeroDays: this.teamOverviewInfo.zeroDays,
+								fallAmount: this.teamOverviewInfo.fallAmount,
+							}
+							uni.navigateTo({
+								url: "/pages/my/upgradeTask?info=" + JSON.stringify(params),
+							})
+							break;
+						case 1:
+							let res = await this.$http.post('/partner/submitLiftingRecord', {
+								grade: this.teamOverviewInfo.grade,
+								upgradeType: '1'
+							});
+							if (res.code == '200') {
+								uni.showToast({
+									title: res.msg,
+									icon: 'none',
+								});
+								this.queryData()
+							} else {
+								uni.showToast({
+									title: res.msg,
+									icon: 'none',
+								});
+							}
+							break;
+						case 2:
+							uni.showToast({
+								title: '申请中',
+								icon: 'none',
+							});
+							break;
+						default:
+					}
+				}
+			},
 			//下拉筛选
 			timeDropdownFilter() {
 				this.$refs.datePicker.open()
 			},
 			//日期选择事件
 			confirmPickDate(startdate, enddate) {
-				this.startTime = startdate;
-				this.endTime = enddate;
+				this.pageQuery.startTime = startdate;
+				this.pageQuery.endTime = enddate;
 				this.queryData();
 			},
 			change(index) {
@@ -247,14 +358,25 @@
 			// },
 
 			async queryData(data) {
-
-				let res = await this.$http.get('/newAppPartner/myPerformance?grade=' + this.userInfo.sysUser.grade +
-					'&startTime=' + this.startTime + '&endTime=' + this.endTime);
+				let res = await this.$http.post('/newAppPartner/myPerformance', this.pageQuery);
 				if (res.code == '200') {
 					this.totalCount = res.data.total; //个人收益统计
-					this.incomeList = res.data.data; //收益列表
+					this.incomeList = res.data.data.records; //收益列表
+					this.parentStatus = res.data.parentStatus;
+					this.totalPages = res.data.data.totalPages;
 				}
 			},
+			//等级列表
+			async GradeListMap() {
+				let res = await this.$http.get('/partner/getUserGradeListMap');
+				if (res.code == 200) {
+					this.tablist = res.data;
+					this.tablist.map(val => {
+						val.gradeName = "我是" + val.gradeName;
+						return val;
+					})
+				}
+			}
 
 		}
 
@@ -268,34 +390,32 @@
 		left: 0;
 		height: auto;
 		width: 100%;
-		z-index: 999999;
-		padding: 30rpx;
-		padding-top: 50px;
-
-		text {
-			font-size: 36rpx;
-			font-weight: bold;
-			color: #000;
-		}
-
-		.headers-activeTab {
-			width: 80%;
-		}
-
-		.right {
-			position: absolute;
-			right: 30rpx;
+		z-index: 999;
 
-			image {
-				width: 28rpx;
-				height: 28rpx;
-				margin-right: 4rpx;
+		.roleIdentity {
+			width: 100%;
+			height: 176rpx;
+			padding: 108rpx 30rpx 20rpx;
+			box-sizing: border-box;
+			background: linear-gradient(180deg, #D1EFFE 0%, #FFFFFF 100%);
+			border-bottom: 1rpx solid #f2f2f2;
+
+			.headers-activeTab {
+				width: 80%;
+				height: 50rpx;
 			}
 
-			text {
-				font-weight: 400;
-				color: #000;
-				font-size: 24rpx;
+			.right {
+				image {
+					width: 28rpx;
+					height: 28rpx;
+					margin-right: 4rpx;
+				}
+
+				text {
+					font-size: 24rpx;
+					color: #333;
+				}
 			}
 		}
 	}
@@ -395,6 +515,7 @@
 
 	//列表数据
 	.card {
+		position: relative;
 		background: #FFFFFF;
 		border-radius: 10rpx;
 		background-image: url("/static/card.png");
@@ -404,15 +525,23 @@
 		padding: 20rpx 30rpx 30rpx;
 
 		.card-title {
-			.avatar {
-				width: 40rpx;
-				height: 40rpx;
-				border-radius: 50%;
+			.status {
+				padding: 2rpx 12rpx;
+				box-sizing: border-box;
+				border-radius: 2rpx 2rpx 2rpx 2rpx;
+				font-size: 20rpx;
+				font-weight: bold;
 
-				image {
-					width: 100%;
-					height: 100%;
-				}
+			}
+
+			.blue {
+				background: #EAF0FF;
+				color: #2D6DFF;
+			}
+
+			.red {
+				background: #FFECEC;
+				color: #F74141;
 			}
 
 			>text {

+ 131 - 287
pages/institutional/partner.vue

@@ -2,32 +2,43 @@
 	<view class="">
 		<!-- 全局 loding -->
 		<public-module></public-module>
+
 		<!-- 头部 -->
-		<view class="headers dis a-c j-start">
-			<u-icon name="arrow-left" color="#333" size="38" @click="back"></u-icon>
-			<view class="headers-activeTab">
-				<u-tabs :list="tablist" :is-scroll="true" active-color="#333" inactive-color="#999" :current="current"
-					:show-bar="false" @change="change" name="gradeName"
-					style="background: transparent;height: 80rpx;z-index: -1;"></u-tabs>
+		<view class="headers ">
+			<!-- 头部身份切换 -->
+			<view class="roleIdentity dis a-c j-s">
+				<u-icon name="arrow-left" color="#333" size="38" @click="back"></u-icon>
+				<view class="headers-activeTab">
+					<u-tabs :list="tablist" :is-scroll="true" active-color="#333" inactive-color="#999"
+						:current="current" :show-bar="false" @change="change" name="gradeName" height="50"
+						:active-item-style="{fontSize:'36rpx'}" style="background: transparent;"></u-tabs>
+				</view>
+				<view class="right dis a-c">
+					<image src="/static/home/customerService1.png" mode=""></image>
+					<text>客服</text>
+				</view>
 			</view>
-			<view class="right dis a-c">
-				<image src="/static/home/customerService1.png" mode=""></image>
-				<text>客服</text>
+			<!-- 下拉筛选 -->
+			<view class="filter dis a-c j-end">
+				<view class="filterTime dis a-c " @click="timeDropdownFilter">
+					<text>时间筛选</text>
+					<text>▼</text>
+				</view>
 			</view>
-		</view>
-		<view class="homeBackground"></view>
-		<!-- 业绩 -->
-		<view class="filterTime dis j-end a-c ">
-			<view class=" dis a-c " @click="timeDropdownFilter">
-				<text>时间筛选</text>
-				<text>▼</text>
+			<!-- 数据统计 -->
+			<view class="statistics dis a-c j-c " v-if="totalInfo">
+				共有 {{totalInfo.numberOrders}} 笔订单,保费{{totalInfo.totalPremium}}元,佣金{{totalInfo.commission}}元
 			</view>
 		</view>
-		<view class="performance dis a-c j-c ">
-			共有 5 笔订单,保费54252.25元,佣金569.35元
-		</view>
 		<view class="body p-2" style="padding-top: 340rpx;">
-			<view class="card mb-2" v-for="(item,index) in personlist" :key="index" @click="partnerDetail(item.id)">
+			<view class="card mb-2" v-for="(item,index) in personlist.data.records" :key="index">
+				<!-- 权限锁定组件 -->
+				<uni-permission-view position="fixed" :backimage="true"
+					v-if="personlist.parentStatus=='2' && index==personlist.data.records.length-1" direction="row"
+					:genericText="`完成任务,解锁“${personlist.gradeName.slice(2)}”,查看所有下级成员`" cornerRadius="8rpx"
+					:genericTextStyle="{fontSize:'26rpx'}">
+				</uni-permission-view>
+				<!-- 权限锁定组件 -->
 				<view class="card-title dis a-c j-s mb-2">
 					<view class="dis a-c ">
 						<view class="avatar">
@@ -37,7 +48,7 @@
 					</view>
 					<text>{{item.createTime}} &nbsp;加入</text>
 				</view>
-				<view class="card-data dis a-c j-s ">
+				<view class="card-data dis a-c j-s " @click.stop="partnerDetail(item.id)">
 					<view class="view dis f-c a-c ">
 						<text>{{item.number}}</text>
 						<text>{{item.gradeName}}</text>
@@ -53,142 +64,69 @@
 				</view>
 			</view>
 		</view>
-		<u-popup v-model="ShowModal" mode="bottom" border-radius="15">
-			<view class="popup-code">
-				<text @click="ShowModalCodeFun(level)">合伙人</text>
-				<text @click="ShowModalCodeworkFun">工作室</text>
-			</view>
-		</u-popup>
-		<u-popup v-model="ShowModalCode" mode="bottom" border-radius="15">
-			<view class="ShowModalCode-style ">
-				<text>{{chineseNumbers[relativeLeavl]}}级合伙人招募码</text>
-				<view class=" ShowModalCode-con">
-					<view>扫码加入</view>
-					<image :src="partnerImg" mode="widthFix" lazy-load style="width: 150px;"></image>
-				</view>
-			</view>
-		</u-popup>
-		<u-popup v-model="ShowModalCodebusiness" mode="bottom" border-radius="15">
-			<view>
-				<text class=" ShowModalCode-business">工作室业务</text>
-				<view>
-					<radio-group class="uni-list" @change="styleChange">
-						<view v-for="(item, index) in styles" :key="index" class="uni-list-item">
-							<view class="uni-list-item__container">
-								<view class="uni-list-item__content">
-									<text class="uni-list-item__content-title">{{ item.text }}</text>
-								</view>
-								<view class="uni-list-item__extra">
-									<radio :value="item.value" :checked="item.checked" />
-								</view>
-							</view>
-							<view class="uni-list-item__notestext">{{ item.notestext }}</view>
-						</view>
-					</radio-group>
-				</view>
-				<view class="ShowModalCode-sumbit" @click="ShowModalCodeSumbit()">确定</view>
-			</view>
-		</u-popup>
-		<u-popup v-model="ShowModalCode1" mode="bottom" border-radius="15">
-			<view class="ShowModalCode-style ">
-				<text>工作室招募码</text>
-				<view class=" ShowModalCode-con">
-					<view>扫码加入</view>
-					<image :src="workImg" mode="widthFix" lazy-load style="width:150px;"></image>
-				</view>
-			</view>
-		</u-popup>
-		<u-popup mode="center" ref="alertDialog" type="dialog">
-			<uni-popup-dialog type="warn" cancelText="取消" confirmText="确定" title=" " :content="dialogContent"
-				@confirm="dialogConfirm" @close="dialogClose"></uni-popup-dialog>
-		</u-popup>
+		<u-loadmore v-if="personlist.data.records.length!=0" :status="status" />
 		<my-date-picker ref="datePicker" @confirmPickDate="confirmPickDate" />
 	</view>
 </template>
 <script>
 	import myDatePicker from '../components/date-picker.vue';
-	import seach from '../components/seach.vue';
 	import QR from "@/common/wxqrcode.js"
 
 	import {
 		mapState,
 		mapMutations
 	} from "vuex"
-	// import uniPopup from 'x../../../components/';
-
-	// import card from '../components/card.vue'
 	export default {
 		components: {
-			myDatePicker,
-			seach
+			myDatePicker
 		},
 		computed: {
-			...mapState(['userInfo', "userCheckInfo", ]),
+			...mapState(['userInfo', "userCheckInfo"]),
 		},
 		data() {
 			return {
 				//tab选项
+				totalInfo: {}, //选中角色统计数据
 				tablist: [], //动态tab
 				personlist: [],
 				current: 0,
-				dialogContent: '',
-				ShowalertDialog: false,
-				relativeLeavl: null,
-				ShowModal: false,
-				ShowModalCode: false,
-				ShowModalCode1: false,
-				ShowModalCodebusiness: false,
-				chineseNumbers: ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'],
-				teamTabIndex: 0,
-				directLsit: [{
-						partnerNumber: 1
-					},
-					{
-						partnerNumber: 2
-					}
-				],
-				source: 0,
-				totalPages: 0,
-				totalSize: 0,
 				status: 'loadmore',
-				pageRequest: { //查询的默认条件
+				pageQuery: {
+					grade: "",
+					startTime: "",
+					endTime: "",
 					pageNum: 1,
-					pageSize: 20,
-					userName: ''
-				},
-				partnerImg: '',
-				workImg: '',
-				directLsitOne: {},
-				directLsitTwo: {},
-				directLsitThree: {},
-				directLsitFour: {},
-				userLevel: "",
-				styles: [{
-						value: '1',
-						text: '渠道',
-						notestext: '团队长加出单员模式,无分销模式,结费都在团队长处。',
-						checked: true
-					},
-					{
-						value: '2',
-						notestext: '团队长加代理人模式,三级分销模式,结费方式为个人,有佣金。',
-						text: '个代'
-					}
-				],
-				deptSource: 1,
-				startTime: "",
-				endTime: "",
-				grade: "",
+					pageSize: 5,
+				}
+
 			}
 		},
+		onReachBottom() {
+			if (this.pageQuery.pageNum >= this.personlist.data.totalPages) return;
+			this.status = 'loading';
+			this.pageQuery.pageNum = ++this.pageQuery.pageNum;
+			setTimeout(async () => {
+				let res = await this.$http.post('/newAppPartner/selectByGradeList', this.pageQuery);
+				if (res.code == '200') {
+					this.personlist.data.records = [...this.personlist.data.records, ...res.data[this.current]
+						.data.records
+					];
+				}
+				if (this.pageQuery.pageNum >= this.personlist.data.totalPages) this.status = 'nomore';
+				else this.status = 'loading';
+			}, 1000)
+		},
 		async onLoad(params) {
-			this.grade = params.grade;
+			this.pageQuery.grade = params.grade;
 			if (params.startTime) {
-				this.startTime = params.startTime;
-				this.endTime = params.endTime;
+				this.pageQuery.startTime = params.startTime;
+				this.pageQuery.endTime = params.endTime;
 			}
-			this.queryData();
-			this.userLevel = this.userInfo.sysUser.level
+			await this.queryData(0);
+			const index = this.tablist.findIndex(item => item.grade == params.grade);
+			this.current = index; //获取对应身份的数据下标
+			this.personlist = this.tablist[index]; //获取对应身份的数据列表
+			this.totalInfo = this.tablist[index].total; //获取对应身份的数据统计
 		},
 		methods: {
 			//下拉筛选
@@ -197,51 +135,24 @@
 			},
 			//日期选择事件
 			confirmPickDate(startdate, enddate) {
-				this.startTime = startdate;
-				this.endTime = enddate;
+				this.pageQuery.startTime = startdate;
+				this.pageQuery.endTime = enddate;
 				this.queryData();
 			},
 			//数据格式化
 			numberFormat(value) {
 				return (value).toLocaleString('en-US');
 			},
+			//选项卡切换
 			change(index) {
 				this.current = index;
+				this.personlist = this.tablist[index]
+				this.totalInfo = this.tablist[index].total;
+				this.pageQuery.pageNum = 1;
+				this.pageQuery.pageSize = 5;
+				this.queryData(index);
 			},
-			dialogClose() {
-				this.$refs.alertDialog.close()
-			},
-			styleChange(e) {
-				this.deptSource = e.detail.value
-			},
-			dialogConfirm() {
-				this.ShowModalCode = true
-				this.$refs.alertDialog.close()
-				this.partnerImg = QR.createQrCodeImg(this.$base.h5BaseUrl + "/#/pages/index/applypartner?level=" + this
-					.level + '&userId=' + this.userInfo.sysUser.userId, {
-						size: parseInt(200) //二维码大小  
-					})
-			},
-			ShowModalCodeFun(level, relativeLeavl) {
-				// 绝对等级:level  相对等级:relativeLeavl
-				this.level = level
-				this.relativeLeavl = relativeLeavl
-				// this.ShowalertDialog=true
-				this.dialogContent = `是否招募${this.chineseNumbers[relativeLeavl]}级合伙人?`
-				this.$refs.alertDialog.open()
-			},
-			ShowModalCodeSumbit() {
-				this.ShowModalCode1 = true
-				this.workImg = QR.createQrCodeImg(this.$base.h5BaseUrl + "/#/pages/index/applystudio?deptSource=" + this
-					.deptSource + '&userId=' + this.userInfo.sysUser.userId, {
-						size: parseInt(200) //二维码大小  
-					})
-			},
-			ShowModalCodeworkFun() {
-				this.ShowModalCodebusiness = true
-				this.deptSource = 1
-			},
-
+			//返回上一页
 			back() {
 				uni.navigateBack({
 					delta: 1, // 返回的页面数,如果是1表示返回上一页
@@ -249,37 +160,23 @@
 				});
 
 			},
-			backHome() {
-				uni.switchTab({
-					url: "/pages/index/index"
-				})
-			},
+			//跳转详情页
 			partnerDetail(id) {
 				uni.navigateTo({
 					url: "/pages/institutional/partnerDetail?id=" + id,
 				})
 			},
-			closeInstitution(item, level) {
-				if (item.leaderIds.length > 0) {
-					item.level = level
-					uni.navigateTo({
-						url: "/pages/institutional/institutionalTeam?key=" + encodeURIComponent(JSON.stringify(
-							item))
-					})
-				}
-			},
 			//列表数据
 			async queryData(grade) {
-				let res = await this.$http.get('/newAppPartner/selectByGradeList?grade=' + this.grade + '&startTime=' +
-					this
-					.startTime + '&endTime=' + this.endTime, );
+				let res = await this.$http.post('/newAppPartner/selectByGradeList', this.pageQuery);
 				if (res.code == '200') {
 					this.tablist = res.data; //选项卡
 					this.tablist.map(val => {
 						val.gradeName = "我是" + val.gradeName;
 						return val;
 					})
-					this.personlist = res.data[0].data; //页面赋值第一条数据
+					this.personlist = res.data[grade]; //页面赋值第一条数据
+					this.totalInfo = res.data[grade].total;
 				}
 			},
 
@@ -295,133 +192,80 @@
 		left: 0;
 		height: auto;
 		width: 100%;
-		z-index: 999999;
-		padding: 30rpx;
-		padding-top: 50px;
+		z-index: 999;
 
-		text {
-			font-size: 36rpx;
-			font-weight: bold;
-			color: #000;
-		}
+		.roleIdentity {
+			width: 100%;
+			height: 176rpx;
+			padding: 108rpx 30rpx 20rpx;
+			box-sizing: border-box;
+			background: linear-gradient(180deg, #D1EFFE 0%, #FFFFFF 100%);
+			border-bottom: 1rpx solid #f2f2f2;
+
+			.headers-activeTab {
+				width: 80%;
+				height: 50rpx;
+			}
+
+			.right {
+				image {
+					width: 28rpx;
+					height: 28rpx;
+					margin-right: 4rpx;
+				}
 
-		.headers-activeTab {
-			width: 80%;
+				text {
+					font-size: 24rpx;
+					color: #333;
+				}
+			}
 		}
 
-		.right {
-			position: absolute;
-			right: 30rpx;
+		//筛选
+		.filter {
+			width: 100%;
+			padding: 20rpx 30rpx;
+			box-sizing: border-box;
+			background-color: #fff;
 
-			image {
-				width: 28rpx;
-				height: 28rpx;
-				margin-right: 4rpx;
-			}
+			.filterTime {
+				text:first-child {
+					font-size: 26rpx;
+					color: #333;
+				}
 
-			text {
-				font-weight: 400;
-				color: #000;
-				font-size: 24rpx;
+				text:last-child {
+					font-size: 19rpx;
+					color: #666;
+					margin-left: 4rpx;
+				}
 			}
-		}
-	}
-
-	//头部背景
-	.homeBackground {
-		position: fixed;
-		top: 0;
-		left: 0;
-		z-index: 999;
-		width: 100%;
-		height: 176rpx;
-		background: linear-gradient(180deg, #D1EFFE 0%, #FFFFFF 100%);
-		border-bottom: 1rpx solid #f2f2f2;
-	}
 
-	//时间筛选
-	.filterTime {
-		position: fixed;
-		top: 176rpx;
-		left: 0;
-		width: 100%;
-		z-index: 999;
-		background: #fff;
-		border-radius: 0rpx 0rpx 0rpx 0rpx;
-		padding: 20rpx 30rpx;
-		box-sizing: border-box;
-
-		text:first-child {
-			font-size: 26 rpx;
-			color: #333;
 		}
 
-		text:last-child {
-			font-size: 19rpx;
-			color: #666;
-			margin-left: 4rpx;
+		//统计
+		.statistics {
+			width: 100%;
+			background: #EBF4FF;
+			padding: 8rpx 57rpx;
+			box-sizing: border-box;
+			font-size: 30rpx;
+			color: #2B67EF;
 		}
 	}
 
-	//业绩
-	.performance {
-		position: fixed;
-		top: 266rpx;
-		left: 0;
-		z-index: 999;
-		width: 100%;
-		height: 60rpx;
-		background: #EBF4FF;
-		border-radius: 0rpx 0rpx 0rpx 0rpx;
-		font-size: 30rpx;
-		color: #2B67EF;
-	}
 
-	.partner-head {
-		background: #FFFFFF;
-		color: #333333;
-		font-size: 14px;
-
-		i {
-			margin-left: 2px;
-			display: inline-block;
-			width: 0;
-			height: 0;
-			border: 4px solid;
-			border-color: #666666;
-			border-bottom: 4px solid transparent;
-			border-right: 4px solid transparent;
-			border-left: 4px solid transparent;
-		}
-	}
 
-	.sum-insurance {
-		padding: 10px 0;
 
-		view {
-			text-align: center;
-			width: 33.33%;
-			border-right: 1px solid #EEEEEE;
 
-			text {
-				display: block;
-			}
 
-			text:first-child {
-				font-weight: 600;
-				font-size: 18px;
-				color: #333333;
-			}
 
-			text:last-child {
-				font-size: 10px;
-				color: #999999;
-			}
-		}
-	}
+
+
 
 	//列表数据
 	.card {
+		position: relative;
 		background: #FFFFFF;
 		border-radius: 10rpx;
 		background-image: url("/static/card.png");

+ 35 - 23
pages/institutional/partnerDetail.vue

@@ -17,11 +17,15 @@
 						{{referrerInfo.referrerGrade}}
 					</view>
 				</view>
-
 			</view>
 		</view>
 		<view class="body p-2" style="padding-top: 400rpx;">
 			<view class="card mb-2" v-for="(item,index) in userlist" :key="index">
+				<!-- 权限锁定组件 -->
+				<uni-permission-view v-if="parentStatus==2 && index==userlist.length-1" direction="row"
+					:genericText="`完成任务,解锁“”,查看我的全部业绩`" cornerRadius="8rpx" :genericTextStyle="{fontSize:'26rpx'}">
+				</uni-permission-view>
+				<!-- 权限锁定组件 -->
 				<view class="card-title dis a-c j-s mb-2">
 					<view class="dis a-c ">
 						<view class="avatar">
@@ -47,6 +51,7 @@
 				</view>
 			</view>
 		</view>
+		<u-loadmore v-if="userlist.length!=0" :status="status" />
 	</view>
 </template>
 <script>
@@ -55,10 +60,32 @@
 			return {
 				referrerInfo: {}, //个人信息
 				userlist: [],
+				pageQuery: {
+					id: "",
+					pageNum: 1,
+					pageSize: 10,
+				},
+				status: 'loadmore',
+				totalPages: 0,
+				parentStatus: "",
 			}
 		},
+		onReachBottom() {
+			if (this.pageQuery.pageNum >= this.totalPages) return;
+			this.status = 'loading';
+			this.pageQuery.pageNum = ++this.pageQuery.pageNum;
+			setTimeout(async () => {
+				let res = await this.$http.post('/newAppPartner/selectByIdList', this.pageQuery);
+				if (res.code == '200') {
+					this.userlist = [...this.userlist, ...res.data.list.records];
+
+				}
+				if (this.pageQuery.pageNum >= this.totalPages) this.status = 'nomore';
+				else this.status = 'loading';
+			}, 1000)
+		},
 		onLoad(options) {
-			this.id = options.id;
+			this.pageQuery.id = options.id;
 			this.querydata();
 		},
 		methods: {
@@ -69,31 +96,15 @@
 				});
 			},
 			async querydata() {
-				let res = await this.$http.get('/newAppPartner/selectByIdList?id=' + this.id + '&startTime=' +
-					this
-					.startTime + '&endTime=' + this.endTime);
+				let res = await this.$http.post('/newAppPartner/selectByIdList', this.pageQuery);
 				if (res.code == '200') {
 					this.referrerInfo = res.data.referrer;
-					this.userlist = res.data.list;
+					this.userlist = res.data.list.records;
+					this.parentStatus = res.data.parentStatus;
+					this.totalPages = res.data.list.totalPages;
 				}
 			},
-			onReachBottom() {
-				if (this.pageRequest.pageNum >= this.totalPages) return;
-				this.status = 'loading';
-				this.pageRequest.pageNum = ++this.pageRequest.pageNum;
-				setTimeout(async () => {
-					let res = await this.$http.post('/sysPartner/querySysPartnerAPPPage', {
-						...this.pageRequest,
-						source: this.source
-					});
-					if (res.code == '200') {
-						this.totalSize = res.data.totalSize;
-						this.directLsit = [...this.directLsit, ...res.data.content];
-					}
-					if (this.pageRequest.pageNum >= this.totalPages) this.status = 'nomore';
-					else this.status = 'loading';
-				}, 1000)
-			},
+
 
 		}
 
@@ -191,6 +202,7 @@
 
 	//列表数据
 	.card {
+		position: relative;
 		background: #FFFFFF;
 		border-radius: 10rpx;
 		background-image: url("/static/card.png");

+ 1 - 1
pages/login/login.vue

@@ -184,7 +184,7 @@
 					},
 					appid: {
 						name: "appid",
-						value: "__UNI__3FA05C4",
+						value: "__UNI__2041321",
 					}
 				}
 			};

+ 11 - 8
pages/my/benefits.vue

@@ -3,15 +3,15 @@
 		<view class="header dis a-end j-s mb-2">
 			<view class="dis a-c ">
 				<image :src="backLogo" mode=""></image>
-				<view class="dis f-c title ml-3">
+				<view class="dis a-c  title ml-3">
+					<!-- <text>我的佣金比例</text> -->
 					<text>{{gradeText}}</text>
-					<text>我的佣金比例</text>
 				</view>
 			</view>
-			<view class="ratio dis a-end " @click="ratiodetail">
+			<!-- <view class="ratio dis a-end " @click="ratiodetail">
 				<text class="mr-1">{{info.totalRate}}%</text>
 				<u-icon name="arrow-right" color="#999" size="28"></u-icon>
-			</view>
+			</view> -->
 		</view>
 		<view class="wrap ">
 			<view class="tabs dis a-end">
@@ -114,6 +114,9 @@
 				</view>
 			</view>
 		</view>
+		<!-- <uni-permission-view position="fixed" :genericText="`完成任务,解锁“合伙人”`" sum='250' days="25"
+			padding="40rpx 40rpx 70rpx" :backimage="true" :imageStyle="{width:'102rpx',height:'100rpx'}">
+		</uni-permission-view> -->
 		<u-popup v-model="ratiodetailshow" mode="bottom" border-radius="20" :closeable="true">
 			<view class=" dis a-c j-c " style="border-bottom: 1rpx solid #eee;padding: 24rpx;box-sizing: border-box;">
 				<text class="font-weight" style="font-size: 36rpx;color: #333;">我的佣金比例</text>
@@ -263,10 +266,10 @@
 				font-weight: bold;
 			}
 
-			text:last-child {
-				font-size: 28rpx;
-				color: #666;
-			}
+			// text:last-child {
+			// 	font-size: 28rpx;
+			// 	color: #666;
+			// }
 		}
 
 		.ratio {

+ 19 - 18
pages/my/commission.vue

@@ -127,8 +127,8 @@
 					lable: '保险',
 					value: '2'
 				}],
-				beginTime:'',
-				endTime:'' 
+				beginTime: '',
+				endTime: ''
 			}
 		},
 		async onLoad(params) {
@@ -143,21 +143,21 @@
 				this.queryData()
 			},
 			confirmPickDate(dateStr, dateStr1) {
-				if (dateStr) {	
+				if (dateStr) {
 					dateStr += ' 00:00:01'
 				}
 				if (dateStr1) {
 					dateStr1 += ' 23:59:59'
 				}
-				this.beginTime=dateStr
-				this.endTime=dateStr1
+				this.beginTime = dateStr
+				this.endTime = dateStr1
 				this.queryData()
 			},
-			view(item) {	
+			view(item) {
 				uni.navigateTo({
 					url: "/pages/my/commissionDetail?key=" + encodeURIComponent(JSON.stringify(item))
 				})
-			},	
+			},
 			back() {
 				uni.navigateBack({
 					delta: 1, // 返回的页面数,如果是1表示返回上一页
@@ -170,8 +170,8 @@
 				this.pageRequest.pageNum = ++this.pageRequest.pageNum;
 				setTimeout(async () => {
 					let res = await this.$http.post('/APPPartner/getCommissionInfo', {
-						beginTime:this.beginTime,
-						endTime:this.endTime,
+						beginTime: this.beginTime,
+						endTime: this.endTime,
 						industrySector: this.industrySector,
 						...this.pageRequest
 					});
@@ -184,10 +184,10 @@
 					else this.status = 'loading';
 				}, 1000)
 			},
-			async queryData() {	
+			async queryData() {
 				let params = {
-					beginTime:this.beginTime,
-					endTime:this.endTime,
+					beginTime: this.beginTime,
+					endTime: this.endTime,
 					// industrySector: '1',
 					...this.pageRequest,
 					industrySector: this.industrySector
@@ -386,12 +386,12 @@
 
 			.dividend {
 				width: 100%;
-				display: flex;	
-			
+				display: flex;
+
 
 				.dividend_left {
 					width: 120rpx;
-						font-size: 24rpx;
+					font-size: 24rpx;
 					margin-right: 20rpx;
 					color: #999999;
 				}
@@ -400,9 +400,10 @@
 					flex: 1;
 					display: flex;
 					flex-wrap: wrap;
-					.dividend_options{
-					font-size: 24rpx;
-					margin-right: 24rpx;
+
+					.dividend_options {
+						font-size: 24rpx;
+						margin-right: 24rpx;
 					}
 				}
 			}

+ 2 - 2
pages/my/commissionDetail.vue

@@ -54,7 +54,7 @@
 			<view class="extractFee_box" v-if="isShow">
 				<view class="option" v-for="(item,index) in MoneyData.commissionRatio" :key="index">
 					<view class="option_left">
-						<text v-if="index ==0"> {{item.grade}}</text>
+						<text> {{item.grade}}</text>
 					</view>
 					<view class="option_right">
 						{{item.commission}}
@@ -105,7 +105,7 @@
 		onShow() {},
 		methods: {
 			async queryData() {
-				let res = await this.$http.get('/newAppPartner/myPerformanceDetails?ordersNo=订单号');
+				let res = await this.$http.get('/newAppPartner/myPerformanceDetails?ordersNo=' + this.ordersNo);
 				if (res.code == '200') {
 					this.MoneyData = res.data;
 				}

+ 359 - 124
pages/my/my.vue

@@ -23,43 +23,85 @@
 		</view>
 		<image :src="backImage" mode="" style="width: 100%;height: 738rpx;position: absolute;"></image>
 		<view class="Personnel">
-			<view class="Personnel-title" @click="promotionCode">
-				<image src="/static/icon/code.png" mode="">
-				</image>
-				推广码
-			</view>
 			<view class="dis a-c  Personnel-info">
 				<view class="Personnel-img" @click="updateAvatar">
 					<image :src="avatar" class="avatar" mode=""></image>
 					<image src="/static/image/my/updateAvatar.png" mode=""></image>
 				</view>
-				<view class="full-name">
-					<text>{{ userInfo.sysUser.userName }}</text>
-					<!-- <text >司龄 1年</text> -->
-				</view>
-				<text style="line-height: 17px;">{{ userInfo.sysUser.deptName }}</text>
-				<view class=" dis j-s digit">
-					<view v-if="userInfo.sysUser.weChat" class=" dis" style="padding-left: 20%;">
-						<image src="/static/icon/weixin.png" mode=""></image>
-						<text>{{ userInfo.sysUser.weChat }}</text>
+				<view class="dis f-c ml-3">
+					<view class="full-name">
+						<text>{{ userInfo.sysUser.userName }}</text>
 					</view>
-					<view class=" dis a-c">
-						<image src="/static/icon/dianhua.png" mode=""></image>
-						<text>{{ userInfo.sysUser.mobile }}</text>
+					<view class=" dis f-c  digit">
+						<text>手机号:{{userInfo.sysUser.userId}}</text>
+						<text>工号:{{ userInfo.sysUser.mobile }}</text>
 					</view>
 				</view>
+
 			</view>
 			<!-- 权益 -->
-			<view class="benefits mt-3 dis a-c j-s">
-				<view class="dis a-c ">
-					<image :src="backLogo" mode=""></image>
-					<view class="dis f-c title ml-2">
-						<text>{{gradeText}}权益</text>
-						<text>多项权益已解锁</text>
+			<view class="benefits mt-3 dis f-c">
+				<view class="dis j-s a-c header">
+					<view class="dis title">
+						<image :src="backLogo" mode=""></image>
+						<text class="ml-1"
+							v-if="superiorIdentityData.lockingState==0 && !superiorIdentityData.upgrade || superiorIdentityData.lockingState==2">解锁成为“{{superiorIdentityData.gradeName}}”获取更多权益</text>
+						<text class="ml-1"
+							v-if="superiorIdentityData.lockingState==0 && superiorIdentityData.upgrade">恭喜您已达成升级为{{superiorIdentityData.gradeName}}的条件</text>
+						<text class="ml-1"
+							v-if="superiorIdentityData.lockingState==1">恭喜您成为{{superiorIdentityData.gradeName}}</text>
+					</view>
+					<view
+						v-if="superiorIdentityData.lockingState==0 && !superiorIdentityData.upgrade || superiorIdentityData.lockingState==2 && !superiorIdentityData.upgrade"
+						class="tag" @click="upgradeTask">完成任务</view>
+					<view
+						v-if="superiorIdentityData.lockingState==0 && superiorIdentityData.upgrade && !superiorIdentityData.upgradeStatus || superiorIdentityData.lockingState==2 && superiorIdentityData.upgrade && !superiorIdentityData.upgradeStatus"
+						class="tag" @click="requestUnlock">申请解锁</view>
+					<view v-if="superiorIdentityData.upgradeStatus" class="tag">申请中</view>
+					<view v-if="superiorIdentityData.lockingState==1" class="tag" @click="benefitsNavigate">查看权益</view>
+				</view>
+				<view class="content">
+					<view class="item dis f-c ">
+						<view class="dis a-c">
+							<text>发展{{superiorIdentityData.gradeName}}团队</text>
+							<u-icon name="arrow-right" color="#333" size="26"></u-icon>
+						</view>
+						<text>横向扩展团队,为收益添薪</text>
+					</view>
+					<view class="item dis f-c ml-3">
+						<view class="dis a-c ">
+							<text
+								v-if="superiorIdentityData.lockingState==2">{{superiorIdentityData.lockCommission || 0}}元佣金</text>
+							<text v-else>{{superiorIdentityData.ratio}}%</text>
+							<u-icon name="arrow-right" color="#333" size="26"></u-icon>
+						</view>
+						<text v-if="superiorIdentityData.lockingState==2">{{superiorIdentityData.zeroDays}}天后清0</text>
+						<text v-else>每单保费的佣金比例</text>
+					</view>
+				</view>
+
+			</view>
+			<!-- 身份解锁进度条 -->
+			<view class="multiIdentityUnlockProgress  dis ">
+				<view class="step dis f-c" v-for="(item,index) in filteredBackLogoList" :key="index"
+					v-if="item.grade!=1">
+					<view class="dis a-c">
+						<!-- 进度指示条 -->
+						<view class="progressBar">
+							<view class="sche-bg-jindu"
+								:style="{width:progressBarClass(item),borderRadius:borderRadiusClass(item)}">
+							</view>
+						</view>
+						<!-- 身份显示 -->
+						<view class=" dis a-c j-c " :class="roleStatusClass(item)">
+							<image class="rolelogo" :src="getRoleImage(item)" mode="">
+							</image>
+						</view>
 					</view>
+					<text class="title dis j-end">{{item.gradeName}}</text>
 				</view>
-				<view class="tag" @click="benefitsNavigate">查看权益</view>
 			</view>
+			<!-- 身份解锁进度条 -->
 			<view class="withdrawal-box">
 				<view class="dis a-c j-c  withdrawal-title">
 					<text>可提现总金额</text>
@@ -85,18 +127,17 @@
 				<view class="withdrawal-fun" @click="toWithdraw">提现</view>
 			</view>
 		</view>
-		<view class=" dis a-c j-s" style="margin: 0px 16px;">
+		<!-- <view class=" dis a-c j-s" style="margin: 0px 16px;">
 			<view class="withdrawal-record">
 				<i></i>
 				<text>提现记录</text>
 			</view>
 			<view class="search" @click="searchPopup">
-				<text>自定义时间<i></i></text>
+				<text>自定义时间</text>
+				<i></i>
 			</view>
-		</view>
-		<view class="withdrawal-flow">
-			<!-- 	<view style="border-bottom: 1px solid #EEEEEE;padding: 15px 0;
-    margin: 0 15px;" v-for="val in withdrawalData" :key="val"> -->
+		</view> -->
+		<!-- <view class="withdrawal-flow">
 			<view class="withdrawal-card" v-for="(val,index) in withdrawalData" :key="index"
 				@click="viewWithdrawal(val)">
 				<view class="dis j-s">
@@ -118,19 +159,8 @@
 					</view>
 				</view>
 			</view>
-		</view>
+		</view> -->
 		<my-date-picker ref="datePicker" @confirmPickDate="confirmPickDate" />
-		<!-- <view style="width: 323px;" id="gxxImg">
-		 	<canvas canvas-id="myCanvas" style="width: 300px; height: 200px;"></canvas>
-		 	<view class="ShowModalCode-style">
-		 		<text>推广码</text>
-		 		<text @tap="ShowModalCode=false" >×</text>
-		 	</view>
-		 	<view class="ShowModalCode-con">
-		 		<text>请扫码下载掌柜科技APP</text>
-		 		<image :src="workImg" mode="widthFix" lazy-load style="width: 150px;"></image>
-		 	</view>
-		 </view> -->
 		<u-popup v-model="ShowModalCode" mode="center" border-radius="15">
 			<view style="width: 323px;" id="pdfContentsDiv">
 				<view class="ShowModalCode-style">
@@ -138,8 +168,8 @@
 					<text @tap="ShowModalCode = false">×</text>
 				</view>
 				<view class="ShowModalCode-con">
-					<text v-if="type==2">请扫码下载掌柜科技APP</text>
-					<text v-if="type==1">请扫码下载掌柜合伙人APP</text>
+					<text v-if="userInfo.sysUser.grade==4">请扫码下载掌柜科技APP</text>
+					<text v-else>请扫码下载掌柜合伙人APP</text>
 					<image :src="workImg" mode="widthFix" lazy-load style="width: 150px;"></image>
 				</view>
 				<view class="dis" style="justify-content: space-around;padding:0 60px 20px 60px;">
@@ -158,6 +188,11 @@
 				</view>
 			</view>
 		</u-popup>
+		<!-- <view class="Personnel-title" @click="promotionCode">
+			<image src="/static/icon/code.png" mode="">
+			</image>
+			推广码
+		</view> -->
 		<u-action-sheet :list="Avatarlist" v-model="updateAvatarShow" border-radius="20"></u-action-sheet>
 	</view>
 </template>
@@ -192,7 +227,7 @@
 				current: 0,
 				mode: 'default',
 				headerStyle: {
-					backgroundColor: '',
+					backgroundColor: 'transparent',
 					backgroundImage: '',
 					backgroundSize: '',
 					backgroundPosition: '',
@@ -209,42 +244,45 @@
 				workImg: '',
 				pathUrl: '',
 				type: uni.getStorageSync('type'),
-				//页面角色背景图匹配列表
-				backImageList: [{
+				roleIdentityList: [], //角色身份列表
+				//身份图片list
+				gradeimageList: [{
 						grade: 1,
-						url: "/static/image/my/grade1.png"
-					},
-					{
-						grade: 2,
-						url: "/static/image/my/grade2.png"
-					},
-					{
-						grade: 3,
-						url: "/static/image/my/grade3.png"
-					},
-					{
-						grade: 4,
-						url: "/static/image/my/grade4.png"
-					}
-				],
-				//角色权益等级匹配列表
-				backLogoList: [{
-						grade: 1,
-						url: "/static/image/my/benefits/active1.png"
+						backImageurl: "/static/image/my/grade1.png", //身份背景图
+						logourl: "/static/image/my/benefits/active1.png", //身份logo
+						isUnlockedurl: '/static/image/my/benefits/isUnlocked.png', //身份未解锁
+						waitingToUnlockurl: '/static/image/my/benefits/waitingToUnlock1.png', //身份待解锁
+						isLockedurl: '/static/image/my/benefits/isLocked2.png', //身份锁定
+
 					},
 					{
 						grade: 2,
-						url: "/static/image/my/benefits/active2.png"
+						backImageurl: "/static/image/my/grade2.png",
+						logourl: "/static/image/my/benefits/active2.png",
+						isUnlockedurl: '/static/image/my/benefits/isUnlocked.png',
+						waitingToUnlockurl: '/static/image/my/benefits/waitingToUnlock2.png',
+						isLockedurl: '/static/image/my/benefits/isLocked2.png',
+
 					},
 					{
 						grade: 3,
-						url: "/static/image/my/benefits/active3.png"
+						backImageurl: "/static/image/my/grade3.png",
+						logourl: "/static/image/my/benefits/active3.png",
+						isUnlockedurl: '/static/image/my/benefits/isUnlocked.png',
+						waitingToUnlockurl: '/static/image/my/benefits/waitingToUnlock3.png',
+						isLockedurl: '/static/image/my/benefits/isLocked3.png',
+
 					},
 					{
 						grade: 4,
-						url: "/static/image/my/benefits/active4.png"
+						backImageurl: "/static/image/my/grade4.png",
+						logourl: "/static/image/my/benefits/active4.png",
+						isUnlockedurl: '/static/image/my/benefits/isUnlocked.png',
+						waitingToUnlockurl: '/static/image/my/benefits/waitingToUnlock4.png',
+						isLockedurl: '/static/image/my/benefits/isLocked4.png',
 					}
 				],
+				superiorIdentityData: {},
 			}
 
 		},
@@ -259,13 +297,23 @@
 					4: '工作室'
 				}
 				return gradeMap[this.userInfo.sysUser.grade] || ''
-			}
-		},
+			},
+			//过滤数组
+			filteredBackLogoList() {
+				return this.roleIdentityList.filter(item => item.grade != 1)
+			},
+			//获取上级
+
 
+		},
+		async onLoad() {
+			await this.queryIdentityInformation(); //获取身份列表
+			this.backImage = this.roleIdentityList.find(val => val.grade == this.userInfo.sysUser.grade)
+				.backImageurl; //获取背景图
+			this.backLogo = this.roleIdentityList.find(val => val.grade == this.userInfo.sysUser.grade)
+				.logourl; //获取logo
+		},
 		async onShow() {
-			// level:0 工作室
-			this.backImage = this.backImageList.find(val => val.grade == this.userInfo.sysUser.grade).url;
-			this.backLogo = this.backLogoList.find(val => val.grade == this.userInfo.sysUser.grade).url;
 			let userInfoRes = await this.$http.get('/newAppPartner/getUserInfo', {
 				type: uni.getStorageSync('type')
 			});
@@ -278,8 +326,8 @@
 						}
 					}
 				})
-
 			}
+			this.queryIdentityInformation();
 			let res = await this.$http.get('/newAppPartner/newGetFee'); //获取账户金额
 			if (res.code == 200) {
 				this.getApplication = res.data || [];
@@ -293,8 +341,7 @@
 			if (this.userInfo.sysUser.insUploadFiles && this.userInfo.sysUser.insUploadFiles.url) {
 				this.avatar = this.$base.baseUrl + this.userInfo.sysUser.insUploadFiles.url;
 			}
-			this.WithdrawalqueryData()
-
+			// this.WithdrawalqueryData()
 		},
 		onPageScroll(e) {
 			this.handleScroll(e);
@@ -306,18 +353,105 @@
 				duration: 0
 			});
 			uni.$on('scroll', this.handleScroll);
+
 		},
 		destroyed() {
 			uni.$off('scroll', this.handleScroll);
 		},
 		methods: {
 			...mapMutations(['emptyUserInfo']),
+			async queryIdentityInformation() {
+				let res = await this.$http.get('/newAppPartner/queryIdentityInformation'); //获取各级身份
+				if (res.code == 200) {
+					const merged = res.data.map(itemA => {
+						const gradeimageinfo = this.gradeimageList.find(itemB => itemB.grade === itemA.grade);
+						return {
+							...itemA,
+							...gradeimageinfo
+						}; // 合并两个对象
+					});
+					this.roleIdentityList = merged;
+					const isLocked = this.roleIdentityList[0].lockingState; //获取最低身份锁定状态
+					console.log(isLocked);
+					let grade = this.userInfo.sysUser.grade == 1 ? this.userInfo.sysUser
+						.grade : this.userInfo.sysUser.grade == 4 && isLocked == 2 ? this.userInfo.sysUser.grade : this
+						.userInfo.sysUser.grade - 1;
+					this.superiorIdentityData = this.roleIdentityList.find(item => item.grade == grade)
+					console.log(this.superiorIdentityData);
+				} else {
+					uni.showToast({
+						title: res.msg,
+						icon: 'none'
+					})
+				}
+			},
+			//申请解锁
+			async requestUnlock() {
+				console.log(this.superiorIdentityData);
+				let res = await this.$http.post('/partner/submitLiftingRecord', {
+					grade: this.superiorIdentityData.grade,
+					upgradeType: this.superiorIdentityData.lockingState == 2 ? '1' : '0'
+				});
+				if (res.code == '200') {
+					uni.showToast({
+						title: res.msg,
+						icon: 'none',
+					});
+					this.queryIdentityInformation() //申请解锁后更新身份
+				} else {
+					uni.showToast({
+						title: res.msg,
+						icon: 'none',
+					});
+				}
+			},
+			// 获取角色状态类名
+			roleStatusClass(item) {
+				return item.lockingState == 0 ? 'role-unlocked' : 'role-isUnlocked'
+			},
+			// 获取角色图片
+			getRoleImage(item) {
+				if (item.lockingState == 0) {
+					return item.upgrade ? item.waitingToUnlockurl : item.isUnlockedurl
+				} else if (item.lockingState == 1) {
+					return item.logourl
+				}
+				return item.isLockedurl
+			},
+			//控制进度条占比
+			progressBarClass(item) {
+				if (item.progressBar == 0) {
+					return '0%'
+				} else if (item.progressBar == 1) {
+					return '50%'
+				} else {
+					return '100%'
+				}
+			},
+			//控制进度条圆角
+			borderRadiusClass(item) {
+				const {
+					grade,
+					progressBar
+				} = item;
+
+				if (grade == 4) {
+					return progressBar == 1 ? '100px' : '100px 0 0 100px';
+				}
+				return progressBar == 1 ? '0 100px 100px 0' : '0';
+			},
 			// 权益跳转
 			benefitsNavigate() {
 				uni.navigateTo({
 					url: "/pages/my/benefits?grade=" + this.userInfo.sysUser.grade,
 				})
 			},
+			//完成任务
+			upgradeTask() {
+				uni.navigateTo({
+					url: "/pages/my/upgradeTask?info=" + JSON.stringify(this.superiorIdentityData),
+				})
+			},
 			//修改头像
 			async updateAvatar() {
 				let [chooseImageErr, chooseImageRes] = await uni.chooseImage({
@@ -464,7 +598,7 @@
 						},
 						appid: {
 							name: "appid",
-							value: this.type == 2 ? "__UNI__D4FE29A" : '__UNI__3FA05C4',
+							value: this.userInfo.sysUser.grade == 4 ? "__UNI__D4FE29A" : '__UNI__2041321',
 						}
 					}
 				}
@@ -578,6 +712,7 @@
 				// this.headerStyle.backgroundPosition = this.showBackground ? 'center' : '';
 				this.prevScrollTop = scrollTop;
 			},
+			//跳转设置
 			tool() {
 				uni.navigateTo({
 					url: "/pages/set/set"
@@ -596,9 +731,13 @@
 				}, 500);
 			},
 			incomeClick() {
+				let info = this.roleIdentityList.find(item => item.grade == this.userInfo.sysUser.grade)
 				uni.navigateTo({
-					url: "/pages/my/commission"
+					url: '/pages/institutional/myEarnings?info=' + JSON.stringify(info)
 				})
+				// uni.navigateTo({
+				// 	url: "/pages/my/commission"
+				// })
 
 			},
 			// 去账单明细
@@ -775,43 +914,31 @@
 	}
 
 	.Personnel-info {
-		flex-direction: column;
 		font-size: 14px;
 		color: #152F63;
 
 	}
 
 	.full-name {
-		margin-top: 8px;
-		// margin-left: 12%;
+		margin-top: 10rpx;
 		color: #152F63;
-
-		text:first-child {
-			font-weight: 700;
-			font-size: 18px;
-			line-height: 22px;
-		}
-
-		// text:last-child{
-		// 	margin-left: 10px;
-		// 	font-weight: 400;
-		// 	font-size: 10px;
-		// 	line-height: 12px;
-		// }	
+		font-weight: bold;
+		font-size: 36rpx;
+		line-height: 1;
 	}
 
 	.digit {
-		margin-top: 8px;
+		box-sizing: border-box;
+		width: 100%;
+		font-size: 24rpx;
+		color: #152F63;
+		margin-top: 26rpx;
+		line-height: 1;
 
-		view {
-			// width: 110px; 
+		text:first-child {
+			margin-bottom: 20rpx;
 		}
 
-		image {
-			width: 20px;
-			height: 20px;
-			display: inline-block;
-		}
 	}
 
 	.withdrawal-box {
@@ -1002,40 +1129,148 @@
 
 	// 权益
 	.benefits {
-		height: 122rpx;
 		background: #FFFFFF;
 		border-radius: 10rpx 10rpx 10rpx 10rpx;
-		background-image: url("/static/image/my/benefits.png");
-		background-size: 100% 100%;
-		padding: 20rpx 30rpx;
+		padding: 20rpx 0 0;
 		box-sizing: border-box;
 
-		image {
-			width: 72rpx;
-			height: 82rpx;
+		.header {
+			padding: 0 30rpx;
+			box-sizing: border-box;
+
+			image {
+				width: 37rpx;
+				height: 42rpx;
+			}
+
+			.tag {
+				padding: 3rpx 17rpx;
+				box-sizing: border-box;
+				background: linear-gradient(132deg, #2DD9FF 0%, #2D6DFF 100%);
+				border-radius: 4rpx 4rpx 4rpx 4rpx;
+				font-size: 24rpx;
+				color: #FFFFFF;
+			}
+
+			.title {
+				font-size: 28rpx;
+				color: #333;
+			}
 		}
 
-		.title {
-			text:first-child {
-				font-weight: bold;
+
+		.content {
+			width: 100%;
+			padding: 20rpx 30rpx 30rpx;
+			box-sizing: border-box;
+			background: linear-gradient(180deg, #F0F8FF 0%, rgba(240, 248, 255, 0) 100%);
+			border-radius: 0rpx 0rpx 10rpx 10rpx;
+			margin-top: 16rpx;
+			display: grid;
+			grid-template-columns: repeat(2, 1fr);
+			grid-template-rows: auto;
+
+			.item {
+				text:first-child {
+					font-size: 30rpx;
+					color: #333;
+					font-weight: bold;
+				}
+
+				text:last-child {
+					font-size: 24rpx;
+					color: #666;
+
+				}
+			}
+
+			.item:first-child {
+				border-right: 1rpx solid #E0F2FF;
+			}
+		}
+
+
+
+	}
+
+	///////
+	.multiIdentityUnlockProgress {
+		background-color: #fff;
+		padding: 20rpx 46rpx 20rpx 30rpx;
+		box-sizing: border-box;
+		border-radius: 10rpx;
+		margin: 10px 0;
+
+		.step {
+			width: 38%;
+			height: auto;
+
+			.progressBar {
+				position: relative;
+				background-color: #F0F0F0;
+				height: 14rpx;
+				flex: 1;
+
+				.sche-bg-jindu {
+					position: absolute;
+					left: 0;
+					top: 0;
+					height: 14rpx;
+					background: #2DD9FF;
+
+				}
+
+			}
+
+			//已解锁
+			.role-isUnlocked {
+				width: 66rpx;
+				height: 66rpx;
+				border-radius: 50%;
+				background: #F0F7FF;
+				border: 4rpx solid #2DD9FF;
+				padding: 7rpx 10rpx;
+				box-sizing: border-box;
+			}
+
+			//未解锁
+			.role-unlocked {
+				width: 66rpx;
+				height: 66rpx;
+				border-radius: 50%;
+				background: #F0F0F0;
+				padding: 7rpx 10rpx;
+				box-sizing: border-box;
+			}
+
+			.rolelogo {
+				width: 38rpx;
+				height: 43rpx;
+			}
+
+			.title {
 				font-size: 30rpx;
 				color: #333;
-
+				margin-top: 20rpx;
+				margin-right: -12rpx;
 			}
+		}
 
-			text:last-child {
-				font-size: 24rpx;
-				color: #999;
+		.step:first-child {
+			width: 24%;
+
+			.progressBar {
+				border-radius: 100px 0 0 100px;
+
+				.sche-bg-jindu {
+					border-radius: 100px 0 0 100px;
+				}
 			}
 		}
 
-		.tag {
-			padding: 3rpx 17rpx;
-			box-sizing: border-box;
-			background: linear-gradient(132deg, #2DD9FF 0%, #2D6DFF 100%);
-			border-radius: 4rpx 4rpx 4rpx 4rpx;
-			font-size: 24rpx;
-			color: #FFFFFF;
+		.step:last-child {
+			.role-isUnlocked {}
+
 		}
 	}
 </style>

+ 659 - 0
pages/my/upgradeTask.vue

@@ -0,0 +1,659 @@
+<template>
+	<view class="page">
+		<!-- 页面背景图 -->
+		<image class="backimage" src="/static/image/my/upgradeTask/back.png" mode=""></image>
+		<!-- 头部标题 -->
+		<view class="headers dis a-c j-start">
+			<u-icon name="arrow-left" color="#333" size="38" @tap="back" :custom-style="{fontWeight:'bold'}"></u-icon>
+			<text style="margin: auto;">升级任务</text>
+		</view>
+		<!-- 升级任务 -->
+		<view class="contentArea">
+			<!-- 装饰图 -->
+			<view class="decoration dis a-c j-s">
+				<view class="dis f-c">
+					<image class="textimg" src="/static/image/my/upgradeTask/text.png" mode=""></image>
+					<text class="text">完成任务 解锁更高等级身份</text>
+				</view>
+				<image class="logo" src="/static/image/my/upgradeTask/logo.png" mode=""></image>
+			</view>
+			<!-- 内容部分 -->
+			<view class="Area"
+				:style="{height:info.lockingState == '2'?'':'calc(100vh - 450rpx)',borderRadius: info.lockingState == '2'?'20rpx':'20rpx 20rpx 0 0 '}">
+				<view class="header dis a-c ">
+					<image class="logo" src="/static/image/my/upgradeTask/decoration1.png" mode=""></image>
+					<view class="title">
+						<text class="text">升级任务</text>
+						<image class="line" src="/static/image/my/upgradeTask/decoration2.png" mode=""></image>
+					</view>
+				</view>
+				<view class="message dis a-c j-c">{{upgradeTaskdata.assessmentEndDate}}前
+					满足下列{{upgradeTaskdata.appraise=='1'?'全部条件':'任意一条'}}即可升级
+				</view>
+				<!-- 任务列表 -->
+				<view class="task mt-4 dis f-c ">
+					<view class="item dis a-c j-s " v-if="item.checked" v-for="(item,index) in displayData"
+						:key="item.id">
+						<view class="task-icon">
+							<image :src="`/static/image/my/upgradeTask/icon${index+1}.png`" mode=""></image>
+						</view>
+						<view class="task-progress">
+							<!-- 任务标题 -->
+							<text class="title " v-if="upgradeTaskdata.grade=='2'">
+								{{ index==0 ? '邀请合伙人' :index==1? `${upgradeTaskdata.gradeName}下属成员出单保费`:'自己的出单保费' }}达{{item.min}}{{ index ? '元' : '人' }}
+							</text>
+							<text class="title " v-if="upgradeTaskdata.grade=='3'">
+								{{ index==0 ? '邀请工作室' :index==1? `${upgradeTaskdata.gradeName}下属成员出单保费`:'自己的出单保费' }}达{{item.min}}{{ index ? '元' : '人' }}
+							</text>
+							<text class="title " v-if="upgradeTaskdata.grade=='4'">
+								{{ index==0 ? '邀请团队长' :index==1? `${upgradeTaskdata.gradeName}下属成员出单保费`:'自己的出单保费' }}达{{item.min}}{{ index ? '元' : '人' }}
+							</text>
+							<text class="title " v-if="upgradeTaskdata.grade=='5'">
+								{{ index==0 ? '邀请团队长' :index==1? `${upgradeTaskdata.gradeName}下属成员出单保费`:'自己的出单保费' }}达{{item.min}}{{ index ? '元' : '人' }}
+							</text>
+							<view class=" dis a-c">
+								<!-- 进度条 -->
+								<view class="progressBar">
+									<view class="jindu"
+										:style="{width: `${ Number(item.achieve) / Number(item.min) * 100}%`}">
+									</view>
+								</view>
+								<!-- 进度条 -->
+								<view class="task-data dis a-c ml-1">
+									<text>{{item.achieve}}</text>
+									<text class="ml-1 mr-1">/</text>
+									<text>{{item.min}}</text>
+								</view>
+							</view>
+						</view>
+						<view :class="index==1?'task-btn1':'task-btn'" v-if="Number(item.achieve)>=Number(item.min)">
+							已完成
+						</view>
+						<view :class="index==1?'task-btn1':'task-btn'" v-else @click="incompleteTaskRedirect(index)">
+							{{index==1?'未完成':'去完成'}}
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+		<!-- 购买等级 -->
+		<view class="purchaseLevels  dis a-c j-c" v-if="info.lockingState == '2'">
+			<view class="purchaseLevel">
+				<!-- 头部 -->
+				<view class="header dis a-c j-c mb-3">
+					<!-- 星星装饰图 -->
+					<image class="star" src="/static/image/my/upgradeTask/star-left.png" mode=""></image>
+					<view class="title ">
+						<text>满足升级条件或直接联系客服购买该等级</text>
+						<view class="line"></view>
+					</view>
+					<image class="star" src="/static/image/my/upgradeTask/star-right.png" mode=""></image>
+				</view>
+				<!-- 内容 -->
+				<view class="dis a-c j-s">
+					<!-- 左侧红包样式 -->
+					<view class="redPacket">
+						<!-- 红包图片 -->
+						<image class="redPacket-img" src="/static/image/my/upgradeTask/redPacket.png" mode="">
+						</image>
+						<!-- 锁定样式 -->
+						<view class="lock">
+							<image class="lock-img" src="/static/image/my/upgradeTask/lock.png" mode=""></image>
+						</view>
+					</view>
+					<view class="redPacket-data dis f-c">
+						<view class="dis a-c ">
+							<text class="sum">¥{{info.lockCommission || 0 }}</text>
+							<text class="days">(已锁定 {{info.zeroDays}}天清0)</text>
+						</view>
+						<text class="ml-1" style="font-size: 26rpx;color: #999;">支付<text
+								style="color: #FFA008;">{{info.fallAmount}}</text>
+							元可解锁</text>
+					</view>
+					<view class="btn" @click="clickToUnlock">去解锁</view>
+				</view>
+			</view>
+		</view>
+		<u-popup v-model="contactServiceShow" mode="bottom" border-radius="20" :closeable="true">
+			<view class=" dis a-c j-c " style="border-bottom: 1rpx solid #eee;padding: 16rpx;box-sizing: border-box;">
+				<text class="font-weight" style="font-size: 36rpx;color: #333;">联系客服</text>
+			</view>
+			<view class="contactService dis a-c f-c">
+				<!-- <view class="panelcanvas " id="panelcanvas">
+					<image :src="serviceQRCodeImg" mode="widthFix" lazy-load></image>
+				</view> -->
+				<image :src="serviceQRCodeImg" mode=""></image>
+				<view class="Servicebtn dis j-c" @click="saveImage">保存到相册</view>
+			</view>
+		</u-popup>
+	</view>
+</template>
+
+<script>
+	import {
+		pathToBase64,
+		base64ToPath
+	} from '@/common/pdf.js'
+	import QR from "@/common/wxqrcode.js"
+	export default {
+		data() {
+			return {
+				posterUrl: "", //二维码截图
+				contactServiceShow: false, //客服弹窗
+				serviceQRCodeImg: "",
+				info: {}, //上个页面传参
+				upgradeTaskdata: {}, //升级任务
+
+			}
+		},
+		onShow() {
+
+		},
+		async onLoad(options) {
+			let serviceQRCoderes = await this.$http.get('/partner/contactCustomerService')
+			if (serviceQRCoderes.code == 200) {
+				this.serviceQRCodeImg = serviceQRCoderes.msg;
+			}
+			this.info = JSON.parse(options.info);
+			console.log(this.info);
+			if (this.info.lockingState == '2') {
+				let res = await this.$http.get('/partner/degradedTask?grade=' + this.info.grade); //保级任务
+				this.upgradeTaskdata = res.data;
+			} else {
+				let grade = Number(this.info.grade + 1);
+				let res = await this.$http.get('/partner/queryDowngradeTask?grade=' + grade); //升级任务
+				this.upgradeTaskdata = res.data;
+			}
+			this.upgradeTaskdata.assessmentEndDate = this.formatDate(this.upgradeTaskdata.assessmentEndDate);
+		},
+		computed: {
+			displayData() {
+				if (this.upgradeTaskdata.requirement && this.upgradeTaskdata.requirement.length > 0) {
+					return this.upgradeTaskdata.requirement;
+				} else if (this.upgradeTaskdata.strategyArray && this.upgradeTaskdata.strategyArray.length > 0) {
+					return this.upgradeTaskdata.strategyArray;
+				}
+				return []; // 或者返回默认数据
+			}
+		},
+		methods: {
+			//未完成任务跳转函数
+			incompleteTaskRedirect(index) {
+				switch (index) {
+					case 0:
+						uni.navigateTo({
+							url: "/pages/institutional/invitationCode?grade=" + this.info.grade + "&info=" + JSON
+								.stringify(this.info),
+						})
+						break;
+					case 2:
+						// 唤醒指定app
+						if (plus.runtime.isApplicationExist({ //判断应用是否安装
+								pname: 'uni.UNID4FE29A1' //包名
+							})) {
+							plus.runtime.launchApplication({ //调用三方程序
+								pname: 'uni.UNID4FE29A',
+								extra: {} // 可选参数
+							}, (e) => {
+								uni.showToast({
+									title: '打开失败:' + e.message,
+									icon: 'none',
+								});
+							});
+						} else {
+							if (typeof plus !== 'undefined') {
+								const main = plus.android.runtimeMainActivity();
+								const Intent = plus.android.importClass('android.content.Intent');
+								const Uri = plus.android.importClass('android.net.Uri');
+
+								const intent = new Intent(Intent.ACTION_VIEW, Uri.parse(
+									'https://sxzgkj.baoxianzhanggui.com/h5/#/'));
+								intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+
+								if (main) {
+									const chooser = Intent.createChooser(intent, "选择应用打开链接");
+									try {
+										main.startActivity(chooser);
+									} catch (error) {
+										console.error("打开选择应用对话框失败: ", error);
+									}
+								}
+							} else {
+								alert('请在真机环境中测试该功能');
+							}
+
+						}
+						break;
+					default:
+				}
+			},
+			//日期格式化
+			formatDate(dateStr) {
+				const [year, month, day] = dateStr.split("-");
+				return `${year}年${parseInt(month)}月${parseInt(day)}日`
+			},
+			//点击解锁生成二维码截图
+			clickToUnlock() {
+				this.contactServiceShow = true;
+			},
+			//保存图片
+			saveImage() {
+				base64ToPath(this.serviceQRCodeImg)
+					.then(path => {
+						uni.saveImageToPhotosAlbum({ //保存图片到系统相册。
+							filePath: path, //图片文件路径
+							success: function() {
+								uni.showToast({
+									title: '已保存到相册',
+									icon: 'none',
+								});
+							},
+							fail: function(e) {
+								uni.showToast({
+									title: '图片保存失败',
+									icon: 'none',
+								});
+							}
+						});
+					})
+			},
+			back() {
+				uni.navigateBack({
+					delta: 1, // 返回的页面数,如果是1表示返回上一页
+					success: function() {}
+				});
+
+			},
+			//页面截图转路径
+			receiveRenderData(val) {
+				this.posterUrl = val.replace(/[\r\n]/g, ''); // 去除base64位中的空格
+				// 将base64转化为临时地址
+				// base64ToPath(imageStr).then(path => {
+				// 	this.payImg = path;
+				// }).catch(error => {
+				// 	console.log(error);
+				// });
+			},
+			showLoading() {
+				uni.showLoading({
+					title: '正在生成图片'
+				});
+			},
+			hideLoading() {
+				uni.hideLoading();
+			},
+		}
+	}
+</script>
+<script module="canvasImage" lang="renderjs">
+	import html2canvas from 'html2canvas'
+	export default {
+		data() {
+			return {
+
+			}
+		},
+		mounted() {
+
+		},
+		methods: {
+			generateImage() {
+				setTimeout(() => {
+					this.$ownerInstance.callMethod('showLoading')
+					const dom = document.getElementById('panelcanvas') // 需要生成图片内容的 dom 节点
+					html2canvas(dom, {
+						width: dom.clientWidth, //dom 原始宽度
+						height: dom.clientHeight,
+						scrollY: 0, // html2canvas默认绘制视图内的页面,需要把scrollY,scrollX设置为0
+						scrollX: 0,
+						useCORS: true, //支持跨域
+						// allowTaint: false,
+						scale: 2, // 设置生成图片的像素比例,默认是1,如果生成的图片模糊的话可以开启该配置项
+					}).then((canvas) => {
+						// 生成成功
+						this.$ownerInstance.callMethod('hideLoading')
+						this.$ownerInstance.callMethod('receiveRenderData', canvas.toDataURL('image/png'))
+					}).catch(err => {
+						// 生成失败 弹出提示弹窗
+						this.$ownerInstance.callMethod('_errAlert', `【生成图片失败,请重试】${err}`)
+					})
+				}, 300)
+			}
+		},
+	}
+</script>
+<style lang="scss" scoped>
+	.page {
+		background-color: #f8f8f8;
+		height: calc(100vh);
+	}
+
+	.backimage {
+		width: 100%;
+		height: 702rpx;
+		position: absolute;
+		left: 0;
+		top: 0;
+	}
+
+	.headers {
+		position: fixed;
+		top: 0;
+		left: 0;
+		height: auto;
+		width: 100%;
+		z-index: 999999;
+		padding: 108rpx 30rpx 20rpx;
+
+		text {
+			font-size: 36rpx;
+			font-weight: bold;
+			color: #000;
+		}
+
+		.headers-activeTab {
+			width: 80%;
+		}
+	}
+
+	.contentArea {
+		padding: 176rpx 30rpx 20rpx;
+		box-sizing: border-box;
+		position: relative;
+
+		.decoration {
+			.textimg {
+				width: 348rpx;
+				height: 76rpx;
+				margin-top: 20rpx;
+			}
+
+			.text {
+				font-size: 30rpx;
+				color: #666;
+				line-height: 1.4;
+				margin-top: 28rpx;
+			}
+
+			.logo {
+				width: 314rpx;
+				height: 280rpx;
+			}
+
+		}
+
+		// 任务进度
+		.Area {
+			position: relative;
+			// height: calc(100vh - 450rpx);
+			background: #fff;
+			border-radius: 20rpx;
+			padding: 27rpx 30rpx;
+			box-sizing: border-box;
+			margin-top: -27rpx;
+			z-index: 9;
+
+			.header {
+				margin-bottom: 23rpx;
+
+				.logo {
+					width: 50rpx;
+					height: 50rpx;
+				}
+
+				.title {
+					position: relative;
+
+					.text {
+						font-size: 36rpx;
+						color: #1968F3;
+						font-weight: bold;
+						position: relative;
+						z-index: 2;
+					}
+
+					.line {
+						position: absolute;
+						bottom: 0;
+						right: -8rpx;
+						width: 80rpx;
+						height: 24rpx;
+					}
+				}
+
+			}
+
+			.message {
+				background: #F1FBFF;
+				border-radius: 10rpx 10rpx 10rpx 10rpx;
+				padding: 10rpx;
+				box-sizing: border-box;
+				font-size: 28rpx;
+				color: #666;
+			}
+
+			.task {
+				.item {
+					width: 100%;
+					margin-bottom: 40rpx;
+
+					.task-icon {
+						background: #F1FBFF;
+						border-radius: 20rpx 20rpx 20rpx 20rpx;
+						padding: 15rpx;
+						box-sizing: border-box;
+
+						image {
+							width: 70rpx;
+							height: 70rpx;
+						}
+					}
+
+					.task-progress {
+						flex: 1;
+						height: 100%;
+						margin-left: 20rpx;
+						margin-right: 16rpx;
+
+						.title {
+							font-size: 28rpx;
+							color: #333;
+							font-weight: bold;
+						}
+
+						.progressBar {
+							position: relative;
+							width: 90rpx;
+							height: 6rpx;
+							background: #F0F0F0;
+							border-radius: 100px;
+							overflow: hidden;
+
+							.jindu {
+								position: absolute;
+								left: 0;
+								top: 0;
+								height: 6rpx;
+								background: #FFA008;
+								border-radius: 100px;
+							}
+						}
+
+						.task-data {
+							font-size: 26rpx;
+
+							text:nth-child(1) {
+								color: #FFA008;
+							}
+
+							text:nth-child(2),
+							text:nth-child(3) {
+								color: #999999;
+							}
+						}
+
+					}
+
+					.task-btn {
+						padding: 8rpx 20rpx;
+						box-sizing: border-box;
+						background: linear-gradient(132deg, #2DD9FF 0%, #2D6DFF 100%);
+						border-radius: 50rpx 50rpx 50rpx 50rpx;
+						font-size: 28rpx;
+						color: #fff;
+						line-height: 1.5;
+					}
+
+					.task-btn1 {
+						padding: 8rpx 20rpx;
+						box-sizing: border-box;
+						background: transparent;
+						border-radius: 50rpx 50rpx 50rpx 50rpx;
+						font-size: 28rpx;
+						color: #2D74FF;
+						line-height: 1.5;
+					}
+				}
+
+				.item:last-child {
+					margin-bottom: 13rpx;
+				}
+			}
+		}
+	}
+
+	// 购买等级
+	.purchaseLevels {
+		position: relative;
+		background: linear-gradient(180deg, #FFD581 0%, #FFFFFF 70%);
+		border-radius: 20rpx;
+		margin: 0 30rpx;
+
+		.purchaseLevel {
+			width: 99.7%;
+			margin-top: 2rpx;
+			padding: 40rpx 30rpx;
+			box-sizing: border-box;
+			background: linear-gradient(0deg, #fff 20%, #FFF6EC 100%);
+			border-radius: 20rpx;
+
+		}
+
+		.header {
+			.star {
+				width: 27rpx;
+				height: 22rpx;
+			}
+
+			.title {
+				position: relative;
+				margin-left: 2rpx;
+				margin-right: 2rpx;
+				text-align: center;
+				font-size: 30rpx;
+				color: #333;
+				font-weight: bold;
+
+				text {
+					position: relative;
+					z-index: 9;
+					margin: 0 4rpx;
+				}
+
+				.line {
+					position: absolute;
+					bottom: 6rpx;
+					left: 0;
+					right: 0;
+					margin: auto;
+					width: 90%;
+					height: 13rpx;
+					background: #FFE262;
+					border-radius: 0rpx 0rpx 0rpx 0rpx;
+				}
+			}
+		}
+
+		// 红包样式
+		.redPacket {
+			position: relative;
+			padding: 15rpx;
+			box-sizing: border-box;
+			background: #FFF0E8;
+			border-radius: 20rpx 20rpx 20rpx 20rpx;
+
+			.redPacket-img {
+				width: 70rpx;
+				height: 70rpx;
+			}
+
+			.lock {
+				position: absolute;
+				bottom: 0;
+				right: 0;
+				padding: 5rpx;
+				z-index: 9;
+				box-sizing: border-box;
+				background: rgba(255, 163, 117, 0.3);
+				border-radius: 20rpx 0rpx 20rpx 0rpx;
+				backdrop-filter: blur(10rpx);
+
+				.lock-img {
+					width: 30rpx;
+					height: 30rpx;
+				}
+			}
+		}
+
+		/* 锁定金额 */
+		.redPacket-data {
+			.sum {
+				font-size: 36rpx;
+				color: #F74141;
+				font-weight: bold;
+			}
+
+			.days {
+				font-size: 30rpx;
+				color: #666;
+			}
+		}
+
+		/* 去解锁按钮 */
+		.btn {
+			padding: 8rpx 20rpx;
+			box-sizing: border-box;
+			background: linear-gradient(132deg, #2DD9FF 0%, #2D6DFF 100%);
+			border-radius: 50rpx 50rpx 50rpx 50rpx;
+			font-size: 28rpx;
+			color: #fff;
+			line-height: 1.5;
+		}
+	}
+
+	.contactService {
+		padding: 30rpx 50rpx;
+		box-sizing: border-box;
+
+		.panelcanvas {
+			position: relative;
+
+			image {
+				width: 250rpx;
+				height: 250rpx;
+			}
+		}
+
+		.Servicebtn {
+			width: 100%;
+			padding: 18rpx;
+			box-sizing: border-box;
+			background: linear-gradient(132deg, #2DD9FF 0%, #2D6DFF 100%);
+			border-radius: 4rpx 4rpx 4rpx 4rpx;
+			font-size: 32rpx;
+			color: #fff;
+			line-height: 1.4;
+			margin-top: 60rpx;
+		}
+	}
+</style>

+ 1 - 1
pages/tools/addStaff/addStaff.vue

@@ -135,7 +135,7 @@
 						},
 						appid: {
 							name: "appid",
-							value: "__UNI__3FA05C4",
+							value: "__UNI__2041321",
 						}
 					}
 				};

+ 3 - 3
pages/tools/addStaff/codeDownload.vue

@@ -38,9 +38,9 @@
 						value: "apk",
 					},
 					appid: {
-							name: "appid",
-							value: "__UNI__3FA05C4",
-						}
+						name: "appid",
+						value: "__UNI__2041321",
+					}
 				}
 			};
 			let getquote = await this.$http.post('/sysVersion/findPage', pageRequest);

+ 2 - 2
pages/wallet/withdraw.vue

@@ -279,9 +279,9 @@
 					bankNumber: this.bankCardInfo.bankNumber,
 					bankAccount: this.bankCardInfo.bankAccount,
 					bankAddress: this.bankCardInfo.bankAddress,
-					realUserName: this.bankCardInfo.realUserName,	
+					realUserName: this.bankCardInfo.realUserName,
 				}
-				let res = await this.$http.post('/sysAgencyFeeApproval/add', params);
+				let res = await this.$http.post('/sysAgencyFeeApproval/partnerAccount', params);
 				if (res.code == '200') {
 					uni.showToast({
 						title: res.msg,

BIN
static/home/frozen.png


BIN
static/home/imageSel.png


BIN
static/home/imageUnSel.png


BIN
static/home/income.png


BIN
static/home/incomeText.png


BIN
static/image/index/img/locked.png


BIN
static/image/index/img/lockedback.png


BIN
static/image/index/img/p1.jpg


BIN
static/image/index/img/p10.jpg


BIN
static/image/index/img/p2.jpg


BIN
static/image/index/img/p3.jpg


BIN
static/image/index/img/p4.jpg


BIN
static/image/index/img/p5.jpg


BIN
static/image/index/img/p6.jpg


BIN
static/image/index/img/p7.jpg


BIN
static/image/index/img/p8.jpg


BIN
static/image/index/img/p9.jpg


BIN
static/image/my/benefits/isLocked2.png


BIN
static/image/my/benefits/isLocked3.png


BIN
static/image/my/benefits/isLocked4.png


BIN
static/image/my/benefits/isUnlocked.png


BIN
static/image/my/benefits/waitingToUnlock2.png


BIN
static/image/my/benefits/waitingToUnlock3.png


BIN
static/image/my/benefits/waitingToUnlock4.png


BIN
static/image/my/grade1.png


BIN
static/image/my/grade2.png


BIN
static/image/my/grade3.png


BIN
static/image/my/grade4.png


BIN
static/image/my/upgradeTask/back.png


BIN
static/image/my/upgradeTask/decoration1.png


BIN
static/image/my/upgradeTask/decoration2.png


BIN
static/image/my/upgradeTask/icon1.png


BIN
static/image/my/upgradeTask/icon2.png


BIN
static/image/my/upgradeTask/icon3.png


BIN
static/image/my/upgradeTask/lock.png


BIN
static/image/my/upgradeTask/logo.png


BIN
static/image/my/upgradeTask/redPacket.png


BIN
static/image/my/upgradeTask/star-left.png


BIN
static/image/my/upgradeTask/star-right.png


BIN
static/image/my/upgradeTask/text.png


BIN
static/img/shili1.22686c8e.png


BIN
static/img/shili3.2b97107c.png


BIN
static/img/shili4.15d03454.png


+ 70 - 39
uni_modules/ui-echarts/components/ui-echarts/ui-echarts.vue

@@ -1,30 +1,29 @@
 <template>
 	<view class="ui-echarts" :class="[customClass]" :style="wrapStyle">
-	<!-- #ifndef APP-NVUE -->
+		<!-- #ifndef APP-NVUE -->
 		<!-- #ifdef MP-WEIXIN || MP-TOUTIAO -->
-		<canvas class="ui-echarts_canvas" :style="wrapStyle" :canvas-id="canvasId" :id="canvasId" @touchstart="touchStart" @touchmove="touchMove" @touchend="touchEnd" type="2d" />
+		<canvas class="ui-echarts_canvas" :style="wrapStyle" :canvas-id="canvasId" :id="canvasId"
+			@touchstart="touchStart" @touchmove="touchMove" @touchend="touchEnd" type="2d" />
 		<!-- #endif -->
 		<!-- #ifndef MP-WEIXIN || MP-TOUTIAO -->
-		<canvas class="ui-echarts_canvas" :style="wrapStyle" :canvas-id="canvasId" :id="canvasId" @touchstart="touchStart" @touchmove="touchMove" @touchend="touchEnd" />
+		<canvas class="ui-echarts_canvas" :style="wrapStyle" :canvas-id="canvasId" :id="canvasId"
+			@touchstart="touchStart" @touchmove="touchMove" @touchend="touchEnd" />
 		<!-- #endif -->
-	<!-- #endif -->
-	<!-- #ifdef APP-NVUE -->
-		<web-view ref="webview" class="ui-echarts_webview"
-			src="/uni_modules/ui-echarts/static/index.html"
-			:style="wrapStyle" 
-			:id="canvasId"
-			@onPostMessage="onPostMessage">
+		<!-- #endif -->
+		<!-- #ifdef APP-NVUE -->
+		<web-view ref="webview" class="ui-echarts_webview" src="/uni_modules/ui-echarts/static/index.html"
+			:style="wrapStyle" :id="canvasId" @onPostMessage="onPostMessage">
 		</web-view>
-	<!-- #endif -->
+		<!-- #endif -->
 	</view>
 </template>
 <script>
 	import * as echarts from '../../static/echarts.min.js';
 	import * as ecStat from '../../static/ecStat.min.js';
 	import WxCanvas from '../../static/wxcanvas.js';
-	
+
 	let chartList = {};
-	
+
 	function wrapTouch(event) {
 		for (let i = 0; i < event.touches.length; ++i) {
 			const touch = event.touches[i];
@@ -49,7 +48,7 @@
 		// #ifdef MP-WEIXIN
 		// 将自定义节点设置成虚拟的,更加接近Vue组件的表现,能更好的使用flex属性
 		options: {
-		    virtualHost: true
+			virtualHost: true
 		},
 		// #endif
 		props: {
@@ -86,15 +85,24 @@
 			}
 		},
 		computed: {
-			wrapStyle () {
-				const { width, height } = this;
-				const { addUnit, addStyle } = uni.$ui;
-				return addStyle({width: addUnit(width), height: addUnit(height)}, 'string')
+			wrapStyle() {
+				const {
+					width,
+					height
+				} = this;
+				const {
+					addUnit,
+					addStyle
+				} = uni.$ui;
+				return addStyle({
+					width: addUnit(width),
+					height: addUnit(height)
+				}, 'string')
 			}
 		},
 		watch: {
 			option(newValue, oldValue) {
-				if(newValue.series){
+				if (newValue.series) {
 					this.initChart(newValue)
 				}
 			},
@@ -121,7 +129,7 @@
 							const canvasWidth = res[0].width
 							const canvasHeight = res[0].height
 							this.ctx = canvasNode.getContext('2d')
-			
+
 							const canvas = new WxCanvas(this.ctx, this.canvasId, true, canvasNode)
 							echarts.setCanvasCreator(() => {
 								return canvas
@@ -164,12 +172,15 @@
 			initChart(option) {
 				this.ctx = uni.createCanvasContext(this.canvasId, this);
 				chartList[this.canvasId] = echarts.init(document.getElementById(this.canvasId));
-				chartList[this.canvasId].setOption(option?option:this.option);
+				chartList[this.canvasId].setOption(option ? option : this.option);
 			},
 			//H5生成图片
 			toImageFile(opt) {
 				const base64 = chartList[this.canvasId].getDataURL()
-				opt.success && opt.success({tempFilePath: base64, base64 })
+				opt.success && opt.success({
+					tempFilePath: base64,
+					base64
+				})
 			},
 			// #endif
 			// #ifndef H5
@@ -197,7 +208,7 @@
 					devicePixelRatio: canvasDpr // new
 				});
 				canvas.setChart(chartList[this.canvasId]);
-				chartList[this.canvasId].setOption(option?option:this.option);
+				chartList[this.canvasId].setOption(option ? option : this.option);
 			},
 			//生成图片
 			toImageFile(opt) {
@@ -209,9 +220,12 @@
 				// #ifdef MP-WEIXIN || MP-TOUTIAO
 				var query = uni.createSelectorQuery()
 					// #ifndef MP-ALIPAY
-						.in(this)
-					// #endif
-				query.select('#' + this.canvasId).fields({ node: true, size: true }).exec(res => {
+					.in(this)
+				// #endif
+				query.select('#' + this.canvasId).fields({
+					node: true,
+					size: true
+				}).exec(res => {
 					const canvasNode = res[0].node
 					opt.canvas = canvasNode
 					self.toImageFileHandle(opt)
@@ -228,17 +242,26 @@
 				});
 				// #endif
 			},
-			toImageFileHandle (opt) {
+			toImageFileHandle(opt) {
 				if (!this.exportBase64) {
 					uni.canvasToTempFilePath(opt, this);
 				} else {
-					const { success, fail, complete, ...rest } = opt;
+					const {
+						success,
+						fail,
+						complete,
+						...rest
+					} = opt;
 					uni.canvasToTempFilePath({
 						...rest,
 						success: async (res) => {
 							const tempFilePath = res.tempFilePath;
 							const base64Str = await uni.$ui.base64.pathToBase64(tempFilePath);
-							success && success({ errMsg: res.errMsg, tempFilePath, base64: base64Str })
+							success && success({
+								errMsg: res.errMsg,
+								tempFilePath,
+								base64: base64Str
+							})
 						},
 						fail: (res) => {
 							fail && fail(res)
@@ -292,17 +315,17 @@
 				}
 			},
 			// #ifdef APP-NVUE
-			chartInitOption (option) {
+			chartInitOption(option) {
 				this.webviewReady && this.$refs.webview.evalJs(`setOption(${JSON.stringify(option)})`);
 			},
-			chartToImage (opt) {
+			chartToImage(opt) {
 				this.webviewCallback = opt;
 				this.webviewReady && this.webviewChart && this.$refs.webview.evalJs(`toImage()`);
 			},
-			chartClear () {
+			chartClear() {
 				this.webviewReady && this.webviewChart && this.$refs.webview.evalJs(`clearChart()`);
 			},
-			async onPostMessage (evt) {
+			async onPostMessage(evt) {
 				/**
 				 * 1: 准备就绪(webview)
 				 * 2: 初始化echarts
@@ -310,7 +333,9 @@
 				 * 4: 导出图片
 				 * 5: 销毁echarts实例
 				 * */
-				const res = evt?.detail?.data[0] || { state: 0 };
+				const res = evt?.detail?.data[0] || {
+					state: 0
+				};
 				if (res.state === 1) {
 					this.webviewReady = true;
 				} else if (res.state === 2) {
@@ -318,13 +343,19 @@
 				} else if (res.state === 3) {
 					// option 更新成功
 				} else if (res.state === 4) {
-					const opt = { ...this.webviewCallback };
+					const opt = {
+						...this.webviewCallback
+					};
 					const filePath = await uni.$ui.base64.base64ToPath(res.base64);
-					opt.success && opt.success({ errMsg: 'ok', tempFilePath: filePath, base64: res.base64 });
+					opt.success && opt.success({
+						errMsg: 'ok',
+						tempFilePath: filePath,
+						base64: res.base64
+					});
 				}
 			},
 			// #endif
-			clearChart () {
+			clearChart() {
 				// #ifdef APP-NVUE
 				this.chartClear();
 				return;
@@ -357,10 +388,10 @@
 <style lang="scss" scoped>
 	.ui-echarts {
 		flex: 1;
-		
+
 		&_canvas {
 			width: 100%;
 			height: 100%;
 		}
 	}
-</style>
+</style>

+ 1 - 1
uni_modules/uni-upgrade-center-app/uniCloud/cloudfunctions/check-version/check-version.param.json

@@ -10,7 +10,7 @@
 // 	"userName": "9914D01"
 // }
 {
-	"appid": "__UNI__3FA05C4",
+	"appid": "__UNI__2041321",
 	"appVersion": "1.0.66",
 	"wgtVersion": "1.0.66",
 	"userId": "99140109M03D04001",