@dongkboy 2 éve
szülő
commit
3b705580f5

+ 8 - 0
components/yzhua006-update/app-update.vue

@@ -113,6 +113,10 @@
 						apptype: {
 							name: "apptype",
 							value: "apk",
+						},
+						appid: {
+							name: "appid",
+							value: "__UNI__D4FE29A",
 						}
 					}
 				});
@@ -125,6 +129,10 @@
 						apptype: {
 							name: "apptype",
 							value: "wgt",
+						},
+						appid: {
+							name: "appid",
+							value: "__UNI__D4FE29A",
 						}
 					}
 				});

+ 580 - 122
pages/carInsure/premiumCalc.vue

@@ -1,5 +1,6 @@
 <template>
 	<view class="">
+		<public-module></public-module>
 		<image src="/static/image/car-insure/Quotablebanner.png" mode=""
 			style="width: 100%;height: 110px;position: absolute;"></image>
 		<view class="page">
@@ -15,7 +16,7 @@
 				<view class="carJump" @tap="toCarInfo">修改信息</view>
 			</view>
 			<view class="" style="position: relative;">
-				<view class=" dis f-c" v-for="(riskitem,riskindex) in riskList" :key="riskindex">
+				<view class=" dis f-c" v-if="['0330','0330034002','0330034001'].includes(productId)">
 					<text class="plan-ins-title">交强险</text>
 					<view class="quotePlan">
 						<view class=" dis a-c j-s modelformcss">
@@ -46,7 +47,7 @@
 
 					</view>
 				</view>
-				<view class=" dis  f-c ">
+				<view class=" dis  f-c " v-if="['034001','0330034002','0330034001'].includes(productId)">
 					<text class="plan-ins-title">商业险</text>
 					<view class="quotePlan">
 						<view class=" dis a-c j-s modelformcss">
@@ -131,22 +132,21 @@
 									<view class="insuranceGuide dis a-c j-c" @click.stop="InsureGuideclick">
 										投保指引
 									</view>
-									<ls-loading v-show="totalitem.quoteCode==1" text="掌柜正在为您报价,请稍等......"
+									<ls-loading v-if="totalitem.quoteCode ==1" text="掌柜正在为您报价,请稍等......"
 										:animation="animation" fontSize="22" />
 									<!-- 价格 -->
-									<view class="dis a-c" v-if="totalitem.quoteCode==200">
+									<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;"
+									<text v-if="totalitem.quoteCode=='3'" class="sum"
+										style="color: #999;font-size: 12px;"
 										@tap.stop.prevent="ErrorMsg(totalitem.msg,totalitem.namesimple)">报价失败,查看原因</text>
 								</view>
-								<view class="Premium dis f-c mb-2" v-show="totalitem.quoteCode==200">
+								<view class="Premium dis f-c mb-2" v-if="totalitem.quoteCode=='200'">
 									<view class="dis price" v-if="totalitem.result.feeNoDescription">
 										<text>该车未匹配销管费用,不建议投保!</text>
 										<u-icon name="chat-fill" color="#ff0000" size="40"
@@ -226,21 +226,93 @@
 										</view>
 										<u-button class="ml-2" type="error" size="mini"
 											:custom-style="{borderRadius:'2px'}"
-											style="background: linear-gradient( 90deg, #FF4D4D 0%, #FF784D 100%);">报价单</u-button>
+											style="background: linear-gradient( 90deg, #FF4D4D 0%, #FF784D 100%);"
+											@click="bjdpreview(totalitem.result.companyId)">报价单</u-button>
 										<u-button class="ml-2" type="primary" size="mini"
 											:custom-style="{borderRadius:'2px'}"
-											style="background: linear-gradient( 90deg, #0052FF 0%, #0D8BFF 100%);">查看详情</u-button>
+											style="background: linear-gradient( 90deg, #0052FF 0%, #0D8BFF 100%);"
+											@click="querydetial(totalitem.result.companyId)">查看详情</u-button>
 									</view>
 								</view>
-								<view class="planDetails mb-2 dis a-c j-c f-c">
+								<view class="planDetails mb-2 dis  f-c" v-show="totalitem.insurancePlanInfo">
 									<view class="headers dis j-c a-c" @tap="togglePlanDetails(totalindex)">
 										<image
 											:src="totalitem.planDetailsshow?'/static/image/car-insure/DoubleLeft1.png':'/static/image/car-insure/DoubleLeft.png'"
 											mode=""></image>
-										<text>展开方案详情</text>
+										<text>{{totalitem.planDetailsshow?'收起':'展开'}}方案详情</text>
 									</view>
 									<view v-if="totalitem.planDetailsshow">
-										321321321
+										<view class="Plancontent dis j-s " style="padding:0;">
+											<text class="title mb-1">车船税</text>
+											<text>{{model.taxRelifFlag}}</text>
+										</view>
+										<view class="Plancontent dis f-c  " style="padding:0;"
+											v-if="totalitem.insurancePlanInfo.isJq=='1'">
+											<view class="dis j-s a-c">
+												<text class="title mb-1">交强险</text>
+												<u-button type="primary"
+													style="background: linear-gradient(90deg, #FF4D4D 0%, #FF784D 100%);"
+													size="mini" @click="jqterms">交强条款</u-button>
+											</view>
+											<text style="margin-left: 10px;">{{jqstartDate}} - {{jqendDate}}</text>
+										</view>
+										<view class="Plancontent dis f-c " style="padding: 0;"
+											v-if="totalitem.insurancePlanInfo.isSy=='1'">
+											<view class="dis j-s a-c">
+												<text class="title mb-1">商业险</text>
+												<u-button type="primary"
+													style="background: linear-gradient(90deg, #FF4D4D 0%, #FF784D 100%);"
+													size="mini" @click="jqterms">商业条款</u-button>
+											</view>
+											<text style="margin-left: 10px;">{{systartDate}} - {{syendDate}}</text>
+											<view class="dis f-c  p-2">
+												<view class="dis a-c j-s" style="border-bottom: 1px solid #f2f2f2;">
+													<text>险别</text>
+													<text>保额</text>
+												</view>
+												<view class="dis a-c j-s"
+													v-for="(item,index) in totalitem.insurancePlanInfo" :key="index">
+													<text>{{item.kindName}}:</text>
+													<text>{{convertedValue(item.amount)}}</text>
+												</view>
+											</view>
+										</view>
+										<view class="Plancontent dis  f-c " style="padding: 0;"
+											v-if=" totalitem.insurancePlanInfo.drivingList && totalitem.insurancePlanInfo.drivingList.length">
+											<text class="title mb-1">意外险</text>
+											<view class=" modelformcss"
+												v-for="(drivingsitem,risksindex) in totalitem.insurancePlanInfo.drivingList"
+												:key="risksindex">
+												<view class="dis f-c ">
+													<text>{{drivingsitem.parentName}}</text>
+													<text>{{drivingsitem.projectName}}</text>
+												</view>
+												<view class="Accident mt-2"
+													v-if="drivingsitem.insDrivingIntentionInsuranceSon && drivingsitem.insDrivingIntentionInsuranceSon.length>0">
+													<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="(Sonitem,Sonindex) in drivingsitem.insDrivingIntentionInsuranceSon"
+														:key="Sonindex">
+														<view class="tr dis a-c j-c"> {{Sonitem.name}}</view>
+														<view class="tr dis a-c j-c"> {{Sonitem.amount}}/座</view>
+														<view class="tr dis a-c j-c">¥{{Sonitem.premium}}</view>
+													</view>
+												</view>
+												<view class="dis a-c j-s mt-2" style="font-size: 14px;color: #232832;">
+													<text>份数</text>
+													<text>{{drivingsitem.quantity}}份</text>
+												</view>
+												<view class="dis a-c j-s mt-2" style="font-size: 14px;color: #232832;">
+													<text>总保费</text>
+													<text>¥{{drivingsitem.sumPremium?drivingsitem.sumPremium:0}}</text>
+												</view>
+											</view>
+
+										</view>
 									</view>
 								</view>
 								<view class="footer-btn dis j-s a-c">
@@ -249,18 +321,7 @@
 										@click="SchemeSelection(totalitem)">方案选择</u-button>
 									<u-button type="primary" size="mini"
 										style="background:#FFEFE6;color: #FF5600; width: 45%;"
-										@tap="next">单独报价</u-button>
-								</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>
+										@tap="individualQuote(totalitem)">单独报价</u-button>
 								</view>
 							</view>
 						</view>
@@ -277,22 +338,26 @@
 				</view>
 			</view>
 		</u-modal>
-		<u-popup v-model="anshengPlanPopup" mode="center" width="100%" border-radius="6">
+		<u-popup v-model="genericPlanPopup" 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="dis  a-c f-wrap  modelformcss">
 							<view class="status-data" :class="item.schemeId==SelectedPlanId? 'active':''"
-								v-for="(item,index) in anshenginsurancePlanInfo.planList"
+								style="margin-right: 10px;" v-for="(item,index) in planDataExpansion.genericPlanList"
 								@tap.stop.prevent="statusclick(item.schemeId)" :key="index">
 								{{item.schemeName}}
 							</view>
 						</view>
 					</view>
-					<view class="" v-if="SelectedPlanId !=='4'">
+					<view class="">
+						<view class="Plancontent dis  f-c " v-if="planDataExpansion.genericPlanInfo.isJq=='1'">
+							<text class="title mb-1">交强险</text>
+							<text style="margin-left: 10px;">{{jqstartDate}} - {{jqendDate}}</text>
+						</view>
 						<view class="Plancontent dis  f-c ">
 							<text class="title mb-1">车船税</text>
 							<view class="">
@@ -361,82 +426,71 @@
 								</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==jqimmediately? 'active':''"
-										v-for="(item,index) in jqimmediatelyList"
-										@tap="datelyClick(item.value,'jqimmediately','jqstartDate','jqendDate')"
-										:key="index">
-										{{item.label}}
-									</view>
+						<view class="Plancontent dis  f-c " v-if="planDataExpansion.genericPlanInfo.isSy=='1'">
+							<text class="title mb-1">商业险</text>
+							<text style="margin-left: 10px;">{{systartDate}} - {{syendDate}}</text>
+							<view class="insuranceType" v-if="planDataExpansion.genericPlanInfo.schemeName !=='自选方案'">
+								<view class="dis a-c j-s"
+									v-for="(item,index) in planDataExpansion.genericPlanInfo.kinds" :key="index">
+									<text>{{item.kindName}}:</text>
+									<text>{{convertedValue(item.amount)}}</text>
 								</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=" 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}}
+							<template v-else>
+								<view class="immediately">
+									<view class="dis f-c" style="background: #F9F9F9;border-radius: 10px;">
+										<block v-for="(insureItem,index) in planDataExpansion.genericPlanInfo.kinds"
+											: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>
-							<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" :border-bottom='false'>
-									<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 class="insuranceType">
-								<view class="dis a-c j-s">
-									<text>三者责任险:</text>
-									<text>321321321</text>
+								<view class="compulsory-insurance">
+									<block v-for="(insureItem,index) in planDataExpansion.genericPlanInfo.kinds"
+										: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>
+							</template>
 						</view>
-						<view class="Plancontent dis  f-c ">
+						<view class="Plancontent dis  f-c "
+							v-if="planDataExpansion.genericPlanInfo.schemeName !=='自选方案' && planDataExpansion.genericPlanInfo && planDataExpansion.genericPlanInfo.drivingList && planDataExpansion.genericPlanInfo.drivingList.length">
 							<text class="title mb-1">意外险</text>
 							<view class=" modelformcss"
-								v-for="(drivingsitem,risksindex) in anshenginsurancePlanInfo.isSelectedPlan.drivingList"
+								v-for="(drivingsitem,risksindex) in planDataExpansion.genericPlanInfo.drivingList"
 								:key="risksindex">
 								<view class="dis f-c ">
+									<text>{{drivingsitem.parentName}}</text>
 									<text>{{drivingsitem.projectName}}</text>
-									<text
-										v-if="drivingsitem.insDrivingIntentionInsurances">{{drivingsitem.insDrivingIntentionInsurances[0].projectName}}</text>
 								</view>
 								<view class="Accident mt-2"
-									v-if="drivingsitem.insDrivingIntentionInsurances[0].insDrivingIntentionInsuranceSon.length>0">
+									v-if="drivingsitem.insDrivingIntentionInsuranceSon && drivingsitem.insDrivingIntentionInsuranceSon.length>0">
 									<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>
@@ -452,36 +506,75 @@
 								</view>
 								<view class="dis a-c j-s mt-2" style="font-size: 14px;color: #232832;">
 									<text>份数</text>
-									<text>份</text>
+									<text>{{drivingsitem.quantity}}份</text>
 								</view>
 								<view class="dis a-c j-s mt-2" style="font-size: 14px;color: #232832;">
 									<text>总保费</text>
-									<text>¥70.00</text>
+									<text>¥{{drivingsitem.sumPremium?drivingsitem.sumPremium:0}}</text>
 								</view>
 							</view>
 
 						</view>
-					</view>
-					<view class="" v-else>
+						<view class="" v-else>
 
+						</view>
 					</view>
 				</scroll-view>
 				<view class="PlanPopup-btn dis a-c j-c">
 					<u-button shape="circle" size="medium" style="margin-right: 50px;"
-						@click="anshengPlanPopup=false">取消</u-button>
+						@click="genericPlanPopup=false">取消</u-button>
 					<u-button type="primary" shape="circle" size="medium"
-						style="background: linear-gradient( 90deg, #0052FF 0%, #0D8BFF 100%);">确定方案</u-button>
+						style="background: linear-gradient( 90deg, #0052FF 0%, #0D8BFF 100%);"
+						@click="confirmPlan">确定方案</u-button>
 				</view>
 			</view>
 		</u-popup>
+		<!-- 商业选择方案 -->
+		<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 {
+		mapState
+	} from "vuex"
 	import lsLoading from '@/components/common/ls-loading/ls-loading.vue';
+	import wybPopup from '@/components/modules/carInsure/wyb-popup/wyb-popup.vue'
 	export default {
 		components: {
+			wybPopup,
 			lsLoading
 		},
+		computed: {
+			...mapState(['userInfo', 'quotationType']),
+		},
 		data() {
 			return {
 				showaaa: false,
@@ -584,9 +677,17 @@
 				/* 投保指引弹窗*/
 				InsureGuideContent: "", // 指引内容
 				SelectedPlanId: "2", //已选方案id
-				anshengPlanPopup: false, //方案选择弹窗
-				anshenginsurancePlanInfo: {},
-
+				genericPlanPopup: false, //方案选择弹窗
+				planDataExpansion: { //方案综合数据
+					id: "",
+					namesimple: "",
+					cnName: "",
+					genericPlanList: [], //方案通用列表
+					genericPlanInfo: {}, //方案展示信息
+				},
+				insureItem: {},
+				orderno: "", //订单号
+				quoteno: "", //报价号
 			}
 		},
 		onShow() {
@@ -614,13 +715,257 @@
 				this.insuredPersonInfoPositiveList = data.insuredPersonInfoPositiveList; //被保人
 				this.productId = data.productId; //险种id
 				this.riskTypeEchoProcessing(this.productId)
-				this.quotableCompanyList = data.quotableCompanyList; //可报价公司
+				this.quotableCompanyList = JSON.parse(JSON.stringify(data.quotableCompanyList)); //可报价公司
 				this.commpanyList();
 			})
-
-
 		},
 		methods: {
+			//弹出popup框并显示基本信息
+			adjustBIItem(index) {
+				var a = {};
+				Object.assign(a, this.planDataExpansion.genericPlanInfo.kinds[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;
+			},
+			jqterms() {
+				let file = 'https://sxzgkj.baoxianzhanggui.com/web-api/upload/specification/commercialInsurance.pdf';
+				//#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
+			},
+			syterms() {
+				let file = 'https://sxzgkj.baoxianzhanggui.com/web-api/upload/specification/compulsoryInsurance.pdf';
+				//#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
+			},
+			async individualQuote(item) {
+				if (!item.insurancePlanInfo) {
+					uni.showToast({
+						title: "请选择方案后,在进行报价",
+						icon: 'none',
+					});
+				} else {
+					let param = {
+						userId: this.userInfo.sysUser.id,
+						quoteno: this.quoteno ? this.quoteno : "",
+						orderNo: this.orderno ? this.orderno : "",
+						riskList: this.riskList,
+						carInfo: this.carInfo,
+						insuredPersonInfo: this.insuredPersonInfo,
+						ownerInfo: this.ownerInfo,
+						policyHolderInfo: this.policyHolderInfo,
+						vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
+					};
+					let orders = await this.$http.post('/insurance/order/generateOrder', param);
+					if (orders.code == '200') {
+						this.orderno = orders.data.orderno;
+						this.quoteno = orders.data.quoteno;
+						let mergedArray = [];
+						let mergedArrayList = mergedArray.concat(this.carInfoPositiveList, this
+							.ownerInfoPositiveList, this
+							.policyHolderInfoPositiveList, this.insuredPersonInfoPositiveList)
+
+						if (mergedArrayList.length > 0) {
+							await this.$http.post('/ins/taskImage/uploadImages', {
+								imageList: mergedArrayList,
+								quoteNo: this.quoteno,
+							})
+						}
+						this.quotableCompanyList = this.quotableCompanyList.map((ele, index) => {
+							if (ele.id == item.id) {
+								// 动态调用报价接口
+								ele.quoteCode = '1';
+								this.ToolClickFun(ele.cnName, index, ele.id);
+							}
+							return ele
+						});
+					} else if (orders.code == '1001') {
+						this.Generateshow = true;
+					} else {
+						uni.showToast({
+							title: orders.msg,
+							icon: 'none',
+						});
+					}
+				}
+			},
+			async ToolClickFun(MethodName, Parameter, companyId) {
+				await this[`${MethodName}`](Parameter, companyId)
+				//获取已报价成功个数
+				// let filteredObjects = [];
+				// this.totalCompanyList.map(ele => {
+				// 	if (ele.quoteCode == 200) {
+				// 		filteredObjects.push(ele.result.companyId)
+				// 	}
+				// 	return ele;
+				// })
+				// this.comparableQuantity = filteredObjects.length;
+			},
+			//安盛天平
+			ansheng(num, id) {
+				this.quoteInsurance(num, id, this
+					.quotableCompanyList[num].apiType);
+			},
+			//爬虫统一报价接口
+			async quoteInsurance(num, id, apiType) {
+				const companyId = uni.getStorageSync('companyId');
+				// let api = apiType === 2 ?
+				// 	"/insurance/crawler/quote" :
+				// 	"";
+				let api = '/insurance/crawler/quote';
+				let ccidenttype = this.quotableCompanyList[num]
+					.cnName;
+				let namesimple = this.quotableCompanyList[num]
+					.namesimple;
+				let isTaxSource = this.quotableCompanyList[num].isTaxSource;
+				let params = {
+					orderNo: this.orderno,
+					companyId: id,
+					agreementId: '112',
+					kindList: this.quotableCompanyList[num].insurancePlanInfo.kinds,
+					riskList: this.riskList,
+					isTaxSource: isTaxSource == 1 ? isTaxSource : null,
+					accidentalDrivingVo: {},
+					systemType: '2'
+				};
+				if (id = 'GPIC1000000') {
+					if (companyId) {
+						params.discount = this.quotableCompanyList[num]
+							.syAdjustRate;
+						params.lastCompanyId = companyId;
+					}
+				}
+				let res = await this.$http.post(`${api}`,
+					params);
+				switch (namesimple) {
+					case '安盛天平':
+					case '恒邦财险':
+					case '中国人寿':
+					case '太平财险':
+					case '华农财险':
+					case '泰康财险':
+						if (res.code == '200') {
+							if (res.data.warnMessageList !=
+								null && res.data
+								.warnMessageList[0] != null &&
+								res.data
+								.warnMessageList[
+									0] != "") {
+								this.quotableCompanyList[num]
+									.lastYearMsg = "";
+								let dat = res.data
+									.warnMessageList;
+								dat.map(ele => {
+									this.quotableCompanyList[
+											num]
+										.lastYearMsg +=
+										ele + '<br>';
+
+								})
+							}
+							const updatedItem = {
+								...this.quotableCompanyList[num],
+								quoteCode: 200
+							};
+							this.quotableCompanyList.splice(num, 1, updatedItem);
+							this.quotableCompanyList[num].result =
+								res.data;
+							this.subOrderId = res.data.companyId;
+							this.coordinateValue();
+							if (res.data.syAdjustRate) {
+								this.quotableCompanyList[num].syAdjustRate = res.data.syAdjustRate;
+								uni.setStorageSync('companyId', res.data.companyId);
+							}
+						} else {
+							const updatedItem = {
+								...this.quotableCompanyList[num],
+								quoteCode: '3'
+							};
+							this.quotableCompanyList.splice(num, 1, updatedItem);
+							this.quotableCompanyList[num].msg =
+								res.msg;
+						}
+						break;
+					case '众安财险':
+						if (res.code == '200') {
+							if (res.data.warnMessageList !=
+								null && res.data
+								.warnMessageList[0] != null &&
+								res.data
+								.warnMessageList[
+									0] != "") {
+								this.quotableCompanyList[num]
+									.lastYearMsg = "";
+								let dat = res.data
+									.warnMessageList;
+								dat.map(ele => {
+									this.quotableCompanyList[
+											num]
+										.lastYearMsg +=
+										ele + '<br>';
+								})
+							}
+							const updatedItem = {
+								...this.quotableCompanyList[num],
+								quoteCode: 200
+							};
+							this.quotableCompanyList.splice(num, 1, updatedItem);
+							this.quotableCompanyList[num].result =
+								res.data;
+							this.subOrderId = res.data.companyId;
+							this.coordinateValue();
+						} else {
+							const updatedItem = {
+								...this.quotableCompanyList[num],
+								quoteCode: '3'
+							};
+							this.quotableCompanyList.splice(num, 1, updatedItem);
+							this.quotableCompanyList[num].msg =
+								res.msg;
+						}
+						break;
+					default:
+						break;
+				}
+			},
+			confirmPlan() {
+				this.quotableCompanyList.map(val => {
+					if (val.id == this.planDataExpansion.id) {
+						val.insurancePlanInfo = this.planDataExpansion.genericPlanInfo;
+						this.genericPlanPopup = false;
+					}
+					return val;
+				})
+			},
+			convertedValue(num) {
+				if (num < 10000) {
+					return num.toString();
+				} else if (num < 100000000) {
+					return (Math.floor(num / 10000 * 10) / 10) + '万';
+				} else {
+					return (Math.floor(num / 100000000 * 10) / 10) + '亿';
+				}
+			},
 			riskTypeEchoProcessing(code) {
 				this.riskList = [];
 				switch (code) {
@@ -670,6 +1015,28 @@
 				this.quotableCompanyList[index].planDetailsshow = !this.quotableCompanyList[index]
 					.planDetailsshow; // 切换对应项的显示状态
 				this.quotableCompanyList = [...this.quotableCompanyList]; // 强制 Vue 重新渲染
+
+			},
+			//查看详情
+			querydetial(id) {
+				this.navigate({
+						url: "/pages/carInsure/quoteDetail?companyId=" + id
+					},
+					"navigateTo", true);
+			},
+			//报价单
+			bjdpreview(id) {
+				let pro = this.quotationType.themeCode;
+				if (pro == "QD") {
+					uni.navigateTo({
+						url: "/pages/orders/quotation?companyId=" + id
+					})
+				} else {
+					uni.navigateTo({
+						url: "/pages/orders/quotation1?companyId=" + id
+					})
+				}
+
 			},
 			// 显示报错信息
 			ErrorMsg(msg, title) {
@@ -679,7 +1046,31 @@
 					showCancel: false,
 					confirmText: "关闭"
 				})
-
+			},
+			discountErrorMessageMsg(msg, title) {
+				let content = msg.replace(/\n/g, "\r\n")
+				uni.showModal({
+					title: title + "优惠信息",
+					content: content,
+					showCancel: false,
+					confirmText: "关闭"
+				})
+			},
+			//使用此时间
+			syncData(item) {
+				this.jqstartDate = item.startDateJq ? item
+					.startDateJq : this.jqstartDate
+				this.jqendDate = item.endDateJq ? item
+					.endDateJq : this.endDateJq
+				this.systartDate = item.startDateSy ? item
+					.startDateSy : this.systartDate
+				this.syendDate = item.endDateSy ? item
+					.endDateSy : this.syendDate
+				uni.showToast({
+					title: '时间已替换',
+					icon: 'none',
+					duration: 1000
+				});
 			},
 			//车船税类型选择
 			taxRelifFlagConfirm(val, name) {
@@ -712,28 +1103,31 @@
 			syendconfirm(e) {
 				this.syendDate = e.year + '-' + e.month + '-' + e.day + ' ' + e.hour + ':' + e.minute + ':' + e.second;
 			},
-			statusclick(e) {
-				console.log(e);
-				this.SelectedPlanId = e;
+			statusclick(value) {
+				this.SelectedPlanId = value;
+				let planObj = this.planDataExpansion.genericPlanList.find(item => item.schemeId == value);
+				this.planDataExpansion.genericPlanInfo = planObj;
 			},
 			InsureGuideclick() {
 				this.InsureGuidePopup = true;
 			},
 			async SchemeSelection(item) {
+				console.log(item);
 				let params = {
 					companyId: item.id,
 					productId: this.productId,
 					seatNum: this.carInfo.seatCount,
 				}
 				let res = await this.$http.post('/plt/scheme/getCompanySchemeInfo', params);
+				let res1 = await this.$http.post('/plt/scheme/getCompanyOptionalSchemeInfo', params);
 				if (res.code == '200') {
-					this[item.cnName + 'insurancePlanInfo'].planList = [...res.data, {
-						schemeId: "4",
-						schemeName: "自选方案"
-					}]
-					this[item.cnName + 'insurancePlanInfo'].isSelectedPlan = res.data[0]
-					this[item.cnName + 'PlanPopup'] = true;
-					console.log(this.$data);
+					this.planDataExpansion.id = item.id;
+					this.planDataExpansion.namesimple = item.namesimple;
+					this.planDataExpansion.cnName = item.cnName;
+					this.planDataExpansion.genericPlanList = [...res.data, res1.data];
+					this.planDataExpansion.genericPlanInfo = res.data[0];
+					this.SelectedPlanId = res.data[0].schemeId;
+					this.genericPlanPopup = true;
 				}
 
 			},
@@ -770,11 +1164,7 @@
 					ele['planDetailsshow'] = false;
 					ele['isComparableshowHide'] = false;
 					ele['isComparableDisabled'] = false;
-					this.$set(this, `${ele.cnName}insurancePlanInfo`, {
-						isSelectedPlan: {},
-						kindList: [],
-						accidentalDrivingVo: {},
-					});
+					ele['insurancePlanInfo'] = null;
 					return ele;
 				})
 			},
@@ -1010,6 +1400,12 @@
 			}
 		}
 
+		.terms {
+			color: #FFFFFF;
+			background: linear-gradient(90deg, #FF4D4D 0%, #FF784D 100%);
+			border-radius: 4px 4px 4px 4px;
+		}
+
 	}
 
 	.quotePlan {
@@ -1021,7 +1417,7 @@
 	.status-data {
 		width: auto;
 		padding: 2px 8px;
-		margin-left: 5px;
+		margin-left: 10px;
 		font-size: 12px;
 		border: 1px solid #CDCDCD;
 		cursor: pointer;
@@ -1033,7 +1429,7 @@
 		position: relative;
 		background: rgba(0, 82, 255, 0.1);
 		color: #0052FF;
-		border: 1px solid #0052FF;
+		border: 1px solid #0052FF !important;
 		font-weight: 700;
 	}
 
@@ -1326,4 +1722,66 @@
 		font-weight: bold;
 		padding: 8px;
 	}
+
+	.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 */
+	.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 */
 </style>

+ 0 - 11
pages/login/login.vue

@@ -174,17 +174,6 @@
 		},
 		//第一次加载
 		async onLoad(e) {
-			let pageRequest = {
-				pageNum: 1,
-				pageSize: 20,
-				columnFilters: {
-					apptype: {
-						name: "apptype",
-						value: "apk",
-					}
-				}
-			};
-			let getquote = await this.$http.post('/sysVersion/findPage', pageRequest);
 			// #ifdef APP-PLUS
 			this.openSQL();
 			this.selectTableData();

+ 1 - 0
pages/orders/quotation.vue

@@ -1,5 +1,6 @@
 <template>
 	<view style="height: 100vh;position: relative;">
+		<public-module></public-module>
 		<view class="page" id="panelcanvas">
 			<image :src="bannerImg" mode="" style="width: 100%;height: 450px;position: absolute;"></image>
 			<view class="content">

+ 4 - 0
pages/register/registerSuccess.vue

@@ -99,6 +99,10 @@
 							apptype: {
 								name: "apptype",
 								value: "apk",
+							},
+							appid: {
+								name: "appid",
+								value: "__UNI__D4FE29A",
 							}
 						}
 					};

+ 4 - 0
pages/tools/addStaff/addStaff.vue

@@ -132,6 +132,10 @@
 						apptype: {
 							name: "apptype",
 							value: "apk",
+						},
+						appid: {
+							name: "appid",
+							value: "__UNI__D4FE29A",
 						}
 					}
 				};

+ 4 - 0
pages/tools/addStaff/codeDownload.vue

@@ -36,6 +36,10 @@
 					apptype: {
 						name: "apptype",
 						value: "apk",
+					},
+					appid: {
+						name: "appid",
+						value: "__UNI__D4FE29A",
 					}
 				}
 			};