KtLetter1.vue 602 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769137701377113772137731377413775137761377713778137791378013781137821378313784137851378613787137881378913790137911379213793137941379513796137971379813799138001380113802138031380413805138061380713808138091381013811138121381313814138151381613817138181381913820138211382213823138241382513826138271382813829138301383113832138331383413835138361383713838138391384013841138421384313844138451384613847138481384913850138511385213853138541385513856138571385813859138601386113862138631386413865138661386713868138691387013871138721387313874138751387613877138781387913880138811388213883138841388513886138871388813889138901389113892138931389413895138961389713898138991390013901139021390313904139051390613907139081390913910139111391213913139141391513916139171391813919139201392113922139231392413925139261392713928139291393013931139321393313934139351393613937139381393913940139411394213943139441394513946139471394813949139501395113952139531395413955139561395713958139591396013961139621396313964139651396613967139681396913970139711397213973139741397513976139771397813979139801398113982139831398413985139861398713988139891399013991139921399313994139951399613997139981399914000140011400214003140041400514006140071400814009140101401114012140131401414015140161401714018140191402014021140221402314024140251402614027140281402914030140311403214033140341403514036140371403814039140401404114042140431404414045140461404714048140491405014051140521405314054140551405614057140581405914060140611406214063140641406514066140671406814069140701407114072140731407414075140761407714078140791408014081140821408314084140851408614087140881408914090140911409214093140941409514096140971409814099141001410114102141031410414105141061410714108141091411014111141121411314114141151411614117141181411914120141211412214123141241412514126141271412814129141301413114132141331413414135141361413714138141391414014141141421414314144141451414614147141481414914150141511415214153141541415514156141571415814159141601416114162141631416414165141661416714168141691417014171141721417314174141751417614177141781417914180141811418214183141841418514186141871418814189141901419114192141931419414195141961419714198141991420014201142021420314204142051420614207142081420914210142111421214213142141421514216142171421814219142201422114222142231422414225142261422714228142291423014231142321423314234142351423614237142381423914240142411424214243142441424514246142471424814249142501425114252142531425414255142561425714258142591426014261142621426314264142651426614267142681426914270142711427214273142741427514276142771427814279142801428114282142831428414285142861428714288142891429014291142921429314294142951429614297142981429914300143011430214303143041430514306143071430814309143101431114312143131431414315143161431714318143191432014321143221432314324143251432614327143281432914330143311433214333143341433514336143371433814339143401434114342143431434414345143461434714348143491435014351143521435314354143551435614357143581435914360143611436214363143641436514366143671436814369143701437114372143731437414375143761437714378143791438014381143821438314384143851438614387143881438914390143911439214393143941439514396143971439814399144001440114402144031440414405144061440714408144091441014411144121441314414144151441614417144181441914420144211442214423144241442514426144271442814429144301443114432144331443414435144361443714438144391444014441144421444314444144451444614447144481444914450144511445214453144541445514456144571445814459144601446114462144631446414465144661446714468144691447014471144721447314474144751447614477144781447914480144811448214483144841448514486144871448814489144901449114492144931449414495144961449714498144991450014501145021450314504145051450614507145081450914510145111451214513145141451514516145171451814519145201452114522145231452414525145261452714528145291453014531145321453314534145351453614537145381453914540145411454214543145441454514546145471454814549145501455114552145531455414555145561455714558145591456014561145621456314564145651456614567145681456914570145711457214573145741457514576145771457814579145801458114582145831458414585145861458714588145891459014591145921459314594145951459614597145981459914600146011460214603146041460514606146071460814609146101461114612146131461414615146161461714618146191462014621146221462314624146251462614627146281462914630146311463214633146341463514636146371463814639146401464114642146431464414645146461464714648146491465014651146521465314654146551465614657146581465914660146611466214663146641466514666146671466814669146701467114672146731467414675146761467714678146791468014681146821468314684146851468614687146881468914690146911469214693146941469514696146971469814699147001470114702147031470414705147061470714708147091471014711147121471314714147151471614717147181471914720147211472214723147241472514726147271472814729147301473114732147331473414735147361473714738147391474014741147421474314744147451474614747147481474914750147511475214753147541475514756147571475814759147601476114762147631476414765147661476714768147691477014771147721477314774147751477614777147781477914780147811478214783147841478514786147871478814789147901479114792147931479414795147961479714798147991480014801148021480314804148051480614807148081480914810148111481214813148141481514816148171481814819148201482114822148231482414825148261482714828148291483014831148321483314834148351483614837148381483914840148411484214843148441484514846148471484814849148501485114852148531485414855148561485714858148591486014861148621486314864148651486614867148681486914870148711487214873148741487514876148771487814879148801488114882148831488414885148861488714888148891489014891148921489314894148951489614897148981489914900149011490214903149041490514906149071490814909149101491114912149131491414915149161491714918149191492014921149221492314924149251492614927149281492914930149311493214933149341493514936149371493814939149401494114942149431494414945149461494714948149491495014951149521495314954149551495614957149581495914960149611496214963149641496514966149671496814969149701497114972149731497414975149761497714978149791498014981149821498314984149851498614987149881498914990149911499214993149941499514996149971499814999150001500115002150031500415005150061500715008150091501015011150121501315014150151501615017150181501915020150211502215023150241502515026150271502815029150301503115032150331503415035150361503715038150391504015041150421504315044150451504615047150481504915050150511505215053150541505515056150571505815059150601506115062150631506415065150661506715068150691507015071150721507315074150751507615077150781507915080150811508215083150841508515086150871508815089150901509115092150931509415095150961509715098150991510015101151021510315104151051510615107151081510915110151111511215113151141511515116151171511815119151201512115122151231512415125151261512715128151291513015131151321513315134151351513615137151381513915140151411514215143151441514515146151471514815149151501515115152151531515415155151561515715158151591516015161151621516315164151651516615167151681516915170151711517215173151741517515176151771517815179151801518115182151831518415185151861518715188151891519015191151921519315194151951519615197151981519915200152011520215203152041520515206152071520815209152101521115212152131521415215152161521715218152191522015221152221522315224152251522615227152281522915230
  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 :gutter="colgutter">
  13. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  14. <el-form-item label="业务员">
  15. <el-input v-model="userform.name"></el-input>
  16. </el-form-item>
  17. </el-col>
  18. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  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 :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  24. <el-form-item label="工号类型">
  25. <el-select v-model="userform.usertype" style="width: 100%;">
  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 :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  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 :gutter="colgutter">
  53. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  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 :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl"
  62. v-for="(domain, index) in attributionform.configure" :key="domain.index">
  63. <el-form-item :label="domain.label" :prop="'configure.' + index + '.value'" :rules="{
  64. required: true,
  65. message: domain.label + '不能为空',
  66. trigger: 'blur',
  67. }">
  68. <el-input v-model="domain.value" :type="domain.type"></el-input>
  69. </el-form-item>
  70. </el-col>
  71. </el-row>
  72. </el-form>
  73. </div>
  74. <div class="Enclosure flex f-c back">
  75. <div class="home flex j-s a-c">
  76. <div class="flex j-s a-c color" id="Car">
  77. <img src="../../../../src/icon/车辆信息.png" alt class="icon-img" />
  78. <span style="margin-left: 10px">车辆信息</span>
  79. </div>
  80. <el-button size="small" type="primary" @click="uploadcardialogVisible = true">
  81. <i class="el-icon-camera-solid" style="margin-right: 1px"></i>
  82. 证件识别
  83. </el-button>
  84. </div>
  85. <el-form class="demo-ruleForm" :model="carInfo" ref="carInfo" :rules="rules" label-width="130px" size="small"
  86. label-position="top" style="margin-top: 15px">
  87. <el-row :gutter="colgutter">
  88. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  89. <el-form-item label="车牌" :prop="licenseplate ? 'licenseNo' : ''">
  90. <div style="display: flex">
  91. <el-input style="width: 75%; margin-right: 13px" v-model="carInfo.licenseNo" placeholder="请输入车牌号"
  92. :disabled="!licenseplate" @blur="getCompanyList">
  93. <el-button slot="append" type="primary" icon="el-icon-search"
  94. @click="toCheckLicenseNo(carInfo.licenseNo)" style="color: #fff;"></el-button>
  95. </el-input>
  96. <el-checkbox v-model="licenseplate">已上牌</el-checkbox>
  97. </div>
  98. </el-form-item>
  99. </el-col>
  100. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  101. <el-form-item label="车辆识别代码" prop="frameNo" class="red-btn">
  102. <el-input placeholder="请输入车辆识别码" v-model="carInfo.frameNo" maxlength="17" type="text" show-word-limit
  103. @blur="getCompanyList">
  104. <el-button slot="append" type="primary" icon="el-icon-search" @click="toChooseVin(carInfo.frameNo)"
  105. style="color: #fff;"></el-button>
  106. </el-input>
  107. </el-form-item>
  108. </el-col>
  109. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  110. <el-form-item label="品牌型号" prop="modelcname" class="red-btn">
  111. <el-input v-model="carInfo.modelcname" placeholder="请输入品牌型号" type="text" @blur="getCompanyList">
  112. <el-button slot="append" icon="el-icon-search" type="primary"
  113. @click="toChooseVehicleType(carInfo.modelcname)" style="color: #fff;"></el-button>
  114. </el-input>
  115. </el-form-item>
  116. </el-col>
  117. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  118. <el-form-item label="发动机号" prop="engineNo">
  119. <el-input v-model="carInfo.engineNo" placeholder="请输入发动机号" @blur="getCompanyList"></el-input>
  120. </el-form-item>
  121. </el-col>
  122. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  123. <el-form-item label="年款" prop="caryear">
  124. <el-input onkeyup="value=value.replace(/\D/g,'')" @blur="getCompanyList" v-model="carInfo.caryear"
  125. placeholder="请输入年款"></el-input>
  126. </el-form-item>
  127. </el-col>
  128. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  129. <el-form-item label="座位数" prop="seatCount">
  130. <el-input onkeyup="value=value.replace(/\D/g,'')" v-model="carInfo.seatCount" placeholder="请输入座位数"
  131. @blur="getCompanyList">
  132. <el-button slot="append">座</el-button>
  133. </el-input>
  134. </el-form-item>
  135. </el-col>
  136. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  137. <el-form-item label="整备质量" prop="completeKerbMass">
  138. <el-input v-model="carInfo.completeKerbMass" placeholder="请输入整备质量" @blur="getCompanyList">
  139. <el-button slot="append">千克(KG)</el-button>
  140. </el-input>
  141. </el-form-item>
  142. </el-col>
  143. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  144. <el-form-item label="核定载质量" prop="limitLoad">
  145. <el-input v-model="carInfo.limitLoad" placeholder="请输入核定载质量">
  146. <el-button slot="append">千克(KG)</el-button>
  147. </el-input>
  148. </el-form-item>
  149. </el-col>
  150. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  151. <el-form-item label="排量" prop="enginedesc">
  152. <el-input v-model="carInfo.enginedesc" placeholder="请输入排量" @blur="getCompanyList">
  153. <el-button slot="append">升(L)</el-button>
  154. </el-input>
  155. </el-form-item>
  156. </el-col>
  157. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  158. <el-form-item label="功率" prop="powerScale">
  159. <el-input v-model="carInfo.powerScale" placeholder="请输入功率" @blur="getCompanyList">
  160. <el-button slot="append">千瓦(KW)</el-button>
  161. </el-input>
  162. </el-form-item>
  163. </el-col>
  164. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  165. <el-form-item label="新车购置价" prop="purchasePrice">
  166. <el-input onkeyup="value=value.replace(/\D/g,'')" v-model="carInfo.purchasePrice" placeholder="请输入新车购置价"
  167. @blur="getCompanyList">
  168. <el-button slot="append">元</el-button>
  169. </el-input>
  170. </el-form-item>
  171. </el-col>
  172. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  173. <el-form-item label="使用性质" prop="carnature">
  174. <el-select v-model="carInfo.carnature" placeholder="请选择使用性质" @change="natureFun" @blur="getCompanyList">
  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 :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  181. <el-form-item label="车辆用途" prop="vehicleUse">
  182. <el-select v-if="carInfo.carnature == '02'" v-model="carInfo.vehicleUse" placeholder="请选择使车辆用途"
  183. @change="vehicleUseChange" @blur="getCompanyList">
  184. <el-option :label="item.dictTag" :value="item.dictValue"
  185. v-for="(item, index) in outOfBusinessVehicleUseoptions" :key="index"></el-option>
  186. </el-select>
  187. <el-select v-if="carInfo.carnature == '01'" v-model="carInfo.vehicleUse" placeholder="请选择使车辆用途"
  188. @blur="getCompanyList">
  189. <el-option :label="item.dictTag" :value="item.dictValue"
  190. v-for="(item, index) in businessVehicleUseoptions" :key="index"></el-option>
  191. </el-select>
  192. </el-form-item>
  193. </el-col>
  194. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  195. <el-form-item label="车辆类型" prop="cartype">
  196. <el-select v-model="carInfo.cartype" placeholder="请选择车辆种类" filterable clearable @blur="getCompanyList">
  197. <el-option :label="item.dictValue + item.dictTag" :value="item.dictValue"
  198. v-for="(item, index) in trafficManagementVehicleTypeoptions" :key="index"></el-option>
  199. </el-select>
  200. </el-form-item>
  201. </el-col>
  202. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  203. <el-form-item label="车辆种类" prop="cimodelclass">
  204. <el-select v-model="carInfo.cimodelclass" placeholder="请选择车辆种类" clearable @blur="getCompanyList">
  205. <el-option :label="item.dictTag" :value="item.dictValue" v-for="(item, index) in vehicleTypeoptions"
  206. :key="index"></el-option>
  207. </el-select>
  208. </el-form-item>
  209. </el-col>
  210. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  211. <el-form-item label="能源种类" prop="energyType">
  212. <el-select v-model="carInfo.energyType" placeholder="请选择能源种类" @blur="getCompanyList">
  213. <el-option :label="item.dictTag" :value="item.dictValue" v-for="(item, index) in energyTypeoptions"
  214. :key="index"></el-option>
  215. </el-select>
  216. </el-form-item>
  217. </el-col>
  218. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  219. <el-form-item label="所属性质 " prop="property">
  220. <el-select v-model="carInfo.property" placeholder="请选择所属性质" @change="getCompanyListProperty">
  221. <el-option :label="item.label" :value="item.value" v-for="(item, index) in propertyoptions" :key="index"
  222. :disabled="propertyDisable(item)"></el-option>
  223. </el-select>
  224. </el-form-item>
  225. </el-col>
  226. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  227. <el-form-item label="注册日期" prop="registerDate" class="red-btn">
  228. <el-date-picker v-dateFormat v-model="carInfo.registerDate" :picker-options="pickerOptions"
  229. @blur="getCompanyList" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date" placeholder="选择注册日期"
  230. placement="bottom-start" @change="(e) => carInfo.registerDate = changeDate(e)"></el-date-picker>
  231. </el-form-item>
  232. </el-col>
  233. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  234. <el-form-item label="发证日期" prop="issueDate" class="red-btn" @blur="getCompanyList">
  235. <el-date-picker v-dateFormat v-model="carInfo.issueDate" :picker-options="issueDateOptions" type="date"
  236. placeholder="选择发证日期" value-format="yyyy-MM-dd" placement="bottom-start"
  237. @change="(e) => carInfo.issueDate = changeDate(e)"></el-date-picker>
  238. </el-form-item>
  239. </el-col>
  240. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl"
  241. v-if="transferDateShow">
  242. <el-form-item label="转移登记日期" prop="transferDate">
  243. <el-date-picker v-dateFormat v-model="carInfo.transferDate" :picker-options="pickerOptions" type="date"
  244. @blur="getCompanyList" placeholder="选择日期" value-format="yyyy-MM-dd" placement="bottom-start"
  245. @change="(e) => carInfo.transferDate = changeDate(e)"></el-date-picker>
  246. </el-form-item>
  247. </el-col>
  248. </el-row>
  249. </el-form>
  250. </div>
  251. <div class="Enclosure flex f-c back">
  252. <div class="home flex j-s a-c">
  253. <div class="flex j-s a-c color" id="CheZhu">
  254. <img src="../../../../src/icon/车主信息.png" alt class="icon-img" />
  255. <span style="margin-left: 10px">车主信息</span>
  256. </div>
  257. <el-button size="small" type="primary" @click="uploaduser(2)">
  258. <i class="el-icon-camera-solid" style="margin-right: 4px"></i>证件识别
  259. </el-button>
  260. </div>
  261. <el-form class="demo-ruleForm" :model="ownerInfo" ref="ownerInfo" :rules="rules" label-width="130px" size="small"
  262. style="margin-top: 15px" label-position="top">
  263. <el-row :gutter="colgutter">
  264. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  265. <el-form-item label="车主姓名" prop="name">
  266. <el-input v-model="ownerInfo.name" placeholder="请输入车主姓名" @blur="getCompanyList"></el-input>
  267. </el-form-item>
  268. </el-col>
  269. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  270. <el-form-item label="车主类型">
  271. <el-select v-model="ownerInfo.property" placeholder="车主类型" @change="propertyTpe('ownerInfo')">
  272. <el-option label="法人" value="0" :disabled="carInfo.property == '1'"></el-option>
  273. <el-option label="个人" value="1" :disabled="carInfo.property == '2'"></el-option>
  274. </el-select>
  275. </el-form-item>
  276. </el-col>
  277. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  278. <el-form-item label="证件类型" prop="identifyType">
  279. <el-select v-model="ownerInfo.identifyType" placeholder="身份证" @blur="getCompanyList" disabled>
  280. <el-option label="身份证" value="01"></el-option>
  281. <el-option label="统一社会信用代码" value="10"></el-option>
  282. </el-select>
  283. </el-form-item>
  284. </el-col>
  285. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl"
  286. v-if="ownerInfo.property == '1'">
  287. <el-form-item label="证件号码" prop="identifyNumber">
  288. <el-input v-model="ownerInfo.identifyNumber" placeholder="请输入证件号码" type="text" maxlength="18"
  289. show-word-limit @blur="identifyblur('ownerInfo'); getCompanyList"></el-input>
  290. </el-form-item>
  291. </el-col>
  292. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl"
  293. v-if="ownerInfo.property == '0'">
  294. <el-form-item label="证件号码" prop="organizationCode">
  295. <el-input v-model="ownerInfo.organizationCode" placeholder="请输入证件号码" type="text" maxlength="18"
  296. show-word-limit @blur="getCompanyList"></el-input>
  297. </el-form-item>
  298. </el-col>
  299. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl"
  300. v-if="ownerInfo.property == '0'">
  301. <el-form-item label="注册资金" prop="registeredCapital">
  302. <el-input v-model="ownerInfo.registeredCapital" placeholder="请输入注册资金" type="text" show-word-limit
  303. @blur="getCompanyList">
  304. <el-button slot="append">万元</el-button>
  305. </el-input>
  306. </el-form-item>
  307. </el-col>
  308. <!-- <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl" v-if="ownerInfo.property=='0'">
  309. <el-form-item label="税务号">
  310. <el-input v-model="ownerInfo.revenueCode" placeholder="请输入税务号" type="text" ></el-input>
  311. </el-form-item>
  312. </el-col> -->
  313. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl"
  314. v-if="ownerInfo.property == '1'">
  315. <el-form-item label="年龄" prop="age">
  316. <el-input v-model="ownerInfo.age" placeholder="请输入年龄" type="text" disabled
  317. @blur="getCompanyList"></el-input>
  318. </el-form-item>
  319. </el-col>
  320. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl"
  321. v-if="ownerInfo.property == '1'">
  322. <el-form-item label="性别" prop="gender">
  323. <el-select @change="genderChange" v-model="ownerInfo.gender" placeholder="请选择性别" @blur="getCompanyList">
  324. <el-option label="男" value="男"></el-option>
  325. <el-option label="女" value="女"></el-option>
  326. </el-select>
  327. </el-form-item>
  328. </el-col>
  329. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  330. <el-form-item label="车主手机号" prop="mobile">
  331. <el-input v-model="ownerInfo.mobile" placeholder="请输入车主手机号" type="text" maxlength="11"
  332. @blur="getCompanyList" @paste.native="handlePaste($event, 'ownerInfo')" show-word-limit></el-input>
  333. </el-form-item>
  334. </el-col>
  335. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl"
  336. v-if="ownerInfo.property == '0'">
  337. <el-form-item label="车主座机" prop="tel">
  338. <el-input v-model="ownerInfo.tel" placeholder="请输入车主座机" type="text" @blur="getCompanyList"
  339. show-word-limit></el-input>
  340. </el-form-item>
  341. </el-col>
  342. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl"
  343. v-if="ownerInfo.property == '0'">
  344. <el-form-item label="车主联系人">
  345. <el-input v-model="ownerInfo.legalPerson" placeholder="请输入车主联系人" type="text" maxlength="5"
  346. @blur="getCompanyList"></el-input>
  347. </el-form-item>
  348. </el-col>
  349. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl"
  350. v-if="ownerInfo.property == '0'">
  351. <el-form-item label="联系人证件号码">
  352. <el-input v-model="ownerInfo.leaderIdentifyNumber" placeholder="请输入车主证件号码" type="text" maxlength="18"
  353. @blur="getCompanyList"></el-input>
  354. </el-form-item>
  355. </el-col>
  356. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl"
  357. v-if="ownerInfo.property == '0'">
  358. <el-form-item label="联系人有效期止期" prop="leaderOtherEffectiveDate" class="red-btn">
  359. <el-date-picker v-dateFormat v-model="ownerInfo.leaderOtherEffectiveDate" type="date"
  360. value-format="yyyy-MM-dd" @blur="getCompanyList" placeholder="选择有效期止期" placement="bottom-start"
  361. style="width: calc(100% - 40px)"
  362. @change="(e) => ownerInfo.leaderOtherEffectiveDate = changeDate(e)"></el-date-picker>
  363. </el-form-item>
  364. </el-col>
  365. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl"
  366. v-if="ownerInfo.property == '0'">
  367. <el-form-item label="省市区">
  368. <el-cascader v-model="selectedOptions1" :options="areaOption"
  369. :props="{ value: 'code', label: 'name', children: 'sub' }"
  370. @change="event => areahandleChange(event, 'ownerInfo')"></el-cascader>
  371. </el-form-item>
  372. </el-col>
  373. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  374. <el-form-item label="地址" prop="addr">
  375. <el-input v-model="ownerInfo.addr" placeholder="请输入地址" type="text" @blur="getCompanyList"></el-input>
  376. </el-form-item>
  377. </el-col>
  378. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  379. <el-form-item label="有效期起期" prop="identifyValidDate">
  380. <el-date-picker v-dateFormat v-model="ownerInfo.identifyValidDate" value-format="yyyy-MM-dd"
  381. @blur="getCompanyList" :picker-options="pickerOptions" type="date" placeholder="选择有效期起期"
  382. placement="bottom-start" @change="(e) => ownerInfo.identifyValidDate = changeDate(e)"></el-date-picker>
  383. </el-form-item>
  384. </el-col>
  385. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  386. <el-form-item label="有效期止期" prop="identifyValidEndDate" class="red-btn">
  387. <el-date-picker v-dateFormat v-model="ownerInfo.identifyValidEndDate" type="date"
  388. value-format="yyyy-MM-dd" @blur="getCompanyList" placeholder="选择有效期止期" placement="bottom-start"
  389. style="width: calc(100% - 40px)"
  390. @change="(e) => ownerInfo.identifyValidEndDate = changeDate(e)"></el-date-picker>
  391. <div class="insure-long-term" @click="insureLongterm('ownerInfo')">
  392. 长期
  393. </div>
  394. </el-form-item>
  395. </el-col>
  396. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  397. <el-form-item label="电子邮箱" prop="email">
  398. <el-input v-model="ownerInfo.email" placeholder="请输入电子邮箱"></el-input>
  399. </el-form-item>
  400. </el-col>
  401. </el-row>
  402. </el-form>
  403. </div>
  404. <div class="Enclosure flex f-c back">
  405. <div class="home flex j-s a-c">
  406. <div class="flex j-s a-c" id="toubaor">
  407. <img src="../../../../src/icon/投保人信息.png" alt class="icon-img" />
  408. <span style="margin-left: 10px">投保人信息</span>
  409. </div>
  410. <div class="flex a-c j-c">
  411. <div style="font-size: 12px; margin: 0 10px">
  412. 同车主
  413. <el-switch v-model="tbczcarShow" active-color="#D42426" @change="tbczcarShowChange()"></el-switch>
  414. </div>
  415. <el-button size="small" type="primary" @click="uploaduser(3)">
  416. <i class="el-icon-camera-solid" style="margin-right: 4px"></i>
  417. 证件识别
  418. </el-button>
  419. </div>
  420. </div>
  421. <el-form v-show="!tbczcarShow" class="demo-ruleForm" :model="policyHolderInfo" ref="policyHolderInfo"
  422. :rules="rules" label-width="130px" size="small " style="margin-top: 15px" label-position="top">
  423. <el-row :gutter="colgutter">
  424. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  425. <el-form-item label="投保人姓名" prop="name">
  426. <el-input v-model="policyHolderInfo.name" placeholder="请输入投保人姓名" @blur="getCompanyList"></el-input>
  427. </el-form-item>
  428. </el-col>
  429. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  430. <el-form-item label="投保人类型" prop="property">
  431. <el-select v-model="policyHolderInfo.property" placeholder="投保人类型"
  432. @change="propertyTpe('policyHolderInfo')">
  433. <el-option label="个人" value="1"></el-option>
  434. <el-option label="法人" value="0"></el-option>
  435. </el-select>
  436. </el-form-item>
  437. </el-col>
  438. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  439. <el-form-item label="证件类型" prop="identifyType">
  440. <el-select v-model="policyHolderInfo.identifyType" placeholder="身份证" disabled @blur="getCompanyList">
  441. <el-option label="身份证" value="01"></el-option>
  442. <el-option label="统一社会信用代码" value="10"></el-option>
  443. </el-select>
  444. </el-form-item>
  445. </el-col>
  446. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl"
  447. v-if="policyHolderInfo.property == '0'">
  448. <el-form-item label="证件号码" prop="organizationCode">
  449. <el-input v-model="policyHolderInfo.organizationCode" placeholder="请输入证件号码" type="text" maxlength="18"
  450. show-word-limit @blur="getCompanyList"></el-input>
  451. </el-form-item>
  452. </el-col>
  453. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl"
  454. v-if="policyHolderInfo.property == '1'">
  455. <el-form-item label="证件号码" prop="identifyNumber">
  456. <el-input v-model="policyHolderInfo.identifyNumber" placeholder="请输入证件号码" type="text" maxlength="18"
  457. show-word-limit @blur="identifyblur('policyHolderInfo'); getCompanyList"></el-input>
  458. </el-form-item>
  459. </el-col>
  460. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl"
  461. v-if="policyHolderInfo.property == '0'">
  462. <el-form-item label="注册资金" prop="registeredCapital">
  463. <el-input v-model="policyHolderInfo.registeredCapital" placeholder="请输入注册资金" type="text" show-word-limit
  464. @blur="getCompanyList">
  465. <el-button slot="append">万元</el-button>
  466. </el-input>
  467. </el-form-item>
  468. </el-col>
  469. <!-- <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl" v-if="ownerInfo.property=='0'">
  470. <el-form-item label="税务号">
  471. <el-input v-model="policyHolderInfo.revenueCode" placeholder="请输入税务号" type="text" ></el-input>
  472. </el-form-item>
  473. </el-col> -->
  474. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl"
  475. v-if="policyHolderInfo.property == '1'">
  476. <el-form-item label="年龄" prop="age">
  477. <el-input v-model="policyHolderInfo.age" placeholder="请输入年龄" type="text" disabled
  478. @blur="getCompanyList"></el-input>
  479. </el-form-item>
  480. </el-col>
  481. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl"
  482. v-if="policyHolderInfo.property == '1'">
  483. <el-form-item label="性别" prop="gender">
  484. <el-select v-model="policyHolderInfo.gender" placeholder="请选择性别" @blur="getCompanyList">
  485. <el-option label="男" value="男"></el-option>
  486. <el-option label="女" value="女"></el-option>
  487. </el-select>
  488. </el-form-item>
  489. </el-col>
  490. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  491. <el-form-item label="投保人手机号" prop="mobile">
  492. <el-input v-model="policyHolderInfo.mobile" placeholder="请输入投保人手机号" maxlength="11" type="text"
  493. @blur="getCompanyList" @paste.native="handlePaste($event, 'policyHolderInfo')"
  494. show-word-limit></el-input>
  495. </el-form-item>
  496. </el-col>
  497. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl"
  498. v-if="policyHolderInfo.property == '0'">
  499. <el-form-item label="投保人座机" prop="tel">
  500. <el-input v-model="policyHolderInfo.tel" placeholder="请输入投保人座机" type="text" @blur="getCompanyList"
  501. show-word-limit></el-input>
  502. </el-form-item>
  503. </el-col>
  504. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl"
  505. v-if="policyHolderInfo.property == '0'">
  506. <el-form-item label="投保人联系人">
  507. <el-input v-model="policyHolderInfo.legalPerson" placeholder="请输入投保人联系人" type="text"
  508. maxlength="5"></el-input>
  509. </el-form-item>
  510. </el-col>
  511. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl"
  512. v-if="policyHolderInfo.property == '0'">
  513. <el-form-item label="联系人证件号码">
  514. <el-input v-model="policyHolderInfo.leaderIdentifyNumber" placeholder="请输入车主证件号码" type="text"
  515. maxlength="18" @blur="getCompanyList"></el-input>
  516. </el-form-item>
  517. </el-col>
  518. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl"
  519. v-if="policyHolderInfo.property == '0'">
  520. <el-form-item label="联系人有效期止期" prop="leaderOtherEffectiveDate" class="red-btn">
  521. <el-date-picker v-dateFormat v-model="policyHolderInfo.leaderOtherEffectiveDate" type="date"
  522. value-format="yyyy-MM-dd" @blur="getCompanyList" placeholder="选择有效期止期" placement="bottom-start"
  523. style="width: calc(100% - 40px)"
  524. @change="(e) => policyHolderInfo.leaderOtherEffectiveDatee = changeDate(e)"></el-date-picker>
  525. </el-form-item>
  526. </el-col>
  527. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl"
  528. v-if="policyHolderInfo.property == '0'">
  529. <el-form-item label="省市区">
  530. <el-cascader v-model="selectedOptions2" :options="areaOption"
  531. :props="{ value: 'code', label: 'name', children: 'sub' }"
  532. @change="event => areahandleChange(event, 'policyHolderInfo')"></el-cascader>
  533. </el-form-item>
  534. </el-col>
  535. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  536. <el-form-item label="地址" prop="addr">
  537. <el-input v-model="policyHolderInfo.addr" placeholder="请输入地址" type="text"
  538. @blur="getCompanyList"></el-input>
  539. </el-form-item>
  540. </el-col>
  541. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  542. <el-form-item label="有效期起期" prop="identifyValidDate">
  543. <el-date-picker v-dateFormat v-model="policyHolderInfo.identifyValidDate" value-format="yyyy-MM-dd"
  544. @blur="getCompanyList" :picker-options="pickerOptions" type="date" placeholder="选择有效期起期"
  545. placement="bottom-start"
  546. @change="(e) => policyHolderInfo.identifyValidDate = changeDate(e)"></el-date-picker>
  547. </el-form-item>
  548. </el-col>
  549. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  550. <el-form-item label="有效期止期" prop="identifyValidEndDate">
  551. <el-date-picker v-dateFormat v-model="policyHolderInfo.identifyValidEndDate" type="date"
  552. @blur="getCompanyList" value-format="yyyy-MM-dd" placeholder="选择有效期止期" placement="bottom-start"
  553. style="width: calc(100% - 40px)"
  554. @change="(e) => policyHolderInfo.identifyValidEndDate = changeDate(e)"></el-date-picker>
  555. <div class="insure-long-term" @click="insureLongterm('policyHolderInfo')">
  556. 长期
  557. </div>
  558. </el-form-item>
  559. </el-col>
  560. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  561. <el-form-item label="电子邮箱" prop="email">
  562. <el-input v-model="policyHolderInfo.email" placeholder="请输入电子邮箱"></el-input>
  563. </el-form-item>
  564. </el-col>
  565. <!-- <el-col :xs="xscell" :sm="smcell" :md="mdcell" :lg="lgcell" :xl="xlcell" v-if="isApplicantShow">
  566. <el-form-item label="省市区:">
  567. <el-cascader v-model="policyHolderInfo.provinceData" :options="areaOption" :props="{ value: 'code',label: 'name',children: 'sub'}"></el-cascader>
  568. </el-form-item>
  569. </el-col>-->
  570. </el-row>
  571. </el-form>
  572. </div>
  573. <!-- 被保人信息 -->
  574. <div class="Enclosure flex f-c back">
  575. <div class="home flex j-s a-c">
  576. <div class="flex j-s a-c" id="beitoubaoren">
  577. <img src="../../../../src/icon/被投保人信息.png" alt class="icon-img" />
  578. <span style="margin-left: 10px">被保人信息</span>
  579. </div>
  580. <div class="flex j-s a-c">
  581. <div style="font-size: 12px; margin: 0 10px" v-show="!bbtbcarShow && !bbczcarShow">
  582. <el-button size="small" type="primary" @click="clearBbxx">清空被保人信息</el-button>
  583. </div>
  584. <div style="font-size: 12px; margin: 0 10px">
  585. 同投保人
  586. <el-switch v-model="bbtbcarShow" active-color="#D42426" @change="bbtbcarShowChange()"></el-switch>
  587. </div>
  588. <div style="font-size: 12px; margin: 0 10px">
  589. 同车主
  590. <el-switch v-model="bbczcarShow" active-color="#D42426" @change="bbczcarShowChange()"></el-switch>
  591. </div>
  592. <el-button size="small" type="primary" @click="uploaduser(4)">
  593. <i class="el-icon-camera-solid" style="margin-right: 4px"></i>
  594. 证件识别
  595. </el-button>
  596. </div>
  597. </div>
  598. <el-form v-show="!bbtbcarShow && !bbczcarShow" class="demo-ruleForm" :model="insuredPersonInfo"
  599. ref="insuredPersonInfo" :rules="rules" label-width="130px" size="small" style="margin-top: 15px"
  600. label-position="top">
  601. <el-row :gutter="colgutter">
  602. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  603. <el-form-item label="被保人姓名" prop="name">
  604. <el-input v-model="insuredPersonInfo.name" placeholder="请输入被保人姓名" @blur="getCompanyList"></el-input>
  605. </el-form-item>
  606. </el-col>
  607. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  608. <el-form-item label="被保人类型" prop="property">
  609. <el-select v-model="insuredPersonInfo.property" placeholder="被保人类型"
  610. @change="propertyTpe('insuredPersonInfo')">
  611. <el-option label="个人" value="1"></el-option>
  612. <el-option label="法人" value="0"></el-option>
  613. </el-select>
  614. </el-form-item>
  615. </el-col>
  616. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  617. <el-form-item label="证件类型" prop="identifyType">
  618. <el-select v-model="insuredPersonInfo.identifyType" placeholder="身份证" disabled @blur="getCompanyList">
  619. <el-option label="身份证" value="01"></el-option>
  620. <el-option label="统一社会信用代码" value="10"></el-option>
  621. </el-select>
  622. </el-form-item>
  623. </el-col>
  624. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl"
  625. v-if="insuredPersonInfo.property == '1'">
  626. <el-form-item label="证件号码" prop="identifyNumber">
  627. <el-input v-model="insuredPersonInfo.identifyNumber" placeholder="请输入证件号码" type="text" maxlength="18"
  628. show-word-limit @blur="identifyblur('insuredPersonInfo'); getCompanyList"></el-input>
  629. </el-form-item>
  630. </el-col>
  631. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl"
  632. v-if="insuredPersonInfo.property == '0'">
  633. <el-form-item label="证件号码" prop="organizationCode">
  634. <el-input v-model="insuredPersonInfo.organizationCode" placeholder="请输入证件号码" type="text" maxlength="18"
  635. show-word-limit @blur="getCompanyList"></el-input>
  636. </el-form-item>
  637. </el-col>
  638. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl"
  639. v-if="insuredPersonInfo.property == '0'">
  640. <el-form-item label="注册资金" prop="registeredCapital">
  641. <el-input v-model="insuredPersonInfo.registeredCapital" placeholder="请输入注册资金" type="text" show-word-limit
  642. @blur="getCompanyList">
  643. <el-button slot="append">万元</el-button>
  644. </el-input>
  645. </el-form-item>
  646. </el-col>
  647. <!-- <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl" v-if="ownerInfo.property=='0'">
  648. <el-form-item label="税务号">
  649. <el-input v-model="insuredPersonInfo.revenueCode" placeholder="请输入税务号" type="text" ></el-input>
  650. </el-form-item>
  651. </el-col> -->
  652. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl"
  653. v-if="insuredPersonInfo.property == '1'">
  654. <el-form-item label="年龄" prop="age">
  655. <el-input v-model="insuredPersonInfo.age" placeholder="请输入年龄" type="text" disabled
  656. @blur="getCompanyList"></el-input>
  657. </el-form-item>
  658. </el-col>
  659. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl"
  660. v-if="insuredPersonInfo.property == '1'">
  661. <el-form-item label="性别" prop="gender">
  662. <el-select v-model="insuredPersonInfo.gender" placeholder="请选择性别" @blur="getCompanyList">
  663. <el-option label="男" value="男"></el-option>
  664. <el-option label="女" value="女"></el-option>
  665. </el-select>
  666. </el-form-item>
  667. </el-col>
  668. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  669. <el-form-item label="被保人手机号" prop="mobile">
  670. <el-input v-model="insuredPersonInfo.mobile" placeholder="请输入被保人手机号" maxlength="11" type="text"
  671. @blur="getCompanyList" @paste.native="handlePaste($event, 'insuredPersonInfo')"
  672. show-word-limit></el-input>
  673. </el-form-item>
  674. </el-col>
  675. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl"
  676. v-if="insuredPersonInfo.property == '0'">
  677. <el-form-item label="被保人座机" prop="tel">
  678. <el-input v-model="insuredPersonInfo.tel" placeholder="请输入被保人座机" type="text" @blur="getCompanyList"
  679. show-word-limit></el-input>
  680. </el-form-item>
  681. </el-col>
  682. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl"
  683. v-if="insuredPersonInfo.property == '0'">
  684. <el-form-item label="被保人联系人">
  685. <el-input v-model="insuredPersonInfo.legalPerson" placeholder="请输入被保人联系人" type="text"
  686. maxlength="5"></el-input>
  687. </el-form-item>
  688. </el-col>
  689. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl"
  690. v-if="insuredPersonInfo.property == '0'">
  691. <el-form-item label="联系人证件号码">
  692. <el-input v-model="insuredPersonInfo.leaderIdentifyNumber" placeholder="请输入车主证件号码" type="text"
  693. maxlength="18" @blur="getCompanyList"></el-input>
  694. </el-form-item>
  695. </el-col>
  696. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl"
  697. v-if="insuredPersonInfo.property == '0'">
  698. <el-form-item label="联系人有效期止期" prop="leaderOtherEffectiveDate" class="red-btn">
  699. <el-date-picker v-dateFormat v-model="insuredPersonInfo.leaderOtherEffectiveDate" type="date"
  700. value-format="yyyy-MM-dd" @blur="getCompanyList" placeholder="选择有效期止期" placement="bottom-start"
  701. style="width: calc(100% - 40px)"
  702. @change="(e) => insuredPersonInfo.leaderOtherEffectiveDate = changeDate(e)"></el-date-picker>
  703. </el-form-item>
  704. </el-col>
  705. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl"
  706. v-if="insuredPersonInfo.property == '0'">
  707. <el-form-item label="省市区">
  708. <el-cascader v-model="selectedOptions3" :options="areaOption"
  709. :props="{ value: 'code', label: 'name', children: 'sub' }"
  710. @change="event => areahandleChange(event, 'insuredPersonInfo')"></el-cascader>
  711. </el-form-item>
  712. </el-col>
  713. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  714. <el-form-item label="地址" prop="addr">
  715. <el-input v-model="insuredPersonInfo.addr" placeholder="请输入地址" type="text"
  716. @blur="getCompanyList"></el-input>
  717. </el-form-item>
  718. </el-col>
  719. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  720. <el-form-item label="有效期起期" prop="identifyValidDate">
  721. <el-date-picker v-dateFormat v-model="insuredPersonInfo.identifyValidDate" value-format="yyyy-MM-dd"
  722. @blur="getCompanyList" :picker-options="pickerOptions" type="date" placeholder="选择有效期起期"
  723. placement="bottom-start"
  724. @change="(e) => insuredPersonInfo.identifyValidDate = changeDate(e)"></el-date-picker>
  725. </el-form-item>
  726. </el-col>
  727. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  728. <el-form-item label="有效期止期" prop="identifyValidEndDate">
  729. <el-date-picker v-dateFormat v-model="insuredPersonInfo.identifyValidEndDate" type="date"
  730. @blur="getCompanyList" value-format="yyyy-MM-dd" placeholder="选择有效期止期" placement="bottom-start"
  731. style="width: calc(100% - 40px)"
  732. @change="(e) => insuredPersonInfo.identifyValidEndDate = changeDate(e)"></el-date-picker>
  733. <div class="insure-long-term" @click="insureLongterm('insuredPersonInfo')">
  734. 长期
  735. </div>
  736. </el-form-item>
  737. </el-col>
  738. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  739. <el-form-item label="电子邮箱" prop="email">
  740. <el-input v-model="insuredPersonInfo.email" placeholder="请输入电子邮箱"></el-input>
  741. </el-form-item>
  742. </el-col>
  743. <!-- <el-col :xs="xscell" :sm="smcell" :md="mdcell" :lg="lgcell" :xl="xlcell" v-if="isInsuredShow">
  744. <el-form-item label="省市区:">
  745. <el-cascader v-model="insuredPersonInfo.provinceData" :options="areaOption" :props="{ value: 'code',label: 'name',children: 'sub'}"></el-cascader>
  746. </el-form-item>
  747. </el-col>-->
  748. </el-row>
  749. </el-form>
  750. </div>
  751. <!-- 车船税 -->
  752. <div class="Enclosure flex f-c back">
  753. <div class="home flex j-s a-c">
  754. <div class="flex j-s a-c color" id="insurance">
  755. <img src="../../../../src/icon/车船税.png" alt class="icon-img" />
  756. <span style="margin-left: 10px">车船税</span>
  757. </div>
  758. </div>
  759. <el-form class="demo-ruleForm" :model="vehicleAndVesselTaxForm" ref="vehicleAndVesselTaxForm" :rules="rules"
  760. label-width="160px" size="small" style="margin-top: 15px" label-position="top">
  761. <el-row :gutter="colgutter">
  762. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  763. <el-form-item label="纳税类型:" prop="taxRelifFlag">
  764. <el-select @change="taxRelifFlagChange" v-model="vehicleAndVesselTaxForm.taxRelifFlag" placeholder="纳税类型">
  765. <el-option v-for="(item, index) in taxRelifFlagoptions" :key="index" :label="item.dictTag"
  766. :value="item.dictValue"></el-option>
  767. </el-select>
  768. </el-form-item>
  769. </el-col>
  770. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 1 && policyHolderInfo.property == '1'"
  771. :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  772. <el-form-item label="纳税人识别号:" prop="identifyNumber">
  773. <el-input v-model="vehicleAndVesselTaxForm.identifyNumber" placeholder="请输入纳税人识别号" type="text"></el-input>
  774. </el-form-item>
  775. </el-col>
  776. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 1 && policyHolderInfo.property == '0'"
  777. :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  778. <el-form-item label="纳税人识别号:" prop="organizationCode">
  779. <el-input v-model="vehicleAndVesselTaxForm.organizationCode" placeholder="请输入纳税人识别号"
  780. type="text"></el-input>
  781. </el-form-item>
  782. </el-col>
  783. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 1" :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md"
  784. :lg="colSpan.lg" :xl="colSpan.xl">
  785. <el-form-item label="纳税人名称:" prop="taxpayerName">
  786. <el-input v-model="vehicleAndVesselTaxForm.taxpayerName" placeholder="请输入纳税人名称" type="text"></el-input>
  787. </el-form-item>
  788. </el-col>
  789. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 1" :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md"
  790. :lg="colSpan.lg" :xl="colSpan.xl">
  791. <el-form-item label="证件类型:" prop="taxpayerIdentifier">
  792. <el-select v-model="vehicleAndVesselTaxForm.taxpayerIdentifier" placeholder="证件类型" clearable>
  793. <el-option v-for="(item, index) in taxpayerIdentifieroptions" :key="index" :label="item.dictTag"
  794. :value="item.dictValue"></el-option>
  795. </el-select>
  796. </el-form-item>
  797. </el-col>
  798. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 2 ||
  799. vehicleAndVesselTaxForm.taxRelifFlag == 3
  800. " :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  801. <el-form-item label="减免税凭证号:" prop="extendChar2">
  802. <el-input v-model="vehicleAndVesselTaxForm.extendChar2" placeholder="请输入减免税凭证号" type="text"></el-input>
  803. </el-form-item>
  804. </el-col>
  805. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 4" :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md"
  806. :lg="colSpan.lg" :xl="colSpan.xl">
  807. <el-form-item label="完税凭证号:" prop="paidFreeCertificate">
  808. <el-input v-model="vehicleAndVesselTaxForm.paidFreeCertificate" placeholder="请输入完税凭证号"
  809. type="text"></el-input>
  810. </el-form-item>
  811. </el-col>
  812. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 2 ||
  813. vehicleAndVesselTaxForm.taxRelifFlag == 3
  814. " :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  815. <el-form-item label="减免税原因:" prop="relifReason">
  816. <el-select v-model="vehicleAndVesselTaxForm.relifReason" placeholder="减免税原因" clearable>
  817. <el-option v-for="(item, index) in relifReasonoptions" :key="index" :label="item.dictTag"
  818. :value="item.dictValue"></el-option>
  819. </el-select>
  820. </el-form-item>
  821. </el-col>
  822. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag != 1" :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md"
  823. :lg="colSpan.lg" :xl="colSpan.xl">
  824. <el-form-item label="税务机关代码:" prop="taxComCode">
  825. <el-input v-model="vehicleAndVesselTaxForm.taxComCode" placeholder="请输入税务机关代码" type="text"></el-input>
  826. </el-form-item>
  827. </el-col>
  828. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag != 1" :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md"
  829. :lg="colSpan.lg" :xl="colSpan.xl">
  830. <el-form-item label="税务机关名称:" prop="taxComName">
  831. <el-input v-model="vehicleAndVesselTaxForm.taxComName" placeholder="请输入税务机关名称" type="text"></el-input>
  832. </el-form-item>
  833. </el-col>
  834. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 4" :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md"
  835. :lg="colSpan.lg" :xl="colSpan.xl">
  836. <el-form-item label="完税凭证填发日期:" prop="taxDocumentDate">
  837. <el-date-picker v-model="vehicleAndVesselTaxForm.taxDocumentDate" value-format="yyyy-MM-dd" type="date"
  838. placeholder="完税凭证填发日期" placement="bottom-start"
  839. @change="(e) => vehicleAndVesselTaxForm.taxDocumentDate = changeDate(e)"></el-date-picker>
  840. </el-form-item>
  841. </el-col>
  842. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 4" :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md"
  843. :lg="colSpan.lg" :xl="colSpan.xl">
  844. <el-form-item label="完税凭证地区:" prop="taxPaidAreaCode">
  845. <el-select v-model="vehicleAndVesselTaxForm.taxPaidAreaCode" placeholder="完税凭证地区" clearable>
  846. <el-option v-for="(item, index) in provinceSelect" :key="index" :label="item.name"
  847. :value="item.code"></el-option>
  848. </el-select>
  849. </el-form-item>
  850. </el-col>
  851. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 3" :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md"
  852. :lg="colSpan.lg" :xl="colSpan.xl">
  853. <el-form-item label="减税比例:" prop="taxRelief">
  854. <el-input v-model="vehicleAndVesselTaxForm.taxRelief" placeholder="请输入0~1的数值" type="text"></el-input>
  855. </el-form-item>
  856. </el-col>
  857. </el-row>
  858. </el-form>
  859. </div>
  860. <!-- 险别选择 -->
  861. <div class="Enclosure flex f-c back xianbie">
  862. <div class="home flex j-s a-c back">
  863. <div class="flex j-s a-c" id="more">
  864. <img src="../../../../src/icon/险别选择.png" alt class="icon-img" />
  865. <span style="margin-left: 15px; width: 120px">险种选择</span>
  866. <!-- <el-select size="small" style="width: 70%" v-model="packageValue" placeholder="请选择套餐" @change="packageChange">
  867. <el-option v-for="item in packageOptions" :key="item.id" :label="item.title" :value="item.id"></el-option>
  868. </el-select> -->
  869. <el-radio-group v-model="productId" @change="productIdChange">
  870. <el-radio v-for="(item, index) in productList" :key="index" :label="item.code">{{ item.desc }}</el-radio>
  871. </el-radio-group>
  872. </div>
  873. </div>
  874. <!-- <div class="flex f-c more">
  875. <div class="flex j-s a-c more-title back">
  876. <div style="width: 590px; padding-left: 100px" class="flex j-s a-c">
  877. <span>险别</span>
  878. <span>保额(元)</span>
  879. </div>
  880. </div>
  881. <div class="flex a-c more-data back" v-for="(insureitem, insureindex) in insureList" :key="insureindex">
  882. <div style="width: 700px; padding-left: 100px" class="flex j-s a-c">
  883. <div style="width: auto">
  884. <span style="text-align: center">
  885. {{ insureitem.kindName }}
  886. <el-input v-show="insureitem.kindCode == 'D4' ||
  887. insureitem.kindCode == 'MJ4' ||
  888. insureitem.kindCode == 'SY_FJ_YBW2'
  889. " v-model="sumseatCount" style="width: 40px; margin: 0 5px" size="small" placeholder
  890. disabled></el-input>
  891. <span v-show="insureitem.kindCode == 'D4' ||
  892. insureitem.kindCode == 'MJ4' ||
  893. insureitem.kindCode == 'SY_FJ_YBW2'
  894. ">座</span>
  895. </span>
  896. </div>
  897. <el-select v-if="insureitem.amtList" filterable v-model="insureitem.amount" placeholder="请选择"
  898. @change="insureitemChange($event, insureitem)" size="small" style="width: 300px">
  899. <el-option :label="item.label" :value="item.value" v-for="(item, index) in insureitem.amtList"
  900. :key="index"></el-option>
  901. </el-select>
  902. <span v-else>
  903. <el-input-number size="small" style="width: 280px; margin-right: 10px" v-model="insureitem.amount"
  904. :min="0"></el-input-number>次
  905. </span>
  906. </div>
  907. </div>
  908. </div> -->
  909. </div>
  910. <!-- 投保信息 -->
  911. <div class="Enclosure flex f-c back">
  912. <div class="home flex j-s a-c">
  913. <div class="flex j-s a-c color" id="insurance">
  914. <img src="../../../../src/icon/投保信息.png" alt class="icon-img" />
  915. <span style="margin-left: 10px">投保信息</span>
  916. <el-switch style="margin: 0 10px 0 30px" @change="immediatelyChange" v-model="immediatelyValue"
  917. active-color="#D42426"></el-switch>
  918. <span style="font-weight: normal; font-size: 13px">即时投保</span>
  919. </div>
  920. </div>
  921. <el-form class="back demo-ruleForm" :inline="true" :model="Carinsurance" label-width="150px" size="small"
  922. style="margin-top: 15px" label-position="top">
  923. <div class="flex j-start a-c">
  924. <div class="flex j-c a-start">
  925. <el-checkbox class="checkbox" style="margin-right: 20px" v-model="jqchecked" disabled></el-checkbox>
  926. <div class="flex f-c a-c">
  927. <el-form-item label="交强险起保日期" prop="identifyNumber" class="red-btn">
  928. <el-date-picker value-format="yyyy-MM-dd HH:mm:ss" v-model="jqstartDate" @change="jqChange"
  929. type="datetime" placeholder="选择日期时间" placement="bottom-start"></el-date-picker>
  930. </el-form-item>
  931. <el-form-item label="交强险终保日期" prop="identifyNumber" class="red-btn">
  932. <el-date-picker value-format="yyyy-MM-dd HH:mm:ss" v-model="jqendDate" type="datetime"
  933. placeholder="选择日期时间" placement="bottom-start"
  934. @change="(e) => jqendDate = quotechangeDate(e)"></el-date-picker>
  935. </el-form-item>
  936. </div>
  937. </div>
  938. <div class="synchronous" style="margin: 0 50px" @click="synchronization">
  939. <img src="@/icon/Union2.png">
  940. <div>同步</div>
  941. </div>
  942. <div class="flex j-c a-start">
  943. <el-checkbox class="checkbox" style="margin-right: 20px" v-model="sychecked" disabled
  944. @change="sycheckedChange"></el-checkbox>
  945. <div class="flex f-c a-c">
  946. <el-form-item label="商业险起保日期" prop="name" class="red-btn">
  947. <el-date-picker value-format="yyyy-MM-dd HH:mm:ss" v-model="systartDate" @change="syChange"
  948. type="datetime" placeholder="选择日期时间" placement="bottom-start"></el-date-picker>
  949. </el-form-item>
  950. <el-form-item label="商业险终保日期" prop="name" class="red-btn">
  951. <el-date-picker value-format="yyyy-MM-dd HH:mm:ss" v-model="syendDate" type="datetime"
  952. placeholder="选择日期时间" placement="bottom-start"
  953. @change="(e) => syendDate = quotechangeDate(e)"></el-date-picker>
  954. </el-form-item>
  955. </div>
  956. </div>
  957. </div>
  958. </el-form>
  959. </div>
  960. <!-- 保险公司 -->
  961. <div class="Enclosure flex f-c back">
  962. <div class="home flex j-s">
  963. <div class="flex j-s a-c" id="company">
  964. <img src="../../../../src/icon/保险公司.png" alt class="icon-img" />
  965. <span style="margin-left: 10px">保险公司</span>
  966. <div class="csstool">
  967. <span>是否过户车</span>
  968. <el-switch @change="transferFlagChange" v-model="carInfo.transferFlag" active-color="#D42426"></el-switch>
  969. </div>
  970. <div class="csstool">
  971. <span>商业险是否过户</span>
  972. <el-switch v-model="carInfo.transferFlagBi" active-color="#D42426"></el-switch>
  973. </div>
  974. <div class="csstool">
  975. <span>是否脱保</span>
  976. <el-switch v-model="carInfo.outOfInsurance" active-color="#D42426"></el-switch>
  977. </div>
  978. <div class="csstool">
  979. <span>是否二手车</span>
  980. <el-switch v-model="carInfo.usedCar" active-color="#D42426"></el-switch>
  981. </div>
  982. </div>
  983. <div class="flex j-c a-c">
  984. <el-button v-show="imageUploadShow" size="small" type="primary" @click="imageUpload()">
  985. <i class="el-icon-camera-solid" style="margin-right: 4px"></i>
  986. 影像上传
  987. </el-button>
  988. </div>
  989. </div>
  990. <div>
  991. <!-- <div class="companyhead">
  992. <el-row>
  993. <el-col :span="1">
  994. <span style="font-size: 14px">选择</span>
  995. </el-col>
  996. <el-col :span="2" style="margin: 0 42px 0 35px">
  997. <span>保险公司</span>
  998. </el-col>
  999. <el-col :span="3">
  1000. <span>报价协议</span>
  1001. </el-col>
  1002. <el-col :span="3" v-if="isLetter !== '3'">
  1003. <span>报价结果</span>
  1004. </el-col>
  1005. <el-col :span="3">
  1006. <span>交强险</span>
  1007. </el-col>
  1008. <el-col :span="3">
  1009. <span>车船税</span>
  1010. </el-col>
  1011. <el-col :span="3">
  1012. <span>商业险</span>
  1013. </el-col>
  1014. <el-col :span="2">
  1015. <span>驾意险</span>
  1016. </el-col>
  1017. <el-col :span="2">
  1018. <span>操作</span>
  1019. </el-col>
  1020. </el-row>
  1021. </div>
  1022. -->
  1023. <div class="coll">
  1024. <div v-loading="showLoading" class="hovers" :class="reslistitem.checked ? 'border-red' : 'border-blue'"
  1025. v-for="(reslistitem, reslistindex) in totalCompanyList" :key="reslistindex">
  1026. <el-row v-show="reslistitem.checked || reslistindex == 0" class="companyhead" style="margin-bottom: 20px;">
  1027. <el-col :span="1">
  1028. <span style="font-size: 14px">选择</span>
  1029. </el-col>
  1030. <el-col :span="2" style="margin: 0 42px 0 35px">
  1031. <span>保险公司</span>
  1032. </el-col>
  1033. <el-col :span="3">
  1034. <span>报价协议</span>
  1035. </el-col>
  1036. <el-col :span="3" v-if="isLetter !== '3'">
  1037. <span>报价结果</span>
  1038. </el-col>
  1039. <el-col :span="3">
  1040. <span>交强险</span>
  1041. </el-col>
  1042. <el-col :span="3">
  1043. <span>车船税</span>
  1044. </el-col>
  1045. <el-col :span="3">
  1046. <span>商业险</span>
  1047. </el-col>
  1048. <el-col :span="2">
  1049. <span>驾意险</span>
  1050. </el-col>
  1051. <el-col :span="2">
  1052. <span>操作</span>
  1053. </el-col>
  1054. </el-row>
  1055. <el-row class="bxgs-list">
  1056. <el-col :span="1" style="margin-left: 20px">
  1057. <el-checkbox v-model="reslistitem.checked" :disabled="reslistitem.disabled" @change="(event) =>
  1058. initchange(
  1059. event,
  1060. reslistitem.id,
  1061. reslistitem.cnName,
  1062. reslistindex
  1063. )
  1064. "></el-checkbox>
  1065. </el-col>
  1066. <el-col :span="2">
  1067. <img :src="reslistitem.logo" alt style="
  1068. width: 30px;
  1069. height: 30px;
  1070. vertical-align: middle;
  1071. margin-left: 20px;
  1072. " />
  1073. <span>{{ reslistitem.namesimple }}</span>
  1074. </el-col>
  1075. <el-col :span="4">
  1076. <el-select size="small" v-if="reslistitem.isTaxSource && reslistitem.isTaxSource == '1'
  1077. " :disabled="true" placeholder="默认" style="width: 230px" v-model="isTaxSourceModel"
  1078. :clearable="true"></el-select>
  1079. <el-select size="small" v-else :disabled="!reslistitem.checked" v-model="reslistitem.agreementId"
  1080. placeholder="请选择协议" style="width: 230px" :clearable="true" @change="(val) =>
  1081. agreementChange(
  1082. val,
  1083. reslistitem.agreement,
  1084. reslistindex,
  1085. reslistitem
  1086. )
  1087. ">
  1088. <div v-for="(
  1089. agreementitem, agreementindex
  1090. ) in reslistitem.agreement" :key="agreementindex">
  1091. <div v-if="agreementitem.licenseNo &&
  1092. agreementitem.licenseNo.length > 0 &&
  1093. carInfo.licenseNo.length > 0
  1094. ? agreementitem.licenseNo.includes(
  1095. carInfo.licenseNo.slice(0, 2)
  1096. )
  1097. : 'true'
  1098. ">
  1099. <el-option
  1100. :label="agreementitem.jobDescription ? agreementitem.businessDescription + '(' + agreementitem.jobDescription + ')' : agreementitem.businessDescription"
  1101. :value="agreementitem.id" :disabled="agreementitem.disabled">{{ agreementitem.jobDescription ?
  1102. agreementitem.businessDescription + '(' + agreementitem.jobDescription + ')' :
  1103. agreementitem.businessDescription }}</el-option>
  1104. </div>
  1105. </div>
  1106. </el-select>
  1107. </el-col>
  1108. <el-col :span="3">
  1109. <div v-show="reslistitem.quoteCode == '0'">
  1110. <span style="line-height: auto;">未报价</span>
  1111. </div>
  1112. <div class="loader" v-show="reslistitem.quoteCode == '1'">
  1113. <!-- <i style="color: #d42426" class="el-icon-loading"></i> -->
  1114. <p class="text">
  1115. <span class="letter letter1">掌</span>
  1116. <span class="letter letter2">柜</span>
  1117. <span class="letter letter3">正</span>
  1118. <span class="letter letter4">在</span>
  1119. <span class="letter letter5">为</span>
  1120. <span class="letter letter6">您</span>
  1121. <span class="letter letter7">报</span>
  1122. <span class="letter letter8">价</span>
  1123. <span class="letter letter9">.</span>
  1124. <span class="letter letter10">.</span>
  1125. <span class="letter letter11">.</span>
  1126. </p>
  1127. </div>
  1128. <div class="dis f-c"
  1129. v-show="reslistitem.quoteCode == '200' && reslistitem.result.orderstatus != '10' && reslistitem.result.orderstatus != '11'">
  1130. <span style="color: #d42426; font-weight: bold">
  1131. ¥{{ reslistitem.result.sumPermium }}
  1132. </span>
  1133. <!-- <span style="font-size: 13px; color: #2d4d89" class="m-top-5">{{ reslistitem.result.feeView ? '总科技币:' : '优惠:' }}{{ reslistitem.result.sumExportFee}}</span> -->
  1134. </div>
  1135. <div class="dis f-c"
  1136. v-show="reslistitem.quoteCode == '200' && (reslistitem.result.orderstatus == '10' || reslistitem.result.orderstatus == '11')">
  1137. <span style="color: #d42426; font-weight: bold">
  1138. {{ reslistitem.result.orderStatusInfo }}
  1139. </span>
  1140. </div>
  1141. </el-col>
  1142. <el-col :span="3"
  1143. v-show="reslistitem.quoteCode == '200' && reslistitem.result.orderstatus != '10' && reslistitem.result.orderstatus != '11'">
  1144. <div class="dis f-c">
  1145. <span style="color: #d42426; font-weight: bold">
  1146. ¥{{ reslistitem.result.jqPremium }}
  1147. </span>
  1148. <!-- <span v-if="reslistitem.result.jqPremium" style="font-size: 13px; color: #2d4d89" class="m-top-5">{{ reslistitem.result.feeView ? '掌柜科技币:' : '优惠:' }}{{ reslistitem.result.jqExportFee }}</span> -->
  1149. </div>
  1150. </el-col>
  1151. <el-col :span="3"
  1152. v-show="reslistitem.quoteCode == '200' && reslistitem.result.orderstatus != '10' && reslistitem.result.orderstatus != '11'">
  1153. <span style="color: #d42426; font-weight: bold">
  1154. ¥{{ reslistitem.result.taxAmount }}
  1155. </span>
  1156. </el-col>
  1157. <el-col :span="3"
  1158. v-show="reslistitem.quoteCode == '200' && reslistitem.result.orderstatus != '10' && reslistitem.result.orderstatus != '11'">
  1159. <div class="dis f-c">
  1160. <span style="color: #d42426; font-weight: bold">
  1161. ¥{{ reslistitem.result.syPremium }}
  1162. </span>
  1163. <!-- <span v-if="reslistitem.result.syPremium" style="font-size: 13px; color: #2d4d89" class="m-top-5">{{ reslistitem.result.feeView ? '掌柜科技币:' : '优惠:' }}{{ reslistitem.result.syExportFee }}</span> -->
  1164. </div>
  1165. </el-col>
  1166. <el-col :span="2"
  1167. v-if="reslistitem.quoteCode == '200' && reslistitem.result.orderstatus != '10' && reslistitem.result.orderstatus != '11'"
  1168. style="">
  1169. <div class="dis f-c">
  1170. <span style="color: #d42426; font-weight: bold">
  1171. {{
  1172. reslistitem.result.jyPremium
  1173. ? "¥" + reslistitem.result.jyPremium
  1174. : "无"
  1175. }}
  1176. </span>
  1177. <!-- <span v-if="reslistitem.result.jyPremium" style="font-size: 13px; color: #2d4d89" class="m-top-5">{{ reslistitem.result.feeView ? '掌柜科技币:' : '优惠:' }}{{ reslistitem.result.noExportFee }}</span> -->
  1178. </div>
  1179. </el-col>
  1180. <el-col :span="24" v-show="reslistitem.quoteCode == '200' &&
  1181. reslistitem.result.feeNoDescription
  1182. ">
  1183. <div class="flex offer-time" style="color: #d42426">
  1184. <span>该车未匹配销管费用,不建议投保!</span>
  1185. <el-tooltip class="item" effect="dark" content="费用匹配错误信息" placement="top">
  1186. <i class="el-icon-s-goods" @click="
  1187. open3(
  1188. reslistitem.namesimple + '优惠信息',
  1189. reslistitem.result.feeNoDescription
  1190. )
  1191. " style="
  1192. font-size: 20px;
  1193. transform: scale(0.8);
  1194. vertical-align: middle;
  1195. " :disabled="reslistitem.quoteCode == '200' &&
  1196. reslistitem.result.feeNoDescription
  1197. "></i>
  1198. </el-tooltip>
  1199. </div>
  1200. </el-col>
  1201. <el-col :span="24" v-show="reslistitem.quoteCode != '200' &&
  1202. reslistitem.quoteCode != '0' &&
  1203. reslistitem.quoteCode != '1'
  1204. ">
  1205. <div class="flex j-s offer-time" style="color: #d42426">
  1206. 错误提示:
  1207. {{
  1208. reslistitem.msg.length > 500
  1209. ? reslistitem.msg.slice(0, 500)
  1210. : reslistitem.msg
  1211. }}
  1212. </div>
  1213. </el-col>
  1214. <el-col :span="24" v-show="reslistitem.quoteCode == '200' &&
  1215. (reslistitem.result.orderstatus == '10' || reslistitem.result.orderstatus == '11')">
  1216. <div class="flex j-s offer-time" style="color: #d42426">
  1217. {{ reslistitem.result.quoteErrMsg }}
  1218. </div>
  1219. </el-col>
  1220. <div class="baofeijisuan flex a-c" >
  1221. <el-button size="mini" type="text" class="blue_color" v-if="reslistitem.result.orderstatus=='10'"
  1222. @click="supplementOrder(reslistitem.result.companyId)">补录订单</el-button>
  1223. <div class="btn" @click="handleListJisuan(reslistitem, reslistindex)">计算保费</div>
  1224. </div>
  1225. </el-row>
  1226. <!-- 选中-方案选择 -->
  1227. <div v-show="reslistitem.checked" :gutter="20" class="company-checked">
  1228. <el-row class="width1280">
  1229. <el-col :span="24">
  1230. <el-row type="flex" align="middle" class="left-title" v-if="reslistitem.programme">
  1231. <el-col :span="2">方案选择</el-col>
  1232. <div style="margin-right: 20px;" v-for="(item, index) in reslistitem.schemes" :key="index"
  1233. @click="checkedPopover(reslistindex, index, item)">
  1234. <el-popover placement="top-start" trigger="hover" width="660">
  1235. <!-- :disabled="reslistitem.checkedProgramme == index" -->
  1236. <!-- <div>弹出</div> -->
  1237. <Ktletter1Popover :data="item" :programme="reslistitem.programme" :productId="productId">
  1238. </Ktletter1Popover>
  1239. <el-col class="gray-style" :class="reslistitem.checkedProgramme == index ? 'blue-style' : ''"
  1240. slot="reference">
  1241. <!-- <i v-show="reslistitem.checkedProgramme == index" class="el-icon-circle-check"></i> -->
  1242. {{ item.schemeName }}
  1243. <img v-show="reslistitem.checkedProgramme == index" src="@/assets/Frame.png" />
  1244. </el-col>
  1245. </el-popover>
  1246. </div>
  1247. <div @click="checkedPopover(reslistindex, 99)" style="margin-right: 20px;"
  1248. v-show="reslistitem.programme99 && reslistitem.programme99.schemeId">
  1249. <el-popover placement="top-start" width="660" :disabled="reslistitem.checkedProgramme == 99"
  1250. trigger="hover">
  1251. <Ktletter1Popover :data="reslistitem.programme99" :programme="reslistitem.programme"
  1252. :productId="productId"></Ktletter1Popover>
  1253. <el-col class="gray-style" :class="reslistitem.checkedProgramme == 99 ? 'blue-style' : ''"
  1254. slot="reference">
  1255. <!-- <i v-show="reslistitem.checkedProgramme == 99" class="el-icon-circle-check"></i> -->
  1256. 自选方案
  1257. <img v-show="reslistitem.checkedProgramme == 99" src="@/assets/Frame.png" />
  1258. </el-col>
  1259. </el-popover>
  1260. </div>
  1261. <div v-show="reslistitem.checkedProgramme == 99" style="margin-right: 20px;" class="juse-style">
  1262. <span @click="showTypeDialog(reslistitem, reslistindex)">调整险种</span>
  1263. </div>
  1264. <!-- <el-popover placement="top-start" width="450" style="margin-right: 20px;" trigger="hover">
  1265. <Ktletter1Popover></Ktletter1Popover>
  1266. <el-col class="gray-style" slot="reference">服务方案</el-col>
  1267. </el-popover> -->
  1268. </el-row>
  1269. </el-col>
  1270. <el-col :span="2" v-if="reslistitem.programme" class="card-bg">
  1271. <div class="card-xianzhong">
  1272. <div>已选险种</div>
  1273. <div class="card-btn" v-show="reslistitem.programme.description">{{
  1274. reslistitem.programme.description }}</div>
  1275. <!-- <div v-if="reslistitem.quoteCode == '200' && reslistitem.result.orderstatus">{{ reslistitem.result.orderstatus | cap }}</div> -->
  1276. </div>
  1277. </el-col>
  1278. <!-- 险种明细 -->
  1279. <el-col :span="8" class="card-bg" style="padding-left: 0;"
  1280. v-if="reslistitem.programme && reslistitem.programme.kinds">
  1281. <div class="card-mingxi">
  1282. <div class="card-mingxi-title">险种明细:
  1283. <span v-show="reslistitem.checkedProgramme != 99"
  1284. @click="showDetailJiaYi(reslistitem, reslistindex)">查看详情</span>
  1285. <!-- <span v-show="reslistitem.checkedProgramme == 99" @click="showTypeDialog(reslistitem, reslistindex)">调整险种</span> -->
  1286. </div>
  1287. <div class="card-table"
  1288. v-show="reslistitem.programme.description != '单商' && reslistitem.programme.description != '单三'">
  1289. <div class="table-title">交强险</div>
  1290. <div class="table-list" v-if="reslistitem.programme.kinds">
  1291. <div class="table-list-title">
  1292. <div class="flex-1">产品名称</div>
  1293. </div>
  1294. <div class="table-list-content">
  1295. <div class="flex-1">
  1296. <img src="@/icon/icon-chengse.png">
  1297. <!-- <span>{{ reslistitem.programme.jqx.name }}</span> -->
  1298. <span>交通事故强制责任险</span>
  1299. </div>
  1300. </div>
  1301. </div>
  1302. </div>
  1303. <div class="card-table" v-show="reslistitem.programme.description != '单交'">
  1304. <div class="table-title">商业险</div>
  1305. <div class="table-list" v-if="reslistitem.programme && reslistitem.programme.kinds">
  1306. <div class="table-list-title">
  1307. <div class="flex-1">产品名称</div>
  1308. <div class="w-60">保额(元)</div>
  1309. </div>
  1310. <div v-for="(kinds, kindIndex) in reslistitem.programme.kinds.main" :key="kindIndex + 'main'">
  1311. <div class="table-list-content" v-if="kinds.amount != 0">
  1312. <div class="flex-1">
  1313. <img src="@/icon/icon-chengse.png">
  1314. <span>{{ kinds.kindName }}</span>
  1315. </div>
  1316. <div v-if="kinds.kindCode != 'A'" class="w-60"> {{ toWan(kinds.amount) }}</div>
  1317. <div v-else class="w-60">{{ toWan(kinds.amount) }}</div>
  1318. </div>
  1319. </div>
  1320. <div v-for="(kinds, kindIndex) in reslistitem.programme.kinds.additional" :key="kindIndex">
  1321. <div class="table-list-content" v-if="kinds.amount != 0">
  1322. <div class="flex-1">
  1323. <img src="@/icon/icon-chengse.png">
  1324. <span>{{ kinds.kindName }}</span>
  1325. </div>
  1326. <div class="w-60"> {{ toWan(kinds.amount) }}</div>
  1327. </div>
  1328. </div>
  1329. <div class="table-list-content"
  1330. v-if="reslistitem.programme && reslistitem.programme.kinds && !reslistitem.programme.kinds.main.length && !reslistitem.programme.kinds.additional.length">
  1331. 暂无</div>
  1332. </div>
  1333. </div>
  1334. <div class="card-table"
  1335. v-if="reslistitem.programme && reslistitem.programme.drivingList && reslistitem.programme.drivingList.length > 0">
  1336. <div class="table-title">驾意险</div>
  1337. <div class="table-list" v-if="reslistitem.programme.kinds">
  1338. <div class="table-list-title">
  1339. <div class="flex-1">产品名称</div>
  1340. <div class="w-60">份数</div>
  1341. <div class="w-60">保费</div>
  1342. </div>
  1343. <div class="table-list-content"
  1344. v-for="(driving, drivingIndex) in reslistitem.programme.drivingList" :key="drivingIndex"
  1345. @click="showDetailJiaYi(reslistitem, reslistindex, 'jiayi')">
  1346. <div class="flex-1">
  1347. <img src="@/icon/icon-chengse.png">
  1348. <span>
  1349. <!-- <span style="margin-right: 0;" v-if="reslistitem.cnName == 'guoRen' || reslistitem.cnName == 'ansheng'">{{ driving.select }}</span> -->
  1350. {{ driving.alias || driving.projectName }}
  1351. </span>
  1352. </div>
  1353. <div class="w-60">{{ driving.quantity }}份</div>
  1354. <div class="w-60">¥{{ Number(driving.sumPremium) * driving.quantity }}
  1355. <span v-show="reslistitem.checkedProgramme == 99"><i class="el-icon-delete"
  1356. @click="deleteJiaYi(reslistindex, drivingIndex)"></i></span>
  1357. </div>
  1358. </div>
  1359. <div class="table-list-content"
  1360. v-if="reslistitem.programme && reslistitem.programme.drivingList && !reslistitem.programme.drivingList.length">
  1361. 暂无</div>
  1362. </div>
  1363. </div>
  1364. <div class="card-table" v-show="reslistitem.cnName == 'guoRen'">
  1365. <!-- reslistitem.checkedProgramme == 99 && -->
  1366. <div class="table-title">其他</div>
  1367. <div class="table-list">
  1368. <!-- v-if="reslistitem.programme.kinds" -->
  1369. <div style="color: #FD9A25;" @click="contributingGuoRen(reslistitem.agreementId, reslistindex)">
  1370. 选择特约</div>
  1371. <div class="table-list-title"
  1372. v-show="reslistitem.programme && reslistitem.programme.teyue && reslistitem.programme.teyue.length">
  1373. <div class="flex-1">特约名称</div>
  1374. </div>
  1375. <div class="table-list-content" v-for="(teyueitem, teyueindex) in reslistitem.programme.teyue"
  1376. :key="teyueindex">
  1377. <div class="flex-1">
  1378. <img src="@/icon/icon-chengse.png">
  1379. {{ teyueitem.clauseName }}
  1380. </div>
  1381. </div>
  1382. <!-- <div class="table-list-content" v-if="!reslistitem.programme.teyue.length">暂无</div> -->
  1383. </div>
  1384. </div>
  1385. <div class="card-table" v-show="reslistitem.cnName == 'zijin' || reslistitem.cnName == 'yangguang'
  1386. // || reslistitem.cnName == 'taishan'
  1387. ">
  1388. <div class="table-title">其他</div>
  1389. <div>自定义系数:
  1390. <el-input v-model="reslistitem.coefficient" size="mini" class="coefficient"
  1391. placeholder="请输入"></el-input>
  1392. </div>
  1393. </div>
  1394. <div class="card-table flex a-c j-s" v-show="reslistitem.cnName == 'chengtai'">
  1395. <div class="table-title">其他</div>
  1396. <div class="flex f-wrap a-c ">
  1397. <div class="flex a-c mrgin-5">
  1398. <span style="margin-right: 5px;">初始折扣:</span>
  1399. <el-input v-model="reslistitem.result.initialProposalDiscount" disabled size="mini"
  1400. class="coefficient" placeholder="请输入"></el-input>
  1401. </div>
  1402. <div class="flex a-c mrgin-5">
  1403. <span style="margin-right: 5px;">自定义系数:</span>
  1404. <el-input v-model="reslistitem.result.pricingCoefficient" size="mini" class="coefficient"
  1405. placeholder="请输入"></el-input>
  1406. </div>
  1407. <div class="flex a-c mrgin-5">
  1408. <span style="margin-right: 5px;">期望折扣:</span>
  1409. <el-input v-model="reslistitem.result.expectedDiscount" size="mini" class="coefficient"
  1410. placeholder="请输入"></el-input>
  1411. </div>
  1412. </div>
  1413. </div>
  1414. <div class="card-table flex a-c j-s" v-show="reslistitem.cnName == 'renbao'">
  1415. <div class="flex a-c mrgin-5">
  1416. <span style="margin-right: 5px;">车险保额折扣:</span>
  1417. <el-input v-model="reslistitem.result.priceCoefficient" size="mini" class="coefficient"
  1418. placeholder="请输入"></el-input>
  1419. </div>
  1420. </div>
  1421. </div>
  1422. </el-col>
  1423. <!-- 服务明细 -->
  1424. <el-col :span="4" class="card-bg" style="padding-left: 0;"
  1425. v-if="reslistitem.programme && reslistitem.programme.kinds">
  1426. <div class="card-mingxi fuwu">
  1427. <div class="card-mingxi-title">服务明细:</div>
  1428. <div class="card-table">
  1429. <div class="table-list">
  1430. <div class="table-list-title">
  1431. <div class="flex-1">增值服务</div>
  1432. <div class="w-50">次数</div>
  1433. </div>
  1434. <div class="table-list-content"
  1435. v-for="(kinds, kindIndex) in reslistitem.programme.kinds.service" :key="kindIndex">
  1436. <div class="flex-1">
  1437. <img src="@/icon/icon-lanse.png">
  1438. <span style="margin-left: 0;">{{ kinds.alias || kinds.kindName }}</span>
  1439. </div>
  1440. <div class="w-50 w-55">{{ toWan(kinds.amount, 'fw') }}</div>
  1441. </div>
  1442. <div class="table-list-content"
  1443. v-if="reslistitem.programme && reslistitem.programme.kinds && !reslistitem.programme.kinds.service.length">
  1444. 暂无</div>
  1445. </div>
  1446. </div>
  1447. </div>
  1448. </el-col>
  1449. <!-- 优惠明细 -->
  1450. <el-col :span="4" class="card-bg" style="padding-left: 0;"
  1451. v-if="reslistitem.quoteCode == '200' && reslistitem.result.orderstatus != '10' && reslistitem.result.orderstatus != '11'">
  1452. <div class="card-mingxi youhui">
  1453. <div class="card-mingxi-title">优惠明细:</div>
  1454. <div class="card-table">
  1455. <div class="table-list">
  1456. <div class="table-list-title" style="padding-left: 0;">
  1457. <div class="w-50" style="width: 40px;">险种</div>
  1458. <div class="w-50" style="width: 50px; font-size: 10px;">优惠比例</div>
  1459. <div class="w-60" style=" font-size: 10px;">优惠金额(元)</div>
  1460. <div class="w-60" style="width: 50px; font-size: 10px;">合计优惠</div>
  1461. </div>
  1462. <div class="table-list-content" v-if="reslistitem.programme">
  1463. <div class="w-50" style="width: 40px;">
  1464. <div class="table-list-line" style="border-right: none; padding-left: 0;"
  1465. v-show="reslistitem.programme.description != '单商' && reslistitem.programme.description != '单三'">
  1466. <span style="margin-left: 0; font-size: 10px;">交强险</span>
  1467. </div>
  1468. <div class="table-list-line" style="border-right: none; padding-left: 0;"
  1469. v-show="reslistitem.programme.description != '单交'">
  1470. <span style="margin-left: 0; font-size: 10px;">商业险</span>
  1471. </div>
  1472. <div class="table-list-line table-list-line-last"
  1473. style="border-right: none; padding-left: 0;" v-show="reslistitem.result.jyPremium">
  1474. <span style="margin-left: 0; font-size: 10px;">驾意险</span>
  1475. </div>
  1476. </div>
  1477. <div class="w-50" style="width: 50px;">
  1478. <div class="table-list-line" style="border-right: none;"
  1479. v-show="reslistitem.programme.description != '单商' && reslistitem.programme.description != '单三'">
  1480. <span style="margin-left: 0;">{{ reslistitem.result.jqExportFee ?
  1481. reslistitem.result.jqExportRadio : '无' }}</span>
  1482. </div>
  1483. <div class="table-list-line" style="border-right: none;"
  1484. v-show="reslistitem.programme.description != '单交'">
  1485. <span style="margin-left: 0;">{{ reslistitem.result.syExportFee ?
  1486. reslistitem.result.syExportRadio : '无' }}</span>
  1487. </div>
  1488. <div class="table-list-line table-list-line-last" style="border-right: none;"
  1489. v-show="reslistitem.result.jyPremium">
  1490. <span style="margin-left: 0;">{{ reslistitem.result.noExportRadio }}</span>
  1491. </div>
  1492. </div>
  1493. <div class="w-60">
  1494. <div class="table-list-line"
  1495. v-show="reslistitem.programme.description != '单商' && reslistitem.programme.description != '单三'">
  1496. <span style="margin-left: 0;">{{ reslistitem.result.jqExportFee ?
  1497. reslistitem.result.jqExportFee : '无' }}</span>
  1498. </div>
  1499. <div class="table-list-line" v-show="reslistitem.programme.description != '单交'">
  1500. <span style="margin-left: 0;">{{ reslistitem.result.syExportFee ?
  1501. reslistitem.result.syExportFee : '无' }}</span>
  1502. </div>
  1503. <div class="table-list-line table-list-line-last" v-show="reslistitem.result.jyPremium">
  1504. <span style="margin-left: 0;">{{ reslistitem.result.noExportFee ?
  1505. reslistitem.result.noExportFee : '无' }}</span>
  1506. </div>
  1507. </div>
  1508. <div class="w-50 w-66"><span v-show="reslistitem.result.sumExportFee">¥</span>{{
  1509. reslistitem.result.sumExportFee }}</div>
  1510. </div>
  1511. </div>
  1512. </div>
  1513. <div class="card-mingxi-title" style="margin-top: 10px; border-top: 1px solid #fabdae;">返还测算:</div>
  1514. <div class="card-table">
  1515. <div class="table-list">
  1516. <div class="table-list-title" style="padding-left: 0;">
  1517. <div class="w-50" style="width: 40px;">险种</div>
  1518. <div class="w-50" style="width: 50px; font-size: 10px;">返还比例</div>
  1519. <div class="w-60" style=" font-size: 10px;">返还金额(元)</div>
  1520. <div class="w-60" style="width: 50px; font-size: 10px;">合计返还</div>
  1521. </div>
  1522. <div class="table-list-content" v-if="reslistitem.programme">
  1523. <div class="w-50" style="width: 40px;">
  1524. <div class="table-list-line" style="border-right: none; padding-left: 0;"
  1525. v-show="reslistitem.programme.description != '单商' && reslistitem.programme.description != '单三'">
  1526. <span style="margin-left: 0; font-size: 10px;">交强险</span>
  1527. </div>
  1528. <div class="table-list-line" style="border-right: none; padding-left: 0;"
  1529. v-show="reslistitem.programme.description != '单交'">
  1530. <span style="margin-left: 0; font-size: 10px;">商业险</span>
  1531. </div>
  1532. <div class="table-list-line table-list-line-last"
  1533. style="border-right: none; padding-left: 0;" v-show="reslistitem.result.jyPremium">
  1534. <span style="margin-left: 0; font-size: 10px;">驾意险</span>
  1535. </div>
  1536. </div>
  1537. <div class="w-50" style="width: 50px;">
  1538. <div class="table-list-line" style="border-right: none; padding-left: 0;"
  1539. v-show="reslistitem.programme.description != '单商' && reslistitem.programme.description != '单三'">
  1540. <span style="margin-left: 0;">
  1541. <el-input size="mini" style="width: 40px;" v-model="reslistitem.result.jqInput"
  1542. class="mini-input"></el-input>
  1543. </span>
  1544. </div>
  1545. <div class="table-list-line" style="border-right: none; padding-left: 0;"
  1546. v-show="reslistitem.programme.description != '单交'">
  1547. <span style="margin-left: 0;">
  1548. <el-input size="mini" style="width: 40px;" v-model="reslistitem.result.syInput"
  1549. class="mini-input"></el-input>
  1550. </span>
  1551. </div>
  1552. <div class="table-list-line table-list-line-last"
  1553. style="border-right: none; padding-left: 0;" v-show="reslistitem.result.jyPremium">
  1554. <span style="margin-left: 0;">
  1555. <el-input size="mini" style="width: 40px;" v-model="reslistitem.result.jyInput"
  1556. class="mini-input"></el-input>
  1557. </span>
  1558. </div>
  1559. </div>
  1560. <div class="w-60">
  1561. <div class="table-list-line"
  1562. v-show="reslistitem.programme.description != '单商' && reslistitem.programme.description != '单三'">
  1563. <span style="margin-left: 0;">{{ reslistitem.result.jqInput ?
  1564. (reslistitem.result.jqPremium * (reslistitem.result.jqInput / 100)).toFixed(2) : 0
  1565. }}</span>
  1566. </div>
  1567. <div class="table-list-line" v-show="reslistitem.programme.description != '单交'">
  1568. <span style="margin-left: 0;">{{ reslistitem.result.syInput ?
  1569. (reslistitem.result.syPremium * (reslistitem.result.syInput / 100)).toFixed(2) : 0
  1570. }}</span>
  1571. </div>
  1572. <div class="table-list-line table-list-line-last" v-show="reslistitem.result.jyPremium">
  1573. <span style="margin-left: 0;">{{ reslistitem.result.jyInput ?
  1574. (reslistitem.result.jyPremium * (reslistitem.result.jyInput / 100)).toFixed(2) : 0
  1575. }}</span>
  1576. </div>
  1577. </div>
  1578. <div class="w-60 w-66">{{ (
  1579. (reslistitem.result.jqInput ? reslistitem.result.jqPremium * (reslistitem.result.jqInput /
  1580. 100) : 0) +
  1581. (reslistitem.result.syInput ? reslistitem.result.syPremium * (reslistitem.result.syInput /
  1582. 100) : 0) +
  1583. (reslistitem.result.jyInput ? reslistitem.result.jyPremium * (reslistitem.result.jyInput /
  1584. 100) : 0)
  1585. ).toFixed(2)
  1586. }}</div>
  1587. </div>
  1588. </div>
  1589. </div>
  1590. </div>
  1591. </el-col>
  1592. <!-- 保险期限 -->
  1593. <el-col :span="6" class="card-bg" style="padding-left: 0;"
  1594. v-if="reslistitem.quoteCode == '200' && reslistitem.result.orderstatus != '10' && reslistitem.result.orderstatus != '11'">
  1595. <div class="card-mingxi baoxian">
  1596. <div class="card-mingxi-title">保险期限:
  1597. <div @click="syncData(reslistitem.result)">
  1598. <el-tooltip class="item" effect="dark" content="使用此时间" placement="top">
  1599. <i style="color: red" class="el-icon-time"></i>
  1600. </el-tooltip>
  1601. </div>
  1602. </div>
  1603. <div class="card-table">
  1604. <div class="table-list">
  1605. <div class="table-list-title">
  1606. <div class="w-40">险种</div>
  1607. <div class="flex-1">起保日期</div>
  1608. <div class="flex-1">终保日期</div>
  1609. </div>
  1610. <div class="table-list-content" v-show="reslistitem.result.startDateJq">
  1611. <div class="w-40">交强险</div>
  1612. <div class="flex-1">{{ reslistitem.result.startDateJq }}</div>
  1613. <div class="flex-1">{{ reslistitem.result.endDateJq }}</div>
  1614. </div>
  1615. <div class="table-list-content" v-show="reslistitem.result.startDateSy">
  1616. <div class="w-40">商业险</div>
  1617. <div class="flex-1">{{ reslistitem.result.startDateSy }}</div>
  1618. <div class="flex-1">{{ reslistitem.result.endDateSy }}</div>
  1619. </div>
  1620. </div>
  1621. </div>
  1622. <div class="card-table">
  1623. <div class="table-list">
  1624. <div class="table-list-title">
  1625. <div class="flex-1">类型</div>
  1626. <div class="flex-1">评分</div>
  1627. </div>
  1628. <!-- <div class="table-list-content" v-show="reslistitem.result.JqExportFee">
  1629. <div class="flex-1">交强出口费用</div>
  1630. <div class="flex-1">{{ reslistitem.result.JqExportFee }}</div>
  1631. </div>
  1632. <div class="table-list-content" v-show="reslistitem.result.syExportFee">
  1633. <div class="flex-1">商业出口费用</div>
  1634. <div class="flex-1">{{ reslistitem.result.syExportFee }}</div>
  1635. </div>
  1636. <div class="table-list-content" v-show="reslistitem.result.noExportFee">
  1637. <div class="flex-1">非车出口费用</div>
  1638. <div class="flex-1">{{ reslistitem.result.noExportFee }}</div>
  1639. </div> -->
  1640. <div class="table-list-content" v-show="reslistitem.result.jqScore">
  1641. <div class="flex-1">交强类型评分:</div>
  1642. <div class="flex-1">{{ reslistitem.result.jqScore }}</div>
  1643. </div>
  1644. <div class="table-list-content" v-show="reslistitem.result.syScore">
  1645. <div class="flex-1">商业类型评分:</div>
  1646. <div class="flex-1">{{ reslistitem.result.syScore }}</div>
  1647. </div>
  1648. <div class="table-list-content" v-show="reslistitem.result.lossRation">
  1649. <div class="flex-1">总赔付率:</div>
  1650. <div class="flex-1">{{ reslistitem.result.lossRation }}</div>
  1651. </div>
  1652. <div class="table-list-content" v-show="reslistitem.result.jqLossRation">
  1653. <div class="flex-1">交强赔付率:</div>
  1654. <div class="flex-1">{{ reslistitem.result.jqLossRation }}</div>
  1655. </div>
  1656. <div class="table-list-content" v-show="reslistitem.result.syLossRation">
  1657. <div class="flex-1">商业赔付率:</div>
  1658. <div class="flex-1">{{ reslistitem.result.syLossRation }}</div>
  1659. </div>
  1660. <div class="table-list-content" v-show="reslistitem.result.totalAdjustRate">
  1661. <div class="flex-1">自主定价系数:</div>
  1662. <div class="flex-1">{{ reslistitem.result.totalAdjustRate }}</div>
  1663. </div>
  1664. <div class="table-list-content" v-show="reslistitem.result.jgAdjustRate">
  1665. <div class="flex-1">交强折扣系数:</div>
  1666. <div class="flex-1">{{ reslistitem.result.jgAdjustRate }}</div>
  1667. </div>
  1668. <div class="table-list-content" v-show="reslistitem.result.syAdjustRate">
  1669. <div class="flex-1">商业折扣系数:</div>
  1670. <div class="flex-1">{{ reslistitem.result.syAdjustRate }}</div>
  1671. </div>
  1672. <div class="table-list-content" v-show="reslistitem.result.jqRenewal">
  1673. <div class="flex-1">交强续保:</div>
  1674. <div class="flex-1">{{ reslistitem.result.jqRenewal ? reslistitem.result.jqRenewal : "无" }}
  1675. </div>
  1676. </div>
  1677. <div class="table-list-content" v-show="reslistitem.result.syRenewal">
  1678. <div class="flex-1">商业续保:</div>
  1679. <div class="flex-1">{{ reslistitem.result.syRenewal ? reslistitem.result.syRenewal : "无" }}
  1680. </div>
  1681. </div>
  1682. <div class="table-list-content" v-show="reslistitem.result.jqClaims">
  1683. <div class="flex-1">交强出险次数:</div>
  1684. <div class="flex-1">{{ reslistitem.result.jqClaims ? reslistitem.result.jqClaims : "无" }}
  1685. </div>
  1686. </div>
  1687. <div class="table-list-content" v-show="reslistitem.result.syClaims">
  1688. <div class="flex-1">商业出险次数:</div>
  1689. <div class="flex-1">{{ reslistitem.result.syClaims ? reslistitem.result.syClaims : "无" }}
  1690. </div>
  1691. </div>
  1692. <div class="table-list-content" v-if="reslistitem.namesimple == '紫金财险' &&
  1693. reslistitem.result.ubiPredictedInfoScore">
  1694. <div class="flex-1">紫金能源车(鼎然-车辆风险评分):</div>
  1695. <div class="flex-1">{{ reslistitem.result.ubiPredictedInfoScore }}</div>
  1696. </div>
  1697. <div class="table-list-content"
  1698. v-if="reslistitem.result.iszdj && reslistitem.result.iszdj == '1'">
  1699. <div class="flex-1">真单交</div>
  1700. </div>
  1701. <div class="table-list-content"
  1702. v-if="reslistitem.result.iszdj && reslistitem.result.iszdj == '0'">
  1703. <div class="flex-1">假单交</div>
  1704. </div>
  1705. <div class="table-list-content" v-if="reslistitem.namesimple == '永诚财险'">
  1706. <div class="flex-1">光博分:</div>
  1707. <div class="flex-1">{{ reslistitem.result.ilogPreUdwMess ? reslistitem.result.ilogPreUdwMess :
  1708. "无" }}</div>
  1709. </div>
  1710. <div class="table-list-content" v-if="reslistitem.namesimple == '阳光财险'">
  1711. <div class="flex-1">交商合并经营成本率:</div>
  1712. <div class="flex-1">{{ reslistitem.result.mergeCostRate ? reslistitem.result.mergeCostRate :
  1713. "无" }}</div>
  1714. </div>
  1715. <div class="table-list-content" v-else>
  1716. <div class="flex-1">评分:</div>
  1717. <div class="flex-1">{{ reslistitem.result.ilogPreUdwMess ? reslistitem.result.ilogPreUdwMess :
  1718. "无" }}</div>
  1719. </div>
  1720. </div>
  1721. </div>
  1722. <div style="flex: 1;"></div>
  1723. <div style="display: flex; align-items: center;">
  1724. <div style="flex: 1;"></div>
  1725. <div style="color: #2d4d89">
  1726. <el-tooltip class="item" effect="dark" content="上年信息" placement="top">
  1727. <i class="el-icon-chat-dot-round" @click="
  1728. open2(reslistitem.namesimple, reslistitem.lastYearMsg)
  1729. " style="
  1730. font-size: 20px;
  1731. transform: scale(0.8);
  1732. vertical-align: middle;
  1733. " :disabled="reslistitem.namesimple == '众安财险' &&
  1734. reslistitem.result.tips == '需要验车'
  1735. " v-show="reslistitem.quoteCode == '200' &&
  1736. reslistitem.lastYearMsg
  1737. "></i>
  1738. </el-tooltip>
  1739. <el-tooltip class="item" effect="dark" content="预核保信息" placement="top">
  1740. <i class="el-icon-chat-dot-round" @click="
  1741. openPredictInfo(
  1742. reslistitem.namesimple,
  1743. reslistitem.predictInfo
  1744. )
  1745. " style="
  1746. font-size: 20px;
  1747. transform: scale(0.8);
  1748. vertical-align: middle;
  1749. " v-show="reslistitem.quoteCode == '200' &&
  1750. reslistitem.predictInfo &&
  1751. reslistitem.predictInfo.length > 0 &&
  1752. reslistitem.namesimple == '中国人寿'
  1753. "></i>
  1754. </el-tooltip>
  1755. </div>
  1756. <el-button :disabled="reslistitem.namesimple == '众安财险' &&
  1757. reslistitem.result.tips == '需要验车'
  1758. " v-show="reslistitem.quoteCode == '200' &&
  1759. !('editStatus' in reslistitem.result)
  1760. " type="text" size="small" style="color: #2d4d89; font-size: 14px"
  1761. @click="hbsubmitdialog(reslistitem, reslistindex)">下单</el-button>
  1762. <el-button v-show="reslistitem.quoteCode == '200'" type="text" size="small"
  1763. style="color: #2d4d89; font-size: 14px"
  1764. @click="qoutedetail(reslistitem.result.companyId)">查看详情</el-button>
  1765. <el-button v-show="reslistitem.quoteCode == '200'" type="text" size="small"
  1766. style="font-size: 14px" @click="bjdpreview(reslistitem.result.companyId)">报价单</el-button>
  1767. <el-button type="text" size="small" style="font-size: 14px"
  1768. @click="Payment(reslistitem.result.companyId, reslistitem)" v-show="reslistitem.orderstatus == '2' &&
  1769. !('editStatus' in reslistitem.result) && reslistitem.namesimple !== '平安财险'
  1770. ">付款码</el-button>
  1771. <el-button type="text" size="small" style="font-size: 14px"
  1772. @click="signature(reslistitem.result.companyId)" v-show="reslistitem.orderstatus == '2' &&
  1773. !('editStatus' in reslistitem.result) && reslistitem.namesimple == '平安财险'
  1774. ">生成签章</el-button>
  1775. <el-button v-if="vehicleInspectionUrl" type="text" size="small" style="font-size: 14px"
  1776. @click="validateCarCode">验车二维码</el-button>
  1777. </div>
  1778. </div>
  1779. <!-- <div style="line-height: 25px">
  1780. 保险期限:
  1781. <span v-show="reslistitem.result.startDateJq">
  1782. 【交强险】
  1783. <span>
  1784. {{ reslistitem.result.startDateJq }} -
  1785. {{ reslistitem.result.endDateJq }}
  1786. </span>
  1787. <br />
  1788. </span>
  1789. <span v-show="reslistitem.result.startDateSy">
  1790. 【商业险】
  1791. <span>
  1792. {{ reslistitem.result.startDateSy }} -
  1793. {{ reslistitem.result.endDateSy }}
  1794. </span>
  1795. <br />
  1796. </span>
  1797. <span @click="syncData(reslistitem.result)">
  1798. <el-tooltip class="item" effect="dark" content="使用此时间" placement="top">
  1799. <i style="color: red" class="el-icon-time"></i>
  1800. </el-tooltip>
  1801. </span>
  1802. <div>
  1803. <span v-show="reslistitem.result.JqExportFee">
  1804. 交强出口费用<span>{{
  1805. reslistitem.result.JqExportFee
  1806. }}</span>
  1807. <br />
  1808. </span>
  1809. <span v-show="reslistitem.result.syExportFee">
  1810. 商业出口费用<span>{{
  1811. reslistitem.result.syExportFee
  1812. }}</span>
  1813. <br />
  1814. </span>
  1815. <span v-show="reslistitem.result.noExportFee">
  1816. 非车出口费用<span>
  1817. {{ reslistitem.result.noExportFee }}</span>
  1818. </span>
  1819. <br />
  1820. </div>
  1821. <div>
  1822. <span v-if="reslistitem.result.jqScore" class="marginL">
  1823. 交强类型评分:
  1824. <span>{{ reslistitem.result.jqScore }}</span>
  1825. <br />
  1826. </span>
  1827. <span v-if="reslistitem.result.syScore" class="marginL">
  1828. 商业类型评分:
  1829. <span>{{ reslistitem.result.syScore }}</span>
  1830. <br />
  1831. </span>
  1832. <span v-if="reslistitem.result.lossRation" class="marginL">
  1833. 总赔付率:
  1834. <span>{{ reslistitem.result.lossRation }}</span>
  1835. <br />
  1836. </span>
  1837. <span v-if="reslistitem.result.jqLossRation" class="marginL">
  1838. 交强赔付率:
  1839. <span>{{ reslistitem.result.jqLossRation }}</span>
  1840. <br />
  1841. </span>
  1842. <span v-if="reslistitem.result.syLossRation" class="marginL">
  1843. 商业赔付率:
  1844. <span>{{ reslistitem.result.syLossRation }}</span>
  1845. <br />
  1846. </span>
  1847. <span v-if="reslistitem.result.totalAdjustRate" class="marginL">
  1848. 自主定价系数:
  1849. <span>{{ reslistitem.result.totalAdjustRate }}</span>
  1850. <br />
  1851. </span>
  1852. <span v-if="reslistitem.result.jgAdjustRate" class="marginL">
  1853. 交强折扣系数:
  1854. <span>{{ reslistitem.result.jgAdjustRate }}</span>
  1855. <br />
  1856. </span>
  1857. <span v-if="reslistitem.result.syAdjustRate" class="marginL">
  1858. 商业折扣系数:
  1859. <span>{{ reslistitem.result.syAdjustRate }}</span>
  1860. <br />
  1861. </span>
  1862. <span v-if="reslistitem.result.jqRenewal" class="marginL">
  1863. 交强续保:
  1864. <span>
  1865. {{
  1866. reslistitem.result.jqRenewal
  1867. ? reslistitem.result.jqRenewal
  1868. : "无"
  1869. }}
  1870. </span>
  1871. <br />
  1872. </span>
  1873. <span v-if="reslistitem.result.syRenewal" class="marginL">
  1874. 商业续保:
  1875. <span>
  1876. {{
  1877. reslistitem.result.syRenewal
  1878. ? reslistitem.result.syRenewal
  1879. : "无"
  1880. }}
  1881. </span>
  1882. <br />
  1883. </span>
  1884. <span v-if="reslistitem.result.jqClaims" class="marginL">
  1885. 交强出险次数:
  1886. <span>
  1887. {{
  1888. reslistitem.result.jqClaims
  1889. ? reslistitem.result.jqClaims
  1890. : "无"
  1891. }}
  1892. </span>
  1893. <br />
  1894. </span>
  1895. <span v-if="reslistitem.result.syClaims" class="marginL">
  1896. 商业出险次数:
  1897. <span>
  1898. {{
  1899. reslistitem.result.syClaims
  1900. ? reslistitem.result.syClaims
  1901. : "无"
  1902. }}
  1903. </span>
  1904. <br />
  1905. </span>
  1906. <span v-if="reslistitem.namesimple == '紫金财险' &&
  1907. reslistitem.result.ubiPredictedInfoScore
  1908. " class="marginL">
  1909. 紫金能源车(鼎然-车辆风险评分):
  1910. <span>{{ reslistitem.result.ubiPredictedInfoScore }}</span>
  1911. <br />
  1912. </span>
  1913. <span v-if="reslistitem.result.iszdj &&
  1914. reslistitem.result.iszdj == '1'
  1915. ">真单交</span>
  1916. <span v-if="reslistitem.result.iszdj &&
  1917. reslistitem.result.iszdj == '0'
  1918. ">假单交</span>
  1919. <span v-if="reslistitem.namesimple == '永诚财险'">
  1920. 光博分:
  1921. <span>
  1922. {{
  1923. reslistitem.result.ilogPreUdwMess
  1924. ? reslistitem.result.ilogPreUdwMess
  1925. : "无"
  1926. }}
  1927. </span>
  1928. <br />
  1929. </span>
  1930. <span v-else>
  1931. 评分:
  1932. <span>
  1933. {{
  1934. reslistitem.result.ilogPreUdwMess
  1935. ? reslistitem.result.ilogPreUdwMess
  1936. : "无"
  1937. }}
  1938. </span>
  1939. <br />
  1940. </span>
  1941. </div>
  1942. </div> -->
  1943. </el-col>
  1944. <!-- <el-col :gutter="20" :span="24" class="company-checked-left">
  1945. <div class="company-checked-card" v-if="reslistitem.programme">
  1946. <div>
  1947. <div class="checked-card-title">险种</div>
  1948. <div class="checked-card-content">
  1949. <span class="blue-style" v-show="reslistitem.programme.description">{{ reslistitem.programme.description }}</span>
  1950. <span v-show="reslistitem.checkedProgramme == 99" class="blue-button" @click="showTypeDialog(reslistitem, reslistindex)">调整险种</span>
  1951. </div>
  1952. </div>
  1953. <div>
  1954. <div class="checked-card-title">主险</div>
  1955. <div class="checked-card-content" v-if="reslistitem.programme.kinds">
  1956. <span class="blue-text" v-for="(kinds, kindIndex) in reslistitem.programme.kinds.main" :key="kindIndex">{{ kinds.alias || kinds.kindName }} {{ toWan(kinds.amount) }}</span>
  1957. <span style="color: rgba(51,51,51,0.65);" v-if="reslistitem.programme.kinds.main.length == 0">暂无</span>
  1958. </div>
  1959. </div>
  1960. <div>
  1961. <div class="checked-card-title">附加险</div>
  1962. <div class="checked-card-content" v-if="reslistitem.programme.kinds">
  1963. <span v-for="(kinds, kindIndex) in reslistitem.programme.kinds.additional" :key="kindIndex">{{ kinds.alias || kinds.kindName }} {{ toWan(kinds.amount) }}</span>
  1964. <span style="color: rgba(51,51,51,0.65);" v-if="reslistitem.programme.kinds.additional.length == 0">暂无</span>
  1965. </div>
  1966. </div>
  1967. <div>
  1968. <div class="checked-card-title">驾意险</div>
  1969. <div class="checked-card-content" v-if="reslistitem.programme.kinds">
  1970. <div v-for="(driving, drivingIndex) in reslistitem.programme.drivingList" :key="drivingIndex" style="margin-bottom: 10px;">
  1971. <span style="margin-right: 0;" v-if="reslistitem.cnName == 'guoRen' || reslistitem.cnName == 'ansheng'">{{ driving.select }}</span>
  1972. <span>{{ driving.alias || driving.projectName }} {{ driving.quantity }}份 ¥{{ Number(driving.sumPremium) * driving.quantity }}</span>
  1973. <span v-show="reslistitem.checkedProgramme == 99"><i class="el-icon-delete" @click="deleteJiaYi(reslistindex, drivingIndex)"></i></span>
  1974. <span class="blue-button" @click="showDetailJiaYi(reslistindex, driving)">查看详情</span>
  1975. <span class="blue-button" @click="addJiaYi(reslistitem)" v-show="drivingIndex == 0 && reslistitem.checkedProgramme == 99">+驾意险</span>
  1976. </div>
  1977. <span class="blue-button" @click="addJiaYi(reslistitem)" v-show="!reslistitem.programme.drivingList.length && reslistitem.checkedProgramme == 99">+驾意险</span>
  1978. </div>
  1979. </div>
  1980. <div style="margin-top: -10px;">
  1981. <div class="checked-card-title">服务</div>
  1982. <div class="checked-card-content" v-if="reslistitem.programme.kinds">
  1983. <span v-for="(kinds, kindIndex) in reslistitem.programme.kinds.service" :key="kindIndex">{{ kinds.alias || kinds.kindName }} {{ toWan(kinds.amount, 'fw') }}</span>
  1984. <span style="color: rgba(51,51,51,0.65);" v-if="reslistitem.programme.kinds.service.length == 0">暂无</span>
  1985. </div>
  1986. </div>
  1987. <div>
  1988. <div class="checked-card-title">其他</div>
  1989. <div class="checked-card-content" v-show="reslistitem.checkedProgramme == 99 && reslistitem.cnName == 'guoRen'">
  1990. <div v-if="reslistitem.programme">
  1991. <div v-for="(teyueitem, teyueindex) in reslistitem.programme.teyue" :key="teyueindex">{{ teyueitem.clauseName }}</div>
  1992. <span style="color: #F96646;" @click="contributingGuoRen(reslistitem.agreementId, reslistindex)">选择特约</span>
  1993. </div>
  1994. </div>
  1995. <el-col :span="20" v-show="reslistitem.cnName == 'zijin'">
  1996. <div v-show="reslistitem.cnName == 'zijin'">自定义系数:
  1997. <el-input v-model="reslistitem.coefficient" size="mini" class="coefficient" placeholder="请输入"></el-input>
  1998. </div>
  1999. </el-col>
  2000. </div>
  2001. </div>
  2002. </el-col> -->
  2003. </el-row>
  2004. </div>
  2005. <!--
  2006. <div class="flex j-s offer-time" v-if="reslistitem.quoteCode == '200'">
  2007. <div style="line-height: 25px">
  2008. 保险期限:
  2009. <span v-show="reslistitem.result.startDateJq">
  2010. 【交强险】
  2011. <span>
  2012. {{ reslistitem.result.startDateJq }} -
  2013. {{ reslistitem.result.endDateJq }}
  2014. </span>
  2015. </span>
  2016. <span v-show="reslistitem.result.startDateSy" style="margin-left: 20px">
  2017. 【商业险】
  2018. <span>
  2019. {{ reslistitem.result.startDateSy }} -
  2020. {{ reslistitem.result.endDateSy }}
  2021. </span>
  2022. </span>
  2023. <span @click="syncData(reslistitem.result)">
  2024. <el-tooltip class="item" effect="dark" content="使用此时间" placement="top">
  2025. <i style="color: red" class="el-icon-time"></i>
  2026. </el-tooltip>
  2027. </span>
  2028. <div>
  2029. <span v-show="reslistitem.result.JqExportFee">
  2030. 交强出口费用<span>{{
  2031. reslistitem.result.JqExportFee
  2032. }}</span>
  2033. </span>
  2034. <span v-show="reslistitem.result.syExportFee">
  2035. 商业出口费用<span>{{
  2036. reslistitem.result.syExportFee
  2037. }}</span>
  2038. </span>
  2039. <span v-show="reslistitem.result.noExportFee">
  2040. 非车出口费用<span>
  2041. {{ reslistitem.result.noExportFee }}</span>
  2042. </span>
  2043. </div>
  2044. <div>
  2045. <span v-if="reslistitem.namesimple == '永诚财险'">
  2046. 光博分:
  2047. <span>
  2048. {{
  2049. reslistitem.result.ilogPreUdwMess
  2050. ? reslistitem.result.ilogPreUdwMess
  2051. : "无"
  2052. }}
  2053. </span>
  2054. </span>
  2055. <span v-else>
  2056. 评分:
  2057. <span>
  2058. {{
  2059. reslistitem.result.ilogPreUdwMess
  2060. ? reslistitem.result.ilogPreUdwMess
  2061. : "无"
  2062. }}
  2063. </span>
  2064. </span>
  2065. <span v-if="reslistitem.result.jqScore" class="marginL">
  2066. 交强类型评分:
  2067. <span>{{ reslistitem.result.jqScore }}</span>
  2068. </span>
  2069. <span v-if="reslistitem.result.syScore" class="marginL">
  2070. 商业类型评分:
  2071. <span>{{ reslistitem.result.syScore }}</span>
  2072. </span>
  2073. <span v-if="reslistitem.result.lossRation" class="marginL">
  2074. 总赔付率:
  2075. <span>{{ reslistitem.result.lossRation }}</span>
  2076. </span>
  2077. <span v-if="reslistitem.result.jqLossRation" class="marginL">
  2078. 交强赔付率:
  2079. <span>{{ reslistitem.result.jqLossRation }}</span>
  2080. </span>
  2081. <span v-if="reslistitem.result.syLossRation" class="marginL">
  2082. 商业赔付率:
  2083. <span>{{ reslistitem.result.syLossRation }}</span>
  2084. </span>
  2085. <span v-if="reslistitem.result.totalAdjustRate" class="marginL">
  2086. 自主定价系数:
  2087. <span>{{ reslistitem.result.totalAdjustRate }}</span>
  2088. </span>
  2089. <span v-if="reslistitem.result.jgAdjustRate" class="marginL">
  2090. 交强折扣系数:
  2091. <span>{{ reslistitem.result.jgAdjustRate }}</span>
  2092. </span>
  2093. <span v-if="reslistitem.result.syAdjustRate" class="marginL">
  2094. 商业折扣系数:
  2095. <span>{{ reslistitem.result.syAdjustRate }}</span>
  2096. </span>
  2097. <span v-if="reslistitem.result.jqRenewal" class="marginL">
  2098. 交强续保:
  2099. <span>
  2100. {{
  2101. reslistitem.result.jqRenewal
  2102. ? reslistitem.result.jqRenewal
  2103. : "无"
  2104. }}
  2105. </span>
  2106. </span>
  2107. <span v-if="reslistitem.result.syRenewal" class="marginL">
  2108. 商业续保:
  2109. <span>
  2110. {{
  2111. reslistitem.result.syRenewal
  2112. ? reslistitem.result.syRenewal
  2113. : "无"
  2114. }}
  2115. </span>
  2116. </span>
  2117. <span v-if="reslistitem.result.jqClaims" class="marginL">
  2118. 交强出险次数:
  2119. <span>
  2120. {{
  2121. reslistitem.result.jqClaims
  2122. ? reslistitem.result.jqClaims
  2123. : "无"
  2124. }}
  2125. </span>
  2126. </span>
  2127. <span v-if="reslistitem.result.syClaims" class="marginL">
  2128. 商业出险次数:
  2129. <span>
  2130. {{
  2131. reslistitem.result.syClaims
  2132. ? reslistitem.result.syClaims
  2133. : "无"
  2134. }}
  2135. </span>
  2136. </span>
  2137. <span v-if="reslistitem.namesimple == '紫金财险' &&
  2138. reslistitem.result.ubiPredictedInfoScore
  2139. " class="marginL">
  2140. 紫金能源车(鼎然-车辆风险评分):
  2141. <span>{{ reslistitem.result.ubiPredictedInfoScore }}</span>
  2142. </span>
  2143. <span v-if="reslistitem.result.iszdj &&
  2144. reslistitem.result.iszdj == '1'
  2145. ">真单交</span>
  2146. <span v-if="reslistitem.result.iszdj &&
  2147. reslistitem.result.iszdj == '0'
  2148. ">假单交</span>
  2149. </div>
  2150. </div>
  2151. <div style="text-align: right">
  2152. <div style="color: #2d4d89">
  2153. <el-tooltip class="item" effect="dark" content="上年信息" placement="top">
  2154. <i class="el-icon-chat-dot-round" @click="
  2155. open2(reslistitem.namesimple, reslistitem.lastYearMsg)
  2156. " style="
  2157. font-size: 20px;
  2158. transform: scale(0.8);
  2159. vertical-align: middle;
  2160. " :disabled="reslistitem.namesimple == '众安财险' &&
  2161. reslistitem.result.tips == '需要验车'
  2162. " v-show="reslistitem.quoteCode == '200' &&
  2163. reslistitem.lastYearMsg
  2164. "></i>
  2165. </el-tooltip>
  2166. <el-tooltip class="item" effect="dark" content="预核保信息" placement="top">
  2167. <i class="el-icon-chat-dot-round" @click="
  2168. openPredictInfo(
  2169. reslistitem.namesimple,
  2170. reslistitem.predictInfo
  2171. )
  2172. " style="
  2173. font-size: 20px;
  2174. transform: scale(0.8);
  2175. vertical-align: middle;
  2176. " v-show="reslistitem.quoteCode == '200' &&
  2177. reslistitem.predictInfo &&
  2178. reslistitem.predictInfo.length > 0 &&
  2179. reslistitem.namesimple == '中国人寿'
  2180. "></i>
  2181. </el-tooltip>
  2182. <el-button :disabled="reslistitem.namesimple == '众安财险' &&
  2183. reslistitem.result.tips == '需要验车'
  2184. " v-show="reslistitem.quoteCode == '200' &&
  2185. !('editStatus' in reslistitem.result)
  2186. " type="text" size="small" style="color: #2d4d89; font-size: 14px"
  2187. @click="hbsubmitdialog(reslistitem)">下单</el-button>
  2188. <el-button v-show="reslistitem.quoteCode == '200'" type="text" size="small"
  2189. style="color: #2d4d89; font-size: 14px"
  2190. @click="qoutedetail(reslistitem.result.companyId)">查看详情</el-button>
  2191. </div>
  2192. <div>
  2193. <el-button v-show="reslistitem.quoteCode == '200'" type="text" size="small" style="font-size: 14px"
  2194. @click="bjdpreview(reslistitem.result.companyId)">报价单</el-button>
  2195. <el-button type="text" size="small" style="font-size: 14px"
  2196. @click="Payment(reslistitem.result.companyId, reslistitem)" v-show="reslistitem.orderstatus == '2' &&
  2197. !('editStatus' in reslistitem.result) && reslistitem.namesimple !== '平安财险'
  2198. ">付款码</el-button>
  2199. <el-button type="text" size="small" style="font-size: 14px"
  2200. @click="signature(reslistitem.result.companyId)" v-show="reslistitem.orderstatus == '2' &&
  2201. !('editStatus' in reslistitem.result) && reslistitem.namesimple == '平安财险'
  2202. ">生成签章</el-button>
  2203. </div>
  2204. </div>
  2205. </div>
  2206. <template>
  2207. <span v-if="reslistitem.checked &&
  2208. reslistitem.agreementId &&
  2209. reslistitem.underwritingDescription
  2210. " style="margin: 20px 20px 0 100px; display: inline-block">{{ reslistitem.underwritingDescription}}</span>
  2211. </template>
  2212. <template v-if="reslistitem.namesimple == '平安财险' &&
  2213. reslistitem.checked &&
  2214. reslistitem.agreementId
  2215. ">
  2216. <div class="flex f-c Driving-risk">
  2217. <div v-for="(val, index) in pinganInsuranceData" :key="index" >
  2218. <el-form :inline="true" :model="accidentFormPA[index-1]" class="demo-form-inline" size="small"
  2219. style="font-weight: bold;margin-top:15px ">
  2220. <el-form-item :label="index=='1'?'财意险':index=='2'?'小微险':'组合险'" style="margin-right: 30px">
  2221. <el-select clearable v-model="accidentFormPA[index-1].pingantemplateSelection" placeholder="未选择" @clear="clearAccidentFormPA(index-1,)"
  2222. @change="pinganInsuranceChange($event,index-1,val)">
  2223. <el-option v-for="(item, index1) in val" :key="index1" :label="item.projectName"
  2224. :value="item.projectName"></el-option>
  2225. </el-select>
  2226. </el-form-item>
  2227. <el-form-item label="选择份数" style="margin-right: 50px" v-if="index ==1||index ==2">
  2228. <el-input-number v-model="accidentFormPA[index-1].quantity" :disabled="!accidentFormPA[index-1].pinganInsurancetype" @change="numberCopieschangePA($event,index-1)" :min="1" :max="accidentFormPA[index-1].sellListSize"
  2229. controls-position="right"></el-input-number>
  2230. </el-form-item>
  2231. <el-form-item label="保费:" v-if="index ==1||index ==2">
  2232. <span>{{ accidentFormPA[index-1].premium || 0 }}&ensp;元</span>
  2233. </el-form-item>
  2234. </el-form>
  2235. <el-table class="pinganTable" style="margin-top: 20px" size="small" :data="accidentFormPA[index-1].pinganInsuranceDataTable" border
  2236. v-if="accidentFormPA[index-1].pingantemplateSelection" highlight-current-row :header-cell-style="{
  2237. background: '#F7F7F9 ',
  2238. fontWeight: '700',
  2239. color: '#333333',
  2240. }" ref="RsTable" @select="(selections,row)=>{PADrivingCheckbox(selections,row,reslistitem.agreementId,index-1)}">
  2241. <el-table-column align="center" width="55" label="选择" v-if="index ==1||index ==2">
  2242. <template slot-scope="scope">
  2243. <el-radio class="radio" v-model="accidentFormPA[index-1].pinganInsurancetype" :label="scope.row.code"
  2244. @click.native.stop.prevent="PADrivingRadio(scope.row,reslistitem.agreementId,index-1)">&nbsp;</el-radio>
  2245. </template>
  2246. </el-table-column>
  2247. <el-table-column type="selection" v-else width="55">
  2248. </el-table-column>
  2249. <el-table-column prop="name" label="方案名称" align="center"></el-table-column>
  2250. <el-table-column prop="code" label="方案代码" align="center"></el-table-column>
  2251. <el-table-column prop="premium" label="保费 (元)/每份" align="center">
  2252. </el-table-column>
  2253. <el-table-column prop="quantity" label="份数" align="center" v-if="index ==3">
  2254. <template slot-scope="scope">
  2255. <el-input-number size='small' v-model="scope.row.quantity" :min="1" :max="Number(scope.row.sellListSize)"
  2256. controls-position="right"></el-input-number>
  2257. </template>
  2258. </el-table-column>
  2259. <el-table-column label="操作" width="100">
  2260. <template slot-scope="scope">
  2261. <el-button type="text" size="small" @click="pinganDetail(scope.row,reslistitem.agreementId)">查看</el-button>
  2262. </template>
  2263. </el-table-column>
  2264. </el-table>
  2265. </div>
  2266. </div>
  2267. </template>
  2268. <template v-if="reslistitem.namesimple == '泰康财险' &&
  2269. reslistitem.checked &&
  2270. reslistitem.agreementId &&
  2271. isLetter !== '3'
  2272. ">
  2273. <div class="flex f-c Driving-risk">
  2274. <el-form :inline="true" :model="accidentFormTk" class="demo-form-inline" size="small"
  2275. style="font-weight: bold; margin-top: 15px">
  2276. <el-form-item label="意外险类型" style="margin-right: 30px">
  2277. <el-select clearable v-model="taikangtemplateSelection" placeholder="未选择" @clear="clearAccidentFormTk"
  2278. @change="taikangInsuranceChange">
  2279. <el-option v-for="(item, index) in taikangaccidentDataList" :key="index" :label="item.projectName"
  2280. :value="item.projectCode"></el-option>
  2281. </el-select>
  2282. </el-form-item>
  2283. <el-form-item label="选择份数" style="margin-right: 50px">
  2284. <el-input-number v-model="accidentFormTk.quantity" @change="numberCopieschangeTk" :min="1"
  2285. controls-position="right"></el-input-number>
  2286. </el-form-item>
  2287. <el-form-item label="保费:">
  2288. <span>{{ accidentFormTk.sumPremium }}&ensp;元</span>
  2289. </el-form-item>
  2290. </el-form>
  2291. <el-table v-if="taikangtemplateSelection" size="small" :data="taikangInsuranceDataTable" border
  2292. ref="expandTable" highlight-current-row :header-cell-style="{
  2293. background: '#F7F7F9',
  2294. fontWeight: '700',
  2295. color: '#333333',
  2296. }">
  2297. <el-table-column prop="name" label="保险责任" align="center"></el-table-column>
  2298. <el-table-column prop="amount" label="每座保额 (元)/每份" align="center"></el-table-column>
  2299. <el-table-column prop="sumAmount" label="每车保额 (元)/每份" align="center"></el-table-column>
  2300. <el-table-column prop="premium" label="责任保费 (元)/每份" align="center"></el-table-column>
  2301. </el-table>
  2302. </div>
  2303. </template>
  2304. <template v-if="reslistitem.namesimple == '恒邦财险' &&
  2305. reslistitem.checked &&
  2306. reslistitem.agreementId &&
  2307. isLetter !== '3'
  2308. ">
  2309. <div class="flex f-c Driving-risk">
  2310. <div class="dis a-c" style="margin: 15px 0">
  2311. <span style="margin-right: 15px; font-weight: bold">选择意外险</span>
  2312. <el-select style="width: 250px; margin-right: 60px" filterable size="small" clearable
  2313. v-model="hengbangtemplateSelection" placeholder="未选择" @clear="clearAccidentFormHB"
  2314. @change="hengbangInsuranceChange">
  2315. <el-option v-for="(item, index) in hengbangInsuranceData" :key="index" :label="item.projectName"
  2316. :value="item.projectCode"></el-option>
  2317. </el-select>
  2318. 保费:
  2319. <b>{{
  2320. hengbangaccidentalDrivingVo.sumPremium || 0
  2321. }}&ensp;元</b>
  2322. </div>
  2323. <el-table size="small" :data="hengbangInsuranceDataTable" border v-if="hengbangtemplateSelection"
  2324. ref="RsTable" highlight-current-row :header-cell-style="{
  2325. background: '#F7F7F9 ',
  2326. fontWeight: '700',
  2327. color: '#333333',
  2328. }">
  2329. <el-table-column prop="name" label="险种名称" align="center"></el-table-column>
  2330. <el-table-column prop="amount" label="保额" align="center"></el-table-column>
  2331. </el-table>
  2332. </div>
  2333. </template>
  2334. <template v-if="reslistitem.namesimple == '华农财险' &&
  2335. reslistitem.checked &&
  2336. reslistitem.agreementId &&
  2337. isLetter !== '3'
  2338. ">
  2339. <div class="flex f-c Driving-risk">
  2340. <el-form :inline="true" :model="accidentFormHN" class="demo-form-inline"
  2341. style="font-weight: bold; margin-top: 15px" size="small">
  2342. <el-form-item label="意外险类型:" style="margin-right: 30px">
  2343. <el-select clearable v-model="accidentFormHN.accidentType" placeholder="未选择"
  2344. @clear="clearAccidentFormHN" @change="huanongInsuranceChange">
  2345. <el-option v-for="(item, index) in huanongInsuranceData" :key="index" :label="item.projectName"
  2346. :value="item.projectCode"></el-option>
  2347. </el-select>
  2348. </el-form-item>
  2349. <el-form-item label="选择份数" style="margin-right: 30px">
  2350. <el-input-number v-model="accidentFormHN.quantity" :min="1"
  2351. controls-position="right"></el-input-number>
  2352. </el-form-item>
  2353. </el-form>
  2354. <el-table v-if="accidentFormHN.accidentType" size="small" :data="huanongInsuranceDataTable" border
  2355. ref="expandTable" highlight-current-row :header-cell-style="{
  2356. background: '#F7F7F9 ',
  2357. fontWeight: '700',
  2358. color: '#333333',
  2359. }">
  2360. <el-table-column prop="name" label="保险责任" align="center"></el-table-column>
  2361. <el-table-column prop="amount" label="保额" align="center">
  2362. <template slot-scope="scope">
  2363. <el-input v-model="scope.row.amount" placeholder="请输入内容" size="small" disabled></el-input>
  2364. </template>
  2365. </el-table-column>
  2366. </el-table>
  2367. </div>
  2368. </template>
  2369. <template v-if="reslistitem.namesimple == '太平财险' &&
  2370. reslistitem.checked &&
  2371. reslistitem.agreementId &&
  2372. isLetter !== '3'
  2373. ">
  2374. <div class="flex f-c Driving-risk">
  2375. <div class="dis a-c" style="margin: 15px 0">
  2376. <span style="margin-right: 15px; font-weight: bold">选择意外险</span>
  2377. <el-select style="width: 250px; margin-right: 60px" filterable size="small" clearable
  2378. v-model="taipingtemplateSelection" placeholder="未选择" @clear="clearAccidentFormTP"
  2379. @change="taipingInsuranceChange">
  2380. <el-option v-for="(item, index) in taipingInsuranceData" :key="index" :label="item.projectName"
  2381. :value="item.projectCode"></el-option>
  2382. </el-select>
  2383. 每份价税合计:
  2384. <b>{{ taipingaccidentalDrivingVo.sumPremium || 0 }}&ensp;元</b>
  2385. </div>
  2386. <el-table size="small" :data="taipingInsuranceDataTable" border v-if="taipingtemplateSelection"
  2387. ref="RsTable" highlight-current-row :header-cell-style="{
  2388. background: '#F7F7F9 ',
  2389. fontWeight: '700',
  2390. color: '#333333',
  2391. }">
  2392. <el-table-column prop="name" label="险种名称" align="center"></el-table-column>
  2393. <el-table-column prop="amount" label="险种金额" align="center"></el-table-column>
  2394. </el-table>
  2395. </div>
  2396. </template>
  2397. <template v-if="reslistitem.namesimple == '安盛天平' &&
  2398. reslistitem.checked &&
  2399. reslistitem.agreementId &&
  2400. isLetter !== '3'
  2401. ">
  2402. <div class="flex f-c Driving-risk">
  2403. <div class="dis a-c" style="margin-top: 15px">
  2404. <span style="margin-right: 15px; font-weight: bold">意外险类型</span>
  2405. <el-select style="width: 250px" size="small" clearable v-model="anshengtemplateSelection"
  2406. placeholder="未选择" @clear="clearAccidentFormAS" @change="anshengInsuranceChange">
  2407. <el-option v-for="(item, index) in anshengInsuranceData" :key="index"
  2408. :label="item.projectCode + ' ' + item.projectName" :value="item.projectCode"></el-option>
  2409. </el-select>
  2410. </div>
  2411. <el-table style="margin-top: 20px" size="small" :data="anshengInsuranceDataTable" border
  2412. v-if="anshengtemplateSelection" ref="RsTable" highlight-current-row :header-cell-style="{
  2413. background: '#F7F7F9 ',
  2414. fontWeight: '700',
  2415. color: '#333333',
  2416. }">
  2417. <el-table-column align="center" width="55" label="选择">
  2418. <template slot-scope="scope">
  2419. <el-radio class="radio" v-model="anshengInsurancetype" :label="scope.row.projectCode"
  2420. @click.native.stop.prevent="ASDrivingRadio(scope.row)">&nbsp;</el-radio>
  2421. </template>
  2422. </el-table-column>
  2423. <el-table-column prop="projectName" label="方案名称" align="center"></el-table-column>
  2424. <el-table-column prop="projectCode" label="方案代码" align="center"></el-table-column>
  2425. <el-table-column prop="quantity" label="份数" align="center">
  2426. </el-table-column>
  2427. </el-table>
  2428. </div>
  2429. </template>
  2430. <template v-if="reslistitem.namesimple == '中国人寿' &&
  2431. reslistitem.checked &&
  2432. reslistitem.agreementId &&
  2433. isLetter !== '3'
  2434. ">
  2435. <div style="margin: 15px 0 15px 100px">
  2436. <span>商业险折扣:</span>
  2437. <el-input style="width: 220px" :disabled="!lastCompanyId" size="small" v-model="reslistitem.discount"
  2438. placeholder="请输入内容" @input="
  2439. reslistitem.discount = reslistitem.discount.replace(
  2440. /[^\d.]/g,
  2441. ''
  2442. )
  2443. "></el-input>
  2444. </div>
  2445. <div class="flex f-c Driving-risk">
  2446. <div class="dis a-c">
  2447. <span style="margin-right: 15px; font-weight: bold">选择意外险</span>
  2448. <el-select style="width: 250px" filterable size="small" clearable v-model="renshoutemplateSelection"
  2449. placeholder="未选择" @clear="clearAccidentFormRS" @change="renshouInsuranceChange">
  2450. <el-option v-for="(item, index) in renshouInsuranceData" :key="index" :label="item.projectName"
  2451. :value="item.projectCode"></el-option>
  2452. </el-select>
  2453. </div>
  2454. <el-table size="small" style="margin-top: 20px" :data="renshouInsuranceDataTable" border
  2455. v-if="renshoutemplateSelection" @row-click="RSDrivingChange" ref="RsTable" highlight-current-row
  2456. :header-cell-style="{
  2457. background: '#F7F7F9 ',
  2458. fontWeight: '700',
  2459. color: '#333333',
  2460. }">
  2461. <el-table-column prop="name" label="方案名称" align="center"></el-table-column>
  2462. <el-table-column prop="premium" label="保费 (元)起" align="center">
  2463. <template slot-scope="scope">
  2464. <span>¥{{ scope.row.premium }}</span>
  2465. </template>
  2466. </el-table-column>
  2467. <el-table-column label="份数" align="center">
  2468. <template slot-scope="scope">
  2469. <span>{{ scope.row.quantity }}</span>
  2470. </template>
  2471. </el-table-column>
  2472. </el-table>
  2473. </div>
  2474. </template>
  2475. <template v-if="reslistitem.namesimple == '众安财险' &&
  2476. reslistitem.checked &&
  2477. reslistitem.agreementId &&
  2478. isLetter !== '3'
  2479. ">
  2480. <div class="flex f-c Driving-risk">
  2481. <div class="dis a-c" style="margin: 15px 0">
  2482. <span style="margin-right: 15px; font-weight: bold">选择意外险</span>
  2483. <el-select style="width: 250px" filterable size="small" clearable v-model="zhongantemplateSelection"
  2484. placeholder="未选择" @clear="clearAccidentFormZA" @change="zhonganInsuranceChange">
  2485. <el-option v-for="(item, index) in zhonganInsuranceData" :key="index" :label="item.projectName"
  2486. :value="item.projectCode"></el-option>
  2487. </el-select>
  2488. </div>
  2489. <el-table size="small" :data="zhonganInsuranceDataTable" border v-if="zhongantemplateSelection"
  2490. @row-click="ZADrivingChange" ref="RsTable" highlight-current-row :header-cell-style="{
  2491. background: '#F7F7F9 ',
  2492. fontWeight: '700',
  2493. color: '#333333',
  2494. }">
  2495. <el-table-column prop="name" label="险种名称" align="center"></el-table-column>
  2496. <el-table-column prop="amount" label="险种金额" align="center"></el-table-column>
  2497. </el-table>
  2498. </div>
  2499. </template>
  2500. <template v-if="reslistitem.namesimple == '紫金财险' &&
  2501. reslistitem.checked &&
  2502. reslistitem.agreementId &&
  2503. isLetter !== '3'
  2504. ">
  2505. <div style="margin: 15px 0 15px 100px">
  2506. <span>自主定价系数:</span>
  2507. <el-input style="width: 220px" size="small" v-model="reslistitem.coefficient"
  2508. placeholder="请输入内容"></el-input>
  2509. </div>
  2510. <div class="flex f-c Driving-risk">
  2511. <div class="dis a-c" style="margin-bottom: 15px">
  2512. <span style="margin-right: 15px; font-weight: bold">选择意外险</span>
  2513. <el-select style="width: 250px" filterable multiple size="small" clearable
  2514. v-model="zijintemplateSelection" placeholder="未选择" @clear="clearAccidentFormZJ"
  2515. @change="zijinInsuranceChange">
  2516. <el-option v-for="(item, index) in ziJinInsuranceData" :key="index" :label="item.projectName"
  2517. :value="item.projectCode"></el-option>
  2518. </el-select>
  2519. </div>
  2520. <el-table size="small" :data="zijinInsuranceDataTable" border v-if="zijintemplateSelection"
  2521. @select="CheckboxChange" filterable ref="expandTable" highlight-current-row :header-cell-style="{
  2522. background: '#F7F7F9 ',
  2523. fontWeight: '700',
  2524. color: '#333333',
  2525. }">
  2526. <el-table-column type="selection" width="55"></el-table-column>
  2527. <el-table-column prop="projectName" label="方案名称" align="center"></el-table-column>
  2528. <el-table-column prop="sumAmount" label="总保额 (元)/每份" align="center"></el-table-column>
  2529. <el-table-column prop="sumPremium" label="保费 (元)/每份" align="center">
  2530. <template slot-scope="scope">
  2531. <span>¥{{ scope.row.sumPremium }}</span>
  2532. </template>
  2533. </el-table-column>
  2534. <el-table-column prop="quantity" label="份数" align="center">
  2535. <template slot-scope="scope">
  2536. <el-input-number v-model="scope.row.quantity" :min="1" size="small"
  2537. controls-position="right"></el-input-number>
  2538. </template>
  2539. </el-table-column>
  2540. <el-table-column prop="Totalprice" label="总保费 (元)" align="center">
  2541. <template slot-scope="scope">
  2542. <span v-if="scope.row.quantity">{{
  2543. scope.row.sumPremium * scope.row.quantity
  2544. }}</span>
  2545. <span v-else>{{ scope.row.sumPremium }}</span>
  2546. </template>
  2547. </el-table-column>
  2548. </el-table>
  2549. </div>
  2550. </template>
  2551. <template v-if="reslistitem.namesimple == '永诚财险' &&
  2552. reslistitem.checked &&
  2553. reslistitem.agreementId &&
  2554. isLetter !== '3'
  2555. ">
  2556. <div class="flex f-c Driving-risk">
  2557. <el-form :inline="true" :model="accidentForm" class="demo-form-inline" size="small"
  2558. style="font-weight: bold; margin-top: 15px">
  2559. <el-form-item label="意外险类型" style="margin-right: 30px">
  2560. <el-select clearable v-model="yongchengtemplateSelection" placeholder="未选择" @clear="clearAccidentForm"
  2561. @change="yongchengInsuranceChange">
  2562. <el-option v-for="(item, index) in yongchengaccidentDataList" :key="index" :label="item.projectName"
  2563. :value="item.projectCode"></el-option>
  2564. </el-select>
  2565. </el-form-item>
  2566. <el-form-item label="选择份数" style="margin-right: 50px">
  2567. <el-input-number v-model="accidentForm.quantity" @change="numberCopieschange" :min="1"
  2568. controls-position="right"></el-input-number>
  2569. </el-form-item>
  2570. <el-form-item label="保费:">
  2571. <span>{{ accidentForm.sumPremium }}&ensp;元</span>
  2572. </el-form-item>
  2573. </el-form>
  2574. <el-table v-if="yongchengtemplateSelection" size="small" :data="yongchengInsuranceDataTable" border
  2575. ref="expandTable" highlight-current-row :header-cell-style="{
  2576. background: '#F7F7F9',
  2577. fontWeight: '700',
  2578. color: '#333333',
  2579. }">
  2580. <el-table-column prop="name" label="保险责任" align="center"></el-table-column>
  2581. <el-table-column prop="amount" label="每座保额 (元)/每份" align="center"></el-table-column>
  2582. <el-table-column prop="sumAmount" label="每车保额 (元)/每份" align="center"></el-table-column>
  2583. <el-table-column prop="premium" label="责任保费 (元)/每份" align="center"></el-table-column>
  2584. </el-table>
  2585. </div>
  2586. </template>
  2587. <template v-if="reslistitem.namesimple == '国任财险' &&
  2588. reslistitem.checked &&
  2589. reslistitem.agreementId &&
  2590. isLetter !== '3'
  2591. ">
  2592. <el-button type="text" style="margin: 10px 0 0 100px"
  2593. @click="contributingGuoRen(reslistitem.agreementId)">选择特约</el-button>
  2594. <div class="flex f-c Driving-risk">
  2595. <el-form :inline="true" :model="guoRenaccidentForm" class="demo-form-inline" size="small">
  2596. <el-form-item label="意外险类型" style="margin-right: 30px">
  2597. <el-select clearable placeholder="未选择" @clear="clearAccidentFormGr" @change="grcxchange"
  2598. v-model="guoRenaccidentForm.goodsCode">
  2599. <el-option v-for="(item, index) in guoRenaccidentDataList" :key="index" :label="item.projectName"
  2600. :value="item.projectCode"></el-option>
  2601. </el-select>
  2602. </el-form-item>
  2603. <el-form-item label=" ">
  2604. <el-select clearable v-model="guoRenaccidentForm.prodCode" @change="grcxchangeChild">
  2605. <el-option v-for="(item) in guoRenaccidentDataListChild" :key="item.projectCode"
  2606. :label="item.projectName" :value="item.projectCode"></el-option>
  2607. </el-select>
  2608. </el-form-item>
  2609. <el-form-item label="选择份数" style="margin-right: 30px">
  2610. <el-input-number v-model="guoRenaccidentForm.quantity" :min="1" controls-position="right"
  2611. @change="numberCopieschangeGR"></el-input-number>
  2612. </el-form-item>
  2613. <el-form-item label="保费:">
  2614. <span>{{ guoRenaccidentForm.sumPremium }}&ensp;元</span>
  2615. </el-form-item>
  2616. </el-form>
  2617. <el-table v-if="guoRenaccidentForm.prodCode" size="small" :data="guoRenInsuranceDataTable" border
  2618. ref="expandTable" highlight-current-row :header-cell-style="{
  2619. background: '#F7F7F9 ',
  2620. fontWeight: '700',
  2621. color: '#333333',
  2622. }">
  2623. <el-table-column prop="name" label="保险责任" align="center"></el-table-column>
  2624. <el-table-column prop="amount" label="保额 (元)" align="center"></el-table-column>
  2625. <el-table-column prop="premium" label="保费 (元)" align="center">
  2626. <template slot-scope="scope">¥{{ scope.row.premium }}</template>
  2627. </el-table-column>
  2628. </el-table>
  2629. </div>
  2630. </template>
  2631. <template v-if="reslistitem.namesimple == '中煤财险' &&
  2632. reslistitem.checked &&
  2633. reslistitem.agreementId &&
  2634. isLetter !== '3'
  2635. ">
  2636. <div class="flex f-c Driving-risk accident-style zmDriving">
  2637. <el-form :inline="true" :model="accidentFormZM" class="demo-form-inline" size="small"
  2638. style="font-weight: bold; margin-top: 15px">
  2639. <el-form-item label="意外险类型" style="margin-right: 30px">
  2640. <el-select style="width: 250px" size="small" clearable v-model="zhongmeitemplateSelection"
  2641. placeholder="未选择" @clear="numberCopieschangeZM" @change="zhongmeiInsuranceChange">
  2642. <el-option v-for="(item, index) in zhongmeiInsuranceData" :key="index" :label="item.projectName"
  2643. :value="item.projectCode"></el-option>
  2644. </el-select>
  2645. </el-form-item>
  2646. <el-form-item label="选择份数" style="margin-right: 30px">
  2647. <el-input-number v-model="accidentFormZM.quantity" @change="numberCopieschangeZM" :min="1"
  2648. controls-position="right"></el-input-number>
  2649. </el-form-item>
  2650. <el-form-item label="保费:">
  2651. <span>{{ accidentFormZM.sumPremium }}&ensp;元</span>
  2652. </el-form-item>
  2653. </el-form>
  2654. <el-table size="small" :data="zhongmeiInsuranceDataTable" border ref="ZmMultipleTable"
  2655. v-if="zhongmeitemplateSelection" :header-cell-style="{
  2656. background: '#F7F7F9 ',
  2657. fontWeight: '700',
  2658. color: '#333333',
  2659. }">
  2660. <el-table-column prop="name" label="保险责任名称" align="center"></el-table-column>
  2661. <el-table-column prop="amount" label="保险责任对应保额" align="center"></el-table-column>
  2662. </el-table>
  2663. </div>
  2664. </template>
  2665. <template v-if="reslistitem.namesimple == '大家财险' &&
  2666. reslistitem.checked &&
  2667. reslistitem.agreementId &&
  2668. isLetter !== '3'
  2669. ">
  2670. <div class="flex f-c Driving-risk">
  2671. <div class="dis a-c" style="margin-top: 15px">
  2672. <span style="margin-right: 15px; font-weight: bold">选择意外险</span>
  2673. <el-select style="width: 250px" v-if="reslistitem.apiType == 1" filterable size="small" clearable
  2674. v-model="dajiatemplateSelection" placeholder="未选择" @clear="clearAccidentFormDJ"
  2675. @change="dajiaInsuranceChange">
  2676. <el-option v-for="(item, index) in dajiaInsuranceData" :key="index" :label="item.projectName"
  2677. :value="item.projectCode"></el-option>
  2678. </el-select>
  2679. <div v-else>
  2680. <el-select size="small" style="width: 250px" clearable placeholder="未选择" @change="djcxchange"
  2681. v-model="dajiaaccidentForm.parentCode" @clear="clearAccidentFormDJ">
  2682. <el-option v-for="(item, index) in dajiaInsuranceData" :key="index" :label="item.projectName"
  2683. :value="item.projectCode"></el-option>
  2684. </el-select>
  2685. <el-select size="small" style="width: 250px" clearable v-model="dajiaaccidentForm.projectCode"
  2686. @change="djcxchangeChild">
  2687. <el-option v-for="(item) in dajiaaccidentDataListChild" :key="item.projectCode"
  2688. :label="item.projectName" :value="item.projectCode"></el-option>
  2689. </el-select>
  2690. </div>
  2691. </div>
  2692. <el-table size="small" :data="dajiaInsuranceDataTable" border ref="RsTable" highlight-current-row
  2693. :header-cell-style="{
  2694. background: '#F7F7F9 ',
  2695. fontWeight: '700',
  2696. color: '#333333',
  2697. }">
  2698. <el-table-column prop="name" label="保险责任名称" align="center"></el-table-column>
  2699. <el-table-column prop="premium" label="保费 (元)/每份" align="center">
  2700. <template slot-scope="scope">¥{{ scope.row.premium }}</template>
  2701. </el-table-column>
  2702. </el-table>
  2703. </div>
  2704. </template>
  2705. <template v-if="reslistitem.namesimple == '渤海财险' &&
  2706. reslistitem.checked &&
  2707. reslistitem.agreementId &&
  2708. isLetter !== '3'
  2709. ">
  2710. <div class="flex f-c Driving-risk" style="margin-top: 15px">
  2711. <el-form :inline="true" :model="boHaiaccidentForm" class="demo-form-inline" size="small">
  2712. <el-form-item label="意外险类型" style="margin-right: 30px">
  2713. <el-select clearable placeholder="未选择" @clear="clearAccidentFormBh" @change="bohaiInsuranceChange"
  2714. v-model="boHaiaccidentForm.projectCode">
  2715. <el-option v-for="(item, index) in boHaiaccidentDataList" :key="index" :label="item.projectName"
  2716. :value="item.projectCode"></el-option>
  2717. </el-select>
  2718. </el-form-item>
  2719. <el-form-item label="选择份数" style="margin-right: 30px">
  2720. <el-input-number v-model="boHaiaccidentForm.copies" :min="1"
  2721. controls-position="right"></el-input-number>
  2722. </el-form-item>
  2723. <el-form-item label="保费:">
  2724. <span>{{
  2725. boHaiaccidentForm.premium * boHaiaccidentForm.copies
  2726. }}&ensp;元</span>
  2727. </el-form-item>
  2728. </el-form>
  2729. <el-table v-if="boHaiaccidentForm.projectCode" size="small" :data="bohaiInsuranceDataTable" border
  2730. ref="expandTable" highlight-current-row :header-cell-style="{
  2731. background: '#F7F7F9 ',
  2732. fontWeight: '700',
  2733. color: '#333333',
  2734. }">
  2735. <el-table-column prop="name" label="保险责任名称" align="center"></el-table-column>
  2736. <el-table-column prop="amount" label="保额 (元)" align="center">
  2737. <template slot-scope="scope">¥{{ scope.row.amount }}</template>
  2738. </el-table-column>
  2739. </el-table>
  2740. </div>
  2741. </template> -->
  2742. </div>
  2743. </div>
  2744. </div>
  2745. </div>
  2746. <!-- 报价历史 -->
  2747. <div class="Enclosure flex f-c" v-if="isLetter == '1'">
  2748. <div class="home flex j-s a-c back">
  2749. <div class="flex j-s a-c color">
  2750. <img src="../../../../src/icon/报价历史.png" alt class="icon-img" />
  2751. <span style="margin-left: 10px">报价历史</span>
  2752. <div v-if="orderno">
  2753. <el-radio-group v-model="historyRadio" style="margin-left: 30px" @input="RadioHistoryChange"
  2754. v-for="item in insOrderStatusoptions" :key="item.dictValue">
  2755. <el-radio :label="item.dictValue">{{ item.dictTag }}</el-radio>
  2756. </el-radio-group>
  2757. </div>
  2758. </div>
  2759. </div>
  2760. <div style="padding: 20px">
  2761. <el-table size="small" :data="HistoryList" height="250" border style="width: 100%" v-loading="loading"
  2762. :header-cell-style="{
  2763. background: '#F7F7F9 ',
  2764. fontWeight: '700',
  2765. color: '#333333',
  2766. }" highlight-current-row>
  2767. <el-table-column prop="inscompany" label="保险公司" align="center"></el-table-column>
  2768. <el-table-column prop="username" label="业务员" align="center">
  2769. <template slot-scope="scope">
  2770. <span>{{ scope.row.userName }}({{ scope.row.userId }})</span>
  2771. </template>
  2772. </el-table-column>
  2773. <el-table-column prop="licenseno" label="车牌号" align="center"></el-table-column>
  2774. <el-table-column prop="product" label="险种" align="center"></el-table-column>
  2775. <el-table-column prop="createtime" label="报价时间" align="center"></el-table-column>
  2776. <el-table-column prop="jqpremium" label="交强险" align="center"></el-table-column>
  2777. <el-table-column prop="sypremium" label="商业险" align="center"></el-table-column>
  2778. <el-table-column prop="taxamount" label="车船税" align="center"></el-table-column>
  2779. <el-table-column prop="sumpremium" label="总保费" align="center"></el-table-column>
  2780. <el-table-column prop="orderstatus" label="状态" align="center">
  2781. <template slot-scope="scope">
  2782. <el-tag style="
  2783. color: #33a08d;
  2784. border-color: #33a08d;
  2785. background: rgba(51, 160, 141, 0.1);
  2786. " v-if="scope.row.orderstatus == '0' || scope.row.orderstatus == '1'
  2787. " size="small">{{ scope.row.orderstatus | cap }}</el-tag>
  2788. <el-tag type="danger" style="border-color: #e75b5d" v-else-if="scope.row.orderstatus == '3'"
  2789. size="small">{{
  2790. scope.row.orderstatus | cap }}</el-tag>
  2791. <el-tag v-else style="
  2792. color: #2d4d89;
  2793. border-color: #2d4d89;
  2794. background: rgba(45, 77, 137, 0.1);
  2795. " size="small">{{ scope.row.orderstatus | cap }}</el-tag>
  2796. </template>
  2797. </el-table-column>
  2798. <el-table-column label="操作" align="center" min-width="180" fixed="right">
  2799. <template slot-scope="scope">
  2800. <el-button v-if="scope.row.orderstatus == '10'" type="text" style="color: #2d4d89" size="small"
  2801. @click="supplementOrder(scope.row.id)">补录订单</el-button>
  2802. <el-button type="text" style="color: #2d4d89" size="small"
  2803. @click="qoutedetail(scope.row.id)">查看详情</el-button>
  2804. <el-button size="small" type="text" @click="bjdpreview(scope.row.id)">报价单</el-button>
  2805. <el-button size="small" v-show="scope.row.orderstatus == '2' && scope.row.inscompany !== '平安财险'"
  2806. type="text" @click="Payment(scope.row.id, scope.row)">付款码</el-button>
  2807. <el-button size="small" v-show="scope.row.orderstatus == '2' && scope.row.inscompany == '平安财险'"
  2808. type="text" @click="signature(scope.row.id)">生成签章</el-button>
  2809. <el-button size="mini" type="text" v-if="(scope.row.orderstatus == '1' ||
  2810. scope.row.orderstatus == '2' ||
  2811. scope.row.orderstatus == '4') &&
  2812. ['紫金财险', '诚泰财险', '阳光财险'].includes(scope.row.inscompany)
  2813. " @click="cancelorder(scope.row)">撤单</el-button>
  2814. <el-button type="text" size="mini" style="color: #2d4d89"
  2815. v-if="scope.row.orderstatus == '2' && scope.row.inscompany !== '平安财险'"
  2816. @click="revokeCode(scope.row.id)">撤销二维码</el-button>
  2817. </template>
  2818. </el-table-column>
  2819. </el-table>
  2820. </div>
  2821. </div>
  2822. <!-- 查看详情 -->
  2823. <detailsDialog ref="detailsDialog" :orderInfo.sync="queryOrders" :Feepermissions="false"></detailsDialog>
  2824. <el-dialog title="车型选择" :visible.sync="chexingdialogVisible" width="1300px">
  2825. <el-form :inline="true" class="demo-form-inline" size="small">
  2826. <el-form-item label="厂牌型号">
  2827. <el-input v-model="carInfo.modelcname" placeholder="厂牌型号" style="width: 500px"></el-input>
  2828. </el-form-item>
  2829. <el-form-item>
  2830. <el-button type="primary" size="small" @click="toChooseVehicleType(carInfo.modelcname)">查询</el-button>
  2831. </el-form-item>
  2832. </el-form>
  2833. <el-table size="small" :data="reslist" height="690" border style="width: 100%" v-loading="loading"
  2834. :header-cell-style="{
  2835. background: '#F7F7F9 ',
  2836. fontWeight: '700',
  2837. color: '#333333',
  2838. }" highlight-current-row @row-dblclick="reslistCurrentChange">
  2839. <el-table-column prop="modelCode" label="厂牌型号代码" align="center" width="200"></el-table-column>
  2840. <el-table-column prop="modelName" label="厂牌型号" align="center" width="200"></el-table-column>
  2841. <el-table-column prop="importFlag" label="车辆类型" align="center" width="300"></el-table-column>
  2842. <el-table-column prop="replacementValue" label="新车购置价" align="center" width="100"></el-table-column>
  2843. <el-table-column prop="marketYear" label="年款" align="center" width="100"></el-table-column>
  2844. <el-table-column prop="ratedPassengerCapacity" label="座位数" align="center" width="80"></el-table-column>
  2845. <el-table-column prop="displacement" label="排量" align="center" width="100"></el-table-column>
  2846. <el-table-column prop="remark" label="配置" align="center"></el-table-column>
  2847. </el-table>
  2848. </el-dialog>
  2849. <el-dialog title="车辆识别代码" :visible.sync="sbdmdialogVisible" width="1300px">
  2850. <el-form :inline="true" class="demo-form-inline" size="small">
  2851. <el-form-item label="车辆识别代码">
  2852. <el-input v-model="carInfo.frameNo" placeholder="车辆识别代码" style="width: 500px"></el-input>
  2853. </el-form-item>
  2854. <el-form-item>
  2855. <el-button type="primary" size="small" @click="toChooseVin(carInfo.frameNo)">查询</el-button>
  2856. </el-form-item>
  2857. </el-form>
  2858. <el-table size="small" :data="reslist" height="690" border style="width: 100%" v-loading="loading"
  2859. :header-cell-style="{
  2860. background: '#F7F7F9 ',
  2861. fontWeight: '700',
  2862. color: '#333333',
  2863. }" highlight-current-row @row-dblclick="reslistCurrentChange">
  2864. <el-table-column prop="modelCode" label="厂牌型号代码" align="center" width="200"></el-table-column>
  2865. <el-table-column prop="modelName" label="厂牌型号" align="center" width="300"></el-table-column>
  2866. <el-table-column prop="importFlag" label="车辆类型" align="center" width="100"></el-table-column>
  2867. <el-table-column prop="replacementValue" label="新车购置价" align="center" width="100"></el-table-column>
  2868. <el-table-column prop="marketYear" label="年款" align="center" width="100"></el-table-column>
  2869. <el-table-column prop="ratedPassengerCapacity" label="座位数" align="center" width="80"></el-table-column>
  2870. <el-table-column prop="displacement" label="排量" align="center" width="100"></el-table-column>
  2871. <el-table-column prop="remark" label="配置" align="center"></el-table-column>
  2872. </el-table>
  2873. </el-dialog>
  2874. <!--第一种 二维码 -->
  2875. <el-dialog :visible.sync="codedialogVisible" width="430px" top="10vh" class="saomazhifucodeClass">
  2876. <div class="ORcodebody" v-watermark="userform.id || userId">
  2877. <div slot="title" class="dialog-title">
  2878. <span>扫码付款</span>
  2879. </div>
  2880. <div class="ORcode">
  2881. <div style="padding: 13px; position: relative">
  2882. <div id="qrcode" ref="qrcode"></div>
  2883. </div>
  2884. </div>
  2885. <img style="margin-left: -16px" src="../../../assets/image/divider.png" alt />
  2886. <div style="
  2887. font-size: 32px;
  2888. text-align: center;
  2889. color: #d42426;
  2890. margin-top: 20px;
  2891. ">
  2892. <span style="font-size: 24px; font-weight: bold">¥</span>
  2893. {{ sumpremium }}
  2894. </div>
  2895. <div class="ORtitle">
  2896. <div>
  2897. <span>保险公司:</span>
  2898. <span>{{ inscompany }}</span>
  2899. </div>
  2900. <div>
  2901. <span>车牌号:</span>
  2902. <span>{{ licenseNo }}</span>
  2903. </div>
  2904. <div>
  2905. <span>投保人:</span>
  2906. <span>{{ applyName }}</span>
  2907. </div>
  2908. <!-- <div>
  2909. <span style="color:#f75c00">总金额:</span>
  2910. <span style="color:#f75c00">{{ sumpremium }}</span>
  2911. </div>-->
  2912. <div v-show="jqpremium">
  2913. <span>交强:</span>
  2914. <span>{{ jqpremium }}</span>
  2915. </div>
  2916. <div v-show="sypremium">
  2917. <span>商业:</span>
  2918. <span>{{ sypremium }}</span>
  2919. </div>
  2920. <div v-show="taxamount">
  2921. <span>车船税:</span>
  2922. <span>{{ taxamount }}</span>
  2923. </div>
  2924. <div v-show="jqstartdate">
  2925. <span>交强险起保日期:</span>
  2926. <span>{{ jqstartdate }}</span>
  2927. </div>
  2928. <div v-show="systartdate">
  2929. <span>商业险起保日期:</span>
  2930. <span>{{ systartdate }}</span>
  2931. </div>
  2932. <div v-if="jypremium">
  2933. <span>驾意险:</span>
  2934. <span>{{ jypremium }}</span>
  2935. </div>
  2936. <div v-if="jypremium">
  2937. <span>驾意险险起保日期:</span>
  2938. <span>{{ systartdate || jqstartdate }}</span>
  2939. </div>
  2940. </div>
  2941. <!-- <div class="display">
  2942. <el-button size="small" style="width:100px;" @click="codedialogVisible = false">关闭</el-button>
  2943. </div>-->
  2944. </div>
  2945. <span slot="footer" class="dialog-footer display">
  2946. <el-button size="small" style="width: 100px; border-color: #d42426; color: #d42426"
  2947. @click="codedialogVisible = false">关闭</el-button>
  2948. </span>
  2949. </el-dialog>
  2950. <!--第二种 二维码 -->
  2951. <el-dialog :visible.sync="codedialogVisiblePro" width="660px" class="proSaomazhifucodeClass" top="10vh"
  2952. title="扫码付款">
  2953. <div class="flex j-s">
  2954. <div class="scan-code">
  2955. <div style="font-weight: bold">
  2956. 总金额:
  2957. <span style="color: #2d4d89">{{ sumpremium }}</span>
  2958. </div>
  2959. <div>交强险:{{ jqpremium }}</div>
  2960. <div>车船税:{{ taxamount }}</div>
  2961. <div>商业险:{{ sypremium }}</div>
  2962. <div>驾意险:{{ jypremium }}</div>
  2963. </div>
  2964. <div id="qrcode" ref="qrcode"></div>
  2965. <div class="scan-code">
  2966. <div>保险公司:{{ inscompany }}</div>
  2967. <div>车牌号:{{ licenseNo }}</div>
  2968. <div>投保人:{{ applyName }}</div>
  2969. <div>交强险起保日期:{{ jqstartdate }}</div>
  2970. <div>商业险起保日期:{{ systartdate }}</div>
  2971. <div>驾意险起保日期:{{ systartdate || jqstartdate }}</div>
  2972. </div>
  2973. </div>
  2974. <span slot="footer" class="dialog-footer">
  2975. <el-button size="small" style="
  2976. width: 100px;
  2977. background: #eaedf1;
  2978. border-color: #eaedf1;
  2979. color: #2d4d89;
  2980. " @click="codedialogVisiblePro = false">关闭</el-button>
  2981. </span>
  2982. </el-dialog>
  2983. <el-dialog :visible.sync="uploadcardialogVisible" width="960px" style="padding: 10px 20px; box-sizing: border-box"
  2984. @open="closeDialog(0)">
  2985. <div slot="title" class="dialog-title">
  2986. <span>行驶证识别</span>
  2987. </div>
  2988. <el-row :gutter="20">
  2989. <div class="bodys1">
  2990. <div>
  2991. <div class="flex a-c">
  2992. <div class="OCR" style="text-align: center">行驶证主页</div>
  2993. <div style="text-align: center; margin: 20px" @drop="reportDrop">
  2994. <el-upload drag action="#" :show-file-list="false" :auto-upload="false" :on-change="carfrontChange">
  2995. <img v-show="carfrontImg" :src="carfrontImg" style="width: 100%; height: 100%" />
  2996. <img v-show="!carfrontImg" src="../../../../static/carfront.png" style="width: 100%; height: 100%" />
  2997. <span class="slot" v-show="carfrontImg" @click.stop>
  2998. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(carfrontImg)"></i>
  2999. <i class="el-icon-delete" @click.stop="handleRemove('carfrontImg')"></i>
  3000. </span>
  3001. </el-upload>
  3002. </div>
  3003. </div>
  3004. <div class="flex a-c">
  3005. <div class="OCR" style="text-align: center">行驶证副页</div>
  3006. <div style="text-align: center; margin: 20px" @drop="reportDrop">
  3007. <el-upload drag action="#" :show-file-list="false" :auto-upload="false" :on-change="carbackChange">
  3008. <img v-show="carbackImg" :src="carbackImg" style="width: 100%; height: 100%" />
  3009. <img v-show="!carbackImg" src="../../../../static/carback.png" style="width: 100%; height: 100%" />
  3010. <span class="slot" v-show="carbackImg" @click.stop>
  3011. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(carbackImg)"></i>
  3012. <i class="el-icon-delete" @click.stop="handleRemove('carbackImg')"></i>
  3013. </span>
  3014. </el-upload>
  3015. </div>
  3016. </div>
  3017. </div>
  3018. <div style="text-align: center">
  3019. <el-form :model="carform" label-width="130px" size="small">
  3020. <el-form-item label="所有人">
  3021. <el-input v-model="carform.carOwner" autocomplete="off"></el-input>
  3022. </el-form-item>
  3023. <el-form-item label="车牌号">
  3024. <el-input v-model="carform.licenseNo" autocomplete="off"></el-input>
  3025. </el-form-item>
  3026. <el-form-item label="车架号">
  3027. <el-input v-model="carform.frameNo" autocomplete="off"></el-input>
  3028. </el-form-item>
  3029. <el-form-item label="品牌型号">
  3030. <el-input v-model="carform.modelcname" autocomplete="off"></el-input>
  3031. </el-form-item>
  3032. <el-form-item label="发动机号">
  3033. <el-input v-model="carform.engineNo" autocomplete="off"></el-input>
  3034. </el-form-item>
  3035. <el-form-item label="总质量">
  3036. <el-input v-model="carform.grossMass" autocomplete="off"></el-input>
  3037. </el-form-item>
  3038. <el-form-item label="整备质量">
  3039. <el-input v-model="carform.unladenMass" autocomplete="off"></el-input>
  3040. </el-form-item>
  3041. <el-form-item label="核定载质量">
  3042. <el-input v-model="carform.limitLoad" autocomplete="off"></el-input>
  3043. </el-form-item>
  3044. <el-form-item label="核定载客数">
  3045. <el-input v-model="carform.approvedPassengersCapacity" autocomplete="off"></el-input>
  3046. </el-form-item>
  3047. <el-form-item label="注册日期">
  3048. <el-input v-model="carform.registerDate" autocomplete="off"></el-input>
  3049. </el-form-item>
  3050. <el-form-item label="发证日期">
  3051. <el-input v-model="carform.issueDate" autocomplete="off"></el-input>
  3052. </el-form-item>
  3053. </el-form>
  3054. </div>
  3055. </div>
  3056. </el-row>
  3057. <span slot="footer" class="dialog-footer">
  3058. <el-button type="primary" @click="CarOCRdiscern()" size="small">识 别</el-button>
  3059. <el-button type="primary" @click="CarOCRconfirm()" size="small">确 认</el-button>
  3060. </span>
  3061. </el-dialog>
  3062. <el-dialog :visible.sync="uploaduserdialogVisible" width="960px" style="padding: 10px 20px; box-sizing: border-box"
  3063. @open="closeDialog(userIndex)">
  3064. <el-tabs v-model="activeName">
  3065. <el-tab-pane label="身份证识别" name="1">
  3066. <el-row :gutter="20">
  3067. <div class="bodys1">
  3068. <div>
  3069. <div class="flex">
  3070. <div class="OCR" style="text-align: center">身份证主页</div>
  3071. <div style="text-align: center; margin: 20px" @drop="reportDrop">
  3072. <el-upload class="upload-demo" drag action="#" :show-file-list="false" :auto-upload="false"
  3073. :on-change="userfrontChange">
  3074. <img v-show="userfrontImg" :src="userfrontImg" style="width: 100%; height: 100%" />
  3075. <img v-show="!userfrontImg" src="../../../../static/userfront.png"
  3076. style="width: 100%; height: 100%" />
  3077. <span class="slot" v-show="userfrontImg" @click.stop>
  3078. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(userfrontImg)"></i>
  3079. <i class="el-icon-delete" @click.stop="handleRemove('userfrontImg')"></i>
  3080. </span>
  3081. </el-upload>
  3082. </div>
  3083. </div>
  3084. <div class="flex">
  3085. <div class="OCR" style="text-align: center">身份证副页</div>
  3086. <div style="text-align: center; margin: 20px" @drop="reportDrop">
  3087. <el-upload class="upload-demo" drag action="#" :show-file-list="false" :auto-upload="false"
  3088. :on-change="userbackChange">
  3089. <img v-show="userbackImg" :src="userbackImg" style="width: 100%; height: 100%" />
  3090. <img v-show="!userbackImg" src="../../../../static/userback.png"
  3091. style="width: 100%; height: 100%" />
  3092. <span class="slot" v-show="userbackImg" @click.stop>
  3093. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(userbackImg)"></i>
  3094. <i class="el-icon-delete" @click.stop="handleRemove('userbackImg')"></i>
  3095. </span>
  3096. </el-upload>
  3097. </div>
  3098. </div>
  3099. </div>
  3100. <div style="text-align: center">
  3101. <el-form :model="ownerInfoform" label-width="130px" size="small">
  3102. <el-form-item label="姓名">
  3103. <el-input v-model="ownerInfoform.name" autocomplete="off"></el-input>
  3104. </el-form-item>
  3105. <el-form-item label="性别">
  3106. <el-input v-model="ownerInfoform.gender" autocomplete="off"></el-input>
  3107. </el-form-item>
  3108. <el-form-item label="证件类型">
  3109. <el-input v-model="ownerInfoform.identifyType" autocomplete="off"></el-input>
  3110. </el-form-item>
  3111. <el-form-item label="证件号码">
  3112. <el-input v-model="ownerInfoform.identifyNumber" autocomplete="off"></el-input>
  3113. </el-form-item>
  3114. <el-form-item label="车主手机号">
  3115. <el-input v-model="ownerInfoform.mobile" autocomplete="off"></el-input>
  3116. </el-form-item>
  3117. <el-form-item label="地址">
  3118. <el-input v-model="ownerInfoform.addr" autocomplete="off"></el-input>
  3119. </el-form-item>
  3120. <el-form-item label="有效期起期">
  3121. <el-input disabled v-model="ownerInfoform.identifyValidDate" autocomplete="off"></el-input>
  3122. </el-form-item>
  3123. <el-form-item label="有效期止期">
  3124. <el-input disabled v-model="ownerInfoform.identifyValidEndDate" autocomplete="off"></el-input>
  3125. </el-form-item>
  3126. <el-form-item label="电子邮箱">
  3127. <el-input v-model="ownerInfoform.email" autocomplete="off"></el-input>
  3128. </el-form-item>
  3129. </el-form>
  3130. </div>
  3131. </div>
  3132. </el-row>
  3133. </el-tab-pane>
  3134. <el-tab-pane label="营业执照" name="2">
  3135. <el-row :gutter="20">
  3136. <div class="bodys1">
  3137. <div>
  3138. <div class="flex">
  3139. <div class="OCR" style="text-align: center">营业执照</div>
  3140. <div style="text-align: center; margin: 20px" @drop="reportDrop">
  3141. <el-upload class="upload-demo" drag action="#" :show-file-list="false" :auto-upload="false"
  3142. :on-change="businessChange">
  3143. <img v-show="businessImg" :src="businessImg" style="width: 100%; height: 100%" />
  3144. <img v-show="!businessImg" src="../../../../static/userfront.png"
  3145. style="width: 100%; height: 100%" />
  3146. <span class="slot" v-show="businessImg" @click.stop>
  3147. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(businessImg)"></i>
  3148. <i class="el-icon-delete" @click.stop="handleRemove('businessImg')"></i>
  3149. </span>
  3150. </el-upload>
  3151. </div>
  3152. </div>
  3153. </div>
  3154. <div style="text-align: center">
  3155. <el-form :model="businessform" label-width="130px" size="small">
  3156. <el-form-item label="单位名称">
  3157. <el-input autocomplete="off" v-model="businessform.name"></el-input>
  3158. </el-form-item>
  3159. <el-form-item label="法人">
  3160. <el-input autocomplete="off" v-model="businessform.legalPerson"></el-input>
  3161. </el-form-item>
  3162. <el-form-item label="社会信用代码">
  3163. <el-input autocomplete="off" v-model="businessform.organizationCode"></el-input>
  3164. </el-form-item>
  3165. <el-form-item label="地址">
  3166. <el-input autocomplete="off" v-model="businessform.addr"></el-input>
  3167. </el-form-item>
  3168. <el-form-item label="注册资本">
  3169. <el-input autocomplete="off" v-model="businessform.registeredCapital"></el-input>
  3170. </el-form-item>
  3171. <el-form-item label="经营范围">
  3172. <el-input autocomplete="off" type="textarea" v-model="businessform.scope"></el-input>
  3173. </el-form-item>
  3174. </el-form>
  3175. </div>
  3176. </div>
  3177. </el-row>
  3178. </el-tab-pane>
  3179. </el-tabs>
  3180. <span slot="footer" class="dialog-footer">
  3181. <el-button type="primary" @click="userOCRdiscern()" size="small">识 别</el-button>
  3182. <el-button type="primary" @click="userOCRconfirm()" size="small">确 认</el-button>
  3183. </span>
  3184. </el-dialog>
  3185. <el-dialog :visible.sync="pinganDataDetailVisible" width="40%" title="责任明细">
  3186. <el-table :data="pinganDataDetail" border style="width: 100%">
  3187. <el-table-column prop="insuranceCoverage" label="责任名称">
  3188. </el-table-column>
  3189. <el-table-column prop="unitInsuredAmount" label="每份保额">
  3190. </el-table-column>
  3191. </el-table>
  3192. </el-dialog>
  3193. <div v-if="isLetter == '1'" class="flex j-c a-c footer" :class="$store.state.app.collapse ? 'position-collapse-left' : 'position-left'
  3194. ">
  3195. <el-button size="small" @click="add()">录下一单</el-button>
  3196. <el-button type="primary" :loading="calculateLoading" size="small" @click="quote1()">保费计算</el-button>
  3197. </div>
  3198. <div v-if="isLetter == '2'" style="text-align: center">
  3199. <el-button type="primary" :loading="calculateLoading" size="small" @click="quote1()">保费计算</el-button>
  3200. </div>
  3201. <div class="Anchor-link flex f-c j-s a-c" v-if="isLetter == '1'">
  3202. <div>
  3203. <img src="../../../../src/icon/车辆信息.png" alt class="icon-img" @click="handleScroll('Car')" />
  3204. </div>
  3205. <div>
  3206. <img src="../../../../src/icon/投保信息.png" alt class="icon-img" @click="handleScroll('insurance')" />
  3207. </div>
  3208. <div>
  3209. <img src="../../../../src/icon/险别选择.png" alt class="icon-img" @click="handleScroll('more')" />
  3210. </div>
  3211. <div>
  3212. <img src="../../../../src/icon/保险公司.png" alt class="icon-img" @click="handleScroll('company')" />
  3213. </div>
  3214. </div>
  3215. <el-dialog title="核保信息" :visible.sync="underwritingdialogVisible" width="30%">
  3216. <div class="flex j-s f-c">
  3217. <div style="
  3218. font-size: 18px;
  3219. color: #d42426;
  3220. font-weight: 700;
  3221. padding: 10px 30px;
  3222. " v-if="orderstatus == '2'">
  3223. 订单状态:已核保待缴费
  3224. </div>
  3225. </div>
  3226. <span slot="footer" class="dialog-footer">
  3227. <el-button style="width: 100px" type="primary" size="small"
  3228. v-if="orderstatus == '2' && queryOrders.inscompany !== '平安财险'"
  3229. @click="Payment(companyId, queryOrders)">缴费二维码</el-button>
  3230. <el-button style="width: 100px" type="primary" size="small"
  3231. v-if="orderstatus == '2' && queryOrders.inscompany == '平安财险'" @click="signature(companyId)">生成签章</el-button>
  3232. </span>
  3233. </el-dialog>
  3234. <el-dialog title="转保确认码" :visible.sync="renewalCodedialogVisible" width="400px" style="font-weight: bold">
  3235. <div class="flex a-c u-f-sa" v-if="renewalCodeJqImg">
  3236. <span>交强转保确认码</span>
  3237. <div class="flex a-c f-c">
  3238. <img :src="renewalCodeJqImg" alt style="width: 150px; height: 40px; margin-bottom: 5px" />
  3239. <el-input v-model="renewalCodeJq" placeholder="请输入确认码" style="width: 150px"></el-input>
  3240. </div>
  3241. </div>
  3242. <div class="flex a-c u-f-sa" v-if="renewalCodeSyImg">
  3243. <span>商业转保确认码</span>
  3244. <div class="flex a-c f-c">
  3245. <img :src="renewalCodeSyImg" alt style="width: 150px; height: 40px; margin-bottom: 5px" />
  3246. <el-input v-model="renewalCodeSy" placeholder="请输入确认码" style="width: 150px"></el-input>
  3247. </div>
  3248. </div>
  3249. <span slot="footer" class="dialog-footer">
  3250. <el-button size="small" @click="renewalCodedialogVisible = false">取 消</el-button>
  3251. <el-button size="small" type="primary" @click="renewalCodeconfirm">确 定</el-button>
  3252. </span>
  3253. </el-dialog>
  3254. <el-dialog :title="contributingState ? '选择特约' : '提交核保'" :visible.sync="hbsubmitdialogVisible" width="1200px">
  3255. <div style="margin-bottom: 20px; font-weight: bold">特约选择</div>
  3256. <el-table size="small" :data="zijinengageListData" border v-loading="contributingLoading"
  3257. @select="zijinengageChange" @select-all="zijinengageChangeAll" ref="expandTablePro" highlight-current-row
  3258. @cell-dblclick="zijincellDblclick" :cell-class-name="tableCellClassName" :header-cell-style="{
  3259. background: '#F7F7F9 ',
  3260. fontWeight: '700',
  3261. color: '#333333',
  3262. }">
  3263. <el-table-column type="selection" width="55"></el-table-column>
  3264. <el-table-column prop="clauseCode" :width="80" label="特约代码" align="center"></el-table-column>
  3265. <el-table-column v-if="contributingState" :width="100" prop="riskCode" label="特约险种"
  3266. align="center"></el-table-column>
  3267. <el-table-column prop="clauseName" label="特约名称" align="center"></el-table-column>
  3268. <!-- <el-table-column prop="replaceContent" label="特约内容" align="center"></el-table-column> -->
  3269. <el-table-column prop="clauseContent" label="特约内容">
  3270. <template slot-scope="scope">
  3271. <el-input @blur="hideInput" size="small" type="textarea" :ref="scope.row.index + ',' + scope.column.index"
  3272. v-model="scope.row.clauseContent" v-if="scope.row.index + ',' + scope.column.index == currentCell &&
  3273. scope.row.modifyFlag == '1'
  3274. "></el-input>
  3275. <span v-else>{{ scope.row.clauseContent }}</span>
  3276. </template>
  3277. </el-table-column>
  3278. </el-table>
  3279. <span slot="footer" class="dialog-footer">
  3280. <el-button size="small" @click="hbsubmitdialogVisible = false">取 消</el-button>
  3281. <el-button v-if="contributingState" size="small" type="primary"
  3282. @click="hbsubmitdialogVisible = false">确定</el-button>
  3283. <el-button v-else size="small" type="primary" @click="hbsubmit">提交核保</el-button>
  3284. </span>
  3285. </el-dialog>
  3286. <!-- <imageDialog ref="imageDialog" :quoteno="quoteno"></imageDialog>-->
  3287. <!-- 报价单 -->
  3288. <quotationDialog ref="quotationDialog" :queryOrders="queryOrders"></quotationDialog>
  3289. <quotationDialogPro ref="quotationDialogPro" :queryOrders="queryOrders"></quotationDialogPro>
  3290. <el-image-viewer v-if="showViewer" :on-close="closeViewer" :z-index="9999" :url-list="[ProViewImg]" />
  3291. <el-dialog :visible.sync="redictInfodialogVisible" width="70%">
  3292. <el-table :data="redictInfoMsg" style="width: 100%">
  3293. <el-table-column prop="description" label="审核意见"></el-table-column>
  3294. <el-table-column prop="opinion" label="备注"></el-table-column>
  3295. </el-table>
  3296. </el-dialog>
  3297. <!-- 生成签章 -->
  3298. <el-dialog :visible.sync="signaturedialogVisible" title="生成签章" width="14%">
  3299. <div>
  3300. <img :src="resultMessageImg" alt style="width: 100%" />
  3301. <!-- <div id="signaturecode" ref="signaturecode"></div> -->
  3302. </div>
  3303. </el-dialog>
  3304. <!-- 保单上传 -->
  3305. <el-dialog :visible.sync="policyUploaddialogVisible" width="30%">
  3306. <div slot="title" class="dialog-title">
  3307. <span>保单上传</span>
  3308. </div>
  3309. <el-form :model="policyNumberForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
  3310. <el-form-item label="交强保单:" prop="jqPolicy">
  3311. <el-upload class="upload-demo" ref="jqPolicyupload" action="#" :limit="1" :auto-upload="false"
  3312. :on-remove="(file) => removePhoto(file, policyNumberForm.jqPolicyList, 'jqPolicyList')"
  3313. :file-list="policyNumberForm.jqPolicyList" :on-change="(file) => policydrivingupload(file, 'jqPolicy')">
  3314. <el-button size="small" type="primary">点击上传</el-button>
  3315. <el-button size="small" type="primary" @click.stop="policyNumberForm.jqPolicyList = []">清空</el-button>
  3316. </el-upload>
  3317. </el-form-item>
  3318. <el-form-item label="商业保单:" prop="syPolicy">
  3319. <el-upload class="upload-demo" ref="syPolicyupload" action="#" :limit="1" :auto-upload="false"
  3320. :on-remove="(file) => removePhoto(file, policyNumberForm.syPolicyList, 'syPolicyList')"
  3321. :file-list="policyNumberForm.syPolicyList" :on-change="(file) => policydrivingupload(file, 'syPolicy')">
  3322. <el-button size="small" type="primary">点击上传</el-button>
  3323. <el-button size="small" type="primary" @click.stop="policyNumberForm.syPolicyList = []">清空</el-button>
  3324. </el-upload>
  3325. </el-form-item>
  3326. <el-form-item label="非车保单:" prop="noPolicy">
  3327. <el-upload class="upload-demo" ref="noPolicyupload" action="#" :limit="1" :auto-upload="false"
  3328. :on-remove="(file) => removePhoto(file, policyNumberForm.noPolicyList, 'noPolicyList')"
  3329. :file-list="policyNumberForm.noPolicyList" :on-change="(file) => policydrivingupload(file, 'noPolicy')">
  3330. <el-button size="small" type="primary">点击上传</el-button>
  3331. <el-button size="small" type="primary" @click.stop="policyNumberForm.noPolicyList = []">清空</el-button>
  3332. </el-upload>
  3333. </el-form-item>
  3334. <el-form-item label="交强电子标志:" prop="jqSign">
  3335. <el-upload class="upload-demo" ref="jqSignupload" action="#" :limit="1" :auto-upload="false"
  3336. :on-remove="(file) => removePhoto(file, policyNumberForm.jqSignList, 'jqSignList')"
  3337. :file-list="policyNumberForm.jqSignList" :on-change="(file) => policydrivingupload(file, 'jqSign')">
  3338. <el-button size="small" type="primary">点击上传</el-button>
  3339. <el-button size="small" type="primary" @click.stop="policyNumberForm.jqSignList = []">清空</el-button>
  3340. </el-upload>
  3341. </el-form-item>
  3342. </el-form>
  3343. <span slot="footer" class="dialog-footer">
  3344. <el-button size="small" @click="policyUploaddialogVisible = false">取 消</el-button>
  3345. <el-button size="small" type="primary" @click="policyUploaddialogVisible = false">确 定</el-button>
  3346. </span>
  3347. </el-dialog>
  3348. <!-- 影像上传 -->
  3349. <el-dialog :visible.sync="imageUploaddialogVisible" width="1070px">
  3350. <div slot="title" class="dialog-title">
  3351. <span>影像上传</span>
  3352. </div>
  3353. <el-row>
  3354. <el-col :span="4">
  3355. <div class="tab-style">
  3356. <li class="liMenu" :class="idx == tabLiIndex ? 'tabLi-style' : ''" @click="tabLiScroll(item.scroll, idx)"
  3357. v-for="(item, idx) in tabLimenu" :key="idx">
  3358. {{ item.name }}
  3359. </li>
  3360. </div>
  3361. </el-col>
  3362. <el-col :span="20" style="height: 320px; overflow-y: auto">
  3363. <div class="flex f-wrap" id="vehicle">
  3364. <div class="aaa">
  3365. <span>1.行驶证主页</span>
  3366. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList1', 'imgList1', 'C01')
  3367. " :file-list="imgList1" ref="upload1" :class="{ styleB: imgList1.length == 1 }">
  3368. <img v-show="imgList1.length == 0" src="../../../../static/carfront.png"
  3369. style="width: 100%; height: 100%" />
  3370. <div slot="file" slot-scope="{ file }" v-if="imgList1.length > 0">
  3371. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3372. <span class="el-upload-list__item-actions">
  3373. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList1', 'imgList1')">
  3374. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3375. <i class="el-icon-delete"></i>
  3376. </span>
  3377. </span>
  3378. </div>
  3379. </el-upload>
  3380. </div>
  3381. <div class="aaa">
  3382. <span>2.行驶证副页</span>
  3383. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList1', 'imgList2', 'D01')
  3384. " :file-list="imgList2" ref="upload2" :class="{ styleB: imgList2.length === 1 }">
  3385. <img v-show="imgList2.length == 0" src="../../../../static/carback.png"
  3386. style="width: 100%; height: 100%" />
  3387. <div slot="file" slot-scope="{ file }">
  3388. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3389. <span class="el-upload-list__item-actions">
  3390. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList1', 'imgList2')">
  3391. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3392. <i class="el-icon-delete"></i>
  3393. </span>
  3394. </span>
  3395. </div>
  3396. </el-upload>
  3397. </div>
  3398. <div class="aaa">
  3399. <span>3.机动车辆登记证书</span>
  3400. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList1', 'imgList12', 'TAR05')
  3401. " :file-list="imgList12" ref="upload2" :class="{ styleB: imgList12.length === 1 }">
  3402. <img v-show="imgList12.length == 0" src="../../../../static/carback.png"
  3403. style="width: 100%; height: 100%" />
  3404. <div slot="file" slot-scope="{ file }">
  3405. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3406. <span class="el-upload-list__item-actions">
  3407. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList1', 'imgList12')">
  3408. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3409. <i class="el-icon-delete"></i>
  3410. </span>
  3411. </span>
  3412. </div>
  3413. </el-upload>
  3414. </div>
  3415. <div class="aaa">
  3416. <span>4.新车合格证</span>
  3417. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3418. drivingupload(file, 'imageList5', 'imgList9', 'XC00')
  3419. " :file-list="imgList9" multiple ref="upload3" :class="{ styleB: imgList9.length === 1 }">
  3420. <img v-show="imgList9.length == 0" src="../../../../static/userfront.png"
  3421. style="width: 100%; height: 100%" />
  3422. <div slot="file" slot-scope="{ file }">
  3423. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3424. <span class="el-upload-list__item-actions">
  3425. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList5', 'imgList9')">
  3426. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3427. <i class="el-icon-delete"></i>
  3428. </span>
  3429. </span>
  3430. </div>
  3431. </el-upload>
  3432. </div>
  3433. <div class="aaa">
  3434. <span>5.购车发票</span>
  3435. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3436. drivingupload(file, 'imageList5', 'imgList10', 'GC00')
  3437. " :file-list="imgList10" multiple ref="upload4" :class="{ styleB: imgList10.length === 1 }">
  3438. <img v-show="imgList10.length == 0" src="../../../../static/userfront.png"
  3439. style="width: 100%; height: 100%" />
  3440. <div slot="file" slot-scope="{ file }">
  3441. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3442. <span class="el-upload-list__item-actions">
  3443. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList5', 'imgList10')">
  3444. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3445. <i class="el-icon-delete"></i>
  3446. </span>
  3447. </span>
  3448. </div>
  3449. </el-upload>
  3450. </div>
  3451. </div>
  3452. <div class="flex f-wrap" id="owner">
  3453. <div class="aaa">
  3454. <span>1.车主身份证(正面)</span>
  3455. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList2', 'imgList3', 'C02')
  3456. " :file-list="imgList3" multiple ref="upload3" :class="{ styleB: imgList3.length === 1 }">
  3457. <img v-show="imgList3.length == 0" src="../../../../static/userfront.png"
  3458. style="width: 100%; height: 100%" />
  3459. <div slot="file" slot-scope="{ file }">
  3460. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3461. <span class="el-upload-list__item-actions">
  3462. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList2', 'imgList3')">
  3463. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3464. <i class="el-icon-delete"></i>
  3465. </span>
  3466. </span>
  3467. </div>
  3468. </el-upload>
  3469. </div>
  3470. <div class="aaa">
  3471. <span>2.车主身份证(反面)</span>
  3472. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList2', 'imgList4', 'D02')
  3473. " :file-list="imgList4" multiple ref="upload4" :class="{ styleB: imgList4.length === 1 }">
  3474. <img v-show="imgList4.length == 0" src="../../../../static/userback.png"
  3475. style="width: 100%; height: 100%" />
  3476. <div slot="file" slot-scope="{ file }">
  3477. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3478. <span class="el-upload-list__item-actions">
  3479. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList2', 'imgList4')">
  3480. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3481. <i class="el-icon-delete"></i>
  3482. </span>
  3483. </span>
  3484. </div>
  3485. </el-upload>
  3486. </div>
  3487. <div class="aaa">
  3488. <span>3.车主营业执照</span>
  3489. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag multiple
  3490. :on-change="(file) => drivingupload(file, 'imageList2', 'imgList26', 'Y02')" ref="upload4"
  3491. :file-list="imgList26" :class="{ styleB: imgList26.length === 1 }">
  3492. <img v-show="imgList26.length == 0" src="../../../../static/userfront.png"
  3493. style="width: 100%; height: 100%" :class="{ styleB: imgList26.length === 1 }" />
  3494. <div slot="file" slot-scope="{ file }">
  3495. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3496. <span class="el-upload-list__item-actions">
  3497. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList2', 'imgList26')">
  3498. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3499. <i class="el-icon-delete"></i>
  3500. </span>
  3501. </span>
  3502. </div>
  3503. </el-upload>
  3504. </div>
  3505. </div>
  3506. <div class="flex f-wrap" id="applicant">
  3507. <div class="aaa">
  3508. <span>1.投保人身份证(正面)</span>
  3509. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList3', 'imgList5', 'C03')
  3510. " :file-list="imgList5" multiple ref="upload5" :class="{ styleB: imgList5.length === 1 }">
  3511. <img v-show="imgList5.length == 0" src="../../../../static/userfront.png"
  3512. style="width: 100%; height: 100%" />
  3513. <div slot="file" slot-scope="{ file }">
  3514. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3515. <span class="el-upload-list__item-actions">
  3516. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList3', 'imgList5')">
  3517. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3518. <i class="el-icon-delete"></i>
  3519. </span>
  3520. </span>
  3521. </div>
  3522. </el-upload>
  3523. </div>
  3524. <div class="aaa">
  3525. <span>2.投保人身份证(反面)</span>
  3526. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList3', 'imgList6', 'D03')
  3527. " :file-list="imgList6" multiple ref="upload6" :class="{ styleB: imgList6.length === 1 }">
  3528. <img v-show="imgList6.length == 0" src="../../../../static/userback.png"
  3529. style="width: 100%; height: 100%" />
  3530. <div slot="file" slot-scope="{ file }">
  3531. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3532. <span class="el-upload-list__item-actions">
  3533. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList3', 'imgList6')">
  3534. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3535. <i class="el-icon-delete"></i>
  3536. </span>
  3537. </span>
  3538. </div>
  3539. </el-upload>
  3540. </div>
  3541. <div class="aaa">
  3542. <span>3.投保人营业执照</span>
  3543. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList3', 'imgList27', 'Y03')
  3544. " :file-list="imgList27" multiple ref="upload6" :class="{ styleB: imgList27.length === 1 }">
  3545. <img v-show="imgList27.length == 0" src="../../../../static/userfront.png"
  3546. style="width: 100%; height: 100%" />
  3547. <div slot="file" slot-scope="{ file }">
  3548. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3549. <span class="el-upload-list__item-actions">
  3550. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList3', 'imgList27')">
  3551. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3552. <i class="el-icon-delete"></i>
  3553. </span>
  3554. </span>
  3555. </div>
  3556. </el-upload>
  3557. </div>
  3558. </div>
  3559. <div class="flex f-wrap">
  3560. <div class="aaa">
  3561. <span id="insured">1.被保人身份证(正面)</span>
  3562. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList4', 'imgList7', 'C04')
  3563. " :file-list="imgList7" multiple ref="upload7" :class="{ styleB: imgList7.length === 1 }">
  3564. <img v-show="imgList7.length == 0" src="../../../../static/userfront.png"
  3565. style="width: 100%; height: 100%" />
  3566. <div slot="file" slot-scope="{ file }">
  3567. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3568. <span class="el-upload-list__item-actions">
  3569. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList4', 'imgList7')">
  3570. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3571. <i class="el-icon-delete"></i>
  3572. </span>
  3573. </span>
  3574. </div>
  3575. </el-upload>
  3576. </div>
  3577. <div class="aaa">
  3578. <span>2.被保人身份证(反面)</span>
  3579. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList4', 'imgList8', 'D04')
  3580. " :file-list="imgList8" multiple ref="upload8" :class="{ styleB: imgList8.length === 1 }">
  3581. <img v-show="imgList8.length == 0" src="../../../../static/userback.png"
  3582. style="width: 100%; height: 100%" />
  3583. <div slot="file" slot-scope="{ file }">
  3584. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3585. <span class="el-upload-list__item-actions">
  3586. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList4', 'imgList8')">
  3587. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3588. <i class="el-icon-delete"></i>
  3589. </span>
  3590. </span>
  3591. </div>
  3592. </el-upload>
  3593. </div>
  3594. <div class="aaa">
  3595. <span>3.被保人营业执照</span>
  3596. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList4', 'imgList28', 'Y04')
  3597. " :file-list="imgList28" multiple ref="upload8" :class="{ styleB: imgList28.length === 1 }">
  3598. <img v-show="imgList28.length == 0" src="../../../../static/userfront.png"
  3599. style="width: 100%; height: 100%" />
  3600. <div slot="file" slot-scope="{ file }">
  3601. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3602. <span class="el-upload-list__item-actions">
  3603. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList4', 'imgList28')">
  3604. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3605. <i class="el-icon-delete"></i>
  3606. </span>
  3607. </span>
  3608. </div>
  3609. </el-upload>
  3610. </div>
  3611. </div>
  3612. <div class="flex f-wrap" id="relationship">
  3613. <div class="aaa">
  3614. <span>1.关系证明</span>
  3615. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3616. drivingupload(file, 'imageList5', 'imgList11', 'GX00')
  3617. " :file-list="imgList11" multiple ref="upload3" :class="{ styleB: imgList11.length === 1 }">
  3618. <img v-show="imgList11.length == 0" src="../../../../static/userfront.png"
  3619. style="width: 100%; height: 100%" />
  3620. <div slot="file" slot-scope="{ file }">
  3621. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3622. <span class="el-upload-list__item-actions">
  3623. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList5', 'imgList11')">
  3624. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3625. <i class="el-icon-delete"></i>
  3626. </span>
  3627. </span>
  3628. </div>
  3629. </el-upload>
  3630. </div>
  3631. </div>
  3632. <div class="flex f-wrap" id="yanchezhao">
  3633. <div class="aaa">
  3634. <span>1.验车照(车架)</span>
  3635. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3636. drivingupload(file, 'imageList6', 'imgList13', 'C0500')
  3637. " :file-list="imgList13" multiple ref="upload3" :class="{ styleB: imgList13.length === 1 }">
  3638. <img v-show="imgList13.length == 0" src="../../../../static/userfront.png"
  3639. style="width: 100%; height: 100%" />
  3640. <div slot="file" slot-scope="{ file }">
  3641. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3642. <span class="el-upload-list__item-actions">
  3643. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList13')">
  3644. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3645. <i class="el-icon-delete"></i>
  3646. </span>
  3647. </span>
  3648. </div>
  3649. </el-upload>
  3650. </div>
  3651. <div class="aaa">
  3652. <span>2.验车照(后左)</span>
  3653. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3654. drivingupload(file, 'imageList6', 'imgList14', 'C0501')
  3655. " :file-list="imgList14" multiple ref="upload3" :class="{ styleB: imgList14.length === 1 }">
  3656. <img v-show="imgList14.length == 0" src="../../../../static/userfront.png"
  3657. style="width: 100%; height: 100%" />
  3658. <div slot="file" slot-scope="{ file }">
  3659. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3660. <span class="el-upload-list__item-actions">
  3661. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList14')">
  3662. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3663. <i class="el-icon-delete"></i>
  3664. </span>
  3665. </span>
  3666. </div>
  3667. </el-upload>
  3668. </div>
  3669. <div class="aaa">
  3670. <span>3.验车照(后右)</span>
  3671. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3672. drivingupload(file, 'imageList6', 'imgList15', 'C0502')
  3673. " :file-list="imgList15" multiple ref="upload3" :class="{ styleB: imgList15.length === 1 }">
  3674. <img v-show="imgList15.length == 0" src="../../../../static/userfront.png"
  3675. style="width: 100%; height: 100%" />
  3676. <div slot="file" slot-scope="{ file }">
  3677. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3678. <span class="el-upload-list__item-actions">
  3679. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList15')">
  3680. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3681. <i class="el-icon-delete"></i>
  3682. </span>
  3683. </span>
  3684. </div>
  3685. </el-upload>
  3686. </div>
  3687. <div class="aaa">
  3688. <span>4.验车照(前右)</span>
  3689. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3690. drivingupload(file, 'imageList6', 'imgList16', 'C0503')
  3691. " :file-list="imgList16" multiple ref="upload3" :class="{ styleB: imgList16.length === 1 }">
  3692. <img v-show="imgList16.length == 0" src="../../../../static/userfront.png"
  3693. style="width: 100%; height: 100%" />
  3694. <div slot="file" slot-scope="{ file }">
  3695. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3696. <span class="el-upload-list__item-actions">
  3697. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList16')">
  3698. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3699. <i class="el-icon-delete"></i>
  3700. </span>
  3701. </span>
  3702. </div>
  3703. </el-upload>
  3704. </div>
  3705. <div class="aaa">
  3706. <span>5.验车照(前左)</span>
  3707. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3708. drivingupload(file, 'imageList6', 'imgList17', 'C0504')
  3709. " :file-list="imgList17" multiple ref="upload3" :class="{ styleB: imgList17.length === 1 }">
  3710. <img v-show="imgList17.length == 0" src="../../../../static/userfront.png"
  3711. style="width: 100%; height: 100%" />
  3712. <div slot="file" slot-scope="{ file }">
  3713. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3714. <span class="el-upload-list__item-actions">
  3715. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList17')">
  3716. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3717. <i class="el-icon-delete"></i>
  3718. </span>
  3719. </span>
  3720. </div>
  3721. </el-upload>
  3722. </div>
  3723. <div class="aaa">
  3724. <span>6.验车照(正前)</span>
  3725. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3726. drivingupload(file, 'imageList6', 'imgList18', 'C0506')
  3727. " :file-list="imgList18" multiple ref="upload3" :class="{ styleB: imgList18.length === 1 }">
  3728. <img v-show="imgList18.length == 0" src="../../../../static/userfront.png"
  3729. style="width: 100%; height: 100%" />
  3730. <div slot="file" slot-scope="{ file }">
  3731. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3732. <span class="el-upload-list__item-actions">
  3733. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList18')">
  3734. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3735. <i class="el-icon-delete"></i>
  3736. </span>
  3737. </span>
  3738. </div>
  3739. </el-upload>
  3740. </div>
  3741. <div class="aaa">
  3742. <span>7.验车照(正后)</span>
  3743. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3744. drivingupload(file, 'imageList6', 'imgList19', 'C0507')
  3745. " :file-list="imgList19" multiple ref="upload3" :class="{ styleB: imgList19.length === 1 }">
  3746. <img v-show="imgList19.length == 0" src="../../../../static/userfront.png"
  3747. style="width: 100%; height: 100%" />
  3748. <div slot="file" slot-scope="{ file }">
  3749. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3750. <span class="el-upload-list__item-actions">
  3751. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList19')">
  3752. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3753. <i class="el-icon-delete"></i>
  3754. </span>
  3755. </span>
  3756. </div>
  3757. </el-upload>
  3758. </div>
  3759. <div class="aaa">
  3760. <span>8.验车照(人车合影)</span>
  3761. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3762. drivingupload(file, 'imageList6', 'imgList20', 'C0505')
  3763. " :file-list="imgList20" multiple ref="upload3" :class="{ styleB: imgList20.length === 1 }">
  3764. <img v-show="imgList20.length == 0" src="../../../../static/userfront.png"
  3765. style="width: 100%; height: 100%" />
  3766. <div slot="file" slot-scope="{ file }">
  3767. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3768. <span class="el-upload-list__item-actions">
  3769. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList20')">
  3770. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3771. <i class="el-icon-delete"></i>
  3772. </span>
  3773. </span>
  3774. </div>
  3775. </el-upload>
  3776. </div>
  3777. <div class="aaa">
  3778. <span>9.验车照(地标合影)</span>
  3779. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3780. drivingupload(file, 'imageList6', 'imgList21', 'C0508')
  3781. " :file-list="imgList21" multiple ref="upload3" :class="{ styleB: imgList21.length === 1 }">
  3782. <img v-show="imgList21.length == 0" src="../../../../static/userfront.png"
  3783. style="width: 100%; height: 100%" />
  3784. <div slot="file" slot-scope="{ file }">
  3785. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3786. <span class="el-upload-list__item-actions">
  3787. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList21')">
  3788. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3789. <i class="el-icon-delete"></i>
  3790. </span>
  3791. </span>
  3792. </div>
  3793. </el-upload>
  3794. </div>
  3795. <div class="aaa">
  3796. <span>10.验车照(工作台)</span>
  3797. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3798. drivingupload(file, 'imageList6', 'imgList22', 'C0509')
  3799. " :file-list="imgList22" multiple ref="upload3" :class="{ styleB: imgList22.length === 1 }">
  3800. <img v-show="imgList22.length == 0" src="../../../../static/userfront.png"
  3801. style="width: 100%; height: 100%" />
  3802. <div slot="file" slot-scope="{ file }">
  3803. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3804. <span class="el-upload-list__item-actions">
  3805. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList22')">
  3806. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3807. <i class="el-icon-delete"></i>
  3808. </span>
  3809. </span>
  3810. </div>
  3811. </el-upload>
  3812. </div>
  3813. <div class="aaa">
  3814. <span>11.验车照(天窗)</span>
  3815. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3816. drivingupload(file, 'imageList6', 'imgList23', 'C0510')
  3817. " :file-list="imgList23" multiple ref="upload3" :class="{ styleB: imgList23.length === 1 }">
  3818. <img v-show="imgList23.length == 0" src="../../../../static/userfront.png"
  3819. style="width: 100%; height: 100%" />
  3820. <div slot="file" slot-scope="{ file }">
  3821. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3822. <span class="el-upload-list__item-actions">
  3823. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList23')">
  3824. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3825. <i class="el-icon-delete"></i>
  3826. </span>
  3827. </span>
  3828. </div>
  3829. </el-upload>
  3830. </div>
  3831. </div>
  3832. <div class="flex f-wrap" id="snbaodan">
  3833. <div class="aaa">
  3834. <span>1.上年商业险保单</span>
  3835. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3836. drivingupload(file, 'imageList6', 'imgList24', 'LAST_INSURANCE_POLICY')
  3837. " :file-list="imgList24" multiple ref="upload3" :class="{ styleB: imgList24.length === 1 }">
  3838. <img v-show="imgList24.length == 0" src="../../../../static/userfront.png"
  3839. style="width: 100%; height: 100%" />
  3840. <div slot="file" slot-scope="{ file }">
  3841. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3842. <span class="el-upload-list__item-actions">
  3843. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList24')">
  3844. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3845. <i class="el-icon-delete"></i>
  3846. </span>
  3847. </span>
  3848. </div>
  3849. </el-upload>
  3850. </div>
  3851. </div>
  3852. <div class="flex f-wrap" id="shouquanshu">
  3853. <div class="aaa">
  3854. <span>1.授权书</span>
  3855. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3856. drivingupload(file, 'imageList6', 'imgList25', 'SQ00')
  3857. " :file-list="imgList25" multiple ref="upload3" :class="{ styleB: imgList25.length === 1 }">
  3858. <img v-show="imgList25.length == 0" src="../../../../static/userfront.png"
  3859. style="width: 100%; height: 100%" />
  3860. <div slot="file" slot-scope="{ file }">
  3861. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3862. <span class="el-upload-list__item-actions">
  3863. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList25')">
  3864. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3865. <i class="el-icon-delete"></i>
  3866. </span>
  3867. </span>
  3868. </div>
  3869. </el-upload>
  3870. </div>
  3871. </div>
  3872. </el-col>
  3873. </el-row>
  3874. <span slot="footer" class="dialog-footer">
  3875. <el-button size="small" @click="imageUploaddialogVisible = false">取 消</el-button>
  3876. <el-button size="small" type="primary" @click="uploadinformation">上传资料</el-button>
  3877. </span>
  3878. </el-dialog>
  3879. <!-- 调整险种弹窗 -->
  3880. <el-dialog title="调整险种" :visible.sync="typeDialogVisible" width="60%" top="5vh" :before-close="handleCloseType">
  3881. <div class="typedialog-style addyiwai typedialog-style1" v-if="productId != '034001' && productId != '034002'">
  3882. <div class="typedialog-title"><i class="el-icon-circle-check"
  3883. style="color: #D42426; font-size: 20px; margin-right: 10px;"></i>交通事故强制责任险:</div>
  3884. <el-table :data="typeJqTable" border style="width: 100%" stripe header-cell-class-name="table-header">
  3885. <el-table-column prop="date" label="保障范围" align="center"></el-table-column>
  3886. <el-table-column prop="date1" label="保额(元)" align="center"></el-table-column>
  3887. <!-- <el-table-column prop="date2" label="总计" align="center"></el-table-column> -->
  3888. </el-table>
  3889. </div>
  3890. <div class="typedialog-style addyiwai typedialog-style2" v-if="productId != '0330'">
  3891. <!-- 商业险 -->
  3892. <div class="typedialog-title"><i class="el-icon-circle-check"
  3893. style="color: #D42426; font-size: 20px; margin-right: 10px;"></i>商业险详情:</div>
  3894. <div class="flex f-c">
  3895. <div class="flex j-s a-c more-title back">
  3896. <div style="width: 550px; padding-left: 100px" class="flex j-s a-c">
  3897. <span>险别</span>
  3898. <span>保额(元)</span>
  3899. </div>
  3900. </div>
  3901. <div class="a-c back" v-for="(insureitem, insureindex) in typeDialogData.kinds" :key="insureindex">
  3902. <el-row style="background: #FFF;" type="flex" align="middle">
  3903. <el-col :span="10" class="more-data-left">
  3904. <div class="zhuxian" v-if="insureitem.grouping == 'main'" style="background: #Y0282A">主险</div>
  3905. <div class="zhuxian" v-if="insureitem.grouping == 'additional'">附加险</div>
  3906. <div class="zhuxian" v-if="insureitem.grouping == 'service'">增值服务</div>
  3907. <span>
  3908. <el-checkbox v-model="insureitem.checked" :disabled="insureitem.Required">
  3909. <!-- <span :class="insureitem.grouping != 'additional' ? 'opacity1' : 'opacity0'">{{ insureitem.kindName }}</span> -->
  3910. <span class="opacity1">{{ insureitem.kindName }}</span>
  3911. <el-input v-show="insureitem.kindCode == 'D4' ||
  3912. insureitem.kindCode == 'MJ4' ||
  3913. insureitem.kindCode == 'SY_FJ_YBW2'
  3914. " v-model="sumseatCount" style="width: 40px; margin: 0 5px" size="small" placeholder
  3915. disabled></el-input>
  3916. <span v-show="insureitem.kindCode == 'D4' ||
  3917. insureitem.kindCode == 'MJ4' ||
  3918. insureitem.kindCode == 'SY_FJ_YBW2'
  3919. ">座</span>
  3920. </el-checkbox>
  3921. </span>
  3922. </el-col>
  3923. <el-col :span="14" class="more-data-right">
  3924. <el-select v-if="insureitem.amtList" filterable v-model="insureitem.amount" placeholder="请选择"
  3925. @change="insureitemChange($event, insureitem)" size="small" style="width: 300px">
  3926. <el-option :label="item.label" :value="item.value" v-for="(item, index) in insureitem.amtList"
  3927. :key="index"></el-option>
  3928. </el-select>
  3929. <span v-else>
  3930. <el-input-number size="small" style="width: 280px; margin-right: 10px" v-model="insureitem.amount"
  3931. :min="0"></el-input-number>次
  3932. </span>
  3933. </el-col>
  3934. </el-row>
  3935. </div>
  3936. </div>
  3937. </div>
  3938. <div class="typedialog-style addyiwai typedialog-style3">
  3939. <!-- <div class="typedialog-title"><i class="el-icon-circle-check" style="color: #D42426; font-size: 20px; margin-right: 10px;"></i>驾意险详情:</div> -->
  3940. <div class="typedialog-style">
  3941. <div class="flex a-c" style="margin-bottom: 20px;">
  3942. <div class="typedialog-title addyiwai-title"><i class="el-icon-circle-check"
  3943. style="color: #D42426; font-size: 20px; margin-right: 10px;"></i>驾意险方案配置:</div>
  3944. <div v-if="false" class="addyiwai-title-btn">添加配置</div>
  3945. </div>
  3946. <div v-if="true">
  3947. <div v-for="(listItem, listIndex) in jiayiDialogData.drivingTypeList" :key="listIndex"
  3948. v-show="listIndex == 0">
  3949. <el-checkbox-group v-model="checkList" @change="handleChangeJiayi(listItem, listIndex)">
  3950. <el-checkbox v-for="(item, index) in listItem.children" :key="index" :label="item">{{ item.typeName
  3951. }}</el-checkbox>
  3952. </el-checkbox-group>
  3953. <div v-for="(item, index) in checkList" :key="index" style="margin-bottom: 20px;">
  3954. <div v-if="totalCompanyList[typeDialogIndex].cnName == 'zijin'">
  3955. <el-row style="margin-bottom: 20px;">
  3956. <el-col :span="10">
  3957. {{ item.typeName }}
  3958. <el-select v-if="item.detail" style="width: 300px;" v-model="item.selectList" clearable multiple
  3959. @change="handleChangeSelect(index)" size="small" placeholder="请选择">
  3960. <el-option v-for="(i, ind) in item.detail" :key="ind" :label="i.alias" :value="i.alias">
  3961. </el-option>
  3962. </el-select>
  3963. </el-col>
  3964. </el-row>
  3965. <div v-for="(dataItem, dataIndex) in item.tableData" :key="dataIndex">
  3966. <el-col :span="6">
  3967. 份数
  3968. <el-input v-model="dataItem.quantity" style="width: 120px;" size="small"
  3969. @input="(e) => { changeInput(e, listIndex, index, 'minus', item.tableData.minQuantity) }">
  3970. <template slot="prepend"><i class="el-icon-minus"
  3971. @click="numberChange(listIndex, index, 'minus', dataItem.minQuantity, dataIndex)"></i></template>
  3972. <template slot="append"><i class="el-icon-plus"
  3973. @click="numberChange(listIndex, index, 'plus', dataItem.minQuantity, dataIndex)"></i></template>
  3974. </el-input>
  3975. </el-col>
  3976. <el-col v-if="item.tableData" :span="4" class="flex a-c">保费:{{ Number(dataItem.sumPremium) *
  3977. dataItem.quantity }}元</el-col>
  3978. </div>
  3979. <el-table v-if="item.tableData && item.tableData.length" :data="item.tableData" border
  3980. style="width: 100%; margin-top: 20px;" stripe header-cell-class-name="table-header">
  3981. <el-table-column prop="name" label="保险责任" align="center">
  3982. <template slot-scope="scope">
  3983. <span>{{ scope.row.insDrivingIntentionInsuranceSon[0].name }}</span>
  3984. </template>
  3985. </el-table-column>
  3986. <el-table-column prop="amount" label="保险金额" align="center">
  3987. <template slot-scope="scope">
  3988. <span>{{ scope.row.insDrivingIntentionInsuranceSon[0].amount }}</span>
  3989. </template>
  3990. </el-table-column>
  3991. <el-table-column prop="premium" label="保费(元)" align="center">
  3992. <template slot-scope="scope">
  3993. <span>{{ scope.row.insDrivingIntentionInsuranceSon[0].premium }}</span>
  3994. </template>
  3995. </el-table-column>
  3996. <el-table-column prop="quantity" label="份数" align="center"></el-table-column>
  3997. <el-table-column prop="sumPremium" label="总保费" align="center"></el-table-column>
  3998. </el-table>
  3999. </div>
  4000. <div v-else>
  4001. <!-- totalCompanyList[typeDialogIndex].cnName == 'guoRen' || totalCompanyList[typeDialogIndex].cnName == 'ansheng' || totalCompanyList[typeDialogIndex].cnName == 'dajia' -->
  4002. <el-row v-if="false">
  4003. <el-col :span="8">
  4004. {{ item.typeName }}
  4005. <el-select v-model="item.select" style="width: 400px;" clearable
  4006. @change="handleChangeSelectGuoren(index)" size="small" placeholder="请选择" v-if="item.detail">
  4007. <el-option v-for="(i, ind) in item.detail" :key="ind" :label="i.alias" :value="i.alias">
  4008. </el-option>
  4009. </el-select>
  4010. </el-col>
  4011. <el-col :span="5">
  4012. <el-select v-model="item.select1" clearable @change="handleChangeSelect(index)" size="small"
  4013. placeholder="请选择" v-if="item.tableData1">
  4014. <el-option v-for="(i, ind) in item.tableData1" :key="ind" :label="i.alias" :value="i.alias">
  4015. </el-option>
  4016. </el-select>
  4017. </el-col>
  4018. <el-col :span="6" v-if="item.tableData">
  4019. 份数
  4020. <!-- <el-input-number v-model="item.tableData.quantity" :step="1" :min="1" :max="10" @change="numberChange(listIndex, index)" size="small"></el-input-number> -->
  4021. <el-input v-model="item.tableData.quantity" style="width: 120px;" size="small"
  4022. @input="(e) => { changeInput(e, listIndex, index, 'minus', item.tableData.minQuantity) }">
  4023. <template slot="prepend"><i class="el-icon-minus"
  4024. @click="numberChange(listIndex, index, 'minus', item.tableData.minQuantity)"></i></template>
  4025. <template slot="append"><i class="el-icon-plus"
  4026. @click="numberChange(listIndex, index, 'plus', item.tableData.minQuantity)"></i></template>
  4027. </el-input>
  4028. </el-col>
  4029. <el-col v-if="item.tableData" :span="4">保费:{{ Number(item.tableData.sumPremium) *
  4030. item.tableData.quantity }}元</el-col>
  4031. <!-- <el-col :span="1"><i class="el-icon-delete"></i></el-col> -->
  4032. </el-row>
  4033. <el-row v-else>
  4034. <el-col :span="12">
  4035. {{ item.typeName }}
  4036. <el-select v-model="item.select" style="width: 400px;" clearable
  4037. @change="handleChangeSelect(index)" size="small" placeholder="请选择" v-if="item.detail">
  4038. <el-option v-for="(i, ind) in item.detail" :key="ind" :label="i.alias" :value="i.alias">
  4039. </el-option>
  4040. </el-select>
  4041. </el-col>
  4042. <el-col :span="6" v-if="item.tableData">
  4043. 份数
  4044. <!-- <el-input-number v-model="item.tableData.quantity" :step="1" :min="1" :max="10" @change="numberChange(listIndex, index)" label="描述文字" size="small"></el-input-number> -->
  4045. <el-input v-model="item.tableData.quantity" style="width: 120px;" size="small"
  4046. @input="(e) => { changeInput(e, listIndex, index, 'minus', item.tableData.minQuantity) }">
  4047. <template slot="prepend"><i class="el-icon-minus"
  4048. @click="numberChange(listIndex, index, 'minus', item.tableData.minQuantity)"></i></template>
  4049. <template slot="append"><i class="el-icon-plus"
  4050. @click="numberChange(listIndex, index, 'plus', item.tableData.minQuantity)"></i></template>
  4051. </el-input>
  4052. </el-col>
  4053. <el-col v-if="item.tableData" :span="4" class="flex a-c">保费:{{ Number(item.tableData.sumPremium) *
  4054. item.tableData.quantity }}元</el-col>
  4055. <!-- <el-col :span="1"><i class="el-icon-delete"></i></el-col> -->
  4056. </el-row>
  4057. <el-table v-if="item.tableData" :data="item.tableData.insDrivingIntentionInsuranceSon" border
  4058. style="width: 100%; margin-top: 20px;" stripe header-cell-class-name="table-header">
  4059. <el-table-column prop="name" label="保险责任" align="center"></el-table-column>
  4060. <el-table-column prop="amount" label="保险金额" align="center"></el-table-column>
  4061. <el-table-column prop="premium" label="保费(元)" align="center"></el-table-column>
  4062. </el-table>
  4063. </div>
  4064. </div>
  4065. </div>
  4066. </div>
  4067. <div v-else>
  4068. <div v-for="(item, index) in 3" :key="index" style="margin-bottom: 20px;">
  4069. <el-row style="margin-bottom: 20px;">
  4070. <el-col :span="10">
  4071. 驾意选择
  4072. <!-- v-model="value" -->
  4073. <el-select size="small" clearable placeholder="请选择">
  4074. <el-option v-for="item in 3" :key="item.value" :label="22" :value="22">
  4075. </el-option>
  4076. </el-select>
  4077. </el-col>
  4078. <el-col :span="9">
  4079. 份数
  4080. <el-input-number label="描述文字" size="small"></el-input-number>
  4081. </el-col>
  4082. <el-col :span="4">保费:15元</el-col>
  4083. <el-col :span="1"><i class="el-icon-delete"></i></el-col>
  4084. </el-row>
  4085. <el-table :data="item.table" border style="width: 100%" stripe header-cell-class-name="table-header">
  4086. <el-table-column prop="date" label="保险责任" align="center"></el-table-column>
  4087. <el-table-column prop="date1" label="保险金额" align="center"></el-table-column>
  4088. <el-table-column prop="date2" label="保费(元)" align="center"></el-table-column>
  4089. </el-table>
  4090. </div>
  4091. </div>
  4092. </div>
  4093. </div>
  4094. <span slot="footer" class="dialog-footer">
  4095. <el-button size="small" @click="handleCloseType">取 消</el-button>
  4096. <el-button size="small" type="primary" @click="subTypeDialog">确 定</el-button>
  4097. </span>
  4098. </el-dialog>
  4099. <!-- 驾意险 -->
  4100. <el-dialog title="驾意险" :visible.sync="addYiwaiDialogVisible" width="60%" top="5vh"
  4101. :before-close="handleCloseAddYiwai" class="addyiwai">
  4102. <div class="typedialog-style">
  4103. <el-card>
  4104. <div class="flex a-c" style="margin-bottom: 20px;">
  4105. <div class="addyiwai-title">驾意险方案配置</div>
  4106. <div v-if="false" class="addyiwai-title-btn">添加配置</div>
  4107. </div>
  4108. <div v-if="true">
  4109. <div v-for="(listItem, listIndex) in jiayiDialogData.drivingTypeList" :key="listIndex">
  4110. <el-checkbox-group v-model="checkList" @change="handleChangeJiayi(listItem, listIndex)">
  4111. <el-checkbox v-for="(item, index) in listItem.children" :key="index" :label="item">{{ item.typeName
  4112. }}</el-checkbox>
  4113. </el-checkbox-group>
  4114. <div v-for="(item, index) in checkList" :key="index" style="margin-bottom: 20px;">
  4115. <div v-if="totalCompanyList[typeDialogIndex].cnName == 'zijin'">
  4116. <el-row style="margin-bottom: 20px;">
  4117. <el-col :span="10">
  4118. {{ item.typeName }}
  4119. <el-select v-if="item.detail" v-model="item.selectList" clearable multiple
  4120. @change="handleChangeSelect(index)" size="small" placeholder="请选择">
  4121. <el-option v-for="(i, ind) in item.detail" :key="ind" :label="i.projectName"
  4122. :value="i.projectName">
  4123. </el-option>
  4124. </el-select>
  4125. </el-col>
  4126. </el-row>
  4127. <el-table v-if="item.tableData" :data="item.tableData" border style="width: 100%; margin-top: 20px;"
  4128. stripe header-cell-class-name="table-header">
  4129. <el-table-column prop="name" label="保险责任" align="center">
  4130. <template slot-scope="scope">
  4131. <span>{{ scope.row.insDrivingIntentionInsuranceSon[0].name }}</span>
  4132. </template>
  4133. </el-table-column>
  4134. <el-table-column prop="amount" label="保险金额" align="center">
  4135. <template slot-scope="scope">
  4136. <span>{{ scope.row.insDrivingIntentionInsuranceSon[0].amount }}</span>
  4137. </template>
  4138. </el-table-column>
  4139. <el-table-column prop="premium" label="保费(元)" align="center">
  4140. <template slot-scope="scope">
  4141. <span>{{ scope.row.insDrivingIntentionInsuranceSon[0].premium }}</span>
  4142. </template>
  4143. </el-table-column>
  4144. <el-table-column prop="quantity" label="份数" align="center"></el-table-column>
  4145. <el-table-column prop="sumPremium" label="总保费" align="center"></el-table-column>
  4146. </el-table>
  4147. </div>
  4148. <div v-else>
  4149. <!-- totalCompanyList[typeDialogIndex].cnName == 'guoRen' || totalCompanyList[typeDialogIndex].cnName == 'ansheng' -->
  4150. <el-row v-if="false">
  4151. <el-col :span="8">
  4152. {{ item.typeName }}
  4153. <el-select v-model="item.select" clearable @change="handleChangeSelectGuoren(index)" size="small"
  4154. placeholder="请选择" v-if="item.detail">
  4155. <el-option v-for="(i, ind) in item.detail" :key="ind" :label="i.alias" :value="i.alias">
  4156. </el-option>
  4157. </el-select>
  4158. </el-col>
  4159. <el-col :span="5">
  4160. <el-select v-model="item.select1" clearable @change="handleChangeSelect(index)" size="small"
  4161. placeholder="请选择" v-if="item.tableData1">
  4162. <el-option v-for="(i, ind) in item.tableData1" :key="ind" :label="i.alias" :value="i.alias">
  4163. </el-option>
  4164. </el-select>
  4165. </el-col>
  4166. <el-col :span="6" v-if="item.tableData">
  4167. 份数
  4168. <!-- <el-input-number v-model="item.tableData.quantity" :step="1" :min="1" :max="10" @change="numberChange(listIndex, index)" size="small"></el-input-number> -->
  4169. <el-input v-model="item.tableData.quantity" style="width: 120px;" size="small"
  4170. @input="(e) => { changeInput(e, listIndex, index, 'minus', item.tableData.minQuantity) }">
  4171. <template slot="prepend"><i class="el-icon-minus"
  4172. @click="numberChange(listIndex, index, 'minus', item.tableData.minQuantity)"></i></template>
  4173. <template slot="append"><i class="el-icon-plus"
  4174. @click="numberChange(listIndex, index, 'plus', item.tableData.minQuantity)"></i></template>
  4175. </el-input>
  4176. </el-col>
  4177. <el-col v-if="item.tableData" :span="4">保费:{{ Number(item.tableData.sumPremium) *
  4178. item.tableData.quantity }}元</el-col>
  4179. <!-- <el-col :span="1"><i class="el-icon-delete"></i></el-col> -->
  4180. </el-row>
  4181. <el-row v-else>
  4182. <el-col :span="10">
  4183. {{ item.typeName }}
  4184. <el-select v-model="item.select" clearable @change="handleChangeSelect(index)" size="small"
  4185. placeholder="请选择" v-if="item.detail">
  4186. <el-option v-for="(i, ind) in item.detail" :key="ind" :label="i.projectName"
  4187. :value="i.projectName">
  4188. </el-option>
  4189. </el-select>
  4190. </el-col>
  4191. <el-col :span="9" v-if="item.tableData">
  4192. 份数
  4193. <!-- <el-input-number v-model="item.tableData.quantity" :step="1" :min="1" :max="10" @change="numberChange(listIndex, index)" label="描述文字" size="small"></el-input-number> -->
  4194. <el-input v-model="item.tableData.quantity" style="width: 120px;" size="small"
  4195. @input="(e) => { changeInput(e, listIndex, index, 'minus', item.tableData.minQuantity) }">
  4196. <template slot="prepend"><i class="el-icon-minus"
  4197. @click="numberChange(listIndex, index, 'minus', item.tableData.minQuantity)"></i></template>
  4198. <template slot="append"><i class="el-icon-plus"
  4199. @click="numberChange(listIndex, index, 'plus', item.tableData.minQuantity)"></i></template>
  4200. </el-input>
  4201. </el-col>
  4202. <el-col v-if="item.tableData" :span="4">保费:{{ Number(item.tableData.sumPremium) *
  4203. item.tableData.quantity }}元</el-col>
  4204. <!-- <el-col :span="1"><i class="el-icon-delete"></i></el-col> -->
  4205. </el-row>
  4206. <el-table v-if="item.tableData" :data="item.tableData.insDrivingIntentionInsuranceSon" border
  4207. style="width: 100%; margin-top: 20px;" stripe header-cell-class-name="table-header">
  4208. <el-table-column prop="name" label="保险责任" align="center"></el-table-column>
  4209. <el-table-column prop="amount" label="保险金额" align="center"></el-table-column>
  4210. <el-table-column prop="premium" label="保费(元)" align="center"></el-table-column>
  4211. </el-table>
  4212. </div>
  4213. </div>
  4214. </div>
  4215. </div>
  4216. <div v-else>
  4217. <div v-for="(item, index) in 3" :key="index" style="margin-bottom: 20px;">
  4218. <el-row style="margin-bottom: 20px;">
  4219. <el-col :span="10">
  4220. 驾意选择
  4221. <!-- v-model="value" -->
  4222. <el-select size="small" clearable placeholder="请选择">
  4223. <el-option v-for="item in 3" :key="item.value" :label="22" :value="22">
  4224. </el-option>
  4225. </el-select>
  4226. </el-col>
  4227. <el-col :span="9">
  4228. 份数
  4229. <el-input-number label="描述文字" size="small"></el-input-number>
  4230. </el-col>
  4231. <el-col :span="4">保费:15元</el-col>
  4232. <el-col :span="1"><i class="el-icon-delete"></i></el-col>
  4233. </el-row>
  4234. <el-table :data="item.table" border style="width: 100%" stripe header-cell-class-name="table-header">
  4235. <el-table-column prop="date" label="保险责任" align="center"></el-table-column>
  4236. <el-table-column prop="date1" label="保险金额" align="center"></el-table-column>
  4237. <el-table-column prop="date2" label="保费(元)" align="center"></el-table-column>
  4238. </el-table>
  4239. </div>
  4240. </div>
  4241. </el-card>
  4242. </div>
  4243. <span slot="footer" class="dialog-footer">
  4244. <el-button size="small" @click="handleCloseAddYiwai">取 消</el-button>
  4245. <el-button size="small" type="primary" @click="handleAddYiWai">确 定</el-button>
  4246. </span>
  4247. </el-dialog>
  4248. <!-- 详情 -->
  4249. <el-dialog :title="detailJiaYiTitle" :visible.sync="showDetailJiaYiVisible" width="60%" top="5vh"
  4250. :before-close="handleCloseShowDetailJiaYi">
  4251. <div class="typedialog-style addyiwai typedialog-style1"
  4252. v-if="productId != '034001' && productId != '034002' && detailJiaYiTitle == '查看详情'">
  4253. <div class="typedialog-title"><i class="el-icon-circle-check"
  4254. style="color: #D42426; font-size: 20px; margin-right: 10px;"></i>交通事故强制责任险:</div>
  4255. <el-table :data="typeJqTable" border style="width: 100%" stripe header-cell-class-name="table-header">
  4256. <el-table-column prop="date" label="保障范围" align="center"></el-table-column>
  4257. <el-table-column prop="date1" label="保额(元)" align="center"></el-table-column>
  4258. </el-table>
  4259. </div>
  4260. <div class="typedialog-style typedialog-style2" v-if="productId != '0330' && detailJiaYiTitle == '查看详情'">
  4261. <div class="typedialog-title"><i class="el-icon-circle-check"
  4262. style="color: #D42426; font-size: 20px; margin-right: 10px;"></i>商业险详情:</div>
  4263. <div class="a-c back">
  4264. <el-row style="background: #F7F7F9;">
  4265. <el-col :span="10" class="more-data-left">险别</el-col>
  4266. <el-col :span="14" class="more-data-right">保额(元)</el-col>
  4267. </el-row>
  4268. <el-row style="background: #FFF;" v-for="(insureitem, insureindex) in typeDialogData.shangyeList"
  4269. :key="insureindex">
  4270. <el-col :span="10" class="more-data-left">
  4271. <div class="zhuxian" v-if="insureitem.grouping == 'main'" style="background: #Y0282A">主险</div>
  4272. <div class="zhuxian" v-if="insureitem.grouping == 'additional'">附加险</div>
  4273. <div class="zhuxian" v-if="insureitem.grouping == 'service'">增值服务</div>
  4274. <span>
  4275. <span class="opacity1">{{ insureitem.kindName }}</span>
  4276. <el-input v-show="insureitem.kindCode == 'D4' ||
  4277. insureitem.kindCode == 'MJ4' ||
  4278. insureitem.kindCode == 'SY_FJ_YBW2'
  4279. " v-model="sumseatCount" style="width: 40px; margin: 0 5px" size="mini" placeholder
  4280. disabled></el-input>
  4281. <span v-show="insureitem.kindCode == 'D4' ||
  4282. insureitem.kindCode == 'MJ4' ||
  4283. insureitem.kindCode == 'SY_FJ_YBW2'
  4284. ">座</span>
  4285. </span>
  4286. </el-col>
  4287. <el-col :span="14" class="more-data-right">
  4288. {{ toWan(insureitem.amount) }}
  4289. </el-col>
  4290. </el-row>
  4291. <div v-show="typeDialogData && typeDialogData.shangyeList && !typeDialogData.shangyeList.length">暂无</div>
  4292. </div>
  4293. </div>
  4294. <div class="typedialog-style typedialog-style3" v-if="showDetailtable && showDetailtable.length">
  4295. <div class="typedialog-title" style="display: flex; justify-content: space-between;">
  4296. <div><i class="el-icon-circle-check" style="color: #D42426; font-size: 20px; margin-right: 10px;"></i>驾意险详情:
  4297. </div>
  4298. <div class="typedialog-title">( 驾驶人意外单份保额 )如下</div>
  4299. </div>
  4300. <el-table v-for="(item, index) in showDetailtable" :key="index" :data="item" border style="width: 100%" stripe
  4301. header-cell-class-name="table-header">
  4302. <el-table-column prop="name" label="保险责任名称" align="center"></el-table-column>
  4303. <el-table-column prop="amount" label="保额(元)" align="center"></el-table-column>
  4304. <el-table-column prop="premium" label="保费(元)" align="center"></el-table-column>
  4305. </el-table>
  4306. <div v-if="showDetailtable && !showDetailtable.length">暂无</div>
  4307. <div class="typedialog-title" v-if="detailJiaYiTitle == '查看详情'">已选份数:</div>
  4308. <div class="jiayi-style" v-if="detailJiaYiTitle == '查看详情'">
  4309. <el-row v-for="(item, index) in typeDialogData.drivingList" :key="index">
  4310. <el-col :span="10">
  4311. <div class="jiayi-style-title">产品名称</div>
  4312. <div class="jiayi-style-line">{{ item.alias || item.projectName }}</div>
  4313. </el-col>
  4314. <!-- <el-col :span="6">
  4315. <div class="jiayi-style-title">座位数</div>
  4316. <div class="jiayi-style-line">{{ }}</div>
  4317. </el-col> -->
  4318. <el-col :span="6">
  4319. <div class="jiayi-style-title">份数</div>
  4320. <div class="jiayi-style-line">{{ item.quantity }}</div>
  4321. </el-col>
  4322. <el-col :span="3">
  4323. <div class="jiayi-style-title">每份</div>
  4324. <div class="jiayi-style-line">{{ item.sumPremium }}</div>
  4325. </el-col>
  4326. <el-col :span="3">
  4327. <div class="jiayi-style-title">合计</div>
  4328. <div class="jiayi-style-line">{{ Number(item.sumPremium) * item.quantity }}</div>
  4329. </el-col>
  4330. </el-row>
  4331. <div v-if="typeDialogData && typeDialogData.drivingList && !typeDialogData.drivingList.length">暂无</div>
  4332. </div>
  4333. </div>
  4334. <span slot="footer" class="dialog-footer">
  4335. <!-- <el-button size="small" @click="handleCloseShowDetailJiaYi">取 消</el-button> -->
  4336. <el-button size="small" type="primary" @click="handleCloseShowDetailJiaYi">确 定</el-button>
  4337. </span>
  4338. </el-dialog>
  4339. <!-- 驾意险详情 -->
  4340. <el-dialog :title="detailJiaYiTitle" :visible.sync="showDetailJiaYiVisible1" width="60%" top="5vh" v-dialogDrag
  4341. :before-close="handleCloseShowDetailJiaYi">
  4342. <div class="typedialog-style typedialog-style3" v-if="showDetailtable && showDetailtable.length">
  4343. <div class="typedialog-title" style="display: flex; justify-content: space-between;">
  4344. <div><i class="el-icon-circle-check" style="color: #D42426; font-size: 20px; margin-right: 10px;"></i>驾意险详情:
  4345. </div>
  4346. <div class="typedialog-title">( 驾驶人意外单份保额 )如下</div>
  4347. </div>
  4348. <el-table v-for="(item, index) in showDetailtable" :key="index" :data="item" border style="width: 100%" stripe
  4349. header-cell-class-name="table-header">
  4350. <el-table-column prop="name" label="保险责任名称" align="center"></el-table-column>
  4351. <el-table-column prop="amount" label="保额(元)" align="center"></el-table-column>
  4352. <el-table-column prop="premium" label="保费(元)" align="center"></el-table-column>
  4353. </el-table>
  4354. <div v-if="showDetailtable && !showDetailtable.length">暂无</div>
  4355. </div>
  4356. <span slot="footer" class="dialog-footer">
  4357. <!-- <el-button size="small" @click="handleCloseShowDetailJiaYi">取 消</el-button> -->
  4358. <el-button size="small" type="primary" @click="handleCloseShowDetailJiaYi">确 定</el-button>
  4359. </span>
  4360. </el-dialog>
  4361. <!-- 选择特约 showTeYueVisible -->
  4362. <el-dialog title="选择特约" :visible.sync="showTeYueVisible" width="40%" top="5vh" :before-close="handleCloseTeYue"
  4363. class="teYuedialog-style">
  4364. <div>
  4365. <!-- <el-input placeholder="请输入内容" style="margin-bottom: 20px;">
  4366. <el-button type="primary" slot="append" icon="el-icon-search"></el-button>
  4367. </el-input> -->
  4368. <el-table :data="teYueTable" style="width: 100%" stripe header-cell-class-name="table-header">
  4369. <el-table-column type="selection" width="55"></el-table-column>
  4370. <el-table-column type="expand">
  4371. <!-- <template slot-scope="props">
  4372. <div class="table-title">特约内容</div>
  4373. <div class="table-title">保险公司温馨提示:根据车船税征收管理规定,次年生效交强险业务如本年提前续保,请您仍须在下一年度年底前完成跨年提前续保并缴纳车船税,否则会产生车船税滞纳金。</div>
  4374. </template> -->
  4375. </el-table-column>
  4376. <el-table-column prop="date" label="特约名称" align="center">
  4377. </el-table-column>
  4378. <el-table-column prop="date1" label="特约险种" align="center"></el-table-column>
  4379. <el-table-column prop="date2" label="特约代码" align="center"></el-table-column>
  4380. </el-table>
  4381. </div>
  4382. <span slot="footer" class="dialog-footer">
  4383. <span>已选择了 <b style="color: #F96646;"> 1</b> 条特约</span>
  4384. <span style="flex: 1;"></span>
  4385. <el-button size="small" @click="showTeYueVisible = false">取 消</el-button>
  4386. <el-button size="small" type="primary" @click="showTeYueVisible = false">确 定</el-button>
  4387. </span>
  4388. </el-dialog>
  4389. <floatingBar />
  4390. <!-- 生成验车二维码 -->
  4391. <el-dialog :visible.sync="validateCarCodeShow" width="30%" title="验车二维码">
  4392. <div class="QRCode" ref="myQrcode"></div>
  4393. </el-dialog>
  4394. </div>
  4395. </template>
  4396. <script>
  4397. import QrCode from "qrcodejs2";
  4398. let _self;
  4399. import Cookies from "js-cookie";
  4400. import CommonUtil from "@/utils/comutil.js";
  4401. import floatingBar from "@/components/customerService/floatingBar.vue";
  4402. import {
  4403. getAgeByIdCard,
  4404. searchkey,
  4405. addressCode,
  4406. getGenderByIdCard
  4407. } from "@/utils/validate.js";
  4408. import citydata from "@/assets/js/citydata.js";
  4409. import yongchengData from "../../../assets/js/yongchengData";
  4410. import { regionData, codeToText } from "element-china-area-data";
  4411. import { base64ToPath } from "@/common/image-tools-base64.js";
  4412. import quotationDialog from "@/views/Core/components/quotationDialog.vue";
  4413. import quotationDialogPro from "@/views/Core/components/quotationDialogPro.vue";
  4414. import detailsDialog from "@/views/Core/components/detailsDialog.vue";
  4415. import imageDialog from "@/views/Core/components/imageDialog.vue";
  4416. import { mapState } from "vuex";
  4417. import Ktletter1Popover from "./components/LetterPopover.vue";
  4418. import dayjs from "dayjs";
  4419. export default {
  4420. inject: ["reload"],
  4421. name: "qrCode",
  4422. data() {
  4423. var checkpurchasePrice = (rule, value, callback) => {
  4424. if (!value) {
  4425. callback(new Error("新车购置价不能为空"));
  4426. } else if (value == 0) {
  4427. callback(new Error("新车购置价不能为零"));
  4428. } else {
  4429. callback();
  4430. }
  4431. };
  4432. var checkframeNo = (rule, value, callback) => {
  4433. if (value.length < 17) {
  4434. callback(new Error("车架号不足17位"));
  4435. } else if (
  4436. value.indexOf("I") != "-1" ||
  4437. value.indexOf("O") != "-1" ||
  4438. value.indexOf("Q") != "-1"
  4439. ) {
  4440. callback(new Error("车架号不能包含(I O Q)三个字母"));
  4441. } else {
  4442. callback();
  4443. }
  4444. };
  4445. var carPhoneValid = (rule, value, callback) => {
  4446. const plateNumber = /^([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([0-9]{5}[DF])|([DF]([A-HJ-NP-Z0-9])[0-9]{4})))|([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1})$/;
  4447. if (!value) {
  4448. callback(new Error("请输入车牌号"));
  4449. } else if (plateNumber.test(value)) {
  4450. callback();
  4451. } else {
  4452. callback(new Error("请输入正确的车牌号"));
  4453. }
  4454. };
  4455. var validateRight = (rule, value, callback) => {
  4456. if (!value) {
  4457. callback(new Error("请选择能源种类"));
  4458. } else if (this.carInfo.licenseNo.length === 8 && value === "0") {
  4459. callback(new Error("能源类型错误,请重新选择!"));
  4460. } else {
  4461. callback();
  4462. }
  4463. };
  4464. return {
  4465. validateCarCodeShow: false,
  4466. vehicleInspectionUrl: "",
  4467. colSpan: {
  4468. xs: 24, // 超小屏幕
  4469. sm: 12, // 小屏幕
  4470. md: 12, // 中屏幕
  4471. lg: 6, // 大屏幕
  4472. xl: 6 // 超大屏幕
  4473. },
  4474. colgutter: 80,
  4475. productList: [], // 产品id列表
  4476. productId: "", // 产品id
  4477. // 选择特约
  4478. teYueTable: [{}, {}],
  4479. showTeYueVisible: false,
  4480. // 驾意险详情
  4481. jiayiDialogData: {},
  4482. showDetailJiaYiVisible: false,
  4483. showDetailJiaYiVisible1: false,
  4484. showDetailtable: [],
  4485. // 添加驾意险
  4486. checkList: [],
  4487. addYiwaiDialogVisible: false,
  4488. typeJqTable: [
  4489. { date: "死亡伤残赔偿", date1: 180000 },
  4490. { date: "医疗费用赔偿", date1: 18000 },
  4491. { date: "财产损失赔偿", date1: 2000 }
  4492. ], // 调整险种交强险表格
  4493. typeDialogVisible: false, // 调整险种弹窗
  4494. typeDialogData: [], // 调整险种弹窗商业险
  4495. typeDialogIndex: 0, // 当前 调整险种弹窗 index
  4496. inquiryNowList: [], // 现询列表
  4497. isInquiryNowDisable: false,
  4498. taikangtemplateSelection: [], // 泰康
  4499. taikangInsuranceDataTable: [],
  4500. taikangaccidentDataList: [],
  4501. accidentPremiumTk: "",
  4502. accidentPremiumPA: "",
  4503. accidentFormTk: {
  4504. quantity: "1",
  4505. sumPremium: 0
  4506. },
  4507. pinganDataDetail: [],
  4508. pinganDataDetailVisible: false,
  4509. accidentFormPA: [
  4510. {
  4511. quantity: "1",
  4512. premium: 0,
  4513. pingantemplateSelection: "",
  4514. pinganInsuranceDataTable: [],
  4515. pinganInsurancetype: ""
  4516. },
  4517. {
  4518. quantity: "1",
  4519. premium: 0,
  4520. pingantemplateSelection: "",
  4521. pinganInsuranceDataTable: [],
  4522. pinganInsurancetype: ""
  4523. },
  4524. {
  4525. quantity: "1",
  4526. premium: 0,
  4527. pingantemplateSelection: "",
  4528. pinganInsuranceDataTable: [],
  4529. pinganInsurancetype: ""
  4530. }
  4531. ],
  4532. taikangaccidentalDrivingVo: {},
  4533. pinganaccidentalDrivingVo: {
  4534. 0: {},
  4535. 1: {},
  4536. 2: []
  4537. },
  4538. nowCostsId: undefined, // 现询
  4539. policyNumberForm: {
  4540. jqpolicyno: "",
  4541. sypolicyno: "",
  4542. jypolicyno: "",
  4543. jqpremium: "",
  4544. sypremium: "",
  4545. jypremium: "",
  4546. taxamount: "",
  4547. commissionFeevalue: "",
  4548. otherFeevalue: "",
  4549. jqSuperviseCostsProportion: "",
  4550. sySuperviseCostsProportion: "",
  4551. noSuperviseCostsProportion: "",
  4552. jqOtherCostsProportion: "",
  4553. syOtherCostsProportion: "",
  4554. noOtherCostsProportion: "",
  4555. jqReceivableProportion: "",
  4556. syReceivableProportion: "",
  4557. noReceivableProportion: "",
  4558. jqPolicyList: [],
  4559. syPolicyList: [],
  4560. jqSignList: [],
  4561. noPolicyList: [],
  4562. noCostsProportion: "",
  4563. jqCostsProportion: "",
  4564. syCostsProportion: ""
  4565. },
  4566. watermarkedImage: "",
  4567. redictInfoMsg: [],
  4568. redictInfodialogVisible: false,
  4569. qrcodeWidth: "180",
  4570. qrcodeHeight: "180",
  4571. activeName: "1",
  4572. isTaxSourceModel: "",
  4573. tabLiIndex: 0,
  4574. tabLimenu: [
  4575. {
  4576. name: "车辆信息",
  4577. scroll: "vehicle"
  4578. },
  4579. {
  4580. name: "车主信息",
  4581. scroll: "owner"
  4582. },
  4583. {
  4584. name: "投保人信息",
  4585. scroll: "applicant"
  4586. },
  4587. {
  4588. name: "被保人信息",
  4589. scroll: "insured"
  4590. },
  4591. {
  4592. name: "关系证明",
  4593. scroll: "relationship"
  4594. },
  4595. {
  4596. name: "验车照",
  4597. scroll: "yanchezhao"
  4598. },
  4599. {
  4600. name: "上年商业险保单",
  4601. scroll: "snbaodan"
  4602. },
  4603. {
  4604. name: "授权书",
  4605. scroll: "shouquanshu"
  4606. }
  4607. ],
  4608. packageValue: "",
  4609. packageOptions: [],
  4610. zhongmeitemplateSelection: "", //中煤驾意险产品选中值
  4611. zhongmeiInsuranceData: [], //中煤驾意险产品列表数据
  4612. zhongmeiInsuranceDataTable: [], //中煤驾意险产品明细方案数据
  4613. zhongmeiaccidentalDrivingVo: {}, //中煤驾意险最终选中字段
  4614. pinganInsuranceData: [], //平安驾意险产品列表数据
  4615. currentCell: null,
  4616. feeDetailInfo: [], //费用明细信息
  4617. immediatelyValue: false,
  4618. isRetractZJ: false,
  4619. isRetractHB: false,
  4620. isRetractZM: false,
  4621. isRetractASTP: false,
  4622. isRetractZA: false,
  4623. isRetractYC: false,
  4624. isRetractRS: false,
  4625. anshengInsurancetype: "",
  4626. iscCrownerShow: false,
  4627. isApplicantShow: false,
  4628. isInsuredShow: false,
  4629. formInline: {},
  4630. anshengtemplateSelection: "", //安盛
  4631. anshengInsuranceData: [], //安盛驾意险
  4632. anshengInsuranceDataTable: [], //安盛驾意险
  4633. anshengaccidentalDrivingVo: {}, //安盛驾意险
  4634. hengbangtemplateSelection: "", //恒邦
  4635. hengbangInsuranceData: [], //恒邦驾意险
  4636. hengbangInsuranceDataTable: [],
  4637. hengbangaccidentalDrivingVo: {}, //太平洋驾意险
  4638. taipingyangtemplateSelection: "", //太平洋
  4639. taipingyangInsuranceData: [], //太平洋驾意险
  4640. taipingyangInsuranceDataTable: [],
  4641. taipingyangaccidentalDrivingVo: {}, //太平洋驾意险
  4642. insuranceHN: "", //华农
  4643. huanongInsuranceData: [], //华农驾意险
  4644. huanongInsuranceDataTable: [],
  4645. huanongaccidentalDrivingVo: {}, //华农驾意险
  4646. renshouaccidentalDrivingVo: {}, //人寿意外险
  4647. renshouInsuranceData: [], //-人寿意外险list
  4648. ziJinInsuranceData: [], //-紫金意外险list
  4649. zhonganInsuranceData: [], //众安驾意险
  4650. zhonganaccidentalDrivingVo: {}, //众安驾意险
  4651. zijinInsuranceDataTable: [],
  4652. zijintemplateSelection: "",
  4653. accidentalDrivingVo: [], //-紫金意外险传参
  4654. zijinengageListData: [], //紫金特约
  4655. zijinengageList: [], //紫金特约
  4656. // ------------紫金意外险
  4657. renshoutemplateSelection: "", //人寿
  4658. renshouInsuranceDataTable: [],
  4659. zhongantemplateSelection: "", //众安
  4660. zhonganInsuranceDataTable: [],
  4661. taipingtemplateSelection: "", //太平
  4662. taipingInsuranceData: [], //太平驾意险
  4663. TPDrivingChangeInsuranceData: [],
  4664. taipingaccidentalDrivingVo: {}, //太平驾意险
  4665. licenseplate: true,
  4666. calculateLoading: false, //保费计算按钮 节流
  4667. preserveQuoteLoading: false, //保存按钮
  4668. emporaryLoading: false,
  4669. accidentForm: {
  4670. quantity: "1",
  4671. sumPremium: 0
  4672. }, //永诚意外险内容
  4673. accidentFormHN: {
  4674. allQuantity: "1",
  4675. quantity: "1"
  4676. }, //华农意外险内容
  4677. yongchengaccidentDataList: [], //永诚意外险
  4678. yongchengtemplateSelection: "",
  4679. guoRenaccidentDataList: [], //国任意外险
  4680. guoRenInsuranceDataTable: [],
  4681. guoRenaccidentDataListChild: [],
  4682. guoRenaccidentalDrivingVo: {}, //国任驾意险
  4683. dajiatemplateSelection: "",
  4684. dajiaaccidentDataListChild: [],
  4685. dajiaaccidentForm: {},
  4686. dajiaInsuranceData: [], //大家意外险
  4687. dajiaInsuranceDataTable: [],
  4688. dajiaaccidentalDrivingVo: {},
  4689. yongchengInsuranceDataTable: [],
  4690. guoRenaccidentLoading: false,
  4691. contributingLoading: false,
  4692. guoRenaccidentPremium: "",
  4693. guoRenaccidentForm: {
  4694. quantity: "1",
  4695. sumPremium: 0
  4696. }, //国任意外险内容
  4697. accidentFormZM: {
  4698. quantity: "1",
  4699. sumPremium: 0
  4700. }, //中煤意外险内容
  4701. boHaiaccidentDataList: [], //渤海意外险
  4702. boHaigtemplateSelection: "",
  4703. boHaiaccidentForm: {
  4704. copies: "1",
  4705. policyNum: 0
  4706. },
  4707. bohaiInsuranceDataTable: [],
  4708. accidentPremium: "",
  4709. accidentPremiumZM: "",
  4710. contributingState: false, //是否为国任特约
  4711. pickerOptions: {
  4712. disabledDate(time) {
  4713. //若选择的日期小于当前日期(包含今天)
  4714. return time.getTime() > Date.now();
  4715. //若选择的日期大于当前日期(不包含今天): time.getTime() < Date.now()
  4716. //若选择的日期小于当前日期(不包含今天): time.getTime() > Date.now() - 8.64e7
  4717. //若选择的日期小于等于当前日期(包含今天): time.getTime() > Date.now()
  4718. }
  4719. },
  4720. attributionform: {
  4721. //续保查询数据
  4722. configure: [],
  4723. companyId: ""
  4724. },
  4725. continuousAction: [], //续保配置项
  4726. //永诚转保确认码
  4727. cqryCdeJq: "",
  4728. cqryCdeSy: "",
  4729. renewalCodeJq: "", //交强确认码
  4730. renewalCodeSy: "", //商业确认码
  4731. renewalCodeJqImg: "", //交强图片
  4732. renewalCodeSyImg: "", //商业图片
  4733. //-----------------
  4734. showViewer: false,
  4735. transferDateShow: false, //转移登记日期
  4736. yonganchecked: false, //永安驾意险
  4737. renbaochecked: false, //人保驾意险
  4738. zhongmeichecked: false, //中煤驾意险
  4739. hengbangchecked: false, //恒邦驾意险
  4740. taipingyangchecked: false, //太平洋驾意险
  4741. yongchengchecked: false, //永诚驾意险
  4742. yonganDrivinglist: [],
  4743. renbaoDrivinglist: [],
  4744. zhongmeiDrivinglist: [],
  4745. hengbangDrivinglist: [],
  4746. taipingyangDrivinglist: [],
  4747. yongchengDrivinglist: [],
  4748. tbczcarShow: true, //投保人同车主
  4749. bbczcarShow: false, //被保人同车主
  4750. bbtbcarShow: true, //被保人同投保人
  4751. imageUploadShow: true, //上传影像显示
  4752. ProViewImg: "", //预览图片
  4753. carfrontImg: "", //行驶证正面
  4754. carbackImg: "", //行驶证背面
  4755. userfrontImg: "", //身份证正面
  4756. userbackImg: "", //身份证背面
  4757. businessImg: "",
  4758. CarFrontFile: "", //车正面文件流
  4759. CarBackFile: "", //车背面文件流
  4760. // C02File: "",
  4761. // D02File: "",
  4762. // C03File: "",
  4763. // D03File: "",
  4764. // C04File: "",
  4765. // D04File: "",
  4766. userIndex: 1, //区分三种人员
  4767. TabName: "car", //默认选项卡
  4768. value1: "",
  4769. chexingdialogVisible: false, //车型选择 显示/隐藏
  4770. sbdmdialogVisible: false, //车型车辆识别代码选择 显示/隐藏
  4771. codedialogVisible: false, //二维码 显示/隐藏
  4772. codedialogVisiblePro: false,
  4773. uploadcardialogVisible: false, //行驶证识别 显示/隐藏
  4774. uploaduserdialogVisible: false, //身份证识别 显示/隐藏
  4775. imageUploaddialogVisible: false, //影像上传 显示/隐藏
  4776. policyUploaddialogVisible: false, //保单上传
  4777. underwritingdialogVisible: false, //核保信息 显示/隐藏
  4778. renewalCodedialogVisible: false, //转保确认码输入
  4779. hbsubmitdialogVisible: false, //核保弹框
  4780. signaturedialogVisible: false, //生成签章
  4781. signaturecode: null,
  4782. Carinsurance: {
  4783. jqinsurance: "1", //交强险
  4784. syinsurance: "1" //商业险
  4785. },
  4786. jqchecked: true,
  4787. sychecked: false,
  4788. jqstartDate: "", //交强时间
  4789. jqendDate: "", //交强时间
  4790. systartDate: "", //商业时间
  4791. syendDate: "", //商业时间
  4792. loading: false, //加载事件
  4793. reslist: [], //车型列表
  4794. userId: "", //出单工号
  4795. carInfo: {
  4796. importFlag:"",//特种车类
  4797. powerScale: "", ///功率
  4798. licenseNo: "", //车牌号
  4799. brandName: "", //车辆品牌型号
  4800. vinNo: "", //车架号
  4801. engineNo: "", //发动机号
  4802. modelCode: "", //车型编码
  4803. seatCount: null, //核定载客量 核定载人数
  4804. purchasePrice: null, //新车购置价最低,行业实际价值,协商价值
  4805. carBrand: "", //车型品牌
  4806. ciCarName: "", //行业车型名称
  4807. ciModelCode: "", //行业车型编码
  4808. completeKerbMass: "", //整备质量
  4809. exhaustScale: "", //排量
  4810. factory: "", //工厂名称
  4811. factoryid: "", //工厂编码
  4812. frameNo: "", //车架号
  4813. licenseTypeCode: "02", //号牌种类
  4814. vehicleclass: "", //车辆类型
  4815. familyName: "", //车型
  4816. modelcname: "", //车型名称
  4817. powertypecode: "", //燃料类型编码
  4818. vehicleweight: "", //总质量
  4819. limitLoad: "", //核定载质量
  4820. caryear: null, //年款
  4821. cimodelclass: "A0", //车辆种类
  4822. energyType: "0", //能源类型
  4823. enginedesc: "", //排量
  4824. registerDate: "", //注册日期
  4825. issueDate: "", //发证日期
  4826. transferFlag: 0, //过户标志
  4827. transferFlagBi: false, //商业险是否过户
  4828. transferDate: "", //过户日期
  4829. loanStatus: 0, //贷款标志
  4830. firstBeneMan: "", //第一受益人
  4831. noLicenseFlag: false, //是否新车
  4832. cartype: "", //客车A0 货车H0
  4833. carnature: "02", //使用性质
  4834. vehicleUse: "05",
  4835. property: "1" //所属性质 1个人 2企业 3机关
  4836. },
  4837. carform: {
  4838. carOwner: "", //车主
  4839. licenseNo: "", //车牌号
  4840. modelcname: "", //车辆品牌型号
  4841. frameNo: "", //车架号
  4842. engineNo: "", //发动机号
  4843. registerDate: "", //注册日期
  4844. issueDate: "", //发证日期
  4845. grossMass: "", //总质量
  4846. unladenMass: "", //整备质量
  4847. limitLoad: "", //核定载质量
  4848. approvedPassengersCapacity: "" //核定载客数
  4849. },
  4850. ownerInfoform: {
  4851. name: "",
  4852. identifyType: "",
  4853. identifyNumber: "",
  4854. age: "", //年龄
  4855. gender: "", //性别
  4856. addr: "",
  4857. email: "",
  4858. mobile: "",
  4859. identifyValidDate: "", //有效期起期
  4860. identifyValidEndDate: "", //有效期止期
  4861. organizationCode: ""
  4862. // province: "",//省
  4863. // city: "",//市
  4864. // county: "",//县
  4865. },
  4866. riskList: [], //险种大类信息
  4867. kindList: [], //商业险险别
  4868. ownerInfo: {
  4869. //车主
  4870. name: "", //姓名
  4871. identifyType: "01", //身份证类型
  4872. identifyNumber: "", //身份证号
  4873. age: "", //年龄
  4874. gender: "", //性别
  4875. addr: "", //地址
  4876. email: "", //邮箱
  4877. mobile: "", //电话
  4878. organizationCode: "",
  4879. identifyValidDate: "", //有效期起期
  4880. identifyValidEndDate: "", //有效期止期
  4881. // revenueCode: "", //税务号
  4882. leaderIdentifyNumber: "", //联系人证件号码
  4883. leaderOtherEffectiveDate: "", //联系人有效期止期
  4884. property: "1",
  4885. // province: "",//省
  4886. // city: "",//市
  4887. // county: "",//县
  4888. provinceData: [] //省市区
  4889. },
  4890. policyHolderInfo: {
  4891. //投保人
  4892. name: "", //姓名
  4893. identifyType: "01", //身份证类型
  4894. identifyNumber: "", //身份证号
  4895. age: "", //年龄
  4896. gender: "", //性别
  4897. addr: "", //地址
  4898. email: "", //邮箱
  4899. mobile: "", //电话
  4900. property: "1",
  4901. identifyValidDate: "", //有效期起期
  4902. identifyValidEndDate: "", //有效期止期
  4903. // revenueCode: "", //税务号
  4904. leaderIdentifyNumber: "", //联系人证件号码
  4905. leaderOtherEffectiveDate: "", //联系人有效期止期
  4906. organizationCode: "",
  4907. // province: "",//省
  4908. // city: "",//市
  4909. // county: "",//县
  4910. provinceData: [] //省市区
  4911. },
  4912. insuredPersonInfo: {
  4913. //被保人
  4914. name: "", //姓名
  4915. identifyType: "01", //身份证类型
  4916. identifyNumber: "", //身份证号
  4917. age: "", //年龄
  4918. gender: "", //性别
  4919. addr: "", //地址
  4920. email: "", //邮箱
  4921. mobile: "", //电话
  4922. property: "1",
  4923. identifyValidDate: "", //有效期起期
  4924. identifyValidEndDate: "", //有效期止期
  4925. // revenueCode: "", //税务号
  4926. leaderIdentifyNumber: "", //联系人证件号码
  4927. leaderOtherEffectiveDate: "", //联系人有效期止期
  4928. provinceData: [] //省市区
  4929. // province: "",//省
  4930. // city: "",//市
  4931. // county: "",//县
  4932. },
  4933. //车船税form
  4934. vehicleAndVesselTaxForm: {
  4935. taxRelifFlag: "1", //类型
  4936. identifyNumber: "", //纳税人识别号
  4937. taxpayerIdentifier: "01", //纳税人证件类型
  4938. taxpayerName: "", //纳税人名称
  4939. extendChar2: "", //减免税凭证号
  4940. paidFreeCertificate: "", //完税凭证号
  4941. relifReason: "", //减免税原因
  4942. taxComCode: "", //税务机关代码
  4943. taxComName: "", ///税务机关名称
  4944. taxDocumentDate: "", //完税日期
  4945. taxPaidAreaCode: "", //完税凭证地区代码
  4946. taxRelief: "" //减税比例
  4947. },
  4948. //车辆用途列表
  4949. vehicleList: [],
  4950. //能源种类列表
  4951. rules: {
  4952. extendChar2: [
  4953. { required: true, message: "请输入减免税凭证号", trigger: "blur" }
  4954. ],
  4955. paidFreeCertificate: [
  4956. { required: true, message: "请输入完税凭证号", trigger: "blur" }
  4957. ],
  4958. relifReason: [
  4959. { required: true, message: "请输入减免税原因", trigger: "blur" }
  4960. ],
  4961. taxComCode: [
  4962. { required: true, message: "请输入税务机关代码", trigger: "blur" }
  4963. ],
  4964. taxComName: [
  4965. { required: true, message: "请输入税务机关名称", trigger: "blur" }
  4966. ],
  4967. taxDocumentDate: [
  4968. { required: true, message: "请输入完税日期", trigger: "blur" }
  4969. ],
  4970. taxPaidAreaCode: [
  4971. { required: true, message: "请选择完税地区", trigger: "blur" }
  4972. ],
  4973. taxRelief: [
  4974. { required: true, message: "请输入减税比例", trigger: "blur" }
  4975. ],
  4976. taxpayerName: [
  4977. { required: true, message: "请输入纳税人名称", trigger: "blur" }
  4978. ],
  4979. taxpayerIdentifier: [
  4980. { required: true, message: "请选择证件类型", trigger: "blur" }
  4981. ],
  4982. taxRelifFlag: [
  4983. { required: true, message: "请选择纳税类型", trigger: "blur" }
  4984. ],
  4985. energyType: [
  4986. { required: true, validator: validateRight, trigger: "blur" }
  4987. ],
  4988. cimodelclass: [
  4989. { required: true, message: "请选择车辆种类", trigger: "blur" }
  4990. ],
  4991. carnature: [
  4992. { required: true, message: "请选择使用性质", trigger: "blur" }
  4993. ],
  4994. cartype: [
  4995. { required: true, message: "请选择车辆类型", trigger: "blur" }
  4996. ],
  4997. vehicleUse: [
  4998. { required: true, message: "请选择车辆用途", trigger: "blur" }
  4999. ],
  5000. brandName: [
  5001. { required: true, message: "请填写品牌型号", trigger: "blur" }
  5002. ],
  5003. licenseNo: [
  5004. { max: 8, message: "最多八个字符", trigger: "blur" },
  5005. { required: true, validator: carPhoneValid, trigger: "blur" }
  5006. ],
  5007. frameNo: [{ validator: checkframeNo, trigger: "blur" }],
  5008. engineNo: [
  5009. { required: true, message: "请填写发动机号", trigger: "blur" }
  5010. ],
  5011. purchasePrice: [
  5012. { required: true, validator: checkpurchasePrice, trigger: "blur" }
  5013. ],
  5014. registerDate: [
  5015. { required: true, message: "请选择注册时间", trigger: "blur" }
  5016. ],
  5017. issueDate: [
  5018. { required: true, message: "请选择发证日期", trigger: "blur" }
  5019. ],
  5020. transferDate: [
  5021. { required: true, message: "请选择转移登记日期", trigger: "blur" }
  5022. ],
  5023. seatCount: [
  5024. { required: true, message: "请输入座位数", trigger: "blur" }
  5025. ],
  5026. completeKerbMass: [
  5027. { required: true, message: "请输入整备质量", trigger: "blur" }
  5028. ],
  5029. name: [{ required: true, message: "请填写姓名", trigger: "blur" }],
  5030. taxamount: [
  5031. { required: true, message: "请填写车船税", trigger: "blur" }
  5032. ],
  5033. signDate: [
  5034. { required: true, message: "请填写签单日期", trigger: "blur" }
  5035. ],
  5036. // identifyNumber: [
  5037. // { required: true, message: "请填写证件号", trigger: "blur" },
  5038. // { min: 18, max: 18, message: "长度在18个字符", trigger: "blur" },
  5039. // {
  5040. // 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]$/,
  5041. // message: "请输入正确的证件号",
  5042. // trigger: "blur"
  5043. // }
  5044. // ],
  5045. identifyValidDate: [
  5046. { required: true, message: "请选择起期", trigger: "blur" }
  5047. ],
  5048. identifyValidEndDate: [
  5049. { required: true, message: "请选择止期", trigger: "blur" }
  5050. ],
  5051. addr: [
  5052. { required: true, message: "请填写地址", trigger: "blur" },
  5053. { min: 8, message: "最少8个字符", trigger: "blur" }
  5054. ],
  5055. mobile: [
  5056. { required: true, message: "请填写手机号", trigger: "blur" },
  5057. { min: 11, max: 11, message: "长度在11个字符", trigger: "blur" },
  5058. {
  5059. pattern: /^(13[0-9]|14[01456879]|15[0-3,5-9]|16[2567]|17[0-8]|18[0-9]|19[0-3,5-9])\d{8}$/,
  5060. message: "请输入正确的手机号",
  5061. trigger: "blur"
  5062. }
  5063. ],
  5064. email: [
  5065. { min: 10, max: 20, message: "最少10个字符", trigger: "blur" },
  5066. {
  5067. pattern: /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/,
  5068. message: "请输入正确的邮箱",
  5069. trigger: "blur"
  5070. }
  5071. ],
  5072. property: [
  5073. { required: true, message: "请选择所属性质", trigger: "blur" }
  5074. ]
  5075. },
  5076. CIInsureList: {
  5077. //交强险
  5078. amount: "1",
  5079. amountDesc: "投保",
  5080. amtList: [
  5081. {
  5082. label: "不投保",
  5083. value: "0"
  5084. },
  5085. {
  5086. label: "投保",
  5087. value: "1"
  5088. }
  5089. ],
  5090. kindCode: "0507",
  5091. kindName: "交强险",
  5092. desc: "国家强制规定购买的险种,对第三方的人身或财产损失提供基本保障"
  5093. },
  5094. BIInsureList: {
  5095. //商业险
  5096. amount: "0",
  5097. amountDesc: "投保",
  5098. amtList: [
  5099. {
  5100. label: "不投保",
  5101. value: "0"
  5102. },
  5103. {
  5104. label: "投保",
  5105. value: "1"
  5106. }
  5107. ],
  5108. kindCode: "0510",
  5109. kindName: "商业险",
  5110. desc: "国家强制规定购买的险种,对第三方的人身或财产损失提供基本保障"
  5111. },
  5112. insureList: [
  5113. {
  5114. amount: "0",
  5115. amountDesc: "投保",
  5116. coveragePremium: 0,
  5117. amtList: [
  5118. {
  5119. label: "不投保",
  5120. value: "0"
  5121. },
  5122. {
  5123. label: "投保",
  5124. value: "1"
  5125. }
  5126. ],
  5127. kindCode: "A",
  5128. isMainRisk: true,
  5129. kindName: "机动车损失险",
  5130. desc:
  5131. "保险期间内,被保险人或被保险机动车驾驶人在使用被保险机动车过程中,因自然灾害、意外事故、机动车被盗窃、抢劫、抢夺等情况(详见保险条款)造成被保险机动车直接损失,且不属于免除保险人责任的范围,保险人依照本保险合同的约定负责赔偿的险种。"
  5132. },
  5133. {
  5134. amount: "0",
  5135. amountDesc: "不投保",
  5136. coveragePremium: 0,
  5137. amtList: [
  5138. {
  5139. label: "不投保",
  5140. value: "0"
  5141. },
  5142. {
  5143. label: "10万",
  5144. value: "100000"
  5145. },
  5146. {
  5147. label: "15万",
  5148. value: "150000"
  5149. },
  5150. {
  5151. label: "20万",
  5152. value: "200000"
  5153. },
  5154. {
  5155. label: "30万",
  5156. value: "300000"
  5157. },
  5158. {
  5159. label: "50万",
  5160. value: "500000"
  5161. },
  5162. {
  5163. label: "100万",
  5164. value: "1000000"
  5165. },
  5166. {
  5167. label: "150万",
  5168. value: "1500000"
  5169. },
  5170. {
  5171. label: "200万",
  5172. value: "2000000"
  5173. },
  5174. {
  5175. label: "250万",
  5176. value: "2500000"
  5177. },
  5178. {
  5179. label: "300万",
  5180. value: "3000000"
  5181. },
  5182. {
  5183. label: "400万",
  5184. value: "4000000"
  5185. },
  5186. {
  5187. label: "500万",
  5188. value: "5000000"
  5189. },
  5190. {
  5191. label: "600万",
  5192. value: "6000000"
  5193. },
  5194. {
  5195. label: "800万",
  5196. value: "8000000"
  5197. },
  5198. {
  5199. label: "1000万",
  5200. value: "10000000"
  5201. }
  5202. ],
  5203. kindCode: "B",
  5204. isMainRisk: true,
  5205. kindName: "第三者责任险",
  5206. desc:
  5207. "保险期间内,被保险人或其允许的驾驶人在使用被保险机动车过程中发生意外事故,致使第三者遭受人身伤亡或财产直接损毁,依法应当对第三者承担的损害赔偿责任,且不属于免除保险人责任的范围,保险人依照本保险合同的约定,对于超过机动车交通事故责任强制保险各分项赔偿限额的部分负责赔偿的险种。"
  5208. },
  5209. {
  5210. amount: "0",
  5211. amountDesc: "1万",
  5212. coveragePremium: 0,
  5213. amtList: [
  5214. {
  5215. label: "不投保",
  5216. value: "0"
  5217. },
  5218. {
  5219. label: "1万",
  5220. value: "10000"
  5221. },
  5222. {
  5223. label: "2万",
  5224. value: "20000"
  5225. },
  5226. {
  5227. label: "3万",
  5228. value: "30000"
  5229. },
  5230. {
  5231. label: "4万",
  5232. value: "40000"
  5233. },
  5234. {
  5235. label: "5万",
  5236. value: "50000"
  5237. },
  5238. {
  5239. label: "6万",
  5240. value: "60000"
  5241. },
  5242. {
  5243. label: "7万",
  5244. value: "70000"
  5245. },
  5246. {
  5247. label: "8万",
  5248. value: "80000"
  5249. },
  5250. {
  5251. label: "9万",
  5252. value: "90000"
  5253. },
  5254. {
  5255. label: "10万",
  5256. value: "100000"
  5257. },
  5258. {
  5259. label: "15万",
  5260. value: "150000"
  5261. },
  5262. {
  5263. label: "20万",
  5264. value: "200000"
  5265. },
  5266. {
  5267. label: "25万",
  5268. value: "250000"
  5269. },
  5270. {
  5271. label: "30万",
  5272. value: "300000"
  5273. },
  5274. {
  5275. label: "35万",
  5276. value: "350000"
  5277. },
  5278. {
  5279. label: "40万",
  5280. value: "400000"
  5281. },
  5282. {
  5283. label: "45万",
  5284. value: "450000"
  5285. },
  5286. {
  5287. label: "50万",
  5288. value: "500000"
  5289. }
  5290. ],
  5291. kindCode: "D3",
  5292. isMainRisk: true,
  5293. kindName: "司机责任险",
  5294. desc:
  5295. "保险期间内,被保险人或其允许的驾驶人在使用被保险机动车过程中发生意外事故,致使车上人员遭受人身伤亡,且不属于免除保险人责任的范围,依法应当对车上人员承担的损害赔偿责任,保险人依照本保险合同的约定负责赔偿的险种。"
  5296. },
  5297. {
  5298. amount: "0",
  5299. amountDesc: "1万",
  5300. coveragePremium: 0,
  5301. amtList: [
  5302. {
  5303. label: "不投保",
  5304. value: "0"
  5305. },
  5306. {
  5307. label: "1万",
  5308. value: "10000"
  5309. },
  5310. {
  5311. label: "2万",
  5312. value: "20000"
  5313. },
  5314. {
  5315. label: "3万",
  5316. value: "30000"
  5317. },
  5318. {
  5319. label: "4万",
  5320. value: "40000"
  5321. },
  5322. {
  5323. label: "5万",
  5324. value: "50000"
  5325. },
  5326. {
  5327. label: "6万",
  5328. value: "60000"
  5329. },
  5330. {
  5331. label: "7万",
  5332. value: "70000"
  5333. },
  5334. {
  5335. label: "8万",
  5336. value: "80000"
  5337. },
  5338. {
  5339. label: "9万",
  5340. value: "90000"
  5341. },
  5342. {
  5343. label: "10万",
  5344. value: "100000"
  5345. },
  5346. {
  5347. label: "15万",
  5348. value: "150000"
  5349. },
  5350. {
  5351. label: "20万",
  5352. value: "200000"
  5353. },
  5354. {
  5355. label: "25万",
  5356. value: "250000"
  5357. },
  5358. {
  5359. label: "30万",
  5360. value: "300000"
  5361. },
  5362. {
  5363. label: "35万",
  5364. value: "350000"
  5365. },
  5366. {
  5367. label: "40万",
  5368. value: "400000"
  5369. },
  5370. {
  5371. label: "45万",
  5372. value: "450000"
  5373. },
  5374. {
  5375. label: "50万",
  5376. value: "500000"
  5377. }
  5378. ],
  5379. kindCode: "D4",
  5380. isMainRisk: true,
  5381. kindName: "乘客责任险",
  5382. desc:
  5383. "保险期间内,被保险人或其允许的驾驶人在使用被保险机动车过程中发生意外事故,致使车上人员遭受人身伤亡,且不属于免除保险人责任的范围,依法应当对车上人员承担的损害赔偿责任,保险人依照本保险合同的约定负责赔偿的险种。"
  5384. },
  5385. {
  5386. amount: "0",
  5387. amountDesc: "不投保",
  5388. coveragePremium: 0,
  5389. amtList: [
  5390. {
  5391. label: "不投保",
  5392. value: "0"
  5393. },
  5394. {
  5395. label: "2千",
  5396. value: "2000"
  5397. },
  5398. {
  5399. label: "5千",
  5400. value: "5000"
  5401. },
  5402. {
  5403. label: "1万",
  5404. value: "10000"
  5405. },
  5406. {
  5407. label: "2万",
  5408. value: "20000"
  5409. }
  5410. ],
  5411. desc:
  5412. "保险期间内,被保险机动车在被保险人或被保险机动车驾驶人使用过程中,发生无明显碰撞痕迹的车身划痕损失,保险人按照保险合同约定负责赔偿的险种",
  5413. isMainRisk: false,
  5414. kindCode: "L",
  5415. kindName: "车身划痕险",
  5416. mainRiskCodeList: "A"
  5417. },
  5418. {
  5419. amount: "0",
  5420. amountDesc: "不投保",
  5421. coveragePremium: 0,
  5422. amtList: [
  5423. {
  5424. label: "不投保",
  5425. value: "0"
  5426. },
  5427. {
  5428. label: "5%",
  5429. value: "5"
  5430. },
  5431. {
  5432. label: "10%",
  5433. value: "10"
  5434. },
  5435. {
  5436. label: "15%",
  5437. value: "15"
  5438. },
  5439. {
  5440. label: "20%",
  5441. value: "20"
  5442. }
  5443. ],
  5444. desc:
  5445. "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
  5446. isMainRisk: false,
  5447. kindCode: "MJ1",
  5448. kindName: "绝对免赔率特约险(车损)",
  5449. mainRiskCodeList: "A"
  5450. },
  5451. {
  5452. amount: "0",
  5453. amountDesc: "不投保",
  5454. coveragePremium: 0,
  5455. amtList: [
  5456. {
  5457. label: "不投保",
  5458. value: "0"
  5459. },
  5460. {
  5461. label: "5%",
  5462. value: "5"
  5463. },
  5464. {
  5465. label: "10%",
  5466. value: "10"
  5467. },
  5468. {
  5469. label: "15%",
  5470. value: "15"
  5471. },
  5472. {
  5473. label: "20%",
  5474. value: "20"
  5475. }
  5476. ],
  5477. desc:
  5478. "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
  5479. isMainRisk: false,
  5480. kindCode: "MJ2",
  5481. kindName: "绝对免赔率特约险(三者)",
  5482. mainRiskCodeList: "B"
  5483. },
  5484. {
  5485. amount: "0",
  5486. amountDesc: "不投保",
  5487. coveragePremium: 0,
  5488. amtList: [
  5489. {
  5490. label: "不投保",
  5491. value: "0"
  5492. },
  5493. {
  5494. label: "5%",
  5495. value: "5"
  5496. },
  5497. {
  5498. label: "10%",
  5499. value: "10"
  5500. },
  5501. {
  5502. label: "15%",
  5503. value: "15"
  5504. },
  5505. {
  5506. label: "20%",
  5507. value: "20"
  5508. }
  5509. ],
  5510. desc:
  5511. "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
  5512. isMainRisk: false,
  5513. kindCode: "MJ3",
  5514. kindName: "绝对免赔率特约险(司机)",
  5515. mainRiskCodeList: "D3"
  5516. },
  5517. {
  5518. amount: "0",
  5519. amountDesc: "不投保",
  5520. coveragePremium: 0,
  5521. amtList: [
  5522. {
  5523. label: "不投保",
  5524. value: "0"
  5525. },
  5526. {
  5527. label: "5%",
  5528. value: "5"
  5529. },
  5530. {
  5531. label: "10%",
  5532. value: "10"
  5533. },
  5534. {
  5535. label: "15%",
  5536. value: "15"
  5537. },
  5538. {
  5539. label: "20%",
  5540. value: "20"
  5541. }
  5542. ],
  5543. desc:
  5544. "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
  5545. isMainRisk: false,
  5546. kindCode: "MJ4",
  5547. kindName: "绝对免赔率特约险(乘客)",
  5548. mainRiskCodeList: "D4"
  5549. },
  5550. {
  5551. amount: "0",
  5552. amountDesc: "不投保",
  5553. coveragePremium: 0,
  5554. amtList: [
  5555. {
  5556. label: "不投保",
  5557. value: "0"
  5558. },
  5559. {
  5560. label: "1万",
  5561. value: "10000"
  5562. },
  5563. {
  5564. label: "2万",
  5565. value: "20000"
  5566. },
  5567. {
  5568. label: "4万",
  5569. value: "40000"
  5570. },
  5571. {
  5572. label: "5万",
  5573. value: "50000"
  5574. },
  5575. {
  5576. label: "8万",
  5577. value: "80000"
  5578. },
  5579. {
  5580. label: "10万",
  5581. value: "100000"
  5582. },
  5583. {
  5584. label: "20万",
  5585. value: "200000"
  5586. },
  5587. {
  5588. label: "30万",
  5589. value: "300000"
  5590. },
  5591. {
  5592. label: "50万",
  5593. value: "500000"
  5594. },
  5595. {
  5596. label: "100万",
  5597. value: "1000000"
  5598. },
  5599. {
  5600. label: "200万",
  5601. value: "2000000"
  5602. },
  5603. {
  5604. label: "300万",
  5605. value: "3000000"
  5606. }
  5607. ],
  5608. kindCode: "SY_FJ_YBW1",
  5609. isMainRisk: true,
  5610. kindName: "附加医保-三者",
  5611. desc: "附加医保外医疗费用责任险(机动车第三者责任保险)"
  5612. },
  5613. {
  5614. amount: "0",
  5615. amountDesc: "不投保",
  5616. coveragePremium: 0,
  5617. amtList: [
  5618. {
  5619. label: "不投保",
  5620. value: "0"
  5621. },
  5622. {
  5623. label: "1万",
  5624. value: "10000"
  5625. },
  5626. {
  5627. label: "2万",
  5628. value: "20000"
  5629. },
  5630. {
  5631. label: "5万",
  5632. value: "50000"
  5633. },
  5634. {
  5635. label: "10万",
  5636. value: "100000"
  5637. }
  5638. ],
  5639. kindCode: "SY_FJ_YBW2",
  5640. isMainRisk: true,
  5641. kindName: "附加医保-座位险(乘客)",
  5642. desc: "附加医保外医疗费用责任险(机动车第三者责任保险)"
  5643. },
  5644. {
  5645. amount: "0",
  5646. amountDesc: "不投保",
  5647. coveragePremium: 0,
  5648. amtList: [
  5649. {
  5650. label: "不投保",
  5651. value: "0"
  5652. },
  5653. {
  5654. label: "1万",
  5655. value: "10000"
  5656. },
  5657. {
  5658. label: "2万",
  5659. value: "20000"
  5660. },
  5661. {
  5662. label: "5万",
  5663. value: "50000"
  5664. },
  5665. {
  5666. label: "10万",
  5667. value: "100000"
  5668. }
  5669. ],
  5670. kindCode: "SY_FJ_YBW3",
  5671. isMainRisk: true,
  5672. kindName: "附加医保-座位险(司机)",
  5673. desc: "附加医保外医疗费用责任险(机动车第三者责任保险)"
  5674. },
  5675. {
  5676. amount: "0",
  5677. amountDesc: "不投保",
  5678. coveragePremium: 0,
  5679. amtList: [
  5680. {
  5681. label: "不投保",
  5682. value: "0"
  5683. },
  5684. {
  5685. label: "50万",
  5686. value: "500000"
  5687. },
  5688. {
  5689. label: "100万",
  5690. value: "1000000"
  5691. },
  5692. {
  5693. label: "150万",
  5694. value: "1500000"
  5695. },
  5696. {
  5697. label: "200万",
  5698. value: "2000000"
  5699. },
  5700. {
  5701. label: "250万",
  5702. value: "2500000"
  5703. },
  5704. {
  5705. label: "300万",
  5706. value: "3000000"
  5707. },
  5708. {
  5709. label: "500万",
  5710. value: "5000000"
  5711. },
  5712. {
  5713. label: "1000万",
  5714. value: "10000000"
  5715. }
  5716. ],
  5717. desc:
  5718. "保险期间内,被保险人或其允许的驾驶人在法定节假日期间使用被保险机动车发生机动车第三者责任保险范围内的事故,并经公安部门或保险人查勘确认的,被保险机动车第三者责任保险所适用的责任限额在保险单载明的基础上增加一倍的险种",
  5719. isMainRisk: false,
  5720. kindCode: "BD",
  5721. kindName: "法定节假日限额翻倍险",
  5722. mainRiskCodeList: "B"
  5723. },
  5724. {
  5725. amount: "0",
  5726. amountDesc: "不投保",
  5727. coveragePremium: 0,
  5728. amtList: [
  5729. {
  5730. label: "不投保",
  5731. value: "0"
  5732. },
  5733. {
  5734. label: "2次",
  5735. value: "2"
  5736. },
  5737. {
  5738. label: "7次",
  5739. value: "7"
  5740. },
  5741. {
  5742. label: "12次",
  5743. value: "12"
  5744. },
  5745. {
  5746. label: "17次",
  5747. value: "17"
  5748. },
  5749. {
  5750. label: "22次",
  5751. value: "22"
  5752. }
  5753. ],
  5754. desc: "道路救援服务特约条款",
  5755. isMainRisk: false,
  5756. kindCode: "TY1",
  5757. kindName: "道路救援服务特约条款"
  5758. },
  5759. {
  5760. amount: "0",
  5761. amountDesc: "不投保",
  5762. coveragePremium: 0,
  5763. desc: "车辆安全检测特约条款",
  5764. isMainRisk: false,
  5765. kindCode: "TY2",
  5766. kindName: "车辆安全检测特约条款"
  5767. },
  5768. {
  5769. amount: "0",
  5770. amountDesc: "不投保",
  5771. coveragePremium: 0,
  5772. desc: "代为驾驶服务特约条款",
  5773. isMainRisk: false,
  5774. kindCode: "TY3",
  5775. kindName: "代为驾驶服务特约条款"
  5776. },
  5777. {
  5778. amount: "0",
  5779. amountDesc: "不投保",
  5780. coveragePremium: 0,
  5781. desc: "代为送检服务特约条款",
  5782. isMainRisk: false,
  5783. kindCode: "TY4",
  5784. kindName: "代为送检服务特约条款"
  5785. }
  5786. ],
  5787. totalCompanyList: [], //报价保险公司
  5788. continuousCompanyList: [], //续保保险公司
  5789. quoteno: "", //报价号
  5790. orderno: "", //订单号
  5791. queryOrders: {
  5792. extendInfo: {},
  5793. carinfo: {},
  5794. ownerinfo: {},
  5795. applyinfo: {},
  5796. insureinfo: {}
  5797. }, //核保详情
  5798. inscompany: "", //保险公司名称
  5799. licenseNo: "", //车牌号
  5800. applyName: "", //车主名字
  5801. orderstatus: "", //订单状态
  5802. sumpremium: "", //保费合计
  5803. jqpremium: "", //交强
  5804. sypremium: "", //商业
  5805. jypremium: "", //驾意险
  5806. taxamount: "", //车船税
  5807. jqstartdate: "", //交强时间
  5808. systartdate: "", //商业时间
  5809. mobile: "", //投保人手机号
  5810. //影像回显列表
  5811. // 是否禁用上传
  5812. uploadDisabled: false,
  5813. href: "",
  5814. pageRequest: {
  5815. //归属查询
  5816. pageNum: 1,
  5817. pageSize: 20,
  5818. columnFilters: {
  5819. deptId: {
  5820. name: "deptId",
  5821. value: "9"
  5822. },
  5823. containsSubDept: {
  5824. name: "containsSubDept",
  5825. value: 1
  5826. },
  5827. usertype: {
  5828. name: "usertype",
  5829. value: null
  5830. },
  5831. status: {
  5832. name: "status",
  5833. value: "1"
  5834. },
  5835. id: {
  5836. name: "id",
  5837. value: ""
  5838. },
  5839. name: {
  5840. name: "name",
  5841. value: ""
  5842. },
  5843. mobile: {
  5844. name: "mobile",
  5845. value: ""
  5846. }
  5847. }
  5848. },
  5849. userform: {},
  5850. qrcode: null,
  5851. paycodeimg: "", //展示二维码
  5852. ImageUrldialogVisible: false,
  5853. paramsEdit: "",
  5854. companyId: "",
  5855. apiType: "",
  5856. insureMore: true,
  5857. // insureLength: 5,
  5858. HistoryList: [], //历史记录数据
  5859. image1: "",
  5860. image2: "",
  5861. historyRadio: "888",
  5862. sumseatCount: "", // 投保险种座位数
  5863. deptName: "",
  5864. isBottom: true,
  5865. logoImg: "", //报价单保险公司logo图
  5866. vehicleTypeoptions: [], //车辆种类
  5867. trafficManagementVehicleTypeoptions: [], //车辆类型
  5868. energyTypeoptions: [], //能源种类
  5869. taxRelifFlagoptions: [], //车船税类型
  5870. taxpayerIdentifieroptions: [], //纳税人证件类型
  5871. propertyoptions: [
  5872. {
  5873. value: "1",
  5874. label: "个人"
  5875. },
  5876. {
  5877. value: "2",
  5878. label: "企业"
  5879. }
  5880. ],
  5881. relifReasonoptions: [], //减免税原因代码
  5882. relifReasonoptions: [], //减免税原因代码
  5883. provinceSelect: [],
  5884. natureOfVehicleUseoptions: [],
  5885. businessVehicleUseoptions: [],
  5886. outOfBusinessVehicleUseoptions: [],
  5887. insOrderStatusoptions: [],
  5888. lastCompanyId: "",
  5889. apiInterfaceName: "generateOrder",
  5890. isLetter3Arr: [],
  5891. isLetter3agreementId: "",
  5892. editorInfo: {},
  5893. resultMessageImg: "",
  5894. tabLiIndex: 0,
  5895. tabLimenu: [
  5896. {
  5897. name: "车辆信息",
  5898. scroll: "vehicle"
  5899. },
  5900. {
  5901. name: "车主信息",
  5902. scroll: "owner"
  5903. },
  5904. {
  5905. name: "投保人信息",
  5906. scroll: "applicant"
  5907. },
  5908. {
  5909. name: "被保人信息",
  5910. scroll: "insured"
  5911. },
  5912. {
  5913. name: "关系证明",
  5914. scroll: "relationship"
  5915. },
  5916. {
  5917. name: "验车照",
  5918. scroll: "yanchezhao"
  5919. },
  5920. {
  5921. name: "上年商业险保单",
  5922. scroll: "snbaodan"
  5923. },
  5924. {
  5925. name: "授权书",
  5926. scroll: "shouquanshu"
  5927. }
  5928. ],
  5929. ProViewImg: "", //预览图片
  5930. carfrontImg: "", //行驶证正面
  5931. carbackImg: "", //行驶证背面
  5932. userfrontImg: "", //身份证正面
  5933. userbackImg: "", //身份证背面
  5934. businessImg: "",
  5935. CarFrontFile: "", //车正面文件流
  5936. CarBackFile: "", //车背面文件流
  5937. C02File: "",
  5938. D02File: "",
  5939. C03File: "",
  5940. D03File: "",
  5941. C04File: "",
  5942. D04File: "",
  5943. Y02File: "",
  5944. Y03File: "",
  5945. Y04File: "",
  5946. //影像回显列表
  5947. imgList1: [],
  5948. imgList2: [],
  5949. imgList3: [],
  5950. imgList4: [],
  5951. imgList5: [],
  5952. imgList6: [],
  5953. imgList7: [],
  5954. imgList8: [],
  5955. imgList9: [],
  5956. imgList10: [],
  5957. imgList11: [],
  5958. imgList12: [],
  5959. imgList13: [],
  5960. imgList14: [],
  5961. imgList15: [],
  5962. imgList16: [],
  5963. imgList17: [],
  5964. imgList18: [],
  5965. imgList19: [],
  5966. imgList20: [],
  5967. imgList21: [],
  5968. imgList22: [],
  5969. imgList23: [],
  5970. imgList24: [],
  5971. imgList25: [],
  5972. imgList26: [],
  5973. imgList27: [],
  5974. imgList28: [],
  5975. //影像上传列表
  5976. imageList1: [],
  5977. imageList2: [],
  5978. imageList3: [],
  5979. imageList4: [],
  5980. imageList5: [],
  5981. imageList6: [],
  5982. showLoading: false,
  5983. detailJiaYiTitle: "查看详情",
  5984. oldData: {}, // 旧获取公司参数
  5985. myQrCode: null,
  5986. businessform: {
  5987. name: "", //姓名
  5988. identifyType: "02", //身份证类型
  5989. legalRepresentative: "", //法人
  5990. identifyNumber: "", //社会信用代码
  5991. addr: "", //地址
  5992. registeredCapital: "", //注册资本
  5993. businessScope: "" //经营范围
  5994. },
  5995. areaOption: yongchengData.data,
  5996. selectedOptions1: [],
  5997. selectedOptions2: [],
  5998. selectedOptions3: []
  5999. };
  6000. },
  6001. watch: {
  6002. "carInfo.licenseNo": {
  6003. handler(val) {
  6004. if (val) {
  6005. this.carInfo.licenseNo = val.toUpperCase();
  6006. }
  6007. },
  6008. deep: true
  6009. },
  6010. "carInfo.frameNo": {
  6011. handler(val) {
  6012. if (val) {
  6013. this.carInfo.frameNo = val.toUpperCase();
  6014. }
  6015. },
  6016. deep: true
  6017. },
  6018. "carInfo.enginedesc": {
  6019. handler(val) {
  6020. if (val) {
  6021. this.carInfo.enginedesc = val.replace(/[A-Za-z]/g, "");
  6022. }
  6023. },
  6024. deep: true
  6025. },
  6026. "ownerInfo.mobile": {
  6027. handler(val) {
  6028. if (val) {
  6029. this.ownerInfo.mobile = val.replace(/\s/g, "");
  6030. }
  6031. },
  6032. deep: true
  6033. },
  6034. "policyHolderInfo.mobile": {
  6035. handler(val) {
  6036. if (val) {
  6037. this.policyHolderInfo.mobile = val.replace(/\s/g, "");
  6038. }
  6039. },
  6040. deep: true
  6041. },
  6042. "insuredPersonInfo.mobile": {
  6043. handler(val) {
  6044. if (val) {
  6045. this.insuredPersonInfo.mobile = val.replace(/\s/g, "");
  6046. }
  6047. },
  6048. deep: true
  6049. },
  6050. "carInfo.engineNo": {
  6051. handler(val) {
  6052. if (val) {
  6053. this.carInfo.engineNo = val.replace(/[^\w-]/gi, "").toUpperCase();
  6054. }
  6055. },
  6056. deep: true
  6057. },
  6058. "carInfo.seatCount": {
  6059. handler(val) {
  6060. if (val) {
  6061. this.sumseatCount = val - 1;
  6062. }
  6063. },
  6064. deep: true
  6065. },
  6066. "policyHolderInfo.identifyNumber": {
  6067. handler(val) {
  6068. if (val) {
  6069. this.vehicleAndVesselTaxForm.identifyNumber = val;
  6070. }
  6071. },
  6072. deep: true
  6073. },
  6074. "policyHolderInfo.organizationCode": {
  6075. handler(val) {
  6076. if (val) {
  6077. this.vehicleAndVesselTaxForm.organizationCode = val;
  6078. }
  6079. },
  6080. deep: true
  6081. },
  6082. "policyHolderInfo.name": {
  6083. handler(val) {
  6084. if (val) {
  6085. this.vehicleAndVesselTaxForm.taxpayerName = val;
  6086. }
  6087. },
  6088. deep: true
  6089. },
  6090. ownerInfo: {
  6091. handler(val) {
  6092. if (this.tbczcarShow) {
  6093. this.policyHolderInfo = { ...val };
  6094. }
  6095. if (this.bbczcarShow) {
  6096. this.insuredPersonInfo = { ...val };
  6097. }
  6098. },
  6099. deep: true
  6100. },
  6101. policyHolderInfo: {
  6102. handler(val) {
  6103. if (this.bbtbcarShow) {
  6104. this.insuredPersonInfo = { ...val };
  6105. }
  6106. },
  6107. deep: true
  6108. }
  6109. },
  6110. props: {
  6111. isdisabled: {
  6112. type: Boolean,
  6113. default: true
  6114. },
  6115. isLetter: {
  6116. type: String,
  6117. default: "1"
  6118. }
  6119. },
  6120. components: {
  6121. detailsDialog,
  6122. quotationDialog,
  6123. quotationDialogPro,
  6124. imageDialog,
  6125. Ktletter1Popover,
  6126. floatingBar,
  6127. "el-image-viewer": () =>
  6128. import("element-ui/packages/image/src/image-viewer")
  6129. },
  6130. created() {
  6131. if (this.isLetter == "2") {
  6132. this.apiInterfaceName = "ordergenerateOrder";
  6133. }
  6134. if (this.isLetter == "1") {
  6135. this.$api.user.sysMenuRecordAdd(2, 1).then(res => { });
  6136. }
  6137. // this.commpanyList(); //获取保险公司
  6138. this.getDicType("taxRelifFlag"); //车船税类型
  6139. this.getDicType("taxpayerIdentifier"); //纳税人证件类型
  6140. this.getDicType("relifReason"); //减免税原因代码
  6141. this.getDicType("vehicleType"); //车辆种类
  6142. this.getDicType("trafficManagementVehicleType"); //车辆类型
  6143. this.getDicType("energyType"); //能源种类
  6144. this.getDicType("natureOfVehicleUse"); //车辆使用性质
  6145. this.getDicType("businessVehicleUse"); //(车辆用途)营业
  6146. this.getDicType("outOfBusinessVehicleUse"); //(车辆用途)非营业
  6147. this.getDicType("insOrderStatus"); //状态
  6148. this.$api.letter.queryCompany().then(res => {
  6149. this.continuousCompanyList = res.data;
  6150. });
  6151. this.$api.letter.packageQuery().then(res => {
  6152. this.packageOptions = res.data;
  6153. });
  6154. localStorage.setItem("carInfo", JSON.stringify(this.carInfo));
  6155. localStorage.setItem("insureList", JSON.stringify(this.insureList));
  6156. //--归属信息获取--
  6157. if (this.isLetter == 1 || this.isLetter == 2) {
  6158. var userId = Cookies.get("user");
  6159. if (userId == "admin") {
  6160. this.userId = "admin";
  6161. } else {
  6162. // this.userId = userId;
  6163. this.$api.user.getLoginUser().then(res => {
  6164. if (res.code == 200) {
  6165. this.userform = res.data;
  6166. this.$api.dept.getDeptById(res.data.deptId).then(res => {
  6167. this.deptName = res.data.name;
  6168. });
  6169. this.userId = res.data.id;
  6170. }
  6171. });
  6172. }
  6173. }
  6174. //--订单编辑回显--
  6175. // this.paramsEdit = this.$route.query.data; //接收参数
  6176. // this.obtainProtocol(this.$route.query.data);
  6177. this.getProductId(); // 获取险别
  6178. // this.editingWay(this.$route.query.data)
  6179. if (this.$route.query.data) {
  6180. this.editingWay(this.$route.query.data);
  6181. }
  6182. },
  6183. mounted() {
  6184. this.getCompanyList(this.$route.query.data);
  6185. this.onScroll();
  6186. if (this.$route.query.data) {
  6187. if (this.isDateBeforeToday(this.$route.query.data.jqstartdate)) {
  6188. this.jqstartDate = this.transformTime1();
  6189. this.jqendDate = this.oneYearPast1(this.jqstartDate);
  6190. } else {
  6191. this.jqstartDate = this.$route.query.data.jqstartdate;
  6192. this.jqendDate = this.$route.query.data.jqenddate;
  6193. }
  6194. if (this.$route.query.data.jqstartdate.split(" ")[1] == "00:00:00") {
  6195. this.immediatelyValue = false;
  6196. } else {
  6197. this.immediatelyValue = true;
  6198. }
  6199. }
  6200. window.addEventListener("scroll", this.onScroll);
  6201. },
  6202. destroyed() {
  6203. window.removeEventListener("scroll", this.onScroll);
  6204. },
  6205. beforeCreate() {
  6206. _self = this;
  6207. },
  6208. computed: {
  6209. ...mapState({
  6210. collapse: state => state.app.collapse
  6211. }),
  6212. issueDateOptions() {
  6213. return {
  6214. disabledDate: this.disabledDate
  6215. };
  6216. }
  6217. },
  6218. filters: {
  6219. cap(ele) {
  6220. return _self.insOrderStatusoptions.find(item => {
  6221. return item.dictValue === ele;
  6222. }).dictTag;
  6223. }
  6224. },
  6225. methods: {
  6226. //补录订单
  6227. supplementOrder(id) {
  6228. let params = {
  6229. companyId: id,
  6230. };
  6231. this.$api.letter.getByCompanyId(params).then((res) => {
  6232. if (res.code == "200") {
  6233. this.$router.push({
  6234. path: "/task/external/externalOrders",
  6235. query: { data: res.data },
  6236. });
  6237. }
  6238. })
  6239. },
  6240. quotechangeDate(value){
  6241. return dayjs(value).format("YYYY-MM-DD HH:mm:ss");
  6242. },
  6243. changeDate(value) {
  6244. return dayjs(value).format("YYYY-MM-DD");
  6245. },
  6246. vehicleUseChange(value) {
  6247. if ((value = "05")) {
  6248. this.carInfo.property = "1";
  6249. this.ownerInfo.property = "1";
  6250. this.ownerInfo.identifyType = "01";
  6251. }
  6252. },
  6253. propertyDisable(item) {
  6254. if (this.carInfo.vehicleUse == "05" && item.label == "企业") {
  6255. return true;
  6256. } else {
  6257. return false;
  6258. }
  6259. },
  6260. deleteJiaYi(reslistindex, drivingIndex) {
  6261. this.totalCompanyList[reslistindex].programme.drivingList.splice(
  6262. drivingIndex,
  6263. 1
  6264. );
  6265. this.$forceUpdate();
  6266. },
  6267. toWan(num, type) {
  6268. if (type == "fw") {
  6269. return num + "次";
  6270. }
  6271. if (num > 10000) {
  6272. if (num % 10000 == 0) {
  6273. return num / 10000 + "万";
  6274. } else {
  6275. return (num / 10000).toFixed(4) + "万";
  6276. }
  6277. } else if (num == 1) {
  6278. return "投保";
  6279. } else {
  6280. return num;
  6281. }
  6282. },
  6283. // 所属性质字段
  6284. getCompanyListProperty(data) {
  6285. if (data == "1") {
  6286. this.ownerInfo.property = "1";
  6287. this.policyHolderInfo.property = "1";
  6288. this.insuredPersonInfo.property = "1";
  6289. this.ownerInfo.identifyType = "01";
  6290. this.policyHolderInfo.identifyType = "01";
  6291. this.insuredPersonInfo.identifyType = "01";
  6292. } else {
  6293. this.ownerInfo.property = "0";
  6294. this.policyHolderInfo.property = "0";
  6295. this.insuredPersonInfo.property = "0";
  6296. this.ownerInfo.identifyType = "10";
  6297. this.policyHolderInfo.identifyType = "10";
  6298. this.insuredPersonInfo.identifyType = "10";
  6299. }
  6300. this.getCompanyList();
  6301. },
  6302. // 获取新公司列表
  6303. getCompanyList(data) {
  6304. var _this = this;
  6305. if (!this.productId) {
  6306. this.$message.warning("请选择险种");
  6307. return;
  6308. }
  6309. let starttime = new Date(this.carInfo.registerDate);
  6310. let endtime = new Date(this.carInfo.issueDate);
  6311. if (endtime < starttime) {
  6312. this.$message({ message: "发证日期早于初登日期", type: "error" });
  6313. return;
  6314. }
  6315. this.policyHolderInfovalidate();
  6316. this.$refs["carInfo"].validate(valid => {
  6317. if (valid) {
  6318. _this.$refs["ownerInfo"].validate(async valid1 => {
  6319. if (valid1) {
  6320. if (!this.bbczcarShow && !this.bbtbcarShow) {
  6321. this.$refs["insuredPersonInfo"].validate(valid2 => {
  6322. if (!valid2) {
  6323. document.getElementById("toubaor").scrollIntoView();
  6324. this.$message({
  6325. message: "请检查被投保人信息",
  6326. type: "warning"
  6327. });
  6328. return;
  6329. }
  6330. });
  6331. }
  6332. if (!_this.productId) {
  6333. _this.$message.warning("请选择险别");
  6334. return;
  6335. }
  6336. let res = {};
  6337. let param = {
  6338. productId: this.productId,
  6339. carInfo: this.carInfo,
  6340. ownerInfo: this.ownerInfo,
  6341. applyInfo: this.policyHolderInfo,
  6342. insureInfo: this.insuredPersonInfo,
  6343. userId: this.isLetter == 2 ? this.userId : ""
  6344. };
  6345. if (JSON.stringify(param) === this.oldData) {
  6346. return;
  6347. } else {
  6348. this.oldData = JSON.stringify(param);
  6349. }
  6350. this.showLoading = true;
  6351. // this.$api.letter.getAllAgreement().then((res) => {
  6352. this.$api.letter.ruleFilterCompany(param).then(res => {
  6353. if (res.code == 200) {
  6354. res.data.map(ele => {
  6355. ele["result"] = {};
  6356. ele["quoteCode"] = 0;
  6357. ele["checked"] = false;
  6358. ele["msg"] = "";
  6359. ele["lastYearMsg"] = "";
  6360. ele["agreementId"] = "";
  6361. ele["apiType"] = "";
  6362. ele["orderstatus"] = 0;
  6363. ele.coefficient = "";
  6364. ele.underwritingDescription =
  6365. ele.agreement[0].underwritingDescription;
  6366. if (
  6367. ele.isTaxSource &&
  6368. ele.isTaxSource == "1" &&
  6369. ele.agreement
  6370. ) {
  6371. ele.agreement.forEach(val => {
  6372. if (val.isTaxSource && val.isTaxSource == "1") {
  6373. ele.agreementId = val.id;
  6374. ele.apiType = val.apiType;
  6375. }
  6376. });
  6377. }
  6378. });
  6379. if (this.$route.query.data) {
  6380. data = data || this.$route.query.data;
  6381. }
  6382. if (data) {
  6383. this.selectedOptions1 = _this.ownerInfo.province
  6384. ? [
  6385. Number(_this.ownerInfo.province),
  6386. Number(_this.ownerInfo.city),
  6387. Number(_this.ownerInfo.county)
  6388. ]
  6389. : [];
  6390. this.selectedOptions2 = _this.policyHolderInfo.province
  6391. ? [
  6392. Number(_this.policyHolderInfo.province),
  6393. Number(_this.policyHolderInfo.city),
  6394. Number(_this.policyHolderInfo.county)
  6395. ]
  6396. : [];
  6397. this.selectedOptions13 = _this.insuredPersonInfo.province
  6398. ? [
  6399. Number(_this.insuredPersonInfo.province),
  6400. Number(_this.insuredPersonInfo.city),
  6401. Number(_this.insuredPersonInfo.county)
  6402. ]
  6403. : [];
  6404. this.productId = this.productId || data.productid;
  6405. res.data.forEach((val, index) => {
  6406. if (!data.insAreaCompanyEditingDtos) {
  6407. return;
  6408. }
  6409. data.insAreaCompanyEditingDtos.forEach(ele => {
  6410. if (val.namesimple == ele.inscompany) {
  6411. if (ele.inscompany == "中国人寿" && ele.companyId) {
  6412. this.lastCompanyId = ele.companyId;
  6413. }
  6414. res.data[index].quoteCode = 200;
  6415. res.data[index].result = ele;
  6416. }
  6417. });
  6418. });
  6419. }
  6420. // //险种合并集合
  6421. } else {
  6422. this.$message.error(res.msg);
  6423. }
  6424. const combinedArray = [
  6425. ...this.riskList.map(item => item.riskCode),
  6426. ...this.kindList.map(item => item.kindCode)
  6427. ];
  6428. if (res.data) {
  6429. res.data = res.data.filter(obj => {
  6430. obj.agreement = obj.agreement.filter(agreementObj => {
  6431. // 险种配置为空,则过滤掉该协议
  6432. if (agreementObj.productsCodes == null) {
  6433. return true;
  6434. } else {
  6435. // 检查是否包含 A 的特殊处理
  6436. if (
  6437. combinedArray.includes("A") &&
  6438. !agreementObj.productsCodes.includes("A")
  6439. ) {
  6440. return false;
  6441. }
  6442. return agreementObj.productsCodes.some(item =>
  6443. combinedArray.includes(item)
  6444. );
  6445. }
  6446. });
  6447. return obj.agreement.length > 0; // 返回true保留,返回false移除该保险公司
  6448. });
  6449. res.data.forEach(e => {
  6450. if (e.agreement) {
  6451. e.agreement.forEach(el => (el.disabled = false));
  6452. }
  6453. });
  6454. }
  6455. this.totalCompanyList = res.data;
  6456. this.showLoading = false;
  6457. });
  6458. } else {
  6459. document.getElementById("CheZhu").scrollIntoView();
  6460. _this.$message({ message: "请检查人员信息", type: "warning" });
  6461. }
  6462. });
  6463. } else {
  6464. document.getElementById("Car").scrollIntoView();
  6465. this.$message({ message: "请检查车辆信息", type: "warning" });
  6466. return false;
  6467. }
  6468. });
  6469. },
  6470. // 保费计算(报价)按钮
  6471. handleListJisuan(item, index) {
  6472. this.quote(index);
  6473. },
  6474. // 修改险别
  6475. productIdChange() {
  6476. if (this.productId != "0330") {
  6477. this.sychecked = true;
  6478. this.sycheckedChange(true);
  6479. } else {
  6480. this.sychecked = false;
  6481. this.sycheckedChange(false);
  6482. }
  6483. if (this.productId == "034001" || this.productId == "034002") {
  6484. this.jqchecked = false;
  6485. this.jqcheckedChange(false);
  6486. } else {
  6487. this.jqchecked = true;
  6488. this.jqcheckedChange(true);
  6489. }
  6490. this.getCompanyList();
  6491. if (this.policyHolderInfo.property == "0") {
  6492. this.vehicleAndVesselTaxForm.taxpayerIdentifier = "10";
  6493. }
  6494. if (this.policyHolderInfo.property == "1") {
  6495. this.vehicleAndVesselTaxForm.taxpayerIdentifier = "01";
  6496. }
  6497. this.totalCompanyList.forEach(val => {
  6498. val.checked = false;
  6499. });
  6500. },
  6501. // 选择方案
  6502. checkedPopover(reslistindex, index, item) {
  6503. if (index == 99) {
  6504. if (
  6505. this.totalCompanyList[reslistindex].programme99 &&
  6506. !this.totalCompanyList[reslistindex].programme99.schemeId
  6507. ) {
  6508. return;
  6509. }
  6510. if (!this.totalCompanyList[reslistindex].zxProgramme) {
  6511. this.totalCompanyList[reslistindex].zxProgramme = {
  6512. // 自选方案详情
  6513. description: "",
  6514. drivingList: [],
  6515. jqx: {
  6516. name: "交通事故强制责任险"
  6517. },
  6518. kinds: {
  6519. additional: [],
  6520. main: [],
  6521. service: []
  6522. }
  6523. };
  6524. }
  6525. this.typeDialogIndex = reslistindex; // 当前的公司index
  6526. this.totalCompanyList[reslistindex].programme = this.totalCompanyList[
  6527. reslistindex
  6528. ].zxProgramme; // 选中的自定义方案详情
  6529. } else {
  6530. this.totalCompanyList[reslistindex].programme = item; // 选中的方案详情
  6531. }
  6532. this.totalCompanyList[reslistindex].checkedProgramme = index; // 选中的方案
  6533. this.productList.forEach(val => {
  6534. if (val.code == this.productId) {
  6535. this.totalCompanyList[reslistindex].programme.description = val.desc;
  6536. }
  6537. });
  6538. this.$forceUpdate();
  6539. },
  6540. // 获取方案信息
  6541. getCompanyProgramme(e, code, name, index) {
  6542. this.totalCompanyList[index].checked = false;
  6543. this.$api.letter
  6544. .getAllSchemeList({
  6545. companyId: code,
  6546. productId: this.productId,
  6547. seatNum: this.carInfo.seatCount,
  6548. vehicleType: this.carInfo.cimodelclass,
  6549. energyType: this.carInfo.energyType,
  6550. carnature: this.carInfo.carnature
  6551. })
  6552. .then(res => {
  6553. if (res.code == 200) {
  6554. this.totalCompanyList[index].schemes = res.data.schemes;
  6555. this.totalCompanyList[index].programme99 = res.data
  6556. .optionalScheme || { kinds: [] }; // 获取自选方案弹窗信息
  6557. if (res.data.schemes[0]) {
  6558. this.checkedPopover(index, 0, res.data.schemes[0]);
  6559. } else {
  6560. this.checkedPopover(index, 99);
  6561. }
  6562. this.totalCompanyList[index].checked = true;
  6563. }
  6564. });
  6565. },
  6566. // 获取险别
  6567. getProductId() {
  6568. // /plt/scheme/getProductInfo
  6569. this.$api.letter.getProductInfo().then(res => {
  6570. this.productList = res.data;
  6571. });
  6572. },
  6573. // 选择特约
  6574. handleCloseTeYue() {
  6575. this.showTeYueVisible = false;
  6576. },
  6577. checkTeYue(item) {
  6578. this.showTeYueVisible = true;
  6579. },
  6580. // 驾意险详情
  6581. handleCloseShowDetailJiaYi() {
  6582. this.showDetailJiaYiVisible = false;
  6583. this.showDetailJiaYiVisible1 = false;
  6584. this.showDetailtable = [];
  6585. this.typeDialogData = {};
  6586. },
  6587. // 确认驾意
  6588. handleAddYiWai() {
  6589. let arr = [];
  6590. this.checkList.forEach(val => {
  6591. if (this.totalCompanyList[this.typeDialogIndex].cnName == "zijin") {
  6592. if (val.tableData) arr.push(...val.tableData);
  6593. // } else if (this.totalCompanyList[this.typeDialogIndex].cnName == 'guoRen' || this.totalCompanyList[this.typeDialogIndex].cnName == 'ansheng') {
  6594. // arr.push({...val.tableData, select: val.select})
  6595. } else {
  6596. if (val.tableData) arr.push(val.tableData);
  6597. }
  6598. });
  6599. this.totalCompanyList[this.typeDialogIndex].zxProgramme.drivingList = arr;
  6600. this.totalCompanyList[this.typeDialogIndex].programme.drivingList = arr;
  6601. this.handleCloseAddYiwai();
  6602. },
  6603. // 驾意输入框按钮
  6604. numberChange(listIndex, index, type, minquantity, dataIndex) {
  6605. if (dataIndex >= 0) {
  6606. if (type == "plus") {
  6607. // if (this.jiayiDialogData.drivingTypeList[listIndex].children[index].tableData[dataIndex].quantity < 100) {
  6608. this.jiayiDialogData.drivingTypeList[listIndex].children[index]
  6609. .tableData[dataIndex].quantity++;
  6610. // }
  6611. } else {
  6612. if (
  6613. this.jiayiDialogData.drivingTypeList[listIndex].children[index]
  6614. .tableData[dataIndex].quantity > minquantity
  6615. ) {
  6616. this.jiayiDialogData.drivingTypeList[listIndex].children[
  6617. index
  6618. ].tableData[dataIndex].quantity -= 1;
  6619. }
  6620. }
  6621. } else {
  6622. if (type == "plus") {
  6623. // if (this.jiayiDialogData.drivingTypeList[listIndex].children[index].tableData.quantity < 100) {
  6624. this.jiayiDialogData.drivingTypeList[listIndex].children[index]
  6625. .tableData.quantity++;
  6626. // }
  6627. } else {
  6628. if (
  6629. this.jiayiDialogData.drivingTypeList[listIndex].children[index]
  6630. .tableData.quantity > minquantity
  6631. ) {
  6632. this.jiayiDialogData.drivingTypeList[listIndex].children[
  6633. index
  6634. ].tableData.quantity -= 1;
  6635. }
  6636. }
  6637. }
  6638. this.$forceUpdate();
  6639. },
  6640. // 选中驾意一层
  6641. handleChangeSelectGuoren(index) {
  6642. this.checkList[index].tableData1 = undefined;
  6643. this.checkList[index].detail.forEach(val => {
  6644. if (val.projectName == this.checkList[index].select) {
  6645. this.checkList[index].tableData1 = val.insDrivingIntentionInsurances;
  6646. }
  6647. });
  6648. },
  6649. changeInput(e, listIndex, index, type, minquantity, dataIndex) {
  6650. let num = Number(e);
  6651. if (dataIndex >= 0) {
  6652. this.jiayiDialogData.drivingTypeList[listIndex].children[
  6653. index
  6654. ].tableData[dataIndex].quantity = num < minquantity ? minquantity : num;
  6655. } else {
  6656. this.jiayiDialogData.drivingTypeList[listIndex].children[
  6657. index
  6658. ].tableData.quantity = num < minquantity ? minquantity : num;
  6659. }
  6660. this.$forceUpdate();
  6661. },
  6662. // 选中驾意
  6663. handleChangeSelect(index) {
  6664. if (this.totalCompanyList[this.typeDialogIndex].cnName == "zijin") {
  6665. this.checkList[index].tableData = [];
  6666. this.checkList[index].detail.forEach(val => {
  6667. this.checkList[index].selectList.forEach(value => {
  6668. if (val.alias == value) {
  6669. this.checkList[index].tableData.push(val);
  6670. this.$forceUpdate();
  6671. }
  6672. });
  6673. });
  6674. // } else if (this.totalCompanyList[this.typeDialogIndex].cnName == 'guoRen' || this.totalCompanyList[this.typeDialogIndex].cnName == 'ansheng' || this.totalCompanyList[this.typeDialogIndex].cnName == 'ansheng') {
  6675. // this.checkList[index].tableData1.forEach((val) => {
  6676. // if (val.projectName == this.checkList[index].select1) {
  6677. // this.checkList[index].tableData = val
  6678. // }
  6679. // })
  6680. } else {
  6681. this.checkList[index].detail.forEach(val => {
  6682. val.quantity = val.minQuantity ? val.minQuantity : val.quantity;
  6683. if (val.alias == this.checkList[index].select) {
  6684. this.checkList[index].tableData = val;
  6685. }
  6686. });
  6687. }
  6688. },
  6689. handleChangeJiayi(listItem, listIndex) {
  6690. if (this.checkList.length) {
  6691. this.checkList.forEach(val => {
  6692. this.$api.letter
  6693. .getDriving({
  6694. schemeId: this.jiayiDialogData.schemeId,
  6695. seatNum: this.carInfo.seatCount
  6696. // companyId: this.totalCompanyList[this.typeDialogIndex].id,
  6697. // type: val.id,
  6698. // productId: this.productId,
  6699. // vehicleType: this.carInfo.cimodelclass,
  6700. // energyType: this.carInfo.energyType,
  6701. // carnature: this.carInfo.carnature
  6702. })
  6703. .then(res => {
  6704. if (res.code == 200) {
  6705. val.detail = res.data;
  6706. this.$forceUpdate();
  6707. }
  6708. });
  6709. });
  6710. }
  6711. },
  6712. propertyTpe(val) {
  6713. this[val].identifyType = this[val].property == "0" ? "10" : "01";
  6714. },
  6715. showDetailJiaYi(item, index, type) {
  6716. this.showDetailtable = [];
  6717. item.programme.drivingList.forEach(val => {
  6718. this.$api.letter
  6719. .getDrivingSon({
  6720. companyId: this.totalCompanyList[index].id,
  6721. projectCode: val.projectCode
  6722. })
  6723. .then(res => {
  6724. if (res.code == 200) {
  6725. this.showDetailtable.push(res.data);
  6726. }
  6727. });
  6728. });
  6729. if (type) {
  6730. this.detailJiaYiTitle = "驾意险详情";
  6731. this.showDetailJiaYiVisible1 = true;
  6732. } else {
  6733. this.detailJiaYiTitle = "查看详情";
  6734. this.showDetailJiaYiVisible = true;
  6735. }
  6736. this.typeDialogData = item.programme;
  6737. this.typeDialogData.shangyeList = [
  6738. ...item.programme.kinds.main,
  6739. ...item.programme.kinds.additional,
  6740. ...item.programme.kinds.service
  6741. ];
  6742. },
  6743. // 添加驾意险
  6744. addJiaYi(item) {
  6745. this.jiayiDialogData = item.programme99;
  6746. this.addYiwaiDialogVisible = true;
  6747. },
  6748. handleCloseAddYiwai() {
  6749. this.jiayiDialogData = {};
  6750. this.checkList = [];
  6751. this.addYiwaiDialogVisible = false;
  6752. },
  6753. // 调整险种
  6754. // 确定险种
  6755. subTypeDialog() {
  6756. // this.totalCompanyList[this.typeDialogIndex].zxProgramme = {}
  6757. // this.totalCompanyList[reslistindex].zxProgramme
  6758. let main = [];
  6759. let additional = [];
  6760. let service = [];
  6761. this.typeDialogData.kinds.forEach((val, index) => {
  6762. if (val.checked) {
  6763. if (val.grouping == "main") {
  6764. main.push(val);
  6765. }
  6766. if (val.grouping == "additional") {
  6767. additional.push(val);
  6768. }
  6769. if (val.grouping == "service") {
  6770. service.push(val);
  6771. }
  6772. }
  6773. });
  6774. this.totalCompanyList[this.typeDialogIndex].zxProgramme.kinds = {
  6775. main,
  6776. additional,
  6777. service
  6778. };
  6779. this.totalCompanyList[this.typeDialogIndex].programme.kinds = {
  6780. main,
  6781. additional,
  6782. service
  6783. };
  6784. this.handleAddYiWai();
  6785. this.handleCloseType();
  6786. },
  6787. showTypeDialog(item, index) {
  6788. item.programme99.kinds.map(item => {
  6789. const itemamtList = item.amtList.map(val => {
  6790. return val.label;
  6791. });
  6792. if (!itemamtList.includes("不投保")) {
  6793. item.checked = true;
  6794. item.Required = true;
  6795. item.amount = item.amtList.length ? item.amtList[0].value : item.max;
  6796. }
  6797. return item;
  6798. });
  6799. this.typeDialogData = item.programme99;
  6800. this.jiayiDialogData = item.programme99;
  6801. this.typeDialogVisible = true;
  6802. },
  6803. handleCloseType() {
  6804. this.typeDialogVisible = false;
  6805. this.typeDialogData = [];
  6806. this.jiayiDialogData = {};
  6807. this.checkList = [];
  6808. },
  6809. //清空保单图片
  6810. removePhoto(file, fileList, type) {
  6811. this.policyNumberForm[type] = [];
  6812. },
  6813. editingWay(paramsEdit) {
  6814. // console.log(paramsEdit)
  6815. if (paramsEdit) {
  6816. var _this = this;
  6817. this.jqchecked = false;
  6818. this.tbczcarShow = false;
  6819. this.bbtbcarShow = false;
  6820. this.bbczcarShow = false;
  6821. const {
  6822. carinfo,
  6823. ownerinfo,
  6824. applyinfo,
  6825. insureinfo,
  6826. quoteno,
  6827. orderno
  6828. } = paramsEdit;
  6829. this.editorInfo = { ...paramsEdit };
  6830. // this.vehicleAndVesselTaxForm = { ...paramsEdit.vehicleAndVesselTax };
  6831. // console.log(paramsEdit.jqstartdate, 6666);
  6832. if (paramsEdit.jqstartdate) {
  6833. if (paramsEdit.jqstartdate.split(" ")[1] == "00:00:00") {
  6834. this.immediatelyValue = false;
  6835. } else {
  6836. this.immediatelyValue = true;
  6837. }
  6838. } else {
  6839. this.immediatelyValue = true;
  6840. }
  6841. _this.carInfo = carinfo;
  6842. if (_this.carInfo.carnature == "8A") {
  6843. _this.carInfo.carnature = "02";
  6844. _this.carInfo.vehicleUse = "05";
  6845. } else {
  6846. _this.carInfo.carnature;
  6847. _this.carInfo.vehicleUse;
  6848. }
  6849. _this.ownerInfo = ownerinfo;
  6850. _this.policyHolderInfo = applyinfo;
  6851. _this.insuredPersonInfo = insureinfo;
  6852. _this.quoteno = quoteno;
  6853. _this.orderno = orderno;
  6854. _this.productId = paramsEdit.productid;
  6855. _this.tbczcarShow = applyinfo.owner;
  6856. _this.bbczcarShow = insureinfo.owner;
  6857. _this.kindList = paramsEdit.king;
  6858. _this.bbtbcarShow = insureinfo.insuranceHolder;
  6859. _this.ownerInfo.age = _this.ownerInfo.age
  6860. ? getAgeByIdCard(_this.ownerInfo.identifyNumber)
  6861. : "";
  6862. _this.policyHolderInfo.age = _this.policyHolderInfo.age
  6863. ? getAgeByIdCard(_this.policyHolderInfo.identifyNumber)
  6864. : "";
  6865. _this.insuredPersonInfo.age = _this.policyHolderInfo.age
  6866. ? getAgeByIdCard(_this.insuredPersonInfo.identifyNumber)
  6867. : "";
  6868. _this.ownerInfo.property = _this.ownerInfo.property
  6869. ? _this.ownerInfo.property
  6870. : "1";
  6871. _this.policyHolderInfo.property = _this.policyHolderInfo.property
  6872. ? _this.policyHolderInfo.property
  6873. : "1";
  6874. _this.insuredPersonInfo.property = _this.insuredPersonInfo.property
  6875. ? _this.insuredPersonInfo.property
  6876. : "1";
  6877. if (paramsEdit.carinfo.transferFlag) {
  6878. this.transferDateShow = true;
  6879. } else {
  6880. this.transferDateShow = false;
  6881. this.carInfo.transferDate = ''
  6882. }
  6883. paramsEdit.risk.map(ele => {
  6884. if (ele.riskCode == "0507") {
  6885. _this.jqchecked = true;
  6886. this.protocolJudge("0507", true);
  6887. _this.riskList.push({
  6888. riskCode: "0507"
  6889. });
  6890. // _this.jqstartDate = ele.startDate;
  6891. // _this.jqendDate = ele.endDate;
  6892. // this.jqstartDate = this.$route.query.data.jqstartdate
  6893. // this.jqendDate = this.$route.query.data.jqenddate
  6894. _this.jqstartDate = this.transformTime1();
  6895. _this.jqendDate = this.oneYearPast1(this.jqstartDate);
  6896. } else if (ele.riskCode == "0510") {
  6897. _this.sychecked = true;
  6898. this.protocolJudge("0510", true);
  6899. _this.riskList.push({
  6900. riskCode: "0510"
  6901. });
  6902. // _this.systartDate = ele.startDate;
  6903. // _this.syendDate = ele.endDate;
  6904. if (new Date(ele.startDate).getTime() > new Date().getTime()) {
  6905. _this.systartDate = ele.startDate;
  6906. _this.syendDate = ele.endDate;
  6907. } else {
  6908. _this.systartDate = this.transformTime1();
  6909. _this.syendDate = this.oneYearPast1(this.systartDate);
  6910. }
  6911. _this.insureList.map(eleA => {
  6912. paramsEdit.king.map(eleB => {
  6913. if (eleA.kindCode == eleB.kindCode) {
  6914. switch (eleB.kindCode) {
  6915. case "D4":
  6916. case "SY_FJ_YBW2":
  6917. eleA.amount = JSON.stringify(eleB.unitAmount);
  6918. break;
  6919. case "MJ1":
  6920. case "MJ2":
  6921. case "MJ3":
  6922. case "MJ4":
  6923. eleA.amount = eleB.deductibleRate;
  6924. case "A":
  6925. eleA.amount = JSON.stringify(eleB.amount);
  6926. this.protocolJudge("A", true);
  6927. break;
  6928. default:
  6929. eleA.amount = JSON.stringify(eleB.amount);
  6930. }
  6931. }
  6932. });
  6933. });
  6934. }
  6935. });
  6936. // this.HistoryList = this.paramsEdit.insAreaCompanyList;
  6937. let params = {
  6938. orderNo: paramsEdit.orderno,
  6939. orderStatus: ""
  6940. };
  6941. this.$api.letter.queryQuoteHistory(params).then(res => {
  6942. res.data.forEach(item => {
  6943. if (item.accidentInfo) {
  6944. item.accidentInfo.constructor === Object
  6945. ? [item.accidentInfo]
  6946. : item.accidentInfo;
  6947. }
  6948. });
  6949. this.HistoryList = res.data;
  6950. });
  6951. //--获取影像信息--
  6952. _this.imageEcho(this.quoteno);
  6953. // this.$refs.imageDialog.imageEcho(this.quoteno)
  6954. // this.commpanyList()
  6955. //--显示影像按钮--
  6956. _this.imageUploadShow = true;
  6957. this.$forceUpdate();
  6958. _this.obtainProtocol(paramsEdit);
  6959. } else {
  6960. this.jqstartDate = this.transformTime1();
  6961. this.jqendDate = this.oneYearPast1(this.jqstartDate);
  6962. this.systartDate = this.transformTime1();
  6963. this.syendDate = this.oneYearPast1(this.systartDate);
  6964. }
  6965. },
  6966. handleRemove1(file, imageIdList, imgList) {
  6967. this[imageIdList].map((ele, index) => {
  6968. if (file.imageId === ele.imageId) {
  6969. this[imageIdList].splice(index, 1);
  6970. }
  6971. return ele;
  6972. });
  6973. if (file.imageId) {
  6974. this[imgList].map((ele, index) => {
  6975. if (file.imageId === ele.imageId) {
  6976. this[imgList].splice(index, 1);
  6977. }
  6978. return ele;
  6979. });
  6980. } else {
  6981. this[imgList].map((ele, index) => {
  6982. if (file.uid === ele.uid) {
  6983. this[imgList].splice(index, 1);
  6984. }
  6985. return ele;
  6986. });
  6987. }
  6988. },
  6989. uploadinformation() {
  6990. // //上传图片
  6991. const mergedArray = [
  6992. ...this.imageList1,
  6993. ...this.imageList2,
  6994. ...this.imageList3,
  6995. ...this.imageList4,
  6996. ...this.imageList5,
  6997. ...this.imageList6
  6998. ];
  6999. let imageparam = {
  7000. imageList: mergedArray,
  7001. quoteNo: this.quoteno
  7002. };
  7003. this.$api.letter.uploadImages(imageparam).then(responses => {
  7004. if (responses.code == "200") {
  7005. this.imageEcho(this.quoteno);
  7006. this.$message({ message: responses.msg, type: "success" });
  7007. } else {
  7008. this.$message({ message: responses.msg, type: "error" });
  7009. }
  7010. });
  7011. this.imageUploaddialogVisible = false;
  7012. },
  7013. repairinformation() {
  7014. // //上传图片
  7015. const mergedArray = [
  7016. ...this.imageList1,
  7017. ...this.imageList2,
  7018. ...this.imageList3,
  7019. ...this.imageList4,
  7020. ...this.imageList5,
  7021. ...this.imageList6
  7022. ];
  7023. let imageparam = {
  7024. imageList: mergedArray,
  7025. companyId: this.companyId
  7026. };
  7027. this.$api.letter.additionalInformation(imageparam).then(responses => {
  7028. if (responses.code == "200") {
  7029. this.imageUploaddialogVisible = false;
  7030. this.$message({ message: responses.msg, type: "success" });
  7031. } else {
  7032. this.$message({ message: responses.msg, type: "error" });
  7033. }
  7034. });
  7035. },
  7036. //手机号复制粘贴处理
  7037. handlePaste(e, mobileKey) {
  7038. e.preventDefault(); //阻止默认行为
  7039. const clipboardData = e.clipboardData || window.clipboardData; //获取剪切板内容
  7040. let pastedText = clipboardData.getData("text").replace(/\s+/g, ""); //获取纯文本并处理空格
  7041. // 截取前11个字符,以确保不会超过手机号长度限制
  7042. pastedText = pastedText.substring(0, 11);
  7043. // 使用Vue.nextTick确保更新发生在DOM更新之后
  7044. this.$nextTick(() => {
  7045. this[mobileKey].mobile = pastedText;
  7046. });
  7047. },
  7048. // licenseNoFun(data){
  7049. // if(data && this.carInfo.enginedesc){
  7050. // this.obtainProtocol()
  7051. // }
  7052. // },
  7053. // enginedescFun(data){
  7054. // if(data && this.carInfo.licenseNo){
  7055. // this.obtainProtocol()
  7056. // }
  7057. // },
  7058. packageChange(val) {
  7059. let arr = this.packageOptions.find(ele => ele.id == val).kind;
  7060. if (arr.length > 0) {
  7061. this.insureList.map(eleA => {
  7062. arr.map(eleB => {
  7063. if (eleA.kindCode == eleB.kindCode) {
  7064. switch (eleB.kindCode) {
  7065. case "D4":
  7066. case "SY_FJ_YBW2":
  7067. eleA.amount = JSON.stringify(eleB.unitAmount);
  7068. break;
  7069. case "MJ1":
  7070. case "MJ2":
  7071. case "MJ3":
  7072. case "MJ4":
  7073. eleA.amount = eleB.deductibleRate;
  7074. break;
  7075. case "TY2":
  7076. case "TY3":
  7077. case "TY4":
  7078. eleA.amount = eleB.serviceTimes;
  7079. break;
  7080. default:
  7081. eleA.amount = JSON.stringify(eleB.amount);
  7082. }
  7083. }
  7084. });
  7085. });
  7086. } else {
  7087. this.insureList.map(eleA => {
  7088. eleA.amount = "0";
  7089. });
  7090. }
  7091. },
  7092. capType(val) {
  7093. if (val == "0") {
  7094. return "success";
  7095. }
  7096. if (val == "1") {
  7097. return "warning";
  7098. }
  7099. if (val == "2" || val == "3" || val == "4") {
  7100. return "danger";
  7101. }
  7102. },
  7103. handleCheckAllChange(ele) {
  7104. this.totalCompanyList.forEach((val, index) => {
  7105. ele ? (val.checked = true) : (val.checked = false);
  7106. // this.initchange(ele, val.id, val.cnName, index);
  7107. });
  7108. },
  7109. retractFun() {
  7110. this.isRetract = this.isRetract == false ? true : false;
  7111. },
  7112. //中煤意外险调整份数事件
  7113. ZMhandleChange(val) {
  7114. if (!val) {
  7115. this.$refs.ZmMultipleTable[0].clearSelection(); //清除
  7116. }
  7117. },
  7118. //中煤意外险选中对应意外险方案
  7119. // ZMHandleSelectionChange(val) {
  7120. // // if(val.length > 0&& val[0].quantity==undefined){
  7121. // // this.$message({ message: "请先填写投保份数再勾选!", type: "error", });
  7122. // // this.$refs.ZmMultipleTable[0].clearSelection(); //清除
  7123. // // return false;
  7124. // // }
  7125. // if (val.length > 1) {
  7126. // this.$refs.ZmMultipleTable[0].clearSelection(); //清除
  7127. // this.$refs.ZmMultipleTable[0].toggleRowSelection(val.pop()); //pop:最后一个
  7128. // } else {
  7129. // this.zhongmeiaccidentalDrivingVo = val[0]; //multipleSelection:当前选择的数组
  7130. // }
  7131. // },
  7132. //中煤意外险选中对应产品带出方案明细
  7133. zhongmeiInsuranceChange(index) {
  7134. //每次选中产品,清空之前选中的数据
  7135. this.zhongmeitemplateSelection = index;
  7136. this.zhongmeiaccidentalDrivingVo = {};
  7137. this.zhongmeiInsuranceDataTable = [];
  7138. let data = this.zhongmeiInsuranceData.find(
  7139. val => val.projectCode == index
  7140. );
  7141. //把返回的方案明细放入展示数据对象中
  7142. this.accidentFormZM = Object.assign(this.accidentFormZM, data);
  7143. this.accidentFormZM.quantity = "1";
  7144. if (data && data.son) {
  7145. this.accidentPremiumZM = data.sumPremium;
  7146. this.zhongmeiInsuranceDataTable = data.son;
  7147. }
  7148. },
  7149. // 截图粘贴
  7150. copybjd() {
  7151. let that = this;
  7152. html2Canvas(document.getElementById("pdfContentsDiv"), {
  7153. allowTaint: true,
  7154. taintTest: false
  7155. }).then(function (canvas) {
  7156. let base64Data = "";
  7157. // let blob = null
  7158. base64Data = canvas.toDataURL("image/png", 1);
  7159. const date = new Date();
  7160. const saveInfo = {
  7161. download: date.getTime() + `.png`,
  7162. href: base64Data
  7163. };
  7164. const element = document.createElement("a");
  7165. element.style.display = "none";
  7166. for (const key in saveInfo) {
  7167. element.setAttribute(key, saveInfo[key]);
  7168. }
  7169. document.body.appendChild(element);
  7170. element.click();
  7171. setTimeout(() => {
  7172. document.body.removeChild(element);
  7173. }, 300);
  7174. // var format = 'image/png'
  7175. // //将Base64图片编码转换成blob
  7176. // var base64 = base64Data
  7177. // var code = window.atob(base64.split(',')[1])
  7178. // var aBuffer = new window.ArrayBuffer(code.length)
  7179. // var uBuffer = new window.Uint8Array(aBuffer)
  7180. // for (var i = 0; i < code.length; i++) {
  7181. // uBuffer[i] = code.charCodeAt(i) & 0xff
  7182. // }
  7183. // try {
  7184. // blob = new Blob([uBuffer], { type: format })
  7185. // } catch (e) {
  7186. // window.BlobBuilder =
  7187. // window.BlobBuilder ||
  7188. // window.WebKitBlobBuilder ||
  7189. // window.MozBlobBuilder ||
  7190. // window.MSBlobBuilder
  7191. // if (e.name == 'TypeError' && window.BlobBuilder) {
  7192. // var bb = new window.BlobBuilder()
  7193. // bb.append(uBuffer.buffer)
  7194. // blob = bb.getBlob('image/png')
  7195. // } else if (e.name == 'InvalidStateError') {
  7196. // blob = new Blob([aBuffer], { type: format })
  7197. // }
  7198. // }
  7199. // const clipboardItemInput = new ClipboardItem({
  7200. // 'image/png': blob,
  7201. // })
  7202. // that.$copyText({
  7203. // 'image/png': blob,
  7204. // }).then(
  7205. //   function(e) {
  7206. //     console.log("copy arguments e:", e);
  7207. //     alert("复制成功!");
  7208. //   },
  7209. //   function(e) {
  7210. //     console.log("copy arguments e:", e);
  7211. //     alert("复制失败!");
  7212. //   }
  7213. //   ),
  7214. // navigator.clipboard.write([clipboardItemInput])
  7215. // that.$message({
  7216. // message: '已截图并复制到粘贴板!',
  7217. // type: 'success'
  7218. // });
  7219. });
  7220. },
  7221. // 即时起保
  7222. immediatelyChange(e) {
  7223. if (e) {
  7224. this.immediatelyValue = true;
  7225. const date = new Date();
  7226. date.setHours(date.getHours() + 2);
  7227. date.setMinutes(0);
  7228. date.setSeconds(0);
  7229. this.jqstartDate = date;
  7230. this.jqendDate = this.oneYearPast1(date);
  7231. } else {
  7232. this.immediatelyValue = false;
  7233. this.jqstartDate = this.transformTime1();
  7234. this.jqendDate = this.oneYearPast1(this.jqstartDate);
  7235. }
  7236. },
  7237. // 使用性质方法
  7238. natureFun() {
  7239. if (this.carInfo.carnature == "01") {
  7240. this.carInfo.vehicleUse = "";
  7241. }
  7242. },
  7243. // 点击同步报价后的时间
  7244. syncData(item) {
  7245. this.jqstartDate = item.startDateJq ? item.startDateJq : this.jqstartDate;
  7246. this.jqendDate = item.endDateJq ? item.endDateJq : this.endDateJq;
  7247. this.systartDate = item.startDateSy ? item.startDateSy : this.systartDate;
  7248. this.syendDate = item.endDateSy ? item.endDateSy : this.syendDate;
  7249. },
  7250. //纳税类型事件
  7251. taxRelifFlagChange(val) {
  7252. if (val == 4) {
  7253. citydata.rawCitiesData.map(val => {
  7254. this.provinceSelect.push({
  7255. name: val.name,
  7256. code: val.code
  7257. });
  7258. return val;
  7259. });
  7260. }
  7261. },
  7262. //身份证前六位识别地区
  7263. // getAreaByCode(code) {
  7264. // let list = regionData;
  7265. // let provinceCode = code.substring(0, 2);
  7266. // let cityCode = code.substring(0, 4);
  7267. // let areaCode = code.substring(0, 6);
  7268. // // 获取省份信息
  7269. // let province = list.filter(function (item) {
  7270. // return item.value === provinceCode;
  7271. // });
  7272. // // 获取城市信息
  7273. // let city = province[0].children.filter(function (item) {
  7274. // return item.value === cityCode;
  7275. // });
  7276. // if (city.length > 0) {
  7277. // // 获取区/县信息
  7278. // let area = city[0].children.filter(function (item) {
  7279. // return item.value === areaCode;
  7280. // });
  7281. // return province[0].label + city[0].label + area[0].label;
  7282. // }
  7283. // },
  7284. //--数据字典 begin --
  7285. getDicType(type) {
  7286. this.$api.insCompany.dicType(type).then(res => {
  7287. if (res.code == 200) {
  7288. if (type == "insOrderStatus") {
  7289. let data = JSON.parse(JSON.stringify(res.data.ddList));
  7290. data.unshift({
  7291. dictTag: "全部",
  7292. dictValue: "888"
  7293. });
  7294. this[type + "options"] = data;
  7295. } else {
  7296. this[type + "options"] = res.data.ddList;
  7297. }
  7298. }
  7299. });
  7300. },
  7301. //身份证失去焦点
  7302. identifyblur(info) {
  7303. // console.log(getAgeByIdCard(this[info].identifyNumber))
  7304. this[info].age =
  7305. typeof getAgeByIdCard(this[info].identifyNumber) == "number"
  7306. ? getAgeByIdCard(this[info].identifyNumber)
  7307. : "";
  7308. this[info].gender = getGenderByIdCard(this[info].identifyNumber);
  7309. },
  7310. //车主信息选择性别
  7311. genderChange(e) {
  7312. if (this.tbczcarShow) {
  7313. this.policyHolderInfo.gender = e;
  7314. } else if (this.bbczcarShow) {
  7315. this.insuredPersonInfo.gender = e;
  7316. }
  7317. },
  7318. //省市区
  7319. areahandleChange(event, info) {
  7320. if (event[0] != null && event[1] != null && event[2] != null) {
  7321. this[info].province = event[0];
  7322. this[info].provinceName = this.getSelectedNames(event)[0];
  7323. this[info].city = event[1];
  7324. this[info].cityName = this.getSelectedNames(event)[1];
  7325. this[info].county = event[2];
  7326. this[info].countyName = this.getSelectedNames(event)[2];
  7327. }
  7328. },
  7329. getSelectedNames(codes) {
  7330. const names = [];
  7331. const findNames = (options, codes) => {
  7332. options.forEach(option => {
  7333. if (codes.includes(option.code)) {
  7334. names.push(option.name);
  7335. if (option.sub) {
  7336. findNames(option.sub, codes);
  7337. }
  7338. }
  7339. });
  7340. };
  7341. findNames(this.areaOption, codes);
  7342. return names;
  7343. },
  7344. iconfftter(icon) {
  7345. return CommonUtil.getDataName({
  7346. dataList: this.global.insCompanyList,
  7347. value: "name",
  7348. label: "icon",
  7349. data: icon
  7350. });
  7351. },
  7352. disabledDate(time) {
  7353. let datetime = this.carInfo.registerDate;
  7354. return time.getTime() < new Date(datetime).getTime() - 8.64e7;
  7355. },
  7356. onScroll() {
  7357. // 变量scrollTop是滚动条滚动时,滚动条上端距离顶部的距离
  7358. var scrollTop =
  7359. document.documentElement.scrollTop || document.body.scrollTop;
  7360. // 变量windowHeight是可视区的高度
  7361. var windowHeight =
  7362. document.documentElement.clientHeight || document.body.clientHeight;
  7363. // 变量scrollHeight是滚动条的总高度(当前可滚动的页面的总高度)
  7364. var scrollHeight =
  7365. document.documentElement.scrollHeight || document.body.scrollHeight;
  7366. // 滚动条到底部
  7367. if (Math.ceil(scrollTop + windowHeight) >= scrollHeight) {
  7368. this.isBottom = true;
  7369. } else {
  7370. this.isBottom = false;
  7371. }
  7372. },
  7373. pinganInsuranceChange(index, index1, val) {
  7374. if (!index) {
  7375. return;
  7376. }
  7377. this.accidentFormPA[index1].pingantemplateSelection = index;
  7378. this.accidentFormPA[index1].projectName = index;
  7379. val.map(val1 => {
  7380. if (val1.projectName == index) {
  7381. val1.son.forEach(val3 => {
  7382. val3.quantity = "1";
  7383. });
  7384. this.accidentFormPA[index1].pinganInsuranceDataTable = val1.son;
  7385. this.accidentFormPA[index1].projectCode = val1.projectCode;
  7386. }
  7387. });
  7388. // this.accidentFormPA[index1].projectCode=this.pinganInsuranceData.find(val1=>{
  7389. // // val1.map(
  7390. // // (val) => val.projectName == index
  7391. // // ).projectCode
  7392. // }
  7393. // )
  7394. // this.accidentFormPA[index1].pinganInsuranceDataTable = this.pinganInsuranceData.find(
  7395. // (val) => val.projectName == index
  7396. // ).son;
  7397. },
  7398. taikangInsuranceChange(index) {
  7399. if (index) {
  7400. this.TkDrivingChange(
  7401. this.taikangaccidentDataList.find(val => val.projectCode == index)
  7402. );
  7403. }
  7404. if (!index) {
  7405. return;
  7406. }
  7407. this.taikangtemplateSelection = index;
  7408. this.accidentFormTk = Object.assign(
  7409. this.accidentFormTk,
  7410. this.taikangaccidentDataList.find(val => val.projectCode == index)
  7411. );
  7412. this.taikangaccidentDataList
  7413. .find(val => val.projectCode == index)
  7414. .son.forEach(item => {
  7415. item.sumAmount =
  7416. Number(item.amount) * Number(this.accidentFormTk.seatNum);
  7417. });
  7418. this.taikangInsuranceDataTable = this.taikangaccidentDataList.find(
  7419. val => val.projectCode == index
  7420. ).son;
  7421. this.accidentPremiumTk = this.accidentFormTk.premium;
  7422. },
  7423. anshengInsuranceChange(index) {
  7424. this.anshengtemplateSelection = index;
  7425. let data = this.anshengInsuranceData.find(
  7426. val => val.projectCode == index
  7427. );
  7428. this.anshengaccidentalDrivingVo.parentName = data.projectName;
  7429. this.anshengaccidentalDrivingVo.parentCode = data.projectCode;
  7430. this.anshengInsuranceDataTable = [];
  7431. this.anshengInsuranceDataTable = data.children;
  7432. this.anshengInsuranceDataTable.forEach(e => (e.quantity = "1"));
  7433. },
  7434. hengbangInsuranceChange(index) {
  7435. this.hengbangInsuranceDataTable = this.hengbangInsuranceData.find(
  7436. val => val.projectCode == index
  7437. ).son;
  7438. this.hengbangtemplateSelection = index;
  7439. if (this.hengbangInsuranceDataTable.length) {
  7440. this.hengbangaccidentalDrivingVo = this.hengbangInsuranceData.find(
  7441. val => val.projectCode == index
  7442. );
  7443. }
  7444. },
  7445. taipingyangInsuranceChange(index) {
  7446. this.taipingyangInsuranceDataTable = this.taipingyangInsuranceData.find(
  7447. val => val.projectCode == index
  7448. ).son;
  7449. this.taipingyangtemplateSelection = index;
  7450. if (this.taipingyangInsuranceDataTable.length) {
  7451. this.taipingyangaccidentalDrivingVo = this.taipingyangInsuranceData.find(
  7452. val => val.projectCode == index
  7453. );
  7454. }
  7455. },
  7456. huanongInsuranceChange(index) {
  7457. this.huanongInsuranceDataTable = this.huanongInsuranceData.find(
  7458. val => val.projectCode == index
  7459. ).son;
  7460. this.accidentFormHN.accidentType = index;
  7461. this.huanongaccidentalDrivingVo = Object.assign(
  7462. this.huanongInsuranceData.find(val => val.projectCode == index),
  7463. this.accidentFormHN
  7464. );
  7465. },
  7466. taipingInsuranceChange(index) {
  7467. this.taipingtemplateSelection = index;
  7468. this.taipingInsuranceDataTable = this.taipingInsuranceData.find(
  7469. val => val.projectCode == index
  7470. ).son;
  7471. if (
  7472. this.taipingInsuranceDataTable &&
  7473. this.taipingInsuranceDataTable.length
  7474. ) {
  7475. this.taipingaccidentalDrivingVo = this.taipingInsuranceData.find(
  7476. val => val.projectCode == index
  7477. );
  7478. }
  7479. },
  7480. zijinInsuranceChange(index) {
  7481. this.zijintemplateSelection = index;
  7482. this.zijinInsuranceDataTable = [];
  7483. this.$refs.expandTable[0].clearSelection();
  7484. index.forEach(item => {
  7485. this.zijinInsuranceDataTable.push(
  7486. this.ziJinInsuranceData.find(val => val.projectCode == item)
  7487. );
  7488. });
  7489. this.zijinInsuranceDataTable.forEach(item => {
  7490. this.$nextTick(() => {
  7491. this.$refs.expandTable[0].toggleRowSelection(item);
  7492. });
  7493. });
  7494. this.CheckboxChange(this.zijinInsuranceDataTable);
  7495. },
  7496. renshouInsuranceChange(index) {
  7497. // this.renshouInsuranceDataTable = [
  7498. // this.renshouInsuranceData.find(val => val.projectCode == index)
  7499. // ];
  7500. this.renshoutemplateSelection = index;
  7501. this.renshouInsuranceDataTable = this.renshouInsuranceData.find(
  7502. val => val.projectCode == index
  7503. ).son;
  7504. if (index) {
  7505. this.RSDrivingChange(
  7506. this.renshouInsuranceData.find(val => val.projectCode == index)
  7507. );
  7508. }
  7509. },
  7510. async dajiaInsuranceChange(index) {
  7511. this.dajiaaccidentalDrivingVo = {};
  7512. let data = await this.$api.letter.accidentalDrivingInfo(index);
  7513. if (data.code == 200) {
  7514. this.dajiaaccidentalDrivingVo = {
  7515. rideRiskCode: index,
  7516. rideRiskName: this.dajiaInsuranceData.find(val => val.id == index)
  7517. .productName,
  7518. quantity: "1"
  7519. };
  7520. this.dajiaInsuranceDataTable = data.data;
  7521. }
  7522. },
  7523. zhonganInsuranceChange(index) {
  7524. this.zhongantemplateSelection = index;
  7525. this.zhonganInsuranceDataTable = this.zhonganInsuranceData.find(
  7526. val => val.projectCode == index
  7527. ).son;
  7528. if (index) {
  7529. this.ZADrivingChange(
  7530. this.zhonganInsuranceData.find(val => val.projectCode == index)
  7531. );
  7532. }
  7533. },
  7534. // 渤海选择意外险类型
  7535. async bohaiInsuranceChange(index) {
  7536. if (index) {
  7537. this.boHaiaccidentForm.projectCode = index;
  7538. // this.boHaiaccidentForm.projectName = this.dajiaInsuranceData.find(
  7539. // (e) => e.projectCode == index
  7540. // ).projectName;
  7541. this.boHaiaccidentForm.copies = "1";
  7542. this.boHaiaccidentForm.premium = Number(
  7543. this.boHaiaccidentDataList.find(e => e.projectCode == index)
  7544. .sumPremium
  7545. );
  7546. this.bohaiInsuranceDataTable = this.boHaiaccidentDataList.find(
  7547. e => e.projectCode == index
  7548. ).son;
  7549. // let data = await this.$api.letter.productDetailsQueryboHai({
  7550. // projectCode: index,
  7551. // productCode: this.boHaiaccidentDataList.find(
  7552. // (e) => e.packageCode == index
  7553. // ).productCode,
  7554. // agreementId: this.boHaiaccidentForm.agreementId,
  7555. // });
  7556. // if (data.code == 200 && data.data) {
  7557. // this.accidentLoadingbh = false;
  7558. // this.bohaiInsuranceDataTable = data.data;
  7559. // } else {
  7560. // this.$message.error(data.msg);
  7561. // this.bohaiInsuranceDataTable = [];
  7562. // }
  7563. }
  7564. },
  7565. djcxchange(index) {
  7566. if (index) {
  7567. this.dajiaaccidentForm.parentCode = index;
  7568. this.dajiaaccidentForm.quantity = "1";
  7569. this.dajiaaccidentForm.prodCode = "";
  7570. this.dajiaaccidentDataListChild = this.dajiaInsuranceData.find(
  7571. e => e.projectCode == index
  7572. ).children;
  7573. this.dajiaaccidentalDrivingVo.parentName = this.dajiaInsuranceData.find(
  7574. e => e.projectCode == index
  7575. ).projectName;
  7576. this.dajiaaccidentalDrivingVo.parentCode = this.dajiaInsuranceData.find(
  7577. e => e.projectCode == index
  7578. ).projectCode;
  7579. }
  7580. },
  7581. djcxchangeChild(index) {
  7582. if (index) {
  7583. let list = this.dajiaaccidentDataListChild.find(
  7584. val => val.projectCode == index
  7585. );
  7586. this.dajiaaccidentForm = {
  7587. ...this.dajiaaccidentForm,
  7588. prodCode: index,
  7589. projectName: list.projectName,
  7590. sumAmount: Number(list.sumAmount),
  7591. riskCode: list.riskCode,
  7592. sumPremium: Number(list.sumPremium)
  7593. };
  7594. list.productId = list.id;
  7595. this.dajiaInsuranceDataTable = list.son;
  7596. this.dajiaaccidentalDrivingVo = Object.assign({
  7597. ...this.dajiaaccidentalDrivingVo,
  7598. ...list
  7599. });
  7600. } else {
  7601. this.dajiaInsuranceDataTable = [];
  7602. }
  7603. },
  7604. // 国任选择意外险类型
  7605. async grcxchange(index) {
  7606. if (index) {
  7607. this.accidentLoading = true;
  7608. this.guoRenaccidentForm.goodsCode = index;
  7609. this.guoRenaccidentForm.quantity = "1";
  7610. this.guoRenaccidentForm.prodCode = "";
  7611. this.guoRenaccidentDataListChild = this.guoRenaccidentDataList.find(
  7612. e => e.projectCode == index
  7613. ).children;
  7614. this.guoRenaccidentalDrivingVo.parentName = this.guoRenaccidentDataList.find(
  7615. e => e.projectCode == index
  7616. ).projectName;
  7617. this.guoRenaccidentalDrivingVo.parentCode = this.guoRenaccidentDataList.find(
  7618. e => e.projectCode == index
  7619. ).projectCode;
  7620. // let data = await this.$api.letter.syncNonAutoInsGuoren({
  7621. // goodsCode: index,
  7622. // agreementId: this.guoRenaccidentForm.agreementId
  7623. // });
  7624. // if (data.code == 200) {
  7625. // let num = 0;
  7626. // data.data.forEach(item => {
  7627. // num += Number(item.premium);
  7628. // });
  7629. // this.accidentLoading = false;
  7630. // } else {
  7631. // this.accidentLoading = false;
  7632. // this.$message.error(data.msg);
  7633. // this.guoRenaccidentDataListChild = [];
  7634. // }
  7635. }
  7636. },
  7637. // 国任选择意外险子级类型
  7638. async grcxchangeChild(index) {
  7639. let list = this.guoRenaccidentDataListChild.find(
  7640. val => val.projectCode == index
  7641. );
  7642. this.guoRenaccidentForm = {
  7643. ...this.guoRenaccidentForm,
  7644. prodCode: index,
  7645. policyNum: Number(list.sumPremium),
  7646. riskCode: list.riskCode,
  7647. // amount: list.amount,
  7648. sumPremium: Number(list.sumPremium)
  7649. // appnum:Number(list.appnum)
  7650. };
  7651. this.guoRenInsuranceDataTable = list.son;
  7652. this.guoRenaccidentalDrivingVo = Object.assign({
  7653. ...list,
  7654. ...this.guoRenaccidentalDrivingVo
  7655. });
  7656. },
  7657. // 选择意外险类型
  7658. async yongchengInsuranceChange(index) {
  7659. if (!index) {
  7660. return;
  7661. }
  7662. this.yongchengtemplateSelection = index;
  7663. this.accidentForm = Object.assign(
  7664. this.accidentForm,
  7665. this.yongchengaccidentDataList.find(val => val.projectCode == index)
  7666. );
  7667. this.yongchengaccidentDataList
  7668. .find(val => val.projectCode == index)
  7669. .son.forEach(item => {
  7670. item.sumAmount =
  7671. Number(item.amount) * Number(this.accidentForm.seatNum);
  7672. });
  7673. this.yongchengInsuranceDataTable = this.yongchengaccidentDataList.find(
  7674. val => val.projectCode == index
  7675. ).son;
  7676. this.accidentPremium = this.accidentForm.sumPremium;
  7677. // this.accidentForm.fen = "1";
  7678. // let data = await this.$api.letter.ycgainAccidentSchemeList({
  7679. // companyCode: this.accidentForm.companyId,
  7680. // code: index,
  7681. // agreementId: this.accidentForm.agreementId,
  7682. // seatNum: Number(this.carInfo.seatCount)
  7683. // });
  7684. // if (data.code == 200) {
  7685. // let num = 0;
  7686. // data.data.forEach(item => {
  7687. // num += Number(item.premium);
  7688. // });
  7689. // this.accidentPremium = num;
  7690. // this.accidentForm.premium = num;
  7691. // this.accidenttableData = data.data;
  7692. // }
  7693. },
  7694. numberCopieschange(index) {
  7695. this.accidentForm.sumPremium = Number(this.accidentPremium) * index;
  7696. },
  7697. numberCopieschangeTk(index) {
  7698. this.accidentFormTk.sumPremium = Number(this.accidentPremiumTk) * index;
  7699. },
  7700. numberCopieschangePA(index, index1) {
  7701. this.accidentFormPA.premium =
  7702. Number(this.accidentFormPA[index1].accidentPremiumPA) * index;
  7703. },
  7704. numberCopieschangeZM(index) {
  7705. this.accidentFormZM.sumPremium = Number(this.accidentPremiumZM) * index;
  7706. },
  7707. numberCopieschangeGR(index) {
  7708. this.guoRenaccidentForm.sumPremium =
  7709. Number(this.guoRenaccidentForm.policyNum) * index;
  7710. },
  7711. continuousChange(id) {
  7712. this.continuousCompanyList.map(ele => {
  7713. if (ele.id == id) {
  7714. this.attributionform.configure = [];
  7715. ele.configure.map((ele, index) => {
  7716. this.attributionform.configure.push({
  7717. field: ele.field,
  7718. isEdit: ele.isEdit,
  7719. label: ele.label,
  7720. type: ele.type,
  7721. value: ""
  7722. });
  7723. });
  7724. }
  7725. });
  7726. },
  7727. //续保查询
  7728. continuousquery() {
  7729. this.$api.letter.queryRenewal(this.attributionform).then(res => {
  7730. if (res.code == "200") {
  7731. this.carInfo = res.data.carInfo;
  7732. this.carInfo.frameNo = res.data.carInfo.vinNo;
  7733. this.ownerInfo = res.data.ownerInfo;
  7734. this.policyHolderInfo = res.data.policyHolderInfo;
  7735. this.insuredPersonInfo = res.data.insuredPersonInfo;
  7736. res.data.riskList.map(ele => {
  7737. if (ele.riskCode == "0507") {
  7738. this.jqchecked = true;
  7739. this.jqstartDate = ele.startDate;
  7740. this.jqendDate = ele.endDate;
  7741. } else if (ele.riskCode == "0510") {
  7742. this.sychecked = true;
  7743. this.systartDate = ele.startDate;
  7744. this.syendDate = ele.endDate;
  7745. }
  7746. county;
  7747. });
  7748. } else {
  7749. this.$message({
  7750. message: res.msg,
  7751. type: "error",
  7752. duration: 2000
  7753. });
  7754. }
  7755. });
  7756. },
  7757. //永诚转保
  7758. renewalCodeconfirm() {
  7759. this.renewalCodedialogVisible = false;
  7760. this.quote();
  7761. },
  7762. //报价轨迹查询
  7763. RadioHistoryChange(e) {
  7764. let params = {
  7765. orderNo: this.orderno,
  7766. orderStatus: e == 888 ? "" : e
  7767. };
  7768. this.$api.letter.queryQuoteHistory(params).then(res => {
  7769. res.data.forEach(item => {
  7770. if (item.accidentInfo) {
  7771. item.accidentInfo.constructor === Object
  7772. ? [item.accidentInfo]
  7773. : item.accidentInfo;
  7774. }
  7775. });
  7776. this.HistoryList = res.data;
  7777. });
  7778. },
  7779. protocolJudge(val, val1) {
  7780. if (val1) {
  7781. this.totalCompanyList.forEach(e => {
  7782. if (
  7783. e.agreement.find(
  7784. el => el.productsCode && el.productsCode.includes(val)
  7785. )
  7786. ) {
  7787. e.agreement.find(
  7788. el => el.productsCode && el.productsCode.includes(val)
  7789. ).disabled = true;
  7790. }
  7791. });
  7792. } else {
  7793. this.totalCompanyList.forEach(e => {
  7794. if (
  7795. e.agreement.find(
  7796. el => el.productsCode && el.productsCode.includes(val)
  7797. )
  7798. ) {
  7799. e.agreement.find(
  7800. el => el.productsCode && el.productsCode.includes(val)
  7801. ).disabled = false;
  7802. }
  7803. });
  7804. }
  7805. },
  7806. // 回显
  7807. async obtainProtocol(data) {
  7808. let res = {};
  7809. if (this.isLetter == "1") {
  7810. this.getCompanyList(data);
  7811. // res = await this.$api.letter.getAllAgreement();
  7812. }
  7813. if (this.isLetter == "2") {
  7814. setTimeout(() => {
  7815. this.getCompanyList(data);
  7816. }, 500);
  7817. }
  7818. },
  7819. //获取保险公司列表
  7820. // commpanyList() {
  7821. // this.$api.letter.gainAllowQuoteList("").then(res => {
  7822. // res.data.map(ele => {
  7823. // ele["result"] = {};
  7824. // ele["quoteCode"] = 0;
  7825. // ele["checked"] = false;
  7826. // ele["msg"] = "";
  7827. // ele["lastYearMsg"] = "";
  7828. // ele["agreementId"] = "";
  7829. // ele["apiType"] = "";
  7830. // ele["orderstatus"] = 0;
  7831. // ele.coefficient = "";
  7832. // // ele.agreementId = ele.agreement[0].id;
  7833. // ele.apiType = ele.agreement[0].apiType;
  7834. // ele.underwritingDescription =
  7835. // ele.agreement[0].underwritingDescription;
  7836. // });
  7837. // if (this.$route.query.data) {
  7838. // res.data.forEach((val, index) => {
  7839. // this.$route.query.data.insAreaCompanyEditingDtos.forEach(ele => {
  7840. // if (val.namesimple == ele.inscompany) {
  7841. // res.data[index].quoteCode = 200;
  7842. // res.data[index].result = ele;
  7843. // }
  7844. // });
  7845. // });
  7846. // }
  7847. // this.totalCompanyList = res.data;
  7848. // });
  7849. // },
  7850. Payment(id, item) {
  7851. this.carcode(id, item);
  7852. },
  7853. // 现询
  7854. getInquiryNowList(agreementId, riskList, kindList) {
  7855. let productId = "";
  7856. this.inquiryNowList = [];
  7857. this.$api.letter
  7858. .getProductId({
  7859. riskList: riskList,
  7860. kindList: kindList
  7861. })
  7862. .then(res => {
  7863. if (res.code == 200) {
  7864. productId = res.data;
  7865. this.$api.letter
  7866. .getInquiryNowFee({
  7867. agreementId: agreementId,
  7868. productId: productId
  7869. })
  7870. .then(resp => {
  7871. if (resp.code == 200) {
  7872. this.inquiryNowList = resp.data;
  7873. }
  7874. });
  7875. }
  7876. });
  7877. },
  7878. inquiryNowListChange(data) {
  7879. if (data) {
  7880. this.nowCostsId = data; // 现询id
  7881. this.isInquiryNowDisable = true;
  7882. this.inquiryNowList.forEach(val => {
  7883. if (val.id == data) {
  7884. this.policyNumberForm.jqCostsProportion = val.jqCostsProportion;
  7885. this.policyNumberForm.noCostsProportion = val.noCostsProportion;
  7886. this.policyNumberForm.syCostsProportion = val.syCostsProportion;
  7887. }
  7888. });
  7889. } else {
  7890. this.nowCostsId = "";
  7891. this.isInquiryNowDisable = false;
  7892. this.policyNumberForm.jqCostsProportion = "";
  7893. this.policyNumberForm.noCostsProportion = "";
  7894. this.policyNumberForm.syCostsProportion = "";
  7895. }
  7896. },
  7897. //选择协议 val:协议id row:协议列表 index:下标 item:保险公司数据集合
  7898. agreementChange(val, row, index, item) {
  7899. this.getInquiryNowList(val, this.riskList, this.kindList);
  7900. this.kindListFun(index);
  7901. let obj = {};
  7902. obj = row.find(item => {
  7903. return item;
  7904. });
  7905. let selectRow = row.find(item => {
  7906. return item.id == val;
  7907. });
  7908. let info = row.find(ele => ele.id == val);
  7909. this.totalCompanyList[index].apiType = info.apiType;
  7910. this.totalCompanyList[index].underwritingDescription = val
  7911. ? selectRow.underwritingDescription
  7912. : ""; //重新赋值修改选中协议承保描述
  7913. if (this.$route.path != "/task/external/externalOrders")
  7914. if (item.namesimple == "平安财险") {
  7915. this.$api.letter
  7916. .getPingAnDrivingInsuranceRule({
  7917. cimodelclass: this.carInfo.cimodelclass,
  7918. isUseCombine: "Y",
  7919. tonNumber: this.carInfo.limitLoad,
  7920. ownAttribute: "03",
  7921. useAttribute: this.carInfo.carnature,
  7922. ruleSeatNum: Number(this.carInfo.seatCount),
  7923. agreementId: item.agreementId
  7924. })
  7925. .then(res => {
  7926. this.pinganInsuranceData = res.data;
  7927. });
  7928. return;
  7929. }
  7930. this.$api.letter
  7931. .getDrivingInsuranceRule({
  7932. companyCode: item.id,
  7933. agreementId: item.agreementId,
  7934. seatNum:
  7935. item.namesimple == "永诚财险" || item.namesimple == "中煤财险"
  7936. ? Number(this.carInfo.seatCount)
  7937. : "",
  7938. ruleUseNature: this.carInfo.carnature,
  7939. ruleSeatNum: Number(this.carInfo.seatCount),
  7940. risk: this.riskList,
  7941. kind: this.kindList,
  7942. ruleThirdPartyInsurance: this.insureList[1].amount
  7943. })
  7944. .then(res => {
  7945. if (res.code == 200) {
  7946. this.nonVehicle(res.data, item.cnName);
  7947. switch (item.namesimple) {
  7948. case "永诚财险":
  7949. this.yongchengaccidentDataList = res.data;
  7950. break;
  7951. case "国任财险":
  7952. this.guoRenaccidentDataList = res.data;
  7953. break;
  7954. case "渤海财险":
  7955. this.boHaiaccidentDataList = res.data;
  7956. break;
  7957. case "中煤财险":
  7958. this[item.cnName + +"InsuranceData"] = res.data;
  7959. break;
  7960. case "紫金财险":
  7961. let data = res.data;
  7962. data.map(ele => {
  7963. ele.quantity = 1;
  7964. return ele;
  7965. });
  7966. this.ziJinInsuranceData = data;
  7967. break;
  7968. case "大家财险":
  7969. this.dajiaInsuranceData = res.data;
  7970. break;
  7971. case "泰康财险":
  7972. this.taikangaccidentDataList = res.data;
  7973. break;
  7974. case "中国人寿":
  7975. case "人保财险":
  7976. case "恒邦财险":
  7977. case "太平财险":
  7978. case "安盛天平":
  7979. case "华农财险":
  7980. case "华安财险":
  7981. case "泰山财险":
  7982. case "众安财险":
  7983. case "太平洋财险":
  7984. res.data.map(ele => {
  7985. ele.quantity = 1;
  7986. return ele;
  7987. });
  7988. this[item.cnName + "InsuranceData"] = res.data;
  7989. break;
  7990. }
  7991. } else {
  7992. this.$message.error(res.msg);
  7993. }
  7994. });
  7995. // switch (item.namesimple) {
  7996. // case "永诚财险":
  7997. // this.accidentForm.agreementId = item.agreementId;
  7998. // this.$api.letter
  7999. // .ycgainAccidentList({
  8000. // companyCode: item.id,
  8001. // agreementId: item.agreementId,
  8002. // seatNum: Number(this.carInfo.seatCount)
  8003. // })
  8004. // .then(res => {
  8005. // if (res.code == 200) {
  8006. // this.accidentDataList = res.data;
  8007. // }
  8008. // });
  8009. // break;
  8010. // case "国任财险":
  8011. // this.guoRenaccidentForm.agreementId = item.agreementId;
  8012. // this.$api.letter
  8013. // .syncNonAutoInsGuoren({ agreementId: item.agreementId })
  8014. // .then(res => {
  8015. // if (res.code == 200) {
  8016. // this.guoRenaccidentDataList = res.data;
  8017. // } else {
  8018. // this.guoRenaccidentDataList = [];
  8019. // }
  8020. // });
  8021. // break;
  8022. // case "渤海财险":
  8023. // this.boHaiaccidentForm.agreementId = item.agreementId;
  8024. // let policyHolderInfo = this.tbczcarShow
  8025. // ? this.ownerInfo
  8026. // : this.policyHolderInfo;
  8027. // let productQueryVo = {
  8028. // agreementId: item.agreementId,
  8029. // carnature: this.carInfo.carnature,
  8030. // cimodelclass: this.carInfo.cimodelclass,
  8031. // exhaustScale: this.carInfo.enginedesc,
  8032. // limitLoad: this.carInfo.limitLoad,
  8033. // powerScale: this.carInfo.powerScale,
  8034. // seatCount: this.carInfo.seatCount,
  8035. // vehicleUse: this.carInfo.vehicleUse,
  8036. // policyHolderInfo,
  8037. // insuredPersonInfo: this.bbczcarShow
  8038. // ? this.ownerInfo
  8039. // : this.bbtbcarShow
  8040. // ? policyHolderInfo
  8041. // : this.insuredPersonInfo
  8042. // };
  8043. // this.$api.letter.productQueryboHai(productQueryVo).then(res => {
  8044. // if (res.code == 200) {
  8045. // this.boHaiaccidentDataList = res.data;
  8046. // } else {
  8047. // this.boHaiaccidentDataList = [];
  8048. // }
  8049. // });
  8050. // break;
  8051. // case "紫金财险":
  8052. // this.$api.letter
  8053. // .zijinqueryVehicleProducts({
  8054. // agreementId: val,
  8055. // seatCount: Number(this.carInfo.seatCount)
  8056. // })
  8057. // .then(res => {
  8058. // if (res.code == 200) {
  8059. // let data = res.data;
  8060. // data.map(ele => {
  8061. // ele.quantity = 1;
  8062. // return ele;
  8063. // });
  8064. // this.ziJinInsuranceData = data;
  8065. // } else {
  8066. // this.$message.error(res.msg);
  8067. // }
  8068. // });
  8069. // break;
  8070. // case "中国人寿":
  8071. // case "恒邦财险":
  8072. // case "太平财险":
  8073. // case "安盛天平":
  8074. // case "华农财险":
  8075. // case "众安财险":
  8076. // this.$api.letter.pythongetDriving({ agreementId: val }).then(res => {
  8077. // if (res.code == 200) {
  8078. // let data = res.data;
  8079. // data.map(ele => {
  8080. // ele.quantity = 1;
  8081. // return ele;
  8082. // });
  8083. // this[item.cnName + "InsuranceData"] = data;
  8084. // }
  8085. // });
  8086. // break;
  8087. // case "大家财险":
  8088. // this.$api.letter
  8089. // .dajiagetDriving({ agreementId: item.agreementId })
  8090. // .then(res => {
  8091. // if (res.code == 200) {
  8092. // this.dajiaInsuranceData = res.data;
  8093. // }
  8094. // });
  8095. // break;
  8096. // default:
  8097. // break;
  8098. // }
  8099. },
  8100. nonVehicle(data, type) {
  8101. if (data.some(e => e.isDefault)) {
  8102. if (type == "guoRen") {
  8103. this.grcxchange(data.find(ele => ele.isDefault).projectCode);
  8104. this.grcxchangeChild(
  8105. data.find(ele => ele.isDefault).children.find(ele => ele.isDefault)
  8106. .projectCode
  8107. );
  8108. }
  8109. if (type == "ansheng") {
  8110. this.anshengInsuranceChange(
  8111. data.find(ele => ele.isDefault).projectCode
  8112. );
  8113. this.ASDrivingRadio(
  8114. data.find(ele => ele.isDefault).children.find(ele => ele.isDefault)
  8115. );
  8116. }
  8117. if (type == "zijin") {
  8118. this[type + "InsuranceChange"]([
  8119. data.find(ele => ele.isDefault).projectCode
  8120. ]);
  8121. } else {
  8122. this[type + "InsuranceChange"](
  8123. data.find(ele => ele.isDefault).projectCode
  8124. );
  8125. }
  8126. }
  8127. },
  8128. CheckboxChange(select, row) {
  8129. this.accidentalDrivingVo = [];
  8130. select.map(val => {
  8131. this.accidentalDrivingVo.push(val);
  8132. return val;
  8133. });
  8134. },
  8135. //人寿驾意险选择
  8136. RSDrivingChange(row) {
  8137. this.renshouaccidentalDrivingVo = row;
  8138. },
  8139. TkDrivingChange(row) {
  8140. this.taikangaccidentalDrivingVo = row;
  8141. },
  8142. //众安驾意险选择
  8143. ZADrivingChange(row) {
  8144. this.zhonganaccidentalDrivingVo = row;
  8145. },
  8146. RSDrivingRadio(row) {
  8147. this.RSDrivingChange(row);
  8148. },
  8149. //安盛驾意险选择
  8150. ASDrivingRadio(row) {
  8151. this.anshengInsurancetype = row.projectCode;
  8152. this.anshengaccidentalDrivingVo = Object.assign({
  8153. ...this.anshengaccidentalDrivingVo,
  8154. ...row
  8155. });
  8156. // this.anshengaccidentalDrivingVo.projectCode = row.projectCode;
  8157. // this.anshengaccidentalDrivingVo.projectName = row.projectName;
  8158. },
  8159. pinganDetail(row, agreementId) {
  8160. this.pinganDataDetailVisible = false;
  8161. this.$api.letter
  8162. .productDetailsQuery({
  8163. agreementId,
  8164. packageCode: row.code,
  8165. productCode: row.productCode,
  8166. version: row.version
  8167. })
  8168. .then(res => {
  8169. if (res.code == 200) {
  8170. this.pinganDataDetailVisible = true;
  8171. this.pinganDataDetail = res.data;
  8172. } else {
  8173. this.$message.err(res.msg);
  8174. }
  8175. });
  8176. },
  8177. sameItem(array1, array2) {
  8178. return array2.find(item => {
  8179. array1.some(innerItem => innerItem.code === item.code);
  8180. });
  8181. },
  8182. PADrivingCheckbox(event, row, agreementId, index) {
  8183. // const checkedVal = this.accidentFormPA[index].pinganInsuranceDataTable.find(x => x.cameraId === item.cameraId)
  8184. const isSelected = event.some(
  8185. selectedRow => selectedRow.code == row.code
  8186. );
  8187. let isIndex = null;
  8188. let amount = null;
  8189. event.find((selectedRow, selectedIndex) => {
  8190. if (selectedRow.code == row.code) {
  8191. isIndex = selectedIndex;
  8192. }
  8193. });
  8194. if (event.length > 0 && isSelected) {
  8195. this.$api.letter
  8196. .productDetailsQuery({
  8197. agreementId,
  8198. packageCode: row.code,
  8199. productCode: row.productCode,
  8200. version: row.version
  8201. })
  8202. .then(res => {
  8203. if (res.code == 200) {
  8204. res.data.forEach(ele => {
  8205. amount += Number(ele.unitInsuredAmount)
  8206. ? Number(ele.unitInsuredAmount)
  8207. : 0;
  8208. });
  8209. event[isIndex].amount = amount;
  8210. } else {
  8211. this.$message.err(res.msg);
  8212. }
  8213. });
  8214. }
  8215. event.forEach((res, indexOf) => {
  8216. res.projectName = this.accidentFormPA[index].projectName;
  8217. res.projectCode = this.accidentFormPA[index].projectCode;
  8218. res.combineProductType = this.accidentFormPA[index].combineProductType;
  8219. });
  8220. this.pinganaccidentalDrivingVo[index] = event;
  8221. },
  8222. //平安驾意险选择
  8223. PADrivingRadio(row, agreementId, index) {
  8224. // this.accidentPremiumPA = row.premium;
  8225. this.accidentFormPA[index].quantity = "1";
  8226. this.accidentFormPA[index].sellListSize = Number(row.sellListSize);
  8227. this.accidentFormPA[index].premium = row.premium;
  8228. this.accidentFormPA[index].combineProductType = row.combineProductType;
  8229. this.accidentFormPA[index].accidentPremiumPA = row.premium;
  8230. this.accidentFormPA[index].pinganInsurancetype = row.code;
  8231. this.$api.letter
  8232. .productDetailsQuery({
  8233. agreementId,
  8234. packageCode: row.code,
  8235. productCode: row.productCode,
  8236. version: row.version
  8237. })
  8238. .then(res => {
  8239. if (res.code == 200) {
  8240. this.accidentFormPA[index].amount = 0;
  8241. res.data.forEach(e => {
  8242. this.accidentFormPA[index].amount += Number(e.unitInsuredAmount)
  8243. ? Number(e.unitInsuredAmount)
  8244. : 0;
  8245. });
  8246. this.pinganaccidentalDrivingVo[index] = {
  8247. ...row,
  8248. ...this.accidentFormPA[index]
  8249. };
  8250. } else {
  8251. this.$message.err(res.msg);
  8252. this.pinganaccidentalDrivingVo[index] = {
  8253. ...row,
  8254. ...this.accidentFormPA[index]
  8255. };
  8256. }
  8257. });
  8258. },
  8259. ZADrivingRadio(row) {
  8260. this.ZADrivingChange(row);
  8261. },
  8262. // 获取特约
  8263. getClauseData(id, index) {
  8264. this.ownerInfo.owner = this.tbczcarShow;
  8265. this.insuredPersonInfo.owner = this.bbczcarShow;
  8266. this.insuredPersonInfo.insuranceHolder = this.bbtbcarShow;
  8267. let data = {
  8268. userId: this.userId,
  8269. quoteno: this.quoteno,
  8270. orderNo: this.orderno,
  8271. carInfo: this.carInfo,
  8272. insuredPersonInfo: this.insuredPersonInfo,
  8273. ownerInfo: this.ownerInfo,
  8274. policyHolderInfo: this.policyHolderInfo,
  8275. kindList: this.kindList,
  8276. riskList: this.riskList,
  8277. isExternal: "1",
  8278. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  8279. };
  8280. // this.typeDialogIndex = index
  8281. // this.zijinengageListData = [];
  8282. // this.contributingLoading = true;
  8283. // this.contributingState = true;
  8284. // this.hbsubmitdialogVisible = true;
  8285. this.$api.letter
  8286. .getClauseByCompanyId({
  8287. productCode: this.productId,
  8288. companyId: this.totalCompanyList[index].id,
  8289. quoteInfoVo: data
  8290. })
  8291. .then(res => {
  8292. this.contributingLoading = false;
  8293. if (res.data) {
  8294. // res.data.forEach((val) => {
  8295. // val.clauseName = val.clauses;
  8296. // val.clauseContent = val.clausesContext;
  8297. // });
  8298. this.zijinengageListData = res.data;
  8299. }
  8300. });
  8301. },
  8302. // 国任特约选择
  8303. contributingGuoRen(id, index) {
  8304. this.typeDialogIndex = index;
  8305. this.zijinengageListData = [];
  8306. this.contributingLoading = true;
  8307. this.contributingState = true;
  8308. this.hbsubmitdialogVisible = true;
  8309. this.getClauseData(id, index);
  8310. return;
  8311. this.$api.letter.guorenqueryClauseData({ agreementId: id }).then(res => {
  8312. this.contributingLoading = false;
  8313. if (res.data) {
  8314. res.data.forEach(val => {
  8315. val.clauseName = val.clauses;
  8316. val.clauseContent = val.clausesContext;
  8317. });
  8318. this.zijinengageListData = res.data;
  8319. }
  8320. });
  8321. },
  8322. //紫金特约选择
  8323. zijinengageChange(select, row) {
  8324. this.zijinengageList = [];
  8325. if (!this.totalCompanyList[this.typeDialogIndex].zxProgramme) {
  8326. this.totalCompanyList[this.typeDialogIndex].zxProgramme = {
  8327. // 自选方案详情
  8328. description: "",
  8329. drivingList: [],
  8330. jqx: {
  8331. name: "交通事故强制责任险"
  8332. },
  8333. kinds: {
  8334. additional: [],
  8335. main: [],
  8336. service: []
  8337. },
  8338. teyue: []
  8339. };
  8340. }
  8341. // this.totalCompanyList[this.typeDialogIndex].programme = {}
  8342. this.totalCompanyList[this.typeDialogIndex].programme.teyue = [];
  8343. select.map(val => {
  8344. this.zijinengageList.push({
  8345. clauseCode: val.clauseCode,
  8346. clauseName: val.clauseName,
  8347. clauses: val.clauseContent,
  8348. riskCode: val.riskCode
  8349. });
  8350. this.totalCompanyList[
  8351. this.typeDialogIndex
  8352. ].zxProgramme.teyue = this.zijinengageList;
  8353. this.totalCompanyList[
  8354. this.typeDialogIndex
  8355. ].programme.teyue = this.zijinengageList;
  8356. return val;
  8357. });
  8358. },
  8359. zijinengageChangeAll(row) {
  8360. if (row) {
  8361. this.zijinengageChange(row);
  8362. } else {
  8363. this.$refs.expandTablePro.clearSelection();
  8364. this.zijinengageList = [];
  8365. }
  8366. },
  8367. //紫金特约内容编辑
  8368. zijincellDblclick(row, column) {
  8369. this.currentCell = row.index + "," + column.index;
  8370. if (
  8371. !["clauseContent"].includes(column.property) &&
  8372. row.modifyFlag == "1"
  8373. ) {
  8374. setTimeout(() => {
  8375. this.$refs[row.index + "," + column.index].focus();
  8376. });
  8377. }
  8378. },
  8379. tableCellClassName({ row, column, rowIndex, columnIndex }) {
  8380. row.index = rowIndex;
  8381. column.index = columnIndex;
  8382. },
  8383. hideInput() {
  8384. this.currentCell = null;
  8385. },
  8386. updateArray(arr, value, condition) {
  8387. if (condition) {
  8388. arr.push(value);
  8389. } else {
  8390. const index = arr.indexOf(value);
  8391. if (index !== -1) {
  8392. arr.splice(index, 1);
  8393. }
  8394. }
  8395. if (arr.length == 0) {
  8396. this.totalCompanyList.forEach(e => {
  8397. e.disabled = false;
  8398. });
  8399. } else {
  8400. this.totalCompanyList.forEach(e => {
  8401. e.disabled = e.id == arr[0] ? false : true;
  8402. });
  8403. }
  8404. },
  8405. //勾选保险公司
  8406. initchange(e, code, name, index) {
  8407. if (e) {
  8408. this.totalCompanyList[index].checked = e;
  8409. this.getCompanyProgramme(e, code, name, index);
  8410. this.kindListFun();
  8411. let ins = this.totalCompanyList[index].namesimple;
  8412. this.totalCompanyList[
  8413. index
  8414. ].underwritingDescription = this.totalCompanyList[
  8415. index
  8416. ].agreement[0].underwritingDescription;
  8417. if (this.$route.path != "/task/external/externalOrders")
  8418. this.$api.letter
  8419. .getDrivingInsuranceRule({
  8420. agreementId: this.totalCompanyList[index].agreement[0].id,
  8421. seatNum:
  8422. ins == "永诚财险" || ins == "中煤财险"
  8423. ? Number(this.carInfo.seatCount)
  8424. : "",
  8425. ruleUseNature: this.carInfo.carnature,
  8426. ruleSeatNum: Number(this.carInfo.seatCount),
  8427. risk: this.riskList,
  8428. kind: this.kindList,
  8429. ruleThirdPartyInsurance: this.insureList[1].amount,
  8430. cimodelclass: ins == "平安财险" ? this.carInfo.cimodelclass : "",
  8431. isUseCombine: ins == "平安财险" ? "Y" : "",
  8432. tonNumber: ins == "平安财险" ? this.carInfo.limitLoad : "",
  8433. ownAttribute: ins == "平安财险" ? "03" : "",
  8434. useAttribute: ins == "平安财险" ? this.carInfo.carnature : ""
  8435. })
  8436. .then(res => {
  8437. if (res.code == 200) {
  8438. switch (ins) {
  8439. case "永诚财险":
  8440. this.yongchengaccidentDataList = res.data;
  8441. break;
  8442. case "国任财险":
  8443. this.guoRenaccidentDataList = res.data;
  8444. break;
  8445. case "渤海财险":
  8446. this.boHaiaccidentDataList = res.data;
  8447. break;
  8448. case "中煤财险":
  8449. case "平安财险":
  8450. this[name + "InsuranceData"] = res.data;
  8451. break;
  8452. case "紫金财险":
  8453. let data = res.data;
  8454. data.map(ele => {
  8455. ele.quantity = 1;
  8456. return ele;
  8457. });
  8458. this.ziJinInsuranceData = data;
  8459. break;
  8460. case "大家财险":
  8461. this.dajiaInsuranceData = res.data;
  8462. break;
  8463. case "中国人寿":
  8464. case "人保财险":
  8465. case "恒邦财险":
  8466. case "太平财险":
  8467. case "华农财险":
  8468. case "华安财险":
  8469. case "泰山财险":
  8470. case "安盛天平":
  8471. case "众安财险":
  8472. case "太平洋财险":
  8473. res.data.map(ele => {
  8474. ele.quantity = 1;
  8475. return ele;
  8476. });
  8477. this[name + "InsuranceData"] = res.data;
  8478. break;
  8479. }
  8480. this.nonVehicle(res.data, name);
  8481. } else {
  8482. this.$message.error(res.msg);
  8483. }
  8484. });
  8485. // switch (ins) {
  8486. // case "永诚财险":
  8487. // this.accidentForm.agreementId = this.totalCompanyList[
  8488. // index
  8489. // ].agreement[0].id;
  8490. // this.$api.letter
  8491. // .ycgainAccidentList({
  8492. // companyCode: this.totalCompanyList[index].id,
  8493. // agreementId: this.totalCompanyList[index].agreement[0].id,
  8494. // seatNum: Number(this.carInfo.seatCount)
  8495. // })
  8496. // .then(res => {
  8497. // if (res.code == 200) {
  8498. // this.accidentDataList = res.data;
  8499. // } else {
  8500. // this.accidentDataList = [];
  8501. // }
  8502. // });
  8503. // break;
  8504. // case "国任财险":
  8505. // this.guoRenaccidentForm.agreementId = this.totalCompanyList[
  8506. // index
  8507. // ].agreement[0].id;
  8508. // this.$api.letter
  8509. // .syncNonAutoInsGuoren({
  8510. // goodsCode: "",
  8511. // agreementId: this.totalCompanyList[index].agreement[0].id
  8512. // })
  8513. // .then(res => {
  8514. // if (res.code == 200) {
  8515. // this.guoRenaccidentDataList = res.data;
  8516. // } else {
  8517. // this.guoRenaccidentDataList = [];
  8518. // }
  8519. // });
  8520. // break;
  8521. // case "紫金财险":
  8522. // this.$api.letter
  8523. // .zijinqueryVehicleProducts({
  8524. // agreementId: this.totalCompanyList[index].agreement[0].id,
  8525. // seatCount: Number(this.carInfo.seatCount)
  8526. // })
  8527. // .then(res => {
  8528. // if (res.code == 200) {
  8529. // let data = res.data;
  8530. // data.map(ele => {
  8531. // ele.quantity = 1;
  8532. // return ele;
  8533. // });
  8534. // this.ziJinInsuranceData = data;
  8535. // } else {
  8536. // this.$message.error(res.msg);
  8537. // }
  8538. // });
  8539. // break;
  8540. // case "安盛天平":
  8541. // this.$api.letter
  8542. // .pythongetDriving({
  8543. // agreementId: this.totalCompanyList[index].agreement[0].id
  8544. // })
  8545. // .then(res => {
  8546. // if (res.code == 200) {
  8547. // let data = res.data;
  8548. // data.map(ele => {
  8549. // ele.departmentProductList.map(val => {
  8550. // val.quantity = 1;
  8551. // });
  8552. // return ele;
  8553. // });
  8554. // this[name + "InsuranceData"] = data;
  8555. // } else {
  8556. // this.$message.error(res.msg);
  8557. // }
  8558. // });
  8559. // break;
  8560. // case "中国人寿":
  8561. // case "恒邦财险":
  8562. // case "太平财险":
  8563. // case "华农财险":
  8564. // case "众安财险":
  8565. // this.$api.letter
  8566. // .pythongetDriving({
  8567. // agreementId: this.totalCompanyList[index].agreement[0].id
  8568. // })
  8569. // .then(res => {
  8570. // if (res.code == 200) {
  8571. // let data = res.data;
  8572. // data.map(ele => {
  8573. // ele.quantity = 1;
  8574. // return ele;
  8575. // });
  8576. // this[name + "InsuranceData"] = data;
  8577. // } else {
  8578. // this.$message.error(res.msg);
  8579. // }
  8580. // });
  8581. // break;
  8582. // case "中煤财险":
  8583. // this.accidentFormZM.agreementId = this.totalCompanyList[
  8584. // index
  8585. // ].agreement[0].id;
  8586. // this.$api.letter
  8587. // .zmGetDrivingPro({
  8588. // agreementId: this.totalCompanyList[index].agreement[0].id,
  8589. // seatNum: this.carInfo.seatCount
  8590. // })
  8591. // .then(res => {
  8592. // if (res.code == 200) {
  8593. // let data = res.data;
  8594. // this[name + "InsuranceData"] = data;
  8595. // } else {
  8596. // this.$message.error(res.msg);
  8597. // }
  8598. // });
  8599. // break;
  8600. // case "大家财险":
  8601. // this.$api.letter
  8602. // .dajiagetDriving({
  8603. // agreementId: this.totalCompanyList[index].agreement[0].id
  8604. // })
  8605. // .then(res => {
  8606. // if (res.code == 200) {
  8607. // this.dajiaInsuranceData = res.data;
  8608. // } else {
  8609. // this.$message.error(res.msg);
  8610. // }
  8611. // });
  8612. // break;
  8613. // default:
  8614. // break;
  8615. // }
  8616. } else {
  8617. }
  8618. },
  8619. clearAccidentForm() {
  8620. this.yongchengInsuranceDataTable = [];
  8621. this.accidentForm = {};
  8622. this.accidentForm.fen = 1;
  8623. this.accidentForm.premium = 0;
  8624. },
  8625. clearAccidentFormPA(index) {
  8626. // this.accidentFormPA[index]={
  8627. // quantity: 1,
  8628. // premium: 0,
  8629. // pingantemplateSelection:'',
  8630. // pinganInsuranceDataTable:[],
  8631. // pinganInsurancetype:'',
  8632. // }
  8633. this.pinganaccidentalDrivingVo[index] = {};
  8634. },
  8635. clearAccidentFormTk() {
  8636. this.taikangaccidentalDrivingVo = {};
  8637. this.taikangInsuranceDataTable = [];
  8638. this.accidentFormTk = {};
  8639. this.accidentFormTk.fen = 1;
  8640. this.accidentFormTk.premium = 0;
  8641. },
  8642. clearAccidentFormGr() {
  8643. (this.guoRenInsuranceDataTable = []),
  8644. (this.guoRenaccidentDataListChild = []);
  8645. this.guoRenaccidentForm = {
  8646. quantity: "1",
  8647. premium: 0
  8648. };
  8649. },
  8650. clearAccidentFormBh() {
  8651. this.bohaiInsuranceDataTable = [];
  8652. this.boHaiaccidentForm = {
  8653. copies: "1",
  8654. premium: 0
  8655. };
  8656. // this.bohaiaccidentalDrivingVo={};
  8657. },
  8658. clearAccidentFormHN() {
  8659. this.huanongaccidentalDrivingVo = {};
  8660. },
  8661. clearAccidentFormHB() {
  8662. this.hengbangaccidentalDrivingVo = {};
  8663. },
  8664. clearAccidentFormTP() {
  8665. this.taipingaccidentalDrivingVo = {};
  8666. },
  8667. clearAccidentFormDJ() {
  8668. this.dajiaaccidentalDrivingVo = {};
  8669. },
  8670. clearAccidentFormZM() {
  8671. this.zhongmeiaccidentalDrivingVo = {};
  8672. },
  8673. clearAccidentFormZJ() {
  8674. this.accidentalDrivingVo = [];
  8675. },
  8676. clearAccidentFormZA() {
  8677. this.zhonganaccidentalDrivingVo = {};
  8678. },
  8679. clearAccidentFormRS() {
  8680. this.renshouaccidentalDrivingVo = {};
  8681. },
  8682. clearAccidentFormAS() {
  8683. this.anshengaccidentalDrivingVo = {};
  8684. },
  8685. //身份证有效期长期
  8686. insureLongterm(e) {
  8687. this[e].identifyValidEndDate = "9999-12-31";
  8688. },
  8689. //较强起保日期事件
  8690. jqChange(e) {
  8691. this.jqendDate = this.oneYearPast1(e);
  8692. },
  8693. //商业起保日期事件
  8694. syChange(e) {
  8695. this.syendDate = this.oneYearPast1(e);
  8696. },
  8697. // //查看更多
  8698. // selectMore(leg) {
  8699. // this.insureMore = false;
  8700. // this.insureLength = leg;
  8701. // },
  8702. // //收起
  8703. // packup() {
  8704. // this.insureMore = true;
  8705. // this.insureLength = 5;
  8706. // },
  8707. //险别选择框事件
  8708. insureitemChange(e, item) {
  8709. // if (e != 0) {
  8710. // this.sychecked = true;
  8711. // this.systartDate = this.transformTime1();
  8712. // this.syendDate = this.oneYearPast1(this.systartDate);
  8713. // this.kindList.push(item)
  8714. // this.obtainProtocol();
  8715. // } else {
  8716. // let list = this.kindList.filter(item => item.kindCode !== item.kindCode);
  8717. // this.kindList = list;
  8718. // this.obtainProtocol();
  8719. // }
  8720. },
  8721. all() {
  8722. this.$refs.detailsDialog.setBackupVisible(true);
  8723. },
  8724. base64ToBlob(code) {
  8725. code = code.replace(/[\n\r]/g, "");
  8726. // atob() 方法用于解码使用 base-64 编码的字符串。
  8727. const raw = window.atob(code);
  8728. const rawLength = raw.length;
  8729. const uInt8Array = new Uint8Array(rawLength);
  8730. for (let i = 0; i < rawLength; ++i) {
  8731. uInt8Array[i] = raw.charCodeAt(i);
  8732. }
  8733. return new Blob([uInt8Array], { type: "application/pdf" });
  8734. },
  8735. viewPdf(content) {
  8736. if (!content) {
  8737. this.$message.error("暂无文件");
  8738. return;
  8739. }
  8740. const blob = this.base64ToBlob(content);
  8741. this.href = blob;
  8742. if (window.navigator && window.navigator.msSaveOrOpenBlob) {
  8743. window.navigator.msSaveOrOpenBlob(blob);
  8744. } else {
  8745. const fileURL = URL.createObjectURL(blob);
  8746. window.open(fileURL);
  8747. }
  8748. },
  8749. //二维码生成插件
  8750. creatQrCode(text) {
  8751. // 查找并删除旧的二维码DOM元素
  8752. let element = document.getElementById("qrcode");
  8753. while (element.firstChild) {
  8754. element.removeChild(element.firstChild);
  8755. }
  8756. // 创建新的QRCode实例
  8757. this.qrcode = new QrCode("qrcode", {
  8758. text: text,
  8759. width: this.qrcodeWidth,
  8760. height: this.qrcodeHeight,
  8761. colorDark: "#000000",
  8762. colorLight: "#ffffff",
  8763. correctLevel: QrCode.CorrectLevel.H
  8764. });
  8765. },
  8766. //人工核保
  8767. underwriting(id) {
  8768. let param = {
  8769. companyId: id
  8770. };
  8771. this.$api.letter.manualUnderwriting(param).then(res => {
  8772. if (res.code == "200") {
  8773. this.Payment(id);
  8774. }
  8775. });
  8776. },
  8777. signature(companyId) {
  8778. this.$api.letter.pingAnsignEleApply({ companyId }).then(res => {
  8779. if (res.code == 200 && res.data) {
  8780. this.resultMessageImg = process.env.BASE_URL + res.data.resultMessage;
  8781. this.signaturedialogVisible = true;
  8782. // 查找并删除旧的二维码DOM元素
  8783. // let element = document.getElementById("signaturecode");
  8784. // while (element.firstChild) {
  8785. // element.removeChild(element.firstChild);
  8786. // }
  8787. // this.signaturecode = new QRCode("signaturecode", {
  8788. // text: resultMessage,
  8789. // width: 180,
  8790. // height: 180,
  8791. // colorDark: "#000000",
  8792. // colorLight: "#ffffff",
  8793. // correctLevel: QRCode.CorrectLevel.H,
  8794. // });
  8795. // this.signaturedialogVisible = true;
  8796. // this.$api.letter.pingAnsignEleApply({companyId}).then((res) => {
  8797. // if (res.code == 200 && res.data) {
  8798. // // 查找并删除旧的二维码DOM元素
  8799. // let element = document.getElementById("signaturecode");
  8800. // while (element.firstChild) {
  8801. // element.removeChild(element.firstChild);
  8802. // }
  8803. // this.signaturecode = new QRCode("signaturecode", {
  8804. // text: res.data.resultMessage,
  8805. // width: 180,
  8806. // height: 180,
  8807. // colorDark: "#000000",
  8808. // colorLight: "#ffffff",
  8809. // correctLevel: QRCode.CorrectLevel.H,
  8810. // });
  8811. } else {
  8812. this.$message({
  8813. message: res.msg || "暂无数据!",
  8814. type: "warning"
  8815. });
  8816. }
  8817. });
  8818. },
  8819. jqcheckedChange(e) {
  8820. if (e) {
  8821. this.jqstartDate = this.transformTime1();
  8822. this.jqendDate = this.oneYearPast1(this.jqstartDate);
  8823. this.riskList.push({
  8824. riskCode: "0507"
  8825. });
  8826. // this.obtainProtocol();
  8827. } else {
  8828. this.jqstartDate = "";
  8829. this.jqendDate = "";
  8830. let list = this.riskList.filter(item => item.riskCode !== "0507");
  8831. this.riskList = list;
  8832. // this.obtainProtocol();
  8833. }
  8834. },
  8835. sycheckedChange(e) {
  8836. if (e) {
  8837. this.systartDate = this.transformTime1();
  8838. this.syendDate = this.oneYearPast1(this.systartDate);
  8839. this.riskList.push({
  8840. riskCode: "0510"
  8841. });
  8842. // this.obtainProtocol();
  8843. } else {
  8844. this.systartDate = "";
  8845. this.syendDate = "";
  8846. let list = this.riskList.filter(item => item.riskCode !== "0510");
  8847. this.riskList = list;
  8848. // this.obtainProtocol();
  8849. }
  8850. },
  8851. //订单生成后保存接口
  8852. preserveOrderStageProcessing(type, btnLoading) {
  8853. // console.log(this.editorInfo);
  8854. // debugger;
  8855. //同车主的选择框
  8856. this[btnLoading] = true;
  8857. if (this.tbczcarShow && this.imageList2.length > 0) {
  8858. //投保人同车主
  8859. this.imageList3 = JSON.parse(JSON.stringify(this.imageList2));
  8860. if (this.imageList3.length == 1) {
  8861. this.imageList3[0].imageType = this.imageList3[0].imageType.includes(
  8862. "C0"
  8863. )
  8864. ? "C03"
  8865. : "D03";
  8866. } else {
  8867. this.imageList3.forEach(e => {
  8868. e.imageType = e.imageType.includes("C0") ? "C03" : "D03";
  8869. });
  8870. }
  8871. }
  8872. if (this.bbczcarShow && this.imageList2.length > 0) {
  8873. //被保人同车主
  8874. this.imageList4 = JSON.parse(JSON.stringify(this.imageList2));
  8875. if (this.imageList4.length == 1) {
  8876. this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  8877. "C0"
  8878. )
  8879. ? "C04"
  8880. : "D04";
  8881. } else {
  8882. this.imageList4.forEach(e => {
  8883. e.imageType = e.imageType.includes("C0") ? "C04" : "D04";
  8884. });
  8885. }
  8886. }
  8887. if (this.bbtbcarShow && this.imageList3.length > 0) {
  8888. //被保人同投保人
  8889. this.imageList4 = JSON.parse(JSON.stringify(this.imageList3));
  8890. if (this.imageList4.length == 1) {
  8891. this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  8892. "C0"
  8893. )
  8894. ? "C04"
  8895. : "D04";
  8896. } else {
  8897. this.imageList4.forEach(e => {
  8898. e.imageType = e.imageType.includes("C0") ? "C04" : "D04";
  8899. });
  8900. }
  8901. }
  8902. //日期长度<10处理
  8903. const formatDate = date => {
  8904. if (date.length < 10) {
  8905. return this.timeformat(date);
  8906. }
  8907. return date;
  8908. };
  8909. if (this.carInfo.registerDate.length < 10) {
  8910. this.carInfo.registerDate = formatDate(this.carInfo.registerDate);
  8911. }
  8912. if (this.carInfo.issueDate.length < 10) {
  8913. this.carInfo.issueDate = formatDate(this.carInfo.issueDate);
  8914. }
  8915. if (
  8916. this.carInfo.transferDate &&
  8917. this.carInfo.transferDate.length < 10 &&
  8918. this.carInfo.transferDate !== ""
  8919. ) {
  8920. this.carInfo.transferDate = formatDate(this.carInfo.transferDate);
  8921. }
  8922. //日期长度<10处理
  8923. //提交身份证/驾驶证 ——————————————————
  8924. this.policyHolderInfo.owner = this.tbczcarShow;
  8925. this.insuredPersonInfo.owner = this.bbczcarShow;
  8926. this.insuredPersonInfo.insuranceHolder = this.bbtbcarShow;
  8927. if (typeof this.ownerInfo.provinceData == "string") {
  8928. this.ownerInfo.provinceData = [];
  8929. }
  8930. if (typeof this.insuredPersonInfo.provinceData == "string") {
  8931. this.insuredPersonInfo.provinceData = [];
  8932. }
  8933. if (typeof this.policyHolderInfo.provinceData == "string") {
  8934. this.policyHolderInfo.provinceData = [];
  8935. }
  8936. if (this.$route.query.data) {
  8937. const mergedArray = [
  8938. ...this.imageList1,
  8939. ...this.imageList2,
  8940. ...this.imageList3,
  8941. ...this.imageList4,
  8942. ...this.imageList5,
  8943. ...this.imageList6
  8944. ];
  8945. if (mergedArray.length > 0) {
  8946. let imageparam = {
  8947. imageList: mergedArray,
  8948. quoteNo: this.$route.query.data.quoteno
  8949. };
  8950. this.$api.letter.uploadImages(imageparam).then(responses => {
  8951. // this.$refs.imageDialog.imageEcho(this.$route.query.data.quoteno)
  8952. this.imageEcho(this.$route.query.data.quoteno); // 获取图片
  8953. });
  8954. }
  8955. this.editorInfo.applyinfo.owner = this.tbczcarShow;
  8956. this.editorInfo.insureinfo.owner = this.bbczcarShow;
  8957. this.editorInfo.insureinfo.insuranceHolder = this.bbtbcarShow;
  8958. let params = {
  8959. orderNo: this.$route.query.data.orderno,
  8960. ...this.policyNumberForm,
  8961. agreementId: this.isLetter3agreementId,
  8962. stageFlag: type,
  8963. jqstartdate: this.jqstartDate,
  8964. jqenddate: this.jqendDate,
  8965. systartdate: this.systartDate,
  8966. syenddate: this.syendDate,
  8967. kind: this.kindList,
  8968. risk: this.riskList,
  8969. kindList: this.kindList,
  8970. riskList: this.riskList,
  8971. carInfo: this.carInfo,
  8972. insuredPersonInfo: this.insuredPersonInfo,
  8973. ownerInfo: this.ownerInfo,
  8974. policyHolderInfo: this.policyHolderInfo,
  8975. isExternal: "1",
  8976. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  8977. };
  8978. // debugger;
  8979. this.$api.letter.updateExternalOrder(params).then(res => {
  8980. if (res.code == "200") {
  8981. this[btnLoading] = false;
  8982. this.$message({
  8983. message: res.msg || "编辑成功",
  8984. type: "success"
  8985. });
  8986. this.add();
  8987. } else {
  8988. this[btnLoading] = false;
  8989. this.$message.error(res.msg);
  8990. }
  8991. });
  8992. } else {
  8993. this.ownerInfo.owner = this.tbczcarShow;
  8994. this.insuredPersonInfo.owner = this.bbczcarShow;
  8995. this.insuredPersonInfo.insuranceHolder = this.bbtbcarShow;
  8996. let param = {
  8997. userId: this.userId,
  8998. quoteno: this.quoteno,
  8999. orderNo: this.orderno,
  9000. carInfo: this.carInfo,
  9001. insuredPersonInfo: this.insuredPersonInfo,
  9002. ownerInfo: this.ownerInfo,
  9003. policyHolderInfo: this.policyHolderInfo,
  9004. kindList: this.kindList,
  9005. riskList: this.riskList,
  9006. isExternal: "1",
  9007. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  9008. };
  9009. this.$api.letter.generateOrder(param).then(res => {
  9010. if (res.code == "200") {
  9011. //上传图片
  9012. const mergedArray = [
  9013. ...this.imageList1,
  9014. ...this.imageList2,
  9015. ...this.imageList3,
  9016. ...this.imageList4,
  9017. ...this.imageList5,
  9018. ...this.imageList6
  9019. ];
  9020. if (mergedArray.length > 0) {
  9021. let imageparam = {
  9022. imageList: mergedArray,
  9023. quoteNo: res.data.quoteno
  9024. };
  9025. this.$api.letter.uploadImages(imageparam).then(responses => {
  9026. this.imageEcho(res.data.quoteno); // 获取图片
  9027. // this.$refs.imageDialog.imageEcho(res.data.quoteno)
  9028. });
  9029. }
  9030. let params1 = {
  9031. orderNo: res.data.orderno,
  9032. ...this.policyNumberForm,
  9033. agreementId: this.isLetter3agreementId,
  9034. stageFlag: type,
  9035. nowCostsId: this.nowCostsId
  9036. };
  9037. // debugger
  9038. this.$api.letter.saveSubOrder(params1).then(res => {
  9039. if (res.code == "200") {
  9040. this[btnLoading] = false;
  9041. this.$message({
  9042. message: res.msg || "录入成功",
  9043. type: "success"
  9044. });
  9045. this.add();
  9046. } else {
  9047. this[btnLoading] = false;
  9048. this.$message.error(res.msg);
  9049. }
  9050. });
  9051. } else {
  9052. this[btnLoading] = false;
  9053. this.$message.error(res.msg);
  9054. }
  9055. });
  9056. }
  9057. // document.getElementById("company").scrollIntoView();
  9058. this.imageUploadShow = true;
  9059. },
  9060. policyHolderInfovalidate() {
  9061. let _this = this;
  9062. // tbczcarShow 同车主
  9063. if (_this.tbczcarShow == true) {
  9064. // 投保人信息 policyHolderInfo
  9065. _this.policyHolderInfo = { ..._this.ownerInfo };
  9066. } else {
  9067. _this.$refs["policyHolderInfo"].validate(valid2 => {
  9068. if (valid2) {
  9069. } else {
  9070. document.getElementById("toubaor").scrollIntoView();
  9071. _this.$message({ message: "请检查投保人信息", type: "warning" });
  9072. }
  9073. });
  9074. }
  9075. this.bbtbcarShowChange();
  9076. this.bbczcarShowChange();
  9077. },
  9078. validateCarCode() {
  9079. this.validateCarCodeShow = true;
  9080. if (this.myQrCode) {
  9081. this.myQrCode.clear();
  9082. }
  9083. this.$nextTick(() => {
  9084. this.myQrCode = new QrCode(this.$refs.myQrcode, {
  9085. // text 需要转二维码的内容 可以是文本也可以是一个链接 是链接会直接跳走
  9086. text: this.vehicleInspectionUrl,
  9087. width: 200,
  9088. height: 200,
  9089. colorDark: "#333", //二维码颜色
  9090. colorLight: "#fff", //二维码背景颜色
  9091. correctLevel: QrCode.CorrectLevel.L //容错率,L/M/H
  9092. });
  9093. });
  9094. },
  9095. //报价
  9096. quote(index) {
  9097. let starttime = new Date(this.carInfo.registerDate);
  9098. let endtime = new Date(this.carInfo.issueDate);
  9099. if (endtime < starttime) {
  9100. this.$message({ message: "发证日期早于初登日期", type: "error" });
  9101. return;
  9102. }
  9103. this.policyHolderInfovalidate();
  9104. this.$refs["carInfo"].validate(valid => {
  9105. if (valid) {
  9106. var _this = this;
  9107. // this.policyHolderInfovalidate()
  9108. if (_this.tbczcarShow == true) {
  9109. _this.policyHolderInfo = { ..._this.ownerInfo };
  9110. }
  9111. _this.$refs["ownerInfo"].validate(valid1 => {
  9112. if (valid1) {
  9113. if (_this.bbczcarShow == true) {
  9114. _this.insuredPersonInfo = { ..._this.ownerInfo };
  9115. }
  9116. if (_this.bbtbcarShow == true) {
  9117. _this.insuredPersonInfo = { ..._this.policyHolderInfo };
  9118. }
  9119. _this.carInfo.vinNo = _this.carInfo.frameNo;
  9120. _this.riskList = []; //险种大类
  9121. _this.kindList = []; //商业险险别
  9122. if (
  9123. (!_this.jqstartDate || !_this.jqendDate) &&
  9124. (!_this.systartDate || !_this.syendDate)
  9125. ) {
  9126. this.$message({ message: "投保日期不能为空", type: "warning" });
  9127. } else {
  9128. if (
  9129. this.totalCompanyList[index].isTaxSource != 1 &&
  9130. this.totalCompanyList[index].agreementId == ""
  9131. ) {
  9132. this.$message.warning("请选择协议");
  9133. return;
  9134. }
  9135. this.calculateLoading = true;
  9136. setInterval(() => {
  9137. this.calculateLoading = false;
  9138. }, 3000);
  9139. _this.totalCompanyList[index].kindList = [];
  9140. let kinds = [
  9141. ..._this.totalCompanyList[index].programme.kinds.main,
  9142. ..._this.totalCompanyList[index].programme.kinds.additional,
  9143. ..._this.totalCompanyList[index].programme.kinds.service
  9144. ];
  9145. kinds.forEach(value => {
  9146. _this.totalCompanyList[index].kindList.push({
  9147. amount: value.amount,
  9148. serviceTimes: value.amount,
  9149. unitAmount: value.amount,
  9150. kindCode: value.kindCode,
  9151. kindName: value.kindName
  9152. });
  9153. });
  9154. if (_this.jqchecked) {
  9155. //交强
  9156. _this.jqstartDate = this.transformTime(_this.jqstartDate);
  9157. _this.jqendDate = this.transformTime(_this.jqendDate);
  9158. _this.riskList.push({
  9159. amount: "200000",
  9160. premium: "0",
  9161. riskCode: "0507",
  9162. endDate: _this.jqendDate,
  9163. startDate: _this.jqstartDate,
  9164. instantFlag: "0"
  9165. });
  9166. }
  9167. if (_this.sychecked) {
  9168. _this.systartDate = this.transformTime(_this.systartDate);
  9169. _this.syendDate = this.transformTime(_this.syendDate);
  9170. //商业
  9171. _this.riskList.push({
  9172. premium: "0",
  9173. riskCode: "0510",
  9174. quotePreceptCode: "",
  9175. quotePreceptName: "",
  9176. endDate: _this.syendDate,
  9177. startDate: _this.systartDate,
  9178. instantFlag: "0"
  9179. });
  9180. // _this.totalCompanyList.forEach((val) => {
  9181. // if (val.checked) {
  9182. // console.log(val.programme, 'programmeeeeeeee')
  9183. // let kinds = [...val.programme.kinds.additional, ...val.programme.kinds.main, ...val.programme.kinds.service]
  9184. // kinds.forEach((value) => {
  9185. // _this.kindList.push({
  9186. // amount: value.amount,
  9187. // kindCode: value.kindCode,
  9188. // kindName: value.kindName
  9189. // })
  9190. // })
  9191. // }
  9192. // })
  9193. _this.insureList.map((ele, index) => {
  9194. // if (
  9195. // ele.amount != "0" &&
  9196. // (ele.kindCode == "D4" || ele.kindCode == "SY_FJ_YBW2")
  9197. // ) {
  9198. // _this.kindList.push({
  9199. // unitAmount: _this.insureList[index].amount,
  9200. // kindCode: _this.insureList[index].kindCode,
  9201. // kindName: _this.insureList[index].kindName,
  9202. // });
  9203. // } else if (
  9204. // ele.amount != "0" &&
  9205. // (ele.kindCode == "MJ1" ||
  9206. // ele.kindCode == "MJ2" ||
  9207. // ele.kindCode == "MJ3" ||
  9208. // ele.kindCode == "MJ4")
  9209. // ) {
  9210. // _this.kindList.push({
  9211. // deductibleRate: _this.insureList[index].amount,
  9212. // kindCode: _this.insureList[index].kindCode,
  9213. // kindName: _this.insureList[index].kindName,
  9214. // });
  9215. // } else if (
  9216. // ele.amount != "0" &&
  9217. // (ele.kindCode == "TY1" ||
  9218. // ele.kindCode == "TY2" ||
  9219. // ele.kindCode == "TY3" ||
  9220. // ele.kindCode == "TY4")
  9221. // ) {
  9222. // _this.kindList.push({
  9223. // serviceTimes: _this.insureList[index].amount,
  9224. // kindCode: _this.insureList[index].kindCode,
  9225. // kindName: _this.insureList[index].kindName,
  9226. // });
  9227. // } else if (ele.amount != "0") {
  9228. // _this.kindList.push({
  9229. // amount: _this.insureList[index].amount,
  9230. // kindCode: _this.insureList[index].kindCode,
  9231. // kindName: _this.insureList[index].kindName,
  9232. // });
  9233. // }
  9234. return ele;
  9235. });
  9236. } else {
  9237. _this.kindList = [];
  9238. }
  9239. // if (_this.orderno) {
  9240. this.OrderStageProcessing(index);
  9241. // } else {
  9242. // _this.$api.letter.getquote().then(res => {
  9243. // _this.quoteno = res.data; //获取报价号
  9244. // this.OrderStageProcessing();
  9245. // });
  9246. // }
  9247. }
  9248. } else {
  9249. document.getElementById("CheZhu").scrollIntoView();
  9250. _this.$message({ message: "请检查人员信息", type: "warning" });
  9251. }
  9252. });
  9253. } else {
  9254. document.getElementById("Car").scrollIntoView();
  9255. this.$message({ message: "请检查车辆信息", type: "warning" });
  9256. return false;
  9257. }
  9258. });
  9259. },
  9260. quote1() {
  9261. let starttime = new Date(this.carInfo.registerDate);
  9262. let endtime = new Date(this.carInfo.issueDate);
  9263. if (endtime < starttime) {
  9264. this.$message({ message: "发证日期早于初登日期", type: "error" });
  9265. return;
  9266. }
  9267. if (
  9268. this.carInfo.licenseNo.length === 8 &&
  9269. this.carInfo.energyType === "0"
  9270. ) {
  9271. this.$message.error("能源类型错误,请重新选择!");
  9272. return;
  9273. }
  9274. this.policyHolderInfovalidate();
  9275. var _this = this;
  9276. this.$refs["carInfo"].validate(valid => {
  9277. if (valid) {
  9278. // this.policyHolderInfovalidate()
  9279. if (_this.tbczcarShow == true) {
  9280. _this.policyHolderInfo = { ..._this.ownerInfo };
  9281. }
  9282. _this.$refs["ownerInfo"].validate(valid1 => {
  9283. if (valid1) {
  9284. if (_this.bbczcarShow == true) {
  9285. _this.insuredPersonInfo = { ..._this.ownerInfo };
  9286. }
  9287. if (_this.bbtbcarShow == true) {
  9288. _this.insuredPersonInfo = { ..._this.policyHolderInfo };
  9289. }
  9290. _this.carInfo.vinNo = _this.carInfo.frameNo;
  9291. _this.riskList = []; //险种大类
  9292. _this.kindList = []; //商业险险别
  9293. if (
  9294. (!_this.jqstartDate || !_this.jqendDate) &&
  9295. (!_this.systartDate || !_this.syendDate)
  9296. ) {
  9297. this.$message({ message: "投保日期不能为空", type: "warning" });
  9298. } else {
  9299. this.calculateLoading = true;
  9300. setInterval(() => {
  9301. this.calculateLoading = false;
  9302. }, 3000);
  9303. try {
  9304. this.totalCompanyList.forEach((val, index) => {
  9305. if (val.checked) {
  9306. val.kindList = [];
  9307. if (!val.programme) {
  9308. // throw Error("没有方案")
  9309. return;
  9310. }
  9311. let kinds = [
  9312. ...val.programme.kinds.main,
  9313. ...val.programme.kinds.additional,
  9314. ...val.programme.kinds.service
  9315. ];
  9316. kinds.forEach(value => {
  9317. this.totalCompanyList[index].kindList.push({
  9318. amount: value.amount,
  9319. serviceTimes: value.amount,
  9320. unitAmount: value.amount,
  9321. kindCode: value.kindCode,
  9322. kindName: value.kindName
  9323. });
  9324. });
  9325. if (val.isTaxSource != 1 && val.agreementId == "") {
  9326. this.$message.warning("请选择协议");
  9327. throw Error("请选择协议");
  9328. }
  9329. }
  9330. });
  9331. } catch (error) {
  9332. return console.log(error);
  9333. }
  9334. if (_this.jqchecked) {
  9335. //交强
  9336. _this.jqstartDate = this.transformTime(_this.jqstartDate);
  9337. _this.jqendDate = this.transformTime(_this.jqendDate);
  9338. _this.riskList.push({
  9339. amount: "200000",
  9340. premium: "0",
  9341. riskCode: "0507",
  9342. endDate: _this.jqendDate,
  9343. startDate: _this.jqstartDate,
  9344. instantFlag: "0"
  9345. });
  9346. }
  9347. if (_this.sychecked) {
  9348. _this.systartDate = this.transformTime(_this.systartDate);
  9349. _this.syendDate = this.transformTime(_this.syendDate);
  9350. //商业
  9351. _this.riskList.push({
  9352. premium: "0",
  9353. riskCode: "0510",
  9354. quotePreceptCode: "",
  9355. quotePreceptName: "",
  9356. endDate: _this.syendDate,
  9357. startDate: _this.systartDate,
  9358. instantFlag: "0"
  9359. });
  9360. } else {
  9361. _this.kindList = [];
  9362. }
  9363. // if (_this.orderno) {
  9364. this.OrderStageProcessing();
  9365. // } else {
  9366. // _this.$api.letter.getquote().then(res => {
  9367. // _this.quoteno = res.data; //获取报价号
  9368. // this.OrderStageProcessing();
  9369. // });
  9370. // }
  9371. }
  9372. } else {
  9373. document.getElementById("CheZhu").scrollIntoView();
  9374. _this.$message({ message: "请检查人员信息", type: "warning" });
  9375. }
  9376. });
  9377. } else {
  9378. document.getElementById("Car").scrollIntoView();
  9379. this.$message({ message: "请检查车辆信息", type: "warning" });
  9380. return false;
  9381. }
  9382. });
  9383. },
  9384. kindListFun(index) {
  9385. var _this = this;
  9386. _this.riskList = []; //险种大类
  9387. _this.kindList = []; //商业险险别
  9388. if (
  9389. (!_this.jqstartDate || !_this.jqendDate) &&
  9390. (!_this.systartDate || !_this.syendDate)
  9391. ) {
  9392. this.$message({ message: "投保日期不能为空", type: "warning" });
  9393. } else {
  9394. if (_this.jqchecked) {
  9395. //交强
  9396. _this.jqstartDate = this.transformTime(_this.jqstartDate);
  9397. _this.jqendDate = this.transformTime(_this.jqendDate);
  9398. _this.riskList.push({
  9399. amount: "200000",
  9400. premium: "0",
  9401. riskCode: "0507",
  9402. endDate: _this.jqendDate,
  9403. startDate: _this.jqstartDate,
  9404. instantFlag: "0"
  9405. });
  9406. }
  9407. if (_this.sychecked) {
  9408. _this.systartDate = this.transformTime(_this.systartDate);
  9409. _this.syendDate = this.transformTime(_this.syendDate);
  9410. //商业
  9411. _this.riskList.push({
  9412. premium: "0",
  9413. riskCode: "0510",
  9414. quotePreceptCode: "",
  9415. quotePreceptName: "",
  9416. endDate: _this.syendDate,
  9417. startDate: _this.systartDate,
  9418. instantFlag: "0"
  9419. });
  9420. // _this.insureList.map((ele, index) => {
  9421. // if (
  9422. // ele.amount != "0" &&
  9423. // (ele.kindCode == "D4" || ele.kindCode == "SY_FJ_YBW2")
  9424. // ) {
  9425. // _this.kindList.push({
  9426. // unitAmount: _this.insureList[index].amount,
  9427. // kindCode: _this.insureList[index].kindCode,
  9428. // kindName: _this.insureList[index].kindName,
  9429. // });
  9430. // } else if (
  9431. // ele.amount != "0" &&
  9432. // (ele.kindCode == "MJ1" ||
  9433. // ele.kindCode == "MJ2" ||
  9434. // ele.kindCode == "MJ3" ||
  9435. // ele.kindCode == "MJ4")
  9436. // ) {
  9437. // _this.kindList.push({
  9438. // deductibleRate: _this.insureList[index].amount,
  9439. // kindCode: _this.insureList[index].kindCode,
  9440. // kindName: _this.insureList[index].kindName,
  9441. // });
  9442. // } else if (
  9443. // ele.amount != "0" &&
  9444. // (ele.kindCode == "TY1" ||
  9445. // ele.kindCode == "TY2" ||
  9446. // ele.kindCode == "TY3" ||
  9447. // ele.kindCode == "TY4")
  9448. // ) {
  9449. // _this.kindList.push({
  9450. // serviceTimes: _this.insureList[index].amount,
  9451. // kindCode: _this.insureList[index].kindCode,
  9452. // kindName: _this.insureList[index].kindName,
  9453. // });
  9454. // } else if (ele.amount != "0") {
  9455. // _this.kindList.push({
  9456. // amount: _this.insureList[index].amount,
  9457. // kindCode: _this.insureList[index].kindCode,
  9458. // kindName: _this.insureList[index].kindName,
  9459. // });
  9460. // }
  9461. // return ele;
  9462. // });
  9463. } else {
  9464. _this.kindList = [];
  9465. }
  9466. }
  9467. },
  9468. //动态函数
  9469. ToolClickFun(MethodName, Parameter, companyId, companyName, index) {
  9470. this[`${MethodName}`](Parameter, companyId, companyName, index);
  9471. },
  9472. //更新报价历史
  9473. QuotationHistory() {
  9474. let params = {
  9475. orderNo: this.orderno,
  9476. orderStatus: ""
  9477. };
  9478. this.$api.letter.queryQuoteHistory(params).then(res => {
  9479. res.data.forEach(item => {
  9480. if (item.accidentInfo) {
  9481. item.accidentInfo.constructor === Object
  9482. ? [item.accidentInfo]
  9483. : item.accidentInfo;
  9484. }
  9485. });
  9486. this.HistoryList = res.data;
  9487. });
  9488. },
  9489. open2(Name, Msg) {
  9490. this.$notify.info({
  9491. title: Name,
  9492. dangerouslyUseHTMLString: true,
  9493. type: "warning",
  9494. message: Msg,
  9495. customClass: "customNotifyClass",
  9496. duration: 7000
  9497. });
  9498. },
  9499. open3(Name, Msg) {
  9500. this.$notify.info({
  9501. title: Name,
  9502. dangerouslyUseHTMLString: true,
  9503. type: "warning",
  9504. message: `<p>${Msg.replace(/\n/g, "<br>")}</p>`,
  9505. customClass: "customNotifyClass",
  9506. duration: 7000
  9507. });
  9508. },
  9509. openPredictInfo(Name, Msg) {
  9510. this.redictInfoMsg = Msg;
  9511. this.redictInfodialogVisible = true;
  9512. },
  9513. //订单生成前数据处理事件
  9514. OrderStageProcessing(index) {
  9515. if (this.tbczcarShow && this.imageList2.length > 0) {
  9516. //投保人同车主
  9517. this.imageList3 = JSON.parse(JSON.stringify(this.imageList2));
  9518. if (this.imageList3.length == 1) {
  9519. if (this.imageList3[0].imageType.includes("C0")) {
  9520. this.imageList3[0].imageType = this.imageList3[0].imageType.includes(
  9521. "C0"
  9522. )
  9523. ? "C03"
  9524. : "D03";
  9525. }
  9526. if (this.imageList3[0].imageType.includes("Y0")) {
  9527. this.imageList3[0].imageType = this.imageList3[0].imageType.includes(
  9528. "Y0"
  9529. )
  9530. ? "Y03"
  9531. : "";
  9532. }
  9533. } else {
  9534. this.imageList3.forEach(e => {
  9535. e.imageType = e.imageType.includes("C0") ? "C03" : "D03";
  9536. });
  9537. }
  9538. }
  9539. if (this.bbczcarShow && this.imageList2.length > 0) {
  9540. //被保人同车主
  9541. this.imageList4 = JSON.parse(JSON.stringify(this.imageList2));
  9542. if (this.imageList4.length == 1) {
  9543. // this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  9544. // "C0"
  9545. // )
  9546. // ? "C04"
  9547. // : "D04";
  9548. if (this.imageList4[0].imageType.includes("C0")) {
  9549. this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  9550. "C0"
  9551. )
  9552. ? "C04"
  9553. : "D04";
  9554. }
  9555. if (this.imageList4[0].imageType.includes("Y0")) {
  9556. this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  9557. "Y0"
  9558. )
  9559. ? "Y04"
  9560. : "";
  9561. }
  9562. } else {
  9563. this.imageList4.forEach(e => {
  9564. e.imageType = e.imageType.includes("C0") ? "C04" : "D04";
  9565. });
  9566. }
  9567. // if (this.imageList4.length == 1) {
  9568. // this.imageList4[0].imageType = "C04";
  9569. // }
  9570. // else {
  9571. // this.imageList4[0].imageType = "C04";
  9572. // this.imageList4[1].imageType = "D04";
  9573. // }
  9574. }
  9575. if (this.bbtbcarShow && this.imageList3.length > 0) {
  9576. //被保人同投保人
  9577. this.imageList4 = JSON.parse(JSON.stringify(this.imageList3));
  9578. if (this.imageList4.length == 1) {
  9579. // this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  9580. // "C0"
  9581. // )
  9582. // ? "C04"
  9583. // : "D04";
  9584. if (this.imageList4[0].imageType.includes("C0")) {
  9585. this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  9586. "C0"
  9587. )
  9588. ? "C04"
  9589. : "D04";
  9590. }
  9591. if (this.imageList4[0].imageType.includes("Y0")) {
  9592. this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  9593. "Y0"
  9594. )
  9595. ? "Y04"
  9596. : "";
  9597. }
  9598. } else {
  9599. this.imageList4.forEach(e => {
  9600. e.imageType = e.imageType.includes("C0") ? "C04" : "D04";
  9601. });
  9602. }
  9603. // if (this.imageList4.length == 1) {
  9604. // this.imageList4[0].imageType = "C04";
  9605. // } else {
  9606. // this.imageList4[0].imageType = "C04";
  9607. // this.imageList4[1].imageType = "D04";
  9608. // }
  9609. }
  9610. //日期长度<10处理
  9611. const formatDate = date => {
  9612. if (date.length < 10) {
  9613. return this.timeformat(date);
  9614. }
  9615. return date;
  9616. };
  9617. if (this.carInfo.registerDate.length < 10) {
  9618. this.carInfo.registerDate = formatDate(this.carInfo.registerDate);
  9619. }
  9620. if (this.carInfo.issueDate.length < 10) {
  9621. this.carInfo.issueDate = formatDate(this.carInfo.issueDate);
  9622. }
  9623. if (
  9624. this.carInfo.transferDate &&
  9625. this.carInfo.transferDate.length < 10 &&
  9626. this.carInfo.transferDate !== ""
  9627. ) {
  9628. this.carInfo.transferDate = formatDate(this.carInfo.transferDate);
  9629. }
  9630. //日期长度<10处理
  9631. //提交身份证/驾驶证 ——————————————————
  9632. this.policyHolderInfo.owner = this.tbczcarShow;
  9633. this.insuredPersonInfo.owner = this.bbczcarShow;
  9634. this.insuredPersonInfo.insuranceHolder = this.bbtbcarShow;
  9635. if (typeof this.ownerInfo.provinceData == "string") {
  9636. this.ownerInfo.provinceData = [];
  9637. }
  9638. if (typeof this.insuredPersonInfo.provinceData == "string") {
  9639. this.insuredPersonInfo.provinceData = [];
  9640. }
  9641. if (typeof this.policyHolderInfo.provinceData == "string") {
  9642. this.policyHolderInfo.provinceData = [];
  9643. }
  9644. let param = {
  9645. userId: this.userId,
  9646. quoteno: this.quoteno,
  9647. orderNo: this.orderno,
  9648. carInfo: this.carInfo,
  9649. insuredPersonInfo: this.insuredPersonInfo,
  9650. ownerInfo: this.ownerInfo,
  9651. policyHolderInfo: this.policyHolderInfo,
  9652. riskList: this.riskList,
  9653. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  9654. productId: this.productId
  9655. };
  9656. this.$api.letter[this.apiInterfaceName](param).then(res => {
  9657. if (res.code == "200") {
  9658. //上传图片
  9659. const mergedArray = [
  9660. ...this.imageList1,
  9661. ...this.imageList2,
  9662. ...this.imageList3,
  9663. ...this.imageList4,
  9664. ...this.imageList5,
  9665. ...this.imageList6
  9666. ];
  9667. if (mergedArray.length > 0) {
  9668. let imageparam = {
  9669. imageList: mergedArray,
  9670. quoteNo: res.data.quoteno
  9671. };
  9672. this.$api.letter.uploadImages(imageparam).then(responses => {
  9673. this.imageEcho(res.data.quoteno); // 获取图片
  9674. // this.$refs.imageDialog.imageEcho(res.data.quoteno)
  9675. });
  9676. }
  9677. this.quoteno = res.data.quoteno;
  9678. this.orderno = res.data.orderno;
  9679. if (index >= 0) {
  9680. this.totalCompanyList[index].quoteCode = 1;
  9681. this.ToolClickFun(
  9682. this.totalCompanyList[index].cnName,
  9683. index,
  9684. this.totalCompanyList[index].id,
  9685. this.totalCompanyList[index].namesimple
  9686. );
  9687. } else {
  9688. this.totalCompanyList.map((ele, index) => {
  9689. if (ele.checked) {
  9690. //动态调用报价接口
  9691. if (ele.programme) {
  9692. ele.quoteCode = 1;
  9693. ele.orderstatus = 0;
  9694. this.ToolClickFun(ele.cnName, index, ele.id, ele.namesimple);
  9695. }
  9696. }
  9697. });
  9698. }
  9699. } else if (res.code == 1001) {
  9700. this.$confirm("是否生成新订单?", "提示", {
  9701. confirmButtonText: "确定",
  9702. cancelButtonText: "取消",
  9703. type: "warning"
  9704. })
  9705. .then(() => {
  9706. this.orderno = "";
  9707. this.quoteno = "";
  9708. this.quote(index);
  9709. })
  9710. .catch(() => { });
  9711. } else {
  9712. this.$message({ message: res.msg, type: "warning" });
  9713. }
  9714. });
  9715. // document.getElementById("company").scrollIntoView();
  9716. this.imageUploadShow = true;
  9717. },
  9718. // 泰康报价--11
  9719. taikang(num, id, namesimple) {
  9720. this.quoteInsurance(
  9721. num,
  9722. id,
  9723. namesimple,
  9724. this.totalCompanyList[num].apiType
  9725. );
  9726. },
  9727. // 平安报价
  9728. pingan(num, id) {
  9729. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  9730. let accidentalDrivingVo = [];
  9731. if (this.pinganaccidentalDrivingVo) {
  9732. accidentalDrivingVo = this.pinganaccidentalDrivingVo;
  9733. // accidentalDrivingVo = Object.assign({
  9734. // ...this.pinganaccidentalDrivingVo,
  9735. // ...this.accidentFormPA,
  9736. // });
  9737. }
  9738. let params = {
  9739. accidentalDrivingVo,
  9740. orderNo: this.orderno,
  9741. companyId: id,
  9742. agreementId: this.totalCompanyList[num].agreementId,
  9743. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  9744. kinds: this.totalCompanyList[num].kindList,
  9745. risks: this.riskList,
  9746. productId: this.productId
  9747. };
  9748. this.$api.letter.pinganquote(params).then(res => {
  9749. this.totalCompanyList[num].msg = res.msg;
  9750. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  9751. this.totalCompanyList[num].quoteCode = "4";
  9752. this.totalCompanyList[num].msg = res.msg;
  9753. return;
  9754. } else if (
  9755. res.data == null &&
  9756. res.msg.indexOf("交强险平台返回") > -1 &&
  9757. res.msg.indexOf(";终保日期") > -1
  9758. ) {
  9759. this.totalCompanyList[num].lastYearMsg =
  9760. "<b>交强险</b><br>" +
  9761. res.msg.slice(
  9762. res.msg.indexOf("起保日期 "),
  9763. res.msg.indexOf("地区 山西。") + 6
  9764. );
  9765. let time =
  9766. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  9767. this.jqstartDate = time;
  9768. this.jqendDate = this.oneYearPast1(time);
  9769. if (this.riskList.length > 0) {
  9770. for (let i = 0; i < this.riskList.length; i++) {
  9771. if (this.riskList[i].riskCode == "0507") {
  9772. this.riskList[i].startDate = time;
  9773. this.riskList[i].endDate = this.oneYearPast1(time);
  9774. }
  9775. }
  9776. }
  9777. let param = {
  9778. userId: this.userId,
  9779. quoteno: this.quoteno,
  9780. orderNo: this.orderno,
  9781. carInfo: this.carInfo,
  9782. insuredPersonInfo: this.insuredPersonInfo,
  9783. ownerInfo: this.ownerInfo,
  9784. policyHolderInfo: this.policyHolderInfo,
  9785. kindList: this.kindList,
  9786. riskList: this.riskList,
  9787. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  9788. };
  9789. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  9790. this.pingan(num, id);
  9791. });
  9792. } else if (!!res.data) {
  9793. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  9794. this.totalCompanyList[num].lastYearMsg = "";
  9795. let dat = res.data.warnMessageList;
  9796. dat.map(ele => {
  9797. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  9798. });
  9799. }
  9800. this.totalCompanyList[num].quoteCode = 200;
  9801. this.totalCompanyList[num].result = res.data;
  9802. this.jqstartDate = res.data.startDateJq;
  9803. this.jqendDate = res.data.endDateJq;
  9804. this.systartDate = res.data.startDateSy;
  9805. this.syendDate = res.data.endDateSy;
  9806. this.QuotationHistory();
  9807. } else {
  9808. this.totalCompanyList[num].quoteCode = "3";
  9809. this.totalCompanyList[num].msg = res.msg;
  9810. return;
  9811. }
  9812. });
  9813. },
  9814. //永安报价
  9815. yongan(num, id) {
  9816. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  9817. let params = {
  9818. orderNo: this.orderno,
  9819. companyId: id,
  9820. agreementId: this.totalCompanyList[num].agreementId,
  9821. kindList: this.totalCompanyList[num].kindList,
  9822. riskList: this.riskList,
  9823. productId: this.productId
  9824. };
  9825. this.$api.letter.yonganquote(params).then(res => {
  9826. this.totalCompanyList[num].msg = res.msg;
  9827. if (res.msg == "重复投保" && res.code == "501") {
  9828. if (!!res.data.jqStartDate && !res.data.syStartDate) {
  9829. this.jqstartDate = res.data.jqStartDate;
  9830. this.jqendDate = res.data.jqEndDate;
  9831. this.updateRiskDates(
  9832. "0507",
  9833. res.data.jqStartDate,
  9834. res.data.jqEndDate
  9835. );
  9836. let param = {
  9837. userId: this.userId,
  9838. quoteno: this.quoteno,
  9839. orderNo: this.orderno,
  9840. carInfo: this.carInfo,
  9841. insuredPersonInfo: this.insuredPersonInfo,
  9842. ownerInfo: this.ownerInfo,
  9843. policyHolderInfo: this.policyHolderInfo,
  9844. kindList: this.kindList,
  9845. riskList: this.riskList,
  9846. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  9847. isTaxSource: isTaxSource == 1 ? isTaxSource : null
  9848. };
  9849. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  9850. this.yongan(num, id);
  9851. });
  9852. } else if (!!res.data.syStartDate && !res.data.jqStartDate) {
  9853. this.systartDate = res.data.syStartDate;
  9854. this.syendDate = res.data.syEndDate;
  9855. this.updateRiskDates(
  9856. "0510",
  9857. res.data.syStartDate,
  9858. res.data.syEndDate
  9859. );
  9860. let param = {
  9861. userId: this.userId,
  9862. quoteno: this.quoteno,
  9863. orderNo: this.orderno,
  9864. carInfo: this.carInfo,
  9865. insuredPersonInfo: this.insuredPersonInfo,
  9866. ownerInfo: this.ownerInfo,
  9867. policyHolderInfo: this.policyHolderInfo,
  9868. kindList: this.kindList,
  9869. riskList: this.riskList,
  9870. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  9871. };
  9872. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  9873. this.yongan(num, id);
  9874. });
  9875. } else if (!!res.data.syStartDate && !!res.data.jqStartDate) {
  9876. this.jqstartDate = res.data.jqStartDate;
  9877. this.jqendDate = res.data.jqEndDate;
  9878. this.systartDate = res.data.syStartDate;
  9879. this.syendDate = res.data.syEndDate;
  9880. this.updateRiskDates(
  9881. "0507",
  9882. res.data.jqStartDate,
  9883. res.data.jqEndDate
  9884. );
  9885. this.updateRiskDates(
  9886. "0510",
  9887. res.data.syStartDate,
  9888. res.data.syEndDate
  9889. );
  9890. let param = {
  9891. userId: this.userId,
  9892. quoteno: this.quoteno,
  9893. orderNo: this.orderno,
  9894. carInfo: this.carInfo,
  9895. insuredPersonInfo: this.insuredPersonInfo,
  9896. ownerInfo: this.ownerInfo,
  9897. policyHolderInfo: this.policyHolderInfo,
  9898. kindList: this.kindList,
  9899. riskList: this.riskList,
  9900. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  9901. };
  9902. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  9903. this.yongan(num, id);
  9904. });
  9905. } else {
  9906. this.totalCompanyList[num].quoteCode = "3";
  9907. this.totalCompanyList[num].msg = "重复投保";
  9908. }
  9909. } else if (
  9910. res.code == "500" ||
  9911. res.code == "502" ||
  9912. res.code == "-9999"
  9913. ) {
  9914. this.totalCompanyList[num].quoteCode = "-9999";
  9915. this.totalCompanyList[num].msg = res.msg;
  9916. } else {
  9917. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  9918. this.totalCompanyList[num].lastYearMsg = "";
  9919. let dat = res.data.warnMessageList;
  9920. dat.map(ele => {
  9921. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  9922. });
  9923. }
  9924. this.totalCompanyList[num].quoteCode = 200;
  9925. this.totalCompanyList[num].result = res.data;
  9926. this.jqstartDate = res.data.startDateJq;
  9927. this.jqendDate = res.data.endDateJq;
  9928. this.systartDate = res.data.startDateSy;
  9929. this.syendDate = res.data.endDateSy;
  9930. this.QuotationHistory();
  9931. }
  9932. });
  9933. },
  9934. updateRiskDates(riskCode, startDate, endDate) {
  9935. for (let i = 0; i < this.riskList.length; i++) {
  9936. if (this.riskList[i].riskCode == riskCode) {
  9937. this.riskList[i].startDate = startDate;
  9938. this.riskList[i].endDate = endDate;
  9939. }
  9940. }
  9941. },
  9942. //中煤报价
  9943. zhongmei(num, id) {
  9944. let accidentalDrivingVo = {};
  9945. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  9946. let type = this.totalCompanyList[num].apiType;
  9947. let api = type == 2 ? "pythonquote" : "zhongmeiquote";
  9948. // if (this.accidentFormZM.projectCode) {
  9949. // accidentalDrivingVo = {
  9950. // projectCode: this.accidentFormZM.projectCode,
  9951. // projectName: this.accidentFormZM.projectName,
  9952. // quantity: this.accidentFormZM.quantity
  9953. // ? this.accidentFormZM.quantity
  9954. // : "1"
  9955. // };
  9956. // }
  9957. if (this.accidentFormZM.projectCode) {
  9958. accidentalDrivingVo = {
  9959. ...this.zhongmeiInsuranceData.find(
  9960. e => e.projectCode == this.accidentFormZM.projectCode
  9961. ),
  9962. quantity: this.accidentFormZM.quantity
  9963. ? this.accidentFormZM.quantity
  9964. : "1"
  9965. };
  9966. }
  9967. accidentalDrivingVo =
  9968. this.totalCompanyList[num].programme.drivingList[0] || {};
  9969. let params = {
  9970. accidentalDrivingVo,
  9971. orderNo: this.orderno,
  9972. companyId: id,
  9973. agreementId: this.totalCompanyList[num].agreementId,
  9974. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  9975. kinds: this.totalCompanyList[num].kindList,
  9976. risks: this.riskList,
  9977. productId: this.productId
  9978. };
  9979. this.$api.letter.zhongmeiquote(params).then(res => {
  9980. // this.$api.letter[api](params).then((res) => {
  9981. this.totalCompanyList[num].msg = res.msg;
  9982. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  9983. this.totalCompanyList[num].quoteCode = "4";
  9984. this.totalCompanyList[num].msg = res.msg;
  9985. return;
  9986. } else if (
  9987. res.data == null &&
  9988. res.msg.indexOf("交强险平台返回") > -1 &&
  9989. res.msg.indexOf(";终保日期") > -1
  9990. ) {
  9991. this.totalCompanyList[num].lastYearMsg =
  9992. "<b>交强险</b><br>" +
  9993. res.msg.slice(
  9994. res.msg.indexOf("起保日期 "),
  9995. res.msg.indexOf("地区 山西。") + 6
  9996. );
  9997. let time =
  9998. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  9999. this.jqstartDate = time;
  10000. this.jqendDate = this.oneYearPast1(time);
  10001. if (this.riskList.length > 0) {
  10002. for (let i = 0; i < this.riskList.length; i++) {
  10003. if (this.riskList[i].riskCode == "0507") {
  10004. this.riskList[i].startDate = time;
  10005. this.riskList[i].endDate = this.oneYearPast1(time);
  10006. }
  10007. }
  10008. }
  10009. let param = {
  10010. userId: this.userId,
  10011. quoteno: this.quoteno,
  10012. orderNo: this.orderno,
  10013. carInfo: this.carInfo,
  10014. insuredPersonInfo: this.insuredPersonInfo,
  10015. ownerInfo: this.ownerInfo,
  10016. policyHolderInfo: this.policyHolderInfo,
  10017. kindList: this.kindList,
  10018. riskList: this.riskList,
  10019. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  10020. };
  10021. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  10022. this.zhongmei(num, id);
  10023. });
  10024. } else if (!!res.data) {
  10025. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  10026. this.totalCompanyList[num].lastYearMsg = "";
  10027. let dat = res.data.warnMessageList;
  10028. dat.map(ele => {
  10029. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  10030. });
  10031. }
  10032. this.totalCompanyList[num].quoteCode = 200;
  10033. this.totalCompanyList[num].result = res.data;
  10034. this.jqstartDate = res.data.startDateJq;
  10035. this.jqendDate = res.data.endDateJq;
  10036. this.systartDate = res.data.startDateSy;
  10037. this.syendDate = res.data.endDateSy;
  10038. this.QuotationHistory();
  10039. } else {
  10040. this.totalCompanyList[num].quoteCode = "3";
  10041. this.totalCompanyList[num].msg = res.msg;
  10042. return;
  10043. }
  10044. });
  10045. },
  10046. // 大家报价
  10047. dajia(num, id) {
  10048. // let accidentalDrivingVo=[]
  10049. // if(this.dajiaaccidentalDrivingVo){
  10050. // accidentalDrivingVo.rideRiskCode=this.dajiaaccidentalDrivingVo.schemeNo;
  10051. // accidentalDrivingVo.rideRiskName=this.dajiaaccidentalDrivingVo.cvrgName;
  10052. // accidentalDrivingVo.quantity=this.dajiaaccidentalDrivingVo.quantity;
  10053. // }
  10054. let type = this.totalCompanyList[num].apiType;
  10055. let api = type == 2 ? "pythonquote" : "dajiaquote";
  10056. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  10057. let accidentalDrivingVo =
  10058. this.totalCompanyList[num].programme.drivingList[0] || {};
  10059. let params = {
  10060. accidentalDrivingVo: accidentalDrivingVo,
  10061. orderNo: this.orderno,
  10062. companyId: id,
  10063. agreementId: this.totalCompanyList[num].agreementId,
  10064. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  10065. kinds: this.totalCompanyList[num].kindList || [],
  10066. risks: this.riskList || []
  10067. };
  10068. this.$api.letter[api](params).then(res => {
  10069. this.totalCompanyList[num].msg = res.msg;
  10070. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  10071. this.totalCompanyList[num].quoteCode = "4";
  10072. this.totalCompanyList[num].msg = res.msg;
  10073. return;
  10074. } else if (
  10075. res.data == null &&
  10076. res.msg.indexOf("交强险平台返回") > -1 &&
  10077. res.msg.indexOf(";终保日期") > -1
  10078. ) {
  10079. this.totalCompanyList[num].lastYearMsg =
  10080. "<b>交强险</b><br>" +
  10081. res.msg.slice(
  10082. res.msg.indexOf("起保日期 "),
  10083. res.msg.indexOf("地区 山西。") + 6
  10084. );
  10085. let time =
  10086. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  10087. this.jqstartDate = time;
  10088. this.jqendDate = this.oneYearPast1(time);
  10089. if (this.riskList.length > 0) {
  10090. for (let i = 0; i < this.riskList.length; i++) {
  10091. if (this.riskList[i].riskCode == "0507") {
  10092. this.riskList[i].startDate = time;
  10093. this.riskList[i].endDate = this.oneYearPast1(time);
  10094. }
  10095. }
  10096. }
  10097. let param = {
  10098. userId: this.userId,
  10099. quoteno: this.quoteno,
  10100. orderNo: this.orderno,
  10101. carInfo: this.carInfo,
  10102. insuredPersonInfo: this.insuredPersonInfo,
  10103. ownerInfo: this.ownerInfo,
  10104. policyHolderInfo: this.policyHolderInfo,
  10105. kindList: this.kindList,
  10106. riskList: this.riskList,
  10107. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  10108. kinds: this.totalCompanyList[num].kindList,
  10109. risks: this.riskList
  10110. };
  10111. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  10112. this.dajia(num, id);
  10113. });
  10114. } else if (!!res.data) {
  10115. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  10116. this.totalCompanyList[num].lastYearMsg = "";
  10117. let dat = res.data.warnMessageList;
  10118. dat.map(ele => {
  10119. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  10120. });
  10121. }
  10122. this.totalCompanyList[num].quoteCode = 200;
  10123. this.totalCompanyList[num].result = res.data;
  10124. this.jqstartDate = res.data.startDateJq;
  10125. this.jqendDate = res.data.endDateJq;
  10126. this.systartDate = res.data.startDateSy;
  10127. this.syendDate = res.data.endDateSy;
  10128. this.QuotationHistory();
  10129. } else {
  10130. this.totalCompanyList[num].quoteCode = "3";
  10131. this.totalCompanyList[num].msg = res.msg;
  10132. return;
  10133. }
  10134. });
  10135. },
  10136. //华泰报价
  10137. huatai(num, id) {
  10138. let type = this.totalCompanyList[num].apiType;
  10139. let api = type == 2 ? "pythonquote" : "huataiquote";
  10140. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  10141. let params = {
  10142. accidentalDrivingVo: {},
  10143. orderNo: this.orderno,
  10144. companyId: id,
  10145. agreementId: this.totalCompanyList[num].agreementId,
  10146. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  10147. kinds: this.totalCompanyList[num].kindList || [],
  10148. risks: this.riskList || []
  10149. };
  10150. this.$api.letter[api](params).then(res => {
  10151. this.totalCompanyList[num].msg = res.msg;
  10152. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  10153. this.totalCompanyList[num].quoteCode = "4";
  10154. this.totalCompanyList[num].msg = res.msg;
  10155. return;
  10156. } else if (
  10157. res.data == null &&
  10158. res.msg.indexOf("交强险平台返回") > -1 &&
  10159. res.msg.indexOf(";终保日期") > -1
  10160. ) {
  10161. //判断保司返回重复投保信息,进行默认赋值起终保日期,重新算费 后面联调需要调整
  10162. let time =
  10163. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  10164. this.jqstartDate = time;
  10165. this.jqendDate = this.oneYearPast1(time);
  10166. this.systartDate = time;
  10167. this.syendDate = this.oneYearPast1(time);
  10168. if (this.riskList.length > 0) {
  10169. for (let i = 0; i < this.riskList.length; i++) {
  10170. if (this.riskList[i].riskCode == "0507") {
  10171. this.riskList[i].startDate = time;
  10172. this.riskList[i].endDate = this.oneYearPast1(time);
  10173. } else if (this.riskList[i].riskCode == "0510") {
  10174. this.riskList[i].startDate = time;
  10175. this.riskList[i].endDate = this.oneYearPast1(time);
  10176. }
  10177. }
  10178. }
  10179. let param = {
  10180. userId: this.userId,
  10181. quoteno: this.quoteno,
  10182. orderNo: this.orderno,
  10183. carInfo: this.carInfo,
  10184. insuredPersonInfo: this.insuredPersonInfo,
  10185. ownerInfo: this.ownerInfo,
  10186. policyHolderInfo: this.policyHolderInfo,
  10187. kindList: this.kindList,
  10188. riskList: this.riskList,
  10189. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  10190. kinds: this.totalCompanyList[num].kindList || [],
  10191. risks: this.riskList || []
  10192. };
  10193. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  10194. this.huatai(num, id);
  10195. });
  10196. } else if (!!res.data) {
  10197. this.totalCompanyList[num].quoteCode = 200;
  10198. this.totalCompanyList[num].result = res.data;
  10199. this.jqstartDate = res.data.startDateJq;
  10200. this.jqendDate = res.data.endDateJq;
  10201. this.systartDate = res.data.startDateSy;
  10202. this.syendDate = res.data.endDateSy;
  10203. this.QuotationHistory();
  10204. } else {
  10205. this.totalCompanyList[num].quoteCode = "3";
  10206. this.totalCompanyList[num].msg = res.msg;
  10207. return;
  10208. }
  10209. });
  10210. },
  10211. //紫金报价
  10212. zijin(num, id) {
  10213. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  10214. let params = {
  10215. accidentalDrivingVo:
  10216. this.totalCompanyList[num].programme.drivingList || [],
  10217. orderNo: this.orderno,
  10218. companyId: id,
  10219. agreementId: this.totalCompanyList[num].agreementId,
  10220. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  10221. coefficient: this.totalCompanyList[num].coefficient,
  10222. kinds: this.totalCompanyList[num].kindList,
  10223. risks: this.riskList,
  10224. productId: this.productId
  10225. };
  10226. this.$api.letter.zijinquote(params).then(res => {
  10227. this.totalCompanyList[num].msg = res.msg;
  10228. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  10229. this.totalCompanyList[num].quoteCode = "4";
  10230. this.totalCompanyList[num].msg = res.msg;
  10231. return;
  10232. } else if (
  10233. res.data == null &&
  10234. res.msg.indexOf("交强险平台返回") > -1 &&
  10235. res.msg.indexOf(";终保日期") > -1
  10236. ) {
  10237. let time =
  10238. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  10239. this.jqstartDate = time;
  10240. this.jqendDate = this.oneYearPast1(time);
  10241. this.systartDate = time;
  10242. this.syendDate = this.oneYearPast1(time);
  10243. if (this.riskList.length > 0) {
  10244. for (let i = 0; i < this.riskList.length; i++) {
  10245. if (this.riskList[i].riskCode == "0507") {
  10246. this.riskList[i].startDate = time;
  10247. this.riskList[i].endDate = this.oneYearPast1(time);
  10248. } else if (this.riskList[i].riskCode == "0510") {
  10249. this.riskList[i].startDate = time;
  10250. this.riskList[i].endDate = this.oneYearPast1(time);
  10251. }
  10252. }
  10253. }
  10254. let param = {
  10255. userId: this.userId,
  10256. quoteno: this.quoteno,
  10257. orderNo: this.orderno,
  10258. carInfo: this.carInfo,
  10259. insuredPersonInfo: this.insuredPersonInfo,
  10260. ownerInfo: this.ownerInfo,
  10261. policyHolderInfo: this.policyHolderInfo,
  10262. kindList: this.kindList,
  10263. riskList: this.riskList,
  10264. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  10265. };
  10266. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  10267. this.zijin(num, id);
  10268. });
  10269. } else if (!!res.data) {
  10270. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  10271. this.totalCompanyList[num].lastYearMsg = "";
  10272. let dat = res.data.warnMessageList;
  10273. dat.map(ele => {
  10274. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  10275. });
  10276. }
  10277. this.totalCompanyList[num].quoteCode = 200;
  10278. this.totalCompanyList[num].result = res.data;
  10279. this.jqstartDate = res.data.startDateJq;
  10280. this.jqendDate = res.data.endDateJq;
  10281. this.systartDate = res.data.startDateSy;
  10282. this.syendDate = res.data.endDateSy;
  10283. this.QuotationHistory();
  10284. } else {
  10285. this.totalCompanyList[num].quoteCode = "3";
  10286. this.totalCompanyList[num].msg = res.msg;
  10287. return;
  10288. }
  10289. });
  10290. },
  10291. yangguang(num, id) {
  10292. let accidentalDrivingVo = {};
  10293. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  10294. accidentalDrivingVo =
  10295. this.totalCompanyList[num].programme.drivingList[0] || {};
  10296. let params = {
  10297. accidentalDrivingVo,
  10298. orderNo: this.orderno,
  10299. companyId: id,
  10300. cqryCdeJq: this.cqryCdeJq,
  10301. cqryCdeSy: this.cqryCdeSy,
  10302. renewalCodeJq: this.renewalCodeJq,
  10303. renewalCodeSy: this.renewalCodeSy,
  10304. coefficient: this.totalCompanyList[num].coefficient,
  10305. agreementId: this.totalCompanyList[num].agreementId,
  10306. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  10307. kinds: this.totalCompanyList[num].kindList,
  10308. risks: this.riskList
  10309. };
  10310. this.$api.letter.yangGuangquote(params).then(res => {
  10311. this.totalCompanyList[num].msg = res.msg;
  10312. if (
  10313. res.data == null &&
  10314. res.msg.indexOf("车险平台返回") > -1 &&
  10315. res.msg.indexOf(";终保日期") > -1
  10316. ) {
  10317. let time =
  10318. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  10319. this.jqstartDate = time;
  10320. this.jqendDate = this.oneYearPast1(time);
  10321. if (this.riskList.length > 0) {
  10322. for (let i = 0; i < this.riskList.length; i++) {
  10323. if (this.riskList[i].riskCode == "0507") {
  10324. this.riskList[i].startDate = time;
  10325. this.riskList[i].endDate = this.oneYearPast1(time);
  10326. }
  10327. }
  10328. }
  10329. let param = {
  10330. userId: this.userId,
  10331. quoteno: this.quoteno,
  10332. orderNo: this.orderno,
  10333. carInfo: this.carInfo,
  10334. insuredPersonInfo: this.insuredPersonInfo,
  10335. ownerInfo: this.ownerInfo,
  10336. policyHolderInfo: this.policyHolderInfo,
  10337. kindList: this.totalCompanyList[num].kindList,
  10338. riskList: this.riskList,
  10339. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  10340. };
  10341. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  10342. this.yangguang(num, id);
  10343. });
  10344. } else if (res.code == "200") {
  10345. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  10346. this.totalCompanyList[num].lastYearMsg = "";
  10347. let dat = res.data.warnMessageList;
  10348. dat.map(ele => {
  10349. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  10350. });
  10351. }
  10352. this.totalCompanyList[num].quoteCode = 200;
  10353. this.totalCompanyList[num].result = res.data;
  10354. this.jqstartDate = res.data.startDateJq;
  10355. this.jqendDate = res.data.endDateJq;
  10356. this.systartDate = res.data.startDateSy;
  10357. this.syendDate = res.data.endDateSy;
  10358. this.QuotationHistory();
  10359. } else if (res.code == "101") {
  10360. this.totalCompanyList[num].quoteCode = "101";
  10361. this.totalCompanyList[num].msg = res.msg;
  10362. this.cqryCdeJq = res.data.cqryCdeJq;
  10363. this.cqryCdeSy = res.data.cqryCdeSy;
  10364. let jq = res.data.renewalCodeJq.replace(/[\r\n]/g, "");
  10365. let jqBase64 = `data:image/png;base64,${jq}`;
  10366. this.renewalCodeJqImg = jqBase64;
  10367. if (res.data.renewalCodeSy) {
  10368. let sy = res.data.renewalCodeSy.replace(/[\r\n]/g, "");
  10369. let syBase64 = `data:image/png;base64,${sy}`;
  10370. this.renewalCodeSyImg = syBase64;
  10371. }
  10372. this.renewalCodedialogVisible = true;
  10373. } else if (res.code == "500") {
  10374. // this.iscCrownerShow=res.msg.indexOf("车主地区自动解析失败")!=-1?true:false
  10375. // this.isInsuredShow=res.msg.indexOf("被保人地区自动解析失败")!=-1?true:false
  10376. // this.isApplicantShow=res.msg.indexOf("投保人地区自动解析失败")!=-1?true:false
  10377. // this.ownerInfo.provinceData= this.iscCrownerShow?[]: this.ownerInfo.provinceData
  10378. // this.insuredPersonInfo.provinceData= this.isInsuredShow?[]: this.insuredPersonInfo.provinceData
  10379. // this.policyHolderInfo.provinceData= this.isApplicantShow?[]: this.policyHolderInfo.provinceData
  10380. this.totalCompanyList[num].quoteCode = "3";
  10381. this.totalCompanyList[num].msg = res.msg;
  10382. } else {
  10383. this.totalCompanyList[num].quoteCode = "3";
  10384. this.totalCompanyList[num].msg = res.msg;
  10385. return;
  10386. }
  10387. });
  10388. },
  10389. //永诚报价
  10390. yongcheng(num, id) {
  10391. this.iscCrownerShow = false;
  10392. this.isInsuredShow = false;
  10393. this.isApplicantShow = false;
  10394. let accidentalDrivingVo = {};
  10395. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  10396. if (this.accidentForm.projectCode) {
  10397. let data = this.yongchengaccidentDataList.find(
  10398. val => val.projectCode == this.yongchengtemplateSelection
  10399. );
  10400. accidentalDrivingVo = {
  10401. ...data,
  10402. quantity: this.accidentForm.quantity ? this.accidentForm.quantity : ""
  10403. };
  10404. }
  10405. accidentalDrivingVo =
  10406. this.totalCompanyList[num].programme.drivingList[0] || {};
  10407. let params = {
  10408. accidentalDrivingVo,
  10409. orderNo: this.orderno,
  10410. companyId: id,
  10411. cqryCdeJq: this.cqryCdeJq,
  10412. cqryCdeSy: this.cqryCdeSy,
  10413. renewalCodeJq: this.renewalCodeJq,
  10414. renewalCodeSy: this.renewalCodeSy,
  10415. agreementId: this.totalCompanyList[num].agreementId,
  10416. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  10417. kinds: this.totalCompanyList[num].kindList,
  10418. risks: this.riskList
  10419. };
  10420. this.$api.letter.yongchengquote(params).then(res => {
  10421. this.totalCompanyList[num].msg = res.msg;
  10422. if (
  10423. res.data == null &&
  10424. res.msg.indexOf("车险平台返回") > -1 &&
  10425. res.msg.indexOf(";终保日期") > -1
  10426. ) {
  10427. let time =
  10428. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  10429. this.jqstartDate = time;
  10430. this.jqendDate = this.oneYearPast1(time);
  10431. if (this.riskList.length > 0) {
  10432. for (let i = 0; i < this.riskList.length; i++) {
  10433. if (this.riskList[i].riskCode == "0507") {
  10434. this.riskList[i].startDate = time;
  10435. this.riskList[i].endDate = this.oneYearPast1(time);
  10436. }
  10437. }
  10438. }
  10439. let param = {
  10440. userId: this.userId,
  10441. quoteno: this.quoteno,
  10442. orderNo: this.orderno,
  10443. carInfo: this.carInfo,
  10444. insuredPersonInfo: this.insuredPersonInfo,
  10445. ownerInfo: this.ownerInfo,
  10446. policyHolderInfo: this.policyHolderInfo,
  10447. kindList: this.totalCompanyList[num].kindList,
  10448. riskList: this.riskList,
  10449. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  10450. };
  10451. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  10452. this.yongcheng(num, id);
  10453. });
  10454. } else if (res.code == "200") {
  10455. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  10456. this.totalCompanyList[num].lastYearMsg = "";
  10457. let dat = res.data.warnMessageList;
  10458. dat.map(ele => {
  10459. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  10460. });
  10461. }
  10462. this.totalCompanyList[num].quoteCode = 200;
  10463. this.totalCompanyList[num].result = res.data;
  10464. this.jqstartDate = res.data.startDateJq;
  10465. this.jqendDate = res.data.endDateJq;
  10466. this.systartDate = res.data.startDateSy;
  10467. this.syendDate = res.data.endDateSy;
  10468. this.QuotationHistory();
  10469. } else if (res.code == "101") {
  10470. this.totalCompanyList[num].quoteCode = "101";
  10471. this.totalCompanyList[num].msg = res.msg;
  10472. this.cqryCdeJq = res.data.cqryCdeJq;
  10473. this.cqryCdeSy = res.data.cqryCdeSy;
  10474. let jq = res.data.renewalCodeJq.replace(/[\r\n]/g, "");
  10475. let jqBase64 = `data:image/png;base64,${jq}`;
  10476. this.renewalCodeJqImg = jqBase64;
  10477. if (res.data.renewalCodeSy) {
  10478. let sy = res.data.renewalCodeSy.replace(/[\r\n]/g, "");
  10479. let syBase64 = `data:image/png;base64,${sy}`;
  10480. this.renewalCodeSyImg = syBase64;
  10481. }
  10482. this.renewalCodedialogVisible = true;
  10483. } else if (res.code == "500") {
  10484. // this.iscCrownerShow=res.msg.indexOf("车主地区自动解析失败")!=-1?true:false
  10485. // this.isInsuredShow=res.msg.indexOf("被保人地区自动解析失败")!=-1?true:false
  10486. // this.isApplicantShow=res.msg.indexOf("投保人地区自动解析失败")!=-1?true:false
  10487. // this.ownerInfo.provinceData= this.iscCrownerShow?[]: this.ownerInfo.provinceData
  10488. // this.insuredPersonInfo.provinceData= this.isInsuredShow?[]: this.insuredPersonInfo.provinceData
  10489. // this.policyHolderInfo.provinceData= this.isApplicantShow?[]: this.policyHolderInfo.provinceData
  10490. this.totalCompanyList[num].quoteCode = "3";
  10491. this.totalCompanyList[num].msg = res.msg;
  10492. } else {
  10493. this.totalCompanyList[num].quoteCode = "3";
  10494. this.totalCompanyList[num].msg = res.msg;
  10495. return;
  10496. }
  10497. });
  10498. },
  10499. //国任报价
  10500. guoRen(num, id) {
  10501. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  10502. let guoRenSpecialAgreementVo = [];
  10503. this.zijinengageList.forEach(val => {
  10504. guoRenSpecialAgreementVo.push({
  10505. clauses: val.clauseName,
  10506. clausesContext: val.clauses,
  10507. clauseCode: val.clauseCode,
  10508. riskCode: val.riskCode,
  10509. riskName: val.riskName
  10510. });
  10511. });
  10512. let accidentalDrivingVo = {};
  10513. if (this.guoRenaccidentForm.goodsCode) {
  10514. accidentalDrivingVo = this.guoRenaccidentalDrivingVo;
  10515. }
  10516. accidentalDrivingVo =
  10517. this.totalCompanyList[num].programme.drivingList[0] || {};
  10518. let params = {
  10519. accidentalDrivingVo,
  10520. orderNo: this.orderno,
  10521. companyId: id,
  10522. cqryCdeJq: this.cqryCdeJq,
  10523. cqryCdeSy: this.cqryCdeSy,
  10524. renewalCodeJq: this.renewalCodeJq,
  10525. renewalCodeSy: this.renewalCodeSy,
  10526. agreementId: this.totalCompanyList[num].agreementId,
  10527. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  10528. guoRenSpecialAgreementVo,
  10529. kinds: this.totalCompanyList[num].kindList,
  10530. risks: this.riskList,
  10531. productId: this.productId
  10532. };
  10533. this.$api.letter.pythonquote(params).then(res => {
  10534. this.totalCompanyList[num].msg = res.msg;
  10535. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  10536. this.totalCompanyList[num].quoteCode = "4";
  10537. this.totalCompanyList[num].msg = res.msg;
  10538. return;
  10539. } else if (
  10540. res.data == null &&
  10541. res.msg.indexOf("车险平台返回") > -1 &&
  10542. res.msg.indexOf(";终保日期") > -1
  10543. ) {
  10544. let time =
  10545. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  10546. this.jqstartDate = time;
  10547. this.jqendDate = this.oneYearPast1(time);
  10548. this.systartDate = time;
  10549. this.syendDate = this.oneYearPast1(time);
  10550. if (this.riskList.length > 0) {
  10551. for (let i = 0; i < this.riskList.length; i++) {
  10552. if (this.riskList[i].riskCode == "0507") {
  10553. this.riskList[i].startDate = time;
  10554. this.riskList[i].endDate = this.oneYearPast1(time);
  10555. } else if (this.riskList[i].riskCode == "0510") {
  10556. this.riskList[i].startDate = time;
  10557. this.riskList[i].endDate = this.oneYearPast1(time);
  10558. }
  10559. }
  10560. }
  10561. let param = {
  10562. userId: this.userId,
  10563. quoteno: this.quoteno,
  10564. orderNo: this.orderno,
  10565. carInfo: this.carInfo,
  10566. insuredPersonInfo: this.insuredPersonInfo,
  10567. ownerInfo: this.ownerInfo,
  10568. policyHolderInfo: this.policyHolderInfo,
  10569. kindList: this.totalCompanyList[num].kindList,
  10570. riskList: this.riskList,
  10571. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  10572. };
  10573. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  10574. this.guoRen(num, id);
  10575. });
  10576. } else if (res.code == "200") {
  10577. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  10578. this.totalCompanyList[num].lastYearMsg = "";
  10579. let dat = res.data.warnMessageList;
  10580. dat.map(ele => {
  10581. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  10582. });
  10583. }
  10584. this.totalCompanyList[num].quoteCode = 200;
  10585. this.totalCompanyList[num].result = res.data;
  10586. this.jqstartDate = res.data.startDateJq;
  10587. this.jqendDate = res.data.endDateJq;
  10588. this.systartDate = res.data.startDateSy;
  10589. this.syendDate = res.data.endDateSy;
  10590. this.QuotationHistory();
  10591. } else if (res.code == "101") {
  10592. this.totalCompanyList[num].quoteCode = "101";
  10593. this.totalCompanyList[num].msg = res.msg;
  10594. this.cqryCdeJq = res.data.cqryCdeJq;
  10595. this.cqryCdeSy = res.data.cqryCdeSy;
  10596. let jq = res.data.renewalCodeJq.replace(/[\r\n]/g, "");
  10597. let jqBase64 = `data:image/png;base64,${jq}`;
  10598. this.renewalCodeJqImg = jqBase64;
  10599. if (res.data.renewalCodeSy) {
  10600. let sy = res.data.renewalCodeSy.replace(/[\r\n]/g, "");
  10601. let syBase64 = `data:image/png;base64,${sy}`;
  10602. this.renewalCodeSyImg = syBase64;
  10603. }
  10604. this.renewalCodedialogVisible = true;
  10605. } else {
  10606. this.totalCompanyList[num].quoteCode = "3";
  10607. this.totalCompanyList[num].msg = res.msg;
  10608. return;
  10609. }
  10610. });
  10611. },
  10612. //渤海报价
  10613. bohai(num, id) {
  10614. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  10615. let accidentalDrivingVo = {};
  10616. if (this.boHaiaccidentForm.projectCode) {
  10617. accidentalDrivingVo = {
  10618. // packageCode: this.boHaiaccidentForm.packageCode,
  10619. // productCode: this.boHaiaccidentDataList.find(
  10620. // (e) => e.packageCode == this.boHaiaccidentForm.packageCode
  10621. // ).productCode,
  10622. // copies: this.boHaiaccidentForm.copies,
  10623. ...this.boHaiaccidentDataList.find(
  10624. e => e.projectCode == this.boHaiaccidentForm.projectCode
  10625. ),
  10626. quantity: this.boHaiaccidentForm.copies
  10627. ? this.boHaiaccidentForm.copies
  10628. : "1"
  10629. };
  10630. }
  10631. accidentalDrivingVo =
  10632. this.totalCompanyList[num].programme.drivingList[0] || {};
  10633. let params = {
  10634. accidentalDrivingVo,
  10635. orderNo: this.orderno,
  10636. companyId: id,
  10637. cqryCdeJq: this.cqryCdeJq,
  10638. cqryCdeSy: this.cqryCdeSy,
  10639. renewalCodeJq: this.renewalCodeJq,
  10640. renewalCodeSy: this.renewalCodeSy,
  10641. agreementId: this.totalCompanyList[num].agreementId,
  10642. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  10643. kinds: this.totalCompanyList[num].kindList,
  10644. risks: this.riskList,
  10645. userId: this.userId
  10646. };
  10647. this.$api.letter.bohaiquote(params).then(res => {
  10648. this.totalCompanyList[num].msg = res.msg;
  10649. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  10650. this.totalCompanyList[num].quoteCode = "4";
  10651. this.totalCompanyList[num].msg = res.msg;
  10652. return;
  10653. } else if (
  10654. res.data == null &&
  10655. res.msg.indexOf("车险平台返回") > -1 &&
  10656. res.msg.indexOf(";终保日期") > -1
  10657. ) {
  10658. let time =
  10659. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  10660. this.jqstartDate = time;
  10661. this.jqendDate = this.oneYearPast1(time);
  10662. this.systartDate = time;
  10663. this.syendDate = this.oneYearPast1(time);
  10664. if (this.riskList.length > 0) {
  10665. for (let i = 0; i < this.riskList.length; i++) {
  10666. if (this.riskList[i].riskCode == "0507") {
  10667. this.riskList[i].startDate = time;
  10668. this.riskList[i].endDate = this.oneYearPast1(time);
  10669. } else if (this.riskList[i].riskCode == "0510") {
  10670. this.riskList[i].startDate = time;
  10671. this.riskList[i].endDate = this.oneYearPast1(time);
  10672. }
  10673. }
  10674. }
  10675. let param = {
  10676. userId: this.userId,
  10677. quoteno: this.quoteno,
  10678. orderNo: this.orderno,
  10679. carInfo: this.carInfo,
  10680. insuredPersonInfo: this.insuredPersonInfo,
  10681. ownerInfo: this.ownerInfo,
  10682. policyHolderInfo: this.policyHolderInfo,
  10683. kindList: this.kindList,
  10684. riskList: this.riskList,
  10685. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  10686. };
  10687. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  10688. this.bohai(num, id);
  10689. });
  10690. } else if (res.code == "200") {
  10691. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  10692. this.totalCompanyList[num].lastYearMsg = "";
  10693. let dat = res.data.warnMessageList;
  10694. dat.map(ele => {
  10695. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  10696. });
  10697. }
  10698. this.totalCompanyList[num].quoteCode = 200;
  10699. this.totalCompanyList[num].result = res.data;
  10700. this.jqstartDate = res.data.startDateJq;
  10701. this.jqendDate = res.data.endDateJq;
  10702. this.systartDate = res.data.startDateSy;
  10703. this.syendDate = res.data.endDateSy;
  10704. this.QuotationHistory();
  10705. } else if (res.code == "101") {
  10706. this.totalCompanyList[num].quoteCode = "101";
  10707. this.totalCompanyList[num].msg = res.msg;
  10708. this.cqryCdeJq = res.data.cqryCdeJq;
  10709. this.cqryCdeSy = res.data.cqryCdeSy;
  10710. let jq = res.data.renewalCodeJq.replace(/[\r\n]/g, "");
  10711. let jqBase64 = `data:image/png;base64,${jq}`;
  10712. this.renewalCodeJqImg = jqBase64;
  10713. if (res.data.renewalCodeSy) {
  10714. let sy = res.data.renewalCodeSy.replace(/[\r\n]/g, "");
  10715. let syBase64 = `data:image/png;base64,${sy}`;
  10716. this.renewalCodeSyImg = syBase64;
  10717. }
  10718. this.renewalCodedialogVisible = true;
  10719. } else {
  10720. this.totalCompanyList[num].quoteCode = "3";
  10721. this.totalCompanyList[num].msg = res.msg;
  10722. return;
  10723. }
  10724. });
  10725. },
  10726. // 爬虫对接
  10727. quoteInsurance(num, id, namesimple, apiType) {
  10728. let api = apiType == 2 ? "pythonquote" : "";
  10729. if (namesimple == "诚泰财险") {
  10730. api = "pythonquote";
  10731. }
  10732. let ccidenttype = this.totalCompanyList[num].cnName;
  10733. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  10734. // accidentalDrivingVo = this.totalCompanyList[num].programme.drivingList[0] || {}
  10735. let params = {
  10736. // accidentalDrivingVo: this[ccidenttype + "accidentalDrivingVo"],
  10737. accidentalDrivingVo:
  10738. this.totalCompanyList[num].programme.drivingList[0] || {},
  10739. orderNo: this.orderno,
  10740. companyId: id,
  10741. userId: this.userId,
  10742. agreementId: this.totalCompanyList[num].agreementId,
  10743. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  10744. kinds: this.totalCompanyList[num].kindList || [],
  10745. risks: this.riskList || [],
  10746. productId: this.productId,
  10747. // coefficient:this.totalCompanyList[num].coefficient,
  10748. };
  10749. if (namesimple == "中国人寿" && this.lastCompanyId) {
  10750. params.discount = this.totalCompanyList[num].discount;
  10751. params.lastCompanyId = this.lastCompanyId;
  10752. }
  10753. if (
  10754. namesimple == "华农财险" &&
  10755. this.huanongaccidentalDrivingVo.quantity
  10756. ) {
  10757. params.accidentalDrivingVo.quantity = this.accidentFormHN.quantity;
  10758. // params.accidentalDrivingVo.allQuantity = this.accidentFormHN.allQuantity;
  10759. }
  10760. if (namesimple == "诚泰财险" && this.totalCompanyList[num].result.initialProposalDiscount) {
  10761. params.discount = this.totalCompanyList[num].result.expectedDiscount;
  10762. params.coefficient = this.totalCompanyList[num].result.pricingCoefficient;
  10763. }
  10764. if (namesimple == '人保财险') {
  10765. params.priceCoefficient = this.totalCompanyList[num].result.priceCoefficient
  10766. }
  10767. this.$api.letter[api](params).then(res => {
  10768. this.totalCompanyList[num].msg = res.msg;
  10769. switch (namesimple) {
  10770. case "安盛天平":
  10771. case "诚泰财险":
  10772. case "泰康财险":
  10773. case "中国人寿":
  10774. case "人保财险":
  10775. case "恒邦财险":
  10776. case "华农财险":
  10777. case "华安财险":
  10778. case "泰山财险":
  10779. case "太平财险":
  10780. case "太平洋财险":
  10781. if (!!res.data) {
  10782. if (
  10783. res.data.warnMessageList &&
  10784. res.data.warnMessageList.length > 0
  10785. ) {
  10786. this.totalCompanyList[num].lastYearMsg = "";
  10787. let dat = res.data.warnMessageList;
  10788. dat.map(ele => {
  10789. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  10790. });
  10791. }
  10792. if (res.data.predictInfo && res.data.predictInfo.length > 0) {
  10793. this.totalCompanyList[num].predictInfo = res.data.predictInfo;
  10794. }
  10795. this.totalCompanyList[num].quoteCode = 200;
  10796. this.totalCompanyList[num].result = res.data;
  10797. this.vehicleInspectionUrl = this.totalCompanyList[
  10798. num
  10799. ].result.vehicleInspectionUrl;
  10800. if (namesimple == "中国人寿" && res.data.companyId) {
  10801. this.lastCompanyId = res.data.companyId;
  10802. }
  10803. this.jqstartDate = res.data.startDateJq;
  10804. this.jqendDate = res.data.endDateJq;
  10805. this.systartDate = res.data.startDateSy;
  10806. this.syendDate = res.data.endDateSy;
  10807. this.QuotationHistory();
  10808. } else {
  10809. this.totalCompanyList[num].quoteCode = "3";
  10810. this.totalCompanyList[num].msg = res.msg;
  10811. return;
  10812. }
  10813. break;
  10814. case "众安财险":
  10815. if (!!res.data) {
  10816. if (res.data.tips == "需要验车") {
  10817. this.$notify.error({
  10818. title: "通融单",
  10819. duration: 0,
  10820. dangerouslyUseHTMLString: true,
  10821. message: `<div> ${res.data.warnMessageList
  10822. .map(item => {
  10823. return `<p>${item}</p>`;
  10824. })
  10825. .join("")}
  10826. </div>`
  10827. });
  10828. }
  10829. if (
  10830. res.data.warnMessageList &&
  10831. res.data.warnMessageList.length > 0
  10832. ) {
  10833. this.totalCompanyList[num].lastYearMsg = "";
  10834. let dat = res.data.warnMessageList;
  10835. dat.map(ele => {
  10836. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  10837. });
  10838. }
  10839. this.totalCompanyList[num].quoteCode = 200;
  10840. this.totalCompanyList[num].result = res.data;
  10841. this.jqstartDate = res.data.startDateJq;
  10842. this.jqendDate = res.data.endDateJq;
  10843. this.systartDate = res.data.startDateSy;
  10844. this.syendDate = res.data.endDateSy;
  10845. this.QuotationHistory();
  10846. } else {
  10847. this.totalCompanyList[num].quoteCode = "3";
  10848. this.totalCompanyList[num].msg = res.msg;
  10849. return;
  10850. }
  10851. break;
  10852. default:
  10853. break;
  10854. }
  10855. });
  10856. },
  10857. //安盛天平
  10858. ansheng(num, id, namesimple) {
  10859. this.quoteInsurance(
  10860. num,
  10861. id,
  10862. namesimple,
  10863. this.totalCompanyList[num].apiType
  10864. );
  10865. },
  10866. //众安
  10867. zhongan(num, id, namesimple) {
  10868. this.quoteInsurance(
  10869. num,
  10870. id,
  10871. namesimple,
  10872. this.totalCompanyList[num].apiType
  10873. );
  10874. },
  10875. //人寿
  10876. renshou(num, id, namesimple) {
  10877. this.quoteInsurance(
  10878. num,
  10879. id,
  10880. namesimple,
  10881. this.totalCompanyList[num].apiType
  10882. );
  10883. },
  10884. //人保
  10885. renbao(num, id, namesimple) {
  10886. this.quoteInsurance(
  10887. num,
  10888. id,
  10889. namesimple,
  10890. this.totalCompanyList[num].apiType
  10891. );
  10892. },
  10893. //恒邦
  10894. hengbang(num, id, namesimple) {
  10895. this.quoteInsurance(
  10896. num,
  10897. id,
  10898. namesimple,
  10899. this.totalCompanyList[num].apiType
  10900. );
  10901. },
  10902. //太平洋
  10903. taipingyang(num, id, namesimple) {
  10904. this.quoteInsurance(
  10905. num,
  10906. id,
  10907. namesimple,
  10908. this.totalCompanyList[num].apiType
  10909. );
  10910. },
  10911. //诚泰
  10912. chengtai(num, id, namesimple) {
  10913. this.quoteInsurance(
  10914. num,
  10915. id,
  10916. namesimple,
  10917. this.totalCompanyList[num].apiType
  10918. );
  10919. },
  10920. //太平
  10921. taiping(num, id, namesimple) {
  10922. this.quoteInsurance(
  10923. num,
  10924. id,
  10925. namesimple,
  10926. this.totalCompanyList[num].apiType
  10927. );
  10928. },
  10929. //华农
  10930. huanong(num, id, namesimple) {
  10931. this.quoteInsurance(
  10932. num,
  10933. id,
  10934. namesimple,
  10935. this.totalCompanyList[num].apiType
  10936. );
  10937. },
  10938. huaan(num, id, namesimple) {
  10939. this.quoteInsurance(
  10940. num,
  10941. id,
  10942. namesimple,
  10943. this.totalCompanyList[num].apiType
  10944. );
  10945. },
  10946. taishan(num, id, namesimple) {
  10947. this.quoteInsurance(
  10948. num,
  10949. id,
  10950. namesimple,
  10951. this.totalCompanyList[num].apiType
  10952. );
  10953. },
  10954. capTypedictTag(val, option) {
  10955. if (option.find(item => item.dictValue == val)) {
  10956. return option.find(item => item.dictValue == val).dictTag;
  10957. } else {
  10958. return "-";
  10959. }
  10960. },
  10961. // 爬虫对接
  10962. qoutedetail(companyId) {
  10963. let params = {
  10964. companyId: companyId
  10965. };
  10966. this.$api.letter.getByCompanyId(params).then(res => {
  10967. if (res.code == "200") {
  10968. var data = res.data;
  10969. data.kindinfo.map((ele, index) => {
  10970. switch (ele.kindCode) {
  10971. case "A":
  10972. ele.amount = "投保";
  10973. break;
  10974. case "D4":
  10975. case "SY_FJ_YBW2":
  10976. ele.unitAmount = this.toChinesNum(ele.unitAmount);
  10977. break;
  10978. case "MJ1":
  10979. case "MJ2":
  10980. case "MJ3":
  10981. case "MJ4":
  10982. ele.deductibleRate = ele.deductibleRate + "%";
  10983. break;
  10984. default:
  10985. ele.amount = this.toChinesNum(ele.amount);
  10986. }
  10987. return ele;
  10988. });
  10989. if (
  10990. (data.carinfo.carnature && data.carinfo.carnature == "02") ||
  10991. data.carinfo.carnature == "非营业"
  10992. ) {
  10993. data.carinfo.vehicleUse = this.capTypedictTag(
  10994. data.carinfo.vehicleUse,
  10995. this.outOfBusinessVehicleUseoptions
  10996. );
  10997. } else {
  10998. data.carinfo.vehicleUse = this.capTypedictTag(
  10999. data.carinfo.vehicleUse,
  11000. this.businessVehicleUseoptions
  11001. );
  11002. }
  11003. data.carinfo.carnature = this.capTypedictTag(
  11004. data.carinfo.carnature,
  11005. this.natureOfVehicleUseoptions
  11006. );
  11007. data.carinfo.cartype = data.carinfo.cartype
  11008. ? this.capTypedictTag(
  11009. data.carinfo.cartype,
  11010. this.trafficManagementVehicleTypeoptions
  11011. )
  11012. : "";
  11013. data.carinfo.cimodelclass = data.carinfo.cimodelclass
  11014. ? this.capTypedictTag(
  11015. data.carinfo.cimodelclass,
  11016. this.vehicleTypeoptions
  11017. )
  11018. : "";
  11019. data.carinfo.energyType = data.carinfo.energyType
  11020. ? this.capTypedictTag(
  11021. data.carinfo.energyType,
  11022. this.energyTypeoptions
  11023. )
  11024. : "";
  11025. this.queryOrders = data;
  11026. //赋值费用信息
  11027. // this.feeDetailInfo=data.orderFeeResult;
  11028. }
  11029. });
  11030. this.$refs.detailsDialog.setBackupVisible(true);
  11031. },
  11032. imageUpload() {
  11033. this.imageUploaddialogVisible = true;
  11034. // this.$refs.imageDialog.setBackupVisible(true);
  11035. },
  11036. tabLiScroll(id, idx) {
  11037. this.tabLiIndex = idx;
  11038. document.getElementById(id).scrollIntoView({ behavior: "smooth" });
  11039. },
  11040. //影像上传
  11041. drivingupload(file, imageIdList, imgurl, type) {
  11042. let that = this;
  11043. let size = file.size / 1024 / 1024 < 5;
  11044. const isJPG =
  11045. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  11046. if (!size) {
  11047. this.$message.error("上传图片大小不能超过 5MB!");
  11048. this[imgurl] = [];
  11049. return false;
  11050. }
  11051. if (!isJPG) {
  11052. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  11053. this[imgurl] = [];
  11054. return false;
  11055. }
  11056. this[imgurl].push(file);
  11057. var file = file.raw;
  11058. const params = new FormData(); // 声明formData数据类型
  11059. params.append("multipartFile", file);
  11060. params.append("type", "image");
  11061. this.$api.letter.uploadFile(params).then(res => {
  11062. if (res.code == "200") {
  11063. if (this[imageIdList].some(v => v.imageType == type)) {
  11064. this[imageIdList].map(val => {
  11065. if (val.imageType == type) {
  11066. val.imageId = res.data.id;
  11067. }
  11068. });
  11069. } else {
  11070. this[imageIdList].push({
  11071. imageId: res.data.id,
  11072. imageType: type
  11073. });
  11074. }
  11075. }
  11076. });
  11077. },
  11078. imageEcho(quotenos) {
  11079. //影像查询
  11080. this.$api.letter.findByQuoteNo(quotenos).then(res => {
  11081. if (res.code == "200") {
  11082. this.imageList1 = [];
  11083. this.imageList2 = [];
  11084. this.imageList3 = [];
  11085. this.imageList4 = [];
  11086. this.imageList5 = [];
  11087. this.imageList6 = [];
  11088. this.imgList1 = [];
  11089. this.imgList2 = [];
  11090. this.imgList3 = [];
  11091. this.imgList4 = [];
  11092. this.imgList5 = [];
  11093. this.imgList6 = [];
  11094. this.imgList7 = [];
  11095. this.imgList8 = [];
  11096. this.imgList9 = [];
  11097. this.imgList10 = [];
  11098. this.imgList11 = [];
  11099. this.imgList12 = [];
  11100. this.imgList13 = [];
  11101. this.imgList14 = [];
  11102. this.imgList15 = [];
  11103. this.imgList16 = [];
  11104. this.imgList17 = [];
  11105. this.imgList18 = [];
  11106. this.imgList19 = [];
  11107. this.imgList20 = [];
  11108. this.imgList21 = [];
  11109. this.imgList22 = [];
  11110. this.imgList23 = [];
  11111. this.imgList24 = [];
  11112. this.imgList25 = [];
  11113. this.imgList26 = [];
  11114. this.imgList27 = [];
  11115. this.imgList28 = [];
  11116. Object.keys(res.data).forEach(keys => {
  11117. if (res.data[keys].url) {
  11118. res.data[keys].url = process.env.BASE_URL + res.data[keys].url;
  11119. switch (keys) {
  11120. case "C01":
  11121. this.imageList1.push({
  11122. imageId: res.data[keys].imageId,
  11123. imageType: res.data[keys].imageType
  11124. });
  11125. this.imgList1.push(res.data[keys]);
  11126. break;
  11127. case "D01":
  11128. this.imageList1.push({
  11129. imageId: res.data[keys].imageId,
  11130. imageType: res.data[keys].imageType
  11131. });
  11132. this.imgList2.push(res.data[keys]);
  11133. break;
  11134. case "C02":
  11135. this.imageList2.push({
  11136. imageId: res.data[keys].imageId,
  11137. imageType: res.data[keys].imageType
  11138. });
  11139. this.imgList3.push(res.data[keys]);
  11140. break;
  11141. case "D02":
  11142. this.imageList2.push({
  11143. imageId: res.data[keys].imageId,
  11144. imageType: res.data[keys].imageType
  11145. });
  11146. this.imgList4.push(res.data[keys]);
  11147. break;
  11148. case "Y02":
  11149. this.imageList2.push({
  11150. imageId: res.data[keys].imageId,
  11151. imageType: res.data[keys].imageType
  11152. });
  11153. this.imgList26.push(res.data[keys]);
  11154. break;
  11155. case "C03":
  11156. this.imageList3.push({
  11157. imageId: res.data[keys].imageId,
  11158. imageType: res.data[keys].imageType
  11159. });
  11160. this.imgList5.push(res.data[keys]);
  11161. break;
  11162. case "D03":
  11163. this.imageList3.push({
  11164. imageId: res.data[keys].imageId,
  11165. imageType: res.data[keys].imageType
  11166. });
  11167. this.imgList6.push(res.data[keys]);
  11168. break;
  11169. case "Y03":
  11170. this.imageList3.push({
  11171. imageId: res.data[keys].imageId,
  11172. imageType: res.data[keys].imageType
  11173. });
  11174. this.imgList27.push(res.data[keys]);
  11175. break;
  11176. case "C04":
  11177. this.imageList4.push({
  11178. imageId: res.data[keys].imageId,
  11179. imageType: res.data[keys].imageType
  11180. });
  11181. this.imgList7.push(res.data[keys]);
  11182. break;
  11183. case "D04":
  11184. this.imageList4.push({
  11185. imageId: res.data[keys].imageId,
  11186. imageType: res.data[keys].imageType
  11187. });
  11188. this.imgList8.push(res.data[keys]);
  11189. break;
  11190. case "Y04":
  11191. this.imageList4.push({
  11192. imageId: res.data[keys].imageId,
  11193. imageType: res.data[keys].imageType
  11194. });
  11195. this.imgList28.push(res.data[keys]);
  11196. break;
  11197. case "XC00":
  11198. this.imageList5.push({
  11199. imageId: res.data[keys].imageId,
  11200. imageType: res.data[keys].imageType
  11201. });
  11202. this.imgList9.push(res.data[keys]);
  11203. break;
  11204. case "GC00":
  11205. this.imageList5.push({
  11206. imageId: res.data[keys].imageId,
  11207. imageType: res.data[keys].imageType
  11208. });
  11209. this.imgList10.push(res.data[keys]);
  11210. break;
  11211. case "GX00":
  11212. this.imageList5.push({
  11213. imageId: res.data[keys].imageId,
  11214. imageType: res.data[keys].imageType
  11215. });
  11216. this.imgList11.push(res.data[keys]);
  11217. break;
  11218. case "TAR05":
  11219. this.imageList1.push({
  11220. imageId: res.data[keys].imageId,
  11221. imageType: res.data[keys].imageType
  11222. });
  11223. this.imgList12.push(res.data[keys]);
  11224. break;
  11225. case "C0500":
  11226. this.imageList6.push({
  11227. imageId: res.data[keys].imageId,
  11228. imageType: res.data[keys].imageType
  11229. });
  11230. this.imgList13.push(res.data[keys]);
  11231. break;
  11232. case "C0501":
  11233. this.imageList6.push({
  11234. imageId: res.data[keys].imageId,
  11235. imageType: res.data[keys].imageType
  11236. });
  11237. this.imgList14.push(res.data[keys]);
  11238. break;
  11239. case "C0502":
  11240. this.imageList6.push({
  11241. imageId: res.data[keys].imageId,
  11242. imageType: res.data[keys].imageType
  11243. });
  11244. this.imgList15.push(res.data[keys]);
  11245. break;
  11246. case "C0503":
  11247. this.imageList6.push({
  11248. imageId: res.data[keys].imageId,
  11249. imageType: res.data[keys].imageType
  11250. });
  11251. this.imgList16.push(res.data[keys]);
  11252. break;
  11253. case "C0504":
  11254. this.imageList6.push({
  11255. imageId: res.data[keys].imageId,
  11256. imageType: res.data[keys].imageType
  11257. });
  11258. this.imgList17.push(res.data[keys]);
  11259. break;
  11260. case "C0506":
  11261. this.imageList6.push({
  11262. imageId: res.data[keys].imageId,
  11263. imageType: res.data[keys].imageType
  11264. });
  11265. this.imgList18.push(res.data[keys]);
  11266. break;
  11267. case "C0507":
  11268. this.imageList6.push({
  11269. imageId: res.data[keys].imageId,
  11270. imageType: res.data[keys].imageType
  11271. });
  11272. this.imgList19.push(res.data[keys]);
  11273. break;
  11274. case "C0505":
  11275. this.imageList6.push({
  11276. imageId: res.data[keys].imageId,
  11277. imageType: res.data[keys].imageType
  11278. });
  11279. this.imgList20.push(res.data[keys]);
  11280. break;
  11281. case "C0508":
  11282. this.imageList6.push({
  11283. imageId: res.data[keys].imageId,
  11284. imageType: res.data[keys].imageType
  11285. });
  11286. this.imgList21.push(res.data[keys]);
  11287. break;
  11288. case "C0509":
  11289. this.imageList6.push({
  11290. imageId: res.data[keys].imageId,
  11291. imageType: res.data[keys].imageType
  11292. });
  11293. this.imgList22.push(res.data[keys]);
  11294. break;
  11295. case "C0510":
  11296. this.imageList6.push({
  11297. imageId: res.data[keys].imageId,
  11298. imageType: res.data[keys].imageType
  11299. });
  11300. this.imgList23.push(res.data[keys]);
  11301. break;
  11302. case "LAST_INSURANCE_POLICY":
  11303. this.imageList6.push({
  11304. imageId: res.data[keys].imageId,
  11305. imageType: res.data[keys].imageType
  11306. });
  11307. this.imgList24.push(res.data[keys]);
  11308. break;
  11309. case "SQ00":
  11310. this.imageList6.push({
  11311. imageId: res.data[keys].imageId,
  11312. imageType: res.data[keys].imageType
  11313. });
  11314. this.imgList25.push(res.data[keys]);
  11315. break;
  11316. default:
  11317. break;
  11318. }
  11319. }
  11320. });
  11321. } else {
  11322. this.$message({ message: res.msg, type: "info" });
  11323. }
  11324. });
  11325. },
  11326. policyUpload() {
  11327. this.policyNumberForm.jqPolicyList = !this.policyNumberForm.jqPolicyList
  11328. ? []
  11329. : this.policyNumberForm.jqPolicyList;
  11330. this.policyNumberForm.jqSignList = !this.policyNumberForm.jqSignList
  11331. ? []
  11332. : this.policyNumberForm.jqSignList;
  11333. this.policyNumberForm.syPolicyList = !this.policyNumberForm.syPolicyList
  11334. ? []
  11335. : this.policyNumberForm.syPolicyList;
  11336. this.policyNumberForm.noPolicyList = !this.policyNumberForm.noPolicyList
  11337. ? []
  11338. : this.policyNumberForm.noPolicyList;
  11339. this.policyUploaddialogVisible = true;
  11340. },
  11341. cancelorder(item) {
  11342. if (item.inscompany == "紫金财险") {
  11343. this.$api.letter.zijincancelorder({ companyId: item.id }).then(res => {
  11344. if (res.code == 200) {
  11345. this.$message({
  11346. message: res.msg,
  11347. type: "success"
  11348. });
  11349. this.QuotationHistory();
  11350. }
  11351. });
  11352. } else if (item.inscompany == "诚泰财险") {
  11353. this.$api.letter
  11354. .chengtaicancelorder({ companyId: item.id })
  11355. .then(res => {
  11356. if (res.code == 200) {
  11357. this.$message({
  11358. message: res.msg,
  11359. type: "success"
  11360. });
  11361. this.findPage();
  11362. }
  11363. });
  11364. } else if (item.inscompany == "阳光财险") {
  11365. this.$api.letter
  11366. .yangGuangautoWriteOff({ companyId: item.id })
  11367. .then(res => {
  11368. if (res.code == 200) {
  11369. this.$message({
  11370. message: res.msg,
  11371. type: "success"
  11372. });
  11373. this.findPage();
  11374. }
  11375. });
  11376. }
  11377. },
  11378. hbsubmitdialog(data, index) {
  11379. this.typeDialogIndex = index; // 当前的公司index
  11380. if (this.imageList1.length == 0 && this.imageList2.length == 0) {
  11381. this.$message({ message: "影像不全,先上传影像", type: "error" });
  11382. return;
  11383. }
  11384. this.companyId = data.result.companyId;
  11385. this.apiType = data.result.apiType;
  11386. this.hbsubmitdialogVisible = true;
  11387. this.contributingState = false;
  11388. if (data.namesimple == "紫金财险") {
  11389. // this.getClauseData(this.companyId, index)
  11390. this.$api.letter
  11391. .zijinqueryClauseData({ companyId: this.companyId })
  11392. .then(res => {
  11393. this.zijinengageListData = res.data;
  11394. });
  11395. }
  11396. if (data.namesimple == "华泰财险") {
  11397. this.zijinengageList = [];
  11398. // this.getClauseData(this.companyId, index)
  11399. this.$api.letter
  11400. .huataiqueryClauseData({ companyId: this.companyId })
  11401. .then(res => {
  11402. res.data.forEach(val => {
  11403. val.clauseCode = val.engageCode;
  11404. val.clauseName = val.engageTitle;
  11405. val.clauseContent = val.engageDetail;
  11406. val.clauses = val.engageDetail;
  11407. });
  11408. this.zijinengageListData = res.data;
  11409. this.zijinengageListData.forEach(val => {
  11410. this.$nextTick(() => {
  11411. if (val.optType == "2") {
  11412. this.zijinengageList.push(val);
  11413. this.$refs.expandTablePro.toggleRowSelection(val, true);
  11414. }
  11415. });
  11416. });
  11417. });
  11418. } else {
  11419. this.zijinengageListData = [];
  11420. }
  11421. // switch (data.namesimple) {
  11422. // case "紫金财险":
  11423. // this.$api.letter.zijinqueryClauseData({ companyId: this.companyId }).then(res => {
  11424. // this.zijinengageListData = res.data;
  11425. // });
  11426. // break;
  11427. // default:
  11428. // break;
  11429. // }
  11430. },
  11431. hbsubmit() {
  11432. this.hbsubmitdialogVisible = false;
  11433. this.contributingState = false;
  11434. this.$api.letter
  11435. .getByCompanyId({ companyId: this.companyId })
  11436. .then(async res => {
  11437. if (res.code == 200) {
  11438. var data = res.data;
  11439. this.queryOrders = data;
  11440. const loading = this.$loading({
  11441. lock: true,
  11442. text: "Loading",
  11443. spinner: "el-icon-loading",
  11444. background: "rgba(0, 0, 0, 0.7)"
  11445. });
  11446. switch (this.queryOrders.inscompany) {
  11447. case "永安财险":
  11448. let api = "";
  11449. api =
  11450. this.apiType == 2
  11451. ? "pythonsubmitImage"
  11452. : "insyongansubmitImage";
  11453. await this.$api.letter[api]({
  11454. companyId: this.companyId
  11455. }).then(res => {
  11456. if (res.code == "200") {
  11457. var _this = this;
  11458. let api1 = "";
  11459. api1 = this.apiType == 2 ? "pythonaudit" : "yonganaudit";
  11460. this.$api.letter[api1]({
  11461. companyId: this.companyId
  11462. }).then(res => {
  11463. var _this = this;
  11464. if (res.code == "200") {
  11465. loading.close();
  11466. this.$message({
  11467. message: "核保成功",
  11468. type: "success"
  11469. });
  11470. this.QuotationHistory();
  11471. _this.$api.letter
  11472. .getByCompanyId({ companyId: this.companyId })
  11473. .then(res => {
  11474. _this.orderstatus = res.data.orderstatus; //订单状态
  11475. _this.underwritingdialogVisible = true;
  11476. let indexid = this.totalCompanyList.findIndex(
  11477. item =>
  11478. item.namesimple == this.queryOrders.inscompany
  11479. );
  11480. this.totalCompanyList[indexid].orderstatus =
  11481. res.data.orderstatus;
  11482. });
  11483. } else {
  11484. loading.close();
  11485. this.$message({
  11486. showClose: true,
  11487. message:
  11488. this.queryOrders.inscompany + "提核--:" + res.msg,
  11489. type: "error",
  11490. duration: 0
  11491. });
  11492. }
  11493. });
  11494. } else {
  11495. this.$message({
  11496. message: this.queryOrders.inscompany + "影像:" + res.msg,
  11497. type: "error",
  11498. duration: 7000
  11499. });
  11500. loading.close();
  11501. }
  11502. });
  11503. break;
  11504. case "中煤财险":
  11505. let ZMApiImage = "";
  11506. ZMApiImage =
  11507. this.apiType == 2
  11508. ? "pythonsubmitImage"
  11509. : "insZhongmeisubmitImage";
  11510. await this.$api.letter[ZMApiImage]({
  11511. [this.apiType == 2 ? "subOrderNo" : "companyId"]: this
  11512. .companyId
  11513. }).then(res => {
  11514. // await this.$api.letter
  11515. // .insZhongmeisubmitImage({
  11516. // companyId: this.companyId,
  11517. // })
  11518. // .then((res) => {
  11519. if (res.code == "200") {
  11520. var _this = this;
  11521. let ZMApiaudit = "";
  11522. ZMApiaudit =
  11523. this.apiType == 2 ? "pythonaudit" : "Zhongmeiaudit";
  11524. _this.$api.letter[ZMApiaudit]({
  11525. // _this.$api.letter
  11526. // .Zhongmeiaudit({
  11527. [this.apiType == 2 ? "subOrderNo" : "companyId"]: this
  11528. .companyId,
  11529. // companyId: this.companyId,
  11530. jqappoint: "",
  11531. syappoint: ""
  11532. }).then(res => {
  11533. if (res.code == "200") {
  11534. loading.close();
  11535. _this.$message({
  11536. message: "核保成功",
  11537. type: "success"
  11538. });
  11539. this.QuotationHistory();
  11540. _this.$api.letter
  11541. .getByCompanyId({ companyId: this.companyId })
  11542. .then(res => {
  11543. _this.orderstatus = res.data.orderstatus; //订单状态
  11544. _this.underwritingdialogVisible = true;
  11545. let indexid = this.totalCompanyList.findIndex(
  11546. item =>
  11547. item.namesimple == this.queryOrders.inscompany
  11548. );
  11549. this.totalCompanyList[indexid].orderstatus =
  11550. res.data.orderstatus;
  11551. });
  11552. } else {
  11553. loading.close();
  11554. _this.$message({
  11555. showClose: true,
  11556. message:
  11557. this.queryOrders.inscompany + "提核--:" + res.msg,
  11558. type: "error",
  11559. duration: 0
  11560. });
  11561. _this.$api.letter
  11562. .getByCompanyId({ companyId: this.companyId })
  11563. .then(res => {
  11564. _this.orderstatus = res.data.orderstatus; //订单状态
  11565. });
  11566. }
  11567. });
  11568. } else {
  11569. this.$message({
  11570. message:
  11571. this.queryOrders.inscompany + "影像--:" + res.msg,
  11572. type: "error",
  11573. duration: 7000
  11574. });
  11575. loading.close();
  11576. }
  11577. });
  11578. break;
  11579. case "诚泰财险":
  11580. let CtApiImage = "";
  11581. CtApiImage =
  11582. this.apiType == 2
  11583. ? "pythonsubmitImage"
  11584. : "chengtaisubmitImage";
  11585. await this.$api.letter[CtApiImage]({
  11586. [this.apiType == 2 ? "subOrderNo" : "companyId"]: this
  11587. .companyId
  11588. }).then(res => {
  11589. if (res.code == "200") {
  11590. var _this = this;
  11591. let CtApiaudit = "";
  11592. CtApiaudit =
  11593. this.apiType == 2 ? "pythonaudit" : "chengtaiaudit";
  11594. let engageList = [];
  11595. this.zijinengageList.forEach(val => {
  11596. engageList.push({
  11597. engageCode: val.clauseCode,
  11598. engageDetail: val.clauses,
  11599. engageTitle: val.clauseName,
  11600. riskCode: val.riskCode
  11601. });
  11602. });
  11603. _this.$api.letter[CtApiaudit]({
  11604. [this.apiType == 2 ? "subOrderNo" : "companyId"]: this
  11605. .companyId,
  11606. engageList
  11607. }).then(res => {
  11608. if (res.code == "200") {
  11609. loading.close();
  11610. _this.$message({
  11611. message: "核保成功",
  11612. type: "success"
  11613. });
  11614. this.QuotationHistory();
  11615. _this.$api.letter
  11616. .getByCompanyId({ companyId: this.companyId })
  11617. .then(res => {
  11618. _this.orderstatus = res.data.orderstatus; //订单状态
  11619. _this.underwritingdialogVisible = true;
  11620. let indexid = this.totalCompanyList.findIndex(
  11621. item =>
  11622. item.namesimple == this.queryOrders.inscompany
  11623. );
  11624. this.totalCompanyList[indexid].orderstatus =
  11625. res.data.orderstatus;
  11626. });
  11627. } else {
  11628. loading.close();
  11629. _this.$message({
  11630. showClose: true,
  11631. message:
  11632. this.queryOrders.inscompany + "提核--:" + res.msg,
  11633. type: "error",
  11634. duration: 0
  11635. });
  11636. _this.$api.letter
  11637. .getByCompanyId({ companyId: this.companyId })
  11638. .then(res => {
  11639. _this.orderstatus = res.data.orderstatus; //订单状态
  11640. });
  11641. }
  11642. });
  11643. } else {
  11644. this.$message({
  11645. message:
  11646. this.queryOrders.inscompany + "影像--:" + res.msg,
  11647. type: "error",
  11648. duration: 7000
  11649. });
  11650. loading.close();
  11651. }
  11652. });
  11653. break;
  11654. case "华泰财险":
  11655. let HtApiImage = "";
  11656. HtApiImage =
  11657. this.apiType == 2
  11658. ? "pythonsubmitImage"
  11659. : "insHuataisubmitImage";
  11660. await this.$api.letter[HtApiImage]({
  11661. [this.apiType == 2 ? "subOrderNo" : "companyId"]: this
  11662. .companyId
  11663. }).then(res => {
  11664. if (res.code == "200") {
  11665. var _this = this;
  11666. let HtApiaudit = "";
  11667. HtApiaudit =
  11668. this.apiType == 2 ? "pythonaudit" : "huataiaudit";
  11669. let engageList = [];
  11670. this.zijinengageList.forEach(val => {
  11671. engageList.push({
  11672. engageCode: val.clauseCode,
  11673. engageDetail: val.clauses,
  11674. engageTitle: val.clauseName,
  11675. riskCode: val.riskCode
  11676. });
  11677. });
  11678. _this.$api.letter[HtApiaudit]({
  11679. [this.apiType == 2 ? "subOrderNo" : "companyId"]: this
  11680. .companyId,
  11681. engageList
  11682. }).then(res => {
  11683. if (res.code == "200") {
  11684. loading.close();
  11685. _this.$message({
  11686. message: "核保成功",
  11687. type: "success"
  11688. });
  11689. this.QuotationHistory();
  11690. _this.$api.letter
  11691. .getByCompanyId({ companyId: this.companyId })
  11692. .then(res => {
  11693. _this.orderstatus = res.data.orderstatus; //订单状态
  11694. _this.underwritingdialogVisible = true;
  11695. let indexid = this.totalCompanyList.findIndex(
  11696. item =>
  11697. item.namesimple == this.queryOrders.inscompany
  11698. );
  11699. this.totalCompanyList[indexid].orderstatus =
  11700. res.data.orderstatus;
  11701. });
  11702. } else {
  11703. loading.close();
  11704. _this.$message({
  11705. showClose: true,
  11706. message:
  11707. this.queryOrders.inscompany + "提核--:" + res.msg,
  11708. type: "error",
  11709. duration: 0
  11710. });
  11711. _this.$api.letter
  11712. .getByCompanyId({ companyId: this.companyId })
  11713. .then(res => {
  11714. _this.orderstatus = res.data.orderstatus; //订单状态
  11715. });
  11716. }
  11717. });
  11718. } else {
  11719. this.$message({
  11720. message:
  11721. this.queryOrders.inscompany + "影像--:" + res.msg,
  11722. type: "error",
  11723. duration: 7000
  11724. });
  11725. loading.close();
  11726. }
  11727. });
  11728. break;
  11729. case "紫金财险":
  11730. await this.$api.letter
  11731. .zijinsubmitImage({
  11732. companyId: this.companyId
  11733. })
  11734. .then(res => {
  11735. if (res.code == "200") {
  11736. var _this = this;
  11737. _this.$api.letter
  11738. .zijinaudit({
  11739. companyId: this.companyId,
  11740. engageList: this.zijinengageList
  11741. })
  11742. .then(res => {
  11743. if (res.code == "200") {
  11744. loading.close();
  11745. _this.$message({
  11746. message: "核保成功",
  11747. type: "success"
  11748. });
  11749. this.QuotationHistory();
  11750. _this.$api.letter
  11751. .getByCompanyId({ companyId: this.companyId })
  11752. .then(res => {
  11753. _this.orderstatus = res.data.orderstatus; //订单状态
  11754. _this.underwritingdialogVisible = true;
  11755. let indexid = this.totalCompanyList.findIndex(
  11756. item =>
  11757. item.namesimple ==
  11758. this.queryOrders.inscompany
  11759. );
  11760. this.totalCompanyList[indexid].orderstatus =
  11761. res.data.orderstatus;
  11762. });
  11763. } else {
  11764. loading.close();
  11765. _this.$message({
  11766. showClose: true,
  11767. dangerouslyUseHTMLString: true,
  11768. message:
  11769. this.queryOrders.inscompany +
  11770. "提核--:" +
  11771. res.msg,
  11772. type: "error",
  11773. duration: 0
  11774. });
  11775. _this.$api.letter
  11776. .getByCompanyId({ companyId: this.companyId })
  11777. .then(res => {
  11778. _this.orderstatus = res.data.orderstatus; //订单状态
  11779. });
  11780. }
  11781. });
  11782. } else {
  11783. this.$message({
  11784. message:
  11785. this.queryOrders.inscompany + "影像--:" + res.msg,
  11786. type: "error",
  11787. duration: 7000
  11788. });
  11789. loading.close();
  11790. }
  11791. });
  11792. break;
  11793. case "国任财险":
  11794. await this.$api.letter
  11795. .insguorensubmitImage({
  11796. companyId: this.companyId
  11797. })
  11798. .then(res => {
  11799. if (res.code == "200") {
  11800. var _this = this;
  11801. _this.$api.letter
  11802. .gunrenaudit({
  11803. companyId: this.companyId
  11804. })
  11805. .then(res => {
  11806. if (res.code == "200") {
  11807. loading.close();
  11808. _this.cqryCdeJq = "";
  11809. _this.cqryCdeSy = "";
  11810. _this.renewalCodeJq = "";
  11811. _this.renewalCodeSy = "";
  11812. this.$message({
  11813. message: "核保成功",
  11814. type: "success"
  11815. });
  11816. this.QuotationHistory();
  11817. _this.$api.letter
  11818. .getByCompanyId({ companyId: this.companyId })
  11819. .then(res => {
  11820. _this.orderstatus = res.data.orderstatus; //订单状态
  11821. _this.underwritingdialogVisible = true;
  11822. let indexid = this.totalCompanyList.findIndex(
  11823. item =>
  11824. item.namesimple ==
  11825. this.queryOrders.inscompany
  11826. );
  11827. this.totalCompanyList[indexid].orderstatus =
  11828. res.data.orderstatus;
  11829. });
  11830. } else {
  11831. loading.close();
  11832. this.$message({
  11833. showClose: true,
  11834. message: res.msg,
  11835. type: "error",
  11836. duration: 0
  11837. });
  11838. }
  11839. });
  11840. } else {
  11841. loading.close();
  11842. this.$message({
  11843. message: res.msg,
  11844. type: "error",
  11845. duration: 7000
  11846. });
  11847. }
  11848. });
  11849. break;
  11850. case "渤海财险":
  11851. await this.$api.letter
  11852. .insbohaisubmitImage({
  11853. companyId: this.companyId
  11854. })
  11855. .then(res => {
  11856. if (res.code == "200") {
  11857. var _this = this;
  11858. _this.$api.letter
  11859. .bohaiaudit({
  11860. companyId: this.companyId
  11861. })
  11862. .then(res => {
  11863. if (res.code == "200") {
  11864. loading.close();
  11865. _this.cqryCdeJq = "";
  11866. _this.cqryCdeSy = "";
  11867. _this.renewalCodeJq = "";
  11868. _this.renewalCodeSy = "";
  11869. this.$message({
  11870. message: "核保成功",
  11871. type: "success"
  11872. });
  11873. this.QuotationHistory();
  11874. _this.$api.letter
  11875. .getByCompanyId({ companyId: this.companyId })
  11876. .then(res => {
  11877. _this.orderstatus = res.data.orderstatus; //订单状态
  11878. _this.underwritingdialogVisible = true;
  11879. let indexid = this.totalCompanyList.findIndex(
  11880. item =>
  11881. item.namesimple ==
  11882. this.queryOrders.inscompany
  11883. );
  11884. this.totalCompanyList[indexid].orderstatus =
  11885. res.data.orderstatus;
  11886. });
  11887. } else {
  11888. loading.close();
  11889. this.$message({
  11890. showClose: true,
  11891. message: res.msg,
  11892. type: "error",
  11893. duration: 0
  11894. });
  11895. }
  11896. });
  11897. } else {
  11898. loading.close();
  11899. this.$message({
  11900. message: res.msg,
  11901. type: "error",
  11902. duration: 7000
  11903. });
  11904. }
  11905. });
  11906. break;
  11907. case "阳光财险":
  11908. await this.$api.letter
  11909. .yangGuangImage({
  11910. companyId: this.companyId
  11911. })
  11912. .then(res => {
  11913. if (res.code == "200") {
  11914. var _this = this;
  11915. _this.$api.letter
  11916. .yangGuangSubmit({
  11917. companyId: this.companyId
  11918. })
  11919. .then(res => {
  11920. if (res.code == "200") {
  11921. loading.close();
  11922. _this.cqryCdeJq = "";
  11923. _this.cqryCdeSy = "";
  11924. _this.renewalCodeJq = "";
  11925. _this.renewalCodeSy = "";
  11926. this.$message({
  11927. message: "核保成功",
  11928. type: "success"
  11929. });
  11930. this.QuotationHistory();
  11931. _this.$api.letter
  11932. .getByCompanyId({ companyId: this.companyId })
  11933. .then(res => {
  11934. _this.orderstatus = res.data.orderstatus; //订单状态
  11935. _this.underwritingdialogVisible = true;
  11936. let indexid = this.totalCompanyList.findIndex(
  11937. item =>
  11938. item.namesimple ==
  11939. this.queryOrders.inscompany
  11940. );
  11941. this.totalCompanyList[indexid].orderstatus =
  11942. res.data.orderstatus;
  11943. });
  11944. } else {
  11945. loading.close();
  11946. this.$message({
  11947. showClose: true,
  11948. message: res.msg,
  11949. type: "error",
  11950. duration: 0
  11951. });
  11952. }
  11953. });
  11954. } else {
  11955. loading.close();
  11956. this.$message({
  11957. message: res.msg,
  11958. type: "error",
  11959. duration: 7000
  11960. });
  11961. }
  11962. });
  11963. break;
  11964. case "恒邦财险":
  11965. case "华农财险":
  11966. case "华安财险":
  11967. case "泰山财险":
  11968. case "太平财险":
  11969. case "安盛天平":
  11970. case "众安财险":
  11971. case "中国人寿":
  11972. case "人保财险":
  11973. case "太平洋财险":
  11974. // case "诚泰财险":
  11975. case "泰康财险":
  11976. let hengbangapi = "";
  11977. hengbangapi =
  11978. this.apiType == 2
  11979. ? "pythonsubmitImage"
  11980. : "anshengsubmitImage";
  11981. await this.$api.letter[hengbangapi]({
  11982. subOrderNo: this.companyId
  11983. }).then(res => {
  11984. if (res.code == "200") {
  11985. var _this = this;
  11986. let hengbangapi1 = "";
  11987. hengbangapi1 =
  11988. this.apiType == 2 ? "pythonaudit" : "anshengaudit";
  11989. _this.$api.letter[hengbangapi1]({
  11990. subOrderNo: this.companyId
  11991. }).then(res => {
  11992. if (res.code == "200") {
  11993. loading.close();
  11994. this.$message({
  11995. message: "核保成功",
  11996. type: "success"
  11997. });
  11998. this.QuotationHistory();
  11999. _this.$api.letter
  12000. .getByCompanyId({ companyId: this.companyId })
  12001. .then(res => {
  12002. _this.orderstatus = res.data.orderstatus; //订单状态
  12003. _this.underwritingdialogVisible = true;
  12004. let indexid = this.totalCompanyList.findIndex(
  12005. item =>
  12006. item.namesimple == this.queryOrders.inscompany
  12007. );
  12008. this.totalCompanyList[indexid].orderstatus =
  12009. res.data.orderstatus;
  12010. });
  12011. } else {
  12012. loading.close();
  12013. this.$message({
  12014. showClose: true,
  12015. dangerouslyUseHTMLString: true,
  12016. message:
  12017. this.queryOrders.inscompany +
  12018. "提核--:" +
  12019. res.msg.replace(/\n/g, "<br><br>"),
  12020. type: "error",
  12021. duration: 0
  12022. });
  12023. }
  12024. });
  12025. } else {
  12026. loading.close();
  12027. this.$message({
  12028. message:
  12029. this.queryOrders.inscompany + "影像--:" + res.msg,
  12030. type: "error",
  12031. duration: 7000
  12032. });
  12033. }
  12034. });
  12035. break;
  12036. case "永诚财险":
  12037. await this.$api.letter
  12038. .insyongchengsubmitImage({
  12039. companyId: this.companyId
  12040. })
  12041. .then(res => {
  12042. if (res.code == "200") {
  12043. var _this = this;
  12044. _this.$api.letter
  12045. .yongchengaudit({
  12046. companyId: this.companyId
  12047. })
  12048. .then(res => {
  12049. if (res.code == "200") {
  12050. loading.close();
  12051. _this.cqryCdeJq = "";
  12052. _this.cqryCdeSy = "";
  12053. _this.renewalCodeJq = "";
  12054. _this.renewalCodeSy = "";
  12055. this.$message({
  12056. message: "核保成功",
  12057. type: "success"
  12058. });
  12059. this.QuotationHistory();
  12060. _this.$api.letter
  12061. .getByCompanyId({ companyId: this.companyId })
  12062. .then(res => {
  12063. _this.orderstatus = res.data.orderstatus; //订单状态
  12064. _this.underwritingdialogVisible = true;
  12065. let indexid = this.totalCompanyList.findIndex(
  12066. item =>
  12067. item.namesimple ==
  12068. this.queryOrders.inscompany
  12069. );
  12070. this.totalCompanyList[indexid].orderstatus =
  12071. res.data.orderstatus;
  12072. });
  12073. } else {
  12074. loading.close();
  12075. this.$message({
  12076. showClose: true,
  12077. message:
  12078. this.queryOrders.inscompany +
  12079. "提核--:" +
  12080. res.msg,
  12081. customClass: "customNotifyClass",
  12082. type: "error",
  12083. duration: 0
  12084. });
  12085. }
  12086. });
  12087. } else {
  12088. loading.close();
  12089. this.$message({
  12090. message:
  12091. this.queryOrders.inscompany + "影像--:" + res.msg,
  12092. type: "error",
  12093. duration: 7000
  12094. });
  12095. }
  12096. });
  12097. break;
  12098. case "大家财险":
  12099. let DJApiImage = "";
  12100. DJApiImage =
  12101. this.apiType == 2 ? "pythonsubmitImage" : "dajiasubmitImage";
  12102. await this.$api.letter[DJApiImage]({
  12103. [this.apiType == 2 ? "subOrderNo" : "companyId"]: this
  12104. .companyId
  12105. }).then(res => {
  12106. if (res.code == "200") {
  12107. var _this = this;
  12108. let DJApiaudit = "";
  12109. DJApiaudit =
  12110. this.apiType == 2 ? "pythonaudit" : "dajiaaudit";
  12111. _this.$api.letter[DJApiaudit]({
  12112. [this.apiType == 2 ? "subOrderNo" : "companyId"]: this
  12113. .companyId
  12114. }).then(res => {
  12115. if (res.code == "200") {
  12116. loading.close();
  12117. _this.cqryCdeJq = "";
  12118. _this.cqryCdeSy = "";
  12119. _this.renewalCodeJq = "";
  12120. _this.renewalCodeSy = "";
  12121. this.$message({
  12122. message: "核保成功",
  12123. type: "success"
  12124. });
  12125. this.QuotationHistory();
  12126. _this.$api.letter
  12127. .getByCompanyId({ companyId: this.companyId })
  12128. .then(res => {
  12129. _this.orderstatus = res.data.orderstatus; //订单状态
  12130. _this.underwritingdialogVisible = true;
  12131. let indexid = this.totalCompanyList.findIndex(
  12132. item =>
  12133. item.namesimple == this.queryOrders.inscompany
  12134. );
  12135. this.totalCompanyList[indexid].orderstatus =
  12136. res.data.orderstatus;
  12137. });
  12138. } else {
  12139. loading.close();
  12140. this.$message({
  12141. showClose: true,
  12142. message:
  12143. this.queryOrders.inscompany + "提核--:" + res.msg,
  12144. customClass: "customNotifyClass",
  12145. type: "error",
  12146. duration: 0
  12147. });
  12148. }
  12149. });
  12150. } else {
  12151. loading.close();
  12152. this.$message({
  12153. message:
  12154. this.queryOrders.inscompany + "影像--:" + res.msg,
  12155. type: "error",
  12156. duration: 7000
  12157. });
  12158. }
  12159. });
  12160. break;
  12161. case "平安财险":
  12162. await this.$api.letter
  12163. .pingansubmitImage({
  12164. companyId: this.companyId
  12165. })
  12166. .then(res => {
  12167. if (res.code == "200") {
  12168. var _this = this;
  12169. _this.$api.letter
  12170. .pinganaudit({
  12171. companyId: this.companyId,
  12172. jqappoint: "",
  12173. syappoint: ""
  12174. })
  12175. .then(res => {
  12176. if (res.code == "200") {
  12177. loading.close();
  12178. _this.$message({
  12179. message: "核保成功",
  12180. type: "success"
  12181. });
  12182. this.QuotationHistory();
  12183. _this.$api.letter
  12184. .getByCompanyId({ companyId: this.companyId })
  12185. .then(res => {
  12186. _this.orderstatus = res.data.orderstatus; //订单状态
  12187. _this.underwritingdialogVisible = true;
  12188. let indexid = this.totalCompanyList.findIndex(
  12189. item =>
  12190. item.namesimple ==
  12191. this.queryOrders.inscompany
  12192. );
  12193. this.totalCompanyList[indexid].orderstatus =
  12194. res.data.orderstatus;
  12195. });
  12196. } else {
  12197. loading.close();
  12198. _this.$message({
  12199. showClose: true,
  12200. message:
  12201. this.queryOrders.inscompany +
  12202. "提核--:" +
  12203. res.msg,
  12204. type: "error",
  12205. duration: 0
  12206. });
  12207. _this.$api.letter
  12208. .getByCompanyId({ companyId: this.companyId })
  12209. .then(res => {
  12210. _this.orderstatus = res.data.orderstatus; //订单状态
  12211. });
  12212. }
  12213. });
  12214. } else {
  12215. this.$message({
  12216. message:
  12217. this.queryOrders.inscompany + "影像--:" + res.msg,
  12218. type: "error",
  12219. duration: 7000
  12220. });
  12221. loading.close();
  12222. }
  12223. });
  12224. break;
  12225. }
  12226. }
  12227. });
  12228. },
  12229. //当前日期的次日
  12230. transformTime1() {
  12231. var date = new Date();
  12232. date.setFullYear(date.getFullYear());
  12233. date.setTime(date.getTime() + 24 * 60 * 60 * 1000);
  12234. var strYear = date.getFullYear();
  12235. var strDay = date.getDate();
  12236. var strMonth = date.getMonth() + 1;
  12237. var hh = date.getHours();
  12238. if (hh < 10) {
  12239. hh = "0" + hh;
  12240. }
  12241. if (strMonth < 10) {
  12242. strMonth = "0" + strMonth;
  12243. }
  12244. if (strDay < 10) {
  12245. strDay = "0" + strDay;
  12246. }
  12247. var datastr = strYear + "-" + strMonth + "-" + strDay + " " + "00:00:00";
  12248. return datastr;
  12249. },
  12250. //传入日期的次日
  12251. transformTime2(time) {
  12252. var date = new Date(time);
  12253. date.setFullYear(date.getFullYear());
  12254. date.setTime(date.getTime() + 24 * 60 * 60 * 1000); //一年后的前一天
  12255. var strYear = date.getFullYear();
  12256. var strDay = date.getDate();
  12257. var strMonth = date.getMonth() + 1;
  12258. var hh = date.getHours();
  12259. if (hh < 10) {
  12260. hh = "0" + hh;
  12261. }
  12262. if (strMonth < 10) {
  12263. strMonth = "0" + strMonth;
  12264. }
  12265. if (strDay < 10) {
  12266. strDay = "0" + strDay;
  12267. }
  12268. var datastr = strYear + "-" + strMonth + "-" + strDay + " " + "00:00:00";
  12269. return datastr;
  12270. },
  12271. isDateBeforeToday(date) {
  12272. const inputDate = new Date(date); // 将输入的日期转换为 Date 对象
  12273. const today = new Date(); // 获取当前日期
  12274. // 比较日期是否小于当前日期
  12275. if (inputDate < today) {
  12276. return true; // 输入日期小于当前日期
  12277. } else {
  12278. return false; // 输入日期大于等于当前日期
  12279. }
  12280. },
  12281. //时间转换
  12282. transformTime(date) {
  12283. var d = new Date(date);
  12284. var strYear = d.getFullYear();
  12285. var strMonth = d.getMonth() + 1;
  12286. var strDay = d.getDate();
  12287. var hh = d.getHours();
  12288. var minutes = d.getMinutes(); // 分
  12289. var Seconds = d.getSeconds();
  12290. if (hh < 10) {
  12291. hh = "0" + hh;
  12292. }
  12293. if (minutes < 10) {
  12294. minutes = "0" + minutes;
  12295. }
  12296. if (Seconds < 10) {
  12297. Seconds = "0" + Seconds;
  12298. }
  12299. if (strMonth < 10) {
  12300. strMonth = "0" + strMonth;
  12301. }
  12302. if (strDay < 10) {
  12303. strDay = "0" + strDay;
  12304. }
  12305. var datetime =
  12306. strYear +
  12307. "-" +
  12308. strMonth +
  12309. "-" +
  12310. strDay +
  12311. " " +
  12312. hh +
  12313. ":" +
  12314. minutes +
  12315. ":" +
  12316. Seconds;
  12317. return datetime;
  12318. },
  12319. timeformat(date) {
  12320. var d = new Date(date);
  12321. var strYear = d.getFullYear();
  12322. var strMonth = d.getMonth() + 1;
  12323. var strDay = d.getDate();
  12324. var hh = d.getHours();
  12325. if (hh < 10) {
  12326. hh = "0" + hh;
  12327. }
  12328. if (strMonth < 10) {
  12329. strMonth = "0" + strMonth;
  12330. }
  12331. if (strDay < 10) {
  12332. strDay = "0" + strDay;
  12333. }
  12334. var datetime = strYear + "-" + strMonth + "-" + strDay;
  12335. return datetime;
  12336. },
  12337. oneYearPast1(time) {
  12338. //明年减一秒
  12339. var date = new Date(time);
  12340. date.setSeconds(date.getSeconds() - 1);
  12341. date.setFullYear(date.getFullYear() + 1); //一年后
  12342. date.setTime(date.getTime()); //一年后的前一天
  12343. var strYear = date.getFullYear();
  12344. var strDay = date.getDate();
  12345. var strMonth = date.getMonth() + 1;
  12346. var hh = date.getHours();
  12347. var minutes = date.getMinutes(); // 分
  12348. var Seconds = date.getSeconds();
  12349. if (hh < 10) {
  12350. hh = "0" + hh;
  12351. }
  12352. if (minutes < 10) {
  12353. minutes = "0" + minutes;
  12354. }
  12355. if (Seconds < 10) {
  12356. Seconds = "0" + Seconds;
  12357. }
  12358. if (strMonth < 10) {
  12359. strMonth = "0" + strMonth;
  12360. }
  12361. if (strDay < 10) {
  12362. strDay = "0" + strDay;
  12363. }
  12364. var datastr =
  12365. strYear +
  12366. "-" +
  12367. strMonth +
  12368. "-" +
  12369. strDay +
  12370. " " +
  12371. hh +
  12372. ":" +
  12373. minutes +
  12374. ":" +
  12375. Seconds;
  12376. return datastr;
  12377. },
  12378. tbczcarShowChange() {
  12379. //投保人同车主
  12380. switch (this.tbczcarShow) {
  12381. case true:
  12382. this.policyHolderInfo = { ...this.ownerInfo };
  12383. break;
  12384. default:
  12385. for (let key in this.policyHolderInfo) {
  12386. this.policyHolderInfo[key] = "";
  12387. this.policyHolderInfo.provinceData = [];
  12388. this.selectedOptions2 = [];
  12389. }
  12390. this.policyHolderInfo = {};
  12391. }
  12392. this.$forceUpdate();
  12393. },
  12394. bbczcarShowChange() {
  12395. if (this.bbczcarShow) {
  12396. this.bbtbcarShow = false;
  12397. }
  12398. //被保人同车主
  12399. if (this.bbczcarShow && !this.bbtbcarShow) {
  12400. this.insuredPersonInfo = { ...this.ownerInfo };
  12401. this.bbtbcarShow = false;
  12402. }
  12403. // if (!this.bbczcarShow && !this.bbtbcarShow) {
  12404. // for (let key in this.insuredPersonInfo) {
  12405. // this.insuredPersonInfo[key] = "";
  12406. // this.insuredPersonInfo.provinceData = [];
  12407. // // this.selectedOptions3 = [];
  12408. // }
  12409. // this.insuredPersonInfo = {}
  12410. // }
  12411. // if (this.bbtbcarShow) {
  12412. // return
  12413. // }
  12414. // switch (this.bbczcarShow) {
  12415. // case true:
  12416. // this.insuredPersonInfo = JSON.parse(JSON.stringify(this.ownerInfo));
  12417. // this.bbtbcarShow = false;
  12418. // console.log( '车主信息111111', this.ownerInfo, '投保人信息', this.policyHolderInfo, '被保人信息', this.insuredPersonInfo, '被保人同车主', this.bbczcarShow)
  12419. // break;
  12420. // default:
  12421. // for (let key in this.insuredPersonInfo) {
  12422. // this.insuredPersonInfo[key] = "";
  12423. // this.insuredPersonInfo.provinceData = [];
  12424. // // this.selectedOptions3 = [];
  12425. // }
  12426. // }
  12427. this.$forceUpdate();
  12428. },
  12429. bbtbcarShowChange() {
  12430. if (this.bbtbcarShow) {
  12431. this.bbczcarShow = false;
  12432. }
  12433. if (this.bbtbcarShow && !this.bbczcarShow) {
  12434. this.insuredPersonInfo = { ...this.policyHolderInfo };
  12435. this.bbczcarShow = false;
  12436. }
  12437. this.$forceUpdate();
  12438. },
  12439. // 清空被保人信息
  12440. clearBbxx() {
  12441. for (let key in this.insuredPersonInfo) {
  12442. this.insuredPersonInfo[key] = "";
  12443. this.insuredPersonInfo.provinceData = [];
  12444. }
  12445. },
  12446. // 查询车牌信息
  12447. toCheckLicenseNo(licenseNo) {
  12448. if (licenseNo) {
  12449. this.$api.letter
  12450. .licenseSearch({
  12451. licenseNo: licenseNo
  12452. })
  12453. .then(res => {
  12454. if (res.code == 200) {
  12455. {
  12456. this.carInfo.engineNo = res.data.engineNo;
  12457. this.carInfo.vinNo = res.data.vinNo;
  12458. this.carInfo.frameNo = res.data.vinNo;
  12459. this.carInfo.registerDate = res.data.registerDate;
  12460. this.$forceUpdate();
  12461. }
  12462. }
  12463. });
  12464. }
  12465. },
  12466. //VIN查询
  12467. toChooseVin(cartype) {
  12468. if (cartype == "" || cartype == null) {
  12469. this.$message({
  12470. message: "请输入车架号",
  12471. type: "warning"
  12472. });
  12473. } else {
  12474. const loading = this.$loading({
  12475. lock: true,
  12476. text: "Loading",
  12477. spinner: "el-icon-loading",
  12478. background: "rgba(0, 0, 0, 0.7)"
  12479. });
  12480. this.$api.letter.insZhongmeiVIN(this.carInfo.frameNo).then(res => {
  12481. if (res.code == "200") {
  12482. this.reslist = res.data;
  12483. loading.close();
  12484. this.sbdmdialogVisible = true;
  12485. } else {
  12486. loading.close();
  12487. this.$message.error(res.msg);
  12488. }
  12489. });
  12490. }
  12491. },
  12492. // 撤销二维码
  12493. revokeCode(id) {
  12494. this.$confirm("确定撤销二维码?", "提示", {
  12495. confirmButtonText: "确定",
  12496. cancelButtonText: "取消",
  12497. type: "warning"
  12498. })
  12499. .then(() => {
  12500. this.$api.letter.getRevokeQrCode(id).then(res => {
  12501. if (res.code == 200) {
  12502. this.$message({
  12503. message: res.msg,
  12504. type: "success"
  12505. });
  12506. this.QuotationHistory();
  12507. }
  12508. });
  12509. })
  12510. .catch(() => {
  12511. this.$message({
  12512. type: "info",
  12513. message: "已取消撤销二维码"
  12514. });
  12515. });
  12516. },
  12517. //品牌型号查询
  12518. toChooseVehicleType(cartype) {
  12519. if (cartype == "" || cartype == null) {
  12520. this.$message({
  12521. message: "请输入车型名称",
  12522. type: "warning"
  12523. });
  12524. } else {
  12525. const loading = this.$loading({
  12526. lock: true,
  12527. text: "Loading",
  12528. spinner: "el-icon-loading",
  12529. background: "rgba(0, 0, 0, 0.7)"
  12530. });
  12531. let param = {
  12532. modelName: cartype.replace(/[^u4e00-u9fa5|,]+/gi, "")
  12533. };
  12534. this.$api.letter.ModelsQuery(param).then(res => {
  12535. if (res.code == "200") {
  12536. loading.close();
  12537. this.reslist = res.data;
  12538. this.chexingdialogVisible = true;
  12539. } else {
  12540. loading.close();
  12541. this.$message.error(res.msg);
  12542. }
  12543. });
  12544. }
  12545. },
  12546. //车型列表双击选中事件
  12547. reslistCurrentChange(row, column, event) {
  12548. this.carInfo.importFlag=row.importFlag;//特种车标识
  12549. this.carInfo.brandName = row.brandCN; //品牌型号
  12550. this.carInfo.modelcname = row.modelName; //品牌型号
  12551. this.carInfo.caryear = row.marketYear; //年款
  12552. this.carInfo.seatCount = row.ratedPassengerCapacity; //座位数
  12553. this.carInfo.purchasePrice = row.replacementValue; //购置价
  12554. this.carInfo.modelCode = row.modelCode; //型号代码
  12555. this.carInfo.familyName = row.series; //系列
  12556. this.carInfo.enginedesc = row.displacement; //排量
  12557. this.carInfo.energyType =this.carInfo.licenseNo && this.carInfo.licenseNo.length==7? row.energyTypes:'1';//能源种类
  12558. this.carInfo.powerScale = row.powerScale; //功率
  12559. this.chexingdialogVisible = false;
  12560. this.sbdmdialogVisible = false;
  12561. },
  12562. //是否过户事件
  12563. transferFlagChange(e) {
  12564. if (e) {
  12565. this.transferDateShow = true;
  12566. this.carInfo.transferDate = this.carInfo.issueDate;
  12567. } else {
  12568. this.transferDateShow = false;
  12569. this.carInfo.transferDate = "";
  12570. }
  12571. },
  12572. //影像上传
  12573. drivingupload(file, imageIdList, imgurl, type) {
  12574. let that = this;
  12575. let size = file.size / 1024 / 1024 < 5;
  12576. const isJPG =
  12577. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  12578. if (!size) {
  12579. this.$message.error("上传图片大小不能超过 5MB!");
  12580. this[imgurl] = [];
  12581. return false;
  12582. }
  12583. if (!isJPG) {
  12584. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  12585. this[imgurl] = [];
  12586. return false;
  12587. }
  12588. this[imgurl].push(file);
  12589. var file = file.raw;
  12590. const params = new FormData(); // 声明formData数据类型
  12591. params.append("multipartFile", file);
  12592. params.append("type", "image");
  12593. this.$api.letter.uploadFile(params).then(res => {
  12594. if (res.code == "200") {
  12595. if (this[imageIdList].some(v => v.imageType == type)) {
  12596. this[imageIdList].map(val => {
  12597. if (val.imageType == type) {
  12598. val.imageId = res.data.id;
  12599. }
  12600. });
  12601. } else {
  12602. this[imageIdList].push({
  12603. imageId: res.data.id,
  12604. imageType: type
  12605. });
  12606. }
  12607. }
  12608. });
  12609. },
  12610. policydrivingupload(file, val) {
  12611. // this.policyNumberForm[val + 'List'] = []
  12612. switch (val) {
  12613. case "jqPolicy":
  12614. this.policyNumberForm.jqPolicyList = [];
  12615. break;
  12616. case "syPolicy":
  12617. this.policyNumberForm.syPolicyList = [];
  12618. break;
  12619. case "noPolicy":
  12620. this.policyNumberForm.noPolicyList = [];
  12621. break;
  12622. case "jqSign":
  12623. this.policyNumberForm.jqSignList = [];
  12624. break;
  12625. default:
  12626. break;
  12627. }
  12628. var file = file.raw;
  12629. const params = new FormData(); // 声明formData数据类型
  12630. params.append("multipartFile", file);
  12631. params.append("type", "file");
  12632. this.$api.letter.uploadFile(params).then(res => {
  12633. if (res.code == "200") {
  12634. res.data.name = res.data.fileName;
  12635. this.policyNumberForm[val + "List"].push(res.data);
  12636. }
  12637. });
  12638. },
  12639. handleRemove1(file, imageIdList, imgList) {
  12640. this[imageIdList].map((ele, index) => {
  12641. if (file.imageId === ele.imageId) {
  12642. this[imageIdList].splice(index, 1);
  12643. }
  12644. return ele;
  12645. });
  12646. if (file.imageId) {
  12647. this[imgList].map((ele, index) => {
  12648. if (file.imageId === ele.imageId) {
  12649. this[imgList].splice(index, 1);
  12650. }
  12651. return ele;
  12652. });
  12653. } else {
  12654. this[imgList].map((ele, index) => {
  12655. if (file.uid === ele.uid) {
  12656. this[imgList].splice(index, 1);
  12657. }
  12658. return ele;
  12659. });
  12660. }
  12661. },
  12662. compress(img, width, height, ratio) {
  12663. var canvas, ctx, img64;
  12664. canvas = document.createElement("canvas");
  12665. canvas.width = width;
  12666. canvas.height = height;
  12667. ctx = canvas.getContext("2d");
  12668. ctx.drawImage(img, 0, 0, width, height);
  12669. img64 = canvas.toDataURL("image/jpeg", ratio);
  12670. return img64;
  12671. },
  12672. base64ToFile(base64, fileName) {
  12673. let data = base64.split(",");
  12674. let type = data[0].match(/:(.*?);/)[1]; // let suffix = type.split('/')[1];
  12675. const bstr = window.atob(data[1]);
  12676. let n = bstr.length;
  12677. const u8arr = new Uint8Array(n);
  12678. while (n--) {
  12679. u8arr[n] = bstr.charCodeAt(n);
  12680. } // const file =  new File([u8arr], `${fileName}.${suffix}`, {
  12681. const file = new File([u8arr], `${fileName}`, {
  12682. type: type
  12683. });
  12684. return file;
  12685. },
  12686. carfrontChange(file) {
  12687. //选择行驶证正面
  12688. let that = this;
  12689. let size = file.size / 1024 / 1024 < 5;
  12690. const isJPG =
  12691. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  12692. if (!size) {
  12693. this.$message.error("上传图片大小不能超过 5MB!");
  12694. return false;
  12695. }
  12696. if (!isJPG) {
  12697. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  12698. return false;
  12699. }
  12700. // let name=file.raw.name
  12701. //       var image = new Image();
  12702. //       image.src = window.URL.createObjectURL(file.raw);
  12703. //       that.carfrontImg =  image.src
  12704. //       image.onload = function(){
  12705. //         let aaa= that.base64ToFile(that.compress(image, 500, 400, 0.7),name)
  12706. // that.carfrontImg = image.src;
  12707. // const params = new FormData(); // 声明formData数据类型
  12708. // params.append("multipartFile", aaa);
  12709. // params.append("type", "image");
  12710. // that.$api.letter.uploadFile(params).then(res => {
  12711. // if (res.code == "200") {
  12712. // that.CarFrontFile = aaa;//文件流
  12713. // if (that.imageList1.some(v => v.imageType == 'C01')) {
  12714. // that.imageList1.map(val => {
  12715. // if (val.imageType == 'C01') {
  12716. // val.imageId = res.data.id;
  12717. // }
  12718. // })
  12719. // } else {
  12720. // that.imageList1.push({
  12721. // imageId: res.data.id,
  12722. // imageType: "C01",
  12723. // })
  12724. // }
  12725. // } else {
  12726. // that.$message({ message: res.msg, type: "warning" });
  12727. // }
  12728. // });
  12729. // }
  12730. var file = file.raw;
  12731. let files = window.URL.createObjectURL(file); //转临时路径
  12732. this.carfrontImg = files;
  12733. const params = new FormData(); // 声明formData数据类型
  12734. params.append("multipartFile", file);
  12735. params.append("type", "image");
  12736. this.$api.letter.uploadFile(params).then(res => {
  12737. if (res.code == "200") {
  12738. this.CarFrontFile = file; //文件流
  12739. if (this.imageList1.some(v => v.imageType == "C01")) {
  12740. this.imageList1.map(val => {
  12741. if (val.imageType == "C01") {
  12742. val.imageId = res.data.id;
  12743. }
  12744. });
  12745. } else {
  12746. this.imageList1.push({
  12747. imageId: res.data.id,
  12748. imageType: "C01"
  12749. });
  12750. }
  12751. } else {
  12752. this.$message({ message: res.msg, type: "warning" });
  12753. }
  12754. });
  12755. },
  12756. carbackChange(file) {
  12757. let that = this;
  12758. let size = file.size / 1024 / 1024 < 2;
  12759. const isJPG =
  12760. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  12761. if (!size) {
  12762. this.$message.error("上传图片大小不能超过 5MB!");
  12763. return false;
  12764. }
  12765. if (!isJPG) {
  12766. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  12767. return false;
  12768. }
  12769. // let name=file.raw.name
  12770. //       var image = new Image();
  12771. //       image.src = window.URL.createObjectURL(file.raw);
  12772. //       image.onload = function(){
  12773. //         let aaa= that.base64ToFile(that.compress(image, 500, 400, 0.7),name)
  12774. // that.carbackImg = image.src;
  12775. // const params = new FormData(); // 声明formData数据类型
  12776. // params.append("multipartFile", aaa);
  12777. // params.append("type", "image");
  12778. // that.$api.letter.uploadFile(params).then(res => {
  12779. // if (res.code == "200") {
  12780. // that.CarBackFile = aaa;//文件流
  12781. // if (that.imageList1.some(v => v.imageType == 'D01')) {
  12782. // that.imageList1.map(val => {
  12783. // if (val.imageType == 'D01') {
  12784. // val.imageId = res.data.id;
  12785. // }
  12786. // })
  12787. // } else {
  12788. // that.imageList1.push({
  12789. // imageId: res.data.id,
  12790. // imageType: "D01",
  12791. // })
  12792. // }
  12793. // } else {
  12794. // that.$message({ message: res.msg, type: "warning" });
  12795. // }
  12796. // });
  12797. // }
  12798. //选择行驶证反面
  12799. var file = file.raw;
  12800. let files = window.URL.createObjectURL(file); //转临时路径
  12801. this.carbackImg = files;
  12802. const params = new FormData(); // 声明formData数据类型
  12803. params.append("multipartFile", file);
  12804. params.append("type", "image");
  12805. this.$api.letter.uploadFile(params).then(res => {
  12806. if (res.code == "200") {
  12807. this.CarBackFile = file;
  12808. if (this.imageList1.some(v => v.imageType == "D01")) {
  12809. this.imageList1.map(val => {
  12810. if (val.imageType == "D01") {
  12811. val.imageId = res.data.id;
  12812. }
  12813. });
  12814. } else {
  12815. this.imageList1.push({
  12816. imageId: res.data.id,
  12817. imageType: "D01"
  12818. });
  12819. }
  12820. } else {
  12821. this.$message({ message: res.msg, type: "warning" });
  12822. }
  12823. });
  12824. },
  12825. userfrontChange(file) {
  12826. let that = this;
  12827. let size = file.size / 1024 / 1024 < 5;
  12828. const isJPG =
  12829. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  12830. if (!size) {
  12831. this.$message.error("上传图片大小不能超过 5MB!");
  12832. return false;
  12833. }
  12834. if (!isJPG) {
  12835. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  12836. return false;
  12837. }
  12838. // let name=file.raw.name
  12839. //       var image = new Image();
  12840. //       image.src = window.URL.createObjectURL(file.raw);
  12841. //       image.onload = function(){
  12842. //         let aaa= that.base64ToFile(that.compress(image, 500, 400, 0.7),name)
  12843. // that.userfrontImg = image.src;
  12844. // const params = new FormData(); // 声明formData数据类型
  12845. // params.append("multipartFile", aaa);
  12846. // params.append("type", "image");
  12847. // that.$api.letter.uploadFile(params).then(res => {
  12848. // if (res.code == "200") {
  12849. // let type = 'C0' + that.userIndex;
  12850. // if (that['imageList' + that.userIndex].some(v => v.imageType == type)) {
  12851. // that['imageList' + that.userIndex].map(val => {
  12852. // if (val.imageType == type) {
  12853. // val.imageId = res.data.id;
  12854. // }
  12855. // })
  12856. // } else {
  12857. // that['imageList' + that.userIndex].push({
  12858. // imageId: res.data.id,
  12859. // imageType: type,
  12860. // })
  12861. // }
  12862. // that[type + 'File'] = aaa;
  12863. // } else {
  12864. // that.$message({ message: res.msg, type: "warning" });
  12865. // }
  12866. // });
  12867. // }
  12868. //选择身份证正面
  12869. var file = file.raw;
  12870. let files = window.URL.createObjectURL(file); //转链接
  12871. this.userfrontImg = files;
  12872. const params = new FormData(); // 声明formData数据类型
  12873. params.append("multipartFile", file);
  12874. params.append("type", "image");
  12875. this.$api.letter.uploadFile(params).then(res => {
  12876. if (res.code == "200") {
  12877. let type = "C0" + this.userIndex;
  12878. if (
  12879. this["imageList" + this.userIndex].some(v => v.imageType == type)
  12880. ) {
  12881. this["imageList" + this.userIndex].map(val => {
  12882. if (val.imageType == type) {
  12883. val.imageId = res.data.id;
  12884. }
  12885. });
  12886. } else {
  12887. this["imageList" + this.userIndex].push({
  12888. imageId: res.data.id,
  12889. imageType: type
  12890. });
  12891. }
  12892. this[type + "File"] = file;
  12893. } else {
  12894. this.$message({ message: res.msg, type: "warning" });
  12895. }
  12896. });
  12897. },
  12898. userbackChange(file) {
  12899. let that = this;
  12900. let size = file.size / 1024 / 1024 < 5;
  12901. const isJPG =
  12902. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  12903. if (!size) {
  12904. this.$message.error("上传图片大小不能超过 5MB!");
  12905. return false;
  12906. }
  12907. if (!isJPG) {
  12908. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  12909. return false;
  12910. }
  12911. // let name=file.raw.name
  12912. //       var image = new Image();
  12913. //       image.src = window.URL.createObjectURL(file.raw);
  12914. //       image.onload = function(){
  12915. //         let aaa= that.base64ToFile(that.compress(image, 500, 400, 0.7),name)
  12916. // that.userbackImg = image.src;
  12917. // const params = new FormData(); // 声明formData数据类型
  12918. // params.append("multipartFile", aaa);
  12919. // params.append("type", "image");
  12920. // that.$api.letter.uploadFile(params).then(res => {
  12921. // if (res.code == "200") {
  12922. // let type = 'D0' + that.userIndex;
  12923. // if (that['imageList' + that.userIndex].some(v => v.imageType == type)) {
  12924. // that['imageList' + that.userIndex].map(val => {
  12925. // if (val.imageType == type) {
  12926. // val.imageId = res.data.id;
  12927. // }
  12928. // })
  12929. // } else {
  12930. // that['imageList' + that.userIndex].push({
  12931. // imageId: res.data.id,
  12932. // imageType: type,
  12933. // })
  12934. // }
  12935. // that[type + 'File'] = aaa;
  12936. // } else {
  12937. // that.$message({ message: res.msg, type: "warning" });
  12938. // }
  12939. // });
  12940. // }
  12941. //选择身份证背面
  12942. var file = file.raw;
  12943. let files = window.URL.createObjectURL(file); //转链接
  12944. this.userbackImg = files;
  12945. const params = new FormData(); // 声明formData数据类型
  12946. params.append("multipartFile", file);
  12947. params.append("type", "image");
  12948. this.$api.letter.uploadFile(params).then(res => {
  12949. if (res.code == "200") {
  12950. let type = "D0" + this.userIndex;
  12951. if (
  12952. this["imageList" + this.userIndex].some(v => v.imageType == type)
  12953. ) {
  12954. this["imageList" + this.userIndex].map(val => {
  12955. if (val.imageType == type) {
  12956. val.imageId = res.data.id;
  12957. }
  12958. });
  12959. } else {
  12960. this["imageList" + this.userIndex].push({
  12961. imageId: res.data.id,
  12962. imageType: type
  12963. });
  12964. }
  12965. this[type + "File"] = file;
  12966. } else {
  12967. this.$message({ message: res.msg, type: "warning" });
  12968. }
  12969. });
  12970. },
  12971. businessChange(file) {
  12972. let size = file.size / 1024 / 1024 < 5;
  12973. const isJPG =
  12974. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  12975. if (!size) {
  12976. this.$message.error("上传图片大小不能超过 5MB!");
  12977. return false;
  12978. }
  12979. if (!isJPG) {
  12980. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  12981. return false;
  12982. }
  12983. var file = file.raw;
  12984. let files = window.URL.createObjectURL(file); //转链接
  12985. this.businessImg = files;
  12986. const params = new FormData(); // 声明formData数据类型
  12987. params.append("multipartFile", file);
  12988. params.append("type", "image");
  12989. this.$api.letter.uploadFile(params).then(res => {
  12990. if (res.code == "200") {
  12991. let type = "Y0" + this.userIndex;
  12992. if (
  12993. this["imageList" + this.userIndex].some(v => v.imageType == type)
  12994. ) {
  12995. this["imageList" + this.userIndex].map(val => {
  12996. if (val.imageType == type) {
  12997. val.imageId = res.data.id;
  12998. }
  12999. });
  13000. } else {
  13001. this["imageList" + this.userIndex].push({
  13002. imageId: res.data.id,
  13003. imageType: type
  13004. });
  13005. }
  13006. this[type + "File"] = file;
  13007. } else {
  13008. this.$message({ message: res.msg, type: "warning" });
  13009. }
  13010. });
  13011. },
  13012. CarOCRdiscern() {
  13013. // if (!this.CarFrontFile || !this.CarBackFile) {
  13014. // this.$message.warning('请上传行驶证主页和副页')
  13015. // return
  13016. // }
  13017. //car识别
  13018. const loading = this.$loading({
  13019. lock: true,
  13020. text: "Loading",
  13021. spinner: "el-icon-loading",
  13022. background: "rgba(0, 0, 0, 0.7)"
  13023. });
  13024. const params = new FormData(); // 声明formData数据类型
  13025. params.append("image1", this.CarFrontFile);
  13026. params.append("image2", this.CarBackFile);
  13027. this.$api.letter.drivingPermit(params).then(res => {
  13028. loading.close();
  13029. if (res.msg == "201") {
  13030. this.$message({ message: "请正确选择驾驶证", type: "warning" });
  13031. }
  13032. var carInfo = res.data.carInfo;
  13033. if (carInfo.issueDate) {
  13034. carInfo.issueDate =
  13035. carInfo.issueDate.substring(0, 4) +
  13036. "-" +
  13037. carInfo.issueDate.substring(4, 6) +
  13038. "-" +
  13039. carInfo.issueDate.substring(6, 8);
  13040. }
  13041. if (carInfo.registerDate) {
  13042. carInfo.registerDate =
  13043. carInfo.registerDate.substring(0, 4) +
  13044. "-" +
  13045. carInfo.registerDate.substring(4, 6) +
  13046. "-" +
  13047. carInfo.registerDate.substring(6, 8);
  13048. }
  13049. this.carform.carOwner = carInfo.carOwner; //车主
  13050. this.carform.licenseNo = carInfo.plateNo; //车牌号
  13051. this.carform.modelcname = carInfo.backOcrID; //品牌型号
  13052. this.carform.frameNo = carInfo.vin; //车架号
  13053. this.carform.engineNo = carInfo.engine; //发动机号
  13054. this.carform.registerDate = carInfo.registerDate; //车牌号
  13055. this.carform.issueDate = carInfo.issueDate; //车牌号
  13056. this.carform.grossMass = carInfo.grossMass; //总质量
  13057. this.carform.unladenMass = carInfo.unladenMass; //整备质量
  13058. this.carform.limitLoad = carInfo.limitLoad; //核定载质量
  13059. this.carform.category = carInfo.category; //车辆类型
  13060. this.carform.carnature = carInfo.useNature; //使用性质
  13061. this.carform.vehicleUse = carInfo.vehicleUse; //车辆用途
  13062. this.carform.plateType = carInfo.plateType; //车辆种类
  13063. this.carform.approvedPassengersCapacity =
  13064. carInfo.approvedPassengersCapacity; //核定载客数
  13065. });
  13066. },
  13067. CarOCRconfirm() {
  13068. //传参 carnature
  13069. this.ownerInfo.name = this.carform.carOwner; //车主
  13070. this.carInfo.cartype = "K33";
  13071. this.carInfo.licenseNo = this.carform.licenseNo; //车牌号
  13072. this.carInfo.modelcname = this.carform.modelcname; //品牌型号
  13073. this.carInfo.vinNo = this.carform.frameNo; //车架号
  13074. this.carInfo.frameNo = this.carform.frameNo; //车架号
  13075. this.carInfo.engineNo = this.carform.engineNo; //发动机号
  13076. this.carInfo.seatCount = this.carform.approvedPassengersCapacity; //核定载客数
  13077. this.carInfo.vehicleweight = this.carform.grossMass; //总质量
  13078. this.carInfo.completeKerbMass = this.carform.unladenMass; //整备质量
  13079. this.carInfo.limitLoad = this.carform.limitLoad; //核定载质量
  13080. this.carInfo.cartype = this.carform.category; //车辆类型
  13081. this.carInfo.carnature = this.carform.carnature
  13082. ? this.carform.carnature
  13083. : "02"; //使用性质
  13084. this.carInfo.vehicleUse = this.carform.vehicleUse
  13085. ? this.carform.vehicleUse
  13086. : "05"; //车辆用途
  13087. this.carInfo.cimodelclass = this.carform.plateType; //车辆种类
  13088. if (this.timeformat(this.carform.registerDate) != "NaN-NaN-NaN") {
  13089. this.carInfo.registerDate = this.carform.registerDate; //车牌号
  13090. }
  13091. if (this.timeformat(this.carform.issueDate) != "NaN-NaN-NaN") {
  13092. this.carInfo.issueDate = this.carform.issueDate; //车牌号
  13093. }
  13094. if (this.carform.registerDate.length < 10) {
  13095. this.$message.warning("检查注册日期");
  13096. return;
  13097. }
  13098. if (this.carform.issueDate.length < 10) {
  13099. this.$message.warning("检查发证日期");
  13100. return;
  13101. }
  13102. this.uploadcardialogVisible = false;
  13103. },
  13104. handleRemove(e) {
  13105. //删除图片
  13106. this[e] = "";
  13107. switch (this.userIndex) {
  13108. case 0:
  13109. this.carfrontImg = "";
  13110. this.carbackImg = "";
  13111. this.CarFrontFile = ""; // 行驶证正面base64
  13112. this.CarBackFile = ""; // 行驶证背面base64
  13113. break;
  13114. case 2:
  13115. this.userfrontImg = "";
  13116. this.userbackImg = "";
  13117. this.businessImg = "";
  13118. this.C02File = ""; // 车主正面base64
  13119. this.D02File = ""; // 车主背面base64
  13120. this.Y02File = ""; // 车主营业执照
  13121. break;
  13122. case 3:
  13123. this.userfrontImg = "";
  13124. this.userbackImg = "";
  13125. this.businessImg = "";
  13126. this.C03File = ""; // 投保人正面base64
  13127. this.D03File = ""; // 投保人背面base64
  13128. this.Y03File = ""; // 投保人营业执照
  13129. break;
  13130. case 4:
  13131. this.userfrontImg = "";
  13132. this.userbackImg = "";
  13133. this.businessImg = "";
  13134. this.C04File = ""; // 被保人正面base64
  13135. this.D04File = ""; // 被保人背面base64
  13136. this.Y04File = ""; // 被保人营业执照
  13137. break;
  13138. default:
  13139. }
  13140. },
  13141. //预览图片
  13142. handlePictureCardPreview(img) {
  13143. this.ProViewImg = img;
  13144. this.showViewer = true;
  13145. },
  13146. // 关闭查看器
  13147. closeViewer() {
  13148. this.showViewer = false;
  13149. },
  13150. uploaduser(index) {
  13151. this.userIndex = index;
  13152. this.uploaduserdialogVisible = true;
  13153. },
  13154. userOCRdiscern() {
  13155. //OCR识别
  13156. if (this.activeName == "1") {
  13157. switch (this.userIndex) {
  13158. case 2:
  13159. // if (!this.C02File || !this.D02File) {
  13160. // this.$message.warning('请上传照片')
  13161. // return
  13162. // }
  13163. const params1 = new FormData(); // 声明formData数据类型
  13164. params1.append("image1", this.C02File);
  13165. params1.append("image2", this.D02File);
  13166. this.userOCRjoggle(params1);
  13167. break;
  13168. case 3:
  13169. // if (!this.C03File || !this.D03File) {
  13170. // this.$message.warning('请上传照片')
  13171. // return
  13172. // }
  13173. const params2 = new FormData(); // 声明formData数据类型
  13174. params2.append("image1", this.C03File);
  13175. params2.append("image2", this.D03File);
  13176. this.userOCRjoggle(params2);
  13177. break;
  13178. case 4:
  13179. // if (!this.C04File || !this.D04File) {
  13180. // this.$message.warning('请上传照片')
  13181. // return
  13182. // }
  13183. const params3 = new FormData(); // 声明formData数据类型
  13184. params3.append("image1", this.C04File);
  13185. params3.append("image2", this.D04File);
  13186. this.userOCRjoggle(params3);
  13187. break;
  13188. default:
  13189. }
  13190. } else {
  13191. switch (this.userIndex) {
  13192. case 2:
  13193. const params1 = new FormData(); // 声明formData数据类型
  13194. params1.append("image1", this.Y02File);
  13195. this.businessjoggle(params1);
  13196. break;
  13197. case 3:
  13198. const params2 = new FormData(); // 声明formData数据类型
  13199. params2.append("image1", this.Y03File);
  13200. this.businessjoggle(params2);
  13201. break;
  13202. case 4:
  13203. const params3 = new FormData(); // 声明formData数据类型
  13204. params3.append("image1", this.Y04File);
  13205. this.businessjoggle(params3);
  13206. break;
  13207. default:
  13208. }
  13209. }
  13210. },
  13211. businessjoggle(param) {
  13212. const loading = this.$loading({
  13213. lock: true,
  13214. text: "Loading",
  13215. spinner: "el-icon-loading",
  13216. background: "rgba(0, 0, 0, 0.7)"
  13217. });
  13218. this.$api.letter.businessLicense(param).then(res => {
  13219. loading.close();
  13220. if (res.msg == "201") {
  13221. this.$message({ message: "请正确选择营业执照", type: "warning" });
  13222. }
  13223. if (res.code == 200 && res.data) {
  13224. if (res.data) {
  13225. this.businessform = {
  13226. ...res.data,
  13227. name: res.data.company,
  13228. organizationCode: res.data.socialCreditCode,
  13229. addr: res.data.address,
  13230. identifyType: "10",
  13231. scope: res.data.businessScope,
  13232. legalPerson: res.data.legalRepresentative,
  13233. registeredCapital: parseInt(res.data.registeredCapital)
  13234. };
  13235. }
  13236. }
  13237. });
  13238. },
  13239. userOCRjoggle(param) {
  13240. const loading = this.$loading({
  13241. lock: true,
  13242. text: "Loading",
  13243. spinner: "el-icon-loading",
  13244. background: "rgba(0, 0, 0, 0.7)"
  13245. });
  13246. this.$api.letter.idCard(param).then(res => {
  13247. loading.close();
  13248. if (res.msg == "201") {
  13249. this.$message({ message: "请正确选择身份证", type: "warning" });
  13250. }
  13251. var customerInfo = res.data.customerInfo;
  13252. if (customerInfo) {
  13253. this.ownerInfoform.name = customerInfo.name;
  13254. if (customerInfo.identifyType == "01") {
  13255. this.ownerInfoform.identifyType = "身份证";
  13256. } else {
  13257. this.ownerInfoform.identifyType = "";
  13258. }
  13259. this.ownerInfoform.identifyNumber = customerInfo.identifyNumber;
  13260. this.ownerInfoform.gender = customerInfo.identifyIssuedCom;
  13261. this.ownerInfoform.addr = customerInfo.addr;
  13262. if (customerInfo.identifyNumber) {
  13263. this.ownerInfoform.age = getAgeByIdCard(
  13264. customerInfo.identifyNumber
  13265. );
  13266. }
  13267. if (
  13268. customerInfo.identifyValidDate ||
  13269. customerInfo.identifyValidEndDate
  13270. ) {
  13271. this.ownerInfoform.identifyValidDate =
  13272. customerInfo.identifyValidDate.substring(0, 4) +
  13273. "-" +
  13274. customerInfo.identifyValidDate.substring(4, 6) +
  13275. "-" +
  13276. customerInfo.identifyValidDate.substring(6, 8);
  13277. this.ownerInfoform.identifyValidEndDate =
  13278. customerInfo.identifyValidEndDate.substring(0, 4) +
  13279. "-" +
  13280. customerInfo.identifyValidEndDate.substring(4, 6) +
  13281. "-" +
  13282. customerInfo.identifyValidEndDate.substring(6, 8);
  13283. if (customerInfo.identifyValidEndDate == "长期") {
  13284. this.ownerInfoform.identifyValidEndDate = "9999-12-31";
  13285. }
  13286. }
  13287. // let values = addressCode(this.ownerInfoform.addr);
  13288. // this.ownerInfoform.province = codeToText[values[0]]
  13289. // this.ownerInfoform.city = codeToText[values[1]]
  13290. // this.ownerInfoform.county = codeToText[values[2]]
  13291. }
  13292. });
  13293. },
  13294. userOCRconfirm() {
  13295. //传参
  13296. if (this.activeName == "1") {
  13297. this.ownerInfoform.property = "1";
  13298. switch (this.userIndex) {
  13299. case 2:
  13300. // this.selectedOptions1 = addressCode(this.ownerInfoform.addr);
  13301. this.ownerInfo = JSON.parse(JSON.stringify(this.ownerInfoform));
  13302. break;
  13303. case 3:
  13304. // this.selectedOptions2 = addressCode(this.ownerInfoform.addr);
  13305. this.policyHolderInfo = JSON.parse(
  13306. JSON.stringify(this.ownerInfoform)
  13307. );
  13308. break;
  13309. case 4:
  13310. // this.selectedOptions3 = addressCode(this.ownerInfoform.addr);
  13311. this.insuredPersonInfo = JSON.parse(
  13312. JSON.stringify(this.ownerInfoform)
  13313. );
  13314. break;
  13315. }
  13316. } else {
  13317. this.businessform.property = "0";
  13318. switch (this.userIndex) {
  13319. case 2:
  13320. this.ownerInfo = { ...this.ownerInfo, ...this.businessform };
  13321. break;
  13322. case 3:
  13323. this.policyHolderInfo = {
  13324. ...this.policyHolderInfo,
  13325. ...this.businessform
  13326. };
  13327. break;
  13328. case 4:
  13329. this.insuredPersonInfo = {
  13330. ...this.insuredPersonInfo,
  13331. ...this.businessform
  13332. };
  13333. break;
  13334. }
  13335. }
  13336. this.uploaduserdialogVisible = false;
  13337. },
  13338. closeDialog(index) {
  13339. // 0:车辆 1:车主 2:投保人 3:被保人
  13340. switch (index) {
  13341. case 0:
  13342. this.carfrontImg = "";
  13343. this.carbackImg = "";
  13344. this.CarFrontFile = ""; // 行驶证正面base64
  13345. this.CarBackFile = ""; // 行驶证背面base64
  13346. Object.keys(this.carform).forEach(key => {
  13347. this.carform[key] = "";
  13348. });
  13349. break;
  13350. case 2:
  13351. this.userfrontImg = "";
  13352. this.userbackImg = "";
  13353. this.businessImg = "";
  13354. this.Y02File = ""; // 营业执照
  13355. this.C02File = ""; // 车主正面base64
  13356. this.D02File = ""; // 车主背面base64
  13357. Object.keys(this.ownerInfoform).forEach(key => {
  13358. this.ownerInfoform[key] = "";
  13359. });
  13360. Object.keys(this.businessform).forEach(key => {
  13361. this.businessform[key] = "";
  13362. });
  13363. break;
  13364. case 3:
  13365. this.userfrontImg = "";
  13366. this.userbackImg = "";
  13367. this.businessImg = "";
  13368. this.Y03File = ""; // 营业执照
  13369. this.C03File = ""; // 投保人正面base64
  13370. this.D03File = ""; // 投保人背面base64
  13371. Object.keys(this.ownerInfoform).forEach(key => {
  13372. this.ownerInfoform[key] = "";
  13373. });
  13374. Object.keys(this.businessform).forEach(key => {
  13375. this.businessform[key] = "";
  13376. });
  13377. break;
  13378. case 4:
  13379. this.userfrontImg = "";
  13380. this.userbackImg = "";
  13381. this.businessImg = "";
  13382. this.Y04File = ""; // 营业执照
  13383. this.C04File = ""; // 被保人正面base64
  13384. this.D04File = ""; // 被保人背面base64
  13385. Object.keys(this.ownerInfoform).forEach(key => {
  13386. this.ownerInfoform[key] = "";
  13387. });
  13388. Object.keys(this.businessform).forEach(key => {
  13389. this.businessform[key] = "";
  13390. });
  13391. break;
  13392. default:
  13393. }
  13394. },
  13395. bjdpreview(id) {
  13396. let params = {
  13397. companyId: id
  13398. };
  13399. this.$api.letter.getByCompanyId(params).then(res => {
  13400. if (res.code == "200") {
  13401. var data = res.data;
  13402. if (data.kindinfo != null) {
  13403. data.kindinfo.map((ele, index) => {
  13404. switch (ele.kindCode) {
  13405. case "A":
  13406. if (ele.amount == 1) {
  13407. ele.amount = "投保";
  13408. } else {
  13409. ele.amount = ele.amount;
  13410. }
  13411. break;
  13412. case "D4":
  13413. case "SY_FJ_YBW2":
  13414. ele.unitAmount = this.toChinesNum(ele.unitAmount);
  13415. break;
  13416. case "MJ1":
  13417. case "MJ2":
  13418. case "MJ3":
  13419. case "MJ4":
  13420. ele.deductibleRate = ele.deductibleRate + "%";
  13421. break;
  13422. default:
  13423. ele.amount = this.toChinesNum(ele.amount);
  13424. }
  13425. return ele;
  13426. });
  13427. }
  13428. data.logoImg = this.iconfftter(res.data.inscompany);
  13429. this.queryOrders = data;
  13430. this.$api.letter.getThemeByUserId(this.userId).then(res => {
  13431. if (res.code == 200) {
  13432. if (res.data[0] == "GD") {
  13433. this.$refs.quotationDialogPro.setBackupVisible(true);
  13434. } else {
  13435. this.$refs.quotationDialog.setBackupVisible(true);
  13436. }
  13437. }
  13438. });
  13439. // if (
  13440. // this.$store.state.user.roles.managementSource &&
  13441. // this.$store.state.user.roles.managementSource == "3"
  13442. // ) {
  13443. // this.$refs.quotationDialogPro.setBackupVisible(true);
  13444. // } else {
  13445. // this.$refs.quotationDialog.setBackupVisible(true);
  13446. // }
  13447. }
  13448. });
  13449. },
  13450. //返回上一步
  13451. Back() { },
  13452. carcode(id, item) {
  13453. this.$api.letter.getQrCode(id).then(res => {
  13454. if (res.code == "200") {
  13455. this.inscompany = res.data.inscompany; //保险公司
  13456. this.sumpremium = res.data.sumpremium; //总价
  13457. this.licenseNo = res.data.cPlateNo; //车牌号
  13458. this.applyName = res.data.cApplyNme; //车主
  13459. this.jqpremium = res.data.jqpremium; //交强
  13460. this.sypremium = res.data.sypremium; //商业
  13461. this.taxamount = res.data.taxamount; //车船税
  13462. this.jypremium = res.data.jypremium; //驾意险
  13463. this.jqstartdate = res.data.jqStartDate; //交强起保日期
  13464. this.systartdate = res.data.syStartDate; //商业起保日期
  13465. // this.mobile = res.data.applyinfo.mobile;//投保人手机号
  13466. let qrCodeUrl = res.data.qrCodeUrl;
  13467. this.$api.letter.getThemeByUserId(this.userId).then(res => {
  13468. if (res.code == 200) {
  13469. if (res.data[0] == "GD") {
  13470. this.codedialogVisiblePro = true;
  13471. this.qrcodeWidth = "154";
  13472. this.qrcodeHeight = "154";
  13473. } else {
  13474. this.codedialogVisible = true;
  13475. }
  13476. this.$nextTick(function () {
  13477. this.creatQrCode(qrCodeUrl);
  13478. });
  13479. }
  13480. });
  13481. } else {
  13482. this.$message({ message: res.msg, type: "warning" });
  13483. }
  13484. });
  13485. },
  13486. //同步
  13487. synchronization() {
  13488. this.systartDate = this.jqstartDate;
  13489. this.syendDate = this.jqendDate;
  13490. },
  13491. add() {
  13492. // this.obtainProtocol();
  13493. if (this.isLetter == "1") {
  13494. this.$router.push({ path: "/letter/letter" });
  13495. }
  13496. for (let key in this.ownerInfo) {
  13497. this.ownerInfo[key] = "";
  13498. }
  13499. for (let key in this.policyHolderInfo) {
  13500. this.policyHolderInfo[key] = "";
  13501. }
  13502. for (let key in this.insuredPersonInfo) {
  13503. this.insuredPersonInfo[key] = "";
  13504. }
  13505. this.vehicleAndVesselTaxForm = {
  13506. taxRelifFlag: "1",
  13507. taxpayerIdentifier: "01"
  13508. };
  13509. // 清空保险公司列表
  13510. this.totalCompanyList = [];
  13511. this.ownerInfo.provinceData = [];
  13512. this.insuredPersonInfo.provinceData = [];
  13513. this.policyHolderInfo.provinceData = [];
  13514. this.carInfo = JSON.parse(localStorage.getItem("carInfo"));
  13515. this.insureList = JSON.parse(localStorage.getItem("insureList"));
  13516. this.sychecked = false;
  13517. this.yonganchecked = false;
  13518. this.zhongmeichecked = false;
  13519. this.transferDateShow = false;
  13520. this.tbczcarShow = true; //投保人同车主
  13521. // this.bbczcarShow = false, //被保人同车主
  13522. this.bbtbcarShow = true; //被保人同投保人
  13523. // this.$refs.imageDialog.emptyList()
  13524. this.imageList1 = [];
  13525. this.imageList2 = [];
  13526. this.imageList3 = [];
  13527. this.imageList4 = [];
  13528. this.imageList5 = [];
  13529. this.imageList6 = [];
  13530. this.imgList1 = [];
  13531. this.imgList2 = [];
  13532. this.imgList3 = [];
  13533. this.imgList4 = [];
  13534. this.imgList5 = [];
  13535. this.imgList6 = [];
  13536. this.imgList7 = [];
  13537. this.imgList8 = [];
  13538. this.imgList9 = [];
  13539. this.imgList10 = [];
  13540. this.imgList11 = [];
  13541. this.imgList12 = [];
  13542. this.imgList13 = [];
  13543. this.imgList14 = [];
  13544. this.imgList15 = [];
  13545. this.imgList16 = [];
  13546. this.imgList17 = [];
  13547. this.imgList18 = [];
  13548. this.imgList19 = [];
  13549. this.imgList20 = [];
  13550. this.imgList21 = [];
  13551. this.imgList22 = [];
  13552. this.imgList23 = [];
  13553. this.imgList24 = [];
  13554. this.imgList25 = [];
  13555. this.imgList26 = [];
  13556. this.imgList28 = [];
  13557. this.imgList27 = [];
  13558. // 清空保险公司选中的意外险
  13559. this.zijintemplateSelection = "";
  13560. this.zhongantemplateSelection = "";
  13561. this.hengbangtemplateSelection = "";
  13562. this.taipingyangtemplateSelection = "";
  13563. this.taipingtemplateSelection = "";
  13564. this.insuranceHN = "";
  13565. this.renshoutemplateSelection = "";
  13566. this.dajiatemplateSelection = "";
  13567. this.accidentForm = {
  13568. fen: "1",
  13569. premium: 0
  13570. };
  13571. this.accidentFormHN = {
  13572. allQuantity: "1",
  13573. quantity: "1"
  13574. };
  13575. this.productId = "";
  13576. this.hengbangaccidentalDrivingVo = {};
  13577. this.taipingyangaccidentalDrivingVo = {};
  13578. this.huanongaccidentalDrivingVo = {};
  13579. this.taipingaccidentalDrivingVo = {};
  13580. this.zhongmeiaccidentalDrivingVo = {};
  13581. this.accidentalDrivingVo = [];
  13582. this.zhonganaccidentalDrivingVo = {};
  13583. this.renshouaccidentalDrivingVo = {};
  13584. this.anshengaccidentalDrivingVo = {};
  13585. this.dajiaaccidentalDrivingVo = {};
  13586. this.selectedOptions1 = [];
  13587. this.selectedOptions2 = [];
  13588. this.selectedOptions3 = [];
  13589. this.orderno = "";
  13590. this.quoteno = "";
  13591. this.lastCompanyId = "";
  13592. this.HistoryList = [];
  13593. this.jqstartDate = this.transformTime1();
  13594. this.jqendDate = this.oneYearPast1(this.jqstartDate);
  13595. this.systartDate = this.transformTime1();
  13596. this.syendDate = this.oneYearPast1(this.jqstartDate);
  13597. this.policyNumberForm = {
  13598. jqpolicyno: "",
  13599. sypolicyno: "",
  13600. jypolicyno: "",
  13601. jqpremium: "",
  13602. sypremium: "",
  13603. jypremium: "",
  13604. taxamount: "",
  13605. commissionFeevalue: "",
  13606. otherFeevalue: "",
  13607. jqSuperviseCostsProportion: "",
  13608. sySuperviseCostsProportion: "",
  13609. noSuperviseCostsProportion: "",
  13610. jqOtherCostsProportion: "",
  13611. syOtherCostsProportion: "",
  13612. noOtherCostsProportion: "",
  13613. jqReceivableProportion: "",
  13614. syReceivableProportion: "",
  13615. noReceivableProportion: "",
  13616. jqPolicyList: [],
  13617. syPolicyList: [],
  13618. jqSignList: [],
  13619. noPolicyList: [],
  13620. noCostsProportion: "",
  13621. jqCostsProportion: "",
  13622. syCostsProportion: ""
  13623. };
  13624. },
  13625. toChinesNum(num) {
  13626. if (num.toString().length == 4) {
  13627. let overQian = Math.floor(num / 1000);
  13628. let result = overQian + "千";
  13629. return result;
  13630. } else {
  13631. let overWan = Math.floor(num / 10000);
  13632. let result = overWan + "万";
  13633. return result;
  13634. }
  13635. },
  13636. reportDrop(event) {
  13637. event.preventDefault();
  13638. event.stopPropagation();
  13639. },
  13640. tabLiScroll(id, idx) {
  13641. this.tabLiIndex = idx;
  13642. document.getElementById(id).scrollIntoView({ behavior: "smooth" });
  13643. },
  13644. handleScroll(id) {
  13645. document.getElementById(id).scrollIntoView({ behavior: "smooth" });
  13646. }
  13647. }
  13648. };
  13649. </script>
  13650. <style>
  13651. /* .customNotifyClass {
  13652. word-break: break-all;
  13653. width: 600px;
  13654. } */
  13655. </style>
  13656. <style lang="scss" scoped>
  13657. .el-row {
  13658. display: flex;
  13659. flex-wrap: wrap;
  13660. align-content: flex-start;
  13661. }
  13662. // .marginL {
  13663. // margin-left: 10px;
  13664. // }
  13665. .el-notification {
  13666. width: 600px;
  13667. }
  13668. .styleB .el-upload--picture-card {
  13669. // display: none;
  13670. opacity: 0;
  13671. }
  13672. .ORcodebody {
  13673. height: auto;
  13674. background-color: #fff;
  13675. //background: url(../../../assets/image/group.png) #fff;
  13676. padding: 16px;
  13677. }
  13678. .csstool {
  13679. font-weight: 600;
  13680. color: #606266;
  13681. font-size: 14px;
  13682. margin: 0 20px;
  13683. span {
  13684. margin-right: 5px;
  13685. }
  13686. }
  13687. .ORcode {
  13688. width: 100%;
  13689. height: auto;
  13690. display: flex;
  13691. justify-content: center;
  13692. align-items: center;
  13693. padding: 30px;
  13694. box-sizing: border-box;
  13695. &>div {
  13696. width: 176px;
  13697. height: 176px;
  13698. border: 1px solid var(--themeColor);
  13699. border-radius: 5px;
  13700. }
  13701. }
  13702. .ORtitle {
  13703. width: 100%;
  13704. padding-bottom: 20px;
  13705. box-sizing: border-box;
  13706. &>div {
  13707. width: 100%;
  13708. margin: 10px 0;
  13709. font-size: 14px;
  13710. &>span {
  13711. &:nth-child(1) {
  13712. color: #868b98;
  13713. text-align: end;
  13714. width: 150px;
  13715. }
  13716. &:nth-child(2) {
  13717. color: #333333;
  13718. }
  13719. }
  13720. }
  13721. }
  13722. .Risk {
  13723. width: 100%;
  13724. height: auto;
  13725. display: flex;
  13726. flex-direction: column;
  13727. align-items: center;
  13728. font-size: 12px;
  13729. }
  13730. .dis {
  13731. display: flex;
  13732. }
  13733. .align {
  13734. align-items: center;
  13735. }
  13736. .jus {
  13737. justify-content: space-between;
  13738. }
  13739. .shangyexian {
  13740. padding-left: 100px;
  13741. }
  13742. .headertotal {
  13743. padding: 30px;
  13744. }
  13745. .my-label {
  13746. background: #e1f3d8;
  13747. }
  13748. .my-content {
  13749. background: #fde2e2;
  13750. color: aqua;
  13751. }
  13752. .el-button--mini {
  13753. padding: 5px;
  13754. }
  13755. #qqq {
  13756. background-color: #111;
  13757. width: 300px;
  13758. height: 300px;
  13759. margin: 0 auto;
  13760. position: relative;
  13761. }
  13762. #qrCode {
  13763. display: inline-block;
  13764. margin: 0 auto;
  13765. position: relative;
  13766. top: 15%;
  13767. img {
  13768. width: 200px;
  13769. height: 200px;
  13770. background-color: #fff;
  13771. padding: 6px;
  13772. }
  13773. }
  13774. .code {
  13775. box-sizing: border-box;
  13776. display: flex;
  13777. flex-direction: column;
  13778. justify-content: space-between;
  13779. align-items: center;
  13780. &>span {
  13781. margin-bottom: 10px;
  13782. }
  13783. }
  13784. .code_name {
  13785. width: 350px;
  13786. display: flex;
  13787. justify-content: space-between;
  13788. align-items: center;
  13789. font-weight: bold;
  13790. &>span {
  13791. &:nth-child(1) {
  13792. color: #979797;
  13793. width: 120px;
  13794. text-align: right;
  13795. }
  13796. &:nth-child(2) {
  13797. color: #2d2d2d;
  13798. width: 120px;
  13799. text-align: left;
  13800. }
  13801. }
  13802. }
  13803. .header {
  13804. font-size: 18px;
  13805. font-weight: bold;
  13806. }
  13807. .body {
  13808. border-top: none;
  13809. padding-bottom: 100px;
  13810. box-sizing: border-box;
  13811. }
  13812. .u-f-ac {
  13813. -webkit-box-align: center;
  13814. align-items: center;
  13815. padding: 10px;
  13816. }
  13817. .bodyTitle {
  13818. height: 45px;
  13819. background: #f3f3f3;
  13820. border: 1px solid #dddddd;
  13821. line-height: 45px;
  13822. padding: 0 20px;
  13823. box-sizing: border-box;
  13824. }
  13825. .start {
  13826. justify-content: flex-start;
  13827. }
  13828. .end {
  13829. justify-content: flex-end;
  13830. }
  13831. .descriptions {
  13832. padding: 20px;
  13833. box-sizing: border-box;
  13834. display: flex;
  13835. flex-direction: column;
  13836. }
  13837. .bodys {
  13838. display: flex;
  13839. justify-content: space-between;
  13840. align-items: center;
  13841. flex-wrap: wrap;
  13842. }
  13843. .bodys1 {
  13844. display: flex;
  13845. justify-content: center;
  13846. align-items: center;
  13847. flex-wrap: wrap;
  13848. }
  13849. .widths {
  13850. width: 230px;
  13851. }
  13852. .widths1 {
  13853. width: 300px;
  13854. }
  13855. .back {
  13856. color: #333333;
  13857. // font-weight: 700;
  13858. }
  13859. .home {
  13860. // padding-left: 10px;
  13861. box-sizing: border-box;
  13862. padding-bottom: 10px;
  13863. border-bottom: 1px solid #eef1f6;
  13864. &>span {
  13865. margin-right: 10px;
  13866. }
  13867. }
  13868. .border-red {
  13869. border: 1px solid #ff0606;
  13870. }
  13871. .border-blue {
  13872. border: 1px solid #0634ff;
  13873. }
  13874. .hovers {
  13875. margin: 20px 0;
  13876. cursor: pointer;
  13877. padding: 10px 0;
  13878. box-sizing: border-box;
  13879. box-shadow: 0 2px 8px 0 rgba(231, 163, 36, 0.205);
  13880. border-radius: 8px;
  13881. .offer-time {
  13882. margin: 20px 0 0px 100px;
  13883. padding: 10px;
  13884. background: rgba(45, 77, 137, 0.06);
  13885. &>span {
  13886. margin: 0 10px;
  13887. }
  13888. }
  13889. }
  13890. /* 内容待定 */
  13891. .coll {
  13892. font-size: 14px;
  13893. }
  13894. .display {
  13895. display: flex;
  13896. justify-content: center;
  13897. align-items: center;
  13898. box-sizing: border-box;
  13899. }
  13900. .black {
  13901. color: #000;
  13902. }
  13903. .gray {
  13904. color: #999;
  13905. }
  13906. .OCR {
  13907. font-weight: bold;
  13908. color: #333;
  13909. margin: 20px;
  13910. }
  13911. .slot {
  13912. position: absolute;
  13913. width: 100%;
  13914. height: 100%;
  13915. left: 0;
  13916. top: 0;
  13917. cursor: default;
  13918. text-align: center;
  13919. color: #fff;
  13920. opacity: 0;
  13921. font-size: 20px;
  13922. background-color: rgba(0, 0, 0, 0.5);
  13923. transition: opacity 0.3s;
  13924. display: flex;
  13925. justify-content: center;
  13926. align-items: center;
  13927. &>i {
  13928. margin: 10px;
  13929. color: #fff;
  13930. font-size: 30px;
  13931. font-weight: bold;
  13932. cursor: pointer;
  13933. }
  13934. &:hover {
  13935. opacity: 1;
  13936. }
  13937. }
  13938. .companyhead {
  13939. width: 100%;
  13940. margin: 0 auto;
  13941. padding: 15px 10px;
  13942. color: #333;
  13943. font-weight: bold;
  13944. font-size: 14px;
  13945. background-color: rgba(0, 89, 255, 0.1);
  13946. }
  13947. .position-left {
  13948. width: calc(100% - 220px);
  13949. }
  13950. .position-collapse-left {
  13951. width: calc(100% - 80px);
  13952. }
  13953. .footer {
  13954. position: fixed;
  13955. bottom: 0;
  13956. right: 0;
  13957. background-color: #fff;
  13958. z-index: 9;
  13959. padding: 20px;
  13960. box-sizing: border-box;
  13961. box-shadow: 0 0 1px 0 #ccc;
  13962. transition: all 0.1s, box-shadow 0.5s;
  13963. &.shadow {
  13964. box-shadow: 0 -10px 10px -10px #ccc;
  13965. }
  13966. }
  13967. .Enclosure {
  13968. width: 100%;
  13969. background-color: #fff;
  13970. padding: 20px;
  13971. box-sizing: border-box;
  13972. margin-bottom: 15px;
  13973. border-radius: 6px;
  13974. border: 1px solid #ebeef5;
  13975. transition: all 0.2s ease-in-out;
  13976. box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
  13977. }
  13978. .Enclosure:hover {
  13979. box-shadow: 0 0 10px 0 #d42427;
  13980. }
  13981. .icon-img {
  13982. display: block;
  13983. width: 30px;
  13984. height: 30px;
  13985. }
  13986. .Anchor-link {
  13987. width: 40px;
  13988. background-color: #fff;
  13989. box-shadow: #ccc 0 0px 3px 0;
  13990. border-radius: 6px;
  13991. position: fixed;
  13992. top: 50%;
  13993. right: 0;
  13994. z-index: 99;
  13995. div {
  13996. margin: 5px;
  13997. border-bottom: 1px solid #f2f2f2;
  13998. cursor: pointer;
  13999. display: block;
  14000. }
  14001. }
  14002. .color {
  14003. padding-top: 150px;
  14004. margin-top: -150px;
  14005. }
  14006. .more {
  14007. width: 100%;
  14008. padding: 20px;
  14009. box-sizing: border-box;
  14010. }
  14011. .more-title {
  14012. padding: 15px 10px;
  14013. background-color: #f7f7f9;
  14014. // border-bottom: 1px solid #e3e3e3;
  14015. font-size: 14px;
  14016. }
  14017. .more-data {
  14018. padding: 10px;
  14019. border-bottom: 1px solid #f2f2f2;
  14020. color: #333;
  14021. font-size: 14px;
  14022. }
  14023. .Driving-risk {
  14024. padding-left: 100px;
  14025. // padding-top:20px
  14026. }
  14027. .checkbox {
  14028. transform: scale(1.2);
  14029. margin-right: 20px;
  14030. line-height: 32px;
  14031. }
  14032. .insure-long-term {
  14033. display: inline-flex;
  14034. padding-left: 8px;
  14035. padding-right: 8px;
  14036. background: var(--themeColor);
  14037. color: #fff;
  14038. font-size: 12px;
  14039. margin-left: -5px;
  14040. border-radius: 0px 5px 5px 0px;
  14041. cursor: pointer;
  14042. }
  14043. .textareaSty {
  14044. width: 160px;
  14045. height: 210px;
  14046. border: 1px solid #d2d2d2;
  14047. border-radius: 4px;
  14048. img {
  14049. width: 50px;
  14050. height: 50px;
  14051. }
  14052. }
  14053. .image-title {
  14054. width: 100px;
  14055. height: 30px;
  14056. color: #fff;
  14057. text-align: center;
  14058. line-height: 30px;
  14059. font-weight: bold;
  14060. margin-bottom: 15px;
  14061. background: #fc4a1a;
  14062. background: #f2994a;
  14063. /* fallback for old browsers */
  14064. background: -webkit-linear-gradient(to left, #f2c94c, #f2994a);
  14065. /* Chrome 10-25, Safari 5.1-6 */
  14066. background: linear-gradient(to left, #f2c94c, #f2994a);
  14067. /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
  14068. }
  14069. .aaa {
  14070. /deep/ {
  14071. margin-bottom: 20px;
  14072. margin-right: 30px;
  14073. span {
  14074. display: inline-block;
  14075. margin-bottom: 10px;
  14076. }
  14077. .el-upload .el-upload-dragger {
  14078. width: 180px;
  14079. height: 120px;
  14080. border: 1px dashed #c0ccda;
  14081. padding: 0;
  14082. }
  14083. .el-upload-list--picture-card .el-upload-list__item {
  14084. width: 180px;
  14085. height: 120px;
  14086. }
  14087. .el-upload-list__item:first-child {
  14088. margin-top: 0;
  14089. }
  14090. .el-upload--picture-card {
  14091. width: 180px;
  14092. height: 120px;
  14093. }
  14094. .el-upload-list__item {
  14095. width: 180px;
  14096. height: 120px;
  14097. margin: 0 !important;
  14098. display: block !important;
  14099. }
  14100. .el-upload-list--picture-card .el-upload-list__item-thumbnail {
  14101. width: 180px;
  14102. height: 120px;
  14103. }
  14104. }
  14105. }
  14106. .jyxStyle>span {
  14107. display: inline-block;
  14108. text-align: center;
  14109. }
  14110. .tab-style {
  14111. width: 120px;
  14112. li {
  14113. text-align: right;
  14114. padding-right: 20px;
  14115. line-height: 40px;
  14116. cursor: pointer;
  14117. box-sizing: border-box;
  14118. border-right: 1px solid #e2e5eb;
  14119. }
  14120. li:focus {
  14121. background: rgba(212, 36, 38, 0.1);
  14122. border-right: 2px solid var(--themeColor);
  14123. color: var(--themeColor);
  14124. }
  14125. }
  14126. .tabLi-style {
  14127. background: rgba(212, 36, 38, 0.1);
  14128. border-right: 2px solid var(--themeColor);
  14129. color: var(--themeColor);
  14130. }
  14131. .scan-code {
  14132. div {
  14133. margin-top: 10px;
  14134. }
  14135. }
  14136. /* 清除图片上传动画bug */
  14137. /deep/ {
  14138. .proSaomazhifucodeClass .el-dialog__header {
  14139. background: rgba(45, 77, 137, 0.1);
  14140. font-weight: bold;
  14141. }
  14142. .proSaomazhifucodeClass .el-dialog__footer {
  14143. border-top: 1px solid #eef1f6;
  14144. }
  14145. .el-upload-list__item {
  14146. transition: none !important;
  14147. }
  14148. .el-checkbox__input {
  14149. &.is-checked {
  14150. .el-checkbox__inner {
  14151. background-color: #d42426;
  14152. border-color: #d42426;
  14153. }
  14154. }
  14155. }
  14156. .el-checkbox__inner {
  14157. border: 1px solid var(--themeColor);
  14158. &:hover {
  14159. border-color: var(--themeColorHover);
  14160. }
  14161. &:focus {
  14162. border-color: var(--themeColor);
  14163. }
  14164. }
  14165. .el-upload .el-upload-dragger {
  14166. height: 250px;
  14167. width: 400px;
  14168. border: 1px dashed #ced4da;
  14169. }
  14170. // .el-button--warning {
  14171. // color: #fff;
  14172. // background-color: #D42426;
  14173. // border-color: #D42426;
  14174. // &:hover {
  14175. // color: #fff;
  14176. // background-color: #ee6f00ce;
  14177. // border-color: #ee6f00ce;
  14178. // }
  14179. // }
  14180. .el-descriptions-item__label {
  14181. &:not(.is-bordered-label) {
  14182. color: #333;
  14183. }
  14184. }
  14185. // .el-radio__input.is-checked + .el-radio__label {
  14186. // color: #ff7000;
  14187. // }
  14188. // .el-radio__input.is-checked .el-radio__inner {
  14189. // border-color: #ff7000;
  14190. // background: #ff7000;
  14191. // }
  14192. // .el-radio__inner {
  14193. // &:hover {
  14194. // border-color: #ff7000;
  14195. // }
  14196. // }
  14197. // .el-input--small .el-icon-date {
  14198. // color: #ee6f00ce;
  14199. // }
  14200. .el-select {
  14201. width: 100%;
  14202. }
  14203. .el-date-editor.el-input {
  14204. width: 100%;
  14205. }
  14206. .el-cascader--small {
  14207. width: 100%;
  14208. }
  14209. .styleB {
  14210. height: 128px;
  14211. }
  14212. .styleB .el-upload--picture-card {
  14213. display: none;
  14214. }
  14215. .saomazhifucodeClass .el-dialog__body,
  14216. .saomazhifucodeClass .el-dialog__header,
  14217. .saomazhifucodeClass .el-dialog__footer {
  14218. padding: 0;
  14219. background: #f4e9e9;
  14220. }
  14221. .saomazhifucodeClass .el-dialog__body {
  14222. padding: 15px;
  14223. }
  14224. .saomazhifucodeClass .el-dialog__footer {
  14225. background: #f4e9e9;
  14226. padding-bottom: 15px;
  14227. }
  14228. .saomazhifucodeClass .el-dialog__headerbtn {
  14229. margin-top: 10px;
  14230. }
  14231. .zmDriving {
  14232. thead .el-table-column--selection .cell {
  14233. display: none !important;
  14234. }
  14235. }
  14236. .line_style {
  14237. margin-top: 20px;
  14238. }
  14239. .el-input-group__append {
  14240. vertical-align: baseline;
  14241. border-color: #d42426;
  14242. background: #d42426;
  14243. color: #fff;
  14244. }
  14245. .pinganTable .el-table__header-wrapper .el-checkbox {
  14246. display: none;
  14247. }
  14248. }
  14249. </style>
  14250. <style lang="scss" scoped>
  14251. .company-checked {
  14252. background: rgba(45, 77, 137, 0.15);
  14253. padding: 12px 20px;
  14254. box-sizing: border-box;
  14255. margin-top: 10px;
  14256. font-size: 13px;
  14257. color: #333;
  14258. line-height: 24px;
  14259. overflow-x: auto;
  14260. .width1280 {
  14261. min-width: 1576px;
  14262. }
  14263. .bg-white {
  14264. background: #fff;
  14265. padding: 10px 12px;
  14266. border-radius: 4px;
  14267. width: 100%;
  14268. }
  14269. .flex-1 {
  14270. flex: 1;
  14271. }
  14272. .w-60 {
  14273. box-sizing: border-box;
  14274. width: 60px;
  14275. text-align: center;
  14276. border-left: 1px solid #fce5bd;
  14277. }
  14278. .w-50 {
  14279. box-sizing: border-box;
  14280. width: 60px;
  14281. text-align: center;
  14282. border-left: 1px solid #fce5bd;
  14283. }
  14284. .card-bg {
  14285. background: #fff;
  14286. padding: 10px;
  14287. display: flex;
  14288. }
  14289. .card-xianzhong {
  14290. border: 1px solid #2ab79e;
  14291. flex: 1;
  14292. background: rgba(42, 183, 158, 0.15);
  14293. border-radius: 0;
  14294. text-align: center;
  14295. color: #2ab79e;
  14296. // border: 10px solid #FFF;
  14297. font-size: 15px;
  14298. padding: 0 18px;
  14299. display: flex;
  14300. flex-direction: column;
  14301. justify-content: center;
  14302. .card-btn {
  14303. margin-top: 20px;
  14304. border-radius: 2px;
  14305. border: 1px solid #2ab79e;
  14306. background: #fff;
  14307. padding: 4px 8px;
  14308. font-size: 16px;
  14309. font-weight: 600;
  14310. }
  14311. }
  14312. .card-table {
  14313. margin-top: 12px;
  14314. .table-title {
  14315. color: #333;
  14316. width: 58px;
  14317. font-size: 14px;
  14318. }
  14319. .table-list {
  14320. flex: 1;
  14321. .table-list-title {
  14322. background: #fdedc2;
  14323. border: 1px solid #fce5bd;
  14324. color: #333;
  14325. line-height: 28px;
  14326. padding-left: 12px;
  14327. display: flex;
  14328. }
  14329. .table-list-content {
  14330. line-height: 28px;
  14331. padding-left: 12px;
  14332. display: flex;
  14333. align-items: center;
  14334. border: 1px solid #fdedc2;
  14335. border-top: none;
  14336. background: #fff;
  14337. img {
  14338. width: 14px;
  14339. height: 14px;
  14340. transform: translateY(2px);
  14341. }
  14342. span {
  14343. margin-left: 8px;
  14344. font-size: 14px;
  14345. }
  14346. }
  14347. }
  14348. }
  14349. .card-mingxi {
  14350. border: 1px solid #fd9a25;
  14351. flex: 1;
  14352. background: rgba(253, 154, 37, 0.15);
  14353. padding: 8px 12px;
  14354. font-size: 13px;
  14355. .card-mingxi-title {
  14356. color: #fd9a25;
  14357. font-size: 15px;
  14358. span {
  14359. color: #fff;
  14360. background: linear-gradient(90deg, #ff981f 0%, #ff5c00 100%);
  14361. padding: 4px 8px;
  14362. border-radius: 2px;
  14363. }
  14364. }
  14365. }
  14366. .fuwu {
  14367. background: #e9f1ff;
  14368. border: 1px solid #315ba9;
  14369. .card-mingxi-title {
  14370. color: #315ba9;
  14371. }
  14372. .table-list-title {
  14373. background: #c1daff !important;
  14374. border: 1px solid #c1daff !important;
  14375. }
  14376. .table-list-content {
  14377. border-color: #c1daff !important;
  14378. }
  14379. .w-50 {
  14380. border-color: #afccfa !important;
  14381. }
  14382. .flex-1 {
  14383. border-right: 1px solid #afccfa;
  14384. }
  14385. .w-55 {
  14386. border-left: none !important;
  14387. }
  14388. }
  14389. .baoxian {
  14390. padding: 10px;
  14391. border: 1px solid rgba(45, 77, 137, 0.5);
  14392. // background: #F2F4F8;
  14393. background: #f3f3f3;
  14394. display: flex;
  14395. flex-direction: column;
  14396. .card-mingxi-title {
  14397. color: #333;
  14398. display: flex;
  14399. }
  14400. .table-list-title {
  14401. background: #dcdce8 !important;
  14402. }
  14403. .table-list-title,
  14404. .table-list-content {
  14405. padding-left: 0 !important;
  14406. text-align: center;
  14407. border-color: #dcdce8 !important;
  14408. }
  14409. .table-list-title {
  14410. padding-left: 0 !important;
  14411. text-align: center;
  14412. border: 1px solid #dcdce8 !important;
  14413. }
  14414. .flex-1 {
  14415. border-left: 1px solid #dcdce8;
  14416. }
  14417. .w-40 {
  14418. box-sizing: border-box;
  14419. width: 50px;
  14420. text-align: center;
  14421. }
  14422. }
  14423. .youhui {
  14424. background: #feeeec;
  14425. border: 1px solid #ed5626;
  14426. .card-mingxi-title {
  14427. color: #ed5626;
  14428. }
  14429. .table-list-title {
  14430. background: #ffd2c8 !important;
  14431. border: 1px solid #ffd2c8 !important;
  14432. }
  14433. .table-list-content {
  14434. border-color: #ffd2c8 !important;
  14435. padding-left: 0 !important;
  14436. }
  14437. .table-list-line {
  14438. border-bottom: 1px solid #ffd2c8;
  14439. border-right: 1px solid #ffd2c8;
  14440. padding-left: 6px;
  14441. }
  14442. .table-list-line-last {
  14443. border-bottom: none !important;
  14444. }
  14445. .w-60 {
  14446. width: 70px !important;
  14447. border-color: #fabdae !important;
  14448. }
  14449. .w-66 {
  14450. border-left: none !important;
  14451. }
  14452. }
  14453. .el-popover {
  14454. margin-right: 20px;
  14455. padding: 0 !important;
  14456. }
  14457. .gray-style {
  14458. border: 1px solid #333333;
  14459. border-radius: 2px;
  14460. color: #333;
  14461. text-align: center;
  14462. line-height: 24px;
  14463. box-sizing: border-box;
  14464. padding: 4px 8px;
  14465. margin-right: 10px;
  14466. opacity: 0.65;
  14467. // transition: all ease .3s;
  14468. img {
  14469. margin-bottom: -4px;
  14470. }
  14471. &:hover {
  14472. opacity: 1;
  14473. }
  14474. }
  14475. .juse-style {
  14476. color: #fff;
  14477. background: linear-gradient(90deg, #ff981f 0%, #ff5c00 100%);
  14478. padding: 4px 8px;
  14479. border-radius: 2px;
  14480. }
  14481. .blue-style {
  14482. // background: #2D4D89;
  14483. background: linear-gradient(270deg, #0052ff 0%, #6899ff 100%);
  14484. // border: 1px solid #2D4D89;
  14485. border: none;
  14486. color: #fff;
  14487. border-radius: 2px;
  14488. padding: 4px 8px;
  14489. text-align: center;
  14490. line-height: 24px;
  14491. box-sizing: border-box;
  14492. opacity: 1;
  14493. position: relative;
  14494. // ::after {
  14495. // content: '✔';
  14496. // color: red;
  14497. // position: absolute;
  14498. // bottom: 0;
  14499. // right: 0;
  14500. // width: 4px;
  14501. // height: 4px;
  14502. // }
  14503. }
  14504. .blue-text {
  14505. color: #2d4d89;
  14506. }
  14507. .left-title {
  14508. font-size: 14px;
  14509. margin-bottom: 12px;
  14510. }
  14511. .blue-button {
  14512. background: #2d4d89;
  14513. color: #fff;
  14514. padding: 4px 8px;
  14515. line-height: 24px;
  14516. border: 1px solid #2d4d89;
  14517. border-radius: 2px;
  14518. }
  14519. .company-checked-card {
  14520. background: #fff;
  14521. padding: 12px;
  14522. margin-top: 12px;
  14523. >div {
  14524. display: flex;
  14525. margin: 10px;
  14526. }
  14527. .checked-card-title {
  14528. width: 60px;
  14529. }
  14530. span {
  14531. margin-right: 20px;
  14532. }
  14533. }
  14534. .company-checked-right {
  14535. padding: 0 12px;
  14536. color: #333;
  14537. line-height: 22px;
  14538. font-size: 14px;
  14539. position: relative;
  14540. .btn-list {
  14541. display: flex;
  14542. justify-content: right;
  14543. align-items: center;
  14544. span {
  14545. margin: 0 10px;
  14546. color: #2d4d89;
  14547. font-size: 12px;
  14548. }
  14549. }
  14550. }
  14551. }
  14552. .typedialog-style {
  14553. .typedialog-title {
  14554. font-size: 15px;
  14555. line-height: 30px;
  14556. font-weight: 700;
  14557. margin: 10px 0;
  14558. color: #000;
  14559. }
  14560. >>>.table-header {
  14561. background: #f7f7f9;
  14562. color: #333333;
  14563. }
  14564. .el-checkbox-group {
  14565. font-size: 16px;
  14566. color: #333;
  14567. margin-bottom: 20px;
  14568. }
  14569. .more-data-left {
  14570. border: 1px solid #f5f5f8;
  14571. line-height: 48px;
  14572. padding: 0 20px;
  14573. border-top: none;
  14574. position: relative;
  14575. .zhuxian {
  14576. position: absolute;
  14577. top: 0;
  14578. right: 0;
  14579. padding: 4px 12px;
  14580. color: #fff;
  14581. background: #ed9e23;
  14582. font-size: 13px;
  14583. line-height: 12px;
  14584. }
  14585. }
  14586. .more-data-right {
  14587. border: 1px solid #f5f5f8;
  14588. line-height: 48px;
  14589. padding: 0 20px;
  14590. border-top: none;
  14591. border-left: none;
  14592. }
  14593. >>>.is-checked,
  14594. >>>.is-indeterminate {
  14595. .el-checkbox__inner {
  14596. background: #2d4d89 !important;
  14597. border-color: #2d4d89 !important;
  14598. }
  14599. .el-checkbox__label {
  14600. color: #2d4d89;
  14601. }
  14602. }
  14603. .opacity1 {
  14604. opacity: 1;
  14605. }
  14606. .opacity0 {
  14607. opacity: 0.65;
  14608. }
  14609. .jiayi-style {
  14610. font-size: 13px;
  14611. text-align: center;
  14612. .el-col {
  14613. border: 1px solid #2d4d89;
  14614. margin: 0 1px;
  14615. background: rgba(45, 77, 137, 0.05);
  14616. }
  14617. .jiayi-style-title {
  14618. background: #2d4d89;
  14619. color: #fff;
  14620. line-height: 40px;
  14621. }
  14622. .jiayi-style-line {
  14623. color: #333;
  14624. padding: 16px 20px;
  14625. }
  14626. }
  14627. }
  14628. .typedialog-style1 {
  14629. background: rgba(42, 183, 158, 0.15);
  14630. padding: 20px;
  14631. margin-bottom: 20px;
  14632. border-radius: 10px;
  14633. }
  14634. .typedialog-style2 {
  14635. background: rgba(253, 154, 37, 0.15);
  14636. padding: 20px;
  14637. margin-bottom: 20px;
  14638. border-radius: 10px;
  14639. }
  14640. .typedialog-style3 {
  14641. background: #e9f1ff;
  14642. padding: 20px;
  14643. border-radius: 10px;
  14644. }
  14645. .addyiwai {
  14646. >>>.el-input-group__append,
  14647. >>>.el-input-group__prepend {
  14648. padding: 0 10px;
  14649. }
  14650. >>>.el-dialog__body {
  14651. padding: 24px;
  14652. background: #f2f2f2;
  14653. }
  14654. .addyiwai-title {
  14655. color: #262626;
  14656. font-size: 16px;
  14657. line-height: 24px;
  14658. margin-right: 10px;
  14659. }
  14660. .addyiwai-title-btn {
  14661. background: #eaedf1;
  14662. box-shadow: 0px 2px 0px 0px rgba(0, 0, 0, 0.02);
  14663. border-radius: 2px 2px 2px 2px;
  14664. border: 1px solid #d9d9d9;
  14665. font-size: 14px;
  14666. color: #2d4d89;
  14667. padding: 4px 10px;
  14668. cursor: pointer;
  14669. }
  14670. .el-select {
  14671. width: 200px;
  14672. }
  14673. }
  14674. .teYuedialog-style {
  14675. >>>.el-dialog__body {
  14676. padding: 10px 20px;
  14677. }
  14678. >>>.el-input__inner:focus {
  14679. border-color: #f96646;
  14680. }
  14681. >>>.el-input-group__append,
  14682. .el-input-group__prepend,
  14683. >>>.el-button--primary,
  14684. .el-button--primary:focus {
  14685. border-color: #f96646;
  14686. background: linear-gradient(90deg, #f6734a 0%, #f14b3a 100%);
  14687. color: #fff;
  14688. }
  14689. >>>.is-checked,
  14690. >>>.is-indeterminate {
  14691. .el-checkbox__inner {
  14692. background: #f96646 !important;
  14693. border-color: #f96646 !important;
  14694. }
  14695. .el-checkbox__label {
  14696. color: #f96646;
  14697. }
  14698. }
  14699. >>>.table-header {
  14700. background: #f7f7f9;
  14701. color: #333333;
  14702. }
  14703. .table-title {
  14704. font-size: 12px;
  14705. color: #333;
  14706. line-height: 20px;
  14707. padding: 2px 20px;
  14708. }
  14709. .dialog-footer {
  14710. display: flex;
  14711. align-items: center;
  14712. >span {
  14713. color: #333;
  14714. font-size: 13px;
  14715. }
  14716. }
  14717. }
  14718. .red-btn {
  14719. >>>.el-input-group__append {
  14720. border-color: #d42426;
  14721. background: #d42426;
  14722. }
  14723. >>>.el-input__prefix {
  14724. color: #d42426;
  14725. }
  14726. .insure-long-term {
  14727. position: relative;
  14728. top: 1px;
  14729. }
  14730. >>>.input {
  14731. border-radius: 4px 0 0 4px;
  14732. }
  14733. }
  14734. .synchronous {
  14735. width: 75px;
  14736. height: 45px;
  14737. line-height: 45px;
  14738. color: #fff;
  14739. position: relative;
  14740. img {
  14741. position: absolute;
  14742. top: 0;
  14743. left: 0;
  14744. width: 75px;
  14745. height: 45px;
  14746. z-index: 0;
  14747. }
  14748. >div {
  14749. width: 75px;
  14750. height: 45px;
  14751. line-height: 45px;
  14752. color: #fff;
  14753. cursor: pointer;
  14754. position: relative;
  14755. text-align: center;
  14756. font-size: 14px;
  14757. }
  14758. }
  14759. .bxgs-list {
  14760. position: relative;
  14761. .baofeijisuan {
  14762. position: absolute;
  14763. right: 5.333%;
  14764. top: 0;
  14765. // border: 1px solid rgb(26, 77, 219);
  14766. // color: rgb(26, 77, 219);
  14767. .btn{
  14768. background: linear-gradient(270deg, #0052ff 0%, #6899ff 100%);
  14769. border-radius: 4px;
  14770. color: #fff;
  14771. font-size: 14px;
  14772. line-height: 20px;
  14773. padding: 4px 8px;
  14774. font-weight: 700;
  14775. margin-right: 10px;
  14776. }
  14777. }
  14778. }
  14779. .coefficient {
  14780. width: 100px;
  14781. >>>.el-input__inner {
  14782. border: none;
  14783. }
  14784. }
  14785. .loader {
  14786. /* Wave text loader made by: csozi | Website: english.csozi.hu*/
  14787. height: 30px;
  14788. .text {
  14789. margin: 0;
  14790. line-height: 24px;
  14791. color: red;
  14792. font-weight: bolder;
  14793. background: -webkit-linear-gradient(45deg,
  14794. orange,
  14795. orangered);
  14796. /* Chrome, Safari */
  14797. background: linear-gradient(45deg, orange, orangered);
  14798. /* Standard syntax */
  14799. -webkit-background-clip: text;
  14800. /* Chrome, Safari */
  14801. background-clip: text;
  14802. -webkit-text-fill-color: transparent;
  14803. /* Chrome, Safari */
  14804. color: transparent;
  14805. /* Standard syntax (currently not supported by browsers) */
  14806. font-family: "'Gill Sans', 'Gill Sans MT', 'Calibri', 'Trebuchet MS', sans-serif'";
  14807. }
  14808. @keyframes letter {
  14809. 0% {
  14810. font-size: 14px;
  14811. }
  14812. 50% {
  14813. font-size: 15px;
  14814. }
  14815. 100% {
  14816. font-size: 14px;
  14817. }
  14818. }
  14819. .letter {
  14820. animation: letter 1s infinite;
  14821. }
  14822. .letter1 {
  14823. animation-delay: 0s;
  14824. }
  14825. .letter2 {
  14826. animation-delay: -0.9s;
  14827. }
  14828. .letter3 {
  14829. animation-delay: -0.8s;
  14830. }
  14831. .letter4 {
  14832. animation-delay: -0.7s;
  14833. }
  14834. .letter5 {
  14835. animation-delay: -0.6s;
  14836. }
  14837. .letter6 {
  14838. animation-delay: -0.5s;
  14839. }
  14840. .letter7 {
  14841. animation-delay: -0.4s;
  14842. }
  14843. .letter8 {
  14844. animation-delay: -0.3s;
  14845. }
  14846. .letter9 {
  14847. animation-delay: -0.2s;
  14848. }
  14849. .letter10 {
  14850. animation-delay: -0.1s;
  14851. }
  14852. }
  14853. .xianbie {
  14854. // border: 5px dashed #D42426;
  14855. background: #d4242734;
  14856. .home {
  14857. border-bottom: none !important;
  14858. }
  14859. }
  14860. .mini-input {
  14861. >>>.el-input__inner {
  14862. padding: 0 4px !important;
  14863. text-align: center;
  14864. }
  14865. }
  14866. .QRCode {
  14867. position: relative;
  14868. width: 200px;
  14869. height: 200px;
  14870. overflow: hidden;
  14871. margin: 0 auto;
  14872. }
  14873. </style>