KtLetter.vue 367 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581
  1. <template>
  2. <div class="body">
  3. <div class="Enclosure flex f-c back" v-if="isLetter=='1'">
  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 class="demo-ruleForm" :model="userform" ref="userform" label-width="130px" size="small"
  11. style="margin-top: 15px" disabled label-position="top">
  12. <el-row type="flex" justify="space-between">
  13. <el-col :span="5">
  14. <el-form-item label="业务员">
  15. <el-input v-model="userform.name"></el-input>
  16. </el-form-item>
  17. </el-col>
  18. <el-col :span="5">
  19. <el-form-item label="工号">
  20. <el-input v-model="userform.id" type="text"></el-input>
  21. </el-form-item>
  22. </el-col>
  23. <el-col :span="5">
  24. <el-form-item label="工号类型">
  25. <el-select v-model="userform.usertype">
  26. <el-option label="业务员" value="A"></el-option>
  27. <el-option label="代理人" value="B"></el-option>
  28. </el-select>
  29. </el-form-item>
  30. </el-col>
  31. <el-col :span="5">
  32. <el-form-item label="归属">
  33. <el-input v-model="deptName"></el-input>
  34. </el-form-item>
  35. </el-col>
  36. </el-row>
  37. </el-form>
  38. </div>
  39. <div class="Enclosure flex f-c back" v-if="isLetter=='1'">
  40. <div class="home flex j-s a-c">
  41. <div class="flex j-s a-c">
  42. <img src="../../../../src/icon/快速查询.png" alt class="icon-img" />
  43. <span style="margin-left: 10px">快速查询</span>
  44. </div>
  45. <el-button size="small" type="primary" @click="continuousquery()">
  46. <i class="el-icon-search" style="margin-right: 1px"></i>
  47. 续保查询
  48. </el-button>
  49. </div>
  50. <el-form class="demo-ruleForm" :model="attributionform" ref="continuousform" label-width="130px" size="small"
  51. style="margin-top: 15px" label-position="top">
  52. <el-row>
  53. <el-col :span="5">
  54. <el-form-item label="保险公司" prop="companyId">
  55. <el-select v-model="attributionform.companyId" placeholder="请选择保险公司" @change="continuousChange">
  56. <el-option v-for="(item, index) in continuousCompanyList" :key="index" :label="item.namesimple"
  57. :value="item.id"></el-option>
  58. </el-select>
  59. </el-form-item>
  60. </el-col>
  61. <el-col :span="5" :offset="1" v-for="(domain, index) in attributionform.configure" :key="domain.index">
  62. <el-form-item :label="domain.label" :prop="'configure.' + index + '.value'" :rules="{
  63. required: true,
  64. message: domain.label + '不能为空',
  65. trigger: 'blur',
  66. }">
  67. <el-input v-model="domain.value" :type="domain.type"></el-input>
  68. </el-form-item>
  69. </el-col>
  70. </el-row>
  71. </el-form>
  72. </div>
  73. <div class="Enclosure flex f-c back">
  74. <div class="home flex j-s a-c">
  75. <div class="flex j-s a-c color" id="Car">
  76. <img src="../../../../src/icon/车辆信息.png" alt class="icon-img" />
  77. <span style="margin-left:10px;">车辆信息</span>
  78. </div>
  79. <el-button size="small" type="primary" @click="uploadcardialogVisible = true">
  80. <i class="el-icon-camera-solid" style="margin-right:1px;"></i>
  81. 证件识别
  82. </el-button>
  83. </div>
  84. <el-form class="demo-ruleForm" :model="carInfo" ref="carInfo" :rules="rules" label-width="130px" size="small"
  85. label-position="top" style="margin-top: 15px">
  86. <el-row style="flex-wrap: wrap; display: flex;">
  87. <el-col :span="5">
  88. <el-form-item label="车牌" :prop="licenseplate ? 'licenseNo' : ''">
  89. <div style="display: flex;">
  90. <el-input style="width: 75%;margin-right:13px" v-model="carInfo.licenseNo" placeholder="请输入车牌号"
  91. :disabled="!licenseplate"></el-input>
  92. <el-checkbox v-model="licenseplate">已上牌</el-checkbox>
  93. </div>
  94. </el-form-item>
  95. </el-col>
  96. <el-col :span="5" :offset="1">
  97. <el-form-item label="车辆识别代码" prop="frameNo">
  98. <el-input placeholder="请输入车辆识别码" v-model="carInfo.frameNo" maxlength="17" type="text" show-word-limit>
  99. <el-button slot="append" type="primary" icon="el-icon-search" @click="toChooseVin(carInfo.frameNo)"
  100. style="color: #fff;background-color:#D42426;border-color:#D42426;"></el-button>
  101. </el-input>
  102. </el-form-item>
  103. </el-col>
  104. <el-col :span="5" :offset="1">
  105. <el-form-item label="品牌型号" prop="modelcname">
  106. <el-input v-model="carInfo.modelcname" placeholder="请输入品牌型号" type="text">
  107. <el-button slot="append" icon="el-icon-search" type="primary"
  108. @click="toChooseVehicleType(carInfo.modelcname)"
  109. style="color: #fff;background-color:#D42426;border-color:#D42426;border-top:none"></el-button>
  110. </el-input>
  111. </el-form-item>
  112. </el-col>
  113. <el-col :span="5" :offset="1">
  114. <el-form-item label="发动机号" prop="engineNo">
  115. <el-input v-model="carInfo.engineNo" placeholder="请输入发动机号"></el-input>
  116. </el-form-item>
  117. </el-col>
  118. <el-col :span="5">
  119. <el-form-item label="年款" prop="caryear">
  120. <el-input onkeyup="value=value.replace(/\D/g,'')" v-model="carInfo.caryear" placeholder="请输入年款"></el-input>
  121. </el-form-item>
  122. </el-col>
  123. <el-col :span="5" :offset="1">
  124. <el-form-item label="座位数" prop="seatCount">
  125. <el-input onkeyup="value=value.replace(/\D/g,'')" v-model="carInfo.seatCount" placeholder="请输入座位数">
  126. <el-button slot="append">座</el-button>
  127. </el-input>
  128. </el-form-item>
  129. </el-col>
  130. <el-col :span="5" :offset="1">
  131. <el-form-item label="整备质量" prop="completeKerbMass">
  132. <el-input v-model="carInfo.completeKerbMass" placeholder="请输入整备质量">
  133. <el-button slot="append">千克(KG)</el-button>
  134. </el-input>
  135. </el-form-item>
  136. </el-col>
  137. <el-col :span="5" :offset="1">
  138. <el-form-item label="核定载质量" prop="limitLoad">
  139. <el-input v-model="carInfo.limitLoad" placeholder="请输入核定载质量">
  140. <el-button slot="append">千克(KG)</el-button>
  141. </el-input>
  142. </el-form-item>
  143. </el-col>
  144. <el-col :span="5">
  145. <el-form-item label="排量" prop="enginedesc">
  146. <el-input v-model="carInfo.enginedesc" placeholder="请输入排量">
  147. <el-button slot="append">升(L)</el-button>
  148. </el-input>
  149. </el-form-item>
  150. </el-col>
  151. <el-col :span="5" :offset="1">
  152. <el-form-item label="功率" prop="powerScale">
  153. <el-input v-model="carInfo.powerScale" placeholder="请输入功率">
  154. <el-button slot="append">千瓦(KW)</el-button>
  155. </el-input>
  156. </el-form-item>
  157. </el-col>
  158. <el-col :span="5" :offset="1">
  159. <el-form-item label="新车购置价" prop="purchasePrice">
  160. <el-input onkeyup="value=value.replace(/\D/g,'')" v-model="carInfo.purchasePrice" placeholder="请输入新车购置价">
  161. <el-button slot="append">元</el-button>
  162. </el-input>
  163. </el-form-item>
  164. </el-col>
  165. <el-col :span="5" :offset="1">
  166. <el-form-item label="使用性质" prop="carnature">
  167. <el-select v-model="carInfo.carnature" placeholder="请选择使用性质" @change="natureFun">
  168. <el-option :label="item.dictTag" :value="item.dictValue"
  169. v-for="(item, index) in natureOfVehicleUseoptions" :key="index"></el-option>
  170. </el-select>
  171. </el-form-item>
  172. </el-col>
  173. <el-col :span="5">
  174. <el-form-item label="车辆用途" prop="vehicleUse">
  175. <el-select v-if="carInfo.carnature == '02'" v-model="carInfo.vehicleUse" placeholder="请选择使车辆用途">
  176. <el-option :label="item.dictTag" :value="item.dictValue"
  177. v-for="(item, index) in outOfBusinessVehicleUseoptions" :key="index"></el-option>
  178. </el-select>
  179. <el-select v-if="carInfo.carnature == '01'" v-model="carInfo.vehicleUse" placeholder="请选择使车辆用途">
  180. <el-option :label="item.dictTag" :value="item.dictValue"
  181. v-for="(item, index) in businessVehicleUseoptions" :key="index"></el-option>
  182. </el-select>
  183. </el-form-item>
  184. </el-col>
  185. <el-col :span="5" :offset="1">
  186. <el-form-item label="车辆类型" prop="cartype">
  187. <el-select v-model="carInfo.cartype" placeholder="请选择车辆种类" filterable clearable>
  188. <el-option :label="item.dictValue + item.dictTag" :value="item.dictValue"
  189. v-for="(item, index) in trafficManagementVehicleTypeoptions" :key="index"></el-option>
  190. </el-select>
  191. </el-form-item>
  192. </el-col>
  193. <el-col :span="5" :offset="1">
  194. <el-form-item label="车辆种类" prop="cimodelclass">
  195. <el-select v-model="carInfo.cimodelclass" placeholder="请选择车辆种类" clearable>
  196. <el-option :label="item.dictTag" :value="item.dictValue" v-for="(item, index) in vehicleTypeoptions"
  197. :key="index"></el-option>
  198. </el-select>
  199. </el-form-item>
  200. </el-col>
  201. <el-col :span="5" :offset="1">
  202. <el-form-item label="能源种类" prop="energyType">
  203. <el-select v-model="carInfo.energyType" placeholder="请选择能源种类">
  204. <el-option :label="item.dictTag" :value="item.dictValue" v-for="(item, index) in energyTypeoptions"
  205. :key="index"></el-option>
  206. </el-select>
  207. </el-form-item>
  208. </el-col>
  209. <el-col :span="5">
  210. <el-form-item label="注册日期" prop="registerDate">
  211. <el-date-picker v-dateFormat v-model="carInfo.registerDate" :picker-options="pickerOptions"
  212. value-format="yyyy-MM-dd" type="date" placeholder="选择注册日期" placement="bottom-start"></el-date-picker>
  213. </el-form-item>
  214. </el-col>
  215. <el-col :span="5" :offset="1">
  216. <el-form-item label="发证日期" prop="issueDate">
  217. <el-date-picker v-dateFormat v-model="carInfo.issueDate" :picker-options="issueDateOptions" type="date"
  218. placeholder="选择发证日期" value-format="yyyy-MM-dd" placement="bottom-start"></el-date-picker>
  219. </el-form-item>
  220. </el-col>
  221. <el-col :span="5" :offset="1" v-if="transferDateShow">
  222. <el-form-item label="转移登记日期" prop="transferDate">
  223. <el-date-picker v-dateFormat v-model="carInfo.transferDate" :picker-options="pickerOptions" type="date"
  224. placeholder="选择日期" value-format="yyyy-MM-dd" placement="bottom-start"></el-date-picker>
  225. </el-form-item>
  226. </el-col>
  227. </el-row>
  228. </el-form>
  229. </div>
  230. <div class="Enclosure flex f-c back">
  231. <div class="home flex j-s a-c">
  232. <div class="flex j-s a-c color" id="CheZhu">
  233. <img src="../../../../src/icon/车主信息.png" alt class="icon-img" />
  234. <span style="margin-left:10px;">车主信息</span>
  235. </div>
  236. <el-button size="small" type="primary" @click="uploaduser(2)">
  237. <i class="el-icon-camera-solid" style="margin-right:4px;"></i>证件识别
  238. </el-button>
  239. </div>
  240. <el-form class="demo-ruleForm" :model="ownerInfo" ref="ownerInfo" :rules="rules" label-width="130px" size="small"
  241. style="margin-top: 15px" label-position="top">
  242. <el-row style="flex-wrap: wrap; display: flex;">
  243. <el-col :span="5">
  244. <el-form-item label="车主姓名" prop="name">
  245. <el-input v-model="ownerInfo.name" placeholder="请输入车主姓名"></el-input>
  246. </el-form-item>
  247. </el-col>
  248. <el-col :span="5" :offset="1">
  249. <el-form-item label="证件类型" prop="identifyType">
  250. <el-select v-model="ownerInfo.identifyType" placeholder="身份证" disabled>
  251. <el-option label="身份证" value="01"></el-option>
  252. </el-select>
  253. </el-form-item>
  254. </el-col>
  255. <el-col :span="5" :offset="1">
  256. <el-form-item label="证件号码" prop="identifyNumber">
  257. <el-input v-model="ownerInfo.identifyNumber" placeholder="请输入证件号码" type="text" maxlength="18"
  258. show-word-limit @blur="identifyblur('ownerInfo')"></el-input>
  259. </el-form-item>
  260. </el-col>
  261. <el-col :span="5" :offset="1">
  262. <el-form-item label="年龄" prop="age">
  263. <el-input v-model="ownerInfo.age" placeholder="请输入年龄" type="text" disabled></el-input>
  264. </el-form-item>
  265. </el-col>
  266. <el-col :span="5">
  267. <el-form-item label="性别" prop="gender">
  268. <el-select @change="genderChange" v-model="ownerInfo.gender" placeholder="请选择性别">
  269. <el-option label="男" value="男"></el-option>
  270. <el-option label="女" value="女"></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="mobile">
  276. <el-input v-model="ownerInfo.mobile" placeholder="请输入车主手机号" type="text" maxlength="11"
  277. @paste.native="handlePaste($event, 'ownerInfo')" show-word-limit></el-input>
  278. </el-form-item>
  279. </el-col>
  280. <el-col :span="5" :offset="1">
  281. <el-form-item label="地址" prop="addr">
  282. <el-input v-model="ownerInfo.addr" placeholder="请输入地址" type="text"></el-input>
  283. </el-form-item>
  284. </el-col>
  285. <el-col :span="5" :offset="1">
  286. <el-form-item label="有效期起期" prop="identifyValidDate">
  287. <el-date-picker v-dateFormat v-model="ownerInfo.identifyValidDate" value-format="yyyy-MM-dd"
  288. :picker-options="pickerOptions" type="date" placeholder="选择注册日期"
  289. placement="bottom-start"></el-date-picker>
  290. </el-form-item>
  291. </el-col>
  292. <el-col :span="5">
  293. <el-form-item label="有效期止期" prop="identifyValidEndDate">
  294. <el-date-picker v-dateFormat v-model="ownerInfo.identifyValidEndDate" type="date" value-format="yyyy-MM-dd"
  295. placeholder="选择有效期" placement="bottom-start" style="width: calc(100% - 40px);"></el-date-picker>
  296. <div class="insure-long-term" @click="insureLongterm('ownerInfo')">长期</div>
  297. </el-form-item>
  298. </el-col>
  299. <el-col :span="5" :offset="1">
  300. <el-form-item label="电子邮箱" prop="email">
  301. <el-input v-model="ownerInfo.email" placeholder="请输入电子邮箱"></el-input>
  302. </el-form-item>
  303. </el-col>
  304. <!-- <el-col :xs="xscell" :sm="smcell" :md="mdcell" :lg="lgcell" :xl="xlcell" v-if="iscCrownerShow">
  305. <el-form-item label="省市区:">
  306. <el-cascader v-model="ownerInfo.provinceData" :options="areaOption" :props="{ value: 'code',label: 'name',children: 'sub'}"></el-cascader>
  307. </el-form-item>
  308. </el-col>-->
  309. </el-row>
  310. </el-form>
  311. </div>
  312. <div class="Enclosure flex f-c back">
  313. <div class="home flex j-s a-c">
  314. <div class="flex j-s a-c">
  315. <img src="../../../../src/icon/投保人信息.png" alt class="icon-img" />
  316. <span style="margin-left:10px;">投保人信息</span>
  317. </div>
  318. <div class="flex a-c j-c">
  319. <div style="font-size:12px;margin:0 10px;">
  320. 同车主
  321. <el-switch v-model="tbczcarShow" active-color="#D42426" @change="tbczcarShowChange()"></el-switch>
  322. </div>
  323. <el-button size="small" type="primary" @click="uploaduser(3)">
  324. <i class="el-icon-camera-solid" style="margin-right:4px;"></i>
  325. 证件识别
  326. </el-button>
  327. </div>
  328. </div>
  329. <el-form v-show="!tbczcarShow" class="demo-ruleForm" :model="policyHolderInfo" ref="policyHolderInfo" :rules="rules"
  330. label-width="130px" size="small " style="margin-top: 15px" label-position="top">
  331. <el-row style="flex-wrap: wrap; display: flex;">
  332. <el-col :span="5">
  333. <el-form-item label="投保人姓名" prop="name">
  334. <el-input v-model="policyHolderInfo.name" placeholder="请输入投保人姓名"></el-input>
  335. </el-form-item>
  336. </el-col>
  337. <el-col :span="5" :offset="1">
  338. <el-form-item label="证件类型" prop="identifyType">
  339. <el-select v-model="policyHolderInfo.identifyType" placeholder="身份证" disabled>
  340. <el-option label="身份证" value="01"></el-option>
  341. </el-select>
  342. </el-form-item>
  343. </el-col>
  344. <el-col :span="5" :offset="1">
  345. <el-form-item label="证件号码" prop="identifyNumber">
  346. <el-input v-model="policyHolderInfo.identifyNumber" placeholder="请输入证件号码" type="text" maxlength="18"
  347. show-word-limit @blur="identifyblur('policyHolderInfo')"></el-input>
  348. </el-form-item>
  349. </el-col>
  350. <el-col :span="5" :offset="1">
  351. <el-form-item label="年龄" prop="age">
  352. <el-input v-model="policyHolderInfo.age" placeholder="请输入年龄" type="text" disabled></el-input>
  353. </el-form-item>
  354. </el-col>
  355. <el-col :span="5">
  356. <el-form-item label="性别" prop="gender">
  357. <el-select v-model="policyHolderInfo.gender" placeholder="请选择性别">
  358. <el-option label="男" value="男"></el-option>
  359. <el-option label="女" value="女"></el-option>
  360. </el-select>
  361. </el-form-item>
  362. </el-col>
  363. <el-col :span="5" :offset="1">
  364. <el-form-item label="投保人手机号" prop="mobile">
  365. <el-input v-model="policyHolderInfo.mobile" placeholder="请输入投保人手机号" maxlength="11" type="text"
  366. @paste.native="handlePaste($event, 'policyHolderInfo')" show-word-limit></el-input>
  367. </el-form-item>
  368. </el-col>
  369. <!-- <el-col :xs="xscell" :sm="smcell" :md="mdcell" :lg="lgcell" :xl="xlcell">
  370. <el-form-item label="省市区:">
  371. <el-cascader v-model="selectedOptions2" :options="areaOptions"
  372. @change="event => areahandleChange(event, 'policyHolderInfo')"></el-cascader>
  373. </el-form-item>
  374. </el-col>-->
  375. <el-col :span="5" :offset="1">
  376. <el-form-item label="地址" prop="addr">
  377. <el-input v-model="policyHolderInfo.addr" placeholder="请输入地址" type="text"></el-input>
  378. </el-form-item>
  379. </el-col>
  380. <el-col :span="5" :offset="1">
  381. <el-form-item label="有效期起期" prop="identifyValidDate">
  382. <el-date-picker v-dateFormat v-model="policyHolderInfo.identifyValidDate" value-format="yyyy-MM-dd"
  383. :picker-options="pickerOptions" type="date" placeholder="选择有效期" placement="bottom-start"></el-date-picker>
  384. </el-form-item>
  385. </el-col>
  386. <el-col :span="5">
  387. <el-form-item label="有效期止期" prop="identifyValidEndDate">
  388. <el-date-picker v-dateFormat v-model="policyHolderInfo.identifyValidEndDate" type="date"
  389. value-format="yyyy-MM-dd" placeholder="选择有效期" placement="bottom-start"
  390. style="width: calc(100% - 40px);"></el-date-picker>
  391. <div class="insure-long-term" @click="insureLongterm('policyHolderInfo')">长期</div>
  392. </el-form-item>
  393. </el-col>
  394. <el-col :span="5" :offset="1">
  395. <el-form-item label="电子邮箱" prop="email">
  396. <el-input v-model="policyHolderInfo.email" placeholder="请输入电子邮箱"></el-input>
  397. </el-form-item>
  398. </el-col>
  399. <!-- <el-col :xs="xscell" :sm="smcell" :md="mdcell" :lg="lgcell" :xl="xlcell" v-if="isApplicantShow">
  400. <el-form-item label="省市区:">
  401. <el-cascader v-model="policyHolderInfo.provinceData" :options="areaOption" :props="{ value: 'code',label: 'name',children: 'sub'}"></el-cascader>
  402. </el-form-item>
  403. </el-col>-->
  404. </el-row>
  405. </el-form>
  406. </div>
  407. <div class="Enclosure flex f-c back">
  408. <div class="home flex j-s a-c">
  409. <div class="flex j-s a-c">
  410. <img src="../../../../src/icon/被投保人信息.png" alt class="icon-img" />
  411. <span style="margin-left:10px;">被保人信息</span>
  412. </div>
  413. <div class="flex j-s a-c">
  414. <div style="font-size:12px;margin:0 10px;">
  415. 同投保人
  416. <el-switch v-model="bbtbcarShow" active-color="#D42426" @change="bbtbcarShowChange()"></el-switch>
  417. </div>
  418. <div style="font-size:12px;margin:0 10px;">
  419. 同车主
  420. <el-switch v-model="bbczcarShow" active-color="#D42426" @change="bbczcarShowChange()"></el-switch>
  421. </div>
  422. <el-button size="small" type="primary" @click="uploaduser(4)">
  423. <i class="el-icon-camera-solid" style="margin-right:4px;"></i>
  424. 证件识别
  425. </el-button>
  426. </div>
  427. </div>
  428. <el-form v-show="!bbtbcarShow && !bbczcarShow" class="demo-ruleForm" :model="insuredPersonInfo"
  429. ref="insuredPersonInfo" :rules="rules" label-width="130px" size="small" style="margin-top: 15px"
  430. label-position="top">
  431. <el-row style="flex-wrap: wrap; display: flex;">
  432. <el-col :span="5">
  433. <el-form-item label="被保人姓名" prop="name">
  434. <el-input v-model="insuredPersonInfo.name" placeholder="请输入被保人姓名"></el-input>
  435. </el-form-item>
  436. </el-col>
  437. <el-col :span="5" :offset="1">
  438. <el-form-item label="证件类型" prop="identifyType">
  439. <el-select v-model="insuredPersonInfo.identifyType" placeholder="身份证" disabled>
  440. <el-option label="身份证" value="01"></el-option>
  441. </el-select>
  442. </el-form-item>
  443. </el-col>
  444. <el-col :span="5" :offset="1">
  445. <el-form-item label="证件号码" prop="identifyNumber">
  446. <el-input v-model="insuredPersonInfo.identifyNumber" placeholder="请输入证件号码" type="text" maxlength="18"
  447. show-word-limit @blur="identifyblur('insuredPersonInfo')"></el-input>
  448. </el-form-item>
  449. </el-col>
  450. <el-col :span="5" :offset="1">
  451. <el-form-item label="年龄" prop="age">
  452. <el-input v-model="insuredPersonInfo.age" placeholder="请输入年龄" type="text" disabled></el-input>
  453. </el-form-item>
  454. </el-col>
  455. <el-col :span="5">
  456. <el-form-item label="性别" prop="gender">
  457. <el-select v-model="insuredPersonInfo.gender" placeholder="请选择性别">
  458. <el-option label="男" value="男"></el-option>
  459. <el-option label="女" value="女"></el-option>
  460. </el-select>
  461. </el-form-item>
  462. </el-col>
  463. <el-col :span="5" :offset="1">
  464. <el-form-item label="被保人手机号" prop="mobile">
  465. <el-input v-model="insuredPersonInfo.mobile" placeholder="请输入被保人手机号" maxlength="11" type="text"
  466. @paste.native="handlePaste($event, 'insuredPersonInfo')" show-word-limit></el-input>
  467. </el-form-item>
  468. </el-col>
  469. <!-- <el-col :xs="xscell" :sm="smcell" :md="mdcell" :lg="lgcell" :xl="xlcell">
  470. <el-form-item label="省市区:">
  471. <el-cascader v-model="selectedOptions3" :options="areaOptions"
  472. @change="event => areahandleChange(event, 'insuredPersonInfo')"></el-cascader>
  473. </el-form-item>
  474. </el-col>-->
  475. <el-col :span="5" :offset="1">
  476. <el-form-item label="地址" prop="addr">
  477. <el-input v-model="insuredPersonInfo.addr" placeholder="请输入地址" type="text"></el-input>
  478. </el-form-item>
  479. </el-col>
  480. <el-col :span="5" :offset="1">
  481. <el-form-item label="有效期起期" prop="identifyValidDate">
  482. <el-date-picker v-dateFormat v-model="insuredPersonInfo.identifyValidDate" value-format="yyyy-MM-dd"
  483. :picker-options="pickerOptions" type="date" placeholder="选择有效期" placement="bottom-start"></el-date-picker>
  484. </el-form-item>
  485. </el-col>
  486. <el-col :span="5">
  487. <el-form-item label="有效期止期" prop="identifyValidEndDate">
  488. <el-date-picker v-dateFormat v-model="insuredPersonInfo.identifyValidEndDate" type="date"
  489. value-format="yyyy-MM-dd" placeholder="选择有效期" placement="bottom-start"
  490. style="width: calc(100% - 40px);"></el-date-picker>
  491. <div class="insure-long-term" @click="insureLongterm('insuredPersonInfo')">长期</div>
  492. </el-form-item>
  493. </el-col>
  494. <el-col :span="5" :offset="1">
  495. <el-form-item label="电子邮箱" prop="email">
  496. <el-input v-model="insuredPersonInfo.email" placeholder="请输入电子邮箱"></el-input>
  497. </el-form-item>
  498. </el-col>
  499. <!-- <el-col :xs="xscell" :sm="smcell" :md="mdcell" :lg="lgcell" :xl="xlcell" v-if="isInsuredShow">
  500. <el-form-item label="省市区:">
  501. <el-cascader v-model="insuredPersonInfo.provinceData" :options="areaOption" :props="{ value: 'code',label: 'name',children: 'sub'}"></el-cascader>
  502. </el-form-item>
  503. </el-col>-->
  504. </el-row>
  505. </el-form>
  506. </div>
  507. <div class="Enclosure flex f-c back">
  508. <div class="home flex j-s a-c">
  509. <div class="flex j-s a-c color" id="insurance">
  510. <img src="../../../../src/icon/投保信息.png" alt class="icon-img" />
  511. <span style="margin-left:10px;">投保信息</span>
  512. <el-switch style="margin:0 10px 0 30px;" @change="immediatelyChange" v-model="immediatelyValue"
  513. active-color="#D42426"></el-switch>
  514. <span style="font-weight:normal;font-size: 13px;">即时投保</span>
  515. </div>
  516. </div>
  517. <el-form class="back demo-ruleForm" :inline="true" :model="Carinsurance" label-width="150px" size="small"
  518. style="margin-top: 15px" label-position="top">
  519. <div class="flex j-start a-c">
  520. <div class="flex j-c a-start">
  521. <el-checkbox class="checkbox" style="margin-right: 20px" v-model="jqchecked"
  522. @change="jqcheckedChange"></el-checkbox>
  523. <div class="flex f-c a-c">
  524. <el-form-item label="交强险起保日期" prop="identifyNumber">
  525. <el-date-picker v-dateFormat value-format="yyyy-MM-dd HH:mm:ss" v-model="jqstartDate" @change="jqChange"
  526. type="datetime" placeholder="选择日期时间" placement="bottom-start"></el-date-picker>
  527. </el-form-item>
  528. <el-form-item label="交强险终保日期" prop="identifyNumber">
  529. <el-date-picker v-dateFormat value-format="yyyy-MM-dd HH:mm:ss" v-model="jqendDate" type="datetime"
  530. placeholder="选择日期时间" placement="bottom-start"></el-date-picker>
  531. </el-form-item>
  532. </div>
  533. </div>
  534. <div class="flex f-c a-c synchronous" style="margin: 0 50px;" @click="synchronization">
  535. <span style="font-size:12px;">同步</span>
  536. </div>
  537. <div class="flex j-c a-start">
  538. <el-checkbox class="checkbox" style="margin-right: 20px" v-model="sychecked"
  539. @change="sycheckedChange"></el-checkbox>
  540. <div class="flex f-c a-c">
  541. <el-form-item label="商业险起保日期" prop="name">
  542. <el-date-picker v-dateFormat value-format="yyyy-MM-dd HH:mm:ss" v-model="systartDate" @change="syChange"
  543. type="datetime" placeholder="选择日期时间" placement="bottom-start"></el-date-picker>
  544. </el-form-item>
  545. <el-form-item label="商业险终保日期" prop="name">
  546. <el-date-picker v-dateFormat value-format="yyyy-MM-dd HH:mm:ss" v-model="syendDate" type="datetime"
  547. placeholder="选择日期时间" placement="bottom-start"></el-date-picker>
  548. </el-form-item>
  549. </div>
  550. </div>
  551. </div>
  552. </el-form>
  553. </div>
  554. <div class="Enclosure flex f-c back">
  555. <div class="home flex j-s a-c">
  556. <div class="flex j-s a-c color" id="insurance">
  557. <img src="../../../../src/icon/车船税.png" alt class="icon-img" />
  558. <span style="margin-left:10px;">车船税</span>
  559. </div>
  560. </div>
  561. <el-form class="demo-ruleForm" :model="vehicleAndVesselTaxForm" ref="vehicleAndVesselTaxForm" :rules="rules"
  562. label-width="160px" size="small" style="margin-top: 15px" label-position="top">
  563. <el-row style="flex-wrap: wrap; display: flex;">
  564. <el-col :span="5">
  565. <el-form-item label="纳税类型:" prop="taxRelifFlag">
  566. <el-select @change="taxRelifFlagChange" v-model="vehicleAndVesselTaxForm.taxRelifFlag" placeholder="纳税类型">
  567. <el-option v-for="(item, index) in taxRelifFlagoptions" :key="index" :label="item.dictTag"
  568. :value="item.dictValue"></el-option>
  569. </el-select>
  570. </el-form-item>
  571. </el-col>
  572. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 1" :span="5" :offset="1">
  573. <el-form-item label="纳税人识别号:" prop="identifyNumber">
  574. <el-input v-model="vehicleAndVesselTaxForm.identifyNumber" placeholder="请输入纳税人识别号" type="text"></el-input>
  575. </el-form-item>
  576. </el-col>
  577. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 1" :span="5" :offset="1">
  578. <el-form-item label="纳税人名称:" prop="taxpayerName">
  579. <el-input v-model="vehicleAndVesselTaxForm.taxpayerName" placeholder="请输入纳税人名称" type="text"></el-input>
  580. </el-form-item>
  581. </el-col>
  582. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 1" :span="5" :offset="1">
  583. <el-form-item label="证件类型:" prop="taxpayerIdentifier">
  584. <el-select v-model="vehicleAndVesselTaxForm.taxpayerIdentifier" placeholder="证件类型" clearable>
  585. <el-option v-for="(item, index) in taxpayerIdentifieroptions" :key="index" :label="item.dictTag"
  586. :value="item.dictValue"></el-option>
  587. </el-select>
  588. </el-form-item>
  589. </el-col>
  590. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 2 || vehicleAndVesselTaxForm.taxRelifFlag == 3"
  591. :span="5" :offset="1">
  592. <el-form-item label="减免税凭证号:" prop="extendChar2">
  593. <el-input v-model="vehicleAndVesselTaxForm.extendChar2" placeholder="请输入减免税凭证号" type="text"></el-input>
  594. </el-form-item>
  595. </el-col>
  596. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 4" :span="5" :offset="1">
  597. <el-form-item label="完税凭证号:" prop="paidFreeCertificate">
  598. <el-input v-model="vehicleAndVesselTaxForm.paidFreeCertificate" placeholder="请输入完税凭证号"
  599. type="text"></el-input>
  600. </el-form-item>
  601. </el-col>
  602. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 2 || vehicleAndVesselTaxForm.taxRelifFlag == 3"
  603. :span="5" :offset="1">
  604. <el-form-item label="减免税原因:" prop="relifReason">
  605. <el-select v-model="vehicleAndVesselTaxForm.relifReason" placeholder="减免税原因" clearable>
  606. <el-option v-for="(item, index) in relifReasonoptions" :key="index" :label="item.dictTag"
  607. :value="item.dictValue"></el-option>
  608. </el-select>
  609. </el-form-item>
  610. </el-col>
  611. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag != 1" :span="5" :offset="1">
  612. <el-form-item label="税务机关代码:" prop="taxComCode">
  613. <el-input v-model="vehicleAndVesselTaxForm.taxComCode" placeholder="请输入税务机关代码" type="text"></el-input>
  614. </el-form-item>
  615. </el-col>
  616. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag != 1" :span="5"
  617. :offset="vehicleAndVesselTaxForm.taxRelifFlag == 4 ? 1 : 0">
  618. <el-form-item label="税务机关名称:" prop="taxComName">
  619. <el-input v-model="vehicleAndVesselTaxForm.taxComName" placeholder="请输入税务机关名称" type="text"></el-input>
  620. </el-form-item>
  621. </el-col>
  622. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 4" :span="5">
  623. <el-form-item label="完税凭证填发日期:" prop="taxDocumentDate">
  624. <el-date-picker v-dateFormat v-model="vehicleAndVesselTaxForm.taxDocumentDate" value-format="yyyy-MM-dd"
  625. type="date" placeholder="完税凭证填发日期" placement="bottom-start"></el-date-picker>
  626. </el-form-item>
  627. </el-col>
  628. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 4" :span="5" :offset="1">
  629. <el-form-item label="完税凭证地区:" prop="taxPaidAreaCode">
  630. <el-select v-model="vehicleAndVesselTaxForm.taxPaidAreaCode" placeholder="完税凭证地区" clearable>
  631. <el-option v-for="(item, index) in provinceSelect" :key="index" :label="item.name"
  632. :value="item.code"></el-option>
  633. </el-select>
  634. </el-form-item>
  635. </el-col>
  636. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 3" :span="5" :offset="1">
  637. <el-form-item label="减税比例:" prop="taxRelief">
  638. <el-input v-model="vehicleAndVesselTaxForm.taxRelief" placeholder="请输入0~1的数值" type="text"></el-input>
  639. </el-form-item>
  640. </el-col>
  641. </el-row>
  642. </el-form>
  643. </div>
  644. <div class="Enclosure flex f-c back">
  645. <div class="home flex j-s a-c back">
  646. <div class="flex j-s a-c" id="more">
  647. <img src="../../../../src/icon/险别选择.png" alt class="icon-img" />
  648. <span style="margin-left:15px;width: 120px">险别选择</span>
  649. <el-select size="small" style="width:70%" v-model="packageValue" placeholder="请选择套餐" @change="packageChange">
  650. <el-option v-for="item in packageOptions" :key="item.id" :label="item.title" :value="item.id"></el-option>
  651. </el-select>
  652. </div>
  653. </div>
  654. <div class="flex f-c more">
  655. <div class="flex j-s a-c more-title back">
  656. <div style="width:590px;padding-left:100px;" class="flex j-s a-c">
  657. <span>险别</span>
  658. <span>保额(元)</span>
  659. </div>
  660. </div>
  661. <div class="flex a-c more-data back" v-for="(insureitem, insureindex) in insureList" :key="insureindex">
  662. <div style="width:700px;padding-left: 100px;" class="flex j-s a-c">
  663. <div style="width:auto;">
  664. <span style="text-align:center;">
  665. {{ insureitem.kindName }}
  666. <el-input
  667. v-show="insureitem.kindCode == 'D4' || insureitem.kindCode == 'MJ4' || insureitem.kindCode == 'SY_FJ_YBW2'"
  668. v-model="sumseatCount" style="width:40px;margin:0 5px;" size="small" placeholder disabled></el-input>
  669. <span
  670. v-show="insureitem.kindCode == 'D4' || insureitem.kindCode == 'MJ4' || insureitem.kindCode == 'SY_FJ_YBW2'">座</span>
  671. </span>
  672. </div>
  673. <el-select v-if="insureitem.amtList" filterable v-model="insureitem.amount" placeholder="请选择"
  674. @change="insureitemChange" size="small" style="width: 300px;">
  675. <el-option :label="item.label" :value="item.value" v-for="(item, index) in insureitem.amtList"
  676. :key="index"></el-option>
  677. </el-select>
  678. <span v-else>
  679. <el-input-number size="small" style="width: 280px;margin-right:10px" v-model="insureitem.amount"
  680. :min="0"></el-input-number>次
  681. </span>
  682. </div>
  683. </div>
  684. <!-- <div style="margin:0 auto;font-size: 14px;cursor: pointer;margin-top:15px;">
  685. <span v-show="insureMore" @click="selectMore(insureList.length)">
  686. 查看更多
  687. <i class="el-icon-arrow-down"></i>
  688. </span>
  689. <span v-show="!insureMore" @click="packup()">
  690. 收起
  691. <i class="el-icon-arrow-up"></i>
  692. </span>
  693. </div>-->
  694. </div>
  695. </div>
  696. <div class="Enclosure flex f-c back" v-if="isLetter=='3'">
  697. <div class="home flex j-s a-c">
  698. <div class="flex j-s a-c color" id="Waibu">
  699. <img src="../../../../src/icon/车船税.png" alt class="icon-img" />
  700. <span style="margin-left:10px;">外部订单</span>
  701. </div>
  702. <div class="flex j-c a-c">
  703. <el-button v-show="policyNumberForm.jqpolicyno || policyNumberForm.sypolicyno" size="small" type="primary" @click="policyUpload()">
  704. <i class="el-icon-camera-solid" style="margin-right:4px;"></i>
  705. 保单上传
  706. </el-button>
  707. </div>
  708. </div>
  709. <el-form class="demo-ruleForm" :model="policyNumberForm" ref="policyNumberForm" :rules="rules"
  710. label-width="160px" size="small" style="margin-top: 15px" label-position="top">
  711. <el-row style="flex-wrap: wrap; display: flex;">
  712. <el-col :span="5">
  713. <el-form-item label="交强保单号" prop="jqpolicyno">
  714. <el-input v-model="policyNumberForm.jqpolicyno" placeholder="请输入交强保单号" type="text"></el-input>
  715. </el-form-item>
  716. </el-col>
  717. <el-col :span="5" :offset="1">
  718. <el-form-item label="商业保单号" prop="sypolicyno">
  719. <el-input v-model="policyNumberForm.sypolicyno" placeholder="请输入商业保单号" type="text"></el-input>
  720. </el-form-item>
  721. </el-col>
  722. <el-col :span="5" :offset="1">
  723. <el-form-item label="驾意保单号" prop="jypolicyno">
  724. <el-input v-model="policyNumberForm.jypolicyno" placeholder="请输入驾意保单号" type="text"></el-input>
  725. </el-form-item>
  726. </el-col>
  727. <el-col :span="5" :offset="1">
  728. <el-form-item label="交强险费用" prop="jqpremium">
  729. <el-input v-model="policyNumberForm.jqpremium" placeholder="请输入交强险费用" type="text"></el-input>
  730. </el-form-item>
  731. </el-col>
  732. <el-col :span="5" >
  733. <el-form-item label="商业险费用" prop="sypremium">
  734. <el-input v-model="policyNumberForm.sypremium" placeholder="请输入商业险费用" type="text"></el-input>
  735. </el-form-item>
  736. </el-col>
  737. <el-col :span="5" :offset="1">
  738. <el-form-item label="驾意险费用" prop="jypremium">
  739. <el-input v-model="policyNumberForm.jypremium" placeholder="请输入驾意险费用" type="text"></el-input>
  740. </el-form-item>
  741. </el-col>
  742. <el-col :span="5" :offset="1">
  743. <el-form-item label="车船税" prop="taxamount">
  744. <el-input v-model="policyNumberForm.taxamount" placeholder="请输入车船税" type="text"></el-input>
  745. </el-form-item>
  746. </el-col>
  747. <el-col :span="5" :offset="1">
  748. <el-form-item label="交强险手续费比例" prop="jqSuperviseCostsProportion">
  749. <el-input v-model="policyNumberForm.jqSuperviseCostsProportion" placeholder="请输入交强险手续费比例" type="text"></el-input>
  750. </el-form-item>
  751. </el-col>
  752. <el-col :span="5" >
  753. <el-form-item label="商业险手续费比例" prop="sySuperviseCostsProportion">
  754. <el-input v-model="policyNumberForm.sySuperviseCostsProportion" placeholder="请输入商业险手续费比例" type="text"></el-input>
  755. </el-form-item>
  756. </el-col>
  757. <el-col :span="5" :offset="1">
  758. <el-form-item label="非车手续费比例" prop="noSuperviseCostsProportion">
  759. <el-input v-model="policyNumberForm.noSuperviseCostsProportion" placeholder="请输入非车手续费比例" type="text"></el-input>
  760. </el-form-item>
  761. </el-col>
  762. <el-col :span="5" :offset="1">
  763. <el-form-item label="交强险其他费用比例" prop="jqOtherCostsProportion">
  764. <el-input v-model="policyNumberForm.jqOtherCostsProportion" placeholder="请输入交强险其他费用比例" type="text"></el-input>
  765. </el-form-item>
  766. </el-col>
  767. <el-col :span="5" :offset="1">
  768. <el-form-item label="商业险其他费用比例" prop="syOtherCostsProportion">
  769. <el-input v-model="policyNumberForm.syOtherCostsProportion" placeholder="请输入商业险其他费用比例" type="text"></el-input>
  770. </el-form-item>
  771. </el-col>
  772. <el-col :span="5" >
  773. <el-form-item label="非车其他费用比例" prop="noOtherCostsProportion">
  774. <el-input v-model="policyNumberForm.noOtherCostsProportion" placeholder="请输入非车其他费用比例" type="text"></el-input>
  775. </el-form-item>
  776. </el-col>
  777. </el-row>
  778. </el-form>
  779. </div>
  780. <div class="Enclosure flex f-c back">
  781. <div class="home flex j-s">
  782. <div class="flex j-s a-c" id="company">
  783. <img src="../../../../src/icon/保险公司.png" alt class="icon-img" />
  784. <span style="margin-left:10px;">保险公司</span>
  785. <div class="csstool">
  786. <span>是否过户车</span>
  787. <el-switch @change="transferFlagChange" v-model="carInfo.transferFlag" active-color="#D42426"></el-switch>
  788. </div>
  789. <div class="csstool">
  790. <span>商业险是否过户</span>
  791. <el-switch v-model="carInfo.transferFlagBi" active-color="#D42426"></el-switch>
  792. </div>
  793. <div class="csstool">
  794. <span>是否脱保</span>
  795. <el-switch v-model="carInfo.outOfInsurance" active-color="#D42426"></el-switch>
  796. </div>
  797. <div class="csstool">
  798. <span>是否二手车</span>
  799. <el-switch v-model="carInfo.usedCar" active-color="#D42426"></el-switch>
  800. </div>
  801. </div>
  802. <div class="flex j-c a-c">
  803. <el-button v-show="imageUploadShow" size="small" type="primary" @click="imageUpload()">
  804. <i class="el-icon-camera-solid" style="margin-right:4px;"></i>
  805. 影像上传
  806. </el-button>
  807. </div>
  808. </div>
  809. <div>
  810. <div class="companyhead">
  811. <el-row>
  812. <el-col :span="1">
  813. <el-checkbox v-if="isLetter!=='3'" style="margin:0 10px 0 10px" @change="handleCheckAllChange"></el-checkbox>
  814. <span style="font-size:14px;">全选</span>
  815. </el-col>
  816. <el-col :span="2" style="margin: 0 42px 0 35px;">
  817. <span>保险公司</span>
  818. </el-col>
  819. <el-col :span="5">
  820. <span>报价协议</span>
  821. </el-col>
  822. <el-col :span="3">
  823. <span>报价结果</span>
  824. </el-col>
  825. <el-col :span="3">
  826. <span>交强险</span>
  827. </el-col>
  828. <el-col :span="3">
  829. <span>车船税</span>
  830. </el-col>
  831. <el-col :span="3">
  832. <span>商业险</span>
  833. </el-col>
  834. <el-col :span="2">
  835. <span>驾意险</span>
  836. </el-col>
  837. </el-row>
  838. </div>
  839. <div class="coll">
  840. <div v-loading.fullscreen.lock="loading" class="hovers" v-for="(reslistitem, reslistindex) in totalCompanyList"
  841. :key="reslistindex">
  842. <el-row>
  843. <el-col :span="1" style="margin-left: 20px;">
  844. <el-checkbox v-model="reslistitem.checked" :disabled="reslistitem.disabled"
  845. @change="event => initchange(event, reslistitem.id, reslistitem.cnName, reslistindex)"></el-checkbox>
  846. </el-col>
  847. <el-col :span="3">
  848. <img :src="reslistitem.logo" alt
  849. style="width:30px; height:30px;vertical-align: middle;margin-left:20px" />
  850. <span>{{ reslistitem.namesimple }}</span>
  851. </el-col>
  852. <el-col :span="5">
  853. <el-select size="small" v-if="reslistitem.isTaxSource && reslistitem.isTaxSource == '1'" :disabled="true"
  854. placeholder="默认" style="width: 230px;" v-model="isTaxSourceModel" :clearable="true"></el-select>
  855. <el-select size="small" v-else :disabled="!reslistitem.checked" v-model="reslistitem.agreementId"
  856. placeholder="请选择协议" style="width: 230px;" :clearable="true"
  857. @change="val => agreementChange(val, reslistitem.agreement, reslistindex, reslistitem)">
  858. <div v-for="(agreementitem, agreementindex ) in reslistitem.agreement" :key="agreementindex">
  859. <div
  860. v-if="agreementitem.licenseNo && agreementitem.licenseNo.length > 0 && carInfo.licenseNo.length > 0 ? agreementitem.licenseNo.includes(carInfo.licenseNo.slice(0, 2)) : 'true'">
  861. <el-option :label="agreementitem.agreementName" :value="agreementitem.id"
  862. :disabled="agreementitem.disabled"></el-option>
  863. </div>
  864. </div>
  865. </el-select>
  866. </el-col>
  867. <el-col :span="3">
  868. <div v-show="reslistitem.quoteCode == '0'">
  869. <span>未报价</span>
  870. </div>
  871. <div v-show="reslistitem.quoteCode == '1'">
  872. <i style="color:#D42426" class="el-icon-loading"></i>
  873. </div>
  874. <div class="dis f-c" v-show="reslistitem.quoteCode == '200'">
  875. <span style="color:#D42426;font-weight:bold;">
  876. ¥{{
  877. reslistitem.result.sumPermium
  878. }}
  879. </span>
  880. <span style="font-size: 13px;color:#2D4D89" class="m-top-5">优惠:{{ reslistitem.result.sumExportFee
  881. }}</span>
  882. </div>
  883. </el-col>
  884. <el-col :span="3" v-show="reslistitem.quoteCode == '200'">
  885. <div class="dis f-c">
  886. <span style="color:#D42426;font-weight:bold;">
  887. ¥{{
  888. reslistitem.result.jqPremium }}
  889. </span>
  890. <span v-if="reslistitem.result.jqPremium" style="font-size: 13px;color:#2D4D89" class="m-top-5">优惠:{{
  891. reslistitem.result.jqExportFee }}</span>
  892. </div>
  893. </el-col>
  894. <el-col :span="3" v-show="reslistitem.quoteCode == '200'">
  895. <span style="color:#D42426;font-weight:bold;">
  896. ¥{{
  897. reslistitem.result.taxAmount }}
  898. </span>
  899. </el-col>
  900. <el-col :span="3" v-show="reslistitem.quoteCode == '200'">
  901. <div class="dis f-c">
  902. <span style="color:#D42426;font-weight:bold;">
  903. ¥{{
  904. reslistitem.result.syPremium }}
  905. </span>
  906. <span v-if="reslistitem.result.syPremium" style="font-size: 13px;color:#2D4D89" class="m-top-5">优惠:{{
  907. reslistitem.result.syExportFee }}</span>
  908. </div>
  909. </el-col>
  910. <el-col :span="2" v-if="reslistitem.quoteCode == '200'" style="">
  911. <div class="dis f-c">
  912. <span style="color:#D42426;font-weight:bold;">
  913. {{
  914. reslistitem.result.jyPremium ? '¥' + reslistitem.result.jyPremium : '无' }}
  915. </span>
  916. <span v-if="reslistitem.result.jyPremium" style="font-size: 13px;color:#2D4D89" class="m-top-5">优惠:{{
  917. reslistitem.result.noExportFee }}</span>
  918. </div>
  919. </el-col>
  920. <el-col :span="24" v-show="reslistitem.quoteCode == '200' && reslistitem.result.feeNoDescription">
  921. <div class="flex offer-time" style="color:#D42426">
  922. <span>该车未匹配销管费用,不建议投保!</span>
  923. <el-tooltip class="item" effect="dark" content="费用匹配错误信息" placement="top">
  924. <i class="el-icon-s-goods"
  925. @click="open3(reslistitem.namesimple + '优惠信息', reslistitem.result.feeNoDescription)"
  926. style="font-size:20px;transform: scale(0.8);vertical-align: middle;"
  927. :disabled="reslistitem.quoteCode == '200' && reslistitem.result.feeNoDescription"></i>
  928. </el-tooltip>
  929. </div>
  930. </el-col>
  931. <el-col :span="24"
  932. v-show="(reslistitem.quoteCode != '200') && (reslistitem.quoteCode != '0') && (reslistitem.quoteCode != '1')">
  933. <div class="flex j-s offer-time" style="color:#D42426">{{ reslistitem.msg.length > 500 ?
  934. reslistitem.msg.slice(0, 500) : reslistitem.msg }}</div>
  935. </el-col>
  936. </el-row>
  937. <div class="flex j-s offer-time" v-if="reslistitem.quoteCode == '200'">
  938. <div style="line-height: 25px;">
  939. 保险期限:
  940. <span v-show="reslistitem.result.startDateJq">
  941. 【交强险】
  942. <span>
  943. {{ reslistitem.result.startDateJq }} -
  944. {{ reslistitem.result.endDateJq }}
  945. </span>
  946. </span>
  947. <span v-show="reslistitem.result.startDateSy" style="margin-left: 20px;">
  948. 【商业险】
  949. <span>
  950. {{ reslistitem.result.startDateSy }} -
  951. {{ reslistitem.result.endDateSy }}
  952. </span>
  953. </span>
  954. <span @click="syncData(reslistitem.result)">
  955. <el-tooltip class="item" effect="dark" content="使用此时间" placement="top">
  956. <i style="color:red" class="el-icon-time"></i>
  957. </el-tooltip>
  958. </span>
  959. <div>
  960. <span v-show="reslistitem.result.JqExportFee">
  961. 交强出口费用<span>{{ reslistitem.result.JqExportFee }}</span>
  962. </span>
  963. <span v-show="reslistitem.result.syExportFee">
  964. 商业出口费用<span>{{ reslistitem.result.syExportFee }}</span>
  965. </span>
  966. <span v-show="reslistitem.result.noExportFee">
  967. 非车出口费用<span> {{ reslistitem.result.noExportFee }}</span>
  968. </span>
  969. </div>
  970. <div>
  971. <span v-if="reslistitem.namesimple == '永诚财险'">
  972. 光博分:
  973. <span>
  974. {{ reslistitem.result.ilogPreUdwMess ?
  975. reslistitem.result.ilogPreUdwMess : '无' }}
  976. </span>
  977. </span>
  978. <span v-else>
  979. 评分:
  980. <span>
  981. {{ reslistitem.result.ilogPreUdwMess ?
  982. reslistitem.result.ilogPreUdwMess : '无' }}
  983. </span>
  984. </span>
  985. <span v-if="reslistitem.result.jqScore" class="marginL">
  986. 交强类型评分:
  987. <span>{{ reslistitem.result.jqScore }}</span>
  988. </span>
  989. <span v-if="reslistitem.result.syScore" class="marginL">
  990. 商业类型评分:
  991. <span>{{ reslistitem.result.syScore }}</span>
  992. </span>
  993. <span v-if="reslistitem.result.lossRation" class="marginL">
  994. 总赔付率:
  995. <span>{{ reslistitem.result.lossRation }}</span>
  996. </span>
  997. <span v-if="reslistitem.result.jqLossRation" class="marginL">
  998. 交强赔付率:
  999. <span>{{ reslistitem.result.jqLossRation }}</span>
  1000. </span>
  1001. <span v-if="reslistitem.result.syLossRation" class="marginL">
  1002. 商业赔付率:
  1003. <span>{{ reslistitem.result.syLossRation }}</span>
  1004. </span>
  1005. <span v-if="reslistitem.result.totalAdjustRate" class="marginL">
  1006. 自主定价系数:
  1007. <span>{{ reslistitem.result.totalAdjustRate }}</span>
  1008. </span>
  1009. <span v-if="reslistitem.result.jgAdjustRate" class="marginL">
  1010. 交强折扣系数:
  1011. <span>{{ reslistitem.result.jgAdjustRate }}</span>
  1012. </span>
  1013. <span v-if="reslistitem.result.syAdjustRate" class="marginL">
  1014. 商业折扣系数:
  1015. <span>{{ reslistitem.result.syAdjustRate }}</span>
  1016. </span>
  1017. <span v-if="reslistitem.result.jqRenewal" class="marginL">
  1018. 交强续保:
  1019. <span>
  1020. {{
  1021. reslistitem.result.jqRenewal ? reslistitem.result.jqRenewal : "无" }}
  1022. </span>
  1023. </span>
  1024. <span v-if="reslistitem.result.syRenewal" class="marginL">
  1025. 商业续保:
  1026. <span>
  1027. {{
  1028. reslistitem.result.syRenewal ? reslistitem.result.syRenewal : "无" }}
  1029. </span>
  1030. </span>
  1031. <span v-if="reslistitem.result.jqClaims" class="marginL">
  1032. 交强出险次数:
  1033. <span>
  1034. {{
  1035. reslistitem.result.jqClaims ? reslistitem.result.jqClaims : '无' }}
  1036. </span>
  1037. </span>
  1038. <span v-if="reslistitem.result.syClaims" class="marginL">
  1039. 商业出险次数:
  1040. <span>
  1041. {{
  1042. reslistitem.result.syClaims ? reslistitem.result.syClaims : '无' }}
  1043. </span>
  1044. </span>
  1045. <span v-if="reslistitem.namesimple == '紫金财险' && reslistitem.result.ubiPredictedInfoScore"
  1046. class="marginL">
  1047. 紫金能源车(鼎然-车辆风险评分):
  1048. <span>{{ reslistitem.result.ubiPredictedInfoScore }}</span>
  1049. </span>
  1050. <span v-if="reslistitem.result.iszdj && reslistitem.result.iszdj == '1'">真单交</span>
  1051. <span v-if="reslistitem.result.iszdj && reslistitem.result.iszdj == '0'">假单交</span>
  1052. </div>
  1053. </div>
  1054. <div style="text-align: right;">
  1055. <div style="color:#2D4D89; ">
  1056. <el-tooltip class="item" effect="dark" content="上年信息" placement="top">
  1057. <i class="el-icon-chat-dot-round" @click="open2(reslistitem.namesimple, reslistitem.lastYearMsg)"
  1058. style="font-size:20px;transform: scale(0.8);vertical-align: middle;"
  1059. :disabled="reslistitem.namesimple == '众安财险' && reslistitem.result.tips == '需要验车'"
  1060. v-show="(reslistitem.quoteCode == '200' && reslistitem.lastYearMsg)"></i>
  1061. </el-tooltip>
  1062. <el-tooltip class="item" effect="dark" content="预核保信息" placement="top">
  1063. <i class="el-icon-chat-dot-round"
  1064. @click="openPredictInfo(reslistitem.namesimple, reslistitem.predictInfo)"
  1065. style="font-size:20px;transform: scale(0.8);vertical-align: middle;"
  1066. v-show="(reslistitem.quoteCode == '200' && reslistitem.predictInfo && reslistitem.predictInfo.length > 0 && reslistitem.namesimple == '中国人寿')"></i>
  1067. </el-tooltip>
  1068. <el-button :disabled="reslistitem.namesimple == '众安财险' && reslistitem.result.tips == '需要验车'"
  1069. v-show="reslistitem.quoteCode == '200' && !('editStatus' in reslistitem.result)" type="text"
  1070. size="small" style="color:#2D4D89;font-size:14px" @click="hbsubmitdialog(reslistitem)">下单</el-button>
  1071. <el-button v-show="reslistitem.quoteCode == '200'" type="text" size="small"
  1072. style="color:#2D4D89;font-size:14px "
  1073. @click="qoutedetail(reslistitem.result.companyId)">查看详情</el-button>
  1074. </div>
  1075. <div>
  1076. <el-button v-show="reslistitem.quoteCode == '200'" type="text" size="small" style="font-size:14px "
  1077. @click="bjdpreview(reslistitem.result.companyId)">报价单</el-button>
  1078. <el-button type="text" size="small" style="font-size:14px "
  1079. @click="Payment(reslistitem.result.companyId, reslistitem)"
  1080. v-show="reslistitem.orderstatus == '2' && !('editStatus' in reslistitem.result)">付款码</el-button>
  1081. </div>
  1082. </div>
  1083. </div>
  1084. <template>
  1085. <!-- <div style="margin:20px 0 0 100px;" v-if="reslistitem.checked && reslistitem.agreementId"> -->
  1086. <span v-if="reslistitem.checked && reslistitem.agreementId && reslistitem.underwritingDescription"
  1087. style="margin:20px 20px 0 100px;display: inline-block">{{ reslistitem.underwritingDescription }}</span>
  1088. <!-- </div> -->
  1089. </template>
  1090. <template v-if="reslistitem.namesimple == '恒邦财险' && reslistitem.checked && reslistitem.agreementId && isLetter!=='3'">
  1091. <div class="flex f-c Driving-risk">
  1092. <div class="dis a-c" style="margin:15px 0">
  1093. <span style="margin-right:15px;font-weight:bold">选择意外险</span>
  1094. <el-select style="width: 250px;margin-right:60px" filterable size="small" clearable
  1095. v-model="hengbangtemplateSelection" placeholder="未选择" @clear="clearAccidentFormHB"
  1096. @change="hengbangInsuranceChange">
  1097. <el-option v-for="(item, index) in hengbangInsuranceData" :key="index" :label="item.projectName"
  1098. :value="item.projectCode"></el-option>
  1099. </el-select>
  1100. 保费: <b>{{ hengbangaccidentalDrivingVo.sumPremium || 0 }}&ensp;元</b>
  1101. </div>
  1102. <el-table size="small" :data="hengbangInsuranceDataTable" border v-if="hengbangtemplateSelection"
  1103. ref="RsTable" highlight-current-row
  1104. :header-cell-style="{ background: '#F7F7F9 ', fontWeight: '700', color: '#333333' }">
  1105. <el-table-column prop="name" label="险种名称" align="center"></el-table-column>
  1106. <el-table-column prop="amount" label="险种金额" align="center"></el-table-column>
  1107. <!-- <el-table-column prop="sumgrosspremium" label="保费 (元)/每份" align="center">
  1108. <template slot-scope="scope">
  1109. <span>¥{{ scope.row.sumgrosspremium }}</span>
  1110. </template>
  1111. </el-table-column>
  1112. <el-table-column label="份数" align="center">
  1113. <template slot-scope="scope">
  1114. <span>{{ scope.row.quantity }}</span>
  1115. </template>
  1116. </el-table-column> -->
  1117. </el-table>
  1118. </div>
  1119. </template>
  1120. <template v-if="reslistitem.namesimple == '华农财险' && reslistitem.checked && reslistitem.agreementId &&isLetter!=='3'">
  1121. <div class="flex f-c Driving-risk">
  1122. <el-form :inline="true" :model="accidentFormHN" class="demo-form-inline"
  1123. style="font-weight:bold;margin-top:15px" size="small">
  1124. <el-form-item label="意外险类型:" style="margin-right:30px;">
  1125. <el-select clearable v-model="accidentFormHN.accidentType" placeholder="未选择"
  1126. @clear="clearAccidentFormHN" @change="huanongInsuranceChange">
  1127. <el-option v-for="(item, index) in huanongInsuranceData" :key="index" :label="item.projectName"
  1128. :value="item.projectCode"></el-option>
  1129. </el-select>
  1130. </el-form-item>
  1131. <el-form-item label="选择份数" style="margin-right:30px;">
  1132. <el-input-number v-model="accidentFormHN.quantity" :min="1"
  1133. controls-position="right"></el-input-number>
  1134. <!-- <span style="margin-left: 5px;">份</span> -->
  1135. </el-form-item>
  1136. </el-form>
  1137. <el-table v-if="accidentFormHN.accidentType" size="small" :data="huanongInsuranceDataTable" border
  1138. ref="expandTable" highlight-current-row
  1139. :header-cell-style="{ background: '#F7F7F9 ', fontWeight: '700', color: '#333333' }">
  1140. <el-table-column prop="name" label="保险责任" align="center"></el-table-column>
  1141. <el-table-column prop="amount" label="保额" align="center">
  1142. <template slot-scope="scope">
  1143. <el-input v-model="scope.row.amount" placeholder="请输入内容" size="small" disabled></el-input>
  1144. </template>
  1145. </el-table-column>
  1146. </el-table>
  1147. </div>
  1148. </template>
  1149. <template v-if="reslistitem.namesimple == '太平财险' && reslistitem.checked && reslistitem.agreementId &&isLetter!=='3'">
  1150. <div class="flex f-c Driving-risk">
  1151. <div class="dis a-c" style="margin:15px 0">
  1152. <span style="margin-right:15px;font-weight:bold">选择意外险</span>
  1153. <el-select style="width: 250px;margin-right:60px" filterable size="small" clearable
  1154. v-model="taipingtemplateSelection" placeholder="未选择" @clear="clearAccidentFormTP"
  1155. @change="taipingInsuranceChange">
  1156. <el-option v-for="(item, index) in taipingInsuranceData" :key="index" :label="item.projectName"
  1157. :value="item.projectCode"></el-option>
  1158. </el-select>
  1159. 每份价税合计: <b>{{ taipingaccidentalDrivingVo.sumPremium || 0 }}&ensp;元</b>
  1160. </div>
  1161. <el-table size="small" :data="taipingInsuranceDataTable" border v-if="taipingtemplateSelection"
  1162. ref="RsTable" highlight-current-row
  1163. :header-cell-style="{ background: '#F7F7F9 ', fontWeight: '700', color: '#333333' }">
  1164. <el-table-column prop="name" label="险种名称" align="center"></el-table-column>
  1165. <el-table-column prop="amount" label="险种金额" align="center"></el-table-column>
  1166. </el-table>
  1167. </div>
  1168. </template>
  1169. <template v-if="reslistitem.namesimple == '安盛天平' && reslistitem.checked && reslistitem.agreementId && isLetter!=='3'">
  1170. <div class="flex f-c Driving-risk">
  1171. <div class="dis a-c" style="margin-top:15px">
  1172. <span style="margin-right:15px;font-weight:bold;">意外险类型</span>
  1173. <el-select style="width: 250px;" size="small" clearable v-model="anshengtemplateSelection"
  1174. placeholder="未选择" @clear="clearAccidentFormAS" @change="anshengInsuranceChange">
  1175. <el-option v-for="(item, index) in anshengInsuranceData" :key="index"
  1176. :label="item.projectCode + ' ' + item.projectName" :value="item.projectCode"></el-option>
  1177. </el-select>
  1178. </div>
  1179. <el-table style='margin-top:20px;' size="small" :data="anshengInsuranceDataTable" border
  1180. v-if="anshengtemplateSelection" ref="RsTable" highlight-current-row
  1181. :header-cell-style="{ background: '#F7F7F9 ', fontWeight: '700', color: '#333333' }">
  1182. <el-table-column align="center" width="55" label="选择">
  1183. <template slot-scope="scope">
  1184. <el-radio class="radio" v-model="anshengInsurancetype" :label="scope.row.projectCode"
  1185. @click.native.stop.prevent="ASDrivingRadio(scope.row)">&nbsp;</el-radio>
  1186. </template>
  1187. </el-table-column>
  1188. <el-table-column prop="projectName" label="方案名称" align="center"></el-table-column>
  1189. <el-table-column prop="projectCode" label="方案代码" align="center"></el-table-column>
  1190. <el-table-column prop="quantity" label="份数" align="center"> </el-table-column>
  1191. </el-table>
  1192. </div>
  1193. </template>
  1194. <template v-if="reslistitem.namesimple == '中国人寿' && reslistitem.checked && reslistitem.agreementId&& isLetter!=='3'">
  1195. <div style="margin:15px 0 15px 100px">
  1196. <span>商业险折扣:</span>
  1197. <el-input style="width:220px" :disabled="!lastCompanyId" size="small" v-model="reslistitem.discount"
  1198. placeholder="请输入内容"
  1199. @input="reslistitem.discount = reslistitem.discount.replace(/[^\d.]/g, '')"></el-input>
  1200. </div>
  1201. <div class="flex f-c Driving-risk">
  1202. <div class="dis a-c">
  1203. <span style="margin-right:15px;font-weight:bold">选择意外险</span>
  1204. <el-select style="width: 250px;" filterable size="small" clearable v-model="renshoutemplateSelection"
  1205. placeholder="未选择" @clear="clearAccidentFormRS" @change="renshouInsuranceChange">
  1206. <el-option v-for="(item, index) in renshouInsuranceData" :key="index" :label="item.projectName"
  1207. :value="item.projectCode"></el-option>
  1208. </el-select>
  1209. </div>
  1210. <el-table size="small" style="margin-top:20px" :data="renshouInsuranceDataTable" border
  1211. v-if="renshoutemplateSelection" @row-click="RSDrivingChange" ref="RsTable" highlight-current-row
  1212. :header-cell-style="{ background: '#F7F7F9 ', fontWeight: '700', color: '#333333' }">
  1213. <el-table-column prop="name" label="方案名称" align="center"></el-table-column>
  1214. <el-table-column prop="premium" label="保费 (元)起" align="center">
  1215. <template slot-scope="scope">
  1216. <span>¥{{ scope.row.premium }}</span>
  1217. </template>
  1218. </el-table-column>
  1219. <el-table-column label="份数" align="center">
  1220. <template slot-scope="scope">
  1221. <span>{{ scope.row.quantity }}</span>
  1222. </template>
  1223. </el-table-column>
  1224. </el-table>
  1225. </div>
  1226. </template>
  1227. <template v-if="reslistitem.namesimple == '众安财险' && reslistitem.checked && reslistitem.agreementId && isLetter!=='3'">
  1228. <div class="flex f-c Driving-risk">
  1229. <div class="dis a-c" style="margin:15px 0">
  1230. <span style="margin-right:15px;font-weight:bold">选择意外险</span>
  1231. <el-select style="width: 250px;" filterable size="small" clearable v-model="zhongantemplateSelection"
  1232. placeholder="未选择" @clear="clearAccidentFormZA" @change="zhonganInsuranceChange">
  1233. <el-option v-for="(item, index) in zhonganInsuranceData" :key="index" :label="item.projectName"
  1234. :value="item.projectCode"></el-option>
  1235. </el-select>
  1236. <!-- 保费: <b>{{ zhonganaccidentalDrivingVo.sumgrosspremium || 0}}&ensp;元</b> -->
  1237. </div>
  1238. <el-table size="small" :data="zhonganInsuranceDataTable" border v-if="zhongantemplateSelection"
  1239. @row-click="ZADrivingChange" ref="RsTable" highlight-current-row
  1240. :header-cell-style="{ background: '#F7F7F9 ', fontWeight: '700', color: '#333333' }">
  1241. <el-table-column prop="name" label="险种名称" align="center"></el-table-column>
  1242. <el-table-column prop="amount" label="险种金额" align="center"></el-table-column>
  1243. </el-table>
  1244. </div>
  1245. </template>
  1246. <template v-if="reslistitem.namesimple == '紫金财险' && reslistitem.checked && reslistitem.agreementId && isLetter!=='3'">
  1247. <div style="margin:15px 0 15px 100px">
  1248. <span>自主定价系数:</span>
  1249. <el-input style="width:220px" size="small" v-model="reslistitem.coefficient"
  1250. placeholder="请输入内容"></el-input>
  1251. </div>
  1252. <div class="flex f-c Driving-risk">
  1253. <div class="dis a-c" style="margin-bottom:15px">
  1254. <span style="margin-right:15px;font-weight:bold">选择意外险</span>
  1255. <el-select style="width: 250px;" filterable multiple size="small" clearable
  1256. v-model="zijintemplateSelection" placeholder="未选择" @clear="clearAccidentFormZJ"
  1257. @change="zijinInsuranceChange">
  1258. <el-option v-for="(item, index) in ziJinInsuranceData" :key="index" :label="item.projectName"
  1259. :value="item.projectCode"></el-option>
  1260. </el-select>
  1261. </div>
  1262. <el-table size="small" :data="zijinInsuranceDataTable" border v-if="zijintemplateSelection"
  1263. @select="CheckboxChange" filterable ref="expandTable" highlight-current-row
  1264. :header-cell-style="{ background: '#F7F7F9 ', fontWeight: '700', color: '#333333' }">
  1265. <el-table-column type="selection" width="55"></el-table-column>
  1266. <el-table-column prop="projectName" label="方案名称" align="center"></el-table-column>
  1267. <el-table-column prop="sumAmount" label="总保额 (元)/每份" align="center"></el-table-column>
  1268. <el-table-column prop="sumPremium" label="保费 (元)/每份" align="center">
  1269. <template slot-scope="scope">
  1270. <span>¥{{ scope.row.sumPremium }}</span>
  1271. </template>
  1272. </el-table-column>
  1273. <el-table-column prop="quantity" label="份数" align="center">
  1274. <template slot-scope="scope">
  1275. <el-input-number v-model="scope.row.quantity" :min="1" size="small"
  1276. controls-position="right"></el-input-number>
  1277. </template>
  1278. </el-table-column>
  1279. <el-table-column prop="Totalprice" label="总保费 (元)" align="center">
  1280. <template slot-scope="scope">
  1281. <span v-if="scope.row.quantity">{{ scope.row.sumPremium * scope.row.quantity }}</span>
  1282. <span v-else>{{ scope.row.sumPremium }}</span>
  1283. </template>
  1284. </el-table-column>
  1285. </el-table>
  1286. </div>
  1287. </template>
  1288. <template v-if="reslistitem.namesimple == '永诚财险' && reslistitem.checked && reslistitem.agreementId && isLetter!=='3'">
  1289. <div class="flex f-c Driving-risk">
  1290. <el-form :inline="true" :model="accidentForm" class="demo-form-inline" size="small"
  1291. style="font-weight:bold;margin-top:15px">
  1292. <el-form-item label="意外险类型" style="margin-right:30px;">
  1293. <el-select clearable v-model="yongchengtemplateSelection" placeholder="未选择" @clear="clearAccidentForm"
  1294. @change="yongchengInsuranceChange">
  1295. <el-option v-for="(item, index) in yongchengaccidentDataList" :key="index" :label="item.projectName"
  1296. :value="item.projectCode"></el-option>
  1297. </el-select>
  1298. </el-form-item>
  1299. <el-form-item label="选择份数" style="margin-right:50px;">
  1300. <el-input-number v-model="accidentForm.quantity" @change="numberCopieschange" :min="1"
  1301. controls-position="right"></el-input-number>
  1302. <!-- <span style="margin-left: 5px;">份</span> -->
  1303. </el-form-item>
  1304. <el-form-item label="保费:">
  1305. <span>{{ accidentForm.sumPremium }}&ensp;元</span>
  1306. </el-form-item>
  1307. </el-form>
  1308. <el-table v-if="yongchengtemplateSelection" size="small" :data="yongchengInsuranceDataTable" border
  1309. ref="expandTable" highlight-current-row
  1310. :header-cell-style="{ background: '#F7F7F9', fontWeight: '700', color: '#333333' }">
  1311. <el-table-column prop="name" label="保险责任" align="center"></el-table-column>
  1312. <el-table-column prop="amount" label="每座保额 (元)/每份" align="center"></el-table-column>
  1313. <el-table-column prop="sumAmount" label="每车保额 (元)/每份" align="center"></el-table-column>
  1314. <el-table-column prop="premium" label="责任保费 (元)/每份" align="center"></el-table-column>
  1315. </el-table>
  1316. </div>
  1317. </template>
  1318. <template v-if="reslistitem.namesimple == '国任财险' && reslistitem.checked && reslistitem.agreementId && isLetter!=='3'">
  1319. <!-- <div style="margin:10px 0 0 100px;">
  1320. <span style="margin-right:20px"> {{reslistitem.underwritingDescription}}</span>-->
  1321. <el-button type="text" style="margin:10px 0 0 100px;"
  1322. @click="contributingGuoRen(reslistitem.agreementId)">选择特约</el-button>
  1323. <!-- </div> -->
  1324. <div class="flex f-c Driving-risk">
  1325. <el-form :inline="true" :model="guoRenaccidentForm" class="demo-form-inline" size="small">
  1326. <el-form-item label="意外险类型" style="margin-right:30px;">
  1327. <el-select clearable placeholder="未选择" @clear="clearAccidentFormGr" @change="grcxchange"
  1328. v-model="guoRenaccidentForm.goodsCode">
  1329. <el-option v-for="(item, index) in guoRenaccidentDataList" :key="index" :label="item.projectName"
  1330. :value="item.projectCode"></el-option>
  1331. </el-select>
  1332. </el-form-item>
  1333. <el-form-item label=" ">
  1334. <el-select clearable v-model="guoRenaccidentForm.prodCode" @change="grcxchangeChild">
  1335. <el-option v-for="(item, index) in guoRenaccidentDataListChild" :key="item.projectCode"
  1336. :label="item.projectName" :value="item.projectCode"></el-option>
  1337. </el-select>
  1338. </el-form-item>
  1339. <el-form-item label="选择份数" style="margin-right:30px;">
  1340. <el-input-number v-model="guoRenaccidentForm.quantity" :min="1" controls-position="right"
  1341. @change="numberCopieschangeGR"></el-input-number>
  1342. <!-- <span style="margin-left: 5px;">份</span> -->
  1343. </el-form-item>
  1344. <el-form-item label="保费:">
  1345. <span>{{ guoRenaccidentForm.sumPremium }}&ensp;元</span>
  1346. </el-form-item>
  1347. </el-form>
  1348. <el-table v-if="guoRenaccidentForm.prodCode" size="small" :data="guoRenInsuranceDataTable" border
  1349. ref="expandTable" highlight-current-row
  1350. :header-cell-style="{ background: '#F7F7F9 ', fontWeight: '700', color: '#333333' }">
  1351. <el-table-column prop="name" label="保险责任" align="center"></el-table-column>
  1352. <el-table-column prop="amount" label="保额 (元)" align="center"></el-table-column>
  1353. <el-table-column prop="premium" label="保费 (元)" align="center">
  1354. <template slot-scope="scope">¥{{ scope.row.premium }}</template>
  1355. </el-table-column>
  1356. </el-table>
  1357. </div>
  1358. </template>
  1359. <template v-if="reslistitem.namesimple == '中煤财险' && reslistitem.checked && reslistitem.agreementId && isLetter!=='3'">
  1360. <div class="flex f-c Driving-risk accident-style zmDriving">
  1361. <el-form :inline="true" :model="accidentFormZM" class="demo-form-inline" size="small"
  1362. style="font-weight:bold;margin-top:15px">
  1363. <el-form-item label="意外险类型" style="margin-right:30px;">
  1364. <el-select style="width: 250px;" size="small" clearable v-model="zhongmeitemplateSelection"
  1365. placeholder="未选择" @clear="numberCopieschangeZM" @change="zhongmeiInsuranceChange">
  1366. <el-option v-for="(item, index) in zhongmeiInsuranceData" :key="index" :label="item.projectName"
  1367. :value="item.projectCode"></el-option>
  1368. </el-select>
  1369. </el-form-item>
  1370. <el-form-item label="选择份数" style="margin-right:30px;">
  1371. <el-input-number v-model="accidentFormZM.quantity" @change="numberCopieschangeZM" :min="1"
  1372. controls-position="right"></el-input-number>
  1373. <!-- <span style="margin-left: 5px;">份</span> -->
  1374. </el-form-item>
  1375. <el-form-item label="保费:">
  1376. <span>{{ accidentFormZM.sumPremium }}&ensp;元</span>
  1377. </el-form-item>
  1378. </el-form>
  1379. <el-table size="small" :data="zhongmeiInsuranceDataTable" border ref="ZmMultipleTable"
  1380. v-if="zhongmeitemplateSelection"
  1381. :header-cell-style="{ background: '#F7F7F9 ', fontWeight: '700', color: '#333333' }">
  1382. <el-table-column prop="name" label="保险责任名称" align="center"></el-table-column>
  1383. <el-table-column prop="amount" label="保险责任对应保额" align="center"></el-table-column>
  1384. <!-- <el-table-column label="份数" align="center">
  1385. <template slot-scope="scope">
  1386. <div @click.stop>
  1387. <el-input-number
  1388. v-model="scope.row.quantity"
  1389. @change="ZMhandleChange"
  1390. :min="1"
  1391. :max="Number(scope.row.insuredNumLimit)"
  1392. controls-position="right"
  1393. ></el-input-number>
  1394. </div>
  1395. </template>
  1396. </el-table-column>-->
  1397. </el-table>
  1398. </div>
  1399. </template>
  1400. <template v-if="reslistitem.namesimple == '大家财险' && reslistitem.checked && reslistitem.agreementId && isLetter!=='3'">
  1401. <div class="flex f-c Driving-risk">
  1402. <div class="dis a-c" style="margin-top:15px">
  1403. <span style="margin-right:15px;font-weight:bold">选择意外险</span>
  1404. <el-select style="width: 250px;" filterable size="small" clearable v-model="dajiatemplateSelection"
  1405. placeholder="未选择" @clear="clearAccidentFormDJ" @change="dajiaInsuranceChange">
  1406. <el-option v-for="(item, index) in dajiaInsuranceData" :key="index" :label="item.productName"
  1407. :value="item.id"></el-option>
  1408. </el-select>
  1409. </div>
  1410. <el-table size="small" :data="dajiaInsuranceDataTable" border v-if="dajiatemplateSelection"
  1411. @row-click="DJDrivingChange" ref="RsTable" highlight-current-row
  1412. :header-cell-style="{ background: '#F7F7F9 ', fontWeight: '700', color: '#333333' }">
  1413. <el-table-column prop="cvrgName" label="保险责任名称" align="center"></el-table-column>
  1414. <el-table-column prop="cvrgPrm" label="保费 (元)/每份" align="center">
  1415. <template slot-scope="scope">¥{{ scope.row.cvrgPrm }}</template>
  1416. </el-table-column>
  1417. </el-table>
  1418. </div>
  1419. </template>
  1420. <template v-if="reslistitem.namesimple == '渤海财险' && reslistitem.checked && reslistitem.agreementId && isLetter!=='3'">
  1421. <div class="flex f-c Driving-risk" style="margin-top:15px">
  1422. <el-form :inline="true" :model="boHaiaccidentForm" class="demo-form-inline" size="small">
  1423. <el-form-item label="意外险类型" style="margin-right:30px;">
  1424. <el-select clearable placeholder="未选择" @clear="clearAccidentFormBh" @change="bohaiInsuranceChange"
  1425. v-model="boHaiaccidentForm.packageCode">
  1426. <el-option v-for="(item, index) in boHaiaccidentDataList" :key="index" :label="item.packageName"
  1427. :value="item.packageCode"></el-option>
  1428. </el-select>
  1429. </el-form-item>
  1430. <el-form-item label="选择份数" style="margin-right:30px;">
  1431. <el-input-number v-model="boHaiaccidentForm.copies" :min="1"
  1432. controls-position="right"></el-input-number>
  1433. </el-form-item>
  1434. <el-form-item label="保费:">
  1435. <span>{{ boHaiaccidentForm.premium * boHaiaccidentForm.copies }}&ensp;元</span>
  1436. </el-form-item>
  1437. </el-form>
  1438. <el-table v-if="boHaiaccidentForm.packageCode" size="small" :data="bohaiInsuranceDataTable" border
  1439. v-loading="accidentLoadingbh" ref="expandTable" highlight-current-row
  1440. :header-cell-style="{ background: '#F7F7F9 ', fontWeight: '700', color: '#333333' }">
  1441. <el-table-column prop="coverageName" label="保险责任名称" align="center"></el-table-column>
  1442. <el-table-column prop="insuredAmount" label="保额 (元)" align="center">
  1443. <template slot-scope="scope">¥{{ scope.row.insuredAmount }}</template>
  1444. </el-table-column>
  1445. </el-table>
  1446. </div>
  1447. </template>
  1448. </div>
  1449. </div>
  1450. </div>
  1451. </div>
  1452. <div class="Enclosure flex f-c" v-if="isLetter=='1'">
  1453. <div class="home flex j-s a-c back">
  1454. <div class="flex j-s a-c color">
  1455. <img src="../../../../src/icon/报价历史.png" alt class="icon-img" />
  1456. <span style="margin-left:10px;">报价历史</span>
  1457. <div v-if="orderno">
  1458. <el-radio-group v-model="historyRadio" style="margin-left:30px;" @input="RadioHistoryChange"
  1459. v-for="item in insOrderStatusoptions" :key="item.dictValue">
  1460. <el-radio :label="item.dictValue">{{ item.dictTag }}</el-radio>
  1461. </el-radio-group>
  1462. </div>
  1463. </div>
  1464. </div>
  1465. <div style="padding:20px;">
  1466. <el-table size="small" :data="HistoryList" height="250" border style="width: 100%" v-loading="loading"
  1467. :header-cell-style="{ background: '#F7F7F9 ', fontWeight: '700', color: '#333333' }" highlight-current-row>
  1468. <el-table-column prop="inscompany" label="保险公司" align="center"></el-table-column>
  1469. <el-table-column prop="username" label="业务员" align="center">
  1470. <template slot-scope="scope">
  1471. <span>{{ scope.row.userName }}({{ scope.row.userId }})</span>
  1472. </template>
  1473. </el-table-column>
  1474. <el-table-column prop="licenseno" label="车牌号" align="center"></el-table-column>
  1475. <el-table-column prop="createtime" label="报价时间" align="center"></el-table-column>
  1476. <el-table-column prop="jqpremium" label="交强险" align="center"></el-table-column>
  1477. <el-table-column prop="sypremium" label="商业险" align="center"></el-table-column>
  1478. <el-table-column prop="taxamount" label="车船税" align="center"></el-table-column>
  1479. <el-table-column prop="sumpremium" label="总保费" align="center"></el-table-column>
  1480. <el-table-column prop="orderstatus" label="状态" align="center">
  1481. <template slot-scope="scope">
  1482. <el-tag style="color:#33A08D;border-color:#33A08D;background: rgba(51,160,141,0.1);"
  1483. v-if="scope.row.orderstatus == '0' || scope.row.orderstatus == '1'" size="small">{{ scope.row.orderstatus
  1484. |
  1485. cap }}</el-tag>
  1486. <el-tag type="danger" style="border-color:#E75B5D ;" v-else-if="scope.row.orderstatus == '3'"
  1487. size="small">{{ scope.row.orderstatus | cap }}</el-tag>
  1488. <el-tag v-else style="color:#2D4D89 ;border-color:#2D4D89 ;background: rgba(45, 77, 137,0.1);"
  1489. size="small">{{ scope.row.orderstatus | cap }}</el-tag>
  1490. </template>
  1491. </el-table-column>
  1492. <el-table-column label="操作" align="center" min-width="180" fixed="right">
  1493. <template slot-scope="scope">
  1494. <el-button type="text" style="color:#2D4D89 " size="small"
  1495. @click="qoutedetail(scope.row.id)">查看详情</el-button>
  1496. <el-button size="small" type="text" @click="bjdpreview(scope.row.id)">报价单</el-button>
  1497. <el-button size="small" v-show="scope.row.orderstatus == '2'" type="text"
  1498. @click="Payment(scope.row.id, scope.row)">付款码</el-button>
  1499. <el-button size="mini" type="text"
  1500. v-if="(scope.row.orderstatus == '1' || scope.row.orderstatus == '2' || scope.row.orderstatus == '4') && ['紫金财险'].includes(scope.row.inscompany)"
  1501. @click="cancelorder(scope.row)">撤单</el-button>
  1502. <el-button type="text" size="mini" style="color:#2D4D89 " v-if="scope.row.orderstatus == '2'"
  1503. @click="revokeCode(scope.row.id)">撤销二维码</el-button>
  1504. </template>
  1505. </el-table-column>
  1506. </el-table>
  1507. </div>
  1508. </div>
  1509. <!-- 查看详情 -->
  1510. <detailsDialog ref="detailsDialog" :orderInfo.sync="queryOrders" :Feepermissions="false"></detailsDialog>
  1511. <el-dialog title="车型选择" :visible.sync="chexingdialogVisible" width="1300px">
  1512. <el-form :inline="true" class="demo-form-inline" size="small">
  1513. <el-form-item label="厂牌型号">
  1514. <el-input v-model="carInfo.modelcname" placeholder="厂牌型号" style="width:500px;"></el-input>
  1515. </el-form-item>
  1516. <el-form-item>
  1517. <el-button type="primary" size="small" @click="toChooseVehicleType(carInfo.modelcname)">查询</el-button>
  1518. </el-form-item>
  1519. </el-form>
  1520. <el-table size="small" :data="reslist" height="690" border style="width: 100%" v-loading="loading"
  1521. :header-cell-style="{ background: '#F7F7F9 ', fontWeight: '700', color: '#333333' }" highlight-current-row
  1522. @row-dblclick="reslistCurrentChange">
  1523. <el-table-column prop="modelCode" label="厂牌型号代码" align="center" width="200"></el-table-column>
  1524. <el-table-column prop="modelName" label="厂牌型号" align="center" width="300"></el-table-column>
  1525. <el-table-column prop="replacementValue" label="新车购置价" align="center" width="100"></el-table-column>
  1526. <el-table-column prop="marketYear" label="年款" align="center" width="100"></el-table-column>
  1527. <el-table-column prop="ratedPassengerCapacity" label="座位数" align="center" width="80"></el-table-column>
  1528. <el-table-column prop="displacement" label="排量" align="center" width="100"></el-table-column>
  1529. <el-table-column prop="remark" label="配置" align="center"></el-table-column>
  1530. </el-table>
  1531. </el-dialog>
  1532. <el-dialog title="车辆识别代码" :visible.sync="sbdmdialogVisible" width="1300px">
  1533. <el-form :inline="true" class="demo-form-inline" size="small">
  1534. <el-form-item label="车辆识别代码">
  1535. <el-input v-model="carInfo.frameNo" placeholder="车辆识别代码" style="width:500px;"></el-input>
  1536. </el-form-item>
  1537. <el-form-item>
  1538. <el-button type="primary" size="small" @click="toChooseVin(carInfo.frameNo)">查询</el-button>
  1539. </el-form-item>
  1540. </el-form>
  1541. <el-table size="small" :data="reslist" height="690" border style="width: 100%" v-loading="loading"
  1542. :header-cell-style="{ background: '#F7F7F9 ', fontWeight: '700', color: '#333333' }" highlight-current-row
  1543. @row-dblclick="reslistCurrentChange">
  1544. <el-table-column prop="modelCode" label="厂牌型号代码" align="center" width="200"></el-table-column>
  1545. <el-table-column prop="modelName" label="厂牌型号" align="center" width="300"></el-table-column>
  1546. <el-table-column prop="replacementValue" label="新车购置价" align="center" width="100"></el-table-column>
  1547. <el-table-column prop="marketYear" label="年款" align="center" width="100"></el-table-column>
  1548. <el-table-column prop="ratedPassengerCapacity" label="座位数" align="center" width="80"></el-table-column>
  1549. <el-table-column prop="displacement" label="排量" align="center" width="100"></el-table-column>
  1550. <el-table-column prop="remark" label="配置" align="center"></el-table-column>
  1551. </el-table>
  1552. </el-dialog>
  1553. <!--第一种 二维码 -->
  1554. <el-dialog :visible.sync="codedialogVisible" width="430px" top="10vh" class="saomazhifucodeClass">
  1555. <div class="ORcodebody" v-watermark="userform.id || userId">
  1556. <div slot="title" class="dialog-title">
  1557. <span>扫码付款</span>
  1558. </div>
  1559. <div class="ORcode">
  1560. <div style="padding:13px;position: relative;">
  1561. <img v-if="['太平财险', '华泰财险'].includes(inscompany)" :src="paycodeimg" alt style="width:100%" />
  1562. <div v-else id="qrcode" ref="qrcode"></div>
  1563. </div>
  1564. </div>
  1565. <img style="margin-left: -16px" src="../../../assets/image/divider.png" alt />
  1566. <div style="font-size:32px;text-align: center;color:#D42426;margin-top:20px">
  1567. <span style="font-size:24px;font-weight:bold">¥</span>
  1568. {{ sumpremium }}
  1569. </div>
  1570. <div class="ORtitle">
  1571. <div>
  1572. <span>保险公司:</span>
  1573. <span>{{ inscompany }}</span>
  1574. </div>
  1575. <div>
  1576. <span>车牌号:</span>
  1577. <span>{{ licenseNo }}</span>
  1578. </div>
  1579. <div>
  1580. <span>投保人:</span>
  1581. <span>{{ applyName }}</span>
  1582. </div>
  1583. <!-- <div>
  1584. <span style="color:#f75c00">总金额:</span>
  1585. <span style="color:#f75c00">{{ sumpremium }}</span>
  1586. </div>-->
  1587. <div v-show="jqpremium">
  1588. <span>交强:</span>
  1589. <span>{{ jqpremium }}</span>
  1590. </div>
  1591. <div v-show="sypremium">
  1592. <span>商业:</span>
  1593. <span>{{ sypremium }}</span>
  1594. </div>
  1595. <div v-show="taxamount">
  1596. <span>车船税:</span>
  1597. <span>{{ taxamount }}</span>
  1598. </div>
  1599. <div v-show="jqstartdate">
  1600. <span>交强险起保日期:</span>
  1601. <span>{{ jqstartdate }}</span>
  1602. </div>
  1603. <div v-show="systartdate">
  1604. <span>商业险起保日期:</span>
  1605. <span>{{ systartdate }}</span>
  1606. </div>
  1607. <div v-if="jypremium">
  1608. <span>非车险:</span>
  1609. <span>{{ jypremium }}</span>
  1610. </div>
  1611. </div>
  1612. <!-- <div class="display">
  1613. <el-button size="small" style="width:100px;" @click="codedialogVisible = false">关闭</el-button>
  1614. </div>-->
  1615. </div>
  1616. <span slot="footer" class="dialog-footer display">
  1617. <el-button size="small" style="width:100px;border-color:#D42426;color:#D42426 "
  1618. @click="codedialogVisible = false">关闭</el-button>
  1619. </span>
  1620. </el-dialog>
  1621. <!--第二种 二维码 -->
  1622. <el-dialog :visible.sync="codedialogVisiblePro" width="660px" class="proSaomazhifucodeClass" top="10vh" title="扫码付款">
  1623. <div class="flex j-s">
  1624. <div class="scan-code">
  1625. <div style="font-weight: bold;">
  1626. 总金额:
  1627. <span style="color:#2D4D89 ">{{ sumpremium }}</span>
  1628. </div>
  1629. <div>交强险:{{ jqpremium }}</div>
  1630. <div>车船税:{{ taxamount }}</div>
  1631. <div>商业险:{{ sypremium }}</div>
  1632. <div>非车险:{{ jypremium }}</div>
  1633. </div>
  1634. <div>
  1635. <img v-if="['太平财险', '华泰财险'].includes(inscompany)" :src="paycodeimg" alt style="width:200px;height: 200px;" />
  1636. <div v-else id="qrcode" ref="qrcode"></div>
  1637. </div>
  1638. <div class="scan-code">
  1639. <div>保险公司:{{ inscompany }}</div>
  1640. <div>车牌号:{{ licenseNo }}</div>
  1641. <div>投保人:{{ applyName }}</div>
  1642. <div>交强险起保日期:{{ jqstartdate }}</div>
  1643. <div>商业险起保日期:{{ systartdate }}</div>
  1644. </div>
  1645. </div>
  1646. <span slot="footer" class="dialog-footer">
  1647. <el-button size="small" style="width:100px;background: #EAEDF1;border-color:#EAEDF1;color:#2D4D89 "
  1648. @click="codedialogVisiblePro = false">关闭</el-button>
  1649. </span>
  1650. </el-dialog>
  1651. <el-dialog :visible.sync="uploadcardialogVisible" width="960px" style="padding:10px 20px;box-sizing: border-box;"
  1652. @open="closeDialog(0)">
  1653. <div slot="title" class="dialog-title">
  1654. <span>行驶证识别</span>
  1655. </div>
  1656. <el-row :gutter="20">
  1657. <div class="bodys1">
  1658. <div>
  1659. <div class="flex a-c">
  1660. <div class="OCR" style="text-align:center;">行驶证主页</div>
  1661. <div style="text-align:center;margin: 20px;" @drop="reportDrop">
  1662. <el-upload drag action="#" :show-file-list="false" :auto-upload="false" :on-change="carfrontChange">
  1663. <img v-show="carfrontImg" :src="carfrontImg" style="width:100%;height:100%" />
  1664. <img v-show="!carfrontImg" src="../../../../static/carfront.png" style="width:100%;height:100%" />
  1665. <span class="slot" v-show="carfrontImg" @click.stop>
  1666. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(carfrontImg)"></i>
  1667. <i class="el-icon-delete" @click.stop="handleRemove('carfrontImg')"></i>
  1668. </span>
  1669. </el-upload>
  1670. </div>
  1671. </div>
  1672. <div class="flex a-c">
  1673. <div class="OCR" style="text-align:center;">行驶证副页</div>
  1674. <div style="text-align:center;margin: 20px;" @drop="reportDrop">
  1675. <el-upload drag action="#" :show-file-list="false" :auto-upload="false" :on-change="carbackChange">
  1676. <img v-show="carbackImg" :src="carbackImg" style="width:100%;height:100%" />
  1677. <img v-show="!carbackImg" src="../../../../static/carback.png" style="width:100%;height:100%" />
  1678. <span class="slot" v-show="carbackImg" @click.stop>
  1679. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(carbackImg)"></i>
  1680. <i class="el-icon-delete" @click.stop="handleRemove('carbackImg')"></i>
  1681. </span>
  1682. </el-upload>
  1683. </div>
  1684. </div>
  1685. </div>
  1686. <div style="text-align:center;">
  1687. <el-form :model="carform" label-width="130px" size="small">
  1688. <el-form-item label="所有人">
  1689. <el-input v-model="carform.carOwner" autocomplete="off"></el-input>
  1690. </el-form-item>
  1691. <el-form-item label="车牌号">
  1692. <el-input v-model="carform.licenseNo" autocomplete="off"></el-input>
  1693. </el-form-item>
  1694. <el-form-item label="车架号">
  1695. <el-input v-model="carform.frameNo" autocomplete="off"></el-input>
  1696. </el-form-item>
  1697. <el-form-item label="品牌型号">
  1698. <el-input v-model="carform.modelcname" autocomplete="off"></el-input>
  1699. </el-form-item>
  1700. <el-form-item label="发动机号">
  1701. <el-input v-model="carform.engineNo" autocomplete="off"></el-input>
  1702. </el-form-item>
  1703. <el-form-item label="总质量">
  1704. <el-input v-model="carform.grossMass" autocomplete="off"></el-input>
  1705. </el-form-item>
  1706. <el-form-item label="整备质量">
  1707. <el-input v-model="carform.unladenMass" autocomplete="off"></el-input>
  1708. </el-form-item>
  1709. <el-form-item label="核定载质量">
  1710. <el-input v-model="carform.limitLoad" autocomplete="off"></el-input>
  1711. </el-form-item>
  1712. <el-form-item label="核定载客数">
  1713. <el-input v-model="carform.approvedPassengersCapacity" autocomplete="off"></el-input>
  1714. </el-form-item>
  1715. <el-form-item label="注册日期">
  1716. <el-input v-model="carform.registerDate" autocomplete="off"></el-input>
  1717. </el-form-item>
  1718. <el-form-item label="发证日期">
  1719. <el-input v-model="carform.issueDate" autocomplete="off"></el-input>
  1720. </el-form-item>
  1721. </el-form>
  1722. </div>
  1723. </div>
  1724. </el-row>
  1725. <span slot="footer" class="dialog-footer">
  1726. <el-button type="primary" @click="CarOCRdiscern()" size="small">识 别</el-button>
  1727. <el-button type="primary" @click="CarOCRconfirm()" size="small">确 认</el-button>
  1728. </span>
  1729. </el-dialog>
  1730. <el-dialog :visible.sync="uploaduserdialogVisible" width="960px" style="padding:10px 20px;box-sizing: border-box;"
  1731. @open="closeDialog(userIndex)">
  1732. <el-tabs v-model="activeName">
  1733. <el-tab-pane label="身份证识别" name="1">
  1734. <el-row :gutter="20">
  1735. <div class="bodys1">
  1736. <div>
  1737. <div class="flex">
  1738. <div class="OCR" style="text-align:center;">身份证主页</div>
  1739. <div style="text-align:center;margin: 20px;" @drop="reportDrop">
  1740. <el-upload class="upload-demo" drag action="#" :show-file-list="false" :auto-upload="false"
  1741. :on-change="userfrontChange">
  1742. <img v-show="userfrontImg" :src="userfrontImg" style="width:100%;height:100%" />
  1743. <img v-show="!userfrontImg" src="../../../../static/userfront.png" style="width:100%;height:100%" />
  1744. <span class="slot" v-show="userfrontImg" @click.stop>
  1745. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(userfrontImg)"></i>
  1746. <i class="el-icon-delete" @click.stop="handleRemove('userfrontImg')"></i>
  1747. </span>
  1748. </el-upload>
  1749. </div>
  1750. </div>
  1751. <div class="flex">
  1752. <div class="OCR" style="text-align:center;">身份证副页</div>
  1753. <div style="text-align:center;margin: 20px;" @drop="reportDrop">
  1754. <el-upload class="upload-demo" drag action="#" :show-file-list="false" :auto-upload="false"
  1755. :on-change="userbackChange">
  1756. <img v-show="userbackImg" :src="userbackImg" style="width:100%;height:100%" />
  1757. <img v-show="!userbackImg" src="../../../../static/userback.png" style="width:100%;height:100%" />
  1758. <span class="slot" v-show="userbackImg" @click.stop>
  1759. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(userbackImg)"></i>
  1760. <i class="el-icon-delete" @click.stop="handleRemove('userbackImg')"></i>
  1761. </span>
  1762. </el-upload>
  1763. </div>
  1764. </div>
  1765. </div>
  1766. <div style="text-align:center;">
  1767. <el-form :model="ownerInfoform" label-width="130px" size="small">
  1768. <el-form-item label="姓名">
  1769. <el-input v-model="ownerInfoform.name" autocomplete="off"></el-input>
  1770. </el-form-item>
  1771. <el-form-item label="性别">
  1772. <el-input v-model="ownerInfoform.gender" autocomplete="off"></el-input>
  1773. </el-form-item>
  1774. <el-form-item label="证件类型">
  1775. <el-input v-model="ownerInfoform.identifyType" autocomplete="off"></el-input>
  1776. </el-form-item>
  1777. <el-form-item label="证件号码">
  1778. <el-input v-model="ownerInfoform.identifyNumber" autocomplete="off"></el-input>
  1779. </el-form-item>
  1780. <el-form-item label="车主手机号">
  1781. <el-input v-model="ownerInfoform.mobile" autocomplete="off"></el-input>
  1782. </el-form-item>
  1783. <el-form-item label="地址">
  1784. <el-input v-model="ownerInfoform.addr" autocomplete="off"></el-input>
  1785. </el-form-item>
  1786. <el-form-item label="有效期起期">
  1787. <el-input disabled v-model="ownerInfoform.identifyValidDate" autocomplete="off"></el-input>
  1788. </el-form-item>
  1789. <el-form-item label="有效期止期">
  1790. <el-input disabled v-model="ownerInfoform.identifyValidEndDate" autocomplete="off"></el-input>
  1791. </el-form-item>
  1792. <el-form-item label="电子邮箱">
  1793. <el-input v-model="ownerInfoform.email" autocomplete="off"></el-input>
  1794. </el-form-item>
  1795. </el-form>
  1796. </div>
  1797. </div>
  1798. </el-row>
  1799. </el-tab-pane>
  1800. <el-tab-pane label="营业执照" name="2">
  1801. <el-row :gutter="20">
  1802. <div class="bodys1">
  1803. <div>
  1804. <div class="flex">
  1805. <div class="OCR" style="text-align:center;">营业执照</div>
  1806. <div style="text-align:center;margin: 20px;" @drop="reportDrop">
  1807. <el-upload class="upload-demo" drag action="#" :show-file-list="false" :auto-upload="false"
  1808. :on-change="userfrontChange">
  1809. <img v-show="businessImg" :src="businessImg" style="width:100%;height:100%" />
  1810. <img v-show="!businessImg" src="../../../../static/userfront.png" style="width:100%;height:100%" />
  1811. <span class="slot" v-show="businessImg" @click.stop>
  1812. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(businessImg)"></i>
  1813. <i class="el-icon-delete" @click.stop="handleRemove('businessImg')"></i>
  1814. </span>
  1815. </el-upload>
  1816. </div>
  1817. </div>
  1818. </div>
  1819. <div style="text-align:center;">
  1820. <el-form :model="ownerInfoform" label-width="130px" size="small">
  1821. <el-form-item label="单位名称">
  1822. <el-input autocomplete="off"></el-input>
  1823. </el-form-item>
  1824. <el-form-item label="法人">
  1825. <el-input autocomplete="off"></el-input>
  1826. </el-form-item>
  1827. <el-form-item label="社会信用代码">
  1828. <el-input autocomplete="off"></el-input>
  1829. </el-form-item>
  1830. <el-form-item label="地址">
  1831. <el-input autocomplete="off"></el-input>
  1832. </el-form-item>
  1833. <el-form-item label="经营范围">
  1834. <el-input autocomplete="off"></el-input>
  1835. </el-form-item>
  1836. <el-form-item label="注册资本">
  1837. <el-input autocomplete="off"></el-input>
  1838. </el-form-item>
  1839. </el-form>
  1840. </div>
  1841. </div>
  1842. </el-row>
  1843. </el-tab-pane>
  1844. </el-tabs>
  1845. <span slot="footer" class="dialog-footer">
  1846. <el-button type="primary" @click="userOCRdiscern()" size="small">识 别</el-button>
  1847. <el-button type="primary" @click="userOCRconfirm()" size="small">确 认</el-button>
  1848. </span>
  1849. </el-dialog>
  1850. <el-dialog :visible.sync="imageUploaddialogVisible" width="1070px">
  1851. <div slot="title" class="dialog-title">
  1852. <span>影像上传</span>
  1853. </div>
  1854. <el-row>
  1855. <el-col :span="3">
  1856. <div class="tab-style">
  1857. <li class="liMenu" :class="idx == tabLiIndex ? 'tabLi-style' : ''" @click="tabLiScroll(item.scroll, idx)"
  1858. v-for="(item, idx) in tabLimenu" :key="idx">{{ item.name }}</li>
  1859. </div>
  1860. </el-col>
  1861. <el-col :span="21" style="height:320px;overflow-y: auto;">
  1862. <div class="flex" id="vehicle">
  1863. <div class="aaa">
  1864. <span>1.行驶证主页</span>
  1865. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag
  1866. :on-change="file => drivingupload(file, 'imageList1', 'imgList1', 'C01')" :file-list="imgList1"
  1867. ref="upload1" :class="{ styleB: imgList1.length == 1 }">
  1868. <img v-show="imgList1.length == 0" src="../../../../static/carfront.png" style="width:100%;height:100%" />
  1869. <div slot="file" slot-scope="{file}" v-if="imgList1.length > 0">
  1870. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  1871. <span class="el-upload-list__item-actions">
  1872. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList1', 'imgList1')">
  1873. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  1874. <i class="el-icon-delete"></i>
  1875. </span>
  1876. </span>
  1877. </div>
  1878. </el-upload>
  1879. </div>
  1880. <div class="aaa">
  1881. <span>2.行驶证副页</span>
  1882. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag
  1883. :on-change="file => drivingupload(file, 'imageList1', 'imgList2', 'D01')" :file-list="imgList2"
  1884. ref="upload2" :class="{ styleB: imgList2.length === 1 }">
  1885. <img v-show="imgList2.length == 0" src="../../../../static/carback.png" style="width:100%;height:100%" />
  1886. <div slot="file" slot-scope="{file}">
  1887. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  1888. <span class="el-upload-list__item-actions">
  1889. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList1', 'imgList2')">
  1890. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  1891. <i class="el-icon-delete"></i>
  1892. </span>
  1893. </span>
  1894. </div>
  1895. </el-upload>
  1896. </div>
  1897. <div class="aaa">
  1898. <span>1.新车合格证</span>
  1899. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag
  1900. :on-change="file => drivingupload(file, 'imageList5', 'imgList9', 'XC00')" :file-list="imgList9" multiple
  1901. ref="upload3" :class="{ styleB: imgList9.length === 1 }">
  1902. <img v-show="imgList9.length == 0" src="../../../../static/userfront.png"
  1903. style="width:100%;height:100%" />
  1904. <div slot="file" slot-scope="{file}">
  1905. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  1906. <span class="el-upload-list__item-actions">
  1907. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList5', 'imgList9')">
  1908. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  1909. <i class="el-icon-delete"></i>
  1910. </span>
  1911. </span>
  1912. </div>
  1913. </el-upload>
  1914. </div>
  1915. <div class="aaa">
  1916. <span>2.购车发票</span>
  1917. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag
  1918. :on-change="file => drivingupload(file, 'imageList5', 'imgList10', 'GC00')" :file-list="imgList10"
  1919. multiple ref="upload4" :class="{ styleB: imgList10.length === 1 }">
  1920. <img v-show="imgList10.length == 0" src="../../../../static/userfront.png"
  1921. style="width:100%;height:100%" />
  1922. <div slot="file" slot-scope="{file}">
  1923. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  1924. <span class="el-upload-list__item-actions">
  1925. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList5', 'imgList10')">
  1926. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  1927. <i class="el-icon-delete"></i>
  1928. </span>
  1929. </span>
  1930. </div>
  1931. </el-upload>
  1932. </div>
  1933. </div>
  1934. <div class="flex" id="owner">
  1935. <div class="aaa">
  1936. <span>1.车主身份证(正面)</span>
  1937. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag
  1938. :on-change="file => drivingupload(file, 'imageList2', 'imgList3', 'C02')" :file-list="imgList3" multiple
  1939. ref="upload3" :class="{ styleB: imgList3.length === 1 }">
  1940. <img v-show="imgList3.length == 0" src="../../../../static/userfront.png"
  1941. style="width:100%;height:100%" />
  1942. <div slot="file" slot-scope="{file}">
  1943. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  1944. <span class="el-upload-list__item-actions">
  1945. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList2', 'imgList3')">
  1946. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  1947. <i class="el-icon-delete"></i>
  1948. </span>
  1949. </span>
  1950. </div>
  1951. </el-upload>
  1952. </div>
  1953. <div class="aaa">
  1954. <span>2.车主身份证(反面)</span>
  1955. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag
  1956. :on-change="file => drivingupload(file, 'imageList2', 'imgList4', 'D02')" :file-list="imgList4" multiple
  1957. ref="upload4" :class="{ styleB: imgList4.length === 1 }">
  1958. <img v-show="imgList4.length == 0" src="../../../../static/userback.png" style="width:100%;height:100%" />
  1959. <div slot="file" slot-scope="{file}">
  1960. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  1961. <span class="el-upload-list__item-actions">
  1962. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList2', 'imgList4')">
  1963. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  1964. <i class="el-icon-delete"></i>
  1965. </span>
  1966. </span>
  1967. </div>
  1968. </el-upload>
  1969. </div>
  1970. <div class="aaa">
  1971. <span>3.营业执照</span>
  1972. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag multiple ref="upload4">
  1973. <img src="../../../../static/userfront.png" style="width:100%;height:100%" />
  1974. <div slot="file" slot-scope="{file}">
  1975. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  1976. <span class="el-upload-list__item-actions">
  1977. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList2', 'imgList4')">
  1978. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  1979. <i class="el-icon-delete"></i>
  1980. </span>
  1981. </span>
  1982. </div>
  1983. </el-upload>
  1984. </div>
  1985. </div>
  1986. <div class="flex" id="applicant">
  1987. <div class="aaa">
  1988. <span>1.投保人身份证(正面)</span>
  1989. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag
  1990. :on-change="file => drivingupload(file, 'imageList3', 'imgList5', 'C03')" :file-list="imgList5" multiple
  1991. ref="upload5" :class="{ styleB: imgList5.length === 1 }">
  1992. <img v-show="imgList5.length == 0" src="../../../../static/userfront.png"
  1993. style="width:100%;height:100%" />
  1994. <div slot="file" slot-scope="{file}">
  1995. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  1996. <span class="el-upload-list__item-actions">
  1997. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList3', 'imgList5')">
  1998. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  1999. <i class="el-icon-delete"></i>
  2000. </span>
  2001. </span>
  2002. </div>
  2003. </el-upload>
  2004. </div>
  2005. <div class="aaa">
  2006. <span>2.投保人身份证(反面)</span>
  2007. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag
  2008. :on-change="file => drivingupload(file, 'imageList3', 'imgList6', 'D03')" :file-list="imgList6" multiple
  2009. ref="upload6" :class="{ styleB: imgList6.length === 1 }">
  2010. <img v-show="imgList6.length == 0" src="../../../../static/userback.png" style="width:100%;height:100%" />
  2011. <div slot="file" slot-scope="{file}">
  2012. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2013. <span class="el-upload-list__item-actions">
  2014. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList3', 'imgList6')">
  2015. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2016. <i class="el-icon-delete"></i>
  2017. </span>
  2018. </span>
  2019. </div>
  2020. </el-upload>
  2021. </div>
  2022. <div class="aaa">
  2023. <span>3.营业执照</span>
  2024. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag multiple ref="upload4">
  2025. <img src="../../../../static/userfront.png" style="width:100%;height:100%" />
  2026. <div slot="file" slot-scope="{file}">
  2027. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2028. <span class="el-upload-list__item-actions">
  2029. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList2', 'imgList4')">
  2030. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2031. <i class="el-icon-delete"></i>
  2032. </span>
  2033. </span>
  2034. </div>
  2035. </el-upload>
  2036. </div>
  2037. </div>
  2038. <div class="flex">
  2039. <div class="aaa">
  2040. <span id="insured">1.被保人身份证(正面)</span>
  2041. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag
  2042. :on-change="file => drivingupload(file, 'imageList4', 'imgList7', 'C04')" :file-list="imgList7" multiple
  2043. ref="upload7" :class="{ styleB: imgList7.length === 1 }">
  2044. <img v-show="imgList7.length == 0" src="../../../../static/userfront.png"
  2045. style="width:100%;height:100%" />
  2046. <div slot="file" slot-scope="{file}">
  2047. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2048. <span class="el-upload-list__item-actions">
  2049. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList4', 'imgList7')">
  2050. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2051. <i class="el-icon-delete"></i>
  2052. </span>
  2053. </span>
  2054. </div>
  2055. </el-upload>
  2056. </div>
  2057. <div class="aaa">
  2058. <span>2.被保人身份证(反面)</span>
  2059. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag
  2060. :on-change="file => drivingupload(file, 'imageList4', 'imgList8', 'D04')" :file-list="imgList8" multiple
  2061. ref="upload8" :class="{ styleB: imgList8.length === 1 }">
  2062. <img v-show="imgList8.length == 0" src="../../../../static/userback.png" style="width:100%;height:100%" />
  2063. <div slot="file" slot-scope="{file}">
  2064. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2065. <span class="el-upload-list__item-actions">
  2066. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList4', 'imgList8')">
  2067. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2068. <i class="el-icon-delete"></i>
  2069. </span>
  2070. </span>
  2071. </div>
  2072. </el-upload>
  2073. </div>
  2074. <div class="aaa">
  2075. <span>3.营业执照</span>
  2076. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag multiple ref="upload4">
  2077. <img src="../../../../static/userfront.png" style="width:100%;height:100%" />
  2078. <div slot="file" slot-scope="{file}">
  2079. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2080. <span class="el-upload-list__item-actions">
  2081. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList2', 'imgList4')">
  2082. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2083. <i class="el-icon-delete"></i>
  2084. </span>
  2085. </span>
  2086. </div>
  2087. </el-upload>
  2088. </div>
  2089. </div>
  2090. <div class="flex" id="relationship">
  2091. <div class="aaa">
  2092. <span>1.关系证明</span>
  2093. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag
  2094. :on-change="file => drivingupload(file, 'imageList5', 'imgList11', 'GX00')" :file-list="imgList11"
  2095. multiple ref="upload3" :class="{ styleB: imgList11.length === 1 }">
  2096. <img v-show="imgList11.length == 0" src="../../../../static/userfront.png"
  2097. style="width:100%;height:100%" />
  2098. <div slot="file" slot-scope="{file}">
  2099. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2100. <span class="el-upload-list__item-actions">
  2101. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList5', 'imgList11')">
  2102. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2103. <i class="el-icon-delete"></i>
  2104. </span>
  2105. </span>
  2106. </div>
  2107. </el-upload>
  2108. </div>
  2109. </div>
  2110. </el-col>
  2111. </el-row>
  2112. <span slot="footer" class="dialog-footer">
  2113. <el-button size="small" @click="imageUploaddialogVisible = false">取 消</el-button>
  2114. <el-button size="small" type="primary" @click="uploadinformation">上传资料</el-button>
  2115. </span>
  2116. </el-dialog>
  2117. <div v-if="isLetter=='1'" class="flex j-c a-c" :class="{
  2118. 'footer': true,
  2119. 'shadow': !isBottom
  2120. }">
  2121. <el-button size="small" @click="add()">录下一单</el-button>
  2122. <el-button type="primary" :loading="calculateLoading" size="small" @click="quote()">保费计算</el-button>
  2123. </div>
  2124. <div v-if="isLetter=='2'" style="text-align: center">
  2125. <el-button type="primary" :loading="calculateLoading" size="small" @click="quote()">保费计算</el-button>
  2126. </div>
  2127. <div v-if="isLetter=='3'" style="text-align: center">
  2128. <el-button type="primary" size="small" @click="preserveQuote()" :loading="preserveQuoteLoading">保存</el-button>
  2129. </div>
  2130. <div class="Anchor-link flex f-c j-s a-c" v-if="isLetter=='1'">
  2131. <div>
  2132. <img src="../../../../src/icon/车辆信息.png" alt class="icon-img" @click="handleScroll('Car')" />
  2133. </div>
  2134. <div>
  2135. <img src="../../../../src/icon/投保信息.png" alt class="icon-img" @click="handleScroll('insurance')" />
  2136. </div>
  2137. <div>
  2138. <img src="../../../../src/icon/险别选择.png" alt class="icon-img" @click="handleScroll('more')" />
  2139. </div>
  2140. <div>
  2141. <img src="../../../../src/icon/保险公司.png" alt class="icon-img" @click="handleScroll('company')" />
  2142. </div>
  2143. </div>
  2144. <el-dialog title="核保信息" :visible.sync="underwritingdialogVisible" width="30%">
  2145. <div class="flex j-s f-c">
  2146. <div style="font-size: 18px;color: #D42426;font-weight:700;padding: 10px 30px;" v-if="orderstatus == '2'">
  2147. 订单状态:已核保待缴费</div>
  2148. </div>
  2149. <span slot="footer" class="dialog-footer" v-if="orderstatus == '2'">
  2150. <el-button style="width: 100px;" type="primary" size="small"
  2151. @click="Payment(companyId, queryOrders)">缴费二维码</el-button>
  2152. </span>
  2153. </el-dialog>
  2154. <el-dialog title="转保确认码" :visible.sync="renewalCodedialogVisible" width="400px" style="font-weight: bold">
  2155. <div class="flex a-c u-f-sa" v-if="renewalCodeJqImg">
  2156. <span>交强转保确认码</span>
  2157. <div class="flex a-c f-c">
  2158. <img :src="renewalCodeJqImg" alt style="width: 150px; height: 40px; margin-bottom: 5px" />
  2159. <el-input v-model="renewalCodeJq" placeholder="请输入确认码" style="width: 150px"></el-input>
  2160. </div>
  2161. </div>
  2162. <div class="flex a-c u-f-sa" v-if="renewalCodeSyImg">
  2163. <span>商业转保确认码</span>
  2164. <div class="flex a-c f-c">
  2165. <img :src="renewalCodeSyImg" alt style="width: 150px; height: 40px; margin-bottom: 5px" />
  2166. <el-input v-model="renewalCodeSy" placeholder="请输入确认码" style="width: 150px"></el-input>
  2167. </div>
  2168. </div>
  2169. <span slot="footer" class="dialog-footer">
  2170. <el-button size="small" @click="renewalCodedialogVisible = false">取 消</el-button>
  2171. <el-button size="small" type="primary" @click="renewalCodeconfirm">确 定</el-button>
  2172. </span>
  2173. </el-dialog>
  2174. <el-dialog :title="contributingState ? '选择特约' : '提交核保'" :visible.sync="hbsubmitdialogVisible" width="1200px">
  2175. <div style="margin-bottom: 20px;font-weight: bold;">特约选择</div>
  2176. <el-table size="small" :data="zijinengageListData" border v-loading="contributingLoading"
  2177. @select="zijinengageChange" @select-all="zijinengageChangeAll" ref="expandTablePro" highlight-current-row
  2178. @cell-dblclick="zijincellDblclick" :cell-class-name="tableCellClassName"
  2179. :header-cell-style="{ background: '#F7F7F9 ', fontWeight: '700', color: '#333333' }">
  2180. <el-table-column type="selection" width="55"></el-table-column>
  2181. <el-table-column prop="clauseCode" :width="80" label="特约代码" align="center"></el-table-column>
  2182. <el-table-column v-if="contributingState" :width="100" prop="riskName" label="特约险种"
  2183. align="center"></el-table-column>
  2184. <el-table-column prop="clauseName" label="特约名称" align="center"></el-table-column>
  2185. <el-table-column prop="clauseContent" label="特约内容">
  2186. <template slot-scope="scope">
  2187. <el-input @blur="hideInput" size="small" type="textarea" :ref="scope.row.index + ',' + scope.column.index"
  2188. v-model="scope.row.clauseContent"
  2189. v-if="scope.row.index + ',' + scope.column.index == currentCell && scope.row.modifyFlag == '1'"></el-input>
  2190. <span v-else>{{ scope.row.clauseContent }}</span>
  2191. </template>
  2192. </el-table-column>
  2193. </el-table>
  2194. <span slot="footer" class="dialog-footer">
  2195. <el-button size="small" @click="hbsubmitdialogVisible = false">取 消</el-button>
  2196. <el-button v-if="contributingState" size="small" type="primary"
  2197. @click="hbsubmitdialogVisible = false">确定</el-button>
  2198. <el-button v-else size="small" type="primary" @click="hbsubmit">提交核保</el-button>
  2199. </span>
  2200. </el-dialog>
  2201. <!-- 报价单 -->
  2202. <quotationDialog ref="quotationDialog" :queryOrders="queryOrders"></quotationDialog>
  2203. <quotationDialogPro ref="quotationDialogPro" :queryOrders="queryOrders"></quotationDialogPro>
  2204. <el-image-viewer v-if="showViewer" :on-close="closeViewer" :z-index="9999" :url-list="[ProViewImg]" />
  2205. <el-dialog :visible.sync="redictInfodialogVisible" width="70%">
  2206. <el-table :data="redictInfoMsg" style="width: 100%">
  2207. <el-table-column prop="description" label="审核意见"></el-table-column>
  2208. <el-table-column prop="opinion" label="备注"></el-table-column>
  2209. </el-table>
  2210. </el-dialog>
  2211. <!-- 保单上传 -->
  2212. <el-dialog :visible.sync="policyUploaddialogVisible" width="30%">
  2213. <div slot="title" class="dialog-title">
  2214. <span>保单上传</span>
  2215. </div >
  2216. <el-form :model="policyNumberForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
  2217. <el-form-item label="交强保单:" prop="jqPolicy">
  2218. <el-upload
  2219. class="upload-demo"
  2220. ref="jqPolicyupload"
  2221. action="#"
  2222. :limit="1"
  2223. :auto-upload="false"
  2224. :file-list="fileListjqPolicy"
  2225. :on-change="file => policydrivingupload(file, 'jqPolicy')"
  2226. >
  2227. <el-button size="small" type="primary">点击上传</el-button>
  2228. </el-upload>
  2229. </el-form-item>
  2230. <el-form-item label="商业保单:" prop="syPolicy">
  2231. <el-upload
  2232. class="upload-demo"
  2233. ref="syPolicyupload"
  2234. action="#"
  2235. :limit="1"
  2236. :auto-upload="false"
  2237. :file-list="fileListnoPolicy"
  2238. :on-change="file => policydrivingupload(file, 'syPolicy')"
  2239. >
  2240. <el-button size="small" type="primary">点击上传</el-button>
  2241. </el-upload>
  2242. </el-form-item>
  2243. <el-form-item label="非车保单:" prop="noPolicy">
  2244. <el-upload
  2245. class="upload-demo"
  2246. ref="noPolicyupload"
  2247. action="#"
  2248. :limit="1"
  2249. :auto-upload="false"
  2250. :file-list="fileListnoPolicy"
  2251. :on-change="file => policydrivingupload(file, 'noPolicy')"
  2252. >
  2253. <el-button size="small" type="primary">点击上传</el-button>
  2254. </el-upload>
  2255. </el-form-item>
  2256. <el-form-item label="交强电子标志:" prop="jqSign">
  2257. <el-upload
  2258. class="upload-demo"
  2259. ref="jqSignupload"
  2260. action="#"
  2261. :limit="1"
  2262. :auto-upload="false"
  2263. :file-list="fileListjqSign"
  2264. :on-change="file => policydrivingupload(file, 'jqSign')"
  2265. >
  2266. <el-button size="small" type="primary">点击上传</el-button>
  2267. </el-upload>
  2268. </el-form-item>
  2269. </el-form>
  2270. <span slot="footer" class="dialog-footer">
  2271. <el-button size="small" @click="policyUploaddialogVisible = false">取 消</el-button>
  2272. <el-button size="small" type="primary" @click="policyUploaddialogVisible = false">确 定</el-button>
  2273. </span>
  2274. </el-dialog>
  2275. </div>
  2276. </template>
  2277. <script>
  2278. let _self;
  2279. import QRCode from "qrcodejs2";
  2280. import Cookies from "js-cookie";
  2281. import CommonUtil from "@/utils/comutil.js";
  2282. import {
  2283. getAgeByIdCard,
  2284. searchkey,
  2285. addressCode,
  2286. getGenderByIdCard
  2287. } from "@/utils/validate.js";
  2288. import citydata from "@/assets/js/citydata.js";
  2289. // import yongchengData from '../../assets/js/yongchengData';
  2290. import { regionData, codeToText } from "element-china-area-data";
  2291. import { base64ToPath } from "@/common/image-tools-base64.js";
  2292. import quotationDialog from "@/views/Core/components/quotationDialog.vue";
  2293. import quotationDialogPro from "@/views/Core/components/quotationDialogPro.vue";
  2294. import detailsDialog from "@/views/Core/components/detailsDialog.vue";
  2295. export default {
  2296. inject: ["reload"],
  2297. name: "qrCode",
  2298. data() {
  2299. var checkpurchasePrice = (rule, value, callback) => {
  2300. if (!value) {
  2301. callback(new Error("新车购置价不能为空"));
  2302. } else if (value == 0) {
  2303. callback(new Error("新车购置价不能为零"));
  2304. } else {
  2305. callback();
  2306. }
  2307. };
  2308. var checkframeNo = (rule, value, callback) => {
  2309. if (value.length < 17) {
  2310. callback(new Error("车架号不足17位"));
  2311. } else if (
  2312. value.indexOf("I") != "-1" ||
  2313. value.indexOf("O") != "-1" ||
  2314. value.indexOf("Q") != "-1"
  2315. ) {
  2316. callback(new Error("车架号不能包含(I O Q)三个字母"));
  2317. } else {
  2318. callback();
  2319. }
  2320. };
  2321. var carPhoneValid = (rule, value, callback) => {
  2322. 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})$/;
  2323. if (!value) {
  2324. callback(new Error("请输入车牌号"));
  2325. } else if (plateNumber.test(value)) {
  2326. callback();
  2327. } else {
  2328. callback(new Error("请输入正确的车牌号"));
  2329. }
  2330. };
  2331. return {
  2332. policyNumberForm:{
  2333. jqpolicyno: '',
  2334. sypolicyno: '',
  2335. jypolicyno: '',
  2336. jqpremium:'',
  2337. sypremium: '',
  2338. jypremium:'',
  2339. taxamount: '',
  2340. jqSuperviseCostsProportion: '',
  2341. sySuperviseCostsProportion: '',
  2342. noSuperviseCostsProportion: '',
  2343. jqOtherCostsProportion: '',
  2344. syOtherCostsProportion: '',
  2345. noOtherCostsProportion:'',
  2346. },
  2347. watermarkedImage: '',
  2348. redictInfoMsg: [],
  2349. redictInfodialogVisible: false,
  2350. qrcodeWidth: "180",
  2351. qrcodeHeight: "180",
  2352. activeName: "1",
  2353. isTaxSourceModel: "",
  2354. tabLiIndex: 0,
  2355. tabLimenu: [
  2356. {
  2357. name: "车辆信息",
  2358. scroll: "vehicle"
  2359. },
  2360. {
  2361. name: "车主信息",
  2362. scroll: "owner"
  2363. },
  2364. {
  2365. name: "投保人信息",
  2366. scroll: "applicant"
  2367. },
  2368. {
  2369. name: "被保人信息",
  2370. scroll: "insured"
  2371. },
  2372. {
  2373. name: "关系证明",
  2374. scroll: "relationship"
  2375. }
  2376. ],
  2377. packageValue: "",
  2378. packageOptions: [],
  2379. zhongmeitemplateSelection: "", //中煤驾意险产品选中值
  2380. zhongmeiInsuranceData: [], //中煤驾意险产品列表数据
  2381. zhongmeiInsuranceDataTable: [], //中煤驾意险产品明细方案数据
  2382. zhongmeiaccidentalDrivingVo: {}, //中煤驾意险最终选中字段
  2383. currentCell: null,
  2384. feeDetailInfo: [], //费用明细信息
  2385. immediatelyValue: false,
  2386. isRetractZJ: false,
  2387. isRetractHB: false,
  2388. isRetractZM: false,
  2389. isRetractASTP: false,
  2390. isRetractZA: false,
  2391. isRetractYC: false,
  2392. isRetractRS: false,
  2393. anshengInsurancetype: "",
  2394. iscCrownerShow: false,
  2395. isApplicantShow: false,
  2396. isInsuredShow: false,
  2397. formInline: {},
  2398. anshengtemplateSelection: "", //安盛
  2399. anshengInsuranceData: [], //安盛驾意险
  2400. anshengInsuranceDataTable: [], //安盛驾意险
  2401. anshengaccidentalDrivingVo: {}, //安盛驾意险
  2402. hengbangtemplateSelection: "", //恒邦
  2403. hengbangInsuranceData: [], //恒邦驾意险
  2404. hengbangInsuranceDataTable: [],
  2405. hengbangaccidentalDrivingVo: {}, //恒邦驾意险
  2406. insuranceHN: "", //华农
  2407. huanongInsuranceData: [], //华农驾意险
  2408. huanongInsuranceDataTable: [],
  2409. huanongaccidentalDrivingVo: {}, //华农驾意险
  2410. renshouaccidentalDrivingVo: {}, //人寿意外险
  2411. renshouInsuranceData: [], //-人寿意外险list
  2412. ziJinInsuranceData: [], //-紫金意外险list
  2413. zhonganInsuranceData: [], //众安驾意险
  2414. zhonganaccidentalDrivingVo: {}, //众安驾意险
  2415. zijinInsuranceDataTable: [],
  2416. zijintemplateSelection: "",
  2417. accidentalDrivingVo: [], //-紫金意外险传参
  2418. zijinengageListData: [], //紫金特约
  2419. zijinengageList: [], //紫金特约
  2420. // ------------紫金意外险
  2421. renshoutemplateSelection: "", //人寿
  2422. renshouInsuranceDataTable: [],
  2423. zhongantemplateSelection: "", //众安
  2424. zhonganInsuranceDataTable: [],
  2425. taipingtemplateSelection: "", //太平
  2426. taipingInsuranceData: [], //太平驾意险
  2427. TPDrivingChangeInsuranceData: [],
  2428. taipingaccidentalDrivingVo: {}, //太平驾意险
  2429. licenseplate: true,
  2430. calculateLoading: false, //保费计算按钮 节流
  2431. preserveQuoteLoading:false,//保存按钮
  2432. accidentForm: {
  2433. quantity: "1",
  2434. sumPremium: 0
  2435. }, //永诚意外险内容
  2436. accidentFormHN: {
  2437. allQuantity: "1",
  2438. quantity: '1'
  2439. }, //华农意外险内容
  2440. yongchengaccidentDataList: [], //永诚意外险
  2441. yongchengtemplateSelection: '',
  2442. guoRenaccidentDataList: [], //国任意外险
  2443. guoRenInsuranceDataTable: [],
  2444. guoRenaccidentDataListChild: [],
  2445. guoRenaccidentalDrivingVo: {}, //国任驾意险
  2446. dajiatemplateSelection: "",
  2447. dajiaInsuranceData: [], //大家意外险
  2448. dajiaInsuranceDataTable: [],
  2449. dajiaaccidentalDrivingVo: {},
  2450. yongchengInsuranceDataTable: [],
  2451. guoRenaccidentLoading: false,
  2452. contributingLoading: false,
  2453. guoRenaccidentPremium: "",
  2454. guoRenaccidentForm: {
  2455. quantity: "1",
  2456. sumPremium: 0
  2457. }, //国任意外险内容
  2458. accidentFormZM: {
  2459. quantity: "1",
  2460. sumPremium: 0
  2461. }, //中煤意外险内容
  2462. boHaiaccidentDataList: [], //渤海意外险
  2463. boHaiaccidentForm: {
  2464. copies: "1",
  2465. policyNum: 0
  2466. },
  2467. accidentLoadingbh: false,
  2468. bohaiInsuranceDataTable: [],
  2469. accidentPremium: "",
  2470. accidentPremiumZM: "",
  2471. contributingState: false, //是否为国任特约
  2472. pickerOptions: {
  2473. disabledDate(time) {
  2474. //若选择的日期小于当前日期(包含今天)
  2475. return time.getTime() > Date.now();
  2476. //若选择的日期大于当前日期(不包含今天): time.getTime() < Date.now()
  2477. //若选择的日期小于当前日期(不包含今天): time.getTime() > Date.now() - 8.64e7
  2478. //若选择的日期小于等于当前日期(包含今天): time.getTime() > Date.now()
  2479. }
  2480. },
  2481. attributionform: {
  2482. //续保查询数据
  2483. configure: [],
  2484. companyId: ""
  2485. },
  2486. continuousAction: [], //续保配置项
  2487. //永诚转保确认码
  2488. cqryCdeJq: "",
  2489. cqryCdeSy: "",
  2490. renewalCodeJq: "", //交强确认码
  2491. renewalCodeSy: "", //商业确认码
  2492. renewalCodeJqImg: "", //交强图片
  2493. renewalCodeSyImg: "", //商业图片
  2494. //-----------------
  2495. showViewer: false,
  2496. transferDateShow: false, //转移登记日期
  2497. yonganchecked: false, //永安驾意险
  2498. renbaochecked: false, //人保驾意险
  2499. zhongmeichecked: false, //中煤驾意险
  2500. hengbangchecked: false, //恒邦驾意险
  2501. yongchengchecked: false, //永诚驾意险
  2502. yonganDrivinglist: [],
  2503. renbaoDrivinglist: [],
  2504. zhongmeiDrivinglist: [],
  2505. hengbangDrivinglist: [],
  2506. yongchengDrivinglist: [],
  2507. tbczcarShow: true, //投保人同车主
  2508. bbczcarShow: false, //被保人同车主
  2509. bbtbcarShow: true, //被保人同投保人
  2510. imageUploadShow: true, //上传影像显示
  2511. ProViewImg: "", //预览图片
  2512. carfrontImg: "", //行驶证正面
  2513. carbackImg: "", //行驶证背面
  2514. userfrontImg: "", //身份证正面
  2515. userbackImg: "", //身份证背面
  2516. businessImg: "",
  2517. CarFrontFile: "", //车正面文件流
  2518. CarBackFile: "", //车背面文件流
  2519. C02File: "",
  2520. D02File: "",
  2521. C03File: "",
  2522. D03File: "",
  2523. C04File: "",
  2524. D04File: "",
  2525. userIndex: 1, //区分三种人员
  2526. TabName: "car", //默认选项卡
  2527. value1: "",
  2528. chexingdialogVisible: false, //车型选择 显示/隐藏
  2529. sbdmdialogVisible: false, //车型车辆识别代码选择 显示/隐藏
  2530. codedialogVisible: false, //二维码 显示/隐藏
  2531. codedialogVisiblePro: false,
  2532. uploadcardialogVisible: false, //行驶证识别 显示/隐藏
  2533. uploaduserdialogVisible: false, //身份证识别 显示/隐藏
  2534. imageUploaddialogVisible: false, //影像上传 显示/隐藏
  2535. policyUploaddialogVisible:false, //保单上传
  2536. underwritingdialogVisible: false, //核保信息 显示/隐藏
  2537. renewalCodedialogVisible: false, //转保确认码输入
  2538. hbsubmitdialogVisible: false, //核保弹框
  2539. Carinsurance: {
  2540. jqinsurance: "1", //交强险
  2541. syinsurance: "1" //商业险
  2542. },
  2543. jqchecked: true,
  2544. sychecked: false,
  2545. jqstartDate: "", //交强时间
  2546. jqendDate: "", //交强时间
  2547. systartDate: "", //商业时间
  2548. syendDate: "", //商业时间
  2549. loading: false, //加载事件
  2550. reslist: [], //车型列表
  2551. userId: "", //出单工号
  2552. carInfo: {
  2553. powerScale: "", ///功率
  2554. licenseNo: "", //车牌号
  2555. brandName: "", //车辆品牌型号
  2556. vinNo: "", //车架号
  2557. engineNo: "", //发动机号
  2558. modelCode: "", //车型编码
  2559. seatCount: null, //核定载客量 核定载人数
  2560. purchasePrice: null, //新车购置价最低,行业实际价值,协商价值
  2561. carBrand: "", //车型品牌
  2562. ciCarName: "", //行业车型名称
  2563. ciModelCode: "", //行业车型编码
  2564. completeKerbMass: "", //整备质量
  2565. exhaustScale: "", //排量
  2566. factory: "", //工厂名称
  2567. factoryid: "", //工厂编码
  2568. frameNo: "", //车架号
  2569. licenseTypeCode: "02", //号牌种类
  2570. vehicleclass: "", //车辆类型
  2571. familyName: "", //车型
  2572. modelcname: "", //车型名称
  2573. powertypecode: "", //燃料类型编码
  2574. vehicleweight: "", //总质量
  2575. limitLoad: "", //核定载质量
  2576. caryear: null, //年款
  2577. cimodelclass: "A0", //车辆种类
  2578. energyType: "0", //能源类型
  2579. enginedesc: "", //排量
  2580. registerDate: "", //注册日期
  2581. issueDate: "", //发证日期
  2582. transferFlag: 0, //过户标志
  2583. transferFlagBi: false, //商业险是否过户
  2584. transferDate: "", //过户日期
  2585. loanStatus: 0, //贷款标志
  2586. firstBeneMan: "", //第一受益人
  2587. noLicenseFlag: false, //是否新车
  2588. cartype: "", //客车A0 货车H0
  2589. carnature: "02", //使用性质
  2590. vehicleUse: "05",
  2591. property: "1" //所属性质 1个人 2企业 3个人
  2592. },
  2593. carform: {
  2594. carOwner: "", //车主
  2595. licenseNo: "", //车牌号
  2596. modelcname: "", //车辆品牌型号
  2597. frameNo: "", //车架号
  2598. engineNo: "", //发动机号
  2599. registerDate: "", //注册日期
  2600. issueDate: "", //发证日期
  2601. grossMass: "", //总质量
  2602. unladenMass: "", //整备质量
  2603. limitLoad: "", //核定载质量
  2604. approvedPassengersCapacity: "" //核定载客数
  2605. },
  2606. ownerInfoform: {
  2607. name: "",
  2608. identifyType: "",
  2609. identifyNumber: "",
  2610. age: "", //年龄
  2611. gender: "", //性别
  2612. addr: "",
  2613. email: "",
  2614. mobile: "",
  2615. identifyValidDate: "", //有效期起期
  2616. identifyValidEndDate: "" //有效期止期
  2617. // province: "",//省
  2618. // city: "",//市
  2619. // county: "",//县
  2620. },
  2621. riskList: [], //险种大类信息
  2622. kindList: [], //商业险险别
  2623. ownerInfo: {
  2624. //车主
  2625. name: "", //姓名
  2626. identifyType: "01", //身份证类型
  2627. identifyNumber: "", //身份证号
  2628. age: "", //年龄
  2629. gender: "", //性别
  2630. addr: "", //地址
  2631. email: "", //邮箱
  2632. mobile: "", //电话
  2633. identifyValidDate: "", //有效期起期
  2634. identifyValidEndDate: "", //有效期止期
  2635. // province: "",//省
  2636. // city: "",//市
  2637. // county: "",//县
  2638. provinceData: [] //省市区
  2639. },
  2640. policyHolderInfo: {
  2641. //投保人
  2642. name: "", //姓名
  2643. identifyType: "01", //身份证类型
  2644. identifyNumber: "", //身份证号
  2645. age: "", //年龄
  2646. gender: "", //性别
  2647. addr: "", //地址
  2648. email: "", //邮箱
  2649. mobile: "", //电话
  2650. identifyValidDate: "", //有效期起期
  2651. identifyValidEndDate: "", //有效期止期
  2652. // province: "",//省
  2653. // city: "",//市
  2654. // county: "",//县
  2655. provinceData: [] //省市区
  2656. },
  2657. insuredPersonInfo: {
  2658. //被保人
  2659. name: "", //姓名
  2660. identifyType: "01", //身份证类型
  2661. identifyNumber: "", //身份证号
  2662. age: "", //年龄
  2663. gender: "", //性别
  2664. addr: "", //地址
  2665. email: "", //邮箱
  2666. mobile: "", //电话
  2667. identifyValidDate: "", //有效期起期
  2668. identifyValidEndDate: "", //有效期止期
  2669. provinceData: [] //省市区
  2670. // province: "",//省
  2671. // city: "",//市
  2672. // county: "",//县
  2673. },
  2674. //车船税form
  2675. vehicleAndVesselTaxForm: {
  2676. taxRelifFlag: "1", //类型
  2677. identifyNumber: "", //纳税人识别号
  2678. taxpayerIdentifier: "01", //纳税人证件类型
  2679. taxpayerName: "", //纳税人名称
  2680. extendChar2: "", //减免税凭证号
  2681. paidFreeCertificate: "", //完税凭证号
  2682. relifReason: "", //减免税原因
  2683. taxComCode: "", //税务机关代码
  2684. taxComName: "", ///税务机关名称
  2685. taxDocumentDate: "", //完税日期
  2686. taxPaidAreaCode: "", //完税凭证地区代码
  2687. taxRelief: "" //减税比例
  2688. },
  2689. //车辆用途列表
  2690. vehicleList: [],
  2691. //能源种类列表
  2692. rules: {
  2693. extendChar2: [
  2694. { required: true, message: "请输入减免税凭证号", trigger: "blur" }
  2695. ],
  2696. paidFreeCertificate: [
  2697. { required: true, message: "请输入完税凭证号", trigger: "blur" }
  2698. ],
  2699. relifReason: [
  2700. { required: true, message: "请输入减免税原因", trigger: "blur" }
  2701. ],
  2702. taxComCode: [
  2703. { required: true, message: "请输入税务机关代码", trigger: "blur" }
  2704. ],
  2705. taxComName: [
  2706. { required: true, message: "请输入税务机关名称", trigger: "blur" }
  2707. ],
  2708. taxDocumentDate: [
  2709. { required: true, message: "请输入完税日期", trigger: "blur" }
  2710. ],
  2711. taxPaidAreaCode: [
  2712. { required: true, message: "请选择完税地区", trigger: "blur" }
  2713. ],
  2714. taxRelief: [
  2715. { required: true, message: "请输入减税比例", trigger: "blur" }
  2716. ],
  2717. taxpayerName: [
  2718. { required: true, message: "请输入纳税人名称", trigger: "blur" }
  2719. ],
  2720. taxpayerIdentifier: [
  2721. { required: true, message: "请选择证件类型", trigger: "blur" }
  2722. ],
  2723. taxRelifFlag: [
  2724. { required: true, message: "请选择纳税类型", trigger: "blur" }
  2725. ],
  2726. energyType: [
  2727. { required: true, message: "请选择能源种类", trigger: "blur" }
  2728. ],
  2729. cimodelclass: [
  2730. { required: true, message: "请选择车辆种类", trigger: "blur" }
  2731. ],
  2732. carnature: [
  2733. { required: true, message: "请选择使用性质", trigger: "blur" }
  2734. ],
  2735. cartype: [
  2736. { required: true, message: "请选择车辆类型", trigger: "blur" }
  2737. ],
  2738. vehicleUse: [
  2739. { required: true, message: "请选择车辆用途", trigger: "blur" }
  2740. ],
  2741. brandName: [
  2742. { required: true, message: "请填写品牌型号", trigger: "blur" }
  2743. ],
  2744. licenseNo: [
  2745. { max: 8, message: "最多八个字符", trigger: "blur" },
  2746. { required: true, validator: carPhoneValid, trigger: "blur" }
  2747. ],
  2748. frameNo: [{ validator: checkframeNo, trigger: "blur" }],
  2749. engineNo: [
  2750. { required: true, message: "请填写发动机号", trigger: "blur" }
  2751. ],
  2752. purchasePrice: [
  2753. { required: true, validator: checkpurchasePrice, trigger: "blur" }
  2754. ],
  2755. registerDate: [
  2756. { required: true, message: "请选择注册时间", trigger: "blur" }
  2757. ],
  2758. issueDate: [
  2759. { required: true, message: "请选择发证日期", trigger: "blur" }
  2760. ],
  2761. transferDate: [
  2762. { required: true, message: "请选择转移登记日期", trigger: "blur" }
  2763. ],
  2764. seatCount: [
  2765. { required: true, message: "请输入座位数", trigger: "blur" }
  2766. ],
  2767. completeKerbMass: [
  2768. { required: true, message: "请输入整备质量", trigger: "blur" }
  2769. ],
  2770. name: [{ required: true, message: "请填写姓名", trigger: "blur" }],
  2771. // jqpolicyno: [{ required: true, message: "请填写交强保单号", trigger: "blur" }],
  2772. // sypolicyno: [{ required: true, message: "请填写商业保单号", trigger: "blur" }],
  2773. // jypolicyno: [{ required: true, message: "请填写驾意保单号", trigger: "blur" }],
  2774. // jqpremium: [{ required: true, message: "请填写交强险费用", trigger: "blur" }],
  2775. // sypremium: [{ required: true, message: "请填写商业险费用", trigger: "blur" }],
  2776. // jypremium: [{ required: true, message: "请填写驾意险费用", trigger: "blur" }],
  2777. // taxamount: [{ required: true, message: "请填写车船税", trigger: "blur" }],
  2778. // jqSuperviseCostsProportion: [{ required: true, message: "请填写交强险手续费比例", trigger: "blur" }],
  2779. // sySuperviseCostsProportion: [{ required: true, message: "请填写商业险手续费比例", trigger: "blur" }],
  2780. // noSuperviseCostsProportion: [{ required: true, message: "请填写非车手续费比例", trigger: "blur" }],
  2781. // jqOtherCostsProportion: [{ required: true, message: "请填写交强险其他费用比例", trigger: "blur" }],
  2782. // syOtherCostsProportion: [{ required: true, message: "请填写商业险其他费用比例", trigger: "blur" }],
  2783. // noOtherCostsProportion: [{ required: true, message: "请填写非车其他费用比例", trigger: "blur" }],
  2784. // identifyNumber: [
  2785. // { required: true, message: "请填写证件号", trigger: "blur" },
  2786. // { min: 18, max: 18, message: "长度在18个字符", trigger: "blur" },
  2787. // {
  2788. // 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]$/,
  2789. // message: "请输入正确的证件号",
  2790. // trigger: "blur"
  2791. // }
  2792. // ],
  2793. identifyValidDate: [
  2794. { required: true, message: "请选择起期", trigger: "blur" }
  2795. ],
  2796. identifyValidEndDate: [
  2797. { required: true, message: "请选择止期", trigger: "blur" }
  2798. ],
  2799. addr: [
  2800. { required: true, message: "请填写地址", trigger: "blur" },
  2801. { min: 8, message: "最少8个字符", trigger: "blur" }
  2802. ],
  2803. mobile: [
  2804. { required: true, message: "请填写手机号", trigger: "blur" },
  2805. { min: 11, max: 11, message: "长度在11个字符", trigger: "blur" },
  2806. {
  2807. 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}$/,
  2808. message: "请输入正确的手机号",
  2809. trigger: "blur"
  2810. }
  2811. ],
  2812. email: [
  2813. { min: 10, max: 20, message: "最少10个字符", trigger: "blur" },
  2814. {
  2815. pattern: /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/,
  2816. message: "请输入正确的邮箱",
  2817. trigger: "blur"
  2818. }
  2819. ]
  2820. },
  2821. CIInsureList: {
  2822. //交强险
  2823. amount: "1",
  2824. amountDesc: "投保",
  2825. amtList: [
  2826. {
  2827. label: "不投保",
  2828. value: "0"
  2829. },
  2830. {
  2831. label: "投保",
  2832. value: "1"
  2833. }
  2834. ],
  2835. kindCode: "0507",
  2836. kindName: "交强险",
  2837. desc: "国家强制规定购买的险种,对第三方的人身或财产损失提供基本保障"
  2838. },
  2839. BIInsureList: {
  2840. //商业险
  2841. amount: "0",
  2842. amountDesc: "投保",
  2843. amtList: [
  2844. {
  2845. label: "不投保",
  2846. value: "0"
  2847. },
  2848. {
  2849. label: "投保",
  2850. value: "1"
  2851. }
  2852. ],
  2853. kindCode: "0510",
  2854. kindName: "商业险",
  2855. desc: "国家强制规定购买的险种,对第三方的人身或财产损失提供基本保障"
  2856. },
  2857. insureList: [
  2858. {
  2859. amount: "0",
  2860. amountDesc: "投保",
  2861. coveragePremium: 0,
  2862. amtList: [
  2863. {
  2864. label: "不投保",
  2865. value: "0"
  2866. },
  2867. {
  2868. label: "投保",
  2869. value: "1"
  2870. }
  2871. ],
  2872. kindCode: "A",
  2873. isMainRisk: true,
  2874. kindName: "机动车损失险",
  2875. desc:
  2876. "保险期间内,被保险人或被保险机动车驾驶人在使用被保险机动车过程中,因自然灾害、意外事故、机动车被盗窃、抢劫、抢夺等情况(详见保险条款)造成被保险机动车直接损失,且不属于免除保险人责任的范围,保险人依照本保险合同的约定负责赔偿的险种。"
  2877. },
  2878. {
  2879. amount: "0",
  2880. amountDesc: "不投保",
  2881. coveragePremium: 0,
  2882. amtList: [
  2883. {
  2884. label: "不投保",
  2885. value: "0"
  2886. },
  2887. {
  2888. label: "10万",
  2889. value: "100000"
  2890. },
  2891. {
  2892. label: "15万",
  2893. value: "150000"
  2894. },
  2895. {
  2896. label: "20万",
  2897. value: "200000"
  2898. },
  2899. {
  2900. label: "30万",
  2901. value: "300000"
  2902. },
  2903. {
  2904. label: "50万",
  2905. value: "500000"
  2906. },
  2907. {
  2908. label: "100万",
  2909. value: "1000000"
  2910. },
  2911. {
  2912. label: "150万",
  2913. value: "1500000"
  2914. },
  2915. {
  2916. label: "200万",
  2917. value: "2000000"
  2918. },
  2919. {
  2920. label: "250万",
  2921. value: "2500000"
  2922. },
  2923. {
  2924. label: "300万",
  2925. value: "3000000"
  2926. },
  2927. {
  2928. label: "400万",
  2929. value: "4000000"
  2930. },
  2931. {
  2932. label: "500万",
  2933. value: "5000000"
  2934. },
  2935. {
  2936. label: "600万",
  2937. value: "6000000"
  2938. },
  2939. {
  2940. label: "800万",
  2941. value: "8000000"
  2942. },
  2943. {
  2944. label: "1000万",
  2945. value: "10000000"
  2946. }
  2947. ],
  2948. kindCode: "B",
  2949. isMainRisk: true,
  2950. kindName: "第三者责任险",
  2951. desc:
  2952. "保险期间内,被保险人或其允许的驾驶人在使用被保险机动车过程中发生意外事故,致使第三者遭受人身伤亡或财产直接损毁,依法应当对第三者承担的损害赔偿责任,且不属于免除保险人责任的范围,保险人依照本保险合同的约定,对于超过机动车交通事故责任强制保险各分项赔偿限额的部分负责赔偿的险种。"
  2953. },
  2954. {
  2955. amount: "0",
  2956. amountDesc: "1万",
  2957. coveragePremium: 0,
  2958. amtList: [
  2959. {
  2960. label: "不投保",
  2961. value: "0"
  2962. },
  2963. {
  2964. label: "1万",
  2965. value: "10000"
  2966. },
  2967. {
  2968. label: "2万",
  2969. value: "20000"
  2970. },
  2971. {
  2972. label: "3万",
  2973. value: "30000"
  2974. },
  2975. {
  2976. label: "4万",
  2977. value: "40000"
  2978. },
  2979. {
  2980. label: "5万",
  2981. value: "50000"
  2982. },
  2983. {
  2984. label: "6万",
  2985. value: "60000"
  2986. },
  2987. {
  2988. label: "7万",
  2989. value: "70000"
  2990. },
  2991. {
  2992. label: "8万",
  2993. value: "80000"
  2994. },
  2995. {
  2996. label: "9万",
  2997. value: "90000"
  2998. },
  2999. {
  3000. label: "10万",
  3001. value: "100000"
  3002. },
  3003. {
  3004. label: "15万",
  3005. value: "150000"
  3006. },
  3007. {
  3008. label: "20万",
  3009. value: "200000"
  3010. },
  3011. {
  3012. label: "25万",
  3013. value: "250000"
  3014. },
  3015. {
  3016. label: "30万",
  3017. value: "300000"
  3018. },
  3019. {
  3020. label: "35万",
  3021. value: "350000"
  3022. },
  3023. {
  3024. label: "40万",
  3025. value: "400000"
  3026. },
  3027. {
  3028. label: "45万",
  3029. value: "450000"
  3030. },
  3031. {
  3032. label: "50万",
  3033. value: "500000"
  3034. }
  3035. ],
  3036. kindCode: "D3",
  3037. isMainRisk: true,
  3038. kindName: "司机责任险",
  3039. desc:
  3040. "保险期间内,被保险人或其允许的驾驶人在使用被保险机动车过程中发生意外事故,致使车上人员遭受人身伤亡,且不属于免除保险人责任的范围,依法应当对车上人员承担的损害赔偿责任,保险人依照本保险合同的约定负责赔偿的险种。"
  3041. },
  3042. {
  3043. amount: "0",
  3044. amountDesc: "1万",
  3045. coveragePremium: 0,
  3046. amtList: [
  3047. {
  3048. label: "不投保",
  3049. value: "0"
  3050. },
  3051. {
  3052. label: "1万",
  3053. value: "10000"
  3054. },
  3055. {
  3056. label: "2万",
  3057. value: "20000"
  3058. },
  3059. {
  3060. label: "3万",
  3061. value: "30000"
  3062. },
  3063. {
  3064. label: "4万",
  3065. value: "40000"
  3066. },
  3067. {
  3068. label: "5万",
  3069. value: "50000"
  3070. },
  3071. {
  3072. label: "6万",
  3073. value: "60000"
  3074. },
  3075. {
  3076. label: "7万",
  3077. value: "70000"
  3078. },
  3079. {
  3080. label: "8万",
  3081. value: "80000"
  3082. },
  3083. {
  3084. label: "9万",
  3085. value: "90000"
  3086. },
  3087. {
  3088. label: "10万",
  3089. value: "100000"
  3090. },
  3091. {
  3092. label: "15万",
  3093. value: "150000"
  3094. },
  3095. {
  3096. label: "20万",
  3097. value: "200000"
  3098. },
  3099. {
  3100. label: "25万",
  3101. value: "250000"
  3102. },
  3103. {
  3104. label: "30万",
  3105. value: "300000"
  3106. },
  3107. {
  3108. label: "35万",
  3109. value: "350000"
  3110. },
  3111. {
  3112. label: "40万",
  3113. value: "400000"
  3114. },
  3115. {
  3116. label: "45万",
  3117. value: "450000"
  3118. },
  3119. {
  3120. label: "50万",
  3121. value: "500000"
  3122. }
  3123. ],
  3124. kindCode: "D4",
  3125. isMainRisk: true,
  3126. kindName: "乘客责任险",
  3127. desc:
  3128. "保险期间内,被保险人或其允许的驾驶人在使用被保险机动车过程中发生意外事故,致使车上人员遭受人身伤亡,且不属于免除保险人责任的范围,依法应当对车上人员承担的损害赔偿责任,保险人依照本保险合同的约定负责赔偿的险种。"
  3129. },
  3130. {
  3131. amount: "0",
  3132. amountDesc: "不投保",
  3133. coveragePremium: 0,
  3134. amtList: [
  3135. {
  3136. label: "不投保",
  3137. value: "0"
  3138. },
  3139. {
  3140. label: "2千",
  3141. value: "2000"
  3142. },
  3143. {
  3144. label: "5千",
  3145. value: "5000"
  3146. },
  3147. {
  3148. label: "1万",
  3149. value: "10000"
  3150. },
  3151. {
  3152. label: "2万",
  3153. value: "20000"
  3154. }
  3155. ],
  3156. desc:
  3157. "保险期间内,被保险机动车在被保险人或被保险机动车驾驶人使用过程中,发生无明显碰撞痕迹的车身划痕损失,保险人按照保险合同约定负责赔偿的险种",
  3158. isMainRisk: false,
  3159. kindCode: "L",
  3160. kindName: "车身划痕险",
  3161. mainRiskCodeList: "A"
  3162. },
  3163. {
  3164. amount: "0",
  3165. amountDesc: "不投保",
  3166. coveragePremium: 0,
  3167. amtList: [
  3168. {
  3169. label: "不投保",
  3170. value: "0"
  3171. },
  3172. {
  3173. label: "5%",
  3174. value: "5"
  3175. },
  3176. {
  3177. label: "10%",
  3178. value: "10"
  3179. },
  3180. {
  3181. label: "15%",
  3182. value: "15"
  3183. },
  3184. {
  3185. label: "20%",
  3186. value: "20"
  3187. }
  3188. ],
  3189. desc:
  3190. "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
  3191. isMainRisk: false,
  3192. kindCode: "MJ1",
  3193. kindName: "绝对免赔率特约险(车损)",
  3194. mainRiskCodeList: "A"
  3195. },
  3196. {
  3197. amount: "0",
  3198. amountDesc: "不投保",
  3199. coveragePremium: 0,
  3200. amtList: [
  3201. {
  3202. label: "不投保",
  3203. value: "0"
  3204. },
  3205. {
  3206. label: "5%",
  3207. value: "5"
  3208. },
  3209. {
  3210. label: "10%",
  3211. value: "10"
  3212. },
  3213. {
  3214. label: "15%",
  3215. value: "15"
  3216. },
  3217. {
  3218. label: "20%",
  3219. value: "20"
  3220. }
  3221. ],
  3222. desc:
  3223. "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
  3224. isMainRisk: false,
  3225. kindCode: "MJ2",
  3226. kindName: "绝对免赔率特约险(三者)",
  3227. mainRiskCodeList: "B"
  3228. },
  3229. {
  3230. amount: "0",
  3231. amountDesc: "不投保",
  3232. coveragePremium: 0,
  3233. amtList: [
  3234. {
  3235. label: "不投保",
  3236. value: "0"
  3237. },
  3238. {
  3239. label: "5%",
  3240. value: "5"
  3241. },
  3242. {
  3243. label: "10%",
  3244. value: "10"
  3245. },
  3246. {
  3247. label: "15%",
  3248. value: "15"
  3249. },
  3250. {
  3251. label: "20%",
  3252. value: "20"
  3253. }
  3254. ],
  3255. desc:
  3256. "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
  3257. isMainRisk: false,
  3258. kindCode: "MJ3",
  3259. kindName: "绝对免赔率特约险(司机)",
  3260. mainRiskCodeList: "D3"
  3261. },
  3262. {
  3263. amount: "0",
  3264. amountDesc: "不投保",
  3265. coveragePremium: 0,
  3266. amtList: [
  3267. {
  3268. label: "不投保",
  3269. value: "0"
  3270. },
  3271. {
  3272. label: "5%",
  3273. value: "5"
  3274. },
  3275. {
  3276. label: "10%",
  3277. value: "10"
  3278. },
  3279. {
  3280. label: "15%",
  3281. value: "15"
  3282. },
  3283. {
  3284. label: "20%",
  3285. value: "20"
  3286. }
  3287. ],
  3288. desc:
  3289. "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
  3290. isMainRisk: false,
  3291. kindCode: "MJ4",
  3292. kindName: "绝对免赔率特约险(乘客)",
  3293. mainRiskCodeList: "D4"
  3294. },
  3295. {
  3296. amount: "0",
  3297. amountDesc: "不投保",
  3298. coveragePremium: 0,
  3299. amtList: [
  3300. {
  3301. label: "不投保",
  3302. value: "0"
  3303. },
  3304. {
  3305. label: "1万",
  3306. value: "10000"
  3307. },
  3308. {
  3309. label: "2万",
  3310. value: "20000"
  3311. },
  3312. {
  3313. label: "4万",
  3314. value: "40000"
  3315. },
  3316. {
  3317. label: "5万",
  3318. value: "50000"
  3319. },
  3320. {
  3321. label: "8万",
  3322. value: "80000"
  3323. },
  3324. {
  3325. label: "10万",
  3326. value: "100000"
  3327. },
  3328. {
  3329. label: "20万",
  3330. value: "200000"
  3331. },
  3332. {
  3333. label: "30万",
  3334. value: "300000"
  3335. },
  3336. {
  3337. label: "50万",
  3338. value: "500000"
  3339. },
  3340. {
  3341. label: "100万",
  3342. value: "1000000"
  3343. },
  3344. {
  3345. label: "200万",
  3346. value: "2000000"
  3347. },
  3348. {
  3349. label: "300万",
  3350. value: "3000000"
  3351. }
  3352. ],
  3353. kindCode: "SY_FJ_YBW1",
  3354. isMainRisk: true,
  3355. kindName: "附加医保-三者",
  3356. desc: "附加医保外医疗费用责任险(机动车第三者责任保险)"
  3357. },
  3358. {
  3359. amount: "0",
  3360. amountDesc: "不投保",
  3361. coveragePremium: 0,
  3362. amtList: [
  3363. {
  3364. label: "不投保",
  3365. value: "0"
  3366. },
  3367. {
  3368. label: "1万",
  3369. value: "10000"
  3370. },
  3371. {
  3372. label: "2万",
  3373. value: "20000"
  3374. },
  3375. {
  3376. label: "5万",
  3377. value: "50000"
  3378. },
  3379. {
  3380. label: "10万",
  3381. value: "100000"
  3382. }
  3383. ],
  3384. kindCode: "SY_FJ_YBW2",
  3385. isMainRisk: true,
  3386. kindName: "附加医保-座位险(乘客)",
  3387. desc: "附加医保外医疗费用责任险(机动车第三者责任保险)"
  3388. },
  3389. {
  3390. amount: "0",
  3391. amountDesc: "不投保",
  3392. coveragePremium: 0,
  3393. amtList: [
  3394. {
  3395. label: "不投保",
  3396. value: "0"
  3397. },
  3398. {
  3399. label: "1万",
  3400. value: "10000"
  3401. },
  3402. {
  3403. label: "2万",
  3404. value: "20000"
  3405. },
  3406. {
  3407. label: "5万",
  3408. value: "50000"
  3409. },
  3410. {
  3411. label: "10万",
  3412. value: "100000"
  3413. }
  3414. ],
  3415. kindCode: "SY_FJ_YBW3",
  3416. isMainRisk: true,
  3417. kindName: "附加医保-座位险(司机)",
  3418. desc: "附加医保外医疗费用责任险(机动车第三者责任保险)"
  3419. },
  3420. {
  3421. amount: "0",
  3422. amountDesc: "不投保",
  3423. coveragePremium: 0,
  3424. amtList: [
  3425. {
  3426. label: "不投保",
  3427. value: "0"
  3428. },
  3429. {
  3430. label: "50万",
  3431. value: "500000"
  3432. },
  3433. {
  3434. label: "100万",
  3435. value: "1000000"
  3436. },
  3437. {
  3438. label: "150万",
  3439. value: "1500000"
  3440. },
  3441. {
  3442. label: "200万",
  3443. value: "2000000"
  3444. },
  3445. {
  3446. label: "250万",
  3447. value: "2500000"
  3448. },
  3449. {
  3450. label: "300万",
  3451. value: "3000000"
  3452. },
  3453. {
  3454. label: "500万",
  3455. value: "5000000"
  3456. },
  3457. {
  3458. label: "1000万",
  3459. value: "10000000"
  3460. }
  3461. ],
  3462. desc:
  3463. "保险期间内,被保险人或其允许的驾驶人在法定节假日期间使用被保险机动车发生机动车第三者责任保险范围内的事故,并经公安部门或保险人查勘确认的,被保险机动车第三者责任保险所适用的责任限额在保险单载明的基础上增加一倍的险种",
  3464. isMainRisk: false,
  3465. kindCode: "BD",
  3466. kindName: "法定节假日限额翻倍险",
  3467. mainRiskCodeList: "B"
  3468. },
  3469. {
  3470. amount: "0",
  3471. amountDesc: "不投保",
  3472. coveragePremium: 0,
  3473. amtList: [
  3474. {
  3475. label: "不投保",
  3476. value: "0"
  3477. },
  3478. {
  3479. label: "2次",
  3480. value: "2"
  3481. },
  3482. {
  3483. label: "7次",
  3484. value: "7"
  3485. },
  3486. {
  3487. label: "12次",
  3488. value: "12"
  3489. },
  3490. {
  3491. label: "17次",
  3492. value: "17"
  3493. },
  3494. {
  3495. label: "22次",
  3496. value: "22"
  3497. }
  3498. ],
  3499. desc: "道路救援服务特约条款",
  3500. isMainRisk: false,
  3501. kindCode: "TY1",
  3502. kindName: "道路救援服务特约条款"
  3503. },
  3504. {
  3505. amount: "0",
  3506. amountDesc: "不投保",
  3507. coveragePremium: 0,
  3508. desc: "车辆安全检测特约条款",
  3509. isMainRisk: false,
  3510. kindCode: "TY2",
  3511. kindName: "车辆安全检测特约条款"
  3512. },
  3513. {
  3514. amount: "0",
  3515. amountDesc: "不投保",
  3516. coveragePremium: 0,
  3517. desc: "代为驾驶服务特约条款",
  3518. isMainRisk: false,
  3519. kindCode: "TY3",
  3520. kindName: "代为驾驶服务特约条款"
  3521. },
  3522. {
  3523. amount: "0",
  3524. amountDesc: "不投保",
  3525. coveragePremium: 0,
  3526. desc: "代为送检服务特约条款",
  3527. isMainRisk: false,
  3528. kindCode: "TY4",
  3529. kindName: "代为送检服务特约条款"
  3530. }
  3531. ],
  3532. totalCompanyList: [], //报价保险公司
  3533. continuousCompanyList: [], //续保保险公司
  3534. quoteno: "", //报价号
  3535. orderno: "", //订单号
  3536. queryOrders: {
  3537. extendInfo: {},
  3538. carinfo: {},
  3539. ownerinfo: {},
  3540. applyinfo: {},
  3541. insureinfo: {}
  3542. }, //核保详情
  3543. inscompany: "", //保险公司名称
  3544. licenseNo: "", //车牌号
  3545. applyName: "", //车主名字
  3546. orderstatus: "", //订单状态
  3547. sumpremium: "", //保费合计
  3548. jqpremium: "", //交强
  3549. sypremium: "", //商业
  3550. jypremium: "", //驾意险
  3551. taxamount: "", //车船税
  3552. jqstartdate: "", //交强时间
  3553. systartdate: "", //商业时间
  3554. mobile: "", //投保人手机号
  3555. //影像回显列表
  3556. imgList1: [],
  3557. imgList2: [],
  3558. imgList3: [],
  3559. imgList4: [],
  3560. imgList5: [],
  3561. imgList6: [],
  3562. imgList7: [],
  3563. imgList8: [],
  3564. imgList9: [],
  3565. imgList10: [],
  3566. imgList11: [],
  3567. //影像上传列表
  3568. imageList1: [],
  3569. imageList2: [],
  3570. imageList3: [],
  3571. imageList4: [],
  3572. imageList5: [],
  3573. // 是否禁用上传
  3574. uploadDisabled: false,
  3575. href: "",
  3576. pageRequest: {
  3577. //归属查询
  3578. pageNum: 1,
  3579. pageSize: 20,
  3580. columnFilters: {
  3581. deptId: {
  3582. name: "deptId",
  3583. value: "9"
  3584. },
  3585. containsSubDept: {
  3586. name: "containsSubDept",
  3587. value: 1
  3588. },
  3589. usertype: {
  3590. name: "usertype",
  3591. value: null
  3592. },
  3593. status: {
  3594. name: "status",
  3595. value: "1"
  3596. },
  3597. id: {
  3598. name: "id",
  3599. value: ""
  3600. },
  3601. name: {
  3602. name: "name",
  3603. value: ""
  3604. },
  3605. mobile: {
  3606. name: "mobile",
  3607. value: ""
  3608. }
  3609. }
  3610. },
  3611. userform: {},
  3612. qrcode: null,
  3613. paycodeimg: "", //展示二维码
  3614. ImageUrldialogVisible: false,
  3615. paramsEdit: "",
  3616. companyId: "",
  3617. apiType: "",
  3618. insureMore: true,
  3619. // insureLength: 5,
  3620. HistoryList: [], //历史记录数据
  3621. image1: "",
  3622. image2: "",
  3623. historyRadio: "888",
  3624. sumseatCount: "", // 投保险种座位数
  3625. deptName: "",
  3626. isBottom: true,
  3627. logoImg: "", //报价单保险公司logo图
  3628. vehicleTypeoptions: [], //车辆种类
  3629. trafficManagementVehicleTypeoptions: [], //车辆类型
  3630. energyTypeoptions: [], //能源种类
  3631. taxRelifFlagoptions: [], //车船税类型
  3632. taxpayerIdentifieroptions: [], //纳税人证件类型
  3633. relifReasonoptions: [], //减免税原因代码
  3634. relifReasonoptions: [], //减免税原因代码
  3635. provinceSelect: [],
  3636. natureOfVehicleUseoptions: [],
  3637. businessVehicleUseoptions: [],
  3638. outOfBusinessVehicleUseoptions: [],
  3639. insOrderStatusoptions: [],
  3640. lastCompanyId: "",
  3641. apiInterfaceName: 'generateOrder',
  3642. isLetter3Arr:[],
  3643. isLetter3agreementId:'',
  3644. fileListnoPolicy:[],
  3645. fileListnoPolicy:[],
  3646. fileListjqSign:[],
  3647. fileListjqPolicy:[],
  3648. };
  3649. },
  3650. watch: {
  3651. "carInfo.licenseNo": {
  3652. handler(val) {
  3653. if (val) {
  3654. this.carInfo.licenseNo = val.toUpperCase();
  3655. }
  3656. },
  3657. deep: true
  3658. },
  3659. "carInfo.frameNo": {
  3660. handler(val) {
  3661. if (val) {
  3662. this.carInfo.frameNo = val.toUpperCase();
  3663. }
  3664. },
  3665. deep: true
  3666. },
  3667. "carInfo.enginedesc": {
  3668. handler(val) {
  3669. if (val) {
  3670. this.carInfo.enginedesc = val.replace(/[A-Za-z]/g, "");
  3671. }
  3672. },
  3673. deep: true
  3674. },
  3675. "ownerInfo.mobile": {
  3676. handler(val) {
  3677. if (val) {
  3678. this.ownerInfo.mobile = val.replace(/\s/g, "");
  3679. }
  3680. },
  3681. deep: true
  3682. },
  3683. "policyHolderInfo.mobile": {
  3684. handler(val) {
  3685. if (val) {
  3686. this.policyHolderInfo.mobile = val.replace(/\s/g, "");
  3687. }
  3688. },
  3689. deep: true
  3690. },
  3691. "insuredPersonInfo.mobile": {
  3692. handler(val) {
  3693. if (val) {
  3694. this.insuredPersonInfo.mobile = val.replace(/\s/g, "");
  3695. }
  3696. },
  3697. deep: true
  3698. },
  3699. "carInfo.engineNo": {
  3700. handler(val) {
  3701. if (val) {
  3702. this.carInfo.engineNo = val.replace(/[^\w-]/gi, "").toUpperCase();
  3703. }
  3704. },
  3705. deep: true
  3706. },
  3707. "carInfo.seatCount": {
  3708. handler(val) {
  3709. if (val) {
  3710. this.sumseatCount = val - 1;
  3711. }
  3712. },
  3713. deep: true
  3714. },
  3715. "policyHolderInfo.identifyNumber": {
  3716. handler(val) {
  3717. if (val) {
  3718. this.vehicleAndVesselTaxForm.identifyNumber = val;
  3719. }
  3720. },
  3721. deep: true
  3722. },
  3723. "policyHolderInfo.name": {
  3724. handler(val) {
  3725. if (val) {
  3726. this.vehicleAndVesselTaxForm.taxpayerName = val;
  3727. }
  3728. },
  3729. deep: true
  3730. }
  3731. },
  3732. props: {
  3733. isdisabled: {
  3734. type: Boolean,
  3735. default: true
  3736. },
  3737. isLetter: {
  3738. type: String,
  3739. default: '1'
  3740. },
  3741. },
  3742. components: {
  3743. detailsDialog,
  3744. quotationDialog,
  3745. quotationDialogPro,
  3746. "el-image-viewer": () =>
  3747. import("element-ui/packages/image/src/image-viewer")
  3748. },
  3749. created() {
  3750. if (this.isLetter=='2') {
  3751. this.apiInterfaceName = 'ordergenerateOrder'
  3752. }
  3753. // this.commpanyList(); //获取保险公司
  3754. this.getDicType("taxRelifFlag"); //车船税类型
  3755. this.getDicType("taxpayerIdentifier"); //纳税人证件类型
  3756. this.getDicType("relifReason"); //减免税原因代码
  3757. this.getDicType("vehicleType"); //车辆种类
  3758. this.getDicType("trafficManagementVehicleType"); //车辆类型
  3759. this.getDicType("energyType"); //能源种类
  3760. this.getDicType("natureOfVehicleUse"); //车辆使用性质
  3761. this.getDicType("businessVehicleUse"); //(车辆用途)营业
  3762. this.getDicType("outOfBusinessVehicleUse"); //(车辆用途)非营业
  3763. this.getDicType("insOrderStatus"); //状态
  3764. this.$api.letter.queryCompany().then(res => {
  3765. this.continuousCompanyList = res.data;
  3766. });
  3767. this.$api.letter.packageQuery().then(res => {
  3768. this.packageOptions = res.data;
  3769. });
  3770. localStorage.setItem("carInfo", JSON.stringify(this.carInfo));
  3771. localStorage.setItem("insureList", JSON.stringify(this.insureList));
  3772. //--归属信息获取--
  3773. var userId = Cookies.get("user");
  3774. if (userId == "admin") {
  3775. this.userId = "admin";
  3776. } else {
  3777. // this.userId = userId;
  3778. this.$api.user.getLoginUser().then(res => {
  3779. if (res.code == 200) {
  3780. this.userform = res.data;
  3781. this.$api.dept.getDeptById(res.data.deptId).then(res => {
  3782. this.deptName = res.data.name;
  3783. });
  3784. }
  3785. });
  3786. }
  3787. //--订单编辑回显--
  3788. // this.paramsEdit = this.$route.query.data; //接收参数
  3789. this.obtainProtocol(this.$route.query.data);
  3790. this.editingWay(this.$route.query.data)
  3791. },
  3792. mounted() {
  3793. this.onScroll();
  3794. window.addEventListener("scroll", this.onScroll);
  3795. },
  3796. destroyed() {
  3797. window.removeEventListener("scroll", this.onScroll);
  3798. },
  3799. beforeCreate() {
  3800. _self = this;
  3801. },
  3802. computed: {
  3803. issueDateOptions() {
  3804. return {
  3805. disabledDate: this.disabledDate
  3806. };
  3807. }
  3808. },
  3809. filters: {
  3810. cap(ele) {
  3811. return _self.insOrderStatusoptions.find(item => {
  3812. return item.dictValue === ele;
  3813. }).dictTag;
  3814. }
  3815. },
  3816. methods: {
  3817. editingWay(paramsEdit) {
  3818. if (paramsEdit) {
  3819. var _this = this;
  3820. this.jqchecked = false;
  3821. this.tbczcarShow = false;
  3822. this.bbtbcarShow = false;
  3823. this.bbczcarShow = false;
  3824. const {
  3825. carinfo,
  3826. ownerinfo,
  3827. applyinfo,
  3828. insureinfo,
  3829. quoteno,
  3830. orderno
  3831. } = paramsEdit;
  3832. _this.carInfo = carinfo;
  3833. if (_this.carInfo.carnature == "8A") {
  3834. _this.carInfo.carnature = "02";
  3835. _this.carInfo.vehicleUse = "05";
  3836. } else {
  3837. _this.carInfo.carnature;
  3838. _this.carInfo.vehicleUse;
  3839. }
  3840. _this.ownerInfo = ownerinfo;
  3841. _this.policyHolderInfo = applyinfo;
  3842. _this.insuredPersonInfo = insureinfo;
  3843. _this.quoteno = quoteno;
  3844. _this.orderno = orderno;
  3845. _this.tbczcarShow = applyinfo.owner;
  3846. _this.bbczcarShow = insureinfo.owner;
  3847. _this.bbtbcarShow = insureinfo.insuranceHolder;
  3848. _this.ownerInfo.age = getAgeByIdCard(_this.ownerInfo.identifyNumber);
  3849. _this.policyHolderInfo.age = getAgeByIdCard(
  3850. _this.policyHolderInfo.identifyNumber
  3851. );
  3852. _this.insuredPersonInfo.age = getAgeByIdCard(
  3853. _this.insuredPersonInfo.identifyNumber
  3854. );
  3855. if (paramsEdit.carinfo.transferFlag) {
  3856. this.transferDateShow = true;
  3857. }
  3858. paramsEdit.risk.map(ele => {
  3859. if (ele.riskCode == "0507") {
  3860. _this.jqchecked = true;
  3861. this.protocolJudge('0507', true)
  3862. // _this.jqstartDate = ele.startDate;
  3863. // _this.jqendDate = ele.endDate;
  3864. _this.jqstartDate = this.transformTime1();
  3865. _this.jqendDate = this.oneYearPast1(this.jqstartDate);
  3866. } else if (ele.riskCode == "0510") {
  3867. _this.sychecked = true;
  3868. this.protocolJudge('0510', true)
  3869. // _this.systartDate = ele.startDate;
  3870. // _this.syendDate = ele.endDate;
  3871. _this.systartDate = this.transformTime1();
  3872. _this.syendDate = this.oneYearPast1(this.systartDate);
  3873. _this.insureList.map(eleA => {
  3874. paramsEdit.king.map(eleB => {
  3875. if (eleA.kindCode == eleB.kindCode) {
  3876. switch (eleB.kindCode) {
  3877. case "D4":
  3878. case "SY_FJ_YBW2":
  3879. eleA.amount = JSON.stringify(eleB.unitAmount);
  3880. break;
  3881. case "MJ1":
  3882. case "MJ2":
  3883. case "MJ3":
  3884. case "MJ4":
  3885. eleA.amount = eleB.deductibleRate;
  3886. case "A":
  3887. eleA.amount = JSON.stringify(eleB.amount);
  3888. this.protocolJudge('A', true)
  3889. break;
  3890. default:
  3891. eleA.amount = JSON.stringify(eleB.amount);
  3892. }
  3893. }
  3894. });
  3895. });
  3896. }
  3897. });
  3898. // this.HistoryList = this.paramsEdit.insAreaCompanyList;
  3899. let params = {
  3900. orderNo: paramsEdit.orderno,
  3901. orderStatus: ""
  3902. };
  3903. this.$api.letter.queryQuoteHistory(params).then(res => {
  3904. res.data.forEach(item => {
  3905. if (item.accidentInfo) {
  3906. item.accidentInfo.constructor === Object
  3907. ? [item.accidentInfo]
  3908. : item.accidentInfo;
  3909. }
  3910. });
  3911. this.HistoryList = res.data;
  3912. });
  3913. //--获取影像信息--
  3914. _this.imageEcho(this.quoteno);
  3915. // this.commpanyList()
  3916. //--显示影像按钮--
  3917. _this.imageUploadShow = true;
  3918. } else {
  3919. this.jqstartDate = this.transformTime1();
  3920. this.jqendDate = this.oneYearPast1(this.jqstartDate);
  3921. this.systartDate = this.transformTime1();
  3922. this.syendDate = this.oneYearPast1(this.systartDate);
  3923. }
  3924. },
  3925. //手机号复制粘贴处理
  3926. handlePaste(e, mobileKey) {
  3927. e.preventDefault(); //阻止默认行为
  3928. const clipboardData = e.clipboardData || window.clipboardData; //获取剪切板内容
  3929. let pastedText = clipboardData.getData("text").replace(/\s+/g, ""); //获取纯文本并处理空格
  3930. // 截取前11个字符,以确保不会超过手机号长度限制
  3931. pastedText = pastedText.substring(0, 11);
  3932. // 使用Vue.nextTick确保更新发生在DOM更新之后
  3933. this.$nextTick(() => {
  3934. this[mobileKey].mobile = pastedText;
  3935. });
  3936. },
  3937. // licenseNoFun(data){
  3938. // if(data && this.carInfo.enginedesc){
  3939. // this.obtainProtocol()
  3940. // }
  3941. // },
  3942. // enginedescFun(data){
  3943. // if(data && this.carInfo.licenseNo){
  3944. // this.obtainProtocol()
  3945. // }
  3946. // },
  3947. packageChange(val) {
  3948. let arr = this.packageOptions.find(ele => ele.id == val).kind;
  3949. if (arr.length > 0) {
  3950. this.insureList.map(eleA => {
  3951. arr.map(eleB => {
  3952. if (eleA.kindCode == eleB.kindCode) {
  3953. switch (eleB.kindCode) {
  3954. case "D4":
  3955. case "SY_FJ_YBW2":
  3956. eleA.amount = JSON.stringify(eleB.unitAmount);
  3957. break;
  3958. case "MJ1":
  3959. case "MJ2":
  3960. case "MJ3":
  3961. case "MJ4":
  3962. eleA.amount = eleB.deductibleRate;
  3963. break;
  3964. case "TY2":
  3965. case "TY3":
  3966. case "TY4":
  3967. eleA.amount = eleB.serviceTimes;
  3968. break;
  3969. default:
  3970. eleA.amount = JSON.stringify(eleB.amount);
  3971. }
  3972. }
  3973. });
  3974. });
  3975. } else {
  3976. this.insureList.map(eleA => {
  3977. eleA.amount = "0";
  3978. });
  3979. }
  3980. },
  3981. capType(val) {
  3982. if (val == "0") {
  3983. return "success";
  3984. }
  3985. if (val == "1") {
  3986. return "warning";
  3987. }
  3988. if (val == "2" || val == "3" || val == "4") {
  3989. return "danger";
  3990. }
  3991. },
  3992. handleCheckAllChange(ele) {
  3993. this.totalCompanyList.forEach((val, index) => {
  3994. ele ? (val.checked = true) : (val.checked = false);
  3995. // this.initchange(ele, val.id, val.cnName, index);
  3996. });
  3997. },
  3998. retractFun() {
  3999. this.isRetract = this.isRetract == false ? true : false;
  4000. },
  4001. //中煤意外险调整份数事件
  4002. ZMhandleChange(val) {
  4003. if (!val) {
  4004. this.$refs.ZmMultipleTable[0].clearSelection(); //清除
  4005. }
  4006. },
  4007. //中煤意外险选中对应意外险方案
  4008. // ZMHandleSelectionChange(val) {
  4009. // // if(val.length > 0&& val[0].quantity==undefined){
  4010. // // this.$message({ message: "请先填写投保份数再勾选!", type: "error", });
  4011. // // this.$refs.ZmMultipleTable[0].clearSelection(); //清除
  4012. // // return false;
  4013. // // }
  4014. // if (val.length > 1) {
  4015. // this.$refs.ZmMultipleTable[0].clearSelection(); //清除
  4016. // this.$refs.ZmMultipleTable[0].toggleRowSelection(val.pop()); //pop:最后一个
  4017. // } else {
  4018. // this.zhongmeiaccidentalDrivingVo = val[0]; //multipleSelection:当前选择的数组
  4019. // }
  4020. // },
  4021. //中煤意外险选中对应产品带出方案明细
  4022. zhongmeiInsuranceChange(index) {
  4023. //每次选中产品,清空之前选中的数据
  4024. this.zhongmeitemplateSelection = index
  4025. this.zhongmeiaccidentalDrivingVo = {};
  4026. this.zhongmeiInsuranceDataTable = [];
  4027. let data = this.zhongmeiInsuranceData.find(
  4028. val => val.projectCode == index
  4029. );
  4030. //把返回的方案明细放入展示数据对象中
  4031. this.accidentFormZM = Object.assign(this.accidentFormZM, data);
  4032. this.accidentFormZM.quantity = "1";
  4033. if (data && data.son) {
  4034. this.accidentPremiumZM = data.sumPremium;
  4035. this.zhongmeiInsuranceDataTable = data.son;
  4036. }
  4037. },
  4038. // 截图粘贴
  4039. copybjd() {
  4040. let that = this;
  4041. html2Canvas(document.getElementById("pdfContentsDiv"), {
  4042. allowTaint: true,
  4043. taintTest: false
  4044. }).then(function (canvas) {
  4045. let base64Data = "";
  4046. // let blob = null
  4047. base64Data = canvas.toDataURL("image/png", 1);
  4048. const date = new Date();
  4049. const saveInfo = {
  4050. download: date.getTime() + `.png`,
  4051. href: base64Data
  4052. };
  4053. const element = document.createElement("a");
  4054. element.style.display = "none";
  4055. for (const key in saveInfo) {
  4056. element.setAttribute(key, saveInfo[key]);
  4057. }
  4058. document.body.appendChild(element);
  4059. element.click();
  4060. setTimeout(() => {
  4061. document.body.removeChild(element);
  4062. }, 300);
  4063. // var format = 'image/png'
  4064. // //将Base64图片编码转换成blob
  4065. // var base64 = base64Data
  4066. // var code = window.atob(base64.split(',')[1])
  4067. // var aBuffer = new window.ArrayBuffer(code.length)
  4068. // var uBuffer = new window.Uint8Array(aBuffer)
  4069. // for (var i = 0; i < code.length; i++) {
  4070. // uBuffer[i] = code.charCodeAt(i) & 0xff
  4071. // }
  4072. // try {
  4073. // blob = new Blob([uBuffer], { type: format })
  4074. // } catch (e) {
  4075. // window.BlobBuilder =
  4076. // window.BlobBuilder ||
  4077. // window.WebKitBlobBuilder ||
  4078. // window.MozBlobBuilder ||
  4079. // window.MSBlobBuilder
  4080. // if (e.name == 'TypeError' && window.BlobBuilder) {
  4081. // var bb = new window.BlobBuilder()
  4082. // bb.append(uBuffer.buffer)
  4083. // blob = bb.getBlob('image/png')
  4084. // } else if (e.name == 'InvalidStateError') {
  4085. // blob = new Blob([aBuffer], { type: format })
  4086. // }
  4087. // }
  4088. // const clipboardItemInput = new ClipboardItem({
  4089. // 'image/png': blob,
  4090. // })
  4091. // that.$copyText({
  4092. // 'image/png': blob,
  4093. // }).then(
  4094. //   function(e) {
  4095. //     console.log("copy arguments e:", e);
  4096. //     alert("复制成功!");
  4097. //   },
  4098. //   function(e) {
  4099. //     console.log("copy arguments e:", e);
  4100. //     alert("复制失败!");
  4101. //   }
  4102. //   ),
  4103. // navigator.clipboard.write([clipboardItemInput])
  4104. // that.$message({
  4105. // message: '已截图并复制到粘贴板!',
  4106. // type: 'success'
  4107. // });
  4108. });
  4109. },
  4110. // 即时起保
  4111. immediatelyChange(e) {
  4112. if (e) {
  4113. this.immediatelyValue = true;
  4114. const date = new Date();
  4115. date.setHours(date.getHours() + 2);
  4116. date.setMinutes(0);
  4117. date.setSeconds(0);
  4118. this.jqstartDate = date;
  4119. this.jqendDate = this.oneYearPast1(date);
  4120. } else {
  4121. this.immediatelyValue = false;
  4122. this.jqstartDate = this.transformTime1();
  4123. this.jqendDate = this.oneYearPast1(this.jqstartDate);
  4124. }
  4125. },
  4126. // 使用性质方法
  4127. natureFun() {
  4128. if (this.carInfo.carnature == "01") {
  4129. this.carInfo.vehicleUse = "";
  4130. }
  4131. },
  4132. // 点击同步报价后的时间
  4133. syncData(item) {
  4134. this.jqstartDate = item.startDateJq ? item.startDateJq : this.jqstartDate;
  4135. this.jqendDate = item.endDateJq ? item.endDateJq : this.endDateJq;
  4136. this.systartDate = item.startDateSy ? item.startDateSy : this.systartDate;
  4137. this.syendDate = item.endDateSy ? item.endDateSy : this.syendDate;
  4138. },
  4139. //纳税类型事件
  4140. taxRelifFlagChange(val) {
  4141. if (val == 4) {
  4142. citydata.rawCitiesData.map(val => {
  4143. this.provinceSelect.push({
  4144. name: val.name,
  4145. code: val.code
  4146. });
  4147. return val;
  4148. });
  4149. }
  4150. },
  4151. //身份证前六位识别地区
  4152. // getAreaByCode(code) {
  4153. // let list = regionData;
  4154. // let provinceCode = code.substring(0, 2);
  4155. // let cityCode = code.substring(0, 4);
  4156. // let areaCode = code.substring(0, 6);
  4157. // // 获取省份信息
  4158. // let province = list.filter(function (item) {
  4159. // return item.value === provinceCode;
  4160. // });
  4161. // // 获取城市信息
  4162. // let city = province[0].children.filter(function (item) {
  4163. // return item.value === cityCode;
  4164. // });
  4165. // if (city.length > 0) {
  4166. // // 获取区/县信息
  4167. // let area = city[0].children.filter(function (item) {
  4168. // return item.value === areaCode;
  4169. // });
  4170. // return province[0].label + city[0].label + area[0].label;
  4171. // }
  4172. // },
  4173. //--数据字典 begin --
  4174. getDicType(type) {
  4175. this.$api.insCompany.dicType(type).then(res => {
  4176. if (res.code == 200) {
  4177. if (type == "insOrderStatus") {
  4178. let data = JSON.parse(JSON.stringify(res.data.ddList));
  4179. data.unshift({
  4180. dictTag: "全部",
  4181. dictValue: "888"
  4182. });
  4183. this[type + "options"] = data;
  4184. } else {
  4185. this[type + "options"] = res.data.ddList;
  4186. }
  4187. }
  4188. });
  4189. },
  4190. //身份证失去焦点
  4191. identifyblur(info) {
  4192. this[info].age = getAgeByIdCard(this[info].identifyNumber);
  4193. this[info].gender = getGenderByIdCard(this[info].identifyNumber);
  4194. },
  4195. //车主信息选择性别
  4196. genderChange(e) {
  4197. if (this.tbczcarShow) {
  4198. this.policyHolderInfo.gender = e;
  4199. } else if (this.bbczcarShow) {
  4200. this.insuredPersonInfo.gender = e;
  4201. }
  4202. },
  4203. //省市区
  4204. // areahandleChange(event, info) {
  4205. // console.log(event)
  4206. // if (event[0] != null && event[1] != null && event[2] != null) {
  4207. // this[info].province = codeToText[event[0]]
  4208. // this[info].city = codeToText[event[1]]
  4209. // this[info].county = codeToText[event[2]]
  4210. // }
  4211. // },
  4212. iconfftter(icon) {
  4213. return CommonUtil.getDataName({
  4214. dataList: this.global.insCompanyList,
  4215. value: "name",
  4216. label: "icon",
  4217. data: icon
  4218. });
  4219. },
  4220. disabledDate(time) {
  4221. let datetime = this.carInfo.registerDate;
  4222. return time.getTime() < new Date(datetime).getTime();
  4223. },
  4224. onScroll() {
  4225. // 变量scrollTop是滚动条滚动时,滚动条上端距离顶部的距离
  4226. var scrollTop =
  4227. document.documentElement.scrollTop || document.body.scrollTop;
  4228. // 变量windowHeight是可视区的高度
  4229. var windowHeight =
  4230. document.documentElement.clientHeight || document.body.clientHeight;
  4231. // 变量scrollHeight是滚动条的总高度(当前可滚动的页面的总高度)
  4232. var scrollHeight =
  4233. document.documentElement.scrollHeight || document.body.scrollHeight;
  4234. // 滚动条到底部
  4235. if (Math.ceil(scrollTop + windowHeight) >= scrollHeight) {
  4236. this.isBottom = true;
  4237. } else {
  4238. this.isBottom = false;
  4239. }
  4240. },
  4241. anshengInsuranceChange(index) {
  4242. this.anshengtemplateSelection = index
  4243. let data = this.anshengInsuranceData.find(val => val.projectCode == index);
  4244. this.anshengaccidentalDrivingVo.parentName = data.projectName;
  4245. this.anshengaccidentalDrivingVo.parentCode = data.projectCode;
  4246. this.anshengInsuranceDataTable = [];
  4247. this.anshengInsuranceDataTable = data.children;
  4248. this.anshengInsuranceDataTable.forEach(e => e.quantity = '1')
  4249. },
  4250. hengbangInsuranceChange(index) {
  4251. this.hengbangInsuranceDataTable = this.hengbangInsuranceData.find(val => val.projectCode == index).son
  4252. this.hengbangtemplateSelection = index
  4253. if (this.hengbangInsuranceDataTable.length) {
  4254. this.hengbangaccidentalDrivingVo = this.hengbangInsuranceData.find(val => val.projectCode == index);
  4255. }
  4256. },
  4257. huanongInsuranceChange(index) {
  4258. this.huanongInsuranceDataTable = this.huanongInsuranceData.find(
  4259. val => val.projectCode == index
  4260. ).son;
  4261. this.accidentFormHN.accidentType = index
  4262. this.huanongaccidentalDrivingVo = Object.assign(
  4263. this.huanongInsuranceData.find(val => val.projectCode == index),
  4264. this.accidentFormHN,
  4265. );
  4266. },
  4267. taipingInsuranceChange(index) {
  4268. this.taipingtemplateSelection = index
  4269. this.taipingInsuranceDataTable = this.taipingInsuranceData.find(val => val.projectCode == index).son
  4270. if (this.taipingInsuranceDataTable && this.taipingInsuranceDataTable.length) {
  4271. this.taipingaccidentalDrivingVo = this.taipingInsuranceData.find(val => val.projectCode == index);
  4272. }
  4273. },
  4274. zijinInsuranceChange(index) {
  4275. this.zijintemplateSelection = index
  4276. this.zijinInsuranceDataTable = [];
  4277. this.$refs.expandTable[0].clearSelection();
  4278. index.forEach(item => {
  4279. this.zijinInsuranceDataTable.push(
  4280. this.ziJinInsuranceData.find(val => val.projectCode == item)
  4281. );
  4282. });
  4283. this.zijinInsuranceDataTable.forEach(item => {
  4284. this.$nextTick(() => {
  4285. this.$refs.expandTable[0].toggleRowSelection(item);
  4286. });
  4287. });
  4288. this.CheckboxChange(this.zijinInsuranceDataTable);
  4289. },
  4290. renshouInsuranceChange(index) {
  4291. // this.renshouInsuranceDataTable = [
  4292. // this.renshouInsuranceData.find(val => val.projectCode == index)
  4293. // ];
  4294. this.renshoutemplateSelection = index
  4295. this.renshouInsuranceDataTable = this.renshouInsuranceData.find(val => val.projectCode == index).son
  4296. if (index) {
  4297. this.RSDrivingChange(this.renshouInsuranceData.find(val => val.projectCode == index));
  4298. }
  4299. },
  4300. async dajiaInsuranceChange(index) {
  4301. this.dajiaaccidentalDrivingVo = {};
  4302. let data = await this.$api.letter.accidentalDrivingInfo(index);
  4303. if (data.code == 200) {
  4304. this.dajiaaccidentalDrivingVo = {
  4305. rideRiskCode: index,
  4306. rideRiskName: this.dajiaInsuranceData.find(val => val.id == index)
  4307. .productName,
  4308. quantity: "1"
  4309. };
  4310. this.dajiaInsuranceDataTable = data.data;
  4311. }
  4312. },
  4313. zhonganInsuranceChange(index) {
  4314. this.zhongantemplateSelection = index
  4315. this.zhonganInsuranceDataTable = this.zhonganInsuranceData.find(val => val.projectCode == index).son
  4316. if (index) {
  4317. this.ZADrivingChange(this.zhonganInsuranceData.find(val => val.projectCode == index));
  4318. }
  4319. },
  4320. // 渤海选择意外险类型
  4321. async bohaiInsuranceChange(index) {
  4322. if (index) {
  4323. this.boHaiaccidentForm.packageCode = index
  4324. this.accidentLoadingbh = true;
  4325. this.boHaiaccidentForm.copies = "1";
  4326. this.boHaiaccidentForm.premium = Number(
  4327. this.boHaiaccidentDataList.find(e => e.packageCode == index).premium
  4328. );
  4329. let data = await this.$api.letter.productDetailsQueryboHai({
  4330. packageCode: index,
  4331. productCode: this.boHaiaccidentDataList.find(
  4332. e => e.packageCode == index
  4333. ).productCode,
  4334. agreementId: this.boHaiaccidentForm.agreementId
  4335. });
  4336. if (data.code == 200 && data.data) {
  4337. this.accidentLoadingbh = false;
  4338. this.bohaiInsuranceDataTable = data.data;
  4339. } else {
  4340. this.$message.error(data.msg);
  4341. this.bohaiInsuranceDataTable = [];
  4342. }
  4343. }
  4344. },
  4345. // 国任选择意外险类型
  4346. async grcxchange(index) {
  4347. if (index) {
  4348. this.accidentLoading = true;
  4349. this.guoRenaccidentForm.goodsCode = index
  4350. this.guoRenaccidentForm.quantity = "1";
  4351. this.guoRenaccidentForm.prodCode = "";
  4352. this.guoRenaccidentDataListChild = this.guoRenaccidentDataList.find(e => e.projectCode == index).children;
  4353. this.guoRenaccidentalDrivingVo.parentName = this.guoRenaccidentDataList.find(e => e.projectCode == index).projectName;
  4354. this.guoRenaccidentalDrivingVo.parentCode = this.guoRenaccidentDataList.find(e => e.projectCode == index).projectCode;
  4355. // let data = await this.$api.letter.syncNonAutoInsGuoren({
  4356. // goodsCode: index,
  4357. // agreementId: this.guoRenaccidentForm.agreementId
  4358. // });
  4359. // if (data.code == 200) {
  4360. // let num = 0;
  4361. // data.data.forEach(item => {
  4362. // num += Number(item.premium);
  4363. // });
  4364. // this.accidentLoading = false;
  4365. // } else {
  4366. // this.accidentLoading = false;
  4367. // this.$message.error(data.msg);
  4368. // this.guoRenaccidentDataListChild = [];
  4369. // }
  4370. }
  4371. },
  4372. // 国任选择意外险子级类型
  4373. async grcxchangeChild(index) {
  4374. let list = this.guoRenaccidentDataListChild.find(
  4375. val => val.projectCode == index
  4376. );
  4377. this.guoRenaccidentForm = {
  4378. ...this.guoRenaccidentForm,
  4379. prodCode: index,
  4380. policyNum: Number(list.sumPremium),
  4381. riskCode: list.riskCode,
  4382. // amount: list.amount,
  4383. sumPremium: Number(list.sumPremium)
  4384. // appnum:Number(list.appnum)
  4385. };
  4386. this.guoRenInsuranceDataTable = list.son;
  4387. this.guoRenaccidentalDrivingVo = Object.assign({ ...list, ...this.guoRenaccidentalDrivingVo })
  4388. },
  4389. // 选择意外险类型
  4390. async yongchengInsuranceChange(index) {
  4391. if (!index) {
  4392. return;
  4393. }
  4394. this.yongchengtemplateSelection = index
  4395. this.accidentForm = Object.assign(
  4396. this.accidentForm,
  4397. this.yongchengaccidentDataList.find(val => val.projectCode == index)
  4398. );
  4399. this.yongchengaccidentDataList.find(val => val.projectCode == index).son.forEach(item => {
  4400. item.sumAmount = Number(item.amount) * Number(this.accidentForm.seatNum);
  4401. });
  4402. this.yongchengInsuranceDataTable = this.yongchengaccidentDataList.find(val => val.projectCode == index).son
  4403. this.accidentPremium = this.accidentForm.sumPremium;
  4404. // this.accidentForm.fen = "1";
  4405. // let data = await this.$api.letter.ycgainAccidentSchemeList({
  4406. // companyCode: this.accidentForm.companyId,
  4407. // code: index,
  4408. // agreementId: this.accidentForm.agreementId,
  4409. // seatNum: Number(this.carInfo.seatCount)
  4410. // });
  4411. // if (data.code == 200) {
  4412. // let num = 0;
  4413. // data.data.forEach(item => {
  4414. // num += Number(item.premium);
  4415. // });
  4416. // this.accidentPremium = num;
  4417. // this.accidentForm.premium = num;
  4418. // this.accidenttableData = data.data;
  4419. // }
  4420. },
  4421. numberCopieschange(index) {
  4422. this.accidentForm.sumPremium = Number(this.accidentPremium) * index;
  4423. },
  4424. numberCopieschangeZM(index) {
  4425. this.accidentFormZM.sumPremium = Number(this.accidentPremiumZM) * index;
  4426. },
  4427. numberCopieschangeGR(index) {
  4428. this.guoRenaccidentForm.sumPremium =
  4429. Number(this.guoRenaccidentForm.policyNum) * index;
  4430. },
  4431. continuousChange(id) {
  4432. this.continuousCompanyList.map(ele => {
  4433. if (ele.id == id) {
  4434. this.attributionform.configure = [];
  4435. ele.configure.map((ele, index) => {
  4436. this.attributionform.configure.push({
  4437. field: ele.field,
  4438. isEdit: ele.isEdit,
  4439. label: ele.label,
  4440. type: ele.type,
  4441. value: ""
  4442. });
  4443. });
  4444. }
  4445. });
  4446. },
  4447. //续保查询
  4448. continuousquery() {
  4449. this.$api.letter.queryRenewal(this.attributionform).then(res => {
  4450. if (res.code == "200") {
  4451. this.carInfo = res.data.carInfo;
  4452. this.ownerInfo = res.data.ownerInfo;
  4453. this.policyHolderInfo = res.data.policyHolderInfo;
  4454. this.insuredPersonInfo = res.data.insuredPersonInfo;
  4455. res.data.riskList.map(ele => {
  4456. if (ele.riskCode == "0507") {
  4457. this.jqchecked = true;
  4458. this.jqstartDate = ele.startDate;
  4459. this.jqendDate = ele.endDate;
  4460. } else if (ele.riskCode == "0510") {
  4461. this.sychecked = true;
  4462. this.systartDate = ele.startDate;
  4463. this.syendDate = ele.endDate;
  4464. }
  4465. county;
  4466. });
  4467. } else {
  4468. this.$message({
  4469. message: res.msg,
  4470. type: "error",
  4471. duration: 2000
  4472. });
  4473. }
  4474. });
  4475. },
  4476. //永诚转保
  4477. renewalCodeconfirm() {
  4478. this.renewalCodedialogVisible = false;
  4479. this.quote();
  4480. },
  4481. //报价轨迹查询
  4482. RadioHistoryChange(e) {
  4483. let params = {
  4484. orderNo: this.orderno,
  4485. orderStatus: e == 888 ? "" : e
  4486. };
  4487. this.$api.letter.queryQuoteHistory(params).then(res => {
  4488. res.data.forEach(item => {
  4489. if (item.accidentInfo) {
  4490. item.accidentInfo.constructor === Object
  4491. ? [item.accidentInfo]
  4492. : item.accidentInfo;
  4493. }
  4494. });
  4495. this.HistoryList = res.data;
  4496. });
  4497. },
  4498. protocolJudge(val, val1) {
  4499. if (val1) {
  4500. this.totalCompanyList.forEach(e => {
  4501. if (e.agreement.find(el => el.productsCode && el.productsCode.includes(val))) {
  4502. e.agreement.find(el => el.productsCode && el.productsCode.includes(val)).disabled = true
  4503. }
  4504. })
  4505. }
  4506. else {
  4507. this.totalCompanyList.forEach(e => {
  4508. if (e.agreement.find(el => el.productsCode && el.productsCode.includes(val))) {
  4509. e.agreement.find(el => el.productsCode && el.productsCode.includes(val)).disabled = false
  4510. }
  4511. })
  4512. }
  4513. },
  4514. async obtainProtocol(data) {
  4515. let res = {}
  4516. if (this.isLetter=='1') {
  4517. res = await this.$api.letter.getAllAgreement()
  4518. }
  4519. if (this.isLetter=='2') {
  4520. res = await this.$api.letter.getAllAgreementByUserId({ userId: this.userId })
  4521. }
  4522. if (this.isLetter=='3') {
  4523. res = await this.$api.letter.getExternalAgreement()
  4524. }
  4525. if (res.code == 200) {
  4526. res.data.map(ele => {
  4527. ele["result"] = {};
  4528. ele["quoteCode"] = 0;
  4529. ele["checked"] = false;
  4530. ele["msg"] = "";
  4531. ele["lastYearMsg"] = "";
  4532. ele["agreementId"] = "";
  4533. ele["apiType"] = "";
  4534. ele["orderstatus"] = 0;
  4535. ele.coefficient = "";
  4536. // ele.agreementId = ele.agreement[0].id;
  4537. // ele.apiType = ele.agreement[0].apiType;
  4538. ele.underwritingDescription =
  4539. ele.agreement[0].underwritingDescription;
  4540. if (ele.isTaxSource && ele.isTaxSource == "1") {
  4541. ele.agreement.forEach(val => {
  4542. if (val.isTaxSource && val.isTaxSource == "1") {
  4543. ele.agreementId = val.id;
  4544. ele.apiType = val.apiType;
  4545. }
  4546. });
  4547. }
  4548. });
  4549. if (data) {
  4550. res.data.forEach((val, index) => {
  4551. data.insAreaCompanyEditingDtos.forEach(ele => {
  4552. if (val.namesimple == ele.inscompany) {
  4553. if (ele.inscompany == "中国人寿" && ele.companyId) {
  4554. this.lastCompanyId = ele.companyId;
  4555. }
  4556. res.data[index].quoteCode = 200;
  4557. res.data[index].result = ele;
  4558. }
  4559. });
  4560. });
  4561. }
  4562. }
  4563. res.data.forEach(e => {
  4564. e.agreement.forEach(el => el.disabled = false)
  4565. })
  4566. this.totalCompanyList = res.data;
  4567. },
  4568. //获取保险公司列表
  4569. // commpanyList() {
  4570. // this.$api.letter.gainAllowQuoteList("").then(res => {
  4571. // res.data.map(ele => {
  4572. // ele["result"] = {};
  4573. // ele["quoteCode"] = 0;
  4574. // ele["checked"] = false;
  4575. // ele["msg"] = "";
  4576. // ele["lastYearMsg"] = "";
  4577. // ele["agreementId"] = "";
  4578. // ele["apiType"] = "";
  4579. // ele["orderstatus"] = 0;
  4580. // ele.coefficient = "";
  4581. // // ele.agreementId = ele.agreement[0].id;
  4582. // ele.apiType = ele.agreement[0].apiType;
  4583. // ele.underwritingDescription =
  4584. // ele.agreement[0].underwritingDescription;
  4585. // });
  4586. // if (this.$route.query.data) {
  4587. // res.data.forEach((val, index) => {
  4588. // this.$route.query.data.insAreaCompanyEditingDtos.forEach(ele => {
  4589. // if (val.namesimple == ele.inscompany) {
  4590. // res.data[index].quoteCode = 200;
  4591. // res.data[index].result = ele;
  4592. // }
  4593. // });
  4594. // });
  4595. // }
  4596. // this.totalCompanyList = res.data;
  4597. // });
  4598. // },
  4599. Payment(id, item) {
  4600. this.carcode(id, item);
  4601. },
  4602. //选择协议 val:协议id row:协议列表 index:下标 item:保险公司数据集合
  4603. agreementChange(val, row, index, item) {
  4604. this.kindListFun()
  4605. if(this.isLetter=='3'){
  4606. this.isLetter3agreementId=''
  4607. this.isLetter3agreementId=item.agreementId
  4608. }
  4609. let obj = {};
  4610. obj = row.find(item => {
  4611. return item;
  4612. });
  4613. let selectRow = row.find(item => {
  4614. return item.id == val;
  4615. });
  4616. let info = row.find(ele => ele.id == val);
  4617. this.totalCompanyList[index].apiType = info.apiType;
  4618. this.totalCompanyList[index].underwritingDescription = val
  4619. ? selectRow.underwritingDescription
  4620. : ""; //重新赋值修改选中协议承保描述
  4621. this.$api.letter
  4622. .getDrivingInsuranceRule({
  4623. companyCode: item.id,
  4624. agreementId: item.agreementId,
  4625. seatNum: item.namesimple == '永诚财险' || item.namesimple == '中煤财险' ? Number(this.carInfo.seatCount) : '',
  4626. ruleUseNature: this.carInfo.carnature,
  4627. ruleSeatNum: Number(this.carInfo.seatCount),
  4628. risk: this.riskList,
  4629. kind: this.kindList,
  4630. ruleThirdPartyInsurance: this.insureList[1].amount
  4631. })
  4632. .then(res => {
  4633. if (res.code == 200) {
  4634. this.nonVehicle(res.data, item.cnName)
  4635. switch (item.namesimple) {
  4636. case "永诚财险":
  4637. this.yongchengaccidentDataList = res.data;
  4638. break;
  4639. case "国任财险":
  4640. this.guoRenaccidentDataList = res.data;
  4641. break;
  4642. case "渤海财险":
  4643. this.boHaiaccidentDataList = res.data;
  4644. break;
  4645. case "中煤财险":
  4646. this[item.cnName + + "InsuranceData"] = res.data;
  4647. break;
  4648. case "紫金财险":
  4649. let data = res.data;
  4650. data.map(ele => {
  4651. ele.quantity = 1;
  4652. return ele;
  4653. });
  4654. this.ziJinInsuranceData = data;
  4655. break;
  4656. case "大家财险":
  4657. this.dajiaInsuranceData = res.data;
  4658. break;
  4659. case "中国人寿":
  4660. case "恒邦财险":
  4661. case "太平财险":
  4662. case "安盛天平":
  4663. case "华农财险":
  4664. case "众安财险":
  4665. res.data.map(ele => {
  4666. ele.quantity = 1;
  4667. return ele;
  4668. });
  4669. this[item.cnName + "InsuranceData"] = res.data;
  4670. break;
  4671. }
  4672. }
  4673. else {
  4674. this.$message.error(res.msg)
  4675. }
  4676. });
  4677. // switch (item.namesimple) {
  4678. // case "永诚财险":
  4679. // this.accidentForm.agreementId = item.agreementId;
  4680. // this.$api.letter
  4681. // .ycgainAccidentList({
  4682. // companyCode: item.id,
  4683. // agreementId: item.agreementId,
  4684. // seatNum: Number(this.carInfo.seatCount)
  4685. // })
  4686. // .then(res => {
  4687. // if (res.code == 200) {
  4688. // this.accidentDataList = res.data;
  4689. // }
  4690. // });
  4691. // break;
  4692. // case "国任财险":
  4693. // this.guoRenaccidentForm.agreementId = item.agreementId;
  4694. // this.$api.letter
  4695. // .syncNonAutoInsGuoren({ agreementId: item.agreementId })
  4696. // .then(res => {
  4697. // if (res.code == 200) {
  4698. // this.guoRenaccidentDataList = res.data;
  4699. // } else {
  4700. // this.guoRenaccidentDataList = [];
  4701. // }
  4702. // });
  4703. // break;
  4704. // case "渤海财险":
  4705. // this.boHaiaccidentForm.agreementId = item.agreementId;
  4706. // let policyHolderInfo = this.tbczcarShow
  4707. // ? this.ownerInfo
  4708. // : this.policyHolderInfo;
  4709. // let productQueryVo = {
  4710. // agreementId: item.agreementId,
  4711. // carnature: this.carInfo.carnature,
  4712. // cimodelclass: this.carInfo.cimodelclass,
  4713. // exhaustScale: this.carInfo.enginedesc,
  4714. // limitLoad: this.carInfo.limitLoad,
  4715. // powerScale: this.carInfo.powerScale,
  4716. // seatCount: this.carInfo.seatCount,
  4717. // vehicleUse: this.carInfo.vehicleUse,
  4718. // policyHolderInfo,
  4719. // insuredPersonInfo: this.bbczcarShow
  4720. // ? this.ownerInfo
  4721. // : this.bbtbcarShow
  4722. // ? policyHolderInfo
  4723. // : this.insuredPersonInfo
  4724. // };
  4725. // this.$api.letter.productQueryboHai(productQueryVo).then(res => {
  4726. // if (res.code == 200) {
  4727. // this.boHaiaccidentDataList = res.data;
  4728. // } else {
  4729. // this.boHaiaccidentDataList = [];
  4730. // }
  4731. // });
  4732. // break;
  4733. // case "紫金财险":
  4734. // this.$api.letter
  4735. // .zijinqueryVehicleProducts({
  4736. // agreementId: val,
  4737. // seatCount: Number(this.carInfo.seatCount)
  4738. // })
  4739. // .then(res => {
  4740. // if (res.code == 200) {
  4741. // let data = res.data;
  4742. // data.map(ele => {
  4743. // ele.quantity = 1;
  4744. // return ele;
  4745. // });
  4746. // this.ziJinInsuranceData = data;
  4747. // } else {
  4748. // this.$message.error(res.msg);
  4749. // }
  4750. // });
  4751. // break;
  4752. // case "中国人寿":
  4753. // case "恒邦财险":
  4754. // case "太平财险":
  4755. // case "安盛天平":
  4756. // case "华农财险":
  4757. // case "众安财险":
  4758. // this.$api.letter.pythongetDriving({ agreementId: val }).then(res => {
  4759. // if (res.code == 200) {
  4760. // let data = res.data;
  4761. // data.map(ele => {
  4762. // ele.quantity = 1;
  4763. // return ele;
  4764. // });
  4765. // this[item.cnName + "InsuranceData"] = data;
  4766. // }
  4767. // });
  4768. // break;
  4769. // case "大家财险":
  4770. // this.$api.letter
  4771. // .dajiagetDriving({ agreementId: item.agreementId })
  4772. // .then(res => {
  4773. // if (res.code == 200) {
  4774. // this.dajiaInsuranceData = res.data;
  4775. // }
  4776. // });
  4777. // break;
  4778. // default:
  4779. // break;
  4780. // }
  4781. },
  4782. nonVehicle(data, type) {
  4783. if (data.some(e => e.isDefault)) {
  4784. if (type == 'guoRen') {
  4785. this.grcxchange(data.find(ele => ele.isDefault).projectCode)
  4786. this.grcxchangeChild((data.find(ele => ele.isDefault).children).find(ele => ele.isDefault).projectCode)
  4787. }
  4788. if (type == 'ansheng') {
  4789. this.anshengInsuranceChange(data.find(ele => ele.isDefault).projectCode)
  4790. this.ASDrivingRadio((data.find(ele => ele.isDefault).children).find(ele => ele.isDefault))
  4791. }
  4792. if (type == 'zijin') {
  4793. this[type + "InsuranceChange"]([data.find(ele => ele.isDefault).projectCode])
  4794. }
  4795. else {
  4796. this[type + "InsuranceChange"](data.find(ele => ele.isDefault).projectCode)
  4797. }
  4798. }
  4799. },
  4800. CheckboxChange(select, row) {
  4801. this.accidentalDrivingVo = [];
  4802. select.map(val => {
  4803. this.accidentalDrivingVo.push(val);
  4804. return val;
  4805. });
  4806. },
  4807. //人寿驾意险选择
  4808. RSDrivingChange(row) {
  4809. this.renshouaccidentalDrivingVo = row;
  4810. },
  4811. //众安驾意险选择
  4812. ZADrivingChange(row) {
  4813. this.zhonganaccidentalDrivingVo = row;
  4814. },
  4815. RSDrivingRadio(row) {
  4816. this.RSDrivingChange(row);
  4817. },
  4818. //安盛驾意险选择
  4819. ASDrivingRadio(row) {
  4820. this.anshengInsurancetype = row.projectCode;
  4821. this.anshengaccidentalDrivingVo = Object.assign({ ...row, ...this.anshengaccidentalDrivingVo })
  4822. // this.anshengaccidentalDrivingVo.projectCode = row.projectCode;
  4823. // this.anshengaccidentalDrivingVo.projectName = row.projectName;
  4824. },
  4825. ZADrivingRadio(row) {
  4826. this.ZADrivingChange(row);
  4827. },
  4828. // 国任特约选择
  4829. contributingGuoRen(id) {
  4830. this.zijinengageListData = [];
  4831. this.contributingLoading = true;
  4832. this.contributingState = true;
  4833. this.hbsubmitdialogVisible = true;
  4834. this.$api.letter.guorenqueryClauseData({ agreementId: id }).then(res => {
  4835. this.contributingLoading = false;
  4836. res.data.forEach(val => {
  4837. val.clauseName = val.clauses;
  4838. val.clauseContent = val.clausesContext;
  4839. });
  4840. this.zijinengageListData = res.data;
  4841. });
  4842. },
  4843. //紫金特约选择
  4844. zijinengageChange(select, row) {
  4845. this.zijinengageList = [];
  4846. select.map(val => {
  4847. this.zijinengageList.push({
  4848. clauseCode: val.clauseCode,
  4849. clauseName: val.clauseName,
  4850. clauses: val.clauseContent,
  4851. riskCode: val.riskCode
  4852. });
  4853. return val;
  4854. });
  4855. },
  4856. zijinengageChangeAll(row) {
  4857. if (row) {
  4858. this.zijinengageChange(row);
  4859. } else {
  4860. this.$refs.expandTablePro.clearSelection();
  4861. this.zijinengageList = [];
  4862. }
  4863. },
  4864. //紫金特约内容编辑
  4865. zijincellDblclick(row, column) {
  4866. this.currentCell = row.index + "," + column.index;
  4867. if (
  4868. !["clauseContent"].includes(column.property) &&
  4869. row.modifyFlag == "1"
  4870. ) {
  4871. setTimeout(() => {
  4872. this.$refs[row.index + "," + column.index].focus();
  4873. });
  4874. }
  4875. },
  4876. tableCellClassName({ row, column, rowIndex, columnIndex }) {
  4877. row.index = rowIndex;
  4878. column.index = columnIndex;
  4879. },
  4880. hideInput() {
  4881. this.currentCell = null;
  4882. },
  4883. updateArray(arr, value, condition) {
  4884. if (condition) {
  4885. arr.push(value);
  4886. } else {
  4887. const index = arr.indexOf(value);
  4888. if (index !== -1) {
  4889. arr.splice(index, 1);
  4890. }
  4891. }
  4892. if(arr.length==0){
  4893. this.totalCompanyList.forEach(e=>{
  4894. e.disabled=false
  4895. })
  4896. }
  4897. else{
  4898. this.totalCompanyList.forEach(e=>{
  4899. e.disabled= e.id==arr[0]?false:true
  4900. })
  4901. }
  4902. },
  4903. //勾选保险公司
  4904. initchange(e, code, name, index) {
  4905. if(this.isLetter=='3'){
  4906. this.updateArray(this.isLetter3Arr,code,e)
  4907. }
  4908. if (e) {
  4909. this.kindListFun()
  4910. let ins = this.totalCompanyList[index].namesimple;
  4911. this.totalCompanyList[index].checked = e;
  4912. this.totalCompanyList[
  4913. index
  4914. ].underwritingDescription = this.totalCompanyList[
  4915. index
  4916. ].agreement[0].underwritingDescription;
  4917. this.$api.letter
  4918. .getDrivingInsuranceRule({
  4919. agreementId: this.totalCompanyList[index].agreement[0].id,
  4920. seatNum: ins == '永诚财险' || ins == '中煤财险' ? Number(this.carInfo.seatCount) : '',
  4921. ruleUseNature: this.carInfo.carnature,
  4922. ruleSeatNum: Number(this.carInfo.seatCount),
  4923. risk: this.riskList,
  4924. kind: this.kindList,
  4925. ruleThirdPartyInsurance: this.insureList[1].amount
  4926. })
  4927. .then(res => {
  4928. if (res.code == 200) {
  4929. switch (ins) {
  4930. case "永诚财险":
  4931. this.yongchengaccidentDataList = res.data;
  4932. break;
  4933. case "国任财险":
  4934. this.guoRenaccidentDataList = res.data;
  4935. break;
  4936. case "渤海财险":
  4937. this.boHaiaccidentDataList = res.data;
  4938. break;
  4939. case "中煤财险":
  4940. this[name + "InsuranceData"] = res.data;
  4941. break;
  4942. case "紫金财险":
  4943. let data = res.data;
  4944. data.map(ele => {
  4945. ele.quantity = 1;
  4946. return ele;
  4947. });
  4948. this.ziJinInsuranceData = data;
  4949. break;
  4950. case "大家财险":
  4951. this.dajiaInsuranceData = res.data;
  4952. break;
  4953. case "中国人寿":
  4954. case "恒邦财险":
  4955. case "太平财险":
  4956. case "华农财险":
  4957. case "安盛天平":
  4958. case "众安财险":
  4959. res.data.map(ele => {
  4960. ele.quantity = 1;
  4961. return ele;
  4962. });
  4963. this[name + "InsuranceData"] = res.data
  4964. break;
  4965. }
  4966. this.nonVehicle(res.data, name)
  4967. }
  4968. else {
  4969. this.$message.error(res.msg)
  4970. }
  4971. });
  4972. // switch (ins) {
  4973. // case "永诚财险":
  4974. // this.accidentForm.agreementId = this.totalCompanyList[
  4975. // index
  4976. // ].agreement[0].id;
  4977. // this.$api.letter
  4978. // .ycgainAccidentList({
  4979. // companyCode: this.totalCompanyList[index].id,
  4980. // agreementId: this.totalCompanyList[index].agreement[0].id,
  4981. // seatNum: Number(this.carInfo.seatCount)
  4982. // })
  4983. // .then(res => {
  4984. // if (res.code == 200) {
  4985. // this.accidentDataList = res.data;
  4986. // } else {
  4987. // this.accidentDataList = [];
  4988. // }
  4989. // });
  4990. // break;
  4991. // case "国任财险":
  4992. // this.guoRenaccidentForm.agreementId = this.totalCompanyList[
  4993. // index
  4994. // ].agreement[0].id;
  4995. // this.$api.letter
  4996. // .syncNonAutoInsGuoren({
  4997. // goodsCode: "",
  4998. // agreementId: this.totalCompanyList[index].agreement[0].id
  4999. // })
  5000. // .then(res => {
  5001. // if (res.code == 200) {
  5002. // this.guoRenaccidentDataList = res.data;
  5003. // } else {
  5004. // this.guoRenaccidentDataList = [];
  5005. // }
  5006. // });
  5007. // break;
  5008. // case "紫金财险":
  5009. // this.$api.letter
  5010. // .zijinqueryVehicleProducts({
  5011. // agreementId: this.totalCompanyList[index].agreement[0].id,
  5012. // seatCount: Number(this.carInfo.seatCount)
  5013. // })
  5014. // .then(res => {
  5015. // if (res.code == 200) {
  5016. // let data = res.data;
  5017. // data.map(ele => {
  5018. // ele.quantity = 1;
  5019. // return ele;
  5020. // });
  5021. // this.ziJinInsuranceData = data;
  5022. // } else {
  5023. // this.$message.error(res.msg);
  5024. // }
  5025. // });
  5026. // break;
  5027. // case "安盛天平":
  5028. // this.$api.letter
  5029. // .pythongetDriving({
  5030. // agreementId: this.totalCompanyList[index].agreement[0].id
  5031. // })
  5032. // .then(res => {
  5033. // if (res.code == 200) {
  5034. // let data = res.data;
  5035. // data.map(ele => {
  5036. // ele.departmentProductList.map(val => {
  5037. // val.quantity = 1;
  5038. // });
  5039. // return ele;
  5040. // });
  5041. // this[name + "InsuranceData"] = data;
  5042. // } else {
  5043. // this.$message.error(res.msg);
  5044. // }
  5045. // });
  5046. // break;
  5047. // case "中国人寿":
  5048. // case "恒邦财险":
  5049. // case "太平财险":
  5050. // case "华农财险":
  5051. // case "众安财险":
  5052. // this.$api.letter
  5053. // .pythongetDriving({
  5054. // agreementId: this.totalCompanyList[index].agreement[0].id
  5055. // })
  5056. // .then(res => {
  5057. // if (res.code == 200) {
  5058. // let data = res.data;
  5059. // data.map(ele => {
  5060. // ele.quantity = 1;
  5061. // return ele;
  5062. // });
  5063. // this[name + "InsuranceData"] = data;
  5064. // } else {
  5065. // this.$message.error(res.msg);
  5066. // }
  5067. // });
  5068. // break;
  5069. // case "中煤财险":
  5070. // this.accidentFormZM.agreementId = this.totalCompanyList[
  5071. // index
  5072. // ].agreement[0].id;
  5073. // this.$api.letter
  5074. // .zmGetDrivingPro({
  5075. // agreementId: this.totalCompanyList[index].agreement[0].id,
  5076. // seatNum: this.carInfo.seatCount
  5077. // })
  5078. // .then(res => {
  5079. // if (res.code == 200) {
  5080. // let data = res.data;
  5081. // this[name + "InsuranceData"] = data;
  5082. // } else {
  5083. // this.$message.error(res.msg);
  5084. // }
  5085. // });
  5086. // break;
  5087. // case "大家财险":
  5088. // this.$api.letter
  5089. // .dajiagetDriving({
  5090. // agreementId: this.totalCompanyList[index].agreement[0].id
  5091. // })
  5092. // .then(res => {
  5093. // if (res.code == 200) {
  5094. // this.dajiaInsuranceData = res.data;
  5095. // } else {
  5096. // this.$message.error(res.msg);
  5097. // }
  5098. // });
  5099. // break;
  5100. // default:
  5101. // break;
  5102. // }
  5103. } else {
  5104. }
  5105. },
  5106. clearAccidentForm() {
  5107. this.yongchengInsuranceDataTable = []
  5108. this.accidentForm = {};
  5109. this.accidentForm.fen = 1;
  5110. this.accidentForm.premium = 0;
  5111. },
  5112. clearAccidentFormGr() {
  5113. (this.guoRenInsuranceDataTable = []),
  5114. (this.guoRenaccidentDataListChild = []);
  5115. this.guoRenaccidentForm = {
  5116. quantity: "1",
  5117. premium: 0
  5118. };
  5119. },
  5120. clearAccidentFormBh() {
  5121. this.bohaiInsuranceDataTable = [];
  5122. this.boHaiaccidentForm = {
  5123. copies: "1",
  5124. premium: 0
  5125. };
  5126. // this.bohaiaccidentalDrivingVo={};
  5127. },
  5128. clearAccidentFormHN() {
  5129. this.huanongaccidentalDrivingVo = {};
  5130. },
  5131. clearAccidentFormHB() {
  5132. this.hengbangaccidentalDrivingVo = {};
  5133. },
  5134. clearAccidentFormTP() {
  5135. this.taipingaccidentalDrivingVo = {};
  5136. },
  5137. clearAccidentFormDJ() {
  5138. this.dajiaaccidentalDrivingVo = {};
  5139. },
  5140. clearAccidentFormZM() {
  5141. this.zhongmeiaccidentalDrivingVo = {};
  5142. },
  5143. clearAccidentFormZJ() {
  5144. this.accidentalDrivingVo = [];
  5145. },
  5146. clearAccidentFormZA() {
  5147. this.zhonganaccidentalDrivingVo = {};
  5148. },
  5149. clearAccidentFormRS() {
  5150. this.renshouaccidentalDrivingVo = {};
  5151. },
  5152. clearAccidentFormAS() {
  5153. this.anshengaccidentalDrivingVo = {};
  5154. },
  5155. //身份证有效期长期
  5156. insureLongterm(e) {
  5157. this[e].identifyValidEndDate = "9999-12-31";
  5158. },
  5159. //较强起保日期事件
  5160. jqChange(e) {
  5161. this.jqendDate = this.oneYearPast1(e);
  5162. },
  5163. //商业起保日期事件
  5164. syChange(e) {
  5165. this.syendDate = this.oneYearPast1(e);
  5166. },
  5167. // //查看更多
  5168. // selectMore(leg) {
  5169. // this.insureMore = false;
  5170. // this.insureLength = leg;
  5171. // },
  5172. // //收起
  5173. // packup() {
  5174. // this.insureMore = true;
  5175. // this.insureLength = 5;
  5176. // },
  5177. //险别选择框事件
  5178. insureitemChange(e) {
  5179. this.protocolJudge('A', e)
  5180. if (e != 0) {
  5181. this.sychecked = true;
  5182. this.systartDate = this.transformTime1();
  5183. this.syendDate = this.oneYearPast1(this.systartDate);
  5184. }
  5185. },
  5186. all() {
  5187. this.$refs.detailsDialog.setBackupVisible(true);
  5188. },
  5189. base64ToBlob(code) {
  5190. code = code.replace(/[\n\r]/g, "");
  5191. // atob() 方法用于解码使用 base-64 编码的字符串。
  5192. const raw = window.atob(code);
  5193. const rawLength = raw.length;
  5194. const uInt8Array = new Uint8Array(rawLength);
  5195. for (let i = 0; i < rawLength; ++i) {
  5196. uInt8Array[i] = raw.charCodeAt(i);
  5197. }
  5198. return new Blob([uInt8Array], { type: "application/pdf" });
  5199. },
  5200. viewPdf(content) {
  5201. if (!content) {
  5202. this.$message.error("暂无文件");
  5203. return;
  5204. }
  5205. const blob = this.base64ToBlob(content);
  5206. this.href = blob;
  5207. if (window.navigator && window.navigator.msSaveOrOpenBlob) {
  5208. window.navigator.msSaveOrOpenBlob(blob);
  5209. } else {
  5210. const fileURL = URL.createObjectURL(blob);
  5211. window.open(fileURL);
  5212. }
  5213. },
  5214. creatQrCode(text) {
  5215. if (this.qrcode) {
  5216. this.qrcode.clear();
  5217. this.qrcode.makeCode(text);
  5218. } else {
  5219. this.qrcode = new QRCode("qrcode", {
  5220. text: text,
  5221. width: this.qrcodeWidth,
  5222. height: this.qrcodeHeight,
  5223. colorDark: "#000000",
  5224. colorLight: "#ffffff",
  5225. correctLevel: QRCode.CorrectLevel.H
  5226. });
  5227. }
  5228. },
  5229. //人工核保
  5230. underwriting(id) {
  5231. let param = {
  5232. companyId: id
  5233. };
  5234. this.$api.letter.manualUnderwriting(param).then(res => {
  5235. if (res.code == "200") {
  5236. this.Payment(id);
  5237. }
  5238. });
  5239. },
  5240. jqcheckedChange(e) {
  5241. this.protocolJudge('0507', e)
  5242. if (e) {
  5243. this.jqstartDate = this.transformTime1();
  5244. this.jqendDate = this.oneYearPast1(this.jqstartDate);
  5245. } else {
  5246. this.jqstartDate = "";
  5247. this.jqendDate = "";
  5248. }
  5249. },
  5250. sycheckedChange(e) {
  5251. this.protocolJudge('0510', e)
  5252. if (e) {
  5253. this.systartDate = this.transformTime1();
  5254. this.syendDate = this.oneYearPast1(this.systartDate);
  5255. } else {
  5256. this.systartDate = "";
  5257. this.syendDate = "";
  5258. }
  5259. },
  5260. // 保存
  5261. preserveQuote(){
  5262. let starttime = new Date(this.carInfo.registerDate);
  5263. let endtime = new Date(this.carInfo.issueDate);
  5264. if (endtime < starttime) {
  5265. this.$message({ message: "发证日期早于初登日期", type: "error" });
  5266. return;
  5267. }
  5268. this.$refs["carInfo"].validate(valid => {
  5269. if (valid) {
  5270. var _this = this;
  5271. _this.$refs["ownerInfo"].validate(valid1 => {
  5272. if (valid1) {
  5273. // _this.$refs["policyNumberForm"].validate(valid2 => {
  5274. // if (valid2) {
  5275. if (_this.tbczcarShow == true) {
  5276. _this.policyHolderInfo = JSON.parse(
  5277. JSON.stringify(_this.ownerInfo)
  5278. );
  5279. }
  5280. if (_this.bbczcarShow == true) {
  5281. _this.insuredPersonInfo = JSON.parse(
  5282. JSON.stringify(_this.ownerInfo)
  5283. );
  5284. }
  5285. if (_this.bbtbcarShow == true) {
  5286. _this.insuredPersonInfo = JSON.parse(
  5287. JSON.stringify(_this.policyHolderInfo)
  5288. );
  5289. }
  5290. _this.carInfo.vinNo = _this.carInfo.frameNo;
  5291. _this.riskList = []; //险种大类
  5292. _this.kindList = []; //商业险险别
  5293. if (
  5294. (!_this.jqstartDate || !_this.jqendDate) &&
  5295. (!_this.systartDate || !_this.syendDate)
  5296. ) {
  5297. this.$message({ message: "投保日期不能为空", type: "warning" });
  5298. } else {
  5299. this.calculateLoading = true;
  5300. setInterval(() => {
  5301. this.calculateLoading = false;
  5302. }, 3000);
  5303. if (_this.jqchecked) {
  5304. //交强
  5305. _this.jqstartDate = this.transformTime(_this.jqstartDate);
  5306. _this.jqendDate = this.transformTime(_this.jqendDate);
  5307. _this.riskList.push({
  5308. amount: "200000",
  5309. premium: "0",
  5310. riskCode: "0507",
  5311. endDate: _this.jqendDate,
  5312. startDate: _this.jqstartDate,
  5313. instantFlag: "0"
  5314. });
  5315. }
  5316. if (_this.sychecked) {
  5317. _this.systartDate = this.transformTime(_this.systartDate);
  5318. _this.syendDate = this.transformTime(_this.syendDate);
  5319. //商业
  5320. _this.riskList.push({
  5321. premium: "0",
  5322. riskCode: "0510",
  5323. quotePreceptCode: "",
  5324. quotePreceptName: "",
  5325. endDate: _this.syendDate,
  5326. startDate: _this.systartDate,
  5327. instantFlag: "0"
  5328. });
  5329. _this.insureList.map((ele, index) => {
  5330. if (
  5331. ele.amount != "0" &&
  5332. (ele.kindCode == "D4" || ele.kindCode == "SY_FJ_YBW2")
  5333. ) {
  5334. _this.kindList.push({
  5335. unitAmount: _this.insureList[index].amount,
  5336. kindCode: _this.insureList[index].kindCode,
  5337. kindName: _this.insureList[index].kindName
  5338. });
  5339. } else if (
  5340. ele.amount != "0" &&
  5341. (ele.kindCode == "MJ1" ||
  5342. ele.kindCode == "MJ2" ||
  5343. ele.kindCode == "MJ3" ||
  5344. ele.kindCode == "MJ4")
  5345. ) {
  5346. _this.kindList.push({
  5347. deductibleRate: _this.insureList[index].amount,
  5348. kindCode: _this.insureList[index].kindCode,
  5349. kindName: _this.insureList[index].kindName
  5350. });
  5351. } else if (
  5352. ele.amount != "0" &&
  5353. (ele.kindCode == "TY1" ||
  5354. ele.kindCode == "TY2" ||
  5355. ele.kindCode == "TY3" ||
  5356. ele.kindCode == "TY4")
  5357. ) {
  5358. _this.kindList.push({
  5359. serviceTimes: _this.insureList[index].amount,
  5360. kindCode: _this.insureList[index].kindCode,
  5361. kindName: _this.insureList[index].kindName
  5362. });
  5363. } else if (ele.amount != "0") {
  5364. _this.kindList.push({
  5365. amount: _this.insureList[index].amount,
  5366. kindCode: _this.insureList[index].kindCode,
  5367. kindName: _this.insureList[index].kindName
  5368. });
  5369. }
  5370. return ele;
  5371. });
  5372. } else {
  5373. _this.kindList = [];
  5374. }
  5375. this.preserveOrderStageProcessing();
  5376. }
  5377. // }
  5378. // else {
  5379. // document.getElementById("Waibu").scrollIntoView();
  5380. // _this.$message({ message: "请检查外部订单信息", type: "warning" });
  5381. // }
  5382. // })
  5383. } else {
  5384. document.getElementById("CheZhu").scrollIntoView();
  5385. _this.$message({ message: "请检查人员信息", type: "warning" });
  5386. }
  5387. });
  5388. } else {
  5389. document.getElementById("Car").scrollIntoView();
  5390. this.$message({ message: "请检查车辆信息", type: "warning" });
  5391. return false;
  5392. }
  5393. });
  5394. },
  5395. //订单生成后保存接口
  5396. preserveOrderStageProcessing() {
  5397. this.preserveQuoteLoading=true
  5398. if (this.tbczcarShow && this.imageList2.length > 0) {
  5399. //投保人同车主
  5400. this.imageList3 = JSON.parse(JSON.stringify(this.imageList2));
  5401. if (this.imageList3.length == 1) {
  5402. this.imageList3[0].imageType = this.imageList3[0].imageType.includes('C0') ? "C03" : 'D03'
  5403. }
  5404. else {
  5405. this.imageList3.forEach(e => {
  5406. e.imageType = e.imageType.includes('C0') ? "C03" : 'D03'
  5407. })
  5408. }
  5409. }
  5410. if (this.bbczcarShow && this.imageList2.length > 0) {
  5411. //被保人同车主
  5412. this.imageList4 = JSON.parse(JSON.stringify(this.imageList2));
  5413. if (this.imageList4.length == 1) {
  5414. this.imageList4[0].imageType = this.imageList4[0].imageType.includes('C0') ? "C04" : 'D04'
  5415. }
  5416. else {
  5417. this.imageList4.forEach(e => {
  5418. e.imageType = e.imageType.includes('C0') ? "C04" : 'D04'
  5419. })
  5420. }
  5421. }
  5422. if (this.bbtbcarShow && this.imageList3.length > 0) {
  5423. //被保人同投保人
  5424. this.imageList4 = JSON.parse(JSON.stringify(this.imageList3));
  5425. if (this.imageList4.length == 1) {
  5426. this.imageList4[0].imageType = this.imageList4[0].imageType.includes('C0') ? "C04" : 'D04'
  5427. }
  5428. else {
  5429. this.imageList4.forEach(e => {
  5430. e.imageType = e.imageType.includes('C0') ? "C04" : 'D04'
  5431. })
  5432. }
  5433. }
  5434. //日期长度<10处理
  5435. const formatDate = date => {
  5436. if (date.length < 10) {
  5437. return this.timeformat(date);
  5438. }
  5439. return date;
  5440. };
  5441. if (this.carInfo.registerDate.length < 10) {
  5442. this.carInfo.registerDate = formatDate(this.carInfo.registerDate);
  5443. }
  5444. if (this.carInfo.issueDate.length < 10) {
  5445. this.carInfo.issueDate = formatDate(this.carInfo.issueDate);
  5446. }
  5447. if (
  5448. this.carInfo.transferDate &&
  5449. this.carInfo.transferDate.length < 10 &&
  5450. this.carInfo.transferDate !== ""
  5451. ) {
  5452. this.carInfo.transferDate = formatDate(this.carInfo.transferDate);
  5453. }
  5454. //日期长度<10处理
  5455. //提交身份证/驾驶证 ——————————————————
  5456. this.policyHolderInfo.owner = this.tbczcarShow;
  5457. this.insuredPersonInfo.owner = this.bbczcarShow;
  5458. this.insuredPersonInfo.insuranceHolder = this.bbtbcarShow;
  5459. if (typeof this.ownerInfo.provinceData == "string") {
  5460. this.ownerInfo.provinceData = [];
  5461. }
  5462. if (typeof this.insuredPersonInfo.provinceData == "string") {
  5463. this.insuredPersonInfo.provinceData = [];
  5464. }
  5465. if (typeof this.policyHolderInfo.provinceData == "string") {
  5466. this.policyHolderInfo.provinceData = [];
  5467. }
  5468. let param = {
  5469. userId: this.userId,
  5470. quoteno: this.quoteno,
  5471. orderNo: this.orderno,
  5472. carInfo: this.carInfo,
  5473. insuredPersonInfo: this.insuredPersonInfo,
  5474. ownerInfo: this.ownerInfo,
  5475. policyHolderInfo: this.policyHolderInfo,
  5476. kindList: this.kindList,
  5477. riskList: this.riskList,
  5478. isExternal:'1',
  5479. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  5480. };
  5481. this.$api.letter.generateOrder(param).then(res => {
  5482. if (res.code == "200") {
  5483. //上传图片
  5484. const mergedArray = [
  5485. ...this.imageList1,
  5486. ...this.imageList2,
  5487. ...this.imageList3,
  5488. ...this.imageList4,
  5489. ...this.imageList5
  5490. ];
  5491. if (mergedArray.length > 0) {
  5492. let imageparam = {
  5493. imageList: mergedArray,
  5494. quoteNo: res.data.quoteno
  5495. };
  5496. this.$api.letter.uploadImages(imageparam).then(responses => {
  5497. this.imageEcho(res.data.quoteno); // 获取图片
  5498. });
  5499. }
  5500. let params = {
  5501. orderNo: res.data.orderno,
  5502. ...this.policyNumberForm,
  5503. agreementId: this.isLetter3agreementId
  5504. };
  5505. this.$api.letter.saveSubOrder(params).then(res => {
  5506. if(res.code == "200"){
  5507. this.preserveQuoteLoading=false
  5508. this.$message({
  5509. message: res.msg,
  5510. type: 'success'
  5511. });
  5512. }else {
  5513. this.preserveQuoteLoading=false
  5514. this.$message.error( res.msg);
  5515. }
  5516. })
  5517. } else {
  5518. this.preserveQuoteLoading=false
  5519. this.$message.error( res.msg);
  5520. }
  5521. });
  5522. document.getElementById("company").scrollIntoView();
  5523. this.imageUploadShow = true;
  5524. },
  5525. //报价
  5526. quote() {
  5527. let starttime = new Date(this.carInfo.registerDate);
  5528. let endtime = new Date(this.carInfo.issueDate);
  5529. if (endtime < starttime) {
  5530. this.$message({ message: "发证日期早于初登日期", type: "error" });
  5531. return;
  5532. }
  5533. this.$refs["carInfo"].validate(valid => {
  5534. if (valid) {
  5535. var _this = this;
  5536. _this.$refs["ownerInfo"].validate(valid1 => {
  5537. if (valid1) {
  5538. if (_this.tbczcarShow == true) {
  5539. _this.policyHolderInfo = JSON.parse(
  5540. JSON.stringify(_this.ownerInfo)
  5541. );
  5542. }
  5543. if (_this.bbczcarShow == true) {
  5544. _this.insuredPersonInfo = JSON.parse(
  5545. JSON.stringify(_this.ownerInfo)
  5546. );
  5547. }
  5548. if (_this.bbtbcarShow == true) {
  5549. _this.insuredPersonInfo = JSON.parse(
  5550. JSON.stringify(_this.policyHolderInfo)
  5551. );
  5552. }
  5553. _this.carInfo.vinNo = _this.carInfo.frameNo;
  5554. _this.riskList = []; //险种大类
  5555. _this.kindList = []; //商业险险别
  5556. if (
  5557. (!_this.jqstartDate || !_this.jqendDate) &&
  5558. (!_this.systartDate || !_this.syendDate)
  5559. ) {
  5560. this.$message({ message: "投保日期不能为空", type: "warning" });
  5561. } else {
  5562. this.calculateLoading = true;
  5563. setInterval(() => {
  5564. this.calculateLoading = false;
  5565. }, 3000);
  5566. if (_this.jqchecked) {
  5567. //交强
  5568. _this.jqstartDate = this.transformTime(_this.jqstartDate);
  5569. _this.jqendDate = this.transformTime(_this.jqendDate);
  5570. _this.riskList.push({
  5571. amount: "200000",
  5572. premium: "0",
  5573. riskCode: "0507",
  5574. endDate: _this.jqendDate,
  5575. startDate: _this.jqstartDate,
  5576. instantFlag: "0"
  5577. });
  5578. }
  5579. if (_this.sychecked) {
  5580. _this.systartDate = this.transformTime(_this.systartDate);
  5581. _this.syendDate = this.transformTime(_this.syendDate);
  5582. //商业
  5583. _this.riskList.push({
  5584. premium: "0",
  5585. riskCode: "0510",
  5586. quotePreceptCode: "",
  5587. quotePreceptName: "",
  5588. endDate: _this.syendDate,
  5589. startDate: _this.systartDate,
  5590. instantFlag: "0"
  5591. });
  5592. _this.insureList.map((ele, index) => {
  5593. if (
  5594. ele.amount != "0" &&
  5595. (ele.kindCode == "D4" || ele.kindCode == "SY_FJ_YBW2")
  5596. ) {
  5597. _this.kindList.push({
  5598. unitAmount: _this.insureList[index].amount,
  5599. kindCode: _this.insureList[index].kindCode,
  5600. kindName: _this.insureList[index].kindName
  5601. });
  5602. } else if (
  5603. ele.amount != "0" &&
  5604. (ele.kindCode == "MJ1" ||
  5605. ele.kindCode == "MJ2" ||
  5606. ele.kindCode == "MJ3" ||
  5607. ele.kindCode == "MJ4")
  5608. ) {
  5609. _this.kindList.push({
  5610. deductibleRate: _this.insureList[index].amount,
  5611. kindCode: _this.insureList[index].kindCode,
  5612. kindName: _this.insureList[index].kindName
  5613. });
  5614. } else if (
  5615. ele.amount != "0" &&
  5616. (ele.kindCode == "TY1" ||
  5617. ele.kindCode == "TY2" ||
  5618. ele.kindCode == "TY3" ||
  5619. ele.kindCode == "TY4")
  5620. ) {
  5621. _this.kindList.push({
  5622. serviceTimes: _this.insureList[index].amount,
  5623. kindCode: _this.insureList[index].kindCode,
  5624. kindName: _this.insureList[index].kindName
  5625. });
  5626. } else if (ele.amount != "0") {
  5627. _this.kindList.push({
  5628. amount: _this.insureList[index].amount,
  5629. kindCode: _this.insureList[index].kindCode,
  5630. kindName: _this.insureList[index].kindName
  5631. });
  5632. }
  5633. return ele;
  5634. });
  5635. } else {
  5636. _this.kindList = [];
  5637. }
  5638. // if (_this.orderno) {
  5639. this.OrderStageProcessing();
  5640. // } else {
  5641. // _this.$api.letter.getquote().then(res => {
  5642. // _this.quoteno = res.data; //获取报价号
  5643. // this.OrderStageProcessing();
  5644. // });
  5645. // }
  5646. }
  5647. } else {
  5648. document.getElementById("CheZhu").scrollIntoView();
  5649. _this.$message({ message: "请检查人员信息", type: "warning" });
  5650. }
  5651. });
  5652. } else {
  5653. document.getElementById("Car").scrollIntoView();
  5654. this.$message({ message: "请检查车辆信息", type: "warning" });
  5655. return false;
  5656. }
  5657. });
  5658. },
  5659. kindListFun() {
  5660. var _this = this;
  5661. _this.riskList = []; //险种大类
  5662. _this.kindList = []; //商业险险别
  5663. if (
  5664. (!_this.jqstartDate || !_this.jqendDate) &&
  5665. (!_this.systartDate || !_this.syendDate)
  5666. ) {
  5667. this.$message({ message: "投保日期不能为空", type: "warning" });
  5668. } else {
  5669. if (_this.jqchecked) {
  5670. //交强
  5671. _this.jqstartDate = this.transformTime(_this.jqstartDate);
  5672. _this.jqendDate = this.transformTime(_this.jqendDate);
  5673. _this.riskList.push({
  5674. amount: "200000",
  5675. premium: "0",
  5676. riskCode: "0507",
  5677. endDate: _this.jqendDate,
  5678. startDate: _this.jqstartDate,
  5679. instantFlag: "0"
  5680. });
  5681. }
  5682. if (_this.sychecked) {
  5683. _this.systartDate = this.transformTime(_this.systartDate);
  5684. _this.syendDate = this.transformTime(_this.syendDate);
  5685. //商业
  5686. _this.riskList.push({
  5687. premium: "0",
  5688. riskCode: "0510",
  5689. quotePreceptCode: "",
  5690. quotePreceptName: "",
  5691. endDate: _this.syendDate,
  5692. startDate: _this.systartDate,
  5693. instantFlag: "0"
  5694. });
  5695. _this.insureList.map((ele, index) => {
  5696. if (
  5697. ele.amount != "0" &&
  5698. (ele.kindCode == "D4" || ele.kindCode == "SY_FJ_YBW2")
  5699. ) {
  5700. _this.kindList.push({
  5701. unitAmount: _this.insureList[index].amount,
  5702. kindCode: _this.insureList[index].kindCode,
  5703. kindName: _this.insureList[index].kindName
  5704. });
  5705. } else if (
  5706. ele.amount != "0" &&
  5707. (ele.kindCode == "MJ1" ||
  5708. ele.kindCode == "MJ2" ||
  5709. ele.kindCode == "MJ3" ||
  5710. ele.kindCode == "MJ4")
  5711. ) {
  5712. _this.kindList.push({
  5713. deductibleRate: _this.insureList[index].amount,
  5714. kindCode: _this.insureList[index].kindCode,
  5715. kindName: _this.insureList[index].kindName
  5716. });
  5717. } else if (
  5718. ele.amount != "0" &&
  5719. (ele.kindCode == "TY1" ||
  5720. ele.kindCode == "TY2" ||
  5721. ele.kindCode == "TY3" ||
  5722. ele.kindCode == "TY4")
  5723. ) {
  5724. _this.kindList.push({
  5725. serviceTimes: _this.insureList[index].amount,
  5726. kindCode: _this.insureList[index].kindCode,
  5727. kindName: _this.insureList[index].kindName
  5728. });
  5729. } else if (ele.amount != "0") {
  5730. _this.kindList.push({
  5731. amount: _this.insureList[index].amount,
  5732. kindCode: _this.insureList[index].kindCode,
  5733. kindName: _this.insureList[index].kindName
  5734. });
  5735. }
  5736. return ele;
  5737. });
  5738. } else {
  5739. _this.kindList = [];
  5740. }
  5741. }
  5742. },
  5743. //动态函数
  5744. ToolClickFun(MethodName, Parameter, companyId, companyName) {
  5745. this[`${MethodName}`](Parameter, companyId, companyName);
  5746. },
  5747. //更新报价历史
  5748. QuotationHistory() {
  5749. let params = {
  5750. orderNo: this.orderno,
  5751. orderStatus: ""
  5752. };
  5753. this.$api.letter.queryQuoteHistory(params).then(res => {
  5754. res.data.forEach(item => {
  5755. if (item.accidentInfo) {
  5756. item.accidentInfo.constructor === Object
  5757. ? [item.accidentInfo]
  5758. : item.accidentInfo;
  5759. }
  5760. });
  5761. this.HistoryList = res.data;
  5762. });
  5763. },
  5764. open2(Name, Msg) {
  5765. this.$notify.info({
  5766. title: Name,
  5767. dangerouslyUseHTMLString: true,
  5768. type: "warning",
  5769. message: Msg,
  5770. customClass: "customNotifyClass",
  5771. duration: 7000
  5772. });
  5773. },
  5774. open3(Name, Msg) {
  5775. this.$notify.info({
  5776. title: Name,
  5777. dangerouslyUseHTMLString: true,
  5778. type: "warning",
  5779. message: `<p>${Msg.replace(/\n/g, '<br>')}</p>`,
  5780. customClass: "customNotifyClass",
  5781. duration: 7000
  5782. });
  5783. },
  5784. openPredictInfo(Name, Msg) {
  5785. this.redictInfoMsg = Msg;
  5786. this.redictInfodialogVisible = true;
  5787. },
  5788. //订单生成前数据处理事件
  5789. OrderStageProcessing() {
  5790. if (this.tbczcarShow && this.imageList2.length > 0) {
  5791. //投保人同车主
  5792. this.imageList3 = JSON.parse(JSON.stringify(this.imageList2));
  5793. if (this.imageList3.length == 1) {
  5794. this.imageList3[0].imageType = this.imageList3[0].imageType.includes('C0') ? "C03" : 'D03'
  5795. }
  5796. else {
  5797. this.imageList3.forEach(e => {
  5798. e.imageType = e.imageType.includes('C0') ? "C03" : 'D03'
  5799. })
  5800. }
  5801. }
  5802. if (this.bbczcarShow && this.imageList2.length > 0) {
  5803. //被保人同车主
  5804. this.imageList4 = JSON.parse(JSON.stringify(this.imageList2));
  5805. if (this.imageList4.length == 1) {
  5806. this.imageList4[0].imageType = this.imageList4[0].imageType.includes('C0') ? "C04" : 'D04'
  5807. }
  5808. else {
  5809. this.imageList4.forEach(e => {
  5810. e.imageType = e.imageType.includes('C0') ? "C04" : 'D04'
  5811. })
  5812. }
  5813. // if (this.imageList4.length == 1) {
  5814. // this.imageList4[0].imageType = "C04";
  5815. // }
  5816. // else {
  5817. // this.imageList4[0].imageType = "C04";
  5818. // this.imageList4[1].imageType = "D04";
  5819. // }
  5820. }
  5821. if (this.bbtbcarShow && this.imageList3.length > 0) {
  5822. //被保人同投保人
  5823. this.imageList4 = JSON.parse(JSON.stringify(this.imageList3));
  5824. if (this.imageList4.length == 1) {
  5825. this.imageList4[0].imageType = this.imageList4[0].imageType.includes('C0') ? "C04" : 'D04'
  5826. }
  5827. else {
  5828. this.imageList4.forEach(e => {
  5829. e.imageType = e.imageType.includes('C0') ? "C04" : 'D04'
  5830. })
  5831. }
  5832. // if (this.imageList4.length == 1) {
  5833. // this.imageList4[0].imageType = "C04";
  5834. // } else {
  5835. // this.imageList4[0].imageType = "C04";
  5836. // this.imageList4[1].imageType = "D04";
  5837. // }
  5838. }
  5839. //日期长度<10处理
  5840. const formatDate = date => {
  5841. if (date.length < 10) {
  5842. return this.timeformat(date);
  5843. }
  5844. return date;
  5845. };
  5846. if (this.carInfo.registerDate.length < 10) {
  5847. this.carInfo.registerDate = formatDate(this.carInfo.registerDate);
  5848. }
  5849. if (this.carInfo.issueDate.length < 10) {
  5850. this.carInfo.issueDate = formatDate(this.carInfo.issueDate);
  5851. }
  5852. if (
  5853. this.carInfo.transferDate &&
  5854. this.carInfo.transferDate.length < 10 &&
  5855. this.carInfo.transferDate !== ""
  5856. ) {
  5857. this.carInfo.transferDate = formatDate(this.carInfo.transferDate);
  5858. }
  5859. //日期长度<10处理
  5860. //提交身份证/驾驶证 ——————————————————
  5861. this.policyHolderInfo.owner = this.tbczcarShow;
  5862. this.insuredPersonInfo.owner = this.bbczcarShow;
  5863. this.insuredPersonInfo.insuranceHolder = this.bbtbcarShow;
  5864. if (typeof this.ownerInfo.provinceData == "string") {
  5865. this.ownerInfo.provinceData = [];
  5866. }
  5867. if (typeof this.insuredPersonInfo.provinceData == "string") {
  5868. this.insuredPersonInfo.provinceData = [];
  5869. }
  5870. if (typeof this.policyHolderInfo.provinceData == "string") {
  5871. this.policyHolderInfo.provinceData = [];
  5872. }
  5873. let param = {
  5874. userId: this.userId,
  5875. quoteno: this.quoteno,
  5876. orderNo: this.orderno,
  5877. carInfo: this.carInfo,
  5878. insuredPersonInfo: this.insuredPersonInfo,
  5879. ownerInfo: this.ownerInfo,
  5880. policyHolderInfo: this.policyHolderInfo,
  5881. kindList: this.kindList,
  5882. riskList: this.riskList,
  5883. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  5884. };
  5885. this.$api.letter[this.apiInterfaceName](param).then(res => {
  5886. if (res.code == "200") {
  5887. //上传图片
  5888. const mergedArray = [
  5889. ...this.imageList1,
  5890. ...this.imageList2,
  5891. ...this.imageList3,
  5892. ...this.imageList4,
  5893. ...this.imageList5
  5894. ];
  5895. if (mergedArray.length > 0) {
  5896. let imageparam = {
  5897. imageList: mergedArray,
  5898. quoteNo: res.data.quoteno
  5899. };
  5900. this.$api.letter.uploadImages(imageparam).then(responses => {
  5901. this.imageEcho(res.data.quoteno); // 获取图片
  5902. });
  5903. }
  5904. this.quoteno = res.data.quoteno;
  5905. this.orderno = res.data.orderno;
  5906. this.totalCompanyList.map((ele, index) => {
  5907. if (ele.checked) {
  5908. //动态调用报价接口
  5909. ele.quoteCode = 1;
  5910. ele.orderstatus = 0;
  5911. this.ToolClickFun(ele.cnName, index, ele.id, ele.namesimple);
  5912. }
  5913. });
  5914. } else if (res.code == 1001) {
  5915. this.$confirm("是否生成新订单?", "提示", {
  5916. confirmButtonText: "确定",
  5917. cancelButtonText: "取消",
  5918. type: "warning"
  5919. })
  5920. .then(() => {
  5921. this.orderno = "";
  5922. this.quoteno = "";
  5923. this.quote();
  5924. })
  5925. .catch(() => { });
  5926. } else {
  5927. this.$message({ message: res.msg, type: "warning" });
  5928. }
  5929. });
  5930. document.getElementById("company").scrollIntoView();
  5931. this.imageUploadShow = true;
  5932. },
  5933. //永安报价
  5934. yongan(num, id) {
  5935. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  5936. let params = {
  5937. orderNo: this.orderno,
  5938. companyId: id,
  5939. agreementId: this.totalCompanyList[num].agreementId
  5940. };
  5941. this.$api.letter.yonganquote(params).then(res => {
  5942. this.totalCompanyList[num].msg = res.msg;
  5943. if (res.msg == "重复投保" && res.code == "501") {
  5944. if (!!res.data.jqStartDate && !res.data.syStartDate) {
  5945. this.jqstartDate = res.data.jqStartDate;
  5946. this.jqendDate = res.data.jqEndDate;
  5947. this.updateRiskDates(
  5948. "0507",
  5949. res.data.jqStartDate,
  5950. res.data.jqEndDate
  5951. );
  5952. let param = {
  5953. userId: this.userId,
  5954. quoteno: this.quoteno,
  5955. orderNo: this.orderno,
  5956. carInfo: this.carInfo,
  5957. insuredPersonInfo: this.insuredPersonInfo,
  5958. ownerInfo: this.ownerInfo,
  5959. policyHolderInfo: this.policyHolderInfo,
  5960. kindList: this.kindList,
  5961. riskList: this.riskList,
  5962. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  5963. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  5964. };
  5965. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  5966. this.yongan(num, id);
  5967. });
  5968. } else if (!!res.data.syStartDate && !res.data.jqStartDate) {
  5969. this.systartDate = res.data.syStartDate;
  5970. this.syendDate = res.data.syEndDate;
  5971. this.updateRiskDates(
  5972. "0510",
  5973. res.data.syStartDate,
  5974. res.data.syEndDate
  5975. );
  5976. let param = {
  5977. userId: this.userId,
  5978. quoteno: this.quoteno,
  5979. orderNo: this.orderno,
  5980. carInfo: this.carInfo,
  5981. insuredPersonInfo: this.insuredPersonInfo,
  5982. ownerInfo: this.ownerInfo,
  5983. policyHolderInfo: this.policyHolderInfo,
  5984. kindList: this.kindList,
  5985. riskList: this.riskList,
  5986. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  5987. };
  5988. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  5989. this.yongan(num, id);
  5990. });
  5991. } else if (!!res.data.syStartDate && !!res.data.jqStartDate) {
  5992. this.jqstartDate = res.data.jqStartDate;
  5993. this.jqendDate = res.data.jqEndDate;
  5994. this.systartDate = res.data.syStartDate;
  5995. this.syendDate = res.data.syEndDate;
  5996. this.updateRiskDates(
  5997. "0507",
  5998. res.data.jqStartDate,
  5999. res.data.jqEndDate
  6000. );
  6001. this.updateRiskDates(
  6002. "0510",
  6003. res.data.syStartDate,
  6004. res.data.syEndDate
  6005. );
  6006. let param = {
  6007. userId: this.userId,
  6008. quoteno: this.quoteno,
  6009. orderNo: this.orderno,
  6010. carInfo: this.carInfo,
  6011. insuredPersonInfo: this.insuredPersonInfo,
  6012. ownerInfo: this.ownerInfo,
  6013. policyHolderInfo: this.policyHolderInfo,
  6014. kindList: this.kindList,
  6015. riskList: this.riskList,
  6016. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  6017. };
  6018. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  6019. this.yongan(num, id);
  6020. });
  6021. } else {
  6022. this.totalCompanyList[num].quoteCode = "3";
  6023. this.totalCompanyList[num].msg = "重复投保";
  6024. }
  6025. } else if (
  6026. res.code == "500" ||
  6027. res.code == "502" ||
  6028. res.code == "-9999"
  6029. ) {
  6030. this.totalCompanyList[num].quoteCode = "-9999";
  6031. this.totalCompanyList[num].msg = res.msg;
  6032. } else {
  6033. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  6034. this.totalCompanyList[num].lastYearMsg = "";
  6035. let dat = res.data.warnMessageList;
  6036. dat.map(ele => {
  6037. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  6038. });
  6039. }
  6040. this.totalCompanyList[num].quoteCode = 200;
  6041. this.totalCompanyList[num].result = res.data;
  6042. this.QuotationHistory();
  6043. }
  6044. });
  6045. },
  6046. updateRiskDates(riskCode, startDate, endDate) {
  6047. for (let i = 0; i < this.riskList.length; i++) {
  6048. if (this.riskList[i].riskCode == riskCode) {
  6049. this.riskList[i].startDate = startDate;
  6050. this.riskList[i].endDate = endDate;
  6051. }
  6052. }
  6053. },
  6054. //中煤报价
  6055. zhongmei(num, id) {
  6056. let accidentalDrivingVo = {};
  6057. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  6058. // if (this.accidentFormZM.projectCode) {
  6059. // accidentalDrivingVo = {
  6060. // projectCode: this.accidentFormZM.projectCode,
  6061. // projectName: this.accidentFormZM.projectName,
  6062. // quantity: this.accidentFormZM.quantity
  6063. // ? this.accidentFormZM.quantity
  6064. // : "1"
  6065. // };
  6066. // }
  6067. if (this.accidentFormZM.projectCode) {
  6068. accidentalDrivingVo = {
  6069. ...this.zhongmeiInsuranceData.find(e => e.projectCode == this.accidentFormZM.projectCode),
  6070. quantity: this.accidentFormZM.quantity
  6071. ? this.accidentFormZM.quantity
  6072. : "1"
  6073. };
  6074. }
  6075. let params = {
  6076. accidentalDrivingVo,
  6077. orderNo: this.orderno,
  6078. companyId: id,
  6079. agreementId: this.totalCompanyList[num].agreementId,
  6080. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  6081. };
  6082. this.$api.letter.zhongmeiquote(params).then(res => {
  6083. this.totalCompanyList[num].msg = res.msg;
  6084. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  6085. this.totalCompanyList[num].quoteCode = "4";
  6086. this.totalCompanyList[num].msg = res.msg;
  6087. return;
  6088. } else if (
  6089. res.data == null &&
  6090. res.msg.indexOf("交强险平台返回") > -1 &&
  6091. res.msg.indexOf(";终保日期") > -1
  6092. ) {
  6093. this.totalCompanyList[num].lastYearMsg =
  6094. "<b>交强险</b><br>" +
  6095. res.msg.slice(
  6096. res.msg.indexOf("起保日期 "),
  6097. res.msg.indexOf("地区 山西。") + 6
  6098. );
  6099. let time =
  6100. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  6101. this.jqstartDate = time;
  6102. this.jqendDate = this.oneYearPast1(time);
  6103. if (this.riskList.length > 0) {
  6104. for (let i = 0; i < this.riskList.length; i++) {
  6105. if (this.riskList[i].riskCode == "0507") {
  6106. this.riskList[i].startDate = time;
  6107. this.riskList[i].endDate = this.oneYearPast1(time);
  6108. }
  6109. }
  6110. }
  6111. let param = {
  6112. userId: this.userId,
  6113. quoteno: this.quoteno,
  6114. orderNo: this.orderno,
  6115. carInfo: this.carInfo,
  6116. insuredPersonInfo: this.insuredPersonInfo,
  6117. ownerInfo: this.ownerInfo,
  6118. policyHolderInfo: this.policyHolderInfo,
  6119. kindList: this.kindList,
  6120. riskList: this.riskList,
  6121. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  6122. };
  6123. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  6124. this.zhongmei(num, id);
  6125. });
  6126. } else if (!!res.data) {
  6127. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  6128. this.totalCompanyList[num].lastYearMsg = "";
  6129. let dat = res.data.warnMessageList;
  6130. dat.map(ele => {
  6131. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  6132. });
  6133. }
  6134. this.totalCompanyList[num].quoteCode = 200;
  6135. this.totalCompanyList[num].result = res.data;
  6136. this.QuotationHistory();
  6137. } else {
  6138. this.totalCompanyList[num].quoteCode = "3";
  6139. this.totalCompanyList[num].msg = res.msg;
  6140. return;
  6141. }
  6142. });
  6143. },
  6144. // 大家报价
  6145. dajia(num, id) {
  6146. // let accidentalDrivingVo=[]
  6147. // if(this.dajiaaccidentalDrivingVo){
  6148. // accidentalDrivingVo.rideRiskCode=this.dajiaaccidentalDrivingVo.schemeNo;
  6149. // accidentalDrivingVo.rideRiskName=this.dajiaaccidentalDrivingVo.cvrgName;
  6150. // accidentalDrivingVo.quantity=this.dajiaaccidentalDrivingVo.quantity;
  6151. // }
  6152. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  6153. let params = {
  6154. accidentalDrivingVo: this.dajiaaccidentalDrivingVo,
  6155. orderNo: this.orderno,
  6156. companyId: id,
  6157. agreementId: this.totalCompanyList[num].agreementId,
  6158. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  6159. };
  6160. this.$api.letter.dajiaquote(params).then(res => {
  6161. this.totalCompanyList[num].msg = res.msg;
  6162. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  6163. this.totalCompanyList[num].quoteCode = "4";
  6164. this.totalCompanyList[num].msg = res.msg;
  6165. return;
  6166. } else if (
  6167. res.data == null &&
  6168. res.msg.indexOf("交强险平台返回") > -1 &&
  6169. res.msg.indexOf(";终保日期") > -1
  6170. ) {
  6171. this.totalCompanyList[num].lastYearMsg =
  6172. "<b>交强险</b><br>" +
  6173. res.msg.slice(
  6174. res.msg.indexOf("起保日期 "),
  6175. res.msg.indexOf("地区 山西。") + 6
  6176. );
  6177. let time =
  6178. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  6179. this.jqstartDate = time;
  6180. this.jqendDate = this.oneYearPast1(time);
  6181. if (this.riskList.length > 0) {
  6182. for (let i = 0; i < this.riskList.length; i++) {
  6183. if (this.riskList[i].riskCode == "0507") {
  6184. this.riskList[i].startDate = time;
  6185. this.riskList[i].endDate = this.oneYearPast1(time);
  6186. }
  6187. }
  6188. }
  6189. let param = {
  6190. userId: this.userId,
  6191. quoteno: this.quoteno,
  6192. orderNo: this.orderno,
  6193. carInfo: this.carInfo,
  6194. insuredPersonInfo: this.insuredPersonInfo,
  6195. ownerInfo: this.ownerInfo,
  6196. policyHolderInfo: this.policyHolderInfo,
  6197. kindList: this.kindList,
  6198. riskList: this.riskList,
  6199. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  6200. };
  6201. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  6202. this.dajia(num, id);
  6203. });
  6204. } else if (!!res.data) {
  6205. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  6206. this.totalCompanyList[num].lastYearMsg = "";
  6207. let dat = res.data.warnMessageList;
  6208. dat.map(ele => {
  6209. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  6210. });
  6211. }
  6212. this.totalCompanyList[num].quoteCode = 200;
  6213. this.totalCompanyList[num].result = res.data;
  6214. this.QuotationHistory();
  6215. } else {
  6216. this.totalCompanyList[num].quoteCode = "3";
  6217. this.totalCompanyList[num].msg = res.msg;
  6218. return;
  6219. }
  6220. });
  6221. },
  6222. //华泰报价
  6223. huatai(num, id) {
  6224. let type = this.totalCompanyList[num].apiType;
  6225. let api = type == 2 ? "pythonquote" : "huataiquote";
  6226. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  6227. let params = {
  6228. orderNo: this.orderno,
  6229. companyId: id,
  6230. agreementId: this.totalCompanyList[num].agreementId,
  6231. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  6232. };
  6233. this.$api.letter[api](params).then(res => {
  6234. this.totalCompanyList[num].msg = res.msg;
  6235. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  6236. this.totalCompanyList[num].quoteCode = "4";
  6237. this.totalCompanyList[num].msg = res.msg;
  6238. return;
  6239. } else if (
  6240. res.data == null &&
  6241. res.msg.indexOf("交强险平台返回") > -1 &&
  6242. res.msg.indexOf(";终保日期") > -1
  6243. ) {
  6244. //判断保司返回重复投保信息,进行默认赋值起终保日期,重新算费 后面联调需要调整
  6245. let time =
  6246. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  6247. this.jqstartDate = time;
  6248. this.jqendDate = this.oneYearPast1(time);
  6249. this.systartDate = time;
  6250. this.syendDate = this.oneYearPast1(time);
  6251. if (this.riskList.length > 0) {
  6252. for (let i = 0; i < this.riskList.length; i++) {
  6253. if (this.riskList[i].riskCode == "0507") {
  6254. this.riskList[i].startDate = time;
  6255. this.riskList[i].endDate = this.oneYearPast1(time);
  6256. } else if (this.riskList[i].riskCode == "0510") {
  6257. this.riskList[i].startDate = time;
  6258. this.riskList[i].endDate = this.oneYearPast1(time);
  6259. }
  6260. }
  6261. }
  6262. let param = {
  6263. userId: this.userId,
  6264. quoteno: this.quoteno,
  6265. orderNo: this.orderno,
  6266. carInfo: this.carInfo,
  6267. insuredPersonInfo: this.insuredPersonInfo,
  6268. ownerInfo: this.ownerInfo,
  6269. policyHolderInfo: this.policyHolderInfo,
  6270. kindList: this.kindList,
  6271. riskList: this.riskList,
  6272. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  6273. };
  6274. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  6275. this.huatai(num, id);
  6276. });
  6277. } else if (!!res.data) {
  6278. this.totalCompanyList[num].quoteCode = 200;
  6279. this.totalCompanyList[num].result = res.data;
  6280. this.QuotationHistory();
  6281. } else {
  6282. this.totalCompanyList[num].quoteCode = "3";
  6283. this.totalCompanyList[num].msg = res.msg;
  6284. return;
  6285. }
  6286. });
  6287. },
  6288. //紫金报价
  6289. zijin(num, id) {
  6290. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  6291. let params = {
  6292. accidentalDrivingVo: this.accidentalDrivingVo,
  6293. orderNo: this.orderno,
  6294. companyId: id,
  6295. agreementId: this.totalCompanyList[num].agreementId,
  6296. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  6297. coefficient: this.totalCompanyList[num].coefficient
  6298. };
  6299. this.$api.letter.zijinquote(params).then(res => {
  6300. this.totalCompanyList[num].msg = res.msg;
  6301. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  6302. this.totalCompanyList[num].quoteCode = "4";
  6303. this.totalCompanyList[num].msg = res.msg;
  6304. return;
  6305. } else if (
  6306. res.data == null &&
  6307. res.msg.indexOf("交强险平台返回") > -1 &&
  6308. res.msg.indexOf(";终保日期") > -1
  6309. ) {
  6310. let time =
  6311. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  6312. this.jqstartDate = time;
  6313. this.jqendDate = this.oneYearPast1(time);
  6314. this.systartDate = time;
  6315. this.syendDate = this.oneYearPast1(time);
  6316. if (this.riskList.length > 0) {
  6317. for (let i = 0; i < this.riskList.length; i++) {
  6318. if (this.riskList[i].riskCode == "0507") {
  6319. this.riskList[i].startDate = time;
  6320. this.riskList[i].endDate = this.oneYearPast1(time);
  6321. } else if (this.riskList[i].riskCode == "0510") {
  6322. this.riskList[i].startDate = time;
  6323. this.riskList[i].endDate = this.oneYearPast1(time);
  6324. }
  6325. }
  6326. }
  6327. let param = {
  6328. userId: this.userId,
  6329. quoteno: this.quoteno,
  6330. orderNo: this.orderno,
  6331. carInfo: this.carInfo,
  6332. insuredPersonInfo: this.insuredPersonInfo,
  6333. ownerInfo: this.ownerInfo,
  6334. policyHolderInfo: this.policyHolderInfo,
  6335. kindList: this.kindList,
  6336. riskList: this.riskList,
  6337. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  6338. };
  6339. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  6340. this.zijin(num, id);
  6341. });
  6342. } else if (!!res.data) {
  6343. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  6344. this.totalCompanyList[num].lastYearMsg = "";
  6345. let dat = res.data.warnMessageList;
  6346. dat.map(ele => {
  6347. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  6348. });
  6349. }
  6350. this.totalCompanyList[num].quoteCode = 200;
  6351. this.totalCompanyList[num].result = res.data;
  6352. this.QuotationHistory();
  6353. } else {
  6354. this.totalCompanyList[num].quoteCode = "3";
  6355. this.totalCompanyList[num].msg = res.msg;
  6356. return;
  6357. }
  6358. });
  6359. },
  6360. //永诚报价
  6361. yongcheng(num, id) {
  6362. this.iscCrownerShow = false;
  6363. this.isInsuredShow = false;
  6364. this.isApplicantShow = false;
  6365. let accidentalDrivingVo = {};
  6366. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  6367. if (this.accidentForm.projectCode) {
  6368. let data = this.yongchengaccidentDataList.find(
  6369. val => val.projectCode == this.yongchengtemplateSelection
  6370. );
  6371. accidentalDrivingVo = {
  6372. ...data,
  6373. quantity: this.accidentForm.quantity ? this.accidentForm.quantity : ""
  6374. };
  6375. }
  6376. let params = {
  6377. accidentalDrivingVo,
  6378. orderNo: this.orderno,
  6379. companyId: id,
  6380. cqryCdeJq: this.cqryCdeJq,
  6381. cqryCdeSy: this.cqryCdeSy,
  6382. renewalCodeJq: this.renewalCodeJq,
  6383. renewalCodeSy: this.renewalCodeSy,
  6384. agreementId: this.totalCompanyList[num].agreementId,
  6385. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  6386. };
  6387. this.$api.letter.yongchengquote(params).then(res => {
  6388. this.totalCompanyList[num].msg = res.msg;
  6389. if (
  6390. res.data == null &&
  6391. res.msg.indexOf("车险平台返回") > -1 &&
  6392. res.msg.indexOf(";终保日期") > -1
  6393. ) {
  6394. let time =
  6395. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  6396. this.jqstartDate = time;
  6397. this.jqendDate = this.oneYearPast1(time);
  6398. if (this.riskList.length > 0) {
  6399. for (let i = 0; i < this.riskList.length; i++) {
  6400. if (this.riskList[i].riskCode == "0507") {
  6401. this.riskList[i].startDate = time;
  6402. this.riskList[i].endDate = this.oneYearPast1(time);
  6403. }
  6404. }
  6405. }
  6406. let param = {
  6407. userId: this.userId,
  6408. quoteno: this.quoteno,
  6409. orderNo: this.orderno,
  6410. carInfo: this.carInfo,
  6411. insuredPersonInfo: this.insuredPersonInfo,
  6412. ownerInfo: this.ownerInfo,
  6413. policyHolderInfo: this.policyHolderInfo,
  6414. kindList: this.kindList,
  6415. riskList: this.riskList,
  6416. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  6417. };
  6418. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  6419. this.yongcheng(num, id);
  6420. });
  6421. } else if (res.code == "200") {
  6422. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  6423. this.totalCompanyList[num].lastYearMsg = "";
  6424. let dat = res.data.warnMessageList;
  6425. dat.map(ele => {
  6426. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  6427. });
  6428. }
  6429. this.totalCompanyList[num].quoteCode = 200;
  6430. this.totalCompanyList[num].result = res.data;
  6431. this.QuotationHistory();
  6432. } else if (res.code == "101") {
  6433. this.totalCompanyList[num].quoteCode = "101";
  6434. this.totalCompanyList[num].msg = res.msg;
  6435. this.cqryCdeJq = res.data.cqryCdeJq;
  6436. this.cqryCdeSy = res.data.cqryCdeSy;
  6437. let jq = res.data.renewalCodeJq.replace(/[\r\n]/g, "");
  6438. let jqBase64 = `data:image/png;base64,${jq}`;
  6439. this.renewalCodeJqImg = jqBase64;
  6440. if (res.data.renewalCodeSy) {
  6441. let sy = res.data.renewalCodeSy.replace(/[\r\n]/g, "");
  6442. let syBase64 = `data:image/png;base64,${sy}`;
  6443. this.renewalCodeSyImg = syBase64;
  6444. }
  6445. this.renewalCodedialogVisible = true;
  6446. } else if (res.code == "500") {
  6447. // this.iscCrownerShow=res.msg.indexOf("车主地区自动解析失败")!=-1?true:false
  6448. // this.isInsuredShow=res.msg.indexOf("被保人地区自动解析失败")!=-1?true:false
  6449. // this.isApplicantShow=res.msg.indexOf("投保人地区自动解析失败")!=-1?true:false
  6450. // this.ownerInfo.provinceData= this.iscCrownerShow?[]: this.ownerInfo.provinceData
  6451. // this.insuredPersonInfo.provinceData= this.isInsuredShow?[]: this.insuredPersonInfo.provinceData
  6452. // this.policyHolderInfo.provinceData= this.isApplicantShow?[]: this.policyHolderInfo.provinceData
  6453. this.totalCompanyList[num].quoteCode = "3";
  6454. this.totalCompanyList[num].msg = res.msg;
  6455. } else {
  6456. this.totalCompanyList[num].quoteCode = "3";
  6457. this.totalCompanyList[num].msg = res.msg;
  6458. return;
  6459. }
  6460. });
  6461. },
  6462. //国任报价
  6463. guoRen(num, id) {
  6464. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  6465. let guoRenSpecialAgreementVo = [];
  6466. this.zijinengageList.forEach(val => {
  6467. guoRenSpecialAgreementVo.push({
  6468. clauses: val.clauseName,
  6469. clausesContext: val.clauses,
  6470. clauseCode: val.clauseCode,
  6471. riskCode: val.riskCode,
  6472. riskName: val.riskName
  6473. });
  6474. });
  6475. let accidentalDrivingVo = {};
  6476. if (this.guoRenaccidentForm.goodsCode) {
  6477. accidentalDrivingVo = this.guoRenaccidentalDrivingVo
  6478. }
  6479. let params = {
  6480. accidentalDrivingVo,
  6481. orderNo: this.orderno,
  6482. companyId: id,
  6483. cqryCdeJq: this.cqryCdeJq,
  6484. cqryCdeSy: this.cqryCdeSy,
  6485. renewalCodeJq: this.renewalCodeJq,
  6486. renewalCodeSy: this.renewalCodeSy,
  6487. agreementId: this.totalCompanyList[num].agreementId,
  6488. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  6489. guoRenSpecialAgreementVo
  6490. };
  6491. this.$api.letter.guorenquote(params).then(res => {
  6492. this.totalCompanyList[num].msg = res.msg;
  6493. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  6494. this.totalCompanyList[num].quoteCode = "4";
  6495. this.totalCompanyList[num].msg = res.msg;
  6496. return;
  6497. } else if (
  6498. res.data == null &&
  6499. res.msg.indexOf("车险平台返回") > -1 &&
  6500. res.msg.indexOf(";终保日期") > -1
  6501. ) {
  6502. let time =
  6503. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  6504. this.jqstartDate = time;
  6505. this.jqendDate = this.oneYearPast1(time);
  6506. this.systartDate = time;
  6507. this.syendDate = this.oneYearPast1(time);
  6508. if (this.riskList.length > 0) {
  6509. for (let i = 0; i < this.riskList.length; i++) {
  6510. if (this.riskList[i].riskCode == "0507") {
  6511. this.riskList[i].startDate = time;
  6512. this.riskList[i].endDate = this.oneYearPast1(time);
  6513. } else if (this.riskList[i].riskCode == "0510") {
  6514. this.riskList[i].startDate = time;
  6515. this.riskList[i].endDate = this.oneYearPast1(time);
  6516. }
  6517. }
  6518. }
  6519. let param = {
  6520. userId: this.userId,
  6521. quoteno: this.quoteno,
  6522. orderNo: this.orderno,
  6523. carInfo: this.carInfo,
  6524. insuredPersonInfo: this.insuredPersonInfo,
  6525. ownerInfo: this.ownerInfo,
  6526. policyHolderInfo: this.policyHolderInfo,
  6527. kindList: this.kindList,
  6528. riskList: this.riskList,
  6529. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  6530. };
  6531. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  6532. this.guoRen(num, id);
  6533. });
  6534. } else if (res.code == "200") {
  6535. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  6536. this.totalCompanyList[num].lastYearMsg = "";
  6537. let dat = res.data.warnMessageList;
  6538. dat.map(ele => {
  6539. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  6540. });
  6541. }
  6542. this.totalCompanyList[num].quoteCode = 200;
  6543. this.totalCompanyList[num].result = res.data;
  6544. this.QuotationHistory();
  6545. } else if (res.code == "101") {
  6546. this.totalCompanyList[num].quoteCode = "101";
  6547. this.totalCompanyList[num].msg = res.msg;
  6548. this.cqryCdeJq = res.data.cqryCdeJq;
  6549. this.cqryCdeSy = res.data.cqryCdeSy;
  6550. let jq = res.data.renewalCodeJq.replace(/[\r\n]/g, "");
  6551. let jqBase64 = `data:image/png;base64,${jq}`;
  6552. this.renewalCodeJqImg = jqBase64;
  6553. if (res.data.renewalCodeSy) {
  6554. let sy = res.data.renewalCodeSy.replace(/[\r\n]/g, "");
  6555. let syBase64 = `data:image/png;base64,${sy}`;
  6556. this.renewalCodeSyImg = syBase64;
  6557. }
  6558. this.renewalCodedialogVisible = true;
  6559. } else {
  6560. this.totalCompanyList[num].quoteCode = "3";
  6561. this.totalCompanyList[num].msg = res.msg;
  6562. return;
  6563. }
  6564. });
  6565. },
  6566. //渤海报价
  6567. bohai(num, id) {
  6568. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  6569. let accidentalDrivingVo = [];
  6570. if (this.boHaiaccidentForm.packageCode) {
  6571. accidentalDrivingVo = [
  6572. {
  6573. packageCode: this.boHaiaccidentForm.packageCode,
  6574. productCode: this.boHaiaccidentDataList.find(
  6575. e => e.packageCode == this.boHaiaccidentForm.packageCode
  6576. ).productCode,
  6577. copies: this.boHaiaccidentForm.copies
  6578. }
  6579. ];
  6580. }
  6581. let params = {
  6582. accidentalDrivingVo,
  6583. orderNo: this.orderno,
  6584. companyId: id,
  6585. cqryCdeJq: this.cqryCdeJq,
  6586. cqryCdeSy: this.cqryCdeSy,
  6587. renewalCodeJq: this.renewalCodeJq,
  6588. renewalCodeSy: this.renewalCodeSy,
  6589. agreementId: this.totalCompanyList[num].agreementId,
  6590. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  6591. userId: this.userId
  6592. };
  6593. this.$api.letter.bohaiquote(params).then(res => {
  6594. this.totalCompanyList[num].msg = res.msg;
  6595. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  6596. this.totalCompanyList[num].quoteCode = "4";
  6597. this.totalCompanyList[num].msg = res.msg;
  6598. return;
  6599. } else if (
  6600. res.data == null &&
  6601. res.msg.indexOf("车险平台返回") > -1 &&
  6602. res.msg.indexOf(";终保日期") > -1
  6603. ) {
  6604. let time =
  6605. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  6606. this.jqstartDate = time;
  6607. this.jqendDate = this.oneYearPast1(time);
  6608. this.systartDate = time;
  6609. this.syendDate = this.oneYearPast1(time);
  6610. if (this.riskList.length > 0) {
  6611. for (let i = 0; i < this.riskList.length; i++) {
  6612. if (this.riskList[i].riskCode == "0507") {
  6613. this.riskList[i].startDate = time;
  6614. this.riskList[i].endDate = this.oneYearPast1(time);
  6615. } else if (this.riskList[i].riskCode == "0510") {
  6616. this.riskList[i].startDate = time;
  6617. this.riskList[i].endDate = this.oneYearPast1(time);
  6618. }
  6619. }
  6620. }
  6621. let param = {
  6622. userId: this.userId,
  6623. quoteno: this.quoteno,
  6624. orderNo: this.orderno,
  6625. carInfo: this.carInfo,
  6626. insuredPersonInfo: this.insuredPersonInfo,
  6627. ownerInfo: this.ownerInfo,
  6628. policyHolderInfo: this.policyHolderInfo,
  6629. kindList: this.kindList,
  6630. riskList: this.riskList,
  6631. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  6632. };
  6633. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  6634. this.bohai(num, id);
  6635. });
  6636. } else if (res.code == "200") {
  6637. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  6638. this.totalCompanyList[num].lastYearMsg = "";
  6639. let dat = res.data.warnMessageList;
  6640. dat.map(ele => {
  6641. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  6642. });
  6643. }
  6644. this.totalCompanyList[num].quoteCode = 200;
  6645. this.totalCompanyList[num].result = res.data;
  6646. this.QuotationHistory();
  6647. } else if (res.code == "101") {
  6648. this.totalCompanyList[num].quoteCode = "101";
  6649. this.totalCompanyList[num].msg = res.msg;
  6650. this.cqryCdeJq = res.data.cqryCdeJq;
  6651. this.cqryCdeSy = res.data.cqryCdeSy;
  6652. let jq = res.data.renewalCodeJq.replace(/[\r\n]/g, "");
  6653. let jqBase64 = `data:image/png;base64,${jq}`;
  6654. this.renewalCodeJqImg = jqBase64;
  6655. if (res.data.renewalCodeSy) {
  6656. let sy = res.data.renewalCodeSy.replace(/[\r\n]/g, "");
  6657. let syBase64 = `data:image/png;base64,${sy}`;
  6658. this.renewalCodeSyImg = syBase64;
  6659. }
  6660. this.renewalCodedialogVisible = true;
  6661. } else {
  6662. this.totalCompanyList[num].quoteCode = "3";
  6663. this.totalCompanyList[num].msg = res.msg;
  6664. return;
  6665. }
  6666. });
  6667. },
  6668. // 爬虫对接
  6669. quoteInsurance(num, id, namesimple, apiType) {
  6670. let api = apiType == 2 ? "pythonquote" : "anshengquote";
  6671. let ccidenttype = this.totalCompanyList[num].cnName;
  6672. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  6673. let params = {
  6674. accidentalDrivingVo: this[ccidenttype + "accidentalDrivingVo"],
  6675. orderNo: this.orderno,
  6676. companyId: id,
  6677. userId: this.userId,
  6678. agreementId: this.totalCompanyList[num].agreementId,
  6679. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  6680. };
  6681. if (namesimple == "中国人寿" && this.lastCompanyId) {
  6682. params.discount = this.totalCompanyList[num].discount;
  6683. params.lastCompanyId = this.lastCompanyId;
  6684. }
  6685. if (namesimple == "华农财险" && this.huanongaccidentalDrivingVo.quantity) {
  6686. params.accidentalDrivingVo.quantity = this.accidentFormHN.quantity;
  6687. // params.accidentalDrivingVo.allQuantity = this.accidentFormHN.allQuantity;
  6688. }
  6689. this.$api.letter[api](params).then(res => {
  6690. this.totalCompanyList[num].msg = res.msg;
  6691. switch (namesimple) {
  6692. case "安盛天平":
  6693. case "中国人寿":
  6694. case "恒邦财险":
  6695. case "华农财险":
  6696. case "太平财险":
  6697. if (!!res.data) {
  6698. if (
  6699. res.data.warnMessageList &&
  6700. res.data.warnMessageList.length > 0
  6701. ) {
  6702. this.totalCompanyList[num].lastYearMsg = "";
  6703. let dat = res.data.warnMessageList;
  6704. dat.map(ele => {
  6705. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  6706. });
  6707. }
  6708. if (res.data.predictInfo && res.data.predictInfo.length > 0) {
  6709. this.totalCompanyList[num].predictInfo = res.data.predictInfo;
  6710. }
  6711. this.totalCompanyList[num].quoteCode = 200;
  6712. this.totalCompanyList[num].result = res.data;
  6713. if (namesimple == "中国人寿" && res.data.companyId) {
  6714. this.lastCompanyId = res.data.companyId;
  6715. }
  6716. this.QuotationHistory();
  6717. } else {
  6718. this.totalCompanyList[num].quoteCode = "3";
  6719. this.totalCompanyList[num].msg = res.msg;
  6720. return;
  6721. }
  6722. break;
  6723. case "众安财险":
  6724. if (!!res.data) {
  6725. if (res.data.tips == "需要验车") {
  6726. this.$notify.error({
  6727. title: "通融单",
  6728. duration: 0,
  6729. dangerouslyUseHTMLString: true,
  6730. message: `<div> ${res.data.warnMessageList
  6731. .map(item => {
  6732. return `<p>${item}</p>`;
  6733. })
  6734. .join("")}
  6735. </div>`
  6736. });
  6737. }
  6738. if (
  6739. res.data.warnMessageList &&
  6740. res.data.warnMessageList.length > 0
  6741. ) {
  6742. this.totalCompanyList[num].lastYearMsg = "";
  6743. let dat = res.data.warnMessageList;
  6744. dat.map(ele => {
  6745. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  6746. });
  6747. }
  6748. this.totalCompanyList[num].quoteCode = 200;
  6749. this.totalCompanyList[num].result = res.data;
  6750. this.QuotationHistory();
  6751. } else {
  6752. this.totalCompanyList[num].quoteCode = "3";
  6753. this.totalCompanyList[num].msg = res.msg;
  6754. return;
  6755. }
  6756. break;
  6757. default:
  6758. break;
  6759. }
  6760. });
  6761. },
  6762. //安盛天平
  6763. ansheng(num, id, namesimple) {
  6764. this.quoteInsurance(
  6765. num,
  6766. id,
  6767. namesimple,
  6768. this.totalCompanyList[num].apiType
  6769. );
  6770. },
  6771. //众安
  6772. zhongan(num, id, namesimple) {
  6773. this.quoteInsurance(
  6774. num,
  6775. id,
  6776. namesimple,
  6777. this.totalCompanyList[num].apiType
  6778. );
  6779. },
  6780. //人寿
  6781. renshou(num, id, namesimple) {
  6782. this.quoteInsurance(
  6783. num,
  6784. id,
  6785. namesimple,
  6786. this.totalCompanyList[num].apiType
  6787. );
  6788. },
  6789. //恒邦
  6790. hengbang(num, id, namesimple) {
  6791. this.quoteInsurance(
  6792. num,
  6793. id,
  6794. namesimple,
  6795. this.totalCompanyList[num].apiType
  6796. );
  6797. },
  6798. //太平
  6799. taiping(num, id, namesimple) {
  6800. this.quoteInsurance(
  6801. num,
  6802. id,
  6803. namesimple,
  6804. this.totalCompanyList[num].apiType
  6805. );
  6806. },
  6807. //华农
  6808. huanong(num, id, namesimple) {
  6809. this.quoteInsurance(
  6810. num,
  6811. id,
  6812. namesimple,
  6813. this.totalCompanyList[num].apiType
  6814. );
  6815. },
  6816. capTypedictTag(val, option) {
  6817. if (option.find(item => item.dictValue == val)) {
  6818. return option.find(item => item.dictValue == val).dictTag;
  6819. }
  6820. else {
  6821. return '-'
  6822. }
  6823. },
  6824. // 爬虫对接
  6825. qoutedetail(companyId) {
  6826. let params = {
  6827. companyId: companyId
  6828. };
  6829. this.$api.letter.getByCompanyId(params).then(res => {
  6830. if (res.code == "200") {
  6831. var data = res.data;
  6832. data.kindinfo.map((ele, index) => {
  6833. switch (ele.kindCode) {
  6834. case "A":
  6835. ele.amount = "投保";
  6836. break;
  6837. case "D4":
  6838. case "SY_FJ_YBW2":
  6839. ele.unitAmount = this.toChinesNum(ele.unitAmount);
  6840. break;
  6841. case "MJ1":
  6842. case "MJ2":
  6843. case "MJ3":
  6844. case "MJ4":
  6845. ele.deductibleRate = ele.deductibleRate + "%";
  6846. break;
  6847. default:
  6848. ele.amount = this.toChinesNum(ele.amount);
  6849. }
  6850. return ele;
  6851. });
  6852. if (data.carinfo.carnature && data.carinfo.carnature == '02' || data.carinfo.carnature == '非营业') {
  6853. data.carinfo.vehicleUse = this.capTypedictTag(data.carinfo.vehicleUse, this.outOfBusinessVehicleUseoptions)
  6854. } else {
  6855. data.carinfo.vehicleUse = this.capTypedictTag(data.carinfo.vehicleUse, this.businessVehicleUseoptions)
  6856. }
  6857. data.carinfo.carnature = this.capTypedictTag(data.carinfo.carnature, this.natureOfVehicleUseoptions);
  6858. data.carinfo.cartype = data.carinfo.cartype ? this.capTypedictTag(data.carinfo.cartype, this.trafficManagementVehicleTypeoptions) : ''
  6859. data.carinfo.cimodelclass = data.carinfo.cimodelclass ? this.capTypedictTag(data.carinfo.cimodelclass, this.vehicleTypeoptions) : ''
  6860. data.carinfo.energyType = data.carinfo.energyType ? this.capTypedictTag(data.carinfo.energyType, this.energyTypeoptions) : ''
  6861. this.queryOrders = data;
  6862. //赋值费用信息
  6863. // this.feeDetailInfo=data.orderFeeResult;
  6864. }
  6865. });
  6866. this.$refs.detailsDialog.setBackupVisible(true);
  6867. },
  6868. imageUpload() {
  6869. this.imageUploaddialogVisible = true;
  6870. },
  6871. policyUpload() {
  6872. this.policyUploaddialogVisible = true;
  6873. },
  6874. cancelorder(item) {
  6875. this.$api.letter.zijincancelorder({ companyId: item.id }).then(res => {
  6876. if (res.code == 200) {
  6877. this.$message({
  6878. message: res.msg,
  6879. type: "success"
  6880. });
  6881. this.QuotationHistory();
  6882. }
  6883. });
  6884. },
  6885. imageEcho(quotenos) {
  6886. //影像查询
  6887. this.$api.letter.findByQuoteNo(quotenos).then(res => {
  6888. if (res.code == "200") {
  6889. this.imageList1 = [];
  6890. this.imageList2 = [];
  6891. this.imageList3 = [];
  6892. this.imageList4 = [];
  6893. this.imageList5 = [];
  6894. this.imgList1 = [];
  6895. this.imgList2 = [];
  6896. this.imgList3 = [];
  6897. this.imgList4 = [];
  6898. this.imgList5 = [];
  6899. this.imgList6 = [];
  6900. this.imgList7 = [];
  6901. this.imgList8 = [];
  6902. this.imgList9 = [];
  6903. this.imgList10 = [];
  6904. this.imgList11 = [];
  6905. Object.keys(res.data).forEach(keys => {
  6906. if (res.data[keys].url) {
  6907. res.data[keys].url = process.env.BASE_URL + res.data[keys].url;
  6908. switch (keys) {
  6909. case "C01":
  6910. this.imageList1.push({
  6911. imageId: res.data[keys].imageId,
  6912. imageType: res.data[keys].imageType
  6913. });
  6914. this.imgList1.push(res.data[keys]);
  6915. break;
  6916. case "D01":
  6917. this.imageList1.push({
  6918. imageId: res.data[keys].imageId,
  6919. imageType: res.data[keys].imageType
  6920. });
  6921. this.imgList2.push(res.data[keys]);
  6922. break;
  6923. case "C02":
  6924. this.imageList2.push({
  6925. imageId: res.data[keys].imageId,
  6926. imageType: res.data[keys].imageType
  6927. });
  6928. this.imgList3.push(res.data[keys]);
  6929. break;
  6930. case "D02":
  6931. this.imageList2.push({
  6932. imageId: res.data[keys].imageId,
  6933. imageType: res.data[keys].imageType
  6934. });
  6935. this.imgList4.push(res.data[keys]);
  6936. break;
  6937. case "C03":
  6938. this.imageList3.push({
  6939. imageId: res.data[keys].imageId,
  6940. imageType: res.data[keys].imageType
  6941. });
  6942. this.imgList5.push(res.data[keys]);
  6943. break;
  6944. case "D03":
  6945. this.imageList3.push({
  6946. imageId: res.data[keys].imageId,
  6947. imageType: res.data[keys].imageType
  6948. });
  6949. this.imgList6.push(res.data[keys]);
  6950. break;
  6951. case "C04":
  6952. this.imageList4.push({
  6953. imageId: res.data[keys].imageId,
  6954. imageType: res.data[keys].imageType
  6955. });
  6956. this.imgList7.push(res.data[keys]);
  6957. break;
  6958. case "D04":
  6959. this.imageList4.push({
  6960. imageId: res.data[keys].imageId,
  6961. imageType: res.data[keys].imageType
  6962. });
  6963. this.imgList8.push(res.data[keys]);
  6964. break;
  6965. case "XC00":
  6966. this.imageList5.push({
  6967. imageId: res.data[keys].imageId,
  6968. imageType: res.data[keys].imageType
  6969. });
  6970. this.imgList9.push(res.data[keys]);
  6971. break;
  6972. case "GC00":
  6973. this.imageList5.push({
  6974. imageId: res.data[keys].imageId,
  6975. imageType: res.data[keys].imageType
  6976. });
  6977. this.imgList10.push(res.data[keys]);
  6978. break;
  6979. case "GX00":
  6980. this.imageList5.push({
  6981. imageId: res.data[keys].imageId,
  6982. imageType: res.data[keys].imageType
  6983. });
  6984. this.imgList11.push(res.data[keys]);
  6985. break;
  6986. default:
  6987. break;
  6988. }
  6989. }
  6990. });
  6991. } else {
  6992. this.$message({ message: res.msg, type: "info" });
  6993. }
  6994. });
  6995. },
  6996. hbsubmitdialog(data) {
  6997. if (this.imageList1.length == 0 && this.imageList2.length == 0) {
  6998. this.$message({ message: "影像不全,先上传影像", type: "error" });
  6999. return;
  7000. }
  7001. this.companyId = data.result.companyId;
  7002. this.apiType = data.apiType;
  7003. this.hbsubmitdialogVisible = true;
  7004. this.contributingState = false;
  7005. if (data.namesimple == "紫金财险") {
  7006. this.$api.letter
  7007. .zijinqueryClauseData({ companyId: this.companyId })
  7008. .then(res => {
  7009. this.zijinengageListData = res.data;
  7010. });
  7011. }
  7012. if (data.namesimple == "华泰财险") {
  7013. this.zijinengageList = [];
  7014. this.$api.letter
  7015. .huataiqueryClauseData({ companyId: this.companyId })
  7016. .then(res => {
  7017. res.data.forEach(val => {
  7018. val.clauseCode = val.engageCode;
  7019. val.clauseName = val.engageTitle;
  7020. val.clauseContent = val.engageDetail;
  7021. val.clauses = val.engageDetail;
  7022. });
  7023. this.zijinengageListData = res.data;
  7024. this.zijinengageListData.forEach(val => {
  7025. this.$nextTick(() => {
  7026. if (val.optType == "2") {
  7027. this.zijinengageList.push(val);
  7028. this.$refs.expandTablePro.toggleRowSelection(val, true);
  7029. }
  7030. });
  7031. });
  7032. });
  7033. } else {
  7034. this.zijinengageListData = [];
  7035. }
  7036. // switch (data.namesimple) {
  7037. // case "紫金财险":
  7038. // this.$api.letter.zijinqueryClauseData({ companyId: this.companyId }).then(res => {
  7039. // this.zijinengageListData = res.data;
  7040. // });
  7041. // break;
  7042. // default:
  7043. // break;
  7044. // }
  7045. },
  7046. hbsubmit() {
  7047. this.hbsubmitdialogVisible = false;
  7048. this.contributingState = false;
  7049. this.$api.letter
  7050. .getByCompanyId({ companyId: this.companyId })
  7051. .then(async res => {
  7052. if (res.code == 200) {
  7053. var data = res.data;
  7054. this.queryOrders = data;
  7055. const loading = this.$loading({
  7056. lock: true,
  7057. text: "Loading",
  7058. spinner: "el-icon-loading",
  7059. background: "rgba(0, 0, 0, 0.7)"
  7060. });
  7061. switch (this.queryOrders.inscompany) {
  7062. case "永安财险":
  7063. let api = "";
  7064. api =
  7065. this.apiType == 2
  7066. ? "pythonsubmitImage"
  7067. : "insyongansubmitImage";
  7068. await this.$api.letter[api]({
  7069. companyId: this.companyId
  7070. }).then(res => {
  7071. if (res.code == "200") {
  7072. var _this = this;
  7073. let api1 = "";
  7074. api1 = this.apiType == 2 ? "pythonaudit" : "yonganaudit";
  7075. this.$api.letter[api1]({
  7076. companyId: this.companyId
  7077. }).then(res => {
  7078. var _this = this;
  7079. if (res.code == "200") {
  7080. loading.close();
  7081. this.$message({
  7082. message: "核保成功",
  7083. type: "success"
  7084. });
  7085. this.QuotationHistory();
  7086. _this.$api.letter
  7087. .getByCompanyId({ companyId: this.companyId })
  7088. .then(res => {
  7089. _this.orderstatus = res.data.orderstatus; //订单状态
  7090. _this.underwritingdialogVisible = true;
  7091. let indexid = this.totalCompanyList.findIndex(
  7092. item =>
  7093. item.namesimple == this.queryOrders.inscompany
  7094. );
  7095. this.totalCompanyList[indexid].orderstatus =
  7096. res.data.orderstatus;
  7097. });
  7098. } else {
  7099. loading.close();
  7100. this.$message({
  7101. showClose: true,
  7102. message:
  7103. this.queryOrders.inscompany + "提核--:" + res.msg,
  7104. type: "error",
  7105. duration: 0
  7106. });
  7107. }
  7108. });
  7109. } else {
  7110. this.$message({
  7111. message: this.queryOrders.inscompany + "影像:" + res.msg,
  7112. type: "error",
  7113. duration: 7000
  7114. });
  7115. loading.close();
  7116. }
  7117. });
  7118. break;
  7119. case "中煤财险":
  7120. await this.$api.letter
  7121. .insZhongmeisubmitImage({
  7122. companyId: this.companyId
  7123. })
  7124. .then(res => {
  7125. if (res.code == "200") {
  7126. var _this = this;
  7127. _this.$api.letter
  7128. .Zhongmeiaudit({
  7129. companyId: this.companyId,
  7130. jqappoint: "",
  7131. syappoint: ""
  7132. })
  7133. .then(res => {
  7134. if (res.code == "200") {
  7135. loading.close();
  7136. _this.$message({
  7137. message: "核保成功",
  7138. type: "success"
  7139. });
  7140. this.QuotationHistory();
  7141. _this.$api.letter
  7142. .getByCompanyId({ companyId: this.companyId })
  7143. .then(res => {
  7144. _this.orderstatus = res.data.orderstatus; //订单状态
  7145. _this.underwritingdialogVisible = true;
  7146. let indexid = this.totalCompanyList.findIndex(
  7147. item =>
  7148. item.namesimple ==
  7149. this.queryOrders.inscompany
  7150. );
  7151. this.totalCompanyList[indexid].orderstatus =
  7152. res.data.orderstatus;
  7153. });
  7154. } else {
  7155. loading.close();
  7156. _this.$message({
  7157. showClose: true,
  7158. message:
  7159. this.queryOrders.inscompany +
  7160. "提核--:" +
  7161. res.msg,
  7162. type: "error",
  7163. duration: 0
  7164. });
  7165. _this.$api.letter
  7166. .getByCompanyId({ companyId: this.companyId })
  7167. .then(res => {
  7168. _this.orderstatus = res.data.orderstatus; //订单状态
  7169. });
  7170. }
  7171. });
  7172. } else {
  7173. this.$message({
  7174. message:
  7175. this.queryOrders.inscompany + "影像--:" + res.msg,
  7176. type: "error",
  7177. duration: 7000
  7178. });
  7179. loading.close();
  7180. }
  7181. });
  7182. break;
  7183. case "华泰财险":
  7184. let HtApiImage = "";
  7185. HtApiImage =
  7186. this.apiType == 2
  7187. ? "pythonsubmitImage"
  7188. : "insHuataisubmitImage";
  7189. await this.$api.letter[HtApiImage]({
  7190. [this.apiType == 2 ? "subOrderNo" : "companyId"]: this.companyId
  7191. })
  7192. .then(res => {
  7193. if (res.code == "200") {
  7194. var _this = this;
  7195. let HtApiaudit = "";
  7196. HtApiaudit = this.apiType == 2 ? "pythonaudit" : "huataiaudit";
  7197. let engageList = [];
  7198. this.zijinengageList.forEach(val => {
  7199. engageList.push({
  7200. engageCode: val.clauseCode,
  7201. engageDetail: val.clauses,
  7202. engageTitle: val.clauseName,
  7203. riskCode: val.riskCode
  7204. });
  7205. });
  7206. _this.$api.letter[HtApiaudit]({
  7207. [this.apiType == 2 ? "subOrderNo" : "companyId"]: this.companyId,
  7208. engageList
  7209. })
  7210. .then(res => {
  7211. if (res.code == "200") {
  7212. loading.close();
  7213. _this.$message({
  7214. message: "核保成功",
  7215. type: "success"
  7216. });
  7217. this.QuotationHistory();
  7218. _this.$api.letter
  7219. .getByCompanyId({ companyId: this.companyId })
  7220. .then(res => {
  7221. _this.orderstatus = res.data.orderstatus; //订单状态
  7222. _this.underwritingdialogVisible = true;
  7223. let indexid = this.totalCompanyList.findIndex(
  7224. item =>
  7225. item.namesimple ==
  7226. this.queryOrders.inscompany
  7227. );
  7228. this.totalCompanyList[indexid].orderstatus =
  7229. res.data.orderstatus;
  7230. });
  7231. } else {
  7232. loading.close();
  7233. _this.$message({
  7234. showClose: true,
  7235. message:
  7236. this.queryOrders.inscompany +
  7237. "提核--:" +
  7238. res.msg,
  7239. type: "error",
  7240. duration: 0
  7241. });
  7242. _this.$api.letter
  7243. .getByCompanyId({ companyId: this.companyId })
  7244. .then(res => {
  7245. _this.orderstatus = res.data.orderstatus; //订单状态
  7246. });
  7247. }
  7248. });
  7249. } else {
  7250. this.$message({
  7251. message:
  7252. this.queryOrders.inscompany + "影像--:" + res.msg,
  7253. type: "error",
  7254. duration: 7000
  7255. });
  7256. loading.close();
  7257. }
  7258. });
  7259. break;
  7260. case "紫金财险":
  7261. await this.$api.letter
  7262. .zijinsubmitImage({
  7263. companyId: this.companyId
  7264. })
  7265. .then(res => {
  7266. if (res.code == "200") {
  7267. var _this = this;
  7268. _this.$api.letter
  7269. .zijinaudit({
  7270. companyId: this.companyId,
  7271. engageList: this.zijinengageList
  7272. })
  7273. .then(res => {
  7274. if (res.code == "200") {
  7275. loading.close();
  7276. _this.$message({
  7277. message: "核保成功",
  7278. type: "success"
  7279. });
  7280. this.QuotationHistory();
  7281. _this.$api.letter
  7282. .getByCompanyId({ companyId: this.companyId })
  7283. .then(res => {
  7284. _this.orderstatus = res.data.orderstatus; //订单状态
  7285. _this.underwritingdialogVisible = true;
  7286. let indexid = this.totalCompanyList.findIndex(
  7287. item =>
  7288. item.namesimple ==
  7289. this.queryOrders.inscompany
  7290. );
  7291. this.totalCompanyList[indexid].orderstatus =
  7292. res.data.orderstatus;
  7293. });
  7294. } else {
  7295. loading.close();
  7296. _this.$message({
  7297. showClose: true,
  7298. dangerouslyUseHTMLString: true,
  7299. message:
  7300. this.queryOrders.inscompany +
  7301. "提核--:" +
  7302. res.msg,
  7303. type: "error",
  7304. duration: 0
  7305. });
  7306. _this.$api.letter
  7307. .getByCompanyId({ companyId: this.companyId })
  7308. .then(res => {
  7309. _this.orderstatus = res.data.orderstatus; //订单状态
  7310. });
  7311. }
  7312. });
  7313. } else {
  7314. this.$message({
  7315. message:
  7316. this.queryOrders.inscompany + "影像--:" + res.msg,
  7317. type: "error",
  7318. duration: 7000
  7319. });
  7320. loading.close();
  7321. }
  7322. });
  7323. break;
  7324. case "国任财险":
  7325. await this.$api.letter
  7326. .insguorensubmitImage({
  7327. companyId: this.companyId
  7328. })
  7329. .then(res => {
  7330. if (res.code == "200") {
  7331. var _this = this;
  7332. _this.$api.letter
  7333. .gunrenaudit({
  7334. companyId: this.companyId
  7335. })
  7336. .then(res => {
  7337. if (res.code == "200") {
  7338. loading.close();
  7339. _this.cqryCdeJq = "";
  7340. _this.cqryCdeSy = "";
  7341. _this.renewalCodeJq = "";
  7342. _this.renewalCodeSy = "";
  7343. this.$message({
  7344. message: "核保成功",
  7345. type: "success"
  7346. });
  7347. this.QuotationHistory();
  7348. _this.$api.letter
  7349. .getByCompanyId({ companyId: this.companyId })
  7350. .then(res => {
  7351. _this.orderstatus = res.data.orderstatus; //订单状态
  7352. _this.underwritingdialogVisible = true;
  7353. let indexid = this.totalCompanyList.findIndex(
  7354. item =>
  7355. item.namesimple ==
  7356. this.queryOrders.inscompany
  7357. );
  7358. this.totalCompanyList[indexid].orderstatus =
  7359. res.data.orderstatus;
  7360. });
  7361. } else {
  7362. loading.close();
  7363. this.$message({
  7364. showClose: true,
  7365. message: res.msg,
  7366. type: "error",
  7367. duration: 0
  7368. });
  7369. }
  7370. });
  7371. } else {
  7372. loading.close();
  7373. this.$message({
  7374. message: res.msg,
  7375. type: "error",
  7376. duration: 7000
  7377. });
  7378. }
  7379. });
  7380. break;
  7381. case "渤海财险":
  7382. await this.$api.letter
  7383. .insbohaisubmitImage({
  7384. companyId: this.companyId
  7385. })
  7386. .then(res => {
  7387. if (res.code == "200") {
  7388. var _this = this;
  7389. _this.$api.letter
  7390. .bohaiaudit({
  7391. companyId: this.companyId
  7392. })
  7393. .then(res => {
  7394. if (res.code == "200") {
  7395. loading.close();
  7396. _this.cqryCdeJq = "";
  7397. _this.cqryCdeSy = "";
  7398. _this.renewalCodeJq = "";
  7399. _this.renewalCodeSy = "";
  7400. this.$message({
  7401. message: "核保成功",
  7402. type: "success"
  7403. });
  7404. this.QuotationHistory();
  7405. _this.$api.letter
  7406. .getByCompanyId({ companyId: this.companyId })
  7407. .then(res => {
  7408. _this.orderstatus = res.data.orderstatus; //订单状态
  7409. _this.underwritingdialogVisible = true;
  7410. let indexid = this.totalCompanyList.findIndex(
  7411. item =>
  7412. item.namesimple ==
  7413. this.queryOrders.inscompany
  7414. );
  7415. this.totalCompanyList[indexid].orderstatus =
  7416. res.data.orderstatus;
  7417. });
  7418. } else {
  7419. loading.close();
  7420. this.$message({
  7421. showClose: true,
  7422. message: res.msg,
  7423. type: "error",
  7424. duration: 0
  7425. });
  7426. }
  7427. });
  7428. } else {
  7429. loading.close();
  7430. this.$message({
  7431. message: res.msg,
  7432. type: "error",
  7433. duration: 7000
  7434. });
  7435. }
  7436. });
  7437. break;
  7438. case "恒邦财险":
  7439. case "华农财险":
  7440. case "太平财险":
  7441. case "安盛天平":
  7442. case "众安财险":
  7443. case "中国人寿":
  7444. let hengbangapi = "";
  7445. hengbangapi =
  7446. this.apiType == 2
  7447. ? "pythonsubmitImage"
  7448. : "anshengsubmitImage";
  7449. await this.$api.letter[hengbangapi]({
  7450. subOrderNo: this.companyId
  7451. }).then(res => {
  7452. if (res.code == "200") {
  7453. var _this = this;
  7454. let hengbangapi1 = "";
  7455. hengbangapi1 =
  7456. this.apiType == 2 ? "pythonaudit" : "anshengaudit";
  7457. _this.$api.letter[hengbangapi1]({
  7458. subOrderNo: this.companyId
  7459. }).then(res => {
  7460. if (res.code == "200") {
  7461. loading.close();
  7462. this.$message({
  7463. message: "核保成功",
  7464. type: "success"
  7465. });
  7466. this.QuotationHistory();
  7467. _this.$api.letter
  7468. .getByCompanyId({ companyId: this.companyId })
  7469. .then(res => {
  7470. _this.orderstatus = res.data.orderstatus; //订单状态
  7471. _this.underwritingdialogVisible = true;
  7472. let indexid = this.totalCompanyList.findIndex(
  7473. item =>
  7474. item.namesimple == this.queryOrders.inscompany
  7475. );
  7476. this.totalCompanyList[indexid].orderstatus =
  7477. res.data.orderstatus;
  7478. });
  7479. } else {
  7480. loading.close();
  7481. this.$message({
  7482. showClose: true,
  7483. dangerouslyUseHTMLString: true,
  7484. message:
  7485. this.queryOrders.inscompany +
  7486. "提核--:" +
  7487. res.msg.replace(/\n/g, "<br><br>"),
  7488. type: "error",
  7489. duration: 0
  7490. });
  7491. }
  7492. });
  7493. } else {
  7494. loading.close();
  7495. this.$message({
  7496. message:
  7497. this.queryOrders.inscompany + "影像--:" + res.msg,
  7498. type: "error",
  7499. duration: 7000
  7500. });
  7501. }
  7502. });
  7503. break;
  7504. case "永诚财险":
  7505. await this.$api.letter
  7506. .insyongchengsubmitImage({
  7507. companyId: this.companyId
  7508. })
  7509. .then(res => {
  7510. if (res.code == "200") {
  7511. var _this = this;
  7512. _this.$api.letter
  7513. .yongchengaudit({
  7514. companyId: this.companyId
  7515. })
  7516. .then(res => {
  7517. if (res.code == "200") {
  7518. loading.close();
  7519. _this.cqryCdeJq = "";
  7520. _this.cqryCdeSy = "";
  7521. _this.renewalCodeJq = "";
  7522. _this.renewalCodeSy = "";
  7523. this.$message({
  7524. message: "核保成功",
  7525. type: "success"
  7526. });
  7527. this.QuotationHistory();
  7528. _this.$api.letter
  7529. .getByCompanyId({ companyId: this.companyId })
  7530. .then(res => {
  7531. _this.orderstatus = res.data.orderstatus; //订单状态
  7532. _this.underwritingdialogVisible = true;
  7533. let indexid = this.totalCompanyList.findIndex(
  7534. item =>
  7535. item.namesimple ==
  7536. this.queryOrders.inscompany
  7537. );
  7538. this.totalCompanyList[indexid].orderstatus =
  7539. res.data.orderstatus;
  7540. });
  7541. } else {
  7542. loading.close();
  7543. this.$message({
  7544. showClose: true,
  7545. message:
  7546. this.queryOrders.inscompany +
  7547. "提核--:" +
  7548. res.msg,
  7549. customClass: "customNotifyClass",
  7550. type: "error",
  7551. duration: 0
  7552. });
  7553. }
  7554. });
  7555. } else {
  7556. loading.close();
  7557. this.$message({
  7558. message:
  7559. this.queryOrders.inscompany + "影像--:" + res.msg,
  7560. type: "error",
  7561. duration: 7000
  7562. });
  7563. }
  7564. });
  7565. break;
  7566. case "大家财险":
  7567. await this.$api.letter
  7568. .dajiasubmitImage({
  7569. companyId: this.companyId
  7570. })
  7571. .then(res => {
  7572. if (res.code == "200") {
  7573. var _this = this;
  7574. _this.$api.letter
  7575. .dajiaaudit({
  7576. companyId: this.companyId
  7577. })
  7578. .then(res => {
  7579. if (res.code == "200") {
  7580. loading.close();
  7581. _this.cqryCdeJq = "";
  7582. _this.cqryCdeSy = "";
  7583. _this.renewalCodeJq = "";
  7584. _this.renewalCodeSy = "";
  7585. this.$message({
  7586. message: "核保成功",
  7587. type: "success"
  7588. });
  7589. this.QuotationHistory();
  7590. _this.$api.letter
  7591. .getByCompanyId({ companyId: this.companyId })
  7592. .then(res => {
  7593. _this.orderstatus = res.data.orderstatus; //订单状态
  7594. _this.underwritingdialogVisible = true;
  7595. let indexid = this.totalCompanyList.findIndex(
  7596. item =>
  7597. item.namesimple ==
  7598. this.queryOrders.inscompany
  7599. );
  7600. this.totalCompanyList[indexid].orderstatus =
  7601. res.data.orderstatus;
  7602. });
  7603. } else {
  7604. loading.close();
  7605. this.$message({
  7606. showClose: true,
  7607. message:
  7608. this.queryOrders.inscompany +
  7609. "提核--:" +
  7610. res.msg,
  7611. customClass: "customNotifyClass",
  7612. type: "error",
  7613. duration: 0
  7614. });
  7615. }
  7616. });
  7617. } else {
  7618. loading.close();
  7619. this.$message({
  7620. message:
  7621. this.queryOrders.inscompany + "影像--:" + res.msg,
  7622. type: "error",
  7623. duration: 7000
  7624. });
  7625. }
  7626. });
  7627. break;
  7628. }
  7629. }
  7630. });
  7631. },
  7632. //当前日期的次日
  7633. transformTime1() {
  7634. var date = new Date();
  7635. date.setFullYear(date.getFullYear());
  7636. date.setTime(date.getTime() + 24 * 60 * 60 * 1000);
  7637. var strYear = date.getFullYear();
  7638. var strDay = date.getDate();
  7639. var strMonth = date.getMonth() + 1;
  7640. var hh = date.getHours();
  7641. if (hh < 10) {
  7642. hh = "0" + hh;
  7643. }
  7644. if (strMonth < 10) {
  7645. strMonth = "0" + strMonth;
  7646. }
  7647. if (strDay < 10) {
  7648. strDay = "0" + strDay;
  7649. }
  7650. var datastr = strYear + "-" + strMonth + "-" + strDay + " " + "00:00:00";
  7651. return datastr;
  7652. },
  7653. //传入日期的次日
  7654. transformTime2(time) {
  7655. var date = new Date(time);
  7656. date.setFullYear(date.getFullYear());
  7657. date.setTime(date.getTime() + 24 * 60 * 60 * 1000); //一年后的前一天
  7658. var strYear = date.getFullYear();
  7659. var strDay = date.getDate();
  7660. var strMonth = date.getMonth() + 1;
  7661. var hh = date.getHours();
  7662. if (hh < 10) {
  7663. hh = "0" + hh;
  7664. }
  7665. if (strMonth < 10) {
  7666. strMonth = "0" + strMonth;
  7667. }
  7668. if (strDay < 10) {
  7669. strDay = "0" + strDay;
  7670. }
  7671. var datastr = strYear + "-" + strMonth + "-" + strDay + " " + "00:00:00";
  7672. return datastr;
  7673. },
  7674. //时间转换
  7675. transformTime(date) {
  7676. var d = new Date(date);
  7677. var strYear = d.getFullYear();
  7678. var strMonth = d.getMonth() + 1;
  7679. var strDay = d.getDate();
  7680. var hh = d.getHours();
  7681. var minutes = d.getMinutes(); // 分
  7682. var Seconds = d.getSeconds();
  7683. if (hh < 10) {
  7684. hh = "0" + hh;
  7685. }
  7686. if (minutes < 10) {
  7687. minutes = "0" + minutes;
  7688. }
  7689. if (Seconds < 10) {
  7690. Seconds = "0" + Seconds;
  7691. }
  7692. if (strMonth < 10) {
  7693. strMonth = "0" + strMonth;
  7694. }
  7695. if (strDay < 10) {
  7696. strDay = "0" + strDay;
  7697. }
  7698. var datetime =
  7699. strYear +
  7700. "-" +
  7701. strMonth +
  7702. "-" +
  7703. strDay +
  7704. " " +
  7705. hh +
  7706. ":" +
  7707. minutes +
  7708. ":" +
  7709. Seconds;
  7710. return datetime;
  7711. },
  7712. timeformat(date) {
  7713. var d = new Date(date);
  7714. var strYear = d.getFullYear();
  7715. var strMonth = d.getMonth() + 1;
  7716. var strDay = d.getDate();
  7717. var hh = d.getHours();
  7718. if (hh < 10) {
  7719. hh = "0" + hh;
  7720. }
  7721. if (strMonth < 10) {
  7722. strMonth = "0" + strMonth;
  7723. }
  7724. if (strDay < 10) {
  7725. strDay = "0" + strDay;
  7726. }
  7727. var datetime = strYear + "-" + strMonth + "-" + strDay;
  7728. return datetime;
  7729. },
  7730. oneYearPast1(time) {
  7731. //明年减一秒
  7732. var date = new Date(time);
  7733. date.setSeconds(date.getSeconds() - 1);
  7734. date.setFullYear(date.getFullYear() + 1); //一年后
  7735. date.setTime(date.getTime()); //一年后的前一天
  7736. var strYear = date.getFullYear();
  7737. var strDay = date.getDate();
  7738. var strMonth = date.getMonth() + 1;
  7739. var hh = date.getHours();
  7740. var minutes = date.getMinutes(); // 分
  7741. var Seconds = date.getSeconds();
  7742. if (hh < 10) {
  7743. hh = "0" + hh;
  7744. }
  7745. if (minutes < 10) {
  7746. minutes = "0" + minutes;
  7747. }
  7748. if (Seconds < 10) {
  7749. Seconds = "0" + Seconds;
  7750. }
  7751. if (strMonth < 10) {
  7752. strMonth = "0" + strMonth;
  7753. }
  7754. if (strDay < 10) {
  7755. strDay = "0" + strDay;
  7756. }
  7757. var datastr =
  7758. strYear +
  7759. "-" +
  7760. strMonth +
  7761. "-" +
  7762. strDay +
  7763. " " +
  7764. hh +
  7765. ":" +
  7766. minutes +
  7767. ":" +
  7768. Seconds;
  7769. return datastr;
  7770. },
  7771. tbczcarShowChange() {
  7772. //投保人同车主
  7773. switch (this.tbczcarShow) {
  7774. case true:
  7775. this.policyHolderInfo = JSON.parse(JSON.stringify(this.ownerInfo));
  7776. break;
  7777. default:
  7778. for (let key in this.policyHolderInfo) {
  7779. this.policyHolderInfo[key] = "";
  7780. this.policyHolderInfo.provinceData = [];
  7781. this.selectedOptions2 = [];
  7782. }
  7783. }
  7784. },
  7785. bbczcarShowChange() {
  7786. //被保人同车主
  7787. switch (this.bbczcarShow) {
  7788. case true:
  7789. this.bbtbcarShow = false;
  7790. this.insuredPersonInfo = JSON.parse(JSON.stringify(this.ownerInfo));
  7791. break;
  7792. default:
  7793. for (let key in this.insuredPersonInfo) {
  7794. this.insuredPersonInfo[key] = "";
  7795. this.insuredPersonInfo.provinceData = [];
  7796. // this.selectedOptions3 = [];
  7797. }
  7798. }
  7799. },
  7800. bbtbcarShowChange() {
  7801. //被保人同投保人
  7802. switch (this.bbtbcarShow) {
  7803. case true:
  7804. this.bbczcarShow = false;
  7805. this.insuredPersonInfo = JSON.parse(
  7806. JSON.stringify(this.policyHolderInfo)
  7807. );
  7808. break;
  7809. default:
  7810. for (let key in this.insuredPersonInfo) {
  7811. this.insuredPersonInfo[key] = "";
  7812. this.insuredPersonInfo.provinceData = [];
  7813. }
  7814. }
  7815. },
  7816. //VIN查询
  7817. toChooseVin(cartype) {
  7818. if (cartype == "" || cartype == null) {
  7819. this.$message({
  7820. message: "请输入车架号",
  7821. type: "warning"
  7822. });
  7823. } else {
  7824. const loading = this.$loading({
  7825. lock: true,
  7826. text: "Loading",
  7827. spinner: "el-icon-loading",
  7828. background: "rgba(0, 0, 0, 0.7)"
  7829. });
  7830. this.$api.letter.insZhongmeiVIN(this.carInfo.frameNo).then(res => {
  7831. if (res.code == "200") {
  7832. this.reslist = res.data;
  7833. loading.close();
  7834. this.sbdmdialogVisible = true;
  7835. } else {
  7836. loading.close();
  7837. this.$message.error(res.msg);
  7838. }
  7839. });
  7840. }
  7841. },
  7842. // 撤销二维码
  7843. revokeCode(id) {
  7844. this.$api.letter.getRevokeQrCode(id).then(res => {
  7845. if (res.code == 200) {
  7846. this.$message({
  7847. message: res.msg,
  7848. type: "success"
  7849. });
  7850. this.QuotationHistory();
  7851. }
  7852. });
  7853. },
  7854. //品牌型号查询
  7855. toChooseVehicleType(cartype) {
  7856. if (cartype == "" || cartype == null) {
  7857. this.$message({
  7858. message: "请输入车型名称",
  7859. type: "warning"
  7860. });
  7861. } else {
  7862. const loading = this.$loading({
  7863. lock: true,
  7864. text: "Loading",
  7865. spinner: "el-icon-loading",
  7866. background: "rgba(0, 0, 0, 0.7)"
  7867. });
  7868. let param = {
  7869. modelName: cartype.replace(/[^u4e00-u9fa5|,]+/gi, "")
  7870. };
  7871. this.$api.letter.ModelsQuery(param).then(res => {
  7872. if (res.code == "200") {
  7873. loading.close();
  7874. this.reslist = res.data;
  7875. this.chexingdialogVisible = true;
  7876. } else {
  7877. loading.close();
  7878. this.$message.error(res.msg);
  7879. }
  7880. });
  7881. }
  7882. },
  7883. //车型列表双击选中事件
  7884. reslistCurrentChange(row, column, event) {
  7885. this.carInfo.brandName = row.brandCN; //品牌型号
  7886. this.carInfo.modelcname = row.modelName; //品牌型号
  7887. this.carInfo.caryear = row.marketYear; //年款
  7888. this.carInfo.seatCount = row.ratedPassengerCapacity; //座位数
  7889. this.carInfo.purchasePrice = row.replacementValue; //购置价
  7890. this.carInfo.modelCode = row.modelCode; //型号代码
  7891. this.carInfo.familyName = row.series; //系列
  7892. this.carInfo.enginedesc = row.displacement; //排量
  7893. this.carInfo.energyType = row.energyTypes
  7894. this.carInfo.powerScale = row.powerScale; //功率
  7895. this.chexingdialogVisible = false;
  7896. this.sbdmdialogVisible = false;
  7897. },
  7898. //是否过户事件
  7899. transferFlagChange(e) {
  7900. if (e) {
  7901. this.transferDateShow = true;
  7902. this.carInfo.transferDate = this.carInfo.issueDate;
  7903. } else {
  7904. this.transferDateShow = false;
  7905. this.carInfo.transferDate = "";
  7906. }
  7907. },
  7908. //影像上传
  7909. drivingupload(file, imageIdList, imgurl, type) {
  7910. let that = this;
  7911. let size = file.size / 1024 / 1024 < 5;
  7912. const isJPG =
  7913. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  7914. if (!size) {
  7915. this.$message.error("上传图片大小不能超过 5MB!");
  7916. this[imgurl] = [];
  7917. return false;
  7918. }
  7919. if (!isJPG) {
  7920. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  7921. this[imgurl] = [];
  7922. return false;
  7923. }
  7924. this[imgurl].push(file);
  7925. var file = file.raw;
  7926. const params = new FormData(); // 声明formData数据类型
  7927. params.append("multipartFile", file);
  7928. params.append("type", "image");
  7929. this.$api.letter.uploadFile(params).then(res => {
  7930. if (res.code == "200") {
  7931. if (this[imageIdList].some(v => v.imageType == type)) {
  7932. this[imageIdList].map(val => {
  7933. if (val.imageType == type) {
  7934. val.imageId = res.data.id;
  7935. }
  7936. });
  7937. } else {
  7938. this[imageIdList].push({
  7939. imageId: res.data.id,
  7940. imageType: type
  7941. });
  7942. }
  7943. }
  7944. });
  7945. },
  7946. policydrivingupload(file,val){
  7947. this['fileList'+val]=[]
  7948. this.$refs.jqPolicyupload.clearFiles()
  7949. var file = file.raw;
  7950. const params = new FormData(); // 声明formData数据类型
  7951. params.append("multipartFile", file);
  7952. params.append("type", "file");
  7953. this.$api.letter.uploadFile(params).then(res => {
  7954. if (res.code == "200") {
  7955. res.data.name= res.data.fileName
  7956. this['fileList'+val].push(res.data)
  7957. this.policyNumberForm[val]=res.data.url
  7958. }
  7959. });
  7960. },
  7961. handleRemove1(file, imageIdList, imgList) {
  7962. this[imageIdList].map((ele, index) => {
  7963. if (file.imageId === ele.imageId) {
  7964. this[imageIdList].splice(index, 1);
  7965. }
  7966. return ele;
  7967. });
  7968. if (file.imageId) {
  7969. this[imgList].map((ele, index) => {
  7970. if (file.imageId === ele.imageId) {
  7971. this[imgList].splice(index, 1);
  7972. }
  7973. return ele;
  7974. });
  7975. } else {
  7976. this[imgList].map((ele, index) => {
  7977. if (file.uid === ele.uid) {
  7978. this[imgList].splice(index, 1);
  7979. }
  7980. return ele;
  7981. });
  7982. }
  7983. },
  7984. compress(img, width, height, ratio) {
  7985. var canvas, ctx, img64;
  7986. canvas = document.createElement("canvas");
  7987. canvas.width = width;
  7988. canvas.height = height;
  7989. ctx = canvas.getContext("2d");
  7990. ctx.drawImage(img, 0, 0, width, height);
  7991. img64 = canvas.toDataURL("image/jpeg", ratio);
  7992. return img64;
  7993. },
  7994. base64ToFile(base64, fileName) {
  7995. let data = base64.split(",");
  7996. let type = data[0].match(/:(.*?);/)[1]; // let suffix = type.split('/')[1];
  7997. const bstr = window.atob(data[1]);
  7998. let n = bstr.length;
  7999. const u8arr = new Uint8Array(n);
  8000. while (n--) {
  8001. u8arr[n] = bstr.charCodeAt(n);
  8002. } // const file =  new File([u8arr], `${fileName}.${suffix}`, {
  8003. const file = new File([u8arr], `${fileName}`, {
  8004. type: type
  8005. });
  8006. return file;
  8007. },
  8008. carfrontChange(file) {
  8009. //选择行驶证正面
  8010. let that = this;
  8011. let size = file.size / 1024 / 1024 < 5;
  8012. const isJPG =
  8013. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  8014. if (!size) {
  8015. this.$message.error("上传图片大小不能超过 5MB!");
  8016. return false;
  8017. }
  8018. if (!isJPG) {
  8019. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  8020. return false;
  8021. }
  8022. // let name=file.raw.name
  8023. //       var image = new Image();
  8024. //       image.src = window.URL.createObjectURL(file.raw);
  8025. //       that.carfrontImg =  image.src
  8026. //       image.onload = function(){
  8027. //         let aaa= that.base64ToFile(that.compress(image, 500, 400, 0.7),name)
  8028. // that.carfrontImg = image.src;
  8029. // const params = new FormData(); // 声明formData数据类型
  8030. // params.append("multipartFile", aaa);
  8031. // params.append("type", "image");
  8032. // that.$api.letter.uploadFile(params).then(res => {
  8033. // if (res.code == "200") {
  8034. // that.CarFrontFile = aaa;//文件流
  8035. // if (that.imageList1.some(v => v.imageType == 'C01')) {
  8036. // that.imageList1.map(val => {
  8037. // if (val.imageType == 'C01') {
  8038. // val.imageId = res.data.id;
  8039. // }
  8040. // })
  8041. // } else {
  8042. // that.imageList1.push({
  8043. // imageId: res.data.id,
  8044. // imageType: "C01",
  8045. // })
  8046. // }
  8047. // } else {
  8048. // that.$message({ message: res.msg, type: "warning" });
  8049. // }
  8050. // });
  8051. // }
  8052. var file = file.raw;
  8053. let files = window.URL.createObjectURL(file); //转临时路径
  8054. this.carfrontImg = files;
  8055. const params = new FormData(); // 声明formData数据类型
  8056. params.append("multipartFile", file);
  8057. params.append("type", "image");
  8058. this.$api.letter.uploadFile(params).then(res => {
  8059. if (res.code == "200") {
  8060. this.CarFrontFile = file; //文件流
  8061. if (this.imageList1.some(v => v.imageType == "C01")) {
  8062. this.imageList1.map(val => {
  8063. if (val.imageType == "C01") {
  8064. val.imageId = res.data.id;
  8065. }
  8066. });
  8067. } else {
  8068. this.imageList1.push({
  8069. imageId: res.data.id,
  8070. imageType: "C01"
  8071. });
  8072. }
  8073. } else {
  8074. this.$message({ message: res.msg, type: "warning" });
  8075. }
  8076. });
  8077. },
  8078. carbackChange(file) {
  8079. let that = this;
  8080. let size = file.size / 1024 / 1024 < 2;
  8081. const isJPG =
  8082. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  8083. if (!size) {
  8084. this.$message.error("上传图片大小不能超过 5MB!");
  8085. return false;
  8086. }
  8087. if (!isJPG) {
  8088. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  8089. return false;
  8090. }
  8091. // let name=file.raw.name
  8092. //       var image = new Image();
  8093. //       image.src = window.URL.createObjectURL(file.raw);
  8094. //       image.onload = function(){
  8095. //         let aaa= that.base64ToFile(that.compress(image, 500, 400, 0.7),name)
  8096. // that.carbackImg = image.src;
  8097. // const params = new FormData(); // 声明formData数据类型
  8098. // params.append("multipartFile", aaa);
  8099. // params.append("type", "image");
  8100. // that.$api.letter.uploadFile(params).then(res => {
  8101. // if (res.code == "200") {
  8102. // that.CarBackFile = aaa;//文件流
  8103. // if (that.imageList1.some(v => v.imageType == 'D01')) {
  8104. // that.imageList1.map(val => {
  8105. // if (val.imageType == 'D01') {
  8106. // val.imageId = res.data.id;
  8107. // }
  8108. // })
  8109. // } else {
  8110. // that.imageList1.push({
  8111. // imageId: res.data.id,
  8112. // imageType: "D01",
  8113. // })
  8114. // }
  8115. // } else {
  8116. // that.$message({ message: res.msg, type: "warning" });
  8117. // }
  8118. // });
  8119. // }
  8120. //选择行驶证反面
  8121. var file = file.raw;
  8122. let files = window.URL.createObjectURL(file); //转临时路径
  8123. this.carbackImg = files;
  8124. const params = new FormData(); // 声明formData数据类型
  8125. params.append("multipartFile", file);
  8126. params.append("type", "image");
  8127. this.$api.letter.uploadFile(params).then(res => {
  8128. if (res.code == "200") {
  8129. this.CarBackFile = file;
  8130. if (this.imageList1.some(v => v.imageType == "D01")) {
  8131. this.imageList1.map(val => {
  8132. if (val.imageType == "D01") {
  8133. val.imageId = res.data.id;
  8134. }
  8135. });
  8136. } else {
  8137. this.imageList1.push({
  8138. imageId: res.data.id,
  8139. imageType: "D01"
  8140. });
  8141. }
  8142. } else {
  8143. this.$message({ message: res.msg, type: "warning" });
  8144. }
  8145. });
  8146. },
  8147. userfrontChange(file) {
  8148. let that = this;
  8149. let size = file.size / 1024 / 1024 < 5;
  8150. const isJPG =
  8151. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  8152. if (!size) {
  8153. this.$message.error("上传图片大小不能超过 5MB!");
  8154. return false;
  8155. }
  8156. if (!isJPG) {
  8157. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  8158. return false;
  8159. }
  8160. // let name=file.raw.name
  8161. //       var image = new Image();
  8162. //       image.src = window.URL.createObjectURL(file.raw);
  8163. //       image.onload = function(){
  8164. //         let aaa= that.base64ToFile(that.compress(image, 500, 400, 0.7),name)
  8165. // that.userfrontImg = image.src;
  8166. // const params = new FormData(); // 声明formData数据类型
  8167. // params.append("multipartFile", aaa);
  8168. // params.append("type", "image");
  8169. // that.$api.letter.uploadFile(params).then(res => {
  8170. // if (res.code == "200") {
  8171. // let type = 'C0' + that.userIndex;
  8172. // if (that['imageList' + that.userIndex].some(v => v.imageType == type)) {
  8173. // that['imageList' + that.userIndex].map(val => {
  8174. // if (val.imageType == type) {
  8175. // val.imageId = res.data.id;
  8176. // }
  8177. // })
  8178. // } else {
  8179. // that['imageList' + that.userIndex].push({
  8180. // imageId: res.data.id,
  8181. // imageType: type,
  8182. // })
  8183. // }
  8184. // that[type + 'File'] = aaa;
  8185. // } else {
  8186. // that.$message({ message: res.msg, type: "warning" });
  8187. // }
  8188. // });
  8189. // }
  8190. //选择身份证正面
  8191. var file = file.raw;
  8192. let files = window.URL.createObjectURL(file); //转链接
  8193. this.userfrontImg = files;
  8194. const params = new FormData(); // 声明formData数据类型
  8195. params.append("multipartFile", file);
  8196. params.append("type", "image");
  8197. this.$api.letter.uploadFile(params).then(res => {
  8198. if (res.code == "200") {
  8199. let type = "C0" + this.userIndex;
  8200. if (
  8201. this["imageList" + this.userIndex].some(v => v.imageType == type)
  8202. ) {
  8203. this["imageList" + this.userIndex].map(val => {
  8204. if (val.imageType == type) {
  8205. val.imageId = res.data.id;
  8206. }
  8207. });
  8208. } else {
  8209. this["imageList" + this.userIndex].push({
  8210. imageId: res.data.id,
  8211. imageType: type
  8212. });
  8213. }
  8214. this[type + "File"] = file;
  8215. } else {
  8216. this.$message({ message: res.msg, type: "warning" });
  8217. }
  8218. });
  8219. },
  8220. userbackChange(file) {
  8221. let that = this;
  8222. let size = file.size / 1024 / 1024 < 5;
  8223. const isJPG =
  8224. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  8225. if (!size) {
  8226. this.$message.error("上传图片大小不能超过 5MB!");
  8227. return false;
  8228. }
  8229. if (!isJPG) {
  8230. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  8231. return false;
  8232. }
  8233. // let name=file.raw.name
  8234. //       var image = new Image();
  8235. //       image.src = window.URL.createObjectURL(file.raw);
  8236. //       image.onload = function(){
  8237. //         let aaa= that.base64ToFile(that.compress(image, 500, 400, 0.7),name)
  8238. // that.userbackImg = image.src;
  8239. // const params = new FormData(); // 声明formData数据类型
  8240. // params.append("multipartFile", aaa);
  8241. // params.append("type", "image");
  8242. // that.$api.letter.uploadFile(params).then(res => {
  8243. // if (res.code == "200") {
  8244. // let type = 'D0' + that.userIndex;
  8245. // if (that['imageList' + that.userIndex].some(v => v.imageType == type)) {
  8246. // that['imageList' + that.userIndex].map(val => {
  8247. // if (val.imageType == type) {
  8248. // val.imageId = res.data.id;
  8249. // }
  8250. // })
  8251. // } else {
  8252. // that['imageList' + that.userIndex].push({
  8253. // imageId: res.data.id,
  8254. // imageType: type,
  8255. // })
  8256. // }
  8257. // that[type + 'File'] = aaa;
  8258. // } else {
  8259. // that.$message({ message: res.msg, type: "warning" });
  8260. // }
  8261. // });
  8262. // }
  8263. //选择身份证背面
  8264. var file = file.raw;
  8265. let files = window.URL.createObjectURL(file); //转链接
  8266. this.userbackImg = files;
  8267. const params = new FormData(); // 声明formData数据类型
  8268. params.append("multipartFile", file);
  8269. params.append("type", "image");
  8270. this.$api.letter.uploadFile(params).then(res => {
  8271. if (res.code == "200") {
  8272. let type = "D0" + this.userIndex;
  8273. if (
  8274. this["imageList" + this.userIndex].some(v => v.imageType == type)
  8275. ) {
  8276. this["imageList" + this.userIndex].map(val => {
  8277. if (val.imageType == type) {
  8278. val.imageId = res.data.id;
  8279. }
  8280. });
  8281. } else {
  8282. this["imageList" + this.userIndex].push({
  8283. imageId: res.data.id,
  8284. imageType: type
  8285. });
  8286. }
  8287. this[type + "File"] = file;
  8288. } else {
  8289. this.$message({ message: res.msg, type: "warning" });
  8290. }
  8291. });
  8292. },
  8293. CarOCRdiscern() {
  8294. //car识别
  8295. const loading = this.$loading({
  8296. lock: true,
  8297. text: "Loading",
  8298. spinner: "el-icon-loading",
  8299. background: "rgba(0, 0, 0, 0.7)"
  8300. });
  8301. const params = new FormData(); // 声明formData数据类型
  8302. params.append("image1", this.CarFrontFile);
  8303. params.append("image2", this.CarBackFile);
  8304. this.$api.letter.drivingPermit(params).then(res => {
  8305. loading.close();
  8306. if (res.msg == "201") {
  8307. this.$message({ message: "请正确选择驾驶证", type: "warning" });
  8308. }
  8309. var carInfo = res.data.carInfo;
  8310. if (carInfo.issueDate) {
  8311. carInfo.issueDate =
  8312. carInfo.issueDate.substring(0, 4) +
  8313. "-" +
  8314. carInfo.issueDate.substring(4, 6) +
  8315. "-" +
  8316. carInfo.issueDate.substring(6, 8);
  8317. }
  8318. if (carInfo.registerDate) {
  8319. carInfo.registerDate =
  8320. carInfo.registerDate.substring(0, 4) +
  8321. "-" +
  8322. carInfo.registerDate.substring(4, 6) +
  8323. "-" +
  8324. carInfo.registerDate.substring(6, 8);
  8325. }
  8326. this.carform.carOwner = carInfo.carOwner; //车主
  8327. this.carform.licenseNo = carInfo.plateNo; //车牌号
  8328. this.carform.modelcname = carInfo.backOcrID; //品牌型号
  8329. this.carform.frameNo = carInfo.vin; //车架号
  8330. this.carform.engineNo = carInfo.engine; //发动机号
  8331. this.carform.registerDate = carInfo.registerDate; //车牌号
  8332. this.carform.issueDate = carInfo.issueDate; //车牌号
  8333. this.carform.grossMass = carInfo.grossMass; //总质量
  8334. this.carform.unladenMass = carInfo.unladenMass; //整备质量
  8335. this.carform.limitLoad = carInfo.limitLoad; //核定载质量
  8336. this.carform.category = carInfo.category; //车辆类型
  8337. this.carform.carnature = carInfo.useNature; //使用性质
  8338. this.carform.vehicleUse = carInfo.vehicleUse; //车辆用途
  8339. this.carform.plateType = carInfo.plateType; //车辆种类
  8340. this.carform.approvedPassengersCapacity =
  8341. carInfo.approvedPassengersCapacity; //核定载客数
  8342. });
  8343. },
  8344. CarOCRconfirm() {
  8345. //传参 carnature
  8346. this.ownerInfo.name = this.carform.carOwner; //车主
  8347. this.carInfo.cartype = "K33";
  8348. this.carInfo.licenseNo = this.carform.licenseNo; //车牌号
  8349. this.carInfo.modelcname = this.carform.modelcname; //品牌型号
  8350. this.carInfo.vinNo = this.carform.frameNo; //车架号
  8351. this.carInfo.frameNo = this.carform.frameNo; //车架号
  8352. this.carInfo.engineNo = this.carform.engineNo; //发动机号
  8353. this.carInfo.seatCount = this.carform.approvedPassengersCapacity; //核定载客数
  8354. this.carInfo.vehicleweight = this.carform.grossMass; //总质量
  8355. this.carInfo.completeKerbMass = this.carform.unladenMass; //整备质量
  8356. this.carInfo.limitLoad = this.carform.limitLoad; //核定载质量
  8357. this.carInfo.cartype = this.carform.category; //车辆类型
  8358. this.carInfo.carnature = this.carform.carnature
  8359. ? this.carform.carnature
  8360. : "02"; //使用性质
  8361. this.carInfo.vehicleUse = this.carform.vehicleUse
  8362. ? this.carform.vehicleUse
  8363. : "05"; //车辆用途
  8364. this.carInfo.cimodelclass = this.carform.plateType; //车辆种类
  8365. if (this.timeformat(this.carform.registerDate) != "NaN-NaN-NaN") {
  8366. this.carInfo.registerDate = this.carform.registerDate; //车牌号
  8367. }
  8368. if (this.timeformat(this.carform.issueDate) != "NaN-NaN-NaN") {
  8369. this.carInfo.issueDate = this.carform.issueDate; //车牌号
  8370. }
  8371. this.uploadcardialogVisible = false;
  8372. },
  8373. handleRemove(e) {
  8374. //删除图片
  8375. this[e] = "";
  8376. switch (this.userIndex) {
  8377. case 0:
  8378. this.carfrontImg = "";
  8379. this.carbackImg = "";
  8380. this.CarFrontFile = ""; // 行驶证正面base64
  8381. this.CarBackFile = ""; // 行驶证背面base64
  8382. break;
  8383. case 2:
  8384. this.userfrontImg = "";
  8385. this.userbackImg = "";
  8386. this.C02File = ""; // 车主正面base64
  8387. this.D02File = ""; // 车主背面base64
  8388. break;
  8389. case 3:
  8390. this.userfrontImg = "";
  8391. this.userbackImg = "";
  8392. this.C03File = ""; // 投保人正面base64
  8393. this.D03File = ""; // 投保人背面base64
  8394. break;
  8395. case 4:
  8396. this.userfrontImg = "";
  8397. this.userbackImg = "";
  8398. this.C04File = ""; // 被保人正面base64
  8399. this.D04File = ""; // 被保人背面base64
  8400. break;
  8401. default:
  8402. }
  8403. },
  8404. // 关闭查看器
  8405. closeViewer() {
  8406. this.showViewer = false;
  8407. },
  8408. uploaduser(index) {
  8409. this.userIndex = index;
  8410. this.uploaduserdialogVisible = true;
  8411. },
  8412. userOCRdiscern() {
  8413. //OCR识别
  8414. switch (this.userIndex) {
  8415. case 2:
  8416. const params1 = new FormData(); // 声明formData数据类型
  8417. params1.append("image1", this.C02File);
  8418. params1.append("image2", this.D02File);
  8419. this.userOCRjoggle(params1);
  8420. break;
  8421. case 3:
  8422. const params2 = new FormData(); // 声明formData数据类型
  8423. params2.append("image1", this.C03File);
  8424. params2.append("image2", this.D03File);
  8425. this.userOCRjoggle(params2);
  8426. break;
  8427. case 4:
  8428. const params3 = new FormData(); // 声明formData数据类型
  8429. params3.append("image1", this.C04File);
  8430. params3.append("image2", this.D04File);
  8431. this.userOCRjoggle(params3);
  8432. break;
  8433. default:
  8434. }
  8435. },
  8436. userOCRjoggle(param) {
  8437. const loading = this.$loading({
  8438. lock: true,
  8439. text: "Loading",
  8440. spinner: "el-icon-loading",
  8441. background: "rgba(0, 0, 0, 0.7)"
  8442. });
  8443. this.$api.letter.idCard(param).then(res => {
  8444. loading.close();
  8445. if (res.msg == "201") {
  8446. this.$message({ message: "请正确选择身份证", type: "warning" });
  8447. }
  8448. var customerInfo = res.data.customerInfo;
  8449. if (customerInfo) {
  8450. this.ownerInfoform.name = customerInfo.name;
  8451. if (customerInfo.identifyType == "01") {
  8452. this.ownerInfoform.identifyType = "身份证";
  8453. } else {
  8454. this.ownerInfoform.identifyType = "";
  8455. }
  8456. this.ownerInfoform.identifyNumber = customerInfo.identifyNumber;
  8457. this.ownerInfoform.gender = customerInfo.identifyIssuedCom;
  8458. this.ownerInfoform.addr = customerInfo.addr;
  8459. if (customerInfo.identifyNumber) {
  8460. this.ownerInfoform.age = getAgeByIdCard(
  8461. customerInfo.identifyNumber
  8462. );
  8463. }
  8464. if (
  8465. customerInfo.identifyValidDate ||
  8466. customerInfo.identifyValidEndDate
  8467. ) {
  8468. this.ownerInfoform.identifyValidDate =
  8469. customerInfo.identifyValidDate.substring(0, 4) +
  8470. "-" +
  8471. customerInfo.identifyValidDate.substring(4, 6) +
  8472. "-" +
  8473. customerInfo.identifyValidDate.substring(6, 8);
  8474. this.ownerInfoform.identifyValidEndDate =
  8475. customerInfo.identifyValidEndDate.substring(0, 4) +
  8476. "-" +
  8477. customerInfo.identifyValidEndDate.substring(4, 6) +
  8478. "-" +
  8479. customerInfo.identifyValidEndDate.substring(6, 8);
  8480. if (customerInfo.identifyValidEndDate == "长期") {
  8481. this.ownerInfoform.identifyValidEndDate = "9999-12-31";
  8482. }
  8483. }
  8484. // let values = addressCode(this.ownerInfoform.addr);
  8485. // this.ownerInfoform.province = codeToText[values[0]]
  8486. // this.ownerInfoform.city = codeToText[values[1]]
  8487. // this.ownerInfoform.county = codeToText[values[2]]
  8488. }
  8489. });
  8490. },
  8491. userOCRconfirm() {
  8492. //传参
  8493. switch (this.userIndex) {
  8494. case 2:
  8495. // this.selectedOptions1 = addressCode(this.ownerInfoform.addr);
  8496. this.ownerInfo = JSON.parse(JSON.stringify(this.ownerInfoform));
  8497. break;
  8498. case 3:
  8499. // this.selectedOptions2 = addressCode(this.ownerInfoform.addr);
  8500. this.policyHolderInfo = JSON.parse(
  8501. JSON.stringify(this.ownerInfoform)
  8502. );
  8503. break;
  8504. case 4:
  8505. // this.selectedOptions3 = addressCode(this.ownerInfoform.addr);
  8506. this.insuredPersonInfo = JSON.parse(
  8507. JSON.stringify(this.ownerInfoform)
  8508. );
  8509. break;
  8510. }
  8511. this.uploaduserdialogVisible = false;
  8512. },
  8513. closeDialog(index) {
  8514. // 0:车辆 1:车主 2:投保人 3:被保人
  8515. switch (index) {
  8516. case 0:
  8517. this.carfrontImg = "";
  8518. this.carbackImg = "";
  8519. this.CarFrontFile = ""; // 行驶证正面base64
  8520. this.CarBackFile = ""; // 行驶证背面base64
  8521. Object.keys(this.carform).forEach(key => {
  8522. this.carform[key] = "";
  8523. });
  8524. break;
  8525. case 2:
  8526. this.userfrontImg = "";
  8527. this.userbackImg = "";
  8528. this.C02File = ""; // 车主正面base64
  8529. this.D02File = ""; // 车主背面base64
  8530. Object.keys(this.ownerInfoform).forEach(key => {
  8531. this.ownerInfoform[key] = "";
  8532. });
  8533. break;
  8534. case 3:
  8535. this.userfrontImg = "";
  8536. this.userbackImg = "";
  8537. this.C03File = ""; // 投保人正面base64
  8538. this.D03File = ""; // 投保人背面base64
  8539. Object.keys(this.ownerInfoform).forEach(key => {
  8540. this.ownerInfoform[key] = "";
  8541. });
  8542. break;
  8543. case 4:
  8544. this.userfrontImg = "";
  8545. this.userbackImg = "";
  8546. this.C04File = ""; // 被保人正面base64
  8547. this.D04File = ""; // 被保人背面base64
  8548. Object.keys(this.ownerInfoform).forEach(key => {
  8549. this.ownerInfoform[key] = "";
  8550. });
  8551. break;
  8552. case 5:
  8553. this.businessImg = "";
  8554. // this.C04File = ''; // 被保人正面base64
  8555. // this.D04File = ''; // 被保人背面base64
  8556. // Object.keys(this.ownerInfoform).forEach((key) => {
  8557. // this.ownerInfoform[key] = '';
  8558. // });
  8559. break;
  8560. default:
  8561. }
  8562. },
  8563. bjdpreview(id) {
  8564. let params = {
  8565. companyId: id
  8566. };
  8567. this.$api.letter.getByCompanyId(params).then(res => {
  8568. if (res.code == "200") {
  8569. var data = res.data;
  8570. if (data.kindinfo != null) {
  8571. data.kindinfo.map((ele, index) => {
  8572. switch (ele.kindCode) {
  8573. case "A":
  8574. if (ele.amount == 1) {
  8575. ele.amount = "投保";
  8576. } else {
  8577. ele.amount = ele.amount;
  8578. }
  8579. break;
  8580. case "D4":
  8581. case "SY_FJ_YBW2":
  8582. ele.unitAmount = this.toChinesNum(ele.unitAmount);
  8583. break;
  8584. case "MJ1":
  8585. case "MJ2":
  8586. case "MJ3":
  8587. case "MJ4":
  8588. ele.deductibleRate = ele.deductibleRate + "%";
  8589. break;
  8590. default:
  8591. ele.amount = this.toChinesNum(ele.amount);
  8592. }
  8593. return ele;
  8594. });
  8595. }
  8596. data.logoImg = this.iconfftter(res.data.inscompany);
  8597. this.queryOrders = data;
  8598. this.$api.letter.getThemeByUserId().then(res => {
  8599. if (res.code == 200) {
  8600. if (res.data[0] == 'GD') {
  8601. this.$refs.quotationDialogPro.setBackupVisible(true);
  8602. }
  8603. else {
  8604. this.$refs.quotationDialog.setBackupVisible(true);
  8605. }
  8606. }
  8607. })
  8608. // if (
  8609. // this.$store.state.user.roles.managementSource &&
  8610. // this.$store.state.user.roles.managementSource == "3"
  8611. // ) {
  8612. // this.$refs.quotationDialogPro.setBackupVisible(true);
  8613. // } else {
  8614. // this.$refs.quotationDialog.setBackupVisible(true);
  8615. // }
  8616. }
  8617. });
  8618. },
  8619. //返回上一步
  8620. Back() { },
  8621. carcode(id, item) {
  8622. this.$api.letter.getQrCode(id).then(res => {
  8623. if (res.code == "200") {
  8624. this.inscompany = res.data.inscompany; //保险公司
  8625. this.sumpremium = res.data.sumpremium; //总价
  8626. this.licenseNo = res.data.cPlateNo; //车牌号
  8627. this.applyName = res.data.cInsuredNme; //车主
  8628. this.jqpremium = res.data.jqpremium; //交强
  8629. this.sypremium = res.data.sypremium; //商业
  8630. this.taxamount = res.data.taxamount; //车船税
  8631. this.jypremium = res.data.jypremium; //驾意险
  8632. this.jqstartdate = res.data.jqStartDate; //交强起保日期
  8633. this.systartdate = res.data.syStartDate; //商业起保日期
  8634. // this.mobile = res.data.applyinfo.mobile;//投保人手机号
  8635. let qrCodeUrl = res.data.qrCodeUrl;
  8636. this.$api.letter.getThemeByUserId().then(res => {
  8637. if (res.code == 200) {
  8638. if (res.data[0] == 'GD') {
  8639. this.codedialogVisiblePro = true;
  8640. this.qrcodeWidth = "154";
  8641. this.qrcodeHeight = "154";
  8642. }
  8643. else {
  8644. this.codedialogVisible = true;
  8645. }
  8646. this.$nextTick(function () {
  8647. var _that = this;
  8648. switch (_that.inscompany) {
  8649. case '太平财险':
  8650. let anresult = qrCodeUrl.replace(/[\r\n]/g, "");
  8651. let animgBase64 = `data:image/png;base64,${anresult}`;
  8652. base64ToPath(animgBase64).then(path => {
  8653. this.paycodeimg = path;
  8654. });
  8655. break;
  8656. case '华泰财险':
  8657. switch (item.apiType) {
  8658. case 1:
  8659. this.paycodeimg = qrCodeUrl;
  8660. break;
  8661. case 2:
  8662. let anresult = qrCodeUrl.replace(/[\r\n]/g, "");
  8663. let animgBase64 = `data:image/png;base64,${anresult}`;
  8664. base64ToPath(animgBase64).then(path => {
  8665. this.paycodeimg = path;
  8666. });
  8667. break;
  8668. }
  8669. break;
  8670. default:
  8671. this.creatQrCode(qrCodeUrl);
  8672. }
  8673. });
  8674. }
  8675. })
  8676. } else {
  8677. this.$message({ message: res.msg, type: "warning" });
  8678. }
  8679. });
  8680. },
  8681. //同步
  8682. synchronization() {
  8683. this.systartDate = this.jqstartDate;
  8684. this.syendDate = this.jqendDate;
  8685. },
  8686. //影像上传
  8687. uploadinformation() {
  8688. // //上传图片
  8689. const mergedArray = [
  8690. ...this.imageList1,
  8691. ...this.imageList2,
  8692. ...this.imageList3,
  8693. ...this.imageList4,
  8694. ...this.imageList5
  8695. ];
  8696. let imageparam = {
  8697. imageList: mergedArray,
  8698. quoteNo: this.quoteno
  8699. };
  8700. this.$api.letter.uploadImages(imageparam).then(responses => {
  8701. if (responses.code == "200") {
  8702. this.imageEcho(this.quoteno);
  8703. this.$message({ message: responses.msg, type: "success" });
  8704. } else {
  8705. this.$message({ message: responses.msg, type: "error" });
  8706. }
  8707. });
  8708. this.imageUploaddialogVisible = false;
  8709. },
  8710. add() {
  8711. this.obtainProtocol();
  8712. if (this.isLetter=='1') {
  8713. this.$router.push({ path: "/letter/letter" });
  8714. }
  8715. for (let key in this.ownerInfo) {
  8716. this.ownerInfo[key] = "";
  8717. }
  8718. for (let key in this.policyHolderInfo) {
  8719. this.policyHolderInfo[key] = "";
  8720. }
  8721. for (let key in this.insuredPersonInfo) {
  8722. this.insuredPersonInfo[key] = "";
  8723. }
  8724. this.vehicleAndVesselTaxForm = {
  8725. taxRelifFlag: "1",
  8726. taxpayerIdentifier: "01"
  8727. };
  8728. this.ownerInfo.provinceData = [];
  8729. this.insuredPersonInfo.provinceData = [];
  8730. this.policyHolderInfo.provinceData = [];
  8731. this.carInfo = JSON.parse(localStorage.getItem("carInfo"));
  8732. this.insureList = JSON.parse(localStorage.getItem("insureList"));
  8733. this.sychecked = false;
  8734. this.yonganchecked = false;
  8735. this.zhongmeichecked = false;
  8736. this.transferDateShow = false;
  8737. (this.tbczcarShow = true), //投保人同车主
  8738. // this.bbczcarShow = false, //被保人同车主
  8739. (this.bbtbcarShow = true), //被保人同投保人
  8740. (this.imageList1 = []);
  8741. this.imageList2 = [];
  8742. this.imageList3 = [];
  8743. this.imageList4 = [];
  8744. this.imgList1 = [];
  8745. this.imgList2 = [];
  8746. this.imgList3 = [];
  8747. this.imgList4 = [];
  8748. this.imgList5 = [];
  8749. this.imgList6 = [];
  8750. this.imgList7 = [];
  8751. this.imgList8 = [];
  8752. // 清空保险公司选中的意外险
  8753. this.zijintemplateSelection = "";
  8754. this.zhongantemplateSelection = "";
  8755. this.hengbangtemplateSelection = "";
  8756. this.taipingtemplateSelection = "";
  8757. this.insuranceHN = "";
  8758. this.renshoutemplateSelection = "";
  8759. this.dajiatemplateSelection = "";
  8760. this.accidentForm = {
  8761. fen: "1",
  8762. premium: 0
  8763. };
  8764. this.accidentFormHN = {
  8765. allQuantity: "1",
  8766. quantity: '1'
  8767. };
  8768. this.hengbangaccidentalDrivingVo = {};
  8769. this.huanongaccidentalDrivingVo = {};
  8770. this.taipingaccidentalDrivingVo = {};
  8771. this.zhongmeiaccidentalDrivingVo = {};
  8772. this.accidentalDrivingVo = [];
  8773. this.zhonganaccidentalDrivingVo = {};
  8774. this.renshouaccidentalDrivingVo = {};
  8775. this.anshengaccidentalDrivingVo = {};
  8776. this.dajiaaccidentalDrivingVo = {};
  8777. // this.selectedOptions1 = [];
  8778. // this.selectedOptions2 = [];
  8779. // this.selectedOptions3 = [];
  8780. this.orderno = "";
  8781. this.quoteno = "";
  8782. this.lastCompanyId = "";
  8783. this.HistoryList = [];
  8784. this.jqstartDate = this.transformTime1();
  8785. this.jqendDate = this.oneYearPast1(this.jqstartDate);
  8786. this.systartDate = this.transformTime1();
  8787. this.syendDate = this.oneYearPast1(this.jqstartDate);
  8788. },
  8789. toChinesNum(num) {
  8790. if (num.toString().length == 4) {
  8791. let overQian = Math.floor(num / 1000);
  8792. let result = overQian + "千";
  8793. return result;
  8794. } else {
  8795. let overWan = Math.floor(num / 10000);
  8796. let result = overWan + "万";
  8797. return result;
  8798. }
  8799. },
  8800. reportDrop(event) {
  8801. event.preventDefault();
  8802. event.stopPropagation();
  8803. },
  8804. tabLiScroll(id, idx) {
  8805. this.tabLiIndex = idx;
  8806. document.getElementById(id).scrollIntoView({ behavior: "smooth" });
  8807. },
  8808. handleScroll(id) {
  8809. document.getElementById(id).scrollIntoView({ behavior: "smooth" });
  8810. }
  8811. }
  8812. };
  8813. </script>
  8814. <style>
  8815. /* .customNotifyClass {
  8816. word-break: break-all;
  8817. width: 600px;
  8818. } */
  8819. </style>
  8820. <style lang="scss" scoped>
  8821. .marginL {
  8822. margin-left: 10px;
  8823. }
  8824. .el-notification {
  8825. width: 600px;
  8826. }
  8827. .styleB .el-upload--picture-card {
  8828. // display: none;
  8829. opacity: 0;
  8830. }
  8831. .ORcodebody {
  8832. height: auto;
  8833. background-color: #fff;
  8834. //background: url(../../../assets/image/group.png) #fff;
  8835. padding: 16px;
  8836. }
  8837. .csstool {
  8838. font-weight: 600;
  8839. color: #606266;
  8840. font-size: 14px;
  8841. margin: 0 20px;
  8842. span {
  8843. margin-right: 5px;
  8844. }
  8845. }
  8846. .ORcode {
  8847. width: 100%;
  8848. height: auto;
  8849. display: flex;
  8850. justify-content: center;
  8851. align-items: center;
  8852. padding: 30px;
  8853. box-sizing: border-box;
  8854. &>div {
  8855. width: 176px;
  8856. height: 176px;
  8857. border: 1px solid var(--themeColor);
  8858. border-radius: 5px;
  8859. }
  8860. }
  8861. .ORtitle {
  8862. width: 100%;
  8863. padding-bottom: 20px;
  8864. box-sizing: border-box;
  8865. &>div {
  8866. width: 100%;
  8867. margin: 10px 0;
  8868. font-size: 14px;
  8869. &>span {
  8870. &:nth-child(1) {
  8871. color: #868b98;
  8872. text-align: end;
  8873. width: 150px;
  8874. }
  8875. &:nth-child(2) {
  8876. color: #333333;
  8877. }
  8878. }
  8879. }
  8880. }
  8881. .Risk {
  8882. width: 100%;
  8883. height: auto;
  8884. display: flex;
  8885. flex-direction: column;
  8886. align-items: center;
  8887. font-size: 12px;
  8888. }
  8889. .dis {
  8890. display: flex;
  8891. }
  8892. .align {
  8893. align-items: center;
  8894. }
  8895. .jus {
  8896. justify-content: space-between;
  8897. }
  8898. .shangyexian {
  8899. padding-left: 100px;
  8900. }
  8901. .headertotal {
  8902. padding: 30px;
  8903. }
  8904. .my-label {
  8905. background: #e1f3d8;
  8906. }
  8907. .my-content {
  8908. background: #fde2e2;
  8909. color: aqua;
  8910. }
  8911. .el-button--mini {
  8912. padding: 5px;
  8913. }
  8914. #qqq {
  8915. background-color: #111;
  8916. width: 300px;
  8917. height: 300px;
  8918. margin: 0 auto;
  8919. position: relative;
  8920. }
  8921. #qrCode {
  8922. display: inline-block;
  8923. margin: 0 auto;
  8924. position: relative;
  8925. top: 15%;
  8926. img {
  8927. width: 200px;
  8928. height: 200px;
  8929. background-color: #fff;
  8930. padding: 6px;
  8931. }
  8932. }
  8933. .code {
  8934. box-sizing: border-box;
  8935. display: flex;
  8936. flex-direction: column;
  8937. justify-content: space-between;
  8938. align-items: center;
  8939. &>span {
  8940. margin-bottom: 10px;
  8941. }
  8942. }
  8943. .code_name {
  8944. width: 350px;
  8945. display: flex;
  8946. justify-content: space-between;
  8947. align-items: center;
  8948. font-weight: bold;
  8949. &>span {
  8950. &:nth-child(1) {
  8951. color: #979797;
  8952. width: 120px;
  8953. text-align: right;
  8954. }
  8955. &:nth-child(2) {
  8956. color: #2d2d2d;
  8957. width: 120px;
  8958. text-align: left;
  8959. }
  8960. }
  8961. }
  8962. .header {
  8963. font-size: 18px;
  8964. font-weight: bold;
  8965. }
  8966. .body {
  8967. border-top: none;
  8968. padding-bottom: 100px;
  8969. box-sizing: border-box;
  8970. }
  8971. .u-f-ac {
  8972. -webkit-box-align: center;
  8973. align-items: center;
  8974. padding: 10px;
  8975. }
  8976. .bodyTitle {
  8977. height: 45px;
  8978. background: #f3f3f3;
  8979. border: 1px solid #dddddd;
  8980. line-height: 45px;
  8981. padding: 0 20px;
  8982. box-sizing: border-box;
  8983. }
  8984. .start {
  8985. justify-content: flex-start;
  8986. }
  8987. .end {
  8988. justify-content: flex-end;
  8989. }
  8990. .descriptions {
  8991. padding: 20px;
  8992. box-sizing: border-box;
  8993. display: flex;
  8994. flex-direction: column;
  8995. }
  8996. .bodys {
  8997. display: flex;
  8998. justify-content: space-between;
  8999. align-items: center;
  9000. flex-wrap: wrap;
  9001. }
  9002. .bodys1 {
  9003. display: flex;
  9004. justify-content: center;
  9005. align-items: center;
  9006. flex-wrap: wrap;
  9007. }
  9008. .widths {
  9009. width: 230px;
  9010. }
  9011. .widths1 {
  9012. width: 300px;
  9013. }
  9014. .back {
  9015. color: #333333;
  9016. // font-weight: 700;
  9017. }
  9018. .home {
  9019. // padding-left: 10px;
  9020. box-sizing: border-box;
  9021. padding-bottom: 10px;
  9022. border-bottom: 1px solid #eef1f6;
  9023. &>span {
  9024. margin-right: 10px;
  9025. }
  9026. }
  9027. .hovers {
  9028. margin: 10px 0;
  9029. cursor: pointer;
  9030. padding: 10px 0;
  9031. box-sizing: border-box;
  9032. border-bottom: 1px solid #f2f2f2;
  9033. .offer-time {
  9034. margin: 20px 0 0px 100px;
  9035. padding: 10px;
  9036. background: rgba(45, 77, 137, 0.06);
  9037. &>span {
  9038. margin: 0 10px;
  9039. }
  9040. }
  9041. }
  9042. /* 内容待定 */
  9043. .coll {
  9044. font-size: 14px;
  9045. }
  9046. .display {
  9047. display: flex;
  9048. justify-content: center;
  9049. align-items: center;
  9050. box-sizing: border-box;
  9051. }
  9052. .black {
  9053. color: #000;
  9054. }
  9055. .gray {
  9056. color: #999;
  9057. }
  9058. .OCR {
  9059. font-weight: bold;
  9060. color: #333;
  9061. margin: 20px;
  9062. }
  9063. .slot {
  9064. position: absolute;
  9065. width: 100%;
  9066. height: 100%;
  9067. left: 0;
  9068. top: 0;
  9069. cursor: default;
  9070. text-align: center;
  9071. color: #fff;
  9072. opacity: 0;
  9073. font-size: 20px;
  9074. background-color: rgba(0, 0, 0, 0.5);
  9075. transition: opacity 0.3s;
  9076. display: flex;
  9077. justify-content: center;
  9078. align-items: center;
  9079. &>i {
  9080. margin: 10px;
  9081. color: #fff;
  9082. font-size: 30px;
  9083. font-weight: bold;
  9084. cursor: pointer;
  9085. }
  9086. &:hover {
  9087. opacity: 1;
  9088. }
  9089. }
  9090. .companyhead {
  9091. width: 100%;
  9092. margin: 0 auto;
  9093. padding: 15px 10px;
  9094. color: #333;
  9095. font-weight: bold;
  9096. font-size: 14px;
  9097. background-color: #f7f7f9;
  9098. }
  9099. .footer {
  9100. width: calc(100% - 200px);
  9101. position: fixed;
  9102. bottom: 0;
  9103. right: 0;
  9104. background-color: #fff;
  9105. z-index: 9;
  9106. padding: 20px;
  9107. box-sizing: border-box;
  9108. box-shadow: 0 0 1px 0 #ccc;
  9109. transition: all 0.3s, box-shadow 0.5s;
  9110. &.shadow {
  9111. box-shadow: 0 -10px 10px -10px #ccc;
  9112. }
  9113. }
  9114. .Enclosure {
  9115. width: 100%;
  9116. background-color: #fff;
  9117. padding: 20px;
  9118. box-sizing: border-box;
  9119. margin-bottom: 15px;
  9120. border-radius: 6px;
  9121. border: 1px solid #ebeef5;
  9122. transition: all 0.2s ease-in-out;
  9123. box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
  9124. }
  9125. .icon-img {
  9126. display: block;
  9127. width: 30px;
  9128. height: 30px;
  9129. }
  9130. .Anchor-link {
  9131. width: 40px;
  9132. background-color: #fff;
  9133. box-shadow: #ccc 0 0px 3px 0;
  9134. border-radius: 6px;
  9135. position: fixed;
  9136. top: 50%;
  9137. right: 0;
  9138. z-index: 99;
  9139. div {
  9140. margin: 5px;
  9141. border-bottom: 1px solid #f2f2f2;
  9142. cursor: pointer;
  9143. display: block;
  9144. }
  9145. }
  9146. .color {
  9147. padding-top: 150px;
  9148. margin-top: -150px;
  9149. }
  9150. .more {
  9151. width: 100%;
  9152. padding: 20px;
  9153. box-sizing: border-box;
  9154. }
  9155. .more-title {
  9156. padding: 15px 10px;
  9157. background-color: #f7f7f9;
  9158. // border-bottom: 1px solid #e3e3e3;
  9159. font-size: 14px;
  9160. }
  9161. .more-data {
  9162. padding: 10px;
  9163. border-bottom: 1px solid #f2f2f2;
  9164. color: #d42426;
  9165. font-size: 14px;
  9166. }
  9167. .Driving-risk {
  9168. padding-left: 100px;
  9169. // padding-top:20px
  9170. }
  9171. .checkbox {
  9172. transform: scale(1.2);
  9173. margin-right: 20px;
  9174. line-height: 32px;
  9175. }
  9176. .insure-long-term {
  9177. display: inline-flex;
  9178. padding-left: 8px;
  9179. padding-right: 8px;
  9180. background: var(--themeColor);
  9181. color: #fff;
  9182. font-size: 12px;
  9183. margin-left: -5px;
  9184. border-radius: 0px 5px 5px 0px;
  9185. cursor: pointer;
  9186. }
  9187. .textareaSty {
  9188. width: 160px;
  9189. height: 210px;
  9190. border: 1px solid #d2d2d2;
  9191. border-radius: 4px;
  9192. img {
  9193. width: 50px;
  9194. height: 50px;
  9195. }
  9196. }
  9197. .image-title {
  9198. width: 100px;
  9199. height: 30px;
  9200. color: #fff;
  9201. text-align: center;
  9202. line-height: 30px;
  9203. font-weight: bold;
  9204. margin-bottom: 15px;
  9205. background: #fc4a1a;
  9206. background: #f2994a;
  9207. /* fallback for old browsers */
  9208. background: -webkit-linear-gradient(to left, #f2c94c, #f2994a);
  9209. /* Chrome 10-25, Safari 5.1-6 */
  9210. background: linear-gradient(to left, #f2c94c, #f2994a);
  9211. /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
  9212. }
  9213. .aaa{
  9214. /deep/ {
  9215. margin-bottom: 20px;
  9216. margin-right: 50px;
  9217. span {
  9218. display: inline-block;
  9219. margin-bottom: 10px;
  9220. }
  9221. .el-upload .el-upload-dragger {
  9222. width: 180px;
  9223. height: 120px;
  9224. border: 1px dashed #c0ccda;
  9225. padding: 0;
  9226. }
  9227. .el-upload-list--picture-card .el-upload-list__item {
  9228. width: 180px;
  9229. height: 120px;
  9230. }
  9231. .el-upload-list__item:first-child {
  9232. margin-top: 0;
  9233. }
  9234. .el-upload--picture-card {
  9235. width: 180px;
  9236. height: 120px;
  9237. }
  9238. .el-upload-list__item {
  9239. width: 180px;
  9240. height: 120px;
  9241. margin: 0 !important;
  9242. display: block !important;
  9243. }
  9244. .el-upload-list--picture-card .el-upload-list__item-thumbnail {
  9245. width: 180px;
  9246. height: 120px;
  9247. }
  9248. }
  9249. }
  9250. .jyxStyle>span {
  9251. display: inline-block;
  9252. text-align: center;
  9253. }
  9254. .tab-style {
  9255. width: 110px;
  9256. li {
  9257. text-align: right;
  9258. padding-right: 20px;
  9259. line-height: 40px;
  9260. cursor: pointer;
  9261. box-sizing: border-box;
  9262. border-right: 1px solid #e2e5eb;
  9263. }
  9264. li:focus {
  9265. background: rgba(212, 36, 38, 0.1);
  9266. border-right: 2px solid var(--themeColor);
  9267. color: var(--themeColor);
  9268. }
  9269. }
  9270. .tabLi-style {
  9271. background: rgba(212, 36, 38, 0.1);
  9272. border-right: 2px solid var(--themeColor);
  9273. color: var(--themeColor);
  9274. }
  9275. .scan-code {
  9276. div {
  9277. margin-top: 10px;
  9278. }
  9279. }
  9280. /* 清除图片上传动画bug */
  9281. /deep/ {
  9282. .proSaomazhifucodeClass .el-dialog__header {
  9283. background: rgba(45, 77, 137, 0.1);
  9284. font-weight: bold;
  9285. }
  9286. .proSaomazhifucodeClass .el-dialog__footer {
  9287. border-top: 1px solid #eef1f6;
  9288. }
  9289. .el-upload-list__item {
  9290. transition: none !important;
  9291. }
  9292. .el-checkbox__input {
  9293. &.is-checked {
  9294. .el-checkbox__inner {
  9295. background-color: #d42426;
  9296. border-color: #d42426;
  9297. }
  9298. }
  9299. }
  9300. .el-checkbox__inner {
  9301. border: 1px solid var(--themeColor);
  9302. &:hover {
  9303. border-color: var(--themeColorHover);
  9304. }
  9305. &:focus {
  9306. border-color: var(--themeColor);
  9307. }
  9308. }
  9309. .el-upload .el-upload-dragger {
  9310. height: 250px;
  9311. width: 400px;
  9312. border: 1px dashed #ced4da;
  9313. }
  9314. // .el-button--warning {
  9315. // color: #fff;
  9316. // background-color: #D42426;
  9317. // border-color: #D42426;
  9318. // &:hover {
  9319. // color: #fff;
  9320. // background-color: #ee6f00ce;
  9321. // border-color: #ee6f00ce;
  9322. // }
  9323. // }
  9324. .el-descriptions-item__label {
  9325. &:not(.is-bordered-label) {
  9326. color: #333;
  9327. }
  9328. }
  9329. // .el-radio__input.is-checked + .el-radio__label {
  9330. // color: #ff7000;
  9331. // }
  9332. // .el-radio__input.is-checked .el-radio__inner {
  9333. // border-color: #ff7000;
  9334. // background: #ff7000;
  9335. // }
  9336. // .el-radio__inner {
  9337. // &:hover {
  9338. // border-color: #ff7000;
  9339. // }
  9340. // }
  9341. // .el-input--small .el-icon-date {
  9342. // color: #ee6f00ce;
  9343. // }
  9344. .el-select {
  9345. width: 100%;
  9346. }
  9347. .el-date-editor.el-input {
  9348. width: 100%;
  9349. }
  9350. .el-cascader--small {
  9351. width: 100%;
  9352. }
  9353. .styleB {
  9354. height: 128px;
  9355. }
  9356. .styleB .el-upload--picture-card {
  9357. display: none;
  9358. }
  9359. .saomazhifucodeClass .el-dialog__body,
  9360. .saomazhifucodeClass .el-dialog__header,
  9361. .saomazhifucodeClass .el-dialog__footer {
  9362. padding: 0;
  9363. background: #f4e9e9;
  9364. }
  9365. .saomazhifucodeClass .el-dialog__body {
  9366. padding: 15px;
  9367. }
  9368. .saomazhifucodeClass .el-dialog__footer {
  9369. background: #f4e9e9;
  9370. padding-bottom: 15px;
  9371. }
  9372. .saomazhifucodeClass .el-dialog__headerbtn {
  9373. margin-top: 10px;
  9374. }
  9375. .zmDriving {
  9376. thead .el-table-column--selection .cell {
  9377. display: none !important;
  9378. }
  9379. }
  9380. .synchronous {
  9381. width: 75px;
  9382. height: 45px;
  9383. line-height: 45px;
  9384. color: #fff;
  9385. cursor: pointer;
  9386. background: url(../../../../src/icon/Union2.png) no-repeat 100%;
  9387. }
  9388. .synchronous:hover {
  9389. background: url(../../../../src/icon/Union1.png) no-repeat 100%;
  9390. }
  9391. .line_style {
  9392. margin-top: 20px;
  9393. }
  9394. .el-input-group__append {
  9395. vertical-align: baseline;
  9396. }
  9397. }
  9398. </style>