premiumCalc.vue 161 KB

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