KtLetter1.vue 627 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931149321493314934149351493614937149381493914940149411494214943149441494514946149471494814949149501495114952149531495414955149561495714958149591496014961149621496314964149651496614967149681496914970149711497214973149741497514976149771497814979149801498114982149831498414985149861498714988149891499014991149921499314994149951499614997149981499915000150011500215003150041500515006150071500815009150101501115012150131501415015150161501715018150191502015021150221502315024150251502615027150281502915030150311503215033150341503515036150371503815039150401504115042150431504415045150461504715048150491505015051150521505315054150551505615057150581505915060150611506215063150641506515066150671506815069150701507115072150731507415075150761507715078150791508015081150821508315084150851508615087150881508915090150911509215093150941509515096150971509815099151001510115102151031510415105151061510715108151091511015111151121511315114151151511615117151181511915120151211512215123151241512515126151271512815129151301513115132151331513415135151361513715138151391514015141151421514315144151451514615147151481514915150151511515215153151541515515156151571515815159151601516115162151631516415165151661516715168151691517015171151721517315174151751517615177151781517915180151811518215183151841518515186151871518815189151901519115192151931519415195151961519715198151991520015201152021520315204152051520615207152081520915210152111521215213152141521515216152171521815219152201522115222152231522415225152261522715228152291523015231152321523315234152351523615237152381523915240152411524215243152441524515246152471524815249152501525115252152531525415255152561525715258152591526015261152621526315264152651526615267152681526915270152711527215273152741527515276152771527815279152801528115282152831528415285152861528715288152891529015291152921529315294152951529615297152981529915300153011530215303153041530515306153071530815309153101531115312153131531415315153161531715318153191532015321153221532315324153251532615327153281532915330153311533215333153341533515336153371533815339153401534115342153431534415345153461534715348153491535015351153521535315354153551535615357153581535915360153611536215363153641536515366153671536815369153701537115372153731537415375153761537715378153791538015381153821538315384153851538615387153881538915390153911539215393153941539515396153971539815399154001540115402154031540415405154061540715408154091541015411154121541315414154151541615417154181541915420154211542215423154241542515426154271542815429154301543115432154331543415435154361543715438154391544015441154421544315444154451544615447154481544915450154511545215453154541545515456154571545815459154601546115462154631546415465154661546715468154691547015471154721547315474154751547615477154781547915480154811548215483154841548515486154871548815489154901549115492154931549415495154961549715498154991550015501155021550315504155051550615507155081550915510155111551215513155141551515516155171551815519155201552115522155231552415525155261552715528155291553015531155321553315534155351553615537155381553915540155411554215543155441554515546155471554815549155501555115552155531555415555155561555715558155591556015561155621556315564155651556615567155681556915570155711557215573155741557515576155771557815579155801558115582155831558415585155861558715588155891559015591155921559315594155951559615597155981559915600156011560215603156041560515606156071560815609156101561115612156131561415615156161561715618156191562015621156221562315624156251562615627156281562915630156311563215633156341563515636156371563815639156401564115642156431564415645156461564715648156491565015651156521565315654156551565615657156581565915660156611566215663156641566515666156671566815669156701567115672156731567415675156761567715678156791568015681156821568315684156851568615687156881568915690156911569215693156941569515696156971569815699157001570115702157031570415705157061570715708157091571015711157121571315714157151571615717157181571915720157211572215723157241572515726157271572815729157301573115732157331573415735157361573715738157391574015741157421574315744157451574615747157481574915750157511575215753157541575515756157571575815759157601576115762157631576415765157661576715768157691577015771157721577315774157751577615777157781577915780157811578215783157841578515786157871578815789157901579115792
  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 class="flex j-c a-start">
  958. <el-checkbox class="checkbox" style="margin-right: 20px" v-model="jychecked" disabled
  959. @change="jycheckedChange"></el-checkbox>
  960. <div class="flex f-c a-c">
  961. <el-form-item label="驾意险起保日期" prop="name" class="red-btn">
  962. <el-date-picker value-format="yyyy-MM-dd HH:mm:ss" v-model="jystartDate" @change="jyChange"
  963. type="datetime" placeholder="选择日期时间" placement="bottom-start"></el-date-picker>
  964. </el-form-item>
  965. <el-form-item label="驾意险终保日期" prop="name" class="red-btn">
  966. <el-date-picker value-format="yyyy-MM-dd HH:mm:ss" v-model="jyendDate" type="datetime"
  967. placeholder="选择日期时间" placement="bottom-start"
  968. @change="(e) => jyendDate = quotechangeDate(e)"></el-date-picker>
  969. </el-form-item>
  970. </div>
  971. </div>
  972. </div>
  973. </el-form>
  974. </div>
  975. <!-- 保险公司 -->
  976. <div class="Enclosure flex f-c back">
  977. <div class="home flex j-s">
  978. <div class="flex j-s a-c" id="company">
  979. <img src="../../../../src/icon/保险公司.png" alt class="icon-img" />
  980. <span style="margin-left: 10px">保险公司</span>
  981. <div class="csstool">
  982. <span>是否过户车</span>
  983. <el-switch @change="transferFlagChange" v-model="carInfo.transferFlag" active-color="#D42426"></el-switch>
  984. </div>
  985. <div class="csstool">
  986. <span>商业险是否过户</span>
  987. <el-switch v-model="carInfo.transferFlagBi" active-color="#D42426"></el-switch>
  988. </div>
  989. <div class="csstool">
  990. <span>是否脱保</span>
  991. <el-switch v-model="carInfo.outOfInsurance" active-color="#D42426"></el-switch>
  992. </div>
  993. <div class="csstool">
  994. <span>是否二手车</span>
  995. <el-switch v-model="carInfo.usedCar" active-color="#D42426"></el-switch>
  996. </div>
  997. </div>
  998. <div class="flex j-c a-c">
  999. <el-button v-show="imageUploadShow" size="small" type="primary" @click="imageUpload()">
  1000. <i class="el-icon-camera-solid" style="margin-right: 4px"></i>
  1001. 影像上传
  1002. </el-button>
  1003. </div>
  1004. </div>
  1005. <div>
  1006. <!-- <div class="companyhead">
  1007. <el-row>
  1008. <el-col :span="1">
  1009. <span style="font-size: 14px">选择</span>
  1010. </el-col>
  1011. <el-col :span="2" style="margin: 0 42px 0 35px">
  1012. <span>保险公司</span>
  1013. </el-col>
  1014. <el-col :span="3">
  1015. <span>报价协议</span>
  1016. </el-col>
  1017. <el-col :span="3" v-if="isLetter !== '3'">
  1018. <span>报价结果</span>
  1019. </el-col>
  1020. <el-col :span="3">
  1021. <span>交强险</span>
  1022. </el-col>
  1023. <el-col :span="3">
  1024. <span>车船税</span>
  1025. </el-col>
  1026. <el-col :span="3">
  1027. <span>商业险</span>
  1028. </el-col>
  1029. <el-col :span="2">
  1030. <span>驾意险</span>
  1031. </el-col>
  1032. <el-col :span="2">
  1033. <span>操作</span>
  1034. </el-col>
  1035. </el-row>
  1036. </div>
  1037. -->
  1038. <div class="coll">
  1039. <div v-loading="showLoading" class="hovers" :class="reslistitem.checked ? 'border-red' : 'border-blue'"
  1040. v-for="(reslistitem, reslistindex) in totalCompanyList" :key="reslistindex">
  1041. <el-row v-show="reslistitem.checked || reslistindex == 0" class="companyhead" style="margin-bottom: 20px;">
  1042. <el-col :span="1">
  1043. <span style="font-size: 14px">选择</span>
  1044. </el-col>
  1045. <el-col :span="2" style="margin: 0 42px 0 35px">
  1046. <span>保险公司</span>
  1047. </el-col>
  1048. <el-col :span="3">
  1049. <span>报价协议</span>
  1050. </el-col>
  1051. <el-col :span="3" v-if="isLetter !== '3'">
  1052. <span>报价结果</span>
  1053. </el-col>
  1054. <el-col :span="3">
  1055. <span>交强险</span>
  1056. </el-col>
  1057. <el-col :span="3">
  1058. <span>车船税</span>
  1059. </el-col>
  1060. <el-col :span="3">
  1061. <span>商业险</span>
  1062. </el-col>
  1063. <el-col :span="2">
  1064. <span>驾意险</span>
  1065. </el-col>
  1066. <el-col :span="2">
  1067. <span>操作</span>
  1068. </el-col>
  1069. </el-row>
  1070. <el-row class="bxgs-list">
  1071. <el-col :span="1" style="margin-left: 20px">
  1072. <el-checkbox v-model="reslistitem.checked" :disabled="reslistitem.disabled" @change="(event) =>
  1073. initchange(
  1074. event,
  1075. reslistitem.id,
  1076. reslistitem.cnName,
  1077. reslistindex
  1078. )
  1079. "></el-checkbox>
  1080. </el-col>
  1081. <el-col :span="2">
  1082. <img :src="reslistitem.logo" alt style="
  1083. width: 30px;
  1084. height: 30px;
  1085. vertical-align: middle;
  1086. margin-left: 20px;
  1087. " />
  1088. <span>{{ reslistitem.namesimple }}</span>
  1089. </el-col>
  1090. <el-col :span="4">
  1091. <el-select size="small" v-if="reslistitem.isTaxSource && reslistitem.isTaxSource == '1'
  1092. " :disabled="true" placeholder="默认" style="width: 230px" v-model="isTaxSourceModel"
  1093. :clearable="true"></el-select>
  1094. <el-select size="small" v-else :disabled="!reslistitem.checked" v-model="reslistitem.agreementId"
  1095. placeholder="请选择协议" style="width: 230px" :clearable="true" @change="(val) =>
  1096. agreementChange(
  1097. val,
  1098. reslistitem.agreement,
  1099. reslistindex,
  1100. reslistitem
  1101. )
  1102. ">
  1103. <div v-for="(
  1104. agreementitem, agreementindex
  1105. ) in reslistitem.agreement" :key="agreementindex">
  1106. <div v-if="agreementitem.licenseNo &&
  1107. agreementitem.licenseNo.length > 0 &&
  1108. carInfo.licenseNo.length > 0
  1109. ? agreementitem.licenseNo.includes(
  1110. carInfo.licenseNo.slice(0, 2)
  1111. )
  1112. : 'true'
  1113. ">
  1114. <el-option
  1115. :label="agreementitem.jobDescription ? agreementitem.businessDescription + '(' + agreementitem.jobDescription + ')' : agreementitem.businessDescription"
  1116. :value="agreementitem.id" :disabled="agreementitem.disabled">{{ agreementitem.jobDescription ?
  1117. agreementitem.businessDescription + '(' + agreementitem.jobDescription + ')' :
  1118. agreementitem.businessDescription }}</el-option>
  1119. </div>
  1120. </div>
  1121. </el-select>
  1122. </el-col>
  1123. <el-col :span="3">
  1124. <div v-show="reslistitem.quoteCode == '0'">
  1125. <span style="line-height: auto;">未报价</span>
  1126. </div>
  1127. <div class="loader" v-show="reslistitem.quoteCode == '1'">
  1128. <!-- <i style="color: #d42426" class="el-icon-loading"></i> -->
  1129. <p class="text">
  1130. <span class="letter letter1">掌</span>
  1131. <span class="letter letter2">柜</span>
  1132. <span class="letter letter3">正</span>
  1133. <span class="letter letter4">在</span>
  1134. <span class="letter letter5">为</span>
  1135. <span class="letter letter6">您</span>
  1136. <span class="letter letter7">报</span>
  1137. <span class="letter letter8">价</span>
  1138. <span class="letter letter9">.</span>
  1139. <span class="letter letter10">.</span>
  1140. <span class="letter letter11">.</span>
  1141. </p>
  1142. </div>
  1143. <div class="dis f-c"
  1144. v-show="reslistitem.quoteCode == '200' && reslistitem.result.orderstatus != '10' && reslistitem.result.orderstatus != '11'">
  1145. <span style="color: #d42426; font-weight: bold">
  1146. ¥{{ reslistitem.result.sumPermium }}
  1147. </span>
  1148. <!-- <span style="font-size: 13px; color: #2d4d89" class="m-top-5">{{ reslistitem.result.feeView ? '总科技币:' : '优惠:' }}{{ reslistitem.result.sumExportFee}}</span> -->
  1149. </div>
  1150. <div class="dis f-c"
  1151. v-show="reslistitem.quoteCode == '200' && (reslistitem.result.orderstatus == '10' || reslistitem.result.orderstatus == '11')">
  1152. <span style="color: #d42426; font-weight: bold">
  1153. {{ reslistitem.result.orderStatusInfo }}
  1154. </span>
  1155. </div>
  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.jqPremium }}
  1162. </span>
  1163. <!-- <span v-if="reslistitem.result.jqPremium" style="font-size: 13px; color: #2d4d89" class="m-top-5">{{ reslistitem.result.feeView ? '掌柜科技币:' : '优惠:' }}{{ reslistitem.result.jqExportFee }}</span> -->
  1164. </div>
  1165. </el-col>
  1166. <el-col :span="3"
  1167. v-show="reslistitem.quoteCode == '200' && reslistitem.result.orderstatus != '10' && reslistitem.result.orderstatus != '11'">
  1168. <span style="color: #d42426; font-weight: bold">
  1169. ¥{{ reslistitem.result.taxAmount }}
  1170. </span>
  1171. </el-col>
  1172. <el-col :span="3"
  1173. v-show="reslistitem.quoteCode == '200' && reslistitem.result.orderstatus != '10' && reslistitem.result.orderstatus != '11'">
  1174. <div class="dis f-c">
  1175. <span style="color: #d42426; font-weight: bold">
  1176. ¥{{ reslistitem.result.syPremium }}
  1177. </span>
  1178. <!-- <span v-if="reslistitem.result.syPremium" style="font-size: 13px; color: #2d4d89" class="m-top-5">{{ reslistitem.result.feeView ? '掌柜科技币:' : '优惠:' }}{{ reslistitem.result.syExportFee }}</span> -->
  1179. </div>
  1180. </el-col>
  1181. <el-col :span="2"
  1182. v-if="reslistitem.quoteCode == '200' && reslistitem.result.orderstatus != '10' && reslistitem.result.orderstatus != '11'"
  1183. style="">
  1184. <div class="dis f-c">
  1185. <span style="color: #d42426; font-weight: bold">
  1186. {{
  1187. reslistitem.result.jyPremium
  1188. ? "¥" + reslistitem.result.jyPremium
  1189. : "无"
  1190. }}
  1191. </span>
  1192. <!-- <span v-if="reslistitem.result.jyPremium" style="font-size: 13px; color: #2d4d89" class="m-top-5">{{ reslistitem.result.feeView ? '掌柜科技币:' : '优惠:' }}{{ reslistitem.result.noExportFee }}</span> -->
  1193. </div>
  1194. </el-col>
  1195. <el-col :span="24" v-show="reslistitem.quoteCode == '200' &&
  1196. reslistitem.result.feeNoDescription
  1197. ">
  1198. <div class="flex offer-time" style="color: #d42426">
  1199. <span>该车未匹配销管费用,不建议投保!</span>
  1200. <el-tooltip class="item" effect="dark" content="费用匹配错误信息" placement="top">
  1201. <i class="el-icon-s-goods" @click="
  1202. open3(
  1203. reslistitem.namesimple + '优惠信息',
  1204. reslistitem.result.feeNoDescription
  1205. )
  1206. " style="
  1207. font-size: 20px;
  1208. transform: scale(0.8);
  1209. vertical-align: middle;
  1210. " :disabled="reslistitem.quoteCode == '200' &&
  1211. reslistitem.result.feeNoDescription
  1212. "></i>
  1213. </el-tooltip>
  1214. </div>
  1215. </el-col>
  1216. <el-col :span="24" v-show="reslistitem.quoteCode != '200' &&
  1217. reslistitem.quoteCode != '0' &&
  1218. reslistitem.quoteCode != '1'
  1219. ">
  1220. <div class="flex j-s offer-time" style="color: #d42426">
  1221. 错误提示:
  1222. {{
  1223. reslistitem.msg.length > 500
  1224. ? reslistitem.msg.slice(0, 500)
  1225. : reslistitem.msg
  1226. }}
  1227. </div>
  1228. </el-col>
  1229. <el-col :span="24" v-show="reslistitem.quoteCode == '200' &&
  1230. (reslistitem.result.orderstatus == '10' || reslistitem.result.orderstatus == '11')">
  1231. <div class="flex j-s offer-time" style="color: #d42426">
  1232. {{ reslistitem.result.quoteErrMsg }}
  1233. </div>
  1234. </el-col>
  1235. <div class="baofeijisuan flex a-c" >
  1236. <el-button size="mini" type="text" class="blue_color" v-if="reslistitem.result.orderstatus=='10'"
  1237. @click="supplementOrder(reslistitem.result.companyId)">补录订单</el-button>
  1238. <div class="btn" @click="handleListJisuan(reslistitem, reslistindex)">计算保费</div>
  1239. <div v-show="reslistitem.quoteCode == 200 && isEnabledShow" class="btn" @click="handleInterest(reslistitem, reslistindex)">客户权益</div>
  1240. <!-- <div class="btn" @click="handleInterest(reslistitem, reslistindex)">客户权益</div>-->
  1241. </div>
  1242. </el-row>
  1243. <!-- 选中-方案选择 -->
  1244. <div v-show="reslistitem.checked" :gutter="20" class="company-checked">
  1245. <el-row class="width1280">
  1246. <el-col :span="24">
  1247. <el-row type="flex" align="middle" class="left-title" v-if="reslistitem.programme">
  1248. <el-col :span="2">方案选择</el-col>
  1249. <div style="margin-right: 20px;" v-for="(item, index) in reslistitem.schemes" :key="index"
  1250. @click="checkedPopover(reslistindex, index, item)">
  1251. <el-popover placement="top-start" trigger="hover" width="660">
  1252. <!-- :disabled="reslistitem.checkedProgramme == index" -->
  1253. <!-- <div>弹出</div> -->
  1254. <Ktletter1Popover :data="item" :programme="reslistitem.programme" :productId="productId">
  1255. </Ktletter1Popover>
  1256. <el-col class="gray-style" :class="reslistitem.checkedProgramme == index ? 'blue-style' : ''"
  1257. slot="reference">
  1258. <!-- <i v-show="reslistitem.checkedProgramme == index" class="el-icon-circle-check"></i> -->
  1259. {{ item.schemeName }}
  1260. <img v-show="reslistitem.checkedProgramme == index" src="@/assets/Frame.png" />
  1261. </el-col>
  1262. </el-popover>
  1263. </div>
  1264. <div @click="checkedPopover(reslistindex, 99)" style="margin-right: 20px;"
  1265. v-show="reslistitem.programme99 && reslistitem.programme99.schemeId">
  1266. <el-popover placement="top-start" width="660" :disabled="reslistitem.checkedProgramme == 99"
  1267. trigger="hover">
  1268. <Ktletter1Popover :data="reslistitem.programme99" :programme="reslistitem.programme"
  1269. :productId="productId"></Ktletter1Popover>
  1270. <el-col class="gray-style" :class="reslistitem.checkedProgramme == 99 ? 'blue-style' : ''"
  1271. slot="reference">
  1272. <!-- <i v-show="reslistitem.checkedProgramme == 99" class="el-icon-circle-check"></i> -->
  1273. 自选方案
  1274. <img v-show="reslistitem.checkedProgramme == 99" src="@/assets/Frame.png" />
  1275. </el-col>
  1276. </el-popover>
  1277. </div>
  1278. <div v-show="reslistitem.checkedProgramme == 99" style="margin-right: 20px;" class="juse-style">
  1279. <span @click="showTypeDialog(reslistitem, reslistindex)">调整险种</span>
  1280. </div>
  1281. <!-- <el-popover placement="top-start" width="450" style="margin-right: 20px;" trigger="hover">
  1282. <Ktletter1Popover></Ktletter1Popover>
  1283. <el-col class="gray-style" slot="reference">服务方案</el-col>
  1284. </el-popover> -->
  1285. </el-row>
  1286. </el-col>
  1287. <el-col :span="2" v-if="reslistitem.programme" class="card-bg">
  1288. <div class="card-xianzhong">
  1289. <div>已选险种</div>
  1290. <div class="card-btn" v-show="reslistitem.programme.description">{{
  1291. reslistitem.programme.description }}</div>
  1292. <!-- <div v-if="reslistitem.quoteCode == '200' && reslistitem.result.orderstatus">{{ reslistitem.result.orderstatus | cap }}</div> -->
  1293. </div>
  1294. </el-col>
  1295. <!-- 险种明细 -->
  1296. <el-col :span="8" class="card-bg" style="padding-left: 0;"
  1297. v-if="reslistitem.programme && reslistitem.programme.kinds">
  1298. <div class="card-mingxi">
  1299. <div class="card-mingxi-title">险种明细:
  1300. <span v-show="reslistitem.checkedProgramme != 99"
  1301. @click="showDetailJiaYi(reslistitem, reslistindex)">查看详情</span>
  1302. <!-- <span v-show="reslistitem.checkedProgramme == 99" @click="showTypeDialog(reslistitem, reslistindex)">调整险种</span> -->
  1303. </div>
  1304. <div class="card-table"
  1305. v-show="reslistitem.programme.description != '单商' && reslistitem.programme.description != '单三'">
  1306. <div class="table-title">交强险</div>
  1307. <div class="table-list" v-if="reslistitem.programme.kinds">
  1308. <div class="table-list-title">
  1309. <div class="flex-1">产品名称</div>
  1310. </div>
  1311. <div class="table-list-content">
  1312. <div class="flex-1">
  1313. <img src="@/icon/icon-chengse.png">
  1314. <!-- <span>{{ reslistitem.programme.jqx.name }}</span> -->
  1315. <span>交通事故强制责任险</span>
  1316. </div>
  1317. </div>
  1318. </div>
  1319. </div>
  1320. <div class="card-table" v-show="reslistitem.programme.description != '单交'">
  1321. <div class="table-title">商业险</div>
  1322. <div class="table-list" v-if="reslistitem.programme && reslistitem.programme.kinds">
  1323. <div class="table-list-title">
  1324. <div class="flex-1">产品名称</div>
  1325. <div class="w-60">保额(元)</div>
  1326. </div>
  1327. <div v-for="(kinds, kindIndex) in reslistitem.programme.kinds.main" :key="kindIndex + 'main'">
  1328. <div class="table-list-content" v-if="kinds.amount != 0">
  1329. <div class="flex-1">
  1330. <img src="@/icon/icon-chengse.png">
  1331. <span>{{ kinds.kindName }}</span>
  1332. </div>
  1333. <div v-if="kinds.kindCode != 'A'" class="w-60"> {{ toWan(kinds.kindCode,kinds.amount) }}</div>
  1334. <div v-else class="w-60">{{ toWan(kinds.kindCode,kinds.amount) }}</div>
  1335. </div>
  1336. </div>
  1337. <div v-for="(kinds, kindIndex) in reslistitem.programme.kinds.additional" :key="kindIndex">
  1338. <div class="table-list-content" v-if="kinds.amount != 0">
  1339. <div class="flex-1">
  1340. <img src="@/icon/icon-chengse.png">
  1341. <span>{{ kinds.kindName }}</span>
  1342. </div>
  1343. <div class="w-60"> {{ toWan(kinds.kindCode,kinds.amount) }}</div>
  1344. </div>
  1345. </div>
  1346. <div class="table-list-content"
  1347. v-if="reslistitem.programme && reslistitem.programme.kinds && !reslistitem.programme.kinds.main.length && !reslistitem.programme.kinds.additional.length">
  1348. 暂无</div>
  1349. </div>
  1350. </div>
  1351. <div class="card-table"
  1352. v-if="reslistitem.programme && reslistitem.programme.drivingList && reslistitem.programme.drivingList.length > 0">
  1353. <div class="table-title">驾意险</div>
  1354. <div class="table-list" v-if="reslistitem.programme.kinds">
  1355. <div class="table-list-title">
  1356. <div class="flex-1">产品名称</div>
  1357. <div class="w-60">份数</div>
  1358. <div class="w-60">保费</div>
  1359. </div>
  1360. <div class="table-list-content"
  1361. v-for="(driving, drivingIndex) in reslistitem.programme.drivingList" :key="drivingIndex"
  1362. @click="showDetailJiaYi(reslistitem, reslistindex, 'jiayi')">
  1363. <div class="flex-1">
  1364. <img src="@/icon/icon-chengse.png">
  1365. <span>
  1366. <!-- <span style="margin-right: 0;" v-if="reslistitem.cnName == 'guoRen' || reslistitem.cnName == 'ansheng'">{{ driving.select }}</span> -->
  1367. {{ driving.alias || driving.projectName }}
  1368. </span>
  1369. </div>
  1370. <div class="w-60">{{ driving.quantity }}份</div>
  1371. <div class="w-60">¥{{ Number(driving.sumPremium) * driving.quantity }}
  1372. <span v-show="reslistitem.checkedProgramme == 99"><i class="el-icon-delete"
  1373. @click="deleteJiaYi(reslistindex, drivingIndex)"></i></span>
  1374. </div>
  1375. </div>
  1376. <div class="table-list-content"
  1377. v-if="reslistitem.programme && reslistitem.programme.drivingList && !reslistitem.programme.drivingList.length">
  1378. 暂无</div>
  1379. </div>
  1380. </div>
  1381. <div class="card-table" v-show="reslistitem.cnName == 'guoRen'">
  1382. <!-- reslistitem.checkedProgramme == 99 && -->
  1383. <div class="table-title">其他</div>
  1384. <div class="table-list">
  1385. <!-- v-if="reslistitem.programme.kinds" -->
  1386. <div style="color: #FD9A25;" @click="contributingGuoRen(reslistitem.agreementId, reslistindex)">
  1387. 选择特约</div>
  1388. <div class="table-list-title"
  1389. v-show="reslistitem.programme && reslistitem.programme.teyue && reslistitem.programme.teyue.length">
  1390. <div class="flex-1">特约名称</div>
  1391. </div>
  1392. <div class="table-list-content" v-for="(teyueitem, teyueindex) in reslistitem.programme.teyue"
  1393. :key="teyueindex">
  1394. <div class="flex-1">
  1395. <img src="@/icon/icon-chengse.png">
  1396. {{ teyueitem.clauseName }}
  1397. </div>
  1398. </div>
  1399. <!-- <div class="table-list-content" v-if="!reslistitem.programme.teyue.length">暂无</div> -->
  1400. </div>
  1401. </div>
  1402. <div class="card-table" v-show="reslistitem.cnName == 'zijin'
  1403. || reslistitem.cnName == 'hengbang'
  1404. ">
  1405. <div class="table-title">其他</div>
  1406. <div>自定义系数:
  1407. <el-input v-model="reslistitem.coefficient" size="mini" class="coefficient" placeholder="请输入"></el-input>
  1408. </div>
  1409. </div>
  1410. <div class="card-table" v-show="reslistitem.cnName == 'yangguang'
  1411. // || reslistitem.cnName == 'taishan'
  1412. ">
  1413. <div class="table-title">其他</div>
  1414. <div style="margin-bottom: 10px;">自主定价系数:
  1415. <el-input v-model="reslistitem.result.pricingCoefficient" size="mini" class="coefficient" placeholder="请输入"></el-input>
  1416. </div>
  1417. <div style="margin-bottom: 10px;">自主定价系数上限:
  1418. <el-input v-model="reslistitem.result.pricingCoefficientUpper" size="mini" disabled class="coefficient"></el-input>
  1419. </div>
  1420. <div style="margin-bottom: 10px;">自主定价系数下限:
  1421. <el-input v-model="reslistitem.result.pricingCoefficientLower" size="mini" disabled class="coefficient"></el-input>
  1422. </div>
  1423. </div>
  1424. <div class="card-table" v-show="reslistitem.cnName == 'renshou'
  1425. // || reslistitem.cnName == 'taishan'
  1426. ">
  1427. <div class="table-title">其他</div>
  1428. <div style="margin-bottom: 10px;">自主定价系数:
  1429. <el-input v-model="reslistitem.discount" size="mini" class="coefficient" placeholder="请输入"></el-input>
  1430. </div>
  1431. </div>
  1432. <div class="card-table" v-show="reslistitem.cnName == 'zhongmei'">
  1433. <div class="table-title">其他</div>
  1434. <div style="margin-bottom: 10px;">期望折扣:
  1435. <el-input v-model="reslistitem.discount" size="mini" class="coefficient" placeholder="请输入"></el-input>
  1436. </div>
  1437. </div>
  1438. <div class="card-table flex a-c j-s" v-show="reslistitem.cnName == 'chengtai'">
  1439. <div class="table-title">其他</div>
  1440. <div class="flex f-wrap a-c ">
  1441. <div class="flex a-c mrgin-5">
  1442. <span style="margin-right: 5px;">初始折扣:</span>
  1443. <el-input v-model="reslistitem.result.initialProposalDiscount" disabled size="mini"
  1444. class="coefficient" placeholder="请输入"></el-input>
  1445. </div>
  1446. <div class="flex a-c mrgin-5">
  1447. <span style="margin-right: 5px;">自定义系数:</span>
  1448. <el-input v-model="reslistitem.result.pricingCoefficient" size="mini" class="coefficient"
  1449. placeholder="请输入"></el-input>
  1450. </div>
  1451. <div class="flex a-c mrgin-5">
  1452. <span style="margin-right: 5px;">期望折扣:</span>
  1453. <el-input v-model="reslistitem.result.expectedDiscount" size="mini" class="coefficient"
  1454. placeholder="请输入"></el-input>
  1455. </div>
  1456. </div>
  1457. </div>
  1458. <div class="card-table flex a-c j-s" v-show="reslistitem.cnName == 'renbao'">
  1459. <div class="flex a-c mrgin-5">
  1460. <span style="margin-right: 5px;">车险保额折扣:</span>
  1461. <el-input v-model="reslistitem.result.bidiscount" size="mini" class="coefficient"
  1462. placeholder="请输入"></el-input>
  1463. </div>
  1464. </div>
  1465. <div class="card-table flex a-c j-s" v-show="reslistitem.cnName == 'yongan'">
  1466. <div class="flex a-c mrgin-5">
  1467. <span style="margin-right: 5px;">车损验车事项:</span>
  1468. <el-select size="small" v-model="reslistitem.result.carChecker">
  1469. <el-option v-for="item in verificationDict" :key="item.code" :value="item.code" :label="item.desc"></el-option>
  1470. </el-select>
  1471. </div>
  1472. </div>
  1473. <div class="card-table flex a-c j-s" v-show="reslistitem.cnName == 'yongan'">
  1474. <div class="flex a-c mrgin-5">
  1475. <span style="margin-right: 5px;">商业险折扣系数:</span>
  1476. <el-input size="small" v-model="reslistitem.result.yaBusinessDiscount"></el-input>
  1477. </div>
  1478. </div>
  1479. <div class="card-table flex a-c j-s" v-show="reslistitem.cnName == 'renbao'">
  1480. <div class="flex a-c mrgin-5">
  1481. <span style="margin-right: 5px;">赔付优化申请:</span>
  1482. <el-input v-model="reslistitem.result.preDiscount" size="mini" class="coefficient" placeholder="请输入"></el-input>
  1483. </div>
  1484. </div>
  1485. </div>
  1486. </el-col>
  1487. <!-- 服务明细 -->
  1488. <el-col :span="4" class="card-bg" style="padding-left: 0;"
  1489. v-if="reslistitem.programme && reslistitem.programme.kinds">
  1490. <div class="card-mingxi fuwu">
  1491. <div class="card-mingxi-title">服务明细:</div>
  1492. <div class="card-table">
  1493. <div class="table-list">
  1494. <div class="table-list-title">
  1495. <div class="flex-1">增值服务</div>
  1496. <div class="w-50">次数</div>
  1497. </div>
  1498. <div class="table-list-content"
  1499. v-for="(kinds, kindIndex) in reslistitem.programme.kinds.service" :key="kindIndex">
  1500. <div class="flex-1">
  1501. <img src="@/icon/icon-lanse.png">
  1502. <span style="margin-left: 0;">{{ kinds.alias || kinds.kindName }}</span>
  1503. </div>
  1504. <div class="w-50 w-55">{{ toWan(kinds.kindCode,kinds.amount, 'fw') }}</div>
  1505. </div>
  1506. <div class="table-list-content"
  1507. v-if="reslistitem.programme && reslistitem.programme.kinds && !reslistitem.programme.kinds.service.length">
  1508. 暂无</div>
  1509. </div>
  1510. </div>
  1511. </div>
  1512. </el-col>
  1513. <!-- 优惠明细 -->
  1514. <el-col :span="4" class="card-bg" style="padding-left: 0;"
  1515. v-if="reslistitem.quoteCode == '200' && reslistitem.result.orderstatus != '10' && reslistitem.result.orderstatus != '11'">
  1516. <div class="card-mingxi youhui">
  1517. <div class="card-mingxi-title">优惠明细:</div>
  1518. <div class="card-table">
  1519. <div class="table-list">
  1520. <div class="table-list-title" style="padding-left: 0;">
  1521. <div class="w-50" style="width: 40px;">险种</div>
  1522. <div class="w-50" style="width: 50px; font-size: 10px;">优惠比例</div>
  1523. <div class="w-60" style=" font-size: 10px;">优惠金额(元)</div>
  1524. <div class="w-60" style="width: 50px; font-size: 10px;">合计优惠</div>
  1525. </div>
  1526. <div class="table-list-content" v-if="reslistitem.programme">
  1527. <div class="w-50" style="width: 40px;">
  1528. <div class="table-list-line" style="border-right: none; padding-left: 0;"
  1529. v-show="reslistitem.programme.description != '单商' && reslistitem.programme.description != '单三'">
  1530. <span style="margin-left: 0; font-size: 10px;">交强险</span>
  1531. </div>
  1532. <div class="table-list-line" style="border-right: none; padding-left: 0;"
  1533. v-show="reslistitem.programme.description != '单交'">
  1534. <span style="margin-left: 0; font-size: 10px;">商业险</span>
  1535. </div>
  1536. <div class="table-list-line table-list-line-last"
  1537. style="border-right: none; padding-left: 0;" v-show="reslistitem.result.jyPremium">
  1538. <span style="margin-left: 0; font-size: 10px;">驾意险</span>
  1539. </div>
  1540. </div>
  1541. <div class="w-50" style="width: 50px;">
  1542. <div class="table-list-line" style="border-right: none;"
  1543. v-show="reslistitem.programme.description != '单商' && reslistitem.programme.description != '单三'">
  1544. <span style="margin-left: 0;">{{ reslistitem.result.jqExportFee ?
  1545. reslistitem.result.jqExportRadio : '无' }}</span>
  1546. </div>
  1547. <div class="table-list-line" style="border-right: none;"
  1548. v-show="reslistitem.programme.description != '单交'">
  1549. <span style="margin-left: 0;">{{ reslistitem.result.syExportFee ?
  1550. reslistitem.result.syExportRadio : '无' }}</span>
  1551. </div>
  1552. <div class="table-list-line table-list-line-last" style="border-right: none;"
  1553. v-show="reslistitem.result.jyPremium">
  1554. <span style="margin-left: 0;">{{ reslistitem.result.noExportRadio }}</span>
  1555. </div>
  1556. </div>
  1557. <div class="w-60">
  1558. <div class="table-list-line"
  1559. v-show="reslistitem.programme.description != '单商' && reslistitem.programme.description != '单三'">
  1560. <span style="margin-left: 0;">{{ reslistitem.result.jqExportFee ?
  1561. reslistitem.result.jqExportFee : '无' }}</span>
  1562. </div>
  1563. <div class="table-list-line" v-show="reslistitem.programme.description != '单交'">
  1564. <span style="margin-left: 0;">{{ reslistitem.result.syExportFee ?
  1565. reslistitem.result.syExportFee : '无' }}</span>
  1566. </div>
  1567. <div class="table-list-line table-list-line-last" v-show="reslistitem.result.jyPremium">
  1568. <span style="margin-left: 0;">{{ reslistitem.result.noExportFee ?
  1569. reslistitem.result.noExportFee : '无' }}</span>
  1570. </div>
  1571. </div>
  1572. <div class="w-50 w-66"><span v-show="reslistitem.result.sumExportFee">¥</span>{{
  1573. reslistitem.result.sumExportFee }}</div>
  1574. </div>
  1575. </div>
  1576. </div>
  1577. <div class="card-mingxi-title" style="margin-top: 10px; border-top: 1px solid #fabdae;">返还测算:</div>
  1578. <div class="card-table">
  1579. <div class="table-list">
  1580. <div class="table-list-title" style="padding-left: 0;">
  1581. <div class="w-50" style="width: 40px;">险种</div>
  1582. <div class="w-50" style="width: 50px; font-size: 10px;">返还比例</div>
  1583. <div class="w-60" style=" font-size: 10px;">返还金额(元)</div>
  1584. <div class="w-60" style="width: 50px; font-size: 10px;">合计返还</div>
  1585. </div>
  1586. <div class="table-list-content" v-if="reslistitem.programme">
  1587. <div class="w-50" style="width: 40px;">
  1588. <div class="table-list-line" style="border-right: none; padding-left: 0;"
  1589. v-show="reslistitem.programme.description != '单商' && reslistitem.programme.description != '单三'">
  1590. <span style="margin-left: 0; font-size: 10px;">交强险</span>
  1591. </div>
  1592. <div class="table-list-line" style="border-right: none; padding-left: 0;"
  1593. v-show="reslistitem.programme.description != '单交'">
  1594. <span style="margin-left: 0; font-size: 10px;">商业险</span>
  1595. </div>
  1596. <div class="table-list-line table-list-line-last"
  1597. style="border-right: none; padding-left: 0;" v-show="reslistitem.result.jyPremium">
  1598. <span style="margin-left: 0; font-size: 10px;">驾意险</span>
  1599. </div>
  1600. </div>
  1601. <div class="w-50" style="width: 50px;">
  1602. <div class="table-list-line" style="border-right: none; padding-left: 0;"
  1603. v-show="reslistitem.programme.description != '单商' && reslistitem.programme.description != '单三'">
  1604. <span style="margin-left: 0;">
  1605. <el-input size="mini" style="width: 40px;" v-model="reslistitem.result.jqInput"
  1606. class="mini-input"></el-input>
  1607. </span>
  1608. </div>
  1609. <div class="table-list-line" style="border-right: none; padding-left: 0;"
  1610. v-show="reslistitem.programme.description != '单交'">
  1611. <span style="margin-left: 0;">
  1612. <el-input size="mini" style="width: 40px;" v-model="reslistitem.result.syInput"
  1613. class="mini-input"></el-input>
  1614. </span>
  1615. </div>
  1616. <div class="table-list-line table-list-line-last"
  1617. style="border-right: none; padding-left: 0;" v-show="reslistitem.result.jyPremium">
  1618. <span style="margin-left: 0;">
  1619. <el-input size="mini" style="width: 40px;" v-model="reslistitem.result.jyInput"
  1620. class="mini-input"></el-input>
  1621. </span>
  1622. </div>
  1623. </div>
  1624. <div class="w-60">
  1625. <div class="table-list-line"
  1626. v-show="reslistitem.programme.description != '单商' && reslistitem.programme.description != '单三'">
  1627. <span style="margin-left: 0;">{{ reslistitem.result.jqInput ?
  1628. (reslistitem.result.jqPremium * (reslistitem.result.jqInput / 100)).toFixed(2) : 0
  1629. }}</span>
  1630. </div>
  1631. <div class="table-list-line" v-show="reslistitem.programme.description != '单交'">
  1632. <span style="margin-left: 0;">{{ reslistitem.result.syInput ?
  1633. (reslistitem.result.syPremium * (reslistitem.result.syInput / 100)).toFixed(2) : 0
  1634. }}</span>
  1635. </div>
  1636. <div class="table-list-line table-list-line-last" v-show="reslistitem.result.jyPremium">
  1637. <span style="margin-left: 0;">{{ reslistitem.result.jyInput ?
  1638. (reslistitem.result.jyPremium * (reslistitem.result.jyInput / 100)).toFixed(2) : 0
  1639. }}</span>
  1640. </div>
  1641. </div>
  1642. <div class="w-60 w-66">{{ (
  1643. (reslistitem.result.jqInput ? reslistitem.result.jqPremium * (reslistitem.result.jqInput /
  1644. 100) : 0) +
  1645. (reslistitem.result.syInput ? reslistitem.result.syPremium * (reslistitem.result.syInput /
  1646. 100) : 0) +
  1647. (reslistitem.result.jyInput ? reslistitem.result.jyPremium * (reslistitem.result.jyInput /
  1648. 100) : 0)
  1649. ).toFixed(2)
  1650. }}</div>
  1651. </div>
  1652. </div>
  1653. </div>
  1654. </div>
  1655. </el-col>
  1656. <!-- 保险期限 -->
  1657. <el-col :span="6" class="card-bg" style="padding-left: 0;"
  1658. v-if="reslistitem.quoteCode == '200' && reslistitem.result.orderstatus != '10' && reslistitem.result.orderstatus != '11'">
  1659. <div class="card-mingxi baoxian">
  1660. <div class="card-mingxi-title">保险期限:
  1661. <div @click="syncData(reslistitem.result)">
  1662. <el-tooltip class="item" effect="dark" content="使用此时间" placement="top">
  1663. <i style="color: red" class="el-icon-time"></i>
  1664. </el-tooltip>
  1665. </div>
  1666. </div>
  1667. <div class="card-table">
  1668. <div class="table-list">
  1669. <div class="table-list-title">
  1670. <div class="w-40">险种</div>
  1671. <div class="flex-1">起保日期</div>
  1672. <div class="flex-1">终保日期</div>
  1673. </div>
  1674. <div class="table-list-content" v-show="reslistitem.result.startDateJq">
  1675. <div class="w-40">交强险</div>
  1676. <div class="flex-1">{{ reslistitem.result.startDateJq }}</div>
  1677. <div class="flex-1">{{ reslistitem.result.endDateJq }}</div>
  1678. </div>
  1679. <div class="table-list-content" v-show="reslistitem.result.startDateSy">
  1680. <div class="w-40">商业险</div>
  1681. <div class="flex-1">{{ reslistitem.result.startDateSy }}</div>
  1682. <div class="flex-1">{{ reslistitem.result.endDateSy }}</div>
  1683. </div>
  1684. </div>
  1685. </div>
  1686. <div class="card-table">
  1687. <div class="table-list">
  1688. <div class="table-list-title">
  1689. <div class="flex-1">类型</div>
  1690. <div class="flex-1">评分</div>
  1691. </div>
  1692. <!-- <div class="table-list-content" v-show="reslistitem.result.JqExportFee">
  1693. <div class="flex-1">交强出口费用</div>
  1694. <div class="flex-1">{{ reslistitem.result.JqExportFee }}</div>
  1695. </div>
  1696. <div class="table-list-content" v-show="reslistitem.result.syExportFee">
  1697. <div class="flex-1">商业出口费用</div>
  1698. <div class="flex-1">{{ reslistitem.result.syExportFee }}</div>
  1699. </div>
  1700. <div class="table-list-content" v-show="reslistitem.result.noExportFee">
  1701. <div class="flex-1">非车出口费用</div>
  1702. <div class="flex-1">{{ reslistitem.result.noExportFee }}</div>
  1703. </div> -->
  1704. <div class="table-list-content" v-show="reslistitem.result.jqScore">
  1705. <div class="flex-1">交强类型评分:</div>
  1706. <div class="flex-1">{{ reslistitem.result.jqScore }}</div>
  1707. </div>
  1708. <div class="table-list-content" v-show="reslistitem.result.syScore">
  1709. <div class="flex-1">商业类型评分:</div>
  1710. <div class="flex-1">{{ reslistitem.result.syScore }}</div>
  1711. </div>
  1712. <div class="table-list-content" v-show="reslistitem.result.lossRation">
  1713. <div class="flex-1">总赔付率:</div>
  1714. <div class="flex-1">{{ reslistitem.result.lossRation }}</div>
  1715. </div>
  1716. <div class="table-list-content" v-show="reslistitem.result.jqLossRation">
  1717. <div class="flex-1">交强赔付率:</div>
  1718. <div class="flex-1">{{ reslistitem.result.jqLossRation }}</div>
  1719. </div>
  1720. <div class="table-list-content" v-show="reslistitem.result.syLossRation">
  1721. <div class="flex-1">商业赔付率:</div>
  1722. <div class="flex-1">{{ reslistitem.result.syLossRation }}</div>
  1723. </div>
  1724. <div class="table-list-content" v-show="reslistitem.result.totalAdjustRate">
  1725. <div class="flex-1">自主定价系数:</div>
  1726. <div class="flex-1">{{ reslistitem.result.totalAdjustRate }}</div>
  1727. </div>
  1728. <div class="table-list-content" v-show="reslistitem.result.jgAdjustRate">
  1729. <div class="flex-1">交强折扣系数:</div>
  1730. <div class="flex-1">{{ reslistitem.result.jgAdjustRate }}</div>
  1731. </div>
  1732. <div class="table-list-content" v-show="reslistitem.result.syAdjustRate&&reslistitem.namesimple !== '永安财险'">
  1733. <div class="flex-1">商业折扣系数:</div>
  1734. <div class="flex-1">{{ reslistitem.result.syAdjustRate }}</div>
  1735. </div>
  1736. <div class="table-list-content" v-show="reslistitem.result.jqRenewal">
  1737. <div class="flex-1">交强续保:</div>
  1738. <div class="flex-1">{{ reslistitem.result.jqRenewal ? reslistitem.result.jqRenewal : "无" }}
  1739. </div>
  1740. </div>
  1741. <div class="table-list-content" v-show="reslistitem.result.syRenewal">
  1742. <div class="flex-1">商业续保:</div>
  1743. <div class="flex-1">{{ reslistitem.result.syRenewal ? reslistitem.result.syRenewal : "无" }}
  1744. </div>
  1745. </div>
  1746. <div class="table-list-content" v-show="reslistitem.result.jqClaims">
  1747. <div class="flex-1">交强出险次数:</div>
  1748. <div class="flex-1">{{ reslistitem.result.jqClaims ? reslistitem.result.jqClaims : "无" }}
  1749. </div>
  1750. </div>
  1751. <div class="table-list-content" v-show="reslistitem.result.syClaims">
  1752. <div class="flex-1">商业出险次数:</div>
  1753. <div class="flex-1">{{ reslistitem.result.syClaims ? reslistitem.result.syClaims : "无" }}
  1754. </div>
  1755. </div>
  1756. <div class="table-list-content" v-if="reslistitem.namesimple == '紫金财险' &&
  1757. reslistitem.result.ubiPredictedInfoScore">
  1758. <div class="flex-1">紫金能源车(鼎然-车辆风险评分):</div>
  1759. <div class="flex-1">{{ reslistitem.result.ubiPredictedInfoScore }}</div>
  1760. </div>
  1761. <div class="table-list-content"
  1762. v-if="reslistitem.result.iszdj && reslistitem.result.iszdj == '1'">
  1763. <div class="flex-1">真单交</div>
  1764. </div>
  1765. <div class="table-list-content"
  1766. v-if="reslistitem.result.iszdj && reslistitem.result.iszdj == '0'">
  1767. <div class="flex-1">假单交</div>
  1768. </div>
  1769. <div class="table-list-content" v-if="reslistitem.namesimple == '永诚财险'">
  1770. <div class="flex-1">光博分:</div>
  1771. <div class="flex-1">{{ reslistitem.result.ilogPreUdwMess ? reslistitem.result.ilogPreUdwMess :
  1772. "无" }}</div>
  1773. </div>
  1774. <div class="table-list-content" v-if="reslistitem.namesimple == '阳光财险'">
  1775. <div class="flex-1">交商合并经营成本率:</div>
  1776. <div class="flex-1">{{ reslistitem.result.mergeCostRate ? reslistitem.result.mergeCostRate :
  1777. "无" }}</div>
  1778. </div>
  1779. <div class="table-list-content" v-if="reslistitem.namesimple == '永安财险'">
  1780. <div class="flex-1">交强费用浮动:</div>
  1781. <div class="flex-1">{{ reslistitem.result.cifeeFloat ? reslistitem.result.cifeeFloat :
  1782. "无" }}</div>
  1783. </div>
  1784. <div class="table-list-content" v-if="reslistitem.namesimple == '永安财险'">
  1785. <div class="flex-1">商业费用浮动:</div>
  1786. <div class="flex-1">{{ reslistitem.result.bifeeFloat ? reslistitem.result.bifeeFloat :
  1787. "无" }}</div>
  1788. </div>
  1789. <div class="table-list-content" v-if="reslistitem.namesimple == '阳光财险'">
  1790. <div class="flex-1">向阳花评分:</div>
  1791. <div class="flex-1">{{ reslistitem.result.xyhGrade == '0' ? '非向阳花评分' : reslistitem.result.xyhGrade == '1'? '向阳花评分': "无" }}</div>
  1792. </div>
  1793. <div class="table-list-content" v-if="reslistitem.namesimple == '阳光财险'">
  1794. <div class="flex-1">红黄蓝车系:</div>
  1795. <div class="flex-1">{{ reslistitem.result.seriesTypeActualName ? reslistitem.result.seriesTypeActualName :
  1796. "无" }}</div>
  1797. </div>
  1798. <div class="table-list-content" v-if="reslistitem.namesimple == '永安财险'">
  1799. <div class="flex-1">评分:</div>
  1800. <div class="flex-1">{{ reslistitem.result.yaScore ? reslistitem.result.yaScore :
  1801. "无" }}</div>
  1802. </div>
  1803. <div class="table-list-content" v-if="reslistitem.namesimple == '华农财险'">
  1804. <div class="flex-1">评分分组:</div>
  1805. <div class="flex-1">{{ reslistitem.result.markGroup ? reslistitem.result.markGroup :
  1806. "无" }}</div>
  1807. </div>
  1808. <div class="table-list-content" v-if="reslistitem.namesimple == '华农财险'">
  1809. <div class="flex-1">评分:</div>
  1810. <div class="flex-1">{{ reslistitem.result.ilogPreUdwMess ? reslistitem.result.ilogPreUdwMess :
  1811. "无" }}</div>
  1812. </div>
  1813. <div class="table-list-content" v-else>
  1814. <div class="flex-1">评分:</div>
  1815. <div class="flex-1">{{ reslistitem.result.ilogPreUdwMess ? reslistitem.result.ilogPreUdwMess :
  1816. "无" }}</div>
  1817. </div>
  1818. <div class="table-list-content" v-if="reslistitem.namesimple == '人保财险'">
  1819. <div class="flex-1">新能源违章分:</div>
  1820. <div class="flex-1">{{ reslistitem.result.zmScoreLevel ? reslistitem.result.zmScoreLevel :
  1821. "无" }}</div>
  1822. </div>
  1823. </div>
  1824. </div>
  1825. <div style="flex: 1;"></div>
  1826. <div style="display: flex; align-items: center;">
  1827. <div style="flex: 1;"></div>
  1828. <div style="color: #2d4d89">
  1829. <el-tooltip class="item" effect="dark" content="上年信息" placement="top">
  1830. <i class="el-icon-chat-dot-round" @click="
  1831. open2(reslistitem.namesimple, reslistitem.lastYearMsg)
  1832. " style="
  1833. font-size: 20px;
  1834. transform: scale(0.8);
  1835. vertical-align: middle;
  1836. " :disabled="reslistitem.namesimple == '众安财险' &&
  1837. reslistitem.result.tips == '需要验车'
  1838. " v-show="reslistitem.quoteCode == '200' &&
  1839. reslistitem.lastYearMsg
  1840. "></i>
  1841. </el-tooltip>
  1842. <el-tooltip class="item" effect="dark" content="预核保信息" placement="top">
  1843. <i class="el-icon-chat-dot-round" @click="
  1844. openPredictInfo(
  1845. reslistitem.namesimple,
  1846. reslistitem.predictInfo
  1847. )
  1848. " style="
  1849. font-size: 20px;
  1850. transform: scale(0.8);
  1851. vertical-align: middle;
  1852. " v-show="reslistitem.quoteCode == '200' &&
  1853. reslistitem.predictInfo &&
  1854. reslistitem.predictInfo.length > 0 &&
  1855. reslistitem.namesimple == '中国人寿'
  1856. "></i>
  1857. </el-tooltip>
  1858. </div>
  1859. <el-button :disabled="reslistitem.namesimple == '众安财险' &&
  1860. reslistitem.result.tips == '需要验车'
  1861. " v-show="reslistitem.quoteCode == '200' &&
  1862. !('editStatus' in reslistitem.result)
  1863. " type="text" size="small" style="color: #2d4d89; font-size: 14px"
  1864. @click="hbsubmitdialog(reslistitem, reslistindex)">下单</el-button>
  1865. <el-button v-show="reslistitem.quoteCode == '200'" type="text" size="small"
  1866. style="color: #2d4d89; font-size: 14px"
  1867. @click="qoutedetail(reslistitem.result.companyId)">查看详情</el-button>
  1868. <el-button v-show="reslistitem.quoteCode == '200'" type="text" size="small"
  1869. style="font-size: 14px" @click="bjdpreview(reslistitem.result.companyId)">报价单</el-button>
  1870. <el-button type="text" size="small" style="font-size: 14px"
  1871. @click="Payment(reslistitem.result.companyId, reslistitem)" v-show="reslistitem.orderstatus == '2' &&
  1872. !('editStatus' in reslistitem.result) && reslistitem.namesimple !== '平安财险'
  1873. ">付款码</el-button>
  1874. <el-button type="text" size="small" style="font-size: 14px"
  1875. @click="signature(reslistitem.result.companyId)" v-show="reslistitem.orderstatus == '2' &&
  1876. !('editStatus' in reslistitem.result) && reslistitem.namesimple == '平安财险'
  1877. ">生成签章</el-button>
  1878. <el-button v-if="vehicleInspectionUrl" type="text" size="small" style="font-size: 14px"
  1879. @click="validateCarCode">验车二维码</el-button>
  1880. </div>
  1881. </div>
  1882. <!-- <div style="line-height: 25px">
  1883. 保险期限:
  1884. <span v-show="reslistitem.result.startDateJq">
  1885. 【交强险】
  1886. <span>
  1887. {{ reslistitem.result.startDateJq }} -
  1888. {{ reslistitem.result.endDateJq }}
  1889. </span>
  1890. <br />
  1891. </span>
  1892. <span v-show="reslistitem.result.startDateSy">
  1893. 【商业险】
  1894. <span>
  1895. {{ reslistitem.result.startDateSy }} -
  1896. {{ reslistitem.result.endDateSy }}
  1897. </span>
  1898. <br />
  1899. </span>
  1900. <span @click="syncData(reslistitem.result)">
  1901. <el-tooltip class="item" effect="dark" content="使用此时间" placement="top">
  1902. <i style="color: red" class="el-icon-time"></i>
  1903. </el-tooltip>
  1904. </span>
  1905. <div>
  1906. <span v-show="reslistitem.result.JqExportFee">
  1907. 交强出口费用<span>{{
  1908. reslistitem.result.JqExportFee
  1909. }}</span>
  1910. <br />
  1911. </span>
  1912. <span v-show="reslistitem.result.syExportFee">
  1913. 商业出口费用<span>{{
  1914. reslistitem.result.syExportFee
  1915. }}</span>
  1916. <br />
  1917. </span>
  1918. <span v-show="reslistitem.result.noExportFee">
  1919. 非车出口费用<span>
  1920. {{ reslistitem.result.noExportFee }}</span>
  1921. </span>
  1922. <br />
  1923. </div>
  1924. <div>
  1925. <span v-if="reslistitem.result.jqScore" class="marginL">
  1926. 交强类型评分:
  1927. <span>{{ reslistitem.result.jqScore }}</span>
  1928. <br />
  1929. </span>
  1930. <span v-if="reslistitem.result.syScore" class="marginL">
  1931. 商业类型评分:
  1932. <span>{{ reslistitem.result.syScore }}</span>
  1933. <br />
  1934. </span>
  1935. <span v-if="reslistitem.result.lossRation" class="marginL">
  1936. 总赔付率:
  1937. <span>{{ reslistitem.result.lossRation }}</span>
  1938. <br />
  1939. </span>
  1940. <span v-if="reslistitem.result.jqLossRation" class="marginL">
  1941. 交强赔付率:
  1942. <span>{{ reslistitem.result.jqLossRation }}</span>
  1943. <br />
  1944. </span>
  1945. <span v-if="reslistitem.result.syLossRation" class="marginL">
  1946. 商业赔付率:
  1947. <span>{{ reslistitem.result.syLossRation }}</span>
  1948. <br />
  1949. </span>
  1950. <span v-if="reslistitem.result.totalAdjustRate" class="marginL">
  1951. 自主定价系数:
  1952. <span>{{ reslistitem.result.totalAdjustRate }}</span>
  1953. <br />
  1954. </span>
  1955. <span v-if="reslistitem.result.jgAdjustRate" class="marginL">
  1956. 交强折扣系数:
  1957. <span>{{ reslistitem.result.jgAdjustRate }}</span>
  1958. <br />
  1959. </span>
  1960. <span v-if="reslistitem.result.syAdjustRate" class="marginL">
  1961. 商业折扣系数:
  1962. <span>{{ reslistitem.result.syAdjustRate }}</span>
  1963. <br />
  1964. </span>
  1965. <span v-if="reslistitem.result.jqRenewal" class="marginL">
  1966. 交强续保:
  1967. <span>
  1968. {{
  1969. reslistitem.result.jqRenewal
  1970. ? reslistitem.result.jqRenewal
  1971. : "无"
  1972. }}
  1973. </span>
  1974. <br />
  1975. </span>
  1976. <span v-if="reslistitem.result.syRenewal" class="marginL">
  1977. 商业续保:
  1978. <span>
  1979. {{
  1980. reslistitem.result.syRenewal
  1981. ? reslistitem.result.syRenewal
  1982. : "无"
  1983. }}
  1984. </span>
  1985. <br />
  1986. </span>
  1987. <span v-if="reslistitem.result.jqClaims" class="marginL">
  1988. 交强出险次数:
  1989. <span>
  1990. {{
  1991. reslistitem.result.jqClaims
  1992. ? reslistitem.result.jqClaims
  1993. : "无"
  1994. }}
  1995. </span>
  1996. <br />
  1997. </span>
  1998. <span v-if="reslistitem.result.syClaims" class="marginL">
  1999. 商业出险次数:
  2000. <span>
  2001. {{
  2002. reslistitem.result.syClaims
  2003. ? reslistitem.result.syClaims
  2004. : "无"
  2005. }}
  2006. </span>
  2007. <br />
  2008. </span>
  2009. <span v-if="reslistitem.namesimple == '紫金财险' &&
  2010. reslistitem.result.ubiPredictedInfoScore
  2011. " class="marginL">
  2012. 紫金能源车(鼎然-车辆风险评分):
  2013. <span>{{ reslistitem.result.ubiPredictedInfoScore }}</span>
  2014. <br />
  2015. </span>
  2016. <span v-if="reslistitem.result.iszdj &&
  2017. reslistitem.result.iszdj == '1'
  2018. ">真单交</span>
  2019. <span v-if="reslistitem.result.iszdj &&
  2020. reslistitem.result.iszdj == '0'
  2021. ">假单交</span>
  2022. <span v-if="reslistitem.namesimple == '永诚财险'">
  2023. 光博分:
  2024. <span>
  2025. {{
  2026. reslistitem.result.ilogPreUdwMess
  2027. ? reslistitem.result.ilogPreUdwMess
  2028. : "无"
  2029. }}
  2030. </span>
  2031. <br />
  2032. </span>
  2033. <span v-else>
  2034. 评分:
  2035. <span>
  2036. {{
  2037. reslistitem.result.ilogPreUdwMess
  2038. ? reslistitem.result.ilogPreUdwMess
  2039. : "无"
  2040. }}
  2041. </span>
  2042. <br />
  2043. </span>
  2044. </div>
  2045. </div> -->
  2046. </el-col>
  2047. <!-- <el-col :gutter="20" :span="24" class="company-checked-left">
  2048. <div class="company-checked-card" v-if="reslistitem.programme">
  2049. <div>
  2050. <div class="checked-card-title">险种</div>
  2051. <div class="checked-card-content">
  2052. <span class="blue-style" v-show="reslistitem.programme.description">{{ reslistitem.programme.description }}</span>
  2053. <span v-show="reslistitem.checkedProgramme == 99" class="blue-button" @click="showTypeDialog(reslistitem, reslistindex)">调整险种</span>
  2054. </div>
  2055. </div>
  2056. <div>
  2057. <div class="checked-card-title">主险</div>
  2058. <div class="checked-card-content" v-if="reslistitem.programme.kinds">
  2059. <span class="blue-text" v-for="(kinds, kindIndex) in reslistitem.programme.kinds.main" :key="kindIndex">{{ kinds.alias || kinds.kindName }} {{ toWan(kinds.amount) }}</span>
  2060. <span style="color: rgba(51,51,51,0.65);" v-if="reslistitem.programme.kinds.main.length == 0">暂无</span>
  2061. </div>
  2062. </div>
  2063. <div>
  2064. <div class="checked-card-title">附加险</div>
  2065. <div class="checked-card-content" v-if="reslistitem.programme.kinds">
  2066. <span v-for="(kinds, kindIndex) in reslistitem.programme.kinds.additional" :key="kindIndex">{{ kinds.alias || kinds.kindName }} {{ toWan(kinds.amount) }}</span>
  2067. <span style="color: rgba(51,51,51,0.65);" v-if="reslistitem.programme.kinds.additional.length == 0">暂无</span>
  2068. </div>
  2069. </div>
  2070. <div>
  2071. <div class="checked-card-title">驾意险</div>
  2072. <div class="checked-card-content" v-if="reslistitem.programme.kinds">
  2073. <div v-for="(driving, drivingIndex) in reslistitem.programme.drivingList" :key="drivingIndex" style="margin-bottom: 10px;">
  2074. <span style="margin-right: 0;" v-if="reslistitem.cnName == 'guoRen' || reslistitem.cnName == 'ansheng'">{{ driving.select }}</span>
  2075. <span>{{ driving.alias || driving.projectName }} {{ driving.quantity }}份 ¥{{ Number(driving.sumPremium) * driving.quantity }}</span>
  2076. <span v-show="reslistitem.checkedProgramme == 99"><i class="el-icon-delete" @click="deleteJiaYi(reslistindex, drivingIndex)"></i></span>
  2077. <span class="blue-button" @click="showDetailJiaYi(reslistindex, driving)">查看详情</span>
  2078. <span class="blue-button" @click="addJiaYi(reslistitem)" v-show="drivingIndex == 0 && reslistitem.checkedProgramme == 99">+驾意险</span>
  2079. </div>
  2080. <span class="blue-button" @click="addJiaYi(reslistitem)" v-show="!reslistitem.programme.drivingList.length && reslistitem.checkedProgramme == 99">+驾意险</span>
  2081. </div>
  2082. </div>
  2083. <div style="margin-top: -10px;">
  2084. <div class="checked-card-title">服务</div>
  2085. <div class="checked-card-content" v-if="reslistitem.programme.kinds">
  2086. <span v-for="(kinds, kindIndex) in reslistitem.programme.kinds.service" :key="kindIndex">{{ kinds.alias || kinds.kindName }} {{ toWan(kinds.amount, 'fw') }}</span>
  2087. <span style="color: rgba(51,51,51,0.65);" v-if="reslistitem.programme.kinds.service.length == 0">暂无</span>
  2088. </div>
  2089. </div>
  2090. <div>
  2091. <div class="checked-card-title">其他</div>
  2092. <div class="checked-card-content" v-show="reslistitem.checkedProgramme == 99 && reslistitem.cnName == 'guoRen'">
  2093. <div v-if="reslistitem.programme">
  2094. <div v-for="(teyueitem, teyueindex) in reslistitem.programme.teyue" :key="teyueindex">{{ teyueitem.clauseName }}</div>
  2095. <span style="color: #F96646;" @click="contributingGuoRen(reslistitem.agreementId, reslistindex)">选择特约</span>
  2096. </div>
  2097. </div>
  2098. <el-col :span="20" v-show="reslistitem.cnName == 'zijin'">
  2099. <div v-show="reslistitem.cnName == 'zijin'">自定义系数:
  2100. <el-input v-model="reslistitem.coefficient" size="mini" class="coefficient" placeholder="请输入"></el-input>
  2101. </div>
  2102. </el-col>
  2103. </div>
  2104. </div>
  2105. </el-col> -->
  2106. </el-row>
  2107. </div>
  2108. <!--
  2109. <div class="flex j-s offer-time" v-if="reslistitem.quoteCode == '200'">
  2110. <div style="line-height: 25px">
  2111. 保险期限:
  2112. <span v-show="reslistitem.result.startDateJq">
  2113. 【交强险】
  2114. <span>
  2115. {{ reslistitem.result.startDateJq }} -
  2116. {{ reslistitem.result.endDateJq }}
  2117. </span>
  2118. </span>
  2119. <span v-show="reslistitem.result.startDateSy" style="margin-left: 20px">
  2120. 【商业险】
  2121. <span>
  2122. {{ reslistitem.result.startDateSy }} -
  2123. {{ reslistitem.result.endDateSy }}
  2124. </span>
  2125. </span>
  2126. <span @click="syncData(reslistitem.result)">
  2127. <el-tooltip class="item" effect="dark" content="使用此时间" placement="top">
  2128. <i style="color: red" class="el-icon-time"></i>
  2129. </el-tooltip>
  2130. </span>
  2131. <div>
  2132. <span v-show="reslistitem.result.JqExportFee">
  2133. 交强出口费用<span>{{
  2134. reslistitem.result.JqExportFee
  2135. }}</span>
  2136. </span>
  2137. <span v-show="reslistitem.result.syExportFee">
  2138. 商业出口费用<span>{{
  2139. reslistitem.result.syExportFee
  2140. }}</span>
  2141. </span>
  2142. <span v-show="reslistitem.result.noExportFee">
  2143. 非车出口费用<span>
  2144. {{ reslistitem.result.noExportFee }}</span>
  2145. </span>
  2146. </div>
  2147. <div>
  2148. <span v-if="reslistitem.namesimple == '永诚财险'">
  2149. 光博分:
  2150. <span>
  2151. {{
  2152. reslistitem.result.ilogPreUdwMess
  2153. ? reslistitem.result.ilogPreUdwMess
  2154. : "无"
  2155. }}
  2156. </span>
  2157. </span>
  2158. <span v-else>
  2159. 评分:
  2160. <span>
  2161. {{
  2162. reslistitem.result.ilogPreUdwMess
  2163. ? reslistitem.result.ilogPreUdwMess
  2164. : "无"
  2165. }}
  2166. </span>
  2167. </span>
  2168. <span v-if="reslistitem.result.jqScore" class="marginL">
  2169. 交强类型评分:
  2170. <span>{{ reslistitem.result.jqScore }}</span>
  2171. </span>
  2172. <span v-if="reslistitem.result.syScore" class="marginL">
  2173. 商业类型评分:
  2174. <span>{{ reslistitem.result.syScore }}</span>
  2175. </span>
  2176. <span v-if="reslistitem.result.lossRation" class="marginL">
  2177. 总赔付率:
  2178. <span>{{ reslistitem.result.lossRation }}</span>
  2179. </span>
  2180. <span v-if="reslistitem.result.jqLossRation" class="marginL">
  2181. 交强赔付率:
  2182. <span>{{ reslistitem.result.jqLossRation }}</span>
  2183. </span>
  2184. <span v-if="reslistitem.result.syLossRation" class="marginL">
  2185. 商业赔付率:
  2186. <span>{{ reslistitem.result.syLossRation }}</span>
  2187. </span>
  2188. <span v-if="reslistitem.result.totalAdjustRate" class="marginL">
  2189. 自主定价系数:
  2190. <span>{{ reslistitem.result.totalAdjustRate }}</span>
  2191. </span>
  2192. <span v-if="reslistitem.result.jgAdjustRate" class="marginL">
  2193. 交强折扣系数:
  2194. <span>{{ reslistitem.result.jgAdjustRate }}</span>
  2195. </span>
  2196. <span v-if="reslistitem.result.syAdjustRate" class="marginL">
  2197. 商业折扣系数:
  2198. <span>{{ reslistitem.result.syAdjustRate }}</span>
  2199. </span>
  2200. <span v-if="reslistitem.result.jqRenewal" class="marginL">
  2201. 交强续保:
  2202. <span>
  2203. {{
  2204. reslistitem.result.jqRenewal
  2205. ? reslistitem.result.jqRenewal
  2206. : "无"
  2207. }}
  2208. </span>
  2209. </span>
  2210. <span v-if="reslistitem.result.syRenewal" class="marginL">
  2211. 商业续保:
  2212. <span>
  2213. {{
  2214. reslistitem.result.syRenewal
  2215. ? reslistitem.result.syRenewal
  2216. : "无"
  2217. }}
  2218. </span>
  2219. </span>
  2220. <span v-if="reslistitem.result.jqClaims" class="marginL">
  2221. 交强出险次数:
  2222. <span>
  2223. {{
  2224. reslistitem.result.jqClaims
  2225. ? reslistitem.result.jqClaims
  2226. : "无"
  2227. }}
  2228. </span>
  2229. </span>
  2230. <span v-if="reslistitem.result.syClaims" class="marginL">
  2231. 商业出险次数:
  2232. <span>
  2233. {{
  2234. reslistitem.result.syClaims
  2235. ? reslistitem.result.syClaims
  2236. : "无"
  2237. }}
  2238. </span>
  2239. </span>
  2240. <span v-if="reslistitem.namesimple == '紫金财险' &&
  2241. reslistitem.result.ubiPredictedInfoScore
  2242. " class="marginL">
  2243. 紫金能源车(鼎然-车辆风险评分):
  2244. <span>{{ reslistitem.result.ubiPredictedInfoScore }}</span>
  2245. </span>
  2246. <span v-if="reslistitem.result.iszdj &&
  2247. reslistitem.result.iszdj == '1'
  2248. ">真单交</span>
  2249. <span v-if="reslistitem.result.iszdj &&
  2250. reslistitem.result.iszdj == '0'
  2251. ">假单交</span>
  2252. </div>
  2253. </div>
  2254. <div style="text-align: right">
  2255. <div style="color: #2d4d89">
  2256. <el-tooltip class="item" effect="dark" content="上年信息" placement="top">
  2257. <i class="el-icon-chat-dot-round" @click="
  2258. open2(reslistitem.namesimple, reslistitem.lastYearMsg)
  2259. " style="
  2260. font-size: 20px;
  2261. transform: scale(0.8);
  2262. vertical-align: middle;
  2263. " :disabled="reslistitem.namesimple == '众安财险' &&
  2264. reslistitem.result.tips == '需要验车'
  2265. " v-show="reslistitem.quoteCode == '200' &&
  2266. reslistitem.lastYearMsg
  2267. "></i>
  2268. </el-tooltip>
  2269. <el-tooltip class="item" effect="dark" content="预核保信息" placement="top">
  2270. <i class="el-icon-chat-dot-round" @click="
  2271. openPredictInfo(
  2272. reslistitem.namesimple,
  2273. reslistitem.predictInfo
  2274. )
  2275. " style="
  2276. font-size: 20px;
  2277. transform: scale(0.8);
  2278. vertical-align: middle;
  2279. " v-show="reslistitem.quoteCode == '200' &&
  2280. reslistitem.predictInfo &&
  2281. reslistitem.predictInfo.length > 0 &&
  2282. reslistitem.namesimple == '中国人寿'
  2283. "></i>
  2284. </el-tooltip>
  2285. <el-button :disabled="reslistitem.namesimple == '众安财险' &&
  2286. reslistitem.result.tips == '需要验车'
  2287. " v-show="reslistitem.quoteCode == '200' &&
  2288. !('editStatus' in reslistitem.result)
  2289. " type="text" size="small" style="color: #2d4d89; font-size: 14px"
  2290. @click="hbsubmitdialog(reslistitem)">下单</el-button>
  2291. <el-button v-show="reslistitem.quoteCode == '200'" type="text" size="small"
  2292. style="color: #2d4d89; font-size: 14px"
  2293. @click="qoutedetail(reslistitem.result.companyId)">查看详情</el-button>
  2294. </div>
  2295. <div>
  2296. <el-button v-show="reslistitem.quoteCode == '200'" type="text" size="small" style="font-size: 14px"
  2297. @click="bjdpreview(reslistitem.result.companyId)">报价单</el-button>
  2298. <el-button type="text" size="small" style="font-size: 14px"
  2299. @click="Payment(reslistitem.result.companyId, reslistitem)" v-show="reslistitem.orderstatus == '2' &&
  2300. !('editStatus' in reslistitem.result) && reslistitem.namesimple !== '平安财险'
  2301. ">付款码</el-button>
  2302. <el-button type="text" size="small" style="font-size: 14px"
  2303. @click="signature(reslistitem.result.companyId)" v-show="reslistitem.orderstatus == '2' &&
  2304. !('editStatus' in reslistitem.result) && reslistitem.namesimple == '平安财险'
  2305. ">生成签章</el-button>
  2306. </div>
  2307. </div>
  2308. </div>
  2309. <template>
  2310. <span v-if="reslistitem.checked &&
  2311. reslistitem.agreementId &&
  2312. reslistitem.underwritingDescription
  2313. " style="margin: 20px 20px 0 100px; display: inline-block">{{ reslistitem.underwritingDescription}}</span>
  2314. </template>
  2315. <template v-if="reslistitem.namesimple == '平安财险' &&
  2316. reslistitem.checked &&
  2317. reslistitem.agreementId
  2318. ">
  2319. <div class="flex f-c Driving-risk">
  2320. <div v-for="(val, index) in pinganInsuranceData" :key="index" >
  2321. <el-form :inline="true" :model="accidentFormPA[index-1]" class="demo-form-inline" size="small"
  2322. style="font-weight: bold;margin-top:15px ">
  2323. <el-form-item :label="index=='1'?'财意险':index=='2'?'小微险':'组合险'" style="margin-right: 30px">
  2324. <el-select clearable v-model="accidentFormPA[index-1].pingantemplateSelection" placeholder="未选择" @clear="clearAccidentFormPA(index-1,)"
  2325. @change="pinganInsuranceChange($event,index-1,val)">
  2326. <el-option v-for="(item, index1) in val" :key="index1" :label="item.projectName"
  2327. :value="item.projectName"></el-option>
  2328. </el-select>
  2329. </el-form-item>
  2330. <el-form-item label="选择份数" style="margin-right: 50px" v-if="index ==1||index ==2">
  2331. <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"
  2332. controls-position="right"></el-input-number>
  2333. </el-form-item>
  2334. <el-form-item label="保费:" v-if="index ==1||index ==2">
  2335. <span>{{ accidentFormPA[index-1].premium || 0 }}&ensp;元</span>
  2336. </el-form-item>
  2337. </el-form>
  2338. <el-table class="pinganTable" style="margin-top: 20px" size="small" :data="accidentFormPA[index-1].pinganInsuranceDataTable" border
  2339. v-if="accidentFormPA[index-1].pingantemplateSelection" highlight-current-row :header-cell-style="{
  2340. background: '#F7F7F9 ',
  2341. fontWeight: '700',
  2342. color: '#333333',
  2343. }" ref="RsTable" @select="(selections,row)=>{PADrivingCheckbox(selections,row,reslistitem.agreementId,index-1)}">
  2344. <el-table-column align="center" width="55" label="选择" v-if="index ==1||index ==2">
  2345. <template slot-scope="scope">
  2346. <el-radio class="radio" v-model="accidentFormPA[index-1].pinganInsurancetype" :label="scope.row.code"
  2347. @click.native.stop.prevent="PADrivingRadio(scope.row,reslistitem.agreementId,index-1)">&nbsp;</el-radio>
  2348. </template>
  2349. </el-table-column>
  2350. <el-table-column type="selection" v-else width="55">
  2351. </el-table-column>
  2352. <el-table-column prop="name" label="方案名称" align="center"></el-table-column>
  2353. <el-table-column prop="code" label="方案代码" align="center"></el-table-column>
  2354. <el-table-column prop="premium" label="保费 (元)/每份" align="center">
  2355. </el-table-column>
  2356. <el-table-column prop="quantity" label="份数" align="center" v-if="index ==3">
  2357. <template slot-scope="scope">
  2358. <el-input-number size='small' v-model="scope.row.quantity" :min="1" :max="Number(scope.row.sellListSize)"
  2359. controls-position="right"></el-input-number>
  2360. </template>
  2361. </el-table-column>
  2362. <el-table-column label="操作" width="100">
  2363. <template slot-scope="scope">
  2364. <el-button type="text" size="small" @click="pinganDetail(scope.row,reslistitem.agreementId)">查看</el-button>
  2365. </template>
  2366. </el-table-column>
  2367. </el-table>
  2368. </div>
  2369. </div>
  2370. </template>
  2371. <template v-if="reslistitem.namesimple == '泰康财险' &&
  2372. reslistitem.checked &&
  2373. reslistitem.agreementId &&
  2374. isLetter !== '3'
  2375. ">
  2376. <div class="flex f-c Driving-risk">
  2377. <el-form :inline="true" :model="accidentFormTk" class="demo-form-inline" size="small"
  2378. style="font-weight: bold; margin-top: 15px">
  2379. <el-form-item label="意外险类型" style="margin-right: 30px">
  2380. <el-select clearable v-model="taikangtemplateSelection" placeholder="未选择" @clear="clearAccidentFormTk"
  2381. @change="taikangInsuranceChange">
  2382. <el-option v-for="(item, index) in taikangaccidentDataList" :key="index" :label="item.projectName"
  2383. :value="item.projectCode"></el-option>
  2384. </el-select>
  2385. </el-form-item>
  2386. <el-form-item label="选择份数" style="margin-right: 50px">
  2387. <el-input-number v-model="accidentFormTk.quantity" @change="numberCopieschangeTk" :min="1"
  2388. controls-position="right"></el-input-number>
  2389. </el-form-item>
  2390. <el-form-item label="保费:">
  2391. <span>{{ accidentFormTk.sumPremium }}&ensp;元</span>
  2392. </el-form-item>
  2393. </el-form>
  2394. <el-table v-if="taikangtemplateSelection" size="small" :data="taikangInsuranceDataTable" border
  2395. ref="expandTable" highlight-current-row :header-cell-style="{
  2396. background: '#F7F7F9',
  2397. fontWeight: '700',
  2398. color: '#333333',
  2399. }">
  2400. <el-table-column prop="name" label="保险责任" align="center"></el-table-column>
  2401. <el-table-column prop="amount" label="每座保额 (元)/每份" align="center"></el-table-column>
  2402. <el-table-column prop="sumAmount" label="每车保额 (元)/每份" align="center"></el-table-column>
  2403. <el-table-column prop="premium" label="责任保费 (元)/每份" align="center"></el-table-column>
  2404. </el-table>
  2405. </div>
  2406. </template>
  2407. <template v-if="reslistitem.namesimple == '恒邦财险' &&
  2408. reslistitem.checked &&
  2409. reslistitem.agreementId &&
  2410. isLetter !== '3'
  2411. ">
  2412. <div class="flex f-c Driving-risk">
  2413. <div class="dis a-c" style="margin: 15px 0">
  2414. <span style="margin-right: 15px; font-weight: bold">选择意外险</span>
  2415. <el-select style="width: 250px; margin-right: 60px" filterable size="small" clearable
  2416. v-model="hengbangtemplateSelection" placeholder="未选择" @clear="clearAccidentFormHB"
  2417. @change="hengbangInsuranceChange">
  2418. <el-option v-for="(item, index) in hengbangInsuranceData" :key="index" :label="item.projectName"
  2419. :value="item.projectCode"></el-option>
  2420. </el-select>
  2421. 保费:
  2422. <b>{{
  2423. hengbangaccidentalDrivingVo.sumPremium || 0
  2424. }}&ensp;元</b>
  2425. </div>
  2426. <el-table size="small" :data="hengbangInsuranceDataTable" border v-if="hengbangtemplateSelection"
  2427. ref="RsTable" highlight-current-row :header-cell-style="{
  2428. background: '#F7F7F9 ',
  2429. fontWeight: '700',
  2430. color: '#333333',
  2431. }">
  2432. <el-table-column prop="name" label="险种名称" align="center"></el-table-column>
  2433. <el-table-column prop="amount" label="保额" align="center"></el-table-column>
  2434. </el-table>
  2435. </div>
  2436. </template>
  2437. <template v-if="reslistitem.namesimple == '华农财险' &&
  2438. reslistitem.checked &&
  2439. reslistitem.agreementId &&
  2440. isLetter !== '3'
  2441. ">
  2442. <div class="flex f-c Driving-risk">
  2443. <el-form :inline="true" :model="accidentFormHN" class="demo-form-inline"
  2444. style="font-weight: bold; margin-top: 15px" size="small">
  2445. <el-form-item label="意外险类型:" style="margin-right: 30px">
  2446. <el-select clearable v-model="accidentFormHN.accidentType" placeholder="未选择"
  2447. @clear="clearAccidentFormHN" @change="huanongInsuranceChange">
  2448. <el-option v-for="(item, index) in huanongInsuranceData" :key="index" :label="item.projectName"
  2449. :value="item.projectCode"></el-option>
  2450. </el-select>
  2451. </el-form-item>
  2452. <el-form-item label="选择份数" style="margin-right: 30px">
  2453. <el-input-number v-model="accidentFormHN.quantity" :min="1"
  2454. controls-position="right"></el-input-number>
  2455. </el-form-item>
  2456. </el-form>
  2457. <el-table v-if="accidentFormHN.accidentType" size="small" :data="huanongInsuranceDataTable" border
  2458. ref="expandTable" highlight-current-row :header-cell-style="{
  2459. background: '#F7F7F9 ',
  2460. fontWeight: '700',
  2461. color: '#333333',
  2462. }">
  2463. <el-table-column prop="name" label="保险责任" align="center"></el-table-column>
  2464. <el-table-column prop="amount" label="保额" align="center">
  2465. <template slot-scope="scope">
  2466. <el-input v-model="scope.row.amount" placeholder="请输入内容" size="small" disabled></el-input>
  2467. </template>
  2468. </el-table-column>
  2469. </el-table>
  2470. </div>
  2471. </template>
  2472. <template v-if="reslistitem.namesimple == '太平财险' &&
  2473. reslistitem.checked &&
  2474. reslistitem.agreementId &&
  2475. isLetter !== '3'
  2476. ">
  2477. <div class="flex f-c Driving-risk">
  2478. <div class="dis a-c" style="margin: 15px 0">
  2479. <span style="margin-right: 15px; font-weight: bold">选择意外险</span>
  2480. <el-select style="width: 250px; margin-right: 60px" filterable size="small" clearable
  2481. v-model="taipingtemplateSelection" placeholder="未选择" @clear="clearAccidentFormTP"
  2482. @change="taipingInsuranceChange">
  2483. <el-option v-for="(item, index) in taipingInsuranceData" :key="index" :label="item.projectName"
  2484. :value="item.projectCode"></el-option>
  2485. </el-select>
  2486. 每份价税合计:
  2487. <b>{{ taipingaccidentalDrivingVo.sumPremium || 0 }}&ensp;元</b>
  2488. </div>
  2489. <el-table size="small" :data="taipingInsuranceDataTable" border v-if="taipingtemplateSelection"
  2490. ref="RsTable" highlight-current-row :header-cell-style="{
  2491. background: '#F7F7F9 ',
  2492. fontWeight: '700',
  2493. color: '#333333',
  2494. }">
  2495. <el-table-column prop="name" label="险种名称" align="center"></el-table-column>
  2496. <el-table-column prop="amount" label="险种金额" align="center"></el-table-column>
  2497. </el-table>
  2498. </div>
  2499. </template>
  2500. <template v-if="reslistitem.namesimple == '安盛天平' &&
  2501. reslistitem.checked &&
  2502. reslistitem.agreementId &&
  2503. isLetter !== '3'
  2504. ">
  2505. <div class="flex f-c Driving-risk">
  2506. <div class="dis a-c" style="margin-top: 15px">
  2507. <span style="margin-right: 15px; font-weight: bold">意外险类型</span>
  2508. <el-select style="width: 250px" size="small" clearable v-model="anshengtemplateSelection"
  2509. placeholder="未选择" @clear="clearAccidentFormAS" @change="anshengInsuranceChange">
  2510. <el-option v-for="(item, index) in anshengInsuranceData" :key="index"
  2511. :label="item.projectCode + ' ' + item.projectName" :value="item.projectCode"></el-option>
  2512. </el-select>
  2513. </div>
  2514. <el-table style="margin-top: 20px" size="small" :data="anshengInsuranceDataTable" border
  2515. v-if="anshengtemplateSelection" ref="RsTable" highlight-current-row :header-cell-style="{
  2516. background: '#F7F7F9 ',
  2517. fontWeight: '700',
  2518. color: '#333333',
  2519. }">
  2520. <el-table-column align="center" width="55" label="选择">
  2521. <template slot-scope="scope">
  2522. <el-radio class="radio" v-model="anshengInsurancetype" :label="scope.row.projectCode"
  2523. @click.native.stop.prevent="ASDrivingRadio(scope.row)">&nbsp;</el-radio>
  2524. </template>
  2525. </el-table-column>
  2526. <el-table-column prop="projectName" label="方案名称" align="center"></el-table-column>
  2527. <el-table-column prop="projectCode" label="方案代码" align="center"></el-table-column>
  2528. <el-table-column prop="quantity" label="份数" align="center">
  2529. </el-table-column>
  2530. </el-table>
  2531. </div>
  2532. </template>
  2533. <template v-if="reslistitem.namesimple == '中国人寿' &&
  2534. reslistitem.checked &&
  2535. reslistitem.agreementId &&
  2536. isLetter !== '3'
  2537. ">
  2538. <div style="margin: 15px 0 15px 100px">
  2539. <span>商业险折扣:</span>
  2540. <el-input style="width: 220px" :disabled="!lastCompanyId" size="small" v-model="reslistitem.discount"
  2541. placeholder="请输入内容" @input="
  2542. reslistitem.discount = reslistitem.discount.replace(
  2543. /[^\d.]/g,
  2544. ''
  2545. )
  2546. "></el-input>
  2547. </div>
  2548. <div class="flex f-c Driving-risk">
  2549. <div class="dis a-c">
  2550. <span style="margin-right: 15px; font-weight: bold">选择意外险</span>
  2551. <el-select style="width: 250px" filterable size="small" clearable v-model="renshoutemplateSelection"
  2552. placeholder="未选择" @clear="clearAccidentFormRS" @change="renshouInsuranceChange">
  2553. <el-option v-for="(item, index) in renshouInsuranceData" :key="index" :label="item.projectName"
  2554. :value="item.projectCode"></el-option>
  2555. </el-select>
  2556. </div>
  2557. <el-table size="small" style="margin-top: 20px" :data="renshouInsuranceDataTable" border
  2558. v-if="renshoutemplateSelection" @row-click="RSDrivingChange" ref="RsTable" highlight-current-row
  2559. :header-cell-style="{
  2560. background: '#F7F7F9 ',
  2561. fontWeight: '700',
  2562. color: '#333333',
  2563. }">
  2564. <el-table-column prop="name" label="方案名称" align="center"></el-table-column>
  2565. <el-table-column prop="premium" label="保费 (元)起" align="center">
  2566. <template slot-scope="scope">
  2567. <span>¥{{ scope.row.premium }}</span>
  2568. </template>
  2569. </el-table-column>
  2570. <el-table-column label="份数" align="center">
  2571. <template slot-scope="scope">
  2572. <span>{{ scope.row.quantity }}</span>
  2573. </template>
  2574. </el-table-column>
  2575. </el-table>
  2576. </div>
  2577. </template>
  2578. <template v-if="reslistitem.namesimple == '众安财险' &&
  2579. reslistitem.checked &&
  2580. reslistitem.agreementId &&
  2581. isLetter !== '3'
  2582. ">
  2583. <div class="flex f-c Driving-risk">
  2584. <div class="dis a-c" style="margin: 15px 0">
  2585. <span style="margin-right: 15px; font-weight: bold">选择意外险</span>
  2586. <el-select style="width: 250px" filterable size="small" clearable v-model="zhongantemplateSelection"
  2587. placeholder="未选择" @clear="clearAccidentFormZA" @change="zhonganInsuranceChange">
  2588. <el-option v-for="(item, index) in zhonganInsuranceData" :key="index" :label="item.projectName"
  2589. :value="item.projectCode"></el-option>
  2590. </el-select>
  2591. </div>
  2592. <el-table size="small" :data="zhonganInsuranceDataTable" border v-if="zhongantemplateSelection"
  2593. @row-click="ZADrivingChange" ref="RsTable" highlight-current-row :header-cell-style="{
  2594. background: '#F7F7F9 ',
  2595. fontWeight: '700',
  2596. color: '#333333',
  2597. }">
  2598. <el-table-column prop="name" label="险种名称" align="center"></el-table-column>
  2599. <el-table-column prop="amount" label="险种金额" align="center"></el-table-column>
  2600. </el-table>
  2601. </div>
  2602. </template>
  2603. <template v-if="reslistitem.namesimple == '紫金财险' &&
  2604. reslistitem.checked &&
  2605. reslistitem.agreementId &&
  2606. isLetter !== '3'
  2607. ">
  2608. <div style="margin: 15px 0 15px 100px">
  2609. <span>自主定价系数:</span>
  2610. <el-input style="width: 220px" size="small" v-model="reslistitem.coefficient"
  2611. placeholder="请输入内容"></el-input>
  2612. </div>
  2613. <div class="flex f-c Driving-risk">
  2614. <div class="dis a-c" style="margin-bottom: 15px">
  2615. <span style="margin-right: 15px; font-weight: bold">选择意外险</span>
  2616. <el-select style="width: 250px" filterable multiple size="small" clearable
  2617. v-model="zijintemplateSelection" placeholder="未选择" @clear="clearAccidentFormZJ"
  2618. @change="zijinInsuranceChange">
  2619. <el-option v-for="(item, index) in ziJinInsuranceData" :key="index" :label="item.projectName"
  2620. :value="item.projectCode"></el-option>
  2621. </el-select>
  2622. </div>
  2623. <el-table size="small" :data="zijinInsuranceDataTable" border v-if="zijintemplateSelection"
  2624. @select="CheckboxChange" filterable ref="expandTable" highlight-current-row :header-cell-style="{
  2625. background: '#F7F7F9 ',
  2626. fontWeight: '700',
  2627. color: '#333333',
  2628. }">
  2629. <el-table-column type="selection" width="55"></el-table-column>
  2630. <el-table-column prop="projectName" label="方案名称" align="center"></el-table-column>
  2631. <el-table-column prop="sumAmount" label="总保额 (元)/每份" align="center"></el-table-column>
  2632. <el-table-column prop="sumPremium" label="保费 (元)/每份" align="center">
  2633. <template slot-scope="scope">
  2634. <span>¥{{ scope.row.sumPremium }}</span>
  2635. </template>
  2636. </el-table-column>
  2637. <el-table-column prop="quantity" label="份数" align="center">
  2638. <template slot-scope="scope">
  2639. <el-input-number v-model="scope.row.quantity" :min="1" size="small"
  2640. controls-position="right"></el-input-number>
  2641. </template>
  2642. </el-table-column>
  2643. <el-table-column prop="Totalprice" label="总保费 (元)" align="center">
  2644. <template slot-scope="scope">
  2645. <span v-if="scope.row.quantity">{{
  2646. scope.row.sumPremium * scope.row.quantity
  2647. }}</span>
  2648. <span v-else>{{ scope.row.sumPremium }}</span>
  2649. </template>
  2650. </el-table-column>
  2651. </el-table>
  2652. </div>
  2653. </template>
  2654. <template v-if="reslistitem.namesimple == '永诚财险' &&
  2655. reslistitem.checked &&
  2656. reslistitem.agreementId &&
  2657. isLetter !== '3'
  2658. ">
  2659. <div class="flex f-c Driving-risk">
  2660. <el-form :inline="true" :model="accidentForm" class="demo-form-inline" size="small"
  2661. style="font-weight: bold; margin-top: 15px">
  2662. <el-form-item label="意外险类型" style="margin-right: 30px">
  2663. <el-select clearable v-model="yongchengtemplateSelection" placeholder="未选择" @clear="clearAccidentForm"
  2664. @change="yongchengInsuranceChange">
  2665. <el-option v-for="(item, index) in yongchengaccidentDataList" :key="index" :label="item.projectName"
  2666. :value="item.projectCode"></el-option>
  2667. </el-select>
  2668. </el-form-item>
  2669. <el-form-item label="选择份数" style="margin-right: 50px">
  2670. <el-input-number v-model="accidentForm.quantity" @change="numberCopieschange" :min="1"
  2671. controls-position="right"></el-input-number>
  2672. </el-form-item>
  2673. <el-form-item label="保费:">
  2674. <span>{{ accidentForm.sumPremium }}&ensp;元</span>
  2675. </el-form-item>
  2676. </el-form>
  2677. <el-table v-if="yongchengtemplateSelection" size="small" :data="yongchengInsuranceDataTable" 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="sumAmount" label="每车保额 (元)/每份" align="center"></el-table-column>
  2686. <el-table-column prop="premium" label="责任保费 (元)/每份" align="center"></el-table-column>
  2687. </el-table>
  2688. </div>
  2689. </template>
  2690. <template v-if="reslistitem.namesimple == '国任财险' &&
  2691. reslistitem.checked &&
  2692. reslistitem.agreementId &&
  2693. isLetter !== '3'
  2694. ">
  2695. <el-button type="text" style="margin: 10px 0 0 100px"
  2696. @click="contributingGuoRen(reslistitem.agreementId)">选择特约</el-button>
  2697. <div class="flex f-c Driving-risk">
  2698. <el-form :inline="true" :model="guoRenaccidentForm" class="demo-form-inline" size="small">
  2699. <el-form-item label="意外险类型" style="margin-right: 30px">
  2700. <el-select clearable placeholder="未选择" @clear="clearAccidentFormGr" @change="grcxchange"
  2701. v-model="guoRenaccidentForm.goodsCode">
  2702. <el-option v-for="(item, index) in guoRenaccidentDataList" :key="index" :label="item.projectName"
  2703. :value="item.projectCode"></el-option>
  2704. </el-select>
  2705. </el-form-item>
  2706. <el-form-item label=" ">
  2707. <el-select clearable v-model="guoRenaccidentForm.prodCode" @change="grcxchangeChild">
  2708. <el-option v-for="(item) in guoRenaccidentDataListChild" :key="item.projectCode"
  2709. :label="item.projectName" :value="item.projectCode"></el-option>
  2710. </el-select>
  2711. </el-form-item>
  2712. <el-form-item label="选择份数" style="margin-right: 30px">
  2713. <el-input-number v-model="guoRenaccidentForm.quantity" :min="1" controls-position="right"
  2714. @change="numberCopieschangeGR"></el-input-number>
  2715. </el-form-item>
  2716. <el-form-item label="保费:">
  2717. <span>{{ guoRenaccidentForm.sumPremium }}&ensp;元</span>
  2718. </el-form-item>
  2719. </el-form>
  2720. <el-table v-if="guoRenaccidentForm.prodCode" size="small" :data="guoRenInsuranceDataTable" border
  2721. ref="expandTable" highlight-current-row :header-cell-style="{
  2722. background: '#F7F7F9 ',
  2723. fontWeight: '700',
  2724. color: '#333333',
  2725. }">
  2726. <el-table-column prop="name" label="保险责任" align="center"></el-table-column>
  2727. <el-table-column prop="amount" label="保额 (元)" align="center"></el-table-column>
  2728. <el-table-column prop="premium" label="保费 (元)" align="center">
  2729. <template slot-scope="scope">¥{{ scope.row.premium }}</template>
  2730. </el-table-column>
  2731. </el-table>
  2732. </div>
  2733. </template>
  2734. <template v-if="reslistitem.namesimple == '中煤财险' &&
  2735. reslistitem.checked &&
  2736. reslistitem.agreementId &&
  2737. isLetter !== '3'
  2738. ">
  2739. <div class="flex f-c Driving-risk accident-style zmDriving">
  2740. <el-form :inline="true" :model="accidentFormZM" class="demo-form-inline" size="small"
  2741. style="font-weight: bold; margin-top: 15px">
  2742. <el-form-item label="意外险类型" style="margin-right: 30px">
  2743. <el-select style="width: 250px" size="small" clearable v-model="zhongmeitemplateSelection"
  2744. placeholder="未选择" @clear="numberCopieschangeZM" @change="zhongmeiInsuranceChange">
  2745. <el-option v-for="(item, index) in zhongmeiInsuranceData" :key="index" :label="item.projectName"
  2746. :value="item.projectCode"></el-option>
  2747. </el-select>
  2748. </el-form-item>
  2749. <el-form-item label="选择份数" style="margin-right: 30px">
  2750. <el-input-number v-model="accidentFormZM.quantity" @change="numberCopieschangeZM" :min="1"
  2751. controls-position="right"></el-input-number>
  2752. </el-form-item>
  2753. <el-form-item label="保费:">
  2754. <span>{{ accidentFormZM.sumPremium }}&ensp;元</span>
  2755. </el-form-item>
  2756. </el-form>
  2757. <el-table size="small" :data="zhongmeiInsuranceDataTable" border ref="ZmMultipleTable"
  2758. v-if="zhongmeitemplateSelection" :header-cell-style="{
  2759. background: '#F7F7F9 ',
  2760. fontWeight: '700',
  2761. color: '#333333',
  2762. }">
  2763. <el-table-column prop="name" label="保险责任名称" align="center"></el-table-column>
  2764. <el-table-column prop="amount" label="保险责任对应保额" align="center"></el-table-column>
  2765. </el-table>
  2766. </div>
  2767. </template>
  2768. <template v-if="reslistitem.namesimple == '大家财险' &&
  2769. reslistitem.checked &&
  2770. reslistitem.agreementId &&
  2771. isLetter !== '3'
  2772. ">
  2773. <div class="flex f-c Driving-risk">
  2774. <div class="dis a-c" style="margin-top: 15px">
  2775. <span style="margin-right: 15px; font-weight: bold">选择意外险</span>
  2776. <el-select style="width: 250px" v-if="reslistitem.apiType == 1" filterable size="small" clearable
  2777. v-model="dajiatemplateSelection" placeholder="未选择" @clear="clearAccidentFormDJ"
  2778. @change="dajiaInsuranceChange">
  2779. <el-option v-for="(item, index) in dajiaInsuranceData" :key="index" :label="item.projectName"
  2780. :value="item.projectCode"></el-option>
  2781. </el-select>
  2782. <div v-else>
  2783. <el-select size="small" style="width: 250px" clearable placeholder="未选择" @change="djcxchange"
  2784. v-model="dajiaaccidentForm.parentCode" @clear="clearAccidentFormDJ">
  2785. <el-option v-for="(item, index) in dajiaInsuranceData" :key="index" :label="item.projectName"
  2786. :value="item.projectCode"></el-option>
  2787. </el-select>
  2788. <el-select size="small" style="width: 250px" clearable v-model="dajiaaccidentForm.projectCode"
  2789. @change="djcxchangeChild">
  2790. <el-option v-for="(item) in dajiaaccidentDataListChild" :key="item.projectCode"
  2791. :label="item.projectName" :value="item.projectCode"></el-option>
  2792. </el-select>
  2793. </div>
  2794. </div>
  2795. <el-table size="small" :data="dajiaInsuranceDataTable" border ref="RsTable" highlight-current-row
  2796. :header-cell-style="{
  2797. background: '#F7F7F9 ',
  2798. fontWeight: '700',
  2799. color: '#333333',
  2800. }">
  2801. <el-table-column prop="name" label="保险责任名称" align="center"></el-table-column>
  2802. <el-table-column prop="premium" label="保费 (元)/每份" align="center">
  2803. <template slot-scope="scope">¥{{ scope.row.premium }}</template>
  2804. </el-table-column>
  2805. </el-table>
  2806. </div>
  2807. </template>
  2808. <template v-if="reslistitem.namesimple == '渤海财险' &&
  2809. reslistitem.checked &&
  2810. reslistitem.agreementId &&
  2811. isLetter !== '3'
  2812. ">
  2813. <div class="flex f-c Driving-risk" style="margin-top: 15px">
  2814. <el-form :inline="true" :model="boHaiaccidentForm" class="demo-form-inline" size="small">
  2815. <el-form-item label="意外险类型" style="margin-right: 30px">
  2816. <el-select clearable placeholder="未选择" @clear="clearAccidentFormBh" @change="bohaiInsuranceChange"
  2817. v-model="boHaiaccidentForm.projectCode">
  2818. <el-option v-for="(item, index) in boHaiaccidentDataList" :key="index" :label="item.projectName"
  2819. :value="item.projectCode"></el-option>
  2820. </el-select>
  2821. </el-form-item>
  2822. <el-form-item label="选择份数" style="margin-right: 30px">
  2823. <el-input-number v-model="boHaiaccidentForm.copies" :min="1"
  2824. controls-position="right"></el-input-number>
  2825. </el-form-item>
  2826. <el-form-item label="保费:">
  2827. <span>{{
  2828. boHaiaccidentForm.premium * boHaiaccidentForm.copies
  2829. }}&ensp;元</span>
  2830. </el-form-item>
  2831. </el-form>
  2832. <el-table v-if="boHaiaccidentForm.projectCode" size="small" :data="bohaiInsuranceDataTable" border
  2833. ref="expandTable" highlight-current-row :header-cell-style="{
  2834. background: '#F7F7F9 ',
  2835. fontWeight: '700',
  2836. color: '#333333',
  2837. }">
  2838. <el-table-column prop="name" label="保险责任名称" align="center"></el-table-column>
  2839. <el-table-column prop="amount" label="保额 (元)" align="center">
  2840. <template slot-scope="scope">¥{{ scope.row.amount }}</template>
  2841. </el-table-column>
  2842. </el-table>
  2843. </div>
  2844. </template> -->
  2845. </div>
  2846. </div>
  2847. </div>
  2848. </div>
  2849. <!-- 报价历史 -->
  2850. <div class="Enclosure flex f-c" v-if="isLetter == '1'">
  2851. <div class="home flex j-s a-c back">
  2852. <div class="flex j-s a-c color">
  2853. <img src="../../../../src/icon/报价历史.png" alt class="icon-img" />
  2854. <span style="margin-left: 10px">报价历史</span>
  2855. <div v-if="orderno">
  2856. <el-radio-group v-model="historyRadio" style="margin-left: 30px" @input="RadioHistoryChange"
  2857. v-for="item in insOrderStatusoptions" :key="item.dictValue">
  2858. <el-radio :label="item.dictValue">{{ item.dictTag }}</el-radio>
  2859. </el-radio-group>
  2860. </div>
  2861. </div>
  2862. </div>
  2863. <div style="padding: 20px">
  2864. <el-table size="small" :data="HistoryList" height="250" border style="width: 100%" v-loading="loading"
  2865. :header-cell-style="{
  2866. background: '#F7F7F9 ',
  2867. fontWeight: '700',
  2868. color: '#333333',
  2869. }" highlight-current-row>
  2870. <el-table-column prop="inscompany" label="保险公司" align="center"></el-table-column>
  2871. <el-table-column prop="username" label="业务员" align="center">
  2872. <template slot-scope="scope">
  2873. <span>{{ scope.row.userName }}({{ scope.row.userId }})</span>
  2874. </template>
  2875. </el-table-column>
  2876. <el-table-column prop="licenseno" label="车牌号" align="center"></el-table-column>
  2877. <el-table-column prop="product" label="险种" align="center"></el-table-column>
  2878. <el-table-column prop="createtime" label="报价时间" align="center"></el-table-column>
  2879. <el-table-column prop="jqpremium" label="交强险" align="center"></el-table-column>
  2880. <el-table-column prop="sypremium" label="商业险" align="center"></el-table-column>
  2881. <el-table-column prop="taxamount" label="车船税" align="center"></el-table-column>
  2882. <el-table-column prop="sumpremium" label="总保费" align="center"></el-table-column>
  2883. <el-table-column prop="orderstatus" label="状态" align="center">
  2884. <template slot-scope="scope">
  2885. <el-tag style="
  2886. color: #33a08d;
  2887. border-color: #33a08d;
  2888. background: rgba(51, 160, 141, 0.1);
  2889. " v-if="scope.row.orderstatus == '0' || scope.row.orderstatus == '1'
  2890. " size="small">{{ scope.row.orderstatus | cap }}</el-tag>
  2891. <el-tag type="danger" style="border-color: #e75b5d" v-else-if="scope.row.orderstatus == '3'"
  2892. size="small">{{
  2893. scope.row.orderstatus | cap }}</el-tag>
  2894. <el-tag v-else style="
  2895. color: #2d4d89;
  2896. border-color: #2d4d89;
  2897. background: rgba(45, 77, 137, 0.1);
  2898. " size="small">{{ scope.row.orderstatus | cap }}</el-tag>
  2899. </template>
  2900. </el-table-column>
  2901. <el-table-column label="操作" align="center" min-width="180" fixed="right">
  2902. <template slot-scope="scope">
  2903. <el-button v-if="scope.row.orderstatus == '10'" type="text" style="color: #2d4d89" size="small"
  2904. @click="supplementOrder(scope.row.id)">补录订单</el-button>
  2905. <el-button type="text" style="color: #2d4d89" size="small"
  2906. @click="qoutedetail(scope.row.id)">查看详情</el-button>
  2907. <el-button size="small" type="text" @click="bjdpreview(scope.row.id)">报价单</el-button>
  2908. <el-button size="small" v-show="scope.row.orderstatus == '2' && scope.row.inscompany !== '平安财险'"
  2909. type="text" @click="Payment(scope.row.id, scope.row)">付款码</el-button>
  2910. <el-button size="small" v-show="scope.row.orderstatus == '2' && scope.row.inscompany == '平安财险'"
  2911. type="text" @click="signature(scope.row.id)">生成签章</el-button>
  2912. <el-button size="mini" type="text" v-if="(scope.row.orderstatus == '1' ||
  2913. scope.row.orderstatus == '2' ||
  2914. scope.row.orderstatus == '4') &&
  2915. ['紫金财险', '诚泰财险', '阳光财险'].includes(scope.row.inscompany)
  2916. " @click="cancelorder(scope.row)">撤单</el-button>
  2917. <el-button type="text" size="mini" style="color: #2d4d89"
  2918. v-if="scope.row.orderstatus == '2' && scope.row.inscompany !== '平安财险'"
  2919. @click="revokeCode(scope.row.id)">撤销二维码</el-button>
  2920. </template>
  2921. </el-table-column>
  2922. </el-table>
  2923. </div>
  2924. </div>
  2925. <!-- 查看详情 -->
  2926. <detailsDialog ref="detailsDialog" :orderInfo.sync="queryOrders" :Feepermissions="false"></detailsDialog>
  2927. <el-dialog title="车型选择" :visible.sync="chexingdialogVisible" width="1300px">
  2928. <el-form :inline="true" class="demo-form-inline" size="small">
  2929. <el-form-item label="厂牌型号">
  2930. <el-input v-model="carInfo.modelcname" placeholder="厂牌型号" style="width: 500px"></el-input>
  2931. </el-form-item>
  2932. <el-form-item>
  2933. <el-button type="primary" size="small" @click="toChooseVehicleType(carInfo.modelcname)">查询</el-button>
  2934. </el-form-item>
  2935. </el-form>
  2936. <el-table size="small" :data="reslist" height="690" border style="width: 100%" v-loading="loading"
  2937. :header-cell-style="{
  2938. background: '#F7F7F9 ',
  2939. fontWeight: '700',
  2940. color: '#333333',
  2941. }" highlight-current-row @row-dblclick="reslistCurrentChange">
  2942. <el-table-column prop="modelCode" label="厂牌型号代码" align="center" width="200"></el-table-column>
  2943. <el-table-column prop="modelName" label="厂牌型号" align="center" width="200"></el-table-column>
  2944. <el-table-column prop="importFlag" label="车辆类型" align="center" width="300"></el-table-column>
  2945. <el-table-column prop="replacementValue" label="新车购置价" align="center" width="100"></el-table-column>
  2946. <el-table-column prop="marketYear" label="年款" align="center" width="100"></el-table-column>
  2947. <el-table-column prop="ratedPassengerCapacity" label="座位数" align="center" width="80"></el-table-column>
  2948. <el-table-column prop="displacement" label="排量" align="center" width="100"></el-table-column>
  2949. <el-table-column prop="remark" label="配置" align="center"></el-table-column>
  2950. </el-table>
  2951. </el-dialog>
  2952. <el-dialog title="车辆识别代码" :visible.sync="sbdmdialogVisible" width="1300px">
  2953. <el-form :inline="true" class="demo-form-inline" size="small">
  2954. <el-form-item label="车辆识别代码">
  2955. <el-input v-model="carInfo.frameNo" placeholder="车辆识别代码" style="width: 500px"></el-input>
  2956. </el-form-item>
  2957. <el-form-item>
  2958. <el-button type="primary" size="small" @click="toChooseVin(carInfo.frameNo)">查询</el-button>
  2959. </el-form-item>
  2960. </el-form>
  2961. <el-table size="small" :data="reslist" height="690" border style="width: 100%" v-loading="loading"
  2962. :header-cell-style="{
  2963. background: '#F7F7F9 ',
  2964. fontWeight: '700',
  2965. color: '#333333',
  2966. }" highlight-current-row @row-dblclick="reslistCurrentChange">
  2967. <el-table-column prop="modelCode" label="厂牌型号代码" align="center" width="200"></el-table-column>
  2968. <el-table-column prop="modelName" label="厂牌型号" align="center" width="300"></el-table-column>
  2969. <el-table-column prop="importFlag" label="车辆类型" align="center" width="100"></el-table-column>
  2970. <el-table-column prop="replacementValue" label="新车购置价" align="center" width="100"></el-table-column>
  2971. <el-table-column prop="marketYear" label="年款" align="center" width="100"></el-table-column>
  2972. <el-table-column prop="ratedPassengerCapacity" label="座位数" align="center" width="80"></el-table-column>
  2973. <el-table-column prop="displacement" label="排量" align="center" width="100"></el-table-column>
  2974. <el-table-column prop="remark" label="配置" align="center"></el-table-column>
  2975. </el-table>
  2976. </el-dialog>
  2977. <!--第一种 二维码 -->
  2978. <el-dialog :visible.sync="codedialogVisible" width="430px" top="10vh" class="saomazhifucodeClass">
  2979. <div class="ORcodebody" v-watermark="userform.id || userId">
  2980. <div slot="title" class="dialog-title">
  2981. <span>扫码付款</span>
  2982. </div>
  2983. <div class="ORcode">
  2984. <div style="padding: 13px; position: relative">
  2985. <div id="qrcode" ref="qrcode"></div>
  2986. </div>
  2987. </div>
  2988. <img style="margin-left: -16px" src="../../../assets/image/divider.png" alt />
  2989. <div style="
  2990. font-size: 32px;
  2991. text-align: center;
  2992. color: #d42426;
  2993. margin-top: 20px;
  2994. ">
  2995. <span style="font-size: 24px; font-weight: bold">¥</span>
  2996. {{ sumpremium }}
  2997. </div>
  2998. <div class="ORtitle">
  2999. <div>
  3000. <span>保险公司:</span>
  3001. <span>{{ inscompany }}</span>
  3002. </div>
  3003. <div>
  3004. <span>车牌号:</span>
  3005. <span>{{ licenseNo }}</span>
  3006. </div>
  3007. <div>
  3008. <span>投保人:</span>
  3009. <span>{{ applyName }}</span>
  3010. </div>
  3011. <!-- <div>
  3012. <span style="color:#f75c00">总金额:</span>
  3013. <span style="color:#f75c00">{{ sumpremium }}</span>
  3014. </div>-->
  3015. <div v-show="jqpremium">
  3016. <span>交强:</span>
  3017. <span>{{ jqpremium }}</span>
  3018. </div>
  3019. <div v-show="sypremium">
  3020. <span>商业:</span>
  3021. <span>{{ sypremium }}</span>
  3022. </div>
  3023. <div v-show="taxamount">
  3024. <span>车船税:</span>
  3025. <span>{{ taxamount }}</span>
  3026. </div>
  3027. <div v-show="jqstartdate">
  3028. <span>交强险起保日期:</span>
  3029. <span>{{ jqstartdate }}</span>
  3030. </div>
  3031. <div v-show="systartdate">
  3032. <span>商业险起保日期:</span>
  3033. <span>{{ systartdate }}</span>
  3034. </div>
  3035. <div v-if="jypremium">
  3036. <span>驾意险:</span>
  3037. <span>{{ jypremium }}</span>
  3038. </div>
  3039. <div v-if="jypremium">
  3040. <span>驾意险险起保日期:</span>
  3041. <span>{{ systartdate || jqstartdate }}</span>
  3042. </div>
  3043. </div>
  3044. <!-- <div class="display">
  3045. <el-button size="small" style="width:100px;" @click="codedialogVisible = false">关闭</el-button>
  3046. </div>-->
  3047. </div>
  3048. <span slot="footer" class="dialog-footer display">
  3049. <el-button size="small" style="width: 100px; border-color: #d42426; color: #d42426"
  3050. @click="codedialogVisible = false">关闭</el-button>
  3051. </span>
  3052. </el-dialog>
  3053. <!--第二种 二维码 -->
  3054. <el-dialog :visible.sync="codedialogVisiblePro" width="660px" class="proSaomazhifucodeClass" top="10vh"
  3055. title="扫码付款">
  3056. <div class="flex j-s">
  3057. <div class="scan-code">
  3058. <div style="font-weight: bold">
  3059. 总金额:
  3060. <span style="color: #2d4d89">{{ sumpremium }}</span>
  3061. </div>
  3062. <div>交强险:{{ jqpremium }}</div>
  3063. <div>车船税:{{ taxamount }}</div>
  3064. <div>商业险:{{ sypremium }}</div>
  3065. <div>驾意险:{{ jypremium }}</div>
  3066. </div>
  3067. <div id="qrcode" ref="qrcode"></div>
  3068. <div class="scan-code">
  3069. <div>保险公司:{{ inscompany }}</div>
  3070. <div>车牌号:{{ licenseNo }}</div>
  3071. <div>投保人:{{ applyName }}</div>
  3072. <div>交强险起保日期:{{ jqstartdate }}</div>
  3073. <div>商业险起保日期:{{ systartdate }}</div>
  3074. <div>驾意险起保日期:{{ systartdate || jqstartdate }}</div>
  3075. </div>
  3076. </div>
  3077. <span slot="footer" class="dialog-footer">
  3078. <el-button size="small" style="
  3079. width: 100px;
  3080. background: #eaedf1;
  3081. border-color: #eaedf1;
  3082. color: #2d4d89;
  3083. " @click="codedialogVisiblePro = false">关闭</el-button>
  3084. </span>
  3085. </el-dialog>
  3086. <el-dialog :visible.sync="uploadcardialogVisible" width="960px" style="padding: 10px 20px; box-sizing: border-box"
  3087. @open="closeDialog(0)">
  3088. <div slot="title" class="dialog-title">
  3089. <span>行驶证识别</span>
  3090. </div>
  3091. <el-row :gutter="20">
  3092. <div class="bodys1">
  3093. <div>
  3094. <div class="flex a-c">
  3095. <div class="OCR" style="text-align: center">行驶证主页</div>
  3096. <div style="text-align: center; margin: 20px" @drop="reportDrop">
  3097. <el-upload drag action="#" :show-file-list="false" :auto-upload="false" :on-change="carfrontChange">
  3098. <img v-show="carfrontImg" :src="carfrontImg" style="width: 100%; height: 100%" />
  3099. <img v-show="!carfrontImg" src="../../../../static/carfront.png" style="width: 100%; height: 100%" />
  3100. <span class="slot" v-show="carfrontImg" @click.stop>
  3101. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(carfrontImg)"></i>
  3102. <i class="el-icon-delete" @click.stop="handleRemove('carfrontImg')"></i>
  3103. </span>
  3104. </el-upload>
  3105. </div>
  3106. </div>
  3107. <div class="flex a-c">
  3108. <div class="OCR" style="text-align: center">行驶证副页</div>
  3109. <div style="text-align: center; margin: 20px" @drop="reportDrop">
  3110. <el-upload drag action="#" :show-file-list="false" :auto-upload="false" :on-change="carbackChange">
  3111. <img v-show="carbackImg" :src="carbackImg" style="width: 100%; height: 100%" />
  3112. <img v-show="!carbackImg" src="../../../../static/carback.png" style="width: 100%; height: 100%" />
  3113. <span class="slot" v-show="carbackImg" @click.stop>
  3114. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(carbackImg)"></i>
  3115. <i class="el-icon-delete" @click.stop="handleRemove('carbackImg')"></i>
  3116. </span>
  3117. </el-upload>
  3118. </div>
  3119. </div>
  3120. </div>
  3121. <div style="text-align: center">
  3122. <el-form :model="carform" label-width="130px" size="small">
  3123. <el-form-item label="所有人">
  3124. <el-input v-model="carform.carOwner" autocomplete="off"></el-input>
  3125. </el-form-item>
  3126. <el-form-item label="车牌号">
  3127. <el-input v-model="carform.licenseNo" autocomplete="off"></el-input>
  3128. </el-form-item>
  3129. <el-form-item label="车架号">
  3130. <el-input v-model="carform.frameNo" autocomplete="off"></el-input>
  3131. </el-form-item>
  3132. <el-form-item label="品牌型号">
  3133. <el-input v-model="carform.modelcname" autocomplete="off"></el-input>
  3134. </el-form-item>
  3135. <el-form-item label="发动机号">
  3136. <el-input v-model="carform.engineNo" autocomplete="off"></el-input>
  3137. </el-form-item>
  3138. <el-form-item label="总质量">
  3139. <el-input v-model="carform.grossMass" autocomplete="off"></el-input>
  3140. </el-form-item>
  3141. <el-form-item label="整备质量">
  3142. <el-input v-model="carform.unladenMass" autocomplete="off"></el-input>
  3143. </el-form-item>
  3144. <el-form-item label="核定载质量">
  3145. <el-input v-model="carform.limitLoad" autocomplete="off"></el-input>
  3146. </el-form-item>
  3147. <el-form-item label="核定载客数">
  3148. <el-input v-model="carform.approvedPassengersCapacity" autocomplete="off"></el-input>
  3149. </el-form-item>
  3150. <el-form-item label="注册日期">
  3151. <el-input v-model="carform.registerDate" autocomplete="off"></el-input>
  3152. </el-form-item>
  3153. <el-form-item label="发证日期">
  3154. <el-input v-model="carform.issueDate" autocomplete="off"></el-input>
  3155. </el-form-item>
  3156. </el-form>
  3157. </div>
  3158. </div>
  3159. </el-row>
  3160. <span slot="footer" class="dialog-footer">
  3161. <el-button type="primary" @click="CarOCRdiscern()" size="small">识 别</el-button>
  3162. <el-button type="primary" @click="CarOCRconfirm()" size="small">确 认</el-button>
  3163. </span>
  3164. </el-dialog>
  3165. <el-dialog :visible.sync="uploaduserdialogVisible" width="960px" style="padding: 10px 20px; box-sizing: border-box"
  3166. @open="closeDialog(userIndex)">
  3167. <el-tabs v-model="activeName">
  3168. <el-tab-pane label="身份证识别" name="1">
  3169. <el-row :gutter="20">
  3170. <div class="bodys1">
  3171. <div>
  3172. <div class="flex">
  3173. <div class="OCR" style="text-align: center">身份证主页</div>
  3174. <div style="text-align: center; margin: 20px" @drop="reportDrop">
  3175. <el-upload class="upload-demo" drag action="#" :show-file-list="false" :auto-upload="false"
  3176. :on-change="userfrontChange">
  3177. <img v-show="userfrontImg" :src="userfrontImg" style="width: 100%; height: 100%" />
  3178. <img v-show="!userfrontImg" src="../../../../static/userfront.png"
  3179. style="width: 100%; height: 100%" />
  3180. <span class="slot" v-show="userfrontImg" @click.stop>
  3181. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(userfrontImg)"></i>
  3182. <i class="el-icon-delete" @click.stop="handleRemove('userfrontImg')"></i>
  3183. </span>
  3184. </el-upload>
  3185. </div>
  3186. </div>
  3187. <div class="flex">
  3188. <div class="OCR" style="text-align: center">身份证副页</div>
  3189. <div style="text-align: center; margin: 20px" @drop="reportDrop">
  3190. <el-upload class="upload-demo" drag action="#" :show-file-list="false" :auto-upload="false"
  3191. :on-change="userbackChange">
  3192. <img v-show="userbackImg" :src="userbackImg" style="width: 100%; height: 100%" />
  3193. <img v-show="!userbackImg" src="../../../../static/userback.png"
  3194. style="width: 100%; height: 100%" />
  3195. <span class="slot" v-show="userbackImg" @click.stop>
  3196. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(userbackImg)"></i>
  3197. <i class="el-icon-delete" @click.stop="handleRemove('userbackImg')"></i>
  3198. </span>
  3199. </el-upload>
  3200. </div>
  3201. </div>
  3202. </div>
  3203. <div style="text-align: center">
  3204. <el-form :model="ownerInfoform" label-width="130px" size="small">
  3205. <el-form-item label="姓名">
  3206. <el-input v-model="ownerInfoform.name" autocomplete="off"></el-input>
  3207. </el-form-item>
  3208. <el-form-item label="性别">
  3209. <el-input v-model="ownerInfoform.gender" autocomplete="off"></el-input>
  3210. </el-form-item>
  3211. <el-form-item label="证件类型">
  3212. <el-input v-model="ownerInfoform.identifyType" autocomplete="off"></el-input>
  3213. </el-form-item>
  3214. <el-form-item label="证件号码">
  3215. <el-input v-model="ownerInfoform.identifyNumber" autocomplete="off"></el-input>
  3216. </el-form-item>
  3217. <el-form-item label="车主手机号">
  3218. <el-input v-model="ownerInfoform.mobile" autocomplete="off"></el-input>
  3219. </el-form-item>
  3220. <el-form-item label="地址">
  3221. <el-input v-model="ownerInfoform.addr" autocomplete="off"></el-input>
  3222. </el-form-item>
  3223. <el-form-item label="有效期起期">
  3224. <el-input disabled v-model="ownerInfoform.identifyValidDate" autocomplete="off"></el-input>
  3225. </el-form-item>
  3226. <el-form-item label="有效期止期">
  3227. <el-input disabled v-model="ownerInfoform.identifyValidEndDate" autocomplete="off"></el-input>
  3228. </el-form-item>
  3229. <el-form-item label="电子邮箱">
  3230. <el-input v-model="ownerInfoform.email" autocomplete="off"></el-input>
  3231. </el-form-item>
  3232. </el-form>
  3233. </div>
  3234. </div>
  3235. </el-row>
  3236. </el-tab-pane>
  3237. <el-tab-pane label="营业执照" name="2">
  3238. <el-row :gutter="20">
  3239. <div class="bodys1">
  3240. <div>
  3241. <div class="flex">
  3242. <div class="OCR" style="text-align: center">营业执照</div>
  3243. <div style="text-align: center; margin: 20px" @drop="reportDrop">
  3244. <el-upload class="upload-demo" drag action="#" :show-file-list="false" :auto-upload="false"
  3245. :on-change="businessChange">
  3246. <img v-show="businessImg" :src="businessImg" style="width: 100%; height: 100%" />
  3247. <img v-show="!businessImg" src="../../../../static/userfront.png"
  3248. style="width: 100%; height: 100%" />
  3249. <span class="slot" v-show="businessImg" @click.stop>
  3250. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(businessImg)"></i>
  3251. <i class="el-icon-delete" @click.stop="handleRemove('businessImg')"></i>
  3252. </span>
  3253. </el-upload>
  3254. </div>
  3255. </div>
  3256. </div>
  3257. <div style="text-align: center">
  3258. <el-form :model="businessform" label-width="130px" size="small">
  3259. <el-form-item label="单位名称">
  3260. <el-input autocomplete="off" v-model="businessform.name"></el-input>
  3261. </el-form-item>
  3262. <el-form-item label="法人">
  3263. <el-input autocomplete="off" v-model="businessform.legalPerson"></el-input>
  3264. </el-form-item>
  3265. <el-form-item label="社会信用代码">
  3266. <el-input autocomplete="off" v-model="businessform.organizationCode"></el-input>
  3267. </el-form-item>
  3268. <el-form-item label="地址">
  3269. <el-input autocomplete="off" v-model="businessform.addr"></el-input>
  3270. </el-form-item>
  3271. <el-form-item label="注册资本">
  3272. <el-input autocomplete="off" v-model="businessform.registeredCapital"></el-input>
  3273. </el-form-item>
  3274. <el-form-item label="经营范围">
  3275. <el-input autocomplete="off" type="textarea" v-model="businessform.scope"></el-input>
  3276. </el-form-item>
  3277. </el-form>
  3278. </div>
  3279. </div>
  3280. </el-row>
  3281. </el-tab-pane>
  3282. </el-tabs>
  3283. <span slot="footer" class="dialog-footer">
  3284. <el-button type="primary" @click="userOCRdiscern()" size="small">识 别</el-button>
  3285. <el-button type="primary" @click="userOCRconfirm()" size="small">确 认</el-button>
  3286. </span>
  3287. </el-dialog>
  3288. <el-dialog :visible.sync="pinganDataDetailVisible" width="40%" title="责任明细">
  3289. <el-table :data="pinganDataDetail" border style="width: 100%">
  3290. <el-table-column prop="insuranceCoverage" label="责任名称">
  3291. </el-table-column>
  3292. <el-table-column prop="unitInsuredAmount" label="每份保额">
  3293. </el-table-column>
  3294. </el-table>
  3295. </el-dialog>
  3296. <div v-if="isLetter == '1' || isLetter == '2'" class="flex j-c a-c footer" :class="$store.state.app.collapse ? 'position-collapse-left' : 'position-left'
  3297. ">
  3298. <el-button size="small" @click="add()">录下一单</el-button>
  3299. <el-button type="primary" :loading="calculateLoading" size="small" @click="quote1()">保费计算</el-button>
  3300. </div>
  3301. <div v-else style="text-align: center">
  3302. <el-button type="primary" :loading="calculateLoading" size="small" @click="quote1()">保费计算</el-button>
  3303. </div>
  3304. <div class="Anchor-link flex f-c j-s a-c" v-if="isLetter == '1'">
  3305. <div>
  3306. <img src="../../../../src/icon/车辆信息.png" alt class="icon-img" @click="handleScroll('Car')" />
  3307. </div>
  3308. <div>
  3309. <img src="../../../../src/icon/投保信息.png" alt class="icon-img" @click="handleScroll('insurance')" />
  3310. </div>
  3311. <div>
  3312. <img src="../../../../src/icon/险别选择.png" alt class="icon-img" @click="handleScroll('more')" />
  3313. </div>
  3314. <div>
  3315. <img src="../../../../src/icon/保险公司.png" alt class="icon-img" @click="handleScroll('company')" />
  3316. </div>
  3317. </div>
  3318. <el-dialog title="核保信息" :visible.sync="underwritingdialogVisible" width="30%">
  3319. <div class="flex j-s f-c">
  3320. <div style="
  3321. font-size: 18px;
  3322. color: #d42426;
  3323. font-weight: 700;
  3324. padding: 10px 30px;
  3325. " v-if="orderstatus == '2'">
  3326. 订单状态:已核保待缴费
  3327. </div>
  3328. </div>
  3329. <span slot="footer" class="dialog-footer">
  3330. <el-button style="width: 100px" type="primary" size="small"
  3331. v-if="orderstatus == '2' && queryOrders.inscompany !== '平安财险'"
  3332. @click="Payment(companyId, queryOrders)">缴费二维码</el-button>
  3333. <el-button style="width: 100px" type="primary" size="small"
  3334. v-if="orderstatus == '2' && queryOrders.inscompany == '平安财险'" @click="signature(companyId)">生成签章</el-button>
  3335. </span>
  3336. </el-dialog>
  3337. <el-dialog title="转保确认码" :visible.sync="renewalCodedialogVisible" width="400px" style="font-weight: bold">
  3338. <div class="flex a-c u-f-sa" v-if="renewalCodeJqImg">
  3339. <span>交强转保确认码</span>
  3340. <div class="flex a-c f-c">
  3341. <img :src="renewalCodeJqImg" alt style="width: 150px; height: 40px; margin-bottom: 5px" />
  3342. <el-input v-model="renewalCodeJq" placeholder="请输入确认码" style="width: 150px"></el-input>
  3343. </div>
  3344. </div>
  3345. <div class="flex a-c u-f-sa" v-if="renewalCodeSyImg">
  3346. <span>商业转保确认码</span>
  3347. <div class="flex a-c f-c">
  3348. <img :src="renewalCodeSyImg" alt style="width: 150px; height: 40px; margin-bottom: 5px" />
  3349. <el-input v-model="renewalCodeSy" placeholder="请输入确认码" style="width: 150px"></el-input>
  3350. </div>
  3351. </div>
  3352. <span slot="footer" class="dialog-footer">
  3353. <el-button size="small" @click="renewalCodedialogVisible = false">取 消</el-button>
  3354. <el-button size="small" type="primary" @click="renewalCodeconfirm">确 定</el-button>
  3355. </span>
  3356. </el-dialog>
  3357. <el-dialog :title="contributingState ? '选择特约' : '提交核保'" :visible.sync="hbsubmitdialogVisible" width="1200px">
  3358. <div style="margin-bottom: 20px; font-weight: bold">特约选择</div>
  3359. <el-table size="small" :data="zijinengageListData" border v-loading="contributingLoading"
  3360. @select="zijinengageChange" @select-all="zijinengageChangeAll" ref="expandTablePro" highlight-current-row
  3361. @cell-dblclick="zijincellDblclick" :cell-class-name="tableCellClassName" :header-cell-style="{
  3362. background: '#F7F7F9 ',
  3363. fontWeight: '700',
  3364. color: '#333333',
  3365. }">
  3366. <el-table-column type="selection" width="55"></el-table-column>
  3367. <el-table-column prop="clauseCode" :width="80" label="特约代码" align="center"></el-table-column>
  3368. <el-table-column v-if="contributingState" :width="100" prop="riskCode" label="特约险种"
  3369. align="center"></el-table-column>
  3370. <el-table-column prop="clauseName" label="特约名称" align="center"></el-table-column>
  3371. <!-- <el-table-column prop="replaceContent" label="特约内容" align="center"></el-table-column> -->
  3372. <el-table-column prop="clauseContent" label="特约内容">
  3373. <template slot-scope="scope">
  3374. <el-input @blur="hideInput" size="small" type="textarea" :ref="scope.row.index + ',' + scope.column.index"
  3375. v-model="scope.row.clauseContent" v-if="scope.row.index + ',' + scope.column.index == currentCell &&
  3376. scope.row.modifyFlag == '1'
  3377. "></el-input>
  3378. <span v-else>{{ scope.row.clauseContent }}</span>
  3379. </template>
  3380. </el-table-column>
  3381. </el-table>
  3382. <span slot="footer" class="dialog-footer">
  3383. <el-button size="small" @click="hbsubmitdialogVisible = false">取 消</el-button>
  3384. <el-button v-if="contributingState" size="small" type="primary"
  3385. @click="hbsubmitdialogVisible = false">确定</el-button>
  3386. <el-button v-else size="small" type="primary" @click="hbsubmit">提交核保</el-button>
  3387. </span>
  3388. </el-dialog>
  3389. <!-- <imageDialog ref="imageDialog" :quoteno="quoteno"></imageDialog>-->
  3390. <!-- 报价单 -->
  3391. <quotationDialog ref="quotationDialog" :queryOrders="queryOrders"></quotationDialog>
  3392. <quotationDialogPro ref="quotationDialogPro" :queryOrders="queryOrders"></quotationDialogPro>
  3393. <el-image-viewer v-if="showViewer" :on-close="closeViewer" :z-index="9999" :url-list="[ProViewImg]" />
  3394. <el-dialog :visible.sync="redictInfodialogVisible" width="70%">
  3395. <el-table :data="redictInfoMsg" style="width: 100%">
  3396. <el-table-column prop="description" label="审核意见"></el-table-column>
  3397. <el-table-column prop="opinion" label="备注"></el-table-column>
  3398. </el-table>
  3399. </el-dialog>
  3400. <!-- 生成签章 -->
  3401. <el-dialog :visible.sync="signaturedialogVisible" title="生成签章" width="14%">
  3402. <div>
  3403. <img :src="resultMessageImg" alt style="width: 100%" />
  3404. <!-- <div id="signaturecode" ref="signaturecode"></div> -->
  3405. </div>
  3406. </el-dialog>
  3407. <!-- 保单上传 -->
  3408. <el-dialog :visible.sync="policyUploaddialogVisible" width="30%">
  3409. <div slot="title" class="dialog-title">
  3410. <span>保单上传</span>
  3411. </div>
  3412. <el-form :model="policyNumberForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
  3413. <el-form-item label="交强保单:" prop="jqPolicy">
  3414. <el-upload class="upload-demo" ref="jqPolicyupload" action="#" :limit="1" :auto-upload="false"
  3415. :on-remove="(file) => removePhoto(file, policyNumberForm.jqPolicyList, 'jqPolicyList')"
  3416. :file-list="policyNumberForm.jqPolicyList" :on-change="(file) => policydrivingupload(file, 'jqPolicy')">
  3417. <el-button size="small" type="primary">点击上传</el-button>
  3418. <el-button size="small" type="primary" @click.stop="policyNumberForm.jqPolicyList = []">清空</el-button>
  3419. </el-upload>
  3420. </el-form-item>
  3421. <el-form-item label="商业保单:" prop="syPolicy">
  3422. <el-upload class="upload-demo" ref="syPolicyupload" action="#" :limit="1" :auto-upload="false"
  3423. :on-remove="(file) => removePhoto(file, policyNumberForm.syPolicyList, 'syPolicyList')"
  3424. :file-list="policyNumberForm.syPolicyList" :on-change="(file) => policydrivingupload(file, 'syPolicy')">
  3425. <el-button size="small" type="primary">点击上传</el-button>
  3426. <el-button size="small" type="primary" @click.stop="policyNumberForm.syPolicyList = []">清空</el-button>
  3427. </el-upload>
  3428. </el-form-item>
  3429. <el-form-item label="非车保单:" prop="noPolicy">
  3430. <el-upload class="upload-demo" ref="noPolicyupload" action="#" :limit="1" :auto-upload="false"
  3431. :on-remove="(file) => removePhoto(file, policyNumberForm.noPolicyList, 'noPolicyList')"
  3432. :file-list="policyNumberForm.noPolicyList" :on-change="(file) => policydrivingupload(file, 'noPolicy')">
  3433. <el-button size="small" type="primary">点击上传</el-button>
  3434. <el-button size="small" type="primary" @click.stop="policyNumberForm.noPolicyList = []">清空</el-button>
  3435. </el-upload>
  3436. </el-form-item>
  3437. <el-form-item label="交强电子标志:" prop="jqSign">
  3438. <el-upload class="upload-demo" ref="jqSignupload" action="#" :limit="1" :auto-upload="false"
  3439. :on-remove="(file) => removePhoto(file, policyNumberForm.jqSignList, 'jqSignList')"
  3440. :file-list="policyNumberForm.jqSignList" :on-change="(file) => policydrivingupload(file, 'jqSign')">
  3441. <el-button size="small" type="primary">点击上传</el-button>
  3442. <el-button size="small" type="primary" @click.stop="policyNumberForm.jqSignList = []">清空</el-button>
  3443. </el-upload>
  3444. </el-form-item>
  3445. </el-form>
  3446. <span slot="footer" class="dialog-footer">
  3447. <el-button size="small" @click="policyUploaddialogVisible = false">取 消</el-button>
  3448. <el-button size="small" type="primary" @click="policyUploaddialogVisible = false">确 定</el-button>
  3449. </span>
  3450. </el-dialog>
  3451. <!-- 影像上传 -->
  3452. <el-dialog :visible.sync="imageUploaddialogVisible" width="1070px">
  3453. <div slot="title" class="dialog-title">
  3454. <span>影像上传</span>
  3455. </div>
  3456. <el-row>
  3457. <el-col :span="4">
  3458. <div class="tab-style">
  3459. <li class="liMenu" :class="idx == tabLiIndex ? 'tabLi-style' : ''" @click="tabLiScroll(item.scroll, idx)"
  3460. v-for="(item, idx) in tabLimenu" :key="idx">
  3461. {{ item.name }}
  3462. </li>
  3463. </div>
  3464. </el-col>
  3465. <el-col :span="20" style="height: 320px; overflow-y: auto">
  3466. <div class="flex f-wrap" id="vehicle">
  3467. <div class="aaa">
  3468. <span>1.行驶证主页</span>
  3469. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList1', 'imgList1', 'C01')
  3470. " :file-list="imgList1" ref="upload1" :class="{ styleB: imgList1.length == 1 }">
  3471. <img v-show="imgList1.length == 0" src="../../../../static/carfront.png"
  3472. style="width: 100%; height: 100%" />
  3473. <div slot="file" slot-scope="{ file }" v-if="imgList1.length > 0">
  3474. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3475. <span class="el-upload-list__item-actions">
  3476. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList1', 'imgList1')">
  3477. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3478. <i class="el-icon-delete"></i>
  3479. </span>
  3480. </span>
  3481. </div>
  3482. </el-upload>
  3483. </div>
  3484. <div class="aaa">
  3485. <span>2.行驶证副页</span>
  3486. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList1', 'imgList2', 'D01')
  3487. " :file-list="imgList2" ref="upload2" :class="{ styleB: imgList2.length === 1 }">
  3488. <img v-show="imgList2.length == 0" src="../../../../static/carback.png"
  3489. style="width: 100%; height: 100%" />
  3490. <div slot="file" slot-scope="{ file }">
  3491. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3492. <span class="el-upload-list__item-actions">
  3493. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList1', 'imgList2')">
  3494. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3495. <i class="el-icon-delete"></i>
  3496. </span>
  3497. </span>
  3498. </div>
  3499. </el-upload>
  3500. </div>
  3501. <div class="aaa">
  3502. <span>3.机动车辆登记证书</span>
  3503. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList1', 'imgList12', 'TAR05')
  3504. " :file-list="imgList12" ref="upload2" :class="{ styleB: imgList12.length === 1 }">
  3505. <img v-show="imgList12.length == 0" src="../../../../static/carback.png"
  3506. style="width: 100%; height: 100%" />
  3507. <div slot="file" slot-scope="{ file }">
  3508. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3509. <span class="el-upload-list__item-actions">
  3510. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList1', 'imgList12')">
  3511. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3512. <i class="el-icon-delete"></i>
  3513. </span>
  3514. </span>
  3515. </div>
  3516. </el-upload>
  3517. </div>
  3518. <div class="aaa">
  3519. <span>4.新车合格证</span>
  3520. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3521. drivingupload(file, 'imageList5', 'imgList9', 'XC00')
  3522. " :file-list="imgList9" multiple ref="upload3" :class="{ styleB: imgList9.length === 1 }">
  3523. <img v-show="imgList9.length == 0" src="../../../../static/userfront.png"
  3524. style="width: 100%; height: 100%" />
  3525. <div slot="file" slot-scope="{ file }">
  3526. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3527. <span class="el-upload-list__item-actions">
  3528. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList5', 'imgList9')">
  3529. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3530. <i class="el-icon-delete"></i>
  3531. </span>
  3532. </span>
  3533. </div>
  3534. </el-upload>
  3535. </div>
  3536. <div class="aaa">
  3537. <span>5.购车发票</span>
  3538. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3539. drivingupload(file, 'imageList5', 'imgList10', 'GC00')
  3540. " :file-list="imgList10" multiple ref="upload4" :class="{ styleB: imgList10.length === 1 }">
  3541. <img v-show="imgList10.length == 0" src="../../../../static/userfront.png"
  3542. style="width: 100%; height: 100%" />
  3543. <div slot="file" slot-scope="{ file }">
  3544. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3545. <span class="el-upload-list__item-actions">
  3546. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList5', 'imgList10')">
  3547. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3548. <i class="el-icon-delete"></i>
  3549. </span>
  3550. </span>
  3551. </div>
  3552. </el-upload>
  3553. </div>
  3554. </div>
  3555. <div class="flex f-wrap" id="owner">
  3556. <div class="aaa">
  3557. <span>1.车主身份证(正面)</span>
  3558. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList2', 'imgList3', 'C02')
  3559. " :file-list="imgList3" multiple ref="upload3" :class="{ styleB: imgList3.length === 1 }">
  3560. <img v-show="imgList3.length == 0" src="../../../../static/userfront.png"
  3561. style="width: 100%; height: 100%" />
  3562. <div slot="file" slot-scope="{ file }">
  3563. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3564. <span class="el-upload-list__item-actions">
  3565. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList2', 'imgList3')">
  3566. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3567. <i class="el-icon-delete"></i>
  3568. </span>
  3569. </span>
  3570. </div>
  3571. </el-upload>
  3572. </div>
  3573. <div class="aaa">
  3574. <span>2.车主身份证(反面)</span>
  3575. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList2', 'imgList4', 'D02')
  3576. " :file-list="imgList4" multiple ref="upload4" :class="{ styleB: imgList4.length === 1 }">
  3577. <img v-show="imgList4.length == 0" src="../../../../static/userback.png"
  3578. style="width: 100%; height: 100%" />
  3579. <div slot="file" slot-scope="{ file }">
  3580. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3581. <span class="el-upload-list__item-actions">
  3582. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList2', 'imgList4')">
  3583. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3584. <i class="el-icon-delete"></i>
  3585. </span>
  3586. </span>
  3587. </div>
  3588. </el-upload>
  3589. </div>
  3590. <div class="aaa">
  3591. <span>3.车主营业执照</span>
  3592. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag multiple
  3593. :on-change="(file) => drivingupload(file, 'imageList2', 'imgList26', 'Y02')" ref="upload4"
  3594. :file-list="imgList26" :class="{ styleB: imgList26.length === 1 }">
  3595. <img v-show="imgList26.length == 0" src="../../../../static/userfront.png"
  3596. style="width: 100%; height: 100%" :class="{ styleB: imgList26.length === 1 }" />
  3597. <div slot="file" slot-scope="{ file }">
  3598. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3599. <span class="el-upload-list__item-actions">
  3600. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList2', 'imgList26')">
  3601. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3602. <i class="el-icon-delete"></i>
  3603. </span>
  3604. </span>
  3605. </div>
  3606. </el-upload>
  3607. </div>
  3608. </div>
  3609. <div class="flex f-wrap" id="applicant">
  3610. <div class="aaa">
  3611. <span>1.投保人身份证(正面)</span>
  3612. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList3', 'imgList5', 'C03')
  3613. " :file-list="imgList5" multiple ref="upload5" :class="{ styleB: imgList5.length === 1 }">
  3614. <img v-show="imgList5.length == 0" src="../../../../static/userfront.png"
  3615. style="width: 100%; height: 100%" />
  3616. <div slot="file" slot-scope="{ file }">
  3617. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3618. <span class="el-upload-list__item-actions">
  3619. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList3', 'imgList5')">
  3620. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3621. <i class="el-icon-delete"></i>
  3622. </span>
  3623. </span>
  3624. </div>
  3625. </el-upload>
  3626. </div>
  3627. <div class="aaa">
  3628. <span>2.投保人身份证(反面)</span>
  3629. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList3', 'imgList6', 'D03')
  3630. " :file-list="imgList6" multiple ref="upload6" :class="{ styleB: imgList6.length === 1 }">
  3631. <img v-show="imgList6.length == 0" src="../../../../static/userback.png"
  3632. style="width: 100%; height: 100%" />
  3633. <div slot="file" slot-scope="{ file }">
  3634. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3635. <span class="el-upload-list__item-actions">
  3636. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList3', 'imgList6')">
  3637. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3638. <i class="el-icon-delete"></i>
  3639. </span>
  3640. </span>
  3641. </div>
  3642. </el-upload>
  3643. </div>
  3644. <div class="aaa">
  3645. <span>3.投保人营业执照</span>
  3646. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList3', 'imgList27', 'Y03')
  3647. " :file-list="imgList27" multiple ref="upload6" :class="{ styleB: imgList27.length === 1 }">
  3648. <img v-show="imgList27.length == 0" src="../../../../static/userfront.png"
  3649. style="width: 100%; height: 100%" />
  3650. <div slot="file" slot-scope="{ file }">
  3651. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3652. <span class="el-upload-list__item-actions">
  3653. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList3', 'imgList27')">
  3654. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3655. <i class="el-icon-delete"></i>
  3656. </span>
  3657. </span>
  3658. </div>
  3659. </el-upload>
  3660. </div>
  3661. </div>
  3662. <div class="flex f-wrap">
  3663. <div class="aaa">
  3664. <span id="insured">1.被保人身份证(正面)</span>
  3665. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList4', 'imgList7', 'C04')
  3666. " :file-list="imgList7" multiple ref="upload7" :class="{ styleB: imgList7.length === 1 }">
  3667. <img v-show="imgList7.length == 0" src="../../../../static/userfront.png"
  3668. style="width: 100%; height: 100%" />
  3669. <div slot="file" slot-scope="{ file }">
  3670. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3671. <span class="el-upload-list__item-actions">
  3672. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList4', 'imgList7')">
  3673. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3674. <i class="el-icon-delete"></i>
  3675. </span>
  3676. </span>
  3677. </div>
  3678. </el-upload>
  3679. </div>
  3680. <div class="aaa">
  3681. <span>2.被保人身份证(反面)</span>
  3682. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList4', 'imgList8', 'D04')
  3683. " :file-list="imgList8" multiple ref="upload8" :class="{ styleB: imgList8.length === 1 }">
  3684. <img v-show="imgList8.length == 0" src="../../../../static/userback.png"
  3685. style="width: 100%; height: 100%" />
  3686. <div slot="file" slot-scope="{ file }">
  3687. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3688. <span class="el-upload-list__item-actions">
  3689. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList4', 'imgList8')">
  3690. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3691. <i class="el-icon-delete"></i>
  3692. </span>
  3693. </span>
  3694. </div>
  3695. </el-upload>
  3696. </div>
  3697. <div class="aaa">
  3698. <span>3.被保人营业执照</span>
  3699. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList4', 'imgList28', 'Y04')
  3700. " :file-list="imgList28" multiple ref="upload8" :class="{ styleB: imgList28.length === 1 }">
  3701. <img v-show="imgList28.length == 0" src="../../../../static/userfront.png"
  3702. style="width: 100%; height: 100%" />
  3703. <div slot="file" slot-scope="{ file }">
  3704. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3705. <span class="el-upload-list__item-actions">
  3706. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList4', 'imgList28')">
  3707. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3708. <i class="el-icon-delete"></i>
  3709. </span>
  3710. </span>
  3711. </div>
  3712. </el-upload>
  3713. </div>
  3714. </div>
  3715. <div class="flex f-wrap" id="relationship">
  3716. <div class="aaa">
  3717. <span>1.关系证明</span>
  3718. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3719. drivingupload(file, 'imageList5', 'imgList11', 'GX00')
  3720. " :file-list="imgList11" multiple ref="upload3" :class="{ styleB: imgList11.length === 1 }">
  3721. <img v-show="imgList11.length == 0" src="../../../../static/userfront.png"
  3722. style="width: 100%; height: 100%" />
  3723. <div slot="file" slot-scope="{ file }">
  3724. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3725. <span class="el-upload-list__item-actions">
  3726. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList5', 'imgList11')">
  3727. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3728. <i class="el-icon-delete"></i>
  3729. </span>
  3730. </span>
  3731. </div>
  3732. </el-upload>
  3733. </div>
  3734. </div>
  3735. <div class="flex f-wrap" id="yanchezhao">
  3736. <div class="aaa">
  3737. <span>1.验车照(车架)</span>
  3738. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3739. drivingupload(file, 'imageList6', 'imgList13', 'C0500')
  3740. " :file-list="imgList13" multiple ref="upload3" :class="{ styleB: imgList13.length === 1 }">
  3741. <img v-show="imgList13.length == 0" src="../../../../static/userfront.png"
  3742. style="width: 100%; height: 100%" />
  3743. <div slot="file" slot-scope="{ file }">
  3744. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3745. <span class="el-upload-list__item-actions">
  3746. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList13')">
  3747. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3748. <i class="el-icon-delete"></i>
  3749. </span>
  3750. </span>
  3751. </div>
  3752. </el-upload>
  3753. </div>
  3754. <div class="aaa">
  3755. <span>2.验车照(后左)</span>
  3756. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3757. drivingupload(file, 'imageList6', 'imgList14', 'C0501')
  3758. " :file-list="imgList14" multiple ref="upload3" :class="{ styleB: imgList14.length === 1 }">
  3759. <img v-show="imgList14.length == 0" src="../../../../static/userfront.png"
  3760. style="width: 100%; height: 100%" />
  3761. <div slot="file" slot-scope="{ file }">
  3762. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3763. <span class="el-upload-list__item-actions">
  3764. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList14')">
  3765. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3766. <i class="el-icon-delete"></i>
  3767. </span>
  3768. </span>
  3769. </div>
  3770. </el-upload>
  3771. </div>
  3772. <div class="aaa">
  3773. <span>3.验车照(后右)</span>
  3774. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3775. drivingupload(file, 'imageList6', 'imgList15', 'C0502')
  3776. " :file-list="imgList15" multiple ref="upload3" :class="{ styleB: imgList15.length === 1 }">
  3777. <img v-show="imgList15.length == 0" src="../../../../static/userfront.png"
  3778. style="width: 100%; height: 100%" />
  3779. <div slot="file" slot-scope="{ file }">
  3780. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3781. <span class="el-upload-list__item-actions">
  3782. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList15')">
  3783. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3784. <i class="el-icon-delete"></i>
  3785. </span>
  3786. </span>
  3787. </div>
  3788. </el-upload>
  3789. </div>
  3790. <div class="aaa">
  3791. <span>4.验车照(前右)</span>
  3792. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3793. drivingupload(file, 'imageList6', 'imgList16', 'C0503')
  3794. " :file-list="imgList16" multiple ref="upload3" :class="{ styleB: imgList16.length === 1 }">
  3795. <img v-show="imgList16.length == 0" src="../../../../static/userfront.png"
  3796. style="width: 100%; height: 100%" />
  3797. <div slot="file" slot-scope="{ file }">
  3798. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3799. <span class="el-upload-list__item-actions">
  3800. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList16')">
  3801. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3802. <i class="el-icon-delete"></i>
  3803. </span>
  3804. </span>
  3805. </div>
  3806. </el-upload>
  3807. </div>
  3808. <div class="aaa">
  3809. <span>5.验车照(前左)</span>
  3810. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3811. drivingupload(file, 'imageList6', 'imgList17', 'C0504')
  3812. " :file-list="imgList17" multiple ref="upload3" :class="{ styleB: imgList17.length === 1 }">
  3813. <img v-show="imgList17.length == 0" src="../../../../static/userfront.png"
  3814. style="width: 100%; height: 100%" />
  3815. <div slot="file" slot-scope="{ file }">
  3816. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3817. <span class="el-upload-list__item-actions">
  3818. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList17')">
  3819. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3820. <i class="el-icon-delete"></i>
  3821. </span>
  3822. </span>
  3823. </div>
  3824. </el-upload>
  3825. </div>
  3826. <div class="aaa">
  3827. <span>6.验车照(正前)</span>
  3828. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3829. drivingupload(file, 'imageList6', 'imgList18', 'C0506')
  3830. " :file-list="imgList18" multiple ref="upload3" :class="{ styleB: imgList18.length === 1 }">
  3831. <img v-show="imgList18.length == 0" src="../../../../static/userfront.png"
  3832. style="width: 100%; height: 100%" />
  3833. <div slot="file" slot-scope="{ file }">
  3834. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3835. <span class="el-upload-list__item-actions">
  3836. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList18')">
  3837. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3838. <i class="el-icon-delete"></i>
  3839. </span>
  3840. </span>
  3841. </div>
  3842. </el-upload>
  3843. </div>
  3844. <div class="aaa">
  3845. <span>7.验车照(正后)</span>
  3846. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3847. drivingupload(file, 'imageList6', 'imgList19', 'C0507')
  3848. " :file-list="imgList19" multiple ref="upload3" :class="{ styleB: imgList19.length === 1 }">
  3849. <img v-show="imgList19.length == 0" src="../../../../static/userfront.png"
  3850. style="width: 100%; height: 100%" />
  3851. <div slot="file" slot-scope="{ file }">
  3852. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3853. <span class="el-upload-list__item-actions">
  3854. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList19')">
  3855. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3856. <i class="el-icon-delete"></i>
  3857. </span>
  3858. </span>
  3859. </div>
  3860. </el-upload>
  3861. </div>
  3862. <div class="aaa">
  3863. <span>8.验车照(人车合影)</span>
  3864. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3865. drivingupload(file, 'imageList6', 'imgList20', 'C0505')
  3866. " :file-list="imgList20" multiple ref="upload3" :class="{ styleB: imgList20.length === 1 }">
  3867. <img v-show="imgList20.length == 0" src="../../../../static/userfront.png"
  3868. style="width: 100%; height: 100%" />
  3869. <div slot="file" slot-scope="{ file }">
  3870. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3871. <span class="el-upload-list__item-actions">
  3872. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList20')">
  3873. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3874. <i class="el-icon-delete"></i>
  3875. </span>
  3876. </span>
  3877. </div>
  3878. </el-upload>
  3879. </div>
  3880. <div class="aaa">
  3881. <span>9.验车照(地标合影)</span>
  3882. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3883. drivingupload(file, 'imageList6', 'imgList21', 'C0508')
  3884. " :file-list="imgList21" multiple ref="upload3" :class="{ styleB: imgList21.length === 1 }">
  3885. <img v-show="imgList21.length == 0" src="../../../../static/userfront.png"
  3886. style="width: 100%; height: 100%" />
  3887. <div slot="file" slot-scope="{ file }">
  3888. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3889. <span class="el-upload-list__item-actions">
  3890. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList21')">
  3891. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3892. <i class="el-icon-delete"></i>
  3893. </span>
  3894. </span>
  3895. </div>
  3896. </el-upload>
  3897. </div>
  3898. <div class="aaa">
  3899. <span>10.验车照(工作台)</span>
  3900. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3901. drivingupload(file, 'imageList6', 'imgList22', 'C0509')
  3902. " :file-list="imgList22" multiple ref="upload3" :class="{ styleB: imgList22.length === 1 }">
  3903. <img v-show="imgList22.length == 0" src="../../../../static/userfront.png"
  3904. style="width: 100%; height: 100%" />
  3905. <div slot="file" slot-scope="{ file }">
  3906. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3907. <span class="el-upload-list__item-actions">
  3908. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList22')">
  3909. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3910. <i class="el-icon-delete"></i>
  3911. </span>
  3912. </span>
  3913. </div>
  3914. </el-upload>
  3915. </div>
  3916. <div class="aaa">
  3917. <span>11.验车照(天窗)</span>
  3918. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3919. drivingupload(file, 'imageList6', 'imgList23', 'C0510')
  3920. " :file-list="imgList23" multiple ref="upload3" :class="{ styleB: imgList23.length === 1 }">
  3921. <img v-show="imgList23.length == 0" src="../../../../static/userfront.png"
  3922. style="width: 100%; height: 100%" />
  3923. <div slot="file" slot-scope="{ file }">
  3924. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3925. <span class="el-upload-list__item-actions">
  3926. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList23')">
  3927. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3928. <i class="el-icon-delete"></i>
  3929. </span>
  3930. </span>
  3931. </div>
  3932. </el-upload>
  3933. </div>
  3934. </div>
  3935. <div class="flex f-wrap" id="snbaodan">
  3936. <div class="aaa">
  3937. <span>1.上年商业险保单</span>
  3938. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3939. drivingupload(file, 'imageList6', 'imgList24', 'LAST_INSURANCE_POLICY')
  3940. " :file-list="imgList24" multiple ref="upload3" :class="{ styleB: imgList24.length === 1 }">
  3941. <img v-show="imgList24.length == 0" src="../../../../static/userfront.png"
  3942. style="width: 100%; height: 100%" />
  3943. <div slot="file" slot-scope="{ file }">
  3944. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3945. <span class="el-upload-list__item-actions">
  3946. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList24')">
  3947. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3948. <i class="el-icon-delete"></i>
  3949. </span>
  3950. </span>
  3951. </div>
  3952. </el-upload>
  3953. </div>
  3954. </div>
  3955. <div class="flex f-wrap" id="shouquanshu">
  3956. <div class="aaa">
  3957. <span>1.授权书</span>
  3958. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3959. drivingupload(file, 'imageList6', 'imgList25', 'SQ00')
  3960. " :file-list="imgList25" multiple ref="upload3" :class="{ styleB: imgList25.length === 1 }">
  3961. <img v-show="imgList25.length == 0" src="../../../../static/userfront.png"
  3962. style="width: 100%; height: 100%" />
  3963. <div slot="file" slot-scope="{ file }">
  3964. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3965. <span class="el-upload-list__item-actions">
  3966. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList25')">
  3967. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3968. <i class="el-icon-delete"></i>
  3969. </span>
  3970. </span>
  3971. </div>
  3972. </el-upload>
  3973. </div>
  3974. </div>
  3975. </el-col>
  3976. </el-row>
  3977. <span slot="footer" class="dialog-footer">
  3978. <el-button size="small" @click="imageUploaddialogVisible = false">取 消</el-button>
  3979. <el-button size="small" type="primary" @click="uploadinformation">上传资料</el-button>
  3980. </span>
  3981. </el-dialog>
  3982. <!-- 调整险种弹窗 -->
  3983. <el-dialog title="调整险种" :visible.sync="typeDialogVisible" width="60%" top="5vh" :before-close="handleCloseType">
  3984. <div class="typedialog-style addyiwai typedialog-style1" v-if="productId != '034001' && productId != '034002'">
  3985. <div class="typedialog-title"><i class="el-icon-circle-check"
  3986. style="color: #D42426; font-size: 20px; margin-right: 10px;"></i>交通事故强制责任险:</div>
  3987. <el-table :data="typeJqTable" border style="width: 100%" stripe header-cell-class-name="table-header">
  3988. <el-table-column prop="date" label="保障范围" align="center"></el-table-column>
  3989. <el-table-column prop="date1" label="保额(元)" align="center"></el-table-column>
  3990. <!-- <el-table-column prop="date2" label="总计" align="center"></el-table-column> -->
  3991. </el-table>
  3992. </div>
  3993. <div class="typedialog-style addyiwai typedialog-style2" v-if="productId != '0330'">
  3994. <!-- 商业险 -->
  3995. <div class="typedialog-title"><i class="el-icon-circle-check"
  3996. style="color: #D42426; font-size: 20px; margin-right: 10px;"></i>商业险详情:</div>
  3997. <div class="flex f-c">
  3998. <div class="flex j-s a-c more-title back">
  3999. <div style="width: 550px; padding-left: 100px" class="flex j-s a-c">
  4000. <span>险别</span>
  4001. <span>保额(元)</span>
  4002. </div>
  4003. </div>
  4004. <div class="a-c back" v-for="(insureitem, insureindex) in typeDialogData.kinds" :key="insureindex">
  4005. <el-row style="background: #FFF;" type="flex" align="middle">
  4006. <el-col :span="10" class="more-data-left">
  4007. <div class="zhuxian" v-if="insureitem.grouping == 'main'" style="background: #Y0282A">主险</div>
  4008. <div class="zhuxian" v-if="insureitem.grouping == 'additional'">附加险</div>
  4009. <div class="zhuxian" v-if="insureitem.grouping == 'service'">增值服务</div>
  4010. <span>
  4011. <el-checkbox v-model="insureitem.checked" :disabled="insureitem.Required">
  4012. <!-- <span :class="insureitem.grouping != 'additional' ? 'opacity1' : 'opacity0'">{{ insureitem.kindName }}</span> -->
  4013. <span class="opacity1">{{ insureitem.kindName }}</span>
  4014. <el-input v-show="insureitem.kindCode == 'D4' ||
  4015. insureitem.kindCode == 'MJ4' ||
  4016. insureitem.kindCode == 'SY_FJ_YBW2'
  4017. " v-model="sumseatCount" style="width: 40px; margin: 0 5px" size="small" placeholder
  4018. disabled></el-input>
  4019. <span v-show="insureitem.kindCode == 'D4' ||
  4020. insureitem.kindCode == 'MJ4' ||
  4021. insureitem.kindCode == 'SY_FJ_YBW2'
  4022. ">座</span>
  4023. </el-checkbox>
  4024. </span>
  4025. </el-col>
  4026. <el-col :span="14" class="more-data-right">
  4027. <el-select v-if="insureitem.amtList" filterable v-model="insureitem.amount" placeholder="请选择"
  4028. @change="insureitemChange($event, insureitem)" size="small" style="width: 300px">
  4029. <el-option :label="item.label" :value="item.value" v-for="(item, index) in insureitem.amtList"
  4030. :key="index"></el-option>
  4031. </el-select>
  4032. <span v-else>
  4033. <el-input-number size="small" style="width: 280px; margin-right: 10px" v-model="insureitem.amount"
  4034. :min="0"></el-input-number>次
  4035. </span>
  4036. </el-col>
  4037. </el-row>
  4038. </div>
  4039. </div>
  4040. </div>
  4041. <div class="typedialog-style addyiwai typedialog-style3">
  4042. <!-- <div class="typedialog-title"><i class="el-icon-circle-check" style="color: #D42426; font-size: 20px; margin-right: 10px;"></i>驾意险详情:</div> -->
  4043. <div class="typedialog-style">
  4044. <div class="flex a-c" style="margin-bottom: 20px;">
  4045. <div class="typedialog-title addyiwai-title"><i class="el-icon-circle-check"
  4046. style="color: #D42426; font-size: 20px; margin-right: 10px;"></i>驾意险方案配置:</div>
  4047. <div v-if="false" class="addyiwai-title-btn">添加配置</div>
  4048. </div>
  4049. <div v-if="true">
  4050. <div v-for="(listItem, listIndex) in jiayiDialogData.drivingTypeList" :key="listIndex"
  4051. v-show="listIndex == 0">
  4052. <el-checkbox-group v-model="checkList" @change="handleChangeJiayi(listItem, listIndex)">
  4053. <el-checkbox v-for="(item, index) in listItem.children" :key="index" :label="item">{{ item.typeName
  4054. }}</el-checkbox>
  4055. </el-checkbox-group>
  4056. <div v-for="(item, index) in checkList" :key="index" style="margin-bottom: 20px;">
  4057. <div v-if="totalCompanyList[typeDialogIndex].cnName == 'zijin'">
  4058. <el-row style="margin-bottom: 20px;">
  4059. <el-col :span="10">
  4060. {{ item.typeName }}
  4061. <el-select v-if="item.detail" style="width: 300px;" v-model="item.selectList" clearable multiple
  4062. @change="handleChangeSelect(index)" size="small" placeholder="请选择">
  4063. <el-option v-for="(i, ind) in item.detail" :key="ind" :label="i.alias" :value="i.alias">
  4064. </el-option>
  4065. </el-select>
  4066. </el-col>
  4067. </el-row>
  4068. <div v-for="(dataItem, dataIndex) in item.tableData" :key="dataIndex">
  4069. <el-col :span="6">
  4070. 份数
  4071. <el-input v-model="dataItem.quantity" style="width: 120px;" size="small"
  4072. @input="(e) => { changeInput(e, listIndex, index, 'minus', item.tableData.minQuantity) }">
  4073. <template slot="prepend"><i class="el-icon-minus"
  4074. @click="numberChange(listIndex, index, 'minus', dataItem.minQuantity, dataIndex)"></i></template>
  4075. <template slot="append"><i class="el-icon-plus"
  4076. @click="numberChange(listIndex, index, 'plus', dataItem.minQuantity, dataIndex)"></i></template>
  4077. </el-input>
  4078. </el-col>
  4079. <el-col v-if="item.tableData" :span="4" class="flex a-c">保费:{{ Number(dataItem.sumPremium) *
  4080. dataItem.quantity }}元</el-col>
  4081. </div>
  4082. <el-table v-if="item.tableData && item.tableData.length" :data="item.tableData" border
  4083. style="width: 100%; margin-top: 20px;" stripe header-cell-class-name="table-header">
  4084. <el-table-column prop="name" label="保险责任" align="center">
  4085. <template slot-scope="scope">
  4086. <span>{{ scope.row.insDrivingIntentionInsuranceSon[0].name }}</span>
  4087. </template>
  4088. </el-table-column>
  4089. <el-table-column prop="amount" label="保险金额" align="center">
  4090. <template slot-scope="scope">
  4091. <span>{{ scope.row.insDrivingIntentionInsuranceSon[0].amount }}</span>
  4092. </template>
  4093. </el-table-column>
  4094. <el-table-column prop="premium" label="保费(元)" align="center">
  4095. <template slot-scope="scope">
  4096. <span>{{ scope.row.insDrivingIntentionInsuranceSon[0].premium }}</span>
  4097. </template>
  4098. </el-table-column>
  4099. <el-table-column prop="quantity" label="份数" align="center"></el-table-column>
  4100. <el-table-column prop="sumPremium" label="总保费" align="center"></el-table-column>
  4101. </el-table>
  4102. </div>
  4103. <div v-else>
  4104. <!-- totalCompanyList[typeDialogIndex].cnName == 'guoRen' || totalCompanyList[typeDialogIndex].cnName == 'ansheng' || totalCompanyList[typeDialogIndex].cnName == 'dajia' -->
  4105. <el-row v-if="false">
  4106. <el-col :span="8">
  4107. {{ item.typeName }}
  4108. <el-select v-model="item.select" style="width: 400px;" clearable
  4109. @change="handleChangeSelectGuoren(index)" size="small" placeholder="请选择" v-if="item.detail">
  4110. <el-option v-for="(i, ind) in item.detail" :key="ind" :label="i.alias" :value="i.alias">
  4111. </el-option>
  4112. </el-select>
  4113. </el-col>
  4114. <el-col :span="5">
  4115. <el-select v-model="item.select1" clearable @change="handleChangeSelect(index)" size="small"
  4116. placeholder="请选择" v-if="item.tableData1">
  4117. <el-option v-for="(i, ind) in item.tableData1" :key="ind" :label="i.alias" :value="i.alias">
  4118. </el-option>
  4119. </el-select>
  4120. </el-col>
  4121. <el-col :span="6" v-if="item.tableData">
  4122. 份数
  4123. <!-- <el-input-number v-model="item.tableData.quantity" :step="1" :min="1" :max="10" @change="numberChange(listIndex, index)" size="small"></el-input-number> -->
  4124. <el-input v-model="item.tableData.quantity" style="width: 120px;" size="small"
  4125. @input="(e) => { changeInput(e, listIndex, index, 'minus', item.tableData.minQuantity) }">
  4126. <template slot="prepend"><i class="el-icon-minus"
  4127. @click="numberChange(listIndex, index, 'minus', item.tableData.minQuantity)"></i></template>
  4128. <template slot="append"><i class="el-icon-plus"
  4129. @click="numberChange(listIndex, index, 'plus', item.tableData.minQuantity)"></i></template>
  4130. </el-input>
  4131. </el-col>
  4132. <el-col v-if="item.tableData" :span="4">保费:{{ Number(item.tableData.sumPremium) *
  4133. item.tableData.quantity }}元</el-col>
  4134. <!-- <el-col :span="1"><i class="el-icon-delete"></i></el-col> -->
  4135. </el-row>
  4136. <el-row v-else>
  4137. <el-col :span="12">
  4138. {{ item.typeName }}
  4139. <el-select v-model="item.select" style="width: 400px;" clearable
  4140. @change="handleChangeSelect(index)" size="small" placeholder="请选择" v-if="item.detail">
  4141. <el-option v-for="(i, ind) in item.detail" :key="ind" :label="i.alias" :value="i.alias">
  4142. </el-option>
  4143. </el-select>
  4144. </el-col>
  4145. <el-col :span="6" v-if="item.tableData">
  4146. 份数
  4147. <!-- <el-input-number v-model="item.tableData.quantity" :step="1" :min="1" :max="10" @change="numberChange(listIndex, index)" label="描述文字" size="small"></el-input-number> -->
  4148. <el-input v-model="item.tableData.quantity" style="width: 120px;" size="small"
  4149. @input="(e) => { changeInput(e, listIndex, index, 'minus', item.tableData.minQuantity) }">
  4150. <template slot="prepend"><i class="el-icon-minus"
  4151. @click="numberChange(listIndex, index, 'minus', item.tableData.minQuantity)"></i></template>
  4152. <template slot="append"><i class="el-icon-plus"
  4153. @click="numberChange(listIndex, index, 'plus', item.tableData.minQuantity)"></i></template>
  4154. </el-input>
  4155. </el-col>
  4156. <el-col v-if="item.tableData" :span="4" class="flex a-c">保费:{{ Number(item.tableData.sumPremium) *
  4157. item.tableData.quantity }}元</el-col>
  4158. <!-- <el-col :span="1"><i class="el-icon-delete"></i></el-col> -->
  4159. </el-row>
  4160. <el-table v-if="item.tableData" :data="item.tableData.insDrivingIntentionInsuranceSon" border
  4161. style="width: 100%; margin-top: 20px;" stripe header-cell-class-name="table-header">
  4162. <el-table-column prop="name" label="保险责任" align="center"></el-table-column>
  4163. <el-table-column prop="amount" label="保险金额" align="center"></el-table-column>
  4164. <el-table-column prop="premium" label="保费(元)" align="center"></el-table-column>
  4165. </el-table>
  4166. </div>
  4167. </div>
  4168. </div>
  4169. </div>
  4170. <div v-else>
  4171. <div v-for="(item, index) in 3" :key="index" style="margin-bottom: 20px;">
  4172. <el-row style="margin-bottom: 20px;">
  4173. <el-col :span="10">
  4174. 驾意选择
  4175. <!-- v-model="value" -->
  4176. <el-select size="small" clearable placeholder="请选择">
  4177. <el-option v-for="item in 3" :key="item.value" :label="22" :value="22">
  4178. </el-option>
  4179. </el-select>
  4180. </el-col>
  4181. <el-col :span="9">
  4182. 份数
  4183. <el-input-number label="描述文字" size="small"></el-input-number>
  4184. </el-col>
  4185. <el-col :span="4">保费:15元</el-col>
  4186. <el-col :span="1"><i class="el-icon-delete"></i></el-col>
  4187. </el-row>
  4188. <el-table :data="item.table" border style="width: 100%" stripe header-cell-class-name="table-header">
  4189. <el-table-column prop="date" label="保险责任" align="center"></el-table-column>
  4190. <el-table-column prop="date1" label="保险金额" align="center"></el-table-column>
  4191. <el-table-column prop="date2" label="保费(元)" align="center"></el-table-column>
  4192. </el-table>
  4193. </div>
  4194. </div>
  4195. </div>
  4196. </div>
  4197. <span slot="footer" class="dialog-footer">
  4198. <el-button size="small" @click="handleCloseType">取 消</el-button>
  4199. <el-button size="small" type="primary" @click="subTypeDialog">确 定</el-button>
  4200. </span>
  4201. </el-dialog>
  4202. <!-- 驾意险 -->
  4203. <el-dialog title="驾意险" :visible.sync="addYiwaiDialogVisible" width="60%" top="5vh"
  4204. :before-close="handleCloseAddYiwai" class="addyiwai">
  4205. <div class="typedialog-style">
  4206. <el-card>
  4207. <div class="flex a-c" style="margin-bottom: 20px;">
  4208. <div class="addyiwai-title">驾意险方案配置</div>
  4209. <div v-if="false" class="addyiwai-title-btn">添加配置</div>
  4210. </div>
  4211. <div v-if="true">
  4212. <div v-for="(listItem, listIndex) in jiayiDialogData.drivingTypeList" :key="listIndex">
  4213. <el-checkbox-group v-model="checkList" @change="handleChangeJiayi(listItem, listIndex)">
  4214. <el-checkbox v-for="(item, index) in listItem.children" :key="index" :label="item">{{ item.typeName
  4215. }}</el-checkbox>
  4216. </el-checkbox-group>
  4217. <div v-for="(item, index) in checkList" :key="index" style="margin-bottom: 20px;">
  4218. <div v-if="totalCompanyList[typeDialogIndex].cnName == 'zijin'">
  4219. <el-row style="margin-bottom: 20px;">
  4220. <el-col :span="10">
  4221. {{ item.typeName }}
  4222. <el-select v-if="item.detail" v-model="item.selectList" clearable multiple
  4223. @change="handleChangeSelect(index)" size="small" placeholder="请选择">
  4224. <el-option v-for="(i, ind) in item.detail" :key="ind" :label="i.projectName"
  4225. :value="i.projectName">
  4226. </el-option>
  4227. </el-select>
  4228. </el-col>
  4229. </el-row>
  4230. <el-table v-if="item.tableData" :data="item.tableData" border style="width: 100%; margin-top: 20px;"
  4231. stripe header-cell-class-name="table-header">
  4232. <el-table-column prop="name" label="保险责任" align="center">
  4233. <template slot-scope="scope">
  4234. <span>{{ scope.row.insDrivingIntentionInsuranceSon[0].name }}</span>
  4235. </template>
  4236. </el-table-column>
  4237. <el-table-column prop="amount" label="保险金额" align="center">
  4238. <template slot-scope="scope">
  4239. <span>{{ scope.row.insDrivingIntentionInsuranceSon[0].amount }}</span>
  4240. </template>
  4241. </el-table-column>
  4242. <el-table-column prop="premium" label="保费(元)" align="center">
  4243. <template slot-scope="scope">
  4244. <span>{{ scope.row.insDrivingIntentionInsuranceSon[0].premium }}</span>
  4245. </template>
  4246. </el-table-column>
  4247. <el-table-column prop="quantity" label="份数" align="center"></el-table-column>
  4248. <el-table-column prop="sumPremium" label="总保费" align="center"></el-table-column>
  4249. </el-table>
  4250. </div>
  4251. <div v-else>
  4252. <!-- totalCompanyList[typeDialogIndex].cnName == 'guoRen' || totalCompanyList[typeDialogIndex].cnName == 'ansheng' -->
  4253. <el-row v-if="false">
  4254. <el-col :span="8">
  4255. {{ item.typeName }}
  4256. <el-select v-model="item.select" clearable @change="handleChangeSelectGuoren(index)" size="small"
  4257. placeholder="请选择" v-if="item.detail">
  4258. <el-option v-for="(i, ind) in item.detail" :key="ind" :label="i.alias" :value="i.alias">
  4259. </el-option>
  4260. </el-select>
  4261. </el-col>
  4262. <el-col :span="5">
  4263. <el-select v-model="item.select1" clearable @change="handleChangeSelect(index)" size="small"
  4264. placeholder="请选择" v-if="item.tableData1">
  4265. <el-option v-for="(i, ind) in item.tableData1" :key="ind" :label="i.alias" :value="i.alias">
  4266. </el-option>
  4267. </el-select>
  4268. </el-col>
  4269. <el-col :span="6" v-if="item.tableData">
  4270. 份数
  4271. <!-- <el-input-number v-model="item.tableData.quantity" :step="1" :min="1" :max="10" @change="numberChange(listIndex, index)" size="small"></el-input-number> -->
  4272. <el-input v-model="item.tableData.quantity" style="width: 120px;" size="small"
  4273. @input="(e) => { changeInput(e, listIndex, index, 'minus', item.tableData.minQuantity) }">
  4274. <template slot="prepend"><i class="el-icon-minus"
  4275. @click="numberChange(listIndex, index, 'minus', item.tableData.minQuantity)"></i></template>
  4276. <template slot="append"><i class="el-icon-plus"
  4277. @click="numberChange(listIndex, index, 'plus', item.tableData.minQuantity)"></i></template>
  4278. </el-input>
  4279. </el-col>
  4280. <el-col v-if="item.tableData" :span="4">保费:{{ Number(item.tableData.sumPremium) *
  4281. item.tableData.quantity }}元</el-col>
  4282. <!-- <el-col :span="1"><i class="el-icon-delete"></i></el-col> -->
  4283. </el-row>
  4284. <el-row v-else>
  4285. <el-col :span="10">
  4286. {{ item.typeName }}
  4287. <el-select v-model="item.select" clearable @change="handleChangeSelect(index)" size="small"
  4288. placeholder="请选择" v-if="item.detail">
  4289. <el-option v-for="(i, ind) in item.detail" :key="ind" :label="i.projectName"
  4290. :value="i.projectName">
  4291. </el-option>
  4292. </el-select>
  4293. </el-col>
  4294. <el-col :span="9" v-if="item.tableData">
  4295. 份数
  4296. <!-- <el-input-number v-model="item.tableData.quantity" :step="1" :min="1" :max="10" @change="numberChange(listIndex, index)" label="描述文字" size="small"></el-input-number> -->
  4297. <el-input v-model="item.tableData.quantity" style="width: 120px;" size="small"
  4298. @input="(e) => { changeInput(e, listIndex, index, 'minus', item.tableData.minQuantity) }">
  4299. <template slot="prepend"><i class="el-icon-minus"
  4300. @click="numberChange(listIndex, index, 'minus', item.tableData.minQuantity)"></i></template>
  4301. <template slot="append"><i class="el-icon-plus"
  4302. @click="numberChange(listIndex, index, 'plus', item.tableData.minQuantity)"></i></template>
  4303. </el-input>
  4304. </el-col>
  4305. <el-col v-if="item.tableData" :span="4">保费:{{ Number(item.tableData.sumPremium) *
  4306. item.tableData.quantity }}元</el-col>
  4307. <!-- <el-col :span="1"><i class="el-icon-delete"></i></el-col> -->
  4308. </el-row>
  4309. <el-table v-if="item.tableData" :data="item.tableData.insDrivingIntentionInsuranceSon" border
  4310. style="width: 100%; margin-top: 20px;" stripe header-cell-class-name="table-header">
  4311. <el-table-column prop="name" label="保险责任" align="center"></el-table-column>
  4312. <el-table-column prop="amount" label="保险金额" align="center"></el-table-column>
  4313. <el-table-column prop="premium" label="保费(元)" align="center"></el-table-column>
  4314. </el-table>
  4315. </div>
  4316. </div>
  4317. </div>
  4318. </div>
  4319. <div v-else>
  4320. <div v-for="(item, index) in 3" :key="index" style="margin-bottom: 20px;">
  4321. <el-row style="margin-bottom: 20px;">
  4322. <el-col :span="10">
  4323. 驾意选择
  4324. <!-- v-model="value" -->
  4325. <el-select size="small" clearable placeholder="请选择">
  4326. <el-option v-for="item in 3" :key="item.value" :label="22" :value="22">
  4327. </el-option>
  4328. </el-select>
  4329. </el-col>
  4330. <el-col :span="9">
  4331. 份数
  4332. <el-input-number label="描述文字" size="small"></el-input-number>
  4333. </el-col>
  4334. <el-col :span="4">保费:15元</el-col>
  4335. <el-col :span="1"><i class="el-icon-delete"></i></el-col>
  4336. </el-row>
  4337. <el-table :data="item.table" border style="width: 100%" stripe header-cell-class-name="table-header">
  4338. <el-table-column prop="date" label="保险责任" align="center"></el-table-column>
  4339. <el-table-column prop="date1" label="保险金额" align="center"></el-table-column>
  4340. <el-table-column prop="date2" label="保费(元)" align="center"></el-table-column>
  4341. </el-table>
  4342. </div>
  4343. </div>
  4344. </el-card>
  4345. </div>
  4346. <span slot="footer" class="dialog-footer">
  4347. <el-button size="small" @click="handleCloseAddYiwai">取 消</el-button>
  4348. <el-button size="small" type="primary" @click="handleAddYiWai">确 定</el-button>
  4349. </span>
  4350. </el-dialog>
  4351. <!-- 详情 -->
  4352. <el-dialog :title="detailJiaYiTitle" :visible.sync="showDetailJiaYiVisible" width="60%" top="5vh"
  4353. :before-close="handleCloseShowDetailJiaYi">
  4354. <div class="typedialog-style addyiwai typedialog-style1"
  4355. v-if="productId != '034001' && productId != '034002' && detailJiaYiTitle == '查看详情'">
  4356. <div class="typedialog-title"><i class="el-icon-circle-check"
  4357. style="color: #D42426; font-size: 20px; margin-right: 10px;"></i>交通事故强制责任险:</div>
  4358. <el-table :data="typeJqTable" border style="width: 100%" stripe header-cell-class-name="table-header">
  4359. <el-table-column prop="date" label="保障范围" align="center"></el-table-column>
  4360. <el-table-column prop="date1" label="保额(元)" align="center"></el-table-column>
  4361. </el-table>
  4362. </div>
  4363. <div class="typedialog-style typedialog-style2" v-if="productId != '0330' && detailJiaYiTitle == '查看详情'">
  4364. <div class="typedialog-title"><i class="el-icon-circle-check"
  4365. style="color: #D42426; font-size: 20px; margin-right: 10px;"></i>商业险详情:</div>
  4366. <div class="a-c back">
  4367. <el-row style="background: #F7F7F9;">
  4368. <el-col :span="10" class="more-data-left">险别</el-col>
  4369. <el-col :span="14" class="more-data-right">保额(元)</el-col>
  4370. </el-row>
  4371. <el-row style="background: #FFF;" v-for="(insureitem, insureindex) in typeDialogData.shangyeList"
  4372. :key="insureindex">
  4373. <el-col :span="10" class="more-data-left">
  4374. <div class="zhuxian" v-if="insureitem.grouping == 'main'" style="background: #Y0282A">主险</div>
  4375. <div class="zhuxian" v-if="insureitem.grouping == 'additional'">附加险</div>
  4376. <div class="zhuxian" v-if="insureitem.grouping == 'service'">增值服务</div>
  4377. <span>
  4378. <span class="opacity1">{{ insureitem.kindName }}</span>
  4379. <el-input v-show="insureitem.kindCode == 'D4' ||
  4380. insureitem.kindCode == 'MJ4' ||
  4381. insureitem.kindCode == 'SY_FJ_YBW2'
  4382. " v-model="sumseatCount" style="width: 40px; margin: 0 5px" size="mini" placeholder
  4383. disabled></el-input>
  4384. <span v-show="insureitem.kindCode == 'D4' ||
  4385. insureitem.kindCode == 'MJ4' ||
  4386. insureitem.kindCode == 'SY_FJ_YBW2'
  4387. ">座</span>
  4388. </span>
  4389. </el-col>
  4390. <el-col :span="14" class="more-data-right">
  4391. {{ toWan(insureitem.amount) }}
  4392. </el-col>
  4393. </el-row>
  4394. <div v-show="typeDialogData && typeDialogData.shangyeList && !typeDialogData.shangyeList.length">暂无</div>
  4395. </div>
  4396. </div>
  4397. <div class="typedialog-style typedialog-style3" v-if="showDetailtable && showDetailtable.length">
  4398. <div class="typedialog-title" style="display: flex; justify-content: space-between;">
  4399. <div><i class="el-icon-circle-check" style="color: #D42426; font-size: 20px; margin-right: 10px;"></i>驾意险详情:
  4400. </div>
  4401. <div class="typedialog-title">( 驾驶人意外单份保额 )如下</div>
  4402. </div>
  4403. <el-table v-for="(item, index) in showDetailtable" :key="index" :data="item" border style="width: 100%" stripe
  4404. header-cell-class-name="table-header">
  4405. <el-table-column prop="name" label="保险责任名称" align="center"></el-table-column>
  4406. <el-table-column prop="amount" label="保额(元)" align="center"></el-table-column>
  4407. <el-table-column prop="premium" label="保费(元)" align="center"></el-table-column>
  4408. </el-table>
  4409. <div v-if="showDetailtable && !showDetailtable.length">暂无</div>
  4410. <div class="typedialog-title" v-if="detailJiaYiTitle == '查看详情'">已选份数:</div>
  4411. <div class="jiayi-style" v-if="detailJiaYiTitle == '查看详情'">
  4412. <el-row v-for="(item, index) in typeDialogData.drivingList" :key="index">
  4413. <el-col :span="10">
  4414. <div class="jiayi-style-title">产品名称</div>
  4415. <div class="jiayi-style-line">{{ item.alias || item.projectName }}</div>
  4416. </el-col>
  4417. <!-- <el-col :span="6">
  4418. <div class="jiayi-style-title">座位数</div>
  4419. <div class="jiayi-style-line">{{ }}</div>
  4420. </el-col> -->
  4421. <el-col :span="6">
  4422. <div class="jiayi-style-title">份数</div>
  4423. <div class="jiayi-style-line">{{ item.quantity }}</div>
  4424. </el-col>
  4425. <el-col :span="3">
  4426. <div class="jiayi-style-title">每份</div>
  4427. <div class="jiayi-style-line">{{ item.sumPremium }}</div>
  4428. </el-col>
  4429. <el-col :span="3">
  4430. <div class="jiayi-style-title">合计</div>
  4431. <div class="jiayi-style-line">{{ Number(item.sumPremium) * item.quantity }}</div>
  4432. </el-col>
  4433. </el-row>
  4434. <div v-if="typeDialogData && typeDialogData.drivingList && !typeDialogData.drivingList.length">暂无</div>
  4435. </div>
  4436. </div>
  4437. <span slot="footer" class="dialog-footer">
  4438. <!-- <el-button size="small" @click="handleCloseShowDetailJiaYi">取 消</el-button> -->
  4439. <el-button size="small" type="primary" @click="handleCloseShowDetailJiaYi">确 定</el-button>
  4440. </span>
  4441. </el-dialog>
  4442. <!-- 驾意险详情 -->
  4443. <el-dialog :title="detailJiaYiTitle" :visible.sync="showDetailJiaYiVisible1" width="60%" top="5vh" v-dialogDrag
  4444. :before-close="handleCloseShowDetailJiaYi">
  4445. <div class="typedialog-style typedialog-style3" v-if="showDetailtable && showDetailtable.length">
  4446. <div class="typedialog-title" style="display: flex; justify-content: space-between;">
  4447. <div><i class="el-icon-circle-check" style="color: #D42426; font-size: 20px; margin-right: 10px;"></i>驾意险详情:
  4448. </div>
  4449. <div class="typedialog-title">( 驾驶人意外单份保额 )如下</div>
  4450. </div>
  4451. <el-table v-for="(item, index) in showDetailtable" :key="index" :data="item" border style="width: 100%" stripe
  4452. header-cell-class-name="table-header">
  4453. <el-table-column prop="name" label="保险责任名称" align="center"></el-table-column>
  4454. <el-table-column prop="amount" label="保额(元)" align="center"></el-table-column>
  4455. <el-table-column prop="premium" label="保费(元)" align="center"></el-table-column>
  4456. </el-table>
  4457. <div v-if="showDetailtable && !showDetailtable.length">暂无</div>
  4458. </div>
  4459. <span slot="footer" class="dialog-footer">
  4460. <!-- <el-button size="small" @click="handleCloseShowDetailJiaYi">取 消</el-button> -->
  4461. <el-button size="small" type="primary" @click="handleCloseShowDetailJiaYi">确 定</el-button>
  4462. </span>
  4463. </el-dialog>
  4464. <!-- 选择特约 showTeYueVisible -->
  4465. <el-dialog title="选择特约" :visible.sync="showTeYueVisible" width="40%" top="5vh" :before-close="handleCloseTeYue"
  4466. class="teYuedialog-style">
  4467. <div>
  4468. <!-- <el-input placeholder="请输入内容" style="margin-bottom: 20px;">
  4469. <el-button type="primary" slot="append" icon="el-icon-search"></el-button>
  4470. </el-input> -->
  4471. <el-table :data="teYueTable" style="width: 100%" stripe header-cell-class-name="table-header">
  4472. <el-table-column type="selection" width="55"></el-table-column>
  4473. <el-table-column type="expand">
  4474. <!-- <template slot-scope="props">
  4475. <div class="table-title">特约内容</div>
  4476. <div class="table-title">保险公司温馨提示:根据车船税征收管理规定,次年生效交强险业务如本年提前续保,请您仍须在下一年度年底前完成跨年提前续保并缴纳车船税,否则会产生车船税滞纳金。</div>
  4477. </template> -->
  4478. </el-table-column>
  4479. <el-table-column prop="date" label="特约名称" align="center">
  4480. </el-table-column>
  4481. <el-table-column prop="date1" label="特约险种" align="center"></el-table-column>
  4482. <el-table-column prop="date2" label="特约代码" align="center"></el-table-column>
  4483. </el-table>
  4484. </div>
  4485. <span slot="footer" class="dialog-footer">
  4486. <span>已选择了 <b style="color: #F96646;"> 1</b> 条特约</span>
  4487. <span style="flex: 1;"></span>
  4488. <el-button size="small" @click="showTeYueVisible = false">取 消</el-button>
  4489. <el-button size="small" type="primary" @click="showTeYueVisible = false">确 定</el-button>
  4490. </span>
  4491. </el-dialog>
  4492. <floatingBar />
  4493. <!-- 生成验车二维码 -->
  4494. <el-dialog :visible.sync="validateCarCodeShow" width="30%" title="验车二维码">
  4495. <div class="QRCode" ref="myQrcode"></div>
  4496. </el-dialog>
  4497. <!-- 客户权益 -->
  4498. <el-dialog :visible.sync="interestShow" width="50%" title="选择权益">
  4499. <div style="display: flex; align-items: center; justify-content: flex-start">
  4500. <span>选择权益接收人</span>
  4501. <el-select size="small" v-model="interestPeople" style="width: 200px; margin-left: 10px;">
  4502. <el-option :label="item.label" :value="item.value" v-for="(item, index) in acceptOptions" :key="index"></el-option>
  4503. </el-select>
  4504. </div>
  4505. <el-row class="interestList" :gutter="10">
  4506. <el-col :span="4" style="border-right: 1px solid #ccc">
  4507. <div class="interestItem" :class="{'active': interestIndex === index}" v-for="(item, index) in interestList" @click="handleChangeInterestIndex(item, index)">
  4508. <span>{{ item.equityPackageName }}</span>
  4509. <i v-if="interestIndex === index" class="el-icon-success" style="color: #409EFF"></i>
  4510. </div>
  4511. </el-col>
  4512. <el-col :span="20">
  4513. <el-table
  4514. :data="interestTableData"
  4515. >
  4516. <el-table-column label="积分" prop="integral"></el-table-column>
  4517. <el-table-column label="权益名称" prop="rightsName"></el-table-column>
  4518. <el-table-column label="数量" prop="number"></el-table-column>
  4519. <el-table-column label="市场价" prop="marketPrice"></el-table-column>
  4520. <el-table-column label="权益价" prop="settlePrice"></el-table-column>
  4521. </el-table>
  4522. </el-col>
  4523. </el-row>
  4524. <span slot="footer" class="dialog-footer">
  4525. <el-button size="small" @click="handleCancel()">取 消</el-button>
  4526. <el-button size="small" type="primary" @click="handleSubmit()">确 定</el-button>
  4527. </span>
  4528. </el-dialog>
  4529. </div>
  4530. </template>
  4531. <script>
  4532. import QrCode from "qrcodejs2";
  4533. let _self;
  4534. import Cookies from "js-cookie";
  4535. import CommonUtil from "@/utils/comutil.js";
  4536. import floatingBar from "@/components/customerService/floatingBar.vue";
  4537. import {
  4538. getAgeByIdCard,
  4539. searchkey,
  4540. addressCode,
  4541. getGenderByIdCard
  4542. } from "@/utils/validate.js";
  4543. import citydata from "@/assets/js/citydata.js";
  4544. import yongchengData from "../../../assets/js/yongchengData";
  4545. import { regionData, codeToText } from "element-china-area-data";
  4546. import { base64ToPath } from "@/common/image-tools-base64.js";
  4547. import quotationDialog from "@/views/Core/components/quotationDialog.vue";
  4548. import quotationDialogPro from "@/views/Core/components/quotationDialogPro.vue";
  4549. import detailsDialog from "@/views/Core/components/detailsDialog.vue";
  4550. import imageDialog from "@/views/Core/components/imageDialog.vue";
  4551. import { mapState } from "vuex";
  4552. import Ktletter1Popover from "./components/LetterPopover.vue";
  4553. import dayjs from "dayjs";
  4554. import {getYaCarDamageVerificationDict} from "../../../http/moudules/letter";
  4555. import {isEnabled} from "../../../http/moudules/task";
  4556. export default {
  4557. inject: ["reload"],
  4558. name: "qrCode",
  4559. data() {
  4560. var checkpurchasePrice = (rule, value, callback) => {
  4561. if (!value) {
  4562. callback(new Error("新车购置价不能为空"));
  4563. } else if (value == 0) {
  4564. callback(new Error("新车购置价不能为零"));
  4565. } else {
  4566. callback();
  4567. }
  4568. };
  4569. var checkframeNo = (rule, value, callback) => {
  4570. if (value.length < 17) {
  4571. callback(new Error("车架号不足17位"));
  4572. } else if (
  4573. value.indexOf("I") != "-1" ||
  4574. value.indexOf("O") != "-1" ||
  4575. value.indexOf("Q") != "-1"
  4576. ) {
  4577. callback(new Error("车架号不能包含(I O Q)三个字母"));
  4578. } else {
  4579. callback();
  4580. }
  4581. };
  4582. var carPhoneValid = (rule, value, callback) => {
  4583. 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})$/;
  4584. if (!value) {
  4585. callback(new Error("请输入车牌号"));
  4586. } else if (plateNumber.test(value)) {
  4587. callback();
  4588. } else {
  4589. callback(new Error("请输入正确的车牌号"));
  4590. }
  4591. };
  4592. var validateRight = (rule, value, callback) => {
  4593. if (!value) {
  4594. callback(new Error("请选择能源种类"));
  4595. } else if (this.carInfo.licenseNo.length === 8 && value === "0") {
  4596. callback(new Error("能源类型错误,请重新选择!"));
  4597. } else {
  4598. callback();
  4599. }
  4600. };
  4601. return {
  4602. isEnabledShow: false,
  4603. acceptOptions: [],
  4604. interestShow: false,
  4605. interestPeople: '',
  4606. interestIndex: 0,
  4607. interestList: [],
  4608. interestTableData: [],
  4609. interestData: null,
  4610. interestSelectData: null,
  4611. verificationDict: [], // 车损验车事项
  4612. validateCarCodeShow: false,
  4613. vehicleInspectionUrl: "",
  4614. colSpan: {
  4615. xs: 24, // 超小屏幕
  4616. sm: 12, // 小屏幕
  4617. md: 12, // 中屏幕
  4618. lg: 6, // 大屏幕
  4619. xl: 6 // 超大屏幕
  4620. },
  4621. colgutter: 80,
  4622. productList: [], // 产品id列表
  4623. productId: "", // 产品id
  4624. // 选择特约
  4625. teYueTable: [{}, {}],
  4626. showTeYueVisible: false,
  4627. // 驾意险详情
  4628. jiayiDialogData: {},
  4629. showDetailJiaYiVisible: false,
  4630. showDetailJiaYiVisible1: false,
  4631. showDetailtable: [],
  4632. // 添加驾意险
  4633. checkList: [],
  4634. addYiwaiDialogVisible: false,
  4635. typeJqTable: [
  4636. { date: "死亡伤残赔偿", date1: 180000 },
  4637. { date: "医疗费用赔偿", date1: 18000 },
  4638. { date: "财产损失赔偿", date1: 2000 }
  4639. ], // 调整险种交强险表格
  4640. typeDialogVisible: false, // 调整险种弹窗
  4641. typeDialogData: [], // 调整险种弹窗商业险
  4642. typeDialogIndex: 0, // 当前 调整险种弹窗 index
  4643. inquiryNowList: [], // 现询列表
  4644. isInquiryNowDisable: false,
  4645. taikangtemplateSelection: [], // 泰康
  4646. taikangInsuranceDataTable: [],
  4647. taikangaccidentDataList: [],
  4648. accidentPremiumTk: "",
  4649. accidentPremiumPA: "",
  4650. accidentFormTk: {
  4651. quantity: "1",
  4652. sumPremium: 0
  4653. },
  4654. pinganDataDetail: [],
  4655. pinganDataDetailVisible: false,
  4656. accidentFormPA: [
  4657. {
  4658. quantity: "1",
  4659. premium: 0,
  4660. pingantemplateSelection: "",
  4661. pinganInsuranceDataTable: [],
  4662. pinganInsurancetype: ""
  4663. },
  4664. {
  4665. quantity: "1",
  4666. premium: 0,
  4667. pingantemplateSelection: "",
  4668. pinganInsuranceDataTable: [],
  4669. pinganInsurancetype: ""
  4670. },
  4671. {
  4672. quantity: "1",
  4673. premium: 0,
  4674. pingantemplateSelection: "",
  4675. pinganInsuranceDataTable: [],
  4676. pinganInsurancetype: ""
  4677. }
  4678. ],
  4679. taikangaccidentalDrivingVo: {},
  4680. pinganaccidentalDrivingVo: {
  4681. 0: {},
  4682. 1: {},
  4683. 2: []
  4684. },
  4685. nowCostsId: undefined, // 现询
  4686. policyNumberForm: {
  4687. jqpolicyno: "",
  4688. sypolicyno: "",
  4689. jypolicyno: "",
  4690. jqpremium: "",
  4691. sypremium: "",
  4692. jypremium: "",
  4693. taxamount: "",
  4694. commissionFeevalue: "",
  4695. otherFeevalue: "",
  4696. jqSuperviseCostsProportion: "",
  4697. sySuperviseCostsProportion: "",
  4698. noSuperviseCostsProportion: "",
  4699. jqOtherCostsProportion: "",
  4700. syOtherCostsProportion: "",
  4701. noOtherCostsProportion: "",
  4702. jqReceivableProportion: "",
  4703. syReceivableProportion: "",
  4704. noReceivableProportion: "",
  4705. jqPolicyList: [],
  4706. syPolicyList: [],
  4707. jqSignList: [],
  4708. noPolicyList: [],
  4709. noCostsProportion: "",
  4710. jqCostsProportion: "",
  4711. syCostsProportion: ""
  4712. },
  4713. watermarkedImage: "",
  4714. redictInfoMsg: [],
  4715. redictInfodialogVisible: false,
  4716. qrcodeWidth: "180",
  4717. qrcodeHeight: "180",
  4718. activeName: "1",
  4719. isTaxSourceModel: "",
  4720. tabLiIndex: 0,
  4721. tabLimenu: [
  4722. {
  4723. name: "车辆信息",
  4724. scroll: "vehicle"
  4725. },
  4726. {
  4727. name: "车主信息",
  4728. scroll: "owner"
  4729. },
  4730. {
  4731. name: "投保人信息",
  4732. scroll: "applicant"
  4733. },
  4734. {
  4735. name: "被保人信息",
  4736. scroll: "insured"
  4737. },
  4738. {
  4739. name: "关系证明",
  4740. scroll: "relationship"
  4741. },
  4742. {
  4743. name: "验车照",
  4744. scroll: "yanchezhao"
  4745. },
  4746. {
  4747. name: "上年商业险保单",
  4748. scroll: "snbaodan"
  4749. },
  4750. {
  4751. name: "授权书",
  4752. scroll: "shouquanshu"
  4753. }
  4754. ],
  4755. packageValue: "",
  4756. packageOptions: [],
  4757. zhongmeitemplateSelection: "", //中煤驾意险产品选中值
  4758. zhongmeiInsuranceData: [], //中煤驾意险产品列表数据
  4759. zhongmeiInsuranceDataTable: [], //中煤驾意险产品明细方案数据
  4760. zhongmeiaccidentalDrivingVo: {}, //中煤驾意险最终选中字段
  4761. pinganInsuranceData: [], //平安驾意险产品列表数据
  4762. currentCell: null,
  4763. feeDetailInfo: [], //费用明细信息
  4764. immediatelyValue: false,
  4765. isRetractZJ: false,
  4766. isRetractHB: false,
  4767. isRetractZM: false,
  4768. isRetractASTP: false,
  4769. isRetractZA: false,
  4770. isRetractYC: false,
  4771. isRetractRS: false,
  4772. anshengInsurancetype: "",
  4773. iscCrownerShow: false,
  4774. isApplicantShow: false,
  4775. isInsuredShow: false,
  4776. formInline: {},
  4777. anshengtemplateSelection: "", //安盛
  4778. anshengInsuranceData: [], //安盛驾意险
  4779. anshengInsuranceDataTable: [], //安盛驾意险
  4780. anshengaccidentalDrivingVo: {}, //安盛驾意险
  4781. hengbangtemplateSelection: "", //恒邦
  4782. hengbangInsuranceData: [], //恒邦驾意险
  4783. hengbangInsuranceDataTable: [],
  4784. hengbangaccidentalDrivingVo: {}, //太平洋驾意险
  4785. taipingyangtemplateSelection: "", //太平洋
  4786. taipingyangInsuranceData: [], //太平洋驾意险
  4787. taipingyangInsuranceDataTable: [],
  4788. taipingyangaccidentalDrivingVo: {}, //太平洋驾意险
  4789. insuranceHN: "", //华农
  4790. huanongInsuranceData: [], //华农驾意险
  4791. huanongInsuranceDataTable: [],
  4792. huanongaccidentalDrivingVo: {}, //华农驾意险
  4793. renshouaccidentalDrivingVo: {}, //人寿意外险
  4794. renshouInsuranceData: [], //-人寿意外险list
  4795. ziJinInsuranceData: [], //-紫金意外险list
  4796. zhonganInsuranceData: [], //众安驾意险
  4797. zhonganaccidentalDrivingVo: {}, //众安驾意险
  4798. zijinInsuranceDataTable: [],
  4799. zijintemplateSelection: "",
  4800. accidentalDrivingVo: [], //-紫金意外险传参
  4801. zijinengageListData: [], //紫金特约
  4802. zijinengageList: [], //紫金特约
  4803. // ------------紫金意外险
  4804. renshoutemplateSelection: "", //人寿
  4805. renshouInsuranceDataTable: [],
  4806. zhongantemplateSelection: "", //众安
  4807. zhonganInsuranceDataTable: [],
  4808. taipingtemplateSelection: "", //太平
  4809. taipingInsuranceData: [], //太平驾意险
  4810. TPDrivingChangeInsuranceData: [],
  4811. taipingaccidentalDrivingVo: {}, //太平驾意险
  4812. licenseplate: true,
  4813. calculateLoading: false, //保费计算按钮 节流
  4814. preserveQuoteLoading: false, //保存按钮
  4815. emporaryLoading: false,
  4816. accidentForm: {
  4817. quantity: "1",
  4818. sumPremium: 0
  4819. }, //永诚意外险内容
  4820. accidentFormHN: {
  4821. allQuantity: "1",
  4822. quantity: "1"
  4823. }, //华农意外险内容
  4824. yongchengaccidentDataList: [], //永诚意外险
  4825. yongchengtemplateSelection: "",
  4826. guoRenaccidentDataList: [], //国任意外险
  4827. guoRenInsuranceDataTable: [],
  4828. guoRenaccidentDataListChild: [],
  4829. guoRenaccidentalDrivingVo: {}, //国任驾意险
  4830. dajiatemplateSelection: "",
  4831. dajiaaccidentDataListChild: [],
  4832. dajiaaccidentForm: {},
  4833. dajiaInsuranceData: [], //大家意外险
  4834. dajiaInsuranceDataTable: [],
  4835. dajiaaccidentalDrivingVo: {},
  4836. yongchengInsuranceDataTable: [],
  4837. guoRenaccidentLoading: false,
  4838. contributingLoading: false,
  4839. guoRenaccidentPremium: "",
  4840. guoRenaccidentForm: {
  4841. quantity: "1",
  4842. sumPremium: 0
  4843. }, //国任意外险内容
  4844. accidentFormZM: {
  4845. quantity: "1",
  4846. sumPremium: 0
  4847. }, //中煤意外险内容
  4848. boHaiaccidentDataList: [], //渤海意外险
  4849. boHaigtemplateSelection: "",
  4850. boHaiaccidentForm: {
  4851. copies: "1",
  4852. policyNum: 0
  4853. },
  4854. bohaiInsuranceDataTable: [],
  4855. accidentPremium: "",
  4856. accidentPremiumZM: "",
  4857. contributingState: false, //是否为国任特约
  4858. pickerOptions: {
  4859. disabledDate(time) {
  4860. //若选择的日期小于当前日期(包含今天)
  4861. return time.getTime() > Date.now();
  4862. //若选择的日期大于当前日期(不包含今天): time.getTime() < Date.now()
  4863. //若选择的日期小于当前日期(不包含今天): time.getTime() > Date.now() - 8.64e7
  4864. //若选择的日期小于等于当前日期(包含今天): time.getTime() > Date.now()
  4865. }
  4866. },
  4867. attributionform: {
  4868. //续保查询数据
  4869. configure: [],
  4870. companyId: ""
  4871. },
  4872. continuousAction: [], //续保配置项
  4873. //永诚转保确认码
  4874. cqryCdeJq: "",
  4875. cqryCdeSy: "",
  4876. renewalCodeJq: "", //交强确认码
  4877. renewalCodeSy: "", //商业确认码
  4878. renewalCodeJqImg: "", //交强图片
  4879. renewalCodeSyImg: "", //商业图片
  4880. //-----------------
  4881. showViewer: false,
  4882. transferDateShow: false, //转移登记日期
  4883. yonganchecked: false, //永安驾意险
  4884. renbaochecked: false, //人保驾意险
  4885. zhongmeichecked: false, //中煤驾意险
  4886. hengbangchecked: false, //恒邦驾意险
  4887. taipingyangchecked: false, //太平洋驾意险
  4888. yongchengchecked: false, //永诚驾意险
  4889. yonganDrivinglist: [],
  4890. renbaoDrivinglist: [],
  4891. zhongmeiDrivinglist: [],
  4892. hengbangDrivinglist: [],
  4893. taipingyangDrivinglist: [],
  4894. yongchengDrivinglist: [],
  4895. tbczcarShow: true, //投保人同车主
  4896. bbczcarShow: false, //被保人同车主
  4897. bbtbcarShow: true, //被保人同投保人
  4898. imageUploadShow: true, //上传影像显示
  4899. ProViewImg: "", //预览图片
  4900. carfrontImg: "", //行驶证正面
  4901. carbackImg: "", //行驶证背面
  4902. userfrontImg: "", //身份证正面
  4903. userbackImg: "", //身份证背面
  4904. businessImg: "",
  4905. CarFrontFile: "", //车正面文件流
  4906. CarBackFile: "", //车背面文件流
  4907. // C02File: "",
  4908. // D02File: "",
  4909. // C03File: "",
  4910. // D03File: "",
  4911. // C04File: "",
  4912. // D04File: "",
  4913. userIndex: 1, //区分三种人员
  4914. TabName: "car", //默认选项卡
  4915. value1: "",
  4916. chexingdialogVisible: false, //车型选择 显示/隐藏
  4917. sbdmdialogVisible: false, //车型车辆识别代码选择 显示/隐藏
  4918. codedialogVisible: false, //二维码 显示/隐藏
  4919. codedialogVisiblePro: false,
  4920. uploadcardialogVisible: false, //行驶证识别 显示/隐藏
  4921. uploaduserdialogVisible: false, //身份证识别 显示/隐藏
  4922. imageUploaddialogVisible: false, //影像上传 显示/隐藏
  4923. policyUploaddialogVisible: false, //保单上传
  4924. underwritingdialogVisible: false, //核保信息 显示/隐藏
  4925. renewalCodedialogVisible: false, //转保确认码输入
  4926. hbsubmitdialogVisible: false, //核保弹框
  4927. signaturedialogVisible: false, //生成签章
  4928. signaturecode: null,
  4929. Carinsurance: {
  4930. jqinsurance: "1", //交强险
  4931. syinsurance: "1" //商业险
  4932. },
  4933. jqchecked: true,
  4934. sychecked: false,
  4935. jychecked: false,
  4936. jqstartDate: "", //交强时间
  4937. jqendDate: "", //交强时间
  4938. systartDate: "", //商业时间
  4939. syendDate: "", //商业时间
  4940. jystartDate: '', // 驾意时间
  4941. jyendDate: '', // 驾意时间
  4942. loading: false, //加载事件
  4943. reslist: [], //车型列表
  4944. userId: "", //出单工号
  4945. carInfo: {
  4946. importFlag:"",//特种车类
  4947. powerScale: "", ///功率
  4948. licenseNo: "", //车牌号
  4949. brandName: "", //车辆品牌型号
  4950. vinNo: "", //车架号
  4951. engineNo: "", //发动机号
  4952. modelCode: "", //车型编码
  4953. seatCount: null, //核定载客量 核定载人数
  4954. purchasePrice: null, //新车购置价最低,行业实际价值,协商价值
  4955. carBrand: "", //车型品牌
  4956. ciCarName: "", //行业车型名称
  4957. ciModelCode: "", //行业车型编码
  4958. completeKerbMass: "", //整备质量
  4959. exhaustScale: "", //排量
  4960. factory: "", //工厂名称
  4961. factoryid: "", //工厂编码
  4962. frameNo: "", //车架号
  4963. licenseTypeCode: "02", //号牌种类
  4964. vehicleclass: "", //车辆类型
  4965. familyName: "", //车型
  4966. modelcname: "", //车型名称
  4967. powertypecode: "", //燃料类型编码
  4968. vehicleweight: "", //总质量
  4969. limitLoad: "", //核定载质量
  4970. caryear: null, //年款
  4971. cimodelclass: "A0", //车辆种类
  4972. energyType: "0", //能源类型
  4973. enginedesc: "", //排量
  4974. registerDate: "", //注册日期
  4975. issueDate: "", //发证日期
  4976. transferFlag: 0, //过户标志
  4977. transferFlagBi: false, //商业险是否过户
  4978. transferDate: "", //过户日期
  4979. loanStatus: 0, //贷款标志
  4980. firstBeneMan: "", //第一受益人
  4981. noLicenseFlag: false, //是否新车
  4982. cartype: "", //客车A0 货车H0
  4983. carnature: "02", //使用性质
  4984. vehicleUse: "05",
  4985. property: "1" //所属性质 1个人 2企业 3机关
  4986. },
  4987. carform: {
  4988. carOwner: "", //车主
  4989. licenseNo: "", //车牌号
  4990. modelcname: "", //车辆品牌型号
  4991. frameNo: "", //车架号
  4992. engineNo: "", //发动机号
  4993. registerDate: "", //注册日期
  4994. issueDate: "", //发证日期
  4995. grossMass: "", //总质量
  4996. unladenMass: "", //整备质量
  4997. limitLoad: "", //核定载质量
  4998. approvedPassengersCapacity: "" //核定载客数
  4999. },
  5000. ownerInfoform: {
  5001. name: "",
  5002. identifyType: "",
  5003. identifyNumber: "",
  5004. age: "", //年龄
  5005. gender: "", //性别
  5006. addr: "",
  5007. email: "",
  5008. mobile: "",
  5009. identifyValidDate: "", //有效期起期
  5010. identifyValidEndDate: "", //有效期止期
  5011. organizationCode: ""
  5012. // province: "",//省
  5013. // city: "",//市
  5014. // county: "",//县
  5015. },
  5016. riskList: [], //险种大类信息
  5017. kindList: [], //商业险险别
  5018. ownerInfo: {
  5019. //车主
  5020. name: "", //姓名
  5021. identifyType: "01", //身份证类型
  5022. identifyNumber: "", //身份证号
  5023. age: "", //年龄
  5024. gender: "", //性别
  5025. addr: "", //地址
  5026. email: "", //邮箱
  5027. mobile: "", //电话
  5028. organizationCode: "",
  5029. identifyValidDate: "", //有效期起期
  5030. identifyValidEndDate: "", //有效期止期
  5031. // revenueCode: "", //税务号
  5032. leaderIdentifyNumber: "", //联系人证件号码
  5033. leaderOtherEffectiveDate: "", //联系人有效期止期
  5034. property: "1",
  5035. // province: "",//省
  5036. // city: "",//市
  5037. // county: "",//县
  5038. provinceData: [] //省市区
  5039. },
  5040. policyHolderInfo: {
  5041. //投保人
  5042. name: "", //姓名
  5043. identifyType: "01", //身份证类型
  5044. identifyNumber: "", //身份证号
  5045. age: "", //年龄
  5046. gender: "", //性别
  5047. addr: "", //地址
  5048. email: "", //邮箱
  5049. mobile: "", //电话
  5050. property: "1",
  5051. identifyValidDate: "", //有效期起期
  5052. identifyValidEndDate: "", //有效期止期
  5053. // revenueCode: "", //税务号
  5054. leaderIdentifyNumber: "", //联系人证件号码
  5055. leaderOtherEffectiveDate: "", //联系人有效期止期
  5056. organizationCode: "",
  5057. // province: "",//省
  5058. // city: "",//市
  5059. // county: "",//县
  5060. provinceData: [] //省市区
  5061. },
  5062. insuredPersonInfo: {
  5063. //被保人
  5064. name: "", //姓名
  5065. identifyType: "01", //身份证类型
  5066. identifyNumber: "", //身份证号
  5067. age: "", //年龄
  5068. gender: "", //性别
  5069. addr: "", //地址
  5070. email: "", //邮箱
  5071. mobile: "", //电话
  5072. property: "1",
  5073. identifyValidDate: "", //有效期起期
  5074. identifyValidEndDate: "", //有效期止期
  5075. // revenueCode: "", //税务号
  5076. leaderIdentifyNumber: "", //联系人证件号码
  5077. leaderOtherEffectiveDate: "", //联系人有效期止期
  5078. provinceData: [] //省市区
  5079. // province: "",//省
  5080. // city: "",//市
  5081. // county: "",//县
  5082. },
  5083. //车船税form
  5084. vehicleAndVesselTaxForm: {
  5085. taxRelifFlag: "1", //类型
  5086. identifyNumber: "", //纳税人识别号
  5087. taxpayerIdentifier: "01", //纳税人证件类型
  5088. taxpayerName: "", //纳税人名称
  5089. extendChar2: "", //减免税凭证号
  5090. paidFreeCertificate: "", //完税凭证号
  5091. relifReason: "", //减免税原因
  5092. taxComCode: "", //税务机关代码
  5093. taxComName: "", ///税务机关名称
  5094. taxDocumentDate: "", //完税日期
  5095. taxPaidAreaCode: "", //完税凭证地区代码
  5096. taxRelief: "" //减税比例
  5097. },
  5098. //车辆用途列表
  5099. vehicleList: [],
  5100. //能源种类列表
  5101. rules: {
  5102. extendChar2: [
  5103. { required: true, message: "请输入减免税凭证号", trigger: "blur" }
  5104. ],
  5105. paidFreeCertificate: [
  5106. { required: true, message: "请输入完税凭证号", trigger: "blur" }
  5107. ],
  5108. relifReason: [
  5109. { required: true, message: "请输入减免税原因", trigger: "blur" }
  5110. ],
  5111. taxComCode: [
  5112. { required: true, message: "请输入税务机关代码", trigger: "blur" }
  5113. ],
  5114. taxComName: [
  5115. { required: true, message: "请输入税务机关名称", trigger: "blur" }
  5116. ],
  5117. taxDocumentDate: [
  5118. { required: true, message: "请输入完税日期", trigger: "blur" }
  5119. ],
  5120. taxPaidAreaCode: [
  5121. { required: true, message: "请选择完税地区", trigger: "blur" }
  5122. ],
  5123. taxRelief: [
  5124. { required: true, message: "请输入减税比例", trigger: "blur" }
  5125. ],
  5126. taxpayerName: [
  5127. { required: true, message: "请输入纳税人名称", trigger: "blur" }
  5128. ],
  5129. taxpayerIdentifier: [
  5130. { required: true, message: "请选择证件类型", trigger: "blur" }
  5131. ],
  5132. taxRelifFlag: [
  5133. { required: true, message: "请选择纳税类型", trigger: "blur" }
  5134. ],
  5135. energyType: [
  5136. { required: true, validator: validateRight, trigger: "blur" }
  5137. ],
  5138. cimodelclass: [
  5139. { required: true, message: "请选择车辆种类", trigger: "blur" }
  5140. ],
  5141. carnature: [
  5142. { required: true, message: "请选择使用性质", trigger: "blur" }
  5143. ],
  5144. cartype: [
  5145. { required: true, message: "请选择车辆类型", trigger: "blur" }
  5146. ],
  5147. vehicleUse: [
  5148. { required: true, message: "请选择车辆用途", trigger: "blur" }
  5149. ],
  5150. brandName: [
  5151. { required: true, message: "请填写品牌型号", trigger: "blur" }
  5152. ],
  5153. licenseNo: [
  5154. { max: 8, message: "最多八个字符", trigger: "blur" },
  5155. { required: true, validator: carPhoneValid, trigger: "blur" }
  5156. ],
  5157. frameNo: [{ validator: checkframeNo, trigger: "blur" }],
  5158. engineNo: [
  5159. { required: true, message: "请填写发动机号", trigger: "blur" }
  5160. ],
  5161. purchasePrice: [
  5162. { required: true, validator: checkpurchasePrice, trigger: "blur" }
  5163. ],
  5164. registerDate: [
  5165. { required: true, message: "请选择注册时间", trigger: "blur" }
  5166. ],
  5167. issueDate: [
  5168. { required: true, message: "请选择发证日期", trigger: "blur" }
  5169. ],
  5170. transferDate: [
  5171. { required: true, message: "请选择转移登记日期", trigger: "blur" }
  5172. ],
  5173. seatCount: [
  5174. { required: true, message: "请输入座位数", trigger: "blur" }
  5175. ],
  5176. completeKerbMass: [
  5177. { required: true, message: "请输入整备质量", trigger: "blur" }
  5178. ],
  5179. name: [{ required: true, message: "请填写姓名", trigger: "blur" }],
  5180. taxamount: [
  5181. { required: true, message: "请填写车船税", trigger: "blur" }
  5182. ],
  5183. signDate: [
  5184. { required: true, message: "请填写签单日期", trigger: "blur" }
  5185. ],
  5186. // identifyNumber: [
  5187. // { required: true, message: "请填写证件号", trigger: "blur" },
  5188. // { min: 18, max: 18, message: "长度在18个字符", trigger: "blur" },
  5189. // {
  5190. // 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]$/,
  5191. // message: "请输入正确的证件号",
  5192. // trigger: "blur"
  5193. // }
  5194. // ],
  5195. identifyValidDate: [
  5196. { required: true, message: "请选择起期", trigger: "blur" }
  5197. ],
  5198. identifyValidEndDate: [
  5199. { required: true, message: "请选择止期", trigger: "blur" }
  5200. ],
  5201. addr: [
  5202. { required: true, message: "请填写地址", trigger: "blur" },
  5203. { min: 8, message: "最少8个字符", trigger: "blur" }
  5204. ],
  5205. mobile: [
  5206. { required: true, message: "请填写手机号", trigger: "blur" },
  5207. { min: 11, max: 11, message: "长度在11个字符", trigger: "blur" },
  5208. {
  5209. 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}$/,
  5210. message: "请输入正确的手机号",
  5211. trigger: "blur"
  5212. }
  5213. ],
  5214. email: [
  5215. { min: 10, max: 20, message: "最少10个字符", trigger: "blur" },
  5216. {
  5217. pattern: /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/,
  5218. message: "请输入正确的邮箱",
  5219. trigger: "blur"
  5220. }
  5221. ],
  5222. property: [
  5223. { required: true, message: "请选择所属性质", trigger: "blur" }
  5224. ]
  5225. },
  5226. CIInsureList: {
  5227. //交强险
  5228. amount: "1",
  5229. amountDesc: "投保",
  5230. amtList: [
  5231. {
  5232. label: "不投保",
  5233. value: "0"
  5234. },
  5235. {
  5236. label: "投保",
  5237. value: "1"
  5238. }
  5239. ],
  5240. kindCode: "0507",
  5241. kindName: "交强险",
  5242. desc: "国家强制规定购买的险种,对第三方的人身或财产损失提供基本保障"
  5243. },
  5244. BIInsureList: {
  5245. //商业险
  5246. amount: "0",
  5247. amountDesc: "投保",
  5248. amtList: [
  5249. {
  5250. label: "不投保",
  5251. value: "0"
  5252. },
  5253. {
  5254. label: "投保",
  5255. value: "1"
  5256. }
  5257. ],
  5258. kindCode: "0510",
  5259. kindName: "商业险",
  5260. desc: "国家强制规定购买的险种,对第三方的人身或财产损失提供基本保障"
  5261. },
  5262. insureList: [
  5263. {
  5264. amount: "0",
  5265. amountDesc: "投保",
  5266. coveragePremium: 0,
  5267. amtList: [
  5268. {
  5269. label: "不投保",
  5270. value: "0"
  5271. },
  5272. {
  5273. label: "投保",
  5274. value: "1"
  5275. }
  5276. ],
  5277. kindCode: "A",
  5278. isMainRisk: true,
  5279. kindName: "机动车损失险",
  5280. desc:
  5281. "保险期间内,被保险人或被保险机动车驾驶人在使用被保险机动车过程中,因自然灾害、意外事故、机动车被盗窃、抢劫、抢夺等情况(详见保险条款)造成被保险机动车直接损失,且不属于免除保险人责任的范围,保险人依照本保险合同的约定负责赔偿的险种。"
  5282. },
  5283. {
  5284. amount: "0",
  5285. amountDesc: "不投保",
  5286. coveragePremium: 0,
  5287. amtList: [
  5288. {
  5289. label: "不投保",
  5290. value: "0"
  5291. },
  5292. {
  5293. label: "10万",
  5294. value: "100000"
  5295. },
  5296. {
  5297. label: "15万",
  5298. value: "150000"
  5299. },
  5300. {
  5301. label: "20万",
  5302. value: "200000"
  5303. },
  5304. {
  5305. label: "30万",
  5306. value: "300000"
  5307. },
  5308. {
  5309. label: "50万",
  5310. value: "500000"
  5311. },
  5312. {
  5313. label: "100万",
  5314. value: "1000000"
  5315. },
  5316. {
  5317. label: "150万",
  5318. value: "1500000"
  5319. },
  5320. {
  5321. label: "200万",
  5322. value: "2000000"
  5323. },
  5324. {
  5325. label: "250万",
  5326. value: "2500000"
  5327. },
  5328. {
  5329. label: "300万",
  5330. value: "3000000"
  5331. },
  5332. {
  5333. label: "400万",
  5334. value: "4000000"
  5335. },
  5336. {
  5337. label: "500万",
  5338. value: "5000000"
  5339. },
  5340. {
  5341. label: "600万",
  5342. value: "6000000"
  5343. },
  5344. {
  5345. label: "800万",
  5346. value: "8000000"
  5347. },
  5348. {
  5349. label: "1000万",
  5350. value: "10000000"
  5351. }
  5352. ],
  5353. kindCode: "B",
  5354. isMainRisk: true,
  5355. kindName: "第三者责任险",
  5356. desc:
  5357. "保险期间内,被保险人或其允许的驾驶人在使用被保险机动车过程中发生意外事故,致使第三者遭受人身伤亡或财产直接损毁,依法应当对第三者承担的损害赔偿责任,且不属于免除保险人责任的范围,保险人依照本保险合同的约定,对于超过机动车交通事故责任强制保险各分项赔偿限额的部分负责赔偿的险种。"
  5358. },
  5359. {
  5360. amount: "0",
  5361. amountDesc: "1万",
  5362. coveragePremium: 0,
  5363. amtList: [
  5364. {
  5365. label: "不投保",
  5366. value: "0"
  5367. },
  5368. {
  5369. label: "1万",
  5370. value: "10000"
  5371. },
  5372. {
  5373. label: "2万",
  5374. value: "20000"
  5375. },
  5376. {
  5377. label: "3万",
  5378. value: "30000"
  5379. },
  5380. {
  5381. label: "4万",
  5382. value: "40000"
  5383. },
  5384. {
  5385. label: "5万",
  5386. value: "50000"
  5387. },
  5388. {
  5389. label: "6万",
  5390. value: "60000"
  5391. },
  5392. {
  5393. label: "7万",
  5394. value: "70000"
  5395. },
  5396. {
  5397. label: "8万",
  5398. value: "80000"
  5399. },
  5400. {
  5401. label: "9万",
  5402. value: "90000"
  5403. },
  5404. {
  5405. label: "10万",
  5406. value: "100000"
  5407. },
  5408. {
  5409. label: "15万",
  5410. value: "150000"
  5411. },
  5412. {
  5413. label: "20万",
  5414. value: "200000"
  5415. },
  5416. {
  5417. label: "25万",
  5418. value: "250000"
  5419. },
  5420. {
  5421. label: "30万",
  5422. value: "300000"
  5423. },
  5424. {
  5425. label: "35万",
  5426. value: "350000"
  5427. },
  5428. {
  5429. label: "40万",
  5430. value: "400000"
  5431. },
  5432. {
  5433. label: "45万",
  5434. value: "450000"
  5435. },
  5436. {
  5437. label: "50万",
  5438. value: "500000"
  5439. }
  5440. ],
  5441. kindCode: "D3",
  5442. isMainRisk: true,
  5443. kindName: "司机责任险",
  5444. desc:
  5445. "保险期间内,被保险人或其允许的驾驶人在使用被保险机动车过程中发生意外事故,致使车上人员遭受人身伤亡,且不属于免除保险人责任的范围,依法应当对车上人员承担的损害赔偿责任,保险人依照本保险合同的约定负责赔偿的险种。"
  5446. },
  5447. {
  5448. amount: "0",
  5449. amountDesc: "1万",
  5450. coveragePremium: 0,
  5451. amtList: [
  5452. {
  5453. label: "不投保",
  5454. value: "0"
  5455. },
  5456. {
  5457. label: "1万",
  5458. value: "10000"
  5459. },
  5460. {
  5461. label: "2万",
  5462. value: "20000"
  5463. },
  5464. {
  5465. label: "3万",
  5466. value: "30000"
  5467. },
  5468. {
  5469. label: "4万",
  5470. value: "40000"
  5471. },
  5472. {
  5473. label: "5万",
  5474. value: "50000"
  5475. },
  5476. {
  5477. label: "6万",
  5478. value: "60000"
  5479. },
  5480. {
  5481. label: "7万",
  5482. value: "70000"
  5483. },
  5484. {
  5485. label: "8万",
  5486. value: "80000"
  5487. },
  5488. {
  5489. label: "9万",
  5490. value: "90000"
  5491. },
  5492. {
  5493. label: "10万",
  5494. value: "100000"
  5495. },
  5496. {
  5497. label: "15万",
  5498. value: "150000"
  5499. },
  5500. {
  5501. label: "20万",
  5502. value: "200000"
  5503. },
  5504. {
  5505. label: "25万",
  5506. value: "250000"
  5507. },
  5508. {
  5509. label: "30万",
  5510. value: "300000"
  5511. },
  5512. {
  5513. label: "35万",
  5514. value: "350000"
  5515. },
  5516. {
  5517. label: "40万",
  5518. value: "400000"
  5519. },
  5520. {
  5521. label: "45万",
  5522. value: "450000"
  5523. },
  5524. {
  5525. label: "50万",
  5526. value: "500000"
  5527. }
  5528. ],
  5529. kindCode: "D4",
  5530. isMainRisk: true,
  5531. kindName: "乘客责任险",
  5532. desc:
  5533. "保险期间内,被保险人或其允许的驾驶人在使用被保险机动车过程中发生意外事故,致使车上人员遭受人身伤亡,且不属于免除保险人责任的范围,依法应当对车上人员承担的损害赔偿责任,保险人依照本保险合同的约定负责赔偿的险种。"
  5534. },
  5535. {
  5536. amount: "0",
  5537. amountDesc: "不投保",
  5538. coveragePremium: 0,
  5539. amtList: [
  5540. {
  5541. label: "不投保",
  5542. value: "0"
  5543. },
  5544. {
  5545. label: "2千",
  5546. value: "2000"
  5547. },
  5548. {
  5549. label: "5千",
  5550. value: "5000"
  5551. },
  5552. {
  5553. label: "1万",
  5554. value: "10000"
  5555. },
  5556. {
  5557. label: "2万",
  5558. value: "20000"
  5559. }
  5560. ],
  5561. desc:
  5562. "保险期间内,被保险机动车在被保险人或被保险机动车驾驶人使用过程中,发生无明显碰撞痕迹的车身划痕损失,保险人按照保险合同约定负责赔偿的险种",
  5563. isMainRisk: false,
  5564. kindCode: "L",
  5565. kindName: "车身划痕险",
  5566. mainRiskCodeList: "A"
  5567. },
  5568. {
  5569. amount: "0",
  5570. amountDesc: "不投保",
  5571. coveragePremium: 0,
  5572. amtList: [
  5573. {
  5574. label: "不投保",
  5575. value: "0"
  5576. },
  5577. {
  5578. label: "5%",
  5579. value: "5"
  5580. },
  5581. {
  5582. label: "10%",
  5583. value: "10"
  5584. },
  5585. {
  5586. label: "15%",
  5587. value: "15"
  5588. },
  5589. {
  5590. label: "20%",
  5591. value: "20"
  5592. }
  5593. ],
  5594. desc:
  5595. "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
  5596. isMainRisk: false,
  5597. kindCode: "MJ1",
  5598. kindName: "绝对免赔率特约险(车损)",
  5599. mainRiskCodeList: "A"
  5600. },
  5601. {
  5602. amount: "0",
  5603. amountDesc: "不投保",
  5604. coveragePremium: 0,
  5605. amtList: [
  5606. {
  5607. label: "不投保",
  5608. value: "0"
  5609. },
  5610. {
  5611. label: "5%",
  5612. value: "5"
  5613. },
  5614. {
  5615. label: "10%",
  5616. value: "10"
  5617. },
  5618. {
  5619. label: "15%",
  5620. value: "15"
  5621. },
  5622. {
  5623. label: "20%",
  5624. value: "20"
  5625. }
  5626. ],
  5627. desc:
  5628. "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
  5629. isMainRisk: false,
  5630. kindCode: "MJ2",
  5631. kindName: "绝对免赔率特约险(三者)",
  5632. mainRiskCodeList: "B"
  5633. },
  5634. {
  5635. amount: "0",
  5636. amountDesc: "不投保",
  5637. coveragePremium: 0,
  5638. amtList: [
  5639. {
  5640. label: "不投保",
  5641. value: "0"
  5642. },
  5643. {
  5644. label: "5%",
  5645. value: "5"
  5646. },
  5647. {
  5648. label: "10%",
  5649. value: "10"
  5650. },
  5651. {
  5652. label: "15%",
  5653. value: "15"
  5654. },
  5655. {
  5656. label: "20%",
  5657. value: "20"
  5658. }
  5659. ],
  5660. desc:
  5661. "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
  5662. isMainRisk: false,
  5663. kindCode: "MJ3",
  5664. kindName: "绝对免赔率特约险(司机)",
  5665. mainRiskCodeList: "D3"
  5666. },
  5667. {
  5668. amount: "0",
  5669. amountDesc: "不投保",
  5670. coveragePremium: 0,
  5671. amtList: [
  5672. {
  5673. label: "不投保",
  5674. value: "0"
  5675. },
  5676. {
  5677. label: "5%",
  5678. value: "5"
  5679. },
  5680. {
  5681. label: "10%",
  5682. value: "10"
  5683. },
  5684. {
  5685. label: "15%",
  5686. value: "15"
  5687. },
  5688. {
  5689. label: "20%",
  5690. value: "20"
  5691. }
  5692. ],
  5693. desc:
  5694. "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
  5695. isMainRisk: false,
  5696. kindCode: "MJ4",
  5697. kindName: "绝对免赔率特约险(乘客)",
  5698. mainRiskCodeList: "D4"
  5699. },
  5700. {
  5701. amount: "0",
  5702. amountDesc: "不投保",
  5703. coveragePremium: 0,
  5704. amtList: [
  5705. {
  5706. label: "不投保",
  5707. value: "0"
  5708. },
  5709. {
  5710. label: "1万",
  5711. value: "10000"
  5712. },
  5713. {
  5714. label: "2万",
  5715. value: "20000"
  5716. },
  5717. {
  5718. label: "4万",
  5719. value: "40000"
  5720. },
  5721. {
  5722. label: "5万",
  5723. value: "50000"
  5724. },
  5725. {
  5726. label: "8万",
  5727. value: "80000"
  5728. },
  5729. {
  5730. label: "10万",
  5731. value: "100000"
  5732. },
  5733. {
  5734. label: "20万",
  5735. value: "200000"
  5736. },
  5737. {
  5738. label: "30万",
  5739. value: "300000"
  5740. },
  5741. {
  5742. label: "50万",
  5743. value: "500000"
  5744. },
  5745. {
  5746. label: "100万",
  5747. value: "1000000"
  5748. },
  5749. {
  5750. label: "200万",
  5751. value: "2000000"
  5752. },
  5753. {
  5754. label: "300万",
  5755. value: "3000000"
  5756. }
  5757. ],
  5758. kindCode: "SY_FJ_YBW1",
  5759. isMainRisk: true,
  5760. kindName: "附加医保-三者",
  5761. desc: "附加医保外医疗费用责任险(机动车第三者责任保险)"
  5762. },
  5763. {
  5764. amount: "0",
  5765. amountDesc: "不投保",
  5766. coveragePremium: 0,
  5767. amtList: [
  5768. {
  5769. label: "不投保",
  5770. value: "0"
  5771. },
  5772. {
  5773. label: "1万",
  5774. value: "10000"
  5775. },
  5776. {
  5777. label: "2万",
  5778. value: "20000"
  5779. },
  5780. {
  5781. label: "5万",
  5782. value: "50000"
  5783. },
  5784. {
  5785. label: "10万",
  5786. value: "100000"
  5787. }
  5788. ],
  5789. kindCode: "SY_FJ_YBW2",
  5790. isMainRisk: true,
  5791. kindName: "附加医保-座位险(乘客)",
  5792. desc: "附加医保外医疗费用责任险(机动车第三者责任保险)"
  5793. },
  5794. {
  5795. amount: "0",
  5796. amountDesc: "不投保",
  5797. coveragePremium: 0,
  5798. amtList: [
  5799. {
  5800. label: "不投保",
  5801. value: "0"
  5802. },
  5803. {
  5804. label: "1万",
  5805. value: "10000"
  5806. },
  5807. {
  5808. label: "2万",
  5809. value: "20000"
  5810. },
  5811. {
  5812. label: "5万",
  5813. value: "50000"
  5814. },
  5815. {
  5816. label: "10万",
  5817. value: "100000"
  5818. }
  5819. ],
  5820. kindCode: "SY_FJ_YBW3",
  5821. isMainRisk: true,
  5822. kindName: "附加医保-座位险(司机)",
  5823. desc: "附加医保外医疗费用责任险(机动车第三者责任保险)"
  5824. },
  5825. {
  5826. amount: "0",
  5827. amountDesc: "不投保",
  5828. coveragePremium: 0,
  5829. amtList: [
  5830. {
  5831. label: "不投保",
  5832. value: "0"
  5833. },
  5834. {
  5835. label: "50万",
  5836. value: "500000"
  5837. },
  5838. {
  5839. label: "100万",
  5840. value: "1000000"
  5841. },
  5842. {
  5843. label: "150万",
  5844. value: "1500000"
  5845. },
  5846. {
  5847. label: "200万",
  5848. value: "2000000"
  5849. },
  5850. {
  5851. label: "250万",
  5852. value: "2500000"
  5853. },
  5854. {
  5855. label: "300万",
  5856. value: "3000000"
  5857. },
  5858. {
  5859. label: "500万",
  5860. value: "5000000"
  5861. },
  5862. {
  5863. label: "1000万",
  5864. value: "10000000"
  5865. }
  5866. ],
  5867. desc:
  5868. "保险期间内,被保险人或其允许的驾驶人在法定节假日期间使用被保险机动车发生机动车第三者责任保险范围内的事故,并经公安部门或保险人查勘确认的,被保险机动车第三者责任保险所适用的责任限额在保险单载明的基础上增加一倍的险种",
  5869. isMainRisk: false,
  5870. kindCode: "BD",
  5871. kindName: "法定节假日限额翻倍险",
  5872. mainRiskCodeList: "B"
  5873. },
  5874. {
  5875. amount: "0",
  5876. amountDesc: "不投保",
  5877. coveragePremium: 0,
  5878. amtList: [
  5879. {
  5880. label: "不投保",
  5881. value: "0"
  5882. },
  5883. {
  5884. label: "2次",
  5885. value: "2"
  5886. },
  5887. {
  5888. label: "7次",
  5889. value: "7"
  5890. },
  5891. {
  5892. label: "12次",
  5893. value: "12"
  5894. },
  5895. {
  5896. label: "17次",
  5897. value: "17"
  5898. },
  5899. {
  5900. label: "22次",
  5901. value: "22"
  5902. }
  5903. ],
  5904. desc: "道路救援服务特约条款",
  5905. isMainRisk: false,
  5906. kindCode: "TY1",
  5907. kindName: "道路救援服务特约条款"
  5908. },
  5909. {
  5910. amount: "0",
  5911. amountDesc: "不投保",
  5912. coveragePremium: 0,
  5913. desc: "车辆安全检测特约条款",
  5914. isMainRisk: false,
  5915. kindCode: "TY2",
  5916. kindName: "车辆安全检测特约条款"
  5917. },
  5918. {
  5919. amount: "0",
  5920. amountDesc: "不投保",
  5921. coveragePremium: 0,
  5922. desc: "代为驾驶服务特约条款",
  5923. isMainRisk: false,
  5924. kindCode: "TY3",
  5925. kindName: "代为驾驶服务特约条款"
  5926. },
  5927. {
  5928. amount: "0",
  5929. amountDesc: "不投保",
  5930. coveragePremium: 0,
  5931. desc: "代为送检服务特约条款",
  5932. isMainRisk: false,
  5933. kindCode: "TY4",
  5934. kindName: "代为送检服务特约条款"
  5935. }
  5936. ],
  5937. totalCompanyList: [], //报价保险公司
  5938. continuousCompanyList: [], //续保保险公司
  5939. quoteno: "", //报价号
  5940. orderno: "", //订单号
  5941. queryOrders: {
  5942. extendInfo: {},
  5943. carinfo: {},
  5944. ownerinfo: {},
  5945. applyinfo: {},
  5946. insureinfo: {}
  5947. }, //核保详情
  5948. inscompany: "", //保险公司名称
  5949. licenseNo: "", //车牌号
  5950. applyName: "", //车主名字
  5951. orderstatus: "", //订单状态
  5952. sumpremium: "", //保费合计
  5953. jqpremium: "", //交强
  5954. sypremium: "", //商业
  5955. jypremium: "", //驾意险
  5956. taxamount: "", //车船税
  5957. jqstartdate: "", //交强时间
  5958. systartdate: "", //商业时间
  5959. mobile: "", //投保人手机号
  5960. //影像回显列表
  5961. // 是否禁用上传
  5962. uploadDisabled: false,
  5963. href: "",
  5964. pageRequest: {
  5965. //归属查询
  5966. pageNum: 1,
  5967. pageSize: 20,
  5968. columnFilters: {
  5969. deptId: {
  5970. name: "deptId",
  5971. value: "9"
  5972. },
  5973. containsSubDept: {
  5974. name: "containsSubDept",
  5975. value: 1
  5976. },
  5977. usertype: {
  5978. name: "usertype",
  5979. value: null
  5980. },
  5981. status: {
  5982. name: "status",
  5983. value: "1"
  5984. },
  5985. id: {
  5986. name: "id",
  5987. value: ""
  5988. },
  5989. name: {
  5990. name: "name",
  5991. value: ""
  5992. },
  5993. mobile: {
  5994. name: "mobile",
  5995. value: ""
  5996. }
  5997. }
  5998. },
  5999. userform: {},
  6000. qrcode: null,
  6001. paycodeimg: "", //展示二维码
  6002. ImageUrldialogVisible: false,
  6003. paramsEdit: "",
  6004. companyId: "",
  6005. apiType: "",
  6006. insureMore: true,
  6007. // insureLength: 5,
  6008. HistoryList: [], //历史记录数据
  6009. image1: "",
  6010. image2: "",
  6011. historyRadio: "888",
  6012. sumseatCount: "", // 投保险种座位数
  6013. deptName: "",
  6014. isBottom: true,
  6015. logoImg: "", //报价单保险公司logo图
  6016. vehicleTypeoptions: [], //车辆种类
  6017. trafficManagementVehicleTypeoptions: [], //车辆类型
  6018. energyTypeoptions: [], //能源种类
  6019. taxRelifFlagoptions: [], //车船税类型
  6020. taxpayerIdentifieroptions: [], //纳税人证件类型
  6021. propertyoptions: [
  6022. {
  6023. value: "1",
  6024. label: "个人"
  6025. },
  6026. {
  6027. value: "2",
  6028. label: "企业"
  6029. }
  6030. ],
  6031. relifReasonoptions: [], //减免税原因代码
  6032. relifReasonoptions: [], //减免税原因代码
  6033. provinceSelect: [],
  6034. natureOfVehicleUseoptions: [],
  6035. businessVehicleUseoptions: [],
  6036. outOfBusinessVehicleUseoptions: [],
  6037. insOrderStatusoptions: [],
  6038. lastCompanyId: "",
  6039. apiInterfaceName: "generateOrder",
  6040. isLetter3Arr: [],
  6041. isLetter3agreementId: "",
  6042. editorInfo: {},
  6043. resultMessageImg: "",
  6044. tabLiIndex: 0,
  6045. tabLimenu: [
  6046. {
  6047. name: "车辆信息",
  6048. scroll: "vehicle"
  6049. },
  6050. {
  6051. name: "车主信息",
  6052. scroll: "owner"
  6053. },
  6054. {
  6055. name: "投保人信息",
  6056. scroll: "applicant"
  6057. },
  6058. {
  6059. name: "被保人信息",
  6060. scroll: "insured"
  6061. },
  6062. {
  6063. name: "关系证明",
  6064. scroll: "relationship"
  6065. },
  6066. {
  6067. name: "验车照",
  6068. scroll: "yanchezhao"
  6069. },
  6070. {
  6071. name: "上年商业险保单",
  6072. scroll: "snbaodan"
  6073. },
  6074. {
  6075. name: "授权书",
  6076. scroll: "shouquanshu"
  6077. }
  6078. ],
  6079. ProViewImg: "", //预览图片
  6080. carfrontImg: "", //行驶证正面
  6081. carbackImg: "", //行驶证背面
  6082. userfrontImg: "", //身份证正面
  6083. userbackImg: "", //身份证背面
  6084. businessImg: "",
  6085. CarFrontFile: "", //车正面文件流
  6086. CarBackFile: "", //车背面文件流
  6087. C02File: "",
  6088. D02File: "",
  6089. C03File: "",
  6090. D03File: "",
  6091. C04File: "",
  6092. D04File: "",
  6093. Y02File: "",
  6094. Y03File: "",
  6095. Y04File: "",
  6096. //影像回显列表
  6097. imgList1: [],
  6098. imgList2: [],
  6099. imgList3: [],
  6100. imgList4: [],
  6101. imgList5: [],
  6102. imgList6: [],
  6103. imgList7: [],
  6104. imgList8: [],
  6105. imgList9: [],
  6106. imgList10: [],
  6107. imgList11: [],
  6108. imgList12: [],
  6109. imgList13: [],
  6110. imgList14: [],
  6111. imgList15: [],
  6112. imgList16: [],
  6113. imgList17: [],
  6114. imgList18: [],
  6115. imgList19: [],
  6116. imgList20: [],
  6117. imgList21: [],
  6118. imgList22: [],
  6119. imgList23: [],
  6120. imgList24: [],
  6121. imgList25: [],
  6122. imgList26: [],
  6123. imgList27: [],
  6124. imgList28: [],
  6125. //影像上传列表
  6126. imageList1: [],
  6127. imageList2: [],
  6128. imageList3: [],
  6129. imageList4: [],
  6130. imageList5: [],
  6131. imageList6: [],
  6132. showLoading: false,
  6133. detailJiaYiTitle: "查看详情",
  6134. oldData: {}, // 旧获取公司参数
  6135. myQrCode: null,
  6136. businessform: {
  6137. name: "", //姓名
  6138. identifyType: "02", //身份证类型
  6139. legalRepresentative: "", //法人
  6140. identifyNumber: "", //社会信用代码
  6141. addr: "", //地址
  6142. registeredCapital: "", //注册资本
  6143. businessScope: "" //经营范围
  6144. },
  6145. areaOption: yongchengData.data,
  6146. selectedOptions1: [],
  6147. selectedOptions2: [],
  6148. selectedOptions3: []
  6149. };
  6150. },
  6151. watch: {
  6152. "carInfo.licenseNo": {
  6153. handler(val) {
  6154. if (val) {
  6155. this.carInfo.licenseNo = val.toUpperCase();
  6156. }
  6157. },
  6158. deep: true
  6159. },
  6160. "carInfo.frameNo": {
  6161. handler(val) {
  6162. if (val) {
  6163. this.carInfo.frameNo = val.toUpperCase();
  6164. }
  6165. },
  6166. deep: true
  6167. },
  6168. "carInfo.enginedesc": {
  6169. handler(val) {
  6170. if (val) {
  6171. this.carInfo.enginedesc = val.replace(/[A-Za-z]/g, "");
  6172. }
  6173. },
  6174. deep: true
  6175. },
  6176. "ownerInfo.mobile": {
  6177. handler(val) {
  6178. if (val) {
  6179. this.ownerInfo.mobile = val.replace(/\s/g, "");
  6180. }
  6181. },
  6182. deep: true
  6183. },
  6184. "policyHolderInfo.mobile": {
  6185. handler(val) {
  6186. if (val) {
  6187. this.policyHolderInfo.mobile = val.replace(/\s/g, "");
  6188. }
  6189. },
  6190. deep: true
  6191. },
  6192. "insuredPersonInfo.mobile": {
  6193. handler(val) {
  6194. if (val) {
  6195. this.insuredPersonInfo.mobile = val.replace(/\s/g, "");
  6196. }
  6197. },
  6198. deep: true
  6199. },
  6200. "carInfo.engineNo": {
  6201. handler(val) {
  6202. if (val) {
  6203. this.carInfo.engineNo = val.replace(/[^\w-]/gi, "").toUpperCase();
  6204. }
  6205. },
  6206. deep: true
  6207. },
  6208. "carInfo.seatCount": {
  6209. handler(val) {
  6210. if (val) {
  6211. this.sumseatCount = val - 1;
  6212. }
  6213. },
  6214. deep: true
  6215. },
  6216. "policyHolderInfo.identifyNumber": {
  6217. handler(val) {
  6218. if (val) {
  6219. this.vehicleAndVesselTaxForm.identifyNumber = val;
  6220. }
  6221. },
  6222. deep: true
  6223. },
  6224. "policyHolderInfo.organizationCode": {
  6225. handler(val) {
  6226. if (val) {
  6227. this.vehicleAndVesselTaxForm.organizationCode = val;
  6228. }
  6229. },
  6230. deep: true
  6231. },
  6232. "policyHolderInfo.name": {
  6233. handler(val) {
  6234. if (val) {
  6235. this.vehicleAndVesselTaxForm.taxpayerName = val;
  6236. }
  6237. },
  6238. deep: true
  6239. },
  6240. ownerInfo: {
  6241. handler(val) {
  6242. if (this.tbczcarShow) {
  6243. this.policyHolderInfo = { ...val };
  6244. }
  6245. if (this.bbczcarShow) {
  6246. this.insuredPersonInfo = { ...val };
  6247. }
  6248. },
  6249. deep: true
  6250. },
  6251. policyHolderInfo: {
  6252. handler(val) {
  6253. if (this.bbtbcarShow) {
  6254. this.insuredPersonInfo = { ...val };
  6255. }
  6256. },
  6257. deep: true
  6258. }
  6259. },
  6260. props: {
  6261. isdisabled: {
  6262. type: Boolean,
  6263. default: true
  6264. },
  6265. isLetter: {
  6266. type: String,
  6267. default: "1"
  6268. }
  6269. },
  6270. components: {
  6271. detailsDialog,
  6272. quotationDialog,
  6273. quotationDialogPro,
  6274. imageDialog,
  6275. Ktletter1Popover,
  6276. floatingBar,
  6277. "el-image-viewer": () =>
  6278. import("element-ui/packages/image/src/image-viewer")
  6279. },
  6280. created() {
  6281. if (this.isLetter == "2") {
  6282. this.apiInterfaceName = "ordergenerateOrder";
  6283. }
  6284. if (this.isLetter == "1") {
  6285. this.$api.user.sysMenuRecordAdd(2, 1).then(res => { });
  6286. }
  6287. // this.commpanyList(); //获取保险公司
  6288. this.getDicType("taxRelifFlag"); //车船税类型
  6289. this.getDicType("taxpayerIdentifier"); //纳税人证件类型
  6290. this.getDicType("relifReason"); //减免税原因代码
  6291. this.getDicType("vehicleType"); //车辆种类
  6292. this.getDicType("trafficManagementVehicleType"); //车辆类型
  6293. this.getDicType("energyType"); //能源种类
  6294. this.getDicType("natureOfVehicleUse"); //车辆使用性质
  6295. this.getDicType("businessVehicleUse"); //(车辆用途)营业
  6296. this.getDicType("outOfBusinessVehicleUse"); //(车辆用途)非营业
  6297. this.getDicType("insOrderStatus"); //状态
  6298. this.$api.letter.queryCompany().then(res => {
  6299. this.continuousCompanyList = res.data;
  6300. });
  6301. this.$api.letter.packageQuery().then(res => {
  6302. this.packageOptions = res.data;
  6303. });
  6304. localStorage.setItem("carInfo", JSON.stringify(this.carInfo));
  6305. localStorage.setItem("insureList", JSON.stringify(this.insureList));
  6306. //--归属信息获取--
  6307. if (this.isLetter == 1 || this.isLetter == 2) {
  6308. var userId = Cookies.get("user");
  6309. if (userId == "admin") {
  6310. this.userId = "admin";
  6311. } else {
  6312. // this.userId = userId;
  6313. this.$api.user.getLoginUser().then(res => {
  6314. if (res.code == 200) {
  6315. this.userform = res.data;
  6316. this.$api.dept.getDeptById(res.data.deptId).then(res => {
  6317. this.deptName = res.data.name;
  6318. });
  6319. this.userId = res.data.id;
  6320. }
  6321. });
  6322. }
  6323. }
  6324. //--订单编辑回显--
  6325. // this.paramsEdit = this.$route.query.data; //接收参数
  6326. // this.obtainProtocol(this.$route.query.data);
  6327. this.getProductId(); // 获取险别
  6328. // this.editingWay(this.$route.query.data)
  6329. if (this.$route.query.data) {
  6330. this.editingWay(this.$route.query.data);
  6331. }
  6332. },
  6333. mounted() {
  6334. localStorage.removeItem('interestIndex')
  6335. this.isEnabled()
  6336. this.getCompanyList(this.$route.query.data);
  6337. this.onScroll();
  6338. this.initVerificationDict();
  6339. if (this.$route.query.data) {
  6340. if (this.isDateBeforeToday(this.$route.query.data.jqstartdate)) {
  6341. this.jqstartDate = this.transformTime1();
  6342. this.jqendDate = this.oneYearPast1(this.jqstartDate);
  6343. } else {
  6344. this.jqstartDate = this.$route.query.data.jqstartdate;
  6345. this.jqendDate = this.$route.query.data.jqenddate;
  6346. }
  6347. if (this.$route.query.data.jqstartdate.split(" ")[1] == "00:00:00") {
  6348. this.immediatelyValue = false;
  6349. } else {
  6350. this.immediatelyValue = true;
  6351. }
  6352. }
  6353. window.addEventListener("scroll", this.onScroll);
  6354. },
  6355. destroyed() {
  6356. window.removeEventListener("scroll", this.onScroll);
  6357. },
  6358. beforeCreate() {
  6359. _self = this;
  6360. },
  6361. computed: {
  6362. ...mapState({
  6363. collapse: state => state.app.collapse
  6364. }),
  6365. issueDateOptions() {
  6366. return {
  6367. disabledDate: this.disabledDate
  6368. };
  6369. }
  6370. },
  6371. filters: {
  6372. cap(ele) {
  6373. return _self.insOrderStatusoptions.find(item => {
  6374. return item.dictValue === ele;
  6375. }).dictTag;
  6376. }
  6377. },
  6378. methods: {
  6379. // 车损验车事项
  6380. initVerificationDict() {
  6381. this.$api.letter.getYaCarDamageVerificationDict().then(res => {
  6382. if(res.code == 200) {
  6383. this.verificationDict = res.data
  6384. }
  6385. })
  6386. },
  6387. //补录订单
  6388. supplementOrder(id) {
  6389. let params = {
  6390. companyId: id,
  6391. };
  6392. this.$api.letter.getByCompanyId(params).then((res) => {
  6393. if (res.code == "200") {
  6394. this.$router.push({
  6395. path: "/task/external/externalOrders",
  6396. query: { data: res.data },
  6397. });
  6398. }
  6399. })
  6400. },
  6401. quotechangeDate(value){
  6402. return dayjs(value).format("YYYY-MM-DD HH:mm:ss");
  6403. },
  6404. changeDate(value) {
  6405. return dayjs(value).format("YYYY-MM-DD");
  6406. },
  6407. vehicleUseChange(value) {
  6408. if ((value = "05")) {
  6409. this.carInfo.property = "1";
  6410. this.ownerInfo.property = "1";
  6411. this.ownerInfo.identifyType = "01";
  6412. }
  6413. },
  6414. propertyDisable(item) {
  6415. if (this.carInfo.vehicleUse == "05" && item.label == "企业") {
  6416. return true;
  6417. } else {
  6418. return false;
  6419. }
  6420. },
  6421. deleteJiaYi(reslistindex, drivingIndex) {
  6422. this.totalCompanyList[reslistindex].programme.drivingList.splice(
  6423. drivingIndex,
  6424. 1
  6425. );
  6426. this.$forceUpdate();
  6427. },
  6428. toWan(kindCode, num, type) {
  6429. console.log(kindCode)
  6430. console.log(type);
  6431. if (type == "fw") {
  6432. return num + "次";
  6433. }
  6434. if (num > 10000) {
  6435. if (num % 10000 == 0) {
  6436. return num / 10000 + "万";
  6437. } else {
  6438. return (num / 10000).toFixed(4) + "万";
  6439. }
  6440. } else if (num == 1 && kindCode == 'A') {
  6441. return "投保";
  6442. } else if (num == 1) {
  6443. return "共享保额";
  6444. }else{
  6445. return num;
  6446. }
  6447. },
  6448. // 所属性质字段
  6449. getCompanyListProperty(data) {
  6450. if (data == "1") {
  6451. this.ownerInfo.property = "1";
  6452. this.policyHolderInfo.property = "1";
  6453. this.insuredPersonInfo.property = "1";
  6454. this.ownerInfo.identifyType = "01";
  6455. this.policyHolderInfo.identifyType = "01";
  6456. this.insuredPersonInfo.identifyType = "01";
  6457. } else {
  6458. this.ownerInfo.property = "0";
  6459. this.policyHolderInfo.property = "0";
  6460. this.insuredPersonInfo.property = "0";
  6461. this.ownerInfo.identifyType = "10";
  6462. this.policyHolderInfo.identifyType = "10";
  6463. this.insuredPersonInfo.identifyType = "10";
  6464. }
  6465. this.getCompanyList();
  6466. },
  6467. // 获取新公司列表
  6468. getCompanyList(data) {
  6469. var _this = this;
  6470. if (!this.productId) {
  6471. this.$message.warning("请选择险种");
  6472. return;
  6473. }
  6474. let starttime = new Date(this.carInfo.registerDate);
  6475. let endtime = new Date(this.carInfo.issueDate);
  6476. if (endtime < starttime) {
  6477. this.$message({ message: "发证日期早于初登日期", type: "error" });
  6478. return;
  6479. }
  6480. this.policyHolderInfovalidate();
  6481. this.$refs["carInfo"].validate(valid => {
  6482. if (valid) {
  6483. _this.$refs["ownerInfo"].validate(async valid1 => {
  6484. if (valid1) {
  6485. if (!this.bbczcarShow && !this.bbtbcarShow) {
  6486. this.$refs["insuredPersonInfo"].validate(valid2 => {
  6487. if (!valid2) {
  6488. document.getElementById("toubaor").scrollIntoView();
  6489. this.$message({
  6490. message: "请检查被投保人信息",
  6491. type: "warning"
  6492. });
  6493. return;
  6494. }
  6495. });
  6496. }
  6497. if (!_this.productId) {
  6498. _this.$message.warning("请选择险别");
  6499. return;
  6500. }
  6501. let res = {};
  6502. let param = {
  6503. productId: this.productId,
  6504. carInfo: this.carInfo,
  6505. ownerInfo: this.ownerInfo,
  6506. applyInfo: this.policyHolderInfo,
  6507. insureInfo: this.insuredPersonInfo,
  6508. userId: this.isLetter == 2 ? this.userId : ""
  6509. };
  6510. if (JSON.stringify(param) === this.oldData) {
  6511. return;
  6512. } else {
  6513. this.oldData = JSON.stringify(param);
  6514. }
  6515. this.showLoading = true;
  6516. // this.$api.letter.getAllAgreement().then((res) => {
  6517. this.$api.letter.ruleFilterCompany(param).then(res => {
  6518. if (res.code == 200) {
  6519. res.data.map(ele => {
  6520. ele["result"] = ele.namesimple==='永安财险'?{carChecker: 3}:{};
  6521. ele["quoteCode"] = 0;
  6522. ele["checked"] = false;
  6523. ele["msg"] = "";
  6524. ele["lastYearMsg"] = "";
  6525. ele["agreementId"] = "";
  6526. ele["apiType"] = "";
  6527. ele["orderstatus"] = 0;
  6528. ele.coefficient = "";
  6529. // ele.pricingCoefficient = data.insAreaCompanyEditingDtos.find(item => ele.namesimple === item.namesimple).pricingCoefficient
  6530. // ele.pricingCoefficientUpper = data.insAreaCompanyEditingDtos.find(item => ele.namesimple === item.namesimple).pricingCoefficientUpper
  6531. // ele.pricingCoefficientLower = data.insAreaCompanyEditingDtos.find(item => ele.namesimple === item.namesimple).pricingCoefficientLower
  6532. ele.underwritingDescription =
  6533. ele.agreement[0].underwritingDescription;
  6534. if (
  6535. ele.isTaxSource &&
  6536. ele.isTaxSource == "1" &&
  6537. ele.agreement
  6538. ) {
  6539. ele.agreement.forEach(val => {
  6540. if (val.isTaxSource && val.isTaxSource == "1") {
  6541. ele.agreementId = val.id;
  6542. ele.apiType = val.apiType;
  6543. }
  6544. });
  6545. }
  6546. });
  6547. if (this.$route.query.data) {
  6548. data = data || this.$route.query.data;
  6549. }
  6550. if (data) {
  6551. this.selectedOptions1 = _this.ownerInfo.province
  6552. ? [
  6553. Number(_this.ownerInfo.province),
  6554. Number(_this.ownerInfo.city),
  6555. Number(_this.ownerInfo.county)
  6556. ]
  6557. : [];
  6558. this.selectedOptions2 = _this.policyHolderInfo.province
  6559. ? [
  6560. Number(_this.policyHolderInfo.province),
  6561. Number(_this.policyHolderInfo.city),
  6562. Number(_this.policyHolderInfo.county)
  6563. ]
  6564. : [];
  6565. this.selectedOptions13 = _this.insuredPersonInfo.province
  6566. ? [
  6567. Number(_this.insuredPersonInfo.province),
  6568. Number(_this.insuredPersonInfo.city),
  6569. Number(_this.insuredPersonInfo.county)
  6570. ]
  6571. : [];
  6572. this.productId = this.productId || data.productid;
  6573. res.data.forEach((val, index) => {
  6574. if (!data.insAreaCompanyEditingDtos) {
  6575. return;
  6576. }
  6577. data.insAreaCompanyEditingDtos.forEach(ele => {
  6578. if (val.namesimple == ele.inscompany) {
  6579. if (ele.inscompany == "中国人寿" && ele.companyId) {
  6580. res.data[index].discount = ele.discount
  6581. this.lastCompanyId = ele.companyId;
  6582. }
  6583. res.data[index].quoteCode = 200;
  6584. res.data[index].result = ele;
  6585. if(ele.inscompany == '阳光财险') {
  6586. res.data[index].pricingCoefficient = ele.pricingCoefficient
  6587. res.data[index].pricingCoefficientUpper = ele.pricingCoefficientUpper
  6588. res.data[index].pricingCoefficientLower = ele.pricingCoefficientLower
  6589. }
  6590. }
  6591. });
  6592. });
  6593. }
  6594. // //险种合并集合
  6595. } else {
  6596. this.$message.error(res.msg);
  6597. }
  6598. const combinedArray = [
  6599. ...this.riskList.map(item => item.riskCode),
  6600. ...this.kindList.map(item => item.kindCode)
  6601. ];
  6602. if (res.data) {
  6603. res.data = res.data.filter(obj => {
  6604. obj.agreement = obj.agreement.filter(agreementObj => {
  6605. // 险种配置为空,则过滤掉该协议
  6606. if (agreementObj.productsCodes == null) {
  6607. return true;
  6608. } else {
  6609. // 检查是否包含 A 的特殊处理
  6610. if (
  6611. combinedArray.includes("A") &&
  6612. !agreementObj.productsCodes.includes("A")
  6613. ) {
  6614. return false;
  6615. }
  6616. return agreementObj.productsCodes.some(item =>
  6617. combinedArray.includes(item)
  6618. );
  6619. }
  6620. });
  6621. return obj.agreement.length > 0; // 返回true保留,返回false移除该保险公司
  6622. });
  6623. res.data.forEach(e => {
  6624. if (e.agreement) {
  6625. e.agreement.forEach(el => (el.disabled = false));
  6626. }
  6627. if(e.namesimple=='永安财险') {
  6628. if(!e.result.carChecker) {
  6629. e.result.carChecker = 3
  6630. }
  6631. }
  6632. });
  6633. }
  6634. this.totalCompanyList = res.data;
  6635. this.showLoading = false;
  6636. });
  6637. } else {
  6638. document.getElementById("CheZhu").scrollIntoView();
  6639. _this.$message({ message: "请检查人员信息", type: "warning" });
  6640. }
  6641. });
  6642. } else {
  6643. document.getElementById("Car").scrollIntoView();
  6644. this.$message({ message: "请检查车辆信息", type: "warning" });
  6645. return false;
  6646. }
  6647. });
  6648. },
  6649. // 保费计算(报价)按钮
  6650. handleListJisuan(item, index) {
  6651. this.quote(index);
  6652. },
  6653. // 客户权益
  6654. isEnabled() {
  6655. this.$api.task.isEnabled().then(res => {
  6656. if(res.code === 200) {
  6657. this.isEnabledShow = res.data
  6658. } else {
  6659. this.$message({
  6660. message: res.msg,
  6661. type: 'warning'
  6662. })
  6663. }
  6664. })
  6665. },
  6666. handleChangeInterestIndex(item, index) {
  6667. if(this.interestIndex == index) {
  6668. this.interestIndex = -1
  6669. this.interestTableData = []
  6670. } else {
  6671. this.interestIndex = index
  6672. // this.interestData.pointProportion
  6673. let integral = (this.interestData.amount - this.interestData.pageResult.content[index].threeSettlementPrice)*this.interestData.pointProportion
  6674. this.interestTableData = this.interestData.pageResult.content[index].localEquityPackageAssociationList.map(a => {
  6675. return {
  6676. ...a,
  6677. integral: integral
  6678. }
  6679. })
  6680. }
  6681. // if(this.interestData.pageResult.content[index].localEquityPackageAssociationList) {
  6682. // this.interestTableData = this.interestData.pageResult.content[index].localEquityPackageAssociationList.map(a => {
  6683. // return {
  6684. // ...a,
  6685. // totalPackagePrice: this.interestData.pageResult.content[index].totalPackagePrice
  6686. // }
  6687. // })
  6688. // } else {
  6689. // this.interestTableData = []
  6690. // }
  6691. },
  6692. handleInterest(item, index) {
  6693. if(this.tbczcarShow) {
  6694. this.policyHolderInfo = {...this.ownerInfo}
  6695. }
  6696. if(this.bbtbcarShow) {
  6697. this.insuredPersonInfo = this.policyHolderInfo
  6698. }
  6699. if(this.bbczcarShow) {
  6700. this.insuredPersonInfo = this.ownerInfo
  6701. }
  6702. this.acceptOptions = [
  6703. {
  6704. label: `${this.policyHolderInfo.name}-${this.policyHolderInfo.mobile}`,
  6705. value: 0
  6706. },{
  6707. label: `${this.insuredPersonInfo.name}-${this.insuredPersonInfo.mobile}`,
  6708. value: 1
  6709. },{
  6710. label: `${this.ownerInfo.name}-${this.ownerInfo.mobile}`,
  6711. value: 2
  6712. }
  6713. ]
  6714. if(localStorage.getItem('interestIndex')) {
  6715. this.interestIndex = localStorage.getItem('interestIndex')
  6716. } else {
  6717. this.interestIndex = 0
  6718. }
  6719. this.$api.task.equityInfo({
  6720. companyId: item.result.companyId
  6721. }).then(res => {
  6722. if(res.code === 200) {
  6723. this.interestData = res.data
  6724. this.interestSelectData = item
  6725. this.interestList = res.data.pageResult.content
  6726. let integral = (this.interestData.amount - this.interestData.pageResult.content[this.interestIndex].threeSettlementPrice)*this.interestData.pointProportion
  6727. this.interestTableData = res.data.pageResult.content[this.interestIndex].localEquityPackageAssociationList.map(a => {
  6728. return {
  6729. ...a,
  6730. integral: integral
  6731. }
  6732. })
  6733. } else {
  6734. this.$message({
  6735. message: res.msg,
  6736. type: 'warning'
  6737. })
  6738. }
  6739. })
  6740. this.interestShow = true
  6741. },
  6742. handleCancel() {
  6743. this.interestShow = false
  6744. },
  6745. handleSubmit() {
  6746. if(this.interestPeople === '') {
  6747. this.$message({
  6748. message: '请先选择权益接收人!',
  6749. type: 'warning'
  6750. })
  6751. return;
  6752. }
  6753. let obj = this.interestData.feeOrderNewVo.exportFee.find(a => a.insuranceType === '合计')
  6754. let integral = (obj.totalAmount - this.interestList[this.interestIndex].threeSettlementPrice) * 100
  6755. this.interestShow = false
  6756. let info = this.interestPeople == 0?this.policyHolderInfo:this.interestPeople == 1?this.insuredPersonInfo:this.interestPeople == 2?this.ownerInfo:null
  6757. this.$api.task.saveEquity({
  6758. companyId: this.interestSelectData.result.companyId,
  6759. receiveType: this.interestPeople,
  6760. receiveName: info.name,
  6761. receivePhone: info.mobile,
  6762. receiveIdentify: info.identifyNumber,
  6763. orderMoney: obj.totalAmount,
  6764. point: integral.toFixed(2),
  6765. equityInfo: this.interestList[this.interestIndex]
  6766. }).then(res => {
  6767. if(res.code === 200) {
  6768. localStorage.setItem('interestIndex', this.interestIndex)
  6769. this.$message({
  6770. message: '权益保存成功!',
  6771. type: 'success'
  6772. })
  6773. } else {
  6774. this.$message({
  6775. message: res.msg,
  6776. type: 'warning'
  6777. })
  6778. }
  6779. })
  6780. },
  6781. // 修改险别
  6782. productIdChange() {
  6783. let index = this.totalCompanyList.findIndex(item => item.namesimple == '人保财险')
  6784. if(index !== -1) {
  6785. this.totalCompanyList[index].result.preDiscount = ''
  6786. }
  6787. if (this.productId != "0330") {
  6788. this.sychecked = true;
  6789. this.sycheckedChange(true);
  6790. } else {
  6791. this.sychecked = false;
  6792. this.sycheckedChange(false);
  6793. }
  6794. if (this.productId == "034001" || this.productId == "034002") {
  6795. this.jqchecked = false;
  6796. this.jqcheckedChange(false);
  6797. } else {
  6798. this.jqchecked = true;
  6799. this.jqcheckedChange(true);
  6800. }
  6801. this.getCompanyList();
  6802. if (this.policyHolderInfo.property == "0") {
  6803. this.vehicleAndVesselTaxForm.taxpayerIdentifier = "10";
  6804. }
  6805. if (this.policyHolderInfo.property == "1") {
  6806. this.vehicleAndVesselTaxForm.taxpayerIdentifier = "01";
  6807. }
  6808. this.totalCompanyList.forEach(val => {
  6809. val.checked = false;
  6810. });
  6811. },
  6812. // 选择方案
  6813. checkedPopover(reslistindex, index, item) {
  6814. if (index == 99) {
  6815. if (
  6816. this.totalCompanyList[reslistindex].programme99 &&
  6817. !this.totalCompanyList[reslistindex].programme99.schemeId
  6818. ) {
  6819. return;
  6820. }
  6821. if (!this.totalCompanyList[reslistindex].zxProgramme) {
  6822. this.totalCompanyList[reslistindex].zxProgramme = {
  6823. // 自选方案详情
  6824. description: "",
  6825. drivingList: [],
  6826. jqx: {
  6827. name: "交通事故强制责任险"
  6828. },
  6829. kinds: {
  6830. additional: [],
  6831. main: [],
  6832. service: []
  6833. }
  6834. };
  6835. }
  6836. this.typeDialogIndex = reslistindex; // 当前的公司index
  6837. this.totalCompanyList[reslistindex].programme = this.totalCompanyList[
  6838. reslistindex
  6839. ].zxProgramme; // 选中的自定义方案详情
  6840. } else {
  6841. this.totalCompanyList[reslistindex].programme = item; // 选中的方案详情
  6842. }
  6843. this.totalCompanyList[reslistindex].checkedProgramme = index; // 选中的方案
  6844. this.productList.forEach(val => {
  6845. if (val.code == this.productId) {
  6846. this.totalCompanyList[reslistindex].programme.description = val.desc;
  6847. }
  6848. });
  6849. this.$forceUpdate();
  6850. },
  6851. // 获取方案信息
  6852. getCompanyProgramme(e, code, name, index) {
  6853. this.totalCompanyList[index].checked = false;
  6854. this.$api.letter
  6855. .getAllSchemeList({
  6856. companyId: code,
  6857. productId: this.productId,
  6858. seatNum: this.carInfo.seatCount,
  6859. vehicleType: this.carInfo.cimodelclass,
  6860. energyType: this.carInfo.energyType,
  6861. carnature: this.carInfo.carnature
  6862. })
  6863. .then(res => {
  6864. if (res.code == 200) {
  6865. this.totalCompanyList[index].schemes = res.data.schemes;
  6866. this.totalCompanyList[index].programme99 = res.data
  6867. .optionalScheme || { kinds: [] }; // 获取自选方案弹窗信息
  6868. if (res.data.schemes[0]) {
  6869. this.checkedPopover(index, 0, res.data.schemes[0]);
  6870. } else {
  6871. this.checkedPopover(index, 99);
  6872. }
  6873. this.totalCompanyList[index].checked = true;
  6874. if(name == 'yongan') {
  6875. if(this.totalCompanyList[index].programme.kinds.main.find(item => item.kindCode == 'A')) {
  6876. this.totalCompanyList[index].result.carChecker = 1
  6877. }
  6878. }
  6879. }
  6880. });
  6881. },
  6882. // 获取险别
  6883. getProductId() {
  6884. // /plt/scheme/getProductInfo
  6885. this.$api.letter.getProductInfo().then(res => {
  6886. this.productList = res.data;
  6887. });
  6888. },
  6889. // 选择特约
  6890. handleCloseTeYue() {
  6891. this.showTeYueVisible = false;
  6892. },
  6893. checkTeYue(item) {
  6894. this.showTeYueVisible = true;
  6895. },
  6896. // 驾意险详情
  6897. handleCloseShowDetailJiaYi() {
  6898. this.showDetailJiaYiVisible = false;
  6899. this.showDetailJiaYiVisible1 = false;
  6900. this.showDetailtable = [];
  6901. this.typeDialogData = {};
  6902. },
  6903. // 确认驾意
  6904. handleAddYiWai() {
  6905. let arr = [];
  6906. this.checkList.forEach(val => {
  6907. if (this.totalCompanyList[this.typeDialogIndex].cnName == "zijin") {
  6908. if (val.tableData) arr.push(...val.tableData);
  6909. // } else if (this.totalCompanyList[this.typeDialogIndex].cnName == 'guoRen' || this.totalCompanyList[this.typeDialogIndex].cnName == 'ansheng') {
  6910. // arr.push({...val.tableData, select: val.select})
  6911. } else {
  6912. if (val.tableData) arr.push(val.tableData);
  6913. }
  6914. });
  6915. this.totalCompanyList[this.typeDialogIndex].zxProgramme.drivingList = arr;
  6916. this.totalCompanyList[this.typeDialogIndex].programme.drivingList = arr;
  6917. this.handleCloseAddYiwai();
  6918. },
  6919. // 驾意输入框按钮
  6920. numberChange(listIndex, index, type, minquantity, dataIndex) {
  6921. if (dataIndex >= 0) {
  6922. if (type == "plus") {
  6923. // if (this.jiayiDialogData.drivingTypeList[listIndex].children[index].tableData[dataIndex].quantity < 100) {
  6924. this.jiayiDialogData.drivingTypeList[listIndex].children[index]
  6925. .tableData[dataIndex].quantity++;
  6926. // }
  6927. } else {
  6928. if (
  6929. this.jiayiDialogData.drivingTypeList[listIndex].children[index]
  6930. .tableData[dataIndex].quantity > minquantity
  6931. ) {
  6932. this.jiayiDialogData.drivingTypeList[listIndex].children[
  6933. index
  6934. ].tableData[dataIndex].quantity -= 1;
  6935. }
  6936. }
  6937. } else {
  6938. if (type == "plus") {
  6939. // if (this.jiayiDialogData.drivingTypeList[listIndex].children[index].tableData.quantity < 100) {
  6940. this.jiayiDialogData.drivingTypeList[listIndex].children[index]
  6941. .tableData.quantity++;
  6942. // }
  6943. } else {
  6944. if (
  6945. this.jiayiDialogData.drivingTypeList[listIndex].children[index]
  6946. .tableData.quantity > minquantity
  6947. ) {
  6948. this.jiayiDialogData.drivingTypeList[listIndex].children[
  6949. index
  6950. ].tableData.quantity -= 1;
  6951. }
  6952. }
  6953. }
  6954. this.$forceUpdate();
  6955. },
  6956. // 选中驾意一层
  6957. handleChangeSelectGuoren(index) {
  6958. this.checkList[index].tableData1 = undefined;
  6959. this.checkList[index].detail.forEach(val => {
  6960. if (val.projectName == this.checkList[index].select) {
  6961. this.checkList[index].tableData1 = val.insDrivingIntentionInsurances;
  6962. }
  6963. });
  6964. },
  6965. changeInput(e, listIndex, index, type, minquantity, dataIndex) {
  6966. let num = Number(e);
  6967. if (dataIndex >= 0) {
  6968. this.jiayiDialogData.drivingTypeList[listIndex].children[
  6969. index
  6970. ].tableData[dataIndex].quantity = num < minquantity ? minquantity : num;
  6971. } else {
  6972. this.jiayiDialogData.drivingTypeList[listIndex].children[
  6973. index
  6974. ].tableData.quantity = num < minquantity ? minquantity : num;
  6975. }
  6976. this.$forceUpdate();
  6977. },
  6978. // 选中驾意
  6979. handleChangeSelect(index) {
  6980. if (this.totalCompanyList[this.typeDialogIndex].cnName == "zijin") {
  6981. this.checkList[index].tableData = [];
  6982. this.checkList[index].detail.forEach(val => {
  6983. this.checkList[index].selectList.forEach(value => {
  6984. if (val.alias == value) {
  6985. this.checkList[index].tableData.push(val);
  6986. this.$forceUpdate();
  6987. }
  6988. });
  6989. });
  6990. // } else if (this.totalCompanyList[this.typeDialogIndex].cnName == 'guoRen' || this.totalCompanyList[this.typeDialogIndex].cnName == 'ansheng' || this.totalCompanyList[this.typeDialogIndex].cnName == 'ansheng') {
  6991. // this.checkList[index].tableData1.forEach((val) => {
  6992. // if (val.projectName == this.checkList[index].select1) {
  6993. // this.checkList[index].tableData = val
  6994. // }
  6995. // })
  6996. } else {
  6997. this.checkList[index].detail.forEach(val => {
  6998. val.quantity = val.minQuantity ? val.minQuantity : val.quantity;
  6999. if (val.alias == this.checkList[index].select) {
  7000. this.checkList[index].tableData = val;
  7001. }
  7002. });
  7003. }
  7004. },
  7005. handleChangeJiayi(listItem, listIndex) {
  7006. if (this.checkList.length) {
  7007. this.checkList.forEach(val => {
  7008. this.$api.letter
  7009. .getDriving({
  7010. schemeId: this.jiayiDialogData.schemeId,
  7011. seatNum: this.carInfo.seatCount
  7012. // companyId: this.totalCompanyList[this.typeDialogIndex].id,
  7013. // type: val.id,
  7014. // productId: this.productId,
  7015. // vehicleType: this.carInfo.cimodelclass,
  7016. // energyType: this.carInfo.energyType,
  7017. // carnature: this.carInfo.carnature
  7018. })
  7019. .then(res => {
  7020. if (res.code == 200) {
  7021. val.detail = res.data;
  7022. this.$forceUpdate();
  7023. }
  7024. });
  7025. });
  7026. }
  7027. },
  7028. propertyTpe(val) {
  7029. this[val].identifyType = this[val].property == "0" ? "10" : "01";
  7030. },
  7031. showDetailJiaYi(item, index, type) {
  7032. this.showDetailtable = [];
  7033. item.programme.drivingList.forEach(val => {
  7034. this.$api.letter
  7035. .getDrivingSon({
  7036. companyId: this.totalCompanyList[index].id,
  7037. projectCode: val.projectCode
  7038. })
  7039. .then(res => {
  7040. if (res.code == 200) {
  7041. this.showDetailtable.push(res.data);
  7042. }
  7043. });
  7044. });
  7045. if (type) {
  7046. this.detailJiaYiTitle = "驾意险详情";
  7047. this.showDetailJiaYiVisible1 = true;
  7048. } else {
  7049. this.detailJiaYiTitle = "查看详情";
  7050. this.showDetailJiaYiVisible = true;
  7051. }
  7052. this.typeDialogData = item.programme;
  7053. this.typeDialogData.shangyeList = [
  7054. ...item.programme.kinds.main,
  7055. ...item.programme.kinds.additional,
  7056. ...item.programme.kinds.service
  7057. ];
  7058. },
  7059. // 添加驾意险
  7060. addJiaYi(item) {
  7061. this.jiayiDialogData = item.programme99;
  7062. this.addYiwaiDialogVisible = true;
  7063. },
  7064. handleCloseAddYiwai() {
  7065. this.jiayiDialogData = {};
  7066. this.checkList = [];
  7067. this.addYiwaiDialogVisible = false;
  7068. },
  7069. // 调整险种
  7070. // 确定险种
  7071. subTypeDialog() {
  7072. // this.totalCompanyList[this.typeDialogIndex].zxProgramme = {}
  7073. // this.totalCompanyList[reslistindex].zxProgramme
  7074. let main = [];
  7075. let additional = [];
  7076. let service = [];
  7077. this.typeDialogData.kinds.forEach((val, index) => {
  7078. if (val.checked) {
  7079. if (val.grouping == "main") {
  7080. main.push(val);
  7081. }
  7082. if (val.grouping == "additional") {
  7083. additional.push(val);
  7084. }
  7085. if (val.grouping == "service") {
  7086. service.push(val);
  7087. }
  7088. }
  7089. });
  7090. this.totalCompanyList[this.typeDialogIndex].zxProgramme.kinds = {
  7091. main,
  7092. additional,
  7093. service
  7094. };
  7095. this.totalCompanyList[this.typeDialogIndex].programme.kinds = {
  7096. main,
  7097. additional,
  7098. service
  7099. };
  7100. this.handleAddYiWai();
  7101. this.handleCloseType();
  7102. },
  7103. showTypeDialog(item, index) {
  7104. item.programme99.kinds.map(item => {
  7105. const itemamtList = item.amtList.map(val => {
  7106. return val.label;
  7107. });
  7108. if (!itemamtList.includes("不投保")) {
  7109. item.checked = true;
  7110. item.Required = true;
  7111. item.amount = item.amtList.length ? item.amtList[0].value : item.max;
  7112. }
  7113. return item;
  7114. });
  7115. this.typeDialogData = item.programme99;
  7116. this.jiayiDialogData = item.programme99;
  7117. this.typeDialogVisible = true;
  7118. },
  7119. handleCloseType() {
  7120. this.typeDialogVisible = false;
  7121. this.typeDialogData = [];
  7122. this.jiayiDialogData = {};
  7123. this.checkList = [];
  7124. },
  7125. //清空保单图片
  7126. removePhoto(file, fileList, type) {
  7127. this.policyNumberForm[type] = [];
  7128. },
  7129. editingWay(paramsEdit) {
  7130. // console.log(paramsEdit)
  7131. if (paramsEdit) {
  7132. var _this = this;
  7133. this.jqchecked = false;
  7134. this.tbczcarShow = false;
  7135. this.bbtbcarShow = false;
  7136. this.bbczcarShow = false;
  7137. const {
  7138. carinfo,
  7139. ownerinfo,
  7140. applyinfo,
  7141. insureinfo,
  7142. quoteno,
  7143. orderno
  7144. } = paramsEdit;
  7145. this.editorInfo = { ...paramsEdit };
  7146. // this.vehicleAndVesselTaxForm = { ...paramsEdit.vehicleAndVesselTax };
  7147. // console.log(paramsEdit.jqstartdate, 6666);
  7148. if (paramsEdit.jqstartdate) {
  7149. if (paramsEdit.jqstartdate.split(" ")[1] == "00:00:00") {
  7150. this.immediatelyValue = false;
  7151. } else {
  7152. this.immediatelyValue = true;
  7153. }
  7154. } else {
  7155. this.immediatelyValue = true;
  7156. }
  7157. _this.carInfo = carinfo;
  7158. if (_this.carInfo.carnature == "8A") {
  7159. _this.carInfo.carnature = "02";
  7160. _this.carInfo.vehicleUse = "05";
  7161. } else {
  7162. _this.carInfo.carnature;
  7163. _this.carInfo.vehicleUse;
  7164. }
  7165. _this.ownerInfo = ownerinfo;
  7166. _this.policyHolderInfo = applyinfo;
  7167. _this.insuredPersonInfo = insureinfo;
  7168. _this.quoteno = quoteno;
  7169. _this.orderno = orderno;
  7170. _this.productId = paramsEdit.productid;
  7171. _this.tbczcarShow = applyinfo.owner;
  7172. _this.bbczcarShow = insureinfo.owner;
  7173. _this.kindList = paramsEdit.king;
  7174. _this.bbtbcarShow = insureinfo.insuranceHolder;
  7175. _this.ownerInfo.age = _this.ownerInfo.age
  7176. ? getAgeByIdCard(_this.ownerInfo.identifyNumber)
  7177. : "";
  7178. _this.policyHolderInfo.age = _this.policyHolderInfo.age
  7179. ? getAgeByIdCard(_this.policyHolderInfo.identifyNumber)
  7180. : "";
  7181. _this.insuredPersonInfo.age = _this.policyHolderInfo.age
  7182. ? getAgeByIdCard(_this.insuredPersonInfo.identifyNumber)
  7183. : "";
  7184. _this.ownerInfo.property = _this.ownerInfo.property
  7185. ? _this.ownerInfo.property
  7186. : "1";
  7187. _this.policyHolderInfo.property = _this.policyHolderInfo.property
  7188. ? _this.policyHolderInfo.property
  7189. : "1";
  7190. _this.insuredPersonInfo.property = _this.insuredPersonInfo.property
  7191. ? _this.insuredPersonInfo.property
  7192. : "1";
  7193. if (paramsEdit.carinfo.transferFlag) {
  7194. this.transferDateShow = true;
  7195. } else {
  7196. this.transferDateShow = false;
  7197. this.carInfo.transferDate = ''
  7198. }
  7199. paramsEdit.risk.map(ele => {
  7200. if (ele.riskCode == "0507") {
  7201. _this.jqchecked = true;
  7202. this.protocolJudge("0507", true);
  7203. _this.riskList.push({
  7204. riskCode: "0507"
  7205. });
  7206. // _this.jqstartDate = ele.startDate;
  7207. // _this.jqendDate = ele.endDate;
  7208. // this.jqstartDate = this.$route.query.data.jqstartdate
  7209. // this.jqendDate = this.$route.query.data.jqenddate
  7210. _this.jqstartDate = this.transformTime1();
  7211. _this.jqendDate = this.oneYearPast1(this.jqstartDate);
  7212. } else if (ele.riskCode == "0510") {
  7213. _this.sychecked = true;
  7214. this.protocolJudge("0510", true);
  7215. _this.riskList.push({
  7216. riskCode: "0510"
  7217. });
  7218. // _this.systartDate = ele.startDate;
  7219. // _this.syendDate = ele.endDate;
  7220. if (new Date(ele.startDate).getTime() > new Date().getTime()) {
  7221. _this.systartDate = ele.startDate;
  7222. _this.syendDate = ele.endDate;
  7223. } else {
  7224. _this.systartDate = this.transformTime1();
  7225. _this.syendDate = this.oneYearPast1(this.systartDate);
  7226. }
  7227. _this.insureList.map(eleA => {
  7228. paramsEdit.king.map(eleB => {
  7229. if (eleA.kindCode == eleB.kindCode) {
  7230. switch (eleB.kindCode) {
  7231. case "D4":
  7232. case "SY_FJ_YBW2":
  7233. eleA.amount = JSON.stringify(eleB.unitAmount);
  7234. break;
  7235. case "MJ1":
  7236. case "MJ2":
  7237. case "MJ3":
  7238. case "MJ4":
  7239. eleA.amount = eleB.deductibleRate;
  7240. case "A":
  7241. eleA.amount = JSON.stringify(eleB.amount);
  7242. this.protocolJudge("A", true);
  7243. break;
  7244. default:
  7245. eleA.amount = JSON.stringify(eleB.amount);
  7246. }
  7247. }
  7248. });
  7249. });
  7250. }
  7251. });
  7252. // this.HistoryList = this.paramsEdit.insAreaCompanyList;
  7253. let params = {
  7254. orderNo: paramsEdit.orderno,
  7255. orderStatus: ""
  7256. };
  7257. this.$api.letter.queryQuoteHistory(params).then(res => {
  7258. res.data.forEach(item => {
  7259. if (item.accidentInfo) {
  7260. item.accidentInfo.constructor === Object
  7261. ? [item.accidentInfo]
  7262. : item.accidentInfo;
  7263. }
  7264. });
  7265. this.HistoryList = res.data;
  7266. });
  7267. //--获取影像信息--
  7268. _this.imageEcho(this.quoteno);
  7269. // this.$refs.imageDialog.imageEcho(this.quoteno)
  7270. // this.commpanyList()
  7271. //--显示影像按钮--
  7272. _this.imageUploadShow = true;
  7273. this.$forceUpdate();
  7274. _this.obtainProtocol(paramsEdit);
  7275. } else {
  7276. this.jqstartDate = this.transformTime1();
  7277. this.jqendDate = this.oneYearPast1(this.jqstartDate);
  7278. this.systartDate = this.transformTime1();
  7279. this.syendDate = this.oneYearPast1(this.systartDate);
  7280. }
  7281. },
  7282. handleRemove1(file, imageIdList, imgList) {
  7283. this[imageIdList].map((ele, index) => {
  7284. if (file.imageId === ele.imageId) {
  7285. this[imageIdList].splice(index, 1);
  7286. }
  7287. return ele;
  7288. });
  7289. if (file.imageId) {
  7290. this[imgList].map((ele, index) => {
  7291. if (file.imageId === ele.imageId) {
  7292. this[imgList].splice(index, 1);
  7293. }
  7294. return ele;
  7295. });
  7296. } else {
  7297. this[imgList].map((ele, index) => {
  7298. if (file.uid === ele.uid) {
  7299. this[imgList].splice(index, 1);
  7300. }
  7301. return ele;
  7302. });
  7303. }
  7304. },
  7305. uploadinformation() {
  7306. // //上传图片
  7307. const mergedArray = [
  7308. ...this.imageList1,
  7309. ...this.imageList2,
  7310. ...this.imageList3,
  7311. ...this.imageList4,
  7312. ...this.imageList5,
  7313. ...this.imageList6
  7314. ];
  7315. let imageparam = {
  7316. imageList: mergedArray,
  7317. quoteNo: this.quoteno
  7318. };
  7319. this.$api.letter.uploadImages(imageparam).then(responses => {
  7320. if (responses.code == "200") {
  7321. this.imageEcho(this.quoteno);
  7322. this.$message({ message: responses.msg, type: "success" });
  7323. } else {
  7324. this.$message({ message: responses.msg, type: "error" });
  7325. }
  7326. });
  7327. this.imageUploaddialogVisible = false;
  7328. },
  7329. repairinformation() {
  7330. // //上传图片
  7331. const mergedArray = [
  7332. ...this.imageList1,
  7333. ...this.imageList2,
  7334. ...this.imageList3,
  7335. ...this.imageList4,
  7336. ...this.imageList5,
  7337. ...this.imageList6
  7338. ];
  7339. let imageparam = {
  7340. imageList: mergedArray,
  7341. companyId: this.companyId
  7342. };
  7343. this.$api.letter.additionalInformation(imageparam).then(responses => {
  7344. if (responses.code == "200") {
  7345. this.imageUploaddialogVisible = false;
  7346. this.$message({ message: responses.msg, type: "success" });
  7347. } else {
  7348. this.$message({ message: responses.msg, type: "error" });
  7349. }
  7350. });
  7351. },
  7352. //手机号复制粘贴处理
  7353. handlePaste(e, mobileKey) {
  7354. e.preventDefault(); //阻止默认行为
  7355. const clipboardData = e.clipboardData || window.clipboardData; //获取剪切板内容
  7356. let pastedText = clipboardData.getData("text").replace(/\s+/g, ""); //获取纯文本并处理空格
  7357. // 截取前11个字符,以确保不会超过手机号长度限制
  7358. pastedText = pastedText.substring(0, 11);
  7359. // 使用Vue.nextTick确保更新发生在DOM更新之后
  7360. this.$nextTick(() => {
  7361. this[mobileKey].mobile = pastedText;
  7362. });
  7363. },
  7364. // licenseNoFun(data){
  7365. // if(data && this.carInfo.enginedesc){
  7366. // this.obtainProtocol()
  7367. // }
  7368. // },
  7369. // enginedescFun(data){
  7370. // if(data && this.carInfo.licenseNo){
  7371. // this.obtainProtocol()
  7372. // }
  7373. // },
  7374. packageChange(val) {
  7375. let arr = this.packageOptions.find(ele => ele.id == val).kind;
  7376. if (arr.length > 0) {
  7377. this.insureList.map(eleA => {
  7378. arr.map(eleB => {
  7379. if (eleA.kindCode == eleB.kindCode) {
  7380. switch (eleB.kindCode) {
  7381. case "D4":
  7382. case "SY_FJ_YBW2":
  7383. eleA.amount = JSON.stringify(eleB.unitAmount);
  7384. break;
  7385. case "MJ1":
  7386. case "MJ2":
  7387. case "MJ3":
  7388. case "MJ4":
  7389. eleA.amount = eleB.deductibleRate;
  7390. break;
  7391. case "TY2":
  7392. case "TY3":
  7393. case "TY4":
  7394. eleA.amount = eleB.serviceTimes;
  7395. break;
  7396. default:
  7397. eleA.amount = JSON.stringify(eleB.amount);
  7398. }
  7399. }
  7400. });
  7401. });
  7402. } else {
  7403. this.insureList.map(eleA => {
  7404. eleA.amount = "0";
  7405. });
  7406. }
  7407. },
  7408. capType(val) {
  7409. if (val == "0") {
  7410. return "success";
  7411. }
  7412. if (val == "1") {
  7413. return "warning";
  7414. }
  7415. if (val == "2" || val == "3" || val == "4") {
  7416. return "danger";
  7417. }
  7418. },
  7419. handleCheckAllChange(ele) {
  7420. this.totalCompanyList.forEach((val, index) => {
  7421. ele ? (val.checked = true) : (val.checked = false);
  7422. // this.initchange(ele, val.id, val.cnName, index);
  7423. });
  7424. },
  7425. retractFun() {
  7426. this.isRetract = this.isRetract == false ? true : false;
  7427. },
  7428. //中煤意外险调整份数事件
  7429. ZMhandleChange(val) {
  7430. if (!val) {
  7431. this.$refs.ZmMultipleTable[0].clearSelection(); //清除
  7432. }
  7433. },
  7434. //中煤意外险选中对应意外险方案
  7435. // ZMHandleSelectionChange(val) {
  7436. // // if(val.length > 0&& val[0].quantity==undefined){
  7437. // // this.$message({ message: "请先填写投保份数再勾选!", type: "error", });
  7438. // // this.$refs.ZmMultipleTable[0].clearSelection(); //清除
  7439. // // return false;
  7440. // // }
  7441. // if (val.length > 1) {
  7442. // this.$refs.ZmMultipleTable[0].clearSelection(); //清除
  7443. // this.$refs.ZmMultipleTable[0].toggleRowSelection(val.pop()); //pop:最后一个
  7444. // } else {
  7445. // this.zhongmeiaccidentalDrivingVo = val[0]; //multipleSelection:当前选择的数组
  7446. // }
  7447. // },
  7448. //中煤意外险选中对应产品带出方案明细
  7449. zhongmeiInsuranceChange(index) {
  7450. //每次选中产品,清空之前选中的数据
  7451. this.zhongmeitemplateSelection = index;
  7452. this.zhongmeiaccidentalDrivingVo = {};
  7453. this.zhongmeiInsuranceDataTable = [];
  7454. let data = this.zhongmeiInsuranceData.find(
  7455. val => val.projectCode == index
  7456. );
  7457. //把返回的方案明细放入展示数据对象中
  7458. this.accidentFormZM = Object.assign(this.accidentFormZM, data);
  7459. this.accidentFormZM.quantity = "1";
  7460. if (data && data.son) {
  7461. this.accidentPremiumZM = data.sumPremium;
  7462. this.zhongmeiInsuranceDataTable = data.son;
  7463. }
  7464. },
  7465. // 截图粘贴
  7466. copybjd() {
  7467. let that = this;
  7468. html2Canvas(document.getElementById("pdfContentsDiv"), {
  7469. allowTaint: true,
  7470. taintTest: false
  7471. }).then(function (canvas) {
  7472. let base64Data = "";
  7473. // let blob = null
  7474. base64Data = canvas.toDataURL("image/png", 1);
  7475. const date = new Date();
  7476. const saveInfo = {
  7477. download: date.getTime() + `.png`,
  7478. href: base64Data
  7479. };
  7480. const element = document.createElement("a");
  7481. element.style.display = "none";
  7482. for (const key in saveInfo) {
  7483. element.setAttribute(key, saveInfo[key]);
  7484. }
  7485. document.body.appendChild(element);
  7486. element.click();
  7487. setTimeout(() => {
  7488. document.body.removeChild(element);
  7489. }, 300);
  7490. // var format = 'image/png'
  7491. // //将Base64图片编码转换成blob
  7492. // var base64 = base64Data
  7493. // var code = window.atob(base64.split(',')[1])
  7494. // var aBuffer = new window.ArrayBuffer(code.length)
  7495. // var uBuffer = new window.Uint8Array(aBuffer)
  7496. // for (var i = 0; i < code.length; i++) {
  7497. // uBuffer[i] = code.charCodeAt(i) & 0xff
  7498. // }
  7499. // try {
  7500. // blob = new Blob([uBuffer], { type: format })
  7501. // } catch (e) {
  7502. // window.BlobBuilder =
  7503. // window.BlobBuilder ||
  7504. // window.WebKitBlobBuilder ||
  7505. // window.MozBlobBuilder ||
  7506. // window.MSBlobBuilder
  7507. // if (e.name == 'TypeError' && window.BlobBuilder) {
  7508. // var bb = new window.BlobBuilder()
  7509. // bb.append(uBuffer.buffer)
  7510. // blob = bb.getBlob('image/png')
  7511. // } else if (e.name == 'InvalidStateError') {
  7512. // blob = new Blob([aBuffer], { type: format })
  7513. // }
  7514. // }
  7515. // const clipboardItemInput = new ClipboardItem({
  7516. // 'image/png': blob,
  7517. // })
  7518. // that.$copyText({
  7519. // 'image/png': blob,
  7520. // }).then(
  7521. //   function(e) {
  7522. //     console.log("copy arguments e:", e);
  7523. //     alert("复制成功!");
  7524. //   },
  7525. //   function(e) {
  7526. //     console.log("copy arguments e:", e);
  7527. //     alert("复制失败!");
  7528. //   }
  7529. //   ),
  7530. // navigator.clipboard.write([clipboardItemInput])
  7531. // that.$message({
  7532. // message: '已截图并复制到粘贴板!',
  7533. // type: 'success'
  7534. // });
  7535. });
  7536. },
  7537. // 即时起保
  7538. immediatelyChange(e) {
  7539. if (e) {
  7540. this.immediatelyValue = true;
  7541. const date = new Date();
  7542. date.setHours(date.getHours() + 2);
  7543. date.setMinutes(0);
  7544. date.setSeconds(0);
  7545. this.jqstartDate = date;
  7546. this.jqendDate = this.oneYearPast1(date);
  7547. } else {
  7548. this.immediatelyValue = false;
  7549. this.jqstartDate = this.transformTime1();
  7550. this.jqendDate = this.oneYearPast1(this.jqstartDate);
  7551. }
  7552. },
  7553. // 使用性质方法
  7554. natureFun() {
  7555. if (this.carInfo.carnature == "01") {
  7556. this.carInfo.vehicleUse = "";
  7557. }
  7558. },
  7559. // 点击同步报价后的时间
  7560. syncData(item) {
  7561. this.jqstartDate = item.startDateJq ? item.startDateJq : this.jqstartDate;
  7562. this.jqendDate = item.endDateJq ? item.endDateJq : this.endDateJq;
  7563. this.systartDate = item.startDateSy ? item.startDateSy : this.systartDate;
  7564. this.syendDate = item.endDateSy ? item.endDateSy : this.syendDate;
  7565. },
  7566. //纳税类型事件
  7567. taxRelifFlagChange(val) {
  7568. if (val == 4) {
  7569. citydata.rawCitiesData.map(val => {
  7570. this.provinceSelect.push({
  7571. name: val.name,
  7572. code: val.code
  7573. });
  7574. return val;
  7575. });
  7576. }
  7577. },
  7578. //身份证前六位识别地区
  7579. // getAreaByCode(code) {
  7580. // let list = regionData;
  7581. // let provinceCode = code.substring(0, 2);
  7582. // let cityCode = code.substring(0, 4);
  7583. // let areaCode = code.substring(0, 6);
  7584. // // 获取省份信息
  7585. // let province = list.filter(function (item) {
  7586. // return item.value === provinceCode;
  7587. // });
  7588. // // 获取城市信息
  7589. // let city = province[0].children.filter(function (item) {
  7590. // return item.value === cityCode;
  7591. // });
  7592. // if (city.length > 0) {
  7593. // // 获取区/县信息
  7594. // let area = city[0].children.filter(function (item) {
  7595. // return item.value === areaCode;
  7596. // });
  7597. // return province[0].label + city[0].label + area[0].label;
  7598. // }
  7599. // },
  7600. //--数据字典 begin --
  7601. getDicType(type) {
  7602. this.$api.insCompany.dicType(type).then(res => {
  7603. if (res.code == 200) {
  7604. if (type == "insOrderStatus") {
  7605. let data = JSON.parse(JSON.stringify(res.data.ddList));
  7606. data.unshift({
  7607. dictTag: "全部",
  7608. dictValue: "888"
  7609. });
  7610. this[type + "options"] = data;
  7611. } else {
  7612. this[type + "options"] = res.data.ddList;
  7613. }
  7614. }
  7615. });
  7616. },
  7617. //身份证失去焦点
  7618. identifyblur(info) {
  7619. // console.log(getAgeByIdCard(this[info].identifyNumber))
  7620. this[info].age =
  7621. typeof getAgeByIdCard(this[info].identifyNumber) == "number"
  7622. ? getAgeByIdCard(this[info].identifyNumber)
  7623. : "";
  7624. this[info].gender = getGenderByIdCard(this[info].identifyNumber);
  7625. },
  7626. //车主信息选择性别
  7627. genderChange(e) {
  7628. if (this.tbczcarShow) {
  7629. this.policyHolderInfo.gender = e;
  7630. } else if (this.bbczcarShow) {
  7631. this.insuredPersonInfo.gender = e;
  7632. }
  7633. },
  7634. //省市区
  7635. areahandleChange(event, info) {
  7636. if (event[0] != null && event[1] != null && event[2] != null) {
  7637. this[info].province = event[0];
  7638. this[info].provinceName = this.getSelectedNames(event)[0];
  7639. this[info].city = event[1];
  7640. this[info].cityName = this.getSelectedNames(event)[1];
  7641. this[info].county = event[2];
  7642. this[info].countyName = this.getSelectedNames(event)[2];
  7643. }
  7644. },
  7645. getSelectedNames(codes) {
  7646. const names = [];
  7647. const findNames = (options, codes) => {
  7648. options.forEach(option => {
  7649. if (codes.includes(option.code)) {
  7650. names.push(option.name);
  7651. if (option.sub) {
  7652. findNames(option.sub, codes);
  7653. }
  7654. }
  7655. });
  7656. };
  7657. findNames(this.areaOption, codes);
  7658. return names;
  7659. },
  7660. iconfftter(icon) {
  7661. return CommonUtil.getDataName({
  7662. dataList: this.global.insCompanyList,
  7663. value: "name",
  7664. label: "icon",
  7665. data: icon
  7666. });
  7667. },
  7668. disabledDate(time) {
  7669. let datetime = this.carInfo.registerDate;
  7670. return time.getTime() < new Date(datetime).getTime() - 8.64e7;
  7671. },
  7672. onScroll() {
  7673. // 变量scrollTop是滚动条滚动时,滚动条上端距离顶部的距离
  7674. var scrollTop =
  7675. document.documentElement.scrollTop || document.body.scrollTop;
  7676. // 变量windowHeight是可视区的高度
  7677. var windowHeight =
  7678. document.documentElement.clientHeight || document.body.clientHeight;
  7679. // 变量scrollHeight是滚动条的总高度(当前可滚动的页面的总高度)
  7680. var scrollHeight =
  7681. document.documentElement.scrollHeight || document.body.scrollHeight;
  7682. // 滚动条到底部
  7683. if (Math.ceil(scrollTop + windowHeight) >= scrollHeight) {
  7684. this.isBottom = true;
  7685. } else {
  7686. this.isBottom = false;
  7687. }
  7688. },
  7689. pinganInsuranceChange(index, index1, val) {
  7690. if (!index) {
  7691. return;
  7692. }
  7693. this.accidentFormPA[index1].pingantemplateSelection = index;
  7694. this.accidentFormPA[index1].projectName = index;
  7695. val.map(val1 => {
  7696. if (val1.projectName == index) {
  7697. val1.son.forEach(val3 => {
  7698. val3.quantity = "1";
  7699. });
  7700. this.accidentFormPA[index1].pinganInsuranceDataTable = val1.son;
  7701. this.accidentFormPA[index1].projectCode = val1.projectCode;
  7702. }
  7703. });
  7704. // this.accidentFormPA[index1].projectCode=this.pinganInsuranceData.find(val1=>{
  7705. // // val1.map(
  7706. // // (val) => val.projectName == index
  7707. // // ).projectCode
  7708. // }
  7709. // )
  7710. // this.accidentFormPA[index1].pinganInsuranceDataTable = this.pinganInsuranceData.find(
  7711. // (val) => val.projectName == index
  7712. // ).son;
  7713. },
  7714. taikangInsuranceChange(index) {
  7715. if (index) {
  7716. this.TkDrivingChange(
  7717. this.taikangaccidentDataList.find(val => val.projectCode == index)
  7718. );
  7719. }
  7720. if (!index) {
  7721. return;
  7722. }
  7723. this.taikangtemplateSelection = index;
  7724. this.accidentFormTk = Object.assign(
  7725. this.accidentFormTk,
  7726. this.taikangaccidentDataList.find(val => val.projectCode == index)
  7727. );
  7728. this.taikangaccidentDataList
  7729. .find(val => val.projectCode == index)
  7730. .son.forEach(item => {
  7731. item.sumAmount =
  7732. Number(item.amount) * Number(this.accidentFormTk.seatNum);
  7733. });
  7734. this.taikangInsuranceDataTable = this.taikangaccidentDataList.find(
  7735. val => val.projectCode == index
  7736. ).son;
  7737. this.accidentPremiumTk = this.accidentFormTk.premium;
  7738. },
  7739. anshengInsuranceChange(index) {
  7740. this.anshengtemplateSelection = index;
  7741. let data = this.anshengInsuranceData.find(
  7742. val => val.projectCode == index
  7743. );
  7744. this.anshengaccidentalDrivingVo.parentName = data.projectName;
  7745. this.anshengaccidentalDrivingVo.parentCode = data.projectCode;
  7746. this.anshengInsuranceDataTable = [];
  7747. this.anshengInsuranceDataTable = data.children;
  7748. this.anshengInsuranceDataTable.forEach(e => (e.quantity = "1"));
  7749. },
  7750. hengbangInsuranceChange(index) {
  7751. this.hengbangInsuranceDataTable = this.hengbangInsuranceData.find(
  7752. val => val.projectCode == index
  7753. ).son;
  7754. this.hengbangtemplateSelection = index;
  7755. if (this.hengbangInsuranceDataTable.length) {
  7756. this.hengbangaccidentalDrivingVo = this.hengbangInsuranceData.find(
  7757. val => val.projectCode == index
  7758. );
  7759. }
  7760. },
  7761. taipingyangInsuranceChange(index) {
  7762. this.taipingyangInsuranceDataTable = this.taipingyangInsuranceData.find(
  7763. val => val.projectCode == index
  7764. ).son;
  7765. this.taipingyangtemplateSelection = index;
  7766. if (this.taipingyangInsuranceDataTable.length) {
  7767. this.taipingyangaccidentalDrivingVo = this.taipingyangInsuranceData.find(
  7768. val => val.projectCode == index
  7769. );
  7770. }
  7771. },
  7772. huanongInsuranceChange(index) {
  7773. this.huanongInsuranceDataTable = this.huanongInsuranceData.find(
  7774. val => val.projectCode == index
  7775. ).son;
  7776. this.accidentFormHN.accidentType = index;
  7777. this.huanongaccidentalDrivingVo = Object.assign(
  7778. this.huanongInsuranceData.find(val => val.projectCode == index),
  7779. this.accidentFormHN
  7780. );
  7781. },
  7782. taipingInsuranceChange(index) {
  7783. this.taipingtemplateSelection = index;
  7784. this.taipingInsuranceDataTable = this.taipingInsuranceData.find(
  7785. val => val.projectCode == index
  7786. ).son;
  7787. if (
  7788. this.taipingInsuranceDataTable &&
  7789. this.taipingInsuranceDataTable.length
  7790. ) {
  7791. this.taipingaccidentalDrivingVo = this.taipingInsuranceData.find(
  7792. val => val.projectCode == index
  7793. );
  7794. }
  7795. },
  7796. zijinInsuranceChange(index) {
  7797. this.zijintemplateSelection = index;
  7798. this.zijinInsuranceDataTable = [];
  7799. this.$refs.expandTable[0].clearSelection();
  7800. index.forEach(item => {
  7801. this.zijinInsuranceDataTable.push(
  7802. this.ziJinInsuranceData.find(val => val.projectCode == item)
  7803. );
  7804. });
  7805. this.zijinInsuranceDataTable.forEach(item => {
  7806. this.$nextTick(() => {
  7807. this.$refs.expandTable[0].toggleRowSelection(item);
  7808. });
  7809. });
  7810. this.CheckboxChange(this.zijinInsuranceDataTable);
  7811. },
  7812. renshouInsuranceChange(index) {
  7813. // this.renshouInsuranceDataTable = [
  7814. // this.renshouInsuranceData.find(val => val.projectCode == index)
  7815. // ];
  7816. this.renshoutemplateSelection = index;
  7817. this.renshouInsuranceDataTable = this.renshouInsuranceData.find(
  7818. val => val.projectCode == index
  7819. ).son;
  7820. if (index) {
  7821. this.RSDrivingChange(
  7822. this.renshouInsuranceData.find(val => val.projectCode == index)
  7823. );
  7824. }
  7825. },
  7826. async dajiaInsuranceChange(index) {
  7827. this.dajiaaccidentalDrivingVo = {};
  7828. let data = await this.$api.letter.accidentalDrivingInfo(index);
  7829. if (data.code == 200) {
  7830. this.dajiaaccidentalDrivingVo = {
  7831. rideRiskCode: index,
  7832. rideRiskName: this.dajiaInsuranceData.find(val => val.id == index)
  7833. .productName,
  7834. quantity: "1"
  7835. };
  7836. this.dajiaInsuranceDataTable = data.data;
  7837. }
  7838. },
  7839. zhonganInsuranceChange(index) {
  7840. this.zhongantemplateSelection = index;
  7841. this.zhonganInsuranceDataTable = this.zhonganInsuranceData.find(
  7842. val => val.projectCode == index
  7843. ).son;
  7844. if (index) {
  7845. this.ZADrivingChange(
  7846. this.zhonganInsuranceData.find(val => val.projectCode == index)
  7847. );
  7848. }
  7849. },
  7850. // 渤海选择意外险类型
  7851. async bohaiInsuranceChange(index) {
  7852. if (index) {
  7853. this.boHaiaccidentForm.projectCode = index;
  7854. // this.boHaiaccidentForm.projectName = this.dajiaInsuranceData.find(
  7855. // (e) => e.projectCode == index
  7856. // ).projectName;
  7857. this.boHaiaccidentForm.copies = "1";
  7858. this.boHaiaccidentForm.premium = Number(
  7859. this.boHaiaccidentDataList.find(e => e.projectCode == index)
  7860. .sumPremium
  7861. );
  7862. this.bohaiInsuranceDataTable = this.boHaiaccidentDataList.find(
  7863. e => e.projectCode == index
  7864. ).son;
  7865. // let data = await this.$api.letter.productDetailsQueryboHai({
  7866. // projectCode: index,
  7867. // productCode: this.boHaiaccidentDataList.find(
  7868. // (e) => e.packageCode == index
  7869. // ).productCode,
  7870. // agreementId: this.boHaiaccidentForm.agreementId,
  7871. // });
  7872. // if (data.code == 200 && data.data) {
  7873. // this.accidentLoadingbh = false;
  7874. // this.bohaiInsuranceDataTable = data.data;
  7875. // } else {
  7876. // this.$message.error(data.msg);
  7877. // this.bohaiInsuranceDataTable = [];
  7878. // }
  7879. }
  7880. },
  7881. djcxchange(index) {
  7882. if (index) {
  7883. this.dajiaaccidentForm.parentCode = index;
  7884. this.dajiaaccidentForm.quantity = "1";
  7885. this.dajiaaccidentForm.prodCode = "";
  7886. this.dajiaaccidentDataListChild = this.dajiaInsuranceData.find(
  7887. e => e.projectCode == index
  7888. ).children;
  7889. this.dajiaaccidentalDrivingVo.parentName = this.dajiaInsuranceData.find(
  7890. e => e.projectCode == index
  7891. ).projectName;
  7892. this.dajiaaccidentalDrivingVo.parentCode = this.dajiaInsuranceData.find(
  7893. e => e.projectCode == index
  7894. ).projectCode;
  7895. }
  7896. },
  7897. djcxchangeChild(index) {
  7898. if (index) {
  7899. let list = this.dajiaaccidentDataListChild.find(
  7900. val => val.projectCode == index
  7901. );
  7902. this.dajiaaccidentForm = {
  7903. ...this.dajiaaccidentForm,
  7904. prodCode: index,
  7905. projectName: list.projectName,
  7906. sumAmount: Number(list.sumAmount),
  7907. riskCode: list.riskCode,
  7908. sumPremium: Number(list.sumPremium)
  7909. };
  7910. list.productId = list.id;
  7911. this.dajiaInsuranceDataTable = list.son;
  7912. this.dajiaaccidentalDrivingVo = Object.assign({
  7913. ...this.dajiaaccidentalDrivingVo,
  7914. ...list
  7915. });
  7916. } else {
  7917. this.dajiaInsuranceDataTable = [];
  7918. }
  7919. },
  7920. // 国任选择意外险类型
  7921. async grcxchange(index) {
  7922. if (index) {
  7923. this.accidentLoading = true;
  7924. this.guoRenaccidentForm.goodsCode = index;
  7925. this.guoRenaccidentForm.quantity = "1";
  7926. this.guoRenaccidentForm.prodCode = "";
  7927. this.guoRenaccidentDataListChild = this.guoRenaccidentDataList.find(
  7928. e => e.projectCode == index
  7929. ).children;
  7930. this.guoRenaccidentalDrivingVo.parentName = this.guoRenaccidentDataList.find(
  7931. e => e.projectCode == index
  7932. ).projectName;
  7933. this.guoRenaccidentalDrivingVo.parentCode = this.guoRenaccidentDataList.find(
  7934. e => e.projectCode == index
  7935. ).projectCode;
  7936. // let data = await this.$api.letter.syncNonAutoInsGuoren({
  7937. // goodsCode: index,
  7938. // agreementId: this.guoRenaccidentForm.agreementId
  7939. // });
  7940. // if (data.code == 200) {
  7941. // let num = 0;
  7942. // data.data.forEach(item => {
  7943. // num += Number(item.premium);
  7944. // });
  7945. // this.accidentLoading = false;
  7946. // } else {
  7947. // this.accidentLoading = false;
  7948. // this.$message.error(data.msg);
  7949. // this.guoRenaccidentDataListChild = [];
  7950. // }
  7951. }
  7952. },
  7953. // 国任选择意外险子级类型
  7954. async grcxchangeChild(index) {
  7955. let list = this.guoRenaccidentDataListChild.find(
  7956. val => val.projectCode == index
  7957. );
  7958. this.guoRenaccidentForm = {
  7959. ...this.guoRenaccidentForm,
  7960. prodCode: index,
  7961. policyNum: Number(list.sumPremium),
  7962. riskCode: list.riskCode,
  7963. // amount: list.amount,
  7964. sumPremium: Number(list.sumPremium)
  7965. // appnum:Number(list.appnum)
  7966. };
  7967. this.guoRenInsuranceDataTable = list.son;
  7968. this.guoRenaccidentalDrivingVo = Object.assign({
  7969. ...list,
  7970. ...this.guoRenaccidentalDrivingVo
  7971. });
  7972. },
  7973. // 选择意外险类型
  7974. async yongchengInsuranceChange(index) {
  7975. if (!index) {
  7976. return;
  7977. }
  7978. this.yongchengtemplateSelection = index;
  7979. this.accidentForm = Object.assign(
  7980. this.accidentForm,
  7981. this.yongchengaccidentDataList.find(val => val.projectCode == index)
  7982. );
  7983. this.yongchengaccidentDataList
  7984. .find(val => val.projectCode == index)
  7985. .son.forEach(item => {
  7986. item.sumAmount =
  7987. Number(item.amount) * Number(this.accidentForm.seatNum);
  7988. });
  7989. this.yongchengInsuranceDataTable = this.yongchengaccidentDataList.find(
  7990. val => val.projectCode == index
  7991. ).son;
  7992. this.accidentPremium = this.accidentForm.sumPremium;
  7993. // this.accidentForm.fen = "1";
  7994. // let data = await this.$api.letter.ycgainAccidentSchemeList({
  7995. // companyCode: this.accidentForm.companyId,
  7996. // code: index,
  7997. // agreementId: this.accidentForm.agreementId,
  7998. // seatNum: Number(this.carInfo.seatCount)
  7999. // });
  8000. // if (data.code == 200) {
  8001. // let num = 0;
  8002. // data.data.forEach(item => {
  8003. // num += Number(item.premium);
  8004. // });
  8005. // this.accidentPremium = num;
  8006. // this.accidentForm.premium = num;
  8007. // this.accidenttableData = data.data;
  8008. // }
  8009. },
  8010. numberCopieschange(index) {
  8011. this.accidentForm.sumPremium = Number(this.accidentPremium) * index;
  8012. },
  8013. numberCopieschangeTk(index) {
  8014. this.accidentFormTk.sumPremium = Number(this.accidentPremiumTk) * index;
  8015. },
  8016. numberCopieschangePA(index, index1) {
  8017. this.accidentFormPA.premium =
  8018. Number(this.accidentFormPA[index1].accidentPremiumPA) * index;
  8019. },
  8020. numberCopieschangeZM(index) {
  8021. this.accidentFormZM.sumPremium = Number(this.accidentPremiumZM) * index;
  8022. },
  8023. numberCopieschangeGR(index) {
  8024. this.guoRenaccidentForm.sumPremium =
  8025. Number(this.guoRenaccidentForm.policyNum) * index;
  8026. },
  8027. continuousChange(id) {
  8028. this.continuousCompanyList.map(ele => {
  8029. if (ele.id == id) {
  8030. this.attributionform.configure = [];
  8031. ele.configure.map((ele, index) => {
  8032. this.attributionform.configure.push({
  8033. field: ele.field,
  8034. isEdit: ele.isEdit,
  8035. label: ele.label,
  8036. type: ele.type,
  8037. value: ""
  8038. });
  8039. });
  8040. }
  8041. });
  8042. },
  8043. //续保查询
  8044. continuousquery() {
  8045. this.$api.letter.queryRenewal(this.attributionform).then(res => {
  8046. if (res.code == "200") {
  8047. this.carInfo = res.data.carInfo;
  8048. this.carInfo.frameNo = res.data.carInfo.vinNo;
  8049. this.ownerInfo = res.data.ownerInfo;
  8050. this.policyHolderInfo = res.data.policyHolderInfo;
  8051. this.insuredPersonInfo = res.data.insuredPersonInfo;
  8052. res.data.riskList.map(ele => {
  8053. if (ele.riskCode == "0507") {
  8054. this.jqchecked = true;
  8055. this.jqstartDate = ele.startDate;
  8056. this.jqendDate = ele.endDate;
  8057. } else if (ele.riskCode == "0510") {
  8058. this.sychecked = true;
  8059. this.systartDate = ele.startDate;
  8060. this.syendDate = ele.endDate;
  8061. }
  8062. county;
  8063. });
  8064. } else {
  8065. this.$message({
  8066. message: res.msg,
  8067. type: "error",
  8068. duration: 2000
  8069. });
  8070. }
  8071. });
  8072. },
  8073. //永诚转保
  8074. renewalCodeconfirm() {
  8075. this.renewalCodedialogVisible = false;
  8076. this.quote();
  8077. },
  8078. //报价轨迹查询
  8079. RadioHistoryChange(e) {
  8080. let params = {
  8081. orderNo: this.orderno,
  8082. orderStatus: e == 888 ? "" : e
  8083. };
  8084. this.$api.letter.queryQuoteHistory(params).then(res => {
  8085. res.data.forEach(item => {
  8086. if (item.accidentInfo) {
  8087. item.accidentInfo.constructor === Object
  8088. ? [item.accidentInfo]
  8089. : item.accidentInfo;
  8090. }
  8091. });
  8092. this.HistoryList = res.data;
  8093. });
  8094. },
  8095. protocolJudge(val, val1) {
  8096. if (val1) {
  8097. this.totalCompanyList.forEach(e => {
  8098. if (
  8099. e.agreement.find(
  8100. el => el.productsCode && el.productsCode.includes(val)
  8101. )
  8102. ) {
  8103. e.agreement.find(
  8104. el => el.productsCode && el.productsCode.includes(val)
  8105. ).disabled = true;
  8106. }
  8107. });
  8108. } else {
  8109. this.totalCompanyList.forEach(e => {
  8110. if (
  8111. e.agreement.find(
  8112. el => el.productsCode && el.productsCode.includes(val)
  8113. )
  8114. ) {
  8115. e.agreement.find(
  8116. el => el.productsCode && el.productsCode.includes(val)
  8117. ).disabled = false;
  8118. }
  8119. });
  8120. }
  8121. },
  8122. // 回显
  8123. async obtainProtocol(data) {
  8124. let res = {};
  8125. if (this.isLetter == "1") {
  8126. this.getCompanyList(data);
  8127. // res = await this.$api.letter.getAllAgreement();
  8128. }
  8129. if (this.isLetter == "2") {
  8130. setTimeout(() => {
  8131. this.getCompanyList(data);
  8132. }, 500);
  8133. }
  8134. },
  8135. //获取保险公司列表
  8136. // commpanyList() {
  8137. // this.$api.letter.gainAllowQuoteList("").then(res => {
  8138. // res.data.map(ele => {
  8139. // ele["result"] = {};
  8140. // ele["quoteCode"] = 0;
  8141. // ele["checked"] = false;
  8142. // ele["msg"] = "";
  8143. // ele["lastYearMsg"] = "";
  8144. // ele["agreementId"] = "";
  8145. // ele["apiType"] = "";
  8146. // ele["orderstatus"] = 0;
  8147. // ele.coefficient = "";
  8148. // // ele.agreementId = ele.agreement[0].id;
  8149. // ele.apiType = ele.agreement[0].apiType;
  8150. // ele.underwritingDescription =
  8151. // ele.agreement[0].underwritingDescription;
  8152. // });
  8153. // if (this.$route.query.data) {
  8154. // res.data.forEach((val, index) => {
  8155. // this.$route.query.data.insAreaCompanyEditingDtos.forEach(ele => {
  8156. // if (val.namesimple == ele.inscompany) {
  8157. // res.data[index].quoteCode = 200;
  8158. // res.data[index].result = ele;
  8159. // }
  8160. // });
  8161. // });
  8162. // }
  8163. // this.totalCompanyList = res.data;
  8164. // });
  8165. // },
  8166. Payment(id, item) {
  8167. this.carcode(id, item);
  8168. },
  8169. // 现询
  8170. getInquiryNowList(agreementId, riskList, kindList) {
  8171. let productId = "";
  8172. this.inquiryNowList = [];
  8173. this.$api.letter
  8174. .getProductId({
  8175. riskList: riskList,
  8176. kindList: kindList
  8177. })
  8178. .then(res => {
  8179. if (res.code == 200) {
  8180. productId = res.data;
  8181. this.$api.letter
  8182. .getInquiryNowFee({
  8183. agreementId: agreementId,
  8184. productId: productId
  8185. })
  8186. .then(resp => {
  8187. if (resp.code == 200) {
  8188. this.inquiryNowList = resp.data;
  8189. }
  8190. });
  8191. }
  8192. });
  8193. },
  8194. inquiryNowListChange(data) {
  8195. if (data) {
  8196. this.nowCostsId = data; // 现询id
  8197. this.isInquiryNowDisable = true;
  8198. this.inquiryNowList.forEach(val => {
  8199. if (val.id == data) {
  8200. this.policyNumberForm.jqCostsProportion = val.jqCostsProportion;
  8201. this.policyNumberForm.noCostsProportion = val.noCostsProportion;
  8202. this.policyNumberForm.syCostsProportion = val.syCostsProportion;
  8203. }
  8204. });
  8205. } else {
  8206. this.nowCostsId = "";
  8207. this.isInquiryNowDisable = false;
  8208. this.policyNumberForm.jqCostsProportion = "";
  8209. this.policyNumberForm.noCostsProportion = "";
  8210. this.policyNumberForm.syCostsProportion = "";
  8211. }
  8212. },
  8213. //选择协议 val:协议id row:协议列表 index:下标 item:保险公司数据集合
  8214. agreementChange(val, row, index, item) {
  8215. this.getInquiryNowList(val, this.riskList, this.kindList);
  8216. this.kindListFun(index);
  8217. let obj = {};
  8218. obj = row.find(item => {
  8219. return item;
  8220. });
  8221. let selectRow = row.find(item => {
  8222. return item.id == val;
  8223. });
  8224. let info = row.find(ele => ele.id == val);
  8225. this.totalCompanyList[index].apiType = info.apiType;
  8226. this.totalCompanyList[index].underwritingDescription = val
  8227. ? selectRow.underwritingDescription
  8228. : ""; //重新赋值修改选中协议承保描述
  8229. if (this.$route.path != "/task/external/externalOrders")
  8230. if (item.namesimple == "平安财险") {
  8231. this.$api.letter
  8232. .getPingAnDrivingInsuranceRule({
  8233. cimodelclass: this.carInfo.cimodelclass,
  8234. isUseCombine: "Y",
  8235. tonNumber: this.carInfo.limitLoad,
  8236. ownAttribute: "03",
  8237. useAttribute: this.carInfo.carnature,
  8238. ruleSeatNum: Number(this.carInfo.seatCount),
  8239. agreementId: item.agreementId
  8240. })
  8241. .then(res => {
  8242. this.pinganInsuranceData = res.data;
  8243. });
  8244. return;
  8245. }
  8246. this.$api.letter
  8247. .getDrivingInsuranceRule({
  8248. companyCode: item.id,
  8249. agreementId: item.agreementId,
  8250. seatNum:
  8251. item.namesimple == "永诚财险" || item.namesimple == "中煤财险"
  8252. ? Number(this.carInfo.seatCount)
  8253. : "",
  8254. ruleUseNature: this.carInfo.carnature,
  8255. ruleSeatNum: Number(this.carInfo.seatCount),
  8256. risk: this.riskList,
  8257. kind: this.kindList,
  8258. ruleThirdPartyInsurance: this.insureList[1].amount
  8259. })
  8260. .then(res => {
  8261. if (res.code == 200) {
  8262. this.nonVehicle(res.data, item.cnName);
  8263. switch (item.namesimple) {
  8264. case "永诚财险":
  8265. this.yongchengaccidentDataList = res.data;
  8266. break;
  8267. case "国任财险":
  8268. this.guoRenaccidentDataList = res.data;
  8269. break;
  8270. case "渤海财险":
  8271. this.boHaiaccidentDataList = res.data;
  8272. break;
  8273. case "中煤财险":
  8274. this[item.cnName + +"InsuranceData"] = res.data;
  8275. break;
  8276. case "紫金财险":
  8277. let data = res.data;
  8278. data.map(ele => {
  8279. ele.quantity = 1;
  8280. return ele;
  8281. });
  8282. this.ziJinInsuranceData = data;
  8283. break;
  8284. case "大家财险":
  8285. this.dajiaInsuranceData = res.data;
  8286. break;
  8287. case "泰康财险":
  8288. this.taikangaccidentDataList = res.data;
  8289. break;
  8290. case "中国人寿":
  8291. case "人保财险":
  8292. case "恒邦财险":
  8293. case "太平财险":
  8294. case "安盛天平":
  8295. case "华农财险":
  8296. case "华安财险":
  8297. case "泰山财险":
  8298. case "众安财险":
  8299. case "太平洋财险":
  8300. res.data.map(ele => {
  8301. ele.quantity = 1;
  8302. return ele;
  8303. });
  8304. this[item.cnName + "InsuranceData"] = res.data;
  8305. break;
  8306. }
  8307. } else {
  8308. this.$message.error(res.msg);
  8309. }
  8310. });
  8311. // switch (item.namesimple) {
  8312. // case "永诚财险":
  8313. // this.accidentForm.agreementId = item.agreementId;
  8314. // this.$api.letter
  8315. // .ycgainAccidentList({
  8316. // companyCode: item.id,
  8317. // agreementId: item.agreementId,
  8318. // seatNum: Number(this.carInfo.seatCount)
  8319. // })
  8320. // .then(res => {
  8321. // if (res.code == 200) {
  8322. // this.accidentDataList = res.data;
  8323. // }
  8324. // });
  8325. // break;
  8326. // case "国任财险":
  8327. // this.guoRenaccidentForm.agreementId = item.agreementId;
  8328. // this.$api.letter
  8329. // .syncNonAutoInsGuoren({ agreementId: item.agreementId })
  8330. // .then(res => {
  8331. // if (res.code == 200) {
  8332. // this.guoRenaccidentDataList = res.data;
  8333. // } else {
  8334. // this.guoRenaccidentDataList = [];
  8335. // }
  8336. // });
  8337. // break;
  8338. // case "渤海财险":
  8339. // this.boHaiaccidentForm.agreementId = item.agreementId;
  8340. // let policyHolderInfo = this.tbczcarShow
  8341. // ? this.ownerInfo
  8342. // : this.policyHolderInfo;
  8343. // let productQueryVo = {
  8344. // agreementId: item.agreementId,
  8345. // carnature: this.carInfo.carnature,
  8346. // cimodelclass: this.carInfo.cimodelclass,
  8347. // exhaustScale: this.carInfo.enginedesc,
  8348. // limitLoad: this.carInfo.limitLoad,
  8349. // powerScale: this.carInfo.powerScale,
  8350. // seatCount: this.carInfo.seatCount,
  8351. // vehicleUse: this.carInfo.vehicleUse,
  8352. // policyHolderInfo,
  8353. // insuredPersonInfo: this.bbczcarShow
  8354. // ? this.ownerInfo
  8355. // : this.bbtbcarShow
  8356. // ? policyHolderInfo
  8357. // : this.insuredPersonInfo
  8358. // };
  8359. // this.$api.letter.productQueryboHai(productQueryVo).then(res => {
  8360. // if (res.code == 200) {
  8361. // this.boHaiaccidentDataList = res.data;
  8362. // } else {
  8363. // this.boHaiaccidentDataList = [];
  8364. // }
  8365. // });
  8366. // break;
  8367. // case "紫金财险":
  8368. // this.$api.letter
  8369. // .zijinqueryVehicleProducts({
  8370. // agreementId: val,
  8371. // seatCount: Number(this.carInfo.seatCount)
  8372. // })
  8373. // .then(res => {
  8374. // if (res.code == 200) {
  8375. // let data = res.data;
  8376. // data.map(ele => {
  8377. // ele.quantity = 1;
  8378. // return ele;
  8379. // });
  8380. // this.ziJinInsuranceData = data;
  8381. // } else {
  8382. // this.$message.error(res.msg);
  8383. // }
  8384. // });
  8385. // break;
  8386. // case "中国人寿":
  8387. // case "恒邦财险":
  8388. // case "太平财险":
  8389. // case "安盛天平":
  8390. // case "华农财险":
  8391. // case "众安财险":
  8392. // this.$api.letter.pythongetDriving({ agreementId: val }).then(res => {
  8393. // if (res.code == 200) {
  8394. // let data = res.data;
  8395. // data.map(ele => {
  8396. // ele.quantity = 1;
  8397. // return ele;
  8398. // });
  8399. // this[item.cnName + "InsuranceData"] = data;
  8400. // }
  8401. // });
  8402. // break;
  8403. // case "大家财险":
  8404. // this.$api.letter
  8405. // .dajiagetDriving({ agreementId: item.agreementId })
  8406. // .then(res => {
  8407. // if (res.code == 200) {
  8408. // this.dajiaInsuranceData = res.data;
  8409. // }
  8410. // });
  8411. // break;
  8412. // default:
  8413. // break;
  8414. // }
  8415. },
  8416. nonVehicle(data, type) {
  8417. if (data.some(e => e.isDefault)) {
  8418. if (type == "guoRen") {
  8419. this.grcxchange(data.find(ele => ele.isDefault).projectCode);
  8420. this.grcxchangeChild(
  8421. data.find(ele => ele.isDefault).children.find(ele => ele.isDefault)
  8422. .projectCode
  8423. );
  8424. }
  8425. if (type == "ansheng") {
  8426. this.anshengInsuranceChange(
  8427. data.find(ele => ele.isDefault).projectCode
  8428. );
  8429. this.ASDrivingRadio(
  8430. data.find(ele => ele.isDefault).children.find(ele => ele.isDefault)
  8431. );
  8432. }
  8433. if (type == "zijin") {
  8434. this[type + "InsuranceChange"]([
  8435. data.find(ele => ele.isDefault).projectCode
  8436. ]);
  8437. } else {
  8438. this[type + "InsuranceChange"](
  8439. data.find(ele => ele.isDefault).projectCode
  8440. );
  8441. }
  8442. }
  8443. },
  8444. CheckboxChange(select, row) {
  8445. this.accidentalDrivingVo = [];
  8446. select.map(val => {
  8447. this.accidentalDrivingVo.push(val);
  8448. return val;
  8449. });
  8450. },
  8451. //人寿驾意险选择
  8452. RSDrivingChange(row) {
  8453. this.renshouaccidentalDrivingVo = row;
  8454. },
  8455. TkDrivingChange(row) {
  8456. this.taikangaccidentalDrivingVo = row;
  8457. },
  8458. //众安驾意险选择
  8459. ZADrivingChange(row) {
  8460. this.zhonganaccidentalDrivingVo = row;
  8461. },
  8462. RSDrivingRadio(row) {
  8463. this.RSDrivingChange(row);
  8464. },
  8465. //安盛驾意险选择
  8466. ASDrivingRadio(row) {
  8467. this.anshengInsurancetype = row.projectCode;
  8468. this.anshengaccidentalDrivingVo = Object.assign({
  8469. ...this.anshengaccidentalDrivingVo,
  8470. ...row
  8471. });
  8472. // this.anshengaccidentalDrivingVo.projectCode = row.projectCode;
  8473. // this.anshengaccidentalDrivingVo.projectName = row.projectName;
  8474. },
  8475. pinganDetail(row, agreementId) {
  8476. this.pinganDataDetailVisible = false;
  8477. this.$api.letter
  8478. .productDetailsQuery({
  8479. agreementId,
  8480. packageCode: row.code,
  8481. productCode: row.productCode,
  8482. version: row.version
  8483. })
  8484. .then(res => {
  8485. if (res.code == 200) {
  8486. this.pinganDataDetailVisible = true;
  8487. this.pinganDataDetail = res.data;
  8488. } else {
  8489. this.$message.err(res.msg);
  8490. }
  8491. });
  8492. },
  8493. sameItem(array1, array2) {
  8494. return array2.find(item => {
  8495. array1.some(innerItem => innerItem.code === item.code);
  8496. });
  8497. },
  8498. PADrivingCheckbox(event, row, agreementId, index) {
  8499. // const checkedVal = this.accidentFormPA[index].pinganInsuranceDataTable.find(x => x.cameraId === item.cameraId)
  8500. const isSelected = event.some(
  8501. selectedRow => selectedRow.code == row.code
  8502. );
  8503. let isIndex = null;
  8504. let amount = null;
  8505. event.find((selectedRow, selectedIndex) => {
  8506. if (selectedRow.code == row.code) {
  8507. isIndex = selectedIndex;
  8508. }
  8509. });
  8510. if (event.length > 0 && isSelected) {
  8511. this.$api.letter
  8512. .productDetailsQuery({
  8513. agreementId,
  8514. packageCode: row.code,
  8515. productCode: row.productCode,
  8516. version: row.version
  8517. })
  8518. .then(res => {
  8519. if (res.code == 200) {
  8520. res.data.forEach(ele => {
  8521. amount += Number(ele.unitInsuredAmount)
  8522. ? Number(ele.unitInsuredAmount)
  8523. : 0;
  8524. });
  8525. event[isIndex].amount = amount;
  8526. } else {
  8527. this.$message.err(res.msg);
  8528. }
  8529. });
  8530. }
  8531. event.forEach((res, indexOf) => {
  8532. res.projectName = this.accidentFormPA[index].projectName;
  8533. res.projectCode = this.accidentFormPA[index].projectCode;
  8534. res.combineProductType = this.accidentFormPA[index].combineProductType;
  8535. });
  8536. this.pinganaccidentalDrivingVo[index] = event;
  8537. },
  8538. //平安驾意险选择
  8539. PADrivingRadio(row, agreementId, index) {
  8540. // this.accidentPremiumPA = row.premium;
  8541. this.accidentFormPA[index].quantity = "1";
  8542. this.accidentFormPA[index].sellListSize = Number(row.sellListSize);
  8543. this.accidentFormPA[index].premium = row.premium;
  8544. this.accidentFormPA[index].combineProductType = row.combineProductType;
  8545. this.accidentFormPA[index].accidentPremiumPA = row.premium;
  8546. this.accidentFormPA[index].pinganInsurancetype = row.code;
  8547. this.$api.letter
  8548. .productDetailsQuery({
  8549. agreementId,
  8550. packageCode: row.code,
  8551. productCode: row.productCode,
  8552. version: row.version
  8553. })
  8554. .then(res => {
  8555. if (res.code == 200) {
  8556. this.accidentFormPA[index].amount = 0;
  8557. res.data.forEach(e => {
  8558. this.accidentFormPA[index].amount += Number(e.unitInsuredAmount)
  8559. ? Number(e.unitInsuredAmount)
  8560. : 0;
  8561. });
  8562. this.pinganaccidentalDrivingVo[index] = {
  8563. ...row,
  8564. ...this.accidentFormPA[index]
  8565. };
  8566. } else {
  8567. this.$message.err(res.msg);
  8568. this.pinganaccidentalDrivingVo[index] = {
  8569. ...row,
  8570. ...this.accidentFormPA[index]
  8571. };
  8572. }
  8573. });
  8574. },
  8575. ZADrivingRadio(row) {
  8576. this.ZADrivingChange(row);
  8577. },
  8578. // 获取特约
  8579. getClauseData(id, index) {
  8580. this.ownerInfo.owner = this.tbczcarShow;
  8581. this.insuredPersonInfo.owner = this.bbczcarShow;
  8582. this.insuredPersonInfo.insuranceHolder = this.bbtbcarShow;
  8583. let data = {
  8584. userId: this.userId,
  8585. quoteno: this.quoteno,
  8586. orderNo: this.orderno,
  8587. carInfo: this.carInfo,
  8588. insuredPersonInfo: this.insuredPersonInfo,
  8589. ownerInfo: this.ownerInfo,
  8590. policyHolderInfo: this.policyHolderInfo,
  8591. kindList: this.kindList,
  8592. riskList: this.riskList,
  8593. isExternal: "1",
  8594. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  8595. };
  8596. // this.typeDialogIndex = index
  8597. // this.zijinengageListData = [];
  8598. // this.contributingLoading = true;
  8599. // this.contributingState = true;
  8600. // this.hbsubmitdialogVisible = true;
  8601. this.$api.letter
  8602. .getClauseByCompanyId({
  8603. productCode: this.productId,
  8604. companyId: this.totalCompanyList[index].id,
  8605. quoteInfoVo: data
  8606. })
  8607. .then(res => {
  8608. this.contributingLoading = false;
  8609. if (res.data) {
  8610. // res.data.forEach((val) => {
  8611. // val.clauseName = val.clauses;
  8612. // val.clauseContent = val.clausesContext;
  8613. // });
  8614. this.zijinengageListData = res.data;
  8615. }
  8616. });
  8617. },
  8618. // 国任特约选择
  8619. contributingGuoRen(id, index) {
  8620. this.typeDialogIndex = index;
  8621. this.zijinengageListData = [];
  8622. this.contributingLoading = true;
  8623. this.contributingState = true;
  8624. this.hbsubmitdialogVisible = true;
  8625. this.getClauseData(id, index);
  8626. return;
  8627. this.$api.letter.guorenqueryClauseData({ agreementId: id }).then(res => {
  8628. this.contributingLoading = false;
  8629. if (res.data) {
  8630. res.data.forEach(val => {
  8631. val.clauseName = val.clauses;
  8632. val.clauseContent = val.clausesContext;
  8633. });
  8634. this.zijinengageListData = res.data;
  8635. }
  8636. });
  8637. },
  8638. //紫金特约选择
  8639. zijinengageChange(select, row) {
  8640. this.zijinengageList = [];
  8641. if (!this.totalCompanyList[this.typeDialogIndex].zxProgramme) {
  8642. this.totalCompanyList[this.typeDialogIndex].zxProgramme = {
  8643. // 自选方案详情
  8644. description: "",
  8645. drivingList: [],
  8646. jqx: {
  8647. name: "交通事故强制责任险"
  8648. },
  8649. kinds: {
  8650. additional: [],
  8651. main: [],
  8652. service: []
  8653. },
  8654. teyue: []
  8655. };
  8656. }
  8657. // this.totalCompanyList[this.typeDialogIndex].programme = {}
  8658. this.totalCompanyList[this.typeDialogIndex].programme.teyue = [];
  8659. select.map(val => {
  8660. this.zijinengageList.push({
  8661. clauseCode: val.clauseCode,
  8662. clauseName: val.clauseName,
  8663. clauses: val.clauseContent,
  8664. riskCode: val.riskCode
  8665. });
  8666. this.totalCompanyList[
  8667. this.typeDialogIndex
  8668. ].zxProgramme.teyue = this.zijinengageList;
  8669. this.totalCompanyList[
  8670. this.typeDialogIndex
  8671. ].programme.teyue = this.zijinengageList;
  8672. return val;
  8673. });
  8674. },
  8675. zijinengageChangeAll(row) {
  8676. if (row) {
  8677. this.zijinengageChange(row);
  8678. } else {
  8679. this.$refs.expandTablePro.clearSelection();
  8680. this.zijinengageList = [];
  8681. }
  8682. },
  8683. //紫金特约内容编辑
  8684. zijincellDblclick(row, column) {
  8685. this.currentCell = row.index + "," + column.index;
  8686. if (
  8687. !["clauseContent"].includes(column.property) &&
  8688. row.modifyFlag == "1"
  8689. ) {
  8690. setTimeout(() => {
  8691. this.$refs[row.index + "," + column.index].focus();
  8692. });
  8693. }
  8694. },
  8695. tableCellClassName({ row, column, rowIndex, columnIndex }) {
  8696. row.index = rowIndex;
  8697. column.index = columnIndex;
  8698. },
  8699. hideInput() {
  8700. this.currentCell = null;
  8701. },
  8702. updateArray(arr, value, condition) {
  8703. if (condition) {
  8704. arr.push(value);
  8705. } else {
  8706. const index = arr.indexOf(value);
  8707. if (index !== -1) {
  8708. arr.splice(index, 1);
  8709. }
  8710. }
  8711. if (arr.length == 0) {
  8712. this.totalCompanyList.forEach(e => {
  8713. e.disabled = false;
  8714. });
  8715. } else {
  8716. this.totalCompanyList.forEach(e => {
  8717. e.disabled = e.id == arr[0] ? false : true;
  8718. });
  8719. }
  8720. },
  8721. //勾选保险公司
  8722. initchange(e, code, name, index) {
  8723. if (e) {
  8724. this.totalCompanyList[index].checked = e;
  8725. this.getCompanyProgramme(e, code, name, index);
  8726. this.kindListFun();
  8727. let ins = this.totalCompanyList[index].namesimple;
  8728. this.totalCompanyList[
  8729. index
  8730. ].underwritingDescription = this.totalCompanyList[
  8731. index
  8732. ].agreement[0].underwritingDescription;
  8733. if (this.$route.path != "/task/external/externalOrders")
  8734. this.$api.letter
  8735. .getDrivingInsuranceRule({
  8736. agreementId: this.totalCompanyList[index].agreement[0].id,
  8737. seatNum:
  8738. ins == "永诚财险" || ins == "中煤财险"
  8739. ? Number(this.carInfo.seatCount)
  8740. : "",
  8741. ruleUseNature: this.carInfo.carnature,
  8742. ruleSeatNum: Number(this.carInfo.seatCount),
  8743. risk: this.riskList,
  8744. kind: this.kindList,
  8745. ruleThirdPartyInsurance: this.insureList[1].amount,
  8746. cimodelclass: ins == "平安财险" ? this.carInfo.cimodelclass : "",
  8747. isUseCombine: ins == "平安财险" ? "Y" : "",
  8748. tonNumber: ins == "平安财险" ? this.carInfo.limitLoad : "",
  8749. ownAttribute: ins == "平安财险" ? "03" : "",
  8750. useAttribute: ins == "平安财险" ? this.carInfo.carnature : ""
  8751. })
  8752. .then(res => {
  8753. if (res.code == 200) {
  8754. switch (ins) {
  8755. case "永诚财险":
  8756. this.yongchengaccidentDataList = res.data;
  8757. break;
  8758. case "国任财险":
  8759. this.guoRenaccidentDataList = res.data;
  8760. break;
  8761. case "渤海财险":
  8762. this.boHaiaccidentDataList = res.data;
  8763. break;
  8764. case "中煤财险":
  8765. case "平安财险":
  8766. this[name + "InsuranceData"] = res.data;
  8767. break;
  8768. case "紫金财险":
  8769. let data = res.data;
  8770. data.map(ele => {
  8771. ele.quantity = 1;
  8772. return ele;
  8773. });
  8774. this.ziJinInsuranceData = data;
  8775. break;
  8776. case "大家财险":
  8777. this.dajiaInsuranceData = res.data;
  8778. break;
  8779. case "中国人寿":
  8780. case "人保财险":
  8781. case "恒邦财险":
  8782. case "太平财险":
  8783. case "华农财险":
  8784. case "华安财险":
  8785. case "泰山财险":
  8786. case "安盛天平":
  8787. case "众安财险":
  8788. case "太平洋财险":
  8789. res.data.map(ele => {
  8790. ele.quantity = 1;
  8791. return ele;
  8792. });
  8793. this[name + "InsuranceData"] = res.data;
  8794. break;
  8795. }
  8796. this.nonVehicle(res.data, name);
  8797. } else {
  8798. this.$message.error(res.msg);
  8799. }
  8800. });
  8801. // switch (ins) {
  8802. // case "永诚财险":
  8803. // this.accidentForm.agreementId = this.totalCompanyList[
  8804. // index
  8805. // ].agreement[0].id;
  8806. // this.$api.letter
  8807. // .ycgainAccidentList({
  8808. // companyCode: this.totalCompanyList[index].id,
  8809. // agreementId: this.totalCompanyList[index].agreement[0].id,
  8810. // seatNum: Number(this.carInfo.seatCount)
  8811. // })
  8812. // .then(res => {
  8813. // if (res.code == 200) {
  8814. // this.accidentDataList = res.data;
  8815. // } else {
  8816. // this.accidentDataList = [];
  8817. // }
  8818. // });
  8819. // break;
  8820. // case "国任财险":
  8821. // this.guoRenaccidentForm.agreementId = this.totalCompanyList[
  8822. // index
  8823. // ].agreement[0].id;
  8824. // this.$api.letter
  8825. // .syncNonAutoInsGuoren({
  8826. // goodsCode: "",
  8827. // agreementId: this.totalCompanyList[index].agreement[0].id
  8828. // })
  8829. // .then(res => {
  8830. // if (res.code == 200) {
  8831. // this.guoRenaccidentDataList = res.data;
  8832. // } else {
  8833. // this.guoRenaccidentDataList = [];
  8834. // }
  8835. // });
  8836. // break;
  8837. // case "紫金财险":
  8838. // this.$api.letter
  8839. // .zijinqueryVehicleProducts({
  8840. // agreementId: this.totalCompanyList[index].agreement[0].id,
  8841. // seatCount: Number(this.carInfo.seatCount)
  8842. // })
  8843. // .then(res => {
  8844. // if (res.code == 200) {
  8845. // let data = res.data;
  8846. // data.map(ele => {
  8847. // ele.quantity = 1;
  8848. // return ele;
  8849. // });
  8850. // this.ziJinInsuranceData = data;
  8851. // } else {
  8852. // this.$message.error(res.msg);
  8853. // }
  8854. // });
  8855. // break;
  8856. // case "安盛天平":
  8857. // this.$api.letter
  8858. // .pythongetDriving({
  8859. // agreementId: this.totalCompanyList[index].agreement[0].id
  8860. // })
  8861. // .then(res => {
  8862. // if (res.code == 200) {
  8863. // let data = res.data;
  8864. // data.map(ele => {
  8865. // ele.departmentProductList.map(val => {
  8866. // val.quantity = 1;
  8867. // });
  8868. // return ele;
  8869. // });
  8870. // this[name + "InsuranceData"] = data;
  8871. // } else {
  8872. // this.$message.error(res.msg);
  8873. // }
  8874. // });
  8875. // break;
  8876. // case "中国人寿":
  8877. // case "恒邦财险":
  8878. // case "太平财险":
  8879. // case "华农财险":
  8880. // case "众安财险":
  8881. // this.$api.letter
  8882. // .pythongetDriving({
  8883. // agreementId: this.totalCompanyList[index].agreement[0].id
  8884. // })
  8885. // .then(res => {
  8886. // if (res.code == 200) {
  8887. // let data = res.data;
  8888. // data.map(ele => {
  8889. // ele.quantity = 1;
  8890. // return ele;
  8891. // });
  8892. // this[name + "InsuranceData"] = data;
  8893. // } else {
  8894. // this.$message.error(res.msg);
  8895. // }
  8896. // });
  8897. // break;
  8898. // case "中煤财险":
  8899. // this.accidentFormZM.agreementId = this.totalCompanyList[
  8900. // index
  8901. // ].agreement[0].id;
  8902. // this.$api.letter
  8903. // .zmGetDrivingPro({
  8904. // agreementId: this.totalCompanyList[index].agreement[0].id,
  8905. // seatNum: this.carInfo.seatCount
  8906. // })
  8907. // .then(res => {
  8908. // if (res.code == 200) {
  8909. // let data = res.data;
  8910. // this[name + "InsuranceData"] = data;
  8911. // } else {
  8912. // this.$message.error(res.msg);
  8913. // }
  8914. // });
  8915. // break;
  8916. // case "大家财险":
  8917. // this.$api.letter
  8918. // .dajiagetDriving({
  8919. // agreementId: this.totalCompanyList[index].agreement[0].id
  8920. // })
  8921. // .then(res => {
  8922. // if (res.code == 200) {
  8923. // this.dajiaInsuranceData = res.data;
  8924. // } else {
  8925. // this.$message.error(res.msg);
  8926. // }
  8927. // });
  8928. // break;
  8929. // default:
  8930. // break;
  8931. // }
  8932. } else {
  8933. }
  8934. },
  8935. clearAccidentForm() {
  8936. this.yongchengInsuranceDataTable = [];
  8937. this.accidentForm = {};
  8938. this.accidentForm.fen = 1;
  8939. this.accidentForm.premium = 0;
  8940. },
  8941. clearAccidentFormPA(index) {
  8942. // this.accidentFormPA[index]={
  8943. // quantity: 1,
  8944. // premium: 0,
  8945. // pingantemplateSelection:'',
  8946. // pinganInsuranceDataTable:[],
  8947. // pinganInsurancetype:'',
  8948. // }
  8949. this.pinganaccidentalDrivingVo[index] = {};
  8950. },
  8951. clearAccidentFormTk() {
  8952. this.taikangaccidentalDrivingVo = {};
  8953. this.taikangInsuranceDataTable = [];
  8954. this.accidentFormTk = {};
  8955. this.accidentFormTk.fen = 1;
  8956. this.accidentFormTk.premium = 0;
  8957. },
  8958. clearAccidentFormGr() {
  8959. (this.guoRenInsuranceDataTable = []),
  8960. (this.guoRenaccidentDataListChild = []);
  8961. this.guoRenaccidentForm = {
  8962. quantity: "1",
  8963. premium: 0
  8964. };
  8965. },
  8966. clearAccidentFormBh() {
  8967. this.bohaiInsuranceDataTable = [];
  8968. this.boHaiaccidentForm = {
  8969. copies: "1",
  8970. premium: 0
  8971. };
  8972. // this.bohaiaccidentalDrivingVo={};
  8973. },
  8974. clearAccidentFormHN() {
  8975. this.huanongaccidentalDrivingVo = {};
  8976. },
  8977. clearAccidentFormHB() {
  8978. this.hengbangaccidentalDrivingVo = {};
  8979. },
  8980. clearAccidentFormTP() {
  8981. this.taipingaccidentalDrivingVo = {};
  8982. },
  8983. clearAccidentFormDJ() {
  8984. this.dajiaaccidentalDrivingVo = {};
  8985. },
  8986. clearAccidentFormZM() {
  8987. this.zhongmeiaccidentalDrivingVo = {};
  8988. },
  8989. clearAccidentFormZJ() {
  8990. this.accidentalDrivingVo = [];
  8991. },
  8992. clearAccidentFormZA() {
  8993. this.zhonganaccidentalDrivingVo = {};
  8994. },
  8995. clearAccidentFormRS() {
  8996. this.renshouaccidentalDrivingVo = {};
  8997. },
  8998. clearAccidentFormAS() {
  8999. this.anshengaccidentalDrivingVo = {};
  9000. },
  9001. //身份证有效期长期
  9002. insureLongterm(e) {
  9003. this[e].identifyValidEndDate = "9999-12-31";
  9004. },
  9005. //较强起保日期事件
  9006. jqChange(e) {
  9007. this.jqendDate = this.oneYearPast1(e);
  9008. },
  9009. //商业起保日期事件
  9010. syChange(e) {
  9011. this.syendDate = this.oneYearPast1(e);
  9012. },
  9013. // 驾意险起保日期时间
  9014. jyChange() {
  9015. this.jyendDate = this.oneYearPast1(e);
  9016. },
  9017. // //查看更多
  9018. // selectMore(leg) {
  9019. // this.insureMore = false;
  9020. // this.insureLength = leg;
  9021. // },
  9022. // //收起
  9023. // packup() {
  9024. // this.insureMore = true;
  9025. // this.insureLength = 5;
  9026. // },
  9027. //险别选择框事件
  9028. insureitemChange(e, item) {
  9029. // if (e != 0) {
  9030. // this.sychecked = true;
  9031. // this.systartDate = this.transformTime1();
  9032. // this.syendDate = this.oneYearPast1(this.systartDate);
  9033. // this.kindList.push(item)
  9034. // this.obtainProtocol();
  9035. // } else {
  9036. // let list = this.kindList.filter(item => item.kindCode !== item.kindCode);
  9037. // this.kindList = list;
  9038. // this.obtainProtocol();
  9039. // }
  9040. },
  9041. all() {
  9042. this.$refs.detailsDialog.setBackupVisible(true);
  9043. },
  9044. base64ToBlob(code) {
  9045. code = code.replace(/[\n\r]/g, "");
  9046. // atob() 方法用于解码使用 base-64 编码的字符串。
  9047. const raw = window.atob(code);
  9048. const rawLength = raw.length;
  9049. const uInt8Array = new Uint8Array(rawLength);
  9050. for (let i = 0; i < rawLength; ++i) {
  9051. uInt8Array[i] = raw.charCodeAt(i);
  9052. }
  9053. return new Blob([uInt8Array], { type: "application/pdf" });
  9054. },
  9055. viewPdf(content) {
  9056. if (!content) {
  9057. this.$message.error("暂无文件");
  9058. return;
  9059. }
  9060. const blob = this.base64ToBlob(content);
  9061. this.href = blob;
  9062. if (window.navigator && window.navigator.msSaveOrOpenBlob) {
  9063. window.navigator.msSaveOrOpenBlob(blob);
  9064. } else {
  9065. const fileURL = URL.createObjectURL(blob);
  9066. window.open(fileURL);
  9067. }
  9068. },
  9069. //二维码生成插件
  9070. creatQrCode(text) {
  9071. // 查找并删除旧的二维码DOM元素
  9072. let element = document.getElementById("qrcode");
  9073. while (element.firstChild) {
  9074. element.removeChild(element.firstChild);
  9075. }
  9076. // 创建新的QRCode实例
  9077. this.qrcode = new QrCode("qrcode", {
  9078. text: text,
  9079. width: this.qrcodeWidth,
  9080. height: this.qrcodeHeight,
  9081. colorDark: "#000000",
  9082. colorLight: "#ffffff",
  9083. correctLevel: QrCode.CorrectLevel.H
  9084. });
  9085. },
  9086. //人工核保
  9087. underwriting(id) {
  9088. let param = {
  9089. companyId: id
  9090. };
  9091. this.$api.letter.manualUnderwriting(param).then(res => {
  9092. if (res.code == "200") {
  9093. this.Payment(id);
  9094. }
  9095. });
  9096. },
  9097. signature(companyId) {
  9098. this.$api.letter.pingAnsignEleApply({ companyId }).then(res => {
  9099. if (res.code == 200 && res.data) {
  9100. this.resultMessageImg = process.env.BASE_URL + res.data.resultMessage;
  9101. this.signaturedialogVisible = true;
  9102. // 查找并删除旧的二维码DOM元素
  9103. // let element = document.getElementById("signaturecode");
  9104. // while (element.firstChild) {
  9105. // element.removeChild(element.firstChild);
  9106. // }
  9107. // this.signaturecode = new QRCode("signaturecode", {
  9108. // text: resultMessage,
  9109. // width: 180,
  9110. // height: 180,
  9111. // colorDark: "#000000",
  9112. // colorLight: "#ffffff",
  9113. // correctLevel: QRCode.CorrectLevel.H,
  9114. // });
  9115. // this.signaturedialogVisible = true;
  9116. // this.$api.letter.pingAnsignEleApply({companyId}).then((res) => {
  9117. // if (res.code == 200 && res.data) {
  9118. // // 查找并删除旧的二维码DOM元素
  9119. // let element = document.getElementById("signaturecode");
  9120. // while (element.firstChild) {
  9121. // element.removeChild(element.firstChild);
  9122. // }
  9123. // this.signaturecode = new QRCode("signaturecode", {
  9124. // text: res.data.resultMessage,
  9125. // width: 180,
  9126. // height: 180,
  9127. // colorDark: "#000000",
  9128. // colorLight: "#ffffff",
  9129. // correctLevel: QRCode.CorrectLevel.H,
  9130. // });
  9131. } else {
  9132. this.$message({
  9133. message: res.msg || "暂无数据!",
  9134. type: "warning"
  9135. });
  9136. }
  9137. });
  9138. },
  9139. jqcheckedChange(e) {
  9140. if (e) {
  9141. this.jqstartDate = this.transformTime1();
  9142. this.jqendDate = this.oneYearPast1(this.jqstartDate);
  9143. this.riskList.push({
  9144. riskCode: "0507"
  9145. });
  9146. // this.obtainProtocol();
  9147. } else {
  9148. this.jqstartDate = "";
  9149. this.jqendDate = "";
  9150. let list = this.riskList.filter(item => item.riskCode !== "0507");
  9151. this.riskList = list;
  9152. // this.obtainProtocol();
  9153. }
  9154. },
  9155. sycheckedChange(e) {
  9156. if (e) {
  9157. this.systartDate = this.transformTime1();
  9158. this.syendDate = this.oneYearPast1(this.systartDate);
  9159. this.riskList.push({
  9160. riskCode: "0510"
  9161. });
  9162. // this.obtainProtocol();
  9163. } else {
  9164. this.systartDate = "";
  9165. this.syendDate = "";
  9166. let list = this.riskList.filter(item => item.riskCode !== "0510");
  9167. this.riskList = list;
  9168. // this.obtainProtocol();
  9169. }
  9170. },
  9171. jycheckedChange(e) {
  9172. if (e) {
  9173. this.jystartDate = this.transformTime1();
  9174. this.jyendDate = this.oneYearPast1(this.jystartDate);
  9175. // this.riskList.push({
  9176. // riskCode: "0510"
  9177. // });
  9178. // this.obtainProtocol();
  9179. } else {
  9180. this.jystartDate = "";
  9181. this.jyendDate = "";
  9182. // let list = this.riskList.filter(item => item.riskCode !== "0510");
  9183. // this.riskList = list;
  9184. // this.obtainProtocol();
  9185. }
  9186. },
  9187. //订单生成后保存接口
  9188. preserveOrderStageProcessing(type, btnLoading) {
  9189. // console.log(this.editorInfo);
  9190. // debugger;
  9191. //同车主的选择框
  9192. this[btnLoading] = true;
  9193. if (this.tbczcarShow && this.imageList2.length > 0) {
  9194. //投保人同车主
  9195. this.imageList3 = JSON.parse(JSON.stringify(this.imageList2));
  9196. if (this.imageList3.length == 1) {
  9197. this.imageList3[0].imageType = this.imageList3[0].imageType.includes(
  9198. "C0"
  9199. )
  9200. ? "C03"
  9201. : "D03";
  9202. } else {
  9203. this.imageList3.forEach(e => {
  9204. e.imageType = e.imageType.includes("C0") ? "C03" : "D03";
  9205. });
  9206. }
  9207. }
  9208. if (this.bbczcarShow && this.imageList2.length > 0) {
  9209. //被保人同车主
  9210. this.imageList4 = JSON.parse(JSON.stringify(this.imageList2));
  9211. if (this.imageList4.length == 1) {
  9212. this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  9213. "C0"
  9214. )
  9215. ? "C04"
  9216. : "D04";
  9217. } else {
  9218. this.imageList4.forEach(e => {
  9219. e.imageType = e.imageType.includes("C0") ? "C04" : "D04";
  9220. });
  9221. }
  9222. }
  9223. if (this.bbtbcarShow && this.imageList3.length > 0) {
  9224. //被保人同投保人
  9225. this.imageList4 = JSON.parse(JSON.stringify(this.imageList3));
  9226. if (this.imageList4.length == 1) {
  9227. this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  9228. "C0"
  9229. )
  9230. ? "C04"
  9231. : "D04";
  9232. } else {
  9233. this.imageList4.forEach(e => {
  9234. e.imageType = e.imageType.includes("C0") ? "C04" : "D04";
  9235. });
  9236. }
  9237. }
  9238. //日期长度<10处理
  9239. const formatDate = date => {
  9240. if (date.length < 10) {
  9241. return this.timeformat(date);
  9242. }
  9243. return date;
  9244. };
  9245. if (this.carInfo.registerDate.length < 10) {
  9246. this.carInfo.registerDate = formatDate(this.carInfo.registerDate);
  9247. }
  9248. if (this.carInfo.issueDate.length < 10) {
  9249. this.carInfo.issueDate = formatDate(this.carInfo.issueDate);
  9250. }
  9251. if (
  9252. this.carInfo.transferDate &&
  9253. this.carInfo.transferDate.length < 10 &&
  9254. this.carInfo.transferDate !== ""
  9255. ) {
  9256. this.carInfo.transferDate = formatDate(this.carInfo.transferDate);
  9257. }
  9258. //日期长度<10处理
  9259. //提交身份证/驾驶证 ——————————————————
  9260. this.policyHolderInfo.owner = this.tbczcarShow;
  9261. this.insuredPersonInfo.owner = this.bbczcarShow;
  9262. this.insuredPersonInfo.insuranceHolder = this.bbtbcarShow;
  9263. if (typeof this.ownerInfo.provinceData == "string") {
  9264. this.ownerInfo.provinceData = [];
  9265. }
  9266. if (typeof this.insuredPersonInfo.provinceData == "string") {
  9267. this.insuredPersonInfo.provinceData = [];
  9268. }
  9269. if (typeof this.policyHolderInfo.provinceData == "string") {
  9270. this.policyHolderInfo.provinceData = [];
  9271. }
  9272. if (this.$route.query.data) {
  9273. const mergedArray = [
  9274. ...this.imageList1,
  9275. ...this.imageList2,
  9276. ...this.imageList3,
  9277. ...this.imageList4,
  9278. ...this.imageList5,
  9279. ...this.imageList6
  9280. ];
  9281. if (mergedArray.length > 0) {
  9282. let imageparam = {
  9283. imageList: mergedArray,
  9284. quoteNo: this.$route.query.data.quoteno
  9285. };
  9286. this.$api.letter.uploadImages(imageparam).then(responses => {
  9287. // this.$refs.imageDialog.imageEcho(this.$route.query.data.quoteno)
  9288. this.imageEcho(this.$route.query.data.quoteno); // 获取图片
  9289. });
  9290. }
  9291. this.editorInfo.applyinfo.owner = this.tbczcarShow;
  9292. this.editorInfo.insureinfo.owner = this.bbczcarShow;
  9293. this.editorInfo.insureinfo.insuranceHolder = this.bbtbcarShow;
  9294. let params = {
  9295. orderNo: this.$route.query.data.orderno,
  9296. ...this.policyNumberForm,
  9297. agreementId: this.isLetter3agreementId,
  9298. stageFlag: type,
  9299. jqstartdate: this.jqstartDate,
  9300. jqenddate: this.jqendDate,
  9301. systartdate: this.systartDate,
  9302. syenddate: this.syendDate,
  9303. kind: this.kindList,
  9304. risk: this.riskList,
  9305. kindList: this.kindList,
  9306. riskList: this.riskList,
  9307. carInfo: this.carInfo,
  9308. insuredPersonInfo: this.insuredPersonInfo,
  9309. ownerInfo: this.ownerInfo,
  9310. policyHolderInfo: this.policyHolderInfo,
  9311. isExternal: "1",
  9312. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  9313. };
  9314. // debugger;
  9315. this.$api.letter.updateExternalOrder(params).then(res => {
  9316. if (res.code == "200") {
  9317. this[btnLoading] = false;
  9318. this.$message({
  9319. message: res.msg || "编辑成功",
  9320. type: "success"
  9321. });
  9322. this.add();
  9323. } else {
  9324. this[btnLoading] = false;
  9325. this.$message.error(res.msg);
  9326. }
  9327. });
  9328. } else {
  9329. this.ownerInfo.owner = this.tbczcarShow;
  9330. this.insuredPersonInfo.owner = this.bbczcarShow;
  9331. this.insuredPersonInfo.insuranceHolder = this.bbtbcarShow;
  9332. let param = {
  9333. userId: this.userId,
  9334. quoteno: this.quoteno,
  9335. orderNo: this.orderno,
  9336. carInfo: this.carInfo,
  9337. insuredPersonInfo: this.insuredPersonInfo,
  9338. ownerInfo: this.ownerInfo,
  9339. policyHolderInfo: this.policyHolderInfo,
  9340. kindList: this.kindList,
  9341. riskList: this.riskList,
  9342. isExternal: "1",
  9343. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  9344. };
  9345. this.$api.letter.generateOrder(param).then(res => {
  9346. if (res.code == "200") {
  9347. //上传图片
  9348. const mergedArray = [
  9349. ...this.imageList1,
  9350. ...this.imageList2,
  9351. ...this.imageList3,
  9352. ...this.imageList4,
  9353. ...this.imageList5,
  9354. ...this.imageList6
  9355. ];
  9356. if (mergedArray.length > 0) {
  9357. let imageparam = {
  9358. imageList: mergedArray,
  9359. quoteNo: res.data.quoteno
  9360. };
  9361. this.$api.letter.uploadImages(imageparam).then(responses => {
  9362. this.imageEcho(res.data.quoteno); // 获取图片
  9363. // this.$refs.imageDialog.imageEcho(res.data.quoteno)
  9364. });
  9365. }
  9366. let params1 = {
  9367. orderNo: res.data.orderno,
  9368. ...this.policyNumberForm,
  9369. agreementId: this.isLetter3agreementId,
  9370. stageFlag: type,
  9371. nowCostsId: this.nowCostsId
  9372. };
  9373. // debugger
  9374. this.$api.letter.saveSubOrder(params1).then(res => {
  9375. if (res.code == "200") {
  9376. this[btnLoading] = false;
  9377. this.$message({
  9378. message: res.msg || "录入成功",
  9379. type: "success"
  9380. });
  9381. this.add();
  9382. } else {
  9383. this[btnLoading] = false;
  9384. this.$message.error(res.msg);
  9385. }
  9386. });
  9387. } else {
  9388. this[btnLoading] = false;
  9389. this.$message.error(res.msg);
  9390. }
  9391. });
  9392. }
  9393. // document.getElementById("company").scrollIntoView();
  9394. this.imageUploadShow = true;
  9395. },
  9396. policyHolderInfovalidate() {
  9397. let _this = this;
  9398. // tbczcarShow 同车主
  9399. if (_this.tbczcarShow == true) {
  9400. // 投保人信息 policyHolderInfo
  9401. _this.policyHolderInfo = { ..._this.ownerInfo };
  9402. } else {
  9403. _this.$refs["policyHolderInfo"].validate(valid2 => {
  9404. if (valid2) {
  9405. } else {
  9406. document.getElementById("toubaor").scrollIntoView();
  9407. _this.$message({ message: "请检查投保人信息", type: "warning" });
  9408. }
  9409. });
  9410. }
  9411. this.bbtbcarShowChange();
  9412. this.bbczcarShowChange();
  9413. },
  9414. validateCarCode() {
  9415. this.validateCarCodeShow = true;
  9416. if (this.myQrCode) {
  9417. this.myQrCode.clear();
  9418. }
  9419. this.$nextTick(() => {
  9420. this.myQrCode = new QrCode(this.$refs.myQrcode, {
  9421. // text 需要转二维码的内容 可以是文本也可以是一个链接 是链接会直接跳走
  9422. text: this.vehicleInspectionUrl,
  9423. width: 200,
  9424. height: 200,
  9425. colorDark: "#333", //二维码颜色
  9426. colorLight: "#fff", //二维码背景颜色
  9427. correctLevel: QrCode.CorrectLevel.L //容错率,L/M/H
  9428. });
  9429. });
  9430. },
  9431. //报价
  9432. quote(index) {
  9433. let starttime = new Date(this.carInfo.registerDate);
  9434. let endtime = new Date(this.carInfo.issueDate);
  9435. if (endtime < starttime) {
  9436. this.$message({ message: "发证日期早于初登日期", type: "error" });
  9437. return;
  9438. }
  9439. this.policyHolderInfovalidate();
  9440. this.$refs["carInfo"].validate(valid => {
  9441. if (valid) {
  9442. var _this = this;
  9443. // this.policyHolderInfovalidate()
  9444. if (_this.tbczcarShow == true) {
  9445. _this.policyHolderInfo = { ..._this.ownerInfo };
  9446. }
  9447. _this.$refs["ownerInfo"].validate(valid1 => {
  9448. if (valid1) {
  9449. if (_this.bbczcarShow == true) {
  9450. _this.insuredPersonInfo = { ..._this.ownerInfo };
  9451. }
  9452. if (_this.bbtbcarShow == true) {
  9453. _this.insuredPersonInfo = { ..._this.policyHolderInfo };
  9454. }
  9455. _this.carInfo.vinNo = _this.carInfo.frameNo;
  9456. _this.riskList = []; //险种大类
  9457. _this.kindList = []; //商业险险别
  9458. if (
  9459. (!_this.jqstartDate || !_this.jqendDate) &&
  9460. (!_this.systartDate || !_this.syendDate)
  9461. ) {
  9462. this.$message({ message: "投保日期不能为空", type: "warning" });
  9463. } else {
  9464. if (
  9465. this.totalCompanyList[index].isTaxSource != 1 &&
  9466. this.totalCompanyList[index].agreementId == ""
  9467. ) {
  9468. this.$message.warning("请选择协议");
  9469. return;
  9470. }
  9471. this.calculateLoading = true;
  9472. setInterval(() => {
  9473. this.calculateLoading = false;
  9474. }, 3000);
  9475. _this.totalCompanyList[index].kindList = [];
  9476. let kinds = [
  9477. ..._this.totalCompanyList[index].programme.kinds.main,
  9478. ..._this.totalCompanyList[index].programme.kinds.additional,
  9479. ..._this.totalCompanyList[index].programme.kinds.service
  9480. ];
  9481. kinds.forEach(value => {
  9482. _this.totalCompanyList[index].kindList.push({
  9483. amount: value.amount,
  9484. serviceTimes: value.amount,
  9485. unitAmount: value.amount,
  9486. kindCode: value.kindCode,
  9487. kindName: value.kindName
  9488. });
  9489. });
  9490. if (_this.jqchecked) {
  9491. //交强
  9492. _this.jqstartDate = this.transformTime(_this.jqstartDate);
  9493. _this.jqendDate = this.transformTime(_this.jqendDate);
  9494. _this.riskList.push({
  9495. amount: "200000",
  9496. premium: "0",
  9497. riskCode: "0507",
  9498. endDate: _this.jqendDate,
  9499. startDate: _this.jqstartDate,
  9500. instantFlag: "0"
  9501. });
  9502. }
  9503. if (_this.sychecked) {
  9504. _this.systartDate = this.transformTime(_this.systartDate);
  9505. _this.syendDate = this.transformTime(_this.syendDate);
  9506. //商业
  9507. _this.riskList.push({
  9508. premium: "0",
  9509. riskCode: "0510",
  9510. quotePreceptCode: "",
  9511. quotePreceptName: "",
  9512. endDate: _this.syendDate,
  9513. startDate: _this.systartDate,
  9514. instantFlag: "0"
  9515. });
  9516. // _this.totalCompanyList.forEach((val) => {
  9517. // if (val.checked) {
  9518. // console.log(val.programme, 'programmeeeeeeee')
  9519. // let kinds = [...val.programme.kinds.additional, ...val.programme.kinds.main, ...val.programme.kinds.service]
  9520. // kinds.forEach((value) => {
  9521. // _this.kindList.push({
  9522. // amount: value.amount,
  9523. // kindCode: value.kindCode,
  9524. // kindName: value.kindName
  9525. // })
  9526. // })
  9527. // }
  9528. // })
  9529. _this.insureList.map((ele, index) => {
  9530. // if (
  9531. // ele.amount != "0" &&
  9532. // (ele.kindCode == "D4" || ele.kindCode == "SY_FJ_YBW2")
  9533. // ) {
  9534. // _this.kindList.push({
  9535. // unitAmount: _this.insureList[index].amount,
  9536. // kindCode: _this.insureList[index].kindCode,
  9537. // kindName: _this.insureList[index].kindName,
  9538. // });
  9539. // } else if (
  9540. // ele.amount != "0" &&
  9541. // (ele.kindCode == "MJ1" ||
  9542. // ele.kindCode == "MJ2" ||
  9543. // ele.kindCode == "MJ3" ||
  9544. // ele.kindCode == "MJ4")
  9545. // ) {
  9546. // _this.kindList.push({
  9547. // deductibleRate: _this.insureList[index].amount,
  9548. // kindCode: _this.insureList[index].kindCode,
  9549. // kindName: _this.insureList[index].kindName,
  9550. // });
  9551. // } else if (
  9552. // ele.amount != "0" &&
  9553. // (ele.kindCode == "TY1" ||
  9554. // ele.kindCode == "TY2" ||
  9555. // ele.kindCode == "TY3" ||
  9556. // ele.kindCode == "TY4")
  9557. // ) {
  9558. // _this.kindList.push({
  9559. // serviceTimes: _this.insureList[index].amount,
  9560. // kindCode: _this.insureList[index].kindCode,
  9561. // kindName: _this.insureList[index].kindName,
  9562. // });
  9563. // } else if (ele.amount != "0") {
  9564. // _this.kindList.push({
  9565. // amount: _this.insureList[index].amount,
  9566. // kindCode: _this.insureList[index].kindCode,
  9567. // kindName: _this.insureList[index].kindName,
  9568. // });
  9569. // }
  9570. return ele;
  9571. });
  9572. } else {
  9573. _this.kindList = [];
  9574. }
  9575. // if (_this.orderno) {
  9576. this.OrderStageProcessing(index);
  9577. // } else {
  9578. // _this.$api.letter.getquote().then(res => {
  9579. // _this.quoteno = res.data; //获取报价号
  9580. // this.OrderStageProcessing();
  9581. // });
  9582. // }
  9583. }
  9584. } else {
  9585. document.getElementById("CheZhu").scrollIntoView();
  9586. _this.$message({ message: "请检查人员信息", type: "warning" });
  9587. }
  9588. });
  9589. } else {
  9590. document.getElementById("Car").scrollIntoView();
  9591. this.$message({ message: "请检查车辆信息", type: "warning" });
  9592. return false;
  9593. }
  9594. });
  9595. },
  9596. quote1() {
  9597. let starttime = new Date(this.carInfo.registerDate);
  9598. let endtime = new Date(this.carInfo.issueDate);
  9599. if (endtime < starttime) {
  9600. this.$message({ message: "发证日期早于初登日期", type: "error" });
  9601. return;
  9602. }
  9603. if (
  9604. this.carInfo.licenseNo.length === 8 &&
  9605. this.carInfo.energyType === "0"
  9606. ) {
  9607. this.$message.error("能源类型错误,请重新选择!");
  9608. return;
  9609. }
  9610. this.policyHolderInfovalidate();
  9611. var _this = this;
  9612. this.$refs["carInfo"].validate(valid => {
  9613. if (valid) {
  9614. // this.policyHolderInfovalidate()
  9615. if (_this.tbczcarShow == true) {
  9616. _this.policyHolderInfo = { ..._this.ownerInfo };
  9617. }
  9618. _this.$refs["ownerInfo"].validate(valid1 => {
  9619. if (valid1) {
  9620. if (_this.bbczcarShow == true) {
  9621. _this.insuredPersonInfo = { ..._this.ownerInfo };
  9622. }
  9623. if (_this.bbtbcarShow == true) {
  9624. _this.insuredPersonInfo = { ..._this.policyHolderInfo };
  9625. }
  9626. _this.carInfo.vinNo = _this.carInfo.frameNo;
  9627. _this.riskList = []; //险种大类
  9628. _this.kindList = []; //商业险险别
  9629. if (
  9630. (!_this.jqstartDate || !_this.jqendDate) &&
  9631. (!_this.systartDate || !_this.syendDate)
  9632. ) {
  9633. this.$message({ message: "投保日期不能为空", type: "warning" });
  9634. } else {
  9635. this.calculateLoading = true;
  9636. setInterval(() => {
  9637. this.calculateLoading = false;
  9638. }, 3000);
  9639. try {
  9640. this.totalCompanyList.forEach((val, index) => {
  9641. if (val.checked) {
  9642. val.kindList = [];
  9643. if (!val.programme) {
  9644. // throw Error("没有方案")
  9645. return;
  9646. }
  9647. let kinds = [
  9648. ...val.programme.kinds.main,
  9649. ...val.programme.kinds.additional,
  9650. ...val.programme.kinds.service
  9651. ];
  9652. kinds.forEach(value => {
  9653. this.totalCompanyList[index].kindList.push({
  9654. amount: value.amount,
  9655. serviceTimes: value.amount,
  9656. unitAmount: value.amount,
  9657. kindCode: value.kindCode,
  9658. kindName: value.kindName
  9659. });
  9660. });
  9661. if (val.isTaxSource != 1 && val.agreementId == "") {
  9662. this.$message.warning("请选择协议");
  9663. throw Error("请选择协议");
  9664. }
  9665. }
  9666. });
  9667. } catch (error) {
  9668. return console.log(error);
  9669. }
  9670. if (_this.jqchecked) {
  9671. //交强
  9672. _this.jqstartDate = this.transformTime(_this.jqstartDate);
  9673. _this.jqendDate = this.transformTime(_this.jqendDate);
  9674. _this.riskList.push({
  9675. amount: "200000",
  9676. premium: "0",
  9677. riskCode: "0507",
  9678. endDate: _this.jqendDate,
  9679. startDate: _this.jqstartDate,
  9680. instantFlag: "0"
  9681. });
  9682. }
  9683. if (_this.sychecked) {
  9684. _this.systartDate = this.transformTime(_this.systartDate);
  9685. _this.syendDate = this.transformTime(_this.syendDate);
  9686. //商业
  9687. _this.riskList.push({
  9688. premium: "0",
  9689. riskCode: "0510",
  9690. quotePreceptCode: "",
  9691. quotePreceptName: "",
  9692. endDate: _this.syendDate,
  9693. startDate: _this.systartDate,
  9694. instantFlag: "0"
  9695. });
  9696. } else {
  9697. _this.kindList = [];
  9698. }
  9699. // if (_this.orderno) {
  9700. this.OrderStageProcessing();
  9701. // } else {
  9702. // _this.$api.letter.getquote().then(res => {
  9703. // _this.quoteno = res.data; //获取报价号
  9704. // this.OrderStageProcessing();
  9705. // });
  9706. // }
  9707. }
  9708. } else {
  9709. document.getElementById("CheZhu").scrollIntoView();
  9710. _this.$message({ message: "请检查人员信息", type: "warning" });
  9711. }
  9712. });
  9713. } else {
  9714. document.getElementById("Car").scrollIntoView();
  9715. this.$message({ message: "请检查车辆信息", type: "warning" });
  9716. return false;
  9717. }
  9718. });
  9719. },
  9720. kindListFun(index) {
  9721. var _this = this;
  9722. _this.riskList = []; //险种大类
  9723. _this.kindList = []; //商业险险别
  9724. if (
  9725. (!_this.jqstartDate || !_this.jqendDate) &&
  9726. (!_this.systartDate || !_this.syendDate)
  9727. ) {
  9728. this.$message({ message: "投保日期不能为空", type: "warning" });
  9729. } else {
  9730. if (_this.jqchecked) {
  9731. //交强
  9732. _this.jqstartDate = this.transformTime(_this.jqstartDate);
  9733. _this.jqendDate = this.transformTime(_this.jqendDate);
  9734. _this.riskList.push({
  9735. amount: "200000",
  9736. premium: "0",
  9737. riskCode: "0507",
  9738. endDate: _this.jqendDate,
  9739. startDate: _this.jqstartDate,
  9740. instantFlag: "0"
  9741. });
  9742. }
  9743. if (_this.sychecked) {
  9744. _this.systartDate = this.transformTime(_this.systartDate);
  9745. _this.syendDate = this.transformTime(_this.syendDate);
  9746. //商业
  9747. _this.riskList.push({
  9748. premium: "0",
  9749. riskCode: "0510",
  9750. quotePreceptCode: "",
  9751. quotePreceptName: "",
  9752. endDate: _this.syendDate,
  9753. startDate: _this.systartDate,
  9754. instantFlag: "0"
  9755. });
  9756. // _this.insureList.map((ele, index) => {
  9757. // if (
  9758. // ele.amount != "0" &&
  9759. // (ele.kindCode == "D4" || ele.kindCode == "SY_FJ_YBW2")
  9760. // ) {
  9761. // _this.kindList.push({
  9762. // unitAmount: _this.insureList[index].amount,
  9763. // kindCode: _this.insureList[index].kindCode,
  9764. // kindName: _this.insureList[index].kindName,
  9765. // });
  9766. // } else if (
  9767. // ele.amount != "0" &&
  9768. // (ele.kindCode == "MJ1" ||
  9769. // ele.kindCode == "MJ2" ||
  9770. // ele.kindCode == "MJ3" ||
  9771. // ele.kindCode == "MJ4")
  9772. // ) {
  9773. // _this.kindList.push({
  9774. // deductibleRate: _this.insureList[index].amount,
  9775. // kindCode: _this.insureList[index].kindCode,
  9776. // kindName: _this.insureList[index].kindName,
  9777. // });
  9778. // } else if (
  9779. // ele.amount != "0" &&
  9780. // (ele.kindCode == "TY1" ||
  9781. // ele.kindCode == "TY2" ||
  9782. // ele.kindCode == "TY3" ||
  9783. // ele.kindCode == "TY4")
  9784. // ) {
  9785. // _this.kindList.push({
  9786. // serviceTimes: _this.insureList[index].amount,
  9787. // kindCode: _this.insureList[index].kindCode,
  9788. // kindName: _this.insureList[index].kindName,
  9789. // });
  9790. // } else if (ele.amount != "0") {
  9791. // _this.kindList.push({
  9792. // amount: _this.insureList[index].amount,
  9793. // kindCode: _this.insureList[index].kindCode,
  9794. // kindName: _this.insureList[index].kindName,
  9795. // });
  9796. // }
  9797. // return ele;
  9798. // });
  9799. } else {
  9800. _this.kindList = [];
  9801. }
  9802. }
  9803. },
  9804. //动态函数
  9805. ToolClickFun(MethodName, Parameter, companyId, companyName, index) {
  9806. this[`${MethodName}`](Parameter, companyId, companyName, index);
  9807. },
  9808. //更新报价历史
  9809. QuotationHistory() {
  9810. let params = {
  9811. orderNo: this.orderno,
  9812. orderStatus: ""
  9813. };
  9814. this.$api.letter.queryQuoteHistory(params).then(res => {
  9815. res.data.forEach(item => {
  9816. if (item.accidentInfo) {
  9817. item.accidentInfo.constructor === Object
  9818. ? [item.accidentInfo]
  9819. : item.accidentInfo;
  9820. }
  9821. });
  9822. this.HistoryList = res.data;
  9823. });
  9824. },
  9825. open2(Name, Msg) {
  9826. this.$notify.info({
  9827. title: Name,
  9828. dangerouslyUseHTMLString: true,
  9829. type: "warning",
  9830. message: Msg,
  9831. customClass: "customNotifyClass",
  9832. duration: 7000
  9833. });
  9834. },
  9835. open3(Name, Msg) {
  9836. this.$notify.info({
  9837. title: Name,
  9838. dangerouslyUseHTMLString: true,
  9839. type: "warning",
  9840. message: `<p>${Msg.replace(/\n/g, "<br>")}</p>`,
  9841. customClass: "customNotifyClass",
  9842. duration: 7000
  9843. });
  9844. },
  9845. openPredictInfo(Name, Msg) {
  9846. this.redictInfoMsg = Msg;
  9847. this.redictInfodialogVisible = true;
  9848. },
  9849. //订单生成前数据处理事件
  9850. OrderStageProcessing(index) {
  9851. if (this.tbczcarShow && this.imageList2.length > 0) {
  9852. //投保人同车主
  9853. this.imageList3 = JSON.parse(JSON.stringify(this.imageList2));
  9854. if (this.imageList3.length == 1) {
  9855. if (this.imageList3[0].imageType.includes("C0")) {
  9856. this.imageList3[0].imageType = this.imageList3[0].imageType.includes(
  9857. "C0"
  9858. )
  9859. ? "C03"
  9860. : "D03";
  9861. }
  9862. if (this.imageList3[0].imageType.includes("Y0")) {
  9863. this.imageList3[0].imageType = this.imageList3[0].imageType.includes(
  9864. "Y0"
  9865. )
  9866. ? "Y03"
  9867. : "";
  9868. }
  9869. } else {
  9870. this.imageList3.forEach(e => {
  9871. e.imageType = e.imageType.includes("C0") ? "C03" : "D03";
  9872. });
  9873. }
  9874. }
  9875. if (this.bbczcarShow && this.imageList2.length > 0) {
  9876. //被保人同车主
  9877. this.imageList4 = JSON.parse(JSON.stringify(this.imageList2));
  9878. if (this.imageList4.length == 1) {
  9879. // this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  9880. // "C0"
  9881. // )
  9882. // ? "C04"
  9883. // : "D04";
  9884. if (this.imageList4[0].imageType.includes("C0")) {
  9885. this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  9886. "C0"
  9887. )
  9888. ? "C04"
  9889. : "D04";
  9890. }
  9891. if (this.imageList4[0].imageType.includes("Y0")) {
  9892. this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  9893. "Y0"
  9894. )
  9895. ? "Y04"
  9896. : "";
  9897. }
  9898. } else {
  9899. this.imageList4.forEach(e => {
  9900. e.imageType = e.imageType.includes("C0") ? "C04" : "D04";
  9901. });
  9902. }
  9903. // if (this.imageList4.length == 1) {
  9904. // this.imageList4[0].imageType = "C04";
  9905. // }
  9906. // else {
  9907. // this.imageList4[0].imageType = "C04";
  9908. // this.imageList4[1].imageType = "D04";
  9909. // }
  9910. }
  9911. if (this.bbtbcarShow && this.imageList3.length > 0) {
  9912. //被保人同投保人
  9913. this.imageList4 = JSON.parse(JSON.stringify(this.imageList3));
  9914. if (this.imageList4.length == 1) {
  9915. // this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  9916. // "C0"
  9917. // )
  9918. // ? "C04"
  9919. // : "D04";
  9920. if (this.imageList4[0].imageType.includes("C0")) {
  9921. this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  9922. "C0"
  9923. )
  9924. ? "C04"
  9925. : "D04";
  9926. }
  9927. if (this.imageList4[0].imageType.includes("Y0")) {
  9928. this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  9929. "Y0"
  9930. )
  9931. ? "Y04"
  9932. : "";
  9933. }
  9934. } else {
  9935. this.imageList4.forEach(e => {
  9936. e.imageType = e.imageType.includes("C0") ? "C04" : "D04";
  9937. });
  9938. }
  9939. // if (this.imageList4.length == 1) {
  9940. // this.imageList4[0].imageType = "C04";
  9941. // } else {
  9942. // this.imageList4[0].imageType = "C04";
  9943. // this.imageList4[1].imageType = "D04";
  9944. // }
  9945. }
  9946. //日期长度<10处理
  9947. const formatDate = date => {
  9948. if (date.length < 10) {
  9949. return this.timeformat(date);
  9950. }
  9951. return date;
  9952. };
  9953. if (this.carInfo.registerDate.length < 10) {
  9954. this.carInfo.registerDate = formatDate(this.carInfo.registerDate);
  9955. }
  9956. if (this.carInfo.issueDate.length < 10) {
  9957. this.carInfo.issueDate = formatDate(this.carInfo.issueDate);
  9958. }
  9959. if (
  9960. this.carInfo.transferDate &&
  9961. this.carInfo.transferDate.length < 10 &&
  9962. this.carInfo.transferDate !== ""
  9963. ) {
  9964. this.carInfo.transferDate = formatDate(this.carInfo.transferDate);
  9965. }
  9966. //日期长度<10处理
  9967. //提交身份证/驾驶证 ——————————————————
  9968. this.policyHolderInfo.owner = this.tbczcarShow;
  9969. this.insuredPersonInfo.owner = this.bbczcarShow;
  9970. this.insuredPersonInfo.insuranceHolder = this.bbtbcarShow;
  9971. if (typeof this.ownerInfo.provinceData == "string") {
  9972. this.ownerInfo.provinceData = [];
  9973. }
  9974. if (typeof this.insuredPersonInfo.provinceData == "string") {
  9975. this.insuredPersonInfo.provinceData = [];
  9976. }
  9977. if (typeof this.policyHolderInfo.provinceData == "string") {
  9978. this.policyHolderInfo.provinceData = [];
  9979. }
  9980. let param = {
  9981. userId: this.userId,
  9982. quoteno: this.quoteno,
  9983. orderNo: this.orderno,
  9984. carInfo: this.carInfo,
  9985. insuredPersonInfo: this.insuredPersonInfo,
  9986. ownerInfo: this.ownerInfo,
  9987. policyHolderInfo: this.policyHolderInfo,
  9988. riskList: this.riskList,
  9989. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  9990. productId: this.productId
  9991. };
  9992. this.$api.letter[this.apiInterfaceName](param).then(res => {
  9993. if (res.code == "200") {
  9994. //上传图片
  9995. const mergedArray = [
  9996. ...this.imageList1,
  9997. ...this.imageList2,
  9998. ...this.imageList3,
  9999. ...this.imageList4,
  10000. ...this.imageList5,
  10001. ...this.imageList6
  10002. ];
  10003. if (mergedArray.length > 0) {
  10004. let imageparam = {
  10005. imageList: mergedArray,
  10006. quoteNo: res.data.quoteno
  10007. };
  10008. this.$api.letter.uploadImages(imageparam).then(responses => {
  10009. this.imageEcho(res.data.quoteno); // 获取图片
  10010. // this.$refs.imageDialog.imageEcho(res.data.quoteno)
  10011. });
  10012. }
  10013. this.quoteno = res.data.quoteno;
  10014. this.orderno = res.data.orderno;
  10015. if (index >= 0) {
  10016. this.totalCompanyList[index].quoteCode = 1;
  10017. this.ToolClickFun(
  10018. this.totalCompanyList[index].cnName,
  10019. index,
  10020. this.totalCompanyList[index].id,
  10021. this.totalCompanyList[index].namesimple
  10022. );
  10023. } else {
  10024. this.totalCompanyList.map((ele, index) => {
  10025. if (ele.checked) {
  10026. //动态调用报价接口
  10027. if (ele.programme) {
  10028. ele.quoteCode = 1;
  10029. ele.orderstatus = 0;
  10030. this.ToolClickFun(ele.cnName, index, ele.id, ele.namesimple);
  10031. }
  10032. }
  10033. });
  10034. }
  10035. } else if (res.code == 1001) {
  10036. this.$confirm("是否生成新订单?", "提示", {
  10037. confirmButtonText: "确定",
  10038. cancelButtonText: "取消",
  10039. type: "warning"
  10040. })
  10041. .then(() => {
  10042. this.orderno = "";
  10043. this.quoteno = "";
  10044. this.quote(index);
  10045. })
  10046. .catch(() => { });
  10047. } else {
  10048. alert(11111111)
  10049. this.$message({ message: res.msg, type: "warning" });
  10050. }
  10051. });
  10052. // document.getElementById("company").scrollIntoView();
  10053. this.imageUploadShow = true;
  10054. },
  10055. // 泰康报价--11
  10056. taikang(num, id, namesimple) {
  10057. this.quoteInsurance(
  10058. num,
  10059. id,
  10060. namesimple,
  10061. this.totalCompanyList[num].apiType
  10062. );
  10063. },
  10064. // 平安报价
  10065. pingan(num, id) {
  10066. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  10067. let accidentalDrivingVo = [];
  10068. if (this.pinganaccidentalDrivingVo) {
  10069. accidentalDrivingVo = this.pinganaccidentalDrivingVo;
  10070. // accidentalDrivingVo = Object.assign({
  10071. // ...this.pinganaccidentalDrivingVo,
  10072. // ...this.accidentFormPA,
  10073. // });
  10074. }
  10075. let params = {
  10076. accidentalDrivingVo,
  10077. orderNo: this.orderno,
  10078. companyId: id,
  10079. agreementId: this.totalCompanyList[num].agreementId,
  10080. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  10081. kinds: this.totalCompanyList[num].kindList,
  10082. risks: this.riskList,
  10083. productId: this.productId
  10084. };
  10085. this.$api.letter.pinganquote(params).then(res => {
  10086. this.totalCompanyList[num].msg = res.msg;
  10087. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  10088. this.totalCompanyList[num].quoteCode = "4";
  10089. this.totalCompanyList[num].msg = res.msg;
  10090. return;
  10091. } else if (
  10092. res.data == null &&
  10093. res.msg.indexOf("交强险平台返回") > -1 &&
  10094. res.msg.indexOf(";终保日期") > -1
  10095. ) {
  10096. this.totalCompanyList[num].lastYearMsg =
  10097. "<b>交强险</b><br>" +
  10098. res.msg.slice(
  10099. res.msg.indexOf("起保日期 "),
  10100. res.msg.indexOf("地区 山西。") + 6
  10101. );
  10102. let time =
  10103. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  10104. this.jqstartDate = time;
  10105. this.jqendDate = this.oneYearPast1(time);
  10106. if (this.riskList.length > 0) {
  10107. for (let i = 0; i < this.riskList.length; i++) {
  10108. if (this.riskList[i].riskCode == "0507") {
  10109. this.riskList[i].startDate = time;
  10110. this.riskList[i].endDate = this.oneYearPast1(time);
  10111. }
  10112. }
  10113. }
  10114. let param = {
  10115. userId: this.userId,
  10116. quoteno: this.quoteno,
  10117. orderNo: this.orderno,
  10118. carInfo: this.carInfo,
  10119. insuredPersonInfo: this.insuredPersonInfo,
  10120. ownerInfo: this.ownerInfo,
  10121. policyHolderInfo: this.policyHolderInfo,
  10122. kindList: this.kindList,
  10123. riskList: this.riskList,
  10124. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  10125. };
  10126. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  10127. this.pingan(num, id);
  10128. });
  10129. } else if (!!res.data) {
  10130. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  10131. this.totalCompanyList[num].lastYearMsg = "";
  10132. let dat = res.data.warnMessageList;
  10133. dat.map(ele => {
  10134. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  10135. });
  10136. }
  10137. this.totalCompanyList[num].quoteCode = 200;
  10138. this.totalCompanyList[num].result = res.data;
  10139. this.jqstartDate = res.data.startDateJq;
  10140. this.jqendDate = res.data.endDateJq;
  10141. this.systartDate = res.data.startDateSy;
  10142. this.syendDate = res.data.endDateSy;
  10143. this.QuotationHistory();
  10144. } else {
  10145. this.totalCompanyList[num].quoteCode = "3";
  10146. this.totalCompanyList[num].msg = res.msg;
  10147. return;
  10148. }
  10149. });
  10150. },
  10151. //永安报价
  10152. yongan(num, id) {
  10153. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  10154. let params = {
  10155. accidentalDrivingVo:{},
  10156. orderNo: this.orderno,
  10157. companyId: id,
  10158. agreementId: this.totalCompanyList[num].agreementId,
  10159. kinds: this.totalCompanyList[num].kindList,
  10160. risks: this.riskList,
  10161. productId: this.productId,
  10162. carChecker: this.totalCompanyList[num].result.carChecker,
  10163. yaBusinessDiscount: this.totalCompanyList[num].result.yaBusinessDiscount
  10164. };
  10165. this.$api.letter.yonganquote(params).then(res => {
  10166. this.totalCompanyList[num].msg = res.msg;
  10167. if (res.msg == "重复投保" && res.code == "501") {
  10168. if (!!res.data.jqStartDate && !res.data.syStartDate) {
  10169. this.jqstartDate = res.data.jqStartDate;
  10170. this.jqendDate = res.data.jqEndDate;
  10171. this.updateRiskDates(
  10172. "0507",
  10173. res.data.jqStartDate,
  10174. res.data.jqEndDate
  10175. );
  10176. let param = {
  10177. userId: this.userId,
  10178. quoteno: this.quoteno,
  10179. orderNo: this.orderno,
  10180. carInfo: this.carInfo,
  10181. insuredPersonInfo: this.insuredPersonInfo,
  10182. ownerInfo: this.ownerInfo,
  10183. policyHolderInfo: this.policyHolderInfo,
  10184. kindList: this.kindList,
  10185. riskList: this.riskList,
  10186. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  10187. isTaxSource: isTaxSource == 1 ? isTaxSource : null
  10188. };
  10189. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  10190. this.yongan(num, id);
  10191. });
  10192. } else if (!!res.data.syStartDate && !res.data.jqStartDate) {
  10193. this.systartDate = res.data.syStartDate;
  10194. this.syendDate = res.data.syEndDate;
  10195. this.updateRiskDates(
  10196. "0510",
  10197. res.data.syStartDate,
  10198. res.data.syEndDate
  10199. );
  10200. let param = {
  10201. userId: this.userId,
  10202. quoteno: this.quoteno,
  10203. orderNo: this.orderno,
  10204. carInfo: this.carInfo,
  10205. insuredPersonInfo: this.insuredPersonInfo,
  10206. ownerInfo: this.ownerInfo,
  10207. policyHolderInfo: this.policyHolderInfo,
  10208. kindList: this.kindList,
  10209. riskList: this.riskList,
  10210. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  10211. };
  10212. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  10213. this.yongan(num, id);
  10214. });
  10215. } else if (!!res.data.syStartDate && !!res.data.jqStartDate) {
  10216. this.jqstartDate = res.data.jqStartDate;
  10217. this.jqendDate = res.data.jqEndDate;
  10218. this.systartDate = res.data.syStartDate;
  10219. this.syendDate = res.data.syEndDate;
  10220. this.updateRiskDates(
  10221. "0507",
  10222. res.data.jqStartDate,
  10223. res.data.jqEndDate
  10224. );
  10225. this.updateRiskDates(
  10226. "0510",
  10227. res.data.syStartDate,
  10228. res.data.syEndDate
  10229. );
  10230. let param = {
  10231. userId: this.userId,
  10232. quoteno: this.quoteno,
  10233. orderNo: this.orderno,
  10234. carInfo: this.carInfo,
  10235. insuredPersonInfo: this.insuredPersonInfo,
  10236. ownerInfo: this.ownerInfo,
  10237. policyHolderInfo: this.policyHolderInfo,
  10238. kindList: this.kindList,
  10239. riskList: this.riskList,
  10240. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  10241. };
  10242. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  10243. this.yongan(num, id);
  10244. });
  10245. } else {
  10246. this.totalCompanyList[num].quoteCode = "3";
  10247. this.totalCompanyList[num].msg = "重复投保";
  10248. }
  10249. } else if (
  10250. res.code == "500" ||
  10251. res.code == "502" ||
  10252. res.code == "-9999"
  10253. ) {
  10254. this.totalCompanyList[num].quoteCode = "-9999";
  10255. this.totalCompanyList[num].msg = res.msg;
  10256. } else {
  10257. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  10258. this.totalCompanyList[num].lastYearMsg = "";
  10259. let dat = res.data.warnMessageList;
  10260. dat.map(ele => {
  10261. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  10262. });
  10263. }
  10264. this.totalCompanyList[num].quoteCode = 200;
  10265. this.totalCompanyList[num].result = res.data;
  10266. this.totalCompanyList[num].result.carChecker = 3
  10267. this.jqstartDate = res.data.startDateJq;
  10268. this.jqendDate = res.data.endDateJq;
  10269. this.systartDate = res.data.startDateSy;
  10270. this.syendDate = res.data.endDateSy;
  10271. this.QuotationHistory();
  10272. }
  10273. });
  10274. },
  10275. updateRiskDates(riskCode, startDate, endDate) {
  10276. for (let i = 0; i < this.riskList.length; i++) {
  10277. if (this.riskList[i].riskCode == riskCode) {
  10278. this.riskList[i].startDate = startDate;
  10279. this.riskList[i].endDate = endDate;
  10280. }
  10281. }
  10282. },
  10283. //中煤报价
  10284. zhongmei(num, id) {
  10285. let accidentalDrivingVo = {};
  10286. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  10287. let type = this.totalCompanyList[num].apiType;
  10288. let api = type == 2 ? "pythonquote" : "zhongmeiquote";
  10289. // if (this.accidentFormZM.projectCode) {
  10290. // accidentalDrivingVo = {
  10291. // projectCode: this.accidentFormZM.projectCode,
  10292. // projectName: this.accidentFormZM.projectName,
  10293. // quantity: this.accidentFormZM.quantity
  10294. // ? this.accidentFormZM.quantity
  10295. // : "1"
  10296. // };
  10297. // }
  10298. if (this.accidentFormZM.projectCode) {
  10299. accidentalDrivingVo = {
  10300. ...this.zhongmeiInsuranceData.find(
  10301. e => e.projectCode == this.accidentFormZM.projectCode
  10302. ),
  10303. quantity: this.accidentFormZM.quantity
  10304. ? this.accidentFormZM.quantity
  10305. : "1"
  10306. };
  10307. }
  10308. accidentalDrivingVo =
  10309. this.totalCompanyList[num].programme.drivingList[0] || {};
  10310. let params = {
  10311. accidentalDrivingVo,
  10312. orderNo: this.orderno,
  10313. companyId: id,
  10314. agreementId: this.totalCompanyList[num].agreementId,
  10315. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  10316. kinds: this.totalCompanyList[num].kindList,
  10317. risks: this.riskList,
  10318. productId: this.productId
  10319. };
  10320. this.$api.letter.zhongmeiquote(params).then(res => {
  10321. // this.$api.letter[api](params).then((res) => {
  10322. this.totalCompanyList[num].msg = res.msg;
  10323. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  10324. this.totalCompanyList[num].quoteCode = "4";
  10325. this.totalCompanyList[num].msg = res.msg;
  10326. return;
  10327. } else if (
  10328. res.data == null &&
  10329. res.msg.indexOf("交强险平台返回") > -1 &&
  10330. res.msg.indexOf(";终保日期") > -1
  10331. ) {
  10332. this.totalCompanyList[num].lastYearMsg =
  10333. "<b>交强险</b><br>" +
  10334. res.msg.slice(
  10335. res.msg.indexOf("起保日期 "),
  10336. res.msg.indexOf("地区 山西。") + 6
  10337. );
  10338. let time =
  10339. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  10340. this.jqstartDate = time;
  10341. this.jqendDate = this.oneYearPast1(time);
  10342. if (this.riskList.length > 0) {
  10343. for (let i = 0; i < this.riskList.length; i++) {
  10344. if (this.riskList[i].riskCode == "0507") {
  10345. this.riskList[i].startDate = time;
  10346. this.riskList[i].endDate = this.oneYearPast1(time);
  10347. }
  10348. }
  10349. }
  10350. let param = {
  10351. userId: this.userId,
  10352. quoteno: this.quoteno,
  10353. orderNo: this.orderno,
  10354. carInfo: this.carInfo,
  10355. insuredPersonInfo: this.insuredPersonInfo,
  10356. ownerInfo: this.ownerInfo,
  10357. policyHolderInfo: this.policyHolderInfo,
  10358. kindList: this.kindList,
  10359. riskList: this.riskList,
  10360. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  10361. };
  10362. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  10363. this.zhongmei(num, id);
  10364. });
  10365. } else if (!!res.data) {
  10366. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  10367. this.totalCompanyList[num].lastYearMsg = "";
  10368. let dat = res.data.warnMessageList;
  10369. dat.map(ele => {
  10370. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  10371. });
  10372. }
  10373. this.totalCompanyList[num].quoteCode = 200;
  10374. this.totalCompanyList[num].result = res.data;
  10375. this.jqstartDate = res.data.startDateJq;
  10376. this.jqendDate = res.data.endDateJq;
  10377. this.systartDate = res.data.startDateSy;
  10378. this.syendDate = res.data.endDateSy;
  10379. this.QuotationHistory();
  10380. } else {
  10381. this.totalCompanyList[num].quoteCode = "3";
  10382. this.totalCompanyList[num].msg = res.msg;
  10383. return;
  10384. }
  10385. });
  10386. },
  10387. // 大家报价
  10388. dajia(num, id) {
  10389. // let accidentalDrivingVo=[]
  10390. // if(this.dajiaaccidentalDrivingVo){
  10391. // accidentalDrivingVo.rideRiskCode=this.dajiaaccidentalDrivingVo.schemeNo;
  10392. // accidentalDrivingVo.rideRiskName=this.dajiaaccidentalDrivingVo.cvrgName;
  10393. // accidentalDrivingVo.quantity=this.dajiaaccidentalDrivingVo.quantity;
  10394. // }
  10395. let type = this.totalCompanyList[num].apiType;
  10396. let api = type == 2 ? "pythonquote" : "dajiaquote";
  10397. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  10398. let accidentalDrivingVo =
  10399. this.totalCompanyList[num].programme.drivingList[0] || {};
  10400. let params = {
  10401. accidentalDrivingVo: accidentalDrivingVo,
  10402. orderNo: this.orderno,
  10403. companyId: id,
  10404. agreementId: this.totalCompanyList[num].agreementId,
  10405. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  10406. kinds: this.totalCompanyList[num].kindList || [],
  10407. risks: this.riskList || []
  10408. };
  10409. this.$api.letter[api](params).then(res => {
  10410. this.totalCompanyList[num].msg = res.msg;
  10411. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  10412. this.totalCompanyList[num].quoteCode = "4";
  10413. this.totalCompanyList[num].msg = res.msg;
  10414. return;
  10415. } else if (
  10416. res.data == null &&
  10417. res.msg.indexOf("交强险平台返回") > -1 &&
  10418. res.msg.indexOf(";终保日期") > -1
  10419. ) {
  10420. this.totalCompanyList[num].lastYearMsg =
  10421. "<b>交强险</b><br>" +
  10422. res.msg.slice(
  10423. res.msg.indexOf("起保日期 "),
  10424. res.msg.indexOf("地区 山西。") + 6
  10425. );
  10426. let time =
  10427. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  10428. this.jqstartDate = time;
  10429. this.jqendDate = this.oneYearPast1(time);
  10430. if (this.riskList.length > 0) {
  10431. for (let i = 0; i < this.riskList.length; i++) {
  10432. if (this.riskList[i].riskCode == "0507") {
  10433. this.riskList[i].startDate = time;
  10434. this.riskList[i].endDate = this.oneYearPast1(time);
  10435. }
  10436. }
  10437. }
  10438. let param = {
  10439. userId: this.userId,
  10440. quoteno: this.quoteno,
  10441. orderNo: this.orderno,
  10442. carInfo: this.carInfo,
  10443. insuredPersonInfo: this.insuredPersonInfo,
  10444. ownerInfo: this.ownerInfo,
  10445. policyHolderInfo: this.policyHolderInfo,
  10446. kindList: this.kindList,
  10447. riskList: this.riskList,
  10448. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  10449. kinds: this.totalCompanyList[num].kindList,
  10450. risks: this.riskList
  10451. };
  10452. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  10453. this.dajia(num, id);
  10454. });
  10455. } else if (!!res.data) {
  10456. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  10457. this.totalCompanyList[num].lastYearMsg = "";
  10458. let dat = res.data.warnMessageList;
  10459. dat.map(ele => {
  10460. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  10461. });
  10462. }
  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. huatai(num, id) {
  10479. let type = this.totalCompanyList[num].apiType;
  10480. let api = type == 2 ? "pythonquote" : "huataiquote";
  10481. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  10482. let params = {
  10483. accidentalDrivingVo: this.totalCompanyList[num].programme.drivingList[0] || {},
  10484. orderNo: this.orderno,
  10485. companyId: id,
  10486. agreementId: this.totalCompanyList[num].agreementId,
  10487. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  10488. kinds: this.totalCompanyList[num].kindList || [],
  10489. risks: this.riskList || []
  10490. };
  10491. this.$api.letter[api](params).then(res => {
  10492. this.totalCompanyList[num].msg = res.msg;
  10493. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  10494. this.totalCompanyList[num].quoteCode = "4";
  10495. this.totalCompanyList[num].msg = res.msg;
  10496. return;
  10497. } else if (
  10498. res.data == null &&
  10499. res.msg.indexOf("交强险平台返回") > -1 &&
  10500. res.msg.indexOf(";终保日期") > -1
  10501. ) {
  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. kinds: this.totalCompanyList[num].kindList || [],
  10532. risks: this.riskList || []
  10533. };
  10534. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  10535. this.huatai(num, id);
  10536. });
  10537. } else if (!!res.data) {
  10538. this.totalCompanyList[num].quoteCode = 200;
  10539. this.totalCompanyList[num].result = res.data;
  10540. this.jqstartDate = res.data.startDateJq;
  10541. this.jqendDate = res.data.endDateJq;
  10542. this.systartDate = res.data.startDateSy;
  10543. this.syendDate = res.data.endDateSy;
  10544. this.QuotationHistory();
  10545. } else {
  10546. this.totalCompanyList[num].quoteCode = "3";
  10547. this.totalCompanyList[num].msg = res.msg;
  10548. return;
  10549. }
  10550. });
  10551. },
  10552. //紫金报价
  10553. zijin(num, id) {
  10554. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  10555. let params = {
  10556. accidentalDrivingVo:
  10557. this.totalCompanyList[num].programme.drivingList || [],
  10558. orderNo: this.orderno,
  10559. companyId: id,
  10560. agreementId: this.totalCompanyList[num].agreementId,
  10561. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  10562. coefficient: this.totalCompanyList[num].coefficient,
  10563. kinds: this.totalCompanyList[num].kindList,
  10564. risks: this.riskList,
  10565. productId: this.productId
  10566. };
  10567. this.$api.letter.zijinquote(params).then(res => {
  10568. this.totalCompanyList[num].msg = res.msg;
  10569. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  10570. this.totalCompanyList[num].quoteCode = "4";
  10571. this.totalCompanyList[num].msg = res.msg;
  10572. return;
  10573. } else if (
  10574. res.data == null &&
  10575. res.msg.indexOf("交强险平台返回") > -1 &&
  10576. res.msg.indexOf(";终保日期") > -1
  10577. ) {
  10578. let time =
  10579. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  10580. this.jqstartDate = time;
  10581. this.jqendDate = this.oneYearPast1(time);
  10582. this.systartDate = time;
  10583. this.syendDate = this.oneYearPast1(time);
  10584. if (this.riskList.length > 0) {
  10585. for (let i = 0; i < this.riskList.length; i++) {
  10586. if (this.riskList[i].riskCode == "0507") {
  10587. this.riskList[i].startDate = time;
  10588. this.riskList[i].endDate = this.oneYearPast1(time);
  10589. } else if (this.riskList[i].riskCode == "0510") {
  10590. this.riskList[i].startDate = time;
  10591. this.riskList[i].endDate = this.oneYearPast1(time);
  10592. }
  10593. }
  10594. }
  10595. let param = {
  10596. userId: this.userId,
  10597. quoteno: this.quoteno,
  10598. orderNo: this.orderno,
  10599. carInfo: this.carInfo,
  10600. insuredPersonInfo: this.insuredPersonInfo,
  10601. ownerInfo: this.ownerInfo,
  10602. policyHolderInfo: this.policyHolderInfo,
  10603. kindList: this.kindList,
  10604. riskList: this.riskList,
  10605. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  10606. };
  10607. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  10608. this.zijin(num, id);
  10609. });
  10610. } else if (!!res.data) {
  10611. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  10612. this.totalCompanyList[num].lastYearMsg = "";
  10613. let dat = res.data.warnMessageList;
  10614. dat.map(ele => {
  10615. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  10616. });
  10617. }
  10618. this.totalCompanyList[num].quoteCode = 200;
  10619. this.totalCompanyList[num].result = res.data;
  10620. this.jqstartDate = res.data.startDateJq;
  10621. this.jqendDate = res.data.endDateJq;
  10622. this.systartDate = res.data.startDateSy;
  10623. this.syendDate = res.data.endDateSy;
  10624. this.QuotationHistory();
  10625. } else {
  10626. this.totalCompanyList[num].quoteCode = "3";
  10627. this.totalCompanyList[num].msg = res.msg;
  10628. return;
  10629. }
  10630. });
  10631. },
  10632. yangguang(num, id) {
  10633. let accidentalDrivingVo = {};
  10634. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  10635. accidentalDrivingVo =
  10636. this.totalCompanyList[num].programme.drivingList[0] || {};
  10637. let params = {
  10638. accidentalDrivingVo,
  10639. orderNo: this.orderno,
  10640. companyId: id,
  10641. cqryCdeJq: this.cqryCdeJq,
  10642. cqryCdeSy: this.cqryCdeSy,
  10643. renewalCodeJq: this.renewalCodeJq,
  10644. renewalCodeSy: this.renewalCodeSy,
  10645. pricingCoefficient: this.totalCompanyList[num].result.pricingCoefficient,
  10646. pricingCoefficientUpper: this.totalCompanyList[num].result.pricingCoefficientUpper,
  10647. pricingCoefficientLower: this.totalCompanyList[num].result.pricingCoefficientLower,
  10648. agreementId: this.totalCompanyList[num].agreementId,
  10649. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  10650. kinds: this.totalCompanyList[num].kindList,
  10651. risks: this.riskList
  10652. };
  10653. this.$api.letter.yangGuangquote(params).then(res => {
  10654. this.totalCompanyList[num].msg = res.msg;
  10655. if (
  10656. res.data == null &&
  10657. res.msg.indexOf("车险平台返回") > -1 &&
  10658. res.msg.indexOf(";终保日期") > -1
  10659. ) {
  10660. let time =
  10661. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  10662. this.jqstartDate = time;
  10663. this.jqendDate = this.oneYearPast1(time);
  10664. if (this.riskList.length > 0) {
  10665. for (let i = 0; i < this.riskList.length; i++) {
  10666. if (this.riskList[i].riskCode == "0507") {
  10667. this.riskList[i].startDate = time;
  10668. this.riskList[i].endDate = this.oneYearPast1(time);
  10669. }
  10670. }
  10671. }
  10672. let param = {
  10673. userId: this.userId,
  10674. quoteno: this.quoteno,
  10675. orderNo: this.orderno,
  10676. carInfo: this.carInfo,
  10677. insuredPersonInfo: this.insuredPersonInfo,
  10678. ownerInfo: this.ownerInfo,
  10679. policyHolderInfo: this.policyHolderInfo,
  10680. kindList: this.totalCompanyList[num].kindList,
  10681. riskList: this.riskList,
  10682. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  10683. };
  10684. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  10685. this.yangguang(num, id);
  10686. });
  10687. } else if (res.code == "200") {
  10688. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  10689. this.totalCompanyList[num].lastYearMsg = "";
  10690. let dat = res.data.warnMessageList;
  10691. dat.map(ele => {
  10692. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  10693. });
  10694. }
  10695. this.totalCompanyList[num].quoteCode = 200;
  10696. this.totalCompanyList[num].result = res.data;
  10697. this.totalCompanyList[num].pricingCoefficient = res.data.pricingCoefficient
  10698. this.totalCompanyList[num].pricingCoefficientUpper = res.data.pricingCoefficientUpper
  10699. this.totalCompanyList[num].pricingCoefficientLower = res.data.pricingCoefficientLower
  10700. this.jqstartDate = res.data.startDateJq;
  10701. this.jqendDate = res.data.endDateJq;
  10702. this.systartDate = res.data.startDateSy;
  10703. this.syendDate = res.data.endDateSy;
  10704. this.QuotationHistory();
  10705. } else if (res.code == "101") {
  10706. this.totalCompanyList[num].quoteCode = "101";
  10707. this.totalCompanyList[num].msg = res.msg;
  10708. this.cqryCdeJq = res.data.cqryCdeJq;
  10709. this.cqryCdeSy = res.data.cqryCdeSy;
  10710. let jq = res.data.renewalCodeJq.replace(/[\r\n]/g, "");
  10711. let jqBase64 = `data:image/png;base64,${jq}`;
  10712. this.renewalCodeJqImg = jqBase64;
  10713. if (res.data.renewalCodeSy) {
  10714. let sy = res.data.renewalCodeSy.replace(/[\r\n]/g, "");
  10715. let syBase64 = `data:image/png;base64,${sy}`;
  10716. this.renewalCodeSyImg = syBase64;
  10717. }
  10718. this.renewalCodedialogVisible = true;
  10719. } else if (res.code == "500") {
  10720. // this.iscCrownerShow=res.msg.indexOf("车主地区自动解析失败")!=-1?true:false
  10721. // this.isInsuredShow=res.msg.indexOf("被保人地区自动解析失败")!=-1?true:false
  10722. // this.isApplicantShow=res.msg.indexOf("投保人地区自动解析失败")!=-1?true:false
  10723. // this.ownerInfo.provinceData= this.iscCrownerShow?[]: this.ownerInfo.provinceData
  10724. // this.insuredPersonInfo.provinceData= this.isInsuredShow?[]: this.insuredPersonInfo.provinceData
  10725. // this.policyHolderInfo.provinceData= this.isApplicantShow?[]: this.policyHolderInfo.provinceData
  10726. this.totalCompanyList[num].quoteCode = "3";
  10727. this.totalCompanyList[num].msg = res.msg;
  10728. } else {
  10729. this.totalCompanyList[num].quoteCode = "3";
  10730. this.totalCompanyList[num].msg = res.msg;
  10731. return;
  10732. }
  10733. });
  10734. },
  10735. //永诚报价
  10736. yongcheng(num, id) {
  10737. this.iscCrownerShow = false;
  10738. this.isInsuredShow = false;
  10739. this.isApplicantShow = false;
  10740. let accidentalDrivingVo = {};
  10741. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  10742. if (this.accidentForm.projectCode) {
  10743. let data = this.yongchengaccidentDataList.find(
  10744. val => val.projectCode == this.yongchengtemplateSelection
  10745. );
  10746. accidentalDrivingVo = {
  10747. ...data,
  10748. quantity: this.accidentForm.quantity ? this.accidentForm.quantity : ""
  10749. };
  10750. }
  10751. accidentalDrivingVo =
  10752. this.totalCompanyList[num].programme.drivingList[0] || {};
  10753. let params = {
  10754. accidentalDrivingVo,
  10755. orderNo: this.orderno,
  10756. companyId: id,
  10757. cqryCdeJq: this.cqryCdeJq,
  10758. cqryCdeSy: this.cqryCdeSy,
  10759. renewalCodeJq: this.renewalCodeJq,
  10760. renewalCodeSy: this.renewalCodeSy,
  10761. agreementId: this.totalCompanyList[num].agreementId,
  10762. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  10763. kinds: this.totalCompanyList[num].kindList,
  10764. risks: this.riskList
  10765. };
  10766. this.$api.letter.yongchengquote(params).then(res => {
  10767. this.totalCompanyList[num].msg = res.msg;
  10768. if (
  10769. res.data == null &&
  10770. res.msg.indexOf("车险平台返回") > -1 &&
  10771. res.msg.indexOf(";终保日期") > -1
  10772. ) {
  10773. let time =
  10774. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  10775. this.jqstartDate = time;
  10776. this.jqendDate = this.oneYearPast1(time);
  10777. if (this.riskList.length > 0) {
  10778. for (let i = 0; i < this.riskList.length; i++) {
  10779. if (this.riskList[i].riskCode == "0507") {
  10780. this.riskList[i].startDate = time;
  10781. this.riskList[i].endDate = this.oneYearPast1(time);
  10782. }
  10783. }
  10784. }
  10785. let param = {
  10786. userId: this.userId,
  10787. quoteno: this.quoteno,
  10788. orderNo: this.orderno,
  10789. carInfo: this.carInfo,
  10790. insuredPersonInfo: this.insuredPersonInfo,
  10791. ownerInfo: this.ownerInfo,
  10792. policyHolderInfo: this.policyHolderInfo,
  10793. kindList: this.totalCompanyList[num].kindList,
  10794. riskList: this.riskList,
  10795. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  10796. };
  10797. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  10798. this.yongcheng(num, id);
  10799. });
  10800. } else if (res.code == "200") {
  10801. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  10802. this.totalCompanyList[num].lastYearMsg = "";
  10803. let dat = res.data.warnMessageList;
  10804. dat.map(ele => {
  10805. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  10806. });
  10807. }
  10808. this.totalCompanyList[num].quoteCode = 200;
  10809. this.totalCompanyList[num].result = res.data;
  10810. this.jqstartDate = res.data.startDateJq;
  10811. this.jqendDate = res.data.endDateJq;
  10812. this.systartDate = res.data.startDateSy;
  10813. this.syendDate = res.data.endDateSy;
  10814. this.QuotationHistory();
  10815. } else if (res.code == "101") {
  10816. this.totalCompanyList[num].quoteCode = "101";
  10817. this.totalCompanyList[num].msg = res.msg;
  10818. this.cqryCdeJq = res.data.cqryCdeJq;
  10819. this.cqryCdeSy = res.data.cqryCdeSy;
  10820. let jq = res.data.renewalCodeJq.replace(/[\r\n]/g, "");
  10821. let jqBase64 = `data:image/png;base64,${jq}`;
  10822. this.renewalCodeJqImg = jqBase64;
  10823. if (res.data.renewalCodeSy) {
  10824. let sy = res.data.renewalCodeSy.replace(/[\r\n]/g, "");
  10825. let syBase64 = `data:image/png;base64,${sy}`;
  10826. this.renewalCodeSyImg = syBase64;
  10827. }
  10828. this.renewalCodedialogVisible = true;
  10829. } else if (res.code == "500") {
  10830. // this.iscCrownerShow=res.msg.indexOf("车主地区自动解析失败")!=-1?true:false
  10831. // this.isInsuredShow=res.msg.indexOf("被保人地区自动解析失败")!=-1?true:false
  10832. // this.isApplicantShow=res.msg.indexOf("投保人地区自动解析失败")!=-1?true:false
  10833. // this.ownerInfo.provinceData= this.iscCrownerShow?[]: this.ownerInfo.provinceData
  10834. // this.insuredPersonInfo.provinceData= this.isInsuredShow?[]: this.insuredPersonInfo.provinceData
  10835. // this.policyHolderInfo.provinceData= this.isApplicantShow?[]: this.policyHolderInfo.provinceData
  10836. this.totalCompanyList[num].quoteCode = "3";
  10837. this.totalCompanyList[num].msg = res.msg;
  10838. } else {
  10839. this.totalCompanyList[num].quoteCode = "3";
  10840. this.totalCompanyList[num].msg = res.msg;
  10841. return;
  10842. }
  10843. });
  10844. },
  10845. //国任报价
  10846. guoRen(num, id) {
  10847. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  10848. let guoRenSpecialAgreementVo = [];
  10849. this.zijinengageList.forEach(val => {
  10850. guoRenSpecialAgreementVo.push({
  10851. clauses: val.clauseName,
  10852. clausesContext: val.clauses,
  10853. clauseCode: val.clauseCode,
  10854. riskCode: val.riskCode,
  10855. riskName: val.riskName
  10856. });
  10857. });
  10858. let accidentalDrivingVo = {};
  10859. if (this.guoRenaccidentForm.goodsCode) {
  10860. accidentalDrivingVo = this.guoRenaccidentalDrivingVo;
  10861. }
  10862. accidentalDrivingVo =
  10863. this.totalCompanyList[num].programme.drivingList[0] || {};
  10864. let params = {
  10865. accidentalDrivingVo,
  10866. orderNo: this.orderno,
  10867. companyId: id,
  10868. cqryCdeJq: this.cqryCdeJq,
  10869. cqryCdeSy: this.cqryCdeSy,
  10870. renewalCodeJq: this.renewalCodeJq,
  10871. renewalCodeSy: this.renewalCodeSy,
  10872. agreementId: this.totalCompanyList[num].agreementId,
  10873. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  10874. guoRenSpecialAgreementVo,
  10875. kinds: this.totalCompanyList[num].kindList,
  10876. risks: this.riskList,
  10877. productId: this.productId
  10878. };
  10879. this.$api.letter.pythonquote(params).then(res => {
  10880. this.totalCompanyList[num].msg = res.msg;
  10881. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  10882. this.totalCompanyList[num].quoteCode = "4";
  10883. this.totalCompanyList[num].msg = res.msg;
  10884. return;
  10885. } else if (
  10886. res.data == null &&
  10887. res.msg.indexOf("车险平台返回") > -1 &&
  10888. res.msg.indexOf(";终保日期") > -1
  10889. ) {
  10890. let time =
  10891. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  10892. this.jqstartDate = time;
  10893. this.jqendDate = this.oneYearPast1(time);
  10894. this.systartDate = time;
  10895. this.syendDate = this.oneYearPast1(time);
  10896. if (this.riskList.length > 0) {
  10897. for (let i = 0; i < this.riskList.length; i++) {
  10898. if (this.riskList[i].riskCode == "0507") {
  10899. this.riskList[i].startDate = time;
  10900. this.riskList[i].endDate = this.oneYearPast1(time);
  10901. } else if (this.riskList[i].riskCode == "0510") {
  10902. this.riskList[i].startDate = time;
  10903. this.riskList[i].endDate = this.oneYearPast1(time);
  10904. }
  10905. }
  10906. }
  10907. let param = {
  10908. userId: this.userId,
  10909. quoteno: this.quoteno,
  10910. orderNo: this.orderno,
  10911. carInfo: this.carInfo,
  10912. insuredPersonInfo: this.insuredPersonInfo,
  10913. ownerInfo: this.ownerInfo,
  10914. policyHolderInfo: this.policyHolderInfo,
  10915. kindList: this.totalCompanyList[num].kindList,
  10916. riskList: this.riskList,
  10917. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  10918. };
  10919. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  10920. this.guoRen(num, id);
  10921. });
  10922. } else if (res.code == "200") {
  10923. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  10924. this.totalCompanyList[num].lastYearMsg = "";
  10925. let dat = res.data.warnMessageList;
  10926. dat.map(ele => {
  10927. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  10928. });
  10929. }
  10930. this.totalCompanyList[num].quoteCode = 200;
  10931. this.totalCompanyList[num].result = res.data;
  10932. this.jqstartDate = res.data.startDateJq;
  10933. this.jqendDate = res.data.endDateJq;
  10934. this.systartDate = res.data.startDateSy;
  10935. this.syendDate = res.data.endDateSy;
  10936. this.QuotationHistory();
  10937. } else if (res.code == "101") {
  10938. this.totalCompanyList[num].quoteCode = "101";
  10939. this.totalCompanyList[num].msg = res.msg;
  10940. this.cqryCdeJq = res.data.cqryCdeJq;
  10941. this.cqryCdeSy = res.data.cqryCdeSy;
  10942. let jq = res.data.renewalCodeJq.replace(/[\r\n]/g, "");
  10943. let jqBase64 = `data:image/png;base64,${jq}`;
  10944. this.renewalCodeJqImg = jqBase64;
  10945. if (res.data.renewalCodeSy) {
  10946. let sy = res.data.renewalCodeSy.replace(/[\r\n]/g, "");
  10947. let syBase64 = `data:image/png;base64,${sy}`;
  10948. this.renewalCodeSyImg = syBase64;
  10949. }
  10950. this.renewalCodedialogVisible = true;
  10951. } else {
  10952. this.totalCompanyList[num].quoteCode = "3";
  10953. this.totalCompanyList[num].msg = res.msg;
  10954. return;
  10955. }
  10956. });
  10957. },
  10958. //渤海报价
  10959. bohai(num, id) {
  10960. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  10961. let accidentalDrivingVo = {};
  10962. if (this.boHaiaccidentForm.projectCode) {
  10963. accidentalDrivingVo = {
  10964. // packageCode: this.boHaiaccidentForm.packageCode,
  10965. // productCode: this.boHaiaccidentDataList.find(
  10966. // (e) => e.packageCode == this.boHaiaccidentForm.packageCode
  10967. // ).productCode,
  10968. // copies: this.boHaiaccidentForm.copies,
  10969. ...this.boHaiaccidentDataList.find(
  10970. e => e.projectCode == this.boHaiaccidentForm.projectCode
  10971. ),
  10972. quantity: this.boHaiaccidentForm.copies
  10973. ? this.boHaiaccidentForm.copies
  10974. : "1"
  10975. };
  10976. }
  10977. accidentalDrivingVo =
  10978. this.totalCompanyList[num].programme.drivingList[0] || {};
  10979. let params = {
  10980. accidentalDrivingVo,
  10981. orderNo: this.orderno,
  10982. companyId: id,
  10983. cqryCdeJq: this.cqryCdeJq,
  10984. cqryCdeSy: this.cqryCdeSy,
  10985. renewalCodeJq: this.renewalCodeJq,
  10986. renewalCodeSy: this.renewalCodeSy,
  10987. agreementId: this.totalCompanyList[num].agreementId,
  10988. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  10989. kinds: this.totalCompanyList[num].kindList,
  10990. risks: this.riskList,
  10991. userId: this.userId
  10992. };
  10993. this.$api.letter.bohaiquote(params).then(res => {
  10994. this.totalCompanyList[num].msg = res.msg;
  10995. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  10996. this.totalCompanyList[num].quoteCode = "4";
  10997. this.totalCompanyList[num].msg = res.msg;
  10998. return;
  10999. } else if (
  11000. res.data == null &&
  11001. res.msg.indexOf("车险平台返回") > -1 &&
  11002. res.msg.indexOf(";终保日期") > -1
  11003. ) {
  11004. let time =
  11005. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  11006. this.jqstartDate = time;
  11007. this.jqendDate = this.oneYearPast1(time);
  11008. this.systartDate = time;
  11009. this.syendDate = this.oneYearPast1(time);
  11010. if (this.riskList.length > 0) {
  11011. for (let i = 0; i < this.riskList.length; i++) {
  11012. if (this.riskList[i].riskCode == "0507") {
  11013. this.riskList[i].startDate = time;
  11014. this.riskList[i].endDate = this.oneYearPast1(time);
  11015. } else if (this.riskList[i].riskCode == "0510") {
  11016. this.riskList[i].startDate = time;
  11017. this.riskList[i].endDate = this.oneYearPast1(time);
  11018. }
  11019. }
  11020. }
  11021. let param = {
  11022. userId: this.userId,
  11023. quoteno: this.quoteno,
  11024. orderNo: this.orderno,
  11025. carInfo: this.carInfo,
  11026. insuredPersonInfo: this.insuredPersonInfo,
  11027. ownerInfo: this.ownerInfo,
  11028. policyHolderInfo: this.policyHolderInfo,
  11029. kindList: this.kindList,
  11030. riskList: this.riskList,
  11031. vehicleAndVesselTax: this.vehicleAndVesselTaxForm
  11032. };
  11033. return this.$api.letter[this.apiInterfaceName](param).then(res => {
  11034. this.bohai(num, id);
  11035. });
  11036. } else if (res.code == "200") {
  11037. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  11038. this.totalCompanyList[num].lastYearMsg = "";
  11039. let dat = res.data.warnMessageList;
  11040. dat.map(ele => {
  11041. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  11042. });
  11043. }
  11044. this.totalCompanyList[num].quoteCode = 200;
  11045. this.totalCompanyList[num].result = res.data;
  11046. this.jqstartDate = res.data.startDateJq;
  11047. this.jqendDate = res.data.endDateJq;
  11048. this.systartDate = res.data.startDateSy;
  11049. this.syendDate = res.data.endDateSy;
  11050. this.QuotationHistory();
  11051. } else if (res.code == "101") {
  11052. this.totalCompanyList[num].quoteCode = "101";
  11053. this.totalCompanyList[num].msg = res.msg;
  11054. this.cqryCdeJq = res.data.cqryCdeJq;
  11055. this.cqryCdeSy = res.data.cqryCdeSy;
  11056. let jq = res.data.renewalCodeJq.replace(/[\r\n]/g, "");
  11057. let jqBase64 = `data:image/png;base64,${jq}`;
  11058. this.renewalCodeJqImg = jqBase64;
  11059. if (res.data.renewalCodeSy) {
  11060. let sy = res.data.renewalCodeSy.replace(/[\r\n]/g, "");
  11061. let syBase64 = `data:image/png;base64,${sy}`;
  11062. this.renewalCodeSyImg = syBase64;
  11063. }
  11064. this.renewalCodedialogVisible = true;
  11065. } else {
  11066. this.totalCompanyList[num].quoteCode = "3";
  11067. this.totalCompanyList[num].msg = res.msg;
  11068. return;
  11069. }
  11070. });
  11071. },
  11072. // 爬虫对接
  11073. quoteInsurance(num, id, namesimple, apiType) {
  11074. let api = apiType == 2 ? "pythonquote" : "";
  11075. if (namesimple == "诚泰财险" || namesimple == "恒邦财险") {
  11076. api = "pythonquote";
  11077. }
  11078. let ccidenttype = this.totalCompanyList[num].cnName;
  11079. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  11080. // accidentalDrivingVo = this.totalCompanyList[num].programme.drivingList[0] || {}
  11081. let params = {
  11082. // accidentalDrivingVo: this[ccidenttype + "accidentalDrivingVo"],
  11083. accidentalDrivingVo:
  11084. this.totalCompanyList[num].programme.drivingList[0] || {},
  11085. orderNo: this.orderno,
  11086. companyId: id,
  11087. userId: this.userId,
  11088. agreementId: this.totalCompanyList[num].agreementId,
  11089. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  11090. kinds: this.totalCompanyList[num].kindList || [],
  11091. risks: this.riskList || [],
  11092. productId: this.productId,
  11093. // coefficient:this.totalCompanyList[num].coefficient,
  11094. };
  11095. if(namesimple == "恒邦财险") {
  11096. params.coefficient = this.totalCompanyList[num].coefficient
  11097. }
  11098. if (namesimple == "中国人寿" && this.lastCompanyId) {
  11099. params.discount = this.totalCompanyList[num].discount;
  11100. params.lastCompanyId = this.lastCompanyId;
  11101. }
  11102. if (
  11103. namesimple == "华农财险" &&
  11104. this.huanongaccidentalDrivingVo.quantity
  11105. ) {
  11106. params.accidentalDrivingVo.quantity = this.accidentFormHN.quantity;
  11107. // params.accidentalDrivingVo.allQuantity = this.accidentFormHN.allQuantity;
  11108. }
  11109. if (namesimple == "诚泰财险" && this.totalCompanyList[num].result.initialProposalDiscount) {
  11110. params.discount = this.totalCompanyList[num].result.expectedDiscount;
  11111. params.coefficient = this.totalCompanyList[num].result.pricingCoefficient;
  11112. if (this.lastCompanyId) {
  11113. params.lastCompanyId = this.lastCompanyId
  11114. }
  11115. }
  11116. if (namesimple == '人保财险') {
  11117. params.priceCoefficient = this.totalCompanyList[num].result.priceCoefficient
  11118. params.preDiscount = this.totalCompanyList[num].result.preDiscount
  11119. }
  11120. this.$api.letter[api](params).then(res => {
  11121. this.totalCompanyList[num].msg = res.msg;
  11122. switch (namesimple) {
  11123. case "申能财险":
  11124. case "渤海财险":
  11125. case "大地财险":
  11126. case "安盛天平":
  11127. case "诚泰财险":
  11128. case "泰康财险":
  11129. case "中国人寿":
  11130. case "人保财险":
  11131. case "恒邦财险":
  11132. case "华农财险":
  11133. case "华安财险":
  11134. case "泰山财险":
  11135. case "太平财险":
  11136. case "太平洋财险":
  11137. if (!!res.data) {
  11138. if (
  11139. res.data.warnMessageList &&
  11140. res.data.warnMessageList.length > 0
  11141. ) {
  11142. this.totalCompanyList[num].lastYearMsg = "";
  11143. let dat = res.data.warnMessageList;
  11144. dat.map(ele => {
  11145. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  11146. });
  11147. }
  11148. if (res.data.predictInfo && res.data.predictInfo.length > 0) {
  11149. this.totalCompanyList[num].predictInfo = res.data.predictInfo;
  11150. }
  11151. this.totalCompanyList[num].quoteCode = 200;
  11152. this.totalCompanyList[num].result = res.data;
  11153. this.vehicleInspectionUrl = this.totalCompanyList[
  11154. num
  11155. ].result.vehicleInspectionUrl;
  11156. if (res.data.companyId) {
  11157. this.lastCompanyId = res.data.companyId;
  11158. }
  11159. this.jqstartDate = res.data.startDateJq;
  11160. this.jqendDate = res.data.endDateJq;
  11161. this.systartDate = res.data.startDateSy;
  11162. this.syendDate = res.data.endDateSy;
  11163. this.QuotationHistory();
  11164. } else {
  11165. this.totalCompanyList[num].quoteCode = "3";
  11166. this.totalCompanyList[num].msg = res.msg;
  11167. return;
  11168. }
  11169. break;
  11170. case "众安财险":
  11171. if (!!res.data) {
  11172. if (res.data.tips == "需要验车") {
  11173. this.$notify.error({
  11174. title: "通融单",
  11175. duration: 0,
  11176. dangerouslyUseHTMLString: true,
  11177. message: `<div> ${res.data.warnMessageList
  11178. .map(item => {
  11179. return `<p>${item}</p>`;
  11180. })
  11181. .join("")}
  11182. </div>`
  11183. });
  11184. }
  11185. if (
  11186. res.data.warnMessageList &&
  11187. res.data.warnMessageList.length > 0
  11188. ) {
  11189. this.totalCompanyList[num].lastYearMsg = "";
  11190. let dat = res.data.warnMessageList;
  11191. dat.map(ele => {
  11192. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  11193. });
  11194. }
  11195. this.totalCompanyList[num].quoteCode = 200;
  11196. this.totalCompanyList[num].result = res.data;
  11197. this.jqstartDate = res.data.startDateJq;
  11198. this.jqendDate = res.data.endDateJq;
  11199. this.systartDate = res.data.startDateSy;
  11200. this.syendDate = res.data.endDateSy;
  11201. this.QuotationHistory();
  11202. } else {
  11203. this.totalCompanyList[num].quoteCode = "3";
  11204. this.totalCompanyList[num].msg = res.msg;
  11205. return;
  11206. }
  11207. break;
  11208. default:
  11209. break;
  11210. }
  11211. });
  11212. },
  11213. // 申能财险
  11214. shenneng(num, id, namesimple) {
  11215. this.quoteInsurance(
  11216. num,
  11217. id,
  11218. namesimple,
  11219. this.totalCompanyList[num].apiType
  11220. );
  11221. },
  11222. // 大地财险
  11223. dadi(num, id, namesimple) {
  11224. this.quoteInsurance(
  11225. num,
  11226. id,
  11227. namesimple,
  11228. this.totalCompanyList[num].apiType
  11229. );
  11230. },
  11231. //安盛天平
  11232. ansheng(num, id, namesimple) {
  11233. this.quoteInsurance(
  11234. num,
  11235. id,
  11236. namesimple,
  11237. this.totalCompanyList[num].apiType
  11238. );
  11239. },
  11240. //众安
  11241. zhongan(num, id, namesimple) {
  11242. this.quoteInsurance(
  11243. num,
  11244. id,
  11245. namesimple,
  11246. this.totalCompanyList[num].apiType
  11247. );
  11248. },
  11249. //人寿
  11250. renshou(num, id, namesimple) {
  11251. this.quoteInsurance(
  11252. num,
  11253. id,
  11254. namesimple,
  11255. this.totalCompanyList[num].apiType
  11256. );
  11257. },
  11258. //人保
  11259. renbao(num, id, namesimple) {
  11260. this.quoteInsurance(
  11261. num,
  11262. id,
  11263. namesimple,
  11264. this.totalCompanyList[num].apiType
  11265. );
  11266. },
  11267. //恒邦
  11268. hengbang(num, id, namesimple) {
  11269. this.quoteInsurance(
  11270. num,
  11271. id,
  11272. namesimple,
  11273. this.totalCompanyList[num].apiType
  11274. );
  11275. },
  11276. //太平洋
  11277. taipingyang(num, id, namesimple) {
  11278. this.quoteInsurance(
  11279. num,
  11280. id,
  11281. namesimple,
  11282. this.totalCompanyList[num].apiType
  11283. );
  11284. },
  11285. //诚泰
  11286. chengtai(num, id, namesimple) {
  11287. this.quoteInsurance(
  11288. num,
  11289. id,
  11290. namesimple,
  11291. this.totalCompanyList[num].apiType
  11292. );
  11293. },
  11294. //太平
  11295. taiping(num, id, namesimple) {
  11296. this.quoteInsurance(
  11297. num,
  11298. id,
  11299. namesimple,
  11300. this.totalCompanyList[num].apiType
  11301. );
  11302. },
  11303. //华农
  11304. huanong(num, id, namesimple) {
  11305. this.quoteInsurance(
  11306. num,
  11307. id,
  11308. namesimple,
  11309. this.totalCompanyList[num].apiType
  11310. );
  11311. },
  11312. huaan(num, id, namesimple) {
  11313. this.quoteInsurance(
  11314. num,
  11315. id,
  11316. namesimple,
  11317. this.totalCompanyList[num].apiType
  11318. );
  11319. },
  11320. taishan(num, id, namesimple) {
  11321. this.quoteInsurance(
  11322. num,
  11323. id,
  11324. namesimple,
  11325. this.totalCompanyList[num].apiType
  11326. );
  11327. },
  11328. capTypedictTag(val, option) {
  11329. if (option.find(item => item.dictValue == val)) {
  11330. return option.find(item => item.dictValue == val).dictTag;
  11331. } else {
  11332. return "-";
  11333. }
  11334. },
  11335. // 爬虫对接
  11336. qoutedetail(companyId) {
  11337. let params = {
  11338. companyId: companyId
  11339. };
  11340. this.$api.letter.getByCompanyId(params).then(res => {
  11341. if (res.code == "200") {
  11342. var data = res.data;
  11343. data.kindinfo.map((ele, index) => {
  11344. switch (ele.kindCode) {
  11345. case "A":
  11346. ele.amount = "投保";
  11347. break;
  11348. case "D4":
  11349. case "SY_FJ_YBW2":
  11350. ele.unitAmount = this.toChinesNum(ele.unitAmount);
  11351. break;
  11352. case "MJ1":
  11353. case "MJ2":
  11354. case "MJ3":
  11355. case "MJ4":
  11356. ele.deductibleRate = ele.deductibleRate + "%";
  11357. break;
  11358. default:
  11359. ele.amount = this.toChinesNum(ele.amount);
  11360. }
  11361. return ele;
  11362. });
  11363. if (
  11364. (data.carinfo.carnature && data.carinfo.carnature == "02") ||
  11365. data.carinfo.carnature == "非营业"
  11366. ) {
  11367. data.carinfo.vehicleUse = this.capTypedictTag(
  11368. data.carinfo.vehicleUse,
  11369. this.outOfBusinessVehicleUseoptions
  11370. );
  11371. } else {
  11372. data.carinfo.vehicleUse = this.capTypedictTag(
  11373. data.carinfo.vehicleUse,
  11374. this.businessVehicleUseoptions
  11375. );
  11376. }
  11377. data.carinfo.carnature = this.capTypedictTag(
  11378. data.carinfo.carnature,
  11379. this.natureOfVehicleUseoptions
  11380. );
  11381. data.carinfo.cartype = data.carinfo.cartype
  11382. ? this.capTypedictTag(
  11383. data.carinfo.cartype,
  11384. this.trafficManagementVehicleTypeoptions
  11385. )
  11386. : "";
  11387. data.carinfo.cimodelclass = data.carinfo.cimodelclass
  11388. ? this.capTypedictTag(
  11389. data.carinfo.cimodelclass,
  11390. this.vehicleTypeoptions
  11391. )
  11392. : "";
  11393. data.carinfo.energyType = data.carinfo.energyType
  11394. ? this.capTypedictTag(
  11395. data.carinfo.energyType,
  11396. this.energyTypeoptions
  11397. )
  11398. : "";
  11399. this.queryOrders = data;
  11400. //赋值费用信息
  11401. // this.feeDetailInfo=data.orderFeeResult;
  11402. }
  11403. });
  11404. this.$refs.detailsDialog.setBackupVisible(true);
  11405. },
  11406. imageUpload() {
  11407. this.imageUploaddialogVisible = true;
  11408. // this.$refs.imageDialog.setBackupVisible(true);
  11409. },
  11410. tabLiScroll(id, idx) {
  11411. this.tabLiIndex = idx;
  11412. document.getElementById(id).scrollIntoView({ behavior: "smooth" });
  11413. },
  11414. //影像上传
  11415. drivingupload(file, imageIdList, imgurl, type) {
  11416. let that = this;
  11417. let size = file.size / 1024 / 1024 < 5;
  11418. const isJPG =
  11419. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  11420. if (!size) {
  11421. this.$message.error("上传图片大小不能超过 5MB!");
  11422. this[imgurl] = [];
  11423. return false;
  11424. }
  11425. if (!isJPG) {
  11426. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  11427. this[imgurl] = [];
  11428. return false;
  11429. }
  11430. this[imgurl].push(file);
  11431. var file = file.raw;
  11432. const params = new FormData(); // 声明formData数据类型
  11433. params.append("multipartFile", file);
  11434. params.append("type", "image");
  11435. this.$api.letter.uploadFile(params).then(res => {
  11436. if (res.code == "200") {
  11437. if (this[imageIdList].some(v => v.imageType == type)) {
  11438. this[imageIdList].map(val => {
  11439. if (val.imageType == type) {
  11440. val.imageId = res.data.id;
  11441. }
  11442. });
  11443. } else {
  11444. this[imageIdList].push({
  11445. imageId: res.data.id,
  11446. imageType: type
  11447. });
  11448. }
  11449. }
  11450. });
  11451. },
  11452. imageEcho(quotenos) {
  11453. //影像查询
  11454. this.$api.letter.findByQuoteNo(quotenos).then(res => {
  11455. if (res.code == "200") {
  11456. this.imageList1 = [];
  11457. this.imageList2 = [];
  11458. this.imageList3 = [];
  11459. this.imageList4 = [];
  11460. this.imageList5 = [];
  11461. this.imageList6 = [];
  11462. this.imgList1 = [];
  11463. this.imgList2 = [];
  11464. this.imgList3 = [];
  11465. this.imgList4 = [];
  11466. this.imgList5 = [];
  11467. this.imgList6 = [];
  11468. this.imgList7 = [];
  11469. this.imgList8 = [];
  11470. this.imgList9 = [];
  11471. this.imgList10 = [];
  11472. this.imgList11 = [];
  11473. this.imgList12 = [];
  11474. this.imgList13 = [];
  11475. this.imgList14 = [];
  11476. this.imgList15 = [];
  11477. this.imgList16 = [];
  11478. this.imgList17 = [];
  11479. this.imgList18 = [];
  11480. this.imgList19 = [];
  11481. this.imgList20 = [];
  11482. this.imgList21 = [];
  11483. this.imgList22 = [];
  11484. this.imgList23 = [];
  11485. this.imgList24 = [];
  11486. this.imgList25 = [];
  11487. this.imgList26 = [];
  11488. this.imgList27 = [];
  11489. this.imgList28 = [];
  11490. Object.keys(res.data).forEach(keys => {
  11491. if (res.data[keys].url) {
  11492. res.data[keys].url = process.env.BASE_URL + res.data[keys].url;
  11493. switch (keys) {
  11494. case "C01":
  11495. this.imageList1.push({
  11496. imageId: res.data[keys].imageId,
  11497. imageType: res.data[keys].imageType
  11498. });
  11499. this.imgList1.push(res.data[keys]);
  11500. break;
  11501. case "D01":
  11502. this.imageList1.push({
  11503. imageId: res.data[keys].imageId,
  11504. imageType: res.data[keys].imageType
  11505. });
  11506. this.imgList2.push(res.data[keys]);
  11507. break;
  11508. case "C02":
  11509. this.imageList2.push({
  11510. imageId: res.data[keys].imageId,
  11511. imageType: res.data[keys].imageType
  11512. });
  11513. this.imgList3.push(res.data[keys]);
  11514. break;
  11515. case "D02":
  11516. this.imageList2.push({
  11517. imageId: res.data[keys].imageId,
  11518. imageType: res.data[keys].imageType
  11519. });
  11520. this.imgList4.push(res.data[keys]);
  11521. break;
  11522. case "Y02":
  11523. this.imageList2.push({
  11524. imageId: res.data[keys].imageId,
  11525. imageType: res.data[keys].imageType
  11526. });
  11527. this.imgList26.push(res.data[keys]);
  11528. break;
  11529. case "C03":
  11530. this.imageList3.push({
  11531. imageId: res.data[keys].imageId,
  11532. imageType: res.data[keys].imageType
  11533. });
  11534. this.imgList5.push(res.data[keys]);
  11535. break;
  11536. case "D03":
  11537. this.imageList3.push({
  11538. imageId: res.data[keys].imageId,
  11539. imageType: res.data[keys].imageType
  11540. });
  11541. this.imgList6.push(res.data[keys]);
  11542. break;
  11543. case "Y03":
  11544. this.imageList3.push({
  11545. imageId: res.data[keys].imageId,
  11546. imageType: res.data[keys].imageType
  11547. });
  11548. this.imgList27.push(res.data[keys]);
  11549. break;
  11550. case "C04":
  11551. this.imageList4.push({
  11552. imageId: res.data[keys].imageId,
  11553. imageType: res.data[keys].imageType
  11554. });
  11555. this.imgList7.push(res.data[keys]);
  11556. break;
  11557. case "D04":
  11558. this.imageList4.push({
  11559. imageId: res.data[keys].imageId,
  11560. imageType: res.data[keys].imageType
  11561. });
  11562. this.imgList8.push(res.data[keys]);
  11563. break;
  11564. case "Y04":
  11565. this.imageList4.push({
  11566. imageId: res.data[keys].imageId,
  11567. imageType: res.data[keys].imageType
  11568. });
  11569. this.imgList28.push(res.data[keys]);
  11570. break;
  11571. case "XC00":
  11572. this.imageList5.push({
  11573. imageId: res.data[keys].imageId,
  11574. imageType: res.data[keys].imageType
  11575. });
  11576. this.imgList9.push(res.data[keys]);
  11577. break;
  11578. case "GC00":
  11579. this.imageList5.push({
  11580. imageId: res.data[keys].imageId,
  11581. imageType: res.data[keys].imageType
  11582. });
  11583. this.imgList10.push(res.data[keys]);
  11584. break;
  11585. case "GX00":
  11586. this.imageList5.push({
  11587. imageId: res.data[keys].imageId,
  11588. imageType: res.data[keys].imageType
  11589. });
  11590. this.imgList11.push(res.data[keys]);
  11591. break;
  11592. case "TAR05":
  11593. this.imageList1.push({
  11594. imageId: res.data[keys].imageId,
  11595. imageType: res.data[keys].imageType
  11596. });
  11597. this.imgList12.push(res.data[keys]);
  11598. break;
  11599. case "C0500":
  11600. this.imageList6.push({
  11601. imageId: res.data[keys].imageId,
  11602. imageType: res.data[keys].imageType
  11603. });
  11604. this.imgList13.push(res.data[keys]);
  11605. break;
  11606. case "C0501":
  11607. this.imageList6.push({
  11608. imageId: res.data[keys].imageId,
  11609. imageType: res.data[keys].imageType
  11610. });
  11611. this.imgList14.push(res.data[keys]);
  11612. break;
  11613. case "C0502":
  11614. this.imageList6.push({
  11615. imageId: res.data[keys].imageId,
  11616. imageType: res.data[keys].imageType
  11617. });
  11618. this.imgList15.push(res.data[keys]);
  11619. break;
  11620. case "C0503":
  11621. this.imageList6.push({
  11622. imageId: res.data[keys].imageId,
  11623. imageType: res.data[keys].imageType
  11624. });
  11625. this.imgList16.push(res.data[keys]);
  11626. break;
  11627. case "C0504":
  11628. this.imageList6.push({
  11629. imageId: res.data[keys].imageId,
  11630. imageType: res.data[keys].imageType
  11631. });
  11632. this.imgList17.push(res.data[keys]);
  11633. break;
  11634. case "C0506":
  11635. this.imageList6.push({
  11636. imageId: res.data[keys].imageId,
  11637. imageType: res.data[keys].imageType
  11638. });
  11639. this.imgList18.push(res.data[keys]);
  11640. break;
  11641. case "C0507":
  11642. this.imageList6.push({
  11643. imageId: res.data[keys].imageId,
  11644. imageType: res.data[keys].imageType
  11645. });
  11646. this.imgList19.push(res.data[keys]);
  11647. break;
  11648. case "C0505":
  11649. this.imageList6.push({
  11650. imageId: res.data[keys].imageId,
  11651. imageType: res.data[keys].imageType
  11652. });
  11653. this.imgList20.push(res.data[keys]);
  11654. break;
  11655. case "C0508":
  11656. this.imageList6.push({
  11657. imageId: res.data[keys].imageId,
  11658. imageType: res.data[keys].imageType
  11659. });
  11660. this.imgList21.push(res.data[keys]);
  11661. break;
  11662. case "C0509":
  11663. this.imageList6.push({
  11664. imageId: res.data[keys].imageId,
  11665. imageType: res.data[keys].imageType
  11666. });
  11667. this.imgList22.push(res.data[keys]);
  11668. break;
  11669. case "C0510":
  11670. this.imageList6.push({
  11671. imageId: res.data[keys].imageId,
  11672. imageType: res.data[keys].imageType
  11673. });
  11674. this.imgList23.push(res.data[keys]);
  11675. break;
  11676. case "LAST_INSURANCE_POLICY":
  11677. this.imageList6.push({
  11678. imageId: res.data[keys].imageId,
  11679. imageType: res.data[keys].imageType
  11680. });
  11681. this.imgList24.push(res.data[keys]);
  11682. break;
  11683. case "SQ00":
  11684. this.imageList6.push({
  11685. imageId: res.data[keys].imageId,
  11686. imageType: res.data[keys].imageType
  11687. });
  11688. this.imgList25.push(res.data[keys]);
  11689. break;
  11690. default:
  11691. break;
  11692. }
  11693. }
  11694. });
  11695. } else {
  11696. this.$message({ message: res.msg, type: "info" });
  11697. }
  11698. });
  11699. },
  11700. policyUpload() {
  11701. this.policyNumberForm.jqPolicyList = !this.policyNumberForm.jqPolicyList
  11702. ? []
  11703. : this.policyNumberForm.jqPolicyList;
  11704. this.policyNumberForm.jqSignList = !this.policyNumberForm.jqSignList
  11705. ? []
  11706. : this.policyNumberForm.jqSignList;
  11707. this.policyNumberForm.syPolicyList = !this.policyNumberForm.syPolicyList
  11708. ? []
  11709. : this.policyNumberForm.syPolicyList;
  11710. this.policyNumberForm.noPolicyList = !this.policyNumberForm.noPolicyList
  11711. ? []
  11712. : this.policyNumberForm.noPolicyList;
  11713. this.policyUploaddialogVisible = true;
  11714. },
  11715. cancelorder(item) {
  11716. if (item.inscompany == "紫金财险") {
  11717. this.$api.letter.zijincancelorder({ companyId: item.id }).then(res => {
  11718. if (res.code == 200) {
  11719. this.$message({
  11720. message: res.msg,
  11721. type: "success"
  11722. });
  11723. this.QuotationHistory();
  11724. }
  11725. });
  11726. } else if (item.inscompany == "诚泰财险") {
  11727. this.$api.letter
  11728. .chengtaicancelorder({ companyId: item.id })
  11729. .then(res => {
  11730. if (res.code == 200) {
  11731. this.$message({
  11732. message: res.msg,
  11733. type: "success"
  11734. });
  11735. this.findPage();
  11736. }
  11737. });
  11738. } else if (item.inscompany == "阳光财险") {
  11739. this.$api.letter
  11740. .yangGuangautoWriteOff({ companyId: item.id })
  11741. .then(res => {
  11742. if (res.code == 200) {
  11743. this.$message({
  11744. message: res.msg,
  11745. type: "success"
  11746. });
  11747. this.findPage();
  11748. }
  11749. });
  11750. }
  11751. },
  11752. // 核保成功后请求该接口
  11753. handleCreateEquityOrder(id) {
  11754. this.$api.task.createEquityOrder(id).then(res => {
  11755. if(res.code === 200) {
  11756. } else {
  11757. this.$message({
  11758. message: res.msg,
  11759. type: 'warning'
  11760. })
  11761. }
  11762. })
  11763. },
  11764. hbsubmitdialog(data, index) {
  11765. this.typeDialogIndex = index; // 当前的公司index
  11766. if (this.imageList1.length == 0 && this.imageList2.length == 0) {
  11767. this.$message({ message: "影像不全,先上传影像", type: "error" });
  11768. return;
  11769. }
  11770. this.companyId = data.result.companyId;
  11771. this.apiType = data.result.apiType;
  11772. this.hbsubmitdialogVisible = true;
  11773. this.contributingState = false;
  11774. if (data.namesimple == "紫金财险") {
  11775. // this.getClauseData(this.companyId, index)
  11776. this.$api.letter
  11777. .zijinqueryClauseData({ companyId: this.companyId })
  11778. .then(res => {
  11779. this.zijinengageListData = res.data;
  11780. });
  11781. }
  11782. if (data.namesimple == "华泰财险") {
  11783. this.zijinengageList = [];
  11784. // this.getClauseData(this.companyId, index)
  11785. this.$api.letter
  11786. .huataiqueryClauseData({ companyId: this.companyId })
  11787. .then(res => {
  11788. res.data.forEach(val => {
  11789. val.clauseCode = val.engageCode;
  11790. val.clauseName = val.engageTitle;
  11791. val.clauseContent = val.engageDetail;
  11792. val.clauses = val.engageDetail;
  11793. });
  11794. this.zijinengageListData = res.data;
  11795. this.zijinengageListData.forEach(val => {
  11796. this.$nextTick(() => {
  11797. if (val.optType == "2") {
  11798. this.zijinengageList.push(val);
  11799. this.$refs.expandTablePro.toggleRowSelection(val, true);
  11800. }
  11801. });
  11802. });
  11803. });
  11804. } else {
  11805. this.zijinengageListData = [];
  11806. }
  11807. // switch (data.namesimple) {
  11808. // case "紫金财险":
  11809. // this.$api.letter.zijinqueryClauseData({ companyId: this.companyId }).then(res => {
  11810. // this.zijinengageListData = res.data;
  11811. // });
  11812. // break;
  11813. // default:
  11814. // break;
  11815. // }
  11816. },
  11817. hbsubmit() {
  11818. this.hbsubmitdialogVisible = false;
  11819. this.contributingState = false;
  11820. this.$api.letter
  11821. .getByCompanyId({ companyId: this.companyId })
  11822. .then(async res => {
  11823. if (res.code == 200) {
  11824. var data = res.data;
  11825. this.queryOrders = data;
  11826. const loading = this.$loading({
  11827. lock: true,
  11828. text: "Loading",
  11829. spinner: "el-icon-loading",
  11830. background: "rgba(0, 0, 0, 0.7)"
  11831. });
  11832. switch (this.queryOrders.inscompany) {
  11833. case "永安财险":
  11834. let api = "";
  11835. api =
  11836. this.apiType == 2
  11837. ? "pythonsubmitImage"
  11838. : "insyongansubmitImage";
  11839. await this.$api.letter[api]({
  11840. [this.apiType == 2 ? "subOrderNo" : "companyId"]: this.companyId
  11841. }).then(res => {
  11842. if (res.code == "200") {
  11843. var _this = this;
  11844. let api1 = "";
  11845. api1 = this.apiType == 2 ? "pythonaudit" : "yonganaudit";
  11846. this.$api.letter[api1]({
  11847. [this.apiType == 2 ? "subOrderNo" : "companyId"]: this.companyId
  11848. }).then(res => {
  11849. var _this = this;
  11850. if (res.code == "200") {
  11851. loading.close();
  11852. this.$message({
  11853. message: "核保成功",
  11854. type: "success"
  11855. });
  11856. this.handleCreateEquityOrder(this.companyId)
  11857. this.QuotationHistory();
  11858. _this.$api.letter
  11859. .getByCompanyId({ companyId: this.companyId })
  11860. .then(res => {
  11861. _this.orderstatus = res.data.orderstatus; //订单状态
  11862. _this.underwritingdialogVisible = true;
  11863. let indexid = this.totalCompanyList.findIndex(
  11864. item =>
  11865. item.namesimple == this.queryOrders.inscompany
  11866. );
  11867. this.totalCompanyList[indexid].orderstatus =
  11868. res.data.orderstatus;
  11869. });
  11870. } else {
  11871. loading.close();
  11872. this.$message({
  11873. showClose: true,
  11874. message:
  11875. this.queryOrders.inscompany + "提核--:" + res.msg,
  11876. type: "error",
  11877. duration: 0
  11878. });
  11879. }
  11880. });
  11881. } else {
  11882. this.$message({
  11883. message: this.queryOrders.inscompany + "影像:" + res.msg,
  11884. type: "error",
  11885. duration: 7000
  11886. });
  11887. loading.close();
  11888. }
  11889. });
  11890. break;
  11891. case "中煤财险":
  11892. let ZMApiImage = "";
  11893. ZMApiImage =
  11894. this.apiType == 2
  11895. ? "pythonsubmitImage"
  11896. : "insZhongmeisubmitImage";
  11897. await this.$api.letter[ZMApiImage]({
  11898. [this.apiType == 2 ? "subOrderNo" : "companyId"]: this
  11899. .companyId
  11900. }).then(res => {
  11901. // await this.$api.letter
  11902. // .insZhongmeisubmitImage({
  11903. // companyId: this.companyId,
  11904. // })
  11905. // .then((res) => {
  11906. if (res.code == "200") {
  11907. var _this = this;
  11908. let ZMApiaudit = "";
  11909. ZMApiaudit =
  11910. this.apiType == 2 ? "pythonaudit" : "Zhongmeiaudit";
  11911. _this.$api.letter[ZMApiaudit]({
  11912. // _this.$api.letter
  11913. // .Zhongmeiaudit({
  11914. [this.apiType == 2 ? "subOrderNo" : "companyId"]: this
  11915. .companyId,
  11916. // companyId: this.companyId,
  11917. jqappoint: "",
  11918. syappoint: ""
  11919. }).then(res => {
  11920. if (res.code == "200") {
  11921. loading.close();
  11922. _this.$message({
  11923. message: "核保成功",
  11924. type: "success"
  11925. });
  11926. this.handleCreateEquityOrder(this.companyId)
  11927. this.QuotationHistory();
  11928. _this.$api.letter
  11929. .getByCompanyId({ companyId: this.companyId })
  11930. .then(res => {
  11931. _this.orderstatus = res.data.orderstatus; //订单状态
  11932. _this.underwritingdialogVisible = true;
  11933. let indexid = this.totalCompanyList.findIndex(
  11934. item =>
  11935. item.namesimple == this.queryOrders.inscompany
  11936. );
  11937. this.totalCompanyList[indexid].orderstatus =
  11938. res.data.orderstatus;
  11939. });
  11940. } else {
  11941. loading.close();
  11942. _this.$message({
  11943. showClose: true,
  11944. message:
  11945. this.queryOrders.inscompany + "提核--:" + res.msg,
  11946. type: "error",
  11947. duration: 0
  11948. });
  11949. _this.$api.letter
  11950. .getByCompanyId({ companyId: this.companyId })
  11951. .then(res => {
  11952. _this.orderstatus = res.data.orderstatus; //订单状态
  11953. });
  11954. }
  11955. });
  11956. } else {
  11957. this.$message({
  11958. message:
  11959. this.queryOrders.inscompany + "影像--:" + res.msg,
  11960. type: "error",
  11961. duration: 7000
  11962. });
  11963. loading.close();
  11964. }
  11965. });
  11966. break;
  11967. case "诚泰财险":
  11968. let CtApiImage = "";
  11969. CtApiImage =
  11970. this.apiType == 2
  11971. ? "pythonsubmitImage"
  11972. : "chengtaisubmitImage";
  11973. await this.$api.letter[CtApiImage]({
  11974. [this.apiType == 2 ? "subOrderNo" : "companyId"]: this
  11975. .companyId
  11976. }).then(res => {
  11977. if (res.code == "200") {
  11978. var _this = this;
  11979. let CtApiaudit = "";
  11980. CtApiaudit =
  11981. this.apiType == 2 ? "pythonaudit" : "chengtaiaudit";
  11982. let engageList = [];
  11983. this.zijinengageList.forEach(val => {
  11984. engageList.push({
  11985. engageCode: val.clauseCode,
  11986. engageDetail: val.clauses,
  11987. engageTitle: val.clauseName,
  11988. riskCode: val.riskCode
  11989. });
  11990. });
  11991. _this.$api.letter[CtApiaudit]({
  11992. [this.apiType == 2 ? "subOrderNo" : "companyId"]: this
  11993. .companyId,
  11994. engageList
  11995. }).then(res => {
  11996. if (res.code == "200") {
  11997. loading.close();
  11998. _this.$message({
  11999. message: "核保成功",
  12000. type: "success"
  12001. });
  12002. this.handleCreateEquityOrder(this.companyId)
  12003. this.QuotationHistory();
  12004. _this.$api.letter
  12005. .getByCompanyId({ companyId: this.companyId })
  12006. .then(res => {
  12007. _this.orderstatus = res.data.orderstatus; //订单状态
  12008. _this.underwritingdialogVisible = true;
  12009. let indexid = this.totalCompanyList.findIndex(
  12010. item =>
  12011. item.namesimple == this.queryOrders.inscompany
  12012. );
  12013. this.totalCompanyList[indexid].orderstatus =
  12014. res.data.orderstatus;
  12015. });
  12016. } else {
  12017. loading.close();
  12018. _this.$message({
  12019. showClose: true,
  12020. message:
  12021. this.queryOrders.inscompany + "提核--:" + res.msg,
  12022. type: "error",
  12023. duration: 0
  12024. });
  12025. _this.$api.letter
  12026. .getByCompanyId({ companyId: this.companyId })
  12027. .then(res => {
  12028. _this.orderstatus = res.data.orderstatus; //订单状态
  12029. });
  12030. }
  12031. });
  12032. } else {
  12033. this.$message({
  12034. message:
  12035. this.queryOrders.inscompany + "影像--:" + res.msg,
  12036. type: "error",
  12037. duration: 7000
  12038. });
  12039. loading.close();
  12040. }
  12041. });
  12042. break;
  12043. case "华泰财险":
  12044. let HtApiImage = "";
  12045. HtApiImage =
  12046. this.apiType == 2
  12047. ? "pythonsubmitImage"
  12048. : "insHuataisubmitImage";
  12049. await this.$api.letter[HtApiImage]({
  12050. [this.apiType == 2 ? "subOrderNo" : "companyId"]: this
  12051. .companyId
  12052. }).then(res => {
  12053. if (res.code == "200") {
  12054. var _this = this;
  12055. let HtApiaudit = "";
  12056. HtApiaudit =
  12057. this.apiType == 2 ? "pythonaudit" : "huataiaudit";
  12058. let engageList = [];
  12059. this.zijinengageList.forEach(val => {
  12060. engageList.push({
  12061. engageCode: val.clauseCode,
  12062. engageDetail: val.clauses,
  12063. engageTitle: val.clauseName,
  12064. riskCode: val.riskCode
  12065. });
  12066. });
  12067. _this.$api.letter[HtApiaudit]({
  12068. [this.apiType == 2 ? "subOrderNo" : "companyId"]: this
  12069. .companyId,
  12070. engageList
  12071. }).then(res => {
  12072. if (res.code == "200") {
  12073. loading.close();
  12074. _this.$message({
  12075. message: "核保成功",
  12076. type: "success"
  12077. });
  12078. this.handleCreateEquityOrder(this.companyId)
  12079. this.QuotationHistory();
  12080. _this.$api.letter
  12081. .getByCompanyId({ companyId: this.companyId })
  12082. .then(res => {
  12083. _this.orderstatus = res.data.orderstatus; //订单状态
  12084. _this.underwritingdialogVisible = true;
  12085. let indexid = this.totalCompanyList.findIndex(
  12086. item =>
  12087. item.namesimple == this.queryOrders.inscompany
  12088. );
  12089. this.totalCompanyList[indexid].orderstatus =
  12090. res.data.orderstatus;
  12091. });
  12092. } else {
  12093. loading.close();
  12094. _this.$message({
  12095. showClose: true,
  12096. message:
  12097. this.queryOrders.inscompany + "提核--:" + res.msg,
  12098. type: "error",
  12099. duration: 0
  12100. });
  12101. _this.$api.letter
  12102. .getByCompanyId({ companyId: this.companyId })
  12103. .then(res => {
  12104. _this.orderstatus = res.data.orderstatus; //订单状态
  12105. });
  12106. }
  12107. });
  12108. } else {
  12109. this.$message({
  12110. message:
  12111. this.queryOrders.inscompany + "影像--:" + res.msg,
  12112. type: "error",
  12113. duration: 7000
  12114. });
  12115. loading.close();
  12116. }
  12117. });
  12118. break;
  12119. case "紫金财险":
  12120. let zjApiImage = "";
  12121. zjApiImage =
  12122. this.apiType == 2
  12123. ? "pythonsubmitImage"
  12124. : "zijinsubmitImage";
  12125. await this.$api.letter[zjApiImage]({
  12126. [this.apiType == 2 ? "subOrderNo" : "companyId"]: this.companyId
  12127. })
  12128. .then(res => {
  12129. if (res.code == "200") {
  12130. var _this = this;
  12131. let zjApiaudit = "";
  12132. zjApiaudit =
  12133. this.apiType == 2 ? "pythonaudit" : "zijinaudit";
  12134. _this.$api.letter
  12135. [zjApiaudit]({
  12136. [this.apiType == 2 ? "subOrderNo" : "companyId"]: this.companyId,
  12137. engageList: this.zijinengageList
  12138. })
  12139. .then(res => {
  12140. if (res.code == "200") {
  12141. loading.close();
  12142. _this.$message({
  12143. message: "核保成功",
  12144. type: "success"
  12145. });
  12146. this.handleCreateEquityOrder(this.companyId)
  12147. this.QuotationHistory();
  12148. _this.$api.letter
  12149. .getByCompanyId({ companyId: this.companyId })
  12150. .then(res => {
  12151. _this.orderstatus = res.data.orderstatus; //订单状态
  12152. _this.underwritingdialogVisible = true;
  12153. let indexid = this.totalCompanyList.findIndex(
  12154. item =>
  12155. item.namesimple ==
  12156. this.queryOrders.inscompany
  12157. );
  12158. this.totalCompanyList[indexid].orderstatus =
  12159. res.data.orderstatus;
  12160. });
  12161. } else {
  12162. loading.close();
  12163. _this.$message({
  12164. showClose: true,
  12165. dangerouslyUseHTMLString: true,
  12166. message:
  12167. this.queryOrders.inscompany +
  12168. "提核--:" +
  12169. res.msg,
  12170. type: "error",
  12171. duration: 0
  12172. });
  12173. _this.$api.letter
  12174. .getByCompanyId({ companyId: this.companyId })
  12175. .then(res => {
  12176. _this.orderstatus = res.data.orderstatus; //订单状态
  12177. });
  12178. }
  12179. });
  12180. } else {
  12181. this.$message({
  12182. message:
  12183. this.queryOrders.inscompany + "影像--:" + res.msg,
  12184. type: "error",
  12185. duration: 7000
  12186. });
  12187. loading.close();
  12188. }
  12189. });
  12190. break;
  12191. case "国任财险":
  12192. let GRApiImage = "";
  12193. GRApiImage =
  12194. this.apiType == 2 ? "pythonsubmitImage" : "insguorensubmitImage";
  12195. await this.$api.letter[GRApiImage]({
  12196. [this.apiType == 2 ? "subOrderNo" : "companyId"]: this.companyId
  12197. }).then(res => {
  12198. if (res.code == "200") {
  12199. var _this = this;
  12200. let auditType = this.apiType == 2? 'pythonaudit': 'gunrenaudit'
  12201. _this.$api.letter[auditType]({
  12202. [this.apiType == 2 ? "subOrderNo" : "companyId"]: this.companyId
  12203. })
  12204. .then(res => {
  12205. if (res.code == "200") {
  12206. loading.close();
  12207. _this.cqryCdeJq = "";
  12208. _this.cqryCdeSy = "";
  12209. _this.renewalCodeJq = "";
  12210. _this.renewalCodeSy = "";
  12211. this.$message({
  12212. message: "核保成功",
  12213. type: "success"
  12214. });
  12215. this.handleCreateEquityOrder(this.companyId)
  12216. this.QuotationHistory();
  12217. _this.$api.letter
  12218. .getByCompanyId({ companyId: this.companyId })
  12219. .then(res => {
  12220. _this.orderstatus = res.data.orderstatus; //订单状态
  12221. _this.underwritingdialogVisible = true;
  12222. let indexid = this.totalCompanyList.findIndex(
  12223. item =>
  12224. item.namesimple ==
  12225. this.queryOrders.inscompany
  12226. );
  12227. this.totalCompanyList[indexid].orderstatus =
  12228. res.data.orderstatus;
  12229. });
  12230. } else {
  12231. loading.close();
  12232. this.$message({
  12233. showClose: true,
  12234. message: res.msg,
  12235. type: "error",
  12236. duration: 0
  12237. });
  12238. }
  12239. });
  12240. } else {
  12241. loading.close();
  12242. this.$message({
  12243. message: res.msg,
  12244. type: "error",
  12245. duration: 7000
  12246. });
  12247. }
  12248. });
  12249. break;
  12250. case "渤海财险":
  12251. await this.$api.letter
  12252. .insbohaisubmitImage({
  12253. companyId: this.companyId
  12254. })
  12255. .then(res => {
  12256. if (res.code == "200") {
  12257. var _this = this;
  12258. _this.$api.letter
  12259. .bohaiaudit({
  12260. companyId: this.companyId
  12261. })
  12262. .then(res => {
  12263. if (res.code == "200") {
  12264. loading.close();
  12265. _this.cqryCdeJq = "";
  12266. _this.cqryCdeSy = "";
  12267. _this.renewalCodeJq = "";
  12268. _this.renewalCodeSy = "";
  12269. this.$message({
  12270. message: "核保成功",
  12271. type: "success"
  12272. });
  12273. this.handleCreateEquityOrder(this.companyId)
  12274. this.QuotationHistory();
  12275. _this.$api.letter
  12276. .getByCompanyId({ companyId: this.companyId })
  12277. .then(res => {
  12278. _this.orderstatus = res.data.orderstatus; //订单状态
  12279. _this.underwritingdialogVisible = true;
  12280. let indexid = this.totalCompanyList.findIndex(
  12281. item =>
  12282. item.namesimple ==
  12283. this.queryOrders.inscompany
  12284. );
  12285. this.totalCompanyList[indexid].orderstatus =
  12286. res.data.orderstatus;
  12287. });
  12288. } else {
  12289. loading.close();
  12290. this.$message({
  12291. showClose: true,
  12292. message: res.msg,
  12293. type: "error",
  12294. duration: 0
  12295. });
  12296. }
  12297. });
  12298. } else {
  12299. loading.close();
  12300. this.$message({
  12301. message: res.msg,
  12302. type: "error",
  12303. duration: 7000
  12304. });
  12305. }
  12306. });
  12307. break;
  12308. case "阳光财险":
  12309. await this.$api.letter
  12310. .yangGuangImage({
  12311. companyId: this.companyId
  12312. })
  12313. .then(res => {
  12314. if (res.code == "200") {
  12315. var _this = this;
  12316. _this.$api.letter
  12317. .yangGuangSubmit({
  12318. companyId: this.companyId
  12319. })
  12320. .then(res => {
  12321. if (res.code == "200") {
  12322. loading.close();
  12323. _this.cqryCdeJq = "";
  12324. _this.cqryCdeSy = "";
  12325. _this.renewalCodeJq = "";
  12326. _this.renewalCodeSy = "";
  12327. this.$message({
  12328. message: "核保成功",
  12329. type: "success"
  12330. });
  12331. this.handleCreateEquityOrder(this.companyId)
  12332. this.QuotationHistory();
  12333. _this.$api.letter
  12334. .getByCompanyId({ companyId: this.companyId })
  12335. .then(res => {
  12336. _this.orderstatus = res.data.orderstatus; //订单状态
  12337. _this.underwritingdialogVisible = true;
  12338. let indexid = this.totalCompanyList.findIndex(
  12339. item =>
  12340. item.namesimple ==
  12341. this.queryOrders.inscompany
  12342. );
  12343. this.totalCompanyList[indexid].orderstatus =
  12344. res.data.orderstatus;
  12345. });
  12346. } else {
  12347. loading.close();
  12348. this.$message({
  12349. showClose: true,
  12350. message: res.msg,
  12351. type: "error",
  12352. duration: 0
  12353. });
  12354. }
  12355. });
  12356. } else {
  12357. loading.close();
  12358. this.$message({
  12359. message: res.msg,
  12360. type: "error",
  12361. duration: 7000
  12362. });
  12363. }
  12364. });
  12365. break;
  12366. case "恒邦财险":
  12367. case "华农财险":
  12368. case "华安财险":
  12369. case "泰山财险":
  12370. case "申能财险":
  12371. case "大地财险":
  12372. case "太平财险":
  12373. case "安盛天平":
  12374. case "众安财险":
  12375. case "中国人寿":
  12376. case "人保财险":
  12377. case "太平洋财险":
  12378. // case "诚泰财险":
  12379. case "泰康财险":
  12380. let hengbangapi = "";
  12381. hengbangapi =
  12382. this.apiType == 2
  12383. ? "pythonsubmitImage"
  12384. : "anshengsubmitImage";
  12385. await this.$api.letter[hengbangapi]({
  12386. subOrderNo: this.companyId
  12387. }).then(res => {
  12388. if (res.code == "200") {
  12389. var _this = this;
  12390. let hengbangapi1 = "";
  12391. hengbangapi1 =
  12392. this.apiType == 2 ? "pythonaudit" : "anshengaudit";
  12393. _this.$api.letter[hengbangapi1]({
  12394. subOrderNo: this.companyId
  12395. }).then(res => {
  12396. if (res.code == "200") {
  12397. loading.close();
  12398. this.$message({
  12399. message: "核保成功",
  12400. type: "success"
  12401. });
  12402. this.handleCreateEquityOrder(this.companyId)
  12403. this.QuotationHistory();
  12404. _this.$api.letter
  12405. .getByCompanyId({ companyId: this.companyId })
  12406. .then(res => {
  12407. _this.orderstatus = res.data.orderstatus; //订单状态
  12408. _this.underwritingdialogVisible = true;
  12409. let indexid = this.totalCompanyList.findIndex(
  12410. item =>
  12411. item.namesimple == this.queryOrders.inscompany
  12412. );
  12413. this.totalCompanyList[indexid].orderstatus =
  12414. res.data.orderstatus;
  12415. });
  12416. } else {
  12417. loading.close();
  12418. this.$message({
  12419. showClose: true,
  12420. dangerouslyUseHTMLString: true,
  12421. message:
  12422. this.queryOrders.inscompany +
  12423. "提核--:" +
  12424. res.msg.replace(/\n/g, "<br><br>"),
  12425. type: "error",
  12426. duration: 0
  12427. });
  12428. }
  12429. });
  12430. } else {
  12431. loading.close();
  12432. this.$message({
  12433. message:
  12434. this.queryOrders.inscompany + "影像--:" + res.msg,
  12435. type: "error",
  12436. duration: 7000
  12437. });
  12438. }
  12439. });
  12440. break;
  12441. case "永诚财险":
  12442. await this.$api.letter
  12443. .insyongchengsubmitImage({
  12444. companyId: this.companyId
  12445. })
  12446. .then(res => {
  12447. if (res.code == "200") {
  12448. var _this = this;
  12449. _this.$api.letter
  12450. .yongchengaudit({
  12451. companyId: this.companyId
  12452. })
  12453. .then(res => {
  12454. if (res.code == "200") {
  12455. loading.close();
  12456. _this.cqryCdeJq = "";
  12457. _this.cqryCdeSy = "";
  12458. _this.renewalCodeJq = "";
  12459. _this.renewalCodeSy = "";
  12460. this.$message({
  12461. message: "核保成功",
  12462. type: "success"
  12463. });
  12464. this.handleCreateEquityOrder(this.companyId)
  12465. this.QuotationHistory();
  12466. _this.$api.letter
  12467. .getByCompanyId({ companyId: this.companyId })
  12468. .then(res => {
  12469. _this.orderstatus = res.data.orderstatus; //订单状态
  12470. _this.underwritingdialogVisible = true;
  12471. let indexid = this.totalCompanyList.findIndex(
  12472. item =>
  12473. item.namesimple ==
  12474. this.queryOrders.inscompany
  12475. );
  12476. this.totalCompanyList[indexid].orderstatus =
  12477. res.data.orderstatus;
  12478. });
  12479. } else {
  12480. loading.close();
  12481. this.$message({
  12482. showClose: true,
  12483. message:
  12484. this.queryOrders.inscompany +
  12485. "提核--:" +
  12486. res.msg,
  12487. customClass: "customNotifyClass",
  12488. type: "error",
  12489. duration: 0
  12490. });
  12491. }
  12492. });
  12493. } else {
  12494. loading.close();
  12495. this.$message({
  12496. message:
  12497. this.queryOrders.inscompany + "影像--:" + res.msg,
  12498. type: "error",
  12499. duration: 7000
  12500. });
  12501. }
  12502. });
  12503. break;
  12504. case "大家财险":
  12505. let DJApiImage = "";
  12506. DJApiImage =
  12507. this.apiType == 2 ? "pythonsubmitImage" : "dajiasubmitImage";
  12508. await this.$api.letter[DJApiImage]({
  12509. [this.apiType == 2 ? "subOrderNo" : "companyId"]: this
  12510. .companyId
  12511. }).then(res => {
  12512. if (res.code == "200") {
  12513. var _this = this;
  12514. let DJApiaudit = "";
  12515. DJApiaudit =
  12516. this.apiType == 2 ? "pythonaudit" : "dajiaaudit";
  12517. _this.$api.letter[DJApiaudit]({
  12518. [this.apiType == 2 ? "subOrderNo" : "companyId"]: this
  12519. .companyId
  12520. }).then(res => {
  12521. if (res.code == "200") {
  12522. loading.close();
  12523. _this.cqryCdeJq = "";
  12524. _this.cqryCdeSy = "";
  12525. _this.renewalCodeJq = "";
  12526. _this.renewalCodeSy = "";
  12527. this.$message({
  12528. message: "核保成功",
  12529. type: "success"
  12530. });
  12531. this.handleCreateEquityOrder(this.companyId)
  12532. this.QuotationHistory();
  12533. _this.$api.letter
  12534. .getByCompanyId({ companyId: this.companyId })
  12535. .then(res => {
  12536. _this.orderstatus = res.data.orderstatus; //订单状态
  12537. _this.underwritingdialogVisible = true;
  12538. let indexid = this.totalCompanyList.findIndex(
  12539. item =>
  12540. item.namesimple == this.queryOrders.inscompany
  12541. );
  12542. this.totalCompanyList[indexid].orderstatus =
  12543. res.data.orderstatus;
  12544. });
  12545. } else {
  12546. loading.close();
  12547. this.$message({
  12548. showClose: true,
  12549. message:
  12550. this.queryOrders.inscompany + "提核--:" + res.msg,
  12551. customClass: "customNotifyClass",
  12552. type: "error",
  12553. duration: 0
  12554. });
  12555. }
  12556. });
  12557. } else {
  12558. loading.close();
  12559. this.$message({
  12560. message:
  12561. this.queryOrders.inscompany + "影像--:" + res.msg,
  12562. type: "error",
  12563. duration: 7000
  12564. });
  12565. }
  12566. });
  12567. break;
  12568. case "平安财险":
  12569. await this.$api.letter
  12570. .pingansubmitImage({
  12571. companyId: this.companyId
  12572. })
  12573. .then(res => {
  12574. if (res.code == "200") {
  12575. var _this = this;
  12576. _this.$api.letter
  12577. .pinganaudit({
  12578. companyId: this.companyId,
  12579. jqappoint: "",
  12580. syappoint: ""
  12581. })
  12582. .then(res => {
  12583. if (res.code == "200") {
  12584. loading.close();
  12585. _this.$message({
  12586. message: "核保成功",
  12587. type: "success"
  12588. });
  12589. this.handleCreateEquityOrder(this.companyId)
  12590. this.QuotationHistory();
  12591. _this.$api.letter
  12592. .getByCompanyId({ companyId: this.companyId })
  12593. .then(res => {
  12594. _this.orderstatus = res.data.orderstatus; //订单状态
  12595. _this.underwritingdialogVisible = true;
  12596. let indexid = this.totalCompanyList.findIndex(
  12597. item =>
  12598. item.namesimple ==
  12599. this.queryOrders.inscompany
  12600. );
  12601. this.totalCompanyList[indexid].orderstatus =
  12602. res.data.orderstatus;
  12603. });
  12604. } else {
  12605. loading.close();
  12606. _this.$message({
  12607. showClose: true,
  12608. message:
  12609. this.queryOrders.inscompany +
  12610. "提核--:" +
  12611. res.msg,
  12612. type: "error",
  12613. duration: 0
  12614. });
  12615. _this.$api.letter
  12616. .getByCompanyId({ companyId: this.companyId })
  12617. .then(res => {
  12618. _this.orderstatus = res.data.orderstatus; //订单状态
  12619. });
  12620. }
  12621. });
  12622. } else {
  12623. this.$message({
  12624. message:
  12625. this.queryOrders.inscompany + "影像--:" + res.msg,
  12626. type: "error",
  12627. duration: 7000
  12628. });
  12629. loading.close();
  12630. }
  12631. });
  12632. break;
  12633. }
  12634. }
  12635. });
  12636. },
  12637. //当前日期的次日
  12638. transformTime1() {
  12639. var date = new Date();
  12640. date.setFullYear(date.getFullYear());
  12641. date.setTime(date.getTime() + 24 * 60 * 60 * 1000);
  12642. var strYear = date.getFullYear();
  12643. var strDay = date.getDate();
  12644. var strMonth = date.getMonth() + 1;
  12645. var hh = date.getHours();
  12646. if (hh < 10) {
  12647. hh = "0" + hh;
  12648. }
  12649. if (strMonth < 10) {
  12650. strMonth = "0" + strMonth;
  12651. }
  12652. if (strDay < 10) {
  12653. strDay = "0" + strDay;
  12654. }
  12655. var datastr = strYear + "-" + strMonth + "-" + strDay + " " + "00:00:00";
  12656. return datastr;
  12657. },
  12658. //传入日期的次日
  12659. transformTime2(time) {
  12660. var date = new Date(time);
  12661. date.setFullYear(date.getFullYear());
  12662. date.setTime(date.getTime() + 24 * 60 * 60 * 1000); //一年后的前一天
  12663. var strYear = date.getFullYear();
  12664. var strDay = date.getDate();
  12665. var strMonth = date.getMonth() + 1;
  12666. var hh = date.getHours();
  12667. if (hh < 10) {
  12668. hh = "0" + hh;
  12669. }
  12670. if (strMonth < 10) {
  12671. strMonth = "0" + strMonth;
  12672. }
  12673. if (strDay < 10) {
  12674. strDay = "0" + strDay;
  12675. }
  12676. var datastr = strYear + "-" + strMonth + "-" + strDay + " " + "00:00:00";
  12677. return datastr;
  12678. },
  12679. isDateBeforeToday(date) {
  12680. const inputDate = new Date(date); // 将输入的日期转换为 Date 对象
  12681. const today = new Date(); // 获取当前日期
  12682. // 比较日期是否小于当前日期
  12683. if (inputDate < today) {
  12684. return true; // 输入日期小于当前日期
  12685. } else {
  12686. return false; // 输入日期大于等于当前日期
  12687. }
  12688. },
  12689. //时间转换
  12690. transformTime(date) {
  12691. var d = new Date(date);
  12692. var strYear = d.getFullYear();
  12693. var strMonth = d.getMonth() + 1;
  12694. var strDay = d.getDate();
  12695. var hh = d.getHours();
  12696. var minutes = d.getMinutes(); // 分
  12697. var Seconds = d.getSeconds();
  12698. if (hh < 10) {
  12699. hh = "0" + hh;
  12700. }
  12701. if (minutes < 10) {
  12702. minutes = "0" + minutes;
  12703. }
  12704. if (Seconds < 10) {
  12705. Seconds = "0" + Seconds;
  12706. }
  12707. if (strMonth < 10) {
  12708. strMonth = "0" + strMonth;
  12709. }
  12710. if (strDay < 10) {
  12711. strDay = "0" + strDay;
  12712. }
  12713. var datetime =
  12714. strYear +
  12715. "-" +
  12716. strMonth +
  12717. "-" +
  12718. strDay +
  12719. " " +
  12720. hh +
  12721. ":" +
  12722. minutes +
  12723. ":" +
  12724. Seconds;
  12725. return datetime;
  12726. },
  12727. timeformat(date) {
  12728. var d = new Date(date);
  12729. var strYear = d.getFullYear();
  12730. var strMonth = d.getMonth() + 1;
  12731. var strDay = d.getDate();
  12732. var hh = d.getHours();
  12733. if (hh < 10) {
  12734. hh = "0" + hh;
  12735. }
  12736. if (strMonth < 10) {
  12737. strMonth = "0" + strMonth;
  12738. }
  12739. if (strDay < 10) {
  12740. strDay = "0" + strDay;
  12741. }
  12742. var datetime = strYear + "-" + strMonth + "-" + strDay;
  12743. return datetime;
  12744. },
  12745. oneYearPast1(time) {
  12746. //明年减一秒
  12747. var date = new Date(time);
  12748. date.setSeconds(date.getSeconds() - 1);
  12749. date.setFullYear(date.getFullYear() + 1); //一年后
  12750. date.setTime(date.getTime()); //一年后的前一天
  12751. var strYear = date.getFullYear();
  12752. var strDay = date.getDate();
  12753. var strMonth = date.getMonth() + 1;
  12754. var hh = date.getHours();
  12755. var minutes = date.getMinutes(); // 分
  12756. var Seconds = date.getSeconds();
  12757. if (hh < 10) {
  12758. hh = "0" + hh;
  12759. }
  12760. if (minutes < 10) {
  12761. minutes = "0" + minutes;
  12762. }
  12763. if (Seconds < 10) {
  12764. Seconds = "0" + Seconds;
  12765. }
  12766. if (strMonth < 10) {
  12767. strMonth = "0" + strMonth;
  12768. }
  12769. if (strDay < 10) {
  12770. strDay = "0" + strDay;
  12771. }
  12772. var datastr =
  12773. strYear +
  12774. "-" +
  12775. strMonth +
  12776. "-" +
  12777. strDay +
  12778. " " +
  12779. hh +
  12780. ":" +
  12781. minutes +
  12782. ":" +
  12783. Seconds;
  12784. return datastr;
  12785. },
  12786. tbczcarShowChange() {
  12787. //投保人同车主
  12788. switch (this.tbczcarShow) {
  12789. case true:
  12790. this.policyHolderInfo = { ...this.ownerInfo };
  12791. break;
  12792. default:
  12793. for (let key in this.policyHolderInfo) {
  12794. this.policyHolderInfo[key] = "";
  12795. this.policyHolderInfo.provinceData = [];
  12796. this.selectedOptions2 = [];
  12797. }
  12798. this.policyHolderInfo = {};
  12799. }
  12800. this.$forceUpdate();
  12801. },
  12802. bbczcarShowChange() {
  12803. if (this.bbczcarShow) {
  12804. this.bbtbcarShow = false;
  12805. }
  12806. //被保人同车主
  12807. if (this.bbczcarShow && !this.bbtbcarShow) {
  12808. this.insuredPersonInfo = { ...this.ownerInfo };
  12809. this.bbtbcarShow = false;
  12810. }
  12811. // if (!this.bbczcarShow && !this.bbtbcarShow) {
  12812. // for (let key in this.insuredPersonInfo) {
  12813. // this.insuredPersonInfo[key] = "";
  12814. // this.insuredPersonInfo.provinceData = [];
  12815. // // this.selectedOptions3 = [];
  12816. // }
  12817. // this.insuredPersonInfo = {}
  12818. // }
  12819. // if (this.bbtbcarShow) {
  12820. // return
  12821. // }
  12822. // switch (this.bbczcarShow) {
  12823. // case true:
  12824. // this.insuredPersonInfo = JSON.parse(JSON.stringify(this.ownerInfo));
  12825. // this.bbtbcarShow = false;
  12826. // console.log( '车主信息111111', this.ownerInfo, '投保人信息', this.policyHolderInfo, '被保人信息', this.insuredPersonInfo, '被保人同车主', this.bbczcarShow)
  12827. // break;
  12828. // default:
  12829. // for (let key in this.insuredPersonInfo) {
  12830. // this.insuredPersonInfo[key] = "";
  12831. // this.insuredPersonInfo.provinceData = [];
  12832. // // this.selectedOptions3 = [];
  12833. // }
  12834. // }
  12835. this.$forceUpdate();
  12836. },
  12837. bbtbcarShowChange() {
  12838. if (this.bbtbcarShow) {
  12839. this.bbczcarShow = false;
  12840. }
  12841. if (this.bbtbcarShow && !this.bbczcarShow) {
  12842. this.insuredPersonInfo = { ...this.policyHolderInfo };
  12843. this.bbczcarShow = false;
  12844. }
  12845. this.$forceUpdate();
  12846. },
  12847. // 清空被保人信息
  12848. clearBbxx() {
  12849. for (let key in this.insuredPersonInfo) {
  12850. this.insuredPersonInfo[key] = "";
  12851. this.insuredPersonInfo.provinceData = [];
  12852. }
  12853. },
  12854. // 查询车牌信息
  12855. toCheckLicenseNo(licenseNo) {
  12856. if (licenseNo) {
  12857. this.$api.letter
  12858. .licenseSearch({
  12859. licenseNo: licenseNo
  12860. })
  12861. .then(res => {
  12862. if (res.code == 200) {
  12863. {
  12864. this.carInfo.engineNo = res.data.engineNo;
  12865. this.carInfo.vinNo = res.data.vinNo;
  12866. this.carInfo.frameNo = res.data.vinNo;
  12867. this.carInfo.registerDate = res.data.registerDate;
  12868. this.$forceUpdate();
  12869. }
  12870. }
  12871. });
  12872. }
  12873. },
  12874. //VIN查询
  12875. toChooseVin(cartype) {
  12876. if (cartype == "" || cartype == null) {
  12877. this.$message({
  12878. message: "请输入车架号",
  12879. type: "warning"
  12880. });
  12881. } else {
  12882. const loading = this.$loading({
  12883. lock: true,
  12884. text: "Loading",
  12885. spinner: "el-icon-loading",
  12886. background: "rgba(0, 0, 0, 0.7)"
  12887. });
  12888. this.$api.letter.insZhongmeiVIN(this.carInfo.frameNo).then(res => {
  12889. if (res.code == "200") {
  12890. this.reslist = res.data;
  12891. loading.close();
  12892. this.sbdmdialogVisible = true;
  12893. } else {
  12894. loading.close();
  12895. this.$message.error(res.msg);
  12896. }
  12897. });
  12898. }
  12899. },
  12900. // 撤销二维码
  12901. revokeCode(id) {
  12902. this.$confirm("确定撤销二维码?", "提示", {
  12903. confirmButtonText: "确定",
  12904. cancelButtonText: "取消",
  12905. type: "warning"
  12906. })
  12907. .then(() => {
  12908. this.$api.letter.getRevokeQrCode(id).then(res => {
  12909. if (res.code == 200) {
  12910. this.$message({
  12911. message: res.msg,
  12912. type: "success"
  12913. });
  12914. this.QuotationHistory();
  12915. }
  12916. });
  12917. })
  12918. .catch(() => {
  12919. this.$message({
  12920. type: "info",
  12921. message: "已取消撤销二维码"
  12922. });
  12923. });
  12924. },
  12925. //品牌型号查询
  12926. toChooseVehicleType(cartype) {
  12927. if (cartype == "" || cartype == null) {
  12928. this.$message({
  12929. message: "请输入车型名称",
  12930. type: "warning"
  12931. });
  12932. } else {
  12933. const loading = this.$loading({
  12934. lock: true,
  12935. text: "Loading",
  12936. spinner: "el-icon-loading",
  12937. background: "rgba(0, 0, 0, 0.7)"
  12938. });
  12939. let param = {
  12940. modelName: cartype.replace(/[^u4e00-u9fa5|,]+/gi, "")
  12941. };
  12942. this.$api.letter.ModelsQuery(param).then(res => {
  12943. if (res.code == "200") {
  12944. loading.close();
  12945. this.reslist = res.data;
  12946. this.chexingdialogVisible = true;
  12947. } else {
  12948. loading.close();
  12949. this.$message.error(res.msg);
  12950. }
  12951. });
  12952. }
  12953. },
  12954. //车型列表双击选中事件
  12955. reslistCurrentChange(row, column, event) {
  12956. this.carInfo.importFlag=row.importFlag;//特种车标识
  12957. this.carInfo.brandName = row.brandCN; //品牌型号
  12958. this.carInfo.modelcname = row.modelName; //品牌型号
  12959. this.carInfo.caryear = row.marketYear; //年款
  12960. this.carInfo.seatCount = row.ratedPassengerCapacity; //座位数
  12961. this.carInfo.purchasePrice = row.replacementValue; //购置价
  12962. this.carInfo.modelCode = row.modelCode; //型号代码
  12963. this.carInfo.familyName = row.series; //系列
  12964. this.carInfo.enginedesc = row.displacement; //排量
  12965. this.carInfo.energyType =this.carInfo.licenseNo && this.carInfo.licenseNo.length==7? row.energyTypes:'1';//能源种类
  12966. this.carInfo.powerScale = row.powerScale; //功率
  12967. this.chexingdialogVisible = false;
  12968. this.sbdmdialogVisible = false;
  12969. },
  12970. //是否过户事件
  12971. transferFlagChange(e) {
  12972. if (e) {
  12973. this.transferDateShow = true;
  12974. this.carInfo.transferDate = this.carInfo.issueDate;
  12975. } else {
  12976. this.transferDateShow = false;
  12977. this.carInfo.transferDate = "";
  12978. }
  12979. },
  12980. //影像上传
  12981. drivingupload(file, imageIdList, imgurl, type) {
  12982. let that = this;
  12983. let size = file.size / 1024 / 1024 < 5;
  12984. const isJPG =
  12985. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  12986. if (!size) {
  12987. this.$message.error("上传图片大小不能超过 5MB!");
  12988. this[imgurl] = [];
  12989. return false;
  12990. }
  12991. if (!isJPG) {
  12992. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  12993. this[imgurl] = [];
  12994. return false;
  12995. }
  12996. this[imgurl].push(file);
  12997. var file = file.raw;
  12998. const params = new FormData(); // 声明formData数据类型
  12999. params.append("multipartFile", file);
  13000. params.append("type", "image");
  13001. this.$api.letter.uploadFile(params).then(res => {
  13002. if (res.code == "200") {
  13003. if (this[imageIdList].some(v => v.imageType == type)) {
  13004. this[imageIdList].map(val => {
  13005. if (val.imageType == type) {
  13006. val.imageId = res.data.id;
  13007. }
  13008. });
  13009. } else {
  13010. this[imageIdList].push({
  13011. imageId: res.data.id,
  13012. imageType: type
  13013. });
  13014. }
  13015. }
  13016. });
  13017. },
  13018. policydrivingupload(file, val) {
  13019. // this.policyNumberForm[val + 'List'] = []
  13020. switch (val) {
  13021. case "jqPolicy":
  13022. this.policyNumberForm.jqPolicyList = [];
  13023. break;
  13024. case "syPolicy":
  13025. this.policyNumberForm.syPolicyList = [];
  13026. break;
  13027. case "noPolicy":
  13028. this.policyNumberForm.noPolicyList = [];
  13029. break;
  13030. case "jqSign":
  13031. this.policyNumberForm.jqSignList = [];
  13032. break;
  13033. default:
  13034. break;
  13035. }
  13036. var file = file.raw;
  13037. const params = new FormData(); // 声明formData数据类型
  13038. params.append("multipartFile", file);
  13039. params.append("type", "file");
  13040. this.$api.letter.uploadFile(params).then(res => {
  13041. if (res.code == "200") {
  13042. res.data.name = res.data.fileName;
  13043. this.policyNumberForm[val + "List"].push(res.data);
  13044. }
  13045. });
  13046. },
  13047. handleRemove1(file, imageIdList, imgList) {
  13048. this[imageIdList].map((ele, index) => {
  13049. if (file.imageId === ele.imageId) {
  13050. this[imageIdList].splice(index, 1);
  13051. }
  13052. return ele;
  13053. });
  13054. if (file.imageId) {
  13055. this[imgList].map((ele, index) => {
  13056. if (file.imageId === ele.imageId) {
  13057. this[imgList].splice(index, 1);
  13058. }
  13059. return ele;
  13060. });
  13061. } else {
  13062. this[imgList].map((ele, index) => {
  13063. if (file.uid === ele.uid) {
  13064. this[imgList].splice(index, 1);
  13065. }
  13066. return ele;
  13067. });
  13068. }
  13069. },
  13070. compress(img, width, height, ratio) {
  13071. var canvas, ctx, img64;
  13072. canvas = document.createElement("canvas");
  13073. canvas.width = width;
  13074. canvas.height = height;
  13075. ctx = canvas.getContext("2d");
  13076. ctx.drawImage(img, 0, 0, width, height);
  13077. img64 = canvas.toDataURL("image/jpeg", ratio);
  13078. return img64;
  13079. },
  13080. base64ToFile(base64, fileName) {
  13081. let data = base64.split(",");
  13082. let type = data[0].match(/:(.*?);/)[1]; // let suffix = type.split('/')[1];
  13083. const bstr = window.atob(data[1]);
  13084. let n = bstr.length;
  13085. const u8arr = new Uint8Array(n);
  13086. while (n--) {
  13087. u8arr[n] = bstr.charCodeAt(n);
  13088. } // const file =  new File([u8arr], `${fileName}.${suffix}`, {
  13089. const file = new File([u8arr], `${fileName}`, {
  13090. type: type
  13091. });
  13092. return file;
  13093. },
  13094. carfrontChange(file) {
  13095. //选择行驶证正面
  13096. let that = this;
  13097. let size = file.size / 1024 / 1024 < 5;
  13098. const isJPG =
  13099. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  13100. if (!size) {
  13101. this.$message.error("上传图片大小不能超过 5MB!");
  13102. return false;
  13103. }
  13104. if (!isJPG) {
  13105. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  13106. return false;
  13107. }
  13108. // let name=file.raw.name
  13109. //       var image = new Image();
  13110. //       image.src = window.URL.createObjectURL(file.raw);
  13111. //       that.carfrontImg =  image.src
  13112. //       image.onload = function(){
  13113. //         let aaa= that.base64ToFile(that.compress(image, 500, 400, 0.7),name)
  13114. // that.carfrontImg = image.src;
  13115. // const params = new FormData(); // 声明formData数据类型
  13116. // params.append("multipartFile", aaa);
  13117. // params.append("type", "image");
  13118. // that.$api.letter.uploadFile(params).then(res => {
  13119. // if (res.code == "200") {
  13120. // that.CarFrontFile = aaa;//文件流
  13121. // if (that.imageList1.some(v => v.imageType == 'C01')) {
  13122. // that.imageList1.map(val => {
  13123. // if (val.imageType == 'C01') {
  13124. // val.imageId = res.data.id;
  13125. // }
  13126. // })
  13127. // } else {
  13128. // that.imageList1.push({
  13129. // imageId: res.data.id,
  13130. // imageType: "C01",
  13131. // })
  13132. // }
  13133. // } else {
  13134. // that.$message({ message: res.msg, type: "warning" });
  13135. // }
  13136. // });
  13137. // }
  13138. var file = file.raw;
  13139. let files = window.URL.createObjectURL(file); //转临时路径
  13140. this.carfrontImg = files;
  13141. const params = new FormData(); // 声明formData数据类型
  13142. params.append("multipartFile", file);
  13143. params.append("type", "image");
  13144. this.$api.letter.uploadFile(params).then(res => {
  13145. if (res.code == "200") {
  13146. this.CarFrontFile = file; //文件流
  13147. if (this.imageList1.some(v => v.imageType == "C01")) {
  13148. this.imageList1.map(val => {
  13149. if (val.imageType == "C01") {
  13150. val.imageId = res.data.id;
  13151. }
  13152. });
  13153. } else {
  13154. this.imageList1.push({
  13155. imageId: res.data.id,
  13156. imageType: "C01"
  13157. });
  13158. }
  13159. } else {
  13160. this.$message({ message: res.msg, type: "warning" });
  13161. }
  13162. });
  13163. },
  13164. carbackChange(file) {
  13165. let that = this;
  13166. let size = file.size / 1024 / 1024 < 2;
  13167. const isJPG =
  13168. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  13169. if (!size) {
  13170. this.$message.error("上传图片大小不能超过 5MB!");
  13171. return false;
  13172. }
  13173. if (!isJPG) {
  13174. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  13175. return false;
  13176. }
  13177. // let name=file.raw.name
  13178. //       var image = new Image();
  13179. //       image.src = window.URL.createObjectURL(file.raw);
  13180. //       image.onload = function(){
  13181. //         let aaa= that.base64ToFile(that.compress(image, 500, 400, 0.7),name)
  13182. // that.carbackImg = image.src;
  13183. // const params = new FormData(); // 声明formData数据类型
  13184. // params.append("multipartFile", aaa);
  13185. // params.append("type", "image");
  13186. // that.$api.letter.uploadFile(params).then(res => {
  13187. // if (res.code == "200") {
  13188. // that.CarBackFile = aaa;//文件流
  13189. // if (that.imageList1.some(v => v.imageType == 'D01')) {
  13190. // that.imageList1.map(val => {
  13191. // if (val.imageType == 'D01') {
  13192. // val.imageId = res.data.id;
  13193. // }
  13194. // })
  13195. // } else {
  13196. // that.imageList1.push({
  13197. // imageId: res.data.id,
  13198. // imageType: "D01",
  13199. // })
  13200. // }
  13201. // } else {
  13202. // that.$message({ message: res.msg, type: "warning" });
  13203. // }
  13204. // });
  13205. // }
  13206. //选择行驶证反面
  13207. var file = file.raw;
  13208. let files = window.URL.createObjectURL(file); //转临时路径
  13209. this.carbackImg = files;
  13210. const params = new FormData(); // 声明formData数据类型
  13211. params.append("multipartFile", file);
  13212. params.append("type", "image");
  13213. this.$api.letter.uploadFile(params).then(res => {
  13214. if (res.code == "200") {
  13215. this.CarBackFile = file;
  13216. if (this.imageList1.some(v => v.imageType == "D01")) {
  13217. this.imageList1.map(val => {
  13218. if (val.imageType == "D01") {
  13219. val.imageId = res.data.id;
  13220. }
  13221. });
  13222. } else {
  13223. this.imageList1.push({
  13224. imageId: res.data.id,
  13225. imageType: "D01"
  13226. });
  13227. }
  13228. } else {
  13229. this.$message({ message: res.msg, type: "warning" });
  13230. }
  13231. });
  13232. },
  13233. userfrontChange(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.userfrontImg = 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 = 'C0' + 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.userfrontImg = 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 = "C0" + 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. userbackChange(file) {
  13307. let that = this;
  13308. let size = file.size / 1024 / 1024 < 5;
  13309. const isJPG =
  13310. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  13311. if (!size) {
  13312. this.$message.error("上传图片大小不能超过 5MB!");
  13313. return false;
  13314. }
  13315. if (!isJPG) {
  13316. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  13317. return false;
  13318. }
  13319. // let name=file.raw.name
  13320. //       var image = new Image();
  13321. //       image.src = window.URL.createObjectURL(file.raw);
  13322. //       image.onload = function(){
  13323. //         let aaa= that.base64ToFile(that.compress(image, 500, 400, 0.7),name)
  13324. // that.userbackImg = image.src;
  13325. // const params = new FormData(); // 声明formData数据类型
  13326. // params.append("multipartFile", aaa);
  13327. // params.append("type", "image");
  13328. // that.$api.letter.uploadFile(params).then(res => {
  13329. // if (res.code == "200") {
  13330. // let type = 'D0' + that.userIndex;
  13331. // if (that['imageList' + that.userIndex].some(v => v.imageType == type)) {
  13332. // that['imageList' + that.userIndex].map(val => {
  13333. // if (val.imageType == type) {
  13334. // val.imageId = res.data.id;
  13335. // }
  13336. // })
  13337. // } else {
  13338. // that['imageList' + that.userIndex].push({
  13339. // imageId: res.data.id,
  13340. // imageType: type,
  13341. // })
  13342. // }
  13343. // that[type + 'File'] = aaa;
  13344. // } else {
  13345. // that.$message({ message: res.msg, type: "warning" });
  13346. // }
  13347. // });
  13348. // }
  13349. //选择身份证背面
  13350. var file = file.raw;
  13351. let files = window.URL.createObjectURL(file); //转链接
  13352. this.userbackImg = files;
  13353. const params = new FormData(); // 声明formData数据类型
  13354. params.append("multipartFile", file);
  13355. params.append("type", "image");
  13356. this.$api.letter.uploadFile(params).then(res => {
  13357. if (res.code == "200") {
  13358. let type = "D0" + this.userIndex;
  13359. if (
  13360. this["imageList" + this.userIndex].some(v => v.imageType == type)
  13361. ) {
  13362. this["imageList" + this.userIndex].map(val => {
  13363. if (val.imageType == type) {
  13364. val.imageId = res.data.id;
  13365. }
  13366. });
  13367. } else {
  13368. this["imageList" + this.userIndex].push({
  13369. imageId: res.data.id,
  13370. imageType: type
  13371. });
  13372. }
  13373. this[type + "File"] = file;
  13374. } else {
  13375. this.$message({ message: res.msg, type: "warning" });
  13376. }
  13377. });
  13378. },
  13379. businessChange(file) {
  13380. let size = file.size / 1024 / 1024 < 5;
  13381. const isJPG =
  13382. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  13383. if (!size) {
  13384. this.$message.error("上传图片大小不能超过 5MB!");
  13385. return false;
  13386. }
  13387. if (!isJPG) {
  13388. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  13389. return false;
  13390. }
  13391. var file = file.raw;
  13392. let files = window.URL.createObjectURL(file); //转链接
  13393. this.businessImg = files;
  13394. const params = new FormData(); // 声明formData数据类型
  13395. params.append("multipartFile", file);
  13396. params.append("type", "image");
  13397. this.$api.letter.uploadFile(params).then(res => {
  13398. if (res.code == "200") {
  13399. let type = "Y0" + this.userIndex;
  13400. if (
  13401. this["imageList" + this.userIndex].some(v => v.imageType == type)
  13402. ) {
  13403. this["imageList" + this.userIndex].map(val => {
  13404. if (val.imageType == type) {
  13405. val.imageId = res.data.id;
  13406. }
  13407. });
  13408. } else {
  13409. this["imageList" + this.userIndex].push({
  13410. imageId: res.data.id,
  13411. imageType: type
  13412. });
  13413. }
  13414. this[type + "File"] = file;
  13415. } else {
  13416. this.$message({ message: res.msg, type: "warning" });
  13417. }
  13418. });
  13419. },
  13420. CarOCRdiscern() {
  13421. // if (!this.CarFrontFile || !this.CarBackFile) {
  13422. // this.$message.warning('请上传行驶证主页和副页')
  13423. // return
  13424. // }
  13425. //car识别
  13426. const loading = this.$loading({
  13427. lock: true,
  13428. text: "Loading",
  13429. spinner: "el-icon-loading",
  13430. background: "rgba(0, 0, 0, 0.7)"
  13431. });
  13432. const params = new FormData(); // 声明formData数据类型
  13433. params.append("image1", this.CarFrontFile);
  13434. params.append("image2", this.CarBackFile);
  13435. this.$api.letter.drivingPermit(params).then(res => {
  13436. loading.close();
  13437. if (res.msg == "201") {
  13438. this.$message({ message: "请正确选择驾驶证", type: "warning" });
  13439. }
  13440. var carInfo = res.data.carInfo;
  13441. if (carInfo.issueDate) {
  13442. carInfo.issueDate =
  13443. carInfo.issueDate.substring(0, 4) +
  13444. "-" +
  13445. carInfo.issueDate.substring(4, 6) +
  13446. "-" +
  13447. carInfo.issueDate.substring(6, 8);
  13448. }
  13449. if (carInfo.registerDate) {
  13450. carInfo.registerDate =
  13451. carInfo.registerDate.substring(0, 4) +
  13452. "-" +
  13453. carInfo.registerDate.substring(4, 6) +
  13454. "-" +
  13455. carInfo.registerDate.substring(6, 8);
  13456. }
  13457. this.carform.carOwner = carInfo.carOwner; //车主
  13458. this.carform.licenseNo = carInfo.plateNo; //车牌号
  13459. this.carform.modelcname = carInfo.backOcrID; //品牌型号
  13460. this.carform.frameNo = carInfo.vin; //车架号
  13461. this.carform.engineNo = carInfo.engine; //发动机号
  13462. this.carform.registerDate = carInfo.registerDate; //车牌号
  13463. this.carform.issueDate = carInfo.issueDate; //车牌号
  13464. this.carform.grossMass = carInfo.grossMass; //总质量
  13465. this.carform.unladenMass = carInfo.unladenMass; //整备质量
  13466. this.carform.limitLoad = carInfo.limitLoad; //核定载质量
  13467. this.carform.category = carInfo.category; //车辆类型
  13468. this.carform.carnature = carInfo.useNature; //使用性质
  13469. this.carform.vehicleUse = carInfo.vehicleUse; //车辆用途
  13470. this.carform.plateType = carInfo.plateType; //车辆种类
  13471. this.carform.approvedPassengersCapacity =
  13472. carInfo.approvedPassengersCapacity; //核定载客数
  13473. });
  13474. },
  13475. CarOCRconfirm() {
  13476. //传参 carnature
  13477. this.ownerInfo.name = this.carform.carOwner; //车主
  13478. this.carInfo.cartype = "K33";
  13479. this.carInfo.licenseNo = this.carform.licenseNo; //车牌号
  13480. this.carInfo.modelcname = this.carform.modelcname; //品牌型号
  13481. this.carInfo.vinNo = this.carform.frameNo; //车架号
  13482. this.carInfo.frameNo = this.carform.frameNo; //车架号
  13483. this.carInfo.engineNo = this.carform.engineNo; //发动机号
  13484. this.carInfo.seatCount = this.carform.approvedPassengersCapacity; //核定载客数
  13485. this.carInfo.vehicleweight = this.carform.grossMass; //总质量
  13486. this.carInfo.completeKerbMass = this.carform.unladenMass; //整备质量
  13487. this.carInfo.limitLoad = this.carform.limitLoad; //核定载质量
  13488. this.carInfo.cartype = this.carform.category; //车辆类型
  13489. this.carInfo.carnature = this.carform.carnature
  13490. ? this.carform.carnature
  13491. : "02"; //使用性质
  13492. this.carInfo.vehicleUse = this.carform.vehicleUse
  13493. ? this.carform.vehicleUse
  13494. : "05"; //车辆用途
  13495. this.carInfo.cimodelclass = this.carform.plateType; //车辆种类
  13496. if (this.timeformat(this.carform.registerDate) != "NaN-NaN-NaN") {
  13497. this.carInfo.registerDate = this.carform.registerDate; //车牌号
  13498. }
  13499. if (this.timeformat(this.carform.issueDate) != "NaN-NaN-NaN") {
  13500. this.carInfo.issueDate = this.carform.issueDate; //车牌号
  13501. }
  13502. if (this.carform.registerDate.length < 10) {
  13503. this.$message.warning("检查注册日期");
  13504. return;
  13505. }
  13506. if (this.carform.issueDate.length < 10) {
  13507. this.$message.warning("检查发证日期");
  13508. return;
  13509. }
  13510. this.uploadcardialogVisible = false;
  13511. },
  13512. handleRemove(e) {
  13513. //删除图片
  13514. this[e] = "";
  13515. switch (this.userIndex) {
  13516. case 0:
  13517. this.carfrontImg = "";
  13518. this.carbackImg = "";
  13519. this.CarFrontFile = ""; // 行驶证正面base64
  13520. this.CarBackFile = ""; // 行驶证背面base64
  13521. break;
  13522. case 2:
  13523. this.userfrontImg = "";
  13524. this.userbackImg = "";
  13525. this.businessImg = "";
  13526. this.C02File = ""; // 车主正面base64
  13527. this.D02File = ""; // 车主背面base64
  13528. this.Y02File = ""; // 车主营业执照
  13529. break;
  13530. case 3:
  13531. this.userfrontImg = "";
  13532. this.userbackImg = "";
  13533. this.businessImg = "";
  13534. this.C03File = ""; // 投保人正面base64
  13535. this.D03File = ""; // 投保人背面base64
  13536. this.Y03File = ""; // 投保人营业执照
  13537. break;
  13538. case 4:
  13539. this.userfrontImg = "";
  13540. this.userbackImg = "";
  13541. this.businessImg = "";
  13542. this.C04File = ""; // 被保人正面base64
  13543. this.D04File = ""; // 被保人背面base64
  13544. this.Y04File = ""; // 被保人营业执照
  13545. break;
  13546. default:
  13547. }
  13548. },
  13549. //预览图片
  13550. handlePictureCardPreview(img) {
  13551. this.ProViewImg = img;
  13552. this.showViewer = true;
  13553. },
  13554. // 关闭查看器
  13555. closeViewer() {
  13556. this.showViewer = false;
  13557. },
  13558. uploaduser(index) {
  13559. this.userIndex = index;
  13560. this.uploaduserdialogVisible = true;
  13561. },
  13562. userOCRdiscern() {
  13563. //OCR识别
  13564. if (this.activeName == "1") {
  13565. switch (this.userIndex) {
  13566. case 2:
  13567. // if (!this.C02File || !this.D02File) {
  13568. // this.$message.warning('请上传照片')
  13569. // return
  13570. // }
  13571. const params1 = new FormData(); // 声明formData数据类型
  13572. params1.append("image1", this.C02File);
  13573. params1.append("image2", this.D02File);
  13574. this.userOCRjoggle(params1);
  13575. break;
  13576. case 3:
  13577. // if (!this.C03File || !this.D03File) {
  13578. // this.$message.warning('请上传照片')
  13579. // return
  13580. // }
  13581. const params2 = new FormData(); // 声明formData数据类型
  13582. params2.append("image1", this.C03File);
  13583. params2.append("image2", this.D03File);
  13584. this.userOCRjoggle(params2);
  13585. break;
  13586. case 4:
  13587. // if (!this.C04File || !this.D04File) {
  13588. // this.$message.warning('请上传照片')
  13589. // return
  13590. // }
  13591. const params3 = new FormData(); // 声明formData数据类型
  13592. params3.append("image1", this.C04File);
  13593. params3.append("image2", this.D04File);
  13594. this.userOCRjoggle(params3);
  13595. break;
  13596. default:
  13597. }
  13598. } else {
  13599. switch (this.userIndex) {
  13600. case 2:
  13601. const params1 = new FormData(); // 声明formData数据类型
  13602. params1.append("image1", this.Y02File);
  13603. this.businessjoggle(params1);
  13604. break;
  13605. case 3:
  13606. const params2 = new FormData(); // 声明formData数据类型
  13607. params2.append("image1", this.Y03File);
  13608. this.businessjoggle(params2);
  13609. break;
  13610. case 4:
  13611. const params3 = new FormData(); // 声明formData数据类型
  13612. params3.append("image1", this.Y04File);
  13613. this.businessjoggle(params3);
  13614. break;
  13615. default:
  13616. }
  13617. }
  13618. },
  13619. businessjoggle(param) {
  13620. const loading = this.$loading({
  13621. lock: true,
  13622. text: "Loading",
  13623. spinner: "el-icon-loading",
  13624. background: "rgba(0, 0, 0, 0.7)"
  13625. });
  13626. this.$api.letter.businessLicense(param).then(res => {
  13627. loading.close();
  13628. if (res.msg == "201") {
  13629. this.$message({ message: "请正确选择营业执照", type: "warning" });
  13630. }
  13631. if (res.code == 200 && res.data) {
  13632. if (res.data) {
  13633. this.businessform = {
  13634. ...res.data,
  13635. name: res.data.company,
  13636. organizationCode: res.data.socialCreditCode,
  13637. addr: res.data.address,
  13638. identifyType: "10",
  13639. scope: res.data.businessScope,
  13640. legalPerson: res.data.legalRepresentative,
  13641. registeredCapital: parseInt(res.data.registeredCapital)
  13642. };
  13643. }
  13644. }
  13645. });
  13646. },
  13647. userOCRjoggle(param) {
  13648. const loading = this.$loading({
  13649. lock: true,
  13650. text: "Loading",
  13651. spinner: "el-icon-loading",
  13652. background: "rgba(0, 0, 0, 0.7)"
  13653. });
  13654. this.$api.letter.idCard(param).then(res => {
  13655. loading.close();
  13656. if (res.msg == "201") {
  13657. this.$message({ message: "请正确选择身份证", type: "warning" });
  13658. }
  13659. var customerInfo = res.data.customerInfo;
  13660. if (customerInfo) {
  13661. this.ownerInfoform.name = customerInfo.name;
  13662. if (customerInfo.identifyType == "01") {
  13663. this.ownerInfoform.identifyType = "身份证";
  13664. } else {
  13665. this.ownerInfoform.identifyType = "";
  13666. }
  13667. this.ownerInfoform.identifyNumber = customerInfo.identifyNumber;
  13668. this.ownerInfoform.gender = customerInfo.identifyIssuedCom;
  13669. this.ownerInfoform.addr = customerInfo.addr;
  13670. if (customerInfo.identifyNumber) {
  13671. this.ownerInfoform.age = getAgeByIdCard(
  13672. customerInfo.identifyNumber
  13673. );
  13674. }
  13675. if (
  13676. customerInfo.identifyValidDate ||
  13677. customerInfo.identifyValidEndDate
  13678. ) {
  13679. this.ownerInfoform.identifyValidDate =
  13680. customerInfo.identifyValidDate.substring(0, 4) +
  13681. "-" +
  13682. customerInfo.identifyValidDate.substring(4, 6) +
  13683. "-" +
  13684. customerInfo.identifyValidDate.substring(6, 8);
  13685. this.ownerInfoform.identifyValidEndDate =
  13686. customerInfo.identifyValidEndDate.substring(0, 4) +
  13687. "-" +
  13688. customerInfo.identifyValidEndDate.substring(4, 6) +
  13689. "-" +
  13690. customerInfo.identifyValidEndDate.substring(6, 8);
  13691. if (customerInfo.identifyValidEndDate == "长期") {
  13692. this.ownerInfoform.identifyValidEndDate = "9999-12-31";
  13693. }
  13694. }
  13695. // let values = addressCode(this.ownerInfoform.addr);
  13696. // this.ownerInfoform.province = codeToText[values[0]]
  13697. // this.ownerInfoform.city = codeToText[values[1]]
  13698. // this.ownerInfoform.county = codeToText[values[2]]
  13699. }
  13700. });
  13701. },
  13702. userOCRconfirm() {
  13703. //传参
  13704. if (this.activeName == "1") {
  13705. this.ownerInfoform.property = "1";
  13706. switch (this.userIndex) {
  13707. case 2:
  13708. // this.selectedOptions1 = addressCode(this.ownerInfoform.addr);
  13709. this.ownerInfo = JSON.parse(JSON.stringify(this.ownerInfoform));
  13710. break;
  13711. case 3:
  13712. // this.selectedOptions2 = addressCode(this.ownerInfoform.addr);
  13713. this.policyHolderInfo = JSON.parse(
  13714. JSON.stringify(this.ownerInfoform)
  13715. );
  13716. break;
  13717. case 4:
  13718. // this.selectedOptions3 = addressCode(this.ownerInfoform.addr);
  13719. this.insuredPersonInfo = JSON.parse(
  13720. JSON.stringify(this.ownerInfoform)
  13721. );
  13722. break;
  13723. }
  13724. } else {
  13725. this.businessform.property = "0";
  13726. switch (this.userIndex) {
  13727. case 2:
  13728. this.ownerInfo = { ...this.ownerInfo, ...this.businessform };
  13729. break;
  13730. case 3:
  13731. this.policyHolderInfo = {
  13732. ...this.policyHolderInfo,
  13733. ...this.businessform
  13734. };
  13735. break;
  13736. case 4:
  13737. this.insuredPersonInfo = {
  13738. ...this.insuredPersonInfo,
  13739. ...this.businessform
  13740. };
  13741. break;
  13742. }
  13743. }
  13744. this.uploaduserdialogVisible = false;
  13745. },
  13746. closeDialog(index) {
  13747. // 0:车辆 1:车主 2:投保人 3:被保人
  13748. switch (index) {
  13749. case 0:
  13750. this.carfrontImg = "";
  13751. this.carbackImg = "";
  13752. this.CarFrontFile = ""; // 行驶证正面base64
  13753. this.CarBackFile = ""; // 行驶证背面base64
  13754. Object.keys(this.carform).forEach(key => {
  13755. this.carform[key] = "";
  13756. });
  13757. break;
  13758. case 2:
  13759. this.userfrontImg = "";
  13760. this.userbackImg = "";
  13761. this.businessImg = "";
  13762. this.Y02File = ""; // 营业执照
  13763. this.C02File = ""; // 车主正面base64
  13764. this.D02File = ""; // 车主背面base64
  13765. Object.keys(this.ownerInfoform).forEach(key => {
  13766. this.ownerInfoform[key] = "";
  13767. });
  13768. Object.keys(this.businessform).forEach(key => {
  13769. this.businessform[key] = "";
  13770. });
  13771. break;
  13772. case 3:
  13773. this.userfrontImg = "";
  13774. this.userbackImg = "";
  13775. this.businessImg = "";
  13776. this.Y03File = ""; // 营业执照
  13777. this.C03File = ""; // 投保人正面base64
  13778. this.D03File = ""; // 投保人背面base64
  13779. Object.keys(this.ownerInfoform).forEach(key => {
  13780. this.ownerInfoform[key] = "";
  13781. });
  13782. Object.keys(this.businessform).forEach(key => {
  13783. this.businessform[key] = "";
  13784. });
  13785. break;
  13786. case 4:
  13787. this.userfrontImg = "";
  13788. this.userbackImg = "";
  13789. this.businessImg = "";
  13790. this.Y04File = ""; // 营业执照
  13791. this.C04File = ""; // 被保人正面base64
  13792. this.D04File = ""; // 被保人背面base64
  13793. Object.keys(this.ownerInfoform).forEach(key => {
  13794. this.ownerInfoform[key] = "";
  13795. });
  13796. Object.keys(this.businessform).forEach(key => {
  13797. this.businessform[key] = "";
  13798. });
  13799. break;
  13800. default:
  13801. }
  13802. },
  13803. bjdpreview(id) {
  13804. let params = {
  13805. companyId: id
  13806. };
  13807. this.$api.letter.getByCompanyId(params).then(res => {
  13808. if (res.code == "200") {
  13809. var data = res.data;
  13810. if (data.kindinfo != null) {
  13811. data.kindinfo.map((ele, index) => {
  13812. switch (ele.kindCode) {
  13813. case "A":
  13814. if (ele.amount == 1) {
  13815. ele.amount = "投保";
  13816. } else {
  13817. ele.amount = ele.amount;
  13818. }
  13819. break;
  13820. case "D4":
  13821. case "SY_FJ_YBW2":
  13822. ele.unitAmount = this.toChinesNum(ele.unitAmount);
  13823. break;
  13824. case "MJ1":
  13825. case "MJ2":
  13826. case "MJ3":
  13827. case "MJ4":
  13828. ele.deductibleRate = ele.deductibleRate + "%";
  13829. break;
  13830. default:
  13831. ele.amount = this.toChinesNum(ele.amount);
  13832. }
  13833. return ele;
  13834. });
  13835. }
  13836. data.logoImg = this.iconfftter(res.data.inscompany);
  13837. this.queryOrders = data;
  13838. this.$api.letter.getThemeByUserId(this.userId).then(res => {
  13839. if (res.code == 200) {
  13840. if (res.data[0] == "GD") {
  13841. this.$refs.quotationDialogPro.setBackupVisible(true);
  13842. } else {
  13843. this.$refs.quotationDialog.setBackupVisible(true);
  13844. }
  13845. }
  13846. });
  13847. // if (
  13848. // this.$store.state.user.roles.managementSource &&
  13849. // this.$store.state.user.roles.managementSource == "3"
  13850. // ) {
  13851. // this.$refs.quotationDialogPro.setBackupVisible(true);
  13852. // } else {
  13853. // this.$refs.quotationDialog.setBackupVisible(true);
  13854. // }
  13855. }
  13856. });
  13857. },
  13858. //返回上一步
  13859. Back() { },
  13860. carcode(id, item) {
  13861. this.$api.letter.getQrCode(id).then(res => {
  13862. if (res.code == "200") {
  13863. this.inscompany = res.data.inscompany; //保险公司
  13864. this.sumpremium = res.data.sumpremium; //总价
  13865. this.licenseNo = res.data.cPlateNo; //车牌号
  13866. this.applyName = res.data.cApplyNme; //车主
  13867. this.jqpremium = res.data.jqpremium; //交强
  13868. this.sypremium = res.data.sypremium; //商业
  13869. this.taxamount = res.data.taxamount; //车船税
  13870. this.jypremium = res.data.jypremium; //驾意险
  13871. this.jqstartdate = res.data.jqStartDate; //交强起保日期
  13872. this.systartdate = res.data.syStartDate; //商业起保日期
  13873. // this.mobile = res.data.applyinfo.mobile;//投保人手机号
  13874. let qrCodeUrl = res.data.qrCodeUrl;
  13875. this.$api.letter.getThemeByUserId(this.userId).then(res => {
  13876. if (res.code == 200) {
  13877. if (res.data[0] == "GD") {
  13878. this.codedialogVisiblePro = true;
  13879. this.qrcodeWidth = "154";
  13880. this.qrcodeHeight = "154";
  13881. } else {
  13882. this.codedialogVisible = true;
  13883. }
  13884. this.$nextTick(function () {
  13885. this.creatQrCode(qrCodeUrl);
  13886. });
  13887. }
  13888. });
  13889. } else {
  13890. this.$message({ message: res.msg, type: "warning" });
  13891. }
  13892. });
  13893. },
  13894. //同步
  13895. synchronization() {
  13896. this.systartDate = this.jqstartDate;
  13897. this.syendDate = this.jqendDate;
  13898. },
  13899. clearData() {
  13900. if (this.isLetter == "1") {
  13901. this.$router.push({ path: "/letter/letter" });
  13902. }
  13903. for (let key in this.ownerInfo) {
  13904. this.ownerInfo[key] = "";
  13905. }
  13906. for (let key in this.policyHolderInfo) {
  13907. this.policyHolderInfo[key] = "";
  13908. }
  13909. for (let key in this.insuredPersonInfo) {
  13910. this.insuredPersonInfo[key] = "";
  13911. }
  13912. this.vehicleAndVesselTaxForm = {
  13913. taxRelifFlag: "1",
  13914. taxpayerIdentifier: "01"
  13915. };
  13916. // 清空保险公司列表
  13917. this.totalCompanyList = [];
  13918. this.ownerInfo.provinceData = [];
  13919. this.insuredPersonInfo.provinceData = [];
  13920. this.policyHolderInfo.provinceData = [];
  13921. this.carInfo = JSON.parse(localStorage.getItem("carInfo"));
  13922. this.insureList = JSON.parse(localStorage.getItem("insureList"));
  13923. this.sychecked = false;
  13924. this.yonganchecked = false;
  13925. this.zhongmeichecked = false;
  13926. this.transferDateShow = false;
  13927. this.tbczcarShow = true; //投保人同车主
  13928. // this.bbczcarShow = false, //被保人同车主
  13929. this.bbtbcarShow = true; //被保人同投保人
  13930. // this.$refs.imageDialog.emptyList()
  13931. this.imageList1 = [];
  13932. this.imageList2 = [];
  13933. this.imageList3 = [];
  13934. this.imageList4 = [];
  13935. this.imageList5 = [];
  13936. this.imageList6 = [];
  13937. this.imgList1 = [];
  13938. this.imgList2 = [];
  13939. this.imgList3 = [];
  13940. this.imgList4 = [];
  13941. this.imgList5 = [];
  13942. this.imgList6 = [];
  13943. this.imgList7 = [];
  13944. this.imgList8 = [];
  13945. this.imgList9 = [];
  13946. this.imgList10 = [];
  13947. this.imgList11 = [];
  13948. this.imgList12 = [];
  13949. this.imgList13 = [];
  13950. this.imgList14 = [];
  13951. this.imgList15 = [];
  13952. this.imgList16 = [];
  13953. this.imgList17 = [];
  13954. this.imgList18 = [];
  13955. this.imgList19 = [];
  13956. this.imgList20 = [];
  13957. this.imgList21 = [];
  13958. this.imgList22 = [];
  13959. this.imgList23 = [];
  13960. this.imgList24 = [];
  13961. this.imgList25 = [];
  13962. this.imgList26 = [];
  13963. this.imgList28 = [];
  13964. this.imgList27 = [];
  13965. // 清空保险公司选中的意外险
  13966. this.zijintemplateSelection = "";
  13967. this.zhongantemplateSelection = "";
  13968. this.hengbangtemplateSelection = "";
  13969. this.taipingyangtemplateSelection = "";
  13970. this.taipingtemplateSelection = "";
  13971. this.insuranceHN = "";
  13972. this.renshoutemplateSelection = "";
  13973. this.dajiatemplateSelection = "";
  13974. this.accidentForm = {
  13975. fen: "1",
  13976. premium: 0
  13977. };
  13978. this.accidentFormHN = {
  13979. allQuantity: "1",
  13980. quantity: "1"
  13981. };
  13982. this.productId = "";
  13983. this.hengbangaccidentalDrivingVo = {};
  13984. this.taipingyangaccidentalDrivingVo = {};
  13985. this.huanongaccidentalDrivingVo = {};
  13986. this.taipingaccidentalDrivingVo = {};
  13987. this.zhongmeiaccidentalDrivingVo = {};
  13988. this.accidentalDrivingVo = [];
  13989. this.zhonganaccidentalDrivingVo = {};
  13990. this.renshouaccidentalDrivingVo = {};
  13991. this.anshengaccidentalDrivingVo = {};
  13992. this.dajiaaccidentalDrivingVo = {};
  13993. this.selectedOptions1 = [];
  13994. this.selectedOptions2 = [];
  13995. this.selectedOptions3 = [];
  13996. this.orderno = "";
  13997. this.quoteno = "";
  13998. this.lastCompanyId = "";
  13999. this.HistoryList = [];
  14000. this.jqstartDate = this.transformTime1();
  14001. this.jqendDate = this.oneYearPast1(this.jqstartDate);
  14002. this.systartDate = this.transformTime1();
  14003. this.syendDate = this.oneYearPast1(this.jqstartDate);
  14004. this.policyNumberForm = {
  14005. jqpolicyno: "",
  14006. sypolicyno: "",
  14007. jypolicyno: "",
  14008. jqpremium: "",
  14009. sypremium: "",
  14010. jypremium: "",
  14011. taxamount: "",
  14012. commissionFeevalue: "",
  14013. otherFeevalue: "",
  14014. jqSuperviseCostsProportion: "",
  14015. sySuperviseCostsProportion: "",
  14016. noSuperviseCostsProportion: "",
  14017. jqOtherCostsProportion: "",
  14018. syOtherCostsProportion: "",
  14019. noOtherCostsProportion: "",
  14020. jqReceivableProportion: "",
  14021. syReceivableProportion: "",
  14022. noReceivableProportion: "",
  14023. jqPolicyList: [],
  14024. syPolicyList: [],
  14025. jqSignList: [],
  14026. noPolicyList: [],
  14027. noCostsProportion: "",
  14028. jqCostsProportion: "",
  14029. syCostsProportion: ""
  14030. };
  14031. },
  14032. add() {
  14033. // this.obtainProtocol();
  14034. if (this.isLetter == "1") {
  14035. this.$router.push({ path: "/letter/letter" });
  14036. } else if(this.isLetter == '2') {
  14037. let url = this.$router.resolve({
  14038. path: '/task/daiKeLetter'
  14039. })
  14040. window.open(url.href, '_blank')
  14041. }
  14042. for (let key in this.ownerInfo) {
  14043. this.ownerInfo[key] = "";
  14044. }
  14045. for (let key in this.policyHolderInfo) {
  14046. this.policyHolderInfo[key] = "";
  14047. }
  14048. for (let key in this.insuredPersonInfo) {
  14049. this.insuredPersonInfo[key] = "";
  14050. }
  14051. this.vehicleAndVesselTaxForm = {
  14052. taxRelifFlag: "1",
  14053. taxpayerIdentifier: "01"
  14054. };
  14055. // 清空保险公司列表
  14056. this.totalCompanyList = [];
  14057. this.ownerInfo.provinceData = [];
  14058. this.insuredPersonInfo.provinceData = [];
  14059. this.policyHolderInfo.provinceData = [];
  14060. this.carInfo = JSON.parse(localStorage.getItem("carInfo"));
  14061. this.insureList = JSON.parse(localStorage.getItem("insureList"));
  14062. this.sychecked = false;
  14063. this.yonganchecked = false;
  14064. this.zhongmeichecked = false;
  14065. this.transferDateShow = false;
  14066. this.tbczcarShow = true; //投保人同车主
  14067. // this.bbczcarShow = false, //被保人同车主
  14068. this.bbtbcarShow = true; //被保人同投保人
  14069. // this.$refs.imageDialog.emptyList()
  14070. this.imageList1 = [];
  14071. this.imageList2 = [];
  14072. this.imageList3 = [];
  14073. this.imageList4 = [];
  14074. this.imageList5 = [];
  14075. this.imageList6 = [];
  14076. this.imgList1 = [];
  14077. this.imgList2 = [];
  14078. this.imgList3 = [];
  14079. this.imgList4 = [];
  14080. this.imgList5 = [];
  14081. this.imgList6 = [];
  14082. this.imgList7 = [];
  14083. this.imgList8 = [];
  14084. this.imgList9 = [];
  14085. this.imgList10 = [];
  14086. this.imgList11 = [];
  14087. this.imgList12 = [];
  14088. this.imgList13 = [];
  14089. this.imgList14 = [];
  14090. this.imgList15 = [];
  14091. this.imgList16 = [];
  14092. this.imgList17 = [];
  14093. this.imgList18 = [];
  14094. this.imgList19 = [];
  14095. this.imgList20 = [];
  14096. this.imgList21 = [];
  14097. this.imgList22 = [];
  14098. this.imgList23 = [];
  14099. this.imgList24 = [];
  14100. this.imgList25 = [];
  14101. this.imgList26 = [];
  14102. this.imgList28 = [];
  14103. this.imgList27 = [];
  14104. // 清空保险公司选中的意外险
  14105. this.zijintemplateSelection = "";
  14106. this.zhongantemplateSelection = "";
  14107. this.hengbangtemplateSelection = "";
  14108. this.taipingyangtemplateSelection = "";
  14109. this.taipingtemplateSelection = "";
  14110. this.insuranceHN = "";
  14111. this.renshoutemplateSelection = "";
  14112. this.dajiatemplateSelection = "";
  14113. this.accidentForm = {
  14114. fen: "1",
  14115. premium: 0
  14116. };
  14117. this.accidentFormHN = {
  14118. allQuantity: "1",
  14119. quantity: "1"
  14120. };
  14121. this.productId = "";
  14122. this.hengbangaccidentalDrivingVo = {};
  14123. this.taipingyangaccidentalDrivingVo = {};
  14124. this.huanongaccidentalDrivingVo = {};
  14125. this.taipingaccidentalDrivingVo = {};
  14126. this.zhongmeiaccidentalDrivingVo = {};
  14127. this.accidentalDrivingVo = [];
  14128. this.zhonganaccidentalDrivingVo = {};
  14129. this.renshouaccidentalDrivingVo = {};
  14130. this.anshengaccidentalDrivingVo = {};
  14131. this.dajiaaccidentalDrivingVo = {};
  14132. this.selectedOptions1 = [];
  14133. this.selectedOptions2 = [];
  14134. this.selectedOptions3 = [];
  14135. this.orderno = "";
  14136. this.quoteno = "";
  14137. this.lastCompanyId = "";
  14138. this.HistoryList = [];
  14139. this.jqstartDate = this.transformTime1();
  14140. this.jqendDate = this.oneYearPast1(this.jqstartDate);
  14141. this.systartDate = this.transformTime1();
  14142. this.syendDate = this.oneYearPast1(this.jqstartDate);
  14143. this.policyNumberForm = {
  14144. jqpolicyno: "",
  14145. sypolicyno: "",
  14146. jypolicyno: "",
  14147. jqpremium: "",
  14148. sypremium: "",
  14149. jypremium: "",
  14150. taxamount: "",
  14151. commissionFeevalue: "",
  14152. otherFeevalue: "",
  14153. jqSuperviseCostsProportion: "",
  14154. sySuperviseCostsProportion: "",
  14155. noSuperviseCostsProportion: "",
  14156. jqOtherCostsProportion: "",
  14157. syOtherCostsProportion: "",
  14158. noOtherCostsProportion: "",
  14159. jqReceivableProportion: "",
  14160. syReceivableProportion: "",
  14161. noReceivableProportion: "",
  14162. jqPolicyList: [],
  14163. syPolicyList: [],
  14164. jqSignList: [],
  14165. noPolicyList: [],
  14166. noCostsProportion: "",
  14167. jqCostsProportion: "",
  14168. syCostsProportion: ""
  14169. };
  14170. },
  14171. toChinesNum(num) {
  14172. if (num.toString().length == 4) {
  14173. let overQian = Math.floor(num / 1000);
  14174. let result = overQian + "千";
  14175. return result;
  14176. } else {
  14177. let overWan = Math.floor(num / 10000);
  14178. let result = overWan + "万";
  14179. return result;
  14180. }
  14181. },
  14182. reportDrop(event) {
  14183. event.preventDefault();
  14184. event.stopPropagation();
  14185. },
  14186. tabLiScroll(id, idx) {
  14187. this.tabLiIndex = idx;
  14188. document.getElementById(id).scrollIntoView({ behavior: "smooth" });
  14189. },
  14190. handleScroll(id) {
  14191. document.getElementById(id).scrollIntoView({ behavior: "smooth" });
  14192. }
  14193. }
  14194. };
  14195. </script>
  14196. <style>
  14197. /* .customNotifyClass {
  14198. word-break: break-all;
  14199. width: 600px;
  14200. } */
  14201. .interestList{
  14202. margin-top: 10px;
  14203. border: 1px solid #ccc;
  14204. padding: 0 10px;
  14205. border-radius: 4px;
  14206. .interestItem{
  14207. margin: 6px 0;
  14208. padding: 4px 8px;
  14209. text-align: center;
  14210. }
  14211. .active{
  14212. background: #F0F0F0;
  14213. }
  14214. }
  14215. </style>
  14216. <style lang="scss" scoped>
  14217. .el-row {
  14218. display: flex;
  14219. flex-wrap: wrap;
  14220. align-content: flex-start;
  14221. }
  14222. // .marginL {
  14223. // margin-left: 10px;
  14224. // }
  14225. .el-notification {
  14226. width: 600px;
  14227. }
  14228. .styleB .el-upload--picture-card {
  14229. // display: none;
  14230. opacity: 0;
  14231. }
  14232. .ORcodebody {
  14233. height: auto;
  14234. background-color: #fff;
  14235. //background: url(../../../assets/image/group.png) #fff;
  14236. padding: 16px;
  14237. }
  14238. .csstool {
  14239. font-weight: 600;
  14240. color: #606266;
  14241. font-size: 14px;
  14242. margin: 0 20px;
  14243. span {
  14244. margin-right: 5px;
  14245. }
  14246. }
  14247. .ORcode {
  14248. width: 100%;
  14249. height: auto;
  14250. display: flex;
  14251. justify-content: center;
  14252. align-items: center;
  14253. padding: 30px;
  14254. box-sizing: border-box;
  14255. &>div {
  14256. width: 176px;
  14257. height: 176px;
  14258. border: 1px solid var(--themeColor);
  14259. border-radius: 5px;
  14260. }
  14261. }
  14262. .ORtitle {
  14263. width: 100%;
  14264. padding-bottom: 20px;
  14265. box-sizing: border-box;
  14266. &>div {
  14267. width: 100%;
  14268. margin: 10px 0;
  14269. font-size: 14px;
  14270. &>span {
  14271. &:nth-child(1) {
  14272. color: #868b98;
  14273. text-align: end;
  14274. width: 150px;
  14275. }
  14276. &:nth-child(2) {
  14277. color: #333333;
  14278. }
  14279. }
  14280. }
  14281. }
  14282. .Risk {
  14283. width: 100%;
  14284. height: auto;
  14285. display: flex;
  14286. flex-direction: column;
  14287. align-items: center;
  14288. font-size: 12px;
  14289. }
  14290. .dis {
  14291. display: flex;
  14292. }
  14293. .align {
  14294. align-items: center;
  14295. }
  14296. .jus {
  14297. justify-content: space-between;
  14298. }
  14299. .shangyexian {
  14300. padding-left: 100px;
  14301. }
  14302. .headertotal {
  14303. padding: 30px;
  14304. }
  14305. .my-label {
  14306. background: #e1f3d8;
  14307. }
  14308. .my-content {
  14309. background: #fde2e2;
  14310. color: aqua;
  14311. }
  14312. .el-button--mini {
  14313. padding: 5px;
  14314. }
  14315. #qqq {
  14316. background-color: #111;
  14317. width: 300px;
  14318. height: 300px;
  14319. margin: 0 auto;
  14320. position: relative;
  14321. }
  14322. #qrCode {
  14323. display: inline-block;
  14324. margin: 0 auto;
  14325. position: relative;
  14326. top: 15%;
  14327. img {
  14328. width: 200px;
  14329. height: 200px;
  14330. background-color: #fff;
  14331. padding: 6px;
  14332. }
  14333. }
  14334. .code {
  14335. box-sizing: border-box;
  14336. display: flex;
  14337. flex-direction: column;
  14338. justify-content: space-between;
  14339. align-items: center;
  14340. &>span {
  14341. margin-bottom: 10px;
  14342. }
  14343. }
  14344. .code_name {
  14345. width: 350px;
  14346. display: flex;
  14347. justify-content: space-between;
  14348. align-items: center;
  14349. font-weight: bold;
  14350. &>span {
  14351. &:nth-child(1) {
  14352. color: #979797;
  14353. width: 120px;
  14354. text-align: right;
  14355. }
  14356. &:nth-child(2) {
  14357. color: #2d2d2d;
  14358. width: 120px;
  14359. text-align: left;
  14360. }
  14361. }
  14362. }
  14363. .header {
  14364. font-size: 18px;
  14365. font-weight: bold;
  14366. }
  14367. .body {
  14368. border-top: none;
  14369. padding-bottom: 100px;
  14370. box-sizing: border-box;
  14371. }
  14372. .u-f-ac {
  14373. -webkit-box-align: center;
  14374. align-items: center;
  14375. padding: 10px;
  14376. }
  14377. .bodyTitle {
  14378. height: 45px;
  14379. background: #f3f3f3;
  14380. border: 1px solid #dddddd;
  14381. line-height: 45px;
  14382. padding: 0 20px;
  14383. box-sizing: border-box;
  14384. }
  14385. .start {
  14386. justify-content: flex-start;
  14387. }
  14388. .end {
  14389. justify-content: flex-end;
  14390. }
  14391. .descriptions {
  14392. padding: 20px;
  14393. box-sizing: border-box;
  14394. display: flex;
  14395. flex-direction: column;
  14396. }
  14397. .bodys {
  14398. display: flex;
  14399. justify-content: space-between;
  14400. align-items: center;
  14401. flex-wrap: wrap;
  14402. }
  14403. .bodys1 {
  14404. display: flex;
  14405. justify-content: center;
  14406. align-items: center;
  14407. flex-wrap: wrap;
  14408. }
  14409. .widths {
  14410. width: 230px;
  14411. }
  14412. .widths1 {
  14413. width: 300px;
  14414. }
  14415. .back {
  14416. color: #333333;
  14417. // font-weight: 700;
  14418. }
  14419. .home {
  14420. // padding-left: 10px;
  14421. box-sizing: border-box;
  14422. padding-bottom: 10px;
  14423. border-bottom: 1px solid #eef1f6;
  14424. &>span {
  14425. margin-right: 10px;
  14426. }
  14427. }
  14428. .border-red {
  14429. border: 1px solid #ff0606;
  14430. }
  14431. .border-blue {
  14432. border: 1px solid #0634ff;
  14433. }
  14434. .hovers {
  14435. margin: 20px 0;
  14436. cursor: pointer;
  14437. padding: 10px 0;
  14438. box-sizing: border-box;
  14439. box-shadow: 0 2px 8px 0 rgba(231, 163, 36, 0.205);
  14440. border-radius: 8px;
  14441. .offer-time {
  14442. margin: 20px 0 0px 100px;
  14443. padding: 10px;
  14444. background: rgba(45, 77, 137, 0.06);
  14445. &>span {
  14446. margin: 0 10px;
  14447. }
  14448. }
  14449. }
  14450. /* 内容待定 */
  14451. .coll {
  14452. font-size: 14px;
  14453. }
  14454. .display {
  14455. display: flex;
  14456. justify-content: center;
  14457. align-items: center;
  14458. box-sizing: border-box;
  14459. }
  14460. .black {
  14461. color: #000;
  14462. }
  14463. .gray {
  14464. color: #999;
  14465. }
  14466. .OCR {
  14467. font-weight: bold;
  14468. color: #333;
  14469. margin: 20px;
  14470. }
  14471. .slot {
  14472. position: absolute;
  14473. width: 100%;
  14474. height: 100%;
  14475. left: 0;
  14476. top: 0;
  14477. cursor: default;
  14478. text-align: center;
  14479. color: #fff;
  14480. opacity: 0;
  14481. font-size: 20px;
  14482. background-color: rgba(0, 0, 0, 0.5);
  14483. transition: opacity 0.3s;
  14484. display: flex;
  14485. justify-content: center;
  14486. align-items: center;
  14487. &>i {
  14488. margin: 10px;
  14489. color: #fff;
  14490. font-size: 30px;
  14491. font-weight: bold;
  14492. cursor: pointer;
  14493. }
  14494. &:hover {
  14495. opacity: 1;
  14496. }
  14497. }
  14498. .companyhead {
  14499. width: 100%;
  14500. margin: 0 auto;
  14501. padding: 15px 10px;
  14502. color: #333;
  14503. font-weight: bold;
  14504. font-size: 14px;
  14505. background-color: rgba(0, 89, 255, 0.1);
  14506. }
  14507. .position-left {
  14508. width: calc(100% - 220px);
  14509. }
  14510. .position-collapse-left {
  14511. width: calc(100% - 80px);
  14512. }
  14513. .footer {
  14514. position: fixed;
  14515. bottom: 0;
  14516. right: 0;
  14517. background-color: #fff;
  14518. z-index: 9;
  14519. padding: 20px;
  14520. box-sizing: border-box;
  14521. box-shadow: 0 0 1px 0 #ccc;
  14522. transition: all 0.1s, box-shadow 0.5s;
  14523. &.shadow {
  14524. box-shadow: 0 -10px 10px -10px #ccc;
  14525. }
  14526. }
  14527. .Enclosure {
  14528. width: 100%;
  14529. background-color: #fff;
  14530. padding: 20px;
  14531. box-sizing: border-box;
  14532. margin-bottom: 15px;
  14533. border-radius: 6px;
  14534. border: 1px solid #ebeef5;
  14535. transition: all 0.2s ease-in-out;
  14536. box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
  14537. }
  14538. .Enclosure:hover {
  14539. box-shadow: 0 0 10px 0 #d42427;
  14540. }
  14541. .icon-img {
  14542. display: block;
  14543. width: 30px;
  14544. height: 30px;
  14545. }
  14546. .Anchor-link {
  14547. width: 40px;
  14548. background-color: #fff;
  14549. box-shadow: #ccc 0 0px 3px 0;
  14550. border-radius: 6px;
  14551. position: fixed;
  14552. top: 50%;
  14553. right: 0;
  14554. z-index: 99;
  14555. div {
  14556. margin: 5px;
  14557. border-bottom: 1px solid #f2f2f2;
  14558. cursor: pointer;
  14559. display: block;
  14560. }
  14561. }
  14562. .color {
  14563. padding-top: 150px;
  14564. margin-top: -150px;
  14565. }
  14566. .more {
  14567. width: 100%;
  14568. padding: 20px;
  14569. box-sizing: border-box;
  14570. }
  14571. .more-title {
  14572. padding: 15px 10px;
  14573. background-color: #f7f7f9;
  14574. // border-bottom: 1px solid #e3e3e3;
  14575. font-size: 14px;
  14576. }
  14577. .more-data {
  14578. padding: 10px;
  14579. border-bottom: 1px solid #f2f2f2;
  14580. color: #333;
  14581. font-size: 14px;
  14582. }
  14583. .Driving-risk {
  14584. padding-left: 100px;
  14585. // padding-top:20px
  14586. }
  14587. .checkbox {
  14588. transform: scale(1.2);
  14589. margin-right: 20px;
  14590. line-height: 32px;
  14591. }
  14592. .insure-long-term {
  14593. display: inline-flex;
  14594. padding-left: 8px;
  14595. padding-right: 8px;
  14596. background: var(--themeColor);
  14597. color: #fff;
  14598. font-size: 12px;
  14599. margin-left: -5px;
  14600. border-radius: 0px 5px 5px 0px;
  14601. cursor: pointer;
  14602. }
  14603. .textareaSty {
  14604. width: 160px;
  14605. height: 210px;
  14606. border: 1px solid #d2d2d2;
  14607. border-radius: 4px;
  14608. img {
  14609. width: 50px;
  14610. height: 50px;
  14611. }
  14612. }
  14613. .image-title {
  14614. width: 100px;
  14615. height: 30px;
  14616. color: #fff;
  14617. text-align: center;
  14618. line-height: 30px;
  14619. font-weight: bold;
  14620. margin-bottom: 15px;
  14621. background: #fc4a1a;
  14622. background: #f2994a;
  14623. /* fallback for old browsers */
  14624. background: -webkit-linear-gradient(to left, #f2c94c, #f2994a);
  14625. /* Chrome 10-25, Safari 5.1-6 */
  14626. background: linear-gradient(to left, #f2c94c, #f2994a);
  14627. /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
  14628. }
  14629. .aaa {
  14630. /deep/ {
  14631. margin-bottom: 20px;
  14632. margin-right: 30px;
  14633. span {
  14634. display: inline-block;
  14635. margin-bottom: 10px;
  14636. }
  14637. .el-upload .el-upload-dragger {
  14638. width: 180px;
  14639. height: 120px;
  14640. border: 1px dashed #c0ccda;
  14641. padding: 0;
  14642. }
  14643. .el-upload-list--picture-card .el-upload-list__item {
  14644. width: 180px;
  14645. height: 120px;
  14646. }
  14647. .el-upload-list__item:first-child {
  14648. margin-top: 0;
  14649. }
  14650. .el-upload--picture-card {
  14651. width: 180px;
  14652. height: 120px;
  14653. }
  14654. .el-upload-list__item {
  14655. width: 180px;
  14656. height: 120px;
  14657. margin: 0 !important;
  14658. display: block !important;
  14659. }
  14660. .el-upload-list--picture-card .el-upload-list__item-thumbnail {
  14661. width: 180px;
  14662. height: 120px;
  14663. }
  14664. }
  14665. }
  14666. .jyxStyle>span {
  14667. display: inline-block;
  14668. text-align: center;
  14669. }
  14670. .tab-style {
  14671. width: 120px;
  14672. li {
  14673. text-align: right;
  14674. padding-right: 20px;
  14675. line-height: 40px;
  14676. cursor: pointer;
  14677. box-sizing: border-box;
  14678. border-right: 1px solid #e2e5eb;
  14679. }
  14680. li:focus {
  14681. background: rgba(212, 36, 38, 0.1);
  14682. border-right: 2px solid var(--themeColor);
  14683. color: var(--themeColor);
  14684. }
  14685. }
  14686. .tabLi-style {
  14687. background: rgba(212, 36, 38, 0.1);
  14688. border-right: 2px solid var(--themeColor);
  14689. color: var(--themeColor);
  14690. }
  14691. .scan-code {
  14692. div {
  14693. margin-top: 10px;
  14694. }
  14695. }
  14696. /* 清除图片上传动画bug */
  14697. /deep/ {
  14698. .proSaomazhifucodeClass .el-dialog__header {
  14699. background: rgba(45, 77, 137, 0.1);
  14700. font-weight: bold;
  14701. }
  14702. .proSaomazhifucodeClass .el-dialog__footer {
  14703. border-top: 1px solid #eef1f6;
  14704. }
  14705. .el-upload-list__item {
  14706. transition: none !important;
  14707. }
  14708. .el-checkbox__input {
  14709. &.is-checked {
  14710. .el-checkbox__inner {
  14711. background-color: #d42426;
  14712. border-color: #d42426;
  14713. }
  14714. }
  14715. }
  14716. .el-checkbox__inner {
  14717. border: 1px solid var(--themeColor);
  14718. &:hover {
  14719. border-color: var(--themeColorHover);
  14720. }
  14721. &:focus {
  14722. border-color: var(--themeColor);
  14723. }
  14724. }
  14725. .el-upload .el-upload-dragger {
  14726. height: 250px;
  14727. width: 400px;
  14728. border: 1px dashed #ced4da;
  14729. }
  14730. // .el-button--warning {
  14731. // color: #fff;
  14732. // background-color: #D42426;
  14733. // border-color: #D42426;
  14734. // &:hover {
  14735. // color: #fff;
  14736. // background-color: #ee6f00ce;
  14737. // border-color: #ee6f00ce;
  14738. // }
  14739. // }
  14740. .el-descriptions-item__label {
  14741. &:not(.is-bordered-label) {
  14742. color: #333;
  14743. }
  14744. }
  14745. // .el-radio__input.is-checked + .el-radio__label {
  14746. // color: #ff7000;
  14747. // }
  14748. // .el-radio__input.is-checked .el-radio__inner {
  14749. // border-color: #ff7000;
  14750. // background: #ff7000;
  14751. // }
  14752. // .el-radio__inner {
  14753. // &:hover {
  14754. // border-color: #ff7000;
  14755. // }
  14756. // }
  14757. // .el-input--small .el-icon-date {
  14758. // color: #ee6f00ce;
  14759. // }
  14760. .el-select {
  14761. width: 100%;
  14762. }
  14763. .el-date-editor.el-input {
  14764. width: 100%;
  14765. }
  14766. .el-cascader--small {
  14767. width: 100%;
  14768. }
  14769. .styleB {
  14770. height: 128px;
  14771. }
  14772. .styleB .el-upload--picture-card {
  14773. display: none;
  14774. }
  14775. .saomazhifucodeClass .el-dialog__body,
  14776. .saomazhifucodeClass .el-dialog__header,
  14777. .saomazhifucodeClass .el-dialog__footer {
  14778. padding: 0;
  14779. background: #f4e9e9;
  14780. }
  14781. .saomazhifucodeClass .el-dialog__body {
  14782. padding: 15px;
  14783. }
  14784. .saomazhifucodeClass .el-dialog__footer {
  14785. background: #f4e9e9;
  14786. padding-bottom: 15px;
  14787. }
  14788. .saomazhifucodeClass .el-dialog__headerbtn {
  14789. margin-top: 10px;
  14790. }
  14791. .zmDriving {
  14792. thead .el-table-column--selection .cell {
  14793. display: none !important;
  14794. }
  14795. }
  14796. .line_style {
  14797. margin-top: 20px;
  14798. }
  14799. .el-input-group__append {
  14800. vertical-align: baseline;
  14801. border-color: #d42426;
  14802. background: #d42426;
  14803. color: #fff;
  14804. }
  14805. .pinganTable .el-table__header-wrapper .el-checkbox {
  14806. display: none;
  14807. }
  14808. }
  14809. </style>
  14810. <style lang="scss" scoped>
  14811. .company-checked {
  14812. background: rgba(45, 77, 137, 0.15);
  14813. padding: 12px 20px;
  14814. box-sizing: border-box;
  14815. margin-top: 10px;
  14816. font-size: 13px;
  14817. color: #333;
  14818. line-height: 24px;
  14819. overflow-x: auto;
  14820. .width1280 {
  14821. min-width: 1576px;
  14822. }
  14823. .bg-white {
  14824. background: #fff;
  14825. padding: 10px 12px;
  14826. border-radius: 4px;
  14827. width: 100%;
  14828. }
  14829. .flex-1 {
  14830. flex: 1;
  14831. }
  14832. .w-60 {
  14833. box-sizing: border-box;
  14834. width: 60px;
  14835. text-align: center;
  14836. border-left: 1px solid #fce5bd;
  14837. }
  14838. .w-50 {
  14839. box-sizing: border-box;
  14840. width: 60px;
  14841. text-align: center;
  14842. border-left: 1px solid #fce5bd;
  14843. }
  14844. .card-bg {
  14845. background: #fff;
  14846. padding: 10px;
  14847. display: flex;
  14848. }
  14849. .card-xianzhong {
  14850. border: 1px solid #2ab79e;
  14851. flex: 1;
  14852. background: rgba(42, 183, 158, 0.15);
  14853. border-radius: 0;
  14854. text-align: center;
  14855. color: #2ab79e;
  14856. // border: 10px solid #FFF;
  14857. font-size: 15px;
  14858. padding: 0 18px;
  14859. display: flex;
  14860. flex-direction: column;
  14861. justify-content: center;
  14862. .card-btn {
  14863. margin-top: 20px;
  14864. border-radius: 2px;
  14865. border: 1px solid #2ab79e;
  14866. background: #fff;
  14867. padding: 4px 8px;
  14868. font-size: 16px;
  14869. font-weight: 600;
  14870. }
  14871. }
  14872. .card-table {
  14873. margin-top: 12px;
  14874. .table-title {
  14875. color: #333;
  14876. width: 58px;
  14877. font-size: 14px;
  14878. }
  14879. .table-list {
  14880. flex: 1;
  14881. .table-list-title {
  14882. background: #fdedc2;
  14883. border: 1px solid #fce5bd;
  14884. color: #333;
  14885. line-height: 28px;
  14886. padding-left: 12px;
  14887. display: flex;
  14888. }
  14889. .table-list-content {
  14890. line-height: 28px;
  14891. padding-left: 12px;
  14892. display: flex;
  14893. align-items: center;
  14894. border: 1px solid #fdedc2;
  14895. border-top: none;
  14896. background: #fff;
  14897. img {
  14898. width: 14px;
  14899. height: 14px;
  14900. transform: translateY(2px);
  14901. }
  14902. span {
  14903. margin-left: 8px;
  14904. font-size: 14px;
  14905. }
  14906. }
  14907. }
  14908. }
  14909. .card-mingxi {
  14910. border: 1px solid #fd9a25;
  14911. flex: 1;
  14912. background: rgba(253, 154, 37, 0.15);
  14913. padding: 8px 12px;
  14914. font-size: 13px;
  14915. .card-mingxi-title {
  14916. color: #fd9a25;
  14917. font-size: 15px;
  14918. span {
  14919. color: #fff;
  14920. background: linear-gradient(90deg, #ff981f 0%, #ff5c00 100%);
  14921. padding: 4px 8px;
  14922. border-radius: 2px;
  14923. }
  14924. }
  14925. }
  14926. .fuwu {
  14927. background: #e9f1ff;
  14928. border: 1px solid #315ba9;
  14929. .card-mingxi-title {
  14930. color: #315ba9;
  14931. }
  14932. .table-list-title {
  14933. background: #c1daff !important;
  14934. border: 1px solid #c1daff !important;
  14935. }
  14936. .table-list-content {
  14937. border-color: #c1daff !important;
  14938. }
  14939. .w-50 {
  14940. border-color: #afccfa !important;
  14941. }
  14942. .flex-1 {
  14943. border-right: 1px solid #afccfa;
  14944. }
  14945. .w-55 {
  14946. border-left: none !important;
  14947. }
  14948. }
  14949. .baoxian {
  14950. padding: 10px;
  14951. border: 1px solid rgba(45, 77, 137, 0.5);
  14952. // background: #F2F4F8;
  14953. background: #f3f3f3;
  14954. display: flex;
  14955. flex-direction: column;
  14956. .card-mingxi-title {
  14957. color: #333;
  14958. display: flex;
  14959. }
  14960. .table-list-title {
  14961. background: #dcdce8 !important;
  14962. }
  14963. .table-list-title,
  14964. .table-list-content {
  14965. padding-left: 0 !important;
  14966. text-align: center;
  14967. border-color: #dcdce8 !important;
  14968. }
  14969. .table-list-title {
  14970. padding-left: 0 !important;
  14971. text-align: center;
  14972. border: 1px solid #dcdce8 !important;
  14973. }
  14974. .flex-1 {
  14975. border-left: 1px solid #dcdce8;
  14976. }
  14977. .w-40 {
  14978. box-sizing: border-box;
  14979. width: 50px;
  14980. text-align: center;
  14981. }
  14982. }
  14983. .youhui {
  14984. background: #feeeec;
  14985. border: 1px solid #ed5626;
  14986. .card-mingxi-title {
  14987. color: #ed5626;
  14988. }
  14989. .table-list-title {
  14990. background: #ffd2c8 !important;
  14991. border: 1px solid #ffd2c8 !important;
  14992. }
  14993. .table-list-content {
  14994. border-color: #ffd2c8 !important;
  14995. padding-left: 0 !important;
  14996. }
  14997. .table-list-line {
  14998. border-bottom: 1px solid #ffd2c8;
  14999. border-right: 1px solid #ffd2c8;
  15000. padding-left: 6px;
  15001. }
  15002. .table-list-line-last {
  15003. border-bottom: none !important;
  15004. }
  15005. .w-60 {
  15006. width: 70px !important;
  15007. border-color: #fabdae !important;
  15008. }
  15009. .w-66 {
  15010. border-left: none !important;
  15011. }
  15012. }
  15013. .el-popover {
  15014. margin-right: 20px;
  15015. padding: 0 !important;
  15016. }
  15017. .gray-style {
  15018. border: 1px solid #333333;
  15019. border-radius: 2px;
  15020. color: #333;
  15021. text-align: center;
  15022. line-height: 24px;
  15023. box-sizing: border-box;
  15024. padding: 4px 8px;
  15025. margin-right: 10px;
  15026. opacity: 0.65;
  15027. // transition: all ease .3s;
  15028. img {
  15029. margin-bottom: -4px;
  15030. }
  15031. &:hover {
  15032. opacity: 1;
  15033. }
  15034. }
  15035. .juse-style {
  15036. color: #fff;
  15037. background: linear-gradient(90deg, #ff981f 0%, #ff5c00 100%);
  15038. padding: 4px 8px;
  15039. border-radius: 2px;
  15040. }
  15041. .blue-style {
  15042. // background: #2D4D89;
  15043. background: linear-gradient(270deg, #0052ff 0%, #6899ff 100%);
  15044. // border: 1px solid #2D4D89;
  15045. border: none;
  15046. color: #fff;
  15047. border-radius: 2px;
  15048. padding: 4px 8px;
  15049. text-align: center;
  15050. line-height: 24px;
  15051. box-sizing: border-box;
  15052. opacity: 1;
  15053. position: relative;
  15054. // ::after {
  15055. // content: '✔';
  15056. // color: red;
  15057. // position: absolute;
  15058. // bottom: 0;
  15059. // right: 0;
  15060. // width: 4px;
  15061. // height: 4px;
  15062. // }
  15063. }
  15064. .blue-text {
  15065. color: #2d4d89;
  15066. }
  15067. .left-title {
  15068. font-size: 14px;
  15069. margin-bottom: 12px;
  15070. }
  15071. .blue-button {
  15072. background: #2d4d89;
  15073. color: #fff;
  15074. padding: 4px 8px;
  15075. line-height: 24px;
  15076. border: 1px solid #2d4d89;
  15077. border-radius: 2px;
  15078. }
  15079. .company-checked-card {
  15080. background: #fff;
  15081. padding: 12px;
  15082. margin-top: 12px;
  15083. >div {
  15084. display: flex;
  15085. margin: 10px;
  15086. }
  15087. .checked-card-title {
  15088. width: 60px;
  15089. }
  15090. span {
  15091. margin-right: 20px;
  15092. }
  15093. }
  15094. .company-checked-right {
  15095. padding: 0 12px;
  15096. color: #333;
  15097. line-height: 22px;
  15098. font-size: 14px;
  15099. position: relative;
  15100. .btn-list {
  15101. display: flex;
  15102. justify-content: right;
  15103. align-items: center;
  15104. span {
  15105. margin: 0 10px;
  15106. color: #2d4d89;
  15107. font-size: 12px;
  15108. }
  15109. }
  15110. }
  15111. }
  15112. .typedialog-style {
  15113. .typedialog-title {
  15114. font-size: 15px;
  15115. line-height: 30px;
  15116. font-weight: 700;
  15117. margin: 10px 0;
  15118. color: #000;
  15119. }
  15120. >>>.table-header {
  15121. background: #f7f7f9;
  15122. color: #333333;
  15123. }
  15124. .el-checkbox-group {
  15125. font-size: 16px;
  15126. color: #333;
  15127. margin-bottom: 20px;
  15128. }
  15129. .more-data-left {
  15130. border: 1px solid #f5f5f8;
  15131. line-height: 48px;
  15132. padding: 0 20px;
  15133. border-top: none;
  15134. position: relative;
  15135. .zhuxian {
  15136. position: absolute;
  15137. top: 0;
  15138. right: 0;
  15139. padding: 4px 12px;
  15140. color: #fff;
  15141. background: #ed9e23;
  15142. font-size: 13px;
  15143. line-height: 12px;
  15144. }
  15145. }
  15146. .more-data-right {
  15147. border: 1px solid #f5f5f8;
  15148. line-height: 48px;
  15149. padding: 0 20px;
  15150. border-top: none;
  15151. border-left: none;
  15152. }
  15153. >>>.is-checked,
  15154. >>>.is-indeterminate {
  15155. .el-checkbox__inner {
  15156. background: #2d4d89 !important;
  15157. border-color: #2d4d89 !important;
  15158. }
  15159. .el-checkbox__label {
  15160. color: #2d4d89;
  15161. }
  15162. }
  15163. .opacity1 {
  15164. opacity: 1;
  15165. }
  15166. .opacity0 {
  15167. opacity: 0.65;
  15168. }
  15169. .jiayi-style {
  15170. font-size: 13px;
  15171. text-align: center;
  15172. .el-col {
  15173. border: 1px solid #2d4d89;
  15174. margin: 0 1px;
  15175. background: rgba(45, 77, 137, 0.05);
  15176. }
  15177. .jiayi-style-title {
  15178. background: #2d4d89;
  15179. color: #fff;
  15180. line-height: 40px;
  15181. }
  15182. .jiayi-style-line {
  15183. color: #333;
  15184. padding: 16px 20px;
  15185. }
  15186. }
  15187. }
  15188. .typedialog-style1 {
  15189. background: rgba(42, 183, 158, 0.15);
  15190. padding: 20px;
  15191. margin-bottom: 20px;
  15192. border-radius: 10px;
  15193. }
  15194. .typedialog-style2 {
  15195. background: rgba(253, 154, 37, 0.15);
  15196. padding: 20px;
  15197. margin-bottom: 20px;
  15198. border-radius: 10px;
  15199. }
  15200. .typedialog-style3 {
  15201. background: #e9f1ff;
  15202. padding: 20px;
  15203. border-radius: 10px;
  15204. }
  15205. .addyiwai {
  15206. >>>.el-input-group__append,
  15207. >>>.el-input-group__prepend {
  15208. padding: 0 10px;
  15209. }
  15210. >>>.el-dialog__body {
  15211. padding: 24px;
  15212. background: #f2f2f2;
  15213. }
  15214. .addyiwai-title {
  15215. color: #262626;
  15216. font-size: 16px;
  15217. line-height: 24px;
  15218. margin-right: 10px;
  15219. }
  15220. .addyiwai-title-btn {
  15221. background: #eaedf1;
  15222. box-shadow: 0px 2px 0px 0px rgba(0, 0, 0, 0.02);
  15223. border-radius: 2px 2px 2px 2px;
  15224. border: 1px solid #d9d9d9;
  15225. font-size: 14px;
  15226. color: #2d4d89;
  15227. padding: 4px 10px;
  15228. cursor: pointer;
  15229. }
  15230. .el-select {
  15231. width: 200px;
  15232. }
  15233. }
  15234. .teYuedialog-style {
  15235. >>>.el-dialog__body {
  15236. padding: 10px 20px;
  15237. }
  15238. >>>.el-input__inner:focus {
  15239. border-color: #f96646;
  15240. }
  15241. >>>.el-input-group__append,
  15242. .el-input-group__prepend,
  15243. >>>.el-button--primary,
  15244. .el-button--primary:focus {
  15245. border-color: #f96646;
  15246. background: linear-gradient(90deg, #f6734a 0%, #f14b3a 100%);
  15247. color: #fff;
  15248. }
  15249. >>>.is-checked,
  15250. >>>.is-indeterminate {
  15251. .el-checkbox__inner {
  15252. background: #f96646 !important;
  15253. border-color: #f96646 !important;
  15254. }
  15255. .el-checkbox__label {
  15256. color: #f96646;
  15257. }
  15258. }
  15259. >>>.table-header {
  15260. background: #f7f7f9;
  15261. color: #333333;
  15262. }
  15263. .table-title {
  15264. font-size: 12px;
  15265. color: #333;
  15266. line-height: 20px;
  15267. padding: 2px 20px;
  15268. }
  15269. .dialog-footer {
  15270. display: flex;
  15271. align-items: center;
  15272. >span {
  15273. color: #333;
  15274. font-size: 13px;
  15275. }
  15276. }
  15277. }
  15278. .red-btn {
  15279. >>>.el-input-group__append {
  15280. border-color: #d42426;
  15281. background: #d42426;
  15282. }
  15283. >>>.el-input__prefix {
  15284. color: #d42426;
  15285. }
  15286. .insure-long-term {
  15287. position: relative;
  15288. top: 1px;
  15289. }
  15290. >>>.input {
  15291. border-radius: 4px 0 0 4px;
  15292. }
  15293. }
  15294. .synchronous {
  15295. width: 75px;
  15296. height: 45px;
  15297. line-height: 45px;
  15298. color: #fff;
  15299. position: relative;
  15300. img {
  15301. position: absolute;
  15302. top: 0;
  15303. left: 0;
  15304. width: 75px;
  15305. height: 45px;
  15306. z-index: 0;
  15307. }
  15308. >div {
  15309. width: 75px;
  15310. height: 45px;
  15311. line-height: 45px;
  15312. color: #fff;
  15313. cursor: pointer;
  15314. position: relative;
  15315. text-align: center;
  15316. font-size: 14px;
  15317. }
  15318. }
  15319. .bxgs-list {
  15320. position: relative;
  15321. .baofeijisuan {
  15322. position: absolute;
  15323. right: 5.333%;
  15324. top: 0;
  15325. // border: 1px solid rgb(26, 77, 219);
  15326. // color: rgb(26, 77, 219);
  15327. .btn{
  15328. background: linear-gradient(270deg, #0052ff 0%, #6899ff 100%);
  15329. border-radius: 4px;
  15330. color: #fff;
  15331. font-size: 14px;
  15332. line-height: 20px;
  15333. padding: 4px 8px;
  15334. font-weight: 700;
  15335. margin-right: 10px;
  15336. }
  15337. }
  15338. }
  15339. .coefficient {
  15340. width: 100px;
  15341. >>>.el-input__inner {
  15342. border: none;
  15343. }
  15344. }
  15345. .loader {
  15346. /* Wave text loader made by: csozi | Website: english.csozi.hu*/
  15347. height: 30px;
  15348. .text {
  15349. margin: 0;
  15350. line-height: 24px;
  15351. color: red;
  15352. font-weight: bolder;
  15353. background: -webkit-linear-gradient(45deg,
  15354. orange,
  15355. orangered);
  15356. /* Chrome, Safari */
  15357. background: linear-gradient(45deg, orange, orangered);
  15358. /* Standard syntax */
  15359. -webkit-background-clip: text;
  15360. /* Chrome, Safari */
  15361. background-clip: text;
  15362. -webkit-text-fill-color: transparent;
  15363. /* Chrome, Safari */
  15364. color: transparent;
  15365. /* Standard syntax (currently not supported by browsers) */
  15366. font-family: "'Gill Sans', 'Gill Sans MT', 'Calibri', 'Trebuchet MS', sans-serif'";
  15367. }
  15368. @keyframes letter {
  15369. 0% {
  15370. font-size: 14px;
  15371. }
  15372. 50% {
  15373. font-size: 15px;
  15374. }
  15375. 100% {
  15376. font-size: 14px;
  15377. }
  15378. }
  15379. .letter {
  15380. animation: letter 1s infinite;
  15381. }
  15382. .letter1 {
  15383. animation-delay: 0s;
  15384. }
  15385. .letter2 {
  15386. animation-delay: -0.9s;
  15387. }
  15388. .letter3 {
  15389. animation-delay: -0.8s;
  15390. }
  15391. .letter4 {
  15392. animation-delay: -0.7s;
  15393. }
  15394. .letter5 {
  15395. animation-delay: -0.6s;
  15396. }
  15397. .letter6 {
  15398. animation-delay: -0.5s;
  15399. }
  15400. .letter7 {
  15401. animation-delay: -0.4s;
  15402. }
  15403. .letter8 {
  15404. animation-delay: -0.3s;
  15405. }
  15406. .letter9 {
  15407. animation-delay: -0.2s;
  15408. }
  15409. .letter10 {
  15410. animation-delay: -0.1s;
  15411. }
  15412. }
  15413. .xianbie {
  15414. // border: 5px dashed #D42426;
  15415. background: #d4242734;
  15416. .home {
  15417. border-bottom: none !important;
  15418. }
  15419. }
  15420. .mini-input {
  15421. >>>.el-input__inner {
  15422. padding: 0 4px !important;
  15423. text-align: center;
  15424. }
  15425. }
  15426. .QRCode {
  15427. position: relative;
  15428. width: 200px;
  15429. height: 200px;
  15430. overflow: hidden;
  15431. margin: 0 auto;
  15432. }
  15433. </style>