Letter.vue 335 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437
  1. <template>
  2. <div class="body">
  3. <div class="Enclosure flex f-c back">
  4. <div class="home flex j-s a-c">
  5. <div class="flex j-s a-c">
  6. <img src="../../../src/icon/归属信息.png" alt class="icon-img" />
  7. <span style="margin-left:10px;">归属信息</span>
  8. </div>
  9. </div>
  10. <el-form
  11. class="demo-ruleForm"
  12. :model="userform"
  13. ref="userform"
  14. label-width="130px"
  15. size="small"
  16. style="margin-top: 15px"
  17. disabled
  18. label-position="top"
  19. >
  20. <el-row type="flex" justify="space-between">
  21. <el-col :span="5">
  22. <el-form-item label="业务员">
  23. <el-input v-model="userform.name"></el-input>
  24. </el-form-item>
  25. </el-col>
  26. <el-col :span="5">
  27. <el-form-item label="工号">
  28. <el-input v-model="userform.id" type="text"></el-input>
  29. </el-form-item>
  30. </el-col>
  31. <el-col :span="5">
  32. <el-form-item label="工号类型">
  33. <el-select v-model="userform.usertype">
  34. <el-option label="业务员" value="A"></el-option>
  35. <el-option label="代理人" value="B"></el-option>
  36. </el-select>
  37. </el-form-item>
  38. </el-col>
  39. <el-col :span="5">
  40. <el-form-item label="归属">
  41. <el-input v-model="deptName"></el-input>
  42. </el-form-item>
  43. </el-col>
  44. </el-row>
  45. </el-form>
  46. </div>
  47. <div class="Enclosure flex f-c back">
  48. <div class="home flex j-s a-c">
  49. <div class="flex j-s a-c">
  50. <img src="../../../src/icon/快速查询.png" alt class="icon-img" />
  51. <span style="margin-left: 10px">快速查询</span>
  52. </div>
  53. <el-button size="small" type="primary" @click="continuousquery()">
  54. <i class="el-icon-search" style="margin-right: 1px"></i>
  55. 续保查询
  56. </el-button>
  57. </div>
  58. <el-form
  59. class="demo-ruleForm"
  60. :model="attributionform"
  61. ref="continuousform"
  62. label-width="130px"
  63. size="small"
  64. style="margin-top: 15px"
  65. label-position="top"
  66. >
  67. <el-row >
  68. <el-col :span="5">
  69. <el-form-item label="保险公司" prop="companyId">
  70. <el-select
  71. v-model="attributionform.companyId"
  72. placeholder="请选择保险公司"
  73. @change="continuousChange"
  74. >
  75. <el-option
  76. v-for="(item, index) in continuousCompanyList"
  77. :key="index"
  78. :label="item.namesimple"
  79. :value="item.id"
  80. ></el-option>
  81. </el-select>
  82. </el-form-item>
  83. </el-col>
  84. <el-col
  85. :span="5"
  86. :offset="1"
  87. v-for="(domain, index) in attributionform.configure"
  88. :key="domain.index"
  89. >
  90. <el-form-item
  91. :label="domain.label"
  92. :prop="'configure.' + index + '.value'"
  93. :rules="{
  94. required: true,
  95. message: domain.label + '不能为空',
  96. trigger: 'blur',
  97. }"
  98. >
  99. <el-input v-model="domain.value" :type="domain.type"></el-input>
  100. </el-form-item>
  101. </el-col>
  102. </el-row>
  103. </el-form>
  104. </div>
  105. <div class="Enclosure flex f-c back">
  106. <div class="home flex j-s a-c">
  107. <div class="flex j-s a-c color" id="Car">
  108. <img src="../../../src/icon/车辆信息.png" alt class="icon-img" />
  109. <span style="margin-left:10px;">车辆信息</span>
  110. </div>
  111. <el-button size="small" type="primary" @click="uploadcardialogVisible = true">
  112. <i class="el-icon-camera-solid" style="margin-right:1px;"></i>
  113. 证件识别
  114. </el-button>
  115. </div>
  116. <el-form
  117. class="demo-ruleForm"
  118. :model="carInfo"
  119. ref="carInfo"
  120. :rules="rules"
  121. label-width="130px"
  122. size="small"
  123. label-position="top"
  124. style="margin-top: 15px"
  125. >
  126. <el-row style="flex-wrap: wrap; display: flex;">
  127. <el-col :span="5">
  128. <el-form-item label="车牌" :prop="licenseplate ? 'licenseNo' : ''">
  129. <div style="display: flex;">
  130. <el-input style="width: 75%;margin-right:13px" v-model="carInfo.licenseNo" placeholder="请输入车牌号" :disabled="!licenseplate" ></el-input>
  131. <el-checkbox v-model="licenseplate">已上牌</el-checkbox>
  132. </div>
  133. </el-form-item>
  134. </el-col>
  135. <el-col :span="5" :offset="1">
  136. <el-form-item label="车辆识别代码" prop="frameNo">
  137. <el-input
  138. placeholder="请输入车辆识别码"
  139. v-model="carInfo.frameNo"
  140. maxlength="17"
  141. type="text"
  142. show-word-limit
  143. >
  144. <el-button
  145. slot="append"
  146. type="primary"
  147. icon="el-icon-search"
  148. @click="toChooseVin(carInfo.frameNo)"
  149. style="color: #fff;background-color:#D42426;border-color:#D42426;"
  150. ></el-button>
  151. </el-input>
  152. </el-form-item>
  153. </el-col>
  154. <el-col :span="5" :offset="1">
  155. <el-form-item label="品牌型号" prop="modelcname">
  156. <el-input v-model="carInfo.modelcname" placeholder="请输入品牌型号" type="text">
  157. <el-button
  158. slot="append"
  159. icon="el-icon-search"
  160. type="primary"
  161. @click="toChooseVehicleType(carInfo.modelcname)"
  162. style="color: #fff;background-color:#D42426;border-color:#D42426;border-top:none"
  163. ></el-button>
  164. </el-input>
  165. </el-form-item>
  166. </el-col>
  167. <el-col :span="5" :offset="1">
  168. <el-form-item label="发动机号" prop="engineNo">
  169. <el-input
  170. v-model="carInfo.engineNo"
  171. placeholder="请输入发动机号"
  172. ></el-input>
  173. </el-form-item>
  174. </el-col>
  175. <el-col :span="5" >
  176. <el-form-item label="年款" prop="caryear">
  177. <el-input
  178. onkeyup="value=value.replace(/\D/g,'')"
  179. v-model="carInfo.caryear"
  180. placeholder="请输入年款"
  181. ></el-input>
  182. </el-form-item>
  183. </el-col>
  184. <el-col :span="5" :offset="1">
  185. <el-form-item label="座位数" prop="seatCount">
  186. <el-input
  187. onkeyup="value=value.replace(/\D/g,'')"
  188. v-model="carInfo.seatCount"
  189. placeholder="请输入座位数"
  190. >
  191. <el-button slot="append">座</el-button>
  192. </el-input>
  193. </el-form-item>
  194. </el-col>
  195. <el-col :span="5" :offset="1">
  196. <el-form-item label="整备质量" prop="completeKerbMass">
  197. <el-input v-model="carInfo.completeKerbMass" placeholder="请输入整备质量">
  198. <el-button slot="append">千克(KG)</el-button>
  199. </el-input>
  200. </el-form-item>
  201. </el-col>
  202. <el-col :span="5" :offset="1">
  203. <el-form-item label="核定载质量" prop="limitLoad">
  204. <el-input v-model="carInfo.limitLoad" placeholder="请输入核定载质量">
  205. <el-button slot="append">千克(KG)</el-button>
  206. </el-input>
  207. </el-form-item>
  208. </el-col>
  209. <el-col :span="5" >
  210. <el-form-item label="排量" prop="enginedesc">
  211. <el-input v-model="carInfo.enginedesc" placeholder="请输入排量" >
  212. <el-button slot="append">升(L)</el-button>
  213. </el-input>
  214. </el-form-item>
  215. </el-col>
  216. <el-col :span="5" :offset="1">
  217. <el-form-item label="功率" prop="powerScale">
  218. <el-input v-model="carInfo.powerScale" placeholder="请输入功率">
  219. <el-button slot="append">千瓦(KW)</el-button>
  220. </el-input>
  221. </el-form-item>
  222. </el-col>
  223. <el-col :span="5" :offset="1">
  224. <el-form-item label="新车购置价" prop="purchasePrice">
  225. <el-input
  226. onkeyup="value=value.replace(/\D/g,'')"
  227. v-model="carInfo.purchasePrice"
  228. placeholder="请输入新车购置价"
  229. >
  230. <el-button slot="append">元</el-button>
  231. </el-input>
  232. </el-form-item>
  233. </el-col>
  234. <el-col :span="5" :offset="1">
  235. <el-form-item label="使用性质" prop="carnature">
  236. <el-select v-model="carInfo.carnature" placeholder="请选择使用性质" @change="natureFun">
  237. <el-option
  238. :label="item.dictTag"
  239. :value="item.dictValue"
  240. v-for="(item, index) in natureOfVehicleUseoptions"
  241. :key="index"
  242. ></el-option>
  243. </el-select>
  244. </el-form-item>
  245. </el-col>
  246. <el-col :span="5">
  247. <el-form-item label="车辆用途" prop="vehicleUse">
  248. <el-select
  249. v-if="carInfo.carnature=='02'"
  250. v-model="carInfo.vehicleUse"
  251. placeholder="请选择使车辆用途"
  252. >
  253. <el-option
  254. :label="item.dictTag"
  255. :value="item.dictValue"
  256. v-for="(item, index) in outOfBusinessVehicleUseoptions"
  257. :key="index"
  258. ></el-option>
  259. </el-select>
  260. <el-select
  261. v-if="carInfo.carnature=='01'"
  262. v-model="carInfo.vehicleUse"
  263. placeholder="请选择使车辆用途"
  264. >
  265. <el-option
  266. :label="item.dictTag"
  267. :value="item.dictValue"
  268. v-for="(item, index) in businessVehicleUseoptions"
  269. :key="index"
  270. ></el-option>
  271. </el-select>
  272. </el-form-item>
  273. </el-col>
  274. <el-col :span="5" :offset="1">
  275. <el-form-item label="车辆类型" prop="cartype">
  276. <el-select v-model="carInfo.cartype" placeholder="请选择车辆种类" filterable clearable>
  277. <el-option
  278. :label="item.dictValue + item.dictTag"
  279. :value="item.dictValue"
  280. v-for="(item, index) in trafficManagementVehicleTypeoptions"
  281. :key="index"
  282. ></el-option>
  283. </el-select>
  284. </el-form-item>
  285. </el-col>
  286. <el-col :span="5" :offset="1">
  287. <el-form-item label="车辆种类" prop="cimodelclass">
  288. <el-select v-model="carInfo.cimodelclass" placeholder="请选择车辆种类" clearable>
  289. <el-option
  290. :label="item.dictTag"
  291. :value="item.dictValue"
  292. v-for="(item, index) in vehicleTypeoptions"
  293. :key="index"
  294. ></el-option>
  295. </el-select>
  296. </el-form-item>
  297. </el-col>
  298. <el-col :span="5" :offset="1" >
  299. <el-form-item label="能源种类" prop="energyType">
  300. <el-select v-model="carInfo.energyType" placeholder="请选择能源种类">
  301. <el-option
  302. :label="item.dictTag"
  303. :value="item.dictValue"
  304. v-for="(item, index) in energyTypeoptions"
  305. :key="index"
  306. ></el-option>
  307. </el-select>
  308. </el-form-item>
  309. </el-col>
  310. <el-col :span="5">
  311. <el-form-item label="注册日期" prop="registerDate">
  312. <el-date-picker
  313. v-dateFormat
  314. v-model="carInfo.registerDate"
  315. :picker-options="pickerOptions"
  316. value-format="yyyy-MM-dd"
  317. type="date"
  318. placeholder="选择注册日期"
  319. placement="bottom-start"
  320. ></el-date-picker>
  321. </el-form-item>
  322. </el-col>
  323. <el-col :span="5" :offset="1">
  324. <el-form-item label="发证日期" prop="issueDate">
  325. <el-date-picker
  326. v-dateFormat
  327. v-model="carInfo.issueDate"
  328. :picker-options="issueDateOptions"
  329. type="date"
  330. placeholder="选择发证日期"
  331. value-format="yyyy-MM-dd"
  332. placement="bottom-start"
  333. ></el-date-picker>
  334. </el-form-item>
  335. </el-col>
  336. <el-col
  337. :span="5"
  338. :offset="1"
  339. v-if="transferDateShow"
  340. >
  341. <el-form-item label="转移登记日期" prop="transferDate">
  342. <el-date-picker
  343. v-dateFormat
  344. v-model="carInfo.transferDate"
  345. :picker-options="pickerOptions"
  346. type="date"
  347. placeholder="选择日期"
  348. value-format="yyyy-MM-dd"
  349. placement="bottom-start"
  350. ></el-date-picker>
  351. </el-form-item>
  352. </el-col>
  353. </el-row>
  354. </el-form>
  355. </div>
  356. <div class="Enclosure flex f-c back">
  357. <div class="home flex j-s a-c">
  358. <div class="flex j-s a-c color" id="CheZhu">
  359. <img src="../../../src/icon/车主信息.png" alt class="icon-img" />
  360. <span style="margin-left:10px;">车主信息</span>
  361. </div>
  362. <el-button size="small" type="primary" @click="uploaduser(2)">
  363. <i class="el-icon-camera-solid" style="margin-right:4px;"></i>证件识别
  364. </el-button>
  365. </div>
  366. <el-form
  367. class="demo-ruleForm"
  368. :model="ownerInfo"
  369. ref="ownerInfo"
  370. :rules="rules"
  371. label-width="130px"
  372. size="small"
  373. style="margin-top: 15px"
  374. label-position="top"
  375. >
  376. <el-row style="flex-wrap: wrap; display: flex;">
  377. <el-col :span="5" >
  378. <el-form-item label="车主姓名" prop="name">
  379. <el-input v-model="ownerInfo.name" placeholder="请输入车主姓名"></el-input>
  380. </el-form-item>
  381. </el-col>
  382. <el-col :span="5" :offset="1">
  383. <el-form-item label="证件类型" prop="identifyType">
  384. <el-select v-model="ownerInfo.identifyType" placeholder="身份证" disabled>
  385. <el-option label="身份证" value="01"></el-option>
  386. </el-select>
  387. </el-form-item>
  388. </el-col>
  389. <el-col :span="5" :offset="1">
  390. <el-form-item label="证件号码" prop="identifyNumber">
  391. <el-input
  392. v-model="ownerInfo.identifyNumber"
  393. placeholder="请输入证件号码"
  394. type="text"
  395. maxlength="18"
  396. show-word-limit
  397. @blur="identifyblur('ownerInfo')"
  398. ></el-input>
  399. </el-form-item>
  400. </el-col>
  401. <el-col :span="5" :offset="1">
  402. <el-form-item label="年龄" prop="age">
  403. <el-input v-model="ownerInfo.age" placeholder="请输入年龄" type="text" disabled></el-input>
  404. </el-form-item>
  405. </el-col>
  406. <el-col :span="5">
  407. <el-form-item label="性别" prop="gender">
  408. <el-select @change="genderChange" v-model="ownerInfo.gender" placeholder="请选择性别">
  409. <el-option label="男" value="男"></el-option>
  410. <el-option label="女" value="女"></el-option>
  411. </el-select>
  412. </el-form-item>
  413. </el-col>
  414. <el-col :span="5" :offset="1">
  415. <el-form-item label="车主手机号" prop="mobile">
  416. <el-input
  417. v-model="ownerInfo.mobile"
  418. placeholder="请输入车主手机号"
  419. type="text"
  420. maxlength="11"
  421. @paste.native="handlePaste($event,'ownerInfo')"
  422. show-word-limit
  423. ></el-input>
  424. </el-form-item>
  425. </el-col>
  426. <el-col :span="5" :offset="1">
  427. <el-form-item label="地址" prop="addr">
  428. <el-input v-model="ownerInfo.addr" placeholder="请输入地址" type="text"></el-input>
  429. </el-form-item>
  430. </el-col>
  431. <el-col :span="5" :offset="1">
  432. <el-form-item label="有效期起期" prop="identifyValidDate">
  433. <el-date-picker
  434. v-dateFormat
  435. v-model="ownerInfo.identifyValidDate"
  436. value-format="yyyy-MM-dd"
  437. :picker-options="pickerOptions"
  438. type="date"
  439. placeholder="选择注册日期"
  440. placement="bottom-start"
  441. ></el-date-picker>
  442. </el-form-item>
  443. </el-col>
  444. <el-col :span="5">
  445. <el-form-item label="有效期止期" prop="identifyValidEndDate">
  446. <el-date-picker
  447. v-dateFormat
  448. v-model="ownerInfo.identifyValidEndDate"
  449. type="date"
  450. value-format="yyyy-MM-dd"
  451. placeholder="选择有效期"
  452. placement="bottom-start"
  453. style="width: calc(100% - 40px);"
  454. ></el-date-picker>
  455. <div class="insure-long-term" @click="insureLongterm('ownerInfo')">长期</div>
  456. </el-form-item>
  457. </el-col>
  458. <el-col :span="5" :offset="1">
  459. <el-form-item label="电子邮箱" prop="email">
  460. <el-input v-model="ownerInfo.email" placeholder="请输入电子邮箱"></el-input>
  461. </el-form-item>
  462. </el-col>
  463. <!-- <el-col :xs="xscell" :sm="smcell" :md="mdcell" :lg="lgcell" :xl="xlcell" v-if="iscCrownerShow">
  464. <el-form-item label="省市区:">
  465. <el-cascader v-model="ownerInfo.provinceData" :options="areaOption" :props="{ value: 'code',label: 'name',children: 'sub'}"></el-cascader>
  466. </el-form-item>
  467. </el-col>-->
  468. </el-row>
  469. </el-form>
  470. </div>
  471. <div class="Enclosure flex f-c back">
  472. <div class="home flex j-s a-c">
  473. <div class="flex j-s a-c">
  474. <img src="../../../src/icon/投保人信息.png" alt class="icon-img" />
  475. <span style="margin-left:10px;">投保人信息</span>
  476. </div>
  477. <div class="flex a-c j-c">
  478. <div style="font-size:12px;margin:0 10px;">
  479. 同车主
  480. <el-switch v-model="tbczcarShow" active-color="#D42426" @change="tbczcarShowChange()"></el-switch>
  481. </div>
  482. <el-button size="small" type="primary" @click="uploaduser(3)">
  483. <i class="el-icon-camera-solid" style="margin-right:4px;"></i>
  484. 证件识别
  485. </el-button>
  486. </div>
  487. </div>
  488. <el-form
  489. v-show="!tbczcarShow"
  490. class="demo-ruleForm"
  491. :model="policyHolderInfo"
  492. ref="policyHolderInfo"
  493. :rules="rules"
  494. label-width="130px"
  495. size="small "
  496. style="margin-top: 15px"
  497. label-position="top"
  498. >
  499. <el-row style="flex-wrap: wrap; display: flex;">
  500. <el-col :span="5" >
  501. <el-form-item label="投保人姓名" prop="name">
  502. <el-input v-model="policyHolderInfo.name" placeholder="请输入投保人姓名"></el-input>
  503. </el-form-item>
  504. </el-col>
  505. <el-col :span="5" :offset="1">
  506. <el-form-item label="证件类型" prop="identifyType">
  507. <el-select v-model="policyHolderInfo.identifyType" placeholder="身份证" disabled>
  508. <el-option label="身份证" value="01"></el-option>
  509. </el-select>
  510. </el-form-item>
  511. </el-col>
  512. <el-col :span="5" :offset="1">
  513. <el-form-item label="证件号码" prop="identifyNumber">
  514. <el-input
  515. v-model="policyHolderInfo.identifyNumber"
  516. placeholder="请输入证件号码"
  517. type="text"
  518. maxlength="18"
  519. show-word-limit
  520. @blur="identifyblur('policyHolderInfo')"
  521. ></el-input>
  522. </el-form-item>
  523. </el-col>
  524. <el-col :span="5" :offset="1">
  525. <el-form-item label="年龄" prop="age">
  526. <el-input v-model="policyHolderInfo.age" placeholder="请输入年龄" type="text" disabled></el-input>
  527. </el-form-item>
  528. </el-col>
  529. <el-col :span="5" >
  530. <el-form-item label="性别" prop="gender">
  531. <el-select v-model="policyHolderInfo.gender" placeholder="请选择性别">
  532. <el-option label="男" value="男"></el-option>
  533. <el-option label="女" value="女"></el-option>
  534. </el-select>
  535. </el-form-item>
  536. </el-col>
  537. <el-col :span="5" :offset="1">
  538. <el-form-item label="投保人手机号" prop="mobile">
  539. <el-input
  540. v-model="policyHolderInfo.mobile"
  541. placeholder="请输入投保人手机号"
  542. maxlength="11"
  543. type="text"
  544. @paste.native="handlePaste($event,'policyHolderInfo')"
  545. show-word-limit
  546. ></el-input>
  547. </el-form-item>
  548. </el-col>
  549. <!-- <el-col :xs="xscell" :sm="smcell" :md="mdcell" :lg="lgcell" :xl="xlcell">
  550. <el-form-item label="省市区:">
  551. <el-cascader v-model="selectedOptions2" :options="areaOptions"
  552. @change="event => areahandleChange(event, 'policyHolderInfo')"></el-cascader>
  553. </el-form-item>
  554. </el-col>-->
  555. <el-col :span="5" :offset="1">
  556. <el-form-item label="地址" prop="addr">
  557. <el-input v-model="policyHolderInfo.addr" placeholder="请输入地址" type="text"></el-input>
  558. </el-form-item>
  559. </el-col>
  560. <el-col :span="5" :offset="1">
  561. <el-form-item label="有效期起期" prop="identifyValidDate">
  562. <el-date-picker
  563. v-dateFormat
  564. v-model="policyHolderInfo.identifyValidDate"
  565. value-format="yyyy-MM-dd"
  566. :picker-options="pickerOptions"
  567. type="date"
  568. placeholder="选择有效期"
  569. placement="bottom-start"
  570. ></el-date-picker>
  571. </el-form-item>
  572. </el-col>
  573. <el-col :span="5" >
  574. <el-form-item label="有效期止期" prop="identifyValidEndDate">
  575. <el-date-picker
  576. v-dateFormat
  577. v-model="policyHolderInfo.identifyValidEndDate"
  578. type="date"
  579. value-format="yyyy-MM-dd"
  580. placeholder="选择有效期"
  581. placement="bottom-start"
  582. style="width: calc(100% - 40px);"
  583. ></el-date-picker>
  584. <div class="insure-long-term" @click="insureLongterm('policyHolderInfo')">长期</div>
  585. </el-form-item>
  586. </el-col>
  587. <el-col :span="5" :offset="1">
  588. <el-form-item label="电子邮箱" prop="email">
  589. <el-input v-model="policyHolderInfo.email" placeholder="请输入电子邮箱"></el-input>
  590. </el-form-item>
  591. </el-col>
  592. <!-- <el-col :xs="xscell" :sm="smcell" :md="mdcell" :lg="lgcell" :xl="xlcell" v-if="isApplicantShow">
  593. <el-form-item label="省市区:">
  594. <el-cascader v-model="policyHolderInfo.provinceData" :options="areaOption" :props="{ value: 'code',label: 'name',children: 'sub'}"></el-cascader>
  595. </el-form-item>
  596. </el-col>-->
  597. </el-row>
  598. </el-form>
  599. </div>
  600. <div class="Enclosure flex f-c back">
  601. <div class="home flex j-s a-c">
  602. <div class="flex j-s a-c">
  603. <img src="../../../src/icon/被投保人信息.png" alt class="icon-img" />
  604. <span style="margin-left:10px;">被保人信息</span>
  605. </div>
  606. <div class="flex j-s a-c">
  607. <div style="font-size:12px;margin:0 10px;">
  608. 同投保人
  609. <el-switch v-model="bbtbcarShow" active-color="#D42426" @change="bbtbcarShowChange()"></el-switch>
  610. </div>
  611. <div style="font-size:12px;margin:0 10px;">
  612. 同车主
  613. <el-switch v-model="bbczcarShow" active-color="#D42426" @change="bbczcarShowChange()"></el-switch>
  614. </div>
  615. <el-button size="small" type="primary" @click="uploaduser(4)">
  616. <i class="el-icon-camera-solid" style="margin-right:4px;"></i>
  617. 证件识别
  618. </el-button>
  619. </div>
  620. </div>
  621. <el-form
  622. v-show="!bbtbcarShow && !bbczcarShow"
  623. class="demo-ruleForm"
  624. :model="insuredPersonInfo"
  625. ref="insuredPersonInfo"
  626. :rules="rules"
  627. label-width="130px"
  628. size="small"
  629. style="margin-top: 15px"
  630. label-position="top"
  631. >
  632. <el-row style="flex-wrap: wrap; display: flex;">
  633. <el-col :span="5" >
  634. <el-form-item label="被保人姓名" prop="name">
  635. <el-input v-model="insuredPersonInfo.name" placeholder="请输入被保人姓名"></el-input>
  636. </el-form-item>
  637. </el-col>
  638. <el-col :span="5" :offset="1">
  639. <el-form-item label="证件类型" prop="identifyType">
  640. <el-select v-model="insuredPersonInfo.identifyType" placeholder="身份证" disabled>
  641. <el-option label="身份证" value="01"></el-option>
  642. </el-select>
  643. </el-form-item>
  644. </el-col>
  645. <el-col :span="5" :offset="1">
  646. <el-form-item label="证件号码" prop="identifyNumber">
  647. <el-input
  648. v-model="insuredPersonInfo.identifyNumber"
  649. placeholder="请输入证件号码"
  650. type="text"
  651. maxlength="18"
  652. show-word-limit
  653. @blur="identifyblur('insuredPersonInfo')"
  654. ></el-input>
  655. </el-form-item>
  656. </el-col>
  657. <el-col :span="5" :offset="1">
  658. <el-form-item label="年龄" prop="age">
  659. <el-input v-model="insuredPersonInfo.age" placeholder="请输入年龄" type="text" disabled></el-input>
  660. </el-form-item>
  661. </el-col>
  662. <el-col :span="5">
  663. <el-form-item label="性别" prop="gender">
  664. <el-select v-model="insuredPersonInfo.gender" placeholder="请选择性别">
  665. <el-option label="男" value="男"></el-option>
  666. <el-option label="女" value="女"></el-option>
  667. </el-select>
  668. </el-form-item>
  669. </el-col>
  670. <el-col :span="5" :offset="1">
  671. <el-form-item label="被保人手机号" prop="mobile">
  672. <el-input
  673. v-model="insuredPersonInfo.mobile"
  674. placeholder="请输入被保人手机号"
  675. maxlength="11"
  676. type="text"
  677. @paste.native="handlePaste($event,'insuredPersonInfo')"
  678. show-word-limit
  679. ></el-input>
  680. </el-form-item>
  681. </el-col>
  682. <!-- <el-col :xs="xscell" :sm="smcell" :md="mdcell" :lg="lgcell" :xl="xlcell">
  683. <el-form-item label="省市区:">
  684. <el-cascader v-model="selectedOptions3" :options="areaOptions"
  685. @change="event => areahandleChange(event, 'insuredPersonInfo')"></el-cascader>
  686. </el-form-item>
  687. </el-col>-->
  688. <el-col :span="5" :offset="1">
  689. <el-form-item label="地址" prop="addr">
  690. <el-input v-model="insuredPersonInfo.addr" placeholder="请输入地址" type="text"></el-input>
  691. </el-form-item>
  692. </el-col>
  693. <el-col :span="5" :offset="1">
  694. <el-form-item label="有效期起期" prop="identifyValidDate">
  695. <el-date-picker
  696. v-dateFormat
  697. v-model="insuredPersonInfo.identifyValidDate"
  698. value-format="yyyy-MM-dd"
  699. :picker-options="pickerOptions"
  700. type="date"
  701. placeholder="选择有效期"
  702. placement="bottom-start"
  703. ></el-date-picker>
  704. </el-form-item>
  705. </el-col>
  706. <el-col :span="5" >
  707. <el-form-item label="有效期止期" prop="identifyValidEndDate">
  708. <el-date-picker
  709. v-dateFormat
  710. v-model="insuredPersonInfo.identifyValidEndDate"
  711. type="date"
  712. value-format="yyyy-MM-dd"
  713. placeholder="选择有效期"
  714. placement="bottom-start"
  715. style="width: calc(100% - 40px);"
  716. ></el-date-picker>
  717. <div class="insure-long-term" @click="insureLongterm('insuredPersonInfo')">长期</div>
  718. </el-form-item>
  719. </el-col>
  720. <el-col :span="5" :offset="1">
  721. <el-form-item label="电子邮箱" prop="email">
  722. <el-input v-model="insuredPersonInfo.email" placeholder="请输入电子邮箱"></el-input>
  723. </el-form-item>
  724. </el-col>
  725. <!-- <el-col :xs="xscell" :sm="smcell" :md="mdcell" :lg="lgcell" :xl="xlcell" v-if="isInsuredShow">
  726. <el-form-item label="省市区:">
  727. <el-cascader v-model="insuredPersonInfo.provinceData" :options="areaOption" :props="{ value: 'code',label: 'name',children: 'sub'}"></el-cascader>
  728. </el-form-item>
  729. </el-col>-->
  730. </el-row>
  731. </el-form>
  732. </div>
  733. <div class="Enclosure flex f-c back">
  734. <div class="home flex j-s a-c">
  735. <div class="flex j-s a-c color" id="insurance">
  736. <img src="../../../src/icon/投保信息.png" alt class="icon-img" />
  737. <span style="margin-left:10px;">投保信息</span>
  738. <el-switch
  739. style="margin:0 10px 0 30px;"
  740. @change="immediatelyChange"
  741. v-model="immediatelyValue"
  742. active-color="#D42426"
  743. ></el-switch>
  744. <span style="font-weight:normal;font-size: 13px;">即时投保</span>
  745. </div>
  746. </div>
  747. <el-form
  748. class="back demo-ruleForm"
  749. :inline="true"
  750. :model="Carinsurance"
  751. label-width="150px"
  752. size="small"
  753. style="margin-top: 15px"
  754. label-position="top"
  755. >
  756. <div class="flex j-start a-c">
  757. <div class="flex j-c a-start">
  758. <el-checkbox class="checkbox" style="margin-right: 20px" v-model="jqchecked" @change="jqcheckedChange"></el-checkbox>
  759. <div class="flex f-c a-c">
  760. <el-form-item label="交强险起保日期" prop="identifyNumber">
  761. <el-date-picker
  762. v-dateFormat
  763. value-format="yyyy-MM-dd HH:mm:ss"
  764. v-model="jqstartDate"
  765. @change="jqChange"
  766. type="datetime"
  767. placeholder="选择日期时间"
  768. placement="bottom-start"
  769. ></el-date-picker>
  770. </el-form-item>
  771. <el-form-item label="交强险终保日期" prop="identifyNumber">
  772. <el-date-picker
  773. v-dateFormat
  774. value-format="yyyy-MM-dd HH:mm:ss"
  775. v-model="jqendDate"
  776. type="datetime"
  777. placeholder="选择日期时间"
  778. placement="bottom-start"
  779. ></el-date-picker>
  780. </el-form-item>
  781. </div>
  782. </div>
  783. <div class="flex f-c a-c synchronous" style="margin: 0 50px;" @click="synchronization">
  784. <span style="font-size:12px;">同步</span>
  785. </div>
  786. <div class="flex j-c a-start">
  787. <el-checkbox class="checkbox" style="margin-right: 20px" v-model="sychecked" @change="sycheckedChange"></el-checkbox>
  788. <div class="flex f-c a-c">
  789. <el-form-item label="商业险起保日期" prop="name">
  790. <el-date-picker
  791. v-dateFormat
  792. value-format="yyyy-MM-dd HH:mm:ss"
  793. v-model="systartDate"
  794. @change="syChange"
  795. type="datetime"
  796. placeholder="选择日期时间"
  797. placement="bottom-start"
  798. ></el-date-picker>
  799. </el-form-item>
  800. <el-form-item label="商业险终保日期" prop="name">
  801. <el-date-picker
  802. v-dateFormat
  803. value-format="yyyy-MM-dd HH:mm:ss"
  804. v-model="syendDate"
  805. type="datetime"
  806. placeholder="选择日期时间"
  807. placement="bottom-start"
  808. ></el-date-picker>
  809. </el-form-item>
  810. </div>
  811. </div>
  812. </div>
  813. </el-form>
  814. </div>
  815. <div class="Enclosure flex f-c back">
  816. <div class="home flex j-s a-c">
  817. <div class="flex j-s a-c color" id="insurance">
  818. <img src="../../../src/icon/车船税.png" alt class="icon-img" />
  819. <span style="margin-left:10px;">车船税</span>
  820. </div>
  821. </div>
  822. <el-form
  823. class="demo-ruleForm"
  824. :model="vehicleAndVesselTaxForm"
  825. ref="vehicleAndVesselTaxForm"
  826. :rules="rules"
  827. label-width="160px"
  828. size="small"
  829. style="margin-top: 15px"
  830. label-position="top"
  831. >
  832. <el-row style="flex-wrap: wrap; display: flex;">
  833. <el-col :span="5">
  834. <el-form-item label="纳税类型:" prop="taxRelifFlag">
  835. <el-select
  836. @change="taxRelifFlagChange"
  837. v-model="vehicleAndVesselTaxForm.taxRelifFlag"
  838. placeholder="纳税类型"
  839. >
  840. <el-option
  841. v-for="(item, index) in taxRelifFlagoptions"
  842. :key="index"
  843. :label="item.dictTag"
  844. :value="item.dictValue"
  845. ></el-option>
  846. </el-select>
  847. </el-form-item>
  848. </el-col>
  849. <el-col
  850. v-show="vehicleAndVesselTaxForm.taxRelifFlag == 1"
  851. :span="5" :offset="1"
  852. >
  853. <el-form-item label="纳税人识别号:" prop="identifyNumber">
  854. <el-input
  855. v-model="vehicleAndVesselTaxForm.identifyNumber"
  856. placeholder="请输入纳税人识别号"
  857. type="text"
  858. ></el-input>
  859. </el-form-item>
  860. </el-col>
  861. <el-col
  862. v-show="vehicleAndVesselTaxForm.taxRelifFlag == 1"
  863. :span="5" :offset="1"
  864. >
  865. <el-form-item label="纳税人名称:" prop="taxpayerName">
  866. <el-input
  867. v-model="vehicleAndVesselTaxForm.taxpayerName"
  868. placeholder="请输入纳税人名称"
  869. type="text"
  870. ></el-input>
  871. </el-form-item>
  872. </el-col>
  873. <el-col
  874. v-show="vehicleAndVesselTaxForm.taxRelifFlag == 1"
  875. :span="5" :offset="1"
  876. >
  877. <el-form-item label="证件类型:" prop="taxpayerIdentifier">
  878. <el-select
  879. v-model="vehicleAndVesselTaxForm.taxpayerIdentifier"
  880. placeholder="证件类型"
  881. clearable
  882. >
  883. <el-option
  884. v-for="(item, index) in taxpayerIdentifieroptions"
  885. :key="index"
  886. :label="item.dictTag"
  887. :value="item.dictValue"
  888. ></el-option>
  889. </el-select>
  890. </el-form-item>
  891. </el-col>
  892. <el-col
  893. v-show="vehicleAndVesselTaxForm.taxRelifFlag == 2 || vehicleAndVesselTaxForm.taxRelifFlag == 3"
  894. :span="5" :offset="1"
  895. >
  896. <el-form-item label="减免税凭证号:" prop="extendChar2">
  897. <el-input
  898. v-model="vehicleAndVesselTaxForm.extendChar2"
  899. placeholder="请输入减免税凭证号"
  900. type="text"
  901. ></el-input>
  902. </el-form-item>
  903. </el-col>
  904. <el-col
  905. v-show="vehicleAndVesselTaxForm.taxRelifFlag == 4"
  906. :span="5" :offset="1"
  907. >
  908. <el-form-item label="完税凭证号:" prop="paidFreeCertificate">
  909. <el-input
  910. v-model="vehicleAndVesselTaxForm.paidFreeCertificate"
  911. placeholder="请输入完税凭证号"
  912. type="text"
  913. ></el-input>
  914. </el-form-item>
  915. </el-col>
  916. <el-col
  917. v-show="vehicleAndVesselTaxForm.taxRelifFlag == 2 || vehicleAndVesselTaxForm.taxRelifFlag == 3"
  918. :span="5" :offset="1"
  919. >
  920. <el-form-item label="减免税原因:" prop="relifReason">
  921. <el-select
  922. v-model="vehicleAndVesselTaxForm.relifReason"
  923. placeholder="减免税原因"
  924. clearable
  925. >
  926. <el-option
  927. v-for="(item, index) in relifReasonoptions"
  928. :key="index"
  929. :label="item.dictTag"
  930. :value="item.dictValue"
  931. ></el-option>
  932. </el-select>
  933. </el-form-item>
  934. </el-col>
  935. <el-col
  936. v-show="vehicleAndVesselTaxForm.taxRelifFlag != 1"
  937. :span="5" :offset="1"
  938. >
  939. <el-form-item label="税务机关代码:" prop="taxComCode">
  940. <el-input
  941. v-model="vehicleAndVesselTaxForm.taxComCode"
  942. placeholder="请输入税务机关代码"
  943. type="text"
  944. ></el-input>
  945. </el-form-item>
  946. </el-col>
  947. <el-col
  948. v-show="vehicleAndVesselTaxForm.taxRelifFlag != 1"
  949. :span="5" :offset="vehicleAndVesselTaxForm.taxRelifFlag == 4?1:0"
  950. >
  951. <el-form-item label="税务机关名称:" prop="taxComName">
  952. <el-input
  953. v-model="vehicleAndVesselTaxForm.taxComName"
  954. placeholder="请输入税务机关名称"
  955. type="text"
  956. ></el-input>
  957. </el-form-item>
  958. </el-col>
  959. <el-col
  960. v-show="vehicleAndVesselTaxForm.taxRelifFlag == 4"
  961. :span="5"
  962. >
  963. <el-form-item label="完税凭证填发日期:" prop="taxDocumentDate">
  964. <el-date-picker
  965. v-dateFormat
  966. v-model="vehicleAndVesselTaxForm.taxDocumentDate"
  967. value-format="yyyy-MM-dd"
  968. type="date"
  969. placeholder="完税凭证填发日期"
  970. placement="bottom-start"
  971. ></el-date-picker>
  972. </el-form-item>
  973. </el-col>
  974. <el-col
  975. v-show="vehicleAndVesselTaxForm.taxRelifFlag == 4"
  976. :span="5" :offset="1"
  977. >
  978. <el-form-item label="完税凭证地区:" prop="taxPaidAreaCode">
  979. <el-select
  980. v-model="vehicleAndVesselTaxForm.taxPaidAreaCode"
  981. placeholder="完税凭证地区"
  982. clearable
  983. >
  984. <el-option
  985. v-for="(item, index) in provinceSelect"
  986. :key="index"
  987. :label="item.name"
  988. :value="item.code"
  989. ></el-option>
  990. </el-select>
  991. </el-form-item>
  992. </el-col>
  993. <el-col
  994. v-show="vehicleAndVesselTaxForm.taxRelifFlag == 3"
  995. :span="5" :offset="1"
  996. >
  997. <el-form-item label="减税比例:" prop="taxRelief">
  998. <el-input
  999. v-model="vehicleAndVesselTaxForm.taxRelief"
  1000. placeholder="请输入0~1的数值"
  1001. type="text"
  1002. ></el-input>
  1003. </el-form-item>
  1004. </el-col>
  1005. </el-row>
  1006. </el-form>
  1007. </div>
  1008. <div class="Enclosure flex f-c back">
  1009. <div class="home flex j-s a-c back">
  1010. <div class="flex j-s a-c " id="more">
  1011. <img src="../../../src/icon/险别选择.png" alt class="icon-img" />
  1012. <span style="margin-left:15px;width: 120px">险别选择</span>
  1013. <el-select size='small' style="width:70%" v-model="packageValue" placeholder="请选择套餐" @change="packageChange">
  1014. <el-option
  1015. v-for="item in packageOptions"
  1016. :key="item.id"
  1017. :label="item.title"
  1018. :value="item.id">
  1019. </el-option>
  1020. </el-select>
  1021. </div>
  1022. </div>
  1023. <div class="flex f-c more">
  1024. <div class="flex j-s a-c more-title back">
  1025. <div style="width:590px;padding-left:100px;" class="flex j-s a-c">
  1026. <span>险别</span>
  1027. <span>保额(元)</span>
  1028. </div>
  1029. </div>
  1030. <div
  1031. class="flex a-c more-data back"
  1032. v-for="(insureitem, insureindex) in insureList"
  1033. :key="insureindex"
  1034. >
  1035. <div style="width:700px;padding-left: 100px;" class="flex j-s a-c">
  1036. <div style="width:auto;">
  1037. <span style="text-align:center;">
  1038. {{ insureitem.kindName }}
  1039. <el-input
  1040. v-show="insureitem.kindCode == 'D4' || insureitem.kindCode == 'MJ4' || insureitem.kindCode == 'SY_FJ_YBW2'"
  1041. v-model="sumseatCount"
  1042. style="width:40px;margin:0 5px;"
  1043. size="small"
  1044. placeholder
  1045. disabled
  1046. ></el-input>
  1047. <span
  1048. v-show="insureitem.kindCode == 'D4' || insureitem.kindCode == 'MJ4' || insureitem.kindCode == 'SY_FJ_YBW2'"
  1049. >座</span>
  1050. </span>
  1051. </div>
  1052. <el-select
  1053. v-if="insureitem.amtList"
  1054. filterable
  1055. v-model="insureitem.amount"
  1056. placeholder="请选择"
  1057. @change="insureitemChange"
  1058. size="small"
  1059. style="width: 300px;"
  1060. >
  1061. <el-option
  1062. :label="item.label"
  1063. :value="item.value"
  1064. v-for="(item, index) in insureitem.amtList"
  1065. :key="index"
  1066. ></el-option>
  1067. </el-select>
  1068. <span v-else>
  1069. <el-input-number
  1070. size="small"
  1071. style="width: 280px;margin-right:10px"
  1072. v-model="insureitem.amount"
  1073. :min="0"
  1074. ></el-input-number>次
  1075. </span>
  1076. </div>
  1077. </div>
  1078. <!-- <div style="margin:0 auto;font-size: 14px;cursor: pointer;margin-top:15px;">
  1079. <span v-show="insureMore" @click="selectMore(insureList.length)">
  1080. 查看更多
  1081. <i class="el-icon-arrow-down"></i>
  1082. </span>
  1083. <span v-show="!insureMore" @click="packup()">
  1084. 收起
  1085. <i class="el-icon-arrow-up"></i>
  1086. </span>
  1087. </div>-->
  1088. </div>
  1089. </div>
  1090. <div class="Enclosure flex f-c back">
  1091. <div class="home flex j-s ">
  1092. <div class="flex j-s a-c" id="company">
  1093. <img src="../../../src/icon/保险公司.png" alt class="icon-img" />
  1094. <span style="margin-left:10px;">保险公司</span>
  1095. <div class="csstool">
  1096. <span>是否过户车</span>
  1097. <el-switch
  1098. @change="transferFlagChange"
  1099. v-model="carInfo.transferFlag"
  1100. active-color="#D42426"
  1101. ></el-switch>
  1102. </div>
  1103. <div class="csstool">
  1104. <span>商业险是否过户</span>
  1105. <el-switch v-model="carInfo.transferFlagBi" active-color="#D42426"></el-switch>
  1106. </div>
  1107. <div class="csstool">
  1108. <span>是否脱保</span>
  1109. <el-switch v-model="carInfo.outOfInsurance" active-color="#D42426"></el-switch>
  1110. </div>
  1111. <div class="csstool">
  1112. <span>是否二手车</span>
  1113. <el-switch v-model="carInfo.usedCar" active-color="#D42426"></el-switch>
  1114. </div>
  1115. </div>
  1116. <div class="flex j-c a-c">
  1117. <el-button v-show="imageUploadShow" size="small" type="primary" @click="imageUpload()">
  1118. <i class="el-icon-camera-solid" style="margin-right:4px;"></i>
  1119. 影像上传
  1120. </el-button>
  1121. </div>
  1122. </div>
  1123. <div >
  1124. <div class=" companyhead">
  1125. <el-row>
  1126. <el-col :span="1">
  1127. <el-checkbox style="margin:0 10px 0 10px" @change="handleCheckAllChange"></el-checkbox>
  1128. <span style="font-size:14px;">全选</span>
  1129. </el-col>
  1130. <el-col :span="2" style="margin: 0 42px 0 35px;">
  1131. <span>保险公司</span>
  1132. </el-col>
  1133. <el-col :span="5" >
  1134. <span>报价协议</span>
  1135. </el-col>
  1136. <el-col :span="3">
  1137. <span>报价结果</span>
  1138. </el-col>
  1139. <el-col :span="3">
  1140. <span>交强险</span>
  1141. </el-col>
  1142. <el-col :span="3">
  1143. <span>车船税</span>
  1144. </el-col>
  1145. <el-col :span="3">
  1146. <span>商业险</span>
  1147. </el-col>
  1148. <el-col :span="2">
  1149. <span>驾意险</span>
  1150. </el-col>
  1151. </el-row>
  1152. </div>
  1153. <div class="coll">
  1154. <div
  1155. v-loading.fullscreen.lock="loading"
  1156. class="hovers"
  1157. v-for="(reslistitem, reslistindex) in totalCompanyList"
  1158. :key="reslistindex"
  1159. >
  1160. <el-row>
  1161. <el-col :span="1" style="margin-left: 20px;">
  1162. <el-checkbox
  1163. v-model="reslistitem.checked"
  1164. @change="event => initchange(event, reslistitem.id, reslistitem.cnName, reslistindex)"
  1165. ></el-checkbox>
  1166. </el-col>
  1167. <el-col :span="3" >
  1168. <img
  1169. :src="reslistitem.logo"
  1170. alt
  1171. style="width:30px; height:30px;vertical-align: middle;margin-left:20px"
  1172. />
  1173. <span>{{ reslistitem.namesimple }}</span>
  1174. </el-col>
  1175. <el-col :span="5" >
  1176. <el-select
  1177. size="small"
  1178. v-if="reslistitem.isTaxSource && reslistitem.isTaxSource=='1'"
  1179. :disabled="true"
  1180. placeholder="默认"
  1181. style="width: 230px;"
  1182. v-model="isTaxSourceModel"
  1183. :clearable="true"
  1184. > </el-select>
  1185. <el-select
  1186. size="small"
  1187. v-else
  1188. :disabled="!reslistitem.checked"
  1189. v-model="reslistitem.agreementId"
  1190. placeholder="请选择协议"
  1191. style="width: 230px;"
  1192. :clearable="true"
  1193. @change="val => agreementChange(val, reslistitem.agreement, reslistindex, reslistitem)"
  1194. >
  1195. <div
  1196. v-for="(agreementitem, agreementindex ) in reslistitem.agreement"
  1197. :key="agreementindex"
  1198. >
  1199. <div
  1200. v-if="agreementitem.licenseNo && agreementitem.licenseNo.length > 0 && carInfo.licenseNo.length > 0 ? agreementitem.licenseNo.includes(carInfo.licenseNo.slice(0, 2)) : 'true'"
  1201. >
  1202. <el-option :label="agreementitem.agreementName" :value="agreementitem.id"></el-option>
  1203. </div>
  1204. </div>
  1205. </el-select>
  1206. </el-col>
  1207. <el-col :span="3" >
  1208. <div v-show="reslistitem.quoteCode == '0'">
  1209. <span>未报价</span>
  1210. </div>
  1211. <div v-show="reslistitem.quoteCode == '1'">
  1212. <i style="color:#D42426" class="el-icon-loading"></i>
  1213. </div>
  1214. <span
  1215. v-show="reslistitem.quoteCode == '200'"
  1216. style="color:#D42426;font-weight:bold;"
  1217. >
  1218. ¥{{
  1219. reslistitem.result.sumPermium
  1220. }}
  1221. </span>
  1222. </el-col>
  1223. <el-col :span="3" >
  1224. <span
  1225. v-show="reslistitem.quoteCode == '200'"
  1226. style="color:#D42426;font-weight:bold;"
  1227. >
  1228. ¥{{
  1229. reslistitem.result.jqPremium }}
  1230. </span>
  1231. </el-col>
  1232. <el-col :span="3">
  1233. <span
  1234. v-show="reslistitem.quoteCode == '200'"
  1235. style="color:#D42426;font-weight:bold;"
  1236. >
  1237. ¥{{
  1238. reslistitem.result.taxAmount }}
  1239. </span>
  1240. </el-col>
  1241. <el-col :span="3">
  1242. <span
  1243. v-show="reslistitem.quoteCode == '200'"
  1244. style="color:#D42426;font-weight:bold;"
  1245. >
  1246. ¥{{
  1247. reslistitem.result.syPremium }}
  1248. </span>
  1249. </el-col>
  1250. <el-col :span="2" v-if="reslistitem.quoteCode == '200'" style="color:#D42426;font-weight:bold;">
  1251. {{
  1252. reslistitem.result.jyPremium ? '¥' + reslistitem.result.jyPremium : '无' }}
  1253. </el-col>
  1254. <el-col :span="24" v-show="(reslistitem.quoteCode != '200') && (reslistitem.quoteCode != '0') && (reslistitem.quoteCode != '1')">
  1255. <div class="flex j-s offer-time" style="color:#D42426">
  1256. {{reslistitem.msg.length > 500 ? reslistitem.msg.slice(0, 500) : reslistitem.msg }}
  1257. </div>
  1258. </el-col>
  1259. </el-row>
  1260. <div class="flex j-s offer-time" v-if="reslistitem.quoteCode == '200'">
  1261. <div style="line-height: 25px;">
  1262. 保险期限:
  1263. <span v-show="reslistitem.result.startDateJq">
  1264. 【交强险】
  1265. <span>
  1266. {{ reslistitem.result.startDateJq }} -
  1267. {{ reslistitem.result.endDateJq }}
  1268. </span>
  1269. </span>
  1270. <span v-show="reslistitem.result.startDateSy" style="margin-left: 20px;">
  1271. 【商业险】
  1272. <span>
  1273. {{ reslistitem.result.startDateSy }} -
  1274. {{ reslistitem.result.endDateSy }}
  1275. </span>
  1276. </span>
  1277. <span @click="syncData(reslistitem.result)">
  1278. <el-tooltip class="item" effect="dark" content="使用此时间" placement="top">
  1279. <i style="color:red" class="el-icon-time"></i>
  1280. </el-tooltip>
  1281. </span>
  1282. <div>
  1283. <span v-if="reslistitem.namesimple == '永诚财险'">
  1284. 光博分:
  1285. <span>
  1286. {{ reslistitem.result.ilogPreUdwMess ?
  1287. reslistitem.result.ilogPreUdwMess : '无' }}
  1288. </span>
  1289. </span>
  1290. <span v-else>
  1291. 评分:
  1292. <span>
  1293. {{ reslistitem.result.ilogPreUdwMess ?
  1294. reslistitem.result.ilogPreUdwMess : '无' }}
  1295. </span>
  1296. </span>
  1297. <span v-if="reslistitem.result.jqScore" class="marginL">
  1298. 交强类型评分:
  1299. <span>{{ reslistitem.result.jqScore }}</span>
  1300. </span>
  1301. <span v-if="reslistitem.result.syScore" class="marginL">
  1302. 商业类型评分:
  1303. <span>{{ reslistitem.result.syScore }}</span>
  1304. </span>
  1305. <span v-if="reslistitem.result.lossRation" class="marginL">
  1306. 总赔付率:
  1307. <span>{{ reslistitem.result.lossRation }}</span>
  1308. </span>
  1309. <span v-if="reslistitem.result.jqLossRation" class="marginL">
  1310. 交强赔付率:
  1311. <span>{{ reslistitem.result.jqLossRation }}</span>
  1312. </span>
  1313. <span v-if="reslistitem.result.syLossRation" class="marginL">
  1314. 商业赔付率:
  1315. <span>{{ reslistitem.result.syLossRation }}</span>
  1316. </span>
  1317. <span v-if="reslistitem.result.totalAdjustRate" class="marginL">
  1318. 自主定价系数:
  1319. <span>{{ reslistitem.result.totalAdjustRate }}</span>
  1320. </span>
  1321. <span v-if="reslistitem.result.jgAdjustRate" class="marginL">
  1322. 交强折扣系数:
  1323. <span>{{ reslistitem.result.jgAdjustRate }}</span>
  1324. </span>
  1325. <span v-if="reslistitem.result.syAdjustRate" class="marginL">
  1326. 商业折扣系数:
  1327. <span>{{ reslistitem.result.syAdjustRate }}</span>
  1328. </span>
  1329. <span v-if="reslistitem.result.accidentInfoStr" class="marginL">
  1330. 出险信息:
  1331. <span>
  1332. {{
  1333. reslistitem.result.accidentInfoStr }}
  1334. </span>
  1335. </span>
  1336.   <span  v-if="reslistitem.result.ubiPredictedInfoScore" class="marginL">
  1337.                   紫荆能源车(鼎然-车辆风险评分):
  1338.                   <span>{{ reslistitem.result.ubiPredictedInfoScore }}</span>
  1339.                 </span>
  1340. <span v-if="reslistitem.result.iszdj && reslistitem.result.iszdj=='1'">真单交</span>
  1341. <span v-if="reslistitem.result.iszdj && reslistitem.result.iszdj=='0'">假单交</span>
  1342. </div>
  1343. </div>
  1344. <div style="text-align: right;">
  1345. <div style="color:#2D4D89; ">
  1346. <el-tooltip class="item" effect="dark" content="上年信息" placement="top">
  1347. <i
  1348. class="el-icon-chat-dot-round"
  1349. @click="open2(reslistitem.namesimple, reslistitem.lastYearMsg)"
  1350. style="font-size:20px;transform: scale(0.8);vertical-align: middle;"
  1351. :disabled="reslistitem.namesimple=='众安财险'&& reslistitem.result.tips=='需要验车'"
  1352. v-show="(reslistitem.quoteCode == '200' && reslistitem.lastYearMsg)"
  1353. ></i>
  1354. </el-tooltip>
  1355. <el-tooltip class="item" effect="dark" content="预核保信息" placement="top">
  1356. <i
  1357. class="el-icon-chat-dot-round"
  1358. @click="openPredictInfo(reslistitem.namesimple, reslistitem.predictInfo)"
  1359. style="font-size:20px;transform: scale(0.8);vertical-align: middle;"
  1360. v-show="(reslistitem.quoteCode == '200' && reslistitem.predictInfo && reslistitem.predictInfo.length>0 && reslistitem.namesimple=='中国人寿')"
  1361. ></i>
  1362. </el-tooltip>
  1363. <el-button
  1364. :disabled="reslistitem.namesimple=='众安财险'&& reslistitem.result.tips=='需要验车'"
  1365. v-show="reslistitem.quoteCode == '200' && !('editStatus' in reslistitem.result) "
  1366. type="text"
  1367. size="small"
  1368. style="color:#2D4D89;font-size:14px"
  1369. @click="hbsubmitdialog(reslistitem)"
  1370. >下单</el-button>
  1371. <el-button
  1372. v-show="reslistitem.quoteCode == '200'"
  1373. type="text"
  1374. size="small"
  1375. style="color:#2D4D89;font-size:14px "
  1376. @click="qoutedetail(reslistitem.result.companyId)"
  1377. >查看详情</el-button>
  1378. </div>
  1379. <div >
  1380. <el-button
  1381. v-show="reslistitem.quoteCode == '200'"
  1382. type="text"
  1383. size="small"
  1384. style="font-size:14px "
  1385. @click="bjdpreview(reslistitem.result.companyId)"
  1386. >报价单</el-button>
  1387. <el-button
  1388. type="text"
  1389. size="small"
  1390. style="font-size:14px "
  1391. @click="Payment(reslistitem.result.companyId,reslistitem.namesimple)"
  1392. v-show="reslistitem.orderstatus == '2'&& !('editStatus' in reslistitem.result)"
  1393. >付款码</el-button>
  1394. </div>
  1395. </div>
  1396. </div>
  1397. <template>
  1398. <!-- <div style="margin:20px 0 0 100px;" v-if="reslistitem.checked && reslistitem.agreementId"> -->
  1399. <span v-if="reslistitem.checked && reslistitem.agreementId &&reslistitem.underwritingDescription" style="margin:20px 20px 0 100px;display: inline-block"> {{reslistitem.underwritingDescription}}</span>
  1400. <!-- </div> -->
  1401. </template>
  1402. <template
  1403. v-if="reslistitem.namesimple == '恒邦财险' && reslistitem.checked && reslistitem.agreementId"
  1404. >
  1405. <div class="flex f-c Driving-risk">
  1406. <div class="dis a-c" style="margin-top:15px">
  1407. <span style="margin-right:15px;font-weight:bold">选择意外险</span>
  1408. <el-select
  1409. style="width: 250px;"
  1410. filterable
  1411. size="small"
  1412. clearable
  1413. v-model="insuranceHB"
  1414. placeholder="未选择"
  1415. @clear="clearAccidentFormHB"
  1416. @change="hengbangInsuranceChange"
  1417. >
  1418. <el-option
  1419. v-for="(item, index) in hengbangInsuranceData"
  1420. :key="index"
  1421. :label="item.programname"
  1422. :value="item.programcode"
  1423. ></el-option>
  1424. </el-select>
  1425. </div>
  1426. <el-table
  1427. size="small"
  1428. :data="HBInsuranceData"
  1429. border
  1430. v-if="insuranceHB"
  1431. @row-click="HBDrivingChange"
  1432. ref="RsTable"
  1433. highlight-current-row
  1434. :header-cell-style="{ background: '#F7F7F9 ', fontWeight: '700', color: '#333333' }"
  1435. >
  1436. <el-table-column prop="programname" label="方案名称" align="center"></el-table-column>
  1437. <el-table-column prop="suminsured" label="保额" align="center"></el-table-column>
  1438. <el-table-column prop="sumgrosspremium" label="保费 (元)/每份" align="center">
  1439. <template slot-scope="scope">
  1440. <span>¥{{scope.row.sumgrosspremium}}</span>
  1441. </template></el-table-column>
  1442. <el-table-column label="份数" align="center">
  1443. <template slot-scope="scope">
  1444. <span>{{scope.row.quantity}}</span>
  1445. </template>
  1446. </el-table-column>
  1447. </el-table>
  1448. </div>
  1449. </template>
  1450. <template
  1451. v-if="reslistitem.namesimple == '华农财险' && reslistitem.checked && reslistitem.agreementId"
  1452. >
  1453. <div class="flex f-c Driving-risk">
  1454. <el-form :inline="true" :model="accidentFormHN" class="demo-form-inline" style="font-weight:bold;margin-top:15px" size="small">
  1455. <el-form-item label="意外险类型:" style="margin-right:30px;">
  1456. <el-select
  1457. clearable
  1458. v-model="accidentFormHN.accidentType"
  1459. placeholder="未选择"
  1460. @clear="clearAccidentFormHN"
  1461. @change="huanongInsuranceChange"
  1462. >
  1463. <el-option
  1464. v-for="(item, index) in huanongInsuranceData"
  1465. :key="index"
  1466. :label="item.planName"
  1467. :value="item.planCode"
  1468. ></el-option>
  1469. </el-select>
  1470. </el-form-item>
  1471. <el-form-item label="选择份数" style="margin-right:30px;">
  1472. <el-input-number
  1473. v-model="accidentFormHN.allQuantity"
  1474. :min="1"
  1475. controls-position="right"
  1476. ></el-input-number>
  1477. <!-- <span style="margin-left: 5px;">份</span> -->
  1478. </el-form-item>
  1479. </el-form>
  1480. <el-table
  1481. v-if="accidentFormHN.accidentType"
  1482. size="small"
  1483. :data="HNInsuranceData"
  1484. border
  1485. ref="expandTable"
  1486. highlight-current-row
  1487. :header-cell-style="{ background: '#F7F7F9 ', fontWeight: '700', color: '#333333' }"
  1488. >
  1489. <el-table-column prop="dutyName" label="保险责任" align="center"></el-table-column>
  1490. <el-table-column prop="unitAmount" label="保额" align="center">
  1491. <template slot-scope="scope">
  1492. <el-input v-model="scope.row.unitAmount" placeholder="请输入内容" size="small" disabled></el-input>
  1493. </template>
  1494. </el-table-column>
  1495. </el-table>
  1496. </div>
  1497. </template>
  1498. <template
  1499. v-if="reslistitem.namesimple == '太平财险' && reslistitem.checked && reslistitem.agreementId"
  1500. >
  1501. <div class="flex f-c Driving-risk">
  1502. <div class="dis a-c" style="margin-top:15px">
  1503. <span style="margin-right:15px;font-weight:bold">选择意外险</span>
  1504. <el-select
  1505. style="width: 250px;"
  1506. filterable
  1507. size="small"
  1508. clearable
  1509. v-model="insuranceTP"
  1510. placeholder="未选择"
  1511. @clear="clearAccidentFormTP"
  1512. @change="taipingInsuranceChange"
  1513. >
  1514. <el-option
  1515. v-for="(item, index) in taipingInsuranceData"
  1516. :key="index"
  1517. :label="item.rationName"
  1518. :value="item.rationType"
  1519. ></el-option>
  1520. </el-select>
  1521. </div>
  1522. <el-table
  1523. size="small"
  1524. :data="TPInsuranceData"
  1525. border
  1526. v-if="insuranceTP"
  1527. ref="RsTable"
  1528. highlight-current-row
  1529. :header-cell-style="{ background: '#F7F7F9 ', fontWeight: '700', color: '#333333' }"
  1530. >
  1531. <el-table-column prop="rationName" label="投保产品" align="center"></el-table-column>
  1532. <el-table-column label="投保份数" align="center" prop="quantity">
  1533. <template >
  1534. <span>1</span>
  1535. </template>
  1536. </el-table-column>
  1537. <el-table-column prop="price" label="每份价税合计" align="center"></el-table-column>
  1538. <el-table-column prop="endSeatNum" label="最大座位数" align="center"></el-table-column>
  1539. </el-table>
  1540. </div>
  1541. </template>
  1542. <template
  1543. v-if="reslistitem.namesimple == '安盛天平' && reslistitem.checked && reslistitem.agreementId"
  1544. >
  1545. <div class="flex f-c Driving-risk">
  1546. <div class="dis a-c" style="margin-top:15px">
  1547. <span style="margin-right:15px;font-weight:bold;">意外险类型</span>
  1548. <el-select
  1549. style="width: 250px;"
  1550. size="small"
  1551. clearable
  1552. v-model="anshengInsurancetype"
  1553. placeholder="未选择"
  1554. @clear="clearAccidentFormAS"
  1555. @change="anshengInsuranceChange"
  1556. >
  1557. <el-option
  1558. v-for="(item, index) in anshengInsuranceData"
  1559. :key="index"
  1560. :label="item.planCode + ' '+item.planChineseName"
  1561. :value="item.planCode"
  1562. ></el-option>
  1563. </el-select>
  1564. </div>
  1565. <el-table
  1566. size="small"
  1567. :data="anshengInsuranceData1"
  1568. border
  1569. v-if="anshengInsurancetype"
  1570. ref="RsTable"
  1571. highlight-current-row
  1572. :header-cell-style="{ background: '#F7F7F9 ', fontWeight: '700', color: '#333333' }"
  1573. >
  1574. <el-table-column align="center" width="55" label="选择">
  1575. <template slot-scope="scope">
  1576. <el-radio
  1577. class="radio"
  1578. v-model="AStemplateSelection"
  1579. :label="scope.row.productCode"
  1580. @click.native.stop.prevent="ASDrivingRadio(scope.row)"
  1581. >&nbsp;</el-radio>
  1582. </template>
  1583. </el-table-column>
  1584. <el-table-column prop="productName" label="方案名称" align="center"></el-table-column>
  1585. <el-table-column prop="productCode" label="方案代码" align="center"></el-table-column>
  1586. <el-table-column label="份数" align="center">
  1587. <template slot-scope="scope">
  1588. <span>{{scope.row.quantity}}</span>
  1589. </template>
  1590. </el-table-column>
  1591. </el-table>
  1592. </div>
  1593. </template>
  1594. <template
  1595. v-if="reslistitem.namesimple == '中国人寿' && reslistitem.checked && reslistitem.agreementId"
  1596. >
  1597. <div style="margin:15px 0 15px 100px">
  1598. <span>商业险折扣:</span>
  1599. <el-input style="width:220px" :disabled="!lastCompanyId" size="small" v-model="reslistitem.discount" placeholder="请输入内容" @input="reslistitem.discount= reslistitem.discount.replace(/[^\d.]/g, '')"></el-input>
  1600. </div>
  1601. <div class="flex f-c Driving-risk">
  1602. <div class="dis a-c" >
  1603. <span style="margin-right:15px;font-weight:bold">选择意外险</span>
  1604. <el-select
  1605. style="width: 250px;"
  1606. filterable
  1607. size="small"
  1608. clearable
  1609. v-model="insuranceRS"
  1610. placeholder="未选择"
  1611. @clear="clearAccidentFormRS"
  1612. @change="renshouInsuranceChange"
  1613. >
  1614. <el-option
  1615. v-for="(item, index) in renshouInsuranceData"
  1616. :key="index"
  1617. :label="item.productName"
  1618. :value="item.id"
  1619. ></el-option>
  1620. </el-select>
  1621. </div>
  1622. <el-table
  1623. size="small"
  1624. :data="RSInsuranceData"
  1625. border
  1626. v-if="insuranceRS"
  1627. @row-click="RSDrivingChange"
  1628. ref="RsTable"
  1629. highlight-current-row
  1630. :header-cell-style="{ background: '#F7F7F9 ', fontWeight: '700', color: '#333333' }"
  1631. >
  1632. <el-table-column prop="productName" label="方案名称" align="center"></el-table-column>
  1633. <el-table-column prop="totalPremium" label="保费 (元)起" align="center">
  1634. <template slot-scope="scope">
  1635. <span>¥{{scope.row.totalPremium}}</span>
  1636. </template>
  1637. </el-table-column>
  1638. <el-table-column label="份数" align="center">
  1639. <template slot-scope="scope">
  1640. <span>{{scope.row.quantity}}</span>
  1641. </template>
  1642. </el-table-column>
  1643. </el-table>
  1644. </div>
  1645. </template>
  1646. <template
  1647. v-if="reslistitem.namesimple == '众安财险' && reslistitem.checked && reslistitem.agreementId"
  1648. >
  1649. <div class="flex f-c Driving-risk">
  1650. <div class="dis a-c" style="margin-top:15px">
  1651. <span style="margin-right:15px;font-weight:bold">选择意外险</span>
  1652. <el-select
  1653. style="width: 250px;"
  1654. filterable
  1655. size="small"
  1656. clearable
  1657. v-model="insuranceZA"
  1658. placeholder="未选择"
  1659. @clear="clearAccidentFormZA"
  1660. @change="zhonganInsuranceChange"
  1661. >
  1662. <el-option
  1663. v-for="(item, index) in zhonganInsuranceData"
  1664. :key="index"
  1665. :label="item.name"
  1666. :value="item.combination"
  1667. ></el-option>
  1668. </el-select>
  1669. </div>
  1670. <el-table
  1671. size="small"
  1672. :data="ZRInsuranceData"
  1673. border
  1674. v-if="insuranceZA"
  1675. @row-click="ZADrivingChange"
  1676. ref="RsTable"
  1677. highlight-current-row
  1678. :header-cell-style="{ background: '#F7F7F9 ', fontWeight: '700', color: '#333333' }"
  1679. >
  1680. <el-table-column prop="name" label="方案名称" align="center"></el-table-column>
  1681. <el-table-column label="份数" align="center">
  1682. <template slot-scope="scope">
  1683. <span>{{scope.row.quantity}}</span>
  1684. </template>
  1685. </el-table-column>
  1686. </el-table>
  1687. </div>
  1688. </template>
  1689. <template
  1690. v-if="reslistitem.namesimple == '紫金财险' && reslistitem.checked && reslistitem.agreementId"
  1691. >
  1692. <div style="margin:15px 0 15px 100px">
  1693. <span >自主定价系数:</span>
  1694. <el-input style="width:220px" size="small" v-model="reslistitem.coefficient" placeholder="请输入内容"></el-input>
  1695. </div>
  1696. <div class="flex f-c Driving-risk">
  1697. <div class="dis a-c" style="margin-bottom:15px">
  1698. <span style="margin-right:15px;font-weight:bold">选择意外险</span>
  1699. <el-select
  1700. style="width: 250px;"
  1701. filterable
  1702. multiple
  1703. size="small"
  1704. clearable
  1705. v-model="insuranceZJ"
  1706. placeholder="未选择"
  1707. @clear="clearAccidentFormZJ"
  1708. @change="zijinInsuranceChange"
  1709. >
  1710. <el-option
  1711. v-for="(item, index) in ziJinInsuranceData"
  1712. :key="index"
  1713. :label="item.projectName"
  1714. :value="item.projectCode"
  1715. ></el-option>
  1716. </el-select>
  1717. </div>
  1718. <el-table
  1719. size="small"
  1720. :data="ZJInsuranceData"
  1721. border
  1722. v-if="insuranceZJ"
  1723. @select="CheckboxChange"
  1724. filterable
  1725. ref="expandTable"
  1726. highlight-current-row
  1727. :header-cell-style="{ background: '#F7F7F9 ', fontWeight: '700', color: '#333333' }"
  1728. >
  1729. <el-table-column type="selection" width="55"></el-table-column>
  1730. <el-table-column prop="projectName" label="方案名称" align="center"></el-table-column>
  1731. <el-table-column prop="sumAmount" label="总保额 (元)/每份" align="center"></el-table-column>
  1732. <el-table-column prop="sumPremium" label="保费 (元)/每份" align="center">
  1733. <template slot-scope="scope">
  1734. <span>¥{{scope.row.sumPremium}}</span>
  1735. </template></el-table-column>
  1736. <el-table-column prop="quantity" label="份数" align="center">
  1737. <template slot-scope="scope">
  1738. <el-input-number
  1739. v-model="scope.row.quantity"
  1740. :min="1"
  1741. :max="scope.row.maxQuantity"
  1742. size="small"
  1743. controls-position="right"
  1744. ></el-input-number>
  1745. </template>
  1746. </el-table-column>
  1747. <el-table-column prop="Totalprice" label="总保费 (元)" align="center">
  1748. <template slot-scope="scope">
  1749. <span
  1750. v-if="scope.row.quantity"
  1751. >{{ scope.row.sumPremium * scope.row.quantity }}</span>
  1752. <span v-else>{{ scope.row.sumPremium }}</span>
  1753. </template>
  1754. </el-table-column>
  1755. </el-table>
  1756. </div>
  1757. </template>
  1758. <template
  1759. v-if="reslistitem.namesimple == '永诚财险' && reslistitem.checked && reslistitem.agreementId"
  1760. >
  1761. <div class="flex f-c Driving-risk">
  1762. <el-form :inline="true" :model="accidentForm" class="demo-form-inline" size="small" style="font-weight:bold;margin-top:15px">
  1763. <el-form-item label="意外险类型" style="margin-right:30px;">
  1764. <el-select
  1765. clearable
  1766. v-model="accidentForm.accidentType"
  1767. placeholder="未选择"
  1768. @clear="clearAccidentForm"
  1769. @change="ywxxxchange"
  1770. >
  1771. <el-option
  1772. v-for="(item, index) in accidentDataList"
  1773. :key="index"
  1774. :label="item.name"
  1775. :value="item.code"
  1776. ></el-option>
  1777. </el-select>
  1778. </el-form-item>
  1779. <el-form-item label="选择份数" style="margin-right:50px;">
  1780. <el-input-number
  1781. v-model="accidentForm.fen"
  1782. @change="numberCopieschange"
  1783. :min="1"
  1784. controls-position="right"
  1785. ></el-input-number>
  1786. <!-- <span style="margin-left: 5px;">份</span> -->
  1787. </el-form-item>
  1788. <el-form-item label="保费:">
  1789. <span>{{accidentForm.premium}}&ensp;元</span>
  1790. </el-form-item>
  1791. </el-form>
  1792. <el-table
  1793. v-if="accidentForm.accidentType"
  1794. size="small"
  1795. :data="accidenttableData"
  1796. border
  1797. ref="expandTable"
  1798. highlight-current-row
  1799. :header-cell-style="{ background: '#F7F7F9', fontWeight: '700', color: '#333333' }"
  1800. >
  1801. <el-table-column prop="name" label="保险责任" align="center"></el-table-column>
  1802. <el-table-column prop="seatSum" label="每座保额 (元)/每份" align="center"></el-table-column>
  1803. <el-table-column prop="carSum" label="每车保额 (元)/每份" align="center"></el-table-column>
  1804. <el-table-column prop="premium" label="责任保费 (元)/每份" align="center"></el-table-column>
  1805. </el-table>
  1806. </div>
  1807. </template>
  1808. <template
  1809. v-if="reslistitem.namesimple == '国任财险' && reslistitem.checked && reslistitem.agreementId"
  1810. >
  1811. <!-- <div style="margin:10px 0 0 100px;">
  1812. <span style="margin-right:20px"> {{reslistitem.underwritingDescription}}</span> -->
  1813. <el-button
  1814. type="text"
  1815. @click="contributingGuoRen(reslistitem.agreementId)"
  1816. >选择特约</el-button>
  1817. <!-- </div> -->
  1818. <div class="flex f-c Driving-risk" >
  1819. <el-form
  1820. :inline="true"
  1821. :model="guoRenaccidentForm"
  1822. class="demo-form-inline"
  1823. size="small"
  1824. >
  1825. <el-form-item label="意外险类型" style="margin-right:30px;">
  1826. <el-select
  1827. clearable
  1828. placeholder="未选择"
  1829. @clear="clearAccidentFormGr"
  1830. @change="grcxchange"
  1831. v-model="guoRenaccidentForm.goodsCode"
  1832. >
  1833. <el-option
  1834. v-for="(item, index) in guoRenaccidentDataList"
  1835. :key="index"
  1836. :label="item.goodDesc"
  1837. :value="item.goodId"
  1838. ></el-option>
  1839. </el-select>
  1840. </el-form-item>
  1841. <el-form-item label=" ">
  1842. <el-select
  1843. clearable
  1844. v-model="guoRenaccidentForm.prodCode"
  1845. v-loading="accidentLoading"
  1846. @change="grcxchangeChild"
  1847. >
  1848. <el-option
  1849. v-for="(item, index) in guoRenaccidentDataListChild"
  1850. :key="item.prodCode"
  1851. :label="item.prodCName"
  1852. :value="item.prodCode"
  1853. ></el-option>
  1854. </el-select>
  1855. </el-form-item>
  1856. <el-form-item label="选择份数" style="margin-right:30px;">
  1857. <el-input-number
  1858. v-model="guoRenaccidentForm.quantity"
  1859. :min="1"
  1860. controls-position="right"
  1861. @change="numberCopieschangeGR"
  1862. ></el-input-number>
  1863. <!-- <span style="margin-left: 5px;">份</span> -->
  1864. </el-form-item>
  1865. <el-form-item label="保费:">
  1866. <span>{{guoRenaccidentForm.premium}}&ensp;元</span>
  1867. </el-form-item>
  1868. </el-form>
  1869. <el-table
  1870. v-if="guoRenaccidentForm.prodCode"
  1871. size="small"
  1872. :data="guoRenaccidenttableData"
  1873. border
  1874. ref="expandTable"
  1875. highlight-current-row
  1876. :header-cell-style="{ background: '#F7F7F9 ', fontWeight: '700', color: '#333333' }"
  1877. >
  1878. <el-table-column prop="liabName" label="保险责任" align="center"></el-table-column>
  1879. <el-table-column prop="liabAmount" label="保额 (元)" align="center"></el-table-column>
  1880. <el-table-column prop="liabPremium" label="保费 (元)" align="center">
  1881. <template slot-scope="scope" >
  1882. ¥{{scope.row.liabPremium }}
  1883. </template>
  1884. </el-table-column>
  1885. </el-table>
  1886. </div>
  1887. </template>
  1888. <template
  1889. v-if="reslistitem.namesimple == '中煤财险' && reslistitem.checked && reslistitem.agreementId"
  1890. >
  1891. <div class="flex f-c Driving-risk accident-style zmDriving">
  1892. <el-form :inline="true" :model="accidentFormZM" class="demo-form-inline" size="small" style="font-weight:bold;margin-top:15px">
  1893. <el-form-item label="意外险类型" style="margin-right:30px;">
  1894. <el-select
  1895. style="width: 250px;"
  1896. size="small"
  1897. clearable
  1898. v-model="zhongmeiInsurancetype"
  1899. placeholder="未选择"
  1900. @clear="numberCopieschangeZM"
  1901. @change="zhongmeiInsuranceChange"
  1902. >
  1903. <el-option
  1904. v-for="(item, index) in zhongmeiInsuranceData"
  1905. :key="index"
  1906. :label="item.rideRiskName"
  1907. :value="item.rideRiskCode"
  1908. ></el-option>
  1909. </el-select>
  1910. </el-form-item>
  1911. <el-form-item label="选择份数" style="margin-right:30px;">
  1912. <el-input-number
  1913. v-model="accidentFormZM.quantity"
  1914. @change="numberCopieschangeZM"
  1915. :min="1"
  1916. controls-position="right"
  1917. :max="accidentFormZM.maxQuantity"
  1918. ></el-input-number>
  1919. <!-- <span style="margin-left: 5px;">份</span> -->
  1920. </el-form-item>
  1921. <el-form-item label="保费:">
  1922. <span>{{accidentFormZM.unitPremium}}&ensp;元</span>
  1923. </el-form-item>
  1924. </el-form>
  1925. <el-table
  1926. size="small"
  1927. :data="zhongmeiInsuranceDataDetail"
  1928. border
  1929. ref="ZmMultipleTable"
  1930. :header-cell-style="{ background: '#F7F7F9 ', fontWeight: '700', color: '#333333' }"
  1931. >
  1932. <el-table-column prop="insurName" label="保险责任名称" align="center"></el-table-column>
  1933. <el-table-column prop="amountName" label="保险责任对应保额" align="center"></el-table-column>
  1934. <!-- <el-table-column label="份数" align="center">
  1935. <template slot-scope="scope">
  1936. <div @click.stop>
  1937. <el-input-number
  1938. v-model="scope.row.quantity"
  1939. @change="ZMhandleChange"
  1940. :min="1"
  1941. :max="Number(scope.row.insuredNumLimit)"
  1942. controls-position="right"
  1943. ></el-input-number>
  1944. </div>
  1945. </template>
  1946. </el-table-column> -->
  1947. </el-table>
  1948. </div>
  1949. </template>
  1950. <template
  1951. v-if="reslistitem.namesimple == '大家财险' && reslistitem.checked && reslistitem.agreementId"
  1952. >
  1953. <div class="flex f-c Driving-risk">
  1954. <div class="dis a-c" style="margin-top:15px">
  1955. <span style="margin-right:15px;font-weight:bold">选择意外险</span>
  1956. <el-select
  1957. style="width: 250px;"
  1958. filterable
  1959. size="small"
  1960. clearable
  1961. v-model="insuranceDJ"
  1962. placeholder="未选择"
  1963. @clear="clearAccidentFormDJ"
  1964. @change="dajiaInsuranceChange"
  1965. >
  1966. <el-option
  1967. v-for="(item, index) in dajiaInsuranceData"
  1968. :key="index"
  1969. :label="item.productName"
  1970. :value="item.id"
  1971. ></el-option>
  1972. </el-select>
  1973. </div>
  1974. <el-table
  1975. size="small"
  1976. :data="DJInsuranceData"
  1977. border
  1978. v-if="insuranceDJ"
  1979. @row-click="DJDrivingChange"
  1980. ref="RsTable"
  1981. highlight-current-row
  1982. :header-cell-style="{ background: '#F7F7F9 ', fontWeight: '700', color: '#333333' }"
  1983. >
  1984. <el-table-column prop="cvrgName" label="保险责任名称" align="center"></el-table-column>
  1985. <el-table-column prop="cvrgPrm" label="保费 (元)/每份" align="center">
  1986. <template slot-scope="scope" >
  1987. ¥{{scope.row.cvrgPrm }}
  1988. </template></el-table-column>
  1989. </el-table>
  1990. </div>
  1991. </template>
  1992. <template
  1993. v-if="reslistitem.namesimple == '渤海财险' && reslistitem.checked && reslistitem.agreementId"
  1994. >
  1995. <div class="flex f-c Driving-risk" style="margin-top:15px">
  1996. <el-form
  1997. :inline="true"
  1998. :model="boHaiaccidentForm"
  1999. class="demo-form-inline"
  2000. size="small"
  2001. >
  2002. <el-form-item label="意外险类型" style="margin-right:30px;">
  2003. <el-select
  2004. clearable
  2005. placeholder="未选择"
  2006. @clear="clearAccidentFormBh"
  2007. @change="bhcxchange"
  2008. v-model="boHaiaccidentForm.packageCode"
  2009. >
  2010. <el-option
  2011. v-for="(item, index) in boHaiaccidentDataList"
  2012. :key="index"
  2013. :label="item.packageName"
  2014. :value="item.packageCode"
  2015. ></el-option>
  2016. </el-select>
  2017. </el-form-item>
  2018. <el-form-item label="选择份数" style="margin-right:30px;">
  2019. <el-input-number
  2020. v-model="boHaiaccidentForm.copies"
  2021. :min="1"
  2022. controls-position="right"
  2023. ></el-input-number>
  2024. </el-form-item>
  2025. <el-form-item label="保费:">
  2026. <span>{{boHaiaccidentForm.premium*boHaiaccidentForm.copies}}&ensp;元</span>
  2027. </el-form-item>
  2028. </el-form>
  2029. <el-table
  2030. v-if="boHaiaccidentForm.packageCode"
  2031. size="small"
  2032. :data="boHaiaccidenttableData"
  2033. border
  2034. v-loading="accidentLoadingbh"
  2035. ref="expandTable"
  2036. highlight-current-row
  2037. :header-cell-style="{ background: '#F7F7F9 ', fontWeight: '700', color: '#333333' }"
  2038. >
  2039. <el-table-column prop="coverageName" label="保险责任名称" align="center"></el-table-column>
  2040. <el-table-column prop="insuredAmount" label="保额 (元)" align="center">
  2041. <template slot-scope="scope" >
  2042. ¥{{scope.row.insuredAmount }}
  2043. </template>
  2044. </el-table-column>
  2045. </el-table>
  2046. </div>
  2047. </template>
  2048. </div>
  2049. </div>
  2050. </div>
  2051. </div>
  2052. <div class="Enclosure flex f-c">
  2053. <div class="home flex j-s a-c back">
  2054. <div class="flex j-s a-c color">
  2055. <img src="../../../src/icon/报价历史.png" alt class="icon-img" />
  2056. <span style="margin-left:10px;">报价历史</span>
  2057. <div v-if="orderno">
  2058. <el-radio-group
  2059. v-model="historyRadio"
  2060. style="margin-left:30px;"
  2061. @input="RadioHistoryChange"
  2062. v-for="item in insOrderStatusoptions" :key="item.dictValue"
  2063. >
  2064. <el-radio :label="item.dictValue">{{item.dictTag}}</el-radio>
  2065. </el-radio-group>
  2066. </div>
  2067. </div>
  2068. </div>
  2069. <div style="padding:20px;">
  2070. <el-table
  2071. size="small"
  2072. :data="HistoryList"
  2073. height="250"
  2074. border
  2075. style="width: 100%"
  2076. v-loading="loading"
  2077. :header-cell-style="{ background: '#F7F7F9 ', fontWeight: '700', color: '#333333' }"
  2078. highlight-current-row
  2079. >
  2080. <el-table-column prop="inscompany" label="保险公司" align="center"></el-table-column>
  2081. <el-table-column prop="username" label="业务员" align="center">
  2082. <template slot-scope="scope">
  2083. <span>{{scope.row.userName}}({{scope.row.userId}})</span>
  2084. </template>
  2085. </el-table-column>
  2086. <el-table-column prop="licenseno" label="车牌号" align="center"></el-table-column>
  2087. <el-table-column prop="createtime" label="报价时间" align="center"></el-table-column>
  2088. <el-table-column prop="jqpremium" label="交强险" align="center"></el-table-column>
  2089. <el-table-column prop="sypremium" label="商业险" align="center"></el-table-column>
  2090. <el-table-column prop="taxamount" label="车船税" align="center"></el-table-column>
  2091. <el-table-column prop="sumpremium" label="总保费" align="center"></el-table-column>
  2092. <el-table-column prop="orderstatus" label="状态" align="center">
  2093. <template slot-scope="scope">
  2094. <el-tag style="color:#33A08D;border-color:#33A08D;background: rgba(51,160,141,0.1);" v-if="scope.row.orderstatus=='0'||scope.row.orderstatus=='1'" size="small">{{scope.row.orderstatus | cap}}</el-tag>
  2095. <el-tag type="danger" style="border-color:#E75B5D ;" v-else-if="scope.row.orderstatus=='3'" size="small">{{scope.row.orderstatus | cap}}</el-tag>
  2096. <el-tag v-else style="color:#2D4D89 ;border-color:#2D4D89 ;background: rgba(45, 77, 137,0.1);" size="small">{{scope.row.orderstatus | cap}}</el-tag>
  2097. </template>
  2098. </el-table-column>
  2099. <el-table-column label="操作" align="center" min-width="180" fixed="right">
  2100. <template slot-scope="scope">
  2101. <el-button type="text" style="color:#2D4D89 " size="small" @click="qoutedetail(scope.row.id)">查看详情</el-button>
  2102. <el-button
  2103. size="small"
  2104. type="text"
  2105. @click="bjdpreview(scope.row.id)"
  2106. >报价单</el-button>
  2107. <el-button
  2108. size="small"
  2109. v-show="scope.row.orderstatus == '2'"
  2110. type="text"
  2111. @click="Payment(scope.row.id,scope.row)"
  2112. >付款码</el-button>
  2113. <el-button
  2114. size="mini"
  2115. type="text"
  2116. v-if=" ( scope.row.orderstatus == '1'|| scope.row.orderstatus == '2' || scope.row.orderstatus == '4') && ['紫金财险'].includes(scope.row.inscompany)"
  2117. @click="cancelorder(scope.row)"
  2118. >撤单</el-button>
  2119. <el-button
  2120. type="text"
  2121. size="mini"
  2122. style="color:#2D4D89 "
  2123. v-if="scope.row.orderstatus == '2'"
  2124. @click="revokeCode(scope.row.id)"
  2125. >撤销二维码</el-button>
  2126. </template>
  2127. </el-table-column>
  2128. </el-table>
  2129. </div>
  2130. </div>
  2131. <!-- 查看详情 -->
  2132. <detailsDialog ref="detailsDialog" :orderInfo="queryOrders"></detailsDialog>
  2133. <el-dialog title="车型选择" :visible.sync="chexingdialogVisible" width="1300px">
  2134. <el-form :inline="true" class="demo-form-inline" size="small">
  2135. <el-form-item label="厂牌型号">
  2136. <el-input v-model="carInfo.modelcname" placeholder="厂牌型号" style="width:500px;"></el-input>
  2137. </el-form-item>
  2138. <el-form-item>
  2139. <el-button type="primary" size="small" @click="toChooseVehicleType(carInfo.modelcname)">查询</el-button>
  2140. </el-form-item>
  2141. </el-form>
  2142. <el-table
  2143. size="small"
  2144. :data="reslist"
  2145. height="690"
  2146. border
  2147. style="width: 100%"
  2148. v-loading="loading"
  2149. :header-cell-style="{ background: '#F7F7F9 ', fontWeight: '700', color: '#333333' }"
  2150. highlight-current-row
  2151. @row-dblclick="reslistCurrentChange"
  2152. >
  2153. <el-table-column prop="modelCode" label="厂牌型号代码" align="center" width="200"></el-table-column>
  2154. <el-table-column prop="modelName" label="厂牌型号" align="center" width="300"></el-table-column>
  2155. <el-table-column prop="replacementValue" label="新车购置价" align="center" width="100"></el-table-column>
  2156. <el-table-column prop="marketYear" label="年款" align="center" width="100"></el-table-column>
  2157. <el-table-column prop="ratedPassengerCapacity" label="座位数" align="center" width="80"></el-table-column>
  2158. <el-table-column prop="displacement" label="排量" align="center" width="100"></el-table-column>
  2159. <el-table-column prop="remark" label="配置" align="center"></el-table-column>
  2160. </el-table>
  2161. </el-dialog>
  2162. <el-dialog title="车辆识别代码" :visible.sync="sbdmdialogVisible" width="1300px">
  2163. <el-form :inline="true" class="demo-form-inline" size="small">
  2164. <el-form-item label="车辆识别代码">
  2165. <el-input v-model="carInfo.frameNo" placeholder="车辆识别代码" style="width:500px;"></el-input>
  2166. </el-form-item>
  2167. <el-form-item>
  2168. <el-button type="primary" size="small" @click="toChooseVin(carInfo.frameNo)">查询</el-button>
  2169. </el-form-item>
  2170. </el-form>
  2171. <el-table
  2172. size="small"
  2173. :data="reslist"
  2174. height="690"
  2175. border
  2176. style="width: 100%"
  2177. v-loading="loading"
  2178. :header-cell-style="{ background: '#F7F7F9 ', fontWeight: '700', color: '#333333' }"
  2179. highlight-current-row
  2180. @row-dblclick="reslistCurrentChange"
  2181. >
  2182. <el-table-column prop="modelCode" label="厂牌型号代码" align="center" width="200"></el-table-column>
  2183. <el-table-column prop="modelName" label="厂牌型号" align="center" width="300"></el-table-column>
  2184. <el-table-column prop="replacementValue" label="新车购置价" align="center" width="100"></el-table-column>
  2185. <el-table-column prop="marketYear" label="年款" align="center" width="100"></el-table-column>
  2186. <el-table-column prop="ratedPassengerCapacity" label="座位数" align="center" width="80"></el-table-column>
  2187. <el-table-column prop="displacement" label="排量" align="center" width="100"></el-table-column>
  2188. <el-table-column prop="remark" label="配置" align="center"></el-table-column>
  2189. </el-table>
  2190. </el-dialog>
  2191. <!--第一种 二维码 -->
  2192. <el-dialog
  2193. :visible.sync="codedialogVisible"
  2194. width="430px"
  2195. top="10vh"
  2196. class="saomazhifucodeClass"
  2197. >
  2198. <div class="ORcodebody">
  2199. <div slot="title" class="dialog-title">
  2200. <span>扫码付款</span>
  2201. </div>
  2202. <div class="ORcode">
  2203. <div style="padding:13px;position: relative;">
  2204. <img v-if="['太平财险'].includes(inscompany)" :src="paycodeimg" alt="" style="width:100%">
  2205. <div v-else id="qrcode" ref="qrcode"></div>
  2206. </div>
  2207. </div>
  2208. <img style="margin-left: -16px" src="../../assets/image/divider.png" alt="">
  2209. <div style="font-size:32px;text-align: center;color:#D42426;margin-top:20px"><span style="font-size:24px;font-weight:bold">¥</span>{{sumpremium}}</div>
  2210. <div class="ORtitle">
  2211. <div>
  2212. <span>保险公司:</span>
  2213. <span>{{ inscompany }}</span>
  2214. </div>
  2215. <div>
  2216. <span>车牌号:</span>
  2217. <span>{{ licenseNo }}</span>
  2218. </div>
  2219. <div>
  2220. <span>投保人:</span>
  2221. <span>{{ applyName }}</span>
  2222. </div>
  2223. <!-- <div>
  2224. <span style="color:#f75c00">总金额:</span>
  2225. <span style="color:#f75c00">{{ sumpremium }}</span>
  2226. </div> -->
  2227. <div v-show="jqpremium">
  2228. <span>交强:</span>
  2229. <span>{{ jqpremium }}</span>
  2230. </div>
  2231. <div v-show="sypremium">
  2232. <span>商业:</span>
  2233. <span>{{ sypremium }}</span>
  2234. </div>
  2235. <div v-show="taxamount">
  2236. <span>车船税:</span>
  2237. <span>{{ taxamount }}</span>
  2238. </div>
  2239. <div v-show="jqstartdate">
  2240. <span>交强险起保日期:</span>
  2241. <span>{{ jqstartdate }}</span>
  2242. </div>
  2243. <div v-show="systartdate">
  2244. <span>商业险起保日期:</span>
  2245. <span>{{ systartdate }}</span>
  2246. </div>
  2247. <div v-if="jypremium">
  2248. <span>非车险:</span>
  2249. <span>{{ jypremium }}</span>
  2250. </div>
  2251. </div>
  2252. <!-- <div class="display">
  2253. <el-button size="small" style="width:100px;" @click="codedialogVisible = false">关闭</el-button>
  2254. </div> -->
  2255. </div>
  2256. <span slot="footer" class="dialog-footer display">
  2257. <el-button size="small" style="width:100px;border-color:#D42426;color:#D42426 " @click="codedialogVisible = false">关闭</el-button>
  2258. </span>
  2259. </el-dialog>
  2260. <!--第二种 二维码 -->
  2261. <el-dialog
  2262. :visible.sync="codedialogVisiblePro"
  2263. width="660px"
  2264. class="proSaomazhifucodeClass"
  2265. top="10vh"
  2266. title="扫码付款"
  2267. >
  2268. <div class="flex j-s" >
  2269. <div class="scan-code">
  2270. <div style="font-weight: bold;">总金额:<span style="color:#2D4D89 ">{{ sumpremium }}</span></div>
  2271. <div>交强险:{{ jqpremium }}</div>
  2272. <div>车船税:{{ taxamount }}</div>
  2273. <div>商业险:{{ sypremium }}</div>
  2274. <div>非车险:{{ jypremium }}</div>
  2275. </div>
  2276. <div >
  2277. <img v-if="['太平财险'].includes(inscompany)" :src="paycodeimg" alt="" style="width:100%">
  2278. <div v-else id="qrcode" ref="qrcode"></div>
  2279. </div>
  2280. <div class="scan-code">
  2281. <div>保险公司:{{ inscompany }}</div>
  2282. <div>车牌号:{{ licenseNo }}</div>
  2283. <div>投保人:{{ applyName }}</div>
  2284. <div>交强险起保日期:{{ jqstartdate }}</div>
  2285. <div>商业险起保日期:{{ systartdate }}</div>
  2286. </div>
  2287. </div>
  2288. <span slot="footer" class="dialog-footer">
  2289. <el-button size="small" style="width:100px;background: #EAEDF1;border-color:#EAEDF1;color:#2D4D89 " @click="codedialogVisiblePro = false">关闭</el-button>
  2290. </span>
  2291. </el-dialog>
  2292. <el-dialog
  2293. :visible.sync="uploadcardialogVisible"
  2294. width="960px"
  2295. style="padding:10px 20px;box-sizing: border-box;"
  2296. @open="closeDialog(0)"
  2297. >
  2298. <div slot="title" class="dialog-title">
  2299. <span>行驶证识别</span>
  2300. </div>
  2301. <el-row :gutter="20">
  2302. <div class="bodys1">
  2303. <div>
  2304. <div class="flex a-c">
  2305. <div class="OCR" style="text-align:center;">行驶证主页</div>
  2306. <div style="text-align:center;margin: 20px;" @drop="reportDrop">
  2307. <el-upload
  2308. drag
  2309. action="#"
  2310. :show-file-list="false"
  2311. :auto-upload="false"
  2312. :on-change="carfrontChange"
  2313. >
  2314. <img v-show="carfrontImg" :src="carfrontImg" style="width:100%;height:100%" />
  2315. <img
  2316. v-show="!carfrontImg"
  2317. src="../../../static/carfront.png"
  2318. style="width:100%;height:100%"
  2319. />
  2320. <span class="slot" v-show="carfrontImg" @click.stop>
  2321. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(carfrontImg)"></i>
  2322. <i class="el-icon-delete" @click.stop="handleRemove('carfrontImg')"></i>
  2323. </span>
  2324. </el-upload>
  2325. </div>
  2326. </div>
  2327. <div class="flex a-c">
  2328. <div class="OCR" style="text-align:center;">行驶证副页</div>
  2329. <div style="text-align:center;margin: 20px;" @drop="reportDrop">
  2330. <el-upload
  2331. drag
  2332. action="#"
  2333. :show-file-list="false"
  2334. :auto-upload="false"
  2335. :on-change="carbackChange"
  2336. >
  2337. <img v-show="carbackImg" :src="carbackImg" style="width:100%;height:100%" />
  2338. <img
  2339. v-show="!carbackImg"
  2340. src="../../../static/carback.png"
  2341. style="width:100%;height:100%"
  2342. />
  2343. <span class="slot" v-show="carbackImg" @click.stop>
  2344. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(carbackImg)"></i>
  2345. <i class="el-icon-delete" @click.stop="handleRemove('carbackImg')"></i>
  2346. </span>
  2347. </el-upload>
  2348. </div>
  2349. </div>
  2350. </div>
  2351. <div style="text-align:center;">
  2352. <el-form :model="carform" label-width="130px" size="small">
  2353. <el-form-item label="所有人">
  2354. <el-input v-model="carform.carOwner" autocomplete="off"></el-input>
  2355. </el-form-item>
  2356. <el-form-item label="车牌号">
  2357. <el-input v-model="carform.licenseNo" autocomplete="off"></el-input>
  2358. </el-form-item>
  2359. <el-form-item label="车架号">
  2360. <el-input v-model="carform.frameNo" autocomplete="off"></el-input>
  2361. </el-form-item>
  2362. <el-form-item label="品牌型号">
  2363. <el-input v-model="carform.modelcname" autocomplete="off"></el-input>
  2364. </el-form-item>
  2365. <el-form-item label="发动机号">
  2366. <el-input v-model="carform.engineNo" autocomplete="off"></el-input>
  2367. </el-form-item>
  2368. <el-form-item label="总质量">
  2369. <el-input v-model="carform.grossMass" autocomplete="off"></el-input>
  2370. </el-form-item>
  2371. <el-form-item label="整备质量">
  2372. <el-input v-model="carform.unladenMass" autocomplete="off"></el-input>
  2373. </el-form-item>
  2374. <el-form-item label="核定载质量">
  2375. <el-input v-model="carform.limitLoad" autocomplete="off"></el-input>
  2376. </el-form-item>
  2377. <el-form-item label="核定载客数">
  2378. <el-input v-model="carform.approvedPassengersCapacity" autocomplete="off"></el-input>
  2379. </el-form-item>
  2380. <el-form-item label="注册日期">
  2381. <el-input v-model="carform.registerDate" autocomplete="off"></el-input>
  2382. </el-form-item>
  2383. <el-form-item label="发证日期">
  2384. <el-input v-model="carform.issueDate" autocomplete="off"></el-input>
  2385. </el-form-item>
  2386. </el-form>
  2387. </div>
  2388. </div>
  2389. </el-row>
  2390. <span slot="footer" class="dialog-footer">
  2391. <el-button type="primary" @click="CarOCRdiscern()" size="small">识 别</el-button>
  2392. <el-button type="primary" @click="CarOCRconfirm()" size="small">确 认</el-button>
  2393. </span>
  2394. </el-dialog>
  2395. <el-dialog
  2396. :visible.sync="uploaduserdialogVisible"
  2397. width="960px"
  2398. style="padding:10px 20px;box-sizing: border-box;"
  2399. @open="closeDialog(userIndex)"
  2400. >
  2401. <el-tabs v-model="activeName">
  2402. <el-tab-pane label="身份证识别" name="1">
  2403. <el-row :gutter="20">
  2404. <div class="bodys1">
  2405. <div>
  2406. <div class="flex ">
  2407. <div class="OCR" style="text-align:center;">身份证主页</div>
  2408. <div style="text-align:center;margin: 20px;" @drop="reportDrop">
  2409. <el-upload
  2410. class="upload-demo"
  2411. drag
  2412. action="#"
  2413. :show-file-list="false"
  2414. :auto-upload="false"
  2415. :on-change="userfrontChange"
  2416. >
  2417. <img v-show="userfrontImg" :src="userfrontImg" style="width:100%;height:100%" />
  2418. <img
  2419. v-show="!userfrontImg"
  2420. src="../../../static/userfront.png"
  2421. style="width:100%;height:100%"
  2422. />
  2423. <span class="slot" v-show="userfrontImg" @click.stop>
  2424. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(userfrontImg)"></i>
  2425. <i class="el-icon-delete" @click.stop="handleRemove('userfrontImg')"></i>
  2426. </span>
  2427. </el-upload>
  2428. </div>
  2429. </div>
  2430. <div class="flex">
  2431. <div class="OCR" style="text-align:center;">身份证副页</div>
  2432. <div style="text-align:center;margin: 20px;" @drop="reportDrop">
  2433. <el-upload
  2434. class="upload-demo"
  2435. drag
  2436. action="#"
  2437. :show-file-list="false"
  2438. :auto-upload="false"
  2439. :on-change="userbackChange"
  2440. >
  2441. <img v-show="userbackImg" :src="userbackImg" style="width:100%;height:100%" />
  2442. <img
  2443. v-show="!userbackImg"
  2444. src="../../../static/userback.png"
  2445. style="width:100%;height:100%"
  2446. />
  2447. <span class="slot" v-show="userbackImg" @click.stop>
  2448. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(userbackImg)"></i>
  2449. <i class="el-icon-delete" @click.stop="handleRemove('userbackImg')"></i>
  2450. </span>
  2451. </el-upload>
  2452. </div>
  2453. </div>
  2454. </div>
  2455. <div style="text-align:center;">
  2456. <el-form :model="ownerInfoform" label-width="130px" size="small">
  2457. <el-form-item label="姓名">
  2458. <el-input v-model="ownerInfoform.name" autocomplete="off"></el-input>
  2459. </el-form-item>
  2460. <el-form-item label="性别">
  2461. <el-input v-model="ownerInfoform.gender" autocomplete="off"></el-input>
  2462. </el-form-item>
  2463. <el-form-item label="证件类型">
  2464. <el-input v-model="ownerInfoform.identifyType" autocomplete="off"></el-input>
  2465. </el-form-item>
  2466. <el-form-item label="证件号码">
  2467. <el-input v-model="ownerInfoform.identifyNumber" autocomplete="off"></el-input>
  2468. </el-form-item>
  2469. <el-form-item label="车主手机号">
  2470. <el-input v-model="ownerInfoform.mobile" autocomplete="off"></el-input>
  2471. </el-form-item>
  2472. <el-form-item label="地址">
  2473. <el-input v-model="ownerInfoform.addr" autocomplete="off"></el-input>
  2474. </el-form-item>
  2475. <el-form-item label="有效期起期">
  2476. <el-input disabled v-model="ownerInfoform.identifyValidDate" autocomplete="off"></el-input>
  2477. </el-form-item>
  2478. <el-form-item label="有效期止期">
  2479. <el-input disabled v-model="ownerInfoform.identifyValidEndDate" autocomplete="off"></el-input>
  2480. </el-form-item>
  2481. <el-form-item label="电子邮箱">
  2482. <el-input v-model="ownerInfoform.email" autocomplete="off"></el-input>
  2483. </el-form-item>
  2484. </el-form>
  2485. </div>
  2486. </div>
  2487. </el-row>
  2488. </el-tab-pane>
  2489. <el-tab-pane label="营业执照" name="2">
  2490. <el-row :gutter="20">
  2491. <div class="bodys1">
  2492. <div>
  2493. <div class="flex ">
  2494. <div class="OCR" style="text-align:center;">营业执照</div>
  2495. <div style="text-align:center;margin: 20px;" @drop="reportDrop">
  2496. <el-upload
  2497. class="upload-demo"
  2498. drag
  2499. action="#"
  2500. :show-file-list="false"
  2501. :auto-upload="false"
  2502. :on-change="userfrontChange"
  2503. >
  2504. <img v-show="businessImg" :src="businessImg" style="width:100%;height:100%" />
  2505. <img
  2506. v-show="!businessImg"
  2507. src="../../../static/userfront.png"
  2508. style="width:100%;height:100%"
  2509. />
  2510. <span class="slot" v-show="businessImg" @click.stop>
  2511. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(businessImg)"></i>
  2512. <i class="el-icon-delete" @click.stop="handleRemove('businessImg')"></i>
  2513. </span>
  2514. </el-upload>
  2515. </div>
  2516. </div>
  2517. </div>
  2518. <div style="text-align:center;">
  2519. <el-form :model="ownerInfoform" label-width="130px" size="small">
  2520. <el-form-item label="单位名称">
  2521. <el-input autocomplete="off"></el-input>
  2522. </el-form-item>
  2523. <el-form-item label="法人">
  2524. <el-input autocomplete="off"></el-input>
  2525. </el-form-item>
  2526. <el-form-item label="社会信用代码">
  2527. <el-input autocomplete="off"></el-input>
  2528. </el-form-item>
  2529. <el-form-item label="地址">
  2530. <el-input autocomplete="off"></el-input>
  2531. </el-form-item>
  2532. <el-form-item label="经营范围">
  2533. <el-input autocomplete="off"></el-input>
  2534. </el-form-item>
  2535. <el-form-item label="注册资本">
  2536. <el-input autocomplete="off"></el-input>
  2537. </el-form-item>
  2538. </el-form>
  2539. </div>
  2540. </div>
  2541. </el-row>
  2542. </el-tab-pane>
  2543. </el-tabs>
  2544. <span slot="footer" class="dialog-footer">
  2545. <el-button type="primary" @click="userOCRdiscern()" size="small">识 别</el-button>
  2546. <el-button type="primary" @click="userOCRconfirm()" size="small">确 认</el-button>
  2547. </span>
  2548. </el-dialog>
  2549. <el-dialog :visible.sync="imageUploaddialogVisible" width="1070px" >
  2550. <div slot="title" class=" dialog-title">
  2551. <span>影像上传</span>
  2552. </div>
  2553. <el-row >
  2554. <el-col :span="3" >
  2555. <div class="tab-style" >
  2556. <li class="liMenu"
  2557. :class="idx==tabLiIndex?'tabLi-style':''" @click="tabLiScroll(item.scroll,idx)" v-for="(item,idx) in tabLimenu"
  2558. :key="idx">{{item.name}}
  2559. </li>
  2560. </div>
  2561. </el-col>
  2562. <el-col :span="21" style="height:320px;overflow-y: auto;" >
  2563. <div class="flex" id="vehicle">
  2564. <div class="aaa">
  2565. <span>1.行驶证主页</span>
  2566. <el-upload
  2567. action="#"
  2568. list-type="picture-card"
  2569. :auto-upload="false"
  2570. :limit="1"
  2571. drag
  2572. :on-change="file => drivingupload(file, 'imageList1', 'imgList1', 'C01')"
  2573. :file-list="imgList1"
  2574. ref="upload1"
  2575. :class="{ styleB: imgList1.length == 1 }"
  2576. >
  2577. <img
  2578. v-show="imgList1.length == 0"
  2579. src="../../../static/carfront.png"
  2580. style="width:100%;height:100%"
  2581. />
  2582. <div slot="file" slot-scope="{file}" v-if="imgList1.length>0">
  2583. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2584. <span class="el-upload-list__item-actions">
  2585. <span
  2586. class="el-upload-list__item-delete"
  2587. @click="handleRemove1(file, 'imageList1', 'imgList1')"
  2588. >
  2589. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2590. <i class="el-icon-delete"></i>
  2591. </span>
  2592. </span>
  2593. </div>
  2594. </el-upload>
  2595. </div>
  2596. <div class="aaa">
  2597. <span>2.行驶证副页</span>
  2598. <el-upload
  2599. action="#"
  2600. list-type="picture-card"
  2601. :auto-upload="false"
  2602. :limit="1"
  2603. drag
  2604. :on-change="file => drivingupload(file, 'imageList1', 'imgList2', 'D01')"
  2605. :file-list="imgList2"
  2606. ref="upload2"
  2607. :class="{ styleB: imgList2.length === 1 }"
  2608. >
  2609. <img
  2610. v-show="imgList2.length == 0"
  2611. src="../../../static/carback.png"
  2612. style="width:100%;height:100%"
  2613. />
  2614. <div slot="file" slot-scope="{file}">
  2615. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2616. <span class="el-upload-list__item-actions">
  2617. <span
  2618. class="el-upload-list__item-delete"
  2619. @click="handleRemove1(file, 'imageList1', 'imgList2')"
  2620. >
  2621. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2622. <i class="el-icon-delete"></i>
  2623. </span>
  2624. </span>
  2625. </div>
  2626. </el-upload>
  2627. </div>
  2628. <div class="aaa">
  2629. <span>1.新车合格证</span>
  2630. <el-upload
  2631. action="#"
  2632. list-type="picture-card"
  2633. :auto-upload="false"
  2634. :limit="1"
  2635. drag
  2636. :on-change="file => drivingupload(file, 'imageList5', 'imgList9', 'XC00')"
  2637. :file-list="imgList9"
  2638. multiple
  2639. ref="upload3"
  2640. :class="{ styleB: imgList9.length === 1 }"
  2641. >
  2642. <img
  2643. v-show="imgList9.length == 0"
  2644. src="../../../static/userfront.png"
  2645. style="width:100%;height:100%"
  2646. />
  2647. <div slot="file" slot-scope="{file}">
  2648. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2649. <span class="el-upload-list__item-actions">
  2650. <span
  2651. class="el-upload-list__item-delete"
  2652. @click="handleRemove1(file, 'imageList5', 'imgList9')"
  2653. >
  2654. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2655. <i class="el-icon-delete"></i>
  2656. </span>
  2657. </span>
  2658. </div>
  2659. </el-upload>
  2660. </div>
  2661. <div class="aaa">
  2662. <span>2.购车发票</span>
  2663. <el-upload
  2664. action="#"
  2665. list-type="picture-card"
  2666. :auto-upload="false"
  2667. :limit="1"
  2668. drag
  2669. :on-change="file => drivingupload(file, 'imageList5', 'imgList10', 'GC00')"
  2670. :file-list="imgList10"
  2671. multiple
  2672. ref="upload4"
  2673. :class="{ styleB: imgList10.length === 1 }"
  2674. >
  2675. <img
  2676. v-show="imgList10.length == 0"
  2677. src="../../../static/userfront.png"
  2678. style="width:100%;height:100%"
  2679. />
  2680. <div slot="file" slot-scope="{file}">
  2681. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2682. <span class="el-upload-list__item-actions">
  2683. <span
  2684. class="el-upload-list__item-delete"
  2685. @click="handleRemove1(file, 'imageList5', 'imgList10')"
  2686. >
  2687. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2688. <i class="el-icon-delete"></i>
  2689. </span>
  2690. </span>
  2691. </div>
  2692. </el-upload>
  2693. </div>
  2694. </div>
  2695. <div class="flex" id="owner" >
  2696. <div class="aaa">
  2697. <span>1.车主身份证(正面)</span>
  2698. <el-upload
  2699. action="#"
  2700. list-type="picture-card"
  2701. :auto-upload="false"
  2702. :limit="1"
  2703. drag
  2704. :on-change="file => drivingupload(file, 'imageList2', 'imgList3', 'C02')"
  2705. :file-list="imgList3"
  2706. multiple
  2707. ref="upload3"
  2708. :class="{ styleB: imgList3.length === 1 }"
  2709. >
  2710. <img
  2711. v-show="imgList3.length == 0"
  2712. src="../../../static/userfront.png"
  2713. style="width:100%;height:100%"
  2714. />
  2715. <div slot="file" slot-scope="{file}">
  2716. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2717. <span class="el-upload-list__item-actions">
  2718. <span
  2719. class="el-upload-list__item-delete"
  2720. @click="handleRemove1(file, 'imageList2', 'imgList3')"
  2721. >
  2722. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2723. <i class="el-icon-delete"></i>
  2724. </span>
  2725. </span>
  2726. </div>
  2727. </el-upload>
  2728. </div>
  2729. <div class="aaa">
  2730. <span>2.车主身份证(反面)</span>
  2731. <el-upload
  2732. action="#"
  2733. list-type="picture-card"
  2734. :auto-upload="false"
  2735. :limit="1"
  2736. drag
  2737. :on-change="file => drivingupload(file, 'imageList2', 'imgList4', 'D02')"
  2738. :file-list="imgList4"
  2739. multiple
  2740. ref="upload4"
  2741. :class="{ styleB: imgList4.length === 1 }"
  2742. >
  2743. <img
  2744. v-show="imgList4.length == 0"
  2745. src="../../../static/userback.png"
  2746. style="width:100%;height:100%"
  2747. />
  2748. <div slot="file" slot-scope="{file}">
  2749. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2750. <span class="el-upload-list__item-actions">
  2751. <span
  2752. class="el-upload-list__item-delete"
  2753. @click="handleRemove1(file, 'imageList2', 'imgList4')"
  2754. >
  2755. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2756. <i class="el-icon-delete"></i>
  2757. </span>
  2758. </span>
  2759. </div>
  2760. </el-upload>
  2761. </div>
  2762. <div class="aaa">
  2763. <span>3.营业执照</span>
  2764. <el-upload
  2765. action="#"
  2766. list-type="picture-card"
  2767. :auto-upload="false"
  2768. :limit="1"
  2769. drag
  2770. multiple
  2771. ref="upload4"
  2772. >
  2773. <img
  2774. src="../../../static/userfront.png"
  2775. style="width:100%;height:100%"
  2776. />
  2777. <div slot="file" slot-scope="{file}">
  2778. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2779. <span class="el-upload-list__item-actions">
  2780. <span
  2781. class="el-upload-list__item-delete"
  2782. @click="handleRemove1(file, 'imageList2', 'imgList4')"
  2783. >
  2784. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2785. <i class="el-icon-delete"></i>
  2786. </span>
  2787. </span>
  2788. </div>
  2789. </el-upload>
  2790. </div>
  2791. </div>
  2792. <div class="flex" id="applicant" >
  2793. <div class="aaa">
  2794. <span>1.投保人身份证(正面)</span>
  2795. <el-upload
  2796. action="#"
  2797. list-type="picture-card"
  2798. :auto-upload="false"
  2799. :limit="1"
  2800. drag
  2801. :on-change="file => drivingupload(file, 'imageList3', 'imgList5', 'C03')"
  2802. :file-list="imgList5"
  2803. multiple
  2804. ref="upload5"
  2805. :class="{ styleB: imgList5.length === 1 }"
  2806. >
  2807. <img
  2808. v-show="imgList5.length == 0"
  2809. src="../../../static/userfront.png"
  2810. style="width:100%;height:100%"
  2811. />
  2812. <div slot="file" slot-scope="{file}">
  2813. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2814. <span class="el-upload-list__item-actions">
  2815. <span
  2816. class="el-upload-list__item-delete"
  2817. @click="handleRemove1(file, 'imageList3', 'imgList5')"
  2818. >
  2819. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2820. <i class="el-icon-delete"></i>
  2821. </span>
  2822. </span>
  2823. </div>
  2824. </el-upload>
  2825. </div>
  2826. <div class="aaa">
  2827. <span>2.投保人身份证(反面)</span>
  2828. <el-upload
  2829. action="#"
  2830. list-type="picture-card"
  2831. :auto-upload="false"
  2832. :limit="1"
  2833. drag
  2834. :on-change="file => drivingupload(file, 'imageList3', 'imgList6', 'D03')"
  2835. :file-list="imgList6"
  2836. multiple
  2837. ref="upload6"
  2838. :class="{ styleB: imgList6.length === 1 }"
  2839. >
  2840. <img
  2841. v-show="imgList6.length == 0"
  2842. src="../../../static/userback.png"
  2843. style="width:100%;height:100%"
  2844. />
  2845. <div slot="file" slot-scope="{file}">
  2846. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2847. <span class="el-upload-list__item-actions">
  2848. <span
  2849. class="el-upload-list__item-delete"
  2850. @click="handleRemove1(file, 'imageList3', 'imgList6')"
  2851. >
  2852. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2853. <i class="el-icon-delete"></i>
  2854. </span>
  2855. </span>
  2856. </div>
  2857. </el-upload>
  2858. </div>
  2859. <div class="aaa">
  2860. <span>3.营业执照</span>
  2861. <el-upload
  2862. action="#"
  2863. list-type="picture-card"
  2864. :auto-upload="false"
  2865. :limit="1"
  2866. drag
  2867. multiple
  2868. ref="upload4"
  2869. >
  2870. <img
  2871. src="../../../static/userfront.png"
  2872. style="width:100%;height:100%"
  2873. />
  2874. <div slot="file" slot-scope="{file}">
  2875. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2876. <span class="el-upload-list__item-actions">
  2877. <span
  2878. class="el-upload-list__item-delete"
  2879. @click="handleRemove1(file, 'imageList2', 'imgList4')"
  2880. >
  2881. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2882. <i class="el-icon-delete"></i>
  2883. </span>
  2884. </span>
  2885. </div>
  2886. </el-upload>
  2887. </div>
  2888. </div>
  2889. <div class="flex" >
  2890. <div class="aaa">
  2891. <span id="insured">1.被保人身份证(正面)</span>
  2892. <el-upload
  2893. action="#"
  2894. list-type="picture-card"
  2895. :auto-upload="false"
  2896. :limit="1"
  2897. drag
  2898. :on-change="file => drivingupload(file, 'imageList4', 'imgList7', 'C04')"
  2899. :file-list="imgList7"
  2900. multiple
  2901. ref="upload7"
  2902. :class="{ styleB: imgList7.length === 1 }"
  2903. >
  2904. <img
  2905. v-show="imgList7.length == 0"
  2906. src="../../../static/userfront.png"
  2907. style="width:100%;height:100%"
  2908. />
  2909. <div slot="file" slot-scope="{file}">
  2910. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2911. <span class="el-upload-list__item-actions">
  2912. <span
  2913. class="el-upload-list__item-delete"
  2914. @click="handleRemove1(file, 'imageList4', 'imgList7')"
  2915. >
  2916. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2917. <i class="el-icon-delete"></i>
  2918. </span>
  2919. </span>
  2920. </div>
  2921. </el-upload>
  2922. </div>
  2923. <div class="aaa">
  2924. <span>2.被保人身份证(反面)</span>
  2925. <el-upload
  2926. action="#"
  2927. list-type="picture-card"
  2928. :auto-upload="false"
  2929. :limit="1"
  2930. drag
  2931. :on-change="file => drivingupload(file, 'imageList4', 'imgList8', 'D04')"
  2932. :file-list="imgList8"
  2933. multiple
  2934. ref="upload8"
  2935. :class="{ styleB: imgList8.length === 1 }"
  2936. >
  2937. <img
  2938. v-show="imgList8.length == 0"
  2939. src="../../../static/userback.png"
  2940. style="width:100%;height:100%"
  2941. />
  2942. <div slot="file" slot-scope="{file}">
  2943. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2944. <span class="el-upload-list__item-actions">
  2945. <span
  2946. class="el-upload-list__item-delete"
  2947. @click="handleRemove1(file, 'imageList4', 'imgList8')"
  2948. >
  2949. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2950. <i class="el-icon-delete"></i>
  2951. </span>
  2952. </span>
  2953. </div>
  2954. </el-upload>
  2955. </div>
  2956. <div class="aaa">
  2957. <span>3.营业执照</span>
  2958. <el-upload
  2959. action="#"
  2960. list-type="picture-card"
  2961. :auto-upload="false"
  2962. :limit="1"
  2963. drag
  2964. multiple
  2965. ref="upload4"
  2966. >
  2967. <img
  2968. src="../../../static/userfront.png"
  2969. style="width:100%;height:100%"
  2970. />
  2971. <div slot="file" slot-scope="{file}">
  2972. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2973. <span class="el-upload-list__item-actions">
  2974. <span
  2975. class="el-upload-list__item-delete"
  2976. @click="handleRemove1(file, 'imageList2', 'imgList4')"
  2977. >
  2978. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2979. <i class="el-icon-delete"></i>
  2980. </span>
  2981. </span>
  2982. </div>
  2983. </el-upload>
  2984. </div>
  2985. </div>
  2986. <div class="flex" id="relationship">
  2987. <div class="aaa">
  2988. <span>1.关系证明</span>
  2989. <el-upload
  2990. action="#"
  2991. list-type="picture-card"
  2992. :auto-upload="false"
  2993. :limit="1"
  2994. drag
  2995. :on-change="file => drivingupload(file, 'imageList5', 'imgList11', 'GX00')"
  2996. :file-list="imgList11"
  2997. multiple
  2998. ref="upload3"
  2999. :class="{ styleB: imgList11.length === 1 }"
  3000. >
  3001. <img
  3002. v-show="imgList11.length == 0"
  3003. src="../../../static/userfront.png"
  3004. style="width:100%;height:100%"
  3005. />
  3006. <div slot="file" slot-scope="{file}">
  3007. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3008. <span class="el-upload-list__item-actions">
  3009. <span
  3010. class="el-upload-list__item-delete"
  3011. @click="handleRemove1(file, 'imageList5', 'imgList11')"
  3012. >
  3013. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3014. <i class="el-icon-delete"></i>
  3015. </span>
  3016. </span>
  3017. </div>
  3018. </el-upload>
  3019. </div>
  3020. </div>
  3021. </el-col>
  3022. </el-row>
  3023. <span slot="footer" class="dialog-footer">
  3024. <el-button size="small" @click="imageUploaddialogVisible = false">取 消</el-button>
  3025. <el-button size="small" type="primary" @click="uploadinformation">上传资料</el-button>
  3026. </span>
  3027. </el-dialog>
  3028. <div class="flex j-c a-c" :class="{
  3029. 'footer': true,
  3030. 'shadow': !isBottom
  3031. }">
  3032. <el-button size="small" @click="add()">录下一单</el-button>
  3033. <el-button type="primary" :loading="calculateLoading" size="small" @click="quote()">保费计算</el-button>
  3034. </div>
  3035. <div class="Anchor-link flex f-c j-s a-c">
  3036. <div>
  3037. <img src="../../../src/icon/车辆信息.png" alt class="icon-img" @click="handleScroll('Car')" />
  3038. </div>
  3039. <div>
  3040. <img
  3041. src="../../../src/icon/投保信息.png"
  3042. alt
  3043. class="icon-img"
  3044. @click="handleScroll('insurance')"
  3045. />
  3046. </div>
  3047. <div>
  3048. <img src="../../../src/icon/险别选择.png" alt class="icon-img" @click="handleScroll('more')" />
  3049. </div>
  3050. <div>
  3051. <img
  3052. src="../../../src/icon/保险公司.png"
  3053. alt
  3054. class="icon-img"
  3055. @click="handleScroll('company')"
  3056. />
  3057. </div>
  3058. </div>
  3059. <el-dialog title="核保信息" :visible.sync="underwritingdialogVisible" width="30%">
  3060. <div class="flex j-s f-c">
  3061. <div
  3062. style="font-size: 18px;color: #D42426;font-weight:700;padding: 10px 30px;"
  3063. v-if="orderstatus == '2'"
  3064. >订单状态:已核保待缴费</div>
  3065. </div>
  3066. <span slot="footer" class="dialog-footer" v-if="orderstatus == '2'">
  3067. <el-button
  3068. style="width: 100px;"
  3069. type="primary"
  3070. size="small"
  3071. @click="Payment(companyId,queryOrders.inscompany)"
  3072. >缴费二维码</el-button>
  3073. </span>
  3074. </el-dialog>
  3075. <el-dialog
  3076. title="转保确认码"
  3077. :visible.sync="renewalCodedialogVisible"
  3078. width="400px"
  3079. style="font-weight: bold"
  3080. >
  3081. <div class="flex a-c u-f-sa" v-if="renewalCodeJqImg">
  3082. <span>交强转保确认码</span>
  3083. <div class="flex a-c f-c">
  3084. <img :src="renewalCodeJqImg" alt style="width: 150px; height: 40px; margin-bottom: 5px" />
  3085. <el-input v-model="renewalCodeJq" placeholder="请输入确认码" style="width: 150px"></el-input>
  3086. </div>
  3087. </div>
  3088. <div class="flex a-c u-f-sa" v-if="renewalCodeSyImg">
  3089. <span>商业转保确认码</span>
  3090. <div class="flex a-c f-c">
  3091. <img :src="renewalCodeSyImg" alt style="width: 150px; height: 40px; margin-bottom: 5px" />
  3092. <el-input v-model="renewalCodeSy" placeholder="请输入确认码" style="width: 150px"></el-input>
  3093. </div>
  3094. </div>
  3095. <span slot="footer" class="dialog-footer">
  3096. <el-button size="small" @click="renewalCodedialogVisible = false">取 消</el-button>
  3097. <el-button size="small" type="primary" @click="renewalCodeconfirm">确 定</el-button>
  3098. </span>
  3099. </el-dialog>
  3100. <el-dialog
  3101. :title="contributingState?'选择特约':'提交核保'"
  3102. :visible.sync="hbsubmitdialogVisible"
  3103. width="1200px"
  3104. >
  3105. <div style="margin-bottom: 20px;font-weight: bold;">特约选择</div>
  3106. <el-table
  3107. size="small"
  3108. :data="zijinengageListData"
  3109. border
  3110. v-loading="contributingLoading"
  3111. @select="zijinengageChange"
  3112. @select-all="zijinengageChangeAll"
  3113. ref="expandTablePro"
  3114. highlight-current-row
  3115. @cell-dblclick="zijincellDblclick"
  3116. :cell-class-name="tableCellClassName"
  3117. :header-cell-style="{ background: '#F7F7F9 ', fontWeight: '700', color: '#333333' }"
  3118. >
  3119. <el-table-column type="selection" width="55"></el-table-column>
  3120. <el-table-column prop="clauseCode" :width="80" label="特约代码" align="center"></el-table-column>
  3121. <el-table-column
  3122. v-if="contributingState"
  3123. :width="100"
  3124. prop="riskName"
  3125. label="特约险种"
  3126. align="center"
  3127. ></el-table-column>
  3128. <el-table-column prop="clauseName" label="特约名称" align="center"></el-table-column>
  3129. <el-table-column prop="clauseContent" label="特约内容">
  3130. <template slot-scope="scope">
  3131. <el-input
  3132. @blur="hideInput"
  3133. size="small"
  3134. type="textarea"
  3135. :ref="scope.row.index + ',' + scope.column.index"
  3136. v-model="scope.row.clauseContent"
  3137. v-if="scope.row.index + ',' + scope.column.index == currentCell && scope.row.modifyFlag=='1'"
  3138. ></el-input>
  3139. <span v-else>{{scope.row.clauseContent}}</span>
  3140. </template>
  3141. </el-table-column>
  3142. </el-table>
  3143. <span slot="footer" class="dialog-footer">
  3144. <el-button size="small" @click="hbsubmitdialogVisible = false">取 消</el-button>
  3145. <el-button
  3146. v-if="contributingState"
  3147. size="small"
  3148. type="primary"
  3149. @click="hbsubmitdialogVisible=false"
  3150. >确定</el-button>
  3151. <el-button v-else size="small" type="primary" @click="hbsubmit">提交核保</el-button>
  3152. </span>
  3153. </el-dialog>
  3154. <!-- 报价单 -->
  3155. <quotationDialog ref="quotationDialog" :queryOrders="queryOrders"></quotationDialog>
  3156. <quotationDialogPro ref="quotationDialogPro" :queryOrders="queryOrders"></quotationDialogPro>
  3157. <el-image-viewer
  3158. v-if="showViewer"
  3159. :on-close="closeViewer"
  3160. :z-index="9999"
  3161. :url-list="[ProViewImg]"
  3162. />
  3163. <el-dialog
  3164. :visible.sync="redictInfodialogVisible"
  3165. width="70%"
  3166. >
  3167. <el-table
  3168. :data="redictInfoMsg"
  3169. style="width: 100%">
  3170. <el-table-column
  3171. prop="description"
  3172. label="审核意见">
  3173. </el-table-column>
  3174. <el-table-column
  3175. prop="opinion"
  3176. label="备注">
  3177. </el-table-column>
  3178. </el-table>
  3179. </el-dialog>
  3180. </div>
  3181. </template>
  3182. <script>
  3183. let _self;
  3184. import QRCode from "qrcodejs2";
  3185. import Cookies from "js-cookie";
  3186. import CommonUtil from "@/utils/comutil.js";
  3187. import { getAgeByIdCard, searchkey, addressCode, getGenderByIdCard } from "@/utils/validate.js";
  3188. import citydata from "@/assets/js/citydata.js";
  3189. // import yongchengData from '../../assets/js/yongchengData';
  3190. import { regionData, codeToText } from "element-china-area-data";
  3191. import {
  3192. base64ToPath
  3193. } from '@/common/image-tools-base64.js';
  3194. import quotationDialog from './components/quotationDialog.vue'
  3195. import quotationDialogPro from './components/quotationDialogPro.vue'
  3196. import detailsDialog from './components/detailsDialog.vue'
  3197. export default {
  3198. inject: ["reload"],
  3199. name: "qrCode",
  3200. data() {
  3201. var checkpurchasePrice = (rule, value, callback) => {
  3202. if (!value) {
  3203. callback(new Error("新车购置价不能为空"));
  3204. } else if (value == 0) {
  3205. callback(new Error("新车购置价不能为零"));
  3206. } else {
  3207. callback();
  3208. }
  3209. };
  3210. var checkframeNo = (rule, value, callback) => {
  3211. if (value.length < 17) {
  3212. callback(new Error("车架号不足17位"));
  3213. } else if (
  3214. value.indexOf("I") != "-1" ||
  3215. value.indexOf("O") != "-1" ||
  3216. value.indexOf("Q") != "-1"
  3217. ) {
  3218. callback(new Error("车架号不能包含(I O Q)三个字母"));
  3219. } else {
  3220. callback();
  3221. }
  3222. };
  3223. var carPhoneValid = (rule, value, callback) => {
  3224. const plateNumber = /^([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([0-9]{5}[DF])|([DF]([A-HJ-NP-Z0-9])[0-9]{4})))|([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1})$/
  3225. if (!value) {
  3226. callback(new Error("请输入车牌号"));
  3227. }
  3228. else if (plateNumber.test(value)) {
  3229. callback()
  3230. } else {
  3231. callback(new Error('请输入正确的车牌号'))
  3232. }
  3233. }
  3234. return {
  3235. redictInfoMsg:[],
  3236. redictInfodialogVisible:false,
  3237. qrcodeWidth:'180',
  3238. qrcodeHeight:'180',
  3239. activeName:'1',
  3240. isTaxSourceModel:'',
  3241. tabLiIndex:0,
  3242. tabLimenu:[
  3243. {
  3244. name:'车辆信息',
  3245. scroll:'vehicle'
  3246. },{
  3247. name:'车主信息',
  3248. scroll:'owner'
  3249. },{
  3250. name:'投保人信息',
  3251. scroll:'applicant'
  3252. },{
  3253. name:'被保人信息',
  3254. scroll:'insured'
  3255. },{
  3256. name:'关系证明',
  3257. scroll:'relationship'
  3258. },
  3259. ],
  3260. packageValue:'',
  3261. packageOptions:[],
  3262. zhongmeiInsurancetype:"",//中煤驾意险产品选中值
  3263. zhongmeiInsuranceData:[],//中煤驾意险产品列表数据
  3264. zhongmeiInsuranceDataDetail:[],//中煤驾意险产品明细方案数据
  3265. zhongmeiaccidentalDrivingVo:{},//中煤驾意险最终选中字段
  3266. currentCell:null,
  3267. feeDetailInfo:[],//费用明细信息
  3268. immediatelyValue:false,
  3269. isRetractZJ:false,
  3270. isRetractHB:false,
  3271. isRetractZM:false,
  3272. isRetractASTP:false,
  3273. isRetractZA:false,
  3274. isRetractYC:false,
  3275. isRetractRS:false,
  3276. templateSelection:"",
  3277. AStemplateSelection:"",
  3278. iscCrownerShow:false,
  3279. isApplicantShow:false,
  3280. isInsuredShow:false,
  3281. formInline: {},
  3282. anshengInsurancetype:"",//安盛
  3283. anshengInsuranceData:[],//安盛驾意险
  3284. anshengInsuranceData1:[],//安盛驾意险
  3285. anshengaccidentalDrivingVo:{},//安盛驾意险
  3286. insuranceHB:'',//恒邦
  3287. hengbangInsuranceData:[],//恒邦驾意险
  3288. HBInsuranceData:[],
  3289. hengbangaccidentalDrivingVo:{},//恒邦驾意险
  3290. insuranceHN:'',//华农
  3291. huanongInsuranceData:[],//华农驾意险
  3292. HNInsuranceData:[],
  3293. huanongaccidentalDrivingVo:{},//华农驾意险
  3294. renshouaccidentalDrivingVo:{},//人寿意外险
  3295. renshouInsuranceData: [],//-人寿意外险list
  3296. ziJinInsuranceData: [],//-紫金意外险list
  3297. zhonganInsuranceData:[],//众安驾意险
  3298. zhonganaccidentalDrivingVo:{},//众安驾意险
  3299. ZJInsuranceData:[],
  3300. insuranceZJ:'',
  3301. accidentalDrivingVo: [],//-紫金意外险传参
  3302. zijinengageListData: [],//紫金特约
  3303. zijinengageList: [],//紫金特约
  3304. // ------------紫金意外险
  3305. insuranceRS:'', //人寿
  3306. RSInsuranceData:[],
  3307. insuranceZA:'', //众安
  3308. ZRInsuranceData:[],
  3309. insuranceTP:'',//太平
  3310. taipingInsuranceData:[],//太平驾意险
  3311. TPDrivingChangeInsuranceData:[],
  3312. taipingaccidentalDrivingVo:{},//太平驾意险
  3313. licenseplate: true,
  3314. calculateLoading:false, //保费计算按钮 节流
  3315. accidentForm: {
  3316. fen: "1",
  3317. premium:0
  3318. }, //永诚意外险内容
  3319. accidentFormHN: {
  3320. allQuantity: "1",
  3321. }, //华农意外险内容
  3322. accidentDataList: [], //永诚意外险
  3323. guoRenaccidentDataList: [], //国任意外险
  3324. guoRenaccidenttableData: [],
  3325. guoRenaccidentDataListChild:[],
  3326. insuranceDJ:'',
  3327. dajiaInsuranceData:[], //大家意外险
  3328. DJInsuranceData:[],
  3329. dajiaaccidentalDrivingVo:{},
  3330. accidenttableData: [],
  3331. accidentLoading: false,
  3332. guoRenaccidentLoading: false,
  3333. contributingLoading:false,
  3334. guoRenaccidentPremium:'',
  3335. guoRenaccidentForm: {
  3336. quantity: "1",
  3337. premium:0
  3338. }, //国任意外险内容
  3339. accidentFormZM: {
  3340. quantity: "1",
  3341. unitPremium:0
  3342. }, //中煤意外险内容
  3343. boHaiaccidentDataList:[], //渤海意外险
  3344. boHaiaccidentForm:{
  3345. copies:'1',
  3346. policyNum:0
  3347. },
  3348. accidentLoadingbh:false,
  3349. boHaiaccidenttableData:[],
  3350. accidentPremium: "",
  3351. accidentPremiumGr:'',
  3352. accidentPremiumZM:'',
  3353. contributingState:false, //是否为国任特约
  3354. pickerOptions: {
  3355. disabledDate(time) {
  3356. //若选择的日期小于当前日期(包含今天)
  3357. return time.getTime() > Date.now();
  3358. //若选择的日期大于当前日期(不包含今天): time.getTime() < Date.now()
  3359. //若选择的日期小于当前日期(不包含今天): time.getTime() > Date.now() - 8.64e7
  3360. //若选择的日期小于等于当前日期(包含今天): time.getTime() > Date.now()
  3361. }
  3362. },
  3363. attributionform: {
  3364. //续保查询数据
  3365. configure: [],
  3366. companyId: ""
  3367. },
  3368. continuousAction: [], //续保配置项
  3369. //永诚转保确认码
  3370. cqryCdeJq: "",
  3371. cqryCdeSy: "",
  3372. renewalCodeJq: "", //交强确认码
  3373. renewalCodeSy: "", //商业确认码
  3374. renewalCodeJqImg: "", //交强图片
  3375. renewalCodeSyImg: "", //商业图片
  3376. //-----------------
  3377. showViewer: false,
  3378. transferDateShow: false, //转移登记日期
  3379. yonganchecked: false, //永安驾意险
  3380. renbaochecked: false, //人保驾意险
  3381. zhongmeichecked: false, //中煤驾意险
  3382. hengbangchecked: false, //恒邦驾意险
  3383. yongchengchecked: false, //永诚驾意险
  3384. yonganDrivinglist: [],
  3385. renbaoDrivinglist: [],
  3386. zhongmeiDrivinglist: [],
  3387. hengbangDrivinglist: [],
  3388. yongchengDrivinglist: [],
  3389. tbczcarShow: true, //投保人同车主
  3390. bbczcarShow: false, //被保人同车主
  3391. bbtbcarShow: true, //被保人同投保人
  3392. imageUploadShow: true, //上传影像显示
  3393. ProViewImg: "", //预览图片
  3394. carfrontImg: "", //行驶证正面
  3395. carbackImg: "", //行驶证背面
  3396. userfrontImg: "", //身份证正面
  3397. userbackImg: "", //身份证背面
  3398. businessImg:'',
  3399. CarFrontFile: "", //车正面文件流
  3400. CarBackFile: "", //车背面文件流
  3401. C02File: "",
  3402. D02File: "",
  3403. C03File: "",
  3404. D03File: "",
  3405. C04File: "",
  3406. D04File: "",
  3407. userIndex: 1, //区分三种人员
  3408. TabName: "car", //默认选项卡
  3409. value1: "",
  3410. chexingdialogVisible: false, //车型选择 显示/隐藏
  3411. sbdmdialogVisible: false, //车型车辆识别代码选择 显示/隐藏
  3412. codedialogVisible: false, //二维码 显示/隐藏
  3413. codedialogVisiblePro: false,
  3414. uploadcardialogVisible: false, //行驶证识别 显示/隐藏
  3415. uploaduserdialogVisible: false, //身份证识别 显示/隐藏
  3416. imageUploaddialogVisible: false, //影像上传 显示/隐藏
  3417. underwritingdialogVisible: false, //核保信息 显示/隐藏
  3418. renewalCodedialogVisible: false, //转保确认码输入
  3419. hbsubmitdialogVisible: false,//核保弹框
  3420. Carinsurance: {
  3421. jqinsurance: "1", //交强险
  3422. syinsurance: "1" //商业险
  3423. },
  3424. jqchecked: true,
  3425. sychecked: false,
  3426. jqstartDate: "", //交强时间
  3427. jqendDate: "", //交强时间
  3428. systartDate: "", //商业时间
  3429. syendDate: "", //商业时间
  3430. loading: false, //加载事件
  3431. reslist: [], //车型列表
  3432. userId: "", //出单工号
  3433. carInfo: {
  3434. powerScale: "", ///功率
  3435. licenseNo: "", //车牌号
  3436. brandName: "", //车辆品牌型号
  3437. vinNo: "", //车架号
  3438. engineNo: "", //发动机号
  3439. modelCode: "", //车型编码
  3440. seatCount: null, //核定载客量 核定载人数
  3441. purchasePrice: null, //新车购置价最低,行业实际价值,协商价值
  3442. carBrand: "", //车型品牌
  3443. ciCarName: "", //行业车型名称
  3444. ciModelCode: "", //行业车型编码
  3445. completeKerbMass: "", //整备质量
  3446. exhaustScale: "", //排量
  3447. factory: "", //工厂名称
  3448. factoryid: "", //工厂编码
  3449. frameNo: "", //车架号
  3450. licenseTypeCode: "02", //号牌种类
  3451. vehicleclass: "", //车辆类型
  3452. familyName: "", //车型
  3453. modelcname: "", //车型名称
  3454. powertypecode: "", //燃料类型编码
  3455. vehicleweight: "", //总质量
  3456. limitLoad: "", //核定载质量
  3457. caryear: null, //年款
  3458. cimodelclass: "A0", //车辆种类
  3459. powertype: "汽油", //
  3460. energyType: "0", //能源类型
  3461. enginedesc: "", //排量
  3462. registerDate: "", //注册日期
  3463. issueDate: "", //发证日期
  3464. transferFlag: 0, //过户标志
  3465. transferFlagBi:false, //商业险是否过户
  3466. transferDate: "", //过户日期
  3467. loanStatus: 0, //贷款标志
  3468. firstBeneMan: "", //第一受益人
  3469. noLicenseFlag: false, //是否新车
  3470. cartype: "", //客车A0 货车H0
  3471. carnature: "02", //使用性质
  3472. vehicleUse:'05',
  3473. property: "1" //所属性质 1个人 2企业 3个人
  3474. },
  3475. carform: {
  3476. carOwner: "",//车主
  3477. licenseNo: "", //车牌号
  3478. modelcname: "", //车辆品牌型号
  3479. frameNo: "", //车架号
  3480. engineNo: "", //发动机号
  3481. registerDate: "", //注册日期
  3482. issueDate: "", //发证日期
  3483. grossMass: "", //总质量
  3484. unladenMass: "", //整备质量
  3485. limitLoad: "", //核定载质量
  3486. approvedPassengersCapacity: "" //核定载客数
  3487. },
  3488. ownerInfoform: {
  3489. name: "",
  3490. identifyType: "",
  3491. identifyNumber: "",
  3492. age: "",//年龄
  3493. gender: "",//性别
  3494. addr: "",
  3495. email: "",
  3496. mobile: "",
  3497. identifyValidDate: "", //有效期起期
  3498. identifyValidEndDate: "", //有效期止期
  3499. // province: "",//省
  3500. // city: "",//市
  3501. // county: "",//县
  3502. },
  3503. riskList: [], //险种大类信息
  3504. kindList: [], //商业险险别
  3505. ownerInfo: {
  3506. //车主
  3507. name: "", //姓名
  3508. identifyType: "01", //身份证类型
  3509. identifyNumber: "", //身份证号
  3510. age: "",//年龄
  3511. gender: "",//性别
  3512. addr: "", //地址
  3513. email: "", //邮箱
  3514. mobile: "", //电话
  3515. identifyValidDate: "", //有效期起期
  3516. identifyValidEndDate: "", //有效期止期
  3517. // province: "",//省
  3518. // city: "",//市
  3519. // county: "",//县
  3520. provinceData:[], //省市区
  3521. },
  3522. policyHolderInfo: {
  3523. //投保人
  3524. name: "", //姓名
  3525. identifyType: "01", //身份证类型
  3526. identifyNumber: "", //身份证号
  3527. age: "",//年龄
  3528. gender: "",//性别
  3529. addr: "", //地址
  3530. email: "", //邮箱
  3531. mobile: "", //电话
  3532. identifyValidDate: "", //有效期起期
  3533. identifyValidEndDate: "", //有效期止期
  3534. // province: "",//省
  3535. // city: "",//市
  3536. // county: "",//县
  3537. provinceData:[], //省市区
  3538. },
  3539. insuredPersonInfo: {
  3540. //被保人
  3541. name: "", //姓名
  3542. identifyType: "01", //身份证类型
  3543. identifyNumber: "", //身份证号
  3544. age: "",//年龄
  3545. gender: "",//性别
  3546. addr: "", //地址
  3547. email: "", //邮箱
  3548. mobile: "", //电话
  3549. identifyValidDate: "", //有效期起期
  3550. identifyValidEndDate: "", //有效期止期
  3551. provinceData:[], //省市区
  3552. // province: "",//省
  3553. // city: "",//市
  3554. // county: "",//县
  3555. },
  3556. //车船税form
  3557. vehicleAndVesselTaxForm: {
  3558. taxRelifFlag: "1",//类型
  3559. identifyNumber: "",//纳税人识别号
  3560. taxpayerIdentifier: "01",//纳税人证件类型
  3561. taxpayerName: "",//纳税人名称
  3562. extendChar2: "",//减免税凭证号
  3563. paidFreeCertificate: "",//完税凭证号
  3564. relifReason: "",//减免税原因
  3565. taxComCode: "",//税务机关代码
  3566. taxComName: "",///税务机关名称
  3567. taxDocumentDate: "",//完税日期
  3568. taxPaidAreaCode: "",//完税凭证地区代码
  3569. taxRelief: "",//减税比例
  3570. },
  3571. //车辆用途列表
  3572. vehicleList: [],
  3573. //能源种类列表
  3574. rules: {
  3575. extendChar2: [
  3576. { required: true, message: "请输入减免税凭证号", trigger: "blur" }
  3577. ],
  3578. paidFreeCertificate: [
  3579. { required: true, message: "请输入完税凭证号", trigger: "blur" }
  3580. ],
  3581. relifReason: [
  3582. { required: true, message: "请输入减免税原因", trigger: "blur" }
  3583. ],
  3584. taxComCode: [
  3585. { required: true, message: "请输入税务机关代码", trigger: "blur" }
  3586. ],
  3587. taxComName: [
  3588. { required: true, message: "请输入税务机关名称", trigger: "blur" }
  3589. ],
  3590. taxDocumentDate: [
  3591. { required: true, message: "请输入完税日期", trigger: "blur" }
  3592. ],
  3593. taxPaidAreaCode: [
  3594. { required: true, message: "请选择完税地区", trigger: "blur" }
  3595. ],
  3596. taxRelief: [
  3597. { required: true, message: "请输入减税比例", trigger: "blur" }
  3598. ],
  3599. taxpayerName: [
  3600. { required: true, message: "请输入纳税人名称", trigger: "blur" }
  3601. ],
  3602. taxpayerIdentifier: [
  3603. { required: true, message: "请选择证件类型", trigger: "blur" }
  3604. ],
  3605. taxRelifFlag: [
  3606. { required: true, message: "请选择纳税类型", trigger: "blur" }
  3607. ],
  3608. energyType: [
  3609. { required: true, message: "请选择能源种类", trigger: "blur" }
  3610. ],
  3611. cimodelclass: [
  3612. { required: true, message: "请选择车辆种类", trigger: "blur" }
  3613. ],
  3614. carnature: [
  3615. { required: true, message: "请选择使用性质", trigger: "blur" }
  3616. ],
  3617. cartype: [
  3618. { required: true, message: "请选择车辆类型", trigger: "blur" }
  3619. ],
  3620. vehicleUse: [
  3621. { required: true, message: "请选择车辆用途", trigger: "blur" }
  3622. ],
  3623. brandName: [
  3624. { required: true, message: "请填写品牌型号", trigger: "blur" }
  3625. ],
  3626. licenseNo: [{ max: 8, message: "最多八个字符", trigger: "blur" },
  3627. { required: true,validator:carPhoneValid,trigger: "blur" }],
  3628. frameNo: [{ validator: checkframeNo, trigger: "blur" }],
  3629. engineNo: [
  3630. { required: true, message: "请填写发动机号", trigger: "blur" }
  3631. ],
  3632. purchasePrice: [
  3633. { required: true, validator: checkpurchasePrice, trigger: "blur" }
  3634. ],
  3635. registerDate: [
  3636. { required: true, message: "请选择注册时间", trigger: "blur" }
  3637. ],
  3638. issueDate: [
  3639. { required: true, message: "请选择发证日期", trigger: "blur" }
  3640. ],
  3641. transferDate: [
  3642. { required: true, message: "请选择转移登记日期", trigger: "blur" }
  3643. ],
  3644. seatCount: [
  3645. { required: true, message: "请输入座位数", trigger: "blur" }
  3646. ],
  3647. completeKerbMass: [
  3648. { required: true, message: "请输入整备质量", trigger: "blur" }
  3649. ],
  3650. name: [{ required: true, message: "请填写姓名", trigger: "blur" }],
  3651. // identifyNumber: [
  3652. // { required: true, message: "请填写证件号", trigger: "blur" },
  3653. // { min: 18, max: 18, message: "长度在18个字符", trigger: "blur" },
  3654. // {
  3655. // pattern: /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9xX]$/,
  3656. // message: "请输入正确的证件号",
  3657. // trigger: "blur"
  3658. // }
  3659. // ],
  3660. identifyValidDate: [
  3661. { required: true, message: "请选择起期", trigger: "blur" }
  3662. ],
  3663. identifyValidEndDate: [
  3664. { required: true, message: "请选择止期", trigger: "blur" }
  3665. ],
  3666. addr: [
  3667. { required: true, message: "请填写地址", trigger: "blur" },
  3668. { min: 8, message: "最少8个字符", trigger: "blur" }
  3669. ],
  3670. mobile: [
  3671. { required: true, message: "请填写手机号", trigger: "blur" },
  3672. { min: 11, max: 11, message: "长度在11个字符", trigger: "blur" },
  3673. {
  3674. pattern: /^(13[0-9]|14[01456879]|15[0-3,5-9]|16[2567]|17[0-8]|18[0-9]|19[0-3,5-9])\d{8}$/,
  3675. message: "请输入正确的手机号",
  3676. trigger: "blur"
  3677. }
  3678. ],
  3679. email: [
  3680. { min: 10, max: 20, message: "最少10个字符", trigger: "blur" },
  3681. {
  3682. pattern: /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/,
  3683. message: "请输入正确的邮箱",
  3684. trigger: "blur"
  3685. }
  3686. ]
  3687. },
  3688. CIInsureList: {
  3689. //交强险
  3690. amount: "1",
  3691. amountDesc: "投保",
  3692. amtList: [
  3693. {
  3694. label: "不投保",
  3695. value: "0"
  3696. },
  3697. {
  3698. label: "投保",
  3699. value: "1"
  3700. }
  3701. ],
  3702. kindCode: "0507",
  3703. kindName: "交强险",
  3704. desc: "国家强制规定购买的险种,对第三方的人身或财产损失提供基本保障"
  3705. },
  3706. BIInsureList: {
  3707. //商业险
  3708. amount: "0",
  3709. amountDesc: "投保",
  3710. amtList: [
  3711. {
  3712. label: "不投保",
  3713. value: "0"
  3714. },
  3715. {
  3716. label: "投保",
  3717. value: "1"
  3718. }
  3719. ],
  3720. kindCode: "0510",
  3721. kindName: "商业险",
  3722. desc: "国家强制规定购买的险种,对第三方的人身或财产损失提供基本保障"
  3723. },
  3724. insureList: [
  3725. {
  3726. amount: "0",
  3727. amountDesc: "投保",
  3728. coveragePremium: 0,
  3729. amtList: [
  3730. {
  3731. label: "不投保",
  3732. value: "0"
  3733. },
  3734. {
  3735. label: "投保",
  3736. value: "1"
  3737. }
  3738. ],
  3739. kindCode: "A",
  3740. isMainRisk: true,
  3741. kindName: "机动车损失险",
  3742. desc:
  3743. "保险期间内,被保险人或被保险机动车驾驶人在使用被保险机动车过程中,因自然灾害、意外事故、机动车被盗窃、抢劫、抢夺等情况(详见保险条款)造成被保险机动车直接损失,且不属于免除保险人责任的范围,保险人依照本保险合同的约定负责赔偿的险种。"
  3744. },
  3745. {
  3746. amount: "0",
  3747. amountDesc: "不投保",
  3748. coveragePremium: 0,
  3749. amtList: [
  3750. {
  3751. label: "不投保",
  3752. value: "0"
  3753. },
  3754. {
  3755. label: "10万",
  3756. value: "100000"
  3757. },
  3758. {
  3759. label: "15万",
  3760. value: "150000"
  3761. },
  3762. {
  3763. label: "20万",
  3764. value: "200000"
  3765. },
  3766. {
  3767. label: "30万",
  3768. value: "300000"
  3769. },
  3770. {
  3771. label: "50万",
  3772. value: "500000"
  3773. },
  3774. {
  3775. label: "100万",
  3776. value: "1000000"
  3777. },
  3778. {
  3779. label: "150万",
  3780. value: "1500000"
  3781. },
  3782. {
  3783. label: "200万",
  3784. value: "2000000"
  3785. },
  3786. {
  3787. label: "250万",
  3788. value: "2500000"
  3789. },
  3790. {
  3791. label: "300万",
  3792. value: "3000000"
  3793. },
  3794. {
  3795. label: "400万",
  3796. value: "4000000"
  3797. },
  3798. {
  3799. label: "500万",
  3800. value: "5000000"
  3801. },
  3802. {
  3803. label: "600万",
  3804. value: "6000000"
  3805. },
  3806. {
  3807. label: "800万",
  3808. value: "8000000"
  3809. },
  3810. {
  3811. label: "1000万",
  3812. value: "10000000"
  3813. }
  3814. ],
  3815. kindCode: "B",
  3816. isMainRisk: true,
  3817. kindName: "第三者责任险",
  3818. desc:
  3819. "保险期间内,被保险人或其允许的驾驶人在使用被保险机动车过程中发生意外事故,致使第三者遭受人身伤亡或财产直接损毁,依法应当对第三者承担的损害赔偿责任,且不属于免除保险人责任的范围,保险人依照本保险合同的约定,对于超过机动车交通事故责任强制保险各分项赔偿限额的部分负责赔偿的险种。"
  3820. },
  3821. {
  3822. amount: "0",
  3823. amountDesc: "1万",
  3824. coveragePremium: 0,
  3825. amtList: [
  3826. {
  3827. label: "不投保",
  3828. value: "0"
  3829. },
  3830. {
  3831. label: "1万",
  3832. value: "10000"
  3833. },
  3834. {
  3835. label: "2万",
  3836. value: "20000"
  3837. },
  3838. {
  3839. label: "3万",
  3840. value: "30000"
  3841. },
  3842. {
  3843. label: "4万",
  3844. value: "40000"
  3845. },
  3846. {
  3847. label: "5万",
  3848. value: "50000"
  3849. },
  3850. {
  3851. label: "6万",
  3852. value: "60000"
  3853. },
  3854. {
  3855. label: "7万",
  3856. value: "70000"
  3857. },
  3858. {
  3859. label: "8万",
  3860. value: "80000"
  3861. },
  3862. {
  3863. label: "9万",
  3864. value: "90000"
  3865. },
  3866. {
  3867. label: "10万",
  3868. value: "100000"
  3869. },
  3870. {
  3871. label: "15万",
  3872. value: "150000"
  3873. },
  3874. {
  3875. label: "20万",
  3876. value: "200000"
  3877. },
  3878. {
  3879. label: "25万",
  3880. value: "250000"
  3881. },
  3882. {
  3883. label: "30万",
  3884. value: "300000"
  3885. },
  3886. {
  3887. label: "35万",
  3888. value: "350000"
  3889. },
  3890. {
  3891. label: "40万",
  3892. value: "400000"
  3893. },
  3894. {
  3895. label: "45万",
  3896. value: "450000"
  3897. },
  3898. {
  3899. label: "50万",
  3900. value: "500000"
  3901. },
  3902. ],
  3903. kindCode: "D3",
  3904. isMainRisk: true,
  3905. kindName: "司机责任险",
  3906. desc:
  3907. "保险期间内,被保险人或其允许的驾驶人在使用被保险机动车过程中发生意外事故,致使车上人员遭受人身伤亡,且不属于免除保险人责任的范围,依法应当对车上人员承担的损害赔偿责任,保险人依照本保险合同的约定负责赔偿的险种。"
  3908. },
  3909. {
  3910. amount: "0",
  3911. amountDesc: "1万",
  3912. coveragePremium: 0,
  3913. amtList: [
  3914. {
  3915. label: "不投保",
  3916. value: "0"
  3917. },
  3918. {
  3919. label: "1万",
  3920. value: "10000"
  3921. },
  3922. {
  3923. label: "2万",
  3924. value: "20000"
  3925. },
  3926. {
  3927. label: "3万",
  3928. value: "30000"
  3929. },
  3930. {
  3931. label: "4万",
  3932. value: "40000"
  3933. },
  3934. {
  3935. label: "5万",
  3936. value: "50000"
  3937. },
  3938. {
  3939. label: "6万",
  3940. value: "60000"
  3941. },
  3942. {
  3943. label: "7万",
  3944. value: "70000"
  3945. },
  3946. {
  3947. label: "8万",
  3948. value: "80000"
  3949. },
  3950. {
  3951. label: "9万",
  3952. value: "90000"
  3953. },
  3954. {
  3955. label: "10万",
  3956. value: "100000"
  3957. },
  3958. {
  3959. label: "15万",
  3960. value: "150000"
  3961. },
  3962. {
  3963. label: "20万",
  3964. value: "200000"
  3965. },
  3966. {
  3967. label: "25万",
  3968. value: "250000"
  3969. },
  3970. {
  3971. label: "30万",
  3972. value: "300000"
  3973. },
  3974. {
  3975. label: "35万",
  3976. value: "350000"
  3977. },
  3978. {
  3979. label: "40万",
  3980. value: "400000"
  3981. },
  3982. {
  3983. label: "45万",
  3984. value: "450000"
  3985. },
  3986. {
  3987. label: "50万",
  3988. value: "500000"
  3989. },
  3990. ],
  3991. kindCode: "D4",
  3992. isMainRisk: true,
  3993. kindName: "乘客责任险",
  3994. desc:
  3995. "保险期间内,被保险人或其允许的驾驶人在使用被保险机动车过程中发生意外事故,致使车上人员遭受人身伤亡,且不属于免除保险人责任的范围,依法应当对车上人员承担的损害赔偿责任,保险人依照本保险合同的约定负责赔偿的险种。"
  3996. },
  3997. {
  3998. amount: "0",
  3999. amountDesc: "不投保",
  4000. coveragePremium: 0,
  4001. amtList: [
  4002. {
  4003. label: "不投保",
  4004. value: "0"
  4005. },
  4006. {
  4007. label: "2千",
  4008. value: "2000"
  4009. },
  4010. {
  4011. label: "5千",
  4012. value: "5000"
  4013. },
  4014. {
  4015. label: "1万",
  4016. value: "10000"
  4017. },
  4018. {
  4019. label: "2万",
  4020. value: "20000"
  4021. }
  4022. ],
  4023. desc:
  4024. "保险期间内,被保险机动车在被保险人或被保险机动车驾驶人使用过程中,发生无明显碰撞痕迹的车身划痕损失,保险人按照保险合同约定负责赔偿的险种",
  4025. isMainRisk: false,
  4026. kindCode: "L",
  4027. kindName: "车身划痕险",
  4028. mainRiskCodeList: "A"
  4029. },
  4030. {
  4031. amount: "0",
  4032. amountDesc: "不投保",
  4033. coveragePremium: 0,
  4034. amtList: [
  4035. {
  4036. label: "不投保",
  4037. value: "0"
  4038. },
  4039. {
  4040. label: "5%",
  4041. value: "5"
  4042. },
  4043. {
  4044. label: "10%",
  4045. value: "10"
  4046. },
  4047. {
  4048. label: "15%",
  4049. value: "15"
  4050. },
  4051. {
  4052. label: "20%",
  4053. value: "20"
  4054. }
  4055. ],
  4056. desc:
  4057. "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
  4058. isMainRisk: false,
  4059. kindCode: "MJ1",
  4060. kindName: "绝对免赔率特约险(车损)",
  4061. mainRiskCodeList: "A"
  4062. },
  4063. {
  4064. amount: "0",
  4065. amountDesc: "不投保",
  4066. coveragePremium: 0,
  4067. amtList: [
  4068. {
  4069. label: "不投保",
  4070. value: "0"
  4071. },
  4072. {
  4073. label: "5%",
  4074. value: "5"
  4075. },
  4076. {
  4077. label: "10%",
  4078. value: "10"
  4079. },
  4080. {
  4081. label: "15%",
  4082. value: "15"
  4083. },
  4084. {
  4085. label: "20%",
  4086. value: "20"
  4087. }
  4088. ],
  4089. desc:
  4090. "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
  4091. isMainRisk: false,
  4092. kindCode: "MJ2",
  4093. kindName: "绝对免赔率特约险(三者)",
  4094. mainRiskCodeList: "B"
  4095. },
  4096. {
  4097. amount: "0",
  4098. amountDesc: "不投保",
  4099. coveragePremium: 0,
  4100. amtList: [
  4101. {
  4102. label: "不投保",
  4103. value: "0"
  4104. },
  4105. {
  4106. label: "5%",
  4107. value: "5"
  4108. },
  4109. {
  4110. label: "10%",
  4111. value: "10"
  4112. },
  4113. {
  4114. label: "15%",
  4115. value: "15"
  4116. },
  4117. {
  4118. label: "20%",
  4119. value: "20"
  4120. }
  4121. ],
  4122. desc:
  4123. "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
  4124. isMainRisk: false,
  4125. kindCode: "MJ3",
  4126. kindName: "绝对免赔率特约险(司机)",
  4127. mainRiskCodeList: "D3"
  4128. },
  4129. {
  4130. amount: "0",
  4131. amountDesc: "不投保",
  4132. coveragePremium: 0,
  4133. amtList: [
  4134. {
  4135. label: "不投保",
  4136. value: "0"
  4137. },
  4138. {
  4139. label: "5%",
  4140. value: "5"
  4141. },
  4142. {
  4143. label: "10%",
  4144. value: "10"
  4145. },
  4146. {
  4147. label: "15%",
  4148. value: "15"
  4149. },
  4150. {
  4151. label: "20%",
  4152. value: "20"
  4153. }
  4154. ],
  4155. desc:
  4156. "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
  4157. isMainRisk: false,
  4158. kindCode: "MJ4",
  4159. kindName: "绝对免赔率特约险(乘客)",
  4160. mainRiskCodeList: "D4"
  4161. },
  4162. {
  4163. amount: "0",
  4164. amountDesc: "不投保",
  4165. coveragePremium: 0,
  4166. amtList: [
  4167. {
  4168. label: "不投保",
  4169. value: "0"
  4170. },
  4171. {
  4172. label: "1万",
  4173. value: "10000"
  4174. },
  4175. {
  4176. label: "2万",
  4177. value: "20000"
  4178. },
  4179. {
  4180. label: "4万",
  4181. value: "40000"
  4182. },
  4183. {
  4184. label: "5万",
  4185. value: "50000"
  4186. },
  4187. {
  4188. label: "8万",
  4189. value: "80000"
  4190. },
  4191. {
  4192. label: "10万",
  4193. value: "100000"
  4194. },
  4195. {
  4196. label: "20万",
  4197. value: "200000"
  4198. },
  4199. {
  4200. label: "30万",
  4201. value: "300000"
  4202. },
  4203. {
  4204. label: "50万",
  4205. value: "500000"
  4206. },
  4207. {
  4208. label: "100万",
  4209. value: "1000000"
  4210. },
  4211. {
  4212. label: "200万",
  4213. value: "2000000"
  4214. },
  4215. {
  4216. label: "300万",
  4217. value: "3000000"
  4218. },
  4219. ],
  4220. kindCode: "SY_FJ_YBW1",
  4221. isMainRisk: true,
  4222. kindName: "附加医保-三者",
  4223. desc: "附加医保外医疗费用责任险(机动车第三者责任保险)"
  4224. },
  4225. {
  4226. amount: "0",
  4227. amountDesc: "不投保",
  4228. coveragePremium: 0,
  4229. amtList: [
  4230. {
  4231. label: "不投保",
  4232. value: "0"
  4233. },
  4234. {
  4235. label: "1万",
  4236. value: "10000"
  4237. },
  4238. {
  4239. label: "2万",
  4240. value: "20000"
  4241. },
  4242. {
  4243. label: "5万",
  4244. value: "50000"
  4245. },
  4246. {
  4247. label: "10万",
  4248. value: "100000"
  4249. }
  4250. ],
  4251. kindCode: "SY_FJ_YBW2",
  4252. isMainRisk: true,
  4253. kindName: "附加医保-座位险(乘客)",
  4254. desc: "附加医保外医疗费用责任险(机动车第三者责任保险)"
  4255. },
  4256. {
  4257. amount: "0",
  4258. amountDesc: "不投保",
  4259. coveragePremium: 0,
  4260. amtList: [
  4261. {
  4262. label: "不投保",
  4263. value: "0"
  4264. },
  4265. {
  4266. label: "1万",
  4267. value: "10000"
  4268. },
  4269. {
  4270. label: "2万",
  4271. value: "20000"
  4272. },
  4273. {
  4274. label: "5万",
  4275. value: "50000"
  4276. },
  4277. {
  4278. label: "10万",
  4279. value: "100000"
  4280. }
  4281. ],
  4282. kindCode: "SY_FJ_YBW3",
  4283. isMainRisk: true,
  4284. kindName: "附加医保-座位险(司机)",
  4285. desc: "附加医保外医疗费用责任险(机动车第三者责任保险)"
  4286. },
  4287. {
  4288. amount: "0",
  4289. amountDesc: "不投保",
  4290. coveragePremium: 0,
  4291. amtList: [
  4292. {
  4293. label: "不投保",
  4294. value: "0"
  4295. },
  4296. {
  4297. label: "50万",
  4298. value: "500000"
  4299. },
  4300. {
  4301. label: "100万",
  4302. value: "1000000"
  4303. },
  4304. {
  4305. label: "150万",
  4306. value: "1500000"
  4307. },
  4308. {
  4309. label: "200万",
  4310. value: "2000000"
  4311. },
  4312. {
  4313. label: "250万",
  4314. value: "2500000"
  4315. },
  4316. {
  4317. label: "300万",
  4318. value: "3000000"
  4319. },
  4320. {
  4321. label: "500万",
  4322. value: "5000000"
  4323. },
  4324. {
  4325. label: "1000万",
  4326. value: "10000000"
  4327. }
  4328. ],
  4329. desc:
  4330. "保险期间内,被保险人或其允许的驾驶人在法定节假日期间使用被保险机动车发生机动车第三者责任保险范围内的事故,并经公安部门或保险人查勘确认的,被保险机动车第三者责任保险所适用的责任限额在保险单载明的基础上增加一倍的险种",
  4331. isMainRisk: false,
  4332. kindCode: "BD",
  4333. kindName: "法定节假日限额翻倍险",
  4334. mainRiskCodeList: "B"
  4335. },
  4336. {
  4337. amount: "0",
  4338. amountDesc: "不投保",
  4339. coveragePremium: 0,
  4340. amtList: [
  4341. {
  4342. label: "不投保",
  4343. value: "0"
  4344. },
  4345. {
  4346. label: "2次",
  4347. value: "2"
  4348. },
  4349. {
  4350. label: "7次",
  4351. value: "7"
  4352. },
  4353. {
  4354. label: "12次",
  4355. value: "12"
  4356. },
  4357. {
  4358. label: "17次",
  4359. value: "17"
  4360. }, {
  4361. label: "22次",
  4362. value: "22"
  4363. },
  4364. ],
  4365. desc:
  4366. "道路救援服务特约条款",
  4367. isMainRisk: false,
  4368. kindCode: "TY1",
  4369. kindName: "道路救援服务特约条款",
  4370. },
  4371. {
  4372. amount: "0",
  4373. amountDesc: "不投保",
  4374. coveragePremium: 0,
  4375. desc:
  4376. "车辆安全检测特约条款",
  4377. isMainRisk: false,
  4378. kindCode: "TY2",
  4379. kindName: "车辆安全检测特约条款",
  4380. },
  4381. {
  4382. amount: "0",
  4383. amountDesc: "不投保",
  4384. coveragePremium: 0,
  4385. desc:
  4386. "代为驾驶服务特约条款",
  4387. isMainRisk: false,
  4388. kindCode: "TY3",
  4389. kindName: "代为驾驶服务特约条款",
  4390. },
  4391. {
  4392. amount: "0",
  4393. amountDesc: "不投保",
  4394. coveragePremium: 0,
  4395. desc:
  4396. "代为送检服务特约条款",
  4397. isMainRisk: false,
  4398. kindCode: "TY4",
  4399. kindName: "代为送检服务特约条款",
  4400. }
  4401. ],
  4402. totalCompanyList: [], //报价保险公司
  4403. continuousCompanyList: [], //续保保险公司
  4404. quoteno: "", //报价号
  4405. orderno: "", //订单号
  4406. queryOrders: {
  4407. extendInfo:{},
  4408. carinfo:{},
  4409. ownerinfo:{},
  4410. applyinfo:{},
  4411. insureinfo:{},
  4412. }, //核保详情
  4413. inscompany: "", //保险公司名称
  4414. licenseNo: "", //车牌号
  4415. applyName: "", //车主名字
  4416. orderstatus: "", //订单状态
  4417. sumpremium: "", //保费合计
  4418. jqpremium: "", //交强
  4419. sypremium: "", //商业
  4420. jypremium:'',//驾意险
  4421. taxamount: "", //车船税
  4422. jqstartdate: "", //交强时间
  4423. systartdate: "", //商业时间
  4424. mobile: "", //投保人手机号
  4425. //影像回显列表
  4426. imgList1: [],
  4427. imgList2: [],
  4428. imgList3: [],
  4429. imgList4: [],
  4430. imgList5: [],
  4431. imgList6: [],
  4432. imgList7: [],
  4433. imgList8: [],
  4434. imgList9: [],
  4435. imgList10: [],
  4436. imgList11: [],
  4437. //影像上传列表
  4438. imageList1: [],
  4439. imageList2: [],
  4440. imageList3: [],
  4441. imageList4: [],
  4442. imageList5: [],
  4443. // 是否禁用上传
  4444. uploadDisabled: false,
  4445. href: "",
  4446. pageRequest: {
  4447. //归属查询
  4448. pageNum: 1,
  4449. pageSize: 20,
  4450. columnFilters: {
  4451. deptId: {
  4452. name: "deptId",
  4453. value: "9"
  4454. },
  4455. containsSubDept: {
  4456. name: "containsSubDept",
  4457. value: 1
  4458. },
  4459. usertype: {
  4460. name: "usertype",
  4461. value: null
  4462. },
  4463. status: {
  4464. name: "status",
  4465. value: "1"
  4466. },
  4467. id: {
  4468. name: "id",
  4469. value: ""
  4470. },
  4471. name: {
  4472. name: "name",
  4473. value: ""
  4474. },
  4475. mobile: {
  4476. name: "mobile",
  4477. value: ""
  4478. }
  4479. }
  4480. },
  4481. userform: {},
  4482. qrcode: null,
  4483. paycodeimg: "", //展示二维码
  4484. ImageUrldialogVisible: false,
  4485. paramsEdit: "",
  4486. companyId: "",
  4487. apiType: "",
  4488. insureMore: true,
  4489. // insureLength: 5,
  4490. HistoryList: [], //历史记录数据
  4491. image1: "",
  4492. image2: "",
  4493. historyRadio:'888',
  4494. sumseatCount: "", // 投保险种座位数
  4495. deptName: "",
  4496. isBottom: true,
  4497. logoImg: "",//报价单保险公司logo图
  4498. vehicleTypeoptions: [],//车辆种类
  4499. trafficManagementVehicleTypeoptions: [],//车辆类型
  4500. energyTypeoptions: [],//能源种类
  4501. taxRelifFlagoptions: [],//车船税类型
  4502. taxpayerIdentifieroptions: [],//纳税人证件类型
  4503. relifReasonoptions: [],//减免税原因代码
  4504. relifReasonoptions: [],//减免税原因代码
  4505. provinceSelect: [],
  4506. natureOfVehicleUseoptions:[],
  4507. businessVehicleUseoptions:[],
  4508. outOfBusinessVehicleUseoptions:[],
  4509. insOrderStatusoptions:[],
  4510. lastCompanyId:''
  4511. };
  4512. },
  4513. watch: {
  4514. "carInfo.licenseNo": {
  4515. handler(val) {
  4516. if (val) {
  4517. this.carInfo.licenseNo = val.toUpperCase();
  4518. }
  4519. },
  4520. deep: true
  4521. },
  4522. "carInfo.frameNo": {
  4523. handler(val) {
  4524. if (val) {
  4525. this.carInfo.frameNo = val.toUpperCase();
  4526. }
  4527. },
  4528. deep: true
  4529. },
  4530. "carInfo.enginedesc":{
  4531. handler(val) {
  4532. if (val) {
  4533. this.carInfo.enginedesc = val.replace(/[A-Za-z]/g,'');
  4534. }
  4535. },
  4536. deep: true
  4537. },
  4538. "ownerInfo.mobile":{
  4539. handler(val) {
  4540. if (val) {
  4541. this.ownerInfo.mobile = val.replace(/\s/g, "");
  4542. }
  4543. },
  4544. deep: true
  4545. },
  4546. "policyHolderInfo.mobile":{
  4547. handler(val) {
  4548. if (val) {
  4549. this.policyHolderInfo.mobile = val.replace(/\s/g, "");
  4550. }
  4551. },
  4552. deep: true
  4553. },
  4554. "insuredPersonInfo.mobile":{
  4555. handler(val) {
  4556. if (val) {
  4557. this.insuredPersonInfo.mobile = val.replace(/\s/g, "");
  4558. }
  4559. },
  4560. deep: true
  4561. },
  4562. "carInfo.engineNo": {
  4563. handler(val) {
  4564. if (val) {
  4565. this.carInfo.engineNo = val.replace(/[^\w-]/ig,'').toUpperCase();
  4566. }
  4567. },
  4568. deep: true
  4569. },
  4570. "carInfo.seatCount": {
  4571. handler(val) {
  4572. if (val) {
  4573. this.sumseatCount = val - 1;
  4574. }
  4575. },
  4576. deep: true
  4577. },
  4578. "policyHolderInfo.identifyNumber": {
  4579. handler(val) {
  4580. if (val) {
  4581. this.vehicleAndVesselTaxForm.identifyNumber = val;
  4582. }
  4583. },
  4584. deep: true
  4585. },
  4586. "policyHolderInfo.name": {
  4587. handler(val) {
  4588. if (val) {
  4589. this.vehicleAndVesselTaxForm.taxpayerName = val;
  4590. }
  4591. },
  4592. deep: true
  4593. },
  4594. },
  4595. components: {
  4596. detailsDialog,
  4597. quotationDialog,
  4598. quotationDialogPro,
  4599. "el-image-viewer": () =>
  4600. import("element-ui/packages/image/src/image-viewer")
  4601. },
  4602. created() {
  4603. // this.commpanyList(); //获取保险公司
  4604. this.obtainProtocol()
  4605. this.getDicType("taxRelifFlag");//车船税类型
  4606. this.getDicType("taxpayerIdentifier");//纳税人证件类型
  4607. this.getDicType("relifReason");//减免税原因代码
  4608. this.getDicType("vehicleType");//车辆种类
  4609. this.getDicType("trafficManagementVehicleType");//车辆类型
  4610. this.getDicType("energyType");//能源种类
  4611. this.getDicType("natureOfVehicleUse");//车辆使用性质
  4612. this.getDicType("businessVehicleUse");//(车辆用途)营业
  4613. this.getDicType("outOfBusinessVehicleUse");//(车辆用途)非营业
  4614. this.getDicType("insOrderStatus");//状态
  4615. this.$api.letter.queryCompany().then(res => {
  4616. this.continuousCompanyList = res.data;
  4617. });
  4618. this.$api.letter.packageQuery().then(res => {
  4619. this.packageOptions = res.data;
  4620. });
  4621. localStorage.setItem('carInfo', JSON.stringify(this.carInfo))
  4622. localStorage.setItem('insureList', JSON.stringify(this.insureList))
  4623. //--归属信息获取--
  4624. var userId = Cookies.get("user");
  4625. if (userId == "admin") {
  4626. this.userId = "admin";
  4627. } else {
  4628. // this.userId = userId;
  4629. this.$api.user.getLoginUser().then(res => {
  4630. if (res.code == 200) {
  4631. this.userform = res.data
  4632. this.$api.dept.getDeptById(res.data.deptId).then(res => {
  4633. this.deptName = res.data.name;
  4634. });
  4635. }
  4636. });
  4637. }
  4638. //--订单编辑回显--
  4639. this.paramsEdit = this.$route.query.data; //接收参数
  4640. if (this.paramsEdit) {
  4641. var _this = this;
  4642. this.jqchecked = false;
  4643. this.tbczcarShow = false;
  4644. this.bbtbcarShow = false;
  4645. this.bbczcarShow = false;
  4646. const { carinfo, ownerinfo, applyinfo, insureinfo, quoteno, orderno } = _this.paramsEdit;
  4647. _this.carInfo = carinfo;
  4648. if( _this.carInfo.carnature=="8A"){
  4649. _this.carInfo.carnature='02'
  4650. _this.carInfo.vehicleUse='05'
  4651. }
  4652. else{
  4653. _this.carInfo.carnature
  4654. _this.carInfo.vehicleUse
  4655. }
  4656. _this.ownerInfo = ownerinfo;
  4657. _this.policyHolderInfo = applyinfo;
  4658. _this.insuredPersonInfo = insureinfo;
  4659. _this.quoteno = quoteno;
  4660. _this.orderno = orderno;
  4661. _this.tbczcarShow=applyinfo.owner
  4662. _this.bbczcarShow=insureinfo.owner
  4663. _this.bbtbcarShow=insureinfo.insuranceHolder
  4664. _this.ownerInfo.age = getAgeByIdCard(_this.ownerInfo.identifyNumber)
  4665. _this.policyHolderInfo.age = getAgeByIdCard(_this.policyHolderInfo.identifyNumber)
  4666. _this.insuredPersonInfo.age = getAgeByIdCard(_this.insuredPersonInfo.identifyNumber)
  4667. // const ownerInfoObject = {
  4668. // province: _this.ownerInfo.province,
  4669. // city: _this.ownerInfo.city,
  4670. // county: _this.ownerInfo.county,
  4671. // }
  4672. // const policyHolderInfoObject = {
  4673. // province: _this.policyHolderInfo.province,
  4674. // city: _this.policyHolderInfo.city,
  4675. // county: _this.policyHolderInfo.county,
  4676. // }
  4677. // const insuredPersonInfoObject = {
  4678. // province: _this.insuredPersonInfo.province,
  4679. // city: _this.insuredPersonInfo.city,
  4680. // county: _this.insuredPersonInfo.county,
  4681. // }
  4682. // this.selectedOptions1 = searchkey(Object.values(ownerInfoObject))
  4683. // this.selectedOptions2 = searchkey(Object.values(policyHolderInfoObject))
  4684. // this.selectedOptions3 = searchkey(Object.values(insuredPersonInfoObject))
  4685. if (_this.paramsEdit.carinfo.transferFlag) {
  4686. this.transferDateShow = true;
  4687. }
  4688. _this.paramsEdit.risk.map(ele => {
  4689. if (ele.riskCode == "0507") {
  4690. _this.jqchecked = true;
  4691. // _this.jqstartDate = ele.startDate;
  4692. // _this.jqendDate = ele.endDate;
  4693. _this.jqstartDate = this.transformTime1();
  4694. _this.jqendDate = this.oneYearPast1(this.jqstartDate);
  4695. } else if (ele.riskCode == "0510") {
  4696. _this.sychecked = true;
  4697. // _this.systartDate = ele.startDate;
  4698. // _this.syendDate = ele.endDate;
  4699. _this.systartDate = this.transformTime1();
  4700. _this.syendDate = this.oneYearPast1(this.systartDate);
  4701. _this.insureList.map(eleA => {
  4702. _this.paramsEdit.king.map(eleB => {
  4703. if (eleA.kindCode == eleB.kindCode) {
  4704. switch (eleB.kindCode) {
  4705. case "D4":
  4706. case "SY_FJ_YBW2":
  4707. eleA.amount = JSON.stringify(eleB.unitAmount);
  4708. break;
  4709. case "MJ1":
  4710. case "MJ2":
  4711. case "MJ3":
  4712. case "MJ4":
  4713. eleA.amount = eleB.deductibleRate;
  4714. break;
  4715. default:
  4716. eleA.amount = JSON.stringify(eleB.amount);
  4717. }
  4718. }
  4719. });
  4720. });
  4721. }
  4722. });
  4723. // this.HistoryList = this.paramsEdit.insAreaCompanyList;
  4724. let params = {
  4725. orderNo: this.paramsEdit.orderno,
  4726. orderStatus: ""
  4727. };
  4728. this.$api.letter.queryQuoteHistory(params).then(res => {
  4729. res.data.forEach(item => {
  4730. if( item.accidentInfo){
  4731. item.accidentInfo.constructor === Object?[item.accidentInfo]:item.accidentInfo
  4732. }
  4733. })
  4734. this.HistoryList = res.data;
  4735. });
  4736. //--获取影像信息--
  4737. _this.imageEcho(this.quoteno);
  4738. //--显示影像按钮--
  4739. _this.imageUploadShow = true;
  4740. } else {
  4741. this.jqstartDate = this.transformTime1();
  4742. this.jqendDate = this.oneYearPast1(this.jqstartDate);
  4743. this.systartDate = this.transformTime1();
  4744. this.syendDate = this.oneYearPast1(this.systartDate);
  4745. }
  4746. },
  4747. mounted() {
  4748. this.onScroll()
  4749. window.addEventListener('scroll', this.onScroll)
  4750. },
  4751. destroyed() {
  4752. window.removeEventListener('scroll', this.onScroll)
  4753. },
  4754. beforeCreate() {
  4755. _self = this;
  4756. },
  4757. computed: {
  4758. issueDateOptions() {
  4759. return {
  4760. disabledDate: this.disabledDate,
  4761. }
  4762. },
  4763. },
  4764. filters:{
  4765. cap(ele){
  4766. return _self.insOrderStatusoptions.find((item) => {
  4767. return item.dictValue === ele;
  4768. }).dictTag;
  4769. }
  4770. },
  4771. methods: {
  4772. //手机号复制粘贴处理
  4773. handlePaste(e,mobileKey) {
  4774. e.preventDefault();//阻止默认行为
  4775. const clipboardData = e.clipboardData || window.clipboardData;//获取剪切板内容
  4776. let pastedText = clipboardData.getData('text').replace(/\s+/g, '');//获取纯文本并处理空格
  4777. // 截取前11个字符,以确保不会超过手机号长度限制
  4778. pastedText = pastedText.substring(0, 11);
  4779. // 使用Vue.nextTick确保更新发生在DOM更新之后
  4780. this.$nextTick(() => {
  4781. this[mobileKey].mobile = pastedText;
  4782. });
  4783. },
  4784. // licenseNoFun(data){
  4785. // if(data && this.carInfo.enginedesc){
  4786. // this.obtainProtocol()
  4787. // }
  4788. // },
  4789. // enginedescFun(data){
  4790. // if(data && this.carInfo.licenseNo){
  4791. // this.obtainProtocol()
  4792. // }
  4793. // },
  4794. packageChange(val){
  4795. let arr=this.packageOptions.find(ele=>ele.id==val).kind
  4796. if(arr.length>0){
  4797. this.insureList.map(eleA => {
  4798. arr.map(eleB => {
  4799. if (eleA.kindCode == eleB.kindCode) {
  4800. switch (eleB.kindCode) {
  4801. case "D4":
  4802. case "SY_FJ_YBW2":
  4803. eleA.amount = JSON.stringify(eleB.unitAmount);
  4804. break;
  4805. case "MJ1":
  4806. case "MJ2":
  4807. case "MJ3":
  4808. case "MJ4":
  4809. eleA.amount = eleB.deductibleRate;
  4810. break;
  4811. case "TY2":
  4812. case "TY3":
  4813. case "TY4":
  4814. eleA.amount = eleB.serviceTimes;
  4815. break;
  4816. default:
  4817. eleA.amount = JSON.stringify(eleB.amount);
  4818. }
  4819. }
  4820. });
  4821. });
  4822. }
  4823. else{
  4824. this.insureList.map(eleA => {
  4825. eleA.amount='0'
  4826. })
  4827. }
  4828. },
  4829. capType(val){
  4830. if(val=='0'){
  4831. return 'success'
  4832. }
  4833. if(val=='1'){
  4834. return 'warning'
  4835. }
  4836. if(val=='2' ||val=='3'||val=='4'){
  4837. return 'danger'
  4838. }
  4839. },
  4840. handleCheckAllChange(ele) {
  4841. this.totalCompanyList.forEach((val,index)=>{
  4842. ele?val.checked=true:val.checked=false
  4843. this.initchange(ele,val.id, val.cnName, index)
  4844. })
  4845. },
  4846. retractFun(){
  4847. this.isRetract=this.isRetract==false?true:false
  4848. },
  4849. //中煤意外险调整份数事件
  4850. ZMhandleChange(val){
  4851. if(!val){
  4852. this.$refs.ZmMultipleTable[0].clearSelection(); //清除
  4853. }
  4854. },
  4855. //中煤意外险选中对应意外险方案
  4856. ZMHandleSelectionChange(val){
  4857. // if(val.length > 0&& val[0].quantity==undefined){
  4858. // this.$message({ message: "请先填写投保份数再勾选!", type: "error", });
  4859. // this.$refs.ZmMultipleTable[0].clearSelection(); //清除
  4860. // return false;
  4861. // }
  4862. if(val.length > 1) {
  4863. this.$refs.ZmMultipleTable[0].clearSelection(); //清除
  4864. this.$refs.ZmMultipleTable[0].toggleRowSelection(val.pop()); //pop:最后一个
  4865. } else {
  4866. this.zhongmeiaccidentalDrivingVo = val[0]; //multipleSelection:当前选择的数组
  4867. }
  4868. },
  4869. //中煤意外险选中对应产品带出方案明细
  4870. zhongmeiInsuranceChange(index){
  4871. //每次选中产品,清空之前选中的数据
  4872. this.zhongmeiaccidentalDrivingVo={};
  4873. this.zhongmeiInsuranceDataDetail=[];
  4874. let data=this.zhongmeiInsuranceData.find(val=>val.rideRiskCode==index)
  4875. //把返回的方案明细放入展示数据对象中
  4876. this.accidentFormZM = Object.assign(
  4877. this.accidentFormZM,
  4878. data
  4879. );
  4880. this.accidentFormZM.quantity='1'
  4881. this.accidentFormZM.maxQuantity=Number(data.maxQuantity)
  4882. if(data&&data.accAmountView){
  4883. this.accidentPremiumZM=data.unitPremium
  4884. this.zhongmeiInsuranceDataDetail=data.accAmountView;
  4885. }
  4886. },
  4887. // 截图粘贴
  4888. copybjd(){
  4889. let that=this
  4890. html2Canvas(document.getElementById('pdfContentsDiv') , {
  4891. allowTaint: true,
  4892. taintTest: false,
  4893. }).then(function (canvas) {
  4894. let base64Data = ''
  4895. // let blob = null
  4896. base64Data = canvas.toDataURL('image/png', 1)
  4897. const date = new Date()
  4898. const saveInfo = {
  4899. download: date.getTime() + `.png`,
  4900. href: base64Data,
  4901. }
  4902. const element = document.createElement('a')
  4903. element.style.display = 'none'
  4904. for (const key in saveInfo) {
  4905. element.setAttribute(key, saveInfo[key])
  4906. }
  4907. document.body.appendChild(element)
  4908. element.click()
  4909. setTimeout(() => {
  4910. document.body.removeChild(element)
  4911. }, 300)
  4912. // var format = 'image/png'
  4913. // //将Base64图片编码转换成blob
  4914. // var base64 = base64Data
  4915. // var code = window.atob(base64.split(',')[1])
  4916. // var aBuffer = new window.ArrayBuffer(code.length)
  4917. // var uBuffer = new window.Uint8Array(aBuffer)
  4918. // for (var i = 0; i < code.length; i++) {
  4919. // uBuffer[i] = code.charCodeAt(i) & 0xff
  4920. // }
  4921. // try {
  4922. // blob = new Blob([uBuffer], { type: format })
  4923. // } catch (e) {
  4924. // window.BlobBuilder =
  4925. // window.BlobBuilder ||
  4926. // window.WebKitBlobBuilder ||
  4927. // window.MozBlobBuilder ||
  4928. // window.MSBlobBuilder
  4929. // if (e.name == 'TypeError' && window.BlobBuilder) {
  4930. // var bb = new window.BlobBuilder()
  4931. // bb.append(uBuffer.buffer)
  4932. // blob = bb.getBlob('image/png')
  4933. // } else if (e.name == 'InvalidStateError') {
  4934. // blob = new Blob([aBuffer], { type: format })
  4935. // }
  4936. // }
  4937. // const clipboardItemInput = new ClipboardItem({
  4938. // 'image/png': blob,
  4939. // })
  4940. // that.$copyText({
  4941. // 'image/png': blob,
  4942. // }).then(
  4943. //   function(e) {
  4944. //     console.log("copy arguments e:", e);
  4945. //     alert("复制成功!");
  4946. //   },
  4947. //   function(e) {
  4948. //     console.log("copy arguments e:", e);
  4949. //     alert("复制失败!");
  4950. //   }
  4951. //   ),
  4952. // navigator.clipboard.write([clipboardItemInput])
  4953. // that.$message({
  4954. // message: '已截图并复制到粘贴板!',
  4955. // type: 'success'
  4956. // });
  4957. })
  4958. },
  4959. // 即时起保
  4960. immediatelyChange(e){
  4961. if(e){
  4962. this.immediatelyValue=true
  4963. const date = new Date();
  4964. date.setHours(date.getHours() +2);
  4965. date.setMinutes(0)
  4966. date.setSeconds(0)
  4967. this.jqstartDate=date
  4968. this.jqendDate = this.oneYearPast1(date);
  4969. }
  4970. else{
  4971. this.immediatelyValue=false
  4972. this.jqstartDate = this.transformTime1();
  4973. this.jqendDate = this.oneYearPast1(this.jqstartDate);
  4974. }
  4975. },
  4976. // 使用性质方法
  4977. natureFun(){
  4978. if(this.carInfo.carnature=='01'){
  4979. this.carInfo.vehicleUse=''
  4980. }
  4981. },
  4982. // 点击同步报价后的时间
  4983. syncData(item){
  4984. this.jqstartDate=item.startDateJq?item.startDateJq:this.jqstartDate
  4985. this.jqendDate=item.endDateJq?item.endDateJq:this.endDateJq
  4986. this.systartDate=item.startDateSy?item.startDateSy:this.systartDate
  4987. this.syendDate=item.endDateSy?item.endDateSy:this.syendDate
  4988. },
  4989. //纳税类型事件
  4990. taxRelifFlagChange(val){
  4991. if (val == 4) {
  4992. citydata.rawCitiesData.map(val => {
  4993. this.provinceSelect.push({
  4994. name: val.name,
  4995. code: val.code
  4996. })
  4997. return val;
  4998. })
  4999. }
  5000. },
  5001. //身份证前六位识别地区
  5002. // getAreaByCode(code) {
  5003. // let list = regionData;
  5004. // let provinceCode = code.substring(0, 2);
  5005. // let cityCode = code.substring(0, 4);
  5006. // let areaCode = code.substring(0, 6);
  5007. // // 获取省份信息
  5008. // let province = list.filter(function (item) {
  5009. // return item.value === provinceCode;
  5010. // });
  5011. // // 获取城市信息
  5012. // let city = province[0].children.filter(function (item) {
  5013. // return item.value === cityCode;
  5014. // });
  5015. // if (city.length > 0) {
  5016. // // 获取区/县信息
  5017. // let area = city[0].children.filter(function (item) {
  5018. // return item.value === areaCode;
  5019. // });
  5020. // return province[0].label + city[0].label + area[0].label;
  5021. // }
  5022. // },
  5023. //--数据字典 begin --
  5024. getDicType(type) {
  5025. this.$api.insCompany.dicType(type).then(res => {
  5026. if (res.code == 200) {
  5027. if(type=='insOrderStatus'){
  5028. let data=JSON.parse(JSON.stringify( res.data.ddList))
  5029. data.unshift( {
  5030. dictTag: "全部",
  5031. dictValue: "888"});
  5032. this[type + 'options'] = data;
  5033. }
  5034. else{
  5035. this[type + 'options'] = res.data.ddList;
  5036. }
  5037. }
  5038. })
  5039. },
  5040. //身份证失去焦点
  5041. identifyblur(info) {
  5042. this[info].age = getAgeByIdCard(this[info].identifyNumber)
  5043. this[info].gender = getGenderByIdCard(this[info].identifyNumber)
  5044. },
  5045. //车主信息选择性别
  5046. genderChange(e) {
  5047. if (this.tbczcarShow) {
  5048. this.policyHolderInfo.gender = e
  5049. } else if(this.bbczcarShow){
  5050. this.insuredPersonInfo.gender = e
  5051. }
  5052. },
  5053. //省市区
  5054. // areahandleChange(event, info) {
  5055. // console.log(event)
  5056. // if (event[0] != null && event[1] != null && event[2] != null) {
  5057. // this[info].province = codeToText[event[0]]
  5058. // this[info].city = codeToText[event[1]]
  5059. // this[info].county = codeToText[event[2]]
  5060. // }
  5061. // },
  5062. iconfftter(icon) {
  5063. return CommonUtil.getDataName({
  5064. dataList: this.global.insCompanyList,
  5065. value: "name",
  5066. label: "icon",
  5067. data: icon,
  5068. });
  5069. },
  5070. disabledDate(time) {
  5071. let datetime = this.carInfo.registerDate
  5072. return time.getTime() < new Date(datetime).getTime();
  5073. },
  5074. onScroll() {
  5075. // 变量scrollTop是滚动条滚动时,滚动条上端距离顶部的距离
  5076. var scrollTop = document.documentElement.scrollTop || document.body.scrollTop
  5077. // 变量windowHeight是可视区的高度
  5078. var windowHeight = document.documentElement.clientHeight || document.body.clientHeight
  5079. // 变量scrollHeight是滚动条的总高度(当前可滚动的页面的总高度)
  5080. var scrollHeight = document.documentElement.scrollHeight || document.body.scrollHeight
  5081. // 滚动条到底部
  5082. if (Math.ceil(scrollTop + windowHeight) >= scrollHeight) {
  5083. this.isBottom = true
  5084. } else {
  5085. this.isBottom = false
  5086. }
  5087. },
  5088. anshengInsuranceChange(index){
  5089. let data=this.anshengInsuranceData.find(val=>val.planCode==index)
  5090. this.anshengaccidentalDrivingVo.personFlag=data.personFlag;
  5091. this.anshengaccidentalDrivingVo.planChineseName=data.planChineseName;
  5092. this.anshengaccidentalDrivingVo.planCode=data.planCode;
  5093. this.anshengaccidentalDrivingVo.planSeries=data.planSeries;
  5094. this.anshengInsuranceData1=[];
  5095. this.anshengInsuranceData1=data.departmentProductList;
  5096. },
  5097. hengbangInsuranceChange(index){
  5098. this.HBInsuranceData=[(this.hengbangInsuranceData).find(val=>val.programcode==index)]
  5099. if(this.HBInsuranceData.length){
  5100. this.HBDrivingChange(this.HBInsuranceData[0])
  5101. }
  5102. },
  5103. huanongInsuranceChange(index){
  5104. this.HNInsuranceData=(this.huanongInsuranceData).find(val=>val.planCode==index).planSubInfo[0].riskInfo
  5105. this.huanongaccidentalDrivingVo= Object.assign(
  5106. this.accidentFormHN,
  5107. this.huanongInsuranceData.find(val=>val.planCode==index)
  5108. );
  5109. },
  5110. taipingInsuranceChange(index){
  5111. this.TPInsuranceData=[(this.taipingInsuranceData).find(val=>val.rationType==index)]
  5112. if(this.TPInsuranceData && this.TPInsuranceData.length){
  5113. this.taipingaccidentalDrivingVo=this.TPInsuranceData[0];
  5114. }
  5115. },
  5116. zijinInsuranceChange(index){
  5117. this.ZJInsuranceData=[]
  5118. this.$refs.expandTable[0].clearSelection()
  5119. index.forEach(item=>{
  5120. this.ZJInsuranceData.push((this.ziJinInsuranceData).find(val=>val.projectCode==item))
  5121. })
  5122. this.ZJInsuranceData.forEach(item=>{
  5123. this.$nextTick(()=>{
  5124. this.$refs.expandTable[0].toggleRowSelection(item);
  5125. })
  5126. })
  5127. this.CheckboxChange(this.ZJInsuranceData)
  5128. },
  5129. renshouInsuranceChange(index){
  5130. this.RSInsuranceData=[(this.renshouInsuranceData).find(val=>val.id==index)]
  5131. if(index){
  5132. this.RSDrivingChange(this.RSInsuranceData[0])
  5133. }
  5134. },
  5135. async dajiaInsuranceChange(index){
  5136. this.dajiaaccidentalDrivingVo={}
  5137. let data = await this.$api.letter.accidentalDrivingInfo(index);
  5138. if (data.code == 200) {
  5139. this.dajiaaccidentalDrivingVo={
  5140. rideRiskCode:index,
  5141. rideRiskName:this.dajiaInsuranceData.find(val=>val.id==index).productName,
  5142. quantity:'1',
  5143. }
  5144. this.DJInsuranceData=data.data
  5145. }
  5146. },
  5147. zhonganInsuranceChange(index){
  5148. this.ZRInsuranceData=[(this.zhonganInsuranceData).find(val=>val.combination==index)]
  5149. if(index){
  5150. this.ZADrivingChange(this.ZRInsuranceData[0])
  5151. }
  5152. },
  5153. // 渤海选择意外险类型
  5154. async bhcxchange(index) {
  5155. if(index){
  5156. this.accidentLoadingbh=true
  5157. this.boHaiaccidentForm.copies = "1";
  5158. this.boHaiaccidentForm.premium =Number(this.boHaiaccidentDataList.find(e=>e.packageCode==index).premium)
  5159. let data = await this.$api.letter.productDetailsQueryboHai({
  5160. packageCode: index,
  5161. productCode:this.boHaiaccidentDataList.find(e=>e.packageCode==index).productCode,
  5162. agreementId:this.boHaiaccidentForm.agreementId
  5163. });
  5164. if (data.code == 200 && data.data) {
  5165. this.accidentLoadingbh=false
  5166. this.boHaiaccidenttableData = data.data;
  5167. }
  5168. else{
  5169. this.$message.error(data.msg)
  5170. this.boHaiaccidenttableData=[]
  5171. }
  5172. }
  5173. },
  5174. // 国任选择意外险类型
  5175. async grcxchange(index) {
  5176. if(index){
  5177. this.accidentLoading=true
  5178. this.guoRenaccidentForm.quantity = "1";
  5179. this.guoRenaccidentForm.prodCode=""
  5180. let data = await this.$api.letter.syncNonAutoInsGuoren({
  5181. goodsCode: index,
  5182. agreementId:this.guoRenaccidentForm.agreementId
  5183. });
  5184. if (data.code == 200) {
  5185. let num = 0;
  5186. data.data.forEach(item => {
  5187. num += Number(item.premium);
  5188. });
  5189. // this.accidentPremiumGr = num
  5190. this.accidentLoading=false
  5191. this.guoRenaccidentDataListChild = data.data;
  5192. }
  5193. else{
  5194. this.accidentLoading=false
  5195. this.$message.error(data.msg)
  5196. this.guoRenaccidentDataListChild=[]
  5197. }
  5198. }
  5199. },
  5200. // 国任选择意外险子级类型
  5201. async grcxchangeChild(index) {
  5202. let list=this.guoRenaccidentDataListChild.find(val => val.prodCode == index)
  5203. this.guoRenaccidentForm={
  5204. ... this.guoRenaccidentForm,
  5205. policyNum:Number(list.premium),
  5206. riskCode:list.riskCode,
  5207. amount:list.amount,
  5208. premium:Number(list.premium)
  5209. // appnum:Number(list.appnum)
  5210. }
  5211. this.guoRenaccidenttableData=list.prodCvgLiabList
  5212. },
  5213. // 选择意外险类型
  5214. async ywxxxchange(index) {
  5215. if(!index){
  5216. return
  5217. }
  5218. this.accidentForm = Object.assign(
  5219. this.accidentForm,
  5220. this.accidentDataList.find(val => val.code == index)
  5221. );
  5222. this.accidentForm.fen = "1";
  5223. this.accidentLoading = true;
  5224. let data = await this.$api.letter.ycgainAccidentSchemeList({
  5225. companyCode:this.accidentForm.companyId,
  5226. code:index,
  5227. agreementId:this.accidentForm.agreementId,
  5228. seatNum:Number(this.carInfo.seatCount)
  5229. });
  5230. if (data.code == 200) {
  5231. let num = 0;
  5232. data.data.forEach(item => {
  5233. num += Number(item.premium);
  5234. });
  5235. this.accidentPremium = num
  5236. this.accidentForm.premium = num
  5237. this.accidentLoading = false;
  5238. this.accidenttableData = data.data;
  5239. }
  5240. },
  5241. numberCopieschange(index) {
  5242. this.accidentForm.premium = Number(this.accidentPremium) * index;
  5243. },
  5244. numberCopieschangeZM(index) {
  5245. this.accidentFormZM.unitPremium = Number(this.accidentPremiumZM) * index;
  5246. },
  5247. numberCopieschangeGR(index) {
  5248. this.guoRenaccidentForm.premium = Number(this.guoRenaccidentForm.policyNum) * index;
  5249. },
  5250. continuousChange(id) {
  5251. this.continuousCompanyList.map(ele => {
  5252. if (ele.id == id) {
  5253. this.attributionform.configure = [];
  5254. ele.configure.map((ele, index) => {
  5255. this.attributionform.configure.push({
  5256. field: ele.field,
  5257. isEdit: ele.isEdit,
  5258. label: ele.label,
  5259. type: ele.type,
  5260. value: ""
  5261. });
  5262. });
  5263. }
  5264. });
  5265. },
  5266. //续保查询
  5267. continuousquery() {
  5268. this.$api.letter.queryRenewal(this.attributionform).then(res => {
  5269. if (res.code == "200") {
  5270. this.carInfo = res.data.carInfo;
  5271. this.ownerInfo = res.data.ownerInfo;
  5272. this.policyHolderInfo = res.data.policyHolderInfo;
  5273. this.insuredPersonInfo = res.data.insuredPersonInfo;
  5274. res.data.riskList.map(ele => {
  5275. if (ele.riskCode == "0507") {
  5276. this.jqchecked = true;
  5277. this.jqstartDate = ele.startDate;
  5278. this.jqendDate = ele.endDate;
  5279. } else if (ele.riskCode == "0510") {
  5280. this.sychecked = true;
  5281. this.systartDate = ele.startDate;
  5282. this.syendDate = ele.endDate;
  5283. }county
  5284. });
  5285. }
  5286. else {
  5287. this.$message({
  5288. message: res.msg,
  5289. type: 'error',
  5290. duration: 2000
  5291. })
  5292. }
  5293. });
  5294. },
  5295. //永诚转保
  5296. renewalCodeconfirm() {
  5297. this.renewalCodedialogVisible = false;
  5298. this.quote();
  5299. },
  5300. //报价轨迹查询
  5301. RadioHistoryChange(e) {
  5302. let params = {
  5303. orderNo: this.orderno,
  5304. orderStatus: e==888?'':e
  5305. };
  5306. this.$api.letter.queryQuoteHistory(params).then(res => {
  5307. res.data.forEach(item => {
  5308. if( item.accidentInfo){
  5309. item.accidentInfo.constructor === Object?[item.accidentInfo]:item.accidentInfo
  5310. }
  5311. })
  5312. this.HistoryList = res.data;
  5313. });
  5314. },
  5315. obtainProtocol(){
  5316. this.$api.letter.getAllAgreement().then(res => {
  5317. if(res.code==200){
  5318. res.data.map(ele => {
  5319. ele["result"] = {};
  5320. ele["quoteCode"] = 0;
  5321. ele["checked"] = false;
  5322. ele["msg"] = "";
  5323. ele["lastYearMsg"] = "";
  5324. ele["agreementId"] = "";
  5325. ele["apiType"] = "";
  5326. ele["orderstatus"] = 0;
  5327. ele.coefficient=''
  5328. // ele.agreementId = ele.agreement[0].id;
  5329. // ele.apiType = ele.agreement[0].apiType;
  5330. ele.underwritingDescription = ele.agreement[0].underwritingDescription
  5331. if(ele.isTaxSource && ele.isTaxSource=='1'){
  5332. ele.agreement.forEach(val=>{
  5333. if(val.isTaxSource && val.isTaxSource=='1'){
  5334. ele.agreementId = val.id;
  5335. ele.apiType = val.apiType;
  5336. }
  5337. });
  5338. }
  5339. })
  5340. if(this.$route.query.data){
  5341. res.data.forEach((val,index)=>{
  5342. this.$route.query.data.insAreaCompanyEditingDtos.forEach(ele=>{
  5343. if(val.namesimple==ele.inscompany){
  5344. if(ele.inscompany=='中国人寿' && ele.companyId){
  5345. this.lastCompanyId=ele.companyId
  5346. }
  5347. res.data[index].quoteCode=200
  5348. res.data[index].result=ele
  5349. }
  5350. })
  5351. })
  5352. }
  5353. }
  5354. this.totalCompanyList = res.data;
  5355. })
  5356. },
  5357. //获取保险公司列表
  5358. commpanyList() {
  5359. this.$api.letter.gainAllowQuoteList('').then(res => {
  5360. res.data.map(ele => {
  5361. ele["result"] = {};
  5362. ele["quoteCode"] = 0;
  5363. ele["checked"] = false;
  5364. ele["msg"] = "";
  5365. ele["lastYearMsg"] = "";
  5366. ele["agreementId"] = "";
  5367. ele["apiType"] = "";
  5368. ele["orderstatus"] = 0;
  5369. ele.coefficient=''
  5370. // ele.agreementId = ele.agreement[0].id;
  5371. ele.apiType = ele.agreement[0].apiType;
  5372. ele.underwritingDescription = ele.agreement[0].underwritingDescription
  5373. });
  5374. if(this.$route.query.data){
  5375. res.data.forEach((val,index)=>{
  5376. this.$route.query.data.insAreaCompanyEditingDtos.forEach(ele=>{
  5377. if(val.namesimple==ele.inscompany){
  5378. res.data[index].quoteCode=200
  5379. res.data[index].result=ele
  5380. }
  5381. })
  5382. })
  5383. }
  5384. this.totalCompanyList = res.data;
  5385. });
  5386. },
  5387. Payment(id,item) {
  5388. this.carcode(id,item);
  5389. },
  5390. //选择协议 val:协议id row:协议列表 index:下标 item:保险公司数据集合
  5391. agreementChange(val, row, index, item) {
  5392. let obj = {};
  5393. obj = row.find(item => {
  5394. return item;
  5395. })
  5396. let selectRow = row.find(item => {
  5397. return item.id==val;
  5398. })
  5399. this.totalCompanyList[index].apiType = obj.apiType;
  5400. this.totalCompanyList[index].underwritingDescription = val?selectRow.underwritingDescription:''; //重新赋值修改选中协议承保描述
  5401. switch (item.namesimple) {
  5402. case '永诚财险':
  5403. this.accidentForm.agreementId = item.agreementId
  5404. this.$api.letter.ycgainAccidentList({ companyCode: item.id, agreementId: item.agreementId,seatNum: Number(this.carInfo.seatCount) }).then(res => {
  5405. if (res.code == 200) {
  5406. this.accidentDataList = res.data;
  5407. }
  5408. });
  5409. break;
  5410. case '国任财险':
  5411. this.guoRenaccidentForm.agreementId = item.agreementId
  5412. this.$api.letter.syncNonAutoInsGuoren({ agreementId: item.agreementId }).then(res => {
  5413. if (res.code == 200) {
  5414. this.guoRenaccidentDataList = res.data;
  5415. }
  5416. else{
  5417. this.guoRenaccidentDataList = [];
  5418. }
  5419. });
  5420. break;
  5421. case '渤海财险':
  5422. this.boHaiaccidentForm.agreementId = item.agreementId
  5423. let policyHolderInfo=this.tbczcarShow?this.ownerInfo:this.policyHolderInfo
  5424. let productQueryVo={
  5425. agreementId:item.agreementId,
  5426. carnature:this.carInfo.carnature,
  5427. cimodelclass: this.carInfo.cimodelclass,
  5428. exhaustScale: this.carInfo.enginedesc,
  5429. limitLoad:this.carInfo.limitLoad,
  5430. powerScale:this.carInfo.powerScale,
  5431. seatCount:this.carInfo.seatCount,
  5432. vehicleUse:this.carInfo.vehicleUse,
  5433. policyHolderInfo,
  5434. insuredPersonInfo:this.bbczcarShow?this.ownerInfo:this.bbtbcarShow?policyHolderInfo:this.insuredPersonInfo,
  5435. }
  5436. console.log(productQueryVo.insuredPersonInfo,this.bbczcarShow,this.bbtbcarShow,1111111111)
  5437. this.$api.letter.productQueryboHai(productQueryVo).then(res => {
  5438. if (res.code == 200) {
  5439. this.boHaiaccidentDataList = res.data;
  5440. }
  5441. else{
  5442. this.boHaiaccidentDataList = [];
  5443. }
  5444. });
  5445. break;
  5446. case '紫金财险':
  5447. this.$api.letter.zijinqueryVehicleProducts({ agreementId: val, seatCount: Number(this.carInfo.seatCount) }).then(res => {
  5448. if (res.code == 200) {
  5449. let data = res.data;
  5450. data.map(ele => {
  5451. ele.quantity = 1;
  5452. return ele;
  5453. })
  5454. this.ziJinInsuranceData = data;
  5455. }
  5456. else{
  5457. this.$message.error(res.msg)
  5458. }
  5459. });
  5460. break;
  5461. case '中国人寿':
  5462. case '恒邦财险':
  5463. case '太平财险':
  5464. case '安盛天平':
  5465. case '华农财险':
  5466. case '众安财险':
  5467. this.$api.letter.pythongetDriving({ agreementId: val}).then(res => {
  5468. if (res.code == 200) {
  5469. let data = res.data;
  5470. data.map(ele => {
  5471. ele.quantity = 1;
  5472. return ele;
  5473. })
  5474. this[item.cnName+'InsuranceData'] = data;
  5475. }
  5476. });
  5477. break;
  5478. case '大家财险':
  5479. this.$api.letter.dajiagetDriving({ agreementId: item.agreementId }).then(res => {
  5480. if (res.code == 200) {
  5481. this.dajiaInsuranceData = res.data;
  5482. }
  5483. });
  5484. break;
  5485. default:
  5486. break;
  5487. }
  5488. },
  5489. CheckboxChange(select, row) {
  5490. this.accidentalDrivingVo = [];
  5491. select.map(val => {
  5492. this.accidentalDrivingVo.push(val)
  5493. return val;
  5494. })
  5495. },
  5496. //恒邦驾意险选择
  5497. HBDrivingChange(row){
  5498. this.hengbangaccidentalDrivingVo=row;
  5499. },
  5500. //人寿驾意险选择
  5501. RSDrivingChange(row){
  5502. this.renshouaccidentalDrivingVo=row;
  5503. },
  5504. //众安驾意险选择
  5505. ZADrivingChange(row){
  5506. this.zhonganaccidentalDrivingVo=row;
  5507. },
  5508. RSDrivingRadio(row){
  5509. this.RSDrivingChange(row)
  5510. },
  5511. HBDrivingRadio(row){
  5512. this.HBDrivingChange(row)
  5513. },
  5514. //安盛驾意险选择
  5515. ASDrivingRadio(row){
  5516. this.AStemplateSelection=row.productCode;
  5517. this.anshengaccidentalDrivingVo.productCode=row.productCode;
  5518. this.anshengaccidentalDrivingVo.productName=row.productName;
  5519. },
  5520. ZADrivingRadio(row){
  5521. this.ZADrivingChange(row)
  5522. },
  5523. // 国任特约选择
  5524. contributingGuoRen(id){
  5525. this.zijinengageListData = [];
  5526. this.contributingLoading=true
  5527. this.contributingState=true
  5528. this.hbsubmitdialogVisible=true
  5529. this.$api.letter.guorenqueryClauseData
  5530. ({ agreementId: id }).then(res => {
  5531. this.contributingLoading=false
  5532. res.data.forEach(val=>{
  5533. val.clauseName=val.clauses
  5534. val.clauseContent=val.clausesContext
  5535. })
  5536. this.zijinengageListData = res.data;
  5537. });
  5538. },
  5539. //紫金特约选择
  5540. zijinengageChange(select, row) {
  5541. this.zijinengageList = [];
  5542. select.map(val => {
  5543. this.zijinengageList.push({
  5544. clauseCode: val.clauseCode,
  5545. clauseName: val.clauseName,
  5546. clauses: val.clauseContent,
  5547. riskCode: val.riskCode,
  5548. })
  5549. return val;
  5550. })
  5551. },
  5552. zijinengageChangeAll( row) {
  5553. if(row){
  5554. this.zijinengageChange(row)
  5555. }
  5556. else{
  5557. this.$refs.expandTablePro.clearSelection();
  5558. this.zijinengageList = [];
  5559. }
  5560. },
  5561. //紫金特约内容编辑
  5562. zijincellDblclick(row,column){
  5563. this.currentCell = row.index + ',' + column.index;
  5564. if(!['clauseContent'].includes(column.property) && row.modifyFlag=='1'){
  5565. setTimeout(() => {
  5566. this.$refs[row.index + ',' + column.index].focus();
  5567. })
  5568. }
  5569. },
  5570. tableCellClassName({row, column, rowIndex, columnIndex}){
  5571. row.index=rowIndex;
  5572. column.index=columnIndex;
  5573. },
  5574. hideInput(){
  5575. this.currentCell = null;
  5576. },
  5577. //勾选保险公司
  5578. initchange(e, code, name, index) {
  5579. if(e){
  5580. let ins = this.totalCompanyList[index].namesimple;
  5581. // this.totalCompanyList[index].agreementId = "";
  5582. this.totalCompanyList[index].checked = e;
  5583. // this.totalCompanyList[index].agreementId = this.totalCompanyList[index].agreement[0].id;
  5584. this.totalCompanyList[index].underwritingDescription = this.totalCompanyList[index].agreement[0].underwritingDescription;
  5585. // if (this.carInfo.licenseNo.slice(0, 2) != '晋A' && ins == '中煤财险') {
  5586. // this.totalCompanyList[0].agreementId = this.totalCompanyList[0].agreement[1].id;
  5587. // }
  5588. switch (ins) {
  5589. case '永诚财险':
  5590. this.accidentForm.agreementId = this.totalCompanyList[index].agreement[0].id;
  5591. this.$api.letter.ycgainAccidentList({ companyCode: this.totalCompanyList[index].id, agreementId: this.totalCompanyList[index].agreement[0].id,seatNum: Number(this.carInfo.seatCount) }).then(res => {
  5592. if (res.code == 200) {
  5593. this.accidentDataList = res.data;
  5594. }
  5595. else{
  5596. this.accidentDataList = []
  5597. }
  5598. });
  5599. break;
  5600. case '国任财险':
  5601. this.guoRenaccidentForm.agreementId = this.totalCompanyList[index].agreement[0].id;
  5602. this.$api.letter.syncNonAutoInsGuoren({ goodsCode: "", agreementId: this.totalCompanyList[index].agreement[0].id }).then(res => {
  5603. if (res.code == 200) {
  5604. this.guoRenaccidentDataList = res.data;
  5605. }
  5606. else{
  5607. this.guoRenaccidentDataList = []
  5608. }
  5609. });
  5610. break;
  5611. case '紫金财险':
  5612. this.$api.letter.zijinqueryVehicleProducts({ agreementId: this.totalCompanyList[index].agreement[0].id, seatCount: Number(this.carInfo.seatCount) }).then(res => {
  5613. if (res.code == 200) {
  5614. let data = res.data;
  5615. data.map(ele => {
  5616. ele.quantity = 1;
  5617. return ele;
  5618. })
  5619. this.ziJinInsuranceData = data;
  5620. }
  5621. else{
  5622. this.$message.error(res.msg)
  5623. }
  5624. });
  5625. break;
  5626. case '安盛天平':
  5627. this.$api.letter.pythongetDriving({ agreementId: this.totalCompanyList[index].agreement[0].id}).then(res => {
  5628. if (res.code == 200) {
  5629. let data = res.data;
  5630. data.map(ele => {
  5631. ele.departmentProductList.map(val=>{
  5632. val.quantity = 1;
  5633. })
  5634. return ele;
  5635. })
  5636. this[name+"InsuranceData"] = data;
  5637. }
  5638. else{
  5639. this.$message.error(res.msg)
  5640. }
  5641. });
  5642. break;
  5643. case '中国人寿':
  5644. case '恒邦财险':
  5645. case '太平财险':
  5646. case '华农财险':
  5647. case '众安财险':
  5648. this.$api.letter.pythongetDriving({ agreementId: this.totalCompanyList[index].agreement[0].id}).then(res => {
  5649. if (res.code == 200) {
  5650. let data = res.data;
  5651. data.map(ele => {
  5652. ele.quantity = 1;
  5653. return ele;
  5654. })
  5655. this[name+"InsuranceData"] = data;
  5656. }
  5657. else{
  5658. this.$message.error(res.msg)
  5659. }
  5660. });
  5661. break;
  5662. case '中煤财险':
  5663. this.accidentFormZM.agreementId = this.totalCompanyList[index].agreement[0].id;
  5664. this.$api.letter.zmGetDrivingPro({ agreementId: this.totalCompanyList[index].agreement[0].id,seatNum:this.carInfo.seatCount}).then(res => {
  5665. if (res.code == 200) {
  5666. let data = res.data;
  5667. this[name+"InsuranceData"] = data;
  5668. }
  5669. else{
  5670. this.$message.error(res.msg)
  5671. }
  5672. });
  5673. break;
  5674. case '大家财险':
  5675. this.$api.letter.dajiagetDriving({ agreementId: this.totalCompanyList[index].agreement[0].id }).then(res => {
  5676. if (res.code == 200) {
  5677. this.dajiaInsuranceData = res.data;
  5678. }
  5679. else{
  5680. this.$message.error(res.msg)
  5681. }
  5682. });
  5683. break;
  5684. default:
  5685. break;
  5686. }
  5687. }else{
  5688. }
  5689. },
  5690. clearAccidentForm() {
  5691. this.accidentForm={}
  5692. this.accidentForm.fen=1
  5693. this.accidentForm.premium=0
  5694. },
  5695. clearAccidentFormGr() {
  5696. this.guoRenaccidenttableData=[],
  5697. this.guoRenaccidentDataListChild=[]
  5698. this.guoRenaccidentForm = {
  5699. quantity: "1",
  5700. premium:0
  5701. };
  5702. },
  5703. clearAccidentFormBh(){
  5704. this.boHaiaccidenttableData=[]
  5705. this.boHaiaccidentForm= {
  5706. copies: "1",
  5707. premium:0
  5708. };
  5709. // this.bohaiaccidentalDrivingVo={};
  5710. },
  5711. clearAccidentFormHN(){
  5712. this.huanongaccidentalDrivingVo={};
  5713. },
  5714. clearAccidentFormHB(){
  5715. this.hengbangaccidentalDrivingVo={};
  5716. },
  5717. clearAccidentFormTP(){
  5718. this.taipingaccidentalDrivingVo={};
  5719. },
  5720. clearAccidentFormDJ(){
  5721. this.dajiaaccidentalDrivingVo={};
  5722. },
  5723. clearAccidentFormZM(){
  5724. this.zhongmeiaccidentalDrivingVo={};
  5725. },
  5726. clearAccidentFormZJ(){
  5727. this.accidentalDrivingVo=[]
  5728. },
  5729. clearAccidentFormZA(){
  5730. this.zhonganaccidentalDrivingVo={};
  5731. },
  5732. clearAccidentFormRS(){
  5733. this.renshouaccidentalDrivingVo={};
  5734. },
  5735. clearAccidentFormAS(){
  5736. this.anshengaccidentalDrivingVo={};
  5737. },
  5738. //身份证有效期长期
  5739. insureLongterm(e) {
  5740. this[e].identifyValidEndDate = "9999-12-31";
  5741. },
  5742. //较强起保日期事件
  5743. jqChange(e) {
  5744. this.jqendDate = this.oneYearPast1(e);
  5745. },
  5746. //商业起保日期事件
  5747. syChange(e) {
  5748. this.syendDate = this.oneYearPast1(e);
  5749. },
  5750. // //查看更多
  5751. // selectMore(leg) {
  5752. // this.insureMore = false;
  5753. // this.insureLength = leg;
  5754. // },
  5755. // //收起
  5756. // packup() {
  5757. // this.insureMore = true;
  5758. // this.insureLength = 5;
  5759. // },
  5760. //险别选择框事件
  5761. insureitemChange(e) {
  5762. if (e != 0) {
  5763. this.sychecked = true;
  5764. this.systartDate = this.transformTime1();
  5765. this.syendDate = this.oneYearPast1(this.systartDate);
  5766. }
  5767. },
  5768. all() {
  5769. this.$refs.detailsDialog.setBackupVisible(true)
  5770. },
  5771. base64ToBlob(code) {
  5772. code = code.replace(/[\n\r]/g, "");
  5773. // atob() 方法用于解码使用 base-64 编码的字符串。
  5774. const raw = window.atob(code);
  5775. const rawLength = raw.length;
  5776. const uInt8Array = new Uint8Array(rawLength);
  5777. for (let i = 0; i < rawLength; ++i) {
  5778. uInt8Array[i] = raw.charCodeAt(i);
  5779. }
  5780. return new Blob([uInt8Array], { type: "application/pdf" });
  5781. },
  5782. viewPdf(content) {
  5783. if (!content) {
  5784. this.$message.error("暂无文件");
  5785. return;
  5786. }
  5787. const blob = this.base64ToBlob(content);
  5788. this.href = blob;
  5789. if (window.navigator && window.navigator.msSaveOrOpenBlob) {
  5790. window.navigator.msSaveOrOpenBlob(blob);
  5791. } else {
  5792. const fileURL = URL.createObjectURL(blob);
  5793. window.open(fileURL);
  5794. }
  5795. },
  5796. creatQrCode(text) {
  5797. if (this.qrcode) {
  5798. this.qrcode.clear();
  5799. this.qrcode.makeCode(text);
  5800. } else {
  5801. this.qrcode = new QRCode("qrcode", {
  5802. text: text,
  5803. width: this.qrcodeWidth,
  5804. height: this.qrcodeHeight ,
  5805. colorDark: "#000000",
  5806. colorLight: "#ffffff",
  5807. correctLevel: QRCode.CorrectLevel.H
  5808. });
  5809. }
  5810. },
  5811. //人工核保
  5812. underwriting(id) {
  5813. let param = {
  5814. companyId: id
  5815. };
  5816. this.$api.letter.manualUnderwriting(param).then(res => {
  5817. if (res.code == "200") {
  5818. this.Payment(id);
  5819. }
  5820. });
  5821. },
  5822. jqcheckedChange(e) {
  5823. if (e) {
  5824. this.jqstartDate = this.transformTime1();
  5825. this.jqendDate = this.oneYearPast1(this.jqstartDate);
  5826. } else {
  5827. this.jqstartDate = "";
  5828. this.jqendDate = "";
  5829. }
  5830. },
  5831. sycheckedChange(e) {
  5832. if (e) {
  5833. this.systartDate = this.transformTime1();
  5834. this.syendDate = this.oneYearPast1(this.systartDate);
  5835. } else {
  5836. this.systartDate = "";
  5837. this.syendDate = "";
  5838. }
  5839. },
  5840. //报价
  5841. quote() {
  5842. let starttime = new Date(this.carInfo.registerDate)
  5843. let endtime = new Date(this.carInfo.issueDate)
  5844. if (endtime < starttime) {
  5845. this.$message({ message: "发证日期早于初登日期", type: "error" });
  5846. return;
  5847. }
  5848. this.$refs["carInfo"].validate(valid => {
  5849. if (valid) {
  5850. var _this = this;
  5851. _this.$refs["ownerInfo"].validate(valid1 => {
  5852. if (valid1) {
  5853. if (_this.tbczcarShow == true) {
  5854. _this.policyHolderInfo = JSON.parse(
  5855. JSON.stringify(_this.ownerInfo)
  5856. );
  5857. }
  5858. if (_this.bbczcarShow == true) {
  5859. _this.insuredPersonInfo = JSON.parse(
  5860. JSON.stringify(_this.ownerInfo)
  5861. );
  5862. }
  5863. if (_this.bbtbcarShow == true) {
  5864. _this.insuredPersonInfo = JSON.parse(
  5865. JSON.stringify(_this.policyHolderInfo)
  5866. );
  5867. }
  5868. _this.carInfo.vinNo = _this.carInfo.frameNo;
  5869. _this.riskList = []; //险种大类
  5870. _this.kindList = []; //商业险险别
  5871. if (
  5872. (!_this.jqstartDate || !_this.jqendDate) &&
  5873. (!_this.systartDate || !_this.syendDate)
  5874. ) {
  5875. this.$message({ message: "投保日期不能为空", type: "warning" });
  5876. } else {
  5877. this.calculateLoading=true
  5878. setInterval(() => {
  5879. this.calculateLoading=false
  5880. }, 3000);
  5881. if (_this.jqchecked) {
  5882. //交强
  5883. _this.jqstartDate = this.transformTime(_this.jqstartDate);
  5884. _this.jqendDate = this.transformTime(_this.jqendDate);
  5885. _this.riskList.push({
  5886. amount: "200000",
  5887. premium: "0",
  5888. riskCode: "0507",
  5889. endDate: _this.jqendDate,
  5890. startDate: _this.jqstartDate,
  5891. instantFlag: "0"
  5892. });
  5893. }
  5894. if (_this.sychecked) {
  5895. _this.systartDate = this.transformTime(_this.systartDate);
  5896. _this.syendDate = this.transformTime(_this.syendDate);
  5897. //商业
  5898. _this.riskList.push({
  5899. premium: "0",
  5900. riskCode: "0510",
  5901. quotePreceptCode: "",
  5902. quotePreceptName: "",
  5903. endDate: _this.syendDate,
  5904. startDate: _this.systartDate,
  5905. instantFlag: "0"
  5906. });
  5907. _this.insureList.map((ele, index) => {
  5908. if (
  5909. ele.amount != "0" &&
  5910. (ele.kindCode == "D4" || ele.kindCode == "SY_FJ_YBW2")
  5911. ) {
  5912. _this.kindList.push({
  5913. unitAmount: _this.insureList[index].amount,
  5914. kindCode: _this.insureList[index].kindCode,
  5915. kindName: _this.insureList[index].kindName
  5916. });
  5917. }
  5918. else if (
  5919. ele.amount != "0" &&
  5920. (ele.kindCode == "MJ1" ||
  5921. ele.kindCode == "MJ2" ||
  5922. ele.kindCode == "MJ3" ||
  5923. ele.kindCode == "MJ4")
  5924. ) {
  5925. _this.kindList.push({
  5926. deductibleRate: _this.insureList[index].amount,
  5927. kindCode: _this.insureList[index].kindCode,
  5928. kindName: _this.insureList[index].kindName
  5929. });
  5930. }
  5931. else if (
  5932. ele.amount != "0" &&
  5933. (ele.kindCode == "TY1" ||
  5934. ele.kindCode == "TY2" ||
  5935. ele.kindCode == "TY3" ||
  5936. ele.kindCode == "TY4")
  5937. ) {
  5938. _this.kindList.push({
  5939. serviceTimes: _this.insureList[index].amount,
  5940. kindCode: _this.insureList[index].kindCode,
  5941. kindName: _this.insureList[index].kindName
  5942. });
  5943. }
  5944. else if(ele.amount != "0") {
  5945. _this.kindList.push({
  5946. amount: _this.insureList[index].amount,
  5947. kindCode: _this.insureList[index].kindCode,
  5948. kindName: _this.insureList[index].kindName
  5949. });
  5950. }
  5951. return ele;
  5952. });
  5953. } else {
  5954. _this.kindList = [];
  5955. }
  5956. // if (_this.orderno) {
  5957. this.OrderStageProcessing();
  5958. // } else {
  5959. // _this.$api.letter.getquote().then(res => {
  5960. // _this.quoteno = res.data; //获取报价号
  5961. // this.OrderStageProcessing();
  5962. // });
  5963. // }
  5964. }
  5965. } else {
  5966. document.getElementById("CheZhu").scrollIntoView();
  5967. _this.$message({ message: "请检查人员信息", type: "warning" });
  5968. }
  5969. });
  5970. } else {
  5971. document.getElementById("Car").scrollIntoView();
  5972. this.$message({ message: "请检查车辆信息", type: "warning" });
  5973. return false;
  5974. }
  5975. });
  5976. },
  5977. //动态函数
  5978. ToolClickFun(MethodName, Parameter, companyId, companyName) {
  5979. this[`${MethodName}`](Parameter, companyId, companyName);
  5980. },
  5981. //更新报价历史
  5982. QuotationHistory() {
  5983. let params = {
  5984. orderNo: this.orderno,
  5985. orderStatus: ""
  5986. };
  5987. this.$api.letter.queryQuoteHistory(params).then(res => {
  5988. res.data.forEach(item => {
  5989. if( item.accidentInfo){
  5990. item.accidentInfo.constructor=== Object?[item.accidentInfo]:item.accidentInfo
  5991. }
  5992. })
  5993. this.HistoryList = res.data;
  5994. });
  5995. },
  5996. open2(Name, Msg) {
  5997. this.$notify.info({
  5998. title: Name,
  5999. dangerouslyUseHTMLString: true,
  6000. type: 'warning',
  6001. message: Msg,
  6002. customClass: "customNotifyClass",
  6003. duration: 7000,
  6004. });
  6005. },
  6006. openPredictInfo(Name, Msg) {
  6007. this.redictInfoMsg=Msg
  6008. this.redictInfodialogVisible=true
  6009. },
  6010. //订单生成前数据处理事件
  6011. OrderStageProcessing() {
  6012. if (this.tbczcarShow && this.imageList2.length > 0) { //投保人同车主
  6013. this.imageList3 = JSON.parse(JSON.stringify(this.imageList2));
  6014. if (this.imageList3.length == 1) {
  6015. this.imageList3[0].imageType = "C03";
  6016. } else {
  6017. this.imageList3[0].imageType = "C03";
  6018. this.imageList3[1].imageType = "D03";
  6019. }
  6020. }
  6021. if (this.bbczcarShow && this.imageList2.length > 0) { //被保人同车主
  6022. this.imageList4 = JSON.parse(JSON.stringify(this.imageList2));
  6023. if (this.imageList4.length == 1) {
  6024. this.imageList4[0].imageType = "C04";
  6025. } else {
  6026. this.imageList4[0].imageType = "C04";
  6027. this.imageList4[1].imageType = "D04";
  6028. }
  6029. }
  6030. if (this.bbtbcarShow && this.imageList3.length > 0) { //被保人同投保人
  6031. this.imageList4 = JSON.parse(JSON.stringify(this.imageList3));
  6032. if (this.imageList4.length == 1) {
  6033. this.imageList4[0].imageType = "C04";
  6034. } else {
  6035. this.imageList4[0].imageType = "C04";
  6036. this.imageList4[1].imageType = "D04";
  6037. }
  6038. }
  6039. //日期长度<10处理
  6040. const formatDate = (date) => {
  6041. if (date.length < 10) {
  6042. return this.timeformat(date);
  6043. }
  6044. return date;
  6045. };
  6046. if (this.carInfo.registerDate.length < 10) {
  6047. this.carInfo.registerDate = formatDate(this.carInfo.registerDate);
  6048. }
  6049. if (this.carInfo.issueDate.length < 10) {
  6050. this.carInfo.issueDate = formatDate(this.carInfo.issueDate);
  6051. }
  6052. if (this.carInfo.transferDate && this.carInfo.transferDate.length < 10 && this.carInfo.transferDate !== "") {
  6053. this.carInfo.transferDate = formatDate(this.carInfo.transferDate);
  6054. }
  6055. //日期长度<10处理
  6056. //提交身份证/驾驶证 ——————————————————
  6057. this.policyHolderInfo.owner=this.tbczcarShow
  6058. this.insuredPersonInfo.owner=this.bbczcarShow
  6059. this.insuredPersonInfo.insuranceHolder=this.bbtbcarShow
  6060. if(typeof(this.ownerInfo.provinceData)=='string'){
  6061. this.ownerInfo.provinceData=[]
  6062. }
  6063. if(typeof(this.insuredPersonInfo.provinceData)=='string'){
  6064. this.insuredPersonInfo.provinceData=[]
  6065. }
  6066. if(typeof(this.policyHolderInfo.provinceData)=='string'){
  6067. this.policyHolderInfo.provinceData=[]
  6068. }
  6069. let param = {
  6070. userId: this.userId,
  6071. quoteno: this.quoteno,
  6072. orderNo: this.orderno ,
  6073. carInfo: this.carInfo,
  6074. insuredPersonInfo: this.insuredPersonInfo,
  6075. ownerInfo: this.ownerInfo,
  6076. policyHolderInfo: this.policyHolderInfo,
  6077. kindList: this.kindList,
  6078. riskList: this.riskList,
  6079. vehicleAndVesselTax:this.vehicleAndVesselTaxForm,
  6080. };
  6081. this.$api.letter.generateOrder(param).then(res => {
  6082. if (res.code == "200") {
  6083. //上传图片
  6084. const mergedArray = [...this.imageList1, ...this.imageList2, ...this.imageList3, ...this.imageList4,...this.imageList5];
  6085. if (mergedArray.length > 0) {
  6086. let imageparam = {
  6087. imageList: mergedArray,
  6088. quoteNo: res.data.quoteno
  6089. }
  6090. this.$api.letter.uploadImages(imageparam).then(responses => {
  6091. this.imageEcho(res.data.quoteno); // 获取图片
  6092. });
  6093. }
  6094. this.quoteno=res.data.quoteno
  6095. this.orderno = res.data.orderno;
  6096. this.totalCompanyList.map((ele, index) => {
  6097. if (ele.checked) {
  6098. //动态调用报价接口
  6099. ele.quoteCode = 1;
  6100. ele.orderstatus = 0;
  6101. this.ToolClickFun(ele.cnName, index, ele.id, ele.namesimple);
  6102. }
  6103. });
  6104. }
  6105. else if(res.code==1001){
  6106. this.$confirm('是否生成新订单?', '提示', {
  6107. confirmButtonText: '确定',
  6108. cancelButtonText: '取消',
  6109. type: 'warning'
  6110. }).then(() => {
  6111. this.orderno=''
  6112. this.quoteno=''
  6113. this.quote()
  6114. }).catch(() => {
  6115. });
  6116. }
  6117. else {
  6118. this.$message({ message: res.msg, type: "warning" });
  6119. }
  6120. });
  6121. document.getElementById("company").scrollIntoView();
  6122. this.imageUploadShow = true;
  6123. },
  6124. //永安报价
  6125. yongan(num, id) {
  6126. let params = {
  6127. orderNo: this.orderno,
  6128. companyId: id,
  6129. agreementId: this.totalCompanyList[num].agreementId,
  6130. };
  6131. this.$api.letter.yonganquote(params).then(res => {
  6132. this.totalCompanyList[num].msg = res.msg;
  6133. if (res.msg == "重复投保" && res.code == "501") {
  6134. if (!!res.data.jqStartDate && !res.data.syStartDate) {
  6135. this.jqstartDate = res.data.jqStartDate;
  6136. this.jqendDate = res.data.jqEndDate;
  6137. this.updateRiskDates("0507", res.data.jqStartDate, res.data.jqEndDate);
  6138. let param = {
  6139. userId: this.userId,
  6140. quoteno: this.quoteno,
  6141. orderNo: this.orderno,
  6142. carInfo: this.carInfo,
  6143. insuredPersonInfo: this.insuredPersonInfo,
  6144. ownerInfo: this.ownerInfo,
  6145. policyHolderInfo: this.policyHolderInfo,
  6146. kindList: this.kindList,
  6147. riskList: this.riskList,
  6148. vehicleAndVesselTax:this.vehicleAndVesselTaxForm
  6149. };
  6150. return this.$api.letter.generateOrder(param).then(res => {
  6151. this.yongan(num, id);
  6152. });
  6153. } else if (!!res.data.syStartDate && !res.data.jqStartDate) {
  6154. this.systartDate = res.data.syStartDate;
  6155. this.syendDate = res.data.syEndDate;
  6156. this.updateRiskDates("0510", res.data.syStartDate, res.data.syEndDate);
  6157. let param = {
  6158. userId: this.userId,
  6159. quoteno: this.quoteno,
  6160. orderNo: this.orderno,
  6161. carInfo: this.carInfo,
  6162. insuredPersonInfo: this.insuredPersonInfo,
  6163. ownerInfo: this.ownerInfo,
  6164. policyHolderInfo: this.policyHolderInfo,
  6165. kindList: this.kindList,
  6166. riskList: this.riskList,
  6167. vehicleAndVesselTax:this.vehicleAndVesselTaxForm
  6168. };
  6169. return this.$api.letter.generateOrder(param).then(res => {
  6170. this.yongan(num, id);
  6171. });
  6172. } else if (!!res.data.syStartDate && !!res.data.jqStartDate) {
  6173. this.jqstartDate = res.data.jqStartDate;
  6174. this.jqendDate = res.data.jqEndDate;
  6175. this.systartDate = res.data.syStartDate;
  6176. this.syendDate = res.data.syEndDate;
  6177. this.updateRiskDates("0507", res.data.jqStartDate, res.data.jqEndDate);
  6178. this.updateRiskDates("0510", res.data.syStartDate, res.data.syEndDate);
  6179. let param = {
  6180. userId: this.userId,
  6181. quoteno: this.quoteno,
  6182. orderNo: this.orderno,
  6183. carInfo: this.carInfo,
  6184. insuredPersonInfo: this.insuredPersonInfo,
  6185. ownerInfo: this.ownerInfo,
  6186. policyHolderInfo: this.policyHolderInfo,
  6187. kindList: this.kindList,
  6188. riskList: this.riskList,
  6189. vehicleAndVesselTax:this.vehicleAndVesselTaxForm
  6190. };
  6191. return this.$api.letter.generateOrder(param).then(res => {
  6192. this.yongan(num, id);
  6193. });
  6194. } else {
  6195. this.totalCompanyList[num].quoteCode = "3";
  6196. this.totalCompanyList[num].msg = "重复投保";
  6197. }
  6198. } else if (
  6199. res.code == "500" ||
  6200. res.code == "502" ||
  6201. res.code == "-9999"
  6202. ) {
  6203. this.totalCompanyList[num].quoteCode = "-9999";
  6204. this.totalCompanyList[num].msg = res.msg;
  6205. } else {
  6206. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  6207. this.totalCompanyList[num].lastYearMsg = "";
  6208. let dat = res.data.warnMessageList;
  6209. dat.map(ele => {
  6210. this.totalCompanyList[num].lastYearMsg += ele + '<br>';
  6211. })
  6212. }
  6213. this.totalCompanyList[num].quoteCode = 200;
  6214. this.totalCompanyList[num].result = res.data;
  6215. this.QuotationHistory();
  6216. }
  6217. });
  6218. },
  6219. updateRiskDates(riskCode, startDate, endDate) {
  6220. for (let i = 0; i < this.riskList.length; i++) {
  6221. if (this.riskList[i].riskCode == riskCode) {
  6222. this.riskList[i].startDate = startDate;
  6223. this.riskList[i].endDate = endDate;
  6224. }
  6225. }
  6226. },
  6227. //中煤报价
  6228. zhongmei(num, id) {
  6229. let accidentalDrivingVo={};
  6230. // if(this.zhongmeiaccidentalDrivingVo){
  6231. // accidentalDrivingVo.rideRiskCode=this.zhongmeiaccidentalDrivingVo.schemeNo;
  6232. // accidentalDrivingVo.rideRiskName=this.zhongmeiaccidentalDrivingVo.schemeName;
  6233. // accidentalDrivingVo.quantity=this.zhongmeiaccidentalDrivingVo.quantity;
  6234. // }
  6235. if (this.accidentFormZM.rideRiskCode) {
  6236. accidentalDrivingVo = {
  6237. rideRiskCode: this.accidentFormZM.rideRiskCode,
  6238. rideRiskName: this.accidentFormZM.rideRiskName,
  6239. quantity: this.accidentFormZM.quantity ? this.accidentFormZM.quantity : "1",
  6240. };
  6241. }
  6242. let params = {
  6243. accidentalDrivingVo,
  6244. orderNo: this.orderno,
  6245. companyId: id,
  6246. agreementId: this.totalCompanyList[num].agreementId,
  6247. };
  6248. this.$api.letter.zhongmeiquote(params).then(res => {
  6249. this.totalCompanyList[num].msg = res.msg;
  6250. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  6251. this.totalCompanyList[num].quoteCode = "4";
  6252. this.totalCompanyList[num].msg = res.msg;
  6253. return;
  6254. } else if (res.data == null && res.msg.indexOf("交强险平台返回") > -1 && res.msg.indexOf(";终保日期") > -1) {
  6255. this.totalCompanyList[num].lastYearMsg = "<b>交强险</b><br>" + res.msg.slice(res.msg.indexOf("起保日期 "), res.msg.indexOf("地区 山西。") + 6);
  6256. let time =
  6257. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  6258. this.jqstartDate = time;
  6259. this.jqendDate = this.oneYearPast1(time);
  6260. if (this.riskList.length > 0) {
  6261. for (let i = 0; i < this.riskList.length; i++) {
  6262. if (this.riskList[i].riskCode == "0507") {
  6263. this.riskList[i].startDate = time;
  6264. this.riskList[i].endDate = this.oneYearPast1(time);
  6265. }
  6266. }
  6267. }
  6268. let param = {
  6269. userId: this.userId,
  6270. quoteno: this.quoteno,
  6271. orderNo: this.orderno,
  6272. carInfo: this.carInfo,
  6273. insuredPersonInfo: this.insuredPersonInfo,
  6274. ownerInfo: this.ownerInfo,
  6275. policyHolderInfo: this.policyHolderInfo,
  6276. kindList: this.kindList,
  6277. riskList: this.riskList,
  6278. vehicleAndVesselTax:this.vehicleAndVesselTaxForm
  6279. };
  6280. return this.$api.letter.generateOrder(param).then(res => {
  6281. this.zhongmei(num, id);
  6282. });
  6283. } else if (!!res.data) {
  6284. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  6285. this.totalCompanyList[num].lastYearMsg = "";
  6286. let dat = res.data.warnMessageList;
  6287. dat.map(ele => {
  6288. this.totalCompanyList[num].lastYearMsg += ele + '<br>';
  6289. })
  6290. }
  6291. this.totalCompanyList[num].quoteCode = 200;
  6292. this.totalCompanyList[num].result = res.data;
  6293. this.QuotationHistory();
  6294. } else {
  6295. this.totalCompanyList[num].quoteCode = "3";
  6296. this.totalCompanyList[num].msg = res.msg;
  6297. return;
  6298. }
  6299. });
  6300. },
  6301. // 大家报价
  6302. dajia(num, id) {
  6303. // let accidentalDrivingVo=[]
  6304. // if(this.dajiaaccidentalDrivingVo){
  6305. // accidentalDrivingVo.rideRiskCode=this.dajiaaccidentalDrivingVo.schemeNo;
  6306. // accidentalDrivingVo.rideRiskName=this.dajiaaccidentalDrivingVo.cvrgName;
  6307. // accidentalDrivingVo.quantity=this.dajiaaccidentalDrivingVo.quantity;
  6308. // }
  6309. let params = {
  6310. accidentalDrivingVo: this.dajiaaccidentalDrivingVo,
  6311. orderNo: this.orderno,
  6312. companyId: id,
  6313. agreementId: this.totalCompanyList[num].agreementId,
  6314. };
  6315. this.$api.letter.dajiaquote(params).then(res => {
  6316. this.totalCompanyList[num].msg = res.msg;
  6317. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  6318. this.totalCompanyList[num].quoteCode = "4";
  6319. this.totalCompanyList[num].msg = res.msg;
  6320. return;
  6321. } else if (res.data == null && res.msg.indexOf("交强险平台返回") > -1 && res.msg.indexOf(";终保日期") > -1) {
  6322. this.totalCompanyList[num].lastYearMsg = "<b>交强险</b><br>" + res.msg.slice(res.msg.indexOf("起保日期 "), res.msg.indexOf("地区 山西。") + 6);
  6323. let time =
  6324. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  6325. this.jqstartDate = time;
  6326. this.jqendDate = this.oneYearPast1(time);
  6327. if (this.riskList.length > 0) {
  6328. for (let i = 0; i < this.riskList.length; i++) {
  6329. if (this.riskList[i].riskCode == "0507") {
  6330. this.riskList[i].startDate = time;
  6331. this.riskList[i].endDate = this.oneYearPast1(time);
  6332. }
  6333. }
  6334. }
  6335. let param = {
  6336. userId: this.userId,
  6337. quoteno: this.quoteno,
  6338. orderNo: this.orderno,
  6339. carInfo: this.carInfo,
  6340. insuredPersonInfo: this.insuredPersonInfo,
  6341. ownerInfo: this.ownerInfo,
  6342. policyHolderInfo: this.policyHolderInfo,
  6343. kindList: this.kindList,
  6344. riskList: this.riskList,
  6345. vehicleAndVesselTax:this.vehicleAndVesselTaxForm
  6346. };
  6347. return this.$api.letter.generateOrder(param).then(res => {
  6348. this.dajia(num, id);
  6349. });
  6350. } else if (!!res.data) {
  6351. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  6352. this.totalCompanyList[num].lastYearMsg = "";
  6353. let dat = res.data.warnMessageList;
  6354. dat.map(ele => {
  6355. this.totalCompanyList[num].lastYearMsg += ele + '<br>';
  6356. })
  6357. }
  6358. this.totalCompanyList[num].quoteCode = 200;
  6359. this.totalCompanyList[num].result = res.data;
  6360. this.QuotationHistory();
  6361. } else {
  6362. this.totalCompanyList[num].quoteCode = "3";
  6363. this.totalCompanyList[num].msg = res.msg;
  6364. return;
  6365. }
  6366. });
  6367. },
  6368. //华泰报价
  6369. huatai(num,id){
  6370. let params = {
  6371. orderNo: this.orderno,
  6372. companyId: id,
  6373. agreementId: this.totalCompanyList[num].agreementId,
  6374. };
  6375. this.$api.letter.huataiquote(params).then(res => {
  6376. this.totalCompanyList[num].msg = res.msg;
  6377. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  6378. this.totalCompanyList[num].quoteCode = "4";
  6379. this.totalCompanyList[num].msg = res.msg;
  6380. return;
  6381. } else if ( res.data == null && res.msg.indexOf("交强险平台返回") > -1 && res.msg.indexOf(";终保日期") > -1 ) {//判断保司返回重复投保信息,进行默认赋值起终保日期,重新算费 后面联调需要调整
  6382. let time = res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  6383. this.jqstartDate = time;
  6384. this.jqendDate = this.oneYearPast1(time);
  6385. this.systartDate = time;
  6386. this.syendDate = this.oneYearPast1(time);
  6387. if (this.riskList.length > 0) {
  6388. for (let i = 0; i < this.riskList.length; i++) {
  6389. if (this.riskList[i].riskCode == "0507") {
  6390. this.riskList[i].startDate = time;
  6391. this.riskList[i].endDate = this.oneYearPast1(time);
  6392. } else if (this.riskList[i].riskCode == "0510") {
  6393. this.riskList[i].startDate = time;
  6394. this.riskList[i].endDate = this.oneYearPast1(time);
  6395. }
  6396. }
  6397. }
  6398. let param = {
  6399. userId: this.userId,
  6400. quoteno: this.quoteno,
  6401. orderNo: this.orderno,
  6402. carInfo: this.carInfo,
  6403. insuredPersonInfo: this.insuredPersonInfo,
  6404. ownerInfo: this.ownerInfo,
  6405. policyHolderInfo: this.policyHolderInfo,
  6406. kindList: this.kindList,
  6407. riskList: this.riskList,
  6408. vehicleAndVesselTax:this.vehicleAndVesselTaxForm
  6409. };
  6410. return this.$api.letter.generateOrder(param).then(res => {
  6411. this.huatai(num, id);
  6412. });
  6413. } else if (!!res.data) {
  6414. this.totalCompanyList[num].quoteCode = 200;
  6415. this.totalCompanyList[num].result = res.data;
  6416. this.QuotationHistory();
  6417. } else {
  6418. this.totalCompanyList[num].quoteCode = "3";
  6419. this.totalCompanyList[num].msg = res.msg;
  6420. return;
  6421. }
  6422. });
  6423. },
  6424. //紫金报价
  6425. zijin(num, id) {
  6426. let params = {
  6427. accidentalDrivingVo: this.accidentalDrivingVo,
  6428. orderNo: this.orderno,
  6429. companyId: id,
  6430. agreementId: this.totalCompanyList[num].agreementId,
  6431. coefficient:this.totalCompanyList[num].coefficient
  6432. };
  6433. this.$api.letter.zijinquote(params).then(res => {
  6434. this.totalCompanyList[num].msg = res.msg;
  6435. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  6436. this.totalCompanyList[num].quoteCode = "4";
  6437. this.totalCompanyList[num].msg = res.msg;
  6438. return;
  6439. } else if (
  6440. res.data == null &&
  6441. res.msg.indexOf("交强险平台返回") > -1 &&
  6442. res.msg.indexOf(";终保日期") > -1
  6443. ) {
  6444. let time =
  6445. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  6446. this.jqstartDate = time;
  6447. this.jqendDate = this.oneYearPast1(time);
  6448. this.systartDate = time;
  6449. this.syendDate = this.oneYearPast1(time);
  6450. if (this.riskList.length > 0) {
  6451. for (let i = 0; i < this.riskList.length; i++) {
  6452. if (this.riskList[i].riskCode == "0507") {
  6453. this.riskList[i].startDate = time;
  6454. this.riskList[i].endDate = this.oneYearPast1(time);
  6455. } else if (this.riskList[i].riskCode == "0510") {
  6456. this.riskList[i].startDate = time;
  6457. this.riskList[i].endDate = this.oneYearPast1(time);
  6458. }
  6459. }
  6460. }
  6461. let param = {
  6462. userId: this.userId,
  6463. quoteno: this.quoteno,
  6464. orderNo: this.orderno,
  6465. carInfo: this.carInfo,
  6466. insuredPersonInfo: this.insuredPersonInfo,
  6467. ownerInfo: this.ownerInfo,
  6468. policyHolderInfo: this.policyHolderInfo,
  6469. kindList: this.kindList,
  6470. riskList: this.riskList,
  6471. vehicleAndVesselTax:this.vehicleAndVesselTaxForm
  6472. };
  6473. return this.$api.letter.generateOrder(param).then(res => {
  6474. this.zijin(num, id);
  6475. });
  6476. } else if (!!res.data) {
  6477. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  6478. this.totalCompanyList[num].lastYearMsg = "";
  6479. let dat = res.data.warnMessageList;
  6480. dat.map(ele => {
  6481. this.totalCompanyList[num].lastYearMsg += ele + '<br>';
  6482. })
  6483. }
  6484. this.totalCompanyList[num].quoteCode = 200;
  6485. this.totalCompanyList[num].result = res.data;
  6486. this.QuotationHistory();
  6487. } else {
  6488. this.totalCompanyList[num].quoteCode = "3";
  6489. this.totalCompanyList[num].msg = res.msg;
  6490. return;
  6491. }
  6492. });
  6493. },
  6494. //永诚报价
  6495. yongcheng(num, id) {
  6496. this.iscCrownerShow=false
  6497. this.isInsuredShow=false
  6498. this.isApplicantShow=false
  6499. let accidentalDrivingVo = {};
  6500. if (this.accidentForm.code) {
  6501. let data = this.accidentDataList.find(
  6502. val => val.code == this.accidentForm.accidentType
  6503. );
  6504. accidentalDrivingVo = {
  6505. rideRiskCode: data.code ? data.code : "",
  6506. rideRiskName: data.name ? data.name : "",
  6507. quantity: this.accidentForm.fen ? this.accidentForm.fen : "",
  6508. };
  6509. }
  6510. let params = {
  6511. accidentalDrivingVo,
  6512. orderNo: this.orderno,
  6513. companyId: id,
  6514. cqryCdeJq: this.cqryCdeJq,
  6515. cqryCdeSy: this.cqryCdeSy,
  6516. renewalCodeJq: this.renewalCodeJq,
  6517. renewalCodeSy: this.renewalCodeSy,
  6518. agreementId: this.totalCompanyList[num].agreementId,
  6519. };
  6520. this.$api.letter.yongchengquote(params).then(res => {
  6521. this.totalCompanyList[num].msg = res.msg;
  6522. if (
  6523. res.data == null &&
  6524. res.msg.indexOf("车险平台返回") > -1 &&
  6525. res.msg.indexOf(";终保日期") > -1
  6526. ) {
  6527. let time =
  6528. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  6529. this.jqstartDate = time;
  6530. this.jqendDate = this.oneYearPast1(time);
  6531. if (this.riskList.length > 0) {
  6532. for (let i = 0; i < this.riskList.length; i++) {
  6533. if (this.riskList[i].riskCode == "0507") {
  6534. this.riskList[i].startDate = time;
  6535. this.riskList[i].endDate = this.oneYearPast1(time);
  6536. }
  6537. }
  6538. }
  6539. let param = {
  6540. userId: this.userId,
  6541. quoteno: this.quoteno,
  6542. orderNo: this.orderno,
  6543. carInfo: this.carInfo,
  6544. insuredPersonInfo: this.insuredPersonInfo,
  6545. ownerInfo: this.ownerInfo,
  6546. policyHolderInfo: this.policyHolderInfo,
  6547. kindList: this.kindList,
  6548. riskList: this.riskList,
  6549. vehicleAndVesselTax:this.vehicleAndVesselTaxForm
  6550. };
  6551. return this.$api.letter.generateOrder(param).then(res => {
  6552. this.yongcheng(num, id);
  6553. });
  6554. } else if (res.code == "200") {
  6555. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  6556. this.totalCompanyList[num].lastYearMsg = "";
  6557. let dat = res.data.warnMessageList;
  6558. dat.map(ele => {
  6559. this.totalCompanyList[num].lastYearMsg += ele + '<br>';
  6560. })
  6561. }
  6562. this.totalCompanyList[num].quoteCode = 200;
  6563. this.totalCompanyList[num].result = res.data;
  6564. this.QuotationHistory();
  6565. } else if (res.code == "101") {
  6566. this.totalCompanyList[num].quoteCode = "101";
  6567. this.totalCompanyList[num].msg = res.msg;
  6568. this.cqryCdeJq = res.data.cqryCdeJq;
  6569. this.cqryCdeSy = res.data.cqryCdeSy;
  6570. let jq = res.data.renewalCodeJq.replace(/[\r\n]/g, "");
  6571. let jqBase64 = `data:image/png;base64,${jq}`;
  6572. this.renewalCodeJqImg = jqBase64;
  6573. if (res.data.renewalCodeSy) {
  6574. let sy = res.data.renewalCodeSy.replace(/[\r\n]/g, "");
  6575. let syBase64 = `data:image/png;base64,${sy}`;
  6576. this.renewalCodeSyImg = syBase64;
  6577. }
  6578. this.renewalCodedialogVisible = true;
  6579. } else if (res.code == "500") {
  6580. // this.iscCrownerShow=res.msg.indexOf("车主地区自动解析失败")!=-1?true:false
  6581. // this.isInsuredShow=res.msg.indexOf("被保人地区自动解析失败")!=-1?true:false
  6582. // this.isApplicantShow=res.msg.indexOf("投保人地区自动解析失败")!=-1?true:false
  6583. // this.ownerInfo.provinceData= this.iscCrownerShow?[]: this.ownerInfo.provinceData
  6584. // this.insuredPersonInfo.provinceData= this.isInsuredShow?[]: this.insuredPersonInfo.provinceData
  6585. // this.policyHolderInfo.provinceData= this.isApplicantShow?[]: this.policyHolderInfo.provinceData
  6586. this.totalCompanyList[num].quoteCode = "3";
  6587. this.totalCompanyList[num].msg = res.msg;
  6588. }
  6589. else {
  6590. this.totalCompanyList[num].quoteCode = "3";
  6591. this.totalCompanyList[num].msg = res.msg;
  6592. return;
  6593. }
  6594. });
  6595. },
  6596. //国任报价
  6597. guoRen(num, id) {
  6598. let guoRenSpecialAgreementVo=[]
  6599. this.zijinengageList.forEach(val=>{
  6600. guoRenSpecialAgreementVo.push({
  6601. clauses:val.clauseName,
  6602. clausesContext:val.clauses,
  6603. clauseCode:val.clauseCode,
  6604. riskCode:val.riskCode,
  6605. riskName:val.riskName,
  6606. })
  6607. })
  6608. let accidentalDrivingVo = {};
  6609. if ( this.guoRenaccidentForm.goodsCode) {
  6610. accidentalDrivingVo = {
  6611. ...this.guoRenaccidentForm,
  6612. };
  6613. }
  6614. let params = {
  6615. accidentalDrivingVo,
  6616. orderNo: this.orderno,
  6617. companyId: id,
  6618. cqryCdeJq: this.cqryCdeJq,
  6619. cqryCdeSy: this.cqryCdeSy,
  6620. renewalCodeJq: this.renewalCodeJq,
  6621. renewalCodeSy: this.renewalCodeSy,
  6622. agreementId: this.totalCompanyList[num].agreementId,
  6623. guoRenSpecialAgreementVo
  6624. };
  6625. this.$api.letter.guorenquote(params).then(res => {
  6626. this.totalCompanyList[num].msg = res.msg;
  6627. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  6628. this.totalCompanyList[num].quoteCode = "4";
  6629. this.totalCompanyList[num].msg = res.msg;
  6630. return;
  6631. } else if (
  6632. res.data == null &&
  6633. res.msg.indexOf("车险平台返回") > -1 &&
  6634. res.msg.indexOf(";终保日期") > -1
  6635. ) {
  6636. let time =
  6637. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  6638. this.jqstartDate = time;
  6639. this.jqendDate = this.oneYearPast1(time);
  6640. this.systartDate = time;
  6641. this.syendDate = this.oneYearPast1(time);
  6642. if (this.riskList.length > 0) {
  6643. for (let i = 0; i < this.riskList.length; i++) {
  6644. if (this.riskList[i].riskCode == "0507") {
  6645. this.riskList[i].startDate = time;
  6646. this.riskList[i].endDate = this.oneYearPast1(time);
  6647. } else if (this.riskList[i].riskCode == "0510") {
  6648. this.riskList[i].startDate = time;
  6649. this.riskList[i].endDate = this.oneYearPast1(time);
  6650. }
  6651. }
  6652. }
  6653. let param = {
  6654. userId: this.userId,
  6655. quoteno: this.quoteno,
  6656. orderNo: this.orderno,
  6657. carInfo: this.carInfo,
  6658. insuredPersonInfo: this.insuredPersonInfo,
  6659. ownerInfo: this.ownerInfo,
  6660. policyHolderInfo: this.policyHolderInfo,
  6661. kindList: this.kindList,
  6662. riskList: this.riskList,
  6663. vehicleAndVesselTax:this.vehicleAndVesselTaxForm
  6664. };
  6665. return this.$api.letter.generateOrder(param).then(res => {
  6666. this.guoRen(num, id);
  6667. });
  6668. } else if (res.code == "200") {
  6669. if ( res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  6670. this.totalCompanyList[num].lastYearMsg = "";
  6671. let dat = res.data.warnMessageList;
  6672. dat.map(ele => {
  6673. this.totalCompanyList[num].lastYearMsg += ele + '<br>';
  6674. })
  6675. }
  6676. this.totalCompanyList[num].quoteCode = 200;
  6677. this.totalCompanyList[num].result = res.data;
  6678. this.QuotationHistory();
  6679. } else if (res.code == "101") {
  6680. this.totalCompanyList[num].quoteCode = "101";
  6681. this.totalCompanyList[num].msg = res.msg;
  6682. this.cqryCdeJq = res.data.cqryCdeJq;
  6683. this.cqryCdeSy = res.data.cqryCdeSy;
  6684. let jq = res.data.renewalCodeJq.replace(/[\r\n]/g, "");
  6685. let jqBase64 = `data:image/png;base64,${jq}`;
  6686. this.renewalCodeJqImg = jqBase64;
  6687. if (res.data.renewalCodeSy) {
  6688. let sy = res.data.renewalCodeSy.replace(/[\r\n]/g, "");
  6689. let syBase64 = `data:image/png;base64,${sy}`;
  6690. this.renewalCodeSyImg = syBase64;
  6691. }
  6692. this.renewalCodedialogVisible = true;
  6693. } else {
  6694. this.totalCompanyList[num].quoteCode = "3";
  6695. this.totalCompanyList[num].msg = res.msg;
  6696. return;
  6697. }
  6698. });
  6699. },
  6700. //渤海报价
  6701. bohai(num, id) {
  6702. let accidentalDrivingVo = [];
  6703. if ( this.boHaiaccidentForm.packageCode) {
  6704. accidentalDrivingVo=[{
  6705. packageCode:this.boHaiaccidentForm.packageCode,
  6706. productCode:this.boHaiaccidentDataList.find(e=>e.packageCode==this.boHaiaccidentForm.packageCode).productCode,
  6707. copies:this.boHaiaccidentForm.copies,
  6708. }]
  6709. }
  6710. let params = {
  6711. accidentalDrivingVo,
  6712. orderNo: this.orderno,
  6713. companyId: id,
  6714. cqryCdeJq: this.cqryCdeJq,
  6715. cqryCdeSy: this.cqryCdeSy,
  6716. renewalCodeJq: this.renewalCodeJq,
  6717. renewalCodeSy: this.renewalCodeSy,
  6718. agreementId: this.totalCompanyList[num].agreementId,
  6719. };
  6720. this.$api.letter.bohaiquote(params).then(res => {
  6721. this.totalCompanyList[num].msg = res.msg;
  6722. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  6723. this.totalCompanyList[num].quoteCode = "4";
  6724. this.totalCompanyList[num].msg = res.msg;
  6725. return;
  6726. } else if (
  6727. res.data == null &&
  6728. res.msg.indexOf("车险平台返回") > -1 &&
  6729. res.msg.indexOf(";终保日期") > -1
  6730. ) {
  6731. let time =
  6732. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  6733. this.jqstartDate = time;
  6734. this.jqendDate = this.oneYearPast1(time);
  6735. this.systartDate = time;
  6736. this.syendDate = this.oneYearPast1(time);
  6737. if (this.riskList.length > 0) {
  6738. for (let i = 0; i < this.riskList.length; i++) {
  6739. if (this.riskList[i].riskCode == "0507") {
  6740. this.riskList[i].startDate = time;
  6741. this.riskList[i].endDate = this.oneYearPast1(time);
  6742. } else if (this.riskList[i].riskCode == "0510") {
  6743. this.riskList[i].startDate = time;
  6744. this.riskList[i].endDate = this.oneYearPast1(time);
  6745. }
  6746. }
  6747. }
  6748. let param = {
  6749. userId: this.userId,
  6750. quoteno: this.quoteno,
  6751. orderNo: this.orderno,
  6752. carInfo: this.carInfo,
  6753. insuredPersonInfo: this.insuredPersonInfo,
  6754. ownerInfo: this.ownerInfo,
  6755. policyHolderInfo: this.policyHolderInfo,
  6756. kindList: this.kindList,
  6757. riskList: this.riskList,
  6758. vehicleAndVesselTax:this.vehicleAndVesselTaxForm
  6759. };
  6760. return this.$api.letter.generateOrder(param).then(res => {
  6761. this.bohai(num, id);
  6762. });
  6763. } else if (res.code == "200") {
  6764. if ( res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  6765. this.totalCompanyList[num].lastYearMsg = "";
  6766. let dat = res.data.warnMessageList;
  6767. dat.map(ele => {
  6768. this.totalCompanyList[num].lastYearMsg += ele + '<br>';
  6769. })
  6770. }
  6771. this.totalCompanyList[num].quoteCode = 200;
  6772. this.totalCompanyList[num].result = res.data;
  6773. this.QuotationHistory();
  6774. } else if (res.code == "101") {
  6775. this.totalCompanyList[num].quoteCode = "101";
  6776. this.totalCompanyList[num].msg = res.msg;
  6777. this.cqryCdeJq = res.data.cqryCdeJq;
  6778. this.cqryCdeSy = res.data.cqryCdeSy;
  6779. let jq = res.data.renewalCodeJq.replace(/[\r\n]/g, "");
  6780. let jqBase64 = `data:image/png;base64,${jq}`;
  6781. this.renewalCodeJqImg = jqBase64;
  6782. if (res.data.renewalCodeSy) {
  6783. let sy = res.data.renewalCodeSy.replace(/[\r\n]/g, "");
  6784. let syBase64 = `data:image/png;base64,${sy}`;
  6785. this.renewalCodeSyImg = syBase64;
  6786. }
  6787. this.renewalCodedialogVisible = true;
  6788. } else {
  6789. this.totalCompanyList[num].quoteCode = "3";
  6790. this.totalCompanyList[num].msg = res.msg;
  6791. return;
  6792. }
  6793. });
  6794. },
  6795. // 爬虫对接
  6796. quoteInsurance(num, id, namesimple, apiType) {
  6797. let api = apiType == 2 ? "pythonquote" : "anshengquote";
  6798. let ccidenttype=this.totalCompanyList[num].cnName;
  6799. let params = {
  6800. accidentalDrivingVo:this[ccidenttype+'accidentalDrivingVo'],
  6801. orderNo: this.orderno,
  6802. companyId: id,
  6803. agreementId: this.totalCompanyList[num].agreementId,
  6804. };
  6805. if(namesimple=='中国人寿'&& this.lastCompanyId){
  6806. params.discount=this.totalCompanyList[num].discount
  6807. params.lastCompanyId=this.lastCompanyId
  6808. }
  6809. this.$api.letter[api](params).then(res => {
  6810. this.totalCompanyList[num].msg = res.msg;
  6811. switch (namesimple) {
  6812. case '安盛天平':
  6813. case '中国人寿':
  6814. case '恒邦财险':
  6815. case '华农财险':
  6816. case '太平财险':
  6817. if (!!res.data) {
  6818. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  6819. this.totalCompanyList[num].lastYearMsg = "";
  6820. let dat = res.data.warnMessageList;
  6821. dat.map(ele => {
  6822. this.totalCompanyList[num].lastYearMsg += ele + '<br>';
  6823. })
  6824. }
  6825. if(res.data.predictInfo&& res.data.predictInfo.length > 0){
  6826. this.totalCompanyList[num].predictInfo=res.data.predictInfo
  6827. }
  6828. this.totalCompanyList[num].quoteCode = 200;
  6829. this.totalCompanyList[num].result = res.data;
  6830. if(namesimple=='中国人寿'&& res.data.companyId){
  6831. this.lastCompanyId = res.data.companyId;
  6832. }
  6833. this.QuotationHistory();
  6834. } else {
  6835. this.totalCompanyList[num].quoteCode = "3";
  6836. this.totalCompanyList[num].msg = res.msg;
  6837. return;
  6838. }
  6839. break;
  6840. case '众安财险':
  6841. if (!!res.data) {
  6842. if(res.data.tips=='需要验车'){
  6843. this.$notify.error({
  6844. title: '通融单',
  6845. duration: 0,
  6846. dangerouslyUseHTMLString: true,
  6847. message: `<div> ${
  6848. res.data.warnMessageList.map(item=>{
  6849. return `<p>${
  6850. item}</p>`
  6851. }).join('')}
  6852. </div>`
  6853. });
  6854. }
  6855. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  6856. this.totalCompanyList[num].lastYearMsg = "";
  6857. let dat = res.data.warnMessageList;
  6858. dat.map(ele => {
  6859. this.totalCompanyList[num].lastYearMsg += ele + '<br>';
  6860. })
  6861. }
  6862. this.totalCompanyList[num].quoteCode = 200;
  6863. this.totalCompanyList[num].result = res.data;
  6864. this.QuotationHistory();
  6865. } else {
  6866. this.totalCompanyList[num].quoteCode = "3";
  6867. this.totalCompanyList[num].msg = res.msg;
  6868. return;
  6869. }
  6870. break;
  6871. default:
  6872. break;
  6873. }
  6874. });
  6875. },
  6876. //安盛天平
  6877. ansheng(num, id, namesimple) {
  6878. this.quoteInsurance(num, id, namesimple, this.totalCompanyList[num].apiType);
  6879. },
  6880. //众安
  6881. zhongan(num, id, namesimple) {
  6882. this.quoteInsurance(num, id, namesimple, this.totalCompanyList[num].apiType);
  6883. },
  6884. //人寿
  6885. renshou(num, id, namesimple) {
  6886. this.quoteInsurance(num, id, namesimple, this.totalCompanyList[num].apiType);
  6887. },
  6888. //恒邦
  6889. hengbang(num, id, namesimple) {
  6890. this.quoteInsurance(num, id, namesimple, this.totalCompanyList[num].apiType);
  6891. },
  6892. //太平
  6893. taiping(num, id, namesimple) {
  6894. this.quoteInsurance(num, id, namesimple, this.totalCompanyList[num].apiType);
  6895. },
  6896. //华农
  6897. huanong(num, id, namesimple) {
  6898. this.quoteInsurance(num, id, namesimple, this.totalCompanyList[num].apiType);
  6899. },
  6900. // 爬虫对接
  6901. qoutedetail(companyId) {
  6902. let params = {
  6903. companyId: companyId
  6904. };
  6905. this.$api.letter.getByCompanyId(params).then(res => {
  6906. if (res.code == "200") {
  6907. var data = res.data;
  6908. data.kindinfo.map((ele, index) => {
  6909. switch (ele.kindCode) {
  6910. case "A":
  6911. ele.amount = "投保";
  6912. break;
  6913. case "D4":
  6914. case "SY_FJ_YBW2":
  6915. ele.unitAmount = this.toChinesNum(ele.unitAmount);
  6916. break;
  6917. case "MJ1":
  6918. case "MJ2":
  6919. case "MJ3":
  6920. case "MJ4":
  6921. ele.deductibleRate = ele.deductibleRate + "%";
  6922. break;
  6923. default:
  6924. ele.amount = this.toChinesNum(ele.amount);
  6925. }
  6926. return ele;
  6927. });
  6928. this.queryOrders = data;
  6929. //赋值费用信息
  6930. // this.feeDetailInfo=data.orderFeeResult;
  6931. }
  6932. });
  6933. this.$refs.detailsDialog.setBackupVisible(true)
  6934. },
  6935. imageUpload() {
  6936. this.imageUploaddialogVisible = true;
  6937. },
  6938. cancelorder(item) {
  6939. this.$api.letter.zijincancelorder({ companyId: item.id }).then(res => {
  6940. if(res.code==200){
  6941. this.$message({
  6942. message: res.msg,
  6943. type: 'success'
  6944. });
  6945. this.QuotationHistory()
  6946. }
  6947. })
  6948. },
  6949. imageEcho(quotenos) {
  6950. //影像查询
  6951. this.$api.letter.findByQuoteNo(quotenos)
  6952. .then(res => {
  6953. if (res.code == "200") {
  6954. this.imageList1 = [];
  6955. this.imageList2 = [];
  6956. this.imageList3 = [];
  6957. this.imageList4 = [];
  6958. this.imageList5 = [];
  6959. this.imgList1 = [];
  6960. this.imgList2 = [];
  6961. this.imgList3 = [];
  6962. this.imgList4 = [];
  6963. this.imgList5 = [];
  6964. this.imgList6 = [];
  6965. this.imgList7 = [];
  6966. this.imgList8 = [];
  6967. this.imgList9 = [];
  6968. this.imgList10 = [];
  6969. this.imgList11 = [];
  6970. Object.keys(res.data).forEach((keys) => {
  6971. if (res.data[keys].url) {
  6972. res.data[keys].url = process.env.BASE_URL + res.data[keys].url;
  6973. switch (keys) {
  6974. case 'C01':
  6975. this.imageList1.push({
  6976. imageId: res.data[keys].imageId,
  6977. imageType: res.data[keys].imageType,
  6978. })
  6979. this.imgList1.push(res.data[keys]);
  6980. break;
  6981. case 'D01':
  6982. this.imageList1.push({
  6983. imageId: res.data[keys].imageId,
  6984. imageType: res.data[keys].imageType,
  6985. })
  6986. this.imgList2.push(res.data[keys]);
  6987. break;
  6988. case 'C02':
  6989. this.imageList2.push({
  6990. imageId: res.data[keys].imageId,
  6991. imageType: res.data[keys].imageType,
  6992. })
  6993. this.imgList3.push(res.data[keys]);
  6994. break;
  6995. case 'D02':
  6996. this.imageList2.push({
  6997. imageId: res.data[keys].imageId,
  6998. imageType: res.data[keys].imageType,
  6999. })
  7000. this.imgList4.push(res.data[keys]);
  7001. break;
  7002. case 'C03':
  7003. this.imageList3.push({
  7004. imageId: res.data[keys].imageId,
  7005. imageType: res.data[keys].imageType,
  7006. })
  7007. this.imgList5.push(res.data[keys]);
  7008. break;
  7009. case 'D03':
  7010. this.imageList3.push({
  7011. imageId: res.data[keys].imageId,
  7012. imageType: res.data[keys].imageType,
  7013. })
  7014. this.imgList6.push(res.data[keys]);
  7015. break;
  7016. case 'C04':
  7017. this.imageList4.push({
  7018. imageId: res.data[keys].imageId,
  7019. imageType: res.data[keys].imageType,
  7020. })
  7021. this.imgList7.push(res.data[keys]);
  7022. break;
  7023. case 'D04':
  7024. this.imageList4.push({
  7025. imageId: res.data[keys].imageId,
  7026. imageType: res.data[keys].imageType,
  7027. })
  7028. this.imgList8.push(res.data[keys]);
  7029. break;
  7030. case 'XC00':
  7031. this.imageList5.push({
  7032. imageId: res.data[keys].imageId,
  7033. imageType: res.data[keys].imageType,
  7034. })
  7035. this.imgList9.push(res.data[keys]);
  7036. break;
  7037. case 'GC00':
  7038. this.imageList5.push({
  7039. imageId: res.data[keys].imageId,
  7040. imageType: res.data[keys].imageType,
  7041. })
  7042. this.imgList10.push(res.data[keys]);
  7043. break;
  7044. case 'GX00':
  7045. this.imageList5.push({
  7046. imageId: res.data[keys].imageId,
  7047. imageType: res.data[keys].imageType,
  7048. })
  7049. this.imgList11.push(res.data[keys]);
  7050. break;
  7051. default:
  7052. break;
  7053. }
  7054. }
  7055. });
  7056. } else {
  7057. this.$message({ message: res.msg, type: "info" });
  7058. }
  7059. });
  7060. },
  7061. hbsubmitdialog(data) {
  7062. if (this.imageList1.length == 0 && this.imageList2.length == 0) {
  7063. this.$message({ message: "影像不全,先上传影像", type: "error", });
  7064. return;
  7065. }
  7066. this.companyId = data.result.companyId;
  7067. this.apiType = data.apiType;
  7068. this.hbsubmitdialogVisible = true;
  7069. this.contributingState=false
  7070. if(data.namesimple=='紫金财险'){
  7071. this.$api.letter.zijinqueryClauseData
  7072. ({ companyId: this.companyId }).then(res => {
  7073. this.zijinengageListData = res.data;
  7074. });
  7075. }
  7076. if(data.namesimple=='华泰财险'){
  7077. this.zijinengageList=[]
  7078. this.$api.letter.huataiqueryClauseData({ companyId: this.companyId }).then(res => {
  7079. res.data.forEach(val=>{
  7080. val.clauseCode=val.engageCode
  7081. val.clauseName=val.engageTitle
  7082. val.clauseContent=val.engageDetail
  7083. val.clauses=val.engageDetail
  7084. });
  7085. this.zijinengageListData = res.data;
  7086. this.zijinengageListData.forEach(val=>{
  7087. this.$nextTick(()=>{
  7088. if(val.optType=='2'){
  7089. this.zijinengageList.push(val)
  7090. this.$refs.expandTablePro.toggleRowSelection(val,true);
  7091. }
  7092. })
  7093. })
  7094. });
  7095. }
  7096. else{
  7097. this.zijinengageListData = []
  7098. }
  7099. // switch (data.namesimple) {
  7100. // case "紫金财险":
  7101. // this.$api.letter.zijinqueryClauseData({ companyId: this.companyId }).then(res => {
  7102. // this.zijinengageListData = res.data;
  7103. // });
  7104. // break;
  7105. // default:
  7106. // break;
  7107. // }
  7108. },
  7109. hbsubmit() {
  7110. this.hbsubmitdialogVisible = false;
  7111. this.contributingState=false
  7112. this.$api.letter.getByCompanyId({ companyId: this.companyId }).then(async res => {
  7113. if (res.code == 200) {
  7114. var data = res.data;
  7115. this.queryOrders = data;
  7116. const loading = this.$loading({
  7117. lock: true,
  7118. text: "Loading",
  7119. spinner: "el-icon-loading",
  7120. background: "rgba(0, 0, 0, 0.7)"
  7121. });
  7122. switch (this.queryOrders.inscompany) {
  7123. case "永安财险":
  7124. let api = "";
  7125. api = this.apiType == 2 ? "pythonsubmitImage" : "insyongansubmitImage"
  7126. await this.$api.letter[api]({
  7127. companyId: this.companyId
  7128. })
  7129. .then(res => {
  7130. if (res.code == "200") {
  7131. var _this = this;
  7132. let api1 = "";
  7133. api1 = this.apiType == 2 ? "pythonaudit" : "yonganaudit"
  7134. this.$api.letter[api1]({
  7135. companyId: this.companyId,
  7136. })
  7137. .then(res => {
  7138. var _this = this;
  7139. if (res.code == "200") {
  7140. loading.close();
  7141. this.$message({
  7142. message: "核保成功",
  7143. type: "success"
  7144. });
  7145. this.QuotationHistory();
  7146. _this.$api.letter.getByCompanyId({ companyId: this.companyId }).then(res => {
  7147. _this.orderstatus = res.data.orderstatus; //订单状态
  7148. _this.underwritingdialogVisible = true;
  7149. let indexid = this.totalCompanyList.findIndex(item => item.namesimple == this.queryOrders.inscompany);
  7150. this.totalCompanyList[indexid].orderstatus = res.data.orderstatus;
  7151. });
  7152. } else {
  7153. loading.close();
  7154. this.$message({
  7155. showClose: true,
  7156. message: this.queryOrders.inscompany + "提核--:" + res.msg,
  7157. type: "error",
  7158. duration: 0
  7159. });
  7160. }
  7161. });
  7162. } else {
  7163. this.$message({
  7164. message: this.queryOrders.inscompany + "影像:" + res.msg,
  7165. type: "error",
  7166. duration: 7000
  7167. });
  7168. loading.close();
  7169. }
  7170. });
  7171. break;
  7172. case "中煤财险":
  7173. await this.$api.letter
  7174. .insZhongmeisubmitImage({
  7175. companyId: this.companyId
  7176. })
  7177. .then(res => {
  7178. if (res.code == "200") {
  7179. var _this = this;
  7180. _this.$api.letter
  7181. .Zhongmeiaudit({
  7182. companyId: this.companyId,
  7183. jqappoint: "",
  7184. syappoint: ""
  7185. })
  7186. .then(res => {
  7187. if (res.code == "200") {
  7188. loading.close();
  7189. _this.$message({
  7190. message: "核保成功",
  7191. type: "success"
  7192. });
  7193. this.QuotationHistory();
  7194. _this.$api.letter.getByCompanyId({ companyId: this.companyId }).then(res => {
  7195. _this.orderstatus = res.data.orderstatus; //订单状态
  7196. _this.underwritingdialogVisible = true;
  7197. let indexid = this.totalCompanyList.findIndex(item => item.namesimple == this.queryOrders.inscompany);
  7198. this.totalCompanyList[indexid].orderstatus = res.data.orderstatus;
  7199. });
  7200. } else {
  7201. loading.close();
  7202. _this.$message({
  7203. showClose: true,
  7204. message: this.queryOrders.inscompany + "提核--:" + res.msg,
  7205. type: "error",
  7206. duration: 0
  7207. });
  7208. _this.$api.letter.getByCompanyId({ companyId: this.companyId }).then(res => {
  7209. _this.orderstatus = res.data.orderstatus; //订单状态
  7210. });
  7211. }
  7212. });
  7213. } else {
  7214. this.$message({
  7215. message: this.queryOrders.inscompany + "影像--:" + res.msg,
  7216. type: "error",
  7217. duration: 7000
  7218. });
  7219. loading.close();
  7220. }
  7221. });
  7222. break;
  7223. case "华泰财险":
  7224. await this.$api.letter
  7225. .insHuataisubmitImage({
  7226. companyId: this.companyId
  7227. })
  7228. .then(res => {
  7229. if (res.code == "200") {
  7230. var _this = this;
  7231. let engageList=[]
  7232. this.zijinengageList.forEach(val=>{
  7233. engageList.push({
  7234. engageCode:val.clauseCode,
  7235. engageDetail:val.clauses,
  7236. engageTitle:val.clauseName,
  7237. riskCode:val.riskCode
  7238. })
  7239. })
  7240. _this.$api.letter
  7241. .huataiaudit({
  7242. companyId: this.companyId,
  7243. engageList
  7244. })
  7245. .then(res => {
  7246. if (res.code == "200") {
  7247. loading.close();
  7248. _this.$message({
  7249. message: "核保成功",
  7250. type: "success"
  7251. });
  7252. this.QuotationHistory();
  7253. _this.$api.letter.getByCompanyId({ companyId: this.companyId }).then(res => {
  7254. _this.orderstatus = res.data.orderstatus; //订单状态
  7255. _this.underwritingdialogVisible = true;
  7256. let indexid = this.totalCompanyList.findIndex(item => item.namesimple == this.queryOrders.inscompany);
  7257. this.totalCompanyList[indexid].orderstatus = res.data.orderstatus;
  7258. });
  7259. } else {
  7260. loading.close();
  7261. _this.$message({
  7262. showClose: true,
  7263. message: this.queryOrders.inscompany + "提核--:" + res.msg,
  7264. type: "error",
  7265. duration: 0
  7266. });
  7267. _this.$api.letter.getByCompanyId({ companyId: this.companyId }).then(res => {
  7268. _this.orderstatus = res.data.orderstatus; //订单状态
  7269. });
  7270. }
  7271. });
  7272. } else {
  7273. this.$message({
  7274. message: this.queryOrders.inscompany + "影像--:" + res.msg,
  7275. type: "error",
  7276. duration: 7000
  7277. });
  7278. loading.close();
  7279. }
  7280. });
  7281. break;
  7282. case "紫金财险":
  7283. await this.$api.letter
  7284. .zijinsubmitImage({
  7285. companyId: this.companyId
  7286. })
  7287. .then(res => {
  7288. if (res.code == "200") {
  7289. var _this = this;
  7290. _this.$api.letter
  7291. .zijinaudit({
  7292. companyId: this.companyId,
  7293. engageList: this.zijinengageList,
  7294. })
  7295. .then(res => {
  7296. if (res.code == "200") {
  7297. loading.close();
  7298. _this.$message({
  7299. message: "核保成功",
  7300. type: "success"
  7301. });
  7302. this.QuotationHistory();
  7303. _this.$api.letter.getByCompanyId({ companyId: this.companyId }).then(res => {
  7304. _this.orderstatus = res.data.orderstatus; //订单状态
  7305. _this.underwritingdialogVisible = true;
  7306. let indexid = this.totalCompanyList.findIndex(item => item.namesimple == this.queryOrders.inscompany);
  7307. this.totalCompanyList[indexid].orderstatus = res.data.orderstatus;
  7308. });
  7309. } else {
  7310. loading.close();
  7311. _this.$message({
  7312. showClose: true,
  7313. dangerouslyUseHTMLString: true,
  7314. message: this.queryOrders.inscompany + "提核--:" + res.msg,
  7315. type: "error",
  7316. duration: 0
  7317. });
  7318. _this.$api.letter.getByCompanyId({ companyId: this.companyId }).then(res => {
  7319. _this.orderstatus = res.data.orderstatus; //订单状态
  7320. });
  7321. }
  7322. });
  7323. } else {
  7324. this.$message({
  7325. message: this.queryOrders.inscompany + "影像--:" + res.msg,
  7326. type: "error",
  7327. duration: 7000
  7328. });
  7329. loading.close();
  7330. }
  7331. });
  7332. break;
  7333. case "国任财险":
  7334. await this.$api.letter
  7335. .insguorensubmitImage({
  7336. companyId: this.companyId
  7337. })
  7338. .then(res => {
  7339. if (res.code == "200") {
  7340. var _this = this;
  7341. _this.$api.letter
  7342. .gunrenaudit({
  7343. companyId: this.companyId
  7344. })
  7345. .then(res => {
  7346. if (res.code == "200") {
  7347. loading.close();
  7348. _this.cqryCdeJq = "";
  7349. _this.cqryCdeSy = "";
  7350. _this.renewalCodeJq = "";
  7351. _this.renewalCodeSy = "";
  7352. this.$message({
  7353. message: "核保成功",
  7354. type: "success"
  7355. });
  7356. this.QuotationHistory();
  7357. _this.$api.letter.getByCompanyId({ companyId: this.companyId }).then(res => {
  7358. _this.orderstatus = res.data.orderstatus; //订单状态
  7359. _this.underwritingdialogVisible = true;
  7360. let indexid = this.totalCompanyList.findIndex(item => item.namesimple == this.queryOrders.inscompany);
  7361. this.totalCompanyList[indexid].orderstatus = res.data.orderstatus;
  7362. });
  7363. } else {
  7364. loading.close();
  7365. this.$message({
  7366. showClose: true,
  7367. message: res.msg,
  7368. type: "error",
  7369. duration: 0
  7370. });
  7371. }
  7372. });
  7373. } else {
  7374. loading.close();
  7375. this.$message({
  7376. message: res.msg,
  7377. type: "error",
  7378. duration: 7000
  7379. });
  7380. }
  7381. });
  7382. break;
  7383. case "渤海财险":
  7384. await this.$api.letter
  7385. .insbohaisubmitImage({
  7386. companyId: this.companyId
  7387. })
  7388. .then(res => {
  7389. if (res.code == "200") {
  7390. var _this = this;
  7391. _this.$api.letter
  7392. .bohaiaudit({
  7393. companyId: this.companyId
  7394. })
  7395. .then(res => {
  7396. if (res.code == "200") {
  7397. loading.close();
  7398. _this.cqryCdeJq = "";
  7399. _this.cqryCdeSy = "";
  7400. _this.renewalCodeJq = "";
  7401. _this.renewalCodeSy = "";
  7402. this.$message({
  7403. message: "核保成功",
  7404. type: "success"
  7405. });
  7406. this.QuotationHistory();
  7407. _this.$api.letter.getByCompanyId({ companyId: this.companyId }).then(res => {
  7408. _this.orderstatus = res.data.orderstatus; //订单状态
  7409. _this.underwritingdialogVisible = true;
  7410. let indexid = this.totalCompanyList.findIndex(item => item.namesimple == this.queryOrders.inscompany);
  7411. this.totalCompanyList[indexid].orderstatus = res.data.orderstatus;
  7412. });
  7413. } else {
  7414. loading.close();
  7415. this.$message({
  7416. showClose: true,
  7417. message: res.msg,
  7418. type: "error",
  7419. duration: 0
  7420. });
  7421. }
  7422. });
  7423. } else {
  7424. loading.close();
  7425. this.$message({
  7426. message: res.msg,
  7427. type: "error",
  7428. duration: 7000
  7429. });
  7430. }
  7431. });
  7432. break;
  7433. case "恒邦财险":
  7434. case "华农财险":
  7435. case "太平财险":
  7436. case "安盛天平":
  7437. case "众安财险":
  7438. case "中国人寿":
  7439. let hengbangapi = "";
  7440. hengbangapi = this.apiType == 2 ? "pythonsubmitImage" : "anshengsubmitImage"
  7441. await this.$api.letter[hengbangapi]({
  7442. subOrderNo: this.companyId
  7443. })
  7444. .then(res => {
  7445. if (res.code == "200") {
  7446. var _this = this;
  7447. let hengbangapi1 = "";
  7448. hengbangapi1 = this.apiType == 2 ? "pythonaudit" : "anshengaudit"
  7449. _this.$api.letter
  7450. [hengbangapi1]({
  7451. subOrderNo: this.companyId,
  7452. })
  7453. .then(res => {
  7454. if (res.code == "200") {
  7455. loading.close();
  7456. this.$message({
  7457. message: "核保成功",
  7458. type: "success"
  7459. });
  7460. this.QuotationHistory();
  7461. _this.$api.letter.getByCompanyId({ companyId: this.companyId }).then(res => {
  7462. _this.orderstatus = res.data.orderstatus; //订单状态
  7463. _this.underwritingdialogVisible = true;
  7464. let indexid = this.totalCompanyList.findIndex(item => item.namesimple == this.queryOrders.inscompany);
  7465. this.totalCompanyList[indexid].orderstatus = res.data.orderstatus;
  7466. });
  7467. } else {
  7468. loading.close();
  7469. this.$message({
  7470. showClose: true,
  7471. dangerouslyUseHTMLString: true,
  7472. message: this.queryOrders.inscompany + "提核--:" + (res.msg).replace(/\n/g,"<br><br>"),
  7473. type: "error",
  7474. duration: 0
  7475. });
  7476. }
  7477. });
  7478. } else {
  7479. loading.close();
  7480. this.$message({
  7481. message: this.queryOrders.inscompany + "影像--:" + res.msg,
  7482. type: "error",
  7483. duration: 7000
  7484. });
  7485. }
  7486. });
  7487. break;
  7488. case "永诚财险":
  7489. await this.$api.letter
  7490. .insyongchengsubmitImage({
  7491. companyId: this.companyId
  7492. })
  7493. .then(res => {
  7494. if (res.code == "200") {
  7495. var _this = this;
  7496. _this.$api.letter
  7497. .yongchengaudit({
  7498. companyId: this.companyId
  7499. })
  7500. .then(res => {
  7501. if (res.code == "200") {
  7502. loading.close();
  7503. _this.cqryCdeJq = "";
  7504. _this.cqryCdeSy = "";
  7505. _this.renewalCodeJq = "";
  7506. _this.renewalCodeSy = "";
  7507. this.$message({
  7508. message: "核保成功",
  7509. type: "success"
  7510. });
  7511. this.QuotationHistory();
  7512. _this.$api.letter.getByCompanyId({ companyId: this.companyId }).then(res => {
  7513. _this.orderstatus = res.data.orderstatus; //订单状态
  7514. _this.underwritingdialogVisible = true;
  7515. let indexid = this.totalCompanyList.findIndex(item => item.namesimple == this.queryOrders.inscompany);
  7516. this.totalCompanyList[indexid].orderstatus = res.data.orderstatus;
  7517. });
  7518. } else {
  7519. loading.close();
  7520. this.$message({
  7521. showClose: true,
  7522. message: this.queryOrders.inscompany + "提核--:" + res.msg,
  7523. customClass: "customNotifyClass",
  7524. type: "error",
  7525. duration: 0
  7526. });
  7527. }
  7528. });
  7529. } else {
  7530. loading.close();
  7531. this.$message({
  7532. message: this.queryOrders.inscompany + "影像--:" + res.msg,
  7533. type: "error",
  7534. duration: 7000
  7535. });
  7536. }
  7537. });
  7538. break;
  7539. case "大家财险":
  7540. await this.$api.letter
  7541. .dajiasubmitImage({
  7542. companyId: this.companyId
  7543. })
  7544. .then(res => {
  7545. if (res.code == "200") {
  7546. var _this = this;
  7547. _this.$api.letter
  7548. .dajiaaudit({
  7549. companyId: this.companyId
  7550. })
  7551. .then(res => {
  7552. if (res.code == "200") {
  7553. loading.close();
  7554. _this.cqryCdeJq = "";
  7555. _this.cqryCdeSy = "";
  7556. _this.renewalCodeJq = "";
  7557. _this.renewalCodeSy = "";
  7558. this.$message({
  7559. message: "核保成功",
  7560. type: "success"
  7561. });
  7562. this.QuotationHistory();
  7563. _this.$api.letter.getByCompanyId({ companyId: this.companyId }).then(res => {
  7564. _this.orderstatus = res.data.orderstatus; //订单状态
  7565. _this.underwritingdialogVisible = true;
  7566. let indexid = this.totalCompanyList.findIndex(item => item.namesimple == this.queryOrders.inscompany);
  7567. this.totalCompanyList[indexid].orderstatus = res.data.orderstatus;
  7568. });
  7569. } else {
  7570. loading.close();
  7571. this.$message({
  7572. showClose: true,
  7573. message: this.queryOrders.inscompany + "提核--:" + res.msg,
  7574. customClass: "customNotifyClass",
  7575. type: "error",
  7576. duration: 0
  7577. });
  7578. }
  7579. });
  7580. } else {
  7581. loading.close();
  7582. this.$message({
  7583. message: this.queryOrders.inscompany + "影像--:" + res.msg,
  7584. type: "error",
  7585. duration: 7000
  7586. });
  7587. }
  7588. });
  7589. break;
  7590. }
  7591. }
  7592. });
  7593. },
  7594. //当前日期的次日
  7595. transformTime1() {
  7596. var date = new Date();
  7597. date.setFullYear(date.getFullYear());
  7598. date.setTime(date.getTime() + 24 * 60 * 60 * 1000);
  7599. var strYear = date.getFullYear();
  7600. var strDay = date.getDate();
  7601. var strMonth = date.getMonth() + 1;
  7602. var hh = date.getHours();
  7603. if (hh < 10) {
  7604. hh = "0" + hh;
  7605. }
  7606. if (strMonth < 10) {
  7607. strMonth = "0" + strMonth;
  7608. }
  7609. if (strDay < 10) {
  7610. strDay = "0" + strDay;
  7611. }
  7612. var datastr = strYear + "-" + strMonth + "-" + strDay + " " + "00:00:00";
  7613. return datastr;
  7614. },
  7615. //传入日期的次日
  7616. transformTime2(time) {
  7617. var date = new Date(time);
  7618. date.setFullYear(date.getFullYear());
  7619. date.setTime(date.getTime() + 24 * 60 * 60 * 1000); //一年后的前一天
  7620. var strYear = date.getFullYear();
  7621. var strDay = date.getDate();
  7622. var strMonth = date.getMonth() + 1;
  7623. var hh = date.getHours();
  7624. if (hh < 10) {
  7625. hh = "0" + hh;
  7626. }
  7627. if (strMonth < 10) {
  7628. strMonth = "0" + strMonth;
  7629. }
  7630. if (strDay < 10) {
  7631. strDay = "0" + strDay;
  7632. }
  7633. var datastr = strYear + "-" + strMonth + "-" + strDay + " " + "00:00:00";
  7634. return datastr;
  7635. },
  7636. //时间转换
  7637. transformTime(date) {
  7638. var d = new Date(date);
  7639. var strYear = d.getFullYear();
  7640. var strMonth = d.getMonth() + 1;
  7641. var strDay = d.getDate();
  7642. var hh = d.getHours();
  7643. var minutes = d.getMinutes(); // 分
  7644. var Seconds = d.getSeconds();
  7645. if (hh < 10) {
  7646. hh = "0" + hh;
  7647. }
  7648. if (minutes < 10) {
  7649. minutes = "0" + minutes;
  7650. }
  7651. if (Seconds < 10) {
  7652. Seconds = "0" + Seconds;
  7653. }
  7654. if (strMonth < 10) {
  7655. strMonth = "0" + strMonth;
  7656. }
  7657. if (strDay < 10) {
  7658. strDay = "0" + strDay;
  7659. }
  7660. var datetime =
  7661. strYear + "-" + strMonth + "-" + strDay + " " + hh + ":" + minutes + ":" + Seconds;
  7662. return datetime;
  7663. },
  7664. timeformat(date) {
  7665. var d = new Date(date);
  7666. var strYear = d.getFullYear();
  7667. var strMonth = d.getMonth() + 1;
  7668. var strDay = d.getDate();
  7669. var hh = d.getHours();
  7670. if (hh < 10) {
  7671. hh = "0" + hh;
  7672. }
  7673. if (strMonth < 10) {
  7674. strMonth = "0" + strMonth;
  7675. }
  7676. if (strDay < 10) {
  7677. strDay = "0" + strDay;
  7678. }
  7679. var datetime = strYear + "-" + strMonth + "-" + strDay;
  7680. return datetime;
  7681. },
  7682. oneYearPast1(time) {//明年减一秒
  7683. var date = new Date(time);
  7684. date.setSeconds(date.getSeconds() - 1);
  7685. date.setFullYear(date.getFullYear() + 1); //一年后
  7686. date.setTime(date.getTime()); //一年后的前一天
  7687. var strYear = date.getFullYear();
  7688. var strDay = date.getDate();
  7689. var strMonth = date.getMonth() + 1;
  7690. var hh = date.getHours();
  7691. var minutes = date.getMinutes(); // 分
  7692. var Seconds = date.getSeconds();
  7693. if (hh < 10) {
  7694. hh = "0" + hh;
  7695. }
  7696. if (minutes < 10) {
  7697. minutes = "0" + minutes;
  7698. }
  7699. if (Seconds < 10) {
  7700. Seconds = "0" + Seconds;
  7701. }
  7702. if (strMonth < 10) {
  7703. strMonth = "0" + strMonth;
  7704. }
  7705. if (strDay < 10) {
  7706. strDay = "0" + strDay;
  7707. }
  7708. var datastr =
  7709. strYear + "-" + strMonth + "-" + strDay + " " + hh + ":" + minutes + ":" + Seconds;
  7710. return datastr;
  7711. },
  7712. tbczcarShowChange() {
  7713. //投保人同车主
  7714. switch (this.tbczcarShow) {
  7715. case true:
  7716. this.policyHolderInfo = JSON.parse(JSON.stringify(this.ownerInfo));
  7717. break;
  7718. default:
  7719. for (let key in this.policyHolderInfo) {
  7720. this.policyHolderInfo[key] = "";
  7721. this.policyHolderInfo.provinceData = [];
  7722. this.selectedOptions2 = [];
  7723. }
  7724. }
  7725. },
  7726. bbczcarShowChange() {
  7727. //被保人同车主
  7728. switch (this.bbczcarShow) {
  7729. case true:
  7730. this.bbtbcarShow = false;
  7731. this.insuredPersonInfo = JSON.parse(JSON.stringify(this.ownerInfo));
  7732. break;
  7733. default:
  7734. for (let key in this.insuredPersonInfo) {
  7735. this.insuredPersonInfo[key] = "";
  7736. this.insuredPersonInfo.provinceData = [];
  7737. // this.selectedOptions3 = [];
  7738. }
  7739. }
  7740. },
  7741. bbtbcarShowChange() {
  7742. //被保人同投保人
  7743. switch (this.bbtbcarShow) {
  7744. case true:
  7745. this.bbczcarShow = false;
  7746. this.insuredPersonInfo = JSON.parse(
  7747. JSON.stringify(this.policyHolderInfo)
  7748. );
  7749. break;
  7750. default:
  7751. for (let key in this.insuredPersonInfo) {
  7752. this.insuredPersonInfo[key] = "";
  7753. this.insuredPersonInfo.provinceData = [];
  7754. }
  7755. }
  7756. },
  7757. //VIN查询
  7758. toChooseVin(cartype) {
  7759. if (cartype == "" || cartype == null) {
  7760. this.$message({
  7761. message: "请输入车架号",
  7762. type: "warning"
  7763. });
  7764. } else {
  7765. const loading = this.$loading({
  7766. lock: true,
  7767. text: "Loading",
  7768. spinner: "el-icon-loading",
  7769. background: "rgba(0, 0, 0, 0.7)"
  7770. });
  7771. this.$api.letter.insZhongmeiVIN(this.carInfo.frameNo).then(res => {
  7772. if (res.code == "200") {
  7773. this.reslist = res.data;
  7774. loading.close();
  7775. this.sbdmdialogVisible = true;
  7776. } else {
  7777. loading.close();
  7778. this.$message.error(res.msg);
  7779. }
  7780. });
  7781. }
  7782. },
  7783. // 撤销二维码
  7784. revokeCode(id){
  7785. this.$api.letter.getRevokeQrCode(id).then(res => {
  7786. if(res.code==200){
  7787. this.$message({
  7788. message: res.msg,
  7789. type: 'success'
  7790. });
  7791. this.QuotationHistory()
  7792. }
  7793. })
  7794. },
  7795. //品牌型号查询
  7796. toChooseVehicleType(cartype) {
  7797. if (cartype == "" || cartype == null) {
  7798. this.$message({
  7799. message: "请输入车型名称",
  7800. type: "warning"
  7801. });
  7802. } else {
  7803. const loading = this.$loading({
  7804. lock: true,
  7805. text: "Loading",
  7806. spinner: "el-icon-loading",
  7807. background: "rgba(0, 0, 0, 0.7)"
  7808. });
  7809. let param = {
  7810. modelName: cartype.replace(/[^u4e00-u9fa5|,]+/ig,'')
  7811. };
  7812. this.$api.letter.ModelsQuery(param).then(res => {
  7813. if (res.code == "200") {
  7814. loading.close();
  7815. this.reslist = res.data;
  7816. this.chexingdialogVisible = true;
  7817. } else {
  7818. loading.close();
  7819. this.$message.error(res.msg);
  7820. }
  7821. });
  7822. }
  7823. },
  7824. //车型列表双击选中事件
  7825. reslistCurrentChange(row, column, event) {
  7826. this.carInfo.brandName = row.brandCN; //品牌型号
  7827. this.carInfo.modelcname = row.modelName; //品牌型号
  7828. this.carInfo.caryear = row.marketYear; //年款
  7829. this.carInfo.seatCount = row.ratedPassengerCapacity; //座位数
  7830. this.carInfo.purchasePrice = row.replacementValue; //购置价
  7831. this.carInfo.modelCode = row.modelCode; //型号代码
  7832. this.carInfo.familyName = row.series; //系列
  7833. this.carInfo.enginedesc = row.displacement; //排量
  7834. this.carInfo.powertype = row.fuelType; //燃油种类
  7835. this.carInfo.powerScale = row.powerScale; //功率
  7836. this.chexingdialogVisible = false;
  7837. this.sbdmdialogVisible=false
  7838. },
  7839. //是否过户事件
  7840. transferFlagChange(e) {
  7841. if (e) {
  7842. this.transferDateShow = true;
  7843. this.carInfo.transferDate=this.carInfo.issueDate
  7844. } else {
  7845. this.transferDateShow = false;
  7846. this.carInfo.transferDate=""
  7847. }
  7848. },
  7849. //影像上传
  7850. drivingupload(file, imageIdList, imgurl, type) {
  7851. let that=this
  7852. let size=file.size / 1024 / 1024 < 5;
  7853. const isJPG = file.raw.type === 'image/jpeg'||file.raw.type === 'image/png';
  7854. if(!size){
  7855. this.$message.error('上传图片大小不能超过 5MB!')
  7856. this[imgurl]=[]
  7857. return false
  7858. }
  7859. if(!isJPG){
  7860. this.$message.error('上传图片只能是 JPG、PNG 格式!')
  7861. this[imgurl]=[]
  7862. return false
  7863. }
  7864. this[imgurl].push(file)
  7865. var file = file.raw;
  7866. const params = new FormData(); // 声明formData数据类型
  7867. params.append("multipartFile", file);
  7868. params.append("type", "image");
  7869. this.$api.letter.uploadFile(params).then(res => {
  7870. if (res.code == "200") {
  7871. if (this[imageIdList].some(v => v.imageType == type)) {
  7872. this[imageIdList].map(val => {
  7873. if (val.imageType == type) {
  7874. val.imageId = res.data.id;
  7875. }
  7876. })
  7877. } else {
  7878. this[imageIdList].push({
  7879. imageId: res.data.id,
  7880. imageType: type,
  7881. })
  7882. }
  7883. }
  7884. });
  7885. },
  7886. handleRemove1(file, imageIdList, imgList) {
  7887. this[imageIdList].map((ele, index) => {
  7888. if (file.imageId === ele.imageId) {
  7889. this[imageIdList].splice(index, 1);
  7890. }
  7891. return ele;
  7892. });
  7893. if (file.imageId) {
  7894. this[imgList].map((ele, index) => {
  7895. if (file.imageId === ele.imageId) {
  7896. this[imgList].splice(index, 1);
  7897. }
  7898. return ele;
  7899. });
  7900. } else {
  7901. this[imgList].map((ele, index) => {
  7902. if (file.uid === ele.uid) {
  7903. this[imgList].splice(index, 1);
  7904. }
  7905. return ele;
  7906. });
  7907. }
  7908. },
  7909.   compress(img, width, height, ratio) {
  7910.       var canvas, ctx, img64;
  7911.       canvas = document.createElement('canvas');
  7912.       canvas.width = width;
  7913.       canvas.height = height;
  7914.       ctx = canvas.getContext("2d");
  7915.       ctx.drawImage(img, 0, 0, width, height);
  7916.       img64 = canvas.toDataURL("image/jpeg", ratio);
  7917.       return img64;
  7918.  },
  7919.    base64ToFile(base64, fileName) {
  7920.       let data = base64.split(',');
  7921.       let type = data[0].match(/:(.*?);/)[1];
  7922.       // let suffix = type.split('/')[1];
  7923.       const bstr = window.atob(data[1]);
  7924.       let n = bstr.length
  7925.       const u8arr = new Uint8Array(n)
  7926.       while (n--) {
  7927.         u8arr[n] = bstr.charCodeAt(n)
  7928.       }
  7929.       // const file =  new File([u8arr], `${fileName}.${suffix}`, {
  7930.       const file =  new File([u8arr], `${fileName}`, {
  7931.         type: type
  7932.       })
  7933.       return file;
  7934.   },
  7935. carfrontChange(file) {
  7936. //选择行驶证正面
  7937. let that =this
  7938. let size=file.size / 1024 / 1024 < 5;
  7939. const isJPG = file.raw.type === 'image/jpeg'||file.raw.type === 'image/png';
  7940. if(!size){
  7941. this.$message.error('上传图片大小不能超过 5MB!')
  7942. return false
  7943. }
  7944. if(!isJPG){
  7945. this.$message.error('上传图片只能是 JPG、PNG 格式!')
  7946. return false
  7947. }
  7948. // let name=file.raw.name
  7949. //       var image = new Image();
  7950. //       image.src = window.URL.createObjectURL(file.raw);
  7951. //       that.carfrontImg =  image.src
  7952. //       image.onload = function(){
  7953. //         let aaa= that.base64ToFile(that.compress(image, 500, 400, 0.7),name)
  7954. // that.carfrontImg = image.src;
  7955. // const params = new FormData(); // 声明formData数据类型
  7956. // params.append("multipartFile", aaa);
  7957. // params.append("type", "image");
  7958. // that.$api.letter.uploadFile(params).then(res => {
  7959. // if (res.code == "200") {
  7960. // that.CarFrontFile = aaa;//文件流
  7961. // if (that.imageList1.some(v => v.imageType == 'C01')) {
  7962. // that.imageList1.map(val => {
  7963. // if (val.imageType == 'C01') {
  7964. // val.imageId = res.data.id;
  7965. // }
  7966. // })
  7967. // } else {
  7968. // that.imageList1.push({
  7969. // imageId: res.data.id,
  7970. // imageType: "C01",
  7971. // })
  7972. // }
  7973. // } else {
  7974. // that.$message({ message: res.msg, type: "warning" });
  7975. // }
  7976. // });
  7977. // }
  7978. var file = file.raw;
  7979. let files = window.URL.createObjectURL(file); //转临时路径
  7980. this.carfrontImg = files;
  7981. const params = new FormData(); // 声明formData数据类型
  7982. params.append("multipartFile", file);
  7983. params.append("type", "image");
  7984. this.$api.letter.uploadFile(params).then(res => {
  7985. if (res.code == "200") {
  7986. this.CarFrontFile = file;//文件流
  7987. if (this.imageList1.some(v => v.imageType == 'C01')) {
  7988. this.imageList1.map(val => {
  7989. if (val.imageType == 'C01') {
  7990. val.imageId = res.data.id;
  7991. }
  7992. })
  7993. } else {
  7994. this.imageList1.push({
  7995. imageId: res.data.id,
  7996. imageType: "C01",
  7997. })
  7998. }
  7999. } else {
  8000. this.$message({ message: res.msg, type: "warning" });
  8001. }
  8002. });
  8003. },
  8004. carbackChange(file) {
  8005. let that=this
  8006. let size=file.size / 1024 / 1024 < 2;
  8007. const isJPG = file.raw.type === 'image/jpeg'||file.raw.type === 'image/png';
  8008. if(!size){
  8009. this.$message.error('上传图片大小不能超过 5MB!')
  8010. return false
  8011. }
  8012. if(!isJPG){
  8013. this.$message.error('上传图片只能是 JPG、PNG 格式!')
  8014. return false
  8015. }
  8016. // let name=file.raw.name
  8017. //       var image = new Image();
  8018. //       image.src = window.URL.createObjectURL(file.raw);
  8019. //       image.onload = function(){
  8020. //         let aaa= that.base64ToFile(that.compress(image, 500, 400, 0.7),name)
  8021. // that.carbackImg = image.src;
  8022. // const params = new FormData(); // 声明formData数据类型
  8023. // params.append("multipartFile", aaa);
  8024. // params.append("type", "image");
  8025. // that.$api.letter.uploadFile(params).then(res => {
  8026. // if (res.code == "200") {
  8027. // that.CarBackFile = aaa;//文件流
  8028. // if (that.imageList1.some(v => v.imageType == 'D01')) {
  8029. // that.imageList1.map(val => {
  8030. // if (val.imageType == 'D01') {
  8031. // val.imageId = res.data.id;
  8032. // }
  8033. // })
  8034. // } else {
  8035. // that.imageList1.push({
  8036. // imageId: res.data.id,
  8037. // imageType: "D01",
  8038. // })
  8039. // }
  8040. // } else {
  8041. // that.$message({ message: res.msg, type: "warning" });
  8042. // }
  8043. // });
  8044. // }
  8045. //选择行驶证反面
  8046. var file = file.raw;
  8047. let files = window.URL.createObjectURL(file); //转临时路径
  8048. this.carbackImg = files;
  8049. const params = new FormData(); // 声明formData数据类型
  8050. params.append("multipartFile", file);
  8051. params.append("type", "image");
  8052. this.$api.letter.uploadFile(params).then(res => {
  8053. if (res.code == "200") {
  8054. this.CarBackFile = file;
  8055. if (this.imageList1.some(v => v.imageType == 'D01')) {
  8056. this.imageList1.map(val => {
  8057. if (val.imageType == 'D01') {
  8058. val.imageId = res.data.id;
  8059. }
  8060. })
  8061. } else {
  8062. this.imageList1.push({
  8063. imageId: res.data.id,
  8064. imageType: "D01",
  8065. })
  8066. }
  8067. } else {
  8068. this.$message({ message: res.msg, type: "warning" });
  8069. }
  8070. });
  8071. },
  8072. userfrontChange(file) {
  8073. let that =this
  8074. let size=file.size / 1024 / 1024 < 5;
  8075. const isJPG = file.raw.type === 'image/jpeg'||file.raw.type === 'image/png';
  8076. if(!size){
  8077. this.$message.error('上传图片大小不能超过 5MB!')
  8078. return false
  8079. }
  8080. if(!isJPG){
  8081. this.$message.error('上传图片只能是 JPG、PNG 格式!')
  8082. return false
  8083. }
  8084. // let name=file.raw.name
  8085. //       var image = new Image();
  8086. //       image.src = window.URL.createObjectURL(file.raw);
  8087. //       image.onload = function(){
  8088. //         let aaa= that.base64ToFile(that.compress(image, 500, 400, 0.7),name)
  8089. // that.userfrontImg = image.src;
  8090. // const params = new FormData(); // 声明formData数据类型
  8091. // params.append("multipartFile", aaa);
  8092. // params.append("type", "image");
  8093. // that.$api.letter.uploadFile(params).then(res => {
  8094. // if (res.code == "200") {
  8095. // let type = 'C0' + that.userIndex;
  8096. // if (that['imageList' + that.userIndex].some(v => v.imageType == type)) {
  8097. // that['imageList' + that.userIndex].map(val => {
  8098. // if (val.imageType == type) {
  8099. // val.imageId = res.data.id;
  8100. // }
  8101. // })
  8102. // } else {
  8103. // that['imageList' + that.userIndex].push({
  8104. // imageId: res.data.id,
  8105. // imageType: type,
  8106. // })
  8107. // }
  8108. // that[type + 'File'] = aaa;
  8109. // } else {
  8110. // that.$message({ message: res.msg, type: "warning" });
  8111. // }
  8112. // });
  8113. // }
  8114. //选择身份证正面
  8115. var file = file.raw;
  8116. let files = window.URL.createObjectURL(file); //转链接
  8117. this.userfrontImg = files;
  8118. const params = new FormData(); // 声明formData数据类型
  8119. params.append("multipartFile", file);
  8120. params.append("type", "image");
  8121. this.$api.letter.uploadFile(params).then(res => {
  8122. if (res.code == "200") {
  8123. let type = 'C0' + this.userIndex;
  8124. if (this['imageList' + this.userIndex].some(v => v.imageType == type)) {
  8125. this['imageList' + this.userIndex].map(val => {
  8126. if (val.imageType == type) {
  8127. val.imageId = res.data.id;
  8128. }
  8129. })
  8130. } else {
  8131. this['imageList' + this.userIndex].push({
  8132. imageId: res.data.id,
  8133. imageType: type,
  8134. })
  8135. }
  8136. this[type + 'File'] = file;
  8137. } else {
  8138. this.$message({ message: res.msg, type: "warning" });
  8139. }
  8140. });
  8141. },
  8142. userbackChange(file) {
  8143. let that =this
  8144. let size=file.size / 1024 / 1024 < 5;
  8145. const isJPG = file.raw.type === 'image/jpeg'||file.raw.type === 'image/png';
  8146. if(!size){
  8147. this.$message.error('上传图片大小不能超过 5MB!')
  8148. return false
  8149. }
  8150. if(!isJPG){
  8151. this.$message.error('上传图片只能是 JPG、PNG 格式!')
  8152. return false
  8153. }
  8154. // let name=file.raw.name
  8155. //       var image = new Image();
  8156. //       image.src = window.URL.createObjectURL(file.raw);
  8157. //       image.onload = function(){
  8158. //         let aaa= that.base64ToFile(that.compress(image, 500, 400, 0.7),name)
  8159. // that.userbackImg = image.src;
  8160. // const params = new FormData(); // 声明formData数据类型
  8161. // params.append("multipartFile", aaa);
  8162. // params.append("type", "image");
  8163. // that.$api.letter.uploadFile(params).then(res => {
  8164. // if (res.code == "200") {
  8165. // let type = 'D0' + that.userIndex;
  8166. // if (that['imageList' + that.userIndex].some(v => v.imageType == type)) {
  8167. // that['imageList' + that.userIndex].map(val => {
  8168. // if (val.imageType == type) {
  8169. // val.imageId = res.data.id;
  8170. // }
  8171. // })
  8172. // } else {
  8173. // that['imageList' + that.userIndex].push({
  8174. // imageId: res.data.id,
  8175. // imageType: type,
  8176. // })
  8177. // }
  8178. // that[type + 'File'] = aaa;
  8179. // } else {
  8180. // that.$message({ message: res.msg, type: "warning" });
  8181. // }
  8182. // });
  8183. // }
  8184. //选择身份证背面
  8185. var file = file.raw;
  8186. let files = window.URL.createObjectURL(file); //转链接
  8187. this.userbackImg = files;
  8188. const params = new FormData(); // 声明formData数据类型
  8189. params.append("multipartFile", file);
  8190. params.append("type", "image");
  8191. this.$api.letter.uploadFile(params).then(res => {
  8192. if (res.code == "200") {
  8193. let type = 'D0' + this.userIndex;
  8194. if (this['imageList' + this.userIndex].some(v => v.imageType == type)) {
  8195. this['imageList' + this.userIndex].map(val => {
  8196. if (val.imageType == type) {
  8197. val.imageId = res.data.id;
  8198. }
  8199. })
  8200. } else {
  8201. this['imageList' + this.userIndex].push({
  8202. imageId: res.data.id,
  8203. imageType: type,
  8204. })
  8205. }
  8206. this[type + 'File'] = file;
  8207. } else {
  8208. this.$message({ message: res.msg, type: "warning" });
  8209. }
  8210. });
  8211. },
  8212. CarOCRdiscern() {
  8213. //car识别
  8214. const loading = this.$loading({
  8215. lock: true,
  8216. text: "Loading",
  8217. spinner: "el-icon-loading",
  8218. background: "rgba(0, 0, 0, 0.7)"
  8219. });
  8220. const params = new FormData(); // 声明formData数据类型
  8221. params.append("image1", this.CarFrontFile);
  8222. params.append("image2", this.CarBackFile);
  8223. this.$api.letter.drivingPermit(params).then(res => {
  8224. loading.close();
  8225. if (res.msg == "201") {
  8226. this.$message({ message: "请正确选择驾驶证", type: "warning" });
  8227. }
  8228. var carInfo = res.data.carInfo;
  8229. console.log(carInfo);
  8230. if(carInfo.issueDate){
  8231. carInfo.issueDate =
  8232. carInfo.issueDate.substring(0, 4) +
  8233. "-" +
  8234. carInfo.issueDate.substring(4, 6) +
  8235. "-" +
  8236. carInfo.issueDate.substring(6, 8);
  8237. }
  8238. if(carInfo.registerDate){
  8239. carInfo.registerDate =
  8240. carInfo.registerDate.substring(0, 4) +
  8241. "-" +
  8242. carInfo.registerDate.substring(4, 6) +
  8243. "-" +
  8244. carInfo.registerDate.substring(6, 8);
  8245. }
  8246. this.carform.carOwner = carInfo.carOwner; //车主
  8247. this.carform.licenseNo = carInfo.plateNo; //车牌号
  8248. this.carform.modelcname = carInfo.backOcrID; //品牌型号
  8249. this.carform.frameNo = carInfo.vin; //车架号
  8250. this.carform.engineNo = carInfo.engine; //发动机号
  8251. this.carform.registerDate = carInfo.registerDate; //车牌号
  8252. this.carform.issueDate = carInfo.issueDate; //车牌号
  8253. this.carform.grossMass = carInfo.grossMass; //总质量
  8254. this.carform.unladenMass = carInfo.unladenMass; //整备质量
  8255. this.carform.limitLoad = carInfo.limitLoad; //核定载质量
  8256. this.carform.category = carInfo.category; //车辆类型
  8257. this.carform.useNature = carInfo.useNature; //使用性质
  8258. this.carform.vehicleUse = carInfo.vehicleUse; //车辆用途
  8259. this.carform.plateType = carInfo.plateType; //车辆种类
  8260. this.carform.approvedPassengersCapacity =
  8261. carInfo.approvedPassengersCapacity; //核定载客数
  8262. });
  8263. },
  8264. CarOCRconfirm() {
  8265. //传参
  8266. this.ownerInfo.name = this.carform.carOwner; //车主
  8267. this.carInfo.cartype = 'K33'
  8268. this.carInfo.licenseNo = this.carform.licenseNo; //车牌号
  8269. this.carInfo.modelcname = this.carform.modelcname; //品牌型号
  8270. this.carInfo.vinNo = this.carform.frameNo; //车架号
  8271. this.carInfo.frameNo = this.carform.frameNo; //车架号
  8272. this.carInfo.engineNo = this.carform.engineNo; //发动机号
  8273. this.carInfo.seatCount = this.carform.approvedPassengersCapacity; //核定载客数
  8274. this.carInfo.vehicleweight = this.carform.grossMass; //总质量
  8275. this.carInfo.completeKerbMass = this.carform.unladenMass; //整备质量
  8276. this.carInfo.limitLoad = this.carform.limitLoad; //核定载质量
  8277. this.carInfo.cartype = this.carform.category; //车辆类型
  8278. this.carInfo.useNature = this.carform.useNature; //使用性质
  8279. this.carInfo.vehicleUse = this.carform.vehicleUse; //车辆用途
  8280. this.carInfo.cimodelclass = this.carform.plateType; //车辆种类
  8281. if (this.timeformat(this.carform.registerDate) != 'NaN-NaN-NaN') {
  8282. this.carInfo.registerDate = this.carform.registerDate; //车牌号
  8283. }
  8284. if (this.timeformat(this.carform.issueDate) != 'NaN-NaN-NaN') {
  8285. this.carInfo.issueDate = this.carform.issueDate; //车牌号
  8286. }
  8287. this.uploadcardialogVisible = false;
  8288. },
  8289. handleRemove(e) {
  8290. //删除图片
  8291. this[e] = "";
  8292. switch (this.userIndex) {
  8293. case 0:
  8294. this.carfrontImg = '';
  8295. this.carbackImg = '';
  8296. this.CarFrontFile = ''; // 行驶证正面base64
  8297. this.CarBackFile = ''; // 行驶证背面base64
  8298. break;
  8299. case 2:
  8300. this.userfrontImg = '';
  8301. this.userbackImg = '';
  8302. this.C02File = ''; // 车主正面base64
  8303. this.D02File = ''; // 车主背面base64
  8304. break;
  8305. case 3:
  8306. this.userfrontImg = '';
  8307. this.userbackImg = '';
  8308. this.C03File = ''; // 投保人正面base64
  8309. this.D03File = ''; // 投保人背面base64
  8310. break;
  8311. case 4:
  8312. this.userfrontImg = '';
  8313. this.userbackImg = '';
  8314. this.C04File = ''; // 被保人正面base64
  8315. this.D04File = ''; // 被保人背面base64
  8316. break;
  8317. default:
  8318. }
  8319. },
  8320. //预览图片
  8321. handlePictureCardPreview(img) {
  8322. this.ProViewImg = img;
  8323. this.showViewer = true;
  8324. },
  8325. // 关闭查看器
  8326. closeViewer() {
  8327. this.showViewer = false;
  8328. },
  8329. uploaduser(index) {
  8330. this.userIndex = index;
  8331. this.uploaduserdialogVisible = true;
  8332. },
  8333. userOCRdiscern() {
  8334. //OCR识别
  8335. switch (this.userIndex) {
  8336. case 2:
  8337. const params1 = new FormData(); // 声明formData数据类型
  8338. params1.append("image1", this.C02File);
  8339. params1.append("image2", this.D02File);
  8340. this.userOCRjoggle(params1);
  8341. break;
  8342. case 3:
  8343. const params2 = new FormData(); // 声明formData数据类型
  8344. params2.append("image1", this.C03File);
  8345. params2.append("image2", this.D03File);
  8346. this.userOCRjoggle(params2);
  8347. break;
  8348. case 4:
  8349. const params3 = new FormData(); // 声明formData数据类型
  8350. params3.append("image1", this.C04File);
  8351. params3.append("image2", this.D04File);
  8352. this.userOCRjoggle(params3);
  8353. break;
  8354. default:
  8355. }
  8356. },
  8357. userOCRjoggle(param) {
  8358. const loading = this.$loading({
  8359. lock: true,
  8360. text: "Loading",
  8361. spinner: "el-icon-loading",
  8362. background: "rgba(0, 0, 0, 0.7)"
  8363. });
  8364. this.$api.letter.idCard(param).then(res => {
  8365. loading.close();
  8366. if (res.msg == "201") {
  8367. this.$message({ message: "请正确选择身份证", type: "warning" });
  8368. }
  8369. var customerInfo = res.data.customerInfo;
  8370. if (customerInfo) {
  8371. this.ownerInfoform.name = customerInfo.name;
  8372. if (customerInfo.identifyType == '01') {
  8373. this.ownerInfoform.identifyType = '身份证';
  8374. } else {
  8375. this.ownerInfoform.identifyType = "";
  8376. }
  8377. this.ownerInfoform.identifyNumber = customerInfo.identifyNumber;
  8378. this.ownerInfoform.gender = customerInfo.identifyIssuedCom;
  8379. this.ownerInfoform.addr = customerInfo.addr;
  8380. if (customerInfo.identifyNumber) {
  8381. this.ownerInfoform.age = getAgeByIdCard(customerInfo.identifyNumber)
  8382. }
  8383. if (customerInfo.identifyValidDate || customerInfo.identifyValidEndDate) {
  8384. this.ownerInfoform.identifyValidDate =
  8385. customerInfo.identifyValidDate.substring(0, 4) +
  8386. "-" +
  8387. customerInfo.identifyValidDate.substring(4, 6) +
  8388. "-" +
  8389. customerInfo.identifyValidDate.substring(6, 8);
  8390. this.ownerInfoform.identifyValidEndDate =
  8391. customerInfo.identifyValidEndDate.substring(0, 4) +
  8392. "-" +
  8393. customerInfo.identifyValidEndDate.substring(4, 6) +
  8394. "-" +
  8395. customerInfo.identifyValidEndDate.substring(6, 8);
  8396. if (customerInfo.identifyValidEndDate == '长期') {
  8397. this.ownerInfoform.identifyValidEndDate = '9999-12-31';
  8398. }
  8399. }
  8400. // let values = addressCode(this.ownerInfoform.addr);
  8401. // this.ownerInfoform.province = codeToText[values[0]]
  8402. // this.ownerInfoform.city = codeToText[values[1]]
  8403. // this.ownerInfoform.county = codeToText[values[2]]
  8404. }
  8405. });
  8406. },
  8407. userOCRconfirm() {
  8408. //传参
  8409. switch (this.userIndex) {
  8410. case 2:
  8411. // this.selectedOptions1 = addressCode(this.ownerInfoform.addr);
  8412. this.ownerInfo = JSON.parse(JSON.stringify(this.ownerInfoform));
  8413. break;
  8414. case 3:
  8415. // this.selectedOptions2 = addressCode(this.ownerInfoform.addr);
  8416. this.policyHolderInfo = JSON.parse(
  8417. JSON.stringify(this.ownerInfoform)
  8418. );
  8419. break;
  8420. case 4:
  8421. // this.selectedOptions3 = addressCode(this.ownerInfoform.addr);
  8422. this.insuredPersonInfo = JSON.parse(
  8423. JSON.stringify(this.ownerInfoform)
  8424. );
  8425. break;
  8426. }
  8427. this.uploaduserdialogVisible = false;
  8428. },
  8429. closeDialog(index) {
  8430. // 0:车辆 1:车主 2:投保人 3:被保人
  8431. switch (index) {
  8432. case 0:
  8433. this.carfrontImg = '';
  8434. this.carbackImg = '';
  8435. this.CarFrontFile = ''; // 行驶证正面base64
  8436. this.CarBackFile = ''; // 行驶证背面base64
  8437. Object.keys(this.carform).forEach((key) => {
  8438. this.carform[key] = '';
  8439. });
  8440. break;
  8441. case 2:
  8442. this.userfrontImg = '';
  8443. this.userbackImg = '';
  8444. this.C02File = ''; // 车主正面base64
  8445. this.D02File = ''; // 车主背面base64
  8446. Object.keys(this.ownerInfoform).forEach((key) => {
  8447. this.ownerInfoform[key] = '';
  8448. });
  8449. break;
  8450. case 3:
  8451. this.userfrontImg = '';
  8452. this.userbackImg = '';
  8453. this.C03File = ''; // 投保人正面base64
  8454. this.D03File = ''; // 投保人背面base64
  8455. Object.keys(this.ownerInfoform).forEach((key) => {
  8456. this.ownerInfoform[key] = '';
  8457. });
  8458. break;
  8459. case 4:
  8460. this.userfrontImg = '';
  8461. this.userbackImg = '';
  8462. this.C04File = ''; // 被保人正面base64
  8463. this.D04File = ''; // 被保人背面base64
  8464. Object.keys(this.ownerInfoform).forEach((key) => {
  8465. this.ownerInfoform[key] = '';
  8466. });
  8467. break;
  8468. case 5:
  8469. this.businessImg = '';
  8470. // this.C04File = ''; // 被保人正面base64
  8471. // this.D04File = ''; // 被保人背面base64
  8472. // Object.keys(this.ownerInfoform).forEach((key) => {
  8473. // this.ownerInfoform[key] = '';
  8474. // });
  8475. break;
  8476. default:
  8477. }
  8478. },
  8479. bjdpreview(companyId) {
  8480. let params = {
  8481. companyId: companyId
  8482. };
  8483. this.$api.letter.getByCompanyId(params).then(res => {
  8484. if (res.code == "200") {
  8485. var data = res.data;
  8486. if (data.kindinfo != null) {
  8487. data.kindinfo.map((ele, index) => {
  8488. switch (ele.kindCode) {
  8489. case "A":
  8490. if (ele.amount == 1) {
  8491. ele.amount = "投保"
  8492. } else {
  8493. ele.amount = ele.amount
  8494. }
  8495. break;
  8496. case "D4":
  8497. case "SY_FJ_YBW2":
  8498. ele.unitAmount = this.toChinesNum(ele.unitAmount);
  8499. break;
  8500. case "MJ1":
  8501. case "MJ2":
  8502. case "MJ3":
  8503. case "MJ4":
  8504. ele.deductibleRate = ele.deductibleRate + "%";
  8505. break;
  8506. default:
  8507. ele.amount = this.toChinesNum(ele.amount);
  8508. }
  8509. return ele;
  8510. });
  8511. }
  8512. data.logoImg = this.iconfftter(res.data.inscompany);
  8513. this.queryOrders = data;
  8514. if(this.$store.state.user.roles.managementSource&&this.$store.state.user.roles.managementSource=='3'){
  8515. this.$refs.quotationDialogPro.setBackupVisible(true)
  8516. }
  8517. else{
  8518. this.$refs.quotationDialog.setBackupVisible(true)
  8519. }
  8520. }
  8521. });
  8522. },
  8523. //返回上一步
  8524. Back() { },
  8525. carcode(id,item) {
  8526. this.$api.letter.getQrCode(id).then(res => {
  8527. if (res.code == '200') {
  8528. this.inscompany = res.data.inscompany;//保险公司
  8529. this.sumpremium = res.data.sumpremium;//总价
  8530. this.licenseNo = res.data.cPlateNo;//车牌号
  8531. this.applyName = res.data.cInsuredNme;//车主
  8532. this.jqpremium = res.data.jqpremium;//交强
  8533. this.sypremium = res.data.sypremium;//商业
  8534. this.taxamount = res.data.taxamount;//车船税
  8535. this.jypremium = res.data.jypremium;//驾意险
  8536. this.jqstartdate = res.data.jqStartDate;//交强起保日期
  8537. this.systartdate = res.data.syStartDate;//商业起保日期
  8538. // this.mobile = res.data.applyinfo.mobile;//投保人手机号
  8539. this.$nextTick(() => {
  8540. if(item.inscompany=='太平财险'){
  8541. let anresult = res.data.qrCodeUrl.replace(/[\r\n]/g, "");
  8542. let animgBase64 = `data:image/png;base64,${anresult}`;
  8543. base64ToPath(animgBase64)
  8544. .then(path => {
  8545. this.paycodeimg = path;
  8546. })
  8547. }
  8548. else{
  8549. this.creatQrCode(res.data.qrCodeUrl);
  8550. }
  8551. });
  8552. if(this.$store.state.user.roles.managementSource&&this.$store.state.user.roles.managementSource=='3'){
  8553. this.codedialogVisiblePro = true;
  8554. this.qrcodeWidth='154'
  8555. this.qrcodeHeight='154'
  8556. }
  8557. else{
  8558. this.codedialogVisible = true;
  8559. }
  8560. } else {
  8561. this.$message({ message: res.msg, type: "warning" })
  8562. }
  8563. })
  8564. },
  8565. //同步
  8566. synchronization() {
  8567. this.systartDate = this.jqstartDate;
  8568. this.syendDate = this.jqendDate;
  8569. },
  8570. //影像上传
  8571. uploadinformation() {
  8572. // //上传图片
  8573. const mergedArray = [...this.imageList1, ...this.imageList2, ...this.imageList3, ...this.imageList4,...this.imageList5];
  8574. let imageparam = {
  8575. imageList: mergedArray,
  8576. quoteNo: this.quoteno
  8577. }
  8578. this.$api.letter.uploadImages(imageparam).then(responses => {
  8579. if (responses.code == '200') {
  8580. this.imageEcho(this.quoteno);
  8581. this.$message({ message: responses.msg, type: "success" });
  8582. } else {
  8583. this.$message({ message: responses.msg, type: "error" });
  8584. }
  8585. });
  8586. this.imageUploaddialogVisible = false;
  8587. },
  8588. add() {
  8589. this.obtainProtocol()
  8590. this.$router.push({ path: '/letter/letter' })
  8591. for (let key in this.ownerInfo) {
  8592. this.ownerInfo[key] = "";
  8593. }
  8594. for (let key in this.policyHolderInfo) {
  8595. this.policyHolderInfo[key] = "";
  8596. }
  8597. for (let key in this.insuredPersonInfo) {
  8598. this.insuredPersonInfo[key] = "";
  8599. }
  8600. this.vehicleAndVesselTaxForm={
  8601. taxRelifFlag: "1",
  8602. taxpayerIdentifier:"01",
  8603. }
  8604. this.ownerInfo.provinceData=[]
  8605. this.insuredPersonInfo.provinceData=[]
  8606. this.policyHolderInfo.provinceData=[]
  8607. this.carInfo = JSON.parse(localStorage.getItem('carInfo'));
  8608. this.insureList = JSON.parse(localStorage.getItem('insureList'));
  8609. this.sychecked = false;
  8610. this.yonganchecked = false;
  8611. this.zhongmeichecked = false;
  8612. this.transferDateShow = false;
  8613. this.tbczcarShow = true, //投保人同车主
  8614. // this.bbczcarShow = false, //被保人同车主
  8615. this.bbtbcarShow = true, //被保人同投保人
  8616. this.imageList1=[]
  8617. this.imageList2=[]
  8618. this.imageList3=[]
  8619. this.imageList4=[]
  8620. this.imgList1 = [];
  8621. this.imgList2 = [];
  8622. this.imgList3 = [];
  8623. this.imgList4 = [];
  8624. this.imgList5 = [];
  8625. this.imgList6 = [];
  8626. this.imgList7 = [];
  8627. this.imgList8 = [];
  8628. // 清空保险公司选中的意外险
  8629. this.insuranceZJ=''
  8630. this.insuranceZA=''
  8631. this.insuranceHB=''
  8632. this.insuranceHN=''
  8633. this.insuranceRS=''
  8634. this.insuranceDJ=''
  8635. this.accidentForm = {
  8636. fen: "1",
  8637. premium:0
  8638. };
  8639. this.hengbangaccidentalDrivingVo={};
  8640. this.huanongaccidentalDrivingVo={};
  8641. this.taipingaccidentalDrivingVo={};
  8642. this.zhongmeiaccidentalDrivingVo={};
  8643. this.accidentalDrivingVo=[]
  8644. this.zhonganaccidentalDrivingVo={};
  8645. this.renshouaccidentalDrivingVo={};
  8646. this.anshengaccidentalDrivingVo={};
  8647. this.dajiaaccidentalDrivingVo={};
  8648. // this.selectedOptions1 = [];
  8649. // this.selectedOptions2 = [];
  8650. // this.selectedOptions3 = [];
  8651. this.orderno = "";
  8652. this.quoteno = "";
  8653. this.lastCompanyId = '';
  8654. this.HistoryList = [];
  8655. this.jqstartDate = this.transformTime1();
  8656. this.jqendDate = this.oneYearPast1(this.jqstartDate);
  8657. this.systartDate = this.transformTime1();
  8658. this.syendDate = this.oneYearPast1(this.jqstartDate);
  8659. },
  8660. toChinesNum(num) {
  8661. if(num.toString().length==4){
  8662. let overQian = Math.floor(num / 1000);
  8663. let result = overQian + "千";
  8664. return result;
  8665. }
  8666. else{
  8667. let overWan = Math.floor(num / 10000);
  8668. let result = overWan + "万";
  8669. return result;
  8670. }
  8671. },
  8672. reportDrop(event) {
  8673. event.preventDefault();
  8674. event.stopPropagation();
  8675. },
  8676. tabLiScroll(id,idx){
  8677. this.tabLiIndex=idx
  8678. document.getElementById(id).scrollIntoView({ behavior: "smooth" });
  8679. },
  8680. handleScroll(id) {
  8681. document.getElementById(id).scrollIntoView({ behavior: "smooth" });
  8682. }
  8683. }
  8684. };
  8685. </script>
  8686. <style>
  8687. /* .customNotifyClass {
  8688. word-break: break-all;
  8689. width: 600px;
  8690. } */
  8691. </style>
  8692. <style lang="scss" scoped>
  8693. .marginL{
  8694. margin-left: 10px;
  8695. }
  8696. .el-notification{
  8697. width: 600px;
  8698. }
  8699. .styleB .el-upload--picture-card {
  8700. // display: none;
  8701. opacity: 0;
  8702. }
  8703. .ORcodebody {
  8704. height: auto;
  8705. background: url(../../assets/image/group.png) #fff;
  8706. padding: 16px;
  8707. }
  8708. .csstool {
  8709. font-weight: 600;
  8710. color: #606266;
  8711. font-size: 14px;
  8712. margin: 0 20px;
  8713. span {
  8714. margin-right: 5px;
  8715. }
  8716. }
  8717. .ORcode {
  8718. width: 100%;
  8719. height: auto;
  8720. display: flex;
  8721. justify-content: center;
  8722. align-items: center;
  8723. padding: 30px;
  8724. box-sizing: border-box;
  8725. & > div {
  8726. width: 176px;
  8727. height: 176px;
  8728. border: 1px solid var(--themeColor);
  8729. border-radius: 5px;
  8730. }
  8731. }
  8732. .ORtitle {
  8733. width: 100%;
  8734. padding-bottom: 20px;
  8735. box-sizing: border-box;
  8736. & > div {
  8737. width: 100%;
  8738. margin: 10px 0;
  8739. font-size: 14px;
  8740. & > span {
  8741. &:nth-child(1) {
  8742. color: #868B98;
  8743. text-align: end;
  8744. width: 150px;
  8745. }
  8746. &:nth-child(2) {
  8747. color: #333333;
  8748. }
  8749. }
  8750. }
  8751. }
  8752. .Risk {
  8753. width: 100%;
  8754. height: auto;
  8755. display: flex;
  8756. flex-direction: column;
  8757. align-items: center;
  8758. font-size: 12px;
  8759. }
  8760. .dis {
  8761. display: flex;
  8762. }
  8763. .align {
  8764. align-items: center;
  8765. }
  8766. .jus {
  8767. justify-content: space-between;
  8768. }
  8769. .shangyexian {
  8770. padding-left: 100px;
  8771. }
  8772. .headertotal {
  8773. padding: 30px;
  8774. }
  8775. .my-label {
  8776. background: #e1f3d8;
  8777. }
  8778. .my-content {
  8779. background: #fde2e2;
  8780. color: aqua;
  8781. }
  8782. .el-button--mini {
  8783. padding: 5px;
  8784. }
  8785. #qqq {
  8786. background-color: #111;
  8787. width: 300px;
  8788. height: 300px;
  8789. margin: 0 auto;
  8790. position: relative;
  8791. }
  8792. #qrCode {
  8793. display: inline-block;
  8794. margin: 0 auto;
  8795. position: relative;
  8796. top: 15%;
  8797. img {
  8798. width: 200px;
  8799. height: 200px;
  8800. background-color: #fff;
  8801. padding: 6px;
  8802. }
  8803. }
  8804. .code {
  8805. box-sizing: border-box;
  8806. display: flex;
  8807. flex-direction: column;
  8808. justify-content: space-between;
  8809. align-items: center;
  8810. & > span {
  8811. margin-bottom: 10px;
  8812. }
  8813. }
  8814. .code_name {
  8815. width: 350px;
  8816. display: flex;
  8817. justify-content: space-between;
  8818. align-items: center;
  8819. font-weight: bold;
  8820. & > span {
  8821. &:nth-child(1) {
  8822. color: #979797;
  8823. width: 120px;
  8824. text-align: right;
  8825. }
  8826. &:nth-child(2) {
  8827. color: #2d2d2d;
  8828. width: 120px;
  8829. text-align: left;
  8830. }
  8831. }
  8832. }
  8833. .header {
  8834. font-size: 18px;
  8835. font-weight: bold;
  8836. }
  8837. .body {
  8838. border-top: none;
  8839. padding-bottom: 100px;
  8840. box-sizing: border-box;
  8841. }
  8842. .u-f-ac {
  8843. -webkit-box-align: center;
  8844. align-items: center;
  8845. padding: 10px;
  8846. }
  8847. .bodyTitle {
  8848. height: 45px;
  8849. background: #f3f3f3;
  8850. border: 1px solid #dddddd;
  8851. line-height: 45px;
  8852. padding: 0 20px;
  8853. box-sizing: border-box;
  8854. }
  8855. .start {
  8856. justify-content: flex-start;
  8857. }
  8858. .end {
  8859. justify-content: flex-end;
  8860. }
  8861. .descriptions {
  8862. padding: 20px;
  8863. box-sizing: border-box;
  8864. display: flex;
  8865. flex-direction: column;
  8866. }
  8867. .bodys {
  8868. display: flex;
  8869. justify-content: space-between;
  8870. align-items: center;
  8871. flex-wrap: wrap;
  8872. }
  8873. .bodys1 {
  8874. display: flex;
  8875. justify-content: center;
  8876. align-items: center;
  8877. flex-wrap: wrap;
  8878. }
  8879. .widths {
  8880. width: 230px;
  8881. }
  8882. .widths1 {
  8883. width: 300px;
  8884. }
  8885. .back {
  8886. color: #333333 ;
  8887. // font-weight: 700;
  8888. }
  8889. .home {
  8890. // padding-left: 10px;
  8891. box-sizing: border-box;
  8892. padding-bottom: 10px;
  8893. border-bottom: 1px solid #EEF1F6 ;
  8894. & > span {
  8895. margin-right: 10px;
  8896. }
  8897. }
  8898. .hovers {
  8899. margin: 10px 0;
  8900. cursor: pointer;
  8901. padding: 10px 0;
  8902. box-sizing: border-box;
  8903. border-bottom: 1px solid #f2f2f2;
  8904. .offer-time {
  8905. margin: 20px 0 0px 100px;
  8906. padding: 10px;
  8907. background: rgba(45,77,137,0.06);;
  8908. & > span {
  8909. margin: 0 10px;
  8910. }
  8911. }
  8912. }
  8913. /* 内容待定 */
  8914. .coll {
  8915. font-size: 14px;
  8916. }
  8917. .display {
  8918. display: flex;
  8919. justify-content: center;
  8920. align-items: center;
  8921. box-sizing: border-box;
  8922. }
  8923. .black {
  8924. color: #000;
  8925. }
  8926. .gray {
  8927. color: #999;
  8928. }
  8929. .OCR {
  8930. font-weight: bold;
  8931. color: #333;
  8932. margin: 20px;
  8933. }
  8934. .slot {
  8935. position: absolute;
  8936. width: 100%;
  8937. height: 100%;
  8938. left: 0;
  8939. top: 0;
  8940. cursor: default;
  8941. text-align: center;
  8942. color: #fff;
  8943. opacity: 0;
  8944. font-size: 20px;
  8945. background-color: rgba(0, 0, 0, 0.5);
  8946. transition: opacity 0.3s;
  8947. display: flex;
  8948. justify-content: center;
  8949. align-items: center;
  8950. & > i {
  8951. margin: 10px;
  8952. color: #fff;
  8953. font-size: 30px;
  8954. font-weight: bold;
  8955. cursor: pointer;
  8956. }
  8957. &:hover {
  8958. opacity: 1;
  8959. }
  8960. }
  8961. .companyhead {
  8962. width: 100%;
  8963. margin: 0 auto;
  8964. padding:15px 10px;
  8965. color: #333;
  8966. font-weight: bold;
  8967. font-size: 14px;
  8968. background-color: #F7F7F9;
  8969. }
  8970. .footer {
  8971. width: calc(100% - 200px);
  8972. position: fixed;
  8973. bottom: 0;
  8974. right: 0;
  8975. background-color: #fff;
  8976. z-index: 9;
  8977. padding: 20px;
  8978. box-sizing: border-box;
  8979. box-shadow: 0 0 1px 0 #ccc;
  8980. transition: all 0.3s, box-shadow 0.5s;
  8981. &.shadow {
  8982. box-shadow: 0 -10px 10px -10px #ccc;
  8983. }
  8984. }
  8985. .Enclosure {
  8986. width: 100%;
  8987. background-color: #fff;
  8988. padding: 20px;
  8989. box-sizing: border-box;
  8990. margin-bottom: 15px;
  8991. border-radius: 6px;
  8992. border: 1px solid #ebeef5;
  8993. transition: all 0.2s ease-in-out;
  8994. box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
  8995. }
  8996. .icon-img {
  8997. display: block;
  8998. width: 30px;
  8999. height: 30px;
  9000. }
  9001. .Anchor-link {
  9002. width: 40px;
  9003. background-color: #fff;
  9004. box-shadow: #ccc 0 0px 3px 0;
  9005. border-radius: 6px;
  9006. position: fixed;
  9007. top: 50%;
  9008. right: 0;
  9009. z-index: 99;
  9010. div {
  9011. margin: 5px;
  9012. border-bottom: 1px solid #f2f2f2;
  9013. cursor: pointer;
  9014. display: block;
  9015. }
  9016. }
  9017. .color {
  9018. padding-top: 150px;
  9019. margin-top: -150px;
  9020. }
  9021. .more {
  9022. width: 100%;
  9023. padding: 20px;
  9024. box-sizing: border-box;
  9025. }
  9026. .more-title {
  9027. padding:15px 10px;
  9028. background-color: #F7F7F9;
  9029. // border-bottom: 1px solid #e3e3e3;
  9030. font-size: 14px;
  9031. }
  9032. .more-data {
  9033. padding: 10px;
  9034. border-bottom: 1px solid #f2f2f2;
  9035. color: #D42426;
  9036. font-size: 14px;
  9037. }
  9038. .Driving-risk {
  9039. padding-left: 100px;
  9040. // padding-top:20px
  9041. }
  9042. .checkbox {
  9043. transform: scale(1.2);
  9044. margin-right: 20px;
  9045. line-height: 32px;
  9046. }
  9047. .insure-long-term {
  9048. display: inline-flex;
  9049. padding-left: 8px;
  9050. padding-right: 8px;
  9051. background: var(--themeColor);
  9052. color: #fff;
  9053. font-size: 12px;
  9054. margin-left: -5px;
  9055. border-radius: 0px 5px 5px 0px;
  9056. cursor: pointer;
  9057. }
  9058. .textareaSty {
  9059. width: 160px;
  9060. height: 210px;
  9061. border: 1px solid #d2d2d2;
  9062. border-radius: 4px;
  9063. img {
  9064. width: 50px;
  9065. height: 50px;
  9066. }
  9067. }
  9068. .image-title {
  9069. width: 100px;
  9070. height: 30px;
  9071. color: #fff;
  9072. text-align: center;
  9073. line-height: 30px;
  9074. font-weight: bold;
  9075. margin-bottom: 15px;
  9076. background: #fc4a1a;
  9077. background: #f2994a;
  9078. /* fallback for old browsers */
  9079. background: -webkit-linear-gradient(to left, #f2c94c, #f2994a);
  9080. /* Chrome 10-25, Safari 5.1-6 */
  9081. background: linear-gradient(to left, #f2c94c, #f2994a);
  9082. /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
  9083. }
  9084. .aaa /deep/ {
  9085. margin-bottom: 20px;
  9086. margin-right: 50px;
  9087. span{
  9088. display: inline-block;
  9089. margin-bottom: 10px;
  9090. }
  9091. .el-upload .el-upload-dragger {
  9092. width: 180px;
  9093. height: 120px;
  9094. border: 1px dashed #c0ccda;
  9095. padding: 0;
  9096. }
  9097. .el-upload-list--picture-card .el-upload-list__item {
  9098. width: 180px;
  9099. height: 120px;
  9100. }
  9101. .el-upload-list__item:first-child {
  9102. margin-top: 0;
  9103. }
  9104. }
  9105. .jyxStyle > span {
  9106. display: inline-block;
  9107. text-align: center;
  9108. }
  9109. .tab-style{
  9110. width:110px;
  9111. li{
  9112. text-align: right;
  9113. padding-right: 20px;
  9114. line-height:40px;
  9115. cursor: pointer;
  9116. box-sizing: border-box;
  9117. border-right: 1px solid #E2E5EB;
  9118. }
  9119. li:focus{
  9120. background: rgba(212,36,38,0.1);
  9121. border-right: 2px solid var(--themeColor);
  9122. color: var(--themeColor);
  9123. }
  9124. }
  9125. .tabLi-style{
  9126. background: rgba(212,36,38,0.1);
  9127. border-right: 2px solid var(--themeColor);
  9128. color: var(--themeColor);
  9129. }
  9130. .scan-code{
  9131. div{
  9132. margin-top: 10px;
  9133. }
  9134. }
  9135. /* 清除图片上传动画bug */
  9136. /deep/ {
  9137. .proSaomazhifucodeClass .el-dialog__header{
  9138. background: rgba(45,77,137,0.1);
  9139. font-weight: bold;
  9140. }
  9141. .proSaomazhifucodeClass .el-dialog__footer{
  9142. border-top:1px solid #EEF1F6 ;
  9143. }
  9144. .el-upload-list__item {
  9145. transition: none !important;
  9146. }
  9147. .el-checkbox__input {
  9148. &.is-checked {
  9149. .el-checkbox__inner {
  9150. background-color: #D42426;
  9151. border-color: #D42426;
  9152. }
  9153. }
  9154. }
  9155. .el-checkbox__inner {
  9156. border: 1px solid var(--themeColor);
  9157. &:hover {
  9158. border-color: var(--themeColorHover);
  9159. }
  9160. &:focus{
  9161. border-color: var(--themeColor);
  9162. }
  9163. }
  9164. .el-upload .el-upload-dragger {
  9165. height: 250px;
  9166. width: 400px;
  9167. border: 1px dashed #CED4DA;
  9168. }
  9169. .el-upload--picture-card {
  9170. width: 180px;
  9171. height: 120px;
  9172. }
  9173. .el-upload-list__item {
  9174. width: 180px;
  9175. height: 120px;
  9176. margin: 0 !important;
  9177. display: block !important;
  9178. }
  9179. .el-upload-list--picture-card .el-upload-list__item-thumbnail {
  9180. width: 180px;
  9181. height: 120px;
  9182. }
  9183. // .el-button--warning {
  9184. // color: #fff;
  9185. // background-color: #D42426;
  9186. // border-color: #D42426;
  9187. // &:hover {
  9188. // color: #fff;
  9189. // background-color: #ee6f00ce;
  9190. // border-color: #ee6f00ce;
  9191. // }
  9192. // }
  9193. .el-descriptions-item__label {
  9194. &:not(.is-bordered-label) {
  9195. color: #333;
  9196. }
  9197. }
  9198. // .el-radio__input.is-checked + .el-radio__label {
  9199. // color: #ff7000;
  9200. // }
  9201. // .el-radio__input.is-checked .el-radio__inner {
  9202. // border-color: #ff7000;
  9203. // background: #ff7000;
  9204. // }
  9205. // .el-radio__inner {
  9206. // &:hover {
  9207. // border-color: #ff7000;
  9208. // }
  9209. // }
  9210. // .el-input--small .el-icon-date {
  9211. // color: #ee6f00ce;
  9212. // }
  9213. .el-select {
  9214. width: 100%;
  9215. }
  9216. .el-date-editor.el-input {
  9217. width: 100%;
  9218. }
  9219. .el-cascader--small {
  9220. width: 100%;
  9221. }
  9222. .styleB {
  9223. height: 128px;
  9224. }
  9225. .styleB .el-upload--picture-card {
  9226. display: none;
  9227. }
  9228. .saomazhifucodeClass .el-dialog__body,
  9229. .saomazhifucodeClass .el-dialog__header, .saomazhifucodeClass .el-dialog__footer {
  9230. padding: 0;
  9231. background: #F4E9E9;
  9232. }
  9233. .saomazhifucodeClass .el-dialog__body{
  9234. padding: 15px;
  9235. }
  9236. .saomazhifucodeClass .el-dialog__footer{
  9237. background: #F4E9E9;
  9238. padding-bottom: 15px;
  9239. }
  9240. .saomazhifucodeClass .el-dialog__headerbtn{
  9241. margin-top:10px
  9242. }
  9243. .zmDriving {
  9244. thead .el-table-column--selection .cell {
  9245. display: none !important;
  9246. }
  9247. }
  9248. .synchronous{
  9249. width: 75px;
  9250. height: 45px;
  9251. line-height: 45px;
  9252. color: #fff;
  9253. cursor: pointer;
  9254. background: url(../../../src/icon/Union2.png) no-repeat 100%;
  9255. }
  9256. .synchronous:hover{
  9257. background: url(../../../src/icon/Union1.png) no-repeat 100%;
  9258. }
  9259. .line_style{
  9260. margin-top: 20px;
  9261. }
  9262. .el-input-group__append{
  9263. vertical-align:baseline;
  9264. }
  9265. }
  9266. </style>