premiumCalc.vue 134 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257
  1. <template>
  2. <view class="">
  3. <u-sticky zIndex="999" customNavHeight="0">
  4. <uni-NavBar headerTitle="保费计算" background="#fff" rightText="客服" iconImage="/static/icon/customerService.png"
  5. :isSlot="false" @share="getWechatCustomer"></uni-NavBar>
  6. </u-sticky>
  7. <image src="/static/image/car-insure/Quotablebanner.png" mode=""
  8. style="width: 100%;height: 110px;position: absolute;"></image>
  9. <view class="page">
  10. <view class="car-header dis a-c mt-2">
  11. <image src="/static/image/car-insure/Group.png" mode="" style="width: 40px;height: 40px;"></image>
  12. <view class="dis f-c head-name">
  13. <text>{{carInfo.licenseNo}} <text style="color: rgba(35,40,50,0.65);">丨</text> <text
  14. style="font-weight: 400;"> {{insuredPersonInfo.name}} (被保人)</text> </text>
  15. <view class="name1">
  16. <text>{{carInfo.brandName}} {{carInfo.displacement}}L {{carInfo.seatCount}}座
  17. {{carInfo.purchasePrice}}元 {{carInfo.carYear}}</text>
  18. </view>
  19. </view>
  20. <view class="carJump" @tap="toCarInfo">修改信息</view>
  21. </view>
  22. <view class="" style="position: relative;">
  23. <view class=" dis f-c" v-if="['0330','0330034002','0330034001'].includes(productId)">
  24. <text class="plan-ins-title">交强险</text>
  25. <view class="quotePlan">
  26. <view class=" dis a-c j-s modelformcss">
  27. <text style="font-size: 28rpx;">即时投保</text>
  28. <view class="dis a-c j-c">
  29. <view class="status-data" :class="item.value==jqimmediately? 'active':''"
  30. v-for="(item,index) in jqimmediatelyList"
  31. @tap="datelyClick(item.value,'jqimmediately','jqstartDate','jqendDate','ciRiskInfoVo')"
  32. :key="index">
  33. {{item.label}}
  34. </view>
  35. </view>
  36. </view>
  37. <u-form ref="uForm" labelWidth="120">
  38. <u-form-item label="交强险投保日期" class="modelformcss" @click="jqstartShow = true">
  39. <u--input v-model="jqstartDate" disabled disabledColor="#ffffff" clearable
  40. suffixIcon='calendar' suffixIconStyle="color:#333;font-size:40rpx"
  41. placeholder="请选择证件起期 " placeholderStyle="text-align:right;" border="none"
  42. style="pointer-events: none"></u--input>
  43. </u-form-item>
  44. <u-form-item label="交强险终保日期" class="modelformcss" @click="jqendShow=true">
  45. <u--input v-model="jqendDate" disabled disabledColor="#ffffff" clearable
  46. suffixIcon='calendar' suffixIconStyle="color:#333;font-size:40rpx"
  47. placeholder="请选择证件起期 " placeholderStyle="text-align:right;" border="none"
  48. style="pointer-events: none"></u--input>
  49. </u-form-item>
  50. </u-form>
  51. </view>
  52. </view>
  53. <view class=" dis f-c " v-if="['034001','034002','0330034002','0330034001'].includes(productId)">
  54. <text class="plan-ins-title">商业险</text>
  55. <view class="quotePlan">
  56. <view class=" dis a-c j-s modelformcss">
  57. <text>即时投保</text>
  58. <view class="dis a-c j-c">
  59. <view class="status-data" :class="item.value==syimmediately? 'active':''"
  60. v-for="(item,index) in syimmediatelyList"
  61. @tap="datelyClick(item.value,'syimmediately','systartDate','syendDate','biRiskInfoVo')"
  62. :key="index">
  63. {{item.label}}
  64. </view>
  65. </view>
  66. </view>
  67. <u-form ref="uForm" label-width="120px">
  68. <u-form-item label="商业险投保日期" class="modelformcss" @click="systartShow = true">
  69. <u--input v-model="systartDate" disabled disabledColor="#ffffff" clearable
  70. suffixIcon='calendar' suffixIconStyle="color:#333;font-size:40rpx"
  71. placeholder="请选择证件起期 " placeholderStyle="text-align:right;" border="none"
  72. style="pointer-events: none"></u--input>
  73. </u-form-item>
  74. <u-form-item label="商业险终保日期" class="modelformcss" @click="syendShow = true">
  75. <u--input v-model="syendDate" disabled disabledColor="#ffffff" clearable
  76. suffixIcon='calendar' suffixIconStyle="color:#333;font-size:40rpx"
  77. placeholder="请选择证件起期 " placeholderStyle="text-align:right;" border="none"
  78. style="pointer-events: none"></u--input>
  79. </u-form-item>
  80. </u-form>
  81. </view>
  82. </view>
  83. </view>
  84. <view class=" dis a-c j-s mt-3" style="position: relative;">
  85. <view style="color:#FF5600;font-size: 15px;font-weight: bold;">投保注意:</view>
  86. <view class="dis a-c f-wrap">
  87. <view class="status-data" :class="carInfo.transfer? 'active1':''"
  88. @tap="immediatelyClick('transfer')">
  89. 过户车
  90. </view>
  91. <view class="status-data" v-if="['034001','0330034002','0330034001'].includes(productId)"
  92. :class="carInfo.biTransfer? 'active1':''" @tap="immediatelyClick('biTransfer')">
  93. 商业险过户
  94. </view>
  95. <!-- <view class="status-data" :class="carInfo.outOfInsurance? 'active1':''"
  96. @tap="immediatelyClick('outOfInsurance')">
  97. 脱保
  98. </view> -->
  99. <view class="status-data" :class="carInfo.secondHandCar? 'active1':''"
  100. @tap="immediatelyClick('secondHandCar')">
  101. 二手车
  102. </view>
  103. </view>
  104. </view>
  105. <view class="quotePlan dis a-c j-s mt-2 " style="padding: 5px 10px;" v-if="carInfo.transfer"
  106. @click="transferDateShow = true">
  107. <view>转移登记日期:</view>
  108. <u--input v-model="carInfo.transferDate" disabled disabledColor="#ffffff" clearable
  109. suffixIcon='calendar' suffixIconStyle="color:#333;font-size:40rpx" placeholder="请选择证件起期 "
  110. placeholderStyle="text-align:right;" border="none" style="pointer-events: none"></u--input>
  111. </view>
  112. <view class="quoteCompany mt-3">
  113. <view class="header dis a-c">
  114. <view class="title d-flex" style="font-family: jiangxizhuokai, jiangxizhuokai;">保险公司</view>
  115. <text style="color:#0052FF;font-size: 13px;">(请选择任意一家保险公司投保)</text>
  116. </view>
  117. <block v-for="(totalitem,totalindex) in quotableCompanyList" :key="totalindex">
  118. <template>
  119. <view class="quoteCompanyItem dis f-c j-s ">
  120. <view class="headers dis a-c"
  121. :style="{backgroundImage:totalitem.quoteCode=='3' ? `url('../../static/image/car-insure/baojiashibai.png')` :!totalitem.insurancePlanInfo? `url('../../static/image/car-insure/weixuanfangan.png')` : `url('../../static/image/car-insure/yixuanfangan.png')`}">
  122. <view class="logo dis a-c j-c">
  123. <image :src="totalitem.logo"></image>
  124. <view class="companyName">{{totalitem.nameSimple}}</view>
  125. </view>
  126. <view class="insuranceGuide dis a-c j-c "
  127. :style="{background:totalitem.quoteCode=='3' ? '#FD9159' :!totalitem.insurancePlanInfo? '#FD9159' : '#548EFF'}"
  128. @click.stop="InsureGuideclick(totalitem)">
  129. 投保指引
  130. </view>
  131. </view>
  132. <view class="top dis f-c "
  133. :class="[totalitem.quoteCode=='3' ?'':!totalitem.insurancePlanInfo?'':'selectedPlanBackground']">
  134. <view v-if="totalitem.quoteCode"
  135. :class="[totalitem.quoteCode=='200'?'j-start':'j-end','companyIcon','dis','a-c']"
  136. :style="{borderBottom:totalitem.quoteCode=='3' ?'1px solid #FFCFC0':!totalitem.insurancePlanInfo?'none':'1px solid #C0E4FF'}">
  137. <view class="dis a-c">
  138. <view class="" @click.stop>
  139. <u-checkbox @change="priceComparisonChange(totalindex,totalitem)"
  140. v-if="totalitem.isComparableshowHide"
  141. v-model="totalitem.isComparableShow" active-color="#23C1CB"
  142. :disabled='totalitem.isComparableDisabled'></u-checkbox>
  143. </view>
  144. </view>
  145. <view class="dis a-c" v-if="totalitem.quoteCode=='200'">
  146. <text class="sum">总保费:¥{{totalitem.result.costs.sumPremium}}</text>
  147. <view class="dis a-c" style="margin-left: 10px;"
  148. v-if="totalitem.result.feeDisplay">
  149. <text style="color: #FF4D4D;font-size: 12px;"
  150. v-if="totalitem.result.sumExportFee">{{totalitem.result.feeView?'掌柜科技币':'优惠金额¥'}}{{totalitem.result.sumExportFee}}</text>
  151. </view>
  152. </view>
  153. <text v-if="totalitem.quoteCode=='3'" class="quoteFailed"
  154. @tap.stop.prevent="ErrorMsg(totalitem.msg,totalitem.nameSimple)">报价失败,查看原因</text>
  155. </view>
  156. <view class=" dis j-end a-c mt-2 f-wrap">
  157. <view class="ml-2 mb-1 "
  158. v-if="totalitem.nameSimple=='诚泰财险' && totalitem.result.ordersNo"
  159. style="border: 1px solid #06A8DC;border-radius: 2px;padding:1px 6px;color:#06A8DC;font-size: 24rpx;"
  160. @click="CTadjustmentCoefficient(totalindex)">调整系数</view>
  161. <view class="ml-2 mb-1 "
  162. v-if="totalitem.nameSimple=='紫金财险' && totalitem.result.ordersNo"
  163. style="border: 1px solid #06A8DC;border-radius: 2px;padding:1px 6px;color:#06A8DC;font-size: 24rpx;"
  164. @click="ZJadjustmentCoefficient(totalindex)">调整系数</view>
  165. <view class="ml-2 mb-1"
  166. v-if="totalitem.nameSimple=='国任财险' && totalitem.insurancePlanInfo"
  167. style="border: 1px solid #06A8DC;border-radius: 2px;padding:1px 6px;color:#06A8DC;font-size: 24rpx;"
  168. @click="specialAgreementSelection(totalitem.id)">调整特约</view>
  169. <view class="ml-2 mb-1"
  170. v-if="totalitem.nameSimple=='紫金财险' && totalitem.insurancePlanInfo"
  171. style="border: 1px solid #06A8DC;border-radius: 2px;padding:1px 6px;color:#06A8DC;font-size: 24rpx;"
  172. @click="zijinspecialAgreementSelection(totalitem.id)">调整特约</view>
  173. <view class="ml-2 mb-1"
  174. v-if="totalitem.nameSimple=='华泰财险' && totalitem.insurancePlanInfo"
  175. style="border: 1px solid #06A8DC;border-radius: 2px;padding:1px 6px;color:#06A8DC;font-size: 24rpx;"
  176. @click="huataispecialAgreementSelection(totalitem.id)">调整特约</view>
  177. <view class="ml-2 mb-1"
  178. style="border: 1px solid #FF5600;border-radius: 2px;padding:1px 6px;color:#FF5600;font-size: 24rpx;"
  179. @click="SchemeSelection(totalitem)">
  180. {{!totalitem.insurancePlanInfo?'选择方案':'重选方案'}}
  181. </view>
  182. <view class="ml-2 mb-1" v-if="totalitem.insurancePlanInfo"
  183. style="border: 1px solid #0052FF;border-radius: 2px;padding:1px 6px;color:#0052FF;font-size: 24rpx;"
  184. @click="checkSelection(totalitem)">查看方案</view>
  185. <view class="ml-2 mb-1" v-if="totalitem.insurancePlanInfo"
  186. style="background:#FF4D4D;color: #fff;border: 1px solid #FF4D4D;border-radius:2px;padding:1px 6px;font-size: 24rpx;"
  187. @click="individualQuote(totalitem)">单独报价</view>
  188. </view>
  189. <view class="Premium dis f-c mb-2 " v-if="totalitem.quoteCode=='200'">
  190. <view class="dis price" v-if="totalitem.result.feeNoDescription">
  191. <text>该车未匹配销管费用,不建议投保!</text>
  192. <u-icon name="chat-fill" color="#ff0000" size="20"
  193. @click="discountErrorMessageMsg(totalitem.result.feeNoDescription,totalitem.nameSimple)"></u-icon>
  194. </view>
  195. <view class="dis a-c f-wrap price">
  196. <text
  197. v-if="totalitem.result.costs.ciPremium">交强险:¥{{totalitem.result.costs.ciPremium}}</text>
  198. <text
  199. v-if="totalitem.result.costs.biPremium">商业险:¥{{totalitem.result.costs.biPremium}}</text>
  200. <text
  201. v-if="totalitem.result.costs.vvTax">车船税:¥{{totalitem.result.costs.vvTax}}</text>
  202. <text
  203. v-if="totalitem.result.costs.niPremium">驾意险:¥{{totalitem.result.costs.niPremium}}</text>
  204. </view>
  205. <view class="dis a-c f-wrap price" style="font-size: 20rpx;color: #FF4D4D;"
  206. v-if="totalitem.result.feeDisplay">
  207. <text>{{totalitem.result.feeView?'掌柜科技币:【':'优惠金额:【'}}
  208. <text
  209. v-if="totalitem.result.jqPremium">交强险:{{totalitem.result.jqExportFee?totalitem.result.jqExportFee:'无'}}</text>
  210. <text
  211. v-if="totalitem.result.syPremium">商业险:{{totalitem.result.syExportFee?totalitem.result.syExportFee:'无'}}</text>
  212. <text
  213. v-if="totalitem.result.jyPremium">驾意险:{{totalitem.result.noExportFee?totalitem.result.noExportFee:"无"}}</text>
  214. 】</text>
  215. </view>
  216. <view class="dis a-c j-s ">
  217. <view class="dis f-c time">
  218. <text
  219. v-if="totalitem.result.ciRiskInfoVo && totalitem.result.ciRiskInfoVo.startDate">交强起保时间:{{totalitem.result.ciRiskInfoVo.startDate}}
  220. </text>
  221. <text
  222. v-if="totalitem.result.ciRiskInfoVo && totalitem.result.ciRiskInfoVo.endDate">交强终保时间:{{totalitem.result.ciRiskInfoVo.endDate}}
  223. </text>
  224. <text
  225. v-if="totalitem.result.biRiskInfoVo && totalitem.result.biRiskInfoVo.startDate">商业起保时间:{{totalitem.result.biRiskInfoVo.startDate}}
  226. </text>
  227. <text
  228. v-if=" totalitem.result.biRiskInfoVo && totalitem.result.biRiskInfoVo.endDate">商业终保时间:{{totalitem.result.biRiskInfoVo.endDate}}
  229. </text>
  230. </view>
  231. <image src="/static/image/car-insure/Group30.png" mode=""
  232. style="width: 14px;height: 14px;" @click="syncData(totalitem.result)">
  233. </image>
  234. </view>
  235. <view class="dis a-c f-wrap time">
  236. <text v-if="totalitem.nameSimple == '永诚财险'">光博分:{{ totalitem.result.scoreVo.score ?
  237. totalitem.result.scoreVo.score : '无' }}</text>
  238. <text v-else>评分:{{ totalitem.result.scoreVo.score?
  239. totalitem.result.scoreVo.score : '无' }}</text>
  240. <text v-if="totalitem.result.scoreVo.jqScore">交强类型评分:{{ totalitem.result.scoreVo.jqScore ?
  241. totalitem.result.scoreVo.jqScore : '无' }}</text>
  242. <text v-if="totalitem.result.scoreVo.syScore">商业类型评分:{{ totalitem.result.scoreVo.syScore ?
  243. totalitem.result.scoreVo.syScore : '无' }}</text>
  244. <text v-if="totalitem.result.scoreVo.lossRation">总赔付率:{{ totalitem.result.scoreVo.lossRation ?
  245. totalitem.result.scoreVo.lossRation : '无' }}</text>
  246. <text v-if="totalitem.result.scoreVo.jqLossRation">交强赔付率:{{ totalitem.result.scoreVo.jqLossRation ?
  247. totalitem.result.scoreVo.jqLossRation : '无' }}</text>
  248. <text v-if="totalitem.result.scoreVo.syLossRation">商业赔付率:{{ totalitem.result.scoreVo.syLossRation ?
  249. totalitem.result.scoreVo.syLossRation : '无' }}</text>
  250. <text
  251. v-if="totalitem.nameSimple == '紫金财险'">鼎然-车辆风险评分:{{totalitem.result.scoreVo.ubiPredictedInfoScore ?
  252. totalitem.result.scoreVo.ubiPredictedInfoScore : '无'}}</text>
  253. <text v-if="totalitem.result.scoreVo.jqRenewal">交强续保:{{ totalitem.result.scoreVo.jqRenewal ?
  254. totalitem.result.scoreVo.jqRenewal : '无' }}</text>
  255. <text v-if="totalitem.result.scoreVo.syRenewal">商业续保:{{ totalitem.result.scoreVo.syRenewal ?
  256. totalitem.result.scoreVo.syRenewal : '无' }}</text>
  257. <text v-if="totalitem.result.scoreVo.jqClaims">交强出险次数:{{ totalitem.result.scoreVo.jqClaims ?
  258. totalitem.result.scoreVo.jqClaims : '无' }}</text>
  259. <text v-if="totalitem.result.scoreVo.syClaims">商业出险次数:{{ totalitem.result.scoreVo.syClaims ?
  260. totalitem.result.scoreVo.syClaims : '无' }}</text>
  261. </view>
  262. <template v-if="totalitem.result.iszdj !=null && totalitem.result.iszdj!=''">
  263. <text v-if="totalitem.result.iszdj==0" style="color: red;">假单交</text>
  264. <text v-if="totalitem.result.iszdj==1" style="color: red;">真单交</text>
  265. </template>
  266. <view class="dis j-end f-c lastyear">
  267. <view class="dis a-c j-end ">
  268. <view class=" left dis j-c a-c" v-if="totalitem.lastYearMsg"
  269. @click="YearMsg(totalitem.lastYearMsg,totalitem.nameSimple)">
  270. <text>上年信息</text>
  271. </view>
  272. <view class=" right ml-2 dis j-c a-c" v-if='totalitem.result.predictInfo'
  273. @click="preUnderwriting(totalitem.result.predictInfo)">
  274. <text>预核保信息</text>
  275. </view>
  276. </view>
  277. <view class="dis a-c j-end mt-1">
  278. <u-button class="ml-2" type="error" size="mini"
  279. :custom-style="{borderRadius:'2px'}"
  280. style="background: linear-gradient( 90deg, #10D8D8 0%, #00CBE6 100%); border: none;"
  281. @click="resubmitImage(totalitem.result.order.quoteNo)">补传影像</u-button>
  282. <u-button class="ml-2" type="error" size="mini"
  283. :custom-style="{borderRadius:'2px'}"
  284. style="background: linear-gradient( 90deg, #FF4D4D 0%, #FF784D 100%); border: none;"
  285. @click="bjdpreview(totalitem.result.ordersNo)">报价单</u-button>
  286. <u-button class="ml-2" type="primary" size="mini"
  287. :custom-style="{borderRadius:'2px'}"
  288. style="background: linear-gradient( 90deg, #FF9415 0%, #FFB525 100%); border: none;"
  289. @click="querydetial(totalitem.result.ordersNo,totalitem.cnName)">查看详情</u-button>
  290. <!-- <u-button class="ml-2" type="primary" size="mini"
  291. v-if="order.orderStatus==1" :custom-style="{borderRadius:'2px'}"
  292. style="background: linear-gradient( 90deg, #0052FF 0%, #0D8BFF 100%);"
  293. @click="submitUnderwriting(totalitem.result.ordersNo,totalitem.result.apiType ,totalitem.nameSimple)">提交核保</u-button> -->
  294. </view>
  295. </view>
  296. </view>
  297. </view>
  298. </view>
  299. </template>
  300. </block>
  301. </view>
  302. </view>
  303. <view class="footer-btn dis j-s a-c">
  304. <u-button type="primary" style="background:#E6EEFF;color: #0052FF; border: none;" @tap="back"
  305. :hairline="false">上一步</u-button>
  306. <u-button type="primary" style="background:#FF9900; border: none;" @tap="tempSave">暂存</u-button>
  307. <u-button type="primary" style="background:#C9C9C9; border: none;" @click="priceComparison"
  308. v-if="comparableQuantity<2 ">查最优</u-button>
  309. <u-button type="primary" style="background:#1DB1E0; border: none;" @click="priceComparison1"
  310. v-if="comparableQuantity>=2 && selectedCount<2">查最优</u-button>
  311. <u-button type="primary" class="priceComparison" @click="priceComparison2" v-if="selectedCount>=2"
  312. style="border: none;">查最优</u-button>
  313. <u-button type="primary" style="background:#0052FF;border: none;" @tap="toNext">多家报价</u-button>
  314. </view>
  315. <!-- 安盛驾意险弹框 -->
  316. <u-modal :show="anshengPopupshow" title="驾意险" :showConfirmButton="false" :closeOnClickOverlay="true"
  317. @close="anshengPopupshow=false">
  318. <view class="slot-content p-2">
  319. <u-radio-group size="30" wrap>
  320. <u-radio style="margin: 4px 0;flex: auto;" label-size="30" @change="ASradioChange" shape="square"
  321. v-for="(item, index) in anshengInsuranceData" :key="index" :name="item.projectCode">
  322. {{item.alias}}
  323. </u-radio>
  324. </u-radio-group>
  325. </view>
  326. </u-modal>
  327. <!-- 人寿驾意险弹框 -->
  328. <u-modal :show="renshouPopupshow" title="驾意险" :showConfirmButton="false" :closeOnClickOverlay="true"
  329. @close="renshouPopupshow=false">
  330. <view class="slot-content p-2">
  331. <u-radio-group size="30" wrap>
  332. <u-radio style="margin: 4px 0; align-items: flex-start;" label-size="30" shape="square"
  333. @change="RSradioChange" v-for="(item, index) in renshouInsuranceData" :key="index"
  334. :name="item.projectCode">
  335. {{item.alias}}
  336. </u-radio>
  337. </u-radio-group>
  338. </view>
  339. </u-modal>
  340. <!-- 中煤驾意险弹框 -->
  341. <u-modal :show="zhongmeiPopupshow" title="驾意险" :showConfirmButton="false" :closeOnClickOverlay="true"
  342. @close="zhongmeiPopupshow=false">
  343. <view class="slot-content p-2">
  344. <u-radio-group size="30" wrap>
  345. <u-radio style="margin: 4px 0;" label-size="30" @change="ZMradioChange" shape="square"
  346. v-for="(item, index) in zhongmeiInsuranceData" :key="index" :name="item.projectCode">
  347. {{item.alias}}
  348. </u-radio>
  349. </u-radio-group>
  350. </view>
  351. </u-modal>
  352. <!-- 恒邦驾意险弹框 -->
  353. <u-modal :show="hengbangPopupshow" title="驾意险" :showConfirmButton="false" :closeOnClickOverlay="true"
  354. @close="hengbangPopupshow=false">
  355. <view class="slot-content p-2">
  356. <u-radio-group size="30" wrap>
  357. <u-radio style="margin: 4px 0;flex: auto;" label-size="30" @change="HBradioChange" shape="square"
  358. v-for="(item, index) in hengbangInsuranceData" :key="index" :name="item.projectCode">
  359. {{item.alias}}
  360. </u-radio>
  361. </u-radio-group>
  362. </view>
  363. </u-modal>
  364. <!-- 众安驾意险弹框 -->
  365. <u-modal :show="zhonganPopupshow" title="驾意险" :showConfirmButton="false" :closeOnClickOverlay="true"
  366. @close="zhonganPopupshow=false">
  367. <view class="slot-content p-2">
  368. <u-radio-group size="30" wrap>
  369. <u-radio style="margin: 4px 0;flex: auto;" label-size="30" @change="ZAradioChange" shape="square"
  370. v-for="(item, index) in zhonganInsuranceData" :key="index" :name="item.projectCode">
  371. {{item.alias}}
  372. </u-radio>
  373. </u-radio-group>
  374. </view>
  375. </u-modal>
  376. <!-- 华农驾意险弹框 -->
  377. <u-modal :show="huanongPopupshow" title="驾意险" :showConfirmButton="false" :closeOnClickOverlay="true"
  378. @close="huanongPopupshow=false">
  379. <view class="slot-content p-2">
  380. <u-radio-group size="30" wrap>
  381. <u-radio style="margin: 4px 0;flex: auto;" label-size="30" @change="HNradioChange" shape="square"
  382. v-for="(item, index) in huanongInsuranceData" :key="index" :name="item.projectCode">
  383. {{item.alias}}
  384. </u-radio>
  385. </u-radio-group>
  386. </view>
  387. </u-modal>
  388. <!-- 泰康驾意险弹框 -->
  389. <u-modal :show="taikangPopupshow" title="驾意险" :showConfirmButton="false" :closeOnClickOverlay="true"
  390. @close="taikangPopupshow=false">
  391. <view class="slot-content p-2">
  392. <u-radio-group size="30" wrap>
  393. <u-radio style="margin: 4px 0;flex: auto;" label-size="30" @change="TkradioChange" shape="square"
  394. v-for="(item, index) in taikangInsuranceData" :key="index" :name="item.projectCode">
  395. {{item.alias}}
  396. </u-radio>
  397. </u-radio-group>
  398. </view>
  399. </u-modal>
  400. <u-modal :show="yongchengPopupshow" title="驾意险" :showConfirmButton="false" :closeOnClickOverlay="true"
  401. @close="yongchengPopupshow=false">
  402. <view class="slot-content p-2">
  403. <u-radio-group size="30" wrap>
  404. <u-radio style="margin: 4px 0;flex: auto;" label-size="30" @change="YCradioChange" shape="square"
  405. v-for="(item, index) in yongchengInsuranceData" :key="index" :name="item.projectCode">
  406. {{item.alias}}
  407. </u-radio>
  408. </u-radio-group>
  409. </view>
  410. </u-modal>
  411. <!-- 太平驾意险弹框 -->
  412. <u-modal :show="taipingPopupshow" title="驾意险" :showConfirmButton="false" :closeOnClickOverlay="true"
  413. @close="taipingPopupshow=false">
  414. <view class="slot-content p-2">
  415. <u-radio-group size="30" wrap>
  416. <u-radio style="margin: 4px 0;flex: auto;" label-size="30" @change="TPradioChange" shape="square"
  417. v-for="(item, index) in taipingInsuranceData" :key="index" :name="item.projectCode">
  418. {{item.alias}}
  419. </u-radio>
  420. </u-radio-group>
  421. </view>
  422. </u-modal>
  423. <!-- 渤海驾意险弹框 -->
  424. <u-modal :show="bohaiPopupshow" title="驾意险" :showConfirmButton="false" :closeOnClickOverlay="true"
  425. @close="bohaiPopupshow=false">
  426. <view class="slot-content p-2">
  427. <u-radio-group size="30" style="" wrap>
  428. <u-radio style="margin: 4px 0;flex: auto;" label-size="30" @change="BHradioChange" shape="square"
  429. v-for="(item, index) in bohaiInsuranceData" :key="index" :name="item.projectCode">
  430. {{item.alias}}
  431. </u-radio>
  432. </u-radio-group>
  433. </view>
  434. </u-modal>
  435. <u-modal :show="priceComparisonShow" title="比价提醒" :showCancelButton="false" @confirm="priceComparisonShow=false"
  436. :closeOnClickOverlay="true" @close="priceComparisonShow=false">
  437. <view class="slot-content dis j-c a-c ">
  438. <view class="p-2">
  439. <text>可选择有报价结果的公司进行比价,最少选择两家,最多可选择三家</text>
  440. </view>
  441. </view>
  442. </u-modal>
  443. <!-- 国任特约 -->
  444. <u-popup :show="guoRencontributingshow" mode="bottom" round="20rpx" :closeable="true"
  445. :closeOnClickOverlay="true" @close="guoRencontributingshow=false">
  446. <view class="ZJcheckboxGroup dis f-c">
  447. <view class="headers dis a-start f-c mb-2">
  448. <text class="title">调整特约</text>
  449. <u-tabs :list="list" :current="GRcurrent" @change="change($event,'GRcurrent')"
  450. :activeStyle="{color:'#06A8DC'}" :inactiveStyle="{color:'#81869B'}"
  451. style="background: transparent;"></u-tabs>
  452. </view>
  453. <scroll-view scroll-y="true" class="scolcentent mt-2 ">
  454. <u-checkbox-group v-show="GRcurrent==0 && ['0330','0330034002','0330034001'].includes(productId)"
  455. @change="guoRencontributingChangejq" placement="column" v-model="GRspecialAgreement"
  456. class="mb-4">
  457. <u-checkbox class="p-1" v-for="(item, index) in guoRenSpecialAgreementDatajq" :key="index"
  458. :name="item.clauseCode" :label="item.clauseName" activeColor="#06A8DC">
  459. </u-checkbox>
  460. </u-checkbox-group>
  461. <u-checkbox-group v-show="GRcurrent==1 && ['034001','0330034002','0330034001'].includes(productId)"
  462. @change="guoRencontributingChangesy" placement="column" v-model="GRspecialAgreement1"
  463. class="mb-4">
  464. <u-checkbox class="p-1" v-for="(item, index) in guoRenSpecialAgreementDatasy" :key="index"
  465. :name="item.clauseCode" :label="item.clauseName" activeColor="#06A8DC">
  466. </u-checkbox>
  467. </u-checkbox-group>
  468. </scroll-view>
  469. <view class="operateBtn dis ">
  470. <view class="cancel dis a-c j-c" @click="guoRencontributingshow=false">
  471. 取消
  472. </view>
  473. <view class="confirm dis a-c j-c" @click="guoRencontributingshow=false">
  474. 确定
  475. </view>
  476. </view>
  477. </view>
  478. </u-popup>
  479. <!-- 紫金特约 -->
  480. <u-popup :show="zijincontributingshow" mode="bottom" round="20rpx" :closeable="true" :closeOnClickOverlay="true"
  481. @close="zijincontributingshow=false">
  482. <view class="ZJcheckboxGroup dis f-c">
  483. <view class="headers dis a-start f-c mb-2">
  484. <text class="title">调整特约</text>
  485. <u-tabs :list="list" :current="ZJcurrent" @change="change($event,'ZJcurrent')"
  486. :activeStyle="{color:'#06A8DC'}" :inactiveStyle="{color:'#81869B'}"
  487. style="background: transparent;"></u-tabs>
  488. </view>
  489. <view class="hint dis a-c ">
  490. <image src="../../static/image/car-insure/tishi.png" mode=""></image>
  491. <text>带有输入框的条款为可编辑内容,含*号内容可替换!</text>
  492. </view>
  493. <scroll-view scroll-y="true" class="scolcentent mt-2">
  494. <u-checkbox-group v-show="ZJcurrent==0 && ['0330','0330034002','0330034001'].includes(productId)"
  495. v-model="ZJspecialAgreement" @change="ziJincontributingChangejq" placement="column"
  496. class="mb-4">
  497. <u-checkbox class="p-1" v-for="(item, index) in ziJinengageListDatajq" :key="index"
  498. :name="item.clauseCode" :label="item.clauseName" activeColor="#06A8DC">
  499. </u-checkbox>
  500. </u-checkbox-group>
  501. <u-checkbox-group v-show="ZJcurrent==1 && ['034001','0330034002','0330034001'].includes(productId)"
  502. v-model="ZJspecialAgreement1" @change="ziJincontributingChangesy" placement="column"
  503. class="mb-4">
  504. <u-checkbox class="p-1" v-for="(item, index) in ziJinengageListDatasy" :key="index"
  505. :name="item.clauseCode" :label="item.clauseName" activeColor="#06A8DC">
  506. </u-checkbox>
  507. </u-checkbox-group>
  508. </scroll-view>
  509. <view class="operateBtn dis ">
  510. <view class="cancel dis a-c j-c" @click="zijincontributingshow=false">
  511. 取消
  512. </view>
  513. <view class="confirm dis a-c j-c" @click="zijincontributingshow=false">
  514. 确定
  515. </view>
  516. </view>
  517. </view>
  518. </u-popup>
  519. <!-- 华泰特约 -->
  520. <u-popup :show="huataicontributingshow" mode="bottom" round="20rpx" :closeable="true"
  521. :closeOnClickOverlay="true" @close="huataicontributingshow=false">
  522. <view class="ZJcheckboxGroup dis f-c">
  523. <view class="headers dis a-start f-c mb-2">
  524. <text class="title">调整特约</text>
  525. <u-tabs :list="list" :current="HTcurrent" @change="change($event,'HTcurrent')"
  526. :activeStyle="{color:'#06A8DC'}" :inactiveStyle="{color:'#81869B'}"
  527. style="background: transparent;"></u-tabs>
  528. </view>
  529. <view class="hint dis a-c ">
  530. <image src="../../static/image/car-insure/tishi.png" mode=""></image>
  531. <text>带有输入框的条款为可编辑内容,含x号内容可替换!</text>
  532. </view>
  533. <scroll-view scroll-y="true" class="scolcentent mt-2">
  534. <u-checkbox-group v-show="HTcurrent==0 && ['0330','0330034002','0330034001'].includes(productId)"
  535. @change="huaTaicontributingChangejq" class="mb-4">
  536. <u-checkbox class="p-1" v-for="(item, index) in huaTaiengageListDatajq" :key="index"
  537. :name="item.clauseCode" :label="item.clauseName" activeColor="#06A8DC">
  538. </u-checkbox>
  539. </u-checkbox-group>
  540. <u-checkbox-group v-show="HTcurrent==1 && ['034001','0330034002','0330034001'].includes(productId)"
  541. @change="huaTaicontributingChangesy" class="mb-4">
  542. <u-checkbox class="p-1" v-for="(item, index) in huaTaiengageListDatasy" :key="index"
  543. :name="item.clauseCode" :label="item.clauseName" activeColor="#06A8DC">
  544. </u-checkbox>
  545. </u-checkbox-group>
  546. </scroll-view>
  547. <view class="operateBtn dis ">
  548. <view class="cancel dis a-c j-c" @click="huataicontributingshow=false">
  549. 取消
  550. </view>
  551. <view class="confirm dis a-c j-c" @click="huataicontributingshow=false">
  552. 确定
  553. </view>
  554. </view>
  555. </view>
  556. </u-popup>
  557. <!-- 诚泰系数 -->
  558. <u-popup :show="CTcoefficientShow" mode="bottom" round="20rpx" :closeable="true">
  559. <view class="ZJcheckboxGroup dis f-c">
  560. <view class="headers dis a-start f-c mb-2">
  561. <text class="title">调整系数</text>
  562. </view>
  563. <scroll-view scroll-y="true" class="scolcentent mt-2">
  564. <view class="dis j-s f-c" style="width: 90%;">
  565. <text>扩展内容</text>
  566. <view class="dis a-c j-s">
  567. <text>自主定价系数</text>
  568. <u-input type="number" v-model="CTcoefficientForm.pricingCoefficient"
  569. :custom-style="{textAlign:'right',width:'50px',marginRight:'10px'}"
  570. placeholder="请输入"></u-input>
  571. </view>
  572. <view class="dis a-c j-s">
  573. <text>初始折扣</text>
  574. <u-input type="number" v-model="CTcoefficientForm.initialProposalDiscount" disabled
  575. :custom-style="{textAlign:'right',width:'50px',marginRight:'10px'}"
  576. placeholder="请输入"></u-input>
  577. </view>
  578. <view class="dis a-c j-s">
  579. <text>商业险折扣</text>
  580. <u-input type="number" v-model="CTcoefficientForm.expectedDiscount"
  581. :custom-style="{textAlign:'right',width:'50px',marginRight:'10px'}"
  582. placeholder="请输入"></u-input>
  583. </view>
  584. <view class="dis a-c j-s">
  585. <text>是否验车</text>
  586. <u-switch v-model="isInspectchange" active-color="#0052FF" inactive-color="#eee"
  587. size='30'></u-switch>
  588. </view>
  589. </view>
  590. </scroll-view>
  591. <view class="operateBtn dis ">
  592. <view class="cancel dis a-c j-c" @click="CTcoefficientShow=false">
  593. 取消
  594. </view>
  595. <view class="confirm dis a-c j-c" @click="CTcoefficientSubmit">
  596. 确定
  597. </view>
  598. </view>
  599. </view>
  600. </u-popup>
  601. <!-- 紫金系数 -->
  602. <u-popup :show="ZJcoefficientShow" mode="bottom" round="20rpx" :closeable="true">
  603. <view class="ZJcheckboxGroup dis f-c">
  604. <view class="headers dis a-start f-c mb-2">
  605. <text class="title">调整系数</text>
  606. </view>
  607. <scroll-view scroll-y="true" class="scolcentent mt-2">
  608. <view class="dis j-s f-c" style="width: 90%;">
  609. <text>扩展内容</text>
  610. <view class="dis a-c j-end">
  611. <text>自主定价系数</text>
  612. <u-input type="number" v-model="ZJcoefficientForm.coefficient"
  613. :custom-style="{textAlign:'right',width:'50px',marginRight:'10px'}"
  614. placeholder="请输入"></u-input>
  615. </view>
  616. </view>
  617. </scroll-view>
  618. <view class="operateBtn dis ">
  619. <view class="cancel dis a-c j-c" @click="ZJcoefficientShow=false">
  620. 取消
  621. </view>
  622. <view class="confirm dis a-c j-c" @click="ZJcoefficientSubmit">
  623. 确定
  624. </view>
  625. </view>
  626. </view>
  627. </u-popup>
  628. <u-modal :show="guoRenPopupshow" title="驾意险"
  629. :title-style="{fontWeight: 'bold',borderBottom:'1px solid #f2f2f2',padding:'10px'}"
  630. :scroll-height="{height: '300px'}" :show-confirm-button="false" mask-close-able>
  631. <view class="slot-content p-2">
  632. <u-radio-group size="30" wrap>
  633. <u-radio style="margin: 4px 0;flex: auto;" label-size="30" @change="GRradioChange" shape="square"
  634. v-for="(item, index) in guoRenInsuranceData" :key="index" :name="item.projectCode">
  635. {{item.alias}}
  636. </u-radio>
  637. </u-radio-group>
  638. </view>
  639. </u-modal>
  640. <u-modal :show="dajiaPopupshow" title="驾意险" :showConfirmButton="false" mask-close-able
  641. @close="dajiaPopupshow=false">
  642. <view class="slot-content p-2">
  643. <u-radio-group size="30" placement="column">
  644. <u-radio style="margin: 4px 0;flex: auto;" label-size="30" @change="DJradioChange" shape="square"
  645. v-for="(item, index) in dajiaInsuranceData" :key="index" :name="item.projectCode">
  646. {{item.alias}}
  647. </u-radio>
  648. </u-radio-group>
  649. </view>
  650. </u-modal>
  651. <u-modal :show="Generateshow" content="是否生成新的订单?" :showCancelButton="true" @close="Generateshow=false"
  652. @confirm="GenerateModalConfirm"></u-modal>
  653. <u-modal :show="preUnderwritingshow" title="预核保信息" @close="preUnderwritingshow=false">
  654. <view class="" style="padding: 10px;overflow-y:auto;height: 400px;">
  655. <view v-for="(item,index) in RSpreUnderwritingList" :key="index">
  656. <view class="dis f-c " style="background-color: #FFEEEE;">
  657. <text style="font-weight: bold;">审核意见</text>
  658. <text style="font-size: 12px;">{{item.opinion}}</text>
  659. </view>
  660. <view class="dis f-c" style="background-color: #FFEEEE;">
  661. <text style="font-weight: bold;">备注</text>
  662. <text style="font-size: 12px;">{{item.description}}</text>
  663. </view>
  664. </view>
  665. </view>
  666. </u-modal>
  667. <!-- 优惠信息弹窗 -->
  668. <u-popup :show="discountInfoPopup" mode="center" round="12rpx">
  669. <view class="">
  670. <view class="p-2 dis j-c a-c">
  671. <text class="font-weight">{{discountInfoPopupTitle}}优惠信息</text>
  672. </view>
  673. <view style="padding: 0 20px;">
  674. <scroll-view :scroll-top="scrollTop" scroll-y="true" class="discountInfoscroll">
  675. <rich-text :nodes="discountInfoPopupContent"></rich-text>
  676. </scroll-view>
  677. </view>
  678. <view class="PlanPopup-btn dis a-c j-c">
  679. <u-button shape="circle" size="medium" @click="discountInfoPopup=false">取消</u-button>
  680. </view>
  681. </view>
  682. </u-popup>
  683. <u-modal :show="InsureGuidePopup" confirmColor="#FF5600" :closeOnClickOverlay="true"
  684. @confirm="InsureGuidePopup=false" @close="InsureGuidePopup=false">
  685. <view class="">
  686. <image src="/static/image/car-insure/InsureGuide.png" mode="" style="width: 100%;height: 40px;"></image>
  687. <scroll-view class="scrollBar" scroll-y="true"
  688. style="max-height: 500px; padding: 10px; box-sizing: border-box;">
  689. <view class="dis a-c ">
  690. <image src="../../static/image/car-insure/duigou1.png" mode=""
  691. style="width: 16px;height: 16px;">
  692. </image>
  693. <text class="font-weight"
  694. style="font-size: 14px;color: #FF5600;font-family: Source Han Sans SC, Source Han Sans SC;">{{insGuideTitle}}-{{productName}}</text>
  695. </view>
  696. <rich-text :nodes="insGuide"></rich-text>
  697. </scroll-view>
  698. </view>
  699. </u-modal>
  700. <!-- 确认核保弹窗 -->
  701. <u-modal :show="auditNextShow" content="是否确认提交核保" @confirm="auditNextconfirm" :showCancelButton="true"
  702. :asyncClose="true">
  703. </u-modal>
  704. <!-- 核保提示弹窗 -->
  705. <u-modal :show="underwriteShow" :title="underwriteTitle" :confirmText="confirmText" :cancelText="cancelText"
  706. :showCancelButton="true" @confirm="underwriteconfirm" @cancel="underwritecancel">
  707. <view class="slot-content">
  708. <scroll-view class="scrollBar" scroll-y="true"
  709. style="max-height: 300px; padding: 10px 20px; box-sizing: border-box;">
  710. <view class="content">
  711. <rich-text :nodes="underwriteMsg"></rich-text>
  712. </view>
  713. </scroll-view>
  714. </view>
  715. </u-modal>
  716. <!-- 华泰特约 -->
  717. <u-popup :show="resubmitDocumentsShow" mode="bottom" round="20rpx" :closeable="true"
  718. @close='resubmitDocumentsShow=false'>
  719. <view class="ZJcheckboxGroup dis f-c">
  720. <view class="headers dis a-start f-c mb-2"
  721. :style="{backgroundImage: `url('../../static/image/car-insure/buluimgheader.png')`,borderBottom:'none'}">
  722. <text class="title">补录影像</text>
  723. <u-tabs :list="imagelist" :is-scroll="false" :current="imagecurrent" @change="imagechange"
  724. active-color="#06A8DC" inactive-color="#81869B"
  725. style="background: transparent;width: 200px;"></u-tabs>
  726. </view>
  727. <scroll-view scroll-y="true" class="scolcentent mt-2"
  728. style=" padding: 0 20rpx 0; box-sizing: border-box;">
  729. <view class="content">
  730. <view v-show="imagecurrent==0">
  731. <imageDataVue @previewImage="previewImage" @delCheckImage="delCheckImage"
  732. :imageCollection="imageCollection" @chooseImage="chooseImage" :isUploadEnabled="true">
  733. </imageDataVue>
  734. </view>
  735. </view>
  736. </scroll-view>
  737. <view class="operateBtn1 dis a-c j-c">
  738. <view class="cancel dis a-c j-c" @click="resubmitDocumentsShow=false">
  739. 取消
  740. </view>
  741. <view class="confirm dis a-c j-c" @click="resubmitImageconfirm">
  742. 确定
  743. </view>
  744. </view>
  745. </view>
  746. </u-popup>
  747. <u-datetime-picker :show="jqstartShow" v-model="jqstartvalue" mode="datetime" :formatter="formatter"
  748. @cancel="jqstartShow=false" @close="jqstartShow=false" :closeOnClickOverlay="true" @confirm="jqstartconfirm"
  749. confirmText="确定"></u-datetime-picker>
  750. <u-datetime-picker :show="jqendShow" v-model="jqendvalue" mode="datetime" :formatter="formatter"
  751. @cancel="jqendShow=false" @close="jqendShow=false" :closeOnClickOverlay="true" @confirm="jqendconfirm"
  752. confirmText="确定"></u-datetime-picker>
  753. <u-datetime-picker :show="systartShow" v-model="systartvalue" mode="datetime" :formatter="formatter"
  754. @cancel="systartShow=false" @close="systartShow=false" :closeOnClickOverlay="true" @confirm="systartconfirm"
  755. confirmText="确定"></u-datetime-picker>
  756. <u-datetime-picker :show="syendShow" v-model="syendvalue" mode="datetime" :formatter="formatter"
  757. @cancel="syendShow=false" @close="syendShow=false" :closeOnClickOverlay="true" @confirm="syendconfirm"
  758. confirmText="确定"></u-datetime-picker>
  759. <!-- <u-datetime-picker :show="transferDateShow" v-model="transferDatevalue" mode="datetime" :formatter="formatter"
  760. @cancel="transferDateShow=false" @close="transferDateShow=false" :closeOnClickOverlay="true"
  761. @confirm="transferDateconfirm" confirmText="确定"></u-datetime-picker> -->
  762. </view>
  763. </template>
  764. <script>
  765. import {
  766. mapState
  767. } from "vuex"
  768. import imageDataVue from './modules/imageData.vue';
  769. export default {
  770. components: {
  771. imageDataVue
  772. },
  773. watch: {
  774. comparableQuantity: {
  775. handler(val) {},
  776. },
  777. },
  778. computed: {
  779. ...mapState(['userInfo', 'token', 'quotationType']),
  780. guoRenSpecialAgreementDatajq() {
  781. return this.guoRenSpecialAgreementData.filter(item => item.riskCode === "0507");
  782. },
  783. guoRenSpecialAgreementDatasy() {
  784. return this.guoRenSpecialAgreementData.filter(item => item.riskCode === "0510");
  785. },
  786. ziJinengageListDatajq() {
  787. return this.ziJinengageListData.filter(item => item.riskCode === "0507");
  788. },
  789. ziJinengageListDatasy() {
  790. return this.ziJinengageListData.filter(item => item.riskCode === "0510");
  791. },
  792. huaTaiengageListDatajq() {
  793. return this.huaTaiengageListData.filter(item => item.riskCode === "0507");
  794. },
  795. huaTaiengageListDatasy() {
  796. return this.huaTaiengageListData.filter(item => item.riskCode === "0510");
  797. }
  798. },
  799. // 监听导航栏的按钮
  800. onNavigationBarButtonTap(e) {
  801. if (e.index == 0) {
  802. this.navigate({
  803. url: '/pages/index/index'
  804. }, "switchTab", true);
  805. }
  806. },
  807. data() {
  808. return {
  809. jqstartvalue: Number(new Date()), //证件起期
  810. jqendvalue: Number(new Date()), //证件起期
  811. systartvalue: Number(new Date()), //证件起期
  812. syendvalue: Number(new Date()), //证件起期
  813. transferDatevalue: Number(new Date()), //证件起期
  814. order: {},
  815. costs: {}, //价格
  816. accidentalDrivings: {}, //驾意险
  817. imagelist: [{
  818. name: '车辆/人员信息'
  819. },
  820. // {
  821. // name: '验车照'
  822. // }
  823. ],
  824. imagecurrent: 0,
  825. //特约分类
  826. list: [{
  827. name: '交强'
  828. }, {
  829. name: '商业'
  830. }],
  831. ZJcurrent: 0, //紫金特约
  832. HTcurrent: 0, //华泰特约
  833. GRcurrent: 0, //国任特约
  834. GRspecialAgreement: [],
  835. GRspecialAgreement1: [],
  836. HTspecialAgreement: [],
  837. HTspecialAgreement1: [],
  838. ZJspecialAgreement: [],
  839. ZJspecialAgreement1: [],
  840. //特约分类
  841. CTcoefficientForm: {
  842. initialProposalDiscount: "", //初始折扣
  843. expectedDiscount: "", //期望折扣
  844. pricingCoefficient: "", //自主定价系数
  845. },
  846. ZJcoefficientForm: {
  847. coefficient: null, //系数
  848. },
  849. CTcoefficientIndex: "",
  850. ZJcoefficientIndex: "",
  851. CTcoefficientShow: false, //诚泰系数
  852. ZJcoefficientShow: false, //紫金系数
  853. previewImgs: [],
  854. carImageListId: [],
  855. ownerImageListId: [],
  856. policyHolderImageListId: [],
  857. insuredPersonImageListId: [],
  858. imageCollection: {}, //影像集合
  859. imgList1: [],
  860. imgList2: [],
  861. imgList3: [],
  862. imgList4: [],
  863. imgList5: [],
  864. imgList6: [],
  865. imgList7: [],
  866. imgList8: [],
  867. resubmitDocumentsShow: false,
  868. insuranceCompanyName: "", //保险公司简称
  869. companyId: "", //子订单ID
  870. apiType: "", //区分核保接口请求类型
  871. auditNextShow: false, //核保确认弹窗
  872. //核保提示
  873. underwriteShow: false,
  874. underwriteTitle: "订单自核成功", //核保状态
  875. confirmText: "立即缴费", //核保提示自定义按钮
  876. cancelText: "暂不缴费",
  877. underwriteMsg: "",
  878. //核保提示
  879. /* 优惠信息弹窗*/
  880. discountInfoPopup: false,
  881. discountInfoPopupTitle: "",
  882. discountInfoPopupContent: ``,
  883. /* 优惠信息弹窗*/
  884. /* 投保指引*/
  885. insGuide: "",
  886. insGuideTitle: "",
  887. /* 投保指引*/
  888. guoRenSpecialAgreementData: [], //国任特约list
  889. ziJinengageListData: [], //紫金特约list
  890. huaTaiengageListData: [], //华泰特约list
  891. guoRenSpecialAgreementVojq: [],
  892. guoRenSpecialAgreementVosy: [],
  893. huaTaiSpecialAgreementVojq: [],
  894. huaTaiSpecialAgreementVosy: [],
  895. ziJinSpecialAgreementVojq: [],
  896. ziJinSpecialAgreementVosy: [],
  897. preUnderwritingshow: false, //预核保信息弹窗
  898. Generateshow: false,
  899. guoRencontributingshow: false, //国任特约弹窗
  900. zijincontributingshow: false, //紫金特约弹窗
  901. huataicontributingshow: false, //华泰特约弹窗
  902. priceComparisonShow: false, //比价弹窗
  903. comparableQuantity: 0, //报价成功总数
  904. selectedCount: 0, //比价勾选数量
  905. kindInfoVo: [], //险种大类
  906. ciRiskInfoVo: {
  907. amount: 0,
  908. endDate: '',
  909. instantFlag: false,
  910. premium: 0,
  911. riskCode: "0507",
  912. startDate: '',
  913. },
  914. biRiskInfoVo: {
  915. amount: 0,
  916. endDate: '',
  917. instantFlag: false,
  918. premium: 0,
  919. riskCode: "0510",
  920. startDate: '',
  921. },
  922. model: {
  923. taxRelifFlag: "正常交税",
  924. taxpayerIdentifier: "身份证",
  925. relifReason: "",
  926. taxPaidAreaCode: "",
  927. },
  928. //车船税form
  929. vehicleAndVesselTaxVo: {
  930. taxRelifFlag: "1", //类型
  931. identifyNumber: "", //纳税人识别号
  932. taxpayerIdentifier: "01", //纳税人证件类型
  933. taxpayerName: "", //纳税人名称
  934. extendChar2: "", //减免税凭证号
  935. paidFreeCertificate: "", //完税凭证号
  936. relifReason: "", //减免税原因
  937. taxComCode: "", //税务机关代码
  938. taxComName: "", ///税务机关名称
  939. taxDocumentDate: "", //完税日期
  940. taxPaidAreaCode: "", //完税凭证地区代码
  941. taxRelief: "", //减税比例
  942. },
  943. taxRelifFlagoptions: [],
  944. taxpayerIdentifieroptions: [],
  945. relifReasonoptions: [],
  946. taxPaidAreaCodeShow: false, //完税凭证地区
  947. taxDocumentDateShow: false, //完税凭证填发日期
  948. taxRelifFlagShow: false, //车船税类型
  949. taxpayerIdentifierShow: false, //纳税人证件类型
  950. relifReasonShow: false, //减免税原因代码
  951. params: {
  952. year: true, //年
  953. month: true, //月
  954. day: true, //日
  955. hour: true, //时
  956. minute: true, //分
  957. second: true, //秒
  958. },
  959. jqimmediately: "0",
  960. jqimmediatelyList: [{
  961. label: '是',
  962. value: "1",
  963. },
  964. {
  965. label: '否',
  966. value: "0",
  967. },
  968. ],
  969. syimmediately: "0",
  970. syimmediatelyList: [{
  971. label: '是',
  972. value: "1",
  973. },
  974. {
  975. label: '否',
  976. value: "0",
  977. },
  978. ],
  979. jqchecked: false,
  980. sychecked: false,
  981. jqstartShow: false,
  982. jqendShow: false,
  983. systartShow: false,
  984. syendShow: false,
  985. jqstartDate: "",
  986. jqendDate: "",
  987. systartDate: "",
  988. syendDate: "",
  989. scrollTop: 0,
  990. carInfo: {},
  991. ownerInfo: {},
  992. policyHolderInfo: {},
  993. insuredPersonInfo: {},
  994. transferDateShow: false,
  995. params1: {
  996. year: true, //年
  997. month: true, //月
  998. day: true, //日
  999. hour: false, //时
  1000. minute: false, //分
  1001. second: false, //秒
  1002. },
  1003. params2: {
  1004. province: true,
  1005. city: false,
  1006. area: false
  1007. },
  1008. quotableCompanyList: [],
  1009. RSpreUnderwritingList: [],
  1010. productId: "",
  1011. productName: "",
  1012. animation: 'twinkle', //动画类型
  1013. InsureGuidePopup: false,
  1014. /* 投保指引弹窗*/
  1015. InsureGuideContent: "", // 指引内容
  1016. SelectedPlanId: "2", //已选方案id
  1017. genericPlanPopup: false, //方案选择弹窗
  1018. planDataExpansion: { //方案综合数据
  1019. id: "",
  1020. nameSimple: "",
  1021. cnName: "",
  1022. genericPlanList: [], //方案通用列表
  1023. genericPlanInfo: {}, //方案展示信息
  1024. },
  1025. insureItem: {},
  1026. orderno: "", //订单号
  1027. quoteno: "", //报价号
  1028. accidentInsuranceCategoryList: [],
  1029. accidentCategoryId: "",
  1030. /* 安盛 */
  1031. anshengPopupshow: false,
  1032. anshengInsuranceData: [],
  1033. anshengaccidentalDrivingVo: {},
  1034. /* 国任 */
  1035. guoRenPopupshow: false,
  1036. guoRenInsuranceData: [],
  1037. guoRenaccidentalDrivingVo: {},
  1038. /* 大家 */
  1039. dajiaPopupshow: false,
  1040. dajiaInsuranceData: [],
  1041. dajiaaccidentalDrivingVo: {},
  1042. /* 永诚 */
  1043. yongchengPopupshow: false,
  1044. yongchengInsuranceData: [],
  1045. yongchengaccidentalDrivingVo: {},
  1046. /* 恒邦 */
  1047. hengbangPopupshow: false,
  1048. hengbangInsuranceData: [],
  1049. hengbangaccidentalDrivingVo: {},
  1050. /* 诚泰 */
  1051. chengtaiPopupshow: false,
  1052. chengtaiInsuranceData: [],
  1053. chengtaiaccidentalDrivingVo: {},
  1054. /* 中煤 */
  1055. zhongmeiPopupshow: false,
  1056. zhongmeiInsuranceData: [],
  1057. zhongmeiaccidentalDrivingVo: {},
  1058. /* 泰康 */
  1059. taikangPopupshow: false,
  1060. taikangInsuranceData: [],
  1061. taikangaccidentalDrivingVo: {},
  1062. /* 渤海 */
  1063. bohaiPopupshow: false,
  1064. bohaiInsuranceData: [],
  1065. bohaiaccidentalDrivingVo: {},
  1066. /* 众安 */
  1067. zhonganPopupshow: false,
  1068. zhonganInsuranceData: [],
  1069. zhonganaccidentalDrivingVo: {},
  1070. /* 太平 */
  1071. taipingPopupshow: false,
  1072. taipingInsuranceData: [],
  1073. taipingaccidentalDrivingVo: {},
  1074. /* 华农 */
  1075. huanongPopupshow: false,
  1076. huanongInsuranceData: [],
  1077. huanongaccidentalDrivingVo: {},
  1078. /* 人寿 */
  1079. renshouPopupshow: false,
  1080. renshouInsuranceData: [],
  1081. renshouaccidentalDrivingVo: {},
  1082. /* 紫金 */
  1083. zijinPopupshow: false,
  1084. zijinInsuranceData: [],
  1085. zijinaccidentalDrivingVo: [],
  1086. isInspectchange: false,
  1087. }
  1088. },
  1089. onShow() {
  1090. },
  1091. async onLoad(params) {
  1092. if (params.orderno) {
  1093. let res = await this.$http.get('/supplementOrder/getOrderDetail', {
  1094. ordersNo: params.orderno
  1095. });
  1096. this.productId = res.data.order.productId; //险种id
  1097. this.productName = res.data.order.productsName; //险种name
  1098. this.quotableCompanyList = JSON.parse(JSON.stringify(res.data.insCompanyVo));
  1099. this.order = res.data.order;
  1100. this.costs = res.data.costs; //价格
  1101. this.accidentalDrivings = res.data.accidentalDrivings; //驾意险
  1102. this.carInfo = res.data.carInfoVo; //车辆信息
  1103. this.ownerInfo = res.data.ownersInfo; //车主信息
  1104. this.policyHolderInfo = res.data.policyHolderInfo; //投保人信息
  1105. this.insuredPersonInfo = res.data.insuredPersonInfo; //被保人信息
  1106. this.kindInfoVo = res.data.kindInfoVo; //险种大类
  1107. this.ciRiskInfoVo = res.data.ciRiskInfoVo; //交强险
  1108. this.biRiskInfoVo = res.data.biRiskInfoVo; //商业险
  1109. this.vehicleAndVesselTaxVo = res.data.vehicleAndVesselTaxVo; //车船税信息
  1110. this.orderno = res.data.order.ordersNo;
  1111. this.quoteno = res.data.order.quoteNo;
  1112. await this.commpanyList(res.data);
  1113. this.imageEcho(this.quoteno) // 影像获取完毕
  1114. if (this.ciRiskInfoVo) {
  1115. if (this.isDateBeforeToday(this.ciRiskInfoVo.startDate)) {
  1116. this.jqstartDate = this.nextday();
  1117. this.jqendDate = this.oneYearPast(this.jqstartDate)
  1118. this.ciRiskInfoVo.startDate = this.nextday()
  1119. this.ciRiskInfoVo.endDate = this.oneYearPast(this.jqstartDate)
  1120. } else {
  1121. this.jqstartDate = this.ciRiskInfoVo.startDate;
  1122. this.jqendDate = this.ciRiskInfoVo.endDate;
  1123. }
  1124. }
  1125. if (this.biRiskInfoVo) {
  1126. if (this.isDateBeforeToday(this.biRiskInfoVo.startDate)) {
  1127. this.systartDate = this.nextday();
  1128. this.syendDate = this.oneYearPast(this.systartDate)
  1129. this.biRiskInfoVo.startDate = this.nextday()
  1130. this.biRiskInfoVo.endDate = this.oneYearPast(this.systartDate)
  1131. } else {
  1132. this.systartDate = this.biRiskInfoVo.startDate;
  1133. this.syendDate = this.biRiskInfoVo.endDate;
  1134. }
  1135. }
  1136. } else {
  1137. this.jqstartDate = this.nextday();
  1138. this.jqendDate = this.oneYearPast(this.jqstartDate);
  1139. this.systartDate = this.nextday();
  1140. this.syendDate = this.oneYearPast(this.jqstartDate);
  1141. const eventChannel = this.getOpenerEventChannel()
  1142. // 监听acceptData事件,获取上一页面通过eventChannel传送到当前页面的数据
  1143. await eventChannel.on('acceptData', (data) => {
  1144. console.log(data);
  1145. this.carInfo = data.carInfo; //车辆信息
  1146. this.ownerInfo = data.ownerInfo; //车主信息
  1147. this.policyHolderInfo = data.policyHolderInfo; //投保人信息
  1148. this.vehicleAndVesselTaxVo.identifyNumber = this.policyHolderInfo.identifyNumber;
  1149. this.vehicleAndVesselTaxVo.taxpayerName = this.policyHolderInfo.name;
  1150. this.insuredPersonInfo = data.insuredPersonInfo; //被保人信息
  1151. this.carImageListId = data.carImageListId; //车辆
  1152. this.ownerImageListId = data.ownerImageListId; //车主
  1153. this.policyHolderImageListId = data.policyHolderImageListId; //投保
  1154. this.insuredPersonImageListId = data.insuredPersonImageListId; //被保人
  1155. this.productId = data.productId; //险种id
  1156. this.productName = data.productName; //险种name
  1157. this.riskTypeEchoProcessing(this.productId)
  1158. this.quotableCompanyList = JSON.parse(JSON.stringify(data.quotableCompanyList)); //可报价公司
  1159. this.commpanyList();
  1160. })
  1161. }
  1162. // this.getDicType("taxRelifFlag"); //车船税类型
  1163. // this.getDicType("taxpayerIdentifier"); //纳税人证件类型
  1164. // this.getDicType("relifReason"); //减免税原因代码
  1165. },
  1166. methods: {
  1167. //跳转微信客服
  1168. async getWechatCustomer() {
  1169. let res = await this.$http.get('/organization/wechat/customerService/manage/find/link')
  1170. if (res.code == 200) {
  1171. if (plus) { // 确保在App环境下
  1172. plus.runtime.openURL(res.data);
  1173. }
  1174. }
  1175. },
  1176. formatter(type, value) {
  1177. if (type === 'year') {
  1178. return `${value}年`
  1179. }
  1180. if (type === 'month') {
  1181. return `${value}月`
  1182. }
  1183. if (type === 'day') {
  1184. return `${value}日`
  1185. }
  1186. if (type === 'hour') {
  1187. return `${value}时`
  1188. }
  1189. if (type === 'minute') {
  1190. return `${value}分`
  1191. }
  1192. return value
  1193. },
  1194. CTcoefficientSubmit() {
  1195. this.quotableCompanyList[this.CTcoefficientIndex].coefficient = this.CTcoefficientForm.pricingCoefficient;
  1196. this.quotableCompanyList[this.CTcoefficientIndex].discount = this.CTcoefficientForm.expectedDiscount;
  1197. this.CTcoefficientShow = false;
  1198. },
  1199. ZJcoefficientSubmit() {
  1200. this.quotableCompanyList[this.ZJcoefficientIndex].coefficient = this.ZJcoefficientForm.coefficient;
  1201. this.ZJcoefficientShow = false;
  1202. },
  1203. CTadjustmentCoefficient(index) {
  1204. this.CTcoefficientIndex = index;
  1205. this.CTcoefficientShow = true;
  1206. },
  1207. ZJadjustmentCoefficient(index) {
  1208. this.ZJcoefficientIndex = index;
  1209. this.ZJcoefficientShow = true;
  1210. },
  1211. change(index, name) {
  1212. this[name] = index.index;
  1213. },
  1214. imagechange(index) {
  1215. this.imagecurrent = index;
  1216. },
  1217. btn_click() {
  1218. uni.navigateTo({
  1219. url: '/pages/chat/chat'
  1220. })
  1221. },
  1222. //与当前日期对比
  1223. isDateBeforeToday(date) {
  1224. const inputDate = new Date(date); // 将输入的日期转换为 Date 对象
  1225. const today = new Date(); // 获取当前日期
  1226. // 比较日期是否小于当前日期
  1227. if (inputDate < today) {
  1228. return true; // 输入日期小于当前日期
  1229. } else {
  1230. return false; // 输入日期大于等于当前日期
  1231. }
  1232. },
  1233. //影像查询
  1234. async imageEcho(quotenos) {
  1235. this.imgList1 = [];
  1236. this.imgList2 = [];
  1237. this.imgList3 = [];
  1238. this.imgList4 = [];
  1239. this.imgList5 = [];
  1240. this.imgList6 = [];
  1241. this.imgList7 = [];
  1242. this.imgList8 = [];
  1243. let res = await this.$http.get('/order/taskImages/selectByQuoteNo?quoteNo=' + quotenos);
  1244. if (res.code == "200") {
  1245. res.data.images.forEach((keys) => {
  1246. if (keys.downloadUrl) {
  1247. switch (keys.imageType) {
  1248. case 'C01':
  1249. this.carImageListId.push({
  1250. imageBase64List: [{
  1251. imageId: keys.imageId
  1252. }],
  1253. imageCode: keys.imageType,
  1254. })
  1255. this.imgList1.push(keys);
  1256. break;
  1257. case 'D01':
  1258. this.carImageListId.push({
  1259. imageBase64List: [{
  1260. imageId: keys.imageId
  1261. }],
  1262. imageCode: keys.imageType,
  1263. })
  1264. this.imgList2.push(keys);
  1265. break;
  1266. case 'C02':
  1267. this.ownerImageListId.push({
  1268. imageBase64List: [{
  1269. imageId: keys.imageId
  1270. }],
  1271. imageCode: keys.imageType,
  1272. })
  1273. this.imgList3.push(keys);
  1274. break;
  1275. case 'D02':
  1276. this.ownerImageListId.push({
  1277. imageBase64List: [{
  1278. imageId: keys.imageId
  1279. }],
  1280. imageCode: keys.imageType,
  1281. })
  1282. this.imgList4.push(keys);
  1283. break;
  1284. case 'C03':
  1285. this.policyHolderImageListId.push({
  1286. imageBase64List: [{
  1287. imageId: keys.imageId
  1288. }],
  1289. imageCode: keys.imageType,
  1290. })
  1291. this.imgList5.push(keys);
  1292. break;
  1293. case 'D03':
  1294. this.policyHolderImageListId.push({
  1295. imageBase64List: [{
  1296. imageId: keys.imageId
  1297. }],
  1298. imageCode: keys.imageType,
  1299. })
  1300. this.imgList6.push(keys);
  1301. break;
  1302. case 'C04':
  1303. this.insuredPersonImageListId.push({
  1304. imageBase64List: [{
  1305. imageId: keys.imageId
  1306. }],
  1307. imageCode: keys.imageType,
  1308. })
  1309. this.imgList7.push(keys);
  1310. break;
  1311. case 'D04':
  1312. this.insuredPersonImageListId.push({
  1313. imageBase64List: [{
  1314. imageId: keys.imageId
  1315. }],
  1316. imageCode: keys.imageType,
  1317. })
  1318. this.imgList8.push(keys);
  1319. break;
  1320. default:
  1321. break;
  1322. }
  1323. }
  1324. });
  1325. this.imageCollection = {
  1326. imgList1: this.imgList1,
  1327. imgList2: this.imgList2,
  1328. imgList3: this.imgList3,
  1329. imgList4: this.imgList4,
  1330. imgList5: this.imgList5,
  1331. imgList6: this.imgList6,
  1332. imgList7: this.imgList7,
  1333. imgList8: this.imgList8,
  1334. }
  1335. }
  1336. },
  1337. back() {
  1338. uni.navigateBack(1)
  1339. },
  1340. //-------------驾意险处理开始
  1341. //国任
  1342. GRradioChange(id) {
  1343. let obj = this.guoRenInsuranceData.find((val => val.projectCode == id))
  1344. Object.assign(this.guoRenaccidentalDrivingVo, obj);
  1345. this.guoRenPopupshow = false;
  1346. },
  1347. //大家
  1348. DJradioChange(id) {
  1349. let obj = this.dajiaInsuranceData.find((val => val.projectCode == id))
  1350. Object.assign(this.dajiaaccidentalDrivingVo, obj);
  1351. this.dajiaPopupshow = false;
  1352. },
  1353. //紫金意外险
  1354. ZJcheckboxGroupChange(detail) {
  1355. this.zijinaccidentalDrivingVo = [];
  1356. detail.map(val => {
  1357. let list = this.zijinInsuranceData.find(item => item.projectCode == val)
  1358. this.zijinaccidentalDrivingVo.push(list)
  1359. })
  1360. },
  1361. //安盛
  1362. ASradioChange(id) {
  1363. let obj = this.anshengInsuranceData.find((val => val.projectCode == id))
  1364. Object.assign(this.anshengaccidentalDrivingVo, obj);
  1365. this.anshengPopupshow = false;
  1366. },
  1367. //太平
  1368. TPradioChange(id) {
  1369. let obj = this.taipingInsuranceData.find(val => val.projectCode == id)
  1370. Object.assign(this.taipingaccidentalDrivingVo, obj);
  1371. this.taipingPopupshow = false;
  1372. },
  1373. //泰康
  1374. TkradioChange(id) {
  1375. let obj = this.taikangInsuranceData.find(val => val.projectCode == id)
  1376. Object.assign(this.taikangaccidentalDrivingVo, obj);
  1377. this.taikangPopupshow = false;
  1378. },
  1379. //永诚
  1380. YCradioChange(id) {
  1381. let obj = this.yongchengInsuranceData.find(val => val.projectCode == id)
  1382. Object.assign(this.yongchengaccidentalDrivingVo, obj);
  1383. this.yongchengPopupshow = false;
  1384. },
  1385. //中煤
  1386. ZMradioChange(id) {
  1387. let obj = this.zhongmeiInsuranceData.find(val => val.projectCode == id)
  1388. Object.assign(this.zhongmeiaccidentalDrivingVo, obj);
  1389. this.zhongmeiPopupshow = false;
  1390. },
  1391. //渤海意外险
  1392. BHradioChange(id) {
  1393. let info = this.bohaiInsuranceData.find(val => val.projectCode == id)
  1394. Object.assign(this.bohaiaccidentalDrivingVo, obj);
  1395. this.bohaiPopupshow = false;
  1396. },
  1397. //人寿意外险
  1398. RSradioChange(id) {
  1399. let obj = this.renshouInsuranceData.find(val => val.projectCode == id)
  1400. Object.assign(this.renshouaccidentalDrivingVo, obj);
  1401. this.renshouPopupshow = false;
  1402. },
  1403. //恒邦意外险
  1404. HBradioChange(id) {
  1405. let obj = this.hengbangInsuranceData.find(val => val.projectCode ==
  1406. id)
  1407. Object.assign(this.hengbangaccidentalDrivingVo, obj);
  1408. this.hengbangPopupshow = false;
  1409. },
  1410. //众安意外险
  1411. ZAradioChange(id) {
  1412. let obj = this.zhonganInsuranceData.find(val => val.projectCode == id)
  1413. Object.assign(this.zhonganaccidentalDrivingVo, obj);
  1414. this.zhonganPopupshow = false;
  1415. },
  1416. //华农驾意险
  1417. HNradioChange(id) {
  1418. let obj = this.huanongInsuranceData.find(val => val.projectCode == id);
  1419. Object.assign(this.huanongaccidentalDrivingVo, obj);
  1420. this.huanongaccidentalDrivingVo.accidentType = this.huanongaccidentalDrivingVo.planCode;
  1421. this.huanongPopupshow = false;
  1422. },
  1423. //-------------驾意险处理结束
  1424. adjustBIItemLabelSubmit() {
  1425. for (let i = 0; i < this.planDataExpansion.genericPlanInfo.kinds.length; i++) {
  1426. if (this.insureItem.kindCode == this.planDataExpansion.genericPlanInfo.kinds[i].kindCode) {
  1427. this.planDataExpansion.genericPlanInfo.kinds[i].amount = this.insureItem.amount; /* 保额 */
  1428. this.planDataExpansion.genericPlanInfo.kinds[i].amountDesc = this.insureItem.amountDesc; /* 保额名称 */
  1429. }
  1430. }
  1431. this.$refs.popupBI.hide();
  1432. },
  1433. numberBoxChange(val) {
  1434. if (val.value > 0) {
  1435. this.insureItem.amount = val.value;
  1436. this.insureItem.amountDesc = val.value + '次';
  1437. } else {
  1438. this.insureItem.amount = 0;
  1439. this.insureItem.amountDesc = '不投保';
  1440. }
  1441. },
  1442. //弹出popup框并显示基本信息
  1443. adjustBIItem(index) {
  1444. var a = {};
  1445. Object.assign(a, this.planDataExpansion.genericPlanInfo.kinds[index])
  1446. this.insureItem = a;
  1447. this.$refs.popupBI.show() // 显示
  1448. },
  1449. //popup内容的label改变
  1450. adjustBIItemLabel(index) {
  1451. this.insureItem.amount = this.insureItem.amtList[index].value;
  1452. this.insureItem.amountDesc = this.insureItem.amtList[index].label;
  1453. },
  1454. jqterms() {
  1455. let file = 'https://sxzgkj.baoxianzhanggui.com/web-api/upload/specification/commercialInsurance.pdf';
  1456. //#ifdef APP-PLUS
  1457. uni.showLoading({
  1458. title: '正在打开'
  1459. });
  1460. let dtask = plus.downloader.createDownload(file, {
  1461. filename: "_downloads/" + '交强条款.pdf'
  1462. }, function(d, status) {
  1463. if (status == 200) {
  1464. uni.hideLoading()
  1465. //下载成功,d.filename是文件在保存在本地的相对路径,使用下面的API可转为平台绝对路径
  1466. let fileSaveUrl = plus.io.convertLocalFileSystemURL(d.filename);
  1467. plus.runtime.openFile(d.filename); //选择软件打开文件
  1468. } else {
  1469. uni.hideLoading()
  1470. //下载失败
  1471. plus.downloader.clear(); //清除下载任务
  1472. }
  1473. })
  1474. dtask.start();
  1475. //#endif
  1476. //#ifdef H5
  1477. var win = window.open();
  1478. win.document.write(
  1479. '<body style="margin:0px;"><object data="' +
  1480. file +
  1481. '" type="application/pdf" width="100%" height="100%"><iframe src="' +
  1482. file +
  1483. '" scrolling="no" width="100%" height="100%" frameborder="0" ></iframe></object></body>'
  1484. );
  1485. //#endif
  1486. },
  1487. syterms() {
  1488. let file = 'https://sxzgkj.baoxianzhanggui.com/web-api/upload/specification/compulsoryInsurance.pdf';
  1489. //#ifdef APP-PLUS
  1490. uni.showLoading({
  1491. title: '正在打开'
  1492. });
  1493. let dtask = plus.downloader.createDownload(file, {
  1494. filename: "_downloads/" + '商业条款.pdf'
  1495. }, function(d, status) {
  1496. if (status == 200) {
  1497. uni.hideLoading()
  1498. //下载成功,d.filename是文件在保存在本地的相对路径,使用下面的API可转为平台绝对路径
  1499. let fileSaveUrl = plus.io.convertLocalFileSystemURL(d.filename);
  1500. plus.runtime.openFile(d.filename); //选择软件打开文件
  1501. } else {
  1502. uni.hideLoading()
  1503. //下载失败
  1504. plus.downloader.clear(); //清除下载任务
  1505. }
  1506. })
  1507. dtask.start();
  1508. //#endif
  1509. //#ifdef H5
  1510. var win = window.open();
  1511. win.document.write(
  1512. '<body style="margin:0px;"><object data="' +
  1513. file +
  1514. '" type="application/pdf" width="100%" height="100%"><iframe src="' +
  1515. file +
  1516. '" scrolling="no" width="100%" height="100%" frameborder="0" ></iframe></object></body>'
  1517. );
  1518. //#endif
  1519. },
  1520. //国任特约
  1521. async specialAgreementSelection(id) {
  1522. let guoRen = await this.$http.post('/manager/clause/getClausePage', {
  1523. companyId: id,
  1524. pages: 1,
  1525. riskCode: 'all',
  1526. size: 100,
  1527. });
  1528. this.guoRenSpecialAgreementData = guoRen.data.records;
  1529. this.guoRencontributingshow = true;
  1530. },
  1531. //紫金特约
  1532. async zijinspecialAgreementSelection(id) {
  1533. let Zijinres = await this.$http.post('/manager/clause/getClausePage', {
  1534. companyId: id,
  1535. pages: 1,
  1536. riskCode: 'all',
  1537. size: 100,
  1538. });
  1539. this.ziJinengageListData = Zijinres.data.records;
  1540. console.log(this.ziJinengageListDatajq);
  1541. this.zijincontributingshow = true;
  1542. },
  1543. //华泰特约
  1544. async huataispecialAgreementSelection(id) {
  1545. let huaTaires = await this.$http.post('/manager/clause/getClausePage', {
  1546. companyId: id,
  1547. pages: 1,
  1548. riskCode: 'all',
  1549. size: 100,
  1550. });
  1551. this.huaTaiengageListData = huaTaires.data.records;
  1552. this.huataicontributingshow = true;
  1553. },
  1554. guoRencontributingChangejq(param) {
  1555. this.guoRenSpecialAgreementVojq = [];
  1556. param.map(val => {
  1557. let list = this.guoRenSpecialAgreementDatajq.find(item => item.clauseCode == val)
  1558. this.guoRenSpecialAgreementVojq.push(list)
  1559. })
  1560. },
  1561. guoRencontributingChangesy(param) {
  1562. this.guoRenSpecialAgreementVosy = [];
  1563. param.map(val => {
  1564. let list = this.guoRenSpecialAgreementDatasy.find(item => item.clauseCode == val)
  1565. this.guoRenSpecialAgreementVosy.push(list)
  1566. })
  1567. },
  1568. ziJincontributingChangejq(param) {
  1569. this.ziJinSpecialAgreementVojq = [];
  1570. param.map(val => {
  1571. let list = this.ziJinengageListDatajq.find(item => item.clauseCode == val)
  1572. this.ziJinSpecialAgreementVojq.push(list)
  1573. })
  1574. },
  1575. ziJincontributingChangesy(param) {
  1576. this.ziJinSpecialAgreementVosy = [];
  1577. param.map(val => {
  1578. let list = this.ziJinengageListDatasy.find(item => item.clauseCode == val)
  1579. this.ziJinSpecialAgreementVosy.push(list)
  1580. })
  1581. },
  1582. huaTaicontributingChangejq(param) {
  1583. this.huaTaiSpecialAgreementVojq = [];
  1584. param.map(val => {
  1585. let list = this.huaTaiengageListDatajq.find(item => item.clauseCode == val)
  1586. this.huaTaiSpecialAgreementVojq.push(list)
  1587. })
  1588. },
  1589. huaTaicontributingChangesy(param) {
  1590. this.huaTaiSpecialAgreementVosy = [];
  1591. param.map(val => {
  1592. let list = this.huaTaiengageListDatasy.find(item => item.clauseCode == val)
  1593. this.huaTaiSpecialAgreementVosy.push(list)
  1594. })
  1595. },
  1596. //--------比价
  1597. priceComparison() {
  1598. this.priceComparisonShow = true;
  1599. },
  1600. priceComparison1() {
  1601. this.quotableCompanyList.map((ele, index) => {
  1602. if (ele.quoteCode == 200) {
  1603. const updatedItem = {
  1604. ...this.quotableCompanyList[index],
  1605. isComparableshowHide: true
  1606. };
  1607. this.quotableCompanyList.splice(index, 1, updatedItem);
  1608. }
  1609. return ele;
  1610. })
  1611. },
  1612. priceComparison2() {
  1613. let subOrderNoslist = [];
  1614. this.quotableCompanyList.map(ele => {
  1615. if (ele.isComparableShow) {
  1616. subOrderNoslist.push(ele.result.companyId);
  1617. }
  1618. return ele;
  1619. })
  1620. uni.navigateTo({
  1621. url: `/pages/orders/priceComparison?subOrderNoslist=${JSON.stringify(subOrderNoslist)}`
  1622. })
  1623. },
  1624. //--------比价
  1625. //重新生成订单
  1626. GenerateModalConfirm() {
  1627. this.orderno = "";
  1628. this.quoteno = "";
  1629. this.toNext();
  1630. },
  1631. async toNext() {
  1632. var allAreFalse = this.quotableCompanyList.every(function(element) {
  1633. return element.insurancePlanInfo == null;
  1634. });
  1635. if (!allAreFalse) {
  1636. if (this.carInfo.licenseNo.length == '8' && this.carInfo.energyTypeCode == '0') {
  1637. return uni.showToast({
  1638. icon: "none",
  1639. title: '检测到能源种类错误,与车辆信息不符。请修改后继续操作',
  1640. duration: 3000
  1641. });
  1642. }
  1643. this.comparableQuantity = 0; //报价成功总数
  1644. this.selectedCount = 0; //比价勾选数量
  1645. this.quotableCompanyList.map((ele) => {
  1646. ele.isComparableShow = false;
  1647. ele.isComparableshowHide = false;
  1648. return ele;
  1649. })
  1650. this.riskTypeEchoProcessing(this.productId); //更新险种大类日期
  1651. let param = {
  1652. licenseNo: this.carInfo.licenseNo,
  1653. vinNo: this.carInfo.vinNo,
  1654. engineNo: this.carInfo.engineNo,
  1655. };
  1656. let orders = await this.$http.get('/unify/order/getQuoteNo', param);
  1657. if (orders.code == '200') {
  1658. this.quoteno = orders.msg;
  1659. let mergedArray = [];
  1660. let mergedArrayList = mergedArray.concat(this.carImageListId, this
  1661. .ownerImageListId, this
  1662. .policyHolderImageListId, this.insuredPersonImageListId)
  1663. if (mergedArrayList.length > 0) {
  1664. await this.$http.post('/unify/order/imageSave', {
  1665. imageVoList: mergedArrayList,
  1666. order: {
  1667. quoteNo: this.quoteno,
  1668. }
  1669. })
  1670. }
  1671. this.quotableCompanyList = this.quotableCompanyList.map((ele, index) => {
  1672. if (ele.insurancePlanInfo !== null) {
  1673. // 动态调用报价接口
  1674. ele.quoteCode = '1';
  1675. this.ToolClickFun(ele.cnName, index, ele.id);
  1676. }
  1677. return ele
  1678. });
  1679. } else if (orders.code == '1001') {
  1680. this.Generateshow = true;
  1681. } else {
  1682. uni.showToast({
  1683. title: orders.msg,
  1684. icon: 'none',
  1685. });
  1686. }
  1687. } else {
  1688. uni.showToast({
  1689. title: "请选择方案后,在进行报价",
  1690. icon: 'none',
  1691. });
  1692. }
  1693. },
  1694. async tempSave() {
  1695. let param = {
  1696. userId: this.userInfo.sysUser.id,
  1697. quoteno: this.quoteno ? this.quoteno : "",
  1698. orderNo: this.orderno ? this.orderno : "",
  1699. kindInfoVost: thikindInfoVost,
  1700. carInfo: this.carInfo,
  1701. insuredPersonInfo: this.insuredPersonInfo,
  1702. ownerInfo: this.ownerInfo,
  1703. policyHolderInfo: this.policyHolderInfo,
  1704. vehicleAndVesselTax: this.vehicleAndVesselTaxVo,
  1705. productId: this.productId,
  1706. orderSource: "1",
  1707. };
  1708. let orders = await this.$http.post('/insurance/order/generateOrder', param);
  1709. if (orders.code == '200') {
  1710. uni.showToast({
  1711. title: '暂存成功',
  1712. icon: 'none',
  1713. });
  1714. } else {
  1715. uni.showToast({
  1716. title: res.msg,
  1717. icon: 'none',
  1718. });
  1719. }
  1720. },
  1721. async individualQuote(item) {
  1722. if (this.carInfo.licenseNo.length == '8' && this.carInfo.energyTypeCode == '0') {
  1723. return uni.showToast({
  1724. icon: "none",
  1725. title: '检测到能源种类错误,与车辆信息不符。请修改后继续操作',
  1726. duration: 3000
  1727. });
  1728. }
  1729. if (!item.insurancePlanInfo) {
  1730. uni.showToast({
  1731. title: "请选择方案后,在进行报价",
  1732. icon: 'none',
  1733. });
  1734. } else {
  1735. this.riskTypeEchoProcessing(this.productId); //更新险种大类日期
  1736. let param = {
  1737. licenseNo: this.carInfo.licenseNo,
  1738. vinNo: this.carInfo.vinNo,
  1739. engineNo: this.carInfo.engineNo,
  1740. };
  1741. let orders = await this.$http.get('/unify/order/getQuoteNo', param);
  1742. if (orders.code == '200') {
  1743. this.quoteno = orders.msg;
  1744. let mergedArray = [];
  1745. let mergedArrayList = mergedArray.concat(this.carImageListId, this
  1746. .ownerImageListId, this
  1747. .policyHolderImageListId, this.insuredPersonImageListId)
  1748. if (mergedArrayList.length > 0) {
  1749. await this.$http.post('/unify/order/imageSave', {
  1750. imageVoList: mergedArrayList,
  1751. order: {
  1752. quoteNo: this.quoteno,
  1753. }
  1754. })
  1755. }
  1756. this.quotableCompanyList = this.quotableCompanyList.map((ele, index) => {
  1757. if (ele.id == item.id) {
  1758. // 动态调用报价接口
  1759. ele.quoteCode = '1';
  1760. this.ToolClickFun(ele.cnName, index, ele.id);
  1761. }
  1762. return ele
  1763. });
  1764. } else if (orders.code == '1001') {
  1765. this.Generateshow = true;
  1766. } else {
  1767. uni.showToast({
  1768. title: orders.msg,
  1769. icon: 'none',
  1770. });
  1771. }
  1772. }
  1773. },
  1774. async ToolClickFun(MethodName, Parameter, companyId) {
  1775. await this[`${MethodName}`](Parameter, companyId)
  1776. //获取已报价成功个数
  1777. let filteredObjects = [];
  1778. this.quotableCompanyList.map(ele => {
  1779. if (ele.quoteCode == 200) {
  1780. filteredObjects.push(ele.result.companyId)
  1781. }
  1782. return ele;
  1783. })
  1784. this.comparableQuantity = filteredObjects.length;
  1785. },
  1786. //永诚报价
  1787. async AICS(num, id) {
  1788. let isTaxSource = this.quotableCompanyList[num].isTaxSource;
  1789. let ccidenttype = this.quotableCompanyList[num].cnName;
  1790. let params = {
  1791. order: {
  1792. insuranceCompanyCode: id,
  1793. quoteNo: this.quoteno,
  1794. productId: this.productId,
  1795. },
  1796. accidentalDrivings: this.quotableCompanyList[num].insurancePlanInfo.drivings[0] ? [this
  1797. .quotableCompanyList[num].insurancePlanInfo.drivings[0]
  1798. ] : [],
  1799. kindInfoVo: this.quotableCompanyList[num].insurancePlanInfo.kinds,
  1800. // risks: thikindInfoVost,
  1801. ciRiskInfoVo: ['0330', '0330034002', '0330034001'].includes(this.productId) ? this
  1802. .ciRiskInfoVo : null, //交强大类
  1803. biRiskInfoVo: ['034001', '034002', '0330034002', '0330034001'].includes(this.productId) ? this
  1804. .biRiskInfoVo : null, //商业大类
  1805. carInfoVo: this.carInfo,
  1806. ownersInfo: this.ownerInfo,
  1807. policyHolderInfo: this.policyHolderInfo,
  1808. insuredPersonInfo: this.insuredPersonInfo,
  1809. vehicleAndVesselTaxVo: this.vehicleAndVesselTaxVo,
  1810. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  1811. // agreementId: this.quotableCompanyList[num].agreement[0].id,
  1812. systemType: '2'
  1813. };
  1814. try {
  1815. let res = await this.$http.post('/unify/order/quote', params);
  1816. this.quotableCompanyList[num].msg = res.msg;
  1817. if (res.code == "200") {
  1818. if (res.data.warnMessageList != null && res.data
  1819. .warnMessageList[0] != null && res.data
  1820. .warnMessageList[
  1821. 0] != "") {
  1822. this.quotableCompanyList[num].lastYearMsg = "";
  1823. let dat = res.data.warnMessageList;
  1824. dat.map(ele => {
  1825. this.quotableCompanyList[num].lastYearMsg += ele +
  1826. '<br>';
  1827. })
  1828. }
  1829. const updatedItem = {
  1830. ...this.quotableCompanyList[num],
  1831. quoteCode: 200
  1832. };
  1833. this.quotableCompanyList.splice(num, 1, updatedItem);
  1834. this.quotableCompanyList[num].result = res.data;
  1835. this.subOrderId = res.data.ordersNo;
  1836. } else {
  1837. const updatedItem = {
  1838. ...this.quotableCompanyList[num],
  1839. quoteCode: '3'
  1840. };
  1841. this.quotableCompanyList.splice(num, 1, updatedItem);
  1842. this.quotableCompanyList[num].msg = res.msg;
  1843. return;
  1844. }
  1845. } catch (error) {
  1846. const updatedItem = {
  1847. ...this.quotableCompanyList[num],
  1848. quoteCode: '3'
  1849. };
  1850. this.quotableCompanyList.splice(num, 1, updatedItem);
  1851. this.quotableCompanyList[num].msg = '接口请求超时,请重新尝试';
  1852. }
  1853. },
  1854. //中煤报价
  1855. async ZMBX(num, id) {
  1856. let isTaxSource = this.quotableCompanyList[num].isTaxSource;
  1857. let ccidenttype = this.quotableCompanyList[num].cnName;
  1858. let params = {
  1859. order: {
  1860. insuranceCompanyCode: id,
  1861. quoteNo: this.quoteno,
  1862. productId: this.productId,
  1863. },
  1864. accidentalDrivings: this.quotableCompanyList[num].insurancePlanInfo.drivings[0] ? [this
  1865. .quotableCompanyList[num].insurancePlanInfo.drivings[0]
  1866. ] : [],
  1867. kindInfoVo: this.quotableCompanyList[num].insurancePlanInfo.kinds,
  1868. // risks: thikindInfoVost,
  1869. ciRiskInfoVo: ['0330', '0330034002', '0330034001'].includes(this.productId) ? this
  1870. .ciRiskInfoVo : null, //交强大类
  1871. biRiskInfoVo: ['034001', '034002', '0330034002', '0330034001'].includes(this.productId) ? this
  1872. .biRiskInfoVo : null, //商业大类
  1873. carInfoVo: this.carInfo,
  1874. ownersInfo: this.ownerInfo,
  1875. policyHolderInfo: this.policyHolderInfo,
  1876. insuredPersonInfo: this.insuredPersonInfo,
  1877. vehicleAndVesselTaxVo: this.vehicleAndVesselTaxVo,
  1878. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  1879. // agreementId: this.quotableCompanyList[num].agreement[0].id,
  1880. systemType: '2'
  1881. };
  1882. try {
  1883. let res = await this.$http.post("/unify/order/quote", params);
  1884. this.quotableCompanyList[num].msg = res.msg;
  1885. if (res.code == '200') {
  1886. if (res.data.warnMessageList != null && res.data.warnMessageList[
  1887. 0] != null && res.data
  1888. .warnMessageList[
  1889. 0] != "") {
  1890. this.quotableCompanyList[num].lastYearMsg = "";
  1891. let dat = res.data.warnMessageList;
  1892. dat.map(ele => {
  1893. this.quotableCompanyList[num].lastYearMsg += ele +
  1894. '<br>';
  1895. })
  1896. }
  1897. const updatedItem = {
  1898. ...this.quotableCompanyList[num],
  1899. quoteCode: 200
  1900. };
  1901. this.quotableCompanyList.splice(num, 1, updatedItem);
  1902. this.quotableCompanyList[num].result = res.data;
  1903. this.subOrderId = res.data.companyId;
  1904. } else {
  1905. const updatedItem = {
  1906. ...this.quotableCompanyList[num],
  1907. quoteCode: '3'
  1908. };
  1909. this.quotableCompanyList.splice(num, 1, updatedItem);
  1910. this.quotableCompanyList[num].msg = res.msg;
  1911. return;
  1912. }
  1913. } catch (error) {
  1914. const updatedItem = {
  1915. ...this.quotableCompanyList[num],
  1916. quoteCode: '3'
  1917. };
  1918. this.quotableCompanyList.splice(num, 1, updatedItem);
  1919. this.quotableCompanyList[num].msg = '接口请求超时,请重新尝试';
  1920. }
  1921. },
  1922. //渤海报价
  1923. async BPIC(num, id) {
  1924. let isTaxSource = this.quotableCompanyList[num].isTaxSource;
  1925. let ccidenttype = this.quotableCompanyList[num].cnName;
  1926. let params = {
  1927. order: {
  1928. insuranceCompanyCode: id,
  1929. quoteNo: this.quoteno,
  1930. productId: this.productId,
  1931. },
  1932. accidentalDrivings: this.quotableCompanyList[num].insurancePlanInfo.drivings[0] ? [this
  1933. .quotableCompanyList[num].insurancePlanInfo.drivings[0]
  1934. ] : [],
  1935. kindInfoVo: this.quotableCompanyList[num].insurancePlanInfo.kinds,
  1936. // risks: thikindInfoVost,
  1937. ciRiskInfoVo: ['0330', '0330034002', '0330034001'].includes(this.productId) ? this
  1938. .ciRiskInfoVo : null, //交强大类
  1939. biRiskInfoVo: ['034001', '034002', '0330034002', '0330034001'].includes(this.productId) ? this
  1940. .biRiskInfoVo : null, //商业大类
  1941. carInfoVo: this.carInfo,
  1942. ownersInfo: this.ownerInfo,
  1943. policyHolderInfo: this.policyHolderInfo,
  1944. insuredPersonInfo: this.insuredPersonInfo,
  1945. vehicleAndVesselTaxVo: this.vehicleAndVesselTaxVo,
  1946. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  1947. // agreementId: this.quotableCompanyList[num].agreement[0].id,
  1948. systemType: '2'
  1949. };
  1950. try {
  1951. let res = await this.$http.post('/unify/order/quote', params);
  1952. this.quotableCompanyList[num].msg = res.msg;
  1953. if (res.code == '200') {
  1954. if (res.data.warnMessageList != null && res.data.warnMessageList[
  1955. 0] != null && res.data
  1956. .warnMessageList[
  1957. 0] != "") {
  1958. this.quotableCompanyList[num].lastYearMsg = "";
  1959. let dat = res.data.warnMessageList;
  1960. dat.map(ele => {
  1961. this.quotableCompanyList[num].lastYearMsg += ele +
  1962. '<br>';
  1963. })
  1964. }
  1965. const updatedItem = {
  1966. ...this.quotableCompanyList[num],
  1967. quoteCode: 200
  1968. };
  1969. this.quotableCompanyList.splice(num, 1, updatedItem);
  1970. this.quotableCompanyList[num].result = res.data;
  1971. this.subOrderId = res.data.companyId;
  1972. } else {
  1973. const updatedItem = {
  1974. ...this.quotableCompanyList[num],
  1975. quoteCode: '3'
  1976. };
  1977. this.quotableCompanyList.splice(num, 1, updatedItem);
  1978. this.quotableCompanyList[num].msg = res.msg;
  1979. return;
  1980. }
  1981. } catch (error) {
  1982. const updatedItem = {
  1983. ...this.quotableCompanyList[num],
  1984. quoteCode: '3'
  1985. };
  1986. this.quotableCompanyList.splice(num, 1, updatedItem);
  1987. this.quotableCompanyList[num].msg = '接口请求超时,请重新尝试';
  1988. }
  1989. },
  1990. //阳光报价
  1991. async YGBX(num, id) {
  1992. let isTaxSource = this.quotableCompanyList[num].isTaxSource;
  1993. let ccidenttype = this.quotableCompanyList[num].cnName;
  1994. let params = {
  1995. order: {
  1996. insuranceCompanyCode: id,
  1997. quoteNo: this.quoteno,
  1998. productId: this.productId,
  1999. },
  2000. accidentalDrivings: this.quotableCompanyList[num].insurancePlanInfo.drivings[0] ? [this
  2001. .quotableCompanyList[num].insurancePlanInfo.drivings[0]
  2002. ] : [],
  2003. kindInfoVo: this.quotableCompanyList[num].insurancePlanInfo.kinds,
  2004. // risks: thikindInfoVost,
  2005. ciRiskInfoVo: ['0330', '0330034002', '0330034001'].includes(this.productId) ? this
  2006. .ciRiskInfoVo : null, //交强大类
  2007. biRiskInfoVo: ['034001', '034002', '0330034002', '0330034001'].includes(this.productId) ? this
  2008. .biRiskInfoVo : null, //商业大类
  2009. carInfoVo: this.carInfo,
  2010. ownersInfo: this.ownerInfo,
  2011. policyHolderInfo: this.policyHolderInfo,
  2012. insuredPersonInfo: this.insuredPersonInfo,
  2013. vehicleAndVesselTaxVo: this.vehicleAndVesselTaxVo,
  2014. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  2015. // agreementId: this.quotableCompanyList[num].agreement[0].id,
  2016. systemType: '2'
  2017. };
  2018. try {
  2019. let res = await this.$http.post('/unify/order/quote', params);
  2020. this.quotableCompanyList[num].msg = res.msg;
  2021. if (res.code == '200') {
  2022. if (res.data.warnMessageList != null && res.data.warnMessageList[
  2023. 0] != null && res.data
  2024. .warnMessageList[
  2025. 0] != "") {
  2026. this.quotableCompanyList[num].lastYearMsg = "";
  2027. let dat = res.data.warnMessageList;
  2028. dat.map(ele => {
  2029. this.quotableCompanyList[num].lastYearMsg += ele +
  2030. '<br>';
  2031. })
  2032. }
  2033. const updatedItem = {
  2034. ...this.quotableCompanyList[num],
  2035. quoteCode: 200
  2036. };
  2037. this.quotableCompanyList.splice(num, 1, updatedItem);
  2038. this.quotableCompanyList[num].result = res.data;
  2039. this.subOrderId = res.data.companyId;
  2040. } else {
  2041. const updatedItem = {
  2042. ...this.quotableCompanyList[num],
  2043. quoteCode: '3'
  2044. };
  2045. this.quotableCompanyList.splice(num, 1, updatedItem);
  2046. this.quotableCompanyList[num].msg = res.msg;
  2047. return;
  2048. }
  2049. } catch (error) {
  2050. const updatedItem = {
  2051. ...this.quotableCompanyList[num],
  2052. quoteCode: '3'
  2053. };
  2054. this.quotableCompanyList.splice(num, 1, updatedItem);
  2055. this.quotableCompanyList[num].msg = '接口请求超时,请重新尝试';
  2056. }
  2057. },
  2058. //华泰报价
  2059. async HTIC(num, id) {
  2060. let isTaxSource = this.quotableCompanyList[num].isTaxSource;
  2061. let ccidenttype = this.quotableCompanyList[num].cnName;
  2062. let params = {
  2063. order: {
  2064. insuranceCompanyCode: id,
  2065. quoteNo: this.quoteno,
  2066. productId: this.productId,
  2067. },
  2068. accidentalDrivings: this.quotableCompanyList[num].insurancePlanInfo.drivings[0] ? [this
  2069. .quotableCompanyList[num].insurancePlanInfo.drivings[0]
  2070. ] : [],
  2071. kindInfoVo: this.quotableCompanyList[num].insurancePlanInfo.kinds,
  2072. // risks: thikindInfoVost,
  2073. ciRiskInfoVo: ['0330', '0330034002', '0330034001'].includes(this.productId) ? this
  2074. .ciRiskInfoVo : null, //交强大类
  2075. biRiskInfoVo: ['034001', '034002', '0330034002', '0330034001'].includes(this.productId) ? this
  2076. .biRiskInfoVo : null, //商业大类
  2077. carInfoVo: this.carInfo,
  2078. ownersInfo: this.ownerInfo,
  2079. policyHolderInfo: this.policyHolderInfo,
  2080. insuredPersonInfo: this.insuredPersonInfo,
  2081. vehicleAndVesselTaxVo: this.vehicleAndVesselTaxVo,
  2082. specialInfoVo: [...this.ziJinSpecialAgreementVojq, ...this.ziJinSpecialAgreementVosy], //特约
  2083. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  2084. // agreementId: this.quotableCompanyList[num].agreement[0].id,
  2085. systemType: '2'
  2086. };
  2087. try {
  2088. let res = await this.$http.post(
  2089. "/unify/order/quote", params);
  2090. this.quotableCompanyList[num].msg = res.msg;
  2091. if (res.code == '200') {
  2092. if (res.data.warnMessageList != null && res
  2093. .data.warnMessageList[0] != null && res
  2094. .data
  2095. .warnMessageList[
  2096. 0] != "") {
  2097. this.quotableCompanyList[num].lastYearMsg =
  2098. "";
  2099. let dat = res.data.warnMessageList;
  2100. dat.map(ele => {
  2101. this.quotableCompanyList[num]
  2102. .lastYearMsg += ele + '<br>';
  2103. })
  2104. }
  2105. const updatedItem = {
  2106. ...this.quotableCompanyList[num],
  2107. quoteCode: 200
  2108. };
  2109. this.quotableCompanyList.splice(num, 1, updatedItem);
  2110. this.quotableCompanyList[num].result = res.data;
  2111. this.subOrderId = res.data.companyId;
  2112. } else {
  2113. const updatedItem = {
  2114. ...this.quotableCompanyList[num],
  2115. quoteCode: '3'
  2116. };
  2117. this.quotableCompanyList.splice(num, 1, updatedItem);
  2118. this.quotableCompanyList[num].msg = res.msg;
  2119. return;
  2120. }
  2121. } catch (error) {
  2122. const updatedItem = {
  2123. ...this.quotableCompanyList[num],
  2124. quoteCode: '3'
  2125. };
  2126. this.quotableCompanyList.splice(num, 1, updatedItem);
  2127. this.quotableCompanyList[num].msg = '接口请求超时,请重新尝试';
  2128. }
  2129. },
  2130. //紫金报价
  2131. async ZKIC(num, id) {
  2132. let isTaxSource = this.quotableCompanyList[num].isTaxSource;
  2133. let ccidenttype = this.quotableCompanyList[num].cnName;
  2134. let params = {
  2135. order: {
  2136. insuranceCompanyCode: id,
  2137. quoteNo: this.quoteno,
  2138. productId: this.productId,
  2139. },
  2140. accidentalDrivings: this.quotableCompanyList[num].insurancePlanInfo.drivings[0] ? [this
  2141. .quotableCompanyList[num].insurancePlanInfo.drivings[0]
  2142. ] : [],
  2143. kindInfoVo: this.quotableCompanyList[num].insurancePlanInfo.kinds,
  2144. // risks: thikindInfoVost,
  2145. ciRiskInfoVo: ['0330', '0330034002', '0330034001'].includes(this.productId) ? this
  2146. .ciRiskInfoVo : null, //交强大类
  2147. biRiskInfoVo: ['034001', '034002', '0330034002', '0330034001'].includes(this.productId) ? this
  2148. .biRiskInfoVo : null, //商业大类
  2149. carInfoVo: this.carInfo,
  2150. ownersInfo: this.ownerInfo,
  2151. policyHolderInfo: this.policyHolderInfo,
  2152. insuredPersonInfo: this.insuredPersonInfo,
  2153. vehicleAndVesselTaxVo: this.vehicleAndVesselTaxVo,
  2154. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  2155. specialInfoVo: [...this.ziJinSpecialAgreementVojq, ...this.ziJinSpecialAgreementVosy], //特约
  2156. // agreementId: this.quotableCompanyList[num].agreement[0].id,
  2157. systemType: '2'
  2158. };
  2159. try {
  2160. let res = await this.$http.post('/unify/order/quote', params);
  2161. this.quotableCompanyList[num].msg = res.msg;
  2162. if (res.code == '200') {
  2163. if (res.data.warnMessageList != null && res.data
  2164. .warnMessageList[0] != null && res.data
  2165. .warnMessageList[
  2166. 0] != "") {
  2167. this.quotableCompanyList[num].lastYearMsg = "";
  2168. let dat = res.data.warnMessageList;
  2169. dat.map(ele => {
  2170. this.quotableCompanyList[num].lastYearMsg +=
  2171. ele + '<br>';
  2172. })
  2173. }
  2174. const updatedItem = {
  2175. ...this.quotableCompanyList[num],
  2176. quoteCode: 200
  2177. };
  2178. this.quotableCompanyList.splice(num, 1, updatedItem);
  2179. this.quotableCompanyList[num].result = res.data;
  2180. this.subOrderId = res.data.companyId;
  2181. } else {
  2182. const updatedItem = {
  2183. ...this.quotableCompanyList[num],
  2184. quoteCode: '3'
  2185. };
  2186. this.quotableCompanyList.splice(num, 1, updatedItem);
  2187. this.quotableCompanyList[num].msg = res.msg;
  2188. return;
  2189. }
  2190. } catch (error) {
  2191. const updatedItem = {
  2192. ...this.quotableCompanyList[num],
  2193. quoteCode: '3'
  2194. };
  2195. this.quotableCompanyList.splice(num, 1, updatedItem);
  2196. this.quotableCompanyList[num].msg = '接口请求超时,请重新尝试';
  2197. }
  2198. },
  2199. //国任报价
  2200. async XDCX(num, id) {
  2201. let isTaxSource = this.quotableCompanyList[num].isTaxSource;
  2202. let ccidenttype = this.quotableCompanyList[num].cnName;
  2203. let params = {
  2204. order: {
  2205. insuranceCompanyCode: id,
  2206. quoteNo: this.quoteno,
  2207. productId: this.productId,
  2208. },
  2209. accidentalDrivings: this.quotableCompanyList[num].insurancePlanInfo.drivings[0] ? [this
  2210. .quotableCompanyList[num].insurancePlanInfo.drivings[0]
  2211. ] : [],
  2212. kindInfoVo: this.quotableCompanyList[num].insurancePlanInfo.kinds,
  2213. // risks: thikindInfoVost,
  2214. ciRiskInfoVo: ['0330', '0330034002', '0330034001'].includes(this.productId) ? this
  2215. .ciRiskInfoVo : null, //交强大类
  2216. biRiskInfoVo: ['034001', '034002', '0330034002', '0330034001'].includes(this.productId) ? this
  2217. .biRiskInfoVo : null, //商业大类
  2218. carInfoVo: this.carInfo,
  2219. ownersInfo: this.ownerInfo,
  2220. policyHolderInfo: this.policyHolderInfo,
  2221. insuredPersonInfo: this.insuredPersonInfo,
  2222. vehicleAndVesselTaxVo: this.vehicleAndVesselTaxVo,
  2223. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  2224. specialInfoVo: [...this.guoRenSpecialAgreementVojq, ...this.guoRenSpecialAgreementVosy], //特约
  2225. // agreementId: this.quotableCompanyList[num].agreement[0].id,
  2226. systemType: '2'
  2227. };
  2228. try {
  2229. let res = await this.$http.post('/unify/order/quote',
  2230. params);
  2231. this.quotableCompanyList[num].msg = res.msg;
  2232. if (res.code == '200') {
  2233. if (res.data.warnMessageList != null && res.data
  2234. .warnMessageList[0] != null && res.data
  2235. .warnMessageList[
  2236. 0] != "") {
  2237. this.quotableCompanyList[num].lastYearMsg = "";
  2238. let dat = res.data.warnMessageList;
  2239. dat.map(ele => {
  2240. this.quotableCompanyList[num]
  2241. .lastYearMsg += ele + '<br>';
  2242. })
  2243. }
  2244. const updatedItem = {
  2245. ...this.quotableCompanyList[num],
  2246. quoteCode: 200
  2247. };
  2248. this.quotableCompanyList.splice(num, 1, updatedItem);
  2249. this.quotableCompanyList[num].result = res.data;
  2250. this.subOrderId = res.data.companyId;
  2251. } else {
  2252. const updatedItem = {
  2253. ...this.quotableCompanyList[num],
  2254. quoteCode: '3'
  2255. };
  2256. this.quotableCompanyList.splice(num, 1, updatedItem);
  2257. this.quotableCompanyList[num].msg = res.msg;
  2258. return;
  2259. }
  2260. } catch (error) {
  2261. const updatedItem = {
  2262. ...this.quotableCompanyList[num],
  2263. quoteCode: '3'
  2264. };
  2265. this.quotableCompanyList.splice(num, 1, updatedItem);
  2266. this.quotableCompanyList[num].msg = '接口请求超时,请重新尝试';
  2267. }
  2268. },
  2269. //大家报价
  2270. async DJPC(num, id) {
  2271. let isTaxSource = this.quotableCompanyList[num].isTaxSource;
  2272. let ccidenttype = this.quotableCompanyList[num].cnName;
  2273. let params = {
  2274. order: {
  2275. insuranceCompanyCode: id,
  2276. quoteNo: this.quoteno,
  2277. productId: this.productId,
  2278. },
  2279. accidentalDrivings: this.quotableCompanyList[num].insurancePlanInfo.drivings[0] ? [this
  2280. .quotableCompanyList[num].insurancePlanInfo.drivings[0]
  2281. ] : [],
  2282. kindInfoVo: this.quotableCompanyList[num].insurancePlanInfo.kinds,
  2283. // risks: thikindInfoVost,
  2284. ciRiskInfoVo: ['0330', '0330034002', '0330034001'].includes(this.productId) ? this
  2285. .ciRiskInfoVo : null, //交强大类
  2286. biRiskInfoVo: ['034001', '034002', '0330034002', '0330034001'].includes(this.productId) ? this
  2287. .biRiskInfoVo : null, //商业大类
  2288. carInfoVo: this.carInfo,
  2289. ownersInfo: this.ownerInfo,
  2290. policyHolderInfo: this.policyHolderInfo,
  2291. insuredPersonInfo: this.insuredPersonInfo,
  2292. vehicleAndVesselTaxVo: this.vehicleAndVesselTaxVo,
  2293. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  2294. // agreementId: this.quotableCompanyList[num].agreement[0].id,
  2295. systemType: '2'
  2296. };
  2297. try {
  2298. let res = await this.$http.post("/unify/order/quote",
  2299. params);
  2300. this.quotableCompanyList[num].msg = res.msg;
  2301. if (res.code == '200') {
  2302. if (res.data.warnMessageList != null && res.data
  2303. .warnMessageList[0] != null && res.data
  2304. .warnMessageList[
  2305. 0] != "") {
  2306. this.quotableCompanyList[num].lastYearMsg = "";
  2307. let dat = res.data.warnMessageList;
  2308. dat.map(ele => {
  2309. this.quotableCompanyList[num]
  2310. .lastYearMsg += ele + '<br>';
  2311. })
  2312. }
  2313. const updatedItem = {
  2314. ...this.quotableCompanyList[num],
  2315. quoteCode: 200
  2316. };
  2317. this.quotableCompanyList.splice(num, 1, updatedItem);
  2318. this.quotableCompanyList[num].result = res.data;
  2319. this.subOrderId = res.data.companyId;
  2320. } else {
  2321. const updatedItem = {
  2322. ...this.quotableCompanyList[num],
  2323. quoteCode: '3'
  2324. };
  2325. this.quotableCompanyList.splice(num, 1, updatedItem);
  2326. this.quotableCompanyList[num].msg = res.msg;
  2327. return;
  2328. }
  2329. } catch (error) {
  2330. const updatedItem = {
  2331. ...this.quotableCompanyList[num],
  2332. quoteCode: '3'
  2333. };
  2334. this.quotableCompanyList.splice(num, 1, updatedItem);
  2335. this.quotableCompanyList[num].msg = '接口请求超时,请重新尝试';
  2336. }
  2337. },
  2338. //安盛天平
  2339. TPBX(num, id) {
  2340. this.quoteInsurance(num, id);
  2341. },
  2342. //华农
  2343. HNIC(num, id) {
  2344. this.quoteInsurance(num, id);
  2345. },
  2346. //太平
  2347. TPIC(num, id) {
  2348. this.quoteInsurance(num, id);
  2349. },
  2350. //众安
  2351. ZAPA(num, id) {
  2352. this.quoteInsurance(num, id);
  2353. },
  2354. //人寿
  2355. GPIC(num, id) {
  2356. this.quoteInsurance(num, id);
  2357. },
  2358. //恒邦
  2359. HBIC(num, id) {
  2360. this.quoteInsurance(num, id);
  2361. },
  2362. //泰康
  2363. TKIC(num, id) {
  2364. this.quoteInsurance(num, id);
  2365. },
  2366. //诚泰
  2367. CHAC(num, id) {
  2368. this.quoteInsurance(num, id);
  2369. },
  2370. //爬虫统一报价接口
  2371. async quoteInsurance(num, id) {
  2372. const companyId = uni.getStorageSync('companyId');
  2373. let ccidenttype = this.quotableCompanyList[num]
  2374. .cnName;
  2375. let nameSimple = this.quotableCompanyList[num]
  2376. .nameSimple;
  2377. let isTaxSource = this.quotableCompanyList[num].isTaxSource;
  2378. let params = {
  2379. order: {
  2380. insuranceCompanyCode: id,
  2381. quoteNo: this.quoteno,
  2382. productId: this.productId,
  2383. },
  2384. accidentalDrivings: this.quotableCompanyList[num].insurancePlanInfo.drivings[0] ? [this
  2385. .quotableCompanyList[num].insurancePlanInfo.drivings[0]
  2386. ] : [],
  2387. kindInfoVo: this.quotableCompanyList[num].insurancePlanInfo.kinds,
  2388. // risks: thikindInfoVost,
  2389. ciRiskInfoVo: ['0330', '0330034002', '0330034001'].includes(this.productId) ? this
  2390. .ciRiskInfoVo : null, //交强大类
  2391. biRiskInfoVo: ['034001', '034002', '0330034002', '0330034001'].includes(this.productId) ? this
  2392. .biRiskInfoVo : null, //商业大类
  2393. carInfoVo: this.carInfo,
  2394. ownersInfo: this.ownerInfo,
  2395. policyHolderInfo: this.policyHolderInfo,
  2396. insuredPersonInfo: this.insuredPersonInfo,
  2397. vehicleAndVesselTaxVo: this.vehicleAndVesselTaxVo,
  2398. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  2399. // agreementId: this.quotableCompanyList[num].agreement[0].id,
  2400. systemType: '2'
  2401. };
  2402. if (id = 'GPIC1000000') {
  2403. if (companyId) {
  2404. params.discount = this.quotableCompanyList[num]
  2405. .syAdjustRate;
  2406. params.lastCompanyId = this.subOrderId;
  2407. }
  2408. }
  2409. if (nameSimple == "诚泰财险") {
  2410. if (this.subOrderId && this.quotableCompanyList[num].coefficient && this.quotableCompanyList[num]
  2411. .discount) {
  2412. params.coefficient = this.quotableCompanyList[num].coefficient;
  2413. params.discount = this.quotableCompanyList[num].discount;
  2414. params.lastCompanyId = this.subOrderId;
  2415. }
  2416. params.isInspect = this.isInspectchange;
  2417. }
  2418. try {
  2419. let res = await this.$http.post('/unify/order/quote',
  2420. params);
  2421. switch (nameSimple) {
  2422. case '安盛天平':
  2423. case '恒邦财险':
  2424. case '诚泰财险':
  2425. case '中国人寿':
  2426. case '太平财险':
  2427. case '华农财险':
  2428. case '泰康财险':
  2429. if (res.code == '200') {
  2430. if (res.data.warnMessageList !=
  2431. null && res.data
  2432. .warnMessageList[0] != null &&
  2433. res.data
  2434. .warnMessageList[
  2435. 0] != "") {
  2436. this.quotableCompanyList[num]
  2437. .lastYearMsg = "";
  2438. let dat = res.data
  2439. .warnMessageList;
  2440. dat.map(ele => {
  2441. this.quotableCompanyList[
  2442. num]
  2443. .lastYearMsg +=
  2444. ele + '<br>';
  2445. })
  2446. }
  2447. const updatedItem = {
  2448. ...this.quotableCompanyList[num],
  2449. quoteCode: 200
  2450. };
  2451. this.quotableCompanyList.splice(num, 1, updatedItem);
  2452. this.quotableCompanyList[num].result =
  2453. res.data;
  2454. this.subOrderId = res.data.companyId;
  2455. this.CTcoefficientForm.initialProposalDiscount = res.data.initialProposalDiscount;
  2456. this.CTcoefficientForm.expectedDiscount = res.data.expectedDiscount;
  2457. this.CTcoefficientForm.pricingCoefficient = res.data.pricingCoefficient;
  2458. if (res.data.syAdjustRate) {
  2459. this.quotableCompanyList[num].syAdjustRate = res.data.syAdjustRate;
  2460. uni.setStorageSync('companyId', res.data.companyId);
  2461. }
  2462. } else {
  2463. const updatedItem = {
  2464. ...this.quotableCompanyList[num],
  2465. quoteCode: '3'
  2466. };
  2467. this.quotableCompanyList.splice(num, 1, updatedItem);
  2468. this.quotableCompanyList[num].msg =
  2469. res.msg;
  2470. }
  2471. break;
  2472. case '众安财险':
  2473. if (res.code == '200') {
  2474. if (res.data.warnMessageList !=
  2475. null && res.data
  2476. .warnMessageList[0] != null &&
  2477. res.data
  2478. .warnMessageList[
  2479. 0] != "") {
  2480. this.quotableCompanyList[num]
  2481. .lastYearMsg = "";
  2482. let dat = res.data
  2483. .warnMessageList;
  2484. dat.map(ele => {
  2485. this.quotableCompanyList[
  2486. num]
  2487. .lastYearMsg +=
  2488. ele + '<br>';
  2489. })
  2490. }
  2491. const updatedItem = {
  2492. ...this.quotableCompanyList[num],
  2493. quoteCode: 200
  2494. };
  2495. this.quotableCompanyList.splice(num, 1, updatedItem);
  2496. this.quotableCompanyList[num].result =
  2497. res.data;
  2498. this.subOrderId = res.data.companyId;
  2499. } else {
  2500. const updatedItem = {
  2501. ...this.quotableCompanyList[num],
  2502. quoteCode: '3'
  2503. };
  2504. this.quotableCompanyList.splice(num, 1, updatedItem);
  2505. this.quotableCompanyList[num].msg =
  2506. res.msg;
  2507. }
  2508. break;
  2509. default:
  2510. break;
  2511. }
  2512. } catch (error) {
  2513. const updatedItem = {
  2514. ...this.quotableCompanyList[num],
  2515. quoteCode: '3'
  2516. };
  2517. this.quotableCompanyList.splice(num, 1, updatedItem);
  2518. this.quotableCompanyList[num].msg = '接口请求超时,请重新尝试';
  2519. }
  2520. },
  2521. convertedValue(num) {
  2522. if (num < 10000) {
  2523. return num.toString();
  2524. } else if (num < 100000000) {
  2525. return (Math.floor(num / 10000 * 10) / 10) + '万';
  2526. } else {
  2527. return (Math.floor(num / 100000000 * 10) / 10) + '亿';
  2528. }
  2529. },
  2530. riskTypeEchoProcessing(code) {
  2531. switch (code) {
  2532. case '0330':
  2533. this.ciRiskInfoVo.startDate = this.jqstartDate;
  2534. this.ciRiskInfoVo.endDate = this.jqendDate;
  2535. break;
  2536. case '034001':
  2537. case '034002':
  2538. this.biRiskInfoVo.startDate = this.systartDate;
  2539. this.biRiskInfoVo.endDate = this.syendDate;
  2540. break;
  2541. case '0330034002':
  2542. case '0330034001':
  2543. this.ciRiskInfoVo.startDate = this.jqstartDate;
  2544. this.ciRiskInfoVo.endDate = this.jqendDate;
  2545. this.biRiskInfoVo.startDate = this.systartDate;
  2546. this.biRiskInfoVo.endDate = this.syendDate;
  2547. break;
  2548. }
  2549. },
  2550. //查看详情
  2551. querydetial(id, cnName) {
  2552. uni.navigateTo({
  2553. url: '/pages/quote/quoteDetail',
  2554. success: (res) => {
  2555. res.eventChannel.emit("acceptData", {
  2556. id: id,
  2557. cnName: cnName,
  2558. quotableCompanyList: this.quotableCompanyList,
  2559. })
  2560. }
  2561. });
  2562. },
  2563. //报价单
  2564. bjdpreview(id) {
  2565. uni.navigateTo({
  2566. url: "/pages/quote/quotation?ordersNo=" + id
  2567. })
  2568. },
  2569. //预核保信息
  2570. preUnderwriting(list) {
  2571. this.RSpreUnderwritingList = list;
  2572. this.preUnderwritingshow = true;
  2573. },
  2574. //上年信息
  2575. YearMsg(msg, title) {
  2576. let content = msg.replace(/<br>/g, "\r\n")
  2577. uni.showModal({
  2578. title: title + "上年信息",
  2579. content: content,
  2580. showCancel: false,
  2581. confirmText: "关闭"
  2582. })
  2583. },
  2584. // 显示报错信息
  2585. ErrorMsg(msg, title) {
  2586. uni.showModal({
  2587. title: title + "报价提示",
  2588. content: msg,
  2589. showCancel: false,
  2590. confirmText: "关闭"
  2591. })
  2592. },
  2593. discountErrorMessageMsg(msg, title) {
  2594. this.discountInfoPopup = true;
  2595. this.discountInfoPopupContent = msg.replace(/\n/g, '<br>');
  2596. this.discountInfoPopupTitle = title;
  2597. // let content = msg.replace(/\n/g, "\r\n")
  2598. // uni.showModal({
  2599. // title: title + "优惠信息",
  2600. // content: content,
  2601. // showCancel: false,
  2602. // confirmText: "关闭"
  2603. // })
  2604. },
  2605. //使用此时间
  2606. syncData(item) {
  2607. this.jqstartDate = item.ciStartDate ? item
  2608. .ciStartDate : this.jqstartDate
  2609. this.jqendDate = item.ciEndDate ? item
  2610. .ciEndDate : this.jqendDate
  2611. this.systartDate = item.biStartDate ? item
  2612. .biStartDate : this.systartDate
  2613. this.syendDate = item.biEndDate ? item
  2614. .biEndDate : this.syendDate
  2615. uni.showToast({
  2616. title: '时间已替换',
  2617. icon: 'none',
  2618. duration: 1000
  2619. });
  2620. },
  2621. //车船税类型选择
  2622. taxRelifFlagConfirm(val, name) {
  2623. this.vehicleAndVesselTaxVo[name] = val[0].value;
  2624. this.model[name] = val[0].label;
  2625. },
  2626. taxDocumentDateconfirm(e) {
  2627. this.vehicleAndVesselTaxVo.taxDocumentDate = e.year + '-' + e.month + '-' + e.day;
  2628. },
  2629. taxPaidAreaCodeconfirm(e) {
  2630. this.vehicleAndVesselTaxVo.taxPaidAreaCode = e.province.value;
  2631. this.model.taxPaidAreaCode = e.province.label;
  2632. },
  2633. //数据字典
  2634. async getDicType(type) {
  2635. let res = await this.$http.get('/sysDict/dictDetails/' + type);
  2636. this[type + "options"] = res.data.ddList;
  2637. },
  2638. jqstartconfirm(e) {
  2639. this.jqstartDate = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM') + ':00';
  2640. this.jqstartShow = false;
  2641. },
  2642. jqendconfirm(e) {
  2643. this.jqendDate = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM') + ':00';
  2644. this.jqendShow = false;
  2645. },
  2646. systartconfirm(e) {
  2647. this.systartDate = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM') + ':00';
  2648. this.systartShow = false;
  2649. },
  2650. syendconfirm(e) {
  2651. this.syendDate = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM') + ':00';
  2652. this.syendShow = false;
  2653. },
  2654. transferDateconfirm(e) {
  2655. this.carInfo.transferDate = uni.$u.timeFormat(e.value, 'yyyy-mm-dd');
  2656. this.transferDateShow = false;
  2657. },
  2658. statusclick(value) {
  2659. this.SelectedPlanId = value;
  2660. let planObj = this.planDataExpansion.genericPlanList.find(item => item.schemeId == value);
  2661. if (planObj.kinds && planObj.schemeType == '2') {
  2662. planObj.kinds.map(item => {
  2663. const itemamtList = item.amtList.map(val => {
  2664. return val.label
  2665. })
  2666. if (!itemamtList.includes('不投保')) {
  2667. item.amount = item.amtList[0].value;
  2668. item.amountDesc = item.amtList[0].label;
  2669. }
  2670. return item;
  2671. })
  2672. }
  2673. this.planDataExpansion.genericPlanInfo = planObj;
  2674. },
  2675. InsureGuideclick(item) {
  2676. this.insGuide = item.insGuide;
  2677. this.insGuideTitle = item.nameSimple;
  2678. this.InsureGuidePopup = true;
  2679. },
  2680. // 可删
  2681. async accidentCategoryclick(item, items, index) {
  2682. this.accidentInsuranceCategoryList[index].checked = !this.accidentInsuranceCategoryList[index].checked;
  2683. if (this.accidentInsuranceCategoryList[index].checked) {
  2684. let res = await this.$http.get('/plt/scheme/optionalSchemeDriving?schemeId=' + this
  2685. .SelectedPlanId + '&seatNum=' + this.carInfo.seatCount)
  2686. switch (items.nameSimple) {
  2687. case '安盛天平':
  2688. case '国任财险':
  2689. case '大家财险':
  2690. case '永诚财险':
  2691. case '恒邦财险':
  2692. case '诚泰财险':
  2693. case '中煤财险':
  2694. case '泰康财险':
  2695. case '渤海财险':
  2696. case '众安财险':
  2697. case '太平财险':
  2698. case '华农财险':
  2699. case '中国人寿':
  2700. if (res.data.length > 0) {
  2701. this[items.cnName + 'InsuranceData'] = res.data; //意外险list
  2702. this[items.cnName + 'accidentalDrivingVo'] = {
  2703. typeName: item.typeName,
  2704. ...res.data[0]
  2705. };
  2706. } else {
  2707. uni.showToast({
  2708. title: "驾意险为空",
  2709. icon: 'none',
  2710. });
  2711. }
  2712. break;
  2713. case '紫金财险':
  2714. this[items.cnName + 'InsuranceData'] = res.data; //意外险list
  2715. this[items.cnName + 'accidentalDrivingVo'] = [];
  2716. break;
  2717. }
  2718. } else {
  2719. if (items.nameSimple == '紫金财险') {
  2720. this[items.cnName + 'InsuranceData'] = [];
  2721. this[items.cnName + 'accidentalDrivingVo'] = []
  2722. } else {
  2723. this[items.cnName + 'accidentalDrivingVo'] = {}
  2724. }
  2725. }
  2726. },
  2727. //查看方案
  2728. checkSelection(item) {
  2729. uni.navigateTo({
  2730. url: '/pages/quote/checkOption',
  2731. success: (res) => {
  2732. res.eventChannel.emit("acceptData", {
  2733. item: item,
  2734. seatNum: this.carInfo.seatCount,
  2735. jqstartDate: this.jqstartDate,
  2736. jqendDate: this.jqendDate,
  2737. systartDate: this.systartDate,
  2738. syendDate: this.syendDate,
  2739. productName: this.productName,
  2740. productId: this.productId,
  2741. taxRelifFlag: this.model.taxRelifFlag,
  2742. })
  2743. }
  2744. }, "navigateTo", true);
  2745. },
  2746. //选择方案
  2747. async SchemeSelection(item) {
  2748. uni.navigateTo({
  2749. url: '/pages/quote/chooseOption',
  2750. success: (res) => {
  2751. res.eventChannel.emit("acceptData", {
  2752. params: {
  2753. companyId: item.id,
  2754. productId: this.productId,
  2755. },
  2756. nameSimple: item.nameSimple,
  2757. cnName: item.cnName,
  2758. jqstartDate: this.jqstartDate,
  2759. jqendDate: this.jqendDate,
  2760. systartDate: this.systartDate,
  2761. syendDate: this.syendDate,
  2762. productName: this.productName,
  2763. quotableCompanyList: this.quotableCompanyList,
  2764. identifyNumber: this.policyHolderInfo.identifyNumber,
  2765. taxpayerName: this.policyHolderInfo.name,
  2766. })
  2767. }
  2768. }, "navigateTo", true);
  2769. },
  2770. //即时投保时处理时间
  2771. datelyClick(value, name, startDate, endDate, obj) {
  2772. this[name] = value;
  2773. if (value == 1) {
  2774. const date = new Date();
  2775. date.setHours(date.getHours() + 2);
  2776. date.setMinutes(0)
  2777. date.setSeconds(0)
  2778. this[startDate] = this.transformTime(date)
  2779. this[endDate] = this.oneYearPast(date);
  2780. this[obj].instantFlag = true;
  2781. } else {
  2782. this[startDate] = this.nextday();
  2783. this[endDate] = this.oneYearPast(this.jqstartDate);
  2784. this[obj].instantFlag = false;
  2785. }
  2786. },
  2787. //获取保险公司列表
  2788. commpanyList(item) {
  2789. let list = [];
  2790. this.quotableCompanyList.map(ele => {
  2791. ele["result"] = {};
  2792. ele["quoteCode"] = 0;
  2793. ele["checked"] = false;
  2794. ele["msg"] = "";
  2795. ele["lastYearMsg"] = "";
  2796. ele["agreementName"] = "";
  2797. ele["apiType"] = "";
  2798. ele["coefficient"] = "";
  2799. ele["discount"] = "";
  2800. ele["isInspect"] = false;
  2801. ele["syAdjustRate"] = "";
  2802. ele["selectShow"] = false;
  2803. ele['underwritingDescription'] = "";
  2804. ele['isComparableShow'] = false;
  2805. ele['isComparableshowHide'] = false;
  2806. ele['isComparableDisabled'] = false;
  2807. ele['insurancePlanInfo'] = null;
  2808. if (this.order && this.order.orderStatus) {
  2809. if (this.costs.sumPremium) {
  2810. ele.result = item;
  2811. ele.insurancePlanInfo = {};
  2812. ele.insurancePlanInfo.drivings = item.accidentalDrivings;
  2813. ele.insurancePlanInfo.kinds = item.kindInfoVo;
  2814. ele.quoteCode = 200;
  2815. } else {
  2816. ele.result = item;
  2817. ele.msg = item.errorMessage;
  2818. ele.insurancePlanInfo = {};
  2819. ele.insurancePlanInfo.drivings = item.accidentalDrivings;
  2820. ele.insurancePlanInfo.kinds = item.kindInfoVo;
  2821. ele.quoteCode = 3;
  2822. }
  2823. }
  2824. return ele;
  2825. })
  2826. this.comparableQuantity = list.length;
  2827. },
  2828. priceComparisonChange(index, item) {
  2829. if (!item.isComparableDisabled) {
  2830. item.isComparableShow = !item.isComparableShow;
  2831. if (item.isComparableShow) {
  2832. this.selectedCount++;
  2833. } else {
  2834. this.selectedCount--;
  2835. }
  2836. this.updateCheckboxStates();
  2837. }
  2838. },
  2839. updateCheckboxStates() {
  2840. this.quotableCompanyList.forEach(item => {
  2841. item.isComparableDisabled = this.selectedCount >= 3 && !item.isComparableShow;
  2842. });
  2843. },
  2844. immediatelyClick(name) {
  2845. this.carInfo[name] = !this.carInfo[name];
  2846. if (name == 'transfer') {
  2847. if (this.carInfo[name]) {
  2848. this.carInfo.transferDate = this.carInfo.issueDate;
  2849. } else {
  2850. this.carInfo.transferDate = "";
  2851. }
  2852. }
  2853. },
  2854. toCarInfo() {
  2855. uni.navigateTo({
  2856. url: '/pages/quote/quoteInfo',
  2857. success: (res) => {
  2858. res.eventChannel.emit(
  2859. "acceptData", {
  2860. carInfo: this
  2861. .carInfo, //车辆信息
  2862. ownerInfo: this
  2863. .ownerInfo, //车主信息
  2864. policyHolderInfo: this
  2865. .policyHolderInfo, //投保人信息
  2866. insuredPersonInfo: this
  2867. .insuredPersonInfo, //被保人信息
  2868. carImageListId: this
  2869. .carImageListId, //车辆
  2870. ownerImageListId: this
  2871. .ownerImageListId, //车主
  2872. policyHolderImageListId: this
  2873. .policyHolderImageListId, //投保
  2874. insuredPersonImageListId: this
  2875. .insuredPersonImageListId, //被保人
  2876. productId: this.productId, //险种id
  2877. productName: this.productName, //险种名称
  2878. quoteno: this.quoteno, //报价号
  2879. })
  2880. }
  2881. }, "navigateTo", true);
  2882. },
  2883. //计算输入时间一年后的的前一天(输入的参数为字符串("2019-03-02")最终输出也为日期的字符串)
  2884. oneYearPast(time) {
  2885. var date = new Date(time);
  2886. date.setSeconds(date.getSeconds() - 1);
  2887. date.setFullYear(date.getFullYear() + 1); //一年后
  2888. date.setTime(date.getTime()); //一年后的前一天
  2889. var strYear = date.getFullYear();
  2890. var strDay = date.getDate();
  2891. var strMonth = date.getMonth() + 1;
  2892. var hh = date.getHours();
  2893. var minutes = date.getMinutes(); // 分
  2894. var Seconds = date.getSeconds();
  2895. if (hh < 10) {
  2896. hh = "0" + hh;
  2897. }
  2898. if (minutes < 10) {
  2899. minutes = "0" + minutes;
  2900. }
  2901. if (Seconds < 10) {
  2902. Seconds = "0" + Seconds;
  2903. }
  2904. if (strMonth < 10) {
  2905. strMonth = "0" + strMonth;
  2906. }
  2907. if (strDay < 10) {
  2908. strDay = "0" + strDay;
  2909. }
  2910. var datastr =
  2911. strYear + "-" + strMonth + "-" + strDay + " " + hh + ":" + minutes + ":" + Seconds;
  2912. return datastr;
  2913. },
  2914. //次日
  2915. nextday() {
  2916. var date = new Date();
  2917. date.setFullYear(date.getFullYear());
  2918. date.setTime(date.getTime() + 24 * 60 * 60 * 1000);
  2919. var strYear = date.getFullYear();
  2920. var strDay = date.getDate();
  2921. var strMonth = date.getMonth() + 1;
  2922. var hh = date.getHours();
  2923. if (hh < 10) {
  2924. hh = "0" + hh;
  2925. }
  2926. if (strMonth < 10) {
  2927. strMonth = "0" + strMonth;
  2928. }
  2929. if (strDay < 10) {
  2930. strDay = "0" + strDay;
  2931. }
  2932. var datastr = strYear + "-" + strMonth + "-" + strDay + " " + "00:00:00";
  2933. return datastr;
  2934. },
  2935. //时间转换
  2936. transformTime(date) {
  2937. var d = new Date(date);
  2938. var strYear = d.getFullYear();
  2939. var strMonth = d.getMonth() + 1;
  2940. var strDay = d.getDate();
  2941. var hh = d.getHours();
  2942. var minutes = d.getMinutes(); // 分
  2943. var Seconds = d.getSeconds();
  2944. if (hh < 10) {
  2945. hh = "0" + hh;
  2946. }
  2947. if (minutes < 10) {
  2948. minutes = "0" + minutes;
  2949. }
  2950. if (Seconds < 10) {
  2951. Seconds = "0" + Seconds;
  2952. }
  2953. if (strMonth < 10) {
  2954. strMonth = "0" + strMonth;
  2955. }
  2956. if (strDay < 10) {
  2957. strDay = "0" + strDay;
  2958. }
  2959. var datetime =
  2960. strYear + "-" + strMonth + "-" + strDay + " " + hh + ":" + minutes + ":" + Seconds;
  2961. return datetime;
  2962. },
  2963. toChinesNum(num) {
  2964. let overWan = Math.floor(num / 10000);
  2965. let result = overWan + "万";
  2966. return result;
  2967. },
  2968. resubmitImageconfirm() {
  2969. this.uploadRetry();
  2970. this.resubmitDocumentsShow = false;
  2971. },
  2972. //删除图片
  2973. delCheckImage(param, IdList, srcList) {
  2974. this[IdList].map((ele, index) => {
  2975. if (param.imageId === ele.imageId) {
  2976. this[IdList].splice(index, 1);
  2977. }
  2978. return ele;
  2979. });
  2980. this[srcList].map((ele, index) => {
  2981. if (param.imageId === ele.imageId) {
  2982. this[srcList].splice(index, 1);
  2983. }
  2984. return ele;
  2985. });
  2986. },
  2987. async chooseImage(type, imageIdList, imgurl) {
  2988. let [chooseImageErr, chooseImageRes] = await uni.chooseImage({
  2989. count: 1,
  2990. sizeType: ['compressed']
  2991. });
  2992. chooseImageRes.tempFilePaths.map((ele, index) => {
  2993. uni.uploadFile({
  2994. url: this.$base.baseUrl + '/ins/taskImage/uploadFile',
  2995. filePath: ele,
  2996. name: "multipartFile",
  2997. formData: {
  2998. 'type': 'image',
  2999. },
  3000. header: {
  3001. Authorization: this.token,
  3002. },
  3003. success: async (imgRes) => {
  3004. let data = JSON.parse(imgRes.data);
  3005. data.data.url = this.$base.baseUrl + data.data.url;
  3006. if (data.code == "200") {
  3007. if (this[imageIdList].some(v => v.imageType == type)) {
  3008. this[imageIdList].map(val => {
  3009. if (val.imageType == type) {
  3010. val.imageId = data.data.id;
  3011. }
  3012. })
  3013. } else {
  3014. this[imageIdList].push({
  3015. imageId: data.data.id,
  3016. imageType: type,
  3017. })
  3018. }
  3019. this[imgurl].push(data.data)
  3020. }
  3021. }
  3022. });
  3023. })
  3024. },
  3025. //补传影像
  3026. resubmitImage(quoteno) {
  3027. this.resubmitDocumentsShow = true;
  3028. this.imageEcho(quoteno) // 影像获取完毕
  3029. },
  3030. //提交核保
  3031. async uploadRetry() {
  3032. const mergedArray = [...this.carImageListId, ...this.ownerImageListId, ...this
  3033. .policyHolderImageListId, ...this.insuredPersonImageListId, ...this
  3034. .imgRelationshipid, ...this.carInspectionImage
  3035. ];
  3036. if (mergedArray.length > 0) {
  3037. let res = await this.$http.post('/ins/taskImage/uploadImages', {
  3038. imageList: mergedArray,
  3039. quoteNo: this.quoteno,
  3040. })
  3041. if (res.code == '200') {
  3042. uni.showToast({
  3043. title: "上传成功",
  3044. icon: 'none',
  3045. });
  3046. }
  3047. }
  3048. },
  3049. auditNextconfirm() {
  3050. setTimeout(async () => {
  3051. switch (this.insuranceCompanyName) {
  3052. case "永安财险":
  3053. let yaimage = await this.$http.post(
  3054. '/order/yongAn/submitImage', {
  3055. companyId: this.companyId
  3056. });
  3057. if (yaimage.code == '200') {
  3058. let yaaudit = await this.$http.post(
  3059. '/order/yongAn/audit', {
  3060. companyId: this.companyId,
  3061. jqappoint: "",
  3062. syappoint: ""
  3063. });
  3064. if (yaaudit.code == '200') {
  3065. this.underwriteTitle = '订单自核成功';
  3066. this.cancelText = '暂不缴费';
  3067. this.confirmText = '立即缴费';
  3068. this.underwriteShow = true;
  3069. } else {
  3070. this.underwriteTitle = '核保失败';
  3071. this.cancelText = '返回订单';
  3072. this.confirmText = '关闭';
  3073. this.underwriteMsg = yaaudit.msg;
  3074. this.underwriteShow = true;
  3075. }
  3076. } else {
  3077. this.underwriteTitle = '影像上传失败';
  3078. this.cancelText = '返回订单';
  3079. this.confirmText = '关闭';
  3080. this.underwriteMsg = yaimage.msg;
  3081. this.underwriteShow = true;
  3082. }
  3083. break;
  3084. case "中煤财险":
  3085. let zmapiImage = this.apiType == "2" ? "/insurance/crawler/submitImage" :
  3086. '/order/zhongMeiApi/submitImage';
  3087. let zmimage = await this.$http.post(
  3088. `${zmapiImage}`, {
  3089. [this.apiType == 2 ? "subOrderNo" : "companyId"]: this.companyId
  3090. });
  3091. if (zmimage.code == '200') {
  3092. let zmapiAudit = this.apiType == "2" ? "/insurance/crawler/audit" :
  3093. '/order/zhongMeiApi/audit';
  3094. let zmaudit = await this.$http.post(
  3095. `${zmapiAudit}`, {
  3096. [this.apiType == 2 ? "subOrderNo" : "companyId"]: this.companyId,
  3097. jqappoint: "",
  3098. syappoint: ""
  3099. });
  3100. if (zmaudit.code == '200') {
  3101. this.underwriteTitle = '订单自核成功';
  3102. this.cancelText = '暂不缴费';
  3103. this.confirmText = '立即缴费';
  3104. this.underwriteShow = true;
  3105. } else {
  3106. this.underwriteTitle = '核保失败';
  3107. this.cancelText = '返回订单';
  3108. this.confirmText = '关闭';
  3109. this.underwriteMsg = zmaudit.msg;
  3110. this.underwriteShow = true;
  3111. }
  3112. } else {
  3113. this.underwriteTitle = '影像上传失败';
  3114. this.cancelText = '返回订单';
  3115. this.confirmText = '关闭';
  3116. this.underwriteMsg = zmimage.msg;
  3117. this.underwriteShow = true;
  3118. }
  3119. break;
  3120. case "永诚财险":
  3121. let ycimage = await this.$http.post(
  3122. '/api/yongCheng/uploadImage', {
  3123. companyId: this.companyId
  3124. });
  3125. if (ycimage.code == '200') {
  3126. let ycaudit = await this.$http.post(
  3127. '/api/yongCheng/audit', {
  3128. companyId: this.companyId,
  3129. });
  3130. if (ycaudit.code == '200') {
  3131. this.underwriteTitle = '订单自核成功';
  3132. this.cancelText = '暂不缴费';
  3133. this.confirmText = '立即缴费';
  3134. this.underwriteShow = true;
  3135. } else {
  3136. this.underwriteTitle = '核保失败';
  3137. this.cancelText = '返回订单';
  3138. this.confirmText = '关闭';
  3139. this.underwriteMsg = ycaudit.msg;
  3140. this.underwriteShow = true;
  3141. }
  3142. } else {
  3143. this.underwriteTitle = '影像上传失败';
  3144. this.cancelText = '返回订单';
  3145. this.confirmText = '关闭';
  3146. this.underwriteMsg = ycimage.msg;
  3147. this.underwriteShow = true;
  3148. }
  3149. break;
  3150. case "国任财险":
  3151. let grimage = await this.$http.post(
  3152. '/api/guoRen/uploadImage', {
  3153. companyId: this.companyId
  3154. });
  3155. if (grimage.code == '200') {
  3156. let graudit = await this.$http.post(
  3157. '/api/guoRen/audit', {
  3158. companyId: this.companyId,
  3159. });
  3160. if (graudit.code == '200') {
  3161. this.underwriteTitle = '订单自核成功';
  3162. this.cancelText = '暂不缴费';
  3163. this.confirmText = '立即缴费';
  3164. this.underwriteShow = true;
  3165. } else {
  3166. this.underwriteTitle = '核保失败';
  3167. this.cancelText = '返回订单';
  3168. this.confirmText = '关闭';
  3169. this.underwriteMsg = graudit.msg;
  3170. this.underwriteShow = true;
  3171. }
  3172. } else {
  3173. this.underwriteTitle = '影像上传失败';
  3174. this.cancelText = '返回订单';
  3175. this.confirmText = '关闭';
  3176. this.underwriteMsg = grimage.msg;
  3177. this.underwriteShow = true;
  3178. }
  3179. break;
  3180. case "大家财险":
  3181. let djapiImage = this.apiType == "2" ? "/insurance/crawler/submitImage" :
  3182. "/api/dajia/submitImage";
  3183. let djimage = await this.$http.post(
  3184. `${djapiImage}`, {
  3185. [this.apiType == 2 ? "subOrderNo" : "companyId"]: this.companyId
  3186. });
  3187. if (djimage.code == '200') {
  3188. let djapiAudit = this.apiType == "2" ? "/insurance/crawler/audit" :
  3189. '/api/dajia/audit';
  3190. let djaudit = await this.$http.post(
  3191. `${djapiAudit}`, {
  3192. [this.apiType == 2 ? "subOrderNo" : "companyId"]: this.companyId,
  3193. });
  3194. if (djaudit.code == '200') {
  3195. this.underwriteTitle = '订单自核成功';
  3196. this.cancelText = '暂不缴费';
  3197. this.confirmText = '立即缴费';
  3198. this.underwriteShow = true;
  3199. } else {
  3200. this.underwriteTitle = '核保失败';
  3201. this.cancelText = '返回订单';
  3202. this.confirmText = '关闭';
  3203. this.underwriteMsg = djaudit.msg;
  3204. this.underwriteShow = true;
  3205. }
  3206. } else {
  3207. this.underwriteTitle = '影像上传失败';
  3208. this.cancelText = '返回订单';
  3209. this.confirmText = '关闭';
  3210. this.underwriteMsg = djimage.msg;
  3211. this.underwriteShow = true;
  3212. }
  3213. break;
  3214. case "紫金财险":
  3215. let zjimage = await this.$http.post(
  3216. '/order/zijin/submitImage', {
  3217. companyId: this.companyId
  3218. });
  3219. if (zjimage.code == '200') {
  3220. let zjaudit = await this.$http.post(
  3221. '/order/zijin/audit', {
  3222. companyId: this.companyId,
  3223. engageList: this.ziJinengageList,
  3224. });
  3225. if (zjaudit.code == '200') {
  3226. this.underwriteTitle = '订单自核成功';
  3227. this.cancelText = '暂不缴费';
  3228. this.confirmText = '立即缴费';
  3229. this.underwriteShow = true;
  3230. } else {
  3231. this.underwriteTitle = '核保失败';
  3232. this.cancelText = '返回订单';
  3233. this.confirmText = '关闭';
  3234. this.underwriteMsg = zjaudit.msg;
  3235. this.underwriteShow = true;
  3236. }
  3237. } else {
  3238. this.underwriteTitle = '影像上传失败';
  3239. this.cancelText = '返回订单';
  3240. this.confirmText = '关闭';
  3241. this.underwriteMsg = zjimage.msg;
  3242. this.underwriteShow = true;
  3243. }
  3244. break;
  3245. case "华泰财险":
  3246. let htapiImage = this.apiType == "2" ? "/insurance/crawler/submitImage" :
  3247. "/order/huaTaiApi/submitImage";
  3248. let htimage = await this.$http.post(
  3249. `${htapiImage}`, {
  3250. [this.apiType == 2 ? "subOrderNo" : "companyId"]: this.companyId
  3251. });
  3252. if (htimage.code == '200') {
  3253. let htapiAudit = this.apiType == "2" ? "/insurance/crawler/audit" :
  3254. '/order/huaTaiApi/audit';
  3255. let htaudit = await this.$http.post(
  3256. `${htapiAudit}`, {
  3257. [this.apiType == 2 ? "subOrderNo" : "companyId"]: this.companyId,
  3258. engageList: this.huaTaiengageList,
  3259. });
  3260. if (htaudit.code == '200') {
  3261. this.underwriteTitle = '订单自核成功';
  3262. this.cancelText = '暂不缴费';
  3263. this.confirmText = '立即缴费';
  3264. this.underwriteShow = true;
  3265. } else {
  3266. this.underwriteTitle = '核保失败';
  3267. this.cancelText = '返回订单';
  3268. this.confirmText = '关闭';
  3269. this.underwriteMsg = htaudit.msg;
  3270. this.underwriteShow = true;
  3271. }
  3272. } else {
  3273. this.underwriteTitle = '影像上传失败';
  3274. this.cancelText = '返回订单';
  3275. this.confirmText = '关闭';
  3276. this.underwriteMsg = htimage.msg;
  3277. this.underwriteShow = true;
  3278. }
  3279. break;
  3280. case "渤海财险":
  3281. let bhimage = await this.$http.post(
  3282. '/order/boHaiApi/submitImage', {
  3283. companyId: this.companyId
  3284. });
  3285. if (bhimage.code == '200') {
  3286. let bhaudit = await this.$http.post(
  3287. '/order/boHaiApi/audit', {
  3288. companyId: this.companyId,
  3289. jqappoint: "",
  3290. syappoint: ""
  3291. });
  3292. if (bhaudit.code == '200') {
  3293. this.underwriteTitle = '订单自核成功';
  3294. this.cancelText = '暂不缴费';
  3295. this.confirmText = '立即缴费';
  3296. this.underwriteShow = true;
  3297. } else {
  3298. this.underwriteTitle = '核保失败';
  3299. this.cancelText = '返回订单';
  3300. this.confirmText = '关闭';
  3301. this.underwriteMsg = bhaudit.msg;
  3302. this.underwriteShow = true;
  3303. }
  3304. } else {
  3305. this.underwriteTitle = '影像上传失败';
  3306. this.cancelText = '返回订单';
  3307. this.confirmText = '关闭';
  3308. this.underwriteMsg = bhimage.msg;
  3309. this.underwriteShow = true;
  3310. }
  3311. break;
  3312. case "恒邦财险":
  3313. case "诚泰财险":
  3314. case "安盛天平":
  3315. case "众安财险":
  3316. case "中国人寿":
  3317. case "太平财险":
  3318. case "华农财险":
  3319. case "泰康财险":
  3320. let pythonimage = await this.$http.post(
  3321. '/insurance/crawler/submitImage', {
  3322. subOrderNo: this.companyId
  3323. });
  3324. if (pythonimage.code == '200') {
  3325. let pythonaudit = await this.$http.post(
  3326. '/insurance/crawler/audit', {
  3327. subOrderNo: this.companyId,
  3328. });
  3329. if (pythonaudit.code == '200') {
  3330. this.underwriteTitle = '订单自核成功';
  3331. this.cancelText = '暂不缴费';
  3332. this.confirmText = '立即缴费';
  3333. this.underwriteShow = true;
  3334. } else {
  3335. this.underwriteTitle = '核保失败';
  3336. this.cancelText = '返回订单';
  3337. this.confirmText = '关闭';
  3338. this.underwriteMsg = pythonaudit.msg;
  3339. this.underwriteShow = true;
  3340. }
  3341. } else {
  3342. this.underwriteTitle = '影像上传失败';
  3343. this.cancelText = '返回订单';
  3344. this.confirmText = '关闭';
  3345. this.underwriteMsg = pythonimage.msg;
  3346. this.underwriteShow = true;
  3347. }
  3348. break;
  3349. }
  3350. this.auditNextShow = false;
  3351. }, 1000)
  3352. },
  3353. // 上传影像并提交核保
  3354. async submitUnderwriting(id, apiType, name) {
  3355. this.companyId = id;
  3356. this.apiType = apiType;
  3357. this.insuranceCompanyName = name;
  3358. this.auditNextShow = true;
  3359. },
  3360. //核保弹窗关闭事件
  3361. underwritecancel() {
  3362. this.navigate({
  3363. url: "/pages/orders/orders"
  3364. }, "switchTab",
  3365. true);
  3366. },
  3367. //核保弹窗确认事件
  3368. underwriteconfirm() {
  3369. switch (this.underwriteTitle) {
  3370. case '订单自核成功':
  3371. if (this.quotationType.themeCode == 'QD') {
  3372. uni.navigateTo({
  3373. url: "/pages/orders/paymentCode?companyId=" +
  3374. this
  3375. .companyId + '&apiType=' + this.apiType,
  3376. })
  3377. } else {
  3378. uni.navigateTo({
  3379. url: "/pages/orders/paymentCode1?companyId=" +
  3380. this
  3381. .companyId + '&apiType=' + this.apiType,
  3382. })
  3383. }
  3384. break;
  3385. case '核保失败':
  3386. break;
  3387. case '影像上传失败':
  3388. break;
  3389. }
  3390. },
  3391. }
  3392. }
  3393. </script>
  3394. <style lang="scss" scoped>
  3395. .page {
  3396. background: #F8FAFE;
  3397. padding: 16px 16px 100px 16px;
  3398. }
  3399. .sum {
  3400. color: #0052FF;
  3401. font-size: 14px;
  3402. font-weight: bold;
  3403. }
  3404. .scroll-Y {
  3405. height: 600px;
  3406. }
  3407. .discountInfoscroll {
  3408. height: 300px;
  3409. }
  3410. .scroll-view-item {
  3411. height: 300rpx;
  3412. line-height: 300rpx;
  3413. text-align: center;
  3414. font-size: 36rpx;
  3415. }
  3416. .modelformcss {
  3417. padding: 5px 15px;
  3418. }
  3419. .PlanPopup-btn {
  3420. width: 100%;
  3421. height: 48px;
  3422. background: #FFFFFF;
  3423. box-shadow: 0px -2px 4px 0px rgba(0, 0, 0, 0.05);
  3424. }
  3425. .circle {
  3426. width: 16px;
  3427. height: 16px;
  3428. border-radius: 50%;
  3429. border: 2px solid #0052FF;
  3430. }
  3431. .circle:after {
  3432. content: "✔";
  3433. /* 对勾符号 */
  3434. font-size: 10px;
  3435. font-weight: bold;
  3436. /* 根据需要调整大小 */
  3437. color: #0052FF;
  3438. }
  3439. .policyInfo {
  3440. .tagHeader {
  3441. font-family: Source Han Sans SC, Source Han Sans SC;
  3442. text {
  3443. position: relative;
  3444. font-weight: bold;
  3445. font-size: 13px;
  3446. color: #333;
  3447. }
  3448. .tag {
  3449. position: absolute;
  3450. left: 0;
  3451. bottom: -1px;
  3452. width: 50%;
  3453. height: 5px;
  3454. background: linear-gradient(90deg, #0874FF 0%, rgba(8, 116, 255, 0) 100%);
  3455. border-radius: 6px;
  3456. }
  3457. }
  3458. .accident {
  3459. width: 75%;
  3460. .diss {
  3461. border-bottom: 1px solid #E3E9F8;
  3462. .boss {
  3463. border-right: 1px solid #E3E9F8;
  3464. text-align: center;
  3465. padding: 5px 3px;
  3466. }
  3467. }
  3468. }
  3469. .right {
  3470. width: 25%;
  3471. border-right: 1px solid #E3E9F8;
  3472. border-bottom: 1px solid #E3E9F8;
  3473. padding: 5px 3px;
  3474. }
  3475. }
  3476. .selectedCoverage {
  3477. background-color: #FFDFCE;
  3478. border-radius: 22px;
  3479. position: relative;
  3480. padding: 7px 8px;
  3481. .title1 {
  3482. color: #232832;
  3483. font-size: 15px;
  3484. font-weight: bold;
  3485. }
  3486. .title-before {
  3487. position: absolute;
  3488. width: 3px;
  3489. height: 14px;
  3490. background: #FF5600;
  3491. left: 0;
  3492. top: 50%;
  3493. transform: translateY(-50%);
  3494. }
  3495. .product {
  3496. width: 65px;
  3497. background: #FFFFFF;
  3498. border-radius: 16px;
  3499. border: 1px solid #FF5600;
  3500. padding: 2px 6px;
  3501. box-sizing: border-box;
  3502. }
  3503. }
  3504. .Plancontent {
  3505. padding: 8px;
  3506. .title {
  3507. color: #232832;
  3508. font-size: 15px;
  3509. font-weight: bold;
  3510. ::before {
  3511. content: "丨";
  3512. width: 10px;
  3513. height: 10px;
  3514. color: #0052FF;
  3515. }
  3516. }
  3517. .title-before {}
  3518. .Accident {
  3519. width: 100%;
  3520. border: 1px solid #0874FF;
  3521. border-radius: 6px;
  3522. overflow: hidden;
  3523. .head {
  3524. width: 20%;
  3525. height: 40px;
  3526. background-color: #0874FF;
  3527. color: #FFFFFF;
  3528. &:nth-child(1) {
  3529. width: 60%;
  3530. }
  3531. }
  3532. .tr {
  3533. width: 20%;
  3534. height: 60px;
  3535. color: #232832;
  3536. border: 1rpx solid #0874FF;
  3537. font-size: 24rpx;
  3538. color: #232832;
  3539. &:nth-child(1) {
  3540. width: 60%;
  3541. background: rgba(8, 116, 255, 0.05);
  3542. }
  3543. &:nth-child(3) {
  3544. background: rgba(8, 116, 255, 0.05);
  3545. }
  3546. }
  3547. }
  3548. .insuranceType {
  3549. margin: 5px 10px;
  3550. background: #F2F6FF;
  3551. border-radius: 10px;
  3552. }
  3553. .terms {
  3554. color: #FFFFFF;
  3555. background: linear-gradient(90deg, #FF4D4D 0%, #FF784D 100%);
  3556. border-radius: 4px 4px 4px 4px;
  3557. }
  3558. }
  3559. .quotePlan {
  3560. background: #FFFFFF;
  3561. box-shadow: 0px 4px 10px 0px #DAE3F4;
  3562. border-radius: 6px;
  3563. }
  3564. .status-data {
  3565. width: auto;
  3566. padding: 2px 8px;
  3567. margin-left: 10px;
  3568. font-size: 12px;
  3569. border: 1px solid #CDCDCD;
  3570. cursor: pointer;
  3571. text-align: center;
  3572. line-height: 25px;
  3573. }
  3574. .active {
  3575. position: relative;
  3576. background: rgba(0, 82, 255, 0.1);
  3577. color: #0052FF;
  3578. border: 1px solid #0052FF !important;
  3579. font-weight: 700;
  3580. }
  3581. .active::before {
  3582. content: "";
  3583. position: absolute;
  3584. top: 0;
  3585. left: 0;
  3586. width: 10px;
  3587. height: 10px;
  3588. background-image: url("../../static/image/car-insure/before.png");
  3589. background-size: cover;
  3590. }
  3591. .active1 {
  3592. position: relative;
  3593. background: rgba(255, 86, 0, 0.1);
  3594. color: #FF5600;
  3595. border: 1px solid #FF5600;
  3596. font-weight: 700;
  3597. }
  3598. .active1::before {
  3599. content: "";
  3600. position: absolute;
  3601. top: 0;
  3602. left: 0;
  3603. width: 10px;
  3604. height: 10px;
  3605. background-image: url("../../static/image/car-insure/before1.png");
  3606. background-size: cover;
  3607. }
  3608. .car-header {
  3609. height: auto;
  3610. background: linear-gradient(0, #FFFFFF 0%, rgba(241, 246, 255, 0.8) 100%);
  3611. box-shadow: 0px 4px 10px 0px rgba(158, 173, 229, 0.1);
  3612. border-radius: 6px;
  3613. padding: 8px 15px;
  3614. position: relative;
  3615. .head-name {
  3616. margin-left: 10px;
  3617. &>text {
  3618. font-weight: bold;
  3619. font-size: 14px;
  3620. color: #232832;
  3621. }
  3622. .name1 text {
  3623. font-size: 14px;
  3624. color: #333333;
  3625. }
  3626. }
  3627. .carJump {
  3628. position: absolute;
  3629. top: 5px;
  3630. right: 10px;
  3631. font-size: 14px;
  3632. color: #0052FF;
  3633. }
  3634. }
  3635. /* 报价公司Start */
  3636. .quoteCompany {
  3637. box-sizing: border-box;
  3638. /* background:#FFFFFF; */
  3639. position: relative;
  3640. border-radius: 20upx;
  3641. }
  3642. .quoteCompany .header {
  3643. height: 80upx;
  3644. }
  3645. .quoteCompany .header .title {
  3646. font-size: 30upx;
  3647. font-weight: bold;
  3648. }
  3649. .quoteCompany .header .title .icon {
  3650. color: rgba(#ea552d, 0.6);
  3651. margin-left: 15upx;
  3652. }
  3653. .quoteCompanyItem {
  3654. margin-bottom: 20upx;
  3655. background: #FFFFFF;
  3656. border-radius: 6px;
  3657. box-shadow: 0px 4px 10px 0px #DAE3F4;
  3658. box-sizing: border-box;
  3659. cursor: pointer;
  3660. .selectedPlanBackground {
  3661. background: linear-gradient(180deg, #DFF1FF 0%, #FFFFFF 100%);
  3662. box-shadow: 0px 2px 5px 0px #DAE3F4;
  3663. border-radius: 0px 0px 6px 6px;
  3664. }
  3665. >.headers {
  3666. height: 30px;
  3667. background-image: url('../../static/image/car-insure/weixuanfangan.png');
  3668. background-position: 0% 0%;
  3669. background-size: 100% 100%;
  3670. background-repeat: no-repeat;
  3671. .logo {
  3672. width: 30%;
  3673. image {
  3674. width: 20px;
  3675. height: 20px;
  3676. margin-right: 10px;
  3677. }
  3678. .companyName {
  3679. font-size: 14px;
  3680. font-weight: bold;
  3681. color: #fff;
  3682. }
  3683. }
  3684. }
  3685. }
  3686. .quoteCompanyItem .top {
  3687. position: relative;
  3688. padding: 8px;
  3689. }
  3690. .quoteCompanyItem .top .companyIcon {
  3691. border-radius: 6px 6px 0 0;
  3692. padding: 0 0 4px;
  3693. }
  3694. .insuranceGuide {
  3695. background: #FD9159;
  3696. border-radius: 2px;
  3697. font-weight: bold;
  3698. font-size: 12px;
  3699. color: #fff;
  3700. padding: 0px 8px;
  3701. margin-left: 5%;
  3702. }
  3703. .planDetails {
  3704. width: 100%;
  3705. height: auto;
  3706. background: #F9F9F9;
  3707. border-radius: 6px;
  3708. padding: 6px;
  3709. .headers {
  3710. >image {
  3711. width: 14px;
  3712. height: 14px;
  3713. }
  3714. >text {
  3715. font-size: 12px;
  3716. color: #4B6FBA;
  3717. margin-left: 10px;
  3718. }
  3719. }
  3720. }
  3721. .content {
  3722. padding-bottom: 100rpx;
  3723. box-sizing: border-box;
  3724. }
  3725. .quoteCompanyItem .top .Premium {
  3726. padding: 10px 8px;
  3727. border-radius: 4px;
  3728. .price {
  3729. font-size: 12px;
  3730. color: #FF5600;
  3731. text {
  3732. margin-right: 5px;
  3733. }
  3734. }
  3735. .time {
  3736. font-size: 12px;
  3737. color: #2D4D89;
  3738. >text {
  3739. margin-right: 5px;
  3740. }
  3741. }
  3742. }
  3743. .quoteCompanyItem .top .quotebtn {
  3744. width: 100%;
  3745. height: auto;
  3746. >view {
  3747. width: 50%;
  3748. font-size: 14px;
  3749. padding: 4px 0;
  3750. }
  3751. }
  3752. .lastyear {
  3753. view {
  3754. font-size: 12px;
  3755. }
  3756. .left {
  3757. border: 1px solid #229805;
  3758. border-radius: 2px;
  3759. padding: 1px 6px;
  3760. color: #229805;
  3761. }
  3762. .right {
  3763. border-radius: 2px;
  3764. padding: 1px 6px;
  3765. border: 1px solid #FF5600;
  3766. color: #FF5600;
  3767. }
  3768. }
  3769. .quoteCompanyItem .top .totalMoney {
  3770. font-size: 40upx;
  3771. font-weight: bold;
  3772. color: #ea552d;
  3773. position: absolute;
  3774. top: -15upx;
  3775. right: 0;
  3776. }
  3777. .quoteCompanyItem .top .tip {
  3778. font-size: 26upx;
  3779. font-weight: bold;
  3780. color: #999;
  3781. position: absolute;
  3782. top: 0upx;
  3783. right: 0;
  3784. }
  3785. .sum {
  3786. color: #0052FF;
  3787. font-size: 14px;
  3788. font-weight: bold;
  3789. }
  3790. .quoteFailed {
  3791. background: rgba(255, 77, 77, 0.1);
  3792. border-radius: 2px;
  3793. color: #FF4D4D;
  3794. font-size: 12px;
  3795. font-weight: bold;
  3796. padding: 2px 8px;
  3797. }
  3798. .quoteCompanyItem .top .signs {
  3799. width: 500upx;
  3800. overflow: hidden;
  3801. text-overflow: ellipsis;
  3802. white-space: nowrap;
  3803. }
  3804. .quoteCompanyItem .top .sign {
  3805. height: 40upx;
  3806. margin: 0upx 10upx;
  3807. background: rgba(#ea552d, 0.6);
  3808. color: #ea552d;
  3809. font-size: 20upx;
  3810. margin-right: 10upx;
  3811. border-radius: 6upx;
  3812. padding: 0 2px;
  3813. line-height: 40upx;
  3814. }
  3815. .jqsign {
  3816. height: 20px;
  3817. background: rgba(255, 177, 177, 0.55);
  3818. color: #fd0a0a;
  3819. font-size: 20upx;
  3820. border-radius: 6upx;
  3821. padding: 0 10px;
  3822. box-sizing: border-box;
  3823. }
  3824. .quoteCompanyItem .body {
  3825. padding: 20upx 0;
  3826. flex-wrap: wrap;
  3827. }
  3828. .quoteCompanyItem .body>view {
  3829. flex-shrink: 0;
  3830. width: 50%;
  3831. overflow: hidden;
  3832. text-overflow: ellipsis;
  3833. white-space: nowrap;
  3834. }
  3835. .quoteCompanyItem .body .icon-exchange {
  3836. margin-right: 15upx;
  3837. display: inline-block;
  3838. }
  3839. /* 报价公司End */
  3840. /* 整个页面的统一样式 End */
  3841. .plan-ins-title {
  3842. color: #FF5600;
  3843. font-size: 15px;
  3844. font-weight: bold;
  3845. padding: 8px;
  3846. }
  3847. .immediately {
  3848. padding: 19rpx 15px;
  3849. .common-ins-cell:last-child {
  3850. border-bottom: none;
  3851. }
  3852. }
  3853. .common-title {
  3854. font-size: 32upx;
  3855. font-weight: bold;
  3856. }
  3857. .common-ins-cell {
  3858. font-size: 30upx;
  3859. padding: 0upx 30upx;
  3860. height: 90upx;
  3861. border-bottom: 1px solid #eee;
  3862. }
  3863. /* 交强险和商业险弹出框Start */
  3864. .popup-content {
  3865. position: relative;
  3866. }
  3867. .popHeader {
  3868. box-sizing: border-box;
  3869. font-size: 32upx;
  3870. font-weight: bold;
  3871. height: 120upx;
  3872. border-bottom: 1px solid #eee;
  3873. }
  3874. .popup-content .popContent {
  3875. padding: 0upx 30upx;
  3876. height: 620upx;
  3877. box-sizing: border-box;
  3878. }
  3879. .popup-content .popContent .popContentTitle {
  3880. font-weight: bold;
  3881. font-size: 32upx;
  3882. margin: 20upx 0upx 5upx 0upx;
  3883. }
  3884. .popup-content .popContent .amtSingle {
  3885. width: 22%;
  3886. box-sizing: border-box;
  3887. display: inline-block;
  3888. text-align: center;
  3889. vertical-align: middle;
  3890. border: 1px solid #eee;
  3891. margin: 0 15rpx 15rpx 0;
  3892. }
  3893. .popup-content .popBottom {
  3894. margin: 30upx 30upx 0 30upx;
  3895. padding-bottom: 30upx;
  3896. }
  3897. /* 交强险和商业险弹出框End */
  3898. .drivingSelection {
  3899. padding: 8px;
  3900. >view {
  3901. padding: 4px 8px;
  3902. }
  3903. .header {
  3904. width: 100%;
  3905. background: rgba(255, 86, 0, 0.05);
  3906. border-radius: 2px;
  3907. margin-bottom: 4px;
  3908. text {
  3909. font-size: 15px;
  3910. color: #FF5600;
  3911. font-weight: bold;
  3912. }
  3913. }
  3914. }
  3915. .footer-btn {
  3916. position: fixed;
  3917. bottom: 0;
  3918. left: 0;
  3919. right: 0;
  3920. height: 62px;
  3921. background: #FFFFFF;
  3922. box-shadow: 0px -4px 10px 0px #DAE3F4;
  3923. border-radius: 0px 0px 0px 0px;
  3924. padding: 12px 16px;
  3925. z-index: 99;
  3926. .u-button {
  3927. margin: 0 10rpx;
  3928. }
  3929. }
  3930. .priceComparison {
  3931. width: 20%;
  3932. background: linear-gradient(180deg, #FA6464 0%, #E53F3F 100%);
  3933. box-shadow: 0px 2px 5px 0px rgba(232, 66, 66, 0.3);
  3934. border-radius: 4px;
  3935. border: 1px solid #FF9A9A;
  3936. }
  3937. .ZJcheckboxGroup {
  3938. .headers {
  3939. min-height: 73px;
  3940. background-image: url('../../static/image/car-insure/teyueheader.png');
  3941. background-position: 0% 0%;
  3942. background-size: 100% 100%;
  3943. background-repeat: no-repeat;
  3944. padding: 10px 20px;
  3945. border-bottom: 1px solid #EEEEEE;
  3946. .title {
  3947. font-weight: bold;
  3948. font-size: 16px;
  3949. color: #333333;
  3950. }
  3951. }
  3952. .hint {
  3953. width: 90%;
  3954. margin: auto;
  3955. background: #DFF9FF;
  3956. border-radius: 2px;
  3957. padding: 3px 8px;
  3958. image {
  3959. width: 16px;
  3960. height: 16px;
  3961. margin-right: 10px;
  3962. }
  3963. text {
  3964. font-size: 12px;
  3965. color: #18AAE8;
  3966. }
  3967. }
  3968. .scolcentent {
  3969. max-height: 900rpx;
  3970. padding-bottom: 40px;
  3971. padding: 0 10px;
  3972. padding-bottom: 140rpx;
  3973. }
  3974. .operateBtn {
  3975. position: absolute;
  3976. bottom: 0;
  3977. left: 0;
  3978. right: 0;
  3979. font-weight: bold;
  3980. font-size: 16px;
  3981. .cancel {
  3982. width: 50%;
  3983. height: 46px;
  3984. color: #A7AFC3;
  3985. background-color: #F3F5F9;
  3986. }
  3987. .confirm {
  3988. width: 50%;
  3989. height: 46px;
  3990. color: #fff;
  3991. background: linear-gradient(90deg, #17A9E8 0%, #4DD4FF 100%);
  3992. ;
  3993. }
  3994. }
  3995. .operateBtn1 {
  3996. background-color: #fff;
  3997. position: absolute;
  3998. bottom: 0;
  3999. left: 0;
  4000. right: 0;
  4001. font-weight: bold;
  4002. font-size: 16px;
  4003. padding: 10px;
  4004. .cancel {
  4005. width: 40%;
  4006. height: 46px;
  4007. background: #F3F5F9;
  4008. border-radius: 4px;
  4009. font-size: 16px;
  4010. color: #A7AFC3;
  4011. margin-right: 30px;
  4012. }
  4013. .confirm {
  4014. width: 40%;
  4015. height: 46px;
  4016. background: linear-gradient(90deg, #0153FF 0%, #0D89FF 100%);
  4017. border-radius: 4px;
  4018. font-size: 16px;
  4019. color: #fff;
  4020. }
  4021. }
  4022. }
  4023. ::v-deep {
  4024. .jq {
  4025. .u-th {
  4026. background: #F6F7FE;
  4027. padding: 5px 10px !important;
  4028. }
  4029. .u-td {
  4030. padding: 5px 10px !important;
  4031. }
  4032. }
  4033. .sy {
  4034. .u-th {
  4035. background: #F6F7FE;
  4036. }
  4037. }
  4038. .u-tabs__wrapper__nav__line {
  4039. left: 2400rpx;
  4040. height: 4rpx !important;
  4041. border-radius: 4rpx;
  4042. }
  4043. .u-modal__content {
  4044. padding: 0px;
  4045. padding-top: 0;
  4046. box-sizing: border-box;
  4047. }
  4048. }
  4049. .uni-uploader__file {
  4050. position: relative;
  4051. }
  4052. .uni-uploader__files {
  4053. position: relative;
  4054. }
  4055. .delImgIcon {
  4056. width: 40upx;
  4057. height: 40upx;
  4058. position: absolute;
  4059. right: 4px;
  4060. bottom: 4px;
  4061. color: #FFFFFF;
  4062. }
  4063. .imgtitle {
  4064. background: #4682F9;
  4065. border-radius: 0px 2px 2px 0px;
  4066. padding: 1px 2px;
  4067. position: absolute;
  4068. left: 0upx;
  4069. top: 2px;
  4070. color: #FFFFFF;
  4071. font-size: 20rpx;
  4072. }
  4073. </style>