premiumCalc.vue 57 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787
  1. <template>
  2. <view class="">
  3. <public-module></public-module>
  4. <image src="/static/image/car-insure/Quotablebanner.png" mode=""
  5. style="width: 100%;height: 110px;position: absolute;"></image>
  6. <view class="page">
  7. <view class="car-header dis a-c">
  8. <image src="/static/image/car-insure/Group.png" mode="" style="width: 40px;height: 40px;"></image>
  9. <view class="dis f-c head-name">
  10. <text>{{carInfo.licenseNo}} <text style="color: rgba(35,40,50,0.65);">丨</text> <text
  11. style="font-weight: 400;"> {{insuredPersonInfo.name}} (被保人)</text> </text>
  12. <view class="name1">
  13. <text>{{carInfo.modelcname}}</text>
  14. </view>
  15. </view>
  16. <view class="carJump" @tap="toCarInfo">修改信息</view>
  17. </view>
  18. <view class="" style="position: relative;">
  19. <view class=" dis f-c" v-if="['0330','0330034002','0330034001'].includes(productId)">
  20. <text class="plan-ins-title">交强险</text>
  21. <view class="quotePlan">
  22. <view class=" dis a-c j-s modelformcss">
  23. <text>即时投保</text>
  24. <view class="dis a-c j-c">
  25. <view class="status-data" :class="item.value==jqimmediately? 'active':''"
  26. v-for="(item,index) in jqimmediatelyList"
  27. @tap="datelyClick(item.value,'jqimmediately','jqstartDate','jqendDate')"
  28. :key="index">
  29. {{item.label}}
  30. </view>
  31. </view>
  32. </view>
  33. <u-form ref="uForm" label-width="120px">
  34. <u-form-item label="交强险投保日期" class="modelformcss">
  35. <u-input type="select" :select-open="jqstartShow" :custom-style="{textAlign:'right'}"
  36. v-model="jqstartDate" placeholder="请选择开始时间" @click="jqstartShow = true"></u-input>
  37. <u-picker v-model="jqstartShow" mode="time" :params="params"
  38. @confirm="jqstartconfirm"></u-picker>
  39. </u-form-item>
  40. <u-form-item label="交强险终保日期" class="modelformcss">
  41. <u-input type="select" :select-open="jqendShow" :custom-style="{textAlign:'right'}"
  42. v-model="jqendDate" placeholder="请选择结束时间" @click="jqendShow = true"></u-input>
  43. <u-picker v-model="jqendShow" mode="time" :params="params"
  44. @confirm="jqendconfirm"></u-picker>
  45. </u-form-item>
  46. </u-form>
  47. </view>
  48. </view>
  49. <view class=" dis f-c " v-if="['034001','0330034002','0330034001'].includes(productId)">
  50. <text class="plan-ins-title">商业险</text>
  51. <view class="quotePlan">
  52. <view class=" dis a-c j-s modelformcss">
  53. <text>即时投保</text>
  54. <view class="dis a-c j-c">
  55. <view class="status-data" :class="item.value==syimmediately? 'active':''"
  56. v-for="(item,index) in syimmediatelyList"
  57. @tap="datelyClick(item.value,'syimmediately','systartDate','syendDate')"
  58. :key="index">
  59. {{item.label}}
  60. </view>
  61. </view>
  62. </view>
  63. <u-form ref="uForm" label-width="120px">
  64. <u-form-item label="商业险投保日期" class="modelformcss">
  65. <u-input type="select" :select-open="systartShow" :custom-style="{textAlign:'right'}"
  66. v-model="systartDate" placeholder="请选择开始时间" @click="systartShow = true"></u-input>
  67. <u-picker v-model="systartShow" mode="time" :params="params"
  68. @confirm="systartconfirm"></u-picker>
  69. </u-form-item>
  70. <u-form-item label="商业险终保日期" class="modelformcss">
  71. <u-input type="select" :select-open="syendShow" :custom-style="{textAlign:'right'}"
  72. v-model="syendDate" placeholder="请选择结束时间" @click="syendShow = true"></u-input>
  73. <u-picker v-model="syendShow" mode="time" :params="params"
  74. @confirm="syendconfirm"></u-picker>
  75. </u-form-item>
  76. </u-form>
  77. </view>
  78. </view>
  79. </view>
  80. <view class=" dis a-c j-s mt-3" style="position: relative;">
  81. <view style="color:#FF5600;font-size: 15px;font-weight: bold;">投保注意:</view>
  82. <view class="dis a-c f-wrap">
  83. <view class="status-data" :class="carInfo.transferFlag? 'active1':''"
  84. @tap="immediatelyClick('transferFlag')">
  85. 过户车
  86. </view>
  87. <view class="status-data" :class="carInfo.transferFlagBi? 'active1':''"
  88. @tap="immediatelyClick('transferFlagBi')">
  89. 商业险过户
  90. </view>
  91. <view class="status-data" :class="carInfo.outOfInsurance? 'active1':''"
  92. @tap="immediatelyClick('outOfInsurance')">
  93. 脱保
  94. </view>
  95. <view class="status-data" :class="carInfo.usedCar? 'active1':''" @tap="immediatelyClick('usedCar')">
  96. 二手车
  97. </view>
  98. </view>
  99. </view>
  100. <view class="quotePlan dis a-c j-s mt-2 " style="padding: 5px 10px;" v-if="carInfo.transferFlag">
  101. <view>转移登记日期:</view>
  102. <u-input type="select" :select-open="transferDateShow" :custom-style="{textAlign:'right'}"
  103. v-model="carInfo.transferDate" @click="transferDateShow = true" style="width: 100px;"></u-input>
  104. <u-picker v-model="transferDateShow" mode="time" :params="params1"
  105. @confirm="transferconfirm"></u-picker>
  106. </view>
  107. <view class="quoteCompany mt-3">
  108. <view class="header dis a-c">
  109. <view class="title d-flex">保险公司</view>
  110. <!-- <view class="">
  111. <u-checkbox v-model="Selectchecked" @change="SelectAll($event)"
  112. active-color="rgb(250, 53, 52)">全选</u-checkbox>
  113. </view> -->
  114. </view>
  115. <block v-for="(totalitem,totalindex) in quotableCompanyList" :key="totalindex">
  116. <template>
  117. <view class="quoteCompanyItem dis f-c j-s" :class="totalitem.checked? 'quoteactive':''">
  118. <view class="top dis f-c">
  119. <view class="companyIcon dis j-s a-c mb-2"
  120. @tap="checkboxChange(totalitem.id,totalitem.cnName, totalindex)">
  121. <view class="dis a-c">
  122. <!-- <view class="" @click.stop>
  123. <u-checkbox @change="priceComparisonChange(totalindex,totalitem)"
  124. v-if="totalitem.isComparableshowHide"
  125. v-model="totalitem.isComparableShow" active-color="#23C1CB"
  126. :disabled='totalitem.isComparableDisabled'></u-checkbox>
  127. </view> -->
  128. <image :src="totalitem.logo"></image>
  129. <view class="companyName">{{totalitem.namesimple}}</view>
  130. </view>
  131. <view class="insuranceGuide dis a-c j-c" @click.stop="InsureGuideclick">
  132. 投保指引
  133. </view>
  134. <ls-loading v-if="totalitem.quoteCode ==1" text="掌柜正在为您报价,请稍等......"
  135. :animation="animation" fontSize="22" />
  136. <!-- 价格 -->
  137. <view class="dis a-c" v-if="totalitem.quoteCode=='200'">
  138. <view class="dis a-c" style="margin-right: 10px;">
  139. <text style="color: #FF4D4D;font-size: 12px;"
  140. v-if="totalitem.result.sumExportFee">优惠金额¥{{totalitem.result.sumExportFee}}</text>
  141. </view>
  142. <text class="sum">¥{{totalitem.result.sumPermium}}</text>
  143. </view>
  144. <text v-if="totalitem.quoteCode=='3'" class="sum"
  145. style="color: #999;font-size: 12px;"
  146. @tap.stop.prevent="ErrorMsg(totalitem.msg,totalitem.namesimple)">报价失败,查看原因</text>
  147. </view>
  148. <view class="Premium dis f-c mb-2" v-if="totalitem.quoteCode=='200'">
  149. <view class="dis price" v-if="totalitem.result.feeNoDescription">
  150. <text>该车未匹配销管费用,不建议投保!</text>
  151. <u-icon name="chat-fill" color="#ff0000" size="40"
  152. @click="discountErrorMessageMsg(totalitem.result.feeNoDescription,totalitem.namesimple)"></u-icon>
  153. </view>
  154. <view class="dis a-c f-wrap price">
  155. <text
  156. v-if="totalitem.result.jqPremium">交强险:¥{{totalitem.result.jqPremium}}</text>
  157. <text
  158. v-if="totalitem.result.syPremium">商业险:¥{{totalitem.result.syPremium}}</text>
  159. <text
  160. v-if="totalitem.result.taxAmount">车船税:¥{{totalitem.result.taxAmount}}</text>
  161. <text
  162. v-if="totalitem.result.jyPremium">驾意险:¥{{totalitem.result.jyPremium}}</text>
  163. </view>
  164. <view class="dis a-c f-wrap price" style="font-size: 20rpx;color: #FF4D4D;">
  165. <text>优惠金额:【
  166. <text
  167. v-if="totalitem.result.jqPremium">交强险:{{totalitem.result.jqExportFee?totalitem.result.jqExportFee:'无'}}</text>
  168. <text
  169. v-if="totalitem.result.syPremium">商业险:{{totalitem.result.syExportFee?totalitem.result.syExportFee:'无'}}</text>
  170. <text
  171. v-if="totalitem.result.jyPremium">驾意险:{{totalitem.result.noExportFee?totalitem.result.noExportFee:"无"}}</text>
  172. 】</text>
  173. </view>
  174. <view class="dis a-c j-s ">
  175. <view class="dis f-c time">
  176. <text
  177. v-if="totalitem.result.jqPremium">交强险:{{totalitem.result.startDateJq}}~{{totalitem.result.endDateJq}}
  178. </text>
  179. <text
  180. v-if="totalitem.result.startDateSy">商业险:{{totalitem.result.startDateSy}}~{{totalitem.result.endDateSy}}
  181. </text>
  182. </view>
  183. <image src="/static/image/car-insure/Group30.png" mode=""
  184. style="width: 14px;height: 14px;" @click="syncData(totalitem.result)">
  185. </image>
  186. </view>
  187. <view class="dis a-c f-wrap time">
  188. <text v-if="totalitem.namesimple == '永诚财险'">光博分:{{ totalitem.result.ilogPreUdwMess ?
  189. totalitem.result.ilogPreUdwMess : '无' }}</text>
  190. <text v-else>评分:{{ totalitem.result.ilogPreUdwMess ?
  191. totalitem.result.ilogPreUdwMess : '无' }}</text>
  192. <text v-if="totalitem.result.jqScore">交强类型评分:{{ totalitem.result.jqScore ?
  193. totalitem.result.jqScore : '无' }}</text>
  194. <text v-if="totalitem.result.syScore">商业类型评分:{{ totalitem.result.syScore ?
  195. totalitem.result.syScore : '无' }}</text>
  196. <text v-if="totalitem.result.lossRation">总赔付率:{{ totalitem.result.lossRation ?
  197. totalitem.result.lossRation : '无' }}</text>
  198. <text v-if="totalitem.result.jqLossRation">交强赔付率:{{ totalitem.result.jqLossRation ?
  199. totalitem.result.jqLossRation : '无' }}</text>
  200. <text v-if="totalitem.result.syLossRation">商业赔付率:{{ totalitem.result.syLossRation ?
  201. totalitem.result.syLossRation : '无' }}</text>
  202. <text
  203. v-if="totalitem.namesimple == '紫金财险'">鼎然-车辆风险评分:{{totalitem.result.ubiPredictedInfoScore ?
  204. totalitem.result.ubiPredictedInfoScore : '无'}}</text>
  205. <text v-if="totalitem.result.jqRenewal">交强续保:{{ totalitem.result.jqRenewal ?
  206. totalitem.result.jqRenewal : '无' }}</text>
  207. <text v-if="totalitem.result.syRenewal">商业续保:{{ totalitem.result.syRenewal ?
  208. totalitem.result.syRenewal : '无' }}</text>
  209. <text v-if="totalitem.result.jqClaims">交强出险次数:{{ totalitem.result.jqClaims ?
  210. totalitem.result.jqClaims : '无' }}</text>
  211. <text v-if="totalitem.result.syClaims">商业出险次数:{{ totalitem.result.syClaims ?
  212. totalitem.result.syClaims : '无' }}</text>
  213. </view>
  214. <view class="dis a-c j-end lastyear">
  215. <view class=" left dis j-c a-c" v-if="totalitem.lastYearMsg"
  216. @click="YearMsg(totalitem.lastYearMsg,totalitem.namesimple)">
  217. <text>上年信息</text>
  218. </view>
  219. <view class=" right ml-2 dis j-c a-c" v-if='totalitem.result.predictInfo'
  220. @click="preUnderwriting(totalitem.result.predictInfo)">
  221. <text>预核保信息</text>
  222. </view>
  223. <u-button class="ml-2" type="error" size="mini"
  224. :custom-style="{borderRadius:'2px'}"
  225. style="background: linear-gradient( 90deg, #FF4D4D 0%, #FF784D 100%);"
  226. @click="bjdpreview(totalitem.result.companyId)">报价单</u-button>
  227. <u-button class="ml-2" type="primary" size="mini"
  228. :custom-style="{borderRadius:'2px'}"
  229. style="background: linear-gradient( 90deg, #0052FF 0%, #0D8BFF 100%);"
  230. @click="querydetial(totalitem.result.companyId)">查看详情</u-button>
  231. </view>
  232. </view>
  233. <view class="planDetails mb-2 dis f-c" v-show="totalitem.insurancePlanInfo">
  234. <view class="headers dis j-c a-c" @tap="togglePlanDetails(totalindex)">
  235. <image
  236. :src="totalitem.planDetailsshow?'/static/image/car-insure/DoubleLeft1.png':'/static/image/car-insure/DoubleLeft.png'"
  237. mode=""></image>
  238. <text>{{totalitem.planDetailsshow?'收起':'展开'}}方案详情</text>
  239. </view>
  240. <view v-if="totalitem.planDetailsshow">
  241. <view class="Plancontent dis j-s " style="padding:0;">
  242. <text class="title mb-1">车船税</text>
  243. <text>{{model.taxRelifFlag}}</text>
  244. </view>
  245. <view class="Plancontent dis f-c " style="padding:0;"
  246. v-if="totalitem.insurancePlanInfo.isJq=='1'">
  247. <view class="dis j-s a-c">
  248. <text class="title mb-1">交强险</text>
  249. <u-button type="primary"
  250. style="background: linear-gradient(90deg, #FF4D4D 0%, #FF784D 100%);"
  251. size="mini" @click="jqterms">交强条款</u-button>
  252. </view>
  253. <text style="margin-left: 10px;">{{jqstartDate}} - {{jqendDate}}</text>
  254. </view>
  255. <view class="Plancontent dis f-c " style="padding: 0;"
  256. v-if="totalitem.insurancePlanInfo.isSy=='1'">
  257. <view class="dis j-s a-c">
  258. <text class="title mb-1">商业险</text>
  259. <u-button type="primary"
  260. style="background: linear-gradient(90deg, #FF4D4D 0%, #FF784D 100%);"
  261. size="mini" @click="jqterms">商业条款</u-button>
  262. </view>
  263. <text style="margin-left: 10px;">{{systartDate}} - {{syendDate}}</text>
  264. <view class="dis f-c p-2">
  265. <view class="dis a-c j-s" style="border-bottom: 1px solid #f2f2f2;">
  266. <text>险别</text>
  267. <text>保额</text>
  268. </view>
  269. <view class="dis a-c j-s"
  270. v-for="(item,index) in totalitem.insurancePlanInfo" :key="index">
  271. <text>{{item.kindName}}:</text>
  272. <text>{{convertedValue(item.amount)}}</text>
  273. </view>
  274. </view>
  275. </view>
  276. <view class="Plancontent dis f-c " style="padding: 0;"
  277. v-if=" totalitem.insurancePlanInfo.drivingList && totalitem.insurancePlanInfo.drivingList.length">
  278. <text class="title mb-1">意外险</text>
  279. <view class=" modelformcss"
  280. v-for="(drivingsitem,risksindex) in totalitem.insurancePlanInfo.drivingList"
  281. :key="risksindex">
  282. <view class="dis f-c ">
  283. <text>{{drivingsitem.parentName}}</text>
  284. <text>{{drivingsitem.projectName}}</text>
  285. </view>
  286. <view class="Accident mt-2"
  287. v-if="drivingsitem.insDrivingIntentionInsuranceSon && drivingsitem.insDrivingIntentionInsuranceSon.length>0">
  288. <view class="dis a-c j-s">
  289. <view class="head dis a-c j-c">保险责任</view>
  290. <view class="head dis a-c j-c">保险金额</view>
  291. <view class="head dis a-c j-c">保费(元)</view>
  292. </view>
  293. <view class="dis a-c j-s"
  294. v-for="(Sonitem,Sonindex) in drivingsitem.insDrivingIntentionInsuranceSon"
  295. :key="Sonindex">
  296. <view class="tr dis a-c j-c"> {{Sonitem.name}}</view>
  297. <view class="tr dis a-c j-c"> {{Sonitem.amount}}/座</view>
  298. <view class="tr dis a-c j-c">¥{{Sonitem.premium}}</view>
  299. </view>
  300. </view>
  301. <view class="dis a-c j-s mt-2" style="font-size: 14px;color: #232832;">
  302. <text>份数</text>
  303. <text>{{drivingsitem.quantity}}份</text>
  304. </view>
  305. <view class="dis a-c j-s mt-2" style="font-size: 14px;color: #232832;">
  306. <text>总保费</text>
  307. <text>¥{{drivingsitem.sumPremium?drivingsitem.sumPremium:0}}</text>
  308. </view>
  309. </view>
  310. </view>
  311. </view>
  312. </view>
  313. <view class="footer-btn dis j-s a-c">
  314. <u-button type="primary" size="mini"
  315. style="background:#E6EEFF;color:#0052FF; width: 45%;"
  316. @click="SchemeSelection(totalitem)">方案选择</u-button>
  317. <u-button type="primary" size="mini"
  318. style="background:#FFEFE6;color: #FF5600; width: 45%;"
  319. @tap="individualQuote(totalitem)">单独报价</u-button>
  320. </view>
  321. </view>
  322. </view>
  323. </template>
  324. </block>
  325. </view>
  326. </view>
  327. <u-modal v-model="InsureGuidePopup" ref="uModal" :show-title="false" border-radius="12" confirm-color="#FF5600"
  328. :confirm-style="{background:'#FFEFE6',height:'36px',lineHeight:'36px'}">
  329. <view class="">
  330. <image src="/static/image/car-insure/InsureGuide.png" mode="" style="width: 100%;height: 40px;"></image>
  331. <view class="p-2 mb-2" style="min-height:120px;">
  332. <text>永诚财产保险股份有限公司是一家由国内实力雄厚的大型电力企业集团和产业投资集团共同发起组建的全国性股份制财产保险公司.</text>
  333. </view>
  334. </view>
  335. </u-modal>
  336. <u-popup v-model="genericPlanPopup" mode="center" width="100%" border-radius="6">
  337. <view class="">
  338. <image src="/static/image/car-insure/SchemeSelection.png" mode="" style="width: 100%;height: 40px;">
  339. </image>
  340. <scroll-view :scroll-top="scrollTop" scroll-y="true" class="scroll-Y">
  341. <view class="Plancontent dis f-c ">
  342. <text class="title mb-1">方案选择</text>
  343. <view class="dis a-c f-wrap modelformcss">
  344. <view class="status-data" :class="item.schemeId==SelectedPlanId? 'active':''"
  345. style="margin-right: 10px;" v-for="(item,index) in planDataExpansion.genericPlanList"
  346. @tap.stop.prevent="statusclick(item.schemeId)" :key="index">
  347. {{item.schemeName}}
  348. </view>
  349. </view>
  350. </view>
  351. <view class="">
  352. <view class="Plancontent dis f-c " v-if="planDataExpansion.genericPlanInfo.isJq=='1'">
  353. <text class="title mb-1">交强险</text>
  354. <text style="margin-left: 10px;">{{jqstartDate}} - {{jqendDate}}</text>
  355. </view>
  356. <view class="Plancontent dis f-c ">
  357. <text class="title mb-1">车船税</text>
  358. <view class="">
  359. <u-form ref="uForm" :model="vehicleAndVesselTaxForm" label-width="130px">
  360. <u-form-item label="纳税类型" prop="taxRelifFlag" class="modelformcss">
  361. <u-input type="select" :select-open="taxRelifFlagShow"
  362. v-model="model.taxRelifFlag" :custom-style="{textAlign:'right'}"
  363. placeholder="请选择纳税类型" @click="taxRelifFlagShow = true"></u-input>
  364. <u-select mode="single-column" :list="taxRelifFlagoptions"
  365. v-model="taxRelifFlagShow" label-name="dictTag" value-name="dictValue"
  366. @confirm="taxRelifFlagConfirm($event,'taxRelifFlag')"></u-select>
  367. </u-form-item>
  368. <u-form-item
  369. v-show="vehicleAndVesselTaxForm.taxRelifFlag == 2 || vehicleAndVesselTaxForm.taxRelifFlag == 3"
  370. label="减免税凭证号" prop="extendChar2" class="modelformcss">
  371. <u-input placeholder="请输入减免税凭证号" :custom-style="{textAlign:'right'}"
  372. v-model="vehicleAndVesselTaxForm.extendChar2" type="text"></u-input>
  373. </u-form-item>
  374. <u-form-item v-show="vehicleAndVesselTaxForm.taxRelifFlag == 4" label="完税凭证号"
  375. prop="paidFreeCertificate" class="modelformcss">
  376. <u-input placeholder="请输入完税凭证号" :custom-style="{textAlign:'right'}"
  377. v-model="vehicleAndVesselTaxForm.paidFreeCertificate" type="text"></u-input>
  378. </u-form-item>
  379. <u-form-item
  380. v-show="vehicleAndVesselTaxForm.taxRelifFlag == 2 || vehicleAndVesselTaxForm.taxRelifFlag == 3"
  381. label="减免税原因" prop="relifReason" class="modelformcss">
  382. <u-input type="select" :select-open="relifReasonShow"
  383. v-model="model.relifReason" :custom-style="{textAlign:'right'}"
  384. placeholder="请选择减免税原因" @click="relifReasonShow = true"></u-input>
  385. <u-select mode="single-column" :list="relifReasonoptions"
  386. v-model="relifReasonShow" label-name="dictTag" value-name="dictValue"
  387. @confirm="taxRelifFlagConfirm($event,'relifReason')"></u-select>
  388. </u-form-item>
  389. <u-form-item v-show="vehicleAndVesselTaxForm.taxRelifFlag != 1" label="税务机关代码"
  390. prop="taxComCode" class="modelformcss">
  391. <u-input placeholder="请输入税务机关代码" :custom-style="{textAlign:'right'}"
  392. v-model="vehicleAndVesselTaxForm.taxComCode" type="text"></u-input>
  393. </u-form-item>
  394. <u-form-item v-show="vehicleAndVesselTaxForm.taxRelifFlag != 1" label="税务机关名称"
  395. prop="taxComName" class="modelformcss">
  396. <u-input placeholder="请输入税务机关名称" :custom-style="{textAlign:'right'}"
  397. v-model="vehicleAndVesselTaxForm.taxComName" type="text"></u-input>
  398. </u-form-item>
  399. <u-form-item v-show="vehicleAndVesselTaxForm.taxRelifFlag == 4" label="完税凭证填发日期"
  400. prop="taxDocumentDate" class="modelformcss">
  401. <u-input type="select" :select-open="taxDocumentDateShow"
  402. :custom-style="{textAlign:'right'}"
  403. v-model="vehicleAndVesselTaxForm.taxDocumentDate" placeholder="请选择时间"
  404. @click="taxDocumentDateShow = true"></u-input>
  405. <u-picker v-model="taxDocumentDateShow" mode="time" :params="params1"
  406. @confirm="taxDocumentDateconfirm"></u-picker>
  407. </u-form-item>
  408. <u-form-item v-show="vehicleAndVesselTaxForm.taxRelifFlag == 4" label="完税凭证地区"
  409. prop="taxPaidAreaCode" class="modelformcss">
  410. <u-input type="select" :select-open="taxPaidAreaCodeShow"
  411. :custom-style="{textAlign:'right'}" v-model="model.taxPaidAreaCode"
  412. placeholder="请选择地区" @click="taxPaidAreaCodeShow = true"></u-input>
  413. <u-picker mode="region" v-model="taxPaidAreaCodeShow" :params="params2"
  414. @confirm="taxPaidAreaCodeconfirm"></u-picker>
  415. </u-form-item>
  416. <u-form-item v-show="vehicleAndVesselTaxForm.taxRelifFlag == 3" label="减税比例"
  417. prop="taxRelief" class="modelformcss">
  418. <u-input placeholder="请输入0~1的小数" :custom-style="{textAlign:'right'}"
  419. v-model="vehicleAndVesselTaxForm.taxRelief" type="text"></u-input>
  420. </u-form-item>
  421. </u-form>
  422. </view>
  423. </view>
  424. <view class="Plancontent dis f-c " v-if="planDataExpansion.genericPlanInfo.isSy=='1'">
  425. <text class="title mb-1">商业险</text>
  426. <text style="margin-left: 10px;">{{systartDate}} - {{syendDate}}</text>
  427. <view class="insuranceType" v-if="planDataExpansion.genericPlanInfo.schemeName !=='自选方案'">
  428. <view class="dis a-c j-s"
  429. v-for="(item,index) in planDataExpansion.genericPlanInfo.kinds" :key="index">
  430. <text>{{item.kindName}}:</text>
  431. <text>{{convertedValue(item.amount)}}</text>
  432. </view>
  433. </view>
  434. <template v-else>
  435. <view class="immediately">
  436. <view class="dis f-c" style="background: #F9F9F9;border-radius: 10px;">
  437. <block v-for="(insureItem,index) in planDataExpansion.genericPlanInfo.kinds"
  438. :key="index">
  439. <template v-if="insureItem.amount == 0">
  440. <view class="car-ins-cell d-flex j-sb common-ins-cell"
  441. @tap="adjustBIItem(index)">
  442. <view class="cell-title d-flex a-center j-center">
  443. {{insureItem.kindName}}
  444. </view>
  445. <view class="cell-desc d-flex a-center j-center">
  446. {{insureItem.amountDesc}}
  447. <view class="icon iconfont icon-youjiantou"
  448. style="font-size: 40rpx;margin-left: 20upx;color: #C7C6CA;">
  449. </view>
  450. </view>
  451. </view>
  452. </template>
  453. </block>
  454. </view>
  455. </view>
  456. <view class="compulsory-insurance">
  457. <block v-for="(insureItem,index) in planDataExpansion.genericPlanInfo.kinds"
  458. :key="index">
  459. <template v-if="insureItem.amount == 0">
  460. <view class="car-ins-cell d-flex j-sb common-ins-cell"
  461. @tap="adjustBIItem(index)">
  462. <view class="cell-title d-flex a-center j-center">
  463. {{insureItem.kindName}}
  464. </view>
  465. <view class="cell-desc d-flex a-center j-center">
  466. {{insureItem.amountDesc}}
  467. <view class="icon iconfont icon-youjiantou"
  468. style="font-size: 40rpx;margin-left: 20upx;color: #C7C6CA;">
  469. </view>
  470. </view>
  471. </view>
  472. </template>
  473. </block>
  474. </view>
  475. </template>
  476. </view>
  477. <view class="Plancontent dis f-c "
  478. v-if="planDataExpansion.genericPlanInfo.schemeName !=='自选方案' && planDataExpansion.genericPlanInfo && planDataExpansion.genericPlanInfo.drivingList && planDataExpansion.genericPlanInfo.drivingList.length">
  479. <text class="title mb-1">意外险</text>
  480. <view class=" modelformcss"
  481. v-for="(drivingsitem,risksindex) in planDataExpansion.genericPlanInfo.drivingList"
  482. :key="risksindex">
  483. <view class="dis f-c ">
  484. <text>{{drivingsitem.parentName}}</text>
  485. <text>{{drivingsitem.projectName}}</text>
  486. </view>
  487. <view class="Accident mt-2"
  488. v-if="drivingsitem.insDrivingIntentionInsuranceSon && drivingsitem.insDrivingIntentionInsuranceSon.length>0">
  489. <view class="dis a-c j-s">
  490. <view class="head dis a-c j-c">保险责任</view>
  491. <view class="head dis a-c j-c">保险金额</view>
  492. <view class="head dis a-c j-c">保费(元)</view>
  493. </view>
  494. <view class="dis a-c j-s"
  495. v-for="(Sonitem,Sonindex) in drivingsitem.insDrivingIntentionInsuranceSon"
  496. :key="Sonindex">
  497. <view class="tr dis a-c j-c"> {{Sonitem.name}}</view>
  498. <view class="tr dis a-c j-c"> {{Sonitem.amount}}/座</view>
  499. <view class="tr dis a-c j-c">¥{{Sonitem.premium}}</view>
  500. </view>
  501. </view>
  502. <view class="dis a-c j-s mt-2" style="font-size: 14px;color: #232832;">
  503. <text>份数</text>
  504. <text>{{drivingsitem.quantity}}份</text>
  505. </view>
  506. <view class="dis a-c j-s mt-2" style="font-size: 14px;color: #232832;">
  507. <text>总保费</text>
  508. <text>¥{{drivingsitem.sumPremium?drivingsitem.sumPremium:0}}</text>
  509. </view>
  510. </view>
  511. </view>
  512. <view class="" v-else>
  513. </view>
  514. </view>
  515. </scroll-view>
  516. <view class="PlanPopup-btn dis a-c j-c">
  517. <u-button shape="circle" size="medium" style="margin-right: 50px;"
  518. @click="genericPlanPopup=false">取消</u-button>
  519. <u-button type="primary" shape="circle" size="medium"
  520. style="background: linear-gradient( 90deg, #0052FF 0%, #0D8BFF 100%);"
  521. @click="confirmPlan">确定方案</u-button>
  522. </view>
  523. </view>
  524. </u-popup>
  525. <!-- 商业选择方案 -->
  526. <wyb-popup ref="popupBI" type="bottom" mode="size-fixed" height="900" radius="6" :showCloseIcon="true">
  527. <view class="popup-content">
  528. <view class="popHeader d-flex a-center j-center">
  529. 选择方案
  530. </view>
  531. <scroll-view scroll-top="0" scroll-y="true" class="popContent">
  532. <view class="popContentTitle">{{insureItem.kindName}}</view>
  533. <view style="color: #999;font-size: 24upx;">{{insureItem.desc}}</view>
  534. <view class="dis a-c j-s p-3" v-if="['TY2','TY3','TY4'].includes(insureItem.kindCode)">
  535. <text>自定义次数</text>
  536. <u-number-box v-model="insureItem.amount" :input-width="100" :input-height="60" :min="0"
  537. color="#fff" size="30" @change="numberBoxChange"></u-number-box>
  538. </view>
  539. <view v-else style="margin-top: 10px;">
  540. <block v-for="(amt,index) in insureItem.amtList" :key="index">
  541. <view class="amtSingle" @tap="adjustBIItemLabel(index)"
  542. :class="(amt.label== insureItem.amountDesc)?'active':''">
  543. {{amt.label}}
  544. </view>
  545. </block>
  546. </view>
  547. </scroll-view>
  548. <view class="popBottom">
  549. <button type="primary" style="background-color: #0052FF;"
  550. @tap="adjustBIItemLabelSubmit()">完成</button>
  551. </view>
  552. </view>
  553. </wyb-popup>
  554. </view>
  555. </template>
  556. <script>
  557. import {
  558. mapState
  559. } from "vuex"
  560. import lsLoading from '@/components/common/ls-loading/ls-loading.vue';
  561. import wybPopup from '@/components/modules/carInsure/wyb-popup/wyb-popup.vue'
  562. export default {
  563. components: {
  564. wybPopup,
  565. lsLoading
  566. },
  567. computed: {
  568. ...mapState(['userInfo', 'quotationType']),
  569. },
  570. data() {
  571. return {
  572. showaaa: false,
  573. riskList: [], //险种大类
  574. model: {
  575. taxRelifFlag: "正常交税",
  576. taxpayerIdentifier: "身份证",
  577. relifReason: "",
  578. taxPaidAreaCode: "",
  579. },
  580. //车船税form
  581. vehicleAndVesselTaxForm: {
  582. taxRelifFlag: "1", //类型
  583. identifyNumber: "", //纳税人识别号
  584. taxpayerIdentifier: "01", //纳税人证件类型
  585. taxpayerName: "", //纳税人名称
  586. extendChar2: "", //减免税凭证号
  587. paidFreeCertificate: "", //完税凭证号
  588. relifReason: "", //减免税原因
  589. taxComCode: "", //税务机关代码
  590. taxComName: "", ///税务机关名称
  591. taxDocumentDate: "", //完税日期
  592. taxPaidAreaCode: "", //完税凭证地区代码
  593. taxRelief: "", //减税比例
  594. },
  595. taxRelifFlagoptions: [],
  596. taxpayerIdentifieroptions: [],
  597. relifReasonoptions: [],
  598. taxPaidAreaCodeShow: false, //完税凭证地区
  599. taxDocumentDateShow: false, //完税凭证填发日期
  600. taxRelifFlagShow: false, //车船税类型
  601. taxpayerIdentifierShow: false, //纳税人证件类型
  602. relifReasonShow: false, //减免税原因代码
  603. params: {
  604. year: true, //年
  605. month: true, //月
  606. day: true, //日
  607. hour: true, //时
  608. minute: true, //分
  609. second: true, //秒
  610. },
  611. jqimmediately: "0",
  612. jqimmediatelyList: [{
  613. label: '是',
  614. value: "1",
  615. },
  616. {
  617. label: '否',
  618. value: "0",
  619. },
  620. ],
  621. syimmediately: "0",
  622. syimmediatelyList: [{
  623. label: '是',
  624. value: "1",
  625. },
  626. {
  627. label: '否',
  628. value: "0",
  629. },
  630. ],
  631. jqchecked: false,
  632. sychecked: false,
  633. jqstartShow: false,
  634. jqendShow: false,
  635. systartShow: false,
  636. syendShow: false,
  637. jqstartDate: "",
  638. jqendDate: "",
  639. systartDate: "",
  640. syendDate: "",
  641. scrollTop: 0,
  642. carInfo: {},
  643. ownerInfo: {},
  644. policyHolderInfo: {},
  645. insuredPersonInfo: {},
  646. carInfoPositiveList: [],
  647. ownerInfoPositiveList: [],
  648. policyHolderInfoPositiveList: [],
  649. insuredPersonInfoPositiveList: [],
  650. transferDateShow: false,
  651. params1: {
  652. year: true, //年
  653. month: true, //月
  654. day: true, //日
  655. hour: false, //时
  656. minute: false, //分
  657. second: false, //秒
  658. },
  659. params2: {
  660. province: true,
  661. city: false,
  662. area: false
  663. },
  664. quotableCompanyList: [],
  665. productId: "",
  666. animation: 'twinkle', //动画类型
  667. InsureGuidePopup: false,
  668. /* 投保指引弹窗*/
  669. InsureGuideContent: "", // 指引内容
  670. SelectedPlanId: "2", //已选方案id
  671. genericPlanPopup: false, //方案选择弹窗
  672. planDataExpansion: { //方案综合数据
  673. id: "",
  674. namesimple: "",
  675. cnName: "",
  676. genericPlanList: [], //方案通用列表
  677. genericPlanInfo: {}, //方案展示信息
  678. },
  679. insureItem: {},
  680. orderno: "", //订单号
  681. quoteno: "", //报价号
  682. }
  683. },
  684. onShow() {
  685. },
  686. async onLoad() {
  687. this.getDicType("taxRelifFlag"); //车船税类型
  688. this.getDicType("taxpayerIdentifier"); //纳税人证件类型
  689. this.getDicType("relifReason"); //减免税原因代码
  690. this.jqstartDate = this.nextday();
  691. this.jqendDate = this.oneYearPast(this.jqstartDate);
  692. this.systartDate = this.nextday();
  693. this.syendDate = this.oneYearPast(this.jqstartDate);
  694. const eventChannel = this.getOpenerEventChannel()
  695. // 监听acceptData事件,获取上一页面通过eventChannel传送到当前页面的数据
  696. await eventChannel.on('acceptData', (data) => {
  697. console.log(data);
  698. this.carInfo = data.carInfo; //车辆信息
  699. this.ownerInfo = data.ownerInfo; //车主信息
  700. this.policyHolderInfo = data.policyHolderInfo; //投保人信息
  701. this.insuredPersonInfo = data.insuredPersonInfo; //被保人信息
  702. this.carInfoPositiveList = data.carInfoPositiveList; //车辆
  703. this.ownerInfoPositiveList = data.ownerInfoPositiveList; //车主
  704. this.policyHolderInfoPositiveList = data.policyHolderInfoPositiveList; //投保
  705. this.insuredPersonInfoPositiveList = data.insuredPersonInfoPositiveList; //被保人
  706. this.productId = data.productId; //险种id
  707. this.riskTypeEchoProcessing(this.productId)
  708. this.quotableCompanyList = JSON.parse(JSON.stringify(data.quotableCompanyList)); //可报价公司
  709. this.commpanyList();
  710. })
  711. },
  712. methods: {
  713. //弹出popup框并显示基本信息
  714. adjustBIItem(index) {
  715. var a = {};
  716. Object.assign(a, this.planDataExpansion.genericPlanInfo.kinds[index])
  717. this.insureItem = a;
  718. this.$refs.popupBI.show() // 显示
  719. },
  720. //popup内容的label改变
  721. adjustBIItemLabel(index) {
  722. this.insureItem.amount = this.insureItem.amtList[index].value;
  723. this.insureItem.amountDesc = this.insureItem.amtList[index].label;
  724. },
  725. jqterms() {
  726. let file = 'https://sxzgkj.baoxianzhanggui.com/web-api/upload/specification/commercialInsurance.pdf';
  727. //#ifdef H5
  728. var win = window.open();
  729. win.document.write(
  730. '<body style="margin:0px;"><object data="' +
  731. file +
  732. '" type="application/pdf" width="100%" height="100%"><iframe src="' +
  733. file +
  734. '" scrolling="no" width="100%" height="100%" frameborder="0" ></iframe></object></body>'
  735. );
  736. //#endif
  737. },
  738. syterms() {
  739. let file = 'https://sxzgkj.baoxianzhanggui.com/web-api/upload/specification/compulsoryInsurance.pdf';
  740. //#ifdef H5
  741. var win = window.open();
  742. win.document.write(
  743. '<body style="margin:0px;"><object data="' +
  744. file +
  745. '" type="application/pdf" width="100%" height="100%"><iframe src="' +
  746. file +
  747. '" scrolling="no" width="100%" height="100%" frameborder="0" ></iframe></object></body>'
  748. );
  749. //#endif
  750. },
  751. async individualQuote(item) {
  752. if (!item.insurancePlanInfo) {
  753. uni.showToast({
  754. title: "请选择方案后,在进行报价",
  755. icon: 'none',
  756. });
  757. } else {
  758. let param = {
  759. userId: this.userInfo.sysUser.id,
  760. quoteno: this.quoteno ? this.quoteno : "",
  761. orderNo: this.orderno ? this.orderno : "",
  762. riskList: this.riskList,
  763. carInfo: this.carInfo,
  764. insuredPersonInfo: this.insuredPersonInfo,
  765. ownerInfo: this.ownerInfo,
  766. policyHolderInfo: this.policyHolderInfo,
  767. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  768. };
  769. let orders = await this.$http.post('/insurance/order/generateOrder', param);
  770. if (orders.code == '200') {
  771. this.orderno = orders.data.orderno;
  772. this.quoteno = orders.data.quoteno;
  773. let mergedArray = [];
  774. let mergedArrayList = mergedArray.concat(this.carInfoPositiveList, this
  775. .ownerInfoPositiveList, this
  776. .policyHolderInfoPositiveList, this.insuredPersonInfoPositiveList)
  777. if (mergedArrayList.length > 0) {
  778. await this.$http.post('/ins/taskImage/uploadImages', {
  779. imageList: mergedArrayList,
  780. quoteNo: this.quoteno,
  781. })
  782. }
  783. this.quotableCompanyList = this.quotableCompanyList.map((ele, index) => {
  784. if (ele.id == item.id) {
  785. // 动态调用报价接口
  786. ele.quoteCode = '1';
  787. this.ToolClickFun(ele.cnName, index, ele.id);
  788. }
  789. return ele
  790. });
  791. } else if (orders.code == '1001') {
  792. this.Generateshow = true;
  793. } else {
  794. uni.showToast({
  795. title: orders.msg,
  796. icon: 'none',
  797. });
  798. }
  799. }
  800. },
  801. async ToolClickFun(MethodName, Parameter, companyId) {
  802. await this[`${MethodName}`](Parameter, companyId)
  803. //获取已报价成功个数
  804. // let filteredObjects = [];
  805. // this.totalCompanyList.map(ele => {
  806. // if (ele.quoteCode == 200) {
  807. // filteredObjects.push(ele.result.companyId)
  808. // }
  809. // return ele;
  810. // })
  811. // this.comparableQuantity = filteredObjects.length;
  812. },
  813. //安盛天平
  814. ansheng(num, id) {
  815. this.quoteInsurance(num, id, this
  816. .quotableCompanyList[num].apiType);
  817. },
  818. //爬虫统一报价接口
  819. async quoteInsurance(num, id, apiType) {
  820. const companyId = uni.getStorageSync('companyId');
  821. // let api = apiType === 2 ?
  822. // "/insurance/crawler/quote" :
  823. // "";
  824. let api = '/insurance/crawler/quote';
  825. let ccidenttype = this.quotableCompanyList[num]
  826. .cnName;
  827. let namesimple = this.quotableCompanyList[num]
  828. .namesimple;
  829. let isTaxSource = this.quotableCompanyList[num].isTaxSource;
  830. let params = {
  831. orderNo: this.orderno,
  832. companyId: id,
  833. agreementId: '112',
  834. kindList: this.quotableCompanyList[num].insurancePlanInfo.kinds,
  835. riskList: this.riskList,
  836. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  837. accidentalDrivingVo: {},
  838. systemType: '2'
  839. };
  840. if (id = 'GPIC1000000') {
  841. if (companyId) {
  842. params.discount = this.quotableCompanyList[num]
  843. .syAdjustRate;
  844. params.lastCompanyId = companyId;
  845. }
  846. }
  847. let res = await this.$http.post(`${api}`,
  848. params);
  849. switch (namesimple) {
  850. case '安盛天平':
  851. case '恒邦财险':
  852. case '中国人寿':
  853. case '太平财险':
  854. case '华农财险':
  855. case '泰康财险':
  856. if (res.code == '200') {
  857. if (res.data.warnMessageList !=
  858. null && res.data
  859. .warnMessageList[0] != null &&
  860. res.data
  861. .warnMessageList[
  862. 0] != "") {
  863. this.quotableCompanyList[num]
  864. .lastYearMsg = "";
  865. let dat = res.data
  866. .warnMessageList;
  867. dat.map(ele => {
  868. this.quotableCompanyList[
  869. num]
  870. .lastYearMsg +=
  871. ele + '<br>';
  872. })
  873. }
  874. const updatedItem = {
  875. ...this.quotableCompanyList[num],
  876. quoteCode: 200
  877. };
  878. this.quotableCompanyList.splice(num, 1, updatedItem);
  879. this.quotableCompanyList[num].result =
  880. res.data;
  881. this.subOrderId = res.data.companyId;
  882. this.coordinateValue();
  883. if (res.data.syAdjustRate) {
  884. this.quotableCompanyList[num].syAdjustRate = res.data.syAdjustRate;
  885. uni.setStorageSync('companyId', res.data.companyId);
  886. }
  887. } else {
  888. const updatedItem = {
  889. ...this.quotableCompanyList[num],
  890. quoteCode: '3'
  891. };
  892. this.quotableCompanyList.splice(num, 1, updatedItem);
  893. this.quotableCompanyList[num].msg =
  894. res.msg;
  895. }
  896. break;
  897. case '众安财险':
  898. if (res.code == '200') {
  899. if (res.data.warnMessageList !=
  900. null && res.data
  901. .warnMessageList[0] != null &&
  902. res.data
  903. .warnMessageList[
  904. 0] != "") {
  905. this.quotableCompanyList[num]
  906. .lastYearMsg = "";
  907. let dat = res.data
  908. .warnMessageList;
  909. dat.map(ele => {
  910. this.quotableCompanyList[
  911. num]
  912. .lastYearMsg +=
  913. ele + '<br>';
  914. })
  915. }
  916. const updatedItem = {
  917. ...this.quotableCompanyList[num],
  918. quoteCode: 200
  919. };
  920. this.quotableCompanyList.splice(num, 1, updatedItem);
  921. this.quotableCompanyList[num].result =
  922. res.data;
  923. this.subOrderId = res.data.companyId;
  924. this.coordinateValue();
  925. } else {
  926. const updatedItem = {
  927. ...this.quotableCompanyList[num],
  928. quoteCode: '3'
  929. };
  930. this.quotableCompanyList.splice(num, 1, updatedItem);
  931. this.quotableCompanyList[num].msg =
  932. res.msg;
  933. }
  934. break;
  935. default:
  936. break;
  937. }
  938. },
  939. confirmPlan() {
  940. this.quotableCompanyList.map(val => {
  941. if (val.id == this.planDataExpansion.id) {
  942. val.insurancePlanInfo = this.planDataExpansion.genericPlanInfo;
  943. this.genericPlanPopup = false;
  944. }
  945. return val;
  946. })
  947. },
  948. convertedValue(num) {
  949. if (num < 10000) {
  950. return num.toString();
  951. } else if (num < 100000000) {
  952. return (Math.floor(num / 10000 * 10) / 10) + '万';
  953. } else {
  954. return (Math.floor(num / 100000000 * 10) / 10) + '亿';
  955. }
  956. },
  957. riskTypeEchoProcessing(code) {
  958. this.riskList = [];
  959. switch (code) {
  960. case '0330':
  961. this.riskList.push({
  962. amount: 0,
  963. endDate: this.jqendDate,
  964. instantFlag: "0",
  965. premium: 0,
  966. riskCode: "0507",
  967. startDate: this.jqstartDate,
  968. })
  969. break;
  970. case '034001':
  971. case '034002':
  972. this.riskList.push({
  973. amount: 0,
  974. endDate: this.syendDate,
  975. instantFlag: "0",
  976. premium: 0,
  977. riskCode: "0510",
  978. startDate: this.systartDate,
  979. })
  980. break;
  981. case '0330034002':
  982. case '0330034001':
  983. this.riskList.push({
  984. amount: 0,
  985. endDate: this.jqendDate,
  986. instantFlag: "0",
  987. premium: 0,
  988. riskCode: "0507",
  989. startDate: this.jqstartDate,
  990. }, {
  991. amount: 0,
  992. endDate: this.syendDate,
  993. instantFlag: "0",
  994. premium: 0,
  995. riskCode: "0510",
  996. startDate: this.systartDate,
  997. })
  998. break;
  999. }
  1000. console.log(this.riskList);
  1001. },
  1002. togglePlanDetails(index) {
  1003. this.quotableCompanyList[index].planDetailsshow = !this.quotableCompanyList[index]
  1004. .planDetailsshow; // 切换对应项的显示状态
  1005. this.quotableCompanyList = [...this.quotableCompanyList]; // 强制 Vue 重新渲染
  1006. },
  1007. //查看详情
  1008. querydetial(id) {
  1009. this.navigate({
  1010. url: "/pages/carInsure/quoteDetail?companyId=" + id
  1011. },
  1012. "navigateTo", true);
  1013. },
  1014. //报价单
  1015. bjdpreview(id) {
  1016. let pro = this.quotationType.themeCode;
  1017. if (pro == "QD") {
  1018. uni.navigateTo({
  1019. url: "/pages/orders/quotation?companyId=" + id
  1020. })
  1021. } else {
  1022. uni.navigateTo({
  1023. url: "/pages/orders/quotation1?companyId=" + id
  1024. })
  1025. }
  1026. },
  1027. // 显示报错信息
  1028. ErrorMsg(msg, title) {
  1029. uni.showModal({
  1030. title: title + "报价提示",
  1031. content: msg,
  1032. showCancel: false,
  1033. confirmText: "关闭"
  1034. })
  1035. },
  1036. discountErrorMessageMsg(msg, title) {
  1037. let content = msg.replace(/\n/g, "\r\n")
  1038. uni.showModal({
  1039. title: title + "优惠信息",
  1040. content: content,
  1041. showCancel: false,
  1042. confirmText: "关闭"
  1043. })
  1044. },
  1045. //使用此时间
  1046. syncData(item) {
  1047. this.jqstartDate = item.startDateJq ? item
  1048. .startDateJq : this.jqstartDate
  1049. this.jqendDate = item.endDateJq ? item
  1050. .endDateJq : this.endDateJq
  1051. this.systartDate = item.startDateSy ? item
  1052. .startDateSy : this.systartDate
  1053. this.syendDate = item.endDateSy ? item
  1054. .endDateSy : this.syendDate
  1055. uni.showToast({
  1056. title: '时间已替换',
  1057. icon: 'none',
  1058. duration: 1000
  1059. });
  1060. },
  1061. //车船税类型选择
  1062. taxRelifFlagConfirm(val, name) {
  1063. this.vehicleAndVesselTaxForm[name] = val[0].value;
  1064. this.model[name] = val[0].label;
  1065. },
  1066. taxDocumentDateconfirm(e) {
  1067. this.vehicleAndVesselTaxForm.taxDocumentDate = e.year + '-' + e.month + '-' + e.day;
  1068. },
  1069. taxPaidAreaCodeconfirm(e) {
  1070. this.vehicleAndVesselTaxForm.taxPaidAreaCode = e.province.value;
  1071. this.model.taxPaidAreaCode = e.province.label;
  1072. },
  1073. //数据字典
  1074. async getDicType(type) {
  1075. let res = await this.$http.get('/sysDict/dictDetails/' + type);
  1076. this[type + "options"] = res.data.ddList;
  1077. },
  1078. jqstartconfirm(e) {
  1079. this.jqstartDate = e.year + '-' + e.month + '-' + e.day + ' ' + e.hour + ':' + e.minute + ':' + e.second;
  1080. this.jqendDate = this.oneYearPast(this.jqstartDate)
  1081. },
  1082. jqendconfirm(e) {
  1083. this.jqendDate = e.year + '-' + e.month + '-' + e.day + ' ' + e.hour + ':' + e.minute + ':' + e.second;
  1084. },
  1085. systartconfirm(e) {
  1086. this.systartDate = e.year + '-' + e.month + '-' + e.day + ' ' + e.hour + ':' + e.minute + ':' + e.second;
  1087. this.syendDate = this.oneYearPast(this.systartDate)
  1088. },
  1089. syendconfirm(e) {
  1090. this.syendDate = e.year + '-' + e.month + '-' + e.day + ' ' + e.hour + ':' + e.minute + ':' + e.second;
  1091. },
  1092. statusclick(value) {
  1093. this.SelectedPlanId = value;
  1094. let planObj = this.planDataExpansion.genericPlanList.find(item => item.schemeId == value);
  1095. this.planDataExpansion.genericPlanInfo = planObj;
  1096. },
  1097. InsureGuideclick() {
  1098. this.InsureGuidePopup = true;
  1099. },
  1100. async SchemeSelection(item) {
  1101. console.log(item);
  1102. let params = {
  1103. companyId: item.id,
  1104. productId: this.productId,
  1105. seatNum: this.carInfo.seatCount,
  1106. }
  1107. let res = await this.$http.post('/plt/scheme/getCompanySchemeInfo', params);
  1108. let res1 = await this.$http.post('/plt/scheme/getCompanyOptionalSchemeInfo', params);
  1109. if (res.code == '200') {
  1110. this.planDataExpansion.id = item.id;
  1111. this.planDataExpansion.namesimple = item.namesimple;
  1112. this.planDataExpansion.cnName = item.cnName;
  1113. this.planDataExpansion.genericPlanList = [...res.data, res1.data];
  1114. this.planDataExpansion.genericPlanInfo = res.data[0];
  1115. this.SelectedPlanId = res.data[0].schemeId;
  1116. this.genericPlanPopup = true;
  1117. }
  1118. },
  1119. //即使投保时处理时间
  1120. datelyClick(value, name, startDate, endDate) {
  1121. this[name] = value;
  1122. if (value == 1) {
  1123. const date = new Date();
  1124. date.setHours(date.getHours() + 2);
  1125. date.setMinutes(0)
  1126. date.setSeconds(0)
  1127. this[startDate] = this.transformTime(date)
  1128. this[endDate] = this.oneYearPast(date);
  1129. } else {
  1130. this[startDate] = this.nextday();
  1131. this[endDate] = this.oneYearPast(this.jqstartDate);
  1132. }
  1133. },
  1134. //获取保险公司列表
  1135. commpanyList() {
  1136. this.quotableCompanyList.map(ele => {
  1137. ele["result"] = {};
  1138. ele["quoteCode"] = 0;
  1139. ele["checked"] = false;
  1140. ele["msg"] = "";
  1141. ele["lastYearMsg"] = "";
  1142. ele["agreementName"] = "";
  1143. ele["apiType"] = "";
  1144. ele["coefficient"] = "";
  1145. ele["syAdjustRate"] = "";
  1146. ele["selectShow"] = false;
  1147. ele['underwritingDescription'] = "";
  1148. ele['isComparableShow'] = false;
  1149. ele['planDetailsshow'] = false;
  1150. ele['isComparableshowHide'] = false;
  1151. ele['isComparableDisabled'] = false;
  1152. ele['insurancePlanInfo'] = null;
  1153. return ele;
  1154. })
  1155. },
  1156. immediatelyClick(name) {
  1157. this.carInfo[name] = !this.carInfo[name];
  1158. if (name == 'transferFlag') {
  1159. if (this.carInfo[name]) {
  1160. this.carInfo.transferDate = this.carInfo.issueDate;
  1161. } else {
  1162. this.carInfo.transferDate = "";
  1163. }
  1164. }
  1165. },
  1166. toCarInfo() {
  1167. this.navigate({
  1168. url: '/pages/carInsure/Information',
  1169. success: (res) => {
  1170. res.eventChannel.emit(
  1171. "acceptData", {
  1172. carInfo: this
  1173. .carInfo,
  1174. ownerInfo: this
  1175. .ownerInfo,
  1176. policyHolderInfo: this
  1177. .policyHolderInfo,
  1178. insuredPersonInfo: this
  1179. .insuredPersonInfo,
  1180. riskList: this
  1181. .riskList,
  1182. kindList: this
  1183. .kindList,
  1184. carInfoPositiveList: this
  1185. .carInfoPositiveList, //车辆
  1186. ownerInfoPositiveList: this
  1187. .ownerInfoPositiveList, //车主
  1188. policyHolderInfoPositiveList: this
  1189. .policyHolderInfoPositiveList, //投保
  1190. insuredPersonInfoPositiveList: this
  1191. .insuredPersonInfoPositiveList, //被保人
  1192. })
  1193. }
  1194. }, "navigateTo", true);
  1195. },
  1196. //计算输入时间一年后的的前一天(输入的参数为字符串("2019-03-02")最终输出也为日期的字符串)
  1197. oneYearPast(time) {
  1198. var date = new Date(time);
  1199. date.setSeconds(date.getSeconds() - 1);
  1200. date.setFullYear(date.getFullYear() + 1); //一年后
  1201. date.setTime(date.getTime()); //一年后的前一天
  1202. var strYear = date.getFullYear();
  1203. var strDay = date.getDate();
  1204. var strMonth = date.getMonth() + 1;
  1205. var hh = date.getHours();
  1206. var minutes = date.getMinutes(); // 分
  1207. var Seconds = date.getSeconds();
  1208. if (hh < 10) {
  1209. hh = "0" + hh;
  1210. }
  1211. if (minutes < 10) {
  1212. minutes = "0" + minutes;
  1213. }
  1214. if (Seconds < 10) {
  1215. Seconds = "0" + Seconds;
  1216. }
  1217. if (strMonth < 10) {
  1218. strMonth = "0" + strMonth;
  1219. }
  1220. if (strDay < 10) {
  1221. strDay = "0" + strDay;
  1222. }
  1223. var datastr =
  1224. strYear + "-" + strMonth + "-" + strDay + " " + hh + ":" + minutes + ":" + Seconds;
  1225. return datastr;
  1226. },
  1227. //次日
  1228. nextday() {
  1229. var date = new Date();
  1230. date.setFullYear(date.getFullYear());
  1231. date.setTime(date.getTime() + 24 * 60 * 60 * 1000);
  1232. var strYear = date.getFullYear();
  1233. var strDay = date.getDate();
  1234. var strMonth = date.getMonth() + 1;
  1235. var hh = date.getHours();
  1236. if (hh < 10) {
  1237. hh = "0" + hh;
  1238. }
  1239. if (strMonth < 10) {
  1240. strMonth = "0" + strMonth;
  1241. }
  1242. if (strDay < 10) {
  1243. strDay = "0" + strDay;
  1244. }
  1245. var datastr = strYear + "-" + strMonth + "-" + strDay + " " + "00:00:00";
  1246. return datastr;
  1247. },
  1248. //时间转换
  1249. transformTime(date) {
  1250. var d = new Date(date);
  1251. var strYear = d.getFullYear();
  1252. var strMonth = d.getMonth() + 1;
  1253. var strDay = d.getDate();
  1254. var hh = d.getHours();
  1255. var minutes = d.getMinutes(); // 分
  1256. var Seconds = d.getSeconds();
  1257. if (hh < 10) {
  1258. hh = "0" + hh;
  1259. }
  1260. if (minutes < 10) {
  1261. minutes = "0" + minutes;
  1262. }
  1263. if (Seconds < 10) {
  1264. Seconds = "0" + Seconds;
  1265. }
  1266. if (strMonth < 10) {
  1267. strMonth = "0" + strMonth;
  1268. }
  1269. if (strDay < 10) {
  1270. strDay = "0" + strDay;
  1271. }
  1272. var datetime =
  1273. strYear + "-" + strMonth + "-" + strDay + " " + hh + ":" + minutes + ":" + Seconds;
  1274. return datetime;
  1275. },
  1276. toChinesNum(num) {
  1277. let overWan = Math.floor(num / 10000);
  1278. let result = overWan + "万";
  1279. return result;
  1280. },
  1281. }
  1282. }
  1283. </script>
  1284. <style lang="scss" scoped>
  1285. @import '@/style/mixin.scss';
  1286. .page {
  1287. background: #F8FAFE;
  1288. padding: 16px 16px 100px 16px;
  1289. }
  1290. .sum {
  1291. color: #0052FF;
  1292. font-size: 14px;
  1293. font-weight: bold;
  1294. }
  1295. .scroll-Y {
  1296. height: 600px;
  1297. }
  1298. .scroll-view-item {
  1299. height: 300rpx;
  1300. line-height: 300rpx;
  1301. text-align: center;
  1302. font-size: 36rpx;
  1303. }
  1304. .modelformcss {
  1305. padding: 5px 15px;
  1306. }
  1307. .PlanPopup-btn {
  1308. width: 100%;
  1309. height: 48px;
  1310. background: #FFFFFF;
  1311. box-shadow: 0px -2px 4px 0px rgba(0, 0, 0, 0.05);
  1312. }
  1313. .Plancontent {
  1314. padding: 8px;
  1315. .title {
  1316. color: #232832;
  1317. font-size: 15px;
  1318. font-weight: bold;
  1319. ::before {
  1320. content: "丨";
  1321. width: 10px;
  1322. height: 10px;
  1323. color: #0052FF;
  1324. }
  1325. }
  1326. .Accident {
  1327. width: 100%;
  1328. border: 1px solid #0874FF;
  1329. border-radius: 6px;
  1330. overflow: hidden;
  1331. .head {
  1332. width: 33.33%;
  1333. height: 40px;
  1334. background-color: #0874FF;
  1335. color: #FFFFFF;
  1336. &:nth-child(1) {
  1337. width: 50%;
  1338. }
  1339. }
  1340. .tr {
  1341. width: 33.33%;
  1342. height: 50px;
  1343. color: #232832;
  1344. border: 1rpx solid #0874FF;
  1345. font-size: 24rpx;
  1346. color: #232832;
  1347. &:nth-child(1) {
  1348. width: 50%;
  1349. background: rgba(8, 116, 255, 0.05);
  1350. }
  1351. &:nth-child(3) {
  1352. background: rgba(8, 116, 255, 0.05);
  1353. }
  1354. }
  1355. }
  1356. .insuranceType {
  1357. margin: 5px 15px;
  1358. background: #F2F6FF;
  1359. border-radius: 10px;
  1360. >view {
  1361. padding: 8px;
  1362. border-bottom: 1px solid #f2f2f2;
  1363. color: #232832;
  1364. }
  1365. }
  1366. .terms {
  1367. color: #FFFFFF;
  1368. background: linear-gradient(90deg, #FF4D4D 0%, #FF784D 100%);
  1369. border-radius: 4px 4px 4px 4px;
  1370. }
  1371. }
  1372. .quotePlan {
  1373. background: #FFFFFF;
  1374. box-shadow: 0px 4px 10px 0px #DAE3F4;
  1375. border-radius: 6px;
  1376. }
  1377. .status-data {
  1378. width: auto;
  1379. padding: 2px 8px;
  1380. margin-left: 10px;
  1381. font-size: 12px;
  1382. border: 1px solid #CDCDCD;
  1383. cursor: pointer;
  1384. text-align: center;
  1385. line-height: 25px;
  1386. }
  1387. .active {
  1388. position: relative;
  1389. background: rgba(0, 82, 255, 0.1);
  1390. color: #0052FF;
  1391. border: 1px solid #0052FF !important;
  1392. font-weight: 700;
  1393. }
  1394. .active::before {
  1395. content: "";
  1396. position: absolute;
  1397. top: 0;
  1398. left: 0;
  1399. width: 10px;
  1400. height: 10px;
  1401. background-image: url("/static/image/car-insure/before.png");
  1402. background-size: cover;
  1403. }
  1404. .active1 {
  1405. position: relative;
  1406. background: rgba(255, 86, 0, 0.1);
  1407. color: #FF5600;
  1408. border: 1px solid #FF5600;
  1409. font-weight: 700;
  1410. }
  1411. .active1::before {
  1412. content: "";
  1413. position: absolute;
  1414. top: 0;
  1415. left: 0;
  1416. width: 10px;
  1417. height: 10px;
  1418. background-image: url("/static/image/car-insure/before1.png");
  1419. background-size: cover;
  1420. }
  1421. .car-header {
  1422. width: 100%;
  1423. height: auto;
  1424. background: linear-gradient(0, #FFFFFF 0%, rgba(241, 246, 255, 0.8) 100%);
  1425. box-shadow: 0px 4px 10px 0px rgba(158, 173, 229, 0.1);
  1426. border-radius: 6px;
  1427. padding: 8px 15px;
  1428. position: relative;
  1429. .head-name {
  1430. margin-left: 10px;
  1431. &>text {
  1432. font-weight: bold;
  1433. font-size: 14px;
  1434. color: #232832;
  1435. }
  1436. .name1 text {
  1437. font-size: 14px;
  1438. color: #333333;
  1439. }
  1440. }
  1441. .carJump {
  1442. position: absolute;
  1443. top: 5px;
  1444. right: 10px;
  1445. font-size: 14px;
  1446. color: #0052FF;
  1447. }
  1448. }
  1449. /* 报价公司Start */
  1450. .quoteCompany {
  1451. box-sizing: border-box;
  1452. /* background:#FFFFFF; */
  1453. position: relative;
  1454. border-radius: 20upx;
  1455. }
  1456. .quoteCompany .header {
  1457. height: 80upx;
  1458. }
  1459. .quoteCompany .header .title {
  1460. font-size: 30upx;
  1461. font-weight: bold;
  1462. }
  1463. .quoteCompany .header .title .icon {
  1464. color: rgba($themeColor, 0.6);
  1465. margin-left: 15upx;
  1466. }
  1467. .quoteCompanyItem {
  1468. margin-bottom: 20upx;
  1469. background: #FFFFFF;
  1470. border-radius: 6px;
  1471. box-shadow: 0px 4px 10px 0px #DAE3F4;
  1472. box-sizing: border-box;
  1473. cursor: pointer;
  1474. }
  1475. .quoteCompanyItem .top {
  1476. position: relative;
  1477. padding: 8px;
  1478. }
  1479. .quoteCompanyItem .top .companyIcon {
  1480. border-radius: 6px 6px 0 0;
  1481. flex-shrink: 0;
  1482. }
  1483. .insuranceGuide {
  1484. background: rgba(255, 86, 0, 0.05);
  1485. border-radius: 2px;
  1486. font-weight: bold;
  1487. font-size: 12px;
  1488. color: #FF5600;
  1489. padding: 0 4px;
  1490. }
  1491. .planDetails {
  1492. width: 100%;
  1493. height: auto;
  1494. background: #F9F9F9;
  1495. border-radius: 6px;
  1496. padding: 6px;
  1497. .headers {
  1498. >image {
  1499. width: 14px;
  1500. height: 14px;
  1501. }
  1502. >text {
  1503. font-size: 12px;
  1504. color: #4B6FBA;
  1505. margin-left: 10px;
  1506. }
  1507. }
  1508. }
  1509. .content {
  1510. padding: 0 8px;
  1511. margin-bottom: 5px;
  1512. }
  1513. .quoteCompanyItem .top .companyIcon image {
  1514. width: 20px;
  1515. height: 20px;
  1516. margin-right: 10px;
  1517. }
  1518. .quoteCompanyItem .top .Premium {
  1519. padding: 10px 8px;
  1520. background-color: #FFF6F2;
  1521. border-radius: 4px;
  1522. .price {
  1523. font-size: 12px;
  1524. color: #FF5600;
  1525. text {
  1526. margin-right: 5px;
  1527. }
  1528. }
  1529. .time {
  1530. font-size: 12px;
  1531. color: #2D4D89;
  1532. >text {
  1533. margin-right: 5px;
  1534. }
  1535. }
  1536. }
  1537. .quoteCompanyItem .top .quotebtn {
  1538. width: 100%;
  1539. height: auto;
  1540. >view {
  1541. width: 50%;
  1542. font-size: 14px;
  1543. padding: 4px 0;
  1544. }
  1545. }
  1546. .lastyear {
  1547. view {
  1548. font-size: 12px;
  1549. }
  1550. .left {
  1551. border: 1px solid #229805;
  1552. border-radius: 2px;
  1553. padding: 1px 6px;
  1554. color: #229805;
  1555. }
  1556. .right {
  1557. border-radius: 2px;
  1558. padding: 1px 6px;
  1559. border: 1px solid #FF5600;
  1560. color: #FF5600;
  1561. }
  1562. }
  1563. .quoteCompanyItem .top .companyName {
  1564. font-size: 14px;
  1565. font-weight: bold;
  1566. color: #232832;
  1567. }
  1568. .quoteCompanyItem .top .totalMoney {
  1569. font-size: 40upx;
  1570. font-weight: bold;
  1571. color: $themeColor;
  1572. position: absolute;
  1573. top: -15upx;
  1574. right: 0;
  1575. }
  1576. .quoteCompanyItem .top .tip {
  1577. font-size: 26upx;
  1578. font-weight: bold;
  1579. color: #999;
  1580. position: absolute;
  1581. top: 0upx;
  1582. right: 0;
  1583. }
  1584. .sum {
  1585. color: #0052FF;
  1586. font-size: 14px;
  1587. font-weight: bold;
  1588. }
  1589. .quoteCompanyItem .top .signs {
  1590. width: 500upx;
  1591. overflow: hidden;
  1592. text-overflow: ellipsis;
  1593. white-space: nowrap;
  1594. }
  1595. .quoteCompanyItem .top .sign {
  1596. height: 40upx;
  1597. margin: 0upx 10upx;
  1598. background: rgba($themeColor, 0.6);
  1599. color: $themeColor;
  1600. font-size: 20upx;
  1601. margin-right: 10upx;
  1602. border-radius: 6upx;
  1603. padding: 0 2px;
  1604. line-height: 40upx;
  1605. }
  1606. .jqsign {
  1607. height: 20px;
  1608. background: rgba(255, 177, 177, 0.55);
  1609. color: #fd0a0a;
  1610. font-size: 20upx;
  1611. border-radius: 6upx;
  1612. padding: 0 10px;
  1613. box-sizing: border-box;
  1614. }
  1615. .quoteCompanyItem .body {
  1616. padding: 20upx 0;
  1617. flex-wrap: wrap;
  1618. }
  1619. .quoteCompanyItem .body>view {
  1620. flex-shrink: 0;
  1621. width: 50%;
  1622. overflow: hidden;
  1623. text-overflow: ellipsis;
  1624. white-space: nowrap;
  1625. }
  1626. .quoteCompanyItem .body .icon-exchange {
  1627. margin-right: 15upx;
  1628. display: inline-block;
  1629. }
  1630. /* 报价公司End */
  1631. /* 整个页面的统一样式 End */
  1632. .plan-ins-title {
  1633. color: #232832;
  1634. font-size: 15px;
  1635. font-weight: bold;
  1636. padding: 8px;
  1637. }
  1638. .immediately {
  1639. padding: 19rpx 15px;
  1640. .common-ins-cell:last-child {
  1641. border-bottom: none;
  1642. }
  1643. }
  1644. .common-title {
  1645. font-size: 32upx;
  1646. font-weight: bold;
  1647. }
  1648. .common-ins-cell {
  1649. font-size: 30upx;
  1650. padding: 0upx 30upx;
  1651. height: 90upx;
  1652. border-bottom: 1px solid #eee;
  1653. }
  1654. /* 交强险和商业险弹出框Start */
  1655. .popup-content {
  1656. position: relative;
  1657. }
  1658. .popHeader {
  1659. box-sizing: border-box;
  1660. font-size: 32upx;
  1661. font-weight: bold;
  1662. height: 120upx;
  1663. border-bottom: 1px solid #eee;
  1664. }
  1665. .popup-content .popContent {
  1666. padding: 0upx 30upx;
  1667. height: 620upx;
  1668. box-sizing: border-box;
  1669. }
  1670. .popup-content .popContent .popContentTitle {
  1671. font-weight: bold;
  1672. font-size: 32upx;
  1673. margin: 20upx 0upx 5upx 0upx;
  1674. }
  1675. .popup-content .popContent .amtSingle {
  1676. width: 22%;
  1677. box-sizing: border-box;
  1678. display: inline-block;
  1679. text-align: center;
  1680. vertical-align: middle;
  1681. border: 1px solid #eee;
  1682. margin: 0 15rpx 15rpx 0;
  1683. }
  1684. .popup-content .popBottom {
  1685. margin: 30upx 30upx 0 30upx;
  1686. padding-bottom: 30upx;
  1687. }
  1688. /* 交强险和商业险弹出框End */
  1689. </style>