KtLetter.vue 433 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658
  1. <template>
  2. <div class="body">
  3. <div class="Enclosure flex f-c back" v-if="isLetter == '1'">
  4. <div class="home flex j-s a-c">
  5. <div class="flex j-s a-c">
  6. <img src="../../../../src/icon/归属信息.png" alt class="icon-img" />
  7. <span style="margin-left: 10px">归属信息</span>
  8. </div>
  9. </div>
  10. <el-form class="demo-ruleForm" :model="userform" ref="userform" label-width="130px" size="small"
  11. style="margin-top: 15px" disabled label-position="top">
  12. <el-row type="flex" justify="space-between">
  13. <el-col :span="5">
  14. <el-form-item label="业务员">
  15. <el-input v-model="userform.name"></el-input>
  16. </el-form-item>
  17. </el-col>
  18. <el-col :span="5">
  19. <el-form-item label="工号">
  20. <el-input v-model="userform.id" type="text"></el-input>
  21. </el-form-item>
  22. </el-col>
  23. <el-col :span="5">
  24. <el-form-item label="工号类型">
  25. <el-select v-model="userform.usertype">
  26. <el-option label="业务员" value="A"></el-option>
  27. <el-option label="代理人" value="B"></el-option>
  28. </el-select>
  29. </el-form-item>
  30. </el-col>
  31. <el-col :span="5">
  32. <el-form-item label="归属">
  33. <el-input v-model="deptName"></el-input>
  34. </el-form-item>
  35. </el-col>
  36. </el-row>
  37. </el-form>
  38. </div>
  39. <div class="Enclosure flex f-c back" v-if="isLetter == '1'">
  40. <div class="home flex j-s a-c">
  41. <div class="flex j-s a-c">
  42. <img src="../../../../src/icon/快速查询.png" alt class="icon-img" />
  43. <span style="margin-left: 10px">快速查询</span>
  44. </div>
  45. <el-button size="small" type="primary" @click="continuousquery()">
  46. <i class="el-icon-search" style="margin-right: 1px"></i>
  47. 续保查询
  48. </el-button>
  49. </div>
  50. <el-form class="demo-ruleForm" :model="attributionform" ref="continuousform" label-width="130px" size="small"
  51. style="margin-top: 15px" label-position="top">
  52. <el-row>
  53. <el-col :span="5">
  54. <el-form-item label="保险公司" prop="companyId">
  55. <el-select v-model="attributionform.companyId" placeholder="请选择保险公司" @change="continuousChange">
  56. <el-option v-for="(item, index) in continuousCompanyList" :key="index" :label="item.namesimple"
  57. :value="item.id"></el-option>
  58. </el-select>
  59. </el-form-item>
  60. </el-col>
  61. <el-col :span="5" :offset="1" v-for="(domain, index) in attributionform.configure" :key="domain.index">
  62. <el-form-item :label="domain.label" :prop="'configure.' + index + '.value'" :rules="{
  63. required: true,
  64. message: domain.label + '不能为空',
  65. trigger: 'blur',
  66. }">
  67. <el-input v-model="domain.value" :type="domain.type"></el-input>
  68. </el-form-item>
  69. </el-col>
  70. </el-row>
  71. </el-form>
  72. </div>
  73. <div class="Enclosure flex f-c back">
  74. <div class="home flex j-s a-c">
  75. <div class="flex j-s a-c color" id="Car">
  76. <img src="../../../../src/icon/车辆信息.png" alt class="icon-img" />
  77. <span style="margin-left: 10px">车辆信息</span>
  78. </div>
  79. <el-button size="small" type="primary" @click="uploadcardialogVisible = true">
  80. <i class="el-icon-camera-solid" style="margin-right: 1px"></i>
  81. 证件识别
  82. </el-button>
  83. </div>
  84. <el-form class="demo-ruleForm" :model="carInfo" ref="carInfo" :rules="rules" label-width="130px" size="small"
  85. label-position="top" style="margin-top: 15px">
  86. <el-row style="flex-wrap: wrap; display: flex">
  87. <el-col :span="5">
  88. <el-form-item label="车牌" :prop="licenseplate ? 'licenseNo' : ''">
  89. <div style="display: flex">
  90. <el-input style="width: 75%; margin-right: 13px" v-model="carInfo.licenseNo" placeholder="请输入车牌号"
  91. :disabled="!licenseplate"></el-input>
  92. <el-checkbox v-model="licenseplate">已上牌</el-checkbox>
  93. </div>
  94. </el-form-item>
  95. </el-col>
  96. <el-col :span="5" :offset="1">
  97. <el-form-item label="车辆识别代码" prop="frameNo">
  98. <el-input placeholder="请输入车辆识别码" v-model="carInfo.frameNo" maxlength="17" type="text" show-word-limit>
  99. <el-button slot="append" type="primary" icon="el-icon-search" @click="toChooseVin(carInfo.frameNo)" style="
  100. color: #fff;
  101. background-color: #d42426;
  102. border-color: #d42426;
  103. "></el-button>
  104. </el-input>
  105. </el-form-item>
  106. </el-col>
  107. <el-col :span="5" :offset="1">
  108. <el-form-item label="品牌型号" prop="modelcname">
  109. <el-input v-model="carInfo.modelcname" placeholder="请输入品牌型号" type="text">
  110. <el-button slot="append" icon="el-icon-search" type="primary"
  111. @click="toChooseVehicleType(carInfo.modelcname)" style="
  112. color: #fff;
  113. background-color: #d42426;
  114. border-color: #d42426;
  115. border-top: none;
  116. "></el-button>
  117. </el-input>
  118. </el-form-item>
  119. </el-col>
  120. <el-col :span="5" :offset="1">
  121. <el-form-item label="发动机号" prop="engineNo">
  122. <el-input v-model="carInfo.engineNo" placeholder="请输入发动机号"></el-input>
  123. </el-form-item>
  124. </el-col>
  125. <el-col :span="5">
  126. <el-form-item label="年款" prop="caryear">
  127. <el-input onkeyup="value=value.replace(/\D/g,'')" v-model="carInfo.caryear" placeholder="请输入年款"></el-input>
  128. </el-form-item>
  129. </el-col>
  130. <el-col :span="5" :offset="1">
  131. <el-form-item label="座位数" prop="seatCount">
  132. <el-input onkeyup="value=value.replace(/\D/g,'')" v-model="carInfo.seatCount" placeholder="请输入座位数">
  133. <el-button slot="append">座</el-button>
  134. </el-input>
  135. </el-form-item>
  136. </el-col>
  137. <el-col :span="5" :offset="1">
  138. <el-form-item label="整备质量" prop="completeKerbMass">
  139. <el-input v-model="carInfo.completeKerbMass" placeholder="请输入整备质量">
  140. <el-button slot="append">千克(KG)</el-button>
  141. </el-input>
  142. </el-form-item>
  143. </el-col>
  144. <el-col :span="5" :offset="1">
  145. <el-form-item label="核定载质量" prop="limitLoad">
  146. <el-input v-model="carInfo.limitLoad" placeholder="请输入核定载质量">
  147. <el-button slot="append">千克(KG)</el-button>
  148. </el-input>
  149. </el-form-item>
  150. </el-col>
  151. <el-col :span="5">
  152. <el-form-item label="排量" prop="enginedesc">
  153. <el-input v-model="carInfo.enginedesc" placeholder="请输入排量">
  154. <el-button slot="append">升(L)</el-button>
  155. </el-input>
  156. </el-form-item>
  157. </el-col>
  158. <el-col :span="5" :offset="1">
  159. <el-form-item label="功率" prop="powerScale">
  160. <el-input v-model="carInfo.powerScale" placeholder="请输入功率">
  161. <el-button slot="append">千瓦(KW)</el-button>
  162. </el-input>
  163. </el-form-item>
  164. </el-col>
  165. <el-col :span="5" :offset="1">
  166. <el-form-item label="新车购置价" prop="purchasePrice">
  167. <el-input onkeyup="value=value.replace(/\D/g,'')" v-model="carInfo.purchasePrice" placeholder="请输入新车购置价">
  168. <el-button slot="append">元</el-button>
  169. </el-input>
  170. </el-form-item>
  171. </el-col>
  172. <el-col :span="5" :offset="1">
  173. <el-form-item label="使用性质" prop="carnature">
  174. <el-select v-model="carInfo.carnature" placeholder="请选择使用性质" @change="natureFun">
  175. <el-option :label="item.dictTag" :value="item.dictValue"
  176. v-for="(item, index) in natureOfVehicleUseoptions" :key="index"></el-option>
  177. </el-select>
  178. </el-form-item>
  179. </el-col>
  180. <el-col :span="5">
  181. <el-form-item label="车辆用途" prop="vehicleUse">
  182. <el-select v-if="carInfo.carnature == '02'" v-model="carInfo.vehicleUse" @change="vehicleUseChange" placeholder="请选择使车辆用途">
  183. <el-option :label="item.dictTag" :value="item.dictValue"
  184. v-for="(item, index) in outOfBusinessVehicleUseoptions" :key="index"></el-option>
  185. </el-select>
  186. <el-select v-if="carInfo.carnature == '01'" v-model="carInfo.vehicleUse" placeholder="请选择使车辆用途">
  187. <el-option :label="item.dictTag" :value="item.dictValue"
  188. v-for="(item, index) in businessVehicleUseoptions" :key="index"></el-option>
  189. </el-select>
  190. </el-form-item>
  191. </el-col>
  192. <el-col :span="5" :offset="1">
  193. <el-form-item label="车辆类型" prop="cartype">
  194. <el-select v-model="carInfo.cartype" placeholder="请选择车辆种类" filterable clearable>
  195. <el-option :label="item.dictValue + item.dictTag" :value="item.dictValue"
  196. v-for="(item, index) in trafficManagementVehicleTypeoptions" :key="index"></el-option>
  197. </el-select>
  198. </el-form-item>
  199. </el-col>
  200. <el-col :span="5" :offset="1">
  201. <el-form-item label="车辆种类" prop="cimodelclass">
  202. <el-select v-model="carInfo.cimodelclass" placeholder="请选择车辆种类" clearable>
  203. <el-option :label="item.dictTag" :value="item.dictValue" v-for="(item, index) in vehicleTypeoptions"
  204. :key="index"></el-option>
  205. </el-select>
  206. </el-form-item>
  207. </el-col>
  208. <el-col :span="5" :offset="1">
  209. <el-form-item label="能源种类" prop="energyType">
  210. <el-select v-model="carInfo.energyType" placeholder="请选择能源种类">
  211. <el-option :label="item.dictTag" :value="item.dictValue" v-for="(item, index) in energyTypeoptions"
  212. :key="index"></el-option>
  213. </el-select>
  214. </el-form-item>
  215. </el-col>
  216. <el-col :span="5">
  217. <el-form-item label="所属性质 " prop="property">
  218. <el-select v-model="carInfo.property" placeholder="请选择所属性质" @change="getCompanyListProperty">
  219. <el-option :label="item.label" :value="item.value" v-for="(item, index) in propertyoptions"
  220. :key="index" :disabled="propertyDisable(item)"></el-option>
  221. </el-select>
  222. </el-form-item>
  223. </el-col>
  224. <el-col :span="5" :offset="1">
  225. <el-form-item label="注册日期" prop="registerDate">
  226. <el-date-picker v-dateFormat v-model="carInfo.registerDate" :picker-options="pickerOptions"
  227. value-format="yyyy-MM-dd" type="date" placeholder="选择注册日期" placement="bottom-start"></el-date-picker>
  228. </el-form-item>
  229. </el-col>
  230. <el-col :span="5" :offset="1">
  231. <el-form-item label="发证日期" prop="issueDate">
  232. <el-date-picker v-dateFormat v-model="carInfo.issueDate" :picker-options="issueDateOptions" type="date"
  233. placeholder="选择发证日期" value-format="yyyy-MM-dd" placement="bottom-start"></el-date-picker>
  234. </el-form-item>
  235. </el-col>
  236. <el-col :span="5" :offset="1" v-if="transferDateShow">
  237. <el-form-item label="转移登记日期" prop="transferDate">
  238. <el-date-picker v-dateFormat v-model="carInfo.transferDate" :picker-options="pickerOptions" type="date"
  239. placeholder="选择日期" value-format="yyyy-MM-dd" placement="bottom-start"></el-date-picker>
  240. </el-form-item>
  241. </el-col>
  242. </el-row>
  243. </el-form>
  244. </div>
  245. <div class="Enclosure flex f-c back">
  246. <div class="home flex j-s a-c">
  247. <div class="flex j-s a-c color" id="CheZhu">
  248. <img src="../../../../src/icon/车主信息.png" alt class="icon-img" />
  249. <span style="margin-left: 10px">车主信息</span>
  250. </div>
  251. <el-button size="small" type="primary" @click="uploaduser(2)">
  252. <i class="el-icon-camera-solid" style="margin-right: 4px"></i>证件识别
  253. </el-button>
  254. </div>
  255. <el-form class="demo-ruleForm" :model="ownerInfo" ref="ownerInfo" :rules="rules" label-width="130px" size="small"
  256. style="margin-top: 15px" label-position="top">
  257. <el-row style="flex-wrap: wrap; display: flex">
  258. <el-col :span="5">
  259. <el-form-item label="车主姓名" prop="name">
  260. <el-input v-model="ownerInfo.name" placeholder="请输入车主姓名"></el-input>
  261. </el-form-item>
  262. </el-col>
  263. <el-col :span="5" :offset="1">
  264. <el-form-item label="车主类型" >
  265. <el-select v-model="ownerInfo.property" placeholder="车主类型" @change="propertyTpe('ownerInfo')" >
  266. <el-option label="法人" value="0" :disabled="carInfo.property=='1'"></el-option>
  267. <el-option label="个人" value="1" :disabled="carInfo.property=='2'"></el-option>
  268. </el-select>
  269. </el-form-item>
  270. </el-col>
  271. <el-col :span="5" :offset="1">
  272. <el-form-item label="证件类型" prop="identifyType">
  273. <el-select v-model="ownerInfo.identifyType" placeholder="身份证" disabled>
  274. <el-option label="身份证" value="01"></el-option>
  275. <el-option label="统一社会信用代码" value="10"></el-option>
  276. </el-select>
  277. </el-form-item>
  278. </el-col>
  279. <el-col :span="5" :offset="1" v-if="ownerInfo.property=='1'">
  280. <el-form-item label="证件号码" prop="identifyNumber">
  281. <el-input v-model="ownerInfo.identifyNumber" placeholder="请输入证件号码" type="text" maxlength="18"
  282. show-word-limit @blur="identifyblur('ownerInfo')"></el-input>
  283. </el-form-item>
  284. </el-col>
  285. <el-col :span="5" :offset="1" v-if="ownerInfo.property=='0'">
  286. <el-form-item label="证件号码" prop="organizationCode">
  287. <el-input v-model="ownerInfo.organizationCode" placeholder="请输入证件号码" type="text" maxlength="18"
  288. show-word-limit ></el-input>
  289. </el-form-item>
  290. </el-col>
  291. <el-col :span="5" v-if="ownerInfo.property=='0'">
  292. <el-form-item label="注册资金" prop="registeredCapital">
  293. <el-input v-model="ownerInfo.registeredCapital" placeholder="请输入注册资金" type="text"
  294. show-word-limit >
  295. <el-button slot="append">万元</el-button>
  296. </el-input>
  297. </el-form-item>
  298. </el-col>
  299. <el-col :span="5" v-if="ownerInfo.property=='1'">
  300. <el-form-item label="年龄" prop="age">
  301. <el-input v-model="ownerInfo.age" placeholder="请输入年龄" type="text" disabled></el-input>
  302. </el-form-item>
  303. </el-col>
  304. <el-col :span="5" :offset="1" v-if="ownerInfo.property=='1'">
  305. <el-form-item label="性别" prop="gender" v-if="ownerInfo.property=='1'">
  306. <el-select @change="genderChange" v-model="ownerInfo.gender" placeholder="请选择性别">
  307. <el-option label="男" value="男"></el-option>
  308. <el-option label="女" value="女"></el-option>
  309. </el-select>
  310. </el-form-item>
  311. </el-col>
  312. <el-col :span="5" :offset="1">
  313. <el-form-item label="车主手机号" prop="mobile">
  314. <el-input v-model="ownerInfo.mobile" placeholder="请输入车主手机号" type="text" maxlength="11"
  315. @paste.native="handlePaste($event, 'ownerInfo')" show-word-limit></el-input>
  316. </el-form-item>
  317. </el-col>
  318. <el-col :span="5" :offset="1" v-if="ownerInfo.property=='0'">
  319. <el-form-item label="车主座机" prop="tel">
  320. <el-input v-model="ownerInfo.tel" placeholder="请输入车主座机" type="text"
  321. show-word-limit></el-input>
  322. </el-form-item>
  323. </el-col>
  324. <el-col :span="5" :offset="1" v-if="ownerInfo.property=='0'">
  325. <el-form-item label="车主联系人">
  326. <el-input v-model="ownerInfo.legalPerson" placeholder="请输入车主联系人" type="text" maxlength="5" ></el-input>
  327. </el-form-item>
  328. </el-col>
  329. <el-col :span="5" v-if="ownerInfo.property=='0'">
  330. <el-form-item label="联系人证件号码">
  331. <el-input v-model="ownerInfo.leaderIdentifyNumber" placeholder="请输入车主证件号码" type="text" maxlength="18" ></el-input>
  332. </el-form-item>
  333. </el-col>
  334. <el-col :span="5" :offset="1" v-if="ownerInfo.property=='0'">
  335. <el-form-item label="联系人有效期止期" prop="leaderOtherEffectiveDate" class="red-btn">
  336. <el-date-picker v-dateFormat v-model="ownerInfo.leaderOtherEffectiveDate" type="date" value-format="yyyy-MM-dd"
  337. placeholder="选择有效期止期" placement="bottom-start" style="width: calc(100% - 40px)"></el-date-picker>
  338. </el-form-item>
  339. </el-col>
  340. <el-col :span="5" :offset="1" v-if="ownerInfo.property=='0'">
  341. <el-form-item label="省市区" >
  342. <el-cascader v-model="selectedOptions1" :options="areaOption" :props="{ value: 'code',label: 'name',children: 'sub'}"
  343. @change="event => areahandleChange(event, 'ownerInfo')" ></el-cascader>
  344. </el-form-item>
  345. </el-col>
  346. <el-col :span="5" :offset="1">
  347. <el-form-item label="地址" prop="addr">
  348. <el-input v-model="ownerInfo.addr" placeholder="请输入地址" type="text"></el-input>
  349. </el-form-item>
  350. </el-col>
  351. <el-col :span="5" >
  352. <el-form-item label="有效期起期" prop="identifyValidDate">
  353. <el-date-picker v-dateFormat v-model="ownerInfo.identifyValidDate" value-format="yyyy-MM-dd"
  354. :picker-options="pickerOptions" type="date" placeholder="选择有效期起期"
  355. placement="bottom-start"></el-date-picker>
  356. </el-form-item>
  357. </el-col>
  358. <el-col :span="5" :offset="1">
  359. <el-form-item label="有效期止期" prop="identifyValidEndDate">
  360. <el-date-picker v-dateFormat v-model="ownerInfo.identifyValidEndDate" type="date" value-format="yyyy-MM-dd"
  361. placeholder="有效期止期" placement="bottom-start" style="width: calc(100% - 40px)"></el-date-picker>
  362. <div class="insure-long-term" @click="insureLongterm('ownerInfo')">
  363. 长期
  364. </div>
  365. </el-form-item>
  366. </el-col>
  367. <el-col :span="5" :offset="1">
  368. <el-form-item label="电子邮箱" prop="email">
  369. <el-input v-model="ownerInfo.email" placeholder="请输入电子邮箱"></el-input>
  370. </el-form-item>
  371. </el-col>
  372. <!-- <el-col :xs="xscell" :sm="smcell" :md="mdcell" :lg="lgcell" :xl="xlcell" v-if="iscCrownerShow">
  373. <el-form-item label="省市区:">
  374. <el-cascader v-model="ownerInfo.provinceData" :options="areaOption" :props="{ value: 'code',label: 'name',children: 'sub'}"></el-cascader>
  375. </el-form-item>
  376. </el-col>-->
  377. </el-row>
  378. </el-form>
  379. </div>
  380. <div class="Enclosure flex f-c back">
  381. <div class="home flex j-s a-c">
  382. <div class="flex j-s a-c" id="toubaor">
  383. <img src="../../../../src/icon/投保人信息.png" alt class="icon-img" />
  384. <span style="margin-left: 10px">投保人信息</span>
  385. </div>
  386. <div class="flex a-c j-c">
  387. <div style="font-size: 12px; margin: 0 10px">
  388. 同车主
  389. <el-switch v-model="tbczcarShow" active-color="#D42426" @change="tbczcarShowChange()"></el-switch>
  390. </div>
  391. <el-button size="small" type="primary" @click="uploaduser(3)">
  392. <i class="el-icon-camera-solid" style="margin-right: 4px"></i>
  393. 证件识别
  394. </el-button>
  395. </div>
  396. </div>
  397. <el-form v-show="!tbczcarShow" class="demo-ruleForm" :model="policyHolderInfo" ref="policyHolderInfo" :rules="rules"
  398. label-width="130px" size="small " style="margin-top: 15px" label-position="top">
  399. <el-row style="flex-wrap: wrap; display: flex">
  400. <el-col :span="5">
  401. <el-form-item label="投保人姓名" prop="name">
  402. <el-input v-model="policyHolderInfo.name" placeholder="请输入投保人姓名"></el-input>
  403. </el-form-item>
  404. </el-col>
  405. <el-col :span="5" :offset="1">
  406. <el-form-item label="投保人类型" prop="property">
  407. <el-select v-model="policyHolderInfo.property" placeholder="投保人类型" @change="propertyTpe('policyHolderInfo')" >
  408. <el-option label="个人" value="1"></el-option>
  409. <el-option label="法人" value="0"></el-option>
  410. </el-select>
  411. </el-form-item>
  412. </el-col>
  413. <el-col :span="5" :offset="1">
  414. <el-form-item label="证件类型" prop="identifyType">
  415. <el-select v-model="policyHolderInfo.identifyType" placeholder="身份证" disabled>
  416. <el-option label="身份证" value="01"></el-option>
  417. <el-option label="统一社会信用代码" value="10"></el-option>
  418. </el-select>
  419. </el-form-item>
  420. </el-col>
  421. <el-col :span="5" :offset="1" v-if="policyHolderInfo.property=='0'">
  422. <el-form-item label="证件号码" prop="organizationCode">
  423. <el-input v-model="policyHolderInfo.organizationCode" placeholder="请输入证件号码" type="text" maxlength="18"
  424. show-word-limit @blur="identifyblur('policyHolderInfo')"></el-input>
  425. </el-form-item>
  426. </el-col>
  427. <el-col :span="5" :offset="1" v-if="policyHolderInfo.property=='1'">
  428. <el-form-item label="证件号码" prop="identifyNumber">
  429. <el-input v-model="policyHolderInfo.identifyNumber" placeholder="请输入证件号码" type="text" maxlength="18"
  430. show-word-limit @blur="identifyblur('policyHolderInfo')"></el-input>
  431. </el-form-item>
  432. </el-col>
  433. <el-col :span="5" v-if="policyHolderInfo.property=='0'">
  434. <el-form-item label="注册资金" prop="registeredCapital">
  435. <el-input v-model="policyHolderInfo.registeredCapital" placeholder="请输入注册资金" type="text"
  436. show-word-limit >
  437. <el-button slot="append">万元</el-button>
  438. </el-input>
  439. </el-form-item>
  440. </el-col>
  441. <el-col :span="5" v-if="policyHolderInfo.property=='1'">
  442. <el-form-item label="年龄" prop="age">
  443. <el-input v-model="policyHolderInfo.age" placeholder="请输入年龄" type="text" disabled></el-input>
  444. </el-form-item>
  445. </el-col>
  446. <el-col :span="5" :offset="1" v-if="policyHolderInfo.property=='1'">
  447. <el-form-item label="性别" prop="gender" >
  448. <el-select v-model="policyHolderInfo.gender" placeholder="请选择性别">
  449. <el-option label="男" value="男"></el-option>
  450. <el-option label="女" value="女"></el-option>
  451. </el-select>
  452. </el-form-item>
  453. </el-col>
  454. <el-col :span="5" :offset="1">
  455. <el-form-item label="投保人手机号" prop="mobile">
  456. <el-input v-model="policyHolderInfo.mobile" placeholder="请输入投保人手机号" maxlength="11" type="text"
  457. @paste.native="handlePaste($event, 'policyHolderInfo')" show-word-limit></el-input>
  458. </el-form-item>
  459. </el-col>
  460. <el-col :span="5" :offset="1" v-if="policyHolderInfo.property=='0'">
  461. <el-form-item label="投保人座机" prop="tel">
  462. <el-input v-model="policyHolderInfo.tel" placeholder="请输入投保人座机" type="text"
  463. show-word-limit></el-input>
  464. </el-form-item>
  465. </el-col>
  466. <!-- <el-col :xs="xscell" :sm="smcell" :md="mdcell" :lg="lgcell" :xl="xlcell">
  467. <el-form-item label="省市区:">
  468. <el-cascader v-model="selectedOptions2" :options="areaOptions"
  469. @change="event => areahandleChange(event, 'policyHolderInfo')"></el-cascader>
  470. </el-form-item>
  471. </el-col>-->
  472. <el-col :span="5" :offset="1" v-if="policyHolderInfo.property=='0'">
  473. <el-form-item label="投保人联系人">
  474. <el-input v-model="policyHolderInfo.legalPerson" placeholder="请输入投保人联系人" type="text" maxlength="5" ></el-input>
  475. </el-form-item>
  476. </el-col>
  477. <el-col :span="5" v-if="policyHolderInfo.property=='0'">
  478. <el-form-item label="联系人证件号码">
  479. <el-input v-model="policyHolderInfo.leaderIdentifyNumber" placeholder="请输入车主证件号码" type="text" maxlength="18" ></el-input>
  480. </el-form-item>
  481. </el-col>
  482. <el-col :span="5" :offset="1" v-if="policyHolderInfo.property=='0'">
  483. <el-form-item label="联系人有效期止期" prop="leaderOtherEffectiveDate" class="red-btn">
  484. <el-date-picker v-dateFormat v-model="policyHolderInfo.leaderOtherEffectiveDate" type="date" value-format="yyyy-MM-dd"
  485. placeholder="选择有效期止期" placement="bottom-start" style="width: calc(100% - 40px)"></el-date-picker>
  486. </el-form-item>
  487. </el-col>
  488. <el-col :span="5" :offset="1" v-if="policyHolderInfo.property=='0'">
  489. <el-form-item label="省市区">
  490. <el-cascader v-model="selectedOptions2" :options="areaOption" :props="{ value: 'code',label: 'name',children: 'sub'}"
  491. @change="event => areahandleChange(event, 'policyHolderInfo')"></el-cascader>
  492. </el-form-item>
  493. </el-col>
  494. <el-col :span="5" :offset="1">
  495. <el-form-item label="地址" prop="addr">
  496. <el-input v-model="policyHolderInfo.addr" placeholder="请输入地址" type="text"></el-input>
  497. </el-form-item>
  498. </el-col>
  499. <el-col :span="5" >
  500. <el-form-item label="有效期起期" prop="identifyValidDate">
  501. <el-date-picker v-dateFormat v-model="policyHolderInfo.identifyValidDate" value-format="yyyy-MM-dd"
  502. :picker-options="pickerOptions" type="date" placeholder="选择有效期" placement="bottom-start"></el-date-picker>
  503. </el-form-item>
  504. </el-col>
  505. <el-col :span="5" :offset="1" >
  506. <el-form-item label="有效期止期" prop="identifyValidEndDate">
  507. <el-date-picker v-dateFormat v-model="policyHolderInfo.identifyValidEndDate" type="date"
  508. value-format="yyyy-MM-dd" placeholder="有效期止期" placement="bottom-start"
  509. style="width: calc(100% - 40px)"></el-date-picker>
  510. <div class="insure-long-term" @click="insureLongterm('policyHolderInfo')">
  511. 长期
  512. </div>
  513. </el-form-item>
  514. </el-col>
  515. <el-col :span="5" :offset="1">
  516. <el-form-item label="电子邮箱" prop="email">
  517. <el-input v-model="policyHolderInfo.email" placeholder="请输入电子邮箱"></el-input>
  518. </el-form-item>
  519. </el-col>
  520. <!-- <el-col :xs="xscell" :sm="smcell" :md="mdcell" :lg="lgcell" :xl="xlcell" v-if="isApplicantShow">
  521. <el-form-item label="省市区:">
  522. <el-cascader v-model="policyHolderInfo.provinceData" :options="areaOption" :props="{ value: 'code',label: 'name',children: 'sub'}"></el-cascader>
  523. </el-form-item>
  524. </el-col>-->
  525. </el-row>
  526. </el-form>
  527. </div>
  528. <div class="Enclosure flex f-c back">
  529. <div class="home flex j-s a-c">
  530. <div class="flex j-s a-c">
  531. <img src="../../../../src/icon/被投保人信息.png" alt class="icon-img" />
  532. <span style="margin-left: 10px">被保人信息</span>
  533. </div>
  534. <div class="flex j-s a-c">
  535. <div style="font-size: 12px; margin: 0 10px">
  536. 同投保人
  537. <el-switch v-model="bbtbcarShow" active-color="#D42426" @change="bbtbcarShowChange()"></el-switch>
  538. </div>
  539. <div style="font-size: 12px; margin: 0 10px">
  540. 同车主
  541. <el-switch v-model="bbczcarShow" active-color="#D42426" @change="bbczcarShowChange()"></el-switch>
  542. </div>
  543. <el-button size="small" type="primary" @click="uploaduser(4)">
  544. <i class="el-icon-camera-solid" style="margin-right: 4px"></i>
  545. 证件识别
  546. </el-button>
  547. </div>
  548. </div>
  549. <el-form v-show="!bbtbcarShow && !bbczcarShow" class="demo-ruleForm" :model="insuredPersonInfo"
  550. ref="insuredPersonInfo" :rules="rules" label-width="130px" size="small" style="margin-top: 15px"
  551. label-position="top">
  552. <el-row style="flex-wrap: wrap; display: flex">
  553. <el-col :span="5">
  554. <el-form-item label="被保人姓名" prop="name">
  555. <el-input v-model="insuredPersonInfo.name" placeholder="请输入被保人姓名"></el-input>
  556. </el-form-item>
  557. </el-col>
  558. <el-col :span="5" :offset="1">
  559. <el-form-item label="被保人类型" prop="property">
  560. <el-select v-model="insuredPersonInfo.property" placeholder="投保人类型" @change="propertyTpe('insuredPersonInfo')" >
  561. <el-option label="个人" value="1"></el-option>
  562. <el-option label="法人" value="0"></el-option>
  563. </el-select>
  564. </el-form-item>
  565. </el-col>
  566. <el-col :span="5" :offset="1">
  567. <el-form-item label="证件类型" prop="identifyType">
  568. <el-select v-model="insuredPersonInfo.identifyType" placeholder="身份证" disabled>
  569. <el-option label="身份证" value="01"></el-option>
  570. <el-option label="统一社会信用代码" value="10"></el-option>
  571. </el-select>
  572. </el-form-item>
  573. </el-col>
  574. <el-col :span="5" :offset="1" v-if="insuredPersonInfo.property=='1'">
  575. <el-form-item label="证件号码" prop="identifyNumber">
  576. <el-input v-model="insuredPersonInfo.identifyNumber" placeholder="请输入证件号码" type="text" maxlength="18"
  577. show-word-limit @blur="identifyblur('insuredPersonInfo')"></el-input>
  578. </el-form-item>
  579. </el-col>
  580. <el-col :span="5" :offset="1" v-if="insuredPersonInfo.property=='0'">
  581. <el-form-item label="证件号码" prop="organizationCode">
  582. <el-input v-model="insuredPersonInfo.organizationCode" placeholder="请输入证件号码" type="text" maxlength="18"
  583. show-word-limit @blur="identifyblur('insuredPersonInfo')"></el-input>
  584. </el-form-item>
  585. </el-col>
  586. <el-col :span="5" v-if="insuredPersonInfo.property=='0'">
  587. <el-form-item label="注册资金" prop="registeredCapital">
  588. <el-input v-model="insuredPersonInfo.registeredCapital" placeholder="请输入注册资金" type="text"
  589. show-word-limit >
  590. <el-button slot="append">万元</el-button>
  591. </el-input>
  592. </el-form-item>
  593. </el-col>
  594. <el-col :span="5" v-if="insuredPersonInfo.property=='1'">
  595. <el-form-item label="年龄" prop="age">
  596. <el-input v-model="insuredPersonInfo.age" placeholder="请输入年龄" type="text" disabled></el-input>
  597. </el-form-item>
  598. </el-col>
  599. <el-col :span="5" :offset="1" v-if="insuredPersonInfo.property=='1'">
  600. <el-form-item label="性别" prop="gender">
  601. <el-select v-model="insuredPersonInfo.gender" placeholder="请选择性别">
  602. <el-option label="男" value="男"></el-option>
  603. <el-option label="女" value="女"></el-option>
  604. </el-select>
  605. </el-form-item>
  606. </el-col>
  607. <el-col :span="5" :offset="1">
  608. <el-form-item label="被保人手机号" prop="mobile">
  609. <el-input v-model="insuredPersonInfo.mobile" placeholder="请输入被保人手机号" maxlength="11" type="text"
  610. @paste.native="handlePaste($event, 'insuredPersonInfo')" show-word-limit></el-input>
  611. </el-form-item>
  612. </el-col>
  613. <el-col :span="5" :offset="1" v-if="insuredPersonInfo.property=='0'">
  614. <el-form-item label="被保人座机" prop="tel">
  615. <el-input v-model="insuredPersonInfo.tel" placeholder="请输入车主座机" type="text"
  616. show-word-limit></el-input>
  617. </el-form-item>
  618. </el-col>
  619. <!-- <el-col :xs="xscell" :sm="smcell" :md="mdcell" :lg="lgcell" :xl="xlcell">
  620. <el-form-item label="省市区:">
  621. <el-cascader v-model="selectedOptions3" :options="areaOptions"
  622. @change="event => areahandleChange(event, 'insuredPersonInfo')"></el-cascader>
  623. </el-form-item>
  624. </el-col>-->
  625. <el-col :span="5" :offset="1" v-if="insuredPersonInfo.property=='0'">
  626. <el-form-item label="被保人联系人">
  627. <el-input v-model="insuredPersonInfo.legalPerson" placeholder="请输入被保人联系人" type="text" maxlength="5" ></el-input>
  628. </el-form-item>
  629. </el-col>
  630. <el-col :span="5" v-if="insuredPersonInfo.property=='0'">
  631. <el-form-item label="联系人证件号码">
  632. <el-input v-model="insuredPersonInfo.leaderIdentifyNumber" placeholder="请输入车主证件号码" type="text" maxlength="18" ></el-input>
  633. </el-form-item>
  634. </el-col>
  635. <el-col :span="5" :offset="1" v-if="insuredPersonInfo.property=='0'">
  636. <el-form-item label="联系人有效期止期" prop="leaderOtherEffectiveDate" class="red-btn">
  637. <el-date-picker v-dateFormat v-model="insuredPersonInfo.leaderOtherEffectiveDate" type="date" value-format="yyyy-MM-dd"
  638. placeholder="选择有效期止期" placement="bottom-start" style="width: calc(100% - 40px)"></el-date-picker>
  639. </el-form-item>
  640. </el-col>
  641. <el-col :span="5" :offset="1" v-if="insuredPersonInfo.property=='0'">
  642. <el-form-item label="省市区">
  643. <el-cascader v-model="selectedOptions2" :options="areaOption" :props="{ value: 'code',label: 'name',children: 'sub'}"
  644. @change="event => areahandleChange(event, 'insuredPersonInfo')"></el-cascader>
  645. </el-form-item>
  646. </el-col>
  647. <el-col :span="5" :offset="insuredPersonInfo.property?1:0">
  648. <el-form-item label="地址" prop="addr">
  649. <el-input v-model="insuredPersonInfo.addr" placeholder="请输入地址" type="text"></el-input>
  650. </el-form-item>
  651. </el-col>
  652. <el-col :span="5" :offset="insuredPersonInfo.property?0:1">
  653. <el-form-item label="有效期起期" prop="identifyValidDate">
  654. <el-date-picker v-dateFormat v-model="insuredPersonInfo.identifyValidDate" value-format="yyyy-MM-dd"
  655. :picker-options="pickerOptions" type="date" placeholder="选择有效期" placement="bottom-start"></el-date-picker>
  656. </el-form-item>
  657. </el-col>
  658. <el-col :span="5" :offset="1">
  659. <el-form-item label="有效期止期" prop="identifyValidEndDate">
  660. <el-date-picker v-dateFormat v-model="insuredPersonInfo.identifyValidEndDate" type="date"
  661. value-format="yyyy-MM-dd" placeholder="有效期止期" placement="bottom-start"
  662. style="width: calc(100% - 40px)"></el-date-picker>
  663. <div class="insure-long-term" @click="insureLongterm('insuredPersonInfo')">
  664. 长期
  665. </div>
  666. </el-form-item>
  667. </el-col>
  668. <el-col :span="5" :offset="1">
  669. <el-form-item label="电子邮箱" prop="email">
  670. <el-input v-model="insuredPersonInfo.email" placeholder="请输入电子邮箱"></el-input>
  671. </el-form-item>
  672. </el-col>
  673. <!-- <el-col :xs="xscell" :sm="smcell" :md="mdcell" :lg="lgcell" :xl="xlcell" v-if="isInsuredShow">
  674. <el-form-item label="省市区:">
  675. <el-cascader v-model="insuredPersonInfo.provinceData" :options="areaOption" :props="{ value: 'code',label: 'name',children: 'sub'}"></el-cascader>
  676. </el-form-item>
  677. </el-col>-->
  678. </el-row>
  679. </el-form>
  680. </div>
  681. <div class="Enclosure flex f-c back">
  682. <div class="home flex j-s a-c">
  683. <div class="flex j-s a-c color" id="insurance">
  684. <img src="../../../../src/icon/投保信息.png" alt class="icon-img" />
  685. <span style="margin-left: 10px">投保信息</span>
  686. <el-switch style="margin: 0 10px 0 30px" @change="immediatelyChange" v-model="immediatelyValue"
  687. active-color="#D42426"></el-switch>
  688. <span style="font-weight: normal; font-size: 13px">即时投保</span>
  689. </div>
  690. </div>
  691. <el-form class="back demo-ruleForm" :inline="true" :model="Carinsurance" label-width="150px" size="small"
  692. style="margin-top: 15px" label-position="top">
  693. <div class="flex j-start a-c">
  694. <div class="flex j-c a-start">
  695. <el-checkbox class="checkbox" style="margin-right: 20px" v-model="jqchecked"
  696. @change="jqcheckedChange"></el-checkbox>
  697. <div class="flex f-c a-c">
  698. <el-form-item label="交强险起保日期" prop="identifyNumber">
  699. <el-date-picker v-dateFormat value-format="yyyy-MM-dd HH:mm:ss" v-model="jqstartDate" @change="jqChange"
  700. type="datetime" placeholder="选择日期时间" placement="bottom-start"></el-date-picker>
  701. </el-form-item>
  702. <el-form-item label="交强险终保日期" prop="identifyNumber">
  703. <el-date-picker v-dateFormat value-format="yyyy-MM-dd HH:mm:ss" v-model="jqendDate" type="datetime"
  704. placeholder="选择日期时间" placement="bottom-start"></el-date-picker>
  705. </el-form-item>
  706. </div>
  707. </div>
  708. <div class="flex f-c a-c synchronous" style="margin: 0 50px" @click="synchronization">
  709. <span style="font-size: 12px">同步</span>
  710. </div>
  711. <div class="flex j-c a-start">
  712. <el-checkbox class="checkbox" style="margin-right: 20px" v-model="sychecked"
  713. @change="sycheckedChange"></el-checkbox>
  714. <div class="flex f-c a-c">
  715. <el-form-item label="商业险起保日期" prop="name">
  716. <el-date-picker v-dateFormat value-format="yyyy-MM-dd HH:mm:ss" v-model="systartDate" @change="syChange"
  717. type="datetime" placeholder="选择日期时间" placement="bottom-start"></el-date-picker>
  718. </el-form-item>
  719. <el-form-item label="商业险终保日期" prop="name">
  720. <el-date-picker v-dateFormat value-format="yyyy-MM-dd HH:mm:ss" v-model="syendDate" type="datetime"
  721. placeholder="选择日期时间" placement="bottom-start"></el-date-picker>
  722. </el-form-item>
  723. </div>
  724. </div>
  725. </div>
  726. </el-form>
  727. </div>
  728. <div class="Enclosure flex f-c back">
  729. <div class="home flex j-s a-c">
  730. <div class="flex j-s a-c color" id="insurance">
  731. <img src="../../../../src/icon/车船税.png" alt class="icon-img" />
  732. <span style="margin-left: 10px">车船税</span>
  733. </div>
  734. </div>
  735. <el-form class="demo-ruleForm" :model="vehicleAndVesselTaxForm" ref="vehicleAndVesselTaxForm" :rules="rules"
  736. label-width="160px" size="small" style="margin-top: 15px" label-position="top">
  737. <el-row style="flex-wrap: wrap; display: flex">
  738. <el-col :span="5">
  739. <el-form-item label="纳税类型:" prop="taxRelifFlag">
  740. <el-select @change="taxRelifFlagChange" v-model="vehicleAndVesselTaxForm.taxRelifFlag" placeholder="纳税类型">
  741. <el-option v-for="(item, index) in taxRelifFlagoptions" :key="index" :label="item.dictTag"
  742. :value="item.dictValue"></el-option>
  743. </el-select>
  744. </el-form-item>
  745. </el-col>
  746. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 1&& policyHolderInfo.property=='1'" :span="5" :offset="1">
  747. <el-form-item label="纳税人识别号:" prop="identifyNumber">
  748. <el-input v-model="vehicleAndVesselTaxForm.identifyNumber" placeholder="请输入纳税人识别号" type="text"></el-input>
  749. </el-form-item>
  750. </el-col>
  751. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 1 && policyHolderInfo.property=='0'" :span="5" :offset="1">
  752. <el-form-item label="纳税人识别号:" prop="organizationCode">
  753. <el-input v-model="vehicleAndVesselTaxForm.organizationCode" placeholder="请输入纳税人识别号" type="text"></el-input>
  754. </el-form-item>
  755. </el-col>
  756. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 1" :span="5" :offset="1">
  757. <el-form-item label="纳税人名称:" prop="taxpayerName">
  758. <el-input v-model="vehicleAndVesselTaxForm.taxpayerName" placeholder="请输入纳税人名称" type="text"></el-input>
  759. </el-form-item>
  760. </el-col>
  761. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 1" :span="5" :offset="1">
  762. <el-form-item label="证件类型:" prop="taxpayerIdentifier">
  763. <el-select v-model="vehicleAndVesselTaxForm.taxpayerIdentifier" placeholder="证件类型" clearable>
  764. <el-option v-for="(item, index) in taxpayerIdentifieroptions" :key="index" :label="item.dictTag"
  765. :value="item.dictValue"></el-option>
  766. </el-select>
  767. </el-form-item>
  768. </el-col>
  769. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 2 ||
  770. vehicleAndVesselTaxForm.taxRelifFlag == 3
  771. " :span="5" :offset="1">
  772. <el-form-item label="减免税凭证号:" prop="extendChar2">
  773. <el-input v-model="vehicleAndVesselTaxForm.extendChar2" placeholder="请输入减免税凭证号" type="text"></el-input>
  774. </el-form-item>
  775. </el-col>
  776. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 4" :span="5" :offset="1">
  777. <el-form-item label="完税凭证号:" prop="paidFreeCertificate">
  778. <el-input v-model="vehicleAndVesselTaxForm.paidFreeCertificate" placeholder="请输入完税凭证号"
  779. type="text"></el-input>
  780. </el-form-item>
  781. </el-col>
  782. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 2 ||
  783. vehicleAndVesselTaxForm.taxRelifFlag == 3
  784. " :span="5" :offset="1">
  785. <el-form-item label="减免税原因:" prop="relifReason">
  786. <el-select v-model="vehicleAndVesselTaxForm.relifReason" placeholder="减免税原因" clearable>
  787. <el-option v-for="(item, index) in relifReasonoptions" :key="index" :label="item.dictTag"
  788. :value="item.dictValue"></el-option>
  789. </el-select>
  790. </el-form-item>
  791. </el-col>
  792. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag != 1" :span="5" :offset="1">
  793. <el-form-item label="税务机关代码:" prop="taxComCode">
  794. <el-input v-model="vehicleAndVesselTaxForm.taxComCode" placeholder="请输入税务机关代码" type="text"></el-input>
  795. </el-form-item>
  796. </el-col>
  797. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag != 1" :span="5"
  798. :offset="vehicleAndVesselTaxForm.taxRelifFlag == 4 ? 1 : 0">
  799. <el-form-item label="税务机关名称:" prop="taxComName">
  800. <el-input v-model="vehicleAndVesselTaxForm.taxComName" placeholder="请输入税务机关名称" type="text"></el-input>
  801. </el-form-item>
  802. </el-col>
  803. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 4" :span="5">
  804. <el-form-item label="完税凭证填发日期:" prop="taxDocumentDate">
  805. <el-date-picker v-dateFormat v-model="vehicleAndVesselTaxForm.taxDocumentDate" value-format="yyyy-MM-dd"
  806. type="date" placeholder="完税凭证填发日期" placement="bottom-start"></el-date-picker>
  807. </el-form-item>
  808. </el-col>
  809. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 4" :span="5" :offset="1">
  810. <el-form-item label="完税凭证地区:" prop="taxPaidAreaCode">
  811. <el-select v-model="vehicleAndVesselTaxForm.taxPaidAreaCode" placeholder="完税凭证地区" clearable>
  812. <el-option v-for="(item, index) in provinceSelect" :key="index" :label="item.name"
  813. :value="item.code"></el-option>
  814. </el-select>
  815. </el-form-item>
  816. </el-col>
  817. <el-col v-show="vehicleAndVesselTaxForm.taxRelifFlag == 3" :span="5" :offset="1">
  818. <el-form-item label="减税比例:" prop="taxRelief">
  819. <el-input v-model="vehicleAndVesselTaxForm.taxRelief" placeholder="请输入0~1的数值" type="text"></el-input>
  820. </el-form-item>
  821. </el-col>
  822. </el-row>
  823. </el-form>
  824. </div>
  825. <div class="Enclosure flex f-c back">
  826. <div class="home flex j-s a-c back">
  827. <div class="flex j-s a-c" id="more">
  828. <img src="../../../../src/icon/险别选择.png" alt class="icon-img" />
  829. <span style="margin-left: 15px; width: 120px">险别选择</span>
  830. <el-select size="small" style="width: 70%" v-model="packageValue" placeholder="请选择套餐" @change="packageChange">
  831. <el-option v-for="item in packageOptions" :key="item.id" :label="item.title" :value="item.id"></el-option>
  832. </el-select>
  833. </div>
  834. </div>
  835. <div class="flex f-c more">
  836. <div class="flex j-s a-c more-title back">
  837. <div style="width: 590px; padding-left: 100px" class="flex j-s a-c">
  838. <span>险别</span>
  839. <span>保额(元)</span>
  840. </div>
  841. </div>
  842. <div class="flex a-c more-data back" v-for="(insureitem, insureindex) in insureList" :key="insureindex">
  843. <div style="width: 700px; padding-left: 100px" class="flex j-s a-c">
  844. <div style="width: auto">
  845. <span style="text-align: center">
  846. {{ insureitem.kindName }}
  847. <el-input v-show="insureitem.kindCode == 'D4' ||
  848. insureitem.kindCode == 'MJ4' ||
  849. insureitem.kindCode == 'SY_FJ_YBW2'
  850. " v-model="sumseatCount" style="width: 40px; margin: 0 5px" size="small" placeholder
  851. disabled></el-input>
  852. <span v-show="insureitem.kindCode == 'D4' ||
  853. insureitem.kindCode == 'MJ4' ||
  854. insureitem.kindCode == 'SY_FJ_YBW2'
  855. ">座</span>
  856. </span>
  857. </div>
  858. <el-select v-if="insureitem.amtList" filterable v-model="insureitem.amount" placeholder="请选择"
  859. @change="insureitemChange($event, insureitem)" size="small" style="width: 300px">
  860. <el-option :label="item.label" :value="item.value" v-for="(item, index) in insureitem.amtList"
  861. :key="index"></el-option>
  862. </el-select>
  863. <span v-else>
  864. <el-input-number size="small" style="width: 280px; margin-right: 10px" v-model="insureitem.amount"
  865. @change="insureitemChange($event, insureitem)"
  866. :min="0"></el-input-number>次
  867. </span>
  868. </div>
  869. </div>
  870. <!-- <div style="margin:0 auto;font-size: 14px;cursor: pointer;margin-top:15px;">
  871. <span v-show="insureMore" @click="selectMore(insureList.length)">
  872. 查看更多
  873. <i class="el-icon-arrow-down"></i>
  874. </span>
  875. <span v-show="!insureMore" @click="packup()">
  876. 收起
  877. <i class="el-icon-arrow-up"></i>
  878. </span>
  879. </div>-->
  880. </div>
  881. </div>
  882. <!-- 保险公司信息 -->
  883. <div class="Enclosure flex f-c back">
  884. <div class="home flex j-s">
  885. <div class="flex j-s a-c" id="company">
  886. <img src="../../../../src/icon/保险公司.png" alt class="icon-img" />
  887. <span style="margin-left: 10px">保险公司</span>
  888. <div class="csstool">
  889. <span>是否过户车</span>
  890. <el-switch @change="transferFlagChange" v-model="carInfo.transferFlag" active-color="#D42426"></el-switch>
  891. </div>
  892. <div class="csstool">
  893. <span>商业险是否过户</span>
  894. <el-switch v-model="carInfo.transferFlagBi" active-color="#D42426"></el-switch>
  895. </div>
  896. <div class="csstool">
  897. <span>是否脱保</span>
  898. <el-switch v-model="carInfo.outOfInsurance" active-color="#D42426"></el-switch>
  899. </div>
  900. <div class="csstool">
  901. <span>是否二手车</span>
  902. <el-switch v-model="carInfo.usedCar" active-color="#D42426"></el-switch>
  903. </div>
  904. </div>
  905. <div class="flex j-c a-c">
  906. <el-button v-show="imageUploadShow" size="small" type="primary" @click="imageUpload()">
  907. <i class="el-icon-camera-solid" style="margin-right: 4px"></i>
  908. 影像上传
  909. </el-button>
  910. </div>
  911. </div>
  912. <div>
  913. <div class="companyhead">
  914. <el-row>
  915. <el-col :span="3">
  916. <span>保险公司</span>
  917. </el-col>
  918. <el-col :span="4">
  919. <span>报价协议</span>
  920. </el-col>
  921. <el-col :span="3" v-if="isLetter == '3'">
  922. <span>是否现询</span>
  923. </el-col>
  924. <el-col :span="4" v-if="isLetter == '3'">
  925. <span>非现询费用</span>
  926. </el-col>
  927. <el-col :span="2">
  928. <span>交强险</span>
  929. </el-col>
  930. <el-col :span="2">
  931. <span>车船税</span>
  932. </el-col>
  933. <el-col :span="2">
  934. <span>商业险</span>
  935. </el-col>
  936. <el-col :span="2">
  937. <span>驾意险</span>
  938. </el-col>
  939. <el-col :span="2">
  940. <span>合计</span>
  941. </el-col>
  942. </el-row>
  943. </div>
  944. <div class="coll" v-if="isLetter == '3'">
  945. <div v-loading.fullscreen.lock="loading" class="hovers" v-for="(reslistitem, reslistindex) in totalCompanyList"
  946. :key="reslistindex">
  947. <el-row>
  948. <el-col :span="3">
  949. <el-select size="small" v-model="companyName" placeholder="请选择保险公司" filterable clearable @change="changeCompany" style="width: 100%;">
  950. <el-option :label="item.name" :value="item.name" v-for="item in ztreeNodes" :key="item.name" ></el-option>
  951. </el-select>
  952. </el-col>
  953. <el-col :span="4">
  954. <el-select size="small" v-model="isLetter3agreementId" filterable clearable
  955. placeholder="请选择协议" @change="(val) =>
  956. agreementChange(
  957. val,
  958. reslistitem.agreement,
  959. reslistindex,
  960. reslistitem
  961. )
  962. ">
  963. <el-option
  964. :label="`${item.agreementName}-${item.businessDescription}-${item.jobDescription}`"
  965. :value="item.id"
  966. v-for="item in reslistitem.agreement" :key="item.id"></el-option>
  967. </el-select>
  968. </el-col>
  969. <el-col :span="3" >
  970. <el-select size="small" filterable clearable v-model="costFlag"
  971. @change="changeIsInquirySelect">
  972. <el-option v-for="(item, index) in isInquirySelect" :key="index" :label="item.value"
  973. :value="item.id"></el-option>
  974. </el-select>
  975. </el-col>
  976. <el-col :span="4">
  977. <el-select size="small" filterable clearable v-if="isInquirySelectFlag" v-model="xxNowCostsId" :disabled = isInquirySelectFlag
  978. @change="inquiryNowListChange">
  979. <el-option v-for="(item, index) in inquiryNowList" :key="index" :label="item.costsDescription"
  980. :value="item.id"></el-option>
  981. </el-select>
  982. <el-select size="small" filterable clearable v-else v-model="nowCostsId" :disabled = isInquirySelectFlag
  983. @change="inquiryNowListChange">
  984. <el-option v-for="(item, index) in inquiryNowList" :key="index" :label="item.costsDescription"
  985. :value="item.id"></el-option>
  986. </el-select>
  987. </el-col>
  988. <el-col :span="2">
  989. <span style="color: #d42426; font-weight: bold">
  990. {{
  991. policyNumberForm.jqpremium
  992. ? "¥" + policyNumberForm.jqpremium
  993. : "&nbsp;"
  994. }}
  995. </span>
  996. </el-col>
  997. <el-col :span="2">
  998. <span style="color: #d42426; font-weight: bold">
  999. {{
  1000. policyNumberForm.taxamount
  1001. ? "¥" + policyNumberForm.taxamount
  1002. : "&nbsp;"
  1003. }}
  1004. </span>
  1005. </el-col>
  1006. <el-col :span="2">
  1007. <span style="color: #d42426; font-weight: bold">
  1008. {{
  1009. policyNumberForm.sypremium
  1010. ? "¥" + policyNumberForm.sypremium
  1011. : "&nbsp;"
  1012. }}
  1013. </span>
  1014. </el-col>
  1015. <el-col :span="2">
  1016. <span style="color: #d42426; font-weight: bold">
  1017. {{
  1018. policyNumberForm.jypremium
  1019. ? "¥" + policyNumberForm.jypremium
  1020. : "&nbsp;"
  1021. }}
  1022. </span>
  1023. </el-col>
  1024. <el-col :span="2">
  1025. <span style="color: #d42426; font-weight: bold">
  1026. {{
  1027. sumPremium != 0 ? "¥" + sumPremium
  1028. : "&nbsp;"
  1029. }}
  1030. </span>
  1031. </el-col>
  1032. </el-row>
  1033. </div>
  1034. </div>
  1035. </div>
  1036. </div>
  1037. <!-- 外部订单保费信息 -->
  1038. <div class="Enclosure flex f-c back" v-if="isLetter == '3'">
  1039. <div class="home flex j-s a-c">
  1040. <div class="flex j-s a-c color" id="Waibu">
  1041. <img src="../../../../src/icon/车船税.png" alt class="icon-img" />
  1042. <span style="margin-left: 10px">外部订单</span>
  1043. </div>
  1044. <div class="flex j-c a-c">
  1045. <el-button v-show="policyNumberForm.jqpolicyno ||
  1046. policyNumberForm.sypolicyno ||
  1047. policyNumberForm.jypolicyno
  1048. " size="small" type="primary" @click="policyUpload()">
  1049. <i class="el-icon-camera-solid" style="margin-right: 4px"></i>
  1050. 保单上传
  1051. </el-button>
  1052. </div>
  1053. </div>
  1054. <el-form class="demo-ruleForm" :model="policyNumberForm" ref="policyNumberForm" :rules="rules" label-width="160px"
  1055. size="small" style="margin-top: 15px">
  1056. <el-row style="flex-wrap: wrap; display: flex">
  1057. <el-col :span="8">
  1058. <el-form-item label="评分" prop="score">
  1059. <el-input v-model="policyNumberForm.score" placeholder="请输入评分"></el-input>
  1060. </el-form-item>
  1061. </el-col>
  1062. <el-col :span="8">
  1063. <el-form-item label="交强续保" prop="jqRenewal">
  1064. <el-select v-model="policyNumberForm.jqRenewal" placeholder="请选择交强续保" clearable>
  1065. <el-option v-for="item in [
  1066. {
  1067. label: '是',
  1068. value: '1',
  1069. },
  1070. {
  1071. label: '否',
  1072. value: '0',
  1073. },
  1074. ]" :key="item.value" :label="item.label" :value="item.value">
  1075. </el-option>
  1076. </el-select>
  1077. </el-form-item>
  1078. </el-col>
  1079. <el-col :span="8">
  1080. <el-form-item label="商业续保" prop="syRenewal">
  1081. <el-select v-model="policyNumberForm.syRenewal" placeholder="请选择商业续保" clearable>
  1082. <el-option v-for="item in [
  1083. {
  1084. label: '是',
  1085. value: '1',
  1086. },
  1087. {
  1088. label: '否',
  1089. value: '0',
  1090. },
  1091. ]" :key="item.value" :label="item.label" :value="item.value">
  1092. </el-option>
  1093. </el-select>
  1094. </el-form-item>
  1095. </el-col>
  1096. <el-col :span="8">
  1097. <el-form-item label="交强保单号" prop="jqpolicyno">
  1098. <el-input v-model="policyNumberForm.jqpolicyno" placeholder="请输入交强保单号"></el-input>
  1099. </el-form-item>
  1100. </el-col>
  1101. <el-col :span="8">
  1102. <el-form-item label="交强险保费" prop="jqpremium">
  1103. <el-input v-model="policyNumberForm.jqpremium" placeholder="请输入交强险保费" type="text"></el-input>
  1104. </el-form-item>
  1105. </el-col>
  1106. <el-col :span="8">
  1107. <el-form-item label="交强险总比例(%)" prop="jqCostsProportion">
  1108. <el-input v-if="isInquiryNowDisable" :disabled="isInquiryNowDisable" v-model="policyNumberForm.jqCostsProportion"
  1109. type="text"></el-input>
  1110. <el-input v-else :disabled="isInquiryNowDisable" v-model="policyNumberForm.jqCostsProportion"
  1111. @change.native =getExternalOrderFee
  1112. placeholder="请输入交强险总比例(%)" type="text"></el-input>
  1113. </el-form-item>
  1114. </el-col>
  1115. <el-col :span="8">
  1116. <el-form-item label="商业保单号" prop="sypolicyno">
  1117. <el-input v-model="policyNumberForm.sypolicyno" placeholder="请输入商业保单号" type="text"></el-input>
  1118. </el-form-item>
  1119. </el-col>
  1120. <el-col :span="8">
  1121. <el-form-item label="商业险保费" prop="sypremium">
  1122. <el-input v-model="policyNumberForm.sypremium" placeholder="请输入商业险保费" type="text"></el-input>
  1123. </el-form-item>
  1124. </el-col>
  1125. <el-col :span="8">
  1126. <el-form-item label="商业险总比例(%)" prop="syCostsProportion">
  1127. <!-- <el-input :disabled="isInquiryNowDisable" v-model="policyNumberForm.syCostsProportion" placeholder="请输入商业险其他费用比例" type="text"></el-input> -->
  1128. <el-input v-if="isInquiryNowDisable" :disabled="isInquiryNowDisable" v-model="policyNumberForm.syCostsProportion"
  1129. type="text"></el-input>
  1130. <el-input v-else :disabled="isInquiryNowDisable" v-model="policyNumberForm.syCostsProportion"
  1131. @change.native =getExternalOrderFee
  1132. placeholder="请输入商业险总比例(%)" type="text"></el-input>
  1133. </el-form-item>
  1134. </el-col>
  1135. <el-col :span="8">
  1136. <el-form-item label="驾意保单号" prop="jypolicyno">
  1137. <el-input v-model="policyNumberForm.jypolicyno" placeholder="请输入驾意保单号" type="text"></el-input>
  1138. </el-form-item>
  1139. </el-col>
  1140. <el-col :span="8">
  1141. <el-form-item label="驾意险保费" prop="jypremium">
  1142. <el-input v-model="policyNumberForm.jypremium" placeholder="请输入驾意险保费" type="text"></el-input>
  1143. </el-form-item>
  1144. </el-col>
  1145. <el-col :span="8">
  1146. <el-form-item label="非车险总比例(%)" prop="noCostsProportion">
  1147. <!-- <el-input v-model="policyNumberForm.noCostsProportion" placeholder="请输入非车其他费用比例" type="text"></el-input> -->
  1148. <el-input v-if="isInquiryNowDisable" :disabled="isInquiryNowDisable" v-model="policyNumberForm.noCostsProportion"
  1149. type="text"></el-input>
  1150. <el-input v-else :disabled="isInquiryNowDisable" v-model="policyNumberForm.noCostsProportion"
  1151. @change.native =getExternalOrderFee
  1152. placeholder="请输入非车险总比例(%)" type="text"></el-input>
  1153. </el-form-item>
  1154. </el-col>
  1155. <!-- <el-col :span="5" :offset="1">
  1156. <el-form-item label="交强险手续费比例" prop="jqSuperviseCostsProportion">
  1157. <el-input v-model="policyNumberForm.jqSuperviseCostsProportion" placeholder="请输入交强险手续费比例"
  1158. type="text"></el-input>
  1159. </el-form-item>
  1160. </el-col>
  1161. <el-col :span="5">
  1162. <el-form-item label="商业险手续费比例" prop="sySuperviseCostsProportion">
  1163. <el-input v-model="policyNumberForm.sySuperviseCostsProportion" placeholder="请输入商业险手续费比例"
  1164. type="text"></el-input>
  1165. </el-form-item>
  1166. </el-col>
  1167. <el-col :span="5" :offset="1">
  1168. <el-form-item label="非车手续费比例" prop="noSuperviseCostsProportion">
  1169. <el-input v-model="policyNumberForm.noSuperviseCostsProportion" placeholder="请输入非车手续费比例"
  1170. type="text"></el-input>
  1171. </el-form-item>
  1172. </el-col> -->
  1173. <el-col :span="8">
  1174. <el-form-item label="车船税" prop="taxamount">
  1175. <el-input v-model="policyNumberForm.taxamount" placeholder="请输入车船税" type="text"></el-input>
  1176. </el-form-item>
  1177. </el-col>
  1178. <el-col :span="8">
  1179. <el-form-item label="签单日期" prop="signDate">
  1180. <el-date-picker v-model="policyNumberForm.signDate" type="datetime" value-format="yyyy-MM-dd HH:mm:ss"
  1181. placeholder="选择日期">
  1182. </el-date-picker>
  1183. </el-form-item>
  1184. </el-col>
  1185. <el-col :span="8">
  1186. <el-form-item label="交强出口比例">
  1187. <el-input placeholder="请输入交强出口比例" disabled v-model="policyNumberForm.jqOtherCostsProportion" type="text"></el-input>
  1188. </el-form-item>
  1189. </el-col>
  1190. <el-col :span="8">
  1191. <el-form-item label="商业出口比例">
  1192. <el-input placeholder="请输入商业出口比例" disabled v-model="policyNumberForm.syOtherCostsProportion" type="text"></el-input>
  1193. </el-form-item>
  1194. </el-col>
  1195. <el-col :span="8">
  1196. <el-form-item label="非车出口比例">
  1197. <el-input placeholder="请输入非车出口比例" disabled v-model="policyNumberForm.noOtherCostsProportion" type="text"></el-input>
  1198. </el-form-item>
  1199. </el-col>
  1200. </el-row>
  1201. </el-form>
  1202. </div>
  1203. <div class="Enclosure flex f-c" v-if="isLetter == '1'">
  1204. <div class="home flex j-s a-c back">
  1205. <div class="flex j-s a-c color">
  1206. <img src="../../../../src/icon/报价历史.png" alt class="icon-img" />
  1207. <span style="margin-left: 10px">报价历史</span>
  1208. <div v-if="orderno">
  1209. <el-radio-group v-model="historyRadio" style="margin-left: 30px" @input="RadioHistoryChange"
  1210. v-for="item in insOrderStatusoptions" :key="item.dictValue">
  1211. <el-radio :label="item.dictValue">{{ item.dictTag }}</el-radio>
  1212. </el-radio-group>
  1213. </div>
  1214. </div>
  1215. </div>
  1216. <div style="padding: 20px">
  1217. <el-table size="small" :data="HistoryList" height="250" border style="width: 100%" v-loading="loading"
  1218. :header-cell-style="{
  1219. background: '#F7F7F9 ',
  1220. fontWeight: '700',
  1221. color: '#333333',
  1222. }" highlight-current-row>
  1223. <el-table-column prop="inscompany" label="保险公司" align="center"></el-table-column>
  1224. <el-table-column prop="username" label="业务员" align="center">
  1225. <template slot-scope="scope">
  1226. <span>{{ scope.row.userName }}({{ scope.row.userId }})</span>
  1227. </template>
  1228. </el-table-column>
  1229. <el-table-column prop="licenseno" label="车牌号" align="center"></el-table-column>
  1230. <el-table-column prop="createtime" label="报价时间" align="center"></el-table-column>
  1231. <el-table-column prop="jqpremium" label="交强险" align="center"></el-table-column>
  1232. <el-table-column prop="sypremium" label="商业险" align="center"></el-table-column>
  1233. <el-table-column prop="taxamount" label="车船税" align="center"></el-table-column>
  1234. <el-table-column prop="sumpremium" label="总保费" align="center"></el-table-column>
  1235. <el-table-column prop="orderstatus" label="状态" align="center">
  1236. <template slot-scope="scope">
  1237. <el-tag style="
  1238. color: #33a08d;
  1239. border-color: #33a08d;
  1240. background: rgba(51, 160, 141, 0.1);
  1241. " v-if="scope.row.orderstatus == '0' || scope.row.orderstatus == '1'
  1242. " size="small">{{ scope.row.orderstatus | cap }}</el-tag>
  1243. <el-tag type="danger" style="border-color: #e75b5d" v-else-if="scope.row.orderstatus == '3'" size="small">{{
  1244. scope.row.orderstatus | cap }}</el-tag>
  1245. <el-tag v-else style="
  1246. color: #2d4d89;
  1247. border-color: #2d4d89;
  1248. background: rgba(45, 77, 137, 0.1);
  1249. " size="small">{{ scope.row.orderstatus | cap }}</el-tag>
  1250. </template>
  1251. </el-table-column>
  1252. <el-table-column label="操作" align="center" min-width="180" fixed="right">
  1253. <template slot-scope="scope">
  1254. <el-button type="text" style="color: #2d4d89" size="small"
  1255. @click="qoutedetail(scope.row.id)">查看详情</el-button>
  1256. <el-button size="small" type="text" @click="bjdpreview(scope.row.id)">报价单</el-button>
  1257. <el-button size="small" v-show="scope.row.orderstatus == '2'" type="text"
  1258. @click="Payment(scope.row.id, scope.row)">付款码</el-button>
  1259. <!-- <el-button size="small" v-show="scope.row.orderstatus == '2' && scope.row.inscompany=='平安财险'" type="text"
  1260. @click="signature(scope.row.id)">生成签章</el-button> -->
  1261. <el-button size="mini" type="text" v-if="(scope.row.orderstatus == '1' ||
  1262. scope.row.orderstatus == '2' ||
  1263. scope.row.orderstatus == '4') &&
  1264. ['紫金财险'].includes(scope.row.inscompany)
  1265. " @click="cancelorder(scope.row)">撤单</el-button>
  1266. <el-button type="text" size="mini" style="color: #2d4d89"
  1267. v-if="scope.row.orderstatus == '2' && scope.row.inscompany !== '平安财险'"
  1268. @click="revokeCode(scope.row.id)">撤销二维码</el-button>
  1269. </template>
  1270. </el-table-column>
  1271. </el-table>
  1272. </div>
  1273. </div>
  1274. <!-- 查看详情 -->
  1275. <detailsDialog ref="detailsDialog" :orderInfo.sync="queryOrders" :Feepermissions="false"></detailsDialog>
  1276. <el-dialog title="车型选择" :visible.sync="chexingdialogVisible" width="1300px">
  1277. <el-form :inline="true" class="demo-form-inline" size="small">
  1278. <el-form-item label="厂牌型号">
  1279. <el-input v-model="carInfo.modelcname" placeholder="厂牌型号" style="width: 500px"></el-input>
  1280. </el-form-item>
  1281. <el-form-item>
  1282. <el-button type="primary" size="small" @click="toChooseVehicleType(carInfo.modelcname)">查询</el-button>
  1283. </el-form-item>
  1284. </el-form>
  1285. <el-table size="small" :data="reslist" height="690" border style="width: 100%" v-loading="loading"
  1286. :header-cell-style="{
  1287. background: '#F7F7F9 ',
  1288. fontWeight: '700',
  1289. color: '#333333',
  1290. }" highlight-current-row @row-dblclick="reslistCurrentChange">
  1291. <el-table-column prop="modelCode" label="厂牌型号代码" align="center" width="200"></el-table-column>
  1292. <el-table-column prop="modelName" label="厂牌型号" align="center" width="300"></el-table-column>
  1293. <el-table-column prop="replacementValue" label="新车购置价" align="center" width="100"></el-table-column>
  1294. <el-table-column prop="marketYear" label="年款" align="center" width="100"></el-table-column>
  1295. <el-table-column prop="ratedPassengerCapacity" label="座位数" align="center" width="80"></el-table-column>
  1296. <el-table-column prop="displacement" label="排量" align="center" width="100"></el-table-column>
  1297. <el-table-column prop="remark" label="配置" align="center"></el-table-column>
  1298. </el-table>
  1299. </el-dialog>
  1300. <el-dialog title="车辆识别代码" :visible.sync="sbdmdialogVisible" width="1300px">
  1301. <el-form :inline="true" class="demo-form-inline" size="small">
  1302. <el-form-item label="车辆识别代码">
  1303. <el-input v-model="carInfo.frameNo" placeholder="车辆识别代码" style="width: 500px"></el-input>
  1304. </el-form-item>
  1305. <el-form-item>
  1306. <el-button type="primary" size="small" @click="toChooseVin(carInfo.frameNo)">查询</el-button>
  1307. </el-form-item>
  1308. </el-form>
  1309. <el-table size="small" :data="reslist" height="690" border style="width: 100%" v-loading="loading"
  1310. :header-cell-style="{
  1311. background: '#F7F7F9 ',
  1312. fontWeight: '700',
  1313. color: '#333333',
  1314. }" highlight-current-row @row-dblclick="reslistCurrentChange">
  1315. <el-table-column prop="modelCode" label="厂牌型号代码" align="center" width="200"></el-table-column>
  1316. <el-table-column prop="modelName" label="厂牌型号" align="center" width="300"></el-table-column>
  1317. <el-table-column prop="replacementValue" label="新车购置价" align="center" width="100"></el-table-column>
  1318. <el-table-column prop="marketYear" label="年款" align="center" width="100"></el-table-column>
  1319. <el-table-column prop="ratedPassengerCapacity" label="座位数" align="center" width="80"></el-table-column>
  1320. <el-table-column prop="displacement" label="排量" align="center" width="100"></el-table-column>
  1321. <el-table-column prop="remark" label="配置" align="center"></el-table-column>
  1322. </el-table>
  1323. </el-dialog>
  1324. <!--第一种 二维码 -->
  1325. <el-dialog :visible.sync="codedialogVisible" width="430px" top="10vh" class="saomazhifucodeClass">
  1326. <div class="ORcodebody" v-watermark="userform.id || userId">
  1327. <div slot="title" class="dialog-title">
  1328. <span>扫码付款</span>
  1329. </div>
  1330. <div class="ORcode">
  1331. <div style="padding: 13px; position: relative">
  1332. <div v-if="['大家财险', '华泰财险'].includes(inscompany)">
  1333. <div v-if="apiType == 1" id="qrcode" ref="qrcode"></div>
  1334. <img v-else :src="paycodeimg" alt style="width: 100%" />
  1335. </div>
  1336. <div v-else>
  1337. <img v-if="['太平财险'].includes(inscompany)" :src="paycodeimg" alt style="width: 100%" />
  1338. <div v-else id="qrcode" ref="qrcode"></div>
  1339. </div>
  1340. </div>
  1341. </div>
  1342. <img style="margin-left: -16px" src="../../../assets/image/divider.png" alt />
  1343. <div style="
  1344. font-size: 32px;
  1345. text-align: center;
  1346. color: #d42426;
  1347. margin-top: 20px;
  1348. ">
  1349. <span style="font-size: 24px; font-weight: bold">¥</span>
  1350. {{ sumpremium }}
  1351. </div>
  1352. <div class="ORtitle">
  1353. <div>
  1354. <span>保险公司:</span>
  1355. <span>{{ inscompany }}</span>
  1356. </div>
  1357. <div>
  1358. <span>车牌号:</span>
  1359. <span>{{ licenseNo }}</span>
  1360. </div>
  1361. <div>
  1362. <span>投保人:</span>
  1363. <span>{{ applyName }}</span>
  1364. </div>
  1365. <!-- <div>
  1366. <span style="color:#f75c00">总金额:</span>
  1367. <span style="color:#f75c00">{{ sumpremium }}</span>
  1368. </div>-->
  1369. <div v-show="jqpremium">
  1370. <span>交强:</span>
  1371. <span>{{ jqpremium }}</span>
  1372. </div>
  1373. <div v-show="sypremium">
  1374. <span>商业:</span>
  1375. <span>{{ sypremium }}</span>
  1376. </div>
  1377. <div v-show="taxamount">
  1378. <span>车船税:</span>
  1379. <span>{{ taxamount }}</span>
  1380. </div>
  1381. <div v-show="jqstartdate">
  1382. <span>交强险起保日期:</span>
  1383. <span>{{ jqstartdate }}</span>
  1384. </div>
  1385. <div v-show="systartdate">
  1386. <span>商业险起保日期:</span>
  1387. <span>{{ systartdate }}</span>
  1388. </div>
  1389. <div v-if="jypremium">
  1390. <span>非车险:</span>
  1391. <span>{{ jypremium }}</span>
  1392. </div>
  1393. </div>
  1394. <!-- <div class="display">
  1395. <el-button size="small" style="width:100px;" @click="codedialogVisible = false">关闭</el-button>
  1396. </div>-->
  1397. </div>
  1398. <span slot="footer" class="dialog-footer display">
  1399. <el-button size="small" style="width: 100px; border-color: #d42426; color: #d42426"
  1400. @click="codedialogVisible = false">关闭</el-button>
  1401. </span>
  1402. </el-dialog>
  1403. <!--第二种 二维码 -->
  1404. <el-dialog :visible.sync="codedialogVisiblePro" width="660px" class="proSaomazhifucodeClass" top="10vh" title="扫码付款">
  1405. <div class="flex j-s">
  1406. <div class="scan-code">
  1407. <div style="font-weight: bold">
  1408. 总金额:
  1409. <span style="color: #2d4d89">{{ sumpremium }}</span>
  1410. </div>
  1411. <div>交强险:{{ jqpremium }}</div>
  1412. <div>车船税:{{ taxamount }}</div>
  1413. <div>商业险:{{ sypremium }}</div>
  1414. <div>非车险:{{ jypremium }}</div>
  1415. </div>
  1416. <div v-if="['大家财险', '华泰财险'].includes(inscompany)">
  1417. <div v-if="apiType == 1" id="qrcode" ref="qrcode"></div>
  1418. <img v-else :src="paycodeimg" alt style="width: 100%" />
  1419. </div>
  1420. <div v-else>
  1421. <img v-if="['太平财险'].includes(inscompany)" :src="paycodeimg" alt style="width: 200px; height: 200px" />
  1422. <div v-else id="qrcode" ref="qrcode"></div>
  1423. </div>
  1424. <div class="scan-code">
  1425. <div>保险公司:{{ inscompany }}</div>
  1426. <div>车牌号:{{ licenseNo }}</div>
  1427. <div>投保人:{{ applyName }}</div>
  1428. <div>交强险起保日期:{{ jqstartdate }}</div>
  1429. <div>商业险起保日期:{{ systartdate }}</div>
  1430. </div>
  1431. </div>
  1432. <span slot="footer" class="dialog-footer">
  1433. <el-button size="small" style="
  1434. width: 100px;
  1435. background: #eaedf1;
  1436. border-color: #eaedf1;
  1437. color: #2d4d89;
  1438. " @click="codedialogVisiblePro = false">关闭</el-button>
  1439. </span>
  1440. </el-dialog>
  1441. <el-dialog :visible.sync="uploadcardialogVisible" width="960px" style="padding: 10px 20px; box-sizing: border-box"
  1442. @open="closeDialog(0)">
  1443. <div slot="title" class="dialog-title">
  1444. <span>行驶证识别</span>
  1445. </div>
  1446. <el-row :gutter="20">
  1447. <div class="bodys1">
  1448. <div>
  1449. <div class="flex a-c">
  1450. <div class="OCR" style="text-align: center">行驶证主页</div>
  1451. <div style="text-align: center; margin: 20px" @drop="reportDrop">
  1452. <el-upload drag action="#" :show-file-list="false" :auto-upload="false" :on-change="carfrontChange">
  1453. <img v-show="carfrontImg" :src="carfrontImg" style="width: 100%; height: 100%" />
  1454. <img v-show="!carfrontImg" src="../../../../static/carfront.png" style="width: 100%; height: 100%" />
  1455. <span class="slot" v-show="carfrontImg" @click.stop>
  1456. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(carfrontImg)"></i>
  1457. <i class="el-icon-delete" @click.stop="handleRemove('carfrontImg')"></i>
  1458. </span>
  1459. </el-upload>
  1460. </div>
  1461. </div>
  1462. <div class="flex a-c">
  1463. <div class="OCR" style="text-align: center">行驶证副页</div>
  1464. <div style="text-align: center; margin: 20px" @drop="reportDrop">
  1465. <el-upload drag action="#" :show-file-list="false" :auto-upload="false" :on-change="carbackChange">
  1466. <img v-show="carbackImg" :src="carbackImg" style="width: 100%; height: 100%" />
  1467. <img v-show="!carbackImg" src="../../../../static/carback.png" style="width: 100%; height: 100%" />
  1468. <span class="slot" v-show="carbackImg" @click.stop>
  1469. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(carbackImg)"></i>
  1470. <i class="el-icon-delete" @click.stop="handleRemove('carbackImg')"></i>
  1471. </span>
  1472. </el-upload>
  1473. </div>
  1474. </div>
  1475. </div>
  1476. <div style="text-align: center">
  1477. <el-form :model="carform" label-width="130px" size="small">
  1478. <el-form-item label="所有人">
  1479. <el-input v-model="carform.carOwner" autocomplete="off"></el-input>
  1480. </el-form-item>
  1481. <el-form-item label="车牌号">
  1482. <el-input v-model="carform.licenseNo" autocomplete="off"></el-input>
  1483. </el-form-item>
  1484. <el-form-item label="车架号">
  1485. <el-input v-model="carform.frameNo" autocomplete="off"></el-input>
  1486. </el-form-item>
  1487. <el-form-item label="品牌型号">
  1488. <el-input v-model="carform.modelcname" autocomplete="off"></el-input>
  1489. </el-form-item>
  1490. <el-form-item label="发动机号">
  1491. <el-input v-model="carform.engineNo" autocomplete="off"></el-input>
  1492. </el-form-item>
  1493. <el-form-item label="总质量">
  1494. <el-input v-model="carform.grossMass" autocomplete="off"></el-input>
  1495. </el-form-item>
  1496. <el-form-item label="整备质量">
  1497. <el-input v-model="carform.unladenMass" autocomplete="off"></el-input>
  1498. </el-form-item>
  1499. <el-form-item label="核定载质量">
  1500. <el-input v-model="carform.limitLoad" autocomplete="off"></el-input>
  1501. </el-form-item>
  1502. <el-form-item label="核定载客数">
  1503. <el-input v-model="carform.approvedPassengersCapacity" autocomplete="off"></el-input>
  1504. </el-form-item>
  1505. <el-form-item label="注册日期">
  1506. <el-input v-model="carform.registerDate" autocomplete="off"></el-input>
  1507. </el-form-item>
  1508. <el-form-item label="发证日期">
  1509. <el-input v-model="carform.issueDate" autocomplete="off"></el-input>
  1510. </el-form-item>
  1511. </el-form>
  1512. </div>
  1513. </div>
  1514. </el-row>
  1515. <span slot="footer" class="dialog-footer">
  1516. <el-button type="primary" @click="CarOCRdiscern()" size="small">识 别</el-button>
  1517. <el-button type="primary" @click="CarOCRconfirm()" size="small">确 认</el-button>
  1518. </span>
  1519. </el-dialog>
  1520. <el-dialog :visible.sync="uploaduserdialogVisible" width="960px" style="padding: 10px 20px; box-sizing: border-box"
  1521. @open="closeDialog(userIndex)">
  1522. <el-tabs v-model="activeName">
  1523. <el-tab-pane label="身份证识别" name="1">
  1524. <el-row :gutter="20">
  1525. <div class="bodys1">
  1526. <div>
  1527. <div class="flex">
  1528. <div class="OCR" style="text-align: center">身份证主页</div>
  1529. <div style="text-align: center; margin: 20px" @drop="reportDrop">
  1530. <el-upload class="upload-demo" drag action="#" :show-file-list="false" :auto-upload="false"
  1531. :on-change="userfrontChange">
  1532. <img v-show="userfrontImg" :src="userfrontImg" style="width: 100%; height: 100%" />
  1533. <img v-show="!userfrontImg" src="../../../../static/userfront.png"
  1534. style="width: 100%; height: 100%" />
  1535. <span class="slot" v-show="userfrontImg" @click.stop>
  1536. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(userfrontImg)"></i>
  1537. <i class="el-icon-delete" @click.stop="handleRemove('userfrontImg')"></i>
  1538. </span>
  1539. </el-upload>
  1540. </div>
  1541. </div>
  1542. <div class="flex">
  1543. <div class="OCR" style="text-align: center">身份证副页</div>
  1544. <div style="text-align: center; margin: 20px" @drop="reportDrop">
  1545. <el-upload class="upload-demo" drag action="#" :show-file-list="false" :auto-upload="false"
  1546. :on-change="userbackChange">
  1547. <img v-show="userbackImg" :src="userbackImg" style="width: 100%; height: 100%" />
  1548. <img v-show="!userbackImg" src="../../../../static/userback.png"
  1549. style="width: 100%; height: 100%" />
  1550. <span class="slot" v-show="userbackImg" @click.stop>
  1551. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(userbackImg)"></i>
  1552. <i class="el-icon-delete" @click.stop="handleRemove('userbackImg')"></i>
  1553. </span>
  1554. </el-upload>
  1555. </div>
  1556. </div>
  1557. </div>
  1558. <div style="text-align: center">
  1559. <el-form :model="ownerInfoform" label-width="130px" size="small">
  1560. <el-form-item label="姓名">
  1561. <el-input v-model="ownerInfoform.name" autocomplete="off"></el-input>
  1562. </el-form-item>
  1563. <el-form-item label="性别">
  1564. <el-input v-model="ownerInfoform.gender" autocomplete="off"></el-input>
  1565. </el-form-item>
  1566. <el-form-item label="证件类型">
  1567. <el-input v-model="ownerInfoform.identifyType" autocomplete="off"></el-input>
  1568. </el-form-item>
  1569. <el-form-item label="证件号码">
  1570. <el-input v-model="ownerInfoform.identifyNumber" autocomplete="off"></el-input>
  1571. </el-form-item>
  1572. <el-form-item label="车主手机号">
  1573. <el-input v-model="ownerInfoform.mobile" autocomplete="off"></el-input>
  1574. </el-form-item>
  1575. <el-form-item label="地址">
  1576. <el-input v-model="ownerInfoform.addr" autocomplete="off"></el-input>
  1577. </el-form-item>
  1578. <el-form-item label="有效期起期">
  1579. <el-input disabled v-model="ownerInfoform.identifyValidDate" autocomplete="off"></el-input>
  1580. </el-form-item>
  1581. <el-form-item label="有效期止期">
  1582. <el-input disabled v-model="ownerInfoform.identifyValidEndDate" autocomplete="off"></el-input>
  1583. </el-form-item>
  1584. <el-form-item label="电子邮箱">
  1585. <el-input v-model="ownerInfoform.email" autocomplete="off"></el-input>
  1586. </el-form-item>
  1587. </el-form>
  1588. </div>
  1589. </div>
  1590. </el-row>
  1591. </el-tab-pane>
  1592. <el-tab-pane label="营业执照" name="2">
  1593. <el-row :gutter="20">
  1594. <div class="bodys1">
  1595. <div>
  1596. <div class="flex">
  1597. <div class="OCR" style="text-align: center">营业执照</div>
  1598. <div style="text-align: center; margin: 20px" @drop="reportDrop">
  1599. <el-upload class="upload-demo" drag action="#" :show-file-list="false" :auto-upload="false"
  1600. :on-change="businessChange">
  1601. <img v-show="businessImg" :src="businessImg" style="width: 100%; height: 100%" />
  1602. <img v-show="!businessImg" src="../../../../static/userfront.png"
  1603. style="width: 100%; height: 100%" />
  1604. <span class="slot" v-show="businessImg" @click.stop>
  1605. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(businessImg)"></i>
  1606. <i class="el-icon-delete" @click.stop="handleRemove('businessImg')"></i>
  1607. </span>
  1608. </el-upload>
  1609. </div>
  1610. </div>
  1611. </div>
  1612. <div style="text-align: center">
  1613. <el-form :model="businessform" label-width="130px" size="small">
  1614. <el-form-item label="单位名称">
  1615. <el-input autocomplete="off" v-model="businessform.name"></el-input>
  1616. </el-form-item>
  1617. <el-form-item label="法人">
  1618. <el-input autocomplete="off" v-model="businessform.legalPerson"></el-input>
  1619. </el-form-item>
  1620. <el-form-item label="社会信用代码">
  1621. <el-input autocomplete="off" v-model="businessform.organizationCode"></el-input>
  1622. </el-form-item>
  1623. <el-form-item label="地址">
  1624. <el-input autocomplete="off" v-model="businessform.addr"></el-input>
  1625. </el-form-item>
  1626. <el-form-item label="注册资本">
  1627. <el-input autocomplete="off" v-model="businessform.registeredCapital"></el-input>
  1628. </el-form-item>
  1629. <el-form-item label="经营范围">
  1630. <el-input autocomplete="off" type="textarea" v-model="businessform.scope"></el-input>
  1631. </el-form-item>
  1632. </el-form>
  1633. </div>
  1634. </div>
  1635. </el-row>
  1636. </el-tab-pane>
  1637. </el-tabs>
  1638. <span slot="footer" class="dialog-footer">
  1639. <el-button type="primary" @click="userOCRdiscern()" size="small">识 别</el-button>
  1640. <el-button type="primary" @click="userOCRconfirm()" size="small">确 认</el-button>
  1641. </span>
  1642. </el-dialog>
  1643. <el-dialog :visible.sync="pinganDataDetailVisible" width="40%" title="责任明细">
  1644. <el-table :data="pinganDataDetail" border style="width: 100%">
  1645. <el-table-column prop="insuranceCoverage" label="责任名称">
  1646. </el-table-column>
  1647. <el-table-column prop="unitInsuredAmount" label="每份保额">
  1648. </el-table-column>
  1649. </el-table>
  1650. </el-dialog>
  1651. <div v-if="isLetter == '1'" class="flex j-c a-c footer" :class="$store.state.app.collapse ? 'position-collapse-left' : 'position-left'
  1652. ">
  1653. <el-button size="small" @click="add()">录下一单</el-button>
  1654. <el-button type="primary" :loading="calculateLoading" size="small" @click="quote()">保费计算</el-button>
  1655. </div>
  1656. <div v-if="isLetter == '2'" style="text-align: center">
  1657. <el-button type="primary" :loading="calculateLoading" size="small" @click="quote()">保费计算</el-button>
  1658. </div>
  1659. <div v-if="isLetter == '3'" style="text-align: center">
  1660. <el-button type="primary" size="small" @click="preserveQuote(0, 'emporaryLoading')" :disabled="preserveQuoteLoading"
  1661. :loading="emporaryLoading">暂存</el-button>
  1662. <el-button type="primary" size="small" @click="preserveQuote(1, 'preserveQuoteLoading')"
  1663. :loading="preserveQuoteLoading" :disabled="emporaryLoading">保存</el-button>
  1664. </div>
  1665. <div class="Anchor-link flex f-c j-s a-c" v-if="isLetter == '1'">
  1666. <div>
  1667. <img src="../../../../src/icon/车辆信息.png" alt class="icon-img" @click="handleScroll('Car')" />
  1668. </div>
  1669. <div>
  1670. <img src="../../../../src/icon/投保信息.png" alt class="icon-img" @click="handleScroll('insurance')" />
  1671. </div>
  1672. <div>
  1673. <img src="../../../../src/icon/险别选择.png" alt class="icon-img" @click="handleScroll('more')" />
  1674. </div>
  1675. <div>
  1676. <img src="../../../../src/icon/保险公司.png" alt class="icon-img" @click="handleScroll('company')" />
  1677. </div>
  1678. </div>
  1679. <el-dialog title="核保信息" :visible.sync="underwritingdialogVisible" width="30%">
  1680. <div class="flex j-s f-c">
  1681. <div style="
  1682. font-size: 18px;
  1683. color: #d42426;
  1684. font-weight: 700;
  1685. padding: 10px 30px;
  1686. " v-if="orderstatus == '2'">
  1687. 订单状态:已核保待缴费
  1688. </div>
  1689. </div>
  1690. <span slot="footer" class="dialog-footer">
  1691. <el-button style="width: 100px" type="primary" size="small" v-if="orderstatus == '2'"
  1692. @click="Payment(companyId, queryOrders)">缴费二维码</el-button>
  1693. <!-- <el-button style="width: 100px" type="primary" size="small" v-if="orderstatus == '2' && queryOrders.inscompany=='平安财险'"
  1694. @click="signature(companyId)">生成签章</el-button> -->
  1695. </span>
  1696. </el-dialog>
  1697. <el-dialog title="转保确认码" :visible.sync="renewalCodedialogVisible" width="400px" style="font-weight: bold">
  1698. <div class="flex a-c u-f-sa" v-if="renewalCodeJqImg">
  1699. <span>交强转保确认码</span>
  1700. <div class="flex a-c f-c">
  1701. <img :src="renewalCodeJqImg" alt style="width: 150px; height: 40px; margin-bottom: 5px" />
  1702. <el-input v-model="renewalCodeJq" placeholder="请输入确认码" style="width: 150px"></el-input>
  1703. </div>
  1704. </div>
  1705. <div class="flex a-c u-f-sa" v-if="renewalCodeSyImg">
  1706. <span>商业转保确认码</span>
  1707. <div class="flex a-c f-c">
  1708. <img :src="renewalCodeSyImg" alt style="width: 150px; height: 40px; margin-bottom: 5px" />
  1709. <el-input v-model="renewalCodeSy" placeholder="请输入确认码" style="width: 150px"></el-input>
  1710. </div>
  1711. </div>
  1712. <span slot="footer" class="dialog-footer">
  1713. <el-button size="small" @click="renewalCodedialogVisible = false">取 消</el-button>
  1714. <el-button size="small" type="primary" @click="renewalCodeconfirm">确 定</el-button>
  1715. </span>
  1716. </el-dialog>
  1717. <el-dialog :title="contributingState ? '选择特约' : '提交核保'" :visible.sync="hbsubmitdialogVisible" width="1200px">
  1718. <div style="margin-bottom: 20px; font-weight: bold">特约选择</div>
  1719. <el-table size="small" :data="zijinengageListData" border v-loading="contributingLoading"
  1720. @select="zijinengageChange" @select-all="zijinengageChangeAll" ref="expandTablePro" highlight-current-row
  1721. @cell-dblclick="zijincellDblclick" :cell-class-name="tableCellClassName" :header-cell-style="{
  1722. background: '#F7F7F9 ',
  1723. fontWeight: '700',
  1724. color: '#333333',
  1725. }">
  1726. <el-table-column type="selection" width="55"></el-table-column>
  1727. <el-table-column prop="clauseCode" :width="80" label="特约代码" align="center"></el-table-column>
  1728. <el-table-column v-if="contributingState" :width="100" prop="riskName" label="特约险种"
  1729. align="center"></el-table-column>
  1730. <el-table-column prop="clauseName" label="特约名称" align="center"></el-table-column>
  1731. <el-table-column prop="clauseContent" label="特约内容">
  1732. <template slot-scope="scope">
  1733. <el-input @blur="hideInput" size="small" type="textarea" :ref="scope.row.index + ',' + scope.column.index"
  1734. v-model="scope.row.clauseContent" v-if="scope.row.index + ',' + scope.column.index == currentCell &&
  1735. scope.row.modifyFlag == '1'
  1736. "></el-input>
  1737. <span v-else>{{ scope.row.clauseContent }}</span>
  1738. </template>
  1739. </el-table-column>
  1740. </el-table>
  1741. <span slot="footer" class="dialog-footer">
  1742. <el-button size="small" @click="hbsubmitdialogVisible = false">取 消</el-button>
  1743. <el-button v-if="contributingState" size="small" type="primary"
  1744. @click="hbsubmitdialogVisible = false">确定</el-button>
  1745. <el-button v-else size="small" type="primary" @click="hbsubmit">提交核保</el-button>
  1746. </span>
  1747. </el-dialog>
  1748. <!-- <imageDialog ref="imageDialog" :quoteno="quoteno"></imageDialog>-->
  1749. <!-- 报价单 -->
  1750. <quotationDialog ref="quotationDialog" :queryOrders="queryOrders"></quotationDialog>
  1751. <quotationDialogPro ref="quotationDialogPro" :queryOrders="queryOrders"></quotationDialogPro>
  1752. <el-image-viewer v-if="showViewer" :on-close="closeViewer" :z-index="9999" :url-list="[ProViewImg]" />
  1753. <el-dialog :visible.sync="redictInfodialogVisible" width="70%">
  1754. <el-table :data="redictInfoMsg" style="width: 100%">
  1755. <el-table-column prop="description" label="审核意见"></el-table-column>
  1756. <el-table-column prop="opinion" label="备注"></el-table-column>
  1757. </el-table>
  1758. </el-dialog>
  1759. <!-- 生成签章 -->
  1760. <el-dialog :visible.sync="signaturedialogVisible" title="生成签章" width="14%">
  1761. <div>
  1762. <img :src="resultMessageImg" alt style="width: 100%" />
  1763. <!-- <div id="signaturecode" ref="signaturecode"></div> -->
  1764. </div>
  1765. </el-dialog>
  1766. <!-- 保单上传 -->
  1767. <el-dialog :visible.sync="policyUploaddialogVisible" width="30%">
  1768. <div slot="title" class="dialog-title">
  1769. <span>保单上传</span>
  1770. </div>
  1771. <el-form :model="policyNumberForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
  1772. <el-form-item label="交强保单:" prop="jqPolicy">
  1773. <el-upload class="upload-demo" ref="jqPolicyupload" action="#" :limit="1" :auto-upload="false"
  1774. :on-remove="(file) => removePhoto(file, policyNumberForm.jqPolicyList, 'jqPolicyList')"
  1775. :file-list="policyNumberForm.jqPolicyList" :on-change="(file) => policydrivingupload(file, 'jqPolicy')">
  1776. <el-button size="small" type="primary">点击上传</el-button>
  1777. <el-button size="small" type="primary" @click.stop="policyNumberForm.jqPolicyList = []">清空</el-button>
  1778. </el-upload>
  1779. </el-form-item>
  1780. <el-form-item label="商业保单:" prop="syPolicy">
  1781. <el-upload class="upload-demo" ref="syPolicyupload" action="#" :limit="1" :auto-upload="false"
  1782. :on-remove="(file) => removePhoto(file, policyNumberForm.syPolicyList, 'syPolicyList')"
  1783. :file-list="policyNumberForm.syPolicyList" :on-change="(file) => policydrivingupload(file, 'syPolicy')">
  1784. <el-button size="small" type="primary">点击上传</el-button>
  1785. <el-button size="small" type="primary" @click.stop="policyNumberForm.syPolicyList = []">清空</el-button>
  1786. </el-upload>
  1787. </el-form-item>
  1788. <el-form-item label="非车保单:" prop="noPolicy">
  1789. <el-upload class="upload-demo" ref="noPolicyupload" action="#" :limit="1" :auto-upload="false"
  1790. :on-remove="(file) => removePhoto(file, policyNumberForm.noPolicyList, 'noPolicyList')"
  1791. :file-list="policyNumberForm.noPolicyList" :on-change="(file) => policydrivingupload(file, 'noPolicy')">
  1792. <el-button size="small" type="primary">点击上传</el-button>
  1793. <el-button size="small" type="primary" @click.stop="policyNumberForm.noPolicyList = []">清空</el-button>
  1794. </el-upload>
  1795. </el-form-item>
  1796. <el-form-item label="交强电子标志:" prop="jqSign">
  1797. <el-upload class="upload-demo" ref="jqSignupload" action="#" :limit="1" :auto-upload="false"
  1798. :on-remove="(file) => removePhoto(file, policyNumberForm.jqSignList, 'jqSignList')"
  1799. :file-list="policyNumberForm.jqSignList" :on-change="(file) => policydrivingupload(file, 'jqSign')">
  1800. <el-button size="small" type="primary">点击上传</el-button>
  1801. <el-button size="small" type="primary" @click.stop="policyNumberForm.jqSignList = []">清空</el-button>
  1802. </el-upload>
  1803. </el-form-item>
  1804. </el-form>
  1805. <span slot="footer" class="dialog-footer">
  1806. <el-button size="small" @click="policyUploaddialogVisible = false">取 消</el-button>
  1807. <el-button size="small" type="primary" @click="policyUploaddialogVisible = false">确 定</el-button>
  1808. </span>
  1809. </el-dialog>
  1810. <!-- 影像上传 -->
  1811. <el-dialog :visible.sync="imageUploaddialogVisible" width="1070px">
  1812. <div slot="title" class="dialog-title">
  1813. <span>影像上传</span>
  1814. </div>
  1815. <el-row>
  1816. <el-col :span="4">
  1817. <div class="tab-style">
  1818. <li class="liMenu" :class="idx == tabLiIndex ? 'tabLi-style' : ''" @click="tabLiScroll(item.scroll, idx)"
  1819. v-for="(item, idx) in tabLimenu" :key="idx">
  1820. {{ item.name }}
  1821. </li>
  1822. </div>
  1823. </el-col>
  1824. <el-col :span="20" style="height: 320px; overflow-y: auto">
  1825. <div class="flex f-wrap" id="vehicle">
  1826. <div class="aaa">
  1827. <span>1.行驶证主页</span>
  1828. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList1', 'imgList1', 'C01')
  1829. " :file-list="imgList1" ref="upload1" :class="{ styleB: imgList1.length == 1 }">
  1830. <img v-show="imgList1.length == 0" src="../../../../static/carfront.png"
  1831. style="width: 100%; height: 100%" />
  1832. <div slot="file" slot-scope="{ file }" v-if="imgList1.length > 0">
  1833. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  1834. <span class="el-upload-list__item-actions">
  1835. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList1', 'imgList1')">
  1836. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  1837. <i class="el-icon-delete"></i>
  1838. </span>
  1839. </span>
  1840. </div>
  1841. </el-upload>
  1842. </div>
  1843. <div class="aaa">
  1844. <span>2.行驶证副页</span>
  1845. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList1', 'imgList2', 'D01')
  1846. " :file-list="imgList2" ref="upload2" :class="{ styleB: imgList2.length === 1 }">
  1847. <img v-show="imgList2.length == 0" src="../../../../static/carback.png"
  1848. style="width: 100%; height: 100%" />
  1849. <div slot="file" slot-scope="{ file }">
  1850. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  1851. <span class="el-upload-list__item-actions">
  1852. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList1', 'imgList2')">
  1853. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  1854. <i class="el-icon-delete"></i>
  1855. </span>
  1856. </span>
  1857. </div>
  1858. </el-upload>
  1859. </div>
  1860. <div class="aaa">
  1861. <span>3.机动车辆登记证书</span>
  1862. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList1', 'imgList12', 'TAR05')
  1863. " :file-list="imgList12" ref="upload2" :class="{ styleB: imgList12.length === 1 }">
  1864. <img v-show="imgList12.length == 0" src="../../../../static/carback.png"
  1865. style="width: 100%; height: 100%" />
  1866. <div slot="file" slot-scope="{ file }">
  1867. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  1868. <span class="el-upload-list__item-actions">
  1869. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList1', 'imgList12')">
  1870. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  1871. <i class="el-icon-delete"></i>
  1872. </span>
  1873. </span>
  1874. </div>
  1875. </el-upload>
  1876. </div>
  1877. <div class="aaa">
  1878. <span>4.新车合格证</span>
  1879. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  1880. drivingupload(file, 'imageList5', 'imgList9', 'XC00')
  1881. " :file-list="imgList9" multiple ref="upload3" :class="{ styleB: imgList9.length === 1 }">
  1882. <img v-show="imgList9.length == 0" src="../../../../static/userfront.png"
  1883. style="width: 100%; height: 100%" />
  1884. <div slot="file" slot-scope="{ file }">
  1885. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  1886. <span class="el-upload-list__item-actions">
  1887. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList5', 'imgList9')">
  1888. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  1889. <i class="el-icon-delete"></i>
  1890. </span>
  1891. </span>
  1892. </div>
  1893. </el-upload>
  1894. </div>
  1895. <div class="aaa">
  1896. <span>5.购车发票</span>
  1897. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  1898. drivingupload(file, 'imageList5', 'imgList10', 'GC00')
  1899. " :file-list="imgList10" multiple ref="upload4" :class="{ styleB: imgList10.length === 1 }">
  1900. <img v-show="imgList10.length == 0" src="../../../../static/userfront.png"
  1901. style="width: 100%; height: 100%" />
  1902. <div slot="file" slot-scope="{ file }">
  1903. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  1904. <span class="el-upload-list__item-actions">
  1905. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList5', 'imgList10')">
  1906. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  1907. <i class="el-icon-delete"></i>
  1908. </span>
  1909. </span>
  1910. </div>
  1911. </el-upload>
  1912. </div>
  1913. </div>
  1914. <div class="flex f-wrap" id="owner">
  1915. <div class="aaa">
  1916. <span>1.车主身份证(正面)</span>
  1917. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList2', 'imgList3', 'C02')
  1918. " :file-list="imgList3" multiple ref="upload3" :class="{ styleB: imgList3.length === 1 }">
  1919. <img v-show="imgList3.length == 0" src="../../../../static/userfront.png"
  1920. style="width: 100%; height: 100%" />
  1921. <div slot="file" slot-scope="{ file }">
  1922. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  1923. <span class="el-upload-list__item-actions">
  1924. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList2', 'imgList3')">
  1925. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  1926. <i class="el-icon-delete"></i>
  1927. </span>
  1928. </span>
  1929. </div>
  1930. </el-upload>
  1931. </div>
  1932. <div class="aaa">
  1933. <span>2.车主身份证(反面)</span>
  1934. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList2', 'imgList4', 'D02')
  1935. " :file-list="imgList4" multiple ref="upload4" :class="{ styleB: imgList4.length === 1 }">
  1936. <img v-show="imgList4.length == 0" src="../../../../static/userback.png"
  1937. style="width: 100%; height: 100%" />
  1938. <div slot="file" slot-scope="{ file }">
  1939. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  1940. <span class="el-upload-list__item-actions">
  1941. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList2', 'imgList4')">
  1942. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  1943. <i class="el-icon-delete"></i>
  1944. </span>
  1945. </span>
  1946. </div>
  1947. </el-upload>
  1948. </div>
  1949. <div class="aaa">
  1950. <span>3.车主营业执照</span>
  1951. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag multiple :on-change="(file) => drivingupload(file, 'imageList2', 'imgList26', 'Y02')"
  1952. ref="upload4" :file-list="imgList26" :class="{ styleB: imgList26.length === 1 }">
  1953. <img v-show="imgList26.length == 0" src="../../../../static/userfront.png" style="width: 100%; height: 100%" :class="{ styleB: imgList26.length === 1 }" />
  1954. <div slot="file" slot-scope="{ file }">
  1955. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  1956. <span class="el-upload-list__item-actions">
  1957. <span class="el-upload-list__item-delete"
  1958. @click="handleRemove1(file, 'imageList2', 'imgList26')">
  1959. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  1960. <i class="el-icon-delete"></i>
  1961. </span>
  1962. </span>
  1963. </div>
  1964. </el-upload>
  1965. </div>
  1966. </div>
  1967. <div class="flex f-wrap" id="applicant">
  1968. <div class="aaa">
  1969. <span>1.投保人身份证(正面)</span>
  1970. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList3', 'imgList5', 'C03')
  1971. " :file-list="imgList5" multiple ref="upload5" :class="{ styleB: imgList5.length === 1 }">
  1972. <img v-show="imgList5.length == 0" src="../../../../static/userfront.png"
  1973. style="width: 100%; height: 100%" />
  1974. <div slot="file" slot-scope="{ file }">
  1975. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  1976. <span class="el-upload-list__item-actions">
  1977. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList3', 'imgList5')">
  1978. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  1979. <i class="el-icon-delete"></i>
  1980. </span>
  1981. </span>
  1982. </div>
  1983. </el-upload>
  1984. </div>
  1985. <div class="aaa">
  1986. <span>2.投保人身份证(反面)</span>
  1987. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList3', 'imgList6', 'D03')
  1988. " :file-list="imgList6" multiple ref="upload6" :class="{ styleB: imgList6.length === 1 }">
  1989. <img v-show="imgList6.length == 0" src="../../../../static/userback.png"
  1990. style="width: 100%; height: 100%" />
  1991. <div slot="file" slot-scope="{ file }">
  1992. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  1993. <span class="el-upload-list__item-actions">
  1994. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList3', 'imgList6')">
  1995. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  1996. <i class="el-icon-delete"></i>
  1997. </span>
  1998. </span>
  1999. </div>
  2000. </el-upload>
  2001. </div>
  2002. <div class="aaa">
  2003. <span>3.投保人营业执照</span>
  2004. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList3', 'imgList27', 'Y03')
  2005. " :file-list="imgList27" multiple ref="upload6" :class="{ styleB: imgList27.length === 1 }" >
  2006. <img v-show="imgList27.length == 0" src="../../../../static/userfront.png" style="width: 100%; height: 100%" />
  2007. <div slot="file" slot-scope="{ file }">
  2008. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2009. <span class="el-upload-list__item-actions">
  2010. <span class="el-upload-list__item-delete"
  2011. @click="handleRemove1(file, 'imageList3', 'imgList27')">
  2012. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2013. <i class="el-icon-delete"></i>
  2014. </span>
  2015. </span>
  2016. </div>
  2017. </el-upload>
  2018. </div>
  2019. </div>
  2020. <div class="flex f-wrap">
  2021. <div class="aaa">
  2022. <span id="insured">1.被保人身份证(正面)</span>
  2023. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList4', 'imgList7', 'C04')
  2024. " :file-list="imgList7" multiple ref="upload7" :class="{ styleB: imgList7.length === 1 }">
  2025. <img v-show="imgList7.length == 0" src="../../../../static/userfront.png"
  2026. style="width: 100%; height: 100%" />
  2027. <div slot="file" slot-scope="{ file }">
  2028. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2029. <span class="el-upload-list__item-actions">
  2030. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList4', 'imgList7')">
  2031. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2032. <i class="el-icon-delete"></i>
  2033. </span>
  2034. </span>
  2035. </div>
  2036. </el-upload>
  2037. </div>
  2038. <div class="aaa">
  2039. <span>2.被保人身份证(反面)</span>
  2040. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList4', 'imgList8', 'D04')
  2041. " :file-list="imgList8" multiple ref="upload8" :class="{ styleB: imgList8.length === 1 }">
  2042. <img v-show="imgList8.length == 0" src="../../../../static/userback.png"
  2043. style="width: 100%; height: 100%" />
  2044. <div slot="file" slot-scope="{ file }">
  2045. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2046. <span class="el-upload-list__item-actions">
  2047. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList4', 'imgList8')">
  2048. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2049. <i class="el-icon-delete"></i>
  2050. </span>
  2051. </span>
  2052. </div>
  2053. </el-upload>
  2054. </div>
  2055. <div class="aaa">
  2056. <span>3.被保人营业执照</span>
  2057. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) => drivingupload(file, 'imageList4', 'imgList28', 'Y04')
  2058. " :file-list="imgList28" multiple ref="upload8" :class="{ styleB: imgList28.length === 1 }"
  2059. >
  2060. <img v-show="imgList28.length == 0" src="../../../../static/userfront.png" style="width: 100%; height: 100%" />
  2061. <div slot="file" slot-scope="{ file }">
  2062. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2063. <span class="el-upload-list__item-actions">
  2064. <span class="el-upload-list__item-delete"
  2065. @click="handleRemove1(file, 'imageList4', 'imgList28')">
  2066. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2067. <i class="el-icon-delete"></i>
  2068. </span>
  2069. </span>
  2070. </div>
  2071. </el-upload>
  2072. </div>
  2073. </div>
  2074. <div class="flex f-wrap" id="relationship">
  2075. <div class="aaa">
  2076. <span>1.关系证明</span>
  2077. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  2078. drivingupload(file, 'imageList5', 'imgList11', 'GX00')
  2079. " :file-list="imgList11" multiple ref="upload3" :class="{ styleB: imgList11.length === 1 }">
  2080. <img v-show="imgList11.length == 0" src="../../../../static/userfront.png"
  2081. style="width: 100%; height: 100%" />
  2082. <div slot="file" slot-scope="{ file }">
  2083. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2084. <span class="el-upload-list__item-actions">
  2085. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList5', 'imgList11')">
  2086. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2087. <i class="el-icon-delete"></i>
  2088. </span>
  2089. </span>
  2090. </div>
  2091. </el-upload>
  2092. </div>
  2093. </div>
  2094. <div class="flex f-wrap" id="yanchezhao">
  2095. <div class="aaa">
  2096. <span>1.验车照(车架)</span>
  2097. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  2098. drivingupload(file, 'imageList6', 'imgList13', 'C0500')
  2099. " :file-list="imgList13" multiple ref="upload3" :class="{ styleB: imgList13.length === 1 }">
  2100. <img v-show="imgList13.length == 0" src="../../../../static/userfront.png"
  2101. style="width: 100%; height: 100%" />
  2102. <div slot="file" slot-scope="{ file }">
  2103. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2104. <span class="el-upload-list__item-actions">
  2105. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList13')">
  2106. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2107. <i class="el-icon-delete"></i>
  2108. </span>
  2109. </span>
  2110. </div>
  2111. </el-upload>
  2112. </div>
  2113. <div class="aaa">
  2114. <span>2.验车照(后左)</span>
  2115. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  2116. drivingupload(file, 'imageList6', 'imgList14', 'C0501')
  2117. " :file-list="imgList14" multiple ref="upload3" :class="{ styleB: imgList14.length === 1 }">
  2118. <img v-show="imgList14.length == 0" src="../../../../static/userfront.png"
  2119. style="width: 100%; height: 100%" />
  2120. <div slot="file" slot-scope="{ file }">
  2121. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2122. <span class="el-upload-list__item-actions">
  2123. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList14')">
  2124. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2125. <i class="el-icon-delete"></i>
  2126. </span>
  2127. </span>
  2128. </div>
  2129. </el-upload>
  2130. </div>
  2131. <div class="aaa">
  2132. <span>3.验车照(后右)</span>
  2133. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  2134. drivingupload(file, 'imageList6', 'imgList15', 'C0502')
  2135. " :file-list="imgList15" multiple ref="upload3" :class="{ styleB: imgList15.length === 1 }">
  2136. <img v-show="imgList15.length == 0" src="../../../../static/userfront.png"
  2137. style="width: 100%; height: 100%" />
  2138. <div slot="file" slot-scope="{ file }">
  2139. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2140. <span class="el-upload-list__item-actions">
  2141. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList15')">
  2142. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2143. <i class="el-icon-delete"></i>
  2144. </span>
  2145. </span>
  2146. </div>
  2147. </el-upload>
  2148. </div>
  2149. <div class="aaa">
  2150. <span>4.验车照(前右)</span>
  2151. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  2152. drivingupload(file, 'imageList6', 'imgList16', 'C0503')
  2153. " :file-list="imgList16" multiple ref="upload3" :class="{ styleB: imgList16.length === 1 }">
  2154. <img v-show="imgList16.length == 0" src="../../../../static/userfront.png"
  2155. style="width: 100%; height: 100%" />
  2156. <div slot="file" slot-scope="{ file }">
  2157. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2158. <span class="el-upload-list__item-actions">
  2159. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList16')">
  2160. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2161. <i class="el-icon-delete"></i>
  2162. </span>
  2163. </span>
  2164. </div>
  2165. </el-upload>
  2166. </div>
  2167. <div class="aaa">
  2168. <span>5.验车照(前左)</span>
  2169. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  2170. drivingupload(file, 'imageList6', 'imgList17', 'C0504')
  2171. " :file-list="imgList17" multiple ref="upload3" :class="{ styleB: imgList17.length === 1 }">
  2172. <img v-show="imgList17.length == 0" src="../../../../static/userfront.png"
  2173. style="width: 100%; height: 100%" />
  2174. <div slot="file" slot-scope="{ file }">
  2175. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2176. <span class="el-upload-list__item-actions">
  2177. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList17')">
  2178. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2179. <i class="el-icon-delete"></i>
  2180. </span>
  2181. </span>
  2182. </div>
  2183. </el-upload>
  2184. </div>
  2185. <div class="aaa">
  2186. <span>6.验车照(正前)</span>
  2187. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  2188. drivingupload(file, 'imageList6', 'imgList18', 'C0506')
  2189. " :file-list="imgList18" multiple ref="upload3" :class="{ styleB: imgList18.length === 1 }">
  2190. <img v-show="imgList18.length == 0" src="../../../../static/userfront.png"
  2191. style="width: 100%; height: 100%" />
  2192. <div slot="file" slot-scope="{ file }">
  2193. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2194. <span class="el-upload-list__item-actions">
  2195. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList18')">
  2196. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2197. <i class="el-icon-delete"></i>
  2198. </span>
  2199. </span>
  2200. </div>
  2201. </el-upload>
  2202. </div>
  2203. <div class="aaa">
  2204. <span>7.验车照(正后)</span>
  2205. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  2206. drivingupload(file, 'imageList6', 'imgList19', 'C0507')
  2207. " :file-list="imgList19" multiple ref="upload3" :class="{ styleB: imgList19.length === 1 }">
  2208. <img v-show="imgList19.length == 0" src="../../../../static/userfront.png"
  2209. style="width: 100%; height: 100%" />
  2210. <div slot="file" slot-scope="{ file }">
  2211. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2212. <span class="el-upload-list__item-actions">
  2213. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList19')">
  2214. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2215. <i class="el-icon-delete"></i>
  2216. </span>
  2217. </span>
  2218. </div>
  2219. </el-upload>
  2220. </div>
  2221. <div class="aaa">
  2222. <span>8.验车照(人车合影)</span>
  2223. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  2224. drivingupload(file, 'imageList6', 'imgList20', 'C0505')
  2225. " :file-list="imgList20" multiple ref="upload3" :class="{ styleB: imgList20.length === 1 }">
  2226. <img v-show="imgList20.length == 0" src="../../../../static/userfront.png"
  2227. style="width: 100%; height: 100%" />
  2228. <div slot="file" slot-scope="{ file }">
  2229. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2230. <span class="el-upload-list__item-actions">
  2231. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList20')">
  2232. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2233. <i class="el-icon-delete"></i>
  2234. </span>
  2235. </span>
  2236. </div>
  2237. </el-upload>
  2238. </div>
  2239. <div class="aaa">
  2240. <span>9.验车照(地标合影)</span>
  2241. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  2242. drivingupload(file, 'imageList6', 'imgList21', 'C0508')
  2243. " :file-list="imgList21" multiple ref="upload3" :class="{ styleB: imgList21.length === 1 }">
  2244. <img v-show="imgList21.length == 0" src="../../../../static/userfront.png"
  2245. style="width: 100%; height: 100%" />
  2246. <div slot="file" slot-scope="{ file }">
  2247. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2248. <span class="el-upload-list__item-actions">
  2249. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList21')">
  2250. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2251. <i class="el-icon-delete"></i>
  2252. </span>
  2253. </span>
  2254. </div>
  2255. </el-upload>
  2256. </div>
  2257. <div class="aaa">
  2258. <span>10.验车照(工作台)</span>
  2259. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  2260. drivingupload(file, 'imageList6', 'imgList22', 'C0509')
  2261. " :file-list="imgList22" multiple ref="upload3" :class="{ styleB: imgList22.length === 1 }">
  2262. <img v-show="imgList22.length == 0" src="../../../../static/userfront.png"
  2263. style="width: 100%; height: 100%" />
  2264. <div slot="file" slot-scope="{ file }">
  2265. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2266. <span class="el-upload-list__item-actions">
  2267. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList22')">
  2268. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2269. <i class="el-icon-delete"></i>
  2270. </span>
  2271. </span>
  2272. </div>
  2273. </el-upload>
  2274. </div>
  2275. <div class="aaa">
  2276. <span>11.验车照(天窗)</span>
  2277. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  2278. drivingupload(file, 'imageList6', 'imgList23', 'C0510')
  2279. " :file-list="imgList23" multiple ref="upload3" :class="{ styleB: imgList23.length === 1 }">
  2280. <img v-show="imgList23.length == 0" src="../../../../static/userfront.png"
  2281. style="width: 100%; height: 100%" />
  2282. <div slot="file" slot-scope="{ file }">
  2283. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2284. <span class="el-upload-list__item-actions">
  2285. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList23')">
  2286. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2287. <i class="el-icon-delete"></i>
  2288. </span>
  2289. </span>
  2290. </div>
  2291. </el-upload>
  2292. </div>
  2293. </div>
  2294. <div class="flex f-wrap" id="snbaodan">
  2295. <div class="aaa">
  2296. <span>1.上年商业险保单</span>
  2297. <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1" drag :on-change="(file) =>
  2298. drivingupload(file, 'imageList6', 'imgList24', 'LAST_INSURANCE_POLICY')
  2299. " :file-list="imgList24" multiple ref="upload3" :class="{ styleB: imgList24.length === 1 }">
  2300. <img v-show="imgList24.length == 0" src="../../../../static/userfront.png"
  2301. style="width: 100%; height: 100%" />
  2302. <div slot="file" slot-scope="{ file }">
  2303. <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
  2304. <span class="el-upload-list__item-actions">
  2305. <span class="el-upload-list__item-delete" @click="handleRemove1(file, 'imageList6', 'imgList24')">
  2306. <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(file.url)"></i>
  2307. <i class="el-icon-delete"></i>
  2308. </span>
  2309. </span>
  2310. </div>
  2311. </el-upload>
  2312. </div>
  2313. </div>
  2314. </el-col>
  2315. </el-row>
  2316. <span slot="footer" class="dialog-footer">
  2317. <el-button size="small" @click="imageUploaddialogVisible = false">取 消</el-button>
  2318. <el-button size="small" type="primary" @click="uploadinformation">上传资料</el-button>
  2319. </span>
  2320. </el-dialog>
  2321. <floatingBar />
  2322. </div>
  2323. </template>
  2324. <script>
  2325. import {Decimal} from "decimal.js";
  2326. let _self;
  2327. import QRCode from "qrcodejs2";
  2328. import Cookies from "js-cookie";
  2329. import CommonUtil from "@/utils/comutil.js";
  2330. import {
  2331. getAgeByIdCard,
  2332. searchkey,
  2333. addressCode,
  2334. getGenderByIdCard,
  2335. } from "@/utils/validate.js";
  2336. import citydata from "@/assets/js/citydata.js";
  2337. import yongchengData from '../../../assets/js/yongchengData';
  2338. import { regionData, codeToText } from "element-china-area-data";
  2339. import { base64ToPath } from "@/common/image-tools-base64.js";
  2340. import quotationDialog from "@/views/Core/components/quotationDialog.vue";
  2341. import quotationDialogPro from "@/views/Core/components/quotationDialogPro.vue";
  2342. import detailsDialog from "@/views/Core/components/detailsDialog.vue";
  2343. import imageDialog from "@/views/Core/components/imageDialog.vue";
  2344. import floatingBar from '@/components/customerService/floatingBar.vue';//表单组件
  2345. import { mapState } from "vuex";
  2346. export default {
  2347. inject: ["reload"],
  2348. name: "qrCode",
  2349. data() {
  2350. var checkpurchasePrice = (rule, value, callback) => {
  2351. if (!value) {
  2352. callback(new Error("新车购置价不能为空"));
  2353. } else if (value == 0) {
  2354. callback(new Error("新车购置价不能为零"));
  2355. } else {
  2356. callback();
  2357. }
  2358. };
  2359. var checkframeNo = (rule, value, callback) => {
  2360. if (value.length < 17) {
  2361. callback(new Error("车架号不足17位"));
  2362. } else if (
  2363. value.indexOf("I") != "-1" ||
  2364. value.indexOf("O") != "-1" ||
  2365. value.indexOf("Q") != "-1"
  2366. ) {
  2367. callback(new Error("车架号不能包含(I O Q)三个字母"));
  2368. } else {
  2369. callback();
  2370. }
  2371. };
  2372. var carPhoneValid = (rule, value, callback) => {
  2373. const plateNumber =
  2374. /^([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领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})$/;
  2375. if (!value) {
  2376. callback(new Error("请输入车牌号"));
  2377. } else if (plateNumber.test(value)) {
  2378. callback();
  2379. } else {
  2380. callback(new Error("请输入正确的车牌号"));
  2381. }
  2382. };
  2383. return {
  2384. // add by hxl 2024-12-16 ---begin
  2385. orderExternalStatus: 0,
  2386. companyName:"",
  2387. xxNowCostsId:"",
  2388. costFlag: "",
  2389. isInquiryNow:"",
  2390. isInquirySelectFlag:false,
  2391. isInquirySelect:[
  2392. {
  2393. id:"1",
  2394. value:"是"
  2395. },
  2396. {
  2397. id:"2",
  2398. value:"否"
  2399. },
  2400. ],
  2401. ztreeNodes: [],
  2402. // add by hxl 2024-12-16 -------end
  2403. inquiryNowList: [], // 现询列表
  2404. isInquiryNowDisable: false,
  2405. taikangtemplateSelection: [], // 泰康
  2406. taikangInsuranceDataTable: [],
  2407. taikangaccidentDataList: [],
  2408. accidentPremiumTk: "",
  2409. accidentPremiumPA: '',
  2410. accidentFormTk: {
  2411. quantity: "1",
  2412. sumPremium: 0,
  2413. },
  2414. pinganDataDetail: [],
  2415. pinganDataDetailVisible: false,
  2416. accidentFormPA: [{
  2417. quantity: "1",
  2418. premium: 0,
  2419. pingantemplateSelection: '',
  2420. pinganInsuranceDataTable: [],
  2421. pinganInsurancetype: '',
  2422. },
  2423. {
  2424. quantity: "1",
  2425. premium: 0,
  2426. pingantemplateSelection: '',
  2427. pinganInsuranceDataTable: [],
  2428. pinganInsurancetype: '',
  2429. },
  2430. {
  2431. quantity: "1",
  2432. premium: 0,
  2433. pingantemplateSelection: '',
  2434. pinganInsuranceDataTable: [],
  2435. pinganInsurancetype: '',
  2436. }],
  2437. taikangaccidentalDrivingVo: {},
  2438. pinganaccidentalDrivingVo: {
  2439. 0: {},
  2440. 1: {},
  2441. 2: [],
  2442. },
  2443. nowCostsId: undefined, // 现询
  2444. policyNumberForm: {
  2445. jqpolicyno: "",
  2446. sypolicyno: "",
  2447. jypolicyno: "",
  2448. jqpremium: "",
  2449. sypremium: "",
  2450. jypremium: "",
  2451. taxamount: "",
  2452. commissionFeevalue: "",
  2453. otherFeevalue: "",
  2454. jqSuperviseCostsProportion: "",
  2455. sySuperviseCostsProportion: "",
  2456. noSuperviseCostsProportion: "",
  2457. jqOtherCostsProportion: "",
  2458. syOtherCostsProportion: "",
  2459. noOtherCostsProportion: "",
  2460. jqReceivableProportion: "",
  2461. syReceivableProportion: "",
  2462. noReceivableProportion: "",
  2463. jqPolicyList: [],
  2464. syPolicyList: [],
  2465. jqSignList: [],
  2466. noPolicyList: [],
  2467. noCostsProportion: '',
  2468. jqCostsProportion: '',
  2469. syCostsProportion: '',
  2470. },
  2471. watermarkedImage: "",
  2472. redictInfoMsg: [],
  2473. redictInfodialogVisible: false,
  2474. qrcodeWidth: "180",
  2475. qrcodeHeight: "180",
  2476. activeName: "1",
  2477. isTaxSourceModel: "",
  2478. tabLiIndex: 0,
  2479. tabLimenu: [
  2480. {
  2481. name: "车辆信息",
  2482. scroll: "vehicle",
  2483. },
  2484. {
  2485. name: "车主信息",
  2486. scroll: "owner",
  2487. },
  2488. {
  2489. name: "投保人信息",
  2490. scroll: "applicant",
  2491. },
  2492. {
  2493. name: "被保人信息",
  2494. scroll: "insured",
  2495. },
  2496. {
  2497. name: "关系证明",
  2498. scroll: "relationship",
  2499. },
  2500. {
  2501. name: "验车照",
  2502. scroll: "yanchezhao",
  2503. },
  2504. {
  2505. name: "上年商业险保单",
  2506. scroll: "snbaodan",
  2507. },
  2508. ],
  2509. packageValue: "",
  2510. packageOptions: [],
  2511. zhongmeitemplateSelection: "", //中煤驾意险产品选中值
  2512. zhongmeiInsuranceData: [], //中煤驾意险产品列表数据
  2513. zhongmeiInsuranceDataTable: [], //中煤驾意险产品明细方案数据
  2514. zhongmeiaccidentalDrivingVo: {}, //中煤驾意险最终选中字段
  2515. pinganInsuranceData: [], //平安驾意险产品列表数据
  2516. currentCell: null,
  2517. feeDetailInfo: [], //费用明细信息
  2518. immediatelyValue: false,
  2519. isRetractZJ: false,
  2520. isRetractHB: false,
  2521. isRetractZM: false,
  2522. isRetractASTP: false,
  2523. isRetractZA: false,
  2524. isRetractYC: false,
  2525. isRetractRS: false,
  2526. anshengInsurancetype: "",
  2527. iscCrownerShow: false,
  2528. isApplicantShow: false,
  2529. isInsuredShow: false,
  2530. formInline: {},
  2531. anshengtemplateSelection: "", //安盛
  2532. anshengInsuranceData: [], //安盛驾意险
  2533. anshengInsuranceDataTable: [], //安盛驾意险
  2534. anshengaccidentalDrivingVo: {}, //安盛驾意险
  2535. hengbangtemplateSelection: "", //恒邦
  2536. hengbangInsuranceData: [], //恒邦驾意险
  2537. hengbangInsuranceDataTable: [],
  2538. hengbangaccidentalDrivingVo: {}, //恒邦驾意险
  2539. chengtaitemplateSelection: "", //诚泰
  2540. chengtaiInsuranceData: [], //诚泰驾意险
  2541. chengtaiInsuranceDataTable: [],
  2542. chengtaiaccidentalDrivingVo: {}, //诚泰驾意险
  2543. insuranceHN: "", //华农
  2544. huanongInsuranceData: [], //华农驾意险
  2545. huanongInsuranceDataTable: [],
  2546. huanongaccidentalDrivingVo: {}, //华农驾意险
  2547. renshouaccidentalDrivingVo: {}, //人寿意外险
  2548. renshouInsuranceData: [], //-人寿意外险list
  2549. ziJinInsuranceData: [], //-紫金意外险list
  2550. zhonganInsuranceData: [], //众安驾意险
  2551. zhonganaccidentalDrivingVo: {}, //众安驾意险
  2552. zijinInsuranceDataTable: [],
  2553. zijintemplateSelection: "",
  2554. accidentalDrivingVo: [], //-紫金意外险传参
  2555. zijinengageListData: [], //紫金特约
  2556. zijinengageList: [], //紫金特约
  2557. // ------------紫金意外险
  2558. renshoutemplateSelection: "", //人寿
  2559. renshouInsuranceDataTable: [],
  2560. zhongantemplateSelection: "", //众安
  2561. zhonganInsuranceDataTable: [],
  2562. taipingtemplateSelection: "", //太平
  2563. taipingInsuranceData: [], //太平驾意险
  2564. TPDrivingChangeInsuranceData: [],
  2565. taipingaccidentalDrivingVo: {}, //太平驾意险
  2566. licenseplate: true,
  2567. calculateLoading: false, //保费计算按钮 节流
  2568. preserveQuoteLoading: false, //保存按钮
  2569. emporaryLoading: false,
  2570. accidentForm: {
  2571. quantity: "1",
  2572. sumPremium: 0,
  2573. }, //永诚意外险内容
  2574. accidentFormHN: {
  2575. allQuantity: "1",
  2576. quantity: "1",
  2577. }, //华农意外险内容
  2578. yongchengaccidentDataList: [], //永诚意外险
  2579. yongchengtemplateSelection: "",
  2580. guoRenaccidentDataList: [], //国任意外险
  2581. guoRenInsuranceDataTable: [],
  2582. guoRenaccidentDataListChild: [],
  2583. guoRenaccidentalDrivingVo: {}, //国任驾意险
  2584. dajiatemplateSelection: "",
  2585. dajiaaccidentDataListChild: [],
  2586. dajiaaccidentForm: {},
  2587. dajiaInsuranceData: [], //大家意外险
  2588. dajiaInsuranceDataTable: [],
  2589. dajiaaccidentalDrivingVo: {},
  2590. yongchengInsuranceDataTable: [],
  2591. guoRenaccidentLoading: false,
  2592. contributingLoading: false,
  2593. guoRenaccidentPremium: "",
  2594. guoRenaccidentForm: {
  2595. quantity: "1",
  2596. sumPremium: 0,
  2597. }, //国任意外险内容
  2598. accidentFormZM: {
  2599. quantity: "1",
  2600. sumPremium: 0,
  2601. }, //中煤意外险内容
  2602. boHaiaccidentDataList: [], //渤海意外险
  2603. boHaigtemplateSelection: '',
  2604. boHaiaccidentForm: {
  2605. copies: "1",
  2606. policyNum: 0,
  2607. },
  2608. bohaiInsuranceDataTable: [],
  2609. accidentPremium: "",
  2610. accidentPremiumZM: "",
  2611. contributingState: false, //是否为国任特约
  2612. pickerOptions: {
  2613. disabledDate(time) {
  2614. //若选择的日期小于当前日期(包含今天)
  2615. return time.getTime() > Date.now();
  2616. //若选择的日期大于当前日期(不包含今天): time.getTime() < Date.now()
  2617. //若选择的日期小于当前日期(不包含今天): time.getTime() > Date.now() - 8.64e7
  2618. //若选择的日期小于等于当前日期(包含今天): time.getTime() > Date.now()
  2619. },
  2620. },
  2621. attributionform: {
  2622. //续保查询数据
  2623. configure: [],
  2624. companyId: "",
  2625. },
  2626. continuousAction: [], //续保配置项
  2627. //永诚转保确认码
  2628. cqryCdeJq: "",
  2629. cqryCdeSy: "",
  2630. renewalCodeJq: "", //交强确认码
  2631. renewalCodeSy: "", //商业确认码
  2632. renewalCodeJqImg: "", //交强图片
  2633. renewalCodeSyImg: "", //商业图片
  2634. //-----------------
  2635. showViewer: false,
  2636. transferDateShow: false, //转移登记日期
  2637. yonganchecked: false, //永安驾意险
  2638. renbaochecked: false, //人保驾意险
  2639. zhongmeichecked: false, //中煤驾意险
  2640. hengbangchecked: false, //恒邦驾意险
  2641. yongchengchecked: false, //永诚驾意险
  2642. yonganDrivinglist: [],
  2643. renbaoDrivinglist: [],
  2644. zhongmeiDrivinglist: [],
  2645. hengbangDrivinglist: [],
  2646. yongchengDrivinglist: [],
  2647. tbczcarShow: true, //投保人同车主
  2648. bbczcarShow: false, //被保人同车主
  2649. bbtbcarShow: true, //被保人同投保人
  2650. imageUploadShow: true, //上传影像显示
  2651. ProViewImg: "", //预览图片
  2652. carfrontImg: "", //行驶证正面
  2653. carbackImg: "", //行驶证背面
  2654. userfrontImg: "", //身份证正面
  2655. userbackImg: "", //身份证背面
  2656. businessImg: "",
  2657. CarFrontFile: "", //车正面文件流
  2658. CarBackFile: "", //车背面文件流
  2659. C02File: "",
  2660. D02File: "",
  2661. C03File: "",
  2662. D03File: "",
  2663. C04File: "",
  2664. D04File: "",
  2665. userIndex: 1, //区分三种人员
  2666. TabName: "car", //默认选项卡
  2667. value1: "",
  2668. chexingdialogVisible: false, //车型选择 显示/隐藏
  2669. sbdmdialogVisible: false, //车型车辆识别代码选择 显示/隐藏
  2670. codedialogVisible: false, //二维码 显示/隐藏
  2671. codedialogVisiblePro: false,
  2672. uploadcardialogVisible: false, //行驶证识别 显示/隐藏
  2673. uploaduserdialogVisible: false, //身份证识别 显示/隐藏
  2674. imageUploaddialogVisible: false, //影像上传 显示/隐藏
  2675. policyUploaddialogVisible: false, //保单上传
  2676. underwritingdialogVisible: false, //核保信息 显示/隐藏
  2677. renewalCodedialogVisible: false, //转保确认码输入
  2678. hbsubmitdialogVisible: false, //核保弹框
  2679. signaturedialogVisible: false, //生成签章
  2680. signaturecode: null,
  2681. Carinsurance: {
  2682. jqinsurance: "1", //交强险
  2683. syinsurance: "1", //商业险
  2684. },
  2685. jqchecked: true,
  2686. sychecked: false,
  2687. jqstartDate: "", //交强时间
  2688. jqendDate: "", //交强时间
  2689. systartDate: "", //商业时间
  2690. syendDate: "", //商业时间
  2691. loading: false, //加载事件
  2692. reslist: [], //车型列表
  2693. userId: "", //出单工号
  2694. carInfo: {
  2695. powerScale: "", ///功率
  2696. licenseNo: "", //车牌号
  2697. brandName: "", //车辆品牌型号
  2698. vinNo: "", //车架号
  2699. engineNo: "", //发动机号
  2700. modelCode: "", //车型编码
  2701. seatCount: null, //核定载客量 核定载人数
  2702. purchasePrice: null, //新车购置价最低,行业实际价值,协商价值
  2703. carBrand: "", //车型品牌
  2704. ciCarName: "", //行业车型名称
  2705. ciModelCode: "", //行业车型编码
  2706. completeKerbMass: "", //整备质量
  2707. exhaustScale: "", //排量
  2708. factory: "", //工厂名称
  2709. factoryid: "", //工厂编码
  2710. frameNo: "", //车架号
  2711. licenseTypeCode: "02", //号牌种类
  2712. vehicleclass: "", //车辆类型
  2713. familyName: "", //车型
  2714. modelcname: "", //车型名称
  2715. powertypecode: "", //燃料类型编码
  2716. vehicleweight: "", //总质量
  2717. limitLoad: "", //核定载质量
  2718. caryear: null, //年款
  2719. cimodelclass: "A0", //车辆种类
  2720. energyType: "0", //能源类型
  2721. enginedesc: "", //排量
  2722. registerDate: "", //注册日期
  2723. issueDate: "", //发证日期
  2724. transferFlag: 0, //过户标志
  2725. transferFlagBi: false, //商业险是否过户
  2726. transferDate: "", //过户日期
  2727. loanStatus: 0, //贷款标志
  2728. firstBeneMan: "", //第一受益人
  2729. noLicenseFlag: false, //是否新车
  2730. cartype: "", //客车A0 货车H0
  2731. carnature: "02", //使用性质
  2732. vehicleUse: "05",
  2733. property: "1", //所属性质 1个人 2企业 3个人
  2734. },
  2735. carform: {
  2736. carOwner: "", //车主
  2737. licenseNo: "", //车牌号
  2738. modelcname: "", //车辆品牌型号
  2739. frameNo: "", //车架号
  2740. engineNo: "", //发动机号
  2741. registerDate: "", //注册日期
  2742. issueDate: "", //发证日期
  2743. grossMass: "", //总质量
  2744. unladenMass: "", //整备质量
  2745. limitLoad: "", //核定载质量
  2746. approvedPassengersCapacity: "", //核定载客数
  2747. },
  2748. ownerInfoform: {
  2749. name: "",
  2750. identifyType: "",
  2751. identifyNumber: "",
  2752. age: "", //年龄
  2753. gender: "", //性别
  2754. addr: "",
  2755. email: "",
  2756. mobile: "",
  2757. identifyValidDate: "", //有效期起期
  2758. identifyValidEndDate: "", //有效期止期
  2759. // province: "",//省
  2760. // city: "",//市
  2761. // county: "",//县
  2762. },
  2763. riskList: [], //险种大类信息
  2764. kindList: [], //商业险险别
  2765. ownerInfo: {
  2766. //车主
  2767. name: "", //姓名
  2768. identifyType: "01", //身份证类型
  2769. identifyNumber: "", //身份证号
  2770. age: "", //年龄
  2771. gender: "", //性别
  2772. addr: "", //地址
  2773. email: "", //邮箱
  2774. mobile: "", //电话
  2775. organizationCode:"",
  2776. identifyValidDate: "", //有效期起期
  2777. identifyValidEndDate: "", //有效期止期
  2778. property:'1',
  2779. // province: "",//省
  2780. // city: "",//市
  2781. // county: "",//县
  2782. provinceData: [], //省市区
  2783. },
  2784. policyHolderInfo: {
  2785. //投保人
  2786. name: "", //姓名
  2787. identifyType: "01", //身份证类型
  2788. identifyNumber: "", //身份证号
  2789. age: "", //年龄
  2790. gender: "", //性别
  2791. addr: "", //地址
  2792. email: "", //邮箱
  2793. mobile: "", //电话
  2794. property:'1',
  2795. identifyValidDate: "", //有效期起期
  2796. identifyValidEndDate: "", //有效期止期
  2797. organizationCode:"",
  2798. // province: "",//省
  2799. // city: "",//市
  2800. // county: "",//县
  2801. provinceData: [], //省市区
  2802. },
  2803. insuredPersonInfo: {
  2804. //被保人
  2805. name: "", //姓名
  2806. identifyType: "01", //身份证类型
  2807. identifyNumber: "", //身份证号
  2808. age: "", //年龄
  2809. gender: "", //性别
  2810. addr: "", //地址
  2811. email: "", //邮箱
  2812. mobile: "", //电话
  2813. property:'1',
  2814. identifyValidDate: "", //有效期起期
  2815. identifyValidEndDate: "", //有效期止期
  2816. organizationCode:"",
  2817. provinceData: [], //省市区
  2818. // province: "",//省
  2819. // city: "",//市
  2820. // county: "",//县
  2821. },
  2822. //车船税form
  2823. vehicleAndVesselTaxForm: {
  2824. taxRelifFlag: "1", //类型
  2825. identifyNumber: "", //纳税人识别号
  2826. taxpayerIdentifier: "01", //纳税人证件类型
  2827. taxpayerName: "", //纳税人名称
  2828. extendChar2: "", //减免税凭证号
  2829. paidFreeCertificate: "", //完税凭证号
  2830. relifReason: "", //减免税原因
  2831. taxComCode: "", //税务机关代码
  2832. taxComName: "", ///税务机关名称
  2833. taxDocumentDate: "", //完税日期
  2834. taxPaidAreaCode: "", //完税凭证地区代码
  2835. taxRelief: "", //减税比例
  2836. },
  2837. //车辆用途列表
  2838. vehicleList: [],
  2839. //能源种类列表
  2840. rules: {
  2841. extendChar2: [
  2842. { required: true, message: "请输入减免税凭证号", trigger: "blur" },
  2843. ],
  2844. paidFreeCertificate: [
  2845. { required: true, message: "请输入完税凭证号", trigger: "blur" },
  2846. ],
  2847. relifReason: [
  2848. { required: true, message: "请输入减免税原因", trigger: "blur" },
  2849. ],
  2850. taxComCode: [
  2851. { required: true, message: "请输入税务机关代码", trigger: "blur" },
  2852. ],
  2853. taxComName: [
  2854. { required: true, message: "请输入税务机关名称", trigger: "blur" },
  2855. ],
  2856. taxDocumentDate: [
  2857. { required: true, message: "请输入完税日期", trigger: "blur" },
  2858. ],
  2859. taxPaidAreaCode: [
  2860. { required: true, message: "请选择完税地区", trigger: "blur" },
  2861. ],
  2862. taxRelief: [
  2863. { required: true, message: "请输入减税比例", trigger: "blur" },
  2864. ],
  2865. taxpayerName: [
  2866. { required: true, message: "请输入纳税人名称", trigger: "blur" },
  2867. ],
  2868. taxpayerIdentifier: [
  2869. { required: true, message: "请选择证件类型", trigger: "blur" },
  2870. ],
  2871. taxRelifFlag: [
  2872. { required: true, message: "请选择纳税类型", trigger: "blur" },
  2873. ],
  2874. energyType: [
  2875. { required: true, message: "请选择能源种类", trigger: "blur" },
  2876. ],
  2877. cimodelclass: [
  2878. { required: true, message: "请选择车辆种类", trigger: "blur" },
  2879. ],
  2880. carnature: [
  2881. { required: true, message: "请选择使用性质", trigger: "blur" },
  2882. ],
  2883. cartype: [
  2884. { required: true, message: "请选择车辆类型", trigger: "blur" },
  2885. ],
  2886. vehicleUse: [
  2887. { required: true, message: "请选择车辆用途", trigger: "blur" },
  2888. ],
  2889. brandName: [
  2890. { required: true, message: "请填写品牌型号", trigger: "blur" },
  2891. ],
  2892. licenseNo: [
  2893. { max: 8, message: "最多八个字符", trigger: "blur" },
  2894. { required: true, validator: carPhoneValid, trigger: "blur" },
  2895. ],
  2896. frameNo: [{ validator: checkframeNo, trigger: "blur" }],
  2897. engineNo: [
  2898. { required: true, message: "请填写发动机号", trigger: "blur" },
  2899. ],
  2900. purchasePrice: [
  2901. { required: true, validator: checkpurchasePrice, trigger: "blur" },
  2902. ],
  2903. registerDate: [
  2904. { required: true, message: "请选择注册时间", trigger: "blur" },
  2905. ],
  2906. issueDate: [
  2907. { required: true, message: "请选择发证日期", trigger: "blur" },
  2908. ],
  2909. transferDate: [
  2910. { required: true, message: "请选择转移登记日期", trigger: "blur" },
  2911. ],
  2912. seatCount: [
  2913. { required: true, message: "请输入座位数", trigger: "blur" },
  2914. ],
  2915. completeKerbMass: [
  2916. { required: true, message: "请输入整备质量", trigger: "blur" },
  2917. ],
  2918. name: [{ required: true, message: "请填写姓名", trigger: "blur" }],
  2919. taxamount: [
  2920. { required: true, message: "请填写车船税", trigger: "blur" },
  2921. ],
  2922. signDate: [
  2923. { required: true, message: "请填写签单日期", trigger: "blur" },
  2924. ],
  2925. // identifyNumber: [
  2926. // { required: true, message: "请填写证件号", trigger: "blur" },
  2927. // { min: 18, max: 18, message: "长度在18个字符", trigger: "blur" },
  2928. // {
  2929. // 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]$/,
  2930. // message: "请输入正确的证件号",
  2931. // trigger: "blur"
  2932. // }
  2933. // ],
  2934. identifyValidDate: [
  2935. { required: true, message: "请选择起期", trigger: "blur" },
  2936. ],
  2937. identifyValidEndDate: [
  2938. { required: true, message: "请选择止期", trigger: "blur" },
  2939. ],
  2940. addr: [
  2941. { required: true, message: "请填写地址", trigger: "blur" },
  2942. { min: 8, message: "最少8个字符", trigger: "blur" },
  2943. ],
  2944. mobile: [
  2945. { required: true, message: "请填写手机号", trigger: "blur" },
  2946. { min: 11, max: 11, message: "长度在11个字符", trigger: "blur" },
  2947. {
  2948. pattern:
  2949. /^(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}$/,
  2950. message: "请输入正确的手机号",
  2951. trigger: "blur",
  2952. },
  2953. ],
  2954. email: [
  2955. { min: 10, max: 20, message: "最少10个字符", trigger: "blur" },
  2956. {
  2957. pattern:
  2958. /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/,
  2959. message: "请输入正确的邮箱",
  2960. trigger: "blur",
  2961. },
  2962. ],
  2963. },
  2964. CIInsureList: {
  2965. //交强险
  2966. amount: "1",
  2967. amountDesc: "投保",
  2968. amtList: [
  2969. {
  2970. label: "不投保",
  2971. value: "0",
  2972. },
  2973. {
  2974. label: "投保",
  2975. value: "1",
  2976. },
  2977. ],
  2978. kindCode: "0507",
  2979. kindName: "交强险",
  2980. desc: "国家强制规定购买的险种,对第三方的人身或财产损失提供基本保障",
  2981. },
  2982. BIInsureList: {
  2983. //商业险
  2984. amount: "0",
  2985. amountDesc: "投保",
  2986. amtList: [
  2987. {
  2988. label: "不投保",
  2989. value: "0",
  2990. },
  2991. {
  2992. label: "投保",
  2993. value: "1",
  2994. },
  2995. ],
  2996. kindCode: "0510",
  2997. kindName: "商业险",
  2998. desc: "国家强制规定购买的险种,对第三方的人身或财产损失提供基本保障",
  2999. },
  3000. insureList: [
  3001. {
  3002. amount: "0",
  3003. amountDesc: "投保",
  3004. coveragePremium: 0,
  3005. amtList: [
  3006. {
  3007. label: "不投保",
  3008. value: "0",
  3009. },
  3010. {
  3011. label: "投保",
  3012. value: "1",
  3013. },
  3014. ],
  3015. kindCode: "A",
  3016. isMainRisk: true,
  3017. kindName: "机动车损失险",
  3018. desc: "保险期间内,被保险人或被保险机动车驾驶人在使用被保险机动车过程中,因自然灾害、意外事故、机动车被盗窃、抢劫、抢夺等情况(详见保险条款)造成被保险机动车直接损失,且不属于免除保险人责任的范围,保险人依照本保险合同的约定负责赔偿的险种。",
  3019. },
  3020. {
  3021. amount: "0",
  3022. amountDesc: "不投保",
  3023. coveragePremium: 0,
  3024. amtList: [
  3025. {
  3026. label: "不投保",
  3027. value: "0",
  3028. },
  3029. {
  3030. label: "10万",
  3031. value: "100000",
  3032. },
  3033. {
  3034. label: "15万",
  3035. value: "150000",
  3036. },
  3037. {
  3038. label: "20万",
  3039. value: "200000",
  3040. },
  3041. {
  3042. label: "30万",
  3043. value: "300000",
  3044. },
  3045. {
  3046. label: "50万",
  3047. value: "500000",
  3048. },
  3049. {
  3050. label: "100万",
  3051. value: "1000000",
  3052. },
  3053. {
  3054. label: "150万",
  3055. value: "1500000",
  3056. },
  3057. {
  3058. label: "200万",
  3059. value: "2000000",
  3060. },
  3061. {
  3062. label: "250万",
  3063. value: "2500000",
  3064. },
  3065. {
  3066. label: "300万",
  3067. value: "3000000",
  3068. },
  3069. {
  3070. label: "400万",
  3071. value: "4000000",
  3072. },
  3073. {
  3074. label: "500万",
  3075. value: "5000000",
  3076. },
  3077. {
  3078. label: "600万",
  3079. value: "6000000",
  3080. },
  3081. {
  3082. label: "800万",
  3083. value: "8000000",
  3084. },
  3085. {
  3086. label: "1000万",
  3087. value: "10000000",
  3088. },
  3089. ],
  3090. kindCode: "B",
  3091. isMainRisk: true,
  3092. kindName: "第三者责任险",
  3093. desc: "保险期间内,被保险人或其允许的驾驶人在使用被保险机动车过程中发生意外事故,致使第三者遭受人身伤亡或财产直接损毁,依法应当对第三者承担的损害赔偿责任,且不属于免除保险人责任的范围,保险人依照本保险合同的约定,对于超过机动车交通事故责任强制保险各分项赔偿限额的部分负责赔偿的险种。",
  3094. },
  3095. {
  3096. amount: "0",
  3097. amountDesc: "1万",
  3098. coveragePremium: 0,
  3099. amtList: [
  3100. {
  3101. label: "不投保",
  3102. value: "0",
  3103. },
  3104. {
  3105. label: "1万",
  3106. value: "10000",
  3107. },
  3108. {
  3109. label: "2万",
  3110. value: "20000",
  3111. },
  3112. {
  3113. label: "3万",
  3114. value: "30000",
  3115. },
  3116. {
  3117. label: "4万",
  3118. value: "40000",
  3119. },
  3120. {
  3121. label: "5万",
  3122. value: "50000",
  3123. },
  3124. {
  3125. label: "6万",
  3126. value: "60000",
  3127. },
  3128. {
  3129. label: "7万",
  3130. value: "70000",
  3131. },
  3132. {
  3133. label: "8万",
  3134. value: "80000",
  3135. },
  3136. {
  3137. label: "9万",
  3138. value: "90000",
  3139. },
  3140. {
  3141. label: "10万",
  3142. value: "100000",
  3143. },
  3144. {
  3145. label: "15万",
  3146. value: "150000",
  3147. },
  3148. {
  3149. label: "20万",
  3150. value: "200000",
  3151. },
  3152. {
  3153. label: "25万",
  3154. value: "250000",
  3155. },
  3156. {
  3157. label: "30万",
  3158. value: "300000",
  3159. },
  3160. {
  3161. label: "35万",
  3162. value: "350000",
  3163. },
  3164. {
  3165. label: "40万",
  3166. value: "400000",
  3167. },
  3168. {
  3169. label: "45万",
  3170. value: "450000",
  3171. },
  3172. {
  3173. label: "50万",
  3174. value: "500000",
  3175. },
  3176. ],
  3177. kindCode: "D3",
  3178. isMainRisk: true,
  3179. kindName: "司机责任险",
  3180. desc: "保险期间内,被保险人或其允许的驾驶人在使用被保险机动车过程中发生意外事故,致使车上人员遭受人身伤亡,且不属于免除保险人责任的范围,依法应当对车上人员承担的损害赔偿责任,保险人依照本保险合同的约定负责赔偿的险种。",
  3181. },
  3182. {
  3183. amount: "0",
  3184. amountDesc: "1万",
  3185. coveragePremium: 0,
  3186. amtList: [
  3187. {
  3188. label: "不投保",
  3189. value: "0",
  3190. },
  3191. {
  3192. label: "1万",
  3193. value: "10000",
  3194. },
  3195. {
  3196. label: "2万",
  3197. value: "20000",
  3198. },
  3199. {
  3200. label: "3万",
  3201. value: "30000",
  3202. },
  3203. {
  3204. label: "4万",
  3205. value: "40000",
  3206. },
  3207. {
  3208. label: "5万",
  3209. value: "50000",
  3210. },
  3211. {
  3212. label: "6万",
  3213. value: "60000",
  3214. },
  3215. {
  3216. label: "7万",
  3217. value: "70000",
  3218. },
  3219. {
  3220. label: "8万",
  3221. value: "80000",
  3222. },
  3223. {
  3224. label: "9万",
  3225. value: "90000",
  3226. },
  3227. {
  3228. label: "10万",
  3229. value: "100000",
  3230. },
  3231. {
  3232. label: "15万",
  3233. value: "150000",
  3234. },
  3235. {
  3236. label: "20万",
  3237. value: "200000",
  3238. },
  3239. {
  3240. label: "25万",
  3241. value: "250000",
  3242. },
  3243. {
  3244. label: "30万",
  3245. value: "300000",
  3246. },
  3247. {
  3248. label: "35万",
  3249. value: "350000",
  3250. },
  3251. {
  3252. label: "40万",
  3253. value: "400000",
  3254. },
  3255. {
  3256. label: "45万",
  3257. value: "450000",
  3258. },
  3259. {
  3260. label: "50万",
  3261. value: "500000",
  3262. },
  3263. ],
  3264. kindCode: "D4",
  3265. isMainRisk: true,
  3266. kindName: "乘客责任险",
  3267. desc: "保险期间内,被保险人或其允许的驾驶人在使用被保险机动车过程中发生意外事故,致使车上人员遭受人身伤亡,且不属于免除保险人责任的范围,依法应当对车上人员承担的损害赔偿责任,保险人依照本保险合同的约定负责赔偿的险种。",
  3268. },
  3269. {
  3270. amount: "0",
  3271. amountDesc: "不投保",
  3272. coveragePremium: 0,
  3273. amtList: [
  3274. {
  3275. label: "不投保",
  3276. value: "0",
  3277. },
  3278. {
  3279. label: "2千",
  3280. value: "2000",
  3281. },
  3282. {
  3283. label: "5千",
  3284. value: "5000",
  3285. },
  3286. {
  3287. label: "1万",
  3288. value: "10000",
  3289. },
  3290. {
  3291. label: "2万",
  3292. value: "20000",
  3293. },
  3294. ],
  3295. desc: "保险期间内,被保险机动车在被保险人或被保险机动车驾驶人使用过程中,发生无明显碰撞痕迹的车身划痕损失,保险人按照保险合同约定负责赔偿的险种",
  3296. isMainRisk: false,
  3297. kindCode: "L",
  3298. kindName: "车身划痕险",
  3299. mainRiskCodeList: "A",
  3300. },
  3301. {
  3302. amount: "0",
  3303. amountDesc: "不投保",
  3304. coveragePremium: 0,
  3305. amtList: [
  3306. {
  3307. label: "不投保",
  3308. value: "0",
  3309. },
  3310. {
  3311. label: "5%",
  3312. value: "5",
  3313. },
  3314. {
  3315. label: "10%",
  3316. value: "10",
  3317. },
  3318. {
  3319. label: "15%",
  3320. value: "15",
  3321. },
  3322. {
  3323. label: "20%",
  3324. value: "20",
  3325. },
  3326. ],
  3327. desc: "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
  3328. isMainRisk: false,
  3329. kindCode: "MJ1",
  3330. kindName: "绝对免赔率特约险(车损)",
  3331. mainRiskCodeList: "A",
  3332. },
  3333. {
  3334. amount: "0",
  3335. amountDesc: "不投保",
  3336. coveragePremium: 0,
  3337. amtList: [
  3338. {
  3339. label: "不投保",
  3340. value: "0",
  3341. },
  3342. {
  3343. label: "5%",
  3344. value: "5",
  3345. },
  3346. {
  3347. label: "10%",
  3348. value: "10",
  3349. },
  3350. {
  3351. label: "15%",
  3352. value: "15",
  3353. },
  3354. {
  3355. label: "20%",
  3356. value: "20",
  3357. },
  3358. ],
  3359. desc: "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
  3360. isMainRisk: false,
  3361. kindCode: "MJ2",
  3362. kindName: "绝对免赔率特约险(三者)",
  3363. mainRiskCodeList: "B",
  3364. },
  3365. {
  3366. amount: "0",
  3367. amountDesc: "不投保",
  3368. coveragePremium: 0,
  3369. amtList: [
  3370. {
  3371. label: "不投保",
  3372. value: "0",
  3373. },
  3374. {
  3375. label: "5%",
  3376. value: "5",
  3377. },
  3378. {
  3379. label: "10%",
  3380. value: "10",
  3381. },
  3382. {
  3383. label: "15%",
  3384. value: "15",
  3385. },
  3386. {
  3387. label: "20%",
  3388. value: "20",
  3389. },
  3390. ],
  3391. desc: "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
  3392. isMainRisk: false,
  3393. kindCode: "MJ3",
  3394. kindName: "绝对免赔率特约险(司机)",
  3395. mainRiskCodeList: "D3",
  3396. },
  3397. {
  3398. amount: "0",
  3399. amountDesc: "不投保",
  3400. coveragePremium: 0,
  3401. amtList: [
  3402. {
  3403. label: "不投保",
  3404. value: "0",
  3405. },
  3406. {
  3407. label: "5%",
  3408. value: "5",
  3409. },
  3410. {
  3411. label: "10%",
  3412. value: "10",
  3413. },
  3414. {
  3415. label: "15%",
  3416. value: "15",
  3417. },
  3418. {
  3419. label: "20%",
  3420. value: "20",
  3421. },
  3422. ],
  3423. desc: "被保险机动车发生主险约定的保险事故,保险人按照主险的约定计算赔款后,扣减本特约条款约定的免赔的险种。",
  3424. isMainRisk: false,
  3425. kindCode: "MJ4",
  3426. kindName: "绝对免赔率特约险(乘客)",
  3427. mainRiskCodeList: "D4",
  3428. },
  3429. {
  3430. amount: "0",
  3431. amountDesc: "不投保",
  3432. coveragePremium: 0,
  3433. amtList: [
  3434. {
  3435. label: "不投保",
  3436. value: "0",
  3437. },
  3438. {
  3439. label: "1万",
  3440. value: "10000",
  3441. },
  3442. {
  3443. label: "2万",
  3444. value: "20000",
  3445. },
  3446. {
  3447. label: "4万",
  3448. value: "40000",
  3449. },
  3450. {
  3451. label: "5万",
  3452. value: "50000",
  3453. },
  3454. {
  3455. label: "8万",
  3456. value: "80000",
  3457. },
  3458. {
  3459. label: "10万",
  3460. value: "100000",
  3461. },
  3462. {
  3463. label: "20万",
  3464. value: "200000",
  3465. },
  3466. {
  3467. label: "30万",
  3468. value: "300000",
  3469. },
  3470. {
  3471. label: "50万",
  3472. value: "500000",
  3473. },
  3474. {
  3475. label: "100万",
  3476. value: "1000000",
  3477. },
  3478. {
  3479. label: "200万",
  3480. value: "2000000",
  3481. },
  3482. {
  3483. label: "300万",
  3484. value: "3000000",
  3485. },
  3486. ],
  3487. kindCode: "SY_FJ_YBW1",
  3488. isMainRisk: true,
  3489. kindName: "附加医保-三者",
  3490. desc: "附加医保外医疗费用责任险(机动车第三者责任保险)",
  3491. },
  3492. {
  3493. amount: "0",
  3494. amountDesc: "不投保",
  3495. coveragePremium: 0,
  3496. amtList: [
  3497. {
  3498. label: "不投保",
  3499. value: "0",
  3500. },
  3501. {
  3502. label: "1万",
  3503. value: "10000",
  3504. },
  3505. {
  3506. label: "2万",
  3507. value: "20000",
  3508. },
  3509. {
  3510. label: "5万",
  3511. value: "50000",
  3512. },
  3513. {
  3514. label: "10万",
  3515. value: "100000",
  3516. },
  3517. ],
  3518. kindCode: "SY_FJ_YBW2",
  3519. isMainRisk: true,
  3520. kindName: "附加医保-座位险(乘客)",
  3521. desc: "附加医保外医疗费用责任险(机动车第三者责任保险)",
  3522. },
  3523. {
  3524. amount: "0",
  3525. amountDesc: "不投保",
  3526. coveragePremium: 0,
  3527. amtList: [
  3528. {
  3529. label: "不投保",
  3530. value: "0",
  3531. },
  3532. {
  3533. label: "1万",
  3534. value: "10000",
  3535. },
  3536. {
  3537. label: "2万",
  3538. value: "20000",
  3539. },
  3540. {
  3541. label: "5万",
  3542. value: "50000",
  3543. },
  3544. {
  3545. label: "10万",
  3546. value: "100000",
  3547. },
  3548. ],
  3549. kindCode: "SY_FJ_YBW3",
  3550. isMainRisk: true,
  3551. kindName: "附加医保-座位险(司机)",
  3552. desc: "附加医保外医疗费用责任险(机动车第三者责任保险)",
  3553. },
  3554. {
  3555. amount: "0",
  3556. amountDesc: "不投保",
  3557. coveragePremium: 0,
  3558. amtList: [
  3559. {
  3560. label: "不投保",
  3561. value: "0",
  3562. },
  3563. {
  3564. label: "50万",
  3565. value: "500000",
  3566. },
  3567. {
  3568. label: "100万",
  3569. value: "1000000",
  3570. },
  3571. {
  3572. label: "150万",
  3573. value: "1500000",
  3574. },
  3575. {
  3576. label: "200万",
  3577. value: "2000000",
  3578. },
  3579. {
  3580. label: "250万",
  3581. value: "2500000",
  3582. },
  3583. {
  3584. label: "300万",
  3585. value: "3000000",
  3586. },
  3587. {
  3588. label: "500万",
  3589. value: "5000000",
  3590. },
  3591. {
  3592. label: "1000万",
  3593. value: "10000000",
  3594. },
  3595. ],
  3596. desc: "保险期间内,被保险人或其允许的驾驶人在法定节假日期间使用被保险机动车发生机动车第三者责任保险范围内的事故,并经公安部门或保险人查勘确认的,被保险机动车第三者责任保险所适用的责任限额在保险单载明的基础上增加一倍的险种",
  3597. isMainRisk: false,
  3598. kindCode: "BD",
  3599. kindName: "法定节假日限额翻倍险",
  3600. mainRiskCodeList: "B",
  3601. },
  3602. {
  3603. amount: "0",
  3604. amountDesc: "不投保",
  3605. coveragePremium: 0,
  3606. amtList: [
  3607. {
  3608. label: "不投保",
  3609. value: "0",
  3610. },
  3611. {
  3612. label: "2次",
  3613. value: "2",
  3614. },
  3615. {
  3616. label: "7次",
  3617. value: "7",
  3618. },
  3619. {
  3620. label: "12次",
  3621. value: "12",
  3622. },
  3623. {
  3624. label: "17次",
  3625. value: "17",
  3626. },
  3627. {
  3628. label: "22次",
  3629. value: "22",
  3630. },
  3631. ],
  3632. desc: "道路救援服务特约条款",
  3633. isMainRisk: false,
  3634. kindCode: "TY1",
  3635. kindName: "道路救援服务特约条款",
  3636. },
  3637. {
  3638. amount: "0",
  3639. amountDesc: "不投保",
  3640. coveragePremium: 0,
  3641. desc: "车辆安全检测特约条款",
  3642. isMainRisk: false,
  3643. kindCode: "TY2",
  3644. kindName: "车辆安全检测特约条款",
  3645. },
  3646. {
  3647. amount: "0",
  3648. amountDesc: "不投保",
  3649. coveragePremium: 0,
  3650. desc: "代为驾驶服务特约条款",
  3651. isMainRisk: false,
  3652. kindCode: "TY3",
  3653. kindName: "代为驾驶服务特约条款",
  3654. },
  3655. {
  3656. amount: "0",
  3657. amountDesc: "不投保",
  3658. coveragePremium: 0,
  3659. desc: "代为送检服务特约条款",
  3660. isMainRisk: false,
  3661. kindCode: "TY4",
  3662. kindName: "代为送检服务特约条款",
  3663. },
  3664. ],
  3665. totalCompanyList: [], //报价保险公司
  3666. continuousCompanyList: [], //续保保险公司
  3667. quoteno: "", //报价号
  3668. orderno: "", //订单号
  3669. queryOrders: {
  3670. extendInfo: {},
  3671. carinfo: {},
  3672. ownerinfo: {},
  3673. applyinfo: {},
  3674. insureinfo: {},
  3675. }, //核保详情
  3676. inscompany: "", //保险公司名称
  3677. licenseNo: "", //车牌号
  3678. applyName: "", //车主名字
  3679. orderstatus: "", //订单状态
  3680. sumpremium: "", //保费合计
  3681. jqpremium: "", //交强
  3682. sypremium: "", //商业
  3683. jypremium: "", //驾意险
  3684. taxamount: "", //车船税
  3685. jqstartdate: "", //交强时间
  3686. systartdate: "", //商业时间
  3687. mobile: "", //投保人手机号
  3688. //影像回显列表
  3689. // 是否禁用上传
  3690. uploadDisabled: false,
  3691. href: "",
  3692. pageRequest: {
  3693. //归属查询
  3694. pageNum: 1,
  3695. pageSize: 20,
  3696. columnFilters: {
  3697. deptId: {
  3698. name: "deptId",
  3699. value: "9",
  3700. },
  3701. containsSubDept: {
  3702. name: "containsSubDept",
  3703. value: 1,
  3704. },
  3705. usertype: {
  3706. name: "usertype",
  3707. value: null,
  3708. },
  3709. status: {
  3710. name: "status",
  3711. value: "1",
  3712. },
  3713. id: {
  3714. name: "id",
  3715. value: "",
  3716. },
  3717. name: {
  3718. name: "name",
  3719. value: "",
  3720. },
  3721. mobile: {
  3722. name: "mobile",
  3723. value: "",
  3724. },
  3725. },
  3726. },
  3727. userform: {},
  3728. qrcode: null,
  3729. paycodeimg: "", //展示二维码
  3730. ImageUrldialogVisible: false,
  3731. paramsEdit: "",
  3732. companyId: "",
  3733. apiType: "",
  3734. insureMore: true,
  3735. // insureLength: 5,
  3736. HistoryList: [], //历史记录数据
  3737. image1: "",
  3738. image2: "",
  3739. historyRadio: "888",
  3740. sumseatCount: "", // 投保险种座位数
  3741. deptName: "",
  3742. isBottom: true,
  3743. logoImg: "", //报价单保险公司logo图
  3744. vehicleTypeoptions: [], //车辆种类
  3745. trafficManagementVehicleTypeoptions: [], //车辆类型
  3746. energyTypeoptions: [], //能源种类
  3747. taxRelifFlagoptions: [], //车船税类型
  3748. taxpayerIdentifieroptions: [], //纳税人证件类型
  3749. propertyoptions:[
  3750. {
  3751. value:'1',
  3752. label:'个人'
  3753. },{
  3754. value:'2',
  3755. label:'企业'
  3756. },
  3757. ],
  3758. relifReasonoptions: [], //减免税原因代码
  3759. relifReasonoptions: [], //减免税原因代码
  3760. provinceSelect: [],
  3761. natureOfVehicleUseoptions: [],
  3762. businessVehicleUseoptions: [],
  3763. outOfBusinessVehicleUseoptions: [],
  3764. insOrderStatusoptions: [],
  3765. lastCompanyId: "",
  3766. apiInterfaceName: "generateOrder",
  3767. isLetter3Arr: [],
  3768. isLetter3agreementId: "",
  3769. editorInfo: {},
  3770. resultMessageImg: '',
  3771. tabLiIndex: 0,
  3772. tabLimenu: [
  3773. {
  3774. name: "车辆信息",
  3775. scroll: "vehicle",
  3776. },
  3777. {
  3778. name: "车主信息",
  3779. scroll: "owner",
  3780. },
  3781. {
  3782. name: "投保人信息",
  3783. scroll: "applicant",
  3784. },
  3785. {
  3786. name: "被保人信息",
  3787. scroll: "insured",
  3788. },
  3789. {
  3790. name: "关系证明",
  3791. scroll: "relationship",
  3792. },
  3793. {
  3794. name: "验车照",
  3795. scroll: "yanchezhao",
  3796. },
  3797. {
  3798. name: "上年商业险保单",
  3799. scroll: "snbaodan",
  3800. },
  3801. ],
  3802. ProViewImg: "", //预览图片
  3803. carfrontImg: "", //行驶证正面
  3804. carbackImg: "", //行驶证背面
  3805. userfrontImg: "", //身份证正面
  3806. userbackImg: "", //身份证背面
  3807. businessImg: "",
  3808. CarFrontFile: "", //车正面文件流
  3809. CarBackFile: "", //车背面文件流
  3810. C02File: "",
  3811. D02File: "",
  3812. C03File: "",
  3813. D03File: "",
  3814. C04File: "",
  3815. D04File: "",
  3816. Y02File: "",
  3817. Y03File: "",
  3818. Y04File: "",
  3819. //影像回显列表
  3820. imgList1: [],
  3821. imgList2: [],
  3822. imgList3: [],
  3823. imgList4: [],
  3824. imgList5: [],
  3825. imgList6: [],
  3826. imgList7: [],
  3827. imgList8: [],
  3828. imgList9: [],
  3829. imgList10: [],
  3830. imgList11: [],
  3831. imgList12: [],
  3832. imgList13: [],
  3833. imgList14: [],
  3834. imgList15: [],
  3835. imgList16: [],
  3836. imgList17: [],
  3837. imgList18: [],
  3838. imgList19: [],
  3839. imgList20: [],
  3840. imgList21: [],
  3841. imgList22: [],
  3842. imgList23: [],
  3843. imgList24: [],
  3844. imgList25: [],
  3845. imgList26: [],
  3846. imgList27: [],
  3847. imgList28: [],
  3848. //影像上传列表
  3849. imageList1: [],
  3850. imageList2: [],
  3851. imageList3: [],
  3852. imageList4: [],
  3853. imageList5: [],
  3854. imageList6: [],
  3855. businessform:{
  3856. name: "", //姓名
  3857. identifyType: "10", //身份证类型
  3858. legalRepresentative: "", //法人
  3859. identifyNumber: "", //社会信用代码
  3860. addr: "", //地址
  3861. registeredCapital: "", //注册资本
  3862. businessScope: "", //经营范围
  3863. },
  3864. areaOption:yongchengData.data,
  3865. selectedOptions1: [],
  3866. selectedOptions2: [],
  3867. selectedOptions3: [],
  3868. };
  3869. },
  3870. watch: {
  3871. "carInfo.licenseNo": {
  3872. handler(val) {
  3873. if (val) {
  3874. this.carInfo.licenseNo = val.toUpperCase();
  3875. }
  3876. },
  3877. deep: true,
  3878. },
  3879. "carInfo.frameNo": {
  3880. handler(val) {
  3881. if (val) {
  3882. this.carInfo.frameNo = val.toUpperCase();
  3883. }
  3884. },
  3885. deep: true,
  3886. },
  3887. "carInfo.enginedesc": {
  3888. handler(val) {
  3889. if (val) {
  3890. this.carInfo.enginedesc = val.replace(/[A-Za-z]/g, "");
  3891. }
  3892. },
  3893. deep: true,
  3894. },
  3895. "ownerInfo.mobile": {
  3896. handler(val) {
  3897. if (val) {
  3898. this.ownerInfo.mobile = val.replace(/\s/g, "");
  3899. }
  3900. },
  3901. deep: true,
  3902. },
  3903. "policyHolderInfo.mobile": {
  3904. handler(val) {
  3905. if (val) {
  3906. this.policyHolderInfo.mobile = val.replace(/\s/g, "");
  3907. }
  3908. },
  3909. deep: true,
  3910. },
  3911. "insuredPersonInfo.mobile": {
  3912. handler(val) {
  3913. if (val) {
  3914. this.insuredPersonInfo.mobile = val.replace(/\s/g, "");
  3915. }
  3916. },
  3917. deep: true,
  3918. },
  3919. "carInfo.engineNo": {
  3920. handler(val) {
  3921. if (val) {
  3922. this.carInfo.engineNo = val.replace(/[^\w-]/gi, "").toUpperCase();
  3923. }
  3924. },
  3925. deep: true,
  3926. },
  3927. "carInfo.seatCount": {
  3928. handler(val) {
  3929. if (val) {
  3930. this.sumseatCount = val - 1;
  3931. }
  3932. },
  3933. deep: true,
  3934. },
  3935. "policyHolderInfo.identifyNumber": {
  3936. handler(val) {
  3937. if (val) {
  3938. this.vehicleAndVesselTaxForm.identifyNumber = val;
  3939. }
  3940. },
  3941. deep: true,
  3942. },
  3943. "policyHolderInfo.property": {
  3944. handler(val) {
  3945. if (val ) {
  3946. this.vehicleAndVesselTaxForm.taxpayerIdentifier =val=='0'? '10':'01';
  3947. }
  3948. },
  3949. deep: true,
  3950. },
  3951. "policyHolderInfo.organizationCode": {
  3952. handler(val) {
  3953. if (val) {
  3954. this.vehicleAndVesselTaxForm.organizationCode = val;
  3955. }
  3956. },
  3957. deep: true,
  3958. },
  3959. "policyHolderInfo.name": {
  3960. handler(val) {
  3961. if (val) {
  3962. this.vehicleAndVesselTaxForm.taxpayerName = val;
  3963. }
  3964. },
  3965. deep: true,
  3966. },
  3967. },
  3968. props: {
  3969. isdisabled: {
  3970. type: Boolean,
  3971. default: true,
  3972. },
  3973. isLetter: {
  3974. type: String,
  3975. default: "1",
  3976. },
  3977. },
  3978. components: {
  3979. detailsDialog,
  3980. quotationDialog,
  3981. quotationDialogPro,
  3982. imageDialog,
  3983. floatingBar,
  3984. "el-image-viewer": () =>
  3985. import("element-ui/packages/image/src/image-viewer"),
  3986. },
  3987. created() {
  3988. if (this.isLetter == "2") {
  3989. this.apiInterfaceName = "ordergenerateOrder";
  3990. }
  3991. // this.commpanyList(); //获取保险公司
  3992. this.getDicType("taxRelifFlag"); //车船税类型
  3993. this.getDicType("taxpayerIdentifier"); //纳税人证件类型
  3994. this.getDicType("relifReason"); //减免税原因代码
  3995. this.getDicType("vehicleType"); //车辆种类
  3996. this.getDicType("trafficManagementVehicleType"); //车辆类型
  3997. this.getDicType("energyType"); //能源种类
  3998. this.getDicType("natureOfVehicleUse"); //车辆使用性质
  3999. this.getDicType("businessVehicleUse"); //(车辆用途)营业
  4000. this.getDicType("outOfBusinessVehicleUse"); //(车辆用途)非营业
  4001. this.getDicType("insOrderStatus"); //状态
  4002. this.$api.letter.queryCompany().then((res) => {
  4003. this.continuousCompanyList = res.data;
  4004. });
  4005. this.$api.letter.packageQuery().then((res) => {
  4006. this.packageOptions = res.data;
  4007. });
  4008. localStorage.setItem("carInfo", JSON.stringify(this.carInfo));
  4009. localStorage.setItem("insureList", JSON.stringify(this.insureList));
  4010. //--归属信息获取--
  4011. if (this.isLetter == 1 || this.isLetter == 2) {
  4012. var userId = Cookies.get("user");
  4013. if (userId == "admin") {
  4014. this.userId = "admin";
  4015. } else {
  4016. // this.userId = userId;
  4017. this.$api.user.getLoginUser().then((res) => {
  4018. if (res.code == 200) {
  4019. this.userform = res.data;
  4020. this.$api.dept.getDeptById(res.data.deptId).then((res) => {
  4021. this.deptName = res.data.name;
  4022. });
  4023. this.userId = res.data.id;
  4024. }
  4025. });
  4026. }
  4027. }
  4028. //--订单编辑回显--
  4029. // this.paramsEdit = this.$route.query.data; //接收参数
  4030. // add by hxl 2024-12-16
  4031. this.findLeftTreeData(); //获取外部协议的保险保司列表
  4032. let item ={
  4033. agreement:[],
  4034. companyName: "",
  4035. isTaxSource: "",
  4036. agreementId:"",
  4037. isInquiryNow: "",
  4038. jqpremium: "",
  4039. taxamount:"",
  4040. sypremium:"",
  4041. jypremium:"",
  4042. isInquiryFlag:""
  4043. }
  4044. this.totalCompanyList.push(item);
  4045. this.obtainProtocol(this.$route.query.data);
  4046. //初始化
  4047. },
  4048. mounted() {
  4049. //add by hxl 2024-12-16
  4050. this.obtainProtocol().then(() => this.editingWay(this.$route.query.data));
  4051. //this.editingWay(this.$route.query.data);
  4052. this.onScroll();
  4053. // console.log(this.$route.query.data.jqstartdate.split(" ")[1]);
  4054. if (this.$route.query.data) {
  4055. this.jqstartDate = this.$route.query.data.jqstartdate;
  4056. this.jqendDate = this.$route.query.data.jqenddate;
  4057. if (this.$route.query.data.jqstartdate.split(" ")[1] == "00:00:00") {
  4058. this.immediatelyValue = false;
  4059. } else {
  4060. this.immediatelyValue = true;
  4061. }
  4062. }
  4063. window.addEventListener("scroll", this.onScroll);
  4064. },
  4065. destroyed() {
  4066. window.removeEventListener("scroll", this.onScroll);
  4067. },
  4068. beforeCreate() {
  4069. _self = this;
  4070. },
  4071. computed: {
  4072. ...mapState({
  4073. collapse: (state) => state.app.collapse,
  4074. }),
  4075. issueDateOptions() {
  4076. return {
  4077. disabledDate: this.disabledDate,
  4078. };
  4079. },
  4080. sumPremium() {
  4081. let sum = new Decimal(this.policyNumberForm.jqpremium == "" ? new Decimal(0): new Decimal(this.policyNumberForm.jqpremium))
  4082. .plus(
  4083. this.policyNumberForm.taxamount == "" ? new Decimal(0) : new Decimal(this.policyNumberForm.taxamount)
  4084. )
  4085. .plus(
  4086. this.policyNumberForm.sypremium == "" ? new Decimal(0) : new Decimal(this.policyNumberForm.sypremium)
  4087. )
  4088. .plus(
  4089. this.policyNumberForm.jypremium == "" ? new Decimal(0) : new Decimal(this.policyNumberForm.jypremium)
  4090. )
  4091. .toString();
  4092. return sum;
  4093. }
  4094. },
  4095. filters: {
  4096. cap(ele) {
  4097. return _self.insOrderStatusoptions.find((item) => {
  4098. return item.dictValue === ele;
  4099. }).dictTag;
  4100. },
  4101. },
  4102. methods: {
  4103. vehicleUseChange(value){
  4104. if(value='05'){
  4105. this.carInfo.property='1';
  4106. this.ownerInfo.property='1';
  4107. this.ownerInfo.identifyType='01'
  4108. }
  4109. },
  4110. propertyDisable(item){
  4111. if(this.carInfo.vehicleUse=='05' && item.label=='企业'){
  4112. return true;
  4113. }else{
  4114. return false;
  4115. }
  4116. },
  4117. // add by hxl 2024-12-16 ---begin
  4118. //保险公司列表
  4119. findLeftTreeData: function () {
  4120. this.$api.custInfo.getExternalAgreementCompanyList({name:this.companyName}).then(res => {
  4121. this.ztreeNodes = res.data;
  4122. });
  4123. },
  4124. //保险公司改变事件
  4125. changeCompany(val){
  4126. //判断险种
  4127. this.kindListFun();
  4128. //展示协议列表
  4129. if (this.totalCompanyListBak !=null && this.totalCompanyListBak.length>0){
  4130. this.totalCompanyListBak.forEach((item, index) => {
  4131. if(item.namesimple == val){
  4132. this.totalCompanyList[0].agreement=item.agreement;
  4133. }
  4134. });
  4135. }
  4136. //清空是否、费用id
  4137. this.isInquiryNowDisable = false
  4138. this.isInquirySelectFlag = true;
  4139. this.isLetter3agreementId = "";
  4140. this.costFlag ="";
  4141. this.nowCostsId ="";
  4142. this.inquiryNowList = [];
  4143. //清空费用
  4144. this.policyNumberForm.jqCostsProportion = "";
  4145. this.policyNumberForm.noCostsProportion = "";
  4146. this.policyNumberForm.syCostsProportion = "";
  4147. },
  4148. //选择协议 val:协议id row:协议列表 index:下标 item:保险公司数据集合
  4149. agreementChange(val, row, index, item) {
  4150. if (this.isLetter == "3") {
  4151. this.isLetter3agreementId = "";
  4152. console.log(item)
  4153. this.isLetter3agreementId = val;
  4154. }
  4155. //清空是否、费用id
  4156. this.isInquiryNowDisable = false
  4157. this.isInquirySelectFlag = true;
  4158. this.costFlag ="";
  4159. this.nowCostsId ="";
  4160. this.inquiryNowList = [];
  4161. //清空费用
  4162. this.policyNumberForm.jqCostsProportion = "";
  4163. this.policyNumberForm.noCostsProportion = "";
  4164. this.policyNumberForm.syCostsProportion = "";
  4165. },
  4166. //是否现询改变事件
  4167. changeIsInquirySelect(val){
  4168. this.inquiryNowList = [];
  4169. this.nowCostsId ="";
  4170. this.policyNumberForm.jqOtherCostsProportion = ''
  4171. this.policyNumberForm.syOtherCostsProportion = ''
  4172. this.policyNumberForm.noOtherCostsProportion = ''
  4173. //是的话,手输 ,否的话选择
  4174. if(val == '1'){
  4175. this.costFlag = val;
  4176. this.isInquiryNowDisable = false
  4177. this.isInquirySelectFlag = true;
  4178. this.getExternalOrderFee();
  4179. }else if(val == '2'){
  4180. this.costFlag = val;
  4181. this.isInquiryNowDisable = true;
  4182. this.isInquirySelectFlag = false;
  4183. this.getInquiryNowList()
  4184. }
  4185. },
  4186. //清除选择数据
  4187. clearCostFlagData(){
  4188. this.costFlag = "";
  4189. this.isInquiryNowDisable = false
  4190. this.isInquirySelectFlag = true;
  4191. this.inquiryNowList = [];
  4192. this.policyNumberForm.jqOtherCostsProportion = ''
  4193. this.policyNumberForm.syOtherCostsProportion = ''
  4194. this.policyNumberForm.noOtherCostsProportion = ''
  4195. },
  4196. // 获取出口费用
  4197. getExternalOrderFee() {
  4198. if (this.userId ==null || this.userId =='' ){
  4199. this.$message.error("请选择业务员!!")
  4200. this.clearCostFlagData();
  4201. return;
  4202. }
  4203. if (this.costFlag ==null || this.costFlag =='' ){
  4204. this.$message({ message: "请选择是否现询", type: "error" });
  4205. this.clearCostFlagData();
  4206. return;
  4207. }
  4208. if(this.costFlag =='1'){
  4209. if((this.policyNumberForm.jqCostsProportion==null || this.policyNumberForm.jqCostsProportion =='')
  4210. && (this.policyNumberForm.syCostsProportion==null || this.policyNumberForm.syCostsProportion =='' )
  4211. && (this.policyNumberForm.noCostsProportion==null || this.policyNumberForm.noCostsProportion =='' )
  4212. ){
  4213. this.$message.error("请填写总比例(%)!!")
  4214. this.clearCostFlagData();
  4215. return;
  4216. }
  4217. }
  4218. let data = {
  4219. agreementId: this.isLetter3agreementId,
  4220. risks: this.riskList,
  4221. kinds: this.kindList,
  4222. userId: this.userId,
  4223. jqPremium: this.policyNumberForm.jqpremium,
  4224. jqRadio: this.policyNumberForm.jqCostsProportion,
  4225. syPremium: this.policyNumberForm.sypremium,
  4226. syRadio: this.policyNumberForm.syCostsProportion,
  4227. jyPremium: this.policyNumberForm.jypremium,
  4228. jyRadio: this.policyNumberForm.noCostsProportion,
  4229. }
  4230. if(this.costFlag == "1"){
  4231. this.$api.letter.externalOrderFee(data).then((res) => {
  4232. if (res.code == 200) {
  4233. this.policyNumberForm.jqOtherCostsProportion = res.data.jqExportRadio
  4234. this.policyNumberForm.syOtherCostsProportion = res.data.syExportRadio
  4235. this.policyNumberForm.noOtherCostsProportion = res.data.noExportRadio
  4236. this.nowCostsId =res.data.costId;
  4237. console.log(res.data.jqExportRadio, res.data.syExportRadio, res.data.noExportRadio, '111111111111111111')
  4238. this.$forceUpdate()
  4239. } else {
  4240. this.$message.error(res.msg)
  4241. }
  4242. })
  4243. }else if(this.costFlag == "2"){
  4244. this.$api.custInfo.externalInquiryNowFeeOrderFee(data).then((res) => {
  4245. if (res.code == 200) {
  4246. this.policyNumberForm.jqOtherCostsProportion = res.data.jqExportRadio
  4247. this.policyNumberForm.syOtherCostsProportion = res.data.syExportRadio
  4248. this.policyNumberForm.noOtherCostsProportion = res.data.noExportRadio
  4249. console.log(res.data.jqExportRadio, res.data.syExportRadio, res.data.noExportRadio, '111111111111111111')
  4250. this.$forceUpdate()
  4251. } else {
  4252. this.$message.error(res.msg)
  4253. }
  4254. })
  4255. }
  4256. },
  4257. // 非现询
  4258. getInquiryNowList() {
  4259. let productId = ''
  4260. this.inquiryNowList = []
  4261. this.$api.letter.getProductId({
  4262. riskList: this.riskList,
  4263. kindList: this.kindList
  4264. }).then((res) => {
  4265. if (res.code == 200) {
  4266. productId = res.data
  4267. this.$api.letter.getInquiryNowFee({
  4268. agreementId: this.isLetter3agreementId,
  4269. productId: productId
  4270. }).then((resp) => {
  4271. if (resp.code == 200) {
  4272. this.inquiryNowList = resp.data
  4273. }
  4274. })
  4275. }
  4276. })
  4277. },
  4278. //现询和非线询逻辑处理
  4279. inquiryNowListChange(data) {
  4280. if (data) {
  4281. this.nowCostsId = data // 现询id
  4282. this.isInquiryNowDisable = true
  4283. this.inquiryNowList.forEach((val) => {
  4284. if (val.id == data) {
  4285. this.policyNumberForm.jqCostsProportion = val.jqCostsProportion
  4286. this.policyNumberForm.noCostsProportion = val.noCostsProportion
  4287. this.policyNumberForm.syCostsProportion = val.syCostsProportion
  4288. this.getExternalOrderFee();
  4289. }
  4290. })
  4291. } else {
  4292. this.nowCostsId = ''
  4293. this.isInquiryNowDisable = false
  4294. this.policyNumberForm.jqCostsProportion = ''
  4295. this.policyNumberForm.noCostsProportion = ''
  4296. this.policyNumberForm.syCostsProportion = ''
  4297. this.policyNumberForm.jqOtherCostsProportion = ''
  4298. this.policyNumberForm.syOtherCostsProportion = ''
  4299. this.policyNumberForm.noOtherCostsProportion = ''
  4300. }
  4301. },
  4302. // add by hxl 2024-12-16 ---end
  4303. // 所属性质字段
  4304. getCompanyListProperty(data){
  4305. if(data=='1'){
  4306. this.ownerInfo.property='1'
  4307. this.policyHolderInfo.property='1'
  4308. this.insuredPersonInfo.property='1'
  4309. this.ownerInfo.identifyType='01'
  4310. this.policyHolderInfo.identifyType='01'
  4311. this.insuredPersonInfo.identifyType='01'
  4312. }
  4313. else{
  4314. this.ownerInfo.property='0'
  4315. this.policyHolderInfo.property='0'
  4316. this.insuredPersonInfo.property='0'
  4317. this.ownerInfo.identifyType='10'
  4318. this.policyHolderInfo.identifyType='10'
  4319. this.insuredPersonInfo.identifyType='10'
  4320. }
  4321. },
  4322. //清空保单图片
  4323. removePhoto(file, fileList, type) {
  4324. // console.log(file, fileList);
  4325. this.policyNumberForm[type] = []
  4326. console.log(this.policyNumberForm[type])
  4327. },
  4328. editingWay(paramsEdit) {
  4329. if (paramsEdit) {
  4330. var _this = this;
  4331. this.jqchecked = false;
  4332. this.tbczcarShow = false;
  4333. this.bbtbcarShow = false;
  4334. this.bbczcarShow = false;
  4335. const { carinfo, ownerinfo, applyinfo, insureinfo, quoteno, orderno,insAreaCompanyList } =
  4336. paramsEdit;
  4337. this.editorInfo = { ...paramsEdit };
  4338. // console.log(paramsEdit.);
  4339. // this.vehicleAndVesselTaxForm = { ...paramsEdit.vehicleAndVesselTax };
  4340. _this.carInfo = carinfo;
  4341. if (_this.carInfo.carnature == "8A") {
  4342. _this.carInfo.carnature = "02";
  4343. _this.carInfo.vehicleUse = "05";
  4344. } else {
  4345. _this.carInfo.carnature;
  4346. _this.carInfo.vehicleUse;
  4347. }
  4348. _this.ownerInfo = ownerinfo;
  4349. _this.policyHolderInfo = applyinfo;
  4350. _this.insuredPersonInfo = insureinfo;
  4351. _this.quoteno = quoteno;
  4352. _this.orderno = orderno;
  4353. _this.tbczcarShow = applyinfo.owner;
  4354. _this.bbczcarShow = insureinfo.owner;
  4355. _this.kindList = paramsEdit.king;
  4356. _this.bbtbcarShow = insureinfo.insuranceHolder;
  4357. _this.ownerInfo.age = getAgeByIdCard(_this.ownerInfo.identifyNumber);
  4358. _this.policyHolderInfo.age = getAgeByIdCard(
  4359. _this.policyHolderInfo.identifyNumber
  4360. );
  4361. _this.insuredPersonInfo.age = getAgeByIdCard(
  4362. _this.insuredPersonInfo.identifyNumber
  4363. );
  4364. if (paramsEdit.carinfo.transferFlag) {
  4365. this.transferDateShow = true;
  4366. }
  4367. //回显交强和商业的时间
  4368. paramsEdit.risk.map((ele) => {
  4369. if (ele.riskCode == "0507") {
  4370. _this.jqchecked = true;
  4371. this.protocolJudge("0507", true);
  4372. if(paramsEdit.jqstartdate){
  4373. _this.jqstartDate = paramsEdit.jqstartdate;
  4374. _this.jqendDate = paramsEdit.jqenddate;
  4375. }else{
  4376. _this.jqstartDate = this.transformTime1();
  4377. _this.jqendDate = this.oneYearPast1(this.jqstartDate);
  4378. }
  4379. if(!_this.riskList.includes("0507")){
  4380. _this.riskList.push({
  4381. riskCode: "0507",
  4382. });
  4383. }
  4384. } else if (ele.riskCode == "0510") {
  4385. _this.sychecked = true;
  4386. this.protocolJudge("0510", true);
  4387. if(paramsEdit.systartDate){
  4388. _this.systartDate = paramsEdit.systartdate;
  4389. _this.jqendDate = paramsEdit.syenddate;
  4390. }else{
  4391. _this.systartDate = this.transformTime1();
  4392. _this.syendDate = this.oneYearPast1(this.jqstartDate);
  4393. }
  4394. if(!_this.riskList.includes("0510")){
  4395. _this.riskList.push({
  4396. riskCode: "0510",
  4397. });
  4398. }
  4399. _this.insureList.map((eleA) => {
  4400. paramsEdit.king.map((eleB) => {
  4401. if (eleA.kindCode == eleB.kindCode) {
  4402. switch (eleB.kindCode) {
  4403. case "D4":
  4404. case "SY_FJ_YBW2":
  4405. eleA.amount = eleB.unitAmount+"";
  4406. break;
  4407. case "MJ1":
  4408. case "MJ2":
  4409. case "MJ3":
  4410. case "MJ4":
  4411. eleA.amount = eleB.deductibleRate+"";
  4412. case "A":
  4413. eleA.amount = eleB.amount+"";
  4414. this.protocolJudge("A", true);
  4415. break;
  4416. case "TY1":
  4417. case "TY2":
  4418. case "TY3":
  4419. case "TY4":
  4420. eleA.amount = eleB.serviceTimes+"";
  4421. break;
  4422. default:
  4423. eleA.amount = eleB.amount+"";
  4424. }
  4425. }
  4426. });
  4427. });
  4428. }
  4429. });
  4430. // this.HistoryList = this.paramsEdit.insAreaCompanyList;
  4431. let params = {
  4432. orderNo: paramsEdit.orderno,
  4433. orderStatus: "",
  4434. };
  4435. this.$api.letter.queryQuoteHistory(params).then((res) => {
  4436. res.data.forEach((item) => {
  4437. if (item.accidentInfo) {
  4438. item.accidentInfo.constructor === Object
  4439. ? [item.accidentInfo]
  4440. : item.accidentInfo;
  4441. }
  4442. });
  4443. this.HistoryList = res.data;
  4444. });
  4445. //--获取影像信息--
  4446. _this.imageEcho(this.quoteno);
  4447. // this.$refs.imageDialog.imageEcho(this.quoteno)
  4448. // this.commpanyList()
  4449. //--显示影像按钮--
  4450. _this.imageUploadShow = true;
  4451. this.orderExternalStatus = paramsEdit.orderExternalStatus;
  4452. //回显协议列表数据 add by hxl 2024-12-16
  4453. this.isLetter3agreementId = insAreaCompanyList[0].agreementId;
  4454. this.companyName = insAreaCompanyList[0].inscompany;
  4455. if (this.totalCompanyListBak != null && this.totalCompanyListBak.length > 0) {
  4456. this.totalCompanyListBak.forEach((item, index) => {
  4457. if (item.id == insAreaCompanyList[0].companyId) {
  4458. this.totalCompanyList[0].agreement = item.agreement;
  4459. }
  4460. });
  4461. }
  4462. this.costFlag = paramsEdit.costFlag;
  4463. if(this.costFlag=="1"){
  4464. this.isInquiryNowDisable = false
  4465. this.isInquirySelectFlag = true;
  4466. this.nowCostsId = '';
  4467. this.getExternalOrderFee();
  4468. }else if(this.costFlag=="2"){
  4469. this.isInquiryNowDisable = true;
  4470. this.isInquirySelectFlag = false;
  4471. this.nowCostsId = paramsEdit.nowCostsId;
  4472. this.getInquiryNowList();
  4473. this.getExternalOrderFee();
  4474. }
  4475. } else {
  4476. this.jqchecked = true;
  4477. if(!this.riskList.includes("0507")){
  4478. this.riskList.push({
  4479. riskCode: "0507"
  4480. });
  4481. }
  4482. this.jqstartDate = this.transformTime1();
  4483. this.jqendDate = this.oneYearPast1(this.jqstartDate);
  4484. this.systartDate = this.transformTime1();
  4485. this.syendDate = this.oneYearPast1(this.systartDate);
  4486. }
  4487. },
  4488. handleRemove1(file, imageIdList, imgList) {
  4489. this[imageIdList].map((ele, index) => {
  4490. if (file.imageId === ele.imageId) {
  4491. this[imageIdList].splice(index, 1);
  4492. }
  4493. return ele;
  4494. });
  4495. if (file.imageId) {
  4496. this[imgList].map((ele, index) => {
  4497. if (file.imageId === ele.imageId) {
  4498. this[imgList].splice(index, 1);
  4499. }
  4500. return ele;
  4501. });
  4502. } else {
  4503. this[imgList].map((ele, index) => {
  4504. if (file.uid === ele.uid) {
  4505. this[imgList].splice(index, 1);
  4506. }
  4507. return ele;
  4508. });
  4509. }
  4510. },
  4511. uploadinformation() {
  4512. // //上传图片
  4513. const mergedArray = [
  4514. ...this.imageList1,
  4515. ...this.imageList2,
  4516. ...this.imageList3,
  4517. ...this.imageList4,
  4518. ...this.imageList5,
  4519. ...this.imageList6,
  4520. ];
  4521. let imageparam = {
  4522. imageList: mergedArray,
  4523. quoteNo: this.quoteno,
  4524. };
  4525. this.$api.letter.uploadImages(imageparam).then((responses) => {
  4526. if (responses.code == "200") {
  4527. this.imageEcho(this.quoteno);
  4528. this.$message({ message: responses.msg, type: "success" });
  4529. } else {
  4530. this.$message({ message: responses.msg, type: "error" });
  4531. }
  4532. });
  4533. this.imageUploaddialogVisible = false;
  4534. },
  4535. repairinformation() {
  4536. // //上传图片
  4537. const mergedArray = [
  4538. ...this.imageList1,
  4539. ...this.imageList2,
  4540. ...this.imageList3,
  4541. ...this.imageList4,
  4542. ...this.imageList5,
  4543. ...this.imageList6,
  4544. ];
  4545. let imageparam = {
  4546. imageList: mergedArray,
  4547. companyId: this.companyId,
  4548. };
  4549. this.$api.letter.additionalInformation(imageparam).then((responses) => {
  4550. if (responses.code == "200") {
  4551. this.imageUploaddialogVisible = false;
  4552. this.$message({ message: responses.msg, type: "success" });
  4553. } else {
  4554. this.$message({ message: responses.msg, type: "error" });
  4555. }
  4556. });
  4557. },
  4558. //手机号复制粘贴处理
  4559. handlePaste(e, mobileKey) {
  4560. e.preventDefault(); //阻止默认行为
  4561. const clipboardData = e.clipboardData || window.clipboardData; //获取剪切板内容
  4562. let pastedText = clipboardData.getData("text").replace(/\s+/g, ""); //获取纯文本并处理空格
  4563. // 截取前11个字符,以确保不会超过手机号长度限制
  4564. pastedText = pastedText.substring(0, 11);
  4565. // 使用Vue.nextTick确保更新发生在DOM更新之后
  4566. this.$nextTick(() => {
  4567. this[mobileKey].mobile = pastedText;
  4568. });
  4569. },
  4570. // licenseNoFun(data){
  4571. // if(data && this.carInfo.enginedesc){
  4572. // this.obtainProtocol()
  4573. // }
  4574. // },
  4575. // enginedescFun(data){
  4576. // if(data && this.carInfo.licenseNo){
  4577. // this.obtainProtocol()
  4578. // }
  4579. // },
  4580. packageChange(val) {
  4581. let arr = this.packageOptions.find((ele) => ele.id == val).kind;
  4582. if (arr.length > 0) {
  4583. this.insureList.map((eleA) => {
  4584. arr.map((eleB) => {
  4585. if (eleA.kindCode == eleB.kindCode) {
  4586. switch (eleB.kindCode) {
  4587. case "D4":
  4588. case "SY_FJ_YBW2":
  4589. eleA.amount = JSON.stringify(eleB.unitAmount);
  4590. break;
  4591. case "MJ1":
  4592. case "MJ2":
  4593. case "MJ3":
  4594. case "MJ4":
  4595. eleA.amount = eleB.deductibleRate;
  4596. break;
  4597. case "TY1":
  4598. case "TY2":
  4599. case "TY3":
  4600. case "TY4":
  4601. eleA.amount = eleB.serviceTimes+"";
  4602. break;
  4603. default:
  4604. eleA.amount = JSON.stringify(eleB.amount);
  4605. }
  4606. }
  4607. });
  4608. });
  4609. } else {
  4610. this.insureList.map((eleA) => {
  4611. eleA.amount = "0";
  4612. });
  4613. }
  4614. },
  4615. capType(val) {
  4616. if (val == "0") {
  4617. return "success";
  4618. }
  4619. if (val == "1") {
  4620. return "warning";
  4621. }
  4622. if (val == "2" || val == "3" || val == "4") {
  4623. return "danger";
  4624. }
  4625. },
  4626. handleCheckAllChange(ele) {
  4627. this.totalCompanyList.forEach((val, index) => {
  4628. ele ? (val.checked = true) : (val.checked = false);
  4629. // this.initchange(ele, val.id, val.cnName, index);
  4630. });
  4631. },
  4632. retractFun() {
  4633. this.isRetract = this.isRetract == false ? true : false;
  4634. },
  4635. //中煤意外险调整份数事件
  4636. ZMhandleChange(val) {
  4637. if (!val) {
  4638. this.$refs.ZmMultipleTable[0].clearSelection(); //清除
  4639. }
  4640. },
  4641. //中煤意外险选中对应意外险方案
  4642. // ZMHandleSelectionChange(val) {
  4643. // // if(val.length > 0&& val[0].quantity==undefined){
  4644. // // this.$message({ message: "请先填写投保份数再勾选!", type: "error", });
  4645. // // this.$refs.ZmMultipleTable[0].clearSelection(); //清除
  4646. // // return false;
  4647. // // }
  4648. // if (val.length > 1) {
  4649. // this.$refs.ZmMultipleTable[0].clearSelection(); //清除
  4650. // this.$refs.ZmMultipleTable[0].toggleRowSelection(val.pop()); //pop:最后一个
  4651. // } else {
  4652. // this.zhongmeiaccidentalDrivingVo = val[0]; //multipleSelection:当前选择的数组
  4653. // }
  4654. // },
  4655. //中煤意外险选中对应产品带出方案明细
  4656. zhongmeiInsuranceChange(index) {
  4657. //每次选中产品,清空之前选中的数据
  4658. this.zhongmeitemplateSelection = index;
  4659. this.zhongmeiaccidentalDrivingVo = {};
  4660. this.zhongmeiInsuranceDataTable = [];
  4661. let data = this.zhongmeiInsuranceData.find(
  4662. (val) => val.projectCode == index
  4663. );
  4664. //把返回的方案明细放入展示数据对象中
  4665. this.accidentFormZM = Object.assign(this.accidentFormZM, data);
  4666. this.accidentFormZM.quantity = "1";
  4667. if (data && data.son) {
  4668. this.accidentPremiumZM = data.sumPremium;
  4669. this.zhongmeiInsuranceDataTable = data.son;
  4670. }
  4671. },
  4672. // 截图粘贴
  4673. copybjd() {
  4674. let that = this;
  4675. html2Canvas(document.getElementById("pdfContentsDiv"), {
  4676. allowTaint: true,
  4677. taintTest: false,
  4678. }).then(function (canvas) {
  4679. let base64Data = "";
  4680. // let blob = null
  4681. base64Data = canvas.toDataURL("image/png", 1);
  4682. const date = new Date();
  4683. const saveInfo = {
  4684. download: date.getTime() + `.png`,
  4685. href: base64Data,
  4686. };
  4687. const element = document.createElement("a");
  4688. element.style.display = "none";
  4689. for (const key in saveInfo) {
  4690. element.setAttribute(key, saveInfo[key]);
  4691. }
  4692. document.body.appendChild(element);
  4693. element.click();
  4694. setTimeout(() => {
  4695. document.body.removeChild(element);
  4696. }, 300);
  4697. // var format = 'image/png'
  4698. // //将Base64图片编码转换成blob
  4699. // var base64 = base64Data
  4700. // var code = window.atob(base64.split(',')[1])
  4701. // var aBuffer = new window.ArrayBuffer(code.length)
  4702. // var uBuffer = new window.Uint8Array(aBuffer)
  4703. // for (var i = 0; i < code.length; i++) {
  4704. // uBuffer[i] = code.charCodeAt(i) & 0xff
  4705. // }
  4706. // try {
  4707. // blob = new Blob([uBuffer], { type: format })
  4708. // } catch (e) {
  4709. // window.BlobBuilder =
  4710. // window.BlobBuilder ||
  4711. // window.WebKitBlobBuilder ||
  4712. // window.MozBlobBuilder ||
  4713. // window.MSBlobBuilder
  4714. // if (e.name == 'TypeError' && window.BlobBuilder) {
  4715. // var bb = new window.BlobBuilder()
  4716. // bb.append(uBuffer.buffer)
  4717. // blob = bb.getBlob('image/png')
  4718. // } else if (e.name == 'InvalidStateError') {
  4719. // blob = new Blob([aBuffer], { type: format })
  4720. // }
  4721. // }
  4722. // const clipboardItemInput = new ClipboardItem({
  4723. // 'image/png': blob,
  4724. // })
  4725. // that.$copyText({
  4726. // 'image/png': blob,
  4727. // }).then(
  4728. //   function(e) {
  4729. //     console.log("copy arguments e:", e);
  4730. //     alert("复制成功!");
  4731. //   },
  4732. //   function(e) {
  4733. //     console.log("copy arguments e:", e);
  4734. //     alert("复制失败!");
  4735. //   }
  4736. //   ),
  4737. // navigator.clipboard.write([clipboardItemInput])
  4738. // that.$message({
  4739. // message: '已截图并复制到粘贴板!',
  4740. // type: 'success'
  4741. // });
  4742. });
  4743. },
  4744. propertyTpe(val){
  4745. this[val].identifyType=this[val].property=='0'?'10':'01'
  4746. },
  4747. // 即时起保
  4748. immediatelyChange(e) {
  4749. if (e) {
  4750. this.immediatelyValue = true;
  4751. const date = new Date();
  4752. date.setHours(date.getHours() + 2);
  4753. date.setMinutes(0);
  4754. date.setSeconds(0);
  4755. this.jqstartDate = date;
  4756. this.jqendDate = this.oneYearPast1(date);
  4757. } else {
  4758. this.immediatelyValue = false;
  4759. this.jqstartDate = this.transformTime1();
  4760. this.jqendDate = this.oneYearPast1(this.jqstartDate);
  4761. }
  4762. },
  4763. // 使用性质方法
  4764. natureFun() {
  4765. if (this.carInfo.carnature == "01") {
  4766. this.carInfo.vehicleUse = "";
  4767. }
  4768. },
  4769. // 点击同步报价后的时间
  4770. syncData(item) {
  4771. this.jqstartDate = item.startDateJq ? item.startDateJq : this.jqstartDate;
  4772. this.jqendDate = item.endDateJq ? item.endDateJq : this.endDateJq;
  4773. this.systartDate = item.startDateSy ? item.startDateSy : this.systartDate;
  4774. this.syendDate = item.endDateSy ? item.endDateSy : this.syendDate;
  4775. },
  4776. //纳税类型事件
  4777. taxRelifFlagChange(val) {
  4778. if (val == 4) {
  4779. citydata.rawCitiesData.map((val) => {
  4780. this.provinceSelect.push({
  4781. name: val.name,
  4782. code: val.code,
  4783. });
  4784. return val;
  4785. });
  4786. }
  4787. },
  4788. //身份证前六位识别地区
  4789. // getAreaByCode(code) {
  4790. // let list = regionData;
  4791. // let provinceCode = code.substring(0, 2);
  4792. // let cityCode = code.substring(0, 4);
  4793. // let areaCode = code.substring(0, 6);
  4794. // // 获取省份信息
  4795. // let province = list.filter(function (item) {
  4796. // return item.value === provinceCode;
  4797. // });
  4798. // // 获取城市信息
  4799. // let city = province[0].children.filter(function (item) {
  4800. // return item.value === cityCode;
  4801. // });
  4802. // if (city.length > 0) {
  4803. // // 获取区/县信息
  4804. // let area = city[0].children.filter(function (item) {
  4805. // return item.value === areaCode;
  4806. // });
  4807. // return province[0].label + city[0].label + area[0].label;
  4808. // }
  4809. // },
  4810. //--数据字典 begin --
  4811. getDicType(type) {
  4812. this.$api.insCompany.dicType(type).then((res) => {
  4813. if (res.code == 200) {
  4814. if (type == "insOrderStatus") {
  4815. let data = JSON.parse(JSON.stringify(res.data.ddList));
  4816. data.unshift({
  4817. dictTag: "全部",
  4818. dictValue: "888",
  4819. });
  4820. this[type + "options"] = data;
  4821. } else {
  4822. this[type + "options"] = res.data.ddList;
  4823. }
  4824. }
  4825. });
  4826. },
  4827. //身份证失去焦点
  4828. identifyblur(info) {
  4829. this[info].age =typeof getAgeByIdCard(this[info].identifyNumber)=='number' ?getAgeByIdCard(this[info].identifyNumber):'';
  4830. this[info].gender = getGenderByIdCard(this[info].identifyNumber);
  4831. },
  4832. //车主信息选择性别
  4833. genderChange(e) {
  4834. if (this.tbczcarShow) {
  4835. this.policyHolderInfo.gender = e;
  4836. } else if (this.bbczcarShow) {
  4837. this.insuredPersonInfo.gender = e;
  4838. }
  4839. },
  4840. //省市区
  4841. areahandleChange(event, info) {
  4842. if (event[0] != null && event[1] != null && event[2] != null) {
  4843. this[info].province = event[0]
  4844. this[info].city = event[1]
  4845. this[info].county = event[2]
  4846. }
  4847. },
  4848. iconfftter(icon) {
  4849. return CommonUtil.getDataName({
  4850. dataList: this.global.insCompanyList,
  4851. value: "name",
  4852. label: "icon",
  4853. data: icon,
  4854. });
  4855. },
  4856. disabledDate(time) {
  4857. let datetime = this.carInfo.registerDate;
  4858. return time.getTime() < new Date(datetime).getTime();
  4859. },
  4860. onScroll() {
  4861. // 变量scrollTop是滚动条滚动时,滚动条上端距离顶部的距离
  4862. var scrollTop =
  4863. document.documentElement.scrollTop || document.body.scrollTop;
  4864. // 变量windowHeight是可视区的高度
  4865. var windowHeight =
  4866. document.documentElement.clientHeight || document.body.clientHeight;
  4867. // 变量scrollHeight是滚动条的总高度(当前可滚动的页面的总高度)
  4868. var scrollHeight =
  4869. document.documentElement.scrollHeight || document.body.scrollHeight;
  4870. // 滚动条到底部
  4871. if (Math.ceil(scrollTop + windowHeight) >= scrollHeight) {
  4872. this.isBottom = true;
  4873. } else {
  4874. this.isBottom = false;
  4875. }
  4876. },
  4877. pinganInsuranceChange(index, index1, val) {
  4878. if (!index) {
  4879. return;
  4880. }
  4881. this.accidentFormPA[index1].pingantemplateSelection = index;
  4882. this.accidentFormPA[index1].projectName = index
  4883. val.map(val1 => {
  4884. if (val1.projectName == index) {
  4885. val1.son.forEach(val3 => {
  4886. val3.quantity = '1'
  4887. })
  4888. this.accidentFormPA[index1].pinganInsuranceDataTable = val1.son
  4889. this.accidentFormPA[index1].projectCode = val1.projectCode
  4890. }
  4891. })
  4892. console.log(this.accidentFormPA[index1], index, 4444444444);
  4893. // this.accidentFormPA[index1].projectCode=this.pinganInsuranceData.find(val1=>{
  4894. // // val1.map(
  4895. // // (val) => val.projectName == index
  4896. // // ).projectCode
  4897. // }
  4898. // )
  4899. // this.accidentFormPA[index1].pinganInsuranceDataTable = this.pinganInsuranceData.find(
  4900. // (val) => val.projectName == index
  4901. // ).son;
  4902. },
  4903. taikangInsuranceChange(index) {
  4904. if (index) {
  4905. this.TkDrivingChange(
  4906. this.taikangaccidentDataList.find((val) => val.projectCode == index)
  4907. );
  4908. }
  4909. if (!index) {
  4910. return;
  4911. }
  4912. this.taikangtemplateSelection = index;
  4913. this.accidentFormTk = Object.assign(
  4914. this.accidentFormTk,
  4915. this.taikangaccidentDataList.find((val) => val.projectCode == index)
  4916. );
  4917. this.taikangaccidentDataList
  4918. .find((val) => val.projectCode == index)
  4919. .son.forEach((item) => {
  4920. item.sumAmount =
  4921. Number(item.amount) * Number(this.accidentFormTk.seatNum);
  4922. });
  4923. this.taikangInsuranceDataTable = this.taikangaccidentDataList.find(
  4924. (val) => val.projectCode == index
  4925. ).son;
  4926. this.accidentPremiumTk = this.accidentFormTk.sumPremium;
  4927. },
  4928. anshengInsuranceChange(index) {
  4929. this.anshengtemplateSelection = index;
  4930. let data = this.anshengInsuranceData.find(
  4931. (val) => val.projectCode == index
  4932. );
  4933. this.anshengaccidentalDrivingVo.parentName = data.projectName;
  4934. this.anshengaccidentalDrivingVo.parentCode = data.projectCode;
  4935. this.anshengInsuranceDataTable = [];
  4936. this.anshengInsuranceDataTable = data.children;
  4937. this.anshengInsuranceDataTable.forEach((e) => (e.quantity = "1"));
  4938. },
  4939. hengbangInsuranceChange(index) {
  4940. this.hengbangInsuranceDataTable = this.hengbangInsuranceData.find(
  4941. (val) => val.projectCode == index
  4942. ).son;
  4943. this.hengbangtemplateSelection = index;
  4944. if (this.hengbangInsuranceDataTable.length) {
  4945. this.hengbangaccidentalDrivingVo = this.hengbangInsuranceData.find(
  4946. (val) => val.projectCode == index
  4947. );
  4948. }
  4949. },
  4950. chengtaiInsuranceChange(index) {
  4951. this.chengtaiInsuranceDataTable = this.chengtaiInsuranceData.find(
  4952. (val) => val.projectCode == index
  4953. ).son;
  4954. this.chengtaitemplateSelection = index;
  4955. if (this.chengtaiInsuranceDataTable.length) {
  4956. this.chengtaiaccidentalDrivingVo = this.chengtaiInsuranceData.find(
  4957. (val) => val.projectCode == index
  4958. );
  4959. }
  4960. },
  4961. huanongInsuranceChange(index) {
  4962. this.huanongInsuranceDataTable = this.huanongInsuranceData.find(
  4963. (val) => val.projectCode == index
  4964. ).son;
  4965. this.accidentFormHN.accidentType = index;
  4966. this.huanongaccidentalDrivingVo = Object.assign(
  4967. this.huanongInsuranceData.find((val) => val.projectCode == index),
  4968. this.accidentFormHN
  4969. );
  4970. },
  4971. taipingInsuranceChange(index) {
  4972. this.taipingtemplateSelection = index;
  4973. this.taipingInsuranceDataTable = this.taipingInsuranceData.find(
  4974. (val) => val.projectCode == index
  4975. ).son;
  4976. if (
  4977. this.taipingInsuranceDataTable &&
  4978. this.taipingInsuranceDataTable.length
  4979. ) {
  4980. this.taipingaccidentalDrivingVo = this.taipingInsuranceData.find(
  4981. (val) => val.projectCode == index
  4982. );
  4983. }
  4984. },
  4985. zijinInsuranceChange(index) {
  4986. this.zijintemplateSelection = index;
  4987. this.zijinInsuranceDataTable = [];
  4988. this.$refs.expandTable[0].clearSelection();
  4989. index.forEach((item) => {
  4990. this.zijinInsuranceDataTable.push(
  4991. this.ziJinInsuranceData.find((val) => val.projectCode == item)
  4992. );
  4993. });
  4994. this.zijinInsuranceDataTable.forEach((item) => {
  4995. this.$nextTick(() => {
  4996. this.$refs.expandTable[0].toggleRowSelection(item);
  4997. });
  4998. });
  4999. this.CheckboxChange(this.zijinInsuranceDataTable);
  5000. },
  5001. renshouInsuranceChange(index) {
  5002. // this.renshouInsuranceDataTable = [
  5003. // this.renshouInsuranceData.find(val => val.projectCode == index)
  5004. // ];
  5005. this.renshoutemplateSelection = index;
  5006. this.renshouInsuranceDataTable = this.renshouInsuranceData.find(
  5007. (val) => val.projectCode == index
  5008. ).son;
  5009. if (index) {
  5010. this.RSDrivingChange(
  5011. this.renshouInsuranceData.find((val) => val.projectCode == index)
  5012. );
  5013. }
  5014. },
  5015. async dajiaInsuranceChange(index) {
  5016. this.dajiaaccidentalDrivingVo = {};
  5017. let data = await this.$api.letter.accidentalDrivingInfo(index);
  5018. if (data.code == 200) {
  5019. this.dajiaaccidentalDrivingVo = {
  5020. rideRiskCode: index,
  5021. rideRiskName: this.dajiaInsuranceData.find((val) => val.id == index)
  5022. .productName,
  5023. quantity: "1",
  5024. };
  5025. this.dajiaInsuranceDataTable = data.data;
  5026. }
  5027. },
  5028. zhonganInsuranceChange(index) {
  5029. this.zhongantemplateSelection = index;
  5030. this.zhonganInsuranceDataTable = this.zhonganInsuranceData.find(
  5031. (val) => val.projectCode == index
  5032. ).son;
  5033. if (index) {
  5034. this.ZADrivingChange(
  5035. this.zhonganInsuranceData.find((val) => val.projectCode == index)
  5036. );
  5037. }
  5038. },
  5039. // 渤海选择意外险类型
  5040. async bohaiInsuranceChange(index) {
  5041. if (index) {
  5042. this.boHaiaccidentForm.projectCode = index;
  5043. // this.boHaiaccidentForm.projectName = this.dajiaInsuranceData.find(
  5044. // (e) => e.projectCode == index
  5045. // ).projectName;
  5046. this.boHaiaccidentForm.copies = "1";
  5047. this.boHaiaccidentForm.premium = Number(
  5048. this.boHaiaccidentDataList.find((e) => e.projectCode == index).sumPremium
  5049. );
  5050. this.bohaiInsuranceDataTable = this.boHaiaccidentDataList.find(
  5051. (e) => e.projectCode == index
  5052. ).son;
  5053. // let data = await this.$api.letter.productDetailsQueryboHai({
  5054. // projectCode: index,
  5055. // productCode: this.boHaiaccidentDataList.find(
  5056. // (e) => e.packageCode == index
  5057. // ).productCode,
  5058. // agreementId: this.boHaiaccidentForm.agreementId,
  5059. // });
  5060. // if (data.code == 200 && data.data) {
  5061. // this.accidentLoadingbh = false;
  5062. // this.bohaiInsuranceDataTable = data.data;
  5063. // } else {
  5064. // this.$message.error(data.msg);
  5065. // this.bohaiInsuranceDataTable = [];
  5066. // }
  5067. }
  5068. },
  5069. djcxchange(index) {
  5070. if (index) {
  5071. this.dajiaaccidentForm.parentCode = index;
  5072. this.dajiaaccidentForm.quantity = "1";
  5073. this.dajiaaccidentForm.prodCode = "";
  5074. this.dajiaaccidentDataListChild = this.dajiaInsuranceData.find(
  5075. (e) => e.projectCode == index
  5076. ).children;
  5077. this.dajiaaccidentalDrivingVo.parentName = this.dajiaInsuranceData.find(
  5078. (e) => e.projectCode == index
  5079. ).projectName;
  5080. this.dajiaaccidentalDrivingVo.parentCode = this.dajiaInsuranceData.find(
  5081. (e) => e.projectCode == index
  5082. ).projectCode;
  5083. }
  5084. },
  5085. djcxchangeChild(index) {
  5086. if (index) {
  5087. let list = this.dajiaaccidentDataListChild.find(
  5088. (val) => val.projectCode == index
  5089. );
  5090. this.dajiaaccidentForm = {
  5091. ...this.dajiaaccidentForm,
  5092. prodCode: index,
  5093. projectName: list.projectName,
  5094. sumAmount: Number(list.sumAmount),
  5095. riskCode: list.riskCode,
  5096. sumPremium: Number(list.sumPremium),
  5097. };
  5098. list.productId = list.id;
  5099. this.dajiaInsuranceDataTable = list.son;
  5100. this.dajiaaccidentalDrivingVo = Object.assign({
  5101. ...this.dajiaaccidentalDrivingVo,
  5102. ...list,
  5103. });
  5104. } else {
  5105. this.dajiaInsuranceDataTable = [];
  5106. }
  5107. },
  5108. // 国任选择意外险类型
  5109. async grcxchange(index) {
  5110. if (index) {
  5111. this.accidentLoading = true;
  5112. this.guoRenaccidentForm.goodsCode = index;
  5113. this.guoRenaccidentForm.quantity = "1";
  5114. this.guoRenaccidentForm.prodCode = "";
  5115. this.guoRenaccidentDataListChild = this.guoRenaccidentDataList.find(
  5116. (e) => e.projectCode == index
  5117. ).children;
  5118. this.guoRenaccidentalDrivingVo.parentName =
  5119. this.guoRenaccidentDataList.find(
  5120. (e) => e.projectCode == index
  5121. ).projectName;
  5122. this.guoRenaccidentalDrivingVo.parentCode =
  5123. this.guoRenaccidentDataList.find(
  5124. (e) => e.projectCode == index
  5125. ).projectCode;
  5126. // let data = await this.$api.letter.syncNonAutoInsGuoren({
  5127. // goodsCode: index,
  5128. // agreementId: this.guoRenaccidentForm.agreementId
  5129. // });
  5130. // if (data.code == 200) {
  5131. // let num = 0;
  5132. // data.data.forEach(item => {
  5133. // num += Number(item.premium);
  5134. // });
  5135. // this.accidentLoading = false;
  5136. // } else {
  5137. // this.accidentLoading = false;
  5138. // this.$message.error(data.msg);
  5139. // this.guoRenaccidentDataListChild = [];
  5140. // }
  5141. }
  5142. },
  5143. // 国任选择意外险子级类型
  5144. async grcxchangeChild(index) {
  5145. let list = this.guoRenaccidentDataListChild.find(
  5146. (val) => val.projectCode == index
  5147. );
  5148. this.guoRenaccidentForm = {
  5149. ...this.guoRenaccidentForm,
  5150. prodCode: index,
  5151. policyNum: Number(list.sumPremium),
  5152. riskCode: list.riskCode,
  5153. // amount: list.amount,
  5154. sumPremium: Number(list.sumPremium),
  5155. // appnum:Number(list.appnum)
  5156. };
  5157. this.guoRenInsuranceDataTable = list.son;
  5158. this.guoRenaccidentalDrivingVo = Object.assign({
  5159. ...list,
  5160. ...this.guoRenaccidentalDrivingVo,
  5161. });
  5162. },
  5163. // 选择意外险类型
  5164. async yongchengInsuranceChange(index) {
  5165. if (!index) {
  5166. return;
  5167. }
  5168. this.yongchengtemplateSelection = index;
  5169. this.accidentForm = Object.assign(
  5170. this.accidentForm,
  5171. this.yongchengaccidentDataList.find((val) => val.projectCode == index)
  5172. );
  5173. this.yongchengaccidentDataList
  5174. .find((val) => val.projectCode == index)
  5175. .son.forEach((item) => {
  5176. item.sumAmount =
  5177. Number(item.amount) * Number(this.accidentForm.seatNum);
  5178. });
  5179. this.yongchengInsuranceDataTable = this.yongchengaccidentDataList.find(
  5180. (val) => val.projectCode == index
  5181. ).son;
  5182. this.accidentPremium = this.accidentForm.sumPremium;
  5183. // this.accidentForm.fen = "1";
  5184. // let data = await this.$api.letter.ycgainAccidentSchemeList({
  5185. // companyCode: this.accidentForm.companyId,
  5186. // code: index,
  5187. // agreementId: this.accidentForm.agreementId,
  5188. // seatNum: Number(this.carInfo.seatCount)
  5189. // });
  5190. // if (data.code == 200) {
  5191. // let num = 0;
  5192. // data.data.forEach(item => {
  5193. // num += Number(item.premium);
  5194. // });
  5195. // this.accidentPremium = num;
  5196. // this.accidentForm.premium = num;
  5197. // this.accidenttableData = data.data;
  5198. // }
  5199. },
  5200. numberCopieschange(index) {
  5201. this.accidentForm.sumPremium = Number(this.accidentPremium) * index;
  5202. },
  5203. numberCopieschangeTk(index) {
  5204. this.accidentFormTk.sumPremium = Number(this.accidentPremiumTk) * index;
  5205. },
  5206. numberCopieschangePA(index, index1) {
  5207. this.accidentFormPA.premium = Number(this.accidentFormPA[index1].accidentPremiumPA) * index;
  5208. },
  5209. numberCopieschangeZM(index) {
  5210. this.accidentFormZM.sumPremium = Number(this.accidentPremiumZM) * index;
  5211. },
  5212. numberCopieschangeGR(index) {
  5213. this.guoRenaccidentForm.sumPremium =
  5214. Number(this.guoRenaccidentForm.policyNum) * index;
  5215. },
  5216. continuousChange(id) {
  5217. this.continuousCompanyList.map((ele) => {
  5218. if (ele.id == id) {
  5219. this.attributionform.configure = [];
  5220. ele.configure.map((ele, index) => {
  5221. this.attributionform.configure.push({
  5222. field: ele.field,
  5223. isEdit: ele.isEdit,
  5224. label: ele.label,
  5225. type: ele.type,
  5226. value: "",
  5227. });
  5228. });
  5229. }
  5230. });
  5231. },
  5232. //续保查询
  5233. continuousquery() {
  5234. this.$api.letter.queryRenewal(this.attributionform).then((res) => {
  5235. if (res.code == "200") {
  5236. this.carInfo = res.data.carInfo;
  5237. this.ownerInfo = res.data.ownerInfo;
  5238. this.policyHolderInfo = res.data.policyHolderInfo;
  5239. this.insuredPersonInfo = res.data.insuredPersonInfo;
  5240. res.data.riskList.map((ele) => {
  5241. if (ele.riskCode == "0507") {
  5242. this.jqchecked = true;
  5243. this.jqstartDate = ele.startDate;
  5244. this.jqendDate = ele.endDate;
  5245. } else if (ele.riskCode == "0510") {
  5246. this.sychecked = true;
  5247. this.systartDate = ele.startDate;
  5248. this.syendDate = ele.endDate;
  5249. }
  5250. county;
  5251. });
  5252. } else {
  5253. this.$message({
  5254. message: res.msg,
  5255. type: "error",
  5256. duration: 2000,
  5257. });
  5258. }
  5259. });
  5260. },
  5261. //永诚转保
  5262. renewalCodeconfirm() {
  5263. this.renewalCodedialogVisible = false;
  5264. this.quote();
  5265. },
  5266. //报价轨迹查询
  5267. RadioHistoryChange(e) {
  5268. let params = {
  5269. orderNo: this.orderno,
  5270. orderStatus: e == 888 ? "" : e,
  5271. };
  5272. this.$api.letter.queryQuoteHistory(params).then((res) => {
  5273. res.data.forEach((item) => {
  5274. if (item.accidentInfo) {
  5275. item.accidentInfo.constructor === Object
  5276. ? [item.accidentInfo]
  5277. : item.accidentInfo;
  5278. }
  5279. });
  5280. this.HistoryList = res.data;
  5281. });
  5282. },
  5283. protocolJudge(val, val1) {
  5284. if (val1) {
  5285. this.totalCompanyList.forEach((e) => {
  5286. if (
  5287. e.agreement.find(
  5288. (el) => el.productsCode && el.productsCode.includes(val)
  5289. )
  5290. ) {
  5291. e.agreement.find(
  5292. (el) => el.productsCode && el.productsCode.includes(val)
  5293. ).disabled = true;
  5294. }
  5295. });
  5296. } else {
  5297. this.totalCompanyList.forEach((e) => {
  5298. if (
  5299. e.agreement.find(
  5300. (el) => el.productsCode && el.productsCode.includes(val)
  5301. )
  5302. ) {
  5303. e.agreement.find(
  5304. (el) => el.productsCode && el.productsCode.includes(val)
  5305. ).disabled = false;
  5306. }
  5307. });
  5308. }
  5309. },
  5310. async obtainProtocol(data) {
  5311. let res = {};
  5312. if (this.isLetter == "1") {
  5313. res = await this.$api.letter.getAllAgreement();
  5314. }
  5315. if (this.isLetter == "2") {
  5316. res = await this.$api.letter.getAllAgreementByUserId({
  5317. userId: this.userId,
  5318. });
  5319. }
  5320. if (this.isLetter == "3") {
  5321. this.userId = data ? data.userid : this.userId;
  5322. res = await this.$api.letter.getExternalAgreement();
  5323. }
  5324. if (res.code == 200) {
  5325. res.data.map((ele) => {
  5326. ele["result"] = {};
  5327. ele["quoteCode"] = 0;
  5328. ele["checked"] = false;
  5329. ele["msg"] = "";
  5330. ele["lastYearMsg"] = "";
  5331. ele["agreementId"] = "";
  5332. ele["apiType"] = "";
  5333. ele["orderstatus"] = 0;
  5334. ele.coefficient = "";
  5335. ele['isInspect'] = false;
  5336. // ele.agreementId = ele.agreement[0].id;
  5337. // ele.apiType = ele.agreement[0].apiType;
  5338. ele.underwritingDescription =
  5339. ele.agreement[0].underwritingDescription;
  5340. if (ele.isTaxSource && ele.isTaxSource == "1") {
  5341. ele.agreement.forEach((val) => {
  5342. if (val.isTaxSource && val.isTaxSource == "1") {
  5343. ele.agreementId = val.id;
  5344. ele.apiType = val.apiType;
  5345. }
  5346. });
  5347. }
  5348. });
  5349. if (data) {
  5350. res.data.forEach((val, index) => {
  5351. data.insAreaCompanyEditingDtos.forEach((ele) => {
  5352. if (val.namesimple == ele.inscompany) {
  5353. if (["中国人寿", "诚泰财险"].includes(ele.inscompany) && ele.companyId) {
  5354. this.lastCompanyId = ele.companyId;
  5355. }
  5356. res.data[index].quoteCode = 200;
  5357. res.data[index].result = ele;
  5358. }
  5359. });
  5360. });
  5361. }
  5362. // //险种合并集合
  5363. }
  5364. const combinedArray = [
  5365. ...this.riskList.map(item => item.riskCode),
  5366. ...this.kindList.map(item => item.kindCode),
  5367. ];
  5368. res.data = res.data.filter(obj => {
  5369. obj.agreement = obj.agreement.filter(agreementObj => {
  5370. // 险种配置为空,则过滤掉该协议
  5371. if (agreementObj.productsCodes == null) {
  5372. return true;
  5373. } else {
  5374. // 检查是否包含 A 的特殊处理
  5375. if (combinedArray.includes('A') && !agreementObj.productsCodes.includes(
  5376. 'A')) {
  5377. return false;
  5378. }
  5379. return agreementObj.productsCodes.some(item => combinedArray.includes(
  5380. item));
  5381. }
  5382. });
  5383. return obj.agreement.length > 0; // 返回true保留,返回false移除该保险公司
  5384. });
  5385. res.data.forEach((e) => {
  5386. e.agreement.forEach((el) => (el.disabled = false));
  5387. });
  5388. //this.totalCompanyList = res.data;
  5389. this.totalCompanyListBak =res.data;
  5390. },
  5391. //获取保险公司列表
  5392. // commpanyList() {
  5393. // this.$api.letter.gainAllowQuoteList("").then(res => {
  5394. // res.data.map(ele => {
  5395. // ele["result"] = {};
  5396. // ele["quoteCode"] = 0;
  5397. // ele["checked"] = false;
  5398. // ele["msg"] = "";
  5399. // ele["lastYearMsg"] = "";
  5400. // ele["agreementId"] = "";
  5401. // ele["apiType"] = "";
  5402. // ele["orderstatus"] = 0;
  5403. // ele.coefficient = "";
  5404. // // ele.agreementId = ele.agreement[0].id;
  5405. // ele.apiType = ele.agreement[0].apiType;
  5406. // ele.underwritingDescription =
  5407. // ele.agreement[0].underwritingDescription;
  5408. // });
  5409. // if (this.$route.query.data) {
  5410. // res.data.forEach((val, index) => {
  5411. // this.$route.query.data.insAreaCompanyEditingDtos.forEach(ele => {
  5412. // if (val.namesimple == ele.inscompany) {
  5413. // res.data[index].quoteCode = 200;
  5414. // res.data[index].result = ele;
  5415. // }
  5416. // });
  5417. // });
  5418. // }
  5419. // this.totalCompanyList = res.data;
  5420. // });
  5421. // },
  5422. Payment(id, item) {
  5423. this.carcode(id, item);
  5424. },
  5425. /**
  5426. // 获取出口费用
  5427. getExternalOrderFee(agreementId, riskList, kindList) {
  5428. let data = {
  5429. agreementId: agreementId,
  5430. risks: riskList,
  5431. kinds: kindList,
  5432. userId: this.userId,
  5433. jqPremium: this.policyNumberForm.jqpremium,
  5434. jqRadio: this.policyNumberForm.jqCostsProportion,
  5435. syPremium: this.policyNumberForm.sypremium,
  5436. syRadio: this.policyNumberForm.syCostsProportion,
  5437. jyPremium: this.policyNumberForm.jypremium,
  5438. jyRadio: this.policyNumberForm.noCostsProportion,
  5439. }
  5440. this.$api.letter.externalOrderFee(data).then((res) => {
  5441. if (res.code == 200) {
  5442. this.policyNumberForm.JqExportFee = res.data.jqExportRadio
  5443. this.policyNumberForm.syExportFee = res.data.syExportRadio
  5444. this.policyNumberForm.noExportFee = res.data.noExportRadio
  5445. console.log(res.data.jqExportRadio, res.data.syExportRadio, res.data.noExportRadio, '111111111111111111')
  5446. this.$forceUpdate()
  5447. } else {
  5448. this.$message.error(res.msg)
  5449. }
  5450. })
  5451. },
  5452. // 现询
  5453. getInquiryNowList(agreementId, riskList, kindList) {
  5454. let productId = ''
  5455. this.inquiryNowList = []
  5456. this.$api.letter.getProductId({
  5457. riskList: riskList,
  5458. kindList: kindList
  5459. }).then((res) => {
  5460. if (res.code == 200) {
  5461. productId = res.data
  5462. this.$api.letter.getInquiryNowFee({
  5463. agreementId: agreementId,
  5464. productId: productId
  5465. }).then((resp) => {
  5466. if (resp.code == 200) {
  5467. this.inquiryNowList = resp.data
  5468. }
  5469. })
  5470. }
  5471. })
  5472. },
  5473. inquiryNowListChange(data) {
  5474. if (data) {
  5475. this.nowCostsId = data // 现询id
  5476. this.isInquiryNowDisable = true
  5477. this.inquiryNowList.forEach((val) => {
  5478. if (val.id == data) {
  5479. this.policyNumberForm.jqCostsProportion = val.jqCostsProportion
  5480. this.policyNumberForm.noCostsProportion = val.noCostsProportion
  5481. this.policyNumberForm.syCostsProportion = val.syCostsProportion
  5482. }
  5483. })
  5484. } else {
  5485. this.nowCostsId = ''
  5486. this.isInquiryNowDisable = false
  5487. this.policyNumberForm.jqCostsProportion = ''
  5488. this.policyNumberForm.noCostsProportion = ''
  5489. this.policyNumberForm.syCostsProportion = ''
  5490. }
  5491. },
  5492. **/
  5493. /**
  5494. //选择协议 val:协议id row:协议列表 index:下标 item:保险公司数据集合
  5495. agreementChange(val, row, index, item) {
  5496. this.getInquiryNowList(val, this.riskList, this.kindList)
  5497. this.getExternalOrderFee(val, this.riskList, this.kindList)
  5498. this.kindListFun();
  5499. if (this.isLetter == "3") {
  5500. this.isLetter3agreementId = "";
  5501. this.isLetter3agreementId = item.agreementId;
  5502. }
  5503. let obj = {};
  5504. obj = row.find((item) => {
  5505. return item;
  5506. });
  5507. let selectRow = row.find((item) => {
  5508. return item.id == val;
  5509. });
  5510. let info = row.find((ele) => ele.id == val);
  5511. this.totalCompanyList[index].apiType = info.apiType;
  5512. this.totalCompanyList[index].underwritingDescription = val
  5513. ? selectRow.underwritingDescription
  5514. : ""; //重新赋值修改选中协议承保描述
  5515. if (this.$route.path != "/task/external/externalOrders")
  5516. if (item.namesimple == "平安财险") {
  5517. this.$api.letter.getPingAnDrivingInsuranceRule({
  5518. cimodelclass: this.carInfo.cimodelclass,
  5519. isUseCombine: 'Y',
  5520. tonNumber: this.carInfo.limitLoad,
  5521. ownAttribute: '03',
  5522. useAttribute: this.carInfo.carnature,
  5523. ruleSeatNum: Number(this.carInfo.seatCount),
  5524. agreementId: item.agreementId,
  5525. }).then(res => {
  5526. this.pinganInsuranceData = res.data;
  5527. })
  5528. return
  5529. }
  5530. // this.$api.letter
  5531. // .getDrivingInsuranceRule({
  5532. // companyCode: item.id,
  5533. // agreementId: item.agreementId,
  5534. // seatNum:
  5535. // item.namesimple == "永诚财险" || item.namesimple == "中煤财险"
  5536. // ? Number(this.carInfo.seatCount)
  5537. // : "",
  5538. // ruleUseNature: this.carInfo.carnature,
  5539. // ruleSeatNum: Number(this.carInfo.seatCount),
  5540. // risk: this.riskList,
  5541. // kind: this.kindList,
  5542. // ruleThirdPartyInsurance: this.insureList[1].amount,
  5543. // })
  5544. // .then((res) => {
  5545. // if (res.code == 200) {
  5546. // this.nonVehicle(res.data, item.cnName);
  5547. // switch (item.namesimple) {
  5548. // case "永诚财险":
  5549. // this.yongchengaccidentDataList = res.data;
  5550. // break;
  5551. // case "国任财险":
  5552. // this.guoRenaccidentDataList = res.data;
  5553. // break;
  5554. // case "渤海财险":
  5555. // this.boHaiaccidentDataList = res.data;
  5556. // break;
  5557. // case "中煤财险":
  5558. // this[item.cnName + +"InsuranceData"] = res.data;
  5559. // break;
  5560. // case "紫金财险":
  5561. // let data = res.data;
  5562. // data.map((ele) => {
  5563. // ele.quantity = 1;
  5564. // return ele;
  5565. // });
  5566. // this.ziJinInsuranceData = data;
  5567. // break;
  5568. // case "大家财险":
  5569. // this.dajiaInsuranceData = res.data;
  5570. // break;
  5571. // case "泰康财险":
  5572. // this.taikangaccidentDataList = res.data;
  5573. // break;
  5574. // case "诚泰财险":
  5575. // case "中国人寿":
  5576. // case "恒邦财险":
  5577. // case "太平财险":
  5578. // case "安盛天平":
  5579. // case "华农财险":
  5580. // case "众安财险":
  5581. // res.data.map((ele) => {
  5582. // ele.quantity = 1;
  5583. // return ele;
  5584. // });
  5585. // this[item.cnName + "InsuranceData"] = res.data;
  5586. // break;
  5587. // }
  5588. // } else {
  5589. // this.$message.error(res.msg);
  5590. // }
  5591. // });
  5592. // switch (item.namesimple) {
  5593. // case "永诚财险":
  5594. // this.accidentForm.agreementId = item.agreementId;
  5595. // this.$api.letter
  5596. // .ycgainAccidentList({
  5597. // companyCode: item.id,
  5598. // agreementId: item.agreementId,
  5599. // seatNum: Number(this.carInfo.seatCount)
  5600. // })
  5601. // .then(res => {
  5602. // if (res.code == 200) {
  5603. // this.accidentDataList = res.data;
  5604. // }
  5605. // });
  5606. // break;
  5607. // case "国任财险":
  5608. // this.guoRenaccidentForm.agreementId = item.agreementId;
  5609. // this.$api.letter
  5610. // .syncNonAutoInsGuoren({ agreementId: item.agreementId })
  5611. // .then(res => {
  5612. // if (res.code == 200) {
  5613. // this.guoRenaccidentDataList = res.data;
  5614. // } else {
  5615. // this.guoRenaccidentDataList = [];
  5616. // }
  5617. // });
  5618. // break;
  5619. // case "渤海财险":
  5620. // this.boHaiaccidentForm.agreementId = item.agreementId;
  5621. // let policyHolderInfo = this.tbczcarShow
  5622. // ? this.ownerInfo
  5623. // : this.policyHolderInfo;
  5624. // let productQueryVo = {
  5625. // agreementId: item.agreementId,
  5626. // carnature: this.carInfo.carnature,
  5627. // cimodelclass: this.carInfo.cimodelclass,
  5628. // exhaustScale: this.carInfo.enginedesc,
  5629. // limitLoad: this.carInfo.limitLoad,
  5630. // powerScale: this.carInfo.powerScale,
  5631. // seatCount: this.carInfo.seatCount,
  5632. // vehicleUse: this.carInfo.vehicleUse,
  5633. // policyHolderInfo,
  5634. // insuredPersonInfo: this.bbczcarShow
  5635. // ? this.ownerInfo
  5636. // : this.bbtbcarShow
  5637. // ? policyHolderInfo
  5638. // : this.insuredPersonInfo
  5639. // };
  5640. // this.$api.letter.productQueryboHai(productQueryVo).then(res => {
  5641. // if (res.code == 200) {
  5642. // this.boHaiaccidentDataList = res.data;
  5643. // } else {
  5644. // this.boHaiaccidentDataList = [];
  5645. // }
  5646. // });
  5647. // break;
  5648. // case "紫金财险":
  5649. // this.$api.letter
  5650. // .zijinqueryVehicleProducts({
  5651. // agreementId: val,
  5652. // seatCount: Number(this.carInfo.seatCount)
  5653. // })
  5654. // .then(res => {
  5655. // if (res.code == 200) {
  5656. // let data = res.data;
  5657. // data.map(ele => {
  5658. // ele.quantity = 1;
  5659. // return ele;
  5660. // });
  5661. // this.ziJinInsuranceData = data;
  5662. // } else {
  5663. // this.$message.error(res.msg);
  5664. // }
  5665. // });
  5666. // break;
  5667. // case "中国人寿":
  5668. // case "恒邦财险":
  5669. // case "太平财险":
  5670. // case "安盛天平":
  5671. // case "华农财险":
  5672. // case "众安财险":
  5673. // this.$api.letter.pythongetDriving({ agreementId: val }).then(res => {
  5674. // if (res.code == 200) {
  5675. // let data = res.data;
  5676. // data.map(ele => {
  5677. // ele.quantity = 1;
  5678. // return ele;
  5679. // });
  5680. // this[item.cnName + "InsuranceData"] = data;
  5681. // }
  5682. // });
  5683. // break;
  5684. // case "大家财险":
  5685. // this.$api.letter
  5686. // .dajiagetDriving({ agreementId: item.agreementId })
  5687. // .then(res => {
  5688. // if (res.code == 200) {
  5689. // this.dajiaInsuranceData = res.data;
  5690. // }
  5691. // });
  5692. // break;
  5693. // default:
  5694. // break;
  5695. // }
  5696. },
  5697. **/
  5698. nonVehicle(data, type) {
  5699. if (data.some((e) => e.isDefault)) {
  5700. if (type == "guoRen") {
  5701. this.grcxchange(data.find((ele) => ele.isDefault).projectCode);
  5702. this.grcxchangeChild(
  5703. data
  5704. .find((ele) => ele.isDefault)
  5705. .children.find((ele) => ele.isDefault).projectCode
  5706. );
  5707. }
  5708. if (type == "ansheng") {
  5709. this.anshengInsuranceChange(
  5710. data.find((ele) => ele.isDefault).projectCode
  5711. );
  5712. this.ASDrivingRadio(
  5713. data
  5714. .find((ele) => ele.isDefault)
  5715. .children.find((ele) => ele.isDefault)
  5716. );
  5717. }
  5718. if (type == "zijin") {
  5719. this[type + "InsuranceChange"]([
  5720. data.find((ele) => ele.isDefault).projectCode,
  5721. ]);
  5722. } else {
  5723. this[type + "InsuranceChange"](
  5724. data.find((ele) => ele.isDefault).projectCode
  5725. );
  5726. }
  5727. }
  5728. },
  5729. CheckboxChange(select, row) {
  5730. this.accidentalDrivingVo = [];
  5731. select.map((val) => {
  5732. this.accidentalDrivingVo.push(val);
  5733. return val;
  5734. });
  5735. },
  5736. //人寿驾意险选择
  5737. RSDrivingChange(row) {
  5738. this.renshouaccidentalDrivingVo = row;
  5739. },
  5740. TkDrivingChange(row) {
  5741. this.taikangaccidentalDrivingVo = row;
  5742. },
  5743. //众安驾意险选择
  5744. ZADrivingChange(row) {
  5745. this.zhonganaccidentalDrivingVo = row;
  5746. },
  5747. RSDrivingRadio(row) {
  5748. this.RSDrivingChange(row);
  5749. },
  5750. //安盛驾意险选择
  5751. ASDrivingRadio(row) {
  5752. this.anshengInsurancetype = row.projectCode;
  5753. this.anshengaccidentalDrivingVo = Object.assign({
  5754. ...this.anshengaccidentalDrivingVo,
  5755. ...row,
  5756. });
  5757. // this.anshengaccidentalDrivingVo.projectCode = row.projectCode;
  5758. // this.anshengaccidentalDrivingVo.projectName = row.projectName;
  5759. },
  5760. pinganDetail(row, agreementId) {
  5761. this.pinganDataDetailVisible = false
  5762. this.$api.letter
  5763. .productDetailsQuery({
  5764. agreementId,
  5765. packageCode: row.code,
  5766. productCode: row.productCode,
  5767. version: row.version,
  5768. })
  5769. .then((res) => {
  5770. if (res.code == 200) {
  5771. this.pinganDataDetailVisible = true
  5772. this.pinganDataDetail = res.data
  5773. }
  5774. else {
  5775. this.$message.err(res.msg)
  5776. }
  5777. });
  5778. },
  5779. sameItem(array1, array2) {
  5780. return array2.find(item => {
  5781. array1.some(innerItem => innerItem.code === item.code)
  5782. }
  5783. );
  5784. },
  5785. PADrivingCheckbox(event, row, agreementId, index) {
  5786. // const checkedVal = this.accidentFormPA[index].pinganInsuranceDataTable.find(x => x.cameraId === item.cameraId)
  5787. const isSelected = event.some(selectedRow => selectedRow.code == row.code);
  5788. let isIndex = null
  5789. let amount = null
  5790. event.find((selectedRow, selectedIndex) => {
  5791. if (selectedRow.code == row.code) {
  5792. isIndex = selectedIndex
  5793. }
  5794. });
  5795. if (event.length > 0 && isSelected) {
  5796. this.$api.letter
  5797. .productDetailsQuery({
  5798. agreementId,
  5799. packageCode: row.code,
  5800. productCode: row.productCode,
  5801. version: row.version,
  5802. })
  5803. .then((res) => {
  5804. if (res.code == 200) {
  5805. res.data.forEach(ele => {
  5806. amount += Number(ele.unitInsuredAmount) ? Number(ele.unitInsuredAmount) : 0
  5807. })
  5808. event[isIndex].amount = amount
  5809. }
  5810. else {
  5811. this.$message.err(res.msg)
  5812. }
  5813. });
  5814. }
  5815. event.forEach((res, indexOf) => {
  5816. res.projectName = this.accidentFormPA[index].projectName
  5817. res.projectCode = this.accidentFormPA[index].projectCode
  5818. res.combineProductType = this.accidentFormPA[index].combineProductType
  5819. })
  5820. this.pinganaccidentalDrivingVo[index] = event
  5821. },
  5822. //平安驾意险选择
  5823. PADrivingRadio(row, agreementId, index) {
  5824. // this.accidentPremiumPA = row.premium;
  5825. this.accidentFormPA[index].quantity = '1';
  5826. this.accidentFormPA[index].sellListSize = Number(row.sellListSize);
  5827. this.accidentFormPA[index].premium = row.premium
  5828. this.accidentFormPA[index].combineProductType = row.combineProductType
  5829. this.accidentFormPA[index].accidentPremiumPA = row.premium
  5830. this.accidentFormPA[index].pinganInsurancetype = row.code;
  5831. this.$api.letter
  5832. .productDetailsQuery({
  5833. agreementId,
  5834. packageCode: row.code,
  5835. productCode: row.productCode,
  5836. version: row.version,
  5837. })
  5838. .then((res) => {
  5839. if (res.code == 200) {
  5840. this.accidentFormPA[index].amount = 0
  5841. res.data.forEach(e => {
  5842. this.accidentFormPA[index].amount += Number(e.unitInsuredAmount) ? Number(e.unitInsuredAmount) : 0
  5843. })
  5844. this.pinganaccidentalDrivingVo[index] = {
  5845. ...row,
  5846. ...this.accidentFormPA[index],
  5847. };
  5848. }
  5849. else {
  5850. this.$message.err(res.msg)
  5851. this.pinganaccidentalDrivingVo[index] = {
  5852. ...row,
  5853. ...this.accidentFormPA[index],
  5854. };
  5855. }
  5856. });
  5857. },
  5858. ZADrivingRadio(row) {
  5859. this.ZADrivingChange(row);
  5860. },
  5861. // 国任特约选择
  5862. contributingGuoRen(id) {
  5863. this.zijinengageListData = [];
  5864. this.contributingLoading = true;
  5865. this.contributingState = true;
  5866. this.hbsubmitdialogVisible = true;
  5867. this.$api.letter
  5868. .guorenqueryClauseData({ agreementId: id })
  5869. .then((res) => {
  5870. this.contributingLoading = false;
  5871. res.data.forEach((val) => {
  5872. val.clauseName = val.clauses;
  5873. val.clauseContent = val.clausesContext;
  5874. });
  5875. this.zijinengageListData = res.data;
  5876. });
  5877. },
  5878. //紫金特约选择
  5879. zijinengageChange(select, row) {
  5880. this.zijinengageList = [];
  5881. select.map((val) => {
  5882. this.zijinengageList.push({
  5883. clauseCode: val.clauseCode,
  5884. clauseName: val.clauseName,
  5885. clauses: val.clauseContent,
  5886. riskCode: val.riskCode,
  5887. });
  5888. return val;
  5889. });
  5890. },
  5891. zijinengageChangeAll(row) {
  5892. if (row) {
  5893. this.zijinengageChange(row);
  5894. } else {
  5895. this.$refs.expandTablePro.clearSelection();
  5896. this.zijinengageList = [];
  5897. }
  5898. },
  5899. //紫金特约内容编辑
  5900. zijincellDblclick(row, column) {
  5901. this.currentCell = row.index + "," + column.index;
  5902. if (
  5903. !["clauseContent"].includes(column.property) &&
  5904. row.modifyFlag == "1"
  5905. ) {
  5906. setTimeout(() => {
  5907. this.$refs[row.index + "," + column.index].focus();
  5908. });
  5909. }
  5910. },
  5911. tableCellClassName({ row, column, rowIndex, columnIndex }) {
  5912. row.index = rowIndex;
  5913. column.index = columnIndex;
  5914. },
  5915. hideInput() {
  5916. this.currentCell = null;
  5917. },
  5918. updateArray(arr, value, condition) {
  5919. if (condition) {
  5920. arr.push(value);
  5921. } else {
  5922. const index = arr.indexOf(value);
  5923. if (index !== -1) {
  5924. arr.splice(index, 1);
  5925. }
  5926. }
  5927. if (arr.length == 0) {
  5928. this.totalCompanyList.forEach((e) => {
  5929. e.disabled = false;
  5930. });
  5931. } else {
  5932. this.totalCompanyList.forEach((e) => {
  5933. e.disabled = e.id == arr[0] ? false : true;
  5934. });
  5935. }
  5936. },
  5937. //勾选保险公司
  5938. initchange(e, code, name, index) {
  5939. if (this.isLetter == "3") {
  5940. this.updateArray(this.isLetter3Arr, code, e);
  5941. if (e) {
  5942. this.totalCompanyList[index].result = JSON.parse(
  5943. JSON.stringify(this.policyNumberForm)
  5944. );
  5945. } else {
  5946. this.totalCompanyList[index].result = [];
  5947. }
  5948. }
  5949. if (e) {
  5950. this.kindListFun();
  5951. let ins = this.totalCompanyList[index].namesimple;
  5952. this.totalCompanyList[index].checked = e;
  5953. this.totalCompanyList[index].underwritingDescription =
  5954. this.totalCompanyList[index].agreement[0].underwritingDescription;
  5955. // if (this.$route.path != "/task/external/externalOrders")
  5956. // this.$api.letter
  5957. // .getDrivingInsuranceRule({
  5958. // agreementId: this.totalCompanyList[index].agreement[0].id,
  5959. // seatNum:
  5960. // ins == "永诚财险" || ins == "中煤财险"
  5961. // ? Number(this.carInfo.seatCount)
  5962. // : "",
  5963. // ruleUseNature: this.carInfo.carnature,
  5964. // ruleSeatNum: Number(this.carInfo.seatCount),
  5965. // risk: this.riskList,
  5966. // kind: this.kindList,
  5967. // ruleThirdPartyInsurance: this.insureList[1].amount,
  5968. // cimodelclass: ins == "平安财险"
  5969. // ? this.carInfo.cimodelclass
  5970. // : "",
  5971. // isUseCombine: ins == "平安财险"
  5972. // ? 'Y'
  5973. // : "",
  5974. // tonNumber: ins == "平安财险"
  5975. // ? this.carInfo.limitLoad
  5976. // : "",
  5977. // ownAttribute: ins == "平安财险"
  5978. // ? '03'
  5979. // : "",
  5980. // useAttribute: ins == "平安财险"
  5981. // ? this.carInfo.carnature
  5982. // : "",
  5983. // })
  5984. // .then((res) => {
  5985. // if (res.code == 200) {
  5986. // switch (ins) {
  5987. // case "永诚财险":
  5988. // this.yongchengaccidentDataList = res.data;
  5989. // break;
  5990. // case "国任财险":
  5991. // this.guoRenaccidentDataList = res.data;
  5992. // break;
  5993. // case "泰康财险":
  5994. // this.taikangaccidentDataList = res.data;
  5995. // break;
  5996. // case "渤海财险":
  5997. // this.boHaiaccidentDataList = res.data;
  5998. // break;
  5999. // case "中煤财险":
  6000. // case "平安财险":
  6001. // this[name + "InsuranceData"] = res.data;
  6002. // break;
  6003. // case "紫金财险":
  6004. // let data = res.data;
  6005. // data.map((ele) => {
  6006. // ele.quantity = 1;
  6007. // return ele;
  6008. // });
  6009. // this.ziJinInsuranceData = data;
  6010. // break;
  6011. // case "大家财险":
  6012. // this.dajiaInsuranceData = res.data;
  6013. // break;
  6014. // case "诚泰财险":
  6015. // case "中国人寿":
  6016. // case "恒邦财险":
  6017. // case "太平财险":
  6018. // case "华农财险":
  6019. // case "安盛天平":
  6020. // case "众安财险":
  6021. // res.data.map((ele) => {
  6022. // ele.quantity = 1;
  6023. // return ele;
  6024. // });
  6025. // this[name + "InsuranceData"] = res.data;
  6026. // break;
  6027. // }
  6028. // this.nonVehicle(res.data, name);
  6029. // } else {
  6030. // this.$message.error(res.msg);
  6031. // }
  6032. // });
  6033. // switch (ins) {
  6034. // case "永诚财险":
  6035. // this.accidentForm.agreementId = this.totalCompanyList[
  6036. // index
  6037. // ].agreement[0].id;
  6038. // this.$api.letter
  6039. // .ycgainAccidentList({
  6040. // companyCode: this.totalCompanyList[index].id,
  6041. // agreementId: this.totalCompanyList[index].agreement[0].id,
  6042. // seatNum: Number(this.carInfo.seatCount)
  6043. // })
  6044. // .then(res => {
  6045. // if (res.code == 200) {
  6046. // this.accidentDataList = res.data;
  6047. // } else {
  6048. // this.accidentDataList = [];
  6049. // }
  6050. // });
  6051. // break;
  6052. // case "国任财险":
  6053. // this.guoRenaccidentForm.agreementId = this.totalCompanyList[
  6054. // index
  6055. // ].agreement[0].id;
  6056. // this.$api.letter
  6057. // .syncNonAutoInsGuoren({
  6058. // goodsCode: "",
  6059. // agreementId: this.totalCompanyList[index].agreement[0].id
  6060. // })
  6061. // .then(res => {
  6062. // if (res.code == 200) {
  6063. // this.guoRenaccidentDataList = res.data;
  6064. // } else {
  6065. // this.guoRenaccidentDataList = [];
  6066. // }
  6067. // });
  6068. // break;
  6069. // case "紫金财险":
  6070. // this.$api.letter
  6071. // .zijinqueryVehicleProducts({
  6072. // agreementId: this.totalCompanyList[index].agreement[0].id,
  6073. // seatCount: Number(this.carInfo.seatCount)
  6074. // })
  6075. // .then(res => {
  6076. // if (res.code == 200) {
  6077. // let data = res.data;
  6078. // data.map(ele => {
  6079. // ele.quantity = 1;
  6080. // return ele;
  6081. // });
  6082. // this.ziJinInsuranceData = data;
  6083. // } else {
  6084. // this.$message.error(res.msg);
  6085. // }
  6086. // });
  6087. // break;
  6088. // case "安盛天平":
  6089. // this.$api.letter
  6090. // .pythongetDriving({
  6091. // agreementId: this.totalCompanyList[index].agreement[0].id
  6092. // })
  6093. // .then(res => {
  6094. // if (res.code == 200) {
  6095. // let data = res.data;
  6096. // data.map(ele => {
  6097. // ele.departmentProductList.map(val => {
  6098. // val.quantity = 1;
  6099. // });
  6100. // return ele;
  6101. // });
  6102. // this[name + "InsuranceData"] = data;
  6103. // } else {
  6104. // this.$message.error(res.msg);
  6105. // }
  6106. // });
  6107. // break;
  6108. // case "中国人寿":
  6109. // case "恒邦财险":
  6110. // case "太平财险":
  6111. // case "华农财险":
  6112. // case "众安财险":
  6113. // this.$api.letter
  6114. // .pythongetDriving({
  6115. // agreementId: this.totalCompanyList[index].agreement[0].id
  6116. // })
  6117. // .then(res => {
  6118. // if (res.code == 200) {
  6119. // let data = res.data;
  6120. // data.map(ele => {
  6121. // ele.quantity = 1;
  6122. // return ele;
  6123. // });
  6124. // this[name + "InsuranceData"] = data;
  6125. // } else {
  6126. // this.$message.error(res.msg);
  6127. // }
  6128. // });
  6129. // break;
  6130. // case "中煤财险":
  6131. // this.accidentFormZM.agreementId = this.totalCompanyList[
  6132. // index
  6133. // ].agreement[0].id;
  6134. // this.$api.letter
  6135. // .zmGetDrivingPro({
  6136. // agreementId: this.totalCompanyList[index].agreement[0].id,
  6137. // seatNum: this.carInfo.seatCount
  6138. // })
  6139. // .then(res => {
  6140. // if (res.code == 200) {
  6141. // let data = res.data;
  6142. // this[name + "InsuranceData"] = data;
  6143. // } else {
  6144. // this.$message.error(res.msg);
  6145. // }
  6146. // });
  6147. // break;
  6148. // case "大家财险":
  6149. // this.$api.letter
  6150. // .dajiagetDriving({
  6151. // agreementId: this.totalCompanyList[index].agreement[0].id
  6152. // })
  6153. // .then(res => {
  6154. // if (res.code == 200) {
  6155. // this.dajiaInsuranceData = res.data;
  6156. // } else {
  6157. // this.$message.error(res.msg);
  6158. // }
  6159. // });
  6160. // break;
  6161. // default:
  6162. // break;
  6163. // }
  6164. // } else {
  6165. }
  6166. },
  6167. clearAccidentForm() {
  6168. this.yongchengInsuranceDataTable = [];
  6169. this.accidentForm = {};
  6170. this.accidentForm.fen = 1;
  6171. this.accidentForm.premium = 0;
  6172. },
  6173. clearAccidentFormPA(index) {
  6174. // this.accidentFormPA[index]={
  6175. // quantity: 1,
  6176. // premium: 0,
  6177. // pingantemplateSelection:'',
  6178. // pinganInsuranceDataTable:[],
  6179. // pinganInsurancetype:'',
  6180. // }
  6181. this.pinganaccidentalDrivingVo[index] = {};
  6182. console.log(this.accidentFormPA[index], 9999999999);
  6183. },
  6184. clearAccidentFormTk() {
  6185. this.taikangaccidentalDrivingVo = {};
  6186. this.taikangInsuranceDataTable = [];
  6187. this.accidentFormTk = {};
  6188. this.accidentFormTk.fen = 1;
  6189. this.accidentFormTk.premium = 0;
  6190. },
  6191. clearAccidentFormGr() {
  6192. (this.guoRenInsuranceDataTable = []),
  6193. (this.guoRenaccidentDataListChild = []);
  6194. this.guoRenaccidentForm = {
  6195. quantity: "1",
  6196. premium: 0,
  6197. };
  6198. },
  6199. clearAccidentFormBh() {
  6200. this.bohaiInsuranceDataTable = [];
  6201. this.boHaiaccidentForm = {
  6202. copies: "1",
  6203. premium: 0,
  6204. };
  6205. // this.bohaiaccidentalDrivingVo={};
  6206. },
  6207. clearAccidentFormHN() {
  6208. this.huanongaccidentalDrivingVo = {};
  6209. },
  6210. clearAccidentFormHB() {
  6211. this.hengbangaccidentalDrivingVo = {};
  6212. },
  6213. clearAccidentFormCT() {
  6214. this.chengtaiaccidentalDrivingVo = {};
  6215. },
  6216. clearAccidentFormTP() {
  6217. this.taipingaccidentalDrivingVo = {};
  6218. },
  6219. clearAccidentFormDJ() {
  6220. this.dajiaaccidentalDrivingVo = {};
  6221. },
  6222. clearAccidentFormZM() {
  6223. this.zhongmeiaccidentalDrivingVo = {};
  6224. },
  6225. clearAccidentFormZJ() {
  6226. this.accidentalDrivingVo = [];
  6227. },
  6228. clearAccidentFormZA() {
  6229. this.zhonganaccidentalDrivingVo = {};
  6230. },
  6231. clearAccidentFormRS() {
  6232. this.renshouaccidentalDrivingVo = {};
  6233. },
  6234. clearAccidentFormAS() {
  6235. this.anshengaccidentalDrivingVo = {};
  6236. },
  6237. //身份证有效期长期
  6238. insureLongterm(e) {
  6239. this[e].identifyValidEndDate = "9999-12-31";
  6240. },
  6241. //较强起保日期事件
  6242. jqChange(e) {
  6243. this.jqendDate = this.oneYearPast1(e);
  6244. },
  6245. //商业起保日期事件
  6246. syChange(e) {
  6247. this.syendDate = this.oneYearPast1(e);
  6248. },
  6249. // //查看更多
  6250. // selectMore(leg) {
  6251. // this.insureMore = false;
  6252. // this.insureLength = leg;
  6253. // },
  6254. // //收起
  6255. // packup() {
  6256. // this.insureMore = true;
  6257. // this.insureLength = 5;
  6258. // },
  6259. //险别选择框事件
  6260. insureitemChange(e, item) {
  6261. let index_old= -1;
  6262. this.kindList.filter(function(kind,index,arr){
  6263. if(kind.kindCode == item.kindCode){
  6264. index_old =index;
  6265. }
  6266. });
  6267. console.log(index_old)
  6268. if (e != 0) {
  6269. this.sychecked = true;
  6270. this.systartDate = this.transformTime1();
  6271. this.syendDate = this.oneYearPast1(this.systartDate);
  6272. if (index_old==-1){
  6273. this.kindList.push(item)
  6274. }else{
  6275. this.$set(this.kindList, index_old, item);
  6276. }
  6277. this.obtainProtocol();
  6278. } else {
  6279. if (index_old==-1){
  6280. this.kindList.push(item)
  6281. }else{
  6282. this.$set(this.kindList, index_old, item);
  6283. }
  6284. this.obtainProtocol();
  6285. }
  6286. console.log(this.kindList)
  6287. },
  6288. all() {
  6289. this.$refs.detailsDialog.setBackupVisible(true);
  6290. },
  6291. base64ToBlob(code) {
  6292. code = code.replace(/[\n\r]/g, "");
  6293. // atob() 方法用于解码使用 base-64 编码的字符串。
  6294. const raw = window.atob(code);
  6295. const rawLength = raw.length;
  6296. const uInt8Array = new Uint8Array(rawLength);
  6297. for (let i = 0; i < rawLength; ++i) {
  6298. uInt8Array[i] = raw.charCodeAt(i);
  6299. }
  6300. return new Blob([uInt8Array], { type: "application/pdf" });
  6301. },
  6302. viewPdf(content) {
  6303. if (!content) {
  6304. this.$message.error("暂无文件");
  6305. return;
  6306. }
  6307. const blob = this.base64ToBlob(content);
  6308. this.href = blob;
  6309. if (window.navigator && window.navigator.msSaveOrOpenBlob) {
  6310. window.navigator.msSaveOrOpenBlob(blob);
  6311. } else {
  6312. const fileURL = URL.createObjectURL(blob);
  6313. window.open(fileURL);
  6314. }
  6315. },
  6316. //二维码生成插件
  6317. creatQrCode(text) {
  6318. // 查找并删除旧的二维码DOM元素
  6319. let element = document.getElementById("qrcode");
  6320. while (element.firstChild) {
  6321. element.removeChild(element.firstChild);
  6322. }
  6323. // 创建新的QRCode实例
  6324. this.qrcode = new QRCode("qrcode", {
  6325. text: text,
  6326. width: this.qrcodeWidth,
  6327. height: this.qrcodeHeight,
  6328. colorDark: "#000000",
  6329. colorLight: "#ffffff",
  6330. correctLevel: QRCode.CorrectLevel.H,
  6331. });
  6332. },
  6333. //人工核保
  6334. underwriting(id) {
  6335. let param = {
  6336. companyId: id,
  6337. };
  6338. this.$api.letter.manualUnderwriting(param).then((res) => {
  6339. if (res.code == "200") {
  6340. this.Payment(id);
  6341. }
  6342. });
  6343. },
  6344. signature(companyId) {
  6345. this.$api.letter.pingAnsignEleApply({ companyId }).then((res) => {
  6346. if (res.code == 200 && res.data) {
  6347. this.resultMessageImg = process.env.BASE_URL + res.data.resultMessage
  6348. this.signaturedialogVisible = true;
  6349. // 查找并删除旧的二维码DOM元素
  6350. // let element = document.getElementById("signaturecode");
  6351. // while (element.firstChild) {
  6352. // element.removeChild(element.firstChild);
  6353. // }
  6354. // this.signaturecode = new QRCode("signaturecode", {
  6355. // text: resultMessage,
  6356. // width: 180,
  6357. // height: 180,
  6358. // colorDark: "#000000",
  6359. // colorLight: "#ffffff",
  6360. // correctLevel: QRCode.CorrectLevel.H,
  6361. // });
  6362. // this.signaturedialogVisible = true;
  6363. // this.$api.letter.pingAnsignEleApply({companyId}).then((res) => {
  6364. // if (res.code == 200 && res.data) {
  6365. // // 查找并删除旧的二维码DOM元素
  6366. // let element = document.getElementById("signaturecode");
  6367. // while (element.firstChild) {
  6368. // element.removeChild(element.firstChild);
  6369. // }
  6370. // this.signaturecode = new QRCode("signaturecode", {
  6371. // text: res.data.resultMessage,
  6372. // width: 180,
  6373. // height: 180,
  6374. // colorDark: "#000000",
  6375. // colorLight: "#ffffff",
  6376. // correctLevel: QRCode.CorrectLevel.H,
  6377. // });
  6378. } else {
  6379. this.$message({
  6380. message: res.msg || "暂无数据!",
  6381. type: "warning",
  6382. });
  6383. }
  6384. });
  6385. },
  6386. jqcheckedChange(e) {
  6387. if (e) {
  6388. this.jqstartDate = this.transformTime1();
  6389. this.jqendDate = this.oneYearPast1(this.jqstartDate);
  6390. if(!this.riskList.includes("0507")){
  6391. this.riskList.push({
  6392. riskCode: "0507",
  6393. });
  6394. }
  6395. this.obtainProtocol();
  6396. } else {
  6397. this.jqstartDate = "";
  6398. this.jqendDate = "";
  6399. let list = this.riskList.filter(item => item.riskCode !== "0507");
  6400. this.riskList = list;
  6401. this.obtainProtocol();
  6402. }
  6403. },
  6404. sycheckedChange(e) {
  6405. if (e) {
  6406. this.systartDate = this.transformTime1();
  6407. this.syendDate = this.oneYearPast1(this.systartDate);
  6408. if(!this.riskList.includes("0510")){
  6409. this.riskList.push({
  6410. riskCode: "0510",
  6411. });
  6412. }
  6413. this.obtainProtocol();
  6414. } else {
  6415. this.systartDate = "";
  6416. this.syendDate = "";
  6417. let list = this.riskList.filter(item => item.riskCode !== "0510");
  6418. this.riskList = list;
  6419. this.obtainProtocol();
  6420. }
  6421. },
  6422. // 保存
  6423. preserveQuote(type, btnLoading) {
  6424. if (
  6425. this.userId == "" ||
  6426. this.userId == null ||
  6427. this.userId == undefined
  6428. ) {
  6429. this.$message({ message: "请选择业务员信息", type: "error" });
  6430. return;
  6431. } else {
  6432. if (!this.userId.includes("M")) {
  6433. this.$message({ message: "请选择业务员信息", type: "error" });
  6434. return;
  6435. }
  6436. }
  6437. let starttime = new Date(this.carInfo.registerDate);
  6438. let endtime = new Date(this.carInfo.issueDate);
  6439. if (endtime < starttime) {
  6440. this.$message({ message: "发证日期早于初登日期", type: "error" });
  6441. return;
  6442. }
  6443. if (this.costFlag =='') {
  6444. this.$message({ message: "请选择是否现询", type: "error" });
  6445. return;
  6446. }
  6447. if (this.nowCostsId =='') {
  6448. this.$message({ message: "费用为空", type: "error" });
  6449. return;
  6450. }
  6451. if (
  6452. this.policyNumberForm.jqpolicyno ||
  6453. this.policyNumberForm.jqpremium ||
  6454. // this.policyNumberForm.jqCostsProportion ||
  6455. this.policyNumberForm.jqPolicyList.length > 0
  6456. ) {
  6457. if (
  6458. !(
  6459. this.policyNumberForm.jqpolicyno &&
  6460. this.policyNumberForm.jqpremium &&
  6461. // this.policyNumberForm.jqCostsProportion &&
  6462. this.policyNumberForm.jqPolicyList.length > 0
  6463. )
  6464. ) {
  6465. this.$message({
  6466. message: "请填写交强保单号、交强险保费、交强保单",
  6467. type: "error",
  6468. });
  6469. return;
  6470. }
  6471. }
  6472. if(this.policyNumberForm.jqpolicyno!='' && this.policyNumberForm.jqpolicyno!= null && this.policyNumberForm.jqCostsProportion == ''){
  6473. this.$message({
  6474. message: "请填写交强险总比例(%)",
  6475. type: "error",
  6476. });
  6477. return;
  6478. }
  6479. if (
  6480. this.policyNumberForm.sypolicyno ||
  6481. this.policyNumberForm.sypremium ||
  6482. //this.policyNumberForm.syCostsProportion ||
  6483. this.policyNumberForm.syPolicyList.length > 0
  6484. ) {
  6485. if (
  6486. !(
  6487. this.policyNumberForm.sypolicyno &&
  6488. this.policyNumberForm.sypremium &&
  6489. // this.policyNumberForm.syCostsProportion &&
  6490. this.policyNumberForm.syPolicyList.length > 0
  6491. )
  6492. ) {
  6493. this.$message({
  6494. message: "请填写商业保单号、商业险保费、商业保单",
  6495. type: "error",
  6496. });
  6497. return;
  6498. }
  6499. }
  6500. if(this.policyNumberForm.sypolicyno!='' && this.policyNumberForm.sypolicyno!= null && this.policyNumberForm.syCostsProportion == ''){
  6501. this.$message({
  6502. message: "请填写商业险总比例(%)",
  6503. type: "error",
  6504. });
  6505. return;
  6506. }
  6507. if (
  6508. this.policyNumberForm.jypolicyno ||
  6509. this.policyNumberForm.jypremium ||
  6510. // this.policyNumberForm.noCostsProportion ||
  6511. this.policyNumberForm.noPolicyList.length > 0
  6512. ) {
  6513. if (
  6514. !(
  6515. this.policyNumberForm.jypolicyno &&
  6516. this.policyNumberForm.jypremium &&
  6517. this.policyNumberForm.noCostsProportion &&
  6518. this.policyNumberForm.noPolicyList.length > 0
  6519. )
  6520. ) {
  6521. this.$message({
  6522. message:
  6523. "请填写驾意险保单号、驾意险保费、非车保单",
  6524. type: "error",
  6525. });
  6526. return;
  6527. }
  6528. }
  6529. if(this.policyNumberForm.jypolicyno!='' && this.policyNumberForm.jypolicyno!= null && this.policyNumberForm.noCostsProportion == ''){
  6530. this.$message({
  6531. message: "请填写非车险总比例(%)",
  6532. type: "error",
  6533. });
  6534. return;
  6535. }
  6536. this.$refs["carInfo"].validate((valid) => {
  6537. if (valid) {
  6538. var _this = this;
  6539. _this.$refs["ownerInfo"].validate((valid1) => {
  6540. if (valid1) {
  6541. _this.$refs["policyNumberForm"].validate((valid2) => {
  6542. if (valid2) {
  6543. if (_this.tbczcarShow == true) {
  6544. _this.policyHolderInfo = {..._this.ownerInfo}
  6545. }
  6546. if (_this.bbczcarShow == true) {
  6547. _this.insuredPersonInfo = {..._this.ownerInfo}
  6548. }
  6549. if (_this.bbtbcarShow == true) {
  6550. _this.insuredPersonInfo = {..._this.policyHolderInfo}
  6551. }
  6552. _this.carInfo.vinNo = _this.carInfo.frameNo;
  6553. _this.riskList = []; //险种大类
  6554. _this.kindList = []; //商业险险别
  6555. if (
  6556. (!_this.jqstartDate || !_this.jqendDate) &&
  6557. (!_this.systartDate || !_this.syendDate)
  6558. ) {
  6559. this.$message({
  6560. message: "投保日期不能为空",
  6561. type: "warning",
  6562. });
  6563. } else {
  6564. this.calculateLoading = true;
  6565. setInterval(() => {
  6566. this.calculateLoading = false;
  6567. }, 3000);
  6568. if (_this.jqchecked) {
  6569. //交强
  6570. _this.jqstartDate = this.transformTime(_this.jqstartDate);
  6571. _this.jqendDate = this.transformTime(_this.jqendDate);
  6572. _this.riskList.push({
  6573. amount: "200000",
  6574. premium: "0",
  6575. riskCode: "0507",
  6576. endDate: _this.jqendDate,
  6577. startDate: _this.jqstartDate,
  6578. instantFlag: "0",
  6579. });
  6580. }
  6581. if (_this.sychecked) {
  6582. _this.systartDate = this.transformTime(_this.systartDate);
  6583. _this.syendDate = this.transformTime(_this.syendDate);
  6584. //商业
  6585. _this.riskList.push({
  6586. premium: "0",
  6587. riskCode: "0510",
  6588. quotePreceptCode: "",
  6589. quotePreceptName: "",
  6590. endDate: _this.syendDate,
  6591. startDate: _this.systartDate,
  6592. instantFlag: "0",
  6593. });
  6594. _this.insureList.map((ele, index) => {
  6595. if (
  6596. ele.amount != "0" &&
  6597. (ele.kindCode == "D4" || ele.kindCode == "SY_FJ_YBW2")
  6598. ) {
  6599. _this.kindList.push({
  6600. unitAmount: _this.insureList[index].amount,
  6601. kindCode: _this.insureList[index].kindCode,
  6602. kindName: _this.insureList[index].kindName,
  6603. });
  6604. } else if (
  6605. ele.amount != "0" &&
  6606. (ele.kindCode == "MJ1" ||
  6607. ele.kindCode == "MJ2" ||
  6608. ele.kindCode == "MJ3" ||
  6609. ele.kindCode == "MJ4")
  6610. ) {
  6611. _this.kindList.push({
  6612. deductibleRate: _this.insureList[index].amount,
  6613. kindCode: _this.insureList[index].kindCode,
  6614. kindName: _this.insureList[index].kindName,
  6615. });
  6616. } else if (
  6617. ele.amount != "0" &&
  6618. (ele.kindCode == "TY1" ||
  6619. ele.kindCode == "TY2" ||
  6620. ele.kindCode == "TY3" ||
  6621. ele.kindCode == "TY4")
  6622. ) {
  6623. _this.kindList.push({
  6624. serviceTimes: _this.insureList[index].amount,
  6625. kindCode: _this.insureList[index].kindCode,
  6626. kindName: _this.insureList[index].kindName,
  6627. });
  6628. } else if (ele.amount != "0") {
  6629. _this.kindList.push({
  6630. amount: _this.insureList[index].amount,
  6631. kindCode: _this.insureList[index].kindCode,
  6632. kindName: _this.insureList[index].kindName,
  6633. });
  6634. }
  6635. return ele;
  6636. });
  6637. } else {
  6638. _this.kindList = [];
  6639. }
  6640. // console.log(_this.kindList);
  6641. // debugger
  6642. this.preserveOrderStageProcessing(type, btnLoading);
  6643. }
  6644. } else {
  6645. document.getElementById("Waibu").scrollIntoView();
  6646. _this.$message({
  6647. message: "请检查外部订单信息",
  6648. type: "warning",
  6649. });
  6650. }
  6651. });
  6652. } else {
  6653. document.getElementById("CheZhu").scrollIntoView();
  6654. _this.$message({ message: "请检查人员信息", type: "warning" });
  6655. }
  6656. });
  6657. } else {
  6658. document.getElementById("Car").scrollIntoView();
  6659. this.$message({ message: "请检查车辆信息", type: "warning" });
  6660. return false;
  6661. }
  6662. });
  6663. },
  6664. //订单生成后保存接口
  6665. preserveOrderStageProcessing(type, btnLoading) {
  6666. // console.log(this.editorInfo);
  6667. // debugger;
  6668. //同车主的选择框
  6669. this[btnLoading] = true;
  6670. if (this.tbczcarShow && this.imageList2.length > 0) {
  6671. //投保人同车主
  6672. this.imageList3 = JSON.parse(JSON.stringify(this.imageList2));
  6673. if (this.imageList3.length == 1) {
  6674. this.imageList3[0].imageType = this.imageList3[0].imageType.includes(
  6675. "C0"
  6676. )
  6677. ? "C03"
  6678. : "D03";
  6679. } else {
  6680. this.imageList3.forEach((e) => {
  6681. e.imageType = e.imageType.includes("C0") ? "C03" : "D03";
  6682. });
  6683. }
  6684. }
  6685. if (this.bbczcarShow && this.imageList2.length > 0) {
  6686. //被保人同车主
  6687. this.imageList4 = JSON.parse(JSON.stringify(this.imageList2));
  6688. if (this.imageList4.length == 1) {
  6689. this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  6690. "C0"
  6691. )
  6692. ? "C04"
  6693. : "D04";
  6694. } else {
  6695. this.imageList4.forEach((e) => {
  6696. e.imageType = e.imageType.includes("C0") ? "C04" : "D04";
  6697. });
  6698. }
  6699. }
  6700. if (this.bbtbcarShow && this.imageList3.length > 0) {
  6701. //被保人同投保人
  6702. this.imageList4 = JSON.parse(JSON.stringify(this.imageList3));
  6703. if (this.imageList4.length == 1) {
  6704. this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  6705. "C0"
  6706. )
  6707. ? "C04"
  6708. : "D04";
  6709. } else {
  6710. this.imageList4.forEach((e) => {
  6711. e.imageType = e.imageType.includes("C0") ? "C04" : "D04";
  6712. });
  6713. }
  6714. }
  6715. //日期长度<10处理
  6716. const formatDate = (date) => {
  6717. if (date.length < 10) {
  6718. return this.timeformat(date);
  6719. }
  6720. return date;
  6721. };
  6722. if (this.carInfo.registerDate.length < 10) {
  6723. this.carInfo.registerDate = formatDate(this.carInfo.registerDate);
  6724. }
  6725. if (this.carInfo.issueDate.length < 10) {
  6726. this.carInfo.issueDate = formatDate(this.carInfo.issueDate);
  6727. }
  6728. if (
  6729. this.carInfo.transferDate &&
  6730. this.carInfo.transferDate.length < 10 &&
  6731. this.carInfo.transferDate !== ""
  6732. ) {
  6733. this.carInfo.transferDate = formatDate(this.carInfo.transferDate);
  6734. }
  6735. //日期长度<10处理
  6736. //提交身份证/驾驶证 ——————————————————
  6737. this.policyHolderInfo.owner = this.tbczcarShow;
  6738. this.insuredPersonInfo.owner = this.bbczcarShow;
  6739. this.insuredPersonInfo.insuranceHolder = this.bbtbcarShow;
  6740. if (typeof this.ownerInfo.provinceData == "string") {
  6741. this.ownerInfo.provinceData = [];
  6742. }
  6743. if (typeof this.insuredPersonInfo.provinceData == "string") {
  6744. this.insuredPersonInfo.provinceData = [];
  6745. }
  6746. if (typeof this.policyHolderInfo.provinceData == "string") {
  6747. this.policyHolderInfo.provinceData = [];
  6748. }
  6749. if (this.$route.query.data) {
  6750. const mergedArray = [
  6751. ...this.imageList1,
  6752. ...this.imageList2,
  6753. ...this.imageList3,
  6754. ...this.imageList4,
  6755. ...this.imageList5,
  6756. ...this.imageList6,
  6757. ];
  6758. if (mergedArray.length > 0) {
  6759. let imageparam = {
  6760. imageList: mergedArray,
  6761. quoteNo: this.$route.query.data.quoteno,
  6762. };
  6763. this.$api.letter.uploadImages(imageparam).then((responses) => {
  6764. // this.$refs.imageDialog.imageEcho(this.$route.query.data.quoteno)
  6765. this.imageEcho(this.$route.query.data.quoteno); // 获取图片
  6766. });
  6767. }
  6768. this.editorInfo.applyinfo.owner = this.tbczcarShow;
  6769. this.editorInfo.insureinfo.owner = this.bbczcarShow;
  6770. this.editorInfo.insureinfo.insuranceHolder = this.bbtbcarShow;
  6771. let params = {
  6772. orderNo: this.$route.query.data.orderno,
  6773. ...this.policyNumberForm,
  6774. agreementId: this.isLetter3agreementId,
  6775. stageFlag: type,
  6776. jqstartdate: this.jqstartDate,
  6777. jqenddate: this.jqendDate,
  6778. systartdate: this.systartDate,
  6779. syenddate: this.syendDate,
  6780. kind: this.kindList,
  6781. risk: this.riskList,
  6782. kindList: this.kindList,
  6783. riskList: this.riskList,
  6784. carInfo: this.carInfo,
  6785. carinfo: this.carInfo,
  6786. insuredPersonInfo: this.insuredPersonInfo,
  6787. insureinfo: this.insuredPersonInfo,
  6788. ownerinfo: this.ownerInfo,
  6789. ownerInfo: this.ownerInfo,
  6790. policyHolderInfo: this.policyHolderInfo,
  6791. applyinfo: this.policyHolderInfo,
  6792. isExternal: "1",
  6793. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  6794. nowCostsId: this.nowCostsId,
  6795. costFlag: this.costFlag,
  6796. orderExternalStatus:this.orderExternalStatus
  6797. };
  6798. // debugger;
  6799. this.$api.letter.updateExternalOrder(params).then((res) => {
  6800. if (res.code == "200") {
  6801. this[btnLoading] = false;
  6802. this.$message({
  6803. message: res.msg || "编辑成功",
  6804. type: "success",
  6805. });
  6806. this.add();
  6807. } else {
  6808. this[btnLoading] = false;
  6809. this.$message.error(res.msg);
  6810. }
  6811. });
  6812. } else {
  6813. this.ownerInfo.owner = this.tbczcarShow;
  6814. this.insuredPersonInfo.owner = this.bbczcarShow;
  6815. this.insuredPersonInfo.insuranceHolder = this.bbtbcarShow;
  6816. let param = {
  6817. userId: this.userId,
  6818. quoteno: this.quoteno,
  6819. orderNo: this.orderno,
  6820. carInfo: this.carInfo,
  6821. insuredPersonInfo: this.insuredPersonInfo,
  6822. ownerInfo: this.ownerInfo,
  6823. policyHolderInfo: this.policyHolderInfo,
  6824. kindList: this.kindList,
  6825. riskList: this.riskList,
  6826. isExternal: "1",
  6827. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  6828. };
  6829. this.$api.letter.generateOrder(param).then((res) => {
  6830. if (res.code == "200") {
  6831. //上传图片
  6832. const mergedArray = [
  6833. ...this.imageList1,
  6834. ...this.imageList2,
  6835. ...this.imageList3,
  6836. ...this.imageList4,
  6837. ...this.imageList5,
  6838. ...this.imageList6,
  6839. ];
  6840. if (mergedArray.length > 0) {
  6841. let imageparam = {
  6842. imageList: mergedArray,
  6843. quoteNo: res.data.quoteno,
  6844. };
  6845. this.$api.letter.uploadImages(imageparam).then((responses) => {
  6846. this.imageEcho(res.data.quoteno); // 获取图片
  6847. // this.$refs.imageDialog.imageEcho(res.data.quoteno)
  6848. });
  6849. }
  6850. let params1 = {
  6851. orderNo: res.data.orderno,
  6852. ...this.policyNumberForm,
  6853. agreementId: this.isLetter3agreementId,
  6854. stageFlag: type,
  6855. nowCostsId: this.nowCostsId,
  6856. costFlag: this.costFlag,
  6857. };
  6858. // debugger
  6859. this.$api.letter.saveSubOrder(params1).then((res) => {
  6860. if (res.code == "200") {
  6861. this[btnLoading] = false;
  6862. this.$message({
  6863. message: res.msg || "录入成功",
  6864. type: "success",
  6865. });
  6866. this.add();
  6867. } else {
  6868. this[btnLoading] = false;
  6869. this.$message.error(res.msg);
  6870. }
  6871. });
  6872. } else {
  6873. this[btnLoading] = false;
  6874. this.$message.error(res.msg);
  6875. }
  6876. });
  6877. }
  6878. document.getElementById("company").scrollIntoView();
  6879. this.imageUploadShow = true;
  6880. },
  6881. policyHolderInfovalidate() {
  6882. let isvalidat = false;
  6883. let _this = this;
  6884. if (_this.tbczcarShow == true) {
  6885. _this.policyHolderInfo = JSON.parse(JSON.stringify(_this.ownerInfo));
  6886. } else {
  6887. _this.$refs["policyHolderInfo"].validate((valid2) => {
  6888. if (valid2) {
  6889. isvalidat = false;
  6890. } else {
  6891. document.getElementById("toubaor").scrollIntoView();
  6892. _this.$message({ message: "请检查投保人信息", type: "warning" });
  6893. isvalidat = true;
  6894. }
  6895. });
  6896. }
  6897. if (isvalidat) {
  6898. return;
  6899. }
  6900. },
  6901. //报价
  6902. quote() {
  6903. let starttime = new Date(this.carInfo.registerDate);
  6904. let endtime = new Date(this.carInfo.issueDate);
  6905. if (endtime < starttime) {
  6906. this.$message({ message: "发证日期早于初登日期", type: "error" });
  6907. return;
  6908. }
  6909. this.policyHolderInfovalidate();
  6910. this.$refs["carInfo"].validate((valid) => {
  6911. if (valid) {
  6912. var _this = this;
  6913. // this.policyHolderInfovalidate()
  6914. if (_this.tbczcarShow == true) {
  6915. _this.policyHolderInfo = JSON.parse(
  6916. JSON.stringify(_this.ownerInfo)
  6917. );
  6918. }
  6919. _this.$refs["ownerInfo"].validate((valid1) => {
  6920. if (valid1) {
  6921. if (_this.bbczcarShow == true) {
  6922. _this.insuredPersonInfo = JSON.parse(
  6923. JSON.stringify(_this.ownerInfo)
  6924. );
  6925. }
  6926. if (_this.bbtbcarShow == true) {
  6927. _this.insuredPersonInfo = JSON.parse(
  6928. JSON.stringify(_this.policyHolderInfo)
  6929. );
  6930. }
  6931. _this.carInfo.vinNo = _this.carInfo.frameNo;
  6932. _this.riskList = []; //险种大类
  6933. _this.kindList = []; //商业险险别
  6934. if (
  6935. (!_this.jqstartDate || !_this.jqendDate) &&
  6936. (!_this.systartDate || !_this.syendDate)
  6937. ) {
  6938. this.$message({ message: "投保日期不能为空", type: "warning" });
  6939. } else {
  6940. this.calculateLoading = true;
  6941. setInterval(() => {
  6942. this.calculateLoading = false;
  6943. }, 3000);
  6944. if (_this.jqchecked) {
  6945. //交强
  6946. _this.jqstartDate = this.transformTime(_this.jqstartDate);
  6947. _this.jqendDate = this.transformTime(_this.jqendDate);
  6948. _this.riskList.push({
  6949. amount: "200000",
  6950. premium: "0",
  6951. riskCode: "0507",
  6952. endDate: _this.jqendDate,
  6953. startDate: _this.jqstartDate,
  6954. instantFlag: "0",
  6955. });
  6956. }
  6957. if (_this.sychecked) {
  6958. _this.systartDate = this.transformTime(_this.systartDate);
  6959. _this.syendDate = this.transformTime(_this.syendDate);
  6960. //商业
  6961. _this.riskList.push({
  6962. premium: "0",
  6963. riskCode: "0510",
  6964. quotePreceptCode: "",
  6965. quotePreceptName: "",
  6966. endDate: _this.syendDate,
  6967. startDate: _this.systartDate,
  6968. instantFlag: "0",
  6969. });
  6970. _this.insureList.map((ele, index) => {
  6971. if (
  6972. ele.amount != "0" &&
  6973. (ele.kindCode == "D4" || ele.kindCode == "SY_FJ_YBW2")
  6974. ) {
  6975. _this.kindList.push({
  6976. unitAmount: _this.insureList[index].amount,
  6977. kindCode: _this.insureList[index].kindCode,
  6978. kindName: _this.insureList[index].kindName,
  6979. });
  6980. } else if (
  6981. ele.amount != "0" &&
  6982. (ele.kindCode == "MJ1" ||
  6983. ele.kindCode == "MJ2" ||
  6984. ele.kindCode == "MJ3" ||
  6985. ele.kindCode == "MJ4")
  6986. ) {
  6987. _this.kindList.push({
  6988. deductibleRate: _this.insureList[index].amount,
  6989. kindCode: _this.insureList[index].kindCode,
  6990. kindName: _this.insureList[index].kindName,
  6991. });
  6992. } else if (
  6993. ele.amount != "0" &&
  6994. (ele.kindCode == "TY1" ||
  6995. ele.kindCode == "TY2" ||
  6996. ele.kindCode == "TY3" ||
  6997. ele.kindCode == "TY4")
  6998. ) {
  6999. _this.kindList.push({
  7000. serviceTimes: _this.insureList[index].amount,
  7001. kindCode: _this.insureList[index].kindCode,
  7002. kindName: _this.insureList[index].kindName,
  7003. });
  7004. } else if (ele.amount != "0") {
  7005. _this.kindList.push({
  7006. amount: _this.insureList[index].amount,
  7007. kindCode: _this.insureList[index].kindCode,
  7008. kindName: _this.insureList[index].kindName,
  7009. });
  7010. }
  7011. return ele;
  7012. });
  7013. } else {
  7014. _this.kindList = [];
  7015. }
  7016. // if (_this.orderno) {
  7017. this.OrderStageProcessing();
  7018. // } else {
  7019. // _this.$api.letter.getquote().then(res => {
  7020. // _this.quoteno = res.data; //获取报价号
  7021. // this.OrderStageProcessing();
  7022. // });
  7023. // }
  7024. }
  7025. } else {
  7026. document.getElementById("CheZhu").scrollIntoView();
  7027. _this.$message({ message: "请检查人员信息", type: "warning" });
  7028. }
  7029. });
  7030. } else {
  7031. document.getElementById("Car").scrollIntoView();
  7032. this.$message({ message: "请检查车辆信息", type: "warning" });
  7033. return false;
  7034. }
  7035. });
  7036. },
  7037. kindListFun() {
  7038. var _this = this;
  7039. _this.riskList = []; //险种大类
  7040. _this.kindList = []; //商业险险别
  7041. if (
  7042. (!_this.jqstartDate || !_this.jqendDate) &&
  7043. (!_this.systartDate || !_this.syendDate)
  7044. ) {
  7045. this.$message({ message: "投保日期不能为空", type: "warning" });
  7046. } else {
  7047. if (_this.jqchecked) {
  7048. //交强
  7049. _this.jqstartDate = this.transformTime(_this.jqstartDate);
  7050. _this.jqendDate = this.transformTime(_this.jqendDate);
  7051. _this.riskList.push({
  7052. amount: "200000",
  7053. premium: "0",
  7054. riskCode: "0507",
  7055. endDate: _this.jqendDate,
  7056. startDate: _this.jqstartDate,
  7057. instantFlag: "0",
  7058. });
  7059. }
  7060. if (_this.sychecked) {
  7061. _this.systartDate = this.transformTime(_this.systartDate);
  7062. _this.syendDate = this.transformTime(_this.syendDate);
  7063. //商业
  7064. _this.riskList.push({
  7065. premium: "0",
  7066. riskCode: "0510",
  7067. quotePreceptCode: "",
  7068. quotePreceptName: "",
  7069. endDate: _this.syendDate,
  7070. startDate: _this.systartDate,
  7071. instantFlag: "0",
  7072. });
  7073. _this.insureList.map((ele, index) => {
  7074. if (
  7075. ele.amount != "0" &&
  7076. (ele.kindCode == "D4" || ele.kindCode == "SY_FJ_YBW2")
  7077. ) {
  7078. _this.kindList.push({
  7079. unitAmount: _this.insureList[index].amount,
  7080. kindCode: _this.insureList[index].kindCode,
  7081. kindName: _this.insureList[index].kindName,
  7082. });
  7083. } else if (
  7084. ele.amount != "0" &&
  7085. (ele.kindCode == "MJ1" ||
  7086. ele.kindCode == "MJ2" ||
  7087. ele.kindCode == "MJ3" ||
  7088. ele.kindCode == "MJ4")
  7089. ) {
  7090. _this.kindList.push({
  7091. deductibleRate: _this.insureList[index].amount,
  7092. kindCode: _this.insureList[index].kindCode,
  7093. kindName: _this.insureList[index].kindName,
  7094. });
  7095. } else if (
  7096. ele.amount != "0" &&
  7097. (ele.kindCode == "TY1" ||
  7098. ele.kindCode == "TY2" ||
  7099. ele.kindCode == "TY3" ||
  7100. ele.kindCode == "TY4")
  7101. ) {
  7102. _this.kindList.push({
  7103. serviceTimes: _this.insureList[index].amount,
  7104. kindCode: _this.insureList[index].kindCode,
  7105. kindName: _this.insureList[index].kindName,
  7106. });
  7107. } else if (ele.amount != "0") {
  7108. _this.kindList.push({
  7109. amount: _this.insureList[index].amount,
  7110. kindCode: _this.insureList[index].kindCode,
  7111. kindName: _this.insureList[index].kindName,
  7112. });
  7113. }
  7114. return ele;
  7115. });
  7116. } else {
  7117. _this.kindList = [];
  7118. }
  7119. }
  7120. },
  7121. //动态函数
  7122. ToolClickFun(MethodName, Parameter, companyId, companyName) {
  7123. this[`${MethodName}`](Parameter, companyId, companyName);
  7124. },
  7125. //更新报价历史
  7126. QuotationHistory() {
  7127. let params = {
  7128. orderNo: this.orderno,
  7129. orderStatus: "",
  7130. };
  7131. this.$api.letter.queryQuoteHistory(params).then((res) => {
  7132. res.data.forEach((item) => {
  7133. if (item.accidentInfo) {
  7134. item.accidentInfo.constructor === Object
  7135. ? [item.accidentInfo]
  7136. : item.accidentInfo;
  7137. }
  7138. });
  7139. this.HistoryList = res.data;
  7140. });
  7141. },
  7142. open2(Name, Msg) {
  7143. this.$notify.info({
  7144. title: Name,
  7145. dangerouslyUseHTMLString: true,
  7146. type: "warning",
  7147. message: Msg,
  7148. customClass: "customNotifyClass",
  7149. duration: 7000,
  7150. });
  7151. },
  7152. open3(Name, Msg) {
  7153. this.$notify.info({
  7154. title: Name,
  7155. dangerouslyUseHTMLString: true,
  7156. type: "warning",
  7157. message: `<p>${Msg.replace(/\n/g, "<br>")}</p>`,
  7158. customClass: "customNotifyClass",
  7159. duration: 7000,
  7160. });
  7161. },
  7162. openPredictInfo(Name, Msg) {
  7163. this.redictInfoMsg = Msg;
  7164. this.redictInfodialogVisible = true;
  7165. },
  7166. //订单生成前数据处理事件
  7167. OrderStageProcessing() {
  7168. if (this.tbczcarShow && this.imageList2.length > 0) {
  7169. //投保人同车主
  7170. this.imageList3 = JSON.parse(JSON.stringify(this.imageList2));
  7171. if (this.imageList3.length == 1) {
  7172. if(this.imageList3[0].imageType.includes("C0")){
  7173. this.imageList3[0].imageType = this.imageList3[0].imageType.includes(
  7174. "C0"
  7175. )
  7176. ? "C03"
  7177. : "D03";
  7178. }
  7179. if(this.imageList3[0].imageType.includes("Y0")){
  7180. this.imageList3[0].imageType = this.imageList3[0].imageType.includes(
  7181. "Y0"
  7182. )
  7183. ? "Y03"
  7184. : "";
  7185. }
  7186. } else {
  7187. this.imageList3.forEach((e) => {
  7188. e.imageType = e.imageType.includes("C0") ? "C03" : "D03";
  7189. });
  7190. }
  7191. }
  7192. if (this.bbczcarShow && this.imageList2.length > 0) {
  7193. //被保人同车主
  7194. this.imageList4 = JSON.parse(JSON.stringify(this.imageList2));
  7195. if (this.imageList4.length == 1) {
  7196. if(this.imageList4[0].imageType.includes("C0")){
  7197. this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  7198. "C0"
  7199. )
  7200. ? "C04"
  7201. : "D04";
  7202. }
  7203. if(this.imageList4[0].imageType.includes("Y0")){
  7204. this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  7205. "Y0"
  7206. )
  7207. ? "Y04"
  7208. : "";
  7209. }
  7210. } else {
  7211. this.imageList4.forEach((e) => {
  7212. e.imageType = e.imageType.includes("C0") ? "C04" : "D04";
  7213. });
  7214. }
  7215. // if (this.imageList4.length == 1) {
  7216. // this.imageList4[0].imageType = "C04";
  7217. // }
  7218. // else {
  7219. // this.imageList4[0].imageType = "C04";
  7220. // this.imageList4[1].imageType = "D04";
  7221. // }
  7222. }
  7223. if (this.bbtbcarShow && this.imageList3.length > 0) {
  7224. //被保人同投保人
  7225. this.imageList4 = JSON.parse(JSON.stringify(this.imageList3));
  7226. if (this.imageList4.length == 1) {
  7227. if(this.imageList4[0].imageType.includes("C0")){
  7228. this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  7229. "C0"
  7230. )
  7231. ? "C04"
  7232. : "D04";
  7233. }
  7234. if(this.imageList4[0].imageType.includes("Y0")){
  7235. this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  7236. "Y0"
  7237. )
  7238. ? "Y04"
  7239. : "";
  7240. }
  7241. } else {
  7242. this.imageList4.forEach((e) => {
  7243. e.imageType = e.imageType.includes("C0") ? "C04" : "D04";
  7244. });
  7245. }
  7246. // if (this.imageList4.length == 1) {
  7247. // this.imageList4[0].imageType = "C04";
  7248. // } else {
  7249. // this.imageList4[0].imageType = "C04";
  7250. // this.imageList4[1].imageType = "D04";
  7251. // }
  7252. }
  7253. console.log(11111111111);
  7254. //日期长度<10处理
  7255. const formatDate = (date) => {
  7256. if (date.length < 10) {
  7257. return this.timeformat(date);
  7258. }
  7259. return date;
  7260. };
  7261. if (this.carInfo.registerDate.length < 10) {
  7262. this.carInfo.registerDate = formatDate(this.carInfo.registerDate);
  7263. }
  7264. if (this.carInfo.issueDate.length < 10) {
  7265. this.carInfo.issueDate = formatDate(this.carInfo.issueDate);
  7266. }
  7267. if (
  7268. this.carInfo.transferDate &&
  7269. this.carInfo.transferDate.length < 10 &&
  7270. this.carInfo.transferDate !== ""
  7271. ) {
  7272. this.carInfo.transferDate = formatDate(this.carInfo.transferDate);
  7273. }
  7274. console.log(2222222222);
  7275. //日期长度<10处理
  7276. //提交身份证/驾驶证 ——————————————————
  7277. this.policyHolderInfo.owner = this.tbczcarShow;
  7278. this.insuredPersonInfo.owner = this.bbczcarShow;
  7279. this.insuredPersonInfo.insuranceHolder = this.bbtbcarShow;
  7280. if (typeof this.ownerInfo.provinceData == "string") {
  7281. this.ownerInfo.provinceData = [];
  7282. }
  7283. if (typeof this.insuredPersonInfo.provinceData == "string") {
  7284. this.insuredPersonInfo.provinceData = [];
  7285. }
  7286. if (typeof this.policyHolderInfo.provinceData == "string") {
  7287. this.policyHolderInfo.provinceData = [];
  7288. }
  7289. let param = {
  7290. userId: this.userId,
  7291. quoteno: this.quoteno,
  7292. orderNo: this.orderno,
  7293. carInfo: this.carInfo,
  7294. insuredPersonInfo: this.insuredPersonInfo,
  7295. ownerInfo: this.ownerInfo,
  7296. policyHolderInfo: this.policyHolderInfo,
  7297. kindList: this.kindList,
  7298. riskList: this.riskList,
  7299. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  7300. };
  7301. this.$api.letter[this.apiInterfaceName](param).then((res) => {
  7302. if (res.code == "200") {
  7303. //上传图片
  7304. const mergedArray = [
  7305. ...this.imageList1,
  7306. ...this.imageList2,
  7307. ...this.imageList3,
  7308. ...this.imageList4,
  7309. ...this.imageList5,
  7310. ...this.imageList6,
  7311. ];
  7312. if (mergedArray.length > 0) {
  7313. let imageparam = {
  7314. imageList: mergedArray,
  7315. quoteNo: res.data.quoteno,
  7316. };
  7317. this.$api.letter.uploadImages(imageparam).then((responses) => {
  7318. this.imageEcho(res.data.quoteno); // 获取图片
  7319. // this.$refs.imageDialog.imageEcho(res.data.quoteno)
  7320. });
  7321. }
  7322. this.quoteno = res.data.quoteno;
  7323. this.orderno = res.data.orderno;
  7324. this.totalCompanyList.map((ele, index) => {
  7325. if (ele.checked) {
  7326. //动态调用报价接口
  7327. ele.quoteCode = 1;
  7328. ele.orderstatus = 0;
  7329. this.ToolClickFun(ele.cnName, index, ele.id, ele.namesimple);
  7330. }
  7331. });
  7332. } else if (res.code == 1001) {
  7333. this.$confirm("是否生成新订单?", "提示", {
  7334. confirmButtonText: "确定",
  7335. cancelButtonText: "取消",
  7336. type: "warning",
  7337. })
  7338. .then(() => {
  7339. this.orderno = "";
  7340. this.quoteno = "";
  7341. this.quote();
  7342. })
  7343. .catch(() => { });
  7344. } else {
  7345. this.$message({ message: res.msg, type: "warning" });
  7346. }
  7347. });
  7348. document.getElementById("company").scrollIntoView();
  7349. this.imageUploadShow = true;
  7350. },
  7351. // 泰康报价--11
  7352. taikang(num, id, namesimple) {
  7353. this.quoteInsurance(
  7354. num,
  7355. id,
  7356. namesimple,
  7357. this.totalCompanyList[num].apiType
  7358. );
  7359. },
  7360. // 平安报价
  7361. pingan(num, id) {
  7362. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  7363. let accidentalDrivingVo = []
  7364. if (this.pinganaccidentalDrivingVo) {
  7365. accidentalDrivingVo = this.pinganaccidentalDrivingVo
  7366. // accidentalDrivingVo = Object.assign({
  7367. // ...this.pinganaccidentalDrivingVo,
  7368. // ...this.accidentFormPA,
  7369. // });
  7370. }
  7371. let params = {
  7372. accidentalDrivingVo,
  7373. orderNo: this.orderno,
  7374. companyId: id,
  7375. kinds: this.kindList,
  7376. risks: this.riskList,
  7377. agreementId: this.totalCompanyList[num].agreementId,
  7378. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  7379. };
  7380. this.$api.letter.pinganquote(params).then((res) => {
  7381. this.totalCompanyList[num].msg = res.msg;
  7382. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  7383. this.totalCompanyList[num].quoteCode = "4";
  7384. this.totalCompanyList[num].msg = res.msg;
  7385. return;
  7386. } else if (
  7387. res.data == null &&
  7388. res.msg.indexOf("交强险平台返回") > -1 &&
  7389. res.msg.indexOf(";终保日期") > -1
  7390. ) {
  7391. this.totalCompanyList[num].lastYearMsg =
  7392. "<b>交强险</b><br>" +
  7393. res.msg.slice(
  7394. res.msg.indexOf("起保日期 "),
  7395. res.msg.indexOf("地区 山西。") + 6
  7396. );
  7397. let time =
  7398. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  7399. this.jqstartDate = time;
  7400. this.jqendDate = this.oneYearPast1(time);
  7401. if (this.riskList.length > 0) {
  7402. for (let i = 0; i < this.riskList.length; i++) {
  7403. if (this.riskList[i].riskCode == "0507") {
  7404. this.riskList[i].startDate = time;
  7405. this.riskList[i].endDate = this.oneYearPast1(time);
  7406. }
  7407. }
  7408. }
  7409. let param = {
  7410. userId: this.userId,
  7411. quoteno: this.quoteno,
  7412. orderNo: this.orderno,
  7413. carInfo: this.carInfo,
  7414. insuredPersonInfo: this.insuredPersonInfo,
  7415. ownerInfo: this.ownerInfo,
  7416. policyHolderInfo: this.policyHolderInfo,
  7417. kindList: this.kindList,
  7418. riskList: this.riskList,
  7419. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  7420. };
  7421. return this.$api.letter[this.apiInterfaceName](param).then((res) => {
  7422. this.pingan(num, id);
  7423. });
  7424. } else if (!!res.data) {
  7425. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  7426. this.totalCompanyList[num].lastYearMsg = "";
  7427. let dat = res.data.warnMessageList;
  7428. dat.map((ele) => {
  7429. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  7430. });
  7431. }
  7432. this.totalCompanyList[num].quoteCode = 200;
  7433. this.totalCompanyList[num].result = res.data;
  7434. this.QuotationHistory();
  7435. } else {
  7436. this.totalCompanyList[num].quoteCode = "3";
  7437. this.totalCompanyList[num].msg = res.msg;
  7438. return;
  7439. }
  7440. });
  7441. },
  7442. //永安报价
  7443. yongan(num, id) {
  7444. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  7445. let params = {
  7446. orderNo: this.orderno,
  7447. companyId: id,
  7448. kinds: this.kindList,
  7449. risks: this.riskList,
  7450. agreementId: this.totalCompanyList[num].agreementId,
  7451. };
  7452. this.$api.letter.yonganquote(params).then((res) => {
  7453. this.totalCompanyList[num].msg = res.msg;
  7454. if (res.msg == "重复投保" && res.code == "501") {
  7455. if (!!res.data.jqStartDate && !res.data.syStartDate) {
  7456. this.jqstartDate = res.data.jqStartDate;
  7457. this.jqendDate = res.data.jqEndDate;
  7458. this.updateRiskDates(
  7459. "0507",
  7460. res.data.jqStartDate,
  7461. res.data.jqEndDate
  7462. );
  7463. let param = {
  7464. userId: this.userId,
  7465. quoteno: this.quoteno,
  7466. orderNo: this.orderno,
  7467. carInfo: this.carInfo,
  7468. insuredPersonInfo: this.insuredPersonInfo,
  7469. ownerInfo: this.ownerInfo,
  7470. policyHolderInfo: this.policyHolderInfo,
  7471. kindList: this.kindList,
  7472. riskList: this.riskList,
  7473. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  7474. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  7475. };
  7476. return this.$api.letter[this.apiInterfaceName](param).then(
  7477. (res) => {
  7478. this.yongan(num, id);
  7479. }
  7480. );
  7481. } else if (!!res.data.syStartDate && !res.data.jqStartDate) {
  7482. this.systartDate = res.data.syStartDate;
  7483. this.syendDate = res.data.syEndDate;
  7484. this.updateRiskDates(
  7485. "0510",
  7486. res.data.syStartDate,
  7487. res.data.syEndDate
  7488. );
  7489. let param = {
  7490. userId: this.userId,
  7491. quoteno: this.quoteno,
  7492. orderNo: this.orderno,
  7493. carInfo: this.carInfo,
  7494. insuredPersonInfo: this.insuredPersonInfo,
  7495. ownerInfo: this.ownerInfo,
  7496. policyHolderInfo: this.policyHolderInfo,
  7497. kindList: this.kindList,
  7498. riskList: this.riskList,
  7499. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  7500. };
  7501. return this.$api.letter[this.apiInterfaceName](param).then(
  7502. (res) => {
  7503. this.yongan(num, id);
  7504. }
  7505. );
  7506. } else if (!!res.data.syStartDate && !!res.data.jqStartDate) {
  7507. this.jqstartDate = res.data.jqStartDate;
  7508. this.jqendDate = res.data.jqEndDate;
  7509. this.systartDate = res.data.syStartDate;
  7510. this.syendDate = res.data.syEndDate;
  7511. this.updateRiskDates(
  7512. "0507",
  7513. res.data.jqStartDate,
  7514. res.data.jqEndDate
  7515. );
  7516. this.updateRiskDates(
  7517. "0510",
  7518. res.data.syStartDate,
  7519. res.data.syEndDate
  7520. );
  7521. let param = {
  7522. userId: this.userId,
  7523. quoteno: this.quoteno,
  7524. orderNo: this.orderno,
  7525. carInfo: this.carInfo,
  7526. insuredPersonInfo: this.insuredPersonInfo,
  7527. ownerInfo: this.ownerInfo,
  7528. policyHolderInfo: this.policyHolderInfo,
  7529. kindList: this.kindList,
  7530. riskList: this.riskList,
  7531. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  7532. };
  7533. return this.$api.letter[this.apiInterfaceName](param).then(
  7534. (res) => {
  7535. this.yongan(num, id);
  7536. }
  7537. );
  7538. } else {
  7539. this.totalCompanyList[num].quoteCode = "3";
  7540. this.totalCompanyList[num].msg = "重复投保";
  7541. }
  7542. } else if (
  7543. res.code == "500" ||
  7544. res.code == "502" ||
  7545. res.code == "-9999"
  7546. ) {
  7547. this.totalCompanyList[num].quoteCode = "-9999";
  7548. this.totalCompanyList[num].msg = res.msg;
  7549. } else {
  7550. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  7551. this.totalCompanyList[num].lastYearMsg = "";
  7552. let dat = res.data.warnMessageList;
  7553. dat.map((ele) => {
  7554. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  7555. });
  7556. }
  7557. this.totalCompanyList[num].quoteCode = 200;
  7558. this.totalCompanyList[num].result = res.data;
  7559. this.QuotationHistory();
  7560. }
  7561. });
  7562. },
  7563. updateRiskDates(riskCode, startDate, endDate) {
  7564. for (let i = 0; i < this.riskList.length; i++) {
  7565. if (this.riskList[i].riskCode == riskCode) {
  7566. this.riskList[i].startDate = startDate;
  7567. this.riskList[i].endDate = endDate;
  7568. }
  7569. }
  7570. },
  7571. //中煤报价
  7572. zhongmei(num, id) {
  7573. let accidentalDrivingVo = {};
  7574. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  7575. // if (this.accidentFormZM.projectCode) {
  7576. // accidentalDrivingVo = {
  7577. // projectCode: this.accidentFormZM.projectCode,
  7578. // projectName: this.accidentFormZM.projectName,
  7579. // quantity: this.accidentFormZM.quantity
  7580. // ? this.accidentFormZM.quantity
  7581. // : "1"
  7582. // };
  7583. // }
  7584. if (this.accidentFormZM.projectCode) {
  7585. accidentalDrivingVo = {
  7586. ...this.zhongmeiInsuranceData.find(
  7587. (e) => e.projectCode == this.accidentFormZM.projectCode
  7588. ),
  7589. quantity: this.accidentFormZM.quantity
  7590. ? this.accidentFormZM.quantity
  7591. : "1",
  7592. };
  7593. }
  7594. let params = {
  7595. accidentalDrivingVo,
  7596. orderNo: this.orderno,
  7597. companyId: id,
  7598. kinds: this.kindList,
  7599. risks: this.riskList,
  7600. agreementId: this.totalCompanyList[num].agreementId,
  7601. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  7602. };
  7603. this.$api.letter.zhongmeiquote(params).then((res) => {
  7604. this.totalCompanyList[num].msg = res.msg;
  7605. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  7606. this.totalCompanyList[num].quoteCode = "4";
  7607. this.totalCompanyList[num].msg = res.msg;
  7608. return;
  7609. } else if (
  7610. res.data == null &&
  7611. res.msg.indexOf("交强险平台返回") > -1 &&
  7612. res.msg.indexOf(";终保日期") > -1
  7613. ) {
  7614. this.totalCompanyList[num].lastYearMsg =
  7615. "<b>交强险</b><br>" +
  7616. res.msg.slice(
  7617. res.msg.indexOf("起保日期 "),
  7618. res.msg.indexOf("地区 山西。") + 6
  7619. );
  7620. let time =
  7621. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  7622. this.jqstartDate = time;
  7623. this.jqendDate = this.oneYearPast1(time);
  7624. if (this.riskList.length > 0) {
  7625. for (let i = 0; i < this.riskList.length; i++) {
  7626. if (this.riskList[i].riskCode == "0507") {
  7627. this.riskList[i].startDate = time;
  7628. this.riskList[i].endDate = this.oneYearPast1(time);
  7629. }
  7630. }
  7631. }
  7632. let param = {
  7633. userId: this.userId,
  7634. quoteno: this.quoteno,
  7635. orderNo: this.orderno,
  7636. carInfo: this.carInfo,
  7637. insuredPersonInfo: this.insuredPersonInfo,
  7638. ownerInfo: this.ownerInfo,
  7639. policyHolderInfo: this.policyHolderInfo,
  7640. kindList: this.kindList,
  7641. riskList: this.riskList,
  7642. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  7643. };
  7644. return this.$api.letter[this.apiInterfaceName](param).then((res) => {
  7645. this.zhongmei(num, id);
  7646. });
  7647. } else if (!!res.data) {
  7648. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  7649. this.totalCompanyList[num].lastYearMsg = "";
  7650. let dat = res.data.warnMessageList;
  7651. dat.map((ele) => {
  7652. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  7653. });
  7654. }
  7655. this.totalCompanyList[num].quoteCode = 200;
  7656. this.totalCompanyList[num].result = res.data;
  7657. this.QuotationHistory();
  7658. } else {
  7659. this.totalCompanyList[num].quoteCode = "3";
  7660. this.totalCompanyList[num].msg = res.msg;
  7661. return;
  7662. }
  7663. });
  7664. },
  7665. // 大家报价
  7666. dajia(num, id) {
  7667. // let accidentalDrivingVo=[]
  7668. // if(this.dajiaaccidentalDrivingVo){
  7669. // accidentalDrivingVo.rideRiskCode=this.dajiaaccidentalDrivingVo.schemeNo;
  7670. // accidentalDrivingVo.rideRiskName=this.dajiaaccidentalDrivingVo.cvrgName;
  7671. // accidentalDrivingVo.quantity=this.dajiaaccidentalDrivingVo.quantity;
  7672. // }
  7673. let type = this.totalCompanyList[num].apiType;
  7674. let api = type == 2 ? "pythonquote" : "dajiaquote";
  7675. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  7676. let params = {
  7677. accidentalDrivingVo: this.dajiaaccidentalDrivingVo,
  7678. orderNo: this.orderno,
  7679. companyId: id,
  7680. kinds: this.kindList,
  7681. risks: this.riskList,
  7682. agreementId: this.totalCompanyList[num].agreementId,
  7683. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  7684. };
  7685. this.$api.letter[api](params).then((res) => {
  7686. this.totalCompanyList[num].msg = res.msg;
  7687. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  7688. this.totalCompanyList[num].quoteCode = "4";
  7689. this.totalCompanyList[num].msg = res.msg;
  7690. return;
  7691. } else if (
  7692. res.data == null &&
  7693. res.msg.indexOf("交强险平台返回") > -1 &&
  7694. res.msg.indexOf(";终保日期") > -1
  7695. ) {
  7696. this.totalCompanyList[num].lastYearMsg =
  7697. "<b>交强险</b><br>" +
  7698. res.msg.slice(
  7699. res.msg.indexOf("起保日期 "),
  7700. res.msg.indexOf("地区 山西。") + 6
  7701. );
  7702. let time =
  7703. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  7704. this.jqstartDate = time;
  7705. this.jqendDate = this.oneYearPast1(time);
  7706. if (this.riskList.length > 0) {
  7707. for (let i = 0; i < this.riskList.length; i++) {
  7708. if (this.riskList[i].riskCode == "0507") {
  7709. this.riskList[i].startDate = time;
  7710. this.riskList[i].endDate = this.oneYearPast1(time);
  7711. }
  7712. }
  7713. }
  7714. let param = {
  7715. userId: this.userId,
  7716. quoteno: this.quoteno,
  7717. orderNo: this.orderno,
  7718. carInfo: this.carInfo,
  7719. insuredPersonInfo: this.insuredPersonInfo,
  7720. ownerInfo: this.ownerInfo,
  7721. policyHolderInfo: this.policyHolderInfo,
  7722. kindList: this.kindList,
  7723. riskList: this.riskList,
  7724. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  7725. };
  7726. return this.$api.letter[this.apiInterfaceName](param).then((res) => {
  7727. this.dajia(num, id);
  7728. });
  7729. } else if (!!res.data) {
  7730. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  7731. this.totalCompanyList[num].lastYearMsg = "";
  7732. let dat = res.data.warnMessageList;
  7733. dat.map((ele) => {
  7734. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  7735. });
  7736. }
  7737. this.totalCompanyList[num].quoteCode = 200;
  7738. this.totalCompanyList[num].result = res.data;
  7739. this.QuotationHistory();
  7740. } else {
  7741. this.totalCompanyList[num].quoteCode = "3";
  7742. this.totalCompanyList[num].msg = res.msg;
  7743. return;
  7744. }
  7745. });
  7746. },
  7747. //华泰报价
  7748. huatai(num, id) {
  7749. let type = this.totalCompanyList[num].apiType;
  7750. let api = type == 2 ? "pythonquote" : "huataiquote";
  7751. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  7752. let params = {
  7753. orderNo: this.orderno,
  7754. companyId: id,
  7755. kinds: this.kindList,
  7756. risks: this.riskList,
  7757. agreementId: this.totalCompanyList[num].agreementId,
  7758. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  7759. };
  7760. this.$api.letter[api](params).then((res) => {
  7761. this.totalCompanyList[num].msg = res.msg;
  7762. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  7763. this.totalCompanyList[num].quoteCode = "4";
  7764. this.totalCompanyList[num].msg = res.msg;
  7765. return;
  7766. } else if (
  7767. res.data == null &&
  7768. res.msg.indexOf("交强险平台返回") > -1 &&
  7769. res.msg.indexOf(";终保日期") > -1
  7770. ) {
  7771. //判断保司返回重复投保信息,进行默认赋值起终保日期,重新算费 后面联调需要调整
  7772. let time =
  7773. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  7774. this.jqstartDate = time;
  7775. this.jqendDate = this.oneYearPast1(time);
  7776. this.systartDate = time;
  7777. this.syendDate = this.oneYearPast1(time);
  7778. if (this.riskList.length > 0) {
  7779. for (let i = 0; i < this.riskList.length; i++) {
  7780. if (this.riskList[i].riskCode == "0507") {
  7781. this.riskList[i].startDate = time;
  7782. this.riskList[i].endDate = this.oneYearPast1(time);
  7783. } else if (this.riskList[i].riskCode == "0510") {
  7784. this.riskList[i].startDate = time;
  7785. this.riskList[i].endDate = this.oneYearPast1(time);
  7786. }
  7787. }
  7788. }
  7789. let param = {
  7790. userId: this.userId,
  7791. quoteno: this.quoteno,
  7792. orderNo: this.orderno,
  7793. carInfo: this.carInfo,
  7794. insuredPersonInfo: this.insuredPersonInfo,
  7795. ownerInfo: this.ownerInfo,
  7796. policyHolderInfo: this.policyHolderInfo,
  7797. kindList: this.kindList,
  7798. riskList: this.riskList,
  7799. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  7800. };
  7801. return this.$api.letter[this.apiInterfaceName](param).then((res) => {
  7802. this.huatai(num, id);
  7803. });
  7804. } else if (!!res.data) {
  7805. this.totalCompanyList[num].quoteCode = 200;
  7806. this.totalCompanyList[num].result = res.data;
  7807. this.QuotationHistory();
  7808. } else {
  7809. this.totalCompanyList[num].quoteCode = "3";
  7810. this.totalCompanyList[num].msg = res.msg;
  7811. return;
  7812. }
  7813. });
  7814. },
  7815. //紫金报价
  7816. zijin(num, id) {
  7817. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  7818. let params = {
  7819. accidentalDrivingVo: this.accidentalDrivingVo,
  7820. orderNo: this.orderno,
  7821. companyId: id,
  7822. kinds: this.kindList,
  7823. risks: this.riskList,
  7824. agreementId: this.totalCompanyList[num].agreementId,
  7825. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  7826. coefficient: this.totalCompanyList[num].coefficient,
  7827. };
  7828. this.$api.letter.zijinquote(params).then((res) => {
  7829. this.totalCompanyList[num].msg = res.msg;
  7830. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  7831. this.totalCompanyList[num].quoteCode = "4";
  7832. this.totalCompanyList[num].msg = res.msg;
  7833. return;
  7834. } else if (
  7835. res.data == null &&
  7836. res.msg.indexOf("交强险平台返回") > -1 &&
  7837. res.msg.indexOf(";终保日期") > -1
  7838. ) {
  7839. let time =
  7840. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  7841. this.jqstartDate = time;
  7842. this.jqendDate = this.oneYearPast1(time);
  7843. this.systartDate = time;
  7844. this.syendDate = this.oneYearPast1(time);
  7845. if (this.riskList.length > 0) {
  7846. for (let i = 0; i < this.riskList.length; i++) {
  7847. if (this.riskList[i].riskCode == "0507") {
  7848. this.riskList[i].startDate = time;
  7849. this.riskList[i].endDate = this.oneYearPast1(time);
  7850. } else if (this.riskList[i].riskCode == "0510") {
  7851. this.riskList[i].startDate = time;
  7852. this.riskList[i].endDate = this.oneYearPast1(time);
  7853. }
  7854. }
  7855. }
  7856. let param = {
  7857. userId: this.userId,
  7858. quoteno: this.quoteno,
  7859. orderNo: this.orderno,
  7860. carInfo: this.carInfo,
  7861. insuredPersonInfo: this.insuredPersonInfo,
  7862. ownerInfo: this.ownerInfo,
  7863. policyHolderInfo: this.policyHolderInfo,
  7864. kindList: this.kindList,
  7865. riskList: this.riskList,
  7866. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  7867. };
  7868. return this.$api.letter[this.apiInterfaceName](param).then((res) => {
  7869. this.zijin(num, id);
  7870. });
  7871. } else if (!!res.data) {
  7872. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  7873. this.totalCompanyList[num].lastYearMsg = "";
  7874. let dat = res.data.warnMessageList;
  7875. dat.map((ele) => {
  7876. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  7877. });
  7878. }
  7879. this.totalCompanyList[num].quoteCode = 200;
  7880. this.totalCompanyList[num].result = res.data;
  7881. this.QuotationHistory();
  7882. } else {
  7883. this.totalCompanyList[num].quoteCode = "3";
  7884. this.totalCompanyList[num].msg = res.msg;
  7885. return;
  7886. }
  7887. });
  7888. },
  7889. //永诚报价
  7890. yongcheng(num, id) {
  7891. this.iscCrownerShow = false;
  7892. this.isInsuredShow = false;
  7893. this.isApplicantShow = false;
  7894. let accidentalDrivingVo = {};
  7895. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  7896. if (this.accidentForm.projectCode) {
  7897. let data = this.yongchengaccidentDataList.find(
  7898. (val) => val.projectCode == this.yongchengtemplateSelection
  7899. );
  7900. accidentalDrivingVo = {
  7901. ...data,
  7902. quantity: this.accidentForm.quantity
  7903. ? this.accidentForm.quantity
  7904. : "",
  7905. };
  7906. }
  7907. let params = {
  7908. accidentalDrivingVo,
  7909. orderNo: this.orderno,
  7910. companyId: id,
  7911. kinds: this.kindList,
  7912. risks: this.riskList,
  7913. cqryCdeJq: this.cqryCdeJq,
  7914. cqryCdeSy: this.cqryCdeSy,
  7915. renewalCodeJq: this.renewalCodeJq,
  7916. renewalCodeSy: this.renewalCodeSy,
  7917. agreementId: this.totalCompanyList[num].agreementId,
  7918. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  7919. };
  7920. this.$api.letter.yongchengquote(params).then((res) => {
  7921. this.totalCompanyList[num].msg = res.msg;
  7922. if (
  7923. res.data == null &&
  7924. res.msg.indexOf("车险平台返回") > -1 &&
  7925. res.msg.indexOf(";终保日期") > -1
  7926. ) {
  7927. let time =
  7928. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  7929. this.jqstartDate = time;
  7930. this.jqendDate = this.oneYearPast1(time);
  7931. if (this.riskList.length > 0) {
  7932. for (let i = 0; i < this.riskList.length; i++) {
  7933. if (this.riskList[i].riskCode == "0507") {
  7934. this.riskList[i].startDate = time;
  7935. this.riskList[i].endDate = this.oneYearPast1(time);
  7936. }
  7937. }
  7938. }
  7939. let param = {
  7940. userId: this.userId,
  7941. quoteno: this.quoteno,
  7942. orderNo: this.orderno,
  7943. carInfo: this.carInfo,
  7944. insuredPersonInfo: this.insuredPersonInfo,
  7945. ownerInfo: this.ownerInfo,
  7946. policyHolderInfo: this.policyHolderInfo,
  7947. kindList: this.kindList,
  7948. riskList: this.riskList,
  7949. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  7950. };
  7951. return this.$api.letter[this.apiInterfaceName](param).then((res) => {
  7952. this.yongcheng(num, id);
  7953. });
  7954. } else if (res.code == "200") {
  7955. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  7956. this.totalCompanyList[num].lastYearMsg = "";
  7957. let dat = res.data.warnMessageList;
  7958. dat.map((ele) => {
  7959. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  7960. });
  7961. }
  7962. this.totalCompanyList[num].quoteCode = 200;
  7963. this.totalCompanyList[num].result = res.data;
  7964. this.QuotationHistory();
  7965. } else if (res.code == "101") {
  7966. this.totalCompanyList[num].quoteCode = "101";
  7967. this.totalCompanyList[num].msg = res.msg;
  7968. this.cqryCdeJq = res.data.cqryCdeJq;
  7969. this.cqryCdeSy = res.data.cqryCdeSy;
  7970. let jq = res.data.renewalCodeJq.replace(/[\r\n]/g, "");
  7971. let jqBase64 = `data:image/png;base64,${jq}`;
  7972. this.renewalCodeJqImg = jqBase64;
  7973. if (res.data.renewalCodeSy) {
  7974. let sy = res.data.renewalCodeSy.replace(/[\r\n]/g, "");
  7975. let syBase64 = `data:image/png;base64,${sy}`;
  7976. this.renewalCodeSyImg = syBase64;
  7977. }
  7978. this.renewalCodedialogVisible = true;
  7979. } else if (res.code == "500") {
  7980. // this.iscCrownerShow=res.msg.indexOf("车主地区自动解析失败")!=-1?true:false
  7981. // this.isInsuredShow=res.msg.indexOf("被保人地区自动解析失败")!=-1?true:false
  7982. // this.isApplicantShow=res.msg.indexOf("投保人地区自动解析失败")!=-1?true:false
  7983. // this.ownerInfo.provinceData= this.iscCrownerShow?[]: this.ownerInfo.provinceData
  7984. // this.insuredPersonInfo.provinceData= this.isInsuredShow?[]: this.insuredPersonInfo.provinceData
  7985. // this.policyHolderInfo.provinceData= this.isApplicantShow?[]: this.policyHolderInfo.provinceData
  7986. this.totalCompanyList[num].quoteCode = "3";
  7987. this.totalCompanyList[num].msg = res.msg;
  7988. } else {
  7989. this.totalCompanyList[num].quoteCode = "3";
  7990. this.totalCompanyList[num].msg = res.msg;
  7991. return;
  7992. }
  7993. });
  7994. },
  7995. //国任报价
  7996. guoRen(num, id) {
  7997. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  7998. let guoRenSpecialAgreementVo = [];
  7999. this.zijinengageList.forEach((val) => {
  8000. guoRenSpecialAgreementVo.push({
  8001. clauses: val.clauseName,
  8002. clausesContext: val.clauses,
  8003. clauseCode: val.clauseCode,
  8004. riskCode: val.riskCode,
  8005. riskName: val.riskName,
  8006. });
  8007. });
  8008. let accidentalDrivingVo = {};
  8009. if (this.guoRenaccidentForm.goodsCode) {
  8010. accidentalDrivingVo = this.guoRenaccidentalDrivingVo;
  8011. }
  8012. let params = {
  8013. accidentalDrivingVo,
  8014. orderNo: this.orderno,
  8015. companyId: id,
  8016. kinds: this.kindList,
  8017. risks: this.riskList,
  8018. cqryCdeJq: this.cqryCdeJq,
  8019. cqryCdeSy: this.cqryCdeSy,
  8020. renewalCodeJq: this.renewalCodeJq,
  8021. renewalCodeSy: this.renewalCodeSy,
  8022. agreementId: this.totalCompanyList[num].agreementId,
  8023. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  8024. guoRenSpecialAgreementVo,
  8025. };
  8026. this.$api.letter.guorenquote(params).then((res) => {
  8027. this.totalCompanyList[num].msg = res.msg;
  8028. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  8029. this.totalCompanyList[num].quoteCode = "4";
  8030. this.totalCompanyList[num].msg = res.msg;
  8031. return;
  8032. } else if (
  8033. res.data == null &&
  8034. res.msg.indexOf("车险平台返回") > -1 &&
  8035. res.msg.indexOf(";终保日期") > -1
  8036. ) {
  8037. let time =
  8038. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  8039. this.jqstartDate = time;
  8040. this.jqendDate = this.oneYearPast1(time);
  8041. this.systartDate = time;
  8042. this.syendDate = this.oneYearPast1(time);
  8043. if (this.riskList.length > 0) {
  8044. for (let i = 0; i < this.riskList.length; i++) {
  8045. if (this.riskList[i].riskCode == "0507") {
  8046. this.riskList[i].startDate = time;
  8047. this.riskList[i].endDate = this.oneYearPast1(time);
  8048. } else if (this.riskList[i].riskCode == "0510") {
  8049. this.riskList[i].startDate = time;
  8050. this.riskList[i].endDate = this.oneYearPast1(time);
  8051. }
  8052. }
  8053. }
  8054. let param = {
  8055. userId: this.userId,
  8056. quoteno: this.quoteno,
  8057. orderNo: this.orderno,
  8058. carInfo: this.carInfo,
  8059. insuredPersonInfo: this.insuredPersonInfo,
  8060. ownerInfo: this.ownerInfo,
  8061. policyHolderInfo: this.policyHolderInfo,
  8062. kindList: this.kindList,
  8063. riskList: this.riskList,
  8064. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  8065. };
  8066. return this.$api.letter[this.apiInterfaceName](param).then((res) => {
  8067. this.guoRen(num, id);
  8068. });
  8069. } else if (res.code == "200") {
  8070. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  8071. this.totalCompanyList[num].lastYearMsg = "";
  8072. let dat = res.data.warnMessageList;
  8073. dat.map((ele) => {
  8074. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  8075. });
  8076. }
  8077. this.totalCompanyList[num].quoteCode = 200;
  8078. this.totalCompanyList[num].result = res.data;
  8079. this.QuotationHistory();
  8080. } else if (res.code == "101") {
  8081. this.totalCompanyList[num].quoteCode = "101";
  8082. this.totalCompanyList[num].msg = res.msg;
  8083. this.cqryCdeJq = res.data.cqryCdeJq;
  8084. this.cqryCdeSy = res.data.cqryCdeSy;
  8085. let jq = res.data.renewalCodeJq.replace(/[\r\n]/g, "");
  8086. let jqBase64 = `data:image/png;base64,${jq}`;
  8087. this.renewalCodeJqImg = jqBase64;
  8088. if (res.data.renewalCodeSy) {
  8089. let sy = res.data.renewalCodeSy.replace(/[\r\n]/g, "");
  8090. let syBase64 = `data:image/png;base64,${sy}`;
  8091. this.renewalCodeSyImg = syBase64;
  8092. }
  8093. this.renewalCodedialogVisible = true;
  8094. } else {
  8095. this.totalCompanyList[num].quoteCode = "3";
  8096. this.totalCompanyList[num].msg = res.msg;
  8097. return;
  8098. }
  8099. });
  8100. },
  8101. //渤海报价
  8102. bohai(num, id) {
  8103. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  8104. let accidentalDrivingVo = {};
  8105. if (this.boHaiaccidentForm.projectCode) {
  8106. accidentalDrivingVo = {
  8107. // packageCode: this.boHaiaccidentForm.packageCode,
  8108. // productCode: this.boHaiaccidentDataList.find(
  8109. // (e) => e.packageCode == this.boHaiaccidentForm.packageCode
  8110. // ).productCode,
  8111. // copies: this.boHaiaccidentForm.copies,
  8112. ...this.boHaiaccidentDataList.find(
  8113. (e) => e.projectCode == this.boHaiaccidentForm.projectCode
  8114. ),
  8115. quantity: this.boHaiaccidentForm.copies
  8116. ? this.boHaiaccidentForm.copies
  8117. : "1",
  8118. }
  8119. }
  8120. let params = {
  8121. accidentalDrivingVo,
  8122. orderNo: this.orderno,
  8123. companyId: id,
  8124. kinds: this.kindList,
  8125. risks: this.riskList,
  8126. cqryCdeJq: this.cqryCdeJq,
  8127. cqryCdeSy: this.cqryCdeSy,
  8128. renewalCodeJq: this.renewalCodeJq,
  8129. renewalCodeSy: this.renewalCodeSy,
  8130. agreementId: this.totalCompanyList[num].agreementId,
  8131. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  8132. userId: this.userId,
  8133. };
  8134. this.$api.letter.bohaiquote(params).then((res) => {
  8135. this.totalCompanyList[num].msg = res.msg;
  8136. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  8137. this.totalCompanyList[num].quoteCode = "4";
  8138. this.totalCompanyList[num].msg = res.msg;
  8139. return;
  8140. } else if (
  8141. res.data == null &&
  8142. res.msg.indexOf("车险平台返回") > -1 &&
  8143. res.msg.indexOf(";终保日期") > -1
  8144. ) {
  8145. let time =
  8146. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  8147. this.jqstartDate = time;
  8148. this.jqendDate = this.oneYearPast1(time);
  8149. this.systartDate = time;
  8150. this.syendDate = this.oneYearPast1(time);
  8151. if (this.riskList.length > 0) {
  8152. for (let i = 0; i < this.riskList.length; i++) {
  8153. if (this.riskList[i].riskCode == "0507") {
  8154. this.riskList[i].startDate = time;
  8155. this.riskList[i].endDate = this.oneYearPast1(time);
  8156. } else if (this.riskList[i].riskCode == "0510") {
  8157. this.riskList[i].startDate = time;
  8158. this.riskList[i].endDate = this.oneYearPast1(time);
  8159. }
  8160. }
  8161. }
  8162. let param = {
  8163. userId: this.userId,
  8164. quoteno: this.quoteno,
  8165. orderNo: this.orderno,
  8166. carInfo: this.carInfo,
  8167. insuredPersonInfo: this.insuredPersonInfo,
  8168. ownerInfo: this.ownerInfo,
  8169. policyHolderInfo: this.policyHolderInfo,
  8170. kindList: this.kindList,
  8171. riskList: this.riskList,
  8172. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  8173. };
  8174. return this.$api.letter[this.apiInterfaceName](param).then((res) => {
  8175. this.bohai(num, id);
  8176. });
  8177. } else if (res.code == "200") {
  8178. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  8179. this.totalCompanyList[num].lastYearMsg = "";
  8180. let dat = res.data.warnMessageList;
  8181. dat.map((ele) => {
  8182. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  8183. });
  8184. }
  8185. this.totalCompanyList[num].quoteCode = 200;
  8186. this.totalCompanyList[num].result = res.data;
  8187. this.QuotationHistory();
  8188. } else if (res.code == "101") {
  8189. this.totalCompanyList[num].quoteCode = "101";
  8190. this.totalCompanyList[num].msg = res.msg;
  8191. this.cqryCdeJq = res.data.cqryCdeJq;
  8192. this.cqryCdeSy = res.data.cqryCdeSy;
  8193. let jq = res.data.renewalCodeJq.replace(/[\r\n]/g, "");
  8194. let jqBase64 = `data:image/png;base64,${jq}`;
  8195. this.renewalCodeJqImg = jqBase64;
  8196. if (res.data.renewalCodeSy) {
  8197. let sy = res.data.renewalCodeSy.replace(/[\r\n]/g, "");
  8198. let syBase64 = `data:image/png;base64,${sy}`;
  8199. this.renewalCodeSyImg = syBase64;
  8200. }
  8201. this.renewalCodedialogVisible = true;
  8202. } else {
  8203. this.totalCompanyList[num].quoteCode = "3";
  8204. this.totalCompanyList[num].msg = res.msg;
  8205. return;
  8206. }
  8207. });
  8208. },
  8209. // 爬虫对接
  8210. quoteInsurance(num, id, namesimple, apiType) {
  8211. console.log(namesimple)
  8212. let api = apiType == 2 ? "pythonquote" : " ";
  8213. let ccidenttype = this.totalCompanyList[num].cnName;
  8214. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  8215. let params = {
  8216. accidentalDrivingVo: this[ccidenttype + "accidentalDrivingVo"],
  8217. orderNo: this.orderno,
  8218. companyId: id,
  8219. kinds: this.kindList,
  8220. risks: this.riskList,
  8221. userId: this.userId,
  8222. agreementId: this.totalCompanyList[num].agreementId,
  8223. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  8224. };
  8225. if (namesimple == "中国人寿" && this.lastCompanyId) {
  8226. params.discount = this.totalCompanyList[num].discount;
  8227. params.lastCompanyId = this.lastCompanyId;
  8228. }
  8229. if (namesimple == "诚泰财险") {
  8230. if (this.lastCompanyId && this.totalCompanyList[num].coefficient && this.totalCompanyList[num].discount) {
  8231. params.coefficient = this.totalCompanyList[num].coefficient;
  8232. params.discount = this.totalCompanyList[num].discount;
  8233. params.lastCompanyId = this.lastCompanyId;
  8234. }
  8235. params.isInspect = this.totalCompanyList[num].isInspect;
  8236. }
  8237. if (
  8238. namesimple == "华农财险" &&
  8239. this.huanongaccidentalDrivingVo.quantity
  8240. ) {
  8241. params.accidentalDrivingVo.quantity = this.accidentFormHN.quantity;
  8242. // params.accidentalDrivingVo.allQuantity = this.accidentFormHN.allQuantity;
  8243. }
  8244. this.$api.letter[api](params).then((res) => {
  8245. this.totalCompanyList[num].msg = res.msg;
  8246. switch (namesimple) {
  8247. case "诚泰财险":
  8248. case "安盛天平":
  8249. case "泰康财险":
  8250. case "中国人寿":
  8251. case "恒邦财险":
  8252. case "华农财险":
  8253. case "太平财险":
  8254. if (!!res.data) {
  8255. if (
  8256. res.data.warnMessageList &&
  8257. res.data.warnMessageList.length > 0
  8258. ) {
  8259. this.totalCompanyList[num].lastYearMsg = "";
  8260. let dat = res.data.warnMessageList;
  8261. dat.map((ele) => {
  8262. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  8263. });
  8264. }
  8265. if (res.data.predictInfo && res.data.predictInfo.length > 0) {
  8266. this.totalCompanyList[num].predictInfo = res.data.predictInfo;
  8267. }
  8268. this.totalCompanyList[num].quoteCode = 200;
  8269. this.totalCompanyList[num].result = res.data;
  8270. if (namesimple == "中国人寿" && res.data.companyId) {
  8271. this.lastCompanyId = res.data.companyId;
  8272. }
  8273. if (namesimple == "诚泰财险" && res.data.companyId) {
  8274. this.lastCompanyId = res.data.companyId;
  8275. }
  8276. this.QuotationHistory();
  8277. } else {
  8278. this.totalCompanyList[num].quoteCode = "3";
  8279. this.totalCompanyList[num].msg = res.msg;
  8280. return;
  8281. }
  8282. break;
  8283. case "众安财险":
  8284. if (!!res.data) {
  8285. if (res.data.tips == "需要验车") {
  8286. this.$notify.error({
  8287. title: "通融单",
  8288. duration: 0,
  8289. dangerouslyUseHTMLString: true,
  8290. message: `<div> ${res.data.warnMessageList
  8291. .map((item) => {
  8292. return `<p>${item}</p>`;
  8293. })
  8294. .join("")}
  8295. </div>`,
  8296. });
  8297. }
  8298. if (
  8299. res.data.warnMessageList &&
  8300. res.data.warnMessageList.length > 0
  8301. ) {
  8302. this.totalCompanyList[num].lastYearMsg = "";
  8303. let dat = res.data.warnMessageList;
  8304. dat.map((ele) => {
  8305. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  8306. });
  8307. }
  8308. this.totalCompanyList[num].quoteCode = 200;
  8309. this.totalCompanyList[num].result = res.data;
  8310. this.QuotationHistory();
  8311. } else {
  8312. this.totalCompanyList[num].quoteCode = "3";
  8313. this.totalCompanyList[num].msg = res.msg;
  8314. return;
  8315. }
  8316. break;
  8317. default:
  8318. break;
  8319. }
  8320. });
  8321. },
  8322. //诚泰
  8323. chengtai(num, id, namesimple) {
  8324. this.quoteInsurance(
  8325. num,
  8326. id,
  8327. namesimple,
  8328. this.totalCompanyList[num].apiType
  8329. );
  8330. },
  8331. //安盛天平
  8332. ansheng(num, id, namesimple) {
  8333. this.quoteInsurance(
  8334. num,
  8335. id,
  8336. namesimple,
  8337. this.totalCompanyList[num].apiType
  8338. );
  8339. },
  8340. //众安
  8341. zhongan(num, id, namesimple) {
  8342. this.quoteInsurance(
  8343. num,
  8344. id,
  8345. namesimple,
  8346. this.totalCompanyList[num].apiType
  8347. );
  8348. },
  8349. //人寿
  8350. renshou(num, id, namesimple) {
  8351. this.quoteInsurance(
  8352. num,
  8353. id,
  8354. namesimple,
  8355. this.totalCompanyList[num].apiType
  8356. );
  8357. },
  8358. //恒邦
  8359. hengbang(num, id, namesimple) {
  8360. this.quoteInsurance(
  8361. num,
  8362. id,
  8363. namesimple,
  8364. this.totalCompanyList[num].apiType
  8365. );
  8366. },
  8367. //太平
  8368. taiping(num, id, namesimple) {
  8369. this.quoteInsurance(
  8370. num,
  8371. id,
  8372. namesimple,
  8373. this.totalCompanyList[num].apiType
  8374. );
  8375. },
  8376. //华农
  8377. huanong(num, id, namesimple) {
  8378. this.quoteInsurance(
  8379. num,
  8380. id,
  8381. namesimple,
  8382. this.totalCompanyList[num].apiType
  8383. );
  8384. },
  8385. capTypedictTag(val, option) {
  8386. if (option.find((item) => item.dictValue == val)) {
  8387. return option.find((item) => item.dictValue == val).dictTag;
  8388. } else {
  8389. return "-";
  8390. }
  8391. },
  8392. // 爬虫对接
  8393. qoutedetail(companyId) {
  8394. let params = {
  8395. companyId: companyId,
  8396. };
  8397. this.$api.letter.getByCompanyId(params).then((res) => {
  8398. if (res.code == "200") {
  8399. var data = res.data;
  8400. data.kindinfo.map((ele, index) => {
  8401. switch (ele.kindCode) {
  8402. case "A":
  8403. ele.amount = "投保";
  8404. break;
  8405. case "D4":
  8406. case "SY_FJ_YBW2":
  8407. ele.unitAmount = this.toChinesNum(ele.unitAmount);
  8408. break;
  8409. case "MJ1":
  8410. case "MJ2":
  8411. case "MJ3":
  8412. case "MJ4":
  8413. ele.deductibleRate = ele.deductibleRate + "%";
  8414. break;
  8415. default:
  8416. ele.amount = this.toChinesNum(ele.amount);
  8417. }
  8418. return ele;
  8419. });
  8420. if (
  8421. (data.carinfo.carnature && data.carinfo.carnature == "02") ||
  8422. data.carinfo.carnature == "非营业"
  8423. ) {
  8424. data.carinfo.vehicleUse = this.capTypedictTag(
  8425. data.carinfo.vehicleUse,
  8426. this.outOfBusinessVehicleUseoptions
  8427. );
  8428. } else {
  8429. data.carinfo.vehicleUse = this.capTypedictTag(
  8430. data.carinfo.vehicleUse,
  8431. this.businessVehicleUseoptions
  8432. );
  8433. }
  8434. data.carinfo.carnature = this.capTypedictTag(
  8435. data.carinfo.carnature,
  8436. this.natureOfVehicleUseoptions
  8437. );
  8438. data.carinfo.cartype = data.carinfo.cartype
  8439. ? this.capTypedictTag(
  8440. data.carinfo.cartype,
  8441. this.trafficManagementVehicleTypeoptions
  8442. )
  8443. : "";
  8444. data.carinfo.cimodelclass = data.carinfo.cimodelclass
  8445. ? this.capTypedictTag(
  8446. data.carinfo.cimodelclass,
  8447. this.vehicleTypeoptions
  8448. )
  8449. : "";
  8450. data.carinfo.energyType = data.carinfo.energyType
  8451. ? this.capTypedictTag(
  8452. data.carinfo.energyType,
  8453. this.energyTypeoptions
  8454. )
  8455. : "";
  8456. this.queryOrders = data;
  8457. //赋值费用信息
  8458. // this.feeDetailInfo=data.orderFeeResult;
  8459. }
  8460. });
  8461. this.$refs.detailsDialog.setBackupVisible(true);
  8462. },
  8463. imageUpload() {
  8464. this.imageUploaddialogVisible = true;
  8465. // this.$refs.imageDialog.setBackupVisible(true);
  8466. },
  8467. tabLiScroll(id, idx) {
  8468. this.tabLiIndex = idx;
  8469. document.getElementById(id).scrollIntoView({ behavior: "smooth" });
  8470. },
  8471. //影像上传
  8472. drivingupload(file, imageIdList, imgurl, type) {
  8473. let that = this;
  8474. let size = file.size / 1024 / 1024 < 5;
  8475. const isJPG =
  8476. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  8477. if (!size) {
  8478. this.$message.error("上传图片大小不能超过 5MB!");
  8479. this[imgurl] = [];
  8480. return false;
  8481. }
  8482. if (!isJPG) {
  8483. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  8484. this[imgurl] = [];
  8485. return false;
  8486. }
  8487. this[imgurl].push(file);
  8488. var file = file.raw;
  8489. const params = new FormData(); // 声明formData数据类型
  8490. params.append("multipartFile", file);
  8491. params.append("type", "image");
  8492. this.$api.letter.uploadFile(params).then((res) => {
  8493. if (res.code == "200") {
  8494. if (this[imageIdList].some((v) => v.imageType == type)) {
  8495. this[imageIdList].map((val) => {
  8496. if (val.imageType == type) {
  8497. val.imageId = res.data.id;
  8498. }
  8499. });
  8500. } else {
  8501. this[imageIdList].push({
  8502. imageId: res.data.id,
  8503. imageType: type,
  8504. });
  8505. }
  8506. }
  8507. });
  8508. },
  8509. imageEcho(quotenos) {
  8510. //影像查询
  8511. this.$api.letter.findByQuoteNo(quotenos).then((res) => {
  8512. if (res.code == "200") {
  8513. this.imageList1 = [];
  8514. this.imageList2 = [];
  8515. this.imageList3 = [];
  8516. this.imageList4 = [];
  8517. this.imageList5 = [];
  8518. this.imageList6 = [];
  8519. this.imgList1 = [];
  8520. this.imgList2 = [];
  8521. this.imgList3 = [];
  8522. this.imgList4 = [];
  8523. this.imgList5 = [];
  8524. this.imgList6 = [];
  8525. this.imgList7 = [];
  8526. this.imgList8 = [];
  8527. this.imgList9 = [];
  8528. this.imgList10 = [];
  8529. this.imgList11 = [];
  8530. this.imgList12 = [];
  8531. this.imgList13 = [];
  8532. this.imgList14 = [];
  8533. this.imgList15 = [];
  8534. this.imgList16 = [];
  8535. this.imgList17 = [];
  8536. this.imgList18 = [];
  8537. this.imgList19 = [];
  8538. this.imgList20 = [];
  8539. this.imgList21 = [];
  8540. this.imgList22 = [];
  8541. this.imgList23 = [];
  8542. this.imgList24 = [];
  8543. this.imgList25 = [];
  8544. this.imgList26 = [];
  8545. this.imgList27 = [];
  8546. this.imgList28 = [];
  8547. Object.keys(res.data).forEach((keys) => {
  8548. if (res.data[keys].url) {
  8549. res.data[keys].url = process.env.BASE_URL + res.data[keys].url;
  8550. switch (keys) {
  8551. case "C01":
  8552. this.imageList1.push({
  8553. imageId: res.data[keys].imageId,
  8554. imageType: res.data[keys].imageType,
  8555. });
  8556. this.imgList1.push(res.data[keys]);
  8557. break;
  8558. case "D01":
  8559. this.imageList1.push({
  8560. imageId: res.data[keys].imageId,
  8561. imageType: res.data[keys].imageType,
  8562. });
  8563. this.imgList2.push(res.data[keys]);
  8564. break;
  8565. case "C02":
  8566. this.imageList2.push({
  8567. imageId: res.data[keys].imageId,
  8568. imageType: res.data[keys].imageType,
  8569. });
  8570. this.imgList3.push(res.data[keys]);
  8571. break;
  8572. case "D02":
  8573. this.imageList2.push({
  8574. imageId: res.data[keys].imageId,
  8575. imageType: res.data[keys].imageType,
  8576. });
  8577. this.imgList4.push(res.data[keys]);
  8578. break;
  8579. case "Y02":
  8580. this.imageList2.push({
  8581. imageId: res.data[keys].imageId,
  8582. imageType: res.data[keys].imageType,
  8583. });
  8584. this.imgList26.push(res.data[keys]);
  8585. break;
  8586. case "C03":
  8587. this.imageList3.push({
  8588. imageId: res.data[keys].imageId,
  8589. imageType: res.data[keys].imageType,
  8590. });
  8591. this.imgList5.push(res.data[keys]);
  8592. break;
  8593. case "D03":
  8594. this.imageList3.push({
  8595. imageId: res.data[keys].imageId,
  8596. imageType: res.data[keys].imageType,
  8597. });
  8598. this.imgList6.push(res.data[keys]);
  8599. break;
  8600. case "Y03":
  8601. this.imageList3.push({
  8602. imageId: res.data[keys].imageId,
  8603. imageType: res.data[keys].imageType,
  8604. });
  8605. this.imgList27.push(res.data[keys]);
  8606. break;
  8607. case "C04":
  8608. this.imageList4.push({
  8609. imageId: res.data[keys].imageId,
  8610. imageType: res.data[keys].imageType,
  8611. });
  8612. this.imgList7.push(res.data[keys]);
  8613. break;
  8614. case "D04":
  8615. this.imageList4.push({
  8616. imageId: res.data[keys].imageId,
  8617. imageType: res.data[keys].imageType,
  8618. });
  8619. this.imgList8.push(res.data[keys]);
  8620. break;
  8621. case "Y04":
  8622. this.imageList4.push({
  8623. imageId: res.data[keys].imageId,
  8624. imageType: res.data[keys].imageType,
  8625. });
  8626. this.imgList28.push(res.data[keys]);
  8627. break;
  8628. case "XC00":
  8629. this.imageList5.push({
  8630. imageId: res.data[keys].imageId,
  8631. imageType: res.data[keys].imageType,
  8632. });
  8633. this.imgList9.push(res.data[keys]);
  8634. break;
  8635. case "GC00":
  8636. this.imageList5.push({
  8637. imageId: res.data[keys].imageId,
  8638. imageType: res.data[keys].imageType,
  8639. });
  8640. this.imgList10.push(res.data[keys]);
  8641. break;
  8642. case "GX00":
  8643. this.imageList5.push({
  8644. imageId: res.data[keys].imageId,
  8645. imageType: res.data[keys].imageType,
  8646. });
  8647. this.imgList11.push(res.data[keys]);
  8648. break;
  8649. case "TAR05":
  8650. this.imageList1.push({
  8651. imageId: res.data[keys].imageId,
  8652. imageType: res.data[keys].imageType,
  8653. });
  8654. this.imgList12.push(res.data[keys]);
  8655. break;
  8656. case "C0500":
  8657. this.imageList6.push({
  8658. imageId: res.data[keys].imageId,
  8659. imageType: res.data[keys].imageType,
  8660. });
  8661. this.imgList13.push(res.data[keys]);
  8662. break;
  8663. case "C0501":
  8664. this.imageList6.push({
  8665. imageId: res.data[keys].imageId,
  8666. imageType: res.data[keys].imageType,
  8667. });
  8668. this.imgList14.push(res.data[keys]);
  8669. break;
  8670. case "C0502":
  8671. this.imageList6.push({
  8672. imageId: res.data[keys].imageId,
  8673. imageType: res.data[keys].imageType,
  8674. });
  8675. this.imgList15.push(res.data[keys]);
  8676. break;
  8677. case "C0503":
  8678. this.imageList6.push({
  8679. imageId: res.data[keys].imageId,
  8680. imageType: res.data[keys].imageType,
  8681. });
  8682. this.imgList16.push(res.data[keys]);
  8683. break;
  8684. case "C0504":
  8685. this.imageList6.push({
  8686. imageId: res.data[keys].imageId,
  8687. imageType: res.data[keys].imageType,
  8688. });
  8689. this.imgList17.push(res.data[keys]);
  8690. break;
  8691. case "C0506":
  8692. this.imageList6.push({
  8693. imageId: res.data[keys].imageId,
  8694. imageType: res.data[keys].imageType,
  8695. });
  8696. this.imgList18.push(res.data[keys]);
  8697. break;
  8698. case "C0507":
  8699. this.imageList6.push({
  8700. imageId: res.data[keys].imageId,
  8701. imageType: res.data[keys].imageType,
  8702. });
  8703. this.imgList19.push(res.data[keys]);
  8704. break;
  8705. case "C0505":
  8706. this.imageList6.push({
  8707. imageId: res.data[keys].imageId,
  8708. imageType: res.data[keys].imageType,
  8709. });
  8710. this.imgList20.push(res.data[keys]);
  8711. break;
  8712. case "C0508":
  8713. this.imageList6.push({
  8714. imageId: res.data[keys].imageId,
  8715. imageType: res.data[keys].imageType,
  8716. });
  8717. this.imgList21.push(res.data[keys]);
  8718. break;
  8719. case "C0509":
  8720. this.imageList6.push({
  8721. imageId: res.data[keys].imageId,
  8722. imageType: res.data[keys].imageType,
  8723. });
  8724. this.imgList22.push(res.data[keys]);
  8725. break;
  8726. case "C0510":
  8727. this.imageList6.push({
  8728. imageId: res.data[keys].imageId,
  8729. imageType: res.data[keys].imageType,
  8730. });
  8731. this.imgList23.push(res.data[keys]);
  8732. break;
  8733. case "LAST_INSURANCE_POLICY":
  8734. this.imageList6.push({
  8735. imageId: res.data[keys].imageId,
  8736. imageType: res.data[keys].imageType,
  8737. });
  8738. this.imgList24.push(res.data[keys]);
  8739. break;
  8740. default:
  8741. break;
  8742. }
  8743. }
  8744. });
  8745. } else {
  8746. this.$message({ message: res.msg, type: "info" });
  8747. }
  8748. });
  8749. },
  8750. policyUpload() {
  8751. this.policyNumberForm.jqPolicyList = !this.policyNumberForm.jqPolicyList
  8752. ? []
  8753. : this.policyNumberForm.jqPolicyList;
  8754. this.policyNumberForm.jqSignList = !this.policyNumberForm.jqSignList
  8755. ? []
  8756. : this.policyNumberForm.jqSignList;
  8757. this.policyNumberForm.syPolicyList = !this.policyNumberForm.syPolicyList
  8758. ? []
  8759. : this.policyNumberForm.syPolicyList;
  8760. this.policyNumberForm.noPolicyList = !this.policyNumberForm.noPolicyList
  8761. ? []
  8762. : this.policyNumberForm.noPolicyList;
  8763. this.policyUploaddialogVisible = true;
  8764. },
  8765. cancelorder(item) {
  8766. this.$api.letter.zijincancelorder({ companyId: item.id }).then((res) => {
  8767. if (res.code == 200) {
  8768. this.$message({
  8769. message: res.msg,
  8770. type: "success",
  8771. });
  8772. this.QuotationHistory();
  8773. }
  8774. });
  8775. },
  8776. hbsubmitdialog(data) {
  8777. if (this.imageList1.length == 0 && this.imageList2.length == 0) {
  8778. this.$message({ message: "影像不全,先上传影像", type: "error" });
  8779. return;
  8780. }
  8781. this.companyId = data.result.companyId;
  8782. this.apiType = data.apiType;
  8783. this.hbsubmitdialogVisible = true;
  8784. this.contributingState = false;
  8785. if (data.namesimple == "紫金财险") {
  8786. this.$api.letter
  8787. .zijinqueryClauseData({ companyId: this.companyId })
  8788. .then((res) => {
  8789. this.zijinengageListData = res.data;
  8790. });
  8791. }
  8792. if (data.namesimple == "华泰财险") {
  8793. this.zijinengageList = [];
  8794. this.$api.letter
  8795. .huataiqueryClauseData({ companyId: this.companyId })
  8796. .then((res) => {
  8797. res.data.forEach((val) => {
  8798. val.clauseCode = val.engageCode;
  8799. val.clauseName = val.engageTitle;
  8800. val.clauseContent = val.engageDetail;
  8801. val.clauses = val.engageDetail;
  8802. });
  8803. this.zijinengageListData = res.data;
  8804. this.zijinengageListData.forEach((val) => {
  8805. this.$nextTick(() => {
  8806. if (val.optType == "2") {
  8807. this.zijinengageList.push(val);
  8808. this.$refs.expandTablePro.toggleRowSelection(val, true);
  8809. }
  8810. });
  8811. });
  8812. });
  8813. } else {
  8814. this.zijinengageListData = [];
  8815. }
  8816. // switch (data.namesimple) {
  8817. // case "紫金财险":
  8818. // this.$api.letter.zijinqueryClauseData({ companyId: this.companyId }).then(res => {
  8819. // this.zijinengageListData = res.data;
  8820. // });
  8821. // break;
  8822. // default:
  8823. // break;
  8824. // }
  8825. },
  8826. hbsubmit() {
  8827. this.hbsubmitdialogVisible = false;
  8828. this.contributingState = false;
  8829. this.$api.letter
  8830. .getByCompanyId({ companyId: this.companyId })
  8831. .then(async (res) => {
  8832. if (res.code == 200) {
  8833. var data = res.data;
  8834. this.queryOrders = data;
  8835. const loading = this.$loading({
  8836. lock: true,
  8837. text: "Loading",
  8838. spinner: "el-icon-loading",
  8839. background: "rgba(0, 0, 0, 0.7)",
  8840. });
  8841. switch (this.queryOrders.inscompany) {
  8842. case "永安财险":
  8843. let api = "";
  8844. api =
  8845. this.apiType == 2
  8846. ? "pythonsubmitImage"
  8847. : "insyongansubmitImage";
  8848. await this.$api.letter[api]({
  8849. companyId: this.companyId,
  8850. }).then((res) => {
  8851. if (res.code == "200") {
  8852. var _this = this;
  8853. let api1 = "";
  8854. api1 = this.apiType == 2 ? "pythonaudit" : "yonganaudit";
  8855. this.$api.letter[api1]({
  8856. companyId: this.companyId,
  8857. }).then((res) => {
  8858. var _this = this;
  8859. if (res.code == "200") {
  8860. loading.close();
  8861. this.$message({
  8862. message: "核保成功",
  8863. type: "success",
  8864. });
  8865. this.QuotationHistory();
  8866. _this.$api.letter
  8867. .getByCompanyId({ companyId: this.companyId })
  8868. .then((res) => {
  8869. _this.orderstatus = res.data.orderstatus; //订单状态
  8870. _this.underwritingdialogVisible = true;
  8871. let indexid = this.totalCompanyList.findIndex(
  8872. (item) =>
  8873. item.namesimple == this.queryOrders.inscompany
  8874. );
  8875. this.totalCompanyList[indexid].orderstatus =
  8876. res.data.orderstatus;
  8877. });
  8878. } else {
  8879. loading.close();
  8880. this.$message({
  8881. showClose: true,
  8882. message:
  8883. this.queryOrders.inscompany + "提核--:" + res.msg,
  8884. type: "error",
  8885. duration: 0,
  8886. });
  8887. }
  8888. });
  8889. } else {
  8890. this.$message({
  8891. message: this.queryOrders.inscompany + "影像:" + res.msg,
  8892. type: "error",
  8893. duration: 7000,
  8894. });
  8895. loading.close();
  8896. }
  8897. });
  8898. break;
  8899. case "中煤财险":
  8900. await this.$api.letter
  8901. .insZhongmeisubmitImage({
  8902. companyId: this.companyId,
  8903. })
  8904. .then((res) => {
  8905. if (res.code == "200") {
  8906. var _this = this;
  8907. _this.$api.letter
  8908. .Zhongmeiaudit({
  8909. companyId: this.companyId,
  8910. jqappoint: "",
  8911. syappoint: "",
  8912. })
  8913. .then((res) => {
  8914. if (res.code == "200") {
  8915. loading.close();
  8916. _this.$message({
  8917. message: "核保成功",
  8918. type: "success",
  8919. });
  8920. this.QuotationHistory();
  8921. _this.$api.letter
  8922. .getByCompanyId({ companyId: this.companyId })
  8923. .then((res) => {
  8924. _this.orderstatus = res.data.orderstatus; //订单状态
  8925. _this.underwritingdialogVisible = true;
  8926. let indexid = this.totalCompanyList.findIndex(
  8927. (item) =>
  8928. item.namesimple ==
  8929. this.queryOrders.inscompany
  8930. );
  8931. this.totalCompanyList[indexid].orderstatus =
  8932. res.data.orderstatus;
  8933. });
  8934. } else {
  8935. loading.close();
  8936. _this.$message({
  8937. showClose: true,
  8938. message:
  8939. this.queryOrders.inscompany +
  8940. "提核--:" +
  8941. res.msg,
  8942. type: "error",
  8943. duration: 0,
  8944. });
  8945. _this.$api.letter
  8946. .getByCompanyId({ companyId: this.companyId })
  8947. .then((res) => {
  8948. _this.orderstatus = res.data.orderstatus; //订单状态
  8949. });
  8950. }
  8951. });
  8952. } else {
  8953. this.$message({
  8954. message:
  8955. this.queryOrders.inscompany + "影像--:" + res.msg,
  8956. type: "error",
  8957. duration: 7000,
  8958. });
  8959. loading.close();
  8960. }
  8961. });
  8962. break;
  8963. case "华泰财险":
  8964. let HtApiImage = "";
  8965. HtApiImage =
  8966. this.apiType == 2
  8967. ? "pythonsubmitImage"
  8968. : "insHuataisubmitImage";
  8969. await this.$api.letter[HtApiImage]({
  8970. [this.apiType == 2 ? "subOrderNo" : "companyId"]:
  8971. this.companyId,
  8972. }).then((res) => {
  8973. if (res.code == "200") {
  8974. var _this = this;
  8975. let HtApiaudit = "";
  8976. HtApiaudit =
  8977. this.apiType == 2 ? "pythonaudit" : "huataiaudit";
  8978. let engageList = [];
  8979. this.zijinengageList.forEach((val) => {
  8980. engageList.push({
  8981. engageCode: val.clauseCode,
  8982. engageDetail: val.clauses,
  8983. engageTitle: val.clauseName,
  8984. riskCode: val.riskCode,
  8985. });
  8986. });
  8987. _this.$api.letter[HtApiaudit]({
  8988. [this.apiType == 2 ? "subOrderNo" : "companyId"]:
  8989. this.companyId,
  8990. engageList,
  8991. }).then((res) => {
  8992. if (res.code == "200") {
  8993. loading.close();
  8994. _this.$message({
  8995. message: "核保成功",
  8996. type: "success",
  8997. });
  8998. this.QuotationHistory();
  8999. _this.$api.letter
  9000. .getByCompanyId({ companyId: this.companyId })
  9001. .then((res) => {
  9002. _this.orderstatus = res.data.orderstatus; //订单状态
  9003. _this.underwritingdialogVisible = true;
  9004. let indexid = this.totalCompanyList.findIndex(
  9005. (item) =>
  9006. item.namesimple == this.queryOrders.inscompany
  9007. );
  9008. this.totalCompanyList[indexid].orderstatus =
  9009. res.data.orderstatus;
  9010. });
  9011. } else {
  9012. loading.close();
  9013. _this.$message({
  9014. showClose: true,
  9015. message:
  9016. this.queryOrders.inscompany + "提核--:" + res.msg,
  9017. type: "error",
  9018. duration: 0,
  9019. });
  9020. _this.$api.letter
  9021. .getByCompanyId({ companyId: this.companyId })
  9022. .then((res) => {
  9023. _this.orderstatus = res.data.orderstatus; //订单状态
  9024. });
  9025. }
  9026. });
  9027. } else {
  9028. this.$message({
  9029. message:
  9030. this.queryOrders.inscompany + "影像--:" + res.msg,
  9031. type: "error",
  9032. duration: 7000,
  9033. });
  9034. loading.close();
  9035. }
  9036. });
  9037. break;
  9038. case "紫金财险":
  9039. await this.$api.letter
  9040. .zijinsubmitImage({
  9041. companyId: this.companyId,
  9042. })
  9043. .then((res) => {
  9044. if (res.code == "200") {
  9045. var _this = this;
  9046. _this.$api.letter
  9047. .zijinaudit({
  9048. companyId: this.companyId,
  9049. engageList: this.zijinengageList,
  9050. })
  9051. .then((res) => {
  9052. if (res.code == "200") {
  9053. loading.close();
  9054. _this.$message({
  9055. message: "核保成功",
  9056. type: "success",
  9057. });
  9058. this.QuotationHistory();
  9059. _this.$api.letter
  9060. .getByCompanyId({ companyId: this.companyId })
  9061. .then((res) => {
  9062. _this.orderstatus = res.data.orderstatus; //订单状态
  9063. _this.underwritingdialogVisible = true;
  9064. let indexid = this.totalCompanyList.findIndex(
  9065. (item) =>
  9066. item.namesimple ==
  9067. this.queryOrders.inscompany
  9068. );
  9069. this.totalCompanyList[indexid].orderstatus =
  9070. res.data.orderstatus;
  9071. });
  9072. } else {
  9073. loading.close();
  9074. _this.$message({
  9075. showClose: true,
  9076. dangerouslyUseHTMLString: true,
  9077. message:
  9078. this.queryOrders.inscompany +
  9079. "提核--:" +
  9080. res.msg,
  9081. type: "error",
  9082. duration: 0,
  9083. });
  9084. _this.$api.letter
  9085. .getByCompanyId({ companyId: this.companyId })
  9086. .then((res) => {
  9087. _this.orderstatus = res.data.orderstatus; //订单状态
  9088. });
  9089. }
  9090. });
  9091. } else {
  9092. this.$message({
  9093. message:
  9094. this.queryOrders.inscompany + "影像--:" + res.msg,
  9095. type: "error",
  9096. duration: 7000,
  9097. });
  9098. loading.close();
  9099. }
  9100. });
  9101. break;
  9102. case "国任财险":
  9103. await this.$api.letter
  9104. .insguorensubmitImage({
  9105. companyId: this.companyId,
  9106. })
  9107. .then((res) => {
  9108. if (res.code == "200") {
  9109. var _this = this;
  9110. _this.$api.letter
  9111. .gunrenaudit({
  9112. companyId: this.companyId,
  9113. })
  9114. .then((res) => {
  9115. if (res.code == "200") {
  9116. loading.close();
  9117. _this.cqryCdeJq = "";
  9118. _this.cqryCdeSy = "";
  9119. _this.renewalCodeJq = "";
  9120. _this.renewalCodeSy = "";
  9121. this.$message({
  9122. message: "核保成功",
  9123. type: "success",
  9124. });
  9125. this.QuotationHistory();
  9126. _this.$api.letter
  9127. .getByCompanyId({ companyId: this.companyId })
  9128. .then((res) => {
  9129. _this.orderstatus = res.data.orderstatus; //订单状态
  9130. _this.underwritingdialogVisible = true;
  9131. let indexid = this.totalCompanyList.findIndex(
  9132. (item) =>
  9133. item.namesimple ==
  9134. this.queryOrders.inscompany
  9135. );
  9136. this.totalCompanyList[indexid].orderstatus =
  9137. res.data.orderstatus;
  9138. });
  9139. } else {
  9140. loading.close();
  9141. this.$message({
  9142. showClose: true,
  9143. message: res.msg,
  9144. type: "error",
  9145. duration: 0,
  9146. });
  9147. }
  9148. });
  9149. } else {
  9150. loading.close();
  9151. this.$message({
  9152. message: res.msg,
  9153. type: "error",
  9154. duration: 7000,
  9155. });
  9156. }
  9157. });
  9158. break;
  9159. case "渤海财险":
  9160. await this.$api.letter
  9161. .insbohaisubmitImage({
  9162. companyId: this.companyId,
  9163. })
  9164. .then((res) => {
  9165. if (res.code == "200") {
  9166. var _this = this;
  9167. _this.$api.letter
  9168. .bohaiaudit({
  9169. companyId: this.companyId,
  9170. })
  9171. .then((res) => {
  9172. if (res.code == "200") {
  9173. loading.close();
  9174. _this.cqryCdeJq = "";
  9175. _this.cqryCdeSy = "";
  9176. _this.renewalCodeJq = "";
  9177. _this.renewalCodeSy = "";
  9178. this.$message({
  9179. message: "核保成功",
  9180. type: "success",
  9181. });
  9182. this.QuotationHistory();
  9183. _this.$api.letter
  9184. .getByCompanyId({ companyId: this.companyId })
  9185. .then((res) => {
  9186. _this.orderstatus = res.data.orderstatus; //订单状态
  9187. _this.underwritingdialogVisible = true;
  9188. let indexid = this.totalCompanyList.findIndex(
  9189. (item) =>
  9190. item.namesimple ==
  9191. this.queryOrders.inscompany
  9192. );
  9193. this.totalCompanyList[indexid].orderstatus =
  9194. res.data.orderstatus;
  9195. });
  9196. } else {
  9197. loading.close();
  9198. this.$message({
  9199. showClose: true,
  9200. message: res.msg,
  9201. type: "error",
  9202. duration: 0,
  9203. });
  9204. }
  9205. });
  9206. } else {
  9207. loading.close();
  9208. this.$message({
  9209. message: res.msg,
  9210. type: "error",
  9211. duration: 7000,
  9212. });
  9213. }
  9214. });
  9215. break;
  9216. case "诚泰财险":
  9217. case "恒邦财险":
  9218. case "华农财险":
  9219. case "太平财险":
  9220. case "安盛天平":
  9221. case "众安财险":
  9222. case "中国人寿":
  9223. case "泰康财险":
  9224. let hengbangapi = "";
  9225. hengbangapi =
  9226. this.apiType == 2
  9227. ? "pythonsubmitImage"
  9228. : "anshengsubmitImage";
  9229. console.log(hengbangapi, "hengbangapi");
  9230. await this.$api.letter[hengbangapi]({
  9231. subOrderNo: this.companyId,
  9232. }).then((res) => {
  9233. if (res.code == "200") {
  9234. var _this = this;
  9235. let hengbangapi1 = "";
  9236. hengbangapi1 =
  9237. this.apiType == 2 ? "pythonaudit" : "anshengaudit";
  9238. console.log(hengbangapi1, "hengbangapi1");
  9239. _this.$api.letter[hengbangapi1]({
  9240. subOrderNo: this.companyId,
  9241. }).then((res) => {
  9242. if (res.code == "200") {
  9243. loading.close();
  9244. this.$message({
  9245. message: "核保成功",
  9246. type: "success",
  9247. });
  9248. this.QuotationHistory();
  9249. _this.$api.letter
  9250. .getByCompanyId({ companyId: this.companyId })
  9251. .then((res) => {
  9252. _this.orderstatus = res.data.orderstatus; //订单状态
  9253. _this.underwritingdialogVisible = true;
  9254. let indexid = this.totalCompanyList.findIndex(
  9255. (item) =>
  9256. item.namesimple == this.queryOrders.inscompany
  9257. );
  9258. this.totalCompanyList[indexid].orderstatus =
  9259. res.data.orderstatus;
  9260. });
  9261. } else {
  9262. loading.close();
  9263. this.$message({
  9264. showClose: true,
  9265. dangerouslyUseHTMLString: true,
  9266. message:
  9267. this.queryOrders.inscompany +
  9268. "提核--:" +
  9269. res.msg.replace(/\n/g, "<br><br>"),
  9270. type: "error",
  9271. duration: 0,
  9272. });
  9273. }
  9274. });
  9275. } else {
  9276. loading.close();
  9277. this.$message({
  9278. message:
  9279. this.queryOrders.inscompany + "影像--:" + res.msg,
  9280. type: "error",
  9281. duration: 7000,
  9282. });
  9283. }
  9284. });
  9285. break;
  9286. case "永诚财险":
  9287. await this.$api.letter
  9288. .insyongchengsubmitImage({
  9289. companyId: this.companyId,
  9290. })
  9291. .then((res) => {
  9292. if (res.code == "200") {
  9293. var _this = this;
  9294. _this.$api.letter
  9295. .yongchengaudit({
  9296. companyId: this.companyId,
  9297. })
  9298. .then((res) => {
  9299. if (res.code == "200") {
  9300. loading.close();
  9301. _this.cqryCdeJq = "";
  9302. _this.cqryCdeSy = "";
  9303. _this.renewalCodeJq = "";
  9304. _this.renewalCodeSy = "";
  9305. this.$message({
  9306. message: "核保成功",
  9307. type: "success",
  9308. });
  9309. this.QuotationHistory();
  9310. _this.$api.letter
  9311. .getByCompanyId({ companyId: this.companyId })
  9312. .then((res) => {
  9313. _this.orderstatus = res.data.orderstatus; //订单状态
  9314. _this.underwritingdialogVisible = true;
  9315. let indexid = this.totalCompanyList.findIndex(
  9316. (item) =>
  9317. item.namesimple ==
  9318. this.queryOrders.inscompany
  9319. );
  9320. this.totalCompanyList[indexid].orderstatus =
  9321. res.data.orderstatus;
  9322. });
  9323. } else {
  9324. loading.close();
  9325. this.$message({
  9326. showClose: true,
  9327. message:
  9328. this.queryOrders.inscompany +
  9329. "提核--:" +
  9330. res.msg,
  9331. customClass: "customNotifyClass",
  9332. type: "error",
  9333. duration: 0,
  9334. });
  9335. }
  9336. });
  9337. } else {
  9338. loading.close();
  9339. this.$message({
  9340. message:
  9341. this.queryOrders.inscompany + "影像--:" + res.msg,
  9342. type: "error",
  9343. duration: 7000,
  9344. });
  9345. }
  9346. });
  9347. break;
  9348. case "大家财险":
  9349. let DJApiImage = "";
  9350. DJApiImage =
  9351. this.apiType == 2 ? "pythonsubmitImage" : "dajiasubmitImage";
  9352. await this.$api.letter[DJApiImage]({
  9353. [this.apiType == 2 ? "subOrderNo" : "companyId"]:
  9354. this.companyId,
  9355. }).then((res) => {
  9356. if (res.code == "200") {
  9357. var _this = this;
  9358. let DJApiaudit = "";
  9359. DJApiaudit =
  9360. this.apiType == 2 ? "pythonaudit" : "dajiaaudit";
  9361. _this.$api.letter[DJApiaudit]({
  9362. [this.apiType == 2 ? "subOrderNo" : "companyId"]:
  9363. this.companyId,
  9364. }).then((res) => {
  9365. if (res.code == "200") {
  9366. loading.close();
  9367. _this.cqryCdeJq = "";
  9368. _this.cqryCdeSy = "";
  9369. _this.renewalCodeJq = "";
  9370. _this.renewalCodeSy = "";
  9371. this.$message({
  9372. message: "核保成功",
  9373. type: "success",
  9374. });
  9375. this.QuotationHistory();
  9376. _this.$api.letter
  9377. .getByCompanyId({ companyId: this.companyId })
  9378. .then((res) => {
  9379. _this.orderstatus = res.data.orderstatus; //订单状态
  9380. _this.underwritingdialogVisible = true;
  9381. let indexid = this.totalCompanyList.findIndex(
  9382. (item) =>
  9383. item.namesimple == this.queryOrders.inscompany
  9384. );
  9385. this.totalCompanyList[indexid].orderstatus =
  9386. res.data.orderstatus;
  9387. });
  9388. } else {
  9389. loading.close();
  9390. this.$message({
  9391. showClose: true,
  9392. message:
  9393. this.queryOrders.inscompany + "提核--:" + res.msg,
  9394. customClass: "customNotifyClass",
  9395. type: "error",
  9396. duration: 0,
  9397. });
  9398. }
  9399. });
  9400. } else {
  9401. loading.close();
  9402. this.$message({
  9403. message:
  9404. this.queryOrders.inscompany + "影像--:" + res.msg,
  9405. type: "error",
  9406. duration: 7000,
  9407. });
  9408. }
  9409. });
  9410. break;
  9411. case "平安财险":
  9412. await this.$api.letter
  9413. .pingansubmitImage({
  9414. companyId: this.companyId,
  9415. })
  9416. .then((res) => {
  9417. if (res.code == "200") {
  9418. var _this = this;
  9419. _this.$api.letter
  9420. .pinganaudit({
  9421. companyId: this.companyId,
  9422. jqappoint: "",
  9423. syappoint: "",
  9424. })
  9425. .then((res) => {
  9426. if (res.code == "200") {
  9427. loading.close();
  9428. _this.$message({
  9429. message: "核保成功",
  9430. type: "success",
  9431. });
  9432. this.QuotationHistory();
  9433. _this.$api.letter
  9434. .getByCompanyId({ companyId: this.companyId })
  9435. .then((res) => {
  9436. _this.orderstatus = res.data.orderstatus; //订单状态
  9437. _this.underwritingdialogVisible = true;
  9438. let indexid = this.totalCompanyList.findIndex(
  9439. (item) =>
  9440. item.namesimple ==
  9441. this.queryOrders.inscompany
  9442. );
  9443. this.totalCompanyList[indexid].orderstatus =
  9444. res.data.orderstatus;
  9445. });
  9446. } else {
  9447. loading.close();
  9448. _this.$message({
  9449. showClose: true,
  9450. message:
  9451. this.queryOrders.inscompany +
  9452. "提核--:" +
  9453. res.msg,
  9454. type: "error",
  9455. duration: 0,
  9456. });
  9457. _this.$api.letter
  9458. .getByCompanyId({ companyId: this.companyId })
  9459. .then((res) => {
  9460. _this.orderstatus = res.data.orderstatus; //订单状态
  9461. });
  9462. }
  9463. });
  9464. } else {
  9465. this.$message({
  9466. message:
  9467. this.queryOrders.inscompany + "影像--:" + res.msg,
  9468. type: "error",
  9469. duration: 7000,
  9470. });
  9471. loading.close();
  9472. }
  9473. });
  9474. break;
  9475. }
  9476. }
  9477. });
  9478. },
  9479. //当前日期的次日
  9480. transformTime1() {
  9481. var date = new Date();
  9482. date.setFullYear(date.getFullYear());
  9483. date.setTime(date.getTime() + 24 * 60 * 60 * 1000);
  9484. var strYear = date.getFullYear();
  9485. var strDay = date.getDate();
  9486. var strMonth = date.getMonth() + 1;
  9487. var hh = date.getHours();
  9488. if (hh < 10) {
  9489. hh = "0" + hh;
  9490. }
  9491. if (strMonth < 10) {
  9492. strMonth = "0" + strMonth;
  9493. }
  9494. if (strDay < 10) {
  9495. strDay = "0" + strDay;
  9496. }
  9497. var datastr = strYear + "-" + strMonth + "-" + strDay + " " + "00:00:00";
  9498. return datastr;
  9499. },
  9500. //传入日期的次日
  9501. transformTime2(time) {
  9502. var date = new Date(time);
  9503. date.setFullYear(date.getFullYear());
  9504. date.setTime(date.getTime() + 24 * 60 * 60 * 1000); //一年后的前一天
  9505. var strYear = date.getFullYear();
  9506. var strDay = date.getDate();
  9507. var strMonth = date.getMonth() + 1;
  9508. var hh = date.getHours();
  9509. if (hh < 10) {
  9510. hh = "0" + hh;
  9511. }
  9512. if (strMonth < 10) {
  9513. strMonth = "0" + strMonth;
  9514. }
  9515. if (strDay < 10) {
  9516. strDay = "0" + strDay;
  9517. }
  9518. var datastr = strYear + "-" + strMonth + "-" + strDay + " " + "00:00:00";
  9519. return datastr;
  9520. },
  9521. //时间转换
  9522. transformTime(date) {
  9523. var d = new Date(date);
  9524. var strYear = d.getFullYear();
  9525. var strMonth = d.getMonth() + 1;
  9526. var strDay = d.getDate();
  9527. var hh = d.getHours();
  9528. var minutes = d.getMinutes(); // 分
  9529. var Seconds = d.getSeconds();
  9530. if (hh < 10) {
  9531. hh = "0" + hh;
  9532. }
  9533. if (minutes < 10) {
  9534. minutes = "0" + minutes;
  9535. }
  9536. if (Seconds < 10) {
  9537. Seconds = "0" + Seconds;
  9538. }
  9539. if (strMonth < 10) {
  9540. strMonth = "0" + strMonth;
  9541. }
  9542. if (strDay < 10) {
  9543. strDay = "0" + strDay;
  9544. }
  9545. var datetime =
  9546. strYear +
  9547. "-" +
  9548. strMonth +
  9549. "-" +
  9550. strDay +
  9551. " " +
  9552. hh +
  9553. ":" +
  9554. minutes +
  9555. ":" +
  9556. Seconds;
  9557. return datetime;
  9558. },
  9559. timeformat(date) {
  9560. var d = new Date(date);
  9561. var strYear = d.getFullYear();
  9562. var strMonth = d.getMonth() + 1;
  9563. var strDay = d.getDate();
  9564. var hh = d.getHours();
  9565. if (hh < 10) {
  9566. hh = "0" + hh;
  9567. }
  9568. if (strMonth < 10) {
  9569. strMonth = "0" + strMonth;
  9570. }
  9571. if (strDay < 10) {
  9572. strDay = "0" + strDay;
  9573. }
  9574. var datetime = strYear + "-" + strMonth + "-" + strDay;
  9575. return datetime;
  9576. },
  9577. oneYearPast1(time) {
  9578. //明年减一秒
  9579. var date = new Date(time);
  9580. date.setSeconds(date.getSeconds() - 1);
  9581. date.setFullYear(date.getFullYear() + 1); //一年后
  9582. date.setTime(date.getTime()); //一年后的前一天
  9583. var strYear = date.getFullYear();
  9584. var strDay = date.getDate();
  9585. var strMonth = date.getMonth() + 1;
  9586. var hh = date.getHours();
  9587. var minutes = date.getMinutes(); // 分
  9588. var Seconds = date.getSeconds();
  9589. if (hh < 10) {
  9590. hh = "0" + hh;
  9591. }
  9592. if (minutes < 10) {
  9593. minutes = "0" + minutes;
  9594. }
  9595. if (Seconds < 10) {
  9596. Seconds = "0" + Seconds;
  9597. }
  9598. if (strMonth < 10) {
  9599. strMonth = "0" + strMonth;
  9600. }
  9601. if (strDay < 10) {
  9602. strDay = "0" + strDay;
  9603. }
  9604. var datastr =
  9605. strYear +
  9606. "-" +
  9607. strMonth +
  9608. "-" +
  9609. strDay +
  9610. " " +
  9611. hh +
  9612. ":" +
  9613. minutes +
  9614. ":" +
  9615. Seconds;
  9616. return datastr;
  9617. },
  9618. tbczcarShowChange() {
  9619. //投保人同车主
  9620. switch (this.tbczcarShow) {
  9621. case true:
  9622. this.policyHolderInfo = {...this.ownerInfo}
  9623. break;
  9624. default:
  9625. for (let key in this.policyHolderInfo) {
  9626. this.policyHolderInfo[key] = "";
  9627. this.policyHolderInfo.property= "1";
  9628. this.policyHolderInfo.provinceData = [];
  9629. this.selectedOptions2 = [];
  9630. }
  9631. // this.policyHolderInfo = {}
  9632. // this.policyHolderInfo.property='1'
  9633. }
  9634. },
  9635. bbczcarShowChange() {
  9636. //被保人同车主
  9637. switch (this.bbczcarShow) {
  9638. case true:
  9639. this.bbtbcarShow = false;
  9640. this.insuredPersonInfo = {...this.ownerInfo}
  9641. break;
  9642. default:
  9643. for (let key in this.insuredPersonInfo) {
  9644. this.insuredPersonInfo[key] = "";
  9645. this.insuredPersonInfo.property= "1";
  9646. this.insuredPersonInfo.provinceData = [];
  9647. // this.selectedOptions3 = [];
  9648. }
  9649. }
  9650. },
  9651. bbtbcarShowChange() {
  9652. //被保人同投保人
  9653. switch (this.bbtbcarShow) {
  9654. case true:
  9655. this.bbczcarShow = false;
  9656. this.insuredPersonInfo = {...this.policyHolderInfo}
  9657. break;
  9658. default:
  9659. for (let key in this.insuredPersonInfo) {
  9660. this.insuredPersonInfo[key] = "";
  9661. this.insuredPersonInfo.property= "1";
  9662. this.insuredPersonInfo.provinceData = [];
  9663. }
  9664. }
  9665. },
  9666. //VIN查询
  9667. toChooseVin(cartype) {
  9668. if (cartype == "" || cartype == null) {
  9669. this.$message({
  9670. message: "请输入车架号",
  9671. type: "warning",
  9672. });
  9673. } else {
  9674. const loading = this.$loading({
  9675. lock: true,
  9676. text: "Loading",
  9677. spinner: "el-icon-loading",
  9678. background: "rgba(0, 0, 0, 0.7)",
  9679. });
  9680. this.$api.letter.insZhongmeiVIN(this.carInfo.frameNo).then((res) => {
  9681. if (res.code == "200") {
  9682. this.reslist = res.data;
  9683. loading.close();
  9684. this.sbdmdialogVisible = true;
  9685. } else {
  9686. loading.close();
  9687. this.$message.error(res.msg);
  9688. }
  9689. });
  9690. }
  9691. },
  9692. // 撤销二维码
  9693. revokeCode(id) {
  9694. this.$api.letter.getRevokeQrCode(id).then((res) => {
  9695. if (res.code == 200) {
  9696. this.$message({
  9697. message: res.msg,
  9698. type: "success",
  9699. });
  9700. this.QuotationHistory();
  9701. }
  9702. });
  9703. },
  9704. //品牌型号查询
  9705. toChooseVehicleType(cartype) {
  9706. if (cartype == "" || cartype == null) {
  9707. this.$message({
  9708. message: "请输入车型名称",
  9709. type: "warning",
  9710. });
  9711. } else {
  9712. const loading = this.$loading({
  9713. lock: true,
  9714. text: "Loading",
  9715. spinner: "el-icon-loading",
  9716. background: "rgba(0, 0, 0, 0.7)",
  9717. });
  9718. let param = {
  9719. modelName: cartype.replace(/[^u4e00-u9fa5|,]+/gi, ""),
  9720. };
  9721. this.$api.letter.ModelsQuery(param).then((res) => {
  9722. if (res.code == "200") {
  9723. loading.close();
  9724. this.reslist = res.data;
  9725. this.chexingdialogVisible = true;
  9726. } else {
  9727. loading.close();
  9728. this.$message.error(res.msg);
  9729. }
  9730. });
  9731. }
  9732. },
  9733. //车型列表双击选中事件
  9734. reslistCurrentChange(row, column, event) {
  9735. this.carInfo.brandName = row.brandCN; //品牌型号
  9736. this.carInfo.modelcname = row.modelName; //品牌型号
  9737. this.carInfo.caryear = row.marketYear; //年款
  9738. this.carInfo.seatCount = row.ratedPassengerCapacity; //座位数
  9739. this.carInfo.purchasePrice = row.replacementValue; //购置价
  9740. this.carInfo.modelCode = row.modelCode; //型号代码
  9741. this.carInfo.familyName = row.series; //系列
  9742. this.carInfo.enginedesc = row.displacement; //排量
  9743. this.carInfo.energyType = row.energyTypes;
  9744. this.carInfo.powerScale = row.powerScale; //功率
  9745. this.chexingdialogVisible = false;
  9746. this.sbdmdialogVisible = false;
  9747. },
  9748. //是否过户事件
  9749. transferFlagChange(e) {
  9750. if (e) {
  9751. this.transferDateShow = true;
  9752. this.carInfo.transferDate = this.carInfo.issueDate;
  9753. } else {
  9754. this.transferDateShow = false;
  9755. this.carInfo.transferDate = "";
  9756. }
  9757. },
  9758. //影像上传
  9759. drivingupload(file, imageIdList, imgurl, type) {
  9760. let that = this;
  9761. let size = file.size / 1024 / 1024 < 5;
  9762. const isJPG =
  9763. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  9764. if (!size) {
  9765. this.$message.error("上传图片大小不能超过 5MB!");
  9766. this[imgurl] = [];
  9767. return false;
  9768. }
  9769. if (!isJPG) {
  9770. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  9771. this[imgurl] = [];
  9772. return false;
  9773. }
  9774. this[imgurl].push(file);
  9775. var file = file.raw;
  9776. const params = new FormData(); // 声明formData数据类型
  9777. params.append("multipartFile", file);
  9778. params.append("type", "image");
  9779. this.$api.letter.uploadFile(params).then((res) => {
  9780. if (res.code == "200") {
  9781. if (this[imageIdList].some((v) => v.imageType == type)) {
  9782. this[imageIdList].map((val) => {
  9783. if (val.imageType == type) {
  9784. val.imageId = res.data.id;
  9785. }
  9786. });
  9787. } else {
  9788. this[imageIdList].push({
  9789. imageId: res.data.id,
  9790. imageType: type,
  9791. });
  9792. }
  9793. }
  9794. });
  9795. },
  9796. policydrivingupload(file, val) {
  9797. // this.policyNumberForm[val + 'List'] = []
  9798. switch (val) {
  9799. case "jqPolicy":
  9800. this.policyNumberForm.jqPolicyList = [];
  9801. break;
  9802. case "syPolicy":
  9803. this.policyNumberForm.syPolicyList = [];
  9804. break;
  9805. case "noPolicy":
  9806. this.policyNumberForm.noPolicyList = [];
  9807. break;
  9808. case "jqSign":
  9809. this.policyNumberForm.jqSignList = [];
  9810. break;
  9811. default:
  9812. break;
  9813. }
  9814. var file = file.raw;
  9815. const params = new FormData(); // 声明formData数据类型
  9816. params.append("multipartFile", file);
  9817. params.append("type", "file");
  9818. this.$api.letter.uploadFile(params).then((res) => {
  9819. if (res.code == "200") {
  9820. res.data.name = res.data.fileName;
  9821. this.policyNumberForm[val + "List"].push(res.data);
  9822. }
  9823. });
  9824. },
  9825. handleRemove1(file, imageIdList, imgList) {
  9826. this[imageIdList].map((ele, index) => {
  9827. if (file.imageId === ele.imageId) {
  9828. this[imageIdList].splice(index, 1);
  9829. }
  9830. return ele;
  9831. });
  9832. if (file.imageId) {
  9833. this[imgList].map((ele, index) => {
  9834. if (file.imageId === ele.imageId) {
  9835. this[imgList].splice(index, 1);
  9836. }
  9837. return ele;
  9838. });
  9839. } else {
  9840. this[imgList].map((ele, index) => {
  9841. if (file.uid === ele.uid) {
  9842. this[imgList].splice(index, 1);
  9843. }
  9844. return ele;
  9845. });
  9846. }
  9847. },
  9848. compress(img, width, height, ratio) {
  9849. var canvas, ctx, img64;
  9850. canvas = document.createElement("canvas");
  9851. canvas.width = width;
  9852. canvas.height = height;
  9853. ctx = canvas.getContext("2d");
  9854. ctx.drawImage(img, 0, 0, width, height);
  9855. img64 = canvas.toDataURL("image/jpeg", ratio);
  9856. return img64;
  9857. },
  9858. base64ToFile(base64, fileName) {
  9859. let data = base64.split(",");
  9860. let type = data[0].match(/:(.*?);/)[1]; // let suffix = type.split('/')[1];
  9861. const bstr = window.atob(data[1]);
  9862. let n = bstr.length;
  9863. const u8arr = new Uint8Array(n);
  9864. while (n--) {
  9865. u8arr[n] = bstr.charCodeAt(n);
  9866. } // const file =  new File([u8arr], `${fileName}.${suffix}`, {
  9867. const file = new File([u8arr], `${fileName}`, {
  9868. type: type,
  9869. });
  9870. return file;
  9871. },
  9872. carfrontChange(file) {
  9873. //选择行驶证正面
  9874. let that = this;
  9875. let size = file.size / 1024 / 1024 < 5;
  9876. const isJPG =
  9877. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  9878. if (!size) {
  9879. this.$message.error("上传图片大小不能超过 5MB!");
  9880. return false;
  9881. }
  9882. if (!isJPG) {
  9883. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  9884. return false;
  9885. }
  9886. // let name=file.raw.name
  9887. //       var image = new Image();
  9888. //       image.src = window.URL.createObjectURL(file.raw);
  9889. //       that.carfrontImg =  image.src
  9890. //       image.onload = function(){
  9891. //         let aaa= that.base64ToFile(that.compress(image, 500, 400, 0.7),name)
  9892. // that.carfrontImg = image.src;
  9893. // const params = new FormData(); // 声明formData数据类型
  9894. // params.append("multipartFile", aaa);
  9895. // params.append("type", "image");
  9896. // that.$api.letter.uploadFile(params).then(res => {
  9897. // if (res.code == "200") {
  9898. // that.CarFrontFile = aaa;//文件流
  9899. // if (that.imageList1.some(v => v.imageType == 'C01')) {
  9900. // that.imageList1.map(val => {
  9901. // if (val.imageType == 'C01') {
  9902. // val.imageId = res.data.id;
  9903. // }
  9904. // })
  9905. // } else {
  9906. // that.imageList1.push({
  9907. // imageId: res.data.id,
  9908. // imageType: "C01",
  9909. // })
  9910. // }
  9911. // } else {
  9912. // that.$message({ message: res.msg, type: "warning" });
  9913. // }
  9914. // });
  9915. // }
  9916. var file = file.raw;
  9917. let files = window.URL.createObjectURL(file); //转临时路径
  9918. this.carfrontImg = files;
  9919. const params = new FormData(); // 声明formData数据类型
  9920. params.append("multipartFile", file);
  9921. params.append("type", "image");
  9922. this.$api.letter.uploadFile(params).then((res) => {
  9923. if (res.code == "200") {
  9924. this.CarFrontFile = file; //文件流
  9925. if (this.imageList1.some((v) => v.imageType == "C01")) {
  9926. this.imageList1.map((val) => {
  9927. if (val.imageType == "C01") {
  9928. val.imageId = res.data.id;
  9929. }
  9930. });
  9931. } else {
  9932. this.imageList1.push({
  9933. imageId: res.data.id,
  9934. imageType: "C01",
  9935. });
  9936. }
  9937. } else {
  9938. this.$message({ message: res.msg, type: "warning" });
  9939. }
  9940. });
  9941. },
  9942. carbackChange(file) {
  9943. let that = this;
  9944. let size = file.size / 1024 / 1024 < 2;
  9945. const isJPG =
  9946. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  9947. if (!size) {
  9948. this.$message.error("上传图片大小不能超过 5MB!");
  9949. return false;
  9950. }
  9951. if (!isJPG) {
  9952. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  9953. return false;
  9954. }
  9955. // let name=file.raw.name
  9956. //       var image = new Image();
  9957. //       image.src = window.URL.createObjectURL(file.raw);
  9958. //       image.onload = function(){
  9959. //         let aaa= that.base64ToFile(that.compress(image, 500, 400, 0.7),name)
  9960. // that.carbackImg = image.src;
  9961. // const params = new FormData(); // 声明formData数据类型
  9962. // params.append("multipartFile", aaa);
  9963. // params.append("type", "image");
  9964. // that.$api.letter.uploadFile(params).then(res => {
  9965. // if (res.code == "200") {
  9966. // that.CarBackFile = aaa;//文件流
  9967. // if (that.imageList1.some(v => v.imageType == 'D01')) {
  9968. // that.imageList1.map(val => {
  9969. // if (val.imageType == 'D01') {
  9970. // val.imageId = res.data.id;
  9971. // }
  9972. // })
  9973. // } else {
  9974. // that.imageList1.push({
  9975. // imageId: res.data.id,
  9976. // imageType: "D01",
  9977. // })
  9978. // }
  9979. // } else {
  9980. // that.$message({ message: res.msg, type: "warning" });
  9981. // }
  9982. // });
  9983. // }
  9984. //选择行驶证反面
  9985. var file = file.raw;
  9986. let files = window.URL.createObjectURL(file); //转临时路径
  9987. this.carbackImg = files;
  9988. const params = new FormData(); // 声明formData数据类型
  9989. params.append("multipartFile", file);
  9990. params.append("type", "image");
  9991. this.$api.letter.uploadFile(params).then((res) => {
  9992. if (res.code == "200") {
  9993. this.CarBackFile = file;
  9994. if (this.imageList1.some((v) => v.imageType == "D01")) {
  9995. this.imageList1.map((val) => {
  9996. if (val.imageType == "D01") {
  9997. val.imageId = res.data.id;
  9998. }
  9999. });
  10000. } else {
  10001. this.imageList1.push({
  10002. imageId: res.data.id,
  10003. imageType: "D01",
  10004. });
  10005. }
  10006. } else {
  10007. this.$message({ message: res.msg, type: "warning" });
  10008. }
  10009. });
  10010. },
  10011. userfrontChange(file) {
  10012. let that = this;
  10013. let size = file.size / 1024 / 1024 < 5;
  10014. const isJPG =
  10015. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  10016. if (!size) {
  10017. this.$message.error("上传图片大小不能超过 5MB!");
  10018. return false;
  10019. }
  10020. if (!isJPG) {
  10021. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  10022. return false;
  10023. }
  10024. // let name=file.raw.name
  10025. //       var image = new Image();
  10026. //       image.src = window.URL.createObjectURL(file.raw);
  10027. //       image.onload = function(){
  10028. //         let aaa= that.base64ToFile(that.compress(image, 500, 400, 0.7),name)
  10029. // that.userfrontImg = image.src;
  10030. // const params = new FormData(); // 声明formData数据类型
  10031. // params.append("multipartFile", aaa);
  10032. // params.append("type", "image");
  10033. // that.$api.letter.uploadFile(params).then(res => {
  10034. // if (res.code == "200") {
  10035. // let type = 'C0' + that.userIndex;
  10036. // if (that['imageList' + that.userIndex].some(v => v.imageType == type)) {
  10037. // that['imageList' + that.userIndex].map(val => {
  10038. // if (val.imageType == type) {
  10039. // val.imageId = res.data.id;
  10040. // }
  10041. // })
  10042. // } else {
  10043. // that['imageList' + that.userIndex].push({
  10044. // imageId: res.data.id,
  10045. // imageType: type,
  10046. // })
  10047. // }
  10048. // that[type + 'File'] = aaa;
  10049. // } else {
  10050. // that.$message({ message: res.msg, type: "warning" });
  10051. // }
  10052. // });
  10053. // }
  10054. //选择身份证正面
  10055. var file = file.raw;
  10056. let files = window.URL.createObjectURL(file); //转链接
  10057. this.userfrontImg = files;
  10058. const params = new FormData(); // 声明formData数据类型
  10059. params.append("multipartFile", file);
  10060. params.append("type", "image");
  10061. this.$api.letter.uploadFile(params).then((res) => {
  10062. if (res.code == "200") {
  10063. let type = "C0" + this.userIndex;
  10064. if (
  10065. this["imageList" + this.userIndex].some((v) => v.imageType == type)
  10066. ) {
  10067. this["imageList" + this.userIndex].map((val) => {
  10068. if (val.imageType == type) {
  10069. val.imageId = res.data.id;
  10070. }
  10071. });
  10072. } else {
  10073. this["imageList" + this.userIndex].push({
  10074. imageId: res.data.id,
  10075. imageType: type,
  10076. });
  10077. }
  10078. this[type + "File"] = file;
  10079. } else {
  10080. this.$message({ message: res.msg, type: "warning" });
  10081. }
  10082. });
  10083. },
  10084. userbackChange(file) {
  10085. let that = this;
  10086. let size = file.size / 1024 / 1024 < 5;
  10087. const isJPG =
  10088. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  10089. if (!size) {
  10090. this.$message.error("上传图片大小不能超过 5MB!");
  10091. return false;
  10092. }
  10093. if (!isJPG) {
  10094. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  10095. return false;
  10096. }
  10097. // let name=file.raw.name
  10098. //       var image = new Image();
  10099. //       image.src = window.URL.createObjectURL(file.raw);
  10100. //       image.onload = function(){
  10101. //         let aaa= that.base64ToFile(that.compress(image, 500, 400, 0.7),name)
  10102. // that.userbackImg = image.src;
  10103. // const params = new FormData(); // 声明formData数据类型
  10104. // params.append("multipartFile", aaa);
  10105. // params.append("type", "image");
  10106. // that.$api.letter.uploadFile(params).then(res => {
  10107. // if (res.code == "200") {
  10108. // let type = 'D0' + that.userIndex;
  10109. // if (that['imageList' + that.userIndex].some(v => v.imageType == type)) {
  10110. // that['imageList' + that.userIndex].map(val => {
  10111. // if (val.imageType == type) {
  10112. // val.imageId = res.data.id;
  10113. // }
  10114. // })
  10115. // } else {
  10116. // that['imageList' + that.userIndex].push({
  10117. // imageId: res.data.id,
  10118. // imageType: type,
  10119. // })
  10120. // }
  10121. // that[type + 'File'] = aaa;
  10122. // } else {
  10123. // that.$message({ message: res.msg, type: "warning" });
  10124. // }
  10125. // });
  10126. // }
  10127. //选择身份证背面
  10128. var file = file.raw;
  10129. let files = window.URL.createObjectURL(file); //转链接
  10130. this.userbackImg = files;
  10131. const params = new FormData(); // 声明formData数据类型
  10132. params.append("multipartFile", file);
  10133. params.append("type", "image");
  10134. this.$api.letter.uploadFile(params).then((res) => {
  10135. if (res.code == "200") {
  10136. let type = "D0" + this.userIndex;
  10137. if (
  10138. this["imageList" + this.userIndex].some((v) => v.imageType == type)
  10139. ) {
  10140. this["imageList" + this.userIndex].map((val) => {
  10141. if (val.imageType == type) {
  10142. val.imageId = res.data.id;
  10143. }
  10144. });
  10145. } else {
  10146. this["imageList" + this.userIndex].push({
  10147. imageId: res.data.id,
  10148. imageType: type,
  10149. });
  10150. }
  10151. this[type + "File"] = file;
  10152. } else {
  10153. this.$message({ message: res.msg, type: "warning" });
  10154. }
  10155. });
  10156. },
  10157. businessChange(file) {
  10158. let size = file.size / 1024 / 1024 < 5;
  10159. const isJPG =
  10160. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  10161. if (!size) {
  10162. this.$message.error("上传图片大小不能超过 5MB!");
  10163. return false;
  10164. }
  10165. if (!isJPG) {
  10166. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  10167. return false;
  10168. }
  10169. var file = file.raw;
  10170. let files = window.URL.createObjectURL(file); //转链接
  10171. this.businessImg = files;
  10172. const params = new FormData(); // 声明formData数据类型
  10173. params.append("multipartFile", file);
  10174. params.append("type", "image");
  10175. this.$api.letter.uploadFile(params).then((res) => {
  10176. if (res.code == "200") {
  10177. let type = "Y0" + this.userIndex;
  10178. if (
  10179. this["imageList" + this.userIndex].some((v) => v.imageType == type)
  10180. ) {
  10181. this["imageList" + this.userIndex].map((val) => {
  10182. if (val.imageType == type) {
  10183. val.imageId = res.data.id;
  10184. }
  10185. });
  10186. } else {
  10187. this["imageList" + this.userIndex].push({
  10188. imageId: res.data.id,
  10189. imageType: type,
  10190. });
  10191. }
  10192. this[type + "File"] = file;
  10193. } else {
  10194. this.$message({ message: res.msg, type: "warning" });
  10195. }
  10196. });
  10197. },
  10198. CarOCRdiscern() {
  10199. //car识别
  10200. const loading = this.$loading({
  10201. lock: true,
  10202. text: "Loading",
  10203. spinner: "el-icon-loading",
  10204. background: "rgba(0, 0, 0, 0.7)",
  10205. });
  10206. const params = new FormData(); // 声明formData数据类型
  10207. params.append("image1", this.CarFrontFile);
  10208. params.append("image2", this.CarBackFile);
  10209. this.$api.letter.drivingPermit(params).then((res) => {
  10210. loading.close();
  10211. if (res.msg == "201") {
  10212. this.$message({ message: "请正确选择驾驶证", type: "warning" });
  10213. }
  10214. var carInfo = res.data.carInfo;
  10215. if (carInfo.issueDate) {
  10216. carInfo.issueDate =
  10217. carInfo.issueDate.substring(0, 4) +
  10218. "-" +
  10219. carInfo.issueDate.substring(4, 6) +
  10220. "-" +
  10221. carInfo.issueDate.substring(6, 8);
  10222. }
  10223. if (carInfo.registerDate) {
  10224. carInfo.registerDate =
  10225. carInfo.registerDate.substring(0, 4) +
  10226. "-" +
  10227. carInfo.registerDate.substring(4, 6) +
  10228. "-" +
  10229. carInfo.registerDate.substring(6, 8);
  10230. }
  10231. this.carform.carOwner = carInfo.carOwner; //车主
  10232. this.carform.licenseNo = carInfo.plateNo; //车牌号
  10233. this.carform.modelcname = carInfo.backOcrID; //品牌型号
  10234. this.carform.frameNo = carInfo.vin; //车架号
  10235. this.carform.engineNo = carInfo.engine; //发动机号
  10236. this.carform.registerDate = carInfo.registerDate; //车牌号
  10237. this.carform.issueDate = carInfo.issueDate; //车牌号
  10238. this.carform.grossMass = carInfo.grossMass; //总质量
  10239. this.carform.unladenMass = carInfo.unladenMass; //整备质量
  10240. this.carform.limitLoad = carInfo.limitLoad; //核定载质量
  10241. this.carform.category = carInfo.category; //车辆类型
  10242. this.carform.carnature = carInfo.useNature; //使用性质
  10243. this.carform.vehicleUse = carInfo.vehicleUse; //车辆用途
  10244. this.carform.plateType = carInfo.plateType; //车辆种类
  10245. this.carform.approvedPassengersCapacity =
  10246. carInfo.approvedPassengersCapacity; //核定载客数
  10247. });
  10248. },
  10249. CarOCRconfirm() {
  10250. //传参 carnature
  10251. this.ownerInfo.name = this.carform.carOwner; //车主
  10252. this.carInfo.cartype = "K33";
  10253. this.carInfo.licenseNo = this.carform.licenseNo; //车牌号
  10254. this.carInfo.modelcname = this.carform.modelcname; //品牌型号
  10255. this.carInfo.vinNo = this.carform.frameNo; //车架号
  10256. this.carInfo.frameNo = this.carform.frameNo; //车架号
  10257. this.carInfo.engineNo = this.carform.engineNo; //发动机号
  10258. this.carInfo.seatCount = this.carform.approvedPassengersCapacity; //核定载客数
  10259. this.carInfo.vehicleweight = this.carform.grossMass; //总质量
  10260. this.carInfo.completeKerbMass = this.carform.unladenMass; //整备质量
  10261. this.carInfo.limitLoad = this.carform.limitLoad; //核定载质量
  10262. this.carInfo.cartype = this.carform.category; //车辆类型
  10263. this.carInfo.carnature = this.carform.carnature
  10264. ? this.carform.carnature
  10265. : "02"; //使用性质
  10266. this.carInfo.vehicleUse = this.carform.vehicleUse
  10267. ? this.carform.vehicleUse
  10268. : "05"; //车辆用途
  10269. this.carInfo.cimodelclass = this.carform.plateType; //车辆种类
  10270. if (this.timeformat(this.carform.registerDate) != "NaN-NaN-NaN") {
  10271. this.carInfo.registerDate = this.carform.registerDate; //车牌号
  10272. }
  10273. if (this.timeformat(this.carform.issueDate) != "NaN-NaN-NaN") {
  10274. this.carInfo.issueDate = this.carform.issueDate; //车牌号
  10275. }
  10276. this.uploadcardialogVisible = false;
  10277. },
  10278. handleRemove(e) {
  10279. //删除图片
  10280. this[e] = "";
  10281. switch (this.userIndex) {
  10282. case 0:
  10283. this.carfrontImg = "";
  10284. this.carbackImg = "";
  10285. this.CarFrontFile = ""; // 行驶证正面base64
  10286. this.CarBackFile = ""; // 行驶证背面base64
  10287. break;
  10288. case 2:
  10289. this.userfrontImg = "";
  10290. this.userbackImg = "";
  10291. this.C02File = ""; // 车主正面base64
  10292. this.D02File = ""; // 车主背面base64
  10293. this.Y02File = ""; // 车主营业执照
  10294. break;
  10295. case 3:
  10296. this.userfrontImg = "";
  10297. this.userbackImg = "";
  10298. this.C03File = ""; // 投保人正面base64
  10299. this.D03File = ""; // 投保人背面base64
  10300. this.Y03File = ""; // 投保人营业执照
  10301. break;
  10302. case 4:
  10303. this.userfrontImg = "";
  10304. this.userbackImg = "";
  10305. this.C04File = ""; // 被保人正面base64
  10306. this.D04File = ""; // 被保人背面base64
  10307. this.Y04File = ""; // 被保人营业执照
  10308. break;
  10309. default:
  10310. }
  10311. },
  10312. //预览图片
  10313. handlePictureCardPreview(img) {
  10314. this.ProViewImg = img;
  10315. this.showViewer = true;
  10316. },
  10317. // 关闭查看器
  10318. closeViewer() {
  10319. this.showViewer = false;
  10320. },
  10321. uploaduser(index) {
  10322. this.userIndex = index;
  10323. this.uploaduserdialogVisible = true;
  10324. },
  10325. userOCRdiscern() {
  10326. //OCR识别
  10327. if( this.activeName=='1'){
  10328. switch (this.userIndex) {
  10329. case 2:
  10330. const params1 = new FormData(); // 声明formData数据类型
  10331. params1.append("image1", this.C02File);
  10332. params1.append("image2", this.D02File);
  10333. this.userOCRjoggle(params1);
  10334. break;
  10335. case 3:
  10336. const params2 = new FormData(); // 声明formData数据类型
  10337. params2.append("image1", this.C03File);
  10338. params2.append("image2", this.D03File);
  10339. this.userOCRjoggle(params2);
  10340. break;
  10341. case 4:
  10342. const params3 = new FormData(); // 声明formData数据类型
  10343. params3.append("image1", this.C04File);
  10344. params3.append("image2", this.D04File);
  10345. this.userOCRjoggle(params3);
  10346. break;
  10347. default:
  10348. }
  10349. }
  10350. else{
  10351. switch (this.userIndex ) {
  10352. case 2:
  10353. const params1 = new FormData(); // 声明formData数据类型
  10354. params1.append("image1", this.Y02File);
  10355. this.businessjoggle(params1);
  10356. break;
  10357. case 3:
  10358. const params2 = new FormData(); // 声明formData数据类型
  10359. params2.append("image1", this.Y03File);
  10360. this.businessjoggle(params2);
  10361. break;
  10362. case 4:
  10363. const params3 = new FormData(); // 声明formData数据类型
  10364. params3.append("image1", this.Y04File);
  10365. this.businessjoggle(params3);
  10366. break;
  10367. default:
  10368. }
  10369. }
  10370. },
  10371. businessjoggle(param) {
  10372. const loading = this.$loading({
  10373. lock: true,
  10374. text: "Loading",
  10375. spinner: "el-icon-loading",
  10376. background: "rgba(0, 0, 0, 0.7)",
  10377. });
  10378. this.$api.letter.businessLicense(param).then((res) => {
  10379. loading.close();
  10380. if (res.msg == "201") {
  10381. this.$message({ message: "请正确选择营业执照", type: "warning" });
  10382. }
  10383. if (res.code==200 && res.data) {
  10384. if(res.data){
  10385. this.businessform={
  10386. ...res.data,
  10387. name: res.data.company,
  10388. organizationCode: res.data.socialCreditCode,
  10389. addr: res.data.address,
  10390. identifyType:'10',
  10391. scope: res.data.businessScope,
  10392. legalPerson: res.data.legalRepresentative,
  10393. registeredCapital:parseInt(res.data.registeredCapital)
  10394. }
  10395. }
  10396. }
  10397. });
  10398. },
  10399. userOCRjoggle(param) {
  10400. const loading = this.$loading({
  10401. lock: true,
  10402. text: "Loading",
  10403. spinner: "el-icon-loading",
  10404. background: "rgba(0, 0, 0, 0.7)",
  10405. });
  10406. this.$api.letter.idCard(param).then((res) => {
  10407. loading.close();
  10408. if (res.msg == "201") {
  10409. this.$message({ message: "请正确选择身份证", type: "warning" });
  10410. }
  10411. var customerInfo = res.data.customerInfo;
  10412. if (customerInfo) {
  10413. this.ownerInfoform.name = customerInfo.name;
  10414. if (customerInfo.identifyType == "01") {
  10415. this.ownerInfoform.identifyType = "身份证";
  10416. } else {
  10417. this.ownerInfoform.identifyType = "";
  10418. }
  10419. this.ownerInfoform.identifyNumber = customerInfo.identifyNumber;
  10420. this.ownerInfoform.gender = customerInfo.identifyIssuedCom;
  10421. this.ownerInfoform.addr = customerInfo.addr;
  10422. if (customerInfo.identifyNumber) {
  10423. this.ownerInfoform.age = getAgeByIdCard(
  10424. customerInfo.identifyNumber
  10425. );
  10426. }
  10427. if (
  10428. customerInfo.identifyValidDate ||
  10429. customerInfo.identifyValidEndDate
  10430. ) {
  10431. this.ownerInfoform.identifyValidDate =
  10432. customerInfo.identifyValidDate.substring(0, 4) +
  10433. "-" +
  10434. customerInfo.identifyValidDate.substring(4, 6) +
  10435. "-" +
  10436. customerInfo.identifyValidDate.substring(6, 8);
  10437. this.ownerInfoform.identifyValidEndDate =
  10438. customerInfo.identifyValidEndDate.substring(0, 4) +
  10439. "-" +
  10440. customerInfo.identifyValidEndDate.substring(4, 6) +
  10441. "-" +
  10442. customerInfo.identifyValidEndDate.substring(6, 8);
  10443. if (customerInfo.identifyValidEndDate == "长期") {
  10444. this.ownerInfoform.identifyValidEndDate = "9999-12-31";
  10445. }
  10446. }
  10447. // let values = addressCode(this.ownerInfoform.addr);
  10448. // this.ownerInfoform.province = codeToText[values[0]]
  10449. // this.ownerInfoform.city = codeToText[values[1]]
  10450. // this.ownerInfoform.county = codeToText[values[2]]
  10451. }
  10452. });
  10453. },
  10454. userOCRconfirm() {
  10455. //传参
  10456. if( this.activeName=='1'){
  10457. this.ownerInfoform.property='1'
  10458. switch (this.userIndex) {
  10459. case 2:
  10460. // this.selectedOptions1 = addressCode(this.ownerInfoform.addr);
  10461. this.ownerInfo = {...this.ownerInfoform}
  10462. break;
  10463. case 3:
  10464. // this.selectedOptions2 = addressCode(this.ownerInfoform.addr);
  10465. this.policyHolderInfo = {...this.ownerInfoform}
  10466. break;
  10467. case 4:
  10468. // this.selectedOptions3 = addressCode(this.ownerInfoform.addr);
  10469. this.insuredPersonInfo = {...this.ownerInfoform}
  10470. break;
  10471. }
  10472. }
  10473. else{
  10474. this.businessform.property='0'
  10475. switch (this.userIndex) {
  10476. case 2:
  10477. this.ownerInfo ={...this.ownerInfo,...this.businessform}
  10478. break;
  10479. case 3:
  10480. this.policyHolderInfo ={...this.policyHolderInfo,...this.businessform}
  10481. break;
  10482. case 4:
  10483. this.insuredPersonInfo ={...this.insuredPersonInfo,...this.businessform}
  10484. break;
  10485. }
  10486. }
  10487. this.uploaduserdialogVisible = false;
  10488. },
  10489. closeDialog(index) {
  10490. // 0:车辆 1:车主 2:投保人 3:被保人
  10491. switch (index) {
  10492. case 0:
  10493. this.carfrontImg = "";
  10494. this.carbackImg = "";
  10495. this.CarFrontFile = ""; // 行驶证正面base64
  10496. this.CarBackFile = ""; // 行驶证背面base64
  10497. Object.keys(this.carform).forEach((key) => {
  10498. this.carform[key] = "";
  10499. });
  10500. break;
  10501. case 2:
  10502. this.userfrontImg = "";
  10503. this.userbackImg = "";
  10504. this.businessImg = "";
  10505. this.Y02File = ""; // 营业执照
  10506. this.C02File = ""; // 车主正面base64
  10507. this.D02File = ""; // 车主背面base64
  10508. Object.keys(this.ownerInfoform).forEach((key) => {
  10509. this.ownerInfoform[key] = "";
  10510. });
  10511. break;
  10512. case 3:
  10513. this.userfrontImg = "";
  10514. this.userbackImg = "";
  10515. this.businessImg = "";
  10516. this.Y03File = ""; // 营业执照
  10517. this.C03File = ""; // 投保人正面base64
  10518. this.D03File = ""; // 投保人背面base64
  10519. Object.keys(this.ownerInfoform).forEach((key) => {
  10520. this.ownerInfoform[key] = "";
  10521. });
  10522. break;
  10523. case 4:
  10524. this.userfrontImg = "";
  10525. this.userbackImg = "";
  10526. this.businessImg = "";
  10527. this.Y04File = ""; // 营业执照
  10528. this.C04File = ""; // 被保人正面base64
  10529. this.D04File = ""; // 被保人背面base64
  10530. Object.keys(this.ownerInfoform).forEach((key) => {
  10531. this.ownerInfoform[key] = "";
  10532. });
  10533. break;
  10534. default:
  10535. }
  10536. },
  10537. bjdpreview(id) {
  10538. let params = {
  10539. companyId: id,
  10540. };
  10541. this.$api.letter.getByCompanyId(params).then((res) => {
  10542. if (res.code == "200") {
  10543. var data = res.data;
  10544. if (data.kindinfo != null) {
  10545. data.kindinfo.map((ele, index) => {
  10546. switch (ele.kindCode) {
  10547. case "A":
  10548. if (ele.amount == 1) {
  10549. ele.amount = "投保";
  10550. } else {
  10551. ele.amount = ele.amount;
  10552. }
  10553. break;
  10554. case "D4":
  10555. case "SY_FJ_YBW2":
  10556. ele.unitAmount = this.toChinesNum(ele.unitAmount);
  10557. break;
  10558. case "MJ1":
  10559. case "MJ2":
  10560. case "MJ3":
  10561. case "MJ4":
  10562. ele.deductibleRate = ele.deductibleRate + "%";
  10563. break;
  10564. default:
  10565. ele.amount = this.toChinesNum(ele.amount);
  10566. }
  10567. return ele;
  10568. });
  10569. }
  10570. data.logoImg = this.iconfftter(res.data.inscompany);
  10571. this.queryOrders = data;
  10572. this.$api.letter.getThemeByUserId(this.userId).then((res) => {
  10573. if (res.code == 200) {
  10574. if (res.data[0] == "GD") {
  10575. this.$refs.quotationDialogPro.setBackupVisible(true);
  10576. } else {
  10577. this.$refs.quotationDialog.setBackupVisible(true);
  10578. }
  10579. }
  10580. });
  10581. // if (
  10582. // this.$store.state.user.roles.managementSource &&
  10583. // this.$store.state.user.roles.managementSource == "3"
  10584. // ) {
  10585. // this.$refs.quotationDialogPro.setBackupVisible(true);
  10586. // } else {
  10587. // this.$refs.quotationDialog.setBackupVisible(true);
  10588. // }
  10589. }
  10590. });
  10591. },
  10592. //返回上一步
  10593. Back() { },
  10594. carcode(id, item) {
  10595. this.$api.letter.getQrCode(id).then((res) => {
  10596. if (res.code == "200") {
  10597. this.inscompany = res.data.inscompany; //保险公司
  10598. this.sumpremium = res.data.sumpremium; //总价
  10599. this.licenseNo = res.data.cPlateNo; //车牌号
  10600. this.applyName = res.data.cInsuredNme; //车主
  10601. this.jqpremium = res.data.jqpremium; //交强
  10602. this.sypremium = res.data.sypremium; //商业
  10603. this.taxamount = res.data.taxamount; //车船税
  10604. this.jypremium = res.data.jypremium; //驾意险
  10605. this.jqstartdate = res.data.jqStartDate; //交强起保日期
  10606. this.systartdate = res.data.syStartDate; //商业起保日期
  10607. // this.mobile = res.data.applyinfo.mobile;//投保人手机号
  10608. let qrCodeUrl = res.data.qrCodeUrl;
  10609. this.$api.letter.getThemeByUserId(this.userId).then((res) => {
  10610. if (res.code == 200) {
  10611. if (res.data[0] == "GD") {
  10612. this.codedialogVisiblePro = true;
  10613. this.qrcodeWidth = "154";
  10614. this.qrcodeHeight = "154";
  10615. } else {
  10616. this.codedialogVisible = true;
  10617. }
  10618. this.$nextTick(function () {
  10619. var _that = this;
  10620. switch (_that.inscompany) {
  10621. case "太平财险":
  10622. let anresult = qrCodeUrl.replace(/[\r\n]/g, "");
  10623. let animgBase64 = `data:image/png;base64,${anresult}`;
  10624. base64ToPath(animgBase64).then((path) => {
  10625. this.paycodeimg = path;
  10626. });
  10627. break;
  10628. case "华泰财险":
  10629. switch (item.apiType) {
  10630. case 1:
  10631. this.creatQrCode(qrCodeUrl);
  10632. break;
  10633. case 2:
  10634. let anresult = qrCodeUrl.replace(/[\r\n]/g, "");
  10635. let animgBase64 = `data:image/png;base64,${anresult}`;
  10636. base64ToPath(animgBase64).then((path) => {
  10637. this.paycodeimg = path;
  10638. });
  10639. break;
  10640. }
  10641. break;
  10642. case "大家财险":
  10643. switch (item.apiType) {
  10644. case 1:
  10645. this.creatQrCode(qrCodeUrl);
  10646. break;
  10647. case 2:
  10648. let anresult = qrCodeUrl.replace(/[\r\n]/g, "");
  10649. let animgBase64 = `data:image/png;base64,${anresult}`;
  10650. base64ToPath(animgBase64).then((path) => {
  10651. this.paycodeimg = path;
  10652. });
  10653. break;
  10654. }
  10655. break;
  10656. default:
  10657. this.creatQrCode(qrCodeUrl);
  10658. }
  10659. });
  10660. }
  10661. });
  10662. } else {
  10663. this.$message({ message: res.msg, type: "warning" });
  10664. }
  10665. });
  10666. },
  10667. //同步
  10668. synchronization() {
  10669. this.systartDate = this.jqstartDate;
  10670. this.syendDate = this.jqendDate;
  10671. },
  10672. add() {
  10673. this.obtainProtocol();
  10674. if (this.isLetter == "1") {
  10675. this.$router.push({ path: "/letter/letter" });
  10676. }
  10677. for (let key in this.ownerInfo) {
  10678. this.ownerInfo[key] = "";
  10679. }
  10680. for (let key in this.policyHolderInfo) {
  10681. this.policyHolderInfo[key] = "";
  10682. }
  10683. for (let key in this.insuredPersonInfo) {
  10684. this.insuredPersonInfo[key] = "";
  10685. }
  10686. this.vehicleAndVesselTaxForm = {
  10687. taxRelifFlag: "1",
  10688. taxpayerIdentifier: "01",
  10689. };
  10690. this.ownerInfo.provinceData = [];
  10691. this.insuredPersonInfo.provinceData = [];
  10692. this.policyHolderInfo.provinceData = [];
  10693. this.carInfo = JSON.parse(localStorage.getItem("carInfo"));
  10694. this.insureList = JSON.parse(localStorage.getItem("insureList"));
  10695. this.sychecked = false;
  10696. this.yonganchecked = false;
  10697. this.zhongmeichecked = false;
  10698. this.transferDateShow = false;
  10699. (this.tbczcarShow = true), //投保人同车主
  10700. // this.bbczcarShow = false, //被保人同车主
  10701. (this.bbtbcarShow = true), //被保人同投保人
  10702. // this.$refs.imageDialog.emptyList()
  10703. this.imageList1 = [];
  10704. this.imageList2 = [];
  10705. this.imageList3 = [];
  10706. this.imageList4 = [];
  10707. this.imageList5 = [];
  10708. this.imageList6 = [];
  10709. this.imgList1 = [];
  10710. this.imgList2 = [];
  10711. this.imgList3 = [];
  10712. this.imgList4 = [];
  10713. this.imgList5 = [];
  10714. this.imgList6 = [];
  10715. this.imgList7 = [];
  10716. this.imgList8 = [];
  10717. this.imgList9 = [];
  10718. this.imgList10 = [];
  10719. this.imgList11 = [];
  10720. this.imgList12 = [];
  10721. this.imgList13 = [];
  10722. this.imgList14 = [];
  10723. this.imgList15 = [];
  10724. this.imgList16 = [];
  10725. this.imgList17 = [];
  10726. this.imgList18 = [];
  10727. this.imgList19 = [];
  10728. this.imgList20 = [];
  10729. this.imgList21 = [];
  10730. this.imgList22 = [];
  10731. this.imgList23 = [];
  10732. this.imgList24 = [];
  10733. // 清空保险公司选中的意外险
  10734. this.zijintemplateSelection = "";
  10735. this.zhongantemplateSelection = "";
  10736. this.hengbangtemplateSelection = "";
  10737. this.chengtaitemplateSelection = "";
  10738. this.taipingtemplateSelection = "";
  10739. this.insuranceHN = "";
  10740. this.renshoutemplateSelection = "";
  10741. this.dajiatemplateSelection = "";
  10742. this.accidentForm = {
  10743. fen: "1",
  10744. premium: 0,
  10745. };
  10746. this.accidentFormHN = {
  10747. allQuantity: "1",
  10748. quantity: "1",
  10749. };
  10750. this.hengbangaccidentalDrivingVo = {};
  10751. this.huanongaccidentalDrivingVo = {};
  10752. this.taipingaccidentalDrivingVo = {};
  10753. this.zhongmeiaccidentalDrivingVo = {};
  10754. this.accidentalDrivingVo = [];
  10755. this.zhonganaccidentalDrivingVo = {};
  10756. this.renshouaccidentalDrivingVo = {};
  10757. this.anshengaccidentalDrivingVo = {};
  10758. this.dajiaaccidentalDrivingVo = {};
  10759. // this.selectedOptions1 = [];
  10760. // this.selectedOptions2 = [];
  10761. // this.selectedOptions3 = [];
  10762. this.orderno = "";
  10763. this.quoteno = "";
  10764. this.lastCompanyId = "";
  10765. this.HistoryList = [];
  10766. this.jqstartDate = this.transformTime1();
  10767. this.jqendDate = this.oneYearPast1(this.jqstartDate);
  10768. this.systartDate = this.transformTime1();
  10769. this.syendDate = this.oneYearPast1(this.jqstartDate);
  10770. this.policyNumberForm = {
  10771. jqpolicyno: "",
  10772. sypolicyno: "",
  10773. jypolicyno: "",
  10774. jqpremium: "",
  10775. sypremium: "",
  10776. jypremium: "",
  10777. taxamount: "",
  10778. commissionFeevalue: "",
  10779. otherFeevalue: "",
  10780. jqSuperviseCostsProportion: "",
  10781. sySuperviseCostsProportion: "",
  10782. noSuperviseCostsProportion: "",
  10783. jqOtherCostsProportion: "",
  10784. syOtherCostsProportion: "",
  10785. noOtherCostsProportion: "",
  10786. jqReceivableProportion: "",
  10787. syReceivableProportion: "",
  10788. noReceivableProportion: "",
  10789. jqPolicyList: [],
  10790. syPolicyList: [],
  10791. jqSignList: [],
  10792. noPolicyList: [],
  10793. noCostsProportion: '',
  10794. jqCostsProportion: '',
  10795. syCostsProportion: '',
  10796. };
  10797. //清空保险公司列表数据 add by hxl
  10798. this.companyName ="";
  10799. this.isLetter3agreementId="";
  10800. this.costFlag="";
  10801. this.nowCostsId ="";
  10802. this.isInquiryNowDisable = false
  10803. this.isInquirySelectFlag = true;
  10804. this.inquiryNowList = [];
  10805. //清空费用
  10806. this.policyNumberForm.jqCostsProportion = "";
  10807. this.policyNumberForm.noCostsProportion = "";
  10808. this.policyNumberForm.syCostsProportion = "";
  10809. this.$route.query.data =null;
  10810. },
  10811. toChinesNum(num) {
  10812. if (num.toString().length == 4) {
  10813. let overQian = Math.floor(num / 1000);
  10814. let result = overQian + "千";
  10815. return result;
  10816. } else {
  10817. let overWan = Math.floor(num / 10000);
  10818. let result = overWan + "万";
  10819. return result;
  10820. }
  10821. },
  10822. reportDrop(event) {
  10823. event.preventDefault();
  10824. event.stopPropagation();
  10825. },
  10826. tabLiScroll(id, idx) {
  10827. this.tabLiIndex = idx;
  10828. document.getElementById(id).scrollIntoView({ behavior: "smooth" });
  10829. },
  10830. handleScroll(id) {
  10831. document.getElementById(id).scrollIntoView({ behavior: "smooth" });
  10832. },
  10833. },
  10834. };
  10835. </script>
  10836. <style>
  10837. /* .customNotifyClass {
  10838. word-break: break-all;
  10839. width: 600px;
  10840. } */
  10841. </style>
  10842. <style lang="scss" scoped>
  10843. .marginL {
  10844. margin-left: 10px;
  10845. }
  10846. .el-notification {
  10847. width: 600px;
  10848. }
  10849. .styleB .el-upload--picture-card {
  10850. // display: none;
  10851. opacity: 0;
  10852. }
  10853. .ORcodebody {
  10854. height: auto;
  10855. background-color: #fff;
  10856. //background: url(../../../assets/image/group.png) #fff;
  10857. padding: 16px;
  10858. }
  10859. .csstool {
  10860. font-weight: 600;
  10861. color: #606266;
  10862. font-size: 14px;
  10863. margin: 0 20px;
  10864. span {
  10865. margin-right: 5px;
  10866. }
  10867. }
  10868. .ORcode {
  10869. width: 100%;
  10870. height: auto;
  10871. display: flex;
  10872. justify-content: center;
  10873. align-items: center;
  10874. padding: 30px;
  10875. box-sizing: border-box;
  10876. &>div {
  10877. width: 176px;
  10878. height: 176px;
  10879. border: 1px solid var(--themeColor);
  10880. border-radius: 5px;
  10881. }
  10882. }
  10883. .ORtitle {
  10884. width: 100%;
  10885. padding-bottom: 20px;
  10886. box-sizing: border-box;
  10887. &>div {
  10888. width: 100%;
  10889. margin: 10px 0;
  10890. font-size: 14px;
  10891. &>span {
  10892. &:nth-child(1) {
  10893. color: #868b98;
  10894. text-align: end;
  10895. width: 150px;
  10896. }
  10897. &:nth-child(2) {
  10898. color: #333333;
  10899. }
  10900. }
  10901. }
  10902. }
  10903. .Risk {
  10904. width: 100%;
  10905. height: auto;
  10906. display: flex;
  10907. flex-direction: column;
  10908. align-items: center;
  10909. font-size: 12px;
  10910. }
  10911. .dis {
  10912. display: flex;
  10913. }
  10914. .align {
  10915. align-items: center;
  10916. }
  10917. .jus {
  10918. justify-content: space-between;
  10919. }
  10920. .shangyexian {
  10921. padding-left: 100px;
  10922. }
  10923. .headertotal {
  10924. padding: 30px;
  10925. }
  10926. .my-label {
  10927. background: #e1f3d8;
  10928. }
  10929. .my-content {
  10930. background: #fde2e2;
  10931. color: aqua;
  10932. }
  10933. .el-button--mini {
  10934. padding: 5px;
  10935. }
  10936. #qqq {
  10937. background-color: #111;
  10938. width: 300px;
  10939. height: 300px;
  10940. margin: 0 auto;
  10941. position: relative;
  10942. }
  10943. #qrCode {
  10944. display: inline-block;
  10945. margin: 0 auto;
  10946. position: relative;
  10947. top: 15%;
  10948. img {
  10949. width: 200px;
  10950. height: 200px;
  10951. background-color: #fff;
  10952. padding: 6px;
  10953. }
  10954. }
  10955. .code {
  10956. box-sizing: border-box;
  10957. display: flex;
  10958. flex-direction: column;
  10959. justify-content: space-between;
  10960. align-items: center;
  10961. &>span {
  10962. margin-bottom: 10px;
  10963. }
  10964. }
  10965. .code_name {
  10966. width: 350px;
  10967. display: flex;
  10968. justify-content: space-between;
  10969. align-items: center;
  10970. font-weight: bold;
  10971. &>span {
  10972. &:nth-child(1) {
  10973. color: #979797;
  10974. width: 120px;
  10975. text-align: right;
  10976. }
  10977. &:nth-child(2) {
  10978. color: #2d2d2d;
  10979. width: 120px;
  10980. text-align: left;
  10981. }
  10982. }
  10983. }
  10984. .header {
  10985. font-size: 18px;
  10986. font-weight: bold;
  10987. }
  10988. .body {
  10989. border-top: none;
  10990. padding-bottom: 100px;
  10991. box-sizing: border-box;
  10992. }
  10993. .u-f-ac {
  10994. -webkit-box-align: center;
  10995. align-items: center;
  10996. padding: 10px;
  10997. }
  10998. .bodyTitle {
  10999. height: 45px;
  11000. background: #f3f3f3;
  11001. border: 1px solid #dddddd;
  11002. line-height: 45px;
  11003. padding: 0 20px;
  11004. box-sizing: border-box;
  11005. }
  11006. .start {
  11007. justify-content: flex-start;
  11008. }
  11009. .end {
  11010. justify-content: flex-end;
  11011. }
  11012. .descriptions {
  11013. padding: 20px;
  11014. box-sizing: border-box;
  11015. display: flex;
  11016. flex-direction: column;
  11017. }
  11018. .bodys {
  11019. display: flex;
  11020. justify-content: space-between;
  11021. align-items: center;
  11022. flex-wrap: wrap;
  11023. }
  11024. .bodys1 {
  11025. display: flex;
  11026. justify-content: center;
  11027. align-items: center;
  11028. flex-wrap: wrap;
  11029. }
  11030. .widths {
  11031. width: 230px;
  11032. }
  11033. .widths1 {
  11034. width: 300px;
  11035. }
  11036. .back {
  11037. color: #333333;
  11038. // font-weight: 700;
  11039. }
  11040. .home {
  11041. // padding-left: 10px;
  11042. box-sizing: border-box;
  11043. padding-bottom: 10px;
  11044. border-bottom: 1px solid #eef1f6;
  11045. &>span {
  11046. margin-right: 10px;
  11047. }
  11048. }
  11049. .hovers {
  11050. margin: 10px 0;
  11051. cursor: pointer;
  11052. padding: 10px 0;
  11053. box-sizing: border-box;
  11054. border-bottom: 1px solid #f2f2f2;
  11055. .offer-time {
  11056. margin: 20px 0 0px 100px;
  11057. padding: 10px;
  11058. background: rgba(45, 77, 137, 0.06);
  11059. &>span {
  11060. margin: 0 10px;
  11061. }
  11062. }
  11063. }
  11064. /* 内容待定 */
  11065. .coll {
  11066. font-size: 14px;
  11067. }
  11068. .display {
  11069. display: flex;
  11070. justify-content: center;
  11071. align-items: center;
  11072. box-sizing: border-box;
  11073. }
  11074. .black {
  11075. color: #000;
  11076. }
  11077. .gray {
  11078. color: #999;
  11079. }
  11080. .OCR {
  11081. font-weight: bold;
  11082. color: #333;
  11083. margin: 20px;
  11084. }
  11085. .slot {
  11086. position: absolute;
  11087. width: 100%;
  11088. height: 100%;
  11089. left: 0;
  11090. top: 0;
  11091. cursor: default;
  11092. text-align: center;
  11093. color: #fff;
  11094. opacity: 0;
  11095. font-size: 20px;
  11096. background-color: rgba(0, 0, 0, 0.5);
  11097. transition: opacity 0.3s;
  11098. display: flex;
  11099. justify-content: center;
  11100. align-items: center;
  11101. &>i {
  11102. margin: 10px;
  11103. color: #fff;
  11104. font-size: 30px;
  11105. font-weight: bold;
  11106. cursor: pointer;
  11107. }
  11108. &:hover {
  11109. opacity: 1;
  11110. }
  11111. }
  11112. .companyhead {
  11113. width: 100%;
  11114. margin: 0 auto;
  11115. padding: 15px 10px;
  11116. color: #333;
  11117. font-weight: bold;
  11118. font-size: 14px;
  11119. background-color: #f7f7f9;
  11120. }
  11121. .position-left {
  11122. width: calc(100% - 220px);
  11123. }
  11124. .position-collapse-left {
  11125. width: calc(100% - 80px);
  11126. }
  11127. .footer {
  11128. position: fixed;
  11129. bottom: 0;
  11130. right: 0;
  11131. background-color: #fff;
  11132. z-index: 9;
  11133. padding: 20px;
  11134. box-sizing: border-box;
  11135. box-shadow: 0 0 1px 0 #ccc;
  11136. transition: all 0.1s, box-shadow 0.5s;
  11137. &.shadow {
  11138. box-shadow: 0 -10px 10px -10px #ccc;
  11139. }
  11140. }
  11141. .Enclosure {
  11142. width: 100%;
  11143. background-color: #fff;
  11144. padding: 20px;
  11145. box-sizing: border-box;
  11146. margin-bottom: 15px;
  11147. border-radius: 6px;
  11148. border: 1px solid #ebeef5;
  11149. transition: all 0.2s ease-in-out;
  11150. box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
  11151. }
  11152. .icon-img {
  11153. display: block;
  11154. width: 30px;
  11155. height: 30px;
  11156. }
  11157. .Anchor-link {
  11158. width: 40px;
  11159. background-color: #fff;
  11160. box-shadow: #ccc 0 0px 3px 0;
  11161. border-radius: 6px;
  11162. position: fixed;
  11163. top: 50%;
  11164. right: 0;
  11165. z-index: 99;
  11166. div {
  11167. margin: 5px;
  11168. border-bottom: 1px solid #f2f2f2;
  11169. cursor: pointer;
  11170. display: block;
  11171. }
  11172. }
  11173. .color {
  11174. padding-top: 150px;
  11175. margin-top: -150px;
  11176. }
  11177. .more {
  11178. width: 100%;
  11179. padding: 20px;
  11180. box-sizing: border-box;
  11181. }
  11182. .more-title {
  11183. padding: 15px 10px;
  11184. background-color: #f7f7f9;
  11185. // border-bottom: 1px solid #e3e3e3;
  11186. font-size: 14px;
  11187. }
  11188. .more-data {
  11189. padding: 10px;
  11190. border-bottom: 1px solid #f2f2f2;
  11191. color: #d42426;
  11192. font-size: 14px;
  11193. }
  11194. .Driving-risk {
  11195. padding-left: 100px;
  11196. // padding-top:20px
  11197. }
  11198. .checkbox {
  11199. transform: scale(1.2);
  11200. margin-right: 20px;
  11201. line-height: 32px;
  11202. }
  11203. .insure-long-term {
  11204. display: inline-flex;
  11205. padding-left: 8px;
  11206. padding-right: 8px;
  11207. background: var(--themeColor);
  11208. color: #fff;
  11209. font-size: 12px;
  11210. margin-left: -5px;
  11211. border-radius: 0px 5px 5px 0px;
  11212. cursor: pointer;
  11213. }
  11214. .textareaSty {
  11215. width: 160px;
  11216. height: 210px;
  11217. border: 1px solid #d2d2d2;
  11218. border-radius: 4px;
  11219. img {
  11220. width: 50px;
  11221. height: 50px;
  11222. }
  11223. }
  11224. .image-title {
  11225. width: 100px;
  11226. height: 30px;
  11227. color: #fff;
  11228. text-align: center;
  11229. line-height: 30px;
  11230. font-weight: bold;
  11231. margin-bottom: 15px;
  11232. background: #fc4a1a;
  11233. background: #f2994a;
  11234. /* fallback for old browsers */
  11235. background: -webkit-linear-gradient(to left, #f2c94c, #f2994a);
  11236. /* Chrome 10-25, Safari 5.1-6 */
  11237. background: linear-gradient(to left, #f2c94c, #f2994a);
  11238. /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
  11239. }
  11240. .aaa {
  11241. /deep/ {
  11242. margin-bottom: 20px;
  11243. margin-right: 30px;
  11244. span {
  11245. display: inline-block;
  11246. margin-bottom: 10px;
  11247. }
  11248. .el-upload .el-upload-dragger {
  11249. width: 180px;
  11250. height: 120px;
  11251. border: 1px dashed #c0ccda;
  11252. padding: 0;
  11253. }
  11254. .el-upload-list--picture-card .el-upload-list__item {
  11255. width: 180px;
  11256. height: 120px;
  11257. }
  11258. .el-upload-list__item:first-child {
  11259. margin-top: 0;
  11260. }
  11261. .el-upload--picture-card {
  11262. width: 180px;
  11263. height: 120px;
  11264. }
  11265. .el-upload-list__item {
  11266. width: 180px;
  11267. height: 120px;
  11268. margin: 0 !important;
  11269. display: block !important;
  11270. }
  11271. .el-upload-list--picture-card .el-upload-list__item-thumbnail {
  11272. width: 180px;
  11273. height: 120px;
  11274. }
  11275. }
  11276. }
  11277. .jyxStyle>span {
  11278. display: inline-block;
  11279. text-align: center;
  11280. }
  11281. .tab-style {
  11282. width: 120px;
  11283. li {
  11284. text-align: right;
  11285. padding-right: 20px;
  11286. line-height: 40px;
  11287. cursor: pointer;
  11288. box-sizing: border-box;
  11289. border-right: 1px solid #e2e5eb;
  11290. }
  11291. li:focus {
  11292. background: rgba(212, 36, 38, 0.1);
  11293. border-right: 2px solid var(--themeColor);
  11294. color: var(--themeColor);
  11295. }
  11296. }
  11297. .tabLi-style {
  11298. background: rgba(212, 36, 38, 0.1);
  11299. border-right: 2px solid var(--themeColor);
  11300. color: var(--themeColor);
  11301. }
  11302. .scan-code {
  11303. div {
  11304. margin-top: 10px;
  11305. }
  11306. }
  11307. /* 清除图片上传动画bug */
  11308. /deep/ {
  11309. .proSaomazhifucodeClass .el-dialog__header {
  11310. background: rgba(45, 77, 137, 0.1);
  11311. font-weight: bold;
  11312. }
  11313. .proSaomazhifucodeClass .el-dialog__footer {
  11314. border-top: 1px solid #eef1f6;
  11315. }
  11316. .el-upload-list__item {
  11317. transition: none !important;
  11318. }
  11319. .el-checkbox__input {
  11320. &.is-checked {
  11321. .el-checkbox__inner {
  11322. background-color: #d42426;
  11323. border-color: #d42426;
  11324. }
  11325. }
  11326. }
  11327. .el-checkbox__inner {
  11328. border: 1px solid var(--themeColor);
  11329. &:hover {
  11330. border-color: var(--themeColorHover);
  11331. }
  11332. &:focus {
  11333. border-color: var(--themeColor);
  11334. }
  11335. }
  11336. .el-upload .el-upload-dragger {
  11337. height: 250px;
  11338. width: 400px;
  11339. border: 1px dashed #ced4da;
  11340. }
  11341. // .el-button--warning {
  11342. // color: #fff;
  11343. // background-color: #D42426;
  11344. // border-color: #D42426;
  11345. // &:hover {
  11346. // color: #fff;
  11347. // background-color: #ee6f00ce;
  11348. // border-color: #ee6f00ce;
  11349. // }
  11350. // }
  11351. .el-descriptions-item__label {
  11352. &:not(.is-bordered-label) {
  11353. color: #333;
  11354. }
  11355. }
  11356. // .el-radio__input.is-checked + .el-radio__label {
  11357. // color: #ff7000;
  11358. // }
  11359. // .el-radio__input.is-checked .el-radio__inner {
  11360. // border-color: #ff7000;
  11361. // background: #ff7000;
  11362. // }
  11363. // .el-radio__inner {
  11364. // &:hover {
  11365. // border-color: #ff7000;
  11366. // }
  11367. // }
  11368. // .el-input--small .el-icon-date {
  11369. // color: #ee6f00ce;
  11370. // }
  11371. .el-select {
  11372. width: 100%;
  11373. }
  11374. .el-date-editor.el-input {
  11375. width: 100%;
  11376. }
  11377. .el-cascader--small {
  11378. width: 100%;
  11379. }
  11380. .styleB {
  11381. height: 128px;
  11382. }
  11383. .styleB .el-upload--picture-card {
  11384. display: none;
  11385. }
  11386. .saomazhifucodeClass .el-dialog__body,
  11387. .saomazhifucodeClass .el-dialog__header,
  11388. .saomazhifucodeClass .el-dialog__footer {
  11389. padding: 0;
  11390. background: #f4e9e9;
  11391. }
  11392. .saomazhifucodeClass .el-dialog__body {
  11393. padding: 15px;
  11394. }
  11395. .saomazhifucodeClass .el-dialog__footer {
  11396. background: #f4e9e9;
  11397. padding-bottom: 15px;
  11398. }
  11399. .saomazhifucodeClass .el-dialog__headerbtn {
  11400. margin-top: 10px;
  11401. }
  11402. .zmDriving {
  11403. thead .el-table-column--selection .cell {
  11404. display: none !important;
  11405. }
  11406. }
  11407. .synchronous {
  11408. width: 75px;
  11409. height: 45px;
  11410. line-height: 45px;
  11411. color: #fff;
  11412. cursor: pointer;
  11413. background: url(../../../../src/icon/Union2.png) no-repeat 100%;
  11414. }
  11415. .synchronous:hover {
  11416. background: url(../../../../src/icon/Union1.png) no-repeat 100%;
  11417. }
  11418. .line_style {
  11419. margin-top: 20px;
  11420. }
  11421. .el-input-group__append {
  11422. vertical-align: baseline;
  11423. }
  11424. .pinganTable .el-table__header-wrapper .el-checkbox {
  11425. display: none;
  11426. }
  11427. }
  11428. </style>