KtLetter.vue 465 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812
  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)" style="
  100. color: #fff;
  101. background-color: #d42426;
  102. border-color: #d42426;
  103. "></el-button>
  104. </el-input>
  105. </el-form-item>
  106. </el-col>
  107. <el-col :span="5" :offset="1">
  108. <el-form-item label="品牌型号" prop="modelcname">
  109. <el-input v-model="carInfo.modelcname" placeholder="请输入品牌型号" type="text">
  110. <el-button slot="append" icon="el-icon-search" type="primary"
  111. @click="toChooseVehicleType(carInfo.modelcname)" style="
  112. color: #fff;
  113. background-color: #d42426;
  114. border-color: #d42426;
  115. border-top: none;
  116. "></el-button>
  117. </el-input>
  118. </el-form-item>
  119. </el-col>
  120. <el-col :span="5" :offset="1">
  121. <el-form-item label="发动机号" prop="engineNo">
  122. <el-input v-model="carInfo.engineNo" placeholder="请输入发动机号"></el-input>
  123. </el-form-item>
  124. </el-col>
  125. <el-col :span="5">
  126. <el-form-item label="年款" prop="caryear">
  127. <el-input onkeyup="value=value.replace(/\D/g,'')" v-model="carInfo.caryear" placeholder="请输入年款"></el-input>
  128. </el-form-item>
  129. </el-col>
  130. <el-col :span="5" :offset="1">
  131. <el-form-item label="座位数" prop="seatCount">
  132. <el-input onkeyup="value=value.replace(/\D/g,'')" v-model="carInfo.seatCount" placeholder="请输入座位数">
  133. <el-button slot="append">座</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="completeKerbMass">
  139. <el-input v-model="carInfo.completeKerbMass" placeholder="请输入整备质量">
  140. <el-button slot="append">千克(KG)</el-button>
  141. </el-input>
  142. </el-form-item>
  143. </el-col>
  144. <el-col :span="5" :offset="1">
  145. <el-form-item label="核定载质量" prop="limitLoad">
  146. <el-input v-model="carInfo.limitLoad" placeholder="请输入核定载质量">
  147. <el-button slot="append">千克(KG)</el-button>
  148. </el-input>
  149. </el-form-item>
  150. </el-col>
  151. <el-col :span="5">
  152. <el-form-item label="排量" prop="enginedesc">
  153. <el-input v-model="carInfo.enginedesc" placeholder="请输入排量">
  154. <el-button slot="append">升(L)</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="powerScale">
  160. <el-input v-model="carInfo.powerScale" placeholder="请输入功率">
  161. <el-button slot="append">千瓦(KW)</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="purchasePrice">
  167. <el-input onkeyup="value=value.replace(/\D/g,'')" v-model="carInfo.purchasePrice" placeholder="请输入新车购置价">
  168. <el-button slot="append">元</el-button>
  169. </el-input>
  170. </el-form-item>
  171. </el-col>
  172. <el-col :span="5" :offset="1">
  173. <el-form-item label="使用性质" prop="carnature">
  174. <el-select v-model="carInfo.carnature" placeholder="请选择使用性质" @change="natureFun">
  175. <el-option :label="item.dictTag" :value="item.dictValue"
  176. v-for="(item, index) in natureOfVehicleUseoptions" :key="index"></el-option>
  177. </el-select>
  178. </el-form-item>
  179. </el-col>
  180. <el-col :span="5">
  181. <el-form-item label="车辆用途" prop="vehicleUse">
  182. <el-select v-if="carInfo.carnature == '02'" v-model="carInfo.vehicleUse" placeholder="请选择使车辆用途">
  183. <el-option :label="item.dictTag" :value="item.dictValue"
  184. v-for="(item, index) in outOfBusinessVehicleUseoptions" :key="index"></el-option>
  185. </el-select>
  186. <el-select v-if="carInfo.carnature == '01'" v-model="carInfo.vehicleUse" placeholder="请选择使车辆用途">
  187. <el-option :label="item.dictTag" :value="item.dictValue"
  188. v-for="(item, index) in businessVehicleUseoptions" :key="index"></el-option>
  189. </el-select>
  190. </el-form-item>
  191. </el-col>
  192. <el-col :span="5" :offset="1">
  193. <el-form-item label="车辆类型" prop="cartype">
  194. <el-select v-model="carInfo.cartype" placeholder="请选择车辆种类" filterable clearable>
  195. <el-option :label="item.dictValue + item.dictTag" :value="item.dictValue"
  196. v-for="(item, index) in trafficManagementVehicleTypeoptions" :key="index"></el-option>
  197. </el-select>
  198. </el-form-item>
  199. </el-col>
  200. <el-col :span="5" :offset="1">
  201. <el-form-item label="车辆种类" prop="cimodelclass">
  202. <el-select v-model="carInfo.cimodelclass" placeholder="请选择车辆种类" clearable>
  203. <el-option :label="item.dictTag" :value="item.dictValue" v-for="(item, index) in vehicleTypeoptions"
  204. :key="index"></el-option>
  205. </el-select>
  206. </el-form-item>
  207. </el-col>
  208. <el-col :span="5" :offset="1">
  209. <el-form-item label="能源种类" prop="energyType">
  210. <el-select v-model="carInfo.energyType" placeholder="请选择能源种类">
  211. <el-option :label="item.dictTag" :value="item.dictValue" v-for="(item, index) in energyTypeoptions"
  212. :key="index"></el-option>
  213. </el-select>
  214. </el-form-item>
  215. </el-col>
  216. <el-col :span="5">
  217. <el-form-item label="注册日期" prop="registerDate">
  218. <el-date-picker v-dateFormat v-model="carInfo.registerDate" :picker-options="pickerOptions"
  219. value-format="yyyy-MM-dd" type="date" placeholder="选择注册日期" placement="bottom-start"></el-date-picker>
  220. </el-form-item>
  221. </el-col>
  222. <el-col :span="5" :offset="1">
  223. <el-form-item label="发证日期" prop="issueDate">
  224. <el-date-picker v-dateFormat v-model="carInfo.issueDate" :picker-options="issueDateOptions" type="date"
  225. placeholder="选择发证日期" value-format="yyyy-MM-dd" placement="bottom-start"></el-date-picker>
  226. </el-form-item>
  227. </el-col>
  228. <el-col :span="5" :offset="1" v-if="transferDateShow">
  229. <el-form-item label="转移登记日期" prop="transferDate">
  230. <el-date-picker v-dateFormat v-model="carInfo.transferDate" :picker-options="pickerOptions" type="date"
  231. placeholder="选择日期" value-format="yyyy-MM-dd" placement="bottom-start"></el-date-picker>
  232. </el-form-item>
  233. </el-col>
  234. </el-row>
  235. </el-form>
  236. </div>
  237. <div class="Enclosure flex f-c back">
  238. <div class="home flex j-s a-c">
  239. <div class="flex j-s a-c color" id="CheZhu">
  240. <img src="../../../../src/icon/车主信息.png" alt class="icon-img" />
  241. <span style="margin-left: 10px">车主信息</span>
  242. </div>
  243. <el-button size="small" type="primary" @click="uploaduser(2)">
  244. <i class="el-icon-camera-solid" style="margin-right: 4px"></i>证件识别
  245. </el-button>
  246. </div>
  247. <el-form class="demo-ruleForm" :model="ownerInfo" ref="ownerInfo" :rules="rules" label-width="130px" size="small"
  248. style="margin-top: 15px" label-position="top">
  249. <el-row style="flex-wrap: wrap; display: flex">
  250. <el-col :span="5">
  251. <el-form-item label="车主姓名" prop="name">
  252. <el-input v-model="ownerInfo.name" placeholder="请输入车主姓名"></el-input>
  253. </el-form-item>
  254. </el-col>
  255. <el-col :span="5" :offset="1">
  256. <el-form-item label="证件类型" prop="identifyType">
  257. <el-select v-model="ownerInfo.identifyType" placeholder="身份证" disabled>
  258. <el-option label="身份证" value="01"></el-option>
  259. </el-select>
  260. </el-form-item>
  261. </el-col>
  262. <el-col :span="5" :offset="1">
  263. <el-form-item label="证件号码" prop="identifyNumber">
  264. <el-input v-model="ownerInfo.identifyNumber" placeholder="请输入证件号码" type="text" maxlength="18"
  265. show-word-limit @blur="identifyblur('ownerInfo')"></el-input>
  266. </el-form-item>
  267. </el-col>
  268. <el-col :span="5" :offset="1">
  269. <el-form-item label="年龄" prop="age">
  270. <el-input v-model="ownerInfo.age" placeholder="请输入年龄" type="text" disabled></el-input>
  271. </el-form-item>
  272. </el-col>
  273. <el-col :span="5">
  274. <el-form-item label="性别" prop="gender">
  275. <el-select @change="genderChange" v-model="ownerInfo.gender" placeholder="请选择性别">
  276. <el-option label="男" value="男"></el-option>
  277. <el-option label="女" value="女"></el-option>
  278. </el-select>
  279. </el-form-item>
  280. </el-col>
  281. <el-col :span="5" :offset="1">
  282. <el-form-item label="车主手机号" prop="mobile">
  283. <el-input v-model="ownerInfo.mobile" placeholder="请输入车主手机号" type="text" maxlength="11"
  284. @paste.native="handlePaste($event, 'ownerInfo')" show-word-limit></el-input>
  285. </el-form-item>
  286. </el-col>
  287. <el-col :span="5" :offset="1">
  288. <el-form-item label="地址" prop="addr">
  289. <el-input v-model="ownerInfo.addr" placeholder="请输入地址" type="text"></el-input>
  290. </el-form-item>
  291. </el-col>
  292. <el-col :span="5" :offset="1">
  293. <el-form-item label="有效期起期" prop="identifyValidDate">
  294. <el-date-picker v-dateFormat v-model="ownerInfo.identifyValidDate" value-format="yyyy-MM-dd"
  295. :picker-options="pickerOptions" type="date" placeholder="选择注册日期"
  296. placement="bottom-start"></el-date-picker>
  297. </el-form-item>
  298. </el-col>
  299. <el-col :span="5">
  300. <el-form-item label="有效期止期" prop="identifyValidEndDate">
  301. <el-date-picker v-dateFormat v-model="ownerInfo.identifyValidEndDate" type="date" value-format="yyyy-MM-dd"
  302. placeholder="选择有效期" placement="bottom-start" style="width: calc(100% - 40px)"></el-date-picker>
  303. <div class="insure-long-term" @click="insureLongterm('ownerInfo')">
  304. 长期
  305. </div>
  306. </el-form-item>
  307. </el-col>
  308. <el-col :span="5" :offset="1">
  309. <el-form-item label="电子邮箱" prop="email">
  310. <el-input v-model="ownerInfo.email" placeholder="请输入电子邮箱"></el-input>
  311. </el-form-item>
  312. </el-col>
  313. <!-- <el-col :xs="xscell" :sm="smcell" :md="mdcell" :lg="lgcell" :xl="xlcell" v-if="iscCrownerShow">
  314. <el-form-item label="省市区:">
  315. <el-cascader v-model="ownerInfo.provinceData" :options="areaOption" :props="{ value: 'code',label: 'name',children: 'sub'}"></el-cascader>
  316. </el-form-item>
  317. </el-col>-->
  318. </el-row>
  319. </el-form>
  320. </div>
  321. <div class="Enclosure flex f-c back">
  322. <div class="home flex j-s a-c">
  323. <div class="flex j-s a-c" id="toubaor">
  324. <img src="../../../../src/icon/投保人信息.png" alt class="icon-img" />
  325. <span style="margin-left: 10px">投保人信息</span>
  326. </div>
  327. <div class="flex a-c j-c">
  328. <div style="font-size: 12px; margin: 0 10px">
  329. 同车主
  330. <el-switch v-model="tbczcarShow" active-color="#D42426" @change="tbczcarShowChange()"></el-switch>
  331. </div>
  332. <el-button size="small" type="primary" @click="uploaduser(3)">
  333. <i class="el-icon-camera-solid" style="margin-right: 4px"></i>
  334. 证件识别
  335. </el-button>
  336. </div>
  337. </div>
  338. <el-form v-show="!tbczcarShow" class="demo-ruleForm" :model="policyHolderInfo" ref="policyHolderInfo" :rules="rules"
  339. label-width="130px" size="small " style="margin-top: 15px" label-position="top">
  340. <el-row style="flex-wrap: wrap; display: flex">
  341. <el-col :span="5">
  342. <el-form-item label="投保人姓名" prop="name">
  343. <el-input v-model="policyHolderInfo.name" placeholder="请输入投保人姓名"></el-input>
  344. </el-form-item>
  345. </el-col>
  346. <el-col :span="5" :offset="1">
  347. <el-form-item label="证件类型" prop="identifyType">
  348. <el-select v-model="policyHolderInfo.identifyType" placeholder="身份证" disabled>
  349. <el-option label="身份证" value="01"></el-option>
  350. </el-select>
  351. </el-form-item>
  352. </el-col>
  353. <el-col :span="5" :offset="1">
  354. <el-form-item label="证件号码" prop="identifyNumber">
  355. <el-input v-model="policyHolderInfo.identifyNumber" placeholder="请输入证件号码" type="text" maxlength="18"
  356. show-word-limit @blur="identifyblur('policyHolderInfo')"></el-input>
  357. </el-form-item>
  358. </el-col>
  359. <el-col :span="5" :offset="1">
  360. <el-form-item label="年龄" prop="age">
  361. <el-input v-model="policyHolderInfo.age" placeholder="请输入年龄" type="text" disabled></el-input>
  362. </el-form-item>
  363. </el-col>
  364. <el-col :span="5">
  365. <el-form-item label="性别" prop="gender">
  366. <el-select v-model="policyHolderInfo.gender" placeholder="请选择性别">
  367. <el-option label="男" value="男"></el-option>
  368. <el-option label="女" value="女"></el-option>
  369. </el-select>
  370. </el-form-item>
  371. </el-col>
  372. <el-col :span="5" :offset="1">
  373. <el-form-item label="投保人手机号" prop="mobile">
  374. <el-input v-model="policyHolderInfo.mobile" placeholder="请输入投保人手机号" maxlength="11" type="text"
  375. @paste.native="handlePaste($event, 'policyHolderInfo')" show-word-limit></el-input>
  376. </el-form-item>
  377. </el-col>
  378. <!-- <el-col :xs="xscell" :sm="smcell" :md="mdcell" :lg="lgcell" :xl="xlcell">
  379. <el-form-item label="省市区:">
  380. <el-cascader v-model="selectedOptions2" :options="areaOptions"
  381. @change="event => areahandleChange(event, 'policyHolderInfo')"></el-cascader>
  382. </el-form-item>
  383. </el-col>-->
  384. <el-col :span="5" :offset="1">
  385. <el-form-item label="地址" prop="addr">
  386. <el-input v-model="policyHolderInfo.addr" placeholder="请输入地址" type="text"></el-input>
  387. </el-form-item>
  388. </el-col>
  389. <el-col :span="5" :offset="1">
  390. <el-form-item label="有效期起期" prop="identifyValidDate">
  391. <el-date-picker v-dateFormat v-model="policyHolderInfo.identifyValidDate" value-format="yyyy-MM-dd"
  392. :picker-options="pickerOptions" type="date" placeholder="选择有效期" placement="bottom-start"></el-date-picker>
  393. </el-form-item>
  394. </el-col>
  395. <el-col :span="5">
  396. <el-form-item label="有效期止期" prop="identifyValidEndDate">
  397. <el-date-picker v-dateFormat v-model="policyHolderInfo.identifyValidEndDate" type="date"
  398. value-format="yyyy-MM-dd" placeholder="选择有效期" placement="bottom-start"
  399. style="width: calc(100% - 40px)"></el-date-picker>
  400. <div class="insure-long-term" @click="insureLongterm('policyHolderInfo')">
  401. 长期
  402. </div>
  403. </el-form-item>
  404. </el-col>
  405. <el-col :span="5" :offset="1">
  406. <el-form-item label="电子邮箱" prop="email">
  407. <el-input v-model="policyHolderInfo.email" placeholder="请输入电子邮箱"></el-input>
  408. </el-form-item>
  409. </el-col>
  410. <!-- <el-col :xs="xscell" :sm="smcell" :md="mdcell" :lg="lgcell" :xl="xlcell" v-if="isApplicantShow">
  411. <el-form-item label="省市区:">
  412. <el-cascader v-model="policyHolderInfo.provinceData" :options="areaOption" :props="{ value: 'code',label: 'name',children: 'sub'}"></el-cascader>
  413. </el-form-item>
  414. </el-col>-->
  415. </el-row>
  416. </el-form>
  417. </div>
  418. <div class="Enclosure flex f-c back">
  419. <div class="home flex j-s a-c">
  420. <div class="flex j-s a-c">
  421. <img src="../../../../src/icon/被投保人信息.png" alt class="icon-img" />
  422. <span style="margin-left: 10px">被保人信息</span>
  423. </div>
  424. <div class="flex j-s a-c">
  425. <div style="font-size: 12px; margin: 0 10px">
  426. 同投保人
  427. <el-switch v-model="bbtbcarShow" active-color="#D42426" @change="bbtbcarShowChange()"></el-switch>
  428. </div>
  429. <div style="font-size: 12px; margin: 0 10px">
  430. 同车主
  431. <el-switch v-model="bbczcarShow" active-color="#D42426" @change="bbczcarShowChange()"></el-switch>
  432. </div>
  433. <el-button size="small" type="primary" @click="uploaduser(4)">
  434. <i class="el-icon-camera-solid" style="margin-right: 4px"></i>
  435. 证件识别
  436. </el-button>
  437. </div>
  438. </div>
  439. <el-form v-show="!bbtbcarShow && !bbczcarShow" class="demo-ruleForm" :model="insuredPersonInfo"
  440. ref="insuredPersonInfo" :rules="rules" label-width="130px" size="small" style="margin-top: 15px"
  441. label-position="top">
  442. <el-row style="flex-wrap: wrap; display: flex">
  443. <el-col :span="5">
  444. <el-form-item label="被保人姓名" prop="name">
  445. <el-input v-model="insuredPersonInfo.name" placeholder="请输入被保人姓名"></el-input>
  446. </el-form-item>
  447. </el-col>
  448. <el-col :span="5" :offset="1">
  449. <el-form-item label="证件类型" prop="identifyType">
  450. <el-select v-model="insuredPersonInfo.identifyType" placeholder="身份证" disabled>
  451. <el-option label="身份证" value="01"></el-option>
  452. </el-select>
  453. </el-form-item>
  454. </el-col>
  455. <el-col :span="5" :offset="1">
  456. <el-form-item label="证件号码" prop="identifyNumber">
  457. <el-input v-model="insuredPersonInfo.identifyNumber" placeholder="请输入证件号码" type="text" maxlength="18"
  458. show-word-limit @blur="identifyblur('insuredPersonInfo')"></el-input>
  459. </el-form-item>
  460. </el-col>
  461. <el-col :span="5" :offset="1">
  462. <el-form-item label="年龄" prop="age">
  463. <el-input v-model="insuredPersonInfo.age" placeholder="请输入年龄" type="text" disabled></el-input>
  464. </el-form-item>
  465. </el-col>
  466. <el-col :span="5">
  467. <el-form-item label="性别" prop="gender">
  468. <el-select v-model="insuredPersonInfo.gender" placeholder="请选择性别">
  469. <el-option label="男" value="男"></el-option>
  470. <el-option label="女" value="女"></el-option>
  471. </el-select>
  472. </el-form-item>
  473. </el-col>
  474. <el-col :span="5" :offset="1">
  475. <el-form-item label="被保人手机号" prop="mobile">
  476. <el-input v-model="insuredPersonInfo.mobile" placeholder="请输入被保人手机号" maxlength="11" type="text"
  477. @paste.native="handlePaste($event, 'insuredPersonInfo')" show-word-limit></el-input>
  478. </el-form-item>
  479. </el-col>
  480. <!-- <el-col :xs="xscell" :sm="smcell" :md="mdcell" :lg="lgcell" :xl="xlcell">
  481. <el-form-item label="省市区:">
  482. <el-cascader v-model="selectedOptions3" :options="areaOptions"
  483. @change="event => areahandleChange(event, 'insuredPersonInfo')"></el-cascader>
  484. </el-form-item>
  485. </el-col>-->
  486. <el-col :span="5" :offset="1">
  487. <el-form-item label="地址" prop="addr">
  488. <el-input v-model="insuredPersonInfo.addr" placeholder="请输入地址" type="text"></el-input>
  489. </el-form-item>
  490. </el-col>
  491. <el-col :span="5" :offset="1">
  492. <el-form-item label="有效期起期" prop="identifyValidDate">
  493. <el-date-picker v-dateFormat v-model="insuredPersonInfo.identifyValidDate" value-format="yyyy-MM-dd"
  494. :picker-options="pickerOptions" type="date" placeholder="选择有效期" placement="bottom-start"></el-date-picker>
  495. </el-form-item>
  496. </el-col>
  497. <el-col :span="5">
  498. <el-form-item label="有效期止期" prop="identifyValidEndDate">
  499. <el-date-picker v-dateFormat v-model="insuredPersonInfo.identifyValidEndDate" type="date"
  500. value-format="yyyy-MM-dd" placeholder="选择有效期" placement="bottom-start"
  501. style="width: calc(100% - 40px)"></el-date-picker>
  502. <div class="insure-long-term" @click="insureLongterm('insuredPersonInfo')">
  503. 长期
  504. </div>
  505. </el-form-item>
  506. </el-col>
  507. <el-col :span="5" :offset="1">
  508. <el-form-item label="电子邮箱" prop="email">
  509. <el-input v-model="insuredPersonInfo.email" placeholder="请输入电子邮箱"></el-input>
  510. </el-form-item>
  511. </el-col>
  512. <!-- <el-col :xs="xscell" :sm="smcell" :md="mdcell" :lg="lgcell" :xl="xlcell" v-if="isInsuredShow">
  513. <el-form-item label="省市区:">
  514. <el-cascader v-model="insuredPersonInfo.provinceData" :options="areaOption" :props="{ value: 'code',label: 'name',children: 'sub'}"></el-cascader>
  515. </el-form-item>
  516. </el-col>-->
  517. </el-row>
  518. </el-form>
  519. </div>
  520. <div class="Enclosure flex f-c back">
  521. <div class="home flex j-s a-c">
  522. <div class="flex j-s a-c color" id="insurance">
  523. <img src="../../../../src/icon/投保信息.png" alt class="icon-img" />
  524. <span style="margin-left: 10px">投保信息</span>
  525. <el-switch style="margin: 0 10px 0 30px" @change="immediatelyChange" v-model="immediatelyValue"
  526. active-color="#D42426"></el-switch>
  527. <span style="font-weight: normal; font-size: 13px">即时投保</span>
  528. </div>
  529. </div>
  530. <el-form class="back demo-ruleForm" :inline="true" :model="Carinsurance" label-width="150px" size="small"
  531. style="margin-top: 15px" label-position="top">
  532. <div class="flex j-start a-c">
  533. <div class="flex j-c a-start">
  534. <el-checkbox class="checkbox" style="margin-right: 20px" v-model="jqchecked"
  535. @change="jqcheckedChange"></el-checkbox>
  536. <div class="flex f-c a-c">
  537. <el-form-item label="交强险起保日期" prop="identifyNumber">
  538. <el-date-picker v-dateFormat value-format="yyyy-MM-dd HH:mm:ss" v-model="jqstartDate" @change="jqChange"
  539. type="datetime" placeholder="选择日期时间" placement="bottom-start"></el-date-picker>
  540. </el-form-item>
  541. <el-form-item label="交强险终保日期" prop="identifyNumber">
  542. <el-date-picker v-dateFormat value-format="yyyy-MM-dd HH:mm:ss" v-model="jqendDate" type="datetime"
  543. placeholder="选择日期时间" placement="bottom-start"></el-date-picker>
  544. </el-form-item>
  545. </div>
  546. </div>
  547. <div class="flex f-c a-c synchronous" style="margin: 0 50px" @click="synchronization">
  548. <span style="font-size: 12px">同步</span>
  549. </div>
  550. <div class="flex j-c a-start">
  551. <el-checkbox class="checkbox" style="margin-right: 20px" v-model="sychecked"
  552. @change="sycheckedChange"></el-checkbox>
  553. <div class="flex f-c a-c">
  554. <el-form-item label="商业险起保日期" prop="name">
  555. <el-date-picker v-dateFormat value-format="yyyy-MM-dd HH:mm:ss" v-model="systartDate" @change="syChange"
  556. type="datetime" placeholder="选择日期时间" placement="bottom-start"></el-date-picker>
  557. </el-form-item>
  558. <el-form-item label="商业险终保日期" prop="name">
  559. <el-date-picker v-dateFormat value-format="yyyy-MM-dd HH:mm:ss" v-model="syendDate" type="datetime"
  560. placeholder="选择日期时间" placement="bottom-start"></el-date-picker>
  561. </el-form-item>
  562. </div>
  563. </div>
  564. </div>
  565. </el-form>
  566. </div>
  567. <div class="Enclosure flex f-c back">
  568. <div class="home flex j-s a-c">
  569. <div class="flex j-s a-c color" id="insurance">
  570. <img src="../../../../src/icon/车船税.png" alt class="icon-img" />
  571. <span style="margin-left: 10px">车船税</span>
  572. </div>
  573. </div>
  574. <el-form class="demo-ruleForm" :model="vehicleAndVesselTaxForm" ref="vehicleAndVesselTaxForm" :rules="rules"
  575. label-width="160px" size="small" style="margin-top: 15px" label-position="top">
  576. <el-row style="flex-wrap: wrap; display: flex">
  577. <el-col :span="5">
  578. <el-form-item label="纳税类型:" prop="taxRelifFlag">
  579. <el-select @change="taxRelifFlagChange" v-model="vehicleAndVesselTaxForm.taxRelifFlag" placeholder="纳税类型">
  580. <el-option v-for="(item, index) in taxRelifFlagoptions" :key="index" :label="item.dictTag"
  581. :value="item.dictValue"></el-option>
  582. </el-select>
  583. </el-form-item>
  584. </el-col>
  585. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 1" :span="5" :offset="1">
  586. <el-form-item label="纳税人识别号:" prop="identifyNumber">
  587. <el-input v-model="vehicleAndVesselTaxForm.identifyNumber" placeholder="请输入纳税人识别号" type="text"></el-input>
  588. </el-form-item>
  589. </el-col>
  590. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 1" :span="5" :offset="1">
  591. <el-form-item label="纳税人名称:" prop="taxpayerName">
  592. <el-input v-model="vehicleAndVesselTaxForm.taxpayerName" placeholder="请输入纳税人名称" type="text"></el-input>
  593. </el-form-item>
  594. </el-col>
  595. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 1" :span="5" :offset="1">
  596. <el-form-item label="证件类型:" prop="taxpayerIdentifier">
  597. <el-select v-model="vehicleAndVesselTaxForm.taxpayerIdentifier" placeholder="证件类型" clearable>
  598. <el-option v-for="(item, index) in taxpayerIdentifieroptions" :key="index" :label="item.dictTag"
  599. :value="item.dictValue"></el-option>
  600. </el-select>
  601. </el-form-item>
  602. </el-col>
  603. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 2 ||
  604. vehicleAndVesselTaxForm.taxRelifFlag == 3
  605. " :span="5" :offset="1">
  606. <el-form-item label="减免税凭证号:" prop="extendChar2">
  607. <el-input v-model="vehicleAndVesselTaxForm.extendChar2" placeholder="请输入减免税凭证号" type="text"></el-input>
  608. </el-form-item>
  609. </el-col>
  610. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 4" :span="5" :offset="1">
  611. <el-form-item label="完税凭证号:" prop="paidFreeCertificate">
  612. <el-input v-model="vehicleAndVesselTaxForm.paidFreeCertificate" placeholder="请输入完税凭证号"
  613. type="text"></el-input>
  614. </el-form-item>
  615. </el-col>
  616. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 2 ||
  617. vehicleAndVesselTaxForm.taxRelifFlag == 3
  618. " :span="5" :offset="1">
  619. <el-form-item label="减免税原因:" prop="relifReason">
  620. <el-select v-model="vehicleAndVesselTaxForm.relifReason" placeholder="减免税原因" clearable>
  621. <el-option v-for="(item, index) in relifReasonoptions" :key="index" :label="item.dictTag"
  622. :value="item.dictValue"></el-option>
  623. </el-select>
  624. </el-form-item>
  625. </el-col>
  626. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag != 1" :span="5" :offset="1">
  627. <el-form-item label="税务机关代码:" prop="taxComCode">
  628. <el-input v-model="vehicleAndVesselTaxForm.taxComCode" placeholder="请输入税务机关代码" type="text"></el-input>
  629. </el-form-item>
  630. </el-col>
  631. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag != 1" :span="5"
  632. :offset="vehicleAndVesselTaxForm.taxRelifFlag == 4 ? 1 : 0">
  633. <el-form-item label="税务机关名称:" prop="taxComName">
  634. <el-input v-model="vehicleAndVesselTaxForm.taxComName" placeholder="请输入税务机关名称" type="text"></el-input>
  635. </el-form-item>
  636. </el-col>
  637. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 4" :span="5">
  638. <el-form-item label="完税凭证填发日期:" prop="taxDocumentDate">
  639. <el-date-picker v-dateFormat v-model="vehicleAndVesselTaxForm.taxDocumentDate" value-format="yyyy-MM-dd"
  640. type="date" placeholder="完税凭证填发日期" placement="bottom-start"></el-date-picker>
  641. </el-form-item>
  642. </el-col>
  643. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 4" :span="5" :offset="1">
  644. <el-form-item label="完税凭证地区:" prop="taxPaidAreaCode">
  645. <el-select v-model="vehicleAndVesselTaxForm.taxPaidAreaCode" placeholder="完税凭证地区" clearable>
  646. <el-option v-for="(item, index) in provinceSelect" :key="index" :label="item.name"
  647. :value="item.code"></el-option>
  648. </el-select>
  649. </el-form-item>
  650. </el-col>
  651. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 3" :span="5" :offset="1">
  652. <el-form-item label="减税比例:" prop="taxRelief">
  653. <el-input v-model="vehicleAndVesselTaxForm.taxRelief" placeholder="请输入0~1的数值" type="text"></el-input>
  654. </el-form-item>
  655. </el-col>
  656. </el-row>
  657. </el-form>
  658. </div>
  659. <div class="Enclosure flex f-c back">
  660. <div class="home flex j-s a-c back">
  661. <div class="flex j-s a-c" id="more">
  662. <img src="../../../../src/icon/险别选择.png" alt class="icon-img" />
  663. <span style="margin-left: 15px; width: 120px">险别选择</span>
  664. <el-select size="small" style="width: 70%" v-model="packageValue" placeholder="请选择套餐" @change="packageChange">
  665. <el-option v-for="item in packageOptions" :key="item.id" :label="item.title" :value="item.id"></el-option>
  666. </el-select>
  667. </div>
  668. </div>
  669. <div class="flex f-c more">
  670. <div class="flex j-s a-c more-title back">
  671. <div style="width: 590px; padding-left: 100px" class="flex j-s a-c">
  672. <span>险别</span>
  673. <span>保额(元)</span>
  674. </div>
  675. </div>
  676. <div class="flex a-c more-data back" v-for="(insureitem, insureindex) in insureList" :key="insureindex">
  677. <div style="width: 700px; padding-left: 100px" class="flex j-s a-c">
  678. <div style="width: auto">
  679. <span style="text-align: center">
  680. {{ insureitem.kindName }}
  681. <el-input v-show="insureitem.kindCode == 'D4' ||
  682. insureitem.kindCode == 'MJ4' ||
  683. insureitem.kindCode == 'SY_FJ_YBW2'
  684. " v-model="sumseatCount" style="width: 40px; margin: 0 5px" size="small" placeholder
  685. disabled></el-input>
  686. <span v-show="insureitem.kindCode == 'D4' ||
  687. insureitem.kindCode == 'MJ4' ||
  688. insureitem.kindCode == 'SY_FJ_YBW2'
  689. ">座</span>
  690. </span>
  691. </div>
  692. <el-select v-if="insureitem.amtList" filterable v-model="insureitem.amount" placeholder="请选择"
  693. @change="insureitemChange($event, insureitem)" size="small" style="width: 300px">
  694. <el-option :label="item.label" :value="item.value" v-for="(item, index) in insureitem.amtList"
  695. :key="index"></el-option>
  696. </el-select>
  697. <span v-else>
  698. <el-input-number size="small" style="width: 280px; margin-right: 10px" v-model="insureitem.amount"
  699. :min="0"></el-input-number>次
  700. </span>
  701. </div>
  702. </div>
  703. <!-- <div style="margin:0 auto;font-size: 14px;cursor: pointer;margin-top:15px;">
  704. <span v-show="insureMore" @click="selectMore(insureList.length)">
  705. 查看更多
  706. <i class="el-icon-arrow-down"></i>
  707. </span>
  708. <span v-show="!insureMore" @click="packup()">
  709. 收起
  710. <i class="el-icon-arrow-up"></i>
  711. </span>
  712. </div>-->
  713. </div>
  714. </div>
  715. <div class="Enclosure flex f-c back" v-if="isLetter == '3'">
  716. <div class="home flex j-s a-c">
  717. <div class="flex j-s a-c color" id="Waibu">
  718. <img src="../../../../src/icon/车船税.png" alt class="icon-img" />
  719. <span style="margin-left: 10px">外部订单</span>
  720. </div>
  721. <div class="flex j-c a-c">
  722. <el-button v-show="policyNumberForm.jqpolicyno ||
  723. policyNumberForm.sypolicyno ||
  724. policyNumberForm.jypolicyno
  725. " size="small" type="primary" @click="policyUpload()">
  726. <i class="el-icon-camera-solid" style="margin-right: 4px"></i>
  727. 保单上传
  728. </el-button>
  729. </div>
  730. </div>
  731. <el-form class="demo-ruleForm" :model="policyNumberForm" ref="policyNumberForm" :rules="rules" label-width="160px"
  732. size="small" style="margin-top: 15px">
  733. <el-row style="flex-wrap: wrap; display: flex">
  734. <el-col :span="8">
  735. <el-form-item label="评分" prop="score">
  736. <el-input v-model="policyNumberForm.score" placeholder="请输入评分"></el-input>
  737. </el-form-item>
  738. </el-col>
  739. <el-col :span="8">
  740. <el-form-item label="交强续保" prop="jqRenewal">
  741. <el-select v-model="policyNumberForm.jqRenewal" placeholder="请选择交强续保" clearable>
  742. <el-option v-for="item in [
  743. {
  744. label: '是',
  745. value: '1',
  746. },
  747. {
  748. label: '否',
  749. value: '0',
  750. },
  751. ]" :key="item.value" :label="item.label" :value="item.value">
  752. </el-option>
  753. </el-select>
  754. </el-form-item>
  755. </el-col>
  756. <el-col :span="8">
  757. <el-form-item label="商业续保" prop="syRenewal">
  758. <el-select v-model="policyNumberForm.syRenewal" placeholder="请选择商业续保" clearable>
  759. <el-option v-for="item in [
  760. {
  761. label: '是',
  762. value: '1',
  763. },
  764. {
  765. label: '否',
  766. value: '0',
  767. },
  768. ]" :key="item.value" :label="item.label" :value="item.value">
  769. </el-option>
  770. </el-select>
  771. </el-form-item>
  772. </el-col>
  773. <el-col :span="8">
  774. <el-form-item label="交强保单号" prop="jqpolicyno">
  775. <el-input v-model="policyNumberForm.jqpolicyno" placeholder="请输入交强保单号"></el-input>
  776. </el-form-item>
  777. </el-col>
  778. <el-col :span="8">
  779. <el-form-item label="交强险保费" prop="jqpremium">
  780. <el-input v-model="policyNumberForm.jqpremium" placeholder="请输入交强险保费" type="text"></el-input>
  781. </el-form-item>
  782. </el-col>
  783. <el-col :span="8">
  784. <el-form-item label="交强险总比例(%)" prop="jqCostsProportion">
  785. <el-input v-if="isInquiryNowDisable" :disabled="isInquiryNowDisable" placeholder="系统配置无需填写" type="text"></el-input>
  786. <el-input v-else :disabled="isInquiryNowDisable" v-model="policyNumberForm.jqCostsProportion" placeholder="请输入交强险其他费用比例" type="text"></el-input>
  787. </el-form-item>
  788. </el-col>
  789. <el-col :span="8">
  790. <el-form-item label="商业保单号" prop="sypolicyno">
  791. <el-input v-model="policyNumberForm.sypolicyno" placeholder="请输入商业保单号" type="text"></el-input>
  792. </el-form-item>
  793. </el-col>
  794. <el-col :span="8">
  795. <el-form-item label="商业险保费" prop="sypremium">
  796. <el-input v-model="policyNumberForm.sypremium" placeholder="请输入商业险保费" type="text"></el-input>
  797. </el-form-item>
  798. </el-col>
  799. <el-col :span="8">
  800. <el-form-item label="商业险总比例(%)" prop="syCostsProportion">
  801. <!-- <el-input :disabled="isInquiryNowDisable" v-model="policyNumberForm.syCostsProportion" placeholder="请输入商业险其他费用比例" type="text"></el-input> -->
  802. <el-input v-if="isInquiryNowDisable" :disabled="isInquiryNowDisable" placeholder="系统配置无需填写" type="text"></el-input>
  803. <el-input v-else :disabled="isInquiryNowDisable" v-model="policyNumberForm.syCostsProportion" placeholder="请输入商业险其他费用比例" type="text"></el-input>
  804. </el-form-item>
  805. </el-col>
  806. <el-col :span="8">
  807. <el-form-item label="驾意保单号" prop="jypolicyno">
  808. <el-input v-model="policyNumberForm.jypolicyno" placeholder="请输入驾意保单号" type="text"></el-input>
  809. </el-form-item>
  810. </el-col>
  811. <el-col :span="8">
  812. <el-form-item label="驾意险保费" prop="jypremium">
  813. <el-input v-model="policyNumberForm.jypremium" placeholder="请输入驾意险保费" type="text"></el-input>
  814. </el-form-item>
  815. </el-col>
  816. <el-col :span="8">
  817. <el-form-item label="非车险总比例(%)" prop="noCostsProportion">
  818. <!-- <el-input v-model="policyNumberForm.noCostsProportion" placeholder="请输入非车其他费用比例" type="text"></el-input> -->
  819. <el-input v-if="isInquiryNowDisable" :disabled="isInquiryNowDisable" placeholder="系统配置无需填写" type="text"></el-input>
  820. <el-input v-else :disabled="isInquiryNowDisable" v-model="policyNumberForm.noCostsProportion" placeholder="请输入非车其他费用比例" type="text"></el-input>
  821. </el-form-item>
  822. </el-col>
  823. <!-- <el-col :span="5" :offset="1">
  824. <el-form-item label="交强险手续费比例" prop="jqSuperviseCostsProportion">
  825. <el-input v-model="policyNumberForm.jqSuperviseCostsProportion" placeholder="请输入交强险手续费比例"
  826. type="text"></el-input>
  827. </el-form-item>
  828. </el-col>
  829. <el-col :span="5">
  830. <el-form-item label="商业险手续费比例" prop="sySuperviseCostsProportion">
  831. <el-input v-model="policyNumberForm.sySuperviseCostsProportion" placeholder="请输入商业险手续费比例"
  832. type="text"></el-input>
  833. </el-form-item>
  834. </el-col>
  835. <el-col :span="5" :offset="1">
  836. <el-form-item label="非车手续费比例" prop="noSuperviseCostsProportion">
  837. <el-input v-model="policyNumberForm.noSuperviseCostsProportion" placeholder="请输入非车手续费比例"
  838. type="text"></el-input>
  839. </el-form-item>
  840. </el-col> -->
  841. <el-col :span="8">
  842. <el-form-item label="车船税" prop="taxamount">
  843. <el-input v-model="policyNumberForm.taxamount" placeholder="请输入车船税" type="text"></el-input>
  844. </el-form-item>
  845. </el-col>
  846. <el-col :span="8">
  847. <el-form-item label="签单日期" prop="signDate">
  848. <el-date-picker v-model="policyNumberForm.signDate" type="datetime" value-format="yyyy-MM-dd hh:mm:ss"
  849. placeholder="选择日期">
  850. </el-date-picker>
  851. </el-form-item>
  852. </el-col>
  853. </el-row>
  854. </el-form>
  855. </div>
  856. <div class="Enclosure flex f-c back">
  857. <div class="home flex j-s">
  858. <div class="flex j-s a-c" id="company">
  859. <img src="../../../../src/icon/保险公司.png" alt class="icon-img" />
  860. <span style="margin-left: 10px">保险公司</span>
  861. <div class="csstool">
  862. <span>是否过户车</span>
  863. <el-switch @change="transferFlagChange" v-model="carInfo.transferFlag" active-color="#D42426"></el-switch>
  864. </div>
  865. <div class="csstool">
  866. <span>商业险是否过户</span>
  867. <el-switch v-model="carInfo.transferFlagBi" active-color="#D42426"></el-switch>
  868. </div>
  869. <div class="csstool">
  870. <span>是否脱保</span>
  871. <el-switch v-model="carInfo.outOfInsurance" active-color="#D42426"></el-switch>
  872. </div>
  873. <div class="csstool">
  874. <span>是否二手车</span>
  875. <el-switch v-model="carInfo.usedCar" active-color="#D42426"></el-switch>
  876. </div>
  877. </div>
  878. <div class="flex j-c a-c">
  879. <el-button v-show="imageUploadShow" size="small" type="primary" @click="imageUpload()">
  880. <i class="el-icon-camera-solid" style="margin-right: 4px"></i>
  881. 影像上传
  882. </el-button>
  883. </div>
  884. </div>
  885. <div>
  886. <div class="companyhead">
  887. <el-row>
  888. <el-col :span="1">
  889. <!-- <el-checkbox v-if="isLetter !== '3'" style="margin:0 10px 0 10px"
  890. @change="handleCheckAllChange"></el-checkbox>-->
  891. <span style="font-size: 14px">选择</span>
  892. </el-col>
  893. <el-col :span="2" style="margin: 0 42px 0 35px">
  894. <span>保险公司</span>
  895. </el-col>
  896. <el-col :span="4">
  897. <span>报价协议</span>
  898. </el-col>
  899. <el-col :span="3" v-if="isLetter == '3'" style="margin-right: 20px;">
  900. <span>现询协议</span>
  901. </el-col>
  902. <el-col :span="3" v-if="isLetter !== '3'">
  903. <span>报价结果</span>
  904. </el-col>
  905. <el-col :span="3">
  906. <span>交强险</span>
  907. </el-col>
  908. <el-col :span="3">
  909. <span>车船税</span>
  910. </el-col>
  911. <el-col :span="3">
  912. <span>商业险</span>
  913. </el-col>
  914. <el-col :span="2">
  915. <span>驾意险</span>
  916. </el-col>
  917. </el-row>
  918. </div>
  919. <div class="coll" v-if="isLetter == '3'">
  920. <div v-loading.fullscreen.lock="loading" class="hovers" v-for="(reslistitem, reslistindex) in totalCompanyList"
  921. :key="reslistindex">
  922. <el-row>
  923. <el-col :span="1" style="margin-left: 20px">
  924. <el-checkbox v-model="reslistitem.checked" :disabled="reslistitem.disabled" @change="(event) =>
  925. initchange(
  926. event,
  927. reslistitem.id,
  928. reslistitem.cnName,
  929. reslistindex
  930. )
  931. "></el-checkbox>
  932. </el-col>
  933. <el-col :span="3">
  934. <img :src="reslistitem.logo" alt style="
  935. width: 30px;
  936. height: 30px;
  937. vertical-align: middle;
  938. margin-left: 20px;
  939. " />
  940. <span>{{ reslistitem.namesimple }}</span>
  941. </el-col>
  942. <el-col :span="4">
  943. <el-select size="small" v-if="reslistitem.isTaxSource && reslistitem.isTaxSource == '1'
  944. " :disabled="true" placeholder="默认" style="width: 230px" v-model="isTaxSourceModel"
  945. :clearable="true"></el-select>
  946. <el-select size="small" v-else :disabled="!reslistitem.checked" v-model="reslistitem.agreementId"
  947. placeholder="请选择协议" style="width: 230px" :clearable="true" @change="(val) =>
  948. agreementChange(
  949. val,
  950. reslistitem.agreement,
  951. reslistindex,
  952. reslistitem
  953. )
  954. ">
  955. <div v-for="(
  956. agreementitem, agreementindex
  957. ) in reslistitem.agreement" :key="agreementindex">
  958. <div v-if="agreementitem.licenseNo &&
  959. agreementitem.licenseNo.length > 0 &&
  960. carInfo.licenseNo.length > 0
  961. ? agreementitem.licenseNo.includes(
  962. carInfo.licenseNo.slice(0, 2)
  963. )
  964. : 'true'
  965. ">
  966. <!-- <el-option :label="agreementitem.agreementName" :value="agreementitem.id"
  967. :disabled="agreementitem.disabled"></el-option> -->
  968. <el-option
  969. :label="agreementitem.jobDescription ? agreementitem.businessDescription + '(' + agreementitem.jobDescription + ')' : agreementitem.businessDescription"
  970. :value="agreementitem.id" :disabled="agreementitem.disabled">{{ agreementitem.jobDescription ?
  971. agreementitem.businessDescription + '(' + agreementitem.jobDescription + ')' :
  972. agreementitem.businessDescription }}</el-option>
  973. </div>
  974. </div>
  975. </el-select>
  976. </el-col>
  977. <el-col :span="3" style="margin-right: 20px;">
  978. <el-select :disabled="!reslistitem.checked" size="small" clearable v-model="reslistitem.isInquiryNow" @change="inquiryNowListChange">
  979. <el-option v-for="(item, index) in inquiryNowList" :key="index" :label="item.costsDescription" :value="item.id"></el-option>
  980. </el-select>
  981. </el-col>
  982. <el-col :span="3">
  983. <span style="color: #d42426; font-weight: bold">
  984. {{
  985. reslistitem.result.jqpremium
  986. ? "¥" + reslistitem.result.jqpremium
  987. : "&nbsp;"
  988. }}
  989. </span>
  990. </el-col>
  991. <el-col :span="3">
  992. <span style="color: #d42426; font-weight: bold">
  993. {{
  994. reslistitem.result.taxamount
  995. ? "¥" + reslistitem.result.taxamount
  996. : "&nbsp;"
  997. }}
  998. </span>
  999. </el-col>
  1000. <el-col :span="3">
  1001. <span style="color: #d42426; font-weight: bold">
  1002. {{
  1003. reslistitem.result.sypremium
  1004. ? "¥" + reslistitem.result.sypremium
  1005. : "&nbsp;"
  1006. }}
  1007. </span>
  1008. </el-col>
  1009. <el-col :span="2">
  1010. <span style="color: #d42426; font-weight: bold">
  1011. {{
  1012. reslistitem.result.jypremium
  1013. ? "¥" + reslistitem.result.jypremium
  1014. : "&nbsp;"
  1015. }}
  1016. </span>
  1017. </el-col>
  1018. </el-row>
  1019. <template>
  1020. <!-- <div style="margin:20px 0 0 100px;" v-if="reslistitem.checked && reslistitem.agreementId"> -->
  1021. <span v-if="reslistitem.checked &&
  1022. reslistitem.agreementId &&
  1023. reslistitem.underwritingDescription
  1024. " style="margin: 20px 20px 0 100px; display: inline-block">{{ reslistitem.underwritingDescription
  1025. }}</span>
  1026. <!-- </div> -->
  1027. </template>
  1028. </div>
  1029. </div>
  1030. <div class="coll" v-else>
  1031. <div v-loading.fullscreen.lock="loading" class="hovers" v-for="(reslistitem, reslistindex) in totalCompanyList"
  1032. :key="reslistindex">
  1033. <el-row>
  1034. <el-col :span="1" style="margin-left: 20px">
  1035. <el-checkbox v-model="reslistitem.checked" :disabled="reslistitem.disabled" @change="(event) =>
  1036. initchange(
  1037. event,
  1038. reslistitem.id,
  1039. reslistitem.cnName,
  1040. reslistindex
  1041. )
  1042. "></el-checkbox>
  1043. </el-col>
  1044. <el-col :span="3">
  1045. <img :src="reslistitem.logo" alt style="
  1046. width: 30px;
  1047. height: 30px;
  1048. vertical-align: middle;
  1049. margin-left: 20px;
  1050. " />
  1051. <span>{{ reslistitem.namesimple }}</span>
  1052. </el-col>
  1053. <el-col :span="4">
  1054. <el-select size="small" v-if="reslistitem.isTaxSource && reslistitem.isTaxSource == '1'
  1055. " :disabled="true" placeholder="默认" style="width: 230px" v-model="isTaxSourceModel"
  1056. :clearable="true"></el-select>
  1057. <el-select size="small" v-else :disabled="!reslistitem.checked" v-model="reslistitem.agreementId"
  1058. placeholder="请选择协议" style="width: 230px" :clearable="true" @change="(val) =>
  1059. agreementChange(
  1060. val,
  1061. reslistitem.agreement,
  1062. reslistindex,
  1063. reslistitem
  1064. )
  1065. ">
  1066. <div v-for="(
  1067. agreementitem, agreementindex
  1068. ) in reslistitem.agreement" :key="agreementindex">
  1069. <div v-if="agreementitem.licenseNo &&
  1070. agreementitem.licenseNo.length > 0 &&
  1071. carInfo.licenseNo.length > 0
  1072. ? agreementitem.licenseNo.includes(
  1073. carInfo.licenseNo.slice(0, 2)
  1074. )
  1075. : 'true'
  1076. ">
  1077. <!-- <el-option :label="agreementitem.agreementName" :value="agreementitem.id"
  1078. :disabled="agreementitem.disabled"></el-option> -->
  1079. <el-option
  1080. :label="agreementitem.jobDescription ? agreementitem.businessDescription + '(' + agreementitem.jobDescription + ')' : agreementitem.businessDescription"
  1081. :value="agreementitem.id" :disabled="agreementitem.disabled">{{ agreementitem.jobDescription ?
  1082. agreementitem.businessDescription + '(' + agreementitem.jobDescription + ')' :
  1083. agreementitem.businessDescription }}</el-option>
  1084. </div>
  1085. </div>
  1086. </el-select>
  1087. </el-col>
  1088. <!-- <el-col :span="3" style="margin-right: 20px;">
  1089. <el-select :disabled="!reslistitem.checked" size="small" v-model="reslistitem.isInquiryNow" @change="inquiryNowListChange">
  1090. <el-option v-for="(item, index) in inquiryNowList" :key="index" :label="item.costsDescription" :value="item.id"></el-option>
  1091. </el-select>
  1092. </el-col> -->
  1093. <el-col :span="3">
  1094. <div v-show="reslistitem.quoteCode == '0'">
  1095. <span>未报价</span>
  1096. </div>
  1097. <div v-show="reslistitem.quoteCode == '1'">
  1098. <i style="color: #d42426" class="el-icon-loading"></i>
  1099. </div>
  1100. <div class="dis f-c" v-show="reslistitem.quoteCode == '200'">
  1101. <span style="color: #d42426; font-weight: bold">
  1102. ¥{{ reslistitem.result.sumPermium }}
  1103. </span>
  1104. <span style="font-size: 13px; color: #2d4d89" class="m-top-5">优惠:{{ reslistitem.result.sumExportFee
  1105. }}</span>
  1106. </div>
  1107. </el-col>
  1108. <el-col :span="3" v-show="reslistitem.quoteCode == '200'">
  1109. <div class="dis f-c">
  1110. <span style="color: #d42426; font-weight: bold">
  1111. ¥{{ reslistitem.result.jqPremium }}
  1112. </span>
  1113. <span v-if="reslistitem.result.jqPremium" style="font-size: 13px; color: #2d4d89" class="m-top-5">优惠:{{
  1114. reslistitem.result.jqExportFee }}</span>
  1115. </div>
  1116. </el-col>
  1117. <el-col :span="3" v-show="reslistitem.quoteCode == '200'">
  1118. <span style="color: #d42426; font-weight: bold">
  1119. ¥{{ reslistitem.result.taxAmount }}
  1120. </span>
  1121. </el-col>
  1122. <el-col :span="3" v-show="reslistitem.quoteCode == '200'">
  1123. <div class="dis f-c">
  1124. <span style="color: #d42426; font-weight: bold">
  1125. ¥{{ reslistitem.result.syPremium }}
  1126. </span>
  1127. <span v-if="reslistitem.result.syPremium" style="font-size: 13px; color: #2d4d89" class="m-top-5">优惠:{{
  1128. reslistitem.result.syExportFee }}</span>
  1129. </div>
  1130. </el-col>
  1131. <el-col :span="2" v-if="reslistitem.quoteCode == '200'" style="">
  1132. <div class="dis f-c">
  1133. <span style="color: #d42426; font-weight: bold">
  1134. {{
  1135. reslistitem.result.jyPremium
  1136. ? "¥" + reslistitem.result.jyPremium
  1137. : "无"
  1138. }}
  1139. </span>
  1140. <span v-if="reslistitem.result.jyPremium" style="font-size: 13px; color: #2d4d89" class="m-top-5">优惠:{{
  1141. reslistitem.result.noExportFee }}</span>
  1142. </div>
  1143. </el-col>
  1144. <el-col :span="24" v-show="reslistitem.quoteCode == '200' &&
  1145. reslistitem.result.feeNoDescription
  1146. ">
  1147. <div class="flex offer-time" style="color: #d42426">
  1148. <span>该车未匹配销管费用,不建议投保!</span>
  1149. <el-tooltip class="item" effect="dark" content="费用匹配错误信息" placement="top">
  1150. <i class="el-icon-s-goods" @click="
  1151. open3(
  1152. reslistitem.namesimple + '优惠信息',
  1153. reslistitem.result.feeNoDescription
  1154. )
  1155. " style="
  1156. font-size: 20px;
  1157. transform: scale(0.8);
  1158. vertical-align: middle;
  1159. " :disabled="reslistitem.quoteCode == '200' &&
  1160. reslistitem.result.feeNoDescription
  1161. "></i>
  1162. </el-tooltip>
  1163. </div>
  1164. </el-col>
  1165. <el-col :span="24" v-show="reslistitem.quoteCode != '200' &&
  1166. reslistitem.quoteCode != '0' &&
  1167. reslistitem.quoteCode != '1'
  1168. ">
  1169. <div class="flex j-s offer-time" style="color: #d42426">
  1170. {{
  1171. reslistitem.msg.length > 500
  1172. ? reslistitem.msg.slice(0, 500)
  1173. : reslistitem.msg
  1174. }}
  1175. </div>
  1176. </el-col>
  1177. </el-row>
  1178. <div class="flex j-s offer-time" v-if="reslistitem.quoteCode == '200'">
  1179. <div style="line-height: 25px">
  1180. 保险期限:
  1181. <span v-show="reslistitem.result.startDateJq">
  1182. 【交强险】
  1183. <span>
  1184. {{ reslistitem.result.startDateJq }} -
  1185. {{ reslistitem.result.endDateJq }}
  1186. </span>
  1187. </span>
  1188. <span v-show="reslistitem.result.startDateSy" style="margin-left: 20px">
  1189. 【商业险】
  1190. <span>
  1191. {{ reslistitem.result.startDateSy }} -
  1192. {{ reslistitem.result.endDateSy }}
  1193. </span>
  1194. </span>
  1195. <span @click="syncData(reslistitem.result)">
  1196. <el-tooltip class="item" effect="dark" content="使用此时间" placement="top">
  1197. <i style="color: red" class="el-icon-time"></i>
  1198. </el-tooltip>
  1199. </span>
  1200. <div>
  1201. <span v-show="reslistitem.result.JqExportFee">
  1202. 交强出口费用<span>{{
  1203. reslistitem.result.JqExportFee
  1204. }}</span>
  1205. </span>
  1206. <span v-show="reslistitem.result.syExportFee">
  1207. 商业出口费用<span>{{
  1208. reslistitem.result.syExportFee
  1209. }}</span>
  1210. </span>
  1211. <span v-show="reslistitem.result.noExportFee">
  1212. 非车出口费用<span>
  1213. {{ reslistitem.result.noExportFee }}</span>
  1214. </span>
  1215. </div>
  1216. <div>
  1217. <span v-if="reslistitem.namesimple == '永诚财险'">
  1218. 光博分:
  1219. <span>
  1220. {{
  1221. reslistitem.result.ilogPreUdwMess
  1222. ? reslistitem.result.ilogPreUdwMess
  1223. : "无"
  1224. }}
  1225. </span>
  1226. </span>
  1227. <span v-else>
  1228. 评分:
  1229. <span>
  1230. {{
  1231. reslistitem.result.ilogPreUdwMess
  1232. ? reslistitem.result.ilogPreUdwMess
  1233. : "无"
  1234. }}
  1235. </span>
  1236. </span>
  1237. <span v-if="reslistitem.result.jqScore" class="marginL">
  1238. 交强类型评分:
  1239. <span>{{ reslistitem.result.jqScore }}</span>
  1240. </span>
  1241. <span v-if="reslistitem.result.syScore" class="marginL">
  1242. 商业类型评分:
  1243. <span>{{ reslistitem.result.syScore }}</span>
  1244. </span>
  1245. <span v-if="reslistitem.result.lossRation" class="marginL">
  1246. 总赔付率:
  1247. <span>{{ reslistitem.result.lossRation }}</span>
  1248. </span>
  1249. <span v-if="reslistitem.result.jqLossRation" class="marginL">
  1250. 交强赔付率:
  1251. <span>{{ reslistitem.result.jqLossRation }}</span>
  1252. </span>
  1253. <span v-if="reslistitem.result.syLossRation" class="marginL">
  1254. 商业赔付率:
  1255. <span>{{ reslistitem.result.syLossRation }}</span>
  1256. </span>
  1257. <span v-if="reslistitem.result.totalAdjustRate" class="marginL">
  1258. 自主定价系数:
  1259. <span>{{ reslistitem.result.totalAdjustRate }}</span>
  1260. </span>
  1261. <span v-if="reslistitem.result.jgAdjustRate" class="marginL">
  1262. 交强折扣系数:
  1263. <span>{{ reslistitem.result.jgAdjustRate }}</span>
  1264. </span>
  1265. <span v-if="reslistitem.result.syAdjustRate" class="marginL">
  1266. 商业折扣系数:
  1267. <span>{{ reslistitem.result.syAdjustRate }}</span>
  1268. </span>
  1269. <span v-if="reslistitem.result.initialProposalDiscount" class="marginL">
  1270. 期望折扣:
  1271. <span>{{ reslistitem.result.initialProposalDiscount }}</span>
  1272. </span>
  1273. <span v-if="reslistitem.result.jqRenewal" class="marginL">
  1274. 交强续保:
  1275. <span>
  1276. {{
  1277. reslistitem.result.jqRenewal
  1278. ? reslistitem.result.jqRenewal
  1279. : "无"
  1280. }}
  1281. </span>
  1282. </span>
  1283. <span v-if="reslistitem.result.syRenewal" class="marginL">
  1284. 商业续保:
  1285. <span>
  1286. {{
  1287. reslistitem.result.syRenewal
  1288. ? reslistitem.result.syRenewal
  1289. : "无"
  1290. }}
  1291. </span>
  1292. </span>
  1293. <span v-if="reslistitem.result.jqClaims" class="marginL">
  1294. 交强出险次数:
  1295. <span>
  1296. {{
  1297. reslistitem.result.jqClaims
  1298. ? reslistitem.result.jqClaims
  1299. : "无"
  1300. }}
  1301. </span>
  1302. </span>
  1303. <span v-if="reslistitem.result.syClaims" class="marginL">
  1304. 商业出险次数:
  1305. <span>
  1306. {{
  1307. reslistitem.result.syClaims
  1308. ? reslistitem.result.syClaims
  1309. : "无"
  1310. }}
  1311. </span>
  1312. </span>
  1313. <span v-if="reslistitem.namesimple == '紫金财险' &&
  1314. reslistitem.result.ubiPredictedInfoScore
  1315. " class="marginL">
  1316. 紫金能源车(鼎然-车辆风险评分):
  1317. <span>{{ reslistitem.result.ubiPredictedInfoScore }}</span>
  1318. </span>
  1319. <span v-if="reslistitem.result.iszdj &&
  1320. reslistitem.result.iszdj == '1'
  1321. ">真单交</span>
  1322. <span v-if="reslistitem.result.iszdj &&
  1323. reslistitem.result.iszdj == '0'
  1324. ">假单交</span>
  1325. </div>
  1326. </div>
  1327. <div style="text-align: right">
  1328. <div style="color: #2d4d89">
  1329. <el-tooltip class="item" effect="dark" content="上年信息" placement="top">
  1330. <i class="el-icon-chat-dot-round" @click="
  1331. open2(reslistitem.namesimple, reslistitem.lastYearMsg)
  1332. " style="
  1333. font-size: 20px;
  1334. transform: scale(0.8);
  1335. vertical-align: middle;
  1336. " :disabled="reslistitem.namesimple == '众安财险' &&
  1337. reslistitem.result.tips == '需要验车'
  1338. " v-show="reslistitem.quoteCode == '200' &&
  1339. reslistitem.lastYearMsg
  1340. "></i>
  1341. </el-tooltip>
  1342. <el-tooltip class="item" effect="dark" content="预核保信息" placement="top">
  1343. <i class="el-icon-chat-dot-round" @click="
  1344. openPredictInfo(
  1345. reslistitem.namesimple,
  1346. reslistitem.predictInfo
  1347. )
  1348. " style="
  1349. font-size: 20px;
  1350. transform: scale(0.8);
  1351. vertical-align: middle;
  1352. " v-show="reslistitem.quoteCode == '200' &&
  1353. reslistitem.predictInfo &&
  1354. reslistitem.predictInfo.length > 0 &&
  1355. reslistitem.namesimple == '中国人寿'
  1356. "></i>
  1357. </el-tooltip>
  1358. <el-button :disabled="reslistitem.namesimple == '众安财险' &&
  1359. reslistitem.result.tips == '需要验车'
  1360. " v-show="reslistitem.quoteCode == '200' &&
  1361. !('editStatus' in reslistitem.result)
  1362. " type="text" size="small" style="color: #2d4d89; font-size: 14px"
  1363. @click="hbsubmitdialog(reslistitem)">下单</el-button>
  1364. <el-button v-show="reslistitem.quoteCode == '200'" type="text" size="small"
  1365. style="color: #2d4d89; font-size: 14px"
  1366. @click="qoutedetail(reslistitem.result.companyId)">查看详情</el-button>
  1367. </div>
  1368. <div>
  1369. <el-button v-show="reslistitem.quoteCode == '200'" type="text" size="small" style="font-size: 14px"
  1370. @click="bjdpreview(reslistitem.result.companyId)">报价单</el-button>
  1371. <el-button type="text" size="small" style="font-size: 14px"
  1372. @click="Payment(reslistitem.result.companyId, reslistitem)" v-show="reslistitem.orderstatus == '2' &&
  1373. !('editStatus' in reslistitem.result)
  1374. ">付款码</el-button>
  1375. <!-- <el-button type="text" size="small" style="font-size: 14px"
  1376. @click="signature(reslistitem.result.companyId)" v-show="reslistitem.orderstatus == '2' &&
  1377. !('editStatus' in reslistitem.result) && reslistitem.namesimple == '平安财险'
  1378. ">生成签章</el-button> -->
  1379. </div>
  1380. </div>
  1381. </div>
  1382. <template>
  1383. <!-- <div style="margin:20px 0 0 100px;" v-if="reslistitem.checked && reslistitem.agreementId"> -->
  1384. <span v-if="reslistitem.checked &&
  1385. reslistitem.agreementId &&
  1386. reslistitem.underwritingDescription
  1387. " style="margin: 20px 20px 0 100px; display: inline-block">{{ reslistitem.underwritingDescription}}</span>
  1388. <!-- </div> -->
  1389. </template>
  1390. <template v-if="reslistitem.namesimple == '平安财险' &&
  1391. reslistitem.checked &&
  1392. reslistitem.agreementId
  1393. ">
  1394. <div class="flex f-c Driving-risk">
  1395. <div v-for="(val, index) in pinganInsuranceData" :key="index" >
  1396. <el-form :inline="true" :model="accidentFormPA[index-1]" class="demo-form-inline" size="small"
  1397. style="font-weight: bold;margin-top:15px ">
  1398. <el-form-item :label="index=='1'?'财意险':index=='2'?'小微险':'组合险'" style="margin-right: 30px">
  1399. <el-select clearable v-model="accidentFormPA[index-1].pingantemplateSelection" placeholder="未选择" @clear="clearAccidentFormPA(index-1,)"
  1400. @change="pinganInsuranceChange($event,index-1,val)">
  1401. <el-option v-for="(item, index1) in val" :key="index1" :label="item.projectName"
  1402. :value="item.projectName"></el-option>
  1403. </el-select>
  1404. </el-form-item>
  1405. <el-form-item label="选择份数" style="margin-right: 50px" v-if="index ==1||index ==2">
  1406. <el-input-number v-model="accidentFormPA[index-1].quantity" :disabled="!accidentFormPA[index-1].pinganInsurancetype" @change="numberCopieschangePA($event,index-1)" :min="1" :max="accidentFormPA[index-1].sellListSize"
  1407. controls-position="right"></el-input-number>
  1408. </el-form-item>
  1409. <el-form-item label="保费:" v-if="index ==1||index ==2">
  1410. <span>{{ accidentFormPA[index-1].premium || 0 }}&ensp;元</span>
  1411. </el-form-item>
  1412. </el-form>
  1413. <el-table class="pinganTable" style="margin-top: 20px" size="small" :data="accidentFormPA[index-1].pinganInsuranceDataTable" border
  1414. v-if="accidentFormPA[index-1].pingantemplateSelection" highlight-current-row :header-cell-style="{
  1415. background: '#F7F7F9 ',
  1416. fontWeight: '700',
  1417. color: '#333333',
  1418. }" ref="RsTable" @select="(selections,row)=>{PADrivingCheckbox(selections,row,reslistitem.agreementId,index-1)}">
  1419. <el-table-column align="center" width="55" label="选择" v-if="index ==1||index ==2">
  1420. <template slot-scope="scope">
  1421. <el-radio class="radio" v-model="accidentFormPA[index-1].pinganInsurancetype" :label="scope.row.code"
  1422. @click.native.stop.prevent="PADrivingRadio(scope.row,reslistitem.agreementId,index-1)">&nbsp;</el-radio>
  1423. </template>
  1424. </el-table-column>
  1425. <el-table-column
  1426. type="selection"
  1427. v-else
  1428. width="55">
  1429. </el-table-column>
  1430. <el-table-column prop="name" label="方案名称" align="center"></el-table-column>
  1431. <el-table-column prop="code" label="方案代码" align="center"></el-table-column>
  1432. <el-table-column prop="premium" label="保费 (元)/每份" align="center">
  1433. </el-table-column>
  1434. <el-table-column prop="quantity" label="份数" align="center" v-if="index ==3">
  1435. <template slot-scope="scope">
  1436. <el-input-number size='small' v-model="scope.row.quantity" :min="1" :max="Number(scope.row.sellListSize)"
  1437. controls-position="right"></el-input-number>
  1438. </template>
  1439. </el-table-column>
  1440. <el-table-column
  1441. label="操作"
  1442. width="100">
  1443. <template slot-scope="scope">
  1444. <el-button type="text" size="small" @click="pinganDetail(scope.row,reslistitem.agreementId)">查看</el-button>
  1445. </template>
  1446. </el-table-column>
  1447. </el-table>
  1448. </div>
  1449. </div>
  1450. </template>
  1451. <template v-if="reslistitem.namesimple == '泰康财险' &&
  1452. reslistitem.checked &&
  1453. reslistitem.agreementId &&
  1454. isLetter !== '3'
  1455. ">
  1456. <div class="flex f-c Driving-risk">
  1457. <el-form :inline="true" :model="accidentFormTk" class="demo-form-inline" size="small"
  1458. style="font-weight: bold; margin-top: 15px">
  1459. <el-form-item label="意外险类型" style="margin-right: 30px">
  1460. <el-select clearable v-model="taikangtemplateSelection" placeholder="未选择" @clear="clearAccidentFormTk"
  1461. @change="taikangInsuranceChange">
  1462. <el-option v-for="(item, index) in taikangaccidentDataList" :key="index" :label="item.projectName"
  1463. :value="item.projectCode"></el-option>
  1464. </el-select>
  1465. </el-form-item>
  1466. <el-form-item label="选择份数" style="margin-right: 50px">
  1467. <el-input-number v-model="accidentFormTk.quantity" @change="numberCopieschangeTk" :min="1"
  1468. controls-position="right"></el-input-number>
  1469. <!-- <span style="margin-left: 5px;">份</span> -->
  1470. </el-form-item>
  1471. <el-form-item label="保费:">
  1472. <span>{{ accidentFormTk.sumPremium }}&ensp;元</span>
  1473. </el-form-item>
  1474. </el-form>
  1475. <el-table v-if="taikangtemplateSelection" size="small" :data="taikangInsuranceDataTable" border
  1476. ref="expandTable" highlight-current-row :header-cell-style="{
  1477. background: '#F7F7F9',
  1478. fontWeight: '700',
  1479. color: '#333333',
  1480. }">
  1481. <el-table-column prop="name" label="保险责任" align="center"></el-table-column>
  1482. <el-table-column prop="amount" label="每座保额 (元)/每份" align="center"></el-table-column>
  1483. <el-table-column prop="sumAmount" label="每车保额 (元)/每份" align="center"></el-table-column>
  1484. <el-table-column prop="premium" label="责任保费 (元)/每份" align="center"></el-table-column>
  1485. </el-table>
  1486. </div>
  1487. </template>
  1488. <template v-if="reslistitem.namesimple == '恒邦财险' &&
  1489. reslistitem.checked &&
  1490. reslistitem.agreementId &&
  1491. isLetter !== '3'
  1492. ">
  1493. <div class="flex f-c Driving-risk">
  1494. <div class="dis a-c" style="margin: 15px 0">
  1495. <span style="margin-right: 15px; font-weight: bold">选择意外险</span>
  1496. <el-select style="width: 250px; margin-right: 60px" filterable size="small" clearable
  1497. v-model="hengbangtemplateSelection" placeholder="未选择" @clear="clearAccidentFormHB"
  1498. @change="hengbangInsuranceChange">
  1499. <el-option v-for="(item, index) in hengbangInsuranceData" :key="index" :label="item.projectName"
  1500. :value="item.projectCode"></el-option>
  1501. </el-select>
  1502. 保费:
  1503. <b>{{
  1504. hengbangaccidentalDrivingVo.sumPremium || 0
  1505. }}&ensp;元</b>
  1506. </div>
  1507. <el-table size="small" :data="hengbangInsuranceDataTable" border v-if="hengbangtemplateSelection"
  1508. ref="RsTable" highlight-current-row :header-cell-style="{
  1509. background: '#F7F7F9 ',
  1510. fontWeight: '700',
  1511. color: '#333333',
  1512. }">
  1513. <el-table-column prop="name" label="险种名称" align="center"></el-table-column>
  1514. <el-table-column prop="amount" label="保额" align="center"></el-table-column>
  1515. <!-- <el-table-column prop="sumgrosspremium" label="保费 (元)/每份" align="center">
  1516. <template slot-scope="scope">
  1517. <span>¥{{ scope.row.sumgrosspremium }}</span>
  1518. </template>
  1519. </el-table-column>
  1520. <el-table-column label="份数" align="center">
  1521. <template slot-scope="scope">
  1522. <span>{{ scope.row.quantity }}</span>
  1523. </template>
  1524. </el-table-column> -->
  1525. </el-table>
  1526. </div>
  1527. </template>
  1528. <template v-if="reslistitem.namesimple == '华农财险' &&
  1529. reslistitem.checked &&
  1530. reslistitem.agreementId &&
  1531. isLetter !== '3'
  1532. ">
  1533. <div class="flex f-c Driving-risk">
  1534. <el-form :inline="true" :model="accidentFormHN" class="demo-form-inline"
  1535. style="font-weight: bold; margin-top: 15px" size="small">
  1536. <el-form-item label="意外险类型:" style="margin-right: 30px">
  1537. <el-select clearable v-model="accidentFormHN.accidentType" placeholder="未选择"
  1538. @clear="clearAccidentFormHN" @change="huanongInsuranceChange">
  1539. <el-option v-for="(item, index) in huanongInsuranceData" :key="index" :label="item.projectName"
  1540. :value="item.projectCode"></el-option>
  1541. </el-select>
  1542. </el-form-item>
  1543. <el-form-item label="选择份数" style="margin-right: 30px">
  1544. <el-input-number v-model="accidentFormHN.quantity" :min="1"
  1545. controls-position="right"></el-input-number>
  1546. <!-- <span style="margin-left: 5px;">份</span> -->
  1547. </el-form-item>
  1548. </el-form>
  1549. <el-table v-if="accidentFormHN.accidentType" size="small" :data="huanongInsuranceDataTable" border
  1550. ref="expandTable" highlight-current-row :header-cell-style="{
  1551. background: '#F7F7F9 ',
  1552. fontWeight: '700',
  1553. color: '#333333',
  1554. }">
  1555. <el-table-column prop="name" label="保险责任" align="center"></el-table-column>
  1556. <el-table-column prop="amount" label="保额" align="center">
  1557. <template slot-scope="scope">
  1558. <el-input v-model="scope.row.amount" placeholder="请输入内容" size="small" disabled></el-input>
  1559. </template>
  1560. </el-table-column>
  1561. </el-table>
  1562. </div>
  1563. </template>
  1564. <template v-if="reslistitem.namesimple == '太平财险' &&
  1565. reslistitem.checked &&
  1566. reslistitem.agreementId &&
  1567. isLetter !== '3'
  1568. ">
  1569. <div class="flex f-c Driving-risk">
  1570. <div class="dis a-c" style="margin: 15px 0">
  1571. <span style="margin-right: 15px; font-weight: bold">选择意外险</span>
  1572. <el-select style="width: 250px; margin-right: 60px" filterable size="small" clearable
  1573. v-model="taipingtemplateSelection" placeholder="未选择" @clear="clearAccidentFormTP"
  1574. @change="taipingInsuranceChange">
  1575. <el-option v-for="(item, index) in taipingInsuranceData" :key="index" :label="item.projectName"
  1576. :value="item.projectCode"></el-option>
  1577. </el-select>
  1578. 每份价税合计:
  1579. <b>{{ taipingaccidentalDrivingVo.sumPremium || 0 }}&ensp;元</b>
  1580. </div>
  1581. <el-table size="small" :data="taipingInsuranceDataTable" border v-if="taipingtemplateSelection"
  1582. ref="RsTable" highlight-current-row :header-cell-style="{
  1583. background: '#F7F7F9 ',
  1584. fontWeight: '700',
  1585. color: '#333333',
  1586. }">
  1587. <el-table-column prop="name" label="险种名称" align="center"></el-table-column>
  1588. <el-table-column prop="amount" label="险种金额" align="center"></el-table-column>
  1589. </el-table>
  1590. </div>
  1591. </template>
  1592. <template v-if="reslistitem.namesimple == '安盛天平' &&
  1593. reslistitem.checked &&
  1594. reslistitem.agreementId &&
  1595. isLetter !== '3'
  1596. ">
  1597. <div class="flex f-c Driving-risk">
  1598. <div class="dis a-c" style="margin-top: 15px">
  1599. <span style="margin-right: 15px; font-weight: bold">意外险类型</span>
  1600. <el-select style="width: 250px" size="small" clearable v-model="anshengtemplateSelection"
  1601. placeholder="未选择" @clear="clearAccidentFormAS" @change="anshengInsuranceChange">
  1602. <el-option v-for="(item, index) in anshengInsuranceData" :key="index"
  1603. :label="item.projectCode + ' ' + item.projectName" :value="item.projectCode"></el-option>
  1604. </el-select>
  1605. </div>
  1606. <el-table style="margin-top: 20px" size="small" :data="anshengInsuranceDataTable" border
  1607. v-if="anshengtemplateSelection" ref="RsTable" highlight-current-row :header-cell-style="{
  1608. background: '#F7F7F9 ',
  1609. fontWeight: '700',
  1610. color: '#333333',
  1611. }">
  1612. <el-table-column align="center" width="55" label="选择">
  1613. <template slot-scope="scope">
  1614. <el-radio class="radio" v-model="anshengInsurancetype" :label="scope.row.projectCode"
  1615. @click.native.stop.prevent="ASDrivingRadio(scope.row)">&nbsp;</el-radio>
  1616. </template>
  1617. </el-table-column>
  1618. <el-table-column prop="projectName" label="方案名称" align="center"></el-table-column>
  1619. <el-table-column prop="projectCode" label="方案代码" align="center"></el-table-column>
  1620. <el-table-column prop="quantity" label="份数" align="center">
  1621. </el-table-column>
  1622. </el-table>
  1623. </div>
  1624. </template>
  1625. <template v-if="reslistitem.namesimple == '中国人寿' &&
  1626. reslistitem.checked &&
  1627. reslistitem.agreementId &&
  1628. isLetter !== '3'
  1629. ">
  1630. <div style="margin: 15px 0 15px 100px">
  1631. <span>商业险折扣:</span>
  1632. <el-input style="width: 220px" :disabled="!lastCompanyId" size="small" v-model="reslistitem.discount"
  1633. placeholder="请输入内容" @input="
  1634. reslistitem.discount = reslistitem.discount.replace(
  1635. /[^\d.]/g,
  1636. ''
  1637. )
  1638. "></el-input>
  1639. </div>
  1640. <div class="flex f-c Driving-risk">
  1641. <div class="dis a-c">
  1642. <span style="margin-right: 15px; font-weight: bold">选择意外险</span>
  1643. <el-select style="width: 250px" filterable size="small" clearable v-model="renshoutemplateSelection"
  1644. placeholder="未选择" @clear="clearAccidentFormRS" @change="renshouInsuranceChange">
  1645. <el-option v-for="(item, index) in renshouInsuranceData" :key="index" :label="item.projectName"
  1646. :value="item.projectCode"></el-option>
  1647. </el-select>
  1648. </div>
  1649. <el-table size="small" style="margin-top: 20px" :data="renshouInsuranceDataTable" border
  1650. v-if="renshoutemplateSelection" @row-click="RSDrivingChange" ref="RsTable" highlight-current-row
  1651. :header-cell-style="{
  1652. background: '#F7F7F9 ',
  1653. fontWeight: '700',
  1654. color: '#333333',
  1655. }">
  1656. <el-table-column prop="name" label="方案名称" align="center"></el-table-column>
  1657. <el-table-column prop="premium" label="保费 (元)起" align="center">
  1658. <template slot-scope="scope">
  1659. <span>¥{{ scope.row.premium }}</span>
  1660. </template>
  1661. </el-table-column>
  1662. <el-table-column label="份数" align="center">
  1663. <template slot-scope="scope">
  1664. <span>{{ scope.row.quantity }}</span>
  1665. </template>
  1666. </el-table-column>
  1667. </el-table>
  1668. </div>
  1669. </template>
  1670. <template v-if="reslistitem.namesimple == '诚泰财险' &&
  1671. reslistitem.checked &&
  1672. reslistitem.agreementId &&
  1673. isLetter !== '3'
  1674. ">
  1675. <div class="flex a-c">
  1676. <div style="margin: 15px 0 15px 100px">
  1677. <span>商业险折扣:</span>
  1678. <el-input style="width: 220px" :disabled="!lastCompanyId" size="small" v-model="reslistitem.discount"
  1679. placeholder="请输入内容" @input="
  1680. reslistitem.discount = reslistitem.discount.replace(
  1681. /[^\d.]/g,
  1682. ''
  1683. )
  1684. "></el-input>
  1685. </div>
  1686. <div style="margin: 15px 0 15px 100px">
  1687. <span>自主定价系数:</span>
  1688. <el-input style="width: 220px" size="small" :disabled="!lastCompanyId" v-model="reslistitem.coefficient"
  1689. placeholder="请输入内容"></el-input>
  1690. </div>
  1691. </div>
  1692. </template>
  1693. <template v-if="reslistitem.namesimple == '众安财险' &&
  1694. reslistitem.checked &&
  1695. reslistitem.agreementId &&
  1696. isLetter !== '3'
  1697. ">
  1698. <div class="flex f-c Driving-risk">
  1699. <div class="dis a-c" style="margin: 15px 0">
  1700. <span style="margin-right: 15px; font-weight: bold">选择意外险</span>
  1701. <el-select style="width: 250px" filterable size="small" clearable v-model="zhongantemplateSelection"
  1702. placeholder="未选择" @clear="clearAccidentFormZA" @change="zhonganInsuranceChange">
  1703. <el-option v-for="(item, index) in zhonganInsuranceData" :key="index" :label="item.projectName"
  1704. :value="item.projectCode"></el-option>
  1705. </el-select>
  1706. <!-- 保费: <b>{{ zhonganaccidentalDrivingVo.sumgrosspremium || 0}}&ensp;元</b> -->
  1707. </div>
  1708. <el-table size="small" :data="zhonganInsuranceDataTable" border v-if="zhongantemplateSelection"
  1709. @row-click="ZADrivingChange" ref="RsTable" highlight-current-row :header-cell-style="{
  1710. background: '#F7F7F9 ',
  1711. fontWeight: '700',
  1712. color: '#333333',
  1713. }">
  1714. <el-table-column prop="name" label="险种名称" align="center"></el-table-column>
  1715. <el-table-column prop="amount" label="险种金额" align="center"></el-table-column>
  1716. </el-table>
  1717. </div>
  1718. </template>
  1719. <template v-if="reslistitem.namesimple == '紫金财险' &&
  1720. reslistitem.checked &&
  1721. reslistitem.agreementId &&
  1722. isLetter !== '3'
  1723. ">
  1724. <div style="margin: 15px 0 15px 100px">
  1725. <span>自主定价系数:</span>
  1726. <el-input style="width: 220px" size="small" v-model="reslistitem.coefficient"
  1727. placeholder="请输入内容"></el-input>
  1728. </div>
  1729. <div class="flex f-c Driving-risk">
  1730. <div class="dis a-c" style="margin-bottom: 15px">
  1731. <span style="margin-right: 15px; font-weight: bold">选择意外险</span>
  1732. <el-select style="width: 250px" filterable multiple size="small" clearable
  1733. v-model="zijintemplateSelection" placeholder="未选择" @clear="clearAccidentFormZJ"
  1734. @change="zijinInsuranceChange">
  1735. <el-option v-for="(item, index) in ziJinInsuranceData" :key="index" :label="item.projectName"
  1736. :value="item.projectCode"></el-option>
  1737. </el-select>
  1738. </div>
  1739. <el-table size="small" :data="zijinInsuranceDataTable" border v-if="zijintemplateSelection"
  1740. @select="CheckboxChange" filterable ref="expandTable" highlight-current-row :header-cell-style="{
  1741. background: '#F7F7F9 ',
  1742. fontWeight: '700',
  1743. color: '#333333',
  1744. }">
  1745. <el-table-column type="selection" width="55"></el-table-column>
  1746. <el-table-column prop="projectName" label="方案名称" align="center"></el-table-column>
  1747. <el-table-column prop="sumAmount" label="总保额 (元)/每份" align="center"></el-table-column>
  1748. <el-table-column prop="sumPremium" label="保费 (元)/每份" align="center">
  1749. <template slot-scope="scope">
  1750. <span>¥{{ scope.row.sumPremium }}</span>
  1751. </template>
  1752. </el-table-column>
  1753. <el-table-column prop="quantity" label="份数" align="center">
  1754. <template slot-scope="scope">
  1755. <el-input-number v-model="scope.row.quantity" :min="1" size="small"
  1756. controls-position="right"></el-input-number>
  1757. </template>
  1758. </el-table-column>
  1759. <el-table-column prop="Totalprice" label="总保费 (元)" align="center">
  1760. <template slot-scope="scope">
  1761. <span v-if="scope.row.quantity">{{
  1762. scope.row.sumPremium * scope.row.quantity
  1763. }}</span>
  1764. <span v-else>{{ scope.row.sumPremium }}</span>
  1765. </template>
  1766. </el-table-column>
  1767. </el-table>
  1768. </div>
  1769. </template>
  1770. <template v-if="reslistitem.namesimple == '永诚财险' &&
  1771. reslistitem.checked &&
  1772. reslistitem.agreementId &&
  1773. isLetter !== '3'
  1774. ">
  1775. <div class="flex f-c Driving-risk">
  1776. <el-form :inline="true" :model="accidentForm" class="demo-form-inline" size="small"
  1777. style="font-weight: bold; margin-top: 15px">
  1778. <el-form-item label="意外险类型" style="margin-right: 30px">
  1779. <el-select clearable v-model="yongchengtemplateSelection" placeholder="未选择" @clear="clearAccidentForm"
  1780. @change="yongchengInsuranceChange">
  1781. <el-option v-for="(item, index) in yongchengaccidentDataList" :key="index" :label="item.projectName"
  1782. :value="item.projectCode"></el-option>
  1783. </el-select>
  1784. </el-form-item>
  1785. <el-form-item label="选择份数" style="margin-right: 50px">
  1786. <el-input-number v-model="accidentForm.quantity" @change="numberCopieschange" :min="1"
  1787. controls-position="right"></el-input-number>
  1788. <!-- <span style="margin-left: 5px;">份</span> -->
  1789. </el-form-item>
  1790. <el-form-item label="保费:">
  1791. <span>{{ accidentForm.sumPremium }}&ensp;元</span>
  1792. </el-form-item>
  1793. </el-form>
  1794. <el-table v-if="yongchengtemplateSelection" size="small" :data="yongchengInsuranceDataTable" border
  1795. ref="expandTable" highlight-current-row :header-cell-style="{
  1796. background: '#F7F7F9',
  1797. fontWeight: '700',
  1798. color: '#333333',
  1799. }">
  1800. <el-table-column prop="name" label="保险责任" align="center"></el-table-column>
  1801. <el-table-column prop="amount" label="每座保额 (元)/每份" align="center"></el-table-column>
  1802. <el-table-column prop="sumAmount" label="每车保额 (元)/每份" align="center"></el-table-column>
  1803. <el-table-column prop="premium" label="责任保费 (元)/每份" align="center"></el-table-column>
  1804. </el-table>
  1805. </div>
  1806. </template>
  1807. <template v-if="reslistitem.namesimple == '国任财险' &&
  1808. reslistitem.checked &&
  1809. reslistitem.agreementId &&
  1810. isLetter !== '3'
  1811. ">
  1812. <!-- <div style="margin:10px 0 0 100px;">
  1813. <span style="margin-right:20px"> {{reslistitem.underwritingDescription}}</span>-->
  1814. <el-button type="text" style="margin: 10px 0 0 100px"
  1815. @click="contributingGuoRen(reslistitem.agreementId)">选择特约</el-button>
  1816. <!-- </div> -->
  1817. <div class="flex f-c Driving-risk">
  1818. <el-form :inline="true" :model="guoRenaccidentForm" class="demo-form-inline" size="small">
  1819. <el-form-item label="意外险类型" style="margin-right: 30px">
  1820. <el-select clearable placeholder="未选择" @clear="clearAccidentFormGr" @change="grcxchange"
  1821. v-model="guoRenaccidentForm.goodsCode">
  1822. <el-option v-for="(item, index) in guoRenaccidentDataList" :key="index" :label="item.projectName"
  1823. :value="item.projectCode"></el-option>
  1824. </el-select>
  1825. </el-form-item>
  1826. <el-form-item label=" ">
  1827. <el-select clearable v-model="guoRenaccidentForm.prodCode" @change="grcxchangeChild">
  1828. <el-option v-for="(item) in guoRenaccidentDataListChild" :key="item.projectCode"
  1829. :label="item.projectName" :value="item.projectCode"></el-option>
  1830. </el-select>
  1831. </el-form-item>
  1832. <el-form-item label="选择份数" style="margin-right: 30px">
  1833. <el-input-number v-model="guoRenaccidentForm.quantity" :min="1" controls-position="right"
  1834. @change="numberCopieschangeGR"></el-input-number>
  1835. <!-- <span style="margin-left: 5px;">份</span> -->
  1836. </el-form-item>
  1837. <el-form-item label="保费:">
  1838. <span>{{ guoRenaccidentForm.sumPremium }}&ensp;元</span>
  1839. </el-form-item>
  1840. </el-form>
  1841. <el-table v-if="guoRenaccidentForm.prodCode" size="small" :data="guoRenInsuranceDataTable" border
  1842. ref="expandTable" highlight-current-row :header-cell-style="{
  1843. background: '#F7F7F9 ',
  1844. fontWeight: '700',
  1845. color: '#333333',
  1846. }">
  1847. <el-table-column prop="name" label="保险责任" align="center"></el-table-column>
  1848. <el-table-column prop="amount" label="保额 (元)" align="center"></el-table-column>
  1849. <el-table-column prop="premium" label="保费 (元)" align="center">
  1850. <template slot-scope="scope">¥{{ scope.row.premium }}</template>
  1851. </el-table-column>
  1852. </el-table>
  1853. </div>
  1854. </template>
  1855. <template v-if="reslistitem.namesimple == '中煤财险' &&
  1856. reslistitem.checked &&
  1857. reslistitem.agreementId &&
  1858. isLetter !== '3'
  1859. ">
  1860. <div class="flex f-c Driving-risk accident-style zmDriving">
  1861. <el-form :inline="true" :model="accidentFormZM" class="demo-form-inline" size="small"
  1862. style="font-weight: bold; margin-top: 15px">
  1863. <el-form-item label="意外险类型" style="margin-right: 30px">
  1864. <el-select style="width: 250px" size="small" clearable v-model="zhongmeitemplateSelection"
  1865. placeholder="未选择" @clear="numberCopieschangeZM" @change="zhongmeiInsuranceChange">
  1866. <el-option v-for="(item, index) in zhongmeiInsuranceData" :key="index" :label="item.projectName"
  1867. :value="item.projectCode"></el-option>
  1868. </el-select>
  1869. </el-form-item>
  1870. <el-form-item label="选择份数" style="margin-right: 30px">
  1871. <el-input-number v-model="accidentFormZM.quantity" @change="numberCopieschangeZM" :min="1"
  1872. controls-position="right"></el-input-number>
  1873. <!-- <span style="margin-left: 5px;">份</span> -->
  1874. </el-form-item>
  1875. <el-form-item label="保费:">
  1876. <span>{{ accidentFormZM.sumPremium }}&ensp;元</span>
  1877. </el-form-item>
  1878. </el-form>
  1879. <el-table size="small" :data="zhongmeiInsuranceDataTable" border ref="ZmMultipleTable"
  1880. v-if="zhongmeitemplateSelection" :header-cell-style="{
  1881. background: '#F7F7F9 ',
  1882. fontWeight: '700',
  1883. color: '#333333',
  1884. }">
  1885. <el-table-column prop="name" label="保险责任名称" align="center"></el-table-column>
  1886. <el-table-column prop="amount" label="保险责任对应保额" align="center"></el-table-column>
  1887. <!-- <el-table-column label="份数" align="center">
  1888. <template slot-scope="scope">
  1889. <div @click.stop>
  1890. <el-input-number
  1891. v-model="scope.row.quantity"
  1892. @change="ZMhandleChange"
  1893. :min="1"
  1894. :max="Number(scope.row.insuredNumLimit)"
  1895. controls-position="right"
  1896. ></el-input-number>
  1897. </div>
  1898. </template>
  1899. </el-table-column>-->
  1900. </el-table>
  1901. </div>
  1902. </template>
  1903. <template v-if="reslistitem.namesimple == '大家财险' &&
  1904. reslistitem.checked &&
  1905. reslistitem.agreementId &&
  1906. isLetter !== '3'
  1907. ">
  1908. <div class="flex f-c Driving-risk">
  1909. <div class="dis a-c" style="margin-top: 15px">
  1910. <span style="margin-right: 15px; font-weight: bold">选择意外险</span>
  1911. <el-select style="width: 250px" v-if="reslistitem.apiType == 1" filterable size="small" clearable
  1912. v-model="dajiatemplateSelection" placeholder="未选择" @clear="clearAccidentFormDJ"
  1913. @change="dajiaInsuranceChange">
  1914. <el-option v-for="(item, index) in dajiaInsuranceData" :key="index" :label="item.projectName"
  1915. :value="item.projectCode"></el-option>
  1916. </el-select>
  1917. <div v-else>
  1918. <el-select size="small" style="width: 250px" clearable placeholder="未选择" @change="djcxchange"
  1919. v-model="dajiaaccidentForm.parentCode" @clear="clearAccidentFormDJ">
  1920. <el-option v-for="(item, index) in dajiaInsuranceData" :key="index" :label="item.projectName"
  1921. :value="item.projectCode"></el-option>
  1922. </el-select>
  1923. <el-select size="small" style="width: 250px" clearable v-model="dajiaaccidentForm.projectCode"
  1924. @change="djcxchangeChild">
  1925. <el-option v-for="(item) in dajiaaccidentDataListChild" :key="item.projectCode"
  1926. :label="item.projectName" :value="item.projectCode"></el-option>
  1927. </el-select>
  1928. </div>
  1929. </div>
  1930. <el-table size="small" :data="dajiaInsuranceDataTable" border ref="RsTable" highlight-current-row
  1931. :header-cell-style="{
  1932. background: '#F7F7F9 ',
  1933. fontWeight: '700',
  1934. color: '#333333',
  1935. }">
  1936. <el-table-column prop="name" label="保险责任名称" align="center"></el-table-column>
  1937. <el-table-column prop="premium" label="保费 (元)/每份" align="center">
  1938. <template slot-scope="scope">¥{{ scope.row.premium }}</template>
  1939. </el-table-column>
  1940. </el-table>
  1941. </div>
  1942. </template>
  1943. <template v-if="reslistitem.namesimple == '渤海财险' &&
  1944. reslistitem.checked &&
  1945. reslistitem.agreementId &&
  1946. isLetter !== '3'
  1947. ">
  1948. <div class="flex f-c Driving-risk" style="margin-top: 15px">
  1949. <el-form :inline="true" :model="boHaiaccidentForm" class="demo-form-inline" size="small">
  1950. <el-form-item label="意外险类型" style="margin-right: 30px">
  1951. <el-select clearable placeholder="未选择" @clear="clearAccidentFormBh" @change="bohaiInsuranceChange"
  1952. v-model="boHaiaccidentForm.projectCode">
  1953. <el-option v-for="(item, index) in boHaiaccidentDataList" :key="index" :label="item.projectName"
  1954. :value="item.projectCode"></el-option>
  1955. </el-select>
  1956. </el-form-item>
  1957. <el-form-item label="选择份数" style="margin-right: 30px">
  1958. <el-input-number v-model="boHaiaccidentForm.copies" :min="1"
  1959. controls-position="right"></el-input-number>
  1960. </el-form-item>
  1961. <el-form-item label="保费:">
  1962. <span>{{
  1963. boHaiaccidentForm.premium * boHaiaccidentForm.copies
  1964. }}&ensp;元</span>
  1965. </el-form-item>
  1966. </el-form>
  1967. <el-table v-if="boHaiaccidentForm.projectCode" size="small" :data="bohaiInsuranceDataTable" border
  1968. ref="expandTable" highlight-current-row :header-cell-style="{
  1969. background: '#F7F7F9 ',
  1970. fontWeight: '700',
  1971. color: '#333333',
  1972. }">
  1973. <el-table-column prop="name" label="保险责任名称" align="center"></el-table-column>
  1974. <el-table-column prop="amount" label="保额 (元)" align="center">
  1975. <template slot-scope="scope">¥{{ scope.row.amount }}</template>
  1976. </el-table-column>
  1977. </el-table>
  1978. </div>
  1979. </template>
  1980. </div>
  1981. </div>
  1982. </div>
  1983. </div>
  1984. <div class="Enclosure flex f-c" v-if="isLetter == '1'">
  1985. <div class="home flex j-s a-c back">
  1986. <div class="flex j-s a-c color">
  1987. <img src="../../../../src/icon/报价历史.png" alt class="icon-img" />
  1988. <span style="margin-left: 10px">报价历史</span>
  1989. <div v-if="orderno">
  1990. <el-radio-group v-model="historyRadio" style="margin-left: 30px" @input="RadioHistoryChange"
  1991. v-for="item in insOrderStatusoptions" :key="item.dictValue">
  1992. <el-radio :label="item.dictValue">{{ item.dictTag }}</el-radio>
  1993. </el-radio-group>
  1994. </div>
  1995. </div>
  1996. </div>
  1997. <div style="padding: 20px">
  1998. <el-table size="small" :data="HistoryList" height="250" border style="width: 100%" v-loading="loading"
  1999. :header-cell-style="{
  2000. background: '#F7F7F9 ',
  2001. fontWeight: '700',
  2002. color: '#333333',
  2003. }" highlight-current-row>
  2004. <el-table-column prop="inscompany" label="保险公司" align="center"></el-table-column>
  2005. <el-table-column prop="username" label="业务员" align="center">
  2006. <template slot-scope="scope">
  2007. <span>{{ scope.row.userName }}({{ scope.row.userId }})</span>
  2008. </template>
  2009. </el-table-column>
  2010. <el-table-column prop="licenseno" label="车牌号" align="center"></el-table-column>
  2011. <el-table-column prop="createtime" label="报价时间" align="center"></el-table-column>
  2012. <el-table-column prop="jqpremium" label="交强险" align="center"></el-table-column>
  2013. <el-table-column prop="sypremium" label="商业险" align="center"></el-table-column>
  2014. <el-table-column prop="taxamount" label="车船税" align="center"></el-table-column>
  2015. <el-table-column prop="sumpremium" label="总保费" align="center"></el-table-column>
  2016. <el-table-column prop="orderstatus" label="状态" align="center">
  2017. <template slot-scope="scope">
  2018. <el-tag style="
  2019. color: #33a08d;
  2020. border-color: #33a08d;
  2021. background: rgba(51, 160, 141, 0.1);
  2022. " v-if="scope.row.orderstatus == '0' || scope.row.orderstatus == '1'
  2023. " size="small">{{ scope.row.orderstatus | cap }}</el-tag>
  2024. <el-tag type="danger" style="border-color: #e75b5d" v-else-if="scope.row.orderstatus == '3'" size="small">{{
  2025. scope.row.orderstatus | cap }}</el-tag>
  2026. <el-tag v-else style="
  2027. color: #2d4d89;
  2028. border-color: #2d4d89;
  2029. background: rgba(45, 77, 137, 0.1);
  2030. " size="small">{{ scope.row.orderstatus | cap }}</el-tag>
  2031. </template>
  2032. </el-table-column>
  2033. <el-table-column label="操作" align="center" min-width="180" fixed="right">
  2034. <template slot-scope="scope">
  2035. <el-button type="text" style="color: #2d4d89" size="small"
  2036. @click="qoutedetail(scope.row.id)">查看详情</el-button>
  2037. <el-button size="small" type="text" @click="bjdpreview(scope.row.id)">报价单</el-button>
  2038. <el-button size="small" v-show="scope.row.orderstatus == '2' " type="text"
  2039. @click="Payment(scope.row.id, scope.row)">付款码</el-button>
  2040. <!-- <el-button size="small" v-show="scope.row.orderstatus == '2' && scope.row.inscompany=='平安财险'" type="text"
  2041. @click="signature(scope.row.id)">生成签章</el-button> -->
  2042. <el-button size="mini" type="text" v-if="(scope.row.orderstatus == '1' ||
  2043. scope.row.orderstatus == '2' ||
  2044. scope.row.orderstatus == '4') &&
  2045. ['紫金财险'].includes(scope.row.inscompany)
  2046. " @click="cancelorder(scope.row)">撤单</el-button>
  2047. <el-button type="text" size="mini" style="color: #2d4d89" v-if="scope.row.orderstatus == '2' && scope.row.inscompany!=='平安财险'"
  2048. @click="revokeCode(scope.row.id)">撤销二维码</el-button>
  2049. </template>
  2050. </el-table-column>
  2051. </el-table>
  2052. </div>
  2053. </div>
  2054. <!-- 查看详情 -->
  2055. <detailsDialog ref="detailsDialog" :orderInfo.sync="queryOrders" :Feepermissions="false"></detailsDialog>
  2056. <el-dialog title="车型选择" :visible.sync="chexingdialogVisible" width="1300px">
  2057. <el-form :inline="true" class="demo-form-inline" size="small">
  2058. <el-form-item label="厂牌型号">
  2059. <el-input v-model="carInfo.modelcname" placeholder="厂牌型号" style="width: 500px"></el-input>
  2060. </el-form-item>
  2061. <el-form-item>
  2062. <el-button type="primary" size="small" @click="toChooseVehicleType(carInfo.modelcname)">查询</el-button>
  2063. </el-form-item>
  2064. </el-form>
  2065. <el-table size="small" :data="reslist" height="690" border style="width: 100%" v-loading="loading"
  2066. :header-cell-style="{
  2067. background: '#F7F7F9 ',
  2068. fontWeight: '700',
  2069. color: '#333333',
  2070. }" highlight-current-row @row-dblclick="reslistCurrentChange">
  2071. <el-table-column prop="modelCode" label="厂牌型号代码" align="center" width="200"></el-table-column>
  2072. <el-table-column prop="modelName" label="厂牌型号" align="center" width="300"></el-table-column>
  2073. <el-table-column prop="replacementValue" label="新车购置价" align="center" width="100"></el-table-column>
  2074. <el-table-column prop="marketYear" label="年款" align="center" width="100"></el-table-column>
  2075. <el-table-column prop="ratedPassengerCapacity" label="座位数" align="center" width="80"></el-table-column>
  2076. <el-table-column prop="displacement" label="排量" align="center" width="100"></el-table-column>
  2077. <el-table-column prop="remark" label="配置" align="center"></el-table-column>
  2078. </el-table>
  2079. </el-dialog>
  2080. <el-dialog title="车辆识别代码" :visible.sync="sbdmdialogVisible" width="1300px">
  2081. <el-form :inline="true" class="demo-form-inline" size="small">
  2082. <el-form-item label="车辆识别代码">
  2083. <el-input v-model="carInfo.frameNo" placeholder="车辆识别代码" style="width: 500px"></el-input>
  2084. </el-form-item>
  2085. <el-form-item>
  2086. <el-button type="primary" size="small" @click="toChooseVin(carInfo.frameNo)">查询</el-button>
  2087. </el-form-item>
  2088. </el-form>
  2089. <el-table size="small" :data="reslist" height="690" border style="width: 100%" v-loading="loading"
  2090. :header-cell-style="{
  2091. background: '#F7F7F9 ',
  2092. fontWeight: '700',
  2093. color: '#333333',
  2094. }" highlight-current-row @row-dblclick="reslistCurrentChange">
  2095. <el-table-column prop="modelCode" label="厂牌型号代码" align="center" width="200"></el-table-column>
  2096. <el-table-column prop="modelName" label="厂牌型号" align="center" width="300"></el-table-column>
  2097. <el-table-column prop="replacementValue" label="新车购置价" align="center" width="100"></el-table-column>
  2098. <el-table-column prop="marketYear" label="年款" align="center" width="100"></el-table-column>
  2099. <el-table-column prop="ratedPassengerCapacity" label="座位数" align="center" width="80"></el-table-column>
  2100. <el-table-column prop="displacement" label="排量" align="center" width="100"></el-table-column>
  2101. <el-table-column prop="remark" label="配置" align="center"></el-table-column>
  2102. </el-table>
  2103. </el-dialog>
  2104. <!--第一种 二维码 -->
  2105. <el-dialog :visible.sync="codedialogVisible" width="430px" top="10vh" class="saomazhifucodeClass">
  2106. <div class="ORcodebody" v-watermark="userform.id || userId">
  2107. <div slot="title" class="dialog-title">
  2108. <span>扫码付款</span>
  2109. </div>
  2110. <div class="ORcode">
  2111. <div style="padding: 13px; position: relative">
  2112. <div v-if="['大家财险', '华泰财险'].includes(inscompany)">
  2113. <div v-if="apiType == 1" id="qrcode" ref="qrcode"></div>
  2114. <img v-else :src="paycodeimg" alt style="width: 100%" />
  2115. </div>
  2116. <div v-else>
  2117. <img v-if="['太平财险'].includes(inscompany)" :src="paycodeimg" alt style="width: 100%" />
  2118. <div v-else id="qrcode" ref="qrcode"></div>
  2119. </div>
  2120. </div>
  2121. </div>
  2122. <img style="margin-left: -16px" src="../../../assets/image/divider.png" alt />
  2123. <div style="
  2124. font-size: 32px;
  2125. text-align: center;
  2126. color: #d42426;
  2127. margin-top: 20px;
  2128. ">
  2129. <span style="font-size: 24px; font-weight: bold">¥</span>
  2130. {{ sumpremium }}
  2131. </div>
  2132. <div class="ORtitle">
  2133. <div>
  2134. <span>保险公司:</span>
  2135. <span>{{ inscompany }}</span>
  2136. </div>
  2137. <div>
  2138. <span>车牌号:</span>
  2139. <span>{{ licenseNo }}</span>
  2140. </div>
  2141. <div>
  2142. <span>投保人:</span>
  2143. <span>{{ applyName }}</span>
  2144. </div>
  2145. <!-- <div>
  2146. <span style="color:#f75c00">总金额:</span>
  2147. <span style="color:#f75c00">{{ sumpremium }}</span>
  2148. </div>-->
  2149. <div v-show="jqpremium">
  2150. <span>交强:</span>
  2151. <span>{{ jqpremium }}</span>
  2152. </div>
  2153. <div v-show="sypremium">
  2154. <span>商业:</span>
  2155. <span>{{ sypremium }}</span>
  2156. </div>
  2157. <div v-show="taxamount">
  2158. <span>车船税:</span>
  2159. <span>{{ taxamount }}</span>
  2160. </div>
  2161. <div v-show="jqstartdate">
  2162. <span>交强险起保日期:</span>
  2163. <span>{{ jqstartdate }}</span>
  2164. </div>
  2165. <div v-show="systartdate">
  2166. <span>商业险起保日期:</span>
  2167. <span>{{ systartdate }}</span>
  2168. </div>
  2169. <div v-if="jypremium">
  2170. <span>非车险:</span>
  2171. <span>{{ jypremium }}</span>
  2172. </div>
  2173. </div>
  2174. <!-- <div class="display">
  2175. <el-button size="small" style="width:100px;" @click="codedialogVisible = false">关闭</el-button>
  2176. </div>-->
  2177. </div>
  2178. <span slot="footer" class="dialog-footer display">
  2179. <el-button size="small" style="width: 100px; border-color: #d42426; color: #d42426"
  2180. @click="codedialogVisible = false">关闭</el-button>
  2181. </span>
  2182. </el-dialog>
  2183. <!--第二种 二维码 -->
  2184. <el-dialog :visible.sync="codedialogVisiblePro" width="660px" class="proSaomazhifucodeClass" top="10vh" title="扫码付款">
  2185. <div class="flex j-s">
  2186. <div class="scan-code">
  2187. <div style="font-weight: bold">
  2188. 总金额:
  2189. <span style="color: #2d4d89">{{ sumpremium }}</span>
  2190. </div>
  2191. <div>交强险:{{ jqpremium }}</div>
  2192. <div>车船税:{{ taxamount }}</div>
  2193. <div>商业险:{{ sypremium }}</div>
  2194. <div>非车险:{{ jypremium }}</div>
  2195. </div>
  2196. <div v-if="['大家财险', '华泰财险'].includes(inscompany)">
  2197. <div v-if="apiType == 1" id="qrcode" ref="qrcode"></div>
  2198. <img v-else :src="paycodeimg" alt style="width: 100%" />
  2199. </div>
  2200. <div v-else>
  2201. <img v-if="['太平财险'].includes(inscompany)" :src="paycodeimg" alt style="width: 200px; height: 200px" />
  2202. <div v-else id="qrcode" ref="qrcode"></div>
  2203. </div>
  2204. <div class="scan-code">
  2205. <div>保险公司:{{ inscompany }}</div>
  2206. <div>车牌号:{{ licenseNo }}</div>
  2207. <div>投保人:{{ applyName }}</div>
  2208. <div>交强险起保日期:{{ jqstartdate }}</div>
  2209. <div>商业险起保日期:{{ systartdate }}</div>
  2210. </div>
  2211. </div>
  2212. <span slot="footer" class="dialog-footer">
  2213. <el-button size="small" style="
  2214. width: 100px;
  2215. background: #eaedf1;
  2216. border-color: #eaedf1;
  2217. color: #2d4d89;
  2218. " @click="codedialogVisiblePro = false">关闭</el-button>
  2219. </span>
  2220. </el-dialog>
  2221. <el-dialog :visible.sync="uploadcardialogVisible" width="960px" style="padding: 10px 20px; box-sizing: border-box"
  2222. @open="closeDialog(0)">
  2223. <div slot="title" class="dialog-title">
  2224. <span>行驶证识别</span>
  2225. </div>
  2226. <el-row :gutter="20">
  2227. <div class="bodys1">
  2228. <div>
  2229. <div class="flex a-c">
  2230. <div class="OCR" style="text-align: center">行驶证主页</div>
  2231. <div style="text-align: center; margin: 20px" @drop="reportDrop">
  2232. <el-upload drag action="#" :show-file-list="false" :auto-upload="false" :on-change="carfrontChange">
  2233. <img v-show="carfrontImg" :src="carfrontImg" style="width: 100%; height: 100%" />
  2234. <img v-show="!carfrontImg" src="../../../../static/carfront.png" style="width: 100%; height: 100%" />
  2235. <span class="slot" v-show="carfrontImg" @click.stop>
  2236. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(carfrontImg)"></i>
  2237. <i class="el-icon-delete" @click.stop="handleRemove('carfrontImg')"></i>
  2238. </span>
  2239. </el-upload>
  2240. </div>
  2241. </div>
  2242. <div class="flex a-c">
  2243. <div class="OCR" style="text-align: center">行驶证副页</div>
  2244. <div style="text-align: center; margin: 20px" @drop="reportDrop">
  2245. <el-upload drag action="#" :show-file-list="false" :auto-upload="false" :on-change="carbackChange">
  2246. <img v-show="carbackImg" :src="carbackImg" style="width: 100%; height: 100%" />
  2247. <img v-show="!carbackImg" src="../../../../static/carback.png" style="width: 100%; height: 100%" />
  2248. <span class="slot" v-show="carbackImg" @click.stop>
  2249. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(carbackImg)"></i>
  2250. <i class="el-icon-delete" @click.stop="handleRemove('carbackImg')"></i>
  2251. </span>
  2252. </el-upload>
  2253. </div>
  2254. </div>
  2255. </div>
  2256. <div style="text-align: center">
  2257. <el-form :model="carform" label-width="130px" size="small">
  2258. <el-form-item label="所有人">
  2259. <el-input v-model="carform.carOwner" autocomplete="off"></el-input>
  2260. </el-form-item>
  2261. <el-form-item label="车牌号">
  2262. <el-input v-model="carform.licenseNo" autocomplete="off"></el-input>
  2263. </el-form-item>
  2264. <el-form-item label="车架号">
  2265. <el-input v-model="carform.frameNo" autocomplete="off"></el-input>
  2266. </el-form-item>
  2267. <el-form-item label="品牌型号">
  2268. <el-input v-model="carform.modelcname" autocomplete="off"></el-input>
  2269. </el-form-item>
  2270. <el-form-item label="发动机号">
  2271. <el-input v-model="carform.engineNo" autocomplete="off"></el-input>
  2272. </el-form-item>
  2273. <el-form-item label="总质量">
  2274. <el-input v-model="carform.grossMass" autocomplete="off"></el-input>
  2275. </el-form-item>
  2276. <el-form-item label="整备质量">
  2277. <el-input v-model="carform.unladenMass" autocomplete="off"></el-input>
  2278. </el-form-item>
  2279. <el-form-item label="核定载质量">
  2280. <el-input v-model="carform.limitLoad" autocomplete="off"></el-input>
  2281. </el-form-item>
  2282. <el-form-item label="核定载客数">
  2283. <el-input v-model="carform.approvedPassengersCapacity" autocomplete="off"></el-input>
  2284. </el-form-item>
  2285. <el-form-item label="注册日期">
  2286. <el-input v-model="carform.registerDate" autocomplete="off"></el-input>
  2287. </el-form-item>
  2288. <el-form-item label="发证日期">
  2289. <el-input v-model="carform.issueDate" autocomplete="off"></el-input>
  2290. </el-form-item>
  2291. </el-form>
  2292. </div>
  2293. </div>
  2294. </el-row>
  2295. <span slot="footer" class="dialog-footer">
  2296. <el-button type="primary" @click="CarOCRdiscern()" size="small">识 别</el-button>
  2297. <el-button type="primary" @click="CarOCRconfirm()" size="small">确 认</el-button>
  2298. </span>
  2299. </el-dialog>
  2300. <el-dialog :visible.sync="uploaduserdialogVisible" width="960px" style="padding: 10px 20px; box-sizing: border-box"
  2301. @open="closeDialog(userIndex)">
  2302. <el-tabs v-model="activeName">
  2303. <el-tab-pane label="身份证识别" name="1">
  2304. <el-row :gutter="20">
  2305. <div class="bodys1">
  2306. <div>
  2307. <div class="flex">
  2308. <div class="OCR" style="text-align: center">身份证主页</div>
  2309. <div style="text-align: center; margin: 20px" @drop="reportDrop">
  2310. <el-upload class="upload-demo" drag action="#" :show-file-list="false" :auto-upload="false"
  2311. :on-change="userfrontChange">
  2312. <img v-show="userfrontImg" :src="userfrontImg" style="width: 100%; height: 100%" />
  2313. <img v-show="!userfrontImg" src="../../../../static/userfront.png"
  2314. style="width: 100%; height: 100%" />
  2315. <span class="slot" v-show="userfrontImg" @click.stop>
  2316. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(userfrontImg)"></i>
  2317. <i class="el-icon-delete" @click.stop="handleRemove('userfrontImg')"></i>
  2318. </span>
  2319. </el-upload>
  2320. </div>
  2321. </div>
  2322. <div class="flex">
  2323. <div class="OCR" style="text-align: center">身份证副页</div>
  2324. <div style="text-align: center; margin: 20px" @drop="reportDrop">
  2325. <el-upload class="upload-demo" drag action="#" :show-file-list="false" :auto-upload="false"
  2326. :on-change="userbackChange">
  2327. <img v-show="userbackImg" :src="userbackImg" style="width: 100%; height: 100%" />
  2328. <img v-show="!userbackImg" src="../../../../static/userback.png"
  2329. style="width: 100%; height: 100%" />
  2330. <span class="slot" v-show="userbackImg" @click.stop>
  2331. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(userbackImg)"></i>
  2332. <i class="el-icon-delete" @click.stop="handleRemove('userbackImg')"></i>
  2333. </span>
  2334. </el-upload>
  2335. </div>
  2336. </div>
  2337. </div>
  2338. <div style="text-align: center">
  2339. <el-form :model="ownerInfoform" label-width="130px" size="small">
  2340. <el-form-item label="姓名">
  2341. <el-input v-model="ownerInfoform.name" autocomplete="off"></el-input>
  2342. </el-form-item>
  2343. <el-form-item label="性别">
  2344. <el-input v-model="ownerInfoform.gender" autocomplete="off"></el-input>
  2345. </el-form-item>
  2346. <el-form-item label="证件类型">
  2347. <el-input v-model="ownerInfoform.identifyType" autocomplete="off"></el-input>
  2348. </el-form-item>
  2349. <el-form-item label="证件号码">
  2350. <el-input v-model="ownerInfoform.identifyNumber" autocomplete="off"></el-input>
  2351. </el-form-item>
  2352. <el-form-item label="车主手机号">
  2353. <el-input v-model="ownerInfoform.mobile" autocomplete="off"></el-input>
  2354. </el-form-item>
  2355. <el-form-item label="地址">
  2356. <el-input v-model="ownerInfoform.addr" autocomplete="off"></el-input>
  2357. </el-form-item>
  2358. <el-form-item label="有效期起期">
  2359. <el-input disabled v-model="ownerInfoform.identifyValidDate" autocomplete="off"></el-input>
  2360. </el-form-item>
  2361. <el-form-item label="有效期止期">
  2362. <el-input disabled v-model="ownerInfoform.identifyValidEndDate" autocomplete="off"></el-input>
  2363. </el-form-item>
  2364. <el-form-item label="电子邮箱">
  2365. <el-input v-model="ownerInfoform.email" autocomplete="off"></el-input>
  2366. </el-form-item>
  2367. </el-form>
  2368. </div>
  2369. </div>
  2370. </el-row>
  2371. </el-tab-pane>
  2372. <el-tab-pane label="营业执照" name="2">
  2373. <el-row :gutter="20">
  2374. <div class="bodys1">
  2375. <div>
  2376. <div class="flex">
  2377. <div class="OCR" style="text-align: center">营业执照</div>
  2378. <div style="text-align: center; margin: 20px" @drop="reportDrop">
  2379. <el-upload class="upload-demo" drag action="#" :show-file-list="false" :auto-upload="false"
  2380. :on-change="userfrontChange">
  2381. <img v-show="businessImg" :src="businessImg" style="width: 100%; height: 100%" />
  2382. <img v-show="!businessImg" src="../../../../static/userfront.png"
  2383. style="width: 100%; height: 100%" />
  2384. <span class="slot" v-show="businessImg" @click.stop>
  2385. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(businessImg)"></i>
  2386. <i class="el-icon-delete" @click.stop="handleRemove('businessImg')"></i>
  2387. </span>
  2388. </el-upload>
  2389. </div>
  2390. </div>
  2391. </div>
  2392. <div style="text-align: center">
  2393. <el-form :model="ownerInfoform" label-width="130px" size="small">
  2394. <el-form-item label="单位名称">
  2395. <el-input autocomplete="off"></el-input>
  2396. </el-form-item>
  2397. <el-form-item label="法人">
  2398. <el-input autocomplete="off"></el-input>
  2399. </el-form-item>
  2400. <el-form-item label="社会信用代码">
  2401. <el-input autocomplete="off"></el-input>
  2402. </el-form-item>
  2403. <el-form-item label="地址">
  2404. <el-input autocomplete="off"></el-input>
  2405. </el-form-item>
  2406. <el-form-item label="经营范围">
  2407. <el-input autocomplete="off"></el-input>
  2408. </el-form-item>
  2409. <el-form-item label="注册资本">
  2410. <el-input autocomplete="off"></el-input>
  2411. </el-form-item>
  2412. </el-form>
  2413. </div>
  2414. </div>
  2415. </el-row>
  2416. </el-tab-pane>
  2417. </el-tabs>
  2418. <span slot="footer" class="dialog-footer">
  2419. <el-button type="primary" @click="userOCRdiscern()" size="small">识 别</el-button>
  2420. <el-button type="primary" @click="userOCRconfirm()" size="small">确 认</el-button>
  2421. </span>
  2422. </el-dialog>
  2423. <el-dialog :visible.sync="pinganDataDetailVisible" width="40%" title="责任明细">
  2424. <el-table
  2425. :data="pinganDataDetail"
  2426. border
  2427. style="width: 100%">
  2428. <el-table-column
  2429. prop="insuranceCoverage"
  2430. label="责任名称">
  2431. </el-table-column>
  2432. <el-table-column
  2433. prop="unitInsuredAmount"
  2434. label="每份保额">
  2435. </el-table-column>
  2436. </el-table>
  2437. </el-dialog>
  2438. <div v-if="isLetter == '1'" class="flex j-c a-c footer" :class="$store.state.app.collapse ? 'position-collapse-left' : 'position-left'
  2439. ">
  2440. <el-button size="small" @click="add()">录下一单</el-button>
  2441. <el-button type="primary" :loading="calculateLoading" size="small" @click="quote()">保费计算</el-button>
  2442. </div>
  2443. <div v-if="isLetter == '2'" style="text-align: center">
  2444. <el-button type="primary" :loading="calculateLoading" size="small" @click="quote()">保费计算</el-button>
  2445. </div>
  2446. <div v-if="isLetter == '3'" style="text-align: center">
  2447. <el-button type="primary" size="small" @click="preserveQuote(0, 'emporaryLoading')" :disabled="preserveQuoteLoading"
  2448. :loading="emporaryLoading">暂存</el-button>
  2449. <el-button type="primary" size="small" @click="preserveQuote(1, 'preserveQuoteLoading')"
  2450. :loading="preserveQuoteLoading" :disabled="emporaryLoading">保存</el-button>
  2451. </div>
  2452. <div class="Anchor-link flex f-c j-s a-c" v-if="isLetter == '1'">
  2453. <div>
  2454. <img src="../../../../src/icon/车辆信息.png" alt class="icon-img" @click="handleScroll('Car')" />
  2455. </div>
  2456. <div>
  2457. <img src="../../../../src/icon/投保信息.png" alt class="icon-img" @click="handleScroll('insurance')" />
  2458. </div>
  2459. <div>
  2460. <img src="../../../../src/icon/险别选择.png" alt class="icon-img" @click="handleScroll('more')" />
  2461. </div>
  2462. <div>
  2463. <img src="../../../../src/icon/保险公司.png" alt class="icon-img" @click="handleScroll('company')" />
  2464. </div>
  2465. </div>
  2466. <el-dialog title="核保信息" :visible.sync="underwritingdialogVisible" width="30%">
  2467. <div class="flex j-s f-c">
  2468. <div style="
  2469. font-size: 18px;
  2470. color: #d42426;
  2471. font-weight: 700;
  2472. padding: 10px 30px;
  2473. " v-if="orderstatus == '2'">
  2474. 订单状态:已核保待缴费
  2475. </div>
  2476. </div>
  2477. <span slot="footer" class="dialog-footer" >
  2478. <el-button style="width: 100px" type="primary" size="small" v-if="orderstatus == '2' "
  2479. @click="Payment(companyId, queryOrders)">缴费二维码</el-button>
  2480. <!-- <el-button style="width: 100px" type="primary" size="small" v-if="orderstatus == '2' && queryOrders.inscompany=='平安财险'"
  2481. @click="signature(companyId)">生成签章</el-button> -->
  2482. </span>
  2483. </el-dialog>
  2484. <el-dialog title="转保确认码" :visible.sync="renewalCodedialogVisible" width="400px" style="font-weight: bold">
  2485. <div class="flex a-c u-f-sa" v-if="renewalCodeJqImg">
  2486. <span>交强转保确认码</span>
  2487. <div class="flex a-c f-c">
  2488. <img :src="renewalCodeJqImg" alt style="width: 150px; height: 40px; margin-bottom: 5px" />
  2489. <el-input v-model="renewalCodeJq" placeholder="请输入确认码" style="width: 150px"></el-input>
  2490. </div>
  2491. </div>
  2492. <div class="flex a-c u-f-sa" v-if="renewalCodeSyImg">
  2493. <span>商业转保确认码</span>
  2494. <div class="flex a-c f-c">
  2495. <img :src="renewalCodeSyImg" alt style="width: 150px; height: 40px; margin-bottom: 5px" />
  2496. <el-input v-model="renewalCodeSy" placeholder="请输入确认码" style="width: 150px"></el-input>
  2497. </div>
  2498. </div>
  2499. <span slot="footer" class="dialog-footer">
  2500. <el-button size="small" @click="renewalCodedialogVisible = false">取 消</el-button>
  2501. <el-button size="small" type="primary" @click="renewalCodeconfirm">确 定</el-button>
  2502. </span>
  2503. </el-dialog>
  2504. <el-dialog :title="contributingState ? '选择特约' : '提交核保'" :visible.sync="hbsubmitdialogVisible" width="1200px">
  2505. <div style="margin-bottom: 20px; font-weight: bold">特约选择</div>
  2506. <el-table size="small" :data="zijinengageListData" border v-loading="contributingLoading"
  2507. @select="zijinengageChange" @select-all="zijinengageChangeAll" ref="expandTablePro" highlight-current-row
  2508. @cell-dblclick="zijincellDblclick" :cell-class-name="tableCellClassName" :header-cell-style="{
  2509. background: '#F7F7F9 ',
  2510. fontWeight: '700',
  2511. color: '#333333',
  2512. }">
  2513. <el-table-column type="selection" width="55"></el-table-column>
  2514. <el-table-column prop="clauseCode" :width="80" label="特约代码" align="center"></el-table-column>
  2515. <el-table-column v-if="contributingState" :width="100" prop="riskName" label="特约险种"
  2516. align="center"></el-table-column>
  2517. <el-table-column prop="clauseName" label="特约名称" align="center"></el-table-column>
  2518. <el-table-column prop="clauseContent" label="特约内容">
  2519. <template slot-scope="scope">
  2520. <el-input @blur="hideInput" size="small" type="textarea" :ref="scope.row.index + ',' + scope.column.index"
  2521. v-model="scope.row.clauseContent" v-if="scope.row.index + ',' + scope.column.index == currentCell &&
  2522. scope.row.modifyFlag == '1'
  2523. "></el-input>
  2524. <span v-else>{{ scope.row.clauseContent }}</span>
  2525. </template>
  2526. </el-table-column>
  2527. </el-table>
  2528. <span slot="footer" class="dialog-footer">
  2529. <el-button size="small" @click="hbsubmitdialogVisible = false">取 消</el-button>
  2530. <el-button v-if="contributingState" size="small" type="primary"
  2531. @click="hbsubmitdialogVisible = false">确定</el-button>
  2532. <el-button v-else size="small" type="primary" @click="hbsubmit">提交核保</el-button>
  2533. </span>
  2534. </el-dialog>
  2535. <!-- <imageDialog ref="imageDialog" :quoteno="quoteno"></imageDialog>-->
  2536. <!-- 报价单 -->
  2537. <quotationDialog ref="quotationDialog" :queryOrders="queryOrders"></quotationDialog>
  2538. <quotationDialogPro ref="quotationDialogPro" :queryOrders="queryOrders"></quotationDialogPro>
  2539. <el-image-viewer v-if="showViewer" :on-close="closeViewer" :z-index="9999" :url-list="[ProViewImg]" />
  2540. <el-dialog :visible.sync="redictInfodialogVisible" width="70%">
  2541. <el-table :data="redictInfoMsg" style="width: 100%">
  2542. <el-table-column prop="description" label="审核意见"></el-table-column>
  2543. <el-table-column prop="opinion" label="备注"></el-table-column>
  2544. </el-table>
  2545. </el-dialog>
  2546. <!-- 生成签章 -->
  2547. <el-dialog :visible.sync="signaturedialogVisible" title="生成签章" width="14%">
  2548. <div >
  2549. <img :src="resultMessageImg" alt style="width: 100%" />
  2550. <!-- <div id="signaturecode" ref="signaturecode"></div> -->
  2551. </div>
  2552. </el-dialog>
  2553. <!-- 保单上传 -->
  2554. <el-dialog :visible.sync="policyUploaddialogVisible" width="30%">
  2555. <div slot="title" class="dialog-title">
  2556. <span>保单上传</span>
  2557. </div>
  2558. <el-form :model="policyNumberForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
  2559. <el-form-item label="交强保单:" prop="jqPolicy">
  2560. <el-upload class="upload-demo" ref="jqPolicyupload" action="#" :limit="1" :auto-upload="false"
  2561. :on-remove="(file) => removePhoto(file, policyNumberForm.jqPolicyList, 'jqPolicyList')"
  2562. :file-list="policyNumberForm.jqPolicyList" :on-change="(file) => policydrivingupload(file, 'jqPolicy')">
  2563. <el-button size="small" type="primary">点击上传</el-button>
  2564. <el-button size="small" type="primary" @click.stop="policyNumberForm.jqPolicyList = []">清空</el-button>
  2565. </el-upload>
  2566. </el-form-item>
  2567. <el-form-item label="商业保单:" prop="syPolicy">
  2568. <el-upload class="upload-demo" ref="syPolicyupload" action="#" :limit="1" :auto-upload="false"
  2569. :on-remove="(file) => removePhoto(file, policyNumberForm.syPolicyList, 'syPolicyList')"
  2570. :file-list="policyNumberForm.syPolicyList" :on-change="(file) => policydrivingupload(file, 'syPolicy')">
  2571. <el-button size="small" type="primary">点击上传</el-button>
  2572. <el-button size="small" type="primary" @click.stop="policyNumberForm.syPolicyList = []">清空</el-button>
  2573. </el-upload>
  2574. </el-form-item>
  2575. <el-form-item label="非车保单:" prop="noPolicy">
  2576. <el-upload class="upload-demo" ref="noPolicyupload" action="#" :limit="1" :auto-upload="false"
  2577. :on-remove="(file) => removePhoto(file, policyNumberForm.noPolicyList, 'noPolicyList')"
  2578. :file-list="policyNumberForm.noPolicyList" :on-change="(file) => policydrivingupload(file, 'noPolicy')">
  2579. <el-button size="small" type="primary">点击上传</el-button>
  2580. <el-button size="small" type="primary" @click.stop="policyNumberForm.noPolicyList = []">清空</el-button>
  2581. </el-upload>
  2582. </el-form-item>
  2583. <el-form-item label="交强电子标志:" prop="jqSign">
  2584. <el-upload class="upload-demo" ref="jqSignupload" action="#" :limit="1" :auto-upload="false"
  2585. :on-remove="(file) => removePhoto(file, policyNumberForm.jqSignList, 'jqSignList')"
  2586. :file-list="policyNumberForm.jqSignList" :on-change="(file) => policydrivingupload(file, 'jqSign')">
  2587. <el-button size="small" type="primary">点击上传</el-button>
  2588. <el-button size="small" type="primary" @click.stop="policyNumberForm.jqSignList = []">清空</el-button>
  2589. </el-upload>
  2590. </el-form-item>
  2591. </el-form>
  2592. <span slot="footer" class="dialog-footer">
  2593. <el-button size="small" @click="policyUploaddialogVisible = false">取 消</el-button>
  2594. <el-button size="small" type="primary" @click="policyUploaddialogVisible = false">确 定</el-button>
  2595. </span>
  2596. </el-dialog>
  2597. <!-- 影像上传 -->
  2598. <el-dialog :visible.sync="imageUploaddialogVisible" width="1070px">
  2599. <div slot="title" class="dialog-title">
  2600. <span>影像上传</span>
  2601. </div>
  2602. <el-row>
  2603. <el-col :span="4">
  2604. <div class="tab-style">
  2605. <li class="liMenu" :class="idx == tabLiIndex ? 'tabLi-style' : ''"
  2606. @click="tabLiScroll(item.scroll, idx)" v-for="(item, idx) in tabLimenu" :key="idx">
  2607. {{ item.name }}
  2608. </li>
  2609. </div>
  2610. </el-col>
  2611. <el-col :span="20" style="height: 320px; overflow-y: auto">
  2612. <div class="flex f-wrap" id="vehicle">
  2613. <div class="aaa">
  2614. <span>1.行驶证主页</span>
  2615. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList1', 'imgList1', 'C01')
  2616. " :file-list="imgList1" ref="upload1" :class="{ styleB: imgList1.length == 1 }">
  2617. <img v-show="imgList1.length == 0" src="../../../../static/carfront.png"
  2618. style="width: 100%; height: 100%" />
  2619. <div slot="file" slot-scope="{ file }" v-if="imgList1.length > 0">
  2620. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2621. <span class="el-upload-list__item-actions">
  2622. <span class="el-upload-list__item-delete"
  2623. @click="handleRemove1(file, 'imageList1', 'imgList1')">
  2624. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2625. <i class="el-icon-delete"></i>
  2626. </span>
  2627. </span>
  2628. </div>
  2629. </el-upload>
  2630. </div>
  2631. <div class="aaa">
  2632. <span>2.行驶证副页</span>
  2633. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList1', 'imgList2', 'D01')
  2634. " :file-list="imgList2" ref="upload2" :class="{ styleB: imgList2.length === 1 }">
  2635. <img v-show="imgList2.length == 0" src="../../../../static/carback.png"
  2636. style="width: 100%; height: 100%" />
  2637. <div slot="file" slot-scope="{ file }">
  2638. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2639. <span class="el-upload-list__item-actions">
  2640. <span class="el-upload-list__item-delete"
  2641. @click="handleRemove1(file, 'imageList1', 'imgList2')">
  2642. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2643. <i class="el-icon-delete"></i>
  2644. </span>
  2645. </span>
  2646. </div>
  2647. </el-upload>
  2648. </div>
  2649. <div class="aaa">
  2650. <span>3.机动车辆登记证书</span>
  2651. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList1', 'imgList12', 'TAR05')
  2652. " :file-list="imgList12" ref="upload2" :class="{ styleB: imgList12.length === 1 }">
  2653. <img v-show="imgList12.length == 0" src="../../../../static/carback.png"
  2654. style="width: 100%; height: 100%" />
  2655. <div slot="file" slot-scope="{ file }">
  2656. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2657. <span class="el-upload-list__item-actions">
  2658. <span class="el-upload-list__item-delete"
  2659. @click="handleRemove1(file, 'imageList1', 'imgList12')">
  2660. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2661. <i class="el-icon-delete"></i>
  2662. </span>
  2663. </span>
  2664. </div>
  2665. </el-upload>
  2666. </div>
  2667. <div class="aaa">
  2668. <span>4.新车合格证</span>
  2669. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  2670. drivingupload(file, 'imageList5', 'imgList9', 'XC00')
  2671. " :file-list="imgList9" multiple ref="upload3" :class="{ styleB: imgList9.length === 1 }">
  2672. <img v-show="imgList9.length == 0" src="../../../../static/userfront.png"
  2673. style="width: 100%; height: 100%" />
  2674. <div slot="file" slot-scope="{ file }">
  2675. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2676. <span class="el-upload-list__item-actions">
  2677. <span class="el-upload-list__item-delete"
  2678. @click="handleRemove1(file, 'imageList5', 'imgList9')">
  2679. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2680. <i class="el-icon-delete"></i>
  2681. </span>
  2682. </span>
  2683. </div>
  2684. </el-upload>
  2685. </div>
  2686. <div class="aaa">
  2687. <span>5.购车发票</span>
  2688. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  2689. drivingupload(file, 'imageList5', 'imgList10', 'GC00')
  2690. " :file-list="imgList10" multiple ref="upload4"
  2691. :class="{ styleB: imgList10.length === 1 }">
  2692. <img v-show="imgList10.length == 0" src="../../../../static/userfront.png"
  2693. style="width: 100%; height: 100%" />
  2694. <div slot="file" slot-scope="{ file }">
  2695. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2696. <span class="el-upload-list__item-actions">
  2697. <span class="el-upload-list__item-delete"
  2698. @click="handleRemove1(file, 'imageList5', 'imgList10')">
  2699. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2700. <i class="el-icon-delete"></i>
  2701. </span>
  2702. </span>
  2703. </div>
  2704. </el-upload>
  2705. </div>
  2706. </div>
  2707. <div class="flex f-wrap" id="owner">
  2708. <div class="aaa">
  2709. <span>1.车主身份证(正面)</span>
  2710. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList2', 'imgList3', 'C02')
  2711. " :file-list="imgList3" multiple ref="upload3" :class="{ styleB: imgList3.length === 1 }">
  2712. <img v-show="imgList3.length == 0" src="../../../../static/userfront.png"
  2713. style="width: 100%; height: 100%" />
  2714. <div slot="file" slot-scope="{ file }">
  2715. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2716. <span class="el-upload-list__item-actions">
  2717. <span class="el-upload-list__item-delete"
  2718. @click="handleRemove1(file, 'imageList2', 'imgList3')">
  2719. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2720. <i class="el-icon-delete"></i>
  2721. </span>
  2722. </span>
  2723. </div>
  2724. </el-upload>
  2725. </div>
  2726. <div class="aaa">
  2727. <span>2.车主身份证(反面)</span>
  2728. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList2', 'imgList4', 'D02')
  2729. " :file-list="imgList4" multiple ref="upload4" :class="{ styleB: imgList4.length === 1 }">
  2730. <img v-show="imgList4.length == 0" src="../../../../static/userback.png"
  2731. style="width: 100%; height: 100%" />
  2732. <div slot="file" slot-scope="{ file }">
  2733. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2734. <span class="el-upload-list__item-actions">
  2735. <span class="el-upload-list__item-delete"
  2736. @click="handleRemove1(file, 'imageList2', 'imgList4')">
  2737. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2738. <i class="el-icon-delete"></i>
  2739. </span>
  2740. </span>
  2741. </div>
  2742. </el-upload>
  2743. </div>
  2744. <div class="aaa">
  2745. <span>3.营业执照</span>
  2746. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag multiple
  2747. ref="upload4">
  2748. <img src="../../../../static/userfront.png" style="width: 100%; height: 100%" />
  2749. <div slot="file" slot-scope="{ file }">
  2750. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2751. <span class="el-upload-list__item-actions">
  2752. <span class="el-upload-list__item-delete"
  2753. @click="handleRemove1(file, 'imageList2', 'imgList4')">
  2754. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2755. <i class="el-icon-delete"></i>
  2756. </span>
  2757. </span>
  2758. </div>
  2759. </el-upload>
  2760. </div>
  2761. </div>
  2762. <div class="flex f-wrap" id="applicant">
  2763. <div class="aaa">
  2764. <span>1.投保人身份证(正面)</span>
  2765. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList3', 'imgList5', 'C03')
  2766. " :file-list="imgList5" multiple ref="upload5" :class="{ styleB: imgList5.length === 1 }">
  2767. <img v-show="imgList5.length == 0" src="../../../../static/userfront.png"
  2768. style="width: 100%; height: 100%" />
  2769. <div slot="file" slot-scope="{ file }">
  2770. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2771. <span class="el-upload-list__item-actions">
  2772. <span class="el-upload-list__item-delete"
  2773. @click="handleRemove1(file, 'imageList3', 'imgList5')">
  2774. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2775. <i class="el-icon-delete"></i>
  2776. </span>
  2777. </span>
  2778. </div>
  2779. </el-upload>
  2780. </div>
  2781. <div class="aaa">
  2782. <span>2.投保人身份证(反面)</span>
  2783. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList3', 'imgList6', 'D03')
  2784. " :file-list="imgList6" multiple ref="upload6" :class="{ styleB: imgList6.length === 1 }">
  2785. <img v-show="imgList6.length == 0" src="../../../../static/userback.png"
  2786. style="width: 100%; height: 100%" />
  2787. <div slot="file" slot-scope="{ file }">
  2788. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2789. <span class="el-upload-list__item-actions">
  2790. <span class="el-upload-list__item-delete"
  2791. @click="handleRemove1(file, 'imageList3', 'imgList6')">
  2792. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2793. <i class="el-icon-delete"></i>
  2794. </span>
  2795. </span>
  2796. </div>
  2797. </el-upload>
  2798. </div>
  2799. <div class="aaa">
  2800. <span>3.营业执照</span>
  2801. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag multiple
  2802. ref="upload4">
  2803. <img src="../../../../static/userfront.png" style="width: 100%; height: 100%" />
  2804. <div slot="file" slot-scope="{ file }">
  2805. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2806. <span class="el-upload-list__item-actions">
  2807. <span class="el-upload-list__item-delete"
  2808. @click="handleRemove1(file, 'imageList2', 'imgList4')">
  2809. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2810. <i class="el-icon-delete"></i>
  2811. </span>
  2812. </span>
  2813. </div>
  2814. </el-upload>
  2815. </div>
  2816. </div>
  2817. <div class="flex f-wrap">
  2818. <div class="aaa">
  2819. <span id="insured">1.被保人身份证(正面)</span>
  2820. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList4', 'imgList7', 'C04')
  2821. " :file-list="imgList7" multiple ref="upload7" :class="{ styleB: imgList7.length === 1 }">
  2822. <img v-show="imgList7.length == 0" src="../../../../static/userfront.png"
  2823. style="width: 100%; height: 100%" />
  2824. <div slot="file" slot-scope="{ file }">
  2825. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2826. <span class="el-upload-list__item-actions">
  2827. <span class="el-upload-list__item-delete"
  2828. @click="handleRemove1(file, 'imageList4', 'imgList7')">
  2829. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2830. <i class="el-icon-delete"></i>
  2831. </span>
  2832. </span>
  2833. </div>
  2834. </el-upload>
  2835. </div>
  2836. <div class="aaa">
  2837. <span>2.被保人身份证(反面)</span>
  2838. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList4', 'imgList8', 'D04')
  2839. " :file-list="imgList8" multiple ref="upload8" :class="{ styleB: imgList8.length === 1 }">
  2840. <img v-show="imgList8.length == 0" src="../../../../static/userback.png"
  2841. style="width: 100%; height: 100%" />
  2842. <div slot="file" slot-scope="{ file }">
  2843. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2844. <span class="el-upload-list__item-actions">
  2845. <span class="el-upload-list__item-delete"
  2846. @click="handleRemove1(file, 'imageList4', 'imgList8')">
  2847. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2848. <i class="el-icon-delete"></i>
  2849. </span>
  2850. </span>
  2851. </div>
  2852. </el-upload>
  2853. </div>
  2854. <div class="aaa">
  2855. <span>3.营业执照</span>
  2856. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag multiple
  2857. ref="upload4">
  2858. <img src="../../../../static/userfront.png" style="width: 100%; height: 100%" />
  2859. <div slot="file" slot-scope="{ file }">
  2860. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2861. <span class="el-upload-list__item-actions">
  2862. <span class="el-upload-list__item-delete"
  2863. @click="handleRemove1(file, 'imageList2', 'imgList4')">
  2864. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2865. <i class="el-icon-delete"></i>
  2866. </span>
  2867. </span>
  2868. </div>
  2869. </el-upload>
  2870. </div>
  2871. </div>
  2872. <div class="flex f-wrap" id="relationship">
  2873. <div class="aaa">
  2874. <span>1.关系证明</span>
  2875. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  2876. drivingupload(file, 'imageList5', 'imgList11', 'GX00')
  2877. " :file-list="imgList11" multiple ref="upload3"
  2878. :class="{ styleB: imgList11.length === 1 }">
  2879. <img v-show="imgList11.length == 0" src="../../../../static/userfront.png"
  2880. style="width: 100%; height: 100%" />
  2881. <div slot="file" slot-scope="{ file }">
  2882. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2883. <span class="el-upload-list__item-actions">
  2884. <span class="el-upload-list__item-delete"
  2885. @click="handleRemove1(file, 'imageList5', 'imgList11')">
  2886. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2887. <i class="el-icon-delete"></i>
  2888. </span>
  2889. </span>
  2890. </div>
  2891. </el-upload>
  2892. </div>
  2893. </div>
  2894. <div class="flex f-wrap" id="yanchezhao">
  2895. <div class="aaa">
  2896. <span>1.验车照(车架)</span>
  2897. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  2898. drivingupload(file, 'imageList6', 'imgList13', 'C0500')
  2899. " :file-list="imgList13" multiple ref="upload3"
  2900. :class="{ styleB: imgList13.length === 1 }">
  2901. <img v-show="imgList13.length == 0" src="../../../../static/userfront.png"
  2902. style="width: 100%; height: 100%" />
  2903. <div slot="file" slot-scope="{ file }">
  2904. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2905. <span class="el-upload-list__item-actions">
  2906. <span class="el-upload-list__item-delete"
  2907. @click="handleRemove1(file, 'imageList6', 'imgList13')">
  2908. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2909. <i class="el-icon-delete"></i>
  2910. </span>
  2911. </span>
  2912. </div>
  2913. </el-upload>
  2914. </div>
  2915. <div class="aaa">
  2916. <span>2.验车照(后左)</span>
  2917. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  2918. drivingupload(file, 'imageList6', 'imgList14', 'C0501')
  2919. " :file-list="imgList14" multiple ref="upload3"
  2920. :class="{ styleB: imgList14.length === 1 }">
  2921. <img v-show="imgList14.length == 0" src="../../../../static/userfront.png"
  2922. style="width: 100%; height: 100%" />
  2923. <div slot="file" slot-scope="{ file }">
  2924. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2925. <span class="el-upload-list__item-actions">
  2926. <span class="el-upload-list__item-delete"
  2927. @click="handleRemove1(file, 'imageList6', 'imgList14')">
  2928. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2929. <i class="el-icon-delete"></i>
  2930. </span>
  2931. </span>
  2932. </div>
  2933. </el-upload>
  2934. </div>
  2935. <div class="aaa">
  2936. <span>3.验车照(后右)</span>
  2937. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  2938. drivingupload(file, 'imageList6', 'imgList15', 'C0502')
  2939. " :file-list="imgList15" multiple ref="upload3"
  2940. :class="{ styleB: imgList15.length === 1 }">
  2941. <img v-show="imgList15.length == 0" src="../../../../static/userfront.png"
  2942. style="width: 100%; height: 100%" />
  2943. <div slot="file" slot-scope="{ file }">
  2944. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2945. <span class="el-upload-list__item-actions">
  2946. <span class="el-upload-list__item-delete"
  2947. @click="handleRemove1(file, 'imageList6', 'imgList15')">
  2948. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2949. <i class="el-icon-delete"></i>
  2950. </span>
  2951. </span>
  2952. </div>
  2953. </el-upload>
  2954. </div>
  2955. <div class="aaa">
  2956. <span>4.验车照(前右)</span>
  2957. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  2958. drivingupload(file, 'imageList6', 'imgList16', 'C0503')
  2959. " :file-list="imgList16" multiple ref="upload3"
  2960. :class="{ styleB: imgList16.length === 1 }">
  2961. <img v-show="imgList16.length == 0" src="../../../../static/userfront.png"
  2962. style="width: 100%; height: 100%" />
  2963. <div slot="file" slot-scope="{ file }">
  2964. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2965. <span class="el-upload-list__item-actions">
  2966. <span class="el-upload-list__item-delete"
  2967. @click="handleRemove1(file, 'imageList6', 'imgList16')">
  2968. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2969. <i class="el-icon-delete"></i>
  2970. </span>
  2971. </span>
  2972. </div>
  2973. </el-upload>
  2974. </div>
  2975. <div class="aaa">
  2976. <span>5.验车照(前左)</span>
  2977. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  2978. drivingupload(file, 'imageList6', 'imgList17', 'C0504')
  2979. " :file-list="imgList17" multiple ref="upload3"
  2980. :class="{ styleB: imgList17.length === 1 }">
  2981. <img v-show="imgList17.length == 0" src="../../../../static/userfront.png"
  2982. style="width: 100%; height: 100%" />
  2983. <div slot="file" slot-scope="{ file }">
  2984. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2985. <span class="el-upload-list__item-actions">
  2986. <span class="el-upload-list__item-delete"
  2987. @click="handleRemove1(file, 'imageList6', 'imgList17')">
  2988. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2989. <i class="el-icon-delete"></i>
  2990. </span>
  2991. </span>
  2992. </div>
  2993. </el-upload>
  2994. </div>
  2995. <div class="aaa">
  2996. <span>6.验车照(正前)</span>
  2997. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  2998. drivingupload(file, 'imageList6', 'imgList18', 'C0506')
  2999. " :file-list="imgList18" multiple ref="upload3"
  3000. :class="{ styleB: imgList18.length === 1 }">
  3001. <img v-show="imgList18.length == 0" src="../../../../static/userfront.png"
  3002. style="width: 100%; height: 100%" />
  3003. <div slot="file" slot-scope="{ file }">
  3004. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3005. <span class="el-upload-list__item-actions">
  3006. <span class="el-upload-list__item-delete"
  3007. @click="handleRemove1(file, 'imageList6', 'imgList18')">
  3008. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3009. <i class="el-icon-delete"></i>
  3010. </span>
  3011. </span>
  3012. </div>
  3013. </el-upload>
  3014. </div>
  3015. <div class="aaa">
  3016. <span>7.验车照(正后)</span>
  3017. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3018. drivingupload(file, 'imageList6', 'imgList19', 'C0507')
  3019. " :file-list="imgList19" multiple ref="upload3"
  3020. :class="{ styleB: imgList19.length === 1 }">
  3021. <img v-show="imgList19.length == 0" src="../../../../static/userfront.png"
  3022. style="width: 100%; height: 100%" />
  3023. <div slot="file" slot-scope="{ file }">
  3024. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3025. <span class="el-upload-list__item-actions">
  3026. <span class="el-upload-list__item-delete"
  3027. @click="handleRemove1(file, 'imageList6', 'imgList19')">
  3028. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3029. <i class="el-icon-delete"></i>
  3030. </span>
  3031. </span>
  3032. </div>
  3033. </el-upload>
  3034. </div>
  3035. <div class="aaa">
  3036. <span>8.验车照(人车合影)</span>
  3037. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3038. drivingupload(file, 'imageList6', 'imgList20', 'C0505')
  3039. " :file-list="imgList20" multiple ref="upload3"
  3040. :class="{ styleB: imgList20.length === 1 }">
  3041. <img v-show="imgList20.length == 0" src="../../../../static/userfront.png"
  3042. style="width: 100%; height: 100%" />
  3043. <div slot="file" slot-scope="{ file }">
  3044. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3045. <span class="el-upload-list__item-actions">
  3046. <span class="el-upload-list__item-delete"
  3047. @click="handleRemove1(file, 'imageList6', 'imgList20')">
  3048. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3049. <i class="el-icon-delete"></i>
  3050. </span>
  3051. </span>
  3052. </div>
  3053. </el-upload>
  3054. </div>
  3055. <div class="aaa">
  3056. <span>9.验车照(地标合影)</span>
  3057. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3058. drivingupload(file, 'imageList6', 'imgList21', 'C0508')
  3059. " :file-list="imgList21" multiple ref="upload3"
  3060. :class="{ styleB: imgList21.length === 1 }">
  3061. <img v-show="imgList21.length == 0" src="../../../../static/userfront.png"
  3062. style="width: 100%; height: 100%" />
  3063. <div slot="file" slot-scope="{ file }">
  3064. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3065. <span class="el-upload-list__item-actions">
  3066. <span class="el-upload-list__item-delete"
  3067. @click="handleRemove1(file, 'imageList6', 'imgList21')">
  3068. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3069. <i class="el-icon-delete"></i>
  3070. </span>
  3071. </span>
  3072. </div>
  3073. </el-upload>
  3074. </div>
  3075. <div class="aaa">
  3076. <span>10.验车照(工作台)</span>
  3077. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3078. drivingupload(file, 'imageList6', 'imgList22', 'C0509')
  3079. " :file-list="imgList22" multiple ref="upload3"
  3080. :class="{ styleB: imgList22.length === 1 }">
  3081. <img v-show="imgList22.length == 0" src="../../../../static/userfront.png"
  3082. style="width: 100%; height: 100%" />
  3083. <div slot="file" slot-scope="{ file }">
  3084. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3085. <span class="el-upload-list__item-actions">
  3086. <span class="el-upload-list__item-delete"
  3087. @click="handleRemove1(file, 'imageList6', 'imgList22')">
  3088. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3089. <i class="el-icon-delete"></i>
  3090. </span>
  3091. </span>
  3092. </div>
  3093. </el-upload>
  3094. </div>
  3095. <div class="aaa">
  3096. <span>11.验车照(天窗)</span>
  3097. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3098. drivingupload(file, 'imageList6', 'imgList23', 'C0510')
  3099. " :file-list="imgList23" multiple ref="upload3"
  3100. :class="{ styleB: imgList23.length === 1 }">
  3101. <img v-show="imgList23.length == 0" src="../../../../static/userfront.png"
  3102. style="width: 100%; height: 100%" />
  3103. <div slot="file" slot-scope="{ file }">
  3104. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3105. <span class="el-upload-list__item-actions">
  3106. <span class="el-upload-list__item-delete"
  3107. @click="handleRemove1(file, 'imageList6', 'imgList23')">
  3108. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3109. <i class="el-icon-delete"></i>
  3110. </span>
  3111. </span>
  3112. </div>
  3113. </el-upload>
  3114. </div>
  3115. </div>
  3116. <div class="flex f-wrap" id="snbaodan">
  3117. <div class="aaa">
  3118. <span>1.上年商业险保单</span>
  3119. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3120. drivingupload(file, 'imageList6', 'imgList24', 'LAST_INSURANCE_POLICY')
  3121. " :file-list="imgList24" multiple ref="upload3"
  3122. :class="{ styleB: imgList24.length === 1 }">
  3123. <img v-show="imgList24.length == 0" src="../../../../static/userfront.png"
  3124. style="width: 100%; height: 100%" />
  3125. <div slot="file" slot-scope="{ file }">
  3126. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3127. <span class="el-upload-list__item-actions">
  3128. <span class="el-upload-list__item-delete"
  3129. @click="handleRemove1(file, 'imageList6', 'imgList24')">
  3130. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3131. <i class="el-icon-delete"></i>
  3132. </span>
  3133. </span>
  3134. </div>
  3135. </el-upload>
  3136. </div>
  3137. </div>
  3138. </el-col>
  3139. </el-row>
  3140. <span slot="footer" class="dialog-footer">
  3141. <el-button size="small" @click="imageUploaddialogVisible = false">取 消</el-button>
  3142. <el-button size="small" type="primary" @click="uploadinformation">上传资料</el-button>
  3143. </span>
  3144. </el-dialog>
  3145. </div>
  3146. </template>
  3147. <script>
  3148. let _self;
  3149. import QRCode from "qrcodejs2";
  3150. import Cookies from "js-cookie";
  3151. import CommonUtil from "@/utils/comutil.js";
  3152. import {
  3153. getAgeByIdCard,
  3154. searchkey,
  3155. addressCode,
  3156. getGenderByIdCard,
  3157. } from "@/utils/validate.js";
  3158. import citydata from "@/assets/js/citydata.js";
  3159. // import yongchengData from '../../assets/js/yongchengData';
  3160. import { regionData, codeToText } from "element-china-area-data";
  3161. import { base64ToPath } from "@/common/image-tools-base64.js";
  3162. import quotationDialog from "@/views/Core/components/quotationDialog.vue";
  3163. import quotationDialogPro from "@/views/Core/components/quotationDialogPro.vue";
  3164. import detailsDialog from "@/views/Core/components/detailsDialog.vue";
  3165. import imageDialog from "@/views/Core/components/imageDialog.vue";
  3166. import { mapState } from "vuex";
  3167. export default {
  3168. inject: ["reload"],
  3169. name: "qrCode",
  3170. data() {
  3171. var checkpurchasePrice = (rule, value, callback) => {
  3172. if (!value) {
  3173. callback(new Error("新车购置价不能为空"));
  3174. } else if (value == 0) {
  3175. callback(new Error("新车购置价不能为零"));
  3176. } else {
  3177. callback();
  3178. }
  3179. };
  3180. var checkframeNo = (rule, value, callback) => {
  3181. if (value.length < 17) {
  3182. callback(new Error("车架号不足17位"));
  3183. } else if (
  3184. value.indexOf("I") != "-1" ||
  3185. value.indexOf("O") != "-1" ||
  3186. value.indexOf("Q") != "-1"
  3187. ) {
  3188. callback(new Error("车架号不能包含(I O Q)三个字母"));
  3189. } else {
  3190. callback();
  3191. }
  3192. };
  3193. var carPhoneValid = (rule, value, callback) => {
  3194. const plateNumber =
  3195. /^([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领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})$/;
  3196. if (!value) {
  3197. callback(new Error("请输入车牌号"));
  3198. } else if (plateNumber.test(value)) {
  3199. callback();
  3200. } else {
  3201. callback(new Error("请输入正确的车牌号"));
  3202. }
  3203. };
  3204. return {
  3205. inquiryNowList: [], // 现询列表
  3206. isInquiryNowDisable: false,
  3207. taikangtemplateSelection: [], // 泰康
  3208. taikangInsuranceDataTable: [],
  3209. taikangaccidentDataList: [],
  3210. accidentPremiumTk: "",
  3211. accidentPremiumPA:'',
  3212. accidentFormTk: {
  3213. quantity: "1",
  3214. sumPremium: 0,
  3215. },
  3216. pinganDataDetail:[],
  3217. pinganDataDetailVisible:false,
  3218. accidentFormPA: [{
  3219. quantity: "1",
  3220. premium: 0,
  3221. pingantemplateSelection:'',
  3222. pinganInsuranceDataTable:[],
  3223. pinganInsurancetype:'',
  3224. },
  3225. {
  3226. quantity: "1",
  3227. premium: 0,
  3228. pingantemplateSelection:'',
  3229. pinganInsuranceDataTable:[],
  3230. pinganInsurancetype:'',
  3231. },
  3232. {
  3233. quantity: "1",
  3234. premium: 0,
  3235. pingantemplateSelection:'',
  3236. pinganInsuranceDataTable:[],
  3237. pinganInsurancetype:'',
  3238. }],
  3239. taikangaccidentalDrivingVo: {},
  3240. pinganaccidentalDrivingVo: {
  3241. 0:{},
  3242. 1:{},
  3243. 2:[],
  3244. },
  3245. nowCostsId: undefined, // 现询
  3246. policyNumberForm: {
  3247. jqpolicyno: "",
  3248. sypolicyno: "",
  3249. jypolicyno: "",
  3250. jqpremium: "",
  3251. sypremium: "",
  3252. jypremium: "",
  3253. taxamount: "",
  3254. commissionFeevalue: "",
  3255. otherFeevalue: "",
  3256. jqSuperviseCostsProportion: "",
  3257. sySuperviseCostsProportion: "",
  3258. noSuperviseCostsProportion: "",
  3259. jqOtherCostsProportion: "",
  3260. syOtherCostsProportion: "",
  3261. noOtherCostsProportion: "",
  3262. jqReceivableProportion: "",
  3263. syReceivableProportion: "",
  3264. noReceivableProportion: "",
  3265. jqPolicyList: [],
  3266. syPolicyList: [],
  3267. jqSignList: [],
  3268. noPolicyList: [],
  3269. noCostsProportion: '',
  3270. jqCostsProportion: '',
  3271. syCostsProportion: '',
  3272. },
  3273. watermarkedImage: "",
  3274. redictInfoMsg: [],
  3275. redictInfodialogVisible: false,
  3276. qrcodeWidth: "180",
  3277. qrcodeHeight: "180",
  3278. activeName: "1",
  3279. isTaxSourceModel: "",
  3280. tabLiIndex: 0,
  3281. tabLimenu: [
  3282. {
  3283. name: "车辆信息",
  3284. scroll: "vehicle",
  3285. },
  3286. {
  3287. name: "车主信息",
  3288. scroll: "owner",
  3289. },
  3290. {
  3291. name: "投保人信息",
  3292. scroll: "applicant",
  3293. },
  3294. {
  3295. name: "被保人信息",
  3296. scroll: "insured",
  3297. },
  3298. {
  3299. name: "关系证明",
  3300. scroll: "relationship",
  3301. },
  3302. {
  3303. name: "验车照",
  3304. scroll: "yanchezhao",
  3305. },
  3306. {
  3307. name: "上年商业险保单",
  3308. scroll: "snbaodan",
  3309. },
  3310. ],
  3311. packageValue: "",
  3312. packageOptions: [],
  3313. zhongmeitemplateSelection: "", //中煤驾意险产品选中值
  3314. zhongmeiInsuranceData: [], //中煤驾意险产品列表数据
  3315. zhongmeiInsuranceDataTable: [], //中煤驾意险产品明细方案数据
  3316. zhongmeiaccidentalDrivingVo: {}, //中煤驾意险最终选中字段
  3317. pinganInsuranceData: [], //平安驾意险产品列表数据
  3318. currentCell: null,
  3319. feeDetailInfo: [], //费用明细信息
  3320. immediatelyValue: false,
  3321. isRetractZJ: false,
  3322. isRetractHB: false,
  3323. isRetractZM: false,
  3324. isRetractASTP: false,
  3325. isRetractZA: false,
  3326. isRetractYC: false,
  3327. isRetractRS: false,
  3328. anshengInsurancetype: "",
  3329. iscCrownerShow: false,
  3330. isApplicantShow: false,
  3331. isInsuredShow: false,
  3332. formInline: {},
  3333. anshengtemplateSelection: "", //安盛
  3334. anshengInsuranceData: [], //安盛驾意险
  3335. anshengInsuranceDataTable: [], //安盛驾意险
  3336. anshengaccidentalDrivingVo: {}, //安盛驾意险
  3337. hengbangtemplateSelection: "", //恒邦
  3338. hengbangInsuranceData: [], //恒邦驾意险
  3339. hengbangInsuranceDataTable: [],
  3340. hengbangaccidentalDrivingVo: {}, //恒邦驾意险
  3341. insuranceHN: "", //华农
  3342. huanongInsuranceData: [], //华农驾意险
  3343. huanongInsuranceDataTable: [],
  3344. huanongaccidentalDrivingVo: {}, //华农驾意险
  3345. renshouaccidentalDrivingVo: {}, //人寿意外险
  3346. renshouInsuranceData: [], //-人寿意外险list
  3347. ziJinInsuranceData: [], //-紫金意外险list
  3348. zhonganInsuranceData: [], //众安驾意险
  3349. zhonganaccidentalDrivingVo: {}, //众安驾意险
  3350. zijinInsuranceDataTable: [],
  3351. zijintemplateSelection: "",
  3352. accidentalDrivingVo: [], //-紫金意外险传参
  3353. zijinengageListData: [], //紫金特约
  3354. zijinengageList: [], //紫金特约
  3355. // ------------紫金意外险
  3356. renshoutemplateSelection: "", //人寿
  3357. renshouInsuranceDataTable: [],
  3358. zhongantemplateSelection: "", //众安
  3359. zhonganInsuranceDataTable: [],
  3360. taipingtemplateSelection: "", //太平
  3361. taipingInsuranceData: [], //太平驾意险
  3362. TPDrivingChangeInsuranceData: [],
  3363. taipingaccidentalDrivingVo: {}, //太平驾意险
  3364. licenseplate: true,
  3365. calculateLoading: false, //保费计算按钮 节流
  3366. preserveQuoteLoading: false, //保存按钮
  3367. emporaryLoading: false,
  3368. accidentForm: {
  3369. quantity: "1",
  3370. sumPremium: 0,
  3371. }, //永诚意外险内容
  3372. accidentFormHN: {
  3373. allQuantity: "1",
  3374. quantity: "1",
  3375. }, //华农意外险内容
  3376. yongchengaccidentDataList: [], //永诚意外险
  3377. yongchengtemplateSelection: "",
  3378. guoRenaccidentDataList: [], //国任意外险
  3379. guoRenInsuranceDataTable: [],
  3380. guoRenaccidentDataListChild: [],
  3381. guoRenaccidentalDrivingVo: {}, //国任驾意险
  3382. dajiatemplateSelection: "",
  3383. dajiaaccidentDataListChild: [],
  3384. dajiaaccidentForm: {},
  3385. dajiaInsuranceData: [], //大家意外险
  3386. dajiaInsuranceDataTable: [],
  3387. dajiaaccidentalDrivingVo: {},
  3388. chengtaiaccidentalDrivingVo: {},//诚泰驾意险
  3389. yongchengInsuranceDataTable: [],
  3390. guoRenaccidentLoading: false,
  3391. contributingLoading: false,
  3392. guoRenaccidentPremium: "",
  3393. guoRenaccidentForm: {
  3394. quantity: "1",
  3395. sumPremium: 0,
  3396. }, //国任意外险内容
  3397. accidentFormZM: {
  3398. quantity: "1",
  3399. sumPremium: 0,
  3400. }, //中煤意外险内容
  3401. boHaiaccidentDataList: [], //渤海意外险
  3402. boHaigtemplateSelection:'',
  3403. boHaiaccidentForm: {
  3404. copies: "1",
  3405. policyNum: 0,
  3406. },
  3407. bohaiInsuranceDataTable: [],
  3408. accidentPremium: "",
  3409. accidentPremiumZM: "",
  3410. contributingState: false, //是否为国任特约
  3411. pickerOptions: {
  3412. disabledDate(time) {
  3413. //若选择的日期小于当前日期(包含今天)
  3414. return time.getTime() > Date.now();
  3415. //若选择的日期大于当前日期(不包含今天): time.getTime() < Date.now()
  3416. //若选择的日期小于当前日期(不包含今天): time.getTime() > Date.now() - 8.64e7
  3417. //若选择的日期小于等于当前日期(包含今天): time.getTime() > Date.now()
  3418. },
  3419. },
  3420. attributionform: {
  3421. //续保查询数据
  3422. configure: [],
  3423. companyId: "",
  3424. },
  3425. continuousAction: [], //续保配置项
  3426. //永诚转保确认码
  3427. cqryCdeJq: "",
  3428. cqryCdeSy: "",
  3429. renewalCodeJq: "", //交强确认码
  3430. renewalCodeSy: "", //商业确认码
  3431. renewalCodeJqImg: "", //交强图片
  3432. renewalCodeSyImg: "", //商业图片
  3433. //-----------------
  3434. showViewer: false,
  3435. transferDateShow: false, //转移登记日期
  3436. yonganchecked: false, //永安驾意险
  3437. renbaochecked: false, //人保驾意险
  3438. zhongmeichecked: false, //中煤驾意险
  3439. hengbangchecked: false, //恒邦驾意险
  3440. yongchengchecked: false, //永诚驾意险
  3441. yonganDrivinglist: [],
  3442. renbaoDrivinglist: [],
  3443. zhongmeiDrivinglist: [],
  3444. hengbangDrivinglist: [],
  3445. yongchengDrivinglist: [],
  3446. tbczcarShow: true, //投保人同车主
  3447. bbczcarShow: false, //被保人同车主
  3448. bbtbcarShow: true, //被保人同投保人
  3449. imageUploadShow: true, //上传影像显示
  3450. ProViewImg: "", //预览图片
  3451. carfrontImg: "", //行驶证正面
  3452. carbackImg: "", //行驶证背面
  3453. userfrontImg: "", //身份证正面
  3454. userbackImg: "", //身份证背面
  3455. businessImg: "",
  3456. CarFrontFile: "", //车正面文件流
  3457. CarBackFile: "", //车背面文件流
  3458. C02File: "",
  3459. D02File: "",
  3460. C03File: "",
  3461. D03File: "",
  3462. C04File: "",
  3463. D04File: "",
  3464. userIndex: 1, //区分三种人员
  3465. TabName: "car", //默认选项卡
  3466. value1: "",
  3467. chexingdialogVisible: false, //车型选择 显示/隐藏
  3468. sbdmdialogVisible: false, //车型车辆识别代码选择 显示/隐藏
  3469. codedialogVisible: false, //二维码 显示/隐藏
  3470. codedialogVisiblePro: false,
  3471. uploadcardialogVisible: false, //行驶证识别 显示/隐藏
  3472. uploaduserdialogVisible: false, //身份证识别 显示/隐藏
  3473. imageUploaddialogVisible: false, //影像上传 显示/隐藏
  3474. policyUploaddialogVisible: false, //保单上传
  3475. underwritingdialogVisible: false, //核保信息 显示/隐藏
  3476. renewalCodedialogVisible: false, //转保确认码输入
  3477. hbsubmitdialogVisible: false, //核保弹框
  3478. signaturedialogVisible:false, //生成签章
  3479. signaturecode:null,
  3480. Carinsurance: {
  3481. jqinsurance: "1", //交强险
  3482. syinsurance: "1", //商业险
  3483. },
  3484. jqchecked: true,
  3485. sychecked: false,
  3486. jqstartDate: "", //交强时间
  3487. jqendDate: "", //交强时间
  3488. systartDate: "", //商业时间
  3489. syendDate: "", //商业时间
  3490. loading: false, //加载事件
  3491. reslist: [], //车型列表
  3492. userId: "", //出单工号
  3493. carInfo: {
  3494. powerScale: "", ///功率
  3495. licenseNo: "", //车牌号
  3496. brandName: "", //车辆品牌型号
  3497. vinNo: "", //车架号
  3498. engineNo: "", //发动机号
  3499. modelCode: "", //车型编码
  3500. seatCount: null, //核定载客量 核定载人数
  3501. purchasePrice: null, //新车购置价最低,行业实际价值,协商价值
  3502. carBrand: "", //车型品牌
  3503. ciCarName: "", //行业车型名称
  3504. ciModelCode: "", //行业车型编码
  3505. completeKerbMass: "", //整备质量
  3506. exhaustScale: "", //排量
  3507. factory: "", //工厂名称
  3508. factoryid: "", //工厂编码
  3509. frameNo: "", //车架号
  3510. licenseTypeCode: "02", //号牌种类
  3511. vehicleclass: "", //车辆类型
  3512. familyName: "", //车型
  3513. modelcname: "", //车型名称
  3514. powertypecode: "", //燃料类型编码
  3515. vehicleweight: "", //总质量
  3516. limitLoad: "", //核定载质量
  3517. caryear: null, //年款
  3518. cimodelclass: "A0", //车辆种类
  3519. energyType: "0", //能源类型
  3520. enginedesc: "", //排量
  3521. registerDate: "", //注册日期
  3522. issueDate: "", //发证日期
  3523. transferFlag: 0, //过户标志
  3524. transferFlagBi: false, //商业险是否过户
  3525. transferDate: "", //过户日期
  3526. loanStatus: 0, //贷款标志
  3527. firstBeneMan: "", //第一受益人
  3528. noLicenseFlag: false, //是否新车
  3529. cartype: "", //客车A0 货车H0
  3530. carnature: "02", //使用性质
  3531. vehicleUse: "05",
  3532. property: "1", //所属性质 1个人 2企业 3个人
  3533. },
  3534. carform: {
  3535. carOwner: "", //车主
  3536. licenseNo: "", //车牌号
  3537. modelcname: "", //车辆品牌型号
  3538. frameNo: "", //车架号
  3539. engineNo: "", //发动机号
  3540. registerDate: "", //注册日期
  3541. issueDate: "", //发证日期
  3542. grossMass: "", //总质量
  3543. unladenMass: "", //整备质量
  3544. limitLoad: "", //核定载质量
  3545. approvedPassengersCapacity: "", //核定载客数
  3546. },
  3547. ownerInfoform: {
  3548. name: "",
  3549. identifyType: "",
  3550. identifyNumber: "",
  3551. age: "", //年龄
  3552. gender: "", //性别
  3553. addr: "",
  3554. email: "",
  3555. mobile: "",
  3556. identifyValidDate: "", //有效期起期
  3557. identifyValidEndDate: "", //有效期止期
  3558. // province: "",//省
  3559. // city: "",//市
  3560. // county: "",//县
  3561. },
  3562. riskList: [], //险种大类信息
  3563. kindList: [], //商业险险别
  3564. ownerInfo: {
  3565. //车主
  3566. name: "", //姓名
  3567. identifyType: "01", //身份证类型
  3568. identifyNumber: "", //身份证号
  3569. age: "", //年龄
  3570. gender: "", //性别
  3571. addr: "", //地址
  3572. email: "", //邮箱
  3573. mobile: "", //电话
  3574. identifyValidDate: "", //有效期起期
  3575. identifyValidEndDate: "", //有效期止期
  3576. // province: "",//省
  3577. // city: "",//市
  3578. // county: "",//县
  3579. provinceData: [], //省市区
  3580. },
  3581. policyHolderInfo: {
  3582. //投保人
  3583. name: "", //姓名
  3584. identifyType: "01", //身份证类型
  3585. identifyNumber: "", //身份证号
  3586. age: "", //年龄
  3587. gender: "", //性别
  3588. addr: "", //地址
  3589. email: "", //邮箱
  3590. mobile: "", //电话
  3591. identifyValidDate: "", //有效期起期
  3592. identifyValidEndDate: "", //有效期止期
  3593. // province: "",//省
  3594. // city: "",//市
  3595. // county: "",//县
  3596. provinceData: [], //省市区
  3597. },
  3598. insuredPersonInfo: {
  3599. //被保人
  3600. name: "", //姓名
  3601. identifyType: "01", //身份证类型
  3602. identifyNumber: "", //身份证号
  3603. age: "", //年龄
  3604. gender: "", //性别
  3605. addr: "", //地址
  3606. email: "", //邮箱
  3607. mobile: "", //电话
  3608. identifyValidDate: "", //有效期起期
  3609. identifyValidEndDate: "", //有效期止期
  3610. provinceData: [], //省市区
  3611. // province: "",//省
  3612. // city: "",//市
  3613. // county: "",//县
  3614. },
  3615. //车船税form
  3616. vehicleAndVesselTaxForm: {
  3617. taxRelifFlag: "1", //类型
  3618. identifyNumber: "", //纳税人识别号
  3619. taxpayerIdentifier: "01", //纳税人证件类型
  3620. taxpayerName: "", //纳税人名称
  3621. extendChar2: "", //减免税凭证号
  3622. paidFreeCertificate: "", //完税凭证号
  3623. relifReason: "", //减免税原因
  3624. taxComCode: "", //税务机关代码
  3625. taxComName: "", ///税务机关名称
  3626. taxDocumentDate: "", //完税日期
  3627. taxPaidAreaCode: "", //完税凭证地区代码
  3628. taxRelief: "", //减税比例
  3629. },
  3630. //车辆用途列表
  3631. vehicleList: [],
  3632. //能源种类列表
  3633. rules: {
  3634. extendChar2: [
  3635. { required: true, message: "请输入减免税凭证号", trigger: "blur" },
  3636. ],
  3637. paidFreeCertificate: [
  3638. { required: true, message: "请输入完税凭证号", trigger: "blur" },
  3639. ],
  3640. relifReason: [
  3641. { required: true, message: "请输入减免税原因", trigger: "blur" },
  3642. ],
  3643. taxComCode: [
  3644. { required: true, message: "请输入税务机关代码", trigger: "blur" },
  3645. ],
  3646. taxComName: [
  3647. { required: true, message: "请输入税务机关名称", trigger: "blur" },
  3648. ],
  3649. taxDocumentDate: [
  3650. { required: true, message: "请输入完税日期", trigger: "blur" },
  3651. ],
  3652. taxPaidAreaCode: [
  3653. { required: true, message: "请选择完税地区", trigger: "blur" },
  3654. ],
  3655. taxRelief: [
  3656. { required: true, message: "请输入减税比例", trigger: "blur" },
  3657. ],
  3658. taxpayerName: [
  3659. { required: true, message: "请输入纳税人名称", trigger: "blur" },
  3660. ],
  3661. taxpayerIdentifier: [
  3662. { required: true, message: "请选择证件类型", trigger: "blur" },
  3663. ],
  3664. taxRelifFlag: [
  3665. { required: true, message: "请选择纳税类型", trigger: "blur" },
  3666. ],
  3667. energyType: [
  3668. { required: true, message: "请选择能源种类", trigger: "blur" },
  3669. ],
  3670. cimodelclass: [
  3671. { required: true, message: "请选择车辆种类", trigger: "blur" },
  3672. ],
  3673. carnature: [
  3674. { required: true, message: "请选择使用性质", trigger: "blur" },
  3675. ],
  3676. cartype: [
  3677. { required: true, message: "请选择车辆类型", trigger: "blur" },
  3678. ],
  3679. vehicleUse: [
  3680. { required: true, message: "请选择车辆用途", trigger: "blur" },
  3681. ],
  3682. brandName: [
  3683. { required: true, message: "请填写品牌型号", trigger: "blur" },
  3684. ],
  3685. licenseNo: [
  3686. { max: 8, message: "最多八个字符", trigger: "blur" },
  3687. { required: true, validator: carPhoneValid, trigger: "blur" },
  3688. ],
  3689. frameNo: [{ validator: checkframeNo, trigger: "blur" }],
  3690. engineNo: [
  3691. { required: true, message: "请填写发动机号", trigger: "blur" },
  3692. ],
  3693. purchasePrice: [
  3694. { required: true, validator: checkpurchasePrice, trigger: "blur" },
  3695. ],
  3696. registerDate: [
  3697. { required: true, message: "请选择注册时间", trigger: "blur" },
  3698. ],
  3699. issueDate: [
  3700. { required: true, message: "请选择发证日期", trigger: "blur" },
  3701. ],
  3702. transferDate: [
  3703. { required: true, message: "请选择转移登记日期", trigger: "blur" },
  3704. ],
  3705. seatCount: [
  3706. { required: true, message: "请输入座位数", trigger: "blur" },
  3707. ],
  3708. completeKerbMass: [
  3709. { required: true, message: "请输入整备质量", trigger: "blur" },
  3710. ],
  3711. name: [{ required: true, message: "请填写姓名", trigger: "blur" }],
  3712. taxamount: [
  3713. { required: true, message: "请填写车船税", trigger: "blur" },
  3714. ],
  3715. signDate: [
  3716. { required: true, message: "请填写签单日期", trigger: "blur" },
  3717. ],
  3718. // identifyNumber: [
  3719. // { required: true, message: "请填写证件号", trigger: "blur" },
  3720. // { min: 18, max: 18, message: "长度在18个字符", trigger: "blur" },
  3721. // {
  3722. // 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]$/,
  3723. // message: "请输入正确的证件号",
  3724. // trigger: "blur"
  3725. // }
  3726. // ],
  3727. identifyValidDate: [
  3728. { required: true, message: "请选择起期", trigger: "blur" },
  3729. ],
  3730. identifyValidEndDate: [
  3731. { required: true, message: "请选择止期", trigger: "blur" },
  3732. ],
  3733. addr: [
  3734. { required: true, message: "请填写地址", trigger: "blur" },
  3735. { min: 8, message: "最少8个字符", trigger: "blur" },
  3736. ],
  3737. mobile: [
  3738. { required: true, message: "请填写手机号", trigger: "blur" },
  3739. { min: 11, max: 11, message: "长度在11个字符", trigger: "blur" },
  3740. {
  3741. pattern:
  3742. /^(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}$/,
  3743. message: "请输入正确的手机号",
  3744. trigger: "blur",
  3745. },
  3746. ],
  3747. email: [
  3748. { min: 10, max: 20, message: "最少10个字符", trigger: "blur" },
  3749. {
  3750. pattern:
  3751. /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/,
  3752. message: "请输入正确的邮箱",
  3753. trigger: "blur",
  3754. },
  3755. ],
  3756. },
  3757. CIInsureList: {
  3758. //交强险
  3759. amount: "1",
  3760. amountDesc: "投保",
  3761. amtList: [
  3762. {
  3763. label: "不投保",
  3764. value: "0",
  3765. },
  3766. {
  3767. label: "投保",
  3768. value: "1",
  3769. },
  3770. ],
  3771. kindCode: "0507",
  3772. kindName: "交强险",
  3773. desc: "国家强制规定购买的险种,对第三方的人身或财产损失提供基本保障",
  3774. },
  3775. BIInsureList: {
  3776. //商业险
  3777. amount: "0",
  3778. amountDesc: "投保",
  3779. amtList: [
  3780. {
  3781. label: "不投保",
  3782. value: "0",
  3783. },
  3784. {
  3785. label: "投保",
  3786. value: "1",
  3787. },
  3788. ],
  3789. kindCode: "0510",
  3790. kindName: "商业险",
  3791. desc: "国家强制规定购买的险种,对第三方的人身或财产损失提供基本保障",
  3792. },
  3793. insureList: [
  3794. {
  3795. amount: "0",
  3796. amountDesc: "投保",
  3797. coveragePremium: 0,
  3798. amtList: [
  3799. {
  3800. label: "不投保",
  3801. value: "0",
  3802. },
  3803. {
  3804. label: "投保",
  3805. value: "1",
  3806. },
  3807. ],
  3808. kindCode: "A",
  3809. isMainRisk: true,
  3810. kindName: "机动车损失险",
  3811. desc: "保险期间内,被保险人或被保险机动车驾驶人在使用被保险机动车过程中,因自然灾害、意外事故、机动车被盗窃、抢劫、抢夺等情况(详见保险条款)造成被保险机动车直接损失,且不属于免除保险人责任的范围,保险人依照本保险合同的约定负责赔偿的险种。",
  3812. },
  3813. {
  3814. amount: "0",
  3815. amountDesc: "不投保",
  3816. coveragePremium: 0,
  3817. amtList: [
  3818. {
  3819. label: "不投保",
  3820. value: "0",
  3821. },
  3822. {
  3823. label: "10万",
  3824. value: "100000",
  3825. },
  3826. {
  3827. label: "15万",
  3828. value: "150000",
  3829. },
  3830. {
  3831. label: "20万",
  3832. value: "200000",
  3833. },
  3834. {
  3835. label: "30万",
  3836. value: "300000",
  3837. },
  3838. {
  3839. label: "50万",
  3840. value: "500000",
  3841. },
  3842. {
  3843. label: "100万",
  3844. value: "1000000",
  3845. },
  3846. {
  3847. label: "150万",
  3848. value: "1500000",
  3849. },
  3850. {
  3851. label: "200万",
  3852. value: "2000000",
  3853. },
  3854. {
  3855. label: "250万",
  3856. value: "2500000",
  3857. },
  3858. {
  3859. label: "300万",
  3860. value: "3000000",
  3861. },
  3862. {
  3863. label: "400万",
  3864. value: "4000000",
  3865. },
  3866. {
  3867. label: "500万",
  3868. value: "5000000",
  3869. },
  3870. {
  3871. label: "600万",
  3872. value: "6000000",
  3873. },
  3874. {
  3875. label: "800万",
  3876. value: "8000000",
  3877. },
  3878. {
  3879. label: "1000万",
  3880. value: "10000000",
  3881. },
  3882. ],
  3883. kindCode: "B",
  3884. isMainRisk: true,
  3885. kindName: "第三者责任险",
  3886. desc: "保险期间内,被保险人或其允许的驾驶人在使用被保险机动车过程中发生意外事故,致使第三者遭受人身伤亡或财产直接损毁,依法应当对第三者承担的损害赔偿责任,且不属于免除保险人责任的范围,保险人依照本保险合同的约定,对于超过机动车交通事故责任强制保险各分项赔偿限额的部分负责赔偿的险种。",
  3887. },
  3888. {
  3889. amount: "0",
  3890. amountDesc: "1万",
  3891. coveragePremium: 0,
  3892. amtList: [
  3893. {
  3894. label: "不投保",
  3895. value: "0",
  3896. },
  3897. {
  3898. label: "1万",
  3899. value: "10000",
  3900. },
  3901. {
  3902. label: "2万",
  3903. value: "20000",
  3904. },
  3905. {
  3906. label: "3万",
  3907. value: "30000",
  3908. },
  3909. {
  3910. label: "4万",
  3911. value: "40000",
  3912. },
  3913. {
  3914. label: "5万",
  3915. value: "50000",
  3916. },
  3917. {
  3918. label: "6万",
  3919. value: "60000",
  3920. },
  3921. {
  3922. label: "7万",
  3923. value: "70000",
  3924. },
  3925. {
  3926. label: "8万",
  3927. value: "80000",
  3928. },
  3929. {
  3930. label: "9万",
  3931. value: "90000",
  3932. },
  3933. {
  3934. label: "10万",
  3935. value: "100000",
  3936. },
  3937. {
  3938. label: "15万",
  3939. value: "150000",
  3940. },
  3941. {
  3942. label: "20万",
  3943. value: "200000",
  3944. },
  3945. {
  3946. label: "25万",
  3947. value: "250000",
  3948. },
  3949. {
  3950. label: "30万",
  3951. value: "300000",
  3952. },
  3953. {
  3954. label: "35万",
  3955. value: "350000",
  3956. },
  3957. {
  3958. label: "40万",
  3959. value: "400000",
  3960. },
  3961. {
  3962. label: "45万",
  3963. value: "450000",
  3964. },
  3965. {
  3966. label: "50万",
  3967. value: "500000",
  3968. },
  3969. ],
  3970. kindCode: "D3",
  3971. isMainRisk: true,
  3972. kindName: "司机责任险",
  3973. desc: "保险期间内,被保险人或其允许的驾驶人在使用被保险机动车过程中发生意外事故,致使车上人员遭受人身伤亡,且不属于免除保险人责任的范围,依法应当对车上人员承担的损害赔偿责任,保险人依照本保险合同的约定负责赔偿的险种。",
  3974. },
  3975. {
  3976. amount: "0",
  3977. amountDesc: "1万",
  3978. coveragePremium: 0,
  3979. amtList: [
  3980. {
  3981. label: "不投保",
  3982. value: "0",
  3983. },
  3984. {
  3985. label: "1万",
  3986. value: "10000",
  3987. },
  3988. {
  3989. label: "2万",
  3990. value: "20000",
  3991. },
  3992. {
  3993. label: "3万",
  3994. value: "30000",
  3995. },
  3996. {
  3997. label: "4万",
  3998. value: "40000",
  3999. },
  4000. {
  4001. label: "5万",
  4002. value: "50000",
  4003. },
  4004. {
  4005. label: "6万",
  4006. value: "60000",
  4007. },
  4008. {
  4009. label: "7万",
  4010. value: "70000",
  4011. },
  4012. {
  4013. label: "8万",
  4014. value: "80000",
  4015. },
  4016. {
  4017. label: "9万",
  4018. value: "90000",
  4019. },
  4020. {
  4021. label: "10万",
  4022. value: "100000",
  4023. },
  4024. {
  4025. label: "15万",
  4026. value: "150000",
  4027. },
  4028. {
  4029. label: "20万",
  4030. value: "200000",
  4031. },
  4032. {
  4033. label: "25万",
  4034. value: "250000",
  4035. },
  4036. {
  4037. label: "30万",
  4038. value: "300000",
  4039. },
  4040. {
  4041. label: "35万",
  4042. value: "350000",
  4043. },
  4044. {
  4045. label: "40万",
  4046. value: "400000",
  4047. },
  4048. {
  4049. label: "45万",
  4050. value: "450000",
  4051. },
  4052. {
  4053. label: "50万",
  4054. value: "500000",
  4055. },
  4056. ],
  4057. kindCode: "D4",
  4058. isMainRisk: true,
  4059. kindName: "乘客责任险",
  4060. desc: "保险期间内,被保险人或其允许的驾驶人在使用被保险机动车过程中发生意外事故,致使车上人员遭受人身伤亡,且不属于免除保险人责任的范围,依法应当对车上人员承担的损害赔偿责任,保险人依照本保险合同的约定负责赔偿的险种。",
  4061. },
  4062. {
  4063. amount: "0",
  4064. amountDesc: "不投保",
  4065. coveragePremium: 0,
  4066. amtList: [
  4067. {
  4068. label: "不投保",
  4069. value: "0",
  4070. },
  4071. {
  4072. label: "2千",
  4073. value: "2000",
  4074. },
  4075. {
  4076. label: "5千",
  4077. value: "5000",
  4078. },
  4079. {
  4080. label: "1万",
  4081. value: "10000",
  4082. },
  4083. {
  4084. label: "2万",
  4085. value: "20000",
  4086. },
  4087. ],
  4088. desc: "保险期间内,被保险机动车在被保险人或被保险机动车驾驶人使用过程中,发生无明显碰撞痕迹的车身划痕损失,保险人按照保险合同约定负责赔偿的险种",
  4089. isMainRisk: false,
  4090. kindCode: "L",
  4091. kindName: "车身划痕险",
  4092. mainRiskCodeList: "A",
  4093. },
  4094. {
  4095. amount: "0",
  4096. amountDesc: "不投保",
  4097. coveragePremium: 0,
  4098. amtList: [
  4099. {
  4100. label: "不投保",
  4101. value: "0",
  4102. },
  4103. {
  4104. label: "5%",
  4105. value: "5",
  4106. },
  4107. {
  4108. label: "10%",
  4109. value: "10",
  4110. },
  4111. {
  4112. label: "15%",
  4113. value: "15",
  4114. },
  4115. {
  4116. label: "20%",
  4117. value: "20",
  4118. },
  4119. ],
  4120. desc: "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
  4121. isMainRisk: false,
  4122. kindCode: "MJ1",
  4123. kindName: "绝对免赔率特约险(车损)",
  4124. mainRiskCodeList: "A",
  4125. },
  4126. {
  4127. amount: "0",
  4128. amountDesc: "不投保",
  4129. coveragePremium: 0,
  4130. amtList: [
  4131. {
  4132. label: "不投保",
  4133. value: "0",
  4134. },
  4135. {
  4136. label: "5%",
  4137. value: "5",
  4138. },
  4139. {
  4140. label: "10%",
  4141. value: "10",
  4142. },
  4143. {
  4144. label: "15%",
  4145. value: "15",
  4146. },
  4147. {
  4148. label: "20%",
  4149. value: "20",
  4150. },
  4151. ],
  4152. desc: "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
  4153. isMainRisk: false,
  4154. kindCode: "MJ2",
  4155. kindName: "绝对免赔率特约险(三者)",
  4156. mainRiskCodeList: "B",
  4157. },
  4158. {
  4159. amount: "0",
  4160. amountDesc: "不投保",
  4161. coveragePremium: 0,
  4162. amtList: [
  4163. {
  4164. label: "不投保",
  4165. value: "0",
  4166. },
  4167. {
  4168. label: "5%",
  4169. value: "5",
  4170. },
  4171. {
  4172. label: "10%",
  4173. value: "10",
  4174. },
  4175. {
  4176. label: "15%",
  4177. value: "15",
  4178. },
  4179. {
  4180. label: "20%",
  4181. value: "20",
  4182. },
  4183. ],
  4184. desc: "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
  4185. isMainRisk: false,
  4186. kindCode: "MJ3",
  4187. kindName: "绝对免赔率特约险(司机)",
  4188. mainRiskCodeList: "D3",
  4189. },
  4190. {
  4191. amount: "0",
  4192. amountDesc: "不投保",
  4193. coveragePremium: 0,
  4194. amtList: [
  4195. {
  4196. label: "不投保",
  4197. value: "0",
  4198. },
  4199. {
  4200. label: "5%",
  4201. value: "5",
  4202. },
  4203. {
  4204. label: "10%",
  4205. value: "10",
  4206. },
  4207. {
  4208. label: "15%",
  4209. value: "15",
  4210. },
  4211. {
  4212. label: "20%",
  4213. value: "20",
  4214. },
  4215. ],
  4216. desc: "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
  4217. isMainRisk: false,
  4218. kindCode: "MJ4",
  4219. kindName: "绝对免赔率特约险(乘客)",
  4220. mainRiskCodeList: "D4",
  4221. },
  4222. {
  4223. amount: "0",
  4224. amountDesc: "不投保",
  4225. coveragePremium: 0,
  4226. amtList: [
  4227. {
  4228. label: "不投保",
  4229. value: "0",
  4230. },
  4231. {
  4232. label: "1万",
  4233. value: "10000",
  4234. },
  4235. {
  4236. label: "2万",
  4237. value: "20000",
  4238. },
  4239. {
  4240. label: "4万",
  4241. value: "40000",
  4242. },
  4243. {
  4244. label: "5万",
  4245. value: "50000",
  4246. },
  4247. {
  4248. label: "8万",
  4249. value: "80000",
  4250. },
  4251. {
  4252. label: "10万",
  4253. value: "100000",
  4254. },
  4255. {
  4256. label: "20万",
  4257. value: "200000",
  4258. },
  4259. {
  4260. label: "30万",
  4261. value: "300000",
  4262. },
  4263. {
  4264. label: "50万",
  4265. value: "500000",
  4266. },
  4267. {
  4268. label: "100万",
  4269. value: "1000000",
  4270. },
  4271. {
  4272. label: "200万",
  4273. value: "2000000",
  4274. },
  4275. {
  4276. label: "300万",
  4277. value: "3000000",
  4278. },
  4279. ],
  4280. kindCode: "SY_FJ_YBW1",
  4281. isMainRisk: true,
  4282. kindName: "附加医保-三者",
  4283. desc: "附加医保外医疗费用责任险(机动车第三者责任保险)",
  4284. },
  4285. {
  4286. amount: "0",
  4287. amountDesc: "不投保",
  4288. coveragePremium: 0,
  4289. amtList: [
  4290. {
  4291. label: "不投保",
  4292. value: "0",
  4293. },
  4294. {
  4295. label: "1万",
  4296. value: "10000",
  4297. },
  4298. {
  4299. label: "2万",
  4300. value: "20000",
  4301. },
  4302. {
  4303. label: "5万",
  4304. value: "50000",
  4305. },
  4306. {
  4307. label: "10万",
  4308. value: "100000",
  4309. },
  4310. ],
  4311. kindCode: "SY_FJ_YBW2",
  4312. isMainRisk: true,
  4313. kindName: "附加医保-座位险(乘客)",
  4314. desc: "附加医保外医疗费用责任险(机动车第三者责任保险)",
  4315. },
  4316. {
  4317. amount: "0",
  4318. amountDesc: "不投保",
  4319. coveragePremium: 0,
  4320. amtList: [
  4321. {
  4322. label: "不投保",
  4323. value: "0",
  4324. },
  4325. {
  4326. label: "1万",
  4327. value: "10000",
  4328. },
  4329. {
  4330. label: "2万",
  4331. value: "20000",
  4332. },
  4333. {
  4334. label: "5万",
  4335. value: "50000",
  4336. },
  4337. {
  4338. label: "10万",
  4339. value: "100000",
  4340. },
  4341. ],
  4342. kindCode: "SY_FJ_YBW3",
  4343. isMainRisk: true,
  4344. kindName: "附加医保-座位险(司机)",
  4345. desc: "附加医保外医疗费用责任险(机动车第三者责任保险)",
  4346. },
  4347. {
  4348. amount: "0",
  4349. amountDesc: "不投保",
  4350. coveragePremium: 0,
  4351. amtList: [
  4352. {
  4353. label: "不投保",
  4354. value: "0",
  4355. },
  4356. {
  4357. label: "50万",
  4358. value: "500000",
  4359. },
  4360. {
  4361. label: "100万",
  4362. value: "1000000",
  4363. },
  4364. {
  4365. label: "150万",
  4366. value: "1500000",
  4367. },
  4368. {
  4369. label: "200万",
  4370. value: "2000000",
  4371. },
  4372. {
  4373. label: "250万",
  4374. value: "2500000",
  4375. },
  4376. {
  4377. label: "300万",
  4378. value: "3000000",
  4379. },
  4380. {
  4381. label: "500万",
  4382. value: "5000000",
  4383. },
  4384. {
  4385. label: "1000万",
  4386. value: "10000000",
  4387. },
  4388. ],
  4389. desc: "保险期间内,被保险人或其允许的驾驶人在法定节假日期间使用被保险机动车发生机动车第三者责任保险范围内的事故,并经公安部门或保险人查勘确认的,被保险机动车第三者责任保险所适用的责任限额在保险单载明的基础上增加一倍的险种",
  4390. isMainRisk: false,
  4391. kindCode: "BD",
  4392. kindName: "法定节假日限额翻倍险",
  4393. mainRiskCodeList: "B",
  4394. },
  4395. {
  4396. amount: "0",
  4397. amountDesc: "不投保",
  4398. coveragePremium: 0,
  4399. amtList: [
  4400. {
  4401. label: "不投保",
  4402. value: "0",
  4403. },
  4404. {
  4405. label: "2次",
  4406. value: "2",
  4407. },
  4408. {
  4409. label: "7次",
  4410. value: "7",
  4411. },
  4412. {
  4413. label: "12次",
  4414. value: "12",
  4415. },
  4416. {
  4417. label: "17次",
  4418. value: "17",
  4419. },
  4420. {
  4421. label: "22次",
  4422. value: "22",
  4423. },
  4424. ],
  4425. desc: "道路救援服务特约条款",
  4426. isMainRisk: false,
  4427. kindCode: "TY1",
  4428. kindName: "道路救援服务特约条款",
  4429. },
  4430. {
  4431. amount: "0",
  4432. amountDesc: "不投保",
  4433. coveragePremium: 0,
  4434. desc: "车辆安全检测特约条款",
  4435. isMainRisk: false,
  4436. kindCode: "TY2",
  4437. kindName: "车辆安全检测特约条款",
  4438. },
  4439. {
  4440. amount: "0",
  4441. amountDesc: "不投保",
  4442. coveragePremium: 0,
  4443. desc: "代为驾驶服务特约条款",
  4444. isMainRisk: false,
  4445. kindCode: "TY3",
  4446. kindName: "代为驾驶服务特约条款",
  4447. },
  4448. {
  4449. amount: "0",
  4450. amountDesc: "不投保",
  4451. coveragePremium: 0,
  4452. desc: "代为送检服务特约条款",
  4453. isMainRisk: false,
  4454. kindCode: "TY4",
  4455. kindName: "代为送检服务特约条款",
  4456. },
  4457. ],
  4458. totalCompanyList: [], //报价保险公司
  4459. continuousCompanyList: [], //续保保险公司
  4460. quoteno: "", //报价号
  4461. orderno: "", //订单号
  4462. queryOrders: {
  4463. extendInfo: {},
  4464. carinfo: {},
  4465. ownerinfo: {},
  4466. applyinfo: {},
  4467. insureinfo: {},
  4468. }, //核保详情
  4469. inscompany: "", //保险公司名称
  4470. licenseNo: "", //车牌号
  4471. applyName: "", //车主名字
  4472. orderstatus: "", //订单状态
  4473. sumpremium: "", //保费合计
  4474. jqpremium: "", //交强
  4475. sypremium: "", //商业
  4476. jypremium: "", //驾意险
  4477. taxamount: "", //车船税
  4478. jqstartdate: "", //交强时间
  4479. systartdate: "", //商业时间
  4480. mobile: "", //投保人手机号
  4481. //影像回显列表
  4482. // 是否禁用上传
  4483. uploadDisabled: false,
  4484. href: "",
  4485. pageRequest: {
  4486. //归属查询
  4487. pageNum: 1,
  4488. pageSize: 20,
  4489. columnFilters: {
  4490. deptId: {
  4491. name: "deptId",
  4492. value: "9",
  4493. },
  4494. containsSubDept: {
  4495. name: "containsSubDept",
  4496. value: 1,
  4497. },
  4498. usertype: {
  4499. name: "usertype",
  4500. value: null,
  4501. },
  4502. status: {
  4503. name: "status",
  4504. value: "1",
  4505. },
  4506. id: {
  4507. name: "id",
  4508. value: "",
  4509. },
  4510. name: {
  4511. name: "name",
  4512. value: "",
  4513. },
  4514. mobile: {
  4515. name: "mobile",
  4516. value: "",
  4517. },
  4518. },
  4519. },
  4520. userform: {},
  4521. qrcode: null,
  4522. paycodeimg: "", //展示二维码
  4523. ImageUrldialogVisible: false,
  4524. paramsEdit: "",
  4525. companyId: "",
  4526. apiType: "",
  4527. insureMore: true,
  4528. // insureLength: 5,
  4529. HistoryList: [], //历史记录数据
  4530. image1: "",
  4531. image2: "",
  4532. historyRadio: "888",
  4533. sumseatCount: "", // 投保险种座位数
  4534. deptName: "",
  4535. isBottom: true,
  4536. logoImg: "", //报价单保险公司logo图
  4537. vehicleTypeoptions: [], //车辆种类
  4538. trafficManagementVehicleTypeoptions: [], //车辆类型
  4539. energyTypeoptions: [], //能源种类
  4540. taxRelifFlagoptions: [], //车船税类型
  4541. taxpayerIdentifieroptions: [], //纳税人证件类型
  4542. relifReasonoptions: [], //减免税原因代码
  4543. relifReasonoptions: [], //减免税原因代码
  4544. provinceSelect: [],
  4545. natureOfVehicleUseoptions: [],
  4546. businessVehicleUseoptions: [],
  4547. outOfBusinessVehicleUseoptions: [],
  4548. insOrderStatusoptions: [],
  4549. lastCompanyId: "",
  4550. apiInterfaceName: "generateOrder",
  4551. isLetter3Arr: [],
  4552. isLetter3agreementId: "",
  4553. editorInfo: {},
  4554. resultMessageImg:'',
  4555. tabLiIndex: 0,
  4556. tabLimenu: [
  4557. {
  4558. name: "车辆信息",
  4559. scroll: "vehicle",
  4560. },
  4561. {
  4562. name: "车主信息",
  4563. scroll: "owner",
  4564. },
  4565. {
  4566. name: "投保人信息",
  4567. scroll: "applicant",
  4568. },
  4569. {
  4570. name: "被保人信息",
  4571. scroll: "insured",
  4572. },
  4573. {
  4574. name: "关系证明",
  4575. scroll: "relationship",
  4576. },
  4577. {
  4578. name: "验车照",
  4579. scroll: "yanchezhao",
  4580. },
  4581. {
  4582. name: "上年商业险保单",
  4583. scroll: "snbaodan",
  4584. },
  4585. ],
  4586. ProViewImg: "", //预览图片
  4587. carfrontImg: "", //行驶证正面
  4588. carbackImg: "", //行驶证背面
  4589. userfrontImg: "", //身份证正面
  4590. userbackImg: "", //身份证背面
  4591. businessImg: "",
  4592. CarFrontFile: "", //车正面文件流
  4593. CarBackFile: "", //车背面文件流
  4594. C02File: "",
  4595. D02File: "",
  4596. C03File: "",
  4597. D03File: "",
  4598. C04File: "",
  4599. D04File: "",
  4600. //影像回显列表
  4601. imgList1: [],
  4602. imgList2: [],
  4603. imgList3: [],
  4604. imgList4: [],
  4605. imgList5: [],
  4606. imgList6: [],
  4607. imgList7: [],
  4608. imgList8: [],
  4609. imgList9: [],
  4610. imgList10: [],
  4611. imgList11: [],
  4612. imgList12: [],
  4613. imgList13: [],
  4614. imgList14: [],
  4615. imgList15: [],
  4616. imgList16: [],
  4617. imgList17: [],
  4618. imgList18: [],
  4619. imgList19: [],
  4620. imgList20: [],
  4621. imgList21: [],
  4622. imgList22: [],
  4623. imgList23: [],
  4624. imgList24: [],
  4625. //影像上传列表
  4626. imageList1: [],
  4627. imageList2: [],
  4628. imageList3: [],
  4629. imageList4: [],
  4630. imageList5: [],
  4631. imageList6: [],
  4632. };
  4633. },
  4634. watch: {
  4635. "carInfo.licenseNo": {
  4636. handler(val) {
  4637. if (val) {
  4638. this.carInfo.licenseNo = val.toUpperCase();
  4639. }
  4640. },
  4641. deep: true,
  4642. },
  4643. "carInfo.frameNo": {
  4644. handler(val) {
  4645. if (val) {
  4646. this.carInfo.frameNo = val.toUpperCase();
  4647. }
  4648. },
  4649. deep: true,
  4650. },
  4651. "carInfo.enginedesc": {
  4652. handler(val) {
  4653. if (val) {
  4654. this.carInfo.enginedesc = val.replace(/[A-Za-z]/g, "");
  4655. }
  4656. },
  4657. deep: true,
  4658. },
  4659. "ownerInfo.mobile": {
  4660. handler(val) {
  4661. if (val) {
  4662. this.ownerInfo.mobile = val.replace(/\s/g, "");
  4663. }
  4664. },
  4665. deep: true,
  4666. },
  4667. "policyHolderInfo.mobile": {
  4668. handler(val) {
  4669. if (val) {
  4670. this.policyHolderInfo.mobile = val.replace(/\s/g, "");
  4671. }
  4672. },
  4673. deep: true,
  4674. },
  4675. "insuredPersonInfo.mobile": {
  4676. handler(val) {
  4677. if (val) {
  4678. this.insuredPersonInfo.mobile = val.replace(/\s/g, "");
  4679. }
  4680. },
  4681. deep: true,
  4682. },
  4683. "carInfo.engineNo": {
  4684. handler(val) {
  4685. if (val) {
  4686. this.carInfo.engineNo = val.replace(/[^\w-]/gi, "").toUpperCase();
  4687. }
  4688. },
  4689. deep: true,
  4690. },
  4691. "carInfo.seatCount": {
  4692. handler(val) {
  4693. if (val) {
  4694. this.sumseatCount = val - 1;
  4695. }
  4696. },
  4697. deep: true,
  4698. },
  4699. "policyHolderInfo.identifyNumber": {
  4700. handler(val) {
  4701. if (val) {
  4702. this.vehicleAndVesselTaxForm.identifyNumber = val;
  4703. }
  4704. },
  4705. deep: true,
  4706. },
  4707. "policyHolderInfo.name": {
  4708. handler(val) {
  4709. if (val) {
  4710. this.vehicleAndVesselTaxForm.taxpayerName = val;
  4711. }
  4712. },
  4713. deep: true,
  4714. },
  4715. },
  4716. props: {
  4717. isdisabled: {
  4718. type: Boolean,
  4719. default: true,
  4720. },
  4721. isLetter: {
  4722. type: String,
  4723. default: "1",
  4724. },
  4725. },
  4726. components: {
  4727. detailsDialog,
  4728. quotationDialog,
  4729. quotationDialogPro,
  4730. imageDialog,
  4731. "el-image-viewer": () =>
  4732. import("element-ui/packages/image/src/image-viewer"),
  4733. },
  4734. created() {
  4735. if (this.isLetter == "2") {
  4736. this.apiInterfaceName = "ordergenerateOrder";
  4737. }
  4738. // this.commpanyList(); //获取保险公司
  4739. this.getDicType("taxRelifFlag"); //车船税类型
  4740. this.getDicType("taxpayerIdentifier"); //纳税人证件类型
  4741. this.getDicType("relifReason"); //减免税原因代码
  4742. this.getDicType("vehicleType"); //车辆种类
  4743. this.getDicType("trafficManagementVehicleType"); //车辆类型
  4744. this.getDicType("energyType"); //能源种类
  4745. this.getDicType("natureOfVehicleUse"); //车辆使用性质
  4746. this.getDicType("businessVehicleUse"); //(车辆用途)营业
  4747. this.getDicType("outOfBusinessVehicleUse"); //(车辆用途)非营业
  4748. this.getDicType("insOrderStatus"); //状态
  4749. this.$api.letter.queryCompany().then((res) => {
  4750. this.continuousCompanyList = res.data;
  4751. });
  4752. this.$api.letter.packageQuery().then((res) => {
  4753. this.packageOptions = res.data;
  4754. });
  4755. localStorage.setItem("carInfo", JSON.stringify(this.carInfo));
  4756. localStorage.setItem("insureList", JSON.stringify(this.insureList));
  4757. //--归属信息获取--
  4758. if (this.isLetter == 1 || this.isLetter == 2) {
  4759. var userId = Cookies.get("user");
  4760. if (userId == "admin") {
  4761. this.userId = "admin";
  4762. } else {
  4763. // this.userId = userId;
  4764. this.$api.user.getLoginUser().then((res) => {
  4765. if (res.code == 200) {
  4766. this.userform = res.data;
  4767. this.$api.dept.getDeptById(res.data.deptId).then((res) => {
  4768. this.deptName = res.data.name;
  4769. });
  4770. this.userId = res.data.id;
  4771. }
  4772. });
  4773. }
  4774. }
  4775. //--订单编辑回显--
  4776. // this.paramsEdit = this.$route.query.data; //接收参数
  4777. this.obtainProtocol(this.$route.query.data);
  4778. },
  4779. mounted() {
  4780. this.editingWay(this.$route.query.data);
  4781. this.onScroll();
  4782. // console.log(this.$route.query.data.jqstartdate.split(" ")[1]);
  4783. if (this.$route.query.data) {
  4784. this.jqstartDate = this.$route.query.data.jqstartdate;
  4785. this.jqendDate = this.$route.query.data.jqenddate;
  4786. if (this.$route.query.data.jqstartdate.split(" ")[1] == "00:00:00") {
  4787. this.immediatelyValue = false;
  4788. } else {
  4789. this.immediatelyValue = true;
  4790. }
  4791. }
  4792. window.addEventListener("scroll", this.onScroll);
  4793. },
  4794. destroyed() {
  4795. window.removeEventListener("scroll", this.onScroll);
  4796. },
  4797. beforeCreate() {
  4798. _self = this;
  4799. },
  4800. computed: {
  4801. ...mapState({
  4802. collapse: (state) => state.app.collapse,
  4803. }),
  4804. issueDateOptions() {
  4805. return {
  4806. disabledDate: this.disabledDate,
  4807. };
  4808. },
  4809. },
  4810. filters: {
  4811. cap(ele) {
  4812. return _self.insOrderStatusoptions.find((item) => {
  4813. return item.dictValue === ele;
  4814. }).dictTag;
  4815. },
  4816. },
  4817. methods: {
  4818. //清空保单图片
  4819. removePhoto(file, fileList, type) {
  4820. // console.log(file, fileList);
  4821. this.policyNumberForm[type] = []
  4822. console.log(this.policyNumberForm[type])
  4823. },
  4824. editingWay(paramsEdit) {
  4825. if (paramsEdit) {
  4826. var _this = this;
  4827. this.jqchecked = false;
  4828. this.tbczcarShow = false;
  4829. this.bbtbcarShow = false;
  4830. this.bbczcarShow = false;
  4831. const { carinfo, ownerinfo, applyinfo, insureinfo, quoteno, orderno } =
  4832. paramsEdit;
  4833. this.editorInfo = { ...paramsEdit };
  4834. // console.log(paramsEdit.);
  4835. // this.vehicleAndVesselTaxForm = { ...paramsEdit.vehicleAndVesselTax };
  4836. _this.carInfo = carinfo;
  4837. if (_this.carInfo.carnature == "8A") {
  4838. _this.carInfo.carnature = "02";
  4839. _this.carInfo.vehicleUse = "05";
  4840. } else {
  4841. _this.carInfo.carnature;
  4842. _this.carInfo.vehicleUse;
  4843. }
  4844. _this.ownerInfo = ownerinfo;
  4845. _this.policyHolderInfo = applyinfo;
  4846. _this.insuredPersonInfo = insureinfo;
  4847. _this.quoteno = quoteno;
  4848. _this.orderno = orderno;
  4849. _this.tbczcarShow = applyinfo.owner;
  4850. _this.bbczcarShow = insureinfo.owner;
  4851. _this.kindList = paramsEdit.king;
  4852. _this.bbtbcarShow = insureinfo.insuranceHolder;
  4853. _this.ownerInfo.age = getAgeByIdCard(_this.ownerInfo.identifyNumber);
  4854. _this.policyHolderInfo.age = getAgeByIdCard(
  4855. _this.policyHolderInfo.identifyNumber
  4856. );
  4857. _this.insuredPersonInfo.age = getAgeByIdCard(
  4858. _this.insuredPersonInfo.identifyNumber
  4859. );
  4860. if (paramsEdit.carinfo.transferFlag) {
  4861. this.transferDateShow = true;
  4862. }
  4863. paramsEdit.risk.map((ele) => {
  4864. if (ele.riskCode == "0507") {
  4865. _this.jqchecked = true;
  4866. this.protocolJudge("0507", true);
  4867. _this.riskList.push({
  4868. riskCode: "0507",
  4869. });
  4870. // _this.jqstartDate = ele.startDate;
  4871. // _this.jqendDate = ele.endDate;
  4872. // this.jqstartDate = this.$route.query.data.jqstartdate
  4873. // this.jqendDate = this.$route.query.data.jqenddate
  4874. _this.jqstartDate = this.transformTime1();
  4875. _this.jqendDate = this.oneYearPast1(this.jqstartDate);
  4876. } else if (ele.riskCode == "0510") {
  4877. _this.sychecked = true;
  4878. this.protocolJudge("0510", true);
  4879. _this.riskList.push({
  4880. riskCode: "0510",
  4881. });
  4882. // _this.systartDate = ele.startDate;
  4883. // _this.syendDate = ele.endDate;
  4884. _this.systartDate = this.transformTime1();
  4885. _this.syendDate = this.oneYearPast1(this.systartDate);
  4886. _this.insureList.map((eleA) => {
  4887. paramsEdit.king.map((eleB) => {
  4888. if (eleA.kindCode == eleB.kindCode) {
  4889. switch (eleB.kindCode) {
  4890. case "D4":
  4891. case "SY_FJ_YBW2":
  4892. eleA.amount = JSON.stringify(eleB.unitAmount);
  4893. break;
  4894. case "MJ1":
  4895. case "MJ2":
  4896. case "MJ3":
  4897. case "MJ4":
  4898. eleA.amount = eleB.deductibleRate;
  4899. case "A":
  4900. eleA.amount = JSON.stringify(eleB.amount);
  4901. this.protocolJudge("A", true);
  4902. break;
  4903. default:
  4904. eleA.amount = JSON.stringify(eleB.amount);
  4905. }
  4906. }
  4907. });
  4908. });
  4909. }
  4910. });
  4911. // this.HistoryList = this.paramsEdit.insAreaCompanyList;
  4912. let params = {
  4913. orderNo: paramsEdit.orderno,
  4914. orderStatus: "",
  4915. };
  4916. this.$api.letter.queryQuoteHistory(params).then((res) => {
  4917. res.data.forEach((item) => {
  4918. if (item.accidentInfo) {
  4919. item.accidentInfo.constructor === Object
  4920. ? [item.accidentInfo]
  4921. : item.accidentInfo;
  4922. }
  4923. });
  4924. this.HistoryList = res.data;
  4925. });
  4926. //--获取影像信息--
  4927. _this.imageEcho(this.quoteno);
  4928. // this.$refs.imageDialog.imageEcho(this.quoteno)
  4929. // this.commpanyList()
  4930. //--显示影像按钮--
  4931. _this.imageUploadShow = true;
  4932. } else {
  4933. this.jqstartDate = this.transformTime1();
  4934. this.jqendDate = this.oneYearPast1(this.jqstartDate);
  4935. this.systartDate = this.transformTime1();
  4936. this.syendDate = this.oneYearPast1(this.systartDate);
  4937. }
  4938. },
  4939. handleRemove1(file, imageIdList, imgList) {
  4940. this[imageIdList].map((ele, index) => {
  4941. if (file.imageId === ele.imageId) {
  4942. this[imageIdList].splice(index, 1);
  4943. }
  4944. return ele;
  4945. });
  4946. if (file.imageId) {
  4947. this[imgList].map((ele, index) => {
  4948. if (file.imageId === ele.imageId) {
  4949. this[imgList].splice(index, 1);
  4950. }
  4951. return ele;
  4952. });
  4953. } else {
  4954. this[imgList].map((ele, index) => {
  4955. if (file.uid === ele.uid) {
  4956. this[imgList].splice(index, 1);
  4957. }
  4958. return ele;
  4959. });
  4960. }
  4961. },
  4962. uploadinformation() {
  4963. // //上传图片
  4964. const mergedArray = [
  4965. ...this.imageList1,
  4966. ...this.imageList2,
  4967. ...this.imageList3,
  4968. ...this.imageList4,
  4969. ...this.imageList5,
  4970. ...this.imageList6,
  4971. ];
  4972. let imageparam = {
  4973. imageList: mergedArray,
  4974. quoteNo: this.quoteno,
  4975. };
  4976. this.$api.letter.uploadImages(imageparam).then((responses) => {
  4977. if (responses.code == "200") {
  4978. this.imageEcho(this.quoteno);
  4979. this.$message({ message: responses.msg, type: "success" });
  4980. } else {
  4981. this.$message({ message: responses.msg, type: "error" });
  4982. }
  4983. });
  4984. this.imageUploaddialogVisible = false;
  4985. },
  4986. repairinformation() {
  4987. // //上传图片
  4988. const mergedArray = [
  4989. ...this.imageList1,
  4990. ...this.imageList2,
  4991. ...this.imageList3,
  4992. ...this.imageList4,
  4993. ...this.imageList5,
  4994. ...this.imageList6,
  4995. ];
  4996. let imageparam = {
  4997. imageList: mergedArray,
  4998. companyId: this.companyId,
  4999. };
  5000. this.$api.letter.additionalInformation(imageparam).then((responses) => {
  5001. if (responses.code == "200") {
  5002. this.imageUploaddialogVisible = false;
  5003. this.$message({ message: responses.msg, type: "success" });
  5004. } else {
  5005. this.$message({ message: responses.msg, type: "error" });
  5006. }
  5007. });
  5008. },
  5009. //手机号复制粘贴处理
  5010. handlePaste(e, mobileKey) {
  5011. e.preventDefault(); //阻止默认行为
  5012. const clipboardData = e.clipboardData || window.clipboardData; //获取剪切板内容
  5013. let pastedText = clipboardData.getData("text").replace(/\s+/g, ""); //获取纯文本并处理空格
  5014. // 截取前11个字符,以确保不会超过手机号长度限制
  5015. pastedText = pastedText.substring(0, 11);
  5016. // 使用Vue.nextTick确保更新发生在DOM更新之后
  5017. this.$nextTick(() => {
  5018. this[mobileKey].mobile = pastedText;
  5019. });
  5020. },
  5021. // licenseNoFun(data){
  5022. // if(data && this.carInfo.enginedesc){
  5023. // this.obtainProtocol()
  5024. // }
  5025. // },
  5026. // enginedescFun(data){
  5027. // if(data && this.carInfo.licenseNo){
  5028. // this.obtainProtocol()
  5029. // }
  5030. // },
  5031. packageChange(val) {
  5032. let arr = this.packageOptions.find((ele) => ele.id == val).kind;
  5033. if (arr.length > 0) {
  5034. this.insureList.map((eleA) => {
  5035. arr.map((eleB) => {
  5036. if (eleA.kindCode == eleB.kindCode) {
  5037. switch (eleB.kindCode) {
  5038. case "D4":
  5039. case "SY_FJ_YBW2":
  5040. eleA.amount = JSON.stringify(eleB.unitAmount);
  5041. break;
  5042. case "MJ1":
  5043. case "MJ2":
  5044. case "MJ3":
  5045. case "MJ4":
  5046. eleA.amount = eleB.deductibleRate;
  5047. break;
  5048. case "TY2":
  5049. case "TY3":
  5050. case "TY4":
  5051. eleA.amount = eleB.serviceTimes;
  5052. break;
  5053. default:
  5054. eleA.amount = JSON.stringify(eleB.amount);
  5055. }
  5056. }
  5057. });
  5058. });
  5059. } else {
  5060. this.insureList.map((eleA) => {
  5061. eleA.amount = "0";
  5062. });
  5063. }
  5064. },
  5065. capType(val) {
  5066. if (val == "0") {
  5067. return "success";
  5068. }
  5069. if (val == "1") {
  5070. return "warning";
  5071. }
  5072. if (val == "2" || val == "3" || val == "4") {
  5073. return "danger";
  5074. }
  5075. },
  5076. handleCheckAllChange(ele) {
  5077. this.totalCompanyList.forEach((val, index) => {
  5078. ele ? (val.checked = true) : (val.checked = false);
  5079. // this.initchange(ele, val.id, val.cnName, index);
  5080. });
  5081. },
  5082. retractFun() {
  5083. this.isRetract = this.isRetract == false ? true : false;
  5084. },
  5085. //中煤意外险调整份数事件
  5086. ZMhandleChange(val) {
  5087. if (!val) {
  5088. this.$refs.ZmMultipleTable[0].clearSelection(); //清除
  5089. }
  5090. },
  5091. //中煤意外险选中对应意外险方案
  5092. // ZMHandleSelectionChange(val) {
  5093. // // if(val.length > 0&& val[0].quantity==undefined){
  5094. // // this.$message({ message: "请先填写投保份数再勾选!", type: "error", });
  5095. // // this.$refs.ZmMultipleTable[0].clearSelection(); //清除
  5096. // // return false;
  5097. // // }
  5098. // if (val.length > 1) {
  5099. // this.$refs.ZmMultipleTable[0].clearSelection(); //清除
  5100. // this.$refs.ZmMultipleTable[0].toggleRowSelection(val.pop()); //pop:最后一个
  5101. // } else {
  5102. // this.zhongmeiaccidentalDrivingVo = val[0]; //multipleSelection:当前选择的数组
  5103. // }
  5104. // },
  5105. //中煤意外险选中对应产品带出方案明细
  5106. zhongmeiInsuranceChange(index) {
  5107. //每次选中产品,清空之前选中的数据
  5108. this.zhongmeitemplateSelection = index;
  5109. this.zhongmeiaccidentalDrivingVo = {};
  5110. this.zhongmeiInsuranceDataTable = [];
  5111. let data = this.zhongmeiInsuranceData.find(
  5112. (val) => val.projectCode == index
  5113. );
  5114. //把返回的方案明细放入展示数据对象中
  5115. this.accidentFormZM = Object.assign(this.accidentFormZM, data);
  5116. this.accidentFormZM.quantity = "1";
  5117. if (data && data.son) {
  5118. this.accidentPremiumZM = data.sumPremium;
  5119. this.zhongmeiInsuranceDataTable = data.son;
  5120. }
  5121. },
  5122. // 截图粘贴
  5123. copybjd() {
  5124. let that = this;
  5125. html2Canvas(document.getElementById("pdfContentsDiv"), {
  5126. allowTaint: true,
  5127. taintTest: false,
  5128. }).then(function (canvas) {
  5129. let base64Data = "";
  5130. // let blob = null
  5131. base64Data = canvas.toDataURL("image/png", 1);
  5132. const date = new Date();
  5133. const saveInfo = {
  5134. download: date.getTime() + `.png`,
  5135. href: base64Data,
  5136. };
  5137. const element = document.createElement("a");
  5138. element.style.display = "none";
  5139. for (const key in saveInfo) {
  5140. element.setAttribute(key, saveInfo[key]);
  5141. }
  5142. document.body.appendChild(element);
  5143. element.click();
  5144. setTimeout(() => {
  5145. document.body.removeChild(element);
  5146. }, 300);
  5147. // var format = 'image/png'
  5148. // //将Base64图片编码转换成blob
  5149. // var base64 = base64Data
  5150. // var code = window.atob(base64.split(',')[1])
  5151. // var aBuffer = new window.ArrayBuffer(code.length)
  5152. // var uBuffer = new window.Uint8Array(aBuffer)
  5153. // for (var i = 0; i < code.length; i++) {
  5154. // uBuffer[i] = code.charCodeAt(i) & 0xff
  5155. // }
  5156. // try {
  5157. // blob = new Blob([uBuffer], { type: format })
  5158. // } catch (e) {
  5159. // window.BlobBuilder =
  5160. // window.BlobBuilder ||
  5161. // window.WebKitBlobBuilder ||
  5162. // window.MozBlobBuilder ||
  5163. // window.MSBlobBuilder
  5164. // if (e.name == 'TypeError' && window.BlobBuilder) {
  5165. // var bb = new window.BlobBuilder()
  5166. // bb.append(uBuffer.buffer)
  5167. // blob = bb.getBlob('image/png')
  5168. // } else if (e.name == 'InvalidStateError') {
  5169. // blob = new Blob([aBuffer], { type: format })
  5170. // }
  5171. // }
  5172. // const clipboardItemInput = new ClipboardItem({
  5173. // 'image/png': blob,
  5174. // })
  5175. // that.$copyText({
  5176. // 'image/png': blob,
  5177. // }).then(
  5178. //   function(e) {
  5179. //     console.log("copy arguments e:", e);
  5180. //     alert("复制成功!");
  5181. //   },
  5182. //   function(e) {
  5183. //     console.log("copy arguments e:", e);
  5184. //     alert("复制失败!");
  5185. //   }
  5186. //   ),
  5187. // navigator.clipboard.write([clipboardItemInput])
  5188. // that.$message({
  5189. // message: '已截图并复制到粘贴板!',
  5190. // type: 'success'
  5191. // });
  5192. });
  5193. },
  5194. // 即时起保
  5195. immediatelyChange(e) {
  5196. if (e) {
  5197. this.immediatelyValue = true;
  5198. const date = new Date();
  5199. date.setHours(date.getHours() + 2);
  5200. date.setMinutes(0);
  5201. date.setSeconds(0);
  5202. this.jqstartDate = date;
  5203. this.jqendDate = this.oneYearPast1(date);
  5204. } else {
  5205. this.immediatelyValue = false;
  5206. this.jqstartDate = this.transformTime1();
  5207. this.jqendDate = this.oneYearPast1(this.jqstartDate);
  5208. }
  5209. },
  5210. // 使用性质方法
  5211. natureFun() {
  5212. if (this.carInfo.carnature == "01") {
  5213. this.carInfo.vehicleUse = "";
  5214. }
  5215. },
  5216. // 点击同步报价后的时间
  5217. syncData(item) {
  5218. this.jqstartDate = item.startDateJq ? item.startDateJq : this.jqstartDate;
  5219. this.jqendDate = item.endDateJq ? item.endDateJq : this.endDateJq;
  5220. this.systartDate = item.startDateSy ? item.startDateSy : this.systartDate;
  5221. this.syendDate = item.endDateSy ? item.endDateSy : this.syendDate;
  5222. },
  5223. //纳税类型事件
  5224. taxRelifFlagChange(val) {
  5225. if (val == 4) {
  5226. citydata.rawCitiesData.map((val) => {
  5227. this.provinceSelect.push({
  5228. name: val.name,
  5229. code: val.code,
  5230. });
  5231. return val;
  5232. });
  5233. }
  5234. },
  5235. //身份证前六位识别地区
  5236. // getAreaByCode(code) {
  5237. // let list = regionData;
  5238. // let provinceCode = code.substring(0, 2);
  5239. // let cityCode = code.substring(0, 4);
  5240. // let areaCode = code.substring(0, 6);
  5241. // // 获取省份信息
  5242. // let province = list.filter(function (item) {
  5243. // return item.value === provinceCode;
  5244. // });
  5245. // // 获取城市信息
  5246. // let city = province[0].children.filter(function (item) {
  5247. // return item.value === cityCode;
  5248. // });
  5249. // if (city.length > 0) {
  5250. // // 获取区/县信息
  5251. // let area = city[0].children.filter(function (item) {
  5252. // return item.value === areaCode;
  5253. // });
  5254. // return province[0].label + city[0].label + area[0].label;
  5255. // }
  5256. // },
  5257. //--数据字典 begin --
  5258. getDicType(type) {
  5259. this.$api.insCompany.dicType(type).then((res) => {
  5260. if (res.code == 200) {
  5261. if (type == "insOrderStatus") {
  5262. let data = JSON.parse(JSON.stringify(res.data.ddList));
  5263. data.unshift({
  5264. dictTag: "全部",
  5265. dictValue: "888",
  5266. });
  5267. this[type + "options"] = data;
  5268. } else {
  5269. this[type + "options"] = res.data.ddList;
  5270. }
  5271. }
  5272. });
  5273. },
  5274. //身份证失去焦点
  5275. identifyblur(info) {
  5276. this[info].age = getAgeByIdCard(this[info].identifyNumber);
  5277. this[info].gender = getGenderByIdCard(this[info].identifyNumber);
  5278. },
  5279. //车主信息选择性别
  5280. genderChange(e) {
  5281. if (this.tbczcarShow) {
  5282. this.policyHolderInfo.gender = e;
  5283. } else if (this.bbczcarShow) {
  5284. this.insuredPersonInfo.gender = e;
  5285. }
  5286. },
  5287. //省市区
  5288. // areahandleChange(event, info) {
  5289. // console.log(event)
  5290. // if (event[0] != null && event[1] != null && event[2] != null) {
  5291. // this[info].province = codeToText[event[0]]
  5292. // this[info].city = codeToText[event[1]]
  5293. // this[info].county = codeToText[event[2]]
  5294. // }
  5295. // },
  5296. iconfftter(icon) {
  5297. return CommonUtil.getDataName({
  5298. dataList: this.global.insCompanyList,
  5299. value: "name",
  5300. label: "icon",
  5301. data: icon,
  5302. });
  5303. },
  5304. disabledDate(time) {
  5305. let datetime = this.carInfo.registerDate;
  5306. return time.getTime() < new Date(datetime).getTime();
  5307. },
  5308. onScroll() {
  5309. // 变量scrollTop是滚动条滚动时,滚动条上端距离顶部的距离
  5310. var scrollTop =
  5311. document.documentElement.scrollTop || document.body.scrollTop;
  5312. // 变量windowHeight是可视区的高度
  5313. var windowHeight =
  5314. document.documentElement.clientHeight || document.body.clientHeight;
  5315. // 变量scrollHeight是滚动条的总高度(当前可滚动的页面的总高度)
  5316. var scrollHeight =
  5317. document.documentElement.scrollHeight || document.body.scrollHeight;
  5318. // 滚动条到底部
  5319. if (Math.ceil(scrollTop + windowHeight) >= scrollHeight) {
  5320. this.isBottom = true;
  5321. } else {
  5322. this.isBottom = false;
  5323. }
  5324. },
  5325. pinganInsuranceChange(index,index1,val) {
  5326. if (!index) {
  5327. return;
  5328. }
  5329. this.accidentFormPA[index1].pingantemplateSelection = index;
  5330. this.accidentFormPA[index1].projectName=index
  5331. val.map(val1=>{
  5332. if(val1.projectName == index){
  5333. val1.son.forEach(val3=>{
  5334. val3.quantity='1'
  5335. })
  5336. this.accidentFormPA[index1].pinganInsuranceDataTable= val1.son
  5337. this.accidentFormPA[index1].projectCode= val1.projectCode
  5338. }
  5339. })
  5340. console.log(this.accidentFormPA[index1],index,4444444444);
  5341. // this.accidentFormPA[index1].projectCode=this.pinganInsuranceData.find(val1=>{
  5342. // // val1.map(
  5343. // // (val) => val.projectName == index
  5344. // // ).projectCode
  5345. // }
  5346. // )
  5347. // this.accidentFormPA[index1].pinganInsuranceDataTable = this.pinganInsuranceData.find(
  5348. // (val) => val.projectName == index
  5349. // ).son;
  5350. },
  5351. taikangInsuranceChange(index) {
  5352. if (index) {
  5353. this.TkDrivingChange(
  5354. this.taikangaccidentDataList.find((val) => val.projectCode == index)
  5355. );
  5356. }
  5357. if (!index) {
  5358. return;
  5359. }
  5360. this.taikangtemplateSelection = index;
  5361. this.accidentFormTk = Object.assign(
  5362. this.accidentFormTk,
  5363. this.taikangaccidentDataList.find((val) => val.projectCode == index)
  5364. );
  5365. this.taikangaccidentDataList
  5366. .find((val) => val.projectCode == index)
  5367. .son.forEach((item) => {
  5368. item.sumAmount =
  5369. Number(item.amount) * Number(this.accidentFormTk.seatNum);
  5370. });
  5371. this.taikangInsuranceDataTable = this.taikangaccidentDataList.find(
  5372. (val) => val.projectCode == index
  5373. ).son;
  5374. this.accidentPremiumTk = this.accidentFormTk.premium;
  5375. },
  5376. anshengInsuranceChange(index) {
  5377. this.anshengtemplateSelection = index;
  5378. let data = this.anshengInsuranceData.find(
  5379. (val) => val.projectCode == index
  5380. );
  5381. this.anshengaccidentalDrivingVo.parentName = data.projectName;
  5382. this.anshengaccidentalDrivingVo.parentCode = data.projectCode;
  5383. this.anshengInsuranceDataTable = [];
  5384. this.anshengInsuranceDataTable = data.children;
  5385. this.anshengInsuranceDataTable.forEach((e) => (e.quantity = "1"));
  5386. },
  5387. hengbangInsuranceChange(index) {
  5388. this.hengbangInsuranceDataTable = this.hengbangInsuranceData.find(
  5389. (val) => val.projectCode == index
  5390. ).son;
  5391. this.hengbangtemplateSelection = index;
  5392. if (this.hengbangInsuranceDataTable.length) {
  5393. this.hengbangaccidentalDrivingVo = this.hengbangInsuranceData.find(
  5394. (val) => val.projectCode == index
  5395. );
  5396. }
  5397. },
  5398. huanongInsuranceChange(index) {
  5399. this.huanongInsuranceDataTable = this.huanongInsuranceData.find(
  5400. (val) => val.projectCode == index
  5401. ).son;
  5402. this.accidentFormHN.accidentType = index;
  5403. this.huanongaccidentalDrivingVo = Object.assign(
  5404. this.huanongInsuranceData.find((val) => val.projectCode == index),
  5405. this.accidentFormHN
  5406. );
  5407. },
  5408. taipingInsuranceChange(index) {
  5409. this.taipingtemplateSelection = index;
  5410. this.taipingInsuranceDataTable = this.taipingInsuranceData.find(
  5411. (val) => val.projectCode == index
  5412. ).son;
  5413. if (
  5414. this.taipingInsuranceDataTable &&
  5415. this.taipingInsuranceDataTable.length
  5416. ) {
  5417. this.taipingaccidentalDrivingVo = this.taipingInsuranceData.find(
  5418. (val) => val.projectCode == index
  5419. );
  5420. }
  5421. },
  5422. zijinInsuranceChange(index) {
  5423. this.zijintemplateSelection = index;
  5424. this.zijinInsuranceDataTable = [];
  5425. this.$refs.expandTable[0].clearSelection();
  5426. index.forEach((item) => {
  5427. this.zijinInsuranceDataTable.push(
  5428. this.ziJinInsuranceData.find((val) => val.projectCode == item)
  5429. );
  5430. });
  5431. this.zijinInsuranceDataTable.forEach((item) => {
  5432. this.$nextTick(() => {
  5433. this.$refs.expandTable[0].toggleRowSelection(item);
  5434. });
  5435. });
  5436. this.CheckboxChange(this.zijinInsuranceDataTable);
  5437. },
  5438. renshouInsuranceChange(index) {
  5439. // this.renshouInsuranceDataTable = [
  5440. // this.renshouInsuranceData.find(val => val.projectCode == index)
  5441. // ];
  5442. this.renshoutemplateSelection = index;
  5443. this.renshouInsuranceDataTable = this.renshouInsuranceData.find(
  5444. (val) => val.projectCode == index
  5445. ).son;
  5446. if (index) {
  5447. this.RSDrivingChange(
  5448. this.renshouInsuranceData.find((val) => val.projectCode == index)
  5449. );
  5450. }
  5451. },
  5452. async dajiaInsuranceChange(index) {
  5453. this.dajiaaccidentalDrivingVo = {};
  5454. let data = await this.$api.letter.accidentalDrivingInfo(index);
  5455. if (data.code == 200) {
  5456. this.dajiaaccidentalDrivingVo = {
  5457. rideRiskCode: index,
  5458. rideRiskName: this.dajiaInsuranceData.find((val) => val.id == index)
  5459. .productName,
  5460. quantity: "1",
  5461. };
  5462. this.dajiaInsuranceDataTable = data.data;
  5463. }
  5464. },
  5465. zhonganInsuranceChange(index) {
  5466. this.zhongantemplateSelection = index;
  5467. this.zhonganInsuranceDataTable = this.zhonganInsuranceData.find(
  5468. (val) => val.projectCode == index
  5469. ).son;
  5470. if (index) {
  5471. this.ZADrivingChange(
  5472. this.zhonganInsuranceData.find((val) => val.projectCode == index)
  5473. );
  5474. }
  5475. },
  5476. // 渤海选择意外险类型
  5477. async bohaiInsuranceChange(index) {
  5478. if (index) {
  5479. this.boHaiaccidentForm.projectCode = index;
  5480. // this.boHaiaccidentForm.projectName = this.dajiaInsuranceData.find(
  5481. // (e) => e.projectCode == index
  5482. // ).projectName;
  5483. this.boHaiaccidentForm.copies = "1";
  5484. this.boHaiaccidentForm.premium = Number(
  5485. this.boHaiaccidentDataList.find((e) => e.projectCode == index).sumPremium
  5486. );
  5487. this.bohaiInsuranceDataTable=this.boHaiaccidentDataList.find(
  5488. (e) => e.projectCode == index
  5489. ).son;
  5490. // let data = await this.$api.letter.productDetailsQueryboHai({
  5491. // projectCode: index,
  5492. // productCode: this.boHaiaccidentDataList.find(
  5493. // (e) => e.packageCode == index
  5494. // ).productCode,
  5495. // agreementId: this.boHaiaccidentForm.agreementId,
  5496. // });
  5497. // if (data.code == 200 && data.data) {
  5498. // this.accidentLoadingbh = false;
  5499. // this.bohaiInsuranceDataTable = data.data;
  5500. // } else {
  5501. // this.$message.error(data.msg);
  5502. // this.bohaiInsuranceDataTable = [];
  5503. // }
  5504. }
  5505. },
  5506. djcxchange(index) {
  5507. if (index) {
  5508. this.dajiaaccidentForm.parentCode = index;
  5509. this.dajiaaccidentForm.quantity = "1";
  5510. this.dajiaaccidentForm.prodCode = "";
  5511. this.dajiaaccidentDataListChild = this.dajiaInsuranceData.find(
  5512. (e) => e.projectCode == index
  5513. ).children;
  5514. this.dajiaaccidentalDrivingVo.parentName = this.dajiaInsuranceData.find(
  5515. (e) => e.projectCode == index
  5516. ).projectName;
  5517. this.dajiaaccidentalDrivingVo.parentCode = this.dajiaInsuranceData.find(
  5518. (e) => e.projectCode == index
  5519. ).projectCode;
  5520. }
  5521. },
  5522. djcxchangeChild(index) {
  5523. if (index) {
  5524. let list = this.dajiaaccidentDataListChild.find(
  5525. (val) => val.projectCode == index
  5526. );
  5527. this.dajiaaccidentForm = {
  5528. ...this.dajiaaccidentForm,
  5529. prodCode: index,
  5530. projectName: list.projectName,
  5531. sumAmount: Number(list.sumAmount),
  5532. riskCode: list.riskCode,
  5533. sumPremium: Number(list.sumPremium),
  5534. };
  5535. list.productId = list.id;
  5536. this.dajiaInsuranceDataTable = list.son;
  5537. this.dajiaaccidentalDrivingVo = Object.assign({
  5538. ...this.dajiaaccidentalDrivingVo,
  5539. ...list,
  5540. });
  5541. } else {
  5542. this.dajiaInsuranceDataTable = [];
  5543. }
  5544. },
  5545. // 国任选择意外险类型
  5546. async grcxchange(index) {
  5547. if (index) {
  5548. this.accidentLoading = true;
  5549. this.guoRenaccidentForm.goodsCode = index;
  5550. this.guoRenaccidentForm.quantity = "1";
  5551. this.guoRenaccidentForm.prodCode = "";
  5552. this.guoRenaccidentDataListChild = this.guoRenaccidentDataList.find(
  5553. (e) => e.projectCode == index
  5554. ).children;
  5555. this.guoRenaccidentalDrivingVo.parentName =
  5556. this.guoRenaccidentDataList.find(
  5557. (e) => e.projectCode == index
  5558. ).projectName;
  5559. this.guoRenaccidentalDrivingVo.parentCode =
  5560. this.guoRenaccidentDataList.find(
  5561. (e) => e.projectCode == index
  5562. ).projectCode;
  5563. // let data = await this.$api.letter.syncNonAutoInsGuoren({
  5564. // goodsCode: index,
  5565. // agreementId: this.guoRenaccidentForm.agreementId
  5566. // });
  5567. // if (data.code == 200) {
  5568. // let num = 0;
  5569. // data.data.forEach(item => {
  5570. // num += Number(item.premium);
  5571. // });
  5572. // this.accidentLoading = false;
  5573. // } else {
  5574. // this.accidentLoading = false;
  5575. // this.$message.error(data.msg);
  5576. // this.guoRenaccidentDataListChild = [];
  5577. // }
  5578. }
  5579. },
  5580. // 国任选择意外险子级类型
  5581. async grcxchangeChild(index) {
  5582. let list = this.guoRenaccidentDataListChild.find(
  5583. (val) => val.projectCode == index
  5584. );
  5585. this.guoRenaccidentForm = {
  5586. ...this.guoRenaccidentForm,
  5587. prodCode: index,
  5588. policyNum: Number(list.sumPremium),
  5589. riskCode: list.riskCode,
  5590. // amount: list.amount,
  5591. sumPremium: Number(list.sumPremium),
  5592. // appnum:Number(list.appnum)
  5593. };
  5594. this.guoRenInsuranceDataTable = list.son;
  5595. this.guoRenaccidentalDrivingVo = Object.assign({
  5596. ...list,
  5597. ...this.guoRenaccidentalDrivingVo,
  5598. });
  5599. },
  5600. // 选择意外险类型
  5601. async yongchengInsuranceChange(index) {
  5602. if (!index) {
  5603. return;
  5604. }
  5605. this.yongchengtemplateSelection = index;
  5606. this.accidentForm = Object.assign(
  5607. this.accidentForm,
  5608. this.yongchengaccidentDataList.find((val) => val.projectCode == index)
  5609. );
  5610. this.yongchengaccidentDataList
  5611. .find((val) => val.projectCode == index)
  5612. .son.forEach((item) => {
  5613. item.sumAmount =
  5614. Number(item.amount) * Number(this.accidentForm.seatNum);
  5615. });
  5616. this.yongchengInsuranceDataTable = this.yongchengaccidentDataList.find(
  5617. (val) => val.projectCode == index
  5618. ).son;
  5619. this.accidentPremium = this.accidentForm.sumPremium;
  5620. // this.accidentForm.fen = "1";
  5621. // let data = await this.$api.letter.ycgainAccidentSchemeList({
  5622. // companyCode: this.accidentForm.companyId,
  5623. // code: index,
  5624. // agreementId: this.accidentForm.agreementId,
  5625. // seatNum: Number(this.carInfo.seatCount)
  5626. // });
  5627. // if (data.code == 200) {
  5628. // let num = 0;
  5629. // data.data.forEach(item => {
  5630. // num += Number(item.premium);
  5631. // });
  5632. // this.accidentPremium = num;
  5633. // this.accidentForm.premium = num;
  5634. // this.accidenttableData = data.data;
  5635. // }
  5636. },
  5637. numberCopieschange(index) {
  5638. this.accidentForm.sumPremium = Number(this.accidentPremium) * index;
  5639. },
  5640. numberCopieschangeTk(index) {
  5641. this.accidentFormTk.sumPremium = Number(this.accidentPremiumTk) * index;
  5642. },
  5643. numberCopieschangePA(index,index1) {
  5644. this.accidentFormPA.premium = Number(this.accidentFormPA[index1].accidentPremiumPA ) * index;
  5645. },
  5646. numberCopieschangeZM(index) {
  5647. this.accidentFormZM.sumPremium = Number(this.accidentPremiumZM) * index;
  5648. },
  5649. numberCopieschangeGR(index) {
  5650. this.guoRenaccidentForm.sumPremium =
  5651. Number(this.guoRenaccidentForm.policyNum) * index;
  5652. },
  5653. continuousChange(id) {
  5654. this.continuousCompanyList.map((ele) => {
  5655. if (ele.id == id) {
  5656. this.attributionform.configure = [];
  5657. ele.configure.map((ele, index) => {
  5658. this.attributionform.configure.push({
  5659. field: ele.field,
  5660. isEdit: ele.isEdit,
  5661. label: ele.label,
  5662. type: ele.type,
  5663. value: "",
  5664. });
  5665. });
  5666. }
  5667. });
  5668. },
  5669. //续保查询
  5670. continuousquery() {
  5671. this.$api.letter.queryRenewal(this.attributionform).then((res) => {
  5672. if (res.code == "200") {
  5673. this.carInfo = res.data.carInfo;
  5674. this.ownerInfo = res.data.ownerInfo;
  5675. this.policyHolderInfo = res.data.policyHolderInfo;
  5676. this.insuredPersonInfo = res.data.insuredPersonInfo;
  5677. res.data.riskList.map((ele) => {
  5678. if (ele.riskCode == "0507") {
  5679. this.jqchecked = true;
  5680. this.jqstartDate = ele.startDate;
  5681. this.jqendDate = ele.endDate;
  5682. } else if (ele.riskCode == "0510") {
  5683. this.sychecked = true;
  5684. this.systartDate = ele.startDate;
  5685. this.syendDate = ele.endDate;
  5686. }
  5687. county;
  5688. });
  5689. } else {
  5690. this.$message({
  5691. message: res.msg,
  5692. type: "error",
  5693. duration: 2000,
  5694. });
  5695. }
  5696. });
  5697. },
  5698. //永诚转保
  5699. renewalCodeconfirm() {
  5700. this.renewalCodedialogVisible = false;
  5701. this.quote();
  5702. },
  5703. //报价轨迹查询
  5704. RadioHistoryChange(e) {
  5705. let params = {
  5706. orderNo: this.orderno,
  5707. orderStatus: e == 888 ? "" : e,
  5708. };
  5709. this.$api.letter.queryQuoteHistory(params).then((res) => {
  5710. res.data.forEach((item) => {
  5711. if (item.accidentInfo) {
  5712. item.accidentInfo.constructor === Object
  5713. ? [item.accidentInfo]
  5714. : item.accidentInfo;
  5715. }
  5716. });
  5717. this.HistoryList = res.data;
  5718. });
  5719. },
  5720. protocolJudge(val, val1) {
  5721. if (val1) {
  5722. this.totalCompanyList.forEach((e) => {
  5723. if (
  5724. e.agreement.find(
  5725. (el) => el.productsCode && el.productsCode.includes(val)
  5726. )
  5727. ) {
  5728. e.agreement.find(
  5729. (el) => el.productsCode && el.productsCode.includes(val)
  5730. ).disabled = true;
  5731. }
  5732. });
  5733. } else {
  5734. this.totalCompanyList.forEach((e) => {
  5735. if (
  5736. e.agreement.find(
  5737. (el) => el.productsCode && el.productsCode.includes(val)
  5738. )
  5739. ) {
  5740. e.agreement.find(
  5741. (el) => el.productsCode && el.productsCode.includes(val)
  5742. ).disabled = false;
  5743. }
  5744. });
  5745. }
  5746. },
  5747. async obtainProtocol(data) {
  5748. let res = {};
  5749. if (this.isLetter == "1") {
  5750. res = await this.$api.letter.getAllAgreement();
  5751. }
  5752. if (this.isLetter == "2") {
  5753. res = await this.$api.letter.getAllAgreementByUserId({
  5754. userId: this.userId,
  5755. });
  5756. }
  5757. if (this.isLetter == "3") {
  5758. this.userId = data ? data.userid : this.userId;
  5759. res = await this.$api.letter.getExternalAgreement();
  5760. }
  5761. if (res.code == 200) {
  5762. res.data.map((ele) => {
  5763. ele["result"] = {};
  5764. ele["quoteCode"] = 0;
  5765. ele["checked"] = false;
  5766. ele["msg"] = "";
  5767. ele["lastYearMsg"] = "";
  5768. ele["agreementId"] = "";
  5769. ele["apiType"] = "";
  5770. ele["orderstatus"] = 0;
  5771. ele.coefficient = "";
  5772. // ele.agreementId = ele.agreement[0].id;
  5773. // ele.apiType = ele.agreement[0].apiType;
  5774. ele.underwritingDescription =
  5775. ele.agreement[0].underwritingDescription;
  5776. if (ele.isTaxSource && ele.isTaxSource == "1") {
  5777. ele.agreement.forEach((val) => {
  5778. if (val.isTaxSource && val.isTaxSource == "1") {
  5779. ele.agreementId = val.id;
  5780. ele.apiType = val.apiType;
  5781. }
  5782. });
  5783. }
  5784. });
  5785. if (data) {
  5786. res.data.forEach((val, index) => {
  5787. data.insAreaCompanyEditingDtos.forEach((ele) => {
  5788. if (val.namesimple == ele.inscompany) {
  5789. if (["中国人寿","诚泰财险"].includes(ele.inscompany) && ele.companyId) {
  5790. this.lastCompanyId = ele.companyId;
  5791. }
  5792. res.data[index].quoteCode = 200;
  5793. res.data[index].result = ele;
  5794. }
  5795. });
  5796. });
  5797. }
  5798. // //险种合并集合
  5799. }
  5800. const combinedArray = [
  5801. ...this.riskList.map(item => item.riskCode),
  5802. ...this.kindList.map(item => item.kindCode),
  5803. ];
  5804. res.data = res.data.filter(obj => {
  5805. obj.agreement = obj.agreement.filter(agreementObj => {
  5806. // 险种配置为空,则过滤掉该协议
  5807. if (agreementObj.productsCodes == null) {
  5808. return true;
  5809. } else {
  5810. // 检查是否包含 A 的特殊处理
  5811. if (combinedArray.includes('A') && !agreementObj.productsCodes.includes(
  5812. 'A')) {
  5813. return false;
  5814. }
  5815. return agreementObj.productsCodes.some(item => combinedArray.includes(
  5816. item));
  5817. }
  5818. });
  5819. return obj.agreement.length > 0; // 返回true保留,返回false移除该保险公司
  5820. });
  5821. res.data.forEach((e) => {
  5822. e.agreement.forEach((el) => (el.disabled = false));
  5823. });
  5824. this.totalCompanyList = res.data;
  5825. },
  5826. //获取保险公司列表
  5827. // commpanyList() {
  5828. // this.$api.letter.gainAllowQuoteList("").then(res => {
  5829. // res.data.map(ele => {
  5830. // ele["result"] = {};
  5831. // ele["quoteCode"] = 0;
  5832. // ele["checked"] = false;
  5833. // ele["msg"] = "";
  5834. // ele["lastYearMsg"] = "";
  5835. // ele["agreementId"] = "";
  5836. // ele["apiType"] = "";
  5837. // ele["orderstatus"] = 0;
  5838. // ele.coefficient = "";
  5839. // // ele.agreementId = ele.agreement[0].id;
  5840. // ele.apiType = ele.agreement[0].apiType;
  5841. // ele.underwritingDescription =
  5842. // ele.agreement[0].underwritingDescription;
  5843. // });
  5844. // if (this.$route.query.data) {
  5845. // res.data.forEach((val, index) => {
  5846. // this.$route.query.data.insAreaCompanyEditingDtos.forEach(ele => {
  5847. // if (val.namesimple == ele.inscompany) {
  5848. // res.data[index].quoteCode = 200;
  5849. // res.data[index].result = ele;
  5850. // }
  5851. // });
  5852. // });
  5853. // }
  5854. // this.totalCompanyList = res.data;
  5855. // });
  5856. // },
  5857. Payment(id, item) {
  5858. this.carcode(id, item);
  5859. },
  5860. // 现询
  5861. getInquiryNowList(agreementId, riskList, kindList) {
  5862. let productId = ''
  5863. this.inquiryNowList = []
  5864. this.$api.letter.getProductId({
  5865. riskList: riskList,
  5866. kindList: kindList
  5867. }).then((res) => {
  5868. if (res.code == 200) {
  5869. productId = res.data
  5870. this.$api.letter.getInquiryNowFee({
  5871. agreementId: agreementId,
  5872. productId: productId
  5873. }).then((resp) => {
  5874. if (resp.code == 200) {
  5875. this.inquiryNowList = resp.data
  5876. }
  5877. })
  5878. }
  5879. })
  5880. },
  5881. inquiryNowListChange(data) {
  5882. if (data) {
  5883. this.nowCostsId = data // 现询id
  5884. this.isInquiryNowDisable = true
  5885. this.inquiryNowList.forEach((val) => {
  5886. if (val.id == data) {
  5887. this.policyNumberForm.jqCostsProportion = val.jqCostsProportion
  5888. this.policyNumberForm.noCostsProportion = val.noCostsProportion
  5889. this.policyNumberForm.syCostsProportion = val.syCostsProportion
  5890. }
  5891. })
  5892. } else {
  5893. this.nowCostsId = ''
  5894. this.isInquiryNowDisable = false
  5895. this.policyNumberForm.jqCostsProportion = ''
  5896. this.policyNumberForm.noCostsProportion = ''
  5897. this.policyNumberForm.syCostsProportion = ''
  5898. }
  5899. },
  5900. //选择协议 val:协议id row:协议列表 index:下标 item:保险公司数据集合
  5901. agreementChange(val, row, index, item) {
  5902. this.getInquiryNowList(val, this.riskList, this.kindList)
  5903. this.kindListFun();
  5904. if (this.isLetter == "3") {
  5905. this.isLetter3agreementId = "";
  5906. this.isLetter3agreementId = item.agreementId;
  5907. }
  5908. let obj = {};
  5909. obj = row.find((item) => {
  5910. return item;
  5911. });
  5912. let selectRow = row.find((item) => {
  5913. return item.id == val;
  5914. });
  5915. let info = row.find((ele) => ele.id == val);
  5916. this.totalCompanyList[index].apiType = info.apiType;
  5917. this.totalCompanyList[index].underwritingDescription = val
  5918. ? selectRow.underwritingDescription
  5919. : ""; //重新赋值修改选中协议承保描述
  5920. if (this.$route.path != "/task/external/externalOrders")
  5921. if(item.namesimple == "平安财险" ){
  5922. this.$api.letter.getPingAnDrivingInsuranceRule({
  5923. cimodelclass: this.carInfo.cimodelclass,
  5924. isUseCombine:'Y',
  5925. tonNumber:this.carInfo.limitLoad,
  5926. ownAttribute:'03',
  5927. useAttribute: this.carInfo.carnature,
  5928. ruleSeatNum:Number(this.carInfo.seatCount),
  5929. agreementId: item.agreementId,
  5930. }).then(res=>{
  5931. this.pinganInsuranceData= res.data;
  5932. })
  5933. return
  5934. }
  5935. this.$api.letter
  5936. .getDrivingInsuranceRule({
  5937. companyCode: item.id,
  5938. agreementId: item.agreementId,
  5939. seatNum:
  5940. item.namesimple == "永诚财险" || item.namesimple == "中煤财险"
  5941. ? Number(this.carInfo.seatCount)
  5942. : "",
  5943. ruleUseNature: this.carInfo.carnature,
  5944. ruleSeatNum: Number(this.carInfo.seatCount),
  5945. risk: this.riskList,
  5946. kind: this.kindList,
  5947. ruleThirdPartyInsurance: this.insureList[1].amount,
  5948. })
  5949. .then((res) => {
  5950. if (res.code == 200) {
  5951. this.nonVehicle(res.data, item.cnName);
  5952. switch (item.namesimple) {
  5953. case "永诚财险":
  5954. this.yongchengaccidentDataList = res.data;
  5955. break;
  5956. case "国任财险":
  5957. this.guoRenaccidentDataList = res.data;
  5958. break;
  5959. case "渤海财险":
  5960. this.boHaiaccidentDataList = res.data;
  5961. break;
  5962. case "中煤财险":
  5963. this[item.cnName + +"InsuranceData"] = res.data;
  5964. break;
  5965. case "紫金财险":
  5966. let data = res.data;
  5967. data.map((ele) => {
  5968. ele.quantity = 1;
  5969. return ele;
  5970. });
  5971. this.ziJinInsuranceData = data;
  5972. break;
  5973. case "大家财险":
  5974. this.dajiaInsuranceData = res.data;
  5975. break;
  5976. case "泰康财险":
  5977. this.taikangaccidentDataList = res.data;
  5978. break;
  5979. case "诚泰财险":
  5980. case "中国人寿":
  5981. case "恒邦财险":
  5982. case "太平财险":
  5983. case "安盛天平":
  5984. case "华农财险":
  5985. case "众安财险":
  5986. res.data.map((ele) => {
  5987. ele.quantity = 1;
  5988. return ele;
  5989. });
  5990. this[item.cnName + "InsuranceData"] = res.data;
  5991. break;
  5992. }
  5993. } else {
  5994. this.$message.error(res.msg);
  5995. }
  5996. });
  5997. // switch (item.namesimple) {
  5998. // case "永诚财险":
  5999. // this.accidentForm.agreementId = item.agreementId;
  6000. // this.$api.letter
  6001. // .ycgainAccidentList({
  6002. // companyCode: item.id,
  6003. // agreementId: item.agreementId,
  6004. // seatNum: Number(this.carInfo.seatCount)
  6005. // })
  6006. // .then(res => {
  6007. // if (res.code == 200) {
  6008. // this.accidentDataList = res.data;
  6009. // }
  6010. // });
  6011. // break;
  6012. // case "国任财险":
  6013. // this.guoRenaccidentForm.agreementId = item.agreementId;
  6014. // this.$api.letter
  6015. // .syncNonAutoInsGuoren({ agreementId: item.agreementId })
  6016. // .then(res => {
  6017. // if (res.code == 200) {
  6018. // this.guoRenaccidentDataList = res.data;
  6019. // } else {
  6020. // this.guoRenaccidentDataList = [];
  6021. // }
  6022. // });
  6023. // break;
  6024. // case "渤海财险":
  6025. // this.boHaiaccidentForm.agreementId = item.agreementId;
  6026. // let policyHolderInfo = this.tbczcarShow
  6027. // ? this.ownerInfo
  6028. // : this.policyHolderInfo;
  6029. // let productQueryVo = {
  6030. // agreementId: item.agreementId,
  6031. // carnature: this.carInfo.carnature,
  6032. // cimodelclass: this.carInfo.cimodelclass,
  6033. // exhaustScale: this.carInfo.enginedesc,
  6034. // limitLoad: this.carInfo.limitLoad,
  6035. // powerScale: this.carInfo.powerScale,
  6036. // seatCount: this.carInfo.seatCount,
  6037. // vehicleUse: this.carInfo.vehicleUse,
  6038. // policyHolderInfo,
  6039. // insuredPersonInfo: this.bbczcarShow
  6040. // ? this.ownerInfo
  6041. // : this.bbtbcarShow
  6042. // ? policyHolderInfo
  6043. // : this.insuredPersonInfo
  6044. // };
  6045. // this.$api.letter.productQueryboHai(productQueryVo).then(res => {
  6046. // if (res.code == 200) {
  6047. // this.boHaiaccidentDataList = res.data;
  6048. // } else {
  6049. // this.boHaiaccidentDataList = [];
  6050. // }
  6051. // });
  6052. // break;
  6053. // case "紫金财险":
  6054. // this.$api.letter
  6055. // .zijinqueryVehicleProducts({
  6056. // agreementId: val,
  6057. // seatCount: Number(this.carInfo.seatCount)
  6058. // })
  6059. // .then(res => {
  6060. // if (res.code == 200) {
  6061. // let data = res.data;
  6062. // data.map(ele => {
  6063. // ele.quantity = 1;
  6064. // return ele;
  6065. // });
  6066. // this.ziJinInsuranceData = data;
  6067. // } else {
  6068. // this.$message.error(res.msg);
  6069. // }
  6070. // });
  6071. // break;
  6072. // case "中国人寿":
  6073. // case "恒邦财险":
  6074. // case "太平财险":
  6075. // case "安盛天平":
  6076. // case "华农财险":
  6077. // case "众安财险":
  6078. // this.$api.letter.pythongetDriving({ agreementId: val }).then(res => {
  6079. // if (res.code == 200) {
  6080. // let data = res.data;
  6081. // data.map(ele => {
  6082. // ele.quantity = 1;
  6083. // return ele;
  6084. // });
  6085. // this[item.cnName + "InsuranceData"] = data;
  6086. // }
  6087. // });
  6088. // break;
  6089. // case "大家财险":
  6090. // this.$api.letter
  6091. // .dajiagetDriving({ agreementId: item.agreementId })
  6092. // .then(res => {
  6093. // if (res.code == 200) {
  6094. // this.dajiaInsuranceData = res.data;
  6095. // }
  6096. // });
  6097. // break;
  6098. // default:
  6099. // break;
  6100. // }
  6101. },
  6102. nonVehicle(data, type) {
  6103. if (data.some((e) => e.isDefault)) {
  6104. if (type == "guoRen") {
  6105. this.grcxchange(data.find((ele) => ele.isDefault).projectCode);
  6106. this.grcxchangeChild(
  6107. data
  6108. .find((ele) => ele.isDefault)
  6109. .children.find((ele) => ele.isDefault).projectCode
  6110. );
  6111. }
  6112. if (type == "ansheng") {
  6113. this.anshengInsuranceChange(
  6114. data.find((ele) => ele.isDefault).projectCode
  6115. );
  6116. this.ASDrivingRadio(
  6117. data
  6118. .find((ele) => ele.isDefault)
  6119. .children.find((ele) => ele.isDefault)
  6120. );
  6121. }
  6122. if (type == "zijin") {
  6123. this[type + "InsuranceChange"]([
  6124. data.find((ele) => ele.isDefault).projectCode,
  6125. ]);
  6126. } else {
  6127. this[type + "InsuranceChange"](
  6128. data.find((ele) => ele.isDefault).projectCode
  6129. );
  6130. }
  6131. }
  6132. },
  6133. CheckboxChange(select, row) {
  6134. this.accidentalDrivingVo = [];
  6135. select.map((val) => {
  6136. this.accidentalDrivingVo.push(val);
  6137. return val;
  6138. });
  6139. },
  6140. //人寿驾意险选择
  6141. RSDrivingChange(row) {
  6142. this.renshouaccidentalDrivingVo = row;
  6143. },
  6144. TkDrivingChange(row) {
  6145. this.taikangaccidentalDrivingVo = row;
  6146. },
  6147. //众安驾意险选择
  6148. ZADrivingChange(row) {
  6149. this.zhonganaccidentalDrivingVo = row;
  6150. },
  6151. RSDrivingRadio(row) {
  6152. this.RSDrivingChange(row);
  6153. },
  6154. //安盛驾意险选择
  6155. ASDrivingRadio(row) {
  6156. this.anshengInsurancetype = row.projectCode;
  6157. this.anshengaccidentalDrivingVo = Object.assign({
  6158. ...this.anshengaccidentalDrivingVo,
  6159. ...row,
  6160. });
  6161. // this.anshengaccidentalDrivingVo.projectCode = row.projectCode;
  6162. // this.anshengaccidentalDrivingVo.projectName = row.projectName;
  6163. },
  6164. pinganDetail(row,agreementId) {
  6165. this.pinganDataDetailVisible=false
  6166. this.$api.letter
  6167. .productDetailsQuery({ agreementId,
  6168. packageCode:row.code,
  6169. productCode:row.productCode,
  6170. version:row.version,
  6171. })
  6172. .then((res) => {
  6173. if(res.code==200){
  6174. this.pinganDataDetailVisible=true
  6175. this.pinganDataDetail=res.data
  6176. }
  6177. else{
  6178. this.$message.err(res.msg)
  6179. }
  6180. });
  6181. },
  6182. sameItem(array1,array2) {
  6183. return array2.find(item => {
  6184. array1.some(innerItem => innerItem.code === item.code)
  6185. }
  6186. );
  6187. },
  6188. PADrivingCheckbox(event,row,agreementId,index) {
  6189. // const checkedVal = this.accidentFormPA[index].pinganInsuranceDataTable.find(x => x.cameraId === item.cameraId)
  6190. const isSelected = event.some(selectedRow => selectedRow.code == row.code);
  6191. let isIndex =null
  6192. let amount =null
  6193. event.find((selectedRow,selectedIndex) => {
  6194. if(selectedRow.code == row.code){
  6195. isIndex= selectedIndex
  6196. }
  6197. });
  6198. if(event.length>0 && isSelected){
  6199. this.$api.letter
  6200. .productDetailsQuery({ agreementId,
  6201. packageCode:row.code,
  6202. productCode:row.productCode,
  6203. version:row.version,
  6204. })
  6205. .then((res) => {
  6206. if(res.code==200){
  6207. res.data.forEach(ele=>{
  6208. amount+=Number(ele.unitInsuredAmount)?Number(ele.unitInsuredAmount):0
  6209. })
  6210. event[isIndex].amount=amount
  6211. }
  6212. else{
  6213. this.$message.err(res.msg)
  6214. }
  6215. });
  6216. }
  6217. event.forEach((res,indexOf)=>{
  6218. res.projectName=this.accidentFormPA[index].projectName
  6219. res.projectCode=this.accidentFormPA[index].projectCode
  6220. res.combineProductType=this.accidentFormPA[index].combineProductType
  6221. })
  6222. this.pinganaccidentalDrivingVo[index]=event
  6223. },
  6224. //平安驾意险选择
  6225. PADrivingRadio(row,agreementId,index) {
  6226. // this.accidentPremiumPA = row.premium;
  6227. this.accidentFormPA[index].quantity = '1';
  6228. this.accidentFormPA[index].sellListSize =Number(row.sellListSize) ;
  6229. this.accidentFormPA[index].premium = row.premium
  6230. this.accidentFormPA[index].combineProductType = row.combineProductType
  6231. this.accidentFormPA[index].accidentPremiumPA = row.premium
  6232. this.accidentFormPA[index].pinganInsurancetype = row.code;
  6233. this.$api.letter
  6234. .productDetailsQuery({ agreementId,
  6235. packageCode:row.code,
  6236. productCode:row.productCode,
  6237. version:row.version,
  6238. })
  6239. .then((res) => {
  6240. if(res.code==200){
  6241. this.accidentFormPA[index].amount=0
  6242. res.data.forEach(e=>{
  6243. this.accidentFormPA[index].amount+=Number(e.unitInsuredAmount)?Number(e.unitInsuredAmount):0
  6244. })
  6245. this.pinganaccidentalDrivingVo[index]={
  6246. ...row,
  6247. ...this.accidentFormPA[index],
  6248. };
  6249. }
  6250. else{
  6251. this.$message.err(res.msg)
  6252. this.pinganaccidentalDrivingVo[index]={
  6253. ...row,
  6254. ...this.accidentFormPA[index],
  6255. };
  6256. }
  6257. });
  6258. },
  6259. ZADrivingRadio(row) {
  6260. this.ZADrivingChange(row);
  6261. },
  6262. // 国任特约选择
  6263. contributingGuoRen(id) {
  6264. this.zijinengageListData = [];
  6265. this.contributingLoading = true;
  6266. this.contributingState = true;
  6267. this.hbsubmitdialogVisible = true;
  6268. this.$api.letter
  6269. .guorenqueryClauseData({ agreementId: id })
  6270. .then((res) => {
  6271. this.contributingLoading = false;
  6272. res.data.forEach((val) => {
  6273. val.clauseName = val.clauses;
  6274. val.clauseContent = val.clausesContext;
  6275. });
  6276. this.zijinengageListData = res.data;
  6277. });
  6278. },
  6279. //紫金特约选择
  6280. zijinengageChange(select, row) {
  6281. this.zijinengageList = [];
  6282. select.map((val) => {
  6283. this.zijinengageList.push({
  6284. clauseCode: val.clauseCode,
  6285. clauseName: val.clauseName,
  6286. clauses: val.clauseContent,
  6287. riskCode: val.riskCode,
  6288. });
  6289. return val;
  6290. });
  6291. },
  6292. zijinengageChangeAll(row) {
  6293. if (row) {
  6294. this.zijinengageChange(row);
  6295. } else {
  6296. this.$refs.expandTablePro.clearSelection();
  6297. this.zijinengageList = [];
  6298. }
  6299. },
  6300. //紫金特约内容编辑
  6301. zijincellDblclick(row, column) {
  6302. this.currentCell = row.index + "," + column.index;
  6303. if (
  6304. !["clauseContent"].includes(column.property) &&
  6305. row.modifyFlag == "1"
  6306. ) {
  6307. setTimeout(() => {
  6308. this.$refs[row.index + "," + column.index].focus();
  6309. });
  6310. }
  6311. },
  6312. tableCellClassName({ row, column, rowIndex, columnIndex }) {
  6313. row.index = rowIndex;
  6314. column.index = columnIndex;
  6315. },
  6316. hideInput() {
  6317. this.currentCell = null;
  6318. },
  6319. updateArray(arr, value, condition) {
  6320. if (condition) {
  6321. arr.push(value);
  6322. } else {
  6323. const index = arr.indexOf(value);
  6324. if (index !== -1) {
  6325. arr.splice(index, 1);
  6326. }
  6327. }
  6328. if (arr.length == 0) {
  6329. this.totalCompanyList.forEach((e) => {
  6330. e.disabled = false;
  6331. });
  6332. } else {
  6333. this.totalCompanyList.forEach((e) => {
  6334. e.disabled = e.id == arr[0] ? false : true;
  6335. });
  6336. }
  6337. },
  6338. //勾选保险公司
  6339. initchange(e, code, name, index) {
  6340. if (this.isLetter == "3") {
  6341. this.updateArray(this.isLetter3Arr, code, e);
  6342. if (e) {
  6343. this.totalCompanyList[index].result = JSON.parse(
  6344. JSON.stringify(this.policyNumberForm)
  6345. );
  6346. } else {
  6347. this.totalCompanyList[index].result = [];
  6348. }
  6349. }
  6350. if (e) {
  6351. this.kindListFun();
  6352. let ins = this.totalCompanyList[index].namesimple;
  6353. this.totalCompanyList[index].checked = e;
  6354. this.totalCompanyList[index].underwritingDescription =
  6355. this.totalCompanyList[index].agreement[0].underwritingDescription;
  6356. if (this.$route.path != "/task/external/externalOrders")
  6357. this.$api.letter
  6358. .getDrivingInsuranceRule({
  6359. agreementId: this.totalCompanyList[index].agreement[0].id,
  6360. seatNum:
  6361. ins == "永诚财险" || ins == "中煤财险"
  6362. ? Number(this.carInfo.seatCount)
  6363. : "",
  6364. ruleUseNature: this.carInfo.carnature,
  6365. ruleSeatNum: Number(this.carInfo.seatCount),
  6366. risk: this.riskList,
  6367. kind: this.kindList,
  6368. ruleThirdPartyInsurance: this.insureList[1].amount,
  6369. cimodelclass: ins == "平安财险"
  6370. ? this.carInfo.cimodelclass
  6371. : "",
  6372. isUseCombine:ins == "平安财险"
  6373. ? 'Y'
  6374. : "",
  6375. tonNumber:ins == "平安财险"
  6376. ? this.carInfo.limitLoad
  6377. : "",
  6378. ownAttribute:ins == "平安财险"
  6379. ? '03'
  6380. : "",
  6381. useAttribute: ins == "平安财险"
  6382. ? this.carInfo.carnature
  6383. : "",
  6384. })
  6385. .then((res) => {
  6386. if (res.code == 200) {
  6387. switch (ins) {
  6388. case "永诚财险":
  6389. this.yongchengaccidentDataList = res.data;
  6390. break;
  6391. case "国任财险":
  6392. this.guoRenaccidentDataList = res.data;
  6393. break;
  6394. case "渤海财险":
  6395. this.boHaiaccidentDataList = res.data;
  6396. break;
  6397. case "中煤财险":
  6398. case "平安财险":
  6399. this[name + "InsuranceData"] = res.data;
  6400. break;
  6401. case "紫金财险":
  6402. let data = res.data;
  6403. data.map((ele) => {
  6404. ele.quantity = 1;
  6405. return ele;
  6406. });
  6407. this.ziJinInsuranceData = data;
  6408. break;
  6409. case "大家财险":
  6410. this.dajiaInsuranceData = res.data;
  6411. break;
  6412. case "诚泰财险":
  6413. case "中国人寿":
  6414. case "恒邦财险":
  6415. case "太平财险":
  6416. case "华农财险":
  6417. case "安盛天平":
  6418. case "众安财险":
  6419. res.data.map((ele) => {
  6420. ele.quantity = 1;
  6421. return ele;
  6422. });
  6423. this[name + "InsuranceData"] = res.data;
  6424. break;
  6425. }
  6426. this.nonVehicle(res.data, name);
  6427. } else {
  6428. this.$message.error(res.msg);
  6429. }
  6430. });
  6431. // switch (ins) {
  6432. // case "永诚财险":
  6433. // this.accidentForm.agreementId = this.totalCompanyList[
  6434. // index
  6435. // ].agreement[0].id;
  6436. // this.$api.letter
  6437. // .ycgainAccidentList({
  6438. // companyCode: this.totalCompanyList[index].id,
  6439. // agreementId: this.totalCompanyList[index].agreement[0].id,
  6440. // seatNum: Number(this.carInfo.seatCount)
  6441. // })
  6442. // .then(res => {
  6443. // if (res.code == 200) {
  6444. // this.accidentDataList = res.data;
  6445. // } else {
  6446. // this.accidentDataList = [];
  6447. // }
  6448. // });
  6449. // break;
  6450. // case "国任财险":
  6451. // this.guoRenaccidentForm.agreementId = this.totalCompanyList[
  6452. // index
  6453. // ].agreement[0].id;
  6454. // this.$api.letter
  6455. // .syncNonAutoInsGuoren({
  6456. // goodsCode: "",
  6457. // agreementId: this.totalCompanyList[index].agreement[0].id
  6458. // })
  6459. // .then(res => {
  6460. // if (res.code == 200) {
  6461. // this.guoRenaccidentDataList = res.data;
  6462. // } else {
  6463. // this.guoRenaccidentDataList = [];
  6464. // }
  6465. // });
  6466. // break;
  6467. // case "紫金财险":
  6468. // this.$api.letter
  6469. // .zijinqueryVehicleProducts({
  6470. // agreementId: this.totalCompanyList[index].agreement[0].id,
  6471. // seatCount: Number(this.carInfo.seatCount)
  6472. // })
  6473. // .then(res => {
  6474. // if (res.code == 200) {
  6475. // let data = res.data;
  6476. // data.map(ele => {
  6477. // ele.quantity = 1;
  6478. // return ele;
  6479. // });
  6480. // this.ziJinInsuranceData = data;
  6481. // } else {
  6482. // this.$message.error(res.msg);
  6483. // }
  6484. // });
  6485. // break;
  6486. // case "安盛天平":
  6487. // this.$api.letter
  6488. // .pythongetDriving({
  6489. // agreementId: this.totalCompanyList[index].agreement[0].id
  6490. // })
  6491. // .then(res => {
  6492. // if (res.code == 200) {
  6493. // let data = res.data;
  6494. // data.map(ele => {
  6495. // ele.departmentProductList.map(val => {
  6496. // val.quantity = 1;
  6497. // });
  6498. // return ele;
  6499. // });
  6500. // this[name + "InsuranceData"] = data;
  6501. // } else {
  6502. // this.$message.error(res.msg);
  6503. // }
  6504. // });
  6505. // break;
  6506. // case "中国人寿":
  6507. // case "恒邦财险":
  6508. // case "太平财险":
  6509. // case "华农财险":
  6510. // case "众安财险":
  6511. // this.$api.letter
  6512. // .pythongetDriving({
  6513. // agreementId: this.totalCompanyList[index].agreement[0].id
  6514. // })
  6515. // .then(res => {
  6516. // if (res.code == 200) {
  6517. // let data = res.data;
  6518. // data.map(ele => {
  6519. // ele.quantity = 1;
  6520. // return ele;
  6521. // });
  6522. // this[name + "InsuranceData"] = data;
  6523. // } else {
  6524. // this.$message.error(res.msg);
  6525. // }
  6526. // });
  6527. // break;
  6528. // case "中煤财险":
  6529. // this.accidentFormZM.agreementId = this.totalCompanyList[
  6530. // index
  6531. // ].agreement[0].id;
  6532. // this.$api.letter
  6533. // .zmGetDrivingPro({
  6534. // agreementId: this.totalCompanyList[index].agreement[0].id,
  6535. // seatNum: this.carInfo.seatCount
  6536. // })
  6537. // .then(res => {
  6538. // if (res.code == 200) {
  6539. // let data = res.data;
  6540. // this[name + "InsuranceData"] = data;
  6541. // } else {
  6542. // this.$message.error(res.msg);
  6543. // }
  6544. // });
  6545. // break;
  6546. // case "大家财险":
  6547. // this.$api.letter
  6548. // .dajiagetDriving({
  6549. // agreementId: this.totalCompanyList[index].agreement[0].id
  6550. // })
  6551. // .then(res => {
  6552. // if (res.code == 200) {
  6553. // this.dajiaInsuranceData = res.data;
  6554. // } else {
  6555. // this.$message.error(res.msg);
  6556. // }
  6557. // });
  6558. // break;
  6559. // default:
  6560. // break;
  6561. // }
  6562. } else {
  6563. }
  6564. },
  6565. clearAccidentForm() {
  6566. this.yongchengInsuranceDataTable = [];
  6567. this.accidentForm = {};
  6568. this.accidentForm.fen = 1;
  6569. this.accidentForm.premium = 0;
  6570. },
  6571. clearAccidentFormPA(index) {
  6572. // this.accidentFormPA[index]={
  6573. // quantity: 1,
  6574. // premium: 0,
  6575. // pingantemplateSelection:'',
  6576. // pinganInsuranceDataTable:[],
  6577. // pinganInsurancetype:'',
  6578. // }
  6579. this.pinganaccidentalDrivingVo[index] = {};
  6580. console.log(this.accidentFormPA[index],9999999999);
  6581. },
  6582. clearAccidentFormTk() {
  6583. this.taikangaccidentalDrivingVo = {};
  6584. this.taikangInsuranceDataTable = [];
  6585. this.accidentFormTk = {};
  6586. this.accidentFormTk.fen = 1;
  6587. this.accidentFormTk.premium = 0;
  6588. },
  6589. clearAccidentFormGr() {
  6590. (this.guoRenInsuranceDataTable = []),
  6591. (this.guoRenaccidentDataListChild = []);
  6592. this.guoRenaccidentForm = {
  6593. quantity: "1",
  6594. premium: 0,
  6595. };
  6596. },
  6597. clearAccidentFormBh() {
  6598. this.bohaiInsuranceDataTable = [];
  6599. this.boHaiaccidentForm = {
  6600. copies: "1",
  6601. premium: 0,
  6602. };
  6603. // this.bohaiaccidentalDrivingVo={};
  6604. },
  6605. clearAccidentFormHN() {
  6606. this.huanongaccidentalDrivingVo = {};
  6607. },
  6608. clearAccidentFormHB() {
  6609. this.hengbangaccidentalDrivingVo = {};
  6610. },
  6611. clearAccidentFormTP() {
  6612. this.taipingaccidentalDrivingVo = {};
  6613. },
  6614. clearAccidentFormDJ() {
  6615. this.dajiaaccidentalDrivingVo = {};
  6616. },
  6617. clearAccidentFormZM() {
  6618. this.zhongmeiaccidentalDrivingVo = {};
  6619. },
  6620. clearAccidentFormZJ() {
  6621. this.accidentalDrivingVo = [];
  6622. },
  6623. clearAccidentFormZA() {
  6624. this.zhonganaccidentalDrivingVo = {};
  6625. },
  6626. clearAccidentFormRS() {
  6627. this.renshouaccidentalDrivingVo = {};
  6628. },
  6629. clearAccidentFormAS() {
  6630. this.anshengaccidentalDrivingVo = {};
  6631. },
  6632. //身份证有效期长期
  6633. insureLongterm(e) {
  6634. this[e].identifyValidEndDate = "9999-12-31";
  6635. },
  6636. //较强起保日期事件
  6637. jqChange(e) {
  6638. this.jqendDate = this.oneYearPast1(e);
  6639. },
  6640. //商业起保日期事件
  6641. syChange(e) {
  6642. this.syendDate = this.oneYearPast1(e);
  6643. },
  6644. // //查看更多
  6645. // selectMore(leg) {
  6646. // this.insureMore = false;
  6647. // this.insureLength = leg;
  6648. // },
  6649. // //收起
  6650. // packup() {
  6651. // this.insureMore = true;
  6652. // this.insureLength = 5;
  6653. // },
  6654. //险别选择框事件
  6655. insureitemChange(e, item) {
  6656. if (e != 0) {
  6657. this.sychecked = true;
  6658. this.systartDate = this.transformTime1();
  6659. this.syendDate = this.oneYearPast1(this.systartDate);
  6660. this.kindList.push(item)
  6661. this.obtainProtocol();
  6662. } else {
  6663. let list = this.kindList.filter(item => item.kindCode !== item.kindCode);
  6664. this.kindList = list;
  6665. this.obtainProtocol();
  6666. }
  6667. },
  6668. all() {
  6669. this.$refs.detailsDialog.setBackupVisible(true);
  6670. },
  6671. base64ToBlob(code) {
  6672. code = code.replace(/[\n\r]/g, "");
  6673. // atob() 方法用于解码使用 base-64 编码的字符串。
  6674. const raw = window.atob(code);
  6675. const rawLength = raw.length;
  6676. const uInt8Array = new Uint8Array(rawLength);
  6677. for (let i = 0; i < rawLength; ++i) {
  6678. uInt8Array[i] = raw.charCodeAt(i);
  6679. }
  6680. return new Blob([uInt8Array], { type: "application/pdf" });
  6681. },
  6682. viewPdf(content) {
  6683. if (!content) {
  6684. this.$message.error("暂无文件");
  6685. return;
  6686. }
  6687. const blob = this.base64ToBlob(content);
  6688. this.href = blob;
  6689. if (window.navigator && window.navigator.msSaveOrOpenBlob) {
  6690. window.navigator.msSaveOrOpenBlob(blob);
  6691. } else {
  6692. const fileURL = URL.createObjectURL(blob);
  6693. window.open(fileURL);
  6694. }
  6695. },
  6696. //二维码生成插件
  6697. creatQrCode(text) {
  6698. // 查找并删除旧的二维码DOM元素
  6699. let element = document.getElementById("qrcode");
  6700. while (element.firstChild) {
  6701. element.removeChild(element.firstChild);
  6702. }
  6703. // 创建新的QRCode实例
  6704. this.qrcode = new QRCode("qrcode", {
  6705. text: text,
  6706. width: this.qrcodeWidth,
  6707. height: this.qrcodeHeight,
  6708. colorDark: "#000000",
  6709. colorLight: "#ffffff",
  6710. correctLevel: QRCode.CorrectLevel.H,
  6711. });
  6712. },
  6713. //人工核保
  6714. underwriting(id) {
  6715. let param = {
  6716. companyId: id,
  6717. };
  6718. this.$api.letter.manualUnderwriting(param).then((res) => {
  6719. if (res.code == "200") {
  6720. this.Payment(id);
  6721. }
  6722. });
  6723. },
  6724. signature(companyId){
  6725. this.$api.letter.pingAnsignEleApply({companyId}).then((res) => {
  6726. if (res.code == 200 && res.data) {
  6727. this.resultMessageImg=process.env.BASE_URL+res.data.resultMessage
  6728. this.signaturedialogVisible = true;
  6729. // 查找并删除旧的二维码DOM元素
  6730. // let element = document.getElementById("signaturecode");
  6731. // while (element.firstChild) {
  6732. // element.removeChild(element.firstChild);
  6733. // }
  6734. // this.signaturecode = new QRCode("signaturecode", {
  6735. // text: resultMessage,
  6736. // width: 180,
  6737. // height: 180,
  6738. // colorDark: "#000000",
  6739. // colorLight: "#ffffff",
  6740. // correctLevel: QRCode.CorrectLevel.H,
  6741. // });
  6742. // this.signaturedialogVisible = true;
  6743. // this.$api.letter.pingAnsignEleApply({companyId}).then((res) => {
  6744. // if (res.code == 200 && res.data) {
  6745. // // 查找并删除旧的二维码DOM元素
  6746. // let element = document.getElementById("signaturecode");
  6747. // while (element.firstChild) {
  6748. // element.removeChild(element.firstChild);
  6749. // }
  6750. // this.signaturecode = new QRCode("signaturecode", {
  6751. // text: res.data.resultMessage,
  6752. // width: 180,
  6753. // height: 180,
  6754. // colorDark: "#000000",
  6755. // colorLight: "#ffffff",
  6756. // correctLevel: QRCode.CorrectLevel.H,
  6757. // });
  6758. } else {
  6759. this.$message({
  6760. message: res.msg || "暂无数据!",
  6761. type: "warning",
  6762. });
  6763. }
  6764. });
  6765. },
  6766. jqcheckedChange(e) {
  6767. if (e) {
  6768. this.jqstartDate = this.transformTime1();
  6769. this.jqendDate = this.oneYearPast1(this.jqstartDate);
  6770. this.riskList.push({
  6771. riskCode: "0507",
  6772. });
  6773. this.obtainProtocol();
  6774. } else {
  6775. this.jqstartDate = "";
  6776. this.jqendDate = "";
  6777. let list = this.riskList.filter(item => item.riskCode !== "0507");
  6778. this.riskList = list;
  6779. this.obtainProtocol();
  6780. }
  6781. },
  6782. sycheckedChange(e) {
  6783. if (e) {
  6784. this.systartDate = this.transformTime1();
  6785. this.syendDate = this.oneYearPast1(this.systartDate);
  6786. this.riskList.push({
  6787. riskCode: "0510",
  6788. });
  6789. this.obtainProtocol();
  6790. } else {
  6791. this.systartDate = "";
  6792. this.syendDate = "";
  6793. let list = this.riskList.filter(item => item.riskCode !== "0510");
  6794. this.riskList = list;
  6795. this.obtainProtocol();
  6796. }
  6797. },
  6798. // 保存
  6799. preserveQuote(type, btnLoading) {
  6800. if (
  6801. this.userId == "" ||
  6802. this.userId == null ||
  6803. this.userId == undefined
  6804. ) {
  6805. this.$message({ message: "请选择业务员信息", type: "error" });
  6806. return;
  6807. } else {
  6808. if (!this.userId.includes("M")) {
  6809. this.$message({ message: "请选择业务员信息", type: "error" });
  6810. return;
  6811. }
  6812. }
  6813. let starttime = new Date(this.carInfo.registerDate);
  6814. let endtime = new Date(this.carInfo.issueDate);
  6815. if (endtime < starttime) {
  6816. this.$message({ message: "发证日期早于初登日期", type: "error" });
  6817. return;
  6818. }
  6819. if (
  6820. this.policyNumberForm.jqpolicyno ||
  6821. this.policyNumberForm.jqpremium ||
  6822. this.policyNumberForm.jqCostsProportion ||
  6823. this.policyNumberForm.jqPolicyList.length > 0
  6824. ) {
  6825. if (
  6826. !(
  6827. this.policyNumberForm.jqpolicyno &&
  6828. this.policyNumberForm.jqpremium &&
  6829. this.policyNumberForm.jqCostsProportion &&
  6830. this.policyNumberForm.jqPolicyList.length > 0
  6831. )
  6832. ) {
  6833. this.$message({
  6834. message: "请填写交强保单号、交强险保费、交强险总比例(%)、交强保单",
  6835. type: "error",
  6836. });
  6837. return;
  6838. }
  6839. }
  6840. if (
  6841. this.policyNumberForm.sypolicyno ||
  6842. this.policyNumberForm.sypremium ||
  6843. this.policyNumberForm.syCostsProportion ||
  6844. this.policyNumberForm.syPolicyList.length > 0
  6845. ) {
  6846. if (
  6847. !(
  6848. this.policyNumberForm.sypolicyno &&
  6849. this.policyNumberForm.sypremium &&
  6850. this.policyNumberForm.syCostsProportion &&
  6851. this.policyNumberForm.syPolicyList.length > 0
  6852. )
  6853. ) {
  6854. this.$message({
  6855. message: "请填写商业保单号、商业险保费、商业险总比例(%)、商业保单",
  6856. type: "error",
  6857. });
  6858. return;
  6859. }
  6860. }
  6861. if (
  6862. this.policyNumberForm.jypolicyno ||
  6863. this.policyNumberForm.jypremium ||
  6864. this.policyNumberForm.noCostsProportion ||
  6865. this.policyNumberForm.noPolicyList.length > 0
  6866. ) {
  6867. if (
  6868. !(
  6869. this.policyNumberForm.jypolicyno &&
  6870. this.policyNumberForm.jypremium &&
  6871. this.policyNumberForm.noCostsProportion &&
  6872. this.policyNumberForm.noPolicyList.length > 0
  6873. )
  6874. ) {
  6875. this.$message({
  6876. message:
  6877. "请填写驾意险保单号、驾意险保费、非车险总比例(%)、非车保单",
  6878. type: "error",
  6879. });
  6880. return;
  6881. }
  6882. }
  6883. this.$refs["carInfo"].validate((valid) => {
  6884. if (valid) {
  6885. var _this = this;
  6886. _this.$refs["ownerInfo"].validate((valid1) => {
  6887. if (valid1) {
  6888. _this.$refs["policyNumberForm"].validate((valid2) => {
  6889. if (valid2) {
  6890. if (_this.tbczcarShow == true) {
  6891. _this.policyHolderInfo = JSON.parse(
  6892. JSON.stringify(_this.ownerInfo)
  6893. );
  6894. }
  6895. if (_this.bbczcarShow == true) {
  6896. _this.insuredPersonInfo = JSON.parse(
  6897. JSON.stringify(_this.ownerInfo)
  6898. );
  6899. }
  6900. if (_this.bbtbcarShow == true) {
  6901. _this.insuredPersonInfo = JSON.parse(
  6902. JSON.stringify(_this.policyHolderInfo)
  6903. );
  6904. }
  6905. _this.carInfo.vinNo = _this.carInfo.frameNo;
  6906. _this.riskList = []; //险种大类
  6907. _this.kindList = []; //商业险险别
  6908. if (
  6909. (!_this.jqstartDate || !_this.jqendDate) &&
  6910. (!_this.systartDate || !_this.syendDate)
  6911. ) {
  6912. this.$message({
  6913. message: "投保日期不能为空",
  6914. type: "warning",
  6915. });
  6916. } else {
  6917. this.calculateLoading = true;
  6918. setInterval(() => {
  6919. this.calculateLoading = false;
  6920. }, 3000);
  6921. if (_this.jqchecked) {
  6922. //交强
  6923. _this.jqstartDate = this.transformTime(_this.jqstartDate);
  6924. _this.jqendDate = this.transformTime(_this.jqendDate);
  6925. _this.riskList.push({
  6926. amount: "200000",
  6927. premium: "0",
  6928. riskCode: "0507",
  6929. endDate: _this.jqendDate,
  6930. startDate: _this.jqstartDate,
  6931. instantFlag: "0",
  6932. });
  6933. }
  6934. if (_this.sychecked) {
  6935. _this.systartDate = this.transformTime(_this.systartDate);
  6936. _this.syendDate = this.transformTime(_this.syendDate);
  6937. //商业
  6938. _this.riskList.push({
  6939. premium: "0",
  6940. riskCode: "0510",
  6941. quotePreceptCode: "",
  6942. quotePreceptName: "",
  6943. endDate: _this.syendDate,
  6944. startDate: _this.systartDate,
  6945. instantFlag: "0",
  6946. });
  6947. _this.insureList.map((ele, index) => {
  6948. if (
  6949. ele.amount != "0" &&
  6950. (ele.kindCode == "D4" || ele.kindCode == "SY_FJ_YBW2")
  6951. ) {
  6952. _this.kindList.push({
  6953. unitAmount: _this.insureList[index].amount,
  6954. kindCode: _this.insureList[index].kindCode,
  6955. kindName: _this.insureList[index].kindName,
  6956. });
  6957. } else if (
  6958. ele.amount != "0" &&
  6959. (ele.kindCode == "MJ1" ||
  6960. ele.kindCode == "MJ2" ||
  6961. ele.kindCode == "MJ3" ||
  6962. ele.kindCode == "MJ4")
  6963. ) {
  6964. _this.kindList.push({
  6965. deductibleRate: _this.insureList[index].amount,
  6966. kindCode: _this.insureList[index].kindCode,
  6967. kindName: _this.insureList[index].kindName,
  6968. });
  6969. } else if (
  6970. ele.amount != "0" &&
  6971. (ele.kindCode == "TY1" ||
  6972. ele.kindCode == "TY2" ||
  6973. ele.kindCode == "TY3" ||
  6974. ele.kindCode == "TY4")
  6975. ) {
  6976. _this.kindList.push({
  6977. serviceTimes: _this.insureList[index].amount,
  6978. kindCode: _this.insureList[index].kindCode,
  6979. kindName: _this.insureList[index].kindName,
  6980. });
  6981. } else if (ele.amount != "0") {
  6982. _this.kindList.push({
  6983. amount: _this.insureList[index].amount,
  6984. kindCode: _this.insureList[index].kindCode,
  6985. kindName: _this.insureList[index].kindName,
  6986. });
  6987. }
  6988. return ele;
  6989. });
  6990. } else {
  6991. _this.kindList = [];
  6992. }
  6993. // console.log(_this.kindList);
  6994. // debugger
  6995. this.preserveOrderStageProcessing(type, btnLoading);
  6996. }
  6997. } else {
  6998. document.getElementById("Waibu").scrollIntoView();
  6999. _this.$message({
  7000. message: "请检查外部订单信息",
  7001. type: "warning",
  7002. });
  7003. }
  7004. });
  7005. } else {
  7006. document.getElementById("CheZhu").scrollIntoView();
  7007. _this.$message({ message: "请检查人员信息", type: "warning" });
  7008. }
  7009. });
  7010. } else {
  7011. document.getElementById("Car").scrollIntoView();
  7012. this.$message({ message: "请检查车辆信息", type: "warning" });
  7013. return false;
  7014. }
  7015. });
  7016. },
  7017. //订单生成后保存接口
  7018. preserveOrderStageProcessing(type, btnLoading) {
  7019. // console.log(this.editorInfo);
  7020. // debugger;
  7021. //同车主的选择框
  7022. this[btnLoading] = true;
  7023. if (this.tbczcarShow && this.imageList2.length > 0) {
  7024. //投保人同车主
  7025. this.imageList3 = JSON.parse(JSON.stringify(this.imageList2));
  7026. if (this.imageList3.length == 1) {
  7027. this.imageList3[0].imageType = this.imageList3[0].imageType.includes(
  7028. "C0"
  7029. )
  7030. ? "C03"
  7031. : "D03";
  7032. } else {
  7033. this.imageList3.forEach((e) => {
  7034. e.imageType = e.imageType.includes("C0") ? "C03" : "D03";
  7035. });
  7036. }
  7037. }
  7038. if (this.bbczcarShow && this.imageList2.length > 0) {
  7039. //被保人同车主
  7040. this.imageList4 = JSON.parse(JSON.stringify(this.imageList2));
  7041. if (this.imageList4.length == 1) {
  7042. this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  7043. "C0"
  7044. )
  7045. ? "C04"
  7046. : "D04";
  7047. } else {
  7048. this.imageList4.forEach((e) => {
  7049. e.imageType = e.imageType.includes("C0") ? "C04" : "D04";
  7050. });
  7051. }
  7052. }
  7053. if (this.bbtbcarShow && this.imageList3.length > 0) {
  7054. //被保人同投保人
  7055. this.imageList4 = JSON.parse(JSON.stringify(this.imageList3));
  7056. if (this.imageList4.length == 1) {
  7057. this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  7058. "C0"
  7059. )
  7060. ? "C04"
  7061. : "D04";
  7062. } else {
  7063. this.imageList4.forEach((e) => {
  7064. e.imageType = e.imageType.includes("C0") ? "C04" : "D04";
  7065. });
  7066. }
  7067. }
  7068. //日期长度<10处理
  7069. const formatDate = (date) => {
  7070. if (date.length < 10) {
  7071. return this.timeformat(date);
  7072. }
  7073. return date;
  7074. };
  7075. if (this.carInfo.registerDate.length < 10) {
  7076. this.carInfo.registerDate = formatDate(this.carInfo.registerDate);
  7077. }
  7078. if (this.carInfo.issueDate.length < 10) {
  7079. this.carInfo.issueDate = formatDate(this.carInfo.issueDate);
  7080. }
  7081. if (
  7082. this.carInfo.transferDate &&
  7083. this.carInfo.transferDate.length < 10 &&
  7084. this.carInfo.transferDate !== ""
  7085. ) {
  7086. this.carInfo.transferDate = formatDate(this.carInfo.transferDate);
  7087. }
  7088. //日期长度<10处理
  7089. //提交身份证/驾驶证 ——————————————————
  7090. this.policyHolderInfo.owner = this.tbczcarShow;
  7091. this.insuredPersonInfo.owner = this.bbczcarShow;
  7092. this.insuredPersonInfo.insuranceHolder = this.bbtbcarShow;
  7093. if (typeof this.ownerInfo.provinceData == "string") {
  7094. this.ownerInfo.provinceData = [];
  7095. }
  7096. if (typeof this.insuredPersonInfo.provinceData == "string") {
  7097. this.insuredPersonInfo.provinceData = [];
  7098. }
  7099. if (typeof this.policyHolderInfo.provinceData == "string") {
  7100. this.policyHolderInfo.provinceData = [];
  7101. }
  7102. if (this.$route.query.data) {
  7103. const mergedArray = [
  7104. ...this.imageList1,
  7105. ...this.imageList2,
  7106. ...this.imageList3,
  7107. ...this.imageList4,
  7108. ...this.imageList5,
  7109. ...this.imageList6,
  7110. ];
  7111. if (mergedArray.length > 0) {
  7112. let imageparam = {
  7113. imageList: mergedArray,
  7114. quoteNo: this.$route.query.data.quoteno,
  7115. };
  7116. this.$api.letter.uploadImages(imageparam).then((responses) => {
  7117. // this.$refs.imageDialog.imageEcho(this.$route.query.data.quoteno)
  7118. this.imageEcho(this.$route.query.data.quoteno); // 获取图片
  7119. });
  7120. }
  7121. this.editorInfo.applyinfo.owner = this.tbczcarShow;
  7122. this.editorInfo.insureinfo.owner = this.bbczcarShow;
  7123. this.editorInfo.insureinfo.insuranceHolder = this.bbtbcarShow;
  7124. let params = {
  7125. orderNo: this.$route.query.data.orderno,
  7126. ...this.policyNumberForm,
  7127. agreementId: this.isLetter3agreementId,
  7128. stageFlag: type,
  7129. jqstartdate: this.jqstartDate,
  7130. jqenddate: this.jqendDate,
  7131. systartdate : this.systartDate,
  7132. syenddate : this.syendDate,
  7133. kind: this.kindList,
  7134. risk: this.riskList,
  7135. kindList: this.kindList,
  7136. riskList: this.riskList,
  7137. carInfo: this.carInfo,
  7138. insuredPersonInfo: this.insuredPersonInfo,
  7139. ownerInfo: this.ownerInfo,
  7140. policyHolderInfo: this.policyHolderInfo,
  7141. isExternal: "1",
  7142. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  7143. };
  7144. // debugger;
  7145. this.$api.letter.updateExternalOrder(params).then((res) => {
  7146. if (res.code == "200") {
  7147. this[btnLoading] = false;
  7148. this.$message({
  7149. message: res.msg || "编辑成功",
  7150. type: "success",
  7151. });
  7152. this.add();
  7153. } else {
  7154. this[btnLoading] = false;
  7155. this.$message.error(res.msg);
  7156. }
  7157. });
  7158. } else {
  7159. this.ownerInfo.owner = this.tbczcarShow;
  7160. this.insuredPersonInfo.owner = this.bbczcarShow;
  7161. this.insuredPersonInfo.insuranceHolder = this.bbtbcarShow;
  7162. let param = {
  7163. userId: this.userId,
  7164. quoteno: this.quoteno,
  7165. orderNo: this.orderno,
  7166. carInfo: this.carInfo,
  7167. insuredPersonInfo: this.insuredPersonInfo,
  7168. ownerInfo: this.ownerInfo,
  7169. policyHolderInfo: this.policyHolderInfo,
  7170. kindList: this.kindList,
  7171. riskList: this.riskList,
  7172. isExternal: "1",
  7173. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  7174. };
  7175. this.$api.letter.generateOrder(param).then((res) => {
  7176. if (res.code == "200") {
  7177. //上传图片
  7178. const mergedArray = [
  7179. ...this.imageList1,
  7180. ...this.imageList2,
  7181. ...this.imageList3,
  7182. ...this.imageList4,
  7183. ...this.imageList5,
  7184. ...this.imageList6,
  7185. ];
  7186. if (mergedArray.length > 0) {
  7187. let imageparam = {
  7188. imageList: mergedArray,
  7189. quoteNo: res.data.quoteno,
  7190. };
  7191. this.$api.letter.uploadImages(imageparam).then((responses) => {
  7192. this.imageEcho(res.data.quoteno); // 获取图片
  7193. // this.$refs.imageDialog.imageEcho(res.data.quoteno)
  7194. });
  7195. }
  7196. let params1 = {
  7197. orderNo: res.data.orderno,
  7198. ...this.policyNumberForm,
  7199. agreementId: this.isLetter3agreementId,
  7200. stageFlag: type,
  7201. nowCostsId: this.nowCostsId
  7202. };
  7203. // debugger
  7204. this.$api.letter.saveSubOrder(params1).then((res) => {
  7205. if (res.code == "200") {
  7206. this[btnLoading] = false;
  7207. this.$message({
  7208. message: res.msg || "录入成功",
  7209. type: "success",
  7210. });
  7211. this.add();
  7212. } else {
  7213. this[btnLoading] = false;
  7214. this.$message.error(res.msg);
  7215. }
  7216. });
  7217. } else {
  7218. this[btnLoading] = false;
  7219. this.$message.error(res.msg);
  7220. }
  7221. });
  7222. }
  7223. document.getElementById("company").scrollIntoView();
  7224. this.imageUploadShow = true;
  7225. },
  7226. policyHolderInfovalidate() {
  7227. let isvalidat = false;
  7228. let _this = this;
  7229. if (_this.tbczcarShow == true) {
  7230. _this.policyHolderInfo = JSON.parse(JSON.stringify(_this.ownerInfo));
  7231. } else {
  7232. _this.$refs["policyHolderInfo"].validate((valid2) => {
  7233. if (valid2) {
  7234. isvalidat = false;
  7235. } else {
  7236. document.getElementById("toubaor").scrollIntoView();
  7237. _this.$message({ message: "请检查投保人信息", type: "warning" });
  7238. isvalidat = true;
  7239. }
  7240. });
  7241. }
  7242. if (isvalidat) {
  7243. return;
  7244. }
  7245. },
  7246. //报价
  7247. quote() {
  7248. let starttime = new Date(this.carInfo.registerDate);
  7249. let endtime = new Date(this.carInfo.issueDate);
  7250. if (endtime < starttime) {
  7251. this.$message({ message: "发证日期早于初登日期", type: "error" });
  7252. return;
  7253. }
  7254. this.policyHolderInfovalidate();
  7255. this.$refs["carInfo"].validate((valid) => {
  7256. if (valid) {
  7257. var _this = this;
  7258. // this.policyHolderInfovalidate()
  7259. if (_this.tbczcarShow == true) {
  7260. _this.policyHolderInfo = JSON.parse(
  7261. JSON.stringify(_this.ownerInfo)
  7262. );
  7263. }
  7264. _this.$refs["ownerInfo"].validate((valid1) => {
  7265. if (valid1) {
  7266. if (_this.bbczcarShow == true) {
  7267. _this.insuredPersonInfo = JSON.parse(
  7268. JSON.stringify(_this.ownerInfo)
  7269. );
  7270. }
  7271. if (_this.bbtbcarShow == true) {
  7272. _this.insuredPersonInfo = JSON.parse(
  7273. JSON.stringify(_this.policyHolderInfo)
  7274. );
  7275. }
  7276. _this.carInfo.vinNo = _this.carInfo.frameNo;
  7277. _this.riskList = []; //险种大类
  7278. _this.kindList = []; //商业险险别
  7279. if (
  7280. (!_this.jqstartDate || !_this.jqendDate) &&
  7281. (!_this.systartDate || !_this.syendDate)
  7282. ) {
  7283. this.$message({ message: "投保日期不能为空", type: "warning" });
  7284. } else {
  7285. this.calculateLoading = true;
  7286. setInterval(() => {
  7287. this.calculateLoading = false;
  7288. }, 3000);
  7289. if (_this.jqchecked) {
  7290. //交强
  7291. _this.jqstartDate = this.transformTime(_this.jqstartDate);
  7292. _this.jqendDate = this.transformTime(_this.jqendDate);
  7293. _this.riskList.push({
  7294. amount: "200000",
  7295. premium: "0",
  7296. riskCode: "0507",
  7297. endDate: _this.jqendDate,
  7298. startDate: _this.jqstartDate,
  7299. instantFlag: "0",
  7300. });
  7301. }
  7302. if (_this.sychecked) {
  7303. _this.systartDate = this.transformTime(_this.systartDate);
  7304. _this.syendDate = this.transformTime(_this.syendDate);
  7305. //商业
  7306. _this.riskList.push({
  7307. premium: "0",
  7308. riskCode: "0510",
  7309. quotePreceptCode: "",
  7310. quotePreceptName: "",
  7311. endDate: _this.syendDate,
  7312. startDate: _this.systartDate,
  7313. instantFlag: "0",
  7314. });
  7315. _this.insureList.map((ele, index) => {
  7316. if (
  7317. ele.amount != "0" &&
  7318. (ele.kindCode == "D4" || ele.kindCode == "SY_FJ_YBW2")
  7319. ) {
  7320. _this.kindList.push({
  7321. unitAmount: _this.insureList[index].amount,
  7322. kindCode: _this.insureList[index].kindCode,
  7323. kindName: _this.insureList[index].kindName,
  7324. });
  7325. } else if (
  7326. ele.amount != "0" &&
  7327. (ele.kindCode == "MJ1" ||
  7328. ele.kindCode == "MJ2" ||
  7329. ele.kindCode == "MJ3" ||
  7330. ele.kindCode == "MJ4")
  7331. ) {
  7332. _this.kindList.push({
  7333. deductibleRate: _this.insureList[index].amount,
  7334. kindCode: _this.insureList[index].kindCode,
  7335. kindName: _this.insureList[index].kindName,
  7336. });
  7337. } else if (
  7338. ele.amount != "0" &&
  7339. (ele.kindCode == "TY1" ||
  7340. ele.kindCode == "TY2" ||
  7341. ele.kindCode == "TY3" ||
  7342. ele.kindCode == "TY4")
  7343. ) {
  7344. _this.kindList.push({
  7345. serviceTimes: _this.insureList[index].amount,
  7346. kindCode: _this.insureList[index].kindCode,
  7347. kindName: _this.insureList[index].kindName,
  7348. });
  7349. } else if (ele.amount != "0") {
  7350. _this.kindList.push({
  7351. amount: _this.insureList[index].amount,
  7352. kindCode: _this.insureList[index].kindCode,
  7353. kindName: _this.insureList[index].kindName,
  7354. });
  7355. }
  7356. return ele;
  7357. });
  7358. } else {
  7359. _this.kindList = [];
  7360. }
  7361. // if (_this.orderno) {
  7362. this.OrderStageProcessing();
  7363. // } else {
  7364. // _this.$api.letter.getquote().then(res => {
  7365. // _this.quoteno = res.data; //获取报价号
  7366. // this.OrderStageProcessing();
  7367. // });
  7368. // }
  7369. }
  7370. } else {
  7371. document.getElementById("CheZhu").scrollIntoView();
  7372. _this.$message({ message: "请检查人员信息", type: "warning" });
  7373. }
  7374. });
  7375. } else {
  7376. document.getElementById("Car").scrollIntoView();
  7377. this.$message({ message: "请检查车辆信息", type: "warning" });
  7378. return false;
  7379. }
  7380. });
  7381. },
  7382. kindListFun() {
  7383. var _this = this;
  7384. _this.riskList = []; //险种大类
  7385. _this.kindList = []; //商业险险别
  7386. if (
  7387. (!_this.jqstartDate || !_this.jqendDate) &&
  7388. (!_this.systartDate || !_this.syendDate)
  7389. ) {
  7390. this.$message({ message: "投保日期不能为空", type: "warning" });
  7391. } else {
  7392. if (_this.jqchecked) {
  7393. //交强
  7394. _this.jqstartDate = this.transformTime(_this.jqstartDate);
  7395. _this.jqendDate = this.transformTime(_this.jqendDate);
  7396. _this.riskList.push({
  7397. amount: "200000",
  7398. premium: "0",
  7399. riskCode: "0507",
  7400. endDate: _this.jqendDate,
  7401. startDate: _this.jqstartDate,
  7402. instantFlag: "0",
  7403. });
  7404. }
  7405. if (_this.sychecked) {
  7406. _this.systartDate = this.transformTime(_this.systartDate);
  7407. _this.syendDate = this.transformTime(_this.syendDate);
  7408. //商业
  7409. _this.riskList.push({
  7410. premium: "0",
  7411. riskCode: "0510",
  7412. quotePreceptCode: "",
  7413. quotePreceptName: "",
  7414. endDate: _this.syendDate,
  7415. startDate: _this.systartDate,
  7416. instantFlag: "0",
  7417. });
  7418. _this.insureList.map((ele, index) => {
  7419. if (
  7420. ele.amount != "0" &&
  7421. (ele.kindCode == "D4" || ele.kindCode == "SY_FJ_YBW2")
  7422. ) {
  7423. _this.kindList.push({
  7424. unitAmount: _this.insureList[index].amount,
  7425. kindCode: _this.insureList[index].kindCode,
  7426. kindName: _this.insureList[index].kindName,
  7427. });
  7428. } else if (
  7429. ele.amount != "0" &&
  7430. (ele.kindCode == "MJ1" ||
  7431. ele.kindCode == "MJ2" ||
  7432. ele.kindCode == "MJ3" ||
  7433. ele.kindCode == "MJ4")
  7434. ) {
  7435. _this.kindList.push({
  7436. deductibleRate: _this.insureList[index].amount,
  7437. kindCode: _this.insureList[index].kindCode,
  7438. kindName: _this.insureList[index].kindName,
  7439. });
  7440. } else if (
  7441. ele.amount != "0" &&
  7442. (ele.kindCode == "TY1" ||
  7443. ele.kindCode == "TY2" ||
  7444. ele.kindCode == "TY3" ||
  7445. ele.kindCode == "TY4")
  7446. ) {
  7447. _this.kindList.push({
  7448. serviceTimes: _this.insureList[index].amount,
  7449. kindCode: _this.insureList[index].kindCode,
  7450. kindName: _this.insureList[index].kindName,
  7451. });
  7452. } else if (ele.amount != "0") {
  7453. _this.kindList.push({
  7454. amount: _this.insureList[index].amount,
  7455. kindCode: _this.insureList[index].kindCode,
  7456. kindName: _this.insureList[index].kindName,
  7457. });
  7458. }
  7459. return ele;
  7460. });
  7461. } else {
  7462. _this.kindList = [];
  7463. }
  7464. }
  7465. },
  7466. //动态函数
  7467. ToolClickFun(MethodName, Parameter, companyId, companyName) {
  7468. this[`${MethodName}`](Parameter, companyId, companyName);
  7469. },
  7470. //更新报价历史
  7471. QuotationHistory() {
  7472. let params = {
  7473. orderNo: this.orderno,
  7474. orderStatus: "",
  7475. };
  7476. this.$api.letter.queryQuoteHistory(params).then((res) => {
  7477. res.data.forEach((item) => {
  7478. if (item.accidentInfo) {
  7479. item.accidentInfo.constructor === Object
  7480. ? [item.accidentInfo]
  7481. : item.accidentInfo;
  7482. }
  7483. });
  7484. this.HistoryList = res.data;
  7485. });
  7486. },
  7487. open2(Name, Msg) {
  7488. this.$notify.info({
  7489. title: Name,
  7490. dangerouslyUseHTMLString: true,
  7491. type: "warning",
  7492. message: Msg,
  7493. customClass: "customNotifyClass",
  7494. duration: 7000,
  7495. });
  7496. },
  7497. open3(Name, Msg) {
  7498. this.$notify.info({
  7499. title: Name,
  7500. dangerouslyUseHTMLString: true,
  7501. type: "warning",
  7502. message: `<p>${Msg.replace(/\n/g, "<br>")}</p>`,
  7503. customClass: "customNotifyClass",
  7504. duration: 7000,
  7505. });
  7506. },
  7507. openPredictInfo(Name, Msg) {
  7508. this.redictInfoMsg = Msg;
  7509. this.redictInfodialogVisible = true;
  7510. },
  7511. //订单生成前数据处理事件
  7512. OrderStageProcessing() {
  7513. if (this.tbczcarShow && this.imageList2.length > 0) {
  7514. //投保人同车主
  7515. this.imageList3 = JSON.parse(JSON.stringify(this.imageList2));
  7516. if (this.imageList3.length == 1) {
  7517. this.imageList3[0].imageType = this.imageList3[0].imageType.includes(
  7518. "C0"
  7519. )
  7520. ? "C03"
  7521. : "D03";
  7522. } else {
  7523. this.imageList3.forEach((e) => {
  7524. e.imageType = e.imageType.includes("C0") ? "C03" : "D03";
  7525. });
  7526. }
  7527. }
  7528. console.log(this.imageList2,3111111111112);
  7529. if (this.bbczcarShow && this.imageList2.length > 0) {
  7530. //被保人同车主
  7531. this.imageList4 = JSON.parse(JSON.stringify(this.imageList2));
  7532. if (this.imageList4.length == 1) {
  7533. this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  7534. "C0"
  7535. )
  7536. ? "C04"
  7537. : "D04";
  7538. } else {
  7539. this.imageList4.forEach((e) => {
  7540. e.imageType = e.imageType.includes("C0") ? "C04" : "D04";
  7541. });
  7542. }
  7543. // if (this.imageList4.length == 1) {
  7544. // this.imageList4[0].imageType = "C04";
  7545. // }
  7546. // else {
  7547. // this.imageList4[0].imageType = "C04";
  7548. // this.imageList4[1].imageType = "D04";
  7549. // }
  7550. }
  7551. if (this.bbtbcarShow && this.imageList3.length > 0) {
  7552. //被保人同投保人
  7553. this.imageList4 = JSON.parse(JSON.stringify(this.imageList3));
  7554. if (this.imageList4.length == 1) {
  7555. this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  7556. "C0"
  7557. )
  7558. ? "C04"
  7559. : "D04";
  7560. } else {
  7561. this.imageList4.forEach((e) => {
  7562. e.imageType = e.imageType.includes("C0") ? "C04" : "D04";
  7563. });
  7564. }
  7565. // if (this.imageList4.length == 1) {
  7566. // this.imageList4[0].imageType = "C04";
  7567. // } else {
  7568. // this.imageList4[0].imageType = "C04";
  7569. // this.imageList4[1].imageType = "D04";
  7570. // }
  7571. }
  7572. console.log(11111111111);
  7573. //日期长度<10处理
  7574. const formatDate = (date) => {
  7575. if (date.length < 10) {
  7576. return this.timeformat(date);
  7577. }
  7578. return date;
  7579. };
  7580. if (this.carInfo.registerDate.length < 10) {
  7581. this.carInfo.registerDate = formatDate(this.carInfo.registerDate);
  7582. }
  7583. if (this.carInfo.issueDate.length < 10) {
  7584. this.carInfo.issueDate = formatDate(this.carInfo.issueDate);
  7585. }
  7586. if (
  7587. this.carInfo.transferDate &&
  7588. this.carInfo.transferDate.length < 10 &&
  7589. this.carInfo.transferDate !== ""
  7590. ) {
  7591. this.carInfo.transferDate = formatDate(this.carInfo.transferDate);
  7592. }
  7593. console.log(2222222222);
  7594. //日期长度<10处理
  7595. //提交身份证/驾驶证 ——————————————————
  7596. this.policyHolderInfo.owner = this.tbczcarShow;
  7597. this.insuredPersonInfo.owner = this.bbczcarShow;
  7598. this.insuredPersonInfo.insuranceHolder = this.bbtbcarShow;
  7599. if (typeof this.ownerInfo.provinceData == "string") {
  7600. this.ownerInfo.provinceData = [];
  7601. }
  7602. if (typeof this.insuredPersonInfo.provinceData == "string") {
  7603. this.insuredPersonInfo.provinceData = [];
  7604. }
  7605. if (typeof this.policyHolderInfo.provinceData == "string") {
  7606. this.policyHolderInfo.provinceData = [];
  7607. }
  7608. let param = {
  7609. userId: this.userId,
  7610. quoteno: this.quoteno,
  7611. orderNo: this.orderno,
  7612. carInfo: this.carInfo,
  7613. insuredPersonInfo: this.insuredPersonInfo,
  7614. ownerInfo: this.ownerInfo,
  7615. policyHolderInfo: this.policyHolderInfo,
  7616. kindList: this.kindList,
  7617. riskList: this.riskList,
  7618. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  7619. };
  7620. this.$api.letter[this.apiInterfaceName](param).then((res) => {
  7621. if (res.code == "200") {
  7622. //上传图片
  7623. const mergedArray = [
  7624. ...this.imageList1,
  7625. ...this.imageList2,
  7626. ...this.imageList3,
  7627. ...this.imageList4,
  7628. ...this.imageList5,
  7629. ...this.imageList6,
  7630. ];
  7631. if (mergedArray.length > 0) {
  7632. let imageparam = {
  7633. imageList: mergedArray,
  7634. quoteNo: res.data.quoteno,
  7635. };
  7636. this.$api.letter.uploadImages(imageparam).then((responses) => {
  7637. this.imageEcho(res.data.quoteno); // 获取图片
  7638. // this.$refs.imageDialog.imageEcho(res.data.quoteno)
  7639. });
  7640. }
  7641. this.quoteno = res.data.quoteno;
  7642. this.orderno = res.data.orderno;
  7643. this.totalCompanyList.map((ele, index) => {
  7644. if (ele.checked) {
  7645. //动态调用报价接口
  7646. ele.quoteCode = 1;
  7647. ele.orderstatus = 0;
  7648. this.ToolClickFun(ele.cnName, index, ele.id, ele.namesimple);
  7649. }
  7650. });
  7651. } else if (res.code == 1001) {
  7652. this.$confirm("是否生成新订单?", "提示", {
  7653. confirmButtonText: "确定",
  7654. cancelButtonText: "取消",
  7655. type: "warning",
  7656. })
  7657. .then(() => {
  7658. this.orderno = "";
  7659. this.quoteno = "";
  7660. this.quote();
  7661. })
  7662. .catch(() => { });
  7663. } else {
  7664. this.$message({ message: res.msg, type: "warning" });
  7665. }
  7666. });
  7667. document.getElementById("company").scrollIntoView();
  7668. this.imageUploadShow = true;
  7669. },
  7670. // 泰康报价--11
  7671. taikang(num, id, namesimple) {
  7672. this.quoteInsurance(
  7673. num,
  7674. id,
  7675. namesimple,
  7676. this.totalCompanyList[num].apiType
  7677. );
  7678. },
  7679. // 平安报价
  7680. pingan(num, id) {
  7681. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  7682. let accidentalDrivingVo=[]
  7683. if(this.pinganaccidentalDrivingVo){
  7684. accidentalDrivingVo=this.pinganaccidentalDrivingVo
  7685. // accidentalDrivingVo = Object.assign({
  7686. // ...this.pinganaccidentalDrivingVo,
  7687. // ...this.accidentFormPA,
  7688. // });
  7689. }
  7690. let params = {
  7691. accidentalDrivingVo,
  7692. orderNo: this.orderno,
  7693. companyId: id,
  7694. kinds: this.kindList,
  7695. risks: this.riskList,
  7696. agreementId: this.totalCompanyList[num].agreementId,
  7697. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  7698. };
  7699. this.$api.letter.pinganquote(params).then((res) => {
  7700. this.totalCompanyList[num].msg = res.msg;
  7701. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  7702. this.totalCompanyList[num].quoteCode = "4";
  7703. this.totalCompanyList[num].msg = res.msg;
  7704. return;
  7705. } else if (
  7706. res.data == null &&
  7707. res.msg.indexOf("交强险平台返回") > -1 &&
  7708. res.msg.indexOf(";终保日期") > -1
  7709. ) {
  7710. this.totalCompanyList[num].lastYearMsg =
  7711. "<b>交强险</b><br>" +
  7712. res.msg.slice(
  7713. res.msg.indexOf("起保日期 "),
  7714. res.msg.indexOf("地区 山西。") + 6
  7715. );
  7716. let time =
  7717. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  7718. this.jqstartDate = time;
  7719. this.jqendDate = this.oneYearPast1(time);
  7720. if (this.riskList.length > 0) {
  7721. for (let i = 0; i < this.riskList.length; i++) {
  7722. if (this.riskList[i].riskCode == "0507") {
  7723. this.riskList[i].startDate = time;
  7724. this.riskList[i].endDate = this.oneYearPast1(time);
  7725. }
  7726. }
  7727. }
  7728. let param = {
  7729. userId: this.userId,
  7730. quoteno: this.quoteno,
  7731. orderNo: this.orderno,
  7732. carInfo: this.carInfo,
  7733. insuredPersonInfo: this.insuredPersonInfo,
  7734. ownerInfo: this.ownerInfo,
  7735. policyHolderInfo: this.policyHolderInfo,
  7736. kindList: this.kindList,
  7737. riskList: this.riskList,
  7738. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  7739. };
  7740. return this.$api.letter[this.apiInterfaceName](param).then((res) => {
  7741. this.pingan(num, id);
  7742. });
  7743. } else if (!!res.data) {
  7744. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  7745. this.totalCompanyList[num].lastYearMsg = "";
  7746. let dat = res.data.warnMessageList;
  7747. dat.map((ele) => {
  7748. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  7749. });
  7750. }
  7751. this.totalCompanyList[num].quoteCode = 200;
  7752. this.totalCompanyList[num].result = res.data;
  7753. this.QuotationHistory();
  7754. } else {
  7755. this.totalCompanyList[num].quoteCode = "3";
  7756. this.totalCompanyList[num].msg = res.msg;
  7757. return;
  7758. }
  7759. });
  7760. },
  7761. //永安报价
  7762. yongan(num, id) {
  7763. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  7764. let params = {
  7765. orderNo: this.orderno,
  7766. companyId: id,
  7767. kinds: this.kindList,
  7768. risks: this.riskList,
  7769. agreementId: this.totalCompanyList[num].agreementId,
  7770. };
  7771. this.$api.letter.yonganquote(params).then((res) => {
  7772. this.totalCompanyList[num].msg = res.msg;
  7773. if (res.msg == "重复投保" && res.code == "501") {
  7774. if (!!res.data.jqStartDate && !res.data.syStartDate) {
  7775. this.jqstartDate = res.data.jqStartDate;
  7776. this.jqendDate = res.data.jqEndDate;
  7777. this.updateRiskDates(
  7778. "0507",
  7779. res.data.jqStartDate,
  7780. res.data.jqEndDate
  7781. );
  7782. let param = {
  7783. userId: this.userId,
  7784. quoteno: this.quoteno,
  7785. orderNo: this.orderno,
  7786. carInfo: this.carInfo,
  7787. insuredPersonInfo: this.insuredPersonInfo,
  7788. ownerInfo: this.ownerInfo,
  7789. policyHolderInfo: this.policyHolderInfo,
  7790. kindList: this.kindList,
  7791. riskList: this.riskList,
  7792. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  7793. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  7794. };
  7795. return this.$api.letter[this.apiInterfaceName](param).then(
  7796. (res) => {
  7797. this.yongan(num, id);
  7798. }
  7799. );
  7800. } else if (!!res.data.syStartDate && !res.data.jqStartDate) {
  7801. this.systartDate = res.data.syStartDate;
  7802. this.syendDate = res.data.syEndDate;
  7803. this.updateRiskDates(
  7804. "0510",
  7805. res.data.syStartDate,
  7806. res.data.syEndDate
  7807. );
  7808. let param = {
  7809. userId: this.userId,
  7810. quoteno: this.quoteno,
  7811. orderNo: this.orderno,
  7812. carInfo: this.carInfo,
  7813. insuredPersonInfo: this.insuredPersonInfo,
  7814. ownerInfo: this.ownerInfo,
  7815. policyHolderInfo: this.policyHolderInfo,
  7816. kindList: this.kindList,
  7817. riskList: this.riskList,
  7818. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  7819. };
  7820. return this.$api.letter[this.apiInterfaceName](param).then(
  7821. (res) => {
  7822. this.yongan(num, id);
  7823. }
  7824. );
  7825. } else if (!!res.data.syStartDate && !!res.data.jqStartDate) {
  7826. this.jqstartDate = res.data.jqStartDate;
  7827. this.jqendDate = res.data.jqEndDate;
  7828. this.systartDate = res.data.syStartDate;
  7829. this.syendDate = res.data.syEndDate;
  7830. this.updateRiskDates(
  7831. "0507",
  7832. res.data.jqStartDate,
  7833. res.data.jqEndDate
  7834. );
  7835. this.updateRiskDates(
  7836. "0510",
  7837. res.data.syStartDate,
  7838. res.data.syEndDate
  7839. );
  7840. let param = {
  7841. userId: this.userId,
  7842. quoteno: this.quoteno,
  7843. orderNo: this.orderno,
  7844. carInfo: this.carInfo,
  7845. insuredPersonInfo: this.insuredPersonInfo,
  7846. ownerInfo: this.ownerInfo,
  7847. policyHolderInfo: this.policyHolderInfo,
  7848. kindList: this.kindList,
  7849. riskList: this.riskList,
  7850. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  7851. };
  7852. return this.$api.letter[this.apiInterfaceName](param).then(
  7853. (res) => {
  7854. this.yongan(num, id);
  7855. }
  7856. );
  7857. } else {
  7858. this.totalCompanyList[num].quoteCode = "3";
  7859. this.totalCompanyList[num].msg = "重复投保";
  7860. }
  7861. } else if (
  7862. res.code == "500" ||
  7863. res.code == "502" ||
  7864. res.code == "-9999"
  7865. ) {
  7866. this.totalCompanyList[num].quoteCode = "-9999";
  7867. this.totalCompanyList[num].msg = res.msg;
  7868. } else {
  7869. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  7870. this.totalCompanyList[num].lastYearMsg = "";
  7871. let dat = res.data.warnMessageList;
  7872. dat.map((ele) => {
  7873. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  7874. });
  7875. }
  7876. this.totalCompanyList[num].quoteCode = 200;
  7877. this.totalCompanyList[num].result = res.data;
  7878. this.QuotationHistory();
  7879. }
  7880. });
  7881. },
  7882. updateRiskDates(riskCode, startDate, endDate) {
  7883. for (let i = 0; i < this.riskList.length; i++) {
  7884. if (this.riskList[i].riskCode == riskCode) {
  7885. this.riskList[i].startDate = startDate;
  7886. this.riskList[i].endDate = endDate;
  7887. }
  7888. }
  7889. },
  7890. //中煤报价
  7891. zhongmei(num, id) {
  7892. let accidentalDrivingVo = {};
  7893. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  7894. // if (this.accidentFormZM.projectCode) {
  7895. // accidentalDrivingVo = {
  7896. // projectCode: this.accidentFormZM.projectCode,
  7897. // projectName: this.accidentFormZM.projectName,
  7898. // quantity: this.accidentFormZM.quantity
  7899. // ? this.accidentFormZM.quantity
  7900. // : "1"
  7901. // };
  7902. // }
  7903. if (this.accidentFormZM.projectCode) {
  7904. accidentalDrivingVo = {
  7905. ...this.zhongmeiInsuranceData.find(
  7906. (e) => e.projectCode == this.accidentFormZM.projectCode
  7907. ),
  7908. quantity: this.accidentFormZM.quantity
  7909. ? this.accidentFormZM.quantity
  7910. : "1",
  7911. };
  7912. }
  7913. let params = {
  7914. accidentalDrivingVo,
  7915. orderNo: this.orderno,
  7916. companyId: id,
  7917. kinds: this.kindList,
  7918. risks: this.riskList,
  7919. agreementId: this.totalCompanyList[num].agreementId,
  7920. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  7921. };
  7922. this.$api.letter.zhongmeiquote(params).then((res) => {
  7923. this.totalCompanyList[num].msg = res.msg;
  7924. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  7925. this.totalCompanyList[num].quoteCode = "4";
  7926. this.totalCompanyList[num].msg = res.msg;
  7927. return;
  7928. } else if (
  7929. res.data == null &&
  7930. res.msg.indexOf("交强险平台返回") > -1 &&
  7931. res.msg.indexOf(";终保日期") > -1
  7932. ) {
  7933. this.totalCompanyList[num].lastYearMsg =
  7934. "<b>交强险</b><br>" +
  7935. res.msg.slice(
  7936. res.msg.indexOf("起保日期 "),
  7937. res.msg.indexOf("地区 山西。") + 6
  7938. );
  7939. let time =
  7940. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  7941. this.jqstartDate = time;
  7942. this.jqendDate = this.oneYearPast1(time);
  7943. if (this.riskList.length > 0) {
  7944. for (let i = 0; i < this.riskList.length; i++) {
  7945. if (this.riskList[i].riskCode == "0507") {
  7946. this.riskList[i].startDate = time;
  7947. this.riskList[i].endDate = this.oneYearPast1(time);
  7948. }
  7949. }
  7950. }
  7951. let param = {
  7952. userId: this.userId,
  7953. quoteno: this.quoteno,
  7954. orderNo: this.orderno,
  7955. carInfo: this.carInfo,
  7956. insuredPersonInfo: this.insuredPersonInfo,
  7957. ownerInfo: this.ownerInfo,
  7958. policyHolderInfo: this.policyHolderInfo,
  7959. kindList: this.kindList,
  7960. riskList: this.riskList,
  7961. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  7962. };
  7963. return this.$api.letter[this.apiInterfaceName](param).then((res) => {
  7964. this.zhongmei(num, id);
  7965. });
  7966. } else if (!!res.data) {
  7967. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  7968. this.totalCompanyList[num].lastYearMsg = "";
  7969. let dat = res.data.warnMessageList;
  7970. dat.map((ele) => {
  7971. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  7972. });
  7973. }
  7974. this.totalCompanyList[num].quoteCode = 200;
  7975. this.totalCompanyList[num].result = res.data;
  7976. this.QuotationHistory();
  7977. } else {
  7978. this.totalCompanyList[num].quoteCode = "3";
  7979. this.totalCompanyList[num].msg = res.msg;
  7980. return;
  7981. }
  7982. });
  7983. },
  7984. // 大家报价
  7985. dajia(num, id) {
  7986. // let accidentalDrivingVo=[]
  7987. // if(this.dajiaaccidentalDrivingVo){
  7988. // accidentalDrivingVo.rideRiskCode=this.dajiaaccidentalDrivingVo.schemeNo;
  7989. // accidentalDrivingVo.rideRiskName=this.dajiaaccidentalDrivingVo.cvrgName;
  7990. // accidentalDrivingVo.quantity=this.dajiaaccidentalDrivingVo.quantity;
  7991. // }
  7992. let type = this.totalCompanyList[num].apiType;
  7993. let api = type == 2 ? "pythonquote" : "dajiaquote";
  7994. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  7995. let params = {
  7996. accidentalDrivingVo: this.dajiaaccidentalDrivingVo,
  7997. orderNo: this.orderno,
  7998. companyId: id,
  7999. kinds: this.kindList,
  8000. risks: this.riskList,
  8001. agreementId: this.totalCompanyList[num].agreementId,
  8002. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  8003. };
  8004. this.$api.letter[api](params).then((res) => {
  8005. this.totalCompanyList[num].msg = res.msg;
  8006. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  8007. this.totalCompanyList[num].quoteCode = "4";
  8008. this.totalCompanyList[num].msg = res.msg;
  8009. return;
  8010. } else if (
  8011. res.data == null &&
  8012. res.msg.indexOf("交强险平台返回") > -1 &&
  8013. res.msg.indexOf(";终保日期") > -1
  8014. ) {
  8015. this.totalCompanyList[num].lastYearMsg =
  8016. "<b>交强险</b><br>" +
  8017. res.msg.slice(
  8018. res.msg.indexOf("起保日期 "),
  8019. res.msg.indexOf("地区 山西。") + 6
  8020. );
  8021. let time =
  8022. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  8023. this.jqstartDate = time;
  8024. this.jqendDate = this.oneYearPast1(time);
  8025. if (this.riskList.length > 0) {
  8026. for (let i = 0; i < this.riskList.length; i++) {
  8027. if (this.riskList[i].riskCode == "0507") {
  8028. this.riskList[i].startDate = time;
  8029. this.riskList[i].endDate = this.oneYearPast1(time);
  8030. }
  8031. }
  8032. }
  8033. let param = {
  8034. userId: this.userId,
  8035. quoteno: this.quoteno,
  8036. orderNo: this.orderno,
  8037. carInfo: this.carInfo,
  8038. insuredPersonInfo: this.insuredPersonInfo,
  8039. ownerInfo: this.ownerInfo,
  8040. policyHolderInfo: this.policyHolderInfo,
  8041. kindList: this.kindList,
  8042. riskList: this.riskList,
  8043. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  8044. };
  8045. return this.$api.letter[this.apiInterfaceName](param).then((res) => {
  8046. this.dajia(num, id);
  8047. });
  8048. } else if (!!res.data) {
  8049. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  8050. this.totalCompanyList[num].lastYearMsg = "";
  8051. let dat = res.data.warnMessageList;
  8052. dat.map((ele) => {
  8053. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  8054. });
  8055. }
  8056. this.totalCompanyList[num].quoteCode = 200;
  8057. this.totalCompanyList[num].result = res.data;
  8058. this.QuotationHistory();
  8059. } else {
  8060. this.totalCompanyList[num].quoteCode = "3";
  8061. this.totalCompanyList[num].msg = res.msg;
  8062. return;
  8063. }
  8064. });
  8065. },
  8066. //华泰报价
  8067. huatai(num, id) {
  8068. let type = this.totalCompanyList[num].apiType;
  8069. let api = type == 2 ? "pythonquote" : "huataiquote";
  8070. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  8071. let params = {
  8072. orderNo: this.orderno,
  8073. companyId: id,
  8074. kinds: this.kindList,
  8075. risks: this.riskList,
  8076. agreementId: this.totalCompanyList[num].agreementId,
  8077. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  8078. };
  8079. this.$api.letter[api](params).then((res) => {
  8080. this.totalCompanyList[num].msg = res.msg;
  8081. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  8082. this.totalCompanyList[num].quoteCode = "4";
  8083. this.totalCompanyList[num].msg = res.msg;
  8084. return;
  8085. } else if (
  8086. res.data == null &&
  8087. res.msg.indexOf("交强险平台返回") > -1 &&
  8088. res.msg.indexOf(";终保日期") > -1
  8089. ) {
  8090. //判断保司返回重复投保信息,进行默认赋值起终保日期,重新算费 后面联调需要调整
  8091. let time =
  8092. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  8093. this.jqstartDate = time;
  8094. this.jqendDate = this.oneYearPast1(time);
  8095. this.systartDate = time;
  8096. this.syendDate = this.oneYearPast1(time);
  8097. if (this.riskList.length > 0) {
  8098. for (let i = 0; i < this.riskList.length; i++) {
  8099. if (this.riskList[i].riskCode == "0507") {
  8100. this.riskList[i].startDate = time;
  8101. this.riskList[i].endDate = this.oneYearPast1(time);
  8102. } else if (this.riskList[i].riskCode == "0510") {
  8103. this.riskList[i].startDate = time;
  8104. this.riskList[i].endDate = this.oneYearPast1(time);
  8105. }
  8106. }
  8107. }
  8108. let param = {
  8109. userId: this.userId,
  8110. quoteno: this.quoteno,
  8111. orderNo: this.orderno,
  8112. carInfo: this.carInfo,
  8113. insuredPersonInfo: this.insuredPersonInfo,
  8114. ownerInfo: this.ownerInfo,
  8115. policyHolderInfo: this.policyHolderInfo,
  8116. kindList: this.kindList,
  8117. riskList: this.riskList,
  8118. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  8119. };
  8120. return this.$api.letter[this.apiInterfaceName](param).then((res) => {
  8121. this.huatai(num, id);
  8122. });
  8123. } else if (!!res.data) {
  8124. this.totalCompanyList[num].quoteCode = 200;
  8125. this.totalCompanyList[num].result = res.data;
  8126. this.QuotationHistory();
  8127. } else {
  8128. this.totalCompanyList[num].quoteCode = "3";
  8129. this.totalCompanyList[num].msg = res.msg;
  8130. return;
  8131. }
  8132. });
  8133. },
  8134. //紫金报价
  8135. zijin(num, id) {
  8136. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  8137. let params = {
  8138. accidentalDrivingVo: this.accidentalDrivingVo,
  8139. orderNo: this.orderno,
  8140. companyId: id,
  8141. kinds: this.kindList,
  8142. risks: this.riskList,
  8143. agreementId: this.totalCompanyList[num].agreementId,
  8144. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  8145. coefficient: this.totalCompanyList[num].coefficient,
  8146. };
  8147. this.$api.letter.zijinquote(params).then((res) => {
  8148. this.totalCompanyList[num].msg = res.msg;
  8149. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  8150. this.totalCompanyList[num].quoteCode = "4";
  8151. this.totalCompanyList[num].msg = res.msg;
  8152. return;
  8153. } else if (
  8154. res.data == null &&
  8155. res.msg.indexOf("交强险平台返回") > -1 &&
  8156. res.msg.indexOf(";终保日期") > -1
  8157. ) {
  8158. let time =
  8159. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  8160. this.jqstartDate = time;
  8161. this.jqendDate = this.oneYearPast1(time);
  8162. this.systartDate = time;
  8163. this.syendDate = this.oneYearPast1(time);
  8164. if (this.riskList.length > 0) {
  8165. for (let i = 0; i < this.riskList.length; i++) {
  8166. if (this.riskList[i].riskCode == "0507") {
  8167. this.riskList[i].startDate = time;
  8168. this.riskList[i].endDate = this.oneYearPast1(time);
  8169. } else if (this.riskList[i].riskCode == "0510") {
  8170. this.riskList[i].startDate = time;
  8171. this.riskList[i].endDate = this.oneYearPast1(time);
  8172. }
  8173. }
  8174. }
  8175. let param = {
  8176. userId: this.userId,
  8177. quoteno: this.quoteno,
  8178. orderNo: this.orderno,
  8179. carInfo: this.carInfo,
  8180. insuredPersonInfo: this.insuredPersonInfo,
  8181. ownerInfo: this.ownerInfo,
  8182. policyHolderInfo: this.policyHolderInfo,
  8183. kindList: this.kindList,
  8184. riskList: this.riskList,
  8185. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  8186. };
  8187. return this.$api.letter[this.apiInterfaceName](param).then((res) => {
  8188. this.zijin(num, id);
  8189. });
  8190. } else if (!!res.data) {
  8191. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  8192. this.totalCompanyList[num].lastYearMsg = "";
  8193. let dat = res.data.warnMessageList;
  8194. dat.map((ele) => {
  8195. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  8196. });
  8197. }
  8198. this.totalCompanyList[num].quoteCode = 200;
  8199. this.totalCompanyList[num].result = res.data;
  8200. this.QuotationHistory();
  8201. } else {
  8202. this.totalCompanyList[num].quoteCode = "3";
  8203. this.totalCompanyList[num].msg = res.msg;
  8204. return;
  8205. }
  8206. });
  8207. },
  8208. //永诚报价
  8209. yongcheng(num, id) {
  8210. this.iscCrownerShow = false;
  8211. this.isInsuredShow = false;
  8212. this.isApplicantShow = false;
  8213. let accidentalDrivingVo = {};
  8214. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  8215. if (this.accidentForm.projectCode) {
  8216. let data = this.yongchengaccidentDataList.find(
  8217. (val) => val.projectCode == this.yongchengtemplateSelection
  8218. );
  8219. accidentalDrivingVo = {
  8220. ...data,
  8221. quantity: this.accidentForm.quantity
  8222. ? this.accidentForm.quantity
  8223. : "",
  8224. };
  8225. }
  8226. let params = {
  8227. accidentalDrivingVo,
  8228. orderNo: this.orderno,
  8229. companyId: id,
  8230. kinds: this.kindList,
  8231. risks: this.riskList,
  8232. cqryCdeJq: this.cqryCdeJq,
  8233. cqryCdeSy: this.cqryCdeSy,
  8234. renewalCodeJq: this.renewalCodeJq,
  8235. renewalCodeSy: this.renewalCodeSy,
  8236. agreementId: this.totalCompanyList[num].agreementId,
  8237. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  8238. };
  8239. this.$api.letter.yongchengquote(params).then((res) => {
  8240. this.totalCompanyList[num].msg = res.msg;
  8241. if (
  8242. res.data == null &&
  8243. res.msg.indexOf("车险平台返回") > -1 &&
  8244. res.msg.indexOf(";终保日期") > -1
  8245. ) {
  8246. let time =
  8247. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  8248. this.jqstartDate = time;
  8249. this.jqendDate = this.oneYearPast1(time);
  8250. if (this.riskList.length > 0) {
  8251. for (let i = 0; i < this.riskList.length; i++) {
  8252. if (this.riskList[i].riskCode == "0507") {
  8253. this.riskList[i].startDate = time;
  8254. this.riskList[i].endDate = this.oneYearPast1(time);
  8255. }
  8256. }
  8257. }
  8258. let param = {
  8259. userId: this.userId,
  8260. quoteno: this.quoteno,
  8261. orderNo: this.orderno,
  8262. carInfo: this.carInfo,
  8263. insuredPersonInfo: this.insuredPersonInfo,
  8264. ownerInfo: this.ownerInfo,
  8265. policyHolderInfo: this.policyHolderInfo,
  8266. kindList: this.kindList,
  8267. riskList: this.riskList,
  8268. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  8269. };
  8270. return this.$api.letter[this.apiInterfaceName](param).then((res) => {
  8271. this.yongcheng(num, id);
  8272. });
  8273. } else if (res.code == "200") {
  8274. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  8275. this.totalCompanyList[num].lastYearMsg = "";
  8276. let dat = res.data.warnMessageList;
  8277. dat.map((ele) => {
  8278. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  8279. });
  8280. }
  8281. this.totalCompanyList[num].quoteCode = 200;
  8282. this.totalCompanyList[num].result = res.data;
  8283. this.QuotationHistory();
  8284. } else if (res.code == "101") {
  8285. this.totalCompanyList[num].quoteCode = "101";
  8286. this.totalCompanyList[num].msg = res.msg;
  8287. this.cqryCdeJq = res.data.cqryCdeJq;
  8288. this.cqryCdeSy = res.data.cqryCdeSy;
  8289. let jq = res.data.renewalCodeJq.replace(/[\r\n]/g, "");
  8290. let jqBase64 = `data:image/png;base64,${jq}`;
  8291. this.renewalCodeJqImg = jqBase64;
  8292. if (res.data.renewalCodeSy) {
  8293. let sy = res.data.renewalCodeSy.replace(/[\r\n]/g, "");
  8294. let syBase64 = `data:image/png;base64,${sy}`;
  8295. this.renewalCodeSyImg = syBase64;
  8296. }
  8297. this.renewalCodedialogVisible = true;
  8298. } else if (res.code == "500") {
  8299. // this.iscCrownerShow=res.msg.indexOf("车主地区自动解析失败")!=-1?true:false
  8300. // this.isInsuredShow=res.msg.indexOf("被保人地区自动解析失败")!=-1?true:false
  8301. // this.isApplicantShow=res.msg.indexOf("投保人地区自动解析失败")!=-1?true:false
  8302. // this.ownerInfo.provinceData= this.iscCrownerShow?[]: this.ownerInfo.provinceData
  8303. // this.insuredPersonInfo.provinceData= this.isInsuredShow?[]: this.insuredPersonInfo.provinceData
  8304. // this.policyHolderInfo.provinceData= this.isApplicantShow?[]: this.policyHolderInfo.provinceData
  8305. this.totalCompanyList[num].quoteCode = "3";
  8306. this.totalCompanyList[num].msg = res.msg;
  8307. } else {
  8308. this.totalCompanyList[num].quoteCode = "3";
  8309. this.totalCompanyList[num].msg = res.msg;
  8310. return;
  8311. }
  8312. });
  8313. },
  8314. //国任报价
  8315. guoRen(num, id) {
  8316. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  8317. let guoRenSpecialAgreementVo = [];
  8318. this.zijinengageList.forEach((val) => {
  8319. guoRenSpecialAgreementVo.push({
  8320. clauses: val.clauseName,
  8321. clausesContext: val.clauses,
  8322. clauseCode: val.clauseCode,
  8323. riskCode: val.riskCode,
  8324. riskName: val.riskName,
  8325. });
  8326. });
  8327. let accidentalDrivingVo = {};
  8328. if (this.guoRenaccidentForm.goodsCode) {
  8329. accidentalDrivingVo = this.guoRenaccidentalDrivingVo;
  8330. }
  8331. let params = {
  8332. accidentalDrivingVo,
  8333. orderNo: this.orderno,
  8334. companyId: id,
  8335. kinds: this.kindList,
  8336. risks: this.riskList,
  8337. cqryCdeJq: this.cqryCdeJq,
  8338. cqryCdeSy: this.cqryCdeSy,
  8339. renewalCodeJq: this.renewalCodeJq,
  8340. renewalCodeSy: this.renewalCodeSy,
  8341. agreementId: this.totalCompanyList[num].agreementId,
  8342. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  8343. guoRenSpecialAgreementVo,
  8344. };
  8345. this.$api.letter.guorenquote(params).then((res) => {
  8346. this.totalCompanyList[num].msg = res.msg;
  8347. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  8348. this.totalCompanyList[num].quoteCode = "4";
  8349. this.totalCompanyList[num].msg = res.msg;
  8350. return;
  8351. } else if (
  8352. res.data == null &&
  8353. res.msg.indexOf("车险平台返回") > -1 &&
  8354. res.msg.indexOf(";终保日期") > -1
  8355. ) {
  8356. let time =
  8357. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  8358. this.jqstartDate = time;
  8359. this.jqendDate = this.oneYearPast1(time);
  8360. this.systartDate = time;
  8361. this.syendDate = this.oneYearPast1(time);
  8362. if (this.riskList.length > 0) {
  8363. for (let i = 0; i < this.riskList.length; i++) {
  8364. if (this.riskList[i].riskCode == "0507") {
  8365. this.riskList[i].startDate = time;
  8366. this.riskList[i].endDate = this.oneYearPast1(time);
  8367. } else if (this.riskList[i].riskCode == "0510") {
  8368. this.riskList[i].startDate = time;
  8369. this.riskList[i].endDate = this.oneYearPast1(time);
  8370. }
  8371. }
  8372. }
  8373. let param = {
  8374. userId: this.userId,
  8375. quoteno: this.quoteno,
  8376. orderNo: this.orderno,
  8377. carInfo: this.carInfo,
  8378. insuredPersonInfo: this.insuredPersonInfo,
  8379. ownerInfo: this.ownerInfo,
  8380. policyHolderInfo: this.policyHolderInfo,
  8381. kindList: this.kindList,
  8382. riskList: this.riskList,
  8383. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  8384. };
  8385. return this.$api.letter[this.apiInterfaceName](param).then((res) => {
  8386. this.guoRen(num, id);
  8387. });
  8388. } else if (res.code == "200") {
  8389. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  8390. this.totalCompanyList[num].lastYearMsg = "";
  8391. let dat = res.data.warnMessageList;
  8392. dat.map((ele) => {
  8393. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  8394. });
  8395. }
  8396. this.totalCompanyList[num].quoteCode = 200;
  8397. this.totalCompanyList[num].result = res.data;
  8398. this.QuotationHistory();
  8399. } else if (res.code == "101") {
  8400. this.totalCompanyList[num].quoteCode = "101";
  8401. this.totalCompanyList[num].msg = res.msg;
  8402. this.cqryCdeJq = res.data.cqryCdeJq;
  8403. this.cqryCdeSy = res.data.cqryCdeSy;
  8404. let jq = res.data.renewalCodeJq.replace(/[\r\n]/g, "");
  8405. let jqBase64 = `data:image/png;base64,${jq}`;
  8406. this.renewalCodeJqImg = jqBase64;
  8407. if (res.data.renewalCodeSy) {
  8408. let sy = res.data.renewalCodeSy.replace(/[\r\n]/g, "");
  8409. let syBase64 = `data:image/png;base64,${sy}`;
  8410. this.renewalCodeSyImg = syBase64;
  8411. }
  8412. this.renewalCodedialogVisible = true;
  8413. } else {
  8414. this.totalCompanyList[num].quoteCode = "3";
  8415. this.totalCompanyList[num].msg = res.msg;
  8416. return;
  8417. }
  8418. });
  8419. },
  8420. //渤海报价
  8421. bohai(num, id) {
  8422. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  8423. let accidentalDrivingVo ={};
  8424. if (this.boHaiaccidentForm.projectCode) {
  8425. accidentalDrivingVo = {
  8426. // packageCode: this.boHaiaccidentForm.packageCode,
  8427. // productCode: this.boHaiaccidentDataList.find(
  8428. // (e) => e.packageCode == this.boHaiaccidentForm.packageCode
  8429. // ).productCode,
  8430. // copies: this.boHaiaccidentForm.copies,
  8431. ...this.boHaiaccidentDataList.find(
  8432. (e) => e.projectCode == this.boHaiaccidentForm.projectCode
  8433. ),
  8434. quantity: this.boHaiaccidentForm.copies
  8435. ? this.boHaiaccidentForm.copies
  8436. : "1",
  8437. }
  8438. }
  8439. let params = {
  8440. accidentalDrivingVo,
  8441. orderNo: this.orderno,
  8442. companyId: id,
  8443. kinds: this.kindList,
  8444. risks: this.riskList,
  8445. cqryCdeJq: this.cqryCdeJq,
  8446. cqryCdeSy: this.cqryCdeSy,
  8447. renewalCodeJq: this.renewalCodeJq,
  8448. renewalCodeSy: this.renewalCodeSy,
  8449. agreementId: this.totalCompanyList[num].agreementId,
  8450. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  8451. userId: this.userId,
  8452. };
  8453. this.$api.letter.bohaiquote(params).then((res) => {
  8454. this.totalCompanyList[num].msg = res.msg;
  8455. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  8456. this.totalCompanyList[num].quoteCode = "4";
  8457. this.totalCompanyList[num].msg = res.msg;
  8458. return;
  8459. } else if (
  8460. res.data == null &&
  8461. res.msg.indexOf("车险平台返回") > -1 &&
  8462. res.msg.indexOf(";终保日期") > -1
  8463. ) {
  8464. let time =
  8465. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  8466. this.jqstartDate = time;
  8467. this.jqendDate = this.oneYearPast1(time);
  8468. this.systartDate = time;
  8469. this.syendDate = this.oneYearPast1(time);
  8470. if (this.riskList.length > 0) {
  8471. for (let i = 0; i < this.riskList.length; i++) {
  8472. if (this.riskList[i].riskCode == "0507") {
  8473. this.riskList[i].startDate = time;
  8474. this.riskList[i].endDate = this.oneYearPast1(time);
  8475. } else if (this.riskList[i].riskCode == "0510") {
  8476. this.riskList[i].startDate = time;
  8477. this.riskList[i].endDate = this.oneYearPast1(time);
  8478. }
  8479. }
  8480. }
  8481. let param = {
  8482. userId: this.userId,
  8483. quoteno: this.quoteno,
  8484. orderNo: this.orderno,
  8485. carInfo: this.carInfo,
  8486. insuredPersonInfo: this.insuredPersonInfo,
  8487. ownerInfo: this.ownerInfo,
  8488. policyHolderInfo: this.policyHolderInfo,
  8489. kindList: this.kindList,
  8490. riskList: this.riskList,
  8491. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  8492. };
  8493. return this.$api.letter[this.apiInterfaceName](param).then((res) => {
  8494. this.bohai(num, id);
  8495. });
  8496. } else if (res.code == "200") {
  8497. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  8498. this.totalCompanyList[num].lastYearMsg = "";
  8499. let dat = res.data.warnMessageList;
  8500. dat.map((ele) => {
  8501. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  8502. });
  8503. }
  8504. this.totalCompanyList[num].quoteCode = 200;
  8505. this.totalCompanyList[num].result = res.data;
  8506. this.QuotationHistory();
  8507. } else if (res.code == "101") {
  8508. this.totalCompanyList[num].quoteCode = "101";
  8509. this.totalCompanyList[num].msg = res.msg;
  8510. this.cqryCdeJq = res.data.cqryCdeJq;
  8511. this.cqryCdeSy = res.data.cqryCdeSy;
  8512. let jq = res.data.renewalCodeJq.replace(/[\r\n]/g, "");
  8513. let jqBase64 = `data:image/png;base64,${jq}`;
  8514. this.renewalCodeJqImg = jqBase64;
  8515. if (res.data.renewalCodeSy) {
  8516. let sy = res.data.renewalCodeSy.replace(/[\r\n]/g, "");
  8517. let syBase64 = `data:image/png;base64,${sy}`;
  8518. this.renewalCodeSyImg = syBase64;
  8519. }
  8520. this.renewalCodedialogVisible = true;
  8521. } else {
  8522. this.totalCompanyList[num].quoteCode = "3";
  8523. this.totalCompanyList[num].msg = res.msg;
  8524. return;
  8525. }
  8526. });
  8527. },
  8528. // 爬虫对接
  8529. quoteInsurance(num, id, namesimple, apiType) {
  8530. console.log(namesimple)
  8531. let api = apiType == 2 ? "pythonquote" : " ";
  8532. let ccidenttype = this.totalCompanyList[num].cnName;
  8533. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  8534. let params = {
  8535. accidentalDrivingVo: this[ccidenttype + "accidentalDrivingVo"],
  8536. orderNo: this.orderno,
  8537. companyId: id,
  8538. kinds: this.kindList,
  8539. risks: this.riskList,
  8540. userId: this.userId,
  8541. agreementId: this.totalCompanyList[num].agreementId,
  8542. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  8543. };
  8544. if (namesimple == "中国人寿" && this.lastCompanyId) {
  8545. params.discount = this.totalCompanyList[num].discount;
  8546. params.lastCompanyId = this.lastCompanyId;
  8547. }
  8548. if (namesimple == "诚泰财险" && this.lastCompanyId) {
  8549. params.coefficient = this.totalCompanyList[num].coefficient;
  8550. params.discount = this.totalCompanyList[num].discount;
  8551. params.lastCompanyId = this.lastCompanyId;
  8552. }
  8553. if (
  8554. namesimple == "华农财险" &&
  8555. this.huanongaccidentalDrivingVo.quantity
  8556. ) {
  8557. params.accidentalDrivingVo.quantity = this.accidentFormHN.quantity;
  8558. // params.accidentalDrivingVo.allQuantity = this.accidentFormHN.allQuantity;
  8559. }
  8560. this.$api.letter[api](params).then((res) => {
  8561. this.totalCompanyList[num].msg = res.msg;
  8562. switch (namesimple) {
  8563. case "诚泰财险":
  8564. case "安盛天平":
  8565. case "泰康财险":
  8566. case "中国人寿":
  8567. case "恒邦财险":
  8568. case "华农财险":
  8569. case "太平财险":
  8570. if (!!res.data) {
  8571. if (
  8572. res.data.warnMessageList &&
  8573. res.data.warnMessageList.length > 0
  8574. ) {
  8575. this.totalCompanyList[num].lastYearMsg = "";
  8576. let dat = res.data.warnMessageList;
  8577. dat.map((ele) => {
  8578. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  8579. });
  8580. }
  8581. if (res.data.predictInfo && res.data.predictInfo.length > 0) {
  8582. this.totalCompanyList[num].predictInfo = res.data.predictInfo;
  8583. }
  8584. this.totalCompanyList[num].quoteCode = 200;
  8585. this.totalCompanyList[num].result = res.data;
  8586. if (namesimple == "中国人寿" && res.data.companyId) {
  8587. this.lastCompanyId = res.data.companyId;
  8588. }
  8589. if (namesimple == "诚泰财险" && res.data.companyId) {
  8590. this.lastCompanyId = res.data.companyId;
  8591. }
  8592. this.QuotationHistory();
  8593. } else {
  8594. this.totalCompanyList[num].quoteCode = "3";
  8595. this.totalCompanyList[num].msg = res.msg;
  8596. return;
  8597. }
  8598. break;
  8599. case "众安财险":
  8600. if (!!res.data) {
  8601. if (res.data.tips == "需要验车") {
  8602. this.$notify.error({
  8603. title: "通融单",
  8604. duration: 0,
  8605. dangerouslyUseHTMLString: true,
  8606. message: `<div> ${res.data.warnMessageList
  8607. .map((item) => {
  8608. return `<p>${item}</p>`;
  8609. })
  8610. .join("")}
  8611. </div>`,
  8612. });
  8613. }
  8614. if (
  8615. res.data.warnMessageList &&
  8616. res.data.warnMessageList.length > 0
  8617. ) {
  8618. this.totalCompanyList[num].lastYearMsg = "";
  8619. let dat = res.data.warnMessageList;
  8620. dat.map((ele) => {
  8621. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  8622. });
  8623. }
  8624. this.totalCompanyList[num].quoteCode = 200;
  8625. this.totalCompanyList[num].result = res.data;
  8626. this.QuotationHistory();
  8627. } else {
  8628. this.totalCompanyList[num].quoteCode = "3";
  8629. this.totalCompanyList[num].msg = res.msg;
  8630. return;
  8631. }
  8632. break;
  8633. default:
  8634. break;
  8635. }
  8636. });
  8637. },
  8638. //诚泰
  8639. chengtai(num, id, namesimple) {
  8640. this.quoteInsurance(
  8641. num,
  8642. id,
  8643. namesimple,
  8644. this.totalCompanyList[num].apiType
  8645. );
  8646. },
  8647. //安盛天平
  8648. ansheng(num, id, namesimple) {
  8649. this.quoteInsurance(
  8650. num,
  8651. id,
  8652. namesimple,
  8653. this.totalCompanyList[num].apiType
  8654. );
  8655. },
  8656. //众安
  8657. zhongan(num, id, namesimple) {
  8658. this.quoteInsurance(
  8659. num,
  8660. id,
  8661. namesimple,
  8662. this.totalCompanyList[num].apiType
  8663. );
  8664. },
  8665. //人寿
  8666. renshou(num, id, namesimple) {
  8667. this.quoteInsurance(
  8668. num,
  8669. id,
  8670. namesimple,
  8671. this.totalCompanyList[num].apiType
  8672. );
  8673. },
  8674. //恒邦
  8675. hengbang(num, id, namesimple) {
  8676. this.quoteInsurance(
  8677. num,
  8678. id,
  8679. namesimple,
  8680. this.totalCompanyList[num].apiType
  8681. );
  8682. },
  8683. //太平
  8684. taiping(num, id, namesimple) {
  8685. this.quoteInsurance(
  8686. num,
  8687. id,
  8688. namesimple,
  8689. this.totalCompanyList[num].apiType
  8690. );
  8691. },
  8692. //华农
  8693. huanong(num, id, namesimple) {
  8694. this.quoteInsurance(
  8695. num,
  8696. id,
  8697. namesimple,
  8698. this.totalCompanyList[num].apiType
  8699. );
  8700. },
  8701. capTypedictTag(val, option) {
  8702. if (option.find((item) => item.dictValue == val)) {
  8703. return option.find((item) => item.dictValue == val).dictTag;
  8704. } else {
  8705. return "-";
  8706. }
  8707. },
  8708. // 爬虫对接
  8709. qoutedetail(companyId) {
  8710. let params = {
  8711. companyId: companyId,
  8712. };
  8713. this.$api.letter.getByCompanyId(params).then((res) => {
  8714. if (res.code == "200") {
  8715. var data = res.data;
  8716. data.kindinfo.map((ele, index) => {
  8717. switch (ele.kindCode) {
  8718. case "A":
  8719. ele.amount = "投保";
  8720. break;
  8721. case "D4":
  8722. case "SY_FJ_YBW2":
  8723. ele.unitAmount = this.toChinesNum(ele.unitAmount);
  8724. break;
  8725. case "MJ1":
  8726. case "MJ2":
  8727. case "MJ3":
  8728. case "MJ4":
  8729. ele.deductibleRate = ele.deductibleRate + "%";
  8730. break;
  8731. default:
  8732. ele.amount = this.toChinesNum(ele.amount);
  8733. }
  8734. return ele;
  8735. });
  8736. if (
  8737. (data.carinfo.carnature && data.carinfo.carnature == "02") ||
  8738. data.carinfo.carnature == "非营业"
  8739. ) {
  8740. data.carinfo.vehicleUse = this.capTypedictTag(
  8741. data.carinfo.vehicleUse,
  8742. this.outOfBusinessVehicleUseoptions
  8743. );
  8744. } else {
  8745. data.carinfo.vehicleUse = this.capTypedictTag(
  8746. data.carinfo.vehicleUse,
  8747. this.businessVehicleUseoptions
  8748. );
  8749. }
  8750. data.carinfo.carnature = this.capTypedictTag(
  8751. data.carinfo.carnature,
  8752. this.natureOfVehicleUseoptions
  8753. );
  8754. data.carinfo.cartype = data.carinfo.cartype
  8755. ? this.capTypedictTag(
  8756. data.carinfo.cartype,
  8757. this.trafficManagementVehicleTypeoptions
  8758. )
  8759. : "";
  8760. data.carinfo.cimodelclass = data.carinfo.cimodelclass
  8761. ? this.capTypedictTag(
  8762. data.carinfo.cimodelclass,
  8763. this.vehicleTypeoptions
  8764. )
  8765. : "";
  8766. data.carinfo.energyType = data.carinfo.energyType
  8767. ? this.capTypedictTag(
  8768. data.carinfo.energyType,
  8769. this.energyTypeoptions
  8770. )
  8771. : "";
  8772. this.queryOrders = data;
  8773. //赋值费用信息
  8774. // this.feeDetailInfo=data.orderFeeResult;
  8775. }
  8776. });
  8777. this.$refs.detailsDialog.setBackupVisible(true);
  8778. },
  8779. imageUpload() {
  8780. this.imageUploaddialogVisible = true;
  8781. // this.$refs.imageDialog.setBackupVisible(true);
  8782. },
  8783. tabLiScroll(id, idx) {
  8784. this.tabLiIndex = idx;
  8785. document.getElementById(id).scrollIntoView({ behavior: "smooth" });
  8786. },
  8787. //影像上传
  8788. drivingupload(file, imageIdList, imgurl, type) {
  8789. let that = this;
  8790. let size = file.size / 1024 / 1024 < 5;
  8791. const isJPG =
  8792. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  8793. if (!size) {
  8794. this.$message.error("上传图片大小不能超过 5MB!");
  8795. this[imgurl] = [];
  8796. return false;
  8797. }
  8798. if (!isJPG) {
  8799. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  8800. this[imgurl] = [];
  8801. return false;
  8802. }
  8803. this[imgurl].push(file);
  8804. var file = file.raw;
  8805. const params = new FormData(); // 声明formData数据类型
  8806. params.append("multipartFile", file);
  8807. params.append("type", "image");
  8808. this.$api.letter.uploadFile(params).then((res) => {
  8809. if (res.code == "200") {
  8810. if (this[imageIdList].some((v) => v.imageType == type)) {
  8811. this[imageIdList].map((val) => {
  8812. if (val.imageType == type) {
  8813. val.imageId = res.data.id;
  8814. }
  8815. });
  8816. } else {
  8817. this[imageIdList].push({
  8818. imageId: res.data.id,
  8819. imageType: type,
  8820. });
  8821. }
  8822. }
  8823. });
  8824. },
  8825. imageEcho(quotenos) {
  8826. //影像查询
  8827. this.$api.letter.findByQuoteNo(quotenos).then((res) => {
  8828. if (res.code == "200") {
  8829. this.imageList1 = [];
  8830. this.imageList2 = [];
  8831. this.imageList3 = [];
  8832. this.imageList4 = [];
  8833. this.imageList5 = [];
  8834. this.imageList6 = [];
  8835. this.imgList1 = [];
  8836. this.imgList2 = [];
  8837. this.imgList3 = [];
  8838. this.imgList4 = [];
  8839. this.imgList5 = [];
  8840. this.imgList6 = [];
  8841. this.imgList7 = [];
  8842. this.imgList8 = [];
  8843. this.imgList9 = [];
  8844. this.imgList10 = [];
  8845. this.imgList11 = [];
  8846. this.imgList12 = [];
  8847. this.imgList13 = [];
  8848. this.imgList14 = [];
  8849. this.imgList15 = [];
  8850. this.imgList16 = [];
  8851. this.imgList17 = [];
  8852. this.imgList18 = [];
  8853. this.imgList19 = [];
  8854. this.imgList20 = [];
  8855. this.imgList21 = [];
  8856. this.imgList22 = [];
  8857. this.imgList23 = [];
  8858. this.imgList24 = [];
  8859. Object.keys(res.data).forEach((keys) => {
  8860. if (res.data[keys].url) {
  8861. res.data[keys].url = process.env.BASE_URL + res.data[keys].url;
  8862. switch (keys) {
  8863. case "C01":
  8864. this.imageList1.push({
  8865. imageId: res.data[keys].imageId,
  8866. imageType: res.data[keys].imageType,
  8867. });
  8868. this.imgList1.push(res.data[keys]);
  8869. break;
  8870. case "D01":
  8871. this.imageList1.push({
  8872. imageId: res.data[keys].imageId,
  8873. imageType: res.data[keys].imageType,
  8874. });
  8875. this.imgList2.push(res.data[keys]);
  8876. break;
  8877. case "C02":
  8878. this.imageList2.push({
  8879. imageId: res.data[keys].imageId,
  8880. imageType: res.data[keys].imageType,
  8881. });
  8882. this.imgList3.push(res.data[keys]);
  8883. break;
  8884. case "D02":
  8885. this.imageList2.push({
  8886. imageId: res.data[keys].imageId,
  8887. imageType: res.data[keys].imageType,
  8888. });
  8889. this.imgList4.push(res.data[keys]);
  8890. break;
  8891. case "C03":
  8892. this.imageList3.push({
  8893. imageId: res.data[keys].imageId,
  8894. imageType: res.data[keys].imageType,
  8895. });
  8896. this.imgList5.push(res.data[keys]);
  8897. break;
  8898. case "D03":
  8899. this.imageList3.push({
  8900. imageId: res.data[keys].imageId,
  8901. imageType: res.data[keys].imageType,
  8902. });
  8903. this.imgList6.push(res.data[keys]);
  8904. break;
  8905. case "C04":
  8906. this.imageList4.push({
  8907. imageId: res.data[keys].imageId,
  8908. imageType: res.data[keys].imageType,
  8909. });
  8910. this.imgList7.push(res.data[keys]);
  8911. break;
  8912. case "D04":
  8913. this.imageList4.push({
  8914. imageId: res.data[keys].imageId,
  8915. imageType: res.data[keys].imageType,
  8916. });
  8917. this.imgList8.push(res.data[keys]);
  8918. break;
  8919. case "XC00":
  8920. this.imageList5.push({
  8921. imageId: res.data[keys].imageId,
  8922. imageType: res.data[keys].imageType,
  8923. });
  8924. this.imgList9.push(res.data[keys]);
  8925. break;
  8926. case "GC00":
  8927. this.imageList5.push({
  8928. imageId: res.data[keys].imageId,
  8929. imageType: res.data[keys].imageType,
  8930. });
  8931. this.imgList10.push(res.data[keys]);
  8932. break;
  8933. case "GX00":
  8934. this.imageList5.push({
  8935. imageId: res.data[keys].imageId,
  8936. imageType: res.data[keys].imageType,
  8937. });
  8938. this.imgList11.push(res.data[keys]);
  8939. break;
  8940. case "TAR05":
  8941. this.imageList1.push({
  8942. imageId: res.data[keys].imageId,
  8943. imageType: res.data[keys].imageType,
  8944. });
  8945. this.imgList12.push(res.data[keys]);
  8946. break;
  8947. case "C0500":
  8948. this.imageList6.push({
  8949. imageId: res.data[keys].imageId,
  8950. imageType: res.data[keys].imageType,
  8951. });
  8952. this.imgList13.push(res.data[keys]);
  8953. break;
  8954. case "C0501":
  8955. this.imageList6.push({
  8956. imageId: res.data[keys].imageId,
  8957. imageType: res.data[keys].imageType,
  8958. });
  8959. this.imgList14.push(res.data[keys]);
  8960. break;
  8961. case "C0502":
  8962. this.imageList6.push({
  8963. imageId: res.data[keys].imageId,
  8964. imageType: res.data[keys].imageType,
  8965. });
  8966. this.imgList15.push(res.data[keys]);
  8967. break;
  8968. case "C0503":
  8969. this.imageList6.push({
  8970. imageId: res.data[keys].imageId,
  8971. imageType: res.data[keys].imageType,
  8972. });
  8973. this.imgList16.push(res.data[keys]);
  8974. break;
  8975. case "C0504":
  8976. this.imageList6.push({
  8977. imageId: res.data[keys].imageId,
  8978. imageType: res.data[keys].imageType,
  8979. });
  8980. this.imgList17.push(res.data[keys]);
  8981. break;
  8982. case "C0506":
  8983. this.imageList6.push({
  8984. imageId: res.data[keys].imageId,
  8985. imageType: res.data[keys].imageType,
  8986. });
  8987. this.imgList18.push(res.data[keys]);
  8988. break;
  8989. case "C0507":
  8990. this.imageList6.push({
  8991. imageId: res.data[keys].imageId,
  8992. imageType: res.data[keys].imageType,
  8993. });
  8994. this.imgList19.push(res.data[keys]);
  8995. break;
  8996. case "C0505":
  8997. this.imageList6.push({
  8998. imageId: res.data[keys].imageId,
  8999. imageType: res.data[keys].imageType,
  9000. });
  9001. this.imgList20.push(res.data[keys]);
  9002. break;
  9003. case "C0508":
  9004. this.imageList6.push({
  9005. imageId: res.data[keys].imageId,
  9006. imageType: res.data[keys].imageType,
  9007. });
  9008. this.imgList21.push(res.data[keys]);
  9009. break;
  9010. case "C0509":
  9011. this.imageList6.push({
  9012. imageId: res.data[keys].imageId,
  9013. imageType: res.data[keys].imageType,
  9014. });
  9015. this.imgList22.push(res.data[keys]);
  9016. break;
  9017. case "C0510":
  9018. this.imageList6.push({
  9019. imageId: res.data[keys].imageId,
  9020. imageType: res.data[keys].imageType,
  9021. });
  9022. this.imgList23.push(res.data[keys]);
  9023. break;
  9024. case "LAST_INSURANCE_POLICY":
  9025. this.imageList6.push({
  9026. imageId: res.data[keys].imageId,
  9027. imageType: res.data[keys].imageType,
  9028. });
  9029. this.imgList24.push(res.data[keys]);
  9030. break;
  9031. default:
  9032. break;
  9033. }
  9034. }
  9035. });
  9036. } else {
  9037. this.$message({ message: res.msg, type: "info" });
  9038. }
  9039. });
  9040. },
  9041. policyUpload() {
  9042. this.policyNumberForm.jqPolicyList = !this.policyNumberForm.jqPolicyList
  9043. ? []
  9044. : this.policyNumberForm.jqPolicyList;
  9045. this.policyNumberForm.jqSignList = !this.policyNumberForm.jqSignList
  9046. ? []
  9047. : this.policyNumberForm.jqSignList;
  9048. this.policyNumberForm.syPolicyList = !this.policyNumberForm.syPolicyList
  9049. ? []
  9050. : this.policyNumberForm.syPolicyList;
  9051. this.policyNumberForm.noPolicyList = !this.policyNumberForm.noPolicyList
  9052. ? []
  9053. : this.policyNumberForm.noPolicyList;
  9054. this.policyUploaddialogVisible = true;
  9055. },
  9056. cancelorder(item) {
  9057. this.$api.letter.zijincancelorder({ companyId: item.id }).then((res) => {
  9058. if (res.code == 200) {
  9059. this.$message({
  9060. message: res.msg,
  9061. type: "success",
  9062. });
  9063. this.QuotationHistory();
  9064. }
  9065. });
  9066. },
  9067. hbsubmitdialog(data) {
  9068. if (this.imageList1.length == 0 && this.imageList2.length == 0) {
  9069. this.$message({ message: "影像不全,先上传影像", type: "error" });
  9070. return;
  9071. }
  9072. this.companyId = data.result.companyId;
  9073. this.apiType = data.apiType;
  9074. this.hbsubmitdialogVisible = true;
  9075. this.contributingState = false;
  9076. if (data.namesimple == "紫金财险") {
  9077. this.$api.letter
  9078. .zijinqueryClauseData({ companyId: this.companyId })
  9079. .then((res) => {
  9080. this.zijinengageListData = res.data;
  9081. });
  9082. }
  9083. if (data.namesimple == "华泰财险") {
  9084. this.zijinengageList = [];
  9085. this.$api.letter
  9086. .huataiqueryClauseData({ companyId: this.companyId })
  9087. .then((res) => {
  9088. res.data.forEach((val) => {
  9089. val.clauseCode = val.engageCode;
  9090. val.clauseName = val.engageTitle;
  9091. val.clauseContent = val.engageDetail;
  9092. val.clauses = val.engageDetail;
  9093. });
  9094. this.zijinengageListData = res.data;
  9095. this.zijinengageListData.forEach((val) => {
  9096. this.$nextTick(() => {
  9097. if (val.optType == "2") {
  9098. this.zijinengageList.push(val);
  9099. this.$refs.expandTablePro.toggleRowSelection(val, true);
  9100. }
  9101. });
  9102. });
  9103. });
  9104. } else {
  9105. this.zijinengageListData = [];
  9106. }
  9107. // switch (data.namesimple) {
  9108. // case "紫金财险":
  9109. // this.$api.letter.zijinqueryClauseData({ companyId: this.companyId }).then(res => {
  9110. // this.zijinengageListData = res.data;
  9111. // });
  9112. // break;
  9113. // default:
  9114. // break;
  9115. // }
  9116. },
  9117. hbsubmit() {
  9118. this.hbsubmitdialogVisible = false;
  9119. this.contributingState = false;
  9120. this.$api.letter
  9121. .getByCompanyId({ companyId: this.companyId })
  9122. .then(async (res) => {
  9123. if (res.code == 200) {
  9124. var data = res.data;
  9125. this.queryOrders = data;
  9126. const loading = this.$loading({
  9127. lock: true,
  9128. text: "Loading",
  9129. spinner: "el-icon-loading",
  9130. background: "rgba(0, 0, 0, 0.7)",
  9131. });
  9132. switch (this.queryOrders.inscompany) {
  9133. case "永安财险":
  9134. let api = "";
  9135. api =
  9136. this.apiType == 2
  9137. ? "pythonsubmitImage"
  9138. : "insyongansubmitImage";
  9139. await this.$api.letter[api]({
  9140. companyId: this.companyId,
  9141. }).then((res) => {
  9142. if (res.code == "200") {
  9143. var _this = this;
  9144. let api1 = "";
  9145. api1 = this.apiType == 2 ? "pythonaudit" : "yonganaudit";
  9146. this.$api.letter[api1]({
  9147. companyId: this.companyId,
  9148. }).then((res) => {
  9149. var _this = this;
  9150. if (res.code == "200") {
  9151. loading.close();
  9152. this.$message({
  9153. message: "核保成功",
  9154. type: "success",
  9155. });
  9156. this.QuotationHistory();
  9157. _this.$api.letter
  9158. .getByCompanyId({ companyId: this.companyId })
  9159. .then((res) => {
  9160. _this.orderstatus = res.data.orderstatus; //订单状态
  9161. _this.underwritingdialogVisible = true;
  9162. let indexid = this.totalCompanyList.findIndex(
  9163. (item) =>
  9164. item.namesimple == this.queryOrders.inscompany
  9165. );
  9166. this.totalCompanyList[indexid].orderstatus =
  9167. res.data.orderstatus;
  9168. });
  9169. } else {
  9170. loading.close();
  9171. this.$message({
  9172. showClose: true,
  9173. message:
  9174. this.queryOrders.inscompany + "提核--:" + res.msg,
  9175. type: "error",
  9176. duration: 0,
  9177. });
  9178. }
  9179. });
  9180. } else {
  9181. this.$message({
  9182. message: this.queryOrders.inscompany + "影像:" + res.msg,
  9183. type: "error",
  9184. duration: 7000,
  9185. });
  9186. loading.close();
  9187. }
  9188. });
  9189. break;
  9190. case "中煤财险":
  9191. await this.$api.letter
  9192. .insZhongmeisubmitImage({
  9193. companyId: this.companyId,
  9194. })
  9195. .then((res) => {
  9196. if (res.code == "200") {
  9197. var _this = this;
  9198. _this.$api.letter
  9199. .Zhongmeiaudit({
  9200. companyId: this.companyId,
  9201. jqappoint: "",
  9202. syappoint: "",
  9203. })
  9204. .then((res) => {
  9205. if (res.code == "200") {
  9206. loading.close();
  9207. _this.$message({
  9208. message: "核保成功",
  9209. type: "success",
  9210. });
  9211. this.QuotationHistory();
  9212. _this.$api.letter
  9213. .getByCompanyId({ companyId: this.companyId })
  9214. .then((res) => {
  9215. _this.orderstatus = res.data.orderstatus; //订单状态
  9216. _this.underwritingdialogVisible = true;
  9217. let indexid = this.totalCompanyList.findIndex(
  9218. (item) =>
  9219. item.namesimple ==
  9220. this.queryOrders.inscompany
  9221. );
  9222. this.totalCompanyList[indexid].orderstatus =
  9223. res.data.orderstatus;
  9224. });
  9225. } else {
  9226. loading.close();
  9227. _this.$message({
  9228. showClose: true,
  9229. message:
  9230. this.queryOrders.inscompany +
  9231. "提核--:" +
  9232. res.msg,
  9233. type: "error",
  9234. duration: 0,
  9235. });
  9236. _this.$api.letter
  9237. .getByCompanyId({ companyId: this.companyId })
  9238. .then((res) => {
  9239. _this.orderstatus = res.data.orderstatus; //订单状态
  9240. });
  9241. }
  9242. });
  9243. } else {
  9244. this.$message({
  9245. message:
  9246. this.queryOrders.inscompany + "影像--:" + res.msg,
  9247. type: "error",
  9248. duration: 7000,
  9249. });
  9250. loading.close();
  9251. }
  9252. });
  9253. break;
  9254. case "华泰财险":
  9255. let HtApiImage = "";
  9256. HtApiImage =
  9257. this.apiType == 2
  9258. ? "pythonsubmitImage"
  9259. : "insHuataisubmitImage";
  9260. await this.$api.letter[HtApiImage]({
  9261. [this.apiType == 2 ? "subOrderNo" : "companyId"]:
  9262. this.companyId,
  9263. }).then((res) => {
  9264. if (res.code == "200") {
  9265. var _this = this;
  9266. let HtApiaudit = "";
  9267. HtApiaudit =
  9268. this.apiType == 2 ? "pythonaudit" : "huataiaudit";
  9269. let engageList = [];
  9270. this.zijinengageList.forEach((val) => {
  9271. engageList.push({
  9272. engageCode: val.clauseCode,
  9273. engageDetail: val.clauses,
  9274. engageTitle: val.clauseName,
  9275. riskCode: val.riskCode,
  9276. });
  9277. });
  9278. _this.$api.letter[HtApiaudit]({
  9279. [this.apiType == 2 ? "subOrderNo" : "companyId"]:
  9280. this.companyId,
  9281. engageList,
  9282. }).then((res) => {
  9283. if (res.code == "200") {
  9284. loading.close();
  9285. _this.$message({
  9286. message: "核保成功",
  9287. type: "success",
  9288. });
  9289. this.QuotationHistory();
  9290. _this.$api.letter
  9291. .getByCompanyId({ companyId: this.companyId })
  9292. .then((res) => {
  9293. _this.orderstatus = res.data.orderstatus; //订单状态
  9294. _this.underwritingdialogVisible = true;
  9295. let indexid = this.totalCompanyList.findIndex(
  9296. (item) =>
  9297. item.namesimple == this.queryOrders.inscompany
  9298. );
  9299. this.totalCompanyList[indexid].orderstatus =
  9300. res.data.orderstatus;
  9301. });
  9302. } else {
  9303. loading.close();
  9304. _this.$message({
  9305. showClose: true,
  9306. message:
  9307. this.queryOrders.inscompany + "提核--:" + res.msg,
  9308. type: "error",
  9309. duration: 0,
  9310. });
  9311. _this.$api.letter
  9312. .getByCompanyId({ companyId: this.companyId })
  9313. .then((res) => {
  9314. _this.orderstatus = res.data.orderstatus; //订单状态
  9315. });
  9316. }
  9317. });
  9318. } else {
  9319. this.$message({
  9320. message:
  9321. this.queryOrders.inscompany + "影像--:" + res.msg,
  9322. type: "error",
  9323. duration: 7000,
  9324. });
  9325. loading.close();
  9326. }
  9327. });
  9328. break;
  9329. case "紫金财险":
  9330. await this.$api.letter
  9331. .zijinsubmitImage({
  9332. companyId: this.companyId,
  9333. })
  9334. .then((res) => {
  9335. if (res.code == "200") {
  9336. var _this = this;
  9337. _this.$api.letter
  9338. .zijinaudit({
  9339. companyId: this.companyId,
  9340. engageList: this.zijinengageList,
  9341. })
  9342. .then((res) => {
  9343. if (res.code == "200") {
  9344. loading.close();
  9345. _this.$message({
  9346. message: "核保成功",
  9347. type: "success",
  9348. });
  9349. this.QuotationHistory();
  9350. _this.$api.letter
  9351. .getByCompanyId({ companyId: this.companyId })
  9352. .then((res) => {
  9353. _this.orderstatus = res.data.orderstatus; //订单状态
  9354. _this.underwritingdialogVisible = true;
  9355. let indexid = this.totalCompanyList.findIndex(
  9356. (item) =>
  9357. item.namesimple ==
  9358. this.queryOrders.inscompany
  9359. );
  9360. this.totalCompanyList[indexid].orderstatus =
  9361. res.data.orderstatus;
  9362. });
  9363. } else {
  9364. loading.close();
  9365. _this.$message({
  9366. showClose: true,
  9367. dangerouslyUseHTMLString: true,
  9368. message:
  9369. this.queryOrders.inscompany +
  9370. "提核--:" +
  9371. res.msg,
  9372. type: "error",
  9373. duration: 0,
  9374. });
  9375. _this.$api.letter
  9376. .getByCompanyId({ companyId: this.companyId })
  9377. .then((res) => {
  9378. _this.orderstatus = res.data.orderstatus; //订单状态
  9379. });
  9380. }
  9381. });
  9382. } else {
  9383. this.$message({
  9384. message:
  9385. this.queryOrders.inscompany + "影像--:" + res.msg,
  9386. type: "error",
  9387. duration: 7000,
  9388. });
  9389. loading.close();
  9390. }
  9391. });
  9392. break;
  9393. case "国任财险":
  9394. await this.$api.letter
  9395. .insguorensubmitImage({
  9396. companyId: this.companyId,
  9397. })
  9398. .then((res) => {
  9399. if (res.code == "200") {
  9400. var _this = this;
  9401. _this.$api.letter
  9402. .gunrenaudit({
  9403. companyId: this.companyId,
  9404. })
  9405. .then((res) => {
  9406. if (res.code == "200") {
  9407. loading.close();
  9408. _this.cqryCdeJq = "";
  9409. _this.cqryCdeSy = "";
  9410. _this.renewalCodeJq = "";
  9411. _this.renewalCodeSy = "";
  9412. this.$message({
  9413. message: "核保成功",
  9414. type: "success",
  9415. });
  9416. this.QuotationHistory();
  9417. _this.$api.letter
  9418. .getByCompanyId({ companyId: this.companyId })
  9419. .then((res) => {
  9420. _this.orderstatus = res.data.orderstatus; //订单状态
  9421. _this.underwritingdialogVisible = true;
  9422. let indexid = this.totalCompanyList.findIndex(
  9423. (item) =>
  9424. item.namesimple ==
  9425. this.queryOrders.inscompany
  9426. );
  9427. this.totalCompanyList[indexid].orderstatus =
  9428. res.data.orderstatus;
  9429. });
  9430. } else {
  9431. loading.close();
  9432. this.$message({
  9433. showClose: true,
  9434. message: res.msg,
  9435. type: "error",
  9436. duration: 0,
  9437. });
  9438. }
  9439. });
  9440. } else {
  9441. loading.close();
  9442. this.$message({
  9443. message: res.msg,
  9444. type: "error",
  9445. duration: 7000,
  9446. });
  9447. }
  9448. });
  9449. break;
  9450. case "渤海财险":
  9451. await this.$api.letter
  9452. .insbohaisubmitImage({
  9453. companyId: this.companyId,
  9454. })
  9455. .then((res) => {
  9456. if (res.code == "200") {
  9457. var _this = this;
  9458. _this.$api.letter
  9459. .bohaiaudit({
  9460. companyId: this.companyId,
  9461. })
  9462. .then((res) => {
  9463. if (res.code == "200") {
  9464. loading.close();
  9465. _this.cqryCdeJq = "";
  9466. _this.cqryCdeSy = "";
  9467. _this.renewalCodeJq = "";
  9468. _this.renewalCodeSy = "";
  9469. this.$message({
  9470. message: "核保成功",
  9471. type: "success",
  9472. });
  9473. this.QuotationHistory();
  9474. _this.$api.letter
  9475. .getByCompanyId({ companyId: this.companyId })
  9476. .then((res) => {
  9477. _this.orderstatus = res.data.orderstatus; //订单状态
  9478. _this.underwritingdialogVisible = true;
  9479. let indexid = this.totalCompanyList.findIndex(
  9480. (item) =>
  9481. item.namesimple ==
  9482. this.queryOrders.inscompany
  9483. );
  9484. this.totalCompanyList[indexid].orderstatus =
  9485. res.data.orderstatus;
  9486. });
  9487. } else {
  9488. loading.close();
  9489. this.$message({
  9490. showClose: true,
  9491. message: res.msg,
  9492. type: "error",
  9493. duration: 0,
  9494. });
  9495. }
  9496. });
  9497. } else {
  9498. loading.close();
  9499. this.$message({
  9500. message: res.msg,
  9501. type: "error",
  9502. duration: 7000,
  9503. });
  9504. }
  9505. });
  9506. break;
  9507. case "诚泰财险":
  9508. case "恒邦财险":
  9509. case "华农财险":
  9510. case "太平财险":
  9511. case "安盛天平":
  9512. case "众安财险":
  9513. case "中国人寿":
  9514. case "泰康财险":
  9515. let hengbangapi = "";
  9516. hengbangapi =
  9517. this.apiType == 2
  9518. ? "pythonsubmitImage"
  9519. : "anshengsubmitImage";
  9520. console.log(hengbangapi, "hengbangapi");
  9521. await this.$api.letter[hengbangapi]({
  9522. subOrderNo: this.companyId,
  9523. }).then((res) => {
  9524. if (res.code == "200") {
  9525. var _this = this;
  9526. let hengbangapi1 = "";
  9527. hengbangapi1 =
  9528. this.apiType == 2 ? "pythonaudit" : "anshengaudit";
  9529. console.log(hengbangapi1, "hengbangapi1");
  9530. _this.$api.letter[hengbangapi1]({
  9531. subOrderNo: this.companyId,
  9532. }).then((res) => {
  9533. if (res.code == "200") {
  9534. loading.close();
  9535. this.$message({
  9536. message: "核保成功",
  9537. type: "success",
  9538. });
  9539. this.QuotationHistory();
  9540. _this.$api.letter
  9541. .getByCompanyId({ companyId: this.companyId })
  9542. .then((res) => {
  9543. _this.orderstatus = res.data.orderstatus; //订单状态
  9544. _this.underwritingdialogVisible = true;
  9545. let indexid = this.totalCompanyList.findIndex(
  9546. (item) =>
  9547. item.namesimple == this.queryOrders.inscompany
  9548. );
  9549. this.totalCompanyList[indexid].orderstatus =
  9550. res.data.orderstatus;
  9551. });
  9552. } else {
  9553. loading.close();
  9554. this.$message({
  9555. showClose: true,
  9556. dangerouslyUseHTMLString: true,
  9557. message:
  9558. this.queryOrders.inscompany +
  9559. "提核--:" +
  9560. res.msg.replace(/\n/g, "<br><br>"),
  9561. type: "error",
  9562. duration: 0,
  9563. });
  9564. }
  9565. });
  9566. } else {
  9567. loading.close();
  9568. this.$message({
  9569. message:
  9570. this.queryOrders.inscompany + "影像--:" + res.msg,
  9571. type: "error",
  9572. duration: 7000,
  9573. });
  9574. }
  9575. });
  9576. break;
  9577. case "永诚财险":
  9578. await this.$api.letter
  9579. .insyongchengsubmitImage({
  9580. companyId: this.companyId,
  9581. })
  9582. .then((res) => {
  9583. if (res.code == "200") {
  9584. var _this = this;
  9585. _this.$api.letter
  9586. .yongchengaudit({
  9587. companyId: this.companyId,
  9588. })
  9589. .then((res) => {
  9590. if (res.code == "200") {
  9591. loading.close();
  9592. _this.cqryCdeJq = "";
  9593. _this.cqryCdeSy = "";
  9594. _this.renewalCodeJq = "";
  9595. _this.renewalCodeSy = "";
  9596. this.$message({
  9597. message: "核保成功",
  9598. type: "success",
  9599. });
  9600. this.QuotationHistory();
  9601. _this.$api.letter
  9602. .getByCompanyId({ companyId: this.companyId })
  9603. .then((res) => {
  9604. _this.orderstatus = res.data.orderstatus; //订单状态
  9605. _this.underwritingdialogVisible = true;
  9606. let indexid = this.totalCompanyList.findIndex(
  9607. (item) =>
  9608. item.namesimple ==
  9609. this.queryOrders.inscompany
  9610. );
  9611. this.totalCompanyList[indexid].orderstatus =
  9612. res.data.orderstatus;
  9613. });
  9614. } else {
  9615. loading.close();
  9616. this.$message({
  9617. showClose: true,
  9618. message:
  9619. this.queryOrders.inscompany +
  9620. "提核--:" +
  9621. res.msg,
  9622. customClass: "customNotifyClass",
  9623. type: "error",
  9624. duration: 0,
  9625. });
  9626. }
  9627. });
  9628. } else {
  9629. loading.close();
  9630. this.$message({
  9631. message:
  9632. this.queryOrders.inscompany + "影像--:" + res.msg,
  9633. type: "error",
  9634. duration: 7000,
  9635. });
  9636. }
  9637. });
  9638. break;
  9639. case "大家财险":
  9640. let DJApiImage = "";
  9641. DJApiImage =
  9642. this.apiType == 2 ? "pythonsubmitImage" : "dajiasubmitImage";
  9643. await this.$api.letter[DJApiImage]({
  9644. [this.apiType == 2 ? "subOrderNo" : "companyId"]:
  9645. this.companyId,
  9646. }).then((res) => {
  9647. if (res.code == "200") {
  9648. var _this = this;
  9649. let DJApiaudit = "";
  9650. DJApiaudit =
  9651. this.apiType == 2 ? "pythonaudit" : "dajiaaudit";
  9652. _this.$api.letter[DJApiaudit]({
  9653. [this.apiType == 2 ? "subOrderNo" : "companyId"]:
  9654. this.companyId,
  9655. }).then((res) => {
  9656. if (res.code == "200") {
  9657. loading.close();
  9658. _this.cqryCdeJq = "";
  9659. _this.cqryCdeSy = "";
  9660. _this.renewalCodeJq = "";
  9661. _this.renewalCodeSy = "";
  9662. this.$message({
  9663. message: "核保成功",
  9664. type: "success",
  9665. });
  9666. this.QuotationHistory();
  9667. _this.$api.letter
  9668. .getByCompanyId({ companyId: this.companyId })
  9669. .then((res) => {
  9670. _this.orderstatus = res.data.orderstatus; //订单状态
  9671. _this.underwritingdialogVisible = true;
  9672. let indexid = this.totalCompanyList.findIndex(
  9673. (item) =>
  9674. item.namesimple == this.queryOrders.inscompany
  9675. );
  9676. this.totalCompanyList[indexid].orderstatus =
  9677. res.data.orderstatus;
  9678. });
  9679. } else {
  9680. loading.close();
  9681. this.$message({
  9682. showClose: true,
  9683. message:
  9684. this.queryOrders.inscompany + "提核--:" + res.msg,
  9685. customClass: "customNotifyClass",
  9686. type: "error",
  9687. duration: 0,
  9688. });
  9689. }
  9690. });
  9691. } else {
  9692. loading.close();
  9693. this.$message({
  9694. message:
  9695. this.queryOrders.inscompany + "影像--:" + res.msg,
  9696. type: "error",
  9697. duration: 7000,
  9698. });
  9699. }
  9700. });
  9701. break;
  9702. case "平安财险":
  9703. await this.$api.letter
  9704. .pingansubmitImage({
  9705. companyId: this.companyId,
  9706. })
  9707. .then((res) => {
  9708. if (res.code == "200") {
  9709. var _this = this;
  9710. _this.$api.letter
  9711. .pinganaudit({
  9712. companyId: this.companyId,
  9713. jqappoint: "",
  9714. syappoint: "",
  9715. })
  9716. .then((res) => {
  9717. if (res.code == "200") {
  9718. loading.close();
  9719. _this.$message({
  9720. message: "核保成功",
  9721. type: "success",
  9722. });
  9723. this.QuotationHistory();
  9724. _this.$api.letter
  9725. .getByCompanyId({ companyId: this.companyId })
  9726. .then((res) => {
  9727. _this.orderstatus = res.data.orderstatus; //订单状态
  9728. _this.underwritingdialogVisible = true;
  9729. let indexid = this.totalCompanyList.findIndex(
  9730. (item) =>
  9731. item.namesimple ==
  9732. this.queryOrders.inscompany
  9733. );
  9734. this.totalCompanyList[indexid].orderstatus =
  9735. res.data.orderstatus;
  9736. });
  9737. } else {
  9738. loading.close();
  9739. _this.$message({
  9740. showClose: true,
  9741. message:
  9742. this.queryOrders.inscompany +
  9743. "提核--:" +
  9744. res.msg,
  9745. type: "error",
  9746. duration: 0,
  9747. });
  9748. _this.$api.letter
  9749. .getByCompanyId({ companyId: this.companyId })
  9750. .then((res) => {
  9751. _this.orderstatus = res.data.orderstatus; //订单状态
  9752. });
  9753. }
  9754. });
  9755. } else {
  9756. this.$message({
  9757. message:
  9758. this.queryOrders.inscompany + "影像--:" + res.msg,
  9759. type: "error",
  9760. duration: 7000,
  9761. });
  9762. loading.close();
  9763. }
  9764. });
  9765. break;
  9766. }
  9767. }
  9768. });
  9769. },
  9770. //当前日期的次日
  9771. transformTime1() {
  9772. var date = new Date();
  9773. date.setFullYear(date.getFullYear());
  9774. date.setTime(date.getTime() + 24 * 60 * 60 * 1000);
  9775. var strYear = date.getFullYear();
  9776. var strDay = date.getDate();
  9777. var strMonth = date.getMonth() + 1;
  9778. var hh = date.getHours();
  9779. if (hh < 10) {
  9780. hh = "0" + hh;
  9781. }
  9782. if (strMonth < 10) {
  9783. strMonth = "0" + strMonth;
  9784. }
  9785. if (strDay < 10) {
  9786. strDay = "0" + strDay;
  9787. }
  9788. var datastr = strYear + "-" + strMonth + "-" + strDay + " " + "00:00:00";
  9789. return datastr;
  9790. },
  9791. //传入日期的次日
  9792. transformTime2(time) {
  9793. var date = new Date(time);
  9794. date.setFullYear(date.getFullYear());
  9795. date.setTime(date.getTime() + 24 * 60 * 60 * 1000); //一年后的前一天
  9796. var strYear = date.getFullYear();
  9797. var strDay = date.getDate();
  9798. var strMonth = date.getMonth() + 1;
  9799. var hh = date.getHours();
  9800. if (hh < 10) {
  9801. hh = "0" + hh;
  9802. }
  9803. if (strMonth < 10) {
  9804. strMonth = "0" + strMonth;
  9805. }
  9806. if (strDay < 10) {
  9807. strDay = "0" + strDay;
  9808. }
  9809. var datastr = strYear + "-" + strMonth + "-" + strDay + " " + "00:00:00";
  9810. return datastr;
  9811. },
  9812. //时间转换
  9813. transformTime(date) {
  9814. var d = new Date(date);
  9815. var strYear = d.getFullYear();
  9816. var strMonth = d.getMonth() + 1;
  9817. var strDay = d.getDate();
  9818. var hh = d.getHours();
  9819. var minutes = d.getMinutes(); // 分
  9820. var Seconds = d.getSeconds();
  9821. if (hh < 10) {
  9822. hh = "0" + hh;
  9823. }
  9824. if (minutes < 10) {
  9825. minutes = "0" + minutes;
  9826. }
  9827. if (Seconds < 10) {
  9828. Seconds = "0" + Seconds;
  9829. }
  9830. if (strMonth < 10) {
  9831. strMonth = "0" + strMonth;
  9832. }
  9833. if (strDay < 10) {
  9834. strDay = "0" + strDay;
  9835. }
  9836. var datetime =
  9837. strYear +
  9838. "-" +
  9839. strMonth +
  9840. "-" +
  9841. strDay +
  9842. " " +
  9843. hh +
  9844. ":" +
  9845. minutes +
  9846. ":" +
  9847. Seconds;
  9848. return datetime;
  9849. },
  9850. timeformat(date) {
  9851. var d = new Date(date);
  9852. var strYear = d.getFullYear();
  9853. var strMonth = d.getMonth() + 1;
  9854. var strDay = d.getDate();
  9855. var hh = d.getHours();
  9856. if (hh < 10) {
  9857. hh = "0" + hh;
  9858. }
  9859. if (strMonth < 10) {
  9860. strMonth = "0" + strMonth;
  9861. }
  9862. if (strDay < 10) {
  9863. strDay = "0" + strDay;
  9864. }
  9865. var datetime = strYear + "-" + strMonth + "-" + strDay;
  9866. return datetime;
  9867. },
  9868. oneYearPast1(time) {
  9869. //明年减一秒
  9870. var date = new Date(time);
  9871. date.setSeconds(date.getSeconds() - 1);
  9872. date.setFullYear(date.getFullYear() + 1); //一年后
  9873. date.setTime(date.getTime()); //一年后的前一天
  9874. var strYear = date.getFullYear();
  9875. var strDay = date.getDate();
  9876. var strMonth = date.getMonth() + 1;
  9877. var hh = date.getHours();
  9878. var minutes = date.getMinutes(); // 分
  9879. var Seconds = date.getSeconds();
  9880. if (hh < 10) {
  9881. hh = "0" + hh;
  9882. }
  9883. if (minutes < 10) {
  9884. minutes = "0" + minutes;
  9885. }
  9886. if (Seconds < 10) {
  9887. Seconds = "0" + Seconds;
  9888. }
  9889. if (strMonth < 10) {
  9890. strMonth = "0" + strMonth;
  9891. }
  9892. if (strDay < 10) {
  9893. strDay = "0" + strDay;
  9894. }
  9895. var datastr =
  9896. strYear +
  9897. "-" +
  9898. strMonth +
  9899. "-" +
  9900. strDay +
  9901. " " +
  9902. hh +
  9903. ":" +
  9904. minutes +
  9905. ":" +
  9906. Seconds;
  9907. return datastr;
  9908. },
  9909. tbczcarShowChange() {
  9910. //投保人同车主
  9911. switch (this.tbczcarShow) {
  9912. case true:
  9913. this.policyHolderInfo = JSON.parse(JSON.stringify(this.ownerInfo));
  9914. break;
  9915. default:
  9916. for (let key in this.policyHolderInfo) {
  9917. this.policyHolderInfo[key] = "";
  9918. this.policyHolderInfo.provinceData = [];
  9919. this.selectedOptions2 = [];
  9920. }
  9921. }
  9922. },
  9923. bbczcarShowChange() {
  9924. //被保人同车主
  9925. switch (this.bbczcarShow) {
  9926. case true:
  9927. this.bbtbcarShow = false;
  9928. this.insuredPersonInfo = JSON.parse(JSON.stringify(this.ownerInfo));
  9929. break;
  9930. default:
  9931. for (let key in this.insuredPersonInfo) {
  9932. this.insuredPersonInfo[key] = "";
  9933. this.insuredPersonInfo.provinceData = [];
  9934. // this.selectedOptions3 = [];
  9935. }
  9936. }
  9937. },
  9938. bbtbcarShowChange() {
  9939. //被保人同投保人
  9940. switch (this.bbtbcarShow) {
  9941. case true:
  9942. this.bbczcarShow = false;
  9943. this.insuredPersonInfo = JSON.parse(
  9944. JSON.stringify(this.policyHolderInfo)
  9945. );
  9946. break;
  9947. default:
  9948. for (let key in this.insuredPersonInfo) {
  9949. this.insuredPersonInfo[key] = "";
  9950. this.insuredPersonInfo.provinceData = [];
  9951. }
  9952. }
  9953. },
  9954. //VIN查询
  9955. toChooseVin(cartype) {
  9956. if (cartype == "" || cartype == null) {
  9957. this.$message({
  9958. message: "请输入车架号",
  9959. type: "warning",
  9960. });
  9961. } else {
  9962. const loading = this.$loading({
  9963. lock: true,
  9964. text: "Loading",
  9965. spinner: "el-icon-loading",
  9966. background: "rgba(0, 0, 0, 0.7)",
  9967. });
  9968. this.$api.letter.insZhongmeiVIN(this.carInfo.frameNo).then((res) => {
  9969. if (res.code == "200") {
  9970. this.reslist = res.data;
  9971. loading.close();
  9972. this.sbdmdialogVisible = true;
  9973. } else {
  9974. loading.close();
  9975. this.$message.error(res.msg);
  9976. }
  9977. });
  9978. }
  9979. },
  9980. // 撤销二维码
  9981. revokeCode(id) {
  9982. this.$api.letter.getRevokeQrCode(id).then((res) => {
  9983. if (res.code == 200) {
  9984. this.$message({
  9985. message: res.msg,
  9986. type: "success",
  9987. });
  9988. this.QuotationHistory();
  9989. }
  9990. });
  9991. },
  9992. //品牌型号查询
  9993. toChooseVehicleType(cartype) {
  9994. if (cartype == "" || cartype == null) {
  9995. this.$message({
  9996. message: "请输入车型名称",
  9997. type: "warning",
  9998. });
  9999. } else {
  10000. const loading = this.$loading({
  10001. lock: true,
  10002. text: "Loading",
  10003. spinner: "el-icon-loading",
  10004. background: "rgba(0, 0, 0, 0.7)",
  10005. });
  10006. let param = {
  10007. modelName: cartype.replace(/[^u4e00-u9fa5|,]+/gi, ""),
  10008. };
  10009. this.$api.letter.ModelsQuery(param).then((res) => {
  10010. if (res.code == "200") {
  10011. loading.close();
  10012. this.reslist = res.data;
  10013. this.chexingdialogVisible = true;
  10014. } else {
  10015. loading.close();
  10016. this.$message.error(res.msg);
  10017. }
  10018. });
  10019. }
  10020. },
  10021. //车型列表双击选中事件
  10022. reslistCurrentChange(row, column, event) {
  10023. this.carInfo.brandName = row.brandCN; //品牌型号
  10024. this.carInfo.modelcname = row.modelName; //品牌型号
  10025. this.carInfo.caryear = row.marketYear; //年款
  10026. this.carInfo.seatCount = row.ratedPassengerCapacity; //座位数
  10027. this.carInfo.purchasePrice = row.replacementValue; //购置价
  10028. this.carInfo.modelCode = row.modelCode; //型号代码
  10029. this.carInfo.familyName = row.series; //系列
  10030. this.carInfo.enginedesc = row.displacement; //排量
  10031. this.carInfo.energyType = row.energyTypes;
  10032. this.carInfo.powerScale = row.powerScale; //功率
  10033. this.chexingdialogVisible = false;
  10034. this.sbdmdialogVisible = false;
  10035. },
  10036. //是否过户事件
  10037. transferFlagChange(e) {
  10038. if (e) {
  10039. this.transferDateShow = true;
  10040. this.carInfo.transferDate = this.carInfo.issueDate;
  10041. } else {
  10042. this.transferDateShow = false;
  10043. this.carInfo.transferDate = "";
  10044. }
  10045. },
  10046. //影像上传
  10047. drivingupload(file, imageIdList, imgurl, type) {
  10048. let that = this;
  10049. let size = file.size / 1024 / 1024 < 5;
  10050. const isJPG =
  10051. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  10052. if (!size) {
  10053. this.$message.error("上传图片大小不能超过 5MB!");
  10054. this[imgurl] = [];
  10055. return false;
  10056. }
  10057. if (!isJPG) {
  10058. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  10059. this[imgurl] = [];
  10060. return false;
  10061. }
  10062. this[imgurl].push(file);
  10063. var file = file.raw;
  10064. const params = new FormData(); // 声明formData数据类型
  10065. params.append("multipartFile", file);
  10066. params.append("type", "image");
  10067. this.$api.letter.uploadFile(params).then((res) => {
  10068. if (res.code == "200") {
  10069. if (this[imageIdList].some((v) => v.imageType == type)) {
  10070. this[imageIdList].map((val) => {
  10071. if (val.imageType == type) {
  10072. val.imageId = res.data.id;
  10073. }
  10074. });
  10075. } else {
  10076. this[imageIdList].push({
  10077. imageId: res.data.id,
  10078. imageType: type,
  10079. });
  10080. }
  10081. }
  10082. });
  10083. },
  10084. policydrivingupload(file, val) {
  10085. // this.policyNumberForm[val + 'List'] = []
  10086. switch (val) {
  10087. case "jqPolicy":
  10088. this.policyNumberForm.jqPolicyList = [];
  10089. break;
  10090. case "syPolicy":
  10091. this.policyNumberForm.syPolicyList = [];
  10092. break;
  10093. case "noPolicy":
  10094. this.policyNumberForm.noPolicyList = [];
  10095. break;
  10096. case "jqSign":
  10097. this.policyNumberForm.jqSignList = [];
  10098. break;
  10099. default:
  10100. break;
  10101. }
  10102. var file = file.raw;
  10103. const params = new FormData(); // 声明formData数据类型
  10104. params.append("multipartFile", file);
  10105. params.append("type", "file");
  10106. this.$api.letter.uploadFile(params).then((res) => {
  10107. if (res.code == "200") {
  10108. res.data.name = res.data.fileName;
  10109. this.policyNumberForm[val + "List"].push(res.data);
  10110. }
  10111. });
  10112. },
  10113. handleRemove1(file, imageIdList, imgList) {
  10114. this[imageIdList].map((ele, index) => {
  10115. if (file.imageId === ele.imageId) {
  10116. this[imageIdList].splice(index, 1);
  10117. }
  10118. return ele;
  10119. });
  10120. if (file.imageId) {
  10121. this[imgList].map((ele, index) => {
  10122. if (file.imageId === ele.imageId) {
  10123. this[imgList].splice(index, 1);
  10124. }
  10125. return ele;
  10126. });
  10127. } else {
  10128. this[imgList].map((ele, index) => {
  10129. if (file.uid === ele.uid) {
  10130. this[imgList].splice(index, 1);
  10131. }
  10132. return ele;
  10133. });
  10134. }
  10135. },
  10136. compress(img, width, height, ratio) {
  10137. var canvas, ctx, img64;
  10138. canvas = document.createElement("canvas");
  10139. canvas.width = width;
  10140. canvas.height = height;
  10141. ctx = canvas.getContext("2d");
  10142. ctx.drawImage(img, 0, 0, width, height);
  10143. img64 = canvas.toDataURL("image/jpeg", ratio);
  10144. return img64;
  10145. },
  10146. base64ToFile(base64, fileName) {
  10147. let data = base64.split(",");
  10148. let type = data[0].match(/:(.*?);/)[1]; // let suffix = type.split('/')[1];
  10149. const bstr = window.atob(data[1]);
  10150. let n = bstr.length;
  10151. const u8arr = new Uint8Array(n);
  10152. while (n--) {
  10153. u8arr[n] = bstr.charCodeAt(n);
  10154. } // const file =  new File([u8arr], `${fileName}.${suffix}`, {
  10155. const file = new File([u8arr], `${fileName}`, {
  10156. type: type,
  10157. });
  10158. return file;
  10159. },
  10160. carfrontChange(file) {
  10161. //选择行驶证正面
  10162. let that = this;
  10163. let size = file.size / 1024 / 1024 < 5;
  10164. const isJPG =
  10165. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  10166. if (!size) {
  10167. this.$message.error("上传图片大小不能超过 5MB!");
  10168. return false;
  10169. }
  10170. if (!isJPG) {
  10171. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  10172. return false;
  10173. }
  10174. // let name=file.raw.name
  10175. //       var image = new Image();
  10176. //       image.src = window.URL.createObjectURL(file.raw);
  10177. //       that.carfrontImg =  image.src
  10178. //       image.onload = function(){
  10179. //         let aaa= that.base64ToFile(that.compress(image, 500, 400, 0.7),name)
  10180. // that.carfrontImg = image.src;
  10181. // const params = new FormData(); // 声明formData数据类型
  10182. // params.append("multipartFile", aaa);
  10183. // params.append("type", "image");
  10184. // that.$api.letter.uploadFile(params).then(res => {
  10185. // if (res.code == "200") {
  10186. // that.CarFrontFile = aaa;//文件流
  10187. // if (that.imageList1.some(v => v.imageType == 'C01')) {
  10188. // that.imageList1.map(val => {
  10189. // if (val.imageType == 'C01') {
  10190. // val.imageId = res.data.id;
  10191. // }
  10192. // })
  10193. // } else {
  10194. // that.imageList1.push({
  10195. // imageId: res.data.id,
  10196. // imageType: "C01",
  10197. // })
  10198. // }
  10199. // } else {
  10200. // that.$message({ message: res.msg, type: "warning" });
  10201. // }
  10202. // });
  10203. // }
  10204. var file = file.raw;
  10205. let files = window.URL.createObjectURL(file); //转临时路径
  10206. this.carfrontImg = files;
  10207. const params = new FormData(); // 声明formData数据类型
  10208. params.append("multipartFile", file);
  10209. params.append("type", "image");
  10210. this.$api.letter.uploadFile(params).then((res) => {
  10211. if (res.code == "200") {
  10212. this.CarFrontFile = file; //文件流
  10213. if (this.imageList1.some((v) => v.imageType == "C01")) {
  10214. this.imageList1.map((val) => {
  10215. if (val.imageType == "C01") {
  10216. val.imageId = res.data.id;
  10217. }
  10218. });
  10219. } else {
  10220. this.imageList1.push({
  10221. imageId: res.data.id,
  10222. imageType: "C01",
  10223. });
  10224. }
  10225. } else {
  10226. this.$message({ message: res.msg, type: "warning" });
  10227. }
  10228. });
  10229. },
  10230. carbackChange(file) {
  10231. let that = this;
  10232. let size = file.size / 1024 / 1024 < 2;
  10233. const isJPG =
  10234. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  10235. if (!size) {
  10236. this.$message.error("上传图片大小不能超过 5MB!");
  10237. return false;
  10238. }
  10239. if (!isJPG) {
  10240. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  10241. return false;
  10242. }
  10243. // let name=file.raw.name
  10244. //       var image = new Image();
  10245. //       image.src = window.URL.createObjectURL(file.raw);
  10246. //       image.onload = function(){
  10247. //         let aaa= that.base64ToFile(that.compress(image, 500, 400, 0.7),name)
  10248. // that.carbackImg = image.src;
  10249. // const params = new FormData(); // 声明formData数据类型
  10250. // params.append("multipartFile", aaa);
  10251. // params.append("type", "image");
  10252. // that.$api.letter.uploadFile(params).then(res => {
  10253. // if (res.code == "200") {
  10254. // that.CarBackFile = aaa;//文件流
  10255. // if (that.imageList1.some(v => v.imageType == 'D01')) {
  10256. // that.imageList1.map(val => {
  10257. // if (val.imageType == 'D01') {
  10258. // val.imageId = res.data.id;
  10259. // }
  10260. // })
  10261. // } else {
  10262. // that.imageList1.push({
  10263. // imageId: res.data.id,
  10264. // imageType: "D01",
  10265. // })
  10266. // }
  10267. // } else {
  10268. // that.$message({ message: res.msg, type: "warning" });
  10269. // }
  10270. // });
  10271. // }
  10272. //选择行驶证反面
  10273. var file = file.raw;
  10274. let files = window.URL.createObjectURL(file); //转临时路径
  10275. this.carbackImg = files;
  10276. const params = new FormData(); // 声明formData数据类型
  10277. params.append("multipartFile", file);
  10278. params.append("type", "image");
  10279. this.$api.letter.uploadFile(params).then((res) => {
  10280. if (res.code == "200") {
  10281. this.CarBackFile = file;
  10282. if (this.imageList1.some((v) => v.imageType == "D01")) {
  10283. this.imageList1.map((val) => {
  10284. if (val.imageType == "D01") {
  10285. val.imageId = res.data.id;
  10286. }
  10287. });
  10288. } else {
  10289. this.imageList1.push({
  10290. imageId: res.data.id,
  10291. imageType: "D01",
  10292. });
  10293. }
  10294. } else {
  10295. this.$message({ message: res.msg, type: "warning" });
  10296. }
  10297. });
  10298. },
  10299. userfrontChange(file) {
  10300. let that = this;
  10301. let size = file.size / 1024 / 1024 < 5;
  10302. const isJPG =
  10303. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  10304. if (!size) {
  10305. this.$message.error("上传图片大小不能超过 5MB!");
  10306. return false;
  10307. }
  10308. if (!isJPG) {
  10309. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  10310. return false;
  10311. }
  10312. // let name=file.raw.name
  10313. //       var image = new Image();
  10314. //       image.src = window.URL.createObjectURL(file.raw);
  10315. //       image.onload = function(){
  10316. //         let aaa= that.base64ToFile(that.compress(image, 500, 400, 0.7),name)
  10317. // that.userfrontImg = image.src;
  10318. // const params = new FormData(); // 声明formData数据类型
  10319. // params.append("multipartFile", aaa);
  10320. // params.append("type", "image");
  10321. // that.$api.letter.uploadFile(params).then(res => {
  10322. // if (res.code == "200") {
  10323. // let type = 'C0' + that.userIndex;
  10324. // if (that['imageList' + that.userIndex].some(v => v.imageType == type)) {
  10325. // that['imageList' + that.userIndex].map(val => {
  10326. // if (val.imageType == type) {
  10327. // val.imageId = res.data.id;
  10328. // }
  10329. // })
  10330. // } else {
  10331. // that['imageList' + that.userIndex].push({
  10332. // imageId: res.data.id,
  10333. // imageType: type,
  10334. // })
  10335. // }
  10336. // that[type + 'File'] = aaa;
  10337. // } else {
  10338. // that.$message({ message: res.msg, type: "warning" });
  10339. // }
  10340. // });
  10341. // }
  10342. //选择身份证正面
  10343. var file = file.raw;
  10344. let files = window.URL.createObjectURL(file); //转链接
  10345. this.userfrontImg = files;
  10346. const params = new FormData(); // 声明formData数据类型
  10347. params.append("multipartFile", file);
  10348. params.append("type", "image");
  10349. this.$api.letter.uploadFile(params).then((res) => {
  10350. if (res.code == "200") {
  10351. let type = "C0" + this.userIndex;
  10352. if (
  10353. this["imageList" + this.userIndex].some((v) => v.imageType == type)
  10354. ) {
  10355. this["imageList" + this.userIndex].map((val) => {
  10356. if (val.imageType == type) {
  10357. val.imageId = res.data.id;
  10358. }
  10359. });
  10360. } else {
  10361. this["imageList" + this.userIndex].push({
  10362. imageId: res.data.id,
  10363. imageType: type,
  10364. });
  10365. }
  10366. this[type + "File"] = file;
  10367. } else {
  10368. this.$message({ message: res.msg, type: "warning" });
  10369. }
  10370. });
  10371. },
  10372. userbackChange(file) {
  10373. let that = this;
  10374. let size = file.size / 1024 / 1024 < 5;
  10375. const isJPG =
  10376. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  10377. if (!size) {
  10378. this.$message.error("上传图片大小不能超过 5MB!");
  10379. return false;
  10380. }
  10381. if (!isJPG) {
  10382. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  10383. return false;
  10384. }
  10385. // let name=file.raw.name
  10386. //       var image = new Image();
  10387. //       image.src = window.URL.createObjectURL(file.raw);
  10388. //       image.onload = function(){
  10389. //         let aaa= that.base64ToFile(that.compress(image, 500, 400, 0.7),name)
  10390. // that.userbackImg = image.src;
  10391. // const params = new FormData(); // 声明formData数据类型
  10392. // params.append("multipartFile", aaa);
  10393. // params.append("type", "image");
  10394. // that.$api.letter.uploadFile(params).then(res => {
  10395. // if (res.code == "200") {
  10396. // let type = 'D0' + that.userIndex;
  10397. // if (that['imageList' + that.userIndex].some(v => v.imageType == type)) {
  10398. // that['imageList' + that.userIndex].map(val => {
  10399. // if (val.imageType == type) {
  10400. // val.imageId = res.data.id;
  10401. // }
  10402. // })
  10403. // } else {
  10404. // that['imageList' + that.userIndex].push({
  10405. // imageId: res.data.id,
  10406. // imageType: type,
  10407. // })
  10408. // }
  10409. // that[type + 'File'] = aaa;
  10410. // } else {
  10411. // that.$message({ message: res.msg, type: "warning" });
  10412. // }
  10413. // });
  10414. // }
  10415. //选择身份证背面
  10416. var file = file.raw;
  10417. let files = window.URL.createObjectURL(file); //转链接
  10418. this.userbackImg = files;
  10419. const params = new FormData(); // 声明formData数据类型
  10420. params.append("multipartFile", file);
  10421. params.append("type", "image");
  10422. this.$api.letter.uploadFile(params).then((res) => {
  10423. if (res.code == "200") {
  10424. let type = "D0" + this.userIndex;
  10425. if (
  10426. this["imageList" + this.userIndex].some((v) => v.imageType == type)
  10427. ) {
  10428. this["imageList" + this.userIndex].map((val) => {
  10429. if (val.imageType == type) {
  10430. val.imageId = res.data.id;
  10431. }
  10432. });
  10433. } else {
  10434. this["imageList" + this.userIndex].push({
  10435. imageId: res.data.id,
  10436. imageType: type,
  10437. });
  10438. }
  10439. this[type + "File"] = file;
  10440. } else {
  10441. this.$message({ message: res.msg, type: "warning" });
  10442. }
  10443. });
  10444. },
  10445. CarOCRdiscern() {
  10446. //car识别
  10447. const loading = this.$loading({
  10448. lock: true,
  10449. text: "Loading",
  10450. spinner: "el-icon-loading",
  10451. background: "rgba(0, 0, 0, 0.7)",
  10452. });
  10453. const params = new FormData(); // 声明formData数据类型
  10454. params.append("image1", this.CarFrontFile);
  10455. params.append("image2", this.CarBackFile);
  10456. this.$api.letter.drivingPermit(params).then((res) => {
  10457. loading.close();
  10458. if (res.msg == "201") {
  10459. this.$message({ message: "请正确选择驾驶证", type: "warning" });
  10460. }
  10461. var carInfo = res.data.carInfo;
  10462. if (carInfo.issueDate) {
  10463. carInfo.issueDate =
  10464. carInfo.issueDate.substring(0, 4) +
  10465. "-" +
  10466. carInfo.issueDate.substring(4, 6) +
  10467. "-" +
  10468. carInfo.issueDate.substring(6, 8);
  10469. }
  10470. if (carInfo.registerDate) {
  10471. carInfo.registerDate =
  10472. carInfo.registerDate.substring(0, 4) +
  10473. "-" +
  10474. carInfo.registerDate.substring(4, 6) +
  10475. "-" +
  10476. carInfo.registerDate.substring(6, 8);
  10477. }
  10478. this.carform.carOwner = carInfo.carOwner; //车主
  10479. this.carform.licenseNo = carInfo.plateNo; //车牌号
  10480. this.carform.modelcname = carInfo.backOcrID; //品牌型号
  10481. this.carform.frameNo = carInfo.vin; //车架号
  10482. this.carform.engineNo = carInfo.engine; //发动机号
  10483. this.carform.registerDate = carInfo.registerDate; //车牌号
  10484. this.carform.issueDate = carInfo.issueDate; //车牌号
  10485. this.carform.grossMass = carInfo.grossMass; //总质量
  10486. this.carform.unladenMass = carInfo.unladenMass; //整备质量
  10487. this.carform.limitLoad = carInfo.limitLoad; //核定载质量
  10488. this.carform.category = carInfo.category; //车辆类型
  10489. this.carform.carnature = carInfo.useNature; //使用性质
  10490. this.carform.vehicleUse = carInfo.vehicleUse; //车辆用途
  10491. this.carform.plateType = carInfo.plateType; //车辆种类
  10492. this.carform.approvedPassengersCapacity =
  10493. carInfo.approvedPassengersCapacity; //核定载客数
  10494. });
  10495. },
  10496. CarOCRconfirm() {
  10497. //传参 carnature
  10498. this.ownerInfo.name = this.carform.carOwner; //车主
  10499. this.carInfo.cartype = "K33";
  10500. this.carInfo.licenseNo = this.carform.licenseNo; //车牌号
  10501. this.carInfo.modelcname = this.carform.modelcname; //品牌型号
  10502. this.carInfo.vinNo = this.carform.frameNo; //车架号
  10503. this.carInfo.frameNo = this.carform.frameNo; //车架号
  10504. this.carInfo.engineNo = this.carform.engineNo; //发动机号
  10505. this.carInfo.seatCount = this.carform.approvedPassengersCapacity; //核定载客数
  10506. this.carInfo.vehicleweight = this.carform.grossMass; //总质量
  10507. this.carInfo.completeKerbMass = this.carform.unladenMass; //整备质量
  10508. this.carInfo.limitLoad = this.carform.limitLoad; //核定载质量
  10509. this.carInfo.cartype = this.carform.category; //车辆类型
  10510. this.carInfo.carnature = this.carform.carnature
  10511. ? this.carform.carnature
  10512. : "02"; //使用性质
  10513. this.carInfo.vehicleUse = this.carform.vehicleUse
  10514. ? this.carform.vehicleUse
  10515. : "05"; //车辆用途
  10516. this.carInfo.cimodelclass = this.carform.plateType; //车辆种类
  10517. if (this.timeformat(this.carform.registerDate) != "NaN-NaN-NaN") {
  10518. this.carInfo.registerDate = this.carform.registerDate; //车牌号
  10519. }
  10520. if (this.timeformat(this.carform.issueDate) != "NaN-NaN-NaN") {
  10521. this.carInfo.issueDate = this.carform.issueDate; //车牌号
  10522. }
  10523. this.uploadcardialogVisible = false;
  10524. },
  10525. handleRemove(e) {
  10526. //删除图片
  10527. this[e] = "";
  10528. switch (this.userIndex) {
  10529. case 0:
  10530. this.carfrontImg = "";
  10531. this.carbackImg = "";
  10532. this.CarFrontFile = ""; // 行驶证正面base64
  10533. this.CarBackFile = ""; // 行驶证背面base64
  10534. break;
  10535. case 2:
  10536. this.userfrontImg = "";
  10537. this.userbackImg = "";
  10538. this.C02File = ""; // 车主正面base64
  10539. this.D02File = ""; // 车主背面base64
  10540. break;
  10541. case 3:
  10542. this.userfrontImg = "";
  10543. this.userbackImg = "";
  10544. this.C03File = ""; // 投保人正面base64
  10545. this.D03File = ""; // 投保人背面base64
  10546. break;
  10547. case 4:
  10548. this.userfrontImg = "";
  10549. this.userbackImg = "";
  10550. this.C04File = ""; // 被保人正面base64
  10551. this.D04File = ""; // 被保人背面base64
  10552. break;
  10553. default:
  10554. }
  10555. },
  10556. //预览图片
  10557. handlePictureCardPreview(img) {
  10558. this.ProViewImg = img;
  10559. this.showViewer = true;
  10560. },
  10561. // 关闭查看器
  10562. closeViewer() {
  10563. this.showViewer = false;
  10564. },
  10565. uploaduser(index) {
  10566. this.userIndex = index;
  10567. this.uploaduserdialogVisible = true;
  10568. },
  10569. userOCRdiscern() {
  10570. //OCR识别
  10571. switch (this.userIndex) {
  10572. case 2:
  10573. const params1 = new FormData(); // 声明formData数据类型
  10574. params1.append("image1", this.C02File);
  10575. params1.append("image2", this.D02File);
  10576. this.userOCRjoggle(params1);
  10577. break;
  10578. case 3:
  10579. const params2 = new FormData(); // 声明formData数据类型
  10580. params2.append("image1", this.C03File);
  10581. params2.append("image2", this.D03File);
  10582. this.userOCRjoggle(params2);
  10583. break;
  10584. case 4:
  10585. const params3 = new FormData(); // 声明formData数据类型
  10586. params3.append("image1", this.C04File);
  10587. params3.append("image2", this.D04File);
  10588. this.userOCRjoggle(params3);
  10589. break;
  10590. default:
  10591. }
  10592. },
  10593. userOCRjoggle(param) {
  10594. const loading = this.$loading({
  10595. lock: true,
  10596. text: "Loading",
  10597. spinner: "el-icon-loading",
  10598. background: "rgba(0, 0, 0, 0.7)",
  10599. });
  10600. this.$api.letter.idCard(param).then((res) => {
  10601. loading.close();
  10602. if (res.msg == "201") {
  10603. this.$message({ message: "请正确选择身份证", type: "warning" });
  10604. }
  10605. var customerInfo = res.data.customerInfo;
  10606. if (customerInfo) {
  10607. this.ownerInfoform.name = customerInfo.name;
  10608. if (customerInfo.identifyType == "01") {
  10609. this.ownerInfoform.identifyType = "身份证";
  10610. } else {
  10611. this.ownerInfoform.identifyType = "";
  10612. }
  10613. this.ownerInfoform.identifyNumber = customerInfo.identifyNumber;
  10614. this.ownerInfoform.gender = customerInfo.identifyIssuedCom;
  10615. this.ownerInfoform.addr = customerInfo.addr;
  10616. if (customerInfo.identifyNumber) {
  10617. this.ownerInfoform.age = getAgeByIdCard(
  10618. customerInfo.identifyNumber
  10619. );
  10620. }
  10621. if (
  10622. customerInfo.identifyValidDate ||
  10623. customerInfo.identifyValidEndDate
  10624. ) {
  10625. this.ownerInfoform.identifyValidDate =
  10626. customerInfo.identifyValidDate.substring(0, 4) +
  10627. "-" +
  10628. customerInfo.identifyValidDate.substring(4, 6) +
  10629. "-" +
  10630. customerInfo.identifyValidDate.substring(6, 8);
  10631. this.ownerInfoform.identifyValidEndDate =
  10632. customerInfo.identifyValidEndDate.substring(0, 4) +
  10633. "-" +
  10634. customerInfo.identifyValidEndDate.substring(4, 6) +
  10635. "-" +
  10636. customerInfo.identifyValidEndDate.substring(6, 8);
  10637. if (customerInfo.identifyValidEndDate == "长期") {
  10638. this.ownerInfoform.identifyValidEndDate = "9999-12-31";
  10639. }
  10640. }
  10641. // let values = addressCode(this.ownerInfoform.addr);
  10642. // this.ownerInfoform.province = codeToText[values[0]]
  10643. // this.ownerInfoform.city = codeToText[values[1]]
  10644. // this.ownerInfoform.county = codeToText[values[2]]
  10645. }
  10646. });
  10647. },
  10648. userOCRconfirm() {
  10649. //传参
  10650. switch (this.userIndex) {
  10651. case 2:
  10652. // this.selectedOptions1 = addressCode(this.ownerInfoform.addr);
  10653. this.ownerInfo = JSON.parse(JSON.stringify(this.ownerInfoform));
  10654. break;
  10655. case 3:
  10656. // this.selectedOptions2 = addressCode(this.ownerInfoform.addr);
  10657. this.policyHolderInfo = JSON.parse(
  10658. JSON.stringify(this.ownerInfoform)
  10659. );
  10660. break;
  10661. case 4:
  10662. // this.selectedOptions3 = addressCode(this.ownerInfoform.addr);
  10663. this.insuredPersonInfo = JSON.parse(
  10664. JSON.stringify(this.ownerInfoform)
  10665. );
  10666. break;
  10667. }
  10668. this.uploaduserdialogVisible = false;
  10669. },
  10670. closeDialog(index) {
  10671. // 0:车辆 1:车主 2:投保人 3:被保人
  10672. switch (index) {
  10673. case 0:
  10674. this.carfrontImg = "";
  10675. this.carbackImg = "";
  10676. this.CarFrontFile = ""; // 行驶证正面base64
  10677. this.CarBackFile = ""; // 行驶证背面base64
  10678. Object.keys(this.carform).forEach((key) => {
  10679. this.carform[key] = "";
  10680. });
  10681. break;
  10682. case 2:
  10683. this.userfrontImg = "";
  10684. this.userbackImg = "";
  10685. this.C02File = ""; // 车主正面base64
  10686. this.D02File = ""; // 车主背面base64
  10687. Object.keys(this.ownerInfoform).forEach((key) => {
  10688. this.ownerInfoform[key] = "";
  10689. });
  10690. break;
  10691. case 3:
  10692. this.userfrontImg = "";
  10693. this.userbackImg = "";
  10694. this.C03File = ""; // 投保人正面base64
  10695. this.D03File = ""; // 投保人背面base64
  10696. Object.keys(this.ownerInfoform).forEach((key) => {
  10697. this.ownerInfoform[key] = "";
  10698. });
  10699. break;
  10700. case 4:
  10701. this.userfrontImg = "";
  10702. this.userbackImg = "";
  10703. this.C04File = ""; // 被保人正面base64
  10704. this.D04File = ""; // 被保人背面base64
  10705. Object.keys(this.ownerInfoform).forEach((key) => {
  10706. this.ownerInfoform[key] = "";
  10707. });
  10708. break;
  10709. case 5:
  10710. this.businessImg = "";
  10711. // this.C04File = ''; // 被保人正面base64
  10712. // this.D04File = ''; // 被保人背面base64
  10713. // Object.keys(this.ownerInfoform).forEach((key) => {
  10714. // this.ownerInfoform[key] = '';
  10715. // });
  10716. break;
  10717. default:
  10718. }
  10719. },
  10720. bjdpreview(id) {
  10721. let params = {
  10722. companyId: id,
  10723. };
  10724. this.$api.letter.getByCompanyId(params).then((res) => {
  10725. if (res.code == "200") {
  10726. var data = res.data;
  10727. if (data.kindinfo != null) {
  10728. data.kindinfo.map((ele, index) => {
  10729. switch (ele.kindCode) {
  10730. case "A":
  10731. if (ele.amount == 1) {
  10732. ele.amount = "投保";
  10733. } else {
  10734. ele.amount = ele.amount;
  10735. }
  10736. break;
  10737. case "D4":
  10738. case "SY_FJ_YBW2":
  10739. ele.unitAmount = this.toChinesNum(ele.unitAmount);
  10740. break;
  10741. case "MJ1":
  10742. case "MJ2":
  10743. case "MJ3":
  10744. case "MJ4":
  10745. ele.deductibleRate = ele.deductibleRate + "%";
  10746. break;
  10747. default:
  10748. ele.amount = this.toChinesNum(ele.amount);
  10749. }
  10750. return ele;
  10751. });
  10752. }
  10753. data.logoImg = this.iconfftter(res.data.inscompany);
  10754. this.queryOrders = data;
  10755. this.$api.letter.getThemeByUserId(this.userId).then((res) => {
  10756. if (res.code == 200) {
  10757. if (res.data[0] == "GD") {
  10758. this.$refs.quotationDialogPro.setBackupVisible(true);
  10759. } else {
  10760. this.$refs.quotationDialog.setBackupVisible(true);
  10761. }
  10762. }
  10763. });
  10764. // if (
  10765. // this.$store.state.user.roles.managementSource &&
  10766. // this.$store.state.user.roles.managementSource == "3"
  10767. // ) {
  10768. // this.$refs.quotationDialogPro.setBackupVisible(true);
  10769. // } else {
  10770. // this.$refs.quotationDialog.setBackupVisible(true);
  10771. // }
  10772. }
  10773. });
  10774. },
  10775. //返回上一步
  10776. Back() { },
  10777. carcode(id, item) {
  10778. this.$api.letter.getQrCode(id).then((res) => {
  10779. if (res.code == "200") {
  10780. this.inscompany = res.data.inscompany; //保险公司
  10781. this.sumpremium = res.data.sumpremium; //总价
  10782. this.licenseNo = res.data.cPlateNo; //车牌号
  10783. this.applyName = res.data.cInsuredNme; //车主
  10784. this.jqpremium = res.data.jqpremium; //交强
  10785. this.sypremium = res.data.sypremium; //商业
  10786. this.taxamount = res.data.taxamount; //车船税
  10787. this.jypremium = res.data.jypremium; //驾意险
  10788. this.jqstartdate = res.data.jqStartDate; //交强起保日期
  10789. this.systartdate = res.data.syStartDate; //商业起保日期
  10790. // this.mobile = res.data.applyinfo.mobile;//投保人手机号
  10791. let qrCodeUrl = res.data.qrCodeUrl;
  10792. this.$api.letter.getThemeByUserId(this.userId).then((res) => {
  10793. if (res.code == 200) {
  10794. if (res.data[0] == "GD") {
  10795. this.codedialogVisiblePro = true;
  10796. this.qrcodeWidth = "154";
  10797. this.qrcodeHeight = "154";
  10798. } else {
  10799. this.codedialogVisible = true;
  10800. }
  10801. this.$nextTick(function () {
  10802. var _that = this;
  10803. switch (_that.inscompany) {
  10804. case "太平财险":
  10805. let anresult = qrCodeUrl.replace(/[\r\n]/g, "");
  10806. let animgBase64 = `data:image/png;base64,${anresult}`;
  10807. base64ToPath(animgBase64).then((path) => {
  10808. this.paycodeimg = path;
  10809. });
  10810. break;
  10811. case "华泰财险":
  10812. switch (item.apiType) {
  10813. case 1:
  10814. this.creatQrCode(qrCodeUrl);
  10815. break;
  10816. case 2:
  10817. let anresult = qrCodeUrl.replace(/[\r\n]/g, "");
  10818. let animgBase64 = `data:image/png;base64,${anresult}`;
  10819. base64ToPath(animgBase64).then((path) => {
  10820. this.paycodeimg = path;
  10821. });
  10822. break;
  10823. }
  10824. break;
  10825. case "大家财险":
  10826. switch (item.apiType) {
  10827. case 1:
  10828. this.creatQrCode(qrCodeUrl);
  10829. break;
  10830. case 2:
  10831. let anresult = qrCodeUrl.replace(/[\r\n]/g, "");
  10832. let animgBase64 = `data:image/png;base64,${anresult}`;
  10833. base64ToPath(animgBase64).then((path) => {
  10834. this.paycodeimg = path;
  10835. });
  10836. break;
  10837. }
  10838. break;
  10839. default:
  10840. this.creatQrCode(qrCodeUrl);
  10841. }
  10842. });
  10843. }
  10844. });
  10845. } else {
  10846. this.$message({ message: res.msg, type: "warning" });
  10847. }
  10848. });
  10849. },
  10850. //同步
  10851. synchronization() {
  10852. this.systartDate = this.jqstartDate;
  10853. this.syendDate = this.jqendDate;
  10854. },
  10855. add() {
  10856. this.obtainProtocol();
  10857. if (this.isLetter == "1") {
  10858. this.$router.push({ path: "/letter/letter" });
  10859. }
  10860. for (let key in this.ownerInfo) {
  10861. this.ownerInfo[key] = "";
  10862. }
  10863. for (let key in this.policyHolderInfo) {
  10864. this.policyHolderInfo[key] = "";
  10865. }
  10866. for (let key in this.insuredPersonInfo) {
  10867. this.insuredPersonInfo[key] = "";
  10868. }
  10869. this.vehicleAndVesselTaxForm = {
  10870. taxRelifFlag: "1",
  10871. taxpayerIdentifier: "01",
  10872. };
  10873. this.ownerInfo.provinceData = [];
  10874. this.insuredPersonInfo.provinceData = [];
  10875. this.policyHolderInfo.provinceData = [];
  10876. this.carInfo = JSON.parse(localStorage.getItem("carInfo"));
  10877. this.insureList = JSON.parse(localStorage.getItem("insureList"));
  10878. this.sychecked = false;
  10879. this.yonganchecked = false;
  10880. this.zhongmeichecked = false;
  10881. this.transferDateShow = false;
  10882. (this.tbczcarShow = true), //投保人同车主
  10883. // this.bbczcarShow = false, //被保人同车主
  10884. (this.bbtbcarShow = true), //被保人同投保人
  10885. // this.$refs.imageDialog.emptyList()
  10886. this.imageList1 = [];
  10887. this.imageList2 = [];
  10888. this.imageList3 = [];
  10889. this.imageList4 = [];
  10890. this.imageList5 = [];
  10891. this.imageList6 = [];
  10892. this.imgList1 = [];
  10893. this.imgList2 = [];
  10894. this.imgList3 = [];
  10895. this.imgList4 = [];
  10896. this.imgList5 = [];
  10897. this.imgList6 = [];
  10898. this.imgList7 = [];
  10899. this.imgList8 = [];
  10900. this.imgList9 = [];
  10901. this.imgList10 = [];
  10902. this.imgList11 = [];
  10903. this.imgList12 = [];
  10904. this.imgList13 = [];
  10905. this.imgList14 = [];
  10906. this.imgList15 = [];
  10907. this.imgList16 = [];
  10908. this.imgList17 = [];
  10909. this.imgList18 = [];
  10910. this.imgList19 = [];
  10911. this.imgList20 = [];
  10912. this.imgList21 = [];
  10913. this.imgList22 = [];
  10914. this.imgList23 = [];
  10915. this.imgList24 = [];
  10916. // 清空保险公司选中的意外险
  10917. this.zijintemplateSelection = "";
  10918. this.zhongantemplateSelection = "";
  10919. this.hengbangtemplateSelection = "";
  10920. this.taipingtemplateSelection = "";
  10921. this.insuranceHN = "";
  10922. this.renshoutemplateSelection = "";
  10923. this.dajiatemplateSelection = "";
  10924. this.accidentForm = {
  10925. fen: "1",
  10926. premium: 0,
  10927. };
  10928. this.accidentFormHN = {
  10929. allQuantity: "1",
  10930. quantity: "1",
  10931. };
  10932. this.hengbangaccidentalDrivingVo = {};
  10933. this.huanongaccidentalDrivingVo = {};
  10934. this.taipingaccidentalDrivingVo = {};
  10935. this.zhongmeiaccidentalDrivingVo = {};
  10936. this.accidentalDrivingVo = [];
  10937. this.zhonganaccidentalDrivingVo = {};
  10938. this.renshouaccidentalDrivingVo = {};
  10939. this.anshengaccidentalDrivingVo = {};
  10940. this.dajiaaccidentalDrivingVo = {};
  10941. // this.selectedOptions1 = [];
  10942. // this.selectedOptions2 = [];
  10943. // this.selectedOptions3 = [];
  10944. this.orderno = "";
  10945. this.quoteno = "";
  10946. this.lastCompanyId = "";
  10947. this.HistoryList = [];
  10948. this.jqstartDate = this.transformTime1();
  10949. this.jqendDate = this.oneYearPast1(this.jqstartDate);
  10950. this.systartDate = this.transformTime1();
  10951. this.syendDate = this.oneYearPast1(this.jqstartDate);
  10952. this.policyNumberForm = {
  10953. jqpolicyno: "",
  10954. sypolicyno: "",
  10955. jypolicyno: "",
  10956. jqpremium: "",
  10957. sypremium: "",
  10958. jypremium: "",
  10959. taxamount: "",
  10960. commissionFeevalue: "",
  10961. otherFeevalue: "",
  10962. jqSuperviseCostsProportion: "",
  10963. sySuperviseCostsProportion: "",
  10964. noSuperviseCostsProportion: "",
  10965. jqOtherCostsProportion: "",
  10966. syOtherCostsProportion: "",
  10967. noOtherCostsProportion: "",
  10968. jqReceivableProportion: "",
  10969. syReceivableProportion: "",
  10970. noReceivableProportion: "",
  10971. jqPolicyList: [],
  10972. syPolicyList: [],
  10973. jqSignList: [],
  10974. noPolicyList: [],
  10975. noCostsProportion: '',
  10976. jqCostsProportion: '',
  10977. syCostsProportion: '',
  10978. };
  10979. },
  10980. toChinesNum(num) {
  10981. if (num.toString().length == 4) {
  10982. let overQian = Math.floor(num / 1000);
  10983. let result = overQian + "千";
  10984. return result;
  10985. } else {
  10986. let overWan = Math.floor(num / 10000);
  10987. let result = overWan + "万";
  10988. return result;
  10989. }
  10990. },
  10991. reportDrop(event) {
  10992. event.preventDefault();
  10993. event.stopPropagation();
  10994. },
  10995. tabLiScroll(id, idx) {
  10996. this.tabLiIndex = idx;
  10997. document.getElementById(id).scrollIntoView({ behavior: "smooth" });
  10998. },
  10999. handleScroll(id) {
  11000. document.getElementById(id).scrollIntoView({ behavior: "smooth" });
  11001. },
  11002. },
  11003. };
  11004. </script>
  11005. <style>
  11006. /* .customNotifyClass {
  11007. word-break: break-all;
  11008. width: 600px;
  11009. } */
  11010. </style>
  11011. <style lang="scss" scoped>
  11012. .marginL {
  11013. margin-left: 10px;
  11014. }
  11015. .el-notification {
  11016. width: 600px;
  11017. }
  11018. .styleB .el-upload--picture-card {
  11019. // display: none;
  11020. opacity: 0;
  11021. }
  11022. .ORcodebody {
  11023. height: auto;
  11024. background-color: #fff;
  11025. //background: url(../../../assets/image/group.png) #fff;
  11026. padding: 16px;
  11027. }
  11028. .csstool {
  11029. font-weight: 600;
  11030. color: #606266;
  11031. font-size: 14px;
  11032. margin: 0 20px;
  11033. span {
  11034. margin-right: 5px;
  11035. }
  11036. }
  11037. .ORcode {
  11038. width: 100%;
  11039. height: auto;
  11040. display: flex;
  11041. justify-content: center;
  11042. align-items: center;
  11043. padding: 30px;
  11044. box-sizing: border-box;
  11045. &>div {
  11046. width: 176px;
  11047. height: 176px;
  11048. border: 1px solid var(--themeColor);
  11049. border-radius: 5px;
  11050. }
  11051. }
  11052. .ORtitle {
  11053. width: 100%;
  11054. padding-bottom: 20px;
  11055. box-sizing: border-box;
  11056. &>div {
  11057. width: 100%;
  11058. margin: 10px 0;
  11059. font-size: 14px;
  11060. &>span {
  11061. &:nth-child(1) {
  11062. color: #868b98;
  11063. text-align: end;
  11064. width: 150px;
  11065. }
  11066. &:nth-child(2) {
  11067. color: #333333;
  11068. }
  11069. }
  11070. }
  11071. }
  11072. .Risk {
  11073. width: 100%;
  11074. height: auto;
  11075. display: flex;
  11076. flex-direction: column;
  11077. align-items: center;
  11078. font-size: 12px;
  11079. }
  11080. .dis {
  11081. display: flex;
  11082. }
  11083. .align {
  11084. align-items: center;
  11085. }
  11086. .jus {
  11087. justify-content: space-between;
  11088. }
  11089. .shangyexian {
  11090. padding-left: 100px;
  11091. }
  11092. .headertotal {
  11093. padding: 30px;
  11094. }
  11095. .my-label {
  11096. background: #e1f3d8;
  11097. }
  11098. .my-content {
  11099. background: #fde2e2;
  11100. color: aqua;
  11101. }
  11102. .el-button--mini {
  11103. padding: 5px;
  11104. }
  11105. #qqq {
  11106. background-color: #111;
  11107. width: 300px;
  11108. height: 300px;
  11109. margin: 0 auto;
  11110. position: relative;
  11111. }
  11112. #qrCode {
  11113. display: inline-block;
  11114. margin: 0 auto;
  11115. position: relative;
  11116. top: 15%;
  11117. img {
  11118. width: 200px;
  11119. height: 200px;
  11120. background-color: #fff;
  11121. padding: 6px;
  11122. }
  11123. }
  11124. .code {
  11125. box-sizing: border-box;
  11126. display: flex;
  11127. flex-direction: column;
  11128. justify-content: space-between;
  11129. align-items: center;
  11130. &>span {
  11131. margin-bottom: 10px;
  11132. }
  11133. }
  11134. .code_name {
  11135. width: 350px;
  11136. display: flex;
  11137. justify-content: space-between;
  11138. align-items: center;
  11139. font-weight: bold;
  11140. &>span {
  11141. &:nth-child(1) {
  11142. color: #979797;
  11143. width: 120px;
  11144. text-align: right;
  11145. }
  11146. &:nth-child(2) {
  11147. color: #2d2d2d;
  11148. width: 120px;
  11149. text-align: left;
  11150. }
  11151. }
  11152. }
  11153. .header {
  11154. font-size: 18px;
  11155. font-weight: bold;
  11156. }
  11157. .body {
  11158. border-top: none;
  11159. padding-bottom: 100px;
  11160. box-sizing: border-box;
  11161. }
  11162. .u-f-ac {
  11163. -webkit-box-align: center;
  11164. align-items: center;
  11165. padding: 10px;
  11166. }
  11167. .bodyTitle {
  11168. height: 45px;
  11169. background: #f3f3f3;
  11170. border: 1px solid #dddddd;
  11171. line-height: 45px;
  11172. padding: 0 20px;
  11173. box-sizing: border-box;
  11174. }
  11175. .start {
  11176. justify-content: flex-start;
  11177. }
  11178. .end {
  11179. justify-content: flex-end;
  11180. }
  11181. .descriptions {
  11182. padding: 20px;
  11183. box-sizing: border-box;
  11184. display: flex;
  11185. flex-direction: column;
  11186. }
  11187. .bodys {
  11188. display: flex;
  11189. justify-content: space-between;
  11190. align-items: center;
  11191. flex-wrap: wrap;
  11192. }
  11193. .bodys1 {
  11194. display: flex;
  11195. justify-content: center;
  11196. align-items: center;
  11197. flex-wrap: wrap;
  11198. }
  11199. .widths {
  11200. width: 230px;
  11201. }
  11202. .widths1 {
  11203. width: 300px;
  11204. }
  11205. .back {
  11206. color: #333333;
  11207. // font-weight: 700;
  11208. }
  11209. .home {
  11210. // padding-left: 10px;
  11211. box-sizing: border-box;
  11212. padding-bottom: 10px;
  11213. border-bottom: 1px solid #eef1f6;
  11214. &>span {
  11215. margin-right: 10px;
  11216. }
  11217. }
  11218. .hovers {
  11219. margin: 10px 0;
  11220. cursor: pointer;
  11221. padding: 10px 0;
  11222. box-sizing: border-box;
  11223. border-bottom: 1px solid #f2f2f2;
  11224. .offer-time {
  11225. margin: 20px 0 0px 100px;
  11226. padding: 10px;
  11227. background: rgba(45, 77, 137, 0.06);
  11228. &>span {
  11229. margin: 0 10px;
  11230. }
  11231. }
  11232. }
  11233. /* 内容待定 */
  11234. .coll {
  11235. font-size: 14px;
  11236. }
  11237. .display {
  11238. display: flex;
  11239. justify-content: center;
  11240. align-items: center;
  11241. box-sizing: border-box;
  11242. }
  11243. .black {
  11244. color: #000;
  11245. }
  11246. .gray {
  11247. color: #999;
  11248. }
  11249. .OCR {
  11250. font-weight: bold;
  11251. color: #333;
  11252. margin: 20px;
  11253. }
  11254. .slot {
  11255. position: absolute;
  11256. width: 100%;
  11257. height: 100%;
  11258. left: 0;
  11259. top: 0;
  11260. cursor: default;
  11261. text-align: center;
  11262. color: #fff;
  11263. opacity: 0;
  11264. font-size: 20px;
  11265. background-color: rgba(0, 0, 0, 0.5);
  11266. transition: opacity 0.3s;
  11267. display: flex;
  11268. justify-content: center;
  11269. align-items: center;
  11270. &>i {
  11271. margin: 10px;
  11272. color: #fff;
  11273. font-size: 30px;
  11274. font-weight: bold;
  11275. cursor: pointer;
  11276. }
  11277. &:hover {
  11278. opacity: 1;
  11279. }
  11280. }
  11281. .companyhead {
  11282. width: 100%;
  11283. margin: 0 auto;
  11284. padding: 15px 10px;
  11285. color: #333;
  11286. font-weight: bold;
  11287. font-size: 14px;
  11288. background-color: #f7f7f9;
  11289. }
  11290. .position-left {
  11291. width: calc(100% - 220px);
  11292. }
  11293. .position-collapse-left {
  11294. width: calc(100% - 80px);
  11295. }
  11296. .footer {
  11297. position: fixed;
  11298. bottom: 0;
  11299. right: 0;
  11300. background-color: #fff;
  11301. z-index: 9;
  11302. padding: 20px;
  11303. box-sizing: border-box;
  11304. box-shadow: 0 0 1px 0 #ccc;
  11305. transition: all 0.1s, box-shadow 0.5s;
  11306. &.shadow {
  11307. box-shadow: 0 -10px 10px -10px #ccc;
  11308. }
  11309. }
  11310. .Enclosure {
  11311. width: 100%;
  11312. background-color: #fff;
  11313. padding: 20px;
  11314. box-sizing: border-box;
  11315. margin-bottom: 15px;
  11316. border-radius: 6px;
  11317. border: 1px solid #ebeef5;
  11318. transition: all 0.2s ease-in-out;
  11319. box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
  11320. }
  11321. .icon-img {
  11322. display: block;
  11323. width: 30px;
  11324. height: 30px;
  11325. }
  11326. .Anchor-link {
  11327. width: 40px;
  11328. background-color: #fff;
  11329. box-shadow: #ccc 0 0px 3px 0;
  11330. border-radius: 6px;
  11331. position: fixed;
  11332. top: 50%;
  11333. right: 0;
  11334. z-index: 99;
  11335. div {
  11336. margin: 5px;
  11337. border-bottom: 1px solid #f2f2f2;
  11338. cursor: pointer;
  11339. display: block;
  11340. }
  11341. }
  11342. .color {
  11343. padding-top: 150px;
  11344. margin-top: -150px;
  11345. }
  11346. .more {
  11347. width: 100%;
  11348. padding: 20px;
  11349. box-sizing: border-box;
  11350. }
  11351. .more-title {
  11352. padding: 15px 10px;
  11353. background-color: #f7f7f9;
  11354. // border-bottom: 1px solid #e3e3e3;
  11355. font-size: 14px;
  11356. }
  11357. .more-data {
  11358. padding: 10px;
  11359. border-bottom: 1px solid #f2f2f2;
  11360. color: #d42426;
  11361. font-size: 14px;
  11362. }
  11363. .Driving-risk {
  11364. padding-left: 100px;
  11365. // padding-top:20px
  11366. }
  11367. .checkbox {
  11368. transform: scale(1.2);
  11369. margin-right: 20px;
  11370. line-height: 32px;
  11371. }
  11372. .insure-long-term {
  11373. display: inline-flex;
  11374. padding-left: 8px;
  11375. padding-right: 8px;
  11376. background: var(--themeColor);
  11377. color: #fff;
  11378. font-size: 12px;
  11379. margin-left: -5px;
  11380. border-radius: 0px 5px 5px 0px;
  11381. cursor: pointer;
  11382. }
  11383. .textareaSty {
  11384. width: 160px;
  11385. height: 210px;
  11386. border: 1px solid #d2d2d2;
  11387. border-radius: 4px;
  11388. img {
  11389. width: 50px;
  11390. height: 50px;
  11391. }
  11392. }
  11393. .image-title {
  11394. width: 100px;
  11395. height: 30px;
  11396. color: #fff;
  11397. text-align: center;
  11398. line-height: 30px;
  11399. font-weight: bold;
  11400. margin-bottom: 15px;
  11401. background: #fc4a1a;
  11402. background: #f2994a;
  11403. /* fallback for old browsers */
  11404. background: -webkit-linear-gradient(to left, #f2c94c, #f2994a);
  11405. /* Chrome 10-25, Safari 5.1-6 */
  11406. background: linear-gradient(to left, #f2c94c, #f2994a);
  11407. /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
  11408. }
  11409. .aaa {
  11410. /deep/ {
  11411. margin-bottom: 20px;
  11412. margin-right: 30px;
  11413. span {
  11414. display: inline-block;
  11415. margin-bottom: 10px;
  11416. }
  11417. .el-upload .el-upload-dragger {
  11418. width: 180px;
  11419. height: 120px;
  11420. border: 1px dashed #c0ccda;
  11421. padding: 0;
  11422. }
  11423. .el-upload-list--picture-card .el-upload-list__item {
  11424. width: 180px;
  11425. height: 120px;
  11426. }
  11427. .el-upload-list__item:first-child {
  11428. margin-top: 0;
  11429. }
  11430. .el-upload--picture-card {
  11431. width: 180px;
  11432. height: 120px;
  11433. }
  11434. .el-upload-list__item {
  11435. width: 180px;
  11436. height: 120px;
  11437. margin: 0 !important;
  11438. display: block !important;
  11439. }
  11440. .el-upload-list--picture-card .el-upload-list__item-thumbnail {
  11441. width: 180px;
  11442. height: 120px;
  11443. }
  11444. }
  11445. }
  11446. .jyxStyle>span {
  11447. display: inline-block;
  11448. text-align: center;
  11449. }
  11450. .tab-style {
  11451. width: 120px;
  11452. li {
  11453. text-align: right;
  11454. padding-right: 20px;
  11455. line-height: 40px;
  11456. cursor: pointer;
  11457. box-sizing: border-box;
  11458. border-right: 1px solid #e2e5eb;
  11459. }
  11460. li:focus {
  11461. background: rgba(212, 36, 38, 0.1);
  11462. border-right: 2px solid var(--themeColor);
  11463. color: var(--themeColor);
  11464. }
  11465. }
  11466. .tabLi-style {
  11467. background: rgba(212, 36, 38, 0.1);
  11468. border-right: 2px solid var(--themeColor);
  11469. color: var(--themeColor);
  11470. }
  11471. .scan-code {
  11472. div {
  11473. margin-top: 10px;
  11474. }
  11475. }
  11476. /* 清除图片上传动画bug */
  11477. /deep/ {
  11478. .proSaomazhifucodeClass .el-dialog__header {
  11479. background: rgba(45, 77, 137, 0.1);
  11480. font-weight: bold;
  11481. }
  11482. .proSaomazhifucodeClass .el-dialog__footer {
  11483. border-top: 1px solid #eef1f6;
  11484. }
  11485. .el-upload-list__item {
  11486. transition: none !important;
  11487. }
  11488. .el-checkbox__input {
  11489. &.is-checked {
  11490. .el-checkbox__inner {
  11491. background-color: #d42426;
  11492. border-color: #d42426;
  11493. }
  11494. }
  11495. }
  11496. .el-checkbox__inner {
  11497. border: 1px solid var(--themeColor);
  11498. &:hover {
  11499. border-color: var(--themeColorHover);
  11500. }
  11501. &:focus {
  11502. border-color: var(--themeColor);
  11503. }
  11504. }
  11505. .el-upload .el-upload-dragger {
  11506. height: 250px;
  11507. width: 400px;
  11508. border: 1px dashed #ced4da;
  11509. }
  11510. // .el-button--warning {
  11511. // color: #fff;
  11512. // background-color: #D42426;
  11513. // border-color: #D42426;
  11514. // &:hover {
  11515. // color: #fff;
  11516. // background-color: #ee6f00ce;
  11517. // border-color: #ee6f00ce;
  11518. // }
  11519. // }
  11520. .el-descriptions-item__label {
  11521. &:not(.is-bordered-label) {
  11522. color: #333;
  11523. }
  11524. }
  11525. // .el-radio__input.is-checked + .el-radio__label {
  11526. // color: #ff7000;
  11527. // }
  11528. // .el-radio__input.is-checked .el-radio__inner {
  11529. // border-color: #ff7000;
  11530. // background: #ff7000;
  11531. // }
  11532. // .el-radio__inner {
  11533. // &:hover {
  11534. // border-color: #ff7000;
  11535. // }
  11536. // }
  11537. // .el-input--small .el-icon-date {
  11538. // color: #ee6f00ce;
  11539. // }
  11540. .el-select {
  11541. width: 100%;
  11542. }
  11543. .el-date-editor.el-input {
  11544. width: 100%;
  11545. }
  11546. .el-cascader--small {
  11547. width: 100%;
  11548. }
  11549. .styleB {
  11550. height: 128px;
  11551. }
  11552. .styleB .el-upload--picture-card {
  11553. display: none;
  11554. }
  11555. .saomazhifucodeClass .el-dialog__body,
  11556. .saomazhifucodeClass .el-dialog__header,
  11557. .saomazhifucodeClass .el-dialog__footer {
  11558. padding: 0;
  11559. background: #f4e9e9;
  11560. }
  11561. .saomazhifucodeClass .el-dialog__body {
  11562. padding: 15px;
  11563. }
  11564. .saomazhifucodeClass .el-dialog__footer {
  11565. background: #f4e9e9;
  11566. padding-bottom: 15px;
  11567. }
  11568. .saomazhifucodeClass .el-dialog__headerbtn {
  11569. margin-top: 10px;
  11570. }
  11571. .zmDriving {
  11572. thead .el-table-column--selection .cell {
  11573. display: none !important;
  11574. }
  11575. }
  11576. .synchronous {
  11577. width: 75px;
  11578. height: 45px;
  11579. line-height: 45px;
  11580. color: #fff;
  11581. cursor: pointer;
  11582. background: url(../../../../src/icon/Union2.png) no-repeat 100%;
  11583. }
  11584. .synchronous:hover {
  11585. background: url(../../../../src/icon/Union1.png) no-repeat 100%;
  11586. }
  11587. .line_style {
  11588. margin-top: 20px;
  11589. }
  11590. .el-input-group__append {
  11591. vertical-align: baseline;
  11592. }
  11593. .pinganTable .el-table__header-wrapper .el-checkbox {
  11594. display: none;
  11595. }
  11596. }
  11597. </style>