quote1.vue 81 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525
  1. <template>
  2. <view :style="getHeight" style="background-color: #F5F5F5;">
  3. <!-- 头部 -->
  4. <view class="carInfo w-100 px-3 box-sizing">
  5. <view class="d-flex">
  6. <view class="icon iconfont icon-tree-round-car flex-shrink topLeft"></view>
  7. <view class="topRight d-flex flex-1 p-3 flex-column" style="color: #FFFFFF;">
  8. <view class="d-flex flex-1">
  9. <view class="font-lg d-flex a-center">{{this.carInfo.licenseNo}}
  10. <view class="icon iconfont icon-bianji1 ml-2" @tap="toCarInfo"></view>
  11. </view>
  12. </view>
  13. <view class="brandName">{{this.carInfo.modelcname}}</view>
  14. </view>
  15. </view>
  16. <view class="other d-flex j-sb px-3">
  17. <view class="d-flex flex-1 a-center">
  18. <view class="privilege d-flex a-center j-center flex-shrink px-2">特权</view>
  19. <view class="content">每月自动查违章,无违章领奖励</view>
  20. </view>
  21. <view class="flex-shrink icon iconfont icon-youjiantou d-flex a-center font-sm"></view>
  22. </view>
  23. </view>
  24. <!-- 报价方案 -->
  25. <view class="pageContent">
  26. <view class="quotePlan mx-3">
  27. <view class="header j-sb d-flex a-center px-3">
  28. <view class="title font-md">报价方案</view>
  29. <view class="adjustPlan main-text-color" @tap="toInsureItems">调整方案</view>
  30. </view>
  31. <view class="body">
  32. <view class="insurance">
  33. <template v-if="jqstartDate">
  34. <view class="row j-sb d-flex a-center">
  35. <view>交强险</view>
  36. <view>投保</view>
  37. </view>
  38. </template>
  39. <template v-if="systartDate">
  40. <block v-for="(item,index) in insureList" :key="index">
  41. <template v-if="item.amount!=0">
  42. <view class="row j-sb d-flex a-center">
  43. <view>{{item.kindName}}</view>
  44. <block v-for="(item2,index2) in item.amtList" :key="index2">
  45. <template v-if="item2.value == item.amount">
  46. <view>{{item2.label}}</view>
  47. </template>
  48. </block>
  49. </view>
  50. </template>
  51. </block>
  52. </template>
  53. <view class="dis j-s a-c" v-if="jqstartDate">
  54. <view style="margin-right: 40px;">交强起保日期:</view>
  55. <u-input type="select" :select-open="jqstartShow" v-model="jqstartDate"
  56. @click="jqstartShow = true" style="width: 100px;"></u-input>
  57. <u-picker v-model="jqstartShow" mode="time" :params="params"
  58. @confirm="jqstartconfirm"></u-picker>
  59. </view>
  60. <view class="dis j-s a-c" v-if="jqendDate">
  61. <view style="margin-right: 40px;">交强终保日期:</view>
  62. <u-input type="select" :select-open="jqendShow" v-model="jqendDate"
  63. @click="jqendShow = true" style="width: 100px;"></u-input>
  64. <u-picker v-model="jqendShow" mode="time" :params="params"
  65. @confirm="jqendconfirm"></u-picker>
  66. </view>
  67. <view class="dis j-s a-c" v-if="systartDate">
  68. <view style="margin-right: 40px;">商业起保日期:</view>
  69. <u-input type="select" :select-open="systartShow" v-model="systartDate"
  70. @click="systartShow = true" style="width: 100px;"></u-input>
  71. <u-picker v-model="systartShow" mode="time" :params="params"
  72. @confirm="systartconfirm"></u-picker>
  73. </view>
  74. <view class="dis j-s a-c" v-if="syendDate">
  75. <view style="margin-right: 40px;">商业终保日期:</view>
  76. <u-input type="select" :select-open="syendShow" v-model="syendDate"
  77. @click="syendShow = true" style="width: 100px;"></u-input>
  78. <u-picker v-model="syendShow" mode="time" :params="params"
  79. @confirm="syendconfirm"></u-picker>
  80. </view>
  81. </view>
  82. <!-- <view class="addedServices">
  83. <view class="row j-sb d-flex a-center">
  84. <view>增值服务</view>
  85. <view>赠送</view>
  86. </view>
  87. <view style="padding: 15upx;color: #A6A6A6;font-size: 24upx;background-color: #F8FAFC;">
  88. 注:包含道路救援/安全检测/代为驾驶/代为送检,投保以上商业主险免费赠送,各家保司各个地区旅游差异,具体以保单信息为准</view>
  89. </view> -->
  90. </view>
  91. </view>
  92. <view class="quoteCompany">
  93. <view class="header j-sb d-flex a-center">
  94. <view class="title d-flex">精选保险公司<view class="icon iconfont icon-Group-"></view>
  95. </view>
  96. </view>
  97. <block v-for="(totalitem,totalindex) in totalCompanyList" :key="index">
  98. <template>
  99. <view class="quoteCompanyItem">
  100. <view class="top dis f-c">
  101. <ls-loading v-show="totalitem.quoteCode==1" text="掌柜正在为您报价,请稍等......"
  102. :animation="animation" fontSize="22" />
  103. <view class="companyIcon dis j-s a-c">
  104. <view class="dis">
  105. <!-- 勾选框 -->
  106. <u-checkbox
  107. @change="event=>checkboxChange(event,totalitem.id,totalitem.cnName, totalindex)"
  108. v-model="totalitem.checked" active-color="rgb(250, 53, 52)"></u-checkbox>
  109. <!-- logo -->
  110. <image :src="totalitem.logo"></image>
  111. <!-- 名称 -->
  112. <view class="companyName">{{totalitem.namesimple}}</view>
  113. </view>
  114. <!-- 价格 -->
  115. <text v-show="totalitem.quoteCode==200"
  116. class="sum">¥{{totalitem.result.sumPermium}}</text>
  117. <text
  118. v-show="(totalitem.quoteCode != '200') && (totalitem.quoteCode != '0') && (totalitem.quoteCode != '1')"
  119. class="sum" style="color: #999;font-size: 12px;"
  120. @click="ErrorMsg(totalitem.msg,totalitem.namesimple)">报价失败,请点击查看</text>
  121. </view>
  122. <view v-show="totalitem.quoteCode==200" class="dis Premium f-wrap"
  123. style="font-size: 12px;color: #ee7000;">
  124. <text v-if="totalitem.result.jqPremium">交强险:¥{{totalitem.result.jqPremium}}</text>
  125. <text v-if="totalitem.result.syPremium"
  126. style="margin: 0 5px;">商业险:¥{{totalitem.result.syPremium}}</text>
  127. <text v-if="totalitem.result.taxAmount">车船税:¥{{totalitem.result.taxAmount}}</text>
  128. <text v-if="totalitem.result.jyPremium">驾意险:¥{{totalitem.result.jyPremium}}</text>
  129. </view>
  130. <view v-show="totalitem.quoteCode==200" class="dis f-c"
  131. style="font-size: 12px;color: #6495ed;border-top: 1px solid #f2f2f2;">
  132. <text
  133. v-if="totalitem.result.jqPremium">交强险:{{totalitem.result.startDateJq}}~{{totalitem.result.endDateJq}}
  134. <u-icon style="color:#ee7000;margin-left: 20px;font-size: 16px;" name="clock"
  135. @click="syncData(totalitem.result)"></u-icon>
  136. </text>
  137. <text
  138. v-if="totalitem.result.startDateSy">商业险:{{totalitem.result.startDateSy}}~{{totalitem.result.endDateSy}}
  139. </text>
  140. <text v-if="totalitem.namesimple == '永诚财险'">光博分:{{ totalitem.result.ilogPreUdwMess ?
  141. totalitem.result.ilogPreUdwMess : '无' }}</text>
  142. <text v-else>评分:{{ totalitem.result.ilogPreUdwMess ?
  143. totalitem.result.ilogPreUdwMess : '无' }}</text>
  144. <text v-if="totalitem.result.accidentInfoStr">出险信息:{{ totalitem.result.accidentInfoStr ?
  145. totalitem.result.accidentInfoStr : '无' }}</text>
  146. </view>
  147. <text v-if="totalitem.result.tips && totalitem.namesimple == '众安财险'"
  148. style="color: red;">{{ totalitem.result.tips}}</text>
  149. <view class="dis a-c " v-if="totalitem.checked">
  150. <u-form-item label="报价协议选择" :prop="totalitem.agreementId" label-width="200"
  151. :border-bottom='false' style="width: 280px;padding: 0;">
  152. <u-input type="select" :select-open="totalitem.selectShow"
  153. v-model="totalitem.agreementName" placeholder="请选择协议"
  154. @click="totalitem.selectShow = true"
  155. :custom-style="{fontSize:'14px'}"></u-input>
  156. <u-select mode="single-column" :list="totalitem.agreement" value-name="id"
  157. label-name="agreementName" v-model="totalitem.selectShow"
  158. @confirm="val=>selectConfirm(val,totalindex)"></u-select>
  159. </u-form-item>
  160. <u-button v-if="totalitem.namesimple == '紫金财险'" size="mini " type="warning"
  161. :hair-line="false" @click="zijinPopupshow=true"
  162. style="margin-left: 10px;">意外险选择</u-button>
  163. </view>
  164. <template
  165. v-if="totalitem.namesimple == '中国人寿' && totalitem.checked && totalitem.agreementId && renshouaccidentalDrivingVo.id">
  166. <view class="accident-style dis f-c ">
  167. <view class=" accident-ins dis a-c j-s">
  168. <u-checkbox shape="circle" size="30" v-model="totalitem.jychecked"
  169. @change="checkboxChangeInfo($event,totalindex)"
  170. active-color="rgb(255, 170, 0)"></u-checkbox>
  171. <view class=" dis a-c j-s " @click="renshouPopupshow=true">
  172. <text
  173. style="font-size: 14px;">{{renshouaccidentalDrivingVo.productName}}</text>
  174. <u-icon name="arrow-right" style="color: #999;" size="24"></u-icon>
  175. </view>
  176. </view>
  177. <view class=" dis j-s a-c">
  178. <view class="">
  179. <text style="font-size: 14px;">保费:</text>
  180. <text
  181. style="font-size: 14px;color: #ee7000;">¥{{renshouaccidentalDrivingVo.totalPremium*renshouaccidentalDrivingVo.quantity}}.00起</text>
  182. </view>
  183. <view class="">
  184. <text style="font-size: 14px;">份数:</text>
  185. <u-number-box v-model="renshouaccidentalDrivingVo.quantity" :min="1"
  186. :max="1" :disabled-input="true" :input-width="70" :input-height="44"
  187. size="26"></u-number-box>
  188. </view>
  189. </view>
  190. </view>
  191. </template>
  192. <template
  193. v-if="totalitem.namesimple == '紫金财险' && totalitem.checked && totalitem.agreementId ">
  194. <text style="font-weight: bold;font-size: 12px;"
  195. v-if="zijinaccidentalDrivingVo.length>0">意外险信息</text>
  196. <view class="accident-style dis f-c "
  197. v-for="(item,index) in zijinaccidentalDrivingVo">
  198. <view class=" accident-ins dis a-c j-s">
  199. <view class=" dis a-c j-s ">
  200. <text style="font-size: 14px;">{{item.projectName}}</text>
  201. <u-icon name="arrow-right" style="color: #999;" size="24"></u-icon>
  202. </view>
  203. </view>
  204. <view class=" dis j-s a-c">
  205. <view class="">
  206. <text style="font-size: 14px;">保费:</text>
  207. <text
  208. style="font-size: 14px;color: #ee7000;">¥{{item.sumPremium*item.quantity}}.00</text>
  209. </view>
  210. <view class="">
  211. <text style="font-size: 14px;">份数:</text>
  212. <u-number-box v-model="item.quantity" :min="1" :max="item.maxQuantity"
  213. :disabled-input="item.maxQuantity==1?true :false" :input-width="70"
  214. :input-height="44" size="26"></u-number-box>
  215. </view>
  216. </view>
  217. </view>
  218. </template>
  219. <template
  220. v-if="totalitem.namesimple == '恒邦财险' && totalitem.checked && totalitem.agreementId && hengbangaccidentalDrivingVo.programcode">
  221. <view class="accident-style dis f-c ">
  222. <view class=" accident-ins dis a-c j-s">
  223. <u-checkbox shape="circle" size="30" v-model="totalitem.jychecked"
  224. @change="checkboxChangeInfo($event,totalindex)"
  225. active-color="rgb(255, 170, 0)"></u-checkbox>
  226. <view class=" dis a-c j-s " @click="hengbangPopupshow=true">
  227. <text
  228. style="font-size: 14px;">{{hengbangaccidentalDrivingVo.programname}}</text>
  229. <u-icon name="arrow-right" style="color: #999;" size="24"></u-icon>
  230. </view>
  231. </view>
  232. <view class=" dis j-s a-c">
  233. <view class="">
  234. <text style="font-size: 14px;">保费:</text>
  235. <text
  236. style="font-size: 14px;color: #ee7000;">¥{{hengbangaccidentalDrivingVo.sumgrosspremium*hengbangaccidentalDrivingVo.quantity}}.00</text>
  237. </view>
  238. <view class="">
  239. <text style="font-size: 14px;">份数:</text>
  240. <u-number-box v-model="hengbangaccidentalDrivingVo.quantity" :min="1"
  241. :max="1" :disabled-input="true" :input-width="70" :input-height="44"
  242. size="26"></u-number-box>
  243. </view>
  244. </view>
  245. </view>
  246. </template>
  247. <template
  248. v-if="totalitem.namesimple == '众安财险' && totalitem.checked && totalitem.agreementId && zhonganaccidentalDrivingVo.combination">
  249. <view class="accident-style dis f-c ">
  250. <view class=" accident-ins dis a-c j-s">
  251. <u-checkbox shape="circle" size="30" v-model="totalitem.jychecked"
  252. @change="checkboxChangeInfo($event,totalindex)"
  253. active-color="rgb(255, 170, 0)"></u-checkbox>
  254. <view class=" dis a-c j-s " @click="zhonganPopupshow=true">
  255. <text
  256. style="font-size: 14px;">{{zhonganaccidentalDrivingVo.name}}</text>
  257. <u-icon name="arrow-right" style="color: #999;" size="24"></u-icon>
  258. </view>
  259. </view>
  260. <view class=" dis j-s a-c">
  261. <text style="font-size: 14px;">份数:</text>
  262. <u-number-box v-model="zhonganaccidentalDrivingVo.quantity" :min="1"
  263. :max="1" :disabled-input="true" :input-width="70" :input-height="44"
  264. size="26"></u-number-box>
  265. </view>
  266. </view>
  267. </template>
  268. <template
  269. v-if="totalitem.namesimple == '永诚财险' && totalitem.checked && totalitem.agreementId && yongchengaccidentalDrivingVo.rideRiskCode">
  270. <view class="accident-style dis f-c ">
  271. <view class=" accident-ins dis a-c j-s">
  272. <u-checkbox shape="circle" size="30" v-model="totalitem.jychecked"
  273. @change="checkboxChangeInfo($event,totalindex)"
  274. active-color="rgb(255, 170, 0)"></u-checkbox>
  275. <view class=" dis a-c j-s " @click="yongchengPopupshow=true">
  276. <text
  277. style="font-size: 14px;">{{yongchengaccidentalDrivingVo.rideRiskName}}</text>
  278. <u-icon name="arrow-right" style="color: #999;" size="24"></u-icon>
  279. </view>
  280. </view>
  281. <view class=" dis j-s a-c">
  282. <view class="">
  283. <text style="font-size: 14px;">保费:</text>
  284. <text
  285. style="font-size: 14px;color: #ee7000;">¥{{yongchengaccidentalDrivingVo.premium*yongchengaccidentalDrivingVo.quantity}}.00</text>
  286. </view>
  287. <view class="">
  288. <text style="font-size: 14px;">份数:</text>
  289. <u-number-box v-model="yongchengaccidentalDrivingVo.quantity" :min="1"
  290. :max="100" :input-width="70" :input-height="44"
  291. size="26"></u-number-box>
  292. </view>
  293. </view>
  294. </view>
  295. </template>
  296. <template
  297. v-if="totalitem.namesimple == '安盛天平' && totalitem.checked && totalitem.agreementId && anshengaccidentalDrivingVo.planCode">
  298. <view class="accident-style dis f-c ">
  299. <view class=" accident-ins dis a-c j-s">
  300. <text style="font-size: 14px;">分类</text>
  301. <view class=" dis a-c j-s " @click="anshengPopupshow=true">
  302. <text
  303. style="font-size: 14px;">{{anshengaccidentalDrivingVo.planCode}}{{anshengaccidentalDrivingVo.planChineseName}}</text>
  304. <u-icon name="arrow-right" style="color: #999;" size="24"></u-icon>
  305. </view>
  306. </view>
  307. <template v-if="anshengInsuranceData.length>0">
  308. <view class=" accident-ins dis a-c j-s">
  309. <u-checkbox shape="circle" size="30" v-model="totalitem.jychecked"
  310. @change="checkboxChangeInfo($event,totalindex)"
  311. active-color="rgb(255, 170, 0)"></u-checkbox>
  312. <view class=" dis a-c j-s " @click="anshengPopupshow1=true">
  313. <text
  314. style="font-size: 14px;">{{anshengaccidentalDrivingVo.productCode}}{{anshengaccidentalDrivingVo.productName}}</text>
  315. <u-icon name="arrow-right" style="color: #999;" size="24"></u-icon>
  316. </view>
  317. </view>
  318. <view class=" dis j-s a-c">
  319. <text style="font-size: 14px;">份数:</text>
  320. <u-number-box v-model="anshengaccidentalDrivingVo.quantity" :min="1"
  321. :max="1" :disabled-input="true" :input-width="70" :input-height="44"
  322. size="26"></u-number-box>
  323. </view>
  324. </template>
  325. </view>
  326. </template>
  327. <template
  328. v-if="totalitem.namesimple == '国任财险' && totalitem.checked && totalitem.agreementId && guorenaccidentalDrivingVo.goodsCode">
  329. <view class="accident-style dis f-c ">
  330. <view class=" accident-ins dis a-c j-s">
  331. <text style="font-size: 14px;">分类</text>
  332. <view class=" dis a-c j-s " @click="guorenPopupshow=true">
  333. <text
  334. style="font-size: 14px;">{{guorenaccidentalDrivingVo.goodDesc}}</text>
  335. <u-icon name="arrow-right" style="color: #999;" size="24"></u-icon>
  336. </view>
  337. </view>
  338. <template v-if="guorenInsuranceData.length>0">
  339. <view class=" accident-ins dis a-c j-s">
  340. <u-checkbox shape="circle" size="30" v-model="totalitem.jychecked"
  341. @change="checkboxChangeInfo($event,totalindex)"
  342. active-color="rgb(255, 170, 0)"></u-checkbox>
  343. <view class=" dis a-c j-s " @click="guorenPopupshow1=true">
  344. <text
  345. style="font-size: 14px;">{{guorenaccidentalDrivingVo.prodCName}}</text>
  346. <u-icon name="arrow-right" style="color: #999;" size="24"></u-icon>
  347. </view>
  348. </view>
  349. <view class=" dis j-s a-c">
  350. <view class="">
  351. <text style="font-size: 14px;">保费:</text>
  352. <text
  353. style="font-size: 14px;color: #ee7000;">¥{{guorenaccidentalDrivingVo.premium*guorenaccidentalDrivingVo.quantity}}.00</text>
  354. </view>
  355. <view class="">
  356. <text style="font-size: 14px;">份数:</text>
  357. <u-number-box v-model="guorenaccidentalDrivingVo.quantity" :min="1"
  358. :max="Number( guorenaccidentalDrivingVo.policyNum)"
  359. :input-width="70" :input-height="44" size="26"></u-number-box>
  360. </view>
  361. </view>
  362. </template>
  363. </view>
  364. </template>
  365. <view v-show="totalitem.quoteCode==200" class="dis j-end"
  366. style="border-top: 1px solid #f2f2f2;padding: 10px 0;">
  367. <u-button v-if="totalitem.lastYearMsg" size="mini " type="warning"
  368. :hair-line="false" @click="YearMsg(totalitem.lastYearMsg,totalitem.namesimple)"
  369. style="margin-left: 10px;">上年信息</u-button>
  370. <u-button size="mini " type="warning" :hair-line="false"
  371. @click="bjdpreview(totalitem.result.companyId)"
  372. style="margin-left: 10px;">报价单</u-button>
  373. <u-button size="mini" style="background-color: #ea552d;margin-left: 10px;"
  374. type="error" :hair-line="false" :disabled="totalitem.result.tips"
  375. @click="querydetial(totalitem.result.companyId)">查看详情</u-button>
  376. </view>
  377. </view>
  378. </view>
  379. </template>
  380. </block>
  381. </view>
  382. </view>
  383. <wyb-popup ref="lastYearMsgCI" type="center" mode="size-fixed" height="900" radius="6" :showCloseIcon="true">
  384. <view class="popupBody">
  385. <view class="popHeader d-flex a-center j-center">
  386. 投保方案建议
  387. </view>
  388. <scroll-view scroll-top="0" scroll-y="true" class="popupScroll">
  389. </scroll-view>
  390. <view class="popBottom d-flex a-center j-center main-text-color" @tap="adjustPopupInsureSubmit">我知道了
  391. </view>
  392. </view>
  393. </wyb-popup>
  394. <!-- 人寿驾意险弹框 -->
  395. <u-popup v-model="renshouPopupshow" mode="center" width="70%" border-radius="10">
  396. <view class="popContent dis f-c a-c">
  397. <u-radio-group size="30" active-color="rgb(255, 170, 0)">
  398. <u-radio style="margin: 4px 0;" @change="RSradioChange"
  399. v-for="(item, index) in renshouInsuranceData" :key="index" :name="item.id">
  400. {{item.productName}}
  401. </u-radio>
  402. </u-radio-group>
  403. </view>
  404. </u-popup>
  405. <!-- 恒邦驾意险弹框 -->
  406. <u-popup v-model="hengbangPopupshow" mode="center" width="80%" border-radius="10">
  407. <view class="popContent dis f-c a-c">
  408. <u-radio-group size="30" active-color="rgb(255, 170, 0)">
  409. <u-radio style="margin: 4px 0;flex: auto;" @change="HBradioChange"
  410. v-for="(item, index) in hengbangInsuranceData" :key="index" :name="item.programcode">
  411. {{item.programname}}
  412. </u-radio>
  413. </u-radio-group>
  414. </view>
  415. </u-popup>
  416. <!-- 众安驾意险弹框 -->
  417. <u-popup v-model="zhonganPopupshow" mode="center" width="50%" border-radius="10">
  418. <view class="popContent dis f-c a-c">
  419. <u-radio-group size="30" active-color="rgb(255, 170, 0)">
  420. <u-radio style="margin: 4px 0;flex: auto;" @change="ZAradioChange"
  421. v-for="(item, index) in zhonganInsuranceData" :key="index" :name="item.combination">
  422. {{item.name}}
  423. </u-radio>
  424. </u-radio-group>
  425. </view>
  426. </u-popup>
  427. <u-popup v-model="yongchengPopupshow" mode="center" width="50%" border-radius="10">
  428. <view class="popContent dis f-c a-c">
  429. <u-radio-group size="30" active-color="rgb(255, 170, 0)">
  430. <u-radio style="margin: 4px 0;flex: auto;" @change="YCradioChange"
  431. v-for="(item, index) in yongchengInsuranceData" :key="index" :name="item.id">
  432. {{item.name}}
  433. </u-radio>
  434. </u-radio-group>
  435. </view>
  436. </u-popup>
  437. <!-- 安盛驾意险弹框 -->
  438. <u-popup v-model="anshengPopupshow" mode="center" width="90%" border-radius="10">
  439. <view class="popContent dis f-c a-c">
  440. <u-radio-group size="30" active-color="rgb(255, 170, 0)">
  441. <u-radio style="margin: 4px 0;flex: auto;" @change="ASprogrammeradioChange"
  442. v-for="(item, index) in anshengprogrammeData" :key="index" :name="item.planCode">
  443. {{item.planCode}}{{item.planChineseName}}
  444. </u-radio>
  445. </u-radio-group>
  446. </view>
  447. </u-popup>
  448. <u-popup v-model="anshengPopupshow1" mode="center" width="90%" border-radius="10">
  449. <view class="popContent dis f-c a-c">
  450. <u-radio-group size="30" active-color="rgb(255, 170, 0)">
  451. <u-radio style="margin: 4px 0;flex: auto;" @change="ASInsuranceradioChange"
  452. v-for="(item, index) in anshengInsuranceData" :key="index" :name="item.productCode">
  453. {{item.productCode}}{{item.productName}}
  454. </u-radio>
  455. </u-radio-group>
  456. </view>
  457. </u-popup>
  458. <!-- 紫金驾意险弹框 -->
  459. <u-modal v-model="zijinPopupshow" title="意外险" :scroll-height="{height: '300px'}">
  460. <view class="slot-content">
  461. <u-checkbox-group @change="ZJcheckboxGroupChange">
  462. <u-checkbox style="margin: 8px 0;flex: auto;" class="ZJcheckboxGroup" v-model="item.checked"
  463. active-color="rgb(255, 153, 0)" v-for="(item, index) in zijinInsuranceData" :key="index"
  464. :name="item.projectCode">{{item.projectName}}</u-checkbox>
  465. </u-checkbox-group>
  466. </view>
  467. </u-modal>
  468. <!-- 国任驾意险弹框 -->
  469. <u-popup v-model="guorenPopupshow" mode="center" width="70%" border-radius="10">
  470. <view class="popContent dis f-c a-c">
  471. <u-radio-group size="30" active-color="rgb(255, 170, 0)">
  472. <u-radio style="margin: 4px 0;flex: auto;" @change="GRprogrammeradioChange"
  473. v-for="(item, index) in guorenprogrammeData" :key="index" :name="item.goodId">
  474. {{item.goodDesc}}
  475. </u-radio>
  476. </u-radio-group>
  477. </view>
  478. </u-popup>
  479. <u-popup v-model="guorenPopupshow1" mode="center" width="70%" border-radius="10">
  480. <view class="popContent dis f-c a-c">
  481. <u-radio-group size="30" active-color="rgb(255, 170, 0)">
  482. <u-radio style="margin: 4px 0;flex: auto;" @change="GRInsuranceradioChange"
  483. v-for="(item, index) in guorenInsuranceData" :key="index" :name="item.prodCode">
  484. {{item.prodCName}}
  485. </u-radio>
  486. </u-radio-group>
  487. </view>
  488. </u-popup>
  489. <view class="infoBottom d-flex a-center j-center j-sb">
  490. <button type="default" class="d-flex a-center j-center" @tap="toNext">保费计算</button>
  491. </view>
  492. </view>
  493. </template>
  494. <script>
  495. import {
  496. mapState
  497. } from "vuex"
  498. import {
  499. delEmptyQueryNodes
  500. } from '@/plugins/utils';
  501. import wybPopup from '@/components/common/wyb-popup/wyb-popup.vue'
  502. import lsLoading from '@/components/common/ls-loading/ls-loading.vue';
  503. export default {
  504. components: {
  505. wybPopup,
  506. lsLoading
  507. },
  508. computed: {
  509. ...mapState(['userInfo']),
  510. getHeight() {
  511. let height = uni.getSystemInfoSync().windowHeight;
  512. return `minHeight: ${height}px;`;
  513. }
  514. },
  515. // 监听导航栏的按钮
  516. onNavigationBarButtonTap(e) {
  517. if (e.index == 0) {
  518. this.navigate({
  519. url: '/pages/index/index'
  520. }, "switchTab", true);
  521. }
  522. },
  523. data() {
  524. return {
  525. params: {
  526. year: true, //年
  527. month: true, //月
  528. day: true, //日
  529. hour: true, //时
  530. minute: true, //分
  531. second: true, //秒
  532. },
  533. zijinPopupshow: false,
  534. zijinInsuranceData: [], //紫金意外险list
  535. zijinaccidentalDrivingVo: [], //紫金意外险
  536. anshengPopupshow: false,
  537. anshengPopupshow1: false,
  538. anshengprogrammeData: [],
  539. anshengInsuranceData: [], //安盛意外险list
  540. anshengaccidentalDrivingVo: {}, //安盛意外险
  541. guorenPopupshow: false,
  542. guorenPopupshow1: false,
  543. guorenprogrammeData: [],
  544. guorenInsuranceData: [], //国任意外险list
  545. guorenaccidentalDrivingVo: {}, //国任意外险
  546. yongchengPopupshow: false,
  547. yongchengInsuranceData: [], //永诚意外险list
  548. yongchengaccidentalDrivingVo: {}, //永诚意外险
  549. zhonganPopupshow: false,
  550. zhonganInsuranceData: [], //-众安意外险list
  551. zhonganaccidentalDrivingVo: {}, //众安意外险
  552. hengbangPopupshow: false,
  553. hengbangInsuranceData: [], //-恒邦意外险list
  554. hengbangaccidentalDrivingVo: {}, //恒邦意外险
  555. renshouPopupshow: false,
  556. renshouInsuranceData: [], //-人寿意外险list
  557. renshouaccidentalDrivingVo: {}, //人寿意外险
  558. jqstartShow: false, //交强起保日期
  559. jqendShow: false, //交强终保日期
  560. systartShow: false, //商业起保日期
  561. syendShow: false, //商业终保日期
  562. content: ``,
  563. vehicleAndVesselTaxForm: {}, //车船税信息
  564. agreementList: [],
  565. zmDrivingForm: {}, //中煤驾意险
  566. zjaccidentalDrivingVo: [], //紫金驾意险
  567. carInfoPositiveList: [], //车辆影像
  568. ownerInfoPositiveList: [], //车主影像
  569. policyHolderInfoPositiveList: [], //投保人影像
  570. insuredPersonInfoPositiveList: [], //被保人影像
  571. orderno: "", //订单号
  572. show1: false, //华农
  573. animation: 'twinkle', //动画类型
  574. jqjishi: false,
  575. syjishi: false,
  576. timeArray: [],
  577. jqTimeIndex: 0,
  578. syTimeIndex: 0,
  579. time1: "",
  580. time2: "",
  581. carTypeList: [], //车辆品牌型号列表
  582. msg: "",
  583. quoteno: "", //报价编号
  584. hasKindCodeA: false, //是否含有车损险
  585. carInfo: {}, //车辆信息
  586. ownerInfo: {}, //车主信息
  587. policyHolderInfo: {}, //投保人信息
  588. insuredPersonInfo: {}, //被保人信息
  589. riskList: [], //险种大类信息
  590. kindList: [], //商业险险别
  591. showCarInfo: false, //控制车辆信息显示
  592. showInsureDate: true, //控制险种时间显示
  593. jqstartDate: "", //交强险日期
  594. jqendDate: " ", //交强险日期
  595. systartDate: "", //商业险日期
  596. syendDate: "", //商业险日期
  597. insureList: [{
  598. amount: "0",
  599. amountDesc: "投保",
  600. amtList: [{
  601. "label": "不投保",
  602. "value": "0"
  603. }, {
  604. "label": "投保",
  605. "value": "1"
  606. }],
  607. kindCode: "A",
  608. isMainRisk: true,
  609. kindName: "机动车损失险",
  610. desc: "保险期间内,被保险人或被保险机动车驾驶人在使用被保险机动车过程中,因自然灾害、意外事故、机动车被盗窃、抢劫、抢夺等情况(详见保险条款)造成被保险机动车直接损失,且不属于免除保险人责任的范围,保险人依照本保险合同的约定负责赔偿的险种。"
  611. },
  612. {
  613. amount: "0",
  614. amountDesc: "不投保",
  615. amtList: [{
  616. label: "不投保",
  617. value: "0"
  618. },
  619. {
  620. label: "50万",
  621. value: "500000"
  622. },
  623. {
  624. label: "100万",
  625. value: "1000000"
  626. },
  627. {
  628. label: "150万",
  629. value: "1500000"
  630. },
  631. {
  632. label: "200万",
  633. value: "2000000"
  634. },
  635. {
  636. label: "250万",
  637. value: "2500000"
  638. },
  639. {
  640. label: "300万",
  641. value: "3000000"
  642. },
  643. {
  644. label: "500万",
  645. value: "5000000"
  646. },
  647. {
  648. label: "1000万",
  649. value: "10000000"
  650. }
  651. ],
  652. kindCode: "B",
  653. isMainRisk: true,
  654. kindName: "第三者责任险",
  655. desc: "保险期间内,被保险人或其允许的驾驶人在使用被保险机动车过程中发生意外事故,致使第三者遭受人身伤亡或财产直接损毁,依法应当对第三者承担的损害赔偿责任,且不属于免除保险人责任的范围,保险人依照本保险合同的约定,对于超过机动车交通事故责任强制保险各分项赔偿限额的部分负责赔偿的险种。"
  656. },
  657. {
  658. amount: "0",
  659. amountDesc: "不投保",
  660. amtList: [{
  661. label: "不投保",
  662. value: "0"
  663. },
  664. {
  665. label: "1万",
  666. value: "10000"
  667. },
  668. {
  669. label: "2万",
  670. value: "20000"
  671. },
  672. {
  673. label: "3万",
  674. value: "30000"
  675. },
  676. {
  677. label: "4万",
  678. value: "40000"
  679. },
  680. {
  681. label: "5万",
  682. value: "50000"
  683. },
  684. {
  685. label: "6万",
  686. value: "60000"
  687. },
  688. {
  689. label: "7万",
  690. value: "70000"
  691. },
  692. {
  693. label: "8万",
  694. value: "80000"
  695. },
  696. {
  697. label: "9万",
  698. value: "90000"
  699. },
  700. {
  701. label: "10万",
  702. value: "100000"
  703. },
  704. {
  705. label: "15万",
  706. value: "150000"
  707. },
  708. {
  709. label: "20万",
  710. value: "200000"
  711. },
  712. {
  713. label: "25万",
  714. value: "250000"
  715. },
  716. {
  717. label: "30万",
  718. value: "300000"
  719. },
  720. {
  721. label: "35万",
  722. value: "350000"
  723. },
  724. {
  725. label: "40万",
  726. value: "400000"
  727. },
  728. {
  729. label: "45万",
  730. value: "450000"
  731. },
  732. {
  733. label: "50万",
  734. value: "500000"
  735. },
  736. ],
  737. kindCode: "D3",
  738. isMainRisk: true,
  739. kindName: "司机责任险",
  740. desc: "保险期间内,被保险人或其允许的驾驶人在使用被保险机动车过程中发生意外事故,致使车上人员遭受人身伤亡,且不属于免除保险人责任的范围,依法应当对车上人员承担的损害赔偿责任,保险人依照本保险合同的约定负责赔偿的险种。"
  741. },
  742. {
  743. amount: "0",
  744. amountDesc: "不投保",
  745. amtList: [{
  746. "label": "不投保",
  747. "value": "0"
  748. }, {
  749. "label": "1万",
  750. "value": "10000"
  751. }, {
  752. "label": "2万",
  753. "value": "20000"
  754. }, {
  755. "label": "4万",
  756. "value": "40000"
  757. }, {
  758. "label": "5万",
  759. "value": "50000"
  760. }, {
  761. "label": "10万",
  762. "value": "100000"
  763. }, {
  764. "label": "15万",
  765. "value": "150000"
  766. }, {
  767. "label": "20万",
  768. "value": "200000"
  769. }],
  770. kindCode: "D4",
  771. isMainRisk: true,
  772. kindName: "乘客责任险",
  773. desc: "保险期间内,被保险人或其允许的驾驶人在使用被保险机动车过程中发生意外事故,致使车上人员遭受人身伤亡,且不属于免除保险人责任的范围,依法应当对车上人员承担的损害赔偿责任,保险人依照本保险合同的约定负责赔偿的险种。"
  774. },
  775. {
  776. amount: "0",
  777. amountDesc: "不投保",
  778. amtList: [{
  779. "label": "不投保",
  780. "value": "0"
  781. }, {
  782. "label": "2000",
  783. "value": "2000"
  784. }, {
  785. "label": "5000",
  786. "value": "5000"
  787. }, {
  788. "label": "1万",
  789. "value": "10000"
  790. }],
  791. desc: "保险期间内,被保险机动车在被保险人或被保险机动车驾驶人使用过程中,发生无明显碰撞痕迹的车身划痕损失,保险人按照保险合同约定负责赔偿的险种",
  792. isMainRisk: true,
  793. kindCode: "L",
  794. kindName: "车身划痕险",
  795. mainRiskCodeList: "A"
  796. },
  797. {
  798. amount: "0",
  799. amountDesc: "不投保",
  800. amtList: [{
  801. "label": "不投保",
  802. "value": "0"
  803. }, {
  804. "label": "5%",
  805. "value": "5"
  806. }, {
  807. "label": "10%",
  808. "value": "10"
  809. }, {
  810. "label": "15%",
  811. "value": "15"
  812. }, {
  813. "label": "20%",
  814. "value": "20"
  815. }],
  816. desc: "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
  817. isMainRisk: true,
  818. kindCode: "MJ1",
  819. kindName: "绝对免赔率特约险(车损)",
  820. mainRiskCodeList: "A"
  821. },
  822. {
  823. amount: "0",
  824. amountDesc: "不投保",
  825. amtList: [{
  826. "label": "不投保",
  827. "value": "0"
  828. }, {
  829. "label": "5%",
  830. "value": "5"
  831. }, {
  832. "label": "10%",
  833. "value": "10"
  834. }, {
  835. "label": "15%",
  836. "value": "15"
  837. }, {
  838. "label": "20%",
  839. "value": "20"
  840. }],
  841. desc: "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
  842. isMainRisk: true,
  843. kindCode: "MJ2",
  844. kindName: "绝对免赔率特约险(三者)",
  845. mainRiskCodeList: "B"
  846. },
  847. {
  848. amount: "0",
  849. amountDesc: "不投保",
  850. amtList: [{
  851. "label": "不投保",
  852. "value": "0"
  853. }, {
  854. "label": "5%",
  855. "value": "5"
  856. }, {
  857. "label": "10%",
  858. "value": "10"
  859. }, {
  860. "label": "15%",
  861. "value": "15"
  862. }, {
  863. "label": "20%",
  864. "value": "20"
  865. }],
  866. desc: "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
  867. isMainRisk: true,
  868. kindCode: "MJ3",
  869. kindName: "绝对免赔率特约险(司机)",
  870. mainRiskCodeList: "D3"
  871. },
  872. {
  873. amount: "0",
  874. amountDesc: "不投保",
  875. amtList: [{
  876. "label": "不投保",
  877. "value": "0"
  878. }, {
  879. "label": "5%",
  880. "value": "5"
  881. }, {
  882. "label": "10%",
  883. "value": "10"
  884. }, {
  885. "label": "15%",
  886. "value": "15"
  887. }, {
  888. "label": "20%",
  889. "value": "20"
  890. }],
  891. desc: "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
  892. isMainRisk: true,
  893. kindCode: "MJ4",
  894. kindName: "绝对免赔率特约险(乘客)",
  895. mainRiskCodeList: "D4"
  896. },
  897. {
  898. amount: "0",
  899. amountDesc: "不投保",
  900. coveragePremium: 0,
  901. amtList: [{
  902. label: "不投保",
  903. value: "0"
  904. },
  905. {
  906. label: "1万",
  907. value: "10000"
  908. },
  909. {
  910. label: "2万",
  911. value: "20000"
  912. },
  913. {
  914. label: "4万",
  915. value: "40000"
  916. },
  917. {
  918. label: "5万",
  919. value: "50000"
  920. },
  921. {
  922. label: "8万",
  923. value: "80000"
  924. },
  925. {
  926. label: "10万",
  927. value: "100000"
  928. },
  929. {
  930. label: "20万",
  931. value: "200000"
  932. },
  933. {
  934. label: "30万",
  935. value: "300000"
  936. },
  937. {
  938. label: "50万",
  939. value: "500000"
  940. },
  941. {
  942. label: "100万",
  943. value: "1000000"
  944. },
  945. {
  946. label: "200万",
  947. value: "2000000"
  948. },
  949. {
  950. label: "300万",
  951. value: "3000000"
  952. },
  953. ],
  954. kindCode: "SY_FJ_YBW1",
  955. isMainRisk: true,
  956. kindName: "附加医保-三者",
  957. desc: "附加医保外医疗费用责任险(机动车第三者责任保险)"
  958. },
  959. {
  960. amount: "0",
  961. amountDesc: "不投保",
  962. coveragePremium: 0,
  963. amtList: [{
  964. label: "不投保",
  965. value: "0"
  966. },
  967. {
  968. label: "1万",
  969. value: "10000"
  970. },
  971. {
  972. label: "2万",
  973. value: "20000"
  974. },
  975. {
  976. label: "5万",
  977. value: "50000"
  978. },
  979. {
  980. label: "10万",
  981. value: "100000"
  982. }
  983. ],
  984. kindCode: "SY_FJ_YBW2",
  985. isMainRisk: true,
  986. kindName: "附加医保-座位险(乘客)",
  987. desc: "附加医保外医疗费用责任险(机动车第三者责任保险)"
  988. },
  989. {
  990. amount: "0",
  991. amountDesc: "不投保",
  992. coveragePremium: 0,
  993. amtList: [{
  994. label: "不投保",
  995. value: "0"
  996. },
  997. {
  998. label: "1万",
  999. value: "10000"
  1000. },
  1001. {
  1002. label: "2万",
  1003. value: "20000"
  1004. },
  1005. {
  1006. label: "5万",
  1007. value: "50000"
  1008. },
  1009. {
  1010. label: "10万",
  1011. value: "100000"
  1012. }
  1013. ],
  1014. kindCode: "SY_FJ_YBW3",
  1015. isMainRisk: true,
  1016. kindName: "附加医保-座位险(司机)",
  1017. desc: "附加医保外医疗费用责任险(机动车第三者责任保险)"
  1018. },
  1019. {
  1020. amount: "0",
  1021. amountDesc: "不投保",
  1022. amtList: [{
  1023. label: "不投保",
  1024. value: "0"
  1025. },
  1026. {
  1027. label: "50万",
  1028. value: "500000"
  1029. },
  1030. {
  1031. label: "100万",
  1032. value: "1000000"
  1033. },
  1034. {
  1035. label: "150万",
  1036. value: "1500000"
  1037. },
  1038. {
  1039. label: "200万",
  1040. value: "2000000"
  1041. },
  1042. {
  1043. label: "250万",
  1044. value: "2500000"
  1045. },
  1046. {
  1047. label: "300万",
  1048. value: "3000000"
  1049. },
  1050. {
  1051. label: "500万",
  1052. value: "5000000"
  1053. },
  1054. {
  1055. label: "1000万",
  1056. value: "10000000"
  1057. }
  1058. ],
  1059. desc: "保险期间内,被保险人或其允许的驾驶人在法定节假日期间使用被保险机动车发生机动车第三者责任保险范围内的事故,并经公安部门或保险人查勘确认的,被保险机动车第三者责任保险所适用的责任限额在保险单载明的基础上增加一倍的险种",
  1060. isMainRisk: true,
  1061. kindCode: "BD",
  1062. kindName: "法定节假日限额翻倍险",
  1063. mainRiskCodeList: "B"
  1064. }
  1065. ],
  1066. accidentForm: {
  1067. fen: "1"
  1068. }, //意外险内容
  1069. //永诚转保确认码
  1070. cqryCdeJq: "",
  1071. cqryCdeSy: "",
  1072. renewalCodeJq: "", //交强确认码
  1073. renewalCodeSy: "", //商业确认码
  1074. //-----------------
  1075. totalCompanyList: [], //保险公司列表
  1076. notStartedQuote: true, //未开始报价(true表示未开始报价,false表示已经报价结束)
  1077. quoteCompanyCount: 0,
  1078. }
  1079. },
  1080. async onLoad() {
  1081. const eventChannel = this.getOpenerEventChannel()
  1082. // 监听acceptData事件,获取上一页面通过eventChannel传送到当前页面的数据
  1083. eventChannel.on('acceptData', async (data) => {
  1084. console.log(data)
  1085. this.carInfo = data.carInfo; //车辆信息
  1086. this.ownerInfo = data.ownerInfo; //车主信息
  1087. this.policyHolderInfo = data.policyHolderInfo; //投保人信息
  1088. this.insuredPersonInfo = data.insuredPersonInfo; //被保人信息
  1089. this.riskList = data.riskList; //险种大类
  1090. this.kindList = data.kindList; //商业险险别
  1091. this.vehicleAndVesselTaxForm = data.vehicleAndVesselTaxForm; //车船税信息
  1092. if (data.quoteno) {
  1093. this.orderno = data.orderno;
  1094. this.quoteno = data.quoteno;
  1095. this.imageEcho(data.quoteno) // 影像获取完毕
  1096. } else {
  1097. this.carInfoPositiveList = data.carInfoPositiveList; //车辆
  1098. this.ownerInfoPositiveList = data.ownerInfoPositiveList; //车主
  1099. this.policyHolderInfoPositiveList = data.policyHolderInfoPositiveList; //投保
  1100. this.insuredPersonInfoPositiveList = data.insuredPersonInfoPositiveList; //被保人
  1101. }
  1102. if (this.riskList.length > 0) {
  1103. for (let i = 0; i < this.riskList.length; i++) {
  1104. if (this.riskList[i].riskCode == '0507') {
  1105. this.jqstartDate = this.riskList[i].startDate;
  1106. this.jqendDate = this.riskList[i].endDate;
  1107. }
  1108. if (this.riskList[i].riskCode == '0510') {
  1109. this.systartDate = this.riskList[i].startDate;
  1110. this.syendDate = this.riskList[i].endDate;
  1111. this.kindList.map(ele1 => {
  1112. this.insureList.map(ele2 => {
  1113. if (ele2.kindCode == ele1.kindCode) {
  1114. switch (ele1.kindCode) {
  1115. case 'D4':
  1116. case 'SY_FJ_YBW2':
  1117. ele2.amount = ele1.unitAmount;
  1118. break;
  1119. case "MJ1":
  1120. case "MJ2":
  1121. case "MJ3":
  1122. case "MJ4":
  1123. ele2.amount = ele1.deductibleRate;
  1124. break;
  1125. default:
  1126. ele2.amount = ele1.amount;
  1127. }
  1128. }
  1129. })
  1130. })
  1131. }
  1132. }
  1133. }
  1134. })
  1135. const storage = uni.getStorageSync('historyInfo');
  1136. if (storage) {
  1137. Object.keys(storage).forEach(key => {
  1138. this[key] = storage[key]
  1139. })
  1140. } else {
  1141. this.commpanyList();
  1142. }
  1143. },
  1144. onHide() {
  1145. let historyInfo = {
  1146. quoteno: this.quoteno,
  1147. orderno: this.orderno,
  1148. totalCompanyList: this.totalCompanyList,
  1149. zijinInsuranceData: this.zijinInsuranceData, //紫金意外险list
  1150. zijinaccidentalDrivingVo: this.zijinaccidentalDrivingVo, //紫金意外险
  1151. anshengprogrammeData: this.anshengprogrammeData,
  1152. anshengInsuranceData: this.anshengInsuranceData, //安盛意外险list
  1153. anshengaccidentalDrivingVo: this.anshengaccidentalDrivingVo, //安盛意外险
  1154. yongchengInsuranceData: this.yongchengInsuranceData, //永诚意外险list
  1155. yongchengaccidentalDrivingVo: this.yongchengaccidentalDrivingVo, //永诚意外险
  1156. zhonganInsuranceData: this.zhonganInsuranceData, //-众安意外险list
  1157. zhonganaccidentalDrivingVo: this.zhonganaccidentalDrivingVo, //众安意外险
  1158. hengbangInsuranceData: this.hengbangInsuranceData, //-恒邦意外险list
  1159. hengbangaccidentalDrivingVo: this.hengbangaccidentalDrivingVo, //恒邦意外险
  1160. renshouInsuranceData: this.renshouInsuranceData, //-人寿意外险list
  1161. renshouaccidentalDrivingVo: this.renshouaccidentalDrivingVo, //人寿意外险
  1162. }
  1163. let res = delEmptyQueryNodes(historyInfo);
  1164. uni.setStorageSync('historyInfo', res);
  1165. },
  1166. methods: {
  1167. jqstartconfirm(e) {
  1168. this.jqstartDate = e.year + '-' + e.month + '-' + e.day + ' ' + e.hour + ':' + e.minute + ':' + e.second;
  1169. this.jqendDate = this.oneYearPast(this.jqstartDate)
  1170. },
  1171. jqendconfirm(e) {
  1172. this.jqendDate = e.year + '-' + e.month + '-' + e.day + ' ' + e.hour + ':' + e.minute + ':' + e.second;
  1173. },
  1174. systartconfirm(e) {
  1175. this.systartDate = e.year + '-' + e.month + '-' + e.day + ' ' + e.hour + ':' + e.minute + ':' + e.second;
  1176. this.syendDate = this.oneYearPast(this.systartDate)
  1177. },
  1178. syendconfirm(e) {
  1179. this.syendDate = e.year + '-' + e.month + '-' + e.day + ' ' + e.hour + ':' + e.minute + ':' + e.second;
  1180. },
  1181. //影像查询
  1182. async imageEcho(quotenos) {
  1183. let imgres = await this.$http.get('/ins/taskImage/findByQuoteNo?quoteNo=' + quotenos);
  1184. if (imgres.code == "200") {
  1185. Object.keys(imgres.data).forEach((keys) => {
  1186. if (imgres.data[keys].url) {
  1187. imgres.data[keys].url = this.$base.baseUrl + imgres.data[keys].url;
  1188. switch (keys) {
  1189. case 'C01':
  1190. this.carInfoPositiveList.push({
  1191. imageId: imgres.data[keys].imageId,
  1192. imageType: imgres.data[keys].imageType,
  1193. })
  1194. break;
  1195. case 'D01':
  1196. this.carInfoPositiveList.push({
  1197. imageId: imgres.data[keys].imageId,
  1198. imageType: imgres.data[keys].imageType,
  1199. })
  1200. break;
  1201. case 'C02':
  1202. this.ownerInfoPositiveList.push({
  1203. imageId: imgres.data[keys].imageId,
  1204. imageType: imgres.data[keys].imageType,
  1205. });
  1206. break;
  1207. case 'D02':
  1208. this.ownerInfoPositiveList.push({
  1209. imageId: imgres.data[keys].imageId,
  1210. imageType: imgres.data[keys].imageType,
  1211. });
  1212. break;
  1213. case 'C03':
  1214. this.policyHolderInfoPositiveList.push({
  1215. imageId: imgres.data[keys].imageId,
  1216. imageType: imgres.data[keys].imageType,
  1217. });
  1218. break;
  1219. case 'D03':
  1220. this.policyHolderInfoPositiveList.push({
  1221. imageId: imgres.data[keys].imageId,
  1222. imageType: imgres.data[keys].imageType,
  1223. });
  1224. break;
  1225. case 'C04':
  1226. this.insuredPersonInfoPositiveList.push({
  1227. imageId: imgres.data[keys].imageId,
  1228. imageType: imgres.data[keys].imageType,
  1229. });
  1230. break;
  1231. case 'D04':
  1232. this.insuredPersonInfoPositiveList.push({
  1233. imageId: imgres.data[keys].imageId,
  1234. imageType: imgres.data[keys].imageType,
  1235. });
  1236. break;
  1237. default:
  1238. break;
  1239. }
  1240. }
  1241. });
  1242. }
  1243. },
  1244. //查看详情
  1245. querydetial(id) {
  1246. this.navigate({
  1247. url: "/pages/carInsure1/quoteDetail1?companyId=" + id
  1248. },
  1249. "navigateTo", true);
  1250. },
  1251. //报价单
  1252. bjdpreview(id) {
  1253. uni.navigateTo({
  1254. url: "/pages/orders/quotation?companyId=" + id
  1255. })
  1256. },
  1257. //选择协议
  1258. selectConfirm(e, index) {
  1259. this.totalCompanyList[index].agreementId = e[0].value;
  1260. this.totalCompanyList[index].agreementName = e[0].label;
  1261. this.totalCompanyList[index].apiType = e[0].extra;
  1262. },
  1263. /**
  1264. * 选择保险公司方法
  1265. * @param {String} event change选中事件
  1266. * @param {String} code 保险公司ID
  1267. * @param {String} name 保险公司主体全拼
  1268. * @param {String} index 选中下标
  1269. */
  1270. async checkboxChange(event, code, name, index) {
  1271. if (event.value) {
  1272. let ins = this.totalCompanyList[index].namesimple;
  1273. this.totalCompanyList[index].checked = event.value;
  1274. let arr = this.totalCompanyList[index].agreement;
  1275. let list = [];
  1276. list = arr.filter(item => {
  1277. return item.licenseNo.length > 0 ? item.licenseNo.includes(this.carInfo.licenseNo
  1278. .slice(
  1279. 0,
  1280. 2)) : "true"
  1281. })
  1282. list.map(ele => {
  1283. ele.extra = ele.apiType;
  1284. return ele;
  1285. })
  1286. this.totalCompanyList[index].agreement = list;
  1287. this.totalCompanyList[index].agreementId = this.totalCompanyList[index].agreement[0].id;
  1288. this.totalCompanyList[index].agreementName = this.totalCompanyList[index].agreement[0]
  1289. .agreementName;
  1290. this.totalCompanyList[index].apiType = this.totalCompanyList[index].agreement[0].extra;
  1291. switch (ins) {
  1292. case '永诚财险':
  1293. let yccallback = await this.$http.post('/api/yongCheng/gainAccidentList', {
  1294. agreementId: this.totalCompanyList[index].agreement[0].id,
  1295. companyCode: code,
  1296. seatNum: Number(this.carInfo.seatCount)
  1297. });
  1298. if (yccallback.code == '200') {
  1299. let yccallback1 = await this.$http.post('/api/yongCheng/gainAccidentSchemeList', {
  1300. agreementId: this.totalCompanyList[index].agreement[0].id,
  1301. companyCode: code,
  1302. code: yccallback.data[0].code,
  1303. seatNum: Number(this.carInfo.seatCount)
  1304. });
  1305. yccallback1.data.map(val => {
  1306. yccallback.data[0].premium += Number(val.premium)
  1307. return val;
  1308. })
  1309. let data = yccallback.data;
  1310. data.map(ele => {
  1311. ele.quantity = 1;
  1312. return ele;
  1313. })
  1314. this.yongchengInsuranceData = data;
  1315. this.yongchengaccidentalDrivingVo = {
  1316. rideRiskCode: data[0].code,
  1317. rideRiskName: data[0].name,
  1318. quantity: data[0].quantity,
  1319. premium: data[0].premium,
  1320. };
  1321. }
  1322. break;
  1323. case '紫金财险':
  1324. let zjcallback = await this.$http.post('/order/zijin/queryVehicleProducts', {
  1325. agreementId: this.totalCompanyList[index].agreement[0].id,
  1326. seatCount: Number(this.carInfo.seatCount)
  1327. });
  1328. if (zjcallback.code == '200') {
  1329. let data = zjcallback.data;
  1330. data.map(ele => {
  1331. ele.quantity = 1;
  1332. return ele;
  1333. })
  1334. this.zijinInsuranceData = data;
  1335. }
  1336. break;
  1337. case '安盛天平':
  1338. let ascallback = await this.$http.post('/insurance/crawler/getDrivingInsurance', {
  1339. agreementId: this.totalCompanyList[index].agreement[0].id
  1340. });
  1341. if (ascallback.code == '200') {
  1342. let data = ascallback.data;
  1343. data.map(ele => {
  1344. ele.departmentProductList.map(val => {
  1345. val.quantity = 1;
  1346. })
  1347. return ele;
  1348. })
  1349. this.anshengprogrammeData = data;
  1350. this.anshengInsuranceData = data[0].departmentProductList;
  1351. this.anshengaccidentalDrivingVo = {
  1352. personFlag: data[0].personFlag,
  1353. planChineseName: data[0].planChineseName,
  1354. planCode: data[0].planCode,
  1355. planSeries: data[0].planSeries,
  1356. productCode: data[0].departmentProductList[0].productCode,
  1357. productName: data[0].departmentProductList[0].productName,
  1358. quantity: data[0].departmentProductList[0].quantity
  1359. }
  1360. }
  1361. break;
  1362. case '国任财险':
  1363. let grcallback = await this.$http.post('/api/guoRen/syncNonAutoIns', {
  1364. agreementId: this.totalCompanyList[index].agreement[0].id
  1365. });
  1366. if (grcallback.code == '200') {
  1367. let data = grcallback.data;
  1368. this.guorenprogrammeData = data;
  1369. let grcallback1 = await this.$http.post('/api/guoRen/syncNonAutoIns', {
  1370. goodsCode: grcallback.data[0].goodId
  1371. });
  1372. this.guorenInsuranceData = grcallback1.data;
  1373. this.guorenaccidentalDrivingVo = {
  1374. goodsCode: data[0].goodId, //驾意险商品号
  1375. prodCode: grcallback1.data[0].prodCode, //产品code
  1376. riskCode: grcallback1.data[0].riskCode, //险种code
  1377. premium: grcallback1.data[0].premium, //保费
  1378. amount: grcallback1.data[0].amount, //保额
  1379. quantity: 1, //份数
  1380. goodDesc: data[0].goodDesc, //驾意险商品名称
  1381. prodCName: grcallback1.data[0].prodCName, //产品名称
  1382. policyNum: Number(grcallback1.data[0].policyNum), //最大份数
  1383. }
  1384. }
  1385. break;
  1386. case '中国人寿':
  1387. case '恒邦财险':
  1388. case '众安财险':
  1389. let Insurancecallback = await this.$http.post('/insurance/crawler/getDrivingInsurance', {
  1390. agreementId: this.totalCompanyList[index].agreement[0].id
  1391. });
  1392. if (Insurancecallback.code == 200) {
  1393. let data = Insurancecallback.data;
  1394. data.map(ele => {
  1395. ele.quantity = 1;
  1396. return ele;
  1397. })
  1398. this[name + "InsuranceData"] = data;
  1399. this[name + 'accidentalDrivingVo'] = data[0];
  1400. }
  1401. break;
  1402. default:
  1403. break;
  1404. }
  1405. } else {}
  1406. },
  1407. //驾意险勾选框
  1408. checkboxChangeInfo(event, index) {
  1409. this.totalCompanyList[index].jychecked = event.value;
  1410. },
  1411. //人寿意外险
  1412. RSradioChange(id) {
  1413. this.renshouaccidentalDrivingVo = this.renshouInsuranceData.find(val => val.id == id)
  1414. this.renshouPopupshow = false;
  1415. },
  1416. //恒邦意外险
  1417. HBradioChange(id) {
  1418. this.hengbangaccidentalDrivingVo = this.hengbangInsuranceData.find(val => val.programcode == id)
  1419. this.hengbangPopupshow = false;
  1420. },
  1421. //众安意外险
  1422. ZAradioChange(id) {
  1423. this.zhonganaccidentalDrivingVo = this.zhonganInsuranceData.find(val => val.combination == id)
  1424. this.zhonganPopupshow = false;
  1425. },
  1426. //永诚意外险
  1427. YCradioChange(id) {
  1428. let info = this.yongchengInsuranceData.find(val => val.id == id)
  1429. this.yongchengaccidentalDrivingVo.rideRiskCode = info.code;
  1430. this.yongchengaccidentalDrivingVo.rideRiskName = info.name;
  1431. this.yongchengaccidentalDrivingVo.quantity = info.quantity;
  1432. this.yongchengaccidentalDrivingVo.premium = info.premium;
  1433. this.yongchengPopupshow = false;
  1434. },
  1435. //安盛一级选择
  1436. ASprogrammeradioChange(id) {
  1437. let info = this.anshengprogrammeData.find((val => val.planCode == id))
  1438. this.anshengPopupshow = false;
  1439. this.anshengInsuranceData = info.departmentProductList;
  1440. let dataInfo = {
  1441. personFlag: info.personFlag,
  1442. planChineseName: info.planChineseName,
  1443. planCode: info.planCode,
  1444. planSeries: info.planSeries,
  1445. productCode: info.departmentProductList[0].productCode,
  1446. productName: info.departmentProductList[0].productName,
  1447. quantity: info.departmentProductList[0].quantity
  1448. }
  1449. Object.assign(this.anshengaccidentalDrivingVo, dataInfo);
  1450. },
  1451. //安盛二级选择
  1452. ASInsuranceradioChange(id) {
  1453. let info = this.anshengInsuranceData.find((val => val.productCode == id))
  1454. Object.assign(this.anshengaccidentalDrivingVo, info);
  1455. this.anshengPopupshow1 = false;
  1456. },
  1457. //国任一级选择
  1458. async GRprogrammeradioChange(id) {
  1459. let info = this.guorenprogrammeData.find((val => val.goodId == id))
  1460. this.guorenPopupshow = false;
  1461. this.guorenaccidentalDrivingVo.goodsCode = info.goodId;
  1462. this.guorenaccidentalDrivingVo.goodDesc = info.goodDesc;
  1463. let res = await this.$http.post('/api/guoRen/syncNonAutoIns', {
  1464. goodsCode: info.goodId
  1465. });
  1466. if (res.code == '200') {
  1467. this.guorenInsuranceData = res.data;
  1468. let dataInfo = {
  1469. prodCode: res.data[0].prodCode, //产品code
  1470. riskCode: res.data[0].riskCode, //险种code
  1471. premium: res.data[0].premium, //保费
  1472. amount: res.data[0].amount, //保额
  1473. quantity: 1, //份数
  1474. prodCName: res.data[0].prodCName, //产品名称
  1475. policyNum: res.data[0].policyNum, //最大份数
  1476. }
  1477. Object.assign(this.guorenaccidentalDrivingVo, dataInfo);
  1478. } else {
  1479. uni.showToast({
  1480. title: res.msg,
  1481. icon: 'none',
  1482. });
  1483. this.guorenInsuranceData = []
  1484. }
  1485. },
  1486. //国任二级选择
  1487. GRInsuranceradioChange(id) {
  1488. let info = this.guorenInsuranceData.find((val => val.prodCode == id))
  1489. let dataInfo = {
  1490. prodCode: info.prodCode, //产品code
  1491. riskCode: info.riskCode, //险种code
  1492. premium: info.premium, //保费
  1493. amount: info.amount, //保额
  1494. quantity: 1, //份数
  1495. prodCName: info.prodCName, //产品名称
  1496. policyNum: info.policyNum, //最大份数
  1497. }
  1498. Object.assign(this.guorenaccidentalDrivingVo, dataInfo);
  1499. this.guorenPopupshow1 = false;
  1500. },
  1501. //紫金意外险
  1502. ZJcheckboxGroupChange(detail) {
  1503. this.zijinaccidentalDrivingVo = [];
  1504. detail.map(val => {
  1505. let list = this.zijinInsuranceData.find(item => item.projectCode == val)
  1506. this.zijinaccidentalDrivingVo.push(list)
  1507. })
  1508. },
  1509. //获取保险公司列表
  1510. async commpanyList() {
  1511. let commpanykad = await this.$http.get('/insurance/order/getAgreementInsCompany');
  1512. commpanykad.data.map(ele => {
  1513. ele["result"] = {};
  1514. ele["quoteCode"] = 0;
  1515. ele["checked"] = false;
  1516. ele["jychecked"] = false;
  1517. ele["msg"] = "";
  1518. ele["agreementId"] = "";
  1519. ele["lastYearMsg"] = "";
  1520. ele["agreementName"] = "";
  1521. ele["apiType"] = "";
  1522. ele["selectShow"] = false;
  1523. })
  1524. this.totalCompanyList = commpanykad.data;
  1525. },
  1526. async toNext() {
  1527. var allAreFalse = this.totalCompanyList.every(function(element) {
  1528. return element.checked === false;
  1529. });
  1530. if (!allAreFalse) {
  1531. if (this.quoteno) {
  1532. this.OrderStageProcessing();
  1533. } else {
  1534. let getquote = await this.$http.get('/ins/tool/getQuoteNo');
  1535. this.quoteno = getquote.data + "";
  1536. this.OrderStageProcessing();
  1537. }
  1538. } else {
  1539. uni.showToast({
  1540. title: "请选择保险公司后,在进行报价",
  1541. icon: 'none',
  1542. });
  1543. }
  1544. },
  1545. async OrderStageProcessing() {
  1546. let mergedArray = [];
  1547. let mergedArrayList = mergedArray.concat(this.carInfoPositiveList, this.ownerInfoPositiveList, this
  1548. .policyHolderInfoPositiveList, this.insuredPersonInfoPositiveList)
  1549. if (mergedArrayList.length > 0) {
  1550. await this.$http.post('/ins/taskImage/uploadImages', {
  1551. imageList: mergedArrayList,
  1552. quoteNo: this.quoteno,
  1553. })
  1554. }
  1555. this.riskList.map(val => {
  1556. if (val.riskCode == '0507') {
  1557. val.startDate = this.jqstartDate;
  1558. val.endDate = this.jqendDate;
  1559. } else if (val.riskCode == '0510') {
  1560. val.startDate = this.systartDate;
  1561. val.endDate = this.syendDate;
  1562. }
  1563. })
  1564. let param = {
  1565. userId: this.userInfo.sysUser.id,
  1566. quoteno: this.quoteno,
  1567. orderNo: this.orderno ? this.orderno : "",
  1568. carInfo: this.carInfo,
  1569. insuredPersonInfo: this.insuredPersonInfo,
  1570. ownerInfo: this.ownerInfo,
  1571. policyHolderInfo: this.policyHolderInfo,
  1572. kindList: this.kindList,
  1573. riskList: this.riskList,
  1574. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  1575. };
  1576. let orders = await this.$http.post('/insurance/order/generateOrder', param);
  1577. if (orders.code == '200') {
  1578. this.orderno = orders.data.orderno;
  1579. this.totalCompanyList.map((ele, index) => {
  1580. if (ele.checked) {
  1581. //动态调用报价接口
  1582. ele.quoteCode = "1";
  1583. this.ToolClickFun(ele.cnName, index, ele.id);
  1584. }
  1585. });
  1586. } else {
  1587. uni.showToast({
  1588. title: orders.msg,
  1589. icon: 'none',
  1590. });
  1591. }
  1592. },
  1593. //动态函数
  1594. ToolClickFun(MethodName, Parameter, companyId) {
  1595. this[`${MethodName}`](Parameter, companyId)
  1596. },
  1597. //永安报价
  1598. async yongan(num, id) {
  1599. let params = {
  1600. orderNo: this.orderno,
  1601. companyId: id
  1602. };
  1603. let quote = await this.$http('/order/yongAn/quote', params);
  1604. if (quote.msg == "重复投保" && quote.code == "501") {
  1605. if (!!quote.data.jqStartDate && !quote.data.syStartDate) {
  1606. this.jqstartDate = quote.data.jqStartDate;
  1607. this.jqendDate = quote.data.jqEndDate;
  1608. if (this.riskList.length > 0) {
  1609. for (let i = 0; i < this.riskList.length; i++) {
  1610. if (this.riskList[i].riskCode == "0507") {
  1611. this.riskList[i].startDate = quote.data.jqStartDate;
  1612. this.riskList[i].endDate = quote.data.jqEndDate;
  1613. }
  1614. }
  1615. }
  1616. let param = {
  1617. userId: this.userInfo.sysUser.id,
  1618. quoteno: this.quoteno,
  1619. orderNo: this.orderno,
  1620. carInfo: this.carInfo,
  1621. insuredPersonInfo: this.insuredPersonInfo,
  1622. ownerInfo: this.ownerInfo,
  1623. policyHolderInfo: this.policyHolderInfo,
  1624. kindList: this.kindList,
  1625. riskList: this.riskList,
  1626. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  1627. };
  1628. await this.$http.post('/insurance/order/generateOrder', param);
  1629. return this.yongan(num, id);
  1630. } else if (!!quote.data.syStartDate && !quote.data.jqStartDate) {
  1631. } else if (!!quote.data.syStartDate && !!quote.data.jqStartDate) {
  1632. } else {
  1633. this.totalCompanyList[num].quoteCode = "3";
  1634. this.totalCompanyList[num].msg = "重复投保";
  1635. }
  1636. } else if (quote.code == "500" || quote.code == "502" || quote.code == "-9999") {
  1637. this.totalCompanyList[num].quoteCode = "-9999";
  1638. this.totalCompanyList[num].msg = quote.msg;
  1639. } else {
  1640. this.totalCompanyList[num].quoteCode = 200;
  1641. this.totalCompanyList[num].result = quote.data;
  1642. }
  1643. },
  1644. //中煤报价
  1645. async zhongmei(num, id) {
  1646. let params = {
  1647. accidentalDrivingVo: this.zmDrivingForm,
  1648. orderNo: this.orderno,
  1649. companyId: id,
  1650. agreementId: this.totalCompanyList[num].agreementId,
  1651. };
  1652. let res = await this.$http.post('/order/zhongMeiApi/quote', params);
  1653. this.totalCompanyList[num].msg = res.msg;
  1654. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  1655. this.totalCompanyList[num].quoteCode = "4";
  1656. this.totalCompanyList[num].msg = res.msg;
  1657. return;
  1658. } else if (
  1659. res.data == null &&
  1660. res.msg.indexOf("交强险平台返回") > -1 &&
  1661. res.msg.indexOf(";终保日期") > -1
  1662. ) {
  1663. let time =
  1664. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  1665. this.jqstartDate = time;
  1666. this.jqendDate = this.oneYearPast(time);
  1667. if (this.riskList.length > 0) {
  1668. for (let i = 0; i < this.riskList.length; i++) {
  1669. if (this.riskList[i].riskCode == "0507") {
  1670. this.riskList[i].startDate = time;
  1671. this.riskList[i].endDate = this.oneYearPast(time);
  1672. }
  1673. }
  1674. }
  1675. let param = {
  1676. userId: this.userInfo.sysUser.id,
  1677. quoteno: this.quoteno,
  1678. orderNo: this.orderno,
  1679. carInfo: this.carInfo,
  1680. insuredPersonInfo: this.insuredPersonInfo,
  1681. ownerInfo: this.ownerInfo,
  1682. policyHolderInfo: this.policyHolderInfo,
  1683. kindList: this.kindList,
  1684. riskList: this.riskList,
  1685. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  1686. };
  1687. await this.$http.post('/insurance/order/generateOrder', param);
  1688. return this.zhongmei(num, id);
  1689. } else if (res.code == '200') {
  1690. if (res.data.warnMessageList != null && res.data.warnMessageList[0] != null && res.data
  1691. .warnMessageList[
  1692. 0] != "") {
  1693. this.totalCompanyList[num].lastYearMsg = "";
  1694. let dat = res.data.warnMessageList;
  1695. dat.map(ele => {
  1696. this.totalCompanyList[num].lastYearMsg += ele + '<br>';
  1697. })
  1698. }
  1699. this.totalCompanyList[num].quoteCode = 200;
  1700. this.totalCompanyList[num].result = res.data;
  1701. } else {
  1702. this.totalCompanyList[num].quoteCode = "3";
  1703. this.totalCompanyList[num].msg = res.msg;
  1704. return;
  1705. }
  1706. },
  1707. //永诚报价
  1708. async yongcheng(num, id) {
  1709. let jychecked = this.totalCompanyList[num].jychecked
  1710. let params = {
  1711. accidentalDrivingVo: jychecked ? this.yongchengaccidentalDrivingVo : {},
  1712. orderNo: this.orderno,
  1713. companyId: id,
  1714. cqryCdeJq: this.cqryCdeJq,
  1715. cqryCdeSy: this.cqryCdeSy,
  1716. renewalCodeJq: this.renewalCodeJq,
  1717. renewalCodeSy: this.renewalCodeSy,
  1718. agreementId: this.totalCompanyList[num].agreementId,
  1719. };
  1720. let res = await this.$http.post('/api/yongCheng/quote', params);
  1721. this.totalCompanyList[num].msg = res.msg;
  1722. if (res.code == "200") {
  1723. if (res.data.warnMessageList != null && res.data.warnMessageList[0] != null && res.data
  1724. .warnMessageList[
  1725. 0] != "") {
  1726. this.totalCompanyList[num].lastYearMsg = "";
  1727. let dat = res.data.warnMessageList;
  1728. dat.map(ele => {
  1729. this.totalCompanyList[num].lastYearMsg += ele + '<br>';
  1730. })
  1731. }
  1732. this.totalCompanyList[num].quoteCode = 200;
  1733. this.totalCompanyList[num].result = res.data;
  1734. } else if (res.code == "101") {
  1735. this.totalCompanyList[num].quoteCode = "101";
  1736. this.totalCompanyList[num].msg = res.msg;
  1737. this.cqryCdeJq = res.data.cqryCdeJq;
  1738. this.cqryCdeSy = res.data.cqryCdeSy;
  1739. let jq = res.data.renewalCodeJq.replace(/[\r\n]/g, "");
  1740. let jqBase64 = `data:image/png;base64,${jq}`;
  1741. this.renewalCodeJqImg = jqBase64;
  1742. if (res.data.renewalCodeSy) {
  1743. let sy = res.data.renewalCodeSy.replace(/[\r\n]/g, "");
  1744. let syBase64 = `data:image/png;base64,${sy}`;
  1745. this.renewalCodeSyImg = syBase64;
  1746. }
  1747. this.renewalCodedialogVisible = true;
  1748. } else {
  1749. this.totalCompanyList[num].quoteCode = "3";
  1750. this.totalCompanyList[num].msg = res.msg;
  1751. return;
  1752. }
  1753. },
  1754. //紫金报价
  1755. async zijin(num, id) {
  1756. let params = {
  1757. accidentalDrivingVo: this.zijinaccidentalDrivingVo,
  1758. orderNo: this.orderno,
  1759. companyId: id,
  1760. agreementId: this.totalCompanyList[num].agreementId,
  1761. };
  1762. let res = await this.$http.post('/order/zijin/quote', params);
  1763. this.totalCompanyList[num].msg = res.msg;
  1764. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  1765. this.totalCompanyList[num].quoteCode = "4";
  1766. this.totalCompanyList[num].msg = res.msg;
  1767. return;
  1768. } else if (
  1769. res.data == null &&
  1770. res.msg.indexOf("交强险平台返回") > -1 &&
  1771. res.msg.indexOf(";终保日期") > -1
  1772. ) {
  1773. let time =
  1774. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  1775. this.jqstartDate = time;
  1776. this.jqendDate = this.oneYearPast(time);
  1777. this.systartDate = time;
  1778. this.syendDate = this.oneYearPast(time);
  1779. if (this.riskList.length > 0) {
  1780. for (let i = 0; i < this.riskList.length; i++) {
  1781. if (this.riskList[i].riskCode == "0507") {
  1782. this.riskList[i].startDate = time;
  1783. this.riskList[i].endDate = this.oneYearPast(time);
  1784. } else if (this.riskList[i].riskCode == "0510") {
  1785. this.riskList[i].startDate = time;
  1786. this.riskList[i].endDate = this.oneYearPast(time);
  1787. }
  1788. }
  1789. }
  1790. let param = {
  1791. userId: this.userInfo.sysUser.id,
  1792. quoteno: this.quoteno,
  1793. orderNo: this.orderno,
  1794. carInfo: this.carInfo,
  1795. insuredPersonInfo: this.insuredPersonInfo,
  1796. ownerInfo: this.ownerInfo,
  1797. policyHolderInfo: this.policyHolderInfo,
  1798. kindList: this.kindList,
  1799. riskList: this.riskList,
  1800. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  1801. };
  1802. await this.$http.post('/insurance/order/generateOrder', param);
  1803. return this.zijin(num, id);
  1804. } else if (res.code == '200') {
  1805. if (res.data.warnMessageList != null && res.data.warnMessageList[0] != null && res.data
  1806. .warnMessageList[
  1807. 0] != "") {
  1808. this.totalCompanyList[num].lastYearMsg = "";
  1809. let dat = res.data.warnMessageList;
  1810. dat.map(ele => {
  1811. this.totalCompanyList[num].lastYearMsg += ele;
  1812. })
  1813. }
  1814. this.totalCompanyList[num].quoteCode = 200;
  1815. this.totalCompanyList[num].result = res.data;
  1816. } else {
  1817. this.totalCompanyList[num].quoteCode = "3";
  1818. this.totalCompanyList[num].msg = res.msg;
  1819. return;
  1820. }
  1821. },
  1822. //国任报价
  1823. async guoRen(num, id) {
  1824. let jychecked = this.totalCompanyList[num].jychecked
  1825. let params = {
  1826. accidentalDrivingVo: jychecked ? this.guorenaccidentalDrivingVo : {},
  1827. orderNo: this.orderno,
  1828. companyId: id,
  1829. cqryCdeJq: this.cqryCdeJq,
  1830. cqryCdeSy: this.cqryCdeSy,
  1831. renewalCodeJq: this.renewalCodeJq,
  1832. renewalCodeSy: this.renewalCodeSy,
  1833. agreementId: this.totalCompanyList[num].agreementId,
  1834. };
  1835. let res = await this.$http.post('/api/guoRen/quote', params);
  1836. this.totalCompanyList[num].msg = res.msg;
  1837. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  1838. this.totalCompanyList[num].quoteCode = "4";
  1839. this.totalCompanyList[num].msg = res.msg;
  1840. return;
  1841. } else if (
  1842. res.data == null &&
  1843. res.msg.indexOf("交强险平台返回") > -1 &&
  1844. res.msg.indexOf(";终保日期") > -1
  1845. ) {
  1846. let time =
  1847. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  1848. this.jqstartDate = time;
  1849. this.jqendDate = this.oneYearPast(time);
  1850. this.systartDate = time;
  1851. this.syendDate = this.oneYearPast(time);
  1852. if (this.riskList.length > 0) {
  1853. for (let i = 0; i < this.riskList.length; i++) {
  1854. if (this.riskList[i].riskCode == "0507") {
  1855. this.riskList[i].startDate = time;
  1856. this.riskList[i].endDate = this.oneYearPast(time);
  1857. } else if (this.riskList[i].riskCode == "0510") {
  1858. this.riskList[i].startDate = time;
  1859. this.riskList[i].endDate = this.oneYearPast(time);
  1860. }
  1861. }
  1862. }
  1863. let param = {
  1864. userId: this.userInfo.sysUser.id,
  1865. quoteno: this.quoteno,
  1866. orderNo: this.orderno,
  1867. carInfo: this.carInfo,
  1868. insuredPersonInfo: this.insuredPersonInfo,
  1869. ownerInfo: this.ownerInfo,
  1870. policyHolderInfo: this.policyHolderInfo,
  1871. kindList: this.kindList,
  1872. riskList: this.riskList,
  1873. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  1874. };
  1875. await this.$http.post('/insurance/order/generateOrder', param);
  1876. return this.guoRen(num, id);
  1877. } else if (res.code == '200') {
  1878. if (res.data.warnMessageList != null && res.data.warnMessageList[0] != null && res.data
  1879. .warnMessageList[
  1880. 0] != "") {
  1881. this.totalCompanyList[num].lastYearMsg = "";
  1882. let dat = res.data.warnMessageList;
  1883. dat.map(ele => {
  1884. this.totalCompanyList[num].lastYearMsg += ele;
  1885. })
  1886. }
  1887. this.totalCompanyList[num].quoteCode = 200;
  1888. this.totalCompanyList[num].result = res.data;
  1889. } else {
  1890. this.totalCompanyList[num].quoteCode = "3";
  1891. this.totalCompanyList[num].msg = res.msg;
  1892. return;
  1893. }
  1894. },
  1895. //爬虫统一报价接口
  1896. async quoteInsurance(num, id, apiType, jychecked) {
  1897. let api = apiType === 2 ? "/insurance/crawler/quote" : "anshengquote";
  1898. let ccidenttype = this.totalCompanyList[num].cnName;
  1899. let namesimple = this.totalCompanyList[num].namesimple;
  1900. let params = {
  1901. orderNo: this.orderno,
  1902. companyId: id,
  1903. agreementId: this.totalCompanyList[num].agreementId,
  1904. accidentalDrivingVo: jychecked ? this[ccidenttype + 'accidentalDrivingVo'] : {},
  1905. };
  1906. let res = await this.$http.post(`${api}`, params);
  1907. this.totalCompanyList[num].msg = res.msg;
  1908. switch (namesimple) {
  1909. case '安盛天平':
  1910. if (!!res.data) {
  1911. if (res.data.warnMessageList != null && res.data.warnMessageList[0] != null && res.data
  1912. .warnMessageList[
  1913. 0] != "") {
  1914. this.totalCompanyList[num].lastYearMsg = "";
  1915. let dat = res.data.warnMessageList;
  1916. dat.map(ele => {
  1917. this.totalCompanyList[num].lastYearMsg += ele;
  1918. })
  1919. }
  1920. this.totalCompanyList[num].quoteCode = 200;
  1921. this.totalCompanyList[num].result = res.data;
  1922. } else {
  1923. this.totalCompanyList[num].quoteCode = "3";
  1924. this.totalCompanyList[num].msg = res.msg;
  1925. return;
  1926. }
  1927. break;
  1928. case '中国人寿':
  1929. if (!!res.data) {
  1930. if (res.data.warnMessageList != null && res.data.warnMessageList[0] != null && res.data
  1931. .warnMessageList[
  1932. 0] != "") {
  1933. this.totalCompanyList[num].lastYearMsg = "";
  1934. let dat = res.data.warnMessageList;
  1935. dat.map(ele => {
  1936. this.totalCompanyList[num].lastYearMsg += ele;
  1937. })
  1938. }
  1939. this.totalCompanyList[num].quoteCode = 200;
  1940. this.totalCompanyList[num].result = res.data;
  1941. } else {
  1942. this.totalCompanyList[num].quoteCode = "3";
  1943. this.totalCompanyList[num].msg = res.msg;
  1944. return;
  1945. }
  1946. break;
  1947. case '恒邦财险':
  1948. if (!!res.data) {
  1949. if (res.data.warnMessageList != null && res.data.warnMessageList[0] != null && res.data
  1950. .warnMessageList[
  1951. 0] != "") {
  1952. this.totalCompanyList[num].lastYearMsg = "";
  1953. let dat = res.data.warnMessageList;
  1954. dat.map(ele => {
  1955. this.totalCompanyList[num].lastYearMsg += ele;
  1956. })
  1957. }
  1958. this.totalCompanyList[num].quoteCode = 200;
  1959. this.totalCompanyList[num].result = res.data;
  1960. } else {
  1961. this.totalCompanyList[num].quoteCode = "3";
  1962. this.totalCompanyList[num].msg = res.msg;
  1963. return;
  1964. }
  1965. break;
  1966. case '众安财险':
  1967. if (!!res.data) {
  1968. if (res.data.warnMessageList != null && res.data.warnMessageList[0] != null && res.data
  1969. .warnMessageList[
  1970. 0] != "") {
  1971. this.totalCompanyList[num].lastYearMsg = "";
  1972. let dat = res.data.warnMessageList;
  1973. dat.map(ele => {
  1974. this.totalCompanyList[num].lastYearMsg += ele;
  1975. })
  1976. }
  1977. this.totalCompanyList[num].quoteCode = 200;
  1978. this.totalCompanyList[num].result = res.data;
  1979. } else {
  1980. this.totalCompanyList[num].quoteCode = "3";
  1981. this.totalCompanyList[num].msg = res.msg;
  1982. return;
  1983. }
  1984. break;
  1985. default:
  1986. break;
  1987. }
  1988. },
  1989. //安盛天平
  1990. ansheng(num, id) {
  1991. this.quoteInsurance(num, id, this.totalCompanyList[num].apiType, this.totalCompanyList[num].jychecked);
  1992. },
  1993. //众安
  1994. zhongan(num, id) {
  1995. this.quoteInsurance(num, id, this.totalCompanyList[num].apiType, this.totalCompanyList[num].jychecked);
  1996. },
  1997. //人寿
  1998. renshou(num, id) {
  1999. this.quoteInsurance(num, id, this.totalCompanyList[num].apiType, this.totalCompanyList[num].jychecked);
  2000. },
  2001. //恒邦
  2002. hengbang(num, id) {
  2003. this.quoteInsurance(num, id, this.totalCompanyList[num].apiType, this.totalCompanyList[num].jychecked);
  2004. },
  2005. Lastyear() {
  2006. this.$refs.lastYearMsgCI.show() // 显示
  2007. },
  2008. adjustPopupInsureSubmit() {
  2009. this.$refs.lastYearMsgCI.hide() // 显示
  2010. },
  2011. // 重新选择车型
  2012. toCarInfo() {
  2013. this.navigate({
  2014. url: '/pages/carInsure1/carInfo1',
  2015. success: (res) => {
  2016. res.eventChannel.emit("acceptData", {
  2017. carInfo: this.carInfo,
  2018. ownerInfo: this.ownerInfo,
  2019. policyHolderInfo: this.policyHolderInfo,
  2020. insuredPersonInfo: this.insuredPersonInfo,
  2021. riskList: this.riskList,
  2022. kindList: this.kindList,
  2023. carInfoPositiveList: this.carInfoPositiveList, //车辆
  2024. ownerInfoPositiveList: this.ownerInfoPositiveList, //车主
  2025. policyHolderInfoPositiveList: this.policyHolderInfoPositiveList, //投保
  2026. insuredPersonInfoPositiveList: this.insuredPersonInfoPositiveList, //被保人
  2027. })
  2028. }
  2029. }, "navigateTo", true);
  2030. },
  2031. // 重新选择方案
  2032. toInsureItems() {
  2033. this.navigate({
  2034. url: '/pages/carInsure1/insureItems1',
  2035. success: (res) => {
  2036. res.eventChannel.emit("acceptData", {
  2037. carInfo: this.carInfo,
  2038. ownerInfo: this.ownerInfo,
  2039. policyHolderInfo: this.policyHolderInfo,
  2040. insuredPersonInfo: this.insuredPersonInfo,
  2041. riskList: this.riskList,
  2042. kindList: this.kindList,
  2043. carInfoPositiveList: this.carInfoPositiveList, //车辆
  2044. ownerInfoPositiveList: this.ownerInfoPositiveList, //车主
  2045. policyHolderInfoPositiveList: this.policyHolderInfoPositiveList, //投保
  2046. insuredPersonInfoPositiveList: this.insuredPersonInfoPositiveList, //被保人
  2047. vehicleModel: this.vehicleModel,
  2048. })
  2049. }
  2050. }, "navigateTo", true);
  2051. },
  2052. // 显示报错信息
  2053. ErrorMsg(msg, title) {
  2054. uni.showModal({
  2055. title: title + "报价提示",
  2056. content: msg,
  2057. showCancel: false,
  2058. confirmText: "关闭"
  2059. })
  2060. },
  2061. //上年信息
  2062. YearMsg(msg, title) {
  2063. uni.showModal({
  2064. title: title + "上年信息",
  2065. content: msg,
  2066. showCancel: false,
  2067. confirmText: "关闭"
  2068. })
  2069. },
  2070. //使用此时间
  2071. syncData(item) {
  2072. this.jqstartDate = item.startDateJq ? item.startDateJq : this.jqstartDate
  2073. this.jqendDate = item.endDateJq ? item.endDateJq : this.endDateJq
  2074. this.systartDate = item.startDateSy ? item.startDateSy : this.systartDate
  2075. this.syendDate = item.endDateSy ? item.endDateSy : this.syendDate
  2076. uni.showToast({
  2077. title: '时间已替换',
  2078. icon: 'none',
  2079. duration: 1000
  2080. });
  2081. },
  2082. oneYearPast(time) {
  2083. var date = new Date(time);
  2084. date.setSeconds(date.getSeconds() - 1);
  2085. date.setFullYear(date.getFullYear() + 1); //一年后
  2086. date.setTime(date.getTime()); //一年后的前一天
  2087. var strYear = date.getFullYear();
  2088. var strDay = date.getDate();
  2089. var strMonth = date.getMonth() + 1;
  2090. var hh = date.getHours();
  2091. var minutes = date.getMinutes(); // 分
  2092. var Seconds = date.getSeconds();
  2093. if (hh < 10) {
  2094. hh = "0" + hh;
  2095. }
  2096. if (minutes < 10) {
  2097. minutes = "0" + minutes;
  2098. }
  2099. if (Seconds < 10) {
  2100. Seconds = "0" + Seconds;
  2101. }
  2102. if (strMonth < 10) {
  2103. strMonth = "0" + strMonth;
  2104. }
  2105. if (strDay < 10) {
  2106. strDay = "0" + strDay;
  2107. }
  2108. var datastr =
  2109. strYear + "-" + strMonth + "-" + strDay + " " + hh + ":" + minutes + ":" + Seconds;
  2110. return datastr;
  2111. },
  2112. },
  2113. }
  2114. </script>
  2115. <style lang="scss" scoped>
  2116. @import '@/style/mixin.scss';
  2117. /* 头部车辆信息和特权Start */
  2118. .carInfo {
  2119. height: 330upx;
  2120. background: -webkit-linear-gradient(0deg, rgba($themeColor, 0.6), rgba($themeColor, 0.8));
  2121. background-size: 100% 100%;
  2122. }
  2123. .carInfo .topLeft {
  2124. width: 120upx;
  2125. font-size: 90upx;
  2126. color: #FFFFFF;
  2127. }
  2128. .carInfo .topRight .brandName {
  2129. width: 400upx;
  2130. overflow: hidden;
  2131. text-overflow: ellipsis;
  2132. white-space: nowrap;
  2133. }
  2134. .carInfo .other {
  2135. background-color: #FFFFFF;
  2136. height: 80upx;
  2137. border-radius: 15upx;
  2138. box-sizing: border-box;
  2139. }
  2140. .carInfo .other .privilege {
  2141. background-color: rgba($themeColor, 0.6);
  2142. font-size: 24upx;
  2143. color: #FFFFFF;
  2144. font-weight: bold;
  2145. }
  2146. .carInfo .other .content {
  2147. width: 460upx;
  2148. margin-left: 15upx;
  2149. overflow: hidden;
  2150. text-overflow: ellipsis;
  2151. white-space: nowrap;
  2152. }
  2153. .carInfo .other .icon {
  2154. width: 30upx;
  2155. }
  2156. /* 头部车辆信息和特权End */
  2157. .pageContent {
  2158. position: relative;
  2159. top: -50upx;
  2160. padding-bottom: 100px;
  2161. }
  2162. /* 报价方案Start */
  2163. .quotePlan {
  2164. background: #FFFFFF;
  2165. position: relative;
  2166. border-radius: 20upx;
  2167. }
  2168. .quotePlan .header {
  2169. height: 80upx;
  2170. position: relative;
  2171. border-bottom: 1px solid #E6E8EA;
  2172. }
  2173. .quotePlan .header .title {
  2174. // font-size: 30upx;
  2175. font-weight: bold;
  2176. padding-left: 25upx;
  2177. }
  2178. .quotePlan .header .title:before {
  2179. content: "";
  2180. position: absolute;
  2181. left: 30upx;
  2182. top: 25upx;
  2183. width: 8upx;
  2184. height: 30upx;
  2185. background-color: $themeColor;
  2186. }
  2187. .quotePlan .body {
  2188. padding: 0 30upx 10upx;
  2189. }
  2190. .quotePlan .body .insurance {
  2191. padding-bottom: 20upx;
  2192. border-bottom: 1px dashed #E6E8EA;
  2193. }
  2194. .accident-style {
  2195. padding: 20px;
  2196. >view {
  2197. margin-bottom: 15px;
  2198. }
  2199. .accident-ins {
  2200. text {
  2201. margin-right: 10px;
  2202. }
  2203. }
  2204. }
  2205. .popContent {
  2206. padding: 10px;
  2207. max-height: 400px;
  2208. }
  2209. .carTypeItem {
  2210. padding: 0 30upx 20upx;
  2211. border-bottom: 1px solid #e5e5e5;
  2212. margin-top: 20upx;
  2213. width: 100%;
  2214. box-sizing: border-box;
  2215. }
  2216. .carTypeItem .nav .carseriesName {
  2217. font-size: 34upx;
  2218. width: 360upx;
  2219. font-family: PingFangSC-Medium, PingFangSC;
  2220. color: #4a4a4a;
  2221. overflow: hidden;
  2222. text-overflow: ellipsis;
  2223. white-space: nowrap;
  2224. }
  2225. .carTypeItem .nav .modelName {
  2226. font-size: 26upx;
  2227. width: 400upx;
  2228. font-family: PingFangSC-Medium, PingFangSC;
  2229. overflow: hidden;
  2230. text-overflow: ellipsis;
  2231. white-space: nowrap;
  2232. }
  2233. .carTypeItem .nav .nav_box {
  2234. margin: 10upx 0;
  2235. }
  2236. .carTypeItem .nav .nav_box .zid {
  2237. display: inline-block;
  2238. padding: 6upx 10upx;
  2239. font-size: 24upx;
  2240. height: 40upx;
  2241. background: #AFC9F7;
  2242. border-radius: 25upx;
  2243. color: #007AFF;
  2244. font-weight: bold;
  2245. line-height: 40upx;
  2246. }
  2247. .carTypeItem .nav .nav_box>p {
  2248. margin-left: 30upx;
  2249. color: #999;
  2250. font-size: 24upx;
  2251. }
  2252. .carTypeItem .price {
  2253. font-size: 16px;
  2254. width: 200upx;
  2255. flex-shrink: 0;
  2256. font-family: PingFangSC-Regular, PingFangSC;
  2257. font-weight: 400;
  2258. color: #007AFF;
  2259. }
  2260. .quotePlan .body .row {
  2261. height: 70upx;
  2262. }
  2263. .quotePlan .body .date {
  2264. background-color: $themeColor;
  2265. color: $themeColor;
  2266. font-size: 22upx;
  2267. padding: 0upx 7upx;
  2268. border-radius: 3upx;
  2269. margin: 10upx;
  2270. margin-right: 10upx;
  2271. }
  2272. /* 报价方案End */
  2273. /* 报价公司Start */
  2274. .quoteCompany {
  2275. margin: 20upx 30upx;
  2276. box-sizing: border-box;
  2277. /* background:#FFFFFF; */
  2278. position: relative;
  2279. border-radius: 20upx;
  2280. }
  2281. .quoteCompany .header {
  2282. height: 80upx;
  2283. padding: 0 30upx;
  2284. position: relative;
  2285. }
  2286. .quoteCompany .header .title {
  2287. font-size: 30upx;
  2288. font-weight: bold;
  2289. padding-left: 25upx;
  2290. }
  2291. .quoteCompany .header .title:before {
  2292. content: "";
  2293. position: absolute;
  2294. left: 30upx;
  2295. top: 25upx;
  2296. width: 8upx;
  2297. height: 30upx;
  2298. background-color: rgba($themeColor, 0.6);
  2299. }
  2300. .quoteCompany .header .title .icon {
  2301. color: rgba($themeColor, 0.6);
  2302. margin-left: 15upx;
  2303. }
  2304. .quoteCompanyItem {
  2305. margin-bottom: 20upx;
  2306. background: #FFFFFF;
  2307. border-radius: 15upx;
  2308. padding: 10px 20px 0 20px;
  2309. box-sizing: border-box;
  2310. cursor: pointer;
  2311. }
  2312. .quoteCompanyItem>view>view {
  2313. padding: 5px 0;
  2314. }
  2315. .quoteCompanyItem .top {
  2316. position: relative;
  2317. }
  2318. .quoteCompanyItem .top .companyIcon {
  2319. flex-shrink: 0;
  2320. }
  2321. .quoteCompanyItem .top .companyIcon image {
  2322. width: 34px;
  2323. height: 34px;
  2324. margin-right: 10px;
  2325. }
  2326. .quoteCompanyItem .top .Premium text {
  2327. margin-right: 10px;
  2328. }
  2329. .quoteCompanyItem .top .companyName {
  2330. font-size: 32upx;
  2331. font-weight: bold;
  2332. width: 180upx;
  2333. overflow: hidden;
  2334. text-overflow: ellipsis;
  2335. white-space: nowrap;
  2336. }
  2337. .quoteCompanyItem .top .totalMoney {
  2338. font-size: 40upx;
  2339. font-weight: bold;
  2340. color: $themeColor;
  2341. position: absolute;
  2342. top: -15upx;
  2343. right: 0;
  2344. }
  2345. .quoteCompanyItem .top .tip {
  2346. font-size: 26upx;
  2347. font-weight: bold;
  2348. color: #999;
  2349. position: absolute;
  2350. top: 0upx;
  2351. right: 0;
  2352. }
  2353. .sum {
  2354. color: #ea552d;
  2355. font-size: 22px;
  2356. font-weight: bold;
  2357. }
  2358. .quoteCompanyItem .top .signs {
  2359. width: 500upx;
  2360. overflow: hidden;
  2361. text-overflow: ellipsis;
  2362. white-space: nowrap;
  2363. }
  2364. .quoteCompanyItem .top .sign {
  2365. height: 40upx;
  2366. margin: 0upx 10upx;
  2367. background: rgba($themeColor, 0.6);
  2368. color: $themeColor;
  2369. font-size: 20upx;
  2370. margin-right: 10upx;
  2371. border-radius: 6upx;
  2372. padding: 0 2px;
  2373. line-height: 40upx;
  2374. }
  2375. .jqsign {
  2376. height: 20px;
  2377. background: rgba(255, 177, 177, 0.55);
  2378. color: #fd0a0a;
  2379. font-size: 20upx;
  2380. border-radius: 6upx;
  2381. padding: 0 10px;
  2382. box-sizing: border-box;
  2383. }
  2384. .quoteCompanyItem .body {
  2385. padding: 20upx 0;
  2386. flex-wrap: wrap;
  2387. }
  2388. .quoteCompanyItem .body>view {
  2389. flex-shrink: 0;
  2390. width: 50%;
  2391. overflow: hidden;
  2392. text-overflow: ellipsis;
  2393. white-space: nowrap;
  2394. }
  2395. .quoteCompanyItem .body .icon-exchange {
  2396. margin-right: 15upx;
  2397. display: inline-block;
  2398. }
  2399. /* 报价公司End */
  2400. /* 查看详情按钮Start */
  2401. .btn {
  2402. font-size: 16px;
  2403. color: #fff;
  2404. background-color: #ea552d;
  2405. margin-top: 10px;
  2406. }
  2407. /* 底部的样式Start */
  2408. .infoBottom {
  2409. height: 140upx;
  2410. position: fixed;
  2411. bottom: 0;
  2412. left: 0;
  2413. right: 0;
  2414. background: #FFFFFF;
  2415. border-top: 1upx solid #EEEEEE;
  2416. z-index: 99;
  2417. }
  2418. .infoBottom>button {
  2419. // font-size: 30upx;
  2420. background: $themeColor;
  2421. color: #FFFFFF;
  2422. flex: 1;
  2423. margin: 0upx 30upx;
  2424. }
  2425. .slot-content {
  2426. padding: 10px;
  2427. box-sizing: border-box;
  2428. }
  2429. .ZJcheckboxGroup {
  2430. border-bottom: 2px solid #f2f2f2;
  2431. }
  2432. /* 查看详情按钮End */
  2433. </style>