KtLetter1.vue 560 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767
  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" v-for="(domain, index) in attributionform.configure" :key="domain.index">
  62. <el-form-item :label="domain.label" :prop="'configure.' + index + '.value'" :rules="{
  63. required: true,
  64. message: domain.label + '不能为空',
  65. trigger: 'blur',
  66. }">
  67. <el-input v-model="domain.value" :type="domain.type"></el-input>
  68. </el-form-item>
  69. </el-col>
  70. </el-row>
  71. </el-form>
  72. </div>
  73. <div class="Enclosure flex f-c back">
  74. <div class="home flex j-s a-c">
  75. <div class="flex j-s a-c color" id="Car">
  76. <img src="../../../../src/icon/车辆信息.png" alt class="icon-img" />
  77. <span style="margin-left: 10px">车辆信息</span>
  78. </div>
  79. <el-button size="small" type="primary" @click="uploadcardialogVisible = true">
  80. <i class="el-icon-camera-solid" style="margin-right: 1px"></i>
  81. 证件识别
  82. </el-button>
  83. </div>
  84. <el-form class="demo-ruleForm" :model="carInfo" ref="carInfo" :rules="rules" label-width="130px" size="small"
  85. label-position="top" style="margin-top: 15px">
  86. <el-row :gutter="colgutter">
  87. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  88. <el-form-item label="车牌" :prop="licenseplate ? 'licenseNo' : ''">
  89. <div style="display: flex">
  90. <el-input style="width: 75%; margin-right: 13px" v-model="carInfo.licenseNo" placeholder="请输入车牌号"
  91. :disabled="!licenseplate" @blur="getCompanyList">
  92. <el-button slot="append" type="primary" icon="el-icon-search" @click="toCheckLicenseNo(carInfo.licenseNo)" style="color: #fff;"></el-button>
  93. </el-input>
  94. <el-checkbox v-model="licenseplate">已上牌</el-checkbox>
  95. </div>
  96. </el-form-item>
  97. </el-col>
  98. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  99. <el-form-item label="车辆识别代码" prop="frameNo" class="red-btn">
  100. <el-input placeholder="请输入车辆识别码" v-model="carInfo.frameNo" maxlength="17" type="text" show-word-limit @blur="getCompanyList">
  101. <el-button slot="append" type="primary" icon="el-icon-search" @click="toChooseVin(carInfo.frameNo)" style="color: #fff;"></el-button>
  102. </el-input>
  103. </el-form-item>
  104. </el-col>
  105. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  106. <el-form-item label="品牌型号" prop="modelcname" class="red-btn">
  107. <el-input v-model="carInfo.modelcname" placeholder="请输入品牌型号" type="text" @blur="getCompanyList">
  108. <el-button slot="append" icon="el-icon-search" type="primary"
  109. @click="toChooseVehicleType(carInfo.modelcname)" style="color: #fff;"></el-button>
  110. </el-input>
  111. </el-form-item>
  112. </el-col>
  113. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  114. <el-form-item label="发动机号" prop="engineNo">
  115. <el-input v-model="carInfo.engineNo" placeholder="请输入发动机号" @blur="getCompanyList"></el-input>
  116. </el-form-item>
  117. </el-col>
  118. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  119. <el-form-item label="年款" prop="caryear">
  120. <el-input onkeyup="value=value.replace(/\D/g,'')" @blur="getCompanyList" v-model="carInfo.caryear" placeholder="请输入年款"></el-input>
  121. </el-form-item>
  122. </el-col>
  123. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  124. <el-form-item label="座位数" prop="seatCount">
  125. <el-input onkeyup="value=value.replace(/\D/g,'')" v-model="carInfo.seatCount" placeholder="请输入座位数" @blur="getCompanyList">
  126. <el-button slot="append">座</el-button>
  127. </el-input>
  128. </el-form-item>
  129. </el-col>
  130. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  131. <el-form-item label="整备质量" prop="completeKerbMass">
  132. <el-input v-model="carInfo.completeKerbMass" placeholder="请输入整备质量" @blur="getCompanyList">
  133. <el-button slot="append">千克(KG)</el-button>
  134. </el-input>
  135. </el-form-item>
  136. </el-col>
  137. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  138. <el-form-item label="核定载质量" prop="limitLoad">
  139. <el-input v-model="carInfo.limitLoad" placeholder="请输入核定载质量">
  140. <el-button slot="append">千克(KG)</el-button>
  141. </el-input>
  142. </el-form-item>
  143. </el-col>
  144. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  145. <el-form-item label="排量" prop="enginedesc">
  146. <el-input v-model="carInfo.enginedesc" placeholder="请输入排量" @blur="getCompanyList">
  147. <el-button slot="append">升(L)</el-button>
  148. </el-input>
  149. </el-form-item>
  150. </el-col>
  151. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  152. <el-form-item label="功率" prop="powerScale">
  153. <el-input v-model="carInfo.powerScale" placeholder="请输入功率" @blur="getCompanyList">
  154. <el-button slot="append">千瓦(KW)</el-button>
  155. </el-input>
  156. </el-form-item>
  157. </el-col>
  158. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  159. <el-form-item label="新车购置价" prop="purchasePrice">
  160. <el-input onkeyup="value=value.replace(/\D/g,'')" v-model="carInfo.purchasePrice" placeholder="请输入新车购置价" @blur="getCompanyList">
  161. <el-button slot="append">元</el-button>
  162. </el-input>
  163. </el-form-item>
  164. </el-col>
  165. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  166. <el-form-item label="使用性质" prop="carnature">
  167. <el-select v-model="carInfo.carnature" placeholder="请选择使用性质" @change="natureFun" @blur="getCompanyList">
  168. <el-option :label="item.dictTag" :value="item.dictValue"
  169. v-for="(item, index) in natureOfVehicleUseoptions" :key="index"></el-option>
  170. </el-select>
  171. </el-form-item>
  172. </el-col>
  173. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  174. <el-form-item label="车辆用途" prop="vehicleUse">
  175. <el-select v-if="carInfo.carnature == '02'" v-model="carInfo.vehicleUse" placeholder="请选择使车辆用途" @blur="getCompanyList">
  176. <el-option :label="item.dictTag" :value="item.dictValue"
  177. v-for="(item, index) in outOfBusinessVehicleUseoptions" :key="index"></el-option>
  178. </el-select>
  179. <el-select v-if="carInfo.carnature == '01'" v-model="carInfo.vehicleUse" placeholder="请选择使车辆用途" @blur="getCompanyList">
  180. <el-option :label="item.dictTag" :value="item.dictValue"
  181. v-for="(item, index) in businessVehicleUseoptions" :key="index"></el-option>
  182. </el-select>
  183. </el-form-item>
  184. </el-col>
  185. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  186. <el-form-item label="车辆类型" prop="cartype">
  187. <el-select v-model="carInfo.cartype" placeholder="请选择车辆种类" filterable clearable @blur="getCompanyList">
  188. <el-option :label="item.dictValue + item.dictTag" :value="item.dictValue"
  189. v-for="(item, index) in trafficManagementVehicleTypeoptions" :key="index"></el-option>
  190. </el-select>
  191. </el-form-item>
  192. </el-col>
  193. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  194. <el-form-item label="车辆种类" prop="cimodelclass">
  195. <el-select v-model="carInfo.cimodelclass" placeholder="请选择车辆种类" clearable @blur="getCompanyList">
  196. <el-option :label="item.dictTag" :value="item.dictValue" v-for="(item, index) in vehicleTypeoptions"
  197. :key="index"></el-option>
  198. </el-select>
  199. </el-form-item>
  200. </el-col>
  201. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  202. <el-form-item label="能源种类" prop="energyType">
  203. <el-select v-model="carInfo.energyType" placeholder="请选择能源种类" @blur="getCompanyList">
  204. <el-option :label="item.dictTag" :value="item.dictValue" v-for="(item, index) in energyTypeoptions"
  205. :key="index"></el-option>
  206. </el-select>
  207. </el-form-item>
  208. </el-col>
  209. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  210. <el-form-item label="注册日期" prop="registerDate" class="red-btn">
  211. <el-date-picker v-dateFormat v-model="carInfo.registerDate" :picker-options="pickerOptions" @blur="getCompanyList"
  212. value-format="yyyy-MM-dd" type="date" placeholder="选择注册日期" placement="bottom-start"></el-date-picker>
  213. </el-form-item>
  214. </el-col>
  215. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  216. <el-form-item label="发证日期" prop="issueDate" class="red-btn" @blur="getCompanyList">
  217. <el-date-picker v-dateFormat v-model="carInfo.issueDate" :picker-options="issueDateOptions" type="date"
  218. placeholder="选择发证日期" value-format="yyyy-MM-dd" placement="bottom-start"></el-date-picker>
  219. </el-form-item>
  220. </el-col>
  221. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl" v-if="transferDateShow">
  222. <el-form-item label="转移登记日期" prop="transferDate">
  223. <el-date-picker v-dateFormat v-model="carInfo.transferDate" :picker-options="pickerOptions" type="date" @blur="getCompanyList"
  224. placeholder="选择日期" value-format="yyyy-MM-dd" placement="bottom-start"></el-date-picker>
  225. </el-form-item>
  226. </el-col>
  227. </el-row>
  228. </el-form>
  229. </div>
  230. <div class="Enclosure flex f-c back">
  231. <div class="home flex j-s a-c">
  232. <div class="flex j-s a-c color" id="CheZhu">
  233. <img src="../../../../src/icon/车主信息.png" alt class="icon-img" />
  234. <span style="margin-left: 10px">车主信息</span>
  235. </div>
  236. <el-button size="small" type="primary" @click="uploaduser(2)">
  237. <i class="el-icon-camera-solid" style="margin-right: 4px"></i>证件识别
  238. </el-button>
  239. </div>
  240. <el-form class="demo-ruleForm" :model="ownerInfo" ref="ownerInfo" :rules="rules" label-width="130px" size="small"
  241. style="margin-top: 15px" label-position="top">
  242. <el-row :gutter="colgutter">
  243. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  244. <el-form-item label="车主姓名" prop="name">
  245. <el-input v-model="ownerInfo.name" placeholder="请输入车主姓名" @blur="getCompanyList"></el-input>
  246. </el-form-item>
  247. </el-col>
  248. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  249. <el-form-item label="证件类型" prop="identifyType">
  250. <el-select v-model="ownerInfo.identifyType" placeholder="身份证" @blur="getCompanyList" disabled>
  251. <el-option label="身份证" value="01"></el-option>
  252. </el-select>
  253. </el-form-item>
  254. </el-col>
  255. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  256. <el-form-item label="证件号码" prop="identifyNumber">
  257. <el-input v-model="ownerInfo.identifyNumber" placeholder="请输入证件号码" type="text" maxlength="18"
  258. show-word-limit @blur="identifyblur('ownerInfo'); getCompanyList"></el-input>
  259. </el-form-item>
  260. </el-col>
  261. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  262. <el-form-item label="年龄" prop="age">
  263. <el-input v-model="ownerInfo.age" placeholder="请输入年龄" type="text" disabled @blur="getCompanyList"></el-input>
  264. </el-form-item>
  265. </el-col>
  266. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  267. <el-form-item label="性别" prop="gender">
  268. <el-select @change="genderChange" v-model="ownerInfo.gender" placeholder="请选择性别" @blur="getCompanyList">
  269. <el-option label="男" value="男"></el-option>
  270. <el-option label="女" value="女"></el-option>
  271. </el-select>
  272. </el-form-item>
  273. </el-col>
  274. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  275. <el-form-item label="车主手机号" prop="mobile">
  276. <el-input v-model="ownerInfo.mobile" placeholder="请输入车主手机号" type="text" maxlength="11" @blur="getCompanyList"
  277. @paste.native="handlePaste($event, 'ownerInfo')" show-word-limit></el-input>
  278. </el-form-item>
  279. </el-col>
  280. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  281. <el-form-item label="地址" prop="addr">
  282. <el-input v-model="ownerInfo.addr" placeholder="请输入地址" type="text" @blur="getCompanyList"></el-input>
  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. <el-form-item label="有效期起期" prop="identifyValidDate">
  287. <el-date-picker v-dateFormat v-model="ownerInfo.identifyValidDate" value-format="yyyy-MM-dd" @blur="getCompanyList"
  288. :picker-options="pickerOptions" type="date" placeholder="选择注册日期"
  289. placement="bottom-start"></el-date-picker>
  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. <el-form-item label="有效期止期" prop="identifyValidEndDate" class="red-btn">
  294. <el-date-picker v-dateFormat v-model="ownerInfo.identifyValidEndDate" type="date" value-format="yyyy-MM-dd" @blur="getCompanyList"
  295. placeholder="选择有效期" placement="bottom-start" style="width: calc(100% - 40px)"></el-date-picker>
  296. <div class="insure-long-term" @click="insureLongterm('ownerInfo')">
  297. 长期
  298. </div>
  299. </el-form-item>
  300. </el-col>
  301. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  302. <el-form-item label="电子邮箱" prop="email">
  303. <el-input v-model="ownerInfo.email" placeholder="请输入电子邮箱"></el-input>
  304. </el-form-item>
  305. </el-col>
  306. <!-- <el-col :xs="xscell" :sm="smcell" :md="mdcell" :lg="lgcell" :xl="xlcell" v-if="iscCrownerShow">
  307. <el-form-item label="省市区:">
  308. <el-cascader v-model="ownerInfo.provinceData" :options="areaOption" :props="{ value: 'code',label: 'name',children: 'sub'}"></el-cascader>
  309. </el-form-item>
  310. </el-col>-->
  311. </el-row>
  312. </el-form>
  313. </div>
  314. <div class="Enclosure flex f-c back">
  315. <div class="home flex j-s a-c">
  316. <div class="flex j-s a-c" id="toubaor">
  317. <img src="../../../../src/icon/投保人信息.png" alt class="icon-img" />
  318. <span style="margin-left: 10px">投保人信息</span>
  319. </div>
  320. <div class="flex a-c j-c">
  321. <div style="font-size: 12px; margin: 0 10px">
  322. 同车主
  323. <el-switch v-model="tbczcarShow" active-color="#D42426" @change="tbczcarShowChange()"></el-switch>
  324. </div>
  325. <el-button size="small" type="primary" @click="uploaduser(3)">
  326. <i class="el-icon-camera-solid" style="margin-right: 4px"></i>
  327. 证件识别
  328. </el-button>
  329. </div>
  330. </div>
  331. <el-form v-show="!tbczcarShow" class="demo-ruleForm" :model="policyHolderInfo" ref="policyHolderInfo" :rules="rules"
  332. label-width="130px" size="small " style="margin-top: 15px" label-position="top">
  333. <el-row :gutter="colgutter">
  334. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  335. <el-form-item label="投保人姓名" prop="name">
  336. <el-input v-model="policyHolderInfo.name" placeholder="请输入投保人姓名" @blur="getCompanyList"></el-input>
  337. </el-form-item>
  338. </el-col>
  339. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  340. <el-form-item label="证件类型" prop="identifyType">
  341. <el-select v-model="policyHolderInfo.identifyType" placeholder="身份证" disabled @blur="getCompanyList">
  342. <el-option label="身份证" value="01"></el-option>
  343. </el-select>
  344. </el-form-item>
  345. </el-col>
  346. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  347. <el-form-item label="证件号码" prop="identifyNumber">
  348. <el-input v-model="policyHolderInfo.identifyNumber" placeholder="请输入证件号码" type="text" maxlength="18"
  349. show-word-limit @blur="identifyblur('policyHolderInfo'); getCompanyList"></el-input>
  350. </el-form-item>
  351. </el-col>
  352. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  353. <el-form-item label="年龄" prop="age">
  354. <el-input v-model="policyHolderInfo.age" placeholder="请输入年龄" type="text" disabled @blur="getCompanyList"></el-input>
  355. </el-form-item>
  356. </el-col>
  357. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  358. <el-form-item label="性别" prop="gender">
  359. <el-select v-model="policyHolderInfo.gender" placeholder="请选择性别" @blur="getCompanyList">
  360. <el-option label="男" value="男"></el-option>
  361. <el-option label="女" value="女"></el-option>
  362. </el-select>
  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. <el-form-item label="投保人手机号" prop="mobile">
  367. <el-input v-model="policyHolderInfo.mobile" placeholder="请输入投保人手机号" maxlength="11" type="text" @blur="getCompanyList"
  368. @paste.native="handlePaste($event, 'policyHolderInfo')" show-word-limit></el-input>
  369. </el-form-item>
  370. </el-col>
  371. <!-- <el-col :xs="xscell" :sm="smcell" :md="mdcell" :lg="lgcell" :xl="xlcell">
  372. <el-form-item label="省市区:">
  373. <el-cascader v-model="selectedOptions2" :options="areaOptions"
  374. @change="event => areahandleChange(event, 'policyHolderInfo')"></el-cascader>
  375. </el-form-item>
  376. </el-col>-->
  377. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  378. <el-form-item label="地址" prop="addr">
  379. <el-input v-model="policyHolderInfo.addr" placeholder="请输入地址" type="text" @blur="getCompanyList"></el-input>
  380. </el-form-item>
  381. </el-col>
  382. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  383. <el-form-item label="有效期起期" prop="identifyValidDate">
  384. <el-date-picker v-dateFormat v-model="policyHolderInfo.identifyValidDate" value-format="yyyy-MM-dd" @blur="getCompanyList"
  385. :picker-options="pickerOptions" type="date" placeholder="选择有效期" placement="bottom-start"></el-date-picker>
  386. </el-form-item>
  387. </el-col>
  388. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  389. <el-form-item label="有效期止期" prop="identifyValidEndDate">
  390. <el-date-picker v-dateFormat v-model="policyHolderInfo.identifyValidEndDate" type="date" @blur="getCompanyList"
  391. value-format="yyyy-MM-dd" placeholder="选择有效期" placement="bottom-start"
  392. style="width: calc(100% - 40px)"></el-date-picker>
  393. <div class="insure-long-term" @click="insureLongterm('policyHolderInfo')">
  394. 长期
  395. </div>
  396. </el-form-item>
  397. </el-col>
  398. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  399. <el-form-item label="电子邮箱" prop="email">
  400. <el-input v-model="policyHolderInfo.email" placeholder="请输入电子邮箱"></el-input>
  401. </el-form-item>
  402. </el-col>
  403. <!-- <el-col :xs="xscell" :sm="smcell" :md="mdcell" :lg="lgcell" :xl="xlcell" v-if="isApplicantShow">
  404. <el-form-item label="省市区:">
  405. <el-cascader v-model="policyHolderInfo.provinceData" :options="areaOption" :props="{ value: 'code',label: 'name',children: 'sub'}"></el-cascader>
  406. </el-form-item>
  407. </el-col>-->
  408. </el-row>
  409. </el-form>
  410. </div>
  411. <!-- 被保人信息 -->
  412. <div class="Enclosure flex f-c back">
  413. <div class="home flex j-s a-c">
  414. <div class="flex j-s a-c">
  415. <img src="../../../../src/icon/被投保人信息.png" alt class="icon-img" />
  416. <span style="margin-left: 10px">被保人信息</span>
  417. </div>
  418. <div class="flex j-s a-c">
  419. <div style="font-size: 12px; margin: 0 10px">
  420. 同投保人
  421. <el-switch v-model="bbtbcarShow" active-color="#D42426" @change="bbtbcarShowChange()"></el-switch>
  422. </div>
  423. <div style="font-size: 12px; margin: 0 10px">
  424. 同车主
  425. <el-switch v-model="bbczcarShow" active-color="#D42426" @change="bbczcarShowChange()"></el-switch>
  426. </div>
  427. <el-button size="small" type="primary" @click="uploaduser(4)">
  428. <i class="el-icon-camera-solid" style="margin-right: 4px"></i>
  429. 证件识别
  430. </el-button>
  431. </div>
  432. </div>
  433. <el-form v-show="!bbtbcarShow && !bbczcarShow" class="demo-ruleForm" :model="insuredPersonInfo"
  434. ref="insuredPersonInfo" :rules="rules" label-width="130px" size="small" style="margin-top: 15px"
  435. label-position="top">
  436. <el-row :gutter="colgutter">
  437. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  438. <el-form-item label="被保人姓名" prop="name">
  439. <el-input v-model="insuredPersonInfo.name" placeholder="请输入被保人姓名" @blur="getCompanyList"></el-input>
  440. </el-form-item>
  441. </el-col>
  442. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  443. <el-form-item label="证件类型" prop="identifyType">
  444. <el-select v-model="insuredPersonInfo.identifyType" placeholder="身份证" disabled @blur="getCompanyList">
  445. <el-option label="身份证" value="01"></el-option>
  446. </el-select>
  447. </el-form-item>
  448. </el-col>
  449. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  450. <el-form-item label="证件号码" prop="identifyNumber">
  451. <el-input v-model="insuredPersonInfo.identifyNumber" placeholder="请输入证件号码" type="text" maxlength="18"
  452. show-word-limit @blur="identifyblur('insuredPersonInfo'); getCompanyList"></el-input>
  453. </el-form-item>
  454. </el-col>
  455. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  456. <el-form-item label="年龄" prop="age">
  457. <el-input v-model="insuredPersonInfo.age" placeholder="请输入年龄" type="text" disabled @blur="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. <el-form-item label="性别" prop="gender">
  462. <el-select v-model="insuredPersonInfo.gender" placeholder="请选择性别" @blur="getCompanyList">
  463. <el-option label="男" value="男"></el-option>
  464. <el-option label="女" value="女"></el-option>
  465. </el-select>
  466. </el-form-item>
  467. </el-col>
  468. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  469. <el-form-item label="被保人手机号" prop="mobile">
  470. <el-input v-model="insuredPersonInfo.mobile" placeholder="请输入被保人手机号" maxlength="11" type="text" @blur="getCompanyList"
  471. @paste.native="handlePaste($event, 'insuredPersonInfo')" show-word-limit></el-input>
  472. </el-form-item>
  473. </el-col>
  474. <!-- <el-col :xs="xscell" :sm="smcell" :md="mdcell" :lg="lgcell" :xl="xlcell">
  475. <el-form-item label="省市区:">
  476. <el-cascader v-model="selectedOptions3" :options="areaOptions"
  477. @change="event => areahandleChange(event, 'insuredPersonInfo')"></el-cascader>
  478. </el-form-item>
  479. </el-col>-->
  480. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  481. <el-form-item label="地址" prop="addr">
  482. <el-input v-model="insuredPersonInfo.addr" placeholder="请输入地址" type="text" @blur="getCompanyList"></el-input>
  483. </el-form-item>
  484. </el-col>
  485. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  486. <el-form-item label="有效期起期" prop="identifyValidDate">
  487. <el-date-picker v-dateFormat v-model="insuredPersonInfo.identifyValidDate" value-format="yyyy-MM-dd" @blur="getCompanyList"
  488. :picker-options="pickerOptions" type="date" placeholder="选择有效期" placement="bottom-start"></el-date-picker>
  489. </el-form-item>
  490. </el-col>
  491. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  492. <el-form-item label="有效期止期" prop="identifyValidEndDate">
  493. <el-date-picker v-dateFormat v-model="insuredPersonInfo.identifyValidEndDate" type="date" @blur="getCompanyList"
  494. value-format="yyyy-MM-dd" placeholder="选择有效期" placement="bottom-start"
  495. style="width: calc(100% - 40px)"></el-date-picker>
  496. <div class="insure-long-term" @click="insureLongterm('insuredPersonInfo')">
  497. 长期
  498. </div>
  499. </el-form-item>
  500. </el-col>
  501. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  502. <el-form-item label="电子邮箱" prop="email">
  503. <el-input v-model="insuredPersonInfo.email" placeholder="请输入电子邮箱"></el-input>
  504. </el-form-item>
  505. </el-col>
  506. <!-- <el-col :xs="xscell" :sm="smcell" :md="mdcell" :lg="lgcell" :xl="xlcell" v-if="isInsuredShow">
  507. <el-form-item label="省市区:">
  508. <el-cascader v-model="insuredPersonInfo.provinceData" :options="areaOption" :props="{ value: 'code',label: 'name',children: 'sub'}"></el-cascader>
  509. </el-form-item>
  510. </el-col>-->
  511. </el-row>
  512. </el-form>
  513. </div>
  514. <!-- 车船税 -->
  515. <div class="Enclosure flex f-c back">
  516. <div class="home flex j-s a-c">
  517. <div class="flex j-s a-c color" id="insurance">
  518. <img src="../../../../src/icon/车船税.png" alt class="icon-img" />
  519. <span style="margin-left: 10px">车船税</span>
  520. </div>
  521. </div>
  522. <el-form class="demo-ruleForm" :model="vehicleAndVesselTaxForm" ref="vehicleAndVesselTaxForm" :rules="rules"
  523. label-width="160px" size="small" style="margin-top: 15px" label-position="top">
  524. <el-row :gutter="colgutter">
  525. <el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  526. <el-form-item label="纳税类型:" prop="taxRelifFlag">
  527. <el-select @change="taxRelifFlagChange" v-model="vehicleAndVesselTaxForm.taxRelifFlag" placeholder="纳税类型">
  528. <el-option v-for="(item, index) in taxRelifFlagoptions" :key="index" :label="item.dictTag"
  529. :value="item.dictValue"></el-option>
  530. </el-select>
  531. </el-form-item>
  532. </el-col>
  533. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 1" :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  534. <el-form-item label="纳税人识别号:" prop="identifyNumber">
  535. <el-input v-model="vehicleAndVesselTaxForm.identifyNumber" placeholder="请输入纳税人识别号" type="text"></el-input>
  536. </el-form-item>
  537. </el-col>
  538. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 1" :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  539. <el-form-item label="纳税人名称:" prop="taxpayerName">
  540. <el-input v-model="vehicleAndVesselTaxForm.taxpayerName" placeholder="请输入纳税人名称" type="text"></el-input>
  541. </el-form-item>
  542. </el-col>
  543. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 1" :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  544. <el-form-item label="证件类型:" prop="taxpayerIdentifier">
  545. <el-select v-model="vehicleAndVesselTaxForm.taxpayerIdentifier" placeholder="证件类型" clearable>
  546. <el-option v-for="(item, index) in taxpayerIdentifieroptions" :key="index" :label="item.dictTag"
  547. :value="item.dictValue"></el-option>
  548. </el-select>
  549. </el-form-item>
  550. </el-col>
  551. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 2 ||
  552. vehicleAndVesselTaxForm.taxRelifFlag == 3
  553. " :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  554. <el-form-item label="减免税凭证号:" prop="extendChar2">
  555. <el-input v-model="vehicleAndVesselTaxForm.extendChar2" placeholder="请输入减免税凭证号" type="text"></el-input>
  556. </el-form-item>
  557. </el-col>
  558. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 4" :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  559. <el-form-item label="完税凭证号:" prop="paidFreeCertificate">
  560. <el-input v-model="vehicleAndVesselTaxForm.paidFreeCertificate" placeholder="请输入完税凭证号"
  561. type="text"></el-input>
  562. </el-form-item>
  563. </el-col>
  564. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 2 ||
  565. vehicleAndVesselTaxForm.taxRelifFlag == 3
  566. " :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  567. <el-form-item label="减免税原因:" prop="relifReason">
  568. <el-select v-model="vehicleAndVesselTaxForm.relifReason" placeholder="减免税原因" clearable>
  569. <el-option v-for="(item, index) in relifReasonoptions" :key="index" :label="item.dictTag"
  570. :value="item.dictValue"></el-option>
  571. </el-select>
  572. </el-form-item>
  573. </el-col>
  574. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag != 1" :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  575. <el-form-item label="税务机关代码:" prop="taxComCode">
  576. <el-input v-model="vehicleAndVesselTaxForm.taxComCode" placeholder="请输入税务机关代码" type="text"></el-input>
  577. </el-form-item>
  578. </el-col>
  579. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag != 1" :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  580. <el-form-item label="税务机关名称:" prop="taxComName">
  581. <el-input v-model="vehicleAndVesselTaxForm.taxComName" placeholder="请输入税务机关名称" type="text"></el-input>
  582. </el-form-item>
  583. </el-col>
  584. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 4" :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  585. <el-form-item label="完税凭证填发日期:" prop="taxDocumentDate">
  586. <el-date-picker v-dateFormat v-model="vehicleAndVesselTaxForm.taxDocumentDate" value-format="yyyy-MM-dd"
  587. type="date" placeholder="完税凭证填发日期" placement="bottom-start"></el-date-picker>
  588. </el-form-item>
  589. </el-col>
  590. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 4" :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  591. <el-form-item label="完税凭证地区:" prop="taxPaidAreaCode">
  592. <el-select v-model="vehicleAndVesselTaxForm.taxPaidAreaCode" placeholder="完税凭证地区" clearable>
  593. <el-option v-for="(item, index) in provinceSelect" :key="index" :label="item.name"
  594. :value="item.code"></el-option>
  595. </el-select>
  596. </el-form-item>
  597. </el-col>
  598. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 3" :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl">
  599. <el-form-item label="减税比例:" prop="taxRelief">
  600. <el-input v-model="vehicleAndVesselTaxForm.taxRelief" placeholder="请输入0~1的数值" type="text"></el-input>
  601. </el-form-item>
  602. </el-col>
  603. </el-row>
  604. </el-form>
  605. </div>
  606. <!-- 险别选择 -->
  607. <div class="Enclosure flex f-c back xianbie">
  608. <div class="home flex j-s a-c back">
  609. <div class="flex j-s a-c" id="more">
  610. <img src="../../../../src/icon/险别选择.png" alt class="icon-img" />
  611. <span style="margin-left: 15px; width: 120px">险种选择</span>
  612. <!-- <el-select size="small" style="width: 70%" v-model="packageValue" placeholder="请选择套餐" @change="packageChange">
  613. <el-option v-for="item in packageOptions" :key="item.id" :label="item.title" :value="item.id"></el-option>
  614. </el-select> -->
  615. <el-radio-group v-model="productId" @change="productIdChange">
  616. <el-radio v-for="(item, index) in productList" :key="index" :label="item.code">{{ item.desc }}</el-radio>
  617. </el-radio-group>
  618. </div>
  619. </div>
  620. <!-- <div class="flex f-c more">
  621. <div class="flex j-s a-c more-title back">
  622. <div style="width: 590px; padding-left: 100px" class="flex j-s a-c">
  623. <span>险别</span>
  624. <span>保额(元)</span>
  625. </div>
  626. </div>
  627. <div class="flex a-c more-data back" v-for="(insureitem, insureindex) in insureList" :key="insureindex">
  628. <div style="width: 700px; padding-left: 100px" class="flex j-s a-c">
  629. <div style="width: auto">
  630. <span style="text-align: center">
  631. {{ insureitem.kindName }}
  632. <el-input v-show="insureitem.kindCode == 'D4' ||
  633. insureitem.kindCode == 'MJ4' ||
  634. insureitem.kindCode == 'SY_FJ_YBW2'
  635. " v-model="sumseatCount" style="width: 40px; margin: 0 5px" size="small" placeholder
  636. disabled></el-input>
  637. <span v-show="insureitem.kindCode == 'D4' ||
  638. insureitem.kindCode == 'MJ4' ||
  639. insureitem.kindCode == 'SY_FJ_YBW2'
  640. ">座</span>
  641. </span>
  642. </div>
  643. <el-select v-if="insureitem.amtList" filterable v-model="insureitem.amount" placeholder="请选择"
  644. @change="insureitemChange($event, insureitem)" size="small" style="width: 300px">
  645. <el-option :label="item.label" :value="item.value" v-for="(item, index) in insureitem.amtList"
  646. :key="index"></el-option>
  647. </el-select>
  648. <span v-else>
  649. <el-input-number size="small" style="width: 280px; margin-right: 10px" v-model="insureitem.amount"
  650. :min="0"></el-input-number>次
  651. </span>
  652. </div>
  653. </div>
  654. </div> -->
  655. </div>
  656. <!-- 投保信息 -->
  657. <div class="Enclosure flex f-c back">
  658. <div class="home flex j-s a-c">
  659. <div class="flex j-s a-c color" id="insurance">
  660. <img src="../../../../src/icon/投保信息.png" alt class="icon-img" />
  661. <span style="margin-left: 10px">投保信息</span>
  662. <el-switch style="margin: 0 10px 0 30px" @change="immediatelyChange" v-model="immediatelyValue"
  663. active-color="#D42426"></el-switch>
  664. <span style="font-weight: normal; font-size: 13px">即时投保</span>
  665. </div>
  666. </div>
  667. <el-form class="back demo-ruleForm" :inline="true" :model="Carinsurance" label-width="150px" size="small"
  668. style="margin-top: 15px" label-position="top">
  669. <div class="flex j-start a-c">
  670. <div class="flex j-c a-start">
  671. <el-checkbox class="checkbox" style="margin-right: 20px" v-model="jqchecked" disabled
  672. ></el-checkbox>
  673. <div class="flex f-c a-c">
  674. <el-form-item label="交强险起保日期" prop="identifyNumber" class="red-btn">
  675. <el-date-picker v-dateFormat value-format="yyyy-MM-dd HH:mm:ss" v-model="jqstartDate" @change="jqChange"
  676. type="datetime" placeholder="选择日期时间" placement="bottom-start"></el-date-picker>
  677. </el-form-item>
  678. <el-form-item label="交强险终保日期" prop="identifyNumber" class="red-btn">
  679. <el-date-picker v-dateFormat value-format="yyyy-MM-dd HH:mm:ss" v-model="jqendDate" type="datetime"
  680. placeholder="选择日期时间" placement="bottom-start"></el-date-picker>
  681. </el-form-item>
  682. </div>
  683. </div>
  684. <div class="synchronous" style="margin: 0 50px" @click="synchronization">
  685. <img src="@/icon/Union2.png">
  686. <div>同步</div>
  687. </div>
  688. <div class="flex j-c a-start">
  689. <el-checkbox class="checkbox" style="margin-right: 20px" v-model="sychecked" disabled
  690. @change="sycheckedChange"></el-checkbox>
  691. <div class="flex f-c a-c">
  692. <el-form-item label="商业险起保日期" prop="name" class="red-btn">
  693. <el-date-picker v-dateFormat value-format="yyyy-MM-dd HH:mm:ss" v-model="systartDate" @change="syChange"
  694. type="datetime" placeholder="选择日期时间" placement="bottom-start"></el-date-picker>
  695. </el-form-item>
  696. <el-form-item label="商业险终保日期" prop="name" class="red-btn">
  697. <el-date-picker v-dateFormat value-format="yyyy-MM-dd HH:mm:ss" v-model="syendDate" type="datetime"
  698. placeholder="选择日期时间" placement="bottom-start"></el-date-picker>
  699. </el-form-item>
  700. </div>
  701. </div>
  702. </div>
  703. </el-form>
  704. </div>
  705. <!-- 保险公司 -->
  706. <div class="Enclosure flex f-c back">
  707. <div class="home flex j-s">
  708. <div class="flex j-s a-c" id="company">
  709. <img src="../../../../src/icon/保险公司.png" alt class="icon-img" />
  710. <span style="margin-left: 10px">保险公司</span>
  711. <div class="csstool">
  712. <span>是否过户车</span>
  713. <el-switch @change="transferFlagChange" v-model="carInfo.transferFlag" active-color="#D42426"></el-switch>
  714. </div>
  715. <div class="csstool">
  716. <span>商业险是否过户</span>
  717. <el-switch v-model="carInfo.transferFlagBi" active-color="#D42426"></el-switch>
  718. </div>
  719. <div class="csstool">
  720. <span>是否脱保</span>
  721. <el-switch v-model="carInfo.outOfInsurance" active-color="#D42426"></el-switch>
  722. </div>
  723. <div class="csstool">
  724. <span>是否二手车</span>
  725. <el-switch v-model="carInfo.usedCar" active-color="#D42426"></el-switch>
  726. </div>
  727. </div>
  728. <div class="flex j-c a-c">
  729. <el-button v-show="imageUploadShow" size="small" type="primary" @click="imageUpload()">
  730. <i class="el-icon-camera-solid" style="margin-right: 4px"></i>
  731. 影像上传
  732. </el-button>
  733. </div>
  734. </div>
  735. <div>
  736. <!-- <div class="companyhead">
  737. <el-row>
  738. <el-col :span="1">
  739. <span style="font-size: 14px">选择</span>
  740. </el-col>
  741. <el-col :span="2" style="margin: 0 42px 0 35px">
  742. <span>保险公司</span>
  743. </el-col>
  744. <el-col :span="3">
  745. <span>报价协议</span>
  746. </el-col>
  747. <el-col :span="3" v-if="isLetter !== '3'">
  748. <span>报价结果</span>
  749. </el-col>
  750. <el-col :span="3">
  751. <span>交强险</span>
  752. </el-col>
  753. <el-col :span="3">
  754. <span>车船税</span>
  755. </el-col>
  756. <el-col :span="3">
  757. <span>商业险</span>
  758. </el-col>
  759. <el-col :span="2">
  760. <span>驾意险</span>
  761. </el-col>
  762. <el-col :span="2">
  763. <span>操作</span>
  764. </el-col>
  765. </el-row>
  766. </div>
  767. -->
  768. <div class="coll">
  769. <div v-loading="showLoading" class="hovers" :class="reslistitem.checked ? 'border-red' : 'border-blue'" v-for="(reslistitem, reslistindex) in totalCompanyList"
  770. :key="reslistindex">
  771. <el-row v-show="reslistitem.checked || reslistindex == 0" class="companyhead" style="margin-bottom: 20px;">
  772. <el-col :span="1">
  773. <span style="font-size: 14px">选择</span>
  774. </el-col>
  775. <el-col :span="2" style="margin: 0 42px 0 35px">
  776. <span>保险公司</span>
  777. </el-col>
  778. <el-col :span="3">
  779. <span>报价协议</span>
  780. </el-col>
  781. <el-col :span="3" v-if="isLetter !== '3'">
  782. <span>报价结果</span>
  783. </el-col>
  784. <el-col :span="3">
  785. <span>交强险</span>
  786. </el-col>
  787. <el-col :span="3">
  788. <span>车船税</span>
  789. </el-col>
  790. <el-col :span="3">
  791. <span>商业险</span>
  792. </el-col>
  793. <el-col :span="2">
  794. <span>驾意险</span>
  795. </el-col>
  796. <el-col :span="2">
  797. <span>操作</span>
  798. </el-col>
  799. </el-row>
  800. <el-row class="bxgs-list">
  801. <el-col :span="1" style="margin-left: 20px">
  802. <el-checkbox v-model="reslistitem.checked" :disabled="reslistitem.disabled" @change="(event) =>
  803. initchange(
  804. event,
  805. reslistitem.id,
  806. reslistitem.cnName,
  807. reslistindex
  808. )
  809. "></el-checkbox>
  810. </el-col>
  811. <el-col :span="2">
  812. <img :src="reslistitem.logo" alt style="
  813. width: 30px;
  814. height: 30px;
  815. vertical-align: middle;
  816. margin-left: 20px;
  817. " />
  818. <span>{{ reslistitem.namesimple }}</span>
  819. </el-col>
  820. <el-col :span="4">
  821. <el-select size="small" v-if="reslistitem.isTaxSource && reslistitem.isTaxSource == '1'
  822. " :disabled="true" placeholder="默认" style="width: 230px" v-model="isTaxSourceModel"
  823. :clearable="true"></el-select>
  824. <el-select size="small" v-else :disabled="!reslistitem.checked" v-model="reslistitem.agreementId"
  825. placeholder="请选择协议" style="width: 230px" :clearable="true" @change="(val) =>
  826. agreementChange(
  827. val,
  828. reslistitem.agreement,
  829. reslistindex,
  830. reslistitem
  831. )
  832. ">
  833. <div v-for="(
  834. agreementitem, agreementindex
  835. ) in reslistitem.agreement" :key="agreementindex">
  836. <div v-if="agreementitem.licenseNo &&
  837. agreementitem.licenseNo.length > 0 &&
  838. carInfo.licenseNo.length > 0
  839. ? agreementitem.licenseNo.includes(
  840. carInfo.licenseNo.slice(0, 2)
  841. )
  842. : 'true'
  843. ">
  844. <el-option
  845. :label="agreementitem.jobDescription ? agreementitem.businessDescription + '(' + agreementitem.jobDescription + ')' : agreementitem.businessDescription"
  846. :value="agreementitem.id" :disabled="agreementitem.disabled">{{ agreementitem.jobDescription ?
  847. agreementitem.businessDescription + '(' + agreementitem.jobDescription + ')' :
  848. agreementitem.businessDescription }}</el-option>
  849. </div>
  850. </div>
  851. </el-select>
  852. </el-col>
  853. <el-col :span="3">
  854. <div v-show="reslistitem.quoteCode == '0'">
  855. <span style="line-height: auto;">未报价</span>
  856. </div>
  857. <div class="loader" v-show="reslistitem.quoteCode == '1'">
  858. <!-- <i style="color: #d42426" class="el-icon-loading"></i> -->
  859. <p class="text">
  860. <span class="letter letter1">掌</span>
  861. <span class="letter letter2">柜</span>
  862. <span class="letter letter3">正</span>
  863. <span class="letter letter4">在</span>
  864. <span class="letter letter5">为</span>
  865. <span class="letter letter6">您</span>
  866. <span class="letter letter7">报</span>
  867. <span class="letter letter8">价</span>
  868. <span class="letter letter9">.</span>
  869. <span class="letter letter10">.</span>
  870. <span class="letter letter11">.</span>
  871. </p>
  872. </div>
  873. <div class="dis f-c" v-show="reslistitem.quoteCode == '200'">
  874. <span style="color: #d42426; font-weight: bold">
  875. ¥{{ reslistitem.result.sumPermium }}
  876. </span>
  877. <!-- <span style="font-size: 13px; color: #2d4d89" class="m-top-5">{{ reslistitem.result.feeView ? '总科技币:' : '优惠:' }}{{ reslistitem.result.sumExportFee}}</span> -->
  878. </div>
  879. </el-col>
  880. <el-col :span="3" v-show="reslistitem.quoteCode == '200'">
  881. <div class="dis f-c">
  882. <span style="color: #d42426; font-weight: bold">
  883. ¥{{ reslistitem.result.jqPremium }}
  884. </span>
  885. <!-- <span v-if="reslistitem.result.jqPremium" style="font-size: 13px; color: #2d4d89" class="m-top-5">{{ reslistitem.result.feeView ? '掌柜科技币:' : '优惠:' }}{{ reslistitem.result.jqExportFee }}</span> -->
  886. </div>
  887. </el-col>
  888. <el-col :span="3" v-show="reslistitem.quoteCode == '200'">
  889. <span style="color: #d42426; font-weight: bold">
  890. ¥{{ reslistitem.result.taxAmount }}
  891. </span>
  892. </el-col>
  893. <el-col :span="3" v-show="reslistitem.quoteCode == '200'">
  894. <div class="dis f-c">
  895. <span style="color: #d42426; font-weight: bold">
  896. ¥{{ reslistitem.result.syPremium }}
  897. </span>
  898. <!-- <span v-if="reslistitem.result.syPremium" style="font-size: 13px; color: #2d4d89" class="m-top-5">{{ reslistitem.result.feeView ? '掌柜科技币:' : '优惠:' }}{{ reslistitem.result.syExportFee }}</span> -->
  899. </div>
  900. </el-col>
  901. <el-col :span="2" v-if="reslistitem.quoteCode == '200'" style="">
  902. <div class="dis f-c">
  903. <span style="color: #d42426; font-weight: bold">
  904. {{
  905. reslistitem.result.jyPremium
  906. ? "¥" + reslistitem.result.jyPremium
  907. : "无"
  908. }}
  909. </span>
  910. <!-- <span v-if="reslistitem.result.jyPremium" style="font-size: 13px; color: #2d4d89" class="m-top-5">{{ reslistitem.result.feeView ? '掌柜科技币:' : '优惠:' }}{{ reslistitem.result.noExportFee }}</span> -->
  911. </div>
  912. </el-col>
  913. <el-col :span="24" v-show="reslistitem.quoteCode == '200' &&
  914. reslistitem.result.feeNoDescription
  915. ">
  916. <div class="flex offer-time" style="color: #d42426">
  917. <span>该车未匹配销管费用,不建议投保!</span>
  918. <el-tooltip class="item" effect="dark" content="费用匹配错误信息" placement="top">
  919. <i class="el-icon-s-goods" @click="
  920. open3(
  921. reslistitem.namesimple + '优惠信息',
  922. reslistitem.result.feeNoDescription
  923. )
  924. " style="
  925. font-size: 20px;
  926. transform: scale(0.8);
  927. vertical-align: middle;
  928. " :disabled="reslistitem.quoteCode == '200' &&
  929. reslistitem.result.feeNoDescription
  930. "></i>
  931. </el-tooltip>
  932. </div>
  933. </el-col>
  934. <el-col :span="24" v-show="reslistitem.quoteCode != '200' &&
  935. reslistitem.quoteCode != '0' &&
  936. reslistitem.quoteCode != '1'
  937. ">
  938. <div class="flex j-s offer-time" style="color: #d42426">
  939. 错误提示:
  940. {{
  941. reslistitem.msg.length > 500
  942. ? reslistitem.msg.slice(0, 500)
  943. : reslistitem.msg
  944. }}
  945. </div>
  946. </el-col>
  947. <div class="baofeijisuan" @click="handleListJisuan(reslistitem, reslistindex)">计算保费</div>
  948. </el-row>
  949. <!-- 选中-方案选择 -->
  950. <div v-show="reslistitem.checked" :gutter="20" class="company-checked">
  951. <el-row class="width1280">
  952. <el-col :span="24">
  953. <el-row type="flex" align="middle" class="left-title" v-if="reslistitem.programme">
  954. <el-col :span="2">方案选择</el-col>
  955. <div style="margin-right: 20px;" v-for="(item, index) in reslistitem.schemes" :key="index" @click="checkedPopover(reslistindex, index, item)">
  956. <el-popover placement="top-start" trigger="hover" width="660">
  957. <!-- :disabled="reslistitem.checkedProgramme == index" -->
  958. <!-- <div>弹出</div> -->
  959. <Ktletter1Popover :data="item" :programme="reslistitem.programme" :productId="productId"></Ktletter1Popover>
  960. <el-col class="gray-style" :class="reslistitem.checkedProgramme == index ? 'blue-style' : ''" slot="reference"
  961. >
  962. <!-- <i v-show="reslistitem.checkedProgramme == index" class="el-icon-circle-check"></i> -->
  963. {{ item.schemeName }}
  964. <img v-show="reslistitem.checkedProgramme == index" src="@/assets/Frame.png" />
  965. </el-col>
  966. </el-popover>
  967. </div>
  968. <div @click="checkedPopover(reslistindex, 99)" style="margin-right: 20px;" v-show="reslistitem.programme99 && reslistitem.programme99.schemeId">
  969. <el-popover placement="top-start" width="660" :disabled="reslistitem.checkedProgramme == 99" trigger="hover">
  970. <Ktletter1Popover :data="reslistitem.programme99" :programme="reslistitem.programme" :productId="productId"></Ktletter1Popover>
  971. <el-col class="gray-style" :class="reslistitem.checkedProgramme == 99 ? 'blue-style' : ''" slot="reference">
  972. <!-- <i v-show="reslistitem.checkedProgramme == 99" class="el-icon-circle-check"></i> -->
  973. 自选方案
  974. <img v-show="reslistitem.checkedProgramme == 99" src="@/assets/Frame.png" />
  975. </el-col>
  976. </el-popover>
  977. </div>
  978. <!-- <el-popover placement="top-start" width="450" style="margin-right: 20px;" trigger="hover">
  979. <Ktletter1Popover></Ktletter1Popover>
  980. <el-col class="gray-style" slot="reference">服务方案</el-col>
  981. </el-popover> -->
  982. </el-row>
  983. </el-col>
  984. <el-col :span="2" v-if="reslistitem.programme" class="card-bg">
  985. <div class="card-xianzhong">
  986. <div>已选险种</div>
  987. <div class="card-btn" v-show="reslistitem.programme.description">{{ reslistitem.programme.description }}</div>
  988. </div>
  989. </el-col>
  990. <!-- 险种明细 -->
  991. <el-col :span="8" class="card-bg" style="padding-left: 0;" v-if="reslistitem.programme && reslistitem.programme.kinds">
  992. <div class="card-mingxi">
  993. <div class="card-mingxi-title">险种明细:
  994. <span v-show="reslistitem.checkedProgramme != 99" @click="showDetailJiaYi(reslistitem, reslistindex)">查看详情</span>
  995. <span v-show="reslistitem.checkedProgramme == 99" @click="showTypeDialog(reslistitem, reslistindex)">调整险种</span>
  996. </div>
  997. <div class="card-table" v-show="reslistitem.programme.description != '单商' && reslistitem.programme.description != '单三'">
  998. <div class="table-title">交强险</div>
  999. <div class="table-list" v-if="reslistitem.programme.kinds">
  1000. <div class="table-list-title">
  1001. <div class="flex-1">产品名称</div>
  1002. </div>
  1003. <div class="table-list-content">
  1004. <div class="flex-1">
  1005. <img src="@/icon/icon-chengse.png">
  1006. <!-- <span>{{ reslistitem.programme.jqx.name }}</span> -->
  1007. <span>交通事故强制责任险</span>
  1008. </div>
  1009. </div>
  1010. </div>
  1011. </div>
  1012. <div class="card-table" v-show="reslistitem.programme.description != '单交'">
  1013. <div class="table-title">商业险</div>
  1014. <div class="table-list" v-if="reslistitem.programme && reslistitem.programme.kinds">
  1015. <div class="table-list-title">
  1016. <div class="flex-1">产品名称</div>
  1017. <div class="w-60">保额(元)</div>
  1018. </div>
  1019. <div class="table-list-content" v-for="(kinds, kindIndex) in reslistitem.programme.kinds.main" :key="kindIndex + 'main'">
  1020. <div class="flex-1">
  1021. <img src="@/icon/icon-chengse.png">
  1022. <!-- <span>{{ kinds.alias || kinds.kindName }}</span> -->
  1023. <span>{{ kinds.kindName }}</span>
  1024. </div>
  1025. <div v-if="kinds.kindCode != 'A'" class="w-60"> {{ toWan(kinds.amount) }}</div>
  1026. <div v-else class="w-60">&nbsp;</div>
  1027. </div>
  1028. <div class="table-list-content" v-for="(kinds, kindIndex) in reslistitem.programme.kinds.additional" :key="kindIndex">
  1029. <div class="flex-1">
  1030. <img src="@/icon/icon-chengse.png">
  1031. <!-- <span>{{ kinds.alias || kinds.kindName }}</span> -->
  1032. <span>{{ kinds.kindName }}</span>
  1033. </div>
  1034. <div class="w-60"> {{ toWan(kinds.amount) }}</div>
  1035. </div>
  1036. <div class="table-list-content" v-if="!reslistitem.programme.kinds.main.length && !reslistitem.programme.kinds.additional.length">暂无</div>
  1037. </div>
  1038. </div>
  1039. <div class="card-table" v-if="reslistitem.programme && reslistitem.programme.drivingList && reslistitem.programme.drivingList.length > 0">
  1040. <div class="table-title">驾意险</div>
  1041. <div class="table-list" v-if="reslistitem.programme.kinds">
  1042. <div class="table-list-title">
  1043. <div class="flex-1">产品名称</div>
  1044. <div class="w-60">份数</div>
  1045. <div class="w-60">保费</div>
  1046. </div>
  1047. <div class="table-list-content" v-for="(driving, drivingIndex) in reslistitem.programme.drivingList" :key="drivingIndex" @click="showDetailJiaYi(reslistitem, reslistindex, 'jiayi')">
  1048. <div class="flex-1">
  1049. <img src="@/icon/icon-chengse.png">
  1050. <span>
  1051. <!-- <span style="margin-right: 0;" v-if="reslistitem.cnName == 'guoRen' || reslistitem.cnName == 'ansheng'">{{ driving.select }}</span> -->
  1052. {{ driving.alias || driving.projectName }}
  1053. </span>
  1054. </div>
  1055. <div class="w-60">{{ driving.quantity }}份</div>
  1056. <div class="w-60">¥{{ Number(driving.sumPremium) * driving.quantity }}
  1057. <span v-show="reslistitem.checkedProgramme == 99"><i class="el-icon-delete" @click="deleteJiaYi(reslistindex, drivingIndex)"></i></span>
  1058. </div>
  1059. </div>
  1060. <div class="table-list-content" v-if="!reslistitem.programme.drivingList.length">暂无</div>
  1061. </div>
  1062. </div>
  1063. <div class="card-table" v-show="reslistitem.checkedProgramme == 99 && reslistitem.cnName == 'guoRen'">
  1064. <div class="table-title">其他</div>
  1065. <div class="table-list" v-if="reslistitem.programme.kinds">
  1066. <div style="color: #FD9A25;" @click="contributingGuoRen(reslistitem.agreementId, reslistindex)">选择特约</div>
  1067. <div class="table-list-title">
  1068. <div class="flex-1">特约名称</div>
  1069. </div>
  1070. <div class="table-list-content" v-for="(teyueitem, teyueindex) in reslistitem.programme.teyue" :key="teyueindex">
  1071. <div class="flex-1">
  1072. <img src="@/icon/icon-chengse.png">
  1073. {{ teyueitem.clauseName }}
  1074. </div>
  1075. </div>
  1076. <div class="table-list-content" v-if="!reslistitem.programme.kinds.main.length">暂无</div>
  1077. </div>
  1078. </div>
  1079. <div class="card-table" v-show="reslistitem.cnName == 'zijin'">
  1080. <div class="table-title">其他</div>
  1081. <div>自定义系数:
  1082. <el-input v-model="reslistitem.coefficient" size="mini" class="coefficient" placeholder="请输入"></el-input>
  1083. </div>
  1084. </div>
  1085. </div>
  1086. </el-col>
  1087. <!-- 服务明细 -->
  1088. <el-col :span="4" class="card-bg" style="padding-left: 0;" v-if="reslistitem.programme && reslistitem.programme.kinds">
  1089. <div class="card-mingxi fuwu">
  1090. <div class="card-mingxi-title">服务明细:</div>
  1091. <div class="card-table">
  1092. <div class="table-list">
  1093. <div class="table-list-title">
  1094. <div class="flex-1">增值服务</div>
  1095. <div class="w-50">次数</div>
  1096. </div>
  1097. <div class="table-list-content" v-for="(kinds, kindIndex) in reslistitem.programme.kinds.service" :key="kindIndex">
  1098. <div class="flex-1">
  1099. <img src="@/icon/icon-lanse.png">
  1100. <span style="margin-left: 0;">{{ kinds.alias || kinds.kindName }}</span>
  1101. </div>
  1102. <div class="w-50 w-55">{{ toWan(kinds.amount, 'fw') }}</div>
  1103. </div>
  1104. <div class="table-list-content" v-if="!reslistitem.programme.kinds.service.length">暂无</div>
  1105. </div>
  1106. </div>
  1107. </div>
  1108. </el-col>
  1109. <!-- 优惠明细 -->
  1110. <el-col :span="4" class="card-bg" style="padding-left: 0;" v-if="reslistitem.quoteCode == '200'">
  1111. <div class="card-mingxi youhui">
  1112. <div class="card-mingxi-title">优惠明细:</div>
  1113. <div class="card-table">
  1114. <div class="table-list">
  1115. <div class="table-list-title" style="padding-left: 0;">
  1116. <div class="w-50" style="width: 40px;">险种</div>
  1117. <div class="w-50" style="width: 50px; font-size: 10px;">优惠比例</div>
  1118. <div class="w-60" style=" font-size: 10px;">优惠金额(元)</div>
  1119. <div class="w-60" style="width: 50px; font-size: 10px;">合计优惠</div>
  1120. </div>
  1121. <div class="table-list-content" v-if="reslistitem.programme">
  1122. <div class="w-50" style="width: 40px;">
  1123. <div class="table-list-line" style="border-right: none; padding-left: 0;" v-show="reslistitem.programme.description != '单商' && reslistitem.programme.description != '单三'">
  1124. <span style="margin-left: 0; font-size: 10px;">交强险</span>
  1125. </div>
  1126. <div class="table-list-line" style="border-right: none; padding-left: 0;" v-show="reslistitem.programme.description != '单交'">
  1127. <span style="margin-left: 0; font-size: 10px;">商业险</span>
  1128. </div>
  1129. <div class="table-list-line table-list-line-last" style="border-right: none; padding-left: 0;" v-show="reslistitem.result.jyPremium">
  1130. <span style="margin-left: 0; font-size: 10px;">驾意险</span>
  1131. </div>
  1132. </div>
  1133. <div class="w-50" style="width: 50px;">
  1134. <div class="table-list-line" style="border-right: none;" v-show="reslistitem.programme.description != '单商' && reslistitem.programme.description != '单三'">
  1135. <span style="margin-left: 0;">{{ reslistitem.result.jqExportFee ? reslistitem.result.jqExportRadio : '无' }}</span>
  1136. </div>
  1137. <div class="table-list-line" style="border-right: none;" v-show="reslistitem.programme.description != '单交'">
  1138. <span style="margin-left: 0;">{{ reslistitem.result.syExportFee ? reslistitem.result.syExportRadio : '无' }}</span>
  1139. </div>
  1140. <div class="table-list-line table-list-line-last" style="border-right: none;" v-show="reslistitem.result.jyPremium">
  1141. <span style="margin-left: 0;">{{ reslistitem.result.noExportRadio }}</span>
  1142. </div>
  1143. </div>
  1144. <div class="w-60">
  1145. <div class="table-list-line" v-show="reslistitem.programme.description != '单商' && reslistitem.programme.description != '单三'">
  1146. <span style="margin-left: 0;">{{ reslistitem.result.jqExportFee ? reslistitem.result.jqExportFee : '无' }}</span>
  1147. </div>
  1148. <div class="table-list-line" v-show="reslistitem.programme.description != '单交'">
  1149. <span style="margin-left: 0;">{{ reslistitem.result.syExportFee ? reslistitem.result.syExportFee : '无' }}</span>
  1150. </div>
  1151. <div class="table-list-line table-list-line-last" v-show="reslistitem.result.jyPremium">
  1152. <span style="margin-left: 0;">{{ reslistitem.result.noExportFee ? reslistitem.result.noExportFee : '无' }}</span>
  1153. </div>
  1154. </div>
  1155. <div class="w-50 w-66"><span v-show="reslistitem.result.sumExportFee">¥</span>{{ reslistitem.result.sumExportFee }}</div>
  1156. </div>
  1157. </div>
  1158. </div>
  1159. <div class="card-mingxi-title" style="margin-top: 10px; border-top: 1px solid #fabdae;">返还测算:</div>
  1160. <div class="card-table">
  1161. <div class="table-list">
  1162. <div class="table-list-title" style="padding-left: 0;">
  1163. <div class="w-50" style="width: 40px;">险种</div>
  1164. <div class="w-50" style="width: 50px; font-size: 10px;">返还比例</div>
  1165. <div class="w-60" style=" font-size: 10px;">返还金额(元)</div>
  1166. <div class="w-60" style="width: 50px; font-size: 10px;">合计返还</div>
  1167. </div>
  1168. <div class="table-list-content" v-if="reslistitem.programme">
  1169. <div class="w-50" style="width: 40px;">
  1170. <div class="table-list-line" style="border-right: none; padding-left: 0;" v-show="reslistitem.programme.description != '单商' && reslistitem.programme.description != '单三'">
  1171. <span style="margin-left: 0; font-size: 10px;">交强险</span>
  1172. </div>
  1173. <div class="table-list-line" style="border-right: none; padding-left: 0;" v-show="reslistitem.programme.description != '单交'">
  1174. <span style="margin-left: 0; font-size: 10px;">商业险</span>
  1175. </div>
  1176. <div class="table-list-line table-list-line-last" style="border-right: none; padding-left: 0;" v-show="reslistitem.result.jyPremium">
  1177. <span style="margin-left: 0; font-size: 10px;">驾意险</span>
  1178. </div>
  1179. </div>
  1180. <div class="w-50" style="width: 50px;">
  1181. <div class="table-list-line" style="border-right: none; padding-left: 0;" v-show="reslistitem.programme.description != '单商' && reslistitem.programme.description != '单三'">
  1182. <span style="margin-left: 0;">
  1183. <el-input size="mini" style="width: 40px;" v-model="reslistitem.result.jqInput" class="mini-input"></el-input>
  1184. </span>
  1185. </div>
  1186. <div class="table-list-line" style="border-right: none; padding-left: 0;" v-show="reslistitem.programme.description != '单交'">
  1187. <span style="margin-left: 0;">
  1188. <el-input size="mini" style="width: 40px;" v-model="reslistitem.result.syInput" class="mini-input"></el-input>
  1189. </span>
  1190. </div>
  1191. <div class="table-list-line table-list-line-last" style="border-right: none; padding-left: 0;" v-show="reslistitem.result.jyPremium">
  1192. <span style="margin-left: 0;">
  1193. <el-input size="mini" style="width: 40px;" v-model="reslistitem.result.jyInput" class="mini-input"></el-input>
  1194. </span>
  1195. </div>
  1196. </div>
  1197. <div class="w-60">
  1198. <div class="table-list-line" v-show="reslistitem.programme.description != '单商' && reslistitem.programme.description != '单三'">
  1199. <span style="margin-left: 0;">{{ reslistitem.result.jqInput ? (reslistitem.result.jqPremium * (reslistitem.result.jqInput / 100)).toFixed(2) : 0 }}</span>
  1200. </div>
  1201. <div class="table-list-line" v-show="reslistitem.programme.description != '单交'">
  1202. <span style="margin-left: 0;">{{ reslistitem.result.syInput ? (reslistitem.result.syPremium * (reslistitem.result.syInput / 100)).toFixed(2) : 0 }}</span>
  1203. </div>
  1204. <div class="table-list-line table-list-line-last" v-show="reslistitem.result.jyPremium">
  1205. <span style="margin-left: 0;">{{ reslistitem.result.jyInput ? (reslistitem.result.jyPremium * (reslistitem.result.jyInput / 100)).toFixed(2) : 0 }}</span>
  1206. </div>
  1207. </div>
  1208. <div class="w-60 w-66">{{ (
  1209. (reslistitem.result.jqInput ? reslistitem.result.jqPremium * (reslistitem.result.jqInput / 100) : 0) +
  1210. (reslistitem.result.syInput ? reslistitem.result.syPremium * (reslistitem.result.syInput / 100) : 0 ) +
  1211. (reslistitem.result.jyInput ? reslistitem.result.jyPremium * (reslistitem.result.jyInput / 100) : 0)
  1212. ).toFixed(2)
  1213. }}</div>
  1214. </div>
  1215. </div>
  1216. </div>
  1217. </div>
  1218. </el-col>
  1219. <!-- 保险期限 -->
  1220. <el-col :span="6" class="card-bg" style="padding-left: 0;" v-if="reslistitem.quoteCode == '200'">
  1221. <div class="card-mingxi baoxian">
  1222. <div class="card-mingxi-title">保险期限:
  1223. <div @click="syncData(reslistitem.result)">
  1224. <el-tooltip class="item" effect="dark" content="使用此时间" placement="top">
  1225. <i style="color: red" class="el-icon-time"></i>
  1226. </el-tooltip>
  1227. </div>
  1228. </div>
  1229. <div class="card-table">
  1230. <div class="table-list">
  1231. <div class="table-list-title">
  1232. <div class="w-40">险种</div>
  1233. <div class="flex-1">起保日期</div>
  1234. <div class="flex-1">终保日期</div>
  1235. </div>
  1236. <div class="table-list-content" v-show="reslistitem.result.startDateJq">
  1237. <div class="w-40">交强险</div>
  1238. <div class="flex-1">{{ reslistitem.result.startDateJq }}</div>
  1239. <div class="flex-1">{{ reslistitem.result.endDateJq }}</div>
  1240. </div>
  1241. <div class="table-list-content" v-show="reslistitem.result.startDateSy">
  1242. <div class="w-40">商业险</div>
  1243. <div class="flex-1">{{ reslistitem.result.startDateSy }}</div>
  1244. <div class="flex-1">{{ reslistitem.result.endDateSy }}</div>
  1245. </div>
  1246. </div>
  1247. </div>
  1248. <div class="card-table">
  1249. <div class="table-list">
  1250. <div class="table-list-title">
  1251. <div class="flex-1">类型</div>
  1252. <div class="flex-1">评分</div>
  1253. </div>
  1254. <!-- <div class="table-list-content" v-show="reslistitem.result.JqExportFee">
  1255. <div class="flex-1">交强出口费用</div>
  1256. <div class="flex-1">{{ reslistitem.result.JqExportFee }}</div>
  1257. </div>
  1258. <div class="table-list-content" v-show="reslistitem.result.syExportFee">
  1259. <div class="flex-1">商业出口费用</div>
  1260. <div class="flex-1">{{ reslistitem.result.syExportFee }}</div>
  1261. </div>
  1262. <div class="table-list-content" v-show="reslistitem.result.noExportFee">
  1263. <div class="flex-1">非车出口费用</div>
  1264. <div class="flex-1">{{ reslistitem.result.noExportFee }}</div>
  1265. </div> -->
  1266. <div class="table-list-content" v-show="reslistitem.result.jqScore">
  1267. <div class="flex-1">交强类型评分:</div>
  1268. <div class="flex-1">{{ reslistitem.result.jqScore }}</div>
  1269. </div>
  1270. <div class="table-list-content" v-show="reslistitem.result.syScore">
  1271. <div class="flex-1">商业类型评分:</div>
  1272. <div class="flex-1">{{ reslistitem.result.syScore }}</div>
  1273. </div>
  1274. <div class="table-list-content" v-show="reslistitem.result.lossRation">
  1275. <div class="flex-1">总赔付率:</div>
  1276. <div class="flex-1">{{ reslistitem.result.lossRation }}</div>
  1277. </div>
  1278. <div class="table-list-content" v-show="reslistitem.result.jqLossRation">
  1279. <div class="flex-1">交强赔付率:</div>
  1280. <div class="flex-1">{{ reslistitem.result.jqLossRation }}</div>
  1281. </div>
  1282. <div class="table-list-content" v-show="reslistitem.result.syLossRation">
  1283. <div class="flex-1">商业赔付率:</div>
  1284. <div class="flex-1">{{ reslistitem.result.syLossRation }}</div>
  1285. </div>
  1286. <div class="table-list-content" v-show="reslistitem.result.totalAdjustRate">
  1287. <div class="flex-1">自主定价系数:</div>
  1288. <div class="flex-1">{{ reslistitem.result.totalAdjustRate }}</div>
  1289. </div>
  1290. <div class="table-list-content" v-show="reslistitem.result.jgAdjustRate">
  1291. <div class="flex-1">交强折扣系数:</div>
  1292. <div class="flex-1">{{ reslistitem.result.jgAdjustRate }}</div>
  1293. </div>
  1294. <div class="table-list-content" v-show="reslistitem.result.syAdjustRate">
  1295. <div class="flex-1">商业折扣系数:</div>
  1296. <div class="flex-1">{{ reslistitem.result.syAdjustRate }}</div>
  1297. </div>
  1298. <div class="table-list-content" v-show="reslistitem.result.jqRenewal">
  1299. <div class="flex-1">交强续保:</div>
  1300. <div class="flex-1">{{ reslistitem.result.jqRenewal ? reslistitem.result.jqRenewal : "无" }}</div>
  1301. </div>
  1302. <div class="table-list-content" v-show="reslistitem.result.syRenewal">
  1303. <div class="flex-1">商业续保:</div>
  1304. <div class="flex-1">{{ reslistitem.result.syRenewal ? reslistitem.result.syRenewal : "无" }}</div>
  1305. </div>
  1306. <div class="table-list-content" v-show="reslistitem.result.jqClaims">
  1307. <div class="flex-1">交强出险次数:</div>
  1308. <div class="flex-1">{{ reslistitem.result.jqClaims ? reslistitem.result.jqClaims : "无" }}</div>
  1309. </div>
  1310. <div class="table-list-content" v-show="reslistitem.result.syClaims">
  1311. <div class="flex-1">商业出险次数:</div>
  1312. <div class="flex-1">{{ reslistitem.result.syClaims ? reslistitem.result.syClaims : "无" }}</div>
  1313. </div>
  1314. <div class="table-list-content" v-if="reslistitem.namesimple == '紫金财险' &&
  1315. reslistitem.result.ubiPredictedInfoScore">
  1316. <div class="flex-1">紫金能源车(鼎然-车辆风险评分):</div>
  1317. <div class="flex-1">{{ reslistitem.result.ubiPredictedInfoScore }}</div>
  1318. </div>
  1319. <div class="table-list-content" v-if="reslistitem.result.iszdj && reslistitem.result.iszdj == '1' ">
  1320. <div class="flex-1">真单交</div>
  1321. </div>
  1322. <div class="table-list-content" v-if="reslistitem.result.iszdj && reslistitem.result.iszdj == '0' ">
  1323. <div class="flex-1">假单交</div>
  1324. </div>
  1325. <div class="table-list-content" v-if="reslistitem.namesimple == '永诚财险'">
  1326. <div class="flex-1">光博分:</div>
  1327. <div class="flex-1">{{ reslistitem.result.ilogPreUdwMess ? reslistitem.result.ilogPreUdwMess : "无" }}</div>
  1328. </div>
  1329. <div class="table-list-content" v-else>
  1330. <div class="flex-1">评分:</div>
  1331. <div class="flex-1">{{ reslistitem.result.ilogPreUdwMess ? reslistitem.result.ilogPreUdwMess : "无" }}</div>
  1332. </div>
  1333. <div style="color: #2d4d89">
  1334. <el-tooltip class="item" effect="dark" content="上年信息" placement="top">
  1335. <i class="el-icon-chat-dot-round" @click="
  1336. open2(reslistitem.namesimple, reslistitem.lastYearMsg)
  1337. " style="
  1338. font-size: 20px;
  1339. transform: scale(0.8);
  1340. vertical-align: middle;
  1341. " :disabled="reslistitem.namesimple == '众安财险' &&
  1342. reslistitem.result.tips == '需要验车'
  1343. " v-show="reslistitem.quoteCode == '200' &&
  1344. reslistitem.lastYearMsg
  1345. "></i>
  1346. </el-tooltip>
  1347. <el-tooltip class="item" effect="dark" content="预核保信息" placement="top">
  1348. <i class="el-icon-chat-dot-round" @click="
  1349. openPredictInfo(
  1350. reslistitem.namesimple,
  1351. reslistitem.predictInfo
  1352. )
  1353. " style="
  1354. font-size: 20px;
  1355. transform: scale(0.8);
  1356. vertical-align: middle;
  1357. " v-show="reslistitem.quoteCode == '200' &&
  1358. reslistitem.predictInfo &&
  1359. reslistitem.predictInfo.length > 0 &&
  1360. reslistitem.namesimple == '中国人寿'
  1361. "></i>
  1362. </el-tooltip>
  1363. </div>
  1364. </div>
  1365. </div>
  1366. <div style="flex: 1;"></div>
  1367. <div style="display: flex;">
  1368. <div style="flex: 1;"></div>
  1369. <el-button :disabled="reslistitem.namesimple == '众安财险' &&
  1370. reslistitem.result.tips == '需要验车'
  1371. " v-show="reslistitem.quoteCode == '200' &&
  1372. !('editStatus' in reslistitem.result)
  1373. " type="text" size="small" style="color: #2d4d89; font-size: 14px"
  1374. @click="hbsubmitdialog(reslistitem, reslistindex)">下单</el-button>
  1375. <el-button v-show="reslistitem.quoteCode == '200'" type="text" size="small"
  1376. style="color: #2d4d89; font-size: 14px"
  1377. @click="qoutedetail(reslistitem.result.companyId)">查看详情</el-button>
  1378. <el-button v-show="reslistitem.quoteCode == '200'" type="text" size="small" style="font-size: 14px"
  1379. @click="bjdpreview(reslistitem.result.companyId)">报价单</el-button>
  1380. <el-button type="text" size="small" style="font-size: 14px"
  1381. @click="Payment(reslistitem.result.companyId, reslistitem)" v-show="reslistitem.orderstatus == '2' &&
  1382. !('editStatus' in reslistitem.result) && reslistitem.namesimple !== '平安财险'
  1383. ">付款码</el-button>
  1384. <el-button type="text" size="small" style="font-size: 14px"
  1385. @click="signature(reslistitem.result.companyId)" v-show="reslistitem.orderstatus == '2' &&
  1386. !('editStatus' in reslistitem.result) && reslistitem.namesimple == '平安财险'
  1387. ">生成签章</el-button>
  1388. </div>
  1389. </div>
  1390. <!-- <div style="line-height: 25px">
  1391. 保险期限:
  1392. <span v-show="reslistitem.result.startDateJq">
  1393. 【交强险】
  1394. <span>
  1395. {{ reslistitem.result.startDateJq }} -
  1396. {{ reslistitem.result.endDateJq }}
  1397. </span>
  1398. <br />
  1399. </span>
  1400. <span v-show="reslistitem.result.startDateSy">
  1401. 【商业险】
  1402. <span>
  1403. {{ reslistitem.result.startDateSy }} -
  1404. {{ reslistitem.result.endDateSy }}
  1405. </span>
  1406. <br />
  1407. </span>
  1408. <span @click="syncData(reslistitem.result)">
  1409. <el-tooltip class="item" effect="dark" content="使用此时间" placement="top">
  1410. <i style="color: red" class="el-icon-time"></i>
  1411. </el-tooltip>
  1412. </span>
  1413. <div>
  1414. <span v-show="reslistitem.result.JqExportFee">
  1415. 交强出口费用<span>{{
  1416. reslistitem.result.JqExportFee
  1417. }}</span>
  1418. <br />
  1419. </span>
  1420. <span v-show="reslistitem.result.syExportFee">
  1421. 商业出口费用<span>{{
  1422. reslistitem.result.syExportFee
  1423. }}</span>
  1424. <br />
  1425. </span>
  1426. <span v-show="reslistitem.result.noExportFee">
  1427. 非车出口费用<span>
  1428. {{ reslistitem.result.noExportFee }}</span>
  1429. </span>
  1430. <br />
  1431. </div>
  1432. <div>
  1433. <span v-if="reslistitem.result.jqScore" class="marginL">
  1434. 交强类型评分:
  1435. <span>{{ reslistitem.result.jqScore }}</span>
  1436. <br />
  1437. </span>
  1438. <span v-if="reslistitem.result.syScore" class="marginL">
  1439. 商业类型评分:
  1440. <span>{{ reslistitem.result.syScore }}</span>
  1441. <br />
  1442. </span>
  1443. <span v-if="reslistitem.result.lossRation" class="marginL">
  1444. 总赔付率:
  1445. <span>{{ reslistitem.result.lossRation }}</span>
  1446. <br />
  1447. </span>
  1448. <span v-if="reslistitem.result.jqLossRation" class="marginL">
  1449. 交强赔付率:
  1450. <span>{{ reslistitem.result.jqLossRation }}</span>
  1451. <br />
  1452. </span>
  1453. <span v-if="reslistitem.result.syLossRation" class="marginL">
  1454. 商业赔付率:
  1455. <span>{{ reslistitem.result.syLossRation }}</span>
  1456. <br />
  1457. </span>
  1458. <span v-if="reslistitem.result.totalAdjustRate" class="marginL">
  1459. 自主定价系数:
  1460. <span>{{ reslistitem.result.totalAdjustRate }}</span>
  1461. <br />
  1462. </span>
  1463. <span v-if="reslistitem.result.jgAdjustRate" class="marginL">
  1464. 交强折扣系数:
  1465. <span>{{ reslistitem.result.jgAdjustRate }}</span>
  1466. <br />
  1467. </span>
  1468. <span v-if="reslistitem.result.syAdjustRate" class="marginL">
  1469. 商业折扣系数:
  1470. <span>{{ reslistitem.result.syAdjustRate }}</span>
  1471. <br />
  1472. </span>
  1473. <span v-if="reslistitem.result.jqRenewal" class="marginL">
  1474. 交强续保:
  1475. <span>
  1476. {{
  1477. reslistitem.result.jqRenewal
  1478. ? reslistitem.result.jqRenewal
  1479. : "无"
  1480. }}
  1481. </span>
  1482. <br />
  1483. </span>
  1484. <span v-if="reslistitem.result.syRenewal" class="marginL">
  1485. 商业续保:
  1486. <span>
  1487. {{
  1488. reslistitem.result.syRenewal
  1489. ? reslistitem.result.syRenewal
  1490. : "无"
  1491. }}
  1492. </span>
  1493. <br />
  1494. </span>
  1495. <span v-if="reslistitem.result.jqClaims" class="marginL">
  1496. 交强出险次数:
  1497. <span>
  1498. {{
  1499. reslistitem.result.jqClaims
  1500. ? reslistitem.result.jqClaims
  1501. : "无"
  1502. }}
  1503. </span>
  1504. <br />
  1505. </span>
  1506. <span v-if="reslistitem.result.syClaims" class="marginL">
  1507. 商业出险次数:
  1508. <span>
  1509. {{
  1510. reslistitem.result.syClaims
  1511. ? reslistitem.result.syClaims
  1512. : "无"
  1513. }}
  1514. </span>
  1515. <br />
  1516. </span>
  1517. <span v-if="reslistitem.namesimple == '紫金财险' &&
  1518. reslistitem.result.ubiPredictedInfoScore
  1519. " class="marginL">
  1520. 紫金能源车(鼎然-车辆风险评分):
  1521. <span>{{ reslistitem.result.ubiPredictedInfoScore }}</span>
  1522. <br />
  1523. </span>
  1524. <span v-if="reslistitem.result.iszdj &&
  1525. reslistitem.result.iszdj == '1'
  1526. ">真单交</span>
  1527. <span v-if="reslistitem.result.iszdj &&
  1528. reslistitem.result.iszdj == '0'
  1529. ">假单交</span>
  1530. <span v-if="reslistitem.namesimple == '永诚财险'">
  1531. 光博分:
  1532. <span>
  1533. {{
  1534. reslistitem.result.ilogPreUdwMess
  1535. ? reslistitem.result.ilogPreUdwMess
  1536. : "无"
  1537. }}
  1538. </span>
  1539. <br />
  1540. </span>
  1541. <span v-else>
  1542. 评分:
  1543. <span>
  1544. {{
  1545. reslistitem.result.ilogPreUdwMess
  1546. ? reslistitem.result.ilogPreUdwMess
  1547. : "无"
  1548. }}
  1549. </span>
  1550. <br />
  1551. </span>
  1552. </div>
  1553. </div> -->
  1554. </el-col>
  1555. <!-- <el-col :gutter="20" :span="24" class="company-checked-left">
  1556. <div class="company-checked-card" v-if="reslistitem.programme">
  1557. <div>
  1558. <div class="checked-card-title">险种</div>
  1559. <div class="checked-card-content">
  1560. <span class="blue-style" v-show="reslistitem.programme.description">{{ reslistitem.programme.description }}</span>
  1561. <span v-show="reslistitem.checkedProgramme == 99" class="blue-button" @click="showTypeDialog(reslistitem, reslistindex)">调整险种</span>
  1562. </div>
  1563. </div>
  1564. <div>
  1565. <div class="checked-card-title">主险</div>
  1566. <div class="checked-card-content" v-if="reslistitem.programme.kinds">
  1567. <span class="blue-text" v-for="(kinds, kindIndex) in reslistitem.programme.kinds.main" :key="kindIndex">{{ kinds.alias || kinds.kindName }} {{ toWan(kinds.amount) }}</span>
  1568. <span style="color: rgba(51,51,51,0.65);" v-if="reslistitem.programme.kinds.main.length == 0">暂无</span>
  1569. </div>
  1570. </div>
  1571. <div>
  1572. <div class="checked-card-title">附加险</div>
  1573. <div class="checked-card-content" v-if="reslistitem.programme.kinds">
  1574. <span v-for="(kinds, kindIndex) in reslistitem.programme.kinds.additional" :key="kindIndex">{{ kinds.alias || kinds.kindName }} {{ toWan(kinds.amount) }}</span>
  1575. <span style="color: rgba(51,51,51,0.65);" v-if="reslistitem.programme.kinds.additional.length == 0">暂无</span>
  1576. </div>
  1577. </div>
  1578. <div>
  1579. <div class="checked-card-title">驾意险</div>
  1580. <div class="checked-card-content" v-if="reslistitem.programme.kinds">
  1581. <div v-for="(driving, drivingIndex) in reslistitem.programme.drivingList" :key="drivingIndex" style="margin-bottom: 10px;">
  1582. <span style="margin-right: 0;" v-if="reslistitem.cnName == 'guoRen' || reslistitem.cnName == 'ansheng'">{{ driving.select }}</span>
  1583. <span>{{ driving.alias || driving.projectName }} {{ driving.quantity }}份 ¥{{ Number(driving.sumPremium) * driving.quantity }}</span>
  1584. <span v-show="reslistitem.checkedProgramme == 99"><i class="el-icon-delete" @click="deleteJiaYi(reslistindex, drivingIndex)"></i></span>
  1585. <span class="blue-button" @click="showDetailJiaYi(reslistindex, driving)">查看详情</span>
  1586. <span class="blue-button" @click="addJiaYi(reslistitem)" v-show="drivingIndex == 0 && reslistitem.checkedProgramme == 99">+驾意险</span>
  1587. </div>
  1588. <span class="blue-button" @click="addJiaYi(reslistitem)" v-show="!reslistitem.programme.drivingList.length && reslistitem.checkedProgramme == 99">+驾意险</span>
  1589. </div>
  1590. </div>
  1591. <div style="margin-top: -10px;">
  1592. <div class="checked-card-title">服务</div>
  1593. <div class="checked-card-content" v-if="reslistitem.programme.kinds">
  1594. <span v-for="(kinds, kindIndex) in reslistitem.programme.kinds.service" :key="kindIndex">{{ kinds.alias || kinds.kindName }} {{ toWan(kinds.amount, 'fw') }}</span>
  1595. <span style="color: rgba(51,51,51,0.65);" v-if="reslistitem.programme.kinds.service.length == 0">暂无</span>
  1596. </div>
  1597. </div>
  1598. <div>
  1599. <div class="checked-card-title">其他</div>
  1600. <div class="checked-card-content" v-show="reslistitem.checkedProgramme == 99 && reslistitem.cnName == 'guoRen'">
  1601. <div v-if="reslistitem.programme">
  1602. <div v-for="(teyueitem, teyueindex) in reslistitem.programme.teyue" :key="teyueindex">{{ teyueitem.clauseName }}</div>
  1603. <span style="color: #F96646;" @click="contributingGuoRen(reslistitem.agreementId, reslistindex)">选择特约</span>
  1604. </div>
  1605. </div>
  1606. <el-col :span="20" v-show="reslistitem.cnName == 'zijin'">
  1607. <div v-show="reslistitem.cnName == 'zijin'">自定义系数:
  1608. <el-input v-model="reslistitem.coefficient" size="mini" class="coefficient" placeholder="请输入"></el-input>
  1609. </div>
  1610. </el-col>
  1611. </div>
  1612. </div>
  1613. </el-col> -->
  1614. </el-row>
  1615. </div>
  1616. <!--
  1617. <div class="flex j-s offer-time" v-if="reslistitem.quoteCode == '200'">
  1618. <div style="line-height: 25px">
  1619. 保险期限:
  1620. <span v-show="reslistitem.result.startDateJq">
  1621. 【交强险】
  1622. <span>
  1623. {{ reslistitem.result.startDateJq }} -
  1624. {{ reslistitem.result.endDateJq }}
  1625. </span>
  1626. </span>
  1627. <span v-show="reslistitem.result.startDateSy" style="margin-left: 20px">
  1628. 【商业险】
  1629. <span>
  1630. {{ reslistitem.result.startDateSy }} -
  1631. {{ reslistitem.result.endDateSy }}
  1632. </span>
  1633. </span>
  1634. <span @click="syncData(reslistitem.result)">
  1635. <el-tooltip class="item" effect="dark" content="使用此时间" placement="top">
  1636. <i style="color: red" class="el-icon-time"></i>
  1637. </el-tooltip>
  1638. </span>
  1639. <div>
  1640. <span v-show="reslistitem.result.JqExportFee">
  1641. 交强出口费用<span>{{
  1642. reslistitem.result.JqExportFee
  1643. }}</span>
  1644. </span>
  1645. <span v-show="reslistitem.result.syExportFee">
  1646. 商业出口费用<span>{{
  1647. reslistitem.result.syExportFee
  1648. }}</span>
  1649. </span>
  1650. <span v-show="reslistitem.result.noExportFee">
  1651. 非车出口费用<span>
  1652. {{ reslistitem.result.noExportFee }}</span>
  1653. </span>
  1654. </div>
  1655. <div>
  1656. <span v-if="reslistitem.namesimple == '永诚财险'">
  1657. 光博分:
  1658. <span>
  1659. {{
  1660. reslistitem.result.ilogPreUdwMess
  1661. ? reslistitem.result.ilogPreUdwMess
  1662. : "无"
  1663. }}
  1664. </span>
  1665. </span>
  1666. <span v-else>
  1667. 评分:
  1668. <span>
  1669. {{
  1670. reslistitem.result.ilogPreUdwMess
  1671. ? reslistitem.result.ilogPreUdwMess
  1672. : "无"
  1673. }}
  1674. </span>
  1675. </span>
  1676. <span v-if="reslistitem.result.jqScore" class="marginL">
  1677. 交强类型评分:
  1678. <span>{{ reslistitem.result.jqScore }}</span>
  1679. </span>
  1680. <span v-if="reslistitem.result.syScore" class="marginL">
  1681. 商业类型评分:
  1682. <span>{{ reslistitem.result.syScore }}</span>
  1683. </span>
  1684. <span v-if="reslistitem.result.lossRation" class="marginL">
  1685. 总赔付率:
  1686. <span>{{ reslistitem.result.lossRation }}</span>
  1687. </span>
  1688. <span v-if="reslistitem.result.jqLossRation" class="marginL">
  1689. 交强赔付率:
  1690. <span>{{ reslistitem.result.jqLossRation }}</span>
  1691. </span>
  1692. <span v-if="reslistitem.result.syLossRation" class="marginL">
  1693. 商业赔付率:
  1694. <span>{{ reslistitem.result.syLossRation }}</span>
  1695. </span>
  1696. <span v-if="reslistitem.result.totalAdjustRate" class="marginL">
  1697. 自主定价系数:
  1698. <span>{{ reslistitem.result.totalAdjustRate }}</span>
  1699. </span>
  1700. <span v-if="reslistitem.result.jgAdjustRate" class="marginL">
  1701. 交强折扣系数:
  1702. <span>{{ reslistitem.result.jgAdjustRate }}</span>
  1703. </span>
  1704. <span v-if="reslistitem.result.syAdjustRate" class="marginL">
  1705. 商业折扣系数:
  1706. <span>{{ reslistitem.result.syAdjustRate }}</span>
  1707. </span>
  1708. <span v-if="reslistitem.result.jqRenewal" class="marginL">
  1709. 交强续保:
  1710. <span>
  1711. {{
  1712. reslistitem.result.jqRenewal
  1713. ? reslistitem.result.jqRenewal
  1714. : "无"
  1715. }}
  1716. </span>
  1717. </span>
  1718. <span v-if="reslistitem.result.syRenewal" class="marginL">
  1719. 商业续保:
  1720. <span>
  1721. {{
  1722. reslistitem.result.syRenewal
  1723. ? reslistitem.result.syRenewal
  1724. : "无"
  1725. }}
  1726. </span>
  1727. </span>
  1728. <span v-if="reslistitem.result.jqClaims" class="marginL">
  1729. 交强出险次数:
  1730. <span>
  1731. {{
  1732. reslistitem.result.jqClaims
  1733. ? reslistitem.result.jqClaims
  1734. : "无"
  1735. }}
  1736. </span>
  1737. </span>
  1738. <span v-if="reslistitem.result.syClaims" class="marginL">
  1739. 商业出险次数:
  1740. <span>
  1741. {{
  1742. reslistitem.result.syClaims
  1743. ? reslistitem.result.syClaims
  1744. : "无"
  1745. }}
  1746. </span>
  1747. </span>
  1748. <span v-if="reslistitem.namesimple == '紫金财险' &&
  1749. reslistitem.result.ubiPredictedInfoScore
  1750. " class="marginL">
  1751. 紫金能源车(鼎然-车辆风险评分):
  1752. <span>{{ reslistitem.result.ubiPredictedInfoScore }}</span>
  1753. </span>
  1754. <span v-if="reslistitem.result.iszdj &&
  1755. reslistitem.result.iszdj == '1'
  1756. ">真单交</span>
  1757. <span v-if="reslistitem.result.iszdj &&
  1758. reslistitem.result.iszdj == '0'
  1759. ">假单交</span>
  1760. </div>
  1761. </div>
  1762. <div style="text-align: right">
  1763. <div style="color: #2d4d89">
  1764. <el-tooltip class="item" effect="dark" content="上年信息" placement="top">
  1765. <i class="el-icon-chat-dot-round" @click="
  1766. open2(reslistitem.namesimple, reslistitem.lastYearMsg)
  1767. " style="
  1768. font-size: 20px;
  1769. transform: scale(0.8);
  1770. vertical-align: middle;
  1771. " :disabled="reslistitem.namesimple == '众安财险' &&
  1772. reslistitem.result.tips == '需要验车'
  1773. " v-show="reslistitem.quoteCode == '200' &&
  1774. reslistitem.lastYearMsg
  1775. "></i>
  1776. </el-tooltip>
  1777. <el-tooltip class="item" effect="dark" content="预核保信息" placement="top">
  1778. <i class="el-icon-chat-dot-round" @click="
  1779. openPredictInfo(
  1780. reslistitem.namesimple,
  1781. reslistitem.predictInfo
  1782. )
  1783. " style="
  1784. font-size: 20px;
  1785. transform: scale(0.8);
  1786. vertical-align: middle;
  1787. " v-show="reslistitem.quoteCode == '200' &&
  1788. reslistitem.predictInfo &&
  1789. reslistitem.predictInfo.length > 0 &&
  1790. reslistitem.namesimple == '中国人寿'
  1791. "></i>
  1792. </el-tooltip>
  1793. <el-button :disabled="reslistitem.namesimple == '众安财险' &&
  1794. reslistitem.result.tips == '需要验车'
  1795. " v-show="reslistitem.quoteCode == '200' &&
  1796. !('editStatus' in reslistitem.result)
  1797. " type="text" size="small" style="color: #2d4d89; font-size: 14px"
  1798. @click="hbsubmitdialog(reslistitem)">下单</el-button>
  1799. <el-button v-show="reslistitem.quoteCode == '200'" type="text" size="small"
  1800. style="color: #2d4d89; font-size: 14px"
  1801. @click="qoutedetail(reslistitem.result.companyId)">查看详情</el-button>
  1802. </div>
  1803. <div>
  1804. <el-button v-show="reslistitem.quoteCode == '200'" type="text" size="small" style="font-size: 14px"
  1805. @click="bjdpreview(reslistitem.result.companyId)">报价单</el-button>
  1806. <el-button type="text" size="small" style="font-size: 14px"
  1807. @click="Payment(reslistitem.result.companyId, reslistitem)" v-show="reslistitem.orderstatus == '2' &&
  1808. !('editStatus' in reslistitem.result) && reslistitem.namesimple !== '平安财险'
  1809. ">付款码</el-button>
  1810. <el-button type="text" size="small" style="font-size: 14px"
  1811. @click="signature(reslistitem.result.companyId)" v-show="reslistitem.orderstatus == '2' &&
  1812. !('editStatus' in reslistitem.result) && reslistitem.namesimple == '平安财险'
  1813. ">生成签章</el-button>
  1814. </div>
  1815. </div>
  1816. </div>
  1817. <template>
  1818. <span v-if="reslistitem.checked &&
  1819. reslistitem.agreementId &&
  1820. reslistitem.underwritingDescription
  1821. " style="margin: 20px 20px 0 100px; display: inline-block">{{ reslistitem.underwritingDescription}}</span>
  1822. </template>
  1823. <template v-if="reslistitem.namesimple == '平安财险' &&
  1824. reslistitem.checked &&
  1825. reslistitem.agreementId
  1826. ">
  1827. <div class="flex f-c Driving-risk">
  1828. <div v-for="(val, index) in pinganInsuranceData" :key="index" >
  1829. <el-form :inline="true" :model="accidentFormPA[index-1]" class="demo-form-inline" size="small"
  1830. style="font-weight: bold;margin-top:15px ">
  1831. <el-form-item :label="index=='1'?'财意险':index=='2'?'小微险':'组合险'" style="margin-right: 30px">
  1832. <el-select clearable v-model="accidentFormPA[index-1].pingantemplateSelection" placeholder="未选择" @clear="clearAccidentFormPA(index-1,)"
  1833. @change="pinganInsuranceChange($event,index-1,val)">
  1834. <el-option v-for="(item, index1) in val" :key="index1" :label="item.projectName"
  1835. :value="item.projectName"></el-option>
  1836. </el-select>
  1837. </el-form-item>
  1838. <el-form-item label="选择份数" style="margin-right: 50px" v-if="index ==1||index ==2">
  1839. <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"
  1840. controls-position="right"></el-input-number>
  1841. </el-form-item>
  1842. <el-form-item label="保费:" v-if="index ==1||index ==2">
  1843. <span>{{ accidentFormPA[index-1].premium || 0 }}&ensp;元</span>
  1844. </el-form-item>
  1845. </el-form>
  1846. <el-table class="pinganTable" style="margin-top: 20px" size="small" :data="accidentFormPA[index-1].pinganInsuranceDataTable" border
  1847. v-if="accidentFormPA[index-1].pingantemplateSelection" highlight-current-row :header-cell-style="{
  1848. background: '#F7F7F9 ',
  1849. fontWeight: '700',
  1850. color: '#333333',
  1851. }" ref="RsTable" @select="(selections,row)=>{PADrivingCheckbox(selections,row,reslistitem.agreementId,index-1)}">
  1852. <el-table-column align="center" width="55" label="选择" v-if="index ==1||index ==2">
  1853. <template slot-scope="scope">
  1854. <el-radio class="radio" v-model="accidentFormPA[index-1].pinganInsurancetype" :label="scope.row.code"
  1855. @click.native.stop.prevent="PADrivingRadio(scope.row,reslistitem.agreementId,index-1)">&nbsp;</el-radio>
  1856. </template>
  1857. </el-table-column>
  1858. <el-table-column
  1859. type="selection"
  1860. v-else
  1861. width="55">
  1862. </el-table-column>
  1863. <el-table-column prop="name" label="方案名称" align="center"></el-table-column>
  1864. <el-table-column prop="code" label="方案代码" align="center"></el-table-column>
  1865. <el-table-column prop="premium" label="保费 (元)/每份" align="center">
  1866. </el-table-column>
  1867. <el-table-column prop="quantity" label="份数" align="center" v-if="index ==3">
  1868. <template slot-scope="scope">
  1869. <el-input-number size='small' v-model="scope.row.quantity" :min="1" :max="Number(scope.row.sellListSize)"
  1870. controls-position="right"></el-input-number>
  1871. </template>
  1872. </el-table-column>
  1873. <el-table-column
  1874. label="操作"
  1875. width="100">
  1876. <template slot-scope="scope">
  1877. <el-button type="text" size="small" @click="pinganDetail(scope.row,reslistitem.agreementId)">查看</el-button>
  1878. </template>
  1879. </el-table-column>
  1880. </el-table>
  1881. </div>
  1882. </div>
  1883. </template>
  1884. <template v-if="reslistitem.namesimple == '泰康财险' &&
  1885. reslistitem.checked &&
  1886. reslistitem.agreementId &&
  1887. isLetter !== '3'
  1888. ">
  1889. <div class="flex f-c Driving-risk">
  1890. <el-form :inline="true" :model="accidentFormTk" class="demo-form-inline" size="small"
  1891. style="font-weight: bold; margin-top: 15px">
  1892. <el-form-item label="意外险类型" style="margin-right: 30px">
  1893. <el-select clearable v-model="taikangtemplateSelection" placeholder="未选择" @clear="clearAccidentFormTk"
  1894. @change="taikangInsuranceChange">
  1895. <el-option v-for="(item, index) in taikangaccidentDataList" :key="index" :label="item.projectName"
  1896. :value="item.projectCode"></el-option>
  1897. </el-select>
  1898. </el-form-item>
  1899. <el-form-item label="选择份数" style="margin-right: 50px">
  1900. <el-input-number v-model="accidentFormTk.quantity" @change="numberCopieschangeTk" :min="1"
  1901. controls-position="right"></el-input-number>
  1902. </el-form-item>
  1903. <el-form-item label="保费:">
  1904. <span>{{ accidentFormTk.sumPremium }}&ensp;元</span>
  1905. </el-form-item>
  1906. </el-form>
  1907. <el-table v-if="taikangtemplateSelection" size="small" :data="taikangInsuranceDataTable" border
  1908. ref="expandTable" highlight-current-row :header-cell-style="{
  1909. background: '#F7F7F9',
  1910. fontWeight: '700',
  1911. color: '#333333',
  1912. }">
  1913. <el-table-column prop="name" label="保险责任" align="center"></el-table-column>
  1914. <el-table-column prop="amount" label="每座保额 (元)/每份" align="center"></el-table-column>
  1915. <el-table-column prop="sumAmount" label="每车保额 (元)/每份" align="center"></el-table-column>
  1916. <el-table-column prop="premium" label="责任保费 (元)/每份" align="center"></el-table-column>
  1917. </el-table>
  1918. </div>
  1919. </template>
  1920. <template v-if="reslistitem.namesimple == '恒邦财险' &&
  1921. reslistitem.checked &&
  1922. reslistitem.agreementId &&
  1923. isLetter !== '3'
  1924. ">
  1925. <div class="flex f-c Driving-risk">
  1926. <div class="dis a-c" style="margin: 15px 0">
  1927. <span style="margin-right: 15px; font-weight: bold">选择意外险</span>
  1928. <el-select style="width: 250px; margin-right: 60px" filterable size="small" clearable
  1929. v-model="hengbangtemplateSelection" placeholder="未选择" @clear="clearAccidentFormHB"
  1930. @change="hengbangInsuranceChange">
  1931. <el-option v-for="(item, index) in hengbangInsuranceData" :key="index" :label="item.projectName"
  1932. :value="item.projectCode"></el-option>
  1933. </el-select>
  1934. 保费:
  1935. <b>{{
  1936. hengbangaccidentalDrivingVo.sumPremium || 0
  1937. }}&ensp;元</b>
  1938. </div>
  1939. <el-table size="small" :data="hengbangInsuranceDataTable" border v-if="hengbangtemplateSelection"
  1940. ref="RsTable" highlight-current-row :header-cell-style="{
  1941. background: '#F7F7F9 ',
  1942. fontWeight: '700',
  1943. color: '#333333',
  1944. }">
  1945. <el-table-column prop="name" label="险种名称" align="center"></el-table-column>
  1946. <el-table-column prop="amount" label="保额" align="center"></el-table-column>
  1947. </el-table>
  1948. </div>
  1949. </template>
  1950. <template v-if="reslistitem.namesimple == '华农财险' &&
  1951. reslistitem.checked &&
  1952. reslistitem.agreementId &&
  1953. isLetter !== '3'
  1954. ">
  1955. <div class="flex f-c Driving-risk">
  1956. <el-form :inline="true" :model="accidentFormHN" class="demo-form-inline"
  1957. style="font-weight: bold; margin-top: 15px" size="small">
  1958. <el-form-item label="意外险类型:" style="margin-right: 30px">
  1959. <el-select clearable v-model="accidentFormHN.accidentType" placeholder="未选择"
  1960. @clear="clearAccidentFormHN" @change="huanongInsuranceChange">
  1961. <el-option v-for="(item, index) in huanongInsuranceData" :key="index" :label="item.projectName"
  1962. :value="item.projectCode"></el-option>
  1963. </el-select>
  1964. </el-form-item>
  1965. <el-form-item label="选择份数" style="margin-right: 30px">
  1966. <el-input-number v-model="accidentFormHN.quantity" :min="1"
  1967. controls-position="right"></el-input-number>
  1968. </el-form-item>
  1969. </el-form>
  1970. <el-table v-if="accidentFormHN.accidentType" size="small" :data="huanongInsuranceDataTable" border
  1971. ref="expandTable" highlight-current-row :header-cell-style="{
  1972. background: '#F7F7F9 ',
  1973. fontWeight: '700',
  1974. color: '#333333',
  1975. }">
  1976. <el-table-column prop="name" label="保险责任" align="center"></el-table-column>
  1977. <el-table-column prop="amount" label="保额" align="center">
  1978. <template slot-scope="scope">
  1979. <el-input v-model="scope.row.amount" placeholder="请输入内容" size="small" disabled></el-input>
  1980. </template>
  1981. </el-table-column>
  1982. </el-table>
  1983. </div>
  1984. </template>
  1985. <template v-if="reslistitem.namesimple == '太平财险' &&
  1986. reslistitem.checked &&
  1987. reslistitem.agreementId &&
  1988. isLetter !== '3'
  1989. ">
  1990. <div class="flex f-c Driving-risk">
  1991. <div class="dis a-c" style="margin: 15px 0">
  1992. <span style="margin-right: 15px; font-weight: bold">选择意外险</span>
  1993. <el-select style="width: 250px; margin-right: 60px" filterable size="small" clearable
  1994. v-model="taipingtemplateSelection" placeholder="未选择" @clear="clearAccidentFormTP"
  1995. @change="taipingInsuranceChange">
  1996. <el-option v-for="(item, index) in taipingInsuranceData" :key="index" :label="item.projectName"
  1997. :value="item.projectCode"></el-option>
  1998. </el-select>
  1999. 每份价税合计:
  2000. <b>{{ taipingaccidentalDrivingVo.sumPremium || 0 }}&ensp;元</b>
  2001. </div>
  2002. <el-table size="small" :data="taipingInsuranceDataTable" border v-if="taipingtemplateSelection"
  2003. ref="RsTable" highlight-current-row :header-cell-style="{
  2004. background: '#F7F7F9 ',
  2005. fontWeight: '700',
  2006. color: '#333333',
  2007. }">
  2008. <el-table-column prop="name" label="险种名称" align="center"></el-table-column>
  2009. <el-table-column prop="amount" label="险种金额" align="center"></el-table-column>
  2010. </el-table>
  2011. </div>
  2012. </template>
  2013. <template v-if="reslistitem.namesimple == '安盛天平' &&
  2014. reslistitem.checked &&
  2015. reslistitem.agreementId &&
  2016. isLetter !== '3'
  2017. ">
  2018. <div class="flex f-c Driving-risk">
  2019. <div class="dis a-c" style="margin-top: 15px">
  2020. <span style="margin-right: 15px; font-weight: bold">意外险类型</span>
  2021. <el-select style="width: 250px" size="small" clearable v-model="anshengtemplateSelection"
  2022. placeholder="未选择" @clear="clearAccidentFormAS" @change="anshengInsuranceChange">
  2023. <el-option v-for="(item, index) in anshengInsuranceData" :key="index"
  2024. :label="item.projectCode + ' ' + item.projectName" :value="item.projectCode"></el-option>
  2025. </el-select>
  2026. </div>
  2027. <el-table style="margin-top: 20px" size="small" :data="anshengInsuranceDataTable" border
  2028. v-if="anshengtemplateSelection" ref="RsTable" highlight-current-row :header-cell-style="{
  2029. background: '#F7F7F9 ',
  2030. fontWeight: '700',
  2031. color: '#333333',
  2032. }">
  2033. <el-table-column align="center" width="55" label="选择">
  2034. <template slot-scope="scope">
  2035. <el-radio class="radio" v-model="anshengInsurancetype" :label="scope.row.projectCode"
  2036. @click.native.stop.prevent="ASDrivingRadio(scope.row)">&nbsp;</el-radio>
  2037. </template>
  2038. </el-table-column>
  2039. <el-table-column prop="projectName" label="方案名称" align="center"></el-table-column>
  2040. <el-table-column prop="projectCode" label="方案代码" align="center"></el-table-column>
  2041. <el-table-column prop="quantity" label="份数" align="center">
  2042. </el-table-column>
  2043. </el-table>
  2044. </div>
  2045. </template>
  2046. <template v-if="reslistitem.namesimple == '中国人寿' &&
  2047. reslistitem.checked &&
  2048. reslistitem.agreementId &&
  2049. isLetter !== '3'
  2050. ">
  2051. <div style="margin: 15px 0 15px 100px">
  2052. <span>商业险折扣:</span>
  2053. <el-input style="width: 220px" :disabled="!lastCompanyId" size="small" v-model="reslistitem.discount"
  2054. placeholder="请输入内容" @input="
  2055. reslistitem.discount = reslistitem.discount.replace(
  2056. /[^\d.]/g,
  2057. ''
  2058. )
  2059. "></el-input>
  2060. </div>
  2061. <div class="flex f-c Driving-risk">
  2062. <div class="dis a-c">
  2063. <span style="margin-right: 15px; font-weight: bold">选择意外险</span>
  2064. <el-select style="width: 250px" filterable size="small" clearable v-model="renshoutemplateSelection"
  2065. placeholder="未选择" @clear="clearAccidentFormRS" @change="renshouInsuranceChange">
  2066. <el-option v-for="(item, index) in renshouInsuranceData" :key="index" :label="item.projectName"
  2067. :value="item.projectCode"></el-option>
  2068. </el-select>
  2069. </div>
  2070. <el-table size="small" style="margin-top: 20px" :data="renshouInsuranceDataTable" border
  2071. v-if="renshoutemplateSelection" @row-click="RSDrivingChange" ref="RsTable" highlight-current-row
  2072. :header-cell-style="{
  2073. background: '#F7F7F9 ',
  2074. fontWeight: '700',
  2075. color: '#333333',
  2076. }">
  2077. <el-table-column prop="name" label="方案名称" align="center"></el-table-column>
  2078. <el-table-column prop="premium" label="保费 (元)起" align="center">
  2079. <template slot-scope="scope">
  2080. <span>¥{{ scope.row.premium }}</span>
  2081. </template>
  2082. </el-table-column>
  2083. <el-table-column label="份数" align="center">
  2084. <template slot-scope="scope">
  2085. <span>{{ scope.row.quantity }}</span>
  2086. </template>
  2087. </el-table-column>
  2088. </el-table>
  2089. </div>
  2090. </template>
  2091. <template v-if="reslistitem.namesimple == '众安财险' &&
  2092. reslistitem.checked &&
  2093. reslistitem.agreementId &&
  2094. isLetter !== '3'
  2095. ">
  2096. <div class="flex f-c Driving-risk">
  2097. <div class="dis a-c" style="margin: 15px 0">
  2098. <span style="margin-right: 15px; font-weight: bold">选择意外险</span>
  2099. <el-select style="width: 250px" filterable size="small" clearable v-model="zhongantemplateSelection"
  2100. placeholder="未选择" @clear="clearAccidentFormZA" @change="zhonganInsuranceChange">
  2101. <el-option v-for="(item, index) in zhonganInsuranceData" :key="index" :label="item.projectName"
  2102. :value="item.projectCode"></el-option>
  2103. </el-select>
  2104. </div>
  2105. <el-table size="small" :data="zhonganInsuranceDataTable" border v-if="zhongantemplateSelection"
  2106. @row-click="ZADrivingChange" ref="RsTable" highlight-current-row :header-cell-style="{
  2107. background: '#F7F7F9 ',
  2108. fontWeight: '700',
  2109. color: '#333333',
  2110. }">
  2111. <el-table-column prop="name" label="险种名称" align="center"></el-table-column>
  2112. <el-table-column prop="amount" label="险种金额" align="center"></el-table-column>
  2113. </el-table>
  2114. </div>
  2115. </template>
  2116. <template v-if="reslistitem.namesimple == '紫金财险' &&
  2117. reslistitem.checked &&
  2118. reslistitem.agreementId &&
  2119. isLetter !== '3'
  2120. ">
  2121. <div style="margin: 15px 0 15px 100px">
  2122. <span>自主定价系数:</span>
  2123. <el-input style="width: 220px" size="small" v-model="reslistitem.coefficient"
  2124. placeholder="请输入内容"></el-input>
  2125. </div>
  2126. <div class="flex f-c Driving-risk">
  2127. <div class="dis a-c" style="margin-bottom: 15px">
  2128. <span style="margin-right: 15px; font-weight: bold">选择意外险</span>
  2129. <el-select style="width: 250px" filterable multiple size="small" clearable
  2130. v-model="zijintemplateSelection" placeholder="未选择" @clear="clearAccidentFormZJ"
  2131. @change="zijinInsuranceChange">
  2132. <el-option v-for="(item, index) in ziJinInsuranceData" :key="index" :label="item.projectName"
  2133. :value="item.projectCode"></el-option>
  2134. </el-select>
  2135. </div>
  2136. <el-table size="small" :data="zijinInsuranceDataTable" border v-if="zijintemplateSelection"
  2137. @select="CheckboxChange" filterable ref="expandTable" highlight-current-row :header-cell-style="{
  2138. background: '#F7F7F9 ',
  2139. fontWeight: '700',
  2140. color: '#333333',
  2141. }">
  2142. <el-table-column type="selection" width="55"></el-table-column>
  2143. <el-table-column prop="projectName" label="方案名称" align="center"></el-table-column>
  2144. <el-table-column prop="sumAmount" label="总保额 (元)/每份" align="center"></el-table-column>
  2145. <el-table-column prop="sumPremium" label="保费 (元)/每份" align="center">
  2146. <template slot-scope="scope">
  2147. <span>¥{{ scope.row.sumPremium }}</span>
  2148. </template>
  2149. </el-table-column>
  2150. <el-table-column prop="quantity" label="份数" align="center">
  2151. <template slot-scope="scope">
  2152. <el-input-number v-model="scope.row.quantity" :min="1" size="small"
  2153. controls-position="right"></el-input-number>
  2154. </template>
  2155. </el-table-column>
  2156. <el-table-column prop="Totalprice" label="总保费 (元)" align="center">
  2157. <template slot-scope="scope">
  2158. <span v-if="scope.row.quantity">{{
  2159. scope.row.sumPremium * scope.row.quantity
  2160. }}</span>
  2161. <span v-else>{{ scope.row.sumPremium }}</span>
  2162. </template>
  2163. </el-table-column>
  2164. </el-table>
  2165. </div>
  2166. </template>
  2167. <template v-if="reslistitem.namesimple == '永诚财险' &&
  2168. reslistitem.checked &&
  2169. reslistitem.agreementId &&
  2170. isLetter !== '3'
  2171. ">
  2172. <div class="flex f-c Driving-risk">
  2173. <el-form :inline="true" :model="accidentForm" class="demo-form-inline" size="small"
  2174. style="font-weight: bold; margin-top: 15px">
  2175. <el-form-item label="意外险类型" style="margin-right: 30px">
  2176. <el-select clearable v-model="yongchengtemplateSelection" placeholder="未选择" @clear="clearAccidentForm"
  2177. @change="yongchengInsuranceChange">
  2178. <el-option v-for="(item, index) in yongchengaccidentDataList" :key="index" :label="item.projectName"
  2179. :value="item.projectCode"></el-option>
  2180. </el-select>
  2181. </el-form-item>
  2182. <el-form-item label="选择份数" style="margin-right: 50px">
  2183. <el-input-number v-model="accidentForm.quantity" @change="numberCopieschange" :min="1"
  2184. controls-position="right"></el-input-number>
  2185. </el-form-item>
  2186. <el-form-item label="保费:">
  2187. <span>{{ accidentForm.sumPremium }}&ensp;元</span>
  2188. </el-form-item>
  2189. </el-form>
  2190. <el-table v-if="yongchengtemplateSelection" size="small" :data="yongchengInsuranceDataTable" border
  2191. ref="expandTable" highlight-current-row :header-cell-style="{
  2192. background: '#F7F7F9',
  2193. fontWeight: '700',
  2194. color: '#333333',
  2195. }">
  2196. <el-table-column prop="name" label="保险责任" align="center"></el-table-column>
  2197. <el-table-column prop="amount" label="每座保额 (元)/每份" align="center"></el-table-column>
  2198. <el-table-column prop="sumAmount" label="每车保额 (元)/每份" align="center"></el-table-column>
  2199. <el-table-column prop="premium" label="责任保费 (元)/每份" align="center"></el-table-column>
  2200. </el-table>
  2201. </div>
  2202. </template>
  2203. <template v-if="reslistitem.namesimple == '国任财险' &&
  2204. reslistitem.checked &&
  2205. reslistitem.agreementId &&
  2206. isLetter !== '3'
  2207. ">
  2208. <el-button type="text" style="margin: 10px 0 0 100px"
  2209. @click="contributingGuoRen(reslistitem.agreementId)">选择特约</el-button>
  2210. <div class="flex f-c Driving-risk">
  2211. <el-form :inline="true" :model="guoRenaccidentForm" class="demo-form-inline" size="small">
  2212. <el-form-item label="意外险类型" style="margin-right: 30px">
  2213. <el-select clearable placeholder="未选择" @clear="clearAccidentFormGr" @change="grcxchange"
  2214. v-model="guoRenaccidentForm.goodsCode">
  2215. <el-option v-for="(item, index) in guoRenaccidentDataList" :key="index" :label="item.projectName"
  2216. :value="item.projectCode"></el-option>
  2217. </el-select>
  2218. </el-form-item>
  2219. <el-form-item label=" ">
  2220. <el-select clearable v-model="guoRenaccidentForm.prodCode" @change="grcxchangeChild">
  2221. <el-option v-for="(item) in guoRenaccidentDataListChild" :key="item.projectCode"
  2222. :label="item.projectName" :value="item.projectCode"></el-option>
  2223. </el-select>
  2224. </el-form-item>
  2225. <el-form-item label="选择份数" style="margin-right: 30px">
  2226. <el-input-number v-model="guoRenaccidentForm.quantity" :min="1" controls-position="right"
  2227. @change="numberCopieschangeGR"></el-input-number>
  2228. </el-form-item>
  2229. <el-form-item label="保费:">
  2230. <span>{{ guoRenaccidentForm.sumPremium }}&ensp;元</span>
  2231. </el-form-item>
  2232. </el-form>
  2233. <el-table v-if="guoRenaccidentForm.prodCode" size="small" :data="guoRenInsuranceDataTable" border
  2234. ref="expandTable" highlight-current-row :header-cell-style="{
  2235. background: '#F7F7F9 ',
  2236. fontWeight: '700',
  2237. color: '#333333',
  2238. }">
  2239. <el-table-column prop="name" label="保险责任" align="center"></el-table-column>
  2240. <el-table-column prop="amount" label="保额 (元)" align="center"></el-table-column>
  2241. <el-table-column prop="premium" label="保费 (元)" align="center">
  2242. <template slot-scope="scope">¥{{ scope.row.premium }}</template>
  2243. </el-table-column>
  2244. </el-table>
  2245. </div>
  2246. </template>
  2247. <template v-if="reslistitem.namesimple == '中煤财险' &&
  2248. reslistitem.checked &&
  2249. reslistitem.agreementId &&
  2250. isLetter !== '3'
  2251. ">
  2252. <div class="flex f-c Driving-risk accident-style zmDriving">
  2253. <el-form :inline="true" :model="accidentFormZM" class="demo-form-inline" size="small"
  2254. style="font-weight: bold; margin-top: 15px">
  2255. <el-form-item label="意外险类型" style="margin-right: 30px">
  2256. <el-select style="width: 250px" size="small" clearable v-model="zhongmeitemplateSelection"
  2257. placeholder="未选择" @clear="numberCopieschangeZM" @change="zhongmeiInsuranceChange">
  2258. <el-option v-for="(item, index) in zhongmeiInsuranceData" :key="index" :label="item.projectName"
  2259. :value="item.projectCode"></el-option>
  2260. </el-select>
  2261. </el-form-item>
  2262. <el-form-item label="选择份数" style="margin-right: 30px">
  2263. <el-input-number v-model="accidentFormZM.quantity" @change="numberCopieschangeZM" :min="1"
  2264. controls-position="right"></el-input-number>
  2265. </el-form-item>
  2266. <el-form-item label="保费:">
  2267. <span>{{ accidentFormZM.sumPremium }}&ensp;元</span>
  2268. </el-form-item>
  2269. </el-form>
  2270. <el-table size="small" :data="zhongmeiInsuranceDataTable" border ref="ZmMultipleTable"
  2271. v-if="zhongmeitemplateSelection" :header-cell-style="{
  2272. background: '#F7F7F9 ',
  2273. fontWeight: '700',
  2274. color: '#333333',
  2275. }">
  2276. <el-table-column prop="name" label="保险责任名称" align="center"></el-table-column>
  2277. <el-table-column prop="amount" label="保险责任对应保额" align="center"></el-table-column>
  2278. </el-table>
  2279. </div>
  2280. </template>
  2281. <template v-if="reslistitem.namesimple == '大家财险' &&
  2282. reslistitem.checked &&
  2283. reslistitem.agreementId &&
  2284. isLetter !== '3'
  2285. ">
  2286. <div class="flex f-c Driving-risk">
  2287. <div class="dis a-c" style="margin-top: 15px">
  2288. <span style="margin-right: 15px; font-weight: bold">选择意外险</span>
  2289. <el-select style="width: 250px" v-if="reslistitem.apiType == 1" filterable size="small" clearable
  2290. v-model="dajiatemplateSelection" placeholder="未选择" @clear="clearAccidentFormDJ"
  2291. @change="dajiaInsuranceChange">
  2292. <el-option v-for="(item, index) in dajiaInsuranceData" :key="index" :label="item.projectName"
  2293. :value="item.projectCode"></el-option>
  2294. </el-select>
  2295. <div v-else>
  2296. <el-select size="small" style="width: 250px" clearable placeholder="未选择" @change="djcxchange"
  2297. v-model="dajiaaccidentForm.parentCode" @clear="clearAccidentFormDJ">
  2298. <el-option v-for="(item, index) in dajiaInsuranceData" :key="index" :label="item.projectName"
  2299. :value="item.projectCode"></el-option>
  2300. </el-select>
  2301. <el-select size="small" style="width: 250px" clearable v-model="dajiaaccidentForm.projectCode"
  2302. @change="djcxchangeChild">
  2303. <el-option v-for="(item) in dajiaaccidentDataListChild" :key="item.projectCode"
  2304. :label="item.projectName" :value="item.projectCode"></el-option>
  2305. </el-select>
  2306. </div>
  2307. </div>
  2308. <el-table size="small" :data="dajiaInsuranceDataTable" border ref="RsTable" highlight-current-row
  2309. :header-cell-style="{
  2310. background: '#F7F7F9 ',
  2311. fontWeight: '700',
  2312. color: '#333333',
  2313. }">
  2314. <el-table-column prop="name" label="保险责任名称" align="center"></el-table-column>
  2315. <el-table-column prop="premium" label="保费 (元)/每份" align="center">
  2316. <template slot-scope="scope">¥{{ scope.row.premium }}</template>
  2317. </el-table-column>
  2318. </el-table>
  2319. </div>
  2320. </template>
  2321. <template v-if="reslistitem.namesimple == '渤海财险' &&
  2322. reslistitem.checked &&
  2323. reslistitem.agreementId &&
  2324. isLetter !== '3'
  2325. ">
  2326. <div class="flex f-c Driving-risk" style="margin-top: 15px">
  2327. <el-form :inline="true" :model="boHaiaccidentForm" class="demo-form-inline" size="small">
  2328. <el-form-item label="意外险类型" style="margin-right: 30px">
  2329. <el-select clearable placeholder="未选择" @clear="clearAccidentFormBh" @change="bohaiInsuranceChange"
  2330. v-model="boHaiaccidentForm.projectCode">
  2331. <el-option v-for="(item, index) in boHaiaccidentDataList" :key="index" :label="item.projectName"
  2332. :value="item.projectCode"></el-option>
  2333. </el-select>
  2334. </el-form-item>
  2335. <el-form-item label="选择份数" style="margin-right: 30px">
  2336. <el-input-number v-model="boHaiaccidentForm.copies" :min="1"
  2337. controls-position="right"></el-input-number>
  2338. </el-form-item>
  2339. <el-form-item label="保费:">
  2340. <span>{{
  2341. boHaiaccidentForm.premium * boHaiaccidentForm.copies
  2342. }}&ensp;元</span>
  2343. </el-form-item>
  2344. </el-form>
  2345. <el-table v-if="boHaiaccidentForm.projectCode" size="small" :data="bohaiInsuranceDataTable" border
  2346. ref="expandTable" highlight-current-row :header-cell-style="{
  2347. background: '#F7F7F9 ',
  2348. fontWeight: '700',
  2349. color: '#333333',
  2350. }">
  2351. <el-table-column prop="name" label="保险责任名称" align="center"></el-table-column>
  2352. <el-table-column prop="amount" label="保额 (元)" align="center">
  2353. <template slot-scope="scope">¥{{ scope.row.amount }}</template>
  2354. </el-table-column>
  2355. </el-table>
  2356. </div>
  2357. </template> -->
  2358. </div>
  2359. </div>
  2360. </div>
  2361. </div>
  2362. <!-- 报价历史 -->
  2363. <div class="Enclosure flex f-c" v-if="isLetter == '1'">
  2364. <div class="home flex j-s a-c back">
  2365. <div class="flex j-s a-c color">
  2366. <img src="../../../../src/icon/报价历史.png" alt class="icon-img" />
  2367. <span style="margin-left: 10px">报价历史</span>
  2368. <div v-if="orderno">
  2369. <el-radio-group v-model="historyRadio" style="margin-left: 30px" @input="RadioHistoryChange"
  2370. v-for="item in insOrderStatusoptions" :key="item.dictValue">
  2371. <el-radio :label="item.dictValue">{{ item.dictTag }}</el-radio>
  2372. </el-radio-group>
  2373. </div>
  2374. </div>
  2375. </div>
  2376. <div style="padding: 20px">
  2377. <el-table size="small" :data="HistoryList" height="250" border style="width: 100%" v-loading="loading"
  2378. :header-cell-style="{
  2379. background: '#F7F7F9 ',
  2380. fontWeight: '700',
  2381. color: '#333333',
  2382. }" highlight-current-row>
  2383. <el-table-column prop="inscompany" label="保险公司" align="center"></el-table-column>
  2384. <el-table-column prop="username" label="业务员" align="center">
  2385. <template slot-scope="scope">
  2386. <span>{{ scope.row.userName }}({{ scope.row.userId }})</span>
  2387. </template>
  2388. </el-table-column>
  2389. <el-table-column prop="licenseno" label="车牌号" align="center"></el-table-column>
  2390. <el-table-column prop="product" label="险种" align="center"></el-table-column>
  2391. <el-table-column prop="createtime" label="报价时间" align="center"></el-table-column>
  2392. <el-table-column prop="jqpremium" label="交强险" align="center"></el-table-column>
  2393. <el-table-column prop="sypremium" label="商业险" align="center"></el-table-column>
  2394. <el-table-column prop="taxamount" label="车船税" align="center"></el-table-column>
  2395. <el-table-column prop="sumpremium" label="总保费" align="center"></el-table-column>
  2396. <el-table-column prop="orderstatus" label="状态" align="center">
  2397. <template slot-scope="scope">
  2398. <el-tag style="
  2399. color: #33a08d;
  2400. border-color: #33a08d;
  2401. background: rgba(51, 160, 141, 0.1);
  2402. " v-if="scope.row.orderstatus == '0' || scope.row.orderstatus == '1'
  2403. " size="small">{{ scope.row.orderstatus | cap }}</el-tag>
  2404. <el-tag type="danger" style="border-color: #e75b5d" v-else-if="scope.row.orderstatus == '3'" size="small">{{
  2405. scope.row.orderstatus | cap }}</el-tag>
  2406. <el-tag v-else style="
  2407. color: #2d4d89;
  2408. border-color: #2d4d89;
  2409. background: rgba(45, 77, 137, 0.1);
  2410. " size="small">{{ scope.row.orderstatus | cap }}</el-tag>
  2411. </template>
  2412. </el-table-column>
  2413. <el-table-column label="操作" align="center" min-width="180" fixed="right">
  2414. <template slot-scope="scope">
  2415. <el-button type="text" style="color: #2d4d89" size="small"
  2416. @click="qoutedetail(scope.row.id)">查看详情</el-button>
  2417. <el-button size="small" type="text" @click="bjdpreview(scope.row.id)">报价单</el-button>
  2418. <el-button size="small" v-show="scope.row.orderstatus == '2' && scope.row.inscompany!=='平安财险'" type="text"
  2419. @click="Payment(scope.row.id, scope.row)">付款码</el-button>
  2420. <el-button size="small" v-show="scope.row.orderstatus == '2' && scope.row.inscompany=='平安财险'" type="text"
  2421. @click="signature(scope.row.id)">生成签章</el-button>
  2422. <el-button size="mini" type="text" v-if="(scope.row.orderstatus == '1' ||
  2423. scope.row.orderstatus == '2' ||
  2424. scope.row.orderstatus == '4') &&
  2425. ['紫金财险'].includes(scope.row.inscompany)
  2426. " @click="cancelorder(scope.row)">撤单</el-button>
  2427. <el-button type="text" size="mini" style="color: #2d4d89" v-if="scope.row.orderstatus == '2' && scope.row.inscompany!=='平安财险'"
  2428. @click="revokeCode(scope.row.id)">撤销二维码</el-button>
  2429. </template>
  2430. </el-table-column>
  2431. </el-table>
  2432. </div>
  2433. </div>
  2434. <!-- 查看详情 -->
  2435. <detailsDialog ref="detailsDialog" :orderInfo.sync="queryOrders" :Feepermissions="false"></detailsDialog>
  2436. <el-dialog title="车型选择" :visible.sync="chexingdialogVisible" width="1300px">
  2437. <el-form :inline="true" class="demo-form-inline" size="small">
  2438. <el-form-item label="厂牌型号">
  2439. <el-input v-model="carInfo.modelcname" placeholder="厂牌型号" style="width: 500px"></el-input>
  2440. </el-form-item>
  2441. <el-form-item>
  2442. <el-button type="primary" size="small" @click="toChooseVehicleType(carInfo.modelcname)">查询</el-button>
  2443. </el-form-item>
  2444. </el-form>
  2445. <el-table size="small" :data="reslist" height="690" border style="width: 100%" v-loading="loading"
  2446. :header-cell-style="{
  2447. background: '#F7F7F9 ',
  2448. fontWeight: '700',
  2449. color: '#333333',
  2450. }" highlight-current-row @row-dblclick="reslistCurrentChange">
  2451. <el-table-column prop="modelCode" label="厂牌型号代码" align="center" width="200"></el-table-column>
  2452. <el-table-column prop="modelName" label="厂牌型号" align="center" width="300"></el-table-column>
  2453. <el-table-column prop="replacementValue" label="新车购置价" align="center" width="100"></el-table-column>
  2454. <el-table-column prop="marketYear" label="年款" align="center" width="100"></el-table-column>
  2455. <el-table-column prop="ratedPassengerCapacity" label="座位数" align="center" width="80"></el-table-column>
  2456. <el-table-column prop="displacement" label="排量" align="center" width="100"></el-table-column>
  2457. <el-table-column prop="remark" label="配置" align="center"></el-table-column>
  2458. </el-table>
  2459. </el-dialog>
  2460. <el-dialog title="车辆识别代码" :visible.sync="sbdmdialogVisible" width="1300px">
  2461. <el-form :inline="true" class="demo-form-inline" size="small">
  2462. <el-form-item label="车辆识别代码">
  2463. <el-input v-model="carInfo.frameNo" placeholder="车辆识别代码" style="width: 500px"></el-input>
  2464. </el-form-item>
  2465. <el-form-item>
  2466. <el-button type="primary" size="small" @click="toChooseVin(carInfo.frameNo)">查询</el-button>
  2467. </el-form-item>
  2468. </el-form>
  2469. <el-table size="small" :data="reslist" height="690" border style="width: 100%" v-loading="loading"
  2470. :header-cell-style="{
  2471. background: '#F7F7F9 ',
  2472. fontWeight: '700',
  2473. color: '#333333',
  2474. }" highlight-current-row @row-dblclick="reslistCurrentChange">
  2475. <el-table-column prop="modelCode" label="厂牌型号代码" align="center" width="200"></el-table-column>
  2476. <el-table-column prop="modelName" label="厂牌型号" align="center" width="300"></el-table-column>
  2477. <el-table-column prop="replacementValue" label="新车购置价" align="center" width="100"></el-table-column>
  2478. <el-table-column prop="marketYear" label="年款" align="center" width="100"></el-table-column>
  2479. <el-table-column prop="ratedPassengerCapacity" label="座位数" align="center" width="80"></el-table-column>
  2480. <el-table-column prop="displacement" label="排量" align="center" width="100"></el-table-column>
  2481. <el-table-column prop="remark" label="配置" align="center"></el-table-column>
  2482. </el-table>
  2483. </el-dialog>
  2484. <!--第一种 二维码 -->
  2485. <el-dialog :visible.sync="codedialogVisible" width="430px" top="10vh" class="saomazhifucodeClass">
  2486. <div class="ORcodebody" v-watermark="userform.id || userId">
  2487. <div slot="title" class="dialog-title">
  2488. <span>扫码付款</span>
  2489. </div>
  2490. <div class="ORcode">
  2491. <div style="padding: 13px; position: relative">
  2492. <div v-if="['大家财险', '华泰财险'].includes(inscompany)">
  2493. <div v-if="apiType == 1" id="qrcode" ref="qrcode"></div>
  2494. <img v-else :src="paycodeimg" alt style="width: 100%" />
  2495. </div>
  2496. <div v-else>
  2497. <img v-if="['太平财险'].includes(inscompany)" :src="paycodeimg" alt style="width: 100%" />
  2498. <div v-else id="qrcode" ref="qrcode"></div>
  2499. </div>
  2500. </div>
  2501. </div>
  2502. <img style="margin-left: -16px" src="../../../assets/image/divider.png" alt />
  2503. <div style="
  2504. font-size: 32px;
  2505. text-align: center;
  2506. color: #d42426;
  2507. margin-top: 20px;
  2508. ">
  2509. <span style="font-size: 24px; font-weight: bold">¥</span>
  2510. {{ sumpremium }}
  2511. </div>
  2512. <div class="ORtitle">
  2513. <div>
  2514. <span>保险公司:</span>
  2515. <span>{{ inscompany }}</span>
  2516. </div>
  2517. <div>
  2518. <span>车牌号:</span>
  2519. <span>{{ licenseNo }}</span>
  2520. </div>
  2521. <div>
  2522. <span>投保人:</span>
  2523. <span>{{ applyName }}</span>
  2524. </div>
  2525. <!-- <div>
  2526. <span style="color:#f75c00">总金额:</span>
  2527. <span style="color:#f75c00">{{ sumpremium }}</span>
  2528. </div>-->
  2529. <div v-show="jqpremium">
  2530. <span>交强:</span>
  2531. <span>{{ jqpremium }}</span>
  2532. </div>
  2533. <div v-show="sypremium">
  2534. <span>商业:</span>
  2535. <span>{{ sypremium }}</span>
  2536. </div>
  2537. <div v-show="taxamount">
  2538. <span>车船税:</span>
  2539. <span>{{ taxamount }}</span>
  2540. </div>
  2541. <div v-show="jqstartdate">
  2542. <span>交强险起保日期:</span>
  2543. <span>{{ jqstartdate }}</span>
  2544. </div>
  2545. <div v-show="systartdate">
  2546. <span>商业险起保日期:</span>
  2547. <span>{{ systartdate }}</span>
  2548. </div>
  2549. <div v-if="jypremium">
  2550. <span>驾意险:</span>
  2551. <span>{{ jypremium }}</span>
  2552. </div>
  2553. </div>
  2554. <!-- <div class="display">
  2555. <el-button size="small" style="width:100px;" @click="codedialogVisible = false">关闭</el-button>
  2556. </div>-->
  2557. </div>
  2558. <span slot="footer" class="dialog-footer display">
  2559. <el-button size="small" style="width: 100px; border-color: #d42426; color: #d42426"
  2560. @click="codedialogVisible = false">关闭</el-button>
  2561. </span>
  2562. </el-dialog>
  2563. <!--第二种 二维码 -->
  2564. <el-dialog :visible.sync="codedialogVisiblePro" width="660px" class="proSaomazhifucodeClass" top="10vh" title="扫码付款">
  2565. <div class="flex j-s">
  2566. <div class="scan-code">
  2567. <div style="font-weight: bold">
  2568. 总金额:
  2569. <span style="color: #2d4d89">{{ sumpremium }}</span>
  2570. </div>
  2571. <div>交强险:{{ jqpremium }}</div>
  2572. <div>车船税:{{ taxamount }}</div>
  2573. <div>商业险:{{ sypremium }}</div>
  2574. <div>驾意险:{{ jypremium }}</div>
  2575. </div>
  2576. <div v-if="['大家财险', '华泰财险'].includes(inscompany)">
  2577. <div v-if="apiType == 1" id="qrcode" ref="qrcode"></div>
  2578. <img v-else :src="paycodeimg" alt style="width: 100%" />
  2579. </div>
  2580. <div v-else>
  2581. <img v-if="['太平财险'].includes(inscompany)" :src="paycodeimg" alt style="width: 200px; height: 200px" />
  2582. <div v-else id="qrcode" ref="qrcode"></div>
  2583. </div>
  2584. <div class="scan-code">
  2585. <div>保险公司:{{ inscompany }}</div>
  2586. <div>车牌号:{{ licenseNo }}</div>
  2587. <div>投保人:{{ applyName }}</div>
  2588. <div>交强险起保日期:{{ jqstartdate }}</div>
  2589. <div>商业险起保日期:{{ systartdate }}</div>
  2590. </div>
  2591. </div>
  2592. <span slot="footer" class="dialog-footer">
  2593. <el-button size="small" style="
  2594. width: 100px;
  2595. background: #eaedf1;
  2596. border-color: #eaedf1;
  2597. color: #2d4d89;
  2598. " @click="codedialogVisiblePro = false">关闭</el-button>
  2599. </span>
  2600. </el-dialog>
  2601. <el-dialog :visible.sync="uploadcardialogVisible" width="960px" style="padding: 10px 20px; box-sizing: border-box"
  2602. @open="closeDialog(0)">
  2603. <div slot="title" class="dialog-title">
  2604. <span>行驶证识别</span>
  2605. </div>
  2606. <el-row :gutter="20">
  2607. <div class="bodys1">
  2608. <div>
  2609. <div class="flex a-c">
  2610. <div class="OCR" style="text-align: center">行驶证主页</div>
  2611. <div style="text-align: center; margin: 20px" @drop="reportDrop">
  2612. <el-upload drag action="#" :show-file-list="false" :auto-upload="false" :on-change="carfrontChange">
  2613. <img v-show="carfrontImg" :src="carfrontImg" style="width: 100%; height: 100%" />
  2614. <img v-show="!carfrontImg" src="../../../../static/carfront.png" style="width: 100%; height: 100%" />
  2615. <span class="slot" v-show="carfrontImg" @click.stop>
  2616. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(carfrontImg)"></i>
  2617. <i class="el-icon-delete" @click.stop="handleRemove('carfrontImg')"></i>
  2618. </span>
  2619. </el-upload>
  2620. </div>
  2621. </div>
  2622. <div class="flex a-c">
  2623. <div class="OCR" style="text-align: center">行驶证副页</div>
  2624. <div style="text-align: center; margin: 20px" @drop="reportDrop">
  2625. <el-upload drag action="#" :show-file-list="false" :auto-upload="false" :on-change="carbackChange">
  2626. <img v-show="carbackImg" :src="carbackImg" style="width: 100%; height: 100%" />
  2627. <img v-show="!carbackImg" src="../../../../static/carback.png" style="width: 100%; height: 100%" />
  2628. <span class="slot" v-show="carbackImg" @click.stop>
  2629. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(carbackImg)"></i>
  2630. <i class="el-icon-delete" @click.stop="handleRemove('carbackImg')"></i>
  2631. </span>
  2632. </el-upload>
  2633. </div>
  2634. </div>
  2635. </div>
  2636. <div style="text-align: center">
  2637. <el-form :model="carform" label-width="130px" size="small">
  2638. <el-form-item label="所有人">
  2639. <el-input v-model="carform.carOwner" autocomplete="off"></el-input>
  2640. </el-form-item>
  2641. <el-form-item label="车牌号">
  2642. <el-input v-model="carform.licenseNo" autocomplete="off"></el-input>
  2643. </el-form-item>
  2644. <el-form-item label="车架号">
  2645. <el-input v-model="carform.frameNo" autocomplete="off"></el-input>
  2646. </el-form-item>
  2647. <el-form-item label="品牌型号">
  2648. <el-input v-model="carform.modelcname" autocomplete="off"></el-input>
  2649. </el-form-item>
  2650. <el-form-item label="发动机号">
  2651. <el-input v-model="carform.engineNo" autocomplete="off"></el-input>
  2652. </el-form-item>
  2653. <el-form-item label="总质量">
  2654. <el-input v-model="carform.grossMass" autocomplete="off"></el-input>
  2655. </el-form-item>
  2656. <el-form-item label="整备质量">
  2657. <el-input v-model="carform.unladenMass" autocomplete="off"></el-input>
  2658. </el-form-item>
  2659. <el-form-item label="核定载质量">
  2660. <el-input v-model="carform.limitLoad" autocomplete="off"></el-input>
  2661. </el-form-item>
  2662. <el-form-item label="核定载客数">
  2663. <el-input v-model="carform.approvedPassengersCapacity" autocomplete="off"></el-input>
  2664. </el-form-item>
  2665. <el-form-item label="注册日期">
  2666. <el-input v-model="carform.registerDate" autocomplete="off"></el-input>
  2667. </el-form-item>
  2668. <el-form-item label="发证日期">
  2669. <el-input v-model="carform.issueDate" autocomplete="off"></el-input>
  2670. </el-form-item>
  2671. </el-form>
  2672. </div>
  2673. </div>
  2674. </el-row>
  2675. <span slot="footer" class="dialog-footer">
  2676. <el-button type="primary" @click="CarOCRdiscern()" size="small">识 别</el-button>
  2677. <el-button type="primary" @click="CarOCRconfirm()" size="small">确 认</el-button>
  2678. </span>
  2679. </el-dialog>
  2680. <el-dialog :visible.sync="uploaduserdialogVisible" width="960px" style="padding: 10px 20px; box-sizing: border-box"
  2681. @open="closeDialog(userIndex)">
  2682. <el-tabs v-model="activeName">
  2683. <el-tab-pane label="身份证识别" name="1">
  2684. <el-row :gutter="20">
  2685. <div class="bodys1">
  2686. <div>
  2687. <div class="flex">
  2688. <div class="OCR" style="text-align: center">身份证主页</div>
  2689. <div style="text-align: center; margin: 20px" @drop="reportDrop">
  2690. <el-upload class="upload-demo" drag action="#" :show-file-list="false" :auto-upload="false"
  2691. :on-change="userfrontChange">
  2692. <img v-show="userfrontImg" :src="userfrontImg" style="width: 100%; height: 100%" />
  2693. <img v-show="!userfrontImg" src="../../../../static/userfront.png"
  2694. style="width: 100%; height: 100%" />
  2695. <span class="slot" v-show="userfrontImg" @click.stop>
  2696. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(userfrontImg)"></i>
  2697. <i class="el-icon-delete" @click.stop="handleRemove('userfrontImg')"></i>
  2698. </span>
  2699. </el-upload>
  2700. </div>
  2701. </div>
  2702. <div class="flex">
  2703. <div class="OCR" style="text-align: center">身份证副页</div>
  2704. <div style="text-align: center; margin: 20px" @drop="reportDrop">
  2705. <el-upload class="upload-demo" drag action="#" :show-file-list="false" :auto-upload="false"
  2706. :on-change="userbackChange">
  2707. <img v-show="userbackImg" :src="userbackImg" style="width: 100%; height: 100%" />
  2708. <img v-show="!userbackImg" src="../../../../static/userback.png"
  2709. style="width: 100%; height: 100%" />
  2710. <span class="slot" v-show="userbackImg" @click.stop>
  2711. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(userbackImg)"></i>
  2712. <i class="el-icon-delete" @click.stop="handleRemove('userbackImg')"></i>
  2713. </span>
  2714. </el-upload>
  2715. </div>
  2716. </div>
  2717. </div>
  2718. <div style="text-align: center">
  2719. <el-form :model="ownerInfoform" label-width="130px" size="small">
  2720. <el-form-item label="姓名">
  2721. <el-input v-model="ownerInfoform.name" autocomplete="off"></el-input>
  2722. </el-form-item>
  2723. <el-form-item label="性别">
  2724. <el-input v-model="ownerInfoform.gender" autocomplete="off"></el-input>
  2725. </el-form-item>
  2726. <el-form-item label="证件类型">
  2727. <el-input v-model="ownerInfoform.identifyType" autocomplete="off"></el-input>
  2728. </el-form-item>
  2729. <el-form-item label="证件号码">
  2730. <el-input v-model="ownerInfoform.identifyNumber" autocomplete="off"></el-input>
  2731. </el-form-item>
  2732. <el-form-item label="车主手机号">
  2733. <el-input v-model="ownerInfoform.mobile" autocomplete="off"></el-input>
  2734. </el-form-item>
  2735. <el-form-item label="地址">
  2736. <el-input v-model="ownerInfoform.addr" autocomplete="off"></el-input>
  2737. </el-form-item>
  2738. <el-form-item label="有效期起期">
  2739. <el-input disabled v-model="ownerInfoform.identifyValidDate" autocomplete="off"></el-input>
  2740. </el-form-item>
  2741. <el-form-item label="有效期止期">
  2742. <el-input disabled v-model="ownerInfoform.identifyValidEndDate" autocomplete="off"></el-input>
  2743. </el-form-item>
  2744. <el-form-item label="电子邮箱">
  2745. <el-input v-model="ownerInfoform.email" autocomplete="off"></el-input>
  2746. </el-form-item>
  2747. </el-form>
  2748. </div>
  2749. </div>
  2750. </el-row>
  2751. </el-tab-pane>
  2752. <el-tab-pane label="营业执照" name="2">
  2753. <el-row :gutter="20">
  2754. <div class="bodys1">
  2755. <div>
  2756. <div class="flex">
  2757. <div class="OCR" style="text-align: center">营业执照</div>
  2758. <div style="text-align: center; margin: 20px" @drop="reportDrop">
  2759. <el-upload class="upload-demo" drag action="#" :show-file-list="false" :auto-upload="false"
  2760. :on-change="userfrontChange">
  2761. <img v-show="businessImg" :src="businessImg" style="width: 100%; height: 100%" />
  2762. <img v-show="!businessImg" src="../../../../static/userfront.png"
  2763. style="width: 100%; height: 100%" />
  2764. <span class="slot" v-show="businessImg" @click.stop>
  2765. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(businessImg)"></i>
  2766. <i class="el-icon-delete" @click.stop="handleRemove('businessImg')"></i>
  2767. </span>
  2768. </el-upload>
  2769. </div>
  2770. </div>
  2771. </div>
  2772. <div style="text-align: center">
  2773. <el-form :model="ownerInfoform" label-width="130px" size="small">
  2774. <el-form-item label="单位名称">
  2775. <el-input autocomplete="off"></el-input>
  2776. </el-form-item>
  2777. <el-form-item label="法人">
  2778. <el-input autocomplete="off"></el-input>
  2779. </el-form-item>
  2780. <el-form-item label="社会信用代码">
  2781. <el-input autocomplete="off"></el-input>
  2782. </el-form-item>
  2783. <el-form-item label="地址">
  2784. <el-input autocomplete="off"></el-input>
  2785. </el-form-item>
  2786. <el-form-item label="经营范围">
  2787. <el-input autocomplete="off"></el-input>
  2788. </el-form-item>
  2789. <el-form-item label="注册资本">
  2790. <el-input autocomplete="off"></el-input>
  2791. </el-form-item>
  2792. </el-form>
  2793. </div>
  2794. </div>
  2795. </el-row>
  2796. </el-tab-pane>
  2797. </el-tabs>
  2798. <span slot="footer" class="dialog-footer">
  2799. <el-button type="primary" @click="userOCRdiscern()" size="small">识 别</el-button>
  2800. <el-button type="primary" @click="userOCRconfirm()" size="small">确 认</el-button>
  2801. </span>
  2802. </el-dialog>
  2803. <el-dialog :visible.sync="pinganDataDetailVisible" width="40%" title="责任明细">
  2804. <el-table
  2805. :data="pinganDataDetail"
  2806. border
  2807. style="width: 100%">
  2808. <el-table-column
  2809. prop="insuranceCoverage"
  2810. label="责任名称">
  2811. </el-table-column>
  2812. <el-table-column
  2813. prop="unitInsuredAmount"
  2814. label="每份保额">
  2815. </el-table-column>
  2816. </el-table>
  2817. </el-dialog>
  2818. <div v-if="isLetter == '1'" class="flex j-c a-c footer" :class="$store.state.app.collapse ? 'position-collapse-left' : 'position-left'
  2819. ">
  2820. <el-button size="small" @click="add()">录下一单</el-button>
  2821. <el-button type="primary" :loading="calculateLoading" size="small" @click="quote1()">保费计算</el-button>
  2822. </div>
  2823. <div v-if="isLetter == '2'" style="text-align: center">
  2824. <el-button type="primary" :loading="calculateLoading" size="small" @click="quote1()">保费计算</el-button>
  2825. </div>
  2826. <div class="Anchor-link flex f-c j-s a-c" v-if="isLetter == '1'">
  2827. <div>
  2828. <img src="../../../../src/icon/车辆信息.png" alt class="icon-img" @click="handleScroll('Car')" />
  2829. </div>
  2830. <div>
  2831. <img src="../../../../src/icon/投保信息.png" alt class="icon-img" @click="handleScroll('insurance')" />
  2832. </div>
  2833. <div>
  2834. <img src="../../../../src/icon/险别选择.png" alt class="icon-img" @click="handleScroll('more')" />
  2835. </div>
  2836. <div>
  2837. <img src="../../../../src/icon/保险公司.png" alt class="icon-img" @click="handleScroll('company')" />
  2838. </div>
  2839. </div>
  2840. <el-dialog title="核保信息" :visible.sync="underwritingdialogVisible" width="30%">
  2841. <div class="flex j-s f-c">
  2842. <div style="
  2843. font-size: 18px;
  2844. color: #d42426;
  2845. font-weight: 700;
  2846. padding: 10px 30px;
  2847. " v-if="orderstatus == '2'">
  2848. 订单状态:已核保待缴费
  2849. </div>
  2850. </div>
  2851. <span slot="footer" class="dialog-footer" >
  2852. <el-button style="width: 100px" type="primary" size="small" v-if="orderstatus == '2' && queryOrders.inscompany!=='平安财险'"
  2853. @click="Payment(companyId, queryOrders)">缴费二维码</el-button>
  2854. <el-button style="width: 100px" type="primary" size="small" v-if="orderstatus == '2' && queryOrders.inscompany=='平安财险'"
  2855. @click="signature(companyId)">生成签章</el-button>
  2856. </span>
  2857. </el-dialog>
  2858. <el-dialog title="转保确认码" :visible.sync="renewalCodedialogVisible" width="400px" style="font-weight: bold">
  2859. <div class="flex a-c u-f-sa" v-if="renewalCodeJqImg">
  2860. <span>交强转保确认码</span>
  2861. <div class="flex a-c f-c">
  2862. <img :src="renewalCodeJqImg" alt style="width: 150px; height: 40px; margin-bottom: 5px" />
  2863. <el-input v-model="renewalCodeJq" placeholder="请输入确认码" style="width: 150px"></el-input>
  2864. </div>
  2865. </div>
  2866. <div class="flex a-c u-f-sa" v-if="renewalCodeSyImg">
  2867. <span>商业转保确认码</span>
  2868. <div class="flex a-c f-c">
  2869. <img :src="renewalCodeSyImg" alt style="width: 150px; height: 40px; margin-bottom: 5px" />
  2870. <el-input v-model="renewalCodeSy" placeholder="请输入确认码" style="width: 150px"></el-input>
  2871. </div>
  2872. </div>
  2873. <span slot="footer" class="dialog-footer">
  2874. <el-button size="small" @click="renewalCodedialogVisible = false">取 消</el-button>
  2875. <el-button size="small" type="primary" @click="renewalCodeconfirm">确 定</el-button>
  2876. </span>
  2877. </el-dialog>
  2878. <el-dialog :title="contributingState ? '选择特约' : '提交核保'" :visible.sync="hbsubmitdialogVisible" width="1200px">
  2879. <div style="margin-bottom: 20px; font-weight: bold">特约选择</div>
  2880. <el-table size="small" :data="zijinengageListData" border v-loading="contributingLoading"
  2881. @select="zijinengageChange" @select-all="zijinengageChangeAll" ref="expandTablePro" highlight-current-row
  2882. @cell-dblclick="zijincellDblclick" :cell-class-name="tableCellClassName" :header-cell-style="{
  2883. background: '#F7F7F9 ',
  2884. fontWeight: '700',
  2885. color: '#333333',
  2886. }">
  2887. <el-table-column type="selection" width="55"></el-table-column>
  2888. <el-table-column prop="clauseCode" :width="80" label="特约代码" align="center"></el-table-column>
  2889. <el-table-column v-if="contributingState" :width="100" prop="riskName" label="特约险种"
  2890. align="center"></el-table-column>
  2891. <el-table-column prop="clauseName" label="特约名称" align="center"></el-table-column>
  2892. <el-table-column prop="clauseContent" label="特约内容">
  2893. <template slot-scope="scope">
  2894. <el-input @blur="hideInput" size="small" type="textarea" :ref="scope.row.index + ',' + scope.column.index"
  2895. v-model="scope.row.clauseContent" v-if="scope.row.index + ',' + scope.column.index == currentCell &&
  2896. scope.row.modifyFlag == '1'
  2897. "></el-input>
  2898. <span v-else>{{ scope.row.clauseContent }}</span>
  2899. </template>
  2900. </el-table-column>
  2901. </el-table>
  2902. <span slot="footer" class="dialog-footer">
  2903. <el-button size="small" @click="hbsubmitdialogVisible = false">取 消</el-button>
  2904. <el-button v-if="contributingState" size="small" type="primary"
  2905. @click="hbsubmitdialogVisible = false">确定</el-button>
  2906. <el-button v-else size="small" type="primary" @click="hbsubmit">提交核保</el-button>
  2907. </span>
  2908. </el-dialog>
  2909. <!-- <imageDialog ref="imageDialog" :quoteno="quoteno"></imageDialog>-->
  2910. <!-- 报价单 -->
  2911. <quotationDialog ref="quotationDialog" :queryOrders="queryOrders"></quotationDialog>
  2912. <quotationDialogPro ref="quotationDialogPro" :queryOrders="queryOrders"></quotationDialogPro>
  2913. <el-image-viewer v-if="showViewer" :on-close="closeViewer" :z-index="9999" :url-list="[ProViewImg]" />
  2914. <el-dialog :visible.sync="redictInfodialogVisible" width="70%">
  2915. <el-table :data="redictInfoMsg" style="width: 100%">
  2916. <el-table-column prop="description" label="审核意见"></el-table-column>
  2917. <el-table-column prop="opinion" label="备注"></el-table-column>
  2918. </el-table>
  2919. </el-dialog>
  2920. <!-- 生成签章 -->
  2921. <el-dialog :visible.sync="signaturedialogVisible" title="生成签章" width="14%">
  2922. <div >
  2923. <img :src="resultMessageImg" alt style="width: 100%" />
  2924. <!-- <div id="signaturecode" ref="signaturecode"></div> -->
  2925. </div>
  2926. </el-dialog>
  2927. <!-- 保单上传 -->
  2928. <el-dialog :visible.sync="policyUploaddialogVisible" width="30%">
  2929. <div slot="title" class="dialog-title">
  2930. <span>保单上传</span>
  2931. </div>
  2932. <el-form :model="policyNumberForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
  2933. <el-form-item label="交强保单:" prop="jqPolicy">
  2934. <el-upload class="upload-demo" ref="jqPolicyupload" action="#" :limit="1" :auto-upload="false"
  2935. :on-remove="(file) => removePhoto(file, policyNumberForm.jqPolicyList, 'jqPolicyList')"
  2936. :file-list="policyNumberForm.jqPolicyList" :on-change="(file) => policydrivingupload(file, 'jqPolicy')">
  2937. <el-button size="small" type="primary">点击上传</el-button>
  2938. <el-button size="small" type="primary" @click.stop="policyNumberForm.jqPolicyList = []">清空</el-button>
  2939. </el-upload>
  2940. </el-form-item>
  2941. <el-form-item label="商业保单:" prop="syPolicy">
  2942. <el-upload class="upload-demo" ref="syPolicyupload" action="#" :limit="1" :auto-upload="false"
  2943. :on-remove="(file) => removePhoto(file, policyNumberForm.syPolicyList, 'syPolicyList')"
  2944. :file-list="policyNumberForm.syPolicyList" :on-change="(file) => policydrivingupload(file, 'syPolicy')">
  2945. <el-button size="small" type="primary">点击上传</el-button>
  2946. <el-button size="small" type="primary" @click.stop="policyNumberForm.syPolicyList = []">清空</el-button>
  2947. </el-upload>
  2948. </el-form-item>
  2949. <el-form-item label="非车保单:" prop="noPolicy">
  2950. <el-upload class="upload-demo" ref="noPolicyupload" action="#" :limit="1" :auto-upload="false"
  2951. :on-remove="(file) => removePhoto(file, policyNumberForm.noPolicyList, 'noPolicyList')"
  2952. :file-list="policyNumberForm.noPolicyList" :on-change="(file) => policydrivingupload(file, 'noPolicy')">
  2953. <el-button size="small" type="primary">点击上传</el-button>
  2954. <el-button size="small" type="primary" @click.stop="policyNumberForm.noPolicyList = []">清空</el-button>
  2955. </el-upload>
  2956. </el-form-item>
  2957. <el-form-item label="交强电子标志:" prop="jqSign">
  2958. <el-upload class="upload-demo" ref="jqSignupload" action="#" :limit="1" :auto-upload="false"
  2959. :on-remove="(file) => removePhoto(file, policyNumberForm.jqSignList, 'jqSignList')"
  2960. :file-list="policyNumberForm.jqSignList" :on-change="(file) => policydrivingupload(file, 'jqSign')">
  2961. <el-button size="small" type="primary">点击上传</el-button>
  2962. <el-button size="small" type="primary" @click.stop="policyNumberForm.jqSignList = []">清空</el-button>
  2963. </el-upload>
  2964. </el-form-item>
  2965. </el-form>
  2966. <span slot="footer" class="dialog-footer">
  2967. <el-button size="small" @click="policyUploaddialogVisible = false">取 消</el-button>
  2968. <el-button size="small" type="primary" @click="policyUploaddialogVisible = false">确 定</el-button>
  2969. </span>
  2970. </el-dialog>
  2971. <!-- 影像上传 -->
  2972. <el-dialog :visible.sync="imageUploaddialogVisible" width="1070px">
  2973. <div slot="title" class="dialog-title">
  2974. <span>影像上传</span>
  2975. </div>
  2976. <el-row>
  2977. <el-col :span="4">
  2978. <div class="tab-style">
  2979. <li class="liMenu" :class="idx == tabLiIndex ? 'tabLi-style' : ''"
  2980. @click="tabLiScroll(item.scroll, idx)" v-for="(item, idx) in tabLimenu" :key="idx">
  2981. {{ item.name }}
  2982. </li>
  2983. </div>
  2984. </el-col>
  2985. <el-col :span="20" style="height: 320px; overflow-y: auto">
  2986. <div class="flex f-wrap" id="vehicle">
  2987. <div class="aaa">
  2988. <span>1.行驶证主页</span>
  2989. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList1', 'imgList1', 'C01')
  2990. " :file-list="imgList1" ref="upload1" :class="{ styleB: imgList1.length == 1 }">
  2991. <img v-show="imgList1.length == 0" src="../../../../static/carfront.png"
  2992. style="width: 100%; height: 100%" />
  2993. <div slot="file" slot-scope="{ file }" v-if="imgList1.length > 0">
  2994. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2995. <span class="el-upload-list__item-actions">
  2996. <span class="el-upload-list__item-delete"
  2997. @click="handleRemove1(file, 'imageList1', 'imgList1')">
  2998. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2999. <i class="el-icon-delete"></i>
  3000. </span>
  3001. </span>
  3002. </div>
  3003. </el-upload>
  3004. </div>
  3005. <div class="aaa">
  3006. <span>2.行驶证副页</span>
  3007. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList1', 'imgList2', 'D01')
  3008. " :file-list="imgList2" ref="upload2" :class="{ styleB: imgList2.length === 1 }">
  3009. <img v-show="imgList2.length == 0" src="../../../../static/carback.png"
  3010. style="width: 100%; height: 100%" />
  3011. <div slot="file" slot-scope="{ file }">
  3012. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3013. <span class="el-upload-list__item-actions">
  3014. <span class="el-upload-list__item-delete"
  3015. @click="handleRemove1(file, 'imageList1', 'imgList2')">
  3016. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3017. <i class="el-icon-delete"></i>
  3018. </span>
  3019. </span>
  3020. </div>
  3021. </el-upload>
  3022. </div>
  3023. <div class="aaa">
  3024. <span>3.机动车辆登记证书</span>
  3025. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList1', 'imgList12', 'TAR05')
  3026. " :file-list="imgList12" ref="upload2" :class="{ styleB: imgList12.length === 1 }">
  3027. <img v-show="imgList12.length == 0" src="../../../../static/carback.png"
  3028. style="width: 100%; height: 100%" />
  3029. <div slot="file" slot-scope="{ file }">
  3030. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3031. <span class="el-upload-list__item-actions">
  3032. <span class="el-upload-list__item-delete"
  3033. @click="handleRemove1(file, 'imageList1', 'imgList12')">
  3034. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3035. <i class="el-icon-delete"></i>
  3036. </span>
  3037. </span>
  3038. </div>
  3039. </el-upload>
  3040. </div>
  3041. <div class="aaa">
  3042. <span>4.新车合格证</span>
  3043. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3044. drivingupload(file, 'imageList5', 'imgList9', 'XC00')
  3045. " :file-list="imgList9" multiple ref="upload3" :class="{ styleB: imgList9.length === 1 }">
  3046. <img v-show="imgList9.length == 0" src="../../../../static/userfront.png"
  3047. style="width: 100%; height: 100%" />
  3048. <div slot="file" slot-scope="{ file }">
  3049. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3050. <span class="el-upload-list__item-actions">
  3051. <span class="el-upload-list__item-delete"
  3052. @click="handleRemove1(file, 'imageList5', 'imgList9')">
  3053. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3054. <i class="el-icon-delete"></i>
  3055. </span>
  3056. </span>
  3057. </div>
  3058. </el-upload>
  3059. </div>
  3060. <div class="aaa">
  3061. <span>5.购车发票</span>
  3062. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3063. drivingupload(file, 'imageList5', 'imgList10', 'GC00')
  3064. " :file-list="imgList10" multiple ref="upload4"
  3065. :class="{ styleB: imgList10.length === 1 }">
  3066. <img v-show="imgList10.length == 0" src="../../../../static/userfront.png"
  3067. style="width: 100%; height: 100%" />
  3068. <div slot="file" slot-scope="{ file }">
  3069. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3070. <span class="el-upload-list__item-actions">
  3071. <span class="el-upload-list__item-delete"
  3072. @click="handleRemove1(file, 'imageList5', 'imgList10')">
  3073. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3074. <i class="el-icon-delete"></i>
  3075. </span>
  3076. </span>
  3077. </div>
  3078. </el-upload>
  3079. </div>
  3080. </div>
  3081. <div class="flex f-wrap" id="owner">
  3082. <div class="aaa">
  3083. <span>1.车主身份证(正面)</span>
  3084. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList2', 'imgList3', 'C02')
  3085. " :file-list="imgList3" multiple ref="upload3" :class="{ styleB: imgList3.length === 1 }">
  3086. <img v-show="imgList3.length == 0" src="../../../../static/userfront.png"
  3087. style="width: 100%; height: 100%" />
  3088. <div slot="file" slot-scope="{ file }">
  3089. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3090. <span class="el-upload-list__item-actions">
  3091. <span class="el-upload-list__item-delete"
  3092. @click="handleRemove1(file, 'imageList2', 'imgList3')">
  3093. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3094. <i class="el-icon-delete"></i>
  3095. </span>
  3096. </span>
  3097. </div>
  3098. </el-upload>
  3099. </div>
  3100. <div class="aaa">
  3101. <span>2.车主身份证(反面)</span>
  3102. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList2', 'imgList4', 'D02')
  3103. " :file-list="imgList4" multiple ref="upload4" :class="{ styleB: imgList4.length === 1 }">
  3104. <img v-show="imgList4.length == 0" src="../../../../static/userback.png"
  3105. style="width: 100%; height: 100%" />
  3106. <div slot="file" slot-scope="{ file }">
  3107. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3108. <span class="el-upload-list__item-actions">
  3109. <span class="el-upload-list__item-delete"
  3110. @click="handleRemove1(file, 'imageList2', 'imgList4')">
  3111. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3112. <i class="el-icon-delete"></i>
  3113. </span>
  3114. </span>
  3115. </div>
  3116. </el-upload>
  3117. </div>
  3118. <div class="aaa">
  3119. <span>3.营业执照</span>
  3120. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag multiple
  3121. ref="upload4">
  3122. <img src="../../../../static/userfront.png" style="width: 100%; height: 100%" />
  3123. <div slot="file" slot-scope="{ file }">
  3124. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3125. <span class="el-upload-list__item-actions">
  3126. <span class="el-upload-list__item-delete"
  3127. @click="handleRemove1(file, 'imageList2', 'imgList4')">
  3128. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3129. <i class="el-icon-delete"></i>
  3130. </span>
  3131. </span>
  3132. </div>
  3133. </el-upload>
  3134. </div>
  3135. </div>
  3136. <div class="flex f-wrap" id="applicant">
  3137. <div class="aaa">
  3138. <span>1.投保人身份证(正面)</span>
  3139. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList3', 'imgList5', 'C03')
  3140. " :file-list="imgList5" multiple ref="upload5" :class="{ styleB: imgList5.length === 1 }">
  3141. <img v-show="imgList5.length == 0" src="../../../../static/userfront.png"
  3142. style="width: 100%; height: 100%" />
  3143. <div slot="file" slot-scope="{ file }">
  3144. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3145. <span class="el-upload-list__item-actions">
  3146. <span class="el-upload-list__item-delete"
  3147. @click="handleRemove1(file, 'imageList3', 'imgList5')">
  3148. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3149. <i class="el-icon-delete"></i>
  3150. </span>
  3151. </span>
  3152. </div>
  3153. </el-upload>
  3154. </div>
  3155. <div class="aaa">
  3156. <span>2.投保人身份证(反面)</span>
  3157. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList3', 'imgList6', 'D03')
  3158. " :file-list="imgList6" multiple ref="upload6" :class="{ styleB: imgList6.length === 1 }">
  3159. <img v-show="imgList6.length == 0" src="../../../../static/userback.png"
  3160. style="width: 100%; height: 100%" />
  3161. <div slot="file" slot-scope="{ file }">
  3162. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3163. <span class="el-upload-list__item-actions">
  3164. <span class="el-upload-list__item-delete"
  3165. @click="handleRemove1(file, 'imageList3', 'imgList6')">
  3166. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3167. <i class="el-icon-delete"></i>
  3168. </span>
  3169. </span>
  3170. </div>
  3171. </el-upload>
  3172. </div>
  3173. <div class="aaa">
  3174. <span>3.营业执照</span>
  3175. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag multiple
  3176. ref="upload4">
  3177. <img src="../../../../static/userfront.png" style="width: 100%; height: 100%" />
  3178. <div slot="file" slot-scope="{ file }">
  3179. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3180. <span class="el-upload-list__item-actions">
  3181. <span class="el-upload-list__item-delete"
  3182. @click="handleRemove1(file, 'imageList2', 'imgList4')">
  3183. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3184. <i class="el-icon-delete"></i>
  3185. </span>
  3186. </span>
  3187. </div>
  3188. </el-upload>
  3189. </div>
  3190. </div>
  3191. <div class="flex f-wrap">
  3192. <div class="aaa">
  3193. <span id="insured">1.被保人身份证(正面)</span>
  3194. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList4', 'imgList7', 'C04')
  3195. " :file-list="imgList7" multiple ref="upload7" :class="{ styleB: imgList7.length === 1 }">
  3196. <img v-show="imgList7.length == 0" src="../../../../static/userfront.png"
  3197. style="width: 100%; height: 100%" />
  3198. <div slot="file" slot-scope="{ file }">
  3199. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3200. <span class="el-upload-list__item-actions">
  3201. <span class="el-upload-list__item-delete"
  3202. @click="handleRemove1(file, 'imageList4', 'imgList7')">
  3203. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3204. <i class="el-icon-delete"></i>
  3205. </span>
  3206. </span>
  3207. </div>
  3208. </el-upload>
  3209. </div>
  3210. <div class="aaa">
  3211. <span>2.被保人身份证(反面)</span>
  3212. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList4', 'imgList8', 'D04')
  3213. " :file-list="imgList8" multiple ref="upload8" :class="{ styleB: imgList8.length === 1 }">
  3214. <img v-show="imgList8.length == 0" src="../../../../static/userback.png"
  3215. style="width: 100%; height: 100%" />
  3216. <div slot="file" slot-scope="{ file }">
  3217. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3218. <span class="el-upload-list__item-actions">
  3219. <span class="el-upload-list__item-delete"
  3220. @click="handleRemove1(file, 'imageList4', 'imgList8')">
  3221. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3222. <i class="el-icon-delete"></i>
  3223. </span>
  3224. </span>
  3225. </div>
  3226. </el-upload>
  3227. </div>
  3228. <div class="aaa">
  3229. <span>3.营业执照</span>
  3230. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag multiple
  3231. ref="upload4">
  3232. <img src="../../../../static/userfront.png" style="width: 100%; height: 100%" />
  3233. <div slot="file" slot-scope="{ file }">
  3234. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3235. <span class="el-upload-list__item-actions">
  3236. <span class="el-upload-list__item-delete"
  3237. @click="handleRemove1(file, 'imageList2', 'imgList4')">
  3238. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3239. <i class="el-icon-delete"></i>
  3240. </span>
  3241. </span>
  3242. </div>
  3243. </el-upload>
  3244. </div>
  3245. </div>
  3246. <div class="flex f-wrap" id="relationship">
  3247. <div class="aaa">
  3248. <span>1.关系证明</span>
  3249. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3250. drivingupload(file, 'imageList5', 'imgList11', 'GX00')
  3251. " :file-list="imgList11" multiple ref="upload3"
  3252. :class="{ styleB: imgList11.length === 1 }">
  3253. <img v-show="imgList11.length == 0" src="../../../../static/userfront.png"
  3254. style="width: 100%; height: 100%" />
  3255. <div slot="file" slot-scope="{ file }">
  3256. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3257. <span class="el-upload-list__item-actions">
  3258. <span class="el-upload-list__item-delete"
  3259. @click="handleRemove1(file, 'imageList5', 'imgList11')">
  3260. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3261. <i class="el-icon-delete"></i>
  3262. </span>
  3263. </span>
  3264. </div>
  3265. </el-upload>
  3266. </div>
  3267. </div>
  3268. <div class="flex f-wrap" id="yanchezhao">
  3269. <div class="aaa">
  3270. <span>1.验车照(车架)</span>
  3271. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3272. drivingupload(file, 'imageList6', 'imgList13', 'C0500')
  3273. " :file-list="imgList13" multiple ref="upload3"
  3274. :class="{ styleB: imgList13.length === 1 }">
  3275. <img v-show="imgList13.length == 0" src="../../../../static/userfront.png"
  3276. style="width: 100%; height: 100%" />
  3277. <div slot="file" slot-scope="{ file }">
  3278. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3279. <span class="el-upload-list__item-actions">
  3280. <span class="el-upload-list__item-delete"
  3281. @click="handleRemove1(file, 'imageList6', 'imgList13')">
  3282. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3283. <i class="el-icon-delete"></i>
  3284. </span>
  3285. </span>
  3286. </div>
  3287. </el-upload>
  3288. </div>
  3289. <div class="aaa">
  3290. <span>2.验车照(后左)</span>
  3291. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3292. drivingupload(file, 'imageList6', 'imgList14', 'C0501')
  3293. " :file-list="imgList14" multiple ref="upload3"
  3294. :class="{ styleB: imgList14.length === 1 }">
  3295. <img v-show="imgList14.length == 0" src="../../../../static/userfront.png"
  3296. style="width: 100%; height: 100%" />
  3297. <div slot="file" slot-scope="{ file }">
  3298. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3299. <span class="el-upload-list__item-actions">
  3300. <span class="el-upload-list__item-delete"
  3301. @click="handleRemove1(file, 'imageList6', 'imgList14')">
  3302. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3303. <i class="el-icon-delete"></i>
  3304. </span>
  3305. </span>
  3306. </div>
  3307. </el-upload>
  3308. </div>
  3309. <div class="aaa">
  3310. <span>3.验车照(后右)</span>
  3311. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3312. drivingupload(file, 'imageList6', 'imgList15', 'C0502')
  3313. " :file-list="imgList15" multiple ref="upload3"
  3314. :class="{ styleB: imgList15.length === 1 }">
  3315. <img v-show="imgList15.length == 0" src="../../../../static/userfront.png"
  3316. style="width: 100%; height: 100%" />
  3317. <div slot="file" slot-scope="{ file }">
  3318. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3319. <span class="el-upload-list__item-actions">
  3320. <span class="el-upload-list__item-delete"
  3321. @click="handleRemove1(file, 'imageList6', 'imgList15')">
  3322. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3323. <i class="el-icon-delete"></i>
  3324. </span>
  3325. </span>
  3326. </div>
  3327. </el-upload>
  3328. </div>
  3329. <div class="aaa">
  3330. <span>4.验车照(前右)</span>
  3331. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3332. drivingupload(file, 'imageList6', 'imgList16', 'C0503')
  3333. " :file-list="imgList16" multiple ref="upload3"
  3334. :class="{ styleB: imgList16.length === 1 }">
  3335. <img v-show="imgList16.length == 0" src="../../../../static/userfront.png"
  3336. style="width: 100%; height: 100%" />
  3337. <div slot="file" slot-scope="{ file }">
  3338. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3339. <span class="el-upload-list__item-actions">
  3340. <span class="el-upload-list__item-delete"
  3341. @click="handleRemove1(file, 'imageList6', 'imgList16')">
  3342. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3343. <i class="el-icon-delete"></i>
  3344. </span>
  3345. </span>
  3346. </div>
  3347. </el-upload>
  3348. </div>
  3349. <div class="aaa">
  3350. <span>5.验车照(前左)</span>
  3351. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3352. drivingupload(file, 'imageList6', 'imgList17', 'C0504')
  3353. " :file-list="imgList17" multiple ref="upload3"
  3354. :class="{ styleB: imgList17.length === 1 }">
  3355. <img v-show="imgList17.length == 0" src="../../../../static/userfront.png"
  3356. style="width: 100%; height: 100%" />
  3357. <div slot="file" slot-scope="{ file }">
  3358. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3359. <span class="el-upload-list__item-actions">
  3360. <span class="el-upload-list__item-delete"
  3361. @click="handleRemove1(file, 'imageList6', 'imgList17')">
  3362. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3363. <i class="el-icon-delete"></i>
  3364. </span>
  3365. </span>
  3366. </div>
  3367. </el-upload>
  3368. </div>
  3369. <div class="aaa">
  3370. <span>6.验车照(正前)</span>
  3371. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3372. drivingupload(file, 'imageList6', 'imgList18', 'C0506')
  3373. " :file-list="imgList18" multiple ref="upload3"
  3374. :class="{ styleB: imgList18.length === 1 }">
  3375. <img v-show="imgList18.length == 0" src="../../../../static/userfront.png"
  3376. style="width: 100%; height: 100%" />
  3377. <div slot="file" slot-scope="{ file }">
  3378. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3379. <span class="el-upload-list__item-actions">
  3380. <span class="el-upload-list__item-delete"
  3381. @click="handleRemove1(file, 'imageList6', 'imgList18')">
  3382. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3383. <i class="el-icon-delete"></i>
  3384. </span>
  3385. </span>
  3386. </div>
  3387. </el-upload>
  3388. </div>
  3389. <div class="aaa">
  3390. <span>7.验车照(正后)</span>
  3391. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3392. drivingupload(file, 'imageList6', 'imgList19', 'C0507')
  3393. " :file-list="imgList19" multiple ref="upload3"
  3394. :class="{ styleB: imgList19.length === 1 }">
  3395. <img v-show="imgList19.length == 0" src="../../../../static/userfront.png"
  3396. style="width: 100%; height: 100%" />
  3397. <div slot="file" slot-scope="{ file }">
  3398. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3399. <span class="el-upload-list__item-actions">
  3400. <span class="el-upload-list__item-delete"
  3401. @click="handleRemove1(file, 'imageList6', 'imgList19')">
  3402. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3403. <i class="el-icon-delete"></i>
  3404. </span>
  3405. </span>
  3406. </div>
  3407. </el-upload>
  3408. </div>
  3409. <div class="aaa">
  3410. <span>8.验车照(人车合影)</span>
  3411. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3412. drivingupload(file, 'imageList6', 'imgList20', 'C0505')
  3413. " :file-list="imgList20" multiple ref="upload3"
  3414. :class="{ styleB: imgList20.length === 1 }">
  3415. <img v-show="imgList20.length == 0" src="../../../../static/userfront.png"
  3416. style="width: 100%; height: 100%" />
  3417. <div slot="file" slot-scope="{ file }">
  3418. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3419. <span class="el-upload-list__item-actions">
  3420. <span class="el-upload-list__item-delete"
  3421. @click="handleRemove1(file, 'imageList6', 'imgList20')">
  3422. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3423. <i class="el-icon-delete"></i>
  3424. </span>
  3425. </span>
  3426. </div>
  3427. </el-upload>
  3428. </div>
  3429. <div class="aaa">
  3430. <span>9.验车照(地标合影)</span>
  3431. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3432. drivingupload(file, 'imageList6', 'imgList21', 'C0508')
  3433. " :file-list="imgList21" multiple ref="upload3"
  3434. :class="{ styleB: imgList21.length === 1 }">
  3435. <img v-show="imgList21.length == 0" src="../../../../static/userfront.png"
  3436. style="width: 100%; height: 100%" />
  3437. <div slot="file" slot-scope="{ file }">
  3438. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3439. <span class="el-upload-list__item-actions">
  3440. <span class="el-upload-list__item-delete"
  3441. @click="handleRemove1(file, 'imageList6', 'imgList21')">
  3442. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3443. <i class="el-icon-delete"></i>
  3444. </span>
  3445. </span>
  3446. </div>
  3447. </el-upload>
  3448. </div>
  3449. <div class="aaa">
  3450. <span>10.验车照(工作台)</span>
  3451. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3452. drivingupload(file, 'imageList6', 'imgList22', 'C0509')
  3453. " :file-list="imgList22" multiple ref="upload3"
  3454. :class="{ styleB: imgList22.length === 1 }">
  3455. <img v-show="imgList22.length == 0" src="../../../../static/userfront.png"
  3456. style="width: 100%; height: 100%" />
  3457. <div slot="file" slot-scope="{ file }">
  3458. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3459. <span class="el-upload-list__item-actions">
  3460. <span class="el-upload-list__item-delete"
  3461. @click="handleRemove1(file, 'imageList6', 'imgList22')">
  3462. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3463. <i class="el-icon-delete"></i>
  3464. </span>
  3465. </span>
  3466. </div>
  3467. </el-upload>
  3468. </div>
  3469. <div class="aaa">
  3470. <span>11.验车照(天窗)</span>
  3471. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3472. drivingupload(file, 'imageList6', 'imgList23', 'C0510')
  3473. " :file-list="imgList23" multiple ref="upload3"
  3474. :class="{ styleB: imgList23.length === 1 }">
  3475. <img v-show="imgList23.length == 0" src="../../../../static/userfront.png"
  3476. style="width: 100%; height: 100%" />
  3477. <div slot="file" slot-scope="{ file }">
  3478. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3479. <span class="el-upload-list__item-actions">
  3480. <span class="el-upload-list__item-delete"
  3481. @click="handleRemove1(file, 'imageList6', 'imgList23')">
  3482. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3483. <i class="el-icon-delete"></i>
  3484. </span>
  3485. </span>
  3486. </div>
  3487. </el-upload>
  3488. </div>
  3489. </div>
  3490. <div class="flex f-wrap" id="snbaodan">
  3491. <div class="aaa">
  3492. <span>1.上年商业险保单</span>
  3493. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  3494. drivingupload(file, 'imageList6', 'imgList24', 'LAST_INSURANCE_POLICY')
  3495. " :file-list="imgList24" multiple ref="upload3"
  3496. :class="{ styleB: imgList24.length === 1 }">
  3497. <img v-show="imgList24.length == 0" src="../../../../static/userfront.png"
  3498. style="width: 100%; height: 100%" />
  3499. <div slot="file" slot-scope="{ file }">
  3500. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  3501. <span class="el-upload-list__item-actions">
  3502. <span class="el-upload-list__item-delete"
  3503. @click="handleRemove1(file, 'imageList6', 'imgList24')">
  3504. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  3505. <i class="el-icon-delete"></i>
  3506. </span>
  3507. </span>
  3508. </div>
  3509. </el-upload>
  3510. </div>
  3511. </div>
  3512. </el-col>
  3513. </el-row>
  3514. <span slot="footer" class="dialog-footer">
  3515. <el-button size="small" @click="imageUploaddialogVisible = false">取 消</el-button>
  3516. <el-button size="small" type="primary" @click="uploadinformation">上传资料</el-button>
  3517. </span>
  3518. </el-dialog>
  3519. <!-- 调整险种弹窗 -->
  3520. <el-dialog title="调整险种" :visible.sync="typeDialogVisible" width="60%" top="5vh"
  3521. :before-close="handleCloseType">
  3522. <div class="typedialog-style addyiwai typedialog-style1" v-if="productId != '034001' && productId != '034002'">
  3523. <div class="typedialog-title"><i class="el-icon-circle-check" style="color: #D42426; font-size: 20px; margin-right: 10px;"></i>交通事故强制责任险:</div>
  3524. <el-table :data="typeJqTable" border style="width: 100%" stripe header-cell-class-name="table-header">
  3525. <el-table-column prop="date" label="保障范围" align="center"></el-table-column>
  3526. <el-table-column prop="date1" label="保额(元)" align="center"></el-table-column>
  3527. <!-- <el-table-column prop="date2" label="总计" align="center"></el-table-column> -->
  3528. </el-table>
  3529. </div>
  3530. <div class="typedialog-style addyiwai typedialog-style2" v-if="productId != '0330'">
  3531. <!-- 商业险 -->
  3532. <div class="typedialog-title"><i class="el-icon-circle-check" style="color: #D42426; font-size: 20px; margin-right: 10px;"></i>商业险详情:</div>
  3533. <div class="flex f-c">
  3534. <div class="flex j-s a-c more-title back">
  3535. <div style="width: 550px; padding-left: 100px" class="flex j-s a-c">
  3536. <span>险别</span>
  3537. <span>保额(元)</span>
  3538. </div>
  3539. </div>
  3540. <div class="a-c back" v-for="(insureitem, insureindex) in typeDialogData.kinds" :key="insureindex">
  3541. <el-row style="background: #FFF;" type="flex" align="middle">
  3542. <el-col :span="10" class="more-data-left">
  3543. <div class="zhuxian" v-if="insureitem.grouping == 'main'" style="background: #E0282A">主险</div>
  3544. <div class="zhuxian" v-if="insureitem.grouping == 'additional'">附加险</div>
  3545. <div class="zhuxian" v-if="insureitem.grouping == 'service'">增值服务</div>
  3546. <span>
  3547. <el-checkbox v-model="insureitem.checked" :disabled="insureitem.Required">
  3548. <!-- <span :class="insureitem.grouping != 'additional' ? 'opacity1' : 'opacity0'">{{ insureitem.kindName }}</span> -->
  3549. <span class="opacity1">{{ insureitem.kindName }}</span>
  3550. <el-input v-show="insureitem.kindCode == 'D4' ||
  3551. insureitem.kindCode == 'MJ4' ||
  3552. insureitem.kindCode == 'SY_FJ_YBW2'
  3553. " v-model="sumseatCount" style="width: 40px; margin: 0 5px" size="small" placeholder
  3554. disabled></el-input>
  3555. <span v-show="insureitem.kindCode == 'D4' ||
  3556. insureitem.kindCode == 'MJ4' ||
  3557. insureitem.kindCode == 'SY_FJ_YBW2'
  3558. ">座</span>
  3559. </el-checkbox>
  3560. </span>
  3561. </el-col>
  3562. <el-col :span="14" class="more-data-right">
  3563. <el-select v-if="insureitem.amtList" filterable v-model="insureitem.amount" placeholder="请选择"
  3564. @change="insureitemChange($event, insureitem)" size="small" style="width: 300px">
  3565. <el-option :label="item.label" :value="item.value" v-for="(item, index) in insureitem.amtList"
  3566. :key="index"></el-option>
  3567. </el-select>
  3568. <span v-else>
  3569. <el-input-number size="small" style="width: 280px; margin-right: 10px" v-model="insureitem.amount"
  3570. :min="0"></el-input-number>次
  3571. </span>
  3572. </el-col>
  3573. </el-row>
  3574. </div>
  3575. </div>
  3576. </div>
  3577. <div class="typedialog-style addyiwai typedialog-style3">
  3578. <!-- <div class="typedialog-title"><i class="el-icon-circle-check" style="color: #D42426; font-size: 20px; margin-right: 10px;"></i>驾意险详情:</div> -->
  3579. <div class="typedialog-style">
  3580. <div class="flex a-c" style="margin-bottom: 20px;">
  3581. <div class="typedialog-title addyiwai-title"><i class="el-icon-circle-check" style="color: #D42426; font-size: 20px; margin-right: 10px;"></i>驾意险方案配置:</div>
  3582. <div v-if="false" class="addyiwai-title-btn">添加配置</div>
  3583. </div>
  3584. <div v-if="true">
  3585. <div v-for="(listItem, listIndex) in jiayiDialogData.drivingTypeList" :key="listIndex" v-show="listIndex == 0">
  3586. <el-checkbox-group v-model="checkList" @change="handleChangeJiayi(listItem, listIndex)">
  3587. <el-checkbox v-for="(item, index) in listItem.children" :key="index" :label="item">{{item.typeName}}</el-checkbox>
  3588. </el-checkbox-group>
  3589. <div v-for="(item, index) in checkList" :key="index" style="margin-bottom: 20px;">
  3590. <div v-if="totalCompanyList[typeDialogIndex].cnName == 'zijin'">
  3591. <el-row style="margin-bottom: 20px;">
  3592. <el-col :span="10">
  3593. {{ item.typeName }}
  3594. <el-select v-if="item.detail" style="width: 300px;" v-model="item.selectList" clearable multiple @change="handleChangeSelect(index)" size="small" placeholder="请选择">
  3595. <el-option v-for="(i, ind) in item.detail" :key="ind" :label="i.alias" :value="i.alias">
  3596. </el-option>
  3597. </el-select>
  3598. </el-col>
  3599. </el-row>
  3600. <div v-for="(dataItem, dataIndex) in item.tableData" :key="dataIndex">
  3601. <el-col :span="6">
  3602. 份数
  3603. <el-input v-model="dataItem.quantity" style="width: 120px;" size="small">
  3604. <template slot="prepend"><i class="el-icon-minus" @click="numberChange(listIndex, index, 'minus',dataItem.minQuantity, dataIndex)"></i></template>
  3605. <template slot="append"><i class="el-icon-plus" @click="numberChange(listIndex, index, 'plus',dataItem.minQuantity, dataIndex)"></i></template>
  3606. </el-input>
  3607. 份
  3608. </el-col>
  3609. <el-col v-if="item.tableData" :span="4" class="flex a-c">保费:{{ Number(dataItem.sumPremium) * dataItem.quantity }}元</el-col>
  3610. </div>
  3611. <el-table v-if="item.tableData && item.tableData.length" :data="item.tableData" border style="width: 100%; margin-top: 20px;" stripe
  3612. header-cell-class-name="table-header">
  3613. <el-table-column prop="name" label="保险责任" align="center">
  3614. <template slot-scope="scope">
  3615. <span>{{ scope.row.insDrivingIntentionInsuranceSon[0].name }}</span>
  3616. </template>
  3617. </el-table-column>
  3618. <el-table-column prop="amount" label="保险金额" align="center">
  3619. <template slot-scope="scope">
  3620. <span>{{ scope.row.insDrivingIntentionInsuranceSon[0].amount }}</span>
  3621. </template>
  3622. </el-table-column>
  3623. <el-table-column prop="premium" label="保费(元)" align="center">
  3624. <template slot-scope="scope">
  3625. <span>{{ scope.row.insDrivingIntentionInsuranceSon[0].premium }}</span>
  3626. </template>
  3627. </el-table-column>
  3628. <el-table-column prop="quantity" label="份数" align="center"></el-table-column>
  3629. <el-table-column prop="sumPremium" label="总保费" align="center"></el-table-column>
  3630. </el-table>
  3631. </div>
  3632. <div v-else>
  3633. <!-- totalCompanyList[typeDialogIndex].cnName == 'guoRen' || totalCompanyList[typeDialogIndex].cnName == 'ansheng' || totalCompanyList[typeDialogIndex].cnName == 'dajia' -->
  3634. <el-row v-if="false">
  3635. <el-col :span="8">
  3636. {{ item.typeName }}
  3637. <el-select v-model="item.select" style="width: 400px;" clearable @change="handleChangeSelectGuoren(index)" size="small" placeholder="请选择" v-if="item.detail">
  3638. <el-option v-for="(i, ind) in item.detail" :key="ind" :label="i.alias" :value="i.alias">
  3639. </el-option>
  3640. </el-select>
  3641. </el-col>
  3642. <el-col :span="5">
  3643. <el-select v-model="item.select1" clearable @change="handleChangeSelect(index)" size="small" placeholder="请选择" v-if="item.tableData1">
  3644. <el-option v-for="(i, ind) in item.tableData1" :key="ind" :label="i.alias" :value="i.alias">
  3645. </el-option>
  3646. </el-select>
  3647. </el-col>
  3648. <el-col :span="6" v-if="item.tableData">
  3649. 份数
  3650. <!-- <el-input-number v-model="item.tableData.quantity" :step="1" :min="1" :max="10" @change="numberChange(listIndex, index)" size="small"></el-input-number> -->
  3651. <el-input v-model="item.tableData.quantity" style="width: 120px;" size="small">
  3652. <template slot="prepend"><i class="el-icon-minus" @click="numberChange(listIndex, index, 'minus',item.tableData.minQuantity)"></i></template>
  3653. <template slot="append"><i class="el-icon-plus" @click="numberChange(listIndex, index, 'plus',item.tableData.minQuantity)"></i></template>
  3654. </el-input>
  3655. 份
  3656. </el-col>
  3657. <el-col v-if="item.tableData" :span="4">保费:{{ Number(item.tableData.sumPremium) * item.tableData.quantity }}元</el-col>
  3658. <!-- <el-col :span="1"><i class="el-icon-delete"></i></el-col> -->
  3659. </el-row>
  3660. <el-row v-else>
  3661. <el-col :span="12">
  3662. {{ item.typeName }}
  3663. <el-select v-model="item.select" style="width: 400px;" clearable @change="handleChangeSelect(index)" size="small" placeholder="请选择" v-if="item.detail">
  3664. <el-option v-for="(i, ind) in item.detail" :key="ind" :label="i.alias" :value="i.alias">
  3665. </el-option>
  3666. </el-select>
  3667. </el-col>
  3668. <el-col :span="6" v-if="item.tableData">
  3669. 份数
  3670. <!-- <el-input-number v-model="item.tableData.quantity" :step="1" :min="1" :max="10" @change="numberChange(listIndex, index)" label="描述文字" size="small"></el-input-number> -->
  3671. <el-input v-model="item.tableData.quantity" style="width: 120px;" size="small">
  3672. <template slot="prepend"><i class="el-icon-minus" @click="numberChange(listIndex, index, 'minus',item.tableData.minQuantity)"></i></template>
  3673. <template slot="append"><i class="el-icon-plus" @click="numberChange(listIndex, index, 'plus',item.tableData.minQuantity)"></i></template>
  3674. </el-input>
  3675. 份
  3676. </el-col>
  3677. <el-col v-if="item.tableData" :span="4" class="flex a-c">保费:{{ Number(item.tableData.sumPremium) * item.tableData.quantity }}元</el-col>
  3678. <!-- <el-col :span="1"><i class="el-icon-delete"></i></el-col> -->
  3679. </el-row>
  3680. <el-table v-if="item.tableData" :data="item.tableData.insDrivingIntentionInsuranceSon" border style="width: 100%; margin-top: 20px;" stripe
  3681. header-cell-class-name="table-header">
  3682. <el-table-column prop="name" label="保险责任" align="center"></el-table-column>
  3683. <el-table-column prop="amount" label="保险金额" align="center"></el-table-column>
  3684. <el-table-column prop="premium" label="保费(元)" align="center"></el-table-column>
  3685. </el-table>
  3686. </div>
  3687. </div>
  3688. </div>
  3689. </div>
  3690. <div v-else>
  3691. <div v-for="(item, index) in 3" :key="index" style="margin-bottom: 20px;">
  3692. <el-row style="margin-bottom: 20px;">
  3693. <el-col :span="10">
  3694. 驾意选择
  3695. <!-- v-model="value" -->
  3696. <el-select size="small" clearable placeholder="请选择">
  3697. <el-option v-for="item in 3" :key="item.value" :label="22" :value="22">
  3698. </el-option>
  3699. </el-select>
  3700. </el-col>
  3701. <el-col :span="9">
  3702. 份数
  3703. <el-input-number label="描述文字" size="small"></el-input-number>
  3704. 份
  3705. </el-col>
  3706. <el-col :span="4">保费:15元</el-col>
  3707. <el-col :span="1"><i class="el-icon-delete"></i></el-col>
  3708. </el-row>
  3709. <el-table :data="item.table" border style="width: 100%" stripe
  3710. header-cell-class-name="table-header">
  3711. <el-table-column prop="date" label="保险责任" align="center"></el-table-column>
  3712. <el-table-column prop="date1" label="保险金额" align="center"></el-table-column>
  3713. <el-table-column prop="date2" label="保费(元)" align="center"></el-table-column>
  3714. </el-table>
  3715. </div>
  3716. </div>
  3717. </div>
  3718. </div>
  3719. <span slot="footer" class="dialog-footer">
  3720. <el-button size="small" @click="handleCloseType">取 消</el-button>
  3721. <el-button size="small" type="primary" @click="subTypeDialog">确 定</el-button>
  3722. </span>
  3723. </el-dialog>
  3724. <!-- 驾意险 -->
  3725. <el-dialog title="驾意险" :visible.sync="addYiwaiDialogVisible" width="60%" top="5vh"
  3726. :before-close="handleCloseAddYiwai" class="addyiwai">
  3727. <div class="typedialog-style">
  3728. <el-card>
  3729. <div class="flex a-c" style="margin-bottom: 20px;">
  3730. <div class="addyiwai-title">驾意险方案配置</div>
  3731. <div v-if="false" class="addyiwai-title-btn">添加配置</div>
  3732. </div>
  3733. <div v-if="true">
  3734. <div v-for="(listItem, listIndex) in jiayiDialogData.drivingTypeList" :key="listIndex">
  3735. <el-checkbox-group v-model="checkList" @change="handleChangeJiayi(listItem, listIndex)">
  3736. <el-checkbox v-for="(item, index) in listItem.children" :key="index" :label="item">{{item.typeName}}</el-checkbox>
  3737. </el-checkbox-group>
  3738. <div v-for="(item, index) in checkList" :key="index" style="margin-bottom: 20px;">
  3739. <div v-if="totalCompanyList[typeDialogIndex].cnName == 'zijin'">
  3740. <el-row style="margin-bottom: 20px;">
  3741. <el-col :span="10">
  3742. {{ item.typeName }}
  3743. <el-select v-if="item.detail" v-model="item.selectList" clearable multiple @change="handleChangeSelect(index)" size="small" placeholder="请选择">
  3744. <el-option v-for="(i, ind) in item.detail" :key="ind" :label="i.projectName" :value="i.projectName">
  3745. </el-option>
  3746. </el-select>
  3747. </el-col>
  3748. </el-row>
  3749. <el-table v-if="item.tableData" :data="item.tableData" border style="width: 100%; margin-top: 20px;" stripe
  3750. header-cell-class-name="table-header">
  3751. <el-table-column prop="name" label="保险责任" align="center">
  3752. <template slot-scope="scope">
  3753. <span>{{ scope.row.insDrivingIntentionInsuranceSon[0].name }}</span>
  3754. </template>
  3755. </el-table-column>
  3756. <el-table-column prop="amount" label="保险金额" align="center">
  3757. <template slot-scope="scope">
  3758. <span>{{ scope.row.insDrivingIntentionInsuranceSon[0].amount }}</span>
  3759. </template>
  3760. </el-table-column>
  3761. <el-table-column prop="premium" label="保费(元)" align="center">
  3762. <template slot-scope="scope">
  3763. <span>{{ scope.row.insDrivingIntentionInsuranceSon[0].premium }}</span>
  3764. </template>
  3765. </el-table-column>
  3766. <el-table-column prop="quantity" label="份数" align="center"></el-table-column>
  3767. <el-table-column prop="sumPremium" label="总保费" align="center"></el-table-column>
  3768. </el-table>
  3769. </div>
  3770. <div v-else>
  3771. <!-- totalCompanyList[typeDialogIndex].cnName == 'guoRen' || totalCompanyList[typeDialogIndex].cnName == 'ansheng' -->
  3772. <el-row v-if="false">
  3773. <el-col :span="8">
  3774. {{ item.typeName }}
  3775. <el-select v-model="item.select" clearable @change="handleChangeSelectGuoren(index)" size="small" placeholder="请选择" v-if="item.detail">
  3776. <el-option v-for="(i, ind) in item.detail" :key="ind" :label="i.alias" :value="i.alias">
  3777. </el-option>
  3778. </el-select>
  3779. </el-col>
  3780. <el-col :span="5">
  3781. <el-select v-model="item.select1" clearable @change="handleChangeSelect(index)" size="small" placeholder="请选择" v-if="item.tableData1">
  3782. <el-option v-for="(i, ind) in item.tableData1" :key="ind" :label="i.alias" :value="i.alias">
  3783. </el-option>
  3784. </el-select>
  3785. </el-col>
  3786. <el-col :span="6" v-if="item.tableData">
  3787. 份数
  3788. <!-- <el-input-number v-model="item.tableData.quantity" :step="1" :min="1" :max="10" @change="numberChange(listIndex, index)" size="small"></el-input-number> -->
  3789. <el-input v-model="item.tableData.quantity" style="width: 120px;" size="small">
  3790. <template slot="prepend"><i class="el-icon-minus" @click="numberChange(listIndex, index, 'minus',item.tableData.minQuantity)"></i></template>
  3791. <template slot="append"><i class="el-icon-plus" @click="numberChange(listIndex, index, 'plus',item.tableData.minQuantity)"></i></template>
  3792. </el-input>
  3793. 份
  3794. </el-col>
  3795. <el-col v-if="item.tableData" :span="4">保费:{{ Number(item.tableData.sumPremium) * item.tableData.quantity }}元</el-col>
  3796. <!-- <el-col :span="1"><i class="el-icon-delete"></i></el-col> -->
  3797. </el-row>
  3798. <el-row v-else>
  3799. <el-col :span="10">
  3800. {{ item.typeName }}
  3801. <el-select v-model="item.select" clearable @change="handleChangeSelect(index)" size="small" placeholder="请选择" v-if="item.detail">
  3802. <el-option v-for="(i, ind) in item.detail" :key="ind" :label="i.projectName" :value="i.projectName">
  3803. </el-option>
  3804. </el-select>
  3805. </el-col>
  3806. <el-col :span="9" v-if="item.tableData">
  3807. 份数
  3808. <!-- <el-input-number v-model="item.tableData.quantity" :step="1" :min="1" :max="10" @change="numberChange(listIndex, index)" label="描述文字" size="small"></el-input-number> -->
  3809. <el-input v-model="item.tableData.quantity" style="width: 120px;" size="small">
  3810. <template slot="prepend"><i class="el-icon-minus" @click="numberChange(listIndex, index, 'minus',item.tableData.minQuantity)"></i></template>
  3811. <template slot="append"><i class="el-icon-plus" @click="numberChange(listIndex, index, 'plus',item.tableData.minQuantity)"></i></template>
  3812. </el-input>
  3813. 份
  3814. </el-col>
  3815. <el-col v-if="item.tableData" :span="4">保费:{{ Number(item.tableData.sumPremium) * item.tableData.quantity }}元</el-col>
  3816. <!-- <el-col :span="1"><i class="el-icon-delete"></i></el-col> -->
  3817. </el-row>
  3818. <el-table v-if="item.tableData" :data="item.tableData.insDrivingIntentionInsuranceSon" border style="width: 100%; margin-top: 20px;" stripe
  3819. header-cell-class-name="table-header">
  3820. <el-table-column prop="name" label="保险责任" align="center"></el-table-column>
  3821. <el-table-column prop="amount" label="保险金额" align="center"></el-table-column>
  3822. <el-table-column prop="premium" label="保费(元)" align="center"></el-table-column>
  3823. </el-table>
  3824. </div>
  3825. </div>
  3826. </div>
  3827. </div>
  3828. <div v-else>
  3829. <div v-for="(item, index) in 3" :key="index" style="margin-bottom: 20px;">
  3830. <el-row style="margin-bottom: 20px;">
  3831. <el-col :span="10">
  3832. 驾意选择
  3833. <!-- v-model="value" -->
  3834. <el-select size="small" clearable placeholder="请选择">
  3835. <el-option v-for="item in 3" :key="item.value" :label="22" :value="22">
  3836. </el-option>
  3837. </el-select>
  3838. </el-col>
  3839. <el-col :span="9">
  3840. 份数
  3841. <el-input-number label="描述文字" size="small"></el-input-number>
  3842. 份
  3843. </el-col>
  3844. <el-col :span="4">保费:15元</el-col>
  3845. <el-col :span="1"><i class="el-icon-delete"></i></el-col>
  3846. </el-row>
  3847. <el-table :data="item.table" border style="width: 100%" stripe
  3848. header-cell-class-name="table-header">
  3849. <el-table-column prop="date" label="保险责任" align="center"></el-table-column>
  3850. <el-table-column prop="date1" label="保险金额" align="center"></el-table-column>
  3851. <el-table-column prop="date2" label="保费(元)" align="center"></el-table-column>
  3852. </el-table>
  3853. </div>
  3854. </div>
  3855. </el-card>
  3856. </div>
  3857. <span slot="footer" class="dialog-footer">
  3858. <el-button size="small" @click="handleCloseAddYiwai">取 消</el-button>
  3859. <el-button size="small" type="primary" @click="handleAddYiWai">确 定</el-button>
  3860. </span>
  3861. </el-dialog>
  3862. <!-- 详情 -->
  3863. <el-dialog :title="detailJiaYiTitle" :visible.sync="showDetailJiaYiVisible" width="60%" top="5vh"
  3864. :before-close="handleCloseShowDetailJiaYi">
  3865. <div class="typedialog-style addyiwai typedialog-style1" v-if="productId != '034001' && productId != '034002' && detailJiaYiTitle == '查看详情'">
  3866. <div class="typedialog-title"><i class="el-icon-circle-check" style="color: #D42426; font-size: 20px; margin-right: 10px;"></i>交通事故强制责任险:</div>
  3867. <el-table :data="typeJqTable" border style="width: 100%" stripe header-cell-class-name="table-header">
  3868. <el-table-column prop="date" label="保障范围" align="center"></el-table-column>
  3869. <el-table-column prop="date1" label="保额(元)" align="center"></el-table-column>
  3870. </el-table>
  3871. </div>
  3872. <div class="typedialog-style typedialog-style2" v-if="productId != '0330' && detailJiaYiTitle == '查看详情'">
  3873. <div class="typedialog-title"><i class="el-icon-circle-check" style="color: #D42426; font-size: 20px; margin-right: 10px;"></i>商业险详情:</div>
  3874. <div class="a-c back">
  3875. <el-row style="background: #F7F7F9;">
  3876. <el-col :span="10" class="more-data-left">险别</el-col>
  3877. <el-col :span="14" class="more-data-right">保额(元)</el-col>
  3878. </el-row>
  3879. <el-row style="background: #FFF;" v-for="(insureitem, insureindex) in typeDialogData.shangyeList" :key="insureindex">
  3880. <el-col :span="10" class="more-data-left">
  3881. <div class="zhuxian" v-if="insureitem.grouping == 'main'" style="background: #E0282A">主险</div>
  3882. <div class="zhuxian" v-if="insureitem.grouping == 'additional'">附加险</div>
  3883. <div class="zhuxian" v-if="insureitem.grouping == 'service'">增值服务</div>
  3884. <span>
  3885. <span class="opacity1">{{ insureitem.kindName }}</span>
  3886. <el-input v-show="insureitem.kindCode == 'D4' ||
  3887. insureitem.kindCode == 'MJ4' ||
  3888. insureitem.kindCode == 'SY_FJ_YBW2'
  3889. " v-model="sumseatCount" style="width: 40px; margin: 0 5px" size="mini" placeholder
  3890. disabled></el-input>
  3891. <span v-show="insureitem.kindCode == 'D4' ||
  3892. insureitem.kindCode == 'MJ4' ||
  3893. insureitem.kindCode == 'SY_FJ_YBW2'
  3894. ">座</span>
  3895. </span>
  3896. </el-col>
  3897. <el-col :span="14" class="more-data-right">
  3898. {{ toWan(insureitem.amount) }}
  3899. </el-col>
  3900. </el-row>
  3901. <div v-show="typeDialogData && typeDialogData.shangyeList && !typeDialogData.shangyeList.length">暂无</div>
  3902. </div>
  3903. </div>
  3904. <div class="typedialog-style typedialog-style3" v-if="showDetailtable && showDetailtable.length">
  3905. <div class="typedialog-title" style="display: flex; justify-content: space-between;">
  3906. <div><i class="el-icon-circle-check" style="color: #D42426; font-size: 20px; margin-right: 10px;"></i>驾意险详情:</div>
  3907. <div class="typedialog-title">( 驾驶人意外单份保额 )如下</div>
  3908. </div>
  3909. <el-table v-for="(item, index) in showDetailtable" :key="index" :data="item" border style="width: 100%" stripe
  3910. header-cell-class-name="table-header">
  3911. <el-table-column prop="name" label="保险责任名称" align="center"></el-table-column>
  3912. <el-table-column prop="amount" label="保额(元)" align="center"></el-table-column>
  3913. <el-table-column prop="premium" label="保费(元)" align="center"></el-table-column>
  3914. </el-table>
  3915. <div v-if="showDetailtable && !showDetailtable.length">暂无</div>
  3916. <div class="typedialog-title" v-if="detailJiaYiTitle == '查看详情'">已选份数:</div>
  3917. <div class="jiayi-style" v-if="detailJiaYiTitle == '查看详情'">
  3918. <el-row v-for="(item, index) in typeDialogData.drivingList" :key="index">
  3919. <el-col :span="10">
  3920. <div class="jiayi-style-title">产品名称</div>
  3921. <div class="jiayi-style-line">{{ item.alias || item.projectName }}</div>
  3922. </el-col>
  3923. <!-- <el-col :span="6">
  3924. <div class="jiayi-style-title">座位数</div>
  3925. <div class="jiayi-style-line">{{ }}</div>
  3926. </el-col> -->
  3927. <el-col :span="6">
  3928. <div class="jiayi-style-title">份数</div>
  3929. <div class="jiayi-style-line">{{ item.quantity }}</div>
  3930. </el-col>
  3931. <el-col :span="3">
  3932. <div class="jiayi-style-title">每份</div>
  3933. <div class="jiayi-style-line">{{ item.sumPremium }}</div>
  3934. </el-col>
  3935. <el-col :span="3">
  3936. <div class="jiayi-style-title">合计</div>
  3937. <div class="jiayi-style-line">{{ Number(item.sumPremium) * item.quantity }}</div>
  3938. </el-col>
  3939. </el-row>
  3940. <div v-if="typeDialogData && typeDialogData.drivingList && !typeDialogData.drivingList.length">暂无</div>
  3941. </div>
  3942. </div>
  3943. <span slot="footer" class="dialog-footer">
  3944. <!-- <el-button size="small" @click="handleCloseShowDetailJiaYi">取 消</el-button> -->
  3945. <el-button size="small" type="primary" @click="handleCloseShowDetailJiaYi">确 定</el-button>
  3946. </span>
  3947. </el-dialog>
  3948. <!-- 驾意险详情 -->
  3949. <el-dialog :title="detailJiaYiTitle" :visible.sync="showDetailJiaYiVisible1" width="60%" top="5vh" v-dialogDrag
  3950. :before-close="handleCloseShowDetailJiaYi">
  3951. <div class="typedialog-style typedialog-style3" v-if="showDetailtable && showDetailtable.length">
  3952. <div class="typedialog-title" style="display: flex; justify-content: space-between;">
  3953. <div><i class="el-icon-circle-check" style="color: #D42426; font-size: 20px; margin-right: 10px;"></i>驾意险详情:</div>
  3954. <div class="typedialog-title">( 驾驶人意外单份保额 )如下</div>
  3955. </div>
  3956. <el-table v-for="(item, index) in showDetailtable" :key="index" :data="item" border style="width: 100%" stripe
  3957. header-cell-class-name="table-header">
  3958. <el-table-column prop="name" label="保险责任名称" align="center"></el-table-column>
  3959. <el-table-column prop="amount" label="保额(元)" align="center"></el-table-column>
  3960. <el-table-column prop="premium" label="保费(元)" align="center"></el-table-column>
  3961. </el-table>
  3962. <div v-if="showDetailtable && !showDetailtable.length">暂无</div>
  3963. </div>
  3964. <span slot="footer" class="dialog-footer">
  3965. <!-- <el-button size="small" @click="handleCloseShowDetailJiaYi">取 消</el-button> -->
  3966. <el-button size="small" type="primary" @click="handleCloseShowDetailJiaYi">确 定</el-button>
  3967. </span>
  3968. </el-dialog>
  3969. <!-- 选择特约 showTeYueVisible -->
  3970. <el-dialog title="选择特约" :visible.sync="showTeYueVisible" width="40%" top="5vh"
  3971. :before-close="handleCloseTeYue" class="teYuedialog-style">
  3972. <div>
  3973. <!-- <el-input placeholder="请输入内容" style="margin-bottom: 20px;">
  3974. <el-button type="primary" slot="append" icon="el-icon-search"></el-button>
  3975. </el-input> -->
  3976. <el-table :data="teYueTable" style="width: 100%" stripe
  3977. header-cell-class-name="table-header">
  3978. <el-table-column type="selection" width="55"></el-table-column>
  3979. <el-table-column type="expand">
  3980. <!-- <template slot-scope="props">
  3981. <div class="table-title">特约内容</div>
  3982. <div class="table-title">保险公司温馨提示:根据车船税征收管理规定,次年生效交强险业务如本年提前续保,请您仍须在下一年度年底前完成跨年提前续保并缴纳车船税,否则会产生车船税滞纳金。</div>
  3983. </template> -->
  3984. </el-table-column>
  3985. <el-table-column prop="date" label="特约名称" align="center">
  3986. </el-table-column>
  3987. <el-table-column prop="date1" label="特约险种" align="center"></el-table-column>
  3988. <el-table-column prop="date2" label="特约代码" align="center"></el-table-column>
  3989. </el-table>
  3990. </div>
  3991. <span slot="footer" class="dialog-footer">
  3992. <span>已选择了 <b style="color: #F96646;"> 1</b> 条特约</span>
  3993. <span style="flex: 1;"></span>
  3994. <el-button size="small" @click="showTeYueVisible = false">取 消</el-button>
  3995. <el-button size="small" type="primary" @click="showTeYueVisible = false">确 定</el-button>
  3996. </span>
  3997. </el-dialog>
  3998. <floatingBar />
  3999. </div>
  4000. </template>
  4001. <script>
  4002. let _self;
  4003. import QRCode from "qrcodejs2";
  4004. import Cookies from "js-cookie";
  4005. import CommonUtil from "@/utils/comutil.js";
  4006. import floatingBar from '@/components/customerService/floatingBar.vue';
  4007. import {
  4008. getAgeByIdCard,
  4009. searchkey,
  4010. addressCode,
  4011. getGenderByIdCard,
  4012. } from "@/utils/validate.js";
  4013. import citydata from "@/assets/js/citydata.js";
  4014. // import yongchengData from '../../assets/js/yongchengData';
  4015. import { regionData, codeToText } from "element-china-area-data";
  4016. import { base64ToPath } from "@/common/image-tools-base64.js";
  4017. import quotationDialog from "@/views/Core/components/quotationDialog.vue";
  4018. import quotationDialogPro from "@/views/Core/components/quotationDialogPro.vue";
  4019. import detailsDialog from "@/views/Core/components/detailsDialog.vue";
  4020. import imageDialog from "@/views/Core/components/imageDialog.vue";
  4021. import { mapState } from "vuex";
  4022. import Ktletter1Popover from "./components/LetterPopover.vue"
  4023. export default {
  4024. inject: ["reload"],
  4025. name: "qrCode",
  4026. data() {
  4027. var checkpurchasePrice = (rule, value, callback) => {
  4028. if (!value) {
  4029. callback(new Error("新车购置价不能为空"));
  4030. } else if (value == 0) {
  4031. callback(new Error("新车购置价不能为零"));
  4032. } else {
  4033. callback();
  4034. }
  4035. };
  4036. var checkframeNo = (rule, value, callback) => {
  4037. if (value.length < 17) {
  4038. callback(new Error("车架号不足17位"));
  4039. } else if (
  4040. value.indexOf("I") != "-1" ||
  4041. value.indexOf("O") != "-1" ||
  4042. value.indexOf("Q") != "-1"
  4043. ) {
  4044. callback(new Error("车架号不能包含(I O Q)三个字母"));
  4045. } else {
  4046. callback();
  4047. }
  4048. };
  4049. var carPhoneValid = (rule, value, callback) => {
  4050. const plateNumber =
  4051. /^([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领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})$/;
  4052. if (!value) {
  4053. callback(new Error("请输入车牌号"));
  4054. } else if (plateNumber.test(value)) {
  4055. callback();
  4056. } else {
  4057. callback(new Error("请输入正确的车牌号"));
  4058. }
  4059. };
  4060. return {
  4061. colSpan: {
  4062. xs: 24, // 超小屏幕
  4063. sm: 12, // 小屏幕
  4064. md: 12, // 中屏幕
  4065. lg: 6, // 大屏幕
  4066. xl: 6 // 超大屏幕
  4067. },
  4068. colgutter:80,
  4069. productList: [], // 产品id列表
  4070. productId: '', // 产品id
  4071. // 选择特约
  4072. teYueTable: [{}, {}],
  4073. showTeYueVisible: false,
  4074. // 驾意险详情
  4075. jiayiDialogData: {},
  4076. showDetailJiaYiVisible: false,
  4077. showDetailJiaYiVisible1: false,
  4078. showDetailtable: [],
  4079. // 添加驾意险
  4080. checkList: [],
  4081. addYiwaiDialogVisible: false,
  4082. typeJqTable: [
  4083. {date: '死亡伤残赔偿', date1: 180000},
  4084. {date: '医疗费用赔偿', date1: 18000},
  4085. {date: '财产损失赔偿', date1: 2000}
  4086. ], // 调整险种交强险表格
  4087. typeDialogVisible: false, // 调整险种弹窗
  4088. typeDialogData: [], // 调整险种弹窗商业险
  4089. typeDialogIndex: 0, // 当前 调整险种弹窗 index
  4090. inquiryNowList: [], // 现询列表
  4091. isInquiryNowDisable: false,
  4092. taikangtemplateSelection: [], // 泰康
  4093. taikangInsuranceDataTable: [],
  4094. taikangaccidentDataList: [],
  4095. accidentPremiumTk: "",
  4096. accidentPremiumPA:'',
  4097. accidentFormTk: {
  4098. quantity: "1",
  4099. sumPremium: 0,
  4100. },
  4101. pinganDataDetail:[],
  4102. pinganDataDetailVisible:false,
  4103. accidentFormPA: [{
  4104. quantity: "1",
  4105. premium: 0,
  4106. pingantemplateSelection:'',
  4107. pinganInsuranceDataTable:[],
  4108. pinganInsurancetype:'',
  4109. },
  4110. {
  4111. quantity: "1",
  4112. premium: 0,
  4113. pingantemplateSelection:'',
  4114. pinganInsuranceDataTable:[],
  4115. pinganInsurancetype:'',
  4116. },
  4117. {
  4118. quantity: "1",
  4119. premium: 0,
  4120. pingantemplateSelection:'',
  4121. pinganInsuranceDataTable:[],
  4122. pinganInsurancetype:'',
  4123. }],
  4124. taikangaccidentalDrivingVo: {},
  4125. pinganaccidentalDrivingVo: {
  4126. 0:{},
  4127. 1:{},
  4128. 2:[],
  4129. },
  4130. nowCostsId: undefined, // 现询
  4131. policyNumberForm: {
  4132. jqpolicyno: "",
  4133. sypolicyno: "",
  4134. jypolicyno: "",
  4135. jqpremium: "",
  4136. sypremium: "",
  4137. jypremium: "",
  4138. taxamount: "",
  4139. commissionFeevalue: "",
  4140. otherFeevalue: "",
  4141. jqSuperviseCostsProportion: "",
  4142. sySuperviseCostsProportion: "",
  4143. noSuperviseCostsProportion: "",
  4144. jqOtherCostsProportion: "",
  4145. syOtherCostsProportion: "",
  4146. noOtherCostsProportion: "",
  4147. jqReceivableProportion: "",
  4148. syReceivableProportion: "",
  4149. noReceivableProportion: "",
  4150. jqPolicyList: [],
  4151. syPolicyList: [],
  4152. jqSignList: [],
  4153. noPolicyList: [],
  4154. noCostsProportion: '',
  4155. jqCostsProportion: '',
  4156. syCostsProportion: '',
  4157. },
  4158. watermarkedImage: "",
  4159. redictInfoMsg: [],
  4160. redictInfodialogVisible: false,
  4161. qrcodeWidth: "180",
  4162. qrcodeHeight: "180",
  4163. activeName: "1",
  4164. isTaxSourceModel: "",
  4165. tabLiIndex: 0,
  4166. tabLimenu: [
  4167. {
  4168. name: "车辆信息",
  4169. scroll: "vehicle",
  4170. },
  4171. {
  4172. name: "车主信息",
  4173. scroll: "owner",
  4174. },
  4175. {
  4176. name: "投保人信息",
  4177. scroll: "applicant",
  4178. },
  4179. {
  4180. name: "被保人信息",
  4181. scroll: "insured",
  4182. },
  4183. {
  4184. name: "关系证明",
  4185. scroll: "relationship",
  4186. },
  4187. {
  4188. name: "验车照",
  4189. scroll: "yanchezhao",
  4190. },
  4191. {
  4192. name: "上年商业险保单",
  4193. scroll: "snbaodan",
  4194. },
  4195. ],
  4196. packageValue: "",
  4197. packageOptions: [],
  4198. zhongmeitemplateSelection: "", //中煤驾意险产品选中值
  4199. zhongmeiInsuranceData: [], //中煤驾意险产品列表数据
  4200. zhongmeiInsuranceDataTable: [], //中煤驾意险产品明细方案数据
  4201. zhongmeiaccidentalDrivingVo: {}, //中煤驾意险最终选中字段
  4202. pinganInsuranceData: [], //平安驾意险产品列表数据
  4203. currentCell: null,
  4204. feeDetailInfo: [], //费用明细信息
  4205. immediatelyValue: false,
  4206. isRetractZJ: false,
  4207. isRetractHB: false,
  4208. isRetractZM: false,
  4209. isRetractASTP: false,
  4210. isRetractZA: false,
  4211. isRetractYC: false,
  4212. isRetractRS: false,
  4213. anshengInsurancetype: "",
  4214. iscCrownerShow: false,
  4215. isApplicantShow: false,
  4216. isInsuredShow: false,
  4217. formInline: {},
  4218. anshengtemplateSelection: "", //安盛
  4219. anshengInsuranceData: [], //安盛驾意险
  4220. anshengInsuranceDataTable: [], //安盛驾意险
  4221. anshengaccidentalDrivingVo: {}, //安盛驾意险
  4222. hengbangtemplateSelection: "", //恒邦
  4223. hengbangInsuranceData: [], //恒邦驾意险
  4224. hengbangInsuranceDataTable: [],
  4225. hengbangaccidentalDrivingVo: {}, //恒邦驾意险
  4226. insuranceHN: "", //华农
  4227. huanongInsuranceData: [], //华农驾意险
  4228. huanongInsuranceDataTable: [],
  4229. huanongaccidentalDrivingVo: {}, //华农驾意险
  4230. renshouaccidentalDrivingVo: {}, //人寿意外险
  4231. renshouInsuranceData: [], //-人寿意外险list
  4232. ziJinInsuranceData: [], //-紫金意外险list
  4233. zhonganInsuranceData: [], //众安驾意险
  4234. zhonganaccidentalDrivingVo: {}, //众安驾意险
  4235. zijinInsuranceDataTable: [],
  4236. zijintemplateSelection: "",
  4237. accidentalDrivingVo: [], //-紫金意外险传参
  4238. zijinengageListData: [], //紫金特约
  4239. zijinengageList: [], //紫金特约
  4240. // ------------紫金意外险
  4241. renshoutemplateSelection: "", //人寿
  4242. renshouInsuranceDataTable: [],
  4243. zhongantemplateSelection: "", //众安
  4244. zhonganInsuranceDataTable: [],
  4245. taipingtemplateSelection: "", //太平
  4246. taipingInsuranceData: [], //太平驾意险
  4247. TPDrivingChangeInsuranceData: [],
  4248. taipingaccidentalDrivingVo: {}, //太平驾意险
  4249. licenseplate: true,
  4250. calculateLoading: false, //保费计算按钮 节流
  4251. preserveQuoteLoading: false, //保存按钮
  4252. emporaryLoading: false,
  4253. accidentForm: {
  4254. quantity: "1",
  4255. sumPremium: 0,
  4256. }, //永诚意外险内容
  4257. accidentFormHN: {
  4258. allQuantity: "1",
  4259. quantity: "1",
  4260. }, //华农意外险内容
  4261. yongchengaccidentDataList: [], //永诚意外险
  4262. yongchengtemplateSelection: "",
  4263. guoRenaccidentDataList: [], //国任意外险
  4264. guoRenInsuranceDataTable: [],
  4265. guoRenaccidentDataListChild: [],
  4266. guoRenaccidentalDrivingVo: {}, //国任驾意险
  4267. dajiatemplateSelection: "",
  4268. dajiaaccidentDataListChild: [],
  4269. dajiaaccidentForm: {},
  4270. dajiaInsuranceData: [], //大家意外险
  4271. dajiaInsuranceDataTable: [],
  4272. dajiaaccidentalDrivingVo: {},
  4273. yongchengInsuranceDataTable: [],
  4274. guoRenaccidentLoading: false,
  4275. contributingLoading: false,
  4276. guoRenaccidentPremium: "",
  4277. guoRenaccidentForm: {
  4278. quantity: "1",
  4279. sumPremium: 0,
  4280. }, //国任意外险内容
  4281. accidentFormZM: {
  4282. quantity: "1",
  4283. sumPremium: 0,
  4284. }, //中煤意外险内容
  4285. boHaiaccidentDataList: [], //渤海意外险
  4286. boHaigtemplateSelection:'',
  4287. boHaiaccidentForm: {
  4288. copies: "1",
  4289. policyNum: 0,
  4290. },
  4291. bohaiInsuranceDataTable: [],
  4292. accidentPremium: "",
  4293. accidentPremiumZM: "",
  4294. contributingState: false, //是否为国任特约
  4295. pickerOptions: {
  4296. disabledDate(time) {
  4297. //若选择的日期小于当前日期(包含今天)
  4298. return time.getTime() > Date.now();
  4299. //若选择的日期大于当前日期(不包含今天): time.getTime() < Date.now()
  4300. //若选择的日期小于当前日期(不包含今天): time.getTime() > Date.now() - 8.64e7
  4301. //若选择的日期小于等于当前日期(包含今天): time.getTime() > Date.now()
  4302. },
  4303. },
  4304. attributionform: {
  4305. //续保查询数据
  4306. configure: [],
  4307. companyId: "",
  4308. },
  4309. continuousAction: [], //续保配置项
  4310. //永诚转保确认码
  4311. cqryCdeJq: "",
  4312. cqryCdeSy: "",
  4313. renewalCodeJq: "", //交强确认码
  4314. renewalCodeSy: "", //商业确认码
  4315. renewalCodeJqImg: "", //交强图片
  4316. renewalCodeSyImg: "", //商业图片
  4317. //-----------------
  4318. showViewer: false,
  4319. transferDateShow: false, //转移登记日期
  4320. yonganchecked: false, //永安驾意险
  4321. renbaochecked: false, //人保驾意险
  4322. zhongmeichecked: false, //中煤驾意险
  4323. hengbangchecked: false, //恒邦驾意险
  4324. yongchengchecked: false, //永诚驾意险
  4325. yonganDrivinglist: [],
  4326. renbaoDrivinglist: [],
  4327. zhongmeiDrivinglist: [],
  4328. hengbangDrivinglist: [],
  4329. yongchengDrivinglist: [],
  4330. tbczcarShow: true, //投保人同车主
  4331. bbczcarShow: false, //被保人同车主
  4332. bbtbcarShow: true, //被保人同投保人
  4333. imageUploadShow: true, //上传影像显示
  4334. ProViewImg: "", //预览图片
  4335. carfrontImg: "", //行驶证正面
  4336. carbackImg: "", //行驶证背面
  4337. userfrontImg: "", //身份证正面
  4338. userbackImg: "", //身份证背面
  4339. businessImg: "",
  4340. CarFrontFile: "", //车正面文件流
  4341. CarBackFile: "", //车背面文件流
  4342. C02File: "",
  4343. D02File: "",
  4344. C03File: "",
  4345. D03File: "",
  4346. C04File: "",
  4347. D04File: "",
  4348. userIndex: 1, //区分三种人员
  4349. TabName: "car", //默认选项卡
  4350. value1: "",
  4351. chexingdialogVisible: false, //车型选择 显示/隐藏
  4352. sbdmdialogVisible: false, //车型车辆识别代码选择 显示/隐藏
  4353. codedialogVisible: false, //二维码 显示/隐藏
  4354. codedialogVisiblePro: false,
  4355. uploadcardialogVisible: false, //行驶证识别 显示/隐藏
  4356. uploaduserdialogVisible: false, //身份证识别 显示/隐藏
  4357. imageUploaddialogVisible: false, //影像上传 显示/隐藏
  4358. policyUploaddialogVisible: false, //保单上传
  4359. underwritingdialogVisible: false, //核保信息 显示/隐藏
  4360. renewalCodedialogVisible: false, //转保确认码输入
  4361. hbsubmitdialogVisible: false, //核保弹框
  4362. signaturedialogVisible:false, //生成签章
  4363. signaturecode:null,
  4364. Carinsurance: {
  4365. jqinsurance: "1", //交强险
  4366. syinsurance: "1", //商业险
  4367. },
  4368. jqchecked: true,
  4369. sychecked: false,
  4370. jqstartDate: "", //交强时间
  4371. jqendDate: "", //交强时间
  4372. systartDate: "", //商业时间
  4373. syendDate: "", //商业时间
  4374. loading: false, //加载事件
  4375. reslist: [], //车型列表
  4376. userId: "", //出单工号
  4377. carInfo: {
  4378. powerScale: "", ///功率
  4379. licenseNo: "", //车牌号
  4380. brandName: "", //车辆品牌型号
  4381. vinNo: "", //车架号
  4382. engineNo: "", //发动机号
  4383. modelCode: "", //车型编码
  4384. seatCount: null, //核定载客量 核定载人数
  4385. purchasePrice: null, //新车购置价最低,行业实际价值,协商价值
  4386. carBrand: "", //车型品牌
  4387. ciCarName: "", //行业车型名称
  4388. ciModelCode: "", //行业车型编码
  4389. completeKerbMass: "", //整备质量
  4390. exhaustScale: "", //排量
  4391. factory: "", //工厂名称
  4392. factoryid: "", //工厂编码
  4393. frameNo: "", //车架号
  4394. licenseTypeCode: "02", //号牌种类
  4395. vehicleclass: "", //车辆类型
  4396. familyName: "", //车型
  4397. modelcname: "", //车型名称
  4398. powertypecode: "", //燃料类型编码
  4399. vehicleweight: "", //总质量
  4400. limitLoad: "", //核定载质量
  4401. caryear: null, //年款
  4402. cimodelclass: "A0", //车辆种类
  4403. energyType: "0", //能源类型
  4404. enginedesc: "", //排量
  4405. registerDate: "", //注册日期
  4406. issueDate: "", //发证日期
  4407. transferFlag: 0, //过户标志
  4408. transferFlagBi: false, //商业险是否过户
  4409. transferDate: "", //过户日期
  4410. loanStatus: 0, //贷款标志
  4411. firstBeneMan: "", //第一受益人
  4412. noLicenseFlag: false, //是否新车
  4413. cartype: "", //客车A0 货车H0
  4414. carnature: "02", //使用性质
  4415. vehicleUse: "05",
  4416. property: "1", //所属性质 1个人 2企业 3个人
  4417. },
  4418. carform: {
  4419. carOwner: "", //车主
  4420. licenseNo: "", //车牌号
  4421. modelcname: "", //车辆品牌型号
  4422. frameNo: "", //车架号
  4423. engineNo: "", //发动机号
  4424. registerDate: "", //注册日期
  4425. issueDate: "", //发证日期
  4426. grossMass: "", //总质量
  4427. unladenMass: "", //整备质量
  4428. limitLoad: "", //核定载质量
  4429. approvedPassengersCapacity: "", //核定载客数
  4430. },
  4431. ownerInfoform: {
  4432. name: "",
  4433. identifyType: "",
  4434. identifyNumber: "",
  4435. age: "", //年龄
  4436. gender: "", //性别
  4437. addr: "",
  4438. email: "",
  4439. mobile: "",
  4440. identifyValidDate: "", //有效期起期
  4441. identifyValidEndDate: "", //有效期止期
  4442. // province: "",//省
  4443. // city: "",//市
  4444. // county: "",//县
  4445. },
  4446. riskList: [], //险种大类信息
  4447. kindList: [], //商业险险别
  4448. ownerInfo: {
  4449. //车主
  4450. name: "", //姓名
  4451. identifyType: "01", //身份证类型
  4452. identifyNumber: "", //身份证号
  4453. age: "", //年龄
  4454. gender: "", //性别
  4455. addr: "", //地址
  4456. email: "", //邮箱
  4457. mobile: "", //电话
  4458. identifyValidDate: "", //有效期起期
  4459. identifyValidEndDate: "", //有效期止期
  4460. // province: "",//省
  4461. // city: "",//市
  4462. // county: "",//县
  4463. provinceData: [], //省市区
  4464. },
  4465. policyHolderInfo: {
  4466. //投保人
  4467. name: "", //姓名
  4468. identifyType: "01", //身份证类型
  4469. identifyNumber: "", //身份证号
  4470. age: "", //年龄
  4471. gender: "", //性别
  4472. addr: "", //地址
  4473. email: "", //邮箱
  4474. mobile: "", //电话
  4475. identifyValidDate: "", //有效期起期
  4476. identifyValidEndDate: "", //有效期止期
  4477. // province: "",//省
  4478. // city: "",//市
  4479. // county: "",//县
  4480. provinceData: [], //省市区
  4481. },
  4482. insuredPersonInfo: {
  4483. //被保人
  4484. name: "", //姓名
  4485. identifyType: "01", //身份证类型
  4486. identifyNumber: "", //身份证号
  4487. age: "", //年龄
  4488. gender: "", //性别
  4489. addr: "", //地址
  4490. email: "", //邮箱
  4491. mobile: "", //电话
  4492. identifyValidDate: "", //有效期起期
  4493. identifyValidEndDate: "", //有效期止期
  4494. provinceData: [], //省市区
  4495. // province: "",//省
  4496. // city: "",//市
  4497. // county: "",//县
  4498. },
  4499. //车船税form
  4500. vehicleAndVesselTaxForm: {
  4501. taxRelifFlag: "1", //类型
  4502. identifyNumber: "", //纳税人识别号
  4503. taxpayerIdentifier: "01", //纳税人证件类型
  4504. taxpayerName: "", //纳税人名称
  4505. extendChar2: "", //减免税凭证号
  4506. paidFreeCertificate: "", //完税凭证号
  4507. relifReason: "", //减免税原因
  4508. taxComCode: "", //税务机关代码
  4509. taxComName: "", ///税务机关名称
  4510. taxDocumentDate: "", //完税日期
  4511. taxPaidAreaCode: "", //完税凭证地区代码
  4512. taxRelief: "", //减税比例
  4513. },
  4514. //车辆用途列表
  4515. vehicleList: [],
  4516. //能源种类列表
  4517. rules: {
  4518. extendChar2: [
  4519. { required: true, message: "请输入减免税凭证号", trigger: "blur" },
  4520. ],
  4521. paidFreeCertificate: [
  4522. { required: true, message: "请输入完税凭证号", trigger: "blur" },
  4523. ],
  4524. relifReason: [
  4525. { required: true, message: "请输入减免税原因", trigger: "blur" },
  4526. ],
  4527. taxComCode: [
  4528. { required: true, message: "请输入税务机关代码", trigger: "blur" },
  4529. ],
  4530. taxComName: [
  4531. { required: true, message: "请输入税务机关名称", trigger: "blur" },
  4532. ],
  4533. taxDocumentDate: [
  4534. { required: true, message: "请输入完税日期", trigger: "blur" },
  4535. ],
  4536. taxPaidAreaCode: [
  4537. { required: true, message: "请选择完税地区", trigger: "blur" },
  4538. ],
  4539. taxRelief: [
  4540. { required: true, message: "请输入减税比例", trigger: "blur" },
  4541. ],
  4542. taxpayerName: [
  4543. { required: true, message: "请输入纳税人名称", trigger: "blur" },
  4544. ],
  4545. taxpayerIdentifier: [
  4546. { required: true, message: "请选择证件类型", trigger: "blur" },
  4547. ],
  4548. taxRelifFlag: [
  4549. { required: true, message: "请选择纳税类型", trigger: "blur" },
  4550. ],
  4551. energyType: [
  4552. { required: true, message: "请选择能源种类", trigger: "blur" },
  4553. ],
  4554. cimodelclass: [
  4555. { required: true, message: "请选择车辆种类", trigger: "blur" },
  4556. ],
  4557. carnature: [
  4558. { required: true, message: "请选择使用性质", trigger: "blur" },
  4559. ],
  4560. cartype: [
  4561. { required: true, message: "请选择车辆类型", trigger: "blur" },
  4562. ],
  4563. vehicleUse: [
  4564. { required: true, message: "请选择车辆用途", trigger: "blur" },
  4565. ],
  4566. brandName: [
  4567. { required: true, message: "请填写品牌型号", trigger: "blur" },
  4568. ],
  4569. licenseNo: [
  4570. { max: 8, message: "最多八个字符", trigger: "blur" },
  4571. { required: true, validator: carPhoneValid, trigger: "blur" },
  4572. ],
  4573. frameNo: [{ validator: checkframeNo, trigger: "blur" }],
  4574. engineNo: [
  4575. { required: true, message: "请填写发动机号", trigger: "blur" },
  4576. ],
  4577. purchasePrice: [
  4578. { required: true, validator: checkpurchasePrice, trigger: "blur" },
  4579. ],
  4580. registerDate: [
  4581. { required: true, message: "请选择注册时间", trigger: "blur" },
  4582. ],
  4583. issueDate: [
  4584. { required: true, message: "请选择发证日期", trigger: "blur" },
  4585. ],
  4586. transferDate: [
  4587. { required: true, message: "请选择转移登记日期", trigger: "blur" },
  4588. ],
  4589. seatCount: [
  4590. { required: true, message: "请输入座位数", trigger: "blur" },
  4591. ],
  4592. completeKerbMass: [
  4593. { required: true, message: "请输入整备质量", trigger: "blur" },
  4594. ],
  4595. name: [{ required: true, message: "请填写姓名", trigger: "blur" }],
  4596. taxamount: [
  4597. { required: true, message: "请填写车船税", trigger: "blur" },
  4598. ],
  4599. signDate: [
  4600. { required: true, message: "请填写签单日期", trigger: "blur" },
  4601. ],
  4602. // identifyNumber: [
  4603. // { required: true, message: "请填写证件号", trigger: "blur" },
  4604. // { min: 18, max: 18, message: "长度在18个字符", trigger: "blur" },
  4605. // {
  4606. // 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]$/,
  4607. // message: "请输入正确的证件号",
  4608. // trigger: "blur"
  4609. // }
  4610. // ],
  4611. identifyValidDate: [
  4612. { required: true, message: "请选择起期", trigger: "blur" },
  4613. ],
  4614. identifyValidEndDate: [
  4615. { required: true, message: "请选择止期", trigger: "blur" },
  4616. ],
  4617. addr: [
  4618. { required: true, message: "请填写地址", trigger: "blur" },
  4619. { min: 8, message: "最少8个字符", trigger: "blur" },
  4620. ],
  4621. mobile: [
  4622. { required: true, message: "请填写手机号", trigger: "blur" },
  4623. { min: 11, max: 11, message: "长度在11个字符", trigger: "blur" },
  4624. {
  4625. pattern:
  4626. /^(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}$/,
  4627. message: "请输入正确的手机号",
  4628. trigger: "blur",
  4629. },
  4630. ],
  4631. email: [
  4632. { min: 10, max: 20, message: "最少10个字符", trigger: "blur" },
  4633. {
  4634. pattern:
  4635. /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/,
  4636. message: "请输入正确的邮箱",
  4637. trigger: "blur",
  4638. },
  4639. ],
  4640. },
  4641. CIInsureList: {
  4642. //交强险
  4643. amount: "1",
  4644. amountDesc: "投保",
  4645. amtList: [
  4646. {
  4647. label: "不投保",
  4648. value: "0",
  4649. },
  4650. {
  4651. label: "投保",
  4652. value: "1",
  4653. },
  4654. ],
  4655. kindCode: "0507",
  4656. kindName: "交强险",
  4657. desc: "国家强制规定购买的险种,对第三方的人身或财产损失提供基本保障",
  4658. },
  4659. BIInsureList: {
  4660. //商业险
  4661. amount: "0",
  4662. amountDesc: "投保",
  4663. amtList: [
  4664. {
  4665. label: "不投保",
  4666. value: "0",
  4667. },
  4668. {
  4669. label: "投保",
  4670. value: "1",
  4671. },
  4672. ],
  4673. kindCode: "0510",
  4674. kindName: "商业险",
  4675. desc: "国家强制规定购买的险种,对第三方的人身或财产损失提供基本保障",
  4676. },
  4677. insureList: [
  4678. {
  4679. amount: "0",
  4680. amountDesc: "投保",
  4681. coveragePremium: 0,
  4682. amtList: [
  4683. {
  4684. label: "不投保",
  4685. value: "0",
  4686. },
  4687. {
  4688. label: "投保",
  4689. value: "1",
  4690. },
  4691. ],
  4692. kindCode: "A",
  4693. isMainRisk: true,
  4694. kindName: "机动车损失险",
  4695. desc: "保险期间内,被保险人或被保险机动车驾驶人在使用被保险机动车过程中,因自然灾害、意外事故、机动车被盗窃、抢劫、抢夺等情况(详见保险条款)造成被保险机动车直接损失,且不属于免除保险人责任的范围,保险人依照本保险合同的约定负责赔偿的险种。",
  4696. },
  4697. {
  4698. amount: "0",
  4699. amountDesc: "不投保",
  4700. coveragePremium: 0,
  4701. amtList: [
  4702. {
  4703. label: "不投保",
  4704. value: "0",
  4705. },
  4706. {
  4707. label: "10万",
  4708. value: "100000",
  4709. },
  4710. {
  4711. label: "15万",
  4712. value: "150000",
  4713. },
  4714. {
  4715. label: "20万",
  4716. value: "200000",
  4717. },
  4718. {
  4719. label: "30万",
  4720. value: "300000",
  4721. },
  4722. {
  4723. label: "50万",
  4724. value: "500000",
  4725. },
  4726. {
  4727. label: "100万",
  4728. value: "1000000",
  4729. },
  4730. {
  4731. label: "150万",
  4732. value: "1500000",
  4733. },
  4734. {
  4735. label: "200万",
  4736. value: "2000000",
  4737. },
  4738. {
  4739. label: "250万",
  4740. value: "2500000",
  4741. },
  4742. {
  4743. label: "300万",
  4744. value: "3000000",
  4745. },
  4746. {
  4747. label: "400万",
  4748. value: "4000000",
  4749. },
  4750. {
  4751. label: "500万",
  4752. value: "5000000",
  4753. },
  4754. {
  4755. label: "600万",
  4756. value: "6000000",
  4757. },
  4758. {
  4759. label: "800万",
  4760. value: "8000000",
  4761. },
  4762. {
  4763. label: "1000万",
  4764. value: "10000000",
  4765. },
  4766. ],
  4767. kindCode: "B",
  4768. isMainRisk: true,
  4769. kindName: "第三者责任险",
  4770. desc: "保险期间内,被保险人或其允许的驾驶人在使用被保险机动车过程中发生意外事故,致使第三者遭受人身伤亡或财产直接损毁,依法应当对第三者承担的损害赔偿责任,且不属于免除保险人责任的范围,保险人依照本保险合同的约定,对于超过机动车交通事故责任强制保险各分项赔偿限额的部分负责赔偿的险种。",
  4771. },
  4772. {
  4773. amount: "0",
  4774. amountDesc: "1万",
  4775. coveragePremium: 0,
  4776. amtList: [
  4777. {
  4778. label: "不投保",
  4779. value: "0",
  4780. },
  4781. {
  4782. label: "1万",
  4783. value: "10000",
  4784. },
  4785. {
  4786. label: "2万",
  4787. value: "20000",
  4788. },
  4789. {
  4790. label: "3万",
  4791. value: "30000",
  4792. },
  4793. {
  4794. label: "4万",
  4795. value: "40000",
  4796. },
  4797. {
  4798. label: "5万",
  4799. value: "50000",
  4800. },
  4801. {
  4802. label: "6万",
  4803. value: "60000",
  4804. },
  4805. {
  4806. label: "7万",
  4807. value: "70000",
  4808. },
  4809. {
  4810. label: "8万",
  4811. value: "80000",
  4812. },
  4813. {
  4814. label: "9万",
  4815. value: "90000",
  4816. },
  4817. {
  4818. label: "10万",
  4819. value: "100000",
  4820. },
  4821. {
  4822. label: "15万",
  4823. value: "150000",
  4824. },
  4825. {
  4826. label: "20万",
  4827. value: "200000",
  4828. },
  4829. {
  4830. label: "25万",
  4831. value: "250000",
  4832. },
  4833. {
  4834. label: "30万",
  4835. value: "300000",
  4836. },
  4837. {
  4838. label: "35万",
  4839. value: "350000",
  4840. },
  4841. {
  4842. label: "40万",
  4843. value: "400000",
  4844. },
  4845. {
  4846. label: "45万",
  4847. value: "450000",
  4848. },
  4849. {
  4850. label: "50万",
  4851. value: "500000",
  4852. },
  4853. ],
  4854. kindCode: "D3",
  4855. isMainRisk: true,
  4856. kindName: "司机责任险",
  4857. desc: "保险期间内,被保险人或其允许的驾驶人在使用被保险机动车过程中发生意外事故,致使车上人员遭受人身伤亡,且不属于免除保险人责任的范围,依法应当对车上人员承担的损害赔偿责任,保险人依照本保险合同的约定负责赔偿的险种。",
  4858. },
  4859. {
  4860. amount: "0",
  4861. amountDesc: "1万",
  4862. coveragePremium: 0,
  4863. amtList: [
  4864. {
  4865. label: "不投保",
  4866. value: "0",
  4867. },
  4868. {
  4869. label: "1万",
  4870. value: "10000",
  4871. },
  4872. {
  4873. label: "2万",
  4874. value: "20000",
  4875. },
  4876. {
  4877. label: "3万",
  4878. value: "30000",
  4879. },
  4880. {
  4881. label: "4万",
  4882. value: "40000",
  4883. },
  4884. {
  4885. label: "5万",
  4886. value: "50000",
  4887. },
  4888. {
  4889. label: "6万",
  4890. value: "60000",
  4891. },
  4892. {
  4893. label: "7万",
  4894. value: "70000",
  4895. },
  4896. {
  4897. label: "8万",
  4898. value: "80000",
  4899. },
  4900. {
  4901. label: "9万",
  4902. value: "90000",
  4903. },
  4904. {
  4905. label: "10万",
  4906. value: "100000",
  4907. },
  4908. {
  4909. label: "15万",
  4910. value: "150000",
  4911. },
  4912. {
  4913. label: "20万",
  4914. value: "200000",
  4915. },
  4916. {
  4917. label: "25万",
  4918. value: "250000",
  4919. },
  4920. {
  4921. label: "30万",
  4922. value: "300000",
  4923. },
  4924. {
  4925. label: "35万",
  4926. value: "350000",
  4927. },
  4928. {
  4929. label: "40万",
  4930. value: "400000",
  4931. },
  4932. {
  4933. label: "45万",
  4934. value: "450000",
  4935. },
  4936. {
  4937. label: "50万",
  4938. value: "500000",
  4939. },
  4940. ],
  4941. kindCode: "D4",
  4942. isMainRisk: true,
  4943. kindName: "乘客责任险",
  4944. desc: "保险期间内,被保险人或其允许的驾驶人在使用被保险机动车过程中发生意外事故,致使车上人员遭受人身伤亡,且不属于免除保险人责任的范围,依法应当对车上人员承担的损害赔偿责任,保险人依照本保险合同的约定负责赔偿的险种。",
  4945. },
  4946. {
  4947. amount: "0",
  4948. amountDesc: "不投保",
  4949. coveragePremium: 0,
  4950. amtList: [
  4951. {
  4952. label: "不投保",
  4953. value: "0",
  4954. },
  4955. {
  4956. label: "2千",
  4957. value: "2000",
  4958. },
  4959. {
  4960. label: "5千",
  4961. value: "5000",
  4962. },
  4963. {
  4964. label: "1万",
  4965. value: "10000",
  4966. },
  4967. {
  4968. label: "2万",
  4969. value: "20000",
  4970. },
  4971. ],
  4972. desc: "保险期间内,被保险机动车在被保险人或被保险机动车驾驶人使用过程中,发生无明显碰撞痕迹的车身划痕损失,保险人按照保险合同约定负责赔偿的险种",
  4973. isMainRisk: false,
  4974. kindCode: "L",
  4975. kindName: "车身划痕险",
  4976. mainRiskCodeList: "A",
  4977. },
  4978. {
  4979. amount: "0",
  4980. amountDesc: "不投保",
  4981. coveragePremium: 0,
  4982. amtList: [
  4983. {
  4984. label: "不投保",
  4985. value: "0",
  4986. },
  4987. {
  4988. label: "5%",
  4989. value: "5",
  4990. },
  4991. {
  4992. label: "10%",
  4993. value: "10",
  4994. },
  4995. {
  4996. label: "15%",
  4997. value: "15",
  4998. },
  4999. {
  5000. label: "20%",
  5001. value: "20",
  5002. },
  5003. ],
  5004. desc: "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
  5005. isMainRisk: false,
  5006. kindCode: "MJ1",
  5007. kindName: "绝对免赔率特约险(车损)",
  5008. mainRiskCodeList: "A",
  5009. },
  5010. {
  5011. amount: "0",
  5012. amountDesc: "不投保",
  5013. coveragePremium: 0,
  5014. amtList: [
  5015. {
  5016. label: "不投保",
  5017. value: "0",
  5018. },
  5019. {
  5020. label: "5%",
  5021. value: "5",
  5022. },
  5023. {
  5024. label: "10%",
  5025. value: "10",
  5026. },
  5027. {
  5028. label: "15%",
  5029. value: "15",
  5030. },
  5031. {
  5032. label: "20%",
  5033. value: "20",
  5034. },
  5035. ],
  5036. desc: "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
  5037. isMainRisk: false,
  5038. kindCode: "MJ2",
  5039. kindName: "绝对免赔率特约险(三者)",
  5040. mainRiskCodeList: "B",
  5041. },
  5042. {
  5043. amount: "0",
  5044. amountDesc: "不投保",
  5045. coveragePremium: 0,
  5046. amtList: [
  5047. {
  5048. label: "不投保",
  5049. value: "0",
  5050. },
  5051. {
  5052. label: "5%",
  5053. value: "5",
  5054. },
  5055. {
  5056. label: "10%",
  5057. value: "10",
  5058. },
  5059. {
  5060. label: "15%",
  5061. value: "15",
  5062. },
  5063. {
  5064. label: "20%",
  5065. value: "20",
  5066. },
  5067. ],
  5068. desc: "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
  5069. isMainRisk: false,
  5070. kindCode: "MJ3",
  5071. kindName: "绝对免赔率特约险(司机)",
  5072. mainRiskCodeList: "D3",
  5073. },
  5074. {
  5075. amount: "0",
  5076. amountDesc: "不投保",
  5077. coveragePremium: 0,
  5078. amtList: [
  5079. {
  5080. label: "不投保",
  5081. value: "0",
  5082. },
  5083. {
  5084. label: "5%",
  5085. value: "5",
  5086. },
  5087. {
  5088. label: "10%",
  5089. value: "10",
  5090. },
  5091. {
  5092. label: "15%",
  5093. value: "15",
  5094. },
  5095. {
  5096. label: "20%",
  5097. value: "20",
  5098. },
  5099. ],
  5100. desc: "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
  5101. isMainRisk: false,
  5102. kindCode: "MJ4",
  5103. kindName: "绝对免赔率特约险(乘客)",
  5104. mainRiskCodeList: "D4",
  5105. },
  5106. {
  5107. amount: "0",
  5108. amountDesc: "不投保",
  5109. coveragePremium: 0,
  5110. amtList: [
  5111. {
  5112. label: "不投保",
  5113. value: "0",
  5114. },
  5115. {
  5116. label: "1万",
  5117. value: "10000",
  5118. },
  5119. {
  5120. label: "2万",
  5121. value: "20000",
  5122. },
  5123. {
  5124. label: "4万",
  5125. value: "40000",
  5126. },
  5127. {
  5128. label: "5万",
  5129. value: "50000",
  5130. },
  5131. {
  5132. label: "8万",
  5133. value: "80000",
  5134. },
  5135. {
  5136. label: "10万",
  5137. value: "100000",
  5138. },
  5139. {
  5140. label: "20万",
  5141. value: "200000",
  5142. },
  5143. {
  5144. label: "30万",
  5145. value: "300000",
  5146. },
  5147. {
  5148. label: "50万",
  5149. value: "500000",
  5150. },
  5151. {
  5152. label: "100万",
  5153. value: "1000000",
  5154. },
  5155. {
  5156. label: "200万",
  5157. value: "2000000",
  5158. },
  5159. {
  5160. label: "300万",
  5161. value: "3000000",
  5162. },
  5163. ],
  5164. kindCode: "SY_FJ_YBW1",
  5165. isMainRisk: true,
  5166. kindName: "附加医保-三者",
  5167. desc: "附加医保外医疗费用责任险(机动车第三者责任保险)",
  5168. },
  5169. {
  5170. amount: "0",
  5171. amountDesc: "不投保",
  5172. coveragePremium: 0,
  5173. amtList: [
  5174. {
  5175. label: "不投保",
  5176. value: "0",
  5177. },
  5178. {
  5179. label: "1万",
  5180. value: "10000",
  5181. },
  5182. {
  5183. label: "2万",
  5184. value: "20000",
  5185. },
  5186. {
  5187. label: "5万",
  5188. value: "50000",
  5189. },
  5190. {
  5191. label: "10万",
  5192. value: "100000",
  5193. },
  5194. ],
  5195. kindCode: "SY_FJ_YBW2",
  5196. isMainRisk: true,
  5197. kindName: "附加医保-座位险(乘客)",
  5198. desc: "附加医保外医疗费用责任险(机动车第三者责任保险)",
  5199. },
  5200. {
  5201. amount: "0",
  5202. amountDesc: "不投保",
  5203. coveragePremium: 0,
  5204. amtList: [
  5205. {
  5206. label: "不投保",
  5207. value: "0",
  5208. },
  5209. {
  5210. label: "1万",
  5211. value: "10000",
  5212. },
  5213. {
  5214. label: "2万",
  5215. value: "20000",
  5216. },
  5217. {
  5218. label: "5万",
  5219. value: "50000",
  5220. },
  5221. {
  5222. label: "10万",
  5223. value: "100000",
  5224. },
  5225. ],
  5226. kindCode: "SY_FJ_YBW3",
  5227. isMainRisk: true,
  5228. kindName: "附加医保-座位险(司机)",
  5229. desc: "附加医保外医疗费用责任险(机动车第三者责任保险)",
  5230. },
  5231. {
  5232. amount: "0",
  5233. amountDesc: "不投保",
  5234. coveragePremium: 0,
  5235. amtList: [
  5236. {
  5237. label: "不投保",
  5238. value: "0",
  5239. },
  5240. {
  5241. label: "50万",
  5242. value: "500000",
  5243. },
  5244. {
  5245. label: "100万",
  5246. value: "1000000",
  5247. },
  5248. {
  5249. label: "150万",
  5250. value: "1500000",
  5251. },
  5252. {
  5253. label: "200万",
  5254. value: "2000000",
  5255. },
  5256. {
  5257. label: "250万",
  5258. value: "2500000",
  5259. },
  5260. {
  5261. label: "300万",
  5262. value: "3000000",
  5263. },
  5264. {
  5265. label: "500万",
  5266. value: "5000000",
  5267. },
  5268. {
  5269. label: "1000万",
  5270. value: "10000000",
  5271. },
  5272. ],
  5273. desc: "保险期间内,被保险人或其允许的驾驶人在法定节假日期间使用被保险机动车发生机动车第三者责任保险范围内的事故,并经公安部门或保险人查勘确认的,被保险机动车第三者责任保险所适用的责任限额在保险单载明的基础上增加一倍的险种",
  5274. isMainRisk: false,
  5275. kindCode: "BD",
  5276. kindName: "法定节假日限额翻倍险",
  5277. mainRiskCodeList: "B",
  5278. },
  5279. {
  5280. amount: "0",
  5281. amountDesc: "不投保",
  5282. coveragePremium: 0,
  5283. amtList: [
  5284. {
  5285. label: "不投保",
  5286. value: "0",
  5287. },
  5288. {
  5289. label: "2次",
  5290. value: "2",
  5291. },
  5292. {
  5293. label: "7次",
  5294. value: "7",
  5295. },
  5296. {
  5297. label: "12次",
  5298. value: "12",
  5299. },
  5300. {
  5301. label: "17次",
  5302. value: "17",
  5303. },
  5304. {
  5305. label: "22次",
  5306. value: "22",
  5307. },
  5308. ],
  5309. desc: "道路救援服务特约条款",
  5310. isMainRisk: false,
  5311. kindCode: "TY1",
  5312. kindName: "道路救援服务特约条款",
  5313. },
  5314. {
  5315. amount: "0",
  5316. amountDesc: "不投保",
  5317. coveragePremium: 0,
  5318. desc: "车辆安全检测特约条款",
  5319. isMainRisk: false,
  5320. kindCode: "TY2",
  5321. kindName: "车辆安全检测特约条款",
  5322. },
  5323. {
  5324. amount: "0",
  5325. amountDesc: "不投保",
  5326. coveragePremium: 0,
  5327. desc: "代为驾驶服务特约条款",
  5328. isMainRisk: false,
  5329. kindCode: "TY3",
  5330. kindName: "代为驾驶服务特约条款",
  5331. },
  5332. {
  5333. amount: "0",
  5334. amountDesc: "不投保",
  5335. coveragePremium: 0,
  5336. desc: "代为送检服务特约条款",
  5337. isMainRisk: false,
  5338. kindCode: "TY4",
  5339. kindName: "代为送检服务特约条款",
  5340. },
  5341. ],
  5342. totalCompanyList: [], //报价保险公司
  5343. continuousCompanyList: [], //续保保险公司
  5344. quoteno: "", //报价号
  5345. orderno: "", //订单号
  5346. queryOrders: {
  5347. extendInfo: {},
  5348. carinfo: {},
  5349. ownerinfo: {},
  5350. applyinfo: {},
  5351. insureinfo: {},
  5352. }, //核保详情
  5353. inscompany: "", //保险公司名称
  5354. licenseNo: "", //车牌号
  5355. applyName: "", //车主名字
  5356. orderstatus: "", //订单状态
  5357. sumpremium: "", //保费合计
  5358. jqpremium: "", //交强
  5359. sypremium: "", //商业
  5360. jypremium: "", //驾意险
  5361. taxamount: "", //车船税
  5362. jqstartdate: "", //交强时间
  5363. systartdate: "", //商业时间
  5364. mobile: "", //投保人手机号
  5365. //影像回显列表
  5366. // 是否禁用上传
  5367. uploadDisabled: false,
  5368. href: "",
  5369. pageRequest: {
  5370. //归属查询
  5371. pageNum: 1,
  5372. pageSize: 20,
  5373. columnFilters: {
  5374. deptId: {
  5375. name: "deptId",
  5376. value: "9",
  5377. },
  5378. containsSubDept: {
  5379. name: "containsSubDept",
  5380. value: 1,
  5381. },
  5382. usertype: {
  5383. name: "usertype",
  5384. value: null,
  5385. },
  5386. status: {
  5387. name: "status",
  5388. value: "1",
  5389. },
  5390. id: {
  5391. name: "id",
  5392. value: "",
  5393. },
  5394. name: {
  5395. name: "name",
  5396. value: "",
  5397. },
  5398. mobile: {
  5399. name: "mobile",
  5400. value: "",
  5401. },
  5402. },
  5403. },
  5404. userform: {},
  5405. qrcode: null,
  5406. paycodeimg: "", //展示二维码
  5407. ImageUrldialogVisible: false,
  5408. paramsEdit: "",
  5409. companyId: "",
  5410. apiType: "",
  5411. insureMore: true,
  5412. // insureLength: 5,
  5413. HistoryList: [], //历史记录数据
  5414. image1: "",
  5415. image2: "",
  5416. historyRadio: "888",
  5417. sumseatCount: "", // 投保险种座位数
  5418. deptName: "",
  5419. isBottom: true,
  5420. logoImg: "", //报价单保险公司logo图
  5421. vehicleTypeoptions: [], //车辆种类
  5422. trafficManagementVehicleTypeoptions: [], //车辆类型
  5423. energyTypeoptions: [], //能源种类
  5424. taxRelifFlagoptions: [], //车船税类型
  5425. taxpayerIdentifieroptions: [], //纳税人证件类型
  5426. relifReasonoptions: [], //减免税原因代码
  5427. relifReasonoptions: [], //减免税原因代码
  5428. provinceSelect: [],
  5429. natureOfVehicleUseoptions: [],
  5430. businessVehicleUseoptions: [],
  5431. outOfBusinessVehicleUseoptions: [],
  5432. insOrderStatusoptions: [],
  5433. lastCompanyId: "",
  5434. apiInterfaceName: "generateOrder",
  5435. isLetter3Arr: [],
  5436. isLetter3agreementId: "",
  5437. editorInfo: {},
  5438. resultMessageImg:'',
  5439. tabLiIndex: 0,
  5440. tabLimenu: [
  5441. {
  5442. name: "车辆信息",
  5443. scroll: "vehicle",
  5444. },
  5445. {
  5446. name: "车主信息",
  5447. scroll: "owner",
  5448. },
  5449. {
  5450. name: "投保人信息",
  5451. scroll: "applicant",
  5452. },
  5453. {
  5454. name: "被保人信息",
  5455. scroll: "insured",
  5456. },
  5457. {
  5458. name: "关系证明",
  5459. scroll: "relationship",
  5460. },
  5461. {
  5462. name: "验车照",
  5463. scroll: "yanchezhao",
  5464. },
  5465. {
  5466. name: "上年商业险保单",
  5467. scroll: "snbaodan",
  5468. },
  5469. ],
  5470. ProViewImg: "", //预览图片
  5471. carfrontImg: "", //行驶证正面
  5472. carbackImg: "", //行驶证背面
  5473. userfrontImg: "", //身份证正面
  5474. userbackImg: "", //身份证背面
  5475. businessImg: "",
  5476. CarFrontFile: "", //车正面文件流
  5477. CarBackFile: "", //车背面文件流
  5478. C02File: "",
  5479. D02File: "",
  5480. C03File: "",
  5481. D03File: "",
  5482. C04File: "",
  5483. D04File: "",
  5484. //影像回显列表
  5485. imgList1: [],
  5486. imgList2: [],
  5487. imgList3: [],
  5488. imgList4: [],
  5489. imgList5: [],
  5490. imgList6: [],
  5491. imgList7: [],
  5492. imgList8: [],
  5493. imgList9: [],
  5494. imgList10: [],
  5495. imgList11: [],
  5496. imgList12: [],
  5497. imgList13: [],
  5498. imgList14: [],
  5499. imgList15: [],
  5500. imgList16: [],
  5501. imgList17: [],
  5502. imgList18: [],
  5503. imgList19: [],
  5504. imgList20: [],
  5505. imgList21: [],
  5506. imgList22: [],
  5507. imgList23: [],
  5508. imgList24: [],
  5509. //影像上传列表
  5510. imageList1: [],
  5511. imageList2: [],
  5512. imageList3: [],
  5513. imageList4: [],
  5514. imageList5: [],
  5515. imageList6: [],
  5516. showLoading: false,
  5517. detailJiaYiTitle: '查看详情',
  5518. oldData: {}, // 旧获取公司参数
  5519. };
  5520. },
  5521. watch: {
  5522. "carInfo.licenseNo": {
  5523. handler(val) {
  5524. if (val) {
  5525. this.carInfo.licenseNo = val.toUpperCase();
  5526. }
  5527. },
  5528. deep: true,
  5529. },
  5530. "carInfo.frameNo": {
  5531. handler(val) {
  5532. if (val) {
  5533. this.carInfo.frameNo = val.toUpperCase();
  5534. }
  5535. },
  5536. deep: true,
  5537. },
  5538. "carInfo.enginedesc": {
  5539. handler(val) {
  5540. if (val) {
  5541. this.carInfo.enginedesc = val.replace(/[A-Za-z]/g, "");
  5542. }
  5543. },
  5544. deep: true,
  5545. },
  5546. "ownerInfo.mobile": {
  5547. handler(val) {
  5548. if (val) {
  5549. this.ownerInfo.mobile = val.replace(/\s/g, "");
  5550. }
  5551. },
  5552. deep: true,
  5553. },
  5554. "policyHolderInfo.mobile": {
  5555. handler(val) {
  5556. if (val) {
  5557. this.policyHolderInfo.mobile = val.replace(/\s/g, "");
  5558. }
  5559. },
  5560. deep: true,
  5561. },
  5562. "insuredPersonInfo.mobile": {
  5563. handler(val) {
  5564. if (val) {
  5565. this.insuredPersonInfo.mobile = val.replace(/\s/g, "");
  5566. }
  5567. },
  5568. deep: true,
  5569. },
  5570. "carInfo.engineNo": {
  5571. handler(val) {
  5572. if (val) {
  5573. this.carInfo.engineNo = val.replace(/[^\w-]/gi, "").toUpperCase();
  5574. }
  5575. },
  5576. deep: true,
  5577. },
  5578. "carInfo.seatCount": {
  5579. handler(val) {
  5580. if (val) {
  5581. this.sumseatCount = val - 1;
  5582. }
  5583. },
  5584. deep: true,
  5585. },
  5586. "policyHolderInfo.identifyNumber": {
  5587. handler(val) {
  5588. if (val) {
  5589. this.vehicleAndVesselTaxForm.identifyNumber = val;
  5590. }
  5591. },
  5592. deep: true,
  5593. },
  5594. "policyHolderInfo.name": {
  5595. handler(val) {
  5596. if (val) {
  5597. this.vehicleAndVesselTaxForm.taxpayerName = val;
  5598. }
  5599. },
  5600. deep: true,
  5601. },
  5602. },
  5603. props: {
  5604. isdisabled: {
  5605. type: Boolean,
  5606. default: true,
  5607. },
  5608. isLetter: {
  5609. type: String,
  5610. default: "1",
  5611. },
  5612. },
  5613. components: {
  5614. detailsDialog,
  5615. quotationDialog,
  5616. quotationDialogPro,
  5617. imageDialog,
  5618. Ktletter1Popover,
  5619. floatingBar,
  5620. "el-image-viewer": () =>
  5621. import("element-ui/packages/image/src/image-viewer"),
  5622. },
  5623. created() {
  5624. if (this.isLetter == "2") {
  5625. this.apiInterfaceName = "ordergenerateOrder";
  5626. }
  5627. // this.commpanyList(); //获取保险公司
  5628. this.getDicType("taxRelifFlag"); //车船税类型
  5629. this.getDicType("taxpayerIdentifier"); //纳税人证件类型
  5630. this.getDicType("relifReason"); //减免税原因代码
  5631. this.getDicType("vehicleType"); //车辆种类
  5632. this.getDicType("trafficManagementVehicleType"); //车辆类型
  5633. this.getDicType("energyType"); //能源种类
  5634. this.getDicType("natureOfVehicleUse"); //车辆使用性质
  5635. this.getDicType("businessVehicleUse"); //(车辆用途)营业
  5636. this.getDicType("outOfBusinessVehicleUse"); //(车辆用途)非营业
  5637. this.getDicType("insOrderStatus"); //状态
  5638. this.$api.letter.queryCompany().then((res) => {
  5639. this.continuousCompanyList = res.data;
  5640. });
  5641. this.$api.letter.packageQuery().then((res) => {
  5642. this.packageOptions = res.data;
  5643. });
  5644. localStorage.setItem("carInfo", JSON.stringify(this.carInfo));
  5645. localStorage.setItem("insureList", JSON.stringify(this.insureList));
  5646. //--归属信息获取--
  5647. if (this.isLetter == 1 || this.isLetter == 2) {
  5648. var userId = Cookies.get("user");
  5649. if (userId == "admin") {
  5650. this.userId = "admin";
  5651. } else {
  5652. // this.userId = userId;
  5653. this.$api.user.getLoginUser().then((res) => {
  5654. if (res.code == 200) {
  5655. this.userform = res.data;
  5656. this.$api.dept.getDeptById(res.data.deptId).then((res) => {
  5657. this.deptName = res.data.name;
  5658. });
  5659. this.userId = res.data.id;
  5660. }
  5661. });
  5662. }
  5663. }
  5664. //--订单编辑回显--
  5665. // this.paramsEdit = this.$route.query.data; //接收参数
  5666. // this.obtainProtocol(this.$route.query.data);
  5667. this.getProductId() // 获取险别
  5668. // this.editingWay(this.$route.query.data)
  5669. if (this.$route.query.data) {
  5670. this.editingWay(this.$route.query.data)
  5671. }
  5672. },
  5673. mounted() {
  5674. this.getCompanyList(this.$route.query.data)
  5675. this.onScroll();
  5676. if (this.$route.query.data) {
  5677. if(this.isDateBeforeToday(this.$route.query.data.jqstartdate)){
  5678. this.jqstartDate = this.transformTime1();
  5679. this.jqendDate = this.oneYearPast1(this.jqstartDate);
  5680. }else{
  5681. this.jqstartDate = this.$route.query.data.jqstartdate;
  5682. this.jqendDate = this.$route.query.data.jqenddate;
  5683. }
  5684. if (this.$route.query.data.jqstartdate.split(" ")[1] == "00:00:00") {
  5685. this.immediatelyValue = false;
  5686. } else {
  5687. this.immediatelyValue = true;
  5688. }
  5689. }
  5690. window.addEventListener("scroll", this.onScroll);
  5691. },
  5692. destroyed() {
  5693. window.removeEventListener("scroll", this.onScroll);
  5694. },
  5695. beforeCreate() {
  5696. _self = this;
  5697. },
  5698. computed: {
  5699. ...mapState({
  5700. collapse: (state) => state.app.collapse,
  5701. }),
  5702. issueDateOptions() {
  5703. return {
  5704. disabledDate: this.disabledDate,
  5705. };
  5706. },
  5707. },
  5708. filters: {
  5709. cap(ele) {
  5710. return _self.insOrderStatusoptions.find((item) => {
  5711. return item.dictValue === ele;
  5712. }).dictTag;
  5713. },
  5714. },
  5715. methods: {
  5716. deleteJiaYi(reslistindex, drivingIndex) {
  5717. this.totalCompanyList[reslistindex].programme.drivingList.splice(drivingIndex, 1)
  5718. this.$forceUpdate()
  5719. },
  5720. toWan(num, type) {
  5721. if (type == 'fw') {
  5722. return num + '次'
  5723. }
  5724. if (num > 10000) {
  5725. if (num % 10000 == 0) {
  5726. return (num / 10000) + '万'
  5727. } else {
  5728. return (num / 10000).toFixed(4) + '万'
  5729. }
  5730. } else {
  5731. return num
  5732. }
  5733. },
  5734. // 获取新公司列表
  5735. getCompanyList(data) {
  5736. if (!this.productId) {
  5737. this.$message.warning('请选择险种')
  5738. return
  5739. }
  5740. let starttime = new Date(this.carInfo.registerDate);
  5741. let endtime = new Date(this.carInfo.issueDate);
  5742. if (endtime < starttime) {
  5743. this.$message({ message: "发证日期早于初登日期", type: "error" });
  5744. return;
  5745. }
  5746. console.log(this.policyHolderInfo, 'policyHolderInfo')
  5747. this.policyHolderInfovalidate();
  5748. this.$refs["carInfo"].validate((valid) => {
  5749. if (valid) {
  5750. var _this = this;
  5751. // this.policyHolderInfovalidate()
  5752. _this.$refs["ownerInfo"].validate(async (valid1) => {
  5753. if (valid1) {
  5754. if (!_this.productId) {
  5755. _this.$message.warning('请选择险别')
  5756. return
  5757. }
  5758. // tbczcarShow: true, //投保人同车主
  5759. // bbczcarShow: false, //被保人同车主
  5760. // bbtbcarShow: true, //被保人同投保人
  5761. // ownerInfo 车主
  5762. // policyHolderInfo 投保人
  5763. // insuredPersonInfo 被保人
  5764. if (_this.bbtbcarShow == true) {
  5765. _this.insuredPersonInfo = JSON.parse(
  5766. JSON.stringify(_this.policyHolderInfo)
  5767. );
  5768. } else if (_this.bbczcarShow == true) {
  5769. _this.insuredPersonInfo = JSON.parse(
  5770. JSON.stringify(_this.ownerInfo)
  5771. );
  5772. } else {
  5773. // _this.insuredPersonInfo = {}
  5774. }
  5775. if (this.tbczcarShow == true) {
  5776. this.policyHolderInfo = JSON.parse(
  5777. JSON.stringify(_this.ownerInfo)
  5778. );
  5779. } else {
  5780. // this.policyHolderInfo = {}
  5781. }
  5782. let res = {};
  5783. // res = await this.$api.letter.getAllAgreement();
  5784. // this.$api.letter.getAllAgreement().then((res) => {
  5785. // oldData
  5786. let param = {
  5787. productId: this.productId,
  5788. carInfo: this.carInfo,
  5789. ownerInfo: this.ownerInfo,
  5790. applyInfo: this.policyHolderInfo,
  5791. insureInfo: this.insuredPersonInfo,
  5792. userId:this.isLetter==2? this.userId:""
  5793. }
  5794. if (JSON.stringify(param) === this.oldData) {
  5795. return
  5796. } else {
  5797. this.oldData = JSON.stringify(param)
  5798. }
  5799. console.log('校验成功,获取列表')
  5800. this.showLoading = true
  5801. this.$api.letter.ruleFilterCompany(param).then((res) => {
  5802. if (res.code == 200) {
  5803. res.data.map((ele) => {
  5804. ele["result"] = {};
  5805. ele["quoteCode"] = 0;
  5806. ele["checked"] = false;
  5807. ele["msg"] = "";
  5808. ele["lastYearMsg"] = "";
  5809. ele["agreementId"] = "";
  5810. ele["apiType"] = "";
  5811. ele["orderstatus"] = 0;
  5812. ele.coefficient = "";
  5813. ele.underwritingDescription =
  5814. ele.agreement[0].underwritingDescription;
  5815. if (ele.isTaxSource && ele.isTaxSource == "1" && ele.agreement) {
  5816. ele.agreement.forEach((val) => {
  5817. if (val.isTaxSource && val.isTaxSource == "1") {
  5818. ele.agreementId = val.id;
  5819. ele.apiType = val.apiType;
  5820. }
  5821. });
  5822. }
  5823. });
  5824. if (data) {
  5825. this.productId = this.productId || data.productid
  5826. res.data.forEach((val, index) => {
  5827. if(!data.insAreaCompanyEditingDtos) {
  5828. return
  5829. }
  5830. data.insAreaCompanyEditingDtos.forEach((ele) => {
  5831. if (val.namesimple == ele.inscompany) {
  5832. if (ele.inscompany == "中国人寿" && ele.companyId) {
  5833. this.lastCompanyId = ele.companyId;
  5834. }
  5835. res.data[index].quoteCode = 200;
  5836. res.data[index].result = ele;
  5837. }
  5838. });
  5839. });
  5840. }
  5841. // //险种合并集合
  5842. } else {
  5843. this.$message.error(res.msg)
  5844. }
  5845. const combinedArray = [
  5846. ...this.riskList.map(item => item.riskCode),
  5847. ...this.kindList.map(item => item.kindCode),
  5848. ];
  5849. if (res.data) {
  5850. res.data = res.data.filter(obj => {
  5851. obj.agreement = obj.agreement.filter(agreementObj => {
  5852. // 险种配置为空,则过滤掉该协议
  5853. if (agreementObj.productsCodes == null) {
  5854. return true;
  5855. } else {
  5856. // 检查是否包含 A 的特殊处理
  5857. if (combinedArray.includes('A') && !agreementObj.productsCodes.includes(
  5858. 'A')) {
  5859. return false;
  5860. }
  5861. return agreementObj.productsCodes.some(item => combinedArray.includes(
  5862. item));
  5863. }
  5864. });
  5865. return obj.agreement.length > 0; // 返回true保留,返回false移除该保险公司
  5866. });
  5867. res.data.forEach((e) => {
  5868. e.agreement.forEach((el) => (el.disabled = false));
  5869. });
  5870. }
  5871. this.totalCompanyList = res.data;
  5872. this.showLoading = false
  5873. })
  5874. } else {
  5875. document.getElementById("CheZhu").scrollIntoView();
  5876. _this.$message({ message: "请检查人员信息", type: "warning" });
  5877. }
  5878. });
  5879. } else {
  5880. document.getElementById("Car").scrollIntoView();
  5881. this.$message({ message: "请检查车辆信息", type: "warning" });
  5882. return false;
  5883. }
  5884. });
  5885. },
  5886. // 保费计算(报价)按钮
  5887. handleListJisuan(item, index) {
  5888. this.quote(index)
  5889. },
  5890. // 修改险别
  5891. productIdChange() {
  5892. if (this.productId != '0330') {
  5893. this.sychecked = true
  5894. this.sycheckedChange(true)
  5895. } else {
  5896. this.sychecked = false
  5897. this.sycheckedChange(false)
  5898. }
  5899. if (this.productId == '034001' || this.productId == '034002') {
  5900. this.jqchecked = false
  5901. this.jqcheckedChange(false)
  5902. } else {
  5903. this.jqchecked = true
  5904. this.jqcheckedChange(true)
  5905. }
  5906. this.getCompanyList()
  5907. this.totalCompanyList.forEach((val) => {
  5908. val.checked = false
  5909. })
  5910. },
  5911. // 选择方案
  5912. checkedPopover(reslistindex, index, item) {
  5913. console.log(reslistindex, index, item, 'reslistindex, index, item')
  5914. if (index == 99) {
  5915. console.log(this.totalCompanyList[reslistindex].programme99,this.totalCompanyList[reslistindex].programme99.schemeId, 'this.totalCompanyList[reslistindex].programme99')
  5916. if (this.totalCompanyList[reslistindex].programme99 && !this.totalCompanyList[reslistindex].programme99.schemeId) {
  5917. return
  5918. }
  5919. if (!this.totalCompanyList[reslistindex].zxProgramme) {
  5920. this.totalCompanyList[reslistindex].zxProgramme = { // 自选方案详情
  5921. description: '',
  5922. drivingList: [],
  5923. jqx: {
  5924. name: '交通事故强制责任险'
  5925. },
  5926. kinds: {
  5927. additional: [],
  5928. main: [],
  5929. service: []
  5930. },
  5931. }
  5932. }
  5933. this.typeDialogIndex = reslistindex // 当前的公司index
  5934. this.totalCompanyList[reslistindex].programme = this.totalCompanyList[reslistindex].zxProgramme // 选中的自定义方案详情
  5935. } else {
  5936. this.totalCompanyList[reslistindex].programme = item // 选中的方案详情
  5937. }
  5938. this.totalCompanyList[reslistindex].checkedProgramme = index // 选中的方案
  5939. this.productList.forEach((val) => {
  5940. if (val.code == this.productId) {
  5941. this.totalCompanyList[reslistindex].programme.description = val.desc
  5942. }
  5943. })
  5944. console.log('当前选中方案', this.totalCompanyList[reslistindex].programme)
  5945. this.$forceUpdate()
  5946. },
  5947. // 获取方案信息
  5948. getCompanyProgramme(e, code, name, index) {
  5949. this.totalCompanyList[index].checked = false
  5950. this.$api.letter.getAllSchemeList({
  5951. companyId: code,
  5952. productId: this.productId,
  5953. seatNum: this.carInfo.seatCount,
  5954. vehicleType: this.carInfo.cimodelclass,
  5955. energyType: this.carInfo.energyType,
  5956. carnature: this.carInfo.carnature
  5957. }).then((res) => {
  5958. if (res.code == 200) {
  5959. this.totalCompanyList[index].schemes = res.data.schemes
  5960. this.totalCompanyList[index].programme99 = res.data.optionalScheme || {kinds: [],} // 获取自选方案弹窗信息
  5961. if (res.data.schemes[0]) {
  5962. this.checkedPopover(index, 0, res.data.schemes[0])
  5963. } else {
  5964. this.checkedPopover(index, 99)
  5965. }
  5966. this.totalCompanyList[index].checked = true
  5967. }
  5968. })
  5969. },
  5970. // 获取险别
  5971. getProductId() {
  5972. // /plt/scheme/getProductInfo
  5973. this.$api.letter.getProductInfo().then((res) => {
  5974. this.productList = res.data
  5975. })
  5976. },
  5977. // 选择特约
  5978. handleCloseTeYue() {
  5979. this.showTeYueVisible = false
  5980. },
  5981. checkTeYue(item) {
  5982. this.showTeYueVisible = true
  5983. },
  5984. // 驾意险详情
  5985. handleCloseShowDetailJiaYi() {
  5986. this.showDetailJiaYiVisible = false
  5987. this.showDetailJiaYiVisible1 = false
  5988. this.showDetailtable = []
  5989. this.typeDialogData = {}
  5990. },
  5991. // 确认驾意
  5992. handleAddYiWai() {
  5993. let arr = []
  5994. console.log(this.checkList,"驾意险")
  5995. this.checkList.forEach((val) => {
  5996. if (this.totalCompanyList[this.typeDialogIndex].cnName == 'zijin') {
  5997. if(val.tableData ) arr.push(...val.tableData)
  5998. // } else if (this.totalCompanyList[this.typeDialogIndex].cnName == 'guoRen' || this.totalCompanyList[this.typeDialogIndex].cnName == 'ansheng') {
  5999. // arr.push({...val.tableData, select: val.select})
  6000. } else {
  6001. if(val.tableData ) arr.push(val.tableData)
  6002. }
  6003. })
  6004. this.totalCompanyList[this.typeDialogIndex].zxProgramme.drivingList = arr;
  6005. this.totalCompanyList[this.typeDialogIndex].programme.drivingList = arr
  6006. console.log(arr, 'arr')
  6007. this.handleCloseAddYiwai()
  6008. },
  6009. // 驾意输入框按钮
  6010. numberChange(listIndex, index, type,minquantity, dataIndex) {
  6011. if (dataIndex >= 0) {
  6012. if (type == 'plus') {
  6013. if (this.jiayiDialogData.drivingTypeList[listIndex].children[index].tableData[dataIndex].quantity < 10) {
  6014. this.jiayiDialogData.drivingTypeList[listIndex].children[index].tableData[dataIndex].quantity += 1
  6015. }
  6016. } else {
  6017. if (this.jiayiDialogData.drivingTypeList[listIndex].children[index].tableData[dataIndex].quantity > minquantity) {
  6018. this.jiayiDialogData.drivingTypeList[listIndex].children[index].tableData[dataIndex].quantity -= 1
  6019. }
  6020. }
  6021. } else {
  6022. if (type == 'plus') {
  6023. if (this.jiayiDialogData.drivingTypeList[listIndex].children[index].tableData.quantity < 10) {
  6024. this.jiayiDialogData.drivingTypeList[listIndex].children[index].tableData.quantity += 1
  6025. }
  6026. } else {
  6027. if (this.jiayiDialogData.drivingTypeList[listIndex].children[index].tableData.quantity > minquantity) {
  6028. this.jiayiDialogData.drivingTypeList[listIndex].children[index].tableData.quantity -= 1
  6029. }
  6030. }
  6031. }
  6032. this.$forceUpdate()
  6033. },
  6034. // 选中驾意一层
  6035. handleChangeSelectGuoren(index) {
  6036. this.checkList[index].tableData1 = undefined
  6037. this.checkList[index].detail.forEach((val) => {
  6038. if (val.projectName == this.checkList[index].select) {
  6039. this.checkList[index].tableData1 = val.insDrivingIntentionInsurances
  6040. }
  6041. })
  6042. },
  6043. // 选中驾意
  6044. handleChangeSelect(index) {
  6045. if (this.totalCompanyList[this.typeDialogIndex].cnName == 'zijin') {
  6046. this.checkList[index].tableData = []
  6047. this.checkList[index].detail.forEach((val) => {
  6048. this.checkList[index].selectList.forEach((value) => {
  6049. if (val.alias == value) {
  6050. this.checkList[index].tableData.push(val)
  6051. this.$forceUpdate()
  6052. }
  6053. })
  6054. })
  6055. // } else if (this.totalCompanyList[this.typeDialogIndex].cnName == 'guoRen' || this.totalCompanyList[this.typeDialogIndex].cnName == 'ansheng' || this.totalCompanyList[this.typeDialogIndex].cnName == 'ansheng') {
  6056. // this.checkList[index].tableData1.forEach((val) => {
  6057. // if (val.projectName == this.checkList[index].select1) {
  6058. // this.checkList[index].tableData = val
  6059. // }
  6060. // })
  6061. } else {
  6062. this.checkList[index].detail.forEach((val) => {
  6063. val.quantity=val.minQuantity?val.minQuantity:val.quantity;
  6064. if (val.alias == this.checkList[index].select) {
  6065. this.checkList[index].tableData = val
  6066. }
  6067. })
  6068. }
  6069. },
  6070. handleChangeJiayi(listItem, listIndex) {
  6071. console.log(listItem, listIndex, this.jiayiDialogData, 'listItem, listIndex')
  6072. if (this.checkList.length) {
  6073. this.checkList.forEach((val) => {
  6074. this.$api.letter.getDriving({
  6075. schemeId: this.jiayiDialogData.schemeId,
  6076. seatNum: this.carInfo.seatCount
  6077. // companyId: this.totalCompanyList[this.typeDialogIndex].id,
  6078. // type: val.id,
  6079. // productId: this.productId,
  6080. // vehicleType: this.carInfo.cimodelclass,
  6081. // energyType: this.carInfo.energyType,
  6082. // carnature: this.carInfo.carnature
  6083. }).then((res) => {
  6084. if (res.code == 200) {
  6085. val.detail = res.data
  6086. this.$forceUpdate()
  6087. }
  6088. })
  6089. })
  6090. }
  6091. },
  6092. showDetailJiaYi(item, index, type) {
  6093. this.showDetailtable = []
  6094. item.programme.drivingList.forEach((val) => {
  6095. this.$api.letter.getDrivingSon({
  6096. companyId: this.totalCompanyList[index].id,
  6097. projectCode: val.projectCode
  6098. }).then((res) => {
  6099. if (res.code == 200) {
  6100. this.showDetailtable.push(res.data)
  6101. }
  6102. })
  6103. })
  6104. if (type) {
  6105. this.detailJiaYiTitle = '驾意险详情'
  6106. this.showDetailJiaYiVisible1 = true
  6107. } else {
  6108. this.detailJiaYiTitle = '查看详情'
  6109. this.showDetailJiaYiVisible = true
  6110. }
  6111. this.typeDialogData = item.programme
  6112. this.typeDialogData.shangyeList = [...item.programme.kinds.main,
  6113. ...item.programme.kinds.additional,
  6114. ...item.programme.kinds.service
  6115. ]
  6116. },
  6117. // 添加驾意险
  6118. addJiaYi(item) {
  6119. this.jiayiDialogData = item.programme99
  6120. this.addYiwaiDialogVisible = true
  6121. },
  6122. handleCloseAddYiwai() {
  6123. this.jiayiDialogData = {}
  6124. this.checkList = []
  6125. this.addYiwaiDialogVisible = false
  6126. },
  6127. // 调整险种
  6128. // 确定险种
  6129. subTypeDialog() {
  6130. // this.totalCompanyList[this.typeDialogIndex].zxProgramme = {}
  6131. // this.totalCompanyList[reslistindex].zxProgramme
  6132. let main = []
  6133. let additional = []
  6134. let service = []
  6135. this.typeDialogData.kinds.forEach((val, index) => {
  6136. if (val.checked) {
  6137. if (val.grouping == 'main') {
  6138. main.push(val)
  6139. }
  6140. if (val.grouping == 'additional') {
  6141. additional.push(val)
  6142. }
  6143. if (val.grouping == 'service') {
  6144. service.push(val)
  6145. }
  6146. }
  6147. })
  6148. this.totalCompanyList[this.typeDialogIndex].zxProgramme.kinds = {main, additional, service}
  6149. this.totalCompanyList[this.typeDialogIndex].programme.kinds = {main, additional, service}
  6150. this.handleAddYiWai()
  6151. this.handleCloseType()
  6152. },
  6153. showTypeDialog(item, index) {
  6154. item.programme99.kinds.map(item=>{
  6155. const itemamtList=item.amtList.map(val=>{return val.label})
  6156. console.log(itemamtList)
  6157. if(!itemamtList.includes('不投保')){
  6158. item.checked=true;
  6159. item.Required=true;
  6160. item.amount=item.amtList[0].value;
  6161. }
  6162. return item;
  6163. })
  6164. this.typeDialogData = item.programme99
  6165. this.jiayiDialogData = item.programme99
  6166. this.typeDialogVisible = true
  6167. },
  6168. handleCloseType() {
  6169. this.typeDialogVisible = false
  6170. this.typeDialogData = []
  6171. this.jiayiDialogData = {}
  6172. this.checkList = []
  6173. },
  6174. //清空保单图片
  6175. removePhoto(file, fileList, type) {
  6176. this.policyNumberForm[type] = []
  6177. },
  6178. editingWay(paramsEdit) {
  6179. if (paramsEdit) {
  6180. var _this = this;
  6181. this.jqchecked = false;
  6182. this.tbczcarShow = false;
  6183. this.bbtbcarShow = false;
  6184. this.bbczcarShow = false;
  6185. const { carinfo, ownerinfo, applyinfo, insureinfo, quoteno, orderno } =
  6186. paramsEdit;
  6187. this.editorInfo = { ...paramsEdit };
  6188. // this.vehicleAndVesselTaxForm = { ...paramsEdit.vehicleAndVesselTax };
  6189. _this.carInfo = carinfo;
  6190. if (_this.carInfo.carnature == "8A") {
  6191. _this.carInfo.carnature = "02";
  6192. _this.carInfo.vehicleUse = "05";
  6193. } else {
  6194. _this.carInfo.carnature;
  6195. _this.carInfo.vehicleUse;
  6196. }
  6197. _this.ownerInfo = ownerinfo;
  6198. _this.policyHolderInfo = applyinfo;
  6199. _this.insuredPersonInfo = insureinfo;
  6200. _this.quoteno = quoteno;
  6201. _this.orderno = orderno;
  6202. _this.productId = paramsEdit.productid
  6203. _this.tbczcarShow = applyinfo.owner;
  6204. _this.bbczcarShow = insureinfo.owner;
  6205. _this.kindList = paramsEdit.king;
  6206. _this.bbtbcarShow = insureinfo.insuranceHolder;
  6207. _this.ownerInfo.age = getAgeByIdCard(_this.ownerInfo.identifyNumber);
  6208. _this.policyHolderInfo.age = getAgeByIdCard(
  6209. _this.policyHolderInfo.identifyNumber
  6210. );
  6211. _this.insuredPersonInfo.age = getAgeByIdCard(
  6212. _this.insuredPersonInfo.identifyNumber
  6213. );
  6214. if (paramsEdit.carinfo.transferFlag) {
  6215. this.transferDateShow = true;
  6216. }
  6217. paramsEdit.risk.map((ele) => {
  6218. if (ele.riskCode == "0507") {
  6219. _this.jqchecked = true;
  6220. this.protocolJudge("0507", true);
  6221. _this.riskList.push({
  6222. riskCode: "0507",
  6223. });
  6224. // _this.jqstartDate = ele.startDate;
  6225. // _this.jqendDate = ele.endDate;
  6226. // this.jqstartDate = this.$route.query.data.jqstartdate
  6227. // this.jqendDate = this.$route.query.data.jqenddate
  6228. _this.jqstartDate = this.transformTime1();
  6229. _this.jqendDate = this.oneYearPast1(this.jqstartDate);
  6230. } else if (ele.riskCode == "0510") {
  6231. _this.sychecked = true;
  6232. this.protocolJudge("0510", true);
  6233. _this.riskList.push({
  6234. riskCode: "0510",
  6235. });
  6236. // _this.systartDate = ele.startDate;
  6237. // _this.syendDate = ele.endDate;
  6238. _this.systartDate = this.transformTime1();
  6239. _this.syendDate = this.oneYearPast1(this.systartDate);
  6240. _this.insureList.map((eleA) => {
  6241. paramsEdit.king.map((eleB) => {
  6242. if (eleA.kindCode == eleB.kindCode) {
  6243. switch (eleB.kindCode) {
  6244. case "D4":
  6245. case "SY_FJ_YBW2":
  6246. eleA.amount = JSON.stringify(eleB.unitAmount);
  6247. break;
  6248. case "MJ1":
  6249. case "MJ2":
  6250. case "MJ3":
  6251. case "MJ4":
  6252. eleA.amount = eleB.deductibleRate;
  6253. case "A":
  6254. eleA.amount = JSON.stringify(eleB.amount);
  6255. this.protocolJudge("A", true);
  6256. break;
  6257. default:
  6258. eleA.amount = JSON.stringify(eleB.amount);
  6259. }
  6260. }
  6261. });
  6262. });
  6263. }
  6264. });
  6265. // this.HistoryList = this.paramsEdit.insAreaCompanyList;
  6266. let params = {
  6267. orderNo: paramsEdit.orderno,
  6268. orderStatus: "",
  6269. };
  6270. this.$api.letter.queryQuoteHistory(params).then((res) => {
  6271. res.data.forEach((item) => {
  6272. if (item.accidentInfo) {
  6273. item.accidentInfo.constructor === Object
  6274. ? [item.accidentInfo]
  6275. : item.accidentInfo;
  6276. }
  6277. });
  6278. this.HistoryList = res.data;
  6279. });
  6280. //--获取影像信息--
  6281. _this.imageEcho(this.quoteno);
  6282. // this.$refs.imageDialog.imageEcho(this.quoteno)
  6283. // this.commpanyList()
  6284. //--显示影像按钮--
  6285. _this.imageUploadShow = true;
  6286. this.$forceUpdate()
  6287. _this.obtainProtocol(paramsEdit);
  6288. } else {
  6289. this.jqstartDate = this.transformTime1();
  6290. this.jqendDate = this.oneYearPast1(this.jqstartDate);
  6291. this.systartDate = this.transformTime1();
  6292. this.syendDate = this.oneYearPast1(this.systartDate);
  6293. }
  6294. },
  6295. handleRemove1(file, imageIdList, imgList) {
  6296. this[imageIdList].map((ele, index) => {
  6297. if (file.imageId === ele.imageId) {
  6298. this[imageIdList].splice(index, 1);
  6299. }
  6300. return ele;
  6301. });
  6302. if (file.imageId) {
  6303. this[imgList].map((ele, index) => {
  6304. if (file.imageId === ele.imageId) {
  6305. this[imgList].splice(index, 1);
  6306. }
  6307. return ele;
  6308. });
  6309. } else {
  6310. this[imgList].map((ele, index) => {
  6311. if (file.uid === ele.uid) {
  6312. this[imgList].splice(index, 1);
  6313. }
  6314. return ele;
  6315. });
  6316. }
  6317. },
  6318. uploadinformation() {
  6319. // //上传图片
  6320. const mergedArray = [
  6321. ...this.imageList1,
  6322. ...this.imageList2,
  6323. ...this.imageList3,
  6324. ...this.imageList4,
  6325. ...this.imageList5,
  6326. ...this.imageList6,
  6327. ];
  6328. let imageparam = {
  6329. imageList: mergedArray,
  6330. quoteNo: this.quoteno,
  6331. };
  6332. this.$api.letter.uploadImages(imageparam).then((responses) => {
  6333. if (responses.code == "200") {
  6334. this.imageEcho(this.quoteno);
  6335. this.$message({ message: responses.msg, type: "success" });
  6336. } else {
  6337. this.$message({ message: responses.msg, type: "error" });
  6338. }
  6339. });
  6340. this.imageUploaddialogVisible = false;
  6341. },
  6342. repairinformation() {
  6343. // //上传图片
  6344. const mergedArray = [
  6345. ...this.imageList1,
  6346. ...this.imageList2,
  6347. ...this.imageList3,
  6348. ...this.imageList4,
  6349. ...this.imageList5,
  6350. ...this.imageList6,
  6351. ];
  6352. let imageparam = {
  6353. imageList: mergedArray,
  6354. companyId: this.companyId,
  6355. };
  6356. this.$api.letter.additionalInformation(imageparam).then((responses) => {
  6357. if (responses.code == "200") {
  6358. this.imageUploaddialogVisible = false;
  6359. this.$message({ message: responses.msg, type: "success" });
  6360. } else {
  6361. this.$message({ message: responses.msg, type: "error" });
  6362. }
  6363. });
  6364. },
  6365. //手机号复制粘贴处理
  6366. handlePaste(e, mobileKey) {
  6367. e.preventDefault(); //阻止默认行为
  6368. const clipboardData = e.clipboardData || window.clipboardData; //获取剪切板内容
  6369. let pastedText = clipboardData.getData("text").replace(/\s+/g, ""); //获取纯文本并处理空格
  6370. // 截取前11个字符,以确保不会超过手机号长度限制
  6371. pastedText = pastedText.substring(0, 11);
  6372. // 使用Vue.nextTick确保更新发生在DOM更新之后
  6373. this.$nextTick(() => {
  6374. this[mobileKey].mobile = pastedText;
  6375. });
  6376. },
  6377. // licenseNoFun(data){
  6378. // if(data && this.carInfo.enginedesc){
  6379. // this.obtainProtocol()
  6380. // }
  6381. // },
  6382. // enginedescFun(data){
  6383. // if(data && this.carInfo.licenseNo){
  6384. // this.obtainProtocol()
  6385. // }
  6386. // },
  6387. packageChange(val) {
  6388. let arr = this.packageOptions.find((ele) => ele.id == val).kind;
  6389. if (arr.length > 0) {
  6390. this.insureList.map((eleA) => {
  6391. arr.map((eleB) => {
  6392. if (eleA.kindCode == eleB.kindCode) {
  6393. switch (eleB.kindCode) {
  6394. case "D4":
  6395. case "SY_FJ_YBW2":
  6396. eleA.amount = JSON.stringify(eleB.unitAmount);
  6397. break;
  6398. case "MJ1":
  6399. case "MJ2":
  6400. case "MJ3":
  6401. case "MJ4":
  6402. eleA.amount = eleB.deductibleRate;
  6403. break;
  6404. case "TY2":
  6405. case "TY3":
  6406. case "TY4":
  6407. eleA.amount = eleB.serviceTimes;
  6408. break;
  6409. default:
  6410. eleA.amount = JSON.stringify(eleB.amount);
  6411. }
  6412. }
  6413. });
  6414. });
  6415. } else {
  6416. this.insureList.map((eleA) => {
  6417. eleA.amount = "0";
  6418. });
  6419. }
  6420. },
  6421. capType(val) {
  6422. if (val == "0") {
  6423. return "success";
  6424. }
  6425. if (val == "1") {
  6426. return "warning";
  6427. }
  6428. if (val == "2" || val == "3" || val == "4") {
  6429. return "danger";
  6430. }
  6431. },
  6432. handleCheckAllChange(ele) {
  6433. this.totalCompanyList.forEach((val, index) => {
  6434. ele ? (val.checked = true) : (val.checked = false);
  6435. // this.initchange(ele, val.id, val.cnName, index);
  6436. });
  6437. },
  6438. retractFun() {
  6439. this.isRetract = this.isRetract == false ? true : false;
  6440. },
  6441. //中煤意外险调整份数事件
  6442. ZMhandleChange(val) {
  6443. if (!val) {
  6444. this.$refs.ZmMultipleTable[0].clearSelection(); //清除
  6445. }
  6446. },
  6447. //中煤意外险选中对应意外险方案
  6448. // ZMHandleSelectionChange(val) {
  6449. // // if(val.length > 0&& val[0].quantity==undefined){
  6450. // // this.$message({ message: "请先填写投保份数再勾选!", type: "error", });
  6451. // // this.$refs.ZmMultipleTable[0].clearSelection(); //清除
  6452. // // return false;
  6453. // // }
  6454. // if (val.length > 1) {
  6455. // this.$refs.ZmMultipleTable[0].clearSelection(); //清除
  6456. // this.$refs.ZmMultipleTable[0].toggleRowSelection(val.pop()); //pop:最后一个
  6457. // } else {
  6458. // this.zhongmeiaccidentalDrivingVo = val[0]; //multipleSelection:当前选择的数组
  6459. // }
  6460. // },
  6461. //中煤意外险选中对应产品带出方案明细
  6462. zhongmeiInsuranceChange(index) {
  6463. //每次选中产品,清空之前选中的数据
  6464. this.zhongmeitemplateSelection = index;
  6465. this.zhongmeiaccidentalDrivingVo = {};
  6466. this.zhongmeiInsuranceDataTable = [];
  6467. let data = this.zhongmeiInsuranceData.find(
  6468. (val) => val.projectCode == index
  6469. );
  6470. //把返回的方案明细放入展示数据对象中
  6471. this.accidentFormZM = Object.assign(this.accidentFormZM, data);
  6472. this.accidentFormZM.quantity = "1";
  6473. if (data && data.son) {
  6474. this.accidentPremiumZM = data.sumPremium;
  6475. this.zhongmeiInsuranceDataTable = data.son;
  6476. }
  6477. },
  6478. // 截图粘贴
  6479. copybjd() {
  6480. let that = this;
  6481. html2Canvas(document.getElementById("pdfContentsDiv"), {
  6482. allowTaint: true,
  6483. taintTest: false,
  6484. }).then(function (canvas) {
  6485. let base64Data = "";
  6486. // let blob = null
  6487. base64Data = canvas.toDataURL("image/png", 1);
  6488. const date = new Date();
  6489. const saveInfo = {
  6490. download: date.getTime() + `.png`,
  6491. href: base64Data,
  6492. };
  6493. const element = document.createElement("a");
  6494. element.style.display = "none";
  6495. for (const key in saveInfo) {
  6496. element.setAttribute(key, saveInfo[key]);
  6497. }
  6498. document.body.appendChild(element);
  6499. element.click();
  6500. setTimeout(() => {
  6501. document.body.removeChild(element);
  6502. }, 300);
  6503. // var format = 'image/png'
  6504. // //将Base64图片编码转换成blob
  6505. // var base64 = base64Data
  6506. // var code = window.atob(base64.split(',')[1])
  6507. // var aBuffer = new window.ArrayBuffer(code.length)
  6508. // var uBuffer = new window.Uint8Array(aBuffer)
  6509. // for (var i = 0; i < code.length; i++) {
  6510. // uBuffer[i] = code.charCodeAt(i) & 0xff
  6511. // }
  6512. // try {
  6513. // blob = new Blob([uBuffer], { type: format })
  6514. // } catch (e) {
  6515. // window.BlobBuilder =
  6516. // window.BlobBuilder ||
  6517. // window.WebKitBlobBuilder ||
  6518. // window.MozBlobBuilder ||
  6519. // window.MSBlobBuilder
  6520. // if (e.name == 'TypeError' && window.BlobBuilder) {
  6521. // var bb = new window.BlobBuilder()
  6522. // bb.append(uBuffer.buffer)
  6523. // blob = bb.getBlob('image/png')
  6524. // } else if (e.name == 'InvalidStateError') {
  6525. // blob = new Blob([aBuffer], { type: format })
  6526. // }
  6527. // }
  6528. // const clipboardItemInput = new ClipboardItem({
  6529. // 'image/png': blob,
  6530. // })
  6531. // that.$copyText({
  6532. // 'image/png': blob,
  6533. // }).then(
  6534. //   function(e) {
  6535. //     console.log("copy arguments e:", e);
  6536. //     alert("复制成功!");
  6537. //   },
  6538. //   function(e) {
  6539. //     console.log("copy arguments e:", e);
  6540. //     alert("复制失败!");
  6541. //   }
  6542. //   ),
  6543. // navigator.clipboard.write([clipboardItemInput])
  6544. // that.$message({
  6545. // message: '已截图并复制到粘贴板!',
  6546. // type: 'success'
  6547. // });
  6548. });
  6549. },
  6550. // 即时起保
  6551. immediatelyChange(e) {
  6552. if (e) {
  6553. this.immediatelyValue = true;
  6554. const date = new Date();
  6555. date.setHours(date.getHours() + 2);
  6556. date.setMinutes(0);
  6557. date.setSeconds(0);
  6558. this.jqstartDate = date;
  6559. this.jqendDate = this.oneYearPast1(date);
  6560. } else {
  6561. this.immediatelyValue = false;
  6562. this.jqstartDate = this.transformTime1();
  6563. this.jqendDate = this.oneYearPast1(this.jqstartDate);
  6564. }
  6565. },
  6566. // 使用性质方法
  6567. natureFun() {
  6568. if (this.carInfo.carnature == "01") {
  6569. this.carInfo.vehicleUse = "";
  6570. }
  6571. },
  6572. // 点击同步报价后的时间
  6573. syncData(item) {
  6574. this.jqstartDate = item.startDateJq ? item.startDateJq : this.jqstartDate;
  6575. this.jqendDate = item.endDateJq ? item.endDateJq : this.endDateJq;
  6576. this.systartDate = item.startDateSy ? item.startDateSy : this.systartDate;
  6577. this.syendDate = item.endDateSy ? item.endDateSy : this.syendDate;
  6578. },
  6579. //纳税类型事件
  6580. taxRelifFlagChange(val) {
  6581. if (val == 4) {
  6582. citydata.rawCitiesData.map((val) => {
  6583. this.provinceSelect.push({
  6584. name: val.name,
  6585. code: val.code,
  6586. });
  6587. return val;
  6588. });
  6589. }
  6590. },
  6591. //身份证前六位识别地区
  6592. // getAreaByCode(code) {
  6593. // let list = regionData;
  6594. // let provinceCode = code.substring(0, 2);
  6595. // let cityCode = code.substring(0, 4);
  6596. // let areaCode = code.substring(0, 6);
  6597. // // 获取省份信息
  6598. // let province = list.filter(function (item) {
  6599. // return item.value === provinceCode;
  6600. // });
  6601. // // 获取城市信息
  6602. // let city = province[0].children.filter(function (item) {
  6603. // return item.value === cityCode;
  6604. // });
  6605. // if (city.length > 0) {
  6606. // // 获取区/县信息
  6607. // let area = city[0].children.filter(function (item) {
  6608. // return item.value === areaCode;
  6609. // });
  6610. // return province[0].label + city[0].label + area[0].label;
  6611. // }
  6612. // },
  6613. //--数据字典 begin --
  6614. getDicType(type) {
  6615. this.$api.insCompany.dicType(type).then((res) => {
  6616. if (res.code == 200) {
  6617. if (type == "insOrderStatus") {
  6618. let data = JSON.parse(JSON.stringify(res.data.ddList));
  6619. data.unshift({
  6620. dictTag: "全部",
  6621. dictValue: "888",
  6622. });
  6623. this[type + "options"] = data;
  6624. } else {
  6625. this[type + "options"] = res.data.ddList;
  6626. }
  6627. }
  6628. });
  6629. },
  6630. //身份证失去焦点
  6631. identifyblur(info) {
  6632. this[info].age = getAgeByIdCard(this[info].identifyNumber);
  6633. this[info].gender = getGenderByIdCard(this[info].identifyNumber);
  6634. },
  6635. //车主信息选择性别
  6636. genderChange(e) {
  6637. if (this.tbczcarShow) {
  6638. this.policyHolderInfo.gender = e;
  6639. } else if (this.bbczcarShow) {
  6640. this.insuredPersonInfo.gender = e;
  6641. }
  6642. },
  6643. //省市区
  6644. // areahandleChange(event, info) {
  6645. // console.log(event)
  6646. // if (event[0] != null && event[1] != null && event[2] != null) {
  6647. // this[info].province = codeToText[event[0]]
  6648. // this[info].city = codeToText[event[1]]
  6649. // this[info].county = codeToText[event[2]]
  6650. // }
  6651. // },
  6652. iconfftter(icon) {
  6653. return CommonUtil.getDataName({
  6654. dataList: this.global.insCompanyList,
  6655. value: "name",
  6656. label: "icon",
  6657. data: icon,
  6658. });
  6659. },
  6660. disabledDate(time) {
  6661. let datetime = this.carInfo.registerDate;
  6662. return time.getTime() < new Date(datetime).getTime();
  6663. },
  6664. onScroll() {
  6665. // 变量scrollTop是滚动条滚动时,滚动条上端距离顶部的距离
  6666. var scrollTop =
  6667. document.documentElement.scrollTop || document.body.scrollTop;
  6668. // 变量windowHeight是可视区的高度
  6669. var windowHeight =
  6670. document.documentElement.clientHeight || document.body.clientHeight;
  6671. // 变量scrollHeight是滚动条的总高度(当前可滚动的页面的总高度)
  6672. var scrollHeight =
  6673. document.documentElement.scrollHeight || document.body.scrollHeight;
  6674. // 滚动条到底部
  6675. if (Math.ceil(scrollTop + windowHeight) >= scrollHeight) {
  6676. this.isBottom = true;
  6677. } else {
  6678. this.isBottom = false;
  6679. }
  6680. },
  6681. pinganInsuranceChange(index,index1,val) {
  6682. if (!index) {
  6683. return;
  6684. }
  6685. this.accidentFormPA[index1].pingantemplateSelection = index;
  6686. this.accidentFormPA[index1].projectName=index
  6687. val.map(val1=>{
  6688. if(val1.projectName == index){
  6689. val1.son.forEach(val3=>{
  6690. val3.quantity='1'
  6691. })
  6692. this.accidentFormPA[index1].pinganInsuranceDataTable= val1.son
  6693. this.accidentFormPA[index1].projectCode= val1.projectCode
  6694. }
  6695. })
  6696. // this.accidentFormPA[index1].projectCode=this.pinganInsuranceData.find(val1=>{
  6697. // // val1.map(
  6698. // // (val) => val.projectName == index
  6699. // // ).projectCode
  6700. // }
  6701. // )
  6702. // this.accidentFormPA[index1].pinganInsuranceDataTable = this.pinganInsuranceData.find(
  6703. // (val) => val.projectName == index
  6704. // ).son;
  6705. },
  6706. taikangInsuranceChange(index) {
  6707. if (index) {
  6708. this.TkDrivingChange(
  6709. this.taikangaccidentDataList.find((val) => val.projectCode == index)
  6710. );
  6711. }
  6712. if (!index) {
  6713. return;
  6714. }
  6715. this.taikangtemplateSelection = index;
  6716. this.accidentFormTk = Object.assign(
  6717. this.accidentFormTk,
  6718. this.taikangaccidentDataList.find((val) => val.projectCode == index)
  6719. );
  6720. this.taikangaccidentDataList
  6721. .find((val) => val.projectCode == index)
  6722. .son.forEach((item) => {
  6723. item.sumAmount =
  6724. Number(item.amount) * Number(this.accidentFormTk.seatNum);
  6725. });
  6726. this.taikangInsuranceDataTable = this.taikangaccidentDataList.find(
  6727. (val) => val.projectCode == index
  6728. ).son;
  6729. this.accidentPremiumTk = this.accidentFormTk.premium;
  6730. },
  6731. anshengInsuranceChange(index) {
  6732. this.anshengtemplateSelection = index;
  6733. let data = this.anshengInsuranceData.find(
  6734. (val) => val.projectCode == index
  6735. );
  6736. this.anshengaccidentalDrivingVo.parentName = data.projectName;
  6737. this.anshengaccidentalDrivingVo.parentCode = data.projectCode;
  6738. this.anshengInsuranceDataTable = [];
  6739. this.anshengInsuranceDataTable = data.children;
  6740. this.anshengInsuranceDataTable.forEach((e) => (e.quantity = "1"));
  6741. },
  6742. hengbangInsuranceChange(index) {
  6743. this.hengbangInsuranceDataTable = this.hengbangInsuranceData.find(
  6744. (val) => val.projectCode == index
  6745. ).son;
  6746. this.hengbangtemplateSelection = index;
  6747. if (this.hengbangInsuranceDataTable.length) {
  6748. this.hengbangaccidentalDrivingVo = this.hengbangInsuranceData.find(
  6749. (val) => val.projectCode == index
  6750. );
  6751. }
  6752. },
  6753. huanongInsuranceChange(index) {
  6754. this.huanongInsuranceDataTable = this.huanongInsuranceData.find(
  6755. (val) => val.projectCode == index
  6756. ).son;
  6757. this.accidentFormHN.accidentType = index;
  6758. this.huanongaccidentalDrivingVo = Object.assign(
  6759. this.huanongInsuranceData.find((val) => val.projectCode == index),
  6760. this.accidentFormHN
  6761. );
  6762. },
  6763. taipingInsuranceChange(index) {
  6764. this.taipingtemplateSelection = index;
  6765. this.taipingInsuranceDataTable = this.taipingInsuranceData.find(
  6766. (val) => val.projectCode == index
  6767. ).son;
  6768. if (
  6769. this.taipingInsuranceDataTable &&
  6770. this.taipingInsuranceDataTable.length
  6771. ) {
  6772. this.taipingaccidentalDrivingVo = this.taipingInsuranceData.find(
  6773. (val) => val.projectCode == index
  6774. );
  6775. }
  6776. },
  6777. zijinInsuranceChange(index) {
  6778. this.zijintemplateSelection = index;
  6779. this.zijinInsuranceDataTable = [];
  6780. this.$refs.expandTable[0].clearSelection();
  6781. index.forEach((item) => {
  6782. this.zijinInsuranceDataTable.push(
  6783. this.ziJinInsuranceData.find((val) => val.projectCode == item)
  6784. );
  6785. });
  6786. this.zijinInsuranceDataTable.forEach((item) => {
  6787. this.$nextTick(() => {
  6788. this.$refs.expandTable[0].toggleRowSelection(item);
  6789. });
  6790. });
  6791. this.CheckboxChange(this.zijinInsuranceDataTable);
  6792. },
  6793. renshouInsuranceChange(index) {
  6794. // this.renshouInsuranceDataTable = [
  6795. // this.renshouInsuranceData.find(val => val.projectCode == index)
  6796. // ];
  6797. this.renshoutemplateSelection = index;
  6798. this.renshouInsuranceDataTable = this.renshouInsuranceData.find(
  6799. (val) => val.projectCode == index
  6800. ).son;
  6801. if (index) {
  6802. this.RSDrivingChange(
  6803. this.renshouInsuranceData.find((val) => val.projectCode == index)
  6804. );
  6805. }
  6806. },
  6807. async dajiaInsuranceChange(index) {
  6808. this.dajiaaccidentalDrivingVo = {};
  6809. let data = await this.$api.letter.accidentalDrivingInfo(index);
  6810. if (data.code == 200) {
  6811. this.dajiaaccidentalDrivingVo = {
  6812. rideRiskCode: index,
  6813. rideRiskName: this.dajiaInsuranceData.find((val) => val.id == index)
  6814. .productName,
  6815. quantity: "1",
  6816. };
  6817. this.dajiaInsuranceDataTable = data.data;
  6818. }
  6819. },
  6820. zhonganInsuranceChange(index) {
  6821. this.zhongantemplateSelection = index;
  6822. this.zhonganInsuranceDataTable = this.zhonganInsuranceData.find(
  6823. (val) => val.projectCode == index
  6824. ).son;
  6825. if (index) {
  6826. this.ZADrivingChange(
  6827. this.zhonganInsuranceData.find((val) => val.projectCode == index)
  6828. );
  6829. }
  6830. },
  6831. // 渤海选择意外险类型
  6832. async bohaiInsuranceChange(index) {
  6833. if (index) {
  6834. this.boHaiaccidentForm.projectCode = index;
  6835. // this.boHaiaccidentForm.projectName = this.dajiaInsuranceData.find(
  6836. // (e) => e.projectCode == index
  6837. // ).projectName;
  6838. this.boHaiaccidentForm.copies = "1";
  6839. this.boHaiaccidentForm.premium = Number(
  6840. this.boHaiaccidentDataList.find((e) => e.projectCode == index).sumPremium
  6841. );
  6842. this.bohaiInsuranceDataTable=this.boHaiaccidentDataList.find(
  6843. (e) => e.projectCode == index
  6844. ).son;
  6845. // let data = await this.$api.letter.productDetailsQueryboHai({
  6846. // projectCode: index,
  6847. // productCode: this.boHaiaccidentDataList.find(
  6848. // (e) => e.packageCode == index
  6849. // ).productCode,
  6850. // agreementId: this.boHaiaccidentForm.agreementId,
  6851. // });
  6852. // if (data.code == 200 && data.data) {
  6853. // this.accidentLoadingbh = false;
  6854. // this.bohaiInsuranceDataTable = data.data;
  6855. // } else {
  6856. // this.$message.error(data.msg);
  6857. // this.bohaiInsuranceDataTable = [];
  6858. // }
  6859. }
  6860. },
  6861. djcxchange(index) {
  6862. if (index) {
  6863. this.dajiaaccidentForm.parentCode = index;
  6864. this.dajiaaccidentForm.quantity = "1";
  6865. this.dajiaaccidentForm.prodCode = "";
  6866. this.dajiaaccidentDataListChild = this.dajiaInsuranceData.find(
  6867. (e) => e.projectCode == index
  6868. ).children;
  6869. this.dajiaaccidentalDrivingVo.parentName = this.dajiaInsuranceData.find(
  6870. (e) => e.projectCode == index
  6871. ).projectName;
  6872. this.dajiaaccidentalDrivingVo.parentCode = this.dajiaInsuranceData.find(
  6873. (e) => e.projectCode == index
  6874. ).projectCode;
  6875. }
  6876. },
  6877. djcxchangeChild(index) {
  6878. if (index) {
  6879. let list = this.dajiaaccidentDataListChild.find(
  6880. (val) => val.projectCode == index
  6881. );
  6882. this.dajiaaccidentForm = {
  6883. ...this.dajiaaccidentForm,
  6884. prodCode: index,
  6885. projectName: list.projectName,
  6886. sumAmount: Number(list.sumAmount),
  6887. riskCode: list.riskCode,
  6888. sumPremium: Number(list.sumPremium),
  6889. };
  6890. list.productId = list.id;
  6891. this.dajiaInsuranceDataTable = list.son;
  6892. this.dajiaaccidentalDrivingVo = Object.assign({
  6893. ...this.dajiaaccidentalDrivingVo,
  6894. ...list,
  6895. });
  6896. } else {
  6897. this.dajiaInsuranceDataTable = [];
  6898. }
  6899. },
  6900. // 国任选择意外险类型
  6901. async grcxchange(index) {
  6902. if (index) {
  6903. this.accidentLoading = true;
  6904. this.guoRenaccidentForm.goodsCode = index;
  6905. this.guoRenaccidentForm.quantity = "1";
  6906. this.guoRenaccidentForm.prodCode = "";
  6907. this.guoRenaccidentDataListChild = this.guoRenaccidentDataList.find(
  6908. (e) => e.projectCode == index
  6909. ).children;
  6910. this.guoRenaccidentalDrivingVo.parentName =
  6911. this.guoRenaccidentDataList.find(
  6912. (e) => e.projectCode == index
  6913. ).projectName;
  6914. this.guoRenaccidentalDrivingVo.parentCode =
  6915. this.guoRenaccidentDataList.find(
  6916. (e) => e.projectCode == index
  6917. ).projectCode;
  6918. // let data = await this.$api.letter.syncNonAutoInsGuoren({
  6919. // goodsCode: index,
  6920. // agreementId: this.guoRenaccidentForm.agreementId
  6921. // });
  6922. // if (data.code == 200) {
  6923. // let num = 0;
  6924. // data.data.forEach(item => {
  6925. // num += Number(item.premium);
  6926. // });
  6927. // this.accidentLoading = false;
  6928. // } else {
  6929. // this.accidentLoading = false;
  6930. // this.$message.error(data.msg);
  6931. // this.guoRenaccidentDataListChild = [];
  6932. // }
  6933. }
  6934. },
  6935. // 国任选择意外险子级类型
  6936. async grcxchangeChild(index) {
  6937. let list = this.guoRenaccidentDataListChild.find(
  6938. (val) => val.projectCode == index
  6939. );
  6940. this.guoRenaccidentForm = {
  6941. ...this.guoRenaccidentForm,
  6942. prodCode: index,
  6943. policyNum: Number(list.sumPremium),
  6944. riskCode: list.riskCode,
  6945. // amount: list.amount,
  6946. sumPremium: Number(list.sumPremium),
  6947. // appnum:Number(list.appnum)
  6948. };
  6949. this.guoRenInsuranceDataTable = list.son;
  6950. this.guoRenaccidentalDrivingVo = Object.assign({
  6951. ...list,
  6952. ...this.guoRenaccidentalDrivingVo,
  6953. });
  6954. },
  6955. // 选择意外险类型
  6956. async yongchengInsuranceChange(index) {
  6957. if (!index) {
  6958. return;
  6959. }
  6960. this.yongchengtemplateSelection = index;
  6961. this.accidentForm = Object.assign(
  6962. this.accidentForm,
  6963. this.yongchengaccidentDataList.find((val) => val.projectCode == index)
  6964. );
  6965. this.yongchengaccidentDataList
  6966. .find((val) => val.projectCode == index)
  6967. .son.forEach((item) => {
  6968. item.sumAmount =
  6969. Number(item.amount) * Number(this.accidentForm.seatNum);
  6970. });
  6971. this.yongchengInsuranceDataTable = this.yongchengaccidentDataList.find(
  6972. (val) => val.projectCode == index
  6973. ).son;
  6974. this.accidentPremium = this.accidentForm.sumPremium;
  6975. // this.accidentForm.fen = "1";
  6976. // let data = await this.$api.letter.ycgainAccidentSchemeList({
  6977. // companyCode: this.accidentForm.companyId,
  6978. // code: index,
  6979. // agreementId: this.accidentForm.agreementId,
  6980. // seatNum: Number(this.carInfo.seatCount)
  6981. // });
  6982. // if (data.code == 200) {
  6983. // let num = 0;
  6984. // data.data.forEach(item => {
  6985. // num += Number(item.premium);
  6986. // });
  6987. // this.accidentPremium = num;
  6988. // this.accidentForm.premium = num;
  6989. // this.accidenttableData = data.data;
  6990. // }
  6991. },
  6992. numberCopieschange(index) {
  6993. this.accidentForm.sumPremium = Number(this.accidentPremium) * index;
  6994. },
  6995. numberCopieschangeTk(index) {
  6996. this.accidentFormTk.sumPremium = Number(this.accidentPremiumTk) * index;
  6997. },
  6998. numberCopieschangePA(index,index1) {
  6999. this.accidentFormPA.premium = Number(this.accidentFormPA[index1].accidentPremiumPA ) * index;
  7000. },
  7001. numberCopieschangeZM(index) {
  7002. this.accidentFormZM.sumPremium = Number(this.accidentPremiumZM) * index;
  7003. },
  7004. numberCopieschangeGR(index) {
  7005. this.guoRenaccidentForm.sumPremium =
  7006. Number(this.guoRenaccidentForm.policyNum) * index;
  7007. },
  7008. continuousChange(id) {
  7009. this.continuousCompanyList.map((ele) => {
  7010. if (ele.id == id) {
  7011. this.attributionform.configure = [];
  7012. ele.configure.map((ele, index) => {
  7013. this.attributionform.configure.push({
  7014. field: ele.field,
  7015. isEdit: ele.isEdit,
  7016. label: ele.label,
  7017. type: ele.type,
  7018. value: "",
  7019. });
  7020. });
  7021. }
  7022. });
  7023. },
  7024. //续保查询
  7025. continuousquery() {
  7026. this.$api.letter.queryRenewal(this.attributionform).then((res) => {
  7027. if (res.code == "200") {
  7028. this.carInfo = res.data.carInfo;
  7029. this.ownerInfo = res.data.ownerInfo;
  7030. this.policyHolderInfo = res.data.policyHolderInfo;
  7031. this.insuredPersonInfo = res.data.insuredPersonInfo;
  7032. res.data.riskList.map((ele) => {
  7033. if (ele.riskCode == "0507") {
  7034. this.jqchecked = true;
  7035. this.jqstartDate = ele.startDate;
  7036. this.jqendDate = ele.endDate;
  7037. } else if (ele.riskCode == "0510") {
  7038. this.sychecked = true;
  7039. this.systartDate = ele.startDate;
  7040. this.syendDate = ele.endDate;
  7041. }
  7042. county;
  7043. });
  7044. } else {
  7045. this.$message({
  7046. message: res.msg,
  7047. type: "error",
  7048. duration: 2000,
  7049. });
  7050. }
  7051. });
  7052. },
  7053. //永诚转保
  7054. renewalCodeconfirm() {
  7055. this.renewalCodedialogVisible = false;
  7056. this.quote();
  7057. },
  7058. //报价轨迹查询
  7059. RadioHistoryChange(e) {
  7060. let params = {
  7061. orderNo: this.orderno,
  7062. orderStatus: e == 888 ? "" : e,
  7063. };
  7064. this.$api.letter.queryQuoteHistory(params).then((res) => {
  7065. res.data.forEach((item) => {
  7066. if (item.accidentInfo) {
  7067. item.accidentInfo.constructor === Object
  7068. ? [item.accidentInfo]
  7069. : item.accidentInfo;
  7070. }
  7071. });
  7072. this.HistoryList = res.data;
  7073. });
  7074. },
  7075. protocolJudge(val, val1) {
  7076. if (val1) {
  7077. this.totalCompanyList.forEach((e) => {
  7078. if (
  7079. e.agreement.find(
  7080. (el) => el.productsCode && el.productsCode.includes(val)
  7081. )
  7082. ) {
  7083. e.agreement.find(
  7084. (el) => el.productsCode && el.productsCode.includes(val)
  7085. ).disabled = true;
  7086. }
  7087. });
  7088. } else {
  7089. this.totalCompanyList.forEach((e) => {
  7090. if (
  7091. e.agreement.find(
  7092. (el) => el.productsCode && el.productsCode.includes(val)
  7093. )
  7094. ) {
  7095. e.agreement.find(
  7096. (el) => el.productsCode && el.productsCode.includes(val)
  7097. ).disabled = false;
  7098. }
  7099. });
  7100. }
  7101. },
  7102. // 回显
  7103. async obtainProtocol(data) {
  7104. console.log(data)
  7105. console.log(this.isLetter)
  7106. let res = {};
  7107. if (this.isLetter == "1") {
  7108. this.getCompanyList(data)
  7109. // res = await this.$api.letter.getAllAgreement();
  7110. }
  7111. if (this.isLetter == "2") {
  7112. setTimeout(() => {
  7113. this.getCompanyList(data)
  7114. }, 500);
  7115. }
  7116. },
  7117. //获取保险公司列表
  7118. // commpanyList() {
  7119. // this.$api.letter.gainAllowQuoteList("").then(res => {
  7120. // res.data.map(ele => {
  7121. // ele["result"] = {};
  7122. // ele["quoteCode"] = 0;
  7123. // ele["checked"] = false;
  7124. // ele["msg"] = "";
  7125. // ele["lastYearMsg"] = "";
  7126. // ele["agreementId"] = "";
  7127. // ele["apiType"] = "";
  7128. // ele["orderstatus"] = 0;
  7129. // ele.coefficient = "";
  7130. // // ele.agreementId = ele.agreement[0].id;
  7131. // ele.apiType = ele.agreement[0].apiType;
  7132. // ele.underwritingDescription =
  7133. // ele.agreement[0].underwritingDescription;
  7134. // });
  7135. // if (this.$route.query.data) {
  7136. // res.data.forEach((val, index) => {
  7137. // this.$route.query.data.insAreaCompanyEditingDtos.forEach(ele => {
  7138. // if (val.namesimple == ele.inscompany) {
  7139. // res.data[index].quoteCode = 200;
  7140. // res.data[index].result = ele;
  7141. // }
  7142. // });
  7143. // });
  7144. // }
  7145. // this.totalCompanyList = res.data;
  7146. // });
  7147. // },
  7148. Payment(id, item) {
  7149. this.carcode(id, item);
  7150. },
  7151. // 现询
  7152. getInquiryNowList(agreementId, riskList, kindList) {
  7153. let productId = ''
  7154. this.inquiryNowList = []
  7155. this.$api.letter.getProductId({
  7156. riskList: riskList,
  7157. kindList: kindList
  7158. }).then((res) => {
  7159. if (res.code == 200) {
  7160. productId = res.data
  7161. this.$api.letter.getInquiryNowFee({
  7162. agreementId: agreementId,
  7163. productId: productId
  7164. }).then((resp) => {
  7165. if (resp.code == 200) {
  7166. this.inquiryNowList = resp.data
  7167. }
  7168. })
  7169. }
  7170. })
  7171. },
  7172. inquiryNowListChange(data) {
  7173. if (data) {
  7174. this.nowCostsId = data // 现询id
  7175. this.isInquiryNowDisable = true
  7176. this.inquiryNowList.forEach((val) => {
  7177. if (val.id == data) {
  7178. this.policyNumberForm.jqCostsProportion = val.jqCostsProportion
  7179. this.policyNumberForm.noCostsProportion = val.noCostsProportion
  7180. this.policyNumberForm.syCostsProportion = val.syCostsProportion
  7181. }
  7182. })
  7183. } else {
  7184. this.nowCostsId = ''
  7185. this.isInquiryNowDisable = false
  7186. this.policyNumberForm.jqCostsProportion = ''
  7187. this.policyNumberForm.noCostsProportion = ''
  7188. this.policyNumberForm.syCostsProportion = ''
  7189. }
  7190. },
  7191. //选择协议 val:协议id row:协议列表 index:下标 item:保险公司数据集合
  7192. agreementChange(val, row, index, item) {
  7193. this.getInquiryNowList(val, this.riskList, this.kindList)
  7194. this.kindListFun(index);
  7195. let obj = {};
  7196. obj = row.find((item) => {
  7197. return item;
  7198. });
  7199. let selectRow = row.find((item) => {
  7200. return item.id == val;
  7201. });
  7202. let info = row.find((ele) => ele.id == val);
  7203. this.totalCompanyList[index].apiType = info.apiType;
  7204. this.totalCompanyList[index].underwritingDescription = val
  7205. ? selectRow.underwritingDescription
  7206. : ""; //重新赋值修改选中协议承保描述
  7207. if (this.$route.path != "/task/external/externalOrders")
  7208. if(item.namesimple == "平安财险" ){
  7209. this.$api.letter.getPingAnDrivingInsuranceRule({
  7210. cimodelclass: this.carInfo.cimodelclass,
  7211. isUseCombine:'Y',
  7212. tonNumber:this.carInfo.limitLoad,
  7213. ownAttribute:'03',
  7214. useAttribute: this.carInfo.carnature,
  7215. ruleSeatNum:Number(this.carInfo.seatCount),
  7216. agreementId: item.agreementId,
  7217. }).then(res=>{
  7218. this.pinganInsuranceData= res.data;
  7219. })
  7220. return
  7221. }
  7222. this.$api.letter
  7223. .getDrivingInsuranceRule({
  7224. companyCode: item.id,
  7225. agreementId: item.agreementId,
  7226. seatNum:
  7227. item.namesimple == "永诚财险" || item.namesimple == "中煤财险"
  7228. ? Number(this.carInfo.seatCount)
  7229. : "",
  7230. ruleUseNature: this.carInfo.carnature,
  7231. ruleSeatNum: Number(this.carInfo.seatCount),
  7232. risk: this.riskList,
  7233. kind: this.kindList,
  7234. ruleThirdPartyInsurance: this.insureList[1].amount,
  7235. })
  7236. .then((res) => {
  7237. if (res.code == 200) {
  7238. this.nonVehicle(res.data, item.cnName);
  7239. switch (item.namesimple) {
  7240. case "永诚财险":
  7241. this.yongchengaccidentDataList = res.data;
  7242. break;
  7243. case "国任财险":
  7244. this.guoRenaccidentDataList = res.data;
  7245. break;
  7246. case "渤海财险":
  7247. this.boHaiaccidentDataList = res.data;
  7248. break;
  7249. case "中煤财险":
  7250. this[item.cnName + +"InsuranceData"] = res.data;
  7251. break;
  7252. case "紫金财险":
  7253. let data = res.data;
  7254. data.map((ele) => {
  7255. ele.quantity = 1;
  7256. return ele;
  7257. });
  7258. this.ziJinInsuranceData = data;
  7259. break;
  7260. case "大家财险":
  7261. this.dajiaInsuranceData = res.data;
  7262. break;
  7263. case "泰康财险":
  7264. this.taikangaccidentDataList = res.data;
  7265. break;
  7266. case "中国人寿":
  7267. case "恒邦财险":
  7268. case "太平财险":
  7269. case "安盛天平":
  7270. case "华农财险":
  7271. case "众安财险":
  7272. res.data.map((ele) => {
  7273. ele.quantity = 1;
  7274. return ele;
  7275. });
  7276. this[item.cnName + "InsuranceData"] = res.data;
  7277. break;
  7278. }
  7279. } else {
  7280. this.$message.error(res.msg);
  7281. }
  7282. });
  7283. // switch (item.namesimple) {
  7284. // case "永诚财险":
  7285. // this.accidentForm.agreementId = item.agreementId;
  7286. // this.$api.letter
  7287. // .ycgainAccidentList({
  7288. // companyCode: item.id,
  7289. // agreementId: item.agreementId,
  7290. // seatNum: Number(this.carInfo.seatCount)
  7291. // })
  7292. // .then(res => {
  7293. // if (res.code == 200) {
  7294. // this.accidentDataList = res.data;
  7295. // }
  7296. // });
  7297. // break;
  7298. // case "国任财险":
  7299. // this.guoRenaccidentForm.agreementId = item.agreementId;
  7300. // this.$api.letter
  7301. // .syncNonAutoInsGuoren({ agreementId: item.agreementId })
  7302. // .then(res => {
  7303. // if (res.code == 200) {
  7304. // this.guoRenaccidentDataList = res.data;
  7305. // } else {
  7306. // this.guoRenaccidentDataList = [];
  7307. // }
  7308. // });
  7309. // break;
  7310. // case "渤海财险":
  7311. // this.boHaiaccidentForm.agreementId = item.agreementId;
  7312. // let policyHolderInfo = this.tbczcarShow
  7313. // ? this.ownerInfo
  7314. // : this.policyHolderInfo;
  7315. // let productQueryVo = {
  7316. // agreementId: item.agreementId,
  7317. // carnature: this.carInfo.carnature,
  7318. // cimodelclass: this.carInfo.cimodelclass,
  7319. // exhaustScale: this.carInfo.enginedesc,
  7320. // limitLoad: this.carInfo.limitLoad,
  7321. // powerScale: this.carInfo.powerScale,
  7322. // seatCount: this.carInfo.seatCount,
  7323. // vehicleUse: this.carInfo.vehicleUse,
  7324. // policyHolderInfo,
  7325. // insuredPersonInfo: this.bbczcarShow
  7326. // ? this.ownerInfo
  7327. // : this.bbtbcarShow
  7328. // ? policyHolderInfo
  7329. // : this.insuredPersonInfo
  7330. // };
  7331. // this.$api.letter.productQueryboHai(productQueryVo).then(res => {
  7332. // if (res.code == 200) {
  7333. // this.boHaiaccidentDataList = res.data;
  7334. // } else {
  7335. // this.boHaiaccidentDataList = [];
  7336. // }
  7337. // });
  7338. // break;
  7339. // case "紫金财险":
  7340. // this.$api.letter
  7341. // .zijinqueryVehicleProducts({
  7342. // agreementId: val,
  7343. // seatCount: Number(this.carInfo.seatCount)
  7344. // })
  7345. // .then(res => {
  7346. // if (res.code == 200) {
  7347. // let data = res.data;
  7348. // data.map(ele => {
  7349. // ele.quantity = 1;
  7350. // return ele;
  7351. // });
  7352. // this.ziJinInsuranceData = data;
  7353. // } else {
  7354. // this.$message.error(res.msg);
  7355. // }
  7356. // });
  7357. // break;
  7358. // case "中国人寿":
  7359. // case "恒邦财险":
  7360. // case "太平财险":
  7361. // case "安盛天平":
  7362. // case "华农财险":
  7363. // case "众安财险":
  7364. // this.$api.letter.pythongetDriving({ agreementId: val }).then(res => {
  7365. // if (res.code == 200) {
  7366. // let data = res.data;
  7367. // data.map(ele => {
  7368. // ele.quantity = 1;
  7369. // return ele;
  7370. // });
  7371. // this[item.cnName + "InsuranceData"] = data;
  7372. // }
  7373. // });
  7374. // break;
  7375. // case "大家财险":
  7376. // this.$api.letter
  7377. // .dajiagetDriving({ agreementId: item.agreementId })
  7378. // .then(res => {
  7379. // if (res.code == 200) {
  7380. // this.dajiaInsuranceData = res.data;
  7381. // }
  7382. // });
  7383. // break;
  7384. // default:
  7385. // break;
  7386. // }
  7387. },
  7388. nonVehicle(data, type) {
  7389. if (data.some((e) => e.isDefault)) {
  7390. if (type == "guoRen") {
  7391. this.grcxchange(data.find((ele) => ele.isDefault).projectCode);
  7392. this.grcxchangeChild(
  7393. data
  7394. .find((ele) => ele.isDefault)
  7395. .children.find((ele) => ele.isDefault).projectCode
  7396. );
  7397. }
  7398. if (type == "ansheng") {
  7399. this.anshengInsuranceChange(
  7400. data.find((ele) => ele.isDefault).projectCode
  7401. );
  7402. this.ASDrivingRadio(
  7403. data
  7404. .find((ele) => ele.isDefault)
  7405. .children.find((ele) => ele.isDefault)
  7406. );
  7407. }
  7408. if (type == "zijin") {
  7409. this[type + "InsuranceChange"]([
  7410. data.find((ele) => ele.isDefault).projectCode,
  7411. ]);
  7412. } else {
  7413. this[type + "InsuranceChange"](
  7414. data.find((ele) => ele.isDefault).projectCode
  7415. );
  7416. }
  7417. }
  7418. },
  7419. CheckboxChange(select, row) {
  7420. this.accidentalDrivingVo = [];
  7421. select.map((val) => {
  7422. this.accidentalDrivingVo.push(val);
  7423. return val;
  7424. });
  7425. },
  7426. //人寿驾意险选择
  7427. RSDrivingChange(row) {
  7428. this.renshouaccidentalDrivingVo = row;
  7429. },
  7430. TkDrivingChange(row) {
  7431. this.taikangaccidentalDrivingVo = row;
  7432. },
  7433. //众安驾意险选择
  7434. ZADrivingChange(row) {
  7435. this.zhonganaccidentalDrivingVo = row;
  7436. },
  7437. RSDrivingRadio(row) {
  7438. this.RSDrivingChange(row);
  7439. },
  7440. //安盛驾意险选择
  7441. ASDrivingRadio(row) {
  7442. this.anshengInsurancetype = row.projectCode;
  7443. this.anshengaccidentalDrivingVo = Object.assign({
  7444. ...this.anshengaccidentalDrivingVo,
  7445. ...row,
  7446. });
  7447. // this.anshengaccidentalDrivingVo.projectCode = row.projectCode;
  7448. // this.anshengaccidentalDrivingVo.projectName = row.projectName;
  7449. },
  7450. pinganDetail(row,agreementId) {
  7451. this.pinganDataDetailVisible=false
  7452. this.$api.letter
  7453. .productDetailsQuery({ agreementId,
  7454. packageCode:row.code,
  7455. productCode:row.productCode,
  7456. version:row.version,
  7457. })
  7458. .then((res) => {
  7459. if(res.code==200){
  7460. this.pinganDataDetailVisible=true
  7461. this.pinganDataDetail=res.data
  7462. }
  7463. else{
  7464. this.$message.err(res.msg)
  7465. }
  7466. });
  7467. },
  7468. sameItem(array1,array2) {
  7469. return array2.find(item => {
  7470. array1.some(innerItem => innerItem.code === item.code)
  7471. }
  7472. );
  7473. },
  7474. PADrivingCheckbox(event,row,agreementId,index) {
  7475. // const checkedVal = this.accidentFormPA[index].pinganInsuranceDataTable.find(x => x.cameraId === item.cameraId)
  7476. const isSelected = event.some(selectedRow => selectedRow.code == row.code);
  7477. let isIndex =null
  7478. let amount =null
  7479. event.find((selectedRow,selectedIndex) => {
  7480. if(selectedRow.code == row.code){
  7481. isIndex= selectedIndex
  7482. }
  7483. });
  7484. if(event.length>0 && isSelected){
  7485. this.$api.letter
  7486. .productDetailsQuery({ agreementId,
  7487. packageCode:row.code,
  7488. productCode:row.productCode,
  7489. version:row.version,
  7490. })
  7491. .then((res) => {
  7492. if(res.code==200){
  7493. res.data.forEach(ele=>{
  7494. amount+=Number(ele.unitInsuredAmount)?Number(ele.unitInsuredAmount):0
  7495. })
  7496. event[isIndex].amount=amount
  7497. }
  7498. else{
  7499. this.$message.err(res.msg)
  7500. }
  7501. });
  7502. }
  7503. event.forEach((res,indexOf)=>{
  7504. res.projectName=this.accidentFormPA[index].projectName
  7505. res.projectCode=this.accidentFormPA[index].projectCode
  7506. res.combineProductType=this.accidentFormPA[index].combineProductType
  7507. })
  7508. this.pinganaccidentalDrivingVo[index]=event
  7509. },
  7510. //平安驾意险选择
  7511. PADrivingRadio(row,agreementId,index) {
  7512. // this.accidentPremiumPA = row.premium;
  7513. this.accidentFormPA[index].quantity = '1';
  7514. this.accidentFormPA[index].sellListSize =Number(row.sellListSize) ;
  7515. this.accidentFormPA[index].premium = row.premium
  7516. this.accidentFormPA[index].combineProductType = row.combineProductType
  7517. this.accidentFormPA[index].accidentPremiumPA = row.premium
  7518. this.accidentFormPA[index].pinganInsurancetype = row.code;
  7519. this.$api.letter
  7520. .productDetailsQuery({ agreementId,
  7521. packageCode:row.code,
  7522. productCode:row.productCode,
  7523. version:row.version,
  7524. })
  7525. .then((res) => {
  7526. if(res.code==200){
  7527. this.accidentFormPA[index].amount=0
  7528. res.data.forEach(e=>{
  7529. this.accidentFormPA[index].amount+=Number(e.unitInsuredAmount)?Number(e.unitInsuredAmount):0
  7530. })
  7531. this.pinganaccidentalDrivingVo[index]={
  7532. ...row,
  7533. ...this.accidentFormPA[index],
  7534. };
  7535. }
  7536. else{
  7537. this.$message.err(res.msg)
  7538. this.pinganaccidentalDrivingVo[index]={
  7539. ...row,
  7540. ...this.accidentFormPA[index],
  7541. };
  7542. }
  7543. });
  7544. },
  7545. ZADrivingRadio(row) {
  7546. this.ZADrivingChange(row);
  7547. },
  7548. // 国任特约选择
  7549. contributingGuoRen(id, index) {
  7550. this.typeDialogIndex = index
  7551. this.zijinengageListData = [];
  7552. this.contributingLoading = true;
  7553. this.contributingState = true;
  7554. this.hbsubmitdialogVisible = true;
  7555. this.$api.letter
  7556. .guorenqueryClauseData({ agreementId: id })
  7557. .then((res) => {
  7558. this.contributingLoading = false;
  7559. if (res.data) {
  7560. res.data.forEach((val) => {
  7561. val.clauseName = val.clauses;
  7562. val.clauseContent = val.clausesContext;
  7563. });
  7564. this.zijinengageListData = res.data;
  7565. }
  7566. });
  7567. },
  7568. //紫金特约选择
  7569. zijinengageChange(select, row) {
  7570. this.zijinengageList = [];
  7571. if (!this.totalCompanyList[this.typeDialogIndex].zxProgramme) {
  7572. this.totalCompanyList[this.typeDialogIndex].zxProgramme = { // 自选方案详情
  7573. description: '',
  7574. drivingList: [],
  7575. jqx: {
  7576. name: '交通事故强制责任险'
  7577. },
  7578. kinds: {
  7579. additional: [],
  7580. main: [],
  7581. service: []
  7582. },
  7583. teyue: [],
  7584. }
  7585. }
  7586. // this.totalCompanyList[this.typeDialogIndex].programme = {}
  7587. this.totalCompanyList[this.typeDialogIndex].programme.teyue = []
  7588. select.map((val) => {
  7589. this.zijinengageList.push({
  7590. clauseCode: val.clauseCode,
  7591. clauseName: val.clauseName,
  7592. clauses: val.clauseContent,
  7593. riskCode: val.riskCode,
  7594. });
  7595. this.totalCompanyList[this.typeDialogIndex].zxProgramme.teyue = this.zijinengageList
  7596. this.totalCompanyList[this.typeDialogIndex].programme.teyue = this.zijinengageList
  7597. return val;
  7598. });
  7599. },
  7600. zijinengageChangeAll(row) {
  7601. if (row) {
  7602. this.zijinengageChange(row);
  7603. } else {
  7604. this.$refs.expandTablePro.clearSelection();
  7605. this.zijinengageList = [];
  7606. }
  7607. },
  7608. //紫金特约内容编辑
  7609. zijincellDblclick(row, column) {
  7610. this.currentCell = row.index + "," + column.index;
  7611. if (
  7612. !["clauseContent"].includes(column.property) &&
  7613. row.modifyFlag == "1"
  7614. ) {
  7615. setTimeout(() => {
  7616. this.$refs[row.index + "," + column.index].focus();
  7617. });
  7618. }
  7619. },
  7620. tableCellClassName({ row, column, rowIndex, columnIndex }) {
  7621. row.index = rowIndex;
  7622. column.index = columnIndex;
  7623. },
  7624. hideInput() {
  7625. this.currentCell = null;
  7626. },
  7627. updateArray(arr, value, condition) {
  7628. if (condition) {
  7629. arr.push(value);
  7630. } else {
  7631. const index = arr.indexOf(value);
  7632. if (index !== -1) {
  7633. arr.splice(index, 1);
  7634. }
  7635. }
  7636. if (arr.length == 0) {
  7637. this.totalCompanyList.forEach((e) => {
  7638. e.disabled = false;
  7639. });
  7640. } else {
  7641. this.totalCompanyList.forEach((e) => {
  7642. e.disabled = e.id == arr[0] ? false : true;
  7643. });
  7644. }
  7645. },
  7646. //勾选保险公司
  7647. initchange(e, code, name, index) {
  7648. if (e) {
  7649. console.log(e, code, name, index)
  7650. console.log(this.totalCompanyList[index], 'this.totalCompanyList[index]')
  7651. this.totalCompanyList[index].checked = e;
  7652. this.getCompanyProgramme(e, code, name, index)
  7653. this.kindListFun();
  7654. let ins = this.totalCompanyList[index].namesimple;
  7655. this.totalCompanyList[index].underwritingDescription =
  7656. this.totalCompanyList[index].agreement[0].underwritingDescription;
  7657. if (this.$route.path != "/task/external/externalOrders")
  7658. this.$api.letter
  7659. .getDrivingInsuranceRule({
  7660. agreementId: this.totalCompanyList[index].agreement[0].id,
  7661. seatNum:
  7662. ins == "永诚财险" || ins == "中煤财险"
  7663. ? Number(this.carInfo.seatCount)
  7664. : "",
  7665. ruleUseNature: this.carInfo.carnature,
  7666. ruleSeatNum: Number(this.carInfo.seatCount),
  7667. risk: this.riskList,
  7668. kind: this.kindList,
  7669. ruleThirdPartyInsurance: this.insureList[1].amount,
  7670. cimodelclass: ins == "平安财险"
  7671. ? this.carInfo.cimodelclass
  7672. : "",
  7673. isUseCombine:ins == "平安财险"
  7674. ? 'Y'
  7675. : "",
  7676. tonNumber:ins == "平安财险"
  7677. ? this.carInfo.limitLoad
  7678. : "",
  7679. ownAttribute:ins == "平安财险"
  7680. ? '03'
  7681. : "",
  7682. useAttribute: ins == "平安财险"
  7683. ? this.carInfo.carnature
  7684. : "",
  7685. })
  7686. .then((res) => {
  7687. if (res.code == 200) {
  7688. switch (ins) {
  7689. case "永诚财险":
  7690. this.yongchengaccidentDataList = res.data;
  7691. break;
  7692. case "国任财险":
  7693. this.guoRenaccidentDataList = res.data;
  7694. break;
  7695. case "渤海财险":
  7696. this.boHaiaccidentDataList = res.data;
  7697. break;
  7698. case "中煤财险":
  7699. case "平安财险":
  7700. this[name + "InsuranceData"] = res.data;
  7701. break;
  7702. case "紫金财险":
  7703. let data = res.data;
  7704. data.map((ele) => {
  7705. ele.quantity = 1;
  7706. return ele;
  7707. });
  7708. this.ziJinInsuranceData = data;
  7709. break;
  7710. case "大家财险":
  7711. this.dajiaInsuranceData = res.data;
  7712. break;
  7713. case "中国人寿":
  7714. case "恒邦财险":
  7715. case "太平财险":
  7716. case "华农财险":
  7717. case "安盛天平":
  7718. case "众安财险":
  7719. res.data.map((ele) => {
  7720. ele.quantity = 1;
  7721. return ele;
  7722. });
  7723. this[name + "InsuranceData"] = res.data;
  7724. break;
  7725. }
  7726. this.nonVehicle(res.data, name);
  7727. } else {
  7728. this.$message.error(res.msg);
  7729. }
  7730. });
  7731. // switch (ins) {
  7732. // case "永诚财险":
  7733. // this.accidentForm.agreementId = this.totalCompanyList[
  7734. // index
  7735. // ].agreement[0].id;
  7736. // this.$api.letter
  7737. // .ycgainAccidentList({
  7738. // companyCode: this.totalCompanyList[index].id,
  7739. // agreementId: this.totalCompanyList[index].agreement[0].id,
  7740. // seatNum: Number(this.carInfo.seatCount)
  7741. // })
  7742. // .then(res => {
  7743. // if (res.code == 200) {
  7744. // this.accidentDataList = res.data;
  7745. // } else {
  7746. // this.accidentDataList = [];
  7747. // }
  7748. // });
  7749. // break;
  7750. // case "国任财险":
  7751. // this.guoRenaccidentForm.agreementId = this.totalCompanyList[
  7752. // index
  7753. // ].agreement[0].id;
  7754. // this.$api.letter
  7755. // .syncNonAutoInsGuoren({
  7756. // goodsCode: "",
  7757. // agreementId: this.totalCompanyList[index].agreement[0].id
  7758. // })
  7759. // .then(res => {
  7760. // if (res.code == 200) {
  7761. // this.guoRenaccidentDataList = res.data;
  7762. // } else {
  7763. // this.guoRenaccidentDataList = [];
  7764. // }
  7765. // });
  7766. // break;
  7767. // case "紫金财险":
  7768. // this.$api.letter
  7769. // .zijinqueryVehicleProducts({
  7770. // agreementId: this.totalCompanyList[index].agreement[0].id,
  7771. // seatCount: Number(this.carInfo.seatCount)
  7772. // })
  7773. // .then(res => {
  7774. // if (res.code == 200) {
  7775. // let data = res.data;
  7776. // data.map(ele => {
  7777. // ele.quantity = 1;
  7778. // return ele;
  7779. // });
  7780. // this.ziJinInsuranceData = data;
  7781. // } else {
  7782. // this.$message.error(res.msg);
  7783. // }
  7784. // });
  7785. // break;
  7786. // case "安盛天平":
  7787. // this.$api.letter
  7788. // .pythongetDriving({
  7789. // agreementId: this.totalCompanyList[index].agreement[0].id
  7790. // })
  7791. // .then(res => {
  7792. // if (res.code == 200) {
  7793. // let data = res.data;
  7794. // data.map(ele => {
  7795. // ele.departmentProductList.map(val => {
  7796. // val.quantity = 1;
  7797. // });
  7798. // return ele;
  7799. // });
  7800. // this[name + "InsuranceData"] = data;
  7801. // } else {
  7802. // this.$message.error(res.msg);
  7803. // }
  7804. // });
  7805. // break;
  7806. // case "中国人寿":
  7807. // case "恒邦财险":
  7808. // case "太平财险":
  7809. // case "华农财险":
  7810. // case "众安财险":
  7811. // this.$api.letter
  7812. // .pythongetDriving({
  7813. // agreementId: this.totalCompanyList[index].agreement[0].id
  7814. // })
  7815. // .then(res => {
  7816. // if (res.code == 200) {
  7817. // let data = res.data;
  7818. // data.map(ele => {
  7819. // ele.quantity = 1;
  7820. // return ele;
  7821. // });
  7822. // this[name + "InsuranceData"] = data;
  7823. // } else {
  7824. // this.$message.error(res.msg);
  7825. // }
  7826. // });
  7827. // break;
  7828. // case "中煤财险":
  7829. // this.accidentFormZM.agreementId = this.totalCompanyList[
  7830. // index
  7831. // ].agreement[0].id;
  7832. // this.$api.letter
  7833. // .zmGetDrivingPro({
  7834. // agreementId: this.totalCompanyList[index].agreement[0].id,
  7835. // seatNum: this.carInfo.seatCount
  7836. // })
  7837. // .then(res => {
  7838. // if (res.code == 200) {
  7839. // let data = res.data;
  7840. // this[name + "InsuranceData"] = data;
  7841. // } else {
  7842. // this.$message.error(res.msg);
  7843. // }
  7844. // });
  7845. // break;
  7846. // case "大家财险":
  7847. // this.$api.letter
  7848. // .dajiagetDriving({
  7849. // agreementId: this.totalCompanyList[index].agreement[0].id
  7850. // })
  7851. // .then(res => {
  7852. // if (res.code == 200) {
  7853. // this.dajiaInsuranceData = res.data;
  7854. // } else {
  7855. // this.$message.error(res.msg);
  7856. // }
  7857. // });
  7858. // break;
  7859. // default:
  7860. // break;
  7861. // }
  7862. } else {
  7863. }
  7864. },
  7865. clearAccidentForm() {
  7866. this.yongchengInsuranceDataTable = [];
  7867. this.accidentForm = {};
  7868. this.accidentForm.fen = 1;
  7869. this.accidentForm.premium = 0;
  7870. },
  7871. clearAccidentFormPA(index) {
  7872. // this.accidentFormPA[index]={
  7873. // quantity: 1,
  7874. // premium: 0,
  7875. // pingantemplateSelection:'',
  7876. // pinganInsuranceDataTable:[],
  7877. // pinganInsurancetype:'',
  7878. // }
  7879. this.pinganaccidentalDrivingVo[index] = {};
  7880. },
  7881. clearAccidentFormTk() {
  7882. this.taikangaccidentalDrivingVo = {};
  7883. this.taikangInsuranceDataTable = [];
  7884. this.accidentFormTk = {};
  7885. this.accidentFormTk.fen = 1;
  7886. this.accidentFormTk.premium = 0;
  7887. },
  7888. clearAccidentFormGr() {
  7889. (this.guoRenInsuranceDataTable = []),
  7890. (this.guoRenaccidentDataListChild = []);
  7891. this.guoRenaccidentForm = {
  7892. quantity: "1",
  7893. premium: 0,
  7894. };
  7895. },
  7896. clearAccidentFormBh() {
  7897. this.bohaiInsuranceDataTable = [];
  7898. this.boHaiaccidentForm = {
  7899. copies: "1",
  7900. premium: 0,
  7901. };
  7902. // this.bohaiaccidentalDrivingVo={};
  7903. },
  7904. clearAccidentFormHN() {
  7905. this.huanongaccidentalDrivingVo = {};
  7906. },
  7907. clearAccidentFormHB() {
  7908. this.hengbangaccidentalDrivingVo = {};
  7909. },
  7910. clearAccidentFormTP() {
  7911. this.taipingaccidentalDrivingVo = {};
  7912. },
  7913. clearAccidentFormDJ() {
  7914. this.dajiaaccidentalDrivingVo = {};
  7915. },
  7916. clearAccidentFormZM() {
  7917. this.zhongmeiaccidentalDrivingVo = {};
  7918. },
  7919. clearAccidentFormZJ() {
  7920. this.accidentalDrivingVo = [];
  7921. },
  7922. clearAccidentFormZA() {
  7923. this.zhonganaccidentalDrivingVo = {};
  7924. },
  7925. clearAccidentFormRS() {
  7926. this.renshouaccidentalDrivingVo = {};
  7927. },
  7928. clearAccidentFormAS() {
  7929. this.anshengaccidentalDrivingVo = {};
  7930. },
  7931. //身份证有效期长期
  7932. insureLongterm(e) {
  7933. this[e].identifyValidEndDate = "9999-12-31";
  7934. },
  7935. //较强起保日期事件
  7936. jqChange(e) {
  7937. this.jqendDate = this.oneYearPast1(e);
  7938. },
  7939. //商业起保日期事件
  7940. syChange(e) {
  7941. this.syendDate = this.oneYearPast1(e);
  7942. },
  7943. // //查看更多
  7944. // selectMore(leg) {
  7945. // this.insureMore = false;
  7946. // this.insureLength = leg;
  7947. // },
  7948. // //收起
  7949. // packup() {
  7950. // this.insureMore = true;
  7951. // this.insureLength = 5;
  7952. // },
  7953. //险别选择框事件
  7954. insureitemChange(e, item) {
  7955. // if (e != 0) {
  7956. // this.sychecked = true;
  7957. // this.systartDate = this.transformTime1();
  7958. // this.syendDate = this.oneYearPast1(this.systartDate);
  7959. // this.kindList.push(item)
  7960. // this.obtainProtocol();
  7961. // } else {
  7962. // let list = this.kindList.filter(item => item.kindCode !== item.kindCode);
  7963. // this.kindList = list;
  7964. // this.obtainProtocol();
  7965. // }
  7966. },
  7967. all() {
  7968. this.$refs.detailsDialog.setBackupVisible(true);
  7969. },
  7970. base64ToBlob(code) {
  7971. code = code.replace(/[\n\r]/g, "");
  7972. // atob() 方法用于解码使用 base-64 编码的字符串。
  7973. const raw = window.atob(code);
  7974. const rawLength = raw.length;
  7975. const uInt8Array = new Uint8Array(rawLength);
  7976. for (let i = 0; i < rawLength; ++i) {
  7977. uInt8Array[i] = raw.charCodeAt(i);
  7978. }
  7979. return new Blob([uInt8Array], { type: "application/pdf" });
  7980. },
  7981. viewPdf(content) {
  7982. if (!content) {
  7983. this.$message.error("暂无文件");
  7984. return;
  7985. }
  7986. const blob = this.base64ToBlob(content);
  7987. this.href = blob;
  7988. if (window.navigator && window.navigator.msSaveOrOpenBlob) {
  7989. window.navigator.msSaveOrOpenBlob(blob);
  7990. } else {
  7991. const fileURL = URL.createObjectURL(blob);
  7992. window.open(fileURL);
  7993. }
  7994. },
  7995. //二维码生成插件
  7996. creatQrCode(text) {
  7997. // 查找并删除旧的二维码DOM元素
  7998. let element = document.getElementById("qrcode");
  7999. while (element.firstChild) {
  8000. element.removeChild(element.firstChild);
  8001. }
  8002. // 创建新的QRCode实例
  8003. this.qrcode = new QRCode("qrcode", {
  8004. text: text,
  8005. width: this.qrcodeWidth,
  8006. height: this.qrcodeHeight,
  8007. colorDark: "#000000",
  8008. colorLight: "#ffffff",
  8009. correctLevel: QRCode.CorrectLevel.H,
  8010. });
  8011. },
  8012. //人工核保
  8013. underwriting(id) {
  8014. let param = {
  8015. companyId: id,
  8016. };
  8017. this.$api.letter.manualUnderwriting(param).then((res) => {
  8018. if (res.code == "200") {
  8019. this.Payment(id);
  8020. }
  8021. });
  8022. },
  8023. signature(companyId){
  8024. this.$api.letter.pingAnsignEleApply({companyId}).then((res) => {
  8025. if (res.code == 200 && res.data) {
  8026. this.resultMessageImg=process.env.BASE_URL+res.data.resultMessage
  8027. this.signaturedialogVisible = true;
  8028. // 查找并删除旧的二维码DOM元素
  8029. // let element = document.getElementById("signaturecode");
  8030. // while (element.firstChild) {
  8031. // element.removeChild(element.firstChild);
  8032. // }
  8033. // this.signaturecode = new QRCode("signaturecode", {
  8034. // text: resultMessage,
  8035. // width: 180,
  8036. // height: 180,
  8037. // colorDark: "#000000",
  8038. // colorLight: "#ffffff",
  8039. // correctLevel: QRCode.CorrectLevel.H,
  8040. // });
  8041. // this.signaturedialogVisible = true;
  8042. // this.$api.letter.pingAnsignEleApply({companyId}).then((res) => {
  8043. // if (res.code == 200 && res.data) {
  8044. // // 查找并删除旧的二维码DOM元素
  8045. // let element = document.getElementById("signaturecode");
  8046. // while (element.firstChild) {
  8047. // element.removeChild(element.firstChild);
  8048. // }
  8049. // this.signaturecode = new QRCode("signaturecode", {
  8050. // text: res.data.resultMessage,
  8051. // width: 180,
  8052. // height: 180,
  8053. // colorDark: "#000000",
  8054. // colorLight: "#ffffff",
  8055. // correctLevel: QRCode.CorrectLevel.H,
  8056. // });
  8057. } else {
  8058. this.$message({
  8059. message: res.msg || "暂无数据!",
  8060. type: "warning",
  8061. });
  8062. }
  8063. });
  8064. },
  8065. jqcheckedChange(e) {
  8066. if (e) {
  8067. this.jqstartDate = this.transformTime1();
  8068. this.jqendDate = this.oneYearPast1(this.jqstartDate);
  8069. this.riskList.push({
  8070. riskCode: "0507",
  8071. });
  8072. // this.obtainProtocol();
  8073. } else {
  8074. this.jqstartDate = "";
  8075. this.jqendDate = "";
  8076. let list = this.riskList.filter(item => item.riskCode !== "0507");
  8077. this.riskList = list;
  8078. // this.obtainProtocol();
  8079. }
  8080. },
  8081. sycheckedChange(e) {
  8082. if (e) {
  8083. this.systartDate = this.transformTime1();
  8084. this.syendDate = this.oneYearPast1(this.systartDate);
  8085. this.riskList.push({
  8086. riskCode: "0510",
  8087. });
  8088. // this.obtainProtocol();
  8089. } else {
  8090. this.systartDate = "";
  8091. this.syendDate = "";
  8092. let list = this.riskList.filter(item => item.riskCode !== "0510");
  8093. this.riskList = list;
  8094. // this.obtainProtocol();
  8095. }
  8096. },
  8097. //订单生成后保存接口
  8098. preserveOrderStageProcessing(type, btnLoading) {
  8099. // console.log(this.editorInfo);
  8100. // debugger;
  8101. //同车主的选择框
  8102. this[btnLoading] = true;
  8103. if (this.tbczcarShow && this.imageList2.length > 0) {
  8104. //投保人同车主
  8105. this.imageList3 = JSON.parse(JSON.stringify(this.imageList2));
  8106. if (this.imageList3.length == 1) {
  8107. this.imageList3[0].imageType = this.imageList3[0].imageType.includes(
  8108. "C0"
  8109. )
  8110. ? "C03"
  8111. : "D03";
  8112. } else {
  8113. this.imageList3.forEach((e) => {
  8114. e.imageType = e.imageType.includes("C0") ? "C03" : "D03";
  8115. });
  8116. }
  8117. }
  8118. if (this.bbczcarShow && this.imageList2.length > 0) {
  8119. //被保人同车主
  8120. this.imageList4 = JSON.parse(JSON.stringify(this.imageList2));
  8121. if (this.imageList4.length == 1) {
  8122. this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  8123. "C0"
  8124. )
  8125. ? "C04"
  8126. : "D04";
  8127. } else {
  8128. this.imageList4.forEach((e) => {
  8129. e.imageType = e.imageType.includes("C0") ? "C04" : "D04";
  8130. });
  8131. }
  8132. }
  8133. if (this.bbtbcarShow && this.imageList3.length > 0) {
  8134. //被保人同投保人
  8135. this.imageList4 = JSON.parse(JSON.stringify(this.imageList3));
  8136. if (this.imageList4.length == 1) {
  8137. this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  8138. "C0"
  8139. )
  8140. ? "C04"
  8141. : "D04";
  8142. } else {
  8143. this.imageList4.forEach((e) => {
  8144. e.imageType = e.imageType.includes("C0") ? "C04" : "D04";
  8145. });
  8146. }
  8147. }
  8148. //日期长度<10处理
  8149. const formatDate = (date) => {
  8150. if (date.length < 10) {
  8151. return this.timeformat(date);
  8152. }
  8153. return date;
  8154. };
  8155. if (this.carInfo.registerDate.length < 10) {
  8156. this.carInfo.registerDate = formatDate(this.carInfo.registerDate);
  8157. }
  8158. if (this.carInfo.issueDate.length < 10) {
  8159. this.carInfo.issueDate = formatDate(this.carInfo.issueDate);
  8160. }
  8161. if (
  8162. this.carInfo.transferDate &&
  8163. this.carInfo.transferDate.length < 10 &&
  8164. this.carInfo.transferDate !== ""
  8165. ) {
  8166. this.carInfo.transferDate = formatDate(this.carInfo.transferDate);
  8167. }
  8168. //日期长度<10处理
  8169. //提交身份证/驾驶证 ——————————————————
  8170. this.policyHolderInfo.owner = this.tbczcarShow;
  8171. this.insuredPersonInfo.owner = this.bbczcarShow;
  8172. this.insuredPersonInfo.insuranceHolder = this.bbtbcarShow;
  8173. if (typeof this.ownerInfo.provinceData == "string") {
  8174. this.ownerInfo.provinceData = [];
  8175. }
  8176. if (typeof this.insuredPersonInfo.provinceData == "string") {
  8177. this.insuredPersonInfo.provinceData = [];
  8178. }
  8179. if (typeof this.policyHolderInfo.provinceData == "string") {
  8180. this.policyHolderInfo.provinceData = [];
  8181. }
  8182. if (this.$route.query.data) {
  8183. const mergedArray = [
  8184. ...this.imageList1,
  8185. ...this.imageList2,
  8186. ...this.imageList3,
  8187. ...this.imageList4,
  8188. ...this.imageList5,
  8189. ...this.imageList6,
  8190. ];
  8191. if (mergedArray.length > 0) {
  8192. let imageparam = {
  8193. imageList: mergedArray,
  8194. quoteNo: this.$route.query.data.quoteno,
  8195. };
  8196. this.$api.letter.uploadImages(imageparam).then((responses) => {
  8197. // this.$refs.imageDialog.imageEcho(this.$route.query.data.quoteno)
  8198. this.imageEcho(this.$route.query.data.quoteno); // 获取图片
  8199. });
  8200. }
  8201. this.editorInfo.applyinfo.owner = this.tbczcarShow;
  8202. this.editorInfo.insureinfo.owner = this.bbczcarShow;
  8203. this.editorInfo.insureinfo.insuranceHolder = this.bbtbcarShow;
  8204. let params = {
  8205. orderNo: this.$route.query.data.orderno,
  8206. ...this.policyNumberForm,
  8207. agreementId: this.isLetter3agreementId,
  8208. stageFlag: type,
  8209. jqstartdate: this.jqstartDate,
  8210. jqenddate: this.jqendDate,
  8211. systartdate : this.systartDate,
  8212. syenddate : this.syendDate,
  8213. kind: this.kindList,
  8214. risk: this.riskList,
  8215. kindList: this.kindList,
  8216. riskList: this.riskList,
  8217. carInfo: this.carInfo,
  8218. insuredPersonInfo: this.insuredPersonInfo,
  8219. ownerInfo: this.ownerInfo,
  8220. policyHolderInfo: this.policyHolderInfo,
  8221. isExternal: "1",
  8222. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  8223. };
  8224. // debugger;
  8225. this.$api.letter.updateExternalOrder(params).then((res) => {
  8226. if (res.code == "200") {
  8227. this[btnLoading] = false;
  8228. this.$message({
  8229. message: res.msg || "编辑成功",
  8230. type: "success",
  8231. });
  8232. this.add();
  8233. } else {
  8234. this[btnLoading] = false;
  8235. this.$message.error(res.msg);
  8236. }
  8237. });
  8238. } else {
  8239. this.ownerInfo.owner = this.tbczcarShow;
  8240. this.insuredPersonInfo.owner = this.bbczcarShow;
  8241. this.insuredPersonInfo.insuranceHolder = this.bbtbcarShow;
  8242. let param = {
  8243. userId: this.userId,
  8244. quoteno: this.quoteno,
  8245. orderNo: this.orderno,
  8246. carInfo: this.carInfo,
  8247. insuredPersonInfo: this.insuredPersonInfo,
  8248. ownerInfo: this.ownerInfo,
  8249. policyHolderInfo: this.policyHolderInfo,
  8250. kindList: this.kindList,
  8251. riskList: this.riskList,
  8252. isExternal: "1",
  8253. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  8254. };
  8255. this.$api.letter.generateOrder(param).then((res) => {
  8256. if (res.code == "200") {
  8257. //上传图片
  8258. const mergedArray = [
  8259. ...this.imageList1,
  8260. ...this.imageList2,
  8261. ...this.imageList3,
  8262. ...this.imageList4,
  8263. ...this.imageList5,
  8264. ...this.imageList6,
  8265. ];
  8266. if (mergedArray.length > 0) {
  8267. let imageparam = {
  8268. imageList: mergedArray,
  8269. quoteNo: res.data.quoteno,
  8270. };
  8271. this.$api.letter.uploadImages(imageparam).then((responses) => {
  8272. this.imageEcho(res.data.quoteno); // 获取图片
  8273. // this.$refs.imageDialog.imageEcho(res.data.quoteno)
  8274. });
  8275. }
  8276. let params1 = {
  8277. orderNo: res.data.orderno,
  8278. ...this.policyNumberForm,
  8279. agreementId: this.isLetter3agreementId,
  8280. stageFlag: type,
  8281. nowCostsId: this.nowCostsId
  8282. };
  8283. // debugger
  8284. this.$api.letter.saveSubOrder(params1).then((res) => {
  8285. if (res.code == "200") {
  8286. this[btnLoading] = false;
  8287. this.$message({
  8288. message: res.msg || "录入成功",
  8289. type: "success",
  8290. });
  8291. this.add();
  8292. } else {
  8293. this[btnLoading] = false;
  8294. this.$message.error(res.msg);
  8295. }
  8296. });
  8297. } else {
  8298. this[btnLoading] = false;
  8299. this.$message.error(res.msg);
  8300. }
  8301. });
  8302. }
  8303. // document.getElementById("company").scrollIntoView();
  8304. this.imageUploadShow = true;
  8305. },
  8306. policyHolderInfovalidate() {
  8307. let isvalidat = false;
  8308. let _this = this;
  8309. this.bbtbcarShowChange()
  8310. this.bbczcarShowChange()
  8311. if (_this.tbczcarShow == true) {
  8312. _this.policyHolderInfo = JSON.parse(JSON.stringify(_this.ownerInfo));
  8313. } else {
  8314. _this.$refs["policyHolderInfo"].validate((valid2) => {
  8315. if (valid2) {
  8316. isvalidat = false;
  8317. } else {
  8318. document.getElementById("toubaor").scrollIntoView();
  8319. _this.$message({ message: "请检查投保人信息", type: "warning" });
  8320. isvalidat = true;
  8321. }
  8322. });
  8323. }
  8324. if (isvalidat) {
  8325. return;
  8326. }
  8327. },
  8328. //报价
  8329. quote(index) {
  8330. let starttime = new Date(this.carInfo.registerDate);
  8331. let endtime = new Date(this.carInfo.issueDate);
  8332. if (endtime < starttime) {
  8333. this.$message({ message: "发证日期早于初登日期", type: "error" });
  8334. return;
  8335. }
  8336. this.policyHolderInfovalidate();
  8337. this.$refs["carInfo"].validate((valid) => {
  8338. if (valid) {
  8339. var _this = this;
  8340. // this.policyHolderInfovalidate()
  8341. if (_this.tbczcarShow == true) {
  8342. _this.policyHolderInfo = JSON.parse(
  8343. JSON.stringify(_this.ownerInfo)
  8344. );
  8345. }
  8346. _this.$refs["ownerInfo"].validate((valid1) => {
  8347. if (valid1) {
  8348. if (_this.bbczcarShow == true) {
  8349. _this.insuredPersonInfo = JSON.parse(
  8350. JSON.stringify(_this.ownerInfo)
  8351. );
  8352. }
  8353. if (_this.bbtbcarShow == true) {
  8354. _this.insuredPersonInfo = JSON.parse(
  8355. JSON.stringify(_this.policyHolderInfo)
  8356. );
  8357. }
  8358. _this.carInfo.vinNo = _this.carInfo.frameNo;
  8359. _this.riskList = []; //险种大类
  8360. _this.kindList = []; //商业险险别
  8361. if (
  8362. (!_this.jqstartDate || !_this.jqendDate) &&
  8363. (!_this.systartDate || !_this.syendDate)
  8364. ) {
  8365. this.$message({ message: "投保日期不能为空", type: "warning" });
  8366. } else {
  8367. if (this.totalCompanyList[index].isTaxSource != 1 && this.totalCompanyList[index].agreementId == "") {
  8368. this.$message.warning('请选择协议')
  8369. return
  8370. }
  8371. this.calculateLoading = true;
  8372. setInterval(() => {
  8373. this.calculateLoading = false;
  8374. }, 3000);
  8375. _this.totalCompanyList[index].kindList = []
  8376. let kinds = [..._this.totalCompanyList[index].programme.kinds.main,
  8377. ..._this.totalCompanyList[index].programme.kinds.additional,
  8378. ..._this.totalCompanyList[index].programme.kinds.service]
  8379. kinds.forEach((value) => {
  8380. _this.totalCompanyList[index].kindList.push({
  8381. amount: value.amount,
  8382. serviceTimes: value.amount,
  8383. unitAmount: value.amount,
  8384. kindCode: value.kindCode,
  8385. kindName: value.kindName
  8386. })
  8387. })
  8388. console.log(_this.totalCompanyList[index].kindList, '_this.totalCompanyList[index].kindList')
  8389. if (_this.jqchecked) {
  8390. //交强
  8391. _this.jqstartDate = this.transformTime(_this.jqstartDate);
  8392. _this.jqendDate = this.transformTime(_this.jqendDate);
  8393. _this.riskList.push({
  8394. amount: "200000",
  8395. premium: "0",
  8396. riskCode: "0507",
  8397. endDate: _this.jqendDate,
  8398. startDate: _this.jqstartDate,
  8399. instantFlag: "0",
  8400. });
  8401. }
  8402. if (_this.sychecked) {
  8403. _this.systartDate = this.transformTime(_this.systartDate);
  8404. _this.syendDate = this.transformTime(_this.syendDate);
  8405. //商业
  8406. _this.riskList.push({
  8407. premium: "0",
  8408. riskCode: "0510",
  8409. quotePreceptCode: "",
  8410. quotePreceptName: "",
  8411. endDate: _this.syendDate,
  8412. startDate: _this.systartDate,
  8413. instantFlag: "0",
  8414. });
  8415. // _this.totalCompanyList.forEach((val) => {
  8416. // if (val.checked) {
  8417. // console.log(val.programme, 'programmeeeeeeee')
  8418. // let kinds = [...val.programme.kinds.additional, ...val.programme.kinds.main, ...val.programme.kinds.service]
  8419. // kinds.forEach((value) => {
  8420. // _this.kindList.push({
  8421. // amount: value.amount,
  8422. // kindCode: value.kindCode,
  8423. // kindName: value.kindName
  8424. // })
  8425. // })
  8426. // }
  8427. // })
  8428. _this.insureList.map((ele, index) => {
  8429. // if (
  8430. // ele.amount != "0" &&
  8431. // (ele.kindCode == "D4" || ele.kindCode == "SY_FJ_YBW2")
  8432. // ) {
  8433. // _this.kindList.push({
  8434. // unitAmount: _this.insureList[index].amount,
  8435. // kindCode: _this.insureList[index].kindCode,
  8436. // kindName: _this.insureList[index].kindName,
  8437. // });
  8438. // } else if (
  8439. // ele.amount != "0" &&
  8440. // (ele.kindCode == "MJ1" ||
  8441. // ele.kindCode == "MJ2" ||
  8442. // ele.kindCode == "MJ3" ||
  8443. // ele.kindCode == "MJ4")
  8444. // ) {
  8445. // _this.kindList.push({
  8446. // deductibleRate: _this.insureList[index].amount,
  8447. // kindCode: _this.insureList[index].kindCode,
  8448. // kindName: _this.insureList[index].kindName,
  8449. // });
  8450. // } else if (
  8451. // ele.amount != "0" &&
  8452. // (ele.kindCode == "TY1" ||
  8453. // ele.kindCode == "TY2" ||
  8454. // ele.kindCode == "TY3" ||
  8455. // ele.kindCode == "TY4")
  8456. // ) {
  8457. // _this.kindList.push({
  8458. // serviceTimes: _this.insureList[index].amount,
  8459. // kindCode: _this.insureList[index].kindCode,
  8460. // kindName: _this.insureList[index].kindName,
  8461. // });
  8462. // } else if (ele.amount != "0") {
  8463. // _this.kindList.push({
  8464. // amount: _this.insureList[index].amount,
  8465. // kindCode: _this.insureList[index].kindCode,
  8466. // kindName: _this.insureList[index].kindName,
  8467. // });
  8468. // }
  8469. return ele;
  8470. });
  8471. } else {
  8472. _this.kindList = [];
  8473. }
  8474. // if (_this.orderno) {
  8475. this.OrderStageProcessing(index);
  8476. // } else {
  8477. // _this.$api.letter.getquote().then(res => {
  8478. // _this.quoteno = res.data; //获取报价号
  8479. // this.OrderStageProcessing();
  8480. // });
  8481. // }
  8482. }
  8483. } else {
  8484. document.getElementById("CheZhu").scrollIntoView();
  8485. _this.$message({ message: "请检查人员信息", type: "warning" });
  8486. }
  8487. });
  8488. } else {
  8489. document.getElementById("Car").scrollIntoView();
  8490. this.$message({ message: "请检查车辆信息", type: "warning" });
  8491. return false;
  8492. }
  8493. });
  8494. },
  8495. quote1() {
  8496. let starttime = new Date(this.carInfo.registerDate);
  8497. let endtime = new Date(this.carInfo.issueDate);
  8498. if (endtime < starttime) {
  8499. this.$message({ message: "发证日期早于初登日期", type: "error" });
  8500. return;
  8501. }
  8502. this.policyHolderInfovalidate();
  8503. var _this = this;
  8504. this.$refs["carInfo"].validate((valid) => {
  8505. if (valid) {
  8506. // this.policyHolderInfovalidate()
  8507. if (_this.tbczcarShow == true) {
  8508. _this.policyHolderInfo = JSON.parse(
  8509. JSON.stringify(_this.ownerInfo)
  8510. );
  8511. }
  8512. _this.$refs["ownerInfo"].validate((valid1) => {
  8513. if (valid1) {
  8514. if (_this.bbczcarShow == true) {
  8515. _this.insuredPersonInfo = JSON.parse(
  8516. JSON.stringify(_this.ownerInfo)
  8517. );
  8518. }
  8519. if (_this.bbtbcarShow == true) {
  8520. _this.insuredPersonInfo = JSON.parse(
  8521. JSON.stringify(_this.policyHolderInfo)
  8522. );
  8523. }
  8524. _this.carInfo.vinNo = _this.carInfo.frameNo;
  8525. _this.riskList = []; //险种大类
  8526. _this.kindList = []; //商业险险别
  8527. if (
  8528. (!_this.jqstartDate || !_this.jqendDate) &&
  8529. (!_this.systartDate || !_this.syendDate)
  8530. ) {
  8531. this.$message({ message: "投保日期不能为空", type: "warning" });
  8532. } else {
  8533. this.calculateLoading = true;
  8534. setInterval(() => {
  8535. this.calculateLoading = false;
  8536. }, 3000);
  8537. try {
  8538. this.totalCompanyList.forEach((val, index) => {
  8539. if (val.checked) {
  8540. val.kindList = []
  8541. if (!val.programme) {
  8542. // throw Error("没有方案")
  8543. return
  8544. }
  8545. let kinds = [...val.programme.kinds.main, ...val.programme.kinds.additional, ...val.programme.kinds.service]
  8546. kinds.forEach((value) => {
  8547. this.totalCompanyList[index].kindList.push({
  8548. amount: value.amount,
  8549. serviceTimes: value.amount,
  8550. unitAmount: value.amount,
  8551. kindCode: value.kindCode,
  8552. kindName: value.kindName
  8553. })
  8554. })
  8555. if (val.isTaxSource != 1 && val.agreementId == "") {
  8556. this.$message.warning('请选择协议')
  8557. throw Error("请选择协议")
  8558. }
  8559. }
  8560. })
  8561. } catch (error) {
  8562. return console.log(error)
  8563. }
  8564. if (_this.jqchecked) {
  8565. //交强
  8566. _this.jqstartDate = this.transformTime(_this.jqstartDate);
  8567. _this.jqendDate = this.transformTime(_this.jqendDate);
  8568. _this.riskList.push({
  8569. amount: "200000",
  8570. premium: "0",
  8571. riskCode: "0507",
  8572. endDate: _this.jqendDate,
  8573. startDate: _this.jqstartDate,
  8574. instantFlag: "0",
  8575. });
  8576. }
  8577. if (_this.sychecked) {
  8578. _this.systartDate = this.transformTime(_this.systartDate);
  8579. _this.syendDate = this.transformTime(_this.syendDate);
  8580. //商业
  8581. _this.riskList.push({
  8582. premium: "0",
  8583. riskCode: "0510",
  8584. quotePreceptCode: "",
  8585. quotePreceptName: "",
  8586. endDate: _this.syendDate,
  8587. startDate: _this.systartDate,
  8588. instantFlag: "0",
  8589. });
  8590. } else {
  8591. _this.kindList = [];
  8592. }
  8593. // if (_this.orderno) {
  8594. this.OrderStageProcessing();
  8595. // } else {
  8596. // _this.$api.letter.getquote().then(res => {
  8597. // _this.quoteno = res.data; //获取报价号
  8598. // this.OrderStageProcessing();
  8599. // });
  8600. // }
  8601. }
  8602. } else {
  8603. document.getElementById("CheZhu").scrollIntoView();
  8604. _this.$message({ message: "请检查人员信息", type: "warning" });
  8605. }
  8606. });
  8607. } else {
  8608. document.getElementById("Car").scrollIntoView();
  8609. this.$message({ message: "请检查车辆信息", type: "warning" });
  8610. return false;
  8611. }
  8612. });
  8613. },
  8614. kindListFun(index) {
  8615. var _this = this;
  8616. _this.riskList = []; //险种大类
  8617. _this.kindList = []; //商业险险别
  8618. if (
  8619. (!_this.jqstartDate || !_this.jqendDate) &&
  8620. (!_this.systartDate || !_this.syendDate)
  8621. ) {
  8622. this.$message({ message: "投保日期不能为空", type: "warning" });
  8623. } else {
  8624. if (_this.jqchecked) {
  8625. //交强
  8626. _this.jqstartDate = this.transformTime(_this.jqstartDate);
  8627. _this.jqendDate = this.transformTime(_this.jqendDate);
  8628. _this.riskList.push({
  8629. amount: "200000",
  8630. premium: "0",
  8631. riskCode: "0507",
  8632. endDate: _this.jqendDate,
  8633. startDate: _this.jqstartDate,
  8634. instantFlag: "0",
  8635. });
  8636. }
  8637. if (_this.sychecked) {
  8638. _this.systartDate = this.transformTime(_this.systartDate);
  8639. _this.syendDate = this.transformTime(_this.syendDate);
  8640. //商业
  8641. _this.riskList.push({
  8642. premium: "0",
  8643. riskCode: "0510",
  8644. quotePreceptCode: "",
  8645. quotePreceptName: "",
  8646. endDate: _this.syendDate,
  8647. startDate: _this.systartDate,
  8648. instantFlag: "0",
  8649. });
  8650. // _this.insureList.map((ele, index) => {
  8651. // if (
  8652. // ele.amount != "0" &&
  8653. // (ele.kindCode == "D4" || ele.kindCode == "SY_FJ_YBW2")
  8654. // ) {
  8655. // _this.kindList.push({
  8656. // unitAmount: _this.insureList[index].amount,
  8657. // kindCode: _this.insureList[index].kindCode,
  8658. // kindName: _this.insureList[index].kindName,
  8659. // });
  8660. // } else if (
  8661. // ele.amount != "0" &&
  8662. // (ele.kindCode == "MJ1" ||
  8663. // ele.kindCode == "MJ2" ||
  8664. // ele.kindCode == "MJ3" ||
  8665. // ele.kindCode == "MJ4")
  8666. // ) {
  8667. // _this.kindList.push({
  8668. // deductibleRate: _this.insureList[index].amount,
  8669. // kindCode: _this.insureList[index].kindCode,
  8670. // kindName: _this.insureList[index].kindName,
  8671. // });
  8672. // } else if (
  8673. // ele.amount != "0" &&
  8674. // (ele.kindCode == "TY1" ||
  8675. // ele.kindCode == "TY2" ||
  8676. // ele.kindCode == "TY3" ||
  8677. // ele.kindCode == "TY4")
  8678. // ) {
  8679. // _this.kindList.push({
  8680. // serviceTimes: _this.insureList[index].amount,
  8681. // kindCode: _this.insureList[index].kindCode,
  8682. // kindName: _this.insureList[index].kindName,
  8683. // });
  8684. // } else if (ele.amount != "0") {
  8685. // _this.kindList.push({
  8686. // amount: _this.insureList[index].amount,
  8687. // kindCode: _this.insureList[index].kindCode,
  8688. // kindName: _this.insureList[index].kindName,
  8689. // });
  8690. // }
  8691. // return ele;
  8692. // });
  8693. } else {
  8694. _this.kindList = [];
  8695. }
  8696. }
  8697. },
  8698. //动态函数
  8699. ToolClickFun(MethodName, Parameter, companyId, companyName, index) {
  8700. this[`${MethodName}`](Parameter, companyId, companyName, index);
  8701. },
  8702. //更新报价历史
  8703. QuotationHistory() {
  8704. let params = {
  8705. orderNo: this.orderno,
  8706. orderStatus: "",
  8707. };
  8708. this.$api.letter.queryQuoteHistory(params).then((res) => {
  8709. res.data.forEach((item) => {
  8710. if (item.accidentInfo) {
  8711. item.accidentInfo.constructor === Object
  8712. ? [item.accidentInfo]
  8713. : item.accidentInfo;
  8714. }
  8715. });
  8716. this.HistoryList = res.data;
  8717. });
  8718. },
  8719. open2(Name, Msg) {
  8720. this.$notify.info({
  8721. title: Name,
  8722. dangerouslyUseHTMLString: true,
  8723. type: "warning",
  8724. message: Msg,
  8725. customClass: "customNotifyClass",
  8726. duration: 7000,
  8727. });
  8728. },
  8729. open3(Name, Msg) {
  8730. this.$notify.info({
  8731. title: Name,
  8732. dangerouslyUseHTMLString: true,
  8733. type: "warning",
  8734. message: `<p>${Msg.replace(/\n/g, "<br>")}</p>`,
  8735. customClass: "customNotifyClass",
  8736. duration: 7000,
  8737. });
  8738. },
  8739. openPredictInfo(Name, Msg) {
  8740. this.redictInfoMsg = Msg;
  8741. this.redictInfodialogVisible = true;
  8742. },
  8743. //订单生成前数据处理事件
  8744. OrderStageProcessing(index) {
  8745. if (this.tbczcarShow && this.imageList2.length > 0) {
  8746. //投保人同车主
  8747. this.imageList3 = JSON.parse(JSON.stringify(this.imageList2));
  8748. if (this.imageList3.length == 1) {
  8749. this.imageList3[0].imageType = this.imageList3[0].imageType.includes(
  8750. "C0"
  8751. )
  8752. ? "C03"
  8753. : "D03";
  8754. } else {
  8755. this.imageList3.forEach((e) => {
  8756. e.imageType = e.imageType.includes("C0") ? "C03" : "D03";
  8757. });
  8758. }
  8759. }
  8760. if (this.bbczcarShow && this.imageList2.length > 0) {
  8761. //被保人同车主
  8762. this.imageList4 = JSON.parse(JSON.stringify(this.imageList2));
  8763. if (this.imageList4.length == 1) {
  8764. this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  8765. "C0"
  8766. )
  8767. ? "C04"
  8768. : "D04";
  8769. } else {
  8770. this.imageList4.forEach((e) => {
  8771. e.imageType = e.imageType.includes("C0") ? "C04" : "D04";
  8772. });
  8773. }
  8774. // if (this.imageList4.length == 1) {
  8775. // this.imageList4[0].imageType = "C04";
  8776. // }
  8777. // else {
  8778. // this.imageList4[0].imageType = "C04";
  8779. // this.imageList4[1].imageType = "D04";
  8780. // }
  8781. }
  8782. if (this.bbtbcarShow && this.imageList3.length > 0) {
  8783. //被保人同投保人
  8784. this.imageList4 = JSON.parse(JSON.stringify(this.imageList3));
  8785. if (this.imageList4.length == 1) {
  8786. this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  8787. "C0"
  8788. )
  8789. ? "C04"
  8790. : "D04";
  8791. } else {
  8792. this.imageList4.forEach((e) => {
  8793. e.imageType = e.imageType.includes("C0") ? "C04" : "D04";
  8794. });
  8795. }
  8796. // if (this.imageList4.length == 1) {
  8797. // this.imageList4[0].imageType = "C04";
  8798. // } else {
  8799. // this.imageList4[0].imageType = "C04";
  8800. // this.imageList4[1].imageType = "D04";
  8801. // }
  8802. }
  8803. //日期长度<10处理
  8804. const formatDate = (date) => {
  8805. if (date.length < 10) {
  8806. return this.timeformat(date);
  8807. }
  8808. return date;
  8809. };
  8810. if (this.carInfo.registerDate.length < 10) {
  8811. this.carInfo.registerDate = formatDate(this.carInfo.registerDate);
  8812. }
  8813. if (this.carInfo.issueDate.length < 10) {
  8814. this.carInfo.issueDate = formatDate(this.carInfo.issueDate);
  8815. }
  8816. if (
  8817. this.carInfo.transferDate &&
  8818. this.carInfo.transferDate.length < 10 &&
  8819. this.carInfo.transferDate !== ""
  8820. ) {
  8821. this.carInfo.transferDate = formatDate(this.carInfo.transferDate);
  8822. }
  8823. //日期长度<10处理
  8824. //提交身份证/驾驶证 ——————————————————
  8825. this.policyHolderInfo.owner = this.tbczcarShow;
  8826. this.insuredPersonInfo.owner = this.bbczcarShow;
  8827. this.insuredPersonInfo.insuranceHolder = this.bbtbcarShow;
  8828. if (typeof this.ownerInfo.provinceData == "string") {
  8829. this.ownerInfo.provinceData = [];
  8830. }
  8831. if (typeof this.insuredPersonInfo.provinceData == "string") {
  8832. this.insuredPersonInfo.provinceData = [];
  8833. }
  8834. if (typeof this.policyHolderInfo.provinceData == "string") {
  8835. this.policyHolderInfo.provinceData = [];
  8836. }
  8837. let param = {
  8838. userId: this.userId,
  8839. quoteno: this.quoteno,
  8840. orderNo: this.orderno,
  8841. carInfo: this.carInfo,
  8842. insuredPersonInfo: this.insuredPersonInfo,
  8843. ownerInfo: this.ownerInfo,
  8844. policyHolderInfo: this.policyHolderInfo,
  8845. riskList: this.riskList,
  8846. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  8847. productId: this.productId
  8848. };
  8849. this.$api.letter[this.apiInterfaceName](param).then((res) => {
  8850. if (res.code == "200") {
  8851. //上传图片
  8852. const mergedArray = [
  8853. ...this.imageList1,
  8854. ...this.imageList2,
  8855. ...this.imageList3,
  8856. ...this.imageList4,
  8857. ...this.imageList5,
  8858. ...this.imageList6,
  8859. ];
  8860. if (mergedArray.length > 0) {
  8861. let imageparam = {
  8862. imageList: mergedArray,
  8863. quoteNo: res.data.quoteno,
  8864. };
  8865. this.$api.letter.uploadImages(imageparam).then((responses) => {
  8866. this.imageEcho(res.data.quoteno); // 获取图片
  8867. // this.$refs.imageDialog.imageEcho(res.data.quoteno)
  8868. });
  8869. }
  8870. this.quoteno = res.data.quoteno;
  8871. this.orderno = res.data.orderno;
  8872. if (index >= 0) {
  8873. this.totalCompanyList[index].quoteCode = 1
  8874. this.ToolClickFun(this.totalCompanyList[index].cnName, index, this.totalCompanyList[index].id, this.totalCompanyList[index].namesimple);
  8875. } else {
  8876. this.totalCompanyList.map((ele, index) => {
  8877. if (ele.checked) {
  8878. //动态调用报价接口
  8879. if (ele.programme) {
  8880. ele.quoteCode = 1;
  8881. ele.orderstatus = 0;
  8882. this.ToolClickFun(ele.cnName, index, ele.id, ele.namesimple);
  8883. }
  8884. }
  8885. });
  8886. }
  8887. } else if (res.code == 1001) {
  8888. this.$confirm("是否生成新订单?", "提示", {
  8889. confirmButtonText: "确定",
  8890. cancelButtonText: "取消",
  8891. type: "warning",
  8892. })
  8893. .then(() => {
  8894. this.orderno = "";
  8895. this.quoteno = "";
  8896. this.quote(index);
  8897. })
  8898. .catch(() => { });
  8899. } else {
  8900. this.$message({ message: res.msg, type: "warning" });
  8901. }
  8902. });
  8903. // document.getElementById("company").scrollIntoView();
  8904. this.imageUploadShow = true;
  8905. },
  8906. // 泰康报价--11
  8907. taikang(num, id, namesimple) {
  8908. this.quoteInsurance(
  8909. num,
  8910. id,
  8911. namesimple,
  8912. this.totalCompanyList[num].apiType
  8913. );
  8914. },
  8915. // 平安报价
  8916. pingan(num, id) {
  8917. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  8918. let accidentalDrivingVo=[]
  8919. if(this.pinganaccidentalDrivingVo){
  8920. accidentalDrivingVo=this.pinganaccidentalDrivingVo
  8921. // accidentalDrivingVo = Object.assign({
  8922. // ...this.pinganaccidentalDrivingVo,
  8923. // ...this.accidentFormPA,
  8924. // });
  8925. }
  8926. let params = {
  8927. accidentalDrivingVo,
  8928. orderNo: this.orderno,
  8929. companyId: id,
  8930. agreementId: this.totalCompanyList[num].agreementId,
  8931. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  8932. kindList: this.totalCompanyList[num].kindList,
  8933. riskList: this.riskList,
  8934. productId: this.productId,
  8935. };
  8936. this.$api.letter.pinganquote(params).then((res) => {
  8937. this.totalCompanyList[num].msg = res.msg;
  8938. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  8939. this.totalCompanyList[num].quoteCode = "4";
  8940. this.totalCompanyList[num].msg = res.msg;
  8941. return;
  8942. } else if (
  8943. res.data == null &&
  8944. res.msg.indexOf("交强险平台返回") > -1 &&
  8945. res.msg.indexOf(";终保日期") > -1
  8946. ) {
  8947. this.totalCompanyList[num].lastYearMsg =
  8948. "<b>交强险</b><br>" +
  8949. res.msg.slice(
  8950. res.msg.indexOf("起保日期 "),
  8951. res.msg.indexOf("地区 山西。") + 6
  8952. );
  8953. let time =
  8954. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  8955. this.jqstartDate = time;
  8956. this.jqendDate = this.oneYearPast1(time);
  8957. if (this.riskList.length > 0) {
  8958. for (let i = 0; i < this.riskList.length; i++) {
  8959. if (this.riskList[i].riskCode == "0507") {
  8960. this.riskList[i].startDate = time;
  8961. this.riskList[i].endDate = this.oneYearPast1(time);
  8962. }
  8963. }
  8964. }
  8965. let param = {
  8966. userId: this.userId,
  8967. quoteno: this.quoteno,
  8968. orderNo: this.orderno,
  8969. carInfo: this.carInfo,
  8970. insuredPersonInfo: this.insuredPersonInfo,
  8971. ownerInfo: this.ownerInfo,
  8972. policyHolderInfo: this.policyHolderInfo,
  8973. kindList: this.kindList,
  8974. riskList: this.riskList,
  8975. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  8976. };
  8977. return this.$api.letter[this.apiInterfaceName](param).then((res) => {
  8978. this.pingan(num, id);
  8979. });
  8980. } else if (!!res.data) {
  8981. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  8982. this.totalCompanyList[num].lastYearMsg = "";
  8983. let dat = res.data.warnMessageList;
  8984. dat.map((ele) => {
  8985. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  8986. });
  8987. }
  8988. this.totalCompanyList[num].quoteCode = 200;
  8989. this.totalCompanyList[num].result = res.data;
  8990. this.QuotationHistory();
  8991. } else {
  8992. this.totalCompanyList[num].quoteCode = "3";
  8993. this.totalCompanyList[num].msg = res.msg;
  8994. return;
  8995. }
  8996. });
  8997. },
  8998. //永安报价
  8999. yongan(num, id) {
  9000. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  9001. let params = {
  9002. orderNo: this.orderno,
  9003. companyId: id,
  9004. agreementId: this.totalCompanyList[num].agreementId,
  9005. kindList: this.totalCompanyList[num].kindList,
  9006. riskList: this.riskList,
  9007. productId: this.productId,
  9008. };
  9009. this.$api.letter.yonganquote(params).then((res) => {
  9010. this.totalCompanyList[num].msg = res.msg;
  9011. if (res.msg == "重复投保" && res.code == "501") {
  9012. if (!!res.data.jqStartDate && !res.data.syStartDate) {
  9013. this.jqstartDate = res.data.jqStartDate;
  9014. this.jqendDate = res.data.jqEndDate;
  9015. this.updateRiskDates(
  9016. "0507",
  9017. res.data.jqStartDate,
  9018. res.data.jqEndDate
  9019. );
  9020. let param = {
  9021. userId: this.userId,
  9022. quoteno: this.quoteno,
  9023. orderNo: this.orderno,
  9024. carInfo: this.carInfo,
  9025. insuredPersonInfo: this.insuredPersonInfo,
  9026. ownerInfo: this.ownerInfo,
  9027. policyHolderInfo: this.policyHolderInfo,
  9028. kindList: this.kindList,
  9029. riskList: this.riskList,
  9030. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  9031. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  9032. };
  9033. return this.$api.letter[this.apiInterfaceName](param).then(
  9034. (res) => {
  9035. this.yongan(num, id);
  9036. }
  9037. );
  9038. } else if (!!res.data.syStartDate && !res.data.jqStartDate) {
  9039. this.systartDate = res.data.syStartDate;
  9040. this.syendDate = res.data.syEndDate;
  9041. this.updateRiskDates(
  9042. "0510",
  9043. res.data.syStartDate,
  9044. res.data.syEndDate
  9045. );
  9046. let param = {
  9047. userId: this.userId,
  9048. quoteno: this.quoteno,
  9049. orderNo: this.orderno,
  9050. carInfo: this.carInfo,
  9051. insuredPersonInfo: this.insuredPersonInfo,
  9052. ownerInfo: this.ownerInfo,
  9053. policyHolderInfo: this.policyHolderInfo,
  9054. kindList: this.kindList,
  9055. riskList: this.riskList,
  9056. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  9057. };
  9058. return this.$api.letter[this.apiInterfaceName](param).then(
  9059. (res) => {
  9060. this.yongan(num, id);
  9061. }
  9062. );
  9063. } else if (!!res.data.syStartDate && !!res.data.jqStartDate) {
  9064. this.jqstartDate = res.data.jqStartDate;
  9065. this.jqendDate = res.data.jqEndDate;
  9066. this.systartDate = res.data.syStartDate;
  9067. this.syendDate = res.data.syEndDate;
  9068. this.updateRiskDates(
  9069. "0507",
  9070. res.data.jqStartDate,
  9071. res.data.jqEndDate
  9072. );
  9073. this.updateRiskDates(
  9074. "0510",
  9075. res.data.syStartDate,
  9076. res.data.syEndDate
  9077. );
  9078. let param = {
  9079. userId: this.userId,
  9080. quoteno: this.quoteno,
  9081. orderNo: this.orderno,
  9082. carInfo: this.carInfo,
  9083. insuredPersonInfo: this.insuredPersonInfo,
  9084. ownerInfo: this.ownerInfo,
  9085. policyHolderInfo: this.policyHolderInfo,
  9086. kindList: this.kindList,
  9087. riskList: this.riskList,
  9088. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  9089. };
  9090. return this.$api.letter[this.apiInterfaceName](param).then(
  9091. (res) => {
  9092. this.yongan(num, id);
  9093. }
  9094. );
  9095. } else {
  9096. this.totalCompanyList[num].quoteCode = "3";
  9097. this.totalCompanyList[num].msg = "重复投保";
  9098. }
  9099. } else if (
  9100. res.code == "500" ||
  9101. res.code == "502" ||
  9102. res.code == "-9999"
  9103. ) {
  9104. this.totalCompanyList[num].quoteCode = "-9999";
  9105. this.totalCompanyList[num].msg = res.msg;
  9106. } else {
  9107. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  9108. this.totalCompanyList[num].lastYearMsg = "";
  9109. let dat = res.data.warnMessageList;
  9110. dat.map((ele) => {
  9111. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  9112. });
  9113. }
  9114. this.totalCompanyList[num].quoteCode = 200;
  9115. this.totalCompanyList[num].result = res.data;
  9116. this.QuotationHistory();
  9117. }
  9118. });
  9119. },
  9120. updateRiskDates(riskCode, startDate, endDate) {
  9121. for (let i = 0; i < this.riskList.length; i++) {
  9122. if (this.riskList[i].riskCode == riskCode) {
  9123. this.riskList[i].startDate = startDate;
  9124. this.riskList[i].endDate = endDate;
  9125. }
  9126. }
  9127. },
  9128. //中煤报价
  9129. zhongmei(num, id) {
  9130. let accidentalDrivingVo = {};
  9131. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  9132. // if (this.accidentFormZM.projectCode) {
  9133. // accidentalDrivingVo = {
  9134. // projectCode: this.accidentFormZM.projectCode,
  9135. // projectName: this.accidentFormZM.projectName,
  9136. // quantity: this.accidentFormZM.quantity
  9137. // ? this.accidentFormZM.quantity
  9138. // : "1"
  9139. // };
  9140. // }
  9141. if (this.accidentFormZM.projectCode) {
  9142. accidentalDrivingVo = {
  9143. ...this.zhongmeiInsuranceData.find(
  9144. (e) => e.projectCode == this.accidentFormZM.projectCode
  9145. ),
  9146. quantity: this.accidentFormZM.quantity
  9147. ? this.accidentFormZM.quantity
  9148. : "1",
  9149. };
  9150. }
  9151. accidentalDrivingVo = this.totalCompanyList[num].programme.drivingList[0] || {}
  9152. let params = {
  9153. accidentalDrivingVo,
  9154. orderNo: this.orderno,
  9155. companyId: id,
  9156. agreementId: this.totalCompanyList[num].agreementId,
  9157. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  9158. kinds: this.totalCompanyList[num].kindList,
  9159. risks: this.riskList,
  9160. productId: this.productId,
  9161. };
  9162. this.$api.letter.pythonquote(params).then((res) => {
  9163. this.totalCompanyList[num].msg = res.msg;
  9164. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  9165. this.totalCompanyList[num].quoteCode = "4";
  9166. this.totalCompanyList[num].msg = res.msg;
  9167. return;
  9168. } else if (
  9169. res.data == null &&
  9170. res.msg.indexOf("交强险平台返回") > -1 &&
  9171. res.msg.indexOf(";终保日期") > -1
  9172. ) {
  9173. this.totalCompanyList[num].lastYearMsg =
  9174. "<b>交强险</b><br>" +
  9175. res.msg.slice(
  9176. res.msg.indexOf("起保日期 "),
  9177. res.msg.indexOf("地区 山西。") + 6
  9178. );
  9179. let time =
  9180. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  9181. this.jqstartDate = time;
  9182. this.jqendDate = this.oneYearPast1(time);
  9183. if (this.riskList.length > 0) {
  9184. for (let i = 0; i < this.riskList.length; i++) {
  9185. if (this.riskList[i].riskCode == "0507") {
  9186. this.riskList[i].startDate = time;
  9187. this.riskList[i].endDate = this.oneYearPast1(time);
  9188. }
  9189. }
  9190. }
  9191. let param = {
  9192. userId: this.userId,
  9193. quoteno: this.quoteno,
  9194. orderNo: this.orderno,
  9195. carInfo: this.carInfo,
  9196. insuredPersonInfo: this.insuredPersonInfo,
  9197. ownerInfo: this.ownerInfo,
  9198. policyHolderInfo: this.policyHolderInfo,
  9199. kindList: this.kindList,
  9200. riskList: this.riskList,
  9201. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  9202. };
  9203. return this.$api.letter[this.apiInterfaceName](param).then((res) => {
  9204. this.zhongmei(num, id);
  9205. });
  9206. } else if (!!res.data) {
  9207. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  9208. this.totalCompanyList[num].lastYearMsg = "";
  9209. let dat = res.data.warnMessageList;
  9210. dat.map((ele) => {
  9211. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  9212. });
  9213. }
  9214. this.totalCompanyList[num].quoteCode = 200;
  9215. this.totalCompanyList[num].result = res.data;
  9216. this.QuotationHistory();
  9217. } else {
  9218. this.totalCompanyList[num].quoteCode = "3";
  9219. this.totalCompanyList[num].msg = res.msg;
  9220. return;
  9221. }
  9222. });
  9223. },
  9224. // 大家报价
  9225. dajia(num, id) {
  9226. // let accidentalDrivingVo=[]
  9227. // if(this.dajiaaccidentalDrivingVo){
  9228. // accidentalDrivingVo.rideRiskCode=this.dajiaaccidentalDrivingVo.schemeNo;
  9229. // accidentalDrivingVo.rideRiskName=this.dajiaaccidentalDrivingVo.cvrgName;
  9230. // accidentalDrivingVo.quantity=this.dajiaaccidentalDrivingVo.quantity;
  9231. // }
  9232. let type = this.totalCompanyList[num].apiType;
  9233. let api = type == 2 ? "pythonquote" : "dajiaquote";
  9234. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  9235. let accidentalDrivingVo = this.totalCompanyList[num].programme.drivingList[0] || {}
  9236. let params = {
  9237. accidentalDrivingVo: accidentalDrivingVo,
  9238. orderNo: this.orderno,
  9239. companyId: id,
  9240. agreementId: this.totalCompanyList[num].agreementId,
  9241. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  9242. kinds: this.totalCompanyList[num].kindList || [],
  9243. risks: this.riskList || []
  9244. };
  9245. this.$api.letter[api](params).then((res) => {
  9246. this.totalCompanyList[num].msg = res.msg;
  9247. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  9248. this.totalCompanyList[num].quoteCode = "4";
  9249. this.totalCompanyList[num].msg = res.msg;
  9250. return;
  9251. } else if (
  9252. res.data == null &&
  9253. res.msg.indexOf("交强险平台返回") > -1 &&
  9254. res.msg.indexOf(";终保日期") > -1
  9255. ) {
  9256. this.totalCompanyList[num].lastYearMsg =
  9257. "<b>交强险</b><br>" +
  9258. res.msg.slice(
  9259. res.msg.indexOf("起保日期 "),
  9260. res.msg.indexOf("地区 山西。") + 6
  9261. );
  9262. let time =
  9263. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  9264. this.jqstartDate = time;
  9265. this.jqendDate = this.oneYearPast1(time);
  9266. if (this.riskList.length > 0) {
  9267. for (let i = 0; i < this.riskList.length; i++) {
  9268. if (this.riskList[i].riskCode == "0507") {
  9269. this.riskList[i].startDate = time;
  9270. this.riskList[i].endDate = this.oneYearPast1(time);
  9271. }
  9272. }
  9273. }
  9274. let param = {
  9275. userId: this.userId,
  9276. quoteno: this.quoteno,
  9277. orderNo: this.orderno,
  9278. carInfo: this.carInfo,
  9279. insuredPersonInfo: this.insuredPersonInfo,
  9280. ownerInfo: this.ownerInfo,
  9281. policyHolderInfo: this.policyHolderInfo,
  9282. kindList: this.kindList,
  9283. riskList: this.riskList,
  9284. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  9285. kinds: this.totalCompanyList[num].kindList,
  9286. risks: this.riskList
  9287. };
  9288. return this.$api.letter[this.apiInterfaceName](param).then((res) => {
  9289. this.dajia(num, id);
  9290. });
  9291. } else if (!!res.data) {
  9292. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  9293. this.totalCompanyList[num].lastYearMsg = "";
  9294. let dat = res.data.warnMessageList;
  9295. dat.map((ele) => {
  9296. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  9297. });
  9298. }
  9299. this.totalCompanyList[num].quoteCode = 200;
  9300. this.totalCompanyList[num].result = res.data;
  9301. this.QuotationHistory();
  9302. } else {
  9303. this.totalCompanyList[num].quoteCode = "3";
  9304. this.totalCompanyList[num].msg = res.msg;
  9305. return;
  9306. }
  9307. });
  9308. },
  9309. //华泰报价
  9310. huatai(num, id) {
  9311. let type = this.totalCompanyList[num].apiType;
  9312. let api = type == 2 ? "pythonquote" : "huataiquote";
  9313. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  9314. let params = {
  9315. accidentalDrivingVo:{},
  9316. orderNo: this.orderno,
  9317. companyId: id,
  9318. agreementId: this.totalCompanyList[num].agreementId,
  9319. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  9320. kinds: this.totalCompanyList[num].kindList || [],
  9321. risks: this.riskList || []
  9322. };
  9323. this.$api.letter[api](params).then((res) => {
  9324. this.totalCompanyList[num].msg = res.msg;
  9325. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  9326. this.totalCompanyList[num].quoteCode = "4";
  9327. this.totalCompanyList[num].msg = res.msg;
  9328. return;
  9329. } else if (
  9330. res.data == null &&
  9331. res.msg.indexOf("交强险平台返回") > -1 &&
  9332. res.msg.indexOf(";终保日期") > -1
  9333. ) {
  9334. //判断保司返回重复投保信息,进行默认赋值起终保日期,重新算费 后面联调需要调整
  9335. let time =
  9336. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  9337. this.jqstartDate = time;
  9338. this.jqendDate = this.oneYearPast1(time);
  9339. this.systartDate = time;
  9340. this.syendDate = this.oneYearPast1(time);
  9341. if (this.riskList.length > 0) {
  9342. for (let i = 0; i < this.riskList.length; i++) {
  9343. if (this.riskList[i].riskCode == "0507") {
  9344. this.riskList[i].startDate = time;
  9345. this.riskList[i].endDate = this.oneYearPast1(time);
  9346. } else if (this.riskList[i].riskCode == "0510") {
  9347. this.riskList[i].startDate = time;
  9348. this.riskList[i].endDate = this.oneYearPast1(time);
  9349. }
  9350. }
  9351. }
  9352. let param = {
  9353. userId: this.userId,
  9354. quoteno: this.quoteno,
  9355. orderNo: this.orderno,
  9356. carInfo: this.carInfo,
  9357. insuredPersonInfo: this.insuredPersonInfo,
  9358. ownerInfo: this.ownerInfo,
  9359. policyHolderInfo: this.policyHolderInfo,
  9360. kindList: this.kindList,
  9361. riskList: this.riskList,
  9362. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  9363. kinds: this.totalCompanyList[num].kindList || [],
  9364. risks: this.riskList || []
  9365. };
  9366. return this.$api.letter[this.apiInterfaceName](param).then((res) => {
  9367. this.huatai(num, id);
  9368. });
  9369. } else if (!!res.data) {
  9370. this.totalCompanyList[num].quoteCode = 200;
  9371. this.totalCompanyList[num].result = res.data;
  9372. this.QuotationHistory();
  9373. } else {
  9374. this.totalCompanyList[num].quoteCode = "3";
  9375. this.totalCompanyList[num].msg = res.msg;
  9376. return;
  9377. }
  9378. });
  9379. },
  9380. //紫金报价
  9381. zijin(num, id) {
  9382. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  9383. let params = {
  9384. accidentalDrivingVo: this.totalCompanyList[num].programme.drivingList || [],
  9385. orderNo: this.orderno,
  9386. companyId: id,
  9387. agreementId: this.totalCompanyList[num].agreementId,
  9388. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  9389. coefficient: this.totalCompanyList[num].coefficient,
  9390. kinds: this.totalCompanyList[num].kindList,
  9391. risks: this.riskList,
  9392. productId: this.productId
  9393. };
  9394. this.$api.letter.zijinquote(params).then((res) => {
  9395. this.totalCompanyList[num].msg = res.msg;
  9396. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  9397. this.totalCompanyList[num].quoteCode = "4";
  9398. this.totalCompanyList[num].msg = res.msg;
  9399. return;
  9400. } else if (
  9401. res.data == null &&
  9402. res.msg.indexOf("交强险平台返回") > -1 &&
  9403. res.msg.indexOf(";终保日期") > -1
  9404. ) {
  9405. let time =
  9406. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  9407. this.jqstartDate = time;
  9408. this.jqendDate = this.oneYearPast1(time);
  9409. this.systartDate = time;
  9410. this.syendDate = this.oneYearPast1(time);
  9411. if (this.riskList.length > 0) {
  9412. for (let i = 0; i < this.riskList.length; i++) {
  9413. if (this.riskList[i].riskCode == "0507") {
  9414. this.riskList[i].startDate = time;
  9415. this.riskList[i].endDate = this.oneYearPast1(time);
  9416. } else if (this.riskList[i].riskCode == "0510") {
  9417. this.riskList[i].startDate = time;
  9418. this.riskList[i].endDate = this.oneYearPast1(time);
  9419. }
  9420. }
  9421. }
  9422. let param = {
  9423. userId: this.userId,
  9424. quoteno: this.quoteno,
  9425. orderNo: this.orderno,
  9426. carInfo: this.carInfo,
  9427. insuredPersonInfo: this.insuredPersonInfo,
  9428. ownerInfo: this.ownerInfo,
  9429. policyHolderInfo: this.policyHolderInfo,
  9430. kindList: this.kindList,
  9431. riskList: this.riskList,
  9432. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  9433. };
  9434. return this.$api.letter[this.apiInterfaceName](param).then((res) => {
  9435. this.zijin(num, id);
  9436. });
  9437. } else if (!!res.data) {
  9438. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  9439. this.totalCompanyList[num].lastYearMsg = "";
  9440. let dat = res.data.warnMessageList;
  9441. dat.map((ele) => {
  9442. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  9443. });
  9444. }
  9445. this.totalCompanyList[num].quoteCode = 200;
  9446. this.totalCompanyList[num].result = res.data;
  9447. this.QuotationHistory();
  9448. } else {
  9449. this.totalCompanyList[num].quoteCode = "3";
  9450. this.totalCompanyList[num].msg = res.msg;
  9451. return;
  9452. }
  9453. });
  9454. },
  9455. //永诚报价
  9456. yongcheng(num, id) {
  9457. this.iscCrownerShow = false;
  9458. this.isInsuredShow = false;
  9459. this.isApplicantShow = false;
  9460. let accidentalDrivingVo = {};
  9461. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  9462. if (this.accidentForm.projectCode) {
  9463. let data = this.yongchengaccidentDataList.find(
  9464. (val) => val.projectCode == this.yongchengtemplateSelection
  9465. );
  9466. accidentalDrivingVo = {
  9467. ...data,
  9468. quantity: this.accidentForm.quantity
  9469. ? this.accidentForm.quantity
  9470. : "",
  9471. };
  9472. }
  9473. accidentalDrivingVo = this.totalCompanyList[num].programme.drivingList[0] || {}
  9474. let params = {
  9475. accidentalDrivingVo,
  9476. orderNo: this.orderno,
  9477. companyId: id,
  9478. cqryCdeJq: this.cqryCdeJq,
  9479. cqryCdeSy: this.cqryCdeSy,
  9480. renewalCodeJq: this.renewalCodeJq,
  9481. renewalCodeSy: this.renewalCodeSy,
  9482. agreementId: this.totalCompanyList[num].agreementId,
  9483. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  9484. kinds: this.totalCompanyList[num].kindList,
  9485. risks: this.riskList
  9486. };
  9487. this.$api.letter.yongchengquote(params).then((res) => {
  9488. this.totalCompanyList[num].msg = res.msg;
  9489. if (
  9490. res.data == null &&
  9491. res.msg.indexOf("车险平台返回") > -1 &&
  9492. res.msg.indexOf(";终保日期") > -1
  9493. ) {
  9494. let time =
  9495. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  9496. this.jqstartDate = time;
  9497. this.jqendDate = this.oneYearPast1(time);
  9498. if (this.riskList.length > 0) {
  9499. for (let i = 0; i < this.riskList.length; i++) {
  9500. if (this.riskList[i].riskCode == "0507") {
  9501. this.riskList[i].startDate = time;
  9502. this.riskList[i].endDate = this.oneYearPast1(time);
  9503. }
  9504. }
  9505. }
  9506. let param = {
  9507. userId: this.userId,
  9508. quoteno: this.quoteno,
  9509. orderNo: this.orderno,
  9510. carInfo: this.carInfo,
  9511. insuredPersonInfo: this.insuredPersonInfo,
  9512. ownerInfo: this.ownerInfo,
  9513. policyHolderInfo: this.policyHolderInfo,
  9514. kindList: this.totalCompanyList[num].kindList,
  9515. riskList: this.riskList,
  9516. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  9517. };
  9518. return this.$api.letter[this.apiInterfaceName](param).then((res) => {
  9519. this.yongcheng(num, id);
  9520. });
  9521. } else if (res.code == "200") {
  9522. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  9523. this.totalCompanyList[num].lastYearMsg = "";
  9524. let dat = res.data.warnMessageList;
  9525. dat.map((ele) => {
  9526. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  9527. });
  9528. }
  9529. this.totalCompanyList[num].quoteCode = 200;
  9530. this.totalCompanyList[num].result = res.data;
  9531. this.QuotationHistory();
  9532. } else if (res.code == "101") {
  9533. this.totalCompanyList[num].quoteCode = "101";
  9534. this.totalCompanyList[num].msg = res.msg;
  9535. this.cqryCdeJq = res.data.cqryCdeJq;
  9536. this.cqryCdeSy = res.data.cqryCdeSy;
  9537. let jq = res.data.renewalCodeJq.replace(/[\r\n]/g, "");
  9538. let jqBase64 = `data:image/png;base64,${jq}`;
  9539. this.renewalCodeJqImg = jqBase64;
  9540. if (res.data.renewalCodeSy) {
  9541. let sy = res.data.renewalCodeSy.replace(/[\r\n]/g, "");
  9542. let syBase64 = `data:image/png;base64,${sy}`;
  9543. this.renewalCodeSyImg = syBase64;
  9544. }
  9545. this.renewalCodedialogVisible = true;
  9546. } else if (res.code == "500") {
  9547. // this.iscCrownerShow=res.msg.indexOf("车主地区自动解析失败")!=-1?true:false
  9548. // this.isInsuredShow=res.msg.indexOf("被保人地区自动解析失败")!=-1?true:false
  9549. // this.isApplicantShow=res.msg.indexOf("投保人地区自动解析失败")!=-1?true:false
  9550. // this.ownerInfo.provinceData= this.iscCrownerShow?[]: this.ownerInfo.provinceData
  9551. // this.insuredPersonInfo.provinceData= this.isInsuredShow?[]: this.insuredPersonInfo.provinceData
  9552. // this.policyHolderInfo.provinceData= this.isApplicantShow?[]: this.policyHolderInfo.provinceData
  9553. this.totalCompanyList[num].quoteCode = "3";
  9554. this.totalCompanyList[num].msg = res.msg;
  9555. } else {
  9556. this.totalCompanyList[num].quoteCode = "3";
  9557. this.totalCompanyList[num].msg = res.msg;
  9558. return;
  9559. }
  9560. });
  9561. },
  9562. //国任报价
  9563. guoRen(num, id) {
  9564. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  9565. let guoRenSpecialAgreementVo = [];
  9566. this.zijinengageList.forEach((val) => {
  9567. guoRenSpecialAgreementVo.push({
  9568. clauses: val.clauseName,
  9569. clausesContext: val.clauses,
  9570. clauseCode: val.clauseCode,
  9571. riskCode: val.riskCode,
  9572. riskName: val.riskName,
  9573. });
  9574. });
  9575. let accidentalDrivingVo = {};
  9576. if (this.guoRenaccidentForm.goodsCode) {
  9577. accidentalDrivingVo = this.guoRenaccidentalDrivingVo;
  9578. }
  9579. accidentalDrivingVo = this.totalCompanyList[num].programme.drivingList[0] || {}
  9580. let params = {
  9581. accidentalDrivingVo,
  9582. orderNo: this.orderno,
  9583. companyId: id,
  9584. cqryCdeJq: this.cqryCdeJq,
  9585. cqryCdeSy: this.cqryCdeSy,
  9586. renewalCodeJq: this.renewalCodeJq,
  9587. renewalCodeSy: this.renewalCodeSy,
  9588. agreementId: this.totalCompanyList[num].agreementId,
  9589. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  9590. guoRenSpecialAgreementVo,
  9591. kinds: this.totalCompanyList[num].kindList,
  9592. risks: this.riskList,
  9593. productId: this.productId
  9594. };
  9595. this.$api.letter.pythonquote(params).then((res) => {
  9596. this.totalCompanyList[num].msg = res.msg;
  9597. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  9598. this.totalCompanyList[num].quoteCode = "4";
  9599. this.totalCompanyList[num].msg = res.msg;
  9600. return;
  9601. } else if (
  9602. res.data == null &&
  9603. res.msg.indexOf("车险平台返回") > -1 &&
  9604. res.msg.indexOf(";终保日期") > -1
  9605. ) {
  9606. let time =
  9607. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  9608. this.jqstartDate = time;
  9609. this.jqendDate = this.oneYearPast1(time);
  9610. this.systartDate = time;
  9611. this.syendDate = this.oneYearPast1(time);
  9612. if (this.riskList.length > 0) {
  9613. for (let i = 0; i < this.riskList.length; i++) {
  9614. if (this.riskList[i].riskCode == "0507") {
  9615. this.riskList[i].startDate = time;
  9616. this.riskList[i].endDate = this.oneYearPast1(time);
  9617. } else if (this.riskList[i].riskCode == "0510") {
  9618. this.riskList[i].startDate = time;
  9619. this.riskList[i].endDate = this.oneYearPast1(time);
  9620. }
  9621. }
  9622. }
  9623. let param = {
  9624. userId: this.userId,
  9625. quoteno: this.quoteno,
  9626. orderNo: this.orderno,
  9627. carInfo: this.carInfo,
  9628. insuredPersonInfo: this.insuredPersonInfo,
  9629. ownerInfo: this.ownerInfo,
  9630. policyHolderInfo: this.policyHolderInfo,
  9631. kindList: this.totalCompanyList[num].kindList,
  9632. riskList: this.riskList,
  9633. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  9634. };
  9635. return this.$api.letter[this.apiInterfaceName](param).then((res) => {
  9636. this.guoRen(num, id);
  9637. });
  9638. } else if (res.code == "200") {
  9639. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  9640. this.totalCompanyList[num].lastYearMsg = "";
  9641. let dat = res.data.warnMessageList;
  9642. dat.map((ele) => {
  9643. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  9644. });
  9645. }
  9646. this.totalCompanyList[num].quoteCode = 200;
  9647. this.totalCompanyList[num].result = res.data;
  9648. this.QuotationHistory();
  9649. } else if (res.code == "101") {
  9650. this.totalCompanyList[num].quoteCode = "101";
  9651. this.totalCompanyList[num].msg = res.msg;
  9652. this.cqryCdeJq = res.data.cqryCdeJq;
  9653. this.cqryCdeSy = res.data.cqryCdeSy;
  9654. let jq = res.data.renewalCodeJq.replace(/[\r\n]/g, "");
  9655. let jqBase64 = `data:image/png;base64,${jq}`;
  9656. this.renewalCodeJqImg = jqBase64;
  9657. if (res.data.renewalCodeSy) {
  9658. let sy = res.data.renewalCodeSy.replace(/[\r\n]/g, "");
  9659. let syBase64 = `data:image/png;base64,${sy}`;
  9660. this.renewalCodeSyImg = syBase64;
  9661. }
  9662. this.renewalCodedialogVisible = true;
  9663. } else {
  9664. this.totalCompanyList[num].quoteCode = "3";
  9665. this.totalCompanyList[num].msg = res.msg;
  9666. return;
  9667. }
  9668. });
  9669. },
  9670. //渤海报价
  9671. bohai(num, id) {
  9672. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  9673. let accidentalDrivingVo ={};
  9674. if (this.boHaiaccidentForm.projectCode) {
  9675. accidentalDrivingVo = {
  9676. // packageCode: this.boHaiaccidentForm.packageCode,
  9677. // productCode: this.boHaiaccidentDataList.find(
  9678. // (e) => e.packageCode == this.boHaiaccidentForm.packageCode
  9679. // ).productCode,
  9680. // copies: this.boHaiaccidentForm.copies,
  9681. ...this.boHaiaccidentDataList.find(
  9682. (e) => e.projectCode == this.boHaiaccidentForm.projectCode
  9683. ),
  9684. quantity: this.boHaiaccidentForm.copies
  9685. ? this.boHaiaccidentForm.copies
  9686. : "1",
  9687. }
  9688. }
  9689. accidentalDrivingVo = this.totalCompanyList[num].programme.drivingList[0] || {}
  9690. let params = {
  9691. accidentalDrivingVo,
  9692. orderNo: this.orderno,
  9693. companyId: id,
  9694. cqryCdeJq: this.cqryCdeJq,
  9695. cqryCdeSy: this.cqryCdeSy,
  9696. renewalCodeJq: this.renewalCodeJq,
  9697. renewalCodeSy: this.renewalCodeSy,
  9698. agreementId: this.totalCompanyList[num].agreementId,
  9699. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  9700. kinds: this.totalCompanyList[num].kindList,
  9701. risks: this.riskList,
  9702. userId: this.userId,
  9703. };
  9704. this.$api.letter.bohaiquote(params).then((res) => {
  9705. this.totalCompanyList[num].msg = res.msg;
  9706. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  9707. this.totalCompanyList[num].quoteCode = "4";
  9708. this.totalCompanyList[num].msg = res.msg;
  9709. return;
  9710. } else if (
  9711. res.data == null &&
  9712. res.msg.indexOf("车险平台返回") > -1 &&
  9713. res.msg.indexOf(";终保日期") > -1
  9714. ) {
  9715. let time =
  9716. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  9717. this.jqstartDate = time;
  9718. this.jqendDate = this.oneYearPast1(time);
  9719. this.systartDate = time;
  9720. this.syendDate = this.oneYearPast1(time);
  9721. if (this.riskList.length > 0) {
  9722. for (let i = 0; i < this.riskList.length; i++) {
  9723. if (this.riskList[i].riskCode == "0507") {
  9724. this.riskList[i].startDate = time;
  9725. this.riskList[i].endDate = this.oneYearPast1(time);
  9726. } else if (this.riskList[i].riskCode == "0510") {
  9727. this.riskList[i].startDate = time;
  9728. this.riskList[i].endDate = this.oneYearPast1(time);
  9729. }
  9730. }
  9731. }
  9732. let param = {
  9733. userId: this.userId,
  9734. quoteno: this.quoteno,
  9735. orderNo: this.orderno,
  9736. carInfo: this.carInfo,
  9737. insuredPersonInfo: this.insuredPersonInfo,
  9738. ownerInfo: this.ownerInfo,
  9739. policyHolderInfo: this.policyHolderInfo,
  9740. kindList: this.kindList,
  9741. riskList: this.riskList,
  9742. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  9743. };
  9744. return this.$api.letter[this.apiInterfaceName](param).then((res) => {
  9745. this.bohai(num, id);
  9746. });
  9747. } else if (res.code == "200") {
  9748. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  9749. this.totalCompanyList[num].lastYearMsg = "";
  9750. let dat = res.data.warnMessageList;
  9751. dat.map((ele) => {
  9752. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  9753. });
  9754. }
  9755. this.totalCompanyList[num].quoteCode = 200;
  9756. this.totalCompanyList[num].result = res.data;
  9757. this.QuotationHistory();
  9758. } else if (res.code == "101") {
  9759. this.totalCompanyList[num].quoteCode = "101";
  9760. this.totalCompanyList[num].msg = res.msg;
  9761. this.cqryCdeJq = res.data.cqryCdeJq;
  9762. this.cqryCdeSy = res.data.cqryCdeSy;
  9763. let jq = res.data.renewalCodeJq.replace(/[\r\n]/g, "");
  9764. let jqBase64 = `data:image/png;base64,${jq}`;
  9765. this.renewalCodeJqImg = jqBase64;
  9766. if (res.data.renewalCodeSy) {
  9767. let sy = res.data.renewalCodeSy.replace(/[\r\n]/g, "");
  9768. let syBase64 = `data:image/png;base64,${sy}`;
  9769. this.renewalCodeSyImg = syBase64;
  9770. }
  9771. this.renewalCodedialogVisible = true;
  9772. } else {
  9773. this.totalCompanyList[num].quoteCode = "3";
  9774. this.totalCompanyList[num].msg = res.msg;
  9775. return;
  9776. }
  9777. });
  9778. },
  9779. // 爬虫对接
  9780. quoteInsurance(num, id, namesimple, apiType) {
  9781. console.log(apiType, 'apiType')
  9782. let api = apiType == 2 ? "pythonquote" : "";
  9783. let ccidenttype = this.totalCompanyList[num].cnName;
  9784. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  9785. // accidentalDrivingVo = this.totalCompanyList[num].programme.drivingList[0] || {}
  9786. let params = {
  9787. // accidentalDrivingVo: this[ccidenttype + "accidentalDrivingVo"],
  9788. accidentalDrivingVo: this.totalCompanyList[num].programme.drivingList[0] || {},
  9789. orderNo: this.orderno,
  9790. companyId: id,
  9791. userId: this.userId,
  9792. agreementId: this.totalCompanyList[num].agreementId,
  9793. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  9794. kinds: this.totalCompanyList[num].kindList || [],
  9795. risks: this.riskList || [],
  9796. productId: this.productId
  9797. };
  9798. if (namesimple == "中国人寿" && this.lastCompanyId) {
  9799. params.discount = this.totalCompanyList[num].discount;
  9800. params.lastCompanyId = this.lastCompanyId;
  9801. }
  9802. if (
  9803. namesimple == "华农财险" &&
  9804. this.huanongaccidentalDrivingVo.quantity
  9805. ) {
  9806. params.accidentalDrivingVo.quantity = this.accidentFormHN.quantity;
  9807. // params.accidentalDrivingVo.allQuantity = this.accidentFormHN.allQuantity;
  9808. }
  9809. this.$api.letter[api] (params).then((res) => {
  9810. this.totalCompanyList[num].msg = res.msg;
  9811. switch (namesimple) {
  9812. case "安盛天平":
  9813. case "诚泰财险":
  9814. case "泰康财险":
  9815. case "中国人寿":
  9816. case "恒邦财险":
  9817. case "华农财险":
  9818. case "太平财险":
  9819. if (!!res.data) {
  9820. if (
  9821. res.data.warnMessageList &&
  9822. res.data.warnMessageList.length > 0
  9823. ) {
  9824. this.totalCompanyList[num].lastYearMsg = "";
  9825. let dat = res.data.warnMessageList;
  9826. dat.map((ele) => {
  9827. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  9828. });
  9829. }
  9830. if (res.data.predictInfo && res.data.predictInfo.length > 0) {
  9831. this.totalCompanyList[num].predictInfo = res.data.predictInfo;
  9832. }
  9833. this.totalCompanyList[num].quoteCode = 200;
  9834. this.totalCompanyList[num].result = res.data;
  9835. if (namesimple == "中国人寿" && res.data.companyId) {
  9836. this.lastCompanyId = res.data.companyId;
  9837. }
  9838. this.QuotationHistory();
  9839. } else {
  9840. this.totalCompanyList[num].quoteCode = "3";
  9841. this.totalCompanyList[num].msg = res.msg;
  9842. return;
  9843. }
  9844. break;
  9845. case "众安财险":
  9846. if (!!res.data) {
  9847. if (res.data.tips == "需要验车") {
  9848. this.$notify.error({
  9849. title: "通融单",
  9850. duration: 0,
  9851. dangerouslyUseHTMLString: true,
  9852. message: `<div> ${res.data.warnMessageList
  9853. .map((item) => {
  9854. return `<p>${item}</p>`;
  9855. })
  9856. .join("")}
  9857. </div>`,
  9858. });
  9859. }
  9860. if (
  9861. res.data.warnMessageList &&
  9862. res.data.warnMessageList.length > 0
  9863. ) {
  9864. this.totalCompanyList[num].lastYearMsg = "";
  9865. let dat = res.data.warnMessageList;
  9866. dat.map((ele) => {
  9867. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  9868. });
  9869. }
  9870. this.totalCompanyList[num].quoteCode = 200;
  9871. this.totalCompanyList[num].result = res.data;
  9872. this.QuotationHistory();
  9873. } else {
  9874. this.totalCompanyList[num].quoteCode = "3";
  9875. this.totalCompanyList[num].msg = res.msg;
  9876. return;
  9877. }
  9878. break;
  9879. default:
  9880. break;
  9881. }
  9882. });
  9883. },
  9884. //安盛天平
  9885. ansheng(num, id, namesimple) {
  9886. this.quoteInsurance(
  9887. num,
  9888. id,
  9889. namesimple,
  9890. this.totalCompanyList[num].apiType
  9891. );
  9892. },
  9893. //众安
  9894. zhongan(num, id, namesimple) {
  9895. this.quoteInsurance(
  9896. num,
  9897. id,
  9898. namesimple,
  9899. this.totalCompanyList[num].apiType
  9900. );
  9901. },
  9902. //人寿
  9903. renshou(num, id, namesimple) {
  9904. this.quoteInsurance(
  9905. num,
  9906. id,
  9907. namesimple,
  9908. this.totalCompanyList[num].apiType
  9909. );
  9910. },
  9911. //恒邦
  9912. hengbang(num, id, namesimple) {
  9913. this.quoteInsurance(
  9914. num,
  9915. id,
  9916. namesimple,
  9917. this.totalCompanyList[num].apiType
  9918. );
  9919. },
  9920. //诚泰
  9921. chengtai(num, id, namesimple) {
  9922. this.quoteInsurance(
  9923. num,
  9924. id,
  9925. namesimple,
  9926. this.totalCompanyList[num].apiType
  9927. );
  9928. },
  9929. //太平
  9930. taiping(num, id, namesimple) {
  9931. this.quoteInsurance(
  9932. num,
  9933. id,
  9934. namesimple,
  9935. this.totalCompanyList[num].apiType
  9936. );
  9937. },
  9938. //华农
  9939. huanong(num, id, namesimple) {
  9940. this.quoteInsurance(
  9941. num,
  9942. id,
  9943. namesimple,
  9944. this.totalCompanyList[num].apiType
  9945. );
  9946. },
  9947. capTypedictTag(val, option) {
  9948. if (option.find((item) => item.dictValue == val)) {
  9949. return option.find((item) => item.dictValue == val).dictTag;
  9950. } else {
  9951. return "-";
  9952. }
  9953. },
  9954. // 爬虫对接
  9955. qoutedetail(companyId) {
  9956. let params = {
  9957. companyId: companyId,
  9958. };
  9959. this.$api.letter.getByCompanyId(params).then((res) => {
  9960. if (res.code == "200") {
  9961. var data = res.data;
  9962. data.kindinfo.map((ele, index) => {
  9963. switch (ele.kindCode) {
  9964. case "A":
  9965. ele.amount = "投保";
  9966. break;
  9967. case "D4":
  9968. case "SY_FJ_YBW2":
  9969. ele.unitAmount = this.toChinesNum(ele.unitAmount);
  9970. break;
  9971. case "MJ1":
  9972. case "MJ2":
  9973. case "MJ3":
  9974. case "MJ4":
  9975. ele.deductibleRate = ele.deductibleRate + "%";
  9976. break;
  9977. default:
  9978. ele.amount = this.toChinesNum(ele.amount);
  9979. }
  9980. return ele;
  9981. });
  9982. if (
  9983. (data.carinfo.carnature && data.carinfo.carnature == "02") ||
  9984. data.carinfo.carnature == "非营业"
  9985. ) {
  9986. data.carinfo.vehicleUse = this.capTypedictTag(
  9987. data.carinfo.vehicleUse,
  9988. this.outOfBusinessVehicleUseoptions
  9989. );
  9990. } else {
  9991. data.carinfo.vehicleUse = this.capTypedictTag(
  9992. data.carinfo.vehicleUse,
  9993. this.businessVehicleUseoptions
  9994. );
  9995. }
  9996. data.carinfo.carnature = this.capTypedictTag(
  9997. data.carinfo.carnature,
  9998. this.natureOfVehicleUseoptions
  9999. );
  10000. data.carinfo.cartype = data.carinfo.cartype
  10001. ? this.capTypedictTag(
  10002. data.carinfo.cartype,
  10003. this.trafficManagementVehicleTypeoptions
  10004. )
  10005. : "";
  10006. data.carinfo.cimodelclass = data.carinfo.cimodelclass
  10007. ? this.capTypedictTag(
  10008. data.carinfo.cimodelclass,
  10009. this.vehicleTypeoptions
  10010. )
  10011. : "";
  10012. data.carinfo.energyType = data.carinfo.energyType
  10013. ? this.capTypedictTag(
  10014. data.carinfo.energyType,
  10015. this.energyTypeoptions
  10016. )
  10017. : "";
  10018. this.queryOrders = data;
  10019. //赋值费用信息
  10020. // this.feeDetailInfo=data.orderFeeResult;
  10021. }
  10022. });
  10023. this.$refs.detailsDialog.setBackupVisible(true);
  10024. },
  10025. imageUpload() {
  10026. this.imageUploaddialogVisible = true;
  10027. // this.$refs.imageDialog.setBackupVisible(true);
  10028. },
  10029. tabLiScroll(id, idx) {
  10030. this.tabLiIndex = idx;
  10031. document.getElementById(id).scrollIntoView({ behavior: "smooth" });
  10032. },
  10033. //影像上传
  10034. drivingupload(file, imageIdList, imgurl, type) {
  10035. let that = this;
  10036. let size = file.size / 1024 / 1024 < 5;
  10037. const isJPG =
  10038. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  10039. if (!size) {
  10040. this.$message.error("上传图片大小不能超过 5MB!");
  10041. this[imgurl] = [];
  10042. return false;
  10043. }
  10044. if (!isJPG) {
  10045. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  10046. this[imgurl] = [];
  10047. return false;
  10048. }
  10049. this[imgurl].push(file);
  10050. var file = file.raw;
  10051. const params = new FormData(); // 声明formData数据类型
  10052. params.append("multipartFile", file);
  10053. params.append("type", "image");
  10054. this.$api.letter.uploadFile(params).then((res) => {
  10055. if (res.code == "200") {
  10056. if (this[imageIdList].some((v) => v.imageType == type)) {
  10057. this[imageIdList].map((val) => {
  10058. if (val.imageType == type) {
  10059. val.imageId = res.data.id;
  10060. }
  10061. });
  10062. } else {
  10063. this[imageIdList].push({
  10064. imageId: res.data.id,
  10065. imageType: type,
  10066. });
  10067. }
  10068. }
  10069. });
  10070. },
  10071. imageEcho(quotenos) {
  10072. //影像查询
  10073. this.$api.letter.findByQuoteNo(quotenos).then((res) => {
  10074. if (res.code == "200") {
  10075. this.imageList1 = [];
  10076. this.imageList2 = [];
  10077. this.imageList3 = [];
  10078. this.imageList4 = [];
  10079. this.imageList5 = [];
  10080. this.imageList6 = [];
  10081. this.imgList1 = [];
  10082. this.imgList2 = [];
  10083. this.imgList3 = [];
  10084. this.imgList4 = [];
  10085. this.imgList5 = [];
  10086. this.imgList6 = [];
  10087. this.imgList7 = [];
  10088. this.imgList8 = [];
  10089. this.imgList9 = [];
  10090. this.imgList10 = [];
  10091. this.imgList11 = [];
  10092. this.imgList12 = [];
  10093. this.imgList13 = [];
  10094. this.imgList14 = [];
  10095. this.imgList15 = [];
  10096. this.imgList16 = [];
  10097. this.imgList17 = [];
  10098. this.imgList18 = [];
  10099. this.imgList19 = [];
  10100. this.imgList20 = [];
  10101. this.imgList21 = [];
  10102. this.imgList22 = [];
  10103. this.imgList23 = [];
  10104. this.imgList24 = [];
  10105. Object.keys(res.data).forEach((keys) => {
  10106. if (res.data[keys].url) {
  10107. res.data[keys].url = process.env.BASE_URL + res.data[keys].url;
  10108. switch (keys) {
  10109. case "C01":
  10110. this.imageList1.push({
  10111. imageId: res.data[keys].imageId,
  10112. imageType: res.data[keys].imageType,
  10113. });
  10114. this.imgList1.push(res.data[keys]);
  10115. break;
  10116. case "D01":
  10117. this.imageList1.push({
  10118. imageId: res.data[keys].imageId,
  10119. imageType: res.data[keys].imageType,
  10120. });
  10121. this.imgList2.push(res.data[keys]);
  10122. break;
  10123. case "C02":
  10124. this.imageList2.push({
  10125. imageId: res.data[keys].imageId,
  10126. imageType: res.data[keys].imageType,
  10127. });
  10128. this.imgList3.push(res.data[keys]);
  10129. break;
  10130. case "D02":
  10131. this.imageList2.push({
  10132. imageId: res.data[keys].imageId,
  10133. imageType: res.data[keys].imageType,
  10134. });
  10135. this.imgList4.push(res.data[keys]);
  10136. break;
  10137. case "C03":
  10138. this.imageList3.push({
  10139. imageId: res.data[keys].imageId,
  10140. imageType: res.data[keys].imageType,
  10141. });
  10142. this.imgList5.push(res.data[keys]);
  10143. break;
  10144. case "D03":
  10145. this.imageList3.push({
  10146. imageId: res.data[keys].imageId,
  10147. imageType: res.data[keys].imageType,
  10148. });
  10149. this.imgList6.push(res.data[keys]);
  10150. break;
  10151. case "C04":
  10152. this.imageList4.push({
  10153. imageId: res.data[keys].imageId,
  10154. imageType: res.data[keys].imageType,
  10155. });
  10156. this.imgList7.push(res.data[keys]);
  10157. break;
  10158. case "D04":
  10159. this.imageList4.push({
  10160. imageId: res.data[keys].imageId,
  10161. imageType: res.data[keys].imageType,
  10162. });
  10163. this.imgList8.push(res.data[keys]);
  10164. break;
  10165. case "XC00":
  10166. this.imageList5.push({
  10167. imageId: res.data[keys].imageId,
  10168. imageType: res.data[keys].imageType,
  10169. });
  10170. this.imgList9.push(res.data[keys]);
  10171. break;
  10172. case "GC00":
  10173. this.imageList5.push({
  10174. imageId: res.data[keys].imageId,
  10175. imageType: res.data[keys].imageType,
  10176. });
  10177. this.imgList10.push(res.data[keys]);
  10178. break;
  10179. case "GX00":
  10180. this.imageList5.push({
  10181. imageId: res.data[keys].imageId,
  10182. imageType: res.data[keys].imageType,
  10183. });
  10184. this.imgList11.push(res.data[keys]);
  10185. break;
  10186. case "TAR05":
  10187. this.imageList1.push({
  10188. imageId: res.data[keys].imageId,
  10189. imageType: res.data[keys].imageType,
  10190. });
  10191. this.imgList12.push(res.data[keys]);
  10192. break;
  10193. case "C0500":
  10194. this.imageList6.push({
  10195. imageId: res.data[keys].imageId,
  10196. imageType: res.data[keys].imageType,
  10197. });
  10198. this.imgList13.push(res.data[keys]);
  10199. break;
  10200. case "C0501":
  10201. this.imageList6.push({
  10202. imageId: res.data[keys].imageId,
  10203. imageType: res.data[keys].imageType,
  10204. });
  10205. this.imgList14.push(res.data[keys]);
  10206. break;
  10207. case "C0502":
  10208. this.imageList6.push({
  10209. imageId: res.data[keys].imageId,
  10210. imageType: res.data[keys].imageType,
  10211. });
  10212. this.imgList15.push(res.data[keys]);
  10213. break;
  10214. case "C0503":
  10215. this.imageList6.push({
  10216. imageId: res.data[keys].imageId,
  10217. imageType: res.data[keys].imageType,
  10218. });
  10219. this.imgList16.push(res.data[keys]);
  10220. break;
  10221. case "C0504":
  10222. this.imageList6.push({
  10223. imageId: res.data[keys].imageId,
  10224. imageType: res.data[keys].imageType,
  10225. });
  10226. this.imgList17.push(res.data[keys]);
  10227. break;
  10228. case "C0506":
  10229. this.imageList6.push({
  10230. imageId: res.data[keys].imageId,
  10231. imageType: res.data[keys].imageType,
  10232. });
  10233. this.imgList18.push(res.data[keys]);
  10234. break;
  10235. case "C0507":
  10236. this.imageList6.push({
  10237. imageId: res.data[keys].imageId,
  10238. imageType: res.data[keys].imageType,
  10239. });
  10240. this.imgList19.push(res.data[keys]);
  10241. break;
  10242. case "C0505":
  10243. this.imageList6.push({
  10244. imageId: res.data[keys].imageId,
  10245. imageType: res.data[keys].imageType,
  10246. });
  10247. this.imgList20.push(res.data[keys]);
  10248. break;
  10249. case "C0508":
  10250. this.imageList6.push({
  10251. imageId: res.data[keys].imageId,
  10252. imageType: res.data[keys].imageType,
  10253. });
  10254. this.imgList21.push(res.data[keys]);
  10255. break;
  10256. case "C0509":
  10257. this.imageList6.push({
  10258. imageId: res.data[keys].imageId,
  10259. imageType: res.data[keys].imageType,
  10260. });
  10261. this.imgList22.push(res.data[keys]);
  10262. break;
  10263. case "C0510":
  10264. this.imageList6.push({
  10265. imageId: res.data[keys].imageId,
  10266. imageType: res.data[keys].imageType,
  10267. });
  10268. this.imgList23.push(res.data[keys]);
  10269. break;
  10270. case "LAST_INSURANCE_POLICY":
  10271. this.imageList6.push({
  10272. imageId: res.data[keys].imageId,
  10273. imageType: res.data[keys].imageType,
  10274. });
  10275. this.imgList24.push(res.data[keys]);
  10276. break;
  10277. default:
  10278. break;
  10279. }
  10280. }
  10281. });
  10282. } else {
  10283. this.$message({ message: res.msg, type: "info" });
  10284. }
  10285. });
  10286. },
  10287. policyUpload() {
  10288. this.policyNumberForm.jqPolicyList = !this.policyNumberForm.jqPolicyList
  10289. ? []
  10290. : this.policyNumberForm.jqPolicyList;
  10291. this.policyNumberForm.jqSignList = !this.policyNumberForm.jqSignList
  10292. ? []
  10293. : this.policyNumberForm.jqSignList;
  10294. this.policyNumberForm.syPolicyList = !this.policyNumberForm.syPolicyList
  10295. ? []
  10296. : this.policyNumberForm.syPolicyList;
  10297. this.policyNumberForm.noPolicyList = !this.policyNumberForm.noPolicyList
  10298. ? []
  10299. : this.policyNumberForm.noPolicyList;
  10300. this.policyUploaddialogVisible = true;
  10301. },
  10302. cancelorder(item) {
  10303. this.$api.letter.zijincancelorder({ companyId: item.id }).then((res) => {
  10304. if (res.code == 200) {
  10305. this.$message({
  10306. message: res.msg,
  10307. type: "success",
  10308. });
  10309. this.QuotationHistory();
  10310. }
  10311. });
  10312. },
  10313. hbsubmitdialog(data, index) {
  10314. this.typeDialogIndex = index // 当前的公司index
  10315. if (this.imageList1.length == 0 && this.imageList2.length == 0) {
  10316. this.$message({ message: "影像不全,先上传影像", type: "error" });
  10317. return;
  10318. }
  10319. this.companyId = data.result.companyId;
  10320. this.apiType = data.apiType;
  10321. this.hbsubmitdialogVisible = true;
  10322. this.contributingState = false;
  10323. if (data.namesimple == "紫金财险") {
  10324. this.$api.letter
  10325. .zijinqueryClauseData({ companyId: this.companyId })
  10326. .then((res) => {
  10327. this.zijinengageListData = res.data;
  10328. });
  10329. }
  10330. if (data.namesimple == "华泰财险") {
  10331. this.zijinengageList = [];
  10332. this.$api.letter
  10333. .huataiqueryClauseData({ companyId: this.companyId })
  10334. .then((res) => {
  10335. res.data.forEach((val) => {
  10336. val.clauseCode = val.engageCode;
  10337. val.clauseName = val.engageTitle;
  10338. val.clauseContent = val.engageDetail;
  10339. val.clauses = val.engageDetail;
  10340. });
  10341. this.zijinengageListData = res.data;
  10342. this.zijinengageListData.forEach((val) => {
  10343. this.$nextTick(() => {
  10344. if (val.optType == "2") {
  10345. this.zijinengageList.push(val);
  10346. this.$refs.expandTablePro.toggleRowSelection(val, true);
  10347. }
  10348. });
  10349. });
  10350. });
  10351. } else {
  10352. this.zijinengageListData = [];
  10353. }
  10354. // switch (data.namesimple) {
  10355. // case "紫金财险":
  10356. // this.$api.letter.zijinqueryClauseData({ companyId: this.companyId }).then(res => {
  10357. // this.zijinengageListData = res.data;
  10358. // });
  10359. // break;
  10360. // default:
  10361. // break;
  10362. // }
  10363. },
  10364. hbsubmit() {
  10365. this.hbsubmitdialogVisible = false;
  10366. this.contributingState = false;
  10367. this.$api.letter
  10368. .getByCompanyId({ companyId: this.companyId })
  10369. .then(async (res) => {
  10370. if (res.code == 200) {
  10371. var data = res.data;
  10372. this.queryOrders = data;
  10373. const loading = this.$loading({
  10374. lock: true,
  10375. text: "Loading",
  10376. spinner: "el-icon-loading",
  10377. background: "rgba(0, 0, 0, 0.7)",
  10378. });
  10379. switch (this.queryOrders.inscompany) {
  10380. case "永安财险":
  10381. let api = "";
  10382. api =
  10383. this.apiType == 2
  10384. ? "pythonsubmitImage"
  10385. : "insyongansubmitImage";
  10386. await this.$api.letter[api]({
  10387. companyId: this.companyId,
  10388. }).then((res) => {
  10389. if (res.code == "200") {
  10390. var _this = this;
  10391. let api1 = "";
  10392. api1 = this.apiType == 2 ? "pythonaudit" : "yonganaudit";
  10393. this.$api.letter[api1]({
  10394. companyId: this.companyId,
  10395. }).then((res) => {
  10396. var _this = this;
  10397. if (res.code == "200") {
  10398. loading.close();
  10399. this.$message({
  10400. message: "核保成功",
  10401. type: "success",
  10402. });
  10403. this.QuotationHistory();
  10404. _this.$api.letter
  10405. .getByCompanyId({ companyId: this.companyId })
  10406. .then((res) => {
  10407. _this.orderstatus = res.data.orderstatus; //订单状态
  10408. _this.underwritingdialogVisible = true;
  10409. let indexid = this.totalCompanyList.findIndex(
  10410. (item) =>
  10411. item.namesimple == this.queryOrders.inscompany
  10412. );
  10413. this.totalCompanyList[indexid].orderstatus =
  10414. res.data.orderstatus;
  10415. });
  10416. } else {
  10417. loading.close();
  10418. this.$message({
  10419. showClose: true,
  10420. message:
  10421. this.queryOrders.inscompany + "提核--:" + res.msg,
  10422. type: "error",
  10423. duration: 0,
  10424. });
  10425. }
  10426. });
  10427. } else {
  10428. this.$message({
  10429. message: this.queryOrders.inscompany + "影像:" + res.msg,
  10430. type: "error",
  10431. duration: 7000,
  10432. });
  10433. loading.close();
  10434. }
  10435. });
  10436. break;
  10437. case "中煤财险":
  10438. await this.$api.letter
  10439. .insZhongmeisubmitImage({
  10440. companyId: this.companyId,
  10441. })
  10442. .then((res) => {
  10443. if (res.code == "200") {
  10444. var _this = this;
  10445. _this.$api.letter
  10446. .Zhongmeiaudit({
  10447. companyId: this.companyId,
  10448. jqappoint: "",
  10449. syappoint: "",
  10450. })
  10451. .then((res) => {
  10452. if (res.code == "200") {
  10453. loading.close();
  10454. _this.$message({
  10455. message: "核保成功",
  10456. type: "success",
  10457. });
  10458. this.QuotationHistory();
  10459. _this.$api.letter
  10460. .getByCompanyId({ companyId: this.companyId })
  10461. .then((res) => {
  10462. _this.orderstatus = res.data.orderstatus; //订单状态
  10463. _this.underwritingdialogVisible = true;
  10464. let indexid = this.totalCompanyList.findIndex(
  10465. (item) =>
  10466. item.namesimple ==
  10467. this.queryOrders.inscompany
  10468. );
  10469. this.totalCompanyList[indexid].orderstatus =
  10470. res.data.orderstatus;
  10471. });
  10472. } else {
  10473. loading.close();
  10474. _this.$message({
  10475. showClose: true,
  10476. message:
  10477. this.queryOrders.inscompany +
  10478. "提核--:" +
  10479. res.msg,
  10480. type: "error",
  10481. duration: 0,
  10482. });
  10483. _this.$api.letter
  10484. .getByCompanyId({ companyId: this.companyId })
  10485. .then((res) => {
  10486. _this.orderstatus = res.data.orderstatus; //订单状态
  10487. });
  10488. }
  10489. });
  10490. } else {
  10491. this.$message({
  10492. message:
  10493. this.queryOrders.inscompany + "影像--:" + res.msg,
  10494. type: "error",
  10495. duration: 7000,
  10496. });
  10497. loading.close();
  10498. }
  10499. });
  10500. break;
  10501. case "华泰财险":
  10502. let HtApiImage = "";
  10503. HtApiImage =
  10504. this.apiType == 2
  10505. ? "pythonsubmitImage"
  10506. : "insHuataisubmitImage";
  10507. await this.$api.letter[HtApiImage]({
  10508. [this.apiType == 2 ? "subOrderNo" : "companyId"]:
  10509. this.companyId,
  10510. }).then((res) => {
  10511. if (res.code == "200") {
  10512. var _this = this;
  10513. let HtApiaudit = "";
  10514. HtApiaudit =
  10515. this.apiType == 2 ? "pythonaudit" : "huataiaudit";
  10516. let engageList = [];
  10517. this.zijinengageList.forEach((val) => {
  10518. engageList.push({
  10519. engageCode: val.clauseCode,
  10520. engageDetail: val.clauses,
  10521. engageTitle: val.clauseName,
  10522. riskCode: val.riskCode,
  10523. });
  10524. });
  10525. _this.$api.letter[HtApiaudit]({
  10526. [this.apiType == 2 ? "subOrderNo" : "companyId"]:
  10527. this.companyId,
  10528. engageList,
  10529. }).then((res) => {
  10530. if (res.code == "200") {
  10531. loading.close();
  10532. _this.$message({
  10533. message: "核保成功",
  10534. type: "success",
  10535. });
  10536. this.QuotationHistory();
  10537. _this.$api.letter
  10538. .getByCompanyId({ companyId: this.companyId })
  10539. .then((res) => {
  10540. _this.orderstatus = res.data.orderstatus; //订单状态
  10541. _this.underwritingdialogVisible = true;
  10542. let indexid = this.totalCompanyList.findIndex(
  10543. (item) =>
  10544. item.namesimple == this.queryOrders.inscompany
  10545. );
  10546. this.totalCompanyList[indexid].orderstatus =
  10547. res.data.orderstatus;
  10548. });
  10549. } else {
  10550. loading.close();
  10551. _this.$message({
  10552. showClose: true,
  10553. message:
  10554. this.queryOrders.inscompany + "提核--:" + res.msg,
  10555. type: "error",
  10556. duration: 0,
  10557. });
  10558. _this.$api.letter
  10559. .getByCompanyId({ companyId: this.companyId })
  10560. .then((res) => {
  10561. _this.orderstatus = res.data.orderstatus; //订单状态
  10562. });
  10563. }
  10564. });
  10565. } else {
  10566. this.$message({
  10567. message:
  10568. this.queryOrders.inscompany + "影像--:" + res.msg,
  10569. type: "error",
  10570. duration: 7000,
  10571. });
  10572. loading.close();
  10573. }
  10574. });
  10575. break;
  10576. case "紫金财险":
  10577. await this.$api.letter
  10578. .zijinsubmitImage({
  10579. companyId: this.companyId,
  10580. })
  10581. .then((res) => {
  10582. if (res.code == "200") {
  10583. var _this = this;
  10584. _this.$api.letter
  10585. .zijinaudit({
  10586. companyId: this.companyId,
  10587. engageList: this.zijinengageList,
  10588. })
  10589. .then((res) => {
  10590. if (res.code == "200") {
  10591. loading.close();
  10592. _this.$message({
  10593. message: "核保成功",
  10594. type: "success",
  10595. });
  10596. this.QuotationHistory();
  10597. _this.$api.letter
  10598. .getByCompanyId({ companyId: this.companyId })
  10599. .then((res) => {
  10600. _this.orderstatus = res.data.orderstatus; //订单状态
  10601. _this.underwritingdialogVisible = true;
  10602. let indexid = this.totalCompanyList.findIndex(
  10603. (item) =>
  10604. item.namesimple ==
  10605. this.queryOrders.inscompany
  10606. );
  10607. this.totalCompanyList[indexid].orderstatus =
  10608. res.data.orderstatus;
  10609. });
  10610. } else {
  10611. loading.close();
  10612. _this.$message({
  10613. showClose: true,
  10614. dangerouslyUseHTMLString: true,
  10615. message:
  10616. this.queryOrders.inscompany +
  10617. "提核--:" +
  10618. res.msg,
  10619. type: "error",
  10620. duration: 0,
  10621. });
  10622. _this.$api.letter
  10623. .getByCompanyId({ companyId: this.companyId })
  10624. .then((res) => {
  10625. _this.orderstatus = res.data.orderstatus; //订单状态
  10626. });
  10627. }
  10628. });
  10629. } else {
  10630. this.$message({
  10631. message:
  10632. this.queryOrders.inscompany + "影像--:" + res.msg,
  10633. type: "error",
  10634. duration: 7000,
  10635. });
  10636. loading.close();
  10637. }
  10638. });
  10639. break;
  10640. case "国任财险":
  10641. await this.$api.letter
  10642. .insguorensubmitImage({
  10643. companyId: this.companyId,
  10644. })
  10645. .then((res) => {
  10646. if (res.code == "200") {
  10647. var _this = this;
  10648. _this.$api.letter
  10649. .gunrenaudit({
  10650. companyId: this.companyId,
  10651. })
  10652. .then((res) => {
  10653. if (res.code == "200") {
  10654. loading.close();
  10655. _this.cqryCdeJq = "";
  10656. _this.cqryCdeSy = "";
  10657. _this.renewalCodeJq = "";
  10658. _this.renewalCodeSy = "";
  10659. this.$message({
  10660. message: "核保成功",
  10661. type: "success",
  10662. });
  10663. this.QuotationHistory();
  10664. _this.$api.letter
  10665. .getByCompanyId({ companyId: this.companyId })
  10666. .then((res) => {
  10667. _this.orderstatus = res.data.orderstatus; //订单状态
  10668. _this.underwritingdialogVisible = true;
  10669. let indexid = this.totalCompanyList.findIndex(
  10670. (item) =>
  10671. item.namesimple ==
  10672. this.queryOrders.inscompany
  10673. );
  10674. this.totalCompanyList[indexid].orderstatus =
  10675. res.data.orderstatus;
  10676. });
  10677. } else {
  10678. loading.close();
  10679. this.$message({
  10680. showClose: true,
  10681. message: res.msg,
  10682. type: "error",
  10683. duration: 0,
  10684. });
  10685. }
  10686. });
  10687. } else {
  10688. loading.close();
  10689. this.$message({
  10690. message: res.msg,
  10691. type: "error",
  10692. duration: 7000,
  10693. });
  10694. }
  10695. });
  10696. break;
  10697. case "渤海财险":
  10698. await this.$api.letter
  10699. .insbohaisubmitImage({
  10700. companyId: this.companyId,
  10701. })
  10702. .then((res) => {
  10703. if (res.code == "200") {
  10704. var _this = this;
  10705. _this.$api.letter
  10706. .bohaiaudit({
  10707. companyId: this.companyId,
  10708. })
  10709. .then((res) => {
  10710. if (res.code == "200") {
  10711. loading.close();
  10712. _this.cqryCdeJq = "";
  10713. _this.cqryCdeSy = "";
  10714. _this.renewalCodeJq = "";
  10715. _this.renewalCodeSy = "";
  10716. this.$message({
  10717. message: "核保成功",
  10718. type: "success",
  10719. });
  10720. this.QuotationHistory();
  10721. _this.$api.letter
  10722. .getByCompanyId({ companyId: this.companyId })
  10723. .then((res) => {
  10724. _this.orderstatus = res.data.orderstatus; //订单状态
  10725. _this.underwritingdialogVisible = true;
  10726. let indexid = this.totalCompanyList.findIndex(
  10727. (item) =>
  10728. item.namesimple ==
  10729. this.queryOrders.inscompany
  10730. );
  10731. this.totalCompanyList[indexid].orderstatus =
  10732. res.data.orderstatus;
  10733. });
  10734. } else {
  10735. loading.close();
  10736. this.$message({
  10737. showClose: true,
  10738. message: res.msg,
  10739. type: "error",
  10740. duration: 0,
  10741. });
  10742. }
  10743. });
  10744. } else {
  10745. loading.close();
  10746. this.$message({
  10747. message: res.msg,
  10748. type: "error",
  10749. duration: 7000,
  10750. });
  10751. }
  10752. });
  10753. break;
  10754. case "恒邦财险":
  10755. case "华农财险":
  10756. case "太平财险":
  10757. case "安盛天平":
  10758. case "众安财险":
  10759. case "中国人寿":
  10760. case "诚泰财险":
  10761. case "泰康财险":
  10762. let hengbangapi = "";
  10763. hengbangapi =
  10764. this.apiType == 2
  10765. ? "pythonsubmitImage"
  10766. : "anshengsubmitImage";
  10767. console.log(hengbangapi, "hengbangapi");
  10768. await this.$api.letter[hengbangapi]({
  10769. subOrderNo: this.companyId,
  10770. }).then((res) => {
  10771. if (res.code == "200") {
  10772. var _this = this;
  10773. let hengbangapi1 = "";
  10774. hengbangapi1 =
  10775. this.apiType == 2 ? "pythonaudit" : "anshengaudit";
  10776. console.log(hengbangapi1, "hengbangapi1");
  10777. _this.$api.letter[hengbangapi1]({
  10778. subOrderNo: this.companyId,
  10779. }).then((res) => {
  10780. if (res.code == "200") {
  10781. loading.close();
  10782. this.$message({
  10783. message: "核保成功",
  10784. type: "success",
  10785. });
  10786. this.QuotationHistory();
  10787. _this.$api.letter
  10788. .getByCompanyId({ companyId: this.companyId })
  10789. .then((res) => {
  10790. _this.orderstatus = res.data.orderstatus; //订单状态
  10791. _this.underwritingdialogVisible = true;
  10792. let indexid = this.totalCompanyList.findIndex(
  10793. (item) =>
  10794. item.namesimple == this.queryOrders.inscompany
  10795. );
  10796. this.totalCompanyList[indexid].orderstatus =
  10797. res.data.orderstatus;
  10798. });
  10799. } else {
  10800. loading.close();
  10801. this.$message({
  10802. showClose: true,
  10803. dangerouslyUseHTMLString: true,
  10804. message:
  10805. this.queryOrders.inscompany +
  10806. "提核--:" +
  10807. res.msg.replace(/\n/g, "<br><br>"),
  10808. type: "error",
  10809. duration: 0,
  10810. });
  10811. }
  10812. });
  10813. } else {
  10814. loading.close();
  10815. this.$message({
  10816. message:
  10817. this.queryOrders.inscompany + "影像--:" + res.msg,
  10818. type: "error",
  10819. duration: 7000,
  10820. });
  10821. }
  10822. });
  10823. break;
  10824. case "永诚财险":
  10825. await this.$api.letter
  10826. .insyongchengsubmitImage({
  10827. companyId: this.companyId,
  10828. })
  10829. .then((res) => {
  10830. if (res.code == "200") {
  10831. var _this = this;
  10832. _this.$api.letter
  10833. .yongchengaudit({
  10834. companyId: this.companyId,
  10835. })
  10836. .then((res) => {
  10837. if (res.code == "200") {
  10838. loading.close();
  10839. _this.cqryCdeJq = "";
  10840. _this.cqryCdeSy = "";
  10841. _this.renewalCodeJq = "";
  10842. _this.renewalCodeSy = "";
  10843. this.$message({
  10844. message: "核保成功",
  10845. type: "success",
  10846. });
  10847. this.QuotationHistory();
  10848. _this.$api.letter
  10849. .getByCompanyId({ companyId: this.companyId })
  10850. .then((res) => {
  10851. _this.orderstatus = res.data.orderstatus; //订单状态
  10852. _this.underwritingdialogVisible = true;
  10853. let indexid = this.totalCompanyList.findIndex(
  10854. (item) =>
  10855. item.namesimple ==
  10856. this.queryOrders.inscompany
  10857. );
  10858. this.totalCompanyList[indexid].orderstatus =
  10859. res.data.orderstatus;
  10860. });
  10861. } else {
  10862. loading.close();
  10863. this.$message({
  10864. showClose: true,
  10865. message:
  10866. this.queryOrders.inscompany +
  10867. "提核--:" +
  10868. res.msg,
  10869. customClass: "customNotifyClass",
  10870. type: "error",
  10871. duration: 0,
  10872. });
  10873. }
  10874. });
  10875. } else {
  10876. loading.close();
  10877. this.$message({
  10878. message:
  10879. this.queryOrders.inscompany + "影像--:" + res.msg,
  10880. type: "error",
  10881. duration: 7000,
  10882. });
  10883. }
  10884. });
  10885. break;
  10886. case "大家财险":
  10887. let DJApiImage = "";
  10888. DJApiImage =
  10889. this.apiType == 2 ? "pythonsubmitImage" : "dajiasubmitImage";
  10890. await this.$api.letter[DJApiImage]({
  10891. [this.apiType == 2 ? "subOrderNo" : "companyId"]:
  10892. this.companyId,
  10893. }).then((res) => {
  10894. if (res.code == "200") {
  10895. var _this = this;
  10896. let DJApiaudit = "";
  10897. DJApiaudit =
  10898. this.apiType == 2 ? "pythonaudit" : "dajiaaudit";
  10899. _this.$api.letter[DJApiaudit]({
  10900. [this.apiType == 2 ? "subOrderNo" : "companyId"]:
  10901. this.companyId,
  10902. }).then((res) => {
  10903. if (res.code == "200") {
  10904. loading.close();
  10905. _this.cqryCdeJq = "";
  10906. _this.cqryCdeSy = "";
  10907. _this.renewalCodeJq = "";
  10908. _this.renewalCodeSy = "";
  10909. this.$message({
  10910. message: "核保成功",
  10911. type: "success",
  10912. });
  10913. this.QuotationHistory();
  10914. _this.$api.letter
  10915. .getByCompanyId({ companyId: this.companyId })
  10916. .then((res) => {
  10917. _this.orderstatus = res.data.orderstatus; //订单状态
  10918. _this.underwritingdialogVisible = true;
  10919. let indexid = this.totalCompanyList.findIndex(
  10920. (item) =>
  10921. item.namesimple == this.queryOrders.inscompany
  10922. );
  10923. this.totalCompanyList[indexid].orderstatus =
  10924. res.data.orderstatus;
  10925. });
  10926. } else {
  10927. loading.close();
  10928. this.$message({
  10929. showClose: true,
  10930. message:
  10931. this.queryOrders.inscompany + "提核--:" + res.msg,
  10932. customClass: "customNotifyClass",
  10933. type: "error",
  10934. duration: 0,
  10935. });
  10936. }
  10937. });
  10938. } else {
  10939. loading.close();
  10940. this.$message({
  10941. message:
  10942. this.queryOrders.inscompany + "影像--:" + res.msg,
  10943. type: "error",
  10944. duration: 7000,
  10945. });
  10946. }
  10947. });
  10948. break;
  10949. case "平安财险":
  10950. await this.$api.letter
  10951. .pingansubmitImage({
  10952. companyId: this.companyId,
  10953. })
  10954. .then((res) => {
  10955. if (res.code == "200") {
  10956. var _this = this;
  10957. _this.$api.letter
  10958. .pinganaudit({
  10959. companyId: this.companyId,
  10960. jqappoint: "",
  10961. syappoint: "",
  10962. })
  10963. .then((res) => {
  10964. if (res.code == "200") {
  10965. loading.close();
  10966. _this.$message({
  10967. message: "核保成功",
  10968. type: "success",
  10969. });
  10970. this.QuotationHistory();
  10971. _this.$api.letter
  10972. .getByCompanyId({ companyId: this.companyId })
  10973. .then((res) => {
  10974. _this.orderstatus = res.data.orderstatus; //订单状态
  10975. _this.underwritingdialogVisible = true;
  10976. let indexid = this.totalCompanyList.findIndex(
  10977. (item) =>
  10978. item.namesimple ==
  10979. this.queryOrders.inscompany
  10980. );
  10981. this.totalCompanyList[indexid].orderstatus =
  10982. res.data.orderstatus;
  10983. });
  10984. } else {
  10985. loading.close();
  10986. _this.$message({
  10987. showClose: true,
  10988. message:
  10989. this.queryOrders.inscompany +
  10990. "提核--:" +
  10991. res.msg,
  10992. type: "error",
  10993. duration: 0,
  10994. });
  10995. _this.$api.letter
  10996. .getByCompanyId({ companyId: this.companyId })
  10997. .then((res) => {
  10998. _this.orderstatus = res.data.orderstatus; //订单状态
  10999. });
  11000. }
  11001. });
  11002. } else {
  11003. this.$message({
  11004. message:
  11005. this.queryOrders.inscompany + "影像--:" + res.msg,
  11006. type: "error",
  11007. duration: 7000,
  11008. });
  11009. loading.close();
  11010. }
  11011. });
  11012. break;
  11013. }
  11014. }
  11015. });
  11016. },
  11017. //当前日期的次日
  11018. transformTime1() {
  11019. var date = new Date();
  11020. date.setFullYear(date.getFullYear());
  11021. date.setTime(date.getTime() + 24 * 60 * 60 * 1000);
  11022. var strYear = date.getFullYear();
  11023. var strDay = date.getDate();
  11024. var strMonth = date.getMonth() + 1;
  11025. var hh = date.getHours();
  11026. if (hh < 10) {
  11027. hh = "0" + hh;
  11028. }
  11029. if (strMonth < 10) {
  11030. strMonth = "0" + strMonth;
  11031. }
  11032. if (strDay < 10) {
  11033. strDay = "0" + strDay;
  11034. }
  11035. var datastr = strYear + "-" + strMonth + "-" + strDay + " " + "00:00:00";
  11036. return datastr;
  11037. },
  11038. //传入日期的次日
  11039. transformTime2(time) {
  11040. var date = new Date(time);
  11041. date.setFullYear(date.getFullYear());
  11042. date.setTime(date.getTime() + 24 * 60 * 60 * 1000); //一年后的前一天
  11043. var strYear = date.getFullYear();
  11044. var strDay = date.getDate();
  11045. var strMonth = date.getMonth() + 1;
  11046. var hh = date.getHours();
  11047. if (hh < 10) {
  11048. hh = "0" + hh;
  11049. }
  11050. if (strMonth < 10) {
  11051. strMonth = "0" + strMonth;
  11052. }
  11053. if (strDay < 10) {
  11054. strDay = "0" + strDay;
  11055. }
  11056. var datastr = strYear + "-" + strMonth + "-" + strDay + " " + "00:00:00";
  11057. return datastr;
  11058. },
  11059. isDateBeforeToday(date) {
  11060. const inputDate = new Date(date); // 将输入的日期转换为 Date 对象
  11061. const today = new Date(); // 获取当前日期
  11062. // 比较日期是否小于当前日期
  11063. if (inputDate < today) {
  11064. return true; // 输入日期小于当前日期
  11065. } else {
  11066. return false; // 输入日期大于等于当前日期
  11067. }
  11068. },
  11069. //时间转换
  11070. transformTime(date) {
  11071. var d = new Date(date);
  11072. var strYear = d.getFullYear();
  11073. var strMonth = d.getMonth() + 1;
  11074. var strDay = d.getDate();
  11075. var hh = d.getHours();
  11076. var minutes = d.getMinutes(); // 分
  11077. var Seconds = d.getSeconds();
  11078. if (hh < 10) {
  11079. hh = "0" + hh;
  11080. }
  11081. if (minutes < 10) {
  11082. minutes = "0" + minutes;
  11083. }
  11084. if (Seconds < 10) {
  11085. Seconds = "0" + Seconds;
  11086. }
  11087. if (strMonth < 10) {
  11088. strMonth = "0" + strMonth;
  11089. }
  11090. if (strDay < 10) {
  11091. strDay = "0" + strDay;
  11092. }
  11093. var datetime =
  11094. strYear +
  11095. "-" +
  11096. strMonth +
  11097. "-" +
  11098. strDay +
  11099. " " +
  11100. hh +
  11101. ":" +
  11102. minutes +
  11103. ":" +
  11104. Seconds;
  11105. return datetime;
  11106. },
  11107. timeformat(date) {
  11108. var d = new Date(date);
  11109. var strYear = d.getFullYear();
  11110. var strMonth = d.getMonth() + 1;
  11111. var strDay = d.getDate();
  11112. var hh = d.getHours();
  11113. if (hh < 10) {
  11114. hh = "0" + hh;
  11115. }
  11116. if (strMonth < 10) {
  11117. strMonth = "0" + strMonth;
  11118. }
  11119. if (strDay < 10) {
  11120. strDay = "0" + strDay;
  11121. }
  11122. var datetime = strYear + "-" + strMonth + "-" + strDay;
  11123. return datetime;
  11124. },
  11125. oneYearPast1(time) {
  11126. //明年减一秒
  11127. var date = new Date(time);
  11128. date.setSeconds(date.getSeconds() - 1);
  11129. date.setFullYear(date.getFullYear() + 1); //一年后
  11130. date.setTime(date.getTime()); //一年后的前一天
  11131. var strYear = date.getFullYear();
  11132. var strDay = date.getDate();
  11133. var strMonth = date.getMonth() + 1;
  11134. var hh = date.getHours();
  11135. var minutes = date.getMinutes(); // 分
  11136. var Seconds = date.getSeconds();
  11137. if (hh < 10) {
  11138. hh = "0" + hh;
  11139. }
  11140. if (minutes < 10) {
  11141. minutes = "0" + minutes;
  11142. }
  11143. if (Seconds < 10) {
  11144. Seconds = "0" + Seconds;
  11145. }
  11146. if (strMonth < 10) {
  11147. strMonth = "0" + strMonth;
  11148. }
  11149. if (strDay < 10) {
  11150. strDay = "0" + strDay;
  11151. }
  11152. var datastr =
  11153. strYear +
  11154. "-" +
  11155. strMonth +
  11156. "-" +
  11157. strDay +
  11158. " " +
  11159. hh +
  11160. ":" +
  11161. minutes +
  11162. ":" +
  11163. Seconds;
  11164. return datastr;
  11165. },
  11166. tbczcarShowChange() {
  11167. //投保人同车主
  11168. switch (this.tbczcarShow) {
  11169. case true:
  11170. this.policyHolderInfo = JSON.parse(JSON.stringify(this.ownerInfo));
  11171. break;
  11172. default:
  11173. for (let key in this.policyHolderInfo) {
  11174. this.policyHolderInfo[key] = "";
  11175. this.policyHolderInfo.provinceData = [];
  11176. this.selectedOptions2 = [];
  11177. }
  11178. this.policyHolderInfo = {}
  11179. }
  11180. this.$forceUpdate()
  11181. },
  11182. bbczcarShowChange() {
  11183. //被保人同车主
  11184. switch (this.bbczcarShow) {
  11185. case true:
  11186. this.bbtbcarShow = false;
  11187. this.insuredPersonInfo = JSON.parse(JSON.stringify(this.ownerInfo));
  11188. break;
  11189. default:
  11190. for (let key in this.insuredPersonInfo) {
  11191. this.insuredPersonInfo[key] = "";
  11192. this.insuredPersonInfo.provinceData = [];
  11193. // this.selectedOptions3 = [];
  11194. }
  11195. }
  11196. this.$forceUpdate()
  11197. },
  11198. bbtbcarShowChange() {
  11199. //被保人同投保人
  11200. switch (this.bbtbcarShow) {
  11201. case true:
  11202. this.bbczcarShow = false;
  11203. this.insuredPersonInfo = JSON.parse(
  11204. JSON.stringify(this.policyHolderInfo)
  11205. );
  11206. break;
  11207. default:
  11208. for (let key in this.insuredPersonInfo) {
  11209. this.insuredPersonInfo[key] = "";
  11210. this.insuredPersonInfo.provinceData = [];
  11211. }
  11212. }
  11213. this.$forceUpdate()
  11214. },
  11215. // 查询车牌信息
  11216. toCheckLicenseNo(licenseNo) {
  11217. if (licenseNo) {
  11218. this.$api.letter.licenseSearch({
  11219. licenseNo: licenseNo
  11220. }).then((res) => {
  11221. if (res.code == 200) {{
  11222. this.carInfo.engineNo = res.data.engineNo
  11223. this.carInfo.vinNo = res.data.vinNo
  11224. this.carInfo.registerDate = res.data.registerDate
  11225. this.$forceUpdate()
  11226. }}
  11227. })
  11228. }
  11229. },
  11230. //VIN查询
  11231. toChooseVin(cartype) {
  11232. if (cartype == "" || cartype == null) {
  11233. this.$message({
  11234. message: "请输入车架号",
  11235. type: "warning",
  11236. });
  11237. } else {
  11238. const loading = this.$loading({
  11239. lock: true,
  11240. text: "Loading",
  11241. spinner: "el-icon-loading",
  11242. background: "rgba(0, 0, 0, 0.7)",
  11243. });
  11244. this.$api.letter.insZhongmeiVIN(this.carInfo.frameNo).then((res) => {
  11245. if (res.code == "200") {
  11246. this.reslist = res.data;
  11247. loading.close();
  11248. this.sbdmdialogVisible = true;
  11249. } else {
  11250. loading.close();
  11251. this.$message.error(res.msg);
  11252. }
  11253. });
  11254. }
  11255. },
  11256. // 撤销二维码
  11257. revokeCode(id) {
  11258. this.$api.letter.getRevokeQrCode(id).then((res) => {
  11259. if (res.code == 200) {
  11260. this.$message({
  11261. message: res.msg,
  11262. type: "success",
  11263. });
  11264. this.QuotationHistory();
  11265. }
  11266. });
  11267. },
  11268. //品牌型号查询
  11269. toChooseVehicleType(cartype) {
  11270. if (cartype == "" || cartype == null) {
  11271. this.$message({
  11272. message: "请输入车型名称",
  11273. type: "warning",
  11274. });
  11275. } else {
  11276. const loading = this.$loading({
  11277. lock: true,
  11278. text: "Loading",
  11279. spinner: "el-icon-loading",
  11280. background: "rgba(0, 0, 0, 0.7)",
  11281. });
  11282. let param = {
  11283. modelName: cartype.replace(/[^u4e00-u9fa5|,]+/gi, ""),
  11284. };
  11285. this.$api.letter.ModelsQuery(param).then((res) => {
  11286. if (res.code == "200") {
  11287. loading.close();
  11288. this.reslist = res.data;
  11289. this.chexingdialogVisible = true;
  11290. } else {
  11291. loading.close();
  11292. this.$message.error(res.msg);
  11293. }
  11294. });
  11295. }
  11296. },
  11297. //车型列表双击选中事件
  11298. reslistCurrentChange(row, column, event) {
  11299. this.carInfo.brandName = row.brandCN; //品牌型号
  11300. this.carInfo.modelcname = row.modelName; //品牌型号
  11301. this.carInfo.caryear = row.marketYear; //年款
  11302. this.carInfo.seatCount = row.ratedPassengerCapacity; //座位数
  11303. this.carInfo.purchasePrice = row.replacementValue; //购置价
  11304. this.carInfo.modelCode = row.modelCode; //型号代码
  11305. this.carInfo.familyName = row.series; //系列
  11306. this.carInfo.enginedesc = row.displacement; //排量
  11307. this.carInfo.energyType = row.energyTypes;
  11308. this.carInfo.powerScale = row.powerScale; //功率
  11309. this.chexingdialogVisible = false;
  11310. this.sbdmdialogVisible = false;
  11311. },
  11312. //是否过户事件
  11313. transferFlagChange(e) {
  11314. if (e) {
  11315. this.transferDateShow = true;
  11316. this.carInfo.transferDate = this.carInfo.issueDate;
  11317. } else {
  11318. this.transferDateShow = false;
  11319. this.carInfo.transferDate = "";
  11320. }
  11321. },
  11322. //影像上传
  11323. drivingupload(file, imageIdList, imgurl, type) {
  11324. let that = this;
  11325. let size = file.size / 1024 / 1024 < 5;
  11326. const isJPG =
  11327. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  11328. if (!size) {
  11329. this.$message.error("上传图片大小不能超过 5MB!");
  11330. this[imgurl] = [];
  11331. return false;
  11332. }
  11333. if (!isJPG) {
  11334. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  11335. this[imgurl] = [];
  11336. return false;
  11337. }
  11338. this[imgurl].push(file);
  11339. var file = file.raw;
  11340. const params = new FormData(); // 声明formData数据类型
  11341. params.append("multipartFile", file);
  11342. params.append("type", "image");
  11343. this.$api.letter.uploadFile(params).then((res) => {
  11344. if (res.code == "200") {
  11345. if (this[imageIdList].some((v) => v.imageType == type)) {
  11346. this[imageIdList].map((val) => {
  11347. if (val.imageType == type) {
  11348. val.imageId = res.data.id;
  11349. }
  11350. });
  11351. } else {
  11352. this[imageIdList].push({
  11353. imageId: res.data.id,
  11354. imageType: type,
  11355. });
  11356. }
  11357. }
  11358. });
  11359. },
  11360. policydrivingupload(file, val) {
  11361. // this.policyNumberForm[val + 'List'] = []
  11362. switch (val) {
  11363. case "jqPolicy":
  11364. this.policyNumberForm.jqPolicyList = [];
  11365. break;
  11366. case "syPolicy":
  11367. this.policyNumberForm.syPolicyList = [];
  11368. break;
  11369. case "noPolicy":
  11370. this.policyNumberForm.noPolicyList = [];
  11371. break;
  11372. case "jqSign":
  11373. this.policyNumberForm.jqSignList = [];
  11374. break;
  11375. default:
  11376. break;
  11377. }
  11378. var file = file.raw;
  11379. const params = new FormData(); // 声明formData数据类型
  11380. params.append("multipartFile", file);
  11381. params.append("type", "file");
  11382. this.$api.letter.uploadFile(params).then((res) => {
  11383. if (res.code == "200") {
  11384. res.data.name = res.data.fileName;
  11385. this.policyNumberForm[val + "List"].push(res.data);
  11386. }
  11387. });
  11388. },
  11389. handleRemove1(file, imageIdList, imgList) {
  11390. this[imageIdList].map((ele, index) => {
  11391. if (file.imageId === ele.imageId) {
  11392. this[imageIdList].splice(index, 1);
  11393. }
  11394. return ele;
  11395. });
  11396. if (file.imageId) {
  11397. this[imgList].map((ele, index) => {
  11398. if (file.imageId === ele.imageId) {
  11399. this[imgList].splice(index, 1);
  11400. }
  11401. return ele;
  11402. });
  11403. } else {
  11404. this[imgList].map((ele, index) => {
  11405. if (file.uid === ele.uid) {
  11406. this[imgList].splice(index, 1);
  11407. }
  11408. return ele;
  11409. });
  11410. }
  11411. },
  11412. compress(img, width, height, ratio) {
  11413. var canvas, ctx, img64;
  11414. canvas = document.createElement("canvas");
  11415. canvas.width = width;
  11416. canvas.height = height;
  11417. ctx = canvas.getContext("2d");
  11418. ctx.drawImage(img, 0, 0, width, height);
  11419. img64 = canvas.toDataURL("image/jpeg", ratio);
  11420. return img64;
  11421. },
  11422. base64ToFile(base64, fileName) {
  11423. let data = base64.split(",");
  11424. let type = data[0].match(/:(.*?);/)[1]; // let suffix = type.split('/')[1];
  11425. const bstr = window.atob(data[1]);
  11426. let n = bstr.length;
  11427. const u8arr = new Uint8Array(n);
  11428. while (n--) {
  11429. u8arr[n] = bstr.charCodeAt(n);
  11430. } // const file =  new File([u8arr], `${fileName}.${suffix}`, {
  11431. const file = new File([u8arr], `${fileName}`, {
  11432. type: type,
  11433. });
  11434. return file;
  11435. },
  11436. carfrontChange(file) {
  11437. //选择行驶证正面
  11438. let that = this;
  11439. let size = file.size / 1024 / 1024 < 5;
  11440. const isJPG =
  11441. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  11442. if (!size) {
  11443. this.$message.error("上传图片大小不能超过 5MB!");
  11444. return false;
  11445. }
  11446. if (!isJPG) {
  11447. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  11448. return false;
  11449. }
  11450. // let name=file.raw.name
  11451. //       var image = new Image();
  11452. //       image.src = window.URL.createObjectURL(file.raw);
  11453. //       that.carfrontImg =  image.src
  11454. //       image.onload = function(){
  11455. //         let aaa= that.base64ToFile(that.compress(image, 500, 400, 0.7),name)
  11456. // that.carfrontImg = image.src;
  11457. // const params = new FormData(); // 声明formData数据类型
  11458. // params.append("multipartFile", aaa);
  11459. // params.append("type", "image");
  11460. // that.$api.letter.uploadFile(params).then(res => {
  11461. // if (res.code == "200") {
  11462. // that.CarFrontFile = aaa;//文件流
  11463. // if (that.imageList1.some(v => v.imageType == 'C01')) {
  11464. // that.imageList1.map(val => {
  11465. // if (val.imageType == 'C01') {
  11466. // val.imageId = res.data.id;
  11467. // }
  11468. // })
  11469. // } else {
  11470. // that.imageList1.push({
  11471. // imageId: res.data.id,
  11472. // imageType: "C01",
  11473. // })
  11474. // }
  11475. // } else {
  11476. // that.$message({ message: res.msg, type: "warning" });
  11477. // }
  11478. // });
  11479. // }
  11480. var file = file.raw;
  11481. let files = window.URL.createObjectURL(file); //转临时路径
  11482. this.carfrontImg = files;
  11483. const params = new FormData(); // 声明formData数据类型
  11484. params.append("multipartFile", file);
  11485. params.append("type", "image");
  11486. this.$api.letter.uploadFile(params).then((res) => {
  11487. if (res.code == "200") {
  11488. this.CarFrontFile = file; //文件流
  11489. if (this.imageList1.some((v) => v.imageType == "C01")) {
  11490. this.imageList1.map((val) => {
  11491. if (val.imageType == "C01") {
  11492. val.imageId = res.data.id;
  11493. }
  11494. });
  11495. } else {
  11496. this.imageList1.push({
  11497. imageId: res.data.id,
  11498. imageType: "C01",
  11499. });
  11500. }
  11501. } else {
  11502. this.$message({ message: res.msg, type: "warning" });
  11503. }
  11504. });
  11505. },
  11506. carbackChange(file) {
  11507. let that = this;
  11508. let size = file.size / 1024 / 1024 < 2;
  11509. const isJPG =
  11510. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  11511. if (!size) {
  11512. this.$message.error("上传图片大小不能超过 5MB!");
  11513. return false;
  11514. }
  11515. if (!isJPG) {
  11516. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  11517. return false;
  11518. }
  11519. // let name=file.raw.name
  11520. //       var image = new Image();
  11521. //       image.src = window.URL.createObjectURL(file.raw);
  11522. //       image.onload = function(){
  11523. //         let aaa= that.base64ToFile(that.compress(image, 500, 400, 0.7),name)
  11524. // that.carbackImg = image.src;
  11525. // const params = new FormData(); // 声明formData数据类型
  11526. // params.append("multipartFile", aaa);
  11527. // params.append("type", "image");
  11528. // that.$api.letter.uploadFile(params).then(res => {
  11529. // if (res.code == "200") {
  11530. // that.CarBackFile = aaa;//文件流
  11531. // if (that.imageList1.some(v => v.imageType == 'D01')) {
  11532. // that.imageList1.map(val => {
  11533. // if (val.imageType == 'D01') {
  11534. // val.imageId = res.data.id;
  11535. // }
  11536. // })
  11537. // } else {
  11538. // that.imageList1.push({
  11539. // imageId: res.data.id,
  11540. // imageType: "D01",
  11541. // })
  11542. // }
  11543. // } else {
  11544. // that.$message({ message: res.msg, type: "warning" });
  11545. // }
  11546. // });
  11547. // }
  11548. //选择行驶证反面
  11549. var file = file.raw;
  11550. let files = window.URL.createObjectURL(file); //转临时路径
  11551. this.carbackImg = files;
  11552. const params = new FormData(); // 声明formData数据类型
  11553. params.append("multipartFile", file);
  11554. params.append("type", "image");
  11555. this.$api.letter.uploadFile(params).then((res) => {
  11556. if (res.code == "200") {
  11557. this.CarBackFile = file;
  11558. if (this.imageList1.some((v) => v.imageType == "D01")) {
  11559. this.imageList1.map((val) => {
  11560. if (val.imageType == "D01") {
  11561. val.imageId = res.data.id;
  11562. }
  11563. });
  11564. } else {
  11565. this.imageList1.push({
  11566. imageId: res.data.id,
  11567. imageType: "D01",
  11568. });
  11569. }
  11570. } else {
  11571. this.$message({ message: res.msg, type: "warning" });
  11572. }
  11573. });
  11574. },
  11575. userfrontChange(file) {
  11576. let that = this;
  11577. let size = file.size / 1024 / 1024 < 5;
  11578. const isJPG =
  11579. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  11580. if (!size) {
  11581. this.$message.error("上传图片大小不能超过 5MB!");
  11582. return false;
  11583. }
  11584. if (!isJPG) {
  11585. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  11586. return false;
  11587. }
  11588. // let name=file.raw.name
  11589. //       var image = new Image();
  11590. //       image.src = window.URL.createObjectURL(file.raw);
  11591. //       image.onload = function(){
  11592. //         let aaa= that.base64ToFile(that.compress(image, 500, 400, 0.7),name)
  11593. // that.userfrontImg = image.src;
  11594. // const params = new FormData(); // 声明formData数据类型
  11595. // params.append("multipartFile", aaa);
  11596. // params.append("type", "image");
  11597. // that.$api.letter.uploadFile(params).then(res => {
  11598. // if (res.code == "200") {
  11599. // let type = 'C0' + that.userIndex;
  11600. // if (that['imageList' + that.userIndex].some(v => v.imageType == type)) {
  11601. // that['imageList' + that.userIndex].map(val => {
  11602. // if (val.imageType == type) {
  11603. // val.imageId = res.data.id;
  11604. // }
  11605. // })
  11606. // } else {
  11607. // that['imageList' + that.userIndex].push({
  11608. // imageId: res.data.id,
  11609. // imageType: type,
  11610. // })
  11611. // }
  11612. // that[type + 'File'] = aaa;
  11613. // } else {
  11614. // that.$message({ message: res.msg, type: "warning" });
  11615. // }
  11616. // });
  11617. // }
  11618. //选择身份证正面
  11619. var file = file.raw;
  11620. let files = window.URL.createObjectURL(file); //转链接
  11621. this.userfrontImg = files;
  11622. const params = new FormData(); // 声明formData数据类型
  11623. params.append("multipartFile", file);
  11624. params.append("type", "image");
  11625. this.$api.letter.uploadFile(params).then((res) => {
  11626. if (res.code == "200") {
  11627. let type = "C0" + this.userIndex;
  11628. if (
  11629. this["imageList" + this.userIndex].some((v) => v.imageType == type)
  11630. ) {
  11631. this["imageList" + this.userIndex].map((val) => {
  11632. if (val.imageType == type) {
  11633. val.imageId = res.data.id;
  11634. }
  11635. });
  11636. } else {
  11637. this["imageList" + this.userIndex].push({
  11638. imageId: res.data.id,
  11639. imageType: type,
  11640. });
  11641. }
  11642. this[type + "File"] = file;
  11643. } else {
  11644. this.$message({ message: res.msg, type: "warning" });
  11645. }
  11646. });
  11647. },
  11648. userbackChange(file) {
  11649. let that = this;
  11650. let size = file.size / 1024 / 1024 < 5;
  11651. const isJPG =
  11652. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  11653. if (!size) {
  11654. this.$message.error("上传图片大小不能超过 5MB!");
  11655. return false;
  11656. }
  11657. if (!isJPG) {
  11658. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  11659. return false;
  11660. }
  11661. // let name=file.raw.name
  11662. //       var image = new Image();
  11663. //       image.src = window.URL.createObjectURL(file.raw);
  11664. //       image.onload = function(){
  11665. //         let aaa= that.base64ToFile(that.compress(image, 500, 400, 0.7),name)
  11666. // that.userbackImg = image.src;
  11667. // const params = new FormData(); // 声明formData数据类型
  11668. // params.append("multipartFile", aaa);
  11669. // params.append("type", "image");
  11670. // that.$api.letter.uploadFile(params).then(res => {
  11671. // if (res.code == "200") {
  11672. // let type = 'D0' + that.userIndex;
  11673. // if (that['imageList' + that.userIndex].some(v => v.imageType == type)) {
  11674. // that['imageList' + that.userIndex].map(val => {
  11675. // if (val.imageType == type) {
  11676. // val.imageId = res.data.id;
  11677. // }
  11678. // })
  11679. // } else {
  11680. // that['imageList' + that.userIndex].push({
  11681. // imageId: res.data.id,
  11682. // imageType: type,
  11683. // })
  11684. // }
  11685. // that[type + 'File'] = aaa;
  11686. // } else {
  11687. // that.$message({ message: res.msg, type: "warning" });
  11688. // }
  11689. // });
  11690. // }
  11691. //选择身份证背面
  11692. var file = file.raw;
  11693. let files = window.URL.createObjectURL(file); //转链接
  11694. this.userbackImg = files;
  11695. const params = new FormData(); // 声明formData数据类型
  11696. params.append("multipartFile", file);
  11697. params.append("type", "image");
  11698. this.$api.letter.uploadFile(params).then((res) => {
  11699. if (res.code == "200") {
  11700. let type = "D0" + this.userIndex;
  11701. if (
  11702. this["imageList" + this.userIndex].some((v) => v.imageType == type)
  11703. ) {
  11704. this["imageList" + this.userIndex].map((val) => {
  11705. if (val.imageType == type) {
  11706. val.imageId = res.data.id;
  11707. }
  11708. });
  11709. } else {
  11710. this["imageList" + this.userIndex].push({
  11711. imageId: res.data.id,
  11712. imageType: type,
  11713. });
  11714. }
  11715. this[type + "File"] = file;
  11716. } else {
  11717. this.$message({ message: res.msg, type: "warning" });
  11718. }
  11719. });
  11720. },
  11721. CarOCRdiscern() {
  11722. if (!this.CarFrontFile || !this.CarBackFile) {
  11723. this.$message.warning('请上传行驶证主页和副页')
  11724. return
  11725. }
  11726. //car识别
  11727. const loading = this.$loading({
  11728. lock: true,
  11729. text: "Loading",
  11730. spinner: "el-icon-loading",
  11731. background: "rgba(0, 0, 0, 0.7)",
  11732. });
  11733. const params = new FormData(); // 声明formData数据类型
  11734. params.append("image1", this.CarFrontFile);
  11735. params.append("image2", this.CarBackFile);
  11736. this.$api.letter.drivingPermit(params).then((res) => {
  11737. loading.close();
  11738. if (res.msg == "201") {
  11739. this.$message({ message: "请正确选择驾驶证", type: "warning" });
  11740. }
  11741. var carInfo = res.data.carInfo;
  11742. if (carInfo.issueDate) {
  11743. carInfo.issueDate =
  11744. carInfo.issueDate.substring(0, 4) +
  11745. "-" +
  11746. carInfo.issueDate.substring(4, 6) +
  11747. "-" +
  11748. carInfo.issueDate.substring(6, 8);
  11749. }
  11750. if (carInfo.registerDate) {
  11751. carInfo.registerDate =
  11752. carInfo.registerDate.substring(0, 4) +
  11753. "-" +
  11754. carInfo.registerDate.substring(4, 6) +
  11755. "-" +
  11756. carInfo.registerDate.substring(6, 8);
  11757. }
  11758. this.carform.carOwner = carInfo.carOwner; //车主
  11759. this.carform.licenseNo = carInfo.plateNo; //车牌号
  11760. this.carform.modelcname = carInfo.backOcrID; //品牌型号
  11761. this.carform.frameNo = carInfo.vin; //车架号
  11762. this.carform.engineNo = carInfo.engine; //发动机号
  11763. this.carform.registerDate = carInfo.registerDate; //车牌号
  11764. this.carform.issueDate = carInfo.issueDate; //车牌号
  11765. this.carform.grossMass = carInfo.grossMass; //总质量
  11766. this.carform.unladenMass = carInfo.unladenMass; //整备质量
  11767. this.carform.limitLoad = carInfo.limitLoad; //核定载质量
  11768. this.carform.category = carInfo.category; //车辆类型
  11769. this.carform.carnature = carInfo.useNature; //使用性质
  11770. this.carform.vehicleUse = carInfo.vehicleUse; //车辆用途
  11771. this.carform.plateType = carInfo.plateType; //车辆种类
  11772. this.carform.approvedPassengersCapacity =
  11773. carInfo.approvedPassengersCapacity; //核定载客数
  11774. });
  11775. },
  11776. CarOCRconfirm() {
  11777. //传参 carnature
  11778. this.ownerInfo.name = this.carform.carOwner; //车主
  11779. this.carInfo.cartype = "K33";
  11780. this.carInfo.licenseNo = this.carform.licenseNo; //车牌号
  11781. this.carInfo.modelcname = this.carform.modelcname; //品牌型号
  11782. this.carInfo.vinNo = this.carform.frameNo; //车架号
  11783. this.carInfo.frameNo = this.carform.frameNo; //车架号
  11784. this.carInfo.engineNo = this.carform.engineNo; //发动机号
  11785. this.carInfo.seatCount = this.carform.approvedPassengersCapacity; //核定载客数
  11786. this.carInfo.vehicleweight = this.carform.grossMass; //总质量
  11787. this.carInfo.completeKerbMass = this.carform.unladenMass; //整备质量
  11788. this.carInfo.limitLoad = this.carform.limitLoad; //核定载质量
  11789. this.carInfo.cartype = this.carform.category; //车辆类型
  11790. this.carInfo.carnature = this.carform.carnature
  11791. ? this.carform.carnature
  11792. : "02"; //使用性质
  11793. this.carInfo.vehicleUse = this.carform.vehicleUse
  11794. ? this.carform.vehicleUse
  11795. : "05"; //车辆用途
  11796. this.carInfo.cimodelclass = this.carform.plateType; //车辆种类
  11797. if (this.timeformat(this.carform.registerDate) != "NaN-NaN-NaN") {
  11798. this.carInfo.registerDate = this.carform.registerDate; //车牌号
  11799. }
  11800. if (this.timeformat(this.carform.issueDate) != "NaN-NaN-NaN") {
  11801. this.carInfo.issueDate = this.carform.issueDate; //车牌号
  11802. }
  11803. if (this.carform.registerDate.length < 10) {
  11804. this.$message.warning('检查注册日期')
  11805. return
  11806. }
  11807. if (this.carform.issueDate.length < 10) {
  11808. this.$message.warning('检查发证日期')
  11809. return
  11810. }
  11811. this.uploadcardialogVisible = false;
  11812. },
  11813. handleRemove(e) {
  11814. //删除图片
  11815. this[e] = "";
  11816. switch (this.userIndex) {
  11817. case 0:
  11818. this.carfrontImg = "";
  11819. this.carbackImg = "";
  11820. this.CarFrontFile = ""; // 行驶证正面base64
  11821. this.CarBackFile = ""; // 行驶证背面base64
  11822. break;
  11823. case 2:
  11824. this.userfrontImg = "";
  11825. this.userbackImg = "";
  11826. this.C02File = ""; // 车主正面base64
  11827. this.D02File = ""; // 车主背面base64
  11828. break;
  11829. case 3:
  11830. this.userfrontImg = "";
  11831. this.userbackImg = "";
  11832. this.C03File = ""; // 投保人正面base64
  11833. this.D03File = ""; // 投保人背面base64
  11834. break;
  11835. case 4:
  11836. this.userfrontImg = "";
  11837. this.userbackImg = "";
  11838. this.C04File = ""; // 被保人正面base64
  11839. this.D04File = ""; // 被保人背面base64
  11840. break;
  11841. default:
  11842. }
  11843. },
  11844. //预览图片
  11845. handlePictureCardPreview(img) {
  11846. this.ProViewImg = img;
  11847. this.showViewer = true;
  11848. },
  11849. // 关闭查看器
  11850. closeViewer() {
  11851. this.showViewer = false;
  11852. },
  11853. uploaduser(index) {
  11854. this.userIndex = index;
  11855. this.uploaduserdialogVisible = true;
  11856. },
  11857. userOCRdiscern() {
  11858. //OCR识别
  11859. switch (this.userIndex) {
  11860. case 2:
  11861. // if (!this.C02File || !this.D02File) {
  11862. // this.$message.warning('请上传照片')
  11863. // return
  11864. // }
  11865. const params1 = new FormData(); // 声明formData数据类型
  11866. params1.append("image1", this.C02File);
  11867. params1.append("image2", this.D02File);
  11868. this.userOCRjoggle(params1);
  11869. break;
  11870. case 3:
  11871. // if (!this.C03File || !this.D03File) {
  11872. // this.$message.warning('请上传照片')
  11873. // return
  11874. // }
  11875. const params2 = new FormData(); // 声明formData数据类型
  11876. params2.append("image1", this.C03File);
  11877. params2.append("image2", this.D03File);
  11878. this.userOCRjoggle(params2);
  11879. break;
  11880. case 4:
  11881. // if (!this.C04File || !this.D04File) {
  11882. // this.$message.warning('请上传照片')
  11883. // return
  11884. // }
  11885. const params3 = new FormData(); // 声明formData数据类型
  11886. params3.append("image1", this.C04File);
  11887. params3.append("image2", this.D04File);
  11888. this.userOCRjoggle(params3);
  11889. break;
  11890. default:
  11891. }
  11892. },
  11893. userOCRjoggle(param) {
  11894. const loading = this.$loading({
  11895. lock: true,
  11896. text: "Loading",
  11897. spinner: "el-icon-loading",
  11898. background: "rgba(0, 0, 0, 0.7)",
  11899. });
  11900. this.$api.letter.idCard(param).then((res) => {
  11901. loading.close();
  11902. if (res.msg == "201") {
  11903. this.$message({ message: "请正确选择身份证", type: "warning" });
  11904. }
  11905. var customerInfo = res.data.customerInfo;
  11906. if (customerInfo) {
  11907. this.ownerInfoform.name = customerInfo.name;
  11908. if (customerInfo.identifyType == "01") {
  11909. this.ownerInfoform.identifyType = "身份证";
  11910. } else {
  11911. this.ownerInfoform.identifyType = "";
  11912. }
  11913. this.ownerInfoform.identifyNumber = customerInfo.identifyNumber;
  11914. this.ownerInfoform.gender = customerInfo.identifyIssuedCom;
  11915. this.ownerInfoform.addr = customerInfo.addr;
  11916. if (customerInfo.identifyNumber) {
  11917. this.ownerInfoform.age = getAgeByIdCard(
  11918. customerInfo.identifyNumber
  11919. );
  11920. }
  11921. if (
  11922. customerInfo.identifyValidDate ||
  11923. customerInfo.identifyValidEndDate
  11924. ) {
  11925. this.ownerInfoform.identifyValidDate =
  11926. customerInfo.identifyValidDate.substring(0, 4) +
  11927. "-" +
  11928. customerInfo.identifyValidDate.substring(4, 6) +
  11929. "-" +
  11930. customerInfo.identifyValidDate.substring(6, 8);
  11931. this.ownerInfoform.identifyValidEndDate =
  11932. customerInfo.identifyValidEndDate.substring(0, 4) +
  11933. "-" +
  11934. customerInfo.identifyValidEndDate.substring(4, 6) +
  11935. "-" +
  11936. customerInfo.identifyValidEndDate.substring(6, 8);
  11937. if (customerInfo.identifyValidEndDate == "长期") {
  11938. this.ownerInfoform.identifyValidEndDate = "9999-12-31";
  11939. }
  11940. }
  11941. // let values = addressCode(this.ownerInfoform.addr);
  11942. // this.ownerInfoform.province = codeToText[values[0]]
  11943. // this.ownerInfoform.city = codeToText[values[1]]
  11944. // this.ownerInfoform.county = codeToText[values[2]]
  11945. }
  11946. });
  11947. },
  11948. userOCRconfirm() {
  11949. //传参
  11950. switch (this.userIndex) {
  11951. case 2:
  11952. // this.selectedOptions1 = addressCode(this.ownerInfoform.addr);
  11953. this.ownerInfo = JSON.parse(JSON.stringify(this.ownerInfoform));
  11954. break;
  11955. case 3:
  11956. // this.selectedOptions2 = addressCode(this.ownerInfoform.addr);
  11957. this.policyHolderInfo = JSON.parse(
  11958. JSON.stringify(this.ownerInfoform)
  11959. );
  11960. break;
  11961. case 4:
  11962. // this.selectedOptions3 = addressCode(this.ownerInfoform.addr);
  11963. this.insuredPersonInfo = JSON.parse(
  11964. JSON.stringify(this.ownerInfoform)
  11965. );
  11966. break;
  11967. }
  11968. this.uploaduserdialogVisible = false;
  11969. },
  11970. closeDialog(index) {
  11971. // 0:车辆 1:车主 2:投保人 3:被保人
  11972. switch (index) {
  11973. case 0:
  11974. this.carfrontImg = "";
  11975. this.carbackImg = "";
  11976. this.CarFrontFile = ""; // 行驶证正面base64
  11977. this.CarBackFile = ""; // 行驶证背面base64
  11978. Object.keys(this.carform).forEach((key) => {
  11979. this.carform[key] = "";
  11980. });
  11981. break;
  11982. case 2:
  11983. this.userfrontImg = "";
  11984. this.userbackImg = "";
  11985. this.C02File = ""; // 车主正面base64
  11986. this.D02File = ""; // 车主背面base64
  11987. Object.keys(this.ownerInfoform).forEach((key) => {
  11988. this.ownerInfoform[key] = "";
  11989. });
  11990. break;
  11991. case 3:
  11992. this.userfrontImg = "";
  11993. this.userbackImg = "";
  11994. this.C03File = ""; // 投保人正面base64
  11995. this.D03File = ""; // 投保人背面base64
  11996. Object.keys(this.ownerInfoform).forEach((key) => {
  11997. this.ownerInfoform[key] = "";
  11998. });
  11999. break;
  12000. case 4:
  12001. this.userfrontImg = "";
  12002. this.userbackImg = "";
  12003. this.C04File = ""; // 被保人正面base64
  12004. this.D04File = ""; // 被保人背面base64
  12005. Object.keys(this.ownerInfoform).forEach((key) => {
  12006. this.ownerInfoform[key] = "";
  12007. });
  12008. break;
  12009. case 5:
  12010. this.businessImg = "";
  12011. // this.C04File = ''; // 被保人正面base64
  12012. // this.D04File = ''; // 被保人背面base64
  12013. // Object.keys(this.ownerInfoform).forEach((key) => {
  12014. // this.ownerInfoform[key] = '';
  12015. // });
  12016. break;
  12017. default:
  12018. }
  12019. },
  12020. bjdpreview(id) {
  12021. let params = {
  12022. companyId: id,
  12023. };
  12024. this.$api.letter.getByCompanyId(params).then((res) => {
  12025. if (res.code == "200") {
  12026. var data = res.data;
  12027. if (data.kindinfo != null) {
  12028. data.kindinfo.map((ele, index) => {
  12029. switch (ele.kindCode) {
  12030. case "A":
  12031. if (ele.amount == 1) {
  12032. ele.amount = "投保";
  12033. } else {
  12034. ele.amount = ele.amount;
  12035. }
  12036. break;
  12037. case "D4":
  12038. case "SY_FJ_YBW2":
  12039. ele.unitAmount = this.toChinesNum(ele.unitAmount);
  12040. break;
  12041. case "MJ1":
  12042. case "MJ2":
  12043. case "MJ3":
  12044. case "MJ4":
  12045. ele.deductibleRate = ele.deductibleRate + "%";
  12046. break;
  12047. default:
  12048. ele.amount = this.toChinesNum(ele.amount);
  12049. }
  12050. return ele;
  12051. });
  12052. }
  12053. data.logoImg = this.iconfftter(res.data.inscompany);
  12054. this.queryOrders = data;
  12055. this.$api.letter.getThemeByUserId(this.userId).then((res) => {
  12056. if (res.code == 200) {
  12057. if (res.data[0] == "GD") {
  12058. this.$refs.quotationDialogPro.setBackupVisible(true);
  12059. } else {
  12060. this.$refs.quotationDialog.setBackupVisible(true);
  12061. }
  12062. }
  12063. });
  12064. // if (
  12065. // this.$store.state.user.roles.managementSource &&
  12066. // this.$store.state.user.roles.managementSource == "3"
  12067. // ) {
  12068. // this.$refs.quotationDialogPro.setBackupVisible(true);
  12069. // } else {
  12070. // this.$refs.quotationDialog.setBackupVisible(true);
  12071. // }
  12072. }
  12073. });
  12074. },
  12075. //返回上一步
  12076. Back() { },
  12077. carcode(id, item) {
  12078. this.$api.letter.getQrCode(id).then((res) => {
  12079. if (res.code == "200") {
  12080. this.inscompany = res.data.inscompany; //保险公司
  12081. this.sumpremium = res.data.sumpremium; //总价
  12082. this.licenseNo = res.data.cPlateNo; //车牌号
  12083. this.applyName = res.data.cInsuredNme; //车主
  12084. this.jqpremium = res.data.jqpremium; //交强
  12085. this.sypremium = res.data.sypremium; //商业
  12086. this.taxamount = res.data.taxamount; //车船税
  12087. this.jypremium = res.data.jypremium; //驾意险
  12088. this.jqstartdate = res.data.jqStartDate; //交强起保日期
  12089. this.systartdate = res.data.syStartDate; //商业起保日期
  12090. // this.mobile = res.data.applyinfo.mobile;//投保人手机号
  12091. let qrCodeUrl = res.data.qrCodeUrl;
  12092. this.$api.letter.getThemeByUserId(this.userId).then((res) => {
  12093. if (res.code == 200) {
  12094. if (res.data[0] == "GD") {
  12095. this.codedialogVisiblePro = true;
  12096. this.qrcodeWidth = "154";
  12097. this.qrcodeHeight = "154";
  12098. } else {
  12099. this.codedialogVisible = true;
  12100. }
  12101. this.$nextTick(function () {
  12102. var _that = this;
  12103. switch (_that.inscompany) {
  12104. case "太平财险":
  12105. let anresult = qrCodeUrl.replace(/[\r\n]/g, "");
  12106. let animgBase64 = `data:image/png;base64,${anresult}`;
  12107. base64ToPath(animgBase64).then((path) => {
  12108. this.paycodeimg = path;
  12109. });
  12110. break;
  12111. case "华泰财险":
  12112. switch (item.apiType) {
  12113. case 1:
  12114. this.creatQrCode(qrCodeUrl);
  12115. break;
  12116. case 2:
  12117. let anresult = qrCodeUrl.replace(/[\r\n]/g, "");
  12118. let animgBase64 = `data:image/png;base64,${anresult}`;
  12119. base64ToPath(animgBase64).then((path) => {
  12120. this.paycodeimg = path;
  12121. });
  12122. break;
  12123. }
  12124. break;
  12125. case "大家财险":
  12126. switch (item.apiType) {
  12127. case 1:
  12128. this.creatQrCode(qrCodeUrl);
  12129. break;
  12130. case 2:
  12131. let anresult = qrCodeUrl.replace(/[\r\n]/g, "");
  12132. let animgBase64 = `data:image/png;base64,${anresult}`;
  12133. base64ToPath(animgBase64).then((path) => {
  12134. this.paycodeimg = path;
  12135. });
  12136. break;
  12137. }
  12138. break;
  12139. default:
  12140. this.creatQrCode(qrCodeUrl);
  12141. }
  12142. });
  12143. }
  12144. });
  12145. } else {
  12146. this.$message({ message: res.msg, type: "warning" });
  12147. }
  12148. });
  12149. },
  12150. //同步
  12151. synchronization() {
  12152. this.systartDate = this.jqstartDate;
  12153. this.syendDate = this.jqendDate;
  12154. },
  12155. add() {
  12156. // this.obtainProtocol();
  12157. if (this.isLetter == "1") {
  12158. this.$router.push({ path: "/letter/letter" });
  12159. }
  12160. for (let key in this.ownerInfo) {
  12161. this.ownerInfo[key] = "";
  12162. }
  12163. for (let key in this.policyHolderInfo) {
  12164. this.policyHolderInfo[key] = "";
  12165. }
  12166. for (let key in this.insuredPersonInfo) {
  12167. this.insuredPersonInfo[key] = "";
  12168. }
  12169. this.vehicleAndVesselTaxForm = {
  12170. taxRelifFlag: "1",
  12171. taxpayerIdentifier: "01",
  12172. };
  12173. // 清空保险公司列表
  12174. this.totalCompanyList = []
  12175. this.ownerInfo.provinceData = [];
  12176. this.insuredPersonInfo.provinceData = [];
  12177. this.policyHolderInfo.provinceData = [];
  12178. this.carInfo = JSON.parse(localStorage.getItem("carInfo"));
  12179. this.insureList = JSON.parse(localStorage.getItem("insureList"));
  12180. this.sychecked = false;
  12181. this.yonganchecked = false;
  12182. this.zhongmeichecked = false;
  12183. this.transferDateShow = false;
  12184. this.tbczcarShow = true //投保人同车主
  12185. // this.bbczcarShow = false, //被保人同车主
  12186. this.bbtbcarShow = true //被保人同投保人
  12187. // this.$refs.imageDialog.emptyList()
  12188. this.imageList1 = [];
  12189. this.imageList2 = [];
  12190. this.imageList3 = [];
  12191. this.imageList4 = [];
  12192. this.imageList5 = [];
  12193. this.imageList6 = [];
  12194. this.imgList1 = [];
  12195. this.imgList2 = [];
  12196. this.imgList3 = [];
  12197. this.imgList4 = [];
  12198. this.imgList5 = [];
  12199. this.imgList6 = [];
  12200. this.imgList7 = [];
  12201. this.imgList8 = [];
  12202. this.imgList9 = [];
  12203. this.imgList10 = [];
  12204. this.imgList11 = [];
  12205. this.imgList12 = [];
  12206. this.imgList13 = [];
  12207. this.imgList14 = [];
  12208. this.imgList15 = [];
  12209. this.imgList16 = [];
  12210. this.imgList17 = [];
  12211. this.imgList18 = [];
  12212. this.imgList19 = [];
  12213. this.imgList20 = [];
  12214. this.imgList21 = [];
  12215. this.imgList22 = [];
  12216. this.imgList23 = [];
  12217. this.imgList24 = [];
  12218. // 清空保险公司选中的意外险
  12219. this.zijintemplateSelection = "";
  12220. this.zhongantemplateSelection = "";
  12221. this.hengbangtemplateSelection = "";
  12222. this.taipingtemplateSelection = "";
  12223. this.insuranceHN = "";
  12224. this.renshoutemplateSelection = "";
  12225. this.dajiatemplateSelection = "";
  12226. this.accidentForm = {
  12227. fen: "1",
  12228. premium: 0,
  12229. };
  12230. this.accidentFormHN = {
  12231. allQuantity: "1",
  12232. quantity: "1",
  12233. };
  12234. this.productId = ''
  12235. this.hengbangaccidentalDrivingVo = {};
  12236. this.huanongaccidentalDrivingVo = {};
  12237. this.taipingaccidentalDrivingVo = {};
  12238. this.zhongmeiaccidentalDrivingVo = {};
  12239. this.accidentalDrivingVo = [];
  12240. this.zhonganaccidentalDrivingVo = {};
  12241. this.renshouaccidentalDrivingVo = {};
  12242. this.anshengaccidentalDrivingVo = {};
  12243. this.dajiaaccidentalDrivingVo = {};
  12244. // this.selectedOptions1 = [];
  12245. // this.selectedOptions2 = [];
  12246. // this.selectedOptions3 = [];
  12247. this.orderno = "";
  12248. this.quoteno = "";
  12249. this.lastCompanyId = "";
  12250. this.HistoryList = [];
  12251. this.jqstartDate = this.transformTime1();
  12252. this.jqendDate = this.oneYearPast1(this.jqstartDate);
  12253. this.systartDate = this.transformTime1();
  12254. this.syendDate = this.oneYearPast1(this.jqstartDate);
  12255. this.policyNumberForm = {
  12256. jqpolicyno: "",
  12257. sypolicyno: "",
  12258. jypolicyno: "",
  12259. jqpremium: "",
  12260. sypremium: "",
  12261. jypremium: "",
  12262. taxamount: "",
  12263. commissionFeevalue: "",
  12264. otherFeevalue: "",
  12265. jqSuperviseCostsProportion: "",
  12266. sySuperviseCostsProportion: "",
  12267. noSuperviseCostsProportion: "",
  12268. jqOtherCostsProportion: "",
  12269. syOtherCostsProportion: "",
  12270. noOtherCostsProportion: "",
  12271. jqReceivableProportion: "",
  12272. syReceivableProportion: "",
  12273. noReceivableProportion: "",
  12274. jqPolicyList: [],
  12275. syPolicyList: [],
  12276. jqSignList: [],
  12277. noPolicyList: [],
  12278. noCostsProportion: '',
  12279. jqCostsProportion: '',
  12280. syCostsProportion: '',
  12281. };
  12282. },
  12283. toChinesNum(num) {
  12284. if (num.toString().length == 4) {
  12285. let overQian = Math.floor(num / 1000);
  12286. let result = overQian + "千";
  12287. return result;
  12288. } else {
  12289. let overWan = Math.floor(num / 10000);
  12290. let result = overWan + "万";
  12291. return result;
  12292. }
  12293. },
  12294. reportDrop(event) {
  12295. event.preventDefault();
  12296. event.stopPropagation();
  12297. },
  12298. tabLiScroll(id, idx) {
  12299. this.tabLiIndex = idx;
  12300. document.getElementById(id).scrollIntoView({ behavior: "smooth" });
  12301. },
  12302. handleScroll(id) {
  12303. document.getElementById(id).scrollIntoView({ behavior: "smooth" });
  12304. },
  12305. },
  12306. };
  12307. </script>
  12308. <style>
  12309. /* .customNotifyClass {
  12310. word-break: break-all;
  12311. width: 600px;
  12312. } */
  12313. </style>
  12314. <style lang="scss" scoped>
  12315. .el-row{
  12316. display: flex;
  12317. flex-wrap: wrap;
  12318. align-content: flex-start;
  12319. }
  12320. // .marginL {
  12321. // margin-left: 10px;
  12322. // }
  12323. .el-notification {
  12324. width: 600px;
  12325. }
  12326. .styleB .el-upload--picture-card {
  12327. // display: none;
  12328. opacity: 0;
  12329. }
  12330. .ORcodebody {
  12331. height: auto;
  12332. background-color: #fff;
  12333. //background: url(../../../assets/image/group.png) #fff;
  12334. padding: 16px;
  12335. }
  12336. .csstool {
  12337. font-weight: 600;
  12338. color: #606266;
  12339. font-size: 14px;
  12340. margin: 0 20px;
  12341. span {
  12342. margin-right: 5px;
  12343. }
  12344. }
  12345. .ORcode {
  12346. width: 100%;
  12347. height: auto;
  12348. display: flex;
  12349. justify-content: center;
  12350. align-items: center;
  12351. padding: 30px;
  12352. box-sizing: border-box;
  12353. &>div {
  12354. width: 176px;
  12355. height: 176px;
  12356. border: 1px solid var(--themeColor);
  12357. border-radius: 5px;
  12358. }
  12359. }
  12360. .ORtitle {
  12361. width: 100%;
  12362. padding-bottom: 20px;
  12363. box-sizing: border-box;
  12364. &>div {
  12365. width: 100%;
  12366. margin: 10px 0;
  12367. font-size: 14px;
  12368. &>span {
  12369. &:nth-child(1) {
  12370. color: #868b98;
  12371. text-align: end;
  12372. width: 150px;
  12373. }
  12374. &:nth-child(2) {
  12375. color: #333333;
  12376. }
  12377. }
  12378. }
  12379. }
  12380. .Risk {
  12381. width: 100%;
  12382. height: auto;
  12383. display: flex;
  12384. flex-direction: column;
  12385. align-items: center;
  12386. font-size: 12px;
  12387. }
  12388. .dis {
  12389. display: flex;
  12390. }
  12391. .align {
  12392. align-items: center;
  12393. }
  12394. .jus {
  12395. justify-content: space-between;
  12396. }
  12397. .shangyexian {
  12398. padding-left: 100px;
  12399. }
  12400. .headertotal {
  12401. padding: 30px;
  12402. }
  12403. .my-label {
  12404. background: #e1f3d8;
  12405. }
  12406. .my-content {
  12407. background: #fde2e2;
  12408. color: aqua;
  12409. }
  12410. .el-button--mini {
  12411. padding: 5px;
  12412. }
  12413. #qqq {
  12414. background-color: #111;
  12415. width: 300px;
  12416. height: 300px;
  12417. margin: 0 auto;
  12418. position: relative;
  12419. }
  12420. #qrCode {
  12421. display: inline-block;
  12422. margin: 0 auto;
  12423. position: relative;
  12424. top: 15%;
  12425. img {
  12426. width: 200px;
  12427. height: 200px;
  12428. background-color: #fff;
  12429. padding: 6px;
  12430. }
  12431. }
  12432. .code {
  12433. box-sizing: border-box;
  12434. display: flex;
  12435. flex-direction: column;
  12436. justify-content: space-between;
  12437. align-items: center;
  12438. &>span {
  12439. margin-bottom: 10px;
  12440. }
  12441. }
  12442. .code_name {
  12443. width: 350px;
  12444. display: flex;
  12445. justify-content: space-between;
  12446. align-items: center;
  12447. font-weight: bold;
  12448. &>span {
  12449. &:nth-child(1) {
  12450. color: #979797;
  12451. width: 120px;
  12452. text-align: right;
  12453. }
  12454. &:nth-child(2) {
  12455. color: #2d2d2d;
  12456. width: 120px;
  12457. text-align: left;
  12458. }
  12459. }
  12460. }
  12461. .header {
  12462. font-size: 18px;
  12463. font-weight: bold;
  12464. }
  12465. .body {
  12466. border-top: none;
  12467. padding-bottom: 100px;
  12468. box-sizing: border-box;
  12469. }
  12470. .u-f-ac {
  12471. -webkit-box-align: center;
  12472. align-items: center;
  12473. padding: 10px;
  12474. }
  12475. .bodyTitle {
  12476. height: 45px;
  12477. background: #f3f3f3;
  12478. border: 1px solid #dddddd;
  12479. line-height: 45px;
  12480. padding: 0 20px;
  12481. box-sizing: border-box;
  12482. }
  12483. .start {
  12484. justify-content: flex-start;
  12485. }
  12486. .end {
  12487. justify-content: flex-end;
  12488. }
  12489. .descriptions {
  12490. padding: 20px;
  12491. box-sizing: border-box;
  12492. display: flex;
  12493. flex-direction: column;
  12494. }
  12495. .bodys {
  12496. display: flex;
  12497. justify-content: space-between;
  12498. align-items: center;
  12499. flex-wrap: wrap;
  12500. }
  12501. .bodys1 {
  12502. display: flex;
  12503. justify-content: center;
  12504. align-items: center;
  12505. flex-wrap: wrap;
  12506. }
  12507. .widths {
  12508. width: 230px;
  12509. }
  12510. .widths1 {
  12511. width: 300px;
  12512. }
  12513. .back {
  12514. color: #333333;
  12515. // font-weight: 700;
  12516. }
  12517. .home {
  12518. // padding-left: 10px;
  12519. box-sizing: border-box;
  12520. padding-bottom: 10px;
  12521. border-bottom: 1px solid #eef1f6;
  12522. &>span {
  12523. margin-right: 10px;
  12524. }
  12525. }
  12526. .border-red {
  12527. border: 1px solid #ff0606;
  12528. }
  12529. .border-blue {
  12530. border: 1px solid #0634ff;
  12531. }
  12532. .hovers {
  12533. margin: 20px 0;
  12534. cursor: pointer;
  12535. padding: 10px 0;
  12536. box-sizing: border-box;
  12537. box-shadow: 0 2px 8px 0 rgba(231, 163, 36, 0.205);
  12538. border-radius: 8px;
  12539. .offer-time {
  12540. margin: 20px 0 0px 100px;
  12541. padding: 10px;
  12542. background: rgba(45, 77, 137, 0.06);
  12543. &>span {
  12544. margin: 0 10px;
  12545. }
  12546. }
  12547. }
  12548. /* 内容待定 */
  12549. .coll {
  12550. font-size: 14px;
  12551. }
  12552. .display {
  12553. display: flex;
  12554. justify-content: center;
  12555. align-items: center;
  12556. box-sizing: border-box;
  12557. }
  12558. .black {
  12559. color: #000;
  12560. }
  12561. .gray {
  12562. color: #999;
  12563. }
  12564. .OCR {
  12565. font-weight: bold;
  12566. color: #333;
  12567. margin: 20px;
  12568. }
  12569. .slot {
  12570. position: absolute;
  12571. width: 100%;
  12572. height: 100%;
  12573. left: 0;
  12574. top: 0;
  12575. cursor: default;
  12576. text-align: center;
  12577. color: #fff;
  12578. opacity: 0;
  12579. font-size: 20px;
  12580. background-color: rgba(0, 0, 0, 0.5);
  12581. transition: opacity 0.3s;
  12582. display: flex;
  12583. justify-content: center;
  12584. align-items: center;
  12585. &>i {
  12586. margin: 10px;
  12587. color: #fff;
  12588. font-size: 30px;
  12589. font-weight: bold;
  12590. cursor: pointer;
  12591. }
  12592. &:hover {
  12593. opacity: 1;
  12594. }
  12595. }
  12596. .companyhead {
  12597. width: 100%;
  12598. margin: 0 auto;
  12599. padding: 15px 10px;
  12600. color: #333;
  12601. font-weight: bold;
  12602. font-size: 14px;
  12603. background-color: rgba(0, 89, 255, 0.1);
  12604. }
  12605. .position-left {
  12606. width: calc(100% - 220px);
  12607. }
  12608. .position-collapse-left {
  12609. width: calc(100% - 80px);
  12610. }
  12611. .footer {
  12612. position: fixed;
  12613. bottom: 0;
  12614. right: 0;
  12615. background-color: #fff;
  12616. z-index: 9;
  12617. padding: 20px;
  12618. box-sizing: border-box;
  12619. box-shadow: 0 0 1px 0 #ccc;
  12620. transition: all 0.1s, box-shadow 0.5s;
  12621. &.shadow {
  12622. box-shadow: 0 -10px 10px -10px #ccc;
  12623. }
  12624. }
  12625. .Enclosure {
  12626. width: 100%;
  12627. background-color: #fff;
  12628. padding: 20px;
  12629. box-sizing: border-box;
  12630. margin-bottom: 15px;
  12631. border-radius: 6px;
  12632. border: 1px solid #ebeef5;
  12633. transition: all 0.2s ease-in-out;
  12634. box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
  12635. }
  12636. .Enclosure:hover {
  12637. box-shadow: 0 0 10px 0 #d42427;
  12638. }
  12639. .icon-img {
  12640. display: block;
  12641. width: 30px;
  12642. height: 30px;
  12643. }
  12644. .Anchor-link {
  12645. width: 40px;
  12646. background-color: #fff;
  12647. box-shadow: #ccc 0 0px 3px 0;
  12648. border-radius: 6px;
  12649. position: fixed;
  12650. top: 50%;
  12651. right: 0;
  12652. z-index: 99;
  12653. div {
  12654. margin: 5px;
  12655. border-bottom: 1px solid #f2f2f2;
  12656. cursor: pointer;
  12657. display: block;
  12658. }
  12659. }
  12660. .color {
  12661. padding-top: 150px;
  12662. margin-top: -150px;
  12663. }
  12664. .more {
  12665. width: 100%;
  12666. padding: 20px;
  12667. box-sizing: border-box;
  12668. }
  12669. .more-title {
  12670. padding: 15px 10px;
  12671. background-color: #f7f7f9;
  12672. // border-bottom: 1px solid #e3e3e3;
  12673. font-size: 14px;
  12674. }
  12675. .more-data {
  12676. padding: 10px;
  12677. border-bottom: 1px solid #f2f2f2;
  12678. color: #333;
  12679. font-size: 14px;
  12680. }
  12681. .Driving-risk {
  12682. padding-left: 100px;
  12683. // padding-top:20px
  12684. }
  12685. .checkbox {
  12686. transform: scale(1.2);
  12687. margin-right: 20px;
  12688. line-height: 32px;
  12689. }
  12690. .insure-long-term {
  12691. display: inline-flex;
  12692. padding-left: 8px;
  12693. padding-right: 8px;
  12694. background: var(--themeColor);
  12695. color: #fff;
  12696. font-size: 12px;
  12697. margin-left: -5px;
  12698. border-radius: 0px 5px 5px 0px;
  12699. cursor: pointer;
  12700. }
  12701. .textareaSty {
  12702. width: 160px;
  12703. height: 210px;
  12704. border: 1px solid #d2d2d2;
  12705. border-radius: 4px;
  12706. img {
  12707. width: 50px;
  12708. height: 50px;
  12709. }
  12710. }
  12711. .image-title {
  12712. width: 100px;
  12713. height: 30px;
  12714. color: #fff;
  12715. text-align: center;
  12716. line-height: 30px;
  12717. font-weight: bold;
  12718. margin-bottom: 15px;
  12719. background: #fc4a1a;
  12720. background: #f2994a;
  12721. /* fallback for old browsers */
  12722. background: -webkit-linear-gradient(to left, #f2c94c, #f2994a);
  12723. /* Chrome 10-25, Safari 5.1-6 */
  12724. background: linear-gradient(to left, #f2c94c, #f2994a);
  12725. /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
  12726. }
  12727. .aaa {
  12728. /deep/ {
  12729. margin-bottom: 20px;
  12730. margin-right: 30px;
  12731. span {
  12732. display: inline-block;
  12733. margin-bottom: 10px;
  12734. }
  12735. .el-upload .el-upload-dragger {
  12736. width: 180px;
  12737. height: 120px;
  12738. border: 1px dashed #c0ccda;
  12739. padding: 0;
  12740. }
  12741. .el-upload-list--picture-card .el-upload-list__item {
  12742. width: 180px;
  12743. height: 120px;
  12744. }
  12745. .el-upload-list__item:first-child {
  12746. margin-top: 0;
  12747. }
  12748. .el-upload--picture-card {
  12749. width: 180px;
  12750. height: 120px;
  12751. }
  12752. .el-upload-list__item {
  12753. width: 180px;
  12754. height: 120px;
  12755. margin: 0 !important;
  12756. display: block !important;
  12757. }
  12758. .el-upload-list--picture-card .el-upload-list__item-thumbnail {
  12759. width: 180px;
  12760. height: 120px;
  12761. }
  12762. }
  12763. }
  12764. .jyxStyle>span {
  12765. display: inline-block;
  12766. text-align: center;
  12767. }
  12768. .tab-style {
  12769. width: 120px;
  12770. li {
  12771. text-align: right;
  12772. padding-right: 20px;
  12773. line-height: 40px;
  12774. cursor: pointer;
  12775. box-sizing: border-box;
  12776. border-right: 1px solid #e2e5eb;
  12777. }
  12778. li:focus {
  12779. background: rgba(212, 36, 38, 0.1);
  12780. border-right: 2px solid var(--themeColor);
  12781. color: var(--themeColor);
  12782. }
  12783. }
  12784. .tabLi-style {
  12785. background: rgba(212, 36, 38, 0.1);
  12786. border-right: 2px solid var(--themeColor);
  12787. color: var(--themeColor);
  12788. }
  12789. .scan-code {
  12790. div {
  12791. margin-top: 10px;
  12792. }
  12793. }
  12794. /* 清除图片上传动画bug */
  12795. /deep/ {
  12796. .proSaomazhifucodeClass .el-dialog__header {
  12797. background: rgba(45, 77, 137, 0.1);
  12798. font-weight: bold;
  12799. }
  12800. .proSaomazhifucodeClass .el-dialog__footer {
  12801. border-top: 1px solid #eef1f6;
  12802. }
  12803. .el-upload-list__item {
  12804. transition: none !important;
  12805. }
  12806. .el-checkbox__input {
  12807. &.is-checked {
  12808. .el-checkbox__inner {
  12809. background-color: #d42426;
  12810. border-color: #d42426;
  12811. }
  12812. }
  12813. }
  12814. .el-checkbox__inner {
  12815. border: 1px solid var(--themeColor);
  12816. &:hover {
  12817. border-color: var(--themeColorHover);
  12818. }
  12819. &:focus {
  12820. border-color: var(--themeColor);
  12821. }
  12822. }
  12823. .el-upload .el-upload-dragger {
  12824. height: 250px;
  12825. width: 400px;
  12826. border: 1px dashed #ced4da;
  12827. }
  12828. // .el-button--warning {
  12829. // color: #fff;
  12830. // background-color: #D42426;
  12831. // border-color: #D42426;
  12832. // &:hover {
  12833. // color: #fff;
  12834. // background-color: #ee6f00ce;
  12835. // border-color: #ee6f00ce;
  12836. // }
  12837. // }
  12838. .el-descriptions-item__label {
  12839. &:not(.is-bordered-label) {
  12840. color: #333;
  12841. }
  12842. }
  12843. // .el-radio__input.is-checked + .el-radio__label {
  12844. // color: #ff7000;
  12845. // }
  12846. // .el-radio__input.is-checked .el-radio__inner {
  12847. // border-color: #ff7000;
  12848. // background: #ff7000;
  12849. // }
  12850. // .el-radio__inner {
  12851. // &:hover {
  12852. // border-color: #ff7000;
  12853. // }
  12854. // }
  12855. // .el-input--small .el-icon-date {
  12856. // color: #ee6f00ce;
  12857. // }
  12858. .el-select {
  12859. width: 100%;
  12860. }
  12861. .el-date-editor.el-input {
  12862. width: 100%;
  12863. }
  12864. .el-cascader--small {
  12865. width: 100%;
  12866. }
  12867. .styleB {
  12868. height: 128px;
  12869. }
  12870. .styleB .el-upload--picture-card {
  12871. display: none;
  12872. }
  12873. .saomazhifucodeClass .el-dialog__body,
  12874. .saomazhifucodeClass .el-dialog__header,
  12875. .saomazhifucodeClass .el-dialog__footer {
  12876. padding: 0;
  12877. background: #f4e9e9;
  12878. }
  12879. .saomazhifucodeClass .el-dialog__body {
  12880. padding: 15px;
  12881. }
  12882. .saomazhifucodeClass .el-dialog__footer {
  12883. background: #f4e9e9;
  12884. padding-bottom: 15px;
  12885. }
  12886. .saomazhifucodeClass .el-dialog__headerbtn {
  12887. margin-top: 10px;
  12888. }
  12889. .zmDriving {
  12890. thead .el-table-column--selection .cell {
  12891. display: none !important;
  12892. }
  12893. }
  12894. .line_style {
  12895. margin-top: 20px;
  12896. }
  12897. .el-input-group__append {
  12898. vertical-align: baseline;
  12899. }
  12900. .pinganTable .el-table__header-wrapper .el-checkbox {
  12901. display: none;
  12902. }
  12903. }
  12904. </style>
  12905. <style lang="scss" scoped>
  12906. .company-checked {
  12907. background: rgba(45,77,137,0.15);
  12908. padding: 12px 20px;
  12909. box-sizing: border-box;
  12910. margin-top: 10px;
  12911. font-size: 13px;
  12912. color: #333;
  12913. line-height: 24px;
  12914. overflow-x: auto;
  12915. .width1280 {
  12916. min-width: 1280px;
  12917. }
  12918. .bg-white {
  12919. background: #FFF;
  12920. padding: 10px 12px;
  12921. border-radius: 4px;
  12922. width: 100%;
  12923. }
  12924. .flex-1 {
  12925. flex: 1;
  12926. }
  12927. .w-60 {
  12928. box-sizing: border-box;
  12929. width: 60px;
  12930. text-align: center;
  12931. border-left: 1px solid #FCE5BD;
  12932. }
  12933. .w-50 {
  12934. box-sizing: border-box;
  12935. width: 60px;
  12936. text-align: center;
  12937. border-left: 1px solid #FCE5BD;
  12938. }
  12939. .card-bg {
  12940. background: #FFF;
  12941. padding: 10px;
  12942. display: flex;
  12943. }
  12944. .card-xianzhong {
  12945. border: 1px solid #2AB79E;
  12946. flex: 1;
  12947. background: rgba(42, 183, 158, 0.15);
  12948. border-radius: 0;
  12949. text-align: center;
  12950. color: #2AB79E;
  12951. // border: 10px solid #FFF;
  12952. font-size: 15px;
  12953. padding: 0 18px;
  12954. display: flex;
  12955. flex-direction: column;
  12956. justify-content: center;
  12957. .card-btn {
  12958. margin-top: 20px;
  12959. border-radius: 2px;
  12960. border: 1px solid #2AB79E;
  12961. background: #FFF;
  12962. padding: 4px 8px;
  12963. font-size: 16px;
  12964. font-weight: 600;
  12965. }
  12966. }
  12967. .card-table {
  12968. display: flex;
  12969. margin-top: 12px;
  12970. .table-title {
  12971. color: #333;
  12972. width: 58px;
  12973. font-size: 14px;
  12974. }
  12975. .table-list {
  12976. flex: 1;
  12977. .table-list-title {
  12978. background: #FDEDC2;
  12979. border: 1px solid #FCE5BD;
  12980. color: #333;
  12981. line-height: 28px;
  12982. padding-left: 12px;
  12983. display: flex;
  12984. }
  12985. .table-list-content {
  12986. line-height: 28px;
  12987. padding-left: 12px;
  12988. display: flex;
  12989. align-items: center;
  12990. border: 1px solid #FDEDC2;
  12991. border-top: none;
  12992. background: #FFF;
  12993. img {
  12994. width: 14px;
  12995. height: 14px;
  12996. transform: translateY(2px);
  12997. }
  12998. span {
  12999. margin-left: 8px;
  13000. font-size: 14px;
  13001. }
  13002. }
  13003. }
  13004. }
  13005. .card-mingxi {
  13006. border: 1px solid #FD9A25;
  13007. flex: 1;
  13008. background: rgba(253, 154, 37, 0.15);
  13009. padding: 8px 12px;
  13010. font-size: 13px;
  13011. .card-mingxi-title {
  13012. color: #FD9A25;
  13013. font-size: 15px;
  13014. span {
  13015. color: #FFF;
  13016. background: linear-gradient( 90deg, #FF981F 0%, #FF5C00 100%);
  13017. padding: 4px 8px;
  13018. border-radius: 2px;
  13019. }
  13020. }
  13021. }
  13022. .fuwu {
  13023. background: #E9F1FF;
  13024. border: 1px solid #315BA9;
  13025. .card-mingxi-title {
  13026. color: #315BA9;
  13027. }
  13028. .table-list-title {
  13029. background: #C1DAFF !important;
  13030. border: 1px solid #C1DAFF !important;
  13031. }
  13032. .table-list-content {
  13033. border-color: #C1DAFF !important;
  13034. }
  13035. .w-50 {
  13036. border-color: #afccfa !important;
  13037. }
  13038. .flex-1 {
  13039. border-right: 1px solid #afccfa;
  13040. }
  13041. .w-55 {
  13042. border-left: none !important;
  13043. }
  13044. }
  13045. .baoxian {
  13046. padding: 10px;
  13047. border: 1px solid rgba(45,77,137,0.5);
  13048. // background: #F2F4F8;
  13049. background: #f3f3f3;
  13050. display: flex;
  13051. flex-direction: column;
  13052. .card-mingxi-title {
  13053. color: #333;
  13054. display: flex;
  13055. }
  13056. .table-list-title {
  13057. background: #DCDCE8 !important;
  13058. }
  13059. .table-list-title, .table-list-content {
  13060. padding-left: 0 !important;
  13061. text-align: center;
  13062. border-color: #DCDCE8 !important;
  13063. }
  13064. .table-list-title {
  13065. padding-left: 0 !important;
  13066. text-align: center;
  13067. border: 1px solid #DCDCE8 !important;
  13068. }
  13069. .flex-1 {
  13070. border-left: 1px solid #DCDCE8;
  13071. }
  13072. .w-40 {
  13073. box-sizing: border-box;
  13074. width: 50px;
  13075. text-align: center;
  13076. }
  13077. }
  13078. .youhui {
  13079. background: #FEEEEC;
  13080. border: 1px solid #ED5626;
  13081. .card-mingxi-title {
  13082. color: #ED5626;
  13083. }
  13084. .table-list-title {
  13085. background: #FFD2C8 !important;
  13086. border: 1px solid #FFD2C8 !important;
  13087. }
  13088. .table-list-content {
  13089. border-color: #FFD2C8 !important;
  13090. padding-left: 0 !important;
  13091. }
  13092. .table-list-line {
  13093. border-bottom: 1px solid #FFD2C8;
  13094. border-right: 1px solid #FFD2C8;
  13095. padding-left: 6px;
  13096. }
  13097. .table-list-line-last {
  13098. border-bottom: none !important;
  13099. }
  13100. .w-60 {
  13101. width: 70px !important;
  13102. border-color: #fabdae !important;
  13103. }
  13104. .w-66 {
  13105. border-left: none !important;
  13106. }
  13107. }
  13108. .el-popover {
  13109. margin-right: 20px;
  13110. padding: 0 !important;
  13111. }
  13112. .gray-style {
  13113. border: 1px solid #333333;
  13114. border-radius: 2px;
  13115. color: #333;
  13116. text-align: center;
  13117. line-height: 24px;
  13118. box-sizing: border-box;
  13119. padding: 4px 8px;
  13120. margin-right: 10px;
  13121. opacity: .65;
  13122. // transition: all ease .3s;
  13123. img {
  13124. margin-bottom: -4px;
  13125. }
  13126. &:hover {
  13127. opacity: 1;
  13128. }
  13129. }
  13130. .blue-style {
  13131. // background: #2D4D89;
  13132. background: linear-gradient( 270deg, #0052FF 0%, #6899FF 100%);
  13133. // border: 1px solid #2D4D89;
  13134. border: none;
  13135. color: #FFF;
  13136. border-radius: 2px;
  13137. padding: 4px 8px;
  13138. text-align: center;
  13139. line-height: 24px;
  13140. box-sizing: border-box;
  13141. opacity: 1;
  13142. position: relative;
  13143. // ::after {
  13144. // content: '✔';
  13145. // color: red;
  13146. // position: absolute;
  13147. // bottom: 0;
  13148. // right: 0;
  13149. // width: 4px;
  13150. // height: 4px;
  13151. // }
  13152. }
  13153. .blue-text {
  13154. color: #2D4D89;
  13155. }
  13156. .left-title {
  13157. font-size: 14px;
  13158. margin-bottom: 12px;
  13159. }
  13160. .blue-button {
  13161. background: #2D4D89;
  13162. color: #FFF;
  13163. padding: 4px 8px;
  13164. line-height: 24px;
  13165. border: 1px solid #2D4D89;
  13166. border-radius: 2px;
  13167. }
  13168. .company-checked-card {
  13169. background: #FFF;
  13170. padding: 12px;
  13171. margin-top: 12px;
  13172. > div {
  13173. display: flex;
  13174. margin: 10px;
  13175. }
  13176. .checked-card-title {
  13177. width: 60px;
  13178. }
  13179. span {
  13180. margin-right: 20px;
  13181. }
  13182. }
  13183. .company-checked-right {
  13184. padding: 0 12px;
  13185. color: #333;
  13186. line-height: 22px;
  13187. font-size: 14px;
  13188. position: relative;
  13189. .btn-list {
  13190. display: flex;
  13191. justify-content: right;
  13192. align-items: center;
  13193. span {
  13194. margin: 0 10px;
  13195. color: #2D4D89;
  13196. font-size: 12px;
  13197. }
  13198. }
  13199. }
  13200. }
  13201. .typedialog-style {
  13202. .typedialog-title {
  13203. font-size: 15px;
  13204. line-height: 30px;
  13205. font-weight: 700;
  13206. margin: 10px 0;
  13207. color: #000;
  13208. }
  13209. >>> .table-header {
  13210. background: #F7F7F9;
  13211. color: #333333;
  13212. }
  13213. .el-checkbox-group {
  13214. font-size: 16px;
  13215. color: #333;
  13216. margin-bottom: 20px;
  13217. }
  13218. .more-data-left {
  13219. border: 1px solid #F5F5F8;
  13220. line-height: 48px;
  13221. padding: 0 20px;
  13222. border-top: none;
  13223. position: relative;
  13224. .zhuxian {
  13225. position: absolute;
  13226. top: 0;
  13227. right: 0;
  13228. padding: 4px 12px;
  13229. color: #FFF;
  13230. background: #ED9E23;
  13231. font-size: 13px;
  13232. line-height: 12px;
  13233. }
  13234. }
  13235. .more-data-right {
  13236. border: 1px solid #F5F5F8;
  13237. line-height: 48px;
  13238. padding: 0 20px;
  13239. border-top: none;
  13240. border-left: none;
  13241. }
  13242. >>> .is-checked, >>> .is-indeterminate{
  13243. .el-checkbox__inner {
  13244. background: #2D4D89 !important;
  13245. border-color: #2D4D89 !important;
  13246. }
  13247. .el-checkbox__label {
  13248. color: #2D4D89;
  13249. }
  13250. }
  13251. .opacity1 {
  13252. opacity: 1;
  13253. }
  13254. .opacity0 {
  13255. opacity: .65;
  13256. }
  13257. .jiayi-style {
  13258. font-size: 13px;
  13259. text-align: center;
  13260. .el-col {
  13261. border: 1px solid #2D4D89;
  13262. margin: 0 1px;
  13263. background: rgba(45, 77, 137, 0.05);
  13264. }
  13265. .jiayi-style-title {
  13266. background: #2D4D89;
  13267. color: #FFF;
  13268. line-height: 40px;
  13269. }
  13270. .jiayi-style-line {
  13271. color: #333;
  13272. padding: 16px 20px;
  13273. }
  13274. }
  13275. }
  13276. .typedialog-style1 {
  13277. background: rgba(42,183,158,0.15);
  13278. padding: 20px;
  13279. margin-bottom: 20px;
  13280. border-radius: 10px;
  13281. }
  13282. .typedialog-style2 {
  13283. background: rgba(253,154,37,0.15);
  13284. padding: 20px;
  13285. margin-bottom: 20px;
  13286. border-radius: 10px;
  13287. }
  13288. .typedialog-style3 {
  13289. background: #E9F1FF;
  13290. padding: 20px;
  13291. border-radius: 10px;
  13292. }
  13293. .addyiwai {
  13294. >>> .el-input-group__append, >>> .el-input-group__prepend {
  13295. padding: 0 10px;
  13296. }
  13297. >>> .el-dialog__body {
  13298. padding: 24px;
  13299. background: #F2F2F2;
  13300. }
  13301. .addyiwai-title {
  13302. color: #262626;
  13303. font-size: 16px;
  13304. line-height: 24px;
  13305. margin-right: 10px;
  13306. }
  13307. .addyiwai-title-btn {
  13308. background: #EAEDF1;
  13309. box-shadow: 0px 2px 0px 0px rgba(0,0,0,0.02);
  13310. border-radius: 2px 2px 2px 2px;
  13311. border: 1px solid #D9D9D9;
  13312. font-size: 14px;
  13313. color: #2D4D89;
  13314. padding: 4px 10px;
  13315. cursor: pointer;
  13316. }
  13317. .el-select {
  13318. width: 200px;
  13319. }
  13320. }
  13321. .teYuedialog-style {
  13322. >>> .el-dialog__body {
  13323. padding: 10px 20px;
  13324. }
  13325. >>> .el-input__inner:focus {
  13326. border-color: #F96646;
  13327. }
  13328. >>> .el-input-group__append, .el-input-group__prepend, >>> .el-button--primary, .el-button--primary:focus {
  13329. border-color: #F96646;
  13330. background: linear-gradient( 90deg, #F6734A 0%, #F14B3A 100%);
  13331. color: #FFF;
  13332. }
  13333. >>> .is-checked, >>> .is-indeterminate{
  13334. .el-checkbox__inner {
  13335. background: #F96646 !important;
  13336. border-color: #F96646 !important;
  13337. }
  13338. .el-checkbox__label {
  13339. color: #F96646;
  13340. }
  13341. }
  13342. >>> .table-header {
  13343. background: #F7F7F9;
  13344. color: #333333;
  13345. }
  13346. .table-title {
  13347. font-size: 12px;
  13348. color: #333;
  13349. line-height: 20px;
  13350. padding: 2px 20px;
  13351. }
  13352. .dialog-footer {
  13353. display: flex;
  13354. align-items: center;
  13355. > span {
  13356. color: #333;
  13357. font-size: 13px;
  13358. }
  13359. }
  13360. }
  13361. .red-btn {
  13362. >>> .el-input-group__append {
  13363. border-color: #D42426;
  13364. background: #D42426;
  13365. }
  13366. >>> .el-input__prefix {
  13367. color: #D42426;
  13368. }
  13369. .insure-long-term {
  13370. position: relative;
  13371. top: 1px;
  13372. }
  13373. >>> .input {
  13374. border-radius: 4px 0 0 4px;
  13375. }
  13376. }
  13377. .synchronous {
  13378. width: 75px;
  13379. height: 45px;
  13380. line-height: 45px;
  13381. color: #fff;
  13382. position: relative;
  13383. img {
  13384. position: absolute;
  13385. top: 0;
  13386. left: 0;
  13387. width: 75px;
  13388. height: 45px;
  13389. z-index: 0;
  13390. }
  13391. > div {
  13392. width: 75px;
  13393. height: 45px;
  13394. line-height: 45px;
  13395. color: #fff;
  13396. cursor: pointer;
  13397. position: relative;
  13398. text-align: center;
  13399. font-size: 14px;
  13400. }
  13401. }
  13402. .bxgs-list {
  13403. position: relative;
  13404. .baofeijisuan {
  13405. position: absolute;
  13406. right: 8.333%;
  13407. top: 0;
  13408. background: linear-gradient( 270deg, #0052FF 0%, #6899FF 100%);
  13409. border-radius: 4px;
  13410. // border: 1px solid rgb(26, 77, 219);
  13411. // color: rgb(26, 77, 219);
  13412. color: #FFF;
  13413. font-size: 14px;
  13414. line-height: 20px;
  13415. padding: 4px 8px;
  13416. font-weight: 700;
  13417. }
  13418. }
  13419. .coefficient {
  13420. width: 100px;
  13421. >>> .el-input__inner {
  13422. border: none;
  13423. }
  13424. }
  13425. .loader {
  13426. /* Wave text loader made by: csozi | Website: english.csozi.hu*/
  13427. height: 30px;
  13428. .text {
  13429. margin: 0;
  13430. line-height: 24px;
  13431. color: red;
  13432. font-weight: bolder;
  13433. background: -webkit-linear-gradient(45deg, orange, orangered); /* Chrome, Safari */
  13434. background: linear-gradient(45deg, orange, orangered); /* Standard syntax */
  13435. -webkit-background-clip: text; /* Chrome, Safari */
  13436. background-clip: text;
  13437. -webkit-text-fill-color: transparent; /* Chrome, Safari */
  13438. color: transparent; /* Standard syntax (currently not supported by browsers) */
  13439. font-family: "'Gill Sans', 'Gill Sans MT', 'Calibri', 'Trebuchet MS', sans-serif'";
  13440. }
  13441. @keyframes letter {
  13442. 0% {
  13443. font-size: 14px;
  13444. }
  13445. 50% {
  13446. font-size: 15px;
  13447. }
  13448. 100% {
  13449. font-size: 14px;
  13450. }
  13451. }
  13452. .letter {
  13453. animation: letter 1s infinite;
  13454. }
  13455. .letter1 {
  13456. animation-delay: 0s;
  13457. }
  13458. .letter2 {
  13459. animation-delay: -0.9s;
  13460. }
  13461. .letter3 {
  13462. animation-delay: -0.8s;
  13463. }
  13464. .letter4 {
  13465. animation-delay: -0.7s;
  13466. }
  13467. .letter5 {
  13468. animation-delay: -0.6s;
  13469. }
  13470. .letter6 {
  13471. animation-delay: -0.5s;
  13472. }
  13473. .letter7 {
  13474. animation-delay: -0.4s;
  13475. }
  13476. .letter8 {
  13477. animation-delay: -0.3s;
  13478. }
  13479. .letter9 {
  13480. animation-delay: -0.2s;
  13481. }
  13482. .letter10 {
  13483. animation-delay: -0.1s;
  13484. }
  13485. }
  13486. .xianbie {
  13487. // border: 5px dashed #D42426;
  13488. background: #d4242734;
  13489. .home {
  13490. border-bottom: none !important;
  13491. }
  13492. }
  13493. .mini-input {
  13494. >>> .el-input__inner {
  13495. padding: 0 4px !important;
  13496. text-align: center;
  13497. }
  13498. }
  13499. </style>