KtLetter.vue 435 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728
  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" @change="vehicleUseChange" 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="property">
  218. <el-select v-model="carInfo.property" placeholder="请选择所属性质" @change="getCompanyListProperty">
  219. <el-option :label="item.label" :value="item.value" v-for="(item, index) in propertyoptions"
  220. :key="index" :disabled="propertyDisable(item)"></el-option>
  221. </el-select>
  222. </el-form-item>
  223. </el-col>
  224. <el-col :span="5" :offset="1">
  225. <el-form-item label="注册日期" prop="registerDate">
  226. <el-date-picker v-dateFormat v-model="carInfo.registerDate" :picker-options="pickerOptions"
  227. value-format="yyyy-MM-dd" type="date" placeholder="选择注册日期" placement="bottom-start"></el-date-picker>
  228. </el-form-item>
  229. </el-col>
  230. <el-col :span="5" :offset="1">
  231. <el-form-item label="发证日期" prop="issueDate">
  232. <el-date-picker v-dateFormat v-model="carInfo.issueDate" :picker-options="issueDateOptions" type="date"
  233. placeholder="选择发证日期" value-format="yyyy-MM-dd" placement="bottom-start"></el-date-picker>
  234. </el-form-item>
  235. </el-col>
  236. <el-col :span="5" :offset="1" v-if="transferDateShow">
  237. <el-form-item label="转移登记日期" prop="transferDate">
  238. <el-date-picker v-dateFormat v-model="carInfo.transferDate" :picker-options="pickerOptions" type="date"
  239. placeholder="选择日期" value-format="yyyy-MM-dd" placement="bottom-start"></el-date-picker>
  240. </el-form-item>
  241. </el-col>
  242. </el-row>
  243. </el-form>
  244. </div>
  245. <div class="Enclosure flex f-c back">
  246. <div class="home flex j-s a-c">
  247. <div class="flex j-s a-c color" id="CheZhu">
  248. <img src="../../../../src/icon/车主信息.png" alt class="icon-img" />
  249. <span style="margin-left: 10px">车主信息</span>
  250. </div>
  251. <el-button size="small" type="primary" @click="uploaduser(2)">
  252. <i class="el-icon-camera-solid" style="margin-right: 4px"></i>证件识别
  253. </el-button>
  254. </div>
  255. <el-form class="demo-ruleForm" :model="ownerInfo" ref="ownerInfo" :rules="rules" label-width="130px" size="small"
  256. style="margin-top: 15px" label-position="top">
  257. <el-row style="flex-wrap: wrap; display: flex">
  258. <el-col :span="5">
  259. <el-form-item label="车主姓名" prop="name">
  260. <el-input v-model="ownerInfo.name" placeholder="请输入车主姓名"></el-input>
  261. </el-form-item>
  262. </el-col>
  263. <el-col :span="5" :offset="1">
  264. <el-form-item label="车主类型" >
  265. <el-select v-model="ownerInfo.property" placeholder="车主类型" @change="propertyTpe('ownerInfo')" >
  266. <el-option label="法人" value="0" :disabled="carInfo.property=='1'"></el-option>
  267. <el-option label="个人" value="1" :disabled="carInfo.property=='2'"></el-option>
  268. </el-select>
  269. </el-form-item>
  270. </el-col>
  271. <el-col :span="5" :offset="1">
  272. <el-form-item label="证件类型" prop="identifyType">
  273. <el-select v-model="ownerInfo.identifyType" placeholder="身份证" disabled>
  274. <el-option label="身份证" value="01"></el-option>
  275. <el-option label="统一社会信用代码" value="10"></el-option>
  276. </el-select>
  277. </el-form-item>
  278. </el-col>
  279. <el-col :span="5" :offset="1" v-if="ownerInfo.property=='1'">
  280. <el-form-item label="证件号码" prop="identifyNumber">
  281. <el-input v-model="ownerInfo.identifyNumber" placeholder="请输入证件号码" type="text" maxlength="18"
  282. show-word-limit @blur="identifyblur('ownerInfo')"></el-input>
  283. </el-form-item>
  284. </el-col>
  285. <el-col :span="5" :offset="1" v-if="ownerInfo.property=='0'">
  286. <el-form-item label="证件号码" prop="organizationCode">
  287. <el-input v-model="ownerInfo.organizationCode" placeholder="请输入证件号码" type="text" maxlength="18"
  288. show-word-limit ></el-input>
  289. </el-form-item>
  290. </el-col>
  291. <el-col :span="5" v-if="ownerInfo.property=='0'">
  292. <el-form-item label="注册资金" prop="registeredCapital">
  293. <el-input v-model="ownerInfo.registeredCapital" placeholder="请输入注册资金" type="text"
  294. show-word-limit >
  295. <el-button slot="append">万元</el-button>
  296. </el-input>
  297. </el-form-item>
  298. </el-col>
  299. <el-col :span="5" v-if="ownerInfo.property=='1'">
  300. <el-form-item label="年龄" prop="age">
  301. <el-input v-model="ownerInfo.age" placeholder="请输入年龄" type="text" disabled></el-input>
  302. </el-form-item>
  303. </el-col>
  304. <el-col :span="5" :offset="1" v-if="ownerInfo.property=='1'">
  305. <el-form-item label="性别" prop="gender" v-if="ownerInfo.property=='1'">
  306. <el-select @change="genderChange" v-model="ownerInfo.gender" placeholder="请选择性别">
  307. <el-option label="男" value="男"></el-option>
  308. <el-option label="女" value="女"></el-option>
  309. </el-select>
  310. </el-form-item>
  311. </el-col>
  312. <el-col :span="5" :offset="1">
  313. <el-form-item label="车主手机号" prop="mobile">
  314. <el-input v-model="ownerInfo.mobile" placeholder="请输入车主手机号" type="text" maxlength="11"
  315. @paste.native="handlePaste($event, 'ownerInfo')" show-word-limit></el-input>
  316. </el-form-item>
  317. </el-col>
  318. <el-col :span="5" :offset="1" v-if="ownerInfo.property=='0'">
  319. <el-form-item label="车主座机" prop="tel">
  320. <el-input v-model="ownerInfo.tel" placeholder="请输入车主座机" type="text"
  321. show-word-limit></el-input>
  322. </el-form-item>
  323. </el-col>
  324. <el-col :span="5" :offset="1" v-if="ownerInfo.property=='0'">
  325. <el-form-item label="车主联系人">
  326. <el-input v-model="ownerInfo.legalPerson" placeholder="请输入车主联系人" type="text" maxlength="5" ></el-input>
  327. </el-form-item>
  328. </el-col>
  329. <el-col :span="5" v-if="ownerInfo.property=='0'">
  330. <el-form-item label="联系人证件号码">
  331. <el-input v-model="ownerInfo.leaderIdentifyNumber" placeholder="请输入车主证件号码" type="text" maxlength="18" ></el-input>
  332. </el-form-item>
  333. </el-col>
  334. <el-col :span="5" :offset="1" v-if="ownerInfo.property=='0'">
  335. <el-form-item label="联系人有效期止期" prop="leaderOtherEffectiveDate" class="red-btn">
  336. <el-date-picker v-dateFormat v-model="ownerInfo.leaderOtherEffectiveDate" type="date" value-format="yyyy-MM-dd"
  337. placeholder="选择有效期止期" placement="bottom-start" style="width: calc(100% - 40px)"></el-date-picker>
  338. </el-form-item>
  339. </el-col>
  340. <el-col :span="5" :offset="1" v-if="ownerInfo.property=='0'">
  341. <el-form-item label="省市区" >
  342. <el-cascader v-model="selectedOptions1" :options="areaOption" :props="{ value: 'code',label: 'name',children: 'sub'}"
  343. @change="event => areahandleChange(event, 'ownerInfo')" ></el-cascader>
  344. </el-form-item>
  345. </el-col>
  346. <el-col :span="5" :offset="1">
  347. <el-form-item label="地址" prop="addr">
  348. <el-input v-model="ownerInfo.addr" placeholder="请输入地址" type="text"></el-input>
  349. </el-form-item>
  350. </el-col>
  351. <el-col :span="5" >
  352. <el-form-item label="有效期起期" prop="identifyValidDate">
  353. <el-date-picker v-dateFormat v-model="ownerInfo.identifyValidDate" value-format="yyyy-MM-dd"
  354. :picker-options="pickerOptions" type="date" placeholder="选择有效期起期"
  355. placement="bottom-start"></el-date-picker>
  356. </el-form-item>
  357. </el-col>
  358. <el-col :span="5" :offset="1">
  359. <el-form-item label="有效期止期" prop="identifyValidEndDate">
  360. <el-date-picker v-dateFormat v-model="ownerInfo.identifyValidEndDate" type="date" value-format="yyyy-MM-dd"
  361. placeholder="有效期止期" placement="bottom-start" style="width: calc(100% - 40px)"></el-date-picker>
  362. <div class="insure-long-term" @click="insureLongterm('ownerInfo')">
  363. 长期
  364. </div>
  365. </el-form-item>
  366. </el-col>
  367. <el-col :span="5" :offset="1">
  368. <el-form-item label="电子邮箱" prop="email">
  369. <el-input v-model="ownerInfo.email" placeholder="请输入电子邮箱"></el-input>
  370. </el-form-item>
  371. </el-col>
  372. <!-- <el-col :xs="xscell" :sm="smcell" :md="mdcell" :lg="lgcell" :xl="xlcell" v-if="iscCrownerShow">
  373. <el-form-item label="省市区:">
  374. <el-cascader v-model="ownerInfo.provinceData" :options="areaOption" :props="{ value: 'code',label: 'name',children: 'sub'}"></el-cascader>
  375. </el-form-item>
  376. </el-col>-->
  377. </el-row>
  378. </el-form>
  379. </div>
  380. <div class="Enclosure flex f-c back">
  381. <div class="home flex j-s a-c">
  382. <div class="flex j-s a-c" id="toubaor">
  383. <img src="../../../../src/icon/投保人信息.png" alt class="icon-img" />
  384. <span style="margin-left: 10px">投保人信息</span>
  385. </div>
  386. <div class="flex a-c j-c">
  387. <div style="font-size: 12px; margin: 0 10px">
  388. 同车主
  389. <el-switch v-model="tbczcarShow" active-color="#D42426" @change="tbczcarShowChange()"></el-switch>
  390. </div>
  391. <el-button size="small" type="primary" @click="uploaduser(3)">
  392. <i class="el-icon-camera-solid" style="margin-right: 4px"></i>
  393. 证件识别
  394. </el-button>
  395. </div>
  396. </div>
  397. <el-form v-show="!tbczcarShow" class="demo-ruleForm" :model="policyHolderInfo" ref="policyHolderInfo" :rules="rules"
  398. label-width="130px" size="small " style="margin-top: 15px" label-position="top">
  399. <el-row style="flex-wrap: wrap; display: flex">
  400. <el-col :span="5">
  401. <el-form-item label="投保人姓名" prop="name">
  402. <el-input v-model="policyHolderInfo.name" placeholder="请输入投保人姓名"></el-input>
  403. </el-form-item>
  404. </el-col>
  405. <el-col :span="5" :offset="1">
  406. <el-form-item label="投保人类型" prop="property">
  407. <el-select v-model="policyHolderInfo.property" placeholder="投保人类型" @change="propertyTpe('policyHolderInfo')" >
  408. <el-option label="个人" value="1"></el-option>
  409. <el-option label="法人" value="0"></el-option>
  410. </el-select>
  411. </el-form-item>
  412. </el-col>
  413. <el-col :span="5" :offset="1">
  414. <el-form-item label="证件类型" prop="identifyType">
  415. <el-select v-model="policyHolderInfo.identifyType" placeholder="身份证" disabled>
  416. <el-option label="身份证" value="01"></el-option>
  417. <el-option label="统一社会信用代码" value="10"></el-option>
  418. </el-select>
  419. </el-form-item>
  420. </el-col>
  421. <el-col :span="5" :offset="1" v-if="policyHolderInfo.property=='0'">
  422. <el-form-item label="证件号码" prop="organizationCode">
  423. <el-input v-model="policyHolderInfo.organizationCode" placeholder="请输入证件号码" type="text" maxlength="18"
  424. show-word-limit @blur="identifyblur('policyHolderInfo')"></el-input>
  425. </el-form-item>
  426. </el-col>
  427. <el-col :span="5" :offset="1" v-if="policyHolderInfo.property=='1'">
  428. <el-form-item label="证件号码" prop="identifyNumber">
  429. <el-input v-model="policyHolderInfo.identifyNumber" placeholder="请输入证件号码" type="text" maxlength="18"
  430. show-word-limit @blur="identifyblur('policyHolderInfo')"></el-input>
  431. </el-form-item>
  432. </el-col>
  433. <el-col :span="5" v-if="policyHolderInfo.property=='0'">
  434. <el-form-item label="注册资金" prop="registeredCapital">
  435. <el-input v-model="policyHolderInfo.registeredCapital" placeholder="请输入注册资金" type="text"
  436. show-word-limit >
  437. <el-button slot="append">万元</el-button>
  438. </el-input>
  439. </el-form-item>
  440. </el-col>
  441. <el-col :span="5" v-if="policyHolderInfo.property=='1'">
  442. <el-form-item label="年龄" prop="age">
  443. <el-input v-model="policyHolderInfo.age" placeholder="请输入年龄" type="text" disabled></el-input>
  444. </el-form-item>
  445. </el-col>
  446. <el-col :span="5" :offset="1" v-if="policyHolderInfo.property=='1'">
  447. <el-form-item label="性别" prop="gender" >
  448. <el-select v-model="policyHolderInfo.gender" placeholder="请选择性别">
  449. <el-option label="男" value="男"></el-option>
  450. <el-option label="女" value="女"></el-option>
  451. </el-select>
  452. </el-form-item>
  453. </el-col>
  454. <el-col :span="5" :offset="1">
  455. <el-form-item label="投保人手机号" prop="mobile">
  456. <el-input v-model="policyHolderInfo.mobile" placeholder="请输入投保人手机号" maxlength="11" type="text"
  457. @paste.native="handlePaste($event, 'policyHolderInfo')" show-word-limit></el-input>
  458. </el-form-item>
  459. </el-col>
  460. <el-col :span="5" :offset="1" v-if="policyHolderInfo.property=='0'">
  461. <el-form-item label="投保人座机" prop="tel">
  462. <el-input v-model="policyHolderInfo.tel" placeholder="请输入投保人座机" type="text"
  463. show-word-limit></el-input>
  464. </el-form-item>
  465. </el-col>
  466. <!-- <el-col :xs="xscell" :sm="smcell" :md="mdcell" :lg="lgcell" :xl="xlcell">
  467. <el-form-item label="省市区:">
  468. <el-cascader v-model="selectedOptions2" :options="areaOptions"
  469. @change="event => areahandleChange(event, 'policyHolderInfo')"></el-cascader>
  470. </el-form-item>
  471. </el-col>-->
  472. <el-col :span="5" :offset="1" v-if="policyHolderInfo.property=='0'">
  473. <el-form-item label="投保人联系人">
  474. <el-input v-model="policyHolderInfo.legalPerson" placeholder="请输入投保人联系人" type="text" maxlength="5" ></el-input>
  475. </el-form-item>
  476. </el-col>
  477. <el-col :span="5" v-if="policyHolderInfo.property=='0'">
  478. <el-form-item label="联系人证件号码">
  479. <el-input v-model="policyHolderInfo.leaderIdentifyNumber" placeholder="请输入车主证件号码" type="text" maxlength="18" ></el-input>
  480. </el-form-item>
  481. </el-col>
  482. <el-col :span="5" :offset="1" v-if="policyHolderInfo.property=='0'">
  483. <el-form-item label="联系人有效期止期" prop="leaderOtherEffectiveDate" class="red-btn">
  484. <el-date-picker v-dateFormat v-model="policyHolderInfo.leaderOtherEffectiveDate" type="date" value-format="yyyy-MM-dd"
  485. placeholder="选择有效期止期" placement="bottom-start" style="width: calc(100% - 40px)"></el-date-picker>
  486. </el-form-item>
  487. </el-col>
  488. <el-col :span="5" :offset="1" v-if="policyHolderInfo.property=='0'">
  489. <el-form-item label="省市区">
  490. <el-cascader v-model="selectedOptions2" :options="areaOption" :props="{ value: 'code',label: 'name',children: 'sub'}"
  491. @change="event => areahandleChange(event, 'policyHolderInfo')"></el-cascader>
  492. </el-form-item>
  493. </el-col>
  494. <el-col :span="5" :offset="1">
  495. <el-form-item label="地址" prop="addr">
  496. <el-input v-model="policyHolderInfo.addr" placeholder="请输入地址" type="text"></el-input>
  497. </el-form-item>
  498. </el-col>
  499. <el-col :span="5" >
  500. <el-form-item label="有效期起期" prop="identifyValidDate">
  501. <el-date-picker v-dateFormat v-model="policyHolderInfo.identifyValidDate" value-format="yyyy-MM-dd"
  502. :picker-options="pickerOptions" type="date" placeholder="选择有效期" placement="bottom-start"></el-date-picker>
  503. </el-form-item>
  504. </el-col>
  505. <el-col :span="5" :offset="1" >
  506. <el-form-item label="有效期止期" prop="identifyValidEndDate">
  507. <el-date-picker v-dateFormat v-model="policyHolderInfo.identifyValidEndDate" type="date"
  508. value-format="yyyy-MM-dd" placeholder="有效期止期" placement="bottom-start"
  509. style="width: calc(100% - 40px)"></el-date-picker>
  510. <div class="insure-long-term" @click="insureLongterm('policyHolderInfo')">
  511. 长期
  512. </div>
  513. </el-form-item>
  514. </el-col>
  515. <el-col :span="5" :offset="1">
  516. <el-form-item label="电子邮箱" prop="email">
  517. <el-input v-model="policyHolderInfo.email" placeholder="请输入电子邮箱"></el-input>
  518. </el-form-item>
  519. </el-col>
  520. <!-- <el-col :xs="xscell" :sm="smcell" :md="mdcell" :lg="lgcell" :xl="xlcell" v-if="isApplicantShow">
  521. <el-form-item label="省市区:">
  522. <el-cascader v-model="policyHolderInfo.provinceData" :options="areaOption" :props="{ value: 'code',label: 'name',children: 'sub'}"></el-cascader>
  523. </el-form-item>
  524. </el-col>-->
  525. </el-row>
  526. </el-form>
  527. </div>
  528. <div class="Enclosure flex f-c back">
  529. <div class="home flex j-s a-c">
  530. <div class="flex j-s a-c">
  531. <img src="../../../../src/icon/被投保人信息.png" alt class="icon-img" />
  532. <span style="margin-left: 10px">被保人信息</span>
  533. </div>
  534. <div class="flex j-s a-c">
  535. <div style="font-size: 12px; margin: 0 10px">
  536. 同投保人
  537. <el-switch v-model="bbtbcarShow" active-color="#D42426" @change="bbtbcarShowChange()"></el-switch>
  538. </div>
  539. <div style="font-size: 12px; margin: 0 10px">
  540. 同车主
  541. <el-switch v-model="bbczcarShow" active-color="#D42426" @change="bbczcarShowChange()"></el-switch>
  542. </div>
  543. <el-button size="small" type="primary" @click="uploaduser(4)">
  544. <i class="el-icon-camera-solid" style="margin-right: 4px"></i>
  545. 证件识别
  546. </el-button>
  547. </div>
  548. </div>
  549. <el-form v-show="!bbtbcarShow && !bbczcarShow" class="demo-ruleForm" :model="insuredPersonInfo"
  550. ref="insuredPersonInfo" :rules="rules" label-width="130px" size="small" style="margin-top: 15px"
  551. label-position="top">
  552. <el-row style="flex-wrap: wrap; display: flex">
  553. <el-col :span="5">
  554. <el-form-item label="被保人姓名" prop="name">
  555. <el-input v-model="insuredPersonInfo.name" placeholder="请输入被保人姓名"></el-input>
  556. </el-form-item>
  557. </el-col>
  558. <el-col :span="5" :offset="1">
  559. <el-form-item label="被保人类型" prop="property">
  560. <el-select v-model="insuredPersonInfo.property" placeholder="投保人类型" @change="propertyTpe('insuredPersonInfo')" >
  561. <el-option label="个人" value="1"></el-option>
  562. <el-option label="法人" value="0"></el-option>
  563. </el-select>
  564. </el-form-item>
  565. </el-col>
  566. <el-col :span="5" :offset="1">
  567. <el-form-item label="证件类型" prop="identifyType">
  568. <el-select v-model="insuredPersonInfo.identifyType" placeholder="身份证" disabled>
  569. <el-option label="身份证" value="01"></el-option>
  570. <el-option label="统一社会信用代码" value="10"></el-option>
  571. </el-select>
  572. </el-form-item>
  573. </el-col>
  574. <el-col :span="5" :offset="1" v-if="insuredPersonInfo.property=='1'">
  575. <el-form-item label="证件号码" prop="identifyNumber">
  576. <el-input v-model="insuredPersonInfo.identifyNumber" placeholder="请输入证件号码" type="text" maxlength="18"
  577. show-word-limit @blur="identifyblur('insuredPersonInfo')"></el-input>
  578. </el-form-item>
  579. </el-col>
  580. <el-col :span="5" :offset="1" v-if="insuredPersonInfo.property=='0'">
  581. <el-form-item label="证件号码" prop="organizationCode">
  582. <el-input v-model="insuredPersonInfo.organizationCode" placeholder="请输入证件号码" type="text" maxlength="18"
  583. show-word-limit @blur="identifyblur('insuredPersonInfo')"></el-input>
  584. </el-form-item>
  585. </el-col>
  586. <el-col :span="5" v-if="insuredPersonInfo.property=='0'">
  587. <el-form-item label="注册资金" prop="registeredCapital">
  588. <el-input v-model="insuredPersonInfo.registeredCapital" placeholder="请输入注册资金" type="text"
  589. show-word-limit >
  590. <el-button slot="append">万元</el-button>
  591. </el-input>
  592. </el-form-item>
  593. </el-col>
  594. <el-col :span="5" v-if="insuredPersonInfo.property=='1'">
  595. <el-form-item label="年龄" prop="age">
  596. <el-input v-model="insuredPersonInfo.age" placeholder="请输入年龄" type="text" disabled></el-input>
  597. </el-form-item>
  598. </el-col>
  599. <el-col :span="5" :offset="1" v-if="insuredPersonInfo.property=='1'">
  600. <el-form-item label="性别" prop="gender">
  601. <el-select v-model="insuredPersonInfo.gender" placeholder="请选择性别">
  602. <el-option label="男" value="男"></el-option>
  603. <el-option label="女" value="女"></el-option>
  604. </el-select>
  605. </el-form-item>
  606. </el-col>
  607. <el-col :span="5" :offset="1">
  608. <el-form-item label="被保人手机号" prop="mobile">
  609. <el-input v-model="insuredPersonInfo.mobile" placeholder="请输入被保人手机号" maxlength="11" type="text"
  610. @paste.native="handlePaste($event, 'insuredPersonInfo')" show-word-limit></el-input>
  611. </el-form-item>
  612. </el-col>
  613. <el-col :span="5" :offset="1" v-if="insuredPersonInfo.property=='0'">
  614. <el-form-item label="被保人座机" prop="tel">
  615. <el-input v-model="insuredPersonInfo.tel" placeholder="请输入车主座机" type="text"
  616. show-word-limit></el-input>
  617. </el-form-item>
  618. </el-col>
  619. <!-- <el-col :xs="xscell" :sm="smcell" :md="mdcell" :lg="lgcell" :xl="xlcell">
  620. <el-form-item label="省市区:">
  621. <el-cascader v-model="selectedOptions3" :options="areaOptions"
  622. @change="event => areahandleChange(event, 'insuredPersonInfo')"></el-cascader>
  623. </el-form-item>
  624. </el-col>-->
  625. <el-col :span="5" :offset="1" v-if="insuredPersonInfo.property=='0'">
  626. <el-form-item label="被保人联系人">
  627. <el-input v-model="insuredPersonInfo.legalPerson" placeholder="请输入被保人联系人" type="text" maxlength="5" ></el-input>
  628. </el-form-item>
  629. </el-col>
  630. <el-col :span="5" v-if="insuredPersonInfo.property=='0'">
  631. <el-form-item label="联系人证件号码">
  632. <el-input v-model="insuredPersonInfo.leaderIdentifyNumber" placeholder="请输入车主证件号码" type="text" maxlength="18" ></el-input>
  633. </el-form-item>
  634. </el-col>
  635. <el-col :span="5" :offset="1" v-if="insuredPersonInfo.property=='0'">
  636. <el-form-item label="联系人有效期止期" prop="leaderOtherEffectiveDate" class="red-btn">
  637. <el-date-picker v-dateFormat v-model="insuredPersonInfo.leaderOtherEffectiveDate" type="date" value-format="yyyy-MM-dd"
  638. placeholder="选择有效期止期" placement="bottom-start" style="width: calc(100% - 40px)"></el-date-picker>
  639. </el-form-item>
  640. </el-col>
  641. <el-col :span="5" :offset="1" v-if="insuredPersonInfo.property=='0'">
  642. <el-form-item label="省市区">
  643. <el-cascader v-model="selectedOptions2" :options="areaOption" :props="{ value: 'code',label: 'name',children: 'sub'}"
  644. @change="event => areahandleChange(event, 'insuredPersonInfo')"></el-cascader>
  645. </el-form-item>
  646. </el-col>
  647. <el-col :span="5" :offset="insuredPersonInfo.property?1:0">
  648. <el-form-item label="地址" prop="addr">
  649. <el-input v-model="insuredPersonInfo.addr" placeholder="请输入地址" type="text"></el-input>
  650. </el-form-item>
  651. </el-col>
  652. <el-col :span="5" :offset="insuredPersonInfo.property?0:1">
  653. <el-form-item label="有效期起期" prop="identifyValidDate">
  654. <el-date-picker v-dateFormat v-model="insuredPersonInfo.identifyValidDate" value-format="yyyy-MM-dd"
  655. :picker-options="pickerOptions" type="date" placeholder="选择有效期" placement="bottom-start"></el-date-picker>
  656. </el-form-item>
  657. </el-col>
  658. <el-col :span="5" :offset="1">
  659. <el-form-item label="有效期止期" prop="identifyValidEndDate">
  660. <el-date-picker v-dateFormat v-model="insuredPersonInfo.identifyValidEndDate" type="date"
  661. value-format="yyyy-MM-dd" placeholder="有效期止期" placement="bottom-start"
  662. style="width: calc(100% - 40px)"></el-date-picker>
  663. <div class="insure-long-term" @click="insureLongterm('insuredPersonInfo')">
  664. 长期
  665. </div>
  666. </el-form-item>
  667. </el-col>
  668. <el-col :span="5" :offset="1">
  669. <el-form-item label="电子邮箱" prop="email">
  670. <el-input v-model="insuredPersonInfo.email" placeholder="请输入电子邮箱"></el-input>
  671. </el-form-item>
  672. </el-col>
  673. <!-- <el-col :xs="xscell" :sm="smcell" :md="mdcell" :lg="lgcell" :xl="xlcell" v-if="isInsuredShow">
  674. <el-form-item label="省市区:">
  675. <el-cascader v-model="insuredPersonInfo.provinceData" :options="areaOption" :props="{ value: 'code',label: 'name',children: 'sub'}"></el-cascader>
  676. </el-form-item>
  677. </el-col>-->
  678. </el-row>
  679. </el-form>
  680. </div>
  681. <div class="Enclosure flex f-c back">
  682. <div class="home flex j-s a-c">
  683. <div class="flex j-s a-c color" id="insurance">
  684. <img src="../../../../src/icon/投保信息.png" alt class="icon-img" />
  685. <span style="margin-left: 10px">投保信息</span>
  686. <el-switch style="margin: 0 10px 0 30px" @change="immediatelyChange" v-model="immediatelyValue"
  687. active-color="#D42426"></el-switch>
  688. <span style="font-weight: normal; font-size: 13px">即时投保</span>
  689. </div>
  690. </div>
  691. <el-form class="back demo-ruleForm" :inline="true" :model="Carinsurance" label-width="150px" size="small"
  692. style="margin-top: 15px" label-position="top">
  693. <div class="flex j-start a-c">
  694. <div class="flex j-c a-start">
  695. <el-checkbox class="checkbox" style="margin-right: 20px" v-model="jqchecked"
  696. @change="jqcheckedChange"></el-checkbox>
  697. <div class="flex f-c a-c">
  698. <el-form-item label="交强险起保日期" prop="identifyNumber">
  699. <el-date-picker v-dateFormat value-format="yyyy-MM-dd HH:mm:ss" v-model="jqstartDate" @change="jqChange"
  700. type="datetime" placeholder="选择日期时间" placement="bottom-start"></el-date-picker>
  701. </el-form-item>
  702. <el-form-item label="交强险终保日期" prop="identifyNumber">
  703. <el-date-picker v-dateFormat value-format="yyyy-MM-dd HH:mm:ss" v-model="jqendDate" type="datetime"
  704. placeholder="选择日期时间" placement="bottom-start"></el-date-picker>
  705. </el-form-item>
  706. </div>
  707. </div>
  708. <div class="flex f-c a-c synchronous" style="margin: 0 50px" @click="synchronization">
  709. <span style="font-size: 12px">同步</span>
  710. </div>
  711. <div class="flex j-c a-start">
  712. <el-checkbox class="checkbox" style="margin-right: 20px" v-model="sychecked"
  713. @change="sycheckedChange"></el-checkbox>
  714. <div class="flex f-c a-c">
  715. <el-form-item label="商业险起保日期" prop="name">
  716. <el-date-picker v-dateFormat value-format="yyyy-MM-dd HH:mm:ss" v-model="systartDate" @change="syChange"
  717. type="datetime" placeholder="选择日期时间" placement="bottom-start"></el-date-picker>
  718. </el-form-item>
  719. <el-form-item label="商业险终保日期" prop="name">
  720. <el-date-picker v-dateFormat value-format="yyyy-MM-dd HH:mm:ss" v-model="syendDate" type="datetime"
  721. placeholder="选择日期时间" placement="bottom-start"></el-date-picker>
  722. </el-form-item>
  723. </div>
  724. </div>
  725. </div>
  726. </el-form>
  727. </div>
  728. <div class="Enclosure flex f-c back">
  729. <div class="home flex j-s a-c">
  730. <div class="flex j-s a-c color" id="insurance">
  731. <img src="../../../../src/icon/车船税.png" alt class="icon-img" />
  732. <span style="margin-left: 10px">车船税</span>
  733. </div>
  734. </div>
  735. <el-form class="demo-ruleForm" :model="vehicleAndVesselTaxForm" ref="vehicleAndVesselTaxForm" :rules="rules"
  736. label-width="160px" size="small" style="margin-top: 15px" label-position="top">
  737. <el-row style="flex-wrap: wrap; display: flex">
  738. <el-col :span="5">
  739. <el-form-item label="纳税类型:" prop="taxRelifFlag">
  740. <el-select @change="taxRelifFlagChange" v-model="vehicleAndVesselTaxForm.taxRelifFlag" placeholder="纳税类型">
  741. <el-option v-for="(item, index) in taxRelifFlagoptions" :key="index" :label="item.dictTag"
  742. :value="item.dictValue"></el-option>
  743. </el-select>
  744. </el-form-item>
  745. </el-col>
  746. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 1&& policyHolderInfo.property=='1'" :span="5" :offset="1">
  747. <el-form-item label="纳税人识别号:" prop="identifyNumber">
  748. <el-input v-model="vehicleAndVesselTaxForm.identifyNumber" placeholder="请输入纳税人识别号" type="text"></el-input>
  749. </el-form-item>
  750. </el-col>
  751. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 1 && policyHolderInfo.property=='0'" :span="5" :offset="1">
  752. <el-form-item label="纳税人识别号:" prop="organizationCode">
  753. <el-input v-model="vehicleAndVesselTaxForm.organizationCode" placeholder="请输入纳税人识别号" type="text"></el-input>
  754. </el-form-item>
  755. </el-col>
  756. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 1" :span="5" :offset="1">
  757. <el-form-item label="纳税人名称:" prop="taxpayerName">
  758. <el-input v-model="vehicleAndVesselTaxForm.taxpayerName" placeholder="请输入纳税人名称" type="text"></el-input>
  759. </el-form-item>
  760. </el-col>
  761. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 1" :span="5" :offset="1">
  762. <el-form-item label="证件类型:" prop="taxpayerIdentifier">
  763. <el-select v-model="vehicleAndVesselTaxForm.taxpayerIdentifier" placeholder="证件类型" clearable>
  764. <el-option v-for="(item, index) in taxpayerIdentifieroptions" :key="index" :label="item.dictTag"
  765. :value="item.dictValue"></el-option>
  766. </el-select>
  767. </el-form-item>
  768. </el-col>
  769. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 2 ||
  770. vehicleAndVesselTaxForm.taxRelifFlag == 3
  771. " :span="5" :offset="1">
  772. <el-form-item label="减免税凭证号:" prop="extendChar2">
  773. <el-input v-model="vehicleAndVesselTaxForm.extendChar2" placeholder="请输入减免税凭证号" type="text"></el-input>
  774. </el-form-item>
  775. </el-col>
  776. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 4" :span="5" :offset="1">
  777. <el-form-item label="完税凭证号:" prop="paidFreeCertificate">
  778. <el-input v-model="vehicleAndVesselTaxForm.paidFreeCertificate" placeholder="请输入完税凭证号"
  779. type="text"></el-input>
  780. </el-form-item>
  781. </el-col>
  782. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 2 ||
  783. vehicleAndVesselTaxForm.taxRelifFlag == 3
  784. " :span="5" :offset="1">
  785. <el-form-item label="减免税原因:" prop="relifReason">
  786. <el-select v-model="vehicleAndVesselTaxForm.relifReason" placeholder="减免税原因" clearable>
  787. <el-option v-for="(item, index) in relifReasonoptions" :key="index" :label="item.dictTag"
  788. :value="item.dictValue"></el-option>
  789. </el-select>
  790. </el-form-item>
  791. </el-col>
  792. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag != 1" :span="5" :offset="1">
  793. <el-form-item label="税务机关代码:" prop="taxComCode">
  794. <el-input v-model="vehicleAndVesselTaxForm.taxComCode" placeholder="请输入税务机关代码" type="text"></el-input>
  795. </el-form-item>
  796. </el-col>
  797. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag != 1" :span="5"
  798. :offset="vehicleAndVesselTaxForm.taxRelifFlag == 4 ? 1 : 0">
  799. <el-form-item label="税务机关名称:" prop="taxComName">
  800. <el-input v-model="vehicleAndVesselTaxForm.taxComName" placeholder="请输入税务机关名称" type="text"></el-input>
  801. </el-form-item>
  802. </el-col>
  803. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 4" :span="5">
  804. <el-form-item label="完税凭证填发日期:" prop="taxDocumentDate">
  805. <el-date-picker v-dateFormat v-model="vehicleAndVesselTaxForm.taxDocumentDate" value-format="yyyy-MM-dd"
  806. type="date" placeholder="完税凭证填发日期" placement="bottom-start"></el-date-picker>
  807. </el-form-item>
  808. </el-col>
  809. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 4" :span="5" :offset="1">
  810. <el-form-item label="完税凭证地区:" prop="taxPaidAreaCode">
  811. <el-select v-model="vehicleAndVesselTaxForm.taxPaidAreaCode" placeholder="完税凭证地区" clearable>
  812. <el-option v-for="(item, index) in provinceSelect" :key="index" :label="item.name"
  813. :value="item.code"></el-option>
  814. </el-select>
  815. </el-form-item>
  816. </el-col>
  817. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 3" :span="5" :offset="1">
  818. <el-form-item label="减税比例:" prop="taxRelief">
  819. <el-input v-model="vehicleAndVesselTaxForm.taxRelief" placeholder="请输入0~1的数值" type="text"></el-input>
  820. </el-form-item>
  821. </el-col>
  822. </el-row>
  823. </el-form>
  824. </div>
  825. <div class="Enclosure flex f-c back">
  826. <div class="home flex j-s a-c back">
  827. <div class="flex j-s a-c" id="more">
  828. <img src="../../../../src/icon/险别选择.png" alt class="icon-img" />
  829. <span style="margin-left: 15px; width: 120px">险别选择</span>
  830. <el-select size="small" style="width: 70%" v-model="packageValue" placeholder="请选择套餐" @change="packageChange">
  831. <el-option v-for="item in packageOptions" :key="item.id" :label="item.title" :value="item.id"></el-option>
  832. </el-select>
  833. </div>
  834. </div>
  835. <div class="flex f-c more">
  836. <div class="flex j-s a-c more-title back">
  837. <div style="width: 590px; padding-left: 100px" class="flex j-s a-c">
  838. <span>险别</span>
  839. <span>保额(元)</span>
  840. </div>
  841. </div>
  842. <div class="flex a-c more-data back" v-for="(insureitem, insureindex) in insureList" :key="insureindex">
  843. <div style="width: 700px; padding-left: 100px" class="flex j-s a-c">
  844. <div style="width: auto">
  845. <span style="text-align: center">
  846. {{ insureitem.kindName }}
  847. <el-input v-show="insureitem.kindCode == 'D4' ||
  848. insureitem.kindCode == 'MJ4' ||
  849. insureitem.kindCode == 'SY_FJ_YBW2'
  850. " v-model="sumseatCount" style="width: 40px; margin: 0 5px" size="small" placeholder
  851. disabled></el-input>
  852. <span v-show="insureitem.kindCode == 'D4' ||
  853. insureitem.kindCode == 'MJ4' ||
  854. insureitem.kindCode == 'SY_FJ_YBW2'
  855. ">座</span>
  856. </span>
  857. </div>
  858. <el-select v-if="insureitem.amtList" filterable v-model="insureitem.amount" placeholder="请选择"
  859. @change="insureitemChange($event, insureitem)" size="small" style="width: 300px">
  860. <el-option :label="item.label" :value="item.value" v-for="(item, index) in insureitem.amtList"
  861. :key="index"></el-option>
  862. </el-select>
  863. <span v-else>
  864. <el-input-number size="small" style="width: 280px; margin-right: 10px" v-model="insureitem.amount"
  865. @change="insureitemChange($event, insureitem)"
  866. :min="0"></el-input-number>次
  867. </span>
  868. </div>
  869. </div>
  870. <!-- <div style="margin:0 auto;font-size: 14px;cursor: pointer;margin-top:15px;">
  871. <span v-show="insureMore" @click="selectMore(insureList.length)">
  872. 查看更多
  873. <i class="el-icon-arrow-down"></i>
  874. </span>
  875. <span v-show="!insureMore" @click="packup()">
  876. 收起
  877. <i class="el-icon-arrow-up"></i>
  878. </span>
  879. </div>-->
  880. </div>
  881. </div>
  882. <!-- 保险公司信息 -->
  883. <div class="Enclosure flex f-c back">
  884. <div class="home flex j-s">
  885. <div class="flex j-s a-c" id="company">
  886. <img src="../../../../src/icon/保险公司.png" alt class="icon-img" />
  887. <span style="margin-left: 10px">保险公司</span>
  888. <div class="csstool">
  889. <span>是否过户车</span>
  890. <el-switch @change="transferFlagChange" v-model="carInfo.transferFlag" active-color="#D42426"></el-switch>
  891. </div>
  892. <div class="csstool">
  893. <span>商业险是否过户</span>
  894. <el-switch v-model="carInfo.transferFlagBi" active-color="#D42426"></el-switch>
  895. </div>
  896. <div class="csstool">
  897. <span>是否脱保</span>
  898. <el-switch v-model="carInfo.outOfInsurance" active-color="#D42426"></el-switch>
  899. </div>
  900. <div class="csstool">
  901. <span>是否二手车</span>
  902. <el-switch v-model="carInfo.usedCar" active-color="#D42426"></el-switch>
  903. </div>
  904. </div>
  905. <div class="flex j-c a-c">
  906. <el-button v-show="imageUploadShow" size="small" type="primary" @click="imageUpload()">
  907. <i class="el-icon-camera-solid" style="margin-right: 4px"></i>
  908. 影像上传
  909. </el-button>
  910. </div>
  911. </div>
  912. <div>
  913. <div class="companyhead">
  914. <el-row>
  915. <el-col :span="3">
  916. <span>保险公司</span>
  917. </el-col>
  918. <el-col :span="4">
  919. <span>报价协议</span>
  920. </el-col>
  921. <el-col :span="3" v-if="isLetter == '3'">
  922. <span>是否现询</span>
  923. </el-col>
  924. <el-col :span="4" v-if="isLetter == '3'">
  925. <span>非现询费用</span>
  926. </el-col>
  927. <el-col :span="2">
  928. <span>交强险</span>
  929. </el-col>
  930. <el-col :span="2">
  931. <span>车船税</span>
  932. </el-col>
  933. <el-col :span="2">
  934. <span>商业险</span>
  935. </el-col>
  936. <el-col :span="2">
  937. <span>驾意险</span>
  938. </el-col>
  939. <el-col :span="2">
  940. <span>合计</span>
  941. </el-col>
  942. </el-row>
  943. </div>
  944. <div class="coll" v-if="isLetter == '3'">
  945. <div v-loading.fullscreen.lock="loading" class="hovers" v-for="(reslistitem, reslistindex) in totalCompanyList"
  946. :key="reslistindex">
  947. <el-row>
  948. <el-col :span="3">
  949. <el-select size="small" v-model="companyName" placeholder="请选择保险公司" filterable clearable @change="changeCompany" style="width: 100%;">
  950. <el-option :label="item.name" :value="item.name" v-for="item in ztreeNodes" :key="item.name" ></el-option>
  951. </el-select>
  952. </el-col>
  953. <el-col :span="4">
  954. <el-select size="small" v-model="isLetter3agreementId" filterable clearable
  955. placeholder="请选择协议" @change="(val) =>
  956. agreementChange(
  957. val,
  958. reslistitem.agreement,
  959. reslistindex,
  960. reslistitem
  961. )
  962. ">
  963. <el-option
  964. :label="`${item.agreementName}-${item.businessDescription}-${item.jobDescription}`"
  965. :value="item.id"
  966. v-for="item in reslistitem.agreement" :key="item.id"></el-option>
  967. </el-select>
  968. </el-col>
  969. <el-col :span="3" >
  970. <el-select size="small" filterable clearable v-model="costFlag"
  971. @change="changeIsInquirySelect">
  972. <el-option v-for="(item, index) in isInquirySelect" :key="index" :label="item.value"
  973. :value="item.id"></el-option>
  974. </el-select>
  975. </el-col>
  976. <el-col :span="4">
  977. <el-select size="small" filterable clearable v-if="isInquirySelectFlag" v-model="xxNowCostsId" :disabled = isInquirySelectFlag
  978. @change="inquiryNowListChange">
  979. <el-option v-for="(item, index) in inquiryNowList" :key="index" :label="item.costsDescription"
  980. :value="item.id"></el-option>
  981. </el-select>
  982. <el-select size="small" filterable clearable v-else v-model="nowCostsId" :disabled = isInquirySelectFlag
  983. @change="inquiryNowListChange">
  984. <el-option v-for="(item, index) in inquiryNowList" :key="index" :label="item.costsDescription"
  985. :value="item.id"></el-option>
  986. </el-select>
  987. </el-col>
  988. <el-col :span="2">
  989. <span style="color: #d42426; font-weight: bold">
  990. {{
  991. policyNumberForm.jqpremium
  992. ? "¥" + policyNumberForm.jqpremium
  993. : "&nbsp;"
  994. }}
  995. </span>
  996. </el-col>
  997. <el-col :span="2">
  998. <span style="color: #d42426; font-weight: bold">
  999. {{
  1000. policyNumberForm.taxamount
  1001. ? "¥" + policyNumberForm.taxamount
  1002. : "&nbsp;"
  1003. }}
  1004. </span>
  1005. </el-col>
  1006. <el-col :span="2">
  1007. <span style="color: #d42426; font-weight: bold">
  1008. {{
  1009. policyNumberForm.sypremium
  1010. ? "¥" + policyNumberForm.sypremium
  1011. : "&nbsp;"
  1012. }}
  1013. </span>
  1014. </el-col>
  1015. <el-col :span="2">
  1016. <span style="color: #d42426; font-weight: bold">
  1017. {{
  1018. policyNumberForm.jypremium
  1019. ? "¥" + policyNumberForm.jypremium
  1020. : "&nbsp;"
  1021. }}
  1022. </span>
  1023. </el-col>
  1024. <el-col :span="2">
  1025. <span style="color: #d42426; font-weight: bold">
  1026. {{
  1027. sumPremium ? "¥" + sumPremium
  1028. : ""
  1029. }}
  1030. </span>
  1031. </el-col>
  1032. </el-row>
  1033. </div>
  1034. </div>
  1035. </div>
  1036. </div>
  1037. <!-- 外部订单保费信息 -->
  1038. <div class="Enclosure flex f-c back" v-if="isLetter == '3'">
  1039. <div class="home flex j-s a-c">
  1040. <div class="flex j-s a-c color" id="Waibu">
  1041. <img src="../../../../src/icon/车船税.png" alt class="icon-img" />
  1042. <span style="margin-left: 10px">外部订单</span>
  1043. </div>
  1044. <div class="flex j-c a-c">
  1045. <el-button v-show="policyNumberForm.jqpolicyno ||
  1046. policyNumberForm.sypolicyno ||
  1047. policyNumberForm.jypolicyno
  1048. " size="small" type="primary" @click="policyUpload()">
  1049. <i class="el-icon-camera-solid" style="margin-right: 4px"></i>
  1050. 保单上传
  1051. </el-button>
  1052. </div>
  1053. </div>
  1054. <el-form class="demo-ruleForm" :model="policyNumberForm" ref="policyNumberForm" :rules="rules" label-width="160px"
  1055. size="small" style="margin-top: 15px">
  1056. <el-row style="flex-wrap: wrap; display: flex">
  1057. <el-col :span="8">
  1058. <el-form-item label="评分" prop="score">
  1059. <el-input v-model="policyNumberForm.score" placeholder="请输入评分"></el-input>
  1060. </el-form-item>
  1061. </el-col>
  1062. <el-col :span="8">
  1063. <el-form-item label="交强续保" prop="jqRenewal">
  1064. <el-select v-model="policyNumberForm.jqRenewal" placeholder="请选择交强续保" clearable>
  1065. <el-option v-for="item in [
  1066. {
  1067. label: '是',
  1068. value: '1',
  1069. },
  1070. {
  1071. label: '否',
  1072. value: '0',
  1073. },
  1074. ]" :key="item.value" :label="item.label" :value="item.value">
  1075. </el-option>
  1076. </el-select>
  1077. </el-form-item>
  1078. </el-col>
  1079. <el-col :span="8">
  1080. <el-form-item label="商业续保" prop="syRenewal">
  1081. <el-select v-model="policyNumberForm.syRenewal" placeholder="请选择商业续保" clearable>
  1082. <el-option v-for="item in [
  1083. {
  1084. label: '是',
  1085. value: '1',
  1086. },
  1087. {
  1088. label: '否',
  1089. value: '0',
  1090. },
  1091. ]" :key="item.value" :label="item.label" :value="item.value">
  1092. </el-option>
  1093. </el-select>
  1094. </el-form-item>
  1095. </el-col>
  1096. <el-col :span="8">
  1097. <el-form-item label="交强保单号" prop="jqpolicyno">
  1098. <el-input v-model="policyNumberForm.jqpolicyno" placeholder="请输入交强保单号"></el-input>
  1099. </el-form-item>
  1100. </el-col>
  1101. <el-col :span="8">
  1102. <el-form-item label="交强险保费" prop="jqpremium">
  1103. <el-input v-model="policyNumberForm.jqpremium" placeholder="请输入交强险保费" type="text"></el-input>
  1104. </el-form-item>
  1105. </el-col>
  1106. <el-col :span="8">
  1107. <el-form-item label="交强险总比例(%)" prop="jqCostsProportion">
  1108. <el-input v-if="isInquiryNowDisable" :disabled="isInquiryNowDisable" v-model="policyNumberForm.jqCostsProportion"
  1109. type="text"></el-input>
  1110. <el-input v-else :disabled="isInquiryNowDisable" v-model="policyNumberForm.jqCostsProportion"
  1111. @change.native =getExternalOrderFee
  1112. placeholder="请输入交强险总比例(%)" type="text"></el-input>
  1113. </el-form-item>
  1114. </el-col>
  1115. <el-col :span="8">
  1116. <el-form-item label="商业保单号" prop="sypolicyno">
  1117. <el-input v-model="policyNumberForm.sypolicyno" placeholder="请输入商业保单号" type="text"></el-input>
  1118. </el-form-item>
  1119. </el-col>
  1120. <el-col :span="8">
  1121. <el-form-item label="商业险保费" prop="sypremium">
  1122. <el-input v-model="policyNumberForm.sypremium" placeholder="请输入商业险保费" type="text"></el-input>
  1123. </el-form-item>
  1124. </el-col>
  1125. <el-col :span="8">
  1126. <el-form-item label="商业险总比例(%)" prop="syCostsProportion">
  1127. <!-- <el-input :disabled="isInquiryNowDisable" v-model="policyNumberForm.syCostsProportion" placeholder="请输入商业险其他费用比例" type="text"></el-input> -->
  1128. <el-input v-if="isInquiryNowDisable" :disabled="isInquiryNowDisable" v-model="policyNumberForm.syCostsProportion"
  1129. type="text"></el-input>
  1130. <el-input v-else :disabled="isInquiryNowDisable" v-model="policyNumberForm.syCostsProportion"
  1131. @change.native =getExternalOrderFee
  1132. placeholder="请输入商业险总比例(%)" type="text"></el-input>
  1133. </el-form-item>
  1134. </el-col>
  1135. <el-col :span="8">
  1136. <el-form-item label="驾意保单号" prop="jypolicyno">
  1137. <el-input v-model="policyNumberForm.jypolicyno" placeholder="请输入驾意保单号" type="text"></el-input>
  1138. </el-form-item>
  1139. </el-col>
  1140. <el-col :span="8">
  1141. <el-form-item label="驾意险保费" prop="jypremium">
  1142. <el-input v-model="policyNumberForm.jypremium" placeholder="请输入驾意险保费" type="text"></el-input>
  1143. </el-form-item>
  1144. </el-col>
  1145. <el-col :span="8">
  1146. <el-form-item label="非车险总比例(%)" prop="noCostsProportion">
  1147. <!-- <el-input v-model="policyNumberForm.noCostsProportion" placeholder="请输入非车其他费用比例" type="text"></el-input> -->
  1148. <el-input v-if="isInquiryNowDisable" :disabled="isInquiryNowDisable" v-model="policyNumberForm.noCostsProportion"
  1149. type="text"></el-input>
  1150. <el-input v-else :disabled="isInquiryNowDisable" v-model="policyNumberForm.noCostsProportion"
  1151. @change.native =getExternalOrderFee
  1152. placeholder="请输入非车险总比例(%)" type="text"></el-input>
  1153. </el-form-item>
  1154. </el-col>
  1155. <!-- <el-col :span="5" :offset="1">
  1156. <el-form-item label="交强险手续费比例" prop="jqSuperviseCostsProportion">
  1157. <el-input v-model="policyNumberForm.jqSuperviseCostsProportion" placeholder="请输入交强险手续费比例"
  1158. type="text"></el-input>
  1159. </el-form-item>
  1160. </el-col>
  1161. <el-col :span="5">
  1162. <el-form-item label="商业险手续费比例" prop="sySuperviseCostsProportion">
  1163. <el-input v-model="policyNumberForm.sySuperviseCostsProportion" placeholder="请输入商业险手续费比例"
  1164. type="text"></el-input>
  1165. </el-form-item>
  1166. </el-col>
  1167. <el-col :span="5" :offset="1">
  1168. <el-form-item label="非车手续费比例" prop="noSuperviseCostsProportion">
  1169. <el-input v-model="policyNumberForm.noSuperviseCostsProportion" placeholder="请输入非车手续费比例"
  1170. type="text"></el-input>
  1171. </el-form-item>
  1172. </el-col> -->
  1173. <el-col :span="8">
  1174. <el-form-item label="车船税" prop="taxamount">
  1175. <el-input v-model="policyNumberForm.taxamount" placeholder="请输入车船税" type="text"></el-input>
  1176. </el-form-item>
  1177. </el-col>
  1178. <el-col :span="8">
  1179. <el-form-item label="签单日期" prop="signDate">
  1180. <el-date-picker v-model="policyNumberForm.signDate" type="datetime" value-format="yyyy-MM-dd HH:mm:ss"
  1181. placeholder="选择日期">
  1182. </el-date-picker>
  1183. </el-form-item>
  1184. </el-col>
  1185. <el-col :span="8">
  1186. <el-form-item label="交强出口比例">
  1187. <el-input placeholder="请输入交强出口比例" disabled v-model="policyNumberForm.jqOtherCostsProportion" type="text"></el-input>
  1188. </el-form-item>
  1189. </el-col>
  1190. <el-col :span="8">
  1191. <el-form-item label="商业出口比例">
  1192. <el-input placeholder="请输入商业出口比例" disabled v-model="policyNumberForm.syOtherCostsProportion" type="text"></el-input>
  1193. </el-form-item>
  1194. </el-col>
  1195. <el-col :span="8">
  1196. <el-form-item label="非车出口比例">
  1197. <el-input placeholder="请输入非车出口比例" disabled v-model="policyNumberForm.noOtherCostsProportion" type="text"></el-input>
  1198. </el-form-item>
  1199. </el-col>
  1200. </el-row>
  1201. </el-form>
  1202. </div>
  1203. <div class="Enclosure flex f-c" v-if="isLetter == '1'">
  1204. <div class="home flex j-s a-c back">
  1205. <div class="flex j-s a-c color">
  1206. <img src="../../../../src/icon/报价历史.png" alt class="icon-img" />
  1207. <span style="margin-left: 10px">报价历史</span>
  1208. <div v-if="orderno">
  1209. <el-radio-group v-model="historyRadio" style="margin-left: 30px" @input="RadioHistoryChange"
  1210. v-for="item in insOrderStatusoptions" :key="item.dictValue">
  1211. <el-radio :label="item.dictValue">{{ item.dictTag }}</el-radio>
  1212. </el-radio-group>
  1213. </div>
  1214. </div>
  1215. </div>
  1216. <div style="padding: 20px">
  1217. <el-table size="small" :data="HistoryList" height="250" border style="width: 100%" v-loading="loading"
  1218. :header-cell-style="{
  1219. background: '#F7F7F9 ',
  1220. fontWeight: '700',
  1221. color: '#333333',
  1222. }" highlight-current-row>
  1223. <el-table-column prop="inscompany" label="保险公司" align="center"></el-table-column>
  1224. <el-table-column prop="username" label="业务员" align="center">
  1225. <template slot-scope="scope">
  1226. <span>{{ scope.row.userName }}({{ scope.row.userId }})</span>
  1227. </template>
  1228. </el-table-column>
  1229. <el-table-column prop="licenseno" label="车牌号" align="center"></el-table-column>
  1230. <el-table-column prop="createtime" label="报价时间" align="center"></el-table-column>
  1231. <el-table-column prop="jqpremium" label="交强险" align="center"></el-table-column>
  1232. <el-table-column prop="sypremium" label="商业险" align="center"></el-table-column>
  1233. <el-table-column prop="taxamount" label="车船税" align="center"></el-table-column>
  1234. <el-table-column prop="sumpremium" label="总保费" align="center"></el-table-column>
  1235. <el-table-column prop="orderstatus" label="状态" align="center">
  1236. <template slot-scope="scope">
  1237. <el-tag style="
  1238. color: #33a08d;
  1239. border-color: #33a08d;
  1240. background: rgba(51, 160, 141, 0.1);
  1241. " v-if="scope.row.orderstatus == '0' || scope.row.orderstatus == '1'
  1242. " size="small">{{ scope.row.orderstatus | cap }}</el-tag>
  1243. <el-tag type="danger" style="border-color: #e75b5d" v-else-if="scope.row.orderstatus == '3'" size="small">{{
  1244. scope.row.orderstatus | cap }}</el-tag>
  1245. <el-tag v-else style="
  1246. color: #2d4d89;
  1247. border-color: #2d4d89;
  1248. background: rgba(45, 77, 137, 0.1);
  1249. " size="small">{{ scope.row.orderstatus | cap }}</el-tag>
  1250. </template>
  1251. </el-table-column>
  1252. <el-table-column label="操作" align="center" min-width="180" fixed="right">
  1253. <template slot-scope="scope">
  1254. <el-button type="text" style="color: #2d4d89" size="small"
  1255. @click="qoutedetail(scope.row.id)">查看详情</el-button>
  1256. <el-button size="small" type="text" @click="bjdpreview(scope.row.id)">报价单</el-button>
  1257. <el-button size="small" v-show="scope.row.orderstatus == '2'" type="text"
  1258. @click="Payment(scope.row.id, scope.row)">付款码</el-button>
  1259. <!-- <el-button size="small" v-show="scope.row.orderstatus == '2' && scope.row.inscompany=='平安财险'" type="text"
  1260. @click="signature(scope.row.id)">生成签章</el-button> -->
  1261. <el-button size="mini" type="text" v-if="(scope.row.orderstatus == '1' ||
  1262. scope.row.orderstatus == '2' ||
  1263. scope.row.orderstatus == '4') &&
  1264. ['紫金财险'].includes(scope.row.inscompany)
  1265. " @click="cancelorder(scope.row)">撤单</el-button>
  1266. <el-button type="text" size="mini" style="color: #2d4d89"
  1267. v-if="scope.row.orderstatus == '2' && scope.row.inscompany !== '平安财险'"
  1268. @click="revokeCode(scope.row.id)">撤销二维码</el-button>
  1269. </template>
  1270. </el-table-column>
  1271. </el-table>
  1272. </div>
  1273. </div>
  1274. <!-- 查看详情 -->
  1275. <detailsDialog ref="detailsDialog" :orderInfo.sync="queryOrders" :Feepermissions="false"></detailsDialog>
  1276. <el-dialog title="车型选择" :visible.sync="chexingdialogVisible" width="1300px">
  1277. <el-form :inline="true" class="demo-form-inline" size="small">
  1278. <el-form-item label="厂牌型号">
  1279. <el-input v-model="carInfo.modelcname" placeholder="厂牌型号" style="width: 500px"></el-input>
  1280. </el-form-item>
  1281. <el-form-item>
  1282. <el-button type="primary" size="small" @click="toChooseVehicleType(carInfo.modelcname)">查询</el-button>
  1283. </el-form-item>
  1284. </el-form>
  1285. <el-table size="small" :data="reslist" height="690" border style="width: 100%" v-loading="loading"
  1286. :header-cell-style="{
  1287. background: '#F7F7F9 ',
  1288. fontWeight: '700',
  1289. color: '#333333',
  1290. }" highlight-current-row @row-dblclick="reslistCurrentChange">
  1291. <el-table-column prop="modelCode" label="厂牌型号代码" align="center" width="200"></el-table-column>
  1292. <el-table-column prop="modelName" label="厂牌型号" align="center" width="300"></el-table-column>
  1293. <el-table-column prop="replacementValue" label="新车购置价" align="center" width="100"></el-table-column>
  1294. <el-table-column prop="marketYear" label="年款" align="center" width="100"></el-table-column>
  1295. <el-table-column prop="ratedPassengerCapacity" label="座位数" align="center" width="80"></el-table-column>
  1296. <el-table-column prop="displacement" label="排量" align="center" width="100"></el-table-column>
  1297. <el-table-column prop="remark" label="配置" align="center"></el-table-column>
  1298. </el-table>
  1299. </el-dialog>
  1300. <el-dialog title="车辆识别代码" :visible.sync="sbdmdialogVisible" width="1300px">
  1301. <el-form :inline="true" class="demo-form-inline" size="small">
  1302. <el-form-item label="车辆识别代码">
  1303. <el-input v-model="carInfo.frameNo" placeholder="车辆识别代码" style="width: 500px"></el-input>
  1304. </el-form-item>
  1305. <el-form-item>
  1306. <el-button type="primary" size="small" @click="toChooseVin(carInfo.frameNo)">查询</el-button>
  1307. </el-form-item>
  1308. </el-form>
  1309. <el-table size="small" :data="reslist" height="690" border style="width: 100%" v-loading="loading"
  1310. :header-cell-style="{
  1311. background: '#F7F7F9 ',
  1312. fontWeight: '700',
  1313. color: '#333333',
  1314. }" highlight-current-row @row-dblclick="reslistCurrentChange">
  1315. <el-table-column prop="modelCode" label="厂牌型号代码" align="center" width="200"></el-table-column>
  1316. <el-table-column prop="modelName" label="厂牌型号" align="center" width="300"></el-table-column>
  1317. <el-table-column prop="replacementValue" label="新车购置价" align="center" width="100"></el-table-column>
  1318. <el-table-column prop="marketYear" label="年款" align="center" width="100"></el-table-column>
  1319. <el-table-column prop="ratedPassengerCapacity" label="座位数" align="center" width="80"></el-table-column>
  1320. <el-table-column prop="displacement" label="排量" align="center" width="100"></el-table-column>
  1321. <el-table-column prop="remark" label="配置" align="center"></el-table-column>
  1322. </el-table>
  1323. </el-dialog>
  1324. <!--第一种 二维码 -->
  1325. <el-dialog :visible.sync="codedialogVisible" width="430px" top="10vh" class="saomazhifucodeClass">
  1326. <div class="ORcodebody" v-watermark="userform.id || userId">
  1327. <div slot="title" class="dialog-title">
  1328. <span>扫码付款</span>
  1329. </div>
  1330. <div class="ORcode">
  1331. <div style="padding: 13px; position: relative">
  1332. <div v-if="['大家财险', '华泰财险'].includes(inscompany)">
  1333. <div v-if="apiType == 1" id="qrcode" ref="qrcode"></div>
  1334. <img v-else :src="paycodeimg" alt style="width: 100%" />
  1335. </div>
  1336. <div v-else>
  1337. <img v-if="['太平财险'].includes(inscompany)" :src="paycodeimg" alt style="width: 100%" />
  1338. <div v-else id="qrcode" ref="qrcode"></div>
  1339. </div>
  1340. </div>
  1341. </div>
  1342. <img style="margin-left: -16px" src="../../../assets/image/divider.png" alt />
  1343. <div style="
  1344. font-size: 32px;
  1345. text-align: center;
  1346. color: #d42426;
  1347. margin-top: 20px;
  1348. ">
  1349. <span style="font-size: 24px; font-weight: bold">¥</span>
  1350. {{ sumpremium }}
  1351. </div>
  1352. <div class="ORtitle">
  1353. <div>
  1354. <span>保险公司:</span>
  1355. <span>{{ inscompany }}</span>
  1356. </div>
  1357. <div>
  1358. <span>车牌号:</span>
  1359. <span>{{ licenseNo }}</span>
  1360. </div>
  1361. <div>
  1362. <span>投保人:</span>
  1363. <span>{{ applyName }}</span>
  1364. </div>
  1365. <!-- <div>
  1366. <span style="color:#f75c00">总金额:</span>
  1367. <span style="color:#f75c00">{{ sumpremium }}</span>
  1368. </div>-->
  1369. <div v-show="jqpremium">
  1370. <span>交强:</span>
  1371. <span>{{ jqpremium }}</span>
  1372. </div>
  1373. <div v-show="sypremium">
  1374. <span>商业:</span>
  1375. <span>{{ sypremium }}</span>
  1376. </div>
  1377. <div v-show="taxamount">
  1378. <span>车船税:</span>
  1379. <span>{{ taxamount }}</span>
  1380. </div>
  1381. <div v-show="jqstartdate">
  1382. <span>交强险起保日期:</span>
  1383. <span>{{ jqstartdate }}</span>
  1384. </div>
  1385. <div v-show="systartdate">
  1386. <span>商业险起保日期:</span>
  1387. <span>{{ systartdate }}</span>
  1388. </div>
  1389. <div v-if="jypremium">
  1390. <span>非车险:</span>
  1391. <span>{{ jypremium }}</span>
  1392. </div>
  1393. </div>
  1394. <!-- <div class="display">
  1395. <el-button size="small" style="width:100px;" @click="codedialogVisible = false">关闭</el-button>
  1396. </div>-->
  1397. </div>
  1398. <span slot="footer" class="dialog-footer display">
  1399. <el-button size="small" style="width: 100px; border-color: #d42426; color: #d42426"
  1400. @click="codedialogVisible = false">关闭</el-button>
  1401. </span>
  1402. </el-dialog>
  1403. <!--第二种 二维码 -->
  1404. <el-dialog :visible.sync="codedialogVisiblePro" width="660px" class="proSaomazhifucodeClass" top="10vh" title="扫码付款">
  1405. <div class="flex j-s">
  1406. <div class="scan-code">
  1407. <div style="font-weight: bold">
  1408. 总金额:
  1409. <span style="color: #2d4d89">{{ sumpremium }}</span>
  1410. </div>
  1411. <div>交强险:{{ jqpremium }}</div>
  1412. <div>车船税:{{ taxamount }}</div>
  1413. <div>商业险:{{ sypremium }}</div>
  1414. <div>非车险:{{ jypremium }}</div>
  1415. </div>
  1416. <div v-if="['大家财险', '华泰财险'].includes(inscompany)">
  1417. <div v-if="apiType == 1" id="qrcode" ref="qrcode"></div>
  1418. <img v-else :src="paycodeimg" alt style="width: 100%" />
  1419. </div>
  1420. <div v-else>
  1421. <img v-if="['太平财险'].includes(inscompany)" :src="paycodeimg" alt style="width: 200px; height: 200px" />
  1422. <div v-else id="qrcode" ref="qrcode"></div>
  1423. </div>
  1424. <div class="scan-code">
  1425. <div>保险公司:{{ inscompany }}</div>
  1426. <div>车牌号:{{ licenseNo }}</div>
  1427. <div>投保人:{{ applyName }}</div>
  1428. <div>交强险起保日期:{{ jqstartdate }}</div>
  1429. <div>商业险起保日期:{{ systartdate }}</div>
  1430. </div>
  1431. </div>
  1432. <span slot="footer" class="dialog-footer">
  1433. <el-button size="small" style="
  1434. width: 100px;
  1435. background: #eaedf1;
  1436. border-color: #eaedf1;
  1437. color: #2d4d89;
  1438. " @click="codedialogVisiblePro = false">关闭</el-button>
  1439. </span>
  1440. </el-dialog>
  1441. <el-dialog :visible.sync="uploadcardialogVisible" width="960px" style="padding: 10px 20px; box-sizing: border-box"
  1442. @open="closeDialog(0)">
  1443. <div slot="title" class="dialog-title">
  1444. <span>行驶证识别</span>
  1445. </div>
  1446. <el-row :gutter="20">
  1447. <div class="bodys1">
  1448. <div>
  1449. <div class="flex a-c">
  1450. <div class="OCR" style="text-align: center">行驶证主页</div>
  1451. <div style="text-align: center; margin: 20px" @drop="reportDrop">
  1452. <el-upload drag action="#" :show-file-list="false" :auto-upload="false" :on-change="carfrontChange">
  1453. <img v-show="carfrontImg" :src="carfrontImg" style="width: 100%; height: 100%" />
  1454. <img v-show="!carfrontImg" src="../../../../static/carfront.png" style="width: 100%; height: 100%" />
  1455. <span class="slot" v-show="carfrontImg" @click.stop>
  1456. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(carfrontImg)"></i>
  1457. <i class="el-icon-delete" @click.stop="handleRemove('carfrontImg')"></i>
  1458. </span>
  1459. </el-upload>
  1460. </div>
  1461. </div>
  1462. <div class="flex a-c">
  1463. <div class="OCR" style="text-align: center">行驶证副页</div>
  1464. <div style="text-align: center; margin: 20px" @drop="reportDrop">
  1465. <el-upload drag action="#" :show-file-list="false" :auto-upload="false" :on-change="carbackChange">
  1466. <img v-show="carbackImg" :src="carbackImg" style="width: 100%; height: 100%" />
  1467. <img v-show="!carbackImg" src="../../../../static/carback.png" style="width: 100%; height: 100%" />
  1468. <span class="slot" v-show="carbackImg" @click.stop>
  1469. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(carbackImg)"></i>
  1470. <i class="el-icon-delete" @click.stop="handleRemove('carbackImg')"></i>
  1471. </span>
  1472. </el-upload>
  1473. </div>
  1474. </div>
  1475. </div>
  1476. <div style="text-align: center">
  1477. <el-form :model="carform" label-width="130px" size="small">
  1478. <el-form-item label="所有人">
  1479. <el-input v-model="carform.carOwner" autocomplete="off"></el-input>
  1480. </el-form-item>
  1481. <el-form-item label="车牌号">
  1482. <el-input v-model="carform.licenseNo" autocomplete="off"></el-input>
  1483. </el-form-item>
  1484. <el-form-item label="车架号">
  1485. <el-input v-model="carform.frameNo" autocomplete="off"></el-input>
  1486. </el-form-item>
  1487. <el-form-item label="品牌型号">
  1488. <el-input v-model="carform.modelcname" autocomplete="off"></el-input>
  1489. </el-form-item>
  1490. <el-form-item label="发动机号">
  1491. <el-input v-model="carform.engineNo" autocomplete="off"></el-input>
  1492. </el-form-item>
  1493. <el-form-item label="总质量">
  1494. <el-input v-model="carform.grossMass" autocomplete="off"></el-input>
  1495. </el-form-item>
  1496. <el-form-item label="整备质量">
  1497. <el-input v-model="carform.unladenMass" autocomplete="off"></el-input>
  1498. </el-form-item>
  1499. <el-form-item label="核定载质量">
  1500. <el-input v-model="carform.limitLoad" autocomplete="off"></el-input>
  1501. </el-form-item>
  1502. <el-form-item label="核定载客数">
  1503. <el-input v-model="carform.approvedPassengersCapacity" autocomplete="off"></el-input>
  1504. </el-form-item>
  1505. <el-form-item label="注册日期">
  1506. <el-input v-model="carform.registerDate" autocomplete="off"></el-input>
  1507. </el-form-item>
  1508. <el-form-item label="发证日期">
  1509. <el-input v-model="carform.issueDate" autocomplete="off"></el-input>
  1510. </el-form-item>
  1511. </el-form>
  1512. </div>
  1513. </div>
  1514. </el-row>
  1515. <span slot="footer" class="dialog-footer">
  1516. <el-button type="primary" @click="CarOCRdiscern()" size="small">识 别</el-button>
  1517. <el-button type="primary" @click="CarOCRconfirm()" size="small">确 认</el-button>
  1518. </span>
  1519. </el-dialog>
  1520. <el-dialog :visible.sync="uploaduserdialogVisible" width="960px" style="padding: 10px 20px; box-sizing: border-box"
  1521. @open="closeDialog(userIndex)">
  1522. <el-tabs v-model="activeName">
  1523. <el-tab-pane label="身份证识别" name="1">
  1524. <el-row :gutter="20">
  1525. <div class="bodys1">
  1526. <div>
  1527. <div class="flex">
  1528. <div class="OCR" style="text-align: center">身份证主页</div>
  1529. <div style="text-align: center; margin: 20px" @drop="reportDrop">
  1530. <el-upload class="upload-demo" drag action="#" :show-file-list="false" :auto-upload="false"
  1531. :on-change="userfrontChange">
  1532. <img v-show="userfrontImg" :src="userfrontImg" style="width: 100%; height: 100%" />
  1533. <img v-show="!userfrontImg" src="../../../../static/userfront.png"
  1534. style="width: 100%; height: 100%" />
  1535. <span class="slot" v-show="userfrontImg" @click.stop>
  1536. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(userfrontImg)"></i>
  1537. <i class="el-icon-delete" @click.stop="handleRemove('userfrontImg')"></i>
  1538. </span>
  1539. </el-upload>
  1540. </div>
  1541. </div>
  1542. <div class="flex">
  1543. <div class="OCR" style="text-align: center">身份证副页</div>
  1544. <div style="text-align: center; margin: 20px" @drop="reportDrop">
  1545. <el-upload class="upload-demo" drag action="#" :show-file-list="false" :auto-upload="false"
  1546. :on-change="userbackChange">
  1547. <img v-show="userbackImg" :src="userbackImg" style="width: 100%; height: 100%" />
  1548. <img v-show="!userbackImg" src="../../../../static/userback.png"
  1549. style="width: 100%; height: 100%" />
  1550. <span class="slot" v-show="userbackImg" @click.stop>
  1551. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(userbackImg)"></i>
  1552. <i class="el-icon-delete" @click.stop="handleRemove('userbackImg')"></i>
  1553. </span>
  1554. </el-upload>
  1555. </div>
  1556. </div>
  1557. </div>
  1558. <div style="text-align: center">
  1559. <el-form :model="ownerInfoform" label-width="130px" size="small">
  1560. <el-form-item label="姓名">
  1561. <el-input v-model="ownerInfoform.name" autocomplete="off"></el-input>
  1562. </el-form-item>
  1563. <el-form-item label="性别">
  1564. <el-input v-model="ownerInfoform.gender" autocomplete="off"></el-input>
  1565. </el-form-item>
  1566. <el-form-item label="证件类型">
  1567. <el-input v-model="ownerInfoform.identifyType" autocomplete="off"></el-input>
  1568. </el-form-item>
  1569. <el-form-item label="证件号码">
  1570. <el-input v-model="ownerInfoform.identifyNumber" autocomplete="off"></el-input>
  1571. </el-form-item>
  1572. <el-form-item label="车主手机号">
  1573. <el-input v-model="ownerInfoform.mobile" autocomplete="off"></el-input>
  1574. </el-form-item>
  1575. <el-form-item label="地址">
  1576. <el-input v-model="ownerInfoform.addr" autocomplete="off"></el-input>
  1577. </el-form-item>
  1578. <el-form-item label="有效期起期">
  1579. <el-input disabled v-model="ownerInfoform.identifyValidDate" autocomplete="off"></el-input>
  1580. </el-form-item>
  1581. <el-form-item label="有效期止期">
  1582. <el-input disabled v-model="ownerInfoform.identifyValidEndDate" autocomplete="off"></el-input>
  1583. </el-form-item>
  1584. <el-form-item label="电子邮箱">
  1585. <el-input v-model="ownerInfoform.email" autocomplete="off"></el-input>
  1586. </el-form-item>
  1587. </el-form>
  1588. </div>
  1589. </div>
  1590. </el-row>
  1591. </el-tab-pane>
  1592. <el-tab-pane label="营业执照" name="2">
  1593. <el-row :gutter="20">
  1594. <div class="bodys1">
  1595. <div>
  1596. <div class="flex">
  1597. <div class="OCR" style="text-align: center">营业执照</div>
  1598. <div style="text-align: center; margin: 20px" @drop="reportDrop">
  1599. <el-upload class="upload-demo" drag action="#" :show-file-list="false" :auto-upload="false"
  1600. :on-change="businessChange">
  1601. <img v-show="businessImg" :src="businessImg" style="width: 100%; height: 100%" />
  1602. <img v-show="!businessImg" src="../../../../static/userfront.png"
  1603. style="width: 100%; height: 100%" />
  1604. <span class="slot" v-show="businessImg" @click.stop>
  1605. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(businessImg)"></i>
  1606. <i class="el-icon-delete" @click.stop="handleRemove('businessImg')"></i>
  1607. </span>
  1608. </el-upload>
  1609. </div>
  1610. </div>
  1611. </div>
  1612. <div style="text-align: center">
  1613. <el-form :model="businessform" label-width="130px" size="small">
  1614. <el-form-item label="单位名称">
  1615. <el-input autocomplete="off" v-model="businessform.name"></el-input>
  1616. </el-form-item>
  1617. <el-form-item label="法人">
  1618. <el-input autocomplete="off" v-model="businessform.legalPerson"></el-input>
  1619. </el-form-item>
  1620. <el-form-item label="社会信用代码">
  1621. <el-input autocomplete="off" v-model="businessform.organizationCode"></el-input>
  1622. </el-form-item>
  1623. <el-form-item label="地址">
  1624. <el-input autocomplete="off" v-model="businessform.addr"></el-input>
  1625. </el-form-item>
  1626. <el-form-item label="注册资本">
  1627. <el-input autocomplete="off" v-model="businessform.registeredCapital"></el-input>
  1628. </el-form-item>
  1629. <el-form-item label="经营范围">
  1630. <el-input autocomplete="off" type="textarea" v-model="businessform.scope"></el-input>
  1631. </el-form-item>
  1632. </el-form>
  1633. </div>
  1634. </div>
  1635. </el-row>
  1636. </el-tab-pane>
  1637. </el-tabs>
  1638. <span slot="footer" class="dialog-footer">
  1639. <el-button type="primary" @click="userOCRdiscern()" size="small">识 别</el-button>
  1640. <el-button type="primary" @click="userOCRconfirm()" size="small">确 认</el-button>
  1641. </span>
  1642. </el-dialog>
  1643. <el-dialog :visible.sync="pinganDataDetailVisible" width="40%" title="责任明细">
  1644. <el-table :data="pinganDataDetail" border style="width: 100%">
  1645. <el-table-column prop="insuranceCoverage" label="责任名称">
  1646. </el-table-column>
  1647. <el-table-column prop="unitInsuredAmount" label="每份保额">
  1648. </el-table-column>
  1649. </el-table>
  1650. </el-dialog>
  1651. <div v-if="isLetter == '1'" class="flex j-c a-c footer" :class="$store.state.app.collapse ? 'position-collapse-left' : 'position-left'
  1652. ">
  1653. <el-button size="small" @click="add()">录下一单</el-button>
  1654. <el-button type="primary" :loading="calculateLoading" size="small" @click="quote()">保费计算</el-button>
  1655. </div>
  1656. <div v-if="isLetter == '2'" style="text-align: center">
  1657. <el-button type="primary" :loading="calculateLoading" size="small" @click="quote()">保费计算</el-button>
  1658. </div>
  1659. <div v-if="isLetter == '3'" style="text-align: center">
  1660. <el-button type="primary" size="small" @click="preserveQuote(0, 'emporaryLoading')" :disabled="preserveQuoteLoading"
  1661. :loading="emporaryLoading">暂存</el-button>
  1662. <el-button type="primary" size="small" @click="preserveQuote(1, 'preserveQuoteLoading')"
  1663. :loading="preserveQuoteLoading" :disabled="emporaryLoading">保存</el-button>
  1664. </div>
  1665. <div class="Anchor-link flex f-c j-s a-c" v-if="isLetter == '1'">
  1666. <div>
  1667. <img src="../../../../src/icon/车辆信息.png" alt class="icon-img" @click="handleScroll('Car')" />
  1668. </div>
  1669. <div>
  1670. <img src="../../../../src/icon/投保信息.png" alt class="icon-img" @click="handleScroll('insurance')" />
  1671. </div>
  1672. <div>
  1673. <img src="../../../../src/icon/险别选择.png" alt class="icon-img" @click="handleScroll('more')" />
  1674. </div>
  1675. <div>
  1676. <img src="../../../../src/icon/保险公司.png" alt class="icon-img" @click="handleScroll('company')" />
  1677. </div>
  1678. </div>
  1679. <el-dialog title="核保信息" :visible.sync="underwritingdialogVisible" width="30%">
  1680. <div class="flex j-s f-c">
  1681. <div style="
  1682. font-size: 18px;
  1683. color: #d42426;
  1684. font-weight: 700;
  1685. padding: 10px 30px;
  1686. " v-if="orderstatus == '2'">
  1687. 订单状态:已核保待缴费
  1688. </div>
  1689. </div>
  1690. <span slot="footer" class="dialog-footer">
  1691. <el-button style="width: 100px" type="primary" size="small" v-if="orderstatus == '2'"
  1692. @click="Payment(companyId, queryOrders)">缴费二维码</el-button>
  1693. <!-- <el-button style="width: 100px" type="primary" size="small" v-if="orderstatus == '2' && queryOrders.inscompany=='平安财险'"
  1694. @click="signature(companyId)">生成签章</el-button> -->
  1695. </span>
  1696. </el-dialog>
  1697. <el-dialog title="转保确认码" :visible.sync="renewalCodedialogVisible" width="400px" style="font-weight: bold">
  1698. <div class="flex a-c u-f-sa" v-if="renewalCodeJqImg">
  1699. <span>交强转保确认码</span>
  1700. <div class="flex a-c f-c">
  1701. <img :src="renewalCodeJqImg" alt style="width: 150px; height: 40px; margin-bottom: 5px" />
  1702. <el-input v-model="renewalCodeJq" placeholder="请输入确认码" style="width: 150px"></el-input>
  1703. </div>
  1704. </div>
  1705. <div class="flex a-c u-f-sa" v-if="renewalCodeSyImg">
  1706. <span>商业转保确认码</span>
  1707. <div class="flex a-c f-c">
  1708. <img :src="renewalCodeSyImg" alt style="width: 150px; height: 40px; margin-bottom: 5px" />
  1709. <el-input v-model="renewalCodeSy" placeholder="请输入确认码" style="width: 150px"></el-input>
  1710. </div>
  1711. </div>
  1712. <span slot="footer" class="dialog-footer">
  1713. <el-button size="small" @click="renewalCodedialogVisible = false">取 消</el-button>
  1714. <el-button size="small" type="primary" @click="renewalCodeconfirm">确 定</el-button>
  1715. </span>
  1716. </el-dialog>
  1717. <el-dialog :title="contributingState ? '选择特约' : '提交核保'" :visible.sync="hbsubmitdialogVisible" width="1200px">
  1718. <div style="margin-bottom: 20px; font-weight: bold">特约选择</div>
  1719. <el-table size="small" :data="zijinengageListData" border v-loading="contributingLoading"
  1720. @select="zijinengageChange" @select-all="zijinengageChangeAll" ref="expandTablePro" highlight-current-row
  1721. @cell-dblclick="zijincellDblclick" :cell-class-name="tableCellClassName" :header-cell-style="{
  1722. background: '#F7F7F9 ',
  1723. fontWeight: '700',
  1724. color: '#333333',
  1725. }">
  1726. <el-table-column type="selection" width="55"></el-table-column>
  1727. <el-table-column prop="clauseCode" :width="80" label="特约代码" align="center"></el-table-column>
  1728. <el-table-column v-if="contributingState" :width="100" prop="riskName" label="特约险种"
  1729. align="center"></el-table-column>
  1730. <el-table-column prop="clauseName" label="特约名称" align="center"></el-table-column>
  1731. <el-table-column prop="clauseContent" label="特约内容">
  1732. <template slot-scope="scope">
  1733. <el-input @blur="hideInput" size="small" type="textarea" :ref="scope.row.index + ',' + scope.column.index"
  1734. v-model="scope.row.clauseContent" v-if="scope.row.index + ',' + scope.column.index == currentCell &&
  1735. scope.row.modifyFlag == '1'
  1736. "></el-input>
  1737. <span v-else>{{ scope.row.clauseContent }}</span>
  1738. </template>
  1739. </el-table-column>
  1740. </el-table>
  1741. <span slot="footer" class="dialog-footer">
  1742. <el-button size="small" @click="hbsubmitdialogVisible = false">取 消</el-button>
  1743. <el-button v-if="contributingState" size="small" type="primary"
  1744. @click="hbsubmitdialogVisible = false">确定</el-button>
  1745. <el-button v-else size="small" type="primary" @click="hbsubmit">提交核保</el-button>
  1746. </span>
  1747. </el-dialog>
  1748. <!-- <imageDialog ref="imageDialog" :quoteno="quoteno"></imageDialog>-->
  1749. <!-- 报价单 -->
  1750. <quotationDialog ref="quotationDialog" :queryOrders="queryOrders"></quotationDialog>
  1751. <quotationDialogPro ref="quotationDialogPro" :queryOrders="queryOrders"></quotationDialogPro>
  1752. <el-image-viewer v-if="showViewer" :on-close="closeViewer" :z-index="9999" :url-list="[ProViewImg]" />
  1753. <el-dialog :visible.sync="redictInfodialogVisible" width="70%">
  1754. <el-table :data="redictInfoMsg" style="width: 100%">
  1755. <el-table-column prop="description" label="审核意见"></el-table-column>
  1756. <el-table-column prop="opinion" label="备注"></el-table-column>
  1757. </el-table>
  1758. </el-dialog>
  1759. <!-- 生成签章 -->
  1760. <el-dialog :visible.sync="signaturedialogVisible" title="生成签章" width="14%">
  1761. <div>
  1762. <img :src="resultMessageImg" alt style="width: 100%" />
  1763. <!-- <div id="signaturecode" ref="signaturecode"></div> -->
  1764. </div>
  1765. </el-dialog>
  1766. <!-- 保单上传 -->
  1767. <el-dialog :visible.sync="policyUploaddialogVisible" width="30%">
  1768. <div slot="title" class="dialog-title">
  1769. <span>保单上传</span>
  1770. </div>
  1771. <el-form :model="policyNumberForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
  1772. <el-form-item label="交强保单:" prop="jqPolicy">
  1773. <el-upload class="upload-demo" ref="jqPolicyupload" action="#" :limit="1" :auto-upload="false"
  1774. :on-remove="(file) => removePhoto(file, policyNumberForm.jqPolicyList, 'jqPolicyList')"
  1775. :file-list="policyNumberForm.jqPolicyList" :on-change="(file) => policydrivingupload(file, 'jqPolicy')">
  1776. <el-button size="small" type="primary" v-if="policyNumberForm.jqPolicyList.length===0">点击上传</el-button>
  1777. <el-button size="small" type="primary" @click.stop="policyNumberForm.jqPolicyList = [];jqSignDate=null">清空</el-button>
  1778. </el-upload>
  1779. </el-form-item>
  1780. <el-form-item label="商业保单:" prop="syPolicy">
  1781. <el-upload class="upload-demo" ref="syPolicyupload" action="#" :limit="1" :auto-upload="false"
  1782. :on-remove="(file) => removePhoto(file, policyNumberForm.syPolicyList, 'syPolicyList')"
  1783. :file-list="policyNumberForm.syPolicyList" :on-change="(file) => policydrivingupload(file, 'syPolicy')">
  1784. <el-button size="small" type="primary" v-if="policyNumberForm.syPolicyList.length===0">点击上传</el-button>
  1785. <el-button size="small" type="primary" @click.stop="policyNumberForm.syPolicyList = [];sySignDate=null">清空</el-button>
  1786. </el-upload>
  1787. </el-form-item>
  1788. <el-form-item label="非车保单:" prop="noPolicy">
  1789. <el-upload class="upload-demo" ref="noPolicyupload" action="#" :limit="1" :auto-upload="false"
  1790. :on-remove="(file) => removePhoto(file, policyNumberForm.noPolicyList, 'noPolicyList')"
  1791. :file-list="policyNumberForm.noPolicyList" :on-change="(file) => policydrivingupload(file, 'noPolicy')">
  1792. <el-button size="small" type="primary" v-if="policyNumberForm.noPolicyList.length===0">点击上传</el-button>
  1793. <el-button size="small" type="primary" @click.stop="policyNumberForm.noPolicyList = []">清空</el-button>
  1794. </el-upload>
  1795. </el-form-item>
  1796. <el-form-item label="交强电子标志:" prop="jqSign">
  1797. <el-upload class="upload-demo" ref="jqSignupload" action="#" :limit="1" :auto-upload="false"
  1798. :on-remove="(file) => removePhoto(file, policyNumberForm.jqSignList, 'jqSignList')"
  1799. :file-list="policyNumberForm.jqSignList" :on-change="(file) => policydrivingupload(file, 'jqSign')">
  1800. <el-button size="small" type="primary" v-if="policyNumberForm.jqSignList.length===0">点击上传</el-button>
  1801. <el-button size="small" type="primary" @click.stop="policyNumberForm.jqSignList = []">清空</el-button>
  1802. </el-upload>
  1803. </el-form-item>
  1804. </el-form>
  1805. <span slot="footer" class="dialog-footer">
  1806. <el-button size="small" @click="policyUploaddialogVisible = false">取 消</el-button>
  1807. <el-button size="small" type="primary" @click="policyUploaddialogVisible = false">确 定</el-button>
  1808. </span>
  1809. </el-dialog>
  1810. <!-- 影像上传 -->
  1811. <el-dialog :visible.sync="imageUploaddialogVisible" width="1070px">
  1812. <div slot="title" class="dialog-title">
  1813. <span>影像上传</span>
  1814. </div>
  1815. <el-row>
  1816. <el-col :span="4">
  1817. <div class="tab-style">
  1818. <li class="liMenu" :class="idx == tabLiIndex ? 'tabLi-style' : ''" @click="tabLiScroll(item.scroll, idx)"
  1819. v-for="(item, idx) in tabLimenu" :key="idx">
  1820. {{ item.name }}
  1821. </li>
  1822. </div>
  1823. </el-col>
  1824. <el-col :span="20" style="height: 320px; overflow-y: auto">
  1825. <div class="flex f-wrap" id="vehicle">
  1826. <div class="aaa">
  1827. <span>1.行驶证主页</span>
  1828. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList1', 'imgList1', 'C01')
  1829. " :file-list="imgList1" ref="upload1" :class="{ styleB: imgList1.length == 1 }">
  1830. <img v-show="imgList1.length == 0" src="../../../../static/carfront.png"
  1831. style="width: 100%; height: 100%" />
  1832. <div slot="file" slot-scope="{ file }" v-if="imgList1.length > 0">
  1833. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  1834. <span class="el-upload-list__item-actions">
  1835. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList1', 'imgList1')">
  1836. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  1837. <i class="el-icon-delete"></i>
  1838. </span>
  1839. </span>
  1840. </div>
  1841. </el-upload>
  1842. </div>
  1843. <div class="aaa">
  1844. <span>2.行驶证副页</span>
  1845. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList1', 'imgList2', 'D01')
  1846. " :file-list="imgList2" ref="upload2" :class="{ styleB: imgList2.length === 1 }">
  1847. <img v-show="imgList2.length == 0" src="../../../../static/carback.png"
  1848. style="width: 100%; height: 100%" />
  1849. <div slot="file" slot-scope="{ file }">
  1850. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  1851. <span class="el-upload-list__item-actions">
  1852. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList1', 'imgList2')">
  1853. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  1854. <i class="el-icon-delete"></i>
  1855. </span>
  1856. </span>
  1857. </div>
  1858. </el-upload>
  1859. </div>
  1860. <div class="aaa">
  1861. <span>3.机动车辆登记证书</span>
  1862. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList1', 'imgList12', 'TAR05')
  1863. " :file-list="imgList12" ref="upload2" :class="{ styleB: imgList12.length === 1 }">
  1864. <img v-show="imgList12.length == 0" src="../../../../static/carback.png"
  1865. style="width: 100%; height: 100%" />
  1866. <div slot="file" slot-scope="{ file }">
  1867. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  1868. <span class="el-upload-list__item-actions">
  1869. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList1', 'imgList12')">
  1870. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  1871. <i class="el-icon-delete"></i>
  1872. </span>
  1873. </span>
  1874. </div>
  1875. </el-upload>
  1876. </div>
  1877. <div class="aaa">
  1878. <span>4.新车合格证</span>
  1879. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  1880. drivingupload(file, 'imageList5', 'imgList9', 'XC00')
  1881. " :file-list="imgList9" multiple ref="upload3" :class="{ styleB: imgList9.length === 1 }">
  1882. <img v-show="imgList9.length == 0" src="../../../../static/userfront.png"
  1883. style="width: 100%; height: 100%" />
  1884. <div slot="file" slot-scope="{ file }">
  1885. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  1886. <span class="el-upload-list__item-actions">
  1887. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList5', 'imgList9')">
  1888. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  1889. <i class="el-icon-delete"></i>
  1890. </span>
  1891. </span>
  1892. </div>
  1893. </el-upload>
  1894. </div>
  1895. <div class="aaa">
  1896. <span>5.购车发票</span>
  1897. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  1898. drivingupload(file, 'imageList5', 'imgList10', 'GC00')
  1899. " :file-list="imgList10" multiple ref="upload4" :class="{ styleB: imgList10.length === 1 }">
  1900. <img v-show="imgList10.length == 0" src="../../../../static/userfront.png"
  1901. style="width: 100%; height: 100%" />
  1902. <div slot="file" slot-scope="{ file }">
  1903. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  1904. <span class="el-upload-list__item-actions">
  1905. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList5', 'imgList10')">
  1906. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  1907. <i class="el-icon-delete"></i>
  1908. </span>
  1909. </span>
  1910. </div>
  1911. </el-upload>
  1912. </div>
  1913. </div>
  1914. <div class="flex f-wrap" id="owner">
  1915. <div class="aaa">
  1916. <span>1.车主身份证(正面)</span>
  1917. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList2', 'imgList3', 'C02')
  1918. " :file-list="imgList3" multiple ref="upload3" :class="{ styleB: imgList3.length === 1 }">
  1919. <img v-show="imgList3.length == 0" src="../../../../static/userfront.png"
  1920. style="width: 100%; height: 100%" />
  1921. <div slot="file" slot-scope="{ file }">
  1922. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  1923. <span class="el-upload-list__item-actions">
  1924. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList2', 'imgList3')">
  1925. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  1926. <i class="el-icon-delete"></i>
  1927. </span>
  1928. </span>
  1929. </div>
  1930. </el-upload>
  1931. </div>
  1932. <div class="aaa">
  1933. <span>2.车主身份证(反面)</span>
  1934. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList2', 'imgList4', 'D02')
  1935. " :file-list="imgList4" multiple ref="upload4" :class="{ styleB: imgList4.length === 1 }">
  1936. <img v-show="imgList4.length == 0" src="../../../../static/userback.png"
  1937. style="width: 100%; height: 100%" />
  1938. <div slot="file" slot-scope="{ file }">
  1939. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  1940. <span class="el-upload-list__item-actions">
  1941. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList2', 'imgList4')">
  1942. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  1943. <i class="el-icon-delete"></i>
  1944. </span>
  1945. </span>
  1946. </div>
  1947. </el-upload>
  1948. </div>
  1949. <div class="aaa">
  1950. <span>3.车主营业执照</span>
  1951. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag multiple :on-change="(file) => drivingupload(file, 'imageList2', 'imgList26', 'Y02')"
  1952. ref="upload4" :file-list="imgList26" :class="{ styleB: imgList26.length === 1 }">
  1953. <img v-show="imgList26.length == 0" src="../../../../static/userfront.png" style="width: 100%; height: 100%" :class="{ styleB: imgList26.length === 1 }" />
  1954. <div slot="file" slot-scope="{ file }">
  1955. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  1956. <span class="el-upload-list__item-actions">
  1957. <span class="el-upload-list__item-delete"
  1958. @click="handleRemove1(file, 'imageList2', 'imgList26')">
  1959. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  1960. <i class="el-icon-delete"></i>
  1961. </span>
  1962. </span>
  1963. </div>
  1964. </el-upload>
  1965. </div>
  1966. </div>
  1967. <div class="flex f-wrap" id="applicant">
  1968. <div class="aaa">
  1969. <span>1.投保人身份证(正面)</span>
  1970. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList3', 'imgList5', 'C03')
  1971. " :file-list="imgList5" multiple ref="upload5" :class="{ styleB: imgList5.length === 1 }">
  1972. <img v-show="imgList5.length == 0" src="../../../../static/userfront.png"
  1973. style="width: 100%; height: 100%" />
  1974. <div slot="file" slot-scope="{ file }">
  1975. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  1976. <span class="el-upload-list__item-actions">
  1977. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList3', 'imgList5')">
  1978. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  1979. <i class="el-icon-delete"></i>
  1980. </span>
  1981. </span>
  1982. </div>
  1983. </el-upload>
  1984. </div>
  1985. <div class="aaa">
  1986. <span>2.投保人身份证(反面)</span>
  1987. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList3', 'imgList6', 'D03')
  1988. " :file-list="imgList6" multiple ref="upload6" :class="{ styleB: imgList6.length === 1 }">
  1989. <img v-show="imgList6.length == 0" src="../../../../static/userback.png"
  1990. style="width: 100%; height: 100%" />
  1991. <div slot="file" slot-scope="{ file }">
  1992. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  1993. <span class="el-upload-list__item-actions">
  1994. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList3', 'imgList6')">
  1995. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  1996. <i class="el-icon-delete"></i>
  1997. </span>
  1998. </span>
  1999. </div>
  2000. </el-upload>
  2001. </div>
  2002. <div class="aaa">
  2003. <span>3.投保人营业执照</span>
  2004. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList3', 'imgList27', 'Y03')
  2005. " :file-list="imgList27" multiple ref="upload6" :class="{ styleB: imgList27.length === 1 }" >
  2006. <img v-show="imgList27.length == 0" src="../../../../static/userfront.png" style="width: 100%; height: 100%" />
  2007. <div slot="file" slot-scope="{ file }">
  2008. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2009. <span class="el-upload-list__item-actions">
  2010. <span class="el-upload-list__item-delete"
  2011. @click="handleRemove1(file, 'imageList3', 'imgList27')">
  2012. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2013. <i class="el-icon-delete"></i>
  2014. </span>
  2015. </span>
  2016. </div>
  2017. </el-upload>
  2018. </div>
  2019. </div>
  2020. <div class="flex f-wrap">
  2021. <div class="aaa">
  2022. <span id="insured">1.被保人身份证(正面)</span>
  2023. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList4', 'imgList7', 'C04')
  2024. " :file-list="imgList7" multiple ref="upload7" :class="{ styleB: imgList7.length === 1 }">
  2025. <img v-show="imgList7.length == 0" src="../../../../static/userfront.png"
  2026. style="width: 100%; height: 100%" />
  2027. <div slot="file" slot-scope="{ file }">
  2028. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2029. <span class="el-upload-list__item-actions">
  2030. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList4', 'imgList7')">
  2031. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2032. <i class="el-icon-delete"></i>
  2033. </span>
  2034. </span>
  2035. </div>
  2036. </el-upload>
  2037. </div>
  2038. <div class="aaa">
  2039. <span>2.被保人身份证(反面)</span>
  2040. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList4', 'imgList8', 'D04')
  2041. " :file-list="imgList8" multiple ref="upload8" :class="{ styleB: imgList8.length === 1 }">
  2042. <img v-show="imgList8.length == 0" src="../../../../static/userback.png"
  2043. style="width: 100%; height: 100%" />
  2044. <div slot="file" slot-scope="{ file }">
  2045. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2046. <span class="el-upload-list__item-actions">
  2047. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList4', 'imgList8')">
  2048. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2049. <i class="el-icon-delete"></i>
  2050. </span>
  2051. </span>
  2052. </div>
  2053. </el-upload>
  2054. </div>
  2055. <div class="aaa">
  2056. <span>3.被保人营业执照</span>
  2057. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList4', 'imgList28', 'Y04')
  2058. " :file-list="imgList28" multiple ref="upload8" :class="{ styleB: imgList28.length === 1 }"
  2059. >
  2060. <img v-show="imgList28.length == 0" src="../../../../static/userfront.png" style="width: 100%; height: 100%" />
  2061. <div slot="file" slot-scope="{ file }">
  2062. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2063. <span class="el-upload-list__item-actions">
  2064. <span class="el-upload-list__item-delete"
  2065. @click="handleRemove1(file, 'imageList4', 'imgList28')">
  2066. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2067. <i class="el-icon-delete"></i>
  2068. </span>
  2069. </span>
  2070. </div>
  2071. </el-upload>
  2072. </div>
  2073. </div>
  2074. <div class="flex f-wrap" id="relationship">
  2075. <div class="aaa">
  2076. <span>1.关系证明</span>
  2077. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  2078. drivingupload(file, 'imageList5', 'imgList11', 'GX00')
  2079. " :file-list="imgList11" multiple ref="upload3" :class="{ styleB: imgList11.length === 1 }">
  2080. <img v-show="imgList11.length == 0" src="../../../../static/userfront.png"
  2081. style="width: 100%; height: 100%" />
  2082. <div slot="file" slot-scope="{ file }">
  2083. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2084. <span class="el-upload-list__item-actions">
  2085. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList5', 'imgList11')">
  2086. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2087. <i class="el-icon-delete"></i>
  2088. </span>
  2089. </span>
  2090. </div>
  2091. </el-upload>
  2092. </div>
  2093. </div>
  2094. <div class="flex f-wrap" id="yanchezhao">
  2095. <div class="aaa">
  2096. <span>1.验车照(车架)</span>
  2097. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  2098. drivingupload(file, 'imageList6', 'imgList13', 'C0500')
  2099. " :file-list="imgList13" multiple ref="upload3" :class="{ styleB: imgList13.length === 1 }">
  2100. <img v-show="imgList13.length == 0" src="../../../../static/userfront.png"
  2101. style="width: 100%; height: 100%" />
  2102. <div slot="file" slot-scope="{ file }">
  2103. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2104. <span class="el-upload-list__item-actions">
  2105. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList13')">
  2106. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2107. <i class="el-icon-delete"></i>
  2108. </span>
  2109. </span>
  2110. </div>
  2111. </el-upload>
  2112. </div>
  2113. <div class="aaa">
  2114. <span>2.验车照(后左)</span>
  2115. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  2116. drivingupload(file, 'imageList6', 'imgList14', 'C0501')
  2117. " :file-list="imgList14" multiple ref="upload3" :class="{ styleB: imgList14.length === 1 }">
  2118. <img v-show="imgList14.length == 0" src="../../../../static/userfront.png"
  2119. style="width: 100%; height: 100%" />
  2120. <div slot="file" slot-scope="{ file }">
  2121. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2122. <span class="el-upload-list__item-actions">
  2123. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList14')">
  2124. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2125. <i class="el-icon-delete"></i>
  2126. </span>
  2127. </span>
  2128. </div>
  2129. </el-upload>
  2130. </div>
  2131. <div class="aaa">
  2132. <span>3.验车照(后右)</span>
  2133. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  2134. drivingupload(file, 'imageList6', 'imgList15', 'C0502')
  2135. " :file-list="imgList15" multiple ref="upload3" :class="{ styleB: imgList15.length === 1 }">
  2136. <img v-show="imgList15.length == 0" src="../../../../static/userfront.png"
  2137. style="width: 100%; height: 100%" />
  2138. <div slot="file" slot-scope="{ file }">
  2139. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2140. <span class="el-upload-list__item-actions">
  2141. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList15')">
  2142. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2143. <i class="el-icon-delete"></i>
  2144. </span>
  2145. </span>
  2146. </div>
  2147. </el-upload>
  2148. </div>
  2149. <div class="aaa">
  2150. <span>4.验车照(前右)</span>
  2151. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  2152. drivingupload(file, 'imageList6', 'imgList16', 'C0503')
  2153. " :file-list="imgList16" multiple ref="upload3" :class="{ styleB: imgList16.length === 1 }">
  2154. <img v-show="imgList16.length == 0" src="../../../../static/userfront.png"
  2155. style="width: 100%; height: 100%" />
  2156. <div slot="file" slot-scope="{ file }">
  2157. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2158. <span class="el-upload-list__item-actions">
  2159. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList16')">
  2160. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2161. <i class="el-icon-delete"></i>
  2162. </span>
  2163. </span>
  2164. </div>
  2165. </el-upload>
  2166. </div>
  2167. <div class="aaa">
  2168. <span>5.验车照(前左)</span>
  2169. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  2170. drivingupload(file, 'imageList6', 'imgList17', 'C0504')
  2171. " :file-list="imgList17" multiple ref="upload3" :class="{ styleB: imgList17.length === 1 }">
  2172. <img v-show="imgList17.length == 0" src="../../../../static/userfront.png"
  2173. style="width: 100%; height: 100%" />
  2174. <div slot="file" slot-scope="{ file }">
  2175. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2176. <span class="el-upload-list__item-actions">
  2177. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList17')">
  2178. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2179. <i class="el-icon-delete"></i>
  2180. </span>
  2181. </span>
  2182. </div>
  2183. </el-upload>
  2184. </div>
  2185. <div class="aaa">
  2186. <span>6.验车照(正前)</span>
  2187. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  2188. drivingupload(file, 'imageList6', 'imgList18', 'C0506')
  2189. " :file-list="imgList18" multiple ref="upload3" :class="{ styleB: imgList18.length === 1 }">
  2190. <img v-show="imgList18.length == 0" src="../../../../static/userfront.png"
  2191. style="width: 100%; height: 100%" />
  2192. <div slot="file" slot-scope="{ file }">
  2193. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2194. <span class="el-upload-list__item-actions">
  2195. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList18')">
  2196. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2197. <i class="el-icon-delete"></i>
  2198. </span>
  2199. </span>
  2200. </div>
  2201. </el-upload>
  2202. </div>
  2203. <div class="aaa">
  2204. <span>7.验车照(正后)</span>
  2205. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  2206. drivingupload(file, 'imageList6', 'imgList19', 'C0507')
  2207. " :file-list="imgList19" multiple ref="upload3" :class="{ styleB: imgList19.length === 1 }">
  2208. <img v-show="imgList19.length == 0" src="../../../../static/userfront.png"
  2209. style="width: 100%; height: 100%" />
  2210. <div slot="file" slot-scope="{ file }">
  2211. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2212. <span class="el-upload-list__item-actions">
  2213. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList19')">
  2214. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2215. <i class="el-icon-delete"></i>
  2216. </span>
  2217. </span>
  2218. </div>
  2219. </el-upload>
  2220. </div>
  2221. <div class="aaa">
  2222. <span>8.验车照(人车合影)</span>
  2223. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  2224. drivingupload(file, 'imageList6', 'imgList20', 'C0505')
  2225. " :file-list="imgList20" multiple ref="upload3" :class="{ styleB: imgList20.length === 1 }">
  2226. <img v-show="imgList20.length == 0" src="../../../../static/userfront.png"
  2227. style="width: 100%; height: 100%" />
  2228. <div slot="file" slot-scope="{ file }">
  2229. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2230. <span class="el-upload-list__item-actions">
  2231. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList20')">
  2232. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2233. <i class="el-icon-delete"></i>
  2234. </span>
  2235. </span>
  2236. </div>
  2237. </el-upload>
  2238. </div>
  2239. <div class="aaa">
  2240. <span>9.验车照(地标合影)</span>
  2241. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  2242. drivingupload(file, 'imageList6', 'imgList21', 'C0508')
  2243. " :file-list="imgList21" multiple ref="upload3" :class="{ styleB: imgList21.length === 1 }">
  2244. <img v-show="imgList21.length == 0" src="../../../../static/userfront.png"
  2245. style="width: 100%; height: 100%" />
  2246. <div slot="file" slot-scope="{ file }">
  2247. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2248. <span class="el-upload-list__item-actions">
  2249. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList21')">
  2250. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2251. <i class="el-icon-delete"></i>
  2252. </span>
  2253. </span>
  2254. </div>
  2255. </el-upload>
  2256. </div>
  2257. <div class="aaa">
  2258. <span>10.验车照(工作台)</span>
  2259. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  2260. drivingupload(file, 'imageList6', 'imgList22', 'C0509')
  2261. " :file-list="imgList22" multiple ref="upload3" :class="{ styleB: imgList22.length === 1 }">
  2262. <img v-show="imgList22.length == 0" src="../../../../static/userfront.png"
  2263. style="width: 100%; height: 100%" />
  2264. <div slot="file" slot-scope="{ file }">
  2265. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2266. <span class="el-upload-list__item-actions">
  2267. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList22')">
  2268. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2269. <i class="el-icon-delete"></i>
  2270. </span>
  2271. </span>
  2272. </div>
  2273. </el-upload>
  2274. </div>
  2275. <div class="aaa">
  2276. <span>11.验车照(天窗)</span>
  2277. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  2278. drivingupload(file, 'imageList6', 'imgList23', 'C0510')
  2279. " :file-list="imgList23" multiple ref="upload3" :class="{ styleB: imgList23.length === 1 }">
  2280. <img v-show="imgList23.length == 0" src="../../../../static/userfront.png"
  2281. style="width: 100%; height: 100%" />
  2282. <div slot="file" slot-scope="{ file }">
  2283. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2284. <span class="el-upload-list__item-actions">
  2285. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList23')">
  2286. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2287. <i class="el-icon-delete"></i>
  2288. </span>
  2289. </span>
  2290. </div>
  2291. </el-upload>
  2292. </div>
  2293. </div>
  2294. <div class="flex f-wrap" id="snbaodan">
  2295. <div class="aaa">
  2296. <span>1.上年商业险保单</span>
  2297. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  2298. drivingupload(file, 'imageList6', 'imgList24', 'LAST_INSURANCE_POLICY')
  2299. " :file-list="imgList24" multiple ref="upload3" :class="{ styleB: imgList24.length === 1 }">
  2300. <img v-show="imgList24.length == 0" src="../../../../static/userfront.png"
  2301. style="width: 100%; height: 100%" />
  2302. <div slot="file" slot-scope="{ file }">
  2303. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2304. <span class="el-upload-list__item-actions">
  2305. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList24')">
  2306. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2307. <i class="el-icon-delete"></i>
  2308. </span>
  2309. </span>
  2310. </div>
  2311. </el-upload>
  2312. </div>
  2313. </div>
  2314. </el-col>
  2315. </el-row>
  2316. <span slot="footer" class="dialog-footer">
  2317. <el-button size="small" @click="imageUploaddialogVisible = false">取 消</el-button>
  2318. <el-button size="small" type="primary" @click="uploadinformation">上传资料</el-button>
  2319. </span>
  2320. </el-dialog>
  2321. <floatingBar />
  2322. </div>
  2323. </template>
  2324. <script>
  2325. import {Decimal} from "decimal.js";
  2326. let _self;
  2327. import QRCode from "qrcodejs2";
  2328. import Cookies from "js-cookie";
  2329. import CommonUtil from "@/utils/comutil.js";
  2330. import {
  2331. getAgeByIdCard,
  2332. searchkey,
  2333. addressCode,
  2334. getGenderByIdCard,
  2335. } from "@/utils/validate.js";
  2336. import citydata from "@/assets/js/citydata.js";
  2337. import yongchengData from '../../../assets/js/yongchengData';
  2338. import { regionData, codeToText } from "element-china-area-data";
  2339. import { base64ToPath } from "@/common/image-tools-base64.js";
  2340. import quotationDialog from "@/views/Core/components/quotationDialog.vue";
  2341. import quotationDialogPro from "@/views/Core/components/quotationDialogPro.vue";
  2342. import detailsDialog from "@/views/Core/components/detailsDialog.vue";
  2343. import imageDialog from "@/views/Core/components/imageDialog.vue";
  2344. import floatingBar from '@/components/customerService/floatingBar.vue';//表单组件
  2345. import { mapState } from "vuex";
  2346. import {uploadFileToTraferSignDateTime} from "../../../http/moudules/letter";
  2347. export default {
  2348. inject: ["reload"],
  2349. name: "qrCode",
  2350. data() {
  2351. var checkpurchasePrice = (rule, value, callback) => {
  2352. if (!value) {
  2353. callback(new Error("新车购置价不能为空"));
  2354. } else if (value == 0) {
  2355. callback(new Error("新车购置价不能为零"));
  2356. } else {
  2357. callback();
  2358. }
  2359. };
  2360. var checkframeNo = (rule, value, callback) => {
  2361. if (value.length < 17) {
  2362. callback(new Error("车架号不足17位"));
  2363. } else if (
  2364. value.indexOf("I") != "-1" ||
  2365. value.indexOf("O") != "-1" ||
  2366. value.indexOf("Q") != "-1"
  2367. ) {
  2368. callback(new Error("车架号不能包含(I O Q)三个字母"));
  2369. } else {
  2370. callback();
  2371. }
  2372. };
  2373. var carPhoneValid = (rule, value, callback) => {
  2374. const plateNumber =
  2375. /^([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领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})$/;
  2376. if (!value) {
  2377. callback(new Error("请输入车牌号"));
  2378. } else if (plateNumber.test(value)) {
  2379. callback();
  2380. } else {
  2381. callback(new Error("请输入正确的车牌号"));
  2382. }
  2383. };
  2384. return {
  2385. // add by hxl 2025-06-26 ---begin
  2386. jqSignDate:null,
  2387. sySignDate:null,
  2388. // add by end 2025-06-266 ---begin
  2389. // add by hxl 2024-12-16 ---begin
  2390. orderExternalStatus: 0,
  2391. companyName:"",
  2392. xxNowCostsId:"",
  2393. costFlag: "",
  2394. isInquiryNow:"",
  2395. isInquirySelectFlag:false,
  2396. isInquirySelect:[
  2397. {
  2398. id:"1",
  2399. value:"是"
  2400. },
  2401. {
  2402. id:"2",
  2403. value:"否"
  2404. },
  2405. ],
  2406. ztreeNodes: [],
  2407. // add by hxl 2024-12-16 -------end
  2408. inquiryNowList: [], // 现询列表
  2409. isInquiryNowDisable: false,
  2410. taikangtemplateSelection: [], // 泰康
  2411. taikangInsuranceDataTable: [],
  2412. taikangaccidentDataList: [],
  2413. accidentPremiumTk: "",
  2414. accidentPremiumPA: '',
  2415. accidentFormTk: {
  2416. quantity: "1",
  2417. sumPremium: 0,
  2418. },
  2419. pinganDataDetail: [],
  2420. pinganDataDetailVisible: false,
  2421. accidentFormPA: [{
  2422. quantity: "1",
  2423. premium: 0,
  2424. pingantemplateSelection: '',
  2425. pinganInsuranceDataTable: [],
  2426. pinganInsurancetype: '',
  2427. },
  2428. {
  2429. quantity: "1",
  2430. premium: 0,
  2431. pingantemplateSelection: '',
  2432. pinganInsuranceDataTable: [],
  2433. pinganInsurancetype: '',
  2434. },
  2435. {
  2436. quantity: "1",
  2437. premium: 0,
  2438. pingantemplateSelection: '',
  2439. pinganInsuranceDataTable: [],
  2440. pinganInsurancetype: '',
  2441. }],
  2442. taikangaccidentalDrivingVo: {},
  2443. pinganaccidentalDrivingVo: {
  2444. 0: {},
  2445. 1: {},
  2446. 2: [],
  2447. },
  2448. nowCostsId: undefined, // 现询
  2449. policyNumberForm: {
  2450. signDate: "",
  2451. jqpolicyno: "",
  2452. sypolicyno: "",
  2453. jypolicyno: "",
  2454. jqpremium: "",
  2455. sypremium: "",
  2456. jypremium: "",
  2457. taxamount: "",
  2458. commissionFeevalue: "",
  2459. otherFeevalue: "",
  2460. jqSuperviseCostsProportion: "",
  2461. sySuperviseCostsProportion: "",
  2462. noSuperviseCostsProportion: "",
  2463. jqOtherCostsProportion: "",
  2464. syOtherCostsProportion: "",
  2465. noOtherCostsProportion: "",
  2466. jqReceivableProportion: "",
  2467. syReceivableProportion: "",
  2468. noReceivableProportion: "",
  2469. jqPolicyList: [],
  2470. syPolicyList: [],
  2471. jqSignList: [],
  2472. noPolicyList: [],
  2473. noCostsProportion: '',
  2474. jqCostsProportion: '',
  2475. syCostsProportion: '',
  2476. },
  2477. watermarkedImage: "",
  2478. redictInfoMsg: [],
  2479. redictInfodialogVisible: false,
  2480. qrcodeWidth: "180",
  2481. qrcodeHeight: "180",
  2482. activeName: "1",
  2483. isTaxSourceModel: "",
  2484. tabLiIndex: 0,
  2485. tabLimenu: [
  2486. {
  2487. name: "车辆信息",
  2488. scroll: "vehicle",
  2489. },
  2490. {
  2491. name: "车主信息",
  2492. scroll: "owner",
  2493. },
  2494. {
  2495. name: "投保人信息",
  2496. scroll: "applicant",
  2497. },
  2498. {
  2499. name: "被保人信息",
  2500. scroll: "insured",
  2501. },
  2502. {
  2503. name: "关系证明",
  2504. scroll: "relationship",
  2505. },
  2506. {
  2507. name: "验车照",
  2508. scroll: "yanchezhao",
  2509. },
  2510. {
  2511. name: "上年商业险保单",
  2512. scroll: "snbaodan",
  2513. },
  2514. ],
  2515. packageValue: "",
  2516. packageOptions: [],
  2517. zhongmeitemplateSelection: "", //中煤驾意险产品选中值
  2518. zhongmeiInsuranceData: [], //中煤驾意险产品列表数据
  2519. zhongmeiInsuranceDataTable: [], //中煤驾意险产品明细方案数据
  2520. zhongmeiaccidentalDrivingVo: {}, //中煤驾意险最终选中字段
  2521. pinganInsuranceData: [], //平安驾意险产品列表数据
  2522. currentCell: null,
  2523. feeDetailInfo: [], //费用明细信息
  2524. immediatelyValue: false,
  2525. isRetractZJ: false,
  2526. isRetractHB: false,
  2527. isRetractZM: false,
  2528. isRetractASTP: false,
  2529. isRetractZA: false,
  2530. isRetractYC: false,
  2531. isRetractRS: false,
  2532. anshengInsurancetype: "",
  2533. iscCrownerShow: false,
  2534. isApplicantShow: false,
  2535. isInsuredShow: false,
  2536. formInline: {},
  2537. anshengtemplateSelection: "", //安盛
  2538. anshengInsuranceData: [], //安盛驾意险
  2539. anshengInsuranceDataTable: [], //安盛驾意险
  2540. anshengaccidentalDrivingVo: {}, //安盛驾意险
  2541. hengbangtemplateSelection: "", //恒邦
  2542. hengbangInsuranceData: [], //恒邦驾意险
  2543. hengbangInsuranceDataTable: [],
  2544. hengbangaccidentalDrivingVo: {}, //恒邦驾意险
  2545. chengtaitemplateSelection: "", //诚泰
  2546. chengtaiInsuranceData: [], //诚泰驾意险
  2547. chengtaiInsuranceDataTable: [],
  2548. chengtaiaccidentalDrivingVo: {}, //诚泰驾意险
  2549. insuranceHN: "", //华农
  2550. huanongInsuranceData: [], //华农驾意险
  2551. huanongInsuranceDataTable: [],
  2552. huanongaccidentalDrivingVo: {}, //华农驾意险
  2553. renshouaccidentalDrivingVo: {}, //人寿意外险
  2554. renshouInsuranceData: [], //-人寿意外险list
  2555. ziJinInsuranceData: [], //-紫金意外险list
  2556. zhonganInsuranceData: [], //众安驾意险
  2557. zhonganaccidentalDrivingVo: {}, //众安驾意险
  2558. zijinInsuranceDataTable: [],
  2559. zijintemplateSelection: "",
  2560. accidentalDrivingVo: [], //-紫金意外险传参
  2561. zijinengageListData: [], //紫金特约
  2562. zijinengageList: [], //紫金特约
  2563. // ------------紫金意外险
  2564. renshoutemplateSelection: "", //人寿
  2565. renshouInsuranceDataTable: [],
  2566. zhongantemplateSelection: "", //众安
  2567. zhonganInsuranceDataTable: [],
  2568. taipingtemplateSelection: "", //太平
  2569. taipingInsuranceData: [], //太平驾意险
  2570. TPDrivingChangeInsuranceData: [],
  2571. taipingaccidentalDrivingVo: {}, //太平驾意险
  2572. licenseplate: true,
  2573. calculateLoading: false, //保费计算按钮 节流
  2574. preserveQuoteLoading: false, //保存按钮
  2575. emporaryLoading: false,
  2576. accidentForm: {
  2577. quantity: "1",
  2578. sumPremium: 0,
  2579. }, //永诚意外险内容
  2580. accidentFormHN: {
  2581. allQuantity: "1",
  2582. quantity: "1",
  2583. }, //华农意外险内容
  2584. yongchengaccidentDataList: [], //永诚意外险
  2585. yongchengtemplateSelection: "",
  2586. guoRenaccidentDataList: [], //国任意外险
  2587. guoRenInsuranceDataTable: [],
  2588. guoRenaccidentDataListChild: [],
  2589. guoRenaccidentalDrivingVo: {}, //国任驾意险
  2590. dajiatemplateSelection: "",
  2591. dajiaaccidentDataListChild: [],
  2592. dajiaaccidentForm: {},
  2593. dajiaInsuranceData: [], //大家意外险
  2594. dajiaInsuranceDataTable: [],
  2595. dajiaaccidentalDrivingVo: {},
  2596. yongchengInsuranceDataTable: [],
  2597. guoRenaccidentLoading: false,
  2598. contributingLoading: false,
  2599. guoRenaccidentPremium: "",
  2600. guoRenaccidentForm: {
  2601. quantity: "1",
  2602. sumPremium: 0,
  2603. }, //国任意外险内容
  2604. accidentFormZM: {
  2605. quantity: "1",
  2606. sumPremium: 0,
  2607. }, //中煤意外险内容
  2608. boHaiaccidentDataList: [], //渤海意外险
  2609. boHaigtemplateSelection: '',
  2610. boHaiaccidentForm: {
  2611. copies: "1",
  2612. policyNum: 0,
  2613. },
  2614. bohaiInsuranceDataTable: [],
  2615. accidentPremium: "",
  2616. accidentPremiumZM: "",
  2617. contributingState: false, //是否为国任特约
  2618. pickerOptions: {
  2619. disabledDate(time) {
  2620. //若选择的日期小于当前日期(包含今天)
  2621. return time.getTime() > Date.now();
  2622. //若选择的日期大于当前日期(不包含今天): time.getTime() < Date.now()
  2623. //若选择的日期小于当前日期(不包含今天): time.getTime() > Date.now() - 8.64e7
  2624. //若选择的日期小于等于当前日期(包含今天): time.getTime() > Date.now()
  2625. },
  2626. },
  2627. attributionform: {
  2628. //续保查询数据
  2629. configure: [],
  2630. companyId: "",
  2631. },
  2632. continuousAction: [], //续保配置项
  2633. //永诚转保确认码
  2634. cqryCdeJq: "",
  2635. cqryCdeSy: "",
  2636. renewalCodeJq: "", //交强确认码
  2637. renewalCodeSy: "", //商业确认码
  2638. renewalCodeJqImg: "", //交强图片
  2639. renewalCodeSyImg: "", //商业图片
  2640. //-----------------
  2641. showViewer: false,
  2642. transferDateShow: false, //转移登记日期
  2643. yonganchecked: false, //永安驾意险
  2644. renbaochecked: false, //人保驾意险
  2645. zhongmeichecked: false, //中煤驾意险
  2646. hengbangchecked: false, //恒邦驾意险
  2647. yongchengchecked: false, //永诚驾意险
  2648. yonganDrivinglist: [],
  2649. renbaoDrivinglist: [],
  2650. zhongmeiDrivinglist: [],
  2651. hengbangDrivinglist: [],
  2652. yongchengDrivinglist: [],
  2653. tbczcarShow: true, //投保人同车主
  2654. bbczcarShow: false, //被保人同车主
  2655. bbtbcarShow: true, //被保人同投保人
  2656. imageUploadShow: true, //上传影像显示
  2657. ProViewImg: "", //预览图片
  2658. carfrontImg: "", //行驶证正面
  2659. carbackImg: "", //行驶证背面
  2660. userfrontImg: "", //身份证正面
  2661. userbackImg: "", //身份证背面
  2662. businessImg: "",
  2663. CarFrontFile: "", //车正面文件流
  2664. CarBackFile: "", //车背面文件流
  2665. C02File: "",
  2666. D02File: "",
  2667. C03File: "",
  2668. D03File: "",
  2669. C04File: "",
  2670. D04File: "",
  2671. userIndex: 1, //区分三种人员
  2672. TabName: "car", //默认选项卡
  2673. value1: "",
  2674. chexingdialogVisible: false, //车型选择 显示/隐藏
  2675. sbdmdialogVisible: false, //车型车辆识别代码选择 显示/隐藏
  2676. codedialogVisible: false, //二维码 显示/隐藏
  2677. codedialogVisiblePro: false,
  2678. uploadcardialogVisible: false, //行驶证识别 显示/隐藏
  2679. uploaduserdialogVisible: false, //身份证识别 显示/隐藏
  2680. imageUploaddialogVisible: false, //影像上传 显示/隐藏
  2681. policyUploaddialogVisible: false, //保单上传
  2682. underwritingdialogVisible: false, //核保信息 显示/隐藏
  2683. renewalCodedialogVisible: false, //转保确认码输入
  2684. hbsubmitdialogVisible: false, //核保弹框
  2685. signaturedialogVisible: false, //生成签章
  2686. signaturecode: null,
  2687. Carinsurance: {
  2688. jqinsurance: "1", //交强险
  2689. syinsurance: "1", //商业险
  2690. },
  2691. jqchecked: true,
  2692. sychecked: false,
  2693. jqstartDate: "", //交强时间
  2694. jqendDate: "", //交强时间
  2695. systartDate: "", //商业时间
  2696. syendDate: "", //商业时间
  2697. loading: false, //加载事件
  2698. reslist: [], //车型列表
  2699. userId: "", //出单工号
  2700. carInfo: {
  2701. powerScale: "", ///功率
  2702. licenseNo: "", //车牌号
  2703. brandName: "", //车辆品牌型号
  2704. vinNo: "", //车架号
  2705. engineNo: "", //发动机号
  2706. modelCode: "", //车型编码
  2707. seatCount: null, //核定载客量 核定载人数
  2708. purchasePrice: null, //新车购置价最低,行业实际价值,协商价值
  2709. carBrand: "", //车型品牌
  2710. ciCarName: "", //行业车型名称
  2711. ciModelCode: "", //行业车型编码
  2712. completeKerbMass: "", //整备质量
  2713. exhaustScale: "", //排量
  2714. factory: "", //工厂名称
  2715. factoryid: "", //工厂编码
  2716. frameNo: "", //车架号
  2717. licenseTypeCode: "02", //号牌种类
  2718. vehicleclass: "", //车辆类型
  2719. familyName: "", //车型
  2720. modelcname: "", //车型名称
  2721. powertypecode: "", //燃料类型编码
  2722. vehicleweight: "", //总质量
  2723. limitLoad: "", //核定载质量
  2724. caryear: null, //年款
  2725. cimodelclass: "A0", //车辆种类
  2726. energyType: "0", //能源类型
  2727. enginedesc: "", //排量
  2728. registerDate: "", //注册日期
  2729. issueDate: "", //发证日期
  2730. transferFlag: 0, //过户标志
  2731. transferFlagBi: false, //商业险是否过户
  2732. transferDate: "", //过户日期
  2733. loanStatus: 0, //贷款标志
  2734. firstBeneMan: "", //第一受益人
  2735. noLicenseFlag: false, //是否新车
  2736. cartype: "", //客车A0 货车H0
  2737. carnature: "02", //使用性质
  2738. vehicleUse: "05",
  2739. property: "1", //所属性质 1个人 2企业 3个人
  2740. },
  2741. carform: {
  2742. carOwner: "", //车主
  2743. licenseNo: "", //车牌号
  2744. modelcname: "", //车辆品牌型号
  2745. frameNo: "", //车架号
  2746. engineNo: "", //发动机号
  2747. registerDate: "", //注册日期
  2748. issueDate: "", //发证日期
  2749. grossMass: "", //总质量
  2750. unladenMass: "", //整备质量
  2751. limitLoad: "", //核定载质量
  2752. approvedPassengersCapacity: "", //核定载客数
  2753. },
  2754. ownerInfoform: {
  2755. name: "",
  2756. identifyType: "",
  2757. identifyNumber: "",
  2758. age: "", //年龄
  2759. gender: "", //性别
  2760. addr: "",
  2761. email: "",
  2762. mobile: "",
  2763. identifyValidDate: "", //有效期起期
  2764. identifyValidEndDate: "", //有效期止期
  2765. // province: "",//省
  2766. // city: "",//市
  2767. // county: "",//县
  2768. },
  2769. riskList: [], //险种大类信息
  2770. kindList: [], //商业险险别
  2771. ownerInfo: {
  2772. //车主
  2773. name: "", //姓名
  2774. identifyType: "01", //身份证类型
  2775. identifyNumber: "", //身份证号
  2776. age: "", //年龄
  2777. gender: "", //性别
  2778. addr: "", //地址
  2779. email: "", //邮箱
  2780. mobile: "", //电话
  2781. organizationCode:"",
  2782. identifyValidDate: "", //有效期起期
  2783. identifyValidEndDate: "", //有效期止期
  2784. property:'1',
  2785. // province: "",//省
  2786. // city: "",//市
  2787. // county: "",//县
  2788. provinceData: [], //省市区
  2789. },
  2790. policyHolderInfo: {
  2791. //投保人
  2792. name: "", //姓名
  2793. identifyType: "01", //身份证类型
  2794. identifyNumber: "", //身份证号
  2795. age: "", //年龄
  2796. gender: "", //性别
  2797. addr: "", //地址
  2798. email: "", //邮箱
  2799. mobile: "", //电话
  2800. property:'1',
  2801. identifyValidDate: "", //有效期起期
  2802. identifyValidEndDate: "", //有效期止期
  2803. organizationCode:"",
  2804. // province: "",//省
  2805. // city: "",//市
  2806. // county: "",//县
  2807. provinceData: [], //省市区
  2808. },
  2809. insuredPersonInfo: {
  2810. //被保人
  2811. name: "", //姓名
  2812. identifyType: "01", //身份证类型
  2813. identifyNumber: "", //身份证号
  2814. age: "", //年龄
  2815. gender: "", //性别
  2816. addr: "", //地址
  2817. email: "", //邮箱
  2818. mobile: "", //电话
  2819. property:'1',
  2820. identifyValidDate: "", //有效期起期
  2821. identifyValidEndDate: "", //有效期止期
  2822. organizationCode:"",
  2823. provinceData: [], //省市区
  2824. // province: "",//省
  2825. // city: "",//市
  2826. // county: "",//县
  2827. },
  2828. //车船税form
  2829. vehicleAndVesselTaxForm: {
  2830. taxRelifFlag: "1", //类型
  2831. identifyNumber: "", //纳税人识别号
  2832. taxpayerIdentifier: "01", //纳税人证件类型
  2833. taxpayerName: "", //纳税人名称
  2834. extendChar2: "", //减免税凭证号
  2835. paidFreeCertificate: "", //完税凭证号
  2836. relifReason: "", //减免税原因
  2837. taxComCode: "", //税务机关代码
  2838. taxComName: "", ///税务机关名称
  2839. taxDocumentDate: "", //完税日期
  2840. taxPaidAreaCode: "", //完税凭证地区代码
  2841. taxRelief: "", //减税比例
  2842. },
  2843. //车辆用途列表
  2844. vehicleList: [],
  2845. //能源种类列表
  2846. rules: {
  2847. extendChar2: [
  2848. { required: true, message: "请输入减免税凭证号", trigger: "blur" },
  2849. ],
  2850. paidFreeCertificate: [
  2851. { required: true, message: "请输入完税凭证号", trigger: "blur" },
  2852. ],
  2853. relifReason: [
  2854. { required: true, message: "请输入减免税原因", trigger: "blur" },
  2855. ],
  2856. taxComCode: [
  2857. { required: true, message: "请输入税务机关代码", trigger: "blur" },
  2858. ],
  2859. taxComName: [
  2860. { required: true, message: "请输入税务机关名称", trigger: "blur" },
  2861. ],
  2862. taxDocumentDate: [
  2863. { required: true, message: "请输入完税日期", trigger: "blur" },
  2864. ],
  2865. taxPaidAreaCode: [
  2866. { required: true, message: "请选择完税地区", trigger: "blur" },
  2867. ],
  2868. taxRelief: [
  2869. { required: true, message: "请输入减税比例", trigger: "blur" },
  2870. ],
  2871. taxpayerName: [
  2872. { required: true, message: "请输入纳税人名称", trigger: "blur" },
  2873. ],
  2874. taxpayerIdentifier: [
  2875. { required: true, message: "请选择证件类型", trigger: "blur" },
  2876. ],
  2877. taxRelifFlag: [
  2878. { required: true, message: "请选择纳税类型", trigger: "blur" },
  2879. ],
  2880. energyType: [
  2881. { required: true, message: "请选择能源种类", trigger: "blur" },
  2882. ],
  2883. cimodelclass: [
  2884. { required: true, message: "请选择车辆种类", trigger: "blur" },
  2885. ],
  2886. carnature: [
  2887. { required: true, message: "请选择使用性质", trigger: "blur" },
  2888. ],
  2889. cartype: [
  2890. { required: true, message: "请选择车辆类型", trigger: "blur" },
  2891. ],
  2892. vehicleUse: [
  2893. { required: true, message: "请选择车辆用途", trigger: "blur" },
  2894. ],
  2895. brandName: [
  2896. { required: true, message: "请填写品牌型号", trigger: "blur" },
  2897. ],
  2898. licenseNo: [
  2899. { max: 8, message: "最多八个字符", trigger: "blur" },
  2900. { required: true, validator: carPhoneValid, trigger: "blur" },
  2901. ],
  2902. frameNo: [{ validator: checkframeNo, trigger: "blur" }],
  2903. engineNo: [
  2904. { required: true, message: "请填写发动机号", trigger: "blur" },
  2905. ],
  2906. purchasePrice: [
  2907. { required: true, validator: checkpurchasePrice, trigger: "blur" },
  2908. ],
  2909. registerDate: [
  2910. { required: true, message: "请选择注册时间", trigger: "blur" },
  2911. ],
  2912. issueDate: [
  2913. { required: true, message: "请选择发证日期", trigger: "blur" },
  2914. ],
  2915. transferDate: [
  2916. { required: true, message: "请选择转移登记日期", trigger: "blur" },
  2917. ],
  2918. seatCount: [
  2919. { required: true, message: "请输入座位数", trigger: "blur" },
  2920. ],
  2921. completeKerbMass: [
  2922. { required: true, message: "请输入整备质量", trigger: "blur" },
  2923. ],
  2924. name: [{ required: true, message: "请填写姓名", trigger: "blur" }],
  2925. taxamount: [
  2926. { required: true, message: "请填写车船税", trigger: "blur" },
  2927. ],
  2928. signDate: [
  2929. { required: true, message: "请填写签单日期", trigger: "blur" },
  2930. ],
  2931. // identifyNumber: [
  2932. // { required: true, message: "请填写证件号", trigger: "blur" },
  2933. // { min: 18, max: 18, message: "长度在18个字符", trigger: "blur" },
  2934. // {
  2935. // 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]$/,
  2936. // message: "请输入正确的证件号",
  2937. // trigger: "blur"
  2938. // }
  2939. // ],
  2940. identifyValidDate: [
  2941. { required: true, message: "请选择起期", trigger: "blur" },
  2942. ],
  2943. identifyValidEndDate: [
  2944. { required: true, message: "请选择止期", trigger: "blur" },
  2945. ],
  2946. addr: [
  2947. { required: true, message: "请填写地址", trigger: "blur" },
  2948. { min: 8, message: "最少8个字符", trigger: "blur" },
  2949. ],
  2950. mobile: [
  2951. { required: true, message: "请填写手机号", trigger: "blur" },
  2952. { min: 11, max: 11, message: "长度在11个字符", trigger: "blur" },
  2953. {
  2954. pattern:
  2955. /^(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}$/,
  2956. message: "请输入正确的手机号",
  2957. trigger: "blur",
  2958. },
  2959. ],
  2960. email: [
  2961. { min: 10, max: 20, message: "最少10个字符", trigger: "blur" },
  2962. {
  2963. pattern:
  2964. /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/,
  2965. message: "请输入正确的邮箱",
  2966. trigger: "blur",
  2967. },
  2968. ],
  2969. },
  2970. CIInsureList: {
  2971. //交强险
  2972. amount: "1",
  2973. amountDesc: "投保",
  2974. amtList: [
  2975. {
  2976. label: "不投保",
  2977. value: "0",
  2978. },
  2979. {
  2980. label: "投保",
  2981. value: "1",
  2982. },
  2983. ],
  2984. kindCode: "0507",
  2985. kindName: "交强险",
  2986. desc: "国家强制规定购买的险种,对第三方的人身或财产损失提供基本保障",
  2987. },
  2988. BIInsureList: {
  2989. //商业险
  2990. amount: "0",
  2991. amountDesc: "投保",
  2992. amtList: [
  2993. {
  2994. label: "不投保",
  2995. value: "0",
  2996. },
  2997. {
  2998. label: "投保",
  2999. value: "1",
  3000. },
  3001. ],
  3002. kindCode: "0510",
  3003. kindName: "商业险",
  3004. desc: "国家强制规定购买的险种,对第三方的人身或财产损失提供基本保障",
  3005. },
  3006. insureList: [
  3007. {
  3008. amount: "0",
  3009. amountDesc: "投保",
  3010. coveragePremium: 0,
  3011. amtList: [
  3012. {
  3013. label: "不投保",
  3014. value: "0",
  3015. },
  3016. {
  3017. label: "投保",
  3018. value: "1",
  3019. },
  3020. ],
  3021. kindCode: "A",
  3022. isMainRisk: true,
  3023. kindName: "机动车损失险",
  3024. desc: "保险期间内,被保险人或被保险机动车驾驶人在使用被保险机动车过程中,因自然灾害、意外事故、机动车被盗窃、抢劫、抢夺等情况(详见保险条款)造成被保险机动车直接损失,且不属于免除保险人责任的范围,保险人依照本保险合同的约定负责赔偿的险种。",
  3025. },
  3026. {
  3027. amount: "0",
  3028. amountDesc: "不投保",
  3029. coveragePremium: 0,
  3030. amtList: [
  3031. {
  3032. label: "不投保",
  3033. value: "0",
  3034. },
  3035. {
  3036. label: "10万",
  3037. value: "100000",
  3038. },
  3039. {
  3040. label: "15万",
  3041. value: "150000",
  3042. },
  3043. {
  3044. label: "20万",
  3045. value: "200000",
  3046. },
  3047. {
  3048. label: "30万",
  3049. value: "300000",
  3050. },
  3051. {
  3052. label: "50万",
  3053. value: "500000",
  3054. },
  3055. {
  3056. label: "100万",
  3057. value: "1000000",
  3058. },
  3059. {
  3060. label: "150万",
  3061. value: "1500000",
  3062. },
  3063. {
  3064. label: "200万",
  3065. value: "2000000",
  3066. },
  3067. {
  3068. label: "250万",
  3069. value: "2500000",
  3070. },
  3071. {
  3072. label: "300万",
  3073. value: "3000000",
  3074. },
  3075. {
  3076. label: "400万",
  3077. value: "4000000",
  3078. },
  3079. {
  3080. label: "500万",
  3081. value: "5000000",
  3082. },
  3083. {
  3084. label: "600万",
  3085. value: "6000000",
  3086. },
  3087. {
  3088. label: "800万",
  3089. value: "8000000",
  3090. },
  3091. {
  3092. label: "1000万",
  3093. value: "10000000",
  3094. },
  3095. ],
  3096. kindCode: "B",
  3097. isMainRisk: true,
  3098. kindName: "第三者责任险",
  3099. desc: "保险期间内,被保险人或其允许的驾驶人在使用被保险机动车过程中发生意外事故,致使第三者遭受人身伤亡或财产直接损毁,依法应当对第三者承担的损害赔偿责任,且不属于免除保险人责任的范围,保险人依照本保险合同的约定,对于超过机动车交通事故责任强制保险各分项赔偿限额的部分负责赔偿的险种。",
  3100. },
  3101. {
  3102. amount: "0",
  3103. amountDesc: "1万",
  3104. coveragePremium: 0,
  3105. amtList: [
  3106. {
  3107. label: "不投保",
  3108. value: "0",
  3109. },
  3110. {
  3111. label: "1万",
  3112. value: "10000",
  3113. },
  3114. {
  3115. label: "2万",
  3116. value: "20000",
  3117. },
  3118. {
  3119. label: "3万",
  3120. value: "30000",
  3121. },
  3122. {
  3123. label: "4万",
  3124. value: "40000",
  3125. },
  3126. {
  3127. label: "5万",
  3128. value: "50000",
  3129. },
  3130. {
  3131. label: "6万",
  3132. value: "60000",
  3133. },
  3134. {
  3135. label: "7万",
  3136. value: "70000",
  3137. },
  3138. {
  3139. label: "8万",
  3140. value: "80000",
  3141. },
  3142. {
  3143. label: "9万",
  3144. value: "90000",
  3145. },
  3146. {
  3147. label: "10万",
  3148. value: "100000",
  3149. },
  3150. {
  3151. label: "15万",
  3152. value: "150000",
  3153. },
  3154. {
  3155. label: "20万",
  3156. value: "200000",
  3157. },
  3158. {
  3159. label: "25万",
  3160. value: "250000",
  3161. },
  3162. {
  3163. label: "30万",
  3164. value: "300000",
  3165. },
  3166. {
  3167. label: "35万",
  3168. value: "350000",
  3169. },
  3170. {
  3171. label: "40万",
  3172. value: "400000",
  3173. },
  3174. {
  3175. label: "45万",
  3176. value: "450000",
  3177. },
  3178. {
  3179. label: "50万",
  3180. value: "500000",
  3181. },
  3182. ],
  3183. kindCode: "D3",
  3184. isMainRisk: true,
  3185. kindName: "司机责任险",
  3186. desc: "保险期间内,被保险人或其允许的驾驶人在使用被保险机动车过程中发生意外事故,致使车上人员遭受人身伤亡,且不属于免除保险人责任的范围,依法应当对车上人员承担的损害赔偿责任,保险人依照本保险合同的约定负责赔偿的险种。",
  3187. },
  3188. {
  3189. amount: "0",
  3190. amountDesc: "1万",
  3191. coveragePremium: 0,
  3192. amtList: [
  3193. {
  3194. label: "不投保",
  3195. value: "0",
  3196. },
  3197. {
  3198. label: "1万",
  3199. value: "10000",
  3200. },
  3201. {
  3202. label: "2万",
  3203. value: "20000",
  3204. },
  3205. {
  3206. label: "3万",
  3207. value: "30000",
  3208. },
  3209. {
  3210. label: "4万",
  3211. value: "40000",
  3212. },
  3213. {
  3214. label: "5万",
  3215. value: "50000",
  3216. },
  3217. {
  3218. label: "6万",
  3219. value: "60000",
  3220. },
  3221. {
  3222. label: "7万",
  3223. value: "70000",
  3224. },
  3225. {
  3226. label: "8万",
  3227. value: "80000",
  3228. },
  3229. {
  3230. label: "9万",
  3231. value: "90000",
  3232. },
  3233. {
  3234. label: "10万",
  3235. value: "100000",
  3236. },
  3237. {
  3238. label: "15万",
  3239. value: "150000",
  3240. },
  3241. {
  3242. label: "20万",
  3243. value: "200000",
  3244. },
  3245. {
  3246. label: "25万",
  3247. value: "250000",
  3248. },
  3249. {
  3250. label: "30万",
  3251. value: "300000",
  3252. },
  3253. {
  3254. label: "35万",
  3255. value: "350000",
  3256. },
  3257. {
  3258. label: "40万",
  3259. value: "400000",
  3260. },
  3261. {
  3262. label: "45万",
  3263. value: "450000",
  3264. },
  3265. {
  3266. label: "50万",
  3267. value: "500000",
  3268. },
  3269. ],
  3270. kindCode: "D4",
  3271. isMainRisk: true,
  3272. kindName: "乘客责任险",
  3273. desc: "保险期间内,被保险人或其允许的驾驶人在使用被保险机动车过程中发生意外事故,致使车上人员遭受人身伤亡,且不属于免除保险人责任的范围,依法应当对车上人员承担的损害赔偿责任,保险人依照本保险合同的约定负责赔偿的险种。",
  3274. },
  3275. {
  3276. amount: "0",
  3277. amountDesc: "不投保",
  3278. coveragePremium: 0,
  3279. amtList: [
  3280. {
  3281. label: "不投保",
  3282. value: "0",
  3283. },
  3284. {
  3285. label: "2千",
  3286. value: "2000",
  3287. },
  3288. {
  3289. label: "5千",
  3290. value: "5000",
  3291. },
  3292. {
  3293. label: "1万",
  3294. value: "10000",
  3295. },
  3296. {
  3297. label: "2万",
  3298. value: "20000",
  3299. },
  3300. ],
  3301. desc: "保险期间内,被保险机动车在被保险人或被保险机动车驾驶人使用过程中,发生无明显碰撞痕迹的车身划痕损失,保险人按照保险合同约定负责赔偿的险种",
  3302. isMainRisk: false,
  3303. kindCode: "L",
  3304. kindName: "车身划痕险",
  3305. mainRiskCodeList: "A",
  3306. },
  3307. {
  3308. amount: "0",
  3309. amountDesc: "不投保",
  3310. coveragePremium: 0,
  3311. amtList: [
  3312. {
  3313. label: "不投保",
  3314. value: "0",
  3315. },
  3316. {
  3317. label: "5%",
  3318. value: "5",
  3319. },
  3320. {
  3321. label: "10%",
  3322. value: "10",
  3323. },
  3324. {
  3325. label: "15%",
  3326. value: "15",
  3327. },
  3328. {
  3329. label: "20%",
  3330. value: "20",
  3331. },
  3332. ],
  3333. desc: "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
  3334. isMainRisk: false,
  3335. kindCode: "MJ1",
  3336. kindName: "绝对免赔率特约险(车损)",
  3337. mainRiskCodeList: "A",
  3338. },
  3339. {
  3340. amount: "0",
  3341. amountDesc: "不投保",
  3342. coveragePremium: 0,
  3343. amtList: [
  3344. {
  3345. label: "不投保",
  3346. value: "0",
  3347. },
  3348. {
  3349. label: "5%",
  3350. value: "5",
  3351. },
  3352. {
  3353. label: "10%",
  3354. value: "10",
  3355. },
  3356. {
  3357. label: "15%",
  3358. value: "15",
  3359. },
  3360. {
  3361. label: "20%",
  3362. value: "20",
  3363. },
  3364. ],
  3365. desc: "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
  3366. isMainRisk: false,
  3367. kindCode: "MJ2",
  3368. kindName: "绝对免赔率特约险(三者)",
  3369. mainRiskCodeList: "B",
  3370. },
  3371. {
  3372. amount: "0",
  3373. amountDesc: "不投保",
  3374. coveragePremium: 0,
  3375. amtList: [
  3376. {
  3377. label: "不投保",
  3378. value: "0",
  3379. },
  3380. {
  3381. label: "5%",
  3382. value: "5",
  3383. },
  3384. {
  3385. label: "10%",
  3386. value: "10",
  3387. },
  3388. {
  3389. label: "15%",
  3390. value: "15",
  3391. },
  3392. {
  3393. label: "20%",
  3394. value: "20",
  3395. },
  3396. ],
  3397. desc: "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
  3398. isMainRisk: false,
  3399. kindCode: "MJ3",
  3400. kindName: "绝对免赔率特约险(司机)",
  3401. mainRiskCodeList: "D3",
  3402. },
  3403. {
  3404. amount: "0",
  3405. amountDesc: "不投保",
  3406. coveragePremium: 0,
  3407. amtList: [
  3408. {
  3409. label: "不投保",
  3410. value: "0",
  3411. },
  3412. {
  3413. label: "5%",
  3414. value: "5",
  3415. },
  3416. {
  3417. label: "10%",
  3418. value: "10",
  3419. },
  3420. {
  3421. label: "15%",
  3422. value: "15",
  3423. },
  3424. {
  3425. label: "20%",
  3426. value: "20",
  3427. },
  3428. ],
  3429. desc: "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
  3430. isMainRisk: false,
  3431. kindCode: "MJ4",
  3432. kindName: "绝对免赔率特约险(乘客)",
  3433. mainRiskCodeList: "D4",
  3434. },
  3435. {
  3436. amount: "0",
  3437. amountDesc: "不投保",
  3438. coveragePremium: 0,
  3439. amtList: [
  3440. {
  3441. label: "不投保",
  3442. value: "0",
  3443. },
  3444. {
  3445. label: "1万",
  3446. value: "10000",
  3447. },
  3448. {
  3449. label: "2万",
  3450. value: "20000",
  3451. },
  3452. {
  3453. label: "4万",
  3454. value: "40000",
  3455. },
  3456. {
  3457. label: "5万",
  3458. value: "50000",
  3459. },
  3460. {
  3461. label: "8万",
  3462. value: "80000",
  3463. },
  3464. {
  3465. label: "10万",
  3466. value: "100000",
  3467. },
  3468. {
  3469. label: "20万",
  3470. value: "200000",
  3471. },
  3472. {
  3473. label: "30万",
  3474. value: "300000",
  3475. },
  3476. {
  3477. label: "50万",
  3478. value: "500000",
  3479. },
  3480. {
  3481. label: "100万",
  3482. value: "1000000",
  3483. },
  3484. {
  3485. label: "200万",
  3486. value: "2000000",
  3487. },
  3488. {
  3489. label: "300万",
  3490. value: "3000000",
  3491. },
  3492. ],
  3493. kindCode: "SY_FJ_YBW1",
  3494. isMainRisk: true,
  3495. kindName: "附加医保-三者",
  3496. desc: "附加医保外医疗费用责任险(机动车第三者责任保险)",
  3497. },
  3498. {
  3499. amount: "0",
  3500. amountDesc: "不投保",
  3501. coveragePremium: 0,
  3502. amtList: [
  3503. {
  3504. label: "不投保",
  3505. value: "0",
  3506. },
  3507. {
  3508. label: "1万",
  3509. value: "10000",
  3510. },
  3511. {
  3512. label: "2万",
  3513. value: "20000",
  3514. },
  3515. {
  3516. label: "5万",
  3517. value: "50000",
  3518. },
  3519. {
  3520. label: "10万",
  3521. value: "100000",
  3522. },
  3523. ],
  3524. kindCode: "SY_FJ_YBW2",
  3525. isMainRisk: true,
  3526. kindName: "附加医保-座位险(乘客)",
  3527. desc: "附加医保外医疗费用责任险(机动车第三者责任保险)",
  3528. },
  3529. {
  3530. amount: "0",
  3531. amountDesc: "不投保",
  3532. coveragePremium: 0,
  3533. amtList: [
  3534. {
  3535. label: "不投保",
  3536. value: "0",
  3537. },
  3538. {
  3539. label: "1万",
  3540. value: "10000",
  3541. },
  3542. {
  3543. label: "2万",
  3544. value: "20000",
  3545. },
  3546. {
  3547. label: "5万",
  3548. value: "50000",
  3549. },
  3550. {
  3551. label: "10万",
  3552. value: "100000",
  3553. },
  3554. ],
  3555. kindCode: "SY_FJ_YBW3",
  3556. isMainRisk: true,
  3557. kindName: "附加医保-座位险(司机)",
  3558. desc: "附加医保外医疗费用责任险(机动车第三者责任保险)",
  3559. },
  3560. {
  3561. amount: "0",
  3562. amountDesc: "不投保",
  3563. coveragePremium: 0,
  3564. amtList: [
  3565. {
  3566. label: "不投保",
  3567. value: "0",
  3568. },
  3569. {
  3570. label: "50万",
  3571. value: "500000",
  3572. },
  3573. {
  3574. label: "100万",
  3575. value: "1000000",
  3576. },
  3577. {
  3578. label: "150万",
  3579. value: "1500000",
  3580. },
  3581. {
  3582. label: "200万",
  3583. value: "2000000",
  3584. },
  3585. {
  3586. label: "250万",
  3587. value: "2500000",
  3588. },
  3589. {
  3590. label: "300万",
  3591. value: "3000000",
  3592. },
  3593. {
  3594. label: "500万",
  3595. value: "5000000",
  3596. },
  3597. {
  3598. label: "1000万",
  3599. value: "10000000",
  3600. },
  3601. ],
  3602. desc: "保险期间内,被保险人或其允许的驾驶人在法定节假日期间使用被保险机动车发生机动车第三者责任保险范围内的事故,并经公安部门或保险人查勘确认的,被保险机动车第三者责任保险所适用的责任限额在保险单载明的基础上增加一倍的险种",
  3603. isMainRisk: false,
  3604. kindCode: "BD",
  3605. kindName: "法定节假日限额翻倍险",
  3606. mainRiskCodeList: "B",
  3607. },
  3608. {
  3609. amount: "0",
  3610. amountDesc: "不投保",
  3611. coveragePremium: 0,
  3612. amtList: [
  3613. {
  3614. label: "不投保",
  3615. value: "0",
  3616. },
  3617. {
  3618. label: "2次",
  3619. value: "2",
  3620. },
  3621. {
  3622. label: "7次",
  3623. value: "7",
  3624. },
  3625. {
  3626. label: "12次",
  3627. value: "12",
  3628. },
  3629. {
  3630. label: "17次",
  3631. value: "17",
  3632. },
  3633. {
  3634. label: "22次",
  3635. value: "22",
  3636. },
  3637. ],
  3638. desc: "道路救援服务特约条款",
  3639. isMainRisk: false,
  3640. kindCode: "TY1",
  3641. kindName: "道路救援服务特约条款",
  3642. },
  3643. {
  3644. amount: "0",
  3645. amountDesc: "不投保",
  3646. coveragePremium: 0,
  3647. desc: "车辆安全检测特约条款",
  3648. isMainRisk: false,
  3649. kindCode: "TY2",
  3650. kindName: "车辆安全检测特约条款",
  3651. },
  3652. {
  3653. amount: "0",
  3654. amountDesc: "不投保",
  3655. coveragePremium: 0,
  3656. desc: "代为驾驶服务特约条款",
  3657. isMainRisk: false,
  3658. kindCode: "TY3",
  3659. kindName: "代为驾驶服务特约条款",
  3660. },
  3661. {
  3662. amount: "0",
  3663. amountDesc: "不投保",
  3664. coveragePremium: 0,
  3665. desc: "代为送检服务特约条款",
  3666. isMainRisk: false,
  3667. kindCode: "TY4",
  3668. kindName: "代为送检服务特约条款",
  3669. },
  3670. ],
  3671. totalCompanyList: [], //报价保险公司
  3672. continuousCompanyList: [], //续保保险公司
  3673. quoteno: "", //报价号
  3674. orderno: "", //订单号
  3675. queryOrders: {
  3676. extendInfo: {},
  3677. carinfo: {},
  3678. ownerinfo: {},
  3679. applyinfo: {},
  3680. insureinfo: {},
  3681. }, //核保详情
  3682. inscompany: "", //保险公司名称
  3683. licenseNo: "", //车牌号
  3684. applyName: "", //车主名字
  3685. orderstatus: "", //订单状态
  3686. sumpremium: "", //保费合计
  3687. jqpremium: "", //交强
  3688. sypremium: "", //商业
  3689. jypremium: "", //驾意险
  3690. taxamount: "", //车船税
  3691. jqstartdate: "", //交强时间
  3692. systartdate: "", //商业时间
  3693. mobile: "", //投保人手机号
  3694. //影像回显列表
  3695. // 是否禁用上传
  3696. uploadDisabled: false,
  3697. href: "",
  3698. pageRequest: {
  3699. //归属查询
  3700. pageNum: 1,
  3701. pageSize: 20,
  3702. columnFilters: {
  3703. deptId: {
  3704. name: "deptId",
  3705. value: "9",
  3706. },
  3707. containsSubDept: {
  3708. name: "containsSubDept",
  3709. value: 1,
  3710. },
  3711. usertype: {
  3712. name: "usertype",
  3713. value: null,
  3714. },
  3715. status: {
  3716. name: "status",
  3717. value: "1",
  3718. },
  3719. id: {
  3720. name: "id",
  3721. value: "",
  3722. },
  3723. name: {
  3724. name: "name",
  3725. value: "",
  3726. },
  3727. mobile: {
  3728. name: "mobile",
  3729. value: "",
  3730. },
  3731. },
  3732. },
  3733. userform: {},
  3734. qrcode: null,
  3735. paycodeimg: "", //展示二维码
  3736. ImageUrldialogVisible: false,
  3737. paramsEdit: "",
  3738. companyId: "",
  3739. apiType: "",
  3740. insureMore: true,
  3741. // insureLength: 5,
  3742. HistoryList: [], //历史记录数据
  3743. image1: "",
  3744. image2: "",
  3745. historyRadio: "888",
  3746. sumseatCount: "", // 投保险种座位数
  3747. deptName: "",
  3748. isBottom: true,
  3749. logoImg: "", //报价单保险公司logo图
  3750. vehicleTypeoptions: [], //车辆种类
  3751. trafficManagementVehicleTypeoptions: [], //车辆类型
  3752. energyTypeoptions: [], //能源种类
  3753. taxRelifFlagoptions: [], //车船税类型
  3754. taxpayerIdentifieroptions: [], //纳税人证件类型
  3755. propertyoptions:[
  3756. {
  3757. value:'1',
  3758. label:'个人'
  3759. },{
  3760. value:'2',
  3761. label:'企业'
  3762. },
  3763. ],
  3764. relifReasonoptions: [], //减免税原因代码
  3765. relifReasonoptions: [], //减免税原因代码
  3766. provinceSelect: [],
  3767. natureOfVehicleUseoptions: [],
  3768. businessVehicleUseoptions: [],
  3769. outOfBusinessVehicleUseoptions: [],
  3770. insOrderStatusoptions: [],
  3771. lastCompanyId: "",
  3772. apiInterfaceName: "generateOrder",
  3773. isLetter3Arr: [],
  3774. isLetter3agreementId: "",
  3775. editorInfo: {},
  3776. resultMessageImg: '',
  3777. tabLiIndex: 0,
  3778. tabLimenu: [
  3779. {
  3780. name: "车辆信息",
  3781. scroll: "vehicle",
  3782. },
  3783. {
  3784. name: "车主信息",
  3785. scroll: "owner",
  3786. },
  3787. {
  3788. name: "投保人信息",
  3789. scroll: "applicant",
  3790. },
  3791. {
  3792. name: "被保人信息",
  3793. scroll: "insured",
  3794. },
  3795. {
  3796. name: "关系证明",
  3797. scroll: "relationship",
  3798. },
  3799. {
  3800. name: "验车照",
  3801. scroll: "yanchezhao",
  3802. },
  3803. {
  3804. name: "上年商业险保单",
  3805. scroll: "snbaodan",
  3806. },
  3807. ],
  3808. ProViewImg: "", //预览图片
  3809. carfrontImg: "", //行驶证正面
  3810. carbackImg: "", //行驶证背面
  3811. userfrontImg: "", //身份证正面
  3812. userbackImg: "", //身份证背面
  3813. businessImg: "",
  3814. CarFrontFile: "", //车正面文件流
  3815. CarBackFile: "", //车背面文件流
  3816. C02File: "",
  3817. D02File: "",
  3818. C03File: "",
  3819. D03File: "",
  3820. C04File: "",
  3821. D04File: "",
  3822. Y02File: "",
  3823. Y03File: "",
  3824. Y04File: "",
  3825. //影像回显列表
  3826. imgList1: [],
  3827. imgList2: [],
  3828. imgList3: [],
  3829. imgList4: [],
  3830. imgList5: [],
  3831. imgList6: [],
  3832. imgList7: [],
  3833. imgList8: [],
  3834. imgList9: [],
  3835. imgList10: [],
  3836. imgList11: [],
  3837. imgList12: [],
  3838. imgList13: [],
  3839. imgList14: [],
  3840. imgList15: [],
  3841. imgList16: [],
  3842. imgList17: [],
  3843. imgList18: [],
  3844. imgList19: [],
  3845. imgList20: [],
  3846. imgList21: [],
  3847. imgList22: [],
  3848. imgList23: [],
  3849. imgList24: [],
  3850. imgList25: [],
  3851. imgList26: [],
  3852. imgList27: [],
  3853. imgList28: [],
  3854. //影像上传列表
  3855. imageList1: [],
  3856. imageList2: [],
  3857. imageList3: [],
  3858. imageList4: [],
  3859. imageList5: [],
  3860. imageList6: [],
  3861. businessform:{
  3862. name: "", //姓名
  3863. identifyType: "10", //身份证类型
  3864. legalRepresentative: "", //法人
  3865. identifyNumber: "", //社会信用代码
  3866. addr: "", //地址
  3867. registeredCapital: "", //注册资本
  3868. businessScope: "", //经营范围
  3869. },
  3870. areaOption:yongchengData.data,
  3871. selectedOptions1: [],
  3872. selectedOptions2: [],
  3873. selectedOptions3: [],
  3874. };
  3875. },
  3876. watch: {
  3877. "carInfo.licenseNo": {
  3878. handler(val) {
  3879. if (val) {
  3880. this.carInfo.licenseNo = val.toUpperCase();
  3881. }
  3882. },
  3883. deep: true,
  3884. },
  3885. "carInfo.frameNo": {
  3886. handler(val) {
  3887. if (val) {
  3888. this.carInfo.frameNo = val.toUpperCase();
  3889. }
  3890. },
  3891. deep: true,
  3892. },
  3893. "carInfo.enginedesc": {
  3894. handler(val) {
  3895. if (val) {
  3896. this.carInfo.enginedesc = val.replace(/[A-Za-z]/g, "");
  3897. }
  3898. },
  3899. deep: true,
  3900. },
  3901. "ownerInfo.mobile": {
  3902. handler(val) {
  3903. if (val) {
  3904. this.ownerInfo.mobile = val.replace(/\s/g, "");
  3905. }
  3906. },
  3907. deep: true,
  3908. },
  3909. "policyHolderInfo.mobile": {
  3910. handler(val) {
  3911. if (val) {
  3912. this.policyHolderInfo.mobile = val.replace(/\s/g, "");
  3913. }
  3914. },
  3915. deep: true,
  3916. },
  3917. "insuredPersonInfo.mobile": {
  3918. handler(val) {
  3919. if (val) {
  3920. this.insuredPersonInfo.mobile = val.replace(/\s/g, "");
  3921. }
  3922. },
  3923. deep: true,
  3924. },
  3925. "carInfo.engineNo": {
  3926. handler(val) {
  3927. if (val) {
  3928. this.carInfo.engineNo = val.replace(/[^\w-]/gi, "").toUpperCase();
  3929. }
  3930. },
  3931. deep: true,
  3932. },
  3933. "carInfo.seatCount": {
  3934. handler(val) {
  3935. if (val) {
  3936. this.sumseatCount = val - 1;
  3937. }
  3938. },
  3939. deep: true,
  3940. },
  3941. "policyHolderInfo.identifyNumber": {
  3942. handler(val) {
  3943. if (val) {
  3944. this.vehicleAndVesselTaxForm.identifyNumber = val;
  3945. }
  3946. },
  3947. deep: true,
  3948. },
  3949. "policyHolderInfo.property": {
  3950. handler(val) {
  3951. if (val ) {
  3952. this.vehicleAndVesselTaxForm.taxpayerIdentifier =val=='0'? '10':'01';
  3953. }
  3954. },
  3955. deep: true,
  3956. },
  3957. "policyHolderInfo.organizationCode": {
  3958. handler(val) {
  3959. if (val) {
  3960. this.vehicleAndVesselTaxForm.organizationCode = val;
  3961. }
  3962. },
  3963. deep: true,
  3964. },
  3965. "policyHolderInfo.name": {
  3966. handler(val) {
  3967. if (val) {
  3968. this.vehicleAndVesselTaxForm.taxpayerName = val;
  3969. }
  3970. },
  3971. deep: true,
  3972. },
  3973. },
  3974. props: {
  3975. isdisabled: {
  3976. type: Boolean,
  3977. default: true,
  3978. },
  3979. isLetter: {
  3980. type: String,
  3981. default: "1",
  3982. },
  3983. },
  3984. components: {
  3985. detailsDialog,
  3986. quotationDialog,
  3987. quotationDialogPro,
  3988. imageDialog,
  3989. floatingBar,
  3990. "el-image-viewer": () =>
  3991. import("element-ui/packages/image/src/image-viewer"),
  3992. },
  3993. created() {
  3994. if (this.isLetter == "2") {
  3995. this.apiInterfaceName = "ordergenerateOrder";
  3996. }
  3997. // this.commpanyList(); //获取保险公司
  3998. this.getDicType("taxRelifFlag"); //车船税类型
  3999. this.getDicType("taxpayerIdentifier"); //纳税人证件类型
  4000. this.getDicType("relifReason"); //减免税原因代码
  4001. this.getDicType("vehicleType"); //车辆种类
  4002. this.getDicType("trafficManagementVehicleType"); //车辆类型
  4003. this.getDicType("energyType"); //能源种类
  4004. this.getDicType("natureOfVehicleUse"); //车辆使用性质
  4005. this.getDicType("businessVehicleUse"); //(车辆用途)营业
  4006. this.getDicType("outOfBusinessVehicleUse"); //(车辆用途)非营业
  4007. this.getDicType("insOrderStatus"); //状态
  4008. this.$api.letter.queryCompany().then((res) => {
  4009. this.continuousCompanyList = res.data;
  4010. });
  4011. this.$api.letter.packageQuery().then((res) => {
  4012. this.packageOptions = res.data;
  4013. });
  4014. localStorage.setItem("carInfo", JSON.stringify(this.carInfo));
  4015. localStorage.setItem("insureList", JSON.stringify(this.insureList));
  4016. //--归属信息获取--
  4017. if (this.isLetter == 1 || this.isLetter == 2) {
  4018. var userId = Cookies.get("user");
  4019. if (userId == "admin") {
  4020. this.userId = "admin";
  4021. } else {
  4022. // this.userId = userId;
  4023. this.$api.user.getLoginUser().then((res) => {
  4024. if (res.code == 200) {
  4025. this.userform = res.data;
  4026. this.$api.dept.getDeptById(res.data.deptId).then((res) => {
  4027. this.deptName = res.data.name;
  4028. });
  4029. this.userId = res.data.id;
  4030. }
  4031. });
  4032. }
  4033. }
  4034. //--订单编辑回显--
  4035. // this.paramsEdit = this.$route.query.data; //接收参数
  4036. // add by hxl 2024-12-16
  4037. this.findLeftTreeData(); //获取外部协议的保险保司列表
  4038. this.totalCompanyList.push({
  4039. agreement:[],
  4040. companyName: "",
  4041. isTaxSource: "",
  4042. agreementId:"",
  4043. isInquiryNow: "",
  4044. jqpremium: "",
  4045. taxamount:"",
  4046. sypremium:"",
  4047. jypremium:"",
  4048. isInquiryFlag:""
  4049. });
  4050. this.obtainProtocol(this.$route.query.data);
  4051. //初始化
  4052. },
  4053. mounted() {
  4054. //add by hxl 2024-12-16
  4055. this.obtainProtocol().then(() => this.editingWay(this.$route.query.data));
  4056. //this.editingWay(this.$route.query.data);
  4057. this.onScroll();
  4058. // console.log(this.$route.query.data.jqstartdate.split(" ")[1]);
  4059. if (this.$route.query.data) {
  4060. this.jqstartDate = this.$route.query.data.jqstartdate;
  4061. this.jqendDate = this.$route.query.data.jqenddate;
  4062. if (this.$route.query.data.jqstartdate.split(" ")[1] == "00:00:00") {
  4063. this.immediatelyValue = false;
  4064. } else {
  4065. this.immediatelyValue = true;
  4066. }
  4067. }
  4068. window.addEventListener("scroll", this.onScroll);
  4069. },
  4070. destroyed() {
  4071. window.removeEventListener("scroll", this.onScroll);
  4072. },
  4073. beforeCreate() {
  4074. _self = this;
  4075. },
  4076. computed: {
  4077. ...mapState({
  4078. collapse: (state) => state.app.collapse,
  4079. }),
  4080. issueDateOptions() {
  4081. return {
  4082. disabledDate: this.disabledDate,
  4083. };
  4084. },
  4085. sumPremium() {
  4086. console.log(this.policyNumberForm)
  4087. let sum = new Decimal(!this.policyNumberForm.jqpremium ? new Decimal(0): new Decimal(this.policyNumberForm.jqpremium))
  4088. .plus(
  4089. !this.policyNumberForm.taxamount ? new Decimal(0) : new Decimal(this.policyNumberForm.taxamount)
  4090. )
  4091. .plus(
  4092. !this.policyNumberForm.sypremium ? new Decimal(0) : new Decimal(this.policyNumberForm.sypremium)
  4093. )
  4094. .plus(
  4095. !this.policyNumberForm.jypremium ? new Decimal(0) : new Decimal(this.policyNumberForm.jypremium)
  4096. )
  4097. .toString();
  4098. return sum;
  4099. }
  4100. },
  4101. filters: {
  4102. cap(ele) {
  4103. return _self.insOrderStatusoptions.find((item) => {
  4104. return item.dictValue === ele;
  4105. }).dictTag;
  4106. },
  4107. },
  4108. methods: {
  4109. vehicleUseChange(value){
  4110. if(value='05'){
  4111. this.carInfo.property='1';
  4112. this.ownerInfo.property='1';
  4113. this.ownerInfo.identifyType='01'
  4114. }
  4115. },
  4116. propertyDisable(item){
  4117. if(this.carInfo.vehicleUse=='05' && item.label=='企业'){
  4118. return true;
  4119. }else{
  4120. return false;
  4121. }
  4122. },
  4123. // add by hxl 2024-12-16 ---begin
  4124. //保险公司列表
  4125. findLeftTreeData: function () {
  4126. this.$api.custInfo.getExternalAgreementCompanyList({name:this.companyName}).then(res => {
  4127. this.ztreeNodes = res.data;
  4128. });
  4129. },
  4130. //保险公司改变事件
  4131. changeCompany(val){
  4132. //判断险种
  4133. this.kindListFun();
  4134. //展示协议列表
  4135. if (this.totalCompanyListBak !=null && this.totalCompanyListBak.length>0){
  4136. this.totalCompanyListBak.forEach((item, index) => {
  4137. if(item.namesimple == val){
  4138. this.totalCompanyList[0].agreement=item.agreement;
  4139. }
  4140. });
  4141. }
  4142. //清空是否、费用id
  4143. this.isInquiryNowDisable = false
  4144. this.isInquirySelectFlag = true;
  4145. this.isLetter3agreementId = "";
  4146. this.costFlag ="";
  4147. this.nowCostsId ="";
  4148. this.inquiryNowList = [];
  4149. //清空费用
  4150. this.policyNumberForm.jqCostsProportion = "";
  4151. this.policyNumberForm.noCostsProportion = "";
  4152. this.policyNumberForm.syCostsProportion = "";
  4153. },
  4154. //选择协议 val:协议id row:协议列表 index:下标 item:保险公司数据集合
  4155. agreementChange(val, row, index, item) {
  4156. if (this.isLetter == "3") {
  4157. this.isLetter3agreementId = "";
  4158. console.log(item)
  4159. this.isLetter3agreementId = val;
  4160. }
  4161. //清空是否、费用id
  4162. this.isInquiryNowDisable = false
  4163. this.isInquirySelectFlag = true;
  4164. this.costFlag ="";
  4165. this.nowCostsId ="";
  4166. this.inquiryNowList = [];
  4167. //清空费用
  4168. this.policyNumberForm.jqCostsProportion = "";
  4169. this.policyNumberForm.noCostsProportion = "";
  4170. this.policyNumberForm.syCostsProportion = "";
  4171. },
  4172. //是否现询改变事件
  4173. changeIsInquirySelect(val){
  4174. this.inquiryNowList = [];
  4175. this.nowCostsId ="";
  4176. this.policyNumberForm.jqOtherCostsProportion = ''
  4177. this.policyNumberForm.syOtherCostsProportion = ''
  4178. this.policyNumberForm.noOtherCostsProportion = ''
  4179. //是的话,手输 ,否的话选择
  4180. if(val == '1'){
  4181. this.costFlag = val;
  4182. this.isInquiryNowDisable = false
  4183. this.isInquirySelectFlag = true;
  4184. this.getExternalOrderFee();
  4185. }else if(val == '2'){
  4186. this.costFlag = val;
  4187. this.isInquiryNowDisable = true;
  4188. this.isInquirySelectFlag = false;
  4189. this.getInquiryNowList()
  4190. }
  4191. },
  4192. //清除选择数据
  4193. clearCostFlagData(){
  4194. this.costFlag = "";
  4195. this.isInquiryNowDisable = false
  4196. this.isInquirySelectFlag = true;
  4197. this.inquiryNowList = [];
  4198. this.policyNumberForm.jqOtherCostsProportion = ''
  4199. this.policyNumberForm.syOtherCostsProportion = ''
  4200. this.policyNumberForm.noOtherCostsProportion = ''
  4201. },
  4202. // 获取出口费用
  4203. getExternalOrderFee() {
  4204. if (this.userId ==null || this.userId =='' ){
  4205. this.$message.error("请选择业务员!!")
  4206. this.clearCostFlagData();
  4207. return;
  4208. }
  4209. if (this.costFlag ==null || this.costFlag =='' ){
  4210. this.$message({ message: "请选择是否现询", type: "error" });
  4211. this.clearCostFlagData();
  4212. return;
  4213. }
  4214. if(this.costFlag =='1'){
  4215. console.log(1)
  4216. if((this.policyNumberForm.jqCostsProportion==null || this.policyNumberForm.jqCostsProportion =='')
  4217. && (this.policyNumberForm.syCostsProportion==null || this.policyNumberForm.syCostsProportion =='' )
  4218. && (this.policyNumberForm.noCostsProportion==null || this.policyNumberForm.noCostsProportion =='' )
  4219. ){
  4220. this.$message.error("请填写总比例(%)!!")
  4221. this.clearCostFlagData();
  4222. return;
  4223. }
  4224. }
  4225. let data = {
  4226. agreementId: this.isLetter3agreementId,
  4227. risks: this.riskList,
  4228. kinds: this.kindList,
  4229. userId: this.userId,
  4230. jqPremium: this.policyNumberForm.jqpremium,
  4231. jqRadio: this.policyNumberForm.jqCostsProportion,
  4232. syPremium: this.policyNumberForm.sypremium,
  4233. syRadio: this.policyNumberForm.syCostsProportion,
  4234. jyPremium: this.policyNumberForm.jypremium,
  4235. jyRadio: this.policyNumberForm.noCostsProportion,
  4236. costId: this.nowCostsId,
  4237. }
  4238. if(this.costFlag == "1"){
  4239. this.$api.letter.externalOrderFee(data).then((res) => {
  4240. if (res.code == 200) {
  4241. this.policyNumberForm.jqOtherCostsProportion = res.data.jqExportRadio
  4242. this.policyNumberForm.syOtherCostsProportion = res.data.syExportRadio
  4243. this.policyNumberForm.noOtherCostsProportion = res.data.noExportRadio
  4244. this.nowCostsId =res.data.costId;
  4245. console.log(res.data.jqExportRadio, res.data.syExportRadio, res.data.noExportRadio, '111111111111111111')
  4246. this.$forceUpdate()
  4247. } else {
  4248. this.$message.error(res.msg)
  4249. }
  4250. })
  4251. }else if(this.costFlag == "2"){
  4252. this.$api.custInfo.externalInquiryNowFeeOrderFee(data).then((res) => {
  4253. if (res.code == 200) {
  4254. this.policyNumberForm.jqOtherCostsProportion = res.data.jqExportRadio
  4255. this.policyNumberForm.syOtherCostsProportion = res.data.syExportRadio
  4256. this.policyNumberForm.noOtherCostsProportion = res.data.noExportRadio
  4257. console.log(res.data.jqExportRadio, res.data.syExportRadio, res.data.noExportRadio, '111111111111111111')
  4258. this.$forceUpdate()
  4259. } else {
  4260. this.$message.error(res.msg)
  4261. }
  4262. })
  4263. }
  4264. },
  4265. // 非现询
  4266. getInquiryNowList() {
  4267. let productId = ''
  4268. this.inquiryNowList = []
  4269. this.$api.letter.getProductId({
  4270. riskList: this.riskList,
  4271. kindList: this.kindList
  4272. }).then((res) => {
  4273. if (res.code == 200) {
  4274. productId = res.data
  4275. this.$api.letter.getInquiryNowFee({
  4276. agreementId: this.isLetter3agreementId,
  4277. productId: productId
  4278. }).then((resp) => {
  4279. if (resp.code == 200) {
  4280. this.inquiryNowList = resp.data
  4281. }
  4282. })
  4283. }
  4284. })
  4285. },
  4286. //现询和非线询逻辑处理
  4287. inquiryNowListChange(data) {
  4288. if (data) {
  4289. console.log(data);
  4290. this.nowCostsId = data // 现询id
  4291. this.isInquiryNowDisable = true
  4292. this.inquiryNowList.forEach((val) => {
  4293. if (val.id == data) {
  4294. this.policyNumberForm.jqCostsProportion = val.jqCostsProportion
  4295. this.policyNumberForm.noCostsProportion = val.noCostsProportion
  4296. this.policyNumberForm.syCostsProportion = val.syCostsProportion
  4297. this.getExternalOrderFee();
  4298. }
  4299. })
  4300. } else {
  4301. this.nowCostsId = ''
  4302. this.isInquiryNowDisable = false
  4303. this.policyNumberForm.jqCostsProportion = ''
  4304. this.policyNumberForm.noCostsProportion = ''
  4305. this.policyNumberForm.syCostsProportion = ''
  4306. this.policyNumberForm.jqOtherCostsProportion = ''
  4307. this.policyNumberForm.syOtherCostsProportion = ''
  4308. this.policyNumberForm.noOtherCostsProportion = ''
  4309. }
  4310. },
  4311. // add by hxl 2024-12-16 ---end
  4312. // 所属性质字段
  4313. getCompanyListProperty(data){
  4314. if(data=='1'){
  4315. this.ownerInfo.property='1'
  4316. this.policyHolderInfo.property='1'
  4317. this.insuredPersonInfo.property='1'
  4318. this.ownerInfo.identifyType='01'
  4319. this.policyHolderInfo.identifyType='01'
  4320. this.insuredPersonInfo.identifyType='01'
  4321. }
  4322. else{
  4323. this.ownerInfo.property='0'
  4324. this.policyHolderInfo.property='0'
  4325. this.insuredPersonInfo.property='0'
  4326. this.ownerInfo.identifyType='10'
  4327. this.policyHolderInfo.identifyType='10'
  4328. this.insuredPersonInfo.identifyType='10'
  4329. }
  4330. },
  4331. //清空保单图片
  4332. removePhoto(file, fileList, type) {
  4333. // console.log(file, fileList);
  4334. this.policyNumberForm[type] = []
  4335. // add by hxl 清空交强的签单日期
  4336. if(type =="jqPolicyList"){
  4337. this.jqSignDate=null;
  4338. }
  4339. if(type =="syPolicyList"){
  4340. this.sySignDate=null;
  4341. }
  4342. console.log(this.policyNumberForm[type])
  4343. },
  4344. editingWay(paramsEdit) {
  4345. if (paramsEdit) {
  4346. var _this = this;
  4347. this.jqchecked = false;
  4348. this.tbczcarShow = false;
  4349. this.bbtbcarShow = false;
  4350. this.bbczcarShow = false;
  4351. const { carinfo, ownerinfo, applyinfo, insureinfo, quoteno, orderno,insAreaCompanyList } =
  4352. paramsEdit;
  4353. this.editorInfo = { ...paramsEdit };
  4354. // console.log(paramsEdit.);
  4355. // this.vehicleAndVesselTaxForm = { ...paramsEdit.vehicleAndVesselTax };
  4356. _this.carInfo = carinfo;
  4357. if (_this.carInfo.carnature == "8A") {
  4358. _this.carInfo.carnature = "02";
  4359. _this.carInfo.vehicleUse = "05";
  4360. } else {
  4361. _this.carInfo.carnature;
  4362. _this.carInfo.vehicleUse;
  4363. }
  4364. _this.ownerInfo = ownerinfo;
  4365. _this.policyHolderInfo = applyinfo;
  4366. _this.insuredPersonInfo = insureinfo;
  4367. _this.quoteno = quoteno;
  4368. _this.orderno = orderno;
  4369. _this.tbczcarShow = applyinfo.owner;
  4370. _this.bbczcarShow = insureinfo.owner;
  4371. _this.kindList = paramsEdit.king;
  4372. _this.bbtbcarShow = insureinfo.insuranceHolder;
  4373. _this.ownerInfo.age = getAgeByIdCard(_this.ownerInfo.identifyNumber);
  4374. _this.policyHolderInfo.age = getAgeByIdCard(
  4375. _this.policyHolderInfo.identifyNumber
  4376. );
  4377. _this.insuredPersonInfo.age = getAgeByIdCard(
  4378. _this.insuredPersonInfo.identifyNumber
  4379. );
  4380. if (paramsEdit.carinfo.transferFlag) {
  4381. this.transferDateShow = true;
  4382. }
  4383. //回显交强和商业的时间
  4384. if(paramsEdit.risk){
  4385. paramsEdit.risk.map((ele) => {
  4386. if (ele.riskCode == "0507") {
  4387. _this.jqchecked = true;
  4388. this.protocolJudge("0507", true);
  4389. if(paramsEdit.jqstartdate){
  4390. _this.jqstartDate = paramsEdit.jqstartdate;
  4391. _this.jqendDate = paramsEdit.jqenddate;
  4392. }else{
  4393. _this.jqstartDate = this.transformTime1();
  4394. _this.jqendDate = this.oneYearPast1(this.jqstartDate);
  4395. }
  4396. if(!_this.riskList.includes("0507")){
  4397. _this.riskList.push({
  4398. riskCode: "0507",
  4399. });
  4400. }
  4401. } else if (ele.riskCode == "0510") {
  4402. _this.sychecked = true;
  4403. this.protocolJudge("0510", true);
  4404. if(paramsEdit.systartDate){
  4405. _this.systartDate = paramsEdit.systartdate;
  4406. _this.jqendDate = paramsEdit.syenddate;
  4407. }else{
  4408. _this.systartDate = this.transformTime1();
  4409. _this.syendDate = this.oneYearPast1(this.jqstartDate);
  4410. }
  4411. if(!_this.riskList.includes("0510")){
  4412. _this.riskList.push({
  4413. riskCode: "0510",
  4414. });
  4415. }
  4416. _this.insureList.map((eleA) => {
  4417. paramsEdit.king.map((eleB) => {
  4418. if (eleA.kindCode == eleB.kindCode) {
  4419. switch (eleB.kindCode) {
  4420. case "D4":
  4421. case "SY_FJ_YBW2":
  4422. eleA.amount = eleB.unitAmount+"";
  4423. break;
  4424. case "MJ1":
  4425. case "MJ2":
  4426. case "MJ3":
  4427. case "MJ4":
  4428. eleA.amount = eleB.deductibleRate+"";
  4429. case "A":
  4430. eleA.amount = eleB.amount+"";
  4431. this.protocolJudge("A", true);
  4432. break;
  4433. case "TY1":
  4434. case "TY2":
  4435. case "TY3":
  4436. case "TY4":
  4437. eleA.amount = eleB.serviceTimes+"";
  4438. break;
  4439. default:
  4440. eleA.amount = eleB.amount+"";
  4441. }
  4442. }
  4443. });
  4444. });
  4445. }
  4446. });
  4447. }
  4448. // this.HistoryList = this.paramsEdit.insAreaCompanyList;
  4449. let params = {
  4450. orderNo: paramsEdit.orderno,
  4451. orderStatus: "",
  4452. };
  4453. this.$api.letter.queryQuoteHistory(params).then((res) => {
  4454. res.data.forEach((item) => {
  4455. if (item.accidentInfo) {
  4456. item.accidentInfo.constructor === Object
  4457. ? [item.accidentInfo]
  4458. : item.accidentInfo;
  4459. }
  4460. });
  4461. this.HistoryList = res.data;
  4462. });
  4463. //--获取影像信息--
  4464. _this.imageEcho(this.quoteno);
  4465. // this.$refs.imageDialog.imageEcho(this.quoteno)
  4466. // this.commpanyList()
  4467. //--显示影像按钮--
  4468. _this.imageUploadShow = true;
  4469. this.orderExternalStatus = paramsEdit.orderExternalStatus;
  4470. //回显协议列表数据 add by hxl 2024-12-16
  4471. console.log(this.isLetter3agreementId,'isLetter3agreementId')
  4472. console.log(insAreaCompanyList,'insAreaCompanyList')
  4473. this.isLetter3agreementId = insAreaCompanyList[0].agreementId;
  4474. this.companyName = insAreaCompanyList[0].inscompany;
  4475. if (this.totalCompanyListBak != null && this.totalCompanyListBak.length > 0) {
  4476. this.totalCompanyListBak.forEach((item, index) => {
  4477. if (item.id == insAreaCompanyList[0].companyId) {
  4478. this.totalCompanyList[0].agreement = item.agreement;
  4479. }
  4480. });
  4481. }
  4482. this.costFlag = paramsEdit.costFlag;
  4483. if(this.costFlag=="1"){
  4484. this.isInquiryNowDisable = false
  4485. this.isInquirySelectFlag = true;
  4486. this.nowCostsId = '';
  4487. this.getExternalOrderFee();
  4488. }else if(this.costFlag=="2"){
  4489. this.isInquiryNowDisable = true;
  4490. this.isInquirySelectFlag = false;
  4491. this.nowCostsId = paramsEdit.nowCostsId;
  4492. this.getInquiryNowList();
  4493. this.getExternalOrderFee();
  4494. }
  4495. } else {
  4496. this.jqchecked = true;
  4497. if(!this.riskList.includes("0507")){
  4498. this.riskList.push({
  4499. riskCode: "0507"
  4500. });
  4501. }
  4502. this.jqstartDate = this.transformTime1();
  4503. this.jqendDate = this.oneYearPast1(this.jqstartDate);
  4504. this.systartDate = this.transformTime1();
  4505. this.syendDate = this.oneYearPast1(this.systartDate);
  4506. }
  4507. },
  4508. handleRemove1(file, imageIdList, imgList) {
  4509. this[imageIdList].map((ele, index) => {
  4510. if (file.imageId === ele.imageId) {
  4511. this[imageIdList].splice(index, 1);
  4512. }
  4513. return ele;
  4514. });
  4515. if (file.imageId) {
  4516. this[imgList].map((ele, index) => {
  4517. if (file.imageId === ele.imageId) {
  4518. this[imgList].splice(index, 1);
  4519. }
  4520. return ele;
  4521. });
  4522. } else {
  4523. this[imgList].map((ele, index) => {
  4524. if (file.uid === ele.uid) {
  4525. this[imgList].splice(index, 1);
  4526. }
  4527. return ele;
  4528. });
  4529. }
  4530. },
  4531. uploadinformation() {
  4532. // //上传图片
  4533. const mergedArray = [
  4534. ...this.imageList1,
  4535. ...this.imageList2,
  4536. ...this.imageList3,
  4537. ...this.imageList4,
  4538. ...this.imageList5,
  4539. ...this.imageList6,
  4540. ];
  4541. let imageparam = {
  4542. imageList: mergedArray,
  4543. quoteNo: this.quoteno,
  4544. };
  4545. this.$api.letter.uploadImages(imageparam).then((responses) => {
  4546. if (responses.code == "200") {
  4547. this.imageEcho(this.quoteno);
  4548. this.$message({ message: responses.msg, type: "success" });
  4549. } else {
  4550. this.$message({ message: responses.msg, type: "error" });
  4551. }
  4552. });
  4553. this.imageUploaddialogVisible = false;
  4554. },
  4555. repairinformation() {
  4556. // //上传图片
  4557. const mergedArray = [
  4558. ...this.imageList1,
  4559. ...this.imageList2,
  4560. ...this.imageList3,
  4561. ...this.imageList4,
  4562. ...this.imageList5,
  4563. ...this.imageList6,
  4564. ];
  4565. let imageparam = {
  4566. imageList: mergedArray,
  4567. companyId: this.companyId,
  4568. };
  4569. this.$api.letter.additionalInformation(imageparam).then((responses) => {
  4570. if (responses.code == "200") {
  4571. this.imageUploaddialogVisible = false;
  4572. this.$message({ message: responses.msg, type: "success" });
  4573. } else {
  4574. this.$message({ message: responses.msg, type: "error" });
  4575. }
  4576. });
  4577. },
  4578. //手机号复制粘贴处理
  4579. handlePaste(e, mobileKey) {
  4580. e.preventDefault(); //阻止默认行为
  4581. const clipboardData = e.clipboardData || window.clipboardData; //获取剪切板内容
  4582. let pastedText = clipboardData.getData("text").replace(/\s+/g, ""); //获取纯文本并处理空格
  4583. // 截取前11个字符,以确保不会超过手机号长度限制
  4584. pastedText = pastedText.substring(0, 11);
  4585. // 使用Vue.nextTick确保更新发生在DOM更新之后
  4586. this.$nextTick(() => {
  4587. this[mobileKey].mobile = pastedText;
  4588. });
  4589. },
  4590. // licenseNoFun(data){
  4591. // if(data && this.carInfo.enginedesc){
  4592. // this.obtainProtocol()
  4593. // }
  4594. // },
  4595. // enginedescFun(data){
  4596. // if(data && this.carInfo.licenseNo){
  4597. // this.obtainProtocol()
  4598. // }
  4599. // },
  4600. packageChange(val) {
  4601. let arr = this.packageOptions.find((ele) => ele.id == val).kind;
  4602. if (arr.length > 0) {
  4603. this.insureList.map((eleA) => {
  4604. arr.map((eleB) => {
  4605. if (eleA.kindCode == eleB.kindCode) {
  4606. switch (eleB.kindCode) {
  4607. case "D4":
  4608. case "SY_FJ_YBW2":
  4609. eleA.amount = JSON.stringify(eleB.unitAmount);
  4610. break;
  4611. case "MJ1":
  4612. case "MJ2":
  4613. case "MJ3":
  4614. case "MJ4":
  4615. eleA.amount = eleB.deductibleRate;
  4616. break;
  4617. case "TY1":
  4618. case "TY2":
  4619. case "TY3":
  4620. case "TY4":
  4621. eleA.amount = eleB.serviceTimes+"";
  4622. break;
  4623. default:
  4624. eleA.amount = JSON.stringify(eleB.amount);
  4625. }
  4626. }
  4627. });
  4628. });
  4629. } else {
  4630. this.insureList.map((eleA) => {
  4631. eleA.amount = "0";
  4632. });
  4633. }
  4634. },
  4635. capType(val) {
  4636. if (val == "0") {
  4637. return "success";
  4638. }
  4639. if (val == "1") {
  4640. return "warning";
  4641. }
  4642. if (val == "2" || val == "3" || val == "4") {
  4643. return "danger";
  4644. }
  4645. },
  4646. handleCheckAllChange(ele) {
  4647. this.totalCompanyList.forEach((val, index) => {
  4648. ele ? (val.checked = true) : (val.checked = false);
  4649. // this.initchange(ele, val.id, val.cnName, index);
  4650. });
  4651. },
  4652. retractFun() {
  4653. this.isRetract = this.isRetract == false ? true : false;
  4654. },
  4655. //中煤意外险调整份数事件
  4656. ZMhandleChange(val) {
  4657. if (!val) {
  4658. this.$refs.ZmMultipleTable[0].clearSelection(); //清除
  4659. }
  4660. },
  4661. //中煤意外险选中对应意外险方案
  4662. // ZMHandleSelectionChange(val) {
  4663. // // if(val.length > 0&& val[0].quantity==undefined){
  4664. // // this.$message({ message: "请先填写投保份数再勾选!", type: "error", });
  4665. // // this.$refs.ZmMultipleTable[0].clearSelection(); //清除
  4666. // // return false;
  4667. // // }
  4668. // if (val.length > 1) {
  4669. // this.$refs.ZmMultipleTable[0].clearSelection(); //清除
  4670. // this.$refs.ZmMultipleTable[0].toggleRowSelection(val.pop()); //pop:最后一个
  4671. // } else {
  4672. // this.zhongmeiaccidentalDrivingVo = val[0]; //multipleSelection:当前选择的数组
  4673. // }
  4674. // },
  4675. //中煤意外险选中对应产品带出方案明细
  4676. zhongmeiInsuranceChange(index) {
  4677. //每次选中产品,清空之前选中的数据
  4678. this.zhongmeitemplateSelection = index;
  4679. this.zhongmeiaccidentalDrivingVo = {};
  4680. this.zhongmeiInsuranceDataTable = [];
  4681. let data = this.zhongmeiInsuranceData.find(
  4682. (val) => val.projectCode == index
  4683. );
  4684. //把返回的方案明细放入展示数据对象中
  4685. this.accidentFormZM = Object.assign(this.accidentFormZM, data);
  4686. this.accidentFormZM.quantity = "1";
  4687. if (data && data.son) {
  4688. this.accidentPremiumZM = data.sumPremium;
  4689. this.zhongmeiInsuranceDataTable = data.son;
  4690. }
  4691. },
  4692. // 截图粘贴
  4693. copybjd() {
  4694. let that = this;
  4695. html2Canvas(document.getElementById("pdfContentsDiv"), {
  4696. allowTaint: true,
  4697. taintTest: false,
  4698. }).then(function (canvas) {
  4699. let base64Data = "";
  4700. // let blob = null
  4701. base64Data = canvas.toDataURL("image/png", 1);
  4702. const date = new Date();
  4703. const saveInfo = {
  4704. download: date.getTime() + `.png`,
  4705. href: base64Data,
  4706. };
  4707. const element = document.createElement("a");
  4708. element.style.display = "none";
  4709. for (const key in saveInfo) {
  4710. element.setAttribute(key, saveInfo[key]);
  4711. }
  4712. document.body.appendChild(element);
  4713. element.click();
  4714. setTimeout(() => {
  4715. document.body.removeChild(element);
  4716. }, 300);
  4717. // var format = 'image/png'
  4718. // //将Base64图片编码转换成blob
  4719. // var base64 = base64Data
  4720. // var code = window.atob(base64.split(',')[1])
  4721. // var aBuffer = new window.ArrayBuffer(code.length)
  4722. // var uBuffer = new window.Uint8Array(aBuffer)
  4723. // for (var i = 0; i < code.length; i++) {
  4724. // uBuffer[i] = code.charCodeAt(i) & 0xff
  4725. // }
  4726. // try {
  4727. // blob = new Blob([uBuffer], { type: format })
  4728. // } catch (e) {
  4729. // window.BlobBuilder =
  4730. // window.BlobBuilder ||
  4731. // window.WebKitBlobBuilder ||
  4732. // window.MozBlobBuilder ||
  4733. // window.MSBlobBuilder
  4734. // if (e.name == 'TypeError' && window.BlobBuilder) {
  4735. // var bb = new window.BlobBuilder()
  4736. // bb.append(uBuffer.buffer)
  4737. // blob = bb.getBlob('image/png')
  4738. // } else if (e.name == 'InvalidStateError') {
  4739. // blob = new Blob([aBuffer], { type: format })
  4740. // }
  4741. // }
  4742. // const clipboardItemInput = new ClipboardItem({
  4743. // 'image/png': blob,
  4744. // })
  4745. // that.$copyText({
  4746. // 'image/png': blob,
  4747. // }).then(
  4748. //   function(e) {
  4749. //     console.log("copy arguments e:", e);
  4750. //     alert("复制成功!");
  4751. //   },
  4752. //   function(e) {
  4753. //     console.log("copy arguments e:", e);
  4754. //     alert("复制失败!");
  4755. //   }
  4756. //   ),
  4757. // navigator.clipboard.write([clipboardItemInput])
  4758. // that.$message({
  4759. // message: '已截图并复制到粘贴板!',
  4760. // type: 'success'
  4761. // });
  4762. });
  4763. },
  4764. propertyTpe(val){
  4765. this[val].identifyType=this[val].property=='0'?'10':'01'
  4766. },
  4767. // 即时起保
  4768. immediatelyChange(e) {
  4769. if (e) {
  4770. this.immediatelyValue = true;
  4771. const date = new Date();
  4772. date.setHours(date.getHours() + 2);
  4773. date.setMinutes(0);
  4774. date.setSeconds(0);
  4775. this.jqstartDate = date;
  4776. this.jqendDate = this.oneYearPast1(date);
  4777. } else {
  4778. this.immediatelyValue = false;
  4779. this.jqstartDate = this.transformTime1();
  4780. this.jqendDate = this.oneYearPast1(this.jqstartDate);
  4781. }
  4782. },
  4783. // 使用性质方法
  4784. natureFun() {
  4785. if (this.carInfo.carnature == "01") {
  4786. this.carInfo.vehicleUse = "";
  4787. }
  4788. },
  4789. // 点击同步报价后的时间
  4790. syncData(item) {
  4791. this.jqstartDate = item.startDateJq ? item.startDateJq : this.jqstartDate;
  4792. this.jqendDate = item.endDateJq ? item.endDateJq : this.endDateJq;
  4793. this.systartDate = item.startDateSy ? item.startDateSy : this.systartDate;
  4794. this.syendDate = item.endDateSy ? item.endDateSy : this.syendDate;
  4795. },
  4796. //纳税类型事件
  4797. taxRelifFlagChange(val) {
  4798. if (val == 4) {
  4799. citydata.rawCitiesData.map((val) => {
  4800. this.provinceSelect.push({
  4801. name: val.name,
  4802. code: val.code,
  4803. });
  4804. return val;
  4805. });
  4806. }
  4807. },
  4808. //身份证前六位识别地区
  4809. // getAreaByCode(code) {
  4810. // let list = regionData;
  4811. // let provinceCode = code.substring(0, 2);
  4812. // let cityCode = code.substring(0, 4);
  4813. // let areaCode = code.substring(0, 6);
  4814. // // 获取省份信息
  4815. // let province = list.filter(function (item) {
  4816. // return item.value === provinceCode;
  4817. // });
  4818. // // 获取城市信息
  4819. // let city = province[0].children.filter(function (item) {
  4820. // return item.value === cityCode;
  4821. // });
  4822. // if (city.length > 0) {
  4823. // // 获取区/县信息
  4824. // let area = city[0].children.filter(function (item) {
  4825. // return item.value === areaCode;
  4826. // });
  4827. // return province[0].label + city[0].label + area[0].label;
  4828. // }
  4829. // },
  4830. //--数据字典 begin --
  4831. getDicType(type) {
  4832. this.$api.insCompany.dicType(type).then((res) => {
  4833. if (res.code == 200) {
  4834. if (type == "insOrderStatus") {
  4835. let data = JSON.parse(JSON.stringify(res.data.ddList));
  4836. data.unshift({
  4837. dictTag: "全部",
  4838. dictValue: "888",
  4839. });
  4840. this[type + "options"] = data;
  4841. } else {
  4842. this[type + "options"] = res.data.ddList;
  4843. }
  4844. }
  4845. });
  4846. },
  4847. //身份证失去焦点
  4848. identifyblur(info) {
  4849. this[info].age =typeof getAgeByIdCard(this[info].identifyNumber)=='number' ?getAgeByIdCard(this[info].identifyNumber):'';
  4850. this[info].gender = getGenderByIdCard(this[info].identifyNumber);
  4851. },
  4852. //车主信息选择性别
  4853. genderChange(e) {
  4854. if (this.tbczcarShow) {
  4855. this.policyHolderInfo.gender = e;
  4856. } else if (this.bbczcarShow) {
  4857. this.insuredPersonInfo.gender = e;
  4858. }
  4859. },
  4860. //省市区
  4861. areahandleChange(event, info) {
  4862. if (event[0] != null && event[1] != null && event[2] != null) {
  4863. this[info].province = event[0]
  4864. this[info].city = event[1]
  4865. this[info].county = event[2]
  4866. }
  4867. },
  4868. iconfftter(icon) {
  4869. return CommonUtil.getDataName({
  4870. dataList: this.global.insCompanyList,
  4871. value: "name",
  4872. label: "icon",
  4873. data: icon,
  4874. });
  4875. },
  4876. disabledDate(time) {
  4877. let datetime = this.carInfo.registerDate;
  4878. return time.getTime() < new Date(datetime).getTime();
  4879. },
  4880. onScroll() {
  4881. // 变量scrollTop是滚动条滚动时,滚动条上端距离顶部的距离
  4882. var scrollTop =
  4883. document.documentElement.scrollTop || document.body.scrollTop;
  4884. // 变量windowHeight是可视区的高度
  4885. var windowHeight =
  4886. document.documentElement.clientHeight || document.body.clientHeight;
  4887. // 变量scrollHeight是滚动条的总高度(当前可滚动的页面的总高度)
  4888. var scrollHeight =
  4889. document.documentElement.scrollHeight || document.body.scrollHeight;
  4890. // 滚动条到底部
  4891. if (Math.ceil(scrollTop + windowHeight) >= scrollHeight) {
  4892. this.isBottom = true;
  4893. } else {
  4894. this.isBottom = false;
  4895. }
  4896. },
  4897. pinganInsuranceChange(index, index1, val) {
  4898. if (!index) {
  4899. return;
  4900. }
  4901. this.accidentFormPA[index1].pingantemplateSelection = index;
  4902. this.accidentFormPA[index1].projectName = index
  4903. val.map(val1 => {
  4904. if (val1.projectName == index) {
  4905. val1.son.forEach(val3 => {
  4906. val3.quantity = '1'
  4907. })
  4908. this.accidentFormPA[index1].pinganInsuranceDataTable = val1.son
  4909. this.accidentFormPA[index1].projectCode = val1.projectCode
  4910. }
  4911. })
  4912. console.log(this.accidentFormPA[index1], index, 4444444444);
  4913. // this.accidentFormPA[index1].projectCode=this.pinganInsuranceData.find(val1=>{
  4914. // // val1.map(
  4915. // // (val) => val.projectName == index
  4916. // // ).projectCode
  4917. // }
  4918. // )
  4919. // this.accidentFormPA[index1].pinganInsuranceDataTable = this.pinganInsuranceData.find(
  4920. // (val) => val.projectName == index
  4921. // ).son;
  4922. },
  4923. taikangInsuranceChange(index) {
  4924. if (index) {
  4925. this.TkDrivingChange(
  4926. this.taikangaccidentDataList.find((val) => val.projectCode == index)
  4927. );
  4928. }
  4929. if (!index) {
  4930. return;
  4931. }
  4932. this.taikangtemplateSelection = index;
  4933. this.accidentFormTk = Object.assign(
  4934. this.accidentFormTk,
  4935. this.taikangaccidentDataList.find((val) => val.projectCode == index)
  4936. );
  4937. this.taikangaccidentDataList
  4938. .find((val) => val.projectCode == index)
  4939. .son.forEach((item) => {
  4940. item.sumAmount =
  4941. Number(item.amount) * Number(this.accidentFormTk.seatNum);
  4942. });
  4943. this.taikangInsuranceDataTable = this.taikangaccidentDataList.find(
  4944. (val) => val.projectCode == index
  4945. ).son;
  4946. this.accidentPremiumTk = this.accidentFormTk.sumPremium;
  4947. },
  4948. anshengInsuranceChange(index) {
  4949. this.anshengtemplateSelection = index;
  4950. let data = this.anshengInsuranceData.find(
  4951. (val) => val.projectCode == index
  4952. );
  4953. this.anshengaccidentalDrivingVo.parentName = data.projectName;
  4954. this.anshengaccidentalDrivingVo.parentCode = data.projectCode;
  4955. this.anshengInsuranceDataTable = [];
  4956. this.anshengInsuranceDataTable = data.children;
  4957. this.anshengInsuranceDataTable.forEach((e) => (e.quantity = "1"));
  4958. },
  4959. hengbangInsuranceChange(index) {
  4960. this.hengbangInsuranceDataTable = this.hengbangInsuranceData.find(
  4961. (val) => val.projectCode == index
  4962. ).son;
  4963. this.hengbangtemplateSelection = index;
  4964. if (this.hengbangInsuranceDataTable.length) {
  4965. this.hengbangaccidentalDrivingVo = this.hengbangInsuranceData.find(
  4966. (val) => val.projectCode == index
  4967. );
  4968. }
  4969. },
  4970. chengtaiInsuranceChange(index) {
  4971. this.chengtaiInsuranceDataTable = this.chengtaiInsuranceData.find(
  4972. (val) => val.projectCode == index
  4973. ).son;
  4974. this.chengtaitemplateSelection = index;
  4975. if (this.chengtaiInsuranceDataTable.length) {
  4976. this.chengtaiaccidentalDrivingVo = this.chengtaiInsuranceData.find(
  4977. (val) => val.projectCode == index
  4978. );
  4979. }
  4980. },
  4981. huanongInsuranceChange(index) {
  4982. this.huanongInsuranceDataTable = this.huanongInsuranceData.find(
  4983. (val) => val.projectCode == index
  4984. ).son;
  4985. this.accidentFormHN.accidentType = index;
  4986. this.huanongaccidentalDrivingVo = Object.assign(
  4987. this.huanongInsuranceData.find((val) => val.projectCode == index),
  4988. this.accidentFormHN
  4989. );
  4990. },
  4991. taipingInsuranceChange(index) {
  4992. this.taipingtemplateSelection = index;
  4993. this.taipingInsuranceDataTable = this.taipingInsuranceData.find(
  4994. (val) => val.projectCode == index
  4995. ).son;
  4996. if (
  4997. this.taipingInsuranceDataTable &&
  4998. this.taipingInsuranceDataTable.length
  4999. ) {
  5000. this.taipingaccidentalDrivingVo = this.taipingInsuranceData.find(
  5001. (val) => val.projectCode == index
  5002. );
  5003. }
  5004. },
  5005. zijinInsuranceChange(index) {
  5006. this.zijintemplateSelection = index;
  5007. this.zijinInsuranceDataTable = [];
  5008. this.$refs.expandTable[0].clearSelection();
  5009. index.forEach((item) => {
  5010. this.zijinInsuranceDataTable.push(
  5011. this.ziJinInsuranceData.find((val) => val.projectCode == item)
  5012. );
  5013. });
  5014. this.zijinInsuranceDataTable.forEach((item) => {
  5015. this.$nextTick(() => {
  5016. this.$refs.expandTable[0].toggleRowSelection(item);
  5017. });
  5018. });
  5019. this.CheckboxChange(this.zijinInsuranceDataTable);
  5020. },
  5021. renshouInsuranceChange(index) {
  5022. // this.renshouInsuranceDataTable = [
  5023. // this.renshouInsuranceData.find(val => val.projectCode == index)
  5024. // ];
  5025. this.renshoutemplateSelection = index;
  5026. this.renshouInsuranceDataTable = this.renshouInsuranceData.find(
  5027. (val) => val.projectCode == index
  5028. ).son;
  5029. if (index) {
  5030. this.RSDrivingChange(
  5031. this.renshouInsuranceData.find((val) => val.projectCode == index)
  5032. );
  5033. }
  5034. },
  5035. async dajiaInsuranceChange(index) {
  5036. this.dajiaaccidentalDrivingVo = {};
  5037. let data = await this.$api.letter.accidentalDrivingInfo(index);
  5038. if (data.code == 200) {
  5039. this.dajiaaccidentalDrivingVo = {
  5040. rideRiskCode: index,
  5041. rideRiskName: this.dajiaInsuranceData.find((val) => val.id == index)
  5042. .productName,
  5043. quantity: "1",
  5044. };
  5045. this.dajiaInsuranceDataTable = data.data;
  5046. }
  5047. },
  5048. zhonganInsuranceChange(index) {
  5049. this.zhongantemplateSelection = index;
  5050. this.zhonganInsuranceDataTable = this.zhonganInsuranceData.find(
  5051. (val) => val.projectCode == index
  5052. ).son;
  5053. if (index) {
  5054. this.ZADrivingChange(
  5055. this.zhonganInsuranceData.find((val) => val.projectCode == index)
  5056. );
  5057. }
  5058. },
  5059. // 渤海选择意外险类型
  5060. async bohaiInsuranceChange(index) {
  5061. if (index) {
  5062. this.boHaiaccidentForm.projectCode = index;
  5063. // this.boHaiaccidentForm.projectName = this.dajiaInsuranceData.find(
  5064. // (e) => e.projectCode == index
  5065. // ).projectName;
  5066. this.boHaiaccidentForm.copies = "1";
  5067. this.boHaiaccidentForm.premium = Number(
  5068. this.boHaiaccidentDataList.find((e) => e.projectCode == index).sumPremium
  5069. );
  5070. this.bohaiInsuranceDataTable = this.boHaiaccidentDataList.find(
  5071. (e) => e.projectCode == index
  5072. ).son;
  5073. // let data = await this.$api.letter.productDetailsQueryboHai({
  5074. // projectCode: index,
  5075. // productCode: this.boHaiaccidentDataList.find(
  5076. // (e) => e.packageCode == index
  5077. // ).productCode,
  5078. // agreementId: this.boHaiaccidentForm.agreementId,
  5079. // });
  5080. // if (data.code == 200 && data.data) {
  5081. // this.accidentLoadingbh = false;
  5082. // this.bohaiInsuranceDataTable = data.data;
  5083. // } else {
  5084. // this.$message.error(data.msg);
  5085. // this.bohaiInsuranceDataTable = [];
  5086. // }
  5087. }
  5088. },
  5089. djcxchange(index) {
  5090. if (index) {
  5091. this.dajiaaccidentForm.parentCode = index;
  5092. this.dajiaaccidentForm.quantity = "1";
  5093. this.dajiaaccidentForm.prodCode = "";
  5094. this.dajiaaccidentDataListChild = this.dajiaInsuranceData.find(
  5095. (e) => e.projectCode == index
  5096. ).children;
  5097. this.dajiaaccidentalDrivingVo.parentName = this.dajiaInsuranceData.find(
  5098. (e) => e.projectCode == index
  5099. ).projectName;
  5100. this.dajiaaccidentalDrivingVo.parentCode = this.dajiaInsuranceData.find(
  5101. (e) => e.projectCode == index
  5102. ).projectCode;
  5103. }
  5104. },
  5105. djcxchangeChild(index) {
  5106. if (index) {
  5107. let list = this.dajiaaccidentDataListChild.find(
  5108. (val) => val.projectCode == index
  5109. );
  5110. this.dajiaaccidentForm = {
  5111. ...this.dajiaaccidentForm,
  5112. prodCode: index,
  5113. projectName: list.projectName,
  5114. sumAmount: Number(list.sumAmount),
  5115. riskCode: list.riskCode,
  5116. sumPremium: Number(list.sumPremium),
  5117. };
  5118. list.productId = list.id;
  5119. this.dajiaInsuranceDataTable = list.son;
  5120. this.dajiaaccidentalDrivingVo = Object.assign({
  5121. ...this.dajiaaccidentalDrivingVo,
  5122. ...list,
  5123. });
  5124. } else {
  5125. this.dajiaInsuranceDataTable = [];
  5126. }
  5127. },
  5128. // 国任选择意外险类型
  5129. async grcxchange(index) {
  5130. if (index) {
  5131. this.accidentLoading = true;
  5132. this.guoRenaccidentForm.goodsCode = index;
  5133. this.guoRenaccidentForm.quantity = "1";
  5134. this.guoRenaccidentForm.prodCode = "";
  5135. this.guoRenaccidentDataListChild = this.guoRenaccidentDataList.find(
  5136. (e) => e.projectCode == index
  5137. ).children;
  5138. this.guoRenaccidentalDrivingVo.parentName =
  5139. this.guoRenaccidentDataList.find(
  5140. (e) => e.projectCode == index
  5141. ).projectName;
  5142. this.guoRenaccidentalDrivingVo.parentCode =
  5143. this.guoRenaccidentDataList.find(
  5144. (e) => e.projectCode == index
  5145. ).projectCode;
  5146. // let data = await this.$api.letter.syncNonAutoInsGuoren({
  5147. // goodsCode: index,
  5148. // agreementId: this.guoRenaccidentForm.agreementId
  5149. // });
  5150. // if (data.code == 200) {
  5151. // let num = 0;
  5152. // data.data.forEach(item => {
  5153. // num += Number(item.premium);
  5154. // });
  5155. // this.accidentLoading = false;
  5156. // } else {
  5157. // this.accidentLoading = false;
  5158. // this.$message.error(data.msg);
  5159. // this.guoRenaccidentDataListChild = [];
  5160. // }
  5161. }
  5162. },
  5163. // 国任选择意外险子级类型
  5164. async grcxchangeChild(index) {
  5165. let list = this.guoRenaccidentDataListChild.find(
  5166. (val) => val.projectCode == index
  5167. );
  5168. this.guoRenaccidentForm = {
  5169. ...this.guoRenaccidentForm,
  5170. prodCode: index,
  5171. policyNum: Number(list.sumPremium),
  5172. riskCode: list.riskCode,
  5173. // amount: list.amount,
  5174. sumPremium: Number(list.sumPremium),
  5175. // appnum:Number(list.appnum)
  5176. };
  5177. this.guoRenInsuranceDataTable = list.son;
  5178. this.guoRenaccidentalDrivingVo = Object.assign({
  5179. ...list,
  5180. ...this.guoRenaccidentalDrivingVo,
  5181. });
  5182. },
  5183. // 选择意外险类型
  5184. async yongchengInsuranceChange(index) {
  5185. if (!index) {
  5186. return;
  5187. }
  5188. this.yongchengtemplateSelection = index;
  5189. this.accidentForm = Object.assign(
  5190. this.accidentForm,
  5191. this.yongchengaccidentDataList.find((val) => val.projectCode == index)
  5192. );
  5193. this.yongchengaccidentDataList
  5194. .find((val) => val.projectCode == index)
  5195. .son.forEach((item) => {
  5196. item.sumAmount =
  5197. Number(item.amount) * Number(this.accidentForm.seatNum);
  5198. });
  5199. this.yongchengInsuranceDataTable = this.yongchengaccidentDataList.find(
  5200. (val) => val.projectCode == index
  5201. ).son;
  5202. this.accidentPremium = this.accidentForm.sumPremium;
  5203. // this.accidentForm.fen = "1";
  5204. // let data = await this.$api.letter.ycgainAccidentSchemeList({
  5205. // companyCode: this.accidentForm.companyId,
  5206. // code: index,
  5207. // agreementId: this.accidentForm.agreementId,
  5208. // seatNum: Number(this.carInfo.seatCount)
  5209. // });
  5210. // if (data.code == 200) {
  5211. // let num = 0;
  5212. // data.data.forEach(item => {
  5213. // num += Number(item.premium);
  5214. // });
  5215. // this.accidentPremium = num;
  5216. // this.accidentForm.premium = num;
  5217. // this.accidenttableData = data.data;
  5218. // }
  5219. },
  5220. numberCopieschange(index) {
  5221. this.accidentForm.sumPremium = Number(this.accidentPremium) * index;
  5222. },
  5223. numberCopieschangeTk(index) {
  5224. this.accidentFormTk.sumPremium = Number(this.accidentPremiumTk) * index;
  5225. },
  5226. numberCopieschangePA(index, index1) {
  5227. this.accidentFormPA.premium = Number(this.accidentFormPA[index1].accidentPremiumPA) * index;
  5228. },
  5229. numberCopieschangeZM(index) {
  5230. this.accidentFormZM.sumPremium = Number(this.accidentPremiumZM) * index;
  5231. },
  5232. numberCopieschangeGR(index) {
  5233. this.guoRenaccidentForm.sumPremium =
  5234. Number(this.guoRenaccidentForm.policyNum) * index;
  5235. },
  5236. continuousChange(id) {
  5237. this.continuousCompanyList.map((ele) => {
  5238. if (ele.id == id) {
  5239. this.attributionform.configure = [];
  5240. ele.configure.map((ele, index) => {
  5241. this.attributionform.configure.push({
  5242. field: ele.field,
  5243. isEdit: ele.isEdit,
  5244. label: ele.label,
  5245. type: ele.type,
  5246. value: "",
  5247. });
  5248. });
  5249. }
  5250. });
  5251. },
  5252. //续保查询
  5253. continuousquery() {
  5254. this.$api.letter.queryRenewal(this.attributionform).then((res) => {
  5255. if (res.code == "200") {
  5256. this.carInfo = res.data.carInfo;
  5257. this.ownerInfo = res.data.ownerInfo;
  5258. this.policyHolderInfo = res.data.policyHolderInfo;
  5259. this.insuredPersonInfo = res.data.insuredPersonInfo;
  5260. res.data.riskList.map((ele) => {
  5261. if (ele.riskCode == "0507") {
  5262. this.jqchecked = true;
  5263. this.jqstartDate = ele.startDate;
  5264. this.jqendDate = ele.endDate;
  5265. } else if (ele.riskCode == "0510") {
  5266. this.sychecked = true;
  5267. this.systartDate = ele.startDate;
  5268. this.syendDate = ele.endDate;
  5269. }
  5270. county;
  5271. });
  5272. } else {
  5273. this.$message({
  5274. message: res.msg,
  5275. type: "error",
  5276. duration: 2000,
  5277. });
  5278. }
  5279. });
  5280. },
  5281. //永诚转保
  5282. renewalCodeconfirm() {
  5283. this.renewalCodedialogVisible = false;
  5284. this.quote();
  5285. },
  5286. //报价轨迹查询
  5287. RadioHistoryChange(e) {
  5288. let params = {
  5289. orderNo: this.orderno,
  5290. orderStatus: e == 888 ? "" : e,
  5291. };
  5292. this.$api.letter.queryQuoteHistory(params).then((res) => {
  5293. res.data.forEach((item) => {
  5294. if (item.accidentInfo) {
  5295. item.accidentInfo.constructor === Object
  5296. ? [item.accidentInfo]
  5297. : item.accidentInfo;
  5298. }
  5299. });
  5300. this.HistoryList = res.data;
  5301. });
  5302. },
  5303. protocolJudge(val, val1) {
  5304. if (val1) {
  5305. this.totalCompanyList.forEach((e) => {
  5306. if (
  5307. e.agreement.find(
  5308. (el) => el.productsCode && el.productsCode.includes(val)
  5309. )
  5310. ) {
  5311. e.agreement.find(
  5312. (el) => el.productsCode && el.productsCode.includes(val)
  5313. ).disabled = true;
  5314. }
  5315. });
  5316. } else {
  5317. this.totalCompanyList.forEach((e) => {
  5318. if (
  5319. e.agreement.find(
  5320. (el) => el.productsCode && el.productsCode.includes(val)
  5321. )
  5322. ) {
  5323. e.agreement.find(
  5324. (el) => el.productsCode && el.productsCode.includes(val)
  5325. ).disabled = false;
  5326. }
  5327. });
  5328. }
  5329. },
  5330. async obtainProtocol(data) {
  5331. let res = {};
  5332. if (this.isLetter == "1") {
  5333. res = await this.$api.letter.getAllAgreement();
  5334. }
  5335. if (this.isLetter == "2") {
  5336. res = await this.$api.letter.getAllAgreementByUserId({
  5337. userId: this.userId,
  5338. });
  5339. }
  5340. if (this.isLetter == "3") {
  5341. this.userId = data ? data.userid : this.userId;
  5342. res = await this.$api.letter.getExternalAgreement();
  5343. }
  5344. if (res.code == 200) {
  5345. res.data.map((ele) => {
  5346. ele["result"] = {};
  5347. ele["quoteCode"] = 0;
  5348. ele["checked"] = false;
  5349. ele["msg"] = "";
  5350. ele["lastYearMsg"] = "";
  5351. ele["agreementId"] = "";
  5352. ele["apiType"] = "";
  5353. ele["orderstatus"] = 0;
  5354. ele.coefficient = "";
  5355. ele['isInspect'] = false;
  5356. // ele.agreementId = ele.agreement[0].id;
  5357. // ele.apiType = ele.agreement[0].apiType;
  5358. ele.underwritingDescription =
  5359. ele.agreement[0].underwritingDescription;
  5360. if (ele.isTaxSource && ele.isTaxSource == "1") {
  5361. ele.agreement.forEach((val) => {
  5362. if (val.isTaxSource && val.isTaxSource == "1") {
  5363. ele.agreementId = val.id;
  5364. ele.apiType = val.apiType;
  5365. }
  5366. });
  5367. }
  5368. });
  5369. if (data && data.insAreaCompanyEditingDtos) {
  5370. res.data.forEach((val, index) => {
  5371. data.insAreaCompanyEditingDtos.forEach((ele) => {
  5372. if (val.namesimple == ele.inscompany) {
  5373. if (["中国人寿", "诚泰财险"].includes(ele.inscompany) && ele.companyId) {
  5374. this.lastCompanyId = ele.companyId;
  5375. }
  5376. res.data[index].quoteCode = 200;
  5377. res.data[index].result = ele;
  5378. }
  5379. });
  5380. });
  5381. }
  5382. // //险种合并集合
  5383. }
  5384. const combinedArray = [
  5385. ...this.riskList.map(item => item.riskCode),
  5386. ...this.kindList.map(item => item.kindCode),
  5387. ];
  5388. res.data = res.data.filter(obj => {
  5389. obj.agreement = obj.agreement.filter(agreementObj => {
  5390. // 险种配置为空,则过滤掉该协议
  5391. if (agreementObj.productsCodes == null) {
  5392. return true;
  5393. } else {
  5394. // 检查是否包含 A 的特殊处理
  5395. if (combinedArray.includes('A') && !agreementObj.productsCodes.includes(
  5396. 'A')) {
  5397. return false;
  5398. }
  5399. return agreementObj.productsCodes.some(item => combinedArray.includes(
  5400. item));
  5401. }
  5402. });
  5403. return obj.agreement.length > 0; // 返回true保留,返回false移除该保险公司
  5404. });
  5405. res.data.forEach((e) => {
  5406. e.agreement.forEach((el) => (el.disabled = false));
  5407. });
  5408. //this.totalCompanyList = res.data;
  5409. this.totalCompanyListBak =res.data;
  5410. },
  5411. //获取保险公司列表
  5412. // commpanyList() {
  5413. // this.$api.letter.gainAllowQuoteList("").then(res => {
  5414. // res.data.map(ele => {
  5415. // ele["result"] = {};
  5416. // ele["quoteCode"] = 0;
  5417. // ele["checked"] = false;
  5418. // ele["msg"] = "";
  5419. // ele["lastYearMsg"] = "";
  5420. // ele["agreementId"] = "";
  5421. // ele["apiType"] = "";
  5422. // ele["orderstatus"] = 0;
  5423. // ele.coefficient = "";
  5424. // // ele.agreementId = ele.agreement[0].id;
  5425. // ele.apiType = ele.agreement[0].apiType;
  5426. // ele.underwritingDescription =
  5427. // ele.agreement[0].underwritingDescription;
  5428. // });
  5429. // if (this.$route.query.data) {
  5430. // res.data.forEach((val, index) => {
  5431. // this.$route.query.data.insAreaCompanyEditingDtos.forEach(ele => {
  5432. // if (val.namesimple == ele.inscompany) {
  5433. // res.data[index].quoteCode = 200;
  5434. // res.data[index].result = ele;
  5435. // }
  5436. // });
  5437. // });
  5438. // }
  5439. // this.totalCompanyList = res.data;
  5440. // });
  5441. // },
  5442. Payment(id, item) {
  5443. this.carcode(id, item);
  5444. },
  5445. /**
  5446. // 获取出口费用
  5447. getExternalOrderFee(agreementId, riskList, kindList) {
  5448. let data = {
  5449. agreementId: agreementId,
  5450. risks: riskList,
  5451. kinds: kindList,
  5452. userId: this.userId,
  5453. jqPremium: this.policyNumberForm.jqpremium,
  5454. jqRadio: this.policyNumberForm.jqCostsProportion,
  5455. syPremium: this.policyNumberForm.sypremium,
  5456. syRadio: this.policyNumberForm.syCostsProportion,
  5457. jyPremium: this.policyNumberForm.jypremium,
  5458. jyRadio: this.policyNumberForm.noCostsProportion,
  5459. }
  5460. this.$api.letter.externalOrderFee(data).then((res) => {
  5461. if (res.code == 200) {
  5462. this.policyNumberForm.JqExportFee = res.data.jqExportRadio
  5463. this.policyNumberForm.syExportFee = res.data.syExportRadio
  5464. this.policyNumberForm.noExportFee = res.data.noExportRadio
  5465. console.log(res.data.jqExportRadio, res.data.syExportRadio, res.data.noExportRadio, '111111111111111111')
  5466. this.$forceUpdate()
  5467. } else {
  5468. this.$message.error(res.msg)
  5469. }
  5470. })
  5471. },
  5472. // 现询
  5473. getInquiryNowList(agreementId, riskList, kindList) {
  5474. let productId = ''
  5475. this.inquiryNowList = []
  5476. this.$api.letter.getProductId({
  5477. riskList: riskList,
  5478. kindList: kindList
  5479. }).then((res) => {
  5480. if (res.code == 200) {
  5481. productId = res.data
  5482. this.$api.letter.getInquiryNowFee({
  5483. agreementId: agreementId,
  5484. productId: productId
  5485. }).then((resp) => {
  5486. if (resp.code == 200) {
  5487. this.inquiryNowList = resp.data
  5488. }
  5489. })
  5490. }
  5491. })
  5492. },
  5493. inquiryNowListChange(data) {
  5494. if (data) {
  5495. this.nowCostsId = data // 现询id
  5496. this.isInquiryNowDisable = true
  5497. this.inquiryNowList.forEach((val) => {
  5498. if (val.id == data) {
  5499. this.policyNumberForm.jqCostsProportion = val.jqCostsProportion
  5500. this.policyNumberForm.noCostsProportion = val.noCostsProportion
  5501. this.policyNumberForm.syCostsProportion = val.syCostsProportion
  5502. }
  5503. })
  5504. } else {
  5505. this.nowCostsId = ''
  5506. this.isInquiryNowDisable = false
  5507. this.policyNumberForm.jqCostsProportion = ''
  5508. this.policyNumberForm.noCostsProportion = ''
  5509. this.policyNumberForm.syCostsProportion = ''
  5510. }
  5511. },
  5512. **/
  5513. /**
  5514. //选择协议 val:协议id row:协议列表 index:下标 item:保险公司数据集合
  5515. agreementChange(val, row, index, item) {
  5516. this.getInquiryNowList(val, this.riskList, this.kindList)
  5517. this.getExternalOrderFee(val, this.riskList, this.kindList)
  5518. this.kindListFun();
  5519. if (this.isLetter == "3") {
  5520. this.isLetter3agreementId = "";
  5521. this.isLetter3agreementId = item.agreementId;
  5522. }
  5523. let obj = {};
  5524. obj = row.find((item) => {
  5525. return item;
  5526. });
  5527. let selectRow = row.find((item) => {
  5528. return item.id == val;
  5529. });
  5530. let info = row.find((ele) => ele.id == val);
  5531. this.totalCompanyList[index].apiType = info.apiType;
  5532. this.totalCompanyList[index].underwritingDescription = val
  5533. ? selectRow.underwritingDescription
  5534. : ""; //重新赋值修改选中协议承保描述
  5535. if (this.$route.path != "/task/external/externalOrders")
  5536. if (item.namesimple == "平安财险") {
  5537. this.$api.letter.getPingAnDrivingInsuranceRule({
  5538. cimodelclass: this.carInfo.cimodelclass,
  5539. isUseCombine: 'Y',
  5540. tonNumber: this.carInfo.limitLoad,
  5541. ownAttribute: '03',
  5542. useAttribute: this.carInfo.carnature,
  5543. ruleSeatNum: Number(this.carInfo.seatCount),
  5544. agreementId: item.agreementId,
  5545. }).then(res => {
  5546. this.pinganInsuranceData = res.data;
  5547. })
  5548. return
  5549. }
  5550. // this.$api.letter
  5551. // .getDrivingInsuranceRule({
  5552. // companyCode: item.id,
  5553. // agreementId: item.agreementId,
  5554. // seatNum:
  5555. // item.namesimple == "永诚财险" || item.namesimple == "中煤财险"
  5556. // ? Number(this.carInfo.seatCount)
  5557. // : "",
  5558. // ruleUseNature: this.carInfo.carnature,
  5559. // ruleSeatNum: Number(this.carInfo.seatCount),
  5560. // risk: this.riskList,
  5561. // kind: this.kindList,
  5562. // ruleThirdPartyInsurance: this.insureList[1].amount,
  5563. // })
  5564. // .then((res) => {
  5565. // if (res.code == 200) {
  5566. // this.nonVehicle(res.data, item.cnName);
  5567. // switch (item.namesimple) {
  5568. // case "永诚财险":
  5569. // this.yongchengaccidentDataList = res.data;
  5570. // break;
  5571. // case "国任财险":
  5572. // this.guoRenaccidentDataList = res.data;
  5573. // break;
  5574. // case "渤海财险":
  5575. // this.boHaiaccidentDataList = res.data;
  5576. // break;
  5577. // case "中煤财险":
  5578. // this[item.cnName + +"InsuranceData"] = res.data;
  5579. // break;
  5580. // case "紫金财险":
  5581. // let data = res.data;
  5582. // data.map((ele) => {
  5583. // ele.quantity = 1;
  5584. // return ele;
  5585. // });
  5586. // this.ziJinInsuranceData = data;
  5587. // break;
  5588. // case "大家财险":
  5589. // this.dajiaInsuranceData = res.data;
  5590. // break;
  5591. // case "泰康财险":
  5592. // this.taikangaccidentDataList = res.data;
  5593. // break;
  5594. // case "诚泰财险":
  5595. // case "中国人寿":
  5596. // case "恒邦财险":
  5597. // case "太平财险":
  5598. // case "安盛天平":
  5599. // case "华农财险":
  5600. // case "众安平安":
  5601. // res.data.map((ele) => {
  5602. // ele.quantity = 1;
  5603. // return ele;
  5604. // });
  5605. // this[item.cnName + "InsuranceData"] = res.data;
  5606. // break;
  5607. // }
  5608. // } else {
  5609. // this.$message.error(res.msg);
  5610. // }
  5611. // });
  5612. // switch (item.namesimple) {
  5613. // case "永诚财险":
  5614. // this.accidentForm.agreementId = item.agreementId;
  5615. // this.$api.letter
  5616. // .ycgainAccidentList({
  5617. // companyCode: item.id,
  5618. // agreementId: item.agreementId,
  5619. // seatNum: Number(this.carInfo.seatCount)
  5620. // })
  5621. // .then(res => {
  5622. // if (res.code == 200) {
  5623. // this.accidentDataList = res.data;
  5624. // }
  5625. // });
  5626. // break;
  5627. // case "国任财险":
  5628. // this.guoRenaccidentForm.agreementId = item.agreementId;
  5629. // this.$api.letter
  5630. // .syncNonAutoInsGuoren({ agreementId: item.agreementId })
  5631. // .then(res => {
  5632. // if (res.code == 200) {
  5633. // this.guoRenaccidentDataList = res.data;
  5634. // } else {
  5635. // this.guoRenaccidentDataList = [];
  5636. // }
  5637. // });
  5638. // break;
  5639. // case "渤海财险":
  5640. // this.boHaiaccidentForm.agreementId = item.agreementId;
  5641. // let policyHolderInfo = this.tbczcarShow
  5642. // ? this.ownerInfo
  5643. // : this.policyHolderInfo;
  5644. // let productQueryVo = {
  5645. // agreementId: item.agreementId,
  5646. // carnature: this.carInfo.carnature,
  5647. // cimodelclass: this.carInfo.cimodelclass,
  5648. // exhaustScale: this.carInfo.enginedesc,
  5649. // limitLoad: this.carInfo.limitLoad,
  5650. // powerScale: this.carInfo.powerScale,
  5651. // seatCount: this.carInfo.seatCount,
  5652. // vehicleUse: this.carInfo.vehicleUse,
  5653. // policyHolderInfo,
  5654. // insuredPersonInfo: this.bbczcarShow
  5655. // ? this.ownerInfo
  5656. // : this.bbtbcarShow
  5657. // ? policyHolderInfo
  5658. // : this.insuredPersonInfo
  5659. // };
  5660. // this.$api.letter.productQueryboHai(productQueryVo).then(res => {
  5661. // if (res.code == 200) {
  5662. // this.boHaiaccidentDataList = res.data;
  5663. // } else {
  5664. // this.boHaiaccidentDataList = [];
  5665. // }
  5666. // });
  5667. // break;
  5668. // case "紫金财险":
  5669. // this.$api.letter
  5670. // .zijinqueryVehicleProducts({
  5671. // agreementId: val,
  5672. // seatCount: Number(this.carInfo.seatCount)
  5673. // })
  5674. // .then(res => {
  5675. // if (res.code == 200) {
  5676. // let data = res.data;
  5677. // data.map(ele => {
  5678. // ele.quantity = 1;
  5679. // return ele;
  5680. // });
  5681. // this.ziJinInsuranceData = data;
  5682. // } else {
  5683. // this.$message.error(res.msg);
  5684. // }
  5685. // });
  5686. // break;
  5687. // case "中国人寿":
  5688. // case "恒邦财险":
  5689. // case "太平财险":
  5690. // case "安盛天平":
  5691. // case "华农财险":
  5692. // case "众安平安":
  5693. // this.$api.letter.pythongetDriving({ agreementId: val }).then(res => {
  5694. // if (res.code == 200) {
  5695. // let data = res.data;
  5696. // data.map(ele => {
  5697. // ele.quantity = 1;
  5698. // return ele;
  5699. // });
  5700. // this[item.cnName + "InsuranceData"] = data;
  5701. // }
  5702. // });
  5703. // break;
  5704. // case "大家财险":
  5705. // this.$api.letter
  5706. // .dajiagetDriving({ agreementId: item.agreementId })
  5707. // .then(res => {
  5708. // if (res.code == 200) {
  5709. // this.dajiaInsuranceData = res.data;
  5710. // }
  5711. // });
  5712. // break;
  5713. // default:
  5714. // break;
  5715. // }
  5716. },
  5717. **/
  5718. nonVehicle(data, type) {
  5719. if (data.some((e) => e.isDefault)) {
  5720. if (type == "guoRen") {
  5721. this.grcxchange(data.find((ele) => ele.isDefault).projectCode);
  5722. this.grcxchangeChild(
  5723. data
  5724. .find((ele) => ele.isDefault)
  5725. .children.find((ele) => ele.isDefault).projectCode
  5726. );
  5727. }
  5728. if (type == "ansheng") {
  5729. this.anshengInsuranceChange(
  5730. data.find((ele) => ele.isDefault).projectCode
  5731. );
  5732. this.ASDrivingRadio(
  5733. data
  5734. .find((ele) => ele.isDefault)
  5735. .children.find((ele) => ele.isDefault)
  5736. );
  5737. }
  5738. if (type == "zijin") {
  5739. this[type + "InsuranceChange"]([
  5740. data.find((ele) => ele.isDefault).projectCode,
  5741. ]);
  5742. } else {
  5743. this[type + "InsuranceChange"](
  5744. data.find((ele) => ele.isDefault).projectCode
  5745. );
  5746. }
  5747. }
  5748. },
  5749. CheckboxChange(select, row) {
  5750. this.accidentalDrivingVo = [];
  5751. select.map((val) => {
  5752. this.accidentalDrivingVo.push(val);
  5753. return val;
  5754. });
  5755. },
  5756. //人寿驾意险选择
  5757. RSDrivingChange(row) {
  5758. this.renshouaccidentalDrivingVo = row;
  5759. },
  5760. TkDrivingChange(row) {
  5761. this.taikangaccidentalDrivingVo = row;
  5762. },
  5763. //众安驾意险选择
  5764. ZADrivingChange(row) {
  5765. this.zhonganaccidentalDrivingVo = row;
  5766. },
  5767. RSDrivingRadio(row) {
  5768. this.RSDrivingChange(row);
  5769. },
  5770. //安盛驾意险选择
  5771. ASDrivingRadio(row) {
  5772. this.anshengInsurancetype = row.projectCode;
  5773. this.anshengaccidentalDrivingVo = Object.assign({
  5774. ...this.anshengaccidentalDrivingVo,
  5775. ...row,
  5776. });
  5777. // this.anshengaccidentalDrivingVo.projectCode = row.projectCode;
  5778. // this.anshengaccidentalDrivingVo.projectName = row.projectName;
  5779. },
  5780. pinganDetail(row, agreementId) {
  5781. this.pinganDataDetailVisible = false
  5782. this.$api.letter
  5783. .productDetailsQuery({
  5784. agreementId,
  5785. packageCode: row.code,
  5786. productCode: row.productCode,
  5787. version: row.version,
  5788. })
  5789. .then((res) => {
  5790. if (res.code == 200) {
  5791. this.pinganDataDetailVisible = true
  5792. this.pinganDataDetail = res.data
  5793. }
  5794. else {
  5795. this.$message.err(res.msg)
  5796. }
  5797. });
  5798. },
  5799. sameItem(array1, array2) {
  5800. return array2.find(item => {
  5801. array1.some(innerItem => innerItem.code === item.code)
  5802. }
  5803. );
  5804. },
  5805. PADrivingCheckbox(event, row, agreementId, index) {
  5806. // const checkedVal = this.accidentFormPA[index].pinganInsuranceDataTable.find(x => x.cameraId === item.cameraId)
  5807. const isSelected = event.some(selectedRow => selectedRow.code == row.code);
  5808. let isIndex = null
  5809. let amount = null
  5810. event.find((selectedRow, selectedIndex) => {
  5811. if (selectedRow.code == row.code) {
  5812. isIndex = selectedIndex
  5813. }
  5814. });
  5815. if (event.length > 0 && isSelected) {
  5816. this.$api.letter
  5817. .productDetailsQuery({
  5818. agreementId,
  5819. packageCode: row.code,
  5820. productCode: row.productCode,
  5821. version: row.version,
  5822. })
  5823. .then((res) => {
  5824. if (res.code == 200) {
  5825. res.data.forEach(ele => {
  5826. amount += Number(ele.unitInsuredAmount) ? Number(ele.unitInsuredAmount) : 0
  5827. })
  5828. event[isIndex].amount = amount
  5829. }
  5830. else {
  5831. this.$message.err(res.msg)
  5832. }
  5833. });
  5834. }
  5835. event.forEach((res, indexOf) => {
  5836. res.projectName = this.accidentFormPA[index].projectName
  5837. res.projectCode = this.accidentFormPA[index].projectCode
  5838. res.combineProductType = this.accidentFormPA[index].combineProductType
  5839. })
  5840. this.pinganaccidentalDrivingVo[index] = event
  5841. },
  5842. //平安驾意险选择
  5843. PADrivingRadio(row, agreementId, index) {
  5844. // this.accidentPremiumPA = row.premium;
  5845. this.accidentFormPA[index].quantity = '1';
  5846. this.accidentFormPA[index].sellListSize = Number(row.sellListSize);
  5847. this.accidentFormPA[index].premium = row.premium
  5848. this.accidentFormPA[index].combineProductType = row.combineProductType
  5849. this.accidentFormPA[index].accidentPremiumPA = row.premium
  5850. this.accidentFormPA[index].pinganInsurancetype = row.code;
  5851. this.$api.letter
  5852. .productDetailsQuery({
  5853. agreementId,
  5854. packageCode: row.code,
  5855. productCode: row.productCode,
  5856. version: row.version,
  5857. })
  5858. .then((res) => {
  5859. if (res.code == 200) {
  5860. this.accidentFormPA[index].amount = 0
  5861. res.data.forEach(e => {
  5862. this.accidentFormPA[index].amount += Number(e.unitInsuredAmount) ? Number(e.unitInsuredAmount) : 0
  5863. })
  5864. this.pinganaccidentalDrivingVo[index] = {
  5865. ...row,
  5866. ...this.accidentFormPA[index],
  5867. };
  5868. }
  5869. else {
  5870. this.$message.err(res.msg)
  5871. this.pinganaccidentalDrivingVo[index] = {
  5872. ...row,
  5873. ...this.accidentFormPA[index],
  5874. };
  5875. }
  5876. });
  5877. },
  5878. ZADrivingRadio(row) {
  5879. this.ZADrivingChange(row);
  5880. },
  5881. // 国任特约选择
  5882. contributingGuoRen(id) {
  5883. this.zijinengageListData = [];
  5884. this.contributingLoading = true;
  5885. this.contributingState = true;
  5886. this.hbsubmitdialogVisible = true;
  5887. this.$api.letter
  5888. .guorenqueryClauseData({ agreementId: id })
  5889. .then((res) => {
  5890. this.contributingLoading = false;
  5891. res.data.forEach((val) => {
  5892. val.clauseName = val.clauses;
  5893. val.clauseContent = val.clausesContext;
  5894. });
  5895. this.zijinengageListData = res.data;
  5896. });
  5897. },
  5898. //紫金特约选择
  5899. zijinengageChange(select, row) {
  5900. this.zijinengageList = [];
  5901. select.map((val) => {
  5902. this.zijinengageList.push({
  5903. clauseCode: val.clauseCode,
  5904. clauseName: val.clauseName,
  5905. clauses: val.clauseContent,
  5906. riskCode: val.riskCode,
  5907. });
  5908. return val;
  5909. });
  5910. },
  5911. zijinengageChangeAll(row) {
  5912. if (row) {
  5913. this.zijinengageChange(row);
  5914. } else {
  5915. this.$refs.expandTablePro.clearSelection();
  5916. this.zijinengageList = [];
  5917. }
  5918. },
  5919. //紫金特约内容编辑
  5920. zijincellDblclick(row, column) {
  5921. this.currentCell = row.index + "," + column.index;
  5922. if (
  5923. !["clauseContent"].includes(column.property) &&
  5924. row.modifyFlag == "1"
  5925. ) {
  5926. setTimeout(() => {
  5927. this.$refs[row.index + "," + column.index].focus();
  5928. });
  5929. }
  5930. },
  5931. tableCellClassName({ row, column, rowIndex, columnIndex }) {
  5932. row.index = rowIndex;
  5933. column.index = columnIndex;
  5934. },
  5935. hideInput() {
  5936. this.currentCell = null;
  5937. },
  5938. updateArray(arr, value, condition) {
  5939. if (condition) {
  5940. arr.push(value);
  5941. } else {
  5942. const index = arr.indexOf(value);
  5943. if (index !== -1) {
  5944. arr.splice(index, 1);
  5945. }
  5946. }
  5947. if (arr.length == 0) {
  5948. this.totalCompanyList.forEach((e) => {
  5949. e.disabled = false;
  5950. });
  5951. } else {
  5952. this.totalCompanyList.forEach((e) => {
  5953. e.disabled = e.id == arr[0] ? false : true;
  5954. });
  5955. }
  5956. },
  5957. //勾选保险公司
  5958. initchange(e, code, name, index) {
  5959. if (this.isLetter == "3") {
  5960. this.updateArray(this.isLetter3Arr, code, e);
  5961. if (e) {
  5962. this.totalCompanyList[index].result = JSON.parse(
  5963. JSON.stringify(this.policyNumberForm)
  5964. );
  5965. } else {
  5966. this.totalCompanyList[index].result = [];
  5967. }
  5968. }
  5969. if (e) {
  5970. this.kindListFun();
  5971. let ins = this.totalCompanyList[index].namesimple;
  5972. this.totalCompanyList[index].checked = e;
  5973. this.totalCompanyList[index].underwritingDescription =
  5974. this.totalCompanyList[index].agreement[0].underwritingDescription;
  5975. // if (this.$route.path != "/task/external/externalOrders")
  5976. // this.$api.letter
  5977. // .getDrivingInsuranceRule({
  5978. // agreementId: this.totalCompanyList[index].agreement[0].id,
  5979. // seatNum:
  5980. // ins == "永诚财险" || ins == "中煤财险"
  5981. // ? Number(this.carInfo.seatCount)
  5982. // : "",
  5983. // ruleUseNature: this.carInfo.carnature,
  5984. // ruleSeatNum: Number(this.carInfo.seatCount),
  5985. // risk: this.riskList,
  5986. // kind: this.kindList,
  5987. // ruleThirdPartyInsurance: this.insureList[1].amount,
  5988. // cimodelclass: ins == "平安财险"
  5989. // ? this.carInfo.cimodelclass
  5990. // : "",
  5991. // isUseCombine: ins == "平安财险"
  5992. // ? 'Y'
  5993. // : "",
  5994. // tonNumber: ins == "平安财险"
  5995. // ? this.carInfo.limitLoad
  5996. // : "",
  5997. // ownAttribute: ins == "平安财险"
  5998. // ? '03'
  5999. // : "",
  6000. // useAttribute: ins == "平安财险"
  6001. // ? this.carInfo.carnature
  6002. // : "",
  6003. // })
  6004. // .then((res) => {
  6005. // if (res.code == 200) {
  6006. // switch (ins) {
  6007. // case "永诚财险":
  6008. // this.yongchengaccidentDataList = res.data;
  6009. // break;
  6010. // case "国任财险":
  6011. // this.guoRenaccidentDataList = res.data;
  6012. // break;
  6013. // case "泰康财险":
  6014. // this.taikangaccidentDataList = res.data;
  6015. // break;
  6016. // case "渤海财险":
  6017. // this.boHaiaccidentDataList = res.data;
  6018. // break;
  6019. // case "中煤财险":
  6020. // case "平安财险":
  6021. // this[name + "InsuranceData"] = res.data;
  6022. // break;
  6023. // case "紫金财险":
  6024. // let data = res.data;
  6025. // data.map((ele) => {
  6026. // ele.quantity = 1;
  6027. // return ele;
  6028. // });
  6029. // this.ziJinInsuranceData = data;
  6030. // break;
  6031. // case "大家财险":
  6032. // this.dajiaInsuranceData = res.data;
  6033. // break;
  6034. // case "诚泰财险":
  6035. // case "中国人寿":
  6036. // case "恒邦财险":
  6037. // case "太平财险":
  6038. // case "华农财险":
  6039. // case "安盛天平":
  6040. // case "众安平安":
  6041. // res.data.map((ele) => {
  6042. // ele.quantity = 1;
  6043. // return ele;
  6044. // });
  6045. // this[name + "InsuranceData"] = res.data;
  6046. // break;
  6047. // }
  6048. // this.nonVehicle(res.data, name);
  6049. // } else {
  6050. // this.$message.error(res.msg);
  6051. // }
  6052. // });
  6053. // switch (ins) {
  6054. // case "永诚财险":
  6055. // this.accidentForm.agreementId = this.totalCompanyList[
  6056. // index
  6057. // ].agreement[0].id;
  6058. // this.$api.letter
  6059. // .ycgainAccidentList({
  6060. // companyCode: this.totalCompanyList[index].id,
  6061. // agreementId: this.totalCompanyList[index].agreement[0].id,
  6062. // seatNum: Number(this.carInfo.seatCount)
  6063. // })
  6064. // .then(res => {
  6065. // if (res.code == 200) {
  6066. // this.accidentDataList = res.data;
  6067. // } else {
  6068. // this.accidentDataList = [];
  6069. // }
  6070. // });
  6071. // break;
  6072. // case "国任财险":
  6073. // this.guoRenaccidentForm.agreementId = this.totalCompanyList[
  6074. // index
  6075. // ].agreement[0].id;
  6076. // this.$api.letter
  6077. // .syncNonAutoInsGuoren({
  6078. // goodsCode: "",
  6079. // agreementId: this.totalCompanyList[index].agreement[0].id
  6080. // })
  6081. // .then(res => {
  6082. // if (res.code == 200) {
  6083. // this.guoRenaccidentDataList = res.data;
  6084. // } else {
  6085. // this.guoRenaccidentDataList = [];
  6086. // }
  6087. // });
  6088. // break;
  6089. // case "紫金财险":
  6090. // this.$api.letter
  6091. // .zijinqueryVehicleProducts({
  6092. // agreementId: this.totalCompanyList[index].agreement[0].id,
  6093. // seatCount: Number(this.carInfo.seatCount)
  6094. // })
  6095. // .then(res => {
  6096. // if (res.code == 200) {
  6097. // let data = res.data;
  6098. // data.map(ele => {
  6099. // ele.quantity = 1;
  6100. // return ele;
  6101. // });
  6102. // this.ziJinInsuranceData = data;
  6103. // } else {
  6104. // this.$message.error(res.msg);
  6105. // }
  6106. // });
  6107. // break;
  6108. // case "安盛天平":
  6109. // this.$api.letter
  6110. // .pythongetDriving({
  6111. // agreementId: this.totalCompanyList[index].agreement[0].id
  6112. // })
  6113. // .then(res => {
  6114. // if (res.code == 200) {
  6115. // let data = res.data;
  6116. // data.map(ele => {
  6117. // ele.departmentProductList.map(val => {
  6118. // val.quantity = 1;
  6119. // });
  6120. // return ele;
  6121. // });
  6122. // this[name + "InsuranceData"] = data;
  6123. // } else {
  6124. // this.$message.error(res.msg);
  6125. // }
  6126. // });
  6127. // break;
  6128. // case "中国人寿":
  6129. // case "恒邦财险":
  6130. // case "太平财险":
  6131. // case "华农财险":
  6132. // case "众安平安":
  6133. // this.$api.letter
  6134. // .pythongetDriving({
  6135. // agreementId: this.totalCompanyList[index].agreement[0].id
  6136. // })
  6137. // .then(res => {
  6138. // if (res.code == 200) {
  6139. // let data = res.data;
  6140. // data.map(ele => {
  6141. // ele.quantity = 1;
  6142. // return ele;
  6143. // });
  6144. // this[name + "InsuranceData"] = data;
  6145. // } else {
  6146. // this.$message.error(res.msg);
  6147. // }
  6148. // });
  6149. // break;
  6150. // case "中煤财险":
  6151. // this.accidentFormZM.agreementId = this.totalCompanyList[
  6152. // index
  6153. // ].agreement[0].id;
  6154. // this.$api.letter
  6155. // .zmGetDrivingPro({
  6156. // agreementId: this.totalCompanyList[index].agreement[0].id,
  6157. // seatNum: this.carInfo.seatCount
  6158. // })
  6159. // .then(res => {
  6160. // if (res.code == 200) {
  6161. // let data = res.data;
  6162. // this[name + "InsuranceData"] = data;
  6163. // } else {
  6164. // this.$message.error(res.msg);
  6165. // }
  6166. // });
  6167. // break;
  6168. // case "大家财险":
  6169. // this.$api.letter
  6170. // .dajiagetDriving({
  6171. // agreementId: this.totalCompanyList[index].agreement[0].id
  6172. // })
  6173. // .then(res => {
  6174. // if (res.code == 200) {
  6175. // this.dajiaInsuranceData = res.data;
  6176. // } else {
  6177. // this.$message.error(res.msg);
  6178. // }
  6179. // });
  6180. // break;
  6181. // default:
  6182. // break;
  6183. // }
  6184. // } else {
  6185. }
  6186. },
  6187. clearAccidentForm() {
  6188. this.yongchengInsuranceDataTable = [];
  6189. this.accidentForm = {};
  6190. this.accidentForm.fen = 1;
  6191. this.accidentForm.premium = 0;
  6192. },
  6193. clearAccidentFormPA(index) {
  6194. // this.accidentFormPA[index]={
  6195. // quantity: 1,
  6196. // premium: 0,
  6197. // pingantemplateSelection:'',
  6198. // pinganInsuranceDataTable:[],
  6199. // pinganInsurancetype:'',
  6200. // }
  6201. this.pinganaccidentalDrivingVo[index] = {};
  6202. console.log(this.accidentFormPA[index], 9999999999);
  6203. },
  6204. clearAccidentFormTk() {
  6205. this.taikangaccidentalDrivingVo = {};
  6206. this.taikangInsuranceDataTable = [];
  6207. this.accidentFormTk = {};
  6208. this.accidentFormTk.fen = 1;
  6209. this.accidentFormTk.premium = 0;
  6210. },
  6211. clearAccidentFormGr() {
  6212. (this.guoRenInsuranceDataTable = []),
  6213. (this.guoRenaccidentDataListChild = []);
  6214. this.guoRenaccidentForm = {
  6215. quantity: "1",
  6216. premium: 0,
  6217. };
  6218. },
  6219. clearAccidentFormBh() {
  6220. this.bohaiInsuranceDataTable = [];
  6221. this.boHaiaccidentForm = {
  6222. copies: "1",
  6223. premium: 0,
  6224. };
  6225. // this.bohaiaccidentalDrivingVo={};
  6226. },
  6227. clearAccidentFormHN() {
  6228. this.huanongaccidentalDrivingVo = {};
  6229. },
  6230. clearAccidentFormHB() {
  6231. this.hengbangaccidentalDrivingVo = {};
  6232. },
  6233. clearAccidentFormCT() {
  6234. this.chengtaiaccidentalDrivingVo = {};
  6235. },
  6236. clearAccidentFormTP() {
  6237. this.taipingaccidentalDrivingVo = {};
  6238. },
  6239. clearAccidentFormDJ() {
  6240. this.dajiaaccidentalDrivingVo = {};
  6241. },
  6242. clearAccidentFormZM() {
  6243. this.zhongmeiaccidentalDrivingVo = {};
  6244. },
  6245. clearAccidentFormZJ() {
  6246. this.accidentalDrivingVo = [];
  6247. },
  6248. clearAccidentFormZA() {
  6249. this.zhonganaccidentalDrivingVo = {};
  6250. },
  6251. clearAccidentFormRS() {
  6252. this.renshouaccidentalDrivingVo = {};
  6253. },
  6254. clearAccidentFormAS() {
  6255. this.anshengaccidentalDrivingVo = {};
  6256. },
  6257. //身份证有效期长期
  6258. insureLongterm(e) {
  6259. this[e].identifyValidEndDate = "9999-12-31";
  6260. },
  6261. //较强起保日期事件
  6262. jqChange(e) {
  6263. this.jqendDate = this.oneYearPast1(e);
  6264. },
  6265. //商业起保日期事件
  6266. syChange(e) {
  6267. this.syendDate = this.oneYearPast1(e);
  6268. },
  6269. // //查看更多
  6270. // selectMore(leg) {
  6271. // this.insureMore = false;
  6272. // this.insureLength = leg;
  6273. // },
  6274. // //收起
  6275. // packup() {
  6276. // this.insureMore = true;
  6277. // this.insureLength = 5;
  6278. // },
  6279. //险别选择框事件
  6280. insureitemChange(e, item) {
  6281. let index_old= -1;
  6282. this.kindList.filter(function(kind,index,arr){
  6283. if(kind.kindCode == item.kindCode){
  6284. index_old =index;
  6285. }
  6286. });
  6287. console.log(index_old)
  6288. if (e != 0) {
  6289. if(!this.sychecked){
  6290. this.sychecked = true;
  6291. this.systartDate = this.transformTime1();
  6292. this.syendDate = this.oneYearPast1(this.systartDate);
  6293. }
  6294. if (index_old==-1){
  6295. this.kindList.push(item)
  6296. }else{
  6297. this.$set(this.kindList, index_old, item);
  6298. }
  6299. this.obtainProtocol();
  6300. } else {
  6301. if (index_old==-1){
  6302. this.kindList.push(item)
  6303. }else{
  6304. this.$set(this.kindList, index_old, item);
  6305. }
  6306. this.obtainProtocol();
  6307. }
  6308. console.log(this.kindList)
  6309. },
  6310. all() {
  6311. this.$refs.detailsDialog.setBackupVisible(true);
  6312. },
  6313. base64ToBlob(code) {
  6314. code = code.replace(/[\n\r]/g, "");
  6315. // atob() 方法用于解码使用 base-64 编码的字符串。
  6316. const raw = window.atob(code);
  6317. const rawLength = raw.length;
  6318. const uInt8Array = new Uint8Array(rawLength);
  6319. for (let i = 0; i < rawLength; ++i) {
  6320. uInt8Array[i] = raw.charCodeAt(i);
  6321. }
  6322. return new Blob([uInt8Array], { type: "application/pdf" });
  6323. },
  6324. viewPdf(content) {
  6325. if (!content) {
  6326. this.$message.error("暂无文件");
  6327. return;
  6328. }
  6329. const blob = this.base64ToBlob(content);
  6330. this.href = blob;
  6331. if (window.navigator && window.navigator.msSaveOrOpenBlob) {
  6332. window.navigator.msSaveOrOpenBlob(blob);
  6333. } else {
  6334. const fileURL = URL.createObjectURL(blob);
  6335. window.open(fileURL);
  6336. }
  6337. },
  6338. //二维码生成插件
  6339. creatQrCode(text) {
  6340. // 查找并删除旧的二维码DOM元素
  6341. let element = document.getElementById("qrcode");
  6342. while (element.firstChild) {
  6343. element.removeChild(element.firstChild);
  6344. }
  6345. // 创建新的QRCode实例
  6346. this.qrcode = new QRCode("qrcode", {
  6347. text: text,
  6348. width: this.qrcodeWidth,
  6349. height: this.qrcodeHeight,
  6350. colorDark: "#000000",
  6351. colorLight: "#ffffff",
  6352. correctLevel: QRCode.CorrectLevel.H,
  6353. });
  6354. },
  6355. //人工核保
  6356. underwriting(id) {
  6357. let param = {
  6358. companyId: id,
  6359. };
  6360. this.$api.letter.manualUnderwriting(param).then((res) => {
  6361. if (res.code == "200") {
  6362. this.Payment(id);
  6363. }
  6364. });
  6365. },
  6366. signature(companyId) {
  6367. this.$api.letter.pingAnsignEleApply({ companyId }).then((res) => {
  6368. if (res.code == 200 && res.data) {
  6369. this.resultMessageImg = process.env.BASE_URL + res.data.resultMessage
  6370. this.signaturedialogVisible = true;
  6371. // 查找并删除旧的二维码DOM元素
  6372. // let element = document.getElementById("signaturecode");
  6373. // while (element.firstChild) {
  6374. // element.removeChild(element.firstChild);
  6375. // }
  6376. // this.signaturecode = new QRCode("signaturecode", {
  6377. // text: resultMessage,
  6378. // width: 180,
  6379. // height: 180,
  6380. // colorDark: "#000000",
  6381. // colorLight: "#ffffff",
  6382. // correctLevel: QRCode.CorrectLevel.H,
  6383. // });
  6384. // this.signaturedialogVisible = true;
  6385. // this.$api.letter.pingAnsignEleApply({companyId}).then((res) => {
  6386. // if (res.code == 200 && res.data) {
  6387. // // 查找并删除旧的二维码DOM元素
  6388. // let element = document.getElementById("signaturecode");
  6389. // while (element.firstChild) {
  6390. // element.removeChild(element.firstChild);
  6391. // }
  6392. // this.signaturecode = new QRCode("signaturecode", {
  6393. // text: res.data.resultMessage,
  6394. // width: 180,
  6395. // height: 180,
  6396. // colorDark: "#000000",
  6397. // colorLight: "#ffffff",
  6398. // correctLevel: QRCode.CorrectLevel.H,
  6399. // });
  6400. } else {
  6401. this.$message({
  6402. message: res.msg || "暂无数据!",
  6403. type: "warning",
  6404. });
  6405. }
  6406. });
  6407. },
  6408. jqcheckedChange(e) {
  6409. if (e) {
  6410. this.jqstartDate = this.transformTime1();
  6411. this.jqendDate = this.oneYearPast1(this.jqstartDate);
  6412. if(!this.riskList.includes("0507")){
  6413. this.riskList.push({
  6414. riskCode: "0507",
  6415. });
  6416. }
  6417. this.obtainProtocol();
  6418. } else {
  6419. this.jqstartDate = "";
  6420. this.jqendDate = "";
  6421. let list = this.riskList.filter(item => item.riskCode !== "0507");
  6422. this.riskList = list;
  6423. this.obtainProtocol();
  6424. }
  6425. },
  6426. sycheckedChange(e) {
  6427. if (e) {
  6428. this.systartDate = this.transformTime1();
  6429. this.syendDate = this.oneYearPast1(this.systartDate);
  6430. if(!this.riskList.includes("0510")){
  6431. this.riskList.push({
  6432. riskCode: "0510",
  6433. });
  6434. }
  6435. this.obtainProtocol();
  6436. } else {
  6437. this.systartDate = "";
  6438. this.syendDate = "";
  6439. let list = this.riskList.filter(item => item.riskCode !== "0510");
  6440. this.riskList = list;
  6441. this.obtainProtocol();
  6442. }
  6443. },
  6444. // 保存
  6445. preserveQuote(type, btnLoading) {
  6446. if (
  6447. this.userId == "" ||
  6448. this.userId == null ||
  6449. this.userId == undefined
  6450. ) {
  6451. this.$message({ message: "请选择业务员信息", type: "error" });
  6452. return;
  6453. } else {
  6454. if (!this.userId.includes("M")) {
  6455. this.$message({ message: "请选择业务员信息", type: "error" });
  6456. return;
  6457. }
  6458. }
  6459. let starttime = new Date(this.carInfo.registerDate);
  6460. let endtime = new Date(this.carInfo.issueDate);
  6461. if (endtime < starttime) {
  6462. this.$message({ message: "发证日期早于初登日期", type: "error" });
  6463. return;
  6464. }
  6465. if (this.costFlag =='') {
  6466. this.$message({ message: "请选择是否现询", type: "error" });
  6467. return;
  6468. }
  6469. if (this.nowCostsId =='') {
  6470. this.$message({ message: "费用为空", type: "error" });
  6471. return;
  6472. }
  6473. if (
  6474. this.policyNumberForm.jqpolicyno ||
  6475. this.policyNumberForm.jqpremium ||
  6476. // this.policyNumberForm.jqCostsProportion ||
  6477. this.policyNumberForm.jqPolicyList.length > 0
  6478. ) {
  6479. if (
  6480. !(
  6481. this.policyNumberForm.jqpolicyno &&
  6482. this.policyNumberForm.jqpremium &&
  6483. // this.policyNumberForm.jqCostsProportion &&
  6484. this.policyNumberForm.jqPolicyList.length > 0
  6485. )
  6486. ) {
  6487. this.$message({
  6488. message: "请填写交强保单号、交强险保费、交强保单",
  6489. type: "error",
  6490. });
  6491. return;
  6492. }
  6493. }
  6494. if(this.policyNumberForm.jqpolicyno!='' && this.policyNumberForm.jqpolicyno!= null && this.policyNumberForm.jqCostsProportion == ''){
  6495. this.$message({
  6496. message: "请填写交强险总比例(%)",
  6497. type: "error",
  6498. });
  6499. return;
  6500. }
  6501. if (
  6502. this.policyNumberForm.sypolicyno ||
  6503. this.policyNumberForm.sypremium ||
  6504. //this.policyNumberForm.syCostsProportion ||
  6505. this.policyNumberForm.syPolicyList.length > 0
  6506. ) {
  6507. if (
  6508. !(
  6509. this.policyNumberForm.sypolicyno &&
  6510. this.policyNumberForm.sypremium &&
  6511. // this.policyNumberForm.syCostsProportion &&
  6512. this.policyNumberForm.syPolicyList.length > 0
  6513. )
  6514. ) {
  6515. this.$message({
  6516. message: "请填写商业保单号、商业险保费、商业保单",
  6517. type: "error",
  6518. });
  6519. return;
  6520. }
  6521. }
  6522. if(this.policyNumberForm.sypolicyno!='' && this.policyNumberForm.sypolicyno!= null && this.policyNumberForm.syCostsProportion == ''){
  6523. this.$message({
  6524. message: "请填写商业险总比例(%)",
  6525. type: "error",
  6526. });
  6527. return;
  6528. }
  6529. if (
  6530. this.policyNumberForm.jypolicyno ||
  6531. this.policyNumberForm.jypremium ||
  6532. // this.policyNumberForm.noCostsProportion ||
  6533. this.policyNumberForm.noPolicyList.length > 0
  6534. ) {
  6535. if (
  6536. !(
  6537. this.policyNumberForm.jypolicyno &&
  6538. this.policyNumberForm.jypremium &&
  6539. this.policyNumberForm.noCostsProportion &&
  6540. this.policyNumberForm.noPolicyList.length > 0
  6541. )
  6542. ) {
  6543. this.$message({
  6544. message:
  6545. "请填写驾意险保单号、驾意险保费、非车保单",
  6546. type: "error",
  6547. });
  6548. return;
  6549. }
  6550. }
  6551. if(this.policyNumberForm.jypolicyno!='' && this.policyNumberForm.jypolicyno!= null && this.policyNumberForm.noCostsProportion == ''){
  6552. this.$message({
  6553. message: "请填写非车险总比例(%)",
  6554. type: "error",
  6555. });
  6556. return;
  6557. }
  6558. this.$refs["carInfo"].validate((valid) => {
  6559. if (valid) {
  6560. var _this = this;
  6561. _this.$refs["ownerInfo"].validate((valid1) => {
  6562. if (valid1) {
  6563. _this.$refs["policyNumberForm"].validate((valid2) => {
  6564. if (valid2) {
  6565. if (_this.tbczcarShow == true) {
  6566. _this.policyHolderInfo = {..._this.ownerInfo}
  6567. }
  6568. if (_this.bbczcarShow == true) {
  6569. _this.insuredPersonInfo = {..._this.ownerInfo}
  6570. }
  6571. if (_this.bbtbcarShow == true) {
  6572. _this.insuredPersonInfo = {..._this.policyHolderInfo}
  6573. }
  6574. _this.carInfo.vinNo = _this.carInfo.frameNo;
  6575. _this.riskList = []; //险种大类
  6576. _this.kindList = []; //商业险险别
  6577. if (
  6578. (!_this.jqstartDate || !_this.jqendDate) &&
  6579. (!_this.systartDate || !_this.syendDate)
  6580. ) {
  6581. this.$message({
  6582. message: "投保日期不能为空",
  6583. type: "warning",
  6584. });
  6585. } else {
  6586. this.calculateLoading = true;
  6587. setInterval(() => {
  6588. this.calculateLoading = false;
  6589. }, 3000);
  6590. if (_this.jqchecked) {
  6591. //交强
  6592. _this.jqstartDate = this.transformTime(_this.jqstartDate);
  6593. _this.jqendDate = this.transformTime(_this.jqendDate);
  6594. _this.riskList.push({
  6595. amount: "200000",
  6596. premium: "0",
  6597. riskCode: "0507",
  6598. endDate: _this.jqendDate,
  6599. startDate: _this.jqstartDate,
  6600. instantFlag: "0",
  6601. });
  6602. }
  6603. if (_this.sychecked) {
  6604. _this.systartDate = this.transformTime(_this.systartDate);
  6605. _this.syendDate = this.transformTime(_this.syendDate);
  6606. //商业
  6607. _this.riskList.push({
  6608. premium: "0",
  6609. riskCode: "0510",
  6610. quotePreceptCode: "",
  6611. quotePreceptName: "",
  6612. endDate: _this.syendDate,
  6613. startDate: _this.systartDate,
  6614. instantFlag: "0",
  6615. });
  6616. _this.insureList.map((ele, index) => {
  6617. if (
  6618. ele.amount != "0" &&
  6619. (ele.kindCode == "D4" || ele.kindCode == "SY_FJ_YBW2")
  6620. ) {
  6621. _this.kindList.push({
  6622. unitAmount: _this.insureList[index].amount,
  6623. kindCode: _this.insureList[index].kindCode,
  6624. kindName: _this.insureList[index].kindName,
  6625. });
  6626. } else if (
  6627. ele.amount != "0" &&
  6628. (ele.kindCode == "MJ1" ||
  6629. ele.kindCode == "MJ2" ||
  6630. ele.kindCode == "MJ3" ||
  6631. ele.kindCode == "MJ4")
  6632. ) {
  6633. _this.kindList.push({
  6634. deductibleRate: _this.insureList[index].amount,
  6635. kindCode: _this.insureList[index].kindCode,
  6636. kindName: _this.insureList[index].kindName,
  6637. });
  6638. } else if (
  6639. ele.amount != "0" &&
  6640. (ele.kindCode == "TY1" ||
  6641. ele.kindCode == "TY2" ||
  6642. ele.kindCode == "TY3" ||
  6643. ele.kindCode == "TY4")
  6644. ) {
  6645. _this.kindList.push({
  6646. serviceTimes: _this.insureList[index].amount,
  6647. kindCode: _this.insureList[index].kindCode,
  6648. kindName: _this.insureList[index].kindName,
  6649. });
  6650. } else if (ele.amount != "0") {
  6651. _this.kindList.push({
  6652. amount: _this.insureList[index].amount,
  6653. kindCode: _this.insureList[index].kindCode,
  6654. kindName: _this.insureList[index].kindName,
  6655. });
  6656. }
  6657. return ele;
  6658. });
  6659. } else {
  6660. _this.kindList = [];
  6661. }
  6662. // console.log(_this.kindList);
  6663. // debugger
  6664. this.preserveOrderStageProcessing(type, btnLoading);
  6665. }
  6666. } else {
  6667. document.getElementById("Waibu").scrollIntoView();
  6668. _this.$message({
  6669. message: "请检查外部订单信息",
  6670. type: "warning",
  6671. });
  6672. }
  6673. });
  6674. } else {
  6675. document.getElementById("CheZhu").scrollIntoView();
  6676. _this.$message({ message: "请检查人员信息", type: "warning" });
  6677. }
  6678. });
  6679. } else {
  6680. document.getElementById("Car").scrollIntoView();
  6681. this.$message({ message: "请检查车辆信息", type: "warning" });
  6682. return false;
  6683. }
  6684. });
  6685. },
  6686. //订单生成后保存接口
  6687. preserveOrderStageProcessing(type, btnLoading) {
  6688. // console.log(this.editorInfo);
  6689. // debugger;
  6690. //同车主的选择框
  6691. this[btnLoading] = true;
  6692. if (this.tbczcarShow && this.imageList2.length > 0) {
  6693. //投保人同车主
  6694. this.imageList3 = JSON.parse(JSON.stringify(this.imageList2));
  6695. if (this.imageList3.length == 1) {
  6696. this.imageList3[0].imageType = this.imageList3[0].imageType.includes(
  6697. "C0"
  6698. )
  6699. ? "C03"
  6700. : "D03";
  6701. } else {
  6702. this.imageList3.forEach((e) => {
  6703. e.imageType = e.imageType.includes("C0") ? "C03" : "D03";
  6704. });
  6705. }
  6706. }
  6707. if (this.bbczcarShow && this.imageList2.length > 0) {
  6708. //被保人同车主
  6709. this.imageList4 = JSON.parse(JSON.stringify(this.imageList2));
  6710. if (this.imageList4.length == 1) {
  6711. this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  6712. "C0"
  6713. )
  6714. ? "C04"
  6715. : "D04";
  6716. } else {
  6717. this.imageList4.forEach((e) => {
  6718. e.imageType = e.imageType.includes("C0") ? "C04" : "D04";
  6719. });
  6720. }
  6721. }
  6722. if (this.bbtbcarShow && this.imageList3.length > 0) {
  6723. //被保人同投保人
  6724. this.imageList4 = JSON.parse(JSON.stringify(this.imageList3));
  6725. if (this.imageList4.length == 1) {
  6726. this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  6727. "C0"
  6728. )
  6729. ? "C04"
  6730. : "D04";
  6731. } else {
  6732. this.imageList4.forEach((e) => {
  6733. e.imageType = e.imageType.includes("C0") ? "C04" : "D04";
  6734. });
  6735. }
  6736. }
  6737. //日期长度<10处理
  6738. const formatDate = (date) => {
  6739. if (date.length < 10) {
  6740. return this.timeformat(date);
  6741. }
  6742. return date;
  6743. };
  6744. if (this.carInfo.registerDate.length < 10) {
  6745. this.carInfo.registerDate = formatDate(this.carInfo.registerDate);
  6746. }
  6747. if (this.carInfo.issueDate.length < 10) {
  6748. this.carInfo.issueDate = formatDate(this.carInfo.issueDate);
  6749. }
  6750. if (
  6751. this.carInfo.transferDate &&
  6752. this.carInfo.transferDate.length < 10 &&
  6753. this.carInfo.transferDate !== ""
  6754. ) {
  6755. this.carInfo.transferDate = formatDate(this.carInfo.transferDate);
  6756. }
  6757. //日期长度<10处理
  6758. //提交身份证/驾驶证 ——————————————————
  6759. this.policyHolderInfo.owner = this.tbczcarShow;
  6760. this.insuredPersonInfo.owner = this.bbczcarShow;
  6761. this.insuredPersonInfo.insuranceHolder = this.bbtbcarShow;
  6762. if (typeof this.ownerInfo.provinceData == "string") {
  6763. this.ownerInfo.provinceData = [];
  6764. }
  6765. if (typeof this.insuredPersonInfo.provinceData == "string") {
  6766. this.insuredPersonInfo.provinceData = [];
  6767. }
  6768. if (typeof this.policyHolderInfo.provinceData == "string") {
  6769. this.policyHolderInfo.provinceData = [];
  6770. }
  6771. if (this.$route.query.data) {
  6772. const mergedArray = [
  6773. ...this.imageList1,
  6774. ...this.imageList2,
  6775. ...this.imageList3,
  6776. ...this.imageList4,
  6777. ...this.imageList5,
  6778. ...this.imageList6,
  6779. ];
  6780. if (mergedArray.length > 0) {
  6781. let imageparam = {
  6782. imageList: mergedArray,
  6783. quoteNo: this.$route.query.data.quoteno,
  6784. };
  6785. this.$api.letter.uploadImages(imageparam).then((responses) => {
  6786. // this.$refs.imageDialog.imageEcho(this.$route.query.data.quoteno)
  6787. this.imageEcho(this.$route.query.data.quoteno); // 获取图片
  6788. });
  6789. }
  6790. this.editorInfo.applyinfo.owner = this.tbczcarShow;
  6791. this.editorInfo.insureinfo.owner = this.bbczcarShow;
  6792. this.editorInfo.insureinfo.insuranceHolder = this.bbtbcarShow;
  6793. let params = {
  6794. orderNo: this.$route.query.data.orderno,
  6795. ...this.policyNumberForm,
  6796. agreementId: this.isLetter3agreementId,
  6797. stageFlag: type,
  6798. jqstartdate: this.jqstartDate,
  6799. jqenddate: this.jqendDate,
  6800. systartdate: this.systartDate,
  6801. syenddate: this.syendDate,
  6802. kind: this.kindList,
  6803. risk: this.riskList,
  6804. kindList: this.kindList,
  6805. riskList: this.riskList,
  6806. carInfo: this.carInfo,
  6807. carinfo: this.carInfo,
  6808. insuredPersonInfo: this.insuredPersonInfo,
  6809. insureinfo: this.insuredPersonInfo,
  6810. ownerinfo: this.ownerInfo,
  6811. ownerInfo: this.ownerInfo,
  6812. policyHolderInfo: this.policyHolderInfo,
  6813. applyinfo: this.policyHolderInfo,
  6814. isExternal: "1",
  6815. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  6816. nowCostsId: this.nowCostsId,
  6817. costFlag: this.costFlag,
  6818. orderExternalStatus:this.orderExternalStatus
  6819. };
  6820. // debugger;
  6821. this.$api.letter.updateExternalOrder(params).then((res) => {
  6822. if (res.code == "200") {
  6823. this[btnLoading] = false;
  6824. this.$message({
  6825. message: res.msg || "编辑成功",
  6826. type: "success",
  6827. });
  6828. this.add();
  6829. } else {
  6830. this[btnLoading] = false;
  6831. this.$message.error(res.msg);
  6832. }
  6833. });
  6834. } else {
  6835. this.ownerInfo.owner = this.tbczcarShow;
  6836. this.insuredPersonInfo.owner = this.bbczcarShow;
  6837. this.insuredPersonInfo.insuranceHolder = this.bbtbcarShow;
  6838. let param = {
  6839. userId: this.userId,
  6840. quoteno: this.quoteno,
  6841. orderNo: this.orderno,
  6842. carInfo: this.carInfo,
  6843. insuredPersonInfo: this.insuredPersonInfo,
  6844. ownerInfo: this.ownerInfo,
  6845. policyHolderInfo: this.policyHolderInfo,
  6846. kindList: this.kindList,
  6847. riskList: this.riskList,
  6848. isExternal: "1",
  6849. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  6850. };
  6851. this.$api.letter.generateOrder(param).then((res) => {
  6852. if (res.code == "200") {
  6853. //上传图片
  6854. const mergedArray = [
  6855. ...this.imageList1,
  6856. ...this.imageList2,
  6857. ...this.imageList3,
  6858. ...this.imageList4,
  6859. ...this.imageList5,
  6860. ...this.imageList6,
  6861. ];
  6862. if (mergedArray.length > 0) {
  6863. let imageparam = {
  6864. imageList: mergedArray,
  6865. quoteNo: res.data.quoteno,
  6866. };
  6867. this.$api.letter.uploadImages(imageparam).then((responses) => {
  6868. this.imageEcho(res.data.quoteno); // 获取图片
  6869. // this.$refs.imageDialog.imageEcho(res.data.quoteno)
  6870. });
  6871. }
  6872. let params1 = {
  6873. orderNo: res.data.orderno,
  6874. ...this.policyNumberForm,
  6875. agreementId: this.isLetter3agreementId,
  6876. stageFlag: type,
  6877. nowCostsId: this.nowCostsId,
  6878. costFlag: this.costFlag,
  6879. };
  6880. // debugger
  6881. this.$api.letter.saveSubOrder(params1).then((res) => {
  6882. if (res.code == "200") {
  6883. this[btnLoading] = false;
  6884. this.$message({
  6885. message: res.msg || "录入成功",
  6886. type: "success",
  6887. });
  6888. this.add();
  6889. } else {
  6890. this[btnLoading] = false;
  6891. this.$message.error(res.msg);
  6892. }
  6893. });
  6894. } else {
  6895. this[btnLoading] = false;
  6896. this.$message.error(res.msg);
  6897. }
  6898. });
  6899. }
  6900. document.getElementById("company").scrollIntoView();
  6901. this.imageUploadShow = true;
  6902. },
  6903. policyHolderInfovalidate() {
  6904. let isvalidat = false;
  6905. let _this = this;
  6906. if (_this.tbczcarShow == true) {
  6907. _this.policyHolderInfo = JSON.parse(JSON.stringify(_this.ownerInfo));
  6908. } else {
  6909. _this.$refs["policyHolderInfo"].validate((valid2) => {
  6910. if (valid2) {
  6911. isvalidat = false;
  6912. } else {
  6913. document.getElementById("toubaor").scrollIntoView();
  6914. _this.$message({ message: "请检查投保人信息", type: "warning" });
  6915. isvalidat = true;
  6916. }
  6917. });
  6918. }
  6919. if (isvalidat) {
  6920. return;
  6921. }
  6922. },
  6923. //报价
  6924. quote() {
  6925. let starttime = new Date(this.carInfo.registerDate);
  6926. let endtime = new Date(this.carInfo.issueDate);
  6927. if (endtime < starttime) {
  6928. this.$message({ message: "发证日期早于初登日期", type: "error" });
  6929. return;
  6930. }
  6931. this.policyHolderInfovalidate();
  6932. this.$refs["carInfo"].validate((valid) => {
  6933. if (valid) {
  6934. var _this = this;
  6935. // this.policyHolderInfovalidate()
  6936. if (_this.tbczcarShow == true) {
  6937. _this.policyHolderInfo = JSON.parse(
  6938. JSON.stringify(_this.ownerInfo)
  6939. );
  6940. }
  6941. _this.$refs["ownerInfo"].validate((valid1) => {
  6942. if (valid1) {
  6943. if (_this.bbczcarShow == true) {
  6944. _this.insuredPersonInfo = JSON.parse(
  6945. JSON.stringify(_this.ownerInfo)
  6946. );
  6947. }
  6948. if (_this.bbtbcarShow == true) {
  6949. _this.insuredPersonInfo = JSON.parse(
  6950. JSON.stringify(_this.policyHolderInfo)
  6951. );
  6952. }
  6953. _this.carInfo.vinNo = _this.carInfo.frameNo;
  6954. _this.riskList = []; //险种大类
  6955. _this.kindList = []; //商业险险别
  6956. if (
  6957. (!_this.jqstartDate || !_this.jqendDate) &&
  6958. (!_this.systartDate || !_this.syendDate)
  6959. ) {
  6960. this.$message({ message: "投保日期不能为空", type: "warning" });
  6961. } else {
  6962. this.calculateLoading = true;
  6963. setInterval(() => {
  6964. this.calculateLoading = false;
  6965. }, 3000);
  6966. if (_this.jqchecked) {
  6967. //交强
  6968. _this.jqstartDate = this.transformTime(_this.jqstartDate);
  6969. _this.jqendDate = this.transformTime(_this.jqendDate);
  6970. _this.riskList.push({
  6971. amount: "200000",
  6972. premium: "0",
  6973. riskCode: "0507",
  6974. endDate: _this.jqendDate,
  6975. startDate: _this.jqstartDate,
  6976. instantFlag: "0",
  6977. });
  6978. }
  6979. if (_this.sychecked) {
  6980. _this.systartDate = this.transformTime(_this.systartDate);
  6981. _this.syendDate = this.transformTime(_this.syendDate);
  6982. //商业
  6983. _this.riskList.push({
  6984. premium: "0",
  6985. riskCode: "0510",
  6986. quotePreceptCode: "",
  6987. quotePreceptName: "",
  6988. endDate: _this.syendDate,
  6989. startDate: _this.systartDate,
  6990. instantFlag: "0",
  6991. });
  6992. _this.insureList.map((ele, index) => {
  6993. if (
  6994. ele.amount != "0" &&
  6995. (ele.kindCode == "D4" || ele.kindCode == "SY_FJ_YBW2")
  6996. ) {
  6997. _this.kindList.push({
  6998. unitAmount: _this.insureList[index].amount,
  6999. kindCode: _this.insureList[index].kindCode,
  7000. kindName: _this.insureList[index].kindName,
  7001. });
  7002. } else if (
  7003. ele.amount != "0" &&
  7004. (ele.kindCode == "MJ1" ||
  7005. ele.kindCode == "MJ2" ||
  7006. ele.kindCode == "MJ3" ||
  7007. ele.kindCode == "MJ4")
  7008. ) {
  7009. _this.kindList.push({
  7010. deductibleRate: _this.insureList[index].amount,
  7011. kindCode: _this.insureList[index].kindCode,
  7012. kindName: _this.insureList[index].kindName,
  7013. });
  7014. } else if (
  7015. ele.amount != "0" &&
  7016. (ele.kindCode == "TY1" ||
  7017. ele.kindCode == "TY2" ||
  7018. ele.kindCode == "TY3" ||
  7019. ele.kindCode == "TY4")
  7020. ) {
  7021. _this.kindList.push({
  7022. serviceTimes: _this.insureList[index].amount,
  7023. kindCode: _this.insureList[index].kindCode,
  7024. kindName: _this.insureList[index].kindName,
  7025. });
  7026. } else if (ele.amount != "0") {
  7027. _this.kindList.push({
  7028. amount: _this.insureList[index].amount,
  7029. kindCode: _this.insureList[index].kindCode,
  7030. kindName: _this.insureList[index].kindName,
  7031. });
  7032. }
  7033. return ele;
  7034. });
  7035. } else {
  7036. _this.kindList = [];
  7037. }
  7038. // if (_this.orderno) {
  7039. this.OrderStageProcessing();
  7040. // } else {
  7041. // _this.$api.letter.getquote().then(res => {
  7042. // _this.quoteno = res.data; //获取报价号
  7043. // this.OrderStageProcessing();
  7044. // });
  7045. // }
  7046. }
  7047. } else {
  7048. document.getElementById("CheZhu").scrollIntoView();
  7049. _this.$message({ message: "请检查人员信息", type: "warning" });
  7050. }
  7051. });
  7052. } else {
  7053. document.getElementById("Car").scrollIntoView();
  7054. this.$message({ message: "请检查车辆信息", type: "warning" });
  7055. return false;
  7056. }
  7057. });
  7058. },
  7059. kindListFun() {
  7060. var _this = this;
  7061. _this.riskList = []; //险种大类
  7062. _this.kindList = []; //商业险险别
  7063. if (
  7064. (!_this.jqstartDate || !_this.jqendDate) &&
  7065. (!_this.systartDate || !_this.syendDate)
  7066. ) {
  7067. this.$message({ message: "投保日期不能为空", type: "warning" });
  7068. } else {
  7069. if (_this.jqchecked) {
  7070. //交强
  7071. _this.jqstartDate = this.transformTime(_this.jqstartDate);
  7072. _this.jqendDate = this.transformTime(_this.jqendDate);
  7073. _this.riskList.push({
  7074. amount: "200000",
  7075. premium: "0",
  7076. riskCode: "0507",
  7077. endDate: _this.jqendDate,
  7078. startDate: _this.jqstartDate,
  7079. instantFlag: "0",
  7080. });
  7081. }
  7082. if (_this.sychecked) {
  7083. _this.systartDate = this.transformTime(_this.systartDate);
  7084. _this.syendDate = this.transformTime(_this.syendDate);
  7085. //商业
  7086. _this.riskList.push({
  7087. premium: "0",
  7088. riskCode: "0510",
  7089. quotePreceptCode: "",
  7090. quotePreceptName: "",
  7091. endDate: _this.syendDate,
  7092. startDate: _this.systartDate,
  7093. instantFlag: "0",
  7094. });
  7095. _this.insureList.map((ele, index) => {
  7096. if (
  7097. ele.amount != "0" &&
  7098. (ele.kindCode == "D4" || ele.kindCode == "SY_FJ_YBW2")
  7099. ) {
  7100. _this.kindList.push({
  7101. unitAmount: _this.insureList[index].amount,
  7102. kindCode: _this.insureList[index].kindCode,
  7103. kindName: _this.insureList[index].kindName,
  7104. });
  7105. } else if (
  7106. ele.amount != "0" &&
  7107. (ele.kindCode == "MJ1" ||
  7108. ele.kindCode == "MJ2" ||
  7109. ele.kindCode == "MJ3" ||
  7110. ele.kindCode == "MJ4")
  7111. ) {
  7112. _this.kindList.push({
  7113. deductibleRate: _this.insureList[index].amount,
  7114. kindCode: _this.insureList[index].kindCode,
  7115. kindName: _this.insureList[index].kindName,
  7116. });
  7117. } else if (
  7118. ele.amount != "0" &&
  7119. (ele.kindCode == "TY1" ||
  7120. ele.kindCode == "TY2" ||
  7121. ele.kindCode == "TY3" ||
  7122. ele.kindCode == "TY4")
  7123. ) {
  7124. _this.kindList.push({
  7125. serviceTimes: _this.insureList[index].amount,
  7126. kindCode: _this.insureList[index].kindCode,
  7127. kindName: _this.insureList[index].kindName,
  7128. });
  7129. } else if (ele.amount != "0") {
  7130. _this.kindList.push({
  7131. amount: _this.insureList[index].amount,
  7132. kindCode: _this.insureList[index].kindCode,
  7133. kindName: _this.insureList[index].kindName,
  7134. });
  7135. }
  7136. return ele;
  7137. });
  7138. } else {
  7139. _this.kindList = [];
  7140. }
  7141. }
  7142. },
  7143. //动态函数
  7144. ToolClickFun(MethodName, Parameter, companyId, companyName) {
  7145. this[`${MethodName}`](Parameter, companyId, companyName);
  7146. },
  7147. //更新报价历史
  7148. QuotationHistory() {
  7149. let params = {
  7150. orderNo: this.orderno,
  7151. orderStatus: "",
  7152. };
  7153. this.$api.letter.queryQuoteHistory(params).then((res) => {
  7154. res.data.forEach((item) => {
  7155. if (item.accidentInfo) {
  7156. item.accidentInfo.constructor === Object
  7157. ? [item.accidentInfo]
  7158. : item.accidentInfo;
  7159. }
  7160. });
  7161. this.HistoryList = res.data;
  7162. });
  7163. },
  7164. open2(Name, Msg) {
  7165. this.$notify.info({
  7166. title: Name,
  7167. dangerouslyUseHTMLString: true,
  7168. type: "warning",
  7169. message: Msg,
  7170. customClass: "customNotifyClass",
  7171. duration: 7000,
  7172. });
  7173. },
  7174. open3(Name, Msg) {
  7175. this.$notify.info({
  7176. title: Name,
  7177. dangerouslyUseHTMLString: true,
  7178. type: "warning",
  7179. message: `<p>${Msg.replace(/\n/g, "<br>")}</p>`,
  7180. customClass: "customNotifyClass",
  7181. duration: 7000,
  7182. });
  7183. },
  7184. openPredictInfo(Name, Msg) {
  7185. this.redictInfoMsg = Msg;
  7186. this.redictInfodialogVisible = true;
  7187. },
  7188. //订单生成前数据处理事件
  7189. OrderStageProcessing() {
  7190. if (this.tbczcarShow && this.imageList2.length > 0) {
  7191. //投保人同车主
  7192. this.imageList3 = JSON.parse(JSON.stringify(this.imageList2));
  7193. if (this.imageList3.length == 1) {
  7194. if(this.imageList3[0].imageType.includes("C0")){
  7195. this.imageList3[0].imageType = this.imageList3[0].imageType.includes(
  7196. "C0"
  7197. )
  7198. ? "C03"
  7199. : "D03";
  7200. }
  7201. if(this.imageList3[0].imageType.includes("Y0")){
  7202. this.imageList3[0].imageType = this.imageList3[0].imageType.includes(
  7203. "Y0"
  7204. )
  7205. ? "Y03"
  7206. : "";
  7207. }
  7208. } else {
  7209. this.imageList3.forEach((e) => {
  7210. e.imageType = e.imageType.includes("C0") ? "C03" : "D03";
  7211. });
  7212. }
  7213. }
  7214. if (this.bbczcarShow && this.imageList2.length > 0) {
  7215. //被保人同车主
  7216. this.imageList4 = JSON.parse(JSON.stringify(this.imageList2));
  7217. if (this.imageList4.length == 1) {
  7218. if(this.imageList4[0].imageType.includes("C0")){
  7219. this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  7220. "C0"
  7221. )
  7222. ? "C04"
  7223. : "D04";
  7224. }
  7225. if(this.imageList4[0].imageType.includes("Y0")){
  7226. this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  7227. "Y0"
  7228. )
  7229. ? "Y04"
  7230. : "";
  7231. }
  7232. } else {
  7233. this.imageList4.forEach((e) => {
  7234. e.imageType = e.imageType.includes("C0") ? "C04" : "D04";
  7235. });
  7236. }
  7237. // if (this.imageList4.length == 1) {
  7238. // this.imageList4[0].imageType = "C04";
  7239. // }
  7240. // else {
  7241. // this.imageList4[0].imageType = "C04";
  7242. // this.imageList4[1].imageType = "D04";
  7243. // }
  7244. }
  7245. if (this.bbtbcarShow && this.imageList3.length > 0) {
  7246. //被保人同投保人
  7247. this.imageList4 = JSON.parse(JSON.stringify(this.imageList3));
  7248. if (this.imageList4.length == 1) {
  7249. if(this.imageList4[0].imageType.includes("C0")){
  7250. this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  7251. "C0"
  7252. )
  7253. ? "C04"
  7254. : "D04";
  7255. }
  7256. if(this.imageList4[0].imageType.includes("Y0")){
  7257. this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  7258. "Y0"
  7259. )
  7260. ? "Y04"
  7261. : "";
  7262. }
  7263. } else {
  7264. this.imageList4.forEach((e) => {
  7265. e.imageType = e.imageType.includes("C0") ? "C04" : "D04";
  7266. });
  7267. }
  7268. // if (this.imageList4.length == 1) {
  7269. // this.imageList4[0].imageType = "C04";
  7270. // } else {
  7271. // this.imageList4[0].imageType = "C04";
  7272. // this.imageList4[1].imageType = "D04";
  7273. // }
  7274. }
  7275. console.log(11111111111);
  7276. //日期长度<10处理
  7277. const formatDate = (date) => {
  7278. if (date.length < 10) {
  7279. return this.timeformat(date);
  7280. }
  7281. return date;
  7282. };
  7283. if (this.carInfo.registerDate.length < 10) {
  7284. this.carInfo.registerDate = formatDate(this.carInfo.registerDate);
  7285. }
  7286. if (this.carInfo.issueDate.length < 10) {
  7287. this.carInfo.issueDate = formatDate(this.carInfo.issueDate);
  7288. }
  7289. if (
  7290. this.carInfo.transferDate &&
  7291. this.carInfo.transferDate.length < 10 &&
  7292. this.carInfo.transferDate !== ""
  7293. ) {
  7294. this.carInfo.transferDate = formatDate(this.carInfo.transferDate);
  7295. }
  7296. console.log(2222222222);
  7297. //日期长度<10处理
  7298. //提交身份证/驾驶证 ——————————————————
  7299. this.policyHolderInfo.owner = this.tbczcarShow;
  7300. this.insuredPersonInfo.owner = this.bbczcarShow;
  7301. this.insuredPersonInfo.insuranceHolder = this.bbtbcarShow;
  7302. if (typeof this.ownerInfo.provinceData == "string") {
  7303. this.ownerInfo.provinceData = [];
  7304. }
  7305. if (typeof this.insuredPersonInfo.provinceData == "string") {
  7306. this.insuredPersonInfo.provinceData = [];
  7307. }
  7308. if (typeof this.policyHolderInfo.provinceData == "string") {
  7309. this.policyHolderInfo.provinceData = [];
  7310. }
  7311. let param = {
  7312. userId: this.userId,
  7313. quoteno: this.quoteno,
  7314. orderNo: this.orderno,
  7315. carInfo: this.carInfo,
  7316. insuredPersonInfo: this.insuredPersonInfo,
  7317. ownerInfo: this.ownerInfo,
  7318. policyHolderInfo: this.policyHolderInfo,
  7319. kindList: this.kindList,
  7320. riskList: this.riskList,
  7321. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  7322. };
  7323. this.$api.letter[this.apiInterfaceName](param).then((res) => {
  7324. if (res.code == "200") {
  7325. //上传图片
  7326. const mergedArray = [
  7327. ...this.imageList1,
  7328. ...this.imageList2,
  7329. ...this.imageList3,
  7330. ...this.imageList4,
  7331. ...this.imageList5,
  7332. ...this.imageList6,
  7333. ];
  7334. if (mergedArray.length > 0) {
  7335. let imageparam = {
  7336. imageList: mergedArray,
  7337. quoteNo: res.data.quoteno,
  7338. };
  7339. this.$api.letter.uploadImages(imageparam).then((responses) => {
  7340. this.imageEcho(res.data.quoteno); // 获取图片
  7341. // this.$refs.imageDialog.imageEcho(res.data.quoteno)
  7342. });
  7343. }
  7344. this.quoteno = res.data.quoteno;
  7345. this.orderno = res.data.orderno;
  7346. this.totalCompanyList.map((ele, index) => {
  7347. if (ele.checked) {
  7348. //动态调用报价接口
  7349. ele.quoteCode = 1;
  7350. ele.orderstatus = 0;
  7351. this.ToolClickFun(ele.cnName, index, ele.id, ele.namesimple);
  7352. }
  7353. });
  7354. } else if (res.code == 1001) {
  7355. this.$confirm("是否生成新订单?", "提示", {
  7356. confirmButtonText: "确定",
  7357. cancelButtonText: "取消",
  7358. type: "warning",
  7359. })
  7360. .then(() => {
  7361. this.orderno = "";
  7362. this.quoteno = "";
  7363. this.quote();
  7364. })
  7365. .catch(() => { });
  7366. } else {
  7367. this.$message({ message: res.msg, type: "warning" });
  7368. }
  7369. });
  7370. document.getElementById("company").scrollIntoView();
  7371. this.imageUploadShow = true;
  7372. },
  7373. // 泰康报价--11
  7374. taikang(num, id, namesimple) {
  7375. this.quoteInsurance(
  7376. num,
  7377. id,
  7378. namesimple,
  7379. this.totalCompanyList[num].apiType
  7380. );
  7381. },
  7382. // 平安报价
  7383. pingan(num, id) {
  7384. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  7385. let accidentalDrivingVo = []
  7386. if (this.pinganaccidentalDrivingVo) {
  7387. accidentalDrivingVo = this.pinganaccidentalDrivingVo
  7388. // accidentalDrivingVo = Object.assign({
  7389. // ...this.pinganaccidentalDrivingVo,
  7390. // ...this.accidentFormPA,
  7391. // });
  7392. }
  7393. let params = {
  7394. accidentalDrivingVo,
  7395. orderNo: this.orderno,
  7396. companyId: id,
  7397. kinds: this.kindList,
  7398. risks: this.riskList,
  7399. agreementId: this.totalCompanyList[num].agreementId,
  7400. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  7401. };
  7402. this.$api.letter.pinganquote(params).then((res) => {
  7403. this.totalCompanyList[num].msg = res.msg;
  7404. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  7405. this.totalCompanyList[num].quoteCode = "4";
  7406. this.totalCompanyList[num].msg = res.msg;
  7407. return;
  7408. } else if (
  7409. res.data == null &&
  7410. res.msg.indexOf("交强险平台返回") > -1 &&
  7411. res.msg.indexOf(";终保日期") > -1
  7412. ) {
  7413. this.totalCompanyList[num].lastYearMsg =
  7414. "<b>交强险</b><br>" +
  7415. res.msg.slice(
  7416. res.msg.indexOf("起保日期 "),
  7417. res.msg.indexOf("地区 山西。") + 6
  7418. );
  7419. let time =
  7420. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  7421. this.jqstartDate = time;
  7422. this.jqendDate = this.oneYearPast1(time);
  7423. if (this.riskList.length > 0) {
  7424. for (let i = 0; i < this.riskList.length; i++) {
  7425. if (this.riskList[i].riskCode == "0507") {
  7426. this.riskList[i].startDate = time;
  7427. this.riskList[i].endDate = this.oneYearPast1(time);
  7428. }
  7429. }
  7430. }
  7431. let param = {
  7432. userId: this.userId,
  7433. quoteno: this.quoteno,
  7434. orderNo: this.orderno,
  7435. carInfo: this.carInfo,
  7436. insuredPersonInfo: this.insuredPersonInfo,
  7437. ownerInfo: this.ownerInfo,
  7438. policyHolderInfo: this.policyHolderInfo,
  7439. kindList: this.kindList,
  7440. riskList: this.riskList,
  7441. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  7442. };
  7443. return this.$api.letter[this.apiInterfaceName](param).then((res) => {
  7444. this.pingan(num, id);
  7445. });
  7446. } else if (!!res.data) {
  7447. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  7448. this.totalCompanyList[num].lastYearMsg = "";
  7449. let dat = res.data.warnMessageList;
  7450. dat.map((ele) => {
  7451. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  7452. });
  7453. }
  7454. this.totalCompanyList[num].quoteCode = 200;
  7455. this.totalCompanyList[num].result = res.data;
  7456. this.QuotationHistory();
  7457. } else {
  7458. this.totalCompanyList[num].quoteCode = "3";
  7459. this.totalCompanyList[num].msg = res.msg;
  7460. return;
  7461. }
  7462. });
  7463. },
  7464. //永安报价
  7465. yongan(num, id) {
  7466. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  7467. let params = {
  7468. orderNo: this.orderno,
  7469. companyId: id,
  7470. kinds: this.kindList,
  7471. risks: this.riskList,
  7472. agreementId: this.totalCompanyList[num].agreementId,
  7473. };
  7474. this.$api.letter.yonganquote(params).then((res) => {
  7475. this.totalCompanyList[num].msg = res.msg;
  7476. if (res.msg == "重复投保" && res.code == "501") {
  7477. if (!!res.data.jqStartDate && !res.data.syStartDate) {
  7478. this.jqstartDate = res.data.jqStartDate;
  7479. this.jqendDate = res.data.jqEndDate;
  7480. this.updateRiskDates(
  7481. "0507",
  7482. res.data.jqStartDate,
  7483. res.data.jqEndDate
  7484. );
  7485. let param = {
  7486. userId: this.userId,
  7487. quoteno: this.quoteno,
  7488. orderNo: this.orderno,
  7489. carInfo: this.carInfo,
  7490. insuredPersonInfo: this.insuredPersonInfo,
  7491. ownerInfo: this.ownerInfo,
  7492. policyHolderInfo: this.policyHolderInfo,
  7493. kindList: this.kindList,
  7494. riskList: this.riskList,
  7495. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  7496. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  7497. };
  7498. return this.$api.letter[this.apiInterfaceName](param).then(
  7499. (res) => {
  7500. this.yongan(num, id);
  7501. }
  7502. );
  7503. } else if (!!res.data.syStartDate && !res.data.jqStartDate) {
  7504. this.systartDate = res.data.syStartDate;
  7505. this.syendDate = res.data.syEndDate;
  7506. this.updateRiskDates(
  7507. "0510",
  7508. res.data.syStartDate,
  7509. res.data.syEndDate
  7510. );
  7511. let param = {
  7512. userId: this.userId,
  7513. quoteno: this.quoteno,
  7514. orderNo: this.orderno,
  7515. carInfo: this.carInfo,
  7516. insuredPersonInfo: this.insuredPersonInfo,
  7517. ownerInfo: this.ownerInfo,
  7518. policyHolderInfo: this.policyHolderInfo,
  7519. kindList: this.kindList,
  7520. riskList: this.riskList,
  7521. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  7522. };
  7523. return this.$api.letter[this.apiInterfaceName](param).then(
  7524. (res) => {
  7525. this.yongan(num, id);
  7526. }
  7527. );
  7528. } else if (!!res.data.syStartDate && !!res.data.jqStartDate) {
  7529. this.jqstartDate = res.data.jqStartDate;
  7530. this.jqendDate = res.data.jqEndDate;
  7531. this.systartDate = res.data.syStartDate;
  7532. this.syendDate = res.data.syEndDate;
  7533. this.updateRiskDates(
  7534. "0507",
  7535. res.data.jqStartDate,
  7536. res.data.jqEndDate
  7537. );
  7538. this.updateRiskDates(
  7539. "0510",
  7540. res.data.syStartDate,
  7541. res.data.syEndDate
  7542. );
  7543. let param = {
  7544. userId: this.userId,
  7545. quoteno: this.quoteno,
  7546. orderNo: this.orderno,
  7547. carInfo: this.carInfo,
  7548. insuredPersonInfo: this.insuredPersonInfo,
  7549. ownerInfo: this.ownerInfo,
  7550. policyHolderInfo: this.policyHolderInfo,
  7551. kindList: this.kindList,
  7552. riskList: this.riskList,
  7553. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  7554. };
  7555. return this.$api.letter[this.apiInterfaceName](param).then(
  7556. (res) => {
  7557. this.yongan(num, id);
  7558. }
  7559. );
  7560. } else {
  7561. this.totalCompanyList[num].quoteCode = "3";
  7562. this.totalCompanyList[num].msg = "重复投保";
  7563. }
  7564. } else if (
  7565. res.code == "500" ||
  7566. res.code == "502" ||
  7567. res.code == "-9999"
  7568. ) {
  7569. this.totalCompanyList[num].quoteCode = "-9999";
  7570. this.totalCompanyList[num].msg = res.msg;
  7571. } else {
  7572. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  7573. this.totalCompanyList[num].lastYearMsg = "";
  7574. let dat = res.data.warnMessageList;
  7575. dat.map((ele) => {
  7576. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  7577. });
  7578. }
  7579. this.totalCompanyList[num].quoteCode = 200;
  7580. this.totalCompanyList[num].result = res.data;
  7581. this.QuotationHistory();
  7582. }
  7583. });
  7584. },
  7585. updateRiskDates(riskCode, startDate, endDate) {
  7586. for (let i = 0; i < this.riskList.length; i++) {
  7587. if (this.riskList[i].riskCode == riskCode) {
  7588. this.riskList[i].startDate = startDate;
  7589. this.riskList[i].endDate = endDate;
  7590. }
  7591. }
  7592. },
  7593. //中煤报价
  7594. zhongmei(num, id) {
  7595. let accidentalDrivingVo = {};
  7596. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  7597. // if (this.accidentFormZM.projectCode) {
  7598. // accidentalDrivingVo = {
  7599. // projectCode: this.accidentFormZM.projectCode,
  7600. // projectName: this.accidentFormZM.projectName,
  7601. // quantity: this.accidentFormZM.quantity
  7602. // ? this.accidentFormZM.quantity
  7603. // : "1"
  7604. // };
  7605. // }
  7606. if (this.accidentFormZM.projectCode) {
  7607. accidentalDrivingVo = {
  7608. ...this.zhongmeiInsuranceData.find(
  7609. (e) => e.projectCode == this.accidentFormZM.projectCode
  7610. ),
  7611. quantity: this.accidentFormZM.quantity
  7612. ? this.accidentFormZM.quantity
  7613. : "1",
  7614. };
  7615. }
  7616. let params = {
  7617. accidentalDrivingVo,
  7618. orderNo: this.orderno,
  7619. companyId: id,
  7620. kinds: this.kindList,
  7621. risks: this.riskList,
  7622. agreementId: this.totalCompanyList[num].agreementId,
  7623. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  7624. };
  7625. this.$api.letter.zhongmeiquote(params).then((res) => {
  7626. this.totalCompanyList[num].msg = res.msg;
  7627. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  7628. this.totalCompanyList[num].quoteCode = "4";
  7629. this.totalCompanyList[num].msg = res.msg;
  7630. return;
  7631. } else if (
  7632. res.data == null &&
  7633. res.msg.indexOf("交强险平台返回") > -1 &&
  7634. res.msg.indexOf(";终保日期") > -1
  7635. ) {
  7636. this.totalCompanyList[num].lastYearMsg =
  7637. "<b>交强险</b><br>" +
  7638. res.msg.slice(
  7639. res.msg.indexOf("起保日期 "),
  7640. res.msg.indexOf("地区 山西。") + 6
  7641. );
  7642. let time =
  7643. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  7644. this.jqstartDate = time;
  7645. this.jqendDate = this.oneYearPast1(time);
  7646. if (this.riskList.length > 0) {
  7647. for (let i = 0; i < this.riskList.length; i++) {
  7648. if (this.riskList[i].riskCode == "0507") {
  7649. this.riskList[i].startDate = time;
  7650. this.riskList[i].endDate = this.oneYearPast1(time);
  7651. }
  7652. }
  7653. }
  7654. let param = {
  7655. userId: this.userId,
  7656. quoteno: this.quoteno,
  7657. orderNo: this.orderno,
  7658. carInfo: this.carInfo,
  7659. insuredPersonInfo: this.insuredPersonInfo,
  7660. ownerInfo: this.ownerInfo,
  7661. policyHolderInfo: this.policyHolderInfo,
  7662. kindList: this.kindList,
  7663. riskList: this.riskList,
  7664. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  7665. };
  7666. return this.$api.letter[this.apiInterfaceName](param).then((res) => {
  7667. this.zhongmei(num, id);
  7668. });
  7669. } else if (!!res.data) {
  7670. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  7671. this.totalCompanyList[num].lastYearMsg = "";
  7672. let dat = res.data.warnMessageList;
  7673. dat.map((ele) => {
  7674. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  7675. });
  7676. }
  7677. this.totalCompanyList[num].quoteCode = 200;
  7678. this.totalCompanyList[num].result = res.data;
  7679. this.QuotationHistory();
  7680. } else {
  7681. this.totalCompanyList[num].quoteCode = "3";
  7682. this.totalCompanyList[num].msg = res.msg;
  7683. return;
  7684. }
  7685. });
  7686. },
  7687. // 大家报价
  7688. dajia(num, id) {
  7689. // let accidentalDrivingVo=[]
  7690. // if(this.dajiaaccidentalDrivingVo){
  7691. // accidentalDrivingVo.rideRiskCode=this.dajiaaccidentalDrivingVo.schemeNo;
  7692. // accidentalDrivingVo.rideRiskName=this.dajiaaccidentalDrivingVo.cvrgName;
  7693. // accidentalDrivingVo.quantity=this.dajiaaccidentalDrivingVo.quantity;
  7694. // }
  7695. let type = this.totalCompanyList[num].apiType;
  7696. let api = type == 2 ? "pythonquote" : "dajiaquote";
  7697. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  7698. let params = {
  7699. accidentalDrivingVo: this.dajiaaccidentalDrivingVo,
  7700. orderNo: this.orderno,
  7701. companyId: id,
  7702. kinds: this.kindList,
  7703. risks: this.riskList,
  7704. agreementId: this.totalCompanyList[num].agreementId,
  7705. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  7706. };
  7707. this.$api.letter[api](params).then((res) => {
  7708. this.totalCompanyList[num].msg = res.msg;
  7709. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  7710. this.totalCompanyList[num].quoteCode = "4";
  7711. this.totalCompanyList[num].msg = res.msg;
  7712. return;
  7713. } else if (
  7714. res.data == null &&
  7715. res.msg.indexOf("交强险平台返回") > -1 &&
  7716. res.msg.indexOf(";终保日期") > -1
  7717. ) {
  7718. this.totalCompanyList[num].lastYearMsg =
  7719. "<b>交强险</b><br>" +
  7720. res.msg.slice(
  7721. res.msg.indexOf("起保日期 "),
  7722. res.msg.indexOf("地区 山西。") + 6
  7723. );
  7724. let time =
  7725. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  7726. this.jqstartDate = time;
  7727. this.jqendDate = this.oneYearPast1(time);
  7728. if (this.riskList.length > 0) {
  7729. for (let i = 0; i < this.riskList.length; i++) {
  7730. if (this.riskList[i].riskCode == "0507") {
  7731. this.riskList[i].startDate = time;
  7732. this.riskList[i].endDate = this.oneYearPast1(time);
  7733. }
  7734. }
  7735. }
  7736. let param = {
  7737. userId: this.userId,
  7738. quoteno: this.quoteno,
  7739. orderNo: this.orderno,
  7740. carInfo: this.carInfo,
  7741. insuredPersonInfo: this.insuredPersonInfo,
  7742. ownerInfo: this.ownerInfo,
  7743. policyHolderInfo: this.policyHolderInfo,
  7744. kindList: this.kindList,
  7745. riskList: this.riskList,
  7746. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  7747. };
  7748. return this.$api.letter[this.apiInterfaceName](param).then((res) => {
  7749. this.dajia(num, id);
  7750. });
  7751. } else if (!!res.data) {
  7752. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  7753. this.totalCompanyList[num].lastYearMsg = "";
  7754. let dat = res.data.warnMessageList;
  7755. dat.map((ele) => {
  7756. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  7757. });
  7758. }
  7759. this.totalCompanyList[num].quoteCode = 200;
  7760. this.totalCompanyList[num].result = res.data;
  7761. this.QuotationHistory();
  7762. } else {
  7763. this.totalCompanyList[num].quoteCode = "3";
  7764. this.totalCompanyList[num].msg = res.msg;
  7765. return;
  7766. }
  7767. });
  7768. },
  7769. //华泰报价
  7770. huatai(num, id) {
  7771. let type = this.totalCompanyList[num].apiType;
  7772. let api = type == 2 ? "pythonquote" : "huataiquote";
  7773. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  7774. let params = {
  7775. orderNo: this.orderno,
  7776. companyId: id,
  7777. kinds: this.kindList,
  7778. risks: this.riskList,
  7779. agreementId: this.totalCompanyList[num].agreementId,
  7780. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  7781. };
  7782. this.$api.letter[api](params).then((res) => {
  7783. this.totalCompanyList[num].msg = res.msg;
  7784. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  7785. this.totalCompanyList[num].quoteCode = "4";
  7786. this.totalCompanyList[num].msg = res.msg;
  7787. return;
  7788. } else if (
  7789. res.data == null &&
  7790. res.msg.indexOf("交强险平台返回") > -1 &&
  7791. res.msg.indexOf(";终保日期") > -1
  7792. ) {
  7793. //判断保司返回重复投保信息,进行默认赋值起终保日期,重新算费 后面联调需要调整
  7794. let time =
  7795. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  7796. this.jqstartDate = time;
  7797. this.jqendDate = this.oneYearPast1(time);
  7798. this.systartDate = time;
  7799. this.syendDate = this.oneYearPast1(time);
  7800. if (this.riskList.length > 0) {
  7801. for (let i = 0; i < this.riskList.length; i++) {
  7802. if (this.riskList[i].riskCode == "0507") {
  7803. this.riskList[i].startDate = time;
  7804. this.riskList[i].endDate = this.oneYearPast1(time);
  7805. } else if (this.riskList[i].riskCode == "0510") {
  7806. this.riskList[i].startDate = time;
  7807. this.riskList[i].endDate = this.oneYearPast1(time);
  7808. }
  7809. }
  7810. }
  7811. let param = {
  7812. userId: this.userId,
  7813. quoteno: this.quoteno,
  7814. orderNo: this.orderno,
  7815. carInfo: this.carInfo,
  7816. insuredPersonInfo: this.insuredPersonInfo,
  7817. ownerInfo: this.ownerInfo,
  7818. policyHolderInfo: this.policyHolderInfo,
  7819. kindList: this.kindList,
  7820. riskList: this.riskList,
  7821. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  7822. };
  7823. return this.$api.letter[this.apiInterfaceName](param).then((res) => {
  7824. this.huatai(num, id);
  7825. });
  7826. } else if (!!res.data) {
  7827. this.totalCompanyList[num].quoteCode = 200;
  7828. this.totalCompanyList[num].result = res.data;
  7829. this.QuotationHistory();
  7830. } else {
  7831. this.totalCompanyList[num].quoteCode = "3";
  7832. this.totalCompanyList[num].msg = res.msg;
  7833. return;
  7834. }
  7835. });
  7836. },
  7837. //紫金报价
  7838. zijin(num, id) {
  7839. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  7840. let params = {
  7841. accidentalDrivingVo: this.accidentalDrivingVo,
  7842. orderNo: this.orderno,
  7843. companyId: id,
  7844. kinds: this.kindList,
  7845. risks: this.riskList,
  7846. agreementId: this.totalCompanyList[num].agreementId,
  7847. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  7848. coefficient: this.totalCompanyList[num].coefficient,
  7849. };
  7850. this.$api.letter.zijinquote(params).then((res) => {
  7851. this.totalCompanyList[num].msg = res.msg;
  7852. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  7853. this.totalCompanyList[num].quoteCode = "4";
  7854. this.totalCompanyList[num].msg = res.msg;
  7855. return;
  7856. } else if (
  7857. res.data == null &&
  7858. res.msg.indexOf("交强险平台返回") > -1 &&
  7859. res.msg.indexOf(";终保日期") > -1
  7860. ) {
  7861. let time =
  7862. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  7863. this.jqstartDate = time;
  7864. this.jqendDate = this.oneYearPast1(time);
  7865. this.systartDate = time;
  7866. this.syendDate = this.oneYearPast1(time);
  7867. if (this.riskList.length > 0) {
  7868. for (let i = 0; i < this.riskList.length; i++) {
  7869. if (this.riskList[i].riskCode == "0507") {
  7870. this.riskList[i].startDate = time;
  7871. this.riskList[i].endDate = this.oneYearPast1(time);
  7872. } else if (this.riskList[i].riskCode == "0510") {
  7873. this.riskList[i].startDate = time;
  7874. this.riskList[i].endDate = this.oneYearPast1(time);
  7875. }
  7876. }
  7877. }
  7878. let param = {
  7879. userId: this.userId,
  7880. quoteno: this.quoteno,
  7881. orderNo: this.orderno,
  7882. carInfo: this.carInfo,
  7883. insuredPersonInfo: this.insuredPersonInfo,
  7884. ownerInfo: this.ownerInfo,
  7885. policyHolderInfo: this.policyHolderInfo,
  7886. kindList: this.kindList,
  7887. riskList: this.riskList,
  7888. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  7889. };
  7890. return this.$api.letter[this.apiInterfaceName](param).then((res) => {
  7891. this.zijin(num, id);
  7892. });
  7893. } else if (!!res.data) {
  7894. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  7895. this.totalCompanyList[num].lastYearMsg = "";
  7896. let dat = res.data.warnMessageList;
  7897. dat.map((ele) => {
  7898. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  7899. });
  7900. }
  7901. this.totalCompanyList[num].quoteCode = 200;
  7902. this.totalCompanyList[num].result = res.data;
  7903. this.QuotationHistory();
  7904. } else {
  7905. this.totalCompanyList[num].quoteCode = "3";
  7906. this.totalCompanyList[num].msg = res.msg;
  7907. return;
  7908. }
  7909. });
  7910. },
  7911. //永诚报价
  7912. yongcheng(num, id) {
  7913. this.iscCrownerShow = false;
  7914. this.isInsuredShow = false;
  7915. this.isApplicantShow = false;
  7916. let accidentalDrivingVo = {};
  7917. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  7918. if (this.accidentForm.projectCode) {
  7919. let data = this.yongchengaccidentDataList.find(
  7920. (val) => val.projectCode == this.yongchengtemplateSelection
  7921. );
  7922. accidentalDrivingVo = {
  7923. ...data,
  7924. quantity: this.accidentForm.quantity
  7925. ? this.accidentForm.quantity
  7926. : "",
  7927. };
  7928. }
  7929. let params = {
  7930. accidentalDrivingVo,
  7931. orderNo: this.orderno,
  7932. companyId: id,
  7933. kinds: this.kindList,
  7934. risks: this.riskList,
  7935. cqryCdeJq: this.cqryCdeJq,
  7936. cqryCdeSy: this.cqryCdeSy,
  7937. renewalCodeJq: this.renewalCodeJq,
  7938. renewalCodeSy: this.renewalCodeSy,
  7939. agreementId: this.totalCompanyList[num].agreementId,
  7940. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  7941. };
  7942. this.$api.letter.yongchengquote(params).then((res) => {
  7943. this.totalCompanyList[num].msg = res.msg;
  7944. if (
  7945. res.data == null &&
  7946. res.msg.indexOf("车险平台返回") > -1 &&
  7947. res.msg.indexOf(";终保日期") > -1
  7948. ) {
  7949. let time =
  7950. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  7951. this.jqstartDate = time;
  7952. this.jqendDate = this.oneYearPast1(time);
  7953. if (this.riskList.length > 0) {
  7954. for (let i = 0; i < this.riskList.length; i++) {
  7955. if (this.riskList[i].riskCode == "0507") {
  7956. this.riskList[i].startDate = time;
  7957. this.riskList[i].endDate = this.oneYearPast1(time);
  7958. }
  7959. }
  7960. }
  7961. let param = {
  7962. userId: this.userId,
  7963. quoteno: this.quoteno,
  7964. orderNo: this.orderno,
  7965. carInfo: this.carInfo,
  7966. insuredPersonInfo: this.insuredPersonInfo,
  7967. ownerInfo: this.ownerInfo,
  7968. policyHolderInfo: this.policyHolderInfo,
  7969. kindList: this.kindList,
  7970. riskList: this.riskList,
  7971. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  7972. };
  7973. return this.$api.letter[this.apiInterfaceName](param).then((res) => {
  7974. this.yongcheng(num, id);
  7975. });
  7976. } else if (res.code == "200") {
  7977. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  7978. this.totalCompanyList[num].lastYearMsg = "";
  7979. let dat = res.data.warnMessageList;
  7980. dat.map((ele) => {
  7981. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  7982. });
  7983. }
  7984. this.totalCompanyList[num].quoteCode = 200;
  7985. this.totalCompanyList[num].result = res.data;
  7986. this.QuotationHistory();
  7987. } else if (res.code == "101") {
  7988. this.totalCompanyList[num].quoteCode = "101";
  7989. this.totalCompanyList[num].msg = res.msg;
  7990. this.cqryCdeJq = res.data.cqryCdeJq;
  7991. this.cqryCdeSy = res.data.cqryCdeSy;
  7992. let jq = res.data.renewalCodeJq.replace(/[\r\n]/g, "");
  7993. let jqBase64 = `data:image/png;base64,${jq}`;
  7994. this.renewalCodeJqImg = jqBase64;
  7995. if (res.data.renewalCodeSy) {
  7996. let sy = res.data.renewalCodeSy.replace(/[\r\n]/g, "");
  7997. let syBase64 = `data:image/png;base64,${sy}`;
  7998. this.renewalCodeSyImg = syBase64;
  7999. }
  8000. this.renewalCodedialogVisible = true;
  8001. } else if (res.code == "500") {
  8002. // this.iscCrownerShow=res.msg.indexOf("车主地区自动解析失败")!=-1?true:false
  8003. // this.isInsuredShow=res.msg.indexOf("被保人地区自动解析失败")!=-1?true:false
  8004. // this.isApplicantShow=res.msg.indexOf("投保人地区自动解析失败")!=-1?true:false
  8005. // this.ownerInfo.provinceData= this.iscCrownerShow?[]: this.ownerInfo.provinceData
  8006. // this.insuredPersonInfo.provinceData= this.isInsuredShow?[]: this.insuredPersonInfo.provinceData
  8007. // this.policyHolderInfo.provinceData= this.isApplicantShow?[]: this.policyHolderInfo.provinceData
  8008. this.totalCompanyList[num].quoteCode = "3";
  8009. this.totalCompanyList[num].msg = res.msg;
  8010. } else {
  8011. this.totalCompanyList[num].quoteCode = "3";
  8012. this.totalCompanyList[num].msg = res.msg;
  8013. return;
  8014. }
  8015. });
  8016. },
  8017. //国任报价
  8018. guoRen(num, id) {
  8019. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  8020. let guoRenSpecialAgreementVo = [];
  8021. this.zijinengageList.forEach((val) => {
  8022. guoRenSpecialAgreementVo.push({
  8023. clauses: val.clauseName,
  8024. clausesContext: val.clauses,
  8025. clauseCode: val.clauseCode,
  8026. riskCode: val.riskCode,
  8027. riskName: val.riskName,
  8028. });
  8029. });
  8030. let accidentalDrivingVo = {};
  8031. if (this.guoRenaccidentForm.goodsCode) {
  8032. accidentalDrivingVo = this.guoRenaccidentalDrivingVo;
  8033. }
  8034. let params = {
  8035. accidentalDrivingVo,
  8036. orderNo: this.orderno,
  8037. companyId: id,
  8038. kinds: this.kindList,
  8039. risks: this.riskList,
  8040. cqryCdeJq: this.cqryCdeJq,
  8041. cqryCdeSy: this.cqryCdeSy,
  8042. renewalCodeJq: this.renewalCodeJq,
  8043. renewalCodeSy: this.renewalCodeSy,
  8044. agreementId: this.totalCompanyList[num].agreementId,
  8045. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  8046. guoRenSpecialAgreementVo,
  8047. };
  8048. this.$api.letter.guorenquote(params).then((res) => {
  8049. this.totalCompanyList[num].msg = res.msg;
  8050. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  8051. this.totalCompanyList[num].quoteCode = "4";
  8052. this.totalCompanyList[num].msg = res.msg;
  8053. return;
  8054. } else if (
  8055. res.data == null &&
  8056. res.msg.indexOf("车险平台返回") > -1 &&
  8057. res.msg.indexOf(";终保日期") > -1
  8058. ) {
  8059. let time =
  8060. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  8061. this.jqstartDate = time;
  8062. this.jqendDate = this.oneYearPast1(time);
  8063. this.systartDate = time;
  8064. this.syendDate = this.oneYearPast1(time);
  8065. if (this.riskList.length > 0) {
  8066. for (let i = 0; i < this.riskList.length; i++) {
  8067. if (this.riskList[i].riskCode == "0507") {
  8068. this.riskList[i].startDate = time;
  8069. this.riskList[i].endDate = this.oneYearPast1(time);
  8070. } else if (this.riskList[i].riskCode == "0510") {
  8071. this.riskList[i].startDate = time;
  8072. this.riskList[i].endDate = this.oneYearPast1(time);
  8073. }
  8074. }
  8075. }
  8076. let param = {
  8077. userId: this.userId,
  8078. quoteno: this.quoteno,
  8079. orderNo: this.orderno,
  8080. carInfo: this.carInfo,
  8081. insuredPersonInfo: this.insuredPersonInfo,
  8082. ownerInfo: this.ownerInfo,
  8083. policyHolderInfo: this.policyHolderInfo,
  8084. kindList: this.kindList,
  8085. riskList: this.riskList,
  8086. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  8087. };
  8088. return this.$api.letter[this.apiInterfaceName](param).then((res) => {
  8089. this.guoRen(num, id);
  8090. });
  8091. } else if (res.code == "200") {
  8092. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  8093. this.totalCompanyList[num].lastYearMsg = "";
  8094. let dat = res.data.warnMessageList;
  8095. dat.map((ele) => {
  8096. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  8097. });
  8098. }
  8099. this.totalCompanyList[num].quoteCode = 200;
  8100. this.totalCompanyList[num].result = res.data;
  8101. this.QuotationHistory();
  8102. } else if (res.code == "101") {
  8103. this.totalCompanyList[num].quoteCode = "101";
  8104. this.totalCompanyList[num].msg = res.msg;
  8105. this.cqryCdeJq = res.data.cqryCdeJq;
  8106. this.cqryCdeSy = res.data.cqryCdeSy;
  8107. let jq = res.data.renewalCodeJq.replace(/[\r\n]/g, "");
  8108. let jqBase64 = `data:image/png;base64,${jq}`;
  8109. this.renewalCodeJqImg = jqBase64;
  8110. if (res.data.renewalCodeSy) {
  8111. let sy = res.data.renewalCodeSy.replace(/[\r\n]/g, "");
  8112. let syBase64 = `data:image/png;base64,${sy}`;
  8113. this.renewalCodeSyImg = syBase64;
  8114. }
  8115. this.renewalCodedialogVisible = true;
  8116. } else {
  8117. this.totalCompanyList[num].quoteCode = "3";
  8118. this.totalCompanyList[num].msg = res.msg;
  8119. return;
  8120. }
  8121. });
  8122. },
  8123. //渤海报价
  8124. bohai(num, id) {
  8125. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  8126. let accidentalDrivingVo = {};
  8127. if (this.boHaiaccidentForm.projectCode) {
  8128. accidentalDrivingVo = {
  8129. // packageCode: this.boHaiaccidentForm.packageCode,
  8130. // productCode: this.boHaiaccidentDataList.find(
  8131. // (e) => e.packageCode == this.boHaiaccidentForm.packageCode
  8132. // ).productCode,
  8133. // copies: this.boHaiaccidentForm.copies,
  8134. ...this.boHaiaccidentDataList.find(
  8135. (e) => e.projectCode == this.boHaiaccidentForm.projectCode
  8136. ),
  8137. quantity: this.boHaiaccidentForm.copies
  8138. ? this.boHaiaccidentForm.copies
  8139. : "1",
  8140. }
  8141. }
  8142. let params = {
  8143. accidentalDrivingVo,
  8144. orderNo: this.orderno,
  8145. companyId: id,
  8146. kinds: this.kindList,
  8147. risks: this.riskList,
  8148. cqryCdeJq: this.cqryCdeJq,
  8149. cqryCdeSy: this.cqryCdeSy,
  8150. renewalCodeJq: this.renewalCodeJq,
  8151. renewalCodeSy: this.renewalCodeSy,
  8152. agreementId: this.totalCompanyList[num].agreementId,
  8153. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  8154. userId: this.userId,
  8155. };
  8156. this.$api.letter.bohaiquote(params).then((res) => {
  8157. this.totalCompanyList[num].msg = res.msg;
  8158. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  8159. this.totalCompanyList[num].quoteCode = "4";
  8160. this.totalCompanyList[num].msg = res.msg;
  8161. return;
  8162. } else if (
  8163. res.data == null &&
  8164. res.msg.indexOf("车险平台返回") > -1 &&
  8165. res.msg.indexOf(";终保日期") > -1
  8166. ) {
  8167. let time =
  8168. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  8169. this.jqstartDate = time;
  8170. this.jqendDate = this.oneYearPast1(time);
  8171. this.systartDate = time;
  8172. this.syendDate = this.oneYearPast1(time);
  8173. if (this.riskList.length > 0) {
  8174. for (let i = 0; i < this.riskList.length; i++) {
  8175. if (this.riskList[i].riskCode == "0507") {
  8176. this.riskList[i].startDate = time;
  8177. this.riskList[i].endDate = this.oneYearPast1(time);
  8178. } else if (this.riskList[i].riskCode == "0510") {
  8179. this.riskList[i].startDate = time;
  8180. this.riskList[i].endDate = this.oneYearPast1(time);
  8181. }
  8182. }
  8183. }
  8184. let param = {
  8185. userId: this.userId,
  8186. quoteno: this.quoteno,
  8187. orderNo: this.orderno,
  8188. carInfo: this.carInfo,
  8189. insuredPersonInfo: this.insuredPersonInfo,
  8190. ownerInfo: this.ownerInfo,
  8191. policyHolderInfo: this.policyHolderInfo,
  8192. kindList: this.kindList,
  8193. riskList: this.riskList,
  8194. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  8195. };
  8196. return this.$api.letter[this.apiInterfaceName](param).then((res) => {
  8197. this.bohai(num, id);
  8198. });
  8199. } else if (res.code == "200") {
  8200. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  8201. this.totalCompanyList[num].lastYearMsg = "";
  8202. let dat = res.data.warnMessageList;
  8203. dat.map((ele) => {
  8204. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  8205. });
  8206. }
  8207. this.totalCompanyList[num].quoteCode = 200;
  8208. this.totalCompanyList[num].result = res.data;
  8209. this.QuotationHistory();
  8210. } else if (res.code == "101") {
  8211. this.totalCompanyList[num].quoteCode = "101";
  8212. this.totalCompanyList[num].msg = res.msg;
  8213. this.cqryCdeJq = res.data.cqryCdeJq;
  8214. this.cqryCdeSy = res.data.cqryCdeSy;
  8215. let jq = res.data.renewalCodeJq.replace(/[\r\n]/g, "");
  8216. let jqBase64 = `data:image/png;base64,${jq}`;
  8217. this.renewalCodeJqImg = jqBase64;
  8218. if (res.data.renewalCodeSy) {
  8219. let sy = res.data.renewalCodeSy.replace(/[\r\n]/g, "");
  8220. let syBase64 = `data:image/png;base64,${sy}`;
  8221. this.renewalCodeSyImg = syBase64;
  8222. }
  8223. this.renewalCodedialogVisible = true;
  8224. } else {
  8225. this.totalCompanyList[num].quoteCode = "3";
  8226. this.totalCompanyList[num].msg = res.msg;
  8227. return;
  8228. }
  8229. });
  8230. },
  8231. // 爬虫对接
  8232. quoteInsurance(num, id, namesimple, apiType) {
  8233. console.log(namesimple)
  8234. let api = apiType == 2 ? "pythonquote" : " ";
  8235. let ccidenttype = this.totalCompanyList[num].cnName;
  8236. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  8237. let params = {
  8238. accidentalDrivingVo: this[ccidenttype + "accidentalDrivingVo"],
  8239. orderNo: this.orderno,
  8240. companyId: id,
  8241. kinds: this.kindList,
  8242. risks: this.riskList,
  8243. userId: this.userId,
  8244. agreementId: this.totalCompanyList[num].agreementId,
  8245. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  8246. };
  8247. if (namesimple == "中国人寿" && this.lastCompanyId) {
  8248. params.discount = this.totalCompanyList[num].discount;
  8249. params.lastCompanyId = this.lastCompanyId;
  8250. }
  8251. if (namesimple == "诚泰财险") {
  8252. if (this.lastCompanyId && this.totalCompanyList[num].coefficient && this.totalCompanyList[num].discount) {
  8253. params.coefficient = this.totalCompanyList[num].coefficient;
  8254. params.discount = this.totalCompanyList[num].discount;
  8255. params.lastCompanyId = this.lastCompanyId;
  8256. }
  8257. params.isInspect = this.totalCompanyList[num].isInspect;
  8258. }
  8259. if (
  8260. namesimple == "华农财险" &&
  8261. this.huanongaccidentalDrivingVo.quantity
  8262. ) {
  8263. params.accidentalDrivingVo.quantity = this.accidentFormHN.quantity;
  8264. // params.accidentalDrivingVo.allQuantity = this.accidentFormHN.allQuantity;
  8265. }
  8266. this.$api.letter[api](params).then((res) => {
  8267. this.totalCompanyList[num].msg = res.msg;
  8268. switch (namesimple) {
  8269. case "诚泰财险":
  8270. case "安盛天平":
  8271. case "泰康财险":
  8272. case "中国人寿":
  8273. case "恒邦财险":
  8274. case "华农财险":
  8275. case "太平财险":
  8276. if (!!res.data) {
  8277. if (
  8278. res.data.warnMessageList &&
  8279. res.data.warnMessageList.length > 0
  8280. ) {
  8281. this.totalCompanyList[num].lastYearMsg = "";
  8282. let dat = res.data.warnMessageList;
  8283. dat.map((ele) => {
  8284. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  8285. });
  8286. }
  8287. if (res.data.predictInfo && res.data.predictInfo.length > 0) {
  8288. this.totalCompanyList[num].predictInfo = res.data.predictInfo;
  8289. }
  8290. this.totalCompanyList[num].quoteCode = 200;
  8291. this.totalCompanyList[num].result = res.data;
  8292. if (namesimple == "中国人寿" && res.data.companyId) {
  8293. this.lastCompanyId = res.data.companyId;
  8294. }
  8295. if (namesimple == "诚泰财险" && res.data.companyId) {
  8296. this.lastCompanyId = res.data.companyId;
  8297. }
  8298. this.QuotationHistory();
  8299. } else {
  8300. this.totalCompanyList[num].quoteCode = "3";
  8301. this.totalCompanyList[num].msg = res.msg;
  8302. return;
  8303. }
  8304. break;
  8305. case "众安平安":
  8306. if (!!res.data) {
  8307. if (res.data.tips == "需要验车") {
  8308. this.$notify.error({
  8309. title: "通融单",
  8310. duration: 0,
  8311. dangerouslyUseHTMLString: true,
  8312. message: `<div> ${res.data.warnMessageList
  8313. .map((item) => {
  8314. return `<p>${item}</p>`;
  8315. })
  8316. .join("")}
  8317. </div>`,
  8318. });
  8319. }
  8320. if (
  8321. res.data.warnMessageList &&
  8322. res.data.warnMessageList.length > 0
  8323. ) {
  8324. this.totalCompanyList[num].lastYearMsg = "";
  8325. let dat = res.data.warnMessageList;
  8326. dat.map((ele) => {
  8327. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  8328. });
  8329. }
  8330. this.totalCompanyList[num].quoteCode = 200;
  8331. this.totalCompanyList[num].result = res.data;
  8332. this.QuotationHistory();
  8333. } else {
  8334. this.totalCompanyList[num].quoteCode = "3";
  8335. this.totalCompanyList[num].msg = res.msg;
  8336. return;
  8337. }
  8338. break;
  8339. default:
  8340. break;
  8341. }
  8342. });
  8343. },
  8344. //诚泰
  8345. chengtai(num, id, namesimple) {
  8346. this.quoteInsurance(
  8347. num,
  8348. id,
  8349. namesimple,
  8350. this.totalCompanyList[num].apiType
  8351. );
  8352. },
  8353. //安盛天平
  8354. ansheng(num, id, namesimple) {
  8355. this.quoteInsurance(
  8356. num,
  8357. id,
  8358. namesimple,
  8359. this.totalCompanyList[num].apiType
  8360. );
  8361. },
  8362. //众安
  8363. zhongan(num, id, namesimple) {
  8364. this.quoteInsurance(
  8365. num,
  8366. id,
  8367. namesimple,
  8368. this.totalCompanyList[num].apiType
  8369. );
  8370. },
  8371. //人寿
  8372. renshou(num, id, namesimple) {
  8373. this.quoteInsurance(
  8374. num,
  8375. id,
  8376. namesimple,
  8377. this.totalCompanyList[num].apiType
  8378. );
  8379. },
  8380. //恒邦
  8381. hengbang(num, id, namesimple) {
  8382. this.quoteInsurance(
  8383. num,
  8384. id,
  8385. namesimple,
  8386. this.totalCompanyList[num].apiType
  8387. );
  8388. },
  8389. //太平
  8390. taiping(num, id, namesimple) {
  8391. this.quoteInsurance(
  8392. num,
  8393. id,
  8394. namesimple,
  8395. this.totalCompanyList[num].apiType
  8396. );
  8397. },
  8398. //华农
  8399. huanong(num, id, namesimple) {
  8400. this.quoteInsurance(
  8401. num,
  8402. id,
  8403. namesimple,
  8404. this.totalCompanyList[num].apiType
  8405. );
  8406. },
  8407. capTypedictTag(val, option) {
  8408. if (option.find((item) => item.dictValue == val)) {
  8409. return option.find((item) => item.dictValue == val).dictTag;
  8410. } else {
  8411. return "-";
  8412. }
  8413. },
  8414. // 爬虫对接
  8415. qoutedetail(companyId) {
  8416. let params = {
  8417. companyId: companyId,
  8418. };
  8419. this.$api.letter.getByCompanyId(params).then((res) => {
  8420. if (res.code == "200") {
  8421. var data = res.data;
  8422. data.kindinfo.map((ele, index) => {
  8423. switch (ele.kindCode) {
  8424. case "A":
  8425. ele.amount = "投保";
  8426. break;
  8427. case "D4":
  8428. case "SY_FJ_YBW2":
  8429. ele.unitAmount = this.toChinesNum(ele.unitAmount);
  8430. break;
  8431. case "MJ1":
  8432. case "MJ2":
  8433. case "MJ3":
  8434. case "MJ4":
  8435. ele.deductibleRate = ele.deductibleRate + "%";
  8436. break;
  8437. default:
  8438. ele.amount = this.toChinesNum(ele.amount);
  8439. }
  8440. return ele;
  8441. });
  8442. if (
  8443. (data.carinfo.carnature && data.carinfo.carnature == "02") ||
  8444. data.carinfo.carnature == "非营业"
  8445. ) {
  8446. data.carinfo.vehicleUse = this.capTypedictTag(
  8447. data.carinfo.vehicleUse,
  8448. this.outOfBusinessVehicleUseoptions
  8449. );
  8450. } else {
  8451. data.carinfo.vehicleUse = this.capTypedictTag(
  8452. data.carinfo.vehicleUse,
  8453. this.businessVehicleUseoptions
  8454. );
  8455. }
  8456. data.carinfo.carnature = this.capTypedictTag(
  8457. data.carinfo.carnature,
  8458. this.natureOfVehicleUseoptions
  8459. );
  8460. data.carinfo.cartype = data.carinfo.cartype
  8461. ? this.capTypedictTag(
  8462. data.carinfo.cartype,
  8463. this.trafficManagementVehicleTypeoptions
  8464. )
  8465. : "";
  8466. data.carinfo.cimodelclass = data.carinfo.cimodelclass
  8467. ? this.capTypedictTag(
  8468. data.carinfo.cimodelclass,
  8469. this.vehicleTypeoptions
  8470. )
  8471. : "";
  8472. data.carinfo.energyType = data.carinfo.energyType
  8473. ? this.capTypedictTag(
  8474. data.carinfo.energyType,
  8475. this.energyTypeoptions
  8476. )
  8477. : "";
  8478. this.queryOrders = data;
  8479. //赋值费用信息
  8480. // this.feeDetailInfo=data.orderFeeResult;
  8481. }
  8482. });
  8483. this.$refs.detailsDialog.setBackupVisible(true);
  8484. },
  8485. imageUpload() {
  8486. this.imageUploaddialogVisible = true;
  8487. // this.$refs.imageDialog.setBackupVisible(true);
  8488. },
  8489. tabLiScroll(id, idx) {
  8490. this.tabLiIndex = idx;
  8491. document.getElementById(id).scrollIntoView({ behavior: "smooth" });
  8492. },
  8493. //影像上传
  8494. drivingupload(file, imageIdList, imgurl, type) {
  8495. let that = this;
  8496. let size = file.size / 1024 / 1024 < 5;
  8497. const isJPG =
  8498. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  8499. if (!size) {
  8500. this.$message.error("上传图片大小不能超过 5MB!");
  8501. this[imgurl] = [];
  8502. return false;
  8503. }
  8504. if (!isJPG) {
  8505. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  8506. this[imgurl] = [];
  8507. return false;
  8508. }
  8509. this[imgurl].push(file);
  8510. var file = file.raw;
  8511. const params = new FormData(); // 声明formData数据类型
  8512. params.append("multipartFile", file);
  8513. params.append("type", "image");
  8514. this.$api.letter.uploadFile(params).then((res) => {
  8515. if (res.code == "200") {
  8516. if (this[imageIdList].some((v) => v.imageType == type)) {
  8517. this[imageIdList].map((val) => {
  8518. if (val.imageType == type) {
  8519. val.imageId = res.data.id;
  8520. }
  8521. });
  8522. } else {
  8523. this[imageIdList].push({
  8524. imageId: res.data.id,
  8525. imageType: type,
  8526. });
  8527. }
  8528. }
  8529. });
  8530. },
  8531. imageEcho(quotenos) {
  8532. //影像查询
  8533. this.$api.letter.findByQuoteNo(quotenos).then((res) => {
  8534. if (res.code == "200") {
  8535. this.imageList1 = [];
  8536. this.imageList2 = [];
  8537. this.imageList3 = [];
  8538. this.imageList4 = [];
  8539. this.imageList5 = [];
  8540. this.imageList6 = [];
  8541. this.imgList1 = [];
  8542. this.imgList2 = [];
  8543. this.imgList3 = [];
  8544. this.imgList4 = [];
  8545. this.imgList5 = [];
  8546. this.imgList6 = [];
  8547. this.imgList7 = [];
  8548. this.imgList8 = [];
  8549. this.imgList9 = [];
  8550. this.imgList10 = [];
  8551. this.imgList11 = [];
  8552. this.imgList12 = [];
  8553. this.imgList13 = [];
  8554. this.imgList14 = [];
  8555. this.imgList15 = [];
  8556. this.imgList16 = [];
  8557. this.imgList17 = [];
  8558. this.imgList18 = [];
  8559. this.imgList19 = [];
  8560. this.imgList20 = [];
  8561. this.imgList21 = [];
  8562. this.imgList22 = [];
  8563. this.imgList23 = [];
  8564. this.imgList24 = [];
  8565. this.imgList25 = [];
  8566. this.imgList26 = [];
  8567. this.imgList27 = [];
  8568. this.imgList28 = [];
  8569. Object.keys(res.data).forEach((keys) => {
  8570. if (res.data[keys].url) {
  8571. res.data[keys].url = process.env.BASE_URL + res.data[keys].url;
  8572. switch (keys) {
  8573. case "C01":
  8574. this.imageList1.push({
  8575. imageId: res.data[keys].imageId,
  8576. imageType: res.data[keys].imageType,
  8577. });
  8578. this.imgList1.push(res.data[keys]);
  8579. break;
  8580. case "D01":
  8581. this.imageList1.push({
  8582. imageId: res.data[keys].imageId,
  8583. imageType: res.data[keys].imageType,
  8584. });
  8585. this.imgList2.push(res.data[keys]);
  8586. break;
  8587. case "C02":
  8588. this.imageList2.push({
  8589. imageId: res.data[keys].imageId,
  8590. imageType: res.data[keys].imageType,
  8591. });
  8592. this.imgList3.push(res.data[keys]);
  8593. break;
  8594. case "D02":
  8595. this.imageList2.push({
  8596. imageId: res.data[keys].imageId,
  8597. imageType: res.data[keys].imageType,
  8598. });
  8599. this.imgList4.push(res.data[keys]);
  8600. break;
  8601. case "Y02":
  8602. this.imageList2.push({
  8603. imageId: res.data[keys].imageId,
  8604. imageType: res.data[keys].imageType,
  8605. });
  8606. this.imgList26.push(res.data[keys]);
  8607. break;
  8608. case "C03":
  8609. this.imageList3.push({
  8610. imageId: res.data[keys].imageId,
  8611. imageType: res.data[keys].imageType,
  8612. });
  8613. this.imgList5.push(res.data[keys]);
  8614. break;
  8615. case "D03":
  8616. this.imageList3.push({
  8617. imageId: res.data[keys].imageId,
  8618. imageType: res.data[keys].imageType,
  8619. });
  8620. this.imgList6.push(res.data[keys]);
  8621. break;
  8622. case "Y03":
  8623. this.imageList3.push({
  8624. imageId: res.data[keys].imageId,
  8625. imageType: res.data[keys].imageType,
  8626. });
  8627. this.imgList27.push(res.data[keys]);
  8628. break;
  8629. case "C04":
  8630. this.imageList4.push({
  8631. imageId: res.data[keys].imageId,
  8632. imageType: res.data[keys].imageType,
  8633. });
  8634. this.imgList7.push(res.data[keys]);
  8635. break;
  8636. case "D04":
  8637. this.imageList4.push({
  8638. imageId: res.data[keys].imageId,
  8639. imageType: res.data[keys].imageType,
  8640. });
  8641. this.imgList8.push(res.data[keys]);
  8642. break;
  8643. case "Y04":
  8644. this.imageList4.push({
  8645. imageId: res.data[keys].imageId,
  8646. imageType: res.data[keys].imageType,
  8647. });
  8648. this.imgList28.push(res.data[keys]);
  8649. break;
  8650. case "XC00":
  8651. this.imageList5.push({
  8652. imageId: res.data[keys].imageId,
  8653. imageType: res.data[keys].imageType,
  8654. });
  8655. this.imgList9.push(res.data[keys]);
  8656. break;
  8657. case "GC00":
  8658. this.imageList5.push({
  8659. imageId: res.data[keys].imageId,
  8660. imageType: res.data[keys].imageType,
  8661. });
  8662. this.imgList10.push(res.data[keys]);
  8663. break;
  8664. case "GX00":
  8665. this.imageList5.push({
  8666. imageId: res.data[keys].imageId,
  8667. imageType: res.data[keys].imageType,
  8668. });
  8669. this.imgList11.push(res.data[keys]);
  8670. break;
  8671. case "TAR05":
  8672. this.imageList1.push({
  8673. imageId: res.data[keys].imageId,
  8674. imageType: res.data[keys].imageType,
  8675. });
  8676. this.imgList12.push(res.data[keys]);
  8677. break;
  8678. case "C0500":
  8679. this.imageList6.push({
  8680. imageId: res.data[keys].imageId,
  8681. imageType: res.data[keys].imageType,
  8682. });
  8683. this.imgList13.push(res.data[keys]);
  8684. break;
  8685. case "C0501":
  8686. this.imageList6.push({
  8687. imageId: res.data[keys].imageId,
  8688. imageType: res.data[keys].imageType,
  8689. });
  8690. this.imgList14.push(res.data[keys]);
  8691. break;
  8692. case "C0502":
  8693. this.imageList6.push({
  8694. imageId: res.data[keys].imageId,
  8695. imageType: res.data[keys].imageType,
  8696. });
  8697. this.imgList15.push(res.data[keys]);
  8698. break;
  8699. case "C0503":
  8700. this.imageList6.push({
  8701. imageId: res.data[keys].imageId,
  8702. imageType: res.data[keys].imageType,
  8703. });
  8704. this.imgList16.push(res.data[keys]);
  8705. break;
  8706. case "C0504":
  8707. this.imageList6.push({
  8708. imageId: res.data[keys].imageId,
  8709. imageType: res.data[keys].imageType,
  8710. });
  8711. this.imgList17.push(res.data[keys]);
  8712. break;
  8713. case "C0506":
  8714. this.imageList6.push({
  8715. imageId: res.data[keys].imageId,
  8716. imageType: res.data[keys].imageType,
  8717. });
  8718. this.imgList18.push(res.data[keys]);
  8719. break;
  8720. case "C0507":
  8721. this.imageList6.push({
  8722. imageId: res.data[keys].imageId,
  8723. imageType: res.data[keys].imageType,
  8724. });
  8725. this.imgList19.push(res.data[keys]);
  8726. break;
  8727. case "C0505":
  8728. this.imageList6.push({
  8729. imageId: res.data[keys].imageId,
  8730. imageType: res.data[keys].imageType,
  8731. });
  8732. this.imgList20.push(res.data[keys]);
  8733. break;
  8734. case "C0508":
  8735. this.imageList6.push({
  8736. imageId: res.data[keys].imageId,
  8737. imageType: res.data[keys].imageType,
  8738. });
  8739. this.imgList21.push(res.data[keys]);
  8740. break;
  8741. case "C0509":
  8742. this.imageList6.push({
  8743. imageId: res.data[keys].imageId,
  8744. imageType: res.data[keys].imageType,
  8745. });
  8746. this.imgList22.push(res.data[keys]);
  8747. break;
  8748. case "C0510":
  8749. this.imageList6.push({
  8750. imageId: res.data[keys].imageId,
  8751. imageType: res.data[keys].imageType,
  8752. });
  8753. this.imgList23.push(res.data[keys]);
  8754. break;
  8755. case "LAST_INSURANCE_POLICY":
  8756. this.imageList6.push({
  8757. imageId: res.data[keys].imageId,
  8758. imageType: res.data[keys].imageType,
  8759. });
  8760. this.imgList24.push(res.data[keys]);
  8761. break;
  8762. default:
  8763. break;
  8764. }
  8765. }
  8766. });
  8767. } else {
  8768. this.$message({ message: res.msg, type: "info" });
  8769. }
  8770. });
  8771. },
  8772. policyUpload() {
  8773. this.policyNumberForm.jqPolicyList = !this.policyNumberForm.jqPolicyList
  8774. ? []
  8775. : this.policyNumberForm.jqPolicyList;
  8776. this.policyNumberForm.jqSignList = !this.policyNumberForm.jqSignList
  8777. ? []
  8778. : this.policyNumberForm.jqSignList;
  8779. this.policyNumberForm.syPolicyList = !this.policyNumberForm.syPolicyList
  8780. ? []
  8781. : this.policyNumberForm.syPolicyList;
  8782. this.policyNumberForm.noPolicyList = !this.policyNumberForm.noPolicyList
  8783. ? []
  8784. : this.policyNumberForm.noPolicyList;
  8785. this.policyUploaddialogVisible = true;
  8786. },
  8787. cancelorder(item) {
  8788. this.$api.letter.zijincancelorder({ companyId: item.id }).then((res) => {
  8789. if (res.code == 200) {
  8790. this.$message({
  8791. message: res.msg,
  8792. type: "success",
  8793. });
  8794. this.QuotationHistory();
  8795. }
  8796. });
  8797. },
  8798. hbsubmitdialog(data) {
  8799. if (this.imageList1.length == 0 && this.imageList2.length == 0) {
  8800. this.$message({ message: "影像不全,先上传影像", type: "error" });
  8801. return;
  8802. }
  8803. this.companyId = data.result.companyId;
  8804. this.apiType = data.apiType;
  8805. this.hbsubmitdialogVisible = true;
  8806. this.contributingState = false;
  8807. if (data.namesimple == "紫金财险") {
  8808. this.$api.letter
  8809. .zijinqueryClauseData({ companyId: this.companyId })
  8810. .then((res) => {
  8811. this.zijinengageListData = res.data;
  8812. });
  8813. }
  8814. if (data.namesimple == "华泰财险") {
  8815. this.zijinengageList = [];
  8816. this.$api.letter
  8817. .huataiqueryClauseData({ companyId: this.companyId })
  8818. .then((res) => {
  8819. res.data.forEach((val) => {
  8820. val.clauseCode = val.engageCode;
  8821. val.clauseName = val.engageTitle;
  8822. val.clauseContent = val.engageDetail;
  8823. val.clauses = val.engageDetail;
  8824. });
  8825. this.zijinengageListData = res.data;
  8826. this.zijinengageListData.forEach((val) => {
  8827. this.$nextTick(() => {
  8828. if (val.optType == "2") {
  8829. this.zijinengageList.push(val);
  8830. this.$refs.expandTablePro.toggleRowSelection(val, true);
  8831. }
  8832. });
  8833. });
  8834. });
  8835. } else {
  8836. this.zijinengageListData = [];
  8837. }
  8838. // switch (data.namesimple) {
  8839. // case "紫金财险":
  8840. // this.$api.letter.zijinqueryClauseData({ companyId: this.companyId }).then(res => {
  8841. // this.zijinengageListData = res.data;
  8842. // });
  8843. // break;
  8844. // default:
  8845. // break;
  8846. // }
  8847. },
  8848. hbsubmit() {
  8849. this.hbsubmitdialogVisible = false;
  8850. this.contributingState = false;
  8851. this.$api.letter
  8852. .getByCompanyId({ companyId: this.companyId })
  8853. .then(async (res) => {
  8854. if (res.code == 200) {
  8855. var data = res.data;
  8856. this.queryOrders = data;
  8857. const loading = this.$loading({
  8858. lock: true,
  8859. text: "Loading",
  8860. spinner: "el-icon-loading",
  8861. background: "rgba(0, 0, 0, 0.7)",
  8862. });
  8863. switch (this.queryOrders.inscompany) {
  8864. case "永安财险":
  8865. let api = "";
  8866. api =
  8867. this.apiType == 2
  8868. ? "pythonsubmitImage"
  8869. : "insyongansubmitImage";
  8870. await this.$api.letter[api]({
  8871. companyId: this.companyId,
  8872. }).then((res) => {
  8873. if (res.code == "200") {
  8874. var _this = this;
  8875. let api1 = "";
  8876. api1 = this.apiType == 2 ? "pythonaudit" : "yonganaudit";
  8877. this.$api.letter[api1]({
  8878. companyId: this.companyId,
  8879. }).then((res) => {
  8880. var _this = this;
  8881. if (res.code == "200") {
  8882. loading.close();
  8883. this.$message({
  8884. message: "核保成功",
  8885. type: "success",
  8886. });
  8887. this.QuotationHistory();
  8888. _this.$api.letter
  8889. .getByCompanyId({ companyId: this.companyId })
  8890. .then((res) => {
  8891. _this.orderstatus = res.data.orderstatus; //订单状态
  8892. _this.underwritingdialogVisible = true;
  8893. let indexid = this.totalCompanyList.findIndex(
  8894. (item) =>
  8895. item.namesimple == this.queryOrders.inscompany
  8896. );
  8897. this.totalCompanyList[indexid].orderstatus =
  8898. res.data.orderstatus;
  8899. });
  8900. } else {
  8901. loading.close();
  8902. this.$message({
  8903. showClose: true,
  8904. message:
  8905. this.queryOrders.inscompany + "提核--:" + res.msg,
  8906. type: "error",
  8907. duration: 0,
  8908. });
  8909. }
  8910. });
  8911. } else {
  8912. this.$message({
  8913. message: this.queryOrders.inscompany + "影像:" + res.msg,
  8914. type: "error",
  8915. duration: 7000,
  8916. });
  8917. loading.close();
  8918. }
  8919. });
  8920. break;
  8921. case "中煤财险":
  8922. await this.$api.letter
  8923. .insZhongmeisubmitImage({
  8924. companyId: this.companyId,
  8925. })
  8926. .then((res) => {
  8927. if (res.code == "200") {
  8928. var _this = this;
  8929. _this.$api.letter
  8930. .Zhongmeiaudit({
  8931. companyId: this.companyId,
  8932. jqappoint: "",
  8933. syappoint: "",
  8934. })
  8935. .then((res) => {
  8936. if (res.code == "200") {
  8937. loading.close();
  8938. _this.$message({
  8939. message: "核保成功",
  8940. type: "success",
  8941. });
  8942. this.QuotationHistory();
  8943. _this.$api.letter
  8944. .getByCompanyId({ companyId: this.companyId })
  8945. .then((res) => {
  8946. _this.orderstatus = res.data.orderstatus; //订单状态
  8947. _this.underwritingdialogVisible = true;
  8948. let indexid = this.totalCompanyList.findIndex(
  8949. (item) =>
  8950. item.namesimple ==
  8951. this.queryOrders.inscompany
  8952. );
  8953. this.totalCompanyList[indexid].orderstatus =
  8954. res.data.orderstatus;
  8955. });
  8956. } else {
  8957. loading.close();
  8958. _this.$message({
  8959. showClose: true,
  8960. message:
  8961. this.queryOrders.inscompany +
  8962. "提核--:" +
  8963. res.msg,
  8964. type: "error",
  8965. duration: 0,
  8966. });
  8967. _this.$api.letter
  8968. .getByCompanyId({ companyId: this.companyId })
  8969. .then((res) => {
  8970. _this.orderstatus = res.data.orderstatus; //订单状态
  8971. });
  8972. }
  8973. });
  8974. } else {
  8975. this.$message({
  8976. message:
  8977. this.queryOrders.inscompany + "影像--:" + res.msg,
  8978. type: "error",
  8979. duration: 7000,
  8980. });
  8981. loading.close();
  8982. }
  8983. });
  8984. break;
  8985. case "华泰财险":
  8986. let HtApiImage = "";
  8987. HtApiImage =
  8988. this.apiType == 2
  8989. ? "pythonsubmitImage"
  8990. : "insHuataisubmitImage";
  8991. await this.$api.letter[HtApiImage]({
  8992. [this.apiType == 2 ? "subOrderNo" : "companyId"]:
  8993. this.companyId,
  8994. }).then((res) => {
  8995. if (res.code == "200") {
  8996. var _this = this;
  8997. let HtApiaudit = "";
  8998. HtApiaudit =
  8999. this.apiType == 2 ? "pythonaudit" : "huataiaudit";
  9000. let engageList = [];
  9001. this.zijinengageList.forEach((val) => {
  9002. engageList.push({
  9003. engageCode: val.clauseCode,
  9004. engageDetail: val.clauses,
  9005. engageTitle: val.clauseName,
  9006. riskCode: val.riskCode,
  9007. });
  9008. });
  9009. _this.$api.letter[HtApiaudit]({
  9010. [this.apiType == 2 ? "subOrderNo" : "companyId"]:
  9011. this.companyId,
  9012. engageList,
  9013. }).then((res) => {
  9014. if (res.code == "200") {
  9015. loading.close();
  9016. _this.$message({
  9017. message: "核保成功",
  9018. type: "success",
  9019. });
  9020. this.QuotationHistory();
  9021. _this.$api.letter
  9022. .getByCompanyId({ companyId: this.companyId })
  9023. .then((res) => {
  9024. _this.orderstatus = res.data.orderstatus; //订单状态
  9025. _this.underwritingdialogVisible = true;
  9026. let indexid = this.totalCompanyList.findIndex(
  9027. (item) =>
  9028. item.namesimple == this.queryOrders.inscompany
  9029. );
  9030. this.totalCompanyList[indexid].orderstatus =
  9031. res.data.orderstatus;
  9032. });
  9033. } else {
  9034. loading.close();
  9035. _this.$message({
  9036. showClose: true,
  9037. message:
  9038. this.queryOrders.inscompany + "提核--:" + res.msg,
  9039. type: "error",
  9040. duration: 0,
  9041. });
  9042. _this.$api.letter
  9043. .getByCompanyId({ companyId: this.companyId })
  9044. .then((res) => {
  9045. _this.orderstatus = res.data.orderstatus; //订单状态
  9046. });
  9047. }
  9048. });
  9049. } else {
  9050. this.$message({
  9051. message:
  9052. this.queryOrders.inscompany + "影像--:" + res.msg,
  9053. type: "error",
  9054. duration: 7000,
  9055. });
  9056. loading.close();
  9057. }
  9058. });
  9059. break;
  9060. case "紫金财险":
  9061. await this.$api.letter
  9062. .zijinsubmitImage({
  9063. companyId: this.companyId,
  9064. })
  9065. .then((res) => {
  9066. if (res.code == "200") {
  9067. var _this = this;
  9068. _this.$api.letter
  9069. .zijinaudit({
  9070. companyId: this.companyId,
  9071. engageList: this.zijinengageList,
  9072. })
  9073. .then((res) => {
  9074. if (res.code == "200") {
  9075. loading.close();
  9076. _this.$message({
  9077. message: "核保成功",
  9078. type: "success",
  9079. });
  9080. this.QuotationHistory();
  9081. _this.$api.letter
  9082. .getByCompanyId({ companyId: this.companyId })
  9083. .then((res) => {
  9084. _this.orderstatus = res.data.orderstatus; //订单状态
  9085. _this.underwritingdialogVisible = true;
  9086. let indexid = this.totalCompanyList.findIndex(
  9087. (item) =>
  9088. item.namesimple ==
  9089. this.queryOrders.inscompany
  9090. );
  9091. this.totalCompanyList[indexid].orderstatus =
  9092. res.data.orderstatus;
  9093. });
  9094. } else {
  9095. loading.close();
  9096. _this.$message({
  9097. showClose: true,
  9098. dangerouslyUseHTMLString: true,
  9099. message:
  9100. this.queryOrders.inscompany +
  9101. "提核--:" +
  9102. res.msg,
  9103. type: "error",
  9104. duration: 0,
  9105. });
  9106. _this.$api.letter
  9107. .getByCompanyId({ companyId: this.companyId })
  9108. .then((res) => {
  9109. _this.orderstatus = res.data.orderstatus; //订单状态
  9110. });
  9111. }
  9112. });
  9113. } else {
  9114. this.$message({
  9115. message:
  9116. this.queryOrders.inscompany + "影像--:" + res.msg,
  9117. type: "error",
  9118. duration: 7000,
  9119. });
  9120. loading.close();
  9121. }
  9122. });
  9123. break;
  9124. case "国任财险":
  9125. await this.$api.letter
  9126. .insguorensubmitImage({
  9127. companyId: this.companyId,
  9128. })
  9129. .then((res) => {
  9130. if (res.code == "200") {
  9131. var _this = this;
  9132. _this.$api.letter
  9133. .gunrenaudit({
  9134. companyId: this.companyId,
  9135. })
  9136. .then((res) => {
  9137. if (res.code == "200") {
  9138. loading.close();
  9139. _this.cqryCdeJq = "";
  9140. _this.cqryCdeSy = "";
  9141. _this.renewalCodeJq = "";
  9142. _this.renewalCodeSy = "";
  9143. this.$message({
  9144. message: "核保成功",
  9145. type: "success",
  9146. });
  9147. this.QuotationHistory();
  9148. _this.$api.letter
  9149. .getByCompanyId({ companyId: this.companyId })
  9150. .then((res) => {
  9151. _this.orderstatus = res.data.orderstatus; //订单状态
  9152. _this.underwritingdialogVisible = true;
  9153. let indexid = this.totalCompanyList.findIndex(
  9154. (item) =>
  9155. item.namesimple ==
  9156. this.queryOrders.inscompany
  9157. );
  9158. this.totalCompanyList[indexid].orderstatus =
  9159. res.data.orderstatus;
  9160. });
  9161. } else {
  9162. loading.close();
  9163. this.$message({
  9164. showClose: true,
  9165. message: res.msg,
  9166. type: "error",
  9167. duration: 0,
  9168. });
  9169. }
  9170. });
  9171. } else {
  9172. loading.close();
  9173. this.$message({
  9174. message: res.msg,
  9175. type: "error",
  9176. duration: 7000,
  9177. });
  9178. }
  9179. });
  9180. break;
  9181. case "渤海财险":
  9182. await this.$api.letter
  9183. .insbohaisubmitImage({
  9184. companyId: this.companyId,
  9185. })
  9186. .then((res) => {
  9187. if (res.code == "200") {
  9188. var _this = this;
  9189. _this.$api.letter
  9190. .bohaiaudit({
  9191. companyId: this.companyId,
  9192. })
  9193. .then((res) => {
  9194. if (res.code == "200") {
  9195. loading.close();
  9196. _this.cqryCdeJq = "";
  9197. _this.cqryCdeSy = "";
  9198. _this.renewalCodeJq = "";
  9199. _this.renewalCodeSy = "";
  9200. this.$message({
  9201. message: "核保成功",
  9202. type: "success",
  9203. });
  9204. this.QuotationHistory();
  9205. _this.$api.letter
  9206. .getByCompanyId({ companyId: this.companyId })
  9207. .then((res) => {
  9208. _this.orderstatus = res.data.orderstatus; //订单状态
  9209. _this.underwritingdialogVisible = true;
  9210. let indexid = this.totalCompanyList.findIndex(
  9211. (item) =>
  9212. item.namesimple ==
  9213. this.queryOrders.inscompany
  9214. );
  9215. this.totalCompanyList[indexid].orderstatus =
  9216. res.data.orderstatus;
  9217. });
  9218. } else {
  9219. loading.close();
  9220. this.$message({
  9221. showClose: true,
  9222. message: res.msg,
  9223. type: "error",
  9224. duration: 0,
  9225. });
  9226. }
  9227. });
  9228. } else {
  9229. loading.close();
  9230. this.$message({
  9231. message: res.msg,
  9232. type: "error",
  9233. duration: 7000,
  9234. });
  9235. }
  9236. });
  9237. break;
  9238. case "诚泰财险":
  9239. case "恒邦财险":
  9240. case "华农财险":
  9241. case "太平财险":
  9242. case "安盛天平":
  9243. case "众安平安":
  9244. case "中国人寿":
  9245. case "泰康财险":
  9246. let hengbangapi = "";
  9247. hengbangapi =
  9248. this.apiType == 2
  9249. ? "pythonsubmitImage"
  9250. : "anshengsubmitImage";
  9251. console.log(hengbangapi, "hengbangapi");
  9252. await this.$api.letter[hengbangapi]({
  9253. subOrderNo: this.companyId,
  9254. }).then((res) => {
  9255. if (res.code == "200") {
  9256. var _this = this;
  9257. let hengbangapi1 = "";
  9258. hengbangapi1 =
  9259. this.apiType == 2 ? "pythonaudit" : "anshengaudit";
  9260. console.log(hengbangapi1, "hengbangapi1");
  9261. _this.$api.letter[hengbangapi1]({
  9262. subOrderNo: this.companyId,
  9263. }).then((res) => {
  9264. if (res.code == "200") {
  9265. loading.close();
  9266. this.$message({
  9267. message: "核保成功",
  9268. type: "success",
  9269. });
  9270. this.QuotationHistory();
  9271. _this.$api.letter
  9272. .getByCompanyId({ companyId: this.companyId })
  9273. .then((res) => {
  9274. _this.orderstatus = res.data.orderstatus; //订单状态
  9275. _this.underwritingdialogVisible = true;
  9276. let indexid = this.totalCompanyList.findIndex(
  9277. (item) =>
  9278. item.namesimple == this.queryOrders.inscompany
  9279. );
  9280. this.totalCompanyList[indexid].orderstatus =
  9281. res.data.orderstatus;
  9282. });
  9283. } else {
  9284. loading.close();
  9285. this.$message({
  9286. showClose: true,
  9287. dangerouslyUseHTMLString: true,
  9288. message:
  9289. this.queryOrders.inscompany +
  9290. "提核--:" +
  9291. res.msg.replace(/\n/g, "<br><br>"),
  9292. type: "error",
  9293. duration: 0,
  9294. });
  9295. }
  9296. });
  9297. } else {
  9298. loading.close();
  9299. this.$message({
  9300. message:
  9301. this.queryOrders.inscompany + "影像--:" + res.msg,
  9302. type: "error",
  9303. duration: 7000,
  9304. });
  9305. }
  9306. });
  9307. break;
  9308. case "永诚财险":
  9309. await this.$api.letter
  9310. .insyongchengsubmitImage({
  9311. companyId: this.companyId,
  9312. })
  9313. .then((res) => {
  9314. if (res.code == "200") {
  9315. var _this = this;
  9316. _this.$api.letter
  9317. .yongchengaudit({
  9318. companyId: this.companyId,
  9319. })
  9320. .then((res) => {
  9321. if (res.code == "200") {
  9322. loading.close();
  9323. _this.cqryCdeJq = "";
  9324. _this.cqryCdeSy = "";
  9325. _this.renewalCodeJq = "";
  9326. _this.renewalCodeSy = "";
  9327. this.$message({
  9328. message: "核保成功",
  9329. type: "success",
  9330. });
  9331. this.QuotationHistory();
  9332. _this.$api.letter
  9333. .getByCompanyId({ companyId: this.companyId })
  9334. .then((res) => {
  9335. _this.orderstatus = res.data.orderstatus; //订单状态
  9336. _this.underwritingdialogVisible = true;
  9337. let indexid = this.totalCompanyList.findIndex(
  9338. (item) =>
  9339. item.namesimple ==
  9340. this.queryOrders.inscompany
  9341. );
  9342. this.totalCompanyList[indexid].orderstatus =
  9343. res.data.orderstatus;
  9344. });
  9345. } else {
  9346. loading.close();
  9347. this.$message({
  9348. showClose: true,
  9349. message:
  9350. this.queryOrders.inscompany +
  9351. "提核--:" +
  9352. res.msg,
  9353. customClass: "customNotifyClass",
  9354. type: "error",
  9355. duration: 0,
  9356. });
  9357. }
  9358. });
  9359. } else {
  9360. loading.close();
  9361. this.$message({
  9362. message:
  9363. this.queryOrders.inscompany + "影像--:" + res.msg,
  9364. type: "error",
  9365. duration: 7000,
  9366. });
  9367. }
  9368. });
  9369. break;
  9370. case "大家财险":
  9371. let DJApiImage = "";
  9372. DJApiImage =
  9373. this.apiType == 2 ? "pythonsubmitImage" : "dajiasubmitImage";
  9374. await this.$api.letter[DJApiImage]({
  9375. [this.apiType == 2 ? "subOrderNo" : "companyId"]:
  9376. this.companyId,
  9377. }).then((res) => {
  9378. if (res.code == "200") {
  9379. var _this = this;
  9380. let DJApiaudit = "";
  9381. DJApiaudit =
  9382. this.apiType == 2 ? "pythonaudit" : "dajiaaudit";
  9383. _this.$api.letter[DJApiaudit]({
  9384. [this.apiType == 2 ? "subOrderNo" : "companyId"]:
  9385. this.companyId,
  9386. }).then((res) => {
  9387. if (res.code == "200") {
  9388. loading.close();
  9389. _this.cqryCdeJq = "";
  9390. _this.cqryCdeSy = "";
  9391. _this.renewalCodeJq = "";
  9392. _this.renewalCodeSy = "";
  9393. this.$message({
  9394. message: "核保成功",
  9395. type: "success",
  9396. });
  9397. this.QuotationHistory();
  9398. _this.$api.letter
  9399. .getByCompanyId({ companyId: this.companyId })
  9400. .then((res) => {
  9401. _this.orderstatus = res.data.orderstatus; //订单状态
  9402. _this.underwritingdialogVisible = true;
  9403. let indexid = this.totalCompanyList.findIndex(
  9404. (item) =>
  9405. item.namesimple == this.queryOrders.inscompany
  9406. );
  9407. this.totalCompanyList[indexid].orderstatus =
  9408. res.data.orderstatus;
  9409. });
  9410. } else {
  9411. loading.close();
  9412. this.$message({
  9413. showClose: true,
  9414. message:
  9415. this.queryOrders.inscompany + "提核--:" + res.msg,
  9416. customClass: "customNotifyClass",
  9417. type: "error",
  9418. duration: 0,
  9419. });
  9420. }
  9421. });
  9422. } else {
  9423. loading.close();
  9424. this.$message({
  9425. message:
  9426. this.queryOrders.inscompany + "影像--:" + res.msg,
  9427. type: "error",
  9428. duration: 7000,
  9429. });
  9430. }
  9431. });
  9432. break;
  9433. case "平安财险":
  9434. await this.$api.letter
  9435. .pingansubmitImage({
  9436. companyId: this.companyId,
  9437. })
  9438. .then((res) => {
  9439. if (res.code == "200") {
  9440. var _this = this;
  9441. _this.$api.letter
  9442. .pinganaudit({
  9443. companyId: this.companyId,
  9444. jqappoint: "",
  9445. syappoint: "",
  9446. })
  9447. .then((res) => {
  9448. if (res.code == "200") {
  9449. loading.close();
  9450. _this.$message({
  9451. message: "核保成功",
  9452. type: "success",
  9453. });
  9454. this.QuotationHistory();
  9455. _this.$api.letter
  9456. .getByCompanyId({ companyId: this.companyId })
  9457. .then((res) => {
  9458. _this.orderstatus = res.data.orderstatus; //订单状态
  9459. _this.underwritingdialogVisible = true;
  9460. let indexid = this.totalCompanyList.findIndex(
  9461. (item) =>
  9462. item.namesimple ==
  9463. this.queryOrders.inscompany
  9464. );
  9465. this.totalCompanyList[indexid].orderstatus =
  9466. res.data.orderstatus;
  9467. });
  9468. } else {
  9469. loading.close();
  9470. _this.$message({
  9471. showClose: true,
  9472. message:
  9473. this.queryOrders.inscompany +
  9474. "提核--:" +
  9475. res.msg,
  9476. type: "error",
  9477. duration: 0,
  9478. });
  9479. _this.$api.letter
  9480. .getByCompanyId({ companyId: this.companyId })
  9481. .then((res) => {
  9482. _this.orderstatus = res.data.orderstatus; //订单状态
  9483. });
  9484. }
  9485. });
  9486. } else {
  9487. this.$message({
  9488. message:
  9489. this.queryOrders.inscompany + "影像--:" + res.msg,
  9490. type: "error",
  9491. duration: 7000,
  9492. });
  9493. loading.close();
  9494. }
  9495. });
  9496. break;
  9497. }
  9498. }
  9499. });
  9500. },
  9501. //当前日期的次日
  9502. transformTime1() {
  9503. var date = new Date();
  9504. date.setFullYear(date.getFullYear());
  9505. date.setTime(date.getTime() + 24 * 60 * 60 * 1000);
  9506. var strYear = date.getFullYear();
  9507. var strDay = date.getDate();
  9508. var strMonth = date.getMonth() + 1;
  9509. var hh = date.getHours();
  9510. if (hh < 10) {
  9511. hh = "0" + hh;
  9512. }
  9513. if (strMonth < 10) {
  9514. strMonth = "0" + strMonth;
  9515. }
  9516. if (strDay < 10) {
  9517. strDay = "0" + strDay;
  9518. }
  9519. var datastr = strYear + "-" + strMonth + "-" + strDay + " " + "00:00:00";
  9520. return datastr;
  9521. },
  9522. //传入日期的次日
  9523. transformTime2(time) {
  9524. var date = new Date(time);
  9525. date.setFullYear(date.getFullYear());
  9526. date.setTime(date.getTime() + 24 * 60 * 60 * 1000); //一年后的前一天
  9527. var strYear = date.getFullYear();
  9528. var strDay = date.getDate();
  9529. var strMonth = date.getMonth() + 1;
  9530. var hh = date.getHours();
  9531. if (hh < 10) {
  9532. hh = "0" + hh;
  9533. }
  9534. if (strMonth < 10) {
  9535. strMonth = "0" + strMonth;
  9536. }
  9537. if (strDay < 10) {
  9538. strDay = "0" + strDay;
  9539. }
  9540. var datastr = strYear + "-" + strMonth + "-" + strDay + " " + "00:00:00";
  9541. return datastr;
  9542. },
  9543. //时间转换
  9544. transformTime(date) {
  9545. var d = new Date(date);
  9546. var strYear = d.getFullYear();
  9547. var strMonth = d.getMonth() + 1;
  9548. var strDay = d.getDate();
  9549. var hh = d.getHours();
  9550. var minutes = d.getMinutes(); // 分
  9551. var Seconds = d.getSeconds();
  9552. if (hh < 10) {
  9553. hh = "0" + hh;
  9554. }
  9555. if (minutes < 10) {
  9556. minutes = "0" + minutes;
  9557. }
  9558. if (Seconds < 10) {
  9559. Seconds = "0" + Seconds;
  9560. }
  9561. if (strMonth < 10) {
  9562. strMonth = "0" + strMonth;
  9563. }
  9564. if (strDay < 10) {
  9565. strDay = "0" + strDay;
  9566. }
  9567. var datetime =
  9568. strYear +
  9569. "-" +
  9570. strMonth +
  9571. "-" +
  9572. strDay +
  9573. " " +
  9574. hh +
  9575. ":" +
  9576. minutes +
  9577. ":" +
  9578. Seconds;
  9579. return datetime;
  9580. },
  9581. timeformat(date) {
  9582. var d = new Date(date);
  9583. var strYear = d.getFullYear();
  9584. var strMonth = d.getMonth() + 1;
  9585. var strDay = d.getDate();
  9586. var hh = d.getHours();
  9587. if (hh < 10) {
  9588. hh = "0" + hh;
  9589. }
  9590. if (strMonth < 10) {
  9591. strMonth = "0" + strMonth;
  9592. }
  9593. if (strDay < 10) {
  9594. strDay = "0" + strDay;
  9595. }
  9596. var datetime = strYear + "-" + strMonth + "-" + strDay;
  9597. return datetime;
  9598. },
  9599. oneYearPast1(time) {
  9600. //明年减一秒
  9601. var date = new Date(time);
  9602. date.setSeconds(date.getSeconds() - 1);
  9603. date.setFullYear(date.getFullYear() + 1); //一年后
  9604. date.setTime(date.getTime()); //一年后的前一天
  9605. var strYear = date.getFullYear();
  9606. var strDay = date.getDate();
  9607. var strMonth = date.getMonth() + 1;
  9608. var hh = date.getHours();
  9609. var minutes = date.getMinutes(); // 分
  9610. var Seconds = date.getSeconds();
  9611. if (hh < 10) {
  9612. hh = "0" + hh;
  9613. }
  9614. if (minutes < 10) {
  9615. minutes = "0" + minutes;
  9616. }
  9617. if (Seconds < 10) {
  9618. Seconds = "0" + Seconds;
  9619. }
  9620. if (strMonth < 10) {
  9621. strMonth = "0" + strMonth;
  9622. }
  9623. if (strDay < 10) {
  9624. strDay = "0" + strDay;
  9625. }
  9626. var datastr =
  9627. strYear +
  9628. "-" +
  9629. strMonth +
  9630. "-" +
  9631. strDay +
  9632. " " +
  9633. hh +
  9634. ":" +
  9635. minutes +
  9636. ":" +
  9637. Seconds;
  9638. return datastr;
  9639. },
  9640. tbczcarShowChange() {
  9641. //投保人同车主
  9642. switch (this.tbczcarShow) {
  9643. case true:
  9644. this.policyHolderInfo = {...this.ownerInfo}
  9645. break;
  9646. default:
  9647. for (let key in this.policyHolderInfo) {
  9648. this.policyHolderInfo[key] = "";
  9649. this.policyHolderInfo.property= "1";
  9650. this.policyHolderInfo.provinceData = [];
  9651. this.selectedOptions2 = [];
  9652. }
  9653. // this.policyHolderInfo = {}
  9654. // this.policyHolderInfo.property='1'
  9655. }
  9656. },
  9657. bbczcarShowChange() {
  9658. //被保人同车主
  9659. switch (this.bbczcarShow) {
  9660. case true:
  9661. this.bbtbcarShow = false;
  9662. this.insuredPersonInfo = {...this.ownerInfo}
  9663. break;
  9664. default:
  9665. for (let key in this.insuredPersonInfo) {
  9666. this.insuredPersonInfo[key] = "";
  9667. this.insuredPersonInfo.property= "1";
  9668. this.insuredPersonInfo.provinceData = [];
  9669. // this.selectedOptions3 = [];
  9670. }
  9671. }
  9672. },
  9673. bbtbcarShowChange() {
  9674. //被保人同投保人
  9675. switch (this.bbtbcarShow) {
  9676. case true:
  9677. this.bbczcarShow = false;
  9678. this.insuredPersonInfo = {...this.policyHolderInfo}
  9679. break;
  9680. default:
  9681. for (let key in this.insuredPersonInfo) {
  9682. this.insuredPersonInfo[key] = "";
  9683. this.insuredPersonInfo.property= "1";
  9684. this.insuredPersonInfo.provinceData = [];
  9685. }
  9686. }
  9687. },
  9688. //VIN查询
  9689. toChooseVin(cartype) {
  9690. if (cartype == "" || cartype == null) {
  9691. this.$message({
  9692. message: "请输入车架号",
  9693. type: "warning",
  9694. });
  9695. } else {
  9696. const loading = this.$loading({
  9697. lock: true,
  9698. text: "Loading",
  9699. spinner: "el-icon-loading",
  9700. background: "rgba(0, 0, 0, 0.7)",
  9701. });
  9702. this.$api.letter.insZhongmeiVIN(this.carInfo.frameNo).then((res) => {
  9703. if (res.code == "200") {
  9704. this.reslist = res.data;
  9705. loading.close();
  9706. this.sbdmdialogVisible = true;
  9707. } else {
  9708. loading.close();
  9709. this.$message.error(res.msg);
  9710. }
  9711. });
  9712. }
  9713. },
  9714. // 撤销二维码
  9715. revokeCode(id) {
  9716. this.$api.letter.getRevokeQrCode(id).then((res) => {
  9717. if (res.code == 200) {
  9718. this.$message({
  9719. message: res.msg,
  9720. type: "success",
  9721. });
  9722. this.QuotationHistory();
  9723. }
  9724. });
  9725. },
  9726. //品牌型号查询
  9727. toChooseVehicleType(cartype) {
  9728. if (cartype == "" || cartype == null) {
  9729. this.$message({
  9730. message: "请输入车型名称",
  9731. type: "warning",
  9732. });
  9733. } else {
  9734. const loading = this.$loading({
  9735. lock: true,
  9736. text: "Loading",
  9737. spinner: "el-icon-loading",
  9738. background: "rgba(0, 0, 0, 0.7)",
  9739. });
  9740. let param = {
  9741. modelName: cartype.replace(/[^u4e00-u9fa5|,]+/gi, ""),
  9742. };
  9743. this.$api.letter.ModelsQuery(param).then((res) => {
  9744. if (res.code == "200") {
  9745. loading.close();
  9746. this.reslist = res.data;
  9747. this.chexingdialogVisible = true;
  9748. } else {
  9749. loading.close();
  9750. this.$message.error(res.msg);
  9751. }
  9752. });
  9753. }
  9754. },
  9755. //车型列表双击选中事件
  9756. reslistCurrentChange(row, column, event) {
  9757. this.carInfo.brandName = row.brandCN; //品牌型号
  9758. this.carInfo.modelcname = row.modelName; //品牌型号
  9759. this.carInfo.caryear = row.marketYear; //年款
  9760. this.carInfo.seatCount = row.ratedPassengerCapacity; //座位数
  9761. this.carInfo.purchasePrice = row.replacementValue; //购置价
  9762. this.carInfo.modelCode = row.modelCode; //型号代码
  9763. this.carInfo.familyName = row.series; //系列
  9764. this.carInfo.enginedesc = row.displacement; //排量
  9765. this.carInfo.energyType = row.energyTypes;
  9766. this.carInfo.powerScale = row.powerScale; //功率
  9767. this.chexingdialogVisible = false;
  9768. this.sbdmdialogVisible = false;
  9769. },
  9770. //是否过户事件
  9771. transferFlagChange(e) {
  9772. if (e) {
  9773. this.transferDateShow = true;
  9774. this.carInfo.transferDate = this.carInfo.issueDate;
  9775. } else {
  9776. this.transferDateShow = false;
  9777. this.carInfo.transferDate = "";
  9778. }
  9779. },
  9780. //影像上传
  9781. drivingupload(file, imageIdList, imgurl, type) {
  9782. let that = this;
  9783. let size = file.size / 1024 / 1024 < 5;
  9784. const isJPG =
  9785. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  9786. if (!size) {
  9787. this.$message.error("上传图片大小不能超过 5MB!");
  9788. this[imgurl] = [];
  9789. return false;
  9790. }
  9791. if (!isJPG) {
  9792. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  9793. this[imgurl] = [];
  9794. return false;
  9795. }
  9796. this[imgurl].push(file);
  9797. var file = file.raw;
  9798. const params = new FormData(); // 声明formData数据类型
  9799. params.append("multipartFile", file);
  9800. params.append("type", "image");
  9801. this.$api.letter.uploadFile(params).then((res) => {
  9802. if (res.code == "200") {
  9803. if (this[imageIdList].some((v) => v.imageType == type)) {
  9804. this[imageIdList].map((val) => {
  9805. if (val.imageType == type) {
  9806. val.imageId = res.data.id;
  9807. }
  9808. });
  9809. } else {
  9810. this[imageIdList].push({
  9811. imageId: res.data.id,
  9812. imageType: type,
  9813. });
  9814. }
  9815. }
  9816. });
  9817. },
  9818. policydrivingupload(file, val) {
  9819. // this.policyNumberForm[val + 'List'] = []
  9820. var fileType = null;
  9821. switch (val) {
  9822. case "jqPolicy":
  9823. this.policyNumberForm.jqPolicyList = [];
  9824. fileType ="1";
  9825. break;
  9826. case "syPolicy":
  9827. this.policyNumberForm.syPolicyList = [];
  9828. fileType ="2";
  9829. break;
  9830. case "noPolicy":
  9831. this.policyNumberForm.noPolicyList = [];
  9832. break;
  9833. case "jqSign":
  9834. this.policyNumberForm.jqSignList = [];
  9835. break;
  9836. default:
  9837. break;
  9838. }
  9839. var file = file.raw;
  9840. const params = new FormData(); // 声明formData数据类型
  9841. params.append("multipartFile", file);
  9842. params.append("type", "file");
  9843. if(this.companyName ==''){
  9844. this.$message.error("请选择保险公司!");
  9845. return;
  9846. }
  9847. var companyId =null;
  9848. this.ztreeNodes.forEach((item) => {
  9849. if (this.companyName == item.name){
  9850. companyId=item.id;
  9851. }
  9852. })
  9853. console.log(companyId)
  9854. //如果是交强或者商业保单的提取签单时间
  9855. if (val === "jqPolicy" || val === "syPolicy"){
  9856. params.append("fileType", fileType);
  9857. params.append("companyId", companyId);
  9858. this.$api.letter.uploadFileToTraferSignDateTime(params).then((res) => {
  9859. if (res.code == "200") {
  9860. res.data.name = res.data.fileName;
  9861. this.policyNumberForm[val + "List"].push(res.data);
  9862. if(val === "jqPolicy"){
  9863. //交强险直接设置签单时间
  9864. this.jqSignDate =res.data.signTime;
  9865. console.log(this.jqSignDate)
  9866. if (this.jqSignDate!=null){
  9867. this.policyNumberForm.signDate =this.jqSignDate;
  9868. }
  9869. }else {
  9870. this.sySignDate =res.data.signTime;
  9871. console.log(this.sySignDate)
  9872. //如果交强签单日期为空,设置商业险的签单日期
  9873. if(this.jqSignDate == null){
  9874. if (this.sySignDate!=null){
  9875. this.policyNumberForm.signDate =this.sySignDate;
  9876. }
  9877. }
  9878. }
  9879. }
  9880. });
  9881. }else{
  9882. this.$api.letter.uploadFile(params).then((res) => {
  9883. if (res.code == "200") {
  9884. res.data.name = res.data.fileName;
  9885. this.policyNumberForm[val + "List"].push(res.data);
  9886. }
  9887. });
  9888. }
  9889. },
  9890. handleRemove1(file, imageIdList, imgList) {
  9891. this[imageIdList].map((ele, index) => {
  9892. if (file.imageId === ele.imageId) {
  9893. this[imageIdList].splice(index, 1);
  9894. }
  9895. return ele;
  9896. });
  9897. if (file.imageId) {
  9898. this[imgList].map((ele, index) => {
  9899. if (file.imageId === ele.imageId) {
  9900. this[imgList].splice(index, 1);
  9901. }
  9902. return ele;
  9903. });
  9904. } else {
  9905. this[imgList].map((ele, index) => {
  9906. if (file.uid === ele.uid) {
  9907. this[imgList].splice(index, 1);
  9908. }
  9909. return ele;
  9910. });
  9911. }
  9912. },
  9913. compress(img, width, height, ratio) {
  9914. var canvas, ctx, img64;
  9915. canvas = document.createElement("canvas");
  9916. canvas.width = width;
  9917. canvas.height = height;
  9918. ctx = canvas.getContext("2d");
  9919. ctx.drawImage(img, 0, 0, width, height);
  9920. img64 = canvas.toDataURL("image/jpeg", ratio);
  9921. return img64;
  9922. },
  9923. base64ToFile(base64, fileName) {
  9924. let data = base64.split(",");
  9925. let type = data[0].match(/:(.*?);/)[1]; // let suffix = type.split('/')[1];
  9926. const bstr = window.atob(data[1]);
  9927. let n = bstr.length;
  9928. const u8arr = new Uint8Array(n);
  9929. while (n--) {
  9930. u8arr[n] = bstr.charCodeAt(n);
  9931. } // const file =  new File([u8arr], `${fileName}.${suffix}`, {
  9932. const file = new File([u8arr], `${fileName}`, {
  9933. type: type,
  9934. });
  9935. return file;
  9936. },
  9937. carfrontChange(file) {
  9938. //选择行驶证正面
  9939. let that = this;
  9940. let size = file.size / 1024 / 1024 < 5;
  9941. const isJPG =
  9942. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  9943. if (!size) {
  9944. this.$message.error("上传图片大小不能超过 5MB!");
  9945. return false;
  9946. }
  9947. if (!isJPG) {
  9948. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  9949. return false;
  9950. }
  9951. // let name=file.raw.name
  9952. //       var image = new Image();
  9953. //       image.src = window.URL.createObjectURL(file.raw);
  9954. //       that.carfrontImg =  image.src
  9955. //       image.onload = function(){
  9956. //         let aaa= that.base64ToFile(that.compress(image, 500, 400, 0.7),name)
  9957. // that.carfrontImg = image.src;
  9958. // const params = new FormData(); // 声明formData数据类型
  9959. // params.append("multipartFile", aaa);
  9960. // params.append("type", "image");
  9961. // that.$api.letter.uploadFile(params).then(res => {
  9962. // if (res.code == "200") {
  9963. // that.CarFrontFile = aaa;//文件流
  9964. // if (that.imageList1.some(v => v.imageType == 'C01')) {
  9965. // that.imageList1.map(val => {
  9966. // if (val.imageType == 'C01') {
  9967. // val.imageId = res.data.id;
  9968. // }
  9969. // })
  9970. // } else {
  9971. // that.imageList1.push({
  9972. // imageId: res.data.id,
  9973. // imageType: "C01",
  9974. // })
  9975. // }
  9976. // } else {
  9977. // that.$message({ message: res.msg, type: "warning" });
  9978. // }
  9979. // });
  9980. // }
  9981. var file = file.raw;
  9982. let files = window.URL.createObjectURL(file); //转临时路径
  9983. this.carfrontImg = files;
  9984. const params = new FormData(); // 声明formData数据类型
  9985. params.append("multipartFile", file);
  9986. params.append("type", "image");
  9987. this.$api.letter.uploadFile(params).then((res) => {
  9988. if (res.code == "200") {
  9989. this.CarFrontFile = file; //文件流
  9990. if (this.imageList1.some((v) => v.imageType == "C01")) {
  9991. this.imageList1.map((val) => {
  9992. if (val.imageType == "C01") {
  9993. val.imageId = res.data.id;
  9994. }
  9995. });
  9996. } else {
  9997. this.imageList1.push({
  9998. imageId: res.data.id,
  9999. imageType: "C01",
  10000. });
  10001. }
  10002. } else {
  10003. this.$message({ message: res.msg, type: "warning" });
  10004. }
  10005. });
  10006. },
  10007. carbackChange(file) {
  10008. let that = this;
  10009. let size = file.size / 1024 / 1024 < 2;
  10010. const isJPG =
  10011. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  10012. if (!size) {
  10013. this.$message.error("上传图片大小不能超过 5MB!");
  10014. return false;
  10015. }
  10016. if (!isJPG) {
  10017. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  10018. return false;
  10019. }
  10020. // let name=file.raw.name
  10021. //       var image = new Image();
  10022. //       image.src = window.URL.createObjectURL(file.raw);
  10023. //       image.onload = function(){
  10024. //         let aaa= that.base64ToFile(that.compress(image, 500, 400, 0.7),name)
  10025. // that.carbackImg = image.src;
  10026. // const params = new FormData(); // 声明formData数据类型
  10027. // params.append("multipartFile", aaa);
  10028. // params.append("type", "image");
  10029. // that.$api.letter.uploadFile(params).then(res => {
  10030. // if (res.code == "200") {
  10031. // that.CarBackFile = aaa;//文件流
  10032. // if (that.imageList1.some(v => v.imageType == 'D01')) {
  10033. // that.imageList1.map(val => {
  10034. // if (val.imageType == 'D01') {
  10035. // val.imageId = res.data.id;
  10036. // }
  10037. // })
  10038. // } else {
  10039. // that.imageList1.push({
  10040. // imageId: res.data.id,
  10041. // imageType: "D01",
  10042. // })
  10043. // }
  10044. // } else {
  10045. // that.$message({ message: res.msg, type: "warning" });
  10046. // }
  10047. // });
  10048. // }
  10049. //选择行驶证反面
  10050. var file = file.raw;
  10051. let files = window.URL.createObjectURL(file); //转临时路径
  10052. this.carbackImg = files;
  10053. const params = new FormData(); // 声明formData数据类型
  10054. params.append("multipartFile", file);
  10055. params.append("type", "image");
  10056. this.$api.letter.uploadFile(params).then((res) => {
  10057. if (res.code == "200") {
  10058. this.CarBackFile = file;
  10059. if (this.imageList1.some((v) => v.imageType == "D01")) {
  10060. this.imageList1.map((val) => {
  10061. if (val.imageType == "D01") {
  10062. val.imageId = res.data.id;
  10063. }
  10064. });
  10065. } else {
  10066. this.imageList1.push({
  10067. imageId: res.data.id,
  10068. imageType: "D01",
  10069. });
  10070. }
  10071. } else {
  10072. this.$message({ message: res.msg, type: "warning" });
  10073. }
  10074. });
  10075. },
  10076. userfrontChange(file) {
  10077. let that = this;
  10078. let size = file.size / 1024 / 1024 < 5;
  10079. const isJPG =
  10080. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  10081. if (!size) {
  10082. this.$message.error("上传图片大小不能超过 5MB!");
  10083. return false;
  10084. }
  10085. if (!isJPG) {
  10086. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  10087. return false;
  10088. }
  10089. // let name=file.raw.name
  10090. //       var image = new Image();
  10091. //       image.src = window.URL.createObjectURL(file.raw);
  10092. //       image.onload = function(){
  10093. //         let aaa= that.base64ToFile(that.compress(image, 500, 400, 0.7),name)
  10094. // that.userfrontImg = image.src;
  10095. // const params = new FormData(); // 声明formData数据类型
  10096. // params.append("multipartFile", aaa);
  10097. // params.append("type", "image");
  10098. // that.$api.letter.uploadFile(params).then(res => {
  10099. // if (res.code == "200") {
  10100. // let type = 'C0' + that.userIndex;
  10101. // if (that['imageList' + that.userIndex].some(v => v.imageType == type)) {
  10102. // that['imageList' + that.userIndex].map(val => {
  10103. // if (val.imageType == type) {
  10104. // val.imageId = res.data.id;
  10105. // }
  10106. // })
  10107. // } else {
  10108. // that['imageList' + that.userIndex].push({
  10109. // imageId: res.data.id,
  10110. // imageType: type,
  10111. // })
  10112. // }
  10113. // that[type + 'File'] = aaa;
  10114. // } else {
  10115. // that.$message({ message: res.msg, type: "warning" });
  10116. // }
  10117. // });
  10118. // }
  10119. //选择身份证正面
  10120. var file = file.raw;
  10121. let files = window.URL.createObjectURL(file); //转链接
  10122. this.userfrontImg = files;
  10123. const params = new FormData(); // 声明formData数据类型
  10124. params.append("multipartFile", file);
  10125. params.append("type", "image");
  10126. this.$api.letter.uploadFile(params).then((res) => {
  10127. if (res.code == "200") {
  10128. let type = "C0" + this.userIndex;
  10129. if (
  10130. this["imageList" + this.userIndex].some((v) => v.imageType == type)
  10131. ) {
  10132. this["imageList" + this.userIndex].map((val) => {
  10133. if (val.imageType == type) {
  10134. val.imageId = res.data.id;
  10135. }
  10136. });
  10137. } else {
  10138. this["imageList" + this.userIndex].push({
  10139. imageId: res.data.id,
  10140. imageType: type,
  10141. });
  10142. }
  10143. this[type + "File"] = file;
  10144. } else {
  10145. this.$message({ message: res.msg, type: "warning" });
  10146. }
  10147. });
  10148. },
  10149. userbackChange(file) {
  10150. let that = this;
  10151. let size = file.size / 1024 / 1024 < 5;
  10152. const isJPG =
  10153. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  10154. if (!size) {
  10155. this.$message.error("上传图片大小不能超过 5MB!");
  10156. return false;
  10157. }
  10158. if (!isJPG) {
  10159. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  10160. return false;
  10161. }
  10162. // let name=file.raw.name
  10163. //       var image = new Image();
  10164. //       image.src = window.URL.createObjectURL(file.raw);
  10165. //       image.onload = function(){
  10166. //         let aaa= that.base64ToFile(that.compress(image, 500, 400, 0.7),name)
  10167. // that.userbackImg = image.src;
  10168. // const params = new FormData(); // 声明formData数据类型
  10169. // params.append("multipartFile", aaa);
  10170. // params.append("type", "image");
  10171. // that.$api.letter.uploadFile(params).then(res => {
  10172. // if (res.code == "200") {
  10173. // let type = 'D0' + that.userIndex;
  10174. // if (that['imageList' + that.userIndex].some(v => v.imageType == type)) {
  10175. // that['imageList' + that.userIndex].map(val => {
  10176. // if (val.imageType == type) {
  10177. // val.imageId = res.data.id;
  10178. // }
  10179. // })
  10180. // } else {
  10181. // that['imageList' + that.userIndex].push({
  10182. // imageId: res.data.id,
  10183. // imageType: type,
  10184. // })
  10185. // }
  10186. // that[type + 'File'] = aaa;
  10187. // } else {
  10188. // that.$message({ message: res.msg, type: "warning" });
  10189. // }
  10190. // });
  10191. // }
  10192. //选择身份证背面
  10193. var file = file.raw;
  10194. let files = window.URL.createObjectURL(file); //转链接
  10195. this.userbackImg = files;
  10196. const params = new FormData(); // 声明formData数据类型
  10197. params.append("multipartFile", file);
  10198. params.append("type", "image");
  10199. this.$api.letter.uploadFile(params).then((res) => {
  10200. if (res.code == "200") {
  10201. let type = "D0" + this.userIndex;
  10202. if (
  10203. this["imageList" + this.userIndex].some((v) => v.imageType == type)
  10204. ) {
  10205. this["imageList" + this.userIndex].map((val) => {
  10206. if (val.imageType == type) {
  10207. val.imageId = res.data.id;
  10208. }
  10209. });
  10210. } else {
  10211. this["imageList" + this.userIndex].push({
  10212. imageId: res.data.id,
  10213. imageType: type,
  10214. });
  10215. }
  10216. this[type + "File"] = file;
  10217. } else {
  10218. this.$message({ message: res.msg, type: "warning" });
  10219. }
  10220. });
  10221. },
  10222. businessChange(file) {
  10223. let size = file.size / 1024 / 1024 < 5;
  10224. const isJPG =
  10225. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  10226. if (!size) {
  10227. this.$message.error("上传图片大小不能超过 5MB!");
  10228. return false;
  10229. }
  10230. if (!isJPG) {
  10231. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  10232. return false;
  10233. }
  10234. var file = file.raw;
  10235. let files = window.URL.createObjectURL(file); //转链接
  10236. this.businessImg = files;
  10237. const params = new FormData(); // 声明formData数据类型
  10238. params.append("multipartFile", file);
  10239. params.append("type", "image");
  10240. this.$api.letter.uploadFile(params).then((res) => {
  10241. if (res.code == "200") {
  10242. let type = "Y0" + this.userIndex;
  10243. if (
  10244. this["imageList" + this.userIndex].some((v) => v.imageType == type)
  10245. ) {
  10246. this["imageList" + this.userIndex].map((val) => {
  10247. if (val.imageType == type) {
  10248. val.imageId = res.data.id;
  10249. }
  10250. });
  10251. } else {
  10252. this["imageList" + this.userIndex].push({
  10253. imageId: res.data.id,
  10254. imageType: type,
  10255. });
  10256. }
  10257. this[type + "File"] = file;
  10258. } else {
  10259. this.$message({ message: res.msg, type: "warning" });
  10260. }
  10261. });
  10262. },
  10263. CarOCRdiscern() {
  10264. //car识别
  10265. const loading = this.$loading({
  10266. lock: true,
  10267. text: "Loading",
  10268. spinner: "el-icon-loading",
  10269. background: "rgba(0, 0, 0, 0.7)",
  10270. });
  10271. const params = new FormData(); // 声明formData数据类型
  10272. params.append("image1", this.CarFrontFile);
  10273. params.append("image2", this.CarBackFile);
  10274. this.$api.letter.drivingPermit(params).then((res) => {
  10275. loading.close();
  10276. if (res.msg == "201") {
  10277. this.$message({ message: "请正确选择驾驶证", type: "warning" });
  10278. }
  10279. var carInfo = res.data.carInfo;
  10280. if (carInfo.issueDate) {
  10281. carInfo.issueDate =
  10282. carInfo.issueDate.substring(0, 4) +
  10283. "-" +
  10284. carInfo.issueDate.substring(4, 6) +
  10285. "-" +
  10286. carInfo.issueDate.substring(6, 8);
  10287. }
  10288. if (carInfo.registerDate) {
  10289. carInfo.registerDate =
  10290. carInfo.registerDate.substring(0, 4) +
  10291. "-" +
  10292. carInfo.registerDate.substring(4, 6) +
  10293. "-" +
  10294. carInfo.registerDate.substring(6, 8);
  10295. }
  10296. this.carform.carOwner = carInfo.carOwner; //车主
  10297. this.carform.licenseNo = carInfo.plateNo; //车牌号
  10298. this.carform.modelcname = carInfo.backOcrID; //品牌型号
  10299. this.carform.frameNo = carInfo.vin; //车架号
  10300. this.carform.engineNo = carInfo.engine; //发动机号
  10301. this.carform.registerDate = carInfo.registerDate; //车牌号
  10302. this.carform.issueDate = carInfo.issueDate; //车牌号
  10303. this.carform.grossMass = carInfo.grossMass; //总质量
  10304. this.carform.unladenMass = carInfo.unladenMass; //整备质量
  10305. this.carform.limitLoad = carInfo.limitLoad; //核定载质量
  10306. this.carform.category = carInfo.category; //车辆类型
  10307. this.carform.carnature = carInfo.useNature; //使用性质
  10308. this.carform.vehicleUse = carInfo.vehicleUse; //车辆用途
  10309. this.carform.plateType = carInfo.plateType; //车辆种类
  10310. this.carform.approvedPassengersCapacity =
  10311. carInfo.approvedPassengersCapacity; //核定载客数
  10312. });
  10313. },
  10314. CarOCRconfirm() {
  10315. //传参 carnature
  10316. this.ownerInfo.name = this.carform.carOwner; //车主
  10317. this.carInfo.cartype = "K33";
  10318. this.carInfo.licenseNo = this.carform.licenseNo; //车牌号
  10319. this.carInfo.modelcname = this.carform.modelcname; //品牌型号
  10320. this.carInfo.vinNo = this.carform.frameNo; //车架号
  10321. this.carInfo.frameNo = this.carform.frameNo; //车架号
  10322. this.carInfo.engineNo = this.carform.engineNo; //发动机号
  10323. this.carInfo.seatCount = this.carform.approvedPassengersCapacity; //核定载客数
  10324. this.carInfo.vehicleweight = this.carform.grossMass; //总质量
  10325. this.carInfo.completeKerbMass = this.carform.unladenMass; //整备质量
  10326. this.carInfo.limitLoad = this.carform.limitLoad; //核定载质量
  10327. this.carInfo.cartype = this.carform.category; //车辆类型
  10328. this.carInfo.carnature = this.carform.carnature
  10329. ? this.carform.carnature
  10330. : "02"; //使用性质
  10331. this.carInfo.vehicleUse = this.carform.vehicleUse
  10332. ? this.carform.vehicleUse
  10333. : "05"; //车辆用途
  10334. this.carInfo.cimodelclass = this.carform.plateType; //车辆种类
  10335. if (this.timeformat(this.carform.registerDate) != "NaN-NaN-NaN") {
  10336. this.carInfo.registerDate = this.carform.registerDate; //车牌号
  10337. }
  10338. if (this.timeformat(this.carform.issueDate) != "NaN-NaN-NaN") {
  10339. this.carInfo.issueDate = this.carform.issueDate; //车牌号
  10340. }
  10341. this.uploadcardialogVisible = false;
  10342. },
  10343. handleRemove(e) {
  10344. //删除图片
  10345. this[e] = "";
  10346. switch (this.userIndex) {
  10347. case 0:
  10348. this.carfrontImg = "";
  10349. this.carbackImg = "";
  10350. this.CarFrontFile = ""; // 行驶证正面base64
  10351. this.CarBackFile = ""; // 行驶证背面base64
  10352. break;
  10353. case 2:
  10354. this.userfrontImg = "";
  10355. this.userbackImg = "";
  10356. this.C02File = ""; // 车主正面base64
  10357. this.D02File = ""; // 车主背面base64
  10358. this.Y02File = ""; // 车主营业执照
  10359. break;
  10360. case 3:
  10361. this.userfrontImg = "";
  10362. this.userbackImg = "";
  10363. this.C03File = ""; // 投保人正面base64
  10364. this.D03File = ""; // 投保人背面base64
  10365. this.Y03File = ""; // 投保人营业执照
  10366. break;
  10367. case 4:
  10368. this.userfrontImg = "";
  10369. this.userbackImg = "";
  10370. this.C04File = ""; // 被保人正面base64
  10371. this.D04File = ""; // 被保人背面base64
  10372. this.Y04File = ""; // 被保人营业执照
  10373. break;
  10374. default:
  10375. }
  10376. },
  10377. //预览图片
  10378. handlePictureCardPreview(img) {
  10379. this.ProViewImg = img;
  10380. this.showViewer = true;
  10381. },
  10382. // 关闭查看器
  10383. closeViewer() {
  10384. this.showViewer = false;
  10385. },
  10386. uploaduser(index) {
  10387. this.userIndex = index;
  10388. this.uploaduserdialogVisible = true;
  10389. },
  10390. userOCRdiscern() {
  10391. //OCR识别
  10392. if( this.activeName=='1'){
  10393. switch (this.userIndex) {
  10394. case 2:
  10395. const params1 = new FormData(); // 声明formData数据类型
  10396. params1.append("image1", this.C02File);
  10397. params1.append("image2", this.D02File);
  10398. this.userOCRjoggle(params1);
  10399. break;
  10400. case 3:
  10401. const params2 = new FormData(); // 声明formData数据类型
  10402. params2.append("image1", this.C03File);
  10403. params2.append("image2", this.D03File);
  10404. this.userOCRjoggle(params2);
  10405. break;
  10406. case 4:
  10407. const params3 = new FormData(); // 声明formData数据类型
  10408. params3.append("image1", this.C04File);
  10409. params3.append("image2", this.D04File);
  10410. this.userOCRjoggle(params3);
  10411. break;
  10412. default:
  10413. }
  10414. }
  10415. else{
  10416. switch (this.userIndex ) {
  10417. case 2:
  10418. const params1 = new FormData(); // 声明formData数据类型
  10419. params1.append("image1", this.Y02File);
  10420. this.businessjoggle(params1);
  10421. break;
  10422. case 3:
  10423. const params2 = new FormData(); // 声明formData数据类型
  10424. params2.append("image1", this.Y03File);
  10425. this.businessjoggle(params2);
  10426. break;
  10427. case 4:
  10428. const params3 = new FormData(); // 声明formData数据类型
  10429. params3.append("image1", this.Y04File);
  10430. this.businessjoggle(params3);
  10431. break;
  10432. default:
  10433. }
  10434. }
  10435. },
  10436. businessjoggle(param) {
  10437. const loading = this.$loading({
  10438. lock: true,
  10439. text: "Loading",
  10440. spinner: "el-icon-loading",
  10441. background: "rgba(0, 0, 0, 0.7)",
  10442. });
  10443. this.$api.letter.businessLicense(param).then((res) => {
  10444. loading.close();
  10445. if (res.msg == "201") {
  10446. this.$message({ message: "请正确选择营业执照", type: "warning" });
  10447. }
  10448. if (res.code==200 && res.data) {
  10449. if(res.data){
  10450. this.businessform={
  10451. ...res.data,
  10452. name: res.data.company,
  10453. organizationCode: res.data.socialCreditCode,
  10454. addr: res.data.address,
  10455. identifyType:'10',
  10456. scope: res.data.businessScope,
  10457. legalPerson: res.data.legalRepresentative,
  10458. registeredCapital:parseInt(res.data.registeredCapital)
  10459. }
  10460. }
  10461. }
  10462. });
  10463. },
  10464. userOCRjoggle(param) {
  10465. const loading = this.$loading({
  10466. lock: true,
  10467. text: "Loading",
  10468. spinner: "el-icon-loading",
  10469. background: "rgba(0, 0, 0, 0.7)",
  10470. });
  10471. this.$api.letter.idCard(param).then((res) => {
  10472. loading.close();
  10473. if (res.msg == "201") {
  10474. this.$message({ message: "请正确选择身份证", type: "warning" });
  10475. }
  10476. var customerInfo = res.data.customerInfo;
  10477. if (customerInfo) {
  10478. this.ownerInfoform.name = customerInfo.name;
  10479. if (customerInfo.identifyType == "01") {
  10480. this.ownerInfoform.identifyType = "身份证";
  10481. } else {
  10482. this.ownerInfoform.identifyType = "";
  10483. }
  10484. this.ownerInfoform.identifyNumber = customerInfo.identifyNumber;
  10485. this.ownerInfoform.gender = customerInfo.identifyIssuedCom;
  10486. this.ownerInfoform.addr = customerInfo.addr;
  10487. if (customerInfo.identifyNumber) {
  10488. this.ownerInfoform.age = getAgeByIdCard(
  10489. customerInfo.identifyNumber
  10490. );
  10491. }
  10492. if (
  10493. customerInfo.identifyValidDate ||
  10494. customerInfo.identifyValidEndDate
  10495. ) {
  10496. this.ownerInfoform.identifyValidDate =
  10497. customerInfo.identifyValidDate.substring(0, 4) +
  10498. "-" +
  10499. customerInfo.identifyValidDate.substring(4, 6) +
  10500. "-" +
  10501. customerInfo.identifyValidDate.substring(6, 8);
  10502. this.ownerInfoform.identifyValidEndDate =
  10503. customerInfo.identifyValidEndDate.substring(0, 4) +
  10504. "-" +
  10505. customerInfo.identifyValidEndDate.substring(4, 6) +
  10506. "-" +
  10507. customerInfo.identifyValidEndDate.substring(6, 8);
  10508. if (customerInfo.identifyValidEndDate == "长期") {
  10509. this.ownerInfoform.identifyValidEndDate = "9999-12-31";
  10510. }
  10511. }
  10512. // let values = addressCode(this.ownerInfoform.addr);
  10513. // this.ownerInfoform.province = codeToText[values[0]]
  10514. // this.ownerInfoform.city = codeToText[values[1]]
  10515. // this.ownerInfoform.county = codeToText[values[2]]
  10516. }
  10517. });
  10518. },
  10519. userOCRconfirm() {
  10520. //传参
  10521. if( this.activeName=='1'){
  10522. this.ownerInfoform.property='1'
  10523. switch (this.userIndex) {
  10524. case 2:
  10525. // this.selectedOptions1 = addressCode(this.ownerInfoform.addr);
  10526. this.ownerInfo = {...this.ownerInfoform}
  10527. break;
  10528. case 3:
  10529. // this.selectedOptions2 = addressCode(this.ownerInfoform.addr);
  10530. this.policyHolderInfo = {...this.ownerInfoform}
  10531. break;
  10532. case 4:
  10533. // this.selectedOptions3 = addressCode(this.ownerInfoform.addr);
  10534. this.insuredPersonInfo = {...this.ownerInfoform}
  10535. break;
  10536. }
  10537. }
  10538. else{
  10539. this.businessform.property='0'
  10540. switch (this.userIndex) {
  10541. case 2:
  10542. this.ownerInfo ={...this.ownerInfo,...this.businessform}
  10543. break;
  10544. case 3:
  10545. this.policyHolderInfo ={...this.policyHolderInfo,...this.businessform}
  10546. break;
  10547. case 4:
  10548. this.insuredPersonInfo ={...this.insuredPersonInfo,...this.businessform}
  10549. break;
  10550. }
  10551. }
  10552. this.uploaduserdialogVisible = false;
  10553. },
  10554. closeDialog(index) {
  10555. // 0:车辆 1:车主 2:投保人 3:被保人
  10556. switch (index) {
  10557. case 0:
  10558. this.carfrontImg = "";
  10559. this.carbackImg = "";
  10560. this.CarFrontFile = ""; // 行驶证正面base64
  10561. this.CarBackFile = ""; // 行驶证背面base64
  10562. Object.keys(this.carform).forEach((key) => {
  10563. this.carform[key] = "";
  10564. });
  10565. break;
  10566. case 2:
  10567. this.userfrontImg = "";
  10568. this.userbackImg = "";
  10569. this.businessImg = "";
  10570. this.Y02File = ""; // 营业执照
  10571. this.C02File = ""; // 车主正面base64
  10572. this.D02File = ""; // 车主背面base64
  10573. Object.keys(this.ownerInfoform).forEach((key) => {
  10574. this.ownerInfoform[key] = "";
  10575. });
  10576. break;
  10577. case 3:
  10578. this.userfrontImg = "";
  10579. this.userbackImg = "";
  10580. this.businessImg = "";
  10581. this.Y03File = ""; // 营业执照
  10582. this.C03File = ""; // 投保人正面base64
  10583. this.D03File = ""; // 投保人背面base64
  10584. Object.keys(this.ownerInfoform).forEach((key) => {
  10585. this.ownerInfoform[key] = "";
  10586. });
  10587. break;
  10588. case 4:
  10589. this.userfrontImg = "";
  10590. this.userbackImg = "";
  10591. this.businessImg = "";
  10592. this.Y04File = ""; // 营业执照
  10593. this.C04File = ""; // 被保人正面base64
  10594. this.D04File = ""; // 被保人背面base64
  10595. Object.keys(this.ownerInfoform).forEach((key) => {
  10596. this.ownerInfoform[key] = "";
  10597. });
  10598. break;
  10599. default:
  10600. }
  10601. },
  10602. bjdpreview(id) {
  10603. let params = {
  10604. companyId: id,
  10605. };
  10606. this.$api.letter.getByCompanyId(params).then((res) => {
  10607. if (res.code == "200") {
  10608. var data = res.data;
  10609. if (data.kindinfo != null) {
  10610. data.kindinfo.map((ele, index) => {
  10611. switch (ele.kindCode) {
  10612. case "A":
  10613. if (ele.amount == 1) {
  10614. ele.amount = "投保";
  10615. } else {
  10616. ele.amount = ele.amount;
  10617. }
  10618. break;
  10619. case "D4":
  10620. case "SY_FJ_YBW2":
  10621. ele.unitAmount = this.toChinesNum(ele.unitAmount);
  10622. break;
  10623. case "MJ1":
  10624. case "MJ2":
  10625. case "MJ3":
  10626. case "MJ4":
  10627. ele.deductibleRate = ele.deductibleRate + "%";
  10628. break;
  10629. default:
  10630. ele.amount = this.toChinesNum(ele.amount);
  10631. }
  10632. return ele;
  10633. });
  10634. }
  10635. data.logoImg = this.iconfftter(res.data.inscompany);
  10636. this.queryOrders = data;
  10637. this.$api.letter.getThemeByUserId(this.userId).then((res) => {
  10638. if (res.code == 200) {
  10639. if (res.data[0] == "GD") {
  10640. this.$refs.quotationDialogPro.setBackupVisible(true);
  10641. } else {
  10642. this.$refs.quotationDialog.setBackupVisible(true);
  10643. }
  10644. }
  10645. });
  10646. // if (
  10647. // this.$store.state.user.roles.managementSource &&
  10648. // this.$store.state.user.roles.managementSource == "3"
  10649. // ) {
  10650. // this.$refs.quotationDialogPro.setBackupVisible(true);
  10651. // } else {
  10652. // this.$refs.quotationDialog.setBackupVisible(true);
  10653. // }
  10654. }
  10655. });
  10656. },
  10657. //返回上一步
  10658. Back() { },
  10659. carcode(id, item) {
  10660. this.$api.letter.getQrCode(id).then((res) => {
  10661. if (res.code == "200") {
  10662. this.inscompany = res.data.inscompany; //保险公司
  10663. this.sumpremium = res.data.sumpremium; //总价
  10664. this.licenseNo = res.data.cPlateNo; //车牌号
  10665. this.applyName = res.data.cInsuredNme; //车主
  10666. this.jqpremium = res.data.jqpremium; //交强
  10667. this.sypremium = res.data.sypremium; //商业
  10668. this.taxamount = res.data.taxamount; //车船税
  10669. this.jypremium = res.data.jypremium; //驾意险
  10670. this.jqstartdate = res.data.jqStartDate; //交强起保日期
  10671. this.systartdate = res.data.syStartDate; //商业起保日期
  10672. // this.mobile = res.data.applyinfo.mobile;//投保人手机号
  10673. let qrCodeUrl = res.data.qrCodeUrl;
  10674. this.$api.letter.getThemeByUserId(this.userId).then((res) => {
  10675. if (res.code == 200) {
  10676. if (res.data[0] == "GD") {
  10677. this.codedialogVisiblePro = true;
  10678. this.qrcodeWidth = "154";
  10679. this.qrcodeHeight = "154";
  10680. } else {
  10681. this.codedialogVisible = true;
  10682. }
  10683. this.$nextTick(function () {
  10684. var _that = this;
  10685. switch (_that.inscompany) {
  10686. case "太平财险":
  10687. let anresult = qrCodeUrl.replace(/[\r\n]/g, "");
  10688. let animgBase64 = `data:image/png;base64,${anresult}`;
  10689. base64ToPath(animgBase64).then((path) => {
  10690. this.paycodeimg = path;
  10691. });
  10692. break;
  10693. case "华泰财险":
  10694. switch (item.apiType) {
  10695. case 1:
  10696. this.creatQrCode(qrCodeUrl);
  10697. break;
  10698. case 2:
  10699. let anresult = qrCodeUrl.replace(/[\r\n]/g, "");
  10700. let animgBase64 = `data:image/png;base64,${anresult}`;
  10701. base64ToPath(animgBase64).then((path) => {
  10702. this.paycodeimg = path;
  10703. });
  10704. break;
  10705. }
  10706. break;
  10707. case "大家财险":
  10708. switch (item.apiType) {
  10709. case 1:
  10710. this.creatQrCode(qrCodeUrl);
  10711. break;
  10712. case 2:
  10713. let anresult = qrCodeUrl.replace(/[\r\n]/g, "");
  10714. let animgBase64 = `data:image/png;base64,${anresult}`;
  10715. base64ToPath(animgBase64).then((path) => {
  10716. this.paycodeimg = path;
  10717. });
  10718. break;
  10719. }
  10720. break;
  10721. default:
  10722. this.creatQrCode(qrCodeUrl);
  10723. }
  10724. });
  10725. }
  10726. });
  10727. } else {
  10728. this.$message({ message: res.msg, type: "warning" });
  10729. }
  10730. });
  10731. },
  10732. //同步
  10733. synchronization() {
  10734. this.systartDate = this.jqstartDate;
  10735. this.syendDate = this.jqendDate;
  10736. },
  10737. add() {
  10738. this.obtainProtocol();
  10739. if (this.isLetter == "1") {
  10740. this.$router.push({ path: "/letter/letter" });
  10741. }
  10742. for (let key in this.ownerInfo) {
  10743. this.ownerInfo[key] = "";
  10744. }
  10745. for (let key in this.policyHolderInfo) {
  10746. this.policyHolderInfo[key] = "";
  10747. }
  10748. for (let key in this.insuredPersonInfo) {
  10749. this.insuredPersonInfo[key] = "";
  10750. }
  10751. this.vehicleAndVesselTaxForm = {
  10752. taxRelifFlag: "1",
  10753. taxpayerIdentifier: "01",
  10754. };
  10755. this.ownerInfo.provinceData = [];
  10756. this.insuredPersonInfo.provinceData = [];
  10757. this.policyHolderInfo.provinceData = [];
  10758. this.carInfo = JSON.parse(localStorage.getItem("carInfo"));
  10759. this.insureList = JSON.parse(localStorage.getItem("insureList"));
  10760. this.sychecked = false;
  10761. this.yonganchecked = false;
  10762. this.zhongmeichecked = false;
  10763. this.transferDateShow = false;
  10764. (this.tbczcarShow = true), //投保人同车主
  10765. // this.bbczcarShow = false, //被保人同车主
  10766. (this.bbtbcarShow = true), //被保人同投保人
  10767. // this.$refs.imageDialog.emptyList()
  10768. this.imageList1 = [];
  10769. this.imageList2 = [];
  10770. this.imageList3 = [];
  10771. this.imageList4 = [];
  10772. this.imageList5 = [];
  10773. this.imageList6 = [];
  10774. this.imgList1 = [];
  10775. this.imgList2 = [];
  10776. this.imgList3 = [];
  10777. this.imgList4 = [];
  10778. this.imgList5 = [];
  10779. this.imgList6 = [];
  10780. this.imgList7 = [];
  10781. this.imgList8 = [];
  10782. this.imgList9 = [];
  10783. this.imgList10 = [];
  10784. this.imgList11 = [];
  10785. this.imgList12 = [];
  10786. this.imgList13 = [];
  10787. this.imgList14 = [];
  10788. this.imgList15 = [];
  10789. this.imgList16 = [];
  10790. this.imgList17 = [];
  10791. this.imgList18 = [];
  10792. this.imgList19 = [];
  10793. this.imgList20 = [];
  10794. this.imgList21 = [];
  10795. this.imgList22 = [];
  10796. this.imgList23 = [];
  10797. this.imgList24 = [];
  10798. // 清空保险公司选中的意外险
  10799. this.zijintemplateSelection = "";
  10800. this.zhongantemplateSelection = "";
  10801. this.hengbangtemplateSelection = "";
  10802. this.chengtaitemplateSelection = "";
  10803. this.taipingtemplateSelection = "";
  10804. this.insuranceHN = "";
  10805. this.renshoutemplateSelection = "";
  10806. this.dajiatemplateSelection = "";
  10807. this.accidentForm = {
  10808. fen: "1",
  10809. premium: 0,
  10810. };
  10811. this.accidentFormHN = {
  10812. allQuantity: "1",
  10813. quantity: "1",
  10814. };
  10815. this.hengbangaccidentalDrivingVo = {};
  10816. this.huanongaccidentalDrivingVo = {};
  10817. this.taipingaccidentalDrivingVo = {};
  10818. this.zhongmeiaccidentalDrivingVo = {};
  10819. this.accidentalDrivingVo = [];
  10820. this.zhonganaccidentalDrivingVo = {};
  10821. this.renshouaccidentalDrivingVo = {};
  10822. this.anshengaccidentalDrivingVo = {};
  10823. this.dajiaaccidentalDrivingVo = {};
  10824. // this.selectedOptions1 = [];
  10825. // this.selectedOptions2 = [];
  10826. // this.selectedOptions3 = [];
  10827. this.orderno = "";
  10828. this.quoteno = "";
  10829. this.lastCompanyId = "";
  10830. this.HistoryList = [];
  10831. this.jqstartDate = this.transformTime1();
  10832. this.jqendDate = this.oneYearPast1(this.jqstartDate);
  10833. this.systartDate = this.transformTime1();
  10834. this.syendDate = this.oneYearPast1(this.jqstartDate);
  10835. this.policyNumberForm = {
  10836. jqpolicyno: "",
  10837. sypolicyno: "",
  10838. jypolicyno: "",
  10839. jqpremium: "",
  10840. sypremium: "",
  10841. jypremium: "",
  10842. taxamount: "",
  10843. commissionFeevalue: "",
  10844. otherFeevalue: "",
  10845. jqSuperviseCostsProportion: "",
  10846. sySuperviseCostsProportion: "",
  10847. noSuperviseCostsProportion: "",
  10848. jqOtherCostsProportion: "",
  10849. syOtherCostsProportion: "",
  10850. noOtherCostsProportion: "",
  10851. jqReceivableProportion: "",
  10852. syReceivableProportion: "",
  10853. noReceivableProportion: "",
  10854. jqPolicyList: [],
  10855. syPolicyList: [],
  10856. jqSignList: [],
  10857. noPolicyList: [],
  10858. noCostsProportion: '',
  10859. jqCostsProportion: '',
  10860. syCostsProportion: '',
  10861. };
  10862. //清空保险公司列表数据 add by hxl
  10863. this.companyName ="";
  10864. this.isLetter3agreementId="";
  10865. this.costFlag="";
  10866. this.nowCostsId ="";
  10867. this.isInquiryNowDisable = false
  10868. this.isInquirySelectFlag = true;
  10869. this.inquiryNowList = [];
  10870. //清空费用
  10871. this.policyNumberForm.jqCostsProportion = "";
  10872. this.policyNumberForm.noCostsProportion = "";
  10873. this.policyNumberForm.syCostsProportion = "";
  10874. this.$route.query.data =null;
  10875. },
  10876. toChinesNum(num) {
  10877. if (num.toString().length == 4) {
  10878. let overQian = Math.floor(num / 1000);
  10879. let result = overQian + "千";
  10880. return result;
  10881. } else {
  10882. let overWan = Math.floor(num / 10000);
  10883. let result = overWan + "万";
  10884. return result;
  10885. }
  10886. },
  10887. reportDrop(event) {
  10888. event.preventDefault();
  10889. event.stopPropagation();
  10890. },
  10891. tabLiScroll(id, idx) {
  10892. this.tabLiIndex = idx;
  10893. document.getElementById(id).scrollIntoView({ behavior: "smooth" });
  10894. },
  10895. handleScroll(id) {
  10896. document.getElementById(id).scrollIntoView({ behavior: "smooth" });
  10897. },
  10898. },
  10899. };
  10900. </script>
  10901. <style>
  10902. /* .customNotifyClass {
  10903. word-break: break-all;
  10904. width: 600px;
  10905. } */
  10906. </style>
  10907. <style lang="scss" scoped>
  10908. .marginL {
  10909. margin-left: 10px;
  10910. }
  10911. .el-notification {
  10912. width: 600px;
  10913. }
  10914. .styleB .el-upload--picture-card {
  10915. // display: none;
  10916. opacity: 0;
  10917. }
  10918. .ORcodebody {
  10919. height: auto;
  10920. background-color: #fff;
  10921. //background: url(../../../assets/image/group.png) #fff;
  10922. padding: 16px;
  10923. }
  10924. .csstool {
  10925. font-weight: 600;
  10926. color: #606266;
  10927. font-size: 14px;
  10928. margin: 0 20px;
  10929. span {
  10930. margin-right: 5px;
  10931. }
  10932. }
  10933. .ORcode {
  10934. width: 100%;
  10935. height: auto;
  10936. display: flex;
  10937. justify-content: center;
  10938. align-items: center;
  10939. padding: 30px;
  10940. box-sizing: border-box;
  10941. &>div {
  10942. width: 176px;
  10943. height: 176px;
  10944. border: 1px solid var(--themeColor);
  10945. border-radius: 5px;
  10946. }
  10947. }
  10948. .ORtitle {
  10949. width: 100%;
  10950. padding-bottom: 20px;
  10951. box-sizing: border-box;
  10952. &>div {
  10953. width: 100%;
  10954. margin: 10px 0;
  10955. font-size: 14px;
  10956. &>span {
  10957. &:nth-child(1) {
  10958. color: #868b98;
  10959. text-align: end;
  10960. width: 150px;
  10961. }
  10962. &:nth-child(2) {
  10963. color: #333333;
  10964. }
  10965. }
  10966. }
  10967. }
  10968. .Risk {
  10969. width: 100%;
  10970. height: auto;
  10971. display: flex;
  10972. flex-direction: column;
  10973. align-items: center;
  10974. font-size: 12px;
  10975. }
  10976. .dis {
  10977. display: flex;
  10978. }
  10979. .align {
  10980. align-items: center;
  10981. }
  10982. .jus {
  10983. justify-content: space-between;
  10984. }
  10985. .shangyexian {
  10986. padding-left: 100px;
  10987. }
  10988. .headertotal {
  10989. padding: 30px;
  10990. }
  10991. .my-label {
  10992. background: #e1f3d8;
  10993. }
  10994. .my-content {
  10995. background: #fde2e2;
  10996. color: aqua;
  10997. }
  10998. .el-button--mini {
  10999. padding: 5px;
  11000. }
  11001. #qqq {
  11002. background-color: #111;
  11003. width: 300px;
  11004. height: 300px;
  11005. margin: 0 auto;
  11006. position: relative;
  11007. }
  11008. #qrCode {
  11009. display: inline-block;
  11010. margin: 0 auto;
  11011. position: relative;
  11012. top: 15%;
  11013. img {
  11014. width: 200px;
  11015. height: 200px;
  11016. background-color: #fff;
  11017. padding: 6px;
  11018. }
  11019. }
  11020. .code {
  11021. box-sizing: border-box;
  11022. display: flex;
  11023. flex-direction: column;
  11024. justify-content: space-between;
  11025. align-items: center;
  11026. &>span {
  11027. margin-bottom: 10px;
  11028. }
  11029. }
  11030. .code_name {
  11031. width: 350px;
  11032. display: flex;
  11033. justify-content: space-between;
  11034. align-items: center;
  11035. font-weight: bold;
  11036. &>span {
  11037. &:nth-child(1) {
  11038. color: #979797;
  11039. width: 120px;
  11040. text-align: right;
  11041. }
  11042. &:nth-child(2) {
  11043. color: #2d2d2d;
  11044. width: 120px;
  11045. text-align: left;
  11046. }
  11047. }
  11048. }
  11049. .header {
  11050. font-size: 18px;
  11051. font-weight: bold;
  11052. }
  11053. .body {
  11054. border-top: none;
  11055. padding-bottom: 100px;
  11056. box-sizing: border-box;
  11057. }
  11058. .u-f-ac {
  11059. -webkit-box-align: center;
  11060. align-items: center;
  11061. padding: 10px;
  11062. }
  11063. .bodyTitle {
  11064. height: 45px;
  11065. background: #f3f3f3;
  11066. border: 1px solid #dddddd;
  11067. line-height: 45px;
  11068. padding: 0 20px;
  11069. box-sizing: border-box;
  11070. }
  11071. .start {
  11072. justify-content: flex-start;
  11073. }
  11074. .end {
  11075. justify-content: flex-end;
  11076. }
  11077. .descriptions {
  11078. padding: 20px;
  11079. box-sizing: border-box;
  11080. display: flex;
  11081. flex-direction: column;
  11082. }
  11083. .bodys {
  11084. display: flex;
  11085. justify-content: space-between;
  11086. align-items: center;
  11087. flex-wrap: wrap;
  11088. }
  11089. .bodys1 {
  11090. display: flex;
  11091. justify-content: center;
  11092. align-items: center;
  11093. flex-wrap: wrap;
  11094. }
  11095. .widths {
  11096. width: 230px;
  11097. }
  11098. .widths1 {
  11099. width: 300px;
  11100. }
  11101. .back {
  11102. color: #333333;
  11103. // font-weight: 700;
  11104. }
  11105. .home {
  11106. // padding-left: 10px;
  11107. box-sizing: border-box;
  11108. padding-bottom: 10px;
  11109. border-bottom: 1px solid #eef1f6;
  11110. &>span {
  11111. margin-right: 10px;
  11112. }
  11113. }
  11114. .hovers {
  11115. margin: 10px 0;
  11116. cursor: pointer;
  11117. padding: 10px 0;
  11118. box-sizing: border-box;
  11119. border-bottom: 1px solid #f2f2f2;
  11120. .offer-time {
  11121. margin: 20px 0 0px 100px;
  11122. padding: 10px;
  11123. background: rgba(45, 77, 137, 0.06);
  11124. &>span {
  11125. margin: 0 10px;
  11126. }
  11127. }
  11128. }
  11129. /* 内容待定 */
  11130. .coll {
  11131. font-size: 14px;
  11132. }
  11133. .display {
  11134. display: flex;
  11135. justify-content: center;
  11136. align-items: center;
  11137. box-sizing: border-box;
  11138. }
  11139. .black {
  11140. color: #000;
  11141. }
  11142. .gray {
  11143. color: #999;
  11144. }
  11145. .OCR {
  11146. font-weight: bold;
  11147. color: #333;
  11148. margin: 20px;
  11149. }
  11150. .slot {
  11151. position: absolute;
  11152. width: 100%;
  11153. height: 100%;
  11154. left: 0;
  11155. top: 0;
  11156. cursor: default;
  11157. text-align: center;
  11158. color: #fff;
  11159. opacity: 0;
  11160. font-size: 20px;
  11161. background-color: rgba(0, 0, 0, 0.5);
  11162. transition: opacity 0.3s;
  11163. display: flex;
  11164. justify-content: center;
  11165. align-items: center;
  11166. &>i {
  11167. margin: 10px;
  11168. color: #fff;
  11169. font-size: 30px;
  11170. font-weight: bold;
  11171. cursor: pointer;
  11172. }
  11173. &:hover {
  11174. opacity: 1;
  11175. }
  11176. }
  11177. .companyhead {
  11178. width: 100%;
  11179. margin: 0 auto;
  11180. padding: 15px 10px;
  11181. color: #333;
  11182. font-weight: bold;
  11183. font-size: 14px;
  11184. background-color: #f7f7f9;
  11185. }
  11186. .position-left {
  11187. width: calc(100% - 220px);
  11188. }
  11189. .position-collapse-left {
  11190. width: calc(100% - 80px);
  11191. }
  11192. .footer {
  11193. position: fixed;
  11194. bottom: 0;
  11195. right: 0;
  11196. background-color: #fff;
  11197. z-index: 9;
  11198. padding: 20px;
  11199. box-sizing: border-box;
  11200. box-shadow: 0 0 1px 0 #ccc;
  11201. transition: all 0.1s, box-shadow 0.5s;
  11202. &.shadow {
  11203. box-shadow: 0 -10px 10px -10px #ccc;
  11204. }
  11205. }
  11206. .Enclosure {
  11207. width: 100%;
  11208. background-color: #fff;
  11209. padding: 20px;
  11210. box-sizing: border-box;
  11211. margin-bottom: 15px;
  11212. border-radius: 6px;
  11213. border: 1px solid #ebeef5;
  11214. transition: all 0.2s ease-in-out;
  11215. box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
  11216. }
  11217. .icon-img {
  11218. display: block;
  11219. width: 30px;
  11220. height: 30px;
  11221. }
  11222. .Anchor-link {
  11223. width: 40px;
  11224. background-color: #fff;
  11225. box-shadow: #ccc 0 0px 3px 0;
  11226. border-radius: 6px;
  11227. position: fixed;
  11228. top: 50%;
  11229. right: 0;
  11230. z-index: 99;
  11231. div {
  11232. margin: 5px;
  11233. border-bottom: 1px solid #f2f2f2;
  11234. cursor: pointer;
  11235. display: block;
  11236. }
  11237. }
  11238. .color {
  11239. padding-top: 150px;
  11240. margin-top: -150px;
  11241. }
  11242. .more {
  11243. width: 100%;
  11244. padding: 20px;
  11245. box-sizing: border-box;
  11246. }
  11247. .more-title {
  11248. padding: 15px 10px;
  11249. background-color: #f7f7f9;
  11250. // border-bottom: 1px solid #e3e3e3;
  11251. font-size: 14px;
  11252. }
  11253. .more-data {
  11254. padding: 10px;
  11255. border-bottom: 1px solid #f2f2f2;
  11256. color: #d42426;
  11257. font-size: 14px;
  11258. }
  11259. .Driving-risk {
  11260. padding-left: 100px;
  11261. // padding-top:20px
  11262. }
  11263. .checkbox {
  11264. transform: scale(1.2);
  11265. margin-right: 20px;
  11266. line-height: 32px;
  11267. }
  11268. .insure-long-term {
  11269. display: inline-flex;
  11270. padding-left: 8px;
  11271. padding-right: 8px;
  11272. background: var(--themeColor);
  11273. color: #fff;
  11274. font-size: 12px;
  11275. margin-left: -5px;
  11276. border-radius: 0px 5px 5px 0px;
  11277. cursor: pointer;
  11278. }
  11279. .textareaSty {
  11280. width: 160px;
  11281. height: 210px;
  11282. border: 1px solid #d2d2d2;
  11283. border-radius: 4px;
  11284. img {
  11285. width: 50px;
  11286. height: 50px;
  11287. }
  11288. }
  11289. .image-title {
  11290. width: 100px;
  11291. height: 30px;
  11292. color: #fff;
  11293. text-align: center;
  11294. line-height: 30px;
  11295. font-weight: bold;
  11296. margin-bottom: 15px;
  11297. background: #fc4a1a;
  11298. background: #f2994a;
  11299. /* fallback for old browsers */
  11300. background: -webkit-linear-gradient(to left, #f2c94c, #f2994a);
  11301. /* Chrome 10-25, Safari 5.1-6 */
  11302. background: linear-gradient(to left, #f2c94c, #f2994a);
  11303. /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
  11304. }
  11305. .aaa {
  11306. /deep/ {
  11307. margin-bottom: 20px;
  11308. margin-right: 30px;
  11309. span {
  11310. display: inline-block;
  11311. margin-bottom: 10px;
  11312. }
  11313. .el-upload .el-upload-dragger {
  11314. width: 180px;
  11315. height: 120px;
  11316. border: 1px dashed #c0ccda;
  11317. padding: 0;
  11318. }
  11319. .el-upload-list--picture-card .el-upload-list__item {
  11320. width: 180px;
  11321. height: 120px;
  11322. }
  11323. .el-upload-list__item:first-child {
  11324. margin-top: 0;
  11325. }
  11326. .el-upload--picture-card {
  11327. width: 180px;
  11328. height: 120px;
  11329. }
  11330. .el-upload-list__item {
  11331. width: 180px;
  11332. height: 120px;
  11333. margin: 0 !important;
  11334. display: block !important;
  11335. }
  11336. .el-upload-list--picture-card .el-upload-list__item-thumbnail {
  11337. width: 180px;
  11338. height: 120px;
  11339. }
  11340. }
  11341. }
  11342. .jyxStyle>span {
  11343. display: inline-block;
  11344. text-align: center;
  11345. }
  11346. .tab-style {
  11347. width: 120px;
  11348. li {
  11349. text-align: right;
  11350. padding-right: 20px;
  11351. line-height: 40px;
  11352. cursor: pointer;
  11353. box-sizing: border-box;
  11354. border-right: 1px solid #e2e5eb;
  11355. }
  11356. li:focus {
  11357. background: rgba(212, 36, 38, 0.1);
  11358. border-right: 2px solid var(--themeColor);
  11359. color: var(--themeColor);
  11360. }
  11361. }
  11362. .tabLi-style {
  11363. background: rgba(212, 36, 38, 0.1);
  11364. border-right: 2px solid var(--themeColor);
  11365. color: var(--themeColor);
  11366. }
  11367. .scan-code {
  11368. div {
  11369. margin-top: 10px;
  11370. }
  11371. }
  11372. /* 清除图片上传动画bug */
  11373. /deep/ {
  11374. .proSaomazhifucodeClass .el-dialog__header {
  11375. background: rgba(45, 77, 137, 0.1);
  11376. font-weight: bold;
  11377. }
  11378. .proSaomazhifucodeClass .el-dialog__footer {
  11379. border-top: 1px solid #eef1f6;
  11380. }
  11381. .el-upload-list__item {
  11382. transition: none !important;
  11383. }
  11384. .el-checkbox__input {
  11385. &.is-checked {
  11386. .el-checkbox__inner {
  11387. background-color: #d42426;
  11388. border-color: #d42426;
  11389. }
  11390. }
  11391. }
  11392. .el-checkbox__inner {
  11393. border: 1px solid var(--themeColor);
  11394. &:hover {
  11395. border-color: var(--themeColorHover);
  11396. }
  11397. &:focus {
  11398. border-color: var(--themeColor);
  11399. }
  11400. }
  11401. .el-upload .el-upload-dragger {
  11402. height: 250px;
  11403. width: 400px;
  11404. border: 1px dashed #ced4da;
  11405. }
  11406. // .el-button--warning {
  11407. // color: #fff;
  11408. // background-color: #D42426;
  11409. // border-color: #D42426;
  11410. // &:hover {
  11411. // color: #fff;
  11412. // background-color: #ee6f00ce;
  11413. // border-color: #ee6f00ce;
  11414. // }
  11415. // }
  11416. .el-descriptions-item__label {
  11417. &:not(.is-bordered-label) {
  11418. color: #333;
  11419. }
  11420. }
  11421. // .el-radio__input.is-checked + .el-radio__label {
  11422. // color: #ff7000;
  11423. // }
  11424. // .el-radio__input.is-checked .el-radio__inner {
  11425. // border-color: #ff7000;
  11426. // background: #ff7000;
  11427. // }
  11428. // .el-radio__inner {
  11429. // &:hover {
  11430. // border-color: #ff7000;
  11431. // }
  11432. // }
  11433. // .el-input--small .el-icon-date {
  11434. // color: #ee6f00ce;
  11435. // }
  11436. .el-select {
  11437. width: 100%;
  11438. }
  11439. .el-date-editor.el-input {
  11440. width: 100%;
  11441. }
  11442. .el-cascader--small {
  11443. width: 100%;
  11444. }
  11445. .styleB {
  11446. height: 128px;
  11447. }
  11448. .styleB .el-upload--picture-card {
  11449. display: none;
  11450. }
  11451. .saomazhifucodeClass .el-dialog__body,
  11452. .saomazhifucodeClass .el-dialog__header,
  11453. .saomazhifucodeClass .el-dialog__footer {
  11454. padding: 0;
  11455. background: #f4e9e9;
  11456. }
  11457. .saomazhifucodeClass .el-dialog__body {
  11458. padding: 15px;
  11459. }
  11460. .saomazhifucodeClass .el-dialog__footer {
  11461. background: #f4e9e9;
  11462. padding-bottom: 15px;
  11463. }
  11464. .saomazhifucodeClass .el-dialog__headerbtn {
  11465. margin-top: 10px;
  11466. }
  11467. .zmDriving {
  11468. thead .el-table-column--selection .cell {
  11469. display: none !important;
  11470. }
  11471. }
  11472. .synchronous {
  11473. width: 75px;
  11474. height: 45px;
  11475. line-height: 45px;
  11476. color: #fff;
  11477. cursor: pointer;
  11478. background: url(../../../../src/icon/Union2.png) no-repeat 100%;
  11479. }
  11480. .synchronous:hover {
  11481. background: url(../../../../src/icon/Union1.png) no-repeat 100%;
  11482. }
  11483. .line_style {
  11484. margin-top: 20px;
  11485. }
  11486. .el-input-group__append {
  11487. vertical-align: baseline;
  11488. }
  11489. .pinganTable .el-table__header-wrapper .el-checkbox {
  11490. display: none;
  11491. }
  11492. }
  11493. </style>