quote1.vue 102 KB

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