KtLetter1.vue 618 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796127971279812799128001280112802128031280412805128061280712808128091281012811128121281312814128151281612817128181281912820128211282212823128241282512826128271282812829128301283112832128331283412835128361283712838128391284012841128421284312844128451284612847128481284912850128511285212853128541285512856128571285812859128601286112862128631286412865128661286712868128691287012871128721287312874128751287612877128781287912880128811288212883128841288512886128871288812889128901289112892128931289412895128961289712898128991290012901129021290312904129051290612907129081290912910129111291212913129141291512916129171291812919129201292112922129231292412925129261292712928129291293012931129321293312934129351293612937129381293912940129411294212943129441294512946129471294812949129501295112952129531295412955129561295712958129591296012961129621296312964129651296612967129681296912970129711297212973129741297512976129771297812979129801298112982129831298412985129861298712988129891299012991129921299312994129951299612997129981299913000130011300213003130041300513006130071300813009130101301113012130131301413015130161301713018130191302013021130221302313024130251302613027130281302913030130311303213033130341303513036130371303813039130401304113042130431304413045130461304713048130491305013051130521305313054130551305613057130581305913060130611306213063130641306513066130671306813069130701307113072130731307413075130761307713078130791308013081130821308313084130851308613087130881308913090130911309213093130941309513096130971309813099131001310113102131031310413105131061310713108131091311013111131121311313114131151311613117131181311913120131211312213123131241312513126131271312813129131301313113132131331313413135131361313713138131391314013141131421314313144131451314613147131481314913150131511315213153131541315513156131571315813159131601316113162131631316413165131661316713168131691317013171131721317313174131751317613177131781317913180131811318213183131841318513186131871318813189131901319113192131931319413195131961319713198131991320013201132021320313204132051320613207132081320913210132111321213213132141321513216132171321813219132201322113222132231322413225132261322713228132291323013231132321323313234132351323613237132381323913240132411324213243132441324513246132471324813249132501325113252132531325413255132561325713258132591326013261132621326313264132651326613267132681326913270132711327213273132741327513276132771327813279132801328113282132831328413285132861328713288132891329013291132921329313294132951329613297132981329913300133011330213303133041330513306133071330813309133101331113312133131331413315133161331713318133191332013321133221332313324133251332613327133281332913330133311333213333133341333513336133371333813339133401334113342133431334413345133461334713348133491335013351133521335313354133551335613357133581335913360133611336213363133641336513366133671336813369133701337113372133731337413375133761337713378133791338013381133821338313384133851338613387133881338913390133911339213393133941339513396133971339813399134001340113402134031340413405134061340713408134091341013411134121341313414134151341613417134181341913420134211342213423134241342513426134271342813429134301343113432134331343413435134361343713438134391344013441134421344313444134451344613447134481344913450134511345213453134541345513456134571345813459134601346113462134631346413465134661346713468134691347013471134721347313474134751347613477134781347913480134811348213483134841348513486134871348813489134901349113492134931349413495134961349713498134991350013501135021350313504135051350613507135081350913510135111351213513135141351513516135171351813519135201352113522135231352413525135261352713528135291353013531135321353313534135351353613537135381353913540135411354213543135441354513546135471354813549135501355113552135531355413555135561355713558135591356013561135621356313564135651356613567135681356913570135711357213573135741357513576135771357813579135801358113582135831358413585135861358713588135891359013591135921359313594135951359613597135981359913600136011360213603136041360513606136071360813609136101361113612136131361413615136161361713618136191362013621136221362313624136251362613627136281362913630136311363213633136341363513636136371363813639136401364113642136431364413645136461364713648136491365013651136521365313654136551365613657136581365913660136611366213663136641366513666136671366813669136701367113672136731367413675136761367713678136791368013681136821368313684136851368613687136881368913690136911369213693136941369513696136971369813699137001370113702137031370413705137061370713708137091371013711137121371313714137151371613717137181371913720137211372213723137241372513726137271372813729137301373113732137331373413735137361373713738137391374013741137421374313744137451374613747137481374913750137511375213753137541375513756137571375813759137601376113762137631376413765137661376713768137691377013771137721377313774137751377613777137781377913780137811378213783137841378513786137871378813789137901379113792137931379413795137961379713798137991380013801138021380313804138051380613807138081380913810138111381213813138141381513816138171381813819138201382113822138231382413825138261382713828138291383013831138321383313834138351383613837138381383913840138411384213843138441384513846138471384813849138501385113852138531385413855138561385713858138591386013861138621386313864138651386613867138681386913870138711387213873138741387513876138771387813879138801388113882138831388413885138861388713888138891389013891138921389313894138951389613897138981389913900139011390213903139041390513906139071390813909139101391113912139131391413915139161391713918139191392013921139221392313924139251392613927139281392913930139311393213933139341393513936139371393813939139401394113942139431394413945139461394713948139491395013951139521395313954139551395613957139581395913960139611396213963139641396513966139671396813969139701397113972139731397413975139761397713978139791398013981139821398313984139851398613987139881398913990139911399213993139941399513996139971399813999140001400114002140031400414005140061400714008140091401014011140121401314014140151401614017140181401914020140211402214023140241402514026140271402814029140301403114032140331403414035140361403714038140391404014041140421404314044140451404614047140481404914050140511405214053140541405514056140571405814059140601406114062140631406414065140661406714068140691407014071140721407314074140751407614077140781407914080140811408214083140841408514086140871408814089140901409114092140931409414095140961409714098140991410014101141021410314104141051410614107141081410914110141111411214113141141411514116141171411814119141201412114122141231412414125141261412714128141291413014131141321413314134141351413614137141381413914140141411414214143141441414514146141471414814149141501415114152141531415414155141561415714158141591416014161141621416314164141651416614167141681416914170141711417214173141741417514176141771417814179141801418114182141831418414185141861418714188141891419014191141921419314194141951419614197141981419914200142011420214203142041420514206142071420814209142101421114212142131421414215142161421714218142191422014221142221422314224142251422614227142281422914230142311423214233142341423514236142371423814239142401424114242142431424414245142461424714248142491425014251142521425314254142551425614257142581425914260142611426214263142641426514266142671426814269142701427114272142731427414275142761427714278142791428014281142821428314284142851428614287142881428914290142911429214293142941429514296142971429814299143001430114302143031430414305143061430714308143091431014311143121431314314143151431614317143181431914320143211432214323143241432514326143271432814329143301433114332143331433414335143361433714338143391434014341143421434314344143451434614347143481434914350143511435214353143541435514356143571435814359143601436114362143631436414365143661436714368143691437014371143721437314374143751437614377143781437914380143811438214383143841438514386143871438814389143901439114392143931439414395143961439714398143991440014401144021440314404144051440614407144081440914410144111441214413144141441514416144171441814419144201442114422144231442414425144261442714428144291443014431144321443314434144351443614437144381443914440144411444214443144441444514446144471444814449144501445114452144531445414455144561445714458144591446014461144621446314464144651446614467144681446914470144711447214473144741447514476144771447814479144801448114482144831448414485144861448714488144891449014491144921449314494144951449614497144981449914500145011450214503145041450514506145071450814509145101451114512145131451414515145161451714518145191452014521145221452314524145251452614527145281452914530145311453214533145341453514536145371453814539145401454114542145431454414545145461454714548145491455014551145521455314554145551455614557145581455914560145611456214563145641456514566145671456814569145701457114572145731457414575145761457714578145791458014581145821458314584145851458614587145881458914590145911459214593145941459514596145971459814599146001460114602146031460414605146061460714608146091461014611146121461314614146151461614617146181461914620146211462214623146241462514626146271462814629146301463114632146331463414635146361463714638146391464014641146421464314644146451464614647146481464914650146511465214653146541465514656146571465814659146601466114662146631466414665146661466714668146691467014671146721467314674146751467614677146781467914680146811468214683146841468514686146871468814689146901469114692146931469414695146961469714698146991470014701147021470314704147051470614707147081470914710147111471214713147141471514716147171471814719147201472114722147231472414725147261472714728147291473014731147321473314734147351473614737147381473914740147411474214743147441474514746147471474814749147501475114752147531475414755147561475714758147591476014761147621476314764147651476614767147681476914770147711477214773147741477514776147771477814779147801478114782147831478414785147861478714788147891479014791147921479314794147951479614797147981479914800148011480214803148041480514806148071480814809148101481114812148131481414815148161481714818148191482014821148221482314824148251482614827148281482914830148311483214833148341483514836148371483814839148401484114842148431484414845148461484714848148491485014851148521485314854148551485614857148581485914860148611486214863148641486514866148671486814869148701487114872148731487414875148761487714878148791488014881148821488314884148851488614887148881488914890148911489214893148941489514896148971489814899149001490114902149031490414905149061490714908149091491014911149121491314914149151491614917149181491914920149211492214923149241492514926149271492814929149301493114932149331493414935149361493714938149391494014941149421494314944149451494614947149481494914950149511495214953149541495514956149571495814959149601496114962149631496414965149661496714968149691497014971149721497314974149751497614977149781497914980149811498214983149841498514986149871498814989149901499114992149931499414995149961499714998149991500015001150021500315004150051500615007150081500915010150111501215013150141501515016150171501815019150201502115022150231502415025150261502715028150291503015031150321503315034150351503615037150381503915040150411504215043150441504515046150471504815049150501505115052150531505415055150561505715058150591506015061150621506315064150651506615067150681506915070150711507215073150741507515076150771507815079150801508115082150831508415085150861508715088150891509015091150921509315094150951509615097150981509915100151011510215103151041510515106151071510815109151101511115112151131511415115151161511715118151191512015121151221512315124151251512615127151281512915130151311513215133151341513515136151371513815139151401514115142151431514415145151461514715148151491515015151151521515315154151551515615157151581515915160151611516215163151641516515166151671516815169151701517115172151731517415175151761517715178151791518015181151821518315184151851518615187151881518915190151911519215193151941519515196151971519815199152001520115202152031520415205152061520715208152091521015211152121521315214152151521615217152181521915220152211522215223152241522515226152271522815229152301523115232152331523415235152361523715238152391524015241152421524315244152451524615247152481524915250152511525215253152541525515256152571525815259152601526115262152631526415265152661526715268152691527015271152721527315274152751527615277152781527915280152811528215283152841528515286152871528815289152901529115292152931529415295152961529715298152991530015301153021530315304153051530615307153081530915310153111531215313153141531515316153171531815319153201532115322153231532415325153261532715328153291533015331153321533315334153351533615337153381533915340153411534215343153441534515346153471534815349153501535115352153531535415355153561535715358153591536015361153621536315364153651536615367153681536915370153711537215373153741537515376153771537815379153801538115382153831538415385153861538715388153891539015391153921539315394153951539615397153981539915400154011540215403154041540515406154071540815409154101541115412154131541415415154161541715418154191542015421154221542315424154251542615427154281542915430154311543215433154341543515436154371543815439154401544115442154431544415445154461544715448154491545015451154521545315454154551545615457154581545915460154611546215463154641546515466154671546815469154701547115472154731547415475154761547715478154791548015481154821548315484154851548615487154881548915490154911549215493154941549515496154971549815499155001550115502155031550415505155061550715508155091551015511155121551315514155151551615517155181551915520155211552215523155241552515526155271552815529155301553115532155331553415535155361553715538155391554015541155421554315544155451554615547155481554915550155511555215553155541555515556155571555815559155601556115562155631556415565155661556715568155691557015571155721557315574
  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 v-show="reslistitem.quoteCode == 200 && isEnabledShow" class="btn" @click="handleInterest(reslistitem, reslistindex)">客户权益</div>
  1225. <!-- <div class="btn" @click="handleInterest(reslistitem, reslistindex)">客户权益</div>-->
  1226. </div>
  1227. </el-row>
  1228. <!-- 选中-方案选择 -->
  1229. <div v-show="reslistitem.checked" :gutter="20" class="company-checked">
  1230. <el-row class="width1280">
  1231. <el-col :span="24">
  1232. <el-row type="flex" align="middle" class="left-title" v-if="reslistitem.programme">
  1233. <el-col :span="2">方案选择</el-col>
  1234. <div style="margin-right: 20px;" v-for="(item, index) in reslistitem.schemes" :key="index"
  1235. @click="checkedPopover(reslistindex, index, item)">
  1236. <el-popover placement="top-start" trigger="hover" width="660">
  1237. <!-- :disabled="reslistitem.checkedProgramme == index" -->
  1238. <!-- <div>弹出</div> -->
  1239. <Ktletter1Popover :data="item" :programme="reslistitem.programme" :productId="productId">
  1240. </Ktletter1Popover>
  1241. <el-col class="gray-style" :class="reslistitem.checkedProgramme == index ? 'blue-style' : ''"
  1242. slot="reference">
  1243. <!-- <i v-show="reslistitem.checkedProgramme == index" class="el-icon-circle-check"></i> -->
  1244. {{ item.schemeName }}
  1245. <img v-show="reslistitem.checkedProgramme == index" src="@/assets/Frame.png" />
  1246. </el-col>
  1247. </el-popover>
  1248. </div>
  1249. <div @click="checkedPopover(reslistindex, 99)" style="margin-right: 20px;"
  1250. v-show="reslistitem.programme99 && reslistitem.programme99.schemeId">
  1251. <el-popover placement="top-start" width="660" :disabled="reslistitem.checkedProgramme == 99"
  1252. trigger="hover">
  1253. <Ktletter1Popover :data="reslistitem.programme99" :programme="reslistitem.programme"
  1254. :productId="productId"></Ktletter1Popover>
  1255. <el-col class="gray-style" :class="reslistitem.checkedProgramme == 99 ? 'blue-style' : ''"
  1256. slot="reference">
  1257. <!-- <i v-show="reslistitem.checkedProgramme == 99" class="el-icon-circle-check"></i> -->
  1258. 自选方案
  1259. <img v-show="reslistitem.checkedProgramme == 99" src="@/assets/Frame.png" />
  1260. </el-col>
  1261. </el-popover>
  1262. </div>
  1263. <div v-show="reslistitem.checkedProgramme == 99" style="margin-right: 20px;" class="juse-style">
  1264. <span @click="showTypeDialog(reslistitem, reslistindex)">调整险种</span>
  1265. </div>
  1266. <!-- <el-popover placement="top-start" width="450" style="margin-right: 20px;" trigger="hover">
  1267. <Ktletter1Popover></Ktletter1Popover>
  1268. <el-col class="gray-style" slot="reference">服务方案</el-col>
  1269. </el-popover> -->
  1270. </el-row>
  1271. </el-col>
  1272. <el-col :span="2" v-if="reslistitem.programme" class="card-bg">
  1273. <div class="card-xianzhong">
  1274. <div>已选险种</div>
  1275. <div class="card-btn" v-show="reslistitem.programme.description">{{
  1276. reslistitem.programme.description }}</div>
  1277. <!-- <div v-if="reslistitem.quoteCode == '200' && reslistitem.result.orderstatus">{{ reslistitem.result.orderstatus | cap }}</div> -->
  1278. </div>
  1279. </el-col>
  1280. <!-- 险种明细 -->
  1281. <el-col :span="8" class="card-bg" style="padding-left: 0;"
  1282. v-if="reslistitem.programme && reslistitem.programme.kinds">
  1283. <div class="card-mingxi">
  1284. <div class="card-mingxi-title">险种明细:
  1285. <span v-show="reslistitem.checkedProgramme != 99"
  1286. @click="showDetailJiaYi(reslistitem, reslistindex)">查看详情</span>
  1287. <!-- <span v-show="reslistitem.checkedProgramme == 99" @click="showTypeDialog(reslistitem, reslistindex)">调整险种</span> -->
  1288. </div>
  1289. <div class="card-table"
  1290. v-show="reslistitem.programme.description != '单商' && reslistitem.programme.description != '单三'">
  1291. <div class="table-title">交强险</div>
  1292. <div class="table-list" v-if="reslistitem.programme.kinds">
  1293. <div class="table-list-title">
  1294. <div class="flex-1">产品名称</div>
  1295. </div>
  1296. <div class="table-list-content">
  1297. <div class="flex-1">
  1298. <img src="@/icon/icon-chengse.png">
  1299. <!-- <span>{{ reslistitem.programme.jqx.name }}</span> -->
  1300. <span>交通事故强制责任险</span>
  1301. </div>
  1302. </div>
  1303. </div>
  1304. </div>
  1305. <div class="card-table" v-show="reslistitem.programme.description != '单交'">
  1306. <div class="table-title">商业险</div>
  1307. <div class="table-list" v-if="reslistitem.programme && reslistitem.programme.kinds">
  1308. <div class="table-list-title">
  1309. <div class="flex-1">产品名称</div>
  1310. <div class="w-60">保额(元)</div>
  1311. </div>
  1312. <div v-for="(kinds, kindIndex) in reslistitem.programme.kinds.main" :key="kindIndex + 'main'">
  1313. <div class="table-list-content" v-if="kinds.amount != 0">
  1314. <div class="flex-1">
  1315. <img src="@/icon/icon-chengse.png">
  1316. <span>{{ kinds.kindName }}</span>
  1317. </div>
  1318. <div v-if="kinds.kindCode != 'A'" class="w-60"> {{ toWan(kinds.amount) }}</div>
  1319. <div v-else class="w-60">{{ toWan(kinds.amount) }}</div>
  1320. </div>
  1321. </div>
  1322. <div v-for="(kinds, kindIndex) in reslistitem.programme.kinds.additional" :key="kindIndex">
  1323. <div class="table-list-content" v-if="kinds.amount != 0">
  1324. <div class="flex-1">
  1325. <img src="@/icon/icon-chengse.png">
  1326. <span>{{ kinds.kindName }}</span>
  1327. </div>
  1328. <div class="w-60"> {{ toWan(kinds.amount) }}</div>
  1329. </div>
  1330. </div>
  1331. <div class="table-list-content"
  1332. v-if="reslistitem.programme && reslistitem.programme.kinds && !reslistitem.programme.kinds.main.length && !reslistitem.programme.kinds.additional.length">
  1333. 暂无</div>
  1334. </div>
  1335. </div>
  1336. <div class="card-table"
  1337. v-if="reslistitem.programme && reslistitem.programme.drivingList && reslistitem.programme.drivingList.length > 0">
  1338. <div class="table-title">驾意险</div>
  1339. <div class="table-list" v-if="reslistitem.programme.kinds">
  1340. <div class="table-list-title">
  1341. <div class="flex-1">产品名称</div>
  1342. <div class="w-60">份数</div>
  1343. <div class="w-60">保费</div>
  1344. </div>
  1345. <div class="table-list-content"
  1346. v-for="(driving, drivingIndex) in reslistitem.programme.drivingList" :key="drivingIndex"
  1347. @click="showDetailJiaYi(reslistitem, reslistindex, 'jiayi')">
  1348. <div class="flex-1">
  1349. <img src="@/icon/icon-chengse.png">
  1350. <span>
  1351. <!-- <span style="margin-right: 0;" v-if="reslistitem.cnName == 'guoRen' || reslistitem.cnName == 'ansheng'">{{ driving.select }}</span> -->
  1352. {{ driving.alias || driving.projectName }}
  1353. </span>
  1354. </div>
  1355. <div class="w-60">{{ driving.quantity }}份</div>
  1356. <div class="w-60">¥{{ Number(driving.sumPremium) * driving.quantity }}
  1357. <span v-show="reslistitem.checkedProgramme == 99"><i class="el-icon-delete"
  1358. @click="deleteJiaYi(reslistindex, drivingIndex)"></i></span>
  1359. </div>
  1360. </div>
  1361. <div class="table-list-content"
  1362. v-if="reslistitem.programme && reslistitem.programme.drivingList && !reslistitem.programme.drivingList.length">
  1363. 暂无</div>
  1364. </div>
  1365. </div>
  1366. <div class="card-table" v-show="reslistitem.cnName == 'guoRen'">
  1367. <!-- reslistitem.checkedProgramme == 99 && -->
  1368. <div class="table-title">其他</div>
  1369. <div class="table-list">
  1370. <!-- v-if="reslistitem.programme.kinds" -->
  1371. <div style="color: #FD9A25;" @click="contributingGuoRen(reslistitem.agreementId, reslistindex)">
  1372. 选择特约</div>
  1373. <div class="table-list-title"
  1374. v-show="reslistitem.programme && reslistitem.programme.teyue && reslistitem.programme.teyue.length">
  1375. <div class="flex-1">特约名称</div>
  1376. </div>
  1377. <div class="table-list-content" v-for="(teyueitem, teyueindex) in reslistitem.programme.teyue"
  1378. :key="teyueindex">
  1379. <div class="flex-1">
  1380. <img src="@/icon/icon-chengse.png">
  1381. {{ teyueitem.clauseName }}
  1382. </div>
  1383. </div>
  1384. <!-- <div class="table-list-content" v-if="!reslistitem.programme.teyue.length">暂无</div> -->
  1385. </div>
  1386. </div>
  1387. <div class="card-table" v-show="reslistitem.cnName == 'zijin'
  1388. || reslistitem.cnName == 'hengbang'
  1389. ">
  1390. <div class="table-title">其他</div>
  1391. <div>自定义系数:
  1392. <el-input v-model="reslistitem.coefficient" size="mini" class="coefficient" placeholder="请输入"></el-input>
  1393. </div>
  1394. </div>
  1395. <div class="card-table" v-show="reslistitem.cnName == 'yangguang'
  1396. // || reslistitem.cnName == 'taishan'
  1397. ">
  1398. <div class="table-title">其他</div>
  1399. <div style="margin-bottom: 10px;">自主定价系数:
  1400. <el-input v-model="reslistitem.result.pricingCoefficient" size="mini" class="coefficient" placeholder="请输入"></el-input>
  1401. </div>
  1402. <div style="margin-bottom: 10px;">自主定价系数上限:
  1403. <el-input v-model="reslistitem.result.pricingCoefficientUpper" size="mini" disabled class="coefficient"></el-input>
  1404. </div>
  1405. <div style="margin-bottom: 10px;">自主定价系数下限:
  1406. <el-input v-model="reslistitem.result.pricingCoefficientLower" size="mini" disabled class="coefficient"></el-input>
  1407. </div>
  1408. </div>
  1409. <div class="card-table flex a-c j-s" v-show="reslistitem.cnName == 'chengtai'">
  1410. <div class="table-title">其他</div>
  1411. <div class="flex f-wrap a-c ">
  1412. <div class="flex a-c mrgin-5">
  1413. <span style="margin-right: 5px;">初始折扣:</span>
  1414. <el-input v-model="reslistitem.result.initialProposalDiscount" disabled size="mini"
  1415. class="coefficient" placeholder="请输入"></el-input>
  1416. </div>
  1417. <div class="flex a-c mrgin-5">
  1418. <span style="margin-right: 5px;">自定义系数:</span>
  1419. <el-input v-model="reslistitem.result.pricingCoefficient" size="mini" class="coefficient"
  1420. placeholder="请输入"></el-input>
  1421. </div>
  1422. <div class="flex a-c mrgin-5">
  1423. <span style="margin-right: 5px;">期望折扣:</span>
  1424. <el-input v-model="reslistitem.result.expectedDiscount" size="mini" class="coefficient"
  1425. placeholder="请输入"></el-input>
  1426. </div>
  1427. </div>
  1428. </div>
  1429. <div class="card-table flex a-c j-s" v-show="reslistitem.cnName == 'renbao'">
  1430. <div class="flex a-c mrgin-5">
  1431. <span style="margin-right: 5px;">车险保额折扣:</span>
  1432. <el-input v-model="reslistitem.result.bidiscount" size="mini" class="coefficient"
  1433. placeholder="请输入"></el-input>
  1434. </div>
  1435. </div>
  1436. <div class="card-table flex a-c j-s" v-show="reslistitem.cnName == 'yongan'">
  1437. <div class="flex a-c mrgin-5">
  1438. <span style="margin-right: 5px;">车损验车事项:</span>
  1439. <el-select size="small" v-model="reslistitem.result.carChecker">
  1440. <el-option v-for="item in verificationDict" :key="item.code" :value="item.code" :label="item.desc"></el-option>
  1441. </el-select>
  1442. </div>
  1443. </div>
  1444. <div class="card-table flex a-c j-s" v-show="reslistitem.cnName == 'yongan'">
  1445. <div class="flex a-c mrgin-5">
  1446. <span style="margin-right: 5px;">商业险折扣系数:</span>
  1447. <el-input size="small" v-model="reslistitem.result.yaBusinessDiscount"></el-input>
  1448. </div>
  1449. </div>
  1450. <div class="card-table flex a-c j-s" v-show="reslistitem.cnName == 'renbao'">
  1451. <div class="flex a-c mrgin-5">
  1452. <span style="margin-right: 5px;">赔付优化申请:</span>
  1453. <el-input v-model="reslistitem.result.preDiscount" size="mini" class="coefficient"
  1454. placeholder="请输入"></el-input>
  1455. </div>
  1456. </div>
  1457. </div>
  1458. </el-col>
  1459. <!-- 服务明细 -->
  1460. <el-col :span="4" class="card-bg" style="padding-left: 0;"
  1461. v-if="reslistitem.programme && reslistitem.programme.kinds">
  1462. <div class="card-mingxi fuwu">
  1463. <div class="card-mingxi-title">服务明细:</div>
  1464. <div class="card-table">
  1465. <div class="table-list">
  1466. <div class="table-list-title">
  1467. <div class="flex-1">增值服务</div>
  1468. <div class="w-50">次数</div>
  1469. </div>
  1470. <div class="table-list-content"
  1471. v-for="(kinds, kindIndex) in reslistitem.programme.kinds.service" :key="kindIndex">
  1472. <div class="flex-1">
  1473. <img src="@/icon/icon-lanse.png">
  1474. <span style="margin-left: 0;">{{ kinds.alias || kinds.kindName }}</span>
  1475. </div>
  1476. <div class="w-50 w-55">{{ toWan(kinds.amount, 'fw') }}</div>
  1477. </div>
  1478. <div class="table-list-content"
  1479. v-if="reslistitem.programme && reslistitem.programme.kinds && !reslistitem.programme.kinds.service.length">
  1480. 暂无</div>
  1481. </div>
  1482. </div>
  1483. </div>
  1484. </el-col>
  1485. <!-- 优惠明细 -->
  1486. <el-col :span="4" class="card-bg" style="padding-left: 0;"
  1487. v-if="reslistitem.quoteCode == '200' && reslistitem.result.orderstatus != '10' && reslistitem.result.orderstatus != '11'">
  1488. <div class="card-mingxi youhui">
  1489. <div class="card-mingxi-title">优惠明细:</div>
  1490. <div class="card-table">
  1491. <div class="table-list">
  1492. <div class="table-list-title" style="padding-left: 0;">
  1493. <div class="w-50" style="width: 40px;">险种</div>
  1494. <div class="w-50" style="width: 50px; font-size: 10px;">优惠比例</div>
  1495. <div class="w-60" style=" font-size: 10px;">优惠金额(元)</div>
  1496. <div class="w-60" style="width: 50px; font-size: 10px;">合计优惠</div>
  1497. </div>
  1498. <div class="table-list-content" v-if="reslistitem.programme">
  1499. <div class="w-50" style="width: 40px;">
  1500. <div class="table-list-line" style="border-right: none; padding-left: 0;"
  1501. v-show="reslistitem.programme.description != '单商' && reslistitem.programme.description != '单三'">
  1502. <span style="margin-left: 0; font-size: 10px;">交强险</span>
  1503. </div>
  1504. <div class="table-list-line" style="border-right: none; padding-left: 0;"
  1505. v-show="reslistitem.programme.description != '单交'">
  1506. <span style="margin-left: 0; font-size: 10px;">商业险</span>
  1507. </div>
  1508. <div class="table-list-line table-list-line-last"
  1509. style="border-right: none; padding-left: 0;" v-show="reslistitem.result.jyPremium">
  1510. <span style="margin-left: 0; font-size: 10px;">驾意险</span>
  1511. </div>
  1512. </div>
  1513. <div class="w-50" style="width: 50px;">
  1514. <div class="table-list-line" style="border-right: none;"
  1515. v-show="reslistitem.programme.description != '单商' && reslistitem.programme.description != '单三'">
  1516. <span style="margin-left: 0;">{{ reslistitem.result.jqExportFee ?
  1517. reslistitem.result.jqExportRadio : '无' }}</span>
  1518. </div>
  1519. <div class="table-list-line" style="border-right: none;"
  1520. v-show="reslistitem.programme.description != '单交'">
  1521. <span style="margin-left: 0;">{{ reslistitem.result.syExportFee ?
  1522. reslistitem.result.syExportRadio : '无' }}</span>
  1523. </div>
  1524. <div class="table-list-line table-list-line-last" style="border-right: none;"
  1525. v-show="reslistitem.result.jyPremium">
  1526. <span style="margin-left: 0;">{{ reslistitem.result.noExportRadio }}</span>
  1527. </div>
  1528. </div>
  1529. <div class="w-60">
  1530. <div class="table-list-line"
  1531. v-show="reslistitem.programme.description != '单商' && reslistitem.programme.description != '单三'">
  1532. <span style="margin-left: 0;">{{ reslistitem.result.jqExportFee ?
  1533. reslistitem.result.jqExportFee : '无' }}</span>
  1534. </div>
  1535. <div class="table-list-line" v-show="reslistitem.programme.description != '单交'">
  1536. <span style="margin-left: 0;">{{ reslistitem.result.syExportFee ?
  1537. reslistitem.result.syExportFee : '无' }}</span>
  1538. </div>
  1539. <div class="table-list-line table-list-line-last" v-show="reslistitem.result.jyPremium">
  1540. <span style="margin-left: 0;">{{ reslistitem.result.noExportFee ?
  1541. reslistitem.result.noExportFee : '无' }}</span>
  1542. </div>
  1543. </div>
  1544. <div class="w-50 w-66"><span v-show="reslistitem.result.sumExportFee">¥</span>{{
  1545. reslistitem.result.sumExportFee }}</div>
  1546. </div>
  1547. </div>
  1548. </div>
  1549. <div class="card-mingxi-title" style="margin-top: 10px; border-top: 1px solid #fabdae;">返还测算:</div>
  1550. <div class="card-table">
  1551. <div class="table-list">
  1552. <div class="table-list-title" style="padding-left: 0;">
  1553. <div class="w-50" style="width: 40px;">险种</div>
  1554. <div class="w-50" style="width: 50px; font-size: 10px;">返还比例</div>
  1555. <div class="w-60" style=" font-size: 10px;">返还金额(元)</div>
  1556. <div class="w-60" style="width: 50px; font-size: 10px;">合计返还</div>
  1557. </div>
  1558. <div class="table-list-content" v-if="reslistitem.programme">
  1559. <div class="w-50" style="width: 40px;">
  1560. <div class="table-list-line" style="border-right: none; padding-left: 0;"
  1561. v-show="reslistitem.programme.description != '单商' && reslistitem.programme.description != '单三'">
  1562. <span style="margin-left: 0; font-size: 10px;">交强险</span>
  1563. </div>
  1564. <div class="table-list-line" style="border-right: none; padding-left: 0;"
  1565. v-show="reslistitem.programme.description != '单交'">
  1566. <span style="margin-left: 0; font-size: 10px;">商业险</span>
  1567. </div>
  1568. <div class="table-list-line table-list-line-last"
  1569. style="border-right: none; padding-left: 0;" v-show="reslistitem.result.jyPremium">
  1570. <span style="margin-left: 0; font-size: 10px;">驾意险</span>
  1571. </div>
  1572. </div>
  1573. <div class="w-50" style="width: 50px;">
  1574. <div class="table-list-line" style="border-right: none; padding-left: 0;"
  1575. v-show="reslistitem.programme.description != '单商' && reslistitem.programme.description != '单三'">
  1576. <span style="margin-left: 0;">
  1577. <el-input size="mini" style="width: 40px;" v-model="reslistitem.result.jqInput"
  1578. class="mini-input"></el-input>
  1579. </span>
  1580. </div>
  1581. <div class="table-list-line" style="border-right: none; padding-left: 0;"
  1582. v-show="reslistitem.programme.description != '单交'">
  1583. <span style="margin-left: 0;">
  1584. <el-input size="mini" style="width: 40px;" v-model="reslistitem.result.syInput"
  1585. class="mini-input"></el-input>
  1586. </span>
  1587. </div>
  1588. <div class="table-list-line table-list-line-last"
  1589. style="border-right: none; padding-left: 0;" v-show="reslistitem.result.jyPremium">
  1590. <span style="margin-left: 0;">
  1591. <el-input size="mini" style="width: 40px;" v-model="reslistitem.result.jyInput"
  1592. class="mini-input"></el-input>
  1593. </span>
  1594. </div>
  1595. </div>
  1596. <div class="w-60">
  1597. <div class="table-list-line"
  1598. v-show="reslistitem.programme.description != '单商' && reslistitem.programme.description != '单三'">
  1599. <span style="margin-left: 0;">{{ reslistitem.result.jqInput ?
  1600. (reslistitem.result.jqPremium * (reslistitem.result.jqInput / 100)).toFixed(2) : 0
  1601. }}</span>
  1602. </div>
  1603. <div class="table-list-line" v-show="reslistitem.programme.description != '单交'">
  1604. <span style="margin-left: 0;">{{ reslistitem.result.syInput ?
  1605. (reslistitem.result.syPremium * (reslistitem.result.syInput / 100)).toFixed(2) : 0
  1606. }}</span>
  1607. </div>
  1608. <div class="table-list-line table-list-line-last" v-show="reslistitem.result.jyPremium">
  1609. <span style="margin-left: 0;">{{ reslistitem.result.jyInput ?
  1610. (reslistitem.result.jyPremium * (reslistitem.result.jyInput / 100)).toFixed(2) : 0
  1611. }}</span>
  1612. </div>
  1613. </div>
  1614. <div class="w-60 w-66">{{ (
  1615. (reslistitem.result.jqInput ? reslistitem.result.jqPremium * (reslistitem.result.jqInput /
  1616. 100) : 0) +
  1617. (reslistitem.result.syInput ? reslistitem.result.syPremium * (reslistitem.result.syInput /
  1618. 100) : 0) +
  1619. (reslistitem.result.jyInput ? reslistitem.result.jyPremium * (reslistitem.result.jyInput /
  1620. 100) : 0)
  1621. ).toFixed(2)
  1622. }}</div>
  1623. </div>
  1624. </div>
  1625. </div>
  1626. </div>
  1627. </el-col>
  1628. <!-- 保险期限 -->
  1629. <el-col :span="6" class="card-bg" style="padding-left: 0;"
  1630. v-if="reslistitem.quoteCode == '200' && reslistitem.result.orderstatus != '10' && reslistitem.result.orderstatus != '11'">
  1631. <div class="card-mingxi baoxian">
  1632. <div class="card-mingxi-title">保险期限:
  1633. <div @click="syncData(reslistitem.result)">
  1634. <el-tooltip class="item" effect="dark" content="使用此时间" placement="top">
  1635. <i style="color: red" class="el-icon-time"></i>
  1636. </el-tooltip>
  1637. </div>
  1638. </div>
  1639. <div class="card-table">
  1640. <div class="table-list">
  1641. <div class="table-list-title">
  1642. <div class="w-40">险种</div>
  1643. <div class="flex-1">起保日期</div>
  1644. <div class="flex-1">终保日期</div>
  1645. </div>
  1646. <div class="table-list-content" v-show="reslistitem.result.startDateJq">
  1647. <div class="w-40">交强险</div>
  1648. <div class="flex-1">{{ reslistitem.result.startDateJq }}</div>
  1649. <div class="flex-1">{{ reslistitem.result.endDateJq }}</div>
  1650. </div>
  1651. <div class="table-list-content" v-show="reslistitem.result.startDateSy">
  1652. <div class="w-40">商业险</div>
  1653. <div class="flex-1">{{ reslistitem.result.startDateSy }}</div>
  1654. <div class="flex-1">{{ reslistitem.result.endDateSy }}</div>
  1655. </div>
  1656. </div>
  1657. </div>
  1658. <div class="card-table">
  1659. <div class="table-list">
  1660. <div class="table-list-title">
  1661. <div class="flex-1">类型</div>
  1662. <div class="flex-1">评分</div>
  1663. </div>
  1664. <!-- <div class="table-list-content" v-show="reslistitem.result.JqExportFee">
  1665. <div class="flex-1">交强出口费用</div>
  1666. <div class="flex-1">{{ reslistitem.result.JqExportFee }}</div>
  1667. </div>
  1668. <div class="table-list-content" v-show="reslistitem.result.syExportFee">
  1669. <div class="flex-1">商业出口费用</div>
  1670. <div class="flex-1">{{ reslistitem.result.syExportFee }}</div>
  1671. </div>
  1672. <div class="table-list-content" v-show="reslistitem.result.noExportFee">
  1673. <div class="flex-1">非车出口费用</div>
  1674. <div class="flex-1">{{ reslistitem.result.noExportFee }}</div>
  1675. </div> -->
  1676. <div class="table-list-content" v-show="reslistitem.result.jqScore">
  1677. <div class="flex-1">交强类型评分:</div>
  1678. <div class="flex-1">{{ reslistitem.result.jqScore }}</div>
  1679. </div>
  1680. <div class="table-list-content" v-show="reslistitem.result.syScore">
  1681. <div class="flex-1">商业类型评分:</div>
  1682. <div class="flex-1">{{ reslistitem.result.syScore }}</div>
  1683. </div>
  1684. <div class="table-list-content" v-show="reslistitem.result.lossRation">
  1685. <div class="flex-1">总赔付率:</div>
  1686. <div class="flex-1">{{ reslistitem.result.lossRation }}</div>
  1687. </div>
  1688. <div class="table-list-content" v-show="reslistitem.result.jqLossRation">
  1689. <div class="flex-1">交强赔付率:</div>
  1690. <div class="flex-1">{{ reslistitem.result.jqLossRation }}</div>
  1691. </div>
  1692. <div class="table-list-content" v-show="reslistitem.result.syLossRation">
  1693. <div class="flex-1">商业赔付率:</div>
  1694. <div class="flex-1">{{ reslistitem.result.syLossRation }}</div>
  1695. </div>
  1696. <div class="table-list-content" v-show="reslistitem.result.totalAdjustRate">
  1697. <div class="flex-1">自主定价系数:</div>
  1698. <div class="flex-1">{{ reslistitem.result.totalAdjustRate }}</div>
  1699. </div>
  1700. <div class="table-list-content" v-show="reslistitem.result.jgAdjustRate">
  1701. <div class="flex-1">交强折扣系数:</div>
  1702. <div class="flex-1">{{ reslistitem.result.jgAdjustRate }}</div>
  1703. </div>
  1704. <div class="table-list-content" v-show="reslistitem.result.syAdjustRate&&reslistitem.namesimple !== '永安财险'">
  1705. <div class="flex-1">商业折扣系数:</div>
  1706. <div class="flex-1">{{ reslistitem.result.syAdjustRate }}</div>
  1707. </div>
  1708. <div class="table-list-content" v-show="reslistitem.result.jqRenewal">
  1709. <div class="flex-1">交强续保:</div>
  1710. <div class="flex-1">{{ reslistitem.result.jqRenewal ? reslistitem.result.jqRenewal : "无" }}
  1711. </div>
  1712. </div>
  1713. <div class="table-list-content" v-show="reslistitem.result.syRenewal">
  1714. <div class="flex-1">商业续保:</div>
  1715. <div class="flex-1">{{ reslistitem.result.syRenewal ? reslistitem.result.syRenewal : "无" }}
  1716. </div>
  1717. </div>
  1718. <div class="table-list-content" v-show="reslistitem.result.jqClaims">
  1719. <div class="flex-1">交强出险次数:</div>
  1720. <div class="flex-1">{{ reslistitem.result.jqClaims ? reslistitem.result.jqClaims : "无" }}
  1721. </div>
  1722. </div>
  1723. <div class="table-list-content" v-show="reslistitem.result.syClaims">
  1724. <div class="flex-1">商业出险次数:</div>
  1725. <div class="flex-1">{{ reslistitem.result.syClaims ? reslistitem.result.syClaims : "无" }}
  1726. </div>
  1727. </div>
  1728. <div class="table-list-content" v-if="reslistitem.namesimple == '紫金财险' &&
  1729. reslistitem.result.ubiPredictedInfoScore">
  1730. <div class="flex-1">紫金能源车(鼎然-车辆风险评分):</div>
  1731. <div class="flex-1">{{ reslistitem.result.ubiPredictedInfoScore }}</div>
  1732. </div>
  1733. <div class="table-list-content"
  1734. v-if="reslistitem.result.iszdj && reslistitem.result.iszdj == '1'">
  1735. <div class="flex-1">真单交</div>
  1736. </div>
  1737. <div class="table-list-content"
  1738. v-if="reslistitem.result.iszdj && reslistitem.result.iszdj == '0'">
  1739. <div class="flex-1">假单交</div>
  1740. </div>
  1741. <div class="table-list-content" v-if="reslistitem.namesimple == '永诚财险'">
  1742. <div class="flex-1">光博分:</div>
  1743. <div class="flex-1">{{ reslistitem.result.ilogPreUdwMess ? reslistitem.result.ilogPreUdwMess :
  1744. "无" }}</div>
  1745. </div>
  1746. <div class="table-list-content" v-if="reslistitem.namesimple == '阳光财险'">
  1747. <div class="flex-1">交商合并经营成本率:</div>
  1748. <div class="flex-1">{{ reslistitem.result.mergeCostRate ? reslistitem.result.mergeCostRate :
  1749. "无" }}</div>
  1750. </div>
  1751. <div class="table-list-content" v-if="reslistitem.namesimple == '永安财险'">
  1752. <div class="flex-1">交强费用浮动:</div>
  1753. <div class="flex-1">{{ reslistitem.result.cifeeFloat ? reslistitem.result.cifeeFloat :
  1754. "无" }}</div>
  1755. </div>
  1756. <div class="table-list-content" v-if="reslistitem.namesimple == '永安财险'">
  1757. <div class="flex-1">商业费用浮动:</div>
  1758. <div class="flex-1">{{ reslistitem.result.bifeeFloat ? reslistitem.result.bifeeFloat :
  1759. "无" }}</div>
  1760. </div>
  1761. <div class="table-list-content" v-if="reslistitem.namesimple == '阳光财险'">
  1762. <div class="flex-1">向阳花评分:</div>
  1763. <div class="flex-1">{{ reslistitem.result.xyhGrade == '0' ? '非向阳花评分' : reslistitem.result.xyhGrade == '1'? '向阳花评分': "无" }}</div>
  1764. </div>
  1765. <div class="table-list-content" v-if="reslistitem.namesimple == '阳光财险'">
  1766. <div class="flex-1">红黄蓝车系:</div>
  1767. <div class="flex-1">{{ reslistitem.result.seriesTypeActualName ? reslistitem.result.seriesTypeActualName :
  1768. "无" }}</div>
  1769. </div>
  1770. <div class="table-list-content" v-if="reslistitem.namesimple == '永安财险'">
  1771. <div class="flex-1">评分:</div>
  1772. <div class="flex-1">{{ reslistitem.result.yaScore ? reslistitem.result.yaScore :
  1773. "无" }}</div>
  1774. </div>
  1775. <div class="table-list-content" v-else>
  1776. <div class="flex-1">评分:</div>
  1777. <div class="flex-1">{{ reslistitem.result.ilogPreUdwMess ? reslistitem.result.ilogPreUdwMess :
  1778. "无" }}</div>
  1779. </div>
  1780. </div>
  1781. </div>
  1782. <div style="flex: 1;"></div>
  1783. <div style="display: flex; align-items: center;">
  1784. <div style="flex: 1;"></div>
  1785. <div style="color: #2d4d89">
  1786. <el-tooltip class="item" effect="dark" content="上年信息" placement="top">
  1787. <i class="el-icon-chat-dot-round" @click="
  1788. open2(reslistitem.namesimple, reslistitem.lastYearMsg)
  1789. " style="
  1790. font-size: 20px;
  1791. transform: scale(0.8);
  1792. vertical-align: middle;
  1793. " :disabled="reslistitem.namesimple == '众安平安' &&
  1794. reslistitem.result.tips == '需要验车'
  1795. " v-show="reslistitem.quoteCode == '200' &&
  1796. reslistitem.lastYearMsg
  1797. "></i>
  1798. </el-tooltip>
  1799. <el-tooltip class="item" effect="dark" content="预核保信息" placement="top">
  1800. <i class="el-icon-chat-dot-round" @click="
  1801. openPredictInfo(
  1802. reslistitem.namesimple,
  1803. reslistitem.predictInfo
  1804. )
  1805. " style="
  1806. font-size: 20px;
  1807. transform: scale(0.8);
  1808. vertical-align: middle;
  1809. " v-show="reslistitem.quoteCode == '200' &&
  1810. reslistitem.predictInfo &&
  1811. reslistitem.predictInfo.length > 0 &&
  1812. reslistitem.namesimple == '中国人寿'
  1813. "></i>
  1814. </el-tooltip>
  1815. </div>
  1816. <el-button :disabled="reslistitem.namesimple == '众安平安' &&
  1817. reslistitem.result.tips == '需要验车'
  1818. " v-show="reslistitem.quoteCode == '200' &&
  1819. !('editStatus' in reslistitem.result)
  1820. " type="text" size="small" style="color: #2d4d89; font-size: 14px"
  1821. @click="hbsubmitdialog(reslistitem, reslistindex)">下单</el-button>
  1822. <el-button v-show="reslistitem.quoteCode == '200'" type="text" size="small"
  1823. style="color: #2d4d89; font-size: 14px"
  1824. @click="qoutedetail(reslistitem.result.companyId)">查看详情</el-button>
  1825. <el-button v-show="reslistitem.quoteCode == '200'" type="text" size="small"
  1826. style="font-size: 14px" @click="bjdpreview(reslistitem.result.companyId)">报价单</el-button>
  1827. <el-button type="text" size="small" style="font-size: 14px"
  1828. @click="Payment(reslistitem.result.companyId, reslistitem)" v-show="reslistitem.orderstatus == '2' &&
  1829. !('editStatus' in reslistitem.result) && reslistitem.namesimple !== '平安财险'
  1830. ">付款码</el-button>
  1831. <el-button type="text" size="small" style="font-size: 14px"
  1832. @click="signature(reslistitem.result.companyId)" v-show="reslistitem.orderstatus == '2' &&
  1833. !('editStatus' in reslistitem.result) && reslistitem.namesimple == '平安财险'
  1834. ">生成签章</el-button>
  1835. <el-button v-if="vehicleInspectionUrl" type="text" size="small" style="font-size: 14px"
  1836. @click="validateCarCode">验车二维码</el-button>
  1837. </div>
  1838. </div>
  1839. <!-- <div style="line-height: 25px">
  1840. 保险期限:
  1841. <span v-show="reslistitem.result.startDateJq">
  1842. 【交强险】
  1843. <span>
  1844. {{ reslistitem.result.startDateJq }} -
  1845. {{ reslistitem.result.endDateJq }}
  1846. </span>
  1847. <br />
  1848. </span>
  1849. <span v-show="reslistitem.result.startDateSy">
  1850. 【商业险】
  1851. <span>
  1852. {{ reslistitem.result.startDateSy }} -
  1853. {{ reslistitem.result.endDateSy }}
  1854. </span>
  1855. <br />
  1856. </span>
  1857. <span @click="syncData(reslistitem.result)">
  1858. <el-tooltip class="item" effect="dark" content="使用此时间" placement="top">
  1859. <i style="color: red" class="el-icon-time"></i>
  1860. </el-tooltip>
  1861. </span>
  1862. <div>
  1863. <span v-show="reslistitem.result.JqExportFee">
  1864. 交强出口费用<span>{{
  1865. reslistitem.result.JqExportFee
  1866. }}</span>
  1867. <br />
  1868. </span>
  1869. <span v-show="reslistitem.result.syExportFee">
  1870. 商业出口费用<span>{{
  1871. reslistitem.result.syExportFee
  1872. }}</span>
  1873. <br />
  1874. </span>
  1875. <span v-show="reslistitem.result.noExportFee">
  1876. 非车出口费用<span>
  1877. {{ reslistitem.result.noExportFee }}</span>
  1878. </span>
  1879. <br />
  1880. </div>
  1881. <div>
  1882. <span v-if="reslistitem.result.jqScore" class="marginL">
  1883. 交强类型评分:
  1884. <span>{{ reslistitem.result.jqScore }}</span>
  1885. <br />
  1886. </span>
  1887. <span v-if="reslistitem.result.syScore" class="marginL">
  1888. 商业类型评分:
  1889. <span>{{ reslistitem.result.syScore }}</span>
  1890. <br />
  1891. </span>
  1892. <span v-if="reslistitem.result.lossRation" class="marginL">
  1893. 总赔付率:
  1894. <span>{{ reslistitem.result.lossRation }}</span>
  1895. <br />
  1896. </span>
  1897. <span v-if="reslistitem.result.jqLossRation" class="marginL">
  1898. 交强赔付率:
  1899. <span>{{ reslistitem.result.jqLossRation }}</span>
  1900. <br />
  1901. </span>
  1902. <span v-if="reslistitem.result.syLossRation" class="marginL">
  1903. 商业赔付率:
  1904. <span>{{ reslistitem.result.syLossRation }}</span>
  1905. <br />
  1906. </span>
  1907. <span v-if="reslistitem.result.totalAdjustRate" class="marginL">
  1908. 自主定价系数:
  1909. <span>{{ reslistitem.result.totalAdjustRate }}</span>
  1910. <br />
  1911. </span>
  1912. <span v-if="reslistitem.result.jgAdjustRate" class="marginL">
  1913. 交强折扣系数:
  1914. <span>{{ reslistitem.result.jgAdjustRate }}</span>
  1915. <br />
  1916. </span>
  1917. <span v-if="reslistitem.result.syAdjustRate" class="marginL">
  1918. 商业折扣系数:
  1919. <span>{{ reslistitem.result.syAdjustRate }}</span>
  1920. <br />
  1921. </span>
  1922. <span v-if="reslistitem.result.jqRenewal" class="marginL">
  1923. 交强续保:
  1924. <span>
  1925. {{
  1926. reslistitem.result.jqRenewal
  1927. ? reslistitem.result.jqRenewal
  1928. : "无"
  1929. }}
  1930. </span>
  1931. <br />
  1932. </span>
  1933. <span v-if="reslistitem.result.syRenewal" class="marginL">
  1934. 商业续保:
  1935. <span>
  1936. {{
  1937. reslistitem.result.syRenewal
  1938. ? reslistitem.result.syRenewal
  1939. : "无"
  1940. }}
  1941. </span>
  1942. <br />
  1943. </span>
  1944. <span v-if="reslistitem.result.jqClaims" class="marginL">
  1945. 交强出险次数:
  1946. <span>
  1947. {{
  1948. reslistitem.result.jqClaims
  1949. ? reslistitem.result.jqClaims
  1950. : "无"
  1951. }}
  1952. </span>
  1953. <br />
  1954. </span>
  1955. <span v-if="reslistitem.result.syClaims" class="marginL">
  1956. 商业出险次数:
  1957. <span>
  1958. {{
  1959. reslistitem.result.syClaims
  1960. ? reslistitem.result.syClaims
  1961. : "无"
  1962. }}
  1963. </span>
  1964. <br />
  1965. </span>
  1966. <span v-if="reslistitem.namesimple == '紫金财险' &&
  1967. reslistitem.result.ubiPredictedInfoScore
  1968. " class="marginL">
  1969. 紫金能源车(鼎然-车辆风险评分):
  1970. <span>{{ reslistitem.result.ubiPredictedInfoScore }}</span>
  1971. <br />
  1972. </span>
  1973. <span v-if="reslistitem.result.iszdj &&
  1974. reslistitem.result.iszdj == '1'
  1975. ">真单交</span>
  1976. <span v-if="reslistitem.result.iszdj &&
  1977. reslistitem.result.iszdj == '0'
  1978. ">假单交</span>
  1979. <span v-if="reslistitem.namesimple == '永诚财险'">
  1980. 光博分:
  1981. <span>
  1982. {{
  1983. reslistitem.result.ilogPreUdwMess
  1984. ? reslistitem.result.ilogPreUdwMess
  1985. : "无"
  1986. }}
  1987. </span>
  1988. <br />
  1989. </span>
  1990. <span v-else>
  1991. 评分:
  1992. <span>
  1993. {{
  1994. reslistitem.result.ilogPreUdwMess
  1995. ? reslistitem.result.ilogPreUdwMess
  1996. : "无"
  1997. }}
  1998. </span>
  1999. <br />
  2000. </span>
  2001. </div>
  2002. </div> -->
  2003. </el-col>
  2004. <!-- <el-col :gutter="20" :span="24" class="company-checked-left">
  2005. <div class="company-checked-card" v-if="reslistitem.programme">
  2006. <div>
  2007. <div class="checked-card-title">险种</div>
  2008. <div class="checked-card-content">
  2009. <span class="blue-style" v-show="reslistitem.programme.description">{{ reslistitem.programme.description }}</span>
  2010. <span v-show="reslistitem.checkedProgramme == 99" class="blue-button" @click="showTypeDialog(reslistitem, reslistindex)">调整险种</span>
  2011. </div>
  2012. </div>
  2013. <div>
  2014. <div class="checked-card-title">主险</div>
  2015. <div class="checked-card-content" v-if="reslistitem.programme.kinds">
  2016. <span class="blue-text" v-for="(kinds, kindIndex) in reslistitem.programme.kinds.main" :key="kindIndex">{{ kinds.alias || kinds.kindName }} {{ toWan(kinds.amount) }}</span>
  2017. <span style="color: rgba(51,51,51,0.65);" v-if="reslistitem.programme.kinds.main.length == 0">暂无</span>
  2018. </div>
  2019. </div>
  2020. <div>
  2021. <div class="checked-card-title">附加险</div>
  2022. <div class="checked-card-content" v-if="reslistitem.programme.kinds">
  2023. <span v-for="(kinds, kindIndex) in reslistitem.programme.kinds.additional" :key="kindIndex">{{ kinds.alias || kinds.kindName }} {{ toWan(kinds.amount) }}</span>
  2024. <span style="color: rgba(51,51,51,0.65);" v-if="reslistitem.programme.kinds.additional.length == 0">暂无</span>
  2025. </div>
  2026. </div>
  2027. <div>
  2028. <div class="checked-card-title">驾意险</div>
  2029. <div class="checked-card-content" v-if="reslistitem.programme.kinds">
  2030. <div v-for="(driving, drivingIndex) in reslistitem.programme.drivingList" :key="drivingIndex" style="margin-bottom: 10px;">
  2031. <span style="margin-right: 0;" v-if="reslistitem.cnName == 'guoRen' || reslistitem.cnName == 'ansheng'">{{ driving.select }}</span>
  2032. <span>{{ driving.alias || driving.projectName }} {{ driving.quantity }}份 ¥{{ Number(driving.sumPremium) * driving.quantity }}</span>
  2033. <span v-show="reslistitem.checkedProgramme == 99"><i class="el-icon-delete" @click="deleteJiaYi(reslistindex, drivingIndex)"></i></span>
  2034. <span class="blue-button" @click="showDetailJiaYi(reslistindex, driving)">查看详情</span>
  2035. <span class="blue-button" @click="addJiaYi(reslistitem)" v-show="drivingIndex == 0 && reslistitem.checkedProgramme == 99">+驾意险</span>
  2036. </div>
  2037. <span class="blue-button" @click="addJiaYi(reslistitem)" v-show="!reslistitem.programme.drivingList.length && reslistitem.checkedProgramme == 99">+驾意险</span>
  2038. </div>
  2039. </div>
  2040. <div style="margin-top: -10px;">
  2041. <div class="checked-card-title">服务</div>
  2042. <div class="checked-card-content" v-if="reslistitem.programme.kinds">
  2043. <span v-for="(kinds, kindIndex) in reslistitem.programme.kinds.service" :key="kindIndex">{{ kinds.alias || kinds.kindName }} {{ toWan(kinds.amount, 'fw') }}</span>
  2044. <span style="color: rgba(51,51,51,0.65);" v-if="reslistitem.programme.kinds.service.length == 0">暂无</span>
  2045. </div>
  2046. </div>
  2047. <div>
  2048. <div class="checked-card-title">其他</div>
  2049. <div class="checked-card-content" v-show="reslistitem.checkedProgramme == 99 && reslistitem.cnName == 'guoRen'">
  2050. <div v-if="reslistitem.programme">
  2051. <div v-for="(teyueitem, teyueindex) in reslistitem.programme.teyue" :key="teyueindex">{{ teyueitem.clauseName }}</div>
  2052. <span style="color: #F96646;" @click="contributingGuoRen(reslistitem.agreementId, reslistindex)">选择特约</span>
  2053. </div>
  2054. </div>
  2055. <el-col :span="20" v-show="reslistitem.cnName == 'zijin'">
  2056. <div v-show="reslistitem.cnName == 'zijin'">自定义系数:
  2057. <el-input v-model="reslistitem.coefficient" size="mini" class="coefficient" placeholder="请输入"></el-input>
  2058. </div>
  2059. </el-col>
  2060. </div>
  2061. </div>
  2062. </el-col> -->
  2063. </el-row>
  2064. </div>
  2065. <!--
  2066. <div class="flex j-s offer-time" v-if="reslistitem.quoteCode == '200'">
  2067. <div style="line-height: 25px">
  2068. 保险期限:
  2069. <span v-show="reslistitem.result.startDateJq">
  2070. 【交强险】
  2071. <span>
  2072. {{ reslistitem.result.startDateJq }} -
  2073. {{ reslistitem.result.endDateJq }}
  2074. </span>
  2075. </span>
  2076. <span v-show="reslistitem.result.startDateSy" style="margin-left: 20px">
  2077. 【商业险】
  2078. <span>
  2079. {{ reslistitem.result.startDateSy }} -
  2080. {{ reslistitem.result.endDateSy }}
  2081. </span>
  2082. </span>
  2083. <span @click="syncData(reslistitem.result)">
  2084. <el-tooltip class="item" effect="dark" content="使用此时间" placement="top">
  2085. <i style="color: red" class="el-icon-time"></i>
  2086. </el-tooltip>
  2087. </span>
  2088. <div>
  2089. <span v-show="reslistitem.result.JqExportFee">
  2090. 交强出口费用<span>{{
  2091. reslistitem.result.JqExportFee
  2092. }}</span>
  2093. </span>
  2094. <span v-show="reslistitem.result.syExportFee">
  2095. 商业出口费用<span>{{
  2096. reslistitem.result.syExportFee
  2097. }}</span>
  2098. </span>
  2099. <span v-show="reslistitem.result.noExportFee">
  2100. 非车出口费用<span>
  2101. {{ reslistitem.result.noExportFee }}</span>
  2102. </span>
  2103. </div>
  2104. <div>
  2105. <span v-if="reslistitem.namesimple == '永诚财险'">
  2106. 光博分:
  2107. <span>
  2108. {{
  2109. reslistitem.result.ilogPreUdwMess
  2110. ? reslistitem.result.ilogPreUdwMess
  2111. : "无"
  2112. }}
  2113. </span>
  2114. </span>
  2115. <span v-else>
  2116. 评分:
  2117. <span>
  2118. {{
  2119. reslistitem.result.ilogPreUdwMess
  2120. ? reslistitem.result.ilogPreUdwMess
  2121. : "无"
  2122. }}
  2123. </span>
  2124. </span>
  2125. <span v-if="reslistitem.result.jqScore" class="marginL">
  2126. 交强类型评分:
  2127. <span>{{ reslistitem.result.jqScore }}</span>
  2128. </span>
  2129. <span v-if="reslistitem.result.syScore" class="marginL">
  2130. 商业类型评分:
  2131. <span>{{ reslistitem.result.syScore }}</span>
  2132. </span>
  2133. <span v-if="reslistitem.result.lossRation" class="marginL">
  2134. 总赔付率:
  2135. <span>{{ reslistitem.result.lossRation }}</span>
  2136. </span>
  2137. <span v-if="reslistitem.result.jqLossRation" class="marginL">
  2138. 交强赔付率:
  2139. <span>{{ reslistitem.result.jqLossRation }}</span>
  2140. </span>
  2141. <span v-if="reslistitem.result.syLossRation" class="marginL">
  2142. 商业赔付率:
  2143. <span>{{ reslistitem.result.syLossRation }}</span>
  2144. </span>
  2145. <span v-if="reslistitem.result.totalAdjustRate" class="marginL">
  2146. 自主定价系数:
  2147. <span>{{ reslistitem.result.totalAdjustRate }}</span>
  2148. </span>
  2149. <span v-if="reslistitem.result.jgAdjustRate" class="marginL">
  2150. 交强折扣系数:
  2151. <span>{{ reslistitem.result.jgAdjustRate }}</span>
  2152. </span>
  2153. <span v-if="reslistitem.result.syAdjustRate" class="marginL">
  2154. 商业折扣系数:
  2155. <span>{{ reslistitem.result.syAdjustRate }}</span>
  2156. </span>
  2157. <span v-if="reslistitem.result.jqRenewal" class="marginL">
  2158. 交强续保:
  2159. <span>
  2160. {{
  2161. reslistitem.result.jqRenewal
  2162. ? reslistitem.result.jqRenewal
  2163. : "无"
  2164. }}
  2165. </span>
  2166. </span>
  2167. <span v-if="reslistitem.result.syRenewal" class="marginL">
  2168. 商业续保:
  2169. <span>
  2170. {{
  2171. reslistitem.result.syRenewal
  2172. ? reslistitem.result.syRenewal
  2173. : "无"
  2174. }}
  2175. </span>
  2176. </span>
  2177. <span v-if="reslistitem.result.jqClaims" class="marginL">
  2178. 交强出险次数:
  2179. <span>
  2180. {{
  2181. reslistitem.result.jqClaims
  2182. ? reslistitem.result.jqClaims
  2183. : "无"
  2184. }}
  2185. </span>
  2186. </span>
  2187. <span v-if="reslistitem.result.syClaims" class="marginL">
  2188. 商业出险次数:
  2189. <span>
  2190. {{
  2191. reslistitem.result.syClaims
  2192. ? reslistitem.result.syClaims
  2193. : "无"
  2194. }}
  2195. </span>
  2196. </span>
  2197. <span v-if="reslistitem.namesimple == '紫金财险' &&
  2198. reslistitem.result.ubiPredictedInfoScore
  2199. " class="marginL">
  2200. 紫金能源车(鼎然-车辆风险评分):
  2201. <span>{{ reslistitem.result.ubiPredictedInfoScore }}</span>
  2202. </span>
  2203. <span v-if="reslistitem.result.iszdj &&
  2204. reslistitem.result.iszdj == '1'
  2205. ">真单交</span>
  2206. <span v-if="reslistitem.result.iszdj &&
  2207. reslistitem.result.iszdj == '0'
  2208. ">假单交</span>
  2209. </div>
  2210. </div>
  2211. <div style="text-align: right">
  2212. <div style="color: #2d4d89">
  2213. <el-tooltip class="item" effect="dark" content="上年信息" placement="top">
  2214. <i class="el-icon-chat-dot-round" @click="
  2215. open2(reslistitem.namesimple, reslistitem.lastYearMsg)
  2216. " style="
  2217. font-size: 20px;
  2218. transform: scale(0.8);
  2219. vertical-align: middle;
  2220. " :disabled="reslistitem.namesimple == '众安平安' &&
  2221. reslistitem.result.tips == '需要验车'
  2222. " v-show="reslistitem.quoteCode == '200' &&
  2223. reslistitem.lastYearMsg
  2224. "></i>
  2225. </el-tooltip>
  2226. <el-tooltip class="item" effect="dark" content="预核保信息" placement="top">
  2227. <i class="el-icon-chat-dot-round" @click="
  2228. openPredictInfo(
  2229. reslistitem.namesimple,
  2230. reslistitem.predictInfo
  2231. )
  2232. " style="
  2233. font-size: 20px;
  2234. transform: scale(0.8);
  2235. vertical-align: middle;
  2236. " v-show="reslistitem.quoteCode == '200' &&
  2237. reslistitem.predictInfo &&
  2238. reslistitem.predictInfo.length > 0 &&
  2239. reslistitem.namesimple == '中国人寿'
  2240. "></i>
  2241. </el-tooltip>
  2242. <el-button :disabled="reslistitem.namesimple == '众安平安' &&
  2243. reslistitem.result.tips == '需要验车'
  2244. " v-show="reslistitem.quoteCode == '200' &&
  2245. !('editStatus' in reslistitem.result)
  2246. " type="text" size="small" style="color: #2d4d89; font-size: 14px"
  2247. @click="hbsubmitdialog(reslistitem)">下单</el-button>
  2248. <el-button v-show="reslistitem.quoteCode == '200'" type="text" size="small"
  2249. style="color: #2d4d89; font-size: 14px"
  2250. @click="qoutedetail(reslistitem.result.companyId)">查看详情</el-button>
  2251. </div>
  2252. <div>
  2253. <el-button v-show="reslistitem.quoteCode == '200'" type="text" size="small" style="font-size: 14px"
  2254. @click="bjdpreview(reslistitem.result.companyId)">报价单</el-button>
  2255. <el-button type="text" size="small" style="font-size: 14px"
  2256. @click="Payment(reslistitem.result.companyId, reslistitem)" v-show="reslistitem.orderstatus == '2' &&
  2257. !('editStatus' in reslistitem.result) && reslistitem.namesimple !== '平安财险'
  2258. ">付款码</el-button>
  2259. <el-button type="text" size="small" style="font-size: 14px"
  2260. @click="signature(reslistitem.result.companyId)" v-show="reslistitem.orderstatus == '2' &&
  2261. !('editStatus' in reslistitem.result) && reslistitem.namesimple == '平安财险'
  2262. ">生成签章</el-button>
  2263. </div>
  2264. </div>
  2265. </div>
  2266. <template>
  2267. <span v-if="reslistitem.checked &&
  2268. reslistitem.agreementId &&
  2269. reslistitem.underwritingDescription
  2270. " style="margin: 20px 20px 0 100px; display: inline-block">{{ reslistitem.underwritingDescription}}</span>
  2271. </template>
  2272. <template v-if="reslistitem.namesimple == '平安财险' &&
  2273. reslistitem.checked &&
  2274. reslistitem.agreementId
  2275. ">
  2276. <div class="flex f-c Driving-risk">
  2277. <div v-for="(val, index) in pinganInsuranceData" :key="index" >
  2278. <el-form :inline="true" :model="accidentFormPA[index-1]" class="demo-form-inline" size="small"
  2279. style="font-weight: bold;margin-top:15px ">
  2280. <el-form-item :label="index=='1'?'财意险':index=='2'?'小微险':'组合险'" style="margin-right: 30px">
  2281. <el-select clearable v-model="accidentFormPA[index-1].pingantemplateSelection" placeholder="未选择" @clear="clearAccidentFormPA(index-1,)"
  2282. @change="pinganInsuranceChange($event,index-1,val)">
  2283. <el-option v-for="(item, index1) in val" :key="index1" :label="item.projectName"
  2284. :value="item.projectName"></el-option>
  2285. </el-select>
  2286. </el-form-item>
  2287. <el-form-item label="选择份数" style="margin-right: 50px" v-if="index ==1||index ==2">
  2288. <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"
  2289. controls-position="right"></el-input-number>
  2290. </el-form-item>
  2291. <el-form-item label="保费:" v-if="index ==1||index ==2">
  2292. <span>{{ accidentFormPA[index-1].premium || 0 }}&ensp;元</span>
  2293. </el-form-item>
  2294. </el-form>
  2295. <el-table class="pinganTable" style="margin-top: 20px" size="small" :data="accidentFormPA[index-1].pinganInsuranceDataTable" border
  2296. v-if="accidentFormPA[index-1].pingantemplateSelection" highlight-current-row :header-cell-style="{
  2297. background: '#F7F7F9 ',
  2298. fontWeight: '700',
  2299. color: '#333333',
  2300. }" ref="RsTable" @select="(selections,row)=>{PADrivingCheckbox(selections,row,reslistitem.agreementId,index-1)}">
  2301. <el-table-column align="center" width="55" label="选择" v-if="index ==1||index ==2">
  2302. <template slot-scope="scope">
  2303. <el-radio class="radio" v-model="accidentFormPA[index-1].pinganInsurancetype" :label="scope.row.code"
  2304. @click.native.stop.prevent="PADrivingRadio(scope.row,reslistitem.agreementId,index-1)">&nbsp;</el-radio>
  2305. </template>
  2306. </el-table-column>
  2307. <el-table-column type="selection" v-else width="55">
  2308. </el-table-column>
  2309. <el-table-column prop="name" label="方案名称" align="center"></el-table-column>
  2310. <el-table-column prop="code" label="方案代码" align="center"></el-table-column>
  2311. <el-table-column prop="premium" label="保费 (元)/每份" align="center">
  2312. </el-table-column>
  2313. <el-table-column prop="quantity" label="份数" align="center" v-if="index ==3">
  2314. <template slot-scope="scope">
  2315. <el-input-number size='small' v-model="scope.row.quantity" :min="1" :max="Number(scope.row.sellListSize)"
  2316. controls-position="right"></el-input-number>
  2317. </template>
  2318. </el-table-column>
  2319. <el-table-column label="操作" width="100">
  2320. <template slot-scope="scope">
  2321. <el-button type="text" size="small" @click="pinganDetail(scope.row,reslistitem.agreementId)">查看</el-button>
  2322. </template>
  2323. </el-table-column>
  2324. </el-table>
  2325. </div>
  2326. </div>
  2327. </template>
  2328. <template v-if="reslistitem.namesimple == '泰康财险' &&
  2329. reslistitem.checked &&
  2330. reslistitem.agreementId &&
  2331. isLetter !== '3'
  2332. ">
  2333. <div class="flex f-c Driving-risk">
  2334. <el-form :inline="true" :model="accidentFormTk" class="demo-form-inline" size="small"
  2335. style="font-weight: bold; margin-top: 15px">
  2336. <el-form-item label="意外险类型" style="margin-right: 30px">
  2337. <el-select clearable v-model="taikangtemplateSelection" placeholder="未选择" @clear="clearAccidentFormTk"
  2338. @change="taikangInsuranceChange">
  2339. <el-option v-for="(item, index) in taikangaccidentDataList" :key="index" :label="item.projectName"
  2340. :value="item.projectCode"></el-option>
  2341. </el-select>
  2342. </el-form-item>
  2343. <el-form-item label="选择份数" style="margin-right: 50px">
  2344. <el-input-number v-model="accidentFormTk.quantity" @change="numberCopieschangeTk" :min="1"
  2345. controls-position="right"></el-input-number>
  2346. </el-form-item>
  2347. <el-form-item label="保费:">
  2348. <span>{{ accidentFormTk.sumPremium }}&ensp;元</span>
  2349. </el-form-item>
  2350. </el-form>
  2351. <el-table v-if="taikangtemplateSelection" size="small" :data="taikangInsuranceDataTable" border
  2352. ref="expandTable" highlight-current-row :header-cell-style="{
  2353. background: '#F7F7F9',
  2354. fontWeight: '700',
  2355. color: '#333333',
  2356. }">
  2357. <el-table-column prop="name" label="保险责任" align="center"></el-table-column>
  2358. <el-table-column prop="amount" label="每座保额 (元)/每份" align="center"></el-table-column>
  2359. <el-table-column prop="sumAmount" label="每车保额 (元)/每份" align="center"></el-table-column>
  2360. <el-table-column prop="premium" label="责任保费 (元)/每份" align="center"></el-table-column>
  2361. </el-table>
  2362. </div>
  2363. </template>
  2364. <template v-if="reslistitem.namesimple == '恒邦财险' &&
  2365. reslistitem.checked &&
  2366. reslistitem.agreementId &&
  2367. isLetter !== '3'
  2368. ">
  2369. <div class="flex f-c Driving-risk">
  2370. <div class="dis a-c" style="margin: 15px 0">
  2371. <span style="margin-right: 15px; font-weight: bold">选择意外险</span>
  2372. <el-select style="width: 250px; margin-right: 60px" filterable size="small" clearable
  2373. v-model="hengbangtemplateSelection" placeholder="未选择" @clear="clearAccidentFormHB"
  2374. @change="hengbangInsuranceChange">
  2375. <el-option v-for="(item, index) in hengbangInsuranceData" :key="index" :label="item.projectName"
  2376. :value="item.projectCode"></el-option>
  2377. </el-select>
  2378. 保费:
  2379. <b>{{
  2380. hengbangaccidentalDrivingVo.sumPremium || 0
  2381. }}&ensp;元</b>
  2382. </div>
  2383. <el-table size="small" :data="hengbangInsuranceDataTable" border v-if="hengbangtemplateSelection"
  2384. ref="RsTable" highlight-current-row :header-cell-style="{
  2385. background: '#F7F7F9 ',
  2386. fontWeight: '700',
  2387. color: '#333333',
  2388. }">
  2389. <el-table-column prop="name" label="险种名称" align="center"></el-table-column>
  2390. <el-table-column prop="amount" label="保额" align="center"></el-table-column>
  2391. </el-table>
  2392. </div>
  2393. </template>
  2394. <template v-if="reslistitem.namesimple == '华农财险' &&
  2395. reslistitem.checked &&
  2396. reslistitem.agreementId &&
  2397. isLetter !== '3'
  2398. ">
  2399. <div class="flex f-c Driving-risk">
  2400. <el-form :inline="true" :model="accidentFormHN" class="demo-form-inline"
  2401. style="font-weight: bold; margin-top: 15px" size="small">
  2402. <el-form-item label="意外险类型:" style="margin-right: 30px">
  2403. <el-select clearable v-model="accidentFormHN.accidentType" placeholder="未选择"
  2404. @clear="clearAccidentFormHN" @change="huanongInsuranceChange">
  2405. <el-option v-for="(item, index) in huanongInsuranceData" :key="index" :label="item.projectName"
  2406. :value="item.projectCode"></el-option>
  2407. </el-select>
  2408. </el-form-item>
  2409. <el-form-item label="选择份数" style="margin-right: 30px">
  2410. <el-input-number v-model="accidentFormHN.quantity" :min="1"
  2411. controls-position="right"></el-input-number>
  2412. </el-form-item>
  2413. </el-form>
  2414. <el-table v-if="accidentFormHN.accidentType" size="small" :data="huanongInsuranceDataTable" border
  2415. ref="expandTable" highlight-current-row :header-cell-style="{
  2416. background: '#F7F7F9 ',
  2417. fontWeight: '700',
  2418. color: '#333333',
  2419. }">
  2420. <el-table-column prop="name" label="保险责任" align="center"></el-table-column>
  2421. <el-table-column prop="amount" label="保额" align="center">
  2422. <template slot-scope="scope">
  2423. <el-input v-model="scope.row.amount" placeholder="请输入内容" size="small" disabled></el-input>
  2424. </template>
  2425. </el-table-column>
  2426. </el-table>
  2427. </div>
  2428. </template>
  2429. <template v-if="reslistitem.namesimple == '太平财险' &&
  2430. reslistitem.checked &&
  2431. reslistitem.agreementId &&
  2432. isLetter !== '3'
  2433. ">
  2434. <div class="flex f-c Driving-risk">
  2435. <div class="dis a-c" style="margin: 15px 0">
  2436. <span style="margin-right: 15px; font-weight: bold">选择意外险</span>
  2437. <el-select style="width: 250px; margin-right: 60px" filterable size="small" clearable
  2438. v-model="taipingtemplateSelection" placeholder="未选择" @clear="clearAccidentFormTP"
  2439. @change="taipingInsuranceChange">
  2440. <el-option v-for="(item, index) in taipingInsuranceData" :key="index" :label="item.projectName"
  2441. :value="item.projectCode"></el-option>
  2442. </el-select>
  2443. 每份价税合计:
  2444. <b>{{ taipingaccidentalDrivingVo.sumPremium || 0 }}&ensp;元</b>
  2445. </div>
  2446. <el-table size="small" :data="taipingInsuranceDataTable" border v-if="taipingtemplateSelection"
  2447. ref="RsTable" highlight-current-row :header-cell-style="{
  2448. background: '#F7F7F9 ',
  2449. fontWeight: '700',
  2450. color: '#333333',
  2451. }">
  2452. <el-table-column prop="name" label="险种名称" align="center"></el-table-column>
  2453. <el-table-column prop="amount" label="险种金额" align="center"></el-table-column>
  2454. </el-table>
  2455. </div>
  2456. </template>
  2457. <template v-if="reslistitem.namesimple == '安盛天平' &&
  2458. reslistitem.checked &&
  2459. reslistitem.agreementId &&
  2460. isLetter !== '3'
  2461. ">
  2462. <div class="flex f-c Driving-risk">
  2463. <div class="dis a-c" style="margin-top: 15px">
  2464. <span style="margin-right: 15px; font-weight: bold">意外险类型</span>
  2465. <el-select style="width: 250px" size="small" clearable v-model="anshengtemplateSelection"
  2466. placeholder="未选择" @clear="clearAccidentFormAS" @change="anshengInsuranceChange">
  2467. <el-option v-for="(item, index) in anshengInsuranceData" :key="index"
  2468. :label="item.projectCode + ' ' + item.projectName" :value="item.projectCode"></el-option>
  2469. </el-select>
  2470. </div>
  2471. <el-table style="margin-top: 20px" size="small" :data="anshengInsuranceDataTable" border
  2472. v-if="anshengtemplateSelection" ref="RsTable" highlight-current-row :header-cell-style="{
  2473. background: '#F7F7F9 ',
  2474. fontWeight: '700',
  2475. color: '#333333',
  2476. }">
  2477. <el-table-column align="center" width="55" label="选择">
  2478. <template slot-scope="scope">
  2479. <el-radio class="radio" v-model="anshengInsurancetype" :label="scope.row.projectCode"
  2480. @click.native.stop.prevent="ASDrivingRadio(scope.row)">&nbsp;</el-radio>
  2481. </template>
  2482. </el-table-column>
  2483. <el-table-column prop="projectName" label="方案名称" align="center"></el-table-column>
  2484. <el-table-column prop="projectCode" label="方案代码" align="center"></el-table-column>
  2485. <el-table-column prop="quantity" label="份数" align="center">
  2486. </el-table-column>
  2487. </el-table>
  2488. </div>
  2489. </template>
  2490. <template v-if="reslistitem.namesimple == '中国人寿' &&
  2491. reslistitem.checked &&
  2492. reslistitem.agreementId &&
  2493. isLetter !== '3'
  2494. ">
  2495. <div style="margin: 15px 0 15px 100px">
  2496. <span>商业险折扣:</span>
  2497. <el-input style="width: 220px" :disabled="!lastCompanyId" size="small" v-model="reslistitem.discount"
  2498. placeholder="请输入内容" @input="
  2499. reslistitem.discount = reslistitem.discount.replace(
  2500. /[^\d.]/g,
  2501. ''
  2502. )
  2503. "></el-input>
  2504. </div>
  2505. <div class="flex f-c Driving-risk">
  2506. <div class="dis a-c">
  2507. <span style="margin-right: 15px; font-weight: bold">选择意外险</span>
  2508. <el-select style="width: 250px" filterable size="small" clearable v-model="renshoutemplateSelection"
  2509. placeholder="未选择" @clear="clearAccidentFormRS" @change="renshouInsuranceChange">
  2510. <el-option v-for="(item, index) in renshouInsuranceData" :key="index" :label="item.projectName"
  2511. :value="item.projectCode"></el-option>
  2512. </el-select>
  2513. </div>
  2514. <el-table size="small" style="margin-top: 20px" :data="renshouInsuranceDataTable" border
  2515. v-if="renshoutemplateSelection" @row-click="RSDrivingChange" ref="RsTable" highlight-current-row
  2516. :header-cell-style="{
  2517. background: '#F7F7F9 ',
  2518. fontWeight: '700',
  2519. color: '#333333',
  2520. }">
  2521. <el-table-column prop="name" label="方案名称" align="center"></el-table-column>
  2522. <el-table-column prop="premium" label="保费 (元)起" align="center">
  2523. <template slot-scope="scope">
  2524. <span>¥{{ scope.row.premium }}</span>
  2525. </template>
  2526. </el-table-column>
  2527. <el-table-column label="份数" align="center">
  2528. <template slot-scope="scope">
  2529. <span>{{ scope.row.quantity }}</span>
  2530. </template>
  2531. </el-table-column>
  2532. </el-table>
  2533. </div>
  2534. </template>
  2535. <template v-if="reslistitem.namesimple == '众安平安' &&
  2536. reslistitem.checked &&
  2537. reslistitem.agreementId &&
  2538. isLetter !== '3'
  2539. ">
  2540. <div class="flex f-c Driving-risk">
  2541. <div class="dis a-c" style="margin: 15px 0">
  2542. <span style="margin-right: 15px; font-weight: bold">选择意外险</span>
  2543. <el-select style="width: 250px" filterable size="small" clearable v-model="zhongantemplateSelection"
  2544. placeholder="未选择" @clear="clearAccidentFormZA" @change="zhonganInsuranceChange">
  2545. <el-option v-for="(item, index) in zhonganInsuranceData" :key="index" :label="item.projectName"
  2546. :value="item.projectCode"></el-option>
  2547. </el-select>
  2548. </div>
  2549. <el-table size="small" :data="zhonganInsuranceDataTable" border v-if="zhongantemplateSelection"
  2550. @row-click="ZADrivingChange" ref="RsTable" highlight-current-row :header-cell-style="{
  2551. background: '#F7F7F9 ',
  2552. fontWeight: '700',
  2553. color: '#333333',
  2554. }">
  2555. <el-table-column prop="name" label="险种名称" align="center"></el-table-column>
  2556. <el-table-column prop="amount" label="险种金额" align="center"></el-table-column>
  2557. </el-table>
  2558. </div>
  2559. </template>
  2560. <template v-if="reslistitem.namesimple == '紫金财险' &&
  2561. reslistitem.checked &&
  2562. reslistitem.agreementId &&
  2563. isLetter !== '3'
  2564. ">
  2565. <div style="margin: 15px 0 15px 100px">
  2566. <span>自主定价系数:</span>
  2567. <el-input style="width: 220px" size="small" v-model="reslistitem.coefficient"
  2568. placeholder="请输入内容"></el-input>
  2569. </div>
  2570. <div class="flex f-c Driving-risk">
  2571. <div class="dis a-c" style="margin-bottom: 15px">
  2572. <span style="margin-right: 15px; font-weight: bold">选择意外险</span>
  2573. <el-select style="width: 250px" filterable multiple size="small" clearable
  2574. v-model="zijintemplateSelection" placeholder="未选择" @clear="clearAccidentFormZJ"
  2575. @change="zijinInsuranceChange">
  2576. <el-option v-for="(item, index) in ziJinInsuranceData" :key="index" :label="item.projectName"
  2577. :value="item.projectCode"></el-option>
  2578. </el-select>
  2579. </div>
  2580. <el-table size="small" :data="zijinInsuranceDataTable" border v-if="zijintemplateSelection"
  2581. @select="CheckboxChange" filterable ref="expandTable" highlight-current-row :header-cell-style="{
  2582. background: '#F7F7F9 ',
  2583. fontWeight: '700',
  2584. color: '#333333',
  2585. }">
  2586. <el-table-column type="selection" width="55"></el-table-column>
  2587. <el-table-column prop="projectName" label="方案名称" align="center"></el-table-column>
  2588. <el-table-column prop="sumAmount" label="总保额 (元)/每份" align="center"></el-table-column>
  2589. <el-table-column prop="sumPremium" label="保费 (元)/每份" align="center">
  2590. <template slot-scope="scope">
  2591. <span>¥{{ scope.row.sumPremium }}</span>
  2592. </template>
  2593. </el-table-column>
  2594. <el-table-column prop="quantity" label="份数" align="center">
  2595. <template slot-scope="scope">
  2596. <el-input-number v-model="scope.row.quantity" :min="1" size="small"
  2597. controls-position="right"></el-input-number>
  2598. </template>
  2599. </el-table-column>
  2600. <el-table-column prop="Totalprice" label="总保费 (元)" align="center">
  2601. <template slot-scope="scope">
  2602. <span v-if="scope.row.quantity">{{
  2603. scope.row.sumPremium * scope.row.quantity
  2604. }}</span>
  2605. <span v-else>{{ scope.row.sumPremium }}</span>
  2606. </template>
  2607. </el-table-column>
  2608. </el-table>
  2609. </div>
  2610. </template>
  2611. <template v-if="reslistitem.namesimple == '永诚财险' &&
  2612. reslistitem.checked &&
  2613. reslistitem.agreementId &&
  2614. isLetter !== '3'
  2615. ">
  2616. <div class="flex f-c Driving-risk">
  2617. <el-form :inline="true" :model="accidentForm" class="demo-form-inline" size="small"
  2618. style="font-weight: bold; margin-top: 15px">
  2619. <el-form-item label="意外险类型" style="margin-right: 30px">
  2620. <el-select clearable v-model="yongchengtemplateSelection" placeholder="未选择" @clear="clearAccidentForm"
  2621. @change="yongchengInsuranceChange">
  2622. <el-option v-for="(item, index) in yongchengaccidentDataList" :key="index" :label="item.projectName"
  2623. :value="item.projectCode"></el-option>
  2624. </el-select>
  2625. </el-form-item>
  2626. <el-form-item label="选择份数" style="margin-right: 50px">
  2627. <el-input-number v-model="accidentForm.quantity" @change="numberCopieschange" :min="1"
  2628. controls-position="right"></el-input-number>
  2629. </el-form-item>
  2630. <el-form-item label="保费:">
  2631. <span>{{ accidentForm.sumPremium }}&ensp;元</span>
  2632. </el-form-item>
  2633. </el-form>
  2634. <el-table v-if="yongchengtemplateSelection" size="small" :data="yongchengInsuranceDataTable" border
  2635. ref="expandTable" highlight-current-row :header-cell-style="{
  2636. background: '#F7F7F9',
  2637. fontWeight: '700',
  2638. color: '#333333',
  2639. }">
  2640. <el-table-column prop="name" label="保险责任" align="center"></el-table-column>
  2641. <el-table-column prop="amount" label="每座保额 (元)/每份" align="center"></el-table-column>
  2642. <el-table-column prop="sumAmount" label="每车保额 (元)/每份" align="center"></el-table-column>
  2643. <el-table-column prop="premium" label="责任保费 (元)/每份" align="center"></el-table-column>
  2644. </el-table>
  2645. </div>
  2646. </template>
  2647. <template v-if="reslistitem.namesimple == '国任财险' &&
  2648. reslistitem.checked &&
  2649. reslistitem.agreementId &&
  2650. isLetter !== '3'
  2651. ">
  2652. <el-button type="text" style="margin: 10px 0 0 100px"
  2653. @click="contributingGuoRen(reslistitem.agreementId)">选择特约</el-button>
  2654. <div class="flex f-c Driving-risk">
  2655. <el-form :inline="true" :model="guoRenaccidentForm" class="demo-form-inline" size="small">
  2656. <el-form-item label="意外险类型" style="margin-right: 30px">
  2657. <el-select clearable placeholder="未选择" @clear="clearAccidentFormGr" @change="grcxchange"
  2658. v-model="guoRenaccidentForm.goodsCode">
  2659. <el-option v-for="(item, index) in guoRenaccidentDataList" :key="index" :label="item.projectName"
  2660. :value="item.projectCode"></el-option>
  2661. </el-select>
  2662. </el-form-item>
  2663. <el-form-item label=" ">
  2664. <el-select clearable v-model="guoRenaccidentForm.prodCode" @change="grcxchangeChild">
  2665. <el-option v-for="(item) in guoRenaccidentDataListChild" :key="item.projectCode"
  2666. :label="item.projectName" :value="item.projectCode"></el-option>
  2667. </el-select>
  2668. </el-form-item>
  2669. <el-form-item label="选择份数" style="margin-right: 30px">
  2670. <el-input-number v-model="guoRenaccidentForm.quantity" :min="1" controls-position="right"
  2671. @change="numberCopieschangeGR"></el-input-number>
  2672. </el-form-item>
  2673. <el-form-item label="保费:">
  2674. <span>{{ guoRenaccidentForm.sumPremium }}&ensp;元</span>
  2675. </el-form-item>
  2676. </el-form>
  2677. <el-table v-if="guoRenaccidentForm.prodCode" size="small" :data="guoRenInsuranceDataTable" border
  2678. ref="expandTable" highlight-current-row :header-cell-style="{
  2679. background: '#F7F7F9 ',
  2680. fontWeight: '700',
  2681. color: '#333333',
  2682. }">
  2683. <el-table-column prop="name" label="保险责任" align="center"></el-table-column>
  2684. <el-table-column prop="amount" label="保额 (元)" align="center"></el-table-column>
  2685. <el-table-column prop="premium" label="保费 (元)" align="center">
  2686. <template slot-scope="scope">¥{{ scope.row.premium }}</template>
  2687. </el-table-column>
  2688. </el-table>
  2689. </div>
  2690. </template>
  2691. <template v-if="reslistitem.namesimple == '中煤财险' &&
  2692. reslistitem.checked &&
  2693. reslistitem.agreementId &&
  2694. isLetter !== '3'
  2695. ">
  2696. <div class="flex f-c Driving-risk accident-style zmDriving">
  2697. <el-form :inline="true" :model="accidentFormZM" class="demo-form-inline" size="small"
  2698. style="font-weight: bold; margin-top: 15px">
  2699. <el-form-item label="意外险类型" style="margin-right: 30px">
  2700. <el-select style="width: 250px" size="small" clearable v-model="zhongmeitemplateSelection"
  2701. placeholder="未选择" @clear="numberCopieschangeZM" @change="zhongmeiInsuranceChange">
  2702. <el-option v-for="(item, index) in zhongmeiInsuranceData" :key="index" :label="item.projectName"
  2703. :value="item.projectCode"></el-option>
  2704. </el-select>
  2705. </el-form-item>
  2706. <el-form-item label="选择份数" style="margin-right: 30px">
  2707. <el-input-number v-model="accidentFormZM.quantity" @change="numberCopieschangeZM" :min="1"
  2708. controls-position="right"></el-input-number>
  2709. </el-form-item>
  2710. <el-form-item label="保费:">
  2711. <span>{{ accidentFormZM.sumPremium }}&ensp;元</span>
  2712. </el-form-item>
  2713. </el-form>
  2714. <el-table size="small" :data="zhongmeiInsuranceDataTable" border ref="ZmMultipleTable"
  2715. v-if="zhongmeitemplateSelection" :header-cell-style="{
  2716. background: '#F7F7F9 ',
  2717. fontWeight: '700',
  2718. color: '#333333',
  2719. }">
  2720. <el-table-column prop="name" label="保险责任名称" align="center"></el-table-column>
  2721. <el-table-column prop="amount" label="保险责任对应保额" align="center"></el-table-column>
  2722. </el-table>
  2723. </div>
  2724. </template>
  2725. <template v-if="reslistitem.namesimple == '大家财险' &&
  2726. reslistitem.checked &&
  2727. reslistitem.agreementId &&
  2728. isLetter !== '3'
  2729. ">
  2730. <div class="flex f-c Driving-risk">
  2731. <div class="dis a-c" style="margin-top: 15px">
  2732. <span style="margin-right: 15px; font-weight: bold">选择意外险</span>
  2733. <el-select style="width: 250px" v-if="reslistitem.apiType == 1" filterable size="small" clearable
  2734. v-model="dajiatemplateSelection" placeholder="未选择" @clear="clearAccidentFormDJ"
  2735. @change="dajiaInsuranceChange">
  2736. <el-option v-for="(item, index) in dajiaInsuranceData" :key="index" :label="item.projectName"
  2737. :value="item.projectCode"></el-option>
  2738. </el-select>
  2739. <div v-else>
  2740. <el-select size="small" style="width: 250px" clearable placeholder="未选择" @change="djcxchange"
  2741. v-model="dajiaaccidentForm.parentCode" @clear="clearAccidentFormDJ">
  2742. <el-option v-for="(item, index) in dajiaInsuranceData" :key="index" :label="item.projectName"
  2743. :value="item.projectCode"></el-option>
  2744. </el-select>
  2745. <el-select size="small" style="width: 250px" clearable v-model="dajiaaccidentForm.projectCode"
  2746. @change="djcxchangeChild">
  2747. <el-option v-for="(item) in dajiaaccidentDataListChild" :key="item.projectCode"
  2748. :label="item.projectName" :value="item.projectCode"></el-option>
  2749. </el-select>
  2750. </div>
  2751. </div>
  2752. <el-table size="small" :data="dajiaInsuranceDataTable" border ref="RsTable" highlight-current-row
  2753. :header-cell-style="{
  2754. background: '#F7F7F9 ',
  2755. fontWeight: '700',
  2756. color: '#333333',
  2757. }">
  2758. <el-table-column prop="name" label="保险责任名称" align="center"></el-table-column>
  2759. <el-table-column prop="premium" label="保费 (元)/每份" align="center">
  2760. <template slot-scope="scope">¥{{ scope.row.premium }}</template>
  2761. </el-table-column>
  2762. </el-table>
  2763. </div>
  2764. </template>
  2765. <template v-if="reslistitem.namesimple == '渤海财险' &&
  2766. reslistitem.checked &&
  2767. reslistitem.agreementId &&
  2768. isLetter !== '3'
  2769. ">
  2770. <div class="flex f-c Driving-risk" style="margin-top: 15px">
  2771. <el-form :inline="true" :model="boHaiaccidentForm" class="demo-form-inline" size="small">
  2772. <el-form-item label="意外险类型" style="margin-right: 30px">
  2773. <el-select clearable placeholder="未选择" @clear="clearAccidentFormBh" @change="bohaiInsuranceChange"
  2774. v-model="boHaiaccidentForm.projectCode">
  2775. <el-option v-for="(item, index) in boHaiaccidentDataList" :key="index" :label="item.projectName"
  2776. :value="item.projectCode"></el-option>
  2777. </el-select>
  2778. </el-form-item>
  2779. <el-form-item label="选择份数" style="margin-right: 30px">
  2780. <el-input-number v-model="boHaiaccidentForm.copies" :min="1"
  2781. controls-position="right"></el-input-number>
  2782. </el-form-item>
  2783. <el-form-item label="保费:">
  2784. <span>{{
  2785. boHaiaccidentForm.premium * boHaiaccidentForm.copies
  2786. }}&ensp;元</span>
  2787. </el-form-item>
  2788. </el-form>
  2789. <el-table v-if="boHaiaccidentForm.projectCode" size="small" :data="bohaiInsuranceDataTable" border
  2790. ref="expandTable" highlight-current-row :header-cell-style="{
  2791. background: '#F7F7F9 ',
  2792. fontWeight: '700',
  2793. color: '#333333',
  2794. }">
  2795. <el-table-column prop="name" label="保险责任名称" align="center"></el-table-column>
  2796. <el-table-column prop="amount" label="保额 (元)" align="center">
  2797. <template slot-scope="scope">¥{{ scope.row.amount }}</template>
  2798. </el-table-column>
  2799. </el-table>
  2800. </div>
  2801. </template> -->
  2802. </div>
  2803. </div>
  2804. </div>
  2805. </div>
  2806. <!-- 报价历史 -->
  2807. <div class="Enclosure flex f-c" v-if="isLetter == '1'">
  2808. <div class="home flex j-s a-c back">
  2809. <div class="flex j-s a-c color">
  2810. <img src="../../../../src/icon/报价历史.png" alt class="icon-img" />
  2811. <span style="margin-left: 10px">报价历史</span>
  2812. <div v-if="orderno">
  2813. <el-radio-group v-model="historyRadio" style="margin-left: 30px" @input="RadioHistoryChange"
  2814. v-for="item in insOrderStatusoptions" :key="item.dictValue">
  2815. <el-radio :label="item.dictValue">{{ item.dictTag }}</el-radio>
  2816. </el-radio-group>
  2817. </div>
  2818. </div>
  2819. </div>
  2820. <div style="padding: 20px">
  2821. <el-table size="small" :data="HistoryList" height="250" border style="width: 100%" v-loading="loading"
  2822. :header-cell-style="{
  2823. background: '#F7F7F9 ',
  2824. fontWeight: '700',
  2825. color: '#333333',
  2826. }" highlight-current-row>
  2827. <el-table-column prop="inscompany" label="保险公司" align="center"></el-table-column>
  2828. <el-table-column prop="username" label="业务员" align="center">
  2829. <template slot-scope="scope">
  2830. <span>{{ scope.row.userName }}({{ scope.row.userId }})</span>
  2831. </template>
  2832. </el-table-column>
  2833. <el-table-column prop="licenseno" label="车牌号" align="center"></el-table-column>
  2834. <el-table-column prop="product" label="险种" align="center"></el-table-column>
  2835. <el-table-column prop="createtime" label="报价时间" align="center"></el-table-column>
  2836. <el-table-column prop="jqpremium" label="交强险" align="center"></el-table-column>
  2837. <el-table-column prop="sypremium" label="商业险" align="center"></el-table-column>
  2838. <el-table-column prop="taxamount" label="车船税" align="center"></el-table-column>
  2839. <el-table-column prop="sumpremium" label="总保费" align="center"></el-table-column>
  2840. <el-table-column prop="orderstatus" label="状态" align="center">
  2841. <template slot-scope="scope">
  2842. <el-tag style="
  2843. color: #33a08d;
  2844. border-color: #33a08d;
  2845. background: rgba(51, 160, 141, 0.1);
  2846. " v-if="scope.row.orderstatus == '0' || scope.row.orderstatus == '1'
  2847. " size="small">{{ scope.row.orderstatus | cap }}</el-tag>
  2848. <el-tag type="danger" style="border-color: #e75b5d" v-else-if="scope.row.orderstatus == '3'"
  2849. size="small">{{
  2850. scope.row.orderstatus | cap }}</el-tag>
  2851. <el-tag v-else style="
  2852. color: #2d4d89;
  2853. border-color: #2d4d89;
  2854. background: rgba(45, 77, 137, 0.1);
  2855. " size="small">{{ scope.row.orderstatus | cap }}</el-tag>
  2856. </template>
  2857. </el-table-column>
  2858. <el-table-column label="操作" align="center" min-width="180" fixed="right">
  2859. <template slot-scope="scope">
  2860. <el-button v-if="scope.row.orderstatus == '10'" type="text" style="color: #2d4d89" size="small"
  2861. @click="supplementOrder(scope.row.id)">补录订单</el-button>
  2862. <el-button type="text" style="color: #2d4d89" size="small"
  2863. @click="qoutedetail(scope.row.id)">查看详情</el-button>
  2864. <el-button size="small" type="text" @click="bjdpreview(scope.row.id)">报价单</el-button>
  2865. <el-button size="small" v-show="scope.row.orderstatus == '2' && scope.row.inscompany !== '平安财险'"
  2866. type="text" @click="Payment(scope.row.id, scope.row)">付款码</el-button>
  2867. <el-button size="small" v-show="scope.row.orderstatus == '2' && scope.row.inscompany == '平安财险'"
  2868. type="text" @click="signature(scope.row.id)">生成签章</el-button>
  2869. <el-button size="mini" type="text" v-if="(scope.row.orderstatus == '1' ||
  2870. scope.row.orderstatus == '2' ||
  2871. scope.row.orderstatus == '4') &&
  2872. ['紫金财险', '诚泰财险', '阳光财险'].includes(scope.row.inscompany)
  2873. " @click="cancelorder(scope.row)">撤单</el-button>
  2874. <el-button type="text" size="mini" style="color: #2d4d89"
  2875. v-if="scope.row.orderstatus == '2' && scope.row.inscompany !== '平安财险'"
  2876. @click="revokeCode(scope.row.id)">撤销二维码</el-button>
  2877. </template>
  2878. </el-table-column>
  2879. </el-table>
  2880. </div>
  2881. </div>
  2882. <!-- 查看详情 -->
  2883. <detailsDialog ref="detailsDialog" :orderInfo.sync="queryOrders" :Feepermissions="false"></detailsDialog>
  2884. <el-dialog title="车型选择" :visible.sync="chexingdialogVisible" width="1300px">
  2885. <el-form :inline="true" class="demo-form-inline" size="small">
  2886. <el-form-item label="厂牌型号">
  2887. <el-input v-model="carInfo.modelcname" placeholder="厂牌型号" style="width: 500px"></el-input>
  2888. </el-form-item>
  2889. <el-form-item>
  2890. <el-button type="primary" size="small" @click="toChooseVehicleType(carInfo.modelcname)">查询</el-button>
  2891. </el-form-item>
  2892. </el-form>
  2893. <el-table size="small" :data="reslist" height="690" border style="width: 100%" v-loading="loading"
  2894. :header-cell-style="{
  2895. background: '#F7F7F9 ',
  2896. fontWeight: '700',
  2897. color: '#333333',
  2898. }" highlight-current-row @row-dblclick="reslistCurrentChange">
  2899. <el-table-column prop="modelCode" label="厂牌型号代码" align="center" width="200"></el-table-column>
  2900. <el-table-column prop="modelName" label="厂牌型号" align="center" width="200"></el-table-column>
  2901. <el-table-column prop="importFlag" label="车辆类型" align="center" width="300"></el-table-column>
  2902. <el-table-column prop="replacementValue" label="新车购置价" align="center" width="100"></el-table-column>
  2903. <el-table-column prop="marketYear" label="年款" align="center" width="100"></el-table-column>
  2904. <el-table-column prop="ratedPassengerCapacity" label="座位数" align="center" width="80"></el-table-column>
  2905. <el-table-column prop="displacement" label="排量" align="center" width="100"></el-table-column>
  2906. <el-table-column prop="remark" label="配置" align="center"></el-table-column>
  2907. </el-table>
  2908. </el-dialog>
  2909. <el-dialog title="车辆识别代码" :visible.sync="sbdmdialogVisible" width="1300px">
  2910. <el-form :inline="true" class="demo-form-inline" size="small">
  2911. <el-form-item label="车辆识别代码">
  2912. <el-input v-model="carInfo.frameNo" placeholder="车辆识别代码" style="width: 500px"></el-input>
  2913. </el-form-item>
  2914. <el-form-item>
  2915. <el-button type="primary" size="small" @click="toChooseVin(carInfo.frameNo)">查询</el-button>
  2916. </el-form-item>
  2917. </el-form>
  2918. <el-table size="small" :data="reslist" height="690" border style="width: 100%" v-loading="loading"
  2919. :header-cell-style="{
  2920. background: '#F7F7F9 ',
  2921. fontWeight: '700',
  2922. color: '#333333',
  2923. }" highlight-current-row @row-dblclick="reslistCurrentChange">
  2924. <el-table-column prop="modelCode" label="厂牌型号代码" align="center" width="200"></el-table-column>
  2925. <el-table-column prop="modelName" label="厂牌型号" align="center" width="300"></el-table-column>
  2926. <el-table-column prop="importFlag" label="车辆类型" align="center" width="100"></el-table-column>
  2927. <el-table-column prop="replacementValue" label="新车购置价" align="center" width="100"></el-table-column>
  2928. <el-table-column prop="marketYear" label="年款" align="center" width="100"></el-table-column>
  2929. <el-table-column prop="ratedPassengerCapacity" label="座位数" align="center" width="80"></el-table-column>
  2930. <el-table-column prop="displacement" label="排量" align="center" width="100"></el-table-column>
  2931. <el-table-column prop="remark" label="配置" align="center"></el-table-column>
  2932. </el-table>
  2933. </el-dialog>
  2934. <!--第一种 二维码 -->
  2935. <el-dialog :visible.sync="codedialogVisible" width="430px" top="10vh" class="saomazhifucodeClass">
  2936. <div class="ORcodebody" v-watermark="userform.id || userId">
  2937. <div slot="title" class="dialog-title">
  2938. <span>扫码付款</span>
  2939. </div>
  2940. <div class="ORcode">
  2941. <div style="padding: 13px; position: relative">
  2942. <div id="qrcode" ref="qrcode"></div>
  2943. </div>
  2944. </div>
  2945. <img style="margin-left: -16px" src="../../../assets/image/divider.png" alt />
  2946. <div style="
  2947. font-size: 32px;
  2948. text-align: center;
  2949. color: #d42426;
  2950. margin-top: 20px;
  2951. ">
  2952. <span style="font-size: 24px; font-weight: bold">¥</span>
  2953. {{ sumpremium }}
  2954. </div>
  2955. <div class="ORtitle">
  2956. <div>
  2957. <span>保险公司:</span>
  2958. <span>{{ inscompany }}</span>
  2959. </div>
  2960. <div>
  2961. <span>车牌号:</span>
  2962. <span>{{ licenseNo }}</span>
  2963. </div>
  2964. <div>
  2965. <span>投保人:</span>
  2966. <span>{{ applyName }}</span>
  2967. </div>
  2968. <!-- <div>
  2969. <span style="color:#f75c00">总金额:</span>
  2970. <span style="color:#f75c00">{{ sumpremium }}</span>
  2971. </div>-->
  2972. <div v-show="jqpremium">
  2973. <span>交强:</span>
  2974. <span>{{ jqpremium }}</span>
  2975. </div>
  2976. <div v-show="sypremium">
  2977. <span>商业:</span>
  2978. <span>{{ sypremium }}</span>
  2979. </div>
  2980. <div v-show="taxamount">
  2981. <span>车船税:</span>
  2982. <span>{{ taxamount }}</span>
  2983. </div>
  2984. <div v-show="jqstartdate">
  2985. <span>交强险起保日期:</span>
  2986. <span>{{ jqstartdate }}</span>
  2987. </div>
  2988. <div v-show="systartdate">
  2989. <span>商业险起保日期:</span>
  2990. <span>{{ systartdate }}</span>
  2991. </div>
  2992. <div v-if="jypremium">
  2993. <span>驾意险:</span>
  2994. <span>{{ jypremium }}</span>
  2995. </div>
  2996. <div v-if="jypremium">
  2997. <span>驾意险险起保日期:</span>
  2998. <span>{{ systartdate || jqstartdate }}</span>
  2999. </div>
  3000. </div>
  3001. <!-- <div class="display">
  3002. <el-button size="small" style="width:100px;" @click="codedialogVisible = false">关闭</el-button>
  3003. </div>-->
  3004. </div>
  3005. <span slot="footer" class="dialog-footer display">
  3006. <el-button size="small" style="width: 100px; border-color: #d42426; color: #d42426"
  3007. @click="codedialogVisible = false">关闭</el-button>
  3008. </span>
  3009. </el-dialog>
  3010. <!--第二种 二维码 -->
  3011. <el-dialog :visible.sync="codedialogVisiblePro" width="660px" class="proSaomazhifucodeClass" top="10vh"
  3012. title="扫码付款">
  3013. <div class="flex j-s">
  3014. <div class="scan-code">
  3015. <div style="font-weight: bold">
  3016. 总金额:
  3017. <span style="color: #2d4d89">{{ sumpremium }}</span>
  3018. </div>
  3019. <div>交强险:{{ jqpremium }}</div>
  3020. <div>车船税:{{ taxamount }}</div>
  3021. <div>商业险:{{ sypremium }}</div>
  3022. <div>驾意险:{{ jypremium }}</div>
  3023. </div>
  3024. <div id="qrcode" ref="qrcode"></div>
  3025. <div class="scan-code">
  3026. <div>保险公司:{{ inscompany }}</div>
  3027. <div>车牌号:{{ licenseNo }}</div>
  3028. <div>投保人:{{ applyName }}</div>
  3029. <div>交强险起保日期:{{ jqstartdate }}</div>
  3030. <div>商业险起保日期:{{ systartdate }}</div>
  3031. <div>驾意险起保日期:{{ systartdate || jqstartdate }}</div>
  3032. </div>
  3033. </div>
  3034. <span slot="footer" class="dialog-footer">
  3035. <el-button size="small" style="
  3036. width: 100px;
  3037. background: #eaedf1;
  3038. border-color: #eaedf1;
  3039. color: #2d4d89;
  3040. " @click="codedialogVisiblePro = false">关闭</el-button>
  3041. </span>
  3042. </el-dialog>
  3043. <el-dialog :visible.sync="uploadcardialogVisible" width="960px" style="padding: 10px 20px; box-sizing: border-box"
  3044. @open="closeDialog(0)">
  3045. <div slot="title" class="dialog-title">
  3046. <span>行驶证识别</span>
  3047. </div>
  3048. <el-row :gutter="20">
  3049. <div class="bodys1">
  3050. <div>
  3051. <div class="flex a-c">
  3052. <div class="OCR" style="text-align: center">行驶证主页</div>
  3053. <div style="text-align: center; margin: 20px" @drop="reportDrop">
  3054. <el-upload drag action="#" :show-file-list="false" :auto-upload="false" :on-change="carfrontChange">
  3055. <img v-show="carfrontImg" :src="carfrontImg" style="width: 100%; height: 100%" />
  3056. <img v-show="!carfrontImg" src="../../../../static/carfront.png" style="width: 100%; height: 100%" />
  3057. <span class="slot" v-show="carfrontImg" @click.stop>
  3058. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(carfrontImg)"></i>
  3059. <i class="el-icon-delete" @click.stop="handleRemove('carfrontImg')"></i>
  3060. </span>
  3061. </el-upload>
  3062. </div>
  3063. </div>
  3064. <div class="flex a-c">
  3065. <div class="OCR" style="text-align: center">行驶证副页</div>
  3066. <div style="text-align: center; margin: 20px" @drop="reportDrop">
  3067. <el-upload drag action="#" :show-file-list="false" :auto-upload="false" :on-change="carbackChange">
  3068. <img v-show="carbackImg" :src="carbackImg" style="width: 100%; height: 100%" />
  3069. <img v-show="!carbackImg" src="../../../../static/carback.png" style="width: 100%; height: 100%" />
  3070. <span class="slot" v-show="carbackImg" @click.stop>
  3071. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(carbackImg)"></i>
  3072. <i class="el-icon-delete" @click.stop="handleRemove('carbackImg')"></i>
  3073. </span>
  3074. </el-upload>
  3075. </div>
  3076. </div>
  3077. </div>
  3078. <div style="text-align: center">
  3079. <el-form :model="carform" label-width="130px" size="small">
  3080. <el-form-item label="所有人">
  3081. <el-input v-model="carform.carOwner" autocomplete="off"></el-input>
  3082. </el-form-item>
  3083. <el-form-item label="车牌号">
  3084. <el-input v-model="carform.licenseNo" autocomplete="off"></el-input>
  3085. </el-form-item>
  3086. <el-form-item label="车架号">
  3087. <el-input v-model="carform.frameNo" autocomplete="off"></el-input>
  3088. </el-form-item>
  3089. <el-form-item label="品牌型号">
  3090. <el-input v-model="carform.modelcname" autocomplete="off"></el-input>
  3091. </el-form-item>
  3092. <el-form-item label="发动机号">
  3093. <el-input v-model="carform.engineNo" autocomplete="off"></el-input>
  3094. </el-form-item>
  3095. <el-form-item label="总质量">
  3096. <el-input v-model="carform.grossMass" autocomplete="off"></el-input>
  3097. </el-form-item>
  3098. <el-form-item label="整备质量">
  3099. <el-input v-model="carform.unladenMass" autocomplete="off"></el-input>
  3100. </el-form-item>
  3101. <el-form-item label="核定载质量">
  3102. <el-input v-model="carform.limitLoad" autocomplete="off"></el-input>
  3103. </el-form-item>
  3104. <el-form-item label="核定载客数">
  3105. <el-input v-model="carform.approvedPassengersCapacity" autocomplete="off"></el-input>
  3106. </el-form-item>
  3107. <el-form-item label="注册日期">
  3108. <el-input v-model="carform.registerDate" autocomplete="off"></el-input>
  3109. </el-form-item>
  3110. <el-form-item label="发证日期">
  3111. <el-input v-model="carform.issueDate" autocomplete="off"></el-input>
  3112. </el-form-item>
  3113. </el-form>
  3114. </div>
  3115. </div>
  3116. </el-row>
  3117. <span slot="footer" class="dialog-footer">
  3118. <el-button type="primary" @click="CarOCRdiscern()" size="small">识 别</el-button>
  3119. <el-button type="primary" @click="CarOCRconfirm()" size="small">确 认</el-button>
  3120. </span>
  3121. </el-dialog>
  3122. <el-dialog :visible.sync="uploaduserdialogVisible" width="960px" style="padding: 10px 20px; box-sizing: border-box"
  3123. @open="closeDialog(userIndex)">
  3124. <el-tabs v-model="activeName">
  3125. <el-tab-pane label="身份证识别" name="1">
  3126. <el-row :gutter="20">
  3127. <div class="bodys1">
  3128. <div>
  3129. <div class="flex">
  3130. <div class="OCR" style="text-align: center">身份证主页</div>
  3131. <div style="text-align: center; margin: 20px" @drop="reportDrop">
  3132. <el-upload class="upload-demo" drag action="#" :show-file-list="false" :auto-upload="false"
  3133. :on-change="userfrontChange">
  3134. <img v-show="userfrontImg" :src="userfrontImg" style="width: 100%; height: 100%" />
  3135. <img v-show="!userfrontImg" src="../../../../static/userfront.png"
  3136. style="width: 100%; height: 100%" />
  3137. <span class="slot" v-show="userfrontImg" @click.stop>
  3138. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(userfrontImg)"></i>
  3139. <i class="el-icon-delete" @click.stop="handleRemove('userfrontImg')"></i>
  3140. </span>
  3141. </el-upload>
  3142. </div>
  3143. </div>
  3144. <div class="flex">
  3145. <div class="OCR" style="text-align: center">身份证副页</div>
  3146. <div style="text-align: center; margin: 20px" @drop="reportDrop">
  3147. <el-upload class="upload-demo" drag action="#" :show-file-list="false" :auto-upload="false"
  3148. :on-change="userbackChange">
  3149. <img v-show="userbackImg" :src="userbackImg" style="width: 100%; height: 100%" />
  3150. <img v-show="!userbackImg" src="../../../../static/userback.png"
  3151. style="width: 100%; height: 100%" />
  3152. <span class="slot" v-show="userbackImg" @click.stop>
  3153. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(userbackImg)"></i>
  3154. <i class="el-icon-delete" @click.stop="handleRemove('userbackImg')"></i>
  3155. </span>
  3156. </el-upload>
  3157. </div>
  3158. </div>
  3159. </div>
  3160. <div style="text-align: center">
  3161. <el-form :model="ownerInfoform" label-width="130px" size="small">
  3162. <el-form-item label="姓名">
  3163. <el-input v-model="ownerInfoform.name" autocomplete="off"></el-input>
  3164. </el-form-item>
  3165. <el-form-item label="性别">
  3166. <el-input v-model="ownerInfoform.gender" autocomplete="off"></el-input>
  3167. </el-form-item>
  3168. <el-form-item label="证件类型">
  3169. <el-input v-model="ownerInfoform.identifyType" autocomplete="off"></el-input>
  3170. </el-form-item>
  3171. <el-form-item label="证件号码">
  3172. <el-input v-model="ownerInfoform.identifyNumber" autocomplete="off"></el-input>
  3173. </el-form-item>
  3174. <el-form-item label="车主手机号">
  3175. <el-input v-model="ownerInfoform.mobile" autocomplete="off"></el-input>
  3176. </el-form-item>
  3177. <el-form-item label="地址">
  3178. <el-input v-model="ownerInfoform.addr" autocomplete="off"></el-input>
  3179. </el-form-item>
  3180. <el-form-item label="有效期起期">
  3181. <el-input disabled v-model="ownerInfoform.identifyValidDate" autocomplete="off"></el-input>
  3182. </el-form-item>
  3183. <el-form-item label="有效期止期">
  3184. <el-input disabled v-model="ownerInfoform.identifyValidEndDate" autocomplete="off"></el-input>
  3185. </el-form-item>
  3186. <el-form-item label="电子邮箱">
  3187. <el-input v-model="ownerInfoform.email" autocomplete="off"></el-input>
  3188. </el-form-item>
  3189. </el-form>
  3190. </div>
  3191. </div>
  3192. </el-row>
  3193. </el-tab-pane>
  3194. <el-tab-pane label="营业执照" name="2">
  3195. <el-row :gutter="20">
  3196. <div class="bodys1">
  3197. <div>
  3198. <div class="flex">
  3199. <div class="OCR" style="text-align: center">营业执照</div>
  3200. <div style="text-align: center; margin: 20px" @drop="reportDrop">
  3201. <el-upload class="upload-demo" drag action="#" :show-file-list="false" :auto-upload="false"
  3202. :on-change="businessChange">
  3203. <img v-show="businessImg" :src="businessImg" style="width: 100%; height: 100%" />
  3204. <img v-show="!businessImg" src="../../../../static/userfront.png"
  3205. style="width: 100%; height: 100%" />
  3206. <span class="slot" v-show="businessImg" @click.stop>
  3207. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(businessImg)"></i>
  3208. <i class="el-icon-delete" @click.stop="handleRemove('businessImg')"></i>
  3209. </span>
  3210. </el-upload>
  3211. </div>
  3212. </div>
  3213. </div>
  3214. <div style="text-align: center">
  3215. <el-form :model="businessform" label-width="130px" size="small">
  3216. <el-form-item label="单位名称">
  3217. <el-input autocomplete="off" v-model="businessform.name"></el-input>
  3218. </el-form-item>
  3219. <el-form-item label="法人">
  3220. <el-input autocomplete="off" v-model="businessform.legalPerson"></el-input>
  3221. </el-form-item>
  3222. <el-form-item label="社会信用代码">
  3223. <el-input autocomplete="off" v-model="businessform.organizationCode"></el-input>
  3224. </el-form-item>
  3225. <el-form-item label="地址">
  3226. <el-input autocomplete="off" v-model="businessform.addr"></el-input>
  3227. </el-form-item>
  3228. <el-form-item label="注册资本">
  3229. <el-input autocomplete="off" v-model="businessform.registeredCapital"></el-input>
  3230. </el-form-item>
  3231. <el-form-item label="经营范围">
  3232. <el-input autocomplete="off" type="textarea" v-model="businessform.scope"></el-input>
  3233. </el-form-item>
  3234. </el-form>
  3235. </div>
  3236. </div>
  3237. </el-row>
  3238. </el-tab-pane>
  3239. </el-tabs>
  3240. <span slot="footer" class="dialog-footer">
  3241. <el-button type="primary" @click="userOCRdiscern()" size="small">识 别</el-button>
  3242. <el-button type="primary" @click="userOCRconfirm()" size="small">确 认</el-button>
  3243. </span>
  3244. </el-dialog>
  3245. <el-dialog :visible.sync="pinganDataDetailVisible" width="40%" title="责任明细">
  3246. <el-table :data="pinganDataDetail" border style="width: 100%">
  3247. <el-table-column prop="insuranceCoverage" label="责任名称">
  3248. </el-table-column>
  3249. <el-table-column prop="unitInsuredAmount" label="每份保额">
  3250. </el-table-column>
  3251. </el-table>
  3252. </el-dialog>
  3253. <div v-if="isLetter == '1'" class="flex j-c a-c footer" :class="$store.state.app.collapse ? 'position-collapse-left' : 'position-left'
  3254. ">
  3255. <el-button size="small" @click="add()">录下一单</el-button>
  3256. <el-button type="primary" :loading="calculateLoading" size="small" @click="quote1()">保费计算</el-button>
  3257. </div>
  3258. <div v-if="isLetter == '2'" style="text-align: center">
  3259. <el-button type="primary" :loading="calculateLoading" size="small" @click="quote1()">保费计算</el-button>
  3260. </div>
  3261. <div class="Anchor-link flex f-c j-s a-c" v-if="isLetter == '1'">
  3262. <div>
  3263. <img src="../../../../src/icon/车辆信息.png" alt class="icon-img" @click="handleScroll('Car')" />
  3264. </div>
  3265. <div>
  3266. <img src="../../../../src/icon/投保信息.png" alt class="icon-img" @click="handleScroll('insurance')" />
  3267. </div>
  3268. <div>
  3269. <img src="../../../../src/icon/险别选择.png" alt class="icon-img" @click="handleScroll('more')" />
  3270. </div>
  3271. <div>
  3272. <img src="../../../../src/icon/保险公司.png" alt class="icon-img" @click="handleScroll('company')" />
  3273. </div>
  3274. </div>
  3275. <el-dialog title="核保信息" :visible.sync="underwritingdialogVisible" width="30%">
  3276. <div class="flex j-s f-c">
  3277. <div style="
  3278. font-size: 18px;
  3279. color: #d42426;
  3280. font-weight: 700;
  3281. padding: 10px 30px;
  3282. " v-if="orderstatus == '2'">
  3283. 订单状态:已核保待缴费
  3284. </div>
  3285. </div>
  3286. <span slot="footer" class="dialog-footer">
  3287. <el-button style="width: 100px" type="primary" size="small"
  3288. v-if="orderstatus == '2' && queryOrders.inscompany !== '平安财险'"
  3289. @click="Payment(companyId, queryOrders)">缴费二维码</el-button>
  3290. <el-button style="width: 100px" type="primary" size="small"
  3291. v-if="orderstatus == '2' && queryOrders.inscompany == '平安财险'" @click="signature(companyId)">生成签章</el-button>
  3292. </span>
  3293. </el-dialog>
  3294. <el-dialog title="转保确认码" :visible.sync="renewalCodedialogVisible" width="400px" style="font-weight: bold">
  3295. <div class="flex a-c u-f-sa" v-if="renewalCodeJqImg">
  3296. <span>交强转保确认码</span>
  3297. <div class="flex a-c f-c">
  3298. <img :src="renewalCodeJqImg" alt style="width: 150px; height: 40px; margin-bottom: 5px" />
  3299. <el-input v-model="renewalCodeJq" placeholder="请输入确认码" style="width: 150px"></el-input>
  3300. </div>
  3301. </div>
  3302. <div class="flex a-c u-f-sa" v-if="renewalCodeSyImg">
  3303. <span>商业转保确认码</span>
  3304. <div class="flex a-c f-c">
  3305. <img :src="renewalCodeSyImg" alt style="width: 150px; height: 40px; margin-bottom: 5px" />
  3306. <el-input v-model="renewalCodeSy" placeholder="请输入确认码" style="width: 150px"></el-input>
  3307. </div>
  3308. </div>
  3309. <span slot="footer" class="dialog-footer">
  3310. <el-button size="small" @click="renewalCodedialogVisible = false">取 消</el-button>
  3311. <el-button size="small" type="primary" @click="renewalCodeconfirm">确 定</el-button>
  3312. </span>
  3313. </el-dialog>
  3314. <el-dialog :title="contributingState ? '选择特约' : '提交核保'" :visible.sync="hbsubmitdialogVisible" width="1200px">
  3315. <div style="margin-bottom: 20px; font-weight: bold">特约选择</div>
  3316. <el-table size="small" :data="zijinengageListData" border v-loading="contributingLoading"
  3317. @select="zijinengageChange" @select-all="zijinengageChangeAll" ref="expandTablePro" highlight-current-row
  3318. @cell-dblclick="zijincellDblclick" :cell-class-name="tableCellClassName" :header-cell-style="{
  3319. background: '#F7F7F9 ',
  3320. fontWeight: '700',
  3321. color: '#333333',
  3322. }">
  3323. <el-table-column type="selection" width="55"></el-table-column>
  3324. <el-table-column prop="clauseCode" :width="80" label="特约代码" align="center"></el-table-column>
  3325. <el-table-column v-if="contributingState" :width="100" prop="riskCode" label="特约险种"
  3326. align="center"></el-table-column>
  3327. <el-table-column prop="clauseName" label="特约名称" align="center"></el-table-column>
  3328. <!-- <el-table-column prop="replaceContent" label="特约内容" align="center"></el-table-column> -->
  3329. <el-table-column prop="clauseContent" label="特约内容">
  3330. <template slot-scope="scope">
  3331. <el-input @blur="hideInput" size="small" type="textarea" :ref="scope.row.index + ',' + scope.column.index"
  3332. v-model="scope.row.clauseContent" v-if="scope.row.index + ',' + scope.column.index == currentCell &&
  3333. scope.row.modifyFlag == '1'
  3334. "></el-input>
  3335. <span v-else>{{ scope.row.clauseContent }}</span>
  3336. </template>
  3337. </el-table-column>
  3338. </el-table>
  3339. <span slot="footer" class="dialog-footer">
  3340. <el-button size="small" @click="hbsubmitdialogVisible = false">取 消</el-button>
  3341. <el-button v-if="contributingState" size="small" type="primary"
  3342. @click="hbsubmitdialogVisible = false">确定</el-button>
  3343. <el-button v-else size="small" type="primary" @click="hbsubmit">提交核保</el-button>
  3344. </span>
  3345. </el-dialog>
  3346. <!-- <imageDialog ref="imageDialog" :quoteno="quoteno"></imageDialog>-->
  3347. <!-- 报价单 -->
  3348. <quotationDialog ref="quotationDialog" :queryOrders="queryOrders"></quotationDialog>
  3349. <quotationDialogPro ref="quotationDialogPro" :queryOrders="queryOrders"></quotationDialogPro>
  3350. <el-image-viewer v-if="showViewer" :on-close="closeViewer" :z-index="9999" :url-list="[ProViewImg]" />
  3351. <el-dialog :visible.sync="redictInfodialogVisible" width="70%">
  3352. <el-table :data="redictInfoMsg" style="width: 100%">
  3353. <el-table-column prop="description" label="审核意见"></el-table-column>
  3354. <el-table-column prop="opinion" label="备注"></el-table-column>
  3355. </el-table>
  3356. </el-dialog>
  3357. <!-- 生成签章 -->
  3358. <el-dialog :visible.sync="signaturedialogVisible" title="生成签章" width="14%">
  3359. <div>
  3360. <img :src="resultMessageImg" alt style="width: 100%" />
  3361. <!-- <div id="signaturecode" ref="signaturecode"></div> -->
  3362. </div>
  3363. </el-dialog>
  3364. <!-- 保单上传 -->
  3365. <el-dialog :visible.sync="policyUploaddialogVisible" width="30%">
  3366. <div slot="title" class="dialog-title">
  3367. <span>保单上传</span>
  3368. </div>
  3369. <el-form :model="policyNumberForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
  3370. <el-form-item label="交强保单:" prop="jqPolicy">
  3371. <el-upload class="upload-demo" ref="jqPolicyupload" action="#" :limit="1" :auto-upload="false"
  3372. :on-remove="(file) => removePhoto(file, policyNumberForm.jqPolicyList, 'jqPolicyList')"
  3373. :file-list="policyNumberForm.jqPolicyList" :on-change="(file) => policydrivingupload(file, 'jqPolicy')">
  3374. <el-button size="small" type="primary">点击上传</el-button>
  3375. <el-button size="small" type="primary" @click.stop="policyNumberForm.jqPolicyList = []">清空</el-button>
  3376. </el-upload>
  3377. </el-form-item>
  3378. <el-form-item label="商业保单:" prop="syPolicy">
  3379. <el-upload class="upload-demo" ref="syPolicyupload" action="#" :limit="1" :auto-upload="false"
  3380. :on-remove="(file) => removePhoto(file, policyNumberForm.syPolicyList, 'syPolicyList')"
  3381. :file-list="policyNumberForm.syPolicyList" :on-change="(file) => policydrivingupload(file, 'syPolicy')">
  3382. <el-button size="small" type="primary">点击上传</el-button>
  3383. <el-button size="small" type="primary" @click.stop="policyNumberForm.syPolicyList = []">清空</el-button>
  3384. </el-upload>
  3385. </el-form-item>
  3386. <el-form-item label="非车保单:" prop="noPolicy">
  3387. <el-upload class="upload-demo" ref="noPolicyupload" action="#" :limit="1" :auto-upload="false"
  3388. :on-remove="(file) => removePhoto(file, policyNumberForm.noPolicyList, 'noPolicyList')"
  3389. :file-list="policyNumberForm.noPolicyList" :on-change="(file) => policydrivingupload(file, 'noPolicy')">
  3390. <el-button size="small" type="primary">点击上传</el-button>
  3391. <el-button size="small" type="primary" @click.stop="policyNumberForm.noPolicyList = []">清空</el-button>
  3392. </el-upload>
  3393. </el-form-item>
  3394. <el-form-item label="交强电子标志:" prop="jqSign">
  3395. <el-upload class="upload-demo" ref="jqSignupload" action="#" :limit="1" :auto-upload="false"
  3396. :on-remove="(file) => removePhoto(file, policyNumberForm.jqSignList, 'jqSignList')"
  3397. :file-list="policyNumberForm.jqSignList" :on-change="(file) => policydrivingupload(file, 'jqSign')">
  3398. <el-button size="small" type="primary">点击上传</el-button>
  3399. <el-button size="small" type="primary" @click.stop="policyNumberForm.jqSignList = []">清空</el-button>
  3400. </el-upload>
  3401. </el-form-item>
  3402. </el-form>
  3403. <span slot="footer" class="dialog-footer">
  3404. <el-button size="small" @click="policyUploaddialogVisible = false">取 消</el-button>
  3405. <el-button size="small" type="primary" @click="policyUploaddialogVisible = false">确 定</el-button>
  3406. </span>
  3407. </el-dialog>
  3408. <!-- 影像上传 -->
  3409. <el-dialog :visible.sync="imageUploaddialogVisible" width="1070px">
  3410. <div slot="title" class="dialog-title">
  3411. <span>影像上传</span>
  3412. </div>
  3413. <el-row>
  3414. <el-col :span="4">
  3415. <div class="tab-style">
  3416. <li class="liMenu" :class="idx == tabLiIndex ? 'tabLi-style' : ''" @click="tabLiScroll(item.scroll, idx)"
  3417. v-for="(item, idx) in tabLimenu" :key="idx">
  3418. {{ item.name }}
  3419. </li>
  3420. </div>
  3421. </el-col>
  3422. <el-col :span="20" style="height: 320px; overflow-y: auto">
  3423. <div class="flex f-wrap" id="vehicle">
  3424. <div class="aaa">
  3425. <span>1.行驶证主页</span>
  3426. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList1', 'imgList1', 'C01')
  3427. " :file-list="imgList1" ref="upload1" :class="{ styleB: imgList1.length == 1 }">
  3428. <img v-show="imgList1.length == 0" src="../../../../static/carfront.png"
  3429. style="width: 100%; height: 100%" />
  3430. <div slot="file" slot-scope="{ file }" v-if="imgList1.length > 0">
  3431. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3432. <span class="el-upload-list__item-actions">
  3433. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList1', 'imgList1')">
  3434. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3435. <i class="el-icon-delete"></i>
  3436. </span>
  3437. </span>
  3438. </div>
  3439. </el-upload>
  3440. </div>
  3441. <div class="aaa">
  3442. <span>2.行驶证副页</span>
  3443. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList1', 'imgList2', 'D01')
  3444. " :file-list="imgList2" ref="upload2" :class="{ styleB: imgList2.length === 1 }">
  3445. <img v-show="imgList2.length == 0" src="../../../../static/carback.png"
  3446. style="width: 100%; height: 100%" />
  3447. <div slot="file" slot-scope="{ file }">
  3448. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3449. <span class="el-upload-list__item-actions">
  3450. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList1', 'imgList2')">
  3451. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3452. <i class="el-icon-delete"></i>
  3453. </span>
  3454. </span>
  3455. </div>
  3456. </el-upload>
  3457. </div>
  3458. <div class="aaa">
  3459. <span>3.机动车辆登记证书</span>
  3460. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList1', 'imgList12', 'TAR05')
  3461. " :file-list="imgList12" ref="upload2" :class="{ styleB: imgList12.length === 1 }">
  3462. <img v-show="imgList12.length == 0" src="../../../../static/carback.png"
  3463. style="width: 100%; height: 100%" />
  3464. <div slot="file" slot-scope="{ file }">
  3465. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3466. <span class="el-upload-list__item-actions">
  3467. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList1', 'imgList12')">
  3468. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3469. <i class="el-icon-delete"></i>
  3470. </span>
  3471. </span>
  3472. </div>
  3473. </el-upload>
  3474. </div>
  3475. <div class="aaa">
  3476. <span>4.新车合格证</span>
  3477. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3478. drivingupload(file, 'imageList5', 'imgList9', 'XC00')
  3479. " :file-list="imgList9" multiple ref="upload3" :class="{ styleB: imgList9.length === 1 }">
  3480. <img v-show="imgList9.length == 0" src="../../../../static/userfront.png"
  3481. style="width: 100%; height: 100%" />
  3482. <div slot="file" slot-scope="{ file }">
  3483. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3484. <span class="el-upload-list__item-actions">
  3485. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList5', 'imgList9')">
  3486. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3487. <i class="el-icon-delete"></i>
  3488. </span>
  3489. </span>
  3490. </div>
  3491. </el-upload>
  3492. </div>
  3493. <div class="aaa">
  3494. <span>5.购车发票</span>
  3495. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3496. drivingupload(file, 'imageList5', 'imgList10', 'GC00')
  3497. " :file-list="imgList10" multiple ref="upload4" :class="{ styleB: imgList10.length === 1 }">
  3498. <img v-show="imgList10.length == 0" src="../../../../static/userfront.png"
  3499. style="width: 100%; height: 100%" />
  3500. <div slot="file" slot-scope="{ file }">
  3501. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3502. <span class="el-upload-list__item-actions">
  3503. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList5', 'imgList10')">
  3504. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3505. <i class="el-icon-delete"></i>
  3506. </span>
  3507. </span>
  3508. </div>
  3509. </el-upload>
  3510. </div>
  3511. </div>
  3512. <div class="flex f-wrap" id="owner">
  3513. <div class="aaa">
  3514. <span>1.车主身份证(正面)</span>
  3515. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList2', 'imgList3', 'C02')
  3516. " :file-list="imgList3" multiple ref="upload3" :class="{ styleB: imgList3.length === 1 }">
  3517. <img v-show="imgList3.length == 0" src="../../../../static/userfront.png"
  3518. style="width: 100%; height: 100%" />
  3519. <div slot="file" slot-scope="{ file }">
  3520. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3521. <span class="el-upload-list__item-actions">
  3522. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList2', 'imgList3')">
  3523. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3524. <i class="el-icon-delete"></i>
  3525. </span>
  3526. </span>
  3527. </div>
  3528. </el-upload>
  3529. </div>
  3530. <div class="aaa">
  3531. <span>2.车主身份证(反面)</span>
  3532. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList2', 'imgList4', 'D02')
  3533. " :file-list="imgList4" multiple ref="upload4" :class="{ styleB: imgList4.length === 1 }">
  3534. <img v-show="imgList4.length == 0" src="../../../../static/userback.png"
  3535. style="width: 100%; height: 100%" />
  3536. <div slot="file" slot-scope="{ file }">
  3537. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3538. <span class="el-upload-list__item-actions">
  3539. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList2', 'imgList4')">
  3540. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3541. <i class="el-icon-delete"></i>
  3542. </span>
  3543. </span>
  3544. </div>
  3545. </el-upload>
  3546. </div>
  3547. <div class="aaa">
  3548. <span>3.车主营业执照</span>
  3549. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag multiple
  3550. :on-change="(file) => drivingupload(file, 'imageList2', 'imgList26', 'Y02')" ref="upload4"
  3551. :file-list="imgList26" :class="{ styleB: imgList26.length === 1 }">
  3552. <img v-show="imgList26.length == 0" src="../../../../static/userfront.png"
  3553. style="width: 100%; height: 100%" :class="{ styleB: imgList26.length === 1 }" />
  3554. <div slot="file" slot-scope="{ file }">
  3555. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3556. <span class="el-upload-list__item-actions">
  3557. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList2', 'imgList26')">
  3558. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3559. <i class="el-icon-delete"></i>
  3560. </span>
  3561. </span>
  3562. </div>
  3563. </el-upload>
  3564. </div>
  3565. </div>
  3566. <div class="flex f-wrap" id="applicant">
  3567. <div class="aaa">
  3568. <span>1.投保人身份证(正面)</span>
  3569. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList3', 'imgList5', 'C03')
  3570. " :file-list="imgList5" multiple ref="upload5" :class="{ styleB: imgList5.length === 1 }">
  3571. <img v-show="imgList5.length == 0" src="../../../../static/userfront.png"
  3572. style="width: 100%; height: 100%" />
  3573. <div slot="file" slot-scope="{ file }">
  3574. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3575. <span class="el-upload-list__item-actions">
  3576. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList3', 'imgList5')">
  3577. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3578. <i class="el-icon-delete"></i>
  3579. </span>
  3580. </span>
  3581. </div>
  3582. </el-upload>
  3583. </div>
  3584. <div class="aaa">
  3585. <span>2.投保人身份证(反面)</span>
  3586. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList3', 'imgList6', 'D03')
  3587. " :file-list="imgList6" multiple ref="upload6" :class="{ styleB: imgList6.length === 1 }">
  3588. <img v-show="imgList6.length == 0" src="../../../../static/userback.png"
  3589. style="width: 100%; height: 100%" />
  3590. <div slot="file" slot-scope="{ file }">
  3591. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3592. <span class="el-upload-list__item-actions">
  3593. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList3', 'imgList6')">
  3594. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3595. <i class="el-icon-delete"></i>
  3596. </span>
  3597. </span>
  3598. </div>
  3599. </el-upload>
  3600. </div>
  3601. <div class="aaa">
  3602. <span>3.投保人营业执照</span>
  3603. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList3', 'imgList27', 'Y03')
  3604. " :file-list="imgList27" multiple ref="upload6" :class="{ styleB: imgList27.length === 1 }">
  3605. <img v-show="imgList27.length == 0" src="../../../../static/userfront.png"
  3606. style="width: 100%; height: 100%" />
  3607. <div slot="file" slot-scope="{ file }">
  3608. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3609. <span class="el-upload-list__item-actions">
  3610. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList3', 'imgList27')">
  3611. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3612. <i class="el-icon-delete"></i>
  3613. </span>
  3614. </span>
  3615. </div>
  3616. </el-upload>
  3617. </div>
  3618. </div>
  3619. <div class="flex f-wrap">
  3620. <div class="aaa">
  3621. <span id="insured">1.被保人身份证(正面)</span>
  3622. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList4', 'imgList7', 'C04')
  3623. " :file-list="imgList7" multiple ref="upload7" :class="{ styleB: imgList7.length === 1 }">
  3624. <img v-show="imgList7.length == 0" src="../../../../static/userfront.png"
  3625. style="width: 100%; height: 100%" />
  3626. <div slot="file" slot-scope="{ file }">
  3627. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3628. <span class="el-upload-list__item-actions">
  3629. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList4', 'imgList7')">
  3630. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3631. <i class="el-icon-delete"></i>
  3632. </span>
  3633. </span>
  3634. </div>
  3635. </el-upload>
  3636. </div>
  3637. <div class="aaa">
  3638. <span>2.被保人身份证(反面)</span>
  3639. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList4', 'imgList8', 'D04')
  3640. " :file-list="imgList8" multiple ref="upload8" :class="{ styleB: imgList8.length === 1 }">
  3641. <img v-show="imgList8.length == 0" src="../../../../static/userback.png"
  3642. style="width: 100%; height: 100%" />
  3643. <div slot="file" slot-scope="{ file }">
  3644. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3645. <span class="el-upload-list__item-actions">
  3646. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList4', 'imgList8')">
  3647. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3648. <i class="el-icon-delete"></i>
  3649. </span>
  3650. </span>
  3651. </div>
  3652. </el-upload>
  3653. </div>
  3654. <div class="aaa">
  3655. <span>3.被保人营业执照</span>
  3656. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList4', 'imgList28', 'Y04')
  3657. " :file-list="imgList28" multiple ref="upload8" :class="{ styleB: imgList28.length === 1 }">
  3658. <img v-show="imgList28.length == 0" src="../../../../static/userfront.png"
  3659. style="width: 100%; height: 100%" />
  3660. <div slot="file" slot-scope="{ file }">
  3661. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3662. <span class="el-upload-list__item-actions">
  3663. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList4', 'imgList28')">
  3664. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3665. <i class="el-icon-delete"></i>
  3666. </span>
  3667. </span>
  3668. </div>
  3669. </el-upload>
  3670. </div>
  3671. </div>
  3672. <div class="flex f-wrap" id="relationship">
  3673. <div class="aaa">
  3674. <span>1.关系证明</span>
  3675. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3676. drivingupload(file, 'imageList5', 'imgList11', 'GX00')
  3677. " :file-list="imgList11" multiple ref="upload3" :class="{ styleB: imgList11.length === 1 }">
  3678. <img v-show="imgList11.length == 0" src="../../../../static/userfront.png"
  3679. style="width: 100%; height: 100%" />
  3680. <div slot="file" slot-scope="{ file }">
  3681. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3682. <span class="el-upload-list__item-actions">
  3683. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList5', 'imgList11')">
  3684. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3685. <i class="el-icon-delete"></i>
  3686. </span>
  3687. </span>
  3688. </div>
  3689. </el-upload>
  3690. </div>
  3691. </div>
  3692. <div class="flex f-wrap" id="yanchezhao">
  3693. <div class="aaa">
  3694. <span>1.验车照(车架)</span>
  3695. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3696. drivingupload(file, 'imageList6', 'imgList13', 'C0500')
  3697. " :file-list="imgList13" multiple ref="upload3" :class="{ styleB: imgList13.length === 1 }">
  3698. <img v-show="imgList13.length == 0" src="../../../../static/userfront.png"
  3699. style="width: 100%; height: 100%" />
  3700. <div slot="file" slot-scope="{ file }">
  3701. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3702. <span class="el-upload-list__item-actions">
  3703. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList13')">
  3704. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3705. <i class="el-icon-delete"></i>
  3706. </span>
  3707. </span>
  3708. </div>
  3709. </el-upload>
  3710. </div>
  3711. <div class="aaa">
  3712. <span>2.验车照(后左)</span>
  3713. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3714. drivingupload(file, 'imageList6', 'imgList14', 'C0501')
  3715. " :file-list="imgList14" multiple ref="upload3" :class="{ styleB: imgList14.length === 1 }">
  3716. <img v-show="imgList14.length == 0" src="../../../../static/userfront.png"
  3717. style="width: 100%; height: 100%" />
  3718. <div slot="file" slot-scope="{ file }">
  3719. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3720. <span class="el-upload-list__item-actions">
  3721. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList14')">
  3722. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3723. <i class="el-icon-delete"></i>
  3724. </span>
  3725. </span>
  3726. </div>
  3727. </el-upload>
  3728. </div>
  3729. <div class="aaa">
  3730. <span>3.验车照(后右)</span>
  3731. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3732. drivingupload(file, 'imageList6', 'imgList15', 'C0502')
  3733. " :file-list="imgList15" multiple ref="upload3" :class="{ styleB: imgList15.length === 1 }">
  3734. <img v-show="imgList15.length == 0" src="../../../../static/userfront.png"
  3735. style="width: 100%; height: 100%" />
  3736. <div slot="file" slot-scope="{ file }">
  3737. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3738. <span class="el-upload-list__item-actions">
  3739. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList15')">
  3740. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3741. <i class="el-icon-delete"></i>
  3742. </span>
  3743. </span>
  3744. </div>
  3745. </el-upload>
  3746. </div>
  3747. <div class="aaa">
  3748. <span>4.验车照(前右)</span>
  3749. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3750. drivingupload(file, 'imageList6', 'imgList16', 'C0503')
  3751. " :file-list="imgList16" multiple ref="upload3" :class="{ styleB: imgList16.length === 1 }">
  3752. <img v-show="imgList16.length == 0" src="../../../../static/userfront.png"
  3753. style="width: 100%; height: 100%" />
  3754. <div slot="file" slot-scope="{ file }">
  3755. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3756. <span class="el-upload-list__item-actions">
  3757. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList16')">
  3758. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3759. <i class="el-icon-delete"></i>
  3760. </span>
  3761. </span>
  3762. </div>
  3763. </el-upload>
  3764. </div>
  3765. <div class="aaa">
  3766. <span>5.验车照(前左)</span>
  3767. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3768. drivingupload(file, 'imageList6', 'imgList17', 'C0504')
  3769. " :file-list="imgList17" multiple ref="upload3" :class="{ styleB: imgList17.length === 1 }">
  3770. <img v-show="imgList17.length == 0" src="../../../../static/userfront.png"
  3771. style="width: 100%; height: 100%" />
  3772. <div slot="file" slot-scope="{ file }">
  3773. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3774. <span class="el-upload-list__item-actions">
  3775. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList17')">
  3776. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3777. <i class="el-icon-delete"></i>
  3778. </span>
  3779. </span>
  3780. </div>
  3781. </el-upload>
  3782. </div>
  3783. <div class="aaa">
  3784. <span>6.验车照(正前)</span>
  3785. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3786. drivingupload(file, 'imageList6', 'imgList18', 'C0506')
  3787. " :file-list="imgList18" multiple ref="upload3" :class="{ styleB: imgList18.length === 1 }">
  3788. <img v-show="imgList18.length == 0" src="../../../../static/userfront.png"
  3789. style="width: 100%; height: 100%" />
  3790. <div slot="file" slot-scope="{ file }">
  3791. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3792. <span class="el-upload-list__item-actions">
  3793. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList18')">
  3794. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3795. <i class="el-icon-delete"></i>
  3796. </span>
  3797. </span>
  3798. </div>
  3799. </el-upload>
  3800. </div>
  3801. <div class="aaa">
  3802. <span>7.验车照(正后)</span>
  3803. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3804. drivingupload(file, 'imageList6', 'imgList19', 'C0507')
  3805. " :file-list="imgList19" multiple ref="upload3" :class="{ styleB: imgList19.length === 1 }">
  3806. <img v-show="imgList19.length == 0" src="../../../../static/userfront.png"
  3807. style="width: 100%; height: 100%" />
  3808. <div slot="file" slot-scope="{ file }">
  3809. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3810. <span class="el-upload-list__item-actions">
  3811. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList19')">
  3812. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3813. <i class="el-icon-delete"></i>
  3814. </span>
  3815. </span>
  3816. </div>
  3817. </el-upload>
  3818. </div>
  3819. <div class="aaa">
  3820. <span>8.验车照(人车合影)</span>
  3821. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3822. drivingupload(file, 'imageList6', 'imgList20', 'C0505')
  3823. " :file-list="imgList20" multiple ref="upload3" :class="{ styleB: imgList20.length === 1 }">
  3824. <img v-show="imgList20.length == 0" src="../../../../static/userfront.png"
  3825. style="width: 100%; height: 100%" />
  3826. <div slot="file" slot-scope="{ file }">
  3827. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3828. <span class="el-upload-list__item-actions">
  3829. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList20')">
  3830. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3831. <i class="el-icon-delete"></i>
  3832. </span>
  3833. </span>
  3834. </div>
  3835. </el-upload>
  3836. </div>
  3837. <div class="aaa">
  3838. <span>9.验车照(地标合影)</span>
  3839. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3840. drivingupload(file, 'imageList6', 'imgList21', 'C0508')
  3841. " :file-list="imgList21" multiple ref="upload3" :class="{ styleB: imgList21.length === 1 }">
  3842. <img v-show="imgList21.length == 0" src="../../../../static/userfront.png"
  3843. style="width: 100%; height: 100%" />
  3844. <div slot="file" slot-scope="{ file }">
  3845. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3846. <span class="el-upload-list__item-actions">
  3847. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList21')">
  3848. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3849. <i class="el-icon-delete"></i>
  3850. </span>
  3851. </span>
  3852. </div>
  3853. </el-upload>
  3854. </div>
  3855. <div class="aaa">
  3856. <span>10.验车照(工作台)</span>
  3857. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3858. drivingupload(file, 'imageList6', 'imgList22', 'C0509')
  3859. " :file-list="imgList22" multiple ref="upload3" :class="{ styleB: imgList22.length === 1 }">
  3860. <img v-show="imgList22.length == 0" src="../../../../static/userfront.png"
  3861. style="width: 100%; height: 100%" />
  3862. <div slot="file" slot-scope="{ file }">
  3863. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3864. <span class="el-upload-list__item-actions">
  3865. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList22')">
  3866. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3867. <i class="el-icon-delete"></i>
  3868. </span>
  3869. </span>
  3870. </div>
  3871. </el-upload>
  3872. </div>
  3873. <div class="aaa">
  3874. <span>11.验车照(天窗)</span>
  3875. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3876. drivingupload(file, 'imageList6', 'imgList23', 'C0510')
  3877. " :file-list="imgList23" multiple ref="upload3" :class="{ styleB: imgList23.length === 1 }">
  3878. <img v-show="imgList23.length == 0" src="../../../../static/userfront.png"
  3879. style="width: 100%; height: 100%" />
  3880. <div slot="file" slot-scope="{ file }">
  3881. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3882. <span class="el-upload-list__item-actions">
  3883. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList23')">
  3884. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3885. <i class="el-icon-delete"></i>
  3886. </span>
  3887. </span>
  3888. </div>
  3889. </el-upload>
  3890. </div>
  3891. </div>
  3892. <div class="flex f-wrap" id="snbaodan">
  3893. <div class="aaa">
  3894. <span>1.上年商业险保单</span>
  3895. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3896. drivingupload(file, 'imageList6', 'imgList24', 'LAST_INSURANCE_POLICY')
  3897. " :file-list="imgList24" multiple ref="upload3" :class="{ styleB: imgList24.length === 1 }">
  3898. <img v-show="imgList24.length == 0" src="../../../../static/userfront.png"
  3899. style="width: 100%; height: 100%" />
  3900. <div slot="file" slot-scope="{ file }">
  3901. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3902. <span class="el-upload-list__item-actions">
  3903. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList24')">
  3904. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3905. <i class="el-icon-delete"></i>
  3906. </span>
  3907. </span>
  3908. </div>
  3909. </el-upload>
  3910. </div>
  3911. </div>
  3912. <div class="flex f-wrap" id="shouquanshu">
  3913. <div class="aaa">
  3914. <span>1.授权书</span>
  3915. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3916. drivingupload(file, 'imageList6', 'imgList25', 'SQ00')
  3917. " :file-list="imgList25" multiple ref="upload3" :class="{ styleB: imgList25.length === 1 }">
  3918. <img v-show="imgList25.length == 0" src="../../../../static/userfront.png"
  3919. style="width: 100%; height: 100%" />
  3920. <div slot="file" slot-scope="{ file }">
  3921. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3922. <span class="el-upload-list__item-actions">
  3923. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList25')">
  3924. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3925. <i class="el-icon-delete"></i>
  3926. </span>
  3927. </span>
  3928. </div>
  3929. </el-upload>
  3930. </div>
  3931. </div>
  3932. </el-col>
  3933. </el-row>
  3934. <span slot="footer" class="dialog-footer">
  3935. <el-button size="small" @click="imageUploaddialogVisible = false">取 消</el-button>
  3936. <el-button size="small" type="primary" @click="uploadinformation">上传资料</el-button>
  3937. </span>
  3938. </el-dialog>
  3939. <!-- 调整险种弹窗 -->
  3940. <el-dialog title="调整险种" :visible.sync="typeDialogVisible" width="60%" top="5vh" :before-close="handleCloseType">
  3941. <div class="typedialog-style addyiwai typedialog-style1" v-if="productId != '034001' && productId != '034002'">
  3942. <div class="typedialog-title"><i class="el-icon-circle-check"
  3943. style="color: #D42426; font-size: 20px; margin-right: 10px;"></i>交通事故强制责任险:</div>
  3944. <el-table :data="typeJqTable" border style="width: 100%" stripe header-cell-class-name="table-header">
  3945. <el-table-column prop="date" label="保障范围" align="center"></el-table-column>
  3946. <el-table-column prop="date1" label="保额(元)" align="center"></el-table-column>
  3947. <!-- <el-table-column prop="date2" label="总计" align="center"></el-table-column> -->
  3948. </el-table>
  3949. </div>
  3950. <div class="typedialog-style addyiwai typedialog-style2" v-if="productId != '0330'">
  3951. <!-- 商业险 -->
  3952. <div class="typedialog-title"><i class="el-icon-circle-check"
  3953. style="color: #D42426; font-size: 20px; margin-right: 10px;"></i>商业险详情:</div>
  3954. <div class="flex f-c">
  3955. <div class="flex j-s a-c more-title back">
  3956. <div style="width: 550px; padding-left: 100px" class="flex j-s a-c">
  3957. <span>险别</span>
  3958. <span>保额(元)</span>
  3959. </div>
  3960. </div>
  3961. <div class="a-c back" v-for="(insureitem, insureindex) in typeDialogData.kinds" :key="insureindex">
  3962. <el-row style="background: #FFF;" type="flex" align="middle">
  3963. <el-col :span="10" class="more-data-left">
  3964. <div class="zhuxian" v-if="insureitem.grouping == 'main'" style="background: #Y0282A">主险</div>
  3965. <div class="zhuxian" v-if="insureitem.grouping == 'additional'">附加险</div>
  3966. <div class="zhuxian" v-if="insureitem.grouping == 'service'">增值服务</div>
  3967. <span>
  3968. <el-checkbox v-model="insureitem.checked" :disabled="insureitem.Required">
  3969. <!-- <span :class="insureitem.grouping != 'additional' ? 'opacity1' : 'opacity0'">{{ insureitem.kindName }}</span> -->
  3970. <span class="opacity1">{{ insureitem.kindName }}</span>
  3971. <el-input v-show="insureitem.kindCode == 'D4' ||
  3972. insureitem.kindCode == 'MJ4' ||
  3973. insureitem.kindCode == 'SY_FJ_YBW2'
  3974. " v-model="sumseatCount" style="width: 40px; margin: 0 5px" size="small" placeholder
  3975. disabled></el-input>
  3976. <span v-show="insureitem.kindCode == 'D4' ||
  3977. insureitem.kindCode == 'MJ4' ||
  3978. insureitem.kindCode == 'SY_FJ_YBW2'
  3979. ">座</span>
  3980. </el-checkbox>
  3981. </span>
  3982. </el-col>
  3983. <el-col :span="14" class="more-data-right">
  3984. <el-select v-if="insureitem.amtList" filterable v-model="insureitem.amount" placeholder="请选择"
  3985. @change="insureitemChange($event, insureitem)" size="small" style="width: 300px">
  3986. <el-option :label="item.label" :value="item.value" v-for="(item, index) in insureitem.amtList"
  3987. :key="index"></el-option>
  3988. </el-select>
  3989. <span v-else>
  3990. <el-input-number size="small" style="width: 280px; margin-right: 10px" v-model="insureitem.amount"
  3991. :min="0"></el-input-number>次
  3992. </span>
  3993. </el-col>
  3994. </el-row>
  3995. </div>
  3996. </div>
  3997. </div>
  3998. <div class="typedialog-style addyiwai typedialog-style3">
  3999. <!-- <div class="typedialog-title"><i class="el-icon-circle-check" style="color: #D42426; font-size: 20px; margin-right: 10px;"></i>驾意险详情:</div> -->
  4000. <div class="typedialog-style">
  4001. <div class="flex a-c" style="margin-bottom: 20px;">
  4002. <div class="typedialog-title addyiwai-title"><i class="el-icon-circle-check"
  4003. style="color: #D42426; font-size: 20px; margin-right: 10px;"></i>驾意险方案配置:</div>
  4004. <div v-if="false" class="addyiwai-title-btn">添加配置</div>
  4005. </div>
  4006. <div v-if="true">
  4007. <div v-for="(listItem, listIndex) in jiayiDialogData.drivingTypeList" :key="listIndex"
  4008. v-show="listIndex == 0">
  4009. <el-checkbox-group v-model="checkList" @change="handleChangeJiayi(listItem, listIndex)">
  4010. <el-checkbox v-for="(item, index) in listItem.children" :key="index" :label="item">{{ item.typeName
  4011. }}</el-checkbox>
  4012. </el-checkbox-group>
  4013. <div v-for="(item, index) in checkList" :key="index" style="margin-bottom: 20px;">
  4014. <div v-if="totalCompanyList[typeDialogIndex].cnName == 'zijin'">
  4015. <el-row style="margin-bottom: 20px;">
  4016. <el-col :span="10">
  4017. {{ item.typeName }}
  4018. <el-select v-if="item.detail" style="width: 300px;" v-model="item.selectList" clearable multiple
  4019. @change="handleChangeSelect(index)" size="small" placeholder="请选择">
  4020. <el-option v-for="(i, ind) in item.detail" :key="ind" :label="i.alias" :value="i.alias">
  4021. </el-option>
  4022. </el-select>
  4023. </el-col>
  4024. </el-row>
  4025. <div v-for="(dataItem, dataIndex) in item.tableData" :key="dataIndex">
  4026. <el-col :span="6">
  4027. 份数
  4028. <el-input v-model="dataItem.quantity" style="width: 120px;" size="small"
  4029. @input="(e) => { changeInput(e, listIndex, index, 'minus', item.tableData.minQuantity) }">
  4030. <template slot="prepend"><i class="el-icon-minus"
  4031. @click="numberChange(listIndex, index, 'minus', dataItem.minQuantity, dataIndex)"></i></template>
  4032. <template slot="append"><i class="el-icon-plus"
  4033. @click="numberChange(listIndex, index, 'plus', dataItem.minQuantity, dataIndex)"></i></template>
  4034. </el-input>
  4035. 份
  4036. </el-col>
  4037. <el-col v-if="item.tableData" :span="4" class="flex a-c">保费:{{ Number(dataItem.sumPremium) *
  4038. dataItem.quantity }}元</el-col>
  4039. </div>
  4040. <el-table v-if="item.tableData && item.tableData.length" :data="item.tableData" border
  4041. style="width: 100%; margin-top: 20px;" stripe header-cell-class-name="table-header">
  4042. <el-table-column prop="name" label="保险责任" align="center">
  4043. <template slot-scope="scope">
  4044. <span>{{ scope.row.insDrivingIntentionInsuranceSon[0].name }}</span>
  4045. </template>
  4046. </el-table-column>
  4047. <el-table-column prop="amount" label="保险金额" align="center">
  4048. <template slot-scope="scope">
  4049. <span>{{ scope.row.insDrivingIntentionInsuranceSon[0].amount }}</span>
  4050. </template>
  4051. </el-table-column>
  4052. <el-table-column prop="premium" label="保费(元)" align="center">
  4053. <template slot-scope="scope">
  4054. <span>{{ scope.row.insDrivingIntentionInsuranceSon[0].premium }}</span>
  4055. </template>
  4056. </el-table-column>
  4057. <el-table-column prop="quantity" label="份数" align="center"></el-table-column>
  4058. <el-table-column prop="sumPremium" label="总保费" align="center"></el-table-column>
  4059. </el-table>
  4060. </div>
  4061. <div v-else>
  4062. <!-- totalCompanyList[typeDialogIndex].cnName == 'guoRen' || totalCompanyList[typeDialogIndex].cnName == 'ansheng' || totalCompanyList[typeDialogIndex].cnName == 'dajia' -->
  4063. <el-row v-if="false">
  4064. <el-col :span="8">
  4065. {{ item.typeName }}
  4066. <el-select v-model="item.select" style="width: 400px;" clearable
  4067. @change="handleChangeSelectGuoren(index)" size="small" placeholder="请选择" v-if="item.detail">
  4068. <el-option v-for="(i, ind) in item.detail" :key="ind" :label="i.alias" :value="i.alias">
  4069. </el-option>
  4070. </el-select>
  4071. </el-col>
  4072. <el-col :span="5">
  4073. <el-select v-model="item.select1" clearable @change="handleChangeSelect(index)" size="small"
  4074. placeholder="请选择" v-if="item.tableData1">
  4075. <el-option v-for="(i, ind) in item.tableData1" :key="ind" :label="i.alias" :value="i.alias">
  4076. </el-option>
  4077. </el-select>
  4078. </el-col>
  4079. <el-col :span="6" v-if="item.tableData">
  4080. 份数
  4081. <!-- <el-input-number v-model="item.tableData.quantity" :step="1" :min="1" :max="10" @change="numberChange(listIndex, index)" size="small"></el-input-number> -->
  4082. <el-input v-model="item.tableData.quantity" style="width: 120px;" size="small"
  4083. @input="(e) => { changeInput(e, listIndex, index, 'minus', item.tableData.minQuantity) }">
  4084. <template slot="prepend"><i class="el-icon-minus"
  4085. @click="numberChange(listIndex, index, 'minus', item.tableData.minQuantity)"></i></template>
  4086. <template slot="append"><i class="el-icon-plus"
  4087. @click="numberChange(listIndex, index, 'plus', item.tableData.minQuantity)"></i></template>
  4088. </el-input>
  4089. 份
  4090. </el-col>
  4091. <el-col v-if="item.tableData" :span="4">保费:{{ Number(item.tableData.sumPremium) *
  4092. item.tableData.quantity }}元</el-col>
  4093. <!-- <el-col :span="1"><i class="el-icon-delete"></i></el-col> -->
  4094. </el-row>
  4095. <el-row v-else>
  4096. <el-col :span="12">
  4097. {{ item.typeName }}
  4098. <el-select v-model="item.select" style="width: 400px;" clearable
  4099. @change="handleChangeSelect(index)" size="small" placeholder="请选择" v-if="item.detail">
  4100. <el-option v-for="(i, ind) in item.detail" :key="ind" :label="i.alias" :value="i.alias">
  4101. </el-option>
  4102. </el-select>
  4103. </el-col>
  4104. <el-col :span="6" v-if="item.tableData">
  4105. 份数
  4106. <!-- <el-input-number v-model="item.tableData.quantity" :step="1" :min="1" :max="10" @change="numberChange(listIndex, index)" label="描述文字" size="small"></el-input-number> -->
  4107. <el-input v-model="item.tableData.quantity" style="width: 120px;" size="small"
  4108. @input="(e) => { changeInput(e, listIndex, index, 'minus', item.tableData.minQuantity) }">
  4109. <template slot="prepend"><i class="el-icon-minus"
  4110. @click="numberChange(listIndex, index, 'minus', item.tableData.minQuantity)"></i></template>
  4111. <template slot="append"><i class="el-icon-plus"
  4112. @click="numberChange(listIndex, index, 'plus', item.tableData.minQuantity)"></i></template>
  4113. </el-input>
  4114. 份
  4115. </el-col>
  4116. <el-col v-if="item.tableData" :span="4" class="flex a-c">保费:{{ Number(item.tableData.sumPremium) *
  4117. item.tableData.quantity }}元</el-col>
  4118. <!-- <el-col :span="1"><i class="el-icon-delete"></i></el-col> -->
  4119. </el-row>
  4120. <el-table v-if="item.tableData" :data="item.tableData.insDrivingIntentionInsuranceSon" border
  4121. style="width: 100%; margin-top: 20px;" stripe header-cell-class-name="table-header">
  4122. <el-table-column prop="name" label="保险责任" align="center"></el-table-column>
  4123. <el-table-column prop="amount" label="保险金额" align="center"></el-table-column>
  4124. <el-table-column prop="premium" label="保费(元)" align="center"></el-table-column>
  4125. </el-table>
  4126. </div>
  4127. </div>
  4128. </div>
  4129. </div>
  4130. <div v-else>
  4131. <div v-for="(item, index) in 3" :key="index" style="margin-bottom: 20px;">
  4132. <el-row style="margin-bottom: 20px;">
  4133. <el-col :span="10">
  4134. 驾意选择
  4135. <!-- v-model="value" -->
  4136. <el-select size="small" clearable placeholder="请选择">
  4137. <el-option v-for="item in 3" :key="item.value" :label="22" :value="22">
  4138. </el-option>
  4139. </el-select>
  4140. </el-col>
  4141. <el-col :span="9">
  4142. 份数
  4143. <el-input-number label="描述文字" size="small"></el-input-number>
  4144. 份
  4145. </el-col>
  4146. <el-col :span="4">保费:15元</el-col>
  4147. <el-col :span="1"><i class="el-icon-delete"></i></el-col>
  4148. </el-row>
  4149. <el-table :data="item.table" border style="width: 100%" stripe header-cell-class-name="table-header">
  4150. <el-table-column prop="date" label="保险责任" align="center"></el-table-column>
  4151. <el-table-column prop="date1" label="保险金额" align="center"></el-table-column>
  4152. <el-table-column prop="date2" label="保费(元)" align="center"></el-table-column>
  4153. </el-table>
  4154. </div>
  4155. </div>
  4156. </div>
  4157. </div>
  4158. <span slot="footer" class="dialog-footer">
  4159. <el-button size="small" @click="handleCloseType">取 消</el-button>
  4160. <el-button size="small" type="primary" @click="subTypeDialog">确 定</el-button>
  4161. </span>
  4162. </el-dialog>
  4163. <!-- 驾意险 -->
  4164. <el-dialog title="驾意险" :visible.sync="addYiwaiDialogVisible" width="60%" top="5vh"
  4165. :before-close="handleCloseAddYiwai" class="addyiwai">
  4166. <div class="typedialog-style">
  4167. <el-card>
  4168. <div class="flex a-c" style="margin-bottom: 20px;">
  4169. <div class="addyiwai-title">驾意险方案配置</div>
  4170. <div v-if="false" class="addyiwai-title-btn">添加配置</div>
  4171. </div>
  4172. <div v-if="true">
  4173. <div v-for="(listItem, listIndex) in jiayiDialogData.drivingTypeList" :key="listIndex">
  4174. <el-checkbox-group v-model="checkList" @change="handleChangeJiayi(listItem, listIndex)">
  4175. <el-checkbox v-for="(item, index) in listItem.children" :key="index" :label="item">{{ item.typeName
  4176. }}</el-checkbox>
  4177. </el-checkbox-group>
  4178. <div v-for="(item, index) in checkList" :key="index" style="margin-bottom: 20px;">
  4179. <div v-if="totalCompanyList[typeDialogIndex].cnName == 'zijin'">
  4180. <el-row style="margin-bottom: 20px;">
  4181. <el-col :span="10">
  4182. {{ item.typeName }}
  4183. <el-select v-if="item.detail" v-model="item.selectList" clearable multiple
  4184. @change="handleChangeSelect(index)" size="small" placeholder="请选择">
  4185. <el-option v-for="(i, ind) in item.detail" :key="ind" :label="i.projectName"
  4186. :value="i.projectName">
  4187. </el-option>
  4188. </el-select>
  4189. </el-col>
  4190. </el-row>
  4191. <el-table v-if="item.tableData" :data="item.tableData" border style="width: 100%; margin-top: 20px;"
  4192. stripe header-cell-class-name="table-header">
  4193. <el-table-column prop="name" label="保险责任" align="center">
  4194. <template slot-scope="scope">
  4195. <span>{{ scope.row.insDrivingIntentionInsuranceSon[0].name }}</span>
  4196. </template>
  4197. </el-table-column>
  4198. <el-table-column prop="amount" label="保险金额" align="center">
  4199. <template slot-scope="scope">
  4200. <span>{{ scope.row.insDrivingIntentionInsuranceSon[0].amount }}</span>
  4201. </template>
  4202. </el-table-column>
  4203. <el-table-column prop="premium" label="保费(元)" align="center">
  4204. <template slot-scope="scope">
  4205. <span>{{ scope.row.insDrivingIntentionInsuranceSon[0].premium }}</span>
  4206. </template>
  4207. </el-table-column>
  4208. <el-table-column prop="quantity" label="份数" align="center"></el-table-column>
  4209. <el-table-column prop="sumPremium" label="总保费" align="center"></el-table-column>
  4210. </el-table>
  4211. </div>
  4212. <div v-else>
  4213. <!-- totalCompanyList[typeDialogIndex].cnName == 'guoRen' || totalCompanyList[typeDialogIndex].cnName == 'ansheng' -->
  4214. <el-row v-if="false">
  4215. <el-col :span="8">
  4216. {{ item.typeName }}
  4217. <el-select v-model="item.select" clearable @change="handleChangeSelectGuoren(index)" size="small"
  4218. placeholder="请选择" v-if="item.detail">
  4219. <el-option v-for="(i, ind) in item.detail" :key="ind" :label="i.alias" :value="i.alias">
  4220. </el-option>
  4221. </el-select>
  4222. </el-col>
  4223. <el-col :span="5">
  4224. <el-select v-model="item.select1" clearable @change="handleChangeSelect(index)" size="small"
  4225. placeholder="请选择" v-if="item.tableData1">
  4226. <el-option v-for="(i, ind) in item.tableData1" :key="ind" :label="i.alias" :value="i.alias">
  4227. </el-option>
  4228. </el-select>
  4229. </el-col>
  4230. <el-col :span="6" v-if="item.tableData">
  4231. 份数
  4232. <!-- <el-input-number v-model="item.tableData.quantity" :step="1" :min="1" :max="10" @change="numberChange(listIndex, index)" size="small"></el-input-number> -->
  4233. <el-input v-model="item.tableData.quantity" style="width: 120px;" size="small"
  4234. @input="(e) => { changeInput(e, listIndex, index, 'minus', item.tableData.minQuantity) }">
  4235. <template slot="prepend"><i class="el-icon-minus"
  4236. @click="numberChange(listIndex, index, 'minus', item.tableData.minQuantity)"></i></template>
  4237. <template slot="append"><i class="el-icon-plus"
  4238. @click="numberChange(listIndex, index, 'plus', item.tableData.minQuantity)"></i></template>
  4239. </el-input>
  4240. 份
  4241. </el-col>
  4242. <el-col v-if="item.tableData" :span="4">保费:{{ Number(item.tableData.sumPremium) *
  4243. item.tableData.quantity }}元</el-col>
  4244. <!-- <el-col :span="1"><i class="el-icon-delete"></i></el-col> -->
  4245. </el-row>
  4246. <el-row v-else>
  4247. <el-col :span="10">
  4248. {{ item.typeName }}
  4249. <el-select v-model="item.select" clearable @change="handleChangeSelect(index)" size="small"
  4250. placeholder="请选择" v-if="item.detail">
  4251. <el-option v-for="(i, ind) in item.detail" :key="ind" :label="i.projectName"
  4252. :value="i.projectName">
  4253. </el-option>
  4254. </el-select>
  4255. </el-col>
  4256. <el-col :span="9" v-if="item.tableData">
  4257. 份数
  4258. <!-- <el-input-number v-model="item.tableData.quantity" :step="1" :min="1" :max="10" @change="numberChange(listIndex, index)" label="描述文字" size="small"></el-input-number> -->
  4259. <el-input v-model="item.tableData.quantity" style="width: 120px;" size="small"
  4260. @input="(e) => { changeInput(e, listIndex, index, 'minus', item.tableData.minQuantity) }">
  4261. <template slot="prepend"><i class="el-icon-minus"
  4262. @click="numberChange(listIndex, index, 'minus', item.tableData.minQuantity)"></i></template>
  4263. <template slot="append"><i class="el-icon-plus"
  4264. @click="numberChange(listIndex, index, 'plus', item.tableData.minQuantity)"></i></template>
  4265. </el-input>
  4266. 份
  4267. </el-col>
  4268. <el-col v-if="item.tableData" :span="4">保费:{{ Number(item.tableData.sumPremium) *
  4269. item.tableData.quantity }}元</el-col>
  4270. <!-- <el-col :span="1"><i class="el-icon-delete"></i></el-col> -->
  4271. </el-row>
  4272. <el-table v-if="item.tableData" :data="item.tableData.insDrivingIntentionInsuranceSon" border
  4273. style="width: 100%; margin-top: 20px;" stripe header-cell-class-name="table-header">
  4274. <el-table-column prop="name" label="保险责任" align="center"></el-table-column>
  4275. <el-table-column prop="amount" label="保险金额" align="center"></el-table-column>
  4276. <el-table-column prop="premium" label="保费(元)" align="center"></el-table-column>
  4277. </el-table>
  4278. </div>
  4279. </div>
  4280. </div>
  4281. </div>
  4282. <div v-else>
  4283. <div v-for="(item, index) in 3" :key="index" style="margin-bottom: 20px;">
  4284. <el-row style="margin-bottom: 20px;">
  4285. <el-col :span="10">
  4286. 驾意选择
  4287. <!-- v-model="value" -->
  4288. <el-select size="small" clearable placeholder="请选择">
  4289. <el-option v-for="item in 3" :key="item.value" :label="22" :value="22">
  4290. </el-option>
  4291. </el-select>
  4292. </el-col>
  4293. <el-col :span="9">
  4294. 份数
  4295. <el-input-number label="描述文字" size="small"></el-input-number>
  4296. 份
  4297. </el-col>
  4298. <el-col :span="4">保费:15元</el-col>
  4299. <el-col :span="1"><i class="el-icon-delete"></i></el-col>
  4300. </el-row>
  4301. <el-table :data="item.table" border style="width: 100%" stripe header-cell-class-name="table-header">
  4302. <el-table-column prop="date" label="保险责任" align="center"></el-table-column>
  4303. <el-table-column prop="date1" label="保险金额" align="center"></el-table-column>
  4304. <el-table-column prop="date2" label="保费(元)" align="center"></el-table-column>
  4305. </el-table>
  4306. </div>
  4307. </div>
  4308. </el-card>
  4309. </div>
  4310. <span slot="footer" class="dialog-footer">
  4311. <el-button size="small" @click="handleCloseAddYiwai">取 消</el-button>
  4312. <el-button size="small" type="primary" @click="handleAddYiWai">确 定</el-button>
  4313. </span>
  4314. </el-dialog>
  4315. <!-- 详情 -->
  4316. <el-dialog :title="detailJiaYiTitle" :visible.sync="showDetailJiaYiVisible" width="60%" top="5vh"
  4317. :before-close="handleCloseShowDetailJiaYi">
  4318. <div class="typedialog-style addyiwai typedialog-style1"
  4319. v-if="productId != '034001' && productId != '034002' && detailJiaYiTitle == '查看详情'">
  4320. <div class="typedialog-title"><i class="el-icon-circle-check"
  4321. style="color: #D42426; font-size: 20px; margin-right: 10px;"></i>交通事故强制责任险:</div>
  4322. <el-table :data="typeJqTable" border style="width: 100%" stripe header-cell-class-name="table-header">
  4323. <el-table-column prop="date" label="保障范围" align="center"></el-table-column>
  4324. <el-table-column prop="date1" label="保额(元)" align="center"></el-table-column>
  4325. </el-table>
  4326. </div>
  4327. <div class="typedialog-style typedialog-style2" v-if="productId != '0330' && detailJiaYiTitle == '查看详情'">
  4328. <div class="typedialog-title"><i class="el-icon-circle-check"
  4329. style="color: #D42426; font-size: 20px; margin-right: 10px;"></i>商业险详情:</div>
  4330. <div class="a-c back">
  4331. <el-row style="background: #F7F7F9;">
  4332. <el-col :span="10" class="more-data-left">险别</el-col>
  4333. <el-col :span="14" class="more-data-right">保额(元)</el-col>
  4334. </el-row>
  4335. <el-row style="background: #FFF;" v-for="(insureitem, insureindex) in typeDialogData.shangyeList"
  4336. :key="insureindex">
  4337. <el-col :span="10" class="more-data-left">
  4338. <div class="zhuxian" v-if="insureitem.grouping == 'main'" style="background: #Y0282A">主险</div>
  4339. <div class="zhuxian" v-if="insureitem.grouping == 'additional'">附加险</div>
  4340. <div class="zhuxian" v-if="insureitem.grouping == 'service'">增值服务</div>
  4341. <span>
  4342. <span class="opacity1">{{ insureitem.kindName }}</span>
  4343. <el-input v-show="insureitem.kindCode == 'D4' ||
  4344. insureitem.kindCode == 'MJ4' ||
  4345. insureitem.kindCode == 'SY_FJ_YBW2'
  4346. " v-model="sumseatCount" style="width: 40px; margin: 0 5px" size="mini" placeholder
  4347. disabled></el-input>
  4348. <span v-show="insureitem.kindCode == 'D4' ||
  4349. insureitem.kindCode == 'MJ4' ||
  4350. insureitem.kindCode == 'SY_FJ_YBW2'
  4351. ">座</span>
  4352. </span>
  4353. </el-col>
  4354. <el-col :span="14" class="more-data-right">
  4355. {{ toWan(insureitem.amount) }}
  4356. </el-col>
  4357. </el-row>
  4358. <div v-show="typeDialogData && typeDialogData.shangyeList && !typeDialogData.shangyeList.length">暂无</div>
  4359. </div>
  4360. </div>
  4361. <div class="typedialog-style typedialog-style3" v-if="showDetailtable && showDetailtable.length">
  4362. <div class="typedialog-title" style="display: flex; justify-content: space-between;">
  4363. <div><i class="el-icon-circle-check" style="color: #D42426; font-size: 20px; margin-right: 10px;"></i>驾意险详情:
  4364. </div>
  4365. <div class="typedialog-title">( 驾驶人意外单份保额 )如下</div>
  4366. </div>
  4367. <el-table v-for="(item, index) in showDetailtable" :key="index" :data="item" border style="width: 100%" stripe
  4368. header-cell-class-name="table-header">
  4369. <el-table-column prop="name" label="保险责任名称" align="center"></el-table-column>
  4370. <el-table-column prop="amount" label="保额(元)" align="center"></el-table-column>
  4371. <el-table-column prop="premium" label="保费(元)" align="center"></el-table-column>
  4372. </el-table>
  4373. <div v-if="showDetailtable && !showDetailtable.length">暂无</div>
  4374. <div class="typedialog-title" v-if="detailJiaYiTitle == '查看详情'">已选份数:</div>
  4375. <div class="jiayi-style" v-if="detailJiaYiTitle == '查看详情'">
  4376. <el-row v-for="(item, index) in typeDialogData.drivingList" :key="index">
  4377. <el-col :span="10">
  4378. <div class="jiayi-style-title">产品名称</div>
  4379. <div class="jiayi-style-line">{{ item.alias || item.projectName }}</div>
  4380. </el-col>
  4381. <!-- <el-col :span="6">
  4382. <div class="jiayi-style-title">座位数</div>
  4383. <div class="jiayi-style-line">{{ }}</div>
  4384. </el-col> -->
  4385. <el-col :span="6">
  4386. <div class="jiayi-style-title">份数</div>
  4387. <div class="jiayi-style-line">{{ item.quantity }}</div>
  4388. </el-col>
  4389. <el-col :span="3">
  4390. <div class="jiayi-style-title">每份</div>
  4391. <div class="jiayi-style-line">{{ item.sumPremium }}</div>
  4392. </el-col>
  4393. <el-col :span="3">
  4394. <div class="jiayi-style-title">合计</div>
  4395. <div class="jiayi-style-line">{{ Number(item.sumPremium) * item.quantity }}</div>
  4396. </el-col>
  4397. </el-row>
  4398. <div v-if="typeDialogData && typeDialogData.drivingList && !typeDialogData.drivingList.length">暂无</div>
  4399. </div>
  4400. </div>
  4401. <span slot="footer" class="dialog-footer">
  4402. <!-- <el-button size="small" @click="handleCloseShowDetailJiaYi">取 消</el-button> -->
  4403. <el-button size="small" type="primary" @click="handleCloseShowDetailJiaYi">确 定</el-button>
  4404. </span>
  4405. </el-dialog>
  4406. <!-- 驾意险详情 -->
  4407. <el-dialog :title="detailJiaYiTitle" :visible.sync="showDetailJiaYiVisible1" width="60%" top="5vh" v-dialogDrag
  4408. :before-close="handleCloseShowDetailJiaYi">
  4409. <div class="typedialog-style typedialog-style3" v-if="showDetailtable && showDetailtable.length">
  4410. <div class="typedialog-title" style="display: flex; justify-content: space-between;">
  4411. <div><i class="el-icon-circle-check" style="color: #D42426; font-size: 20px; margin-right: 10px;"></i>驾意险详情:
  4412. </div>
  4413. <div class="typedialog-title">( 驾驶人意外单份保额 )如下</div>
  4414. </div>
  4415. <el-table v-for="(item, index) in showDetailtable" :key="index" :data="item" border style="width: 100%" stripe
  4416. header-cell-class-name="table-header">
  4417. <el-table-column prop="name" label="保险责任名称" align="center"></el-table-column>
  4418. <el-table-column prop="amount" label="保额(元)" align="center"></el-table-column>
  4419. <el-table-column prop="premium" label="保费(元)" align="center"></el-table-column>
  4420. </el-table>
  4421. <div v-if="showDetailtable && !showDetailtable.length">暂无</div>
  4422. </div>
  4423. <span slot="footer" class="dialog-footer">
  4424. <!-- <el-button size="small" @click="handleCloseShowDetailJiaYi">取 消</el-button> -->
  4425. <el-button size="small" type="primary" @click="handleCloseShowDetailJiaYi">确 定</el-button>
  4426. </span>
  4427. </el-dialog>
  4428. <!-- 选择特约 showTeYueVisible -->
  4429. <el-dialog title="选择特约" :visible.sync="showTeYueVisible" width="40%" top="5vh" :before-close="handleCloseTeYue"
  4430. class="teYuedialog-style">
  4431. <div>
  4432. <!-- <el-input placeholder="请输入内容" style="margin-bottom: 20px;">
  4433. <el-button type="primary" slot="append" icon="el-icon-search"></el-button>
  4434. </el-input> -->
  4435. <el-table :data="teYueTable" style="width: 100%" stripe header-cell-class-name="table-header">
  4436. <el-table-column type="selection" width="55"></el-table-column>
  4437. <el-table-column type="expand">
  4438. <!-- <template slot-scope="props">
  4439. <div class="table-title">特约内容</div>
  4440. <div class="table-title">保险公司温馨提示:根据车船税征收管理规定,次年生效交强险业务如本年提前续保,请您仍须在下一年度年底前完成跨年提前续保并缴纳车船税,否则会产生车船税滞纳金。</div>
  4441. </template> -->
  4442. </el-table-column>
  4443. <el-table-column prop="date" label="特约名称" align="center">
  4444. </el-table-column>
  4445. <el-table-column prop="date1" label="特约险种" align="center"></el-table-column>
  4446. <el-table-column prop="date2" label="特约代码" align="center"></el-table-column>
  4447. </el-table>
  4448. </div>
  4449. <span slot="footer" class="dialog-footer">
  4450. <span>已选择了 <b style="color: #F96646;"> 1</b> 条特约</span>
  4451. <span style="flex: 1;"></span>
  4452. <el-button size="small" @click="showTeYueVisible = false">取 消</el-button>
  4453. <el-button size="small" type="primary" @click="showTeYueVisible = false">确 定</el-button>
  4454. </span>
  4455. </el-dialog>
  4456. <floatingBar />
  4457. <!-- 生成验车二维码 -->
  4458. <el-dialog :visible.sync="validateCarCodeShow" width="30%" title="验车二维码">
  4459. <div class="QRCode" ref="myQrcode"></div>
  4460. </el-dialog>
  4461. <!-- 客户权益 -->
  4462. <el-dialog :visible.sync="interestShow" width="50%" title="选择权益">
  4463. <div style="display: flex; align-items: center; justify-content: flex-start">
  4464. <span>选择权益接收人</span>
  4465. <el-select size="small" v-model="interestPeople" style="width: 200px; margin-left: 10px;">
  4466. <el-option :label="item.label" :value="item.value" v-for="(item, index) in acceptOptions" :key="index"></el-option>
  4467. </el-select>
  4468. </div>
  4469. <el-row class="interestList" :gutter="10">
  4470. <el-col :span="4" style="border-right: 1px solid #ccc">
  4471. <div class="interestItem" :class="{'active': interestIndex === index}" v-for="(item, index) in interestList" @click="handleChangeInterestIndex(item, index)">
  4472. <span>{{ item.equityPackageName }}</span>
  4473. <i v-if="interestIndex === index" class="el-icon-success" style="color: #409EFF"></i>
  4474. </div>
  4475. </el-col>
  4476. <el-col :span="20">
  4477. <el-table
  4478. :data="interestTableData"
  4479. >
  4480. <el-table-column label="积分" prop="integral"></el-table-column>
  4481. <el-table-column label="权益名称" prop="rightsName"></el-table-column>
  4482. <el-table-column label="数量" prop="number"></el-table-column>
  4483. <el-table-column label="市场价" prop="marketPrice"></el-table-column>
  4484. <el-table-column label="权益价" prop="settlePrice"></el-table-column>
  4485. </el-table>
  4486. </el-col>
  4487. </el-row>
  4488. <span slot="footer" class="dialog-footer">
  4489. <el-button size="small" @click="handleCancel()">取 消</el-button>
  4490. <el-button size="small" type="primary" @click="handleSubmit()">确 定</el-button>
  4491. </span>
  4492. </el-dialog>
  4493. </div>
  4494. </template>
  4495. <script>
  4496. import QrCode from "qrcodejs2";
  4497. let _self;
  4498. import Cookies from "js-cookie";
  4499. import CommonUtil from "@/utils/comutil.js";
  4500. import floatingBar from "@/components/customerService/floatingBar.vue";
  4501. import {
  4502. getAgeByIdCard,
  4503. searchkey,
  4504. addressCode,
  4505. getGenderByIdCard
  4506. } from "@/utils/validate.js";
  4507. import citydata from "@/assets/js/citydata.js";
  4508. import yongchengData from "../../../assets/js/yongchengData";
  4509. import { regionData, codeToText } from "element-china-area-data";
  4510. import { base64ToPath } from "@/common/image-tools-base64.js";
  4511. import quotationDialog from "@/views/Core/components/quotationDialog.vue";
  4512. import quotationDialogPro from "@/views/Core/components/quotationDialogPro.vue";
  4513. import detailsDialog from "@/views/Core/components/detailsDialog.vue";
  4514. import imageDialog from "@/views/Core/components/imageDialog.vue";
  4515. import { mapState } from "vuex";
  4516. import Ktletter1Popover from "./components/LetterPopover.vue";
  4517. import dayjs from "dayjs";
  4518. import {getYaCarDamageVerificationDict} from "../../../http/moudules/letter";
  4519. import {isEnabled} from "../../../http/moudules/task";
  4520. export default {
  4521. inject: ["reload"],
  4522. name: "qrCode",
  4523. data() {
  4524. var checkpurchasePrice = (rule, value, callback) => {
  4525. if (!value) {
  4526. callback(new Error("新车购置价不能为空"));
  4527. } else if (value == 0) {
  4528. callback(new Error("新车购置价不能为零"));
  4529. } else {
  4530. callback();
  4531. }
  4532. };
  4533. var checkframeNo = (rule, value, callback) => {
  4534. if (value.length < 17) {
  4535. callback(new Error("车架号不足17位"));
  4536. } else if (
  4537. value.indexOf("I") != "-1" ||
  4538. value.indexOf("O") != "-1" ||
  4539. value.indexOf("Q") != "-1"
  4540. ) {
  4541. callback(new Error("车架号不能包含(I O Q)三个字母"));
  4542. } else {
  4543. callback();
  4544. }
  4545. };
  4546. var carPhoneValid = (rule, value, callback) => {
  4547. 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})$/;
  4548. if (!value) {
  4549. callback(new Error("请输入车牌号"));
  4550. } else if (plateNumber.test(value)) {
  4551. callback();
  4552. } else {
  4553. callback(new Error("请输入正确的车牌号"));
  4554. }
  4555. };
  4556. var validateRight = (rule, value, callback) => {
  4557. if (!value) {
  4558. callback(new Error("请选择能源种类"));
  4559. } else if (this.carInfo.licenseNo.length === 8 && value === "0") {
  4560. callback(new Error("能源类型错误,请重新选择!"));
  4561. } else {
  4562. callback();
  4563. }
  4564. };
  4565. return {
  4566. isEnabledShow: false,
  4567. acceptOptions: [],
  4568. interestShow: false,
  4569. interestPeople: '',
  4570. interestIndex: 0,
  4571. interestList: [],
  4572. interestTableData: [],
  4573. interestData: null,
  4574. interestSelectData: null,
  4575. verificationDict: [], // 车损验车事项
  4576. validateCarCodeShow: false,
  4577. vehicleInspectionUrl: "",
  4578. colSpan: {
  4579. xs: 24, // 超小屏幕
  4580. sm: 12, // 小屏幕
  4581. md: 12, // 中屏幕
  4582. lg: 6, // 大屏幕
  4583. xl: 6 // 超大屏幕
  4584. },
  4585. colgutter: 80,
  4586. productList: [], // 产品id列表
  4587. productId: "", // 产品id
  4588. // 选择特约
  4589. teYueTable: [{}, {}],
  4590. showTeYueVisible: false,
  4591. // 驾意险详情
  4592. jiayiDialogData: {},
  4593. showDetailJiaYiVisible: false,
  4594. showDetailJiaYiVisible1: false,
  4595. showDetailtable: [],
  4596. // 添加驾意险
  4597. checkList: [],
  4598. addYiwaiDialogVisible: false,
  4599. typeJqTable: [
  4600. { date: "死亡伤残赔偿", date1: 180000 },
  4601. { date: "医疗费用赔偿", date1: 18000 },
  4602. { date: "财产损失赔偿", date1: 2000 }
  4603. ], // 调整险种交强险表格
  4604. typeDialogVisible: false, // 调整险种弹窗
  4605. typeDialogData: [], // 调整险种弹窗商业险
  4606. typeDialogIndex: 0, // 当前 调整险种弹窗 index
  4607. inquiryNowList: [], // 现询列表
  4608. isInquiryNowDisable: false,
  4609. taikangtemplateSelection: [], // 泰康
  4610. taikangInsuranceDataTable: [],
  4611. taikangaccidentDataList: [],
  4612. accidentPremiumTk: "",
  4613. accidentPremiumPA: "",
  4614. accidentFormTk: {
  4615. quantity: "1",
  4616. sumPremium: 0
  4617. },
  4618. pinganDataDetail: [],
  4619. pinganDataDetailVisible: false,
  4620. accidentFormPA: [
  4621. {
  4622. quantity: "1",
  4623. premium: 0,
  4624. pingantemplateSelection: "",
  4625. pinganInsuranceDataTable: [],
  4626. pinganInsurancetype: ""
  4627. },
  4628. {
  4629. quantity: "1",
  4630. premium: 0,
  4631. pingantemplateSelection: "",
  4632. pinganInsuranceDataTable: [],
  4633. pinganInsurancetype: ""
  4634. },
  4635. {
  4636. quantity: "1",
  4637. premium: 0,
  4638. pingantemplateSelection: "",
  4639. pinganInsuranceDataTable: [],
  4640. pinganInsurancetype: ""
  4641. }
  4642. ],
  4643. taikangaccidentalDrivingVo: {},
  4644. pinganaccidentalDrivingVo: {
  4645. 0: {},
  4646. 1: {},
  4647. 2: []
  4648. },
  4649. nowCostsId: undefined, // 现询
  4650. policyNumberForm: {
  4651. jqpolicyno: "",
  4652. sypolicyno: "",
  4653. jypolicyno: "",
  4654. jqpremium: "",
  4655. sypremium: "",
  4656. jypremium: "",
  4657. taxamount: "",
  4658. commissionFeevalue: "",
  4659. otherFeevalue: "",
  4660. jqSuperviseCostsProportion: "",
  4661. sySuperviseCostsProportion: "",
  4662. noSuperviseCostsProportion: "",
  4663. jqOtherCostsProportion: "",
  4664. syOtherCostsProportion: "",
  4665. noOtherCostsProportion: "",
  4666. jqReceivableProportion: "",
  4667. syReceivableProportion: "",
  4668. noReceivableProportion: "",
  4669. jqPolicyList: [],
  4670. syPolicyList: [],
  4671. jqSignList: [],
  4672. noPolicyList: [],
  4673. noCostsProportion: "",
  4674. jqCostsProportion: "",
  4675. syCostsProportion: ""
  4676. },
  4677. watermarkedImage: "",
  4678. redictInfoMsg: [],
  4679. redictInfodialogVisible: false,
  4680. qrcodeWidth: "180",
  4681. qrcodeHeight: "180",
  4682. activeName: "1",
  4683. isTaxSourceModel: "",
  4684. tabLiIndex: 0,
  4685. tabLimenu: [
  4686. {
  4687. name: "车辆信息",
  4688. scroll: "vehicle"
  4689. },
  4690. {
  4691. name: "车主信息",
  4692. scroll: "owner"
  4693. },
  4694. {
  4695. name: "投保人信息",
  4696. scroll: "applicant"
  4697. },
  4698. {
  4699. name: "被保人信息",
  4700. scroll: "insured"
  4701. },
  4702. {
  4703. name: "关系证明",
  4704. scroll: "relationship"
  4705. },
  4706. {
  4707. name: "验车照",
  4708. scroll: "yanchezhao"
  4709. },
  4710. {
  4711. name: "上年商业险保单",
  4712. scroll: "snbaodan"
  4713. },
  4714. {
  4715. name: "授权书",
  4716. scroll: "shouquanshu"
  4717. }
  4718. ],
  4719. packageValue: "",
  4720. packageOptions: [],
  4721. zhongmeitemplateSelection: "", //中煤驾意险产品选中值
  4722. zhongmeiInsuranceData: [], //中煤驾意险产品列表数据
  4723. zhongmeiInsuranceDataTable: [], //中煤驾意险产品明细方案数据
  4724. zhongmeiaccidentalDrivingVo: {}, //中煤驾意险最终选中字段
  4725. pinganInsuranceData: [], //平安驾意险产品列表数据
  4726. currentCell: null,
  4727. feeDetailInfo: [], //费用明细信息
  4728. immediatelyValue: false,
  4729. isRetractZJ: false,
  4730. isRetractHB: false,
  4731. isRetractZM: false,
  4732. isRetractASTP: false,
  4733. isRetractZA: false,
  4734. isRetractYC: false,
  4735. isRetractRS: false,
  4736. anshengInsurancetype: "",
  4737. iscCrownerShow: false,
  4738. isApplicantShow: false,
  4739. isInsuredShow: false,
  4740. formInline: {},
  4741. anshengtemplateSelection: "", //安盛
  4742. anshengInsuranceData: [], //安盛驾意险
  4743. anshengInsuranceDataTable: [], //安盛驾意险
  4744. anshengaccidentalDrivingVo: {}, //安盛驾意险
  4745. hengbangtemplateSelection: "", //恒邦
  4746. hengbangInsuranceData: [], //恒邦驾意险
  4747. hengbangInsuranceDataTable: [],
  4748. hengbangaccidentalDrivingVo: {}, //太平洋驾意险
  4749. taipingyangtemplateSelection: "", //太平洋
  4750. taipingyangInsuranceData: [], //太平洋驾意险
  4751. taipingyangInsuranceDataTable: [],
  4752. taipingyangaccidentalDrivingVo: {}, //太平洋驾意险
  4753. insuranceHN: "", //华农
  4754. huanongInsuranceData: [], //华农驾意险
  4755. huanongInsuranceDataTable: [],
  4756. huanongaccidentalDrivingVo: {}, //华农驾意险
  4757. renshouaccidentalDrivingVo: {}, //人寿意外险
  4758. renshouInsuranceData: [], //-人寿意外险list
  4759. ziJinInsuranceData: [], //-紫金意外险list
  4760. zhonganInsuranceData: [], //众安驾意险
  4761. zhonganaccidentalDrivingVo: {}, //众安驾意险
  4762. zijinInsuranceDataTable: [],
  4763. zijintemplateSelection: "",
  4764. accidentalDrivingVo: [], //-紫金意外险传参
  4765. zijinengageListData: [], //紫金特约
  4766. zijinengageList: [], //紫金特约
  4767. // ------------紫金意外险
  4768. renshoutemplateSelection: "", //人寿
  4769. renshouInsuranceDataTable: [],
  4770. zhongantemplateSelection: "", //众安
  4771. zhonganInsuranceDataTable: [],
  4772. taipingtemplateSelection: "", //太平
  4773. taipingInsuranceData: [], //太平驾意险
  4774. TPDrivingChangeInsuranceData: [],
  4775. taipingaccidentalDrivingVo: {}, //太平驾意险
  4776. licenseplate: true,
  4777. calculateLoading: false, //保费计算按钮 节流
  4778. preserveQuoteLoading: false, //保存按钮
  4779. emporaryLoading: false,
  4780. accidentForm: {
  4781. quantity: "1",
  4782. sumPremium: 0
  4783. }, //永诚意外险内容
  4784. accidentFormHN: {
  4785. allQuantity: "1",
  4786. quantity: "1"
  4787. }, //华农意外险内容
  4788. yongchengaccidentDataList: [], //永诚意外险
  4789. yongchengtemplateSelection: "",
  4790. guoRenaccidentDataList: [], //国任意外险
  4791. guoRenInsuranceDataTable: [],
  4792. guoRenaccidentDataListChild: [],
  4793. guoRenaccidentalDrivingVo: {}, //国任驾意险
  4794. dajiatemplateSelection: "",
  4795. dajiaaccidentDataListChild: [],
  4796. dajiaaccidentForm: {},
  4797. dajiaInsuranceData: [], //大家意外险
  4798. dajiaInsuranceDataTable: [],
  4799. dajiaaccidentalDrivingVo: {},
  4800. yongchengInsuranceDataTable: [],
  4801. guoRenaccidentLoading: false,
  4802. contributingLoading: false,
  4803. guoRenaccidentPremium: "",
  4804. guoRenaccidentForm: {
  4805. quantity: "1",
  4806. sumPremium: 0
  4807. }, //国任意外险内容
  4808. accidentFormZM: {
  4809. quantity: "1",
  4810. sumPremium: 0
  4811. }, //中煤意外险内容
  4812. boHaiaccidentDataList: [], //渤海意外险
  4813. boHaigtemplateSelection: "",
  4814. boHaiaccidentForm: {
  4815. copies: "1",
  4816. policyNum: 0
  4817. },
  4818. bohaiInsuranceDataTable: [],
  4819. accidentPremium: "",
  4820. accidentPremiumZM: "",
  4821. contributingState: false, //是否为国任特约
  4822. pickerOptions: {
  4823. disabledDate(time) {
  4824. //若选择的日期小于当前日期(包含今天)
  4825. return time.getTime() > Date.now();
  4826. //若选择的日期大于当前日期(不包含今天): time.getTime() < Date.now()
  4827. //若选择的日期小于当前日期(不包含今天): time.getTime() > Date.now() - 8.64e7
  4828. //若选择的日期小于等于当前日期(包含今天): time.getTime() > Date.now()
  4829. }
  4830. },
  4831. attributionform: {
  4832. //续保查询数据
  4833. configure: [],
  4834. companyId: ""
  4835. },
  4836. continuousAction: [], //续保配置项
  4837. //永诚转保确认码
  4838. cqryCdeJq: "",
  4839. cqryCdeSy: "",
  4840. renewalCodeJq: "", //交强确认码
  4841. renewalCodeSy: "", //商业确认码
  4842. renewalCodeJqImg: "", //交强图片
  4843. renewalCodeSyImg: "", //商业图片
  4844. //-----------------
  4845. showViewer: false,
  4846. transferDateShow: false, //转移登记日期
  4847. yonganchecked: false, //永安驾意险
  4848. renbaochecked: false, //人保驾意险
  4849. zhongmeichecked: false, //中煤驾意险
  4850. hengbangchecked: false, //恒邦驾意险
  4851. taipingyangchecked: false, //太平洋驾意险
  4852. yongchengchecked: false, //永诚驾意险
  4853. yonganDrivinglist: [],
  4854. renbaoDrivinglist: [],
  4855. zhongmeiDrivinglist: [],
  4856. hengbangDrivinglist: [],
  4857. taipingyangDrivinglist: [],
  4858. yongchengDrivinglist: [],
  4859. tbczcarShow: true, //投保人同车主
  4860. bbczcarShow: false, //被保人同车主
  4861. bbtbcarShow: true, //被保人同投保人
  4862. imageUploadShow: true, //上传影像显示
  4863. ProViewImg: "", //预览图片
  4864. carfrontImg: "", //行驶证正面
  4865. carbackImg: "", //行驶证背面
  4866. userfrontImg: "", //身份证正面
  4867. userbackImg: "", //身份证背面
  4868. businessImg: "",
  4869. CarFrontFile: "", //车正面文件流
  4870. CarBackFile: "", //车背面文件流
  4871. // C02File: "",
  4872. // D02File: "",
  4873. // C03File: "",
  4874. // D03File: "",
  4875. // C04File: "",
  4876. // D04File: "",
  4877. userIndex: 1, //区分三种人员
  4878. TabName: "car", //默认选项卡
  4879. value1: "",
  4880. chexingdialogVisible: false, //车型选择 显示/隐藏
  4881. sbdmdialogVisible: false, //车型车辆识别代码选择 显示/隐藏
  4882. codedialogVisible: false, //二维码 显示/隐藏
  4883. codedialogVisiblePro: false,
  4884. uploadcardialogVisible: false, //行驶证识别 显示/隐藏
  4885. uploaduserdialogVisible: false, //身份证识别 显示/隐藏
  4886. imageUploaddialogVisible: false, //影像上传 显示/隐藏
  4887. policyUploaddialogVisible: false, //保单上传
  4888. underwritingdialogVisible: false, //核保信息 显示/隐藏
  4889. renewalCodedialogVisible: false, //转保确认码输入
  4890. hbsubmitdialogVisible: false, //核保弹框
  4891. signaturedialogVisible: false, //生成签章
  4892. signaturecode: null,
  4893. Carinsurance: {
  4894. jqinsurance: "1", //交强险
  4895. syinsurance: "1" //商业险
  4896. },
  4897. jqchecked: true,
  4898. sychecked: false,
  4899. jqstartDate: "", //交强时间
  4900. jqendDate: "", //交强时间
  4901. systartDate: "", //商业时间
  4902. syendDate: "", //商业时间
  4903. loading: false, //加载事件
  4904. reslist: [], //车型列表
  4905. userId: "", //出单工号
  4906. carInfo: {
  4907. importFlag:"",//特种车类
  4908. powerScale: "", ///功率
  4909. licenseNo: "", //车牌号
  4910. brandName: "", //车辆品牌型号
  4911. vinNo: "", //车架号
  4912. engineNo: "", //发动机号
  4913. modelCode: "", //车型编码
  4914. seatCount: null, //核定载客量 核定载人数
  4915. purchasePrice: null, //新车购置价最低,行业实际价值,协商价值
  4916. carBrand: "", //车型品牌
  4917. ciCarName: "", //行业车型名称
  4918. ciModelCode: "", //行业车型编码
  4919. completeKerbMass: "", //整备质量
  4920. exhaustScale: "", //排量
  4921. factory: "", //工厂名称
  4922. factoryid: "", //工厂编码
  4923. frameNo: "", //车架号
  4924. licenseTypeCode: "02", //号牌种类
  4925. vehicleclass: "", //车辆类型
  4926. familyName: "", //车型
  4927. modelcname: "", //车型名称
  4928. powertypecode: "", //燃料类型编码
  4929. vehicleweight: "", //总质量
  4930. limitLoad: "", //核定载质量
  4931. caryear: null, //年款
  4932. cimodelclass: "A0", //车辆种类
  4933. energyType: "0", //能源类型
  4934. enginedesc: "", //排量
  4935. registerDate: "", //注册日期
  4936. issueDate: "", //发证日期
  4937. transferFlag: 0, //过户标志
  4938. transferFlagBi: false, //商业险是否过户
  4939. transferDate: "", //过户日期
  4940. loanStatus: 0, //贷款标志
  4941. firstBeneMan: "", //第一受益人
  4942. noLicenseFlag: false, //是否新车
  4943. cartype: "", //客车A0 货车H0
  4944. carnature: "02", //使用性质
  4945. vehicleUse: "05",
  4946. property: "1" //所属性质 1个人 2企业 3机关
  4947. },
  4948. carform: {
  4949. carOwner: "", //车主
  4950. licenseNo: "", //车牌号
  4951. modelcname: "", //车辆品牌型号
  4952. frameNo: "", //车架号
  4953. engineNo: "", //发动机号
  4954. registerDate: "", //注册日期
  4955. issueDate: "", //发证日期
  4956. grossMass: "", //总质量
  4957. unladenMass: "", //整备质量
  4958. limitLoad: "", //核定载质量
  4959. approvedPassengersCapacity: "" //核定载客数
  4960. },
  4961. ownerInfoform: {
  4962. name: "",
  4963. identifyType: "",
  4964. identifyNumber: "",
  4965. age: "", //年龄
  4966. gender: "", //性别
  4967. addr: "",
  4968. email: "",
  4969. mobile: "",
  4970. identifyValidDate: "", //有效期起期
  4971. identifyValidEndDate: "", //有效期止期
  4972. organizationCode: ""
  4973. // province: "",//省
  4974. // city: "",//市
  4975. // county: "",//县
  4976. },
  4977. riskList: [], //险种大类信息
  4978. kindList: [], //商业险险别
  4979. ownerInfo: {
  4980. //车主
  4981. name: "", //姓名
  4982. identifyType: "01", //身份证类型
  4983. identifyNumber: "", //身份证号
  4984. age: "", //年龄
  4985. gender: "", //性别
  4986. addr: "", //地址
  4987. email: "", //邮箱
  4988. mobile: "", //电话
  4989. organizationCode: "",
  4990. identifyValidDate: "", //有效期起期
  4991. identifyValidEndDate: "", //有效期止期
  4992. // revenueCode: "", //税务号
  4993. leaderIdentifyNumber: "", //联系人证件号码
  4994. leaderOtherEffectiveDate: "", //联系人有效期止期
  4995. property: "1",
  4996. // province: "",//省
  4997. // city: "",//市
  4998. // county: "",//县
  4999. provinceData: [] //省市区
  5000. },
  5001. policyHolderInfo: {
  5002. //投保人
  5003. name: "", //姓名
  5004. identifyType: "01", //身份证类型
  5005. identifyNumber: "", //身份证号
  5006. age: "", //年龄
  5007. gender: "", //性别
  5008. addr: "", //地址
  5009. email: "", //邮箱
  5010. mobile: "", //电话
  5011. property: "1",
  5012. identifyValidDate: "", //有效期起期
  5013. identifyValidEndDate: "", //有效期止期
  5014. // revenueCode: "", //税务号
  5015. leaderIdentifyNumber: "", //联系人证件号码
  5016. leaderOtherEffectiveDate: "", //联系人有效期止期
  5017. organizationCode: "",
  5018. // province: "",//省
  5019. // city: "",//市
  5020. // county: "",//县
  5021. provinceData: [] //省市区
  5022. },
  5023. insuredPersonInfo: {
  5024. //被保人
  5025. name: "", //姓名
  5026. identifyType: "01", //身份证类型
  5027. identifyNumber: "", //身份证号
  5028. age: "", //年龄
  5029. gender: "", //性别
  5030. addr: "", //地址
  5031. email: "", //邮箱
  5032. mobile: "", //电话
  5033. property: "1",
  5034. identifyValidDate: "", //有效期起期
  5035. identifyValidEndDate: "", //有效期止期
  5036. // revenueCode: "", //税务号
  5037. leaderIdentifyNumber: "", //联系人证件号码
  5038. leaderOtherEffectiveDate: "", //联系人有效期止期
  5039. provinceData: [] //省市区
  5040. // province: "",//省
  5041. // city: "",//市
  5042. // county: "",//县
  5043. },
  5044. //车船税form
  5045. vehicleAndVesselTaxForm: {
  5046. taxRelifFlag: "1", //类型
  5047. identifyNumber: "", //纳税人识别号
  5048. taxpayerIdentifier: "01", //纳税人证件类型
  5049. taxpayerName: "", //纳税人名称
  5050. extendChar2: "", //减免税凭证号
  5051. paidFreeCertificate: "", //完税凭证号
  5052. relifReason: "", //减免税原因
  5053. taxComCode: "", //税务机关代码
  5054. taxComName: "", ///税务机关名称
  5055. taxDocumentDate: "", //完税日期
  5056. taxPaidAreaCode: "", //完税凭证地区代码
  5057. taxRelief: "" //减税比例
  5058. },
  5059. //车辆用途列表
  5060. vehicleList: [],
  5061. //能源种类列表
  5062. rules: {
  5063. extendChar2: [
  5064. { required: true, message: "请输入减免税凭证号", trigger: "blur" }
  5065. ],
  5066. paidFreeCertificate: [
  5067. { required: true, message: "请输入完税凭证号", trigger: "blur" }
  5068. ],
  5069. relifReason: [
  5070. { required: true, message: "请输入减免税原因", trigger: "blur" }
  5071. ],
  5072. taxComCode: [
  5073. { required: true, message: "请输入税务机关代码", trigger: "blur" }
  5074. ],
  5075. taxComName: [
  5076. { required: true, message: "请输入税务机关名称", trigger: "blur" }
  5077. ],
  5078. taxDocumentDate: [
  5079. { required: true, message: "请输入完税日期", trigger: "blur" }
  5080. ],
  5081. taxPaidAreaCode: [
  5082. { required: true, message: "请选择完税地区", trigger: "blur" }
  5083. ],
  5084. taxRelief: [
  5085. { required: true, message: "请输入减税比例", trigger: "blur" }
  5086. ],
  5087. taxpayerName: [
  5088. { required: true, message: "请输入纳税人名称", trigger: "blur" }
  5089. ],
  5090. taxpayerIdentifier: [
  5091. { required: true, message: "请选择证件类型", trigger: "blur" }
  5092. ],
  5093. taxRelifFlag: [
  5094. { required: true, message: "请选择纳税类型", trigger: "blur" }
  5095. ],
  5096. energyType: [
  5097. { required: true, validator: validateRight, trigger: "blur" }
  5098. ],
  5099. cimodelclass: [
  5100. { required: true, message: "请选择车辆种类", trigger: "blur" }
  5101. ],
  5102. carnature: [
  5103. { required: true, message: "请选择使用性质", trigger: "blur" }
  5104. ],
  5105. cartype: [
  5106. { required: true, message: "请选择车辆类型", trigger: "blur" }
  5107. ],
  5108. vehicleUse: [
  5109. { required: true, message: "请选择车辆用途", trigger: "blur" }
  5110. ],
  5111. brandName: [
  5112. { required: true, message: "请填写品牌型号", trigger: "blur" }
  5113. ],
  5114. licenseNo: [
  5115. { max: 8, message: "最多八个字符", trigger: "blur" },
  5116. { required: true, validator: carPhoneValid, trigger: "blur" }
  5117. ],
  5118. frameNo: [{ validator: checkframeNo, trigger: "blur" }],
  5119. engineNo: [
  5120. { required: true, message: "请填写发动机号", trigger: "blur" }
  5121. ],
  5122. purchasePrice: [
  5123. { required: true, validator: checkpurchasePrice, trigger: "blur" }
  5124. ],
  5125. registerDate: [
  5126. { required: true, message: "请选择注册时间", trigger: "blur" }
  5127. ],
  5128. issueDate: [
  5129. { required: true, message: "请选择发证日期", trigger: "blur" }
  5130. ],
  5131. transferDate: [
  5132. { required: true, message: "请选择转移登记日期", trigger: "blur" }
  5133. ],
  5134. seatCount: [
  5135. { required: true, message: "请输入座位数", trigger: "blur" }
  5136. ],
  5137. completeKerbMass: [
  5138. { required: true, message: "请输入整备质量", trigger: "blur" }
  5139. ],
  5140. name: [{ required: true, message: "请填写姓名", trigger: "blur" }],
  5141. taxamount: [
  5142. { required: true, message: "请填写车船税", trigger: "blur" }
  5143. ],
  5144. signDate: [
  5145. { required: true, message: "请填写签单日期", trigger: "blur" }
  5146. ],
  5147. // identifyNumber: [
  5148. // { required: true, message: "请填写证件号", trigger: "blur" },
  5149. // { min: 18, max: 18, message: "长度在18个字符", trigger: "blur" },
  5150. // {
  5151. // 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]$/,
  5152. // message: "请输入正确的证件号",
  5153. // trigger: "blur"
  5154. // }
  5155. // ],
  5156. identifyValidDate: [
  5157. { required: true, message: "请选择起期", trigger: "blur" }
  5158. ],
  5159. identifyValidEndDate: [
  5160. { required: true, message: "请选择止期", trigger: "blur" }
  5161. ],
  5162. addr: [
  5163. { required: true, message: "请填写地址", trigger: "blur" },
  5164. { min: 8, message: "最少8个字符", trigger: "blur" }
  5165. ],
  5166. mobile: [
  5167. { required: true, message: "请填写手机号", trigger: "blur" },
  5168. { min: 11, max: 11, message: "长度在11个字符", trigger: "blur" },
  5169. {
  5170. 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}$/,
  5171. message: "请输入正确的手机号",
  5172. trigger: "blur"
  5173. }
  5174. ],
  5175. email: [
  5176. { min: 10, max: 20, message: "最少10个字符", trigger: "blur" },
  5177. {
  5178. pattern: /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/,
  5179. message: "请输入正确的邮箱",
  5180. trigger: "blur"
  5181. }
  5182. ],
  5183. property: [
  5184. { required: true, message: "请选择所属性质", trigger: "blur" }
  5185. ]
  5186. },
  5187. CIInsureList: {
  5188. //交强险
  5189. amount: "1",
  5190. amountDesc: "投保",
  5191. amtList: [
  5192. {
  5193. label: "不投保",
  5194. value: "0"
  5195. },
  5196. {
  5197. label: "投保",
  5198. value: "1"
  5199. }
  5200. ],
  5201. kindCode: "0507",
  5202. kindName: "交强险",
  5203. desc: "国家强制规定购买的险种,对第三方的人身或财产损失提供基本保障"
  5204. },
  5205. BIInsureList: {
  5206. //商业险
  5207. amount: "0",
  5208. amountDesc: "投保",
  5209. amtList: [
  5210. {
  5211. label: "不投保",
  5212. value: "0"
  5213. },
  5214. {
  5215. label: "投保",
  5216. value: "1"
  5217. }
  5218. ],
  5219. kindCode: "0510",
  5220. kindName: "商业险",
  5221. desc: "国家强制规定购买的险种,对第三方的人身或财产损失提供基本保障"
  5222. },
  5223. insureList: [
  5224. {
  5225. amount: "0",
  5226. amountDesc: "投保",
  5227. coveragePremium: 0,
  5228. amtList: [
  5229. {
  5230. label: "不投保",
  5231. value: "0"
  5232. },
  5233. {
  5234. label: "投保",
  5235. value: "1"
  5236. }
  5237. ],
  5238. kindCode: "A",
  5239. isMainRisk: true,
  5240. kindName: "机动车损失险",
  5241. desc:
  5242. "保险期间内,被保险人或被保险机动车驾驶人在使用被保险机动车过程中,因自然灾害、意外事故、机动车被盗窃、抢劫、抢夺等情况(详见保险条款)造成被保险机动车直接损失,且不属于免除保险人责任的范围,保险人依照本保险合同的约定负责赔偿的险种。"
  5243. },
  5244. {
  5245. amount: "0",
  5246. amountDesc: "不投保",
  5247. coveragePremium: 0,
  5248. amtList: [
  5249. {
  5250. label: "不投保",
  5251. value: "0"
  5252. },
  5253. {
  5254. label: "10万",
  5255. value: "100000"
  5256. },
  5257. {
  5258. label: "15万",
  5259. value: "150000"
  5260. },
  5261. {
  5262. label: "20万",
  5263. value: "200000"
  5264. },
  5265. {
  5266. label: "30万",
  5267. value: "300000"
  5268. },
  5269. {
  5270. label: "50万",
  5271. value: "500000"
  5272. },
  5273. {
  5274. label: "100万",
  5275. value: "1000000"
  5276. },
  5277. {
  5278. label: "150万",
  5279. value: "1500000"
  5280. },
  5281. {
  5282. label: "200万",
  5283. value: "2000000"
  5284. },
  5285. {
  5286. label: "250万",
  5287. value: "2500000"
  5288. },
  5289. {
  5290. label: "300万",
  5291. value: "3000000"
  5292. },
  5293. {
  5294. label: "400万",
  5295. value: "4000000"
  5296. },
  5297. {
  5298. label: "500万",
  5299. value: "5000000"
  5300. },
  5301. {
  5302. label: "600万",
  5303. value: "6000000"
  5304. },
  5305. {
  5306. label: "800万",
  5307. value: "8000000"
  5308. },
  5309. {
  5310. label: "1000万",
  5311. value: "10000000"
  5312. }
  5313. ],
  5314. kindCode: "B",
  5315. isMainRisk: true,
  5316. kindName: "第三者责任险",
  5317. desc:
  5318. "保险期间内,被保险人或其允许的驾驶人在使用被保险机动车过程中发生意外事故,致使第三者遭受人身伤亡或财产直接损毁,依法应当对第三者承担的损害赔偿责任,且不属于免除保险人责任的范围,保险人依照本保险合同的约定,对于超过机动车交通事故责任强制保险各分项赔偿限额的部分负责赔偿的险种。"
  5319. },
  5320. {
  5321. amount: "0",
  5322. amountDesc: "1万",
  5323. coveragePremium: 0,
  5324. amtList: [
  5325. {
  5326. label: "不投保",
  5327. value: "0"
  5328. },
  5329. {
  5330. label: "1万",
  5331. value: "10000"
  5332. },
  5333. {
  5334. label: "2万",
  5335. value: "20000"
  5336. },
  5337. {
  5338. label: "3万",
  5339. value: "30000"
  5340. },
  5341. {
  5342. label: "4万",
  5343. value: "40000"
  5344. },
  5345. {
  5346. label: "5万",
  5347. value: "50000"
  5348. },
  5349. {
  5350. label: "6万",
  5351. value: "60000"
  5352. },
  5353. {
  5354. label: "7万",
  5355. value: "70000"
  5356. },
  5357. {
  5358. label: "8万",
  5359. value: "80000"
  5360. },
  5361. {
  5362. label: "9万",
  5363. value: "90000"
  5364. },
  5365. {
  5366. label: "10万",
  5367. value: "100000"
  5368. },
  5369. {
  5370. label: "15万",
  5371. value: "150000"
  5372. },
  5373. {
  5374. label: "20万",
  5375. value: "200000"
  5376. },
  5377. {
  5378. label: "25万",
  5379. value: "250000"
  5380. },
  5381. {
  5382. label: "30万",
  5383. value: "300000"
  5384. },
  5385. {
  5386. label: "35万",
  5387. value: "350000"
  5388. },
  5389. {
  5390. label: "40万",
  5391. value: "400000"
  5392. },
  5393. {
  5394. label: "45万",
  5395. value: "450000"
  5396. },
  5397. {
  5398. label: "50万",
  5399. value: "500000"
  5400. }
  5401. ],
  5402. kindCode: "D3",
  5403. isMainRisk: true,
  5404. kindName: "司机责任险",
  5405. desc:
  5406. "保险期间内,被保险人或其允许的驾驶人在使用被保险机动车过程中发生意外事故,致使车上人员遭受人身伤亡,且不属于免除保险人责任的范围,依法应当对车上人员承担的损害赔偿责任,保险人依照本保险合同的约定负责赔偿的险种。"
  5407. },
  5408. {
  5409. amount: "0",
  5410. amountDesc: "1万",
  5411. coveragePremium: 0,
  5412. amtList: [
  5413. {
  5414. label: "不投保",
  5415. value: "0"
  5416. },
  5417. {
  5418. label: "1万",
  5419. value: "10000"
  5420. },
  5421. {
  5422. label: "2万",
  5423. value: "20000"
  5424. },
  5425. {
  5426. label: "3万",
  5427. value: "30000"
  5428. },
  5429. {
  5430. label: "4万",
  5431. value: "40000"
  5432. },
  5433. {
  5434. label: "5万",
  5435. value: "50000"
  5436. },
  5437. {
  5438. label: "6万",
  5439. value: "60000"
  5440. },
  5441. {
  5442. label: "7万",
  5443. value: "70000"
  5444. },
  5445. {
  5446. label: "8万",
  5447. value: "80000"
  5448. },
  5449. {
  5450. label: "9万",
  5451. value: "90000"
  5452. },
  5453. {
  5454. label: "10万",
  5455. value: "100000"
  5456. },
  5457. {
  5458. label: "15万",
  5459. value: "150000"
  5460. },
  5461. {
  5462. label: "20万",
  5463. value: "200000"
  5464. },
  5465. {
  5466. label: "25万",
  5467. value: "250000"
  5468. },
  5469. {
  5470. label: "30万",
  5471. value: "300000"
  5472. },
  5473. {
  5474. label: "35万",
  5475. value: "350000"
  5476. },
  5477. {
  5478. label: "40万",
  5479. value: "400000"
  5480. },
  5481. {
  5482. label: "45万",
  5483. value: "450000"
  5484. },
  5485. {
  5486. label: "50万",
  5487. value: "500000"
  5488. }
  5489. ],
  5490. kindCode: "D4",
  5491. isMainRisk: true,
  5492. kindName: "乘客责任险",
  5493. desc:
  5494. "保险期间内,被保险人或其允许的驾驶人在使用被保险机动车过程中发生意外事故,致使车上人员遭受人身伤亡,且不属于免除保险人责任的范围,依法应当对车上人员承担的损害赔偿责任,保险人依照本保险合同的约定负责赔偿的险种。"
  5495. },
  5496. {
  5497. amount: "0",
  5498. amountDesc: "不投保",
  5499. coveragePremium: 0,
  5500. amtList: [
  5501. {
  5502. label: "不投保",
  5503. value: "0"
  5504. },
  5505. {
  5506. label: "2千",
  5507. value: "2000"
  5508. },
  5509. {
  5510. label: "5千",
  5511. value: "5000"
  5512. },
  5513. {
  5514. label: "1万",
  5515. value: "10000"
  5516. },
  5517. {
  5518. label: "2万",
  5519. value: "20000"
  5520. }
  5521. ],
  5522. desc:
  5523. "保险期间内,被保险机动车在被保险人或被保险机动车驾驶人使用过程中,发生无明显碰撞痕迹的车身划痕损失,保险人按照保险合同约定负责赔偿的险种",
  5524. isMainRisk: false,
  5525. kindCode: "L",
  5526. kindName: "车身划痕险",
  5527. mainRiskCodeList: "A"
  5528. },
  5529. {
  5530. amount: "0",
  5531. amountDesc: "不投保",
  5532. coveragePremium: 0,
  5533. amtList: [
  5534. {
  5535. label: "不投保",
  5536. value: "0"
  5537. },
  5538. {
  5539. label: "5%",
  5540. value: "5"
  5541. },
  5542. {
  5543. label: "10%",
  5544. value: "10"
  5545. },
  5546. {
  5547. label: "15%",
  5548. value: "15"
  5549. },
  5550. {
  5551. label: "20%",
  5552. value: "20"
  5553. }
  5554. ],
  5555. desc:
  5556. "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
  5557. isMainRisk: false,
  5558. kindCode: "MJ1",
  5559. kindName: "绝对免赔率特约险(车损)",
  5560. mainRiskCodeList: "A"
  5561. },
  5562. {
  5563. amount: "0",
  5564. amountDesc: "不投保",
  5565. coveragePremium: 0,
  5566. amtList: [
  5567. {
  5568. label: "不投保",
  5569. value: "0"
  5570. },
  5571. {
  5572. label: "5%",
  5573. value: "5"
  5574. },
  5575. {
  5576. label: "10%",
  5577. value: "10"
  5578. },
  5579. {
  5580. label: "15%",
  5581. value: "15"
  5582. },
  5583. {
  5584. label: "20%",
  5585. value: "20"
  5586. }
  5587. ],
  5588. desc:
  5589. "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
  5590. isMainRisk: false,
  5591. kindCode: "MJ2",
  5592. kindName: "绝对免赔率特约险(三者)",
  5593. mainRiskCodeList: "B"
  5594. },
  5595. {
  5596. amount: "0",
  5597. amountDesc: "不投保",
  5598. coveragePremium: 0,
  5599. amtList: [
  5600. {
  5601. label: "不投保",
  5602. value: "0"
  5603. },
  5604. {
  5605. label: "5%",
  5606. value: "5"
  5607. },
  5608. {
  5609. label: "10%",
  5610. value: "10"
  5611. },
  5612. {
  5613. label: "15%",
  5614. value: "15"
  5615. },
  5616. {
  5617. label: "20%",
  5618. value: "20"
  5619. }
  5620. ],
  5621. desc:
  5622. "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
  5623. isMainRisk: false,
  5624. kindCode: "MJ3",
  5625. kindName: "绝对免赔率特约险(司机)",
  5626. mainRiskCodeList: "D3"
  5627. },
  5628. {
  5629. amount: "0",
  5630. amountDesc: "不投保",
  5631. coveragePremium: 0,
  5632. amtList: [
  5633. {
  5634. label: "不投保",
  5635. value: "0"
  5636. },
  5637. {
  5638. label: "5%",
  5639. value: "5"
  5640. },
  5641. {
  5642. label: "10%",
  5643. value: "10"
  5644. },
  5645. {
  5646. label: "15%",
  5647. value: "15"
  5648. },
  5649. {
  5650. label: "20%",
  5651. value: "20"
  5652. }
  5653. ],
  5654. desc:
  5655. "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
  5656. isMainRisk: false,
  5657. kindCode: "MJ4",
  5658. kindName: "绝对免赔率特约险(乘客)",
  5659. mainRiskCodeList: "D4"
  5660. },
  5661. {
  5662. amount: "0",
  5663. amountDesc: "不投保",
  5664. coveragePremium: 0,
  5665. amtList: [
  5666. {
  5667. label: "不投保",
  5668. value: "0"
  5669. },
  5670. {
  5671. label: "1万",
  5672. value: "10000"
  5673. },
  5674. {
  5675. label: "2万",
  5676. value: "20000"
  5677. },
  5678. {
  5679. label: "4万",
  5680. value: "40000"
  5681. },
  5682. {
  5683. label: "5万",
  5684. value: "50000"
  5685. },
  5686. {
  5687. label: "8万",
  5688. value: "80000"
  5689. },
  5690. {
  5691. label: "10万",
  5692. value: "100000"
  5693. },
  5694. {
  5695. label: "20万",
  5696. value: "200000"
  5697. },
  5698. {
  5699. label: "30万",
  5700. value: "300000"
  5701. },
  5702. {
  5703. label: "50万",
  5704. value: "500000"
  5705. },
  5706. {
  5707. label: "100万",
  5708. value: "1000000"
  5709. },
  5710. {
  5711. label: "200万",
  5712. value: "2000000"
  5713. },
  5714. {
  5715. label: "300万",
  5716. value: "3000000"
  5717. }
  5718. ],
  5719. kindCode: "SY_FJ_YBW1",
  5720. isMainRisk: true,
  5721. kindName: "附加医保-三者",
  5722. desc: "附加医保外医疗费用责任险(机动车第三者责任保险)"
  5723. },
  5724. {
  5725. amount: "0",
  5726. amountDesc: "不投保",
  5727. coveragePremium: 0,
  5728. amtList: [
  5729. {
  5730. label: "不投保",
  5731. value: "0"
  5732. },
  5733. {
  5734. label: "1万",
  5735. value: "10000"
  5736. },
  5737. {
  5738. label: "2万",
  5739. value: "20000"
  5740. },
  5741. {
  5742. label: "5万",
  5743. value: "50000"
  5744. },
  5745. {
  5746. label: "10万",
  5747. value: "100000"
  5748. }
  5749. ],
  5750. kindCode: "SY_FJ_YBW2",
  5751. isMainRisk: true,
  5752. kindName: "附加医保-座位险(乘客)",
  5753. desc: "附加医保外医疗费用责任险(机动车第三者责任保险)"
  5754. },
  5755. {
  5756. amount: "0",
  5757. amountDesc: "不投保",
  5758. coveragePremium: 0,
  5759. amtList: [
  5760. {
  5761. label: "不投保",
  5762. value: "0"
  5763. },
  5764. {
  5765. label: "1万",
  5766. value: "10000"
  5767. },
  5768. {
  5769. label: "2万",
  5770. value: "20000"
  5771. },
  5772. {
  5773. label: "5万",
  5774. value: "50000"
  5775. },
  5776. {
  5777. label: "10万",
  5778. value: "100000"
  5779. }
  5780. ],
  5781. kindCode: "SY_FJ_YBW3",
  5782. isMainRisk: true,
  5783. kindName: "附加医保-座位险(司机)",
  5784. desc: "附加医保外医疗费用责任险(机动车第三者责任保险)"
  5785. },
  5786. {
  5787. amount: "0",
  5788. amountDesc: "不投保",
  5789. coveragePremium: 0,
  5790. amtList: [
  5791. {
  5792. label: "不投保",
  5793. value: "0"
  5794. },
  5795. {
  5796. label: "50万",
  5797. value: "500000"
  5798. },
  5799. {
  5800. label: "100万",
  5801. value: "1000000"
  5802. },
  5803. {
  5804. label: "150万",
  5805. value: "1500000"
  5806. },
  5807. {
  5808. label: "200万",
  5809. value: "2000000"
  5810. },
  5811. {
  5812. label: "250万",
  5813. value: "2500000"
  5814. },
  5815. {
  5816. label: "300万",
  5817. value: "3000000"
  5818. },
  5819. {
  5820. label: "500万",
  5821. value: "5000000"
  5822. },
  5823. {
  5824. label: "1000万",
  5825. value: "10000000"
  5826. }
  5827. ],
  5828. desc:
  5829. "保险期间内,被保险人或其允许的驾驶人在法定节假日期间使用被保险机动车发生机动车第三者责任保险范围内的事故,并经公安部门或保险人查勘确认的,被保险机动车第三者责任保险所适用的责任限额在保险单载明的基础上增加一倍的险种",
  5830. isMainRisk: false,
  5831. kindCode: "BD",
  5832. kindName: "法定节假日限额翻倍险",
  5833. mainRiskCodeList: "B"
  5834. },
  5835. {
  5836. amount: "0",
  5837. amountDesc: "不投保",
  5838. coveragePremium: 0,
  5839. amtList: [
  5840. {
  5841. label: "不投保",
  5842. value: "0"
  5843. },
  5844. {
  5845. label: "2次",
  5846. value: "2"
  5847. },
  5848. {
  5849. label: "7次",
  5850. value: "7"
  5851. },
  5852. {
  5853. label: "12次",
  5854. value: "12"
  5855. },
  5856. {
  5857. label: "17次",
  5858. value: "17"
  5859. },
  5860. {
  5861. label: "22次",
  5862. value: "22"
  5863. }
  5864. ],
  5865. desc: "道路救援服务特约条款",
  5866. isMainRisk: false,
  5867. kindCode: "TY1",
  5868. kindName: "道路救援服务特约条款"
  5869. },
  5870. {
  5871. amount: "0",
  5872. amountDesc: "不投保",
  5873. coveragePremium: 0,
  5874. desc: "车辆安全检测特约条款",
  5875. isMainRisk: false,
  5876. kindCode: "TY2",
  5877. kindName: "车辆安全检测特约条款"
  5878. },
  5879. {
  5880. amount: "0",
  5881. amountDesc: "不投保",
  5882. coveragePremium: 0,
  5883. desc: "代为驾驶服务特约条款",
  5884. isMainRisk: false,
  5885. kindCode: "TY3",
  5886. kindName: "代为驾驶服务特约条款"
  5887. },
  5888. {
  5889. amount: "0",
  5890. amountDesc: "不投保",
  5891. coveragePremium: 0,
  5892. desc: "代为送检服务特约条款",
  5893. isMainRisk: false,
  5894. kindCode: "TY4",
  5895. kindName: "代为送检服务特约条款"
  5896. }
  5897. ],
  5898. totalCompanyList: [], //报价保险公司
  5899. continuousCompanyList: [], //续保保险公司
  5900. quoteno: "", //报价号
  5901. orderno: "", //订单号
  5902. queryOrders: {
  5903. extendInfo: {},
  5904. carinfo: {},
  5905. ownerinfo: {},
  5906. applyinfo: {},
  5907. insureinfo: {}
  5908. }, //核保详情
  5909. inscompany: "", //保险公司名称
  5910. licenseNo: "", //车牌号
  5911. applyName: "", //车主名字
  5912. orderstatus: "", //订单状态
  5913. sumpremium: "", //保费合计
  5914. jqpremium: "", //交强
  5915. sypremium: "", //商业
  5916. jypremium: "", //驾意险
  5917. taxamount: "", //车船税
  5918. jqstartdate: "", //交强时间
  5919. systartdate: "", //商业时间
  5920. mobile: "", //投保人手机号
  5921. //影像回显列表
  5922. // 是否禁用上传
  5923. uploadDisabled: false,
  5924. href: "",
  5925. pageRequest: {
  5926. //归属查询
  5927. pageNum: 1,
  5928. pageSize: 20,
  5929. columnFilters: {
  5930. deptId: {
  5931. name: "deptId",
  5932. value: "9"
  5933. },
  5934. containsSubDept: {
  5935. name: "containsSubDept",
  5936. value: 1
  5937. },
  5938. usertype: {
  5939. name: "usertype",
  5940. value: null
  5941. },
  5942. status: {
  5943. name: "status",
  5944. value: "1"
  5945. },
  5946. id: {
  5947. name: "id",
  5948. value: ""
  5949. },
  5950. name: {
  5951. name: "name",
  5952. value: ""
  5953. },
  5954. mobile: {
  5955. name: "mobile",
  5956. value: ""
  5957. }
  5958. }
  5959. },
  5960. userform: {},
  5961. qrcode: null,
  5962. paycodeimg: "", //展示二维码
  5963. ImageUrldialogVisible: false,
  5964. paramsEdit: "",
  5965. companyId: "",
  5966. apiType: "",
  5967. insureMore: true,
  5968. // insureLength: 5,
  5969. HistoryList: [], //历史记录数据
  5970. image1: "",
  5971. image2: "",
  5972. historyRadio: "888",
  5973. sumseatCount: "", // 投保险种座位数
  5974. deptName: "",
  5975. isBottom: true,
  5976. logoImg: "", //报价单保险公司logo图
  5977. vehicleTypeoptions: [], //车辆种类
  5978. trafficManagementVehicleTypeoptions: [], //车辆类型
  5979. energyTypeoptions: [], //能源种类
  5980. taxRelifFlagoptions: [], //车船税类型
  5981. taxpayerIdentifieroptions: [], //纳税人证件类型
  5982. propertyoptions: [
  5983. {
  5984. value: "1",
  5985. label: "个人"
  5986. },
  5987. {
  5988. value: "2",
  5989. label: "企业"
  5990. }
  5991. ],
  5992. relifReasonoptions: [], //减免税原因代码
  5993. relifReasonoptions: [], //减免税原因代码
  5994. provinceSelect: [],
  5995. natureOfVehicleUseoptions: [],
  5996. businessVehicleUseoptions: [],
  5997. outOfBusinessVehicleUseoptions: [],
  5998. insOrderStatusoptions: [],
  5999. lastCompanyId: "",
  6000. apiInterfaceName: "generateOrder",
  6001. isLetter3Arr: [],
  6002. isLetter3agreementId: "",
  6003. editorInfo: {},
  6004. resultMessageImg: "",
  6005. tabLiIndex: 0,
  6006. tabLimenu: [
  6007. {
  6008. name: "车辆信息",
  6009. scroll: "vehicle"
  6010. },
  6011. {
  6012. name: "车主信息",
  6013. scroll: "owner"
  6014. },
  6015. {
  6016. name: "投保人信息",
  6017. scroll: "applicant"
  6018. },
  6019. {
  6020. name: "被保人信息",
  6021. scroll: "insured"
  6022. },
  6023. {
  6024. name: "关系证明",
  6025. scroll: "relationship"
  6026. },
  6027. {
  6028. name: "验车照",
  6029. scroll: "yanchezhao"
  6030. },
  6031. {
  6032. name: "上年商业险保单",
  6033. scroll: "snbaodan"
  6034. },
  6035. {
  6036. name: "授权书",
  6037. scroll: "shouquanshu"
  6038. }
  6039. ],
  6040. ProViewImg: "", //预览图片
  6041. carfrontImg: "", //行驶证正面
  6042. carbackImg: "", //行驶证背面
  6043. userfrontImg: "", //身份证正面
  6044. userbackImg: "", //身份证背面
  6045. businessImg: "",
  6046. CarFrontFile: "", //车正面文件流
  6047. CarBackFile: "", //车背面文件流
  6048. C02File: "",
  6049. D02File: "",
  6050. C03File: "",
  6051. D03File: "",
  6052. C04File: "",
  6053. D04File: "",
  6054. Y02File: "",
  6055. Y03File: "",
  6056. Y04File: "",
  6057. //影像回显列表
  6058. imgList1: [],
  6059. imgList2: [],
  6060. imgList3: [],
  6061. imgList4: [],
  6062. imgList5: [],
  6063. imgList6: [],
  6064. imgList7: [],
  6065. imgList8: [],
  6066. imgList9: [],
  6067. imgList10: [],
  6068. imgList11: [],
  6069. imgList12: [],
  6070. imgList13: [],
  6071. imgList14: [],
  6072. imgList15: [],
  6073. imgList16: [],
  6074. imgList17: [],
  6075. imgList18: [],
  6076. imgList19: [],
  6077. imgList20: [],
  6078. imgList21: [],
  6079. imgList22: [],
  6080. imgList23: [],
  6081. imgList24: [],
  6082. imgList25: [],
  6083. imgList26: [],
  6084. imgList27: [],
  6085. imgList28: [],
  6086. //影像上传列表
  6087. imageList1: [],
  6088. imageList2: [],
  6089. imageList3: [],
  6090. imageList4: [],
  6091. imageList5: [],
  6092. imageList6: [],
  6093. showLoading: false,
  6094. detailJiaYiTitle: "查看详情",
  6095. oldData: {}, // 旧获取公司参数
  6096. myQrCode: null,
  6097. businessform: {
  6098. name: "", //姓名
  6099. identifyType: "02", //身份证类型
  6100. legalRepresentative: "", //法人
  6101. identifyNumber: "", //社会信用代码
  6102. addr: "", //地址
  6103. registeredCapital: "", //注册资本
  6104. businessScope: "" //经营范围
  6105. },
  6106. areaOption: yongchengData.data,
  6107. selectedOptions1: [],
  6108. selectedOptions2: [],
  6109. selectedOptions3: []
  6110. };
  6111. },
  6112. watch: {
  6113. "carInfo.licenseNo": {
  6114. handler(val) {
  6115. if (val) {
  6116. this.carInfo.licenseNo = val.toUpperCase();
  6117. }
  6118. },
  6119. deep: true
  6120. },
  6121. "carInfo.frameNo": {
  6122. handler(val) {
  6123. if (val) {
  6124. this.carInfo.frameNo = val.toUpperCase();
  6125. }
  6126. },
  6127. deep: true
  6128. },
  6129. "carInfo.enginedesc": {
  6130. handler(val) {
  6131. if (val) {
  6132. this.carInfo.enginedesc = val.replace(/[A-Za-z]/g, "");
  6133. }
  6134. },
  6135. deep: true
  6136. },
  6137. "ownerInfo.mobile": {
  6138. handler(val) {
  6139. if (val) {
  6140. this.ownerInfo.mobile = val.replace(/\s/g, "");
  6141. }
  6142. },
  6143. deep: true
  6144. },
  6145. "policyHolderInfo.mobile": {
  6146. handler(val) {
  6147. if (val) {
  6148. this.policyHolderInfo.mobile = val.replace(/\s/g, "");
  6149. }
  6150. },
  6151. deep: true
  6152. },
  6153. "insuredPersonInfo.mobile": {
  6154. handler(val) {
  6155. if (val) {
  6156. this.insuredPersonInfo.mobile = val.replace(/\s/g, "");
  6157. }
  6158. },
  6159. deep: true
  6160. },
  6161. "carInfo.engineNo": {
  6162. handler(val) {
  6163. if (val) {
  6164. this.carInfo.engineNo = val.replace(/[^\w-]/gi, "").toUpperCase();
  6165. }
  6166. },
  6167. deep: true
  6168. },
  6169. "carInfo.seatCount": {
  6170. handler(val) {
  6171. if (val) {
  6172. this.sumseatCount = val - 1;
  6173. }
  6174. },
  6175. deep: true
  6176. },
  6177. "policyHolderInfo.identifyNumber": {
  6178. handler(val) {
  6179. if (val) {
  6180. this.vehicleAndVesselTaxForm.identifyNumber = val;
  6181. }
  6182. },
  6183. deep: true
  6184. },
  6185. "policyHolderInfo.organizationCode": {
  6186. handler(val) {
  6187. if (val) {
  6188. this.vehicleAndVesselTaxForm.organizationCode = val;
  6189. }
  6190. },
  6191. deep: true
  6192. },
  6193. "policyHolderInfo.name": {
  6194. handler(val) {
  6195. if (val) {
  6196. this.vehicleAndVesselTaxForm.taxpayerName = val;
  6197. }
  6198. },
  6199. deep: true
  6200. },
  6201. ownerInfo: {
  6202. handler(val) {
  6203. if (this.tbczcarShow) {
  6204. this.policyHolderInfo = { ...val };
  6205. }
  6206. if (this.bbczcarShow) {
  6207. this.insuredPersonInfo = { ...val };
  6208. }
  6209. },
  6210. deep: true
  6211. },
  6212. policyHolderInfo: {
  6213. handler(val) {
  6214. if (this.bbtbcarShow) {
  6215. this.insuredPersonInfo = { ...val };
  6216. }
  6217. },
  6218. deep: true
  6219. }
  6220. },
  6221. props: {
  6222. isdisabled: {
  6223. type: Boolean,
  6224. default: true
  6225. },
  6226. isLetter: {
  6227. type: String,
  6228. default: "1"
  6229. }
  6230. },
  6231. components: {
  6232. detailsDialog,
  6233. quotationDialog,
  6234. quotationDialogPro,
  6235. imageDialog,
  6236. Ktletter1Popover,
  6237. floatingBar,
  6238. "el-image-viewer": () =>
  6239. import("element-ui/packages/image/src/image-viewer")
  6240. },
  6241. created() {
  6242. if (this.isLetter == "2") {
  6243. this.apiInterfaceName = "ordergenerateOrder";
  6244. }
  6245. if (this.isLetter == "1") {
  6246. this.$api.user.sysMenuRecordAdd(2, 1).then(res => { });
  6247. }
  6248. // this.commpanyList(); //获取保险公司
  6249. this.getDicType("taxRelifFlag"); //车船税类型
  6250. this.getDicType("taxpayerIdentifier"); //纳税人证件类型
  6251. this.getDicType("relifReason"); //减免税原因代码
  6252. this.getDicType("vehicleType"); //车辆种类
  6253. this.getDicType("trafficManagementVehicleType"); //车辆类型
  6254. this.getDicType("energyType"); //能源种类
  6255. this.getDicType("natureOfVehicleUse"); //车辆使用性质
  6256. this.getDicType("businessVehicleUse"); //(车辆用途)营业
  6257. this.getDicType("outOfBusinessVehicleUse"); //(车辆用途)非营业
  6258. this.getDicType("insOrderStatus"); //状态
  6259. this.$api.letter.queryCompany().then(res => {
  6260. this.continuousCompanyList = res.data;
  6261. });
  6262. this.$api.letter.packageQuery().then(res => {
  6263. this.packageOptions = res.data;
  6264. });
  6265. localStorage.setItem("carInfo", JSON.stringify(this.carInfo));
  6266. localStorage.setItem("insureList", JSON.stringify(this.insureList));
  6267. //--归属信息获取--
  6268. if (this.isLetter == 1 || this.isLetter == 2) {
  6269. var userId = Cookies.get("user");
  6270. if (userId == "admin") {
  6271. this.userId = "admin";
  6272. } else {
  6273. // this.userId = userId;
  6274. this.$api.user.getLoginUser().then(res => {
  6275. if (res.code == 200) {
  6276. this.userform = res.data;
  6277. this.$api.dept.getDeptById(res.data.deptId).then(res => {
  6278. this.deptName = res.data.name;
  6279. });
  6280. this.userId = res.data.id;
  6281. }
  6282. });
  6283. }
  6284. }
  6285. //--订单编辑回显--
  6286. // this.paramsEdit = this.$route.query.data; //接收参数
  6287. // this.obtainProtocol(this.$route.query.data);
  6288. this.getProductId(); // 获取险别
  6289. // this.editingWay(this.$route.query.data)
  6290. if (this.$route.query.data) {
  6291. this.editingWay(this.$route.query.data);
  6292. }
  6293. },
  6294. mounted() {
  6295. localStorage.removeItem('interestIndex')
  6296. this.isEnabled()
  6297. this.getCompanyList(this.$route.query.data);
  6298. this.onScroll();
  6299. this.initVerificationDict();
  6300. if (this.$route.query.data) {
  6301. if (this.isDateBeforeToday(this.$route.query.data.jqstartdate)) {
  6302. this.jqstartDate = this.transformTime1();
  6303. this.jqendDate = this.oneYearPast1(this.jqstartDate);
  6304. } else {
  6305. this.jqstartDate = this.$route.query.data.jqstartdate;
  6306. this.jqendDate = this.$route.query.data.jqenddate;
  6307. }
  6308. if (this.$route.query.data.jqstartdate.split(" ")[1] == "00:00:00") {
  6309. this.immediatelyValue = false;
  6310. } else {
  6311. this.immediatelyValue = true;
  6312. }
  6313. }
  6314. window.addEventListener("scroll", this.onScroll);
  6315. },
  6316. destroyed() {
  6317. window.removeEventListener("scroll", this.onScroll);
  6318. },
  6319. beforeCreate() {
  6320. _self = this;
  6321. },
  6322. computed: {
  6323. ...mapState({
  6324. collapse: state => state.app.collapse
  6325. }),
  6326. issueDateOptions() {
  6327. return {
  6328. disabledDate: this.disabledDate
  6329. };
  6330. }
  6331. },
  6332. filters: {
  6333. cap(ele) {
  6334. return _self.insOrderStatusoptions.find(item => {
  6335. return item.dictValue === ele;
  6336. }).dictTag;
  6337. }
  6338. },
  6339. methods: {
  6340. // 车损验车事项
  6341. initVerificationDict() {
  6342. this.$api.letter.getYaCarDamageVerificationDict().then(res => {
  6343. if(res.code == 200) {
  6344. this.verificationDict = res.data
  6345. }
  6346. })
  6347. },
  6348. //补录订单
  6349. supplementOrder(id) {
  6350. let params = {
  6351. companyId: id,
  6352. };
  6353. this.$api.letter.getByCompanyId(params).then((res) => {
  6354. if (res.code == "200") {
  6355. this.$router.push({
  6356. path: "/task/external/externalOrders",
  6357. query: { data: res.data },
  6358. });
  6359. }
  6360. })
  6361. },
  6362. quotechangeDate(value){
  6363. return dayjs(value).format("YYYY-MM-DD HH:mm:ss");
  6364. },
  6365. changeDate(value) {
  6366. return dayjs(value).format("YYYY-MM-DD");
  6367. },
  6368. vehicleUseChange(value) {
  6369. if ((value = "05")) {
  6370. this.carInfo.property = "1";
  6371. this.ownerInfo.property = "1";
  6372. this.ownerInfo.identifyType = "01";
  6373. }
  6374. },
  6375. propertyDisable(item) {
  6376. if (this.carInfo.vehicleUse == "05" && item.label == "企业") {
  6377. return true;
  6378. } else {
  6379. return false;
  6380. }
  6381. },
  6382. deleteJiaYi(reslistindex, drivingIndex) {
  6383. this.totalCompanyList[reslistindex].programme.drivingList.splice(
  6384. drivingIndex,
  6385. 1
  6386. );
  6387. this.$forceUpdate();
  6388. },
  6389. toWan(num, type) {
  6390. if (type == "fw") {
  6391. return num + "次";
  6392. }
  6393. if (num > 10000) {
  6394. if (num % 10000 == 0) {
  6395. return num / 10000 + "万";
  6396. } else {
  6397. return (num / 10000).toFixed(4) + "万";
  6398. }
  6399. } else if (num == 1) {
  6400. return "投保";
  6401. } else {
  6402. return num;
  6403. }
  6404. },
  6405. // 所属性质字段
  6406. getCompanyListProperty(data) {
  6407. if (data == "1") {
  6408. this.ownerInfo.property = "1";
  6409. this.policyHolderInfo.property = "1";
  6410. this.insuredPersonInfo.property = "1";
  6411. this.ownerInfo.identifyType = "01";
  6412. this.policyHolderInfo.identifyType = "01";
  6413. this.insuredPersonInfo.identifyType = "01";
  6414. } else {
  6415. this.ownerInfo.property = "0";
  6416. this.policyHolderInfo.property = "0";
  6417. this.insuredPersonInfo.property = "0";
  6418. this.ownerInfo.identifyType = "10";
  6419. this.policyHolderInfo.identifyType = "10";
  6420. this.insuredPersonInfo.identifyType = "10";
  6421. }
  6422. this.getCompanyList();
  6423. },
  6424. // 获取新公司列表
  6425. getCompanyList(data) {
  6426. var _this = this;
  6427. if (!this.productId) {
  6428. this.$message.warning("请选择险种");
  6429. return;
  6430. }
  6431. let starttime = new Date(this.carInfo.registerDate);
  6432. let endtime = new Date(this.carInfo.issueDate);
  6433. if (endtime < starttime) {
  6434. this.$message({ message: "发证日期早于初登日期", type: "error" });
  6435. return;
  6436. }
  6437. this.policyHolderInfovalidate();
  6438. this.$refs["carInfo"].validate(valid => {
  6439. if (valid) {
  6440. _this.$refs["ownerInfo"].validate(async valid1 => {
  6441. if (valid1) {
  6442. if (!this.bbczcarShow && !this.bbtbcarShow) {
  6443. this.$refs["insuredPersonInfo"].validate(valid2 => {
  6444. if (!valid2) {
  6445. document.getElementById("toubaor").scrollIntoView();
  6446. this.$message({
  6447. message: "请检查被投保人信息",
  6448. type: "warning"
  6449. });
  6450. return;
  6451. }
  6452. });
  6453. }
  6454. if (!_this.productId) {
  6455. _this.$message.warning("请选择险别");
  6456. return;
  6457. }
  6458. let res = {};
  6459. let param = {
  6460. productId: this.productId,
  6461. carInfo: this.carInfo,
  6462. ownerInfo: this.ownerInfo,
  6463. applyInfo: this.policyHolderInfo,
  6464. insureInfo: this.insuredPersonInfo,
  6465. userId: this.isLetter == 2 ? this.userId : ""
  6466. };
  6467. if (JSON.stringify(param) === this.oldData) {
  6468. return;
  6469. } else {
  6470. this.oldData = JSON.stringify(param);
  6471. }
  6472. this.showLoading = true;
  6473. // this.$api.letter.getAllAgreement().then((res) => {
  6474. this.$api.letter.ruleFilterCompany(param).then(res => {
  6475. if (res.code == 200) {
  6476. res.data.map(ele => {
  6477. ele["result"] = ele.namesimple==='永安财险'?{carChecker: 3}:{};
  6478. ele["quoteCode"] = 0;
  6479. ele["checked"] = false;
  6480. ele["msg"] = "";
  6481. ele["lastYearMsg"] = "";
  6482. ele["agreementId"] = "";
  6483. ele["apiType"] = "";
  6484. ele["orderstatus"] = 0;
  6485. ele.coefficient = "";
  6486. // ele.pricingCoefficient = data.insAreaCompanyEditingDtos.find(item => ele.namesimple === item.namesimple).pricingCoefficient
  6487. // ele.pricingCoefficientUpper = data.insAreaCompanyEditingDtos.find(item => ele.namesimple === item.namesimple).pricingCoefficientUpper
  6488. // ele.pricingCoefficientLower = data.insAreaCompanyEditingDtos.find(item => ele.namesimple === item.namesimple).pricingCoefficientLower
  6489. ele.underwritingDescription =
  6490. ele.agreement[0].underwritingDescription;
  6491. if (
  6492. ele.isTaxSource &&
  6493. ele.isTaxSource == "1" &&
  6494. ele.agreement
  6495. ) {
  6496. ele.agreement.forEach(val => {
  6497. if (val.isTaxSource && val.isTaxSource == "1") {
  6498. ele.agreementId = val.id;
  6499. ele.apiType = val.apiType;
  6500. }
  6501. });
  6502. }
  6503. });
  6504. if (this.$route.query.data) {
  6505. data = data || this.$route.query.data;
  6506. }
  6507. if (data) {
  6508. this.selectedOptions1 = _this.ownerInfo.province
  6509. ? [
  6510. Number(_this.ownerInfo.province),
  6511. Number(_this.ownerInfo.city),
  6512. Number(_this.ownerInfo.county)
  6513. ]
  6514. : [];
  6515. this.selectedOptions2 = _this.policyHolderInfo.province
  6516. ? [
  6517. Number(_this.policyHolderInfo.province),
  6518. Number(_this.policyHolderInfo.city),
  6519. Number(_this.policyHolderInfo.county)
  6520. ]
  6521. : [];
  6522. this.selectedOptions13 = _this.insuredPersonInfo.province
  6523. ? [
  6524. Number(_this.insuredPersonInfo.province),
  6525. Number(_this.insuredPersonInfo.city),
  6526. Number(_this.insuredPersonInfo.county)
  6527. ]
  6528. : [];
  6529. this.productId = this.productId || data.productid;
  6530. res.data.forEach((val, index) => {
  6531. if (!data.insAreaCompanyEditingDtos) {
  6532. return;
  6533. }
  6534. data.insAreaCompanyEditingDtos.forEach(ele => {
  6535. if (val.namesimple == ele.inscompany) {
  6536. if (ele.inscompany == "中国人寿" && ele.companyId) {
  6537. this.lastCompanyId = ele.companyId;
  6538. }
  6539. res.data[index].quoteCode = 200;
  6540. res.data[index].result = ele;
  6541. if(ele.inscompany == '阳光财险') {
  6542. res.data[index].pricingCoefficient = ele.pricingCoefficient
  6543. res.data[index].pricingCoefficientUpper = ele.pricingCoefficientUpper
  6544. res.data[index].pricingCoefficientLower = ele.pricingCoefficientLower
  6545. }
  6546. }
  6547. });
  6548. });
  6549. }
  6550. // //险种合并集合
  6551. } else {
  6552. this.$message.error(res.msg);
  6553. }
  6554. const combinedArray = [
  6555. ...this.riskList.map(item => item.riskCode),
  6556. ...this.kindList.map(item => item.kindCode)
  6557. ];
  6558. if (res.data) {
  6559. res.data = res.data.filter(obj => {
  6560. obj.agreement = obj.agreement.filter(agreementObj => {
  6561. // 险种配置为空,则过滤掉该协议
  6562. if (agreementObj.productsCodes == null) {
  6563. return true;
  6564. } else {
  6565. // 检查是否包含 A 的特殊处理
  6566. if (
  6567. combinedArray.includes("A") &&
  6568. !agreementObj.productsCodes.includes("A")
  6569. ) {
  6570. return false;
  6571. }
  6572. return agreementObj.productsCodes.some(item =>
  6573. combinedArray.includes(item)
  6574. );
  6575. }
  6576. });
  6577. return obj.agreement.length > 0; // 返回true保留,返回false移除该保险公司
  6578. });
  6579. res.data.forEach(e => {
  6580. if (e.agreement) {
  6581. e.agreement.forEach(el => (el.disabled = false));
  6582. }
  6583. if(e.namesimple=='永安财险') {
  6584. if(!e.result.carChecker) {
  6585. e.result.carChecker = 3
  6586. }
  6587. }
  6588. });
  6589. }
  6590. this.totalCompanyList = res.data;
  6591. this.showLoading = false;
  6592. });
  6593. } else {
  6594. document.getElementById("CheZhu").scrollIntoView();
  6595. _this.$message({ message: "请检查人员信息", type: "warning" });
  6596. }
  6597. });
  6598. } else {
  6599. document.getElementById("Car").scrollIntoView();
  6600. this.$message({ message: "请检查车辆信息", type: "warning" });
  6601. return false;
  6602. }
  6603. });
  6604. },
  6605. // 保费计算(报价)按钮
  6606. handleListJisuan(item, index) {
  6607. this.quote(index);
  6608. },
  6609. // 客户权益
  6610. isEnabled() {
  6611. this.$api.task.isEnabled().then(res => {
  6612. if(res.code === 200) {
  6613. this.isEnabledShow = res.data
  6614. } else {
  6615. this.$message({
  6616. message: res.msg,
  6617. type: 'warning'
  6618. })
  6619. }
  6620. })
  6621. },
  6622. handleChangeInterestIndex(item, index) {
  6623. if(this.interestIndex == index) {
  6624. this.interestIndex = -1
  6625. this.interestTableData = []
  6626. } else {
  6627. this.interestIndex = index
  6628. // this.interestData.pointProportion
  6629. let integral = (this.interestData.amount - this.interestData.pageResult.content[index].threeSettlementPrice)*this.interestData.pointProportion
  6630. this.interestTableData = this.interestData.pageResult.content[index].localEquityPackageAssociationList.map(a => {
  6631. return {
  6632. ...a,
  6633. integral: integral
  6634. }
  6635. })
  6636. }
  6637. // if(this.interestData.pageResult.content[index].localEquityPackageAssociationList) {
  6638. // this.interestTableData = this.interestData.pageResult.content[index].localEquityPackageAssociationList.map(a => {
  6639. // return {
  6640. // ...a,
  6641. // totalPackagePrice: this.interestData.pageResult.content[index].totalPackagePrice
  6642. // }
  6643. // })
  6644. // } else {
  6645. // this.interestTableData = []
  6646. // }
  6647. },
  6648. handleInterest(item, index) {
  6649. if(this.tbczcarShow) {
  6650. this.policyHolderInfo = {...this.ownerInfo}
  6651. }
  6652. if(this.bbtbcarShow) {
  6653. this.insuredPersonInfo = this.policyHolderInfo
  6654. }
  6655. if(this.bbczcarShow) {
  6656. this.insuredPersonInfo = this.ownerInfo
  6657. }
  6658. this.acceptOptions = [
  6659. {
  6660. label: `${this.policyHolderInfo.name}-${this.policyHolderInfo.mobile}`,
  6661. value: 0
  6662. },{
  6663. label: `${this.insuredPersonInfo.name}-${this.insuredPersonInfo.mobile}`,
  6664. value: 1
  6665. },{
  6666. label: `${this.ownerInfo.name}-${this.ownerInfo.mobile}`,
  6667. value: 2
  6668. }
  6669. ]
  6670. if(localStorage.getItem('interestIndex')) {
  6671. this.interestIndex = localStorage.getItem('interestIndex')
  6672. } else {
  6673. this.interestIndex = 0
  6674. }
  6675. this.$api.task.equityInfo({
  6676. companyId: item.result.companyId
  6677. }).then(res => {
  6678. if(res.code === 200) {
  6679. this.interestData = res.data
  6680. this.interestSelectData = item
  6681. this.interestList = res.data.pageResult.content
  6682. let integral = (this.interestData.amount - this.interestData.pageResult.content[this.interestIndex].threeSettlementPrice)*this.interestData.pointProportion
  6683. this.interestTableData = res.data.pageResult.content[this.interestIndex].localEquityPackageAssociationList.map(a => {
  6684. return {
  6685. ...a,
  6686. integral: integral
  6687. }
  6688. })
  6689. } else {
  6690. this.$message({
  6691. message: res.msg,
  6692. type: 'warning'
  6693. })
  6694. }
  6695. })
  6696. this.interestShow = true
  6697. },
  6698. handleCancel() {
  6699. this.interestShow = false
  6700. },
  6701. handleSubmit() {
  6702. if(this.interestPeople === '') {
  6703. this.$message({
  6704. message: '请先选择权益接收人!',
  6705. type: 'warning'
  6706. })
  6707. return;
  6708. }
  6709. let obj = this.interestData.feeOrderNewVo.exportFee.find(a => a.insuranceType === '合计')
  6710. let integral = (obj.totalAmount - this.interestList[this.interestIndex].threeSettlementPrice) * 100
  6711. this.interestShow = false
  6712. let info = this.interestPeople == 0?this.policyHolderInfo:this.interestPeople == 1?this.insuredPersonInfo:this.interestPeople == 2?this.ownerInfo:null
  6713. this.$api.task.saveEquity({
  6714. companyId: this.interestSelectData.result.companyId,
  6715. receiveType: this.interestPeople,
  6716. receiveName: info.name,
  6717. receivePhone: info.mobile,
  6718. receiveIdentify: info.identifyNumber,
  6719. orderMoney: obj.totalAmount,
  6720. point: integral.toFixed(2),
  6721. equityInfo: this.interestList[this.interestIndex]
  6722. }).then(res => {
  6723. if(res.code === 200) {
  6724. localStorage.setItem('interestIndex', this.interestIndex)
  6725. this.$message({
  6726. message: '权益保存成功!',
  6727. type: 'success'
  6728. })
  6729. } else {
  6730. this.$message({
  6731. message: res.msg,
  6732. type: 'warning'
  6733. })
  6734. }
  6735. })
  6736. },
  6737. // 修改险别
  6738. productIdChange() {
  6739. if (this.productId != "0330") {
  6740. this.sychecked = true;
  6741. this.sycheckedChange(true);
  6742. } else {
  6743. this.sychecked = false;
  6744. this.sycheckedChange(false);
  6745. }
  6746. if (this.productId == "034001" || this.productId == "034002") {
  6747. this.jqchecked = false;
  6748. this.jqcheckedChange(false);
  6749. } else {
  6750. this.jqchecked = true;
  6751. this.jqcheckedChange(true);
  6752. }
  6753. this.getCompanyList();
  6754. if (this.policyHolderInfo.property == "0") {
  6755. this.vehicleAndVesselTaxForm.taxpayerIdentifier = "10";
  6756. }
  6757. if (this.policyHolderInfo.property == "1") {
  6758. this.vehicleAndVesselTaxForm.taxpayerIdentifier = "01";
  6759. }
  6760. this.totalCompanyList.forEach(val => {
  6761. val.checked = false;
  6762. });
  6763. },
  6764. // 选择方案
  6765. checkedPopover(reslistindex, index, item) {
  6766. if (index == 99) {
  6767. if (
  6768. this.totalCompanyList[reslistindex].programme99 &&
  6769. !this.totalCompanyList[reslistindex].programme99.schemeId
  6770. ) {
  6771. return;
  6772. }
  6773. if (!this.totalCompanyList[reslistindex].zxProgramme) {
  6774. this.totalCompanyList[reslistindex].zxProgramme = {
  6775. // 自选方案详情
  6776. description: "",
  6777. drivingList: [],
  6778. jqx: {
  6779. name: "交通事故强制责任险"
  6780. },
  6781. kinds: {
  6782. additional: [],
  6783. main: [],
  6784. service: []
  6785. }
  6786. };
  6787. }
  6788. this.typeDialogIndex = reslistindex; // 当前的公司index
  6789. this.totalCompanyList[reslistindex].programme = this.totalCompanyList[
  6790. reslistindex
  6791. ].zxProgramme; // 选中的自定义方案详情
  6792. } else {
  6793. this.totalCompanyList[reslistindex].programme = item; // 选中的方案详情
  6794. }
  6795. this.totalCompanyList[reslistindex].checkedProgramme = index; // 选中的方案
  6796. this.productList.forEach(val => {
  6797. if (val.code == this.productId) {
  6798. this.totalCompanyList[reslistindex].programme.description = val.desc;
  6799. }
  6800. });
  6801. this.$forceUpdate();
  6802. },
  6803. // 获取方案信息
  6804. getCompanyProgramme(e, code, name, index) {
  6805. this.totalCompanyList[index].checked = false;
  6806. this.$api.letter
  6807. .getAllSchemeList({
  6808. companyId: code,
  6809. productId: this.productId,
  6810. seatNum: this.carInfo.seatCount,
  6811. vehicleType: this.carInfo.cimodelclass,
  6812. energyType: this.carInfo.energyType,
  6813. carnature: this.carInfo.carnature
  6814. })
  6815. .then(res => {
  6816. if (res.code == 200) {
  6817. this.totalCompanyList[index].schemes = res.data.schemes;
  6818. this.totalCompanyList[index].programme99 = res.data
  6819. .optionalScheme || { kinds: [] }; // 获取自选方案弹窗信息
  6820. if (res.data.schemes[0]) {
  6821. this.checkedPopover(index, 0, res.data.schemes[0]);
  6822. } else {
  6823. this.checkedPopover(index, 99);
  6824. }
  6825. this.totalCompanyList[index].checked = true;
  6826. }
  6827. });
  6828. },
  6829. // 获取险别
  6830. getProductId() {
  6831. // /plt/scheme/getProductInfo
  6832. this.$api.letter.getProductInfo().then(res => {
  6833. this.productList = res.data;
  6834. });
  6835. },
  6836. // 选择特约
  6837. handleCloseTeYue() {
  6838. this.showTeYueVisible = false;
  6839. },
  6840. checkTeYue(item) {
  6841. this.showTeYueVisible = true;
  6842. },
  6843. // 驾意险详情
  6844. handleCloseShowDetailJiaYi() {
  6845. this.showDetailJiaYiVisible = false;
  6846. this.showDetailJiaYiVisible1 = false;
  6847. this.showDetailtable = [];
  6848. this.typeDialogData = {};
  6849. },
  6850. // 确认驾意
  6851. handleAddYiWai() {
  6852. let arr = [];
  6853. this.checkList.forEach(val => {
  6854. if (this.totalCompanyList[this.typeDialogIndex].cnName == "zijin") {
  6855. if (val.tableData) arr.push(...val.tableData);
  6856. // } else if (this.totalCompanyList[this.typeDialogIndex].cnName == 'guoRen' || this.totalCompanyList[this.typeDialogIndex].cnName == 'ansheng') {
  6857. // arr.push({...val.tableData, select: val.select})
  6858. } else {
  6859. if (val.tableData) arr.push(val.tableData);
  6860. }
  6861. });
  6862. this.totalCompanyList[this.typeDialogIndex].zxProgramme.drivingList = arr;
  6863. this.totalCompanyList[this.typeDialogIndex].programme.drivingList = arr;
  6864. this.handleCloseAddYiwai();
  6865. },
  6866. // 驾意输入框按钮
  6867. numberChange(listIndex, index, type, minquantity, dataIndex) {
  6868. if (dataIndex >= 0) {
  6869. if (type == "plus") {
  6870. // if (this.jiayiDialogData.drivingTypeList[listIndex].children[index].tableData[dataIndex].quantity < 100) {
  6871. this.jiayiDialogData.drivingTypeList[listIndex].children[index]
  6872. .tableData[dataIndex].quantity++;
  6873. // }
  6874. } else {
  6875. if (
  6876. this.jiayiDialogData.drivingTypeList[listIndex].children[index]
  6877. .tableData[dataIndex].quantity > minquantity
  6878. ) {
  6879. this.jiayiDialogData.drivingTypeList[listIndex].children[
  6880. index
  6881. ].tableData[dataIndex].quantity -= 1;
  6882. }
  6883. }
  6884. } else {
  6885. if (type == "plus") {
  6886. // if (this.jiayiDialogData.drivingTypeList[listIndex].children[index].tableData.quantity < 100) {
  6887. this.jiayiDialogData.drivingTypeList[listIndex].children[index]
  6888. .tableData.quantity++;
  6889. // }
  6890. } else {
  6891. if (
  6892. this.jiayiDialogData.drivingTypeList[listIndex].children[index]
  6893. .tableData.quantity > minquantity
  6894. ) {
  6895. this.jiayiDialogData.drivingTypeList[listIndex].children[
  6896. index
  6897. ].tableData.quantity -= 1;
  6898. }
  6899. }
  6900. }
  6901. this.$forceUpdate();
  6902. },
  6903. // 选中驾意一层
  6904. handleChangeSelectGuoren(index) {
  6905. this.checkList[index].tableData1 = undefined;
  6906. this.checkList[index].detail.forEach(val => {
  6907. if (val.projectName == this.checkList[index].select) {
  6908. this.checkList[index].tableData1 = val.insDrivingIntentionInsurances;
  6909. }
  6910. });
  6911. },
  6912. changeInput(e, listIndex, index, type, minquantity, dataIndex) {
  6913. let num = Number(e);
  6914. if (dataIndex >= 0) {
  6915. this.jiayiDialogData.drivingTypeList[listIndex].children[
  6916. index
  6917. ].tableData[dataIndex].quantity = num < minquantity ? minquantity : num;
  6918. } else {
  6919. this.jiayiDialogData.drivingTypeList[listIndex].children[
  6920. index
  6921. ].tableData.quantity = num < minquantity ? minquantity : num;
  6922. }
  6923. this.$forceUpdate();
  6924. },
  6925. // 选中驾意
  6926. handleChangeSelect(index) {
  6927. if (this.totalCompanyList[this.typeDialogIndex].cnName == "zijin") {
  6928. this.checkList[index].tableData = [];
  6929. this.checkList[index].detail.forEach(val => {
  6930. this.checkList[index].selectList.forEach(value => {
  6931. if (val.alias == value) {
  6932. this.checkList[index].tableData.push(val);
  6933. this.$forceUpdate();
  6934. }
  6935. });
  6936. });
  6937. // } else if (this.totalCompanyList[this.typeDialogIndex].cnName == 'guoRen' || this.totalCompanyList[this.typeDialogIndex].cnName == 'ansheng' || this.totalCompanyList[this.typeDialogIndex].cnName == 'ansheng') {
  6938. // this.checkList[index].tableData1.forEach((val) => {
  6939. // if (val.projectName == this.checkList[index].select1) {
  6940. // this.checkList[index].tableData = val
  6941. // }
  6942. // })
  6943. } else {
  6944. this.checkList[index].detail.forEach(val => {
  6945. val.quantity = val.minQuantity ? val.minQuantity : val.quantity;
  6946. if (val.alias == this.checkList[index].select) {
  6947. this.checkList[index].tableData = val;
  6948. }
  6949. });
  6950. }
  6951. },
  6952. handleChangeJiayi(listItem, listIndex) {
  6953. if (this.checkList.length) {
  6954. this.checkList.forEach(val => {
  6955. this.$api.letter
  6956. .getDriving({
  6957. schemeId: this.jiayiDialogData.schemeId,
  6958. seatNum: this.carInfo.seatCount
  6959. // companyId: this.totalCompanyList[this.typeDialogIndex].id,
  6960. // type: val.id,
  6961. // productId: this.productId,
  6962. // vehicleType: this.carInfo.cimodelclass,
  6963. // energyType: this.carInfo.energyType,
  6964. // carnature: this.carInfo.carnature
  6965. })
  6966. .then(res => {
  6967. if (res.code == 200) {
  6968. val.detail = res.data;
  6969. this.$forceUpdate();
  6970. }
  6971. });
  6972. });
  6973. }
  6974. },
  6975. propertyTpe(val) {
  6976. this[val].identifyType = this[val].property == "0" ? "10" : "01";
  6977. },
  6978. showDetailJiaYi(item, index, type) {
  6979. this.showDetailtable = [];
  6980. item.programme.drivingList.forEach(val => {
  6981. this.$api.letter
  6982. .getDrivingSon({
  6983. companyId: this.totalCompanyList[index].id,
  6984. projectCode: val.projectCode
  6985. })
  6986. .then(res => {
  6987. if (res.code == 200) {
  6988. this.showDetailtable.push(res.data);
  6989. }
  6990. });
  6991. });
  6992. if (type) {
  6993. this.detailJiaYiTitle = "驾意险详情";
  6994. this.showDetailJiaYiVisible1 = true;
  6995. } else {
  6996. this.detailJiaYiTitle = "查看详情";
  6997. this.showDetailJiaYiVisible = true;
  6998. }
  6999. this.typeDialogData = item.programme;
  7000. this.typeDialogData.shangyeList = [
  7001. ...item.programme.kinds.main,
  7002. ...item.programme.kinds.additional,
  7003. ...item.programme.kinds.service
  7004. ];
  7005. },
  7006. // 添加驾意险
  7007. addJiaYi(item) {
  7008. this.jiayiDialogData = item.programme99;
  7009. this.addYiwaiDialogVisible = true;
  7010. },
  7011. handleCloseAddYiwai() {
  7012. this.jiayiDialogData = {};
  7013. this.checkList = [];
  7014. this.addYiwaiDialogVisible = false;
  7015. },
  7016. // 调整险种
  7017. // 确定险种
  7018. subTypeDialog() {
  7019. // this.totalCompanyList[this.typeDialogIndex].zxProgramme = {}
  7020. // this.totalCompanyList[reslistindex].zxProgramme
  7021. let main = [];
  7022. let additional = [];
  7023. let service = [];
  7024. this.typeDialogData.kinds.forEach((val, index) => {
  7025. if (val.checked) {
  7026. if (val.grouping == "main") {
  7027. main.push(val);
  7028. }
  7029. if (val.grouping == "additional") {
  7030. additional.push(val);
  7031. }
  7032. if (val.grouping == "service") {
  7033. service.push(val);
  7034. }
  7035. }
  7036. });
  7037. this.totalCompanyList[this.typeDialogIndex].zxProgramme.kinds = {
  7038. main,
  7039. additional,
  7040. service
  7041. };
  7042. this.totalCompanyList[this.typeDialogIndex].programme.kinds = {
  7043. main,
  7044. additional,
  7045. service
  7046. };
  7047. this.handleAddYiWai();
  7048. this.handleCloseType();
  7049. },
  7050. showTypeDialog(item, index) {
  7051. item.programme99.kinds.map(item => {
  7052. const itemamtList = item.amtList.map(val => {
  7053. return val.label;
  7054. });
  7055. if (!itemamtList.includes("不投保")) {
  7056. item.checked = true;
  7057. item.Required = true;
  7058. item.amount = item.amtList.length ? item.amtList[0].value : item.max;
  7059. }
  7060. return item;
  7061. });
  7062. this.typeDialogData = item.programme99;
  7063. this.jiayiDialogData = item.programme99;
  7064. this.typeDialogVisible = true;
  7065. },
  7066. handleCloseType() {
  7067. this.typeDialogVisible = false;
  7068. this.typeDialogData = [];
  7069. this.jiayiDialogData = {};
  7070. this.checkList = [];
  7071. },
  7072. //清空保单图片
  7073. removePhoto(file, fileList, type) {
  7074. this.policyNumberForm[type] = [];
  7075. },
  7076. editingWay(paramsEdit) {
  7077. // console.log(paramsEdit)
  7078. if (paramsEdit) {
  7079. var _this = this;
  7080. this.jqchecked = false;
  7081. this.tbczcarShow = false;
  7082. this.bbtbcarShow = false;
  7083. this.bbczcarShow = false;
  7084. const {
  7085. carinfo,
  7086. ownerinfo,
  7087. applyinfo,
  7088. insureinfo,
  7089. quoteno,
  7090. orderno
  7091. } = paramsEdit;
  7092. this.editorInfo = { ...paramsEdit };
  7093. // this.vehicleAndVesselTaxForm = { ...paramsEdit.vehicleAndVesselTax };
  7094. // console.log(paramsEdit.jqstartdate, 6666);
  7095. if (paramsEdit.jqstartdate) {
  7096. if (paramsEdit.jqstartdate.split(" ")[1] == "00:00:00") {
  7097. this.immediatelyValue = false;
  7098. } else {
  7099. this.immediatelyValue = true;
  7100. }
  7101. } else {
  7102. this.immediatelyValue = true;
  7103. }
  7104. _this.carInfo = carinfo;
  7105. if (_this.carInfo.carnature == "8A") {
  7106. _this.carInfo.carnature = "02";
  7107. _this.carInfo.vehicleUse = "05";
  7108. } else {
  7109. _this.carInfo.carnature;
  7110. _this.carInfo.vehicleUse;
  7111. }
  7112. _this.ownerInfo = ownerinfo;
  7113. _this.policyHolderInfo = applyinfo;
  7114. _this.insuredPersonInfo = insureinfo;
  7115. _this.quoteno = quoteno;
  7116. _this.orderno = orderno;
  7117. _this.productId = paramsEdit.productid;
  7118. _this.tbczcarShow = applyinfo.owner;
  7119. _this.bbczcarShow = insureinfo.owner;
  7120. _this.kindList = paramsEdit.king;
  7121. _this.bbtbcarShow = insureinfo.insuranceHolder;
  7122. _this.ownerInfo.age = _this.ownerInfo.age
  7123. ? getAgeByIdCard(_this.ownerInfo.identifyNumber)
  7124. : "";
  7125. _this.policyHolderInfo.age = _this.policyHolderInfo.age
  7126. ? getAgeByIdCard(_this.policyHolderInfo.identifyNumber)
  7127. : "";
  7128. _this.insuredPersonInfo.age = _this.policyHolderInfo.age
  7129. ? getAgeByIdCard(_this.insuredPersonInfo.identifyNumber)
  7130. : "";
  7131. _this.ownerInfo.property = _this.ownerInfo.property
  7132. ? _this.ownerInfo.property
  7133. : "1";
  7134. _this.policyHolderInfo.property = _this.policyHolderInfo.property
  7135. ? _this.policyHolderInfo.property
  7136. : "1";
  7137. _this.insuredPersonInfo.property = _this.insuredPersonInfo.property
  7138. ? _this.insuredPersonInfo.property
  7139. : "1";
  7140. if (paramsEdit.carinfo.transferFlag) {
  7141. this.transferDateShow = true;
  7142. } else {
  7143. this.transferDateShow = false;
  7144. this.carInfo.transferDate = ''
  7145. }
  7146. paramsEdit.risk.map(ele => {
  7147. if (ele.riskCode == "0507") {
  7148. _this.jqchecked = true;
  7149. this.protocolJudge("0507", true);
  7150. _this.riskList.push({
  7151. riskCode: "0507"
  7152. });
  7153. // _this.jqstartDate = ele.startDate;
  7154. // _this.jqendDate = ele.endDate;
  7155. // this.jqstartDate = this.$route.query.data.jqstartdate
  7156. // this.jqendDate = this.$route.query.data.jqenddate
  7157. _this.jqstartDate = this.transformTime1();
  7158. _this.jqendDate = this.oneYearPast1(this.jqstartDate);
  7159. } else if (ele.riskCode == "0510") {
  7160. _this.sychecked = true;
  7161. this.protocolJudge("0510", true);
  7162. _this.riskList.push({
  7163. riskCode: "0510"
  7164. });
  7165. // _this.systartDate = ele.startDate;
  7166. // _this.syendDate = ele.endDate;
  7167. if (new Date(ele.startDate).getTime() > new Date().getTime()) {
  7168. _this.systartDate = ele.startDate;
  7169. _this.syendDate = ele.endDate;
  7170. } else {
  7171. _this.systartDate = this.transformTime1();
  7172. _this.syendDate = this.oneYearPast1(this.systartDate);
  7173. }
  7174. _this.insureList.map(eleA => {
  7175. paramsEdit.king.map(eleB => {
  7176. if (eleA.kindCode == eleB.kindCode) {
  7177. switch (eleB.kindCode) {
  7178. case "D4":
  7179. case "SY_FJ_YBW2":
  7180. eleA.amount = JSON.stringify(eleB.unitAmount);
  7181. break;
  7182. case "MJ1":
  7183. case "MJ2":
  7184. case "MJ3":
  7185. case "MJ4":
  7186. eleA.amount = eleB.deductibleRate;
  7187. case "A":
  7188. eleA.amount = JSON.stringify(eleB.amount);
  7189. this.protocolJudge("A", true);
  7190. break;
  7191. default:
  7192. eleA.amount = JSON.stringify(eleB.amount);
  7193. }
  7194. }
  7195. });
  7196. });
  7197. }
  7198. });
  7199. // this.HistoryList = this.paramsEdit.insAreaCompanyList;
  7200. let params = {
  7201. orderNo: paramsEdit.orderno,
  7202. orderStatus: ""
  7203. };
  7204. this.$api.letter.queryQuoteHistory(params).then(res => {
  7205. res.data.forEach(item => {
  7206. if (item.accidentInfo) {
  7207. item.accidentInfo.constructor === Object
  7208. ? [item.accidentInfo]
  7209. : item.accidentInfo;
  7210. }
  7211. });
  7212. this.HistoryList = res.data;
  7213. });
  7214. //--获取影像信息--
  7215. _this.imageEcho(this.quoteno);
  7216. // this.$refs.imageDialog.imageEcho(this.quoteno)
  7217. // this.commpanyList()
  7218. //--显示影像按钮--
  7219. _this.imageUploadShow = true;
  7220. this.$forceUpdate();
  7221. _this.obtainProtocol(paramsEdit);
  7222. } else {
  7223. this.jqstartDate = this.transformTime1();
  7224. this.jqendDate = this.oneYearPast1(this.jqstartDate);
  7225. this.systartDate = this.transformTime1();
  7226. this.syendDate = this.oneYearPast1(this.systartDate);
  7227. }
  7228. },
  7229. handleRemove1(file, imageIdList, imgList) {
  7230. this[imageIdList].map((ele, index) => {
  7231. if (file.imageId === ele.imageId) {
  7232. this[imageIdList].splice(index, 1);
  7233. }
  7234. return ele;
  7235. });
  7236. if (file.imageId) {
  7237. this[imgList].map((ele, index) => {
  7238. if (file.imageId === ele.imageId) {
  7239. this[imgList].splice(index, 1);
  7240. }
  7241. return ele;
  7242. });
  7243. } else {
  7244. this[imgList].map((ele, index) => {
  7245. if (file.uid === ele.uid) {
  7246. this[imgList].splice(index, 1);
  7247. }
  7248. return ele;
  7249. });
  7250. }
  7251. },
  7252. uploadinformation() {
  7253. // //上传图片
  7254. const mergedArray = [
  7255. ...this.imageList1,
  7256. ...this.imageList2,
  7257. ...this.imageList3,
  7258. ...this.imageList4,
  7259. ...this.imageList5,
  7260. ...this.imageList6
  7261. ];
  7262. let imageparam = {
  7263. imageList: mergedArray,
  7264. quoteNo: this.quoteno
  7265. };
  7266. this.$api.letter.uploadImages(imageparam).then(responses => {
  7267. if (responses.code == "200") {
  7268. this.imageEcho(this.quoteno);
  7269. this.$message({ message: responses.msg, type: "success" });
  7270. } else {
  7271. this.$message({ message: responses.msg, type: "error" });
  7272. }
  7273. });
  7274. this.imageUploaddialogVisible = false;
  7275. },
  7276. repairinformation() {
  7277. // //上传图片
  7278. const mergedArray = [
  7279. ...this.imageList1,
  7280. ...this.imageList2,
  7281. ...this.imageList3,
  7282. ...this.imageList4,
  7283. ...this.imageList5,
  7284. ...this.imageList6
  7285. ];
  7286. let imageparam = {
  7287. imageList: mergedArray,
  7288. companyId: this.companyId
  7289. };
  7290. this.$api.letter.additionalInformation(imageparam).then(responses => {
  7291. if (responses.code == "200") {
  7292. this.imageUploaddialogVisible = false;
  7293. this.$message({ message: responses.msg, type: "success" });
  7294. } else {
  7295. this.$message({ message: responses.msg, type: "error" });
  7296. }
  7297. });
  7298. },
  7299. //手机号复制粘贴处理
  7300. handlePaste(e, mobileKey) {
  7301. e.preventDefault(); //阻止默认行为
  7302. const clipboardData = e.clipboardData || window.clipboardData; //获取剪切板内容
  7303. let pastedText = clipboardData.getData("text").replace(/\s+/g, ""); //获取纯文本并处理空格
  7304. // 截取前11个字符,以确保不会超过手机号长度限制
  7305. pastedText = pastedText.substring(0, 11);
  7306. // 使用Vue.nextTick确保更新发生在DOM更新之后
  7307. this.$nextTick(() => {
  7308. this[mobileKey].mobile = pastedText;
  7309. });
  7310. },
  7311. // licenseNoFun(data){
  7312. // if(data && this.carInfo.enginedesc){
  7313. // this.obtainProtocol()
  7314. // }
  7315. // },
  7316. // enginedescFun(data){
  7317. // if(data && this.carInfo.licenseNo){
  7318. // this.obtainProtocol()
  7319. // }
  7320. // },
  7321. packageChange(val) {
  7322. let arr = this.packageOptions.find(ele => ele.id == val).kind;
  7323. if (arr.length > 0) {
  7324. this.insureList.map(eleA => {
  7325. arr.map(eleB => {
  7326. if (eleA.kindCode == eleB.kindCode) {
  7327. switch (eleB.kindCode) {
  7328. case "D4":
  7329. case "SY_FJ_YBW2":
  7330. eleA.amount = JSON.stringify(eleB.unitAmount);
  7331. break;
  7332. case "MJ1":
  7333. case "MJ2":
  7334. case "MJ3":
  7335. case "MJ4":
  7336. eleA.amount = eleB.deductibleRate;
  7337. break;
  7338. case "TY2":
  7339. case "TY3":
  7340. case "TY4":
  7341. eleA.amount = eleB.serviceTimes;
  7342. break;
  7343. default:
  7344. eleA.amount = JSON.stringify(eleB.amount);
  7345. }
  7346. }
  7347. });
  7348. });
  7349. } else {
  7350. this.insureList.map(eleA => {
  7351. eleA.amount = "0";
  7352. });
  7353. }
  7354. },
  7355. capType(val) {
  7356. if (val == "0") {
  7357. return "success";
  7358. }
  7359. if (val == "1") {
  7360. return "warning";
  7361. }
  7362. if (val == "2" || val == "3" || val == "4") {
  7363. return "danger";
  7364. }
  7365. },
  7366. handleCheckAllChange(ele) {
  7367. this.totalCompanyList.forEach((val, index) => {
  7368. ele ? (val.checked = true) : (val.checked = false);
  7369. // this.initchange(ele, val.id, val.cnName, index);
  7370. });
  7371. },
  7372. retractFun() {
  7373. this.isRetract = this.isRetract == false ? true : false;
  7374. },
  7375. //中煤意外险调整份数事件
  7376. ZMhandleChange(val) {
  7377. if (!val) {
  7378. this.$refs.ZmMultipleTable[0].clearSelection(); //清除
  7379. }
  7380. },
  7381. //中煤意外险选中对应意外险方案
  7382. // ZMHandleSelectionChange(val) {
  7383. // // if(val.length > 0&& val[0].quantity==undefined){
  7384. // // this.$message({ message: "请先填写投保份数再勾选!", type: "error", });
  7385. // // this.$refs.ZmMultipleTable[0].clearSelection(); //清除
  7386. // // return false;
  7387. // // }
  7388. // if (val.length > 1) {
  7389. // this.$refs.ZmMultipleTable[0].clearSelection(); //清除
  7390. // this.$refs.ZmMultipleTable[0].toggleRowSelection(val.pop()); //pop:最后一个
  7391. // } else {
  7392. // this.zhongmeiaccidentalDrivingVo = val[0]; //multipleSelection:当前选择的数组
  7393. // }
  7394. // },
  7395. //中煤意外险选中对应产品带出方案明细
  7396. zhongmeiInsuranceChange(index) {
  7397. //每次选中产品,清空之前选中的数据
  7398. this.zhongmeitemplateSelection = index;
  7399. this.zhongmeiaccidentalDrivingVo = {};
  7400. this.zhongmeiInsuranceDataTable = [];
  7401. let data = this.zhongmeiInsuranceData.find(
  7402. val => val.projectCode == index
  7403. );
  7404. //把返回的方案明细放入展示数据对象中
  7405. this.accidentFormZM = Object.assign(this.accidentFormZM, data);
  7406. this.accidentFormZM.quantity = "1";
  7407. if (data && data.son) {
  7408. this.accidentPremiumZM = data.sumPremium;
  7409. this.zhongmeiInsuranceDataTable = data.son;
  7410. }
  7411. },
  7412. // 截图粘贴
  7413. copybjd() {
  7414. let that = this;
  7415. html2Canvas(document.getElementById("pdfContentsDiv"), {
  7416. allowTaint: true,
  7417. taintTest: false
  7418. }).then(function (canvas) {
  7419. let base64Data = "";
  7420. // let blob = null
  7421. base64Data = canvas.toDataURL("image/png", 1);
  7422. const date = new Date();
  7423. const saveInfo = {
  7424. download: date.getTime() + `.png`,
  7425. href: base64Data
  7426. };
  7427. const element = document.createElement("a");
  7428. element.style.display = "none";
  7429. for (const key in saveInfo) {
  7430. element.setAttribute(key, saveInfo[key]);
  7431. }
  7432. document.body.appendChild(element);
  7433. element.click();
  7434. setTimeout(() => {
  7435. document.body.removeChild(element);
  7436. }, 300);
  7437. // var format = 'image/png'
  7438. // //将Base64图片编码转换成blob
  7439. // var base64 = base64Data
  7440. // var code = window.atob(base64.split(',')[1])
  7441. // var aBuffer = new window.ArrayBuffer(code.length)
  7442. // var uBuffer = new window.Uint8Array(aBuffer)
  7443. // for (var i = 0; i < code.length; i++) {
  7444. // uBuffer[i] = code.charCodeAt(i) & 0xff
  7445. // }
  7446. // try {
  7447. // blob = new Blob([uBuffer], { type: format })
  7448. // } catch (e) {
  7449. // window.BlobBuilder =
  7450. // window.BlobBuilder ||
  7451. // window.WebKitBlobBuilder ||
  7452. // window.MozBlobBuilder ||
  7453. // window.MSBlobBuilder
  7454. // if (e.name == 'TypeError' && window.BlobBuilder) {
  7455. // var bb = new window.BlobBuilder()
  7456. // bb.append(uBuffer.buffer)
  7457. // blob = bb.getBlob('image/png')
  7458. // } else if (e.name == 'InvalidStateError') {
  7459. // blob = new Blob([aBuffer], { type: format })
  7460. // }
  7461. // }
  7462. // const clipboardItemInput = new ClipboardItem({
  7463. // 'image/png': blob,
  7464. // })
  7465. // that.$copyText({
  7466. // 'image/png': blob,
  7467. // }).then(
  7468. //   function(e) {
  7469. //     console.log("copy arguments e:", e);
  7470. //     alert("复制成功!");
  7471. //   },
  7472. //   function(e) {
  7473. //     console.log("copy arguments e:", e);
  7474. //     alert("复制失败!");
  7475. //   }
  7476. //   ),
  7477. // navigator.clipboard.write([clipboardItemInput])
  7478. // that.$message({
  7479. // message: '已截图并复制到粘贴板!',
  7480. // type: 'success'
  7481. // });
  7482. });
  7483. },
  7484. // 即时起保
  7485. immediatelyChange(e) {
  7486. if (e) {
  7487. this.immediatelyValue = true;
  7488. const date = new Date();
  7489. date.setHours(date.getHours() + 2);
  7490. date.setMinutes(0);
  7491. date.setSeconds(0);
  7492. this.jqstartDate = date;
  7493. this.jqendDate = this.oneYearPast1(date);
  7494. } else {
  7495. this.immediatelyValue = false;
  7496. this.jqstartDate = this.transformTime1();
  7497. this.jqendDate = this.oneYearPast1(this.jqstartDate);
  7498. }
  7499. },
  7500. // 使用性质方法
  7501. natureFun() {
  7502. if (this.carInfo.carnature == "01") {
  7503. this.carInfo.vehicleUse = "";
  7504. }
  7505. },
  7506. // 点击同步报价后的时间
  7507. syncData(item) {
  7508. this.jqstartDate = item.startDateJq ? item.startDateJq : this.jqstartDate;
  7509. this.jqendDate = item.endDateJq ? item.endDateJq : this.endDateJq;
  7510. this.systartDate = item.startDateSy ? item.startDateSy : this.systartDate;
  7511. this.syendDate = item.endDateSy ? item.endDateSy : this.syendDate;
  7512. },
  7513. //纳税类型事件
  7514. taxRelifFlagChange(val) {
  7515. if (val == 4) {
  7516. citydata.rawCitiesData.map(val => {
  7517. this.provinceSelect.push({
  7518. name: val.name,
  7519. code: val.code
  7520. });
  7521. return val;
  7522. });
  7523. }
  7524. },
  7525. //身份证前六位识别地区
  7526. // getAreaByCode(code) {
  7527. // let list = regionData;
  7528. // let provinceCode = code.substring(0, 2);
  7529. // let cityCode = code.substring(0, 4);
  7530. // let areaCode = code.substring(0, 6);
  7531. // // 获取省份信息
  7532. // let province = list.filter(function (item) {
  7533. // return item.value === provinceCode;
  7534. // });
  7535. // // 获取城市信息
  7536. // let city = province[0].children.filter(function (item) {
  7537. // return item.value === cityCode;
  7538. // });
  7539. // if (city.length > 0) {
  7540. // // 获取区/县信息
  7541. // let area = city[0].children.filter(function (item) {
  7542. // return item.value === areaCode;
  7543. // });
  7544. // return province[0].label + city[0].label + area[0].label;
  7545. // }
  7546. // },
  7547. //--数据字典 begin --
  7548. getDicType(type) {
  7549. this.$api.insCompany.dicType(type).then(res => {
  7550. if (res.code == 200) {
  7551. if (type == "insOrderStatus") {
  7552. let data = JSON.parse(JSON.stringify(res.data.ddList));
  7553. data.unshift({
  7554. dictTag: "全部",
  7555. dictValue: "888"
  7556. });
  7557. this[type + "options"] = data;
  7558. } else {
  7559. this[type + "options"] = res.data.ddList;
  7560. }
  7561. }
  7562. });
  7563. },
  7564. //身份证失去焦点
  7565. identifyblur(info) {
  7566. // console.log(getAgeByIdCard(this[info].identifyNumber))
  7567. this[info].age =
  7568. typeof getAgeByIdCard(this[info].identifyNumber) == "number"
  7569. ? getAgeByIdCard(this[info].identifyNumber)
  7570. : "";
  7571. this[info].gender = getGenderByIdCard(this[info].identifyNumber);
  7572. },
  7573. //车主信息选择性别
  7574. genderChange(e) {
  7575. if (this.tbczcarShow) {
  7576. this.policyHolderInfo.gender = e;
  7577. } else if (this.bbczcarShow) {
  7578. this.insuredPersonInfo.gender = e;
  7579. }
  7580. },
  7581. //省市区
  7582. areahandleChange(event, info) {
  7583. if (event[0] != null && event[1] != null && event[2] != null) {
  7584. this[info].province = event[0];
  7585. this[info].provinceName = this.getSelectedNames(event)[0];
  7586. this[info].city = event[1];
  7587. this[info].cityName = this.getSelectedNames(event)[1];
  7588. this[info].county = event[2];
  7589. this[info].countyName = this.getSelectedNames(event)[2];
  7590. }
  7591. },
  7592. getSelectedNames(codes) {
  7593. const names = [];
  7594. const findNames = (options, codes) => {
  7595. options.forEach(option => {
  7596. if (codes.includes(option.code)) {
  7597. names.push(option.name);
  7598. if (option.sub) {
  7599. findNames(option.sub, codes);
  7600. }
  7601. }
  7602. });
  7603. };
  7604. findNames(this.areaOption, codes);
  7605. return names;
  7606. },
  7607. iconfftter(icon) {
  7608. return CommonUtil.getDataName({
  7609. dataList: this.global.insCompanyList,
  7610. value: "name",
  7611. label: "icon",
  7612. data: icon
  7613. });
  7614. },
  7615. disabledDate(time) {
  7616. let datetime = this.carInfo.registerDate;
  7617. return time.getTime() < new Date(datetime).getTime() - 8.64e7;
  7618. },
  7619. onScroll() {
  7620. // 变量scrollTop是滚动条滚动时,滚动条上端距离顶部的距离
  7621. var scrollTop =
  7622. document.documentElement.scrollTop || document.body.scrollTop;
  7623. // 变量windowHeight是可视区的高度
  7624. var windowHeight =
  7625. document.documentElement.clientHeight || document.body.clientHeight;
  7626. // 变量scrollHeight是滚动条的总高度(当前可滚动的页面的总高度)
  7627. var scrollHeight =
  7628. document.documentElement.scrollHeight || document.body.scrollHeight;
  7629. // 滚动条到底部
  7630. if (Math.ceil(scrollTop + windowHeight) >= scrollHeight) {
  7631. this.isBottom = true;
  7632. } else {
  7633. this.isBottom = false;
  7634. }
  7635. },
  7636. pinganInsuranceChange(index, index1, val) {
  7637. if (!index) {
  7638. return;
  7639. }
  7640. this.accidentFormPA[index1].pingantemplateSelection = index;
  7641. this.accidentFormPA[index1].projectName = index;
  7642. val.map(val1 => {
  7643. if (val1.projectName == index) {
  7644. val1.son.forEach(val3 => {
  7645. val3.quantity = "1";
  7646. });
  7647. this.accidentFormPA[index1].pinganInsuranceDataTable = val1.son;
  7648. this.accidentFormPA[index1].projectCode = val1.projectCode;
  7649. }
  7650. });
  7651. // this.accidentFormPA[index1].projectCode=this.pinganInsuranceData.find(val1=>{
  7652. // // val1.map(
  7653. // // (val) => val.projectName == index
  7654. // // ).projectCode
  7655. // }
  7656. // )
  7657. // this.accidentFormPA[index1].pinganInsuranceDataTable = this.pinganInsuranceData.find(
  7658. // (val) => val.projectName == index
  7659. // ).son;
  7660. },
  7661. taikangInsuranceChange(index) {
  7662. if (index) {
  7663. this.TkDrivingChange(
  7664. this.taikangaccidentDataList.find(val => val.projectCode == index)
  7665. );
  7666. }
  7667. if (!index) {
  7668. return;
  7669. }
  7670. this.taikangtemplateSelection = index;
  7671. this.accidentFormTk = Object.assign(
  7672. this.accidentFormTk,
  7673. this.taikangaccidentDataList.find(val => val.projectCode == index)
  7674. );
  7675. this.taikangaccidentDataList
  7676. .find(val => val.projectCode == index)
  7677. .son.forEach(item => {
  7678. item.sumAmount =
  7679. Number(item.amount) * Number(this.accidentFormTk.seatNum);
  7680. });
  7681. this.taikangInsuranceDataTable = this.taikangaccidentDataList.find(
  7682. val => val.projectCode == index
  7683. ).son;
  7684. this.accidentPremiumTk = this.accidentFormTk.premium;
  7685. },
  7686. anshengInsuranceChange(index) {
  7687. this.anshengtemplateSelection = index;
  7688. let data = this.anshengInsuranceData.find(
  7689. val => val.projectCode == index
  7690. );
  7691. this.anshengaccidentalDrivingVo.parentName = data.projectName;
  7692. this.anshengaccidentalDrivingVo.parentCode = data.projectCode;
  7693. this.anshengInsuranceDataTable = [];
  7694. this.anshengInsuranceDataTable = data.children;
  7695. this.anshengInsuranceDataTable.forEach(e => (e.quantity = "1"));
  7696. },
  7697. hengbangInsuranceChange(index) {
  7698. this.hengbangInsuranceDataTable = this.hengbangInsuranceData.find(
  7699. val => val.projectCode == index
  7700. ).son;
  7701. this.hengbangtemplateSelection = index;
  7702. if (this.hengbangInsuranceDataTable.length) {
  7703. this.hengbangaccidentalDrivingVo = this.hengbangInsuranceData.find(
  7704. val => val.projectCode == index
  7705. );
  7706. }
  7707. },
  7708. taipingyangInsuranceChange(index) {
  7709. this.taipingyangInsuranceDataTable = this.taipingyangInsuranceData.find(
  7710. val => val.projectCode == index
  7711. ).son;
  7712. this.taipingyangtemplateSelection = index;
  7713. if (this.taipingyangInsuranceDataTable.length) {
  7714. this.taipingyangaccidentalDrivingVo = this.taipingyangInsuranceData.find(
  7715. val => val.projectCode == index
  7716. );
  7717. }
  7718. },
  7719. huanongInsuranceChange(index) {
  7720. this.huanongInsuranceDataTable = this.huanongInsuranceData.find(
  7721. val => val.projectCode == index
  7722. ).son;
  7723. this.accidentFormHN.accidentType = index;
  7724. this.huanongaccidentalDrivingVo = Object.assign(
  7725. this.huanongInsuranceData.find(val => val.projectCode == index),
  7726. this.accidentFormHN
  7727. );
  7728. },
  7729. taipingInsuranceChange(index) {
  7730. this.taipingtemplateSelection = index;
  7731. this.taipingInsuranceDataTable = this.taipingInsuranceData.find(
  7732. val => val.projectCode == index
  7733. ).son;
  7734. if (
  7735. this.taipingInsuranceDataTable &&
  7736. this.taipingInsuranceDataTable.length
  7737. ) {
  7738. this.taipingaccidentalDrivingVo = this.taipingInsuranceData.find(
  7739. val => val.projectCode == index
  7740. );
  7741. }
  7742. },
  7743. zijinInsuranceChange(index) {
  7744. this.zijintemplateSelection = index;
  7745. this.zijinInsuranceDataTable = [];
  7746. this.$refs.expandTable[0].clearSelection();
  7747. index.forEach(item => {
  7748. this.zijinInsuranceDataTable.push(
  7749. this.ziJinInsuranceData.find(val => val.projectCode == item)
  7750. );
  7751. });
  7752. this.zijinInsuranceDataTable.forEach(item => {
  7753. this.$nextTick(() => {
  7754. this.$refs.expandTable[0].toggleRowSelection(item);
  7755. });
  7756. });
  7757. this.CheckboxChange(this.zijinInsuranceDataTable);
  7758. },
  7759. renshouInsuranceChange(index) {
  7760. // this.renshouInsuranceDataTable = [
  7761. // this.renshouInsuranceData.find(val => val.projectCode == index)
  7762. // ];
  7763. this.renshoutemplateSelection = index;
  7764. this.renshouInsuranceDataTable = this.renshouInsuranceData.find(
  7765. val => val.projectCode == index
  7766. ).son;
  7767. if (index) {
  7768. this.RSDrivingChange(
  7769. this.renshouInsuranceData.find(val => val.projectCode == index)
  7770. );
  7771. }
  7772. },
  7773. async dajiaInsuranceChange(index) {
  7774. this.dajiaaccidentalDrivingVo = {};
  7775. let data = await this.$api.letter.accidentalDrivingInfo(index);
  7776. if (data.code == 200) {
  7777. this.dajiaaccidentalDrivingVo = {
  7778. rideRiskCode: index,
  7779. rideRiskName: this.dajiaInsuranceData.find(val => val.id == index)
  7780. .productName,
  7781. quantity: "1"
  7782. };
  7783. this.dajiaInsuranceDataTable = data.data;
  7784. }
  7785. },
  7786. zhonganInsuranceChange(index) {
  7787. this.zhongantemplateSelection = index;
  7788. this.zhonganInsuranceDataTable = this.zhonganInsuranceData.find(
  7789. val => val.projectCode == index
  7790. ).son;
  7791. if (index) {
  7792. this.ZADrivingChange(
  7793. this.zhonganInsuranceData.find(val => val.projectCode == index)
  7794. );
  7795. }
  7796. },
  7797. // 渤海选择意外险类型
  7798. async bohaiInsuranceChange(index) {
  7799. if (index) {
  7800. this.boHaiaccidentForm.projectCode = index;
  7801. // this.boHaiaccidentForm.projectName = this.dajiaInsuranceData.find(
  7802. // (e) => e.projectCode == index
  7803. // ).projectName;
  7804. this.boHaiaccidentForm.copies = "1";
  7805. this.boHaiaccidentForm.premium = Number(
  7806. this.boHaiaccidentDataList.find(e => e.projectCode == index)
  7807. .sumPremium
  7808. );
  7809. this.bohaiInsuranceDataTable = this.boHaiaccidentDataList.find(
  7810. e => e.projectCode == index
  7811. ).son;
  7812. // let data = await this.$api.letter.productDetailsQueryboHai({
  7813. // projectCode: index,
  7814. // productCode: this.boHaiaccidentDataList.find(
  7815. // (e) => e.packageCode == index
  7816. // ).productCode,
  7817. // agreementId: this.boHaiaccidentForm.agreementId,
  7818. // });
  7819. // if (data.code == 200 && data.data) {
  7820. // this.accidentLoadingbh = false;
  7821. // this.bohaiInsuranceDataTable = data.data;
  7822. // } else {
  7823. // this.$message.error(data.msg);
  7824. // this.bohaiInsuranceDataTable = [];
  7825. // }
  7826. }
  7827. },
  7828. djcxchange(index) {
  7829. if (index) {
  7830. this.dajiaaccidentForm.parentCode = index;
  7831. this.dajiaaccidentForm.quantity = "1";
  7832. this.dajiaaccidentForm.prodCode = "";
  7833. this.dajiaaccidentDataListChild = this.dajiaInsuranceData.find(
  7834. e => e.projectCode == index
  7835. ).children;
  7836. this.dajiaaccidentalDrivingVo.parentName = this.dajiaInsuranceData.find(
  7837. e => e.projectCode == index
  7838. ).projectName;
  7839. this.dajiaaccidentalDrivingVo.parentCode = this.dajiaInsuranceData.find(
  7840. e => e.projectCode == index
  7841. ).projectCode;
  7842. }
  7843. },
  7844. djcxchangeChild(index) {
  7845. if (index) {
  7846. let list = this.dajiaaccidentDataListChild.find(
  7847. val => val.projectCode == index
  7848. );
  7849. this.dajiaaccidentForm = {
  7850. ...this.dajiaaccidentForm,
  7851. prodCode: index,
  7852. projectName: list.projectName,
  7853. sumAmount: Number(list.sumAmount),
  7854. riskCode: list.riskCode,
  7855. sumPremium: Number(list.sumPremium)
  7856. };
  7857. list.productId = list.id;
  7858. this.dajiaInsuranceDataTable = list.son;
  7859. this.dajiaaccidentalDrivingVo = Object.assign({
  7860. ...this.dajiaaccidentalDrivingVo,
  7861. ...list
  7862. });
  7863. } else {
  7864. this.dajiaInsuranceDataTable = [];
  7865. }
  7866. },
  7867. // 国任选择意外险类型
  7868. async grcxchange(index) {
  7869. if (index) {
  7870. this.accidentLoading = true;
  7871. this.guoRenaccidentForm.goodsCode = index;
  7872. this.guoRenaccidentForm.quantity = "1";
  7873. this.guoRenaccidentForm.prodCode = "";
  7874. this.guoRenaccidentDataListChild = this.guoRenaccidentDataList.find(
  7875. e => e.projectCode == index
  7876. ).children;
  7877. this.guoRenaccidentalDrivingVo.parentName = this.guoRenaccidentDataList.find(
  7878. e => e.projectCode == index
  7879. ).projectName;
  7880. this.guoRenaccidentalDrivingVo.parentCode = this.guoRenaccidentDataList.find(
  7881. e => e.projectCode == index
  7882. ).projectCode;
  7883. // let data = await this.$api.letter.syncNonAutoInsGuoren({
  7884. // goodsCode: index,
  7885. // agreementId: this.guoRenaccidentForm.agreementId
  7886. // });
  7887. // if (data.code == 200) {
  7888. // let num = 0;
  7889. // data.data.forEach(item => {
  7890. // num += Number(item.premium);
  7891. // });
  7892. // this.accidentLoading = false;
  7893. // } else {
  7894. // this.accidentLoading = false;
  7895. // this.$message.error(data.msg);
  7896. // this.guoRenaccidentDataListChild = [];
  7897. // }
  7898. }
  7899. },
  7900. // 国任选择意外险子级类型
  7901. async grcxchangeChild(index) {
  7902. let list = this.guoRenaccidentDataListChild.find(
  7903. val => val.projectCode == index
  7904. );
  7905. this.guoRenaccidentForm = {
  7906. ...this.guoRenaccidentForm,
  7907. prodCode: index,
  7908. policyNum: Number(list.sumPremium),
  7909. riskCode: list.riskCode,
  7910. // amount: list.amount,
  7911. sumPremium: Number(list.sumPremium)
  7912. // appnum:Number(list.appnum)
  7913. };
  7914. this.guoRenInsuranceDataTable = list.son;
  7915. this.guoRenaccidentalDrivingVo = Object.assign({
  7916. ...list,
  7917. ...this.guoRenaccidentalDrivingVo
  7918. });
  7919. },
  7920. // 选择意外险类型
  7921. async yongchengInsuranceChange(index) {
  7922. if (!index) {
  7923. return;
  7924. }
  7925. this.yongchengtemplateSelection = index;
  7926. this.accidentForm = Object.assign(
  7927. this.accidentForm,
  7928. this.yongchengaccidentDataList.find(val => val.projectCode == index)
  7929. );
  7930. this.yongchengaccidentDataList
  7931. .find(val => val.projectCode == index)
  7932. .son.forEach(item => {
  7933. item.sumAmount =
  7934. Number(item.amount) * Number(this.accidentForm.seatNum);
  7935. });
  7936. this.yongchengInsuranceDataTable = this.yongchengaccidentDataList.find(
  7937. val => val.projectCode == index
  7938. ).son;
  7939. this.accidentPremium = this.accidentForm.sumPremium;
  7940. // this.accidentForm.fen = "1";
  7941. // let data = await this.$api.letter.ycgainAccidentSchemeList({
  7942. // companyCode: this.accidentForm.companyId,
  7943. // code: index,
  7944. // agreementId: this.accidentForm.agreementId,
  7945. // seatNum: Number(this.carInfo.seatCount)
  7946. // });
  7947. // if (data.code == 200) {
  7948. // let num = 0;
  7949. // data.data.forEach(item => {
  7950. // num += Number(item.premium);
  7951. // });
  7952. // this.accidentPremium = num;
  7953. // this.accidentForm.premium = num;
  7954. // this.accidenttableData = data.data;
  7955. // }
  7956. },
  7957. numberCopieschange(index) {
  7958. this.accidentForm.sumPremium = Number(this.accidentPremium) * index;
  7959. },
  7960. numberCopieschangeTk(index) {
  7961. this.accidentFormTk.sumPremium = Number(this.accidentPremiumTk) * index;
  7962. },
  7963. numberCopieschangePA(index, index1) {
  7964. this.accidentFormPA.premium =
  7965. Number(this.accidentFormPA[index1].accidentPremiumPA) * index;
  7966. },
  7967. numberCopieschangeZM(index) {
  7968. this.accidentFormZM.sumPremium = Number(this.accidentPremiumZM) * index;
  7969. },
  7970. numberCopieschangeGR(index) {
  7971. this.guoRenaccidentForm.sumPremium =
  7972. Number(this.guoRenaccidentForm.policyNum) * index;
  7973. },
  7974. continuousChange(id) {
  7975. this.continuousCompanyList.map(ele => {
  7976. if (ele.id == id) {
  7977. this.attributionform.configure = [];
  7978. ele.configure.map((ele, index) => {
  7979. this.attributionform.configure.push({
  7980. field: ele.field,
  7981. isEdit: ele.isEdit,
  7982. label: ele.label,
  7983. type: ele.type,
  7984. value: ""
  7985. });
  7986. });
  7987. }
  7988. });
  7989. },
  7990. //续保查询
  7991. continuousquery() {
  7992. this.$api.letter.queryRenewal(this.attributionform).then(res => {
  7993. if (res.code == "200") {
  7994. this.carInfo = res.data.carInfo;
  7995. this.carInfo.frameNo = res.data.carInfo.vinNo;
  7996. this.ownerInfo = res.data.ownerInfo;
  7997. this.policyHolderInfo = res.data.policyHolderInfo;
  7998. this.insuredPersonInfo = res.data.insuredPersonInfo;
  7999. res.data.riskList.map(ele => {
  8000. if (ele.riskCode == "0507") {
  8001. this.jqchecked = true;
  8002. this.jqstartDate = ele.startDate;
  8003. this.jqendDate = ele.endDate;
  8004. } else if (ele.riskCode == "0510") {
  8005. this.sychecked = true;
  8006. this.systartDate = ele.startDate;
  8007. this.syendDate = ele.endDate;
  8008. }
  8009. county;
  8010. });
  8011. } else {
  8012. this.$message({
  8013. message: res.msg,
  8014. type: "error",
  8015. duration: 2000
  8016. });
  8017. }
  8018. });
  8019. },
  8020. //永诚转保
  8021. renewalCodeconfirm() {
  8022. this.renewalCodedialogVisible = false;
  8023. this.quote();
  8024. },
  8025. //报价轨迹查询
  8026. RadioHistoryChange(e) {
  8027. let params = {
  8028. orderNo: this.orderno,
  8029. orderStatus: e == 888 ? "" : e
  8030. };
  8031. this.$api.letter.queryQuoteHistory(params).then(res => {
  8032. res.data.forEach(item => {
  8033. if (item.accidentInfo) {
  8034. item.accidentInfo.constructor === Object
  8035. ? [item.accidentInfo]
  8036. : item.accidentInfo;
  8037. }
  8038. });
  8039. this.HistoryList = res.data;
  8040. });
  8041. },
  8042. protocolJudge(val, val1) {
  8043. if (val1) {
  8044. this.totalCompanyList.forEach(e => {
  8045. if (
  8046. e.agreement.find(
  8047. el => el.productsCode && el.productsCode.includes(val)
  8048. )
  8049. ) {
  8050. e.agreement.find(
  8051. el => el.productsCode && el.productsCode.includes(val)
  8052. ).disabled = true;
  8053. }
  8054. });
  8055. } else {
  8056. this.totalCompanyList.forEach(e => {
  8057. if (
  8058. e.agreement.find(
  8059. el => el.productsCode && el.productsCode.includes(val)
  8060. )
  8061. ) {
  8062. e.agreement.find(
  8063. el => el.productsCode && el.productsCode.includes(val)
  8064. ).disabled = false;
  8065. }
  8066. });
  8067. }
  8068. },
  8069. // 回显
  8070. async obtainProtocol(data) {
  8071. let res = {};
  8072. if (this.isLetter == "1") {
  8073. this.getCompanyList(data);
  8074. // res = await this.$api.letter.getAllAgreement();
  8075. }
  8076. if (this.isLetter == "2") {
  8077. setTimeout(() => {
  8078. this.getCompanyList(data);
  8079. }, 500);
  8080. }
  8081. },
  8082. //获取保险公司列表
  8083. // commpanyList() {
  8084. // this.$api.letter.gainAllowQuoteList("").then(res => {
  8085. // res.data.map(ele => {
  8086. // ele["result"] = {};
  8087. // ele["quoteCode"] = 0;
  8088. // ele["checked"] = false;
  8089. // ele["msg"] = "";
  8090. // ele["lastYearMsg"] = "";
  8091. // ele["agreementId"] = "";
  8092. // ele["apiType"] = "";
  8093. // ele["orderstatus"] = 0;
  8094. // ele.coefficient = "";
  8095. // // ele.agreementId = ele.agreement[0].id;
  8096. // ele.apiType = ele.agreement[0].apiType;
  8097. // ele.underwritingDescription =
  8098. // ele.agreement[0].underwritingDescription;
  8099. // });
  8100. // if (this.$route.query.data) {
  8101. // res.data.forEach((val, index) => {
  8102. // this.$route.query.data.insAreaCompanyEditingDtos.forEach(ele => {
  8103. // if (val.namesimple == ele.inscompany) {
  8104. // res.data[index].quoteCode = 200;
  8105. // res.data[index].result = ele;
  8106. // }
  8107. // });
  8108. // });
  8109. // }
  8110. // this.totalCompanyList = res.data;
  8111. // });
  8112. // },
  8113. Payment(id, item) {
  8114. this.carcode(id, item);
  8115. },
  8116. // 现询
  8117. getInquiryNowList(agreementId, riskList, kindList) {
  8118. let productId = "";
  8119. this.inquiryNowList = [];
  8120. this.$api.letter
  8121. .getProductId({
  8122. riskList: riskList,
  8123. kindList: kindList
  8124. })
  8125. .then(res => {
  8126. if (res.code == 200) {
  8127. productId = res.data;
  8128. this.$api.letter
  8129. .getInquiryNowFee({
  8130. agreementId: agreementId,
  8131. productId: productId
  8132. })
  8133. .then(resp => {
  8134. if (resp.code == 200) {
  8135. this.inquiryNowList = resp.data;
  8136. }
  8137. });
  8138. }
  8139. });
  8140. },
  8141. inquiryNowListChange(data) {
  8142. if (data) {
  8143. this.nowCostsId = data; // 现询id
  8144. this.isInquiryNowDisable = true;
  8145. this.inquiryNowList.forEach(val => {
  8146. if (val.id == data) {
  8147. this.policyNumberForm.jqCostsProportion = val.jqCostsProportion;
  8148. this.policyNumberForm.noCostsProportion = val.noCostsProportion;
  8149. this.policyNumberForm.syCostsProportion = val.syCostsProportion;
  8150. }
  8151. });
  8152. } else {
  8153. this.nowCostsId = "";
  8154. this.isInquiryNowDisable = false;
  8155. this.policyNumberForm.jqCostsProportion = "";
  8156. this.policyNumberForm.noCostsProportion = "";
  8157. this.policyNumberForm.syCostsProportion = "";
  8158. }
  8159. },
  8160. //选择协议 val:协议id row:协议列表 index:下标 item:保险公司数据集合
  8161. agreementChange(val, row, index, item) {
  8162. this.getInquiryNowList(val, this.riskList, this.kindList);
  8163. this.kindListFun(index);
  8164. let obj = {};
  8165. obj = row.find(item => {
  8166. return item;
  8167. });
  8168. let selectRow = row.find(item => {
  8169. return item.id == val;
  8170. });
  8171. let info = row.find(ele => ele.id == val);
  8172. this.totalCompanyList[index].apiType = info.apiType;
  8173. this.totalCompanyList[index].underwritingDescription = val
  8174. ? selectRow.underwritingDescription
  8175. : ""; //重新赋值修改选中协议承保描述
  8176. if (this.$route.path != "/task/external/externalOrders")
  8177. if (item.namesimple == "平安财险") {
  8178. this.$api.letter
  8179. .getPingAnDrivingInsuranceRule({
  8180. cimodelclass: this.carInfo.cimodelclass,
  8181. isUseCombine: "Y",
  8182. tonNumber: this.carInfo.limitLoad,
  8183. ownAttribute: "03",
  8184. useAttribute: this.carInfo.carnature,
  8185. ruleSeatNum: Number(this.carInfo.seatCount),
  8186. agreementId: item.agreementId
  8187. })
  8188. .then(res => {
  8189. this.pinganInsuranceData = res.data;
  8190. });
  8191. return;
  8192. }
  8193. this.$api.letter
  8194. .getDrivingInsuranceRule({
  8195. companyCode: item.id,
  8196. agreementId: item.agreementId,
  8197. seatNum:
  8198. item.namesimple == "永诚财险" || item.namesimple == "中煤财险"
  8199. ? Number(this.carInfo.seatCount)
  8200. : "",
  8201. ruleUseNature: this.carInfo.carnature,
  8202. ruleSeatNum: Number(this.carInfo.seatCount),
  8203. risk: this.riskList,
  8204. kind: this.kindList,
  8205. ruleThirdPartyInsurance: this.insureList[1].amount
  8206. })
  8207. .then(res => {
  8208. if (res.code == 200) {
  8209. this.nonVehicle(res.data, item.cnName);
  8210. switch (item.namesimple) {
  8211. case "永诚财险":
  8212. this.yongchengaccidentDataList = res.data;
  8213. break;
  8214. case "国任财险":
  8215. this.guoRenaccidentDataList = res.data;
  8216. break;
  8217. case "渤海财险":
  8218. this.boHaiaccidentDataList = res.data;
  8219. break;
  8220. case "中煤财险":
  8221. this[item.cnName + +"InsuranceData"] = res.data;
  8222. break;
  8223. case "紫金财险":
  8224. let data = res.data;
  8225. data.map(ele => {
  8226. ele.quantity = 1;
  8227. return ele;
  8228. });
  8229. this.ziJinInsuranceData = data;
  8230. break;
  8231. case "大家财险":
  8232. this.dajiaInsuranceData = res.data;
  8233. break;
  8234. case "泰康财险":
  8235. this.taikangaccidentDataList = res.data;
  8236. break;
  8237. case "中国人寿":
  8238. case "人保财险":
  8239. case "恒邦财险":
  8240. case "太平财险":
  8241. case "安盛天平":
  8242. case "华农财险":
  8243. case "华安财险":
  8244. case "泰山财险":
  8245. case "众安平安":
  8246. case "太平洋财险":
  8247. res.data.map(ele => {
  8248. ele.quantity = 1;
  8249. return ele;
  8250. });
  8251. this[item.cnName + "InsuranceData"] = res.data;
  8252. break;
  8253. }
  8254. } else {
  8255. this.$message.error(res.msg);
  8256. }
  8257. });
  8258. // switch (item.namesimple) {
  8259. // case "永诚财险":
  8260. // this.accidentForm.agreementId = item.agreementId;
  8261. // this.$api.letter
  8262. // .ycgainAccidentList({
  8263. // companyCode: item.id,
  8264. // agreementId: item.agreementId,
  8265. // seatNum: Number(this.carInfo.seatCount)
  8266. // })
  8267. // .then(res => {
  8268. // if (res.code == 200) {
  8269. // this.accidentDataList = res.data;
  8270. // }
  8271. // });
  8272. // break;
  8273. // case "国任财险":
  8274. // this.guoRenaccidentForm.agreementId = item.agreementId;
  8275. // this.$api.letter
  8276. // .syncNonAutoInsGuoren({ agreementId: item.agreementId })
  8277. // .then(res => {
  8278. // if (res.code == 200) {
  8279. // this.guoRenaccidentDataList = res.data;
  8280. // } else {
  8281. // this.guoRenaccidentDataList = [];
  8282. // }
  8283. // });
  8284. // break;
  8285. // case "渤海财险":
  8286. // this.boHaiaccidentForm.agreementId = item.agreementId;
  8287. // let policyHolderInfo = this.tbczcarShow
  8288. // ? this.ownerInfo
  8289. // : this.policyHolderInfo;
  8290. // let productQueryVo = {
  8291. // agreementId: item.agreementId,
  8292. // carnature: this.carInfo.carnature,
  8293. // cimodelclass: this.carInfo.cimodelclass,
  8294. // exhaustScale: this.carInfo.enginedesc,
  8295. // limitLoad: this.carInfo.limitLoad,
  8296. // powerScale: this.carInfo.powerScale,
  8297. // seatCount: this.carInfo.seatCount,
  8298. // vehicleUse: this.carInfo.vehicleUse,
  8299. // policyHolderInfo,
  8300. // insuredPersonInfo: this.bbczcarShow
  8301. // ? this.ownerInfo
  8302. // : this.bbtbcarShow
  8303. // ? policyHolderInfo
  8304. // : this.insuredPersonInfo
  8305. // };
  8306. // this.$api.letter.productQueryboHai(productQueryVo).then(res => {
  8307. // if (res.code == 200) {
  8308. // this.boHaiaccidentDataList = res.data;
  8309. // } else {
  8310. // this.boHaiaccidentDataList = [];
  8311. // }
  8312. // });
  8313. // break;
  8314. // case "紫金财险":
  8315. // this.$api.letter
  8316. // .zijinqueryVehicleProducts({
  8317. // agreementId: val,
  8318. // seatCount: Number(this.carInfo.seatCount)
  8319. // })
  8320. // .then(res => {
  8321. // if (res.code == 200) {
  8322. // let data = res.data;
  8323. // data.map(ele => {
  8324. // ele.quantity = 1;
  8325. // return ele;
  8326. // });
  8327. // this.ziJinInsuranceData = data;
  8328. // } else {
  8329. // this.$message.error(res.msg);
  8330. // }
  8331. // });
  8332. // break;
  8333. // case "中国人寿":
  8334. // case "恒邦财险":
  8335. // case "太平财险":
  8336. // case "安盛天平":
  8337. // case "华农财险":
  8338. // case "众安平安":
  8339. // this.$api.letter.pythongetDriving({ agreementId: val }).then(res => {
  8340. // if (res.code == 200) {
  8341. // let data = res.data;
  8342. // data.map(ele => {
  8343. // ele.quantity = 1;
  8344. // return ele;
  8345. // });
  8346. // this[item.cnName + "InsuranceData"] = data;
  8347. // }
  8348. // });
  8349. // break;
  8350. // case "大家财险":
  8351. // this.$api.letter
  8352. // .dajiagetDriving({ agreementId: item.agreementId })
  8353. // .then(res => {
  8354. // if (res.code == 200) {
  8355. // this.dajiaInsuranceData = res.data;
  8356. // }
  8357. // });
  8358. // break;
  8359. // default:
  8360. // break;
  8361. // }
  8362. },
  8363. nonVehicle(data, type) {
  8364. if (data.some(e => e.isDefault)) {
  8365. if (type == "guoRen") {
  8366. this.grcxchange(data.find(ele => ele.isDefault).projectCode);
  8367. this.grcxchangeChild(
  8368. data.find(ele => ele.isDefault).children.find(ele => ele.isDefault)
  8369. .projectCode
  8370. );
  8371. }
  8372. if (type == "ansheng") {
  8373. this.anshengInsuranceChange(
  8374. data.find(ele => ele.isDefault).projectCode
  8375. );
  8376. this.ASDrivingRadio(
  8377. data.find(ele => ele.isDefault).children.find(ele => ele.isDefault)
  8378. );
  8379. }
  8380. if (type == "zijin") {
  8381. this[type + "InsuranceChange"]([
  8382. data.find(ele => ele.isDefault).projectCode
  8383. ]);
  8384. } else {
  8385. this[type + "InsuranceChange"](
  8386. data.find(ele => ele.isDefault).projectCode
  8387. );
  8388. }
  8389. }
  8390. },
  8391. CheckboxChange(select, row) {
  8392. this.accidentalDrivingVo = [];
  8393. select.map(val => {
  8394. this.accidentalDrivingVo.push(val);
  8395. return val;
  8396. });
  8397. },
  8398. //人寿驾意险选择
  8399. RSDrivingChange(row) {
  8400. this.renshouaccidentalDrivingVo = row;
  8401. },
  8402. TkDrivingChange(row) {
  8403. this.taikangaccidentalDrivingVo = row;
  8404. },
  8405. //众安驾意险选择
  8406. ZADrivingChange(row) {
  8407. this.zhonganaccidentalDrivingVo = row;
  8408. },
  8409. RSDrivingRadio(row) {
  8410. this.RSDrivingChange(row);
  8411. },
  8412. //安盛驾意险选择
  8413. ASDrivingRadio(row) {
  8414. this.anshengInsurancetype = row.projectCode;
  8415. this.anshengaccidentalDrivingVo = Object.assign({
  8416. ...this.anshengaccidentalDrivingVo,
  8417. ...row
  8418. });
  8419. // this.anshengaccidentalDrivingVo.projectCode = row.projectCode;
  8420. // this.anshengaccidentalDrivingVo.projectName = row.projectName;
  8421. },
  8422. pinganDetail(row, agreementId) {
  8423. this.pinganDataDetailVisible = false;
  8424. this.$api.letter
  8425. .productDetailsQuery({
  8426. agreementId,
  8427. packageCode: row.code,
  8428. productCode: row.productCode,
  8429. version: row.version
  8430. })
  8431. .then(res => {
  8432. if (res.code == 200) {
  8433. this.pinganDataDetailVisible = true;
  8434. this.pinganDataDetail = res.data;
  8435. } else {
  8436. this.$message.err(res.msg);
  8437. }
  8438. });
  8439. },
  8440. sameItem(array1, array2) {
  8441. return array2.find(item => {
  8442. array1.some(innerItem => innerItem.code === item.code);
  8443. });
  8444. },
  8445. PADrivingCheckbox(event, row, agreementId, index) {
  8446. // const checkedVal = this.accidentFormPA[index].pinganInsuranceDataTable.find(x => x.cameraId === item.cameraId)
  8447. const isSelected = event.some(
  8448. selectedRow => selectedRow.code == row.code
  8449. );
  8450. let isIndex = null;
  8451. let amount = null;
  8452. event.find((selectedRow, selectedIndex) => {
  8453. if (selectedRow.code == row.code) {
  8454. isIndex = selectedIndex;
  8455. }
  8456. });
  8457. if (event.length > 0 && isSelected) {
  8458. this.$api.letter
  8459. .productDetailsQuery({
  8460. agreementId,
  8461. packageCode: row.code,
  8462. productCode: row.productCode,
  8463. version: row.version
  8464. })
  8465. .then(res => {
  8466. if (res.code == 200) {
  8467. res.data.forEach(ele => {
  8468. amount += Number(ele.unitInsuredAmount)
  8469. ? Number(ele.unitInsuredAmount)
  8470. : 0;
  8471. });
  8472. event[isIndex].amount = amount;
  8473. } else {
  8474. this.$message.err(res.msg);
  8475. }
  8476. });
  8477. }
  8478. event.forEach((res, indexOf) => {
  8479. res.projectName = this.accidentFormPA[index].projectName;
  8480. res.projectCode = this.accidentFormPA[index].projectCode;
  8481. res.combineProductType = this.accidentFormPA[index].combineProductType;
  8482. });
  8483. this.pinganaccidentalDrivingVo[index] = event;
  8484. },
  8485. //平安驾意险选择
  8486. PADrivingRadio(row, agreementId, index) {
  8487. // this.accidentPremiumPA = row.premium;
  8488. this.accidentFormPA[index].quantity = "1";
  8489. this.accidentFormPA[index].sellListSize = Number(row.sellListSize);
  8490. this.accidentFormPA[index].premium = row.premium;
  8491. this.accidentFormPA[index].combineProductType = row.combineProductType;
  8492. this.accidentFormPA[index].accidentPremiumPA = row.premium;
  8493. this.accidentFormPA[index].pinganInsurancetype = row.code;
  8494. this.$api.letter
  8495. .productDetailsQuery({
  8496. agreementId,
  8497. packageCode: row.code,
  8498. productCode: row.productCode,
  8499. version: row.version
  8500. })
  8501. .then(res => {
  8502. if (res.code == 200) {
  8503. this.accidentFormPA[index].amount = 0;
  8504. res.data.forEach(e => {
  8505. this.accidentFormPA[index].amount += Number(e.unitInsuredAmount)
  8506. ? Number(e.unitInsuredAmount)
  8507. : 0;
  8508. });
  8509. this.pinganaccidentalDrivingVo[index] = {
  8510. ...row,
  8511. ...this.accidentFormPA[index]
  8512. };
  8513. } else {
  8514. this.$message.err(res.msg);
  8515. this.pinganaccidentalDrivingVo[index] = {
  8516. ...row,
  8517. ...this.accidentFormPA[index]
  8518. };
  8519. }
  8520. });
  8521. },
  8522. ZADrivingRadio(row) {
  8523. this.ZADrivingChange(row);
  8524. },
  8525. // 获取特约
  8526. getClauseData(id, index) {
  8527. this.ownerInfo.owner = this.tbczcarShow;
  8528. this.insuredPersonInfo.owner = this.bbczcarShow;
  8529. this.insuredPersonInfo.insuranceHolder = this.bbtbcarShow;
  8530. let data = {
  8531. userId: this.userId,
  8532. quoteno: this.quoteno,
  8533. orderNo: this.orderno,
  8534. carInfo: this.carInfo,
  8535. insuredPersonInfo: this.insuredPersonInfo,
  8536. ownerInfo: this.ownerInfo,
  8537. policyHolderInfo: this.policyHolderInfo,
  8538. kindList: this.kindList,
  8539. riskList: this.riskList,
  8540. isExternal: "1",
  8541. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  8542. };
  8543. // this.typeDialogIndex = index
  8544. // this.zijinengageListData = [];
  8545. // this.contributingLoading = true;
  8546. // this.contributingState = true;
  8547. // this.hbsubmitdialogVisible = true;
  8548. this.$api.letter
  8549. .getClauseByCompanyId({
  8550. productCode: this.productId,
  8551. companyId: this.totalCompanyList[index].id,
  8552. quoteInfoVo: data
  8553. })
  8554. .then(res => {
  8555. this.contributingLoading = false;
  8556. if (res.data) {
  8557. // res.data.forEach((val) => {
  8558. // val.clauseName = val.clauses;
  8559. // val.clauseContent = val.clausesContext;
  8560. // });
  8561. this.zijinengageListData = res.data;
  8562. }
  8563. });
  8564. },
  8565. // 国任特约选择
  8566. contributingGuoRen(id, index) {
  8567. this.typeDialogIndex = index;
  8568. this.zijinengageListData = [];
  8569. this.contributingLoading = true;
  8570. this.contributingState = true;
  8571. this.hbsubmitdialogVisible = true;
  8572. this.getClauseData(id, index);
  8573. return;
  8574. this.$api.letter.guorenqueryClauseData({ agreementId: id }).then(res => {
  8575. this.contributingLoading = false;
  8576. if (res.data) {
  8577. res.data.forEach(val => {
  8578. val.clauseName = val.clauses;
  8579. val.clauseContent = val.clausesContext;
  8580. });
  8581. this.zijinengageListData = res.data;
  8582. }
  8583. });
  8584. },
  8585. //紫金特约选择
  8586. zijinengageChange(select, row) {
  8587. this.zijinengageList = [];
  8588. if (!this.totalCompanyList[this.typeDialogIndex].zxProgramme) {
  8589. this.totalCompanyList[this.typeDialogIndex].zxProgramme = {
  8590. // 自选方案详情
  8591. description: "",
  8592. drivingList: [],
  8593. jqx: {
  8594. name: "交通事故强制责任险"
  8595. },
  8596. kinds: {
  8597. additional: [],
  8598. main: [],
  8599. service: []
  8600. },
  8601. teyue: []
  8602. };
  8603. }
  8604. // this.totalCompanyList[this.typeDialogIndex].programme = {}
  8605. this.totalCompanyList[this.typeDialogIndex].programme.teyue = [];
  8606. select.map(val => {
  8607. this.zijinengageList.push({
  8608. clauseCode: val.clauseCode,
  8609. clauseName: val.clauseName,
  8610. clauses: val.clauseContent,
  8611. riskCode: val.riskCode
  8612. });
  8613. this.totalCompanyList[
  8614. this.typeDialogIndex
  8615. ].zxProgramme.teyue = this.zijinengageList;
  8616. this.totalCompanyList[
  8617. this.typeDialogIndex
  8618. ].programme.teyue = this.zijinengageList;
  8619. return val;
  8620. });
  8621. },
  8622. zijinengageChangeAll(row) {
  8623. if (row) {
  8624. this.zijinengageChange(row);
  8625. } else {
  8626. this.$refs.expandTablePro.clearSelection();
  8627. this.zijinengageList = [];
  8628. }
  8629. },
  8630. //紫金特约内容编辑
  8631. zijincellDblclick(row, column) {
  8632. this.currentCell = row.index + "," + column.index;
  8633. if (
  8634. !["clauseContent"].includes(column.property) &&
  8635. row.modifyFlag == "1"
  8636. ) {
  8637. setTimeout(() => {
  8638. this.$refs[row.index + "," + column.index].focus();
  8639. });
  8640. }
  8641. },
  8642. tableCellClassName({ row, column, rowIndex, columnIndex }) {
  8643. row.index = rowIndex;
  8644. column.index = columnIndex;
  8645. },
  8646. hideInput() {
  8647. this.currentCell = null;
  8648. },
  8649. updateArray(arr, value, condition) {
  8650. if (condition) {
  8651. arr.push(value);
  8652. } else {
  8653. const index = arr.indexOf(value);
  8654. if (index !== -1) {
  8655. arr.splice(index, 1);
  8656. }
  8657. }
  8658. if (arr.length == 0) {
  8659. this.totalCompanyList.forEach(e => {
  8660. e.disabled = false;
  8661. });
  8662. } else {
  8663. this.totalCompanyList.forEach(e => {
  8664. e.disabled = e.id == arr[0] ? false : true;
  8665. });
  8666. }
  8667. },
  8668. //勾选保险公司
  8669. initchange(e, code, name, index) {
  8670. if (e) {
  8671. this.totalCompanyList[index].checked = e;
  8672. this.getCompanyProgramme(e, code, name, index);
  8673. this.kindListFun();
  8674. let ins = this.totalCompanyList[index].namesimple;
  8675. this.totalCompanyList[
  8676. index
  8677. ].underwritingDescription = this.totalCompanyList[
  8678. index
  8679. ].agreement[0].underwritingDescription;
  8680. if (this.$route.path != "/task/external/externalOrders")
  8681. this.$api.letter
  8682. .getDrivingInsuranceRule({
  8683. agreementId: this.totalCompanyList[index].agreement[0].id,
  8684. seatNum:
  8685. ins == "永诚财险" || ins == "中煤财险"
  8686. ? Number(this.carInfo.seatCount)
  8687. : "",
  8688. ruleUseNature: this.carInfo.carnature,
  8689. ruleSeatNum: Number(this.carInfo.seatCount),
  8690. risk: this.riskList,
  8691. kind: this.kindList,
  8692. ruleThirdPartyInsurance: this.insureList[1].amount,
  8693. cimodelclass: ins == "平安财险" ? this.carInfo.cimodelclass : "",
  8694. isUseCombine: ins == "平安财险" ? "Y" : "",
  8695. tonNumber: ins == "平安财险" ? this.carInfo.limitLoad : "",
  8696. ownAttribute: ins == "平安财险" ? "03" : "",
  8697. useAttribute: ins == "平安财险" ? this.carInfo.carnature : ""
  8698. })
  8699. .then(res => {
  8700. if (res.code == 200) {
  8701. switch (ins) {
  8702. case "永诚财险":
  8703. this.yongchengaccidentDataList = res.data;
  8704. break;
  8705. case "国任财险":
  8706. this.guoRenaccidentDataList = res.data;
  8707. break;
  8708. case "渤海财险":
  8709. this.boHaiaccidentDataList = res.data;
  8710. break;
  8711. case "中煤财险":
  8712. case "平安财险":
  8713. this[name + "InsuranceData"] = res.data;
  8714. break;
  8715. case "紫金财险":
  8716. let data = res.data;
  8717. data.map(ele => {
  8718. ele.quantity = 1;
  8719. return ele;
  8720. });
  8721. this.ziJinInsuranceData = data;
  8722. break;
  8723. case "大家财险":
  8724. this.dajiaInsuranceData = res.data;
  8725. break;
  8726. case "中国人寿":
  8727. case "人保财险":
  8728. case "恒邦财险":
  8729. case "太平财险":
  8730. case "华农财险":
  8731. case "华安财险":
  8732. case "泰山财险":
  8733. case "安盛天平":
  8734. case "众安平安":
  8735. case "太平洋财险":
  8736. res.data.map(ele => {
  8737. ele.quantity = 1;
  8738. return ele;
  8739. });
  8740. this[name + "InsuranceData"] = res.data;
  8741. break;
  8742. }
  8743. this.nonVehicle(res.data, name);
  8744. } else {
  8745. this.$message.error(res.msg);
  8746. }
  8747. });
  8748. // switch (ins) {
  8749. // case "永诚财险":
  8750. // this.accidentForm.agreementId = this.totalCompanyList[
  8751. // index
  8752. // ].agreement[0].id;
  8753. // this.$api.letter
  8754. // .ycgainAccidentList({
  8755. // companyCode: this.totalCompanyList[index].id,
  8756. // agreementId: this.totalCompanyList[index].agreement[0].id,
  8757. // seatNum: Number(this.carInfo.seatCount)
  8758. // })
  8759. // .then(res => {
  8760. // if (res.code == 200) {
  8761. // this.accidentDataList = res.data;
  8762. // } else {
  8763. // this.accidentDataList = [];
  8764. // }
  8765. // });
  8766. // break;
  8767. // case "国任财险":
  8768. // this.guoRenaccidentForm.agreementId = this.totalCompanyList[
  8769. // index
  8770. // ].agreement[0].id;
  8771. // this.$api.letter
  8772. // .syncNonAutoInsGuoren({
  8773. // goodsCode: "",
  8774. // agreementId: this.totalCompanyList[index].agreement[0].id
  8775. // })
  8776. // .then(res => {
  8777. // if (res.code == 200) {
  8778. // this.guoRenaccidentDataList = res.data;
  8779. // } else {
  8780. // this.guoRenaccidentDataList = [];
  8781. // }
  8782. // });
  8783. // break;
  8784. // case "紫金财险":
  8785. // this.$api.letter
  8786. // .zijinqueryVehicleProducts({
  8787. // agreementId: this.totalCompanyList[index].agreement[0].id,
  8788. // seatCount: Number(this.carInfo.seatCount)
  8789. // })
  8790. // .then(res => {
  8791. // if (res.code == 200) {
  8792. // let data = res.data;
  8793. // data.map(ele => {
  8794. // ele.quantity = 1;
  8795. // return ele;
  8796. // });
  8797. // this.ziJinInsuranceData = data;
  8798. // } else {
  8799. // this.$message.error(res.msg);
  8800. // }
  8801. // });
  8802. // break;
  8803. // case "安盛天平":
  8804. // this.$api.letter
  8805. // .pythongetDriving({
  8806. // agreementId: this.totalCompanyList[index].agreement[0].id
  8807. // })
  8808. // .then(res => {
  8809. // if (res.code == 200) {
  8810. // let data = res.data;
  8811. // data.map(ele => {
  8812. // ele.departmentProductList.map(val => {
  8813. // val.quantity = 1;
  8814. // });
  8815. // return ele;
  8816. // });
  8817. // this[name + "InsuranceData"] = data;
  8818. // } else {
  8819. // this.$message.error(res.msg);
  8820. // }
  8821. // });
  8822. // break;
  8823. // case "中国人寿":
  8824. // case "恒邦财险":
  8825. // case "太平财险":
  8826. // case "华农财险":
  8827. // case "众安平安":
  8828. // this.$api.letter
  8829. // .pythongetDriving({
  8830. // agreementId: this.totalCompanyList[index].agreement[0].id
  8831. // })
  8832. // .then(res => {
  8833. // if (res.code == 200) {
  8834. // let data = res.data;
  8835. // data.map(ele => {
  8836. // ele.quantity = 1;
  8837. // return ele;
  8838. // });
  8839. // this[name + "InsuranceData"] = data;
  8840. // } else {
  8841. // this.$message.error(res.msg);
  8842. // }
  8843. // });
  8844. // break;
  8845. // case "中煤财险":
  8846. // this.accidentFormZM.agreementId = this.totalCompanyList[
  8847. // index
  8848. // ].agreement[0].id;
  8849. // this.$api.letter
  8850. // .zmGetDrivingPro({
  8851. // agreementId: this.totalCompanyList[index].agreement[0].id,
  8852. // seatNum: this.carInfo.seatCount
  8853. // })
  8854. // .then(res => {
  8855. // if (res.code == 200) {
  8856. // let data = res.data;
  8857. // this[name + "InsuranceData"] = data;
  8858. // } else {
  8859. // this.$message.error(res.msg);
  8860. // }
  8861. // });
  8862. // break;
  8863. // case "大家财险":
  8864. // this.$api.letter
  8865. // .dajiagetDriving({
  8866. // agreementId: this.totalCompanyList[index].agreement[0].id
  8867. // })
  8868. // .then(res => {
  8869. // if (res.code == 200) {
  8870. // this.dajiaInsuranceData = res.data;
  8871. // } else {
  8872. // this.$message.error(res.msg);
  8873. // }
  8874. // });
  8875. // break;
  8876. // default:
  8877. // break;
  8878. // }
  8879. } else {
  8880. }
  8881. },
  8882. clearAccidentForm() {
  8883. this.yongchengInsuranceDataTable = [];
  8884. this.accidentForm = {};
  8885. this.accidentForm.fen = 1;
  8886. this.accidentForm.premium = 0;
  8887. },
  8888. clearAccidentFormPA(index) {
  8889. // this.accidentFormPA[index]={
  8890. // quantity: 1,
  8891. // premium: 0,
  8892. // pingantemplateSelection:'',
  8893. // pinganInsuranceDataTable:[],
  8894. // pinganInsurancetype:'',
  8895. // }
  8896. this.pinganaccidentalDrivingVo[index] = {};
  8897. },
  8898. clearAccidentFormTk() {
  8899. this.taikangaccidentalDrivingVo = {};
  8900. this.taikangInsuranceDataTable = [];
  8901. this.accidentFormTk = {};
  8902. this.accidentFormTk.fen = 1;
  8903. this.accidentFormTk.premium = 0;
  8904. },
  8905. clearAccidentFormGr() {
  8906. (this.guoRenInsuranceDataTable = []),
  8907. (this.guoRenaccidentDataListChild = []);
  8908. this.guoRenaccidentForm = {
  8909. quantity: "1",
  8910. premium: 0
  8911. };
  8912. },
  8913. clearAccidentFormBh() {
  8914. this.bohaiInsuranceDataTable = [];
  8915. this.boHaiaccidentForm = {
  8916. copies: "1",
  8917. premium: 0
  8918. };
  8919. // this.bohaiaccidentalDrivingVo={};
  8920. },
  8921. clearAccidentFormHN() {
  8922. this.huanongaccidentalDrivingVo = {};
  8923. },
  8924. clearAccidentFormHB() {
  8925. this.hengbangaccidentalDrivingVo = {};
  8926. },
  8927. clearAccidentFormTP() {
  8928. this.taipingaccidentalDrivingVo = {};
  8929. },
  8930. clearAccidentFormDJ() {
  8931. this.dajiaaccidentalDrivingVo = {};
  8932. },
  8933. clearAccidentFormZM() {
  8934. this.zhongmeiaccidentalDrivingVo = {};
  8935. },
  8936. clearAccidentFormZJ() {
  8937. this.accidentalDrivingVo = [];
  8938. },
  8939. clearAccidentFormZA() {
  8940. this.zhonganaccidentalDrivingVo = {};
  8941. },
  8942. clearAccidentFormRS() {
  8943. this.renshouaccidentalDrivingVo = {};
  8944. },
  8945. clearAccidentFormAS() {
  8946. this.anshengaccidentalDrivingVo = {};
  8947. },
  8948. //身份证有效期长期
  8949. insureLongterm(e) {
  8950. this[e].identifyValidEndDate = "9999-12-31";
  8951. },
  8952. //较强起保日期事件
  8953. jqChange(e) {
  8954. this.jqendDate = this.oneYearPast1(e);
  8955. },
  8956. //商业起保日期事件
  8957. syChange(e) {
  8958. this.syendDate = this.oneYearPast1(e);
  8959. },
  8960. // //查看更多
  8961. // selectMore(leg) {
  8962. // this.insureMore = false;
  8963. // this.insureLength = leg;
  8964. // },
  8965. // //收起
  8966. // packup() {
  8967. // this.insureMore = true;
  8968. // this.insureLength = 5;
  8969. // },
  8970. //险别选择框事件
  8971. insureitemChange(e, item) {
  8972. // if (e != 0) {
  8973. // this.sychecked = true;
  8974. // this.systartDate = this.transformTime1();
  8975. // this.syendDate = this.oneYearPast1(this.systartDate);
  8976. // this.kindList.push(item)
  8977. // this.obtainProtocol();
  8978. // } else {
  8979. // let list = this.kindList.filter(item => item.kindCode !== item.kindCode);
  8980. // this.kindList = list;
  8981. // this.obtainProtocol();
  8982. // }
  8983. },
  8984. all() {
  8985. this.$refs.detailsDialog.setBackupVisible(true);
  8986. },
  8987. base64ToBlob(code) {
  8988. code = code.replace(/[\n\r]/g, "");
  8989. // atob() 方法用于解码使用 base-64 编码的字符串。
  8990. const raw = window.atob(code);
  8991. const rawLength = raw.length;
  8992. const uInt8Array = new Uint8Array(rawLength);
  8993. for (let i = 0; i < rawLength; ++i) {
  8994. uInt8Array[i] = raw.charCodeAt(i);
  8995. }
  8996. return new Blob([uInt8Array], { type: "application/pdf" });
  8997. },
  8998. viewPdf(content) {
  8999. if (!content) {
  9000. this.$message.error("暂无文件");
  9001. return;
  9002. }
  9003. const blob = this.base64ToBlob(content);
  9004. this.href = blob;
  9005. if (window.navigator && window.navigator.msSaveOrOpenBlob) {
  9006. window.navigator.msSaveOrOpenBlob(blob);
  9007. } else {
  9008. const fileURL = URL.createObjectURL(blob);
  9009. window.open(fileURL);
  9010. }
  9011. },
  9012. //二维码生成插件
  9013. creatQrCode(text) {
  9014. // 查找并删除旧的二维码DOM元素
  9015. let element = document.getElementById("qrcode");
  9016. while (element.firstChild) {
  9017. element.removeChild(element.firstChild);
  9018. }
  9019. // 创建新的QRCode实例
  9020. this.qrcode = new QrCode("qrcode", {
  9021. text: text,
  9022. width: this.qrcodeWidth,
  9023. height: this.qrcodeHeight,
  9024. colorDark: "#000000",
  9025. colorLight: "#ffffff",
  9026. correctLevel: QrCode.CorrectLevel.H
  9027. });
  9028. },
  9029. //人工核保
  9030. underwriting(id) {
  9031. let param = {
  9032. companyId: id
  9033. };
  9034. this.$api.letter.manualUnderwriting(param).then(res => {
  9035. if (res.code == "200") {
  9036. this.Payment(id);
  9037. }
  9038. });
  9039. },
  9040. signature(companyId) {
  9041. this.$api.letter.pingAnsignEleApply({ companyId }).then(res => {
  9042. if (res.code == 200 && res.data) {
  9043. this.resultMessageImg = process.env.BASE_URL + res.data.resultMessage;
  9044. this.signaturedialogVisible = true;
  9045. // 查找并删除旧的二维码DOM元素
  9046. // let element = document.getElementById("signaturecode");
  9047. // while (element.firstChild) {
  9048. // element.removeChild(element.firstChild);
  9049. // }
  9050. // this.signaturecode = new QRCode("signaturecode", {
  9051. // text: resultMessage,
  9052. // width: 180,
  9053. // height: 180,
  9054. // colorDark: "#000000",
  9055. // colorLight: "#ffffff",
  9056. // correctLevel: QRCode.CorrectLevel.H,
  9057. // });
  9058. // this.signaturedialogVisible = true;
  9059. // this.$api.letter.pingAnsignEleApply({companyId}).then((res) => {
  9060. // if (res.code == 200 && res.data) {
  9061. // // 查找并删除旧的二维码DOM元素
  9062. // let element = document.getElementById("signaturecode");
  9063. // while (element.firstChild) {
  9064. // element.removeChild(element.firstChild);
  9065. // }
  9066. // this.signaturecode = new QRCode("signaturecode", {
  9067. // text: res.data.resultMessage,
  9068. // width: 180,
  9069. // height: 180,
  9070. // colorDark: "#000000",
  9071. // colorLight: "#ffffff",
  9072. // correctLevel: QRCode.CorrectLevel.H,
  9073. // });
  9074. } else {
  9075. this.$message({
  9076. message: res.msg || "暂无数据!",
  9077. type: "warning"
  9078. });
  9079. }
  9080. });
  9081. },
  9082. jqcheckedChange(e) {
  9083. if (e) {
  9084. this.jqstartDate = this.transformTime1();
  9085. this.jqendDate = this.oneYearPast1(this.jqstartDate);
  9086. this.riskList.push({
  9087. riskCode: "0507"
  9088. });
  9089. // this.obtainProtocol();
  9090. } else {
  9091. this.jqstartDate = "";
  9092. this.jqendDate = "";
  9093. let list = this.riskList.filter(item => item.riskCode !== "0507");
  9094. this.riskList = list;
  9095. // this.obtainProtocol();
  9096. }
  9097. },
  9098. sycheckedChange(e) {
  9099. if (e) {
  9100. this.systartDate = this.transformTime1();
  9101. this.syendDate = this.oneYearPast1(this.systartDate);
  9102. this.riskList.push({
  9103. riskCode: "0510"
  9104. });
  9105. // this.obtainProtocol();
  9106. } else {
  9107. this.systartDate = "";
  9108. this.syendDate = "";
  9109. let list = this.riskList.filter(item => item.riskCode !== "0510");
  9110. this.riskList = list;
  9111. // this.obtainProtocol();
  9112. }
  9113. },
  9114. //订单生成后保存接口
  9115. preserveOrderStageProcessing(type, btnLoading) {
  9116. // console.log(this.editorInfo);
  9117. // debugger;
  9118. //同车主的选择框
  9119. this[btnLoading] = true;
  9120. if (this.tbczcarShow && this.imageList2.length > 0) {
  9121. //投保人同车主
  9122. this.imageList3 = JSON.parse(JSON.stringify(this.imageList2));
  9123. if (this.imageList3.length == 1) {
  9124. this.imageList3[0].imageType = this.imageList3[0].imageType.includes(
  9125. "C0"
  9126. )
  9127. ? "C03"
  9128. : "D03";
  9129. } else {
  9130. this.imageList3.forEach(e => {
  9131. e.imageType = e.imageType.includes("C0") ? "C03" : "D03";
  9132. });
  9133. }
  9134. }
  9135. if (this.bbczcarShow && this.imageList2.length > 0) {
  9136. //被保人同车主
  9137. this.imageList4 = JSON.parse(JSON.stringify(this.imageList2));
  9138. if (this.imageList4.length == 1) {
  9139. this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  9140. "C0"
  9141. )
  9142. ? "C04"
  9143. : "D04";
  9144. } else {
  9145. this.imageList4.forEach(e => {
  9146. e.imageType = e.imageType.includes("C0") ? "C04" : "D04";
  9147. });
  9148. }
  9149. }
  9150. if (this.bbtbcarShow && this.imageList3.length > 0) {
  9151. //被保人同投保人
  9152. this.imageList4 = JSON.parse(JSON.stringify(this.imageList3));
  9153. if (this.imageList4.length == 1) {
  9154. this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  9155. "C0"
  9156. )
  9157. ? "C04"
  9158. : "D04";
  9159. } else {
  9160. this.imageList4.forEach(e => {
  9161. e.imageType = e.imageType.includes("C0") ? "C04" : "D04";
  9162. });
  9163. }
  9164. }
  9165. //日期长度<10处理
  9166. const formatDate = date => {
  9167. if (date.length < 10) {
  9168. return this.timeformat(date);
  9169. }
  9170. return date;
  9171. };
  9172. if (this.carInfo.registerDate.length < 10) {
  9173. this.carInfo.registerDate = formatDate(this.carInfo.registerDate);
  9174. }
  9175. if (this.carInfo.issueDate.length < 10) {
  9176. this.carInfo.issueDate = formatDate(this.carInfo.issueDate);
  9177. }
  9178. if (
  9179. this.carInfo.transferDate &&
  9180. this.carInfo.transferDate.length < 10 &&
  9181. this.carInfo.transferDate !== ""
  9182. ) {
  9183. this.carInfo.transferDate = formatDate(this.carInfo.transferDate);
  9184. }
  9185. //日期长度<10处理
  9186. //提交身份证/驾驶证 ——————————————————
  9187. this.policyHolderInfo.owner = this.tbczcarShow;
  9188. this.insuredPersonInfo.owner = this.bbczcarShow;
  9189. this.insuredPersonInfo.insuranceHolder = this.bbtbcarShow;
  9190. if (typeof this.ownerInfo.provinceData == "string") {
  9191. this.ownerInfo.provinceData = [];
  9192. }
  9193. if (typeof this.insuredPersonInfo.provinceData == "string") {
  9194. this.insuredPersonInfo.provinceData = [];
  9195. }
  9196. if (typeof this.policyHolderInfo.provinceData == "string") {
  9197. this.policyHolderInfo.provinceData = [];
  9198. }
  9199. if (this.$route.query.data) {
  9200. const mergedArray = [
  9201. ...this.imageList1,
  9202. ...this.imageList2,
  9203. ...this.imageList3,
  9204. ...this.imageList4,
  9205. ...this.imageList5,
  9206. ...this.imageList6
  9207. ];
  9208. if (mergedArray.length > 0) {
  9209. let imageparam = {
  9210. imageList: mergedArray,
  9211. quoteNo: this.$route.query.data.quoteno
  9212. };
  9213. this.$api.letter.uploadImages(imageparam).then(responses => {
  9214. // this.$refs.imageDialog.imageEcho(this.$route.query.data.quoteno)
  9215. this.imageEcho(this.$route.query.data.quoteno); // 获取图片
  9216. });
  9217. }
  9218. this.editorInfo.applyinfo.owner = this.tbczcarShow;
  9219. this.editorInfo.insureinfo.owner = this.bbczcarShow;
  9220. this.editorInfo.insureinfo.insuranceHolder = this.bbtbcarShow;
  9221. let params = {
  9222. orderNo: this.$route.query.data.orderno,
  9223. ...this.policyNumberForm,
  9224. agreementId: this.isLetter3agreementId,
  9225. stageFlag: type,
  9226. jqstartdate: this.jqstartDate,
  9227. jqenddate: this.jqendDate,
  9228. systartdate: this.systartDate,
  9229. syenddate: this.syendDate,
  9230. kind: this.kindList,
  9231. risk: this.riskList,
  9232. kindList: this.kindList,
  9233. riskList: this.riskList,
  9234. carInfo: this.carInfo,
  9235. insuredPersonInfo: this.insuredPersonInfo,
  9236. ownerInfo: this.ownerInfo,
  9237. policyHolderInfo: this.policyHolderInfo,
  9238. isExternal: "1",
  9239. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  9240. };
  9241. // debugger;
  9242. this.$api.letter.updateExternalOrder(params).then(res => {
  9243. if (res.code == "200") {
  9244. this[btnLoading] = false;
  9245. this.$message({
  9246. message: res.msg || "编辑成功",
  9247. type: "success"
  9248. });
  9249. this.add();
  9250. } else {
  9251. this[btnLoading] = false;
  9252. this.$message.error(res.msg);
  9253. }
  9254. });
  9255. } else {
  9256. this.ownerInfo.owner = this.tbczcarShow;
  9257. this.insuredPersonInfo.owner = this.bbczcarShow;
  9258. this.insuredPersonInfo.insuranceHolder = this.bbtbcarShow;
  9259. let param = {
  9260. userId: this.userId,
  9261. quoteno: this.quoteno,
  9262. orderNo: this.orderno,
  9263. carInfo: this.carInfo,
  9264. insuredPersonInfo: this.insuredPersonInfo,
  9265. ownerInfo: this.ownerInfo,
  9266. policyHolderInfo: this.policyHolderInfo,
  9267. kindList: this.kindList,
  9268. riskList: this.riskList,
  9269. isExternal: "1",
  9270. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  9271. };
  9272. this.$api.letter.generateOrder(param).then(res => {
  9273. if (res.code == "200") {
  9274. //上传图片
  9275. const mergedArray = [
  9276. ...this.imageList1,
  9277. ...this.imageList2,
  9278. ...this.imageList3,
  9279. ...this.imageList4,
  9280. ...this.imageList5,
  9281. ...this.imageList6
  9282. ];
  9283. if (mergedArray.length > 0) {
  9284. let imageparam = {
  9285. imageList: mergedArray,
  9286. quoteNo: res.data.quoteno
  9287. };
  9288. this.$api.letter.uploadImages(imageparam).then(responses => {
  9289. this.imageEcho(res.data.quoteno); // 获取图片
  9290. // this.$refs.imageDialog.imageEcho(res.data.quoteno)
  9291. });
  9292. }
  9293. let params1 = {
  9294. orderNo: res.data.orderno,
  9295. ...this.policyNumberForm,
  9296. agreementId: this.isLetter3agreementId,
  9297. stageFlag: type,
  9298. nowCostsId: this.nowCostsId
  9299. };
  9300. // debugger
  9301. this.$api.letter.saveSubOrder(params1).then(res => {
  9302. if (res.code == "200") {
  9303. this[btnLoading] = false;
  9304. this.$message({
  9305. message: res.msg || "录入成功",
  9306. type: "success"
  9307. });
  9308. this.add();
  9309. } else {
  9310. this[btnLoading] = false;
  9311. this.$message.error(res.msg);
  9312. }
  9313. });
  9314. } else {
  9315. this[btnLoading] = false;
  9316. this.$message.error(res.msg);
  9317. }
  9318. });
  9319. }
  9320. // document.getElementById("company").scrollIntoView();
  9321. this.imageUploadShow = true;
  9322. },
  9323. policyHolderInfovalidate() {
  9324. let _this = this;
  9325. // tbczcarShow 同车主
  9326. if (_this.tbczcarShow == true) {
  9327. // 投保人信息 policyHolderInfo
  9328. _this.policyHolderInfo = { ..._this.ownerInfo };
  9329. } else {
  9330. _this.$refs["policyHolderInfo"].validate(valid2 => {
  9331. if (valid2) {
  9332. } else {
  9333. document.getElementById("toubaor").scrollIntoView();
  9334. _this.$message({ message: "请检查投保人信息", type: "warning" });
  9335. }
  9336. });
  9337. }
  9338. this.bbtbcarShowChange();
  9339. this.bbczcarShowChange();
  9340. },
  9341. validateCarCode() {
  9342. this.validateCarCodeShow = true;
  9343. if (this.myQrCode) {
  9344. this.myQrCode.clear();
  9345. }
  9346. this.$nextTick(() => {
  9347. this.myQrCode = new QrCode(this.$refs.myQrcode, {
  9348. // text 需要转二维码的内容 可以是文本也可以是一个链接 是链接会直接跳走
  9349. text: this.vehicleInspectionUrl,
  9350. width: 200,
  9351. height: 200,
  9352. colorDark: "#333", //二维码颜色
  9353. colorLight: "#fff", //二维码背景颜色
  9354. correctLevel: QrCode.CorrectLevel.L //容错率,L/M/H
  9355. });
  9356. });
  9357. },
  9358. //报价
  9359. quote(index) {
  9360. let starttime = new Date(this.carInfo.registerDate);
  9361. let endtime = new Date(this.carInfo.issueDate);
  9362. if (endtime < starttime) {
  9363. this.$message({ message: "发证日期早于初登日期", type: "error" });
  9364. return;
  9365. }
  9366. this.policyHolderInfovalidate();
  9367. this.$refs["carInfo"].validate(valid => {
  9368. if (valid) {
  9369. var _this = this;
  9370. // this.policyHolderInfovalidate()
  9371. if (_this.tbczcarShow == true) {
  9372. _this.policyHolderInfo = { ..._this.ownerInfo };
  9373. }
  9374. _this.$refs["ownerInfo"].validate(valid1 => {
  9375. if (valid1) {
  9376. if (_this.bbczcarShow == true) {
  9377. _this.insuredPersonInfo = { ..._this.ownerInfo };
  9378. }
  9379. if (_this.bbtbcarShow == true) {
  9380. _this.insuredPersonInfo = { ..._this.policyHolderInfo };
  9381. }
  9382. _this.carInfo.vinNo = _this.carInfo.frameNo;
  9383. _this.riskList = []; //险种大类
  9384. _this.kindList = []; //商业险险别
  9385. if (
  9386. (!_this.jqstartDate || !_this.jqendDate) &&
  9387. (!_this.systartDate || !_this.syendDate)
  9388. ) {
  9389. this.$message({ message: "投保日期不能为空", type: "warning" });
  9390. } else {
  9391. if (
  9392. this.totalCompanyList[index].isTaxSource != 1 &&
  9393. this.totalCompanyList[index].agreementId == ""
  9394. ) {
  9395. this.$message.warning("请选择协议");
  9396. return;
  9397. }
  9398. this.calculateLoading = true;
  9399. setInterval(() => {
  9400. this.calculateLoading = false;
  9401. }, 3000);
  9402. _this.totalCompanyList[index].kindList = [];
  9403. let kinds = [
  9404. ..._this.totalCompanyList[index].programme.kinds.main,
  9405. ..._this.totalCompanyList[index].programme.kinds.additional,
  9406. ..._this.totalCompanyList[index].programme.kinds.service
  9407. ];
  9408. kinds.forEach(value => {
  9409. _this.totalCompanyList[index].kindList.push({
  9410. amount: value.amount,
  9411. serviceTimes: value.amount,
  9412. unitAmount: value.amount,
  9413. kindCode: value.kindCode,
  9414. kindName: value.kindName
  9415. });
  9416. });
  9417. if (_this.jqchecked) {
  9418. //交强
  9419. _this.jqstartDate = this.transformTime(_this.jqstartDate);
  9420. _this.jqendDate = this.transformTime(_this.jqendDate);
  9421. _this.riskList.push({
  9422. amount: "200000",
  9423. premium: "0",
  9424. riskCode: "0507",
  9425. endDate: _this.jqendDate,
  9426. startDate: _this.jqstartDate,
  9427. instantFlag: "0"
  9428. });
  9429. }
  9430. if (_this.sychecked) {
  9431. _this.systartDate = this.transformTime(_this.systartDate);
  9432. _this.syendDate = this.transformTime(_this.syendDate);
  9433. //商业
  9434. _this.riskList.push({
  9435. premium: "0",
  9436. riskCode: "0510",
  9437. quotePreceptCode: "",
  9438. quotePreceptName: "",
  9439. endDate: _this.syendDate,
  9440. startDate: _this.systartDate,
  9441. instantFlag: "0"
  9442. });
  9443. // _this.totalCompanyList.forEach((val) => {
  9444. // if (val.checked) {
  9445. // console.log(val.programme, 'programmeeeeeeee')
  9446. // let kinds = [...val.programme.kinds.additional, ...val.programme.kinds.main, ...val.programme.kinds.service]
  9447. // kinds.forEach((value) => {
  9448. // _this.kindList.push({
  9449. // amount: value.amount,
  9450. // kindCode: value.kindCode,
  9451. // kindName: value.kindName
  9452. // })
  9453. // })
  9454. // }
  9455. // })
  9456. _this.insureList.map((ele, index) => {
  9457. // if (
  9458. // ele.amount != "0" &&
  9459. // (ele.kindCode == "D4" || ele.kindCode == "SY_FJ_YBW2")
  9460. // ) {
  9461. // _this.kindList.push({
  9462. // unitAmount: _this.insureList[index].amount,
  9463. // kindCode: _this.insureList[index].kindCode,
  9464. // kindName: _this.insureList[index].kindName,
  9465. // });
  9466. // } else if (
  9467. // ele.amount != "0" &&
  9468. // (ele.kindCode == "MJ1" ||
  9469. // ele.kindCode == "MJ2" ||
  9470. // ele.kindCode == "MJ3" ||
  9471. // ele.kindCode == "MJ4")
  9472. // ) {
  9473. // _this.kindList.push({
  9474. // deductibleRate: _this.insureList[index].amount,
  9475. // kindCode: _this.insureList[index].kindCode,
  9476. // kindName: _this.insureList[index].kindName,
  9477. // });
  9478. // } else if (
  9479. // ele.amount != "0" &&
  9480. // (ele.kindCode == "TY1" ||
  9481. // ele.kindCode == "TY2" ||
  9482. // ele.kindCode == "TY3" ||
  9483. // ele.kindCode == "TY4")
  9484. // ) {
  9485. // _this.kindList.push({
  9486. // serviceTimes: _this.insureList[index].amount,
  9487. // kindCode: _this.insureList[index].kindCode,
  9488. // kindName: _this.insureList[index].kindName,
  9489. // });
  9490. // } else if (ele.amount != "0") {
  9491. // _this.kindList.push({
  9492. // amount: _this.insureList[index].amount,
  9493. // kindCode: _this.insureList[index].kindCode,
  9494. // kindName: _this.insureList[index].kindName,
  9495. // });
  9496. // }
  9497. return ele;
  9498. });
  9499. } else {
  9500. _this.kindList = [];
  9501. }
  9502. // if (_this.orderno) {
  9503. this.OrderStageProcessing(index);
  9504. // } else {
  9505. // _this.$api.letter.getquote().then(res => {
  9506. // _this.quoteno = res.data; //获取报价号
  9507. // this.OrderStageProcessing();
  9508. // });
  9509. // }
  9510. }
  9511. } else {
  9512. document.getElementById("CheZhu").scrollIntoView();
  9513. _this.$message({ message: "请检查人员信息", type: "warning" });
  9514. }
  9515. });
  9516. } else {
  9517. document.getElementById("Car").scrollIntoView();
  9518. this.$message({ message: "请检查车辆信息", type: "warning" });
  9519. return false;
  9520. }
  9521. });
  9522. },
  9523. quote1() {
  9524. let starttime = new Date(this.carInfo.registerDate);
  9525. let endtime = new Date(this.carInfo.issueDate);
  9526. if (endtime < starttime) {
  9527. this.$message({ message: "发证日期早于初登日期", type: "error" });
  9528. return;
  9529. }
  9530. if (
  9531. this.carInfo.licenseNo.length === 8 &&
  9532. this.carInfo.energyType === "0"
  9533. ) {
  9534. this.$message.error("能源类型错误,请重新选择!");
  9535. return;
  9536. }
  9537. this.policyHolderInfovalidate();
  9538. var _this = this;
  9539. this.$refs["carInfo"].validate(valid => {
  9540. if (valid) {
  9541. // this.policyHolderInfovalidate()
  9542. if (_this.tbczcarShow == true) {
  9543. _this.policyHolderInfo = { ..._this.ownerInfo };
  9544. }
  9545. _this.$refs["ownerInfo"].validate(valid1 => {
  9546. if (valid1) {
  9547. if (_this.bbczcarShow == true) {
  9548. _this.insuredPersonInfo = { ..._this.ownerInfo };
  9549. }
  9550. if (_this.bbtbcarShow == true) {
  9551. _this.insuredPersonInfo = { ..._this.policyHolderInfo };
  9552. }
  9553. _this.carInfo.vinNo = _this.carInfo.frameNo;
  9554. _this.riskList = []; //险种大类
  9555. _this.kindList = []; //商业险险别
  9556. if (
  9557. (!_this.jqstartDate || !_this.jqendDate) &&
  9558. (!_this.systartDate || !_this.syendDate)
  9559. ) {
  9560. this.$message({ message: "投保日期不能为空", type: "warning" });
  9561. } else {
  9562. this.calculateLoading = true;
  9563. setInterval(() => {
  9564. this.calculateLoading = false;
  9565. }, 3000);
  9566. try {
  9567. this.totalCompanyList.forEach((val, index) => {
  9568. if (val.checked) {
  9569. val.kindList = [];
  9570. if (!val.programme) {
  9571. // throw Error("没有方案")
  9572. return;
  9573. }
  9574. let kinds = [
  9575. ...val.programme.kinds.main,
  9576. ...val.programme.kinds.additional,
  9577. ...val.programme.kinds.service
  9578. ];
  9579. kinds.forEach(value => {
  9580. this.totalCompanyList[index].kindList.push({
  9581. amount: value.amount,
  9582. serviceTimes: value.amount,
  9583. unitAmount: value.amount,
  9584. kindCode: value.kindCode,
  9585. kindName: value.kindName
  9586. });
  9587. });
  9588. if (val.isTaxSource != 1 && val.agreementId == "") {
  9589. this.$message.warning("请选择协议");
  9590. throw Error("请选择协议");
  9591. }
  9592. }
  9593. });
  9594. } catch (error) {
  9595. return console.log(error);
  9596. }
  9597. if (_this.jqchecked) {
  9598. //交强
  9599. _this.jqstartDate = this.transformTime(_this.jqstartDate);
  9600. _this.jqendDate = this.transformTime(_this.jqendDate);
  9601. _this.riskList.push({
  9602. amount: "200000",
  9603. premium: "0",
  9604. riskCode: "0507",
  9605. endDate: _this.jqendDate,
  9606. startDate: _this.jqstartDate,
  9607. instantFlag: "0"
  9608. });
  9609. }
  9610. if (_this.sychecked) {
  9611. _this.systartDate = this.transformTime(_this.systartDate);
  9612. _this.syendDate = this.transformTime(_this.syendDate);
  9613. //商业
  9614. _this.riskList.push({
  9615. premium: "0",
  9616. riskCode: "0510",
  9617. quotePreceptCode: "",
  9618. quotePreceptName: "",
  9619. endDate: _this.syendDate,
  9620. startDate: _this.systartDate,
  9621. instantFlag: "0"
  9622. });
  9623. } else {
  9624. _this.kindList = [];
  9625. }
  9626. // if (_this.orderno) {
  9627. this.OrderStageProcessing();
  9628. // } else {
  9629. // _this.$api.letter.getquote().then(res => {
  9630. // _this.quoteno = res.data; //获取报价号
  9631. // this.OrderStageProcessing();
  9632. // });
  9633. // }
  9634. }
  9635. } else {
  9636. document.getElementById("CheZhu").scrollIntoView();
  9637. _this.$message({ message: "请检查人员信息", type: "warning" });
  9638. }
  9639. });
  9640. } else {
  9641. document.getElementById("Car").scrollIntoView();
  9642. this.$message({ message: "请检查车辆信息", type: "warning" });
  9643. return false;
  9644. }
  9645. });
  9646. },
  9647. kindListFun(index) {
  9648. var _this = this;
  9649. _this.riskList = []; //险种大类
  9650. _this.kindList = []; //商业险险别
  9651. if (
  9652. (!_this.jqstartDate || !_this.jqendDate) &&
  9653. (!_this.systartDate || !_this.syendDate)
  9654. ) {
  9655. this.$message({ message: "投保日期不能为空", type: "warning" });
  9656. } else {
  9657. if (_this.jqchecked) {
  9658. //交强
  9659. _this.jqstartDate = this.transformTime(_this.jqstartDate);
  9660. _this.jqendDate = this.transformTime(_this.jqendDate);
  9661. _this.riskList.push({
  9662. amount: "200000",
  9663. premium: "0",
  9664. riskCode: "0507",
  9665. endDate: _this.jqendDate,
  9666. startDate: _this.jqstartDate,
  9667. instantFlag: "0"
  9668. });
  9669. }
  9670. if (_this.sychecked) {
  9671. _this.systartDate = this.transformTime(_this.systartDate);
  9672. _this.syendDate = this.transformTime(_this.syendDate);
  9673. //商业
  9674. _this.riskList.push({
  9675. premium: "0",
  9676. riskCode: "0510",
  9677. quotePreceptCode: "",
  9678. quotePreceptName: "",
  9679. endDate: _this.syendDate,
  9680. startDate: _this.systartDate,
  9681. instantFlag: "0"
  9682. });
  9683. // _this.insureList.map((ele, index) => {
  9684. // if (
  9685. // ele.amount != "0" &&
  9686. // (ele.kindCode == "D4" || ele.kindCode == "SY_FJ_YBW2")
  9687. // ) {
  9688. // _this.kindList.push({
  9689. // unitAmount: _this.insureList[index].amount,
  9690. // kindCode: _this.insureList[index].kindCode,
  9691. // kindName: _this.insureList[index].kindName,
  9692. // });
  9693. // } else if (
  9694. // ele.amount != "0" &&
  9695. // (ele.kindCode == "MJ1" ||
  9696. // ele.kindCode == "MJ2" ||
  9697. // ele.kindCode == "MJ3" ||
  9698. // ele.kindCode == "MJ4")
  9699. // ) {
  9700. // _this.kindList.push({
  9701. // deductibleRate: _this.insureList[index].amount,
  9702. // kindCode: _this.insureList[index].kindCode,
  9703. // kindName: _this.insureList[index].kindName,
  9704. // });
  9705. // } else if (
  9706. // ele.amount != "0" &&
  9707. // (ele.kindCode == "TY1" ||
  9708. // ele.kindCode == "TY2" ||
  9709. // ele.kindCode == "TY3" ||
  9710. // ele.kindCode == "TY4")
  9711. // ) {
  9712. // _this.kindList.push({
  9713. // serviceTimes: _this.insureList[index].amount,
  9714. // kindCode: _this.insureList[index].kindCode,
  9715. // kindName: _this.insureList[index].kindName,
  9716. // });
  9717. // } else if (ele.amount != "0") {
  9718. // _this.kindList.push({
  9719. // amount: _this.insureList[index].amount,
  9720. // kindCode: _this.insureList[index].kindCode,
  9721. // kindName: _this.insureList[index].kindName,
  9722. // });
  9723. // }
  9724. // return ele;
  9725. // });
  9726. } else {
  9727. _this.kindList = [];
  9728. }
  9729. }
  9730. },
  9731. //动态函数
  9732. ToolClickFun(MethodName, Parameter, companyId, companyName, index) {
  9733. this[`${MethodName}`](Parameter, companyId, companyName, index);
  9734. },
  9735. //更新报价历史
  9736. QuotationHistory() {
  9737. let params = {
  9738. orderNo: this.orderno,
  9739. orderStatus: ""
  9740. };
  9741. this.$api.letter.queryQuoteHistory(params).then(res => {
  9742. res.data.forEach(item => {
  9743. if (item.accidentInfo) {
  9744. item.accidentInfo.constructor === Object
  9745. ? [item.accidentInfo]
  9746. : item.accidentInfo;
  9747. }
  9748. });
  9749. this.HistoryList = res.data;
  9750. });
  9751. },
  9752. open2(Name, Msg) {
  9753. this.$notify.info({
  9754. title: Name,
  9755. dangerouslyUseHTMLString: true,
  9756. type: "warning",
  9757. message: Msg,
  9758. customClass: "customNotifyClass",
  9759. duration: 7000
  9760. });
  9761. },
  9762. open3(Name, Msg) {
  9763. this.$notify.info({
  9764. title: Name,
  9765. dangerouslyUseHTMLString: true,
  9766. type: "warning",
  9767. message: `<p>${Msg.replace(/\n/g, "<br>")}</p>`,
  9768. customClass: "customNotifyClass",
  9769. duration: 7000
  9770. });
  9771. },
  9772. openPredictInfo(Name, Msg) {
  9773. this.redictInfoMsg = Msg;
  9774. this.redictInfodialogVisible = true;
  9775. },
  9776. //订单生成前数据处理事件
  9777. OrderStageProcessing(index) {
  9778. if (this.tbczcarShow && this.imageList2.length > 0) {
  9779. //投保人同车主
  9780. this.imageList3 = JSON.parse(JSON.stringify(this.imageList2));
  9781. if (this.imageList3.length == 1) {
  9782. if (this.imageList3[0].imageType.includes("C0")) {
  9783. this.imageList3[0].imageType = this.imageList3[0].imageType.includes(
  9784. "C0"
  9785. )
  9786. ? "C03"
  9787. : "D03";
  9788. }
  9789. if (this.imageList3[0].imageType.includes("Y0")) {
  9790. this.imageList3[0].imageType = this.imageList3[0].imageType.includes(
  9791. "Y0"
  9792. )
  9793. ? "Y03"
  9794. : "";
  9795. }
  9796. } else {
  9797. this.imageList3.forEach(e => {
  9798. e.imageType = e.imageType.includes("C0") ? "C03" : "D03";
  9799. });
  9800. }
  9801. }
  9802. if (this.bbczcarShow && this.imageList2.length > 0) {
  9803. //被保人同车主
  9804. this.imageList4 = JSON.parse(JSON.stringify(this.imageList2));
  9805. if (this.imageList4.length == 1) {
  9806. // this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  9807. // "C0"
  9808. // )
  9809. // ? "C04"
  9810. // : "D04";
  9811. if (this.imageList4[0].imageType.includes("C0")) {
  9812. this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  9813. "C0"
  9814. )
  9815. ? "C04"
  9816. : "D04";
  9817. }
  9818. if (this.imageList4[0].imageType.includes("Y0")) {
  9819. this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  9820. "Y0"
  9821. )
  9822. ? "Y04"
  9823. : "";
  9824. }
  9825. } else {
  9826. this.imageList4.forEach(e => {
  9827. e.imageType = e.imageType.includes("C0") ? "C04" : "D04";
  9828. });
  9829. }
  9830. // if (this.imageList4.length == 1) {
  9831. // this.imageList4[0].imageType = "C04";
  9832. // }
  9833. // else {
  9834. // this.imageList4[0].imageType = "C04";
  9835. // this.imageList4[1].imageType = "D04";
  9836. // }
  9837. }
  9838. if (this.bbtbcarShow && this.imageList3.length > 0) {
  9839. //被保人同投保人
  9840. this.imageList4 = JSON.parse(JSON.stringify(this.imageList3));
  9841. if (this.imageList4.length == 1) {
  9842. // this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  9843. // "C0"
  9844. // )
  9845. // ? "C04"
  9846. // : "D04";
  9847. if (this.imageList4[0].imageType.includes("C0")) {
  9848. this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  9849. "C0"
  9850. )
  9851. ? "C04"
  9852. : "D04";
  9853. }
  9854. if (this.imageList4[0].imageType.includes("Y0")) {
  9855. this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  9856. "Y0"
  9857. )
  9858. ? "Y04"
  9859. : "";
  9860. }
  9861. } else {
  9862. this.imageList4.forEach(e => {
  9863. e.imageType = e.imageType.includes("C0") ? "C04" : "D04";
  9864. });
  9865. }
  9866. // if (this.imageList4.length == 1) {
  9867. // this.imageList4[0].imageType = "C04";
  9868. // } else {
  9869. // this.imageList4[0].imageType = "C04";
  9870. // this.imageList4[1].imageType = "D04";
  9871. // }
  9872. }
  9873. //日期长度<10处理
  9874. const formatDate = date => {
  9875. if (date.length < 10) {
  9876. return this.timeformat(date);
  9877. }
  9878. return date;
  9879. };
  9880. if (this.carInfo.registerDate.length < 10) {
  9881. this.carInfo.registerDate = formatDate(this.carInfo.registerDate);
  9882. }
  9883. if (this.carInfo.issueDate.length < 10) {
  9884. this.carInfo.issueDate = formatDate(this.carInfo.issueDate);
  9885. }
  9886. if (
  9887. this.carInfo.transferDate &&
  9888. this.carInfo.transferDate.length < 10 &&
  9889. this.carInfo.transferDate !== ""
  9890. ) {
  9891. this.carInfo.transferDate = formatDate(this.carInfo.transferDate);
  9892. }
  9893. //日期长度<10处理
  9894. //提交身份证/驾驶证 ——————————————————
  9895. this.policyHolderInfo.owner = this.tbczcarShow;
  9896. this.insuredPersonInfo.owner = this.bbczcarShow;
  9897. this.insuredPersonInfo.insuranceHolder = this.bbtbcarShow;
  9898. if (typeof this.ownerInfo.provinceData == "string") {
  9899. this.ownerInfo.provinceData = [];
  9900. }
  9901. if (typeof this.insuredPersonInfo.provinceData == "string") {
  9902. this.insuredPersonInfo.provinceData = [];
  9903. }
  9904. if (typeof this.policyHolderInfo.provinceData == "string") {
  9905. this.policyHolderInfo.provinceData = [];
  9906. }
  9907. let param = {
  9908. userId: this.userId,
  9909. quoteno: this.quoteno,
  9910. orderNo: this.orderno,
  9911. carInfo: this.carInfo,
  9912. insuredPersonInfo: this.insuredPersonInfo,
  9913. ownerInfo: this.ownerInfo,
  9914. policyHolderInfo: this.policyHolderInfo,
  9915. riskList: this.riskList,
  9916. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  9917. productId: this.productId
  9918. };
  9919. this.$api.letter[this.apiInterfaceName](param).then(res => {
  9920. if (res.code == "200") {
  9921. //上传图片
  9922. const mergedArray = [
  9923. ...this.imageList1,
  9924. ...this.imageList2,
  9925. ...this.imageList3,
  9926. ...this.imageList4,
  9927. ...this.imageList5,
  9928. ...this.imageList6
  9929. ];
  9930. if (mergedArray.length > 0) {
  9931. let imageparam = {
  9932. imageList: mergedArray,
  9933. quoteNo: res.data.quoteno
  9934. };
  9935. this.$api.letter.uploadImages(imageparam).then(responses => {
  9936. this.imageEcho(res.data.quoteno); // 获取图片
  9937. // this.$refs.imageDialog.imageEcho(res.data.quoteno)
  9938. });
  9939. }
  9940. this.quoteno = res.data.quoteno;
  9941. this.orderno = res.data.orderno;
  9942. if (index >= 0) {
  9943. this.totalCompanyList[index].quoteCode = 1;
  9944. this.ToolClickFun(
  9945. this.totalCompanyList[index].cnName,
  9946. index,
  9947. this.totalCompanyList[index].id,
  9948. this.totalCompanyList[index].namesimple
  9949. );
  9950. } else {
  9951. this.totalCompanyList.map((ele, index) => {
  9952. if (ele.checked) {
  9953. //动态调用报价接口
  9954. if (ele.programme) {
  9955. ele.quoteCode = 1;
  9956. ele.orderstatus = 0;
  9957. this.ToolClickFun(ele.cnName, index, ele.id, ele.namesimple);
  9958. }
  9959. }
  9960. });
  9961. }
  9962. } else if (res.code == 1001) {
  9963. this.$confirm("是否生成新订单?", "提示", {
  9964. confirmButtonText: "确定",
  9965. cancelButtonText: "取消",
  9966. type: "warning"
  9967. })
  9968. .then(() => {
  9969. this.orderno = "";
  9970. this.quoteno = "";
  9971. this.quote(index);
  9972. })
  9973. .catch(() => { });
  9974. } else {
  9975. this.$message({ message: res.msg, type: "warning" });
  9976. }
  9977. });
  9978. // document.getElementById("company").scrollIntoView();
  9979. this.imageUploadShow = true;
  9980. },
  9981. // 泰康报价--11
  9982. taikang(num, id, namesimple) {
  9983. this.quoteInsurance(
  9984. num,
  9985. id,
  9986. namesimple,
  9987. this.totalCompanyList[num].apiType
  9988. );
  9989. },
  9990. // 平安报价
  9991. pingan(num, id) {
  9992. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  9993. let accidentalDrivingVo = [];
  9994. if (this.pinganaccidentalDrivingVo) {
  9995. accidentalDrivingVo = this.pinganaccidentalDrivingVo;
  9996. // accidentalDrivingVo = Object.assign({
  9997. // ...this.pinganaccidentalDrivingVo,
  9998. // ...this.accidentFormPA,
  9999. // });
  10000. }
  10001. let params = {
  10002. accidentalDrivingVo,
  10003. orderNo: this.orderno,
  10004. companyId: id,
  10005. agreementId: this.totalCompanyList[num].agreementId,
  10006. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  10007. kinds: this.totalCompanyList[num].kindList,
  10008. risks: this.riskList,
  10009. productId: this.productId
  10010. };
  10011. this.$api.letter.pinganquote(params).then(res => {
  10012. this.totalCompanyList[num].msg = res.msg;
  10013. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  10014. this.totalCompanyList[num].quoteCode = "4";
  10015. this.totalCompanyList[num].msg = res.msg;
  10016. return;
  10017. } else if (
  10018. res.data == null &&
  10019. res.msg.indexOf("交强险平台返回") > -1 &&
  10020. res.msg.indexOf(";终保日期") > -1
  10021. ) {
  10022. this.totalCompanyList[num].lastYearMsg =
  10023. "<b>交强险</b><br>" +
  10024. res.msg.slice(
  10025. res.msg.indexOf("起保日期 "),
  10026. res.msg.indexOf("地区 山西。") + 6
  10027. );
  10028. let time =
  10029. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  10030. this.jqstartDate = time;
  10031. this.jqendDate = this.oneYearPast1(time);
  10032. if (this.riskList.length > 0) {
  10033. for (let i = 0; i < this.riskList.length; i++) {
  10034. if (this.riskList[i].riskCode == "0507") {
  10035. this.riskList[i].startDate = time;
  10036. this.riskList[i].endDate = this.oneYearPast1(time);
  10037. }
  10038. }
  10039. }
  10040. let param = {
  10041. userId: this.userId,
  10042. quoteno: this.quoteno,
  10043. orderNo: this.orderno,
  10044. carInfo: this.carInfo,
  10045. insuredPersonInfo: this.insuredPersonInfo,
  10046. ownerInfo: this.ownerInfo,
  10047. policyHolderInfo: this.policyHolderInfo,
  10048. kindList: this.kindList,
  10049. riskList: this.riskList,
  10050. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  10051. };
  10052. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  10053. this.pingan(num, id);
  10054. });
  10055. } else if (!!res.data) {
  10056. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  10057. this.totalCompanyList[num].lastYearMsg = "";
  10058. let dat = res.data.warnMessageList;
  10059. dat.map(ele => {
  10060. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  10061. });
  10062. }
  10063. this.totalCompanyList[num].quoteCode = 200;
  10064. this.totalCompanyList[num].result = res.data;
  10065. this.jqstartDate = res.data.startDateJq;
  10066. this.jqendDate = res.data.endDateJq;
  10067. this.systartDate = res.data.startDateSy;
  10068. this.syendDate = res.data.endDateSy;
  10069. this.QuotationHistory();
  10070. } else {
  10071. this.totalCompanyList[num].quoteCode = "3";
  10072. this.totalCompanyList[num].msg = res.msg;
  10073. return;
  10074. }
  10075. });
  10076. },
  10077. //永安报价
  10078. yongan(num, id) {
  10079. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  10080. let params = {
  10081. accidentalDrivingVo:{},
  10082. orderNo: this.orderno,
  10083. companyId: id,
  10084. agreementId: this.totalCompanyList[num].agreementId,
  10085. kinds: this.totalCompanyList[num].kindList,
  10086. risks: this.riskList,
  10087. productId: this.productId,
  10088. carChecker: this.totalCompanyList[num].result.carChecker,
  10089. yaBusinessDiscount: this.totalCompanyList[num].result.yaBusinessDiscount
  10090. };
  10091. this.$api.letter.yonganquote(params).then(res => {
  10092. this.totalCompanyList[num].msg = res.msg;
  10093. if (res.msg == "重复投保" && res.code == "501") {
  10094. if (!!res.data.jqStartDate && !res.data.syStartDate) {
  10095. this.jqstartDate = res.data.jqStartDate;
  10096. this.jqendDate = res.data.jqEndDate;
  10097. this.updateRiskDates(
  10098. "0507",
  10099. res.data.jqStartDate,
  10100. res.data.jqEndDate
  10101. );
  10102. let param = {
  10103. userId: this.userId,
  10104. quoteno: this.quoteno,
  10105. orderNo: this.orderno,
  10106. carInfo: this.carInfo,
  10107. insuredPersonInfo: this.insuredPersonInfo,
  10108. ownerInfo: this.ownerInfo,
  10109. policyHolderInfo: this.policyHolderInfo,
  10110. kindList: this.kindList,
  10111. riskList: this.riskList,
  10112. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  10113. isTaxSource: isTaxSource == 1 ? isTaxSource : null
  10114. };
  10115. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  10116. this.yongan(num, id);
  10117. });
  10118. } else if (!!res.data.syStartDate && !res.data.jqStartDate) {
  10119. this.systartDate = res.data.syStartDate;
  10120. this.syendDate = res.data.syEndDate;
  10121. this.updateRiskDates(
  10122. "0510",
  10123. res.data.syStartDate,
  10124. res.data.syEndDate
  10125. );
  10126. let param = {
  10127. userId: this.userId,
  10128. quoteno: this.quoteno,
  10129. orderNo: this.orderno,
  10130. carInfo: this.carInfo,
  10131. insuredPersonInfo: this.insuredPersonInfo,
  10132. ownerInfo: this.ownerInfo,
  10133. policyHolderInfo: this.policyHolderInfo,
  10134. kindList: this.kindList,
  10135. riskList: this.riskList,
  10136. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  10137. };
  10138. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  10139. this.yongan(num, id);
  10140. });
  10141. } else if (!!res.data.syStartDate && !!res.data.jqStartDate) {
  10142. this.jqstartDate = res.data.jqStartDate;
  10143. this.jqendDate = res.data.jqEndDate;
  10144. this.systartDate = res.data.syStartDate;
  10145. this.syendDate = res.data.syEndDate;
  10146. this.updateRiskDates(
  10147. "0507",
  10148. res.data.jqStartDate,
  10149. res.data.jqEndDate
  10150. );
  10151. this.updateRiskDates(
  10152. "0510",
  10153. res.data.syStartDate,
  10154. res.data.syEndDate
  10155. );
  10156. let param = {
  10157. userId: this.userId,
  10158. quoteno: this.quoteno,
  10159. orderNo: this.orderno,
  10160. carInfo: this.carInfo,
  10161. insuredPersonInfo: this.insuredPersonInfo,
  10162. ownerInfo: this.ownerInfo,
  10163. policyHolderInfo: this.policyHolderInfo,
  10164. kindList: this.kindList,
  10165. riskList: this.riskList,
  10166. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  10167. };
  10168. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  10169. this.yongan(num, id);
  10170. });
  10171. } else {
  10172. this.totalCompanyList[num].quoteCode = "3";
  10173. this.totalCompanyList[num].msg = "重复投保";
  10174. }
  10175. } else if (
  10176. res.code == "500" ||
  10177. res.code == "502" ||
  10178. res.code == "-9999"
  10179. ) {
  10180. this.totalCompanyList[num].quoteCode = "-9999";
  10181. this.totalCompanyList[num].msg = res.msg;
  10182. } else {
  10183. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  10184. this.totalCompanyList[num].lastYearMsg = "";
  10185. let dat = res.data.warnMessageList;
  10186. dat.map(ele => {
  10187. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  10188. });
  10189. }
  10190. this.totalCompanyList[num].quoteCode = 200;
  10191. this.totalCompanyList[num].result = res.data;
  10192. this.jqstartDate = res.data.startDateJq;
  10193. this.jqendDate = res.data.endDateJq;
  10194. this.systartDate = res.data.startDateSy;
  10195. this.syendDate = res.data.endDateSy;
  10196. this.QuotationHistory();
  10197. }
  10198. });
  10199. },
  10200. updateRiskDates(riskCode, startDate, endDate) {
  10201. for (let i = 0; i < this.riskList.length; i++) {
  10202. if (this.riskList[i].riskCode == riskCode) {
  10203. this.riskList[i].startDate = startDate;
  10204. this.riskList[i].endDate = endDate;
  10205. }
  10206. }
  10207. },
  10208. //中煤报价
  10209. zhongmei(num, id) {
  10210. let accidentalDrivingVo = {};
  10211. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  10212. let type = this.totalCompanyList[num].apiType;
  10213. let api = type == 2 ? "pythonquote" : "zhongmeiquote";
  10214. // if (this.accidentFormZM.projectCode) {
  10215. // accidentalDrivingVo = {
  10216. // projectCode: this.accidentFormZM.projectCode,
  10217. // projectName: this.accidentFormZM.projectName,
  10218. // quantity: this.accidentFormZM.quantity
  10219. // ? this.accidentFormZM.quantity
  10220. // : "1"
  10221. // };
  10222. // }
  10223. if (this.accidentFormZM.projectCode) {
  10224. accidentalDrivingVo = {
  10225. ...this.zhongmeiInsuranceData.find(
  10226. e => e.projectCode == this.accidentFormZM.projectCode
  10227. ),
  10228. quantity: this.accidentFormZM.quantity
  10229. ? this.accidentFormZM.quantity
  10230. : "1"
  10231. };
  10232. }
  10233. accidentalDrivingVo =
  10234. this.totalCompanyList[num].programme.drivingList[0] || {};
  10235. let params = {
  10236. accidentalDrivingVo,
  10237. orderNo: this.orderno,
  10238. companyId: id,
  10239. agreementId: this.totalCompanyList[num].agreementId,
  10240. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  10241. kinds: this.totalCompanyList[num].kindList,
  10242. risks: this.riskList,
  10243. productId: this.productId
  10244. };
  10245. this.$api.letter.zhongmeiquote(params).then(res => {
  10246. // this.$api.letter[api](params).then((res) => {
  10247. this.totalCompanyList[num].msg = res.msg;
  10248. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  10249. this.totalCompanyList[num].quoteCode = "4";
  10250. this.totalCompanyList[num].msg = res.msg;
  10251. return;
  10252. } else if (
  10253. res.data == null &&
  10254. res.msg.indexOf("交强险平台返回") > -1 &&
  10255. res.msg.indexOf(";终保日期") > -1
  10256. ) {
  10257. this.totalCompanyList[num].lastYearMsg =
  10258. "<b>交强险</b><br>" +
  10259. res.msg.slice(
  10260. res.msg.indexOf("起保日期 "),
  10261. res.msg.indexOf("地区 山西。") + 6
  10262. );
  10263. let time =
  10264. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  10265. this.jqstartDate = time;
  10266. this.jqendDate = this.oneYearPast1(time);
  10267. if (this.riskList.length > 0) {
  10268. for (let i = 0; i < this.riskList.length; i++) {
  10269. if (this.riskList[i].riskCode == "0507") {
  10270. this.riskList[i].startDate = time;
  10271. this.riskList[i].endDate = this.oneYearPast1(time);
  10272. }
  10273. }
  10274. }
  10275. let param = {
  10276. userId: this.userId,
  10277. quoteno: this.quoteno,
  10278. orderNo: this.orderno,
  10279. carInfo: this.carInfo,
  10280. insuredPersonInfo: this.insuredPersonInfo,
  10281. ownerInfo: this.ownerInfo,
  10282. policyHolderInfo: this.policyHolderInfo,
  10283. kindList: this.kindList,
  10284. riskList: this.riskList,
  10285. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  10286. };
  10287. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  10288. this.zhongmei(num, id);
  10289. });
  10290. } else if (!!res.data) {
  10291. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  10292. this.totalCompanyList[num].lastYearMsg = "";
  10293. let dat = res.data.warnMessageList;
  10294. dat.map(ele => {
  10295. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  10296. });
  10297. }
  10298. this.totalCompanyList[num].quoteCode = 200;
  10299. this.totalCompanyList[num].result = res.data;
  10300. this.jqstartDate = res.data.startDateJq;
  10301. this.jqendDate = res.data.endDateJq;
  10302. this.systartDate = res.data.startDateSy;
  10303. this.syendDate = res.data.endDateSy;
  10304. this.QuotationHistory();
  10305. } else {
  10306. this.totalCompanyList[num].quoteCode = "3";
  10307. this.totalCompanyList[num].msg = res.msg;
  10308. return;
  10309. }
  10310. });
  10311. },
  10312. // 大家报价
  10313. dajia(num, id) {
  10314. // let accidentalDrivingVo=[]
  10315. // if(this.dajiaaccidentalDrivingVo){
  10316. // accidentalDrivingVo.rideRiskCode=this.dajiaaccidentalDrivingVo.schemeNo;
  10317. // accidentalDrivingVo.rideRiskName=this.dajiaaccidentalDrivingVo.cvrgName;
  10318. // accidentalDrivingVo.quantity=this.dajiaaccidentalDrivingVo.quantity;
  10319. // }
  10320. let type = this.totalCompanyList[num].apiType;
  10321. let api = type == 2 ? "pythonquote" : "dajiaquote";
  10322. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  10323. let accidentalDrivingVo =
  10324. this.totalCompanyList[num].programme.drivingList[0] || {};
  10325. let params = {
  10326. accidentalDrivingVo: accidentalDrivingVo,
  10327. orderNo: this.orderno,
  10328. companyId: id,
  10329. agreementId: this.totalCompanyList[num].agreementId,
  10330. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  10331. kinds: this.totalCompanyList[num].kindList || [],
  10332. risks: this.riskList || []
  10333. };
  10334. this.$api.letter[api](params).then(res => {
  10335. this.totalCompanyList[num].msg = res.msg;
  10336. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  10337. this.totalCompanyList[num].quoteCode = "4";
  10338. this.totalCompanyList[num].msg = res.msg;
  10339. return;
  10340. } else if (
  10341. res.data == null &&
  10342. res.msg.indexOf("交强险平台返回") > -1 &&
  10343. res.msg.indexOf(";终保日期") > -1
  10344. ) {
  10345. this.totalCompanyList[num].lastYearMsg =
  10346. "<b>交强险</b><br>" +
  10347. res.msg.slice(
  10348. res.msg.indexOf("起保日期 "),
  10349. res.msg.indexOf("地区 山西。") + 6
  10350. );
  10351. let time =
  10352. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  10353. this.jqstartDate = time;
  10354. this.jqendDate = this.oneYearPast1(time);
  10355. if (this.riskList.length > 0) {
  10356. for (let i = 0; i < this.riskList.length; i++) {
  10357. if (this.riskList[i].riskCode == "0507") {
  10358. this.riskList[i].startDate = time;
  10359. this.riskList[i].endDate = this.oneYearPast1(time);
  10360. }
  10361. }
  10362. }
  10363. let param = {
  10364. userId: this.userId,
  10365. quoteno: this.quoteno,
  10366. orderNo: this.orderno,
  10367. carInfo: this.carInfo,
  10368. insuredPersonInfo: this.insuredPersonInfo,
  10369. ownerInfo: this.ownerInfo,
  10370. policyHolderInfo: this.policyHolderInfo,
  10371. kindList: this.kindList,
  10372. riskList: this.riskList,
  10373. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  10374. kinds: this.totalCompanyList[num].kindList,
  10375. risks: this.riskList
  10376. };
  10377. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  10378. this.dajia(num, id);
  10379. });
  10380. } else if (!!res.data) {
  10381. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  10382. this.totalCompanyList[num].lastYearMsg = "";
  10383. let dat = res.data.warnMessageList;
  10384. dat.map(ele => {
  10385. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  10386. });
  10387. }
  10388. this.totalCompanyList[num].quoteCode = 200;
  10389. this.totalCompanyList[num].result = res.data;
  10390. this.jqstartDate = res.data.startDateJq;
  10391. this.jqendDate = res.data.endDateJq;
  10392. this.systartDate = res.data.startDateSy;
  10393. this.syendDate = res.data.endDateSy;
  10394. this.QuotationHistory();
  10395. } else {
  10396. this.totalCompanyList[num].quoteCode = "3";
  10397. this.totalCompanyList[num].msg = res.msg;
  10398. return;
  10399. }
  10400. });
  10401. },
  10402. //华泰报价
  10403. huatai(num, id) {
  10404. let type = this.totalCompanyList[num].apiType;
  10405. let api = type == 2 ? "pythonquote" : "huataiquote";
  10406. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  10407. let params = {
  10408. accidentalDrivingVo: this.totalCompanyList[num].programme.drivingList[0] || {},
  10409. orderNo: this.orderno,
  10410. companyId: id,
  10411. agreementId: this.totalCompanyList[num].agreementId,
  10412. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  10413. kinds: this.totalCompanyList[num].kindList || [],
  10414. risks: this.riskList || []
  10415. };
  10416. this.$api.letter[api](params).then(res => {
  10417. this.totalCompanyList[num].msg = res.msg;
  10418. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  10419. this.totalCompanyList[num].quoteCode = "4";
  10420. this.totalCompanyList[num].msg = res.msg;
  10421. return;
  10422. } else if (
  10423. res.data == null &&
  10424. res.msg.indexOf("交强险平台返回") > -1 &&
  10425. res.msg.indexOf(";终保日期") > -1
  10426. ) {
  10427. //判断保司返回重复投保信息,进行默认赋值起终保日期,重新算费 后面联调需要调整
  10428. let time =
  10429. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  10430. this.jqstartDate = time;
  10431. this.jqendDate = this.oneYearPast1(time);
  10432. this.systartDate = time;
  10433. this.syendDate = this.oneYearPast1(time);
  10434. if (this.riskList.length > 0) {
  10435. for (let i = 0; i < this.riskList.length; i++) {
  10436. if (this.riskList[i].riskCode == "0507") {
  10437. this.riskList[i].startDate = time;
  10438. this.riskList[i].endDate = this.oneYearPast1(time);
  10439. } else if (this.riskList[i].riskCode == "0510") {
  10440. this.riskList[i].startDate = time;
  10441. this.riskList[i].endDate = this.oneYearPast1(time);
  10442. }
  10443. }
  10444. }
  10445. let param = {
  10446. userId: this.userId,
  10447. quoteno: this.quoteno,
  10448. orderNo: this.orderno,
  10449. carInfo: this.carInfo,
  10450. insuredPersonInfo: this.insuredPersonInfo,
  10451. ownerInfo: this.ownerInfo,
  10452. policyHolderInfo: this.policyHolderInfo,
  10453. kindList: this.kindList,
  10454. riskList: this.riskList,
  10455. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  10456. kinds: this.totalCompanyList[num].kindList || [],
  10457. risks: this.riskList || []
  10458. };
  10459. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  10460. this.huatai(num, id);
  10461. });
  10462. } else if (!!res.data) {
  10463. this.totalCompanyList[num].quoteCode = 200;
  10464. this.totalCompanyList[num].result = res.data;
  10465. this.jqstartDate = res.data.startDateJq;
  10466. this.jqendDate = res.data.endDateJq;
  10467. this.systartDate = res.data.startDateSy;
  10468. this.syendDate = res.data.endDateSy;
  10469. this.QuotationHistory();
  10470. } else {
  10471. this.totalCompanyList[num].quoteCode = "3";
  10472. this.totalCompanyList[num].msg = res.msg;
  10473. return;
  10474. }
  10475. });
  10476. },
  10477. //紫金报价
  10478. zijin(num, id) {
  10479. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  10480. let params = {
  10481. accidentalDrivingVo:
  10482. this.totalCompanyList[num].programme.drivingList || [],
  10483. orderNo: this.orderno,
  10484. companyId: id,
  10485. agreementId: this.totalCompanyList[num].agreementId,
  10486. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  10487. coefficient: this.totalCompanyList[num].coefficient,
  10488. kinds: this.totalCompanyList[num].kindList,
  10489. risks: this.riskList,
  10490. productId: this.productId
  10491. };
  10492. this.$api.letter.zijinquote(params).then(res => {
  10493. this.totalCompanyList[num].msg = res.msg;
  10494. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  10495. this.totalCompanyList[num].quoteCode = "4";
  10496. this.totalCompanyList[num].msg = res.msg;
  10497. return;
  10498. } else if (
  10499. res.data == null &&
  10500. res.msg.indexOf("交强险平台返回") > -1 &&
  10501. res.msg.indexOf(";终保日期") > -1
  10502. ) {
  10503. let time =
  10504. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  10505. this.jqstartDate = time;
  10506. this.jqendDate = this.oneYearPast1(time);
  10507. this.systartDate = time;
  10508. this.syendDate = this.oneYearPast1(time);
  10509. if (this.riskList.length > 0) {
  10510. for (let i = 0; i < this.riskList.length; i++) {
  10511. if (this.riskList[i].riskCode == "0507") {
  10512. this.riskList[i].startDate = time;
  10513. this.riskList[i].endDate = this.oneYearPast1(time);
  10514. } else if (this.riskList[i].riskCode == "0510") {
  10515. this.riskList[i].startDate = time;
  10516. this.riskList[i].endDate = this.oneYearPast1(time);
  10517. }
  10518. }
  10519. }
  10520. let param = {
  10521. userId: this.userId,
  10522. quoteno: this.quoteno,
  10523. orderNo: this.orderno,
  10524. carInfo: this.carInfo,
  10525. insuredPersonInfo: this.insuredPersonInfo,
  10526. ownerInfo: this.ownerInfo,
  10527. policyHolderInfo: this.policyHolderInfo,
  10528. kindList: this.kindList,
  10529. riskList: this.riskList,
  10530. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  10531. };
  10532. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  10533. this.zijin(num, id);
  10534. });
  10535. } else if (!!res.data) {
  10536. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  10537. this.totalCompanyList[num].lastYearMsg = "";
  10538. let dat = res.data.warnMessageList;
  10539. dat.map(ele => {
  10540. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  10541. });
  10542. }
  10543. this.totalCompanyList[num].quoteCode = 200;
  10544. this.totalCompanyList[num].result = res.data;
  10545. this.jqstartDate = res.data.startDateJq;
  10546. this.jqendDate = res.data.endDateJq;
  10547. this.systartDate = res.data.startDateSy;
  10548. this.syendDate = res.data.endDateSy;
  10549. this.QuotationHistory();
  10550. } else {
  10551. this.totalCompanyList[num].quoteCode = "3";
  10552. this.totalCompanyList[num].msg = res.msg;
  10553. return;
  10554. }
  10555. });
  10556. },
  10557. yangguang(num, id) {
  10558. let accidentalDrivingVo = {};
  10559. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  10560. accidentalDrivingVo =
  10561. this.totalCompanyList[num].programme.drivingList[0] || {};
  10562. let params = {
  10563. accidentalDrivingVo,
  10564. orderNo: this.orderno,
  10565. companyId: id,
  10566. cqryCdeJq: this.cqryCdeJq,
  10567. cqryCdeSy: this.cqryCdeSy,
  10568. renewalCodeJq: this.renewalCodeJq,
  10569. renewalCodeSy: this.renewalCodeSy,
  10570. pricingCoefficient: this.totalCompanyList[num].result.pricingCoefficient,
  10571. pricingCoefficientUpper: this.totalCompanyList[num].result.pricingCoefficientUpper,
  10572. pricingCoefficientLower: this.totalCompanyList[num].result.pricingCoefficientLower,
  10573. agreementId: this.totalCompanyList[num].agreementId,
  10574. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  10575. kinds: this.totalCompanyList[num].kindList,
  10576. risks: this.riskList
  10577. };
  10578. this.$api.letter.yangGuangquote(params).then(res => {
  10579. this.totalCompanyList[num].msg = res.msg;
  10580. if (
  10581. res.data == null &&
  10582. res.msg.indexOf("车险平台返回") > -1 &&
  10583. res.msg.indexOf(";终保日期") > -1
  10584. ) {
  10585. let time =
  10586. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  10587. this.jqstartDate = time;
  10588. this.jqendDate = this.oneYearPast1(time);
  10589. if (this.riskList.length > 0) {
  10590. for (let i = 0; i < this.riskList.length; i++) {
  10591. if (this.riskList[i].riskCode == "0507") {
  10592. this.riskList[i].startDate = time;
  10593. this.riskList[i].endDate = this.oneYearPast1(time);
  10594. }
  10595. }
  10596. }
  10597. let param = {
  10598. userId: this.userId,
  10599. quoteno: this.quoteno,
  10600. orderNo: this.orderno,
  10601. carInfo: this.carInfo,
  10602. insuredPersonInfo: this.insuredPersonInfo,
  10603. ownerInfo: this.ownerInfo,
  10604. policyHolderInfo: this.policyHolderInfo,
  10605. kindList: this.totalCompanyList[num].kindList,
  10606. riskList: this.riskList,
  10607. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  10608. };
  10609. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  10610. this.yangguang(num, id);
  10611. });
  10612. } else if (res.code == "200") {
  10613. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  10614. this.totalCompanyList[num].lastYearMsg = "";
  10615. let dat = res.data.warnMessageList;
  10616. dat.map(ele => {
  10617. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  10618. });
  10619. }
  10620. this.totalCompanyList[num].quoteCode = 200;
  10621. this.totalCompanyList[num].result = res.data;
  10622. console.log('报价结果', res.data)
  10623. console.log('报价公司', this.totalCompanyList[num])
  10624. this.totalCompanyList[num].pricingCoefficient = res.data.pricingCoefficient
  10625. this.totalCompanyList[num].pricingCoefficientUpper = res.data.pricingCoefficientUpper
  10626. this.totalCompanyList[num].pricingCoefficientLower = res.data.pricingCoefficientLower
  10627. this.jqstartDate = res.data.startDateJq;
  10628. this.jqendDate = res.data.endDateJq;
  10629. this.systartDate = res.data.startDateSy;
  10630. this.syendDate = res.data.endDateSy;
  10631. this.QuotationHistory();
  10632. } else if (res.code == "101") {
  10633. this.totalCompanyList[num].quoteCode = "101";
  10634. this.totalCompanyList[num].msg = res.msg;
  10635. this.cqryCdeJq = res.data.cqryCdeJq;
  10636. this.cqryCdeSy = res.data.cqryCdeSy;
  10637. let jq = res.data.renewalCodeJq.replace(/[\r\n]/g, "");
  10638. let jqBase64 = `data:image/png;base64,${jq}`;
  10639. this.renewalCodeJqImg = jqBase64;
  10640. if (res.data.renewalCodeSy) {
  10641. let sy = res.data.renewalCodeSy.replace(/[\r\n]/g, "");
  10642. let syBase64 = `data:image/png;base64,${sy}`;
  10643. this.renewalCodeSyImg = syBase64;
  10644. }
  10645. this.renewalCodedialogVisible = true;
  10646. } else if (res.code == "500") {
  10647. // this.iscCrownerShow=res.msg.indexOf("车主地区自动解析失败")!=-1?true:false
  10648. // this.isInsuredShow=res.msg.indexOf("被保人地区自动解析失败")!=-1?true:false
  10649. // this.isApplicantShow=res.msg.indexOf("投保人地区自动解析失败")!=-1?true:false
  10650. // this.ownerInfo.provinceData= this.iscCrownerShow?[]: this.ownerInfo.provinceData
  10651. // this.insuredPersonInfo.provinceData= this.isInsuredShow?[]: this.insuredPersonInfo.provinceData
  10652. // this.policyHolderInfo.provinceData= this.isApplicantShow?[]: this.policyHolderInfo.provinceData
  10653. this.totalCompanyList[num].quoteCode = "3";
  10654. this.totalCompanyList[num].msg = res.msg;
  10655. } else {
  10656. this.totalCompanyList[num].quoteCode = "3";
  10657. this.totalCompanyList[num].msg = res.msg;
  10658. return;
  10659. }
  10660. });
  10661. },
  10662. //永诚报价
  10663. yongcheng(num, id) {
  10664. this.iscCrownerShow = false;
  10665. this.isInsuredShow = false;
  10666. this.isApplicantShow = false;
  10667. let accidentalDrivingVo = {};
  10668. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  10669. if (this.accidentForm.projectCode) {
  10670. let data = this.yongchengaccidentDataList.find(
  10671. val => val.projectCode == this.yongchengtemplateSelection
  10672. );
  10673. accidentalDrivingVo = {
  10674. ...data,
  10675. quantity: this.accidentForm.quantity ? this.accidentForm.quantity : ""
  10676. };
  10677. }
  10678. accidentalDrivingVo =
  10679. this.totalCompanyList[num].programme.drivingList[0] || {};
  10680. let params = {
  10681. accidentalDrivingVo,
  10682. orderNo: this.orderno,
  10683. companyId: id,
  10684. cqryCdeJq: this.cqryCdeJq,
  10685. cqryCdeSy: this.cqryCdeSy,
  10686. renewalCodeJq: this.renewalCodeJq,
  10687. renewalCodeSy: this.renewalCodeSy,
  10688. agreementId: this.totalCompanyList[num].agreementId,
  10689. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  10690. kinds: this.totalCompanyList[num].kindList,
  10691. risks: this.riskList
  10692. };
  10693. this.$api.letter.yongchengquote(params).then(res => {
  10694. this.totalCompanyList[num].msg = res.msg;
  10695. if (
  10696. res.data == null &&
  10697. res.msg.indexOf("车险平台返回") > -1 &&
  10698. res.msg.indexOf(";终保日期") > -1
  10699. ) {
  10700. let time =
  10701. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  10702. this.jqstartDate = time;
  10703. this.jqendDate = this.oneYearPast1(time);
  10704. if (this.riskList.length > 0) {
  10705. for (let i = 0; i < this.riskList.length; i++) {
  10706. if (this.riskList[i].riskCode == "0507") {
  10707. this.riskList[i].startDate = time;
  10708. this.riskList[i].endDate = this.oneYearPast1(time);
  10709. }
  10710. }
  10711. }
  10712. let param = {
  10713. userId: this.userId,
  10714. quoteno: this.quoteno,
  10715. orderNo: this.orderno,
  10716. carInfo: this.carInfo,
  10717. insuredPersonInfo: this.insuredPersonInfo,
  10718. ownerInfo: this.ownerInfo,
  10719. policyHolderInfo: this.policyHolderInfo,
  10720. kindList: this.totalCompanyList[num].kindList,
  10721. riskList: this.riskList,
  10722. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  10723. };
  10724. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  10725. this.yongcheng(num, id);
  10726. });
  10727. } else if (res.code == "200") {
  10728. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  10729. this.totalCompanyList[num].lastYearMsg = "";
  10730. let dat = res.data.warnMessageList;
  10731. dat.map(ele => {
  10732. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  10733. });
  10734. }
  10735. this.totalCompanyList[num].quoteCode = 200;
  10736. this.totalCompanyList[num].result = res.data;
  10737. this.jqstartDate = res.data.startDateJq;
  10738. this.jqendDate = res.data.endDateJq;
  10739. this.systartDate = res.data.startDateSy;
  10740. this.syendDate = res.data.endDateSy;
  10741. this.QuotationHistory();
  10742. } else if (res.code == "101") {
  10743. this.totalCompanyList[num].quoteCode = "101";
  10744. this.totalCompanyList[num].msg = res.msg;
  10745. this.cqryCdeJq = res.data.cqryCdeJq;
  10746. this.cqryCdeSy = res.data.cqryCdeSy;
  10747. let jq = res.data.renewalCodeJq.replace(/[\r\n]/g, "");
  10748. let jqBase64 = `data:image/png;base64,${jq}`;
  10749. this.renewalCodeJqImg = jqBase64;
  10750. if (res.data.renewalCodeSy) {
  10751. let sy = res.data.renewalCodeSy.replace(/[\r\n]/g, "");
  10752. let syBase64 = `data:image/png;base64,${sy}`;
  10753. this.renewalCodeSyImg = syBase64;
  10754. }
  10755. this.renewalCodedialogVisible = true;
  10756. } else if (res.code == "500") {
  10757. // this.iscCrownerShow=res.msg.indexOf("车主地区自动解析失败")!=-1?true:false
  10758. // this.isInsuredShow=res.msg.indexOf("被保人地区自动解析失败")!=-1?true:false
  10759. // this.isApplicantShow=res.msg.indexOf("投保人地区自动解析失败")!=-1?true:false
  10760. // this.ownerInfo.provinceData= this.iscCrownerShow?[]: this.ownerInfo.provinceData
  10761. // this.insuredPersonInfo.provinceData= this.isInsuredShow?[]: this.insuredPersonInfo.provinceData
  10762. // this.policyHolderInfo.provinceData= this.isApplicantShow?[]: this.policyHolderInfo.provinceData
  10763. this.totalCompanyList[num].quoteCode = "3";
  10764. this.totalCompanyList[num].msg = res.msg;
  10765. } else {
  10766. this.totalCompanyList[num].quoteCode = "3";
  10767. this.totalCompanyList[num].msg = res.msg;
  10768. return;
  10769. }
  10770. });
  10771. },
  10772. //国任报价
  10773. guoRen(num, id) {
  10774. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  10775. let guoRenSpecialAgreementVo = [];
  10776. this.zijinengageList.forEach(val => {
  10777. guoRenSpecialAgreementVo.push({
  10778. clauses: val.clauseName,
  10779. clausesContext: val.clauses,
  10780. clauseCode: val.clauseCode,
  10781. riskCode: val.riskCode,
  10782. riskName: val.riskName
  10783. });
  10784. });
  10785. let accidentalDrivingVo = {};
  10786. if (this.guoRenaccidentForm.goodsCode) {
  10787. accidentalDrivingVo = this.guoRenaccidentalDrivingVo;
  10788. }
  10789. accidentalDrivingVo =
  10790. this.totalCompanyList[num].programme.drivingList[0] || {};
  10791. let params = {
  10792. accidentalDrivingVo,
  10793. orderNo: this.orderno,
  10794. companyId: id,
  10795. cqryCdeJq: this.cqryCdeJq,
  10796. cqryCdeSy: this.cqryCdeSy,
  10797. renewalCodeJq: this.renewalCodeJq,
  10798. renewalCodeSy: this.renewalCodeSy,
  10799. agreementId: this.totalCompanyList[num].agreementId,
  10800. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  10801. guoRenSpecialAgreementVo,
  10802. kinds: this.totalCompanyList[num].kindList,
  10803. risks: this.riskList,
  10804. productId: this.productId
  10805. };
  10806. this.$api.letter.pythonquote(params).then(res => {
  10807. this.totalCompanyList[num].msg = res.msg;
  10808. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  10809. this.totalCompanyList[num].quoteCode = "4";
  10810. this.totalCompanyList[num].msg = res.msg;
  10811. return;
  10812. } else if (
  10813. res.data == null &&
  10814. res.msg.indexOf("车险平台返回") > -1 &&
  10815. res.msg.indexOf(";终保日期") > -1
  10816. ) {
  10817. let time =
  10818. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  10819. this.jqstartDate = time;
  10820. this.jqendDate = this.oneYearPast1(time);
  10821. this.systartDate = time;
  10822. this.syendDate = this.oneYearPast1(time);
  10823. if (this.riskList.length > 0) {
  10824. for (let i = 0; i < this.riskList.length; i++) {
  10825. if (this.riskList[i].riskCode == "0507") {
  10826. this.riskList[i].startDate = time;
  10827. this.riskList[i].endDate = this.oneYearPast1(time);
  10828. } else if (this.riskList[i].riskCode == "0510") {
  10829. this.riskList[i].startDate = time;
  10830. this.riskList[i].endDate = this.oneYearPast1(time);
  10831. }
  10832. }
  10833. }
  10834. let param = {
  10835. userId: this.userId,
  10836. quoteno: this.quoteno,
  10837. orderNo: this.orderno,
  10838. carInfo: this.carInfo,
  10839. insuredPersonInfo: this.insuredPersonInfo,
  10840. ownerInfo: this.ownerInfo,
  10841. policyHolderInfo: this.policyHolderInfo,
  10842. kindList: this.totalCompanyList[num].kindList,
  10843. riskList: this.riskList,
  10844. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  10845. };
  10846. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  10847. this.guoRen(num, id);
  10848. });
  10849. } else if (res.code == "200") {
  10850. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  10851. this.totalCompanyList[num].lastYearMsg = "";
  10852. let dat = res.data.warnMessageList;
  10853. dat.map(ele => {
  10854. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  10855. });
  10856. }
  10857. this.totalCompanyList[num].quoteCode = 200;
  10858. this.totalCompanyList[num].result = res.data;
  10859. this.jqstartDate = res.data.startDateJq;
  10860. this.jqendDate = res.data.endDateJq;
  10861. this.systartDate = res.data.startDateSy;
  10862. this.syendDate = res.data.endDateSy;
  10863. this.QuotationHistory();
  10864. } else if (res.code == "101") {
  10865. this.totalCompanyList[num].quoteCode = "101";
  10866. this.totalCompanyList[num].msg = res.msg;
  10867. this.cqryCdeJq = res.data.cqryCdeJq;
  10868. this.cqryCdeSy = res.data.cqryCdeSy;
  10869. let jq = res.data.renewalCodeJq.replace(/[\r\n]/g, "");
  10870. let jqBase64 = `data:image/png;base64,${jq}`;
  10871. this.renewalCodeJqImg = jqBase64;
  10872. if (res.data.renewalCodeSy) {
  10873. let sy = res.data.renewalCodeSy.replace(/[\r\n]/g, "");
  10874. let syBase64 = `data:image/png;base64,${sy}`;
  10875. this.renewalCodeSyImg = syBase64;
  10876. }
  10877. this.renewalCodedialogVisible = true;
  10878. } else {
  10879. this.totalCompanyList[num].quoteCode = "3";
  10880. this.totalCompanyList[num].msg = res.msg;
  10881. return;
  10882. }
  10883. });
  10884. },
  10885. //渤海报价
  10886. bohai(num, id) {
  10887. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  10888. let accidentalDrivingVo = {};
  10889. if (this.boHaiaccidentForm.projectCode) {
  10890. accidentalDrivingVo = {
  10891. // packageCode: this.boHaiaccidentForm.packageCode,
  10892. // productCode: this.boHaiaccidentDataList.find(
  10893. // (e) => e.packageCode == this.boHaiaccidentForm.packageCode
  10894. // ).productCode,
  10895. // copies: this.boHaiaccidentForm.copies,
  10896. ...this.boHaiaccidentDataList.find(
  10897. e => e.projectCode == this.boHaiaccidentForm.projectCode
  10898. ),
  10899. quantity: this.boHaiaccidentForm.copies
  10900. ? this.boHaiaccidentForm.copies
  10901. : "1"
  10902. };
  10903. }
  10904. accidentalDrivingVo =
  10905. this.totalCompanyList[num].programme.drivingList[0] || {};
  10906. let params = {
  10907. accidentalDrivingVo,
  10908. orderNo: this.orderno,
  10909. companyId: id,
  10910. cqryCdeJq: this.cqryCdeJq,
  10911. cqryCdeSy: this.cqryCdeSy,
  10912. renewalCodeJq: this.renewalCodeJq,
  10913. renewalCodeSy: this.renewalCodeSy,
  10914. agreementId: this.totalCompanyList[num].agreementId,
  10915. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  10916. kinds: this.totalCompanyList[num].kindList,
  10917. risks: this.riskList,
  10918. userId: this.userId
  10919. };
  10920. this.$api.letter.bohaiquote(params).then(res => {
  10921. this.totalCompanyList[num].msg = res.msg;
  10922. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  10923. this.totalCompanyList[num].quoteCode = "4";
  10924. this.totalCompanyList[num].msg = res.msg;
  10925. return;
  10926. } else if (
  10927. res.data == null &&
  10928. res.msg.indexOf("车险平台返回") > -1 &&
  10929. res.msg.indexOf(";终保日期") > -1
  10930. ) {
  10931. let time =
  10932. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  10933. this.jqstartDate = time;
  10934. this.jqendDate = this.oneYearPast1(time);
  10935. this.systartDate = time;
  10936. this.syendDate = this.oneYearPast1(time);
  10937. if (this.riskList.length > 0) {
  10938. for (let i = 0; i < this.riskList.length; i++) {
  10939. if (this.riskList[i].riskCode == "0507") {
  10940. this.riskList[i].startDate = time;
  10941. this.riskList[i].endDate = this.oneYearPast1(time);
  10942. } else if (this.riskList[i].riskCode == "0510") {
  10943. this.riskList[i].startDate = time;
  10944. this.riskList[i].endDate = this.oneYearPast1(time);
  10945. }
  10946. }
  10947. }
  10948. let param = {
  10949. userId: this.userId,
  10950. quoteno: this.quoteno,
  10951. orderNo: this.orderno,
  10952. carInfo: this.carInfo,
  10953. insuredPersonInfo: this.insuredPersonInfo,
  10954. ownerInfo: this.ownerInfo,
  10955. policyHolderInfo: this.policyHolderInfo,
  10956. kindList: this.kindList,
  10957. riskList: this.riskList,
  10958. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  10959. };
  10960. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  10961. this.bohai(num, id);
  10962. });
  10963. } else if (res.code == "200") {
  10964. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  10965. this.totalCompanyList[num].lastYearMsg = "";
  10966. let dat = res.data.warnMessageList;
  10967. dat.map(ele => {
  10968. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  10969. });
  10970. }
  10971. this.totalCompanyList[num].quoteCode = 200;
  10972. this.totalCompanyList[num].result = res.data;
  10973. this.jqstartDate = res.data.startDateJq;
  10974. this.jqendDate = res.data.endDateJq;
  10975. this.systartDate = res.data.startDateSy;
  10976. this.syendDate = res.data.endDateSy;
  10977. this.QuotationHistory();
  10978. } else if (res.code == "101") {
  10979. this.totalCompanyList[num].quoteCode = "101";
  10980. this.totalCompanyList[num].msg = res.msg;
  10981. this.cqryCdeJq = res.data.cqryCdeJq;
  10982. this.cqryCdeSy = res.data.cqryCdeSy;
  10983. let jq = res.data.renewalCodeJq.replace(/[\r\n]/g, "");
  10984. let jqBase64 = `data:image/png;base64,${jq}`;
  10985. this.renewalCodeJqImg = jqBase64;
  10986. if (res.data.renewalCodeSy) {
  10987. let sy = res.data.renewalCodeSy.replace(/[\r\n]/g, "");
  10988. let syBase64 = `data:image/png;base64,${sy}`;
  10989. this.renewalCodeSyImg = syBase64;
  10990. }
  10991. this.renewalCodedialogVisible = true;
  10992. } else {
  10993. this.totalCompanyList[num].quoteCode = "3";
  10994. this.totalCompanyList[num].msg = res.msg;
  10995. return;
  10996. }
  10997. });
  10998. },
  10999. // 爬虫对接
  11000. quoteInsurance(num, id, namesimple, apiType) {
  11001. let api = apiType == 2 ? "pythonquote" : "";
  11002. if (namesimple == "诚泰财险" || namesimple == "恒邦财险") {
  11003. api = "pythonquote";
  11004. }
  11005. let ccidenttype = this.totalCompanyList[num].cnName;
  11006. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  11007. // accidentalDrivingVo = this.totalCompanyList[num].programme.drivingList[0] || {}
  11008. let params = {
  11009. // accidentalDrivingVo: this[ccidenttype + "accidentalDrivingVo"],
  11010. accidentalDrivingVo:
  11011. this.totalCompanyList[num].programme.drivingList[0] || {},
  11012. orderNo: this.orderno,
  11013. companyId: id,
  11014. userId: this.userId,
  11015. agreementId: this.totalCompanyList[num].agreementId,
  11016. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  11017. kinds: this.totalCompanyList[num].kindList || [],
  11018. risks: this.riskList || [],
  11019. productId: this.productId,
  11020. // coefficient:this.totalCompanyList[num].coefficient,
  11021. };
  11022. if(namesimple == "恒邦财险") {
  11023. params.coefficient = this.totalCompanyList[num].coefficient
  11024. }
  11025. if (namesimple == "中国人寿" && this.lastCompanyId) {
  11026. params.discount = this.totalCompanyList[num].discount;
  11027. params.lastCompanyId = this.lastCompanyId;
  11028. }
  11029. if (
  11030. namesimple == "华农财险" &&
  11031. this.huanongaccidentalDrivingVo.quantity
  11032. ) {
  11033. params.accidentalDrivingVo.quantity = this.accidentFormHN.quantity;
  11034. // params.accidentalDrivingVo.allQuantity = this.accidentFormHN.allQuantity;
  11035. }
  11036. if (namesimple == "诚泰财险" && this.totalCompanyList[num].result.initialProposalDiscount) {
  11037. params.discount = this.totalCompanyList[num].result.expectedDiscount;
  11038. params.coefficient = this.totalCompanyList[num].result.pricingCoefficient;
  11039. if (this.lastCompanyId) {
  11040. params.lastCompanyId = this.lastCompanyId
  11041. }
  11042. }
  11043. if (namesimple == '人保财险') {
  11044. params.priceCoefficient = this.totalCompanyList[num].result.priceCoefficient
  11045. params.preDiscount = this.totalCompanyList[num].result.preDiscount
  11046. }
  11047. this.$api.letter[api](params).then(res => {
  11048. this.totalCompanyList[num].msg = res.msg;
  11049. switch (namesimple) {
  11050. case "申能财险":
  11051. case "渤海财险":
  11052. case "大地财险":
  11053. case "安盛天平":
  11054. case "诚泰财险":
  11055. case "泰康财险":
  11056. case "中国人寿":
  11057. case "人保财险":
  11058. case "恒邦财险":
  11059. case "华农财险":
  11060. case "华安财险":
  11061. case "泰山财险":
  11062. case "太平财险":
  11063. case "太平洋财险":
  11064. if (!!res.data) {
  11065. if (
  11066. res.data.warnMessageList &&
  11067. res.data.warnMessageList.length > 0
  11068. ) {
  11069. this.totalCompanyList[num].lastYearMsg = "";
  11070. let dat = res.data.warnMessageList;
  11071. dat.map(ele => {
  11072. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  11073. });
  11074. }
  11075. if (res.data.predictInfo && res.data.predictInfo.length > 0) {
  11076. this.totalCompanyList[num].predictInfo = res.data.predictInfo;
  11077. }
  11078. this.totalCompanyList[num].quoteCode = 200;
  11079. this.totalCompanyList[num].result = res.data;
  11080. this.vehicleInspectionUrl = this.totalCompanyList[
  11081. num
  11082. ].result.vehicleInspectionUrl;
  11083. if (res.data.companyId) {
  11084. this.lastCompanyId = res.data.companyId;
  11085. }
  11086. this.jqstartDate = res.data.startDateJq;
  11087. this.jqendDate = res.data.endDateJq;
  11088. this.systartDate = res.data.startDateSy;
  11089. this.syendDate = res.data.endDateSy;
  11090. this.QuotationHistory();
  11091. } else {
  11092. this.totalCompanyList[num].quoteCode = "3";
  11093. this.totalCompanyList[num].msg = res.msg;
  11094. return;
  11095. }
  11096. break;
  11097. case "众安平安":
  11098. if (!!res.data) {
  11099. if (res.data.tips == "需要验车") {
  11100. this.$notify.error({
  11101. title: "通融单",
  11102. duration: 0,
  11103. dangerouslyUseHTMLString: true,
  11104. message: `<div> ${res.data.warnMessageList
  11105. .map(item => {
  11106. return `<p>${item}</p>`;
  11107. })
  11108. .join("")}
  11109. </div>`
  11110. });
  11111. }
  11112. if (
  11113. res.data.warnMessageList &&
  11114. res.data.warnMessageList.length > 0
  11115. ) {
  11116. this.totalCompanyList[num].lastYearMsg = "";
  11117. let dat = res.data.warnMessageList;
  11118. dat.map(ele => {
  11119. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  11120. });
  11121. }
  11122. this.totalCompanyList[num].quoteCode = 200;
  11123. this.totalCompanyList[num].result = res.data;
  11124. this.jqstartDate = res.data.startDateJq;
  11125. this.jqendDate = res.data.endDateJq;
  11126. this.systartDate = res.data.startDateSy;
  11127. this.syendDate = res.data.endDateSy;
  11128. this.QuotationHistory();
  11129. } else {
  11130. this.totalCompanyList[num].quoteCode = "3";
  11131. this.totalCompanyList[num].msg = res.msg;
  11132. return;
  11133. }
  11134. break;
  11135. default:
  11136. break;
  11137. }
  11138. });
  11139. },
  11140. // 申能财险
  11141. shenneng(num, id, namesimple) {
  11142. this.quoteInsurance(
  11143. num,
  11144. id,
  11145. namesimple,
  11146. this.totalCompanyList[num].apiType
  11147. );
  11148. },
  11149. // 大地财险
  11150. dadi(num, id, namesimple) {
  11151. this.quoteInsurance(
  11152. num,
  11153. id,
  11154. namesimple,
  11155. this.totalCompanyList[num].apiType
  11156. );
  11157. },
  11158. //安盛天平
  11159. ansheng(num, id, namesimple) {
  11160. this.quoteInsurance(
  11161. num,
  11162. id,
  11163. namesimple,
  11164. this.totalCompanyList[num].apiType
  11165. );
  11166. },
  11167. //众安
  11168. zhongan(num, id, namesimple) {
  11169. this.quoteInsurance(
  11170. num,
  11171. id,
  11172. namesimple,
  11173. this.totalCompanyList[num].apiType
  11174. );
  11175. },
  11176. //人寿
  11177. renshou(num, id, namesimple) {
  11178. this.quoteInsurance(
  11179. num,
  11180. id,
  11181. namesimple,
  11182. this.totalCompanyList[num].apiType
  11183. );
  11184. },
  11185. //人保
  11186. renbao(num, id, namesimple) {
  11187. this.quoteInsurance(
  11188. num,
  11189. id,
  11190. namesimple,
  11191. this.totalCompanyList[num].apiType
  11192. );
  11193. },
  11194. //恒邦
  11195. hengbang(num, id, namesimple) {
  11196. this.quoteInsurance(
  11197. num,
  11198. id,
  11199. namesimple,
  11200. this.totalCompanyList[num].apiType
  11201. );
  11202. },
  11203. //太平洋
  11204. taipingyang(num, id, namesimple) {
  11205. this.quoteInsurance(
  11206. num,
  11207. id,
  11208. namesimple,
  11209. this.totalCompanyList[num].apiType
  11210. );
  11211. },
  11212. //诚泰
  11213. chengtai(num, id, namesimple) {
  11214. this.quoteInsurance(
  11215. num,
  11216. id,
  11217. namesimple,
  11218. this.totalCompanyList[num].apiType
  11219. );
  11220. },
  11221. //太平
  11222. taiping(num, id, namesimple) {
  11223. this.quoteInsurance(
  11224. num,
  11225. id,
  11226. namesimple,
  11227. this.totalCompanyList[num].apiType
  11228. );
  11229. },
  11230. //华农
  11231. huanong(num, id, namesimple) {
  11232. this.quoteInsurance(
  11233. num,
  11234. id,
  11235. namesimple,
  11236. this.totalCompanyList[num].apiType
  11237. );
  11238. },
  11239. huaan(num, id, namesimple) {
  11240. this.quoteInsurance(
  11241. num,
  11242. id,
  11243. namesimple,
  11244. this.totalCompanyList[num].apiType
  11245. );
  11246. },
  11247. taishan(num, id, namesimple) {
  11248. this.quoteInsurance(
  11249. num,
  11250. id,
  11251. namesimple,
  11252. this.totalCompanyList[num].apiType
  11253. );
  11254. },
  11255. capTypedictTag(val, option) {
  11256. if (option.find(item => item.dictValue == val)) {
  11257. return option.find(item => item.dictValue == val).dictTag;
  11258. } else {
  11259. return "-";
  11260. }
  11261. },
  11262. // 爬虫对接
  11263. qoutedetail(companyId) {
  11264. let params = {
  11265. companyId: companyId
  11266. };
  11267. this.$api.letter.getByCompanyId(params).then(res => {
  11268. if (res.code == "200") {
  11269. var data = res.data;
  11270. data.kindinfo.map((ele, index) => {
  11271. switch (ele.kindCode) {
  11272. case "A":
  11273. ele.amount = "投保";
  11274. break;
  11275. case "D4":
  11276. case "SY_FJ_YBW2":
  11277. ele.unitAmount = this.toChinesNum(ele.unitAmount);
  11278. break;
  11279. case "MJ1":
  11280. case "MJ2":
  11281. case "MJ3":
  11282. case "MJ4":
  11283. ele.deductibleRate = ele.deductibleRate + "%";
  11284. break;
  11285. default:
  11286. ele.amount = this.toChinesNum(ele.amount);
  11287. }
  11288. return ele;
  11289. });
  11290. if (
  11291. (data.carinfo.carnature && data.carinfo.carnature == "02") ||
  11292. data.carinfo.carnature == "非营业"
  11293. ) {
  11294. data.carinfo.vehicleUse = this.capTypedictTag(
  11295. data.carinfo.vehicleUse,
  11296. this.outOfBusinessVehicleUseoptions
  11297. );
  11298. } else {
  11299. data.carinfo.vehicleUse = this.capTypedictTag(
  11300. data.carinfo.vehicleUse,
  11301. this.businessVehicleUseoptions
  11302. );
  11303. }
  11304. data.carinfo.carnature = this.capTypedictTag(
  11305. data.carinfo.carnature,
  11306. this.natureOfVehicleUseoptions
  11307. );
  11308. data.carinfo.cartype = data.carinfo.cartype
  11309. ? this.capTypedictTag(
  11310. data.carinfo.cartype,
  11311. this.trafficManagementVehicleTypeoptions
  11312. )
  11313. : "";
  11314. data.carinfo.cimodelclass = data.carinfo.cimodelclass
  11315. ? this.capTypedictTag(
  11316. data.carinfo.cimodelclass,
  11317. this.vehicleTypeoptions
  11318. )
  11319. : "";
  11320. data.carinfo.energyType = data.carinfo.energyType
  11321. ? this.capTypedictTag(
  11322. data.carinfo.energyType,
  11323. this.energyTypeoptions
  11324. )
  11325. : "";
  11326. this.queryOrders = data;
  11327. //赋值费用信息
  11328. // this.feeDetailInfo=data.orderFeeResult;
  11329. }
  11330. });
  11331. this.$refs.detailsDialog.setBackupVisible(true);
  11332. },
  11333. imageUpload() {
  11334. this.imageUploaddialogVisible = true;
  11335. // this.$refs.imageDialog.setBackupVisible(true);
  11336. },
  11337. tabLiScroll(id, idx) {
  11338. this.tabLiIndex = idx;
  11339. document.getElementById(id).scrollIntoView({ behavior: "smooth" });
  11340. },
  11341. //影像上传
  11342. drivingupload(file, imageIdList, imgurl, type) {
  11343. let that = this;
  11344. let size = file.size / 1024 / 1024 < 5;
  11345. const isJPG =
  11346. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  11347. if (!size) {
  11348. this.$message.error("上传图片大小不能超过 5MB!");
  11349. this[imgurl] = [];
  11350. return false;
  11351. }
  11352. if (!isJPG) {
  11353. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  11354. this[imgurl] = [];
  11355. return false;
  11356. }
  11357. this[imgurl].push(file);
  11358. var file = file.raw;
  11359. const params = new FormData(); // 声明formData数据类型
  11360. params.append("multipartFile", file);
  11361. params.append("type", "image");
  11362. this.$api.letter.uploadFile(params).then(res => {
  11363. if (res.code == "200") {
  11364. if (this[imageIdList].some(v => v.imageType == type)) {
  11365. this[imageIdList].map(val => {
  11366. if (val.imageType == type) {
  11367. val.imageId = res.data.id;
  11368. }
  11369. });
  11370. } else {
  11371. this[imageIdList].push({
  11372. imageId: res.data.id,
  11373. imageType: type
  11374. });
  11375. }
  11376. }
  11377. });
  11378. },
  11379. imageEcho(quotenos) {
  11380. //影像查询
  11381. this.$api.letter.findByQuoteNo(quotenos).then(res => {
  11382. if (res.code == "200") {
  11383. this.imageList1 = [];
  11384. this.imageList2 = [];
  11385. this.imageList3 = [];
  11386. this.imageList4 = [];
  11387. this.imageList5 = [];
  11388. this.imageList6 = [];
  11389. this.imgList1 = [];
  11390. this.imgList2 = [];
  11391. this.imgList3 = [];
  11392. this.imgList4 = [];
  11393. this.imgList5 = [];
  11394. this.imgList6 = [];
  11395. this.imgList7 = [];
  11396. this.imgList8 = [];
  11397. this.imgList9 = [];
  11398. this.imgList10 = [];
  11399. this.imgList11 = [];
  11400. this.imgList12 = [];
  11401. this.imgList13 = [];
  11402. this.imgList14 = [];
  11403. this.imgList15 = [];
  11404. this.imgList16 = [];
  11405. this.imgList17 = [];
  11406. this.imgList18 = [];
  11407. this.imgList19 = [];
  11408. this.imgList20 = [];
  11409. this.imgList21 = [];
  11410. this.imgList22 = [];
  11411. this.imgList23 = [];
  11412. this.imgList24 = [];
  11413. this.imgList25 = [];
  11414. this.imgList26 = [];
  11415. this.imgList27 = [];
  11416. this.imgList28 = [];
  11417. Object.keys(res.data).forEach(keys => {
  11418. if (res.data[keys].url) {
  11419. res.data[keys].url = process.env.BASE_URL + res.data[keys].url;
  11420. switch (keys) {
  11421. case "C01":
  11422. this.imageList1.push({
  11423. imageId: res.data[keys].imageId,
  11424. imageType: res.data[keys].imageType
  11425. });
  11426. this.imgList1.push(res.data[keys]);
  11427. break;
  11428. case "D01":
  11429. this.imageList1.push({
  11430. imageId: res.data[keys].imageId,
  11431. imageType: res.data[keys].imageType
  11432. });
  11433. this.imgList2.push(res.data[keys]);
  11434. break;
  11435. case "C02":
  11436. this.imageList2.push({
  11437. imageId: res.data[keys].imageId,
  11438. imageType: res.data[keys].imageType
  11439. });
  11440. this.imgList3.push(res.data[keys]);
  11441. break;
  11442. case "D02":
  11443. this.imageList2.push({
  11444. imageId: res.data[keys].imageId,
  11445. imageType: res.data[keys].imageType
  11446. });
  11447. this.imgList4.push(res.data[keys]);
  11448. break;
  11449. case "Y02":
  11450. this.imageList2.push({
  11451. imageId: res.data[keys].imageId,
  11452. imageType: res.data[keys].imageType
  11453. });
  11454. this.imgList26.push(res.data[keys]);
  11455. break;
  11456. case "C03":
  11457. this.imageList3.push({
  11458. imageId: res.data[keys].imageId,
  11459. imageType: res.data[keys].imageType
  11460. });
  11461. this.imgList5.push(res.data[keys]);
  11462. break;
  11463. case "D03":
  11464. this.imageList3.push({
  11465. imageId: res.data[keys].imageId,
  11466. imageType: res.data[keys].imageType
  11467. });
  11468. this.imgList6.push(res.data[keys]);
  11469. break;
  11470. case "Y03":
  11471. this.imageList3.push({
  11472. imageId: res.data[keys].imageId,
  11473. imageType: res.data[keys].imageType
  11474. });
  11475. this.imgList27.push(res.data[keys]);
  11476. break;
  11477. case "C04":
  11478. this.imageList4.push({
  11479. imageId: res.data[keys].imageId,
  11480. imageType: res.data[keys].imageType
  11481. });
  11482. this.imgList7.push(res.data[keys]);
  11483. break;
  11484. case "D04":
  11485. this.imageList4.push({
  11486. imageId: res.data[keys].imageId,
  11487. imageType: res.data[keys].imageType
  11488. });
  11489. this.imgList8.push(res.data[keys]);
  11490. break;
  11491. case "Y04":
  11492. this.imageList4.push({
  11493. imageId: res.data[keys].imageId,
  11494. imageType: res.data[keys].imageType
  11495. });
  11496. this.imgList28.push(res.data[keys]);
  11497. break;
  11498. case "XC00":
  11499. this.imageList5.push({
  11500. imageId: res.data[keys].imageId,
  11501. imageType: res.data[keys].imageType
  11502. });
  11503. this.imgList9.push(res.data[keys]);
  11504. break;
  11505. case "GC00":
  11506. this.imageList5.push({
  11507. imageId: res.data[keys].imageId,
  11508. imageType: res.data[keys].imageType
  11509. });
  11510. this.imgList10.push(res.data[keys]);
  11511. break;
  11512. case "GX00":
  11513. this.imageList5.push({
  11514. imageId: res.data[keys].imageId,
  11515. imageType: res.data[keys].imageType
  11516. });
  11517. this.imgList11.push(res.data[keys]);
  11518. break;
  11519. case "TAR05":
  11520. this.imageList1.push({
  11521. imageId: res.data[keys].imageId,
  11522. imageType: res.data[keys].imageType
  11523. });
  11524. this.imgList12.push(res.data[keys]);
  11525. break;
  11526. case "C0500":
  11527. this.imageList6.push({
  11528. imageId: res.data[keys].imageId,
  11529. imageType: res.data[keys].imageType
  11530. });
  11531. this.imgList13.push(res.data[keys]);
  11532. break;
  11533. case "C0501":
  11534. this.imageList6.push({
  11535. imageId: res.data[keys].imageId,
  11536. imageType: res.data[keys].imageType
  11537. });
  11538. this.imgList14.push(res.data[keys]);
  11539. break;
  11540. case "C0502":
  11541. this.imageList6.push({
  11542. imageId: res.data[keys].imageId,
  11543. imageType: res.data[keys].imageType
  11544. });
  11545. this.imgList15.push(res.data[keys]);
  11546. break;
  11547. case "C0503":
  11548. this.imageList6.push({
  11549. imageId: res.data[keys].imageId,
  11550. imageType: res.data[keys].imageType
  11551. });
  11552. this.imgList16.push(res.data[keys]);
  11553. break;
  11554. case "C0504":
  11555. this.imageList6.push({
  11556. imageId: res.data[keys].imageId,
  11557. imageType: res.data[keys].imageType
  11558. });
  11559. this.imgList17.push(res.data[keys]);
  11560. break;
  11561. case "C0506":
  11562. this.imageList6.push({
  11563. imageId: res.data[keys].imageId,
  11564. imageType: res.data[keys].imageType
  11565. });
  11566. this.imgList18.push(res.data[keys]);
  11567. break;
  11568. case "C0507":
  11569. this.imageList6.push({
  11570. imageId: res.data[keys].imageId,
  11571. imageType: res.data[keys].imageType
  11572. });
  11573. this.imgList19.push(res.data[keys]);
  11574. break;
  11575. case "C0505":
  11576. this.imageList6.push({
  11577. imageId: res.data[keys].imageId,
  11578. imageType: res.data[keys].imageType
  11579. });
  11580. this.imgList20.push(res.data[keys]);
  11581. break;
  11582. case "C0508":
  11583. this.imageList6.push({
  11584. imageId: res.data[keys].imageId,
  11585. imageType: res.data[keys].imageType
  11586. });
  11587. this.imgList21.push(res.data[keys]);
  11588. break;
  11589. case "C0509":
  11590. this.imageList6.push({
  11591. imageId: res.data[keys].imageId,
  11592. imageType: res.data[keys].imageType
  11593. });
  11594. this.imgList22.push(res.data[keys]);
  11595. break;
  11596. case "C0510":
  11597. this.imageList6.push({
  11598. imageId: res.data[keys].imageId,
  11599. imageType: res.data[keys].imageType
  11600. });
  11601. this.imgList23.push(res.data[keys]);
  11602. break;
  11603. case "LAST_INSURANCE_POLICY":
  11604. this.imageList6.push({
  11605. imageId: res.data[keys].imageId,
  11606. imageType: res.data[keys].imageType
  11607. });
  11608. this.imgList24.push(res.data[keys]);
  11609. break;
  11610. case "SQ00":
  11611. this.imageList6.push({
  11612. imageId: res.data[keys].imageId,
  11613. imageType: res.data[keys].imageType
  11614. });
  11615. this.imgList25.push(res.data[keys]);
  11616. break;
  11617. default:
  11618. break;
  11619. }
  11620. }
  11621. });
  11622. } else {
  11623. this.$message({ message: res.msg, type: "info" });
  11624. }
  11625. });
  11626. },
  11627. policyUpload() {
  11628. this.policyNumberForm.jqPolicyList = !this.policyNumberForm.jqPolicyList
  11629. ? []
  11630. : this.policyNumberForm.jqPolicyList;
  11631. this.policyNumberForm.jqSignList = !this.policyNumberForm.jqSignList
  11632. ? []
  11633. : this.policyNumberForm.jqSignList;
  11634. this.policyNumberForm.syPolicyList = !this.policyNumberForm.syPolicyList
  11635. ? []
  11636. : this.policyNumberForm.syPolicyList;
  11637. this.policyNumberForm.noPolicyList = !this.policyNumberForm.noPolicyList
  11638. ? []
  11639. : this.policyNumberForm.noPolicyList;
  11640. this.policyUploaddialogVisible = true;
  11641. },
  11642. cancelorder(item) {
  11643. if (item.inscompany == "紫金财险") {
  11644. this.$api.letter.zijincancelorder({ companyId: item.id }).then(res => {
  11645. if (res.code == 200) {
  11646. this.$message({
  11647. message: res.msg,
  11648. type: "success"
  11649. });
  11650. this.QuotationHistory();
  11651. }
  11652. });
  11653. } else if (item.inscompany == "诚泰财险") {
  11654. this.$api.letter
  11655. .chengtaicancelorder({ companyId: item.id })
  11656. .then(res => {
  11657. if (res.code == 200) {
  11658. this.$message({
  11659. message: res.msg,
  11660. type: "success"
  11661. });
  11662. this.findPage();
  11663. }
  11664. });
  11665. } else if (item.inscompany == "阳光财险") {
  11666. this.$api.letter
  11667. .yangGuangautoWriteOff({ companyId: item.id })
  11668. .then(res => {
  11669. if (res.code == 200) {
  11670. this.$message({
  11671. message: res.msg,
  11672. type: "success"
  11673. });
  11674. this.findPage();
  11675. }
  11676. });
  11677. }
  11678. },
  11679. // 核保成功后请求该接口
  11680. handleCreateEquityOrder(id) {
  11681. this.$api.task.createEquityOrder(id).then(res => {
  11682. if(res.code === 200) {
  11683. } else {
  11684. this.$message({
  11685. message: res.msg,
  11686. type: 'warning'
  11687. })
  11688. }
  11689. })
  11690. },
  11691. hbsubmitdialog(data, index) {
  11692. this.typeDialogIndex = index; // 当前的公司index
  11693. if (this.imageList1.length == 0 && this.imageList2.length == 0) {
  11694. this.$message({ message: "影像不全,先上传影像", type: "error" });
  11695. return;
  11696. }
  11697. this.companyId = data.result.companyId;
  11698. this.apiType = data.result.apiType;
  11699. this.hbsubmitdialogVisible = true;
  11700. this.contributingState = false;
  11701. if (data.namesimple == "紫金财险") {
  11702. // this.getClauseData(this.companyId, index)
  11703. this.$api.letter
  11704. .zijinqueryClauseData({ companyId: this.companyId })
  11705. .then(res => {
  11706. this.zijinengageListData = res.data;
  11707. });
  11708. }
  11709. if (data.namesimple == "华泰财险") {
  11710. this.zijinengageList = [];
  11711. // this.getClauseData(this.companyId, index)
  11712. this.$api.letter
  11713. .huataiqueryClauseData({ companyId: this.companyId })
  11714. .then(res => {
  11715. res.data.forEach(val => {
  11716. val.clauseCode = val.engageCode;
  11717. val.clauseName = val.engageTitle;
  11718. val.clauseContent = val.engageDetail;
  11719. val.clauses = val.engageDetail;
  11720. });
  11721. this.zijinengageListData = res.data;
  11722. this.zijinengageListData.forEach(val => {
  11723. this.$nextTick(() => {
  11724. if (val.optType == "2") {
  11725. this.zijinengageList.push(val);
  11726. this.$refs.expandTablePro.toggleRowSelection(val, true);
  11727. }
  11728. });
  11729. });
  11730. });
  11731. } else {
  11732. this.zijinengageListData = [];
  11733. }
  11734. // switch (data.namesimple) {
  11735. // case "紫金财险":
  11736. // this.$api.letter.zijinqueryClauseData({ companyId: this.companyId }).then(res => {
  11737. // this.zijinengageListData = res.data;
  11738. // });
  11739. // break;
  11740. // default:
  11741. // break;
  11742. // }
  11743. },
  11744. hbsubmit() {
  11745. this.hbsubmitdialogVisible = false;
  11746. this.contributingState = false;
  11747. this.$api.letter
  11748. .getByCompanyId({ companyId: this.companyId })
  11749. .then(async res => {
  11750. if (res.code == 200) {
  11751. var data = res.data;
  11752. this.queryOrders = data;
  11753. const loading = this.$loading({
  11754. lock: true,
  11755. text: "Loading",
  11756. spinner: "el-icon-loading",
  11757. background: "rgba(0, 0, 0, 0.7)"
  11758. });
  11759. switch (this.queryOrders.inscompany) {
  11760. case "永安财险":
  11761. let api = "";
  11762. api =
  11763. this.apiType == 2
  11764. ? "pythonsubmitImage"
  11765. : "insyongansubmitImage";
  11766. await this.$api.letter[api]({
  11767. [this.apiType == 2 ? "subOrderNo" : "companyId"]: this.companyId
  11768. }).then(res => {
  11769. if (res.code == "200") {
  11770. var _this = this;
  11771. let api1 = "";
  11772. api1 = this.apiType == 2 ? "pythonaudit" : "yonganaudit";
  11773. this.$api.letter[api1]({
  11774. [this.apiType == 2 ? "subOrderNo" : "companyId"]: this.companyId
  11775. }).then(res => {
  11776. var _this = this;
  11777. if (res.code == "200") {
  11778. loading.close();
  11779. this.$message({
  11780. message: "核保成功",
  11781. type: "success"
  11782. });
  11783. this.handleCreateEquityOrder(this.companyId)
  11784. this.QuotationHistory();
  11785. _this.$api.letter
  11786. .getByCompanyId({ companyId: this.companyId })
  11787. .then(res => {
  11788. _this.orderstatus = res.data.orderstatus; //订单状态
  11789. _this.underwritingdialogVisible = true;
  11790. let indexid = this.totalCompanyList.findIndex(
  11791. item =>
  11792. item.namesimple == this.queryOrders.inscompany
  11793. );
  11794. this.totalCompanyList[indexid].orderstatus =
  11795. res.data.orderstatus;
  11796. });
  11797. } else {
  11798. loading.close();
  11799. this.$message({
  11800. showClose: true,
  11801. message:
  11802. this.queryOrders.inscompany + "提核--:" + res.msg,
  11803. type: "error",
  11804. duration: 0
  11805. });
  11806. }
  11807. });
  11808. } else {
  11809. this.$message({
  11810. message: this.queryOrders.inscompany + "影像:" + res.msg,
  11811. type: "error",
  11812. duration: 7000
  11813. });
  11814. loading.close();
  11815. }
  11816. });
  11817. break;
  11818. case "中煤财险":
  11819. let ZMApiImage = "";
  11820. ZMApiImage =
  11821. this.apiType == 2
  11822. ? "pythonsubmitImage"
  11823. : "insZhongmeisubmitImage";
  11824. await this.$api.letter[ZMApiImage]({
  11825. [this.apiType == 2 ? "subOrderNo" : "companyId"]: this
  11826. .companyId
  11827. }).then(res => {
  11828. // await this.$api.letter
  11829. // .insZhongmeisubmitImage({
  11830. // companyId: this.companyId,
  11831. // })
  11832. // .then((res) => {
  11833. if (res.code == "200") {
  11834. var _this = this;
  11835. let ZMApiaudit = "";
  11836. ZMApiaudit =
  11837. this.apiType == 2 ? "pythonaudit" : "Zhongmeiaudit";
  11838. _this.$api.letter[ZMApiaudit]({
  11839. // _this.$api.letter
  11840. // .Zhongmeiaudit({
  11841. [this.apiType == 2 ? "subOrderNo" : "companyId"]: this
  11842. .companyId,
  11843. // companyId: this.companyId,
  11844. jqappoint: "",
  11845. syappoint: ""
  11846. }).then(res => {
  11847. if (res.code == "200") {
  11848. loading.close();
  11849. _this.$message({
  11850. message: "核保成功",
  11851. type: "success"
  11852. });
  11853. this.handleCreateEquityOrder(this.companyId)
  11854. this.QuotationHistory();
  11855. _this.$api.letter
  11856. .getByCompanyId({ companyId: this.companyId })
  11857. .then(res => {
  11858. _this.orderstatus = res.data.orderstatus; //订单状态
  11859. _this.underwritingdialogVisible = true;
  11860. let indexid = this.totalCompanyList.findIndex(
  11861. item =>
  11862. item.namesimple == this.queryOrders.inscompany
  11863. );
  11864. this.totalCompanyList[indexid].orderstatus =
  11865. res.data.orderstatus;
  11866. });
  11867. } else {
  11868. loading.close();
  11869. _this.$message({
  11870. showClose: true,
  11871. message:
  11872. this.queryOrders.inscompany + "提核--:" + res.msg,
  11873. type: "error",
  11874. duration: 0
  11875. });
  11876. _this.$api.letter
  11877. .getByCompanyId({ companyId: this.companyId })
  11878. .then(res => {
  11879. _this.orderstatus = res.data.orderstatus; //订单状态
  11880. });
  11881. }
  11882. });
  11883. } else {
  11884. this.$message({
  11885. message:
  11886. this.queryOrders.inscompany + "影像--:" + res.msg,
  11887. type: "error",
  11888. duration: 7000
  11889. });
  11890. loading.close();
  11891. }
  11892. });
  11893. break;
  11894. case "诚泰财险":
  11895. let CtApiImage = "";
  11896. CtApiImage =
  11897. this.apiType == 2
  11898. ? "pythonsubmitImage"
  11899. : "chengtaisubmitImage";
  11900. await this.$api.letter[CtApiImage]({
  11901. [this.apiType == 2 ? "subOrderNo" : "companyId"]: this
  11902. .companyId
  11903. }).then(res => {
  11904. if (res.code == "200") {
  11905. var _this = this;
  11906. let CtApiaudit = "";
  11907. CtApiaudit =
  11908. this.apiType == 2 ? "pythonaudit" : "chengtaiaudit";
  11909. let engageList = [];
  11910. this.zijinengageList.forEach(val => {
  11911. engageList.push({
  11912. engageCode: val.clauseCode,
  11913. engageDetail: val.clauses,
  11914. engageTitle: val.clauseName,
  11915. riskCode: val.riskCode
  11916. });
  11917. });
  11918. _this.$api.letter[CtApiaudit]({
  11919. [this.apiType == 2 ? "subOrderNo" : "companyId"]: this
  11920. .companyId,
  11921. engageList
  11922. }).then(res => {
  11923. if (res.code == "200") {
  11924. loading.close();
  11925. _this.$message({
  11926. message: "核保成功",
  11927. type: "success"
  11928. });
  11929. this.handleCreateEquityOrder(this.companyId)
  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 == this.queryOrders.inscompany
  11939. );
  11940. this.totalCompanyList[indexid].orderstatus =
  11941. res.data.orderstatus;
  11942. });
  11943. } else {
  11944. loading.close();
  11945. _this.$message({
  11946. showClose: true,
  11947. message:
  11948. this.queryOrders.inscompany + "提核--:" + res.msg,
  11949. type: "error",
  11950. duration: 0
  11951. });
  11952. _this.$api.letter
  11953. .getByCompanyId({ companyId: this.companyId })
  11954. .then(res => {
  11955. _this.orderstatus = res.data.orderstatus; //订单状态
  11956. });
  11957. }
  11958. });
  11959. } else {
  11960. this.$message({
  11961. message:
  11962. this.queryOrders.inscompany + "影像--:" + res.msg,
  11963. type: "error",
  11964. duration: 7000
  11965. });
  11966. loading.close();
  11967. }
  11968. });
  11969. break;
  11970. case "华泰财险":
  11971. let HtApiImage = "";
  11972. HtApiImage =
  11973. this.apiType == 2
  11974. ? "pythonsubmitImage"
  11975. : "insHuataisubmitImage";
  11976. await this.$api.letter[HtApiImage]({
  11977. [this.apiType == 2 ? "subOrderNo" : "companyId"]: this
  11978. .companyId
  11979. }).then(res => {
  11980. if (res.code == "200") {
  11981. var _this = this;
  11982. let HtApiaudit = "";
  11983. HtApiaudit =
  11984. this.apiType == 2 ? "pythonaudit" : "huataiaudit";
  11985. let engageList = [];
  11986. this.zijinengageList.forEach(val => {
  11987. engageList.push({
  11988. engageCode: val.clauseCode,
  11989. engageDetail: val.clauses,
  11990. engageTitle: val.clauseName,
  11991. riskCode: val.riskCode
  11992. });
  11993. });
  11994. _this.$api.letter[HtApiaudit]({
  11995. [this.apiType == 2 ? "subOrderNo" : "companyId"]: this
  11996. .companyId,
  11997. engageList
  11998. }).then(res => {
  11999. if (res.code == "200") {
  12000. loading.close();
  12001. _this.$message({
  12002. message: "核保成功",
  12003. type: "success"
  12004. });
  12005. this.handleCreateEquityOrder(this.companyId)
  12006. this.QuotationHistory();
  12007. _this.$api.letter
  12008. .getByCompanyId({ companyId: this.companyId })
  12009. .then(res => {
  12010. _this.orderstatus = res.data.orderstatus; //订单状态
  12011. _this.underwritingdialogVisible = true;
  12012. let indexid = this.totalCompanyList.findIndex(
  12013. item =>
  12014. item.namesimple == this.queryOrders.inscompany
  12015. );
  12016. this.totalCompanyList[indexid].orderstatus =
  12017. res.data.orderstatus;
  12018. });
  12019. } else {
  12020. loading.close();
  12021. _this.$message({
  12022. showClose: true,
  12023. message:
  12024. this.queryOrders.inscompany + "提核--:" + res.msg,
  12025. type: "error",
  12026. duration: 0
  12027. });
  12028. _this.$api.letter
  12029. .getByCompanyId({ companyId: this.companyId })
  12030. .then(res => {
  12031. _this.orderstatus = res.data.orderstatus; //订单状态
  12032. });
  12033. }
  12034. });
  12035. } else {
  12036. this.$message({
  12037. message:
  12038. this.queryOrders.inscompany + "影像--:" + res.msg,
  12039. type: "error",
  12040. duration: 7000
  12041. });
  12042. loading.close();
  12043. }
  12044. });
  12045. break;
  12046. case "紫金财险":
  12047. let zjApiImage = "";
  12048. zjApiImage =
  12049. this.apiType == 2
  12050. ? "pythonsubmitImage"
  12051. : "zijinsubmitImage";
  12052. await this.$api.letter[zjApiImage]({
  12053. [this.apiType == 2 ? "subOrderNo" : "companyId"]: this.companyId
  12054. })
  12055. .then(res => {
  12056. if (res.code == "200") {
  12057. var _this = this;
  12058. let zjApiaudit = "";
  12059. zjApiaudit =
  12060. this.apiType == 2 ? "pythonaudit" : "zijinaudit";
  12061. _this.$api.letter
  12062. [zjApiaudit]({
  12063. [this.apiType == 2 ? "subOrderNo" : "companyId"]: this.companyId,
  12064. engageList: this.zijinengageList
  12065. })
  12066. .then(res => {
  12067. if (res.code == "200") {
  12068. loading.close();
  12069. _this.$message({
  12070. message: "核保成功",
  12071. type: "success"
  12072. });
  12073. this.handleCreateEquityOrder(this.companyId)
  12074. this.QuotationHistory();
  12075. _this.$api.letter
  12076. .getByCompanyId({ companyId: this.companyId })
  12077. .then(res => {
  12078. _this.orderstatus = res.data.orderstatus; //订单状态
  12079. _this.underwritingdialogVisible = true;
  12080. let indexid = this.totalCompanyList.findIndex(
  12081. item =>
  12082. item.namesimple ==
  12083. this.queryOrders.inscompany
  12084. );
  12085. this.totalCompanyList[indexid].orderstatus =
  12086. res.data.orderstatus;
  12087. });
  12088. } else {
  12089. loading.close();
  12090. _this.$message({
  12091. showClose: true,
  12092. dangerouslyUseHTMLString: true,
  12093. message:
  12094. this.queryOrders.inscompany +
  12095. "提核--:" +
  12096. res.msg,
  12097. type: "error",
  12098. duration: 0
  12099. });
  12100. _this.$api.letter
  12101. .getByCompanyId({ companyId: this.companyId })
  12102. .then(res => {
  12103. _this.orderstatus = res.data.orderstatus; //订单状态
  12104. });
  12105. }
  12106. });
  12107. } else {
  12108. this.$message({
  12109. message:
  12110. this.queryOrders.inscompany + "影像--:" + res.msg,
  12111. type: "error",
  12112. duration: 7000
  12113. });
  12114. loading.close();
  12115. }
  12116. });
  12117. break;
  12118. case "国任财险":
  12119. let GRApiImage = "";
  12120. GRApiImage =
  12121. this.apiType == 2 ? "pythonsubmitImage" : "insguorensubmitImage";
  12122. await this.$api.letter[GRApiImage]({
  12123. [this.apiType == 2 ? "subOrderNo" : "companyId"]: this.companyId
  12124. }).then(res => {
  12125. if (res.code == "200") {
  12126. var _this = this;
  12127. let auditType = this.apiType == 2? 'pythonaudit': 'gunrenaudit'
  12128. _this.$api.letter[auditType]({
  12129. [this.apiType == 2 ? "subOrderNo" : "companyId"]: this.companyId
  12130. })
  12131. .then(res => {
  12132. if (res.code == "200") {
  12133. loading.close();
  12134. _this.cqryCdeJq = "";
  12135. _this.cqryCdeSy = "";
  12136. _this.renewalCodeJq = "";
  12137. _this.renewalCodeSy = "";
  12138. this.$message({
  12139. message: "核保成功",
  12140. type: "success"
  12141. });
  12142. this.handleCreateEquityOrder(this.companyId)
  12143. this.QuotationHistory();
  12144. _this.$api.letter
  12145. .getByCompanyId({ companyId: this.companyId })
  12146. .then(res => {
  12147. _this.orderstatus = res.data.orderstatus; //订单状态
  12148. _this.underwritingdialogVisible = true;
  12149. let indexid = this.totalCompanyList.findIndex(
  12150. item =>
  12151. item.namesimple ==
  12152. this.queryOrders.inscompany
  12153. );
  12154. this.totalCompanyList[indexid].orderstatus =
  12155. res.data.orderstatus;
  12156. });
  12157. } else {
  12158. loading.close();
  12159. this.$message({
  12160. showClose: true,
  12161. message: res.msg,
  12162. type: "error",
  12163. duration: 0
  12164. });
  12165. }
  12166. });
  12167. } else {
  12168. loading.close();
  12169. this.$message({
  12170. message: res.msg,
  12171. type: "error",
  12172. duration: 7000
  12173. });
  12174. }
  12175. });
  12176. break;
  12177. case "渤海财险":
  12178. await this.$api.letter
  12179. .insbohaisubmitImage({
  12180. companyId: this.companyId
  12181. })
  12182. .then(res => {
  12183. if (res.code == "200") {
  12184. var _this = this;
  12185. _this.$api.letter
  12186. .bohaiaudit({
  12187. companyId: this.companyId
  12188. })
  12189. .then(res => {
  12190. if (res.code == "200") {
  12191. loading.close();
  12192. _this.cqryCdeJq = "";
  12193. _this.cqryCdeSy = "";
  12194. _this.renewalCodeJq = "";
  12195. _this.renewalCodeSy = "";
  12196. this.$message({
  12197. message: "核保成功",
  12198. type: "success"
  12199. });
  12200. this.handleCreateEquityOrder(this.companyId)
  12201. this.QuotationHistory();
  12202. _this.$api.letter
  12203. .getByCompanyId({ companyId: this.companyId })
  12204. .then(res => {
  12205. _this.orderstatus = res.data.orderstatus; //订单状态
  12206. _this.underwritingdialogVisible = true;
  12207. let indexid = this.totalCompanyList.findIndex(
  12208. item =>
  12209. item.namesimple ==
  12210. this.queryOrders.inscompany
  12211. );
  12212. this.totalCompanyList[indexid].orderstatus =
  12213. res.data.orderstatus;
  12214. });
  12215. } else {
  12216. loading.close();
  12217. this.$message({
  12218. showClose: true,
  12219. message: res.msg,
  12220. type: "error",
  12221. duration: 0
  12222. });
  12223. }
  12224. });
  12225. } else {
  12226. loading.close();
  12227. this.$message({
  12228. message: res.msg,
  12229. type: "error",
  12230. duration: 7000
  12231. });
  12232. }
  12233. });
  12234. break;
  12235. case "阳光财险":
  12236. await this.$api.letter
  12237. .yangGuangImage({
  12238. companyId: this.companyId
  12239. })
  12240. .then(res => {
  12241. if (res.code == "200") {
  12242. var _this = this;
  12243. _this.$api.letter
  12244. .yangGuangSubmit({
  12245. companyId: this.companyId
  12246. })
  12247. .then(res => {
  12248. if (res.code == "200") {
  12249. loading.close();
  12250. _this.cqryCdeJq = "";
  12251. _this.cqryCdeSy = "";
  12252. _this.renewalCodeJq = "";
  12253. _this.renewalCodeSy = "";
  12254. this.$message({
  12255. message: "核保成功",
  12256. type: "success"
  12257. });
  12258. this.handleCreateEquityOrder(this.companyId)
  12259. this.QuotationHistory();
  12260. _this.$api.letter
  12261. .getByCompanyId({ companyId: this.companyId })
  12262. .then(res => {
  12263. _this.orderstatus = res.data.orderstatus; //订单状态
  12264. _this.underwritingdialogVisible = true;
  12265. let indexid = this.totalCompanyList.findIndex(
  12266. item =>
  12267. item.namesimple ==
  12268. this.queryOrders.inscompany
  12269. );
  12270. this.totalCompanyList[indexid].orderstatus =
  12271. res.data.orderstatus;
  12272. });
  12273. } else {
  12274. loading.close();
  12275. this.$message({
  12276. showClose: true,
  12277. message: res.msg,
  12278. type: "error",
  12279. duration: 0
  12280. });
  12281. }
  12282. });
  12283. } else {
  12284. loading.close();
  12285. this.$message({
  12286. message: res.msg,
  12287. type: "error",
  12288. duration: 7000
  12289. });
  12290. }
  12291. });
  12292. break;
  12293. case "恒邦财险":
  12294. case "华农财险":
  12295. case "华安财险":
  12296. case "泰山财险":
  12297. case "申能财险":
  12298. case "大地财险":
  12299. case "太平财险":
  12300. case "安盛天平":
  12301. case "众安平安":
  12302. case "中国人寿":
  12303. case "人保财险":
  12304. case "太平洋财险":
  12305. // case "诚泰财险":
  12306. case "泰康财险":
  12307. let hengbangapi = "";
  12308. hengbangapi =
  12309. this.apiType == 2
  12310. ? "pythonsubmitImage"
  12311. : "anshengsubmitImage";
  12312. await this.$api.letter[hengbangapi]({
  12313. subOrderNo: this.companyId
  12314. }).then(res => {
  12315. if (res.code == "200") {
  12316. var _this = this;
  12317. let hengbangapi1 = "";
  12318. hengbangapi1 =
  12319. this.apiType == 2 ? "pythonaudit" : "anshengaudit";
  12320. _this.$api.letter[hengbangapi1]({
  12321. subOrderNo: this.companyId
  12322. }).then(res => {
  12323. if (res.code == "200") {
  12324. loading.close();
  12325. this.$message({
  12326. message: "核保成功",
  12327. type: "success"
  12328. });
  12329. this.handleCreateEquityOrder(this.companyId)
  12330. this.QuotationHistory();
  12331. _this.$api.letter
  12332. .getByCompanyId({ companyId: this.companyId })
  12333. .then(res => {
  12334. _this.orderstatus = res.data.orderstatus; //订单状态
  12335. _this.underwritingdialogVisible = true;
  12336. let indexid = this.totalCompanyList.findIndex(
  12337. item =>
  12338. item.namesimple == this.queryOrders.inscompany
  12339. );
  12340. this.totalCompanyList[indexid].orderstatus =
  12341. res.data.orderstatus;
  12342. });
  12343. } else {
  12344. loading.close();
  12345. this.$message({
  12346. showClose: true,
  12347. dangerouslyUseHTMLString: true,
  12348. message:
  12349. this.queryOrders.inscompany +
  12350. "提核--:" +
  12351. res.msg.replace(/\n/g, "<br><br>"),
  12352. type: "error",
  12353. duration: 0
  12354. });
  12355. }
  12356. });
  12357. } else {
  12358. loading.close();
  12359. this.$message({
  12360. message:
  12361. this.queryOrders.inscompany + "影像--:" + res.msg,
  12362. type: "error",
  12363. duration: 7000
  12364. });
  12365. }
  12366. });
  12367. break;
  12368. case "永诚财险":
  12369. await this.$api.letter
  12370. .insyongchengsubmitImage({
  12371. companyId: this.companyId
  12372. })
  12373. .then(res => {
  12374. if (res.code == "200") {
  12375. var _this = this;
  12376. _this.$api.letter
  12377. .yongchengaudit({
  12378. companyId: this.companyId
  12379. })
  12380. .then(res => {
  12381. if (res.code == "200") {
  12382. loading.close();
  12383. _this.cqryCdeJq = "";
  12384. _this.cqryCdeSy = "";
  12385. _this.renewalCodeJq = "";
  12386. _this.renewalCodeSy = "";
  12387. this.$message({
  12388. message: "核保成功",
  12389. type: "success"
  12390. });
  12391. this.handleCreateEquityOrder(this.companyId)
  12392. this.QuotationHistory();
  12393. _this.$api.letter
  12394. .getByCompanyId({ companyId: this.companyId })
  12395. .then(res => {
  12396. _this.orderstatus = res.data.orderstatus; //订单状态
  12397. _this.underwritingdialogVisible = true;
  12398. let indexid = this.totalCompanyList.findIndex(
  12399. item =>
  12400. item.namesimple ==
  12401. this.queryOrders.inscompany
  12402. );
  12403. this.totalCompanyList[indexid].orderstatus =
  12404. res.data.orderstatus;
  12405. });
  12406. } else {
  12407. loading.close();
  12408. this.$message({
  12409. showClose: true,
  12410. message:
  12411. this.queryOrders.inscompany +
  12412. "提核--:" +
  12413. res.msg,
  12414. customClass: "customNotifyClass",
  12415. type: "error",
  12416. duration: 0
  12417. });
  12418. }
  12419. });
  12420. } else {
  12421. loading.close();
  12422. this.$message({
  12423. message:
  12424. this.queryOrders.inscompany + "影像--:" + res.msg,
  12425. type: "error",
  12426. duration: 7000
  12427. });
  12428. }
  12429. });
  12430. break;
  12431. case "大家财险":
  12432. let DJApiImage = "";
  12433. DJApiImage =
  12434. this.apiType == 2 ? "pythonsubmitImage" : "dajiasubmitImage";
  12435. await this.$api.letter[DJApiImage]({
  12436. [this.apiType == 2 ? "subOrderNo" : "companyId"]: this
  12437. .companyId
  12438. }).then(res => {
  12439. if (res.code == "200") {
  12440. var _this = this;
  12441. let DJApiaudit = "";
  12442. DJApiaudit =
  12443. this.apiType == 2 ? "pythonaudit" : "dajiaaudit";
  12444. _this.$api.letter[DJApiaudit]({
  12445. [this.apiType == 2 ? "subOrderNo" : "companyId"]: this
  12446. .companyId
  12447. }).then(res => {
  12448. if (res.code == "200") {
  12449. loading.close();
  12450. _this.cqryCdeJq = "";
  12451. _this.cqryCdeSy = "";
  12452. _this.renewalCodeJq = "";
  12453. _this.renewalCodeSy = "";
  12454. this.$message({
  12455. message: "核保成功",
  12456. type: "success"
  12457. });
  12458. this.handleCreateEquityOrder(this.companyId)
  12459. this.QuotationHistory();
  12460. _this.$api.letter
  12461. .getByCompanyId({ companyId: this.companyId })
  12462. .then(res => {
  12463. _this.orderstatus = res.data.orderstatus; //订单状态
  12464. _this.underwritingdialogVisible = true;
  12465. let indexid = this.totalCompanyList.findIndex(
  12466. item =>
  12467. item.namesimple == this.queryOrders.inscompany
  12468. );
  12469. this.totalCompanyList[indexid].orderstatus =
  12470. res.data.orderstatus;
  12471. });
  12472. } else {
  12473. loading.close();
  12474. this.$message({
  12475. showClose: true,
  12476. message:
  12477. this.queryOrders.inscompany + "提核--:" + res.msg,
  12478. customClass: "customNotifyClass",
  12479. type: "error",
  12480. duration: 0
  12481. });
  12482. }
  12483. });
  12484. } else {
  12485. loading.close();
  12486. this.$message({
  12487. message:
  12488. this.queryOrders.inscompany + "影像--:" + res.msg,
  12489. type: "error",
  12490. duration: 7000
  12491. });
  12492. }
  12493. });
  12494. break;
  12495. case "平安财险":
  12496. await this.$api.letter
  12497. .pingansubmitImage({
  12498. companyId: this.companyId
  12499. })
  12500. .then(res => {
  12501. if (res.code == "200") {
  12502. var _this = this;
  12503. _this.$api.letter
  12504. .pinganaudit({
  12505. companyId: this.companyId,
  12506. jqappoint: "",
  12507. syappoint: ""
  12508. })
  12509. .then(res => {
  12510. if (res.code == "200") {
  12511. loading.close();
  12512. _this.$message({
  12513. message: "核保成功",
  12514. type: "success"
  12515. });
  12516. this.handleCreateEquityOrder(this.companyId)
  12517. this.QuotationHistory();
  12518. _this.$api.letter
  12519. .getByCompanyId({ companyId: this.companyId })
  12520. .then(res => {
  12521. _this.orderstatus = res.data.orderstatus; //订单状态
  12522. _this.underwritingdialogVisible = true;
  12523. let indexid = this.totalCompanyList.findIndex(
  12524. item =>
  12525. item.namesimple ==
  12526. this.queryOrders.inscompany
  12527. );
  12528. this.totalCompanyList[indexid].orderstatus =
  12529. res.data.orderstatus;
  12530. });
  12531. } else {
  12532. loading.close();
  12533. _this.$message({
  12534. showClose: true,
  12535. message:
  12536. this.queryOrders.inscompany +
  12537. "提核--:" +
  12538. res.msg,
  12539. type: "error",
  12540. duration: 0
  12541. });
  12542. _this.$api.letter
  12543. .getByCompanyId({ companyId: this.companyId })
  12544. .then(res => {
  12545. _this.orderstatus = res.data.orderstatus; //订单状态
  12546. });
  12547. }
  12548. });
  12549. } else {
  12550. this.$message({
  12551. message:
  12552. this.queryOrders.inscompany + "影像--:" + res.msg,
  12553. type: "error",
  12554. duration: 7000
  12555. });
  12556. loading.close();
  12557. }
  12558. });
  12559. break;
  12560. }
  12561. }
  12562. });
  12563. },
  12564. //当前日期的次日
  12565. transformTime1() {
  12566. var date = new Date();
  12567. date.setFullYear(date.getFullYear());
  12568. date.setTime(date.getTime() + 24 * 60 * 60 * 1000);
  12569. var strYear = date.getFullYear();
  12570. var strDay = date.getDate();
  12571. var strMonth = date.getMonth() + 1;
  12572. var hh = date.getHours();
  12573. if (hh < 10) {
  12574. hh = "0" + hh;
  12575. }
  12576. if (strMonth < 10) {
  12577. strMonth = "0" + strMonth;
  12578. }
  12579. if (strDay < 10) {
  12580. strDay = "0" + strDay;
  12581. }
  12582. var datastr = strYear + "-" + strMonth + "-" + strDay + " " + "00:00:00";
  12583. return datastr;
  12584. },
  12585. //传入日期的次日
  12586. transformTime2(time) {
  12587. var date = new Date(time);
  12588. date.setFullYear(date.getFullYear());
  12589. date.setTime(date.getTime() + 24 * 60 * 60 * 1000); //一年后的前一天
  12590. var strYear = date.getFullYear();
  12591. var strDay = date.getDate();
  12592. var strMonth = date.getMonth() + 1;
  12593. var hh = date.getHours();
  12594. if (hh < 10) {
  12595. hh = "0" + hh;
  12596. }
  12597. if (strMonth < 10) {
  12598. strMonth = "0" + strMonth;
  12599. }
  12600. if (strDay < 10) {
  12601. strDay = "0" + strDay;
  12602. }
  12603. var datastr = strYear + "-" + strMonth + "-" + strDay + " " + "00:00:00";
  12604. return datastr;
  12605. },
  12606. isDateBeforeToday(date) {
  12607. const inputDate = new Date(date); // 将输入的日期转换为 Date 对象
  12608. const today = new Date(); // 获取当前日期
  12609. // 比较日期是否小于当前日期
  12610. if (inputDate < today) {
  12611. return true; // 输入日期小于当前日期
  12612. } else {
  12613. return false; // 输入日期大于等于当前日期
  12614. }
  12615. },
  12616. //时间转换
  12617. transformTime(date) {
  12618. var d = new Date(date);
  12619. var strYear = d.getFullYear();
  12620. var strMonth = d.getMonth() + 1;
  12621. var strDay = d.getDate();
  12622. var hh = d.getHours();
  12623. var minutes = d.getMinutes(); // 分
  12624. var Seconds = d.getSeconds();
  12625. if (hh < 10) {
  12626. hh = "0" + hh;
  12627. }
  12628. if (minutes < 10) {
  12629. minutes = "0" + minutes;
  12630. }
  12631. if (Seconds < 10) {
  12632. Seconds = "0" + Seconds;
  12633. }
  12634. if (strMonth < 10) {
  12635. strMonth = "0" + strMonth;
  12636. }
  12637. if (strDay < 10) {
  12638. strDay = "0" + strDay;
  12639. }
  12640. var datetime =
  12641. strYear +
  12642. "-" +
  12643. strMonth +
  12644. "-" +
  12645. strDay +
  12646. " " +
  12647. hh +
  12648. ":" +
  12649. minutes +
  12650. ":" +
  12651. Seconds;
  12652. return datetime;
  12653. },
  12654. timeformat(date) {
  12655. var d = new Date(date);
  12656. var strYear = d.getFullYear();
  12657. var strMonth = d.getMonth() + 1;
  12658. var strDay = d.getDate();
  12659. var hh = d.getHours();
  12660. if (hh < 10) {
  12661. hh = "0" + hh;
  12662. }
  12663. if (strMonth < 10) {
  12664. strMonth = "0" + strMonth;
  12665. }
  12666. if (strDay < 10) {
  12667. strDay = "0" + strDay;
  12668. }
  12669. var datetime = strYear + "-" + strMonth + "-" + strDay;
  12670. return datetime;
  12671. },
  12672. oneYearPast1(time) {
  12673. //明年减一秒
  12674. var date = new Date(time);
  12675. date.setSeconds(date.getSeconds() - 1);
  12676. date.setFullYear(date.getFullYear() + 1); //一年后
  12677. date.setTime(date.getTime()); //一年后的前一天
  12678. var strYear = date.getFullYear();
  12679. var strDay = date.getDate();
  12680. var strMonth = date.getMonth() + 1;
  12681. var hh = date.getHours();
  12682. var minutes = date.getMinutes(); // 分
  12683. var Seconds = date.getSeconds();
  12684. if (hh < 10) {
  12685. hh = "0" + hh;
  12686. }
  12687. if (minutes < 10) {
  12688. minutes = "0" + minutes;
  12689. }
  12690. if (Seconds < 10) {
  12691. Seconds = "0" + Seconds;
  12692. }
  12693. if (strMonth < 10) {
  12694. strMonth = "0" + strMonth;
  12695. }
  12696. if (strDay < 10) {
  12697. strDay = "0" + strDay;
  12698. }
  12699. var datastr =
  12700. strYear +
  12701. "-" +
  12702. strMonth +
  12703. "-" +
  12704. strDay +
  12705. " " +
  12706. hh +
  12707. ":" +
  12708. minutes +
  12709. ":" +
  12710. Seconds;
  12711. return datastr;
  12712. },
  12713. tbczcarShowChange() {
  12714. //投保人同车主
  12715. switch (this.tbczcarShow) {
  12716. case true:
  12717. this.policyHolderInfo = { ...this.ownerInfo };
  12718. break;
  12719. default:
  12720. for (let key in this.policyHolderInfo) {
  12721. this.policyHolderInfo[key] = "";
  12722. this.policyHolderInfo.provinceData = [];
  12723. this.selectedOptions2 = [];
  12724. }
  12725. this.policyHolderInfo = {};
  12726. }
  12727. this.$forceUpdate();
  12728. },
  12729. bbczcarShowChange() {
  12730. if (this.bbczcarShow) {
  12731. this.bbtbcarShow = false;
  12732. }
  12733. //被保人同车主
  12734. if (this.bbczcarShow && !this.bbtbcarShow) {
  12735. this.insuredPersonInfo = { ...this.ownerInfo };
  12736. this.bbtbcarShow = false;
  12737. }
  12738. // if (!this.bbczcarShow && !this.bbtbcarShow) {
  12739. // for (let key in this.insuredPersonInfo) {
  12740. // this.insuredPersonInfo[key] = "";
  12741. // this.insuredPersonInfo.provinceData = [];
  12742. // // this.selectedOptions3 = [];
  12743. // }
  12744. // this.insuredPersonInfo = {}
  12745. // }
  12746. // if (this.bbtbcarShow) {
  12747. // return
  12748. // }
  12749. // switch (this.bbczcarShow) {
  12750. // case true:
  12751. // this.insuredPersonInfo = JSON.parse(JSON.stringify(this.ownerInfo));
  12752. // this.bbtbcarShow = false;
  12753. // console.log( '车主信息111111', this.ownerInfo, '投保人信息', this.policyHolderInfo, '被保人信息', this.insuredPersonInfo, '被保人同车主', this.bbczcarShow)
  12754. // break;
  12755. // default:
  12756. // for (let key in this.insuredPersonInfo) {
  12757. // this.insuredPersonInfo[key] = "";
  12758. // this.insuredPersonInfo.provinceData = [];
  12759. // // this.selectedOptions3 = [];
  12760. // }
  12761. // }
  12762. this.$forceUpdate();
  12763. },
  12764. bbtbcarShowChange() {
  12765. if (this.bbtbcarShow) {
  12766. this.bbczcarShow = false;
  12767. }
  12768. if (this.bbtbcarShow && !this.bbczcarShow) {
  12769. this.insuredPersonInfo = { ...this.policyHolderInfo };
  12770. this.bbczcarShow = false;
  12771. }
  12772. this.$forceUpdate();
  12773. },
  12774. // 清空被保人信息
  12775. clearBbxx() {
  12776. for (let key in this.insuredPersonInfo) {
  12777. this.insuredPersonInfo[key] = "";
  12778. this.insuredPersonInfo.provinceData = [];
  12779. }
  12780. },
  12781. // 查询车牌信息
  12782. toCheckLicenseNo(licenseNo) {
  12783. if (licenseNo) {
  12784. this.$api.letter
  12785. .licenseSearch({
  12786. licenseNo: licenseNo
  12787. })
  12788. .then(res => {
  12789. if (res.code == 200) {
  12790. {
  12791. this.carInfo.engineNo = res.data.engineNo;
  12792. this.carInfo.vinNo = res.data.vinNo;
  12793. this.carInfo.frameNo = res.data.vinNo;
  12794. this.carInfo.registerDate = res.data.registerDate;
  12795. this.$forceUpdate();
  12796. }
  12797. }
  12798. });
  12799. }
  12800. },
  12801. //VIN查询
  12802. toChooseVin(cartype) {
  12803. if (cartype == "" || cartype == null) {
  12804. this.$message({
  12805. message: "请输入车架号",
  12806. type: "warning"
  12807. });
  12808. } else {
  12809. const loading = this.$loading({
  12810. lock: true,
  12811. text: "Loading",
  12812. spinner: "el-icon-loading",
  12813. background: "rgba(0, 0, 0, 0.7)"
  12814. });
  12815. this.$api.letter.insZhongmeiVIN(this.carInfo.frameNo).then(res => {
  12816. if (res.code == "200") {
  12817. this.reslist = res.data;
  12818. loading.close();
  12819. this.sbdmdialogVisible = true;
  12820. } else {
  12821. loading.close();
  12822. this.$message.error(res.msg);
  12823. }
  12824. });
  12825. }
  12826. },
  12827. // 撤销二维码
  12828. revokeCode(id) {
  12829. this.$confirm("确定撤销二维码?", "提示", {
  12830. confirmButtonText: "确定",
  12831. cancelButtonText: "取消",
  12832. type: "warning"
  12833. })
  12834. .then(() => {
  12835. this.$api.letter.getRevokeQrCode(id).then(res => {
  12836. if (res.code == 200) {
  12837. this.$message({
  12838. message: res.msg,
  12839. type: "success"
  12840. });
  12841. this.QuotationHistory();
  12842. }
  12843. });
  12844. })
  12845. .catch(() => {
  12846. this.$message({
  12847. type: "info",
  12848. message: "已取消撤销二维码"
  12849. });
  12850. });
  12851. },
  12852. //品牌型号查询
  12853. toChooseVehicleType(cartype) {
  12854. if (cartype == "" || cartype == null) {
  12855. this.$message({
  12856. message: "请输入车型名称",
  12857. type: "warning"
  12858. });
  12859. } else {
  12860. const loading = this.$loading({
  12861. lock: true,
  12862. text: "Loading",
  12863. spinner: "el-icon-loading",
  12864. background: "rgba(0, 0, 0, 0.7)"
  12865. });
  12866. let param = {
  12867. modelName: cartype.replace(/[^u4e00-u9fa5|,]+/gi, "")
  12868. };
  12869. this.$api.letter.ModelsQuery(param).then(res => {
  12870. if (res.code == "200") {
  12871. loading.close();
  12872. this.reslist = res.data;
  12873. this.chexingdialogVisible = true;
  12874. } else {
  12875. loading.close();
  12876. this.$message.error(res.msg);
  12877. }
  12878. });
  12879. }
  12880. },
  12881. //车型列表双击选中事件
  12882. reslistCurrentChange(row, column, event) {
  12883. this.carInfo.importFlag=row.importFlag;//特种车标识
  12884. this.carInfo.brandName = row.brandCN; //品牌型号
  12885. this.carInfo.modelcname = row.modelName; //品牌型号
  12886. this.carInfo.caryear = row.marketYear; //年款
  12887. this.carInfo.seatCount = row.ratedPassengerCapacity; //座位数
  12888. this.carInfo.purchasePrice = row.replacementValue; //购置价
  12889. this.carInfo.modelCode = row.modelCode; //型号代码
  12890. this.carInfo.familyName = row.series; //系列
  12891. this.carInfo.enginedesc = row.displacement; //排量
  12892. this.carInfo.energyType =this.carInfo.licenseNo && this.carInfo.licenseNo.length==7? row.energyTypes:'1';//能源种类
  12893. this.carInfo.powerScale = row.powerScale; //功率
  12894. this.chexingdialogVisible = false;
  12895. this.sbdmdialogVisible = false;
  12896. },
  12897. //是否过户事件
  12898. transferFlagChange(e) {
  12899. if (e) {
  12900. this.transferDateShow = true;
  12901. this.carInfo.transferDate = this.carInfo.issueDate;
  12902. } else {
  12903. this.transferDateShow = false;
  12904. this.carInfo.transferDate = "";
  12905. }
  12906. },
  12907. //影像上传
  12908. drivingupload(file, imageIdList, imgurl, type) {
  12909. let that = this;
  12910. let size = file.size / 1024 / 1024 < 5;
  12911. const isJPG =
  12912. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  12913. if (!size) {
  12914. this.$message.error("上传图片大小不能超过 5MB!");
  12915. this[imgurl] = [];
  12916. return false;
  12917. }
  12918. if (!isJPG) {
  12919. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  12920. this[imgurl] = [];
  12921. return false;
  12922. }
  12923. this[imgurl].push(file);
  12924. var file = file.raw;
  12925. const params = new FormData(); // 声明formData数据类型
  12926. params.append("multipartFile", file);
  12927. params.append("type", "image");
  12928. this.$api.letter.uploadFile(params).then(res => {
  12929. if (res.code == "200") {
  12930. if (this[imageIdList].some(v => v.imageType == type)) {
  12931. this[imageIdList].map(val => {
  12932. if (val.imageType == type) {
  12933. val.imageId = res.data.id;
  12934. }
  12935. });
  12936. } else {
  12937. this[imageIdList].push({
  12938. imageId: res.data.id,
  12939. imageType: type
  12940. });
  12941. }
  12942. }
  12943. });
  12944. },
  12945. policydrivingupload(file, val) {
  12946. // this.policyNumberForm[val + 'List'] = []
  12947. switch (val) {
  12948. case "jqPolicy":
  12949. this.policyNumberForm.jqPolicyList = [];
  12950. break;
  12951. case "syPolicy":
  12952. this.policyNumberForm.syPolicyList = [];
  12953. break;
  12954. case "noPolicy":
  12955. this.policyNumberForm.noPolicyList = [];
  12956. break;
  12957. case "jqSign":
  12958. this.policyNumberForm.jqSignList = [];
  12959. break;
  12960. default:
  12961. break;
  12962. }
  12963. var file = file.raw;
  12964. const params = new FormData(); // 声明formData数据类型
  12965. params.append("multipartFile", file);
  12966. params.append("type", "file");
  12967. this.$api.letter.uploadFile(params).then(res => {
  12968. if (res.code == "200") {
  12969. res.data.name = res.data.fileName;
  12970. this.policyNumberForm[val + "List"].push(res.data);
  12971. }
  12972. });
  12973. },
  12974. handleRemove1(file, imageIdList, imgList) {
  12975. this[imageIdList].map((ele, index) => {
  12976. if (file.imageId === ele.imageId) {
  12977. this[imageIdList].splice(index, 1);
  12978. }
  12979. return ele;
  12980. });
  12981. if (file.imageId) {
  12982. this[imgList].map((ele, index) => {
  12983. if (file.imageId === ele.imageId) {
  12984. this[imgList].splice(index, 1);
  12985. }
  12986. return ele;
  12987. });
  12988. } else {
  12989. this[imgList].map((ele, index) => {
  12990. if (file.uid === ele.uid) {
  12991. this[imgList].splice(index, 1);
  12992. }
  12993. return ele;
  12994. });
  12995. }
  12996. },
  12997. compress(img, width, height, ratio) {
  12998. var canvas, ctx, img64;
  12999. canvas = document.createElement("canvas");
  13000. canvas.width = width;
  13001. canvas.height = height;
  13002. ctx = canvas.getContext("2d");
  13003. ctx.drawImage(img, 0, 0, width, height);
  13004. img64 = canvas.toDataURL("image/jpeg", ratio);
  13005. return img64;
  13006. },
  13007. base64ToFile(base64, fileName) {
  13008. let data = base64.split(",");
  13009. let type = data[0].match(/:(.*?);/)[1]; // let suffix = type.split('/')[1];
  13010. const bstr = window.atob(data[1]);
  13011. let n = bstr.length;
  13012. const u8arr = new Uint8Array(n);
  13013. while (n--) {
  13014. u8arr[n] = bstr.charCodeAt(n);
  13015. } // const file =  new File([u8arr], `${fileName}.${suffix}`, {
  13016. const file = new File([u8arr], `${fileName}`, {
  13017. type: type
  13018. });
  13019. return file;
  13020. },
  13021. carfrontChange(file) {
  13022. //选择行驶证正面
  13023. let that = this;
  13024. let size = file.size / 1024 / 1024 < 5;
  13025. const isJPG =
  13026. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  13027. if (!size) {
  13028. this.$message.error("上传图片大小不能超过 5MB!");
  13029. return false;
  13030. }
  13031. if (!isJPG) {
  13032. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  13033. return false;
  13034. }
  13035. // let name=file.raw.name
  13036. //       var image = new Image();
  13037. //       image.src = window.URL.createObjectURL(file.raw);
  13038. //       that.carfrontImg =  image.src
  13039. //       image.onload = function(){
  13040. //         let aaa= that.base64ToFile(that.compress(image, 500, 400, 0.7),name)
  13041. // that.carfrontImg = image.src;
  13042. // const params = new FormData(); // 声明formData数据类型
  13043. // params.append("multipartFile", aaa);
  13044. // params.append("type", "image");
  13045. // that.$api.letter.uploadFile(params).then(res => {
  13046. // if (res.code == "200") {
  13047. // that.CarFrontFile = aaa;//文件流
  13048. // if (that.imageList1.some(v => v.imageType == 'C01')) {
  13049. // that.imageList1.map(val => {
  13050. // if (val.imageType == 'C01') {
  13051. // val.imageId = res.data.id;
  13052. // }
  13053. // })
  13054. // } else {
  13055. // that.imageList1.push({
  13056. // imageId: res.data.id,
  13057. // imageType: "C01",
  13058. // })
  13059. // }
  13060. // } else {
  13061. // that.$message({ message: res.msg, type: "warning" });
  13062. // }
  13063. // });
  13064. // }
  13065. var file = file.raw;
  13066. let files = window.URL.createObjectURL(file); //转临时路径
  13067. this.carfrontImg = files;
  13068. const params = new FormData(); // 声明formData数据类型
  13069. params.append("multipartFile", file);
  13070. params.append("type", "image");
  13071. this.$api.letter.uploadFile(params).then(res => {
  13072. if (res.code == "200") {
  13073. this.CarFrontFile = file; //文件流
  13074. if (this.imageList1.some(v => v.imageType == "C01")) {
  13075. this.imageList1.map(val => {
  13076. if (val.imageType == "C01") {
  13077. val.imageId = res.data.id;
  13078. }
  13079. });
  13080. } else {
  13081. this.imageList1.push({
  13082. imageId: res.data.id,
  13083. imageType: "C01"
  13084. });
  13085. }
  13086. } else {
  13087. this.$message({ message: res.msg, type: "warning" });
  13088. }
  13089. });
  13090. },
  13091. carbackChange(file) {
  13092. let that = this;
  13093. let size = file.size / 1024 / 1024 < 2;
  13094. const isJPG =
  13095. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  13096. if (!size) {
  13097. this.$message.error("上传图片大小不能超过 5MB!");
  13098. return false;
  13099. }
  13100. if (!isJPG) {
  13101. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  13102. return false;
  13103. }
  13104. // let name=file.raw.name
  13105. //       var image = new Image();
  13106. //       image.src = window.URL.createObjectURL(file.raw);
  13107. //       image.onload = function(){
  13108. //         let aaa= that.base64ToFile(that.compress(image, 500, 400, 0.7),name)
  13109. // that.carbackImg = image.src;
  13110. // const params = new FormData(); // 声明formData数据类型
  13111. // params.append("multipartFile", aaa);
  13112. // params.append("type", "image");
  13113. // that.$api.letter.uploadFile(params).then(res => {
  13114. // if (res.code == "200") {
  13115. // that.CarBackFile = aaa;//文件流
  13116. // if (that.imageList1.some(v => v.imageType == 'D01')) {
  13117. // that.imageList1.map(val => {
  13118. // if (val.imageType == 'D01') {
  13119. // val.imageId = res.data.id;
  13120. // }
  13121. // })
  13122. // } else {
  13123. // that.imageList1.push({
  13124. // imageId: res.data.id,
  13125. // imageType: "D01",
  13126. // })
  13127. // }
  13128. // } else {
  13129. // that.$message({ message: res.msg, type: "warning" });
  13130. // }
  13131. // });
  13132. // }
  13133. //选择行驶证反面
  13134. var file = file.raw;
  13135. let files = window.URL.createObjectURL(file); //转临时路径
  13136. this.carbackImg = files;
  13137. const params = new FormData(); // 声明formData数据类型
  13138. params.append("multipartFile", file);
  13139. params.append("type", "image");
  13140. this.$api.letter.uploadFile(params).then(res => {
  13141. if (res.code == "200") {
  13142. this.CarBackFile = file;
  13143. if (this.imageList1.some(v => v.imageType == "D01")) {
  13144. this.imageList1.map(val => {
  13145. if (val.imageType == "D01") {
  13146. val.imageId = res.data.id;
  13147. }
  13148. });
  13149. } else {
  13150. this.imageList1.push({
  13151. imageId: res.data.id,
  13152. imageType: "D01"
  13153. });
  13154. }
  13155. } else {
  13156. this.$message({ message: res.msg, type: "warning" });
  13157. }
  13158. });
  13159. },
  13160. userfrontChange(file) {
  13161. let that = this;
  13162. let size = file.size / 1024 / 1024 < 5;
  13163. const isJPG =
  13164. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  13165. if (!size) {
  13166. this.$message.error("上传图片大小不能超过 5MB!");
  13167. return false;
  13168. }
  13169. if (!isJPG) {
  13170. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  13171. return false;
  13172. }
  13173. // let name=file.raw.name
  13174. //       var image = new Image();
  13175. //       image.src = window.URL.createObjectURL(file.raw);
  13176. //       image.onload = function(){
  13177. //         let aaa= that.base64ToFile(that.compress(image, 500, 400, 0.7),name)
  13178. // that.userfrontImg = image.src;
  13179. // const params = new FormData(); // 声明formData数据类型
  13180. // params.append("multipartFile", aaa);
  13181. // params.append("type", "image");
  13182. // that.$api.letter.uploadFile(params).then(res => {
  13183. // if (res.code == "200") {
  13184. // let type = 'C0' + that.userIndex;
  13185. // if (that['imageList' + that.userIndex].some(v => v.imageType == type)) {
  13186. // that['imageList' + that.userIndex].map(val => {
  13187. // if (val.imageType == type) {
  13188. // val.imageId = res.data.id;
  13189. // }
  13190. // })
  13191. // } else {
  13192. // that['imageList' + that.userIndex].push({
  13193. // imageId: res.data.id,
  13194. // imageType: type,
  13195. // })
  13196. // }
  13197. // that[type + 'File'] = aaa;
  13198. // } else {
  13199. // that.$message({ message: res.msg, type: "warning" });
  13200. // }
  13201. // });
  13202. // }
  13203. //选择身份证正面
  13204. var file = file.raw;
  13205. let files = window.URL.createObjectURL(file); //转链接
  13206. this.userfrontImg = files;
  13207. const params = new FormData(); // 声明formData数据类型
  13208. params.append("multipartFile", file);
  13209. params.append("type", "image");
  13210. this.$api.letter.uploadFile(params).then(res => {
  13211. if (res.code == "200") {
  13212. let type = "C0" + this.userIndex;
  13213. if (
  13214. this["imageList" + this.userIndex].some(v => v.imageType == type)
  13215. ) {
  13216. this["imageList" + this.userIndex].map(val => {
  13217. if (val.imageType == type) {
  13218. val.imageId = res.data.id;
  13219. }
  13220. });
  13221. } else {
  13222. this["imageList" + this.userIndex].push({
  13223. imageId: res.data.id,
  13224. imageType: type
  13225. });
  13226. }
  13227. this[type + "File"] = file;
  13228. } else {
  13229. this.$message({ message: res.msg, type: "warning" });
  13230. }
  13231. });
  13232. },
  13233. userbackChange(file) {
  13234. let that = this;
  13235. let size = file.size / 1024 / 1024 < 5;
  13236. const isJPG =
  13237. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  13238. if (!size) {
  13239. this.$message.error("上传图片大小不能超过 5MB!");
  13240. return false;
  13241. }
  13242. if (!isJPG) {
  13243. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  13244. return false;
  13245. }
  13246. // let name=file.raw.name
  13247. //       var image = new Image();
  13248. //       image.src = window.URL.createObjectURL(file.raw);
  13249. //       image.onload = function(){
  13250. //         let aaa= that.base64ToFile(that.compress(image, 500, 400, 0.7),name)
  13251. // that.userbackImg = image.src;
  13252. // const params = new FormData(); // 声明formData数据类型
  13253. // params.append("multipartFile", aaa);
  13254. // params.append("type", "image");
  13255. // that.$api.letter.uploadFile(params).then(res => {
  13256. // if (res.code == "200") {
  13257. // let type = 'D0' + that.userIndex;
  13258. // if (that['imageList' + that.userIndex].some(v => v.imageType == type)) {
  13259. // that['imageList' + that.userIndex].map(val => {
  13260. // if (val.imageType == type) {
  13261. // val.imageId = res.data.id;
  13262. // }
  13263. // })
  13264. // } else {
  13265. // that['imageList' + that.userIndex].push({
  13266. // imageId: res.data.id,
  13267. // imageType: type,
  13268. // })
  13269. // }
  13270. // that[type + 'File'] = aaa;
  13271. // } else {
  13272. // that.$message({ message: res.msg, type: "warning" });
  13273. // }
  13274. // });
  13275. // }
  13276. //选择身份证背面
  13277. var file = file.raw;
  13278. let files = window.URL.createObjectURL(file); //转链接
  13279. this.userbackImg = files;
  13280. const params = new FormData(); // 声明formData数据类型
  13281. params.append("multipartFile", file);
  13282. params.append("type", "image");
  13283. this.$api.letter.uploadFile(params).then(res => {
  13284. if (res.code == "200") {
  13285. let type = "D0" + this.userIndex;
  13286. if (
  13287. this["imageList" + this.userIndex].some(v => v.imageType == type)
  13288. ) {
  13289. this["imageList" + this.userIndex].map(val => {
  13290. if (val.imageType == type) {
  13291. val.imageId = res.data.id;
  13292. }
  13293. });
  13294. } else {
  13295. this["imageList" + this.userIndex].push({
  13296. imageId: res.data.id,
  13297. imageType: type
  13298. });
  13299. }
  13300. this[type + "File"] = file;
  13301. } else {
  13302. this.$message({ message: res.msg, type: "warning" });
  13303. }
  13304. });
  13305. },
  13306. businessChange(file) {
  13307. let size = file.size / 1024 / 1024 < 5;
  13308. const isJPG =
  13309. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  13310. if (!size) {
  13311. this.$message.error("上传图片大小不能超过 5MB!");
  13312. return false;
  13313. }
  13314. if (!isJPG) {
  13315. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  13316. return false;
  13317. }
  13318. var file = file.raw;
  13319. let files = window.URL.createObjectURL(file); //转链接
  13320. this.businessImg = files;
  13321. const params = new FormData(); // 声明formData数据类型
  13322. params.append("multipartFile", file);
  13323. params.append("type", "image");
  13324. this.$api.letter.uploadFile(params).then(res => {
  13325. if (res.code == "200") {
  13326. let type = "Y0" + this.userIndex;
  13327. if (
  13328. this["imageList" + this.userIndex].some(v => v.imageType == type)
  13329. ) {
  13330. this["imageList" + this.userIndex].map(val => {
  13331. if (val.imageType == type) {
  13332. val.imageId = res.data.id;
  13333. }
  13334. });
  13335. } else {
  13336. this["imageList" + this.userIndex].push({
  13337. imageId: res.data.id,
  13338. imageType: type
  13339. });
  13340. }
  13341. this[type + "File"] = file;
  13342. } else {
  13343. this.$message({ message: res.msg, type: "warning" });
  13344. }
  13345. });
  13346. },
  13347. CarOCRdiscern() {
  13348. // if (!this.CarFrontFile || !this.CarBackFile) {
  13349. // this.$message.warning('请上传行驶证主页和副页')
  13350. // return
  13351. // }
  13352. //car识别
  13353. const loading = this.$loading({
  13354. lock: true,
  13355. text: "Loading",
  13356. spinner: "el-icon-loading",
  13357. background: "rgba(0, 0, 0, 0.7)"
  13358. });
  13359. const params = new FormData(); // 声明formData数据类型
  13360. params.append("image1", this.CarFrontFile);
  13361. params.append("image2", this.CarBackFile);
  13362. this.$api.letter.drivingPermit(params).then(res => {
  13363. loading.close();
  13364. if (res.msg == "201") {
  13365. this.$message({ message: "请正确选择驾驶证", type: "warning" });
  13366. }
  13367. var carInfo = res.data.carInfo;
  13368. if (carInfo.issueDate) {
  13369. carInfo.issueDate =
  13370. carInfo.issueDate.substring(0, 4) +
  13371. "-" +
  13372. carInfo.issueDate.substring(4, 6) +
  13373. "-" +
  13374. carInfo.issueDate.substring(6, 8);
  13375. }
  13376. if (carInfo.registerDate) {
  13377. carInfo.registerDate =
  13378. carInfo.registerDate.substring(0, 4) +
  13379. "-" +
  13380. carInfo.registerDate.substring(4, 6) +
  13381. "-" +
  13382. carInfo.registerDate.substring(6, 8);
  13383. }
  13384. this.carform.carOwner = carInfo.carOwner; //车主
  13385. this.carform.licenseNo = carInfo.plateNo; //车牌号
  13386. this.carform.modelcname = carInfo.backOcrID; //品牌型号
  13387. this.carform.frameNo = carInfo.vin; //车架号
  13388. this.carform.engineNo = carInfo.engine; //发动机号
  13389. this.carform.registerDate = carInfo.registerDate; //车牌号
  13390. this.carform.issueDate = carInfo.issueDate; //车牌号
  13391. this.carform.grossMass = carInfo.grossMass; //总质量
  13392. this.carform.unladenMass = carInfo.unladenMass; //整备质量
  13393. this.carform.limitLoad = carInfo.limitLoad; //核定载质量
  13394. this.carform.category = carInfo.category; //车辆类型
  13395. this.carform.carnature = carInfo.useNature; //使用性质
  13396. this.carform.vehicleUse = carInfo.vehicleUse; //车辆用途
  13397. this.carform.plateType = carInfo.plateType; //车辆种类
  13398. this.carform.approvedPassengersCapacity =
  13399. carInfo.approvedPassengersCapacity; //核定载客数
  13400. });
  13401. },
  13402. CarOCRconfirm() {
  13403. //传参 carnature
  13404. this.ownerInfo.name = this.carform.carOwner; //车主
  13405. this.carInfo.cartype = "K33";
  13406. this.carInfo.licenseNo = this.carform.licenseNo; //车牌号
  13407. this.carInfo.modelcname = this.carform.modelcname; //品牌型号
  13408. this.carInfo.vinNo = this.carform.frameNo; //车架号
  13409. this.carInfo.frameNo = this.carform.frameNo; //车架号
  13410. this.carInfo.engineNo = this.carform.engineNo; //发动机号
  13411. this.carInfo.seatCount = this.carform.approvedPassengersCapacity; //核定载客数
  13412. this.carInfo.vehicleweight = this.carform.grossMass; //总质量
  13413. this.carInfo.completeKerbMass = this.carform.unladenMass; //整备质量
  13414. this.carInfo.limitLoad = this.carform.limitLoad; //核定载质量
  13415. this.carInfo.cartype = this.carform.category; //车辆类型
  13416. this.carInfo.carnature = this.carform.carnature
  13417. ? this.carform.carnature
  13418. : "02"; //使用性质
  13419. this.carInfo.vehicleUse = this.carform.vehicleUse
  13420. ? this.carform.vehicleUse
  13421. : "05"; //车辆用途
  13422. this.carInfo.cimodelclass = this.carform.plateType; //车辆种类
  13423. if (this.timeformat(this.carform.registerDate) != "NaN-NaN-NaN") {
  13424. this.carInfo.registerDate = this.carform.registerDate; //车牌号
  13425. }
  13426. if (this.timeformat(this.carform.issueDate) != "NaN-NaN-NaN") {
  13427. this.carInfo.issueDate = this.carform.issueDate; //车牌号
  13428. }
  13429. if (this.carform.registerDate.length < 10) {
  13430. this.$message.warning("检查注册日期");
  13431. return;
  13432. }
  13433. if (this.carform.issueDate.length < 10) {
  13434. this.$message.warning("检查发证日期");
  13435. return;
  13436. }
  13437. this.uploadcardialogVisible = false;
  13438. },
  13439. handleRemove(e) {
  13440. //删除图片
  13441. this[e] = "";
  13442. switch (this.userIndex) {
  13443. case 0:
  13444. this.carfrontImg = "";
  13445. this.carbackImg = "";
  13446. this.CarFrontFile = ""; // 行驶证正面base64
  13447. this.CarBackFile = ""; // 行驶证背面base64
  13448. break;
  13449. case 2:
  13450. this.userfrontImg = "";
  13451. this.userbackImg = "";
  13452. this.businessImg = "";
  13453. this.C02File = ""; // 车主正面base64
  13454. this.D02File = ""; // 车主背面base64
  13455. this.Y02File = ""; // 车主营业执照
  13456. break;
  13457. case 3:
  13458. this.userfrontImg = "";
  13459. this.userbackImg = "";
  13460. this.businessImg = "";
  13461. this.C03File = ""; // 投保人正面base64
  13462. this.D03File = ""; // 投保人背面base64
  13463. this.Y03File = ""; // 投保人营业执照
  13464. break;
  13465. case 4:
  13466. this.userfrontImg = "";
  13467. this.userbackImg = "";
  13468. this.businessImg = "";
  13469. this.C04File = ""; // 被保人正面base64
  13470. this.D04File = ""; // 被保人背面base64
  13471. this.Y04File = ""; // 被保人营业执照
  13472. break;
  13473. default:
  13474. }
  13475. },
  13476. //预览图片
  13477. handlePictureCardPreview(img) {
  13478. this.ProViewImg = img;
  13479. this.showViewer = true;
  13480. },
  13481. // 关闭查看器
  13482. closeViewer() {
  13483. this.showViewer = false;
  13484. },
  13485. uploaduser(index) {
  13486. this.userIndex = index;
  13487. this.uploaduserdialogVisible = true;
  13488. },
  13489. userOCRdiscern() {
  13490. //OCR识别
  13491. if (this.activeName == "1") {
  13492. switch (this.userIndex) {
  13493. case 2:
  13494. // if (!this.C02File || !this.D02File) {
  13495. // this.$message.warning('请上传照片')
  13496. // return
  13497. // }
  13498. const params1 = new FormData(); // 声明formData数据类型
  13499. params1.append("image1", this.C02File);
  13500. params1.append("image2", this.D02File);
  13501. this.userOCRjoggle(params1);
  13502. break;
  13503. case 3:
  13504. // if (!this.C03File || !this.D03File) {
  13505. // this.$message.warning('请上传照片')
  13506. // return
  13507. // }
  13508. const params2 = new FormData(); // 声明formData数据类型
  13509. params2.append("image1", this.C03File);
  13510. params2.append("image2", this.D03File);
  13511. this.userOCRjoggle(params2);
  13512. break;
  13513. case 4:
  13514. // if (!this.C04File || !this.D04File) {
  13515. // this.$message.warning('请上传照片')
  13516. // return
  13517. // }
  13518. const params3 = new FormData(); // 声明formData数据类型
  13519. params3.append("image1", this.C04File);
  13520. params3.append("image2", this.D04File);
  13521. this.userOCRjoggle(params3);
  13522. break;
  13523. default:
  13524. }
  13525. } else {
  13526. switch (this.userIndex) {
  13527. case 2:
  13528. const params1 = new FormData(); // 声明formData数据类型
  13529. params1.append("image1", this.Y02File);
  13530. this.businessjoggle(params1);
  13531. break;
  13532. case 3:
  13533. const params2 = new FormData(); // 声明formData数据类型
  13534. params2.append("image1", this.Y03File);
  13535. this.businessjoggle(params2);
  13536. break;
  13537. case 4:
  13538. const params3 = new FormData(); // 声明formData数据类型
  13539. params3.append("image1", this.Y04File);
  13540. this.businessjoggle(params3);
  13541. break;
  13542. default:
  13543. }
  13544. }
  13545. },
  13546. businessjoggle(param) {
  13547. const loading = this.$loading({
  13548. lock: true,
  13549. text: "Loading",
  13550. spinner: "el-icon-loading",
  13551. background: "rgba(0, 0, 0, 0.7)"
  13552. });
  13553. this.$api.letter.businessLicense(param).then(res => {
  13554. loading.close();
  13555. if (res.msg == "201") {
  13556. this.$message({ message: "请正确选择营业执照", type: "warning" });
  13557. }
  13558. if (res.code == 200 && res.data) {
  13559. if (res.data) {
  13560. this.businessform = {
  13561. ...res.data,
  13562. name: res.data.company,
  13563. organizationCode: res.data.socialCreditCode,
  13564. addr: res.data.address,
  13565. identifyType: "10",
  13566. scope: res.data.businessScope,
  13567. legalPerson: res.data.legalRepresentative,
  13568. registeredCapital: parseInt(res.data.registeredCapital)
  13569. };
  13570. }
  13571. }
  13572. });
  13573. },
  13574. userOCRjoggle(param) {
  13575. const loading = this.$loading({
  13576. lock: true,
  13577. text: "Loading",
  13578. spinner: "el-icon-loading",
  13579. background: "rgba(0, 0, 0, 0.7)"
  13580. });
  13581. this.$api.letter.idCard(param).then(res => {
  13582. loading.close();
  13583. if (res.msg == "201") {
  13584. this.$message({ message: "请正确选择身份证", type: "warning" });
  13585. }
  13586. var customerInfo = res.data.customerInfo;
  13587. if (customerInfo) {
  13588. this.ownerInfoform.name = customerInfo.name;
  13589. if (customerInfo.identifyType == "01") {
  13590. this.ownerInfoform.identifyType = "身份证";
  13591. } else {
  13592. this.ownerInfoform.identifyType = "";
  13593. }
  13594. this.ownerInfoform.identifyNumber = customerInfo.identifyNumber;
  13595. this.ownerInfoform.gender = customerInfo.identifyIssuedCom;
  13596. this.ownerInfoform.addr = customerInfo.addr;
  13597. if (customerInfo.identifyNumber) {
  13598. this.ownerInfoform.age = getAgeByIdCard(
  13599. customerInfo.identifyNumber
  13600. );
  13601. }
  13602. if (
  13603. customerInfo.identifyValidDate ||
  13604. customerInfo.identifyValidEndDate
  13605. ) {
  13606. this.ownerInfoform.identifyValidDate =
  13607. customerInfo.identifyValidDate.substring(0, 4) +
  13608. "-" +
  13609. customerInfo.identifyValidDate.substring(4, 6) +
  13610. "-" +
  13611. customerInfo.identifyValidDate.substring(6, 8);
  13612. this.ownerInfoform.identifyValidEndDate =
  13613. customerInfo.identifyValidEndDate.substring(0, 4) +
  13614. "-" +
  13615. customerInfo.identifyValidEndDate.substring(4, 6) +
  13616. "-" +
  13617. customerInfo.identifyValidEndDate.substring(6, 8);
  13618. if (customerInfo.identifyValidEndDate == "长期") {
  13619. this.ownerInfoform.identifyValidEndDate = "9999-12-31";
  13620. }
  13621. }
  13622. // let values = addressCode(this.ownerInfoform.addr);
  13623. // this.ownerInfoform.province = codeToText[values[0]]
  13624. // this.ownerInfoform.city = codeToText[values[1]]
  13625. // this.ownerInfoform.county = codeToText[values[2]]
  13626. }
  13627. });
  13628. },
  13629. userOCRconfirm() {
  13630. //传参
  13631. if (this.activeName == "1") {
  13632. this.ownerInfoform.property = "1";
  13633. switch (this.userIndex) {
  13634. case 2:
  13635. // this.selectedOptions1 = addressCode(this.ownerInfoform.addr);
  13636. this.ownerInfo = JSON.parse(JSON.stringify(this.ownerInfoform));
  13637. break;
  13638. case 3:
  13639. // this.selectedOptions2 = addressCode(this.ownerInfoform.addr);
  13640. this.policyHolderInfo = JSON.parse(
  13641. JSON.stringify(this.ownerInfoform)
  13642. );
  13643. break;
  13644. case 4:
  13645. // this.selectedOptions3 = addressCode(this.ownerInfoform.addr);
  13646. this.insuredPersonInfo = JSON.parse(
  13647. JSON.stringify(this.ownerInfoform)
  13648. );
  13649. break;
  13650. }
  13651. } else {
  13652. this.businessform.property = "0";
  13653. switch (this.userIndex) {
  13654. case 2:
  13655. this.ownerInfo = { ...this.ownerInfo, ...this.businessform };
  13656. break;
  13657. case 3:
  13658. this.policyHolderInfo = {
  13659. ...this.policyHolderInfo,
  13660. ...this.businessform
  13661. };
  13662. break;
  13663. case 4:
  13664. this.insuredPersonInfo = {
  13665. ...this.insuredPersonInfo,
  13666. ...this.businessform
  13667. };
  13668. break;
  13669. }
  13670. }
  13671. this.uploaduserdialogVisible = false;
  13672. },
  13673. closeDialog(index) {
  13674. // 0:车辆 1:车主 2:投保人 3:被保人
  13675. switch (index) {
  13676. case 0:
  13677. this.carfrontImg = "";
  13678. this.carbackImg = "";
  13679. this.CarFrontFile = ""; // 行驶证正面base64
  13680. this.CarBackFile = ""; // 行驶证背面base64
  13681. Object.keys(this.carform).forEach(key => {
  13682. this.carform[key] = "";
  13683. });
  13684. break;
  13685. case 2:
  13686. this.userfrontImg = "";
  13687. this.userbackImg = "";
  13688. this.businessImg = "";
  13689. this.Y02File = ""; // 营业执照
  13690. this.C02File = ""; // 车主正面base64
  13691. this.D02File = ""; // 车主背面base64
  13692. Object.keys(this.ownerInfoform).forEach(key => {
  13693. this.ownerInfoform[key] = "";
  13694. });
  13695. Object.keys(this.businessform).forEach(key => {
  13696. this.businessform[key] = "";
  13697. });
  13698. break;
  13699. case 3:
  13700. this.userfrontImg = "";
  13701. this.userbackImg = "";
  13702. this.businessImg = "";
  13703. this.Y03File = ""; // 营业执照
  13704. this.C03File = ""; // 投保人正面base64
  13705. this.D03File = ""; // 投保人背面base64
  13706. Object.keys(this.ownerInfoform).forEach(key => {
  13707. this.ownerInfoform[key] = "";
  13708. });
  13709. Object.keys(this.businessform).forEach(key => {
  13710. this.businessform[key] = "";
  13711. });
  13712. break;
  13713. case 4:
  13714. this.userfrontImg = "";
  13715. this.userbackImg = "";
  13716. this.businessImg = "";
  13717. this.Y04File = ""; // 营业执照
  13718. this.C04File = ""; // 被保人正面base64
  13719. this.D04File = ""; // 被保人背面base64
  13720. Object.keys(this.ownerInfoform).forEach(key => {
  13721. this.ownerInfoform[key] = "";
  13722. });
  13723. Object.keys(this.businessform).forEach(key => {
  13724. this.businessform[key] = "";
  13725. });
  13726. break;
  13727. default:
  13728. }
  13729. },
  13730. bjdpreview(id) {
  13731. let params = {
  13732. companyId: id
  13733. };
  13734. this.$api.letter.getByCompanyId(params).then(res => {
  13735. if (res.code == "200") {
  13736. var data = res.data;
  13737. if (data.kindinfo != null) {
  13738. data.kindinfo.map((ele, index) => {
  13739. switch (ele.kindCode) {
  13740. case "A":
  13741. if (ele.amount == 1) {
  13742. ele.amount = "投保";
  13743. } else {
  13744. ele.amount = ele.amount;
  13745. }
  13746. break;
  13747. case "D4":
  13748. case "SY_FJ_YBW2":
  13749. ele.unitAmount = this.toChinesNum(ele.unitAmount);
  13750. break;
  13751. case "MJ1":
  13752. case "MJ2":
  13753. case "MJ3":
  13754. case "MJ4":
  13755. ele.deductibleRate = ele.deductibleRate + "%";
  13756. break;
  13757. default:
  13758. ele.amount = this.toChinesNum(ele.amount);
  13759. }
  13760. return ele;
  13761. });
  13762. }
  13763. data.logoImg = this.iconfftter(res.data.inscompany);
  13764. this.queryOrders = data;
  13765. this.$api.letter.getThemeByUserId(this.userId).then(res => {
  13766. if (res.code == 200) {
  13767. if (res.data[0] == "GD") {
  13768. this.$refs.quotationDialogPro.setBackupVisible(true);
  13769. } else {
  13770. this.$refs.quotationDialog.setBackupVisible(true);
  13771. }
  13772. }
  13773. });
  13774. // if (
  13775. // this.$store.state.user.roles.managementSource &&
  13776. // this.$store.state.user.roles.managementSource == "3"
  13777. // ) {
  13778. // this.$refs.quotationDialogPro.setBackupVisible(true);
  13779. // } else {
  13780. // this.$refs.quotationDialog.setBackupVisible(true);
  13781. // }
  13782. }
  13783. });
  13784. },
  13785. //返回上一步
  13786. Back() { },
  13787. carcode(id, item) {
  13788. this.$api.letter.getQrCode(id).then(res => {
  13789. if (res.code == "200") {
  13790. this.inscompany = res.data.inscompany; //保险公司
  13791. this.sumpremium = res.data.sumpremium; //总价
  13792. this.licenseNo = res.data.cPlateNo; //车牌号
  13793. this.applyName = res.data.cApplyNme; //车主
  13794. this.jqpremium = res.data.jqpremium; //交强
  13795. this.sypremium = res.data.sypremium; //商业
  13796. this.taxamount = res.data.taxamount; //车船税
  13797. this.jypremium = res.data.jypremium; //驾意险
  13798. this.jqstartdate = res.data.jqStartDate; //交强起保日期
  13799. this.systartdate = res.data.syStartDate; //商业起保日期
  13800. // this.mobile = res.data.applyinfo.mobile;//投保人手机号
  13801. let qrCodeUrl = res.data.qrCodeUrl;
  13802. this.$api.letter.getThemeByUserId(this.userId).then(res => {
  13803. if (res.code == 200) {
  13804. if (res.data[0] == "GD") {
  13805. this.codedialogVisiblePro = true;
  13806. this.qrcodeWidth = "154";
  13807. this.qrcodeHeight = "154";
  13808. } else {
  13809. this.codedialogVisible = true;
  13810. }
  13811. this.$nextTick(function () {
  13812. this.creatQrCode(qrCodeUrl);
  13813. });
  13814. }
  13815. });
  13816. } else {
  13817. this.$message({ message: res.msg, type: "warning" });
  13818. }
  13819. });
  13820. },
  13821. //同步
  13822. synchronization() {
  13823. this.systartDate = this.jqstartDate;
  13824. this.syendDate = this.jqendDate;
  13825. },
  13826. add() {
  13827. // this.obtainProtocol();
  13828. if (this.isLetter == "1") {
  13829. this.$router.push({ path: "/letter/letter" });
  13830. }
  13831. for (let key in this.ownerInfo) {
  13832. this.ownerInfo[key] = "";
  13833. }
  13834. for (let key in this.policyHolderInfo) {
  13835. this.policyHolderInfo[key] = "";
  13836. }
  13837. for (let key in this.insuredPersonInfo) {
  13838. this.insuredPersonInfo[key] = "";
  13839. }
  13840. this.vehicleAndVesselTaxForm = {
  13841. taxRelifFlag: "1",
  13842. taxpayerIdentifier: "01"
  13843. };
  13844. // 清空保险公司列表
  13845. this.totalCompanyList = [];
  13846. this.ownerInfo.provinceData = [];
  13847. this.insuredPersonInfo.provinceData = [];
  13848. this.policyHolderInfo.provinceData = [];
  13849. this.carInfo = JSON.parse(localStorage.getItem("carInfo"));
  13850. this.insureList = JSON.parse(localStorage.getItem("insureList"));
  13851. this.sychecked = false;
  13852. this.yonganchecked = false;
  13853. this.zhongmeichecked = false;
  13854. this.transferDateShow = false;
  13855. this.tbczcarShow = true; //投保人同车主
  13856. // this.bbczcarShow = false, //被保人同车主
  13857. this.bbtbcarShow = true; //被保人同投保人
  13858. // this.$refs.imageDialog.emptyList()
  13859. this.imageList1 = [];
  13860. this.imageList2 = [];
  13861. this.imageList3 = [];
  13862. this.imageList4 = [];
  13863. this.imageList5 = [];
  13864. this.imageList6 = [];
  13865. this.imgList1 = [];
  13866. this.imgList2 = [];
  13867. this.imgList3 = [];
  13868. this.imgList4 = [];
  13869. this.imgList5 = [];
  13870. this.imgList6 = [];
  13871. this.imgList7 = [];
  13872. this.imgList8 = [];
  13873. this.imgList9 = [];
  13874. this.imgList10 = [];
  13875. this.imgList11 = [];
  13876. this.imgList12 = [];
  13877. this.imgList13 = [];
  13878. this.imgList14 = [];
  13879. this.imgList15 = [];
  13880. this.imgList16 = [];
  13881. this.imgList17 = [];
  13882. this.imgList18 = [];
  13883. this.imgList19 = [];
  13884. this.imgList20 = [];
  13885. this.imgList21 = [];
  13886. this.imgList22 = [];
  13887. this.imgList23 = [];
  13888. this.imgList24 = [];
  13889. this.imgList25 = [];
  13890. this.imgList26 = [];
  13891. this.imgList28 = [];
  13892. this.imgList27 = [];
  13893. // 清空保险公司选中的意外险
  13894. this.zijintemplateSelection = "";
  13895. this.zhongantemplateSelection = "";
  13896. this.hengbangtemplateSelection = "";
  13897. this.taipingyangtemplateSelection = "";
  13898. this.taipingtemplateSelection = "";
  13899. this.insuranceHN = "";
  13900. this.renshoutemplateSelection = "";
  13901. this.dajiatemplateSelection = "";
  13902. this.accidentForm = {
  13903. fen: "1",
  13904. premium: 0
  13905. };
  13906. this.accidentFormHN = {
  13907. allQuantity: "1",
  13908. quantity: "1"
  13909. };
  13910. this.productId = "";
  13911. this.hengbangaccidentalDrivingVo = {};
  13912. this.taipingyangaccidentalDrivingVo = {};
  13913. this.huanongaccidentalDrivingVo = {};
  13914. this.taipingaccidentalDrivingVo = {};
  13915. this.zhongmeiaccidentalDrivingVo = {};
  13916. this.accidentalDrivingVo = [];
  13917. this.zhonganaccidentalDrivingVo = {};
  13918. this.renshouaccidentalDrivingVo = {};
  13919. this.anshengaccidentalDrivingVo = {};
  13920. this.dajiaaccidentalDrivingVo = {};
  13921. this.selectedOptions1 = [];
  13922. this.selectedOptions2 = [];
  13923. this.selectedOptions3 = [];
  13924. this.orderno = "";
  13925. this.quoteno = "";
  13926. this.lastCompanyId = "";
  13927. this.HistoryList = [];
  13928. this.jqstartDate = this.transformTime1();
  13929. this.jqendDate = this.oneYearPast1(this.jqstartDate);
  13930. this.systartDate = this.transformTime1();
  13931. this.syendDate = this.oneYearPast1(this.jqstartDate);
  13932. this.policyNumberForm = {
  13933. jqpolicyno: "",
  13934. sypolicyno: "",
  13935. jypolicyno: "",
  13936. jqpremium: "",
  13937. sypremium: "",
  13938. jypremium: "",
  13939. taxamount: "",
  13940. commissionFeevalue: "",
  13941. otherFeevalue: "",
  13942. jqSuperviseCostsProportion: "",
  13943. sySuperviseCostsProportion: "",
  13944. noSuperviseCostsProportion: "",
  13945. jqOtherCostsProportion: "",
  13946. syOtherCostsProportion: "",
  13947. noOtherCostsProportion: "",
  13948. jqReceivableProportion: "",
  13949. syReceivableProportion: "",
  13950. noReceivableProportion: "",
  13951. jqPolicyList: [],
  13952. syPolicyList: [],
  13953. jqSignList: [],
  13954. noPolicyList: [],
  13955. noCostsProportion: "",
  13956. jqCostsProportion: "",
  13957. syCostsProportion: ""
  13958. };
  13959. },
  13960. toChinesNum(num) {
  13961. if (num.toString().length == 4) {
  13962. let overQian = Math.floor(num / 1000);
  13963. let result = overQian + "千";
  13964. return result;
  13965. } else {
  13966. let overWan = Math.floor(num / 10000);
  13967. let result = overWan + "万";
  13968. return result;
  13969. }
  13970. },
  13971. reportDrop(event) {
  13972. event.preventDefault();
  13973. event.stopPropagation();
  13974. },
  13975. tabLiScroll(id, idx) {
  13976. this.tabLiIndex = idx;
  13977. document.getElementById(id).scrollIntoView({ behavior: "smooth" });
  13978. },
  13979. handleScroll(id) {
  13980. document.getElementById(id).scrollIntoView({ behavior: "smooth" });
  13981. }
  13982. }
  13983. };
  13984. </script>
  13985. <style>
  13986. /* .customNotifyClass {
  13987. word-break: break-all;
  13988. width: 600px;
  13989. } */
  13990. .interestList{
  13991. margin-top: 10px;
  13992. border: 1px solid #ccc;
  13993. padding: 0 10px;
  13994. border-radius: 4px;
  13995. .interestItem{
  13996. margin: 6px 0;
  13997. padding: 4px 8px;
  13998. text-align: center;
  13999. }
  14000. .active{
  14001. background: #F0F0F0;
  14002. }
  14003. }
  14004. </style>
  14005. <style lang="scss" scoped>
  14006. .el-row {
  14007. display: flex;
  14008. flex-wrap: wrap;
  14009. align-content: flex-start;
  14010. }
  14011. // .marginL {
  14012. // margin-left: 10px;
  14013. // }
  14014. .el-notification {
  14015. width: 600px;
  14016. }
  14017. .styleB .el-upload--picture-card {
  14018. // display: none;
  14019. opacity: 0;
  14020. }
  14021. .ORcodebody {
  14022. height: auto;
  14023. background-color: #fff;
  14024. //background: url(../../../assets/image/group.png) #fff;
  14025. padding: 16px;
  14026. }
  14027. .csstool {
  14028. font-weight: 600;
  14029. color: #606266;
  14030. font-size: 14px;
  14031. margin: 0 20px;
  14032. span {
  14033. margin-right: 5px;
  14034. }
  14035. }
  14036. .ORcode {
  14037. width: 100%;
  14038. height: auto;
  14039. display: flex;
  14040. justify-content: center;
  14041. align-items: center;
  14042. padding: 30px;
  14043. box-sizing: border-box;
  14044. &>div {
  14045. width: 176px;
  14046. height: 176px;
  14047. border: 1px solid var(--themeColor);
  14048. border-radius: 5px;
  14049. }
  14050. }
  14051. .ORtitle {
  14052. width: 100%;
  14053. padding-bottom: 20px;
  14054. box-sizing: border-box;
  14055. &>div {
  14056. width: 100%;
  14057. margin: 10px 0;
  14058. font-size: 14px;
  14059. &>span {
  14060. &:nth-child(1) {
  14061. color: #868b98;
  14062. text-align: end;
  14063. width: 150px;
  14064. }
  14065. &:nth-child(2) {
  14066. color: #333333;
  14067. }
  14068. }
  14069. }
  14070. }
  14071. .Risk {
  14072. width: 100%;
  14073. height: auto;
  14074. display: flex;
  14075. flex-direction: column;
  14076. align-items: center;
  14077. font-size: 12px;
  14078. }
  14079. .dis {
  14080. display: flex;
  14081. }
  14082. .align {
  14083. align-items: center;
  14084. }
  14085. .jus {
  14086. justify-content: space-between;
  14087. }
  14088. .shangyexian {
  14089. padding-left: 100px;
  14090. }
  14091. .headertotal {
  14092. padding: 30px;
  14093. }
  14094. .my-label {
  14095. background: #e1f3d8;
  14096. }
  14097. .my-content {
  14098. background: #fde2e2;
  14099. color: aqua;
  14100. }
  14101. .el-button--mini {
  14102. padding: 5px;
  14103. }
  14104. #qqq {
  14105. background-color: #111;
  14106. width: 300px;
  14107. height: 300px;
  14108. margin: 0 auto;
  14109. position: relative;
  14110. }
  14111. #qrCode {
  14112. display: inline-block;
  14113. margin: 0 auto;
  14114. position: relative;
  14115. top: 15%;
  14116. img {
  14117. width: 200px;
  14118. height: 200px;
  14119. background-color: #fff;
  14120. padding: 6px;
  14121. }
  14122. }
  14123. .code {
  14124. box-sizing: border-box;
  14125. display: flex;
  14126. flex-direction: column;
  14127. justify-content: space-between;
  14128. align-items: center;
  14129. &>span {
  14130. margin-bottom: 10px;
  14131. }
  14132. }
  14133. .code_name {
  14134. width: 350px;
  14135. display: flex;
  14136. justify-content: space-between;
  14137. align-items: center;
  14138. font-weight: bold;
  14139. &>span {
  14140. &:nth-child(1) {
  14141. color: #979797;
  14142. width: 120px;
  14143. text-align: right;
  14144. }
  14145. &:nth-child(2) {
  14146. color: #2d2d2d;
  14147. width: 120px;
  14148. text-align: left;
  14149. }
  14150. }
  14151. }
  14152. .header {
  14153. font-size: 18px;
  14154. font-weight: bold;
  14155. }
  14156. .body {
  14157. border-top: none;
  14158. padding-bottom: 100px;
  14159. box-sizing: border-box;
  14160. }
  14161. .u-f-ac {
  14162. -webkit-box-align: center;
  14163. align-items: center;
  14164. padding: 10px;
  14165. }
  14166. .bodyTitle {
  14167. height: 45px;
  14168. background: #f3f3f3;
  14169. border: 1px solid #dddddd;
  14170. line-height: 45px;
  14171. padding: 0 20px;
  14172. box-sizing: border-box;
  14173. }
  14174. .start {
  14175. justify-content: flex-start;
  14176. }
  14177. .end {
  14178. justify-content: flex-end;
  14179. }
  14180. .descriptions {
  14181. padding: 20px;
  14182. box-sizing: border-box;
  14183. display: flex;
  14184. flex-direction: column;
  14185. }
  14186. .bodys {
  14187. display: flex;
  14188. justify-content: space-between;
  14189. align-items: center;
  14190. flex-wrap: wrap;
  14191. }
  14192. .bodys1 {
  14193. display: flex;
  14194. justify-content: center;
  14195. align-items: center;
  14196. flex-wrap: wrap;
  14197. }
  14198. .widths {
  14199. width: 230px;
  14200. }
  14201. .widths1 {
  14202. width: 300px;
  14203. }
  14204. .back {
  14205. color: #333333;
  14206. // font-weight: 700;
  14207. }
  14208. .home {
  14209. // padding-left: 10px;
  14210. box-sizing: border-box;
  14211. padding-bottom: 10px;
  14212. border-bottom: 1px solid #eef1f6;
  14213. &>span {
  14214. margin-right: 10px;
  14215. }
  14216. }
  14217. .border-red {
  14218. border: 1px solid #ff0606;
  14219. }
  14220. .border-blue {
  14221. border: 1px solid #0634ff;
  14222. }
  14223. .hovers {
  14224. margin: 20px 0;
  14225. cursor: pointer;
  14226. padding: 10px 0;
  14227. box-sizing: border-box;
  14228. box-shadow: 0 2px 8px 0 rgba(231, 163, 36, 0.205);
  14229. border-radius: 8px;
  14230. .offer-time {
  14231. margin: 20px 0 0px 100px;
  14232. padding: 10px;
  14233. background: rgba(45, 77, 137, 0.06);
  14234. &>span {
  14235. margin: 0 10px;
  14236. }
  14237. }
  14238. }
  14239. /* 内容待定 */
  14240. .coll {
  14241. font-size: 14px;
  14242. }
  14243. .display {
  14244. display: flex;
  14245. justify-content: center;
  14246. align-items: center;
  14247. box-sizing: border-box;
  14248. }
  14249. .black {
  14250. color: #000;
  14251. }
  14252. .gray {
  14253. color: #999;
  14254. }
  14255. .OCR {
  14256. font-weight: bold;
  14257. color: #333;
  14258. margin: 20px;
  14259. }
  14260. .slot {
  14261. position: absolute;
  14262. width: 100%;
  14263. height: 100%;
  14264. left: 0;
  14265. top: 0;
  14266. cursor: default;
  14267. text-align: center;
  14268. color: #fff;
  14269. opacity: 0;
  14270. font-size: 20px;
  14271. background-color: rgba(0, 0, 0, 0.5);
  14272. transition: opacity 0.3s;
  14273. display: flex;
  14274. justify-content: center;
  14275. align-items: center;
  14276. &>i {
  14277. margin: 10px;
  14278. color: #fff;
  14279. font-size: 30px;
  14280. font-weight: bold;
  14281. cursor: pointer;
  14282. }
  14283. &:hover {
  14284. opacity: 1;
  14285. }
  14286. }
  14287. .companyhead {
  14288. width: 100%;
  14289. margin: 0 auto;
  14290. padding: 15px 10px;
  14291. color: #333;
  14292. font-weight: bold;
  14293. font-size: 14px;
  14294. background-color: rgba(0, 89, 255, 0.1);
  14295. }
  14296. .position-left {
  14297. width: calc(100% - 220px);
  14298. }
  14299. .position-collapse-left {
  14300. width: calc(100% - 80px);
  14301. }
  14302. .footer {
  14303. position: fixed;
  14304. bottom: 0;
  14305. right: 0;
  14306. background-color: #fff;
  14307. z-index: 9;
  14308. padding: 20px;
  14309. box-sizing: border-box;
  14310. box-shadow: 0 0 1px 0 #ccc;
  14311. transition: all 0.1s, box-shadow 0.5s;
  14312. &.shadow {
  14313. box-shadow: 0 -10px 10px -10px #ccc;
  14314. }
  14315. }
  14316. .Enclosure {
  14317. width: 100%;
  14318. background-color: #fff;
  14319. padding: 20px;
  14320. box-sizing: border-box;
  14321. margin-bottom: 15px;
  14322. border-radius: 6px;
  14323. border: 1px solid #ebeef5;
  14324. transition: all 0.2s ease-in-out;
  14325. box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
  14326. }
  14327. .Enclosure:hover {
  14328. box-shadow: 0 0 10px 0 #d42427;
  14329. }
  14330. .icon-img {
  14331. display: block;
  14332. width: 30px;
  14333. height: 30px;
  14334. }
  14335. .Anchor-link {
  14336. width: 40px;
  14337. background-color: #fff;
  14338. box-shadow: #ccc 0 0px 3px 0;
  14339. border-radius: 6px;
  14340. position: fixed;
  14341. top: 50%;
  14342. right: 0;
  14343. z-index: 99;
  14344. div {
  14345. margin: 5px;
  14346. border-bottom: 1px solid #f2f2f2;
  14347. cursor: pointer;
  14348. display: block;
  14349. }
  14350. }
  14351. .color {
  14352. padding-top: 150px;
  14353. margin-top: -150px;
  14354. }
  14355. .more {
  14356. width: 100%;
  14357. padding: 20px;
  14358. box-sizing: border-box;
  14359. }
  14360. .more-title {
  14361. padding: 15px 10px;
  14362. background-color: #f7f7f9;
  14363. // border-bottom: 1px solid #e3e3e3;
  14364. font-size: 14px;
  14365. }
  14366. .more-data {
  14367. padding: 10px;
  14368. border-bottom: 1px solid #f2f2f2;
  14369. color: #333;
  14370. font-size: 14px;
  14371. }
  14372. .Driving-risk {
  14373. padding-left: 100px;
  14374. // padding-top:20px
  14375. }
  14376. .checkbox {
  14377. transform: scale(1.2);
  14378. margin-right: 20px;
  14379. line-height: 32px;
  14380. }
  14381. .insure-long-term {
  14382. display: inline-flex;
  14383. padding-left: 8px;
  14384. padding-right: 8px;
  14385. background: var(--themeColor);
  14386. color: #fff;
  14387. font-size: 12px;
  14388. margin-left: -5px;
  14389. border-radius: 0px 5px 5px 0px;
  14390. cursor: pointer;
  14391. }
  14392. .textareaSty {
  14393. width: 160px;
  14394. height: 210px;
  14395. border: 1px solid #d2d2d2;
  14396. border-radius: 4px;
  14397. img {
  14398. width: 50px;
  14399. height: 50px;
  14400. }
  14401. }
  14402. .image-title {
  14403. width: 100px;
  14404. height: 30px;
  14405. color: #fff;
  14406. text-align: center;
  14407. line-height: 30px;
  14408. font-weight: bold;
  14409. margin-bottom: 15px;
  14410. background: #fc4a1a;
  14411. background: #f2994a;
  14412. /* fallback for old browsers */
  14413. background: -webkit-linear-gradient(to left, #f2c94c, #f2994a);
  14414. /* Chrome 10-25, Safari 5.1-6 */
  14415. background: linear-gradient(to left, #f2c94c, #f2994a);
  14416. /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
  14417. }
  14418. .aaa {
  14419. /deep/ {
  14420. margin-bottom: 20px;
  14421. margin-right: 30px;
  14422. span {
  14423. display: inline-block;
  14424. margin-bottom: 10px;
  14425. }
  14426. .el-upload .el-upload-dragger {
  14427. width: 180px;
  14428. height: 120px;
  14429. border: 1px dashed #c0ccda;
  14430. padding: 0;
  14431. }
  14432. .el-upload-list--picture-card .el-upload-list__item {
  14433. width: 180px;
  14434. height: 120px;
  14435. }
  14436. .el-upload-list__item:first-child {
  14437. margin-top: 0;
  14438. }
  14439. .el-upload--picture-card {
  14440. width: 180px;
  14441. height: 120px;
  14442. }
  14443. .el-upload-list__item {
  14444. width: 180px;
  14445. height: 120px;
  14446. margin: 0 !important;
  14447. display: block !important;
  14448. }
  14449. .el-upload-list--picture-card .el-upload-list__item-thumbnail {
  14450. width: 180px;
  14451. height: 120px;
  14452. }
  14453. }
  14454. }
  14455. .jyxStyle>span {
  14456. display: inline-block;
  14457. text-align: center;
  14458. }
  14459. .tab-style {
  14460. width: 120px;
  14461. li {
  14462. text-align: right;
  14463. padding-right: 20px;
  14464. line-height: 40px;
  14465. cursor: pointer;
  14466. box-sizing: border-box;
  14467. border-right: 1px solid #e2e5eb;
  14468. }
  14469. li:focus {
  14470. background: rgba(212, 36, 38, 0.1);
  14471. border-right: 2px solid var(--themeColor);
  14472. color: var(--themeColor);
  14473. }
  14474. }
  14475. .tabLi-style {
  14476. background: rgba(212, 36, 38, 0.1);
  14477. border-right: 2px solid var(--themeColor);
  14478. color: var(--themeColor);
  14479. }
  14480. .scan-code {
  14481. div {
  14482. margin-top: 10px;
  14483. }
  14484. }
  14485. /* 清除图片上传动画bug */
  14486. /deep/ {
  14487. .proSaomazhifucodeClass .el-dialog__header {
  14488. background: rgba(45, 77, 137, 0.1);
  14489. font-weight: bold;
  14490. }
  14491. .proSaomazhifucodeClass .el-dialog__footer {
  14492. border-top: 1px solid #eef1f6;
  14493. }
  14494. .el-upload-list__item {
  14495. transition: none !important;
  14496. }
  14497. .el-checkbox__input {
  14498. &.is-checked {
  14499. .el-checkbox__inner {
  14500. background-color: #d42426;
  14501. border-color: #d42426;
  14502. }
  14503. }
  14504. }
  14505. .el-checkbox__inner {
  14506. border: 1px solid var(--themeColor);
  14507. &:hover {
  14508. border-color: var(--themeColorHover);
  14509. }
  14510. &:focus {
  14511. border-color: var(--themeColor);
  14512. }
  14513. }
  14514. .el-upload .el-upload-dragger {
  14515. height: 250px;
  14516. width: 400px;
  14517. border: 1px dashed #ced4da;
  14518. }
  14519. // .el-button--warning {
  14520. // color: #fff;
  14521. // background-color: #D42426;
  14522. // border-color: #D42426;
  14523. // &:hover {
  14524. // color: #fff;
  14525. // background-color: #ee6f00ce;
  14526. // border-color: #ee6f00ce;
  14527. // }
  14528. // }
  14529. .el-descriptions-item__label {
  14530. &:not(.is-bordered-label) {
  14531. color: #333;
  14532. }
  14533. }
  14534. // .el-radio__input.is-checked + .el-radio__label {
  14535. // color: #ff7000;
  14536. // }
  14537. // .el-radio__input.is-checked .el-radio__inner {
  14538. // border-color: #ff7000;
  14539. // background: #ff7000;
  14540. // }
  14541. // .el-radio__inner {
  14542. // &:hover {
  14543. // border-color: #ff7000;
  14544. // }
  14545. // }
  14546. // .el-input--small .el-icon-date {
  14547. // color: #ee6f00ce;
  14548. // }
  14549. .el-select {
  14550. width: 100%;
  14551. }
  14552. .el-date-editor.el-input {
  14553. width: 100%;
  14554. }
  14555. .el-cascader--small {
  14556. width: 100%;
  14557. }
  14558. .styleB {
  14559. height: 128px;
  14560. }
  14561. .styleB .el-upload--picture-card {
  14562. display: none;
  14563. }
  14564. .saomazhifucodeClass .el-dialog__body,
  14565. .saomazhifucodeClass .el-dialog__header,
  14566. .saomazhifucodeClass .el-dialog__footer {
  14567. padding: 0;
  14568. background: #f4e9e9;
  14569. }
  14570. .saomazhifucodeClass .el-dialog__body {
  14571. padding: 15px;
  14572. }
  14573. .saomazhifucodeClass .el-dialog__footer {
  14574. background: #f4e9e9;
  14575. padding-bottom: 15px;
  14576. }
  14577. .saomazhifucodeClass .el-dialog__headerbtn {
  14578. margin-top: 10px;
  14579. }
  14580. .zmDriving {
  14581. thead .el-table-column--selection .cell {
  14582. display: none !important;
  14583. }
  14584. }
  14585. .line_style {
  14586. margin-top: 20px;
  14587. }
  14588. .el-input-group__append {
  14589. vertical-align: baseline;
  14590. border-color: #d42426;
  14591. background: #d42426;
  14592. color: #fff;
  14593. }
  14594. .pinganTable .el-table__header-wrapper .el-checkbox {
  14595. display: none;
  14596. }
  14597. }
  14598. </style>
  14599. <style lang="scss" scoped>
  14600. .company-checked {
  14601. background: rgba(45, 77, 137, 0.15);
  14602. padding: 12px 20px;
  14603. box-sizing: border-box;
  14604. margin-top: 10px;
  14605. font-size: 13px;
  14606. color: #333;
  14607. line-height: 24px;
  14608. overflow-x: auto;
  14609. .width1280 {
  14610. min-width: 1576px;
  14611. }
  14612. .bg-white {
  14613. background: #fff;
  14614. padding: 10px 12px;
  14615. border-radius: 4px;
  14616. width: 100%;
  14617. }
  14618. .flex-1 {
  14619. flex: 1;
  14620. }
  14621. .w-60 {
  14622. box-sizing: border-box;
  14623. width: 60px;
  14624. text-align: center;
  14625. border-left: 1px solid #fce5bd;
  14626. }
  14627. .w-50 {
  14628. box-sizing: border-box;
  14629. width: 60px;
  14630. text-align: center;
  14631. border-left: 1px solid #fce5bd;
  14632. }
  14633. .card-bg {
  14634. background: #fff;
  14635. padding: 10px;
  14636. display: flex;
  14637. }
  14638. .card-xianzhong {
  14639. border: 1px solid #2ab79e;
  14640. flex: 1;
  14641. background: rgba(42, 183, 158, 0.15);
  14642. border-radius: 0;
  14643. text-align: center;
  14644. color: #2ab79e;
  14645. // border: 10px solid #FFF;
  14646. font-size: 15px;
  14647. padding: 0 18px;
  14648. display: flex;
  14649. flex-direction: column;
  14650. justify-content: center;
  14651. .card-btn {
  14652. margin-top: 20px;
  14653. border-radius: 2px;
  14654. border: 1px solid #2ab79e;
  14655. background: #fff;
  14656. padding: 4px 8px;
  14657. font-size: 16px;
  14658. font-weight: 600;
  14659. }
  14660. }
  14661. .card-table {
  14662. margin-top: 12px;
  14663. .table-title {
  14664. color: #333;
  14665. width: 58px;
  14666. font-size: 14px;
  14667. }
  14668. .table-list {
  14669. flex: 1;
  14670. .table-list-title {
  14671. background: #fdedc2;
  14672. border: 1px solid #fce5bd;
  14673. color: #333;
  14674. line-height: 28px;
  14675. padding-left: 12px;
  14676. display: flex;
  14677. }
  14678. .table-list-content {
  14679. line-height: 28px;
  14680. padding-left: 12px;
  14681. display: flex;
  14682. align-items: center;
  14683. border: 1px solid #fdedc2;
  14684. border-top: none;
  14685. background: #fff;
  14686. img {
  14687. width: 14px;
  14688. height: 14px;
  14689. transform: translateY(2px);
  14690. }
  14691. span {
  14692. margin-left: 8px;
  14693. font-size: 14px;
  14694. }
  14695. }
  14696. }
  14697. }
  14698. .card-mingxi {
  14699. border: 1px solid #fd9a25;
  14700. flex: 1;
  14701. background: rgba(253, 154, 37, 0.15);
  14702. padding: 8px 12px;
  14703. font-size: 13px;
  14704. .card-mingxi-title {
  14705. color: #fd9a25;
  14706. font-size: 15px;
  14707. span {
  14708. color: #fff;
  14709. background: linear-gradient(90deg, #ff981f 0%, #ff5c00 100%);
  14710. padding: 4px 8px;
  14711. border-radius: 2px;
  14712. }
  14713. }
  14714. }
  14715. .fuwu {
  14716. background: #e9f1ff;
  14717. border: 1px solid #315ba9;
  14718. .card-mingxi-title {
  14719. color: #315ba9;
  14720. }
  14721. .table-list-title {
  14722. background: #c1daff !important;
  14723. border: 1px solid #c1daff !important;
  14724. }
  14725. .table-list-content {
  14726. border-color: #c1daff !important;
  14727. }
  14728. .w-50 {
  14729. border-color: #afccfa !important;
  14730. }
  14731. .flex-1 {
  14732. border-right: 1px solid #afccfa;
  14733. }
  14734. .w-55 {
  14735. border-left: none !important;
  14736. }
  14737. }
  14738. .baoxian {
  14739. padding: 10px;
  14740. border: 1px solid rgba(45, 77, 137, 0.5);
  14741. // background: #F2F4F8;
  14742. background: #f3f3f3;
  14743. display: flex;
  14744. flex-direction: column;
  14745. .card-mingxi-title {
  14746. color: #333;
  14747. display: flex;
  14748. }
  14749. .table-list-title {
  14750. background: #dcdce8 !important;
  14751. }
  14752. .table-list-title,
  14753. .table-list-content {
  14754. padding-left: 0 !important;
  14755. text-align: center;
  14756. border-color: #dcdce8 !important;
  14757. }
  14758. .table-list-title {
  14759. padding-left: 0 !important;
  14760. text-align: center;
  14761. border: 1px solid #dcdce8 !important;
  14762. }
  14763. .flex-1 {
  14764. border-left: 1px solid #dcdce8;
  14765. }
  14766. .w-40 {
  14767. box-sizing: border-box;
  14768. width: 50px;
  14769. text-align: center;
  14770. }
  14771. }
  14772. .youhui {
  14773. background: #feeeec;
  14774. border: 1px solid #ed5626;
  14775. .card-mingxi-title {
  14776. color: #ed5626;
  14777. }
  14778. .table-list-title {
  14779. background: #ffd2c8 !important;
  14780. border: 1px solid #ffd2c8 !important;
  14781. }
  14782. .table-list-content {
  14783. border-color: #ffd2c8 !important;
  14784. padding-left: 0 !important;
  14785. }
  14786. .table-list-line {
  14787. border-bottom: 1px solid #ffd2c8;
  14788. border-right: 1px solid #ffd2c8;
  14789. padding-left: 6px;
  14790. }
  14791. .table-list-line-last {
  14792. border-bottom: none !important;
  14793. }
  14794. .w-60 {
  14795. width: 70px !important;
  14796. border-color: #fabdae !important;
  14797. }
  14798. .w-66 {
  14799. border-left: none !important;
  14800. }
  14801. }
  14802. .el-popover {
  14803. margin-right: 20px;
  14804. padding: 0 !important;
  14805. }
  14806. .gray-style {
  14807. border: 1px solid #333333;
  14808. border-radius: 2px;
  14809. color: #333;
  14810. text-align: center;
  14811. line-height: 24px;
  14812. box-sizing: border-box;
  14813. padding: 4px 8px;
  14814. margin-right: 10px;
  14815. opacity: 0.65;
  14816. // transition: all ease .3s;
  14817. img {
  14818. margin-bottom: -4px;
  14819. }
  14820. &:hover {
  14821. opacity: 1;
  14822. }
  14823. }
  14824. .juse-style {
  14825. color: #fff;
  14826. background: linear-gradient(90deg, #ff981f 0%, #ff5c00 100%);
  14827. padding: 4px 8px;
  14828. border-radius: 2px;
  14829. }
  14830. .blue-style {
  14831. // background: #2D4D89;
  14832. background: linear-gradient(270deg, #0052ff 0%, #6899ff 100%);
  14833. // border: 1px solid #2D4D89;
  14834. border: none;
  14835. color: #fff;
  14836. border-radius: 2px;
  14837. padding: 4px 8px;
  14838. text-align: center;
  14839. line-height: 24px;
  14840. box-sizing: border-box;
  14841. opacity: 1;
  14842. position: relative;
  14843. // ::after {
  14844. // content: '✔';
  14845. // color: red;
  14846. // position: absolute;
  14847. // bottom: 0;
  14848. // right: 0;
  14849. // width: 4px;
  14850. // height: 4px;
  14851. // }
  14852. }
  14853. .blue-text {
  14854. color: #2d4d89;
  14855. }
  14856. .left-title {
  14857. font-size: 14px;
  14858. margin-bottom: 12px;
  14859. }
  14860. .blue-button {
  14861. background: #2d4d89;
  14862. color: #fff;
  14863. padding: 4px 8px;
  14864. line-height: 24px;
  14865. border: 1px solid #2d4d89;
  14866. border-radius: 2px;
  14867. }
  14868. .company-checked-card {
  14869. background: #fff;
  14870. padding: 12px;
  14871. margin-top: 12px;
  14872. >div {
  14873. display: flex;
  14874. margin: 10px;
  14875. }
  14876. .checked-card-title {
  14877. width: 60px;
  14878. }
  14879. span {
  14880. margin-right: 20px;
  14881. }
  14882. }
  14883. .company-checked-right {
  14884. padding: 0 12px;
  14885. color: #333;
  14886. line-height: 22px;
  14887. font-size: 14px;
  14888. position: relative;
  14889. .btn-list {
  14890. display: flex;
  14891. justify-content: right;
  14892. align-items: center;
  14893. span {
  14894. margin: 0 10px;
  14895. color: #2d4d89;
  14896. font-size: 12px;
  14897. }
  14898. }
  14899. }
  14900. }
  14901. .typedialog-style {
  14902. .typedialog-title {
  14903. font-size: 15px;
  14904. line-height: 30px;
  14905. font-weight: 700;
  14906. margin: 10px 0;
  14907. color: #000;
  14908. }
  14909. >>>.table-header {
  14910. background: #f7f7f9;
  14911. color: #333333;
  14912. }
  14913. .el-checkbox-group {
  14914. font-size: 16px;
  14915. color: #333;
  14916. margin-bottom: 20px;
  14917. }
  14918. .more-data-left {
  14919. border: 1px solid #f5f5f8;
  14920. line-height: 48px;
  14921. padding: 0 20px;
  14922. border-top: none;
  14923. position: relative;
  14924. .zhuxian {
  14925. position: absolute;
  14926. top: 0;
  14927. right: 0;
  14928. padding: 4px 12px;
  14929. color: #fff;
  14930. background: #ed9e23;
  14931. font-size: 13px;
  14932. line-height: 12px;
  14933. }
  14934. }
  14935. .more-data-right {
  14936. border: 1px solid #f5f5f8;
  14937. line-height: 48px;
  14938. padding: 0 20px;
  14939. border-top: none;
  14940. border-left: none;
  14941. }
  14942. >>>.is-checked,
  14943. >>>.is-indeterminate {
  14944. .el-checkbox__inner {
  14945. background: #2d4d89 !important;
  14946. border-color: #2d4d89 !important;
  14947. }
  14948. .el-checkbox__label {
  14949. color: #2d4d89;
  14950. }
  14951. }
  14952. .opacity1 {
  14953. opacity: 1;
  14954. }
  14955. .opacity0 {
  14956. opacity: 0.65;
  14957. }
  14958. .jiayi-style {
  14959. font-size: 13px;
  14960. text-align: center;
  14961. .el-col {
  14962. border: 1px solid #2d4d89;
  14963. margin: 0 1px;
  14964. background: rgba(45, 77, 137, 0.05);
  14965. }
  14966. .jiayi-style-title {
  14967. background: #2d4d89;
  14968. color: #fff;
  14969. line-height: 40px;
  14970. }
  14971. .jiayi-style-line {
  14972. color: #333;
  14973. padding: 16px 20px;
  14974. }
  14975. }
  14976. }
  14977. .typedialog-style1 {
  14978. background: rgba(42, 183, 158, 0.15);
  14979. padding: 20px;
  14980. margin-bottom: 20px;
  14981. border-radius: 10px;
  14982. }
  14983. .typedialog-style2 {
  14984. background: rgba(253, 154, 37, 0.15);
  14985. padding: 20px;
  14986. margin-bottom: 20px;
  14987. border-radius: 10px;
  14988. }
  14989. .typedialog-style3 {
  14990. background: #e9f1ff;
  14991. padding: 20px;
  14992. border-radius: 10px;
  14993. }
  14994. .addyiwai {
  14995. >>>.el-input-group__append,
  14996. >>>.el-input-group__prepend {
  14997. padding: 0 10px;
  14998. }
  14999. >>>.el-dialog__body {
  15000. padding: 24px;
  15001. background: #f2f2f2;
  15002. }
  15003. .addyiwai-title {
  15004. color: #262626;
  15005. font-size: 16px;
  15006. line-height: 24px;
  15007. margin-right: 10px;
  15008. }
  15009. .addyiwai-title-btn {
  15010. background: #eaedf1;
  15011. box-shadow: 0px 2px 0px 0px rgba(0, 0, 0, 0.02);
  15012. border-radius: 2px 2px 2px 2px;
  15013. border: 1px solid #d9d9d9;
  15014. font-size: 14px;
  15015. color: #2d4d89;
  15016. padding: 4px 10px;
  15017. cursor: pointer;
  15018. }
  15019. .el-select {
  15020. width: 200px;
  15021. }
  15022. }
  15023. .teYuedialog-style {
  15024. >>>.el-dialog__body {
  15025. padding: 10px 20px;
  15026. }
  15027. >>>.el-input__inner:focus {
  15028. border-color: #f96646;
  15029. }
  15030. >>>.el-input-group__append,
  15031. .el-input-group__prepend,
  15032. >>>.el-button--primary,
  15033. .el-button--primary:focus {
  15034. border-color: #f96646;
  15035. background: linear-gradient(90deg, #f6734a 0%, #f14b3a 100%);
  15036. color: #fff;
  15037. }
  15038. >>>.is-checked,
  15039. >>>.is-indeterminate {
  15040. .el-checkbox__inner {
  15041. background: #f96646 !important;
  15042. border-color: #f96646 !important;
  15043. }
  15044. .el-checkbox__label {
  15045. color: #f96646;
  15046. }
  15047. }
  15048. >>>.table-header {
  15049. background: #f7f7f9;
  15050. color: #333333;
  15051. }
  15052. .table-title {
  15053. font-size: 12px;
  15054. color: #333;
  15055. line-height: 20px;
  15056. padding: 2px 20px;
  15057. }
  15058. .dialog-footer {
  15059. display: flex;
  15060. align-items: center;
  15061. >span {
  15062. color: #333;
  15063. font-size: 13px;
  15064. }
  15065. }
  15066. }
  15067. .red-btn {
  15068. >>>.el-input-group__append {
  15069. border-color: #d42426;
  15070. background: #d42426;
  15071. }
  15072. >>>.el-input__prefix {
  15073. color: #d42426;
  15074. }
  15075. .insure-long-term {
  15076. position: relative;
  15077. top: 1px;
  15078. }
  15079. >>>.input {
  15080. border-radius: 4px 0 0 4px;
  15081. }
  15082. }
  15083. .synchronous {
  15084. width: 75px;
  15085. height: 45px;
  15086. line-height: 45px;
  15087. color: #fff;
  15088. position: relative;
  15089. img {
  15090. position: absolute;
  15091. top: 0;
  15092. left: 0;
  15093. width: 75px;
  15094. height: 45px;
  15095. z-index: 0;
  15096. }
  15097. >div {
  15098. width: 75px;
  15099. height: 45px;
  15100. line-height: 45px;
  15101. color: #fff;
  15102. cursor: pointer;
  15103. position: relative;
  15104. text-align: center;
  15105. font-size: 14px;
  15106. }
  15107. }
  15108. .bxgs-list {
  15109. position: relative;
  15110. .baofeijisuan {
  15111. position: absolute;
  15112. right: 5.333%;
  15113. top: 0;
  15114. // border: 1px solid rgb(26, 77, 219);
  15115. // color: rgb(26, 77, 219);
  15116. .btn{
  15117. background: linear-gradient(270deg, #0052ff 0%, #6899ff 100%);
  15118. border-radius: 4px;
  15119. color: #fff;
  15120. font-size: 14px;
  15121. line-height: 20px;
  15122. padding: 4px 8px;
  15123. font-weight: 700;
  15124. margin-right: 10px;
  15125. }
  15126. }
  15127. }
  15128. .coefficient {
  15129. width: 100px;
  15130. >>>.el-input__inner {
  15131. border: none;
  15132. }
  15133. }
  15134. .loader {
  15135. /* Wave text loader made by: csozi | Website: english.csozi.hu*/
  15136. height: 30px;
  15137. .text {
  15138. margin: 0;
  15139. line-height: 24px;
  15140. color: red;
  15141. font-weight: bolder;
  15142. background: -webkit-linear-gradient(45deg,
  15143. orange,
  15144. orangered);
  15145. /* Chrome, Safari */
  15146. background: linear-gradient(45deg, orange, orangered);
  15147. /* Standard syntax */
  15148. -webkit-background-clip: text;
  15149. /* Chrome, Safari */
  15150. background-clip: text;
  15151. -webkit-text-fill-color: transparent;
  15152. /* Chrome, Safari */
  15153. color: transparent;
  15154. /* Standard syntax (currently not supported by browsers) */
  15155. font-family: "'Gill Sans', 'Gill Sans MT', 'Calibri', 'Trebuchet MS', sans-serif'";
  15156. }
  15157. @keyframes letter {
  15158. 0% {
  15159. font-size: 14px;
  15160. }
  15161. 50% {
  15162. font-size: 15px;
  15163. }
  15164. 100% {
  15165. font-size: 14px;
  15166. }
  15167. }
  15168. .letter {
  15169. animation: letter 1s infinite;
  15170. }
  15171. .letter1 {
  15172. animation-delay: 0s;
  15173. }
  15174. .letter2 {
  15175. animation-delay: -0.9s;
  15176. }
  15177. .letter3 {
  15178. animation-delay: -0.8s;
  15179. }
  15180. .letter4 {
  15181. animation-delay: -0.7s;
  15182. }
  15183. .letter5 {
  15184. animation-delay: -0.6s;
  15185. }
  15186. .letter6 {
  15187. animation-delay: -0.5s;
  15188. }
  15189. .letter7 {
  15190. animation-delay: -0.4s;
  15191. }
  15192. .letter8 {
  15193. animation-delay: -0.3s;
  15194. }
  15195. .letter9 {
  15196. animation-delay: -0.2s;
  15197. }
  15198. .letter10 {
  15199. animation-delay: -0.1s;
  15200. }
  15201. }
  15202. .xianbie {
  15203. // border: 5px dashed #D42426;
  15204. background: #d4242734;
  15205. .home {
  15206. border-bottom: none !important;
  15207. }
  15208. }
  15209. .mini-input {
  15210. >>>.el-input__inner {
  15211. padding: 0 4px !important;
  15212. text-align: center;
  15213. }
  15214. }
  15215. .QRCode {
  15216. position: relative;
  15217. width: 200px;
  15218. height: 200px;
  15219. overflow: hidden;
  15220. margin: 0 auto;
  15221. }
  15222. </style>