KtLetter.vue 433 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669
  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 ? "¥" + sumPremium
  1028. : ""
  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. this.totalCompanyList.push({
  4033. agreement:[],
  4034. companyName: "",
  4035. isTaxSource: "",
  4036. agreementId:"",
  4037. isInquiryNow: "",
  4038. jqpremium: "",
  4039. taxamount:"",
  4040. sypremium:"",
  4041. jypremium:"",
  4042. isInquiryFlag:""
  4043. });
  4044. this.obtainProtocol(this.$route.query.data);
  4045. //初始化
  4046. },
  4047. mounted() {
  4048. //add by hxl 2024-12-16
  4049. this.obtainProtocol().then(() => this.editingWay(this.$route.query.data));
  4050. //this.editingWay(this.$route.query.data);
  4051. this.onScroll();
  4052. // console.log(this.$route.query.data.jqstartdate.split(" ")[1]);
  4053. if (this.$route.query.data) {
  4054. this.jqstartDate = this.$route.query.data.jqstartdate;
  4055. this.jqendDate = this.$route.query.data.jqenddate;
  4056. if (this.$route.query.data.jqstartdate.split(" ")[1] == "00:00:00") {
  4057. this.immediatelyValue = false;
  4058. } else {
  4059. this.immediatelyValue = true;
  4060. }
  4061. }
  4062. window.addEventListener("scroll", this.onScroll);
  4063. },
  4064. destroyed() {
  4065. window.removeEventListener("scroll", this.onScroll);
  4066. },
  4067. beforeCreate() {
  4068. _self = this;
  4069. },
  4070. computed: {
  4071. ...mapState({
  4072. collapse: (state) => state.app.collapse,
  4073. }),
  4074. issueDateOptions() {
  4075. return {
  4076. disabledDate: this.disabledDate,
  4077. };
  4078. },
  4079. sumPremium() {
  4080. console.log(this.policyNumberForm)
  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. console.log(1)
  4210. if((this.policyNumberForm.jqCostsProportion==null || this.policyNumberForm.jqCostsProportion =='')
  4211. && (this.policyNumberForm.syCostsProportion==null || this.policyNumberForm.syCostsProportion =='' )
  4212. && (this.policyNumberForm.noCostsProportion==null || this.policyNumberForm.noCostsProportion =='' )
  4213. ){
  4214. this.$message.error("请填写总比例(%)!!")
  4215. this.clearCostFlagData();
  4216. return;
  4217. }
  4218. }
  4219. let data = {
  4220. agreementId: this.isLetter3agreementId,
  4221. risks: this.riskList,
  4222. kinds: this.kindList,
  4223. userId: this.userId,
  4224. jqPremium: this.policyNumberForm.jqpremium,
  4225. jqRadio: this.policyNumberForm.jqCostsProportion,
  4226. syPremium: this.policyNumberForm.sypremium,
  4227. syRadio: this.policyNumberForm.syCostsProportion,
  4228. jyPremium: this.policyNumberForm.jypremium,
  4229. jyRadio: this.policyNumberForm.noCostsProportion,
  4230. costId: this.nowCostsId,
  4231. }
  4232. if(this.costFlag == "1"){
  4233. this.$api.letter.externalOrderFee(data).then((res) => {
  4234. if (res.code == 200) {
  4235. this.policyNumberForm.jqOtherCostsProportion = res.data.jqExportRadio
  4236. this.policyNumberForm.syOtherCostsProportion = res.data.syExportRadio
  4237. this.policyNumberForm.noOtherCostsProportion = res.data.noExportRadio
  4238. this.nowCostsId =res.data.costId;
  4239. console.log(res.data.jqExportRadio, res.data.syExportRadio, res.data.noExportRadio, '111111111111111111')
  4240. this.$forceUpdate()
  4241. } else {
  4242. this.$message.error(res.msg)
  4243. }
  4244. })
  4245. }else if(this.costFlag == "2"){
  4246. this.$api.custInfo.externalInquiryNowFeeOrderFee(data).then((res) => {
  4247. if (res.code == 200) {
  4248. this.policyNumberForm.jqOtherCostsProportion = res.data.jqExportRadio
  4249. this.policyNumberForm.syOtherCostsProportion = res.data.syExportRadio
  4250. this.policyNumberForm.noOtherCostsProportion = res.data.noExportRadio
  4251. console.log(res.data.jqExportRadio, res.data.syExportRadio, res.data.noExportRadio, '111111111111111111')
  4252. this.$forceUpdate()
  4253. } else {
  4254. this.$message.error(res.msg)
  4255. }
  4256. })
  4257. }
  4258. },
  4259. // 非现询
  4260. getInquiryNowList() {
  4261. let productId = ''
  4262. this.inquiryNowList = []
  4263. this.$api.letter.getProductId({
  4264. riskList: this.riskList,
  4265. kindList: this.kindList
  4266. }).then((res) => {
  4267. if (res.code == 200) {
  4268. productId = res.data
  4269. this.$api.letter.getInquiryNowFee({
  4270. agreementId: this.isLetter3agreementId,
  4271. productId: productId
  4272. }).then((resp) => {
  4273. if (resp.code == 200) {
  4274. this.inquiryNowList = resp.data
  4275. }
  4276. })
  4277. }
  4278. })
  4279. },
  4280. //现询和非线询逻辑处理
  4281. inquiryNowListChange(data) {
  4282. if (data) {
  4283. console.log(data);
  4284. this.nowCostsId = data // 现询id
  4285. this.isInquiryNowDisable = true
  4286. this.inquiryNowList.forEach((val) => {
  4287. if (val.id == data) {
  4288. this.policyNumberForm.jqCostsProportion = val.jqCostsProportion
  4289. this.policyNumberForm.noCostsProportion = val.noCostsProportion
  4290. this.policyNumberForm.syCostsProportion = val.syCostsProportion
  4291. this.getExternalOrderFee();
  4292. }
  4293. })
  4294. } else {
  4295. this.nowCostsId = ''
  4296. this.isInquiryNowDisable = false
  4297. this.policyNumberForm.jqCostsProportion = ''
  4298. this.policyNumberForm.noCostsProportion = ''
  4299. this.policyNumberForm.syCostsProportion = ''
  4300. this.policyNumberForm.jqOtherCostsProportion = ''
  4301. this.policyNumberForm.syOtherCostsProportion = ''
  4302. this.policyNumberForm.noOtherCostsProportion = ''
  4303. }
  4304. },
  4305. // add by hxl 2024-12-16 ---end
  4306. // 所属性质字段
  4307. getCompanyListProperty(data){
  4308. if(data=='1'){
  4309. this.ownerInfo.property='1'
  4310. this.policyHolderInfo.property='1'
  4311. this.insuredPersonInfo.property='1'
  4312. this.ownerInfo.identifyType='01'
  4313. this.policyHolderInfo.identifyType='01'
  4314. this.insuredPersonInfo.identifyType='01'
  4315. }
  4316. else{
  4317. this.ownerInfo.property='0'
  4318. this.policyHolderInfo.property='0'
  4319. this.insuredPersonInfo.property='0'
  4320. this.ownerInfo.identifyType='10'
  4321. this.policyHolderInfo.identifyType='10'
  4322. this.insuredPersonInfo.identifyType='10'
  4323. }
  4324. },
  4325. //清空保单图片
  4326. removePhoto(file, fileList, type) {
  4327. // console.log(file, fileList);
  4328. this.policyNumberForm[type] = []
  4329. console.log(this.policyNumberForm[type])
  4330. },
  4331. editingWay(paramsEdit) {
  4332. if (paramsEdit) {
  4333. var _this = this;
  4334. this.jqchecked = false;
  4335. this.tbczcarShow = false;
  4336. this.bbtbcarShow = false;
  4337. this.bbczcarShow = false;
  4338. const { carinfo, ownerinfo, applyinfo, insureinfo, quoteno, orderno,insAreaCompanyList } =
  4339. paramsEdit;
  4340. this.editorInfo = { ...paramsEdit };
  4341. // console.log(paramsEdit.);
  4342. // this.vehicleAndVesselTaxForm = { ...paramsEdit.vehicleAndVesselTax };
  4343. _this.carInfo = carinfo;
  4344. if (_this.carInfo.carnature == "8A") {
  4345. _this.carInfo.carnature = "02";
  4346. _this.carInfo.vehicleUse = "05";
  4347. } else {
  4348. _this.carInfo.carnature;
  4349. _this.carInfo.vehicleUse;
  4350. }
  4351. _this.ownerInfo = ownerinfo;
  4352. _this.policyHolderInfo = applyinfo;
  4353. _this.insuredPersonInfo = insureinfo;
  4354. _this.quoteno = quoteno;
  4355. _this.orderno = orderno;
  4356. _this.tbczcarShow = applyinfo.owner;
  4357. _this.bbczcarShow = insureinfo.owner;
  4358. _this.kindList = paramsEdit.king;
  4359. _this.bbtbcarShow = insureinfo.insuranceHolder;
  4360. _this.ownerInfo.age = getAgeByIdCard(_this.ownerInfo.identifyNumber);
  4361. _this.policyHolderInfo.age = getAgeByIdCard(
  4362. _this.policyHolderInfo.identifyNumber
  4363. );
  4364. _this.insuredPersonInfo.age = getAgeByIdCard(
  4365. _this.insuredPersonInfo.identifyNumber
  4366. );
  4367. if (paramsEdit.carinfo.transferFlag) {
  4368. this.transferDateShow = true;
  4369. }
  4370. //回显交强和商业的时间
  4371. if(paramsEdit.risk){
  4372. paramsEdit.risk.map((ele) => {
  4373. if (ele.riskCode == "0507") {
  4374. _this.jqchecked = true;
  4375. this.protocolJudge("0507", true);
  4376. if(paramsEdit.jqstartdate){
  4377. _this.jqstartDate = paramsEdit.jqstartdate;
  4378. _this.jqendDate = paramsEdit.jqenddate;
  4379. }else{
  4380. _this.jqstartDate = this.transformTime1();
  4381. _this.jqendDate = this.oneYearPast1(this.jqstartDate);
  4382. }
  4383. if(!_this.riskList.includes("0507")){
  4384. _this.riskList.push({
  4385. riskCode: "0507",
  4386. });
  4387. }
  4388. } else if (ele.riskCode == "0510") {
  4389. _this.sychecked = true;
  4390. this.protocolJudge("0510", true);
  4391. if(paramsEdit.systartDate){
  4392. _this.systartDate = paramsEdit.systartdate;
  4393. _this.jqendDate = paramsEdit.syenddate;
  4394. }else{
  4395. _this.systartDate = this.transformTime1();
  4396. _this.syendDate = this.oneYearPast1(this.jqstartDate);
  4397. }
  4398. if(!_this.riskList.includes("0510")){
  4399. _this.riskList.push({
  4400. riskCode: "0510",
  4401. });
  4402. }
  4403. _this.insureList.map((eleA) => {
  4404. paramsEdit.king.map((eleB) => {
  4405. if (eleA.kindCode == eleB.kindCode) {
  4406. switch (eleB.kindCode) {
  4407. case "D4":
  4408. case "SY_FJ_YBW2":
  4409. eleA.amount = eleB.unitAmount+"";
  4410. break;
  4411. case "MJ1":
  4412. case "MJ2":
  4413. case "MJ3":
  4414. case "MJ4":
  4415. eleA.amount = eleB.deductibleRate+"";
  4416. case "A":
  4417. eleA.amount = eleB.amount+"";
  4418. this.protocolJudge("A", true);
  4419. break;
  4420. case "TY1":
  4421. case "TY2":
  4422. case "TY3":
  4423. case "TY4":
  4424. eleA.amount = eleB.serviceTimes+"";
  4425. break;
  4426. default:
  4427. eleA.amount = eleB.amount+"";
  4428. }
  4429. }
  4430. });
  4431. });
  4432. }
  4433. });
  4434. }
  4435. // this.HistoryList = this.paramsEdit.insAreaCompanyList;
  4436. let params = {
  4437. orderNo: paramsEdit.orderno,
  4438. orderStatus: "",
  4439. };
  4440. this.$api.letter.queryQuoteHistory(params).then((res) => {
  4441. res.data.forEach((item) => {
  4442. if (item.accidentInfo) {
  4443. item.accidentInfo.constructor === Object
  4444. ? [item.accidentInfo]
  4445. : item.accidentInfo;
  4446. }
  4447. });
  4448. this.HistoryList = res.data;
  4449. });
  4450. //--获取影像信息--
  4451. _this.imageEcho(this.quoteno);
  4452. // this.$refs.imageDialog.imageEcho(this.quoteno)
  4453. // this.commpanyList()
  4454. //--显示影像按钮--
  4455. _this.imageUploadShow = true;
  4456. this.orderExternalStatus = paramsEdit.orderExternalStatus;
  4457. //回显协议列表数据 add by hxl 2024-12-16
  4458. console.log(this.isLetter3agreementId,'isLetter3agreementId')
  4459. console.log(insAreaCompanyList,'insAreaCompanyList')
  4460. this.isLetter3agreementId = insAreaCompanyList[0].agreementId;
  4461. this.companyName = insAreaCompanyList[0].inscompany;
  4462. if (this.totalCompanyListBak != null && this.totalCompanyListBak.length > 0) {
  4463. this.totalCompanyListBak.forEach((item, index) => {
  4464. if (item.id == insAreaCompanyList[0].companyId) {
  4465. this.totalCompanyList[0].agreement = item.agreement;
  4466. }
  4467. });
  4468. }
  4469. this.costFlag = paramsEdit.costFlag;
  4470. if(this.costFlag=="1"){
  4471. this.isInquiryNowDisable = false
  4472. this.isInquirySelectFlag = true;
  4473. this.nowCostsId = '';
  4474. this.getExternalOrderFee();
  4475. }else if(this.costFlag=="2"){
  4476. this.isInquiryNowDisable = true;
  4477. this.isInquirySelectFlag = false;
  4478. this.nowCostsId = paramsEdit.nowCostsId;
  4479. this.getInquiryNowList();
  4480. this.getExternalOrderFee();
  4481. }
  4482. } else {
  4483. this.jqchecked = true;
  4484. if(!this.riskList.includes("0507")){
  4485. this.riskList.push({
  4486. riskCode: "0507"
  4487. });
  4488. }
  4489. this.jqstartDate = this.transformTime1();
  4490. this.jqendDate = this.oneYearPast1(this.jqstartDate);
  4491. this.systartDate = this.transformTime1();
  4492. this.syendDate = this.oneYearPast1(this.systartDate);
  4493. }
  4494. },
  4495. handleRemove1(file, imageIdList, imgList) {
  4496. this[imageIdList].map((ele, index) => {
  4497. if (file.imageId === ele.imageId) {
  4498. this[imageIdList].splice(index, 1);
  4499. }
  4500. return ele;
  4501. });
  4502. if (file.imageId) {
  4503. this[imgList].map((ele, index) => {
  4504. if (file.imageId === ele.imageId) {
  4505. this[imgList].splice(index, 1);
  4506. }
  4507. return ele;
  4508. });
  4509. } else {
  4510. this[imgList].map((ele, index) => {
  4511. if (file.uid === ele.uid) {
  4512. this[imgList].splice(index, 1);
  4513. }
  4514. return ele;
  4515. });
  4516. }
  4517. },
  4518. uploadinformation() {
  4519. // //上传图片
  4520. const mergedArray = [
  4521. ...this.imageList1,
  4522. ...this.imageList2,
  4523. ...this.imageList3,
  4524. ...this.imageList4,
  4525. ...this.imageList5,
  4526. ...this.imageList6,
  4527. ];
  4528. let imageparam = {
  4529. imageList: mergedArray,
  4530. quoteNo: this.quoteno,
  4531. };
  4532. this.$api.letter.uploadImages(imageparam).then((responses) => {
  4533. if (responses.code == "200") {
  4534. this.imageEcho(this.quoteno);
  4535. this.$message({ message: responses.msg, type: "success" });
  4536. } else {
  4537. this.$message({ message: responses.msg, type: "error" });
  4538. }
  4539. });
  4540. this.imageUploaddialogVisible = false;
  4541. },
  4542. repairinformation() {
  4543. // //上传图片
  4544. const mergedArray = [
  4545. ...this.imageList1,
  4546. ...this.imageList2,
  4547. ...this.imageList3,
  4548. ...this.imageList4,
  4549. ...this.imageList5,
  4550. ...this.imageList6,
  4551. ];
  4552. let imageparam = {
  4553. imageList: mergedArray,
  4554. companyId: this.companyId,
  4555. };
  4556. this.$api.letter.additionalInformation(imageparam).then((responses) => {
  4557. if (responses.code == "200") {
  4558. this.imageUploaddialogVisible = false;
  4559. this.$message({ message: responses.msg, type: "success" });
  4560. } else {
  4561. this.$message({ message: responses.msg, type: "error" });
  4562. }
  4563. });
  4564. },
  4565. //手机号复制粘贴处理
  4566. handlePaste(e, mobileKey) {
  4567. e.preventDefault(); //阻止默认行为
  4568. const clipboardData = e.clipboardData || window.clipboardData; //获取剪切板内容
  4569. let pastedText = clipboardData.getData("text").replace(/\s+/g, ""); //获取纯文本并处理空格
  4570. // 截取前11个字符,以确保不会超过手机号长度限制
  4571. pastedText = pastedText.substring(0, 11);
  4572. // 使用Vue.nextTick确保更新发生在DOM更新之后
  4573. this.$nextTick(() => {
  4574. this[mobileKey].mobile = pastedText;
  4575. });
  4576. },
  4577. // licenseNoFun(data){
  4578. // if(data && this.carInfo.enginedesc){
  4579. // this.obtainProtocol()
  4580. // }
  4581. // },
  4582. // enginedescFun(data){
  4583. // if(data && this.carInfo.licenseNo){
  4584. // this.obtainProtocol()
  4585. // }
  4586. // },
  4587. packageChange(val) {
  4588. let arr = this.packageOptions.find((ele) => ele.id == val).kind;
  4589. if (arr.length > 0) {
  4590. this.insureList.map((eleA) => {
  4591. arr.map((eleB) => {
  4592. if (eleA.kindCode == eleB.kindCode) {
  4593. switch (eleB.kindCode) {
  4594. case "D4":
  4595. case "SY_FJ_YBW2":
  4596. eleA.amount = JSON.stringify(eleB.unitAmount);
  4597. break;
  4598. case "MJ1":
  4599. case "MJ2":
  4600. case "MJ3":
  4601. case "MJ4":
  4602. eleA.amount = eleB.deductibleRate;
  4603. break;
  4604. case "TY1":
  4605. case "TY2":
  4606. case "TY3":
  4607. case "TY4":
  4608. eleA.amount = eleB.serviceTimes+"";
  4609. break;
  4610. default:
  4611. eleA.amount = JSON.stringify(eleB.amount);
  4612. }
  4613. }
  4614. });
  4615. });
  4616. } else {
  4617. this.insureList.map((eleA) => {
  4618. eleA.amount = "0";
  4619. });
  4620. }
  4621. },
  4622. capType(val) {
  4623. if (val == "0") {
  4624. return "success";
  4625. }
  4626. if (val == "1") {
  4627. return "warning";
  4628. }
  4629. if (val == "2" || val == "3" || val == "4") {
  4630. return "danger";
  4631. }
  4632. },
  4633. handleCheckAllChange(ele) {
  4634. this.totalCompanyList.forEach((val, index) => {
  4635. ele ? (val.checked = true) : (val.checked = false);
  4636. // this.initchange(ele, val.id, val.cnName, index);
  4637. });
  4638. },
  4639. retractFun() {
  4640. this.isRetract = this.isRetract == false ? true : false;
  4641. },
  4642. //中煤意外险调整份数事件
  4643. ZMhandleChange(val) {
  4644. if (!val) {
  4645. this.$refs.ZmMultipleTable[0].clearSelection(); //清除
  4646. }
  4647. },
  4648. //中煤意外险选中对应意外险方案
  4649. // ZMHandleSelectionChange(val) {
  4650. // // if(val.length > 0&& val[0].quantity==undefined){
  4651. // // this.$message({ message: "请先填写投保份数再勾选!", type: "error", });
  4652. // // this.$refs.ZmMultipleTable[0].clearSelection(); //清除
  4653. // // return false;
  4654. // // }
  4655. // if (val.length > 1) {
  4656. // this.$refs.ZmMultipleTable[0].clearSelection(); //清除
  4657. // this.$refs.ZmMultipleTable[0].toggleRowSelection(val.pop()); //pop:最后一个
  4658. // } else {
  4659. // this.zhongmeiaccidentalDrivingVo = val[0]; //multipleSelection:当前选择的数组
  4660. // }
  4661. // },
  4662. //中煤意外险选中对应产品带出方案明细
  4663. zhongmeiInsuranceChange(index) {
  4664. //每次选中产品,清空之前选中的数据
  4665. this.zhongmeitemplateSelection = index;
  4666. this.zhongmeiaccidentalDrivingVo = {};
  4667. this.zhongmeiInsuranceDataTable = [];
  4668. let data = this.zhongmeiInsuranceData.find(
  4669. (val) => val.projectCode == index
  4670. );
  4671. //把返回的方案明细放入展示数据对象中
  4672. this.accidentFormZM = Object.assign(this.accidentFormZM, data);
  4673. this.accidentFormZM.quantity = "1";
  4674. if (data && data.son) {
  4675. this.accidentPremiumZM = data.sumPremium;
  4676. this.zhongmeiInsuranceDataTable = data.son;
  4677. }
  4678. },
  4679. // 截图粘贴
  4680. copybjd() {
  4681. let that = this;
  4682. html2Canvas(document.getElementById("pdfContentsDiv"), {
  4683. allowTaint: true,
  4684. taintTest: false,
  4685. }).then(function (canvas) {
  4686. let base64Data = "";
  4687. // let blob = null
  4688. base64Data = canvas.toDataURL("image/png", 1);
  4689. const date = new Date();
  4690. const saveInfo = {
  4691. download: date.getTime() + `.png`,
  4692. href: base64Data,
  4693. };
  4694. const element = document.createElement("a");
  4695. element.style.display = "none";
  4696. for (const key in saveInfo) {
  4697. element.setAttribute(key, saveInfo[key]);
  4698. }
  4699. document.body.appendChild(element);
  4700. element.click();
  4701. setTimeout(() => {
  4702. document.body.removeChild(element);
  4703. }, 300);
  4704. // var format = 'image/png'
  4705. // //将Base64图片编码转换成blob
  4706. // var base64 = base64Data
  4707. // var code = window.atob(base64.split(',')[1])
  4708. // var aBuffer = new window.ArrayBuffer(code.length)
  4709. // var uBuffer = new window.Uint8Array(aBuffer)
  4710. // for (var i = 0; i < code.length; i++) {
  4711. // uBuffer[i] = code.charCodeAt(i) & 0xff
  4712. // }
  4713. // try {
  4714. // blob = new Blob([uBuffer], { type: format })
  4715. // } catch (e) {
  4716. // window.BlobBuilder =
  4717. // window.BlobBuilder ||
  4718. // window.WebKitBlobBuilder ||
  4719. // window.MozBlobBuilder ||
  4720. // window.MSBlobBuilder
  4721. // if (e.name == 'TypeError' && window.BlobBuilder) {
  4722. // var bb = new window.BlobBuilder()
  4723. // bb.append(uBuffer.buffer)
  4724. // blob = bb.getBlob('image/png')
  4725. // } else if (e.name == 'InvalidStateError') {
  4726. // blob = new Blob([aBuffer], { type: format })
  4727. // }
  4728. // }
  4729. // const clipboardItemInput = new ClipboardItem({
  4730. // 'image/png': blob,
  4731. // })
  4732. // that.$copyText({
  4733. // 'image/png': blob,
  4734. // }).then(
  4735. //   function(e) {
  4736. //     console.log("copy arguments e:", e);
  4737. //     alert("复制成功!");
  4738. //   },
  4739. //   function(e) {
  4740. //     console.log("copy arguments e:", e);
  4741. //     alert("复制失败!");
  4742. //   }
  4743. //   ),
  4744. // navigator.clipboard.write([clipboardItemInput])
  4745. // that.$message({
  4746. // message: '已截图并复制到粘贴板!',
  4747. // type: 'success'
  4748. // });
  4749. });
  4750. },
  4751. propertyTpe(val){
  4752. this[val].identifyType=this[val].property=='0'?'10':'01'
  4753. },
  4754. // 即时起保
  4755. immediatelyChange(e) {
  4756. if (e) {
  4757. this.immediatelyValue = true;
  4758. const date = new Date();
  4759. date.setHours(date.getHours() + 2);
  4760. date.setMinutes(0);
  4761. date.setSeconds(0);
  4762. this.jqstartDate = date;
  4763. this.jqendDate = this.oneYearPast1(date);
  4764. } else {
  4765. this.immediatelyValue = false;
  4766. this.jqstartDate = this.transformTime1();
  4767. this.jqendDate = this.oneYearPast1(this.jqstartDate);
  4768. }
  4769. },
  4770. // 使用性质方法
  4771. natureFun() {
  4772. if (this.carInfo.carnature == "01") {
  4773. this.carInfo.vehicleUse = "";
  4774. }
  4775. },
  4776. // 点击同步报价后的时间
  4777. syncData(item) {
  4778. this.jqstartDate = item.startDateJq ? item.startDateJq : this.jqstartDate;
  4779. this.jqendDate = item.endDateJq ? item.endDateJq : this.endDateJq;
  4780. this.systartDate = item.startDateSy ? item.startDateSy : this.systartDate;
  4781. this.syendDate = item.endDateSy ? item.endDateSy : this.syendDate;
  4782. },
  4783. //纳税类型事件
  4784. taxRelifFlagChange(val) {
  4785. if (val == 4) {
  4786. citydata.rawCitiesData.map((val) => {
  4787. this.provinceSelect.push({
  4788. name: val.name,
  4789. code: val.code,
  4790. });
  4791. return val;
  4792. });
  4793. }
  4794. },
  4795. //身份证前六位识别地区
  4796. // getAreaByCode(code) {
  4797. // let list = regionData;
  4798. // let provinceCode = code.substring(0, 2);
  4799. // let cityCode = code.substring(0, 4);
  4800. // let areaCode = code.substring(0, 6);
  4801. // // 获取省份信息
  4802. // let province = list.filter(function (item) {
  4803. // return item.value === provinceCode;
  4804. // });
  4805. // // 获取城市信息
  4806. // let city = province[0].children.filter(function (item) {
  4807. // return item.value === cityCode;
  4808. // });
  4809. // if (city.length > 0) {
  4810. // // 获取区/县信息
  4811. // let area = city[0].children.filter(function (item) {
  4812. // return item.value === areaCode;
  4813. // });
  4814. // return province[0].label + city[0].label + area[0].label;
  4815. // }
  4816. // },
  4817. //--数据字典 begin --
  4818. getDicType(type) {
  4819. this.$api.insCompany.dicType(type).then((res) => {
  4820. if (res.code == 200) {
  4821. if (type == "insOrderStatus") {
  4822. let data = JSON.parse(JSON.stringify(res.data.ddList));
  4823. data.unshift({
  4824. dictTag: "全部",
  4825. dictValue: "888",
  4826. });
  4827. this[type + "options"] = data;
  4828. } else {
  4829. this[type + "options"] = res.data.ddList;
  4830. }
  4831. }
  4832. });
  4833. },
  4834. //身份证失去焦点
  4835. identifyblur(info) {
  4836. this[info].age =typeof getAgeByIdCard(this[info].identifyNumber)=='number' ?getAgeByIdCard(this[info].identifyNumber):'';
  4837. this[info].gender = getGenderByIdCard(this[info].identifyNumber);
  4838. },
  4839. //车主信息选择性别
  4840. genderChange(e) {
  4841. if (this.tbczcarShow) {
  4842. this.policyHolderInfo.gender = e;
  4843. } else if (this.bbczcarShow) {
  4844. this.insuredPersonInfo.gender = e;
  4845. }
  4846. },
  4847. //省市区
  4848. areahandleChange(event, info) {
  4849. if (event[0] != null && event[1] != null && event[2] != null) {
  4850. this[info].province = event[0]
  4851. this[info].city = event[1]
  4852. this[info].county = event[2]
  4853. }
  4854. },
  4855. iconfftter(icon) {
  4856. return CommonUtil.getDataName({
  4857. dataList: this.global.insCompanyList,
  4858. value: "name",
  4859. label: "icon",
  4860. data: icon,
  4861. });
  4862. },
  4863. disabledDate(time) {
  4864. let datetime = this.carInfo.registerDate;
  4865. return time.getTime() < new Date(datetime).getTime();
  4866. },
  4867. onScroll() {
  4868. // 变量scrollTop是滚动条滚动时,滚动条上端距离顶部的距离
  4869. var scrollTop =
  4870. document.documentElement.scrollTop || document.body.scrollTop;
  4871. // 变量windowHeight是可视区的高度
  4872. var windowHeight =
  4873. document.documentElement.clientHeight || document.body.clientHeight;
  4874. // 变量scrollHeight是滚动条的总高度(当前可滚动的页面的总高度)
  4875. var scrollHeight =
  4876. document.documentElement.scrollHeight || document.body.scrollHeight;
  4877. // 滚动条到底部
  4878. if (Math.ceil(scrollTop + windowHeight) >= scrollHeight) {
  4879. this.isBottom = true;
  4880. } else {
  4881. this.isBottom = false;
  4882. }
  4883. },
  4884. pinganInsuranceChange(index, index1, val) {
  4885. if (!index) {
  4886. return;
  4887. }
  4888. this.accidentFormPA[index1].pingantemplateSelection = index;
  4889. this.accidentFormPA[index1].projectName = index
  4890. val.map(val1 => {
  4891. if (val1.projectName == index) {
  4892. val1.son.forEach(val3 => {
  4893. val3.quantity = '1'
  4894. })
  4895. this.accidentFormPA[index1].pinganInsuranceDataTable = val1.son
  4896. this.accidentFormPA[index1].projectCode = val1.projectCode
  4897. }
  4898. })
  4899. console.log(this.accidentFormPA[index1], index, 4444444444);
  4900. // this.accidentFormPA[index1].projectCode=this.pinganInsuranceData.find(val1=>{
  4901. // // val1.map(
  4902. // // (val) => val.projectName == index
  4903. // // ).projectCode
  4904. // }
  4905. // )
  4906. // this.accidentFormPA[index1].pinganInsuranceDataTable = this.pinganInsuranceData.find(
  4907. // (val) => val.projectName == index
  4908. // ).son;
  4909. },
  4910. taikangInsuranceChange(index) {
  4911. if (index) {
  4912. this.TkDrivingChange(
  4913. this.taikangaccidentDataList.find((val) => val.projectCode == index)
  4914. );
  4915. }
  4916. if (!index) {
  4917. return;
  4918. }
  4919. this.taikangtemplateSelection = index;
  4920. this.accidentFormTk = Object.assign(
  4921. this.accidentFormTk,
  4922. this.taikangaccidentDataList.find((val) => val.projectCode == index)
  4923. );
  4924. this.taikangaccidentDataList
  4925. .find((val) => val.projectCode == index)
  4926. .son.forEach((item) => {
  4927. item.sumAmount =
  4928. Number(item.amount) * Number(this.accidentFormTk.seatNum);
  4929. });
  4930. this.taikangInsuranceDataTable = this.taikangaccidentDataList.find(
  4931. (val) => val.projectCode == index
  4932. ).son;
  4933. this.accidentPremiumTk = this.accidentFormTk.sumPremium;
  4934. },
  4935. anshengInsuranceChange(index) {
  4936. this.anshengtemplateSelection = index;
  4937. let data = this.anshengInsuranceData.find(
  4938. (val) => val.projectCode == index
  4939. );
  4940. this.anshengaccidentalDrivingVo.parentName = data.projectName;
  4941. this.anshengaccidentalDrivingVo.parentCode = data.projectCode;
  4942. this.anshengInsuranceDataTable = [];
  4943. this.anshengInsuranceDataTable = data.children;
  4944. this.anshengInsuranceDataTable.forEach((e) => (e.quantity = "1"));
  4945. },
  4946. hengbangInsuranceChange(index) {
  4947. this.hengbangInsuranceDataTable = this.hengbangInsuranceData.find(
  4948. (val) => val.projectCode == index
  4949. ).son;
  4950. this.hengbangtemplateSelection = index;
  4951. if (this.hengbangInsuranceDataTable.length) {
  4952. this.hengbangaccidentalDrivingVo = this.hengbangInsuranceData.find(
  4953. (val) => val.projectCode == index
  4954. );
  4955. }
  4956. },
  4957. chengtaiInsuranceChange(index) {
  4958. this.chengtaiInsuranceDataTable = this.chengtaiInsuranceData.find(
  4959. (val) => val.projectCode == index
  4960. ).son;
  4961. this.chengtaitemplateSelection = index;
  4962. if (this.chengtaiInsuranceDataTable.length) {
  4963. this.chengtaiaccidentalDrivingVo = this.chengtaiInsuranceData.find(
  4964. (val) => val.projectCode == index
  4965. );
  4966. }
  4967. },
  4968. huanongInsuranceChange(index) {
  4969. this.huanongInsuranceDataTable = this.huanongInsuranceData.find(
  4970. (val) => val.projectCode == index
  4971. ).son;
  4972. this.accidentFormHN.accidentType = index;
  4973. this.huanongaccidentalDrivingVo = Object.assign(
  4974. this.huanongInsuranceData.find((val) => val.projectCode == index),
  4975. this.accidentFormHN
  4976. );
  4977. },
  4978. taipingInsuranceChange(index) {
  4979. this.taipingtemplateSelection = index;
  4980. this.taipingInsuranceDataTable = this.taipingInsuranceData.find(
  4981. (val) => val.projectCode == index
  4982. ).son;
  4983. if (
  4984. this.taipingInsuranceDataTable &&
  4985. this.taipingInsuranceDataTable.length
  4986. ) {
  4987. this.taipingaccidentalDrivingVo = this.taipingInsuranceData.find(
  4988. (val) => val.projectCode == index
  4989. );
  4990. }
  4991. },
  4992. zijinInsuranceChange(index) {
  4993. this.zijintemplateSelection = index;
  4994. this.zijinInsuranceDataTable = [];
  4995. this.$refs.expandTable[0].clearSelection();
  4996. index.forEach((item) => {
  4997. this.zijinInsuranceDataTable.push(
  4998. this.ziJinInsuranceData.find((val) => val.projectCode == item)
  4999. );
  5000. });
  5001. this.zijinInsuranceDataTable.forEach((item) => {
  5002. this.$nextTick(() => {
  5003. this.$refs.expandTable[0].toggleRowSelection(item);
  5004. });
  5005. });
  5006. this.CheckboxChange(this.zijinInsuranceDataTable);
  5007. },
  5008. renshouInsuranceChange(index) {
  5009. // this.renshouInsuranceDataTable = [
  5010. // this.renshouInsuranceData.find(val => val.projectCode == index)
  5011. // ];
  5012. this.renshoutemplateSelection = index;
  5013. this.renshouInsuranceDataTable = this.renshouInsuranceData.find(
  5014. (val) => val.projectCode == index
  5015. ).son;
  5016. if (index) {
  5017. this.RSDrivingChange(
  5018. this.renshouInsuranceData.find((val) => val.projectCode == index)
  5019. );
  5020. }
  5021. },
  5022. async dajiaInsuranceChange(index) {
  5023. this.dajiaaccidentalDrivingVo = {};
  5024. let data = await this.$api.letter.accidentalDrivingInfo(index);
  5025. if (data.code == 200) {
  5026. this.dajiaaccidentalDrivingVo = {
  5027. rideRiskCode: index,
  5028. rideRiskName: this.dajiaInsuranceData.find((val) => val.id == index)
  5029. .productName,
  5030. quantity: "1",
  5031. };
  5032. this.dajiaInsuranceDataTable = data.data;
  5033. }
  5034. },
  5035. zhonganInsuranceChange(index) {
  5036. this.zhongantemplateSelection = index;
  5037. this.zhonganInsuranceDataTable = this.zhonganInsuranceData.find(
  5038. (val) => val.projectCode == index
  5039. ).son;
  5040. if (index) {
  5041. this.ZADrivingChange(
  5042. this.zhonganInsuranceData.find((val) => val.projectCode == index)
  5043. );
  5044. }
  5045. },
  5046. // 渤海选择意外险类型
  5047. async bohaiInsuranceChange(index) {
  5048. if (index) {
  5049. this.boHaiaccidentForm.projectCode = index;
  5050. // this.boHaiaccidentForm.projectName = this.dajiaInsuranceData.find(
  5051. // (e) => e.projectCode == index
  5052. // ).projectName;
  5053. this.boHaiaccidentForm.copies = "1";
  5054. this.boHaiaccidentForm.premium = Number(
  5055. this.boHaiaccidentDataList.find((e) => e.projectCode == index).sumPremium
  5056. );
  5057. this.bohaiInsuranceDataTable = this.boHaiaccidentDataList.find(
  5058. (e) => e.projectCode == index
  5059. ).son;
  5060. // let data = await this.$api.letter.productDetailsQueryboHai({
  5061. // projectCode: index,
  5062. // productCode: this.boHaiaccidentDataList.find(
  5063. // (e) => e.packageCode == index
  5064. // ).productCode,
  5065. // agreementId: this.boHaiaccidentForm.agreementId,
  5066. // });
  5067. // if (data.code == 200 && data.data) {
  5068. // this.accidentLoadingbh = false;
  5069. // this.bohaiInsuranceDataTable = data.data;
  5070. // } else {
  5071. // this.$message.error(data.msg);
  5072. // this.bohaiInsuranceDataTable = [];
  5073. // }
  5074. }
  5075. },
  5076. djcxchange(index) {
  5077. if (index) {
  5078. this.dajiaaccidentForm.parentCode = index;
  5079. this.dajiaaccidentForm.quantity = "1";
  5080. this.dajiaaccidentForm.prodCode = "";
  5081. this.dajiaaccidentDataListChild = this.dajiaInsuranceData.find(
  5082. (e) => e.projectCode == index
  5083. ).children;
  5084. this.dajiaaccidentalDrivingVo.parentName = this.dajiaInsuranceData.find(
  5085. (e) => e.projectCode == index
  5086. ).projectName;
  5087. this.dajiaaccidentalDrivingVo.parentCode = this.dajiaInsuranceData.find(
  5088. (e) => e.projectCode == index
  5089. ).projectCode;
  5090. }
  5091. },
  5092. djcxchangeChild(index) {
  5093. if (index) {
  5094. let list = this.dajiaaccidentDataListChild.find(
  5095. (val) => val.projectCode == index
  5096. );
  5097. this.dajiaaccidentForm = {
  5098. ...this.dajiaaccidentForm,
  5099. prodCode: index,
  5100. projectName: list.projectName,
  5101. sumAmount: Number(list.sumAmount),
  5102. riskCode: list.riskCode,
  5103. sumPremium: Number(list.sumPremium),
  5104. };
  5105. list.productId = list.id;
  5106. this.dajiaInsuranceDataTable = list.son;
  5107. this.dajiaaccidentalDrivingVo = Object.assign({
  5108. ...this.dajiaaccidentalDrivingVo,
  5109. ...list,
  5110. });
  5111. } else {
  5112. this.dajiaInsuranceDataTable = [];
  5113. }
  5114. },
  5115. // 国任选择意外险类型
  5116. async grcxchange(index) {
  5117. if (index) {
  5118. this.accidentLoading = true;
  5119. this.guoRenaccidentForm.goodsCode = index;
  5120. this.guoRenaccidentForm.quantity = "1";
  5121. this.guoRenaccidentForm.prodCode = "";
  5122. this.guoRenaccidentDataListChild = this.guoRenaccidentDataList.find(
  5123. (e) => e.projectCode == index
  5124. ).children;
  5125. this.guoRenaccidentalDrivingVo.parentName =
  5126. this.guoRenaccidentDataList.find(
  5127. (e) => e.projectCode == index
  5128. ).projectName;
  5129. this.guoRenaccidentalDrivingVo.parentCode =
  5130. this.guoRenaccidentDataList.find(
  5131. (e) => e.projectCode == index
  5132. ).projectCode;
  5133. // let data = await this.$api.letter.syncNonAutoInsGuoren({
  5134. // goodsCode: index,
  5135. // agreementId: this.guoRenaccidentForm.agreementId
  5136. // });
  5137. // if (data.code == 200) {
  5138. // let num = 0;
  5139. // data.data.forEach(item => {
  5140. // num += Number(item.premium);
  5141. // });
  5142. // this.accidentLoading = false;
  5143. // } else {
  5144. // this.accidentLoading = false;
  5145. // this.$message.error(data.msg);
  5146. // this.guoRenaccidentDataListChild = [];
  5147. // }
  5148. }
  5149. },
  5150. // 国任选择意外险子级类型
  5151. async grcxchangeChild(index) {
  5152. let list = this.guoRenaccidentDataListChild.find(
  5153. (val) => val.projectCode == index
  5154. );
  5155. this.guoRenaccidentForm = {
  5156. ...this.guoRenaccidentForm,
  5157. prodCode: index,
  5158. policyNum: Number(list.sumPremium),
  5159. riskCode: list.riskCode,
  5160. // amount: list.amount,
  5161. sumPremium: Number(list.sumPremium),
  5162. // appnum:Number(list.appnum)
  5163. };
  5164. this.guoRenInsuranceDataTable = list.son;
  5165. this.guoRenaccidentalDrivingVo = Object.assign({
  5166. ...list,
  5167. ...this.guoRenaccidentalDrivingVo,
  5168. });
  5169. },
  5170. // 选择意外险类型
  5171. async yongchengInsuranceChange(index) {
  5172. if (!index) {
  5173. return;
  5174. }
  5175. this.yongchengtemplateSelection = index;
  5176. this.accidentForm = Object.assign(
  5177. this.accidentForm,
  5178. this.yongchengaccidentDataList.find((val) => val.projectCode == index)
  5179. );
  5180. this.yongchengaccidentDataList
  5181. .find((val) => val.projectCode == index)
  5182. .son.forEach((item) => {
  5183. item.sumAmount =
  5184. Number(item.amount) * Number(this.accidentForm.seatNum);
  5185. });
  5186. this.yongchengInsuranceDataTable = this.yongchengaccidentDataList.find(
  5187. (val) => val.projectCode == index
  5188. ).son;
  5189. this.accidentPremium = this.accidentForm.sumPremium;
  5190. // this.accidentForm.fen = "1";
  5191. // let data = await this.$api.letter.ycgainAccidentSchemeList({
  5192. // companyCode: this.accidentForm.companyId,
  5193. // code: index,
  5194. // agreementId: this.accidentForm.agreementId,
  5195. // seatNum: Number(this.carInfo.seatCount)
  5196. // });
  5197. // if (data.code == 200) {
  5198. // let num = 0;
  5199. // data.data.forEach(item => {
  5200. // num += Number(item.premium);
  5201. // });
  5202. // this.accidentPremium = num;
  5203. // this.accidentForm.premium = num;
  5204. // this.accidenttableData = data.data;
  5205. // }
  5206. },
  5207. numberCopieschange(index) {
  5208. this.accidentForm.sumPremium = Number(this.accidentPremium) * index;
  5209. },
  5210. numberCopieschangeTk(index) {
  5211. this.accidentFormTk.sumPremium = Number(this.accidentPremiumTk) * index;
  5212. },
  5213. numberCopieschangePA(index, index1) {
  5214. this.accidentFormPA.premium = Number(this.accidentFormPA[index1].accidentPremiumPA) * index;
  5215. },
  5216. numberCopieschangeZM(index) {
  5217. this.accidentFormZM.sumPremium = Number(this.accidentPremiumZM) * index;
  5218. },
  5219. numberCopieschangeGR(index) {
  5220. this.guoRenaccidentForm.sumPremium =
  5221. Number(this.guoRenaccidentForm.policyNum) * index;
  5222. },
  5223. continuousChange(id) {
  5224. this.continuousCompanyList.map((ele) => {
  5225. if (ele.id == id) {
  5226. this.attributionform.configure = [];
  5227. ele.configure.map((ele, index) => {
  5228. this.attributionform.configure.push({
  5229. field: ele.field,
  5230. isEdit: ele.isEdit,
  5231. label: ele.label,
  5232. type: ele.type,
  5233. value: "",
  5234. });
  5235. });
  5236. }
  5237. });
  5238. },
  5239. //续保查询
  5240. continuousquery() {
  5241. this.$api.letter.queryRenewal(this.attributionform).then((res) => {
  5242. if (res.code == "200") {
  5243. this.carInfo = res.data.carInfo;
  5244. this.ownerInfo = res.data.ownerInfo;
  5245. this.policyHolderInfo = res.data.policyHolderInfo;
  5246. this.insuredPersonInfo = res.data.insuredPersonInfo;
  5247. res.data.riskList.map((ele) => {
  5248. if (ele.riskCode == "0507") {
  5249. this.jqchecked = true;
  5250. this.jqstartDate = ele.startDate;
  5251. this.jqendDate = ele.endDate;
  5252. } else if (ele.riskCode == "0510") {
  5253. this.sychecked = true;
  5254. this.systartDate = ele.startDate;
  5255. this.syendDate = ele.endDate;
  5256. }
  5257. county;
  5258. });
  5259. } else {
  5260. this.$message({
  5261. message: res.msg,
  5262. type: "error",
  5263. duration: 2000,
  5264. });
  5265. }
  5266. });
  5267. },
  5268. //永诚转保
  5269. renewalCodeconfirm() {
  5270. this.renewalCodedialogVisible = false;
  5271. this.quote();
  5272. },
  5273. //报价轨迹查询
  5274. RadioHistoryChange(e) {
  5275. let params = {
  5276. orderNo: this.orderno,
  5277. orderStatus: e == 888 ? "" : e,
  5278. };
  5279. this.$api.letter.queryQuoteHistory(params).then((res) => {
  5280. res.data.forEach((item) => {
  5281. if (item.accidentInfo) {
  5282. item.accidentInfo.constructor === Object
  5283. ? [item.accidentInfo]
  5284. : item.accidentInfo;
  5285. }
  5286. });
  5287. this.HistoryList = res.data;
  5288. });
  5289. },
  5290. protocolJudge(val, val1) {
  5291. if (val1) {
  5292. this.totalCompanyList.forEach((e) => {
  5293. if (
  5294. e.agreement.find(
  5295. (el) => el.productsCode && el.productsCode.includes(val)
  5296. )
  5297. ) {
  5298. e.agreement.find(
  5299. (el) => el.productsCode && el.productsCode.includes(val)
  5300. ).disabled = true;
  5301. }
  5302. });
  5303. } else {
  5304. this.totalCompanyList.forEach((e) => {
  5305. if (
  5306. e.agreement.find(
  5307. (el) => el.productsCode && el.productsCode.includes(val)
  5308. )
  5309. ) {
  5310. e.agreement.find(
  5311. (el) => el.productsCode && el.productsCode.includes(val)
  5312. ).disabled = false;
  5313. }
  5314. });
  5315. }
  5316. },
  5317. async obtainProtocol(data) {
  5318. let res = {};
  5319. if (this.isLetter == "1") {
  5320. res = await this.$api.letter.getAllAgreement();
  5321. }
  5322. if (this.isLetter == "2") {
  5323. res = await this.$api.letter.getAllAgreementByUserId({
  5324. userId: this.userId,
  5325. });
  5326. }
  5327. if (this.isLetter == "3") {
  5328. this.userId = data ? data.userid : this.userId;
  5329. res = await this.$api.letter.getExternalAgreement();
  5330. }
  5331. if (res.code == 200) {
  5332. res.data.map((ele) => {
  5333. ele["result"] = {};
  5334. ele["quoteCode"] = 0;
  5335. ele["checked"] = false;
  5336. ele["msg"] = "";
  5337. ele["lastYearMsg"] = "";
  5338. ele["agreementId"] = "";
  5339. ele["apiType"] = "";
  5340. ele["orderstatus"] = 0;
  5341. ele.coefficient = "";
  5342. ele['isInspect'] = false;
  5343. // ele.agreementId = ele.agreement[0].id;
  5344. // ele.apiType = ele.agreement[0].apiType;
  5345. ele.underwritingDescription =
  5346. ele.agreement[0].underwritingDescription;
  5347. if (ele.isTaxSource && ele.isTaxSource == "1") {
  5348. ele.agreement.forEach((val) => {
  5349. if (val.isTaxSource && val.isTaxSource == "1") {
  5350. ele.agreementId = val.id;
  5351. ele.apiType = val.apiType;
  5352. }
  5353. });
  5354. }
  5355. });
  5356. if (data && data.insAreaCompanyEditingDtos) {
  5357. res.data.forEach((val, index) => {
  5358. data.insAreaCompanyEditingDtos.forEach((ele) => {
  5359. if (val.namesimple == ele.inscompany) {
  5360. if (["中国人寿", "诚泰财险"].includes(ele.inscompany) && ele.companyId) {
  5361. this.lastCompanyId = ele.companyId;
  5362. }
  5363. res.data[index].quoteCode = 200;
  5364. res.data[index].result = ele;
  5365. }
  5366. });
  5367. });
  5368. }
  5369. // //险种合并集合
  5370. }
  5371. const combinedArray = [
  5372. ...this.riskList.map(item => item.riskCode),
  5373. ...this.kindList.map(item => item.kindCode),
  5374. ];
  5375. res.data = res.data.filter(obj => {
  5376. obj.agreement = obj.agreement.filter(agreementObj => {
  5377. // 险种配置为空,则过滤掉该协议
  5378. if (agreementObj.productsCodes == null) {
  5379. return true;
  5380. } else {
  5381. // 检查是否包含 A 的特殊处理
  5382. if (combinedArray.includes('A') && !agreementObj.productsCodes.includes(
  5383. 'A')) {
  5384. return false;
  5385. }
  5386. return agreementObj.productsCodes.some(item => combinedArray.includes(
  5387. item));
  5388. }
  5389. });
  5390. return obj.agreement.length > 0; // 返回true保留,返回false移除该保险公司
  5391. });
  5392. res.data.forEach((e) => {
  5393. e.agreement.forEach((el) => (el.disabled = false));
  5394. });
  5395. //this.totalCompanyList = res.data;
  5396. this.totalCompanyListBak =res.data;
  5397. },
  5398. //获取保险公司列表
  5399. // commpanyList() {
  5400. // this.$api.letter.gainAllowQuoteList("").then(res => {
  5401. // res.data.map(ele => {
  5402. // ele["result"] = {};
  5403. // ele["quoteCode"] = 0;
  5404. // ele["checked"] = false;
  5405. // ele["msg"] = "";
  5406. // ele["lastYearMsg"] = "";
  5407. // ele["agreementId"] = "";
  5408. // ele["apiType"] = "";
  5409. // ele["orderstatus"] = 0;
  5410. // ele.coefficient = "";
  5411. // // ele.agreementId = ele.agreement[0].id;
  5412. // ele.apiType = ele.agreement[0].apiType;
  5413. // ele.underwritingDescription =
  5414. // ele.agreement[0].underwritingDescription;
  5415. // });
  5416. // if (this.$route.query.data) {
  5417. // res.data.forEach((val, index) => {
  5418. // this.$route.query.data.insAreaCompanyEditingDtos.forEach(ele => {
  5419. // if (val.namesimple == ele.inscompany) {
  5420. // res.data[index].quoteCode = 200;
  5421. // res.data[index].result = ele;
  5422. // }
  5423. // });
  5424. // });
  5425. // }
  5426. // this.totalCompanyList = res.data;
  5427. // });
  5428. // },
  5429. Payment(id, item) {
  5430. this.carcode(id, item);
  5431. },
  5432. /**
  5433. // 获取出口费用
  5434. getExternalOrderFee(agreementId, riskList, kindList) {
  5435. let data = {
  5436. agreementId: agreementId,
  5437. risks: riskList,
  5438. kinds: kindList,
  5439. userId: this.userId,
  5440. jqPremium: this.policyNumberForm.jqpremium,
  5441. jqRadio: this.policyNumberForm.jqCostsProportion,
  5442. syPremium: this.policyNumberForm.sypremium,
  5443. syRadio: this.policyNumberForm.syCostsProportion,
  5444. jyPremium: this.policyNumberForm.jypremium,
  5445. jyRadio: this.policyNumberForm.noCostsProportion,
  5446. }
  5447. this.$api.letter.externalOrderFee(data).then((res) => {
  5448. if (res.code == 200) {
  5449. this.policyNumberForm.JqExportFee = res.data.jqExportRadio
  5450. this.policyNumberForm.syExportFee = res.data.syExportRadio
  5451. this.policyNumberForm.noExportFee = res.data.noExportRadio
  5452. console.log(res.data.jqExportRadio, res.data.syExportRadio, res.data.noExportRadio, '111111111111111111')
  5453. this.$forceUpdate()
  5454. } else {
  5455. this.$message.error(res.msg)
  5456. }
  5457. })
  5458. },
  5459. // 现询
  5460. getInquiryNowList(agreementId, riskList, kindList) {
  5461. let productId = ''
  5462. this.inquiryNowList = []
  5463. this.$api.letter.getProductId({
  5464. riskList: riskList,
  5465. kindList: kindList
  5466. }).then((res) => {
  5467. if (res.code == 200) {
  5468. productId = res.data
  5469. this.$api.letter.getInquiryNowFee({
  5470. agreementId: agreementId,
  5471. productId: productId
  5472. }).then((resp) => {
  5473. if (resp.code == 200) {
  5474. this.inquiryNowList = resp.data
  5475. }
  5476. })
  5477. }
  5478. })
  5479. },
  5480. inquiryNowListChange(data) {
  5481. if (data) {
  5482. this.nowCostsId = data // 现询id
  5483. this.isInquiryNowDisable = true
  5484. this.inquiryNowList.forEach((val) => {
  5485. if (val.id == data) {
  5486. this.policyNumberForm.jqCostsProportion = val.jqCostsProportion
  5487. this.policyNumberForm.noCostsProportion = val.noCostsProportion
  5488. this.policyNumberForm.syCostsProportion = val.syCostsProportion
  5489. }
  5490. })
  5491. } else {
  5492. this.nowCostsId = ''
  5493. this.isInquiryNowDisable = false
  5494. this.policyNumberForm.jqCostsProportion = ''
  5495. this.policyNumberForm.noCostsProportion = ''
  5496. this.policyNumberForm.syCostsProportion = ''
  5497. }
  5498. },
  5499. **/
  5500. /**
  5501. //选择协议 val:协议id row:协议列表 index:下标 item:保险公司数据集合
  5502. agreementChange(val, row, index, item) {
  5503. this.getInquiryNowList(val, this.riskList, this.kindList)
  5504. this.getExternalOrderFee(val, this.riskList, this.kindList)
  5505. this.kindListFun();
  5506. if (this.isLetter == "3") {
  5507. this.isLetter3agreementId = "";
  5508. this.isLetter3agreementId = item.agreementId;
  5509. }
  5510. let obj = {};
  5511. obj = row.find((item) => {
  5512. return item;
  5513. });
  5514. let selectRow = row.find((item) => {
  5515. return item.id == val;
  5516. });
  5517. let info = row.find((ele) => ele.id == val);
  5518. this.totalCompanyList[index].apiType = info.apiType;
  5519. this.totalCompanyList[index].underwritingDescription = val
  5520. ? selectRow.underwritingDescription
  5521. : ""; //重新赋值修改选中协议承保描述
  5522. if (this.$route.path != "/task/external/externalOrders")
  5523. if (item.namesimple == "平安财险") {
  5524. this.$api.letter.getPingAnDrivingInsuranceRule({
  5525. cimodelclass: this.carInfo.cimodelclass,
  5526. isUseCombine: 'Y',
  5527. tonNumber: this.carInfo.limitLoad,
  5528. ownAttribute: '03',
  5529. useAttribute: this.carInfo.carnature,
  5530. ruleSeatNum: Number(this.carInfo.seatCount),
  5531. agreementId: item.agreementId,
  5532. }).then(res => {
  5533. this.pinganInsuranceData = res.data;
  5534. })
  5535. return
  5536. }
  5537. // this.$api.letter
  5538. // .getDrivingInsuranceRule({
  5539. // companyCode: item.id,
  5540. // agreementId: item.agreementId,
  5541. // seatNum:
  5542. // item.namesimple == "永诚财险" || item.namesimple == "中煤财险"
  5543. // ? Number(this.carInfo.seatCount)
  5544. // : "",
  5545. // ruleUseNature: this.carInfo.carnature,
  5546. // ruleSeatNum: Number(this.carInfo.seatCount),
  5547. // risk: this.riskList,
  5548. // kind: this.kindList,
  5549. // ruleThirdPartyInsurance: this.insureList[1].amount,
  5550. // })
  5551. // .then((res) => {
  5552. // if (res.code == 200) {
  5553. // this.nonVehicle(res.data, item.cnName);
  5554. // switch (item.namesimple) {
  5555. // case "永诚财险":
  5556. // this.yongchengaccidentDataList = res.data;
  5557. // break;
  5558. // case "国任财险":
  5559. // this.guoRenaccidentDataList = res.data;
  5560. // break;
  5561. // case "渤海财险":
  5562. // this.boHaiaccidentDataList = res.data;
  5563. // break;
  5564. // case "中煤财险":
  5565. // this[item.cnName + +"InsuranceData"] = res.data;
  5566. // break;
  5567. // case "紫金财险":
  5568. // let data = res.data;
  5569. // data.map((ele) => {
  5570. // ele.quantity = 1;
  5571. // return ele;
  5572. // });
  5573. // this.ziJinInsuranceData = data;
  5574. // break;
  5575. // case "大家财险":
  5576. // this.dajiaInsuranceData = res.data;
  5577. // break;
  5578. // case "泰康财险":
  5579. // this.taikangaccidentDataList = res.data;
  5580. // break;
  5581. // case "诚泰财险":
  5582. // case "中国人寿":
  5583. // case "恒邦财险":
  5584. // case "太平财险":
  5585. // case "安盛天平":
  5586. // case "华农财险":
  5587. // case "众安平安":
  5588. // res.data.map((ele) => {
  5589. // ele.quantity = 1;
  5590. // return ele;
  5591. // });
  5592. // this[item.cnName + "InsuranceData"] = res.data;
  5593. // break;
  5594. // }
  5595. // } else {
  5596. // this.$message.error(res.msg);
  5597. // }
  5598. // });
  5599. // switch (item.namesimple) {
  5600. // case "永诚财险":
  5601. // this.accidentForm.agreementId = item.agreementId;
  5602. // this.$api.letter
  5603. // .ycgainAccidentList({
  5604. // companyCode: item.id,
  5605. // agreementId: item.agreementId,
  5606. // seatNum: Number(this.carInfo.seatCount)
  5607. // })
  5608. // .then(res => {
  5609. // if (res.code == 200) {
  5610. // this.accidentDataList = res.data;
  5611. // }
  5612. // });
  5613. // break;
  5614. // case "国任财险":
  5615. // this.guoRenaccidentForm.agreementId = item.agreementId;
  5616. // this.$api.letter
  5617. // .syncNonAutoInsGuoren({ agreementId: item.agreementId })
  5618. // .then(res => {
  5619. // if (res.code == 200) {
  5620. // this.guoRenaccidentDataList = res.data;
  5621. // } else {
  5622. // this.guoRenaccidentDataList = [];
  5623. // }
  5624. // });
  5625. // break;
  5626. // case "渤海财险":
  5627. // this.boHaiaccidentForm.agreementId = item.agreementId;
  5628. // let policyHolderInfo = this.tbczcarShow
  5629. // ? this.ownerInfo
  5630. // : this.policyHolderInfo;
  5631. // let productQueryVo = {
  5632. // agreementId: item.agreementId,
  5633. // carnature: this.carInfo.carnature,
  5634. // cimodelclass: this.carInfo.cimodelclass,
  5635. // exhaustScale: this.carInfo.enginedesc,
  5636. // limitLoad: this.carInfo.limitLoad,
  5637. // powerScale: this.carInfo.powerScale,
  5638. // seatCount: this.carInfo.seatCount,
  5639. // vehicleUse: this.carInfo.vehicleUse,
  5640. // policyHolderInfo,
  5641. // insuredPersonInfo: this.bbczcarShow
  5642. // ? this.ownerInfo
  5643. // : this.bbtbcarShow
  5644. // ? policyHolderInfo
  5645. // : this.insuredPersonInfo
  5646. // };
  5647. // this.$api.letter.productQueryboHai(productQueryVo).then(res => {
  5648. // if (res.code == 200) {
  5649. // this.boHaiaccidentDataList = res.data;
  5650. // } else {
  5651. // this.boHaiaccidentDataList = [];
  5652. // }
  5653. // });
  5654. // break;
  5655. // case "紫金财险":
  5656. // this.$api.letter
  5657. // .zijinqueryVehicleProducts({
  5658. // agreementId: val,
  5659. // seatCount: Number(this.carInfo.seatCount)
  5660. // })
  5661. // .then(res => {
  5662. // if (res.code == 200) {
  5663. // let data = res.data;
  5664. // data.map(ele => {
  5665. // ele.quantity = 1;
  5666. // return ele;
  5667. // });
  5668. // this.ziJinInsuranceData = data;
  5669. // } else {
  5670. // this.$message.error(res.msg);
  5671. // }
  5672. // });
  5673. // break;
  5674. // case "中国人寿":
  5675. // case "恒邦财险":
  5676. // case "太平财险":
  5677. // case "安盛天平":
  5678. // case "华农财险":
  5679. // case "众安平安":
  5680. // this.$api.letter.pythongetDriving({ agreementId: val }).then(res => {
  5681. // if (res.code == 200) {
  5682. // let data = res.data;
  5683. // data.map(ele => {
  5684. // ele.quantity = 1;
  5685. // return ele;
  5686. // });
  5687. // this[item.cnName + "InsuranceData"] = data;
  5688. // }
  5689. // });
  5690. // break;
  5691. // case "大家财险":
  5692. // this.$api.letter
  5693. // .dajiagetDriving({ agreementId: item.agreementId })
  5694. // .then(res => {
  5695. // if (res.code == 200) {
  5696. // this.dajiaInsuranceData = res.data;
  5697. // }
  5698. // });
  5699. // break;
  5700. // default:
  5701. // break;
  5702. // }
  5703. },
  5704. **/
  5705. nonVehicle(data, type) {
  5706. if (data.some((e) => e.isDefault)) {
  5707. if (type == "guoRen") {
  5708. this.grcxchange(data.find((ele) => ele.isDefault).projectCode);
  5709. this.grcxchangeChild(
  5710. data
  5711. .find((ele) => ele.isDefault)
  5712. .children.find((ele) => ele.isDefault).projectCode
  5713. );
  5714. }
  5715. if (type == "ansheng") {
  5716. this.anshengInsuranceChange(
  5717. data.find((ele) => ele.isDefault).projectCode
  5718. );
  5719. this.ASDrivingRadio(
  5720. data
  5721. .find((ele) => ele.isDefault)
  5722. .children.find((ele) => ele.isDefault)
  5723. );
  5724. }
  5725. if (type == "zijin") {
  5726. this[type + "InsuranceChange"]([
  5727. data.find((ele) => ele.isDefault).projectCode,
  5728. ]);
  5729. } else {
  5730. this[type + "InsuranceChange"](
  5731. data.find((ele) => ele.isDefault).projectCode
  5732. );
  5733. }
  5734. }
  5735. },
  5736. CheckboxChange(select, row) {
  5737. this.accidentalDrivingVo = [];
  5738. select.map((val) => {
  5739. this.accidentalDrivingVo.push(val);
  5740. return val;
  5741. });
  5742. },
  5743. //人寿驾意险选择
  5744. RSDrivingChange(row) {
  5745. this.renshouaccidentalDrivingVo = row;
  5746. },
  5747. TkDrivingChange(row) {
  5748. this.taikangaccidentalDrivingVo = row;
  5749. },
  5750. //众安驾意险选择
  5751. ZADrivingChange(row) {
  5752. this.zhonganaccidentalDrivingVo = row;
  5753. },
  5754. RSDrivingRadio(row) {
  5755. this.RSDrivingChange(row);
  5756. },
  5757. //安盛驾意险选择
  5758. ASDrivingRadio(row) {
  5759. this.anshengInsurancetype = row.projectCode;
  5760. this.anshengaccidentalDrivingVo = Object.assign({
  5761. ...this.anshengaccidentalDrivingVo,
  5762. ...row,
  5763. });
  5764. // this.anshengaccidentalDrivingVo.projectCode = row.projectCode;
  5765. // this.anshengaccidentalDrivingVo.projectName = row.projectName;
  5766. },
  5767. pinganDetail(row, agreementId) {
  5768. this.pinganDataDetailVisible = false
  5769. this.$api.letter
  5770. .productDetailsQuery({
  5771. agreementId,
  5772. packageCode: row.code,
  5773. productCode: row.productCode,
  5774. version: row.version,
  5775. })
  5776. .then((res) => {
  5777. if (res.code == 200) {
  5778. this.pinganDataDetailVisible = true
  5779. this.pinganDataDetail = res.data
  5780. }
  5781. else {
  5782. this.$message.err(res.msg)
  5783. }
  5784. });
  5785. },
  5786. sameItem(array1, array2) {
  5787. return array2.find(item => {
  5788. array1.some(innerItem => innerItem.code === item.code)
  5789. }
  5790. );
  5791. },
  5792. PADrivingCheckbox(event, row, agreementId, index) {
  5793. // const checkedVal = this.accidentFormPA[index].pinganInsuranceDataTable.find(x => x.cameraId === item.cameraId)
  5794. const isSelected = event.some(selectedRow => selectedRow.code == row.code);
  5795. let isIndex = null
  5796. let amount = null
  5797. event.find((selectedRow, selectedIndex) => {
  5798. if (selectedRow.code == row.code) {
  5799. isIndex = selectedIndex
  5800. }
  5801. });
  5802. if (event.length > 0 && isSelected) {
  5803. this.$api.letter
  5804. .productDetailsQuery({
  5805. agreementId,
  5806. packageCode: row.code,
  5807. productCode: row.productCode,
  5808. version: row.version,
  5809. })
  5810. .then((res) => {
  5811. if (res.code == 200) {
  5812. res.data.forEach(ele => {
  5813. amount += Number(ele.unitInsuredAmount) ? Number(ele.unitInsuredAmount) : 0
  5814. })
  5815. event[isIndex].amount = amount
  5816. }
  5817. else {
  5818. this.$message.err(res.msg)
  5819. }
  5820. });
  5821. }
  5822. event.forEach((res, indexOf) => {
  5823. res.projectName = this.accidentFormPA[index].projectName
  5824. res.projectCode = this.accidentFormPA[index].projectCode
  5825. res.combineProductType = this.accidentFormPA[index].combineProductType
  5826. })
  5827. this.pinganaccidentalDrivingVo[index] = event
  5828. },
  5829. //平安驾意险选择
  5830. PADrivingRadio(row, agreementId, index) {
  5831. // this.accidentPremiumPA = row.premium;
  5832. this.accidentFormPA[index].quantity = '1';
  5833. this.accidentFormPA[index].sellListSize = Number(row.sellListSize);
  5834. this.accidentFormPA[index].premium = row.premium
  5835. this.accidentFormPA[index].combineProductType = row.combineProductType
  5836. this.accidentFormPA[index].accidentPremiumPA = row.premium
  5837. this.accidentFormPA[index].pinganInsurancetype = row.code;
  5838. this.$api.letter
  5839. .productDetailsQuery({
  5840. agreementId,
  5841. packageCode: row.code,
  5842. productCode: row.productCode,
  5843. version: row.version,
  5844. })
  5845. .then((res) => {
  5846. if (res.code == 200) {
  5847. this.accidentFormPA[index].amount = 0
  5848. res.data.forEach(e => {
  5849. this.accidentFormPA[index].amount += Number(e.unitInsuredAmount) ? Number(e.unitInsuredAmount) : 0
  5850. })
  5851. this.pinganaccidentalDrivingVo[index] = {
  5852. ...row,
  5853. ...this.accidentFormPA[index],
  5854. };
  5855. }
  5856. else {
  5857. this.$message.err(res.msg)
  5858. this.pinganaccidentalDrivingVo[index] = {
  5859. ...row,
  5860. ...this.accidentFormPA[index],
  5861. };
  5862. }
  5863. });
  5864. },
  5865. ZADrivingRadio(row) {
  5866. this.ZADrivingChange(row);
  5867. },
  5868. // 国任特约选择
  5869. contributingGuoRen(id) {
  5870. this.zijinengageListData = [];
  5871. this.contributingLoading = true;
  5872. this.contributingState = true;
  5873. this.hbsubmitdialogVisible = true;
  5874. this.$api.letter
  5875. .guorenqueryClauseData({ agreementId: id })
  5876. .then((res) => {
  5877. this.contributingLoading = false;
  5878. res.data.forEach((val) => {
  5879. val.clauseName = val.clauses;
  5880. val.clauseContent = val.clausesContext;
  5881. });
  5882. this.zijinengageListData = res.data;
  5883. });
  5884. },
  5885. //紫金特约选择
  5886. zijinengageChange(select, row) {
  5887. this.zijinengageList = [];
  5888. select.map((val) => {
  5889. this.zijinengageList.push({
  5890. clauseCode: val.clauseCode,
  5891. clauseName: val.clauseName,
  5892. clauses: val.clauseContent,
  5893. riskCode: val.riskCode,
  5894. });
  5895. return val;
  5896. });
  5897. },
  5898. zijinengageChangeAll(row) {
  5899. if (row) {
  5900. this.zijinengageChange(row);
  5901. } else {
  5902. this.$refs.expandTablePro.clearSelection();
  5903. this.zijinengageList = [];
  5904. }
  5905. },
  5906. //紫金特约内容编辑
  5907. zijincellDblclick(row, column) {
  5908. this.currentCell = row.index + "," + column.index;
  5909. if (
  5910. !["clauseContent"].includes(column.property) &&
  5911. row.modifyFlag == "1"
  5912. ) {
  5913. setTimeout(() => {
  5914. this.$refs[row.index + "," + column.index].focus();
  5915. });
  5916. }
  5917. },
  5918. tableCellClassName({ row, column, rowIndex, columnIndex }) {
  5919. row.index = rowIndex;
  5920. column.index = columnIndex;
  5921. },
  5922. hideInput() {
  5923. this.currentCell = null;
  5924. },
  5925. updateArray(arr, value, condition) {
  5926. if (condition) {
  5927. arr.push(value);
  5928. } else {
  5929. const index = arr.indexOf(value);
  5930. if (index !== -1) {
  5931. arr.splice(index, 1);
  5932. }
  5933. }
  5934. if (arr.length == 0) {
  5935. this.totalCompanyList.forEach((e) => {
  5936. e.disabled = false;
  5937. });
  5938. } else {
  5939. this.totalCompanyList.forEach((e) => {
  5940. e.disabled = e.id == arr[0] ? false : true;
  5941. });
  5942. }
  5943. },
  5944. //勾选保险公司
  5945. initchange(e, code, name, index) {
  5946. if (this.isLetter == "3") {
  5947. this.updateArray(this.isLetter3Arr, code, e);
  5948. if (e) {
  5949. this.totalCompanyList[index].result = JSON.parse(
  5950. JSON.stringify(this.policyNumberForm)
  5951. );
  5952. } else {
  5953. this.totalCompanyList[index].result = [];
  5954. }
  5955. }
  5956. if (e) {
  5957. this.kindListFun();
  5958. let ins = this.totalCompanyList[index].namesimple;
  5959. this.totalCompanyList[index].checked = e;
  5960. this.totalCompanyList[index].underwritingDescription =
  5961. this.totalCompanyList[index].agreement[0].underwritingDescription;
  5962. // if (this.$route.path != "/task/external/externalOrders")
  5963. // this.$api.letter
  5964. // .getDrivingInsuranceRule({
  5965. // agreementId: this.totalCompanyList[index].agreement[0].id,
  5966. // seatNum:
  5967. // ins == "永诚财险" || ins == "中煤财险"
  5968. // ? Number(this.carInfo.seatCount)
  5969. // : "",
  5970. // ruleUseNature: this.carInfo.carnature,
  5971. // ruleSeatNum: Number(this.carInfo.seatCount),
  5972. // risk: this.riskList,
  5973. // kind: this.kindList,
  5974. // ruleThirdPartyInsurance: this.insureList[1].amount,
  5975. // cimodelclass: ins == "平安财险"
  5976. // ? this.carInfo.cimodelclass
  5977. // : "",
  5978. // isUseCombine: ins == "平安财险"
  5979. // ? 'Y'
  5980. // : "",
  5981. // tonNumber: ins == "平安财险"
  5982. // ? this.carInfo.limitLoad
  5983. // : "",
  5984. // ownAttribute: ins == "平安财险"
  5985. // ? '03'
  5986. // : "",
  5987. // useAttribute: ins == "平安财险"
  5988. // ? this.carInfo.carnature
  5989. // : "",
  5990. // })
  5991. // .then((res) => {
  5992. // if (res.code == 200) {
  5993. // switch (ins) {
  5994. // case "永诚财险":
  5995. // this.yongchengaccidentDataList = res.data;
  5996. // break;
  5997. // case "国任财险":
  5998. // this.guoRenaccidentDataList = res.data;
  5999. // break;
  6000. // case "泰康财险":
  6001. // this.taikangaccidentDataList = res.data;
  6002. // break;
  6003. // case "渤海财险":
  6004. // this.boHaiaccidentDataList = res.data;
  6005. // break;
  6006. // case "中煤财险":
  6007. // case "平安财险":
  6008. // this[name + "InsuranceData"] = res.data;
  6009. // break;
  6010. // case "紫金财险":
  6011. // let data = res.data;
  6012. // data.map((ele) => {
  6013. // ele.quantity = 1;
  6014. // return ele;
  6015. // });
  6016. // this.ziJinInsuranceData = data;
  6017. // break;
  6018. // case "大家财险":
  6019. // this.dajiaInsuranceData = res.data;
  6020. // break;
  6021. // case "诚泰财险":
  6022. // case "中国人寿":
  6023. // case "恒邦财险":
  6024. // case "太平财险":
  6025. // case "华农财险":
  6026. // case "安盛天平":
  6027. // case "众安平安":
  6028. // res.data.map((ele) => {
  6029. // ele.quantity = 1;
  6030. // return ele;
  6031. // });
  6032. // this[name + "InsuranceData"] = res.data;
  6033. // break;
  6034. // }
  6035. // this.nonVehicle(res.data, name);
  6036. // } else {
  6037. // this.$message.error(res.msg);
  6038. // }
  6039. // });
  6040. // switch (ins) {
  6041. // case "永诚财险":
  6042. // this.accidentForm.agreementId = this.totalCompanyList[
  6043. // index
  6044. // ].agreement[0].id;
  6045. // this.$api.letter
  6046. // .ycgainAccidentList({
  6047. // companyCode: this.totalCompanyList[index].id,
  6048. // agreementId: this.totalCompanyList[index].agreement[0].id,
  6049. // seatNum: Number(this.carInfo.seatCount)
  6050. // })
  6051. // .then(res => {
  6052. // if (res.code == 200) {
  6053. // this.accidentDataList = res.data;
  6054. // } else {
  6055. // this.accidentDataList = [];
  6056. // }
  6057. // });
  6058. // break;
  6059. // case "国任财险":
  6060. // this.guoRenaccidentForm.agreementId = this.totalCompanyList[
  6061. // index
  6062. // ].agreement[0].id;
  6063. // this.$api.letter
  6064. // .syncNonAutoInsGuoren({
  6065. // goodsCode: "",
  6066. // agreementId: this.totalCompanyList[index].agreement[0].id
  6067. // })
  6068. // .then(res => {
  6069. // if (res.code == 200) {
  6070. // this.guoRenaccidentDataList = res.data;
  6071. // } else {
  6072. // this.guoRenaccidentDataList = [];
  6073. // }
  6074. // });
  6075. // break;
  6076. // case "紫金财险":
  6077. // this.$api.letter
  6078. // .zijinqueryVehicleProducts({
  6079. // agreementId: this.totalCompanyList[index].agreement[0].id,
  6080. // seatCount: Number(this.carInfo.seatCount)
  6081. // })
  6082. // .then(res => {
  6083. // if (res.code == 200) {
  6084. // let data = res.data;
  6085. // data.map(ele => {
  6086. // ele.quantity = 1;
  6087. // return ele;
  6088. // });
  6089. // this.ziJinInsuranceData = data;
  6090. // } else {
  6091. // this.$message.error(res.msg);
  6092. // }
  6093. // });
  6094. // break;
  6095. // case "安盛天平":
  6096. // this.$api.letter
  6097. // .pythongetDriving({
  6098. // agreementId: this.totalCompanyList[index].agreement[0].id
  6099. // })
  6100. // .then(res => {
  6101. // if (res.code == 200) {
  6102. // let data = res.data;
  6103. // data.map(ele => {
  6104. // ele.departmentProductList.map(val => {
  6105. // val.quantity = 1;
  6106. // });
  6107. // return ele;
  6108. // });
  6109. // this[name + "InsuranceData"] = data;
  6110. // } else {
  6111. // this.$message.error(res.msg);
  6112. // }
  6113. // });
  6114. // break;
  6115. // case "中国人寿":
  6116. // case "恒邦财险":
  6117. // case "太平财险":
  6118. // case "华农财险":
  6119. // case "众安平安":
  6120. // this.$api.letter
  6121. // .pythongetDriving({
  6122. // agreementId: this.totalCompanyList[index].agreement[0].id
  6123. // })
  6124. // .then(res => {
  6125. // if (res.code == 200) {
  6126. // let data = res.data;
  6127. // data.map(ele => {
  6128. // ele.quantity = 1;
  6129. // return ele;
  6130. // });
  6131. // this[name + "InsuranceData"] = data;
  6132. // } else {
  6133. // this.$message.error(res.msg);
  6134. // }
  6135. // });
  6136. // break;
  6137. // case "中煤财险":
  6138. // this.accidentFormZM.agreementId = this.totalCompanyList[
  6139. // index
  6140. // ].agreement[0].id;
  6141. // this.$api.letter
  6142. // .zmGetDrivingPro({
  6143. // agreementId: this.totalCompanyList[index].agreement[0].id,
  6144. // seatNum: this.carInfo.seatCount
  6145. // })
  6146. // .then(res => {
  6147. // if (res.code == 200) {
  6148. // let data = res.data;
  6149. // this[name + "InsuranceData"] = data;
  6150. // } else {
  6151. // this.$message.error(res.msg);
  6152. // }
  6153. // });
  6154. // break;
  6155. // case "大家财险":
  6156. // this.$api.letter
  6157. // .dajiagetDriving({
  6158. // agreementId: this.totalCompanyList[index].agreement[0].id
  6159. // })
  6160. // .then(res => {
  6161. // if (res.code == 200) {
  6162. // this.dajiaInsuranceData = res.data;
  6163. // } else {
  6164. // this.$message.error(res.msg);
  6165. // }
  6166. // });
  6167. // break;
  6168. // default:
  6169. // break;
  6170. // }
  6171. // } else {
  6172. }
  6173. },
  6174. clearAccidentForm() {
  6175. this.yongchengInsuranceDataTable = [];
  6176. this.accidentForm = {};
  6177. this.accidentForm.fen = 1;
  6178. this.accidentForm.premium = 0;
  6179. },
  6180. clearAccidentFormPA(index) {
  6181. // this.accidentFormPA[index]={
  6182. // quantity: 1,
  6183. // premium: 0,
  6184. // pingantemplateSelection:'',
  6185. // pinganInsuranceDataTable:[],
  6186. // pinganInsurancetype:'',
  6187. // }
  6188. this.pinganaccidentalDrivingVo[index] = {};
  6189. console.log(this.accidentFormPA[index], 9999999999);
  6190. },
  6191. clearAccidentFormTk() {
  6192. this.taikangaccidentalDrivingVo = {};
  6193. this.taikangInsuranceDataTable = [];
  6194. this.accidentFormTk = {};
  6195. this.accidentFormTk.fen = 1;
  6196. this.accidentFormTk.premium = 0;
  6197. },
  6198. clearAccidentFormGr() {
  6199. (this.guoRenInsuranceDataTable = []),
  6200. (this.guoRenaccidentDataListChild = []);
  6201. this.guoRenaccidentForm = {
  6202. quantity: "1",
  6203. premium: 0,
  6204. };
  6205. },
  6206. clearAccidentFormBh() {
  6207. this.bohaiInsuranceDataTable = [];
  6208. this.boHaiaccidentForm = {
  6209. copies: "1",
  6210. premium: 0,
  6211. };
  6212. // this.bohaiaccidentalDrivingVo={};
  6213. },
  6214. clearAccidentFormHN() {
  6215. this.huanongaccidentalDrivingVo = {};
  6216. },
  6217. clearAccidentFormHB() {
  6218. this.hengbangaccidentalDrivingVo = {};
  6219. },
  6220. clearAccidentFormCT() {
  6221. this.chengtaiaccidentalDrivingVo = {};
  6222. },
  6223. clearAccidentFormTP() {
  6224. this.taipingaccidentalDrivingVo = {};
  6225. },
  6226. clearAccidentFormDJ() {
  6227. this.dajiaaccidentalDrivingVo = {};
  6228. },
  6229. clearAccidentFormZM() {
  6230. this.zhongmeiaccidentalDrivingVo = {};
  6231. },
  6232. clearAccidentFormZJ() {
  6233. this.accidentalDrivingVo = [];
  6234. },
  6235. clearAccidentFormZA() {
  6236. this.zhonganaccidentalDrivingVo = {};
  6237. },
  6238. clearAccidentFormRS() {
  6239. this.renshouaccidentalDrivingVo = {};
  6240. },
  6241. clearAccidentFormAS() {
  6242. this.anshengaccidentalDrivingVo = {};
  6243. },
  6244. //身份证有效期长期
  6245. insureLongterm(e) {
  6246. this[e].identifyValidEndDate = "9999-12-31";
  6247. },
  6248. //较强起保日期事件
  6249. jqChange(e) {
  6250. this.jqendDate = this.oneYearPast1(e);
  6251. },
  6252. //商业起保日期事件
  6253. syChange(e) {
  6254. this.syendDate = this.oneYearPast1(e);
  6255. },
  6256. // //查看更多
  6257. // selectMore(leg) {
  6258. // this.insureMore = false;
  6259. // this.insureLength = leg;
  6260. // },
  6261. // //收起
  6262. // packup() {
  6263. // this.insureMore = true;
  6264. // this.insureLength = 5;
  6265. // },
  6266. //险别选择框事件
  6267. insureitemChange(e, item) {
  6268. let index_old= -1;
  6269. this.kindList.filter(function(kind,index,arr){
  6270. if(kind.kindCode == item.kindCode){
  6271. index_old =index;
  6272. }
  6273. });
  6274. console.log(index_old)
  6275. if (e != 0) {
  6276. if(!this.sychecked){
  6277. this.sychecked = true;
  6278. this.systartDate = this.transformTime1();
  6279. this.syendDate = this.oneYearPast1(this.systartDate);
  6280. }
  6281. if (index_old==-1){
  6282. this.kindList.push(item)
  6283. }else{
  6284. this.$set(this.kindList, index_old, item);
  6285. }
  6286. this.obtainProtocol();
  6287. } else {
  6288. if (index_old==-1){
  6289. this.kindList.push(item)
  6290. }else{
  6291. this.$set(this.kindList, index_old, item);
  6292. }
  6293. this.obtainProtocol();
  6294. }
  6295. console.log(this.kindList)
  6296. },
  6297. all() {
  6298. this.$refs.detailsDialog.setBackupVisible(true);
  6299. },
  6300. base64ToBlob(code) {
  6301. code = code.replace(/[\n\r]/g, "");
  6302. // atob() 方法用于解码使用 base-64 编码的字符串。
  6303. const raw = window.atob(code);
  6304. const rawLength = raw.length;
  6305. const uInt8Array = new Uint8Array(rawLength);
  6306. for (let i = 0; i < rawLength; ++i) {
  6307. uInt8Array[i] = raw.charCodeAt(i);
  6308. }
  6309. return new Blob([uInt8Array], { type: "application/pdf" });
  6310. },
  6311. viewPdf(content) {
  6312. if (!content) {
  6313. this.$message.error("暂无文件");
  6314. return;
  6315. }
  6316. const blob = this.base64ToBlob(content);
  6317. this.href = blob;
  6318. if (window.navigator && window.navigator.msSaveOrOpenBlob) {
  6319. window.navigator.msSaveOrOpenBlob(blob);
  6320. } else {
  6321. const fileURL = URL.createObjectURL(blob);
  6322. window.open(fileURL);
  6323. }
  6324. },
  6325. //二维码生成插件
  6326. creatQrCode(text) {
  6327. // 查找并删除旧的二维码DOM元素
  6328. let element = document.getElementById("qrcode");
  6329. while (element.firstChild) {
  6330. element.removeChild(element.firstChild);
  6331. }
  6332. // 创建新的QRCode实例
  6333. this.qrcode = new QRCode("qrcode", {
  6334. text: text,
  6335. width: this.qrcodeWidth,
  6336. height: this.qrcodeHeight,
  6337. colorDark: "#000000",
  6338. colorLight: "#ffffff",
  6339. correctLevel: QRCode.CorrectLevel.H,
  6340. });
  6341. },
  6342. //人工核保
  6343. underwriting(id) {
  6344. let param = {
  6345. companyId: id,
  6346. };
  6347. this.$api.letter.manualUnderwriting(param).then((res) => {
  6348. if (res.code == "200") {
  6349. this.Payment(id);
  6350. }
  6351. });
  6352. },
  6353. signature(companyId) {
  6354. this.$api.letter.pingAnsignEleApply({ companyId }).then((res) => {
  6355. if (res.code == 200 && res.data) {
  6356. this.resultMessageImg = process.env.BASE_URL + res.data.resultMessage
  6357. this.signaturedialogVisible = true;
  6358. // 查找并删除旧的二维码DOM元素
  6359. // let element = document.getElementById("signaturecode");
  6360. // while (element.firstChild) {
  6361. // element.removeChild(element.firstChild);
  6362. // }
  6363. // this.signaturecode = new QRCode("signaturecode", {
  6364. // text: resultMessage,
  6365. // width: 180,
  6366. // height: 180,
  6367. // colorDark: "#000000",
  6368. // colorLight: "#ffffff",
  6369. // correctLevel: QRCode.CorrectLevel.H,
  6370. // });
  6371. // this.signaturedialogVisible = true;
  6372. // this.$api.letter.pingAnsignEleApply({companyId}).then((res) => {
  6373. // if (res.code == 200 && res.data) {
  6374. // // 查找并删除旧的二维码DOM元素
  6375. // let element = document.getElementById("signaturecode");
  6376. // while (element.firstChild) {
  6377. // element.removeChild(element.firstChild);
  6378. // }
  6379. // this.signaturecode = new QRCode("signaturecode", {
  6380. // text: res.data.resultMessage,
  6381. // width: 180,
  6382. // height: 180,
  6383. // colorDark: "#000000",
  6384. // colorLight: "#ffffff",
  6385. // correctLevel: QRCode.CorrectLevel.H,
  6386. // });
  6387. } else {
  6388. this.$message({
  6389. message: res.msg || "暂无数据!",
  6390. type: "warning",
  6391. });
  6392. }
  6393. });
  6394. },
  6395. jqcheckedChange(e) {
  6396. if (e) {
  6397. this.jqstartDate = this.transformTime1();
  6398. this.jqendDate = this.oneYearPast1(this.jqstartDate);
  6399. if(!this.riskList.includes("0507")){
  6400. this.riskList.push({
  6401. riskCode: "0507",
  6402. });
  6403. }
  6404. this.obtainProtocol();
  6405. } else {
  6406. this.jqstartDate = "";
  6407. this.jqendDate = "";
  6408. let list = this.riskList.filter(item => item.riskCode !== "0507");
  6409. this.riskList = list;
  6410. this.obtainProtocol();
  6411. }
  6412. },
  6413. sycheckedChange(e) {
  6414. if (e) {
  6415. this.systartDate = this.transformTime1();
  6416. this.syendDate = this.oneYearPast1(this.systartDate);
  6417. if(!this.riskList.includes("0510")){
  6418. this.riskList.push({
  6419. riskCode: "0510",
  6420. });
  6421. }
  6422. this.obtainProtocol();
  6423. } else {
  6424. this.systartDate = "";
  6425. this.syendDate = "";
  6426. let list = this.riskList.filter(item => item.riskCode !== "0510");
  6427. this.riskList = list;
  6428. this.obtainProtocol();
  6429. }
  6430. },
  6431. // 保存
  6432. preserveQuote(type, btnLoading) {
  6433. if (
  6434. this.userId == "" ||
  6435. this.userId == null ||
  6436. this.userId == undefined
  6437. ) {
  6438. this.$message({ message: "请选择业务员信息", type: "error" });
  6439. return;
  6440. } else {
  6441. if (!this.userId.includes("M")) {
  6442. this.$message({ message: "请选择业务员信息", type: "error" });
  6443. return;
  6444. }
  6445. }
  6446. let starttime = new Date(this.carInfo.registerDate);
  6447. let endtime = new Date(this.carInfo.issueDate);
  6448. if (endtime < starttime) {
  6449. this.$message({ message: "发证日期早于初登日期", type: "error" });
  6450. return;
  6451. }
  6452. if (this.costFlag =='') {
  6453. this.$message({ message: "请选择是否现询", type: "error" });
  6454. return;
  6455. }
  6456. if (this.nowCostsId =='') {
  6457. this.$message({ message: "费用为空", type: "error" });
  6458. return;
  6459. }
  6460. if (
  6461. this.policyNumberForm.jqpolicyno ||
  6462. this.policyNumberForm.jqpremium ||
  6463. // this.policyNumberForm.jqCostsProportion ||
  6464. this.policyNumberForm.jqPolicyList.length > 0
  6465. ) {
  6466. if (
  6467. !(
  6468. this.policyNumberForm.jqpolicyno &&
  6469. this.policyNumberForm.jqpremium &&
  6470. // this.policyNumberForm.jqCostsProportion &&
  6471. this.policyNumberForm.jqPolicyList.length > 0
  6472. )
  6473. ) {
  6474. this.$message({
  6475. message: "请填写交强保单号、交强险保费、交强保单",
  6476. type: "error",
  6477. });
  6478. return;
  6479. }
  6480. }
  6481. if(this.policyNumberForm.jqpolicyno!='' && this.policyNumberForm.jqpolicyno!= null && this.policyNumberForm.jqCostsProportion == ''){
  6482. this.$message({
  6483. message: "请填写交强险总比例(%)",
  6484. type: "error",
  6485. });
  6486. return;
  6487. }
  6488. if (
  6489. this.policyNumberForm.sypolicyno ||
  6490. this.policyNumberForm.sypremium ||
  6491. //this.policyNumberForm.syCostsProportion ||
  6492. this.policyNumberForm.syPolicyList.length > 0
  6493. ) {
  6494. if (
  6495. !(
  6496. this.policyNumberForm.sypolicyno &&
  6497. this.policyNumberForm.sypremium &&
  6498. // this.policyNumberForm.syCostsProportion &&
  6499. this.policyNumberForm.syPolicyList.length > 0
  6500. )
  6501. ) {
  6502. this.$message({
  6503. message: "请填写商业保单号、商业险保费、商业保单",
  6504. type: "error",
  6505. });
  6506. return;
  6507. }
  6508. }
  6509. if(this.policyNumberForm.sypolicyno!='' && this.policyNumberForm.sypolicyno!= null && this.policyNumberForm.syCostsProportion == ''){
  6510. this.$message({
  6511. message: "请填写商业险总比例(%)",
  6512. type: "error",
  6513. });
  6514. return;
  6515. }
  6516. if (
  6517. this.policyNumberForm.jypolicyno ||
  6518. this.policyNumberForm.jypremium ||
  6519. // this.policyNumberForm.noCostsProportion ||
  6520. this.policyNumberForm.noPolicyList.length > 0
  6521. ) {
  6522. if (
  6523. !(
  6524. this.policyNumberForm.jypolicyno &&
  6525. this.policyNumberForm.jypremium &&
  6526. this.policyNumberForm.noCostsProportion &&
  6527. this.policyNumberForm.noPolicyList.length > 0
  6528. )
  6529. ) {
  6530. this.$message({
  6531. message:
  6532. "请填写驾意险保单号、驾意险保费、非车保单",
  6533. type: "error",
  6534. });
  6535. return;
  6536. }
  6537. }
  6538. if(this.policyNumberForm.jypolicyno!='' && this.policyNumberForm.jypolicyno!= null && this.policyNumberForm.noCostsProportion == ''){
  6539. this.$message({
  6540. message: "请填写非车险总比例(%)",
  6541. type: "error",
  6542. });
  6543. return;
  6544. }
  6545. this.$refs["carInfo"].validate((valid) => {
  6546. if (valid) {
  6547. var _this = this;
  6548. _this.$refs["ownerInfo"].validate((valid1) => {
  6549. if (valid1) {
  6550. _this.$refs["policyNumberForm"].validate((valid2) => {
  6551. if (valid2) {
  6552. if (_this.tbczcarShow == true) {
  6553. _this.policyHolderInfo = {..._this.ownerInfo}
  6554. }
  6555. if (_this.bbczcarShow == true) {
  6556. _this.insuredPersonInfo = {..._this.ownerInfo}
  6557. }
  6558. if (_this.bbtbcarShow == true) {
  6559. _this.insuredPersonInfo = {..._this.policyHolderInfo}
  6560. }
  6561. _this.carInfo.vinNo = _this.carInfo.frameNo;
  6562. _this.riskList = []; //险种大类
  6563. _this.kindList = []; //商业险险别
  6564. if (
  6565. (!_this.jqstartDate || !_this.jqendDate) &&
  6566. (!_this.systartDate || !_this.syendDate)
  6567. ) {
  6568. this.$message({
  6569. message: "投保日期不能为空",
  6570. type: "warning",
  6571. });
  6572. } else {
  6573. this.calculateLoading = true;
  6574. setInterval(() => {
  6575. this.calculateLoading = false;
  6576. }, 3000);
  6577. if (_this.jqchecked) {
  6578. //交强
  6579. _this.jqstartDate = this.transformTime(_this.jqstartDate);
  6580. _this.jqendDate = this.transformTime(_this.jqendDate);
  6581. _this.riskList.push({
  6582. amount: "200000",
  6583. premium: "0",
  6584. riskCode: "0507",
  6585. endDate: _this.jqendDate,
  6586. startDate: _this.jqstartDate,
  6587. instantFlag: "0",
  6588. });
  6589. }
  6590. if (_this.sychecked) {
  6591. _this.systartDate = this.transformTime(_this.systartDate);
  6592. _this.syendDate = this.transformTime(_this.syendDate);
  6593. //商业
  6594. _this.riskList.push({
  6595. premium: "0",
  6596. riskCode: "0510",
  6597. quotePreceptCode: "",
  6598. quotePreceptName: "",
  6599. endDate: _this.syendDate,
  6600. startDate: _this.systartDate,
  6601. instantFlag: "0",
  6602. });
  6603. _this.insureList.map((ele, index) => {
  6604. if (
  6605. ele.amount != "0" &&
  6606. (ele.kindCode == "D4" || ele.kindCode == "SY_FJ_YBW2")
  6607. ) {
  6608. _this.kindList.push({
  6609. unitAmount: _this.insureList[index].amount,
  6610. kindCode: _this.insureList[index].kindCode,
  6611. kindName: _this.insureList[index].kindName,
  6612. });
  6613. } else if (
  6614. ele.amount != "0" &&
  6615. (ele.kindCode == "MJ1" ||
  6616. ele.kindCode == "MJ2" ||
  6617. ele.kindCode == "MJ3" ||
  6618. ele.kindCode == "MJ4")
  6619. ) {
  6620. _this.kindList.push({
  6621. deductibleRate: _this.insureList[index].amount,
  6622. kindCode: _this.insureList[index].kindCode,
  6623. kindName: _this.insureList[index].kindName,
  6624. });
  6625. } else if (
  6626. ele.amount != "0" &&
  6627. (ele.kindCode == "TY1" ||
  6628. ele.kindCode == "TY2" ||
  6629. ele.kindCode == "TY3" ||
  6630. ele.kindCode == "TY4")
  6631. ) {
  6632. _this.kindList.push({
  6633. serviceTimes: _this.insureList[index].amount,
  6634. kindCode: _this.insureList[index].kindCode,
  6635. kindName: _this.insureList[index].kindName,
  6636. });
  6637. } else if (ele.amount != "0") {
  6638. _this.kindList.push({
  6639. amount: _this.insureList[index].amount,
  6640. kindCode: _this.insureList[index].kindCode,
  6641. kindName: _this.insureList[index].kindName,
  6642. });
  6643. }
  6644. return ele;
  6645. });
  6646. } else {
  6647. _this.kindList = [];
  6648. }
  6649. // console.log(_this.kindList);
  6650. // debugger
  6651. this.preserveOrderStageProcessing(type, btnLoading);
  6652. }
  6653. } else {
  6654. document.getElementById("Waibu").scrollIntoView();
  6655. _this.$message({
  6656. message: "请检查外部订单信息",
  6657. type: "warning",
  6658. });
  6659. }
  6660. });
  6661. } else {
  6662. document.getElementById("CheZhu").scrollIntoView();
  6663. _this.$message({ message: "请检查人员信息", type: "warning" });
  6664. }
  6665. });
  6666. } else {
  6667. document.getElementById("Car").scrollIntoView();
  6668. this.$message({ message: "请检查车辆信息", type: "warning" });
  6669. return false;
  6670. }
  6671. });
  6672. },
  6673. //订单生成后保存接口
  6674. preserveOrderStageProcessing(type, btnLoading) {
  6675. // console.log(this.editorInfo);
  6676. // debugger;
  6677. //同车主的选择框
  6678. this[btnLoading] = true;
  6679. if (this.tbczcarShow && this.imageList2.length > 0) {
  6680. //投保人同车主
  6681. this.imageList3 = JSON.parse(JSON.stringify(this.imageList2));
  6682. if (this.imageList3.length == 1) {
  6683. this.imageList3[0].imageType = this.imageList3[0].imageType.includes(
  6684. "C0"
  6685. )
  6686. ? "C03"
  6687. : "D03";
  6688. } else {
  6689. this.imageList3.forEach((e) => {
  6690. e.imageType = e.imageType.includes("C0") ? "C03" : "D03";
  6691. });
  6692. }
  6693. }
  6694. if (this.bbczcarShow && this.imageList2.length > 0) {
  6695. //被保人同车主
  6696. this.imageList4 = JSON.parse(JSON.stringify(this.imageList2));
  6697. if (this.imageList4.length == 1) {
  6698. this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  6699. "C0"
  6700. )
  6701. ? "C04"
  6702. : "D04";
  6703. } else {
  6704. this.imageList4.forEach((e) => {
  6705. e.imageType = e.imageType.includes("C0") ? "C04" : "D04";
  6706. });
  6707. }
  6708. }
  6709. if (this.bbtbcarShow && this.imageList3.length > 0) {
  6710. //被保人同投保人
  6711. this.imageList4 = JSON.parse(JSON.stringify(this.imageList3));
  6712. if (this.imageList4.length == 1) {
  6713. this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  6714. "C0"
  6715. )
  6716. ? "C04"
  6717. : "D04";
  6718. } else {
  6719. this.imageList4.forEach((e) => {
  6720. e.imageType = e.imageType.includes("C0") ? "C04" : "D04";
  6721. });
  6722. }
  6723. }
  6724. //日期长度<10处理
  6725. const formatDate = (date) => {
  6726. if (date.length < 10) {
  6727. return this.timeformat(date);
  6728. }
  6729. return date;
  6730. };
  6731. if (this.carInfo.registerDate.length < 10) {
  6732. this.carInfo.registerDate = formatDate(this.carInfo.registerDate);
  6733. }
  6734. if (this.carInfo.issueDate.length < 10) {
  6735. this.carInfo.issueDate = formatDate(this.carInfo.issueDate);
  6736. }
  6737. if (
  6738. this.carInfo.transferDate &&
  6739. this.carInfo.transferDate.length < 10 &&
  6740. this.carInfo.transferDate !== ""
  6741. ) {
  6742. this.carInfo.transferDate = formatDate(this.carInfo.transferDate);
  6743. }
  6744. //日期长度<10处理
  6745. //提交身份证/驾驶证 ——————————————————
  6746. this.policyHolderInfo.owner = this.tbczcarShow;
  6747. this.insuredPersonInfo.owner = this.bbczcarShow;
  6748. this.insuredPersonInfo.insuranceHolder = this.bbtbcarShow;
  6749. if (typeof this.ownerInfo.provinceData == "string") {
  6750. this.ownerInfo.provinceData = [];
  6751. }
  6752. if (typeof this.insuredPersonInfo.provinceData == "string") {
  6753. this.insuredPersonInfo.provinceData = [];
  6754. }
  6755. if (typeof this.policyHolderInfo.provinceData == "string") {
  6756. this.policyHolderInfo.provinceData = [];
  6757. }
  6758. if (this.$route.query.data) {
  6759. const mergedArray = [
  6760. ...this.imageList1,
  6761. ...this.imageList2,
  6762. ...this.imageList3,
  6763. ...this.imageList4,
  6764. ...this.imageList5,
  6765. ...this.imageList6,
  6766. ];
  6767. if (mergedArray.length > 0) {
  6768. let imageparam = {
  6769. imageList: mergedArray,
  6770. quoteNo: this.$route.query.data.quoteno,
  6771. };
  6772. this.$api.letter.uploadImages(imageparam).then((responses) => {
  6773. // this.$refs.imageDialog.imageEcho(this.$route.query.data.quoteno)
  6774. this.imageEcho(this.$route.query.data.quoteno); // 获取图片
  6775. });
  6776. }
  6777. this.editorInfo.applyinfo.owner = this.tbczcarShow;
  6778. this.editorInfo.insureinfo.owner = this.bbczcarShow;
  6779. this.editorInfo.insureinfo.insuranceHolder = this.bbtbcarShow;
  6780. let params = {
  6781. orderNo: this.$route.query.data.orderno,
  6782. ...this.policyNumberForm,
  6783. agreementId: this.isLetter3agreementId,
  6784. stageFlag: type,
  6785. jqstartdate: this.jqstartDate,
  6786. jqenddate: this.jqendDate,
  6787. systartdate: this.systartDate,
  6788. syenddate: this.syendDate,
  6789. kind: this.kindList,
  6790. risk: this.riskList,
  6791. kindList: this.kindList,
  6792. riskList: this.riskList,
  6793. carInfo: this.carInfo,
  6794. carinfo: this.carInfo,
  6795. insuredPersonInfo: this.insuredPersonInfo,
  6796. insureinfo: this.insuredPersonInfo,
  6797. ownerinfo: this.ownerInfo,
  6798. ownerInfo: this.ownerInfo,
  6799. policyHolderInfo: this.policyHolderInfo,
  6800. applyinfo: this.policyHolderInfo,
  6801. isExternal: "1",
  6802. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  6803. nowCostsId: this.nowCostsId,
  6804. costFlag: this.costFlag,
  6805. orderExternalStatus:this.orderExternalStatus
  6806. };
  6807. // debugger;
  6808. this.$api.letter.updateExternalOrder(params).then((res) => {
  6809. if (res.code == "200") {
  6810. this[btnLoading] = false;
  6811. this.$message({
  6812. message: res.msg || "编辑成功",
  6813. type: "success",
  6814. });
  6815. this.add();
  6816. } else {
  6817. this[btnLoading] = false;
  6818. this.$message.error(res.msg);
  6819. }
  6820. });
  6821. } else {
  6822. this.ownerInfo.owner = this.tbczcarShow;
  6823. this.insuredPersonInfo.owner = this.bbczcarShow;
  6824. this.insuredPersonInfo.insuranceHolder = this.bbtbcarShow;
  6825. let param = {
  6826. userId: this.userId,
  6827. quoteno: this.quoteno,
  6828. orderNo: this.orderno,
  6829. carInfo: this.carInfo,
  6830. insuredPersonInfo: this.insuredPersonInfo,
  6831. ownerInfo: this.ownerInfo,
  6832. policyHolderInfo: this.policyHolderInfo,
  6833. kindList: this.kindList,
  6834. riskList: this.riskList,
  6835. isExternal: "1",
  6836. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  6837. };
  6838. this.$api.letter.generateOrder(param).then((res) => {
  6839. if (res.code == "200") {
  6840. //上传图片
  6841. const mergedArray = [
  6842. ...this.imageList1,
  6843. ...this.imageList2,
  6844. ...this.imageList3,
  6845. ...this.imageList4,
  6846. ...this.imageList5,
  6847. ...this.imageList6,
  6848. ];
  6849. if (mergedArray.length > 0) {
  6850. let imageparam = {
  6851. imageList: mergedArray,
  6852. quoteNo: res.data.quoteno,
  6853. };
  6854. this.$api.letter.uploadImages(imageparam).then((responses) => {
  6855. this.imageEcho(res.data.quoteno); // 获取图片
  6856. // this.$refs.imageDialog.imageEcho(res.data.quoteno)
  6857. });
  6858. }
  6859. let params1 = {
  6860. orderNo: res.data.orderno,
  6861. ...this.policyNumberForm,
  6862. agreementId: this.isLetter3agreementId,
  6863. stageFlag: type,
  6864. nowCostsId: this.nowCostsId,
  6865. costFlag: this.costFlag,
  6866. };
  6867. // debugger
  6868. this.$api.letter.saveSubOrder(params1).then((res) => {
  6869. if (res.code == "200") {
  6870. this[btnLoading] = false;
  6871. this.$message({
  6872. message: res.msg || "录入成功",
  6873. type: "success",
  6874. });
  6875. this.add();
  6876. } else {
  6877. this[btnLoading] = false;
  6878. this.$message.error(res.msg);
  6879. }
  6880. });
  6881. } else {
  6882. this[btnLoading] = false;
  6883. this.$message.error(res.msg);
  6884. }
  6885. });
  6886. }
  6887. document.getElementById("company").scrollIntoView();
  6888. this.imageUploadShow = true;
  6889. },
  6890. policyHolderInfovalidate() {
  6891. let isvalidat = false;
  6892. let _this = this;
  6893. if (_this.tbczcarShow == true) {
  6894. _this.policyHolderInfo = JSON.parse(JSON.stringify(_this.ownerInfo));
  6895. } else {
  6896. _this.$refs["policyHolderInfo"].validate((valid2) => {
  6897. if (valid2) {
  6898. isvalidat = false;
  6899. } else {
  6900. document.getElementById("toubaor").scrollIntoView();
  6901. _this.$message({ message: "请检查投保人信息", type: "warning" });
  6902. isvalidat = true;
  6903. }
  6904. });
  6905. }
  6906. if (isvalidat) {
  6907. return;
  6908. }
  6909. },
  6910. //报价
  6911. quote() {
  6912. let starttime = new Date(this.carInfo.registerDate);
  6913. let endtime = new Date(this.carInfo.issueDate);
  6914. if (endtime < starttime) {
  6915. this.$message({ message: "发证日期早于初登日期", type: "error" });
  6916. return;
  6917. }
  6918. this.policyHolderInfovalidate();
  6919. this.$refs["carInfo"].validate((valid) => {
  6920. if (valid) {
  6921. var _this = this;
  6922. // this.policyHolderInfovalidate()
  6923. if (_this.tbczcarShow == true) {
  6924. _this.policyHolderInfo = JSON.parse(
  6925. JSON.stringify(_this.ownerInfo)
  6926. );
  6927. }
  6928. _this.$refs["ownerInfo"].validate((valid1) => {
  6929. if (valid1) {
  6930. if (_this.bbczcarShow == true) {
  6931. _this.insuredPersonInfo = JSON.parse(
  6932. JSON.stringify(_this.ownerInfo)
  6933. );
  6934. }
  6935. if (_this.bbtbcarShow == true) {
  6936. _this.insuredPersonInfo = JSON.parse(
  6937. JSON.stringify(_this.policyHolderInfo)
  6938. );
  6939. }
  6940. _this.carInfo.vinNo = _this.carInfo.frameNo;
  6941. _this.riskList = []; //险种大类
  6942. _this.kindList = []; //商业险险别
  6943. if (
  6944. (!_this.jqstartDate || !_this.jqendDate) &&
  6945. (!_this.systartDate || !_this.syendDate)
  6946. ) {
  6947. this.$message({ message: "投保日期不能为空", type: "warning" });
  6948. } else {
  6949. this.calculateLoading = true;
  6950. setInterval(() => {
  6951. this.calculateLoading = false;
  6952. }, 3000);
  6953. if (_this.jqchecked) {
  6954. //交强
  6955. _this.jqstartDate = this.transformTime(_this.jqstartDate);
  6956. _this.jqendDate = this.transformTime(_this.jqendDate);
  6957. _this.riskList.push({
  6958. amount: "200000",
  6959. premium: "0",
  6960. riskCode: "0507",
  6961. endDate: _this.jqendDate,
  6962. startDate: _this.jqstartDate,
  6963. instantFlag: "0",
  6964. });
  6965. }
  6966. if (_this.sychecked) {
  6967. _this.systartDate = this.transformTime(_this.systartDate);
  6968. _this.syendDate = this.transformTime(_this.syendDate);
  6969. //商业
  6970. _this.riskList.push({
  6971. premium: "0",
  6972. riskCode: "0510",
  6973. quotePreceptCode: "",
  6974. quotePreceptName: "",
  6975. endDate: _this.syendDate,
  6976. startDate: _this.systartDate,
  6977. instantFlag: "0",
  6978. });
  6979. _this.insureList.map((ele, index) => {
  6980. if (
  6981. ele.amount != "0" &&
  6982. (ele.kindCode == "D4" || ele.kindCode == "SY_FJ_YBW2")
  6983. ) {
  6984. _this.kindList.push({
  6985. unitAmount: _this.insureList[index].amount,
  6986. kindCode: _this.insureList[index].kindCode,
  6987. kindName: _this.insureList[index].kindName,
  6988. });
  6989. } else if (
  6990. ele.amount != "0" &&
  6991. (ele.kindCode == "MJ1" ||
  6992. ele.kindCode == "MJ2" ||
  6993. ele.kindCode == "MJ3" ||
  6994. ele.kindCode == "MJ4")
  6995. ) {
  6996. _this.kindList.push({
  6997. deductibleRate: _this.insureList[index].amount,
  6998. kindCode: _this.insureList[index].kindCode,
  6999. kindName: _this.insureList[index].kindName,
  7000. });
  7001. } else if (
  7002. ele.amount != "0" &&
  7003. (ele.kindCode == "TY1" ||
  7004. ele.kindCode == "TY2" ||
  7005. ele.kindCode == "TY3" ||
  7006. ele.kindCode == "TY4")
  7007. ) {
  7008. _this.kindList.push({
  7009. serviceTimes: _this.insureList[index].amount,
  7010. kindCode: _this.insureList[index].kindCode,
  7011. kindName: _this.insureList[index].kindName,
  7012. });
  7013. } else if (ele.amount != "0") {
  7014. _this.kindList.push({
  7015. amount: _this.insureList[index].amount,
  7016. kindCode: _this.insureList[index].kindCode,
  7017. kindName: _this.insureList[index].kindName,
  7018. });
  7019. }
  7020. return ele;
  7021. });
  7022. } else {
  7023. _this.kindList = [];
  7024. }
  7025. // if (_this.orderno) {
  7026. this.OrderStageProcessing();
  7027. // } else {
  7028. // _this.$api.letter.getquote().then(res => {
  7029. // _this.quoteno = res.data; //获取报价号
  7030. // this.OrderStageProcessing();
  7031. // });
  7032. // }
  7033. }
  7034. } else {
  7035. document.getElementById("CheZhu").scrollIntoView();
  7036. _this.$message({ message: "请检查人员信息", type: "warning" });
  7037. }
  7038. });
  7039. } else {
  7040. document.getElementById("Car").scrollIntoView();
  7041. this.$message({ message: "请检查车辆信息", type: "warning" });
  7042. return false;
  7043. }
  7044. });
  7045. },
  7046. kindListFun() {
  7047. var _this = this;
  7048. _this.riskList = []; //险种大类
  7049. _this.kindList = []; //商业险险别
  7050. if (
  7051. (!_this.jqstartDate || !_this.jqendDate) &&
  7052. (!_this.systartDate || !_this.syendDate)
  7053. ) {
  7054. this.$message({ message: "投保日期不能为空", type: "warning" });
  7055. } else {
  7056. if (_this.jqchecked) {
  7057. //交强
  7058. _this.jqstartDate = this.transformTime(_this.jqstartDate);
  7059. _this.jqendDate = this.transformTime(_this.jqendDate);
  7060. _this.riskList.push({
  7061. amount: "200000",
  7062. premium: "0",
  7063. riskCode: "0507",
  7064. endDate: _this.jqendDate,
  7065. startDate: _this.jqstartDate,
  7066. instantFlag: "0",
  7067. });
  7068. }
  7069. if (_this.sychecked) {
  7070. _this.systartDate = this.transformTime(_this.systartDate);
  7071. _this.syendDate = this.transformTime(_this.syendDate);
  7072. //商业
  7073. _this.riskList.push({
  7074. premium: "0",
  7075. riskCode: "0510",
  7076. quotePreceptCode: "",
  7077. quotePreceptName: "",
  7078. endDate: _this.syendDate,
  7079. startDate: _this.systartDate,
  7080. instantFlag: "0",
  7081. });
  7082. _this.insureList.map((ele, index) => {
  7083. if (
  7084. ele.amount != "0" &&
  7085. (ele.kindCode == "D4" || ele.kindCode == "SY_FJ_YBW2")
  7086. ) {
  7087. _this.kindList.push({
  7088. unitAmount: _this.insureList[index].amount,
  7089. kindCode: _this.insureList[index].kindCode,
  7090. kindName: _this.insureList[index].kindName,
  7091. });
  7092. } else if (
  7093. ele.amount != "0" &&
  7094. (ele.kindCode == "MJ1" ||
  7095. ele.kindCode == "MJ2" ||
  7096. ele.kindCode == "MJ3" ||
  7097. ele.kindCode == "MJ4")
  7098. ) {
  7099. _this.kindList.push({
  7100. deductibleRate: _this.insureList[index].amount,
  7101. kindCode: _this.insureList[index].kindCode,
  7102. kindName: _this.insureList[index].kindName,
  7103. });
  7104. } else if (
  7105. ele.amount != "0" &&
  7106. (ele.kindCode == "TY1" ||
  7107. ele.kindCode == "TY2" ||
  7108. ele.kindCode == "TY3" ||
  7109. ele.kindCode == "TY4")
  7110. ) {
  7111. _this.kindList.push({
  7112. serviceTimes: _this.insureList[index].amount,
  7113. kindCode: _this.insureList[index].kindCode,
  7114. kindName: _this.insureList[index].kindName,
  7115. });
  7116. } else if (ele.amount != "0") {
  7117. _this.kindList.push({
  7118. amount: _this.insureList[index].amount,
  7119. kindCode: _this.insureList[index].kindCode,
  7120. kindName: _this.insureList[index].kindName,
  7121. });
  7122. }
  7123. return ele;
  7124. });
  7125. } else {
  7126. _this.kindList = [];
  7127. }
  7128. }
  7129. },
  7130. //动态函数
  7131. ToolClickFun(MethodName, Parameter, companyId, companyName) {
  7132. this[`${MethodName}`](Parameter, companyId, companyName);
  7133. },
  7134. //更新报价历史
  7135. QuotationHistory() {
  7136. let params = {
  7137. orderNo: this.orderno,
  7138. orderStatus: "",
  7139. };
  7140. this.$api.letter.queryQuoteHistory(params).then((res) => {
  7141. res.data.forEach((item) => {
  7142. if (item.accidentInfo) {
  7143. item.accidentInfo.constructor === Object
  7144. ? [item.accidentInfo]
  7145. : item.accidentInfo;
  7146. }
  7147. });
  7148. this.HistoryList = res.data;
  7149. });
  7150. },
  7151. open2(Name, Msg) {
  7152. this.$notify.info({
  7153. title: Name,
  7154. dangerouslyUseHTMLString: true,
  7155. type: "warning",
  7156. message: Msg,
  7157. customClass: "customNotifyClass",
  7158. duration: 7000,
  7159. });
  7160. },
  7161. open3(Name, Msg) {
  7162. this.$notify.info({
  7163. title: Name,
  7164. dangerouslyUseHTMLString: true,
  7165. type: "warning",
  7166. message: `<p>${Msg.replace(/\n/g, "<br>")}</p>`,
  7167. customClass: "customNotifyClass",
  7168. duration: 7000,
  7169. });
  7170. },
  7171. openPredictInfo(Name, Msg) {
  7172. this.redictInfoMsg = Msg;
  7173. this.redictInfodialogVisible = true;
  7174. },
  7175. //订单生成前数据处理事件
  7176. OrderStageProcessing() {
  7177. if (this.tbczcarShow && this.imageList2.length > 0) {
  7178. //投保人同车主
  7179. this.imageList3 = JSON.parse(JSON.stringify(this.imageList2));
  7180. if (this.imageList3.length == 1) {
  7181. if(this.imageList3[0].imageType.includes("C0")){
  7182. this.imageList3[0].imageType = this.imageList3[0].imageType.includes(
  7183. "C0"
  7184. )
  7185. ? "C03"
  7186. : "D03";
  7187. }
  7188. if(this.imageList3[0].imageType.includes("Y0")){
  7189. this.imageList3[0].imageType = this.imageList3[0].imageType.includes(
  7190. "Y0"
  7191. )
  7192. ? "Y03"
  7193. : "";
  7194. }
  7195. } else {
  7196. this.imageList3.forEach((e) => {
  7197. e.imageType = e.imageType.includes("C0") ? "C03" : "D03";
  7198. });
  7199. }
  7200. }
  7201. if (this.bbczcarShow && this.imageList2.length > 0) {
  7202. //被保人同车主
  7203. this.imageList4 = JSON.parse(JSON.stringify(this.imageList2));
  7204. if (this.imageList4.length == 1) {
  7205. if(this.imageList4[0].imageType.includes("C0")){
  7206. this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  7207. "C0"
  7208. )
  7209. ? "C04"
  7210. : "D04";
  7211. }
  7212. if(this.imageList4[0].imageType.includes("Y0")){
  7213. this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  7214. "Y0"
  7215. )
  7216. ? "Y04"
  7217. : "";
  7218. }
  7219. } else {
  7220. this.imageList4.forEach((e) => {
  7221. e.imageType = e.imageType.includes("C0") ? "C04" : "D04";
  7222. });
  7223. }
  7224. // if (this.imageList4.length == 1) {
  7225. // this.imageList4[0].imageType = "C04";
  7226. // }
  7227. // else {
  7228. // this.imageList4[0].imageType = "C04";
  7229. // this.imageList4[1].imageType = "D04";
  7230. // }
  7231. }
  7232. if (this.bbtbcarShow && this.imageList3.length > 0) {
  7233. //被保人同投保人
  7234. this.imageList4 = JSON.parse(JSON.stringify(this.imageList3));
  7235. if (this.imageList4.length == 1) {
  7236. if(this.imageList4[0].imageType.includes("C0")){
  7237. this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  7238. "C0"
  7239. )
  7240. ? "C04"
  7241. : "D04";
  7242. }
  7243. if(this.imageList4[0].imageType.includes("Y0")){
  7244. this.imageList4[0].imageType = this.imageList4[0].imageType.includes(
  7245. "Y0"
  7246. )
  7247. ? "Y04"
  7248. : "";
  7249. }
  7250. } else {
  7251. this.imageList4.forEach((e) => {
  7252. e.imageType = e.imageType.includes("C0") ? "C04" : "D04";
  7253. });
  7254. }
  7255. // if (this.imageList4.length == 1) {
  7256. // this.imageList4[0].imageType = "C04";
  7257. // } else {
  7258. // this.imageList4[0].imageType = "C04";
  7259. // this.imageList4[1].imageType = "D04";
  7260. // }
  7261. }
  7262. console.log(11111111111);
  7263. //日期长度<10处理
  7264. const formatDate = (date) => {
  7265. if (date.length < 10) {
  7266. return this.timeformat(date);
  7267. }
  7268. return date;
  7269. };
  7270. if (this.carInfo.registerDate.length < 10) {
  7271. this.carInfo.registerDate = formatDate(this.carInfo.registerDate);
  7272. }
  7273. if (this.carInfo.issueDate.length < 10) {
  7274. this.carInfo.issueDate = formatDate(this.carInfo.issueDate);
  7275. }
  7276. if (
  7277. this.carInfo.transferDate &&
  7278. this.carInfo.transferDate.length < 10 &&
  7279. this.carInfo.transferDate !== ""
  7280. ) {
  7281. this.carInfo.transferDate = formatDate(this.carInfo.transferDate);
  7282. }
  7283. console.log(2222222222);
  7284. //日期长度<10处理
  7285. //提交身份证/驾驶证 ——————————————————
  7286. this.policyHolderInfo.owner = this.tbczcarShow;
  7287. this.insuredPersonInfo.owner = this.bbczcarShow;
  7288. this.insuredPersonInfo.insuranceHolder = this.bbtbcarShow;
  7289. if (typeof this.ownerInfo.provinceData == "string") {
  7290. this.ownerInfo.provinceData = [];
  7291. }
  7292. if (typeof this.insuredPersonInfo.provinceData == "string") {
  7293. this.insuredPersonInfo.provinceData = [];
  7294. }
  7295. if (typeof this.policyHolderInfo.provinceData == "string") {
  7296. this.policyHolderInfo.provinceData = [];
  7297. }
  7298. let param = {
  7299. userId: this.userId,
  7300. quoteno: this.quoteno,
  7301. orderNo: this.orderno,
  7302. carInfo: this.carInfo,
  7303. insuredPersonInfo: this.insuredPersonInfo,
  7304. ownerInfo: this.ownerInfo,
  7305. policyHolderInfo: this.policyHolderInfo,
  7306. kindList: this.kindList,
  7307. riskList: this.riskList,
  7308. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  7309. };
  7310. this.$api.letter[this.apiInterfaceName](param).then((res) => {
  7311. if (res.code == "200") {
  7312. //上传图片
  7313. const mergedArray = [
  7314. ...this.imageList1,
  7315. ...this.imageList2,
  7316. ...this.imageList3,
  7317. ...this.imageList4,
  7318. ...this.imageList5,
  7319. ...this.imageList6,
  7320. ];
  7321. if (mergedArray.length > 0) {
  7322. let imageparam = {
  7323. imageList: mergedArray,
  7324. quoteNo: res.data.quoteno,
  7325. };
  7326. this.$api.letter.uploadImages(imageparam).then((responses) => {
  7327. this.imageEcho(res.data.quoteno); // 获取图片
  7328. // this.$refs.imageDialog.imageEcho(res.data.quoteno)
  7329. });
  7330. }
  7331. this.quoteno = res.data.quoteno;
  7332. this.orderno = res.data.orderno;
  7333. this.totalCompanyList.map((ele, index) => {
  7334. if (ele.checked) {
  7335. //动态调用报价接口
  7336. ele.quoteCode = 1;
  7337. ele.orderstatus = 0;
  7338. this.ToolClickFun(ele.cnName, index, ele.id, ele.namesimple);
  7339. }
  7340. });
  7341. } else if (res.code == 1001) {
  7342. this.$confirm("是否生成新订单?", "提示", {
  7343. confirmButtonText: "确定",
  7344. cancelButtonText: "取消",
  7345. type: "warning",
  7346. })
  7347. .then(() => {
  7348. this.orderno = "";
  7349. this.quoteno = "";
  7350. this.quote();
  7351. })
  7352. .catch(() => { });
  7353. } else {
  7354. this.$message({ message: res.msg, type: "warning" });
  7355. }
  7356. });
  7357. document.getElementById("company").scrollIntoView();
  7358. this.imageUploadShow = true;
  7359. },
  7360. // 泰康报价--11
  7361. taikang(num, id, namesimple) {
  7362. this.quoteInsurance(
  7363. num,
  7364. id,
  7365. namesimple,
  7366. this.totalCompanyList[num].apiType
  7367. );
  7368. },
  7369. // 平安报价
  7370. pingan(num, id) {
  7371. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  7372. let accidentalDrivingVo = []
  7373. if (this.pinganaccidentalDrivingVo) {
  7374. accidentalDrivingVo = this.pinganaccidentalDrivingVo
  7375. // accidentalDrivingVo = Object.assign({
  7376. // ...this.pinganaccidentalDrivingVo,
  7377. // ...this.accidentFormPA,
  7378. // });
  7379. }
  7380. let params = {
  7381. accidentalDrivingVo,
  7382. orderNo: this.orderno,
  7383. companyId: id,
  7384. kinds: this.kindList,
  7385. risks: this.riskList,
  7386. agreementId: this.totalCompanyList[num].agreementId,
  7387. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  7388. };
  7389. this.$api.letter.pinganquote(params).then((res) => {
  7390. this.totalCompanyList[num].msg = res.msg;
  7391. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  7392. this.totalCompanyList[num].quoteCode = "4";
  7393. this.totalCompanyList[num].msg = res.msg;
  7394. return;
  7395. } else if (
  7396. res.data == null &&
  7397. res.msg.indexOf("交强险平台返回") > -1 &&
  7398. res.msg.indexOf(";终保日期") > -1
  7399. ) {
  7400. this.totalCompanyList[num].lastYearMsg =
  7401. "<b>交强险</b><br>" +
  7402. res.msg.slice(
  7403. res.msg.indexOf("起保日期 "),
  7404. res.msg.indexOf("地区 山西。") + 6
  7405. );
  7406. let time =
  7407. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  7408. this.jqstartDate = time;
  7409. this.jqendDate = this.oneYearPast1(time);
  7410. if (this.riskList.length > 0) {
  7411. for (let i = 0; i < this.riskList.length; i++) {
  7412. if (this.riskList[i].riskCode == "0507") {
  7413. this.riskList[i].startDate = time;
  7414. this.riskList[i].endDate = this.oneYearPast1(time);
  7415. }
  7416. }
  7417. }
  7418. let param = {
  7419. userId: this.userId,
  7420. quoteno: this.quoteno,
  7421. orderNo: this.orderno,
  7422. carInfo: this.carInfo,
  7423. insuredPersonInfo: this.insuredPersonInfo,
  7424. ownerInfo: this.ownerInfo,
  7425. policyHolderInfo: this.policyHolderInfo,
  7426. kindList: this.kindList,
  7427. riskList: this.riskList,
  7428. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  7429. };
  7430. return this.$api.letter[this.apiInterfaceName](param).then((res) => {
  7431. this.pingan(num, id);
  7432. });
  7433. } else if (!!res.data) {
  7434. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  7435. this.totalCompanyList[num].lastYearMsg = "";
  7436. let dat = res.data.warnMessageList;
  7437. dat.map((ele) => {
  7438. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  7439. });
  7440. }
  7441. this.totalCompanyList[num].quoteCode = 200;
  7442. this.totalCompanyList[num].result = res.data;
  7443. this.QuotationHistory();
  7444. } else {
  7445. this.totalCompanyList[num].quoteCode = "3";
  7446. this.totalCompanyList[num].msg = res.msg;
  7447. return;
  7448. }
  7449. });
  7450. },
  7451. //永安报价
  7452. yongan(num, id) {
  7453. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  7454. let params = {
  7455. orderNo: this.orderno,
  7456. companyId: id,
  7457. kinds: this.kindList,
  7458. risks: this.riskList,
  7459. agreementId: this.totalCompanyList[num].agreementId,
  7460. };
  7461. this.$api.letter.yonganquote(params).then((res) => {
  7462. this.totalCompanyList[num].msg = res.msg;
  7463. if (res.msg == "重复投保" && res.code == "501") {
  7464. if (!!res.data.jqStartDate && !res.data.syStartDate) {
  7465. this.jqstartDate = res.data.jqStartDate;
  7466. this.jqendDate = res.data.jqEndDate;
  7467. this.updateRiskDates(
  7468. "0507",
  7469. res.data.jqStartDate,
  7470. res.data.jqEndDate
  7471. );
  7472. let param = {
  7473. userId: this.userId,
  7474. quoteno: this.quoteno,
  7475. orderNo: this.orderno,
  7476. carInfo: this.carInfo,
  7477. insuredPersonInfo: this.insuredPersonInfo,
  7478. ownerInfo: this.ownerInfo,
  7479. policyHolderInfo: this.policyHolderInfo,
  7480. kindList: this.kindList,
  7481. riskList: this.riskList,
  7482. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  7483. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  7484. };
  7485. return this.$api.letter[this.apiInterfaceName](param).then(
  7486. (res) => {
  7487. this.yongan(num, id);
  7488. }
  7489. );
  7490. } else if (!!res.data.syStartDate && !res.data.jqStartDate) {
  7491. this.systartDate = res.data.syStartDate;
  7492. this.syendDate = res.data.syEndDate;
  7493. this.updateRiskDates(
  7494. "0510",
  7495. res.data.syStartDate,
  7496. res.data.syEndDate
  7497. );
  7498. let param = {
  7499. userId: this.userId,
  7500. quoteno: this.quoteno,
  7501. orderNo: this.orderno,
  7502. carInfo: this.carInfo,
  7503. insuredPersonInfo: this.insuredPersonInfo,
  7504. ownerInfo: this.ownerInfo,
  7505. policyHolderInfo: this.policyHolderInfo,
  7506. kindList: this.kindList,
  7507. riskList: this.riskList,
  7508. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  7509. };
  7510. return this.$api.letter[this.apiInterfaceName](param).then(
  7511. (res) => {
  7512. this.yongan(num, id);
  7513. }
  7514. );
  7515. } else if (!!res.data.syStartDate && !!res.data.jqStartDate) {
  7516. this.jqstartDate = res.data.jqStartDate;
  7517. this.jqendDate = res.data.jqEndDate;
  7518. this.systartDate = res.data.syStartDate;
  7519. this.syendDate = res.data.syEndDate;
  7520. this.updateRiskDates(
  7521. "0507",
  7522. res.data.jqStartDate,
  7523. res.data.jqEndDate
  7524. );
  7525. this.updateRiskDates(
  7526. "0510",
  7527. res.data.syStartDate,
  7528. res.data.syEndDate
  7529. );
  7530. let param = {
  7531. userId: this.userId,
  7532. quoteno: this.quoteno,
  7533. orderNo: this.orderno,
  7534. carInfo: this.carInfo,
  7535. insuredPersonInfo: this.insuredPersonInfo,
  7536. ownerInfo: this.ownerInfo,
  7537. policyHolderInfo: this.policyHolderInfo,
  7538. kindList: this.kindList,
  7539. riskList: this.riskList,
  7540. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  7541. };
  7542. return this.$api.letter[this.apiInterfaceName](param).then(
  7543. (res) => {
  7544. this.yongan(num, id);
  7545. }
  7546. );
  7547. } else {
  7548. this.totalCompanyList[num].quoteCode = "3";
  7549. this.totalCompanyList[num].msg = "重复投保";
  7550. }
  7551. } else if (
  7552. res.code == "500" ||
  7553. res.code == "502" ||
  7554. res.code == "-9999"
  7555. ) {
  7556. this.totalCompanyList[num].quoteCode = "-9999";
  7557. this.totalCompanyList[num].msg = res.msg;
  7558. } else {
  7559. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  7560. this.totalCompanyList[num].lastYearMsg = "";
  7561. let dat = res.data.warnMessageList;
  7562. dat.map((ele) => {
  7563. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  7564. });
  7565. }
  7566. this.totalCompanyList[num].quoteCode = 200;
  7567. this.totalCompanyList[num].result = res.data;
  7568. this.QuotationHistory();
  7569. }
  7570. });
  7571. },
  7572. updateRiskDates(riskCode, startDate, endDate) {
  7573. for (let i = 0; i < this.riskList.length; i++) {
  7574. if (this.riskList[i].riskCode == riskCode) {
  7575. this.riskList[i].startDate = startDate;
  7576. this.riskList[i].endDate = endDate;
  7577. }
  7578. }
  7579. },
  7580. //中煤报价
  7581. zhongmei(num, id) {
  7582. let accidentalDrivingVo = {};
  7583. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  7584. // if (this.accidentFormZM.projectCode) {
  7585. // accidentalDrivingVo = {
  7586. // projectCode: this.accidentFormZM.projectCode,
  7587. // projectName: this.accidentFormZM.projectName,
  7588. // quantity: this.accidentFormZM.quantity
  7589. // ? this.accidentFormZM.quantity
  7590. // : "1"
  7591. // };
  7592. // }
  7593. if (this.accidentFormZM.projectCode) {
  7594. accidentalDrivingVo = {
  7595. ...this.zhongmeiInsuranceData.find(
  7596. (e) => e.projectCode == this.accidentFormZM.projectCode
  7597. ),
  7598. quantity: this.accidentFormZM.quantity
  7599. ? this.accidentFormZM.quantity
  7600. : "1",
  7601. };
  7602. }
  7603. let params = {
  7604. accidentalDrivingVo,
  7605. orderNo: this.orderno,
  7606. companyId: id,
  7607. kinds: this.kindList,
  7608. risks: this.riskList,
  7609. agreementId: this.totalCompanyList[num].agreementId,
  7610. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  7611. };
  7612. this.$api.letter.zhongmeiquote(params).then((res) => {
  7613. this.totalCompanyList[num].msg = res.msg;
  7614. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  7615. this.totalCompanyList[num].quoteCode = "4";
  7616. this.totalCompanyList[num].msg = res.msg;
  7617. return;
  7618. } else if (
  7619. res.data == null &&
  7620. res.msg.indexOf("交强险平台返回") > -1 &&
  7621. res.msg.indexOf(";终保日期") > -1
  7622. ) {
  7623. this.totalCompanyList[num].lastYearMsg =
  7624. "<b>交强险</b><br>" +
  7625. res.msg.slice(
  7626. res.msg.indexOf("起保日期 "),
  7627. res.msg.indexOf("地区 山西。") + 6
  7628. );
  7629. let time =
  7630. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  7631. this.jqstartDate = time;
  7632. this.jqendDate = this.oneYearPast1(time);
  7633. if (this.riskList.length > 0) {
  7634. for (let i = 0; i < this.riskList.length; i++) {
  7635. if (this.riskList[i].riskCode == "0507") {
  7636. this.riskList[i].startDate = time;
  7637. this.riskList[i].endDate = this.oneYearPast1(time);
  7638. }
  7639. }
  7640. }
  7641. let param = {
  7642. userId: this.userId,
  7643. quoteno: this.quoteno,
  7644. orderNo: this.orderno,
  7645. carInfo: this.carInfo,
  7646. insuredPersonInfo: this.insuredPersonInfo,
  7647. ownerInfo: this.ownerInfo,
  7648. policyHolderInfo: this.policyHolderInfo,
  7649. kindList: this.kindList,
  7650. riskList: this.riskList,
  7651. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  7652. };
  7653. return this.$api.letter[this.apiInterfaceName](param).then((res) => {
  7654. this.zhongmei(num, id);
  7655. });
  7656. } else if (!!res.data) {
  7657. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  7658. this.totalCompanyList[num].lastYearMsg = "";
  7659. let dat = res.data.warnMessageList;
  7660. dat.map((ele) => {
  7661. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  7662. });
  7663. }
  7664. this.totalCompanyList[num].quoteCode = 200;
  7665. this.totalCompanyList[num].result = res.data;
  7666. this.QuotationHistory();
  7667. } else {
  7668. this.totalCompanyList[num].quoteCode = "3";
  7669. this.totalCompanyList[num].msg = res.msg;
  7670. return;
  7671. }
  7672. });
  7673. },
  7674. // 大家报价
  7675. dajia(num, id) {
  7676. // let accidentalDrivingVo=[]
  7677. // if(this.dajiaaccidentalDrivingVo){
  7678. // accidentalDrivingVo.rideRiskCode=this.dajiaaccidentalDrivingVo.schemeNo;
  7679. // accidentalDrivingVo.rideRiskName=this.dajiaaccidentalDrivingVo.cvrgName;
  7680. // accidentalDrivingVo.quantity=this.dajiaaccidentalDrivingVo.quantity;
  7681. // }
  7682. let type = this.totalCompanyList[num].apiType;
  7683. let api = type == 2 ? "pythonquote" : "dajiaquote";
  7684. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  7685. let params = {
  7686. accidentalDrivingVo: this.dajiaaccidentalDrivingVo,
  7687. orderNo: this.orderno,
  7688. companyId: id,
  7689. kinds: this.kindList,
  7690. risks: this.riskList,
  7691. agreementId: this.totalCompanyList[num].agreementId,
  7692. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  7693. };
  7694. this.$api.letter[api](params).then((res) => {
  7695. this.totalCompanyList[num].msg = res.msg;
  7696. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  7697. this.totalCompanyList[num].quoteCode = "4";
  7698. this.totalCompanyList[num].msg = res.msg;
  7699. return;
  7700. } else if (
  7701. res.data == null &&
  7702. res.msg.indexOf("交强险平台返回") > -1 &&
  7703. res.msg.indexOf(";终保日期") > -1
  7704. ) {
  7705. this.totalCompanyList[num].lastYearMsg =
  7706. "<b>交强险</b><br>" +
  7707. res.msg.slice(
  7708. res.msg.indexOf("起保日期 "),
  7709. res.msg.indexOf("地区 山西。") + 6
  7710. );
  7711. let time =
  7712. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  7713. this.jqstartDate = time;
  7714. this.jqendDate = this.oneYearPast1(time);
  7715. if (this.riskList.length > 0) {
  7716. for (let i = 0; i < this.riskList.length; i++) {
  7717. if (this.riskList[i].riskCode == "0507") {
  7718. this.riskList[i].startDate = time;
  7719. this.riskList[i].endDate = this.oneYearPast1(time);
  7720. }
  7721. }
  7722. }
  7723. let param = {
  7724. userId: this.userId,
  7725. quoteno: this.quoteno,
  7726. orderNo: this.orderno,
  7727. carInfo: this.carInfo,
  7728. insuredPersonInfo: this.insuredPersonInfo,
  7729. ownerInfo: this.ownerInfo,
  7730. policyHolderInfo: this.policyHolderInfo,
  7731. kindList: this.kindList,
  7732. riskList: this.riskList,
  7733. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  7734. };
  7735. return this.$api.letter[this.apiInterfaceName](param).then((res) => {
  7736. this.dajia(num, id);
  7737. });
  7738. } else if (!!res.data) {
  7739. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  7740. this.totalCompanyList[num].lastYearMsg = "";
  7741. let dat = res.data.warnMessageList;
  7742. dat.map((ele) => {
  7743. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  7744. });
  7745. }
  7746. this.totalCompanyList[num].quoteCode = 200;
  7747. this.totalCompanyList[num].result = res.data;
  7748. this.QuotationHistory();
  7749. } else {
  7750. this.totalCompanyList[num].quoteCode = "3";
  7751. this.totalCompanyList[num].msg = res.msg;
  7752. return;
  7753. }
  7754. });
  7755. },
  7756. //华泰报价
  7757. huatai(num, id) {
  7758. let type = this.totalCompanyList[num].apiType;
  7759. let api = type == 2 ? "pythonquote" : "huataiquote";
  7760. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  7761. let params = {
  7762. orderNo: this.orderno,
  7763. companyId: id,
  7764. kinds: this.kindList,
  7765. risks: this.riskList,
  7766. agreementId: this.totalCompanyList[num].agreementId,
  7767. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  7768. };
  7769. this.$api.letter[api](params).then((res) => {
  7770. this.totalCompanyList[num].msg = res.msg;
  7771. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  7772. this.totalCompanyList[num].quoteCode = "4";
  7773. this.totalCompanyList[num].msg = res.msg;
  7774. return;
  7775. } else if (
  7776. res.data == null &&
  7777. res.msg.indexOf("交强险平台返回") > -1 &&
  7778. res.msg.indexOf(";终保日期") > -1
  7779. ) {
  7780. //判断保司返回重复投保信息,进行默认赋值起终保日期,重新算费 后面联调需要调整
  7781. let time =
  7782. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  7783. this.jqstartDate = time;
  7784. this.jqendDate = this.oneYearPast1(time);
  7785. this.systartDate = time;
  7786. this.syendDate = this.oneYearPast1(time);
  7787. if (this.riskList.length > 0) {
  7788. for (let i = 0; i < this.riskList.length; i++) {
  7789. if (this.riskList[i].riskCode == "0507") {
  7790. this.riskList[i].startDate = time;
  7791. this.riskList[i].endDate = this.oneYearPast1(time);
  7792. } else if (this.riskList[i].riskCode == "0510") {
  7793. this.riskList[i].startDate = time;
  7794. this.riskList[i].endDate = this.oneYearPast1(time);
  7795. }
  7796. }
  7797. }
  7798. let param = {
  7799. userId: this.userId,
  7800. quoteno: this.quoteno,
  7801. orderNo: this.orderno,
  7802. carInfo: this.carInfo,
  7803. insuredPersonInfo: this.insuredPersonInfo,
  7804. ownerInfo: this.ownerInfo,
  7805. policyHolderInfo: this.policyHolderInfo,
  7806. kindList: this.kindList,
  7807. riskList: this.riskList,
  7808. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  7809. };
  7810. return this.$api.letter[this.apiInterfaceName](param).then((res) => {
  7811. this.huatai(num, id);
  7812. });
  7813. } else if (!!res.data) {
  7814. this.totalCompanyList[num].quoteCode = 200;
  7815. this.totalCompanyList[num].result = res.data;
  7816. this.QuotationHistory();
  7817. } else {
  7818. this.totalCompanyList[num].quoteCode = "3";
  7819. this.totalCompanyList[num].msg = res.msg;
  7820. return;
  7821. }
  7822. });
  7823. },
  7824. //紫金报价
  7825. zijin(num, id) {
  7826. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  7827. let params = {
  7828. accidentalDrivingVo: this.accidentalDrivingVo,
  7829. orderNo: this.orderno,
  7830. companyId: id,
  7831. kinds: this.kindList,
  7832. risks: this.riskList,
  7833. agreementId: this.totalCompanyList[num].agreementId,
  7834. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  7835. coefficient: this.totalCompanyList[num].coefficient,
  7836. };
  7837. this.$api.letter.zijinquote(params).then((res) => {
  7838. this.totalCompanyList[num].msg = res.msg;
  7839. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  7840. this.totalCompanyList[num].quoteCode = "4";
  7841. this.totalCompanyList[num].msg = res.msg;
  7842. return;
  7843. } else if (
  7844. res.data == null &&
  7845. res.msg.indexOf("交强险平台返回") > -1 &&
  7846. res.msg.indexOf(";终保日期") > -1
  7847. ) {
  7848. let time =
  7849. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  7850. this.jqstartDate = time;
  7851. this.jqendDate = this.oneYearPast1(time);
  7852. this.systartDate = time;
  7853. this.syendDate = this.oneYearPast1(time);
  7854. if (this.riskList.length > 0) {
  7855. for (let i = 0; i < this.riskList.length; i++) {
  7856. if (this.riskList[i].riskCode == "0507") {
  7857. this.riskList[i].startDate = time;
  7858. this.riskList[i].endDate = this.oneYearPast1(time);
  7859. } else if (this.riskList[i].riskCode == "0510") {
  7860. this.riskList[i].startDate = time;
  7861. this.riskList[i].endDate = this.oneYearPast1(time);
  7862. }
  7863. }
  7864. }
  7865. let param = {
  7866. userId: this.userId,
  7867. quoteno: this.quoteno,
  7868. orderNo: this.orderno,
  7869. carInfo: this.carInfo,
  7870. insuredPersonInfo: this.insuredPersonInfo,
  7871. ownerInfo: this.ownerInfo,
  7872. policyHolderInfo: this.policyHolderInfo,
  7873. kindList: this.kindList,
  7874. riskList: this.riskList,
  7875. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  7876. };
  7877. return this.$api.letter[this.apiInterfaceName](param).then((res) => {
  7878. this.zijin(num, id);
  7879. });
  7880. } else if (!!res.data) {
  7881. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  7882. this.totalCompanyList[num].lastYearMsg = "";
  7883. let dat = res.data.warnMessageList;
  7884. dat.map((ele) => {
  7885. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  7886. });
  7887. }
  7888. this.totalCompanyList[num].quoteCode = 200;
  7889. this.totalCompanyList[num].result = res.data;
  7890. this.QuotationHistory();
  7891. } else {
  7892. this.totalCompanyList[num].quoteCode = "3";
  7893. this.totalCompanyList[num].msg = res.msg;
  7894. return;
  7895. }
  7896. });
  7897. },
  7898. //永诚报价
  7899. yongcheng(num, id) {
  7900. this.iscCrownerShow = false;
  7901. this.isInsuredShow = false;
  7902. this.isApplicantShow = false;
  7903. let accidentalDrivingVo = {};
  7904. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  7905. if (this.accidentForm.projectCode) {
  7906. let data = this.yongchengaccidentDataList.find(
  7907. (val) => val.projectCode == this.yongchengtemplateSelection
  7908. );
  7909. accidentalDrivingVo = {
  7910. ...data,
  7911. quantity: this.accidentForm.quantity
  7912. ? this.accidentForm.quantity
  7913. : "",
  7914. };
  7915. }
  7916. let params = {
  7917. accidentalDrivingVo,
  7918. orderNo: this.orderno,
  7919. companyId: id,
  7920. kinds: this.kindList,
  7921. risks: this.riskList,
  7922. cqryCdeJq: this.cqryCdeJq,
  7923. cqryCdeSy: this.cqryCdeSy,
  7924. renewalCodeJq: this.renewalCodeJq,
  7925. renewalCodeSy: this.renewalCodeSy,
  7926. agreementId: this.totalCompanyList[num].agreementId,
  7927. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  7928. };
  7929. this.$api.letter.yongchengquote(params).then((res) => {
  7930. this.totalCompanyList[num].msg = res.msg;
  7931. if (
  7932. res.data == null &&
  7933. res.msg.indexOf("车险平台返回") > -1 &&
  7934. res.msg.indexOf(";终保日期") > -1
  7935. ) {
  7936. let time =
  7937. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  7938. this.jqstartDate = time;
  7939. this.jqendDate = this.oneYearPast1(time);
  7940. if (this.riskList.length > 0) {
  7941. for (let i = 0; i < this.riskList.length; i++) {
  7942. if (this.riskList[i].riskCode == "0507") {
  7943. this.riskList[i].startDate = time;
  7944. this.riskList[i].endDate = this.oneYearPast1(time);
  7945. }
  7946. }
  7947. }
  7948. let param = {
  7949. userId: this.userId,
  7950. quoteno: this.quoteno,
  7951. orderNo: this.orderno,
  7952. carInfo: this.carInfo,
  7953. insuredPersonInfo: this.insuredPersonInfo,
  7954. ownerInfo: this.ownerInfo,
  7955. policyHolderInfo: this.policyHolderInfo,
  7956. kindList: this.kindList,
  7957. riskList: this.riskList,
  7958. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  7959. };
  7960. return this.$api.letter[this.apiInterfaceName](param).then((res) => {
  7961. this.yongcheng(num, id);
  7962. });
  7963. } else if (res.code == "200") {
  7964. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  7965. this.totalCompanyList[num].lastYearMsg = "";
  7966. let dat = res.data.warnMessageList;
  7967. dat.map((ele) => {
  7968. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  7969. });
  7970. }
  7971. this.totalCompanyList[num].quoteCode = 200;
  7972. this.totalCompanyList[num].result = res.data;
  7973. this.QuotationHistory();
  7974. } else if (res.code == "101") {
  7975. this.totalCompanyList[num].quoteCode = "101";
  7976. this.totalCompanyList[num].msg = res.msg;
  7977. this.cqryCdeJq = res.data.cqryCdeJq;
  7978. this.cqryCdeSy = res.data.cqryCdeSy;
  7979. let jq = res.data.renewalCodeJq.replace(/[\r\n]/g, "");
  7980. let jqBase64 = `data:image/png;base64,${jq}`;
  7981. this.renewalCodeJqImg = jqBase64;
  7982. if (res.data.renewalCodeSy) {
  7983. let sy = res.data.renewalCodeSy.replace(/[\r\n]/g, "");
  7984. let syBase64 = `data:image/png;base64,${sy}`;
  7985. this.renewalCodeSyImg = syBase64;
  7986. }
  7987. this.renewalCodedialogVisible = true;
  7988. } else if (res.code == "500") {
  7989. // this.iscCrownerShow=res.msg.indexOf("车主地区自动解析失败")!=-1?true:false
  7990. // this.isInsuredShow=res.msg.indexOf("被保人地区自动解析失败")!=-1?true:false
  7991. // this.isApplicantShow=res.msg.indexOf("投保人地区自动解析失败")!=-1?true:false
  7992. // this.ownerInfo.provinceData= this.iscCrownerShow?[]: this.ownerInfo.provinceData
  7993. // this.insuredPersonInfo.provinceData= this.isInsuredShow?[]: this.insuredPersonInfo.provinceData
  7994. // this.policyHolderInfo.provinceData= this.isApplicantShow?[]: this.policyHolderInfo.provinceData
  7995. this.totalCompanyList[num].quoteCode = "3";
  7996. this.totalCompanyList[num].msg = res.msg;
  7997. } else {
  7998. this.totalCompanyList[num].quoteCode = "3";
  7999. this.totalCompanyList[num].msg = res.msg;
  8000. return;
  8001. }
  8002. });
  8003. },
  8004. //国任报价
  8005. guoRen(num, id) {
  8006. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  8007. let guoRenSpecialAgreementVo = [];
  8008. this.zijinengageList.forEach((val) => {
  8009. guoRenSpecialAgreementVo.push({
  8010. clauses: val.clauseName,
  8011. clausesContext: val.clauses,
  8012. clauseCode: val.clauseCode,
  8013. riskCode: val.riskCode,
  8014. riskName: val.riskName,
  8015. });
  8016. });
  8017. let accidentalDrivingVo = {};
  8018. if (this.guoRenaccidentForm.goodsCode) {
  8019. accidentalDrivingVo = this.guoRenaccidentalDrivingVo;
  8020. }
  8021. let params = {
  8022. accidentalDrivingVo,
  8023. orderNo: this.orderno,
  8024. companyId: id,
  8025. kinds: this.kindList,
  8026. risks: this.riskList,
  8027. cqryCdeJq: this.cqryCdeJq,
  8028. cqryCdeSy: this.cqryCdeSy,
  8029. renewalCodeJq: this.renewalCodeJq,
  8030. renewalCodeSy: this.renewalCodeSy,
  8031. agreementId: this.totalCompanyList[num].agreementId,
  8032. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  8033. guoRenSpecialAgreementVo,
  8034. };
  8035. this.$api.letter.guorenquote(params).then((res) => {
  8036. this.totalCompanyList[num].msg = res.msg;
  8037. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  8038. this.totalCompanyList[num].quoteCode = "4";
  8039. this.totalCompanyList[num].msg = res.msg;
  8040. return;
  8041. } else if (
  8042. res.data == null &&
  8043. res.msg.indexOf("车险平台返回") > -1 &&
  8044. res.msg.indexOf(";终保日期") > -1
  8045. ) {
  8046. let time =
  8047. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  8048. this.jqstartDate = time;
  8049. this.jqendDate = this.oneYearPast1(time);
  8050. this.systartDate = time;
  8051. this.syendDate = this.oneYearPast1(time);
  8052. if (this.riskList.length > 0) {
  8053. for (let i = 0; i < this.riskList.length; i++) {
  8054. if (this.riskList[i].riskCode == "0507") {
  8055. this.riskList[i].startDate = time;
  8056. this.riskList[i].endDate = this.oneYearPast1(time);
  8057. } else if (this.riskList[i].riskCode == "0510") {
  8058. this.riskList[i].startDate = time;
  8059. this.riskList[i].endDate = this.oneYearPast1(time);
  8060. }
  8061. }
  8062. }
  8063. let param = {
  8064. userId: this.userId,
  8065. quoteno: this.quoteno,
  8066. orderNo: this.orderno,
  8067. carInfo: this.carInfo,
  8068. insuredPersonInfo: this.insuredPersonInfo,
  8069. ownerInfo: this.ownerInfo,
  8070. policyHolderInfo: this.policyHolderInfo,
  8071. kindList: this.kindList,
  8072. riskList: this.riskList,
  8073. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  8074. };
  8075. return this.$api.letter[this.apiInterfaceName](param).then((res) => {
  8076. this.guoRen(num, id);
  8077. });
  8078. } else if (res.code == "200") {
  8079. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  8080. this.totalCompanyList[num].lastYearMsg = "";
  8081. let dat = res.data.warnMessageList;
  8082. dat.map((ele) => {
  8083. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  8084. });
  8085. }
  8086. this.totalCompanyList[num].quoteCode = 200;
  8087. this.totalCompanyList[num].result = res.data;
  8088. this.QuotationHistory();
  8089. } else if (res.code == "101") {
  8090. this.totalCompanyList[num].quoteCode = "101";
  8091. this.totalCompanyList[num].msg = res.msg;
  8092. this.cqryCdeJq = res.data.cqryCdeJq;
  8093. this.cqryCdeSy = res.data.cqryCdeSy;
  8094. let jq = res.data.renewalCodeJq.replace(/[\r\n]/g, "");
  8095. let jqBase64 = `data:image/png;base64,${jq}`;
  8096. this.renewalCodeJqImg = jqBase64;
  8097. if (res.data.renewalCodeSy) {
  8098. let sy = res.data.renewalCodeSy.replace(/[\r\n]/g, "");
  8099. let syBase64 = `data:image/png;base64,${sy}`;
  8100. this.renewalCodeSyImg = syBase64;
  8101. }
  8102. this.renewalCodedialogVisible = true;
  8103. } else {
  8104. this.totalCompanyList[num].quoteCode = "3";
  8105. this.totalCompanyList[num].msg = res.msg;
  8106. return;
  8107. }
  8108. });
  8109. },
  8110. //渤海报价
  8111. bohai(num, id) {
  8112. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  8113. let accidentalDrivingVo = {};
  8114. if (this.boHaiaccidentForm.projectCode) {
  8115. accidentalDrivingVo = {
  8116. // packageCode: this.boHaiaccidentForm.packageCode,
  8117. // productCode: this.boHaiaccidentDataList.find(
  8118. // (e) => e.packageCode == this.boHaiaccidentForm.packageCode
  8119. // ).productCode,
  8120. // copies: this.boHaiaccidentForm.copies,
  8121. ...this.boHaiaccidentDataList.find(
  8122. (e) => e.projectCode == this.boHaiaccidentForm.projectCode
  8123. ),
  8124. quantity: this.boHaiaccidentForm.copies
  8125. ? this.boHaiaccidentForm.copies
  8126. : "1",
  8127. }
  8128. }
  8129. let params = {
  8130. accidentalDrivingVo,
  8131. orderNo: this.orderno,
  8132. companyId: id,
  8133. kinds: this.kindList,
  8134. risks: this.riskList,
  8135. cqryCdeJq: this.cqryCdeJq,
  8136. cqryCdeSy: this.cqryCdeSy,
  8137. renewalCodeJq: this.renewalCodeJq,
  8138. renewalCodeSy: this.renewalCodeSy,
  8139. agreementId: this.totalCompanyList[num].agreementId,
  8140. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  8141. userId: this.userId,
  8142. };
  8143. this.$api.letter.bohaiquote(params).then((res) => {
  8144. this.totalCompanyList[num].msg = res.msg;
  8145. if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
  8146. this.totalCompanyList[num].quoteCode = "4";
  8147. this.totalCompanyList[num].msg = res.msg;
  8148. return;
  8149. } else if (
  8150. res.data == null &&
  8151. res.msg.indexOf("车险平台返回") > -1 &&
  8152. res.msg.indexOf(";终保日期") > -1
  8153. ) {
  8154. let time =
  8155. res.msg.substr(res.msg.indexOf(";终保日期 ") + 6, 16) + ":00";
  8156. this.jqstartDate = time;
  8157. this.jqendDate = this.oneYearPast1(time);
  8158. this.systartDate = time;
  8159. this.syendDate = this.oneYearPast1(time);
  8160. if (this.riskList.length > 0) {
  8161. for (let i = 0; i < this.riskList.length; i++) {
  8162. if (this.riskList[i].riskCode == "0507") {
  8163. this.riskList[i].startDate = time;
  8164. this.riskList[i].endDate = this.oneYearPast1(time);
  8165. } else if (this.riskList[i].riskCode == "0510") {
  8166. this.riskList[i].startDate = time;
  8167. this.riskList[i].endDate = this.oneYearPast1(time);
  8168. }
  8169. }
  8170. }
  8171. let param = {
  8172. userId: this.userId,
  8173. quoteno: this.quoteno,
  8174. orderNo: this.orderno,
  8175. carInfo: this.carInfo,
  8176. insuredPersonInfo: this.insuredPersonInfo,
  8177. ownerInfo: this.ownerInfo,
  8178. policyHolderInfo: this.policyHolderInfo,
  8179. kindList: this.kindList,
  8180. riskList: this.riskList,
  8181. vehicleAndVesselTax: this.vehicleAndVesselTaxForm,
  8182. };
  8183. return this.$api.letter[this.apiInterfaceName](param).then((res) => {
  8184. this.bohai(num, id);
  8185. });
  8186. } else if (res.code == "200") {
  8187. if (res.data.warnMessageList && res.data.warnMessageList.length > 0) {
  8188. this.totalCompanyList[num].lastYearMsg = "";
  8189. let dat = res.data.warnMessageList;
  8190. dat.map((ele) => {
  8191. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  8192. });
  8193. }
  8194. this.totalCompanyList[num].quoteCode = 200;
  8195. this.totalCompanyList[num].result = res.data;
  8196. this.QuotationHistory();
  8197. } else if (res.code == "101") {
  8198. this.totalCompanyList[num].quoteCode = "101";
  8199. this.totalCompanyList[num].msg = res.msg;
  8200. this.cqryCdeJq = res.data.cqryCdeJq;
  8201. this.cqryCdeSy = res.data.cqryCdeSy;
  8202. let jq = res.data.renewalCodeJq.replace(/[\r\n]/g, "");
  8203. let jqBase64 = `data:image/png;base64,${jq}`;
  8204. this.renewalCodeJqImg = jqBase64;
  8205. if (res.data.renewalCodeSy) {
  8206. let sy = res.data.renewalCodeSy.replace(/[\r\n]/g, "");
  8207. let syBase64 = `data:image/png;base64,${sy}`;
  8208. this.renewalCodeSyImg = syBase64;
  8209. }
  8210. this.renewalCodedialogVisible = true;
  8211. } else {
  8212. this.totalCompanyList[num].quoteCode = "3";
  8213. this.totalCompanyList[num].msg = res.msg;
  8214. return;
  8215. }
  8216. });
  8217. },
  8218. // 爬虫对接
  8219. quoteInsurance(num, id, namesimple, apiType) {
  8220. console.log(namesimple)
  8221. let api = apiType == 2 ? "pythonquote" : " ";
  8222. let ccidenttype = this.totalCompanyList[num].cnName;
  8223. let isTaxSource = this.totalCompanyList[num].isTaxSource;
  8224. let params = {
  8225. accidentalDrivingVo: this[ccidenttype + "accidentalDrivingVo"],
  8226. orderNo: this.orderno,
  8227. companyId: id,
  8228. kinds: this.kindList,
  8229. risks: this.riskList,
  8230. userId: this.userId,
  8231. agreementId: this.totalCompanyList[num].agreementId,
  8232. isTaxSource: isTaxSource == 1 ? isTaxSource : null,
  8233. };
  8234. if (namesimple == "中国人寿" && this.lastCompanyId) {
  8235. params.discount = this.totalCompanyList[num].discount;
  8236. params.lastCompanyId = this.lastCompanyId;
  8237. }
  8238. if (namesimple == "诚泰财险") {
  8239. if (this.lastCompanyId && this.totalCompanyList[num].coefficient && this.totalCompanyList[num].discount) {
  8240. params.coefficient = this.totalCompanyList[num].coefficient;
  8241. params.discount = this.totalCompanyList[num].discount;
  8242. params.lastCompanyId = this.lastCompanyId;
  8243. }
  8244. params.isInspect = this.totalCompanyList[num].isInspect;
  8245. }
  8246. if (
  8247. namesimple == "华农财险" &&
  8248. this.huanongaccidentalDrivingVo.quantity
  8249. ) {
  8250. params.accidentalDrivingVo.quantity = this.accidentFormHN.quantity;
  8251. // params.accidentalDrivingVo.allQuantity = this.accidentFormHN.allQuantity;
  8252. }
  8253. this.$api.letter[api](params).then((res) => {
  8254. this.totalCompanyList[num].msg = res.msg;
  8255. switch (namesimple) {
  8256. case "诚泰财险":
  8257. case "安盛天平":
  8258. case "泰康财险":
  8259. case "中国人寿":
  8260. case "恒邦财险":
  8261. case "华农财险":
  8262. case "太平财险":
  8263. if (!!res.data) {
  8264. if (
  8265. res.data.warnMessageList &&
  8266. res.data.warnMessageList.length > 0
  8267. ) {
  8268. this.totalCompanyList[num].lastYearMsg = "";
  8269. let dat = res.data.warnMessageList;
  8270. dat.map((ele) => {
  8271. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  8272. });
  8273. }
  8274. if (res.data.predictInfo && res.data.predictInfo.length > 0) {
  8275. this.totalCompanyList[num].predictInfo = res.data.predictInfo;
  8276. }
  8277. this.totalCompanyList[num].quoteCode = 200;
  8278. this.totalCompanyList[num].result = res.data;
  8279. if (namesimple == "中国人寿" && res.data.companyId) {
  8280. this.lastCompanyId = res.data.companyId;
  8281. }
  8282. if (namesimple == "诚泰财险" && res.data.companyId) {
  8283. this.lastCompanyId = res.data.companyId;
  8284. }
  8285. this.QuotationHistory();
  8286. } else {
  8287. this.totalCompanyList[num].quoteCode = "3";
  8288. this.totalCompanyList[num].msg = res.msg;
  8289. return;
  8290. }
  8291. break;
  8292. case "众安平安":
  8293. if (!!res.data) {
  8294. if (res.data.tips == "需要验车") {
  8295. this.$notify.error({
  8296. title: "通融单",
  8297. duration: 0,
  8298. dangerouslyUseHTMLString: true,
  8299. message: `<div> ${res.data.warnMessageList
  8300. .map((item) => {
  8301. return `<p>${item}</p>`;
  8302. })
  8303. .join("")}
  8304. </div>`,
  8305. });
  8306. }
  8307. if (
  8308. res.data.warnMessageList &&
  8309. res.data.warnMessageList.length > 0
  8310. ) {
  8311. this.totalCompanyList[num].lastYearMsg = "";
  8312. let dat = res.data.warnMessageList;
  8313. dat.map((ele) => {
  8314. this.totalCompanyList[num].lastYearMsg += ele + "<br>";
  8315. });
  8316. }
  8317. this.totalCompanyList[num].quoteCode = 200;
  8318. this.totalCompanyList[num].result = res.data;
  8319. this.QuotationHistory();
  8320. } else {
  8321. this.totalCompanyList[num].quoteCode = "3";
  8322. this.totalCompanyList[num].msg = res.msg;
  8323. return;
  8324. }
  8325. break;
  8326. default:
  8327. break;
  8328. }
  8329. });
  8330. },
  8331. //诚泰
  8332. chengtai(num, id, namesimple) {
  8333. this.quoteInsurance(
  8334. num,
  8335. id,
  8336. namesimple,
  8337. this.totalCompanyList[num].apiType
  8338. );
  8339. },
  8340. //安盛天平
  8341. ansheng(num, id, namesimple) {
  8342. this.quoteInsurance(
  8343. num,
  8344. id,
  8345. namesimple,
  8346. this.totalCompanyList[num].apiType
  8347. );
  8348. },
  8349. //众安
  8350. zhongan(num, id, namesimple) {
  8351. this.quoteInsurance(
  8352. num,
  8353. id,
  8354. namesimple,
  8355. this.totalCompanyList[num].apiType
  8356. );
  8357. },
  8358. //人寿
  8359. renshou(num, id, namesimple) {
  8360. this.quoteInsurance(
  8361. num,
  8362. id,
  8363. namesimple,
  8364. this.totalCompanyList[num].apiType
  8365. );
  8366. },
  8367. //恒邦
  8368. hengbang(num, id, namesimple) {
  8369. this.quoteInsurance(
  8370. num,
  8371. id,
  8372. namesimple,
  8373. this.totalCompanyList[num].apiType
  8374. );
  8375. },
  8376. //太平
  8377. taiping(num, id, namesimple) {
  8378. this.quoteInsurance(
  8379. num,
  8380. id,
  8381. namesimple,
  8382. this.totalCompanyList[num].apiType
  8383. );
  8384. },
  8385. //华农
  8386. huanong(num, id, namesimple) {
  8387. this.quoteInsurance(
  8388. num,
  8389. id,
  8390. namesimple,
  8391. this.totalCompanyList[num].apiType
  8392. );
  8393. },
  8394. capTypedictTag(val, option) {
  8395. if (option.find((item) => item.dictValue == val)) {
  8396. return option.find((item) => item.dictValue == val).dictTag;
  8397. } else {
  8398. return "-";
  8399. }
  8400. },
  8401. // 爬虫对接
  8402. qoutedetail(companyId) {
  8403. let params = {
  8404. companyId: companyId,
  8405. };
  8406. this.$api.letter.getByCompanyId(params).then((res) => {
  8407. if (res.code == "200") {
  8408. var data = res.data;
  8409. data.kindinfo.map((ele, index) => {
  8410. switch (ele.kindCode) {
  8411. case "A":
  8412. ele.amount = "投保";
  8413. break;
  8414. case "D4":
  8415. case "SY_FJ_YBW2":
  8416. ele.unitAmount = this.toChinesNum(ele.unitAmount);
  8417. break;
  8418. case "MJ1":
  8419. case "MJ2":
  8420. case "MJ3":
  8421. case "MJ4":
  8422. ele.deductibleRate = ele.deductibleRate + "%";
  8423. break;
  8424. default:
  8425. ele.amount = this.toChinesNum(ele.amount);
  8426. }
  8427. return ele;
  8428. });
  8429. if (
  8430. (data.carinfo.carnature && data.carinfo.carnature == "02") ||
  8431. data.carinfo.carnature == "非营业"
  8432. ) {
  8433. data.carinfo.vehicleUse = this.capTypedictTag(
  8434. data.carinfo.vehicleUse,
  8435. this.outOfBusinessVehicleUseoptions
  8436. );
  8437. } else {
  8438. data.carinfo.vehicleUse = this.capTypedictTag(
  8439. data.carinfo.vehicleUse,
  8440. this.businessVehicleUseoptions
  8441. );
  8442. }
  8443. data.carinfo.carnature = this.capTypedictTag(
  8444. data.carinfo.carnature,
  8445. this.natureOfVehicleUseoptions
  8446. );
  8447. data.carinfo.cartype = data.carinfo.cartype
  8448. ? this.capTypedictTag(
  8449. data.carinfo.cartype,
  8450. this.trafficManagementVehicleTypeoptions
  8451. )
  8452. : "";
  8453. data.carinfo.cimodelclass = data.carinfo.cimodelclass
  8454. ? this.capTypedictTag(
  8455. data.carinfo.cimodelclass,
  8456. this.vehicleTypeoptions
  8457. )
  8458. : "";
  8459. data.carinfo.energyType = data.carinfo.energyType
  8460. ? this.capTypedictTag(
  8461. data.carinfo.energyType,
  8462. this.energyTypeoptions
  8463. )
  8464. : "";
  8465. this.queryOrders = data;
  8466. //赋值费用信息
  8467. // this.feeDetailInfo=data.orderFeeResult;
  8468. }
  8469. });
  8470. this.$refs.detailsDialog.setBackupVisible(true);
  8471. },
  8472. imageUpload() {
  8473. this.imageUploaddialogVisible = true;
  8474. // this.$refs.imageDialog.setBackupVisible(true);
  8475. },
  8476. tabLiScroll(id, idx) {
  8477. this.tabLiIndex = idx;
  8478. document.getElementById(id).scrollIntoView({ behavior: "smooth" });
  8479. },
  8480. //影像上传
  8481. drivingupload(file, imageIdList, imgurl, type) {
  8482. let that = this;
  8483. let size = file.size / 1024 / 1024 < 5;
  8484. const isJPG =
  8485. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  8486. if (!size) {
  8487. this.$message.error("上传图片大小不能超过 5MB!");
  8488. this[imgurl] = [];
  8489. return false;
  8490. }
  8491. if (!isJPG) {
  8492. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  8493. this[imgurl] = [];
  8494. return false;
  8495. }
  8496. this[imgurl].push(file);
  8497. var file = file.raw;
  8498. const params = new FormData(); // 声明formData数据类型
  8499. params.append("multipartFile", file);
  8500. params.append("type", "image");
  8501. this.$api.letter.uploadFile(params).then((res) => {
  8502. if (res.code == "200") {
  8503. if (this[imageIdList].some((v) => v.imageType == type)) {
  8504. this[imageIdList].map((val) => {
  8505. if (val.imageType == type) {
  8506. val.imageId = res.data.id;
  8507. }
  8508. });
  8509. } else {
  8510. this[imageIdList].push({
  8511. imageId: res.data.id,
  8512. imageType: type,
  8513. });
  8514. }
  8515. }
  8516. });
  8517. },
  8518. imageEcho(quotenos) {
  8519. //影像查询
  8520. this.$api.letter.findByQuoteNo(quotenos).then((res) => {
  8521. if (res.code == "200") {
  8522. this.imageList1 = [];
  8523. this.imageList2 = [];
  8524. this.imageList3 = [];
  8525. this.imageList4 = [];
  8526. this.imageList5 = [];
  8527. this.imageList6 = [];
  8528. this.imgList1 = [];
  8529. this.imgList2 = [];
  8530. this.imgList3 = [];
  8531. this.imgList4 = [];
  8532. this.imgList5 = [];
  8533. this.imgList6 = [];
  8534. this.imgList7 = [];
  8535. this.imgList8 = [];
  8536. this.imgList9 = [];
  8537. this.imgList10 = [];
  8538. this.imgList11 = [];
  8539. this.imgList12 = [];
  8540. this.imgList13 = [];
  8541. this.imgList14 = [];
  8542. this.imgList15 = [];
  8543. this.imgList16 = [];
  8544. this.imgList17 = [];
  8545. this.imgList18 = [];
  8546. this.imgList19 = [];
  8547. this.imgList20 = [];
  8548. this.imgList21 = [];
  8549. this.imgList22 = [];
  8550. this.imgList23 = [];
  8551. this.imgList24 = [];
  8552. this.imgList25 = [];
  8553. this.imgList26 = [];
  8554. this.imgList27 = [];
  8555. this.imgList28 = [];
  8556. Object.keys(res.data).forEach((keys) => {
  8557. if (res.data[keys].url) {
  8558. res.data[keys].url = process.env.BASE_URL + res.data[keys].url;
  8559. switch (keys) {
  8560. case "C01":
  8561. this.imageList1.push({
  8562. imageId: res.data[keys].imageId,
  8563. imageType: res.data[keys].imageType,
  8564. });
  8565. this.imgList1.push(res.data[keys]);
  8566. break;
  8567. case "D01":
  8568. this.imageList1.push({
  8569. imageId: res.data[keys].imageId,
  8570. imageType: res.data[keys].imageType,
  8571. });
  8572. this.imgList2.push(res.data[keys]);
  8573. break;
  8574. case "C02":
  8575. this.imageList2.push({
  8576. imageId: res.data[keys].imageId,
  8577. imageType: res.data[keys].imageType,
  8578. });
  8579. this.imgList3.push(res.data[keys]);
  8580. break;
  8581. case "D02":
  8582. this.imageList2.push({
  8583. imageId: res.data[keys].imageId,
  8584. imageType: res.data[keys].imageType,
  8585. });
  8586. this.imgList4.push(res.data[keys]);
  8587. break;
  8588. case "Y02":
  8589. this.imageList2.push({
  8590. imageId: res.data[keys].imageId,
  8591. imageType: res.data[keys].imageType,
  8592. });
  8593. this.imgList26.push(res.data[keys]);
  8594. break;
  8595. case "C03":
  8596. this.imageList3.push({
  8597. imageId: res.data[keys].imageId,
  8598. imageType: res.data[keys].imageType,
  8599. });
  8600. this.imgList5.push(res.data[keys]);
  8601. break;
  8602. case "D03":
  8603. this.imageList3.push({
  8604. imageId: res.data[keys].imageId,
  8605. imageType: res.data[keys].imageType,
  8606. });
  8607. this.imgList6.push(res.data[keys]);
  8608. break;
  8609. case "Y03":
  8610. this.imageList3.push({
  8611. imageId: res.data[keys].imageId,
  8612. imageType: res.data[keys].imageType,
  8613. });
  8614. this.imgList27.push(res.data[keys]);
  8615. break;
  8616. case "C04":
  8617. this.imageList4.push({
  8618. imageId: res.data[keys].imageId,
  8619. imageType: res.data[keys].imageType,
  8620. });
  8621. this.imgList7.push(res.data[keys]);
  8622. break;
  8623. case "D04":
  8624. this.imageList4.push({
  8625. imageId: res.data[keys].imageId,
  8626. imageType: res.data[keys].imageType,
  8627. });
  8628. this.imgList8.push(res.data[keys]);
  8629. break;
  8630. case "Y04":
  8631. this.imageList4.push({
  8632. imageId: res.data[keys].imageId,
  8633. imageType: res.data[keys].imageType,
  8634. });
  8635. this.imgList28.push(res.data[keys]);
  8636. break;
  8637. case "XC00":
  8638. this.imageList5.push({
  8639. imageId: res.data[keys].imageId,
  8640. imageType: res.data[keys].imageType,
  8641. });
  8642. this.imgList9.push(res.data[keys]);
  8643. break;
  8644. case "GC00":
  8645. this.imageList5.push({
  8646. imageId: res.data[keys].imageId,
  8647. imageType: res.data[keys].imageType,
  8648. });
  8649. this.imgList10.push(res.data[keys]);
  8650. break;
  8651. case "GX00":
  8652. this.imageList5.push({
  8653. imageId: res.data[keys].imageId,
  8654. imageType: res.data[keys].imageType,
  8655. });
  8656. this.imgList11.push(res.data[keys]);
  8657. break;
  8658. case "TAR05":
  8659. this.imageList1.push({
  8660. imageId: res.data[keys].imageId,
  8661. imageType: res.data[keys].imageType,
  8662. });
  8663. this.imgList12.push(res.data[keys]);
  8664. break;
  8665. case "C0500":
  8666. this.imageList6.push({
  8667. imageId: res.data[keys].imageId,
  8668. imageType: res.data[keys].imageType,
  8669. });
  8670. this.imgList13.push(res.data[keys]);
  8671. break;
  8672. case "C0501":
  8673. this.imageList6.push({
  8674. imageId: res.data[keys].imageId,
  8675. imageType: res.data[keys].imageType,
  8676. });
  8677. this.imgList14.push(res.data[keys]);
  8678. break;
  8679. case "C0502":
  8680. this.imageList6.push({
  8681. imageId: res.data[keys].imageId,
  8682. imageType: res.data[keys].imageType,
  8683. });
  8684. this.imgList15.push(res.data[keys]);
  8685. break;
  8686. case "C0503":
  8687. this.imageList6.push({
  8688. imageId: res.data[keys].imageId,
  8689. imageType: res.data[keys].imageType,
  8690. });
  8691. this.imgList16.push(res.data[keys]);
  8692. break;
  8693. case "C0504":
  8694. this.imageList6.push({
  8695. imageId: res.data[keys].imageId,
  8696. imageType: res.data[keys].imageType,
  8697. });
  8698. this.imgList17.push(res.data[keys]);
  8699. break;
  8700. case "C0506":
  8701. this.imageList6.push({
  8702. imageId: res.data[keys].imageId,
  8703. imageType: res.data[keys].imageType,
  8704. });
  8705. this.imgList18.push(res.data[keys]);
  8706. break;
  8707. case "C0507":
  8708. this.imageList6.push({
  8709. imageId: res.data[keys].imageId,
  8710. imageType: res.data[keys].imageType,
  8711. });
  8712. this.imgList19.push(res.data[keys]);
  8713. break;
  8714. case "C0505":
  8715. this.imageList6.push({
  8716. imageId: res.data[keys].imageId,
  8717. imageType: res.data[keys].imageType,
  8718. });
  8719. this.imgList20.push(res.data[keys]);
  8720. break;
  8721. case "C0508":
  8722. this.imageList6.push({
  8723. imageId: res.data[keys].imageId,
  8724. imageType: res.data[keys].imageType,
  8725. });
  8726. this.imgList21.push(res.data[keys]);
  8727. break;
  8728. case "C0509":
  8729. this.imageList6.push({
  8730. imageId: res.data[keys].imageId,
  8731. imageType: res.data[keys].imageType,
  8732. });
  8733. this.imgList22.push(res.data[keys]);
  8734. break;
  8735. case "C0510":
  8736. this.imageList6.push({
  8737. imageId: res.data[keys].imageId,
  8738. imageType: res.data[keys].imageType,
  8739. });
  8740. this.imgList23.push(res.data[keys]);
  8741. break;
  8742. case "LAST_INSURANCE_POLICY":
  8743. this.imageList6.push({
  8744. imageId: res.data[keys].imageId,
  8745. imageType: res.data[keys].imageType,
  8746. });
  8747. this.imgList24.push(res.data[keys]);
  8748. break;
  8749. default:
  8750. break;
  8751. }
  8752. }
  8753. });
  8754. } else {
  8755. this.$message({ message: res.msg, type: "info" });
  8756. }
  8757. });
  8758. },
  8759. policyUpload() {
  8760. this.policyNumberForm.jqPolicyList = !this.policyNumberForm.jqPolicyList
  8761. ? []
  8762. : this.policyNumberForm.jqPolicyList;
  8763. this.policyNumberForm.jqSignList = !this.policyNumberForm.jqSignList
  8764. ? []
  8765. : this.policyNumberForm.jqSignList;
  8766. this.policyNumberForm.syPolicyList = !this.policyNumberForm.syPolicyList
  8767. ? []
  8768. : this.policyNumberForm.syPolicyList;
  8769. this.policyNumberForm.noPolicyList = !this.policyNumberForm.noPolicyList
  8770. ? []
  8771. : this.policyNumberForm.noPolicyList;
  8772. this.policyUploaddialogVisible = true;
  8773. },
  8774. cancelorder(item) {
  8775. this.$api.letter.zijincancelorder({ companyId: item.id }).then((res) => {
  8776. if (res.code == 200) {
  8777. this.$message({
  8778. message: res.msg,
  8779. type: "success",
  8780. });
  8781. this.QuotationHistory();
  8782. }
  8783. });
  8784. },
  8785. hbsubmitdialog(data) {
  8786. if (this.imageList1.length == 0 && this.imageList2.length == 0) {
  8787. this.$message({ message: "影像不全,先上传影像", type: "error" });
  8788. return;
  8789. }
  8790. this.companyId = data.result.companyId;
  8791. this.apiType = data.apiType;
  8792. this.hbsubmitdialogVisible = true;
  8793. this.contributingState = false;
  8794. if (data.namesimple == "紫金财险") {
  8795. this.$api.letter
  8796. .zijinqueryClauseData({ companyId: this.companyId })
  8797. .then((res) => {
  8798. this.zijinengageListData = res.data;
  8799. });
  8800. }
  8801. if (data.namesimple == "华泰财险") {
  8802. this.zijinengageList = [];
  8803. this.$api.letter
  8804. .huataiqueryClauseData({ companyId: this.companyId })
  8805. .then((res) => {
  8806. res.data.forEach((val) => {
  8807. val.clauseCode = val.engageCode;
  8808. val.clauseName = val.engageTitle;
  8809. val.clauseContent = val.engageDetail;
  8810. val.clauses = val.engageDetail;
  8811. });
  8812. this.zijinengageListData = res.data;
  8813. this.zijinengageListData.forEach((val) => {
  8814. this.$nextTick(() => {
  8815. if (val.optType == "2") {
  8816. this.zijinengageList.push(val);
  8817. this.$refs.expandTablePro.toggleRowSelection(val, true);
  8818. }
  8819. });
  8820. });
  8821. });
  8822. } else {
  8823. this.zijinengageListData = [];
  8824. }
  8825. // switch (data.namesimple) {
  8826. // case "紫金财险":
  8827. // this.$api.letter.zijinqueryClauseData({ companyId: this.companyId }).then(res => {
  8828. // this.zijinengageListData = res.data;
  8829. // });
  8830. // break;
  8831. // default:
  8832. // break;
  8833. // }
  8834. },
  8835. hbsubmit() {
  8836. this.hbsubmitdialogVisible = false;
  8837. this.contributingState = false;
  8838. this.$api.letter
  8839. .getByCompanyId({ companyId: this.companyId })
  8840. .then(async (res) => {
  8841. if (res.code == 200) {
  8842. var data = res.data;
  8843. this.queryOrders = data;
  8844. const loading = this.$loading({
  8845. lock: true,
  8846. text: "Loading",
  8847. spinner: "el-icon-loading",
  8848. background: "rgba(0, 0, 0, 0.7)",
  8849. });
  8850. switch (this.queryOrders.inscompany) {
  8851. case "永安财险":
  8852. let api = "";
  8853. api =
  8854. this.apiType == 2
  8855. ? "pythonsubmitImage"
  8856. : "insyongansubmitImage";
  8857. await this.$api.letter[api]({
  8858. companyId: this.companyId,
  8859. }).then((res) => {
  8860. if (res.code == "200") {
  8861. var _this = this;
  8862. let api1 = "";
  8863. api1 = this.apiType == 2 ? "pythonaudit" : "yonganaudit";
  8864. this.$api.letter[api1]({
  8865. companyId: this.companyId,
  8866. }).then((res) => {
  8867. var _this = this;
  8868. if (res.code == "200") {
  8869. loading.close();
  8870. this.$message({
  8871. message: "核保成功",
  8872. type: "success",
  8873. });
  8874. this.QuotationHistory();
  8875. _this.$api.letter
  8876. .getByCompanyId({ companyId: this.companyId })
  8877. .then((res) => {
  8878. _this.orderstatus = res.data.orderstatus; //订单状态
  8879. _this.underwritingdialogVisible = true;
  8880. let indexid = this.totalCompanyList.findIndex(
  8881. (item) =>
  8882. item.namesimple == this.queryOrders.inscompany
  8883. );
  8884. this.totalCompanyList[indexid].orderstatus =
  8885. res.data.orderstatus;
  8886. });
  8887. } else {
  8888. loading.close();
  8889. this.$message({
  8890. showClose: true,
  8891. message:
  8892. this.queryOrders.inscompany + "提核--:" + res.msg,
  8893. type: "error",
  8894. duration: 0,
  8895. });
  8896. }
  8897. });
  8898. } else {
  8899. this.$message({
  8900. message: this.queryOrders.inscompany + "影像:" + res.msg,
  8901. type: "error",
  8902. duration: 7000,
  8903. });
  8904. loading.close();
  8905. }
  8906. });
  8907. break;
  8908. case "中煤财险":
  8909. await this.$api.letter
  8910. .insZhongmeisubmitImage({
  8911. companyId: this.companyId,
  8912. })
  8913. .then((res) => {
  8914. if (res.code == "200") {
  8915. var _this = this;
  8916. _this.$api.letter
  8917. .Zhongmeiaudit({
  8918. companyId: this.companyId,
  8919. jqappoint: "",
  8920. syappoint: "",
  8921. })
  8922. .then((res) => {
  8923. if (res.code == "200") {
  8924. loading.close();
  8925. _this.$message({
  8926. message: "核保成功",
  8927. type: "success",
  8928. });
  8929. this.QuotationHistory();
  8930. _this.$api.letter
  8931. .getByCompanyId({ companyId: this.companyId })
  8932. .then((res) => {
  8933. _this.orderstatus = res.data.orderstatus; //订单状态
  8934. _this.underwritingdialogVisible = true;
  8935. let indexid = this.totalCompanyList.findIndex(
  8936. (item) =>
  8937. item.namesimple ==
  8938. this.queryOrders.inscompany
  8939. );
  8940. this.totalCompanyList[indexid].orderstatus =
  8941. res.data.orderstatus;
  8942. });
  8943. } else {
  8944. loading.close();
  8945. _this.$message({
  8946. showClose: true,
  8947. message:
  8948. this.queryOrders.inscompany +
  8949. "提核--:" +
  8950. res.msg,
  8951. type: "error",
  8952. duration: 0,
  8953. });
  8954. _this.$api.letter
  8955. .getByCompanyId({ companyId: this.companyId })
  8956. .then((res) => {
  8957. _this.orderstatus = res.data.orderstatus; //订单状态
  8958. });
  8959. }
  8960. });
  8961. } else {
  8962. this.$message({
  8963. message:
  8964. this.queryOrders.inscompany + "影像--:" + res.msg,
  8965. type: "error",
  8966. duration: 7000,
  8967. });
  8968. loading.close();
  8969. }
  8970. });
  8971. break;
  8972. case "华泰财险":
  8973. let HtApiImage = "";
  8974. HtApiImage =
  8975. this.apiType == 2
  8976. ? "pythonsubmitImage"
  8977. : "insHuataisubmitImage";
  8978. await this.$api.letter[HtApiImage]({
  8979. [this.apiType == 2 ? "subOrderNo" : "companyId"]:
  8980. this.companyId,
  8981. }).then((res) => {
  8982. if (res.code == "200") {
  8983. var _this = this;
  8984. let HtApiaudit = "";
  8985. HtApiaudit =
  8986. this.apiType == 2 ? "pythonaudit" : "huataiaudit";
  8987. let engageList = [];
  8988. this.zijinengageList.forEach((val) => {
  8989. engageList.push({
  8990. engageCode: val.clauseCode,
  8991. engageDetail: val.clauses,
  8992. engageTitle: val.clauseName,
  8993. riskCode: val.riskCode,
  8994. });
  8995. });
  8996. _this.$api.letter[HtApiaudit]({
  8997. [this.apiType == 2 ? "subOrderNo" : "companyId"]:
  8998. this.companyId,
  8999. engageList,
  9000. }).then((res) => {
  9001. if (res.code == "200") {
  9002. loading.close();
  9003. _this.$message({
  9004. message: "核保成功",
  9005. type: "success",
  9006. });
  9007. this.QuotationHistory();
  9008. _this.$api.letter
  9009. .getByCompanyId({ companyId: this.companyId })
  9010. .then((res) => {
  9011. _this.orderstatus = res.data.orderstatus; //订单状态
  9012. _this.underwritingdialogVisible = true;
  9013. let indexid = this.totalCompanyList.findIndex(
  9014. (item) =>
  9015. item.namesimple == this.queryOrders.inscompany
  9016. );
  9017. this.totalCompanyList[indexid].orderstatus =
  9018. res.data.orderstatus;
  9019. });
  9020. } else {
  9021. loading.close();
  9022. _this.$message({
  9023. showClose: true,
  9024. message:
  9025. this.queryOrders.inscompany + "提核--:" + res.msg,
  9026. type: "error",
  9027. duration: 0,
  9028. });
  9029. _this.$api.letter
  9030. .getByCompanyId({ companyId: this.companyId })
  9031. .then((res) => {
  9032. _this.orderstatus = res.data.orderstatus; //订单状态
  9033. });
  9034. }
  9035. });
  9036. } else {
  9037. this.$message({
  9038. message:
  9039. this.queryOrders.inscompany + "影像--:" + res.msg,
  9040. type: "error",
  9041. duration: 7000,
  9042. });
  9043. loading.close();
  9044. }
  9045. });
  9046. break;
  9047. case "紫金财险":
  9048. await this.$api.letter
  9049. .zijinsubmitImage({
  9050. companyId: this.companyId,
  9051. })
  9052. .then((res) => {
  9053. if (res.code == "200") {
  9054. var _this = this;
  9055. _this.$api.letter
  9056. .zijinaudit({
  9057. companyId: this.companyId,
  9058. engageList: this.zijinengageList,
  9059. })
  9060. .then((res) => {
  9061. if (res.code == "200") {
  9062. loading.close();
  9063. _this.$message({
  9064. message: "核保成功",
  9065. type: "success",
  9066. });
  9067. this.QuotationHistory();
  9068. _this.$api.letter
  9069. .getByCompanyId({ companyId: this.companyId })
  9070. .then((res) => {
  9071. _this.orderstatus = res.data.orderstatus; //订单状态
  9072. _this.underwritingdialogVisible = true;
  9073. let indexid = this.totalCompanyList.findIndex(
  9074. (item) =>
  9075. item.namesimple ==
  9076. this.queryOrders.inscompany
  9077. );
  9078. this.totalCompanyList[indexid].orderstatus =
  9079. res.data.orderstatus;
  9080. });
  9081. } else {
  9082. loading.close();
  9083. _this.$message({
  9084. showClose: true,
  9085. dangerouslyUseHTMLString: true,
  9086. message:
  9087. this.queryOrders.inscompany +
  9088. "提核--:" +
  9089. res.msg,
  9090. type: "error",
  9091. duration: 0,
  9092. });
  9093. _this.$api.letter
  9094. .getByCompanyId({ companyId: this.companyId })
  9095. .then((res) => {
  9096. _this.orderstatus = res.data.orderstatus; //订单状态
  9097. });
  9098. }
  9099. });
  9100. } else {
  9101. this.$message({
  9102. message:
  9103. this.queryOrders.inscompany + "影像--:" + res.msg,
  9104. type: "error",
  9105. duration: 7000,
  9106. });
  9107. loading.close();
  9108. }
  9109. });
  9110. break;
  9111. case "国任财险":
  9112. await this.$api.letter
  9113. .insguorensubmitImage({
  9114. companyId: this.companyId,
  9115. })
  9116. .then((res) => {
  9117. if (res.code == "200") {
  9118. var _this = this;
  9119. _this.$api.letter
  9120. .gunrenaudit({
  9121. companyId: this.companyId,
  9122. })
  9123. .then((res) => {
  9124. if (res.code == "200") {
  9125. loading.close();
  9126. _this.cqryCdeJq = "";
  9127. _this.cqryCdeSy = "";
  9128. _this.renewalCodeJq = "";
  9129. _this.renewalCodeSy = "";
  9130. this.$message({
  9131. message: "核保成功",
  9132. type: "success",
  9133. });
  9134. this.QuotationHistory();
  9135. _this.$api.letter
  9136. .getByCompanyId({ companyId: this.companyId })
  9137. .then((res) => {
  9138. _this.orderstatus = res.data.orderstatus; //订单状态
  9139. _this.underwritingdialogVisible = true;
  9140. let indexid = this.totalCompanyList.findIndex(
  9141. (item) =>
  9142. item.namesimple ==
  9143. this.queryOrders.inscompany
  9144. );
  9145. this.totalCompanyList[indexid].orderstatus =
  9146. res.data.orderstatus;
  9147. });
  9148. } else {
  9149. loading.close();
  9150. this.$message({
  9151. showClose: true,
  9152. message: res.msg,
  9153. type: "error",
  9154. duration: 0,
  9155. });
  9156. }
  9157. });
  9158. } else {
  9159. loading.close();
  9160. this.$message({
  9161. message: res.msg,
  9162. type: "error",
  9163. duration: 7000,
  9164. });
  9165. }
  9166. });
  9167. break;
  9168. case "渤海财险":
  9169. await this.$api.letter
  9170. .insbohaisubmitImage({
  9171. companyId: this.companyId,
  9172. })
  9173. .then((res) => {
  9174. if (res.code == "200") {
  9175. var _this = this;
  9176. _this.$api.letter
  9177. .bohaiaudit({
  9178. companyId: this.companyId,
  9179. })
  9180. .then((res) => {
  9181. if (res.code == "200") {
  9182. loading.close();
  9183. _this.cqryCdeJq = "";
  9184. _this.cqryCdeSy = "";
  9185. _this.renewalCodeJq = "";
  9186. _this.renewalCodeSy = "";
  9187. this.$message({
  9188. message: "核保成功",
  9189. type: "success",
  9190. });
  9191. this.QuotationHistory();
  9192. _this.$api.letter
  9193. .getByCompanyId({ companyId: this.companyId })
  9194. .then((res) => {
  9195. _this.orderstatus = res.data.orderstatus; //订单状态
  9196. _this.underwritingdialogVisible = true;
  9197. let indexid = this.totalCompanyList.findIndex(
  9198. (item) =>
  9199. item.namesimple ==
  9200. this.queryOrders.inscompany
  9201. );
  9202. this.totalCompanyList[indexid].orderstatus =
  9203. res.data.orderstatus;
  9204. });
  9205. } else {
  9206. loading.close();
  9207. this.$message({
  9208. showClose: true,
  9209. message: res.msg,
  9210. type: "error",
  9211. duration: 0,
  9212. });
  9213. }
  9214. });
  9215. } else {
  9216. loading.close();
  9217. this.$message({
  9218. message: res.msg,
  9219. type: "error",
  9220. duration: 7000,
  9221. });
  9222. }
  9223. });
  9224. break;
  9225. case "诚泰财险":
  9226. case "恒邦财险":
  9227. case "华农财险":
  9228. case "太平财险":
  9229. case "安盛天平":
  9230. case "众安平安":
  9231. case "中国人寿":
  9232. case "泰康财险":
  9233. let hengbangapi = "";
  9234. hengbangapi =
  9235. this.apiType == 2
  9236. ? "pythonsubmitImage"
  9237. : "anshengsubmitImage";
  9238. console.log(hengbangapi, "hengbangapi");
  9239. await this.$api.letter[hengbangapi]({
  9240. subOrderNo: this.companyId,
  9241. }).then((res) => {
  9242. if (res.code == "200") {
  9243. var _this = this;
  9244. let hengbangapi1 = "";
  9245. hengbangapi1 =
  9246. this.apiType == 2 ? "pythonaudit" : "anshengaudit";
  9247. console.log(hengbangapi1, "hengbangapi1");
  9248. _this.$api.letter[hengbangapi1]({
  9249. subOrderNo: this.companyId,
  9250. }).then((res) => {
  9251. if (res.code == "200") {
  9252. loading.close();
  9253. this.$message({
  9254. message: "核保成功",
  9255. type: "success",
  9256. });
  9257. this.QuotationHistory();
  9258. _this.$api.letter
  9259. .getByCompanyId({ companyId: this.companyId })
  9260. .then((res) => {
  9261. _this.orderstatus = res.data.orderstatus; //订单状态
  9262. _this.underwritingdialogVisible = true;
  9263. let indexid = this.totalCompanyList.findIndex(
  9264. (item) =>
  9265. item.namesimple == this.queryOrders.inscompany
  9266. );
  9267. this.totalCompanyList[indexid].orderstatus =
  9268. res.data.orderstatus;
  9269. });
  9270. } else {
  9271. loading.close();
  9272. this.$message({
  9273. showClose: true,
  9274. dangerouslyUseHTMLString: true,
  9275. message:
  9276. this.queryOrders.inscompany +
  9277. "提核--:" +
  9278. res.msg.replace(/\n/g, "<br><br>"),
  9279. type: "error",
  9280. duration: 0,
  9281. });
  9282. }
  9283. });
  9284. } else {
  9285. loading.close();
  9286. this.$message({
  9287. message:
  9288. this.queryOrders.inscompany + "影像--:" + res.msg,
  9289. type: "error",
  9290. duration: 7000,
  9291. });
  9292. }
  9293. });
  9294. break;
  9295. case "永诚财险":
  9296. await this.$api.letter
  9297. .insyongchengsubmitImage({
  9298. companyId: this.companyId,
  9299. })
  9300. .then((res) => {
  9301. if (res.code == "200") {
  9302. var _this = this;
  9303. _this.$api.letter
  9304. .yongchengaudit({
  9305. companyId: this.companyId,
  9306. })
  9307. .then((res) => {
  9308. if (res.code == "200") {
  9309. loading.close();
  9310. _this.cqryCdeJq = "";
  9311. _this.cqryCdeSy = "";
  9312. _this.renewalCodeJq = "";
  9313. _this.renewalCodeSy = "";
  9314. this.$message({
  9315. message: "核保成功",
  9316. type: "success",
  9317. });
  9318. this.QuotationHistory();
  9319. _this.$api.letter
  9320. .getByCompanyId({ companyId: this.companyId })
  9321. .then((res) => {
  9322. _this.orderstatus = res.data.orderstatus; //订单状态
  9323. _this.underwritingdialogVisible = true;
  9324. let indexid = this.totalCompanyList.findIndex(
  9325. (item) =>
  9326. item.namesimple ==
  9327. this.queryOrders.inscompany
  9328. );
  9329. this.totalCompanyList[indexid].orderstatus =
  9330. res.data.orderstatus;
  9331. });
  9332. } else {
  9333. loading.close();
  9334. this.$message({
  9335. showClose: true,
  9336. message:
  9337. this.queryOrders.inscompany +
  9338. "提核--:" +
  9339. res.msg,
  9340. customClass: "customNotifyClass",
  9341. type: "error",
  9342. duration: 0,
  9343. });
  9344. }
  9345. });
  9346. } else {
  9347. loading.close();
  9348. this.$message({
  9349. message:
  9350. this.queryOrders.inscompany + "影像--:" + res.msg,
  9351. type: "error",
  9352. duration: 7000,
  9353. });
  9354. }
  9355. });
  9356. break;
  9357. case "大家财险":
  9358. let DJApiImage = "";
  9359. DJApiImage =
  9360. this.apiType == 2 ? "pythonsubmitImage" : "dajiasubmitImage";
  9361. await this.$api.letter[DJApiImage]({
  9362. [this.apiType == 2 ? "subOrderNo" : "companyId"]:
  9363. this.companyId,
  9364. }).then((res) => {
  9365. if (res.code == "200") {
  9366. var _this = this;
  9367. let DJApiaudit = "";
  9368. DJApiaudit =
  9369. this.apiType == 2 ? "pythonaudit" : "dajiaaudit";
  9370. _this.$api.letter[DJApiaudit]({
  9371. [this.apiType == 2 ? "subOrderNo" : "companyId"]:
  9372. this.companyId,
  9373. }).then((res) => {
  9374. if (res.code == "200") {
  9375. loading.close();
  9376. _this.cqryCdeJq = "";
  9377. _this.cqryCdeSy = "";
  9378. _this.renewalCodeJq = "";
  9379. _this.renewalCodeSy = "";
  9380. this.$message({
  9381. message: "核保成功",
  9382. type: "success",
  9383. });
  9384. this.QuotationHistory();
  9385. _this.$api.letter
  9386. .getByCompanyId({ companyId: this.companyId })
  9387. .then((res) => {
  9388. _this.orderstatus = res.data.orderstatus; //订单状态
  9389. _this.underwritingdialogVisible = true;
  9390. let indexid = this.totalCompanyList.findIndex(
  9391. (item) =>
  9392. item.namesimple == this.queryOrders.inscompany
  9393. );
  9394. this.totalCompanyList[indexid].orderstatus =
  9395. res.data.orderstatus;
  9396. });
  9397. } else {
  9398. loading.close();
  9399. this.$message({
  9400. showClose: true,
  9401. message:
  9402. this.queryOrders.inscompany + "提核--:" + res.msg,
  9403. customClass: "customNotifyClass",
  9404. type: "error",
  9405. duration: 0,
  9406. });
  9407. }
  9408. });
  9409. } else {
  9410. loading.close();
  9411. this.$message({
  9412. message:
  9413. this.queryOrders.inscompany + "影像--:" + res.msg,
  9414. type: "error",
  9415. duration: 7000,
  9416. });
  9417. }
  9418. });
  9419. break;
  9420. case "平安财险":
  9421. await this.$api.letter
  9422. .pingansubmitImage({
  9423. companyId: this.companyId,
  9424. })
  9425. .then((res) => {
  9426. if (res.code == "200") {
  9427. var _this = this;
  9428. _this.$api.letter
  9429. .pinganaudit({
  9430. companyId: this.companyId,
  9431. jqappoint: "",
  9432. syappoint: "",
  9433. })
  9434. .then((res) => {
  9435. if (res.code == "200") {
  9436. loading.close();
  9437. _this.$message({
  9438. message: "核保成功",
  9439. type: "success",
  9440. });
  9441. this.QuotationHistory();
  9442. _this.$api.letter
  9443. .getByCompanyId({ companyId: this.companyId })
  9444. .then((res) => {
  9445. _this.orderstatus = res.data.orderstatus; //订单状态
  9446. _this.underwritingdialogVisible = true;
  9447. let indexid = this.totalCompanyList.findIndex(
  9448. (item) =>
  9449. item.namesimple ==
  9450. this.queryOrders.inscompany
  9451. );
  9452. this.totalCompanyList[indexid].orderstatus =
  9453. res.data.orderstatus;
  9454. });
  9455. } else {
  9456. loading.close();
  9457. _this.$message({
  9458. showClose: true,
  9459. message:
  9460. this.queryOrders.inscompany +
  9461. "提核--:" +
  9462. res.msg,
  9463. type: "error",
  9464. duration: 0,
  9465. });
  9466. _this.$api.letter
  9467. .getByCompanyId({ companyId: this.companyId })
  9468. .then((res) => {
  9469. _this.orderstatus = res.data.orderstatus; //订单状态
  9470. });
  9471. }
  9472. });
  9473. } else {
  9474. this.$message({
  9475. message:
  9476. this.queryOrders.inscompany + "影像--:" + res.msg,
  9477. type: "error",
  9478. duration: 7000,
  9479. });
  9480. loading.close();
  9481. }
  9482. });
  9483. break;
  9484. }
  9485. }
  9486. });
  9487. },
  9488. //当前日期的次日
  9489. transformTime1() {
  9490. var date = new Date();
  9491. date.setFullYear(date.getFullYear());
  9492. date.setTime(date.getTime() + 24 * 60 * 60 * 1000);
  9493. var strYear = date.getFullYear();
  9494. var strDay = date.getDate();
  9495. var strMonth = date.getMonth() + 1;
  9496. var hh = date.getHours();
  9497. if (hh < 10) {
  9498. hh = "0" + hh;
  9499. }
  9500. if (strMonth < 10) {
  9501. strMonth = "0" + strMonth;
  9502. }
  9503. if (strDay < 10) {
  9504. strDay = "0" + strDay;
  9505. }
  9506. var datastr = strYear + "-" + strMonth + "-" + strDay + " " + "00:00:00";
  9507. return datastr;
  9508. },
  9509. //传入日期的次日
  9510. transformTime2(time) {
  9511. var date = new Date(time);
  9512. date.setFullYear(date.getFullYear());
  9513. date.setTime(date.getTime() + 24 * 60 * 60 * 1000); //一年后的前一天
  9514. var strYear = date.getFullYear();
  9515. var strDay = date.getDate();
  9516. var strMonth = date.getMonth() + 1;
  9517. var hh = date.getHours();
  9518. if (hh < 10) {
  9519. hh = "0" + hh;
  9520. }
  9521. if (strMonth < 10) {
  9522. strMonth = "0" + strMonth;
  9523. }
  9524. if (strDay < 10) {
  9525. strDay = "0" + strDay;
  9526. }
  9527. var datastr = strYear + "-" + strMonth + "-" + strDay + " " + "00:00:00";
  9528. return datastr;
  9529. },
  9530. //时间转换
  9531. transformTime(date) {
  9532. var d = new Date(date);
  9533. var strYear = d.getFullYear();
  9534. var strMonth = d.getMonth() + 1;
  9535. var strDay = d.getDate();
  9536. var hh = d.getHours();
  9537. var minutes = d.getMinutes(); // 分
  9538. var Seconds = d.getSeconds();
  9539. if (hh < 10) {
  9540. hh = "0" + hh;
  9541. }
  9542. if (minutes < 10) {
  9543. minutes = "0" + minutes;
  9544. }
  9545. if (Seconds < 10) {
  9546. Seconds = "0" + Seconds;
  9547. }
  9548. if (strMonth < 10) {
  9549. strMonth = "0" + strMonth;
  9550. }
  9551. if (strDay < 10) {
  9552. strDay = "0" + strDay;
  9553. }
  9554. var datetime =
  9555. strYear +
  9556. "-" +
  9557. strMonth +
  9558. "-" +
  9559. strDay +
  9560. " " +
  9561. hh +
  9562. ":" +
  9563. minutes +
  9564. ":" +
  9565. Seconds;
  9566. return datetime;
  9567. },
  9568. timeformat(date) {
  9569. var d = new Date(date);
  9570. var strYear = d.getFullYear();
  9571. var strMonth = d.getMonth() + 1;
  9572. var strDay = d.getDate();
  9573. var hh = d.getHours();
  9574. if (hh < 10) {
  9575. hh = "0" + hh;
  9576. }
  9577. if (strMonth < 10) {
  9578. strMonth = "0" + strMonth;
  9579. }
  9580. if (strDay < 10) {
  9581. strDay = "0" + strDay;
  9582. }
  9583. var datetime = strYear + "-" + strMonth + "-" + strDay;
  9584. return datetime;
  9585. },
  9586. oneYearPast1(time) {
  9587. //明年减一秒
  9588. var date = new Date(time);
  9589. date.setSeconds(date.getSeconds() - 1);
  9590. date.setFullYear(date.getFullYear() + 1); //一年后
  9591. date.setTime(date.getTime()); //一年后的前一天
  9592. var strYear = date.getFullYear();
  9593. var strDay = date.getDate();
  9594. var strMonth = date.getMonth() + 1;
  9595. var hh = date.getHours();
  9596. var minutes = date.getMinutes(); // 分
  9597. var Seconds = date.getSeconds();
  9598. if (hh < 10) {
  9599. hh = "0" + hh;
  9600. }
  9601. if (minutes < 10) {
  9602. minutes = "0" + minutes;
  9603. }
  9604. if (Seconds < 10) {
  9605. Seconds = "0" + Seconds;
  9606. }
  9607. if (strMonth < 10) {
  9608. strMonth = "0" + strMonth;
  9609. }
  9610. if (strDay < 10) {
  9611. strDay = "0" + strDay;
  9612. }
  9613. var datastr =
  9614. strYear +
  9615. "-" +
  9616. strMonth +
  9617. "-" +
  9618. strDay +
  9619. " " +
  9620. hh +
  9621. ":" +
  9622. minutes +
  9623. ":" +
  9624. Seconds;
  9625. return datastr;
  9626. },
  9627. tbczcarShowChange() {
  9628. //投保人同车主
  9629. switch (this.tbczcarShow) {
  9630. case true:
  9631. this.policyHolderInfo = {...this.ownerInfo}
  9632. break;
  9633. default:
  9634. for (let key in this.policyHolderInfo) {
  9635. this.policyHolderInfo[key] = "";
  9636. this.policyHolderInfo.property= "1";
  9637. this.policyHolderInfo.provinceData = [];
  9638. this.selectedOptions2 = [];
  9639. }
  9640. // this.policyHolderInfo = {}
  9641. // this.policyHolderInfo.property='1'
  9642. }
  9643. },
  9644. bbczcarShowChange() {
  9645. //被保人同车主
  9646. switch (this.bbczcarShow) {
  9647. case true:
  9648. this.bbtbcarShow = false;
  9649. this.insuredPersonInfo = {...this.ownerInfo}
  9650. break;
  9651. default:
  9652. for (let key in this.insuredPersonInfo) {
  9653. this.insuredPersonInfo[key] = "";
  9654. this.insuredPersonInfo.property= "1";
  9655. this.insuredPersonInfo.provinceData = [];
  9656. // this.selectedOptions3 = [];
  9657. }
  9658. }
  9659. },
  9660. bbtbcarShowChange() {
  9661. //被保人同投保人
  9662. switch (this.bbtbcarShow) {
  9663. case true:
  9664. this.bbczcarShow = false;
  9665. this.insuredPersonInfo = {...this.policyHolderInfo}
  9666. break;
  9667. default:
  9668. for (let key in this.insuredPersonInfo) {
  9669. this.insuredPersonInfo[key] = "";
  9670. this.insuredPersonInfo.property= "1";
  9671. this.insuredPersonInfo.provinceData = [];
  9672. }
  9673. }
  9674. },
  9675. //VIN查询
  9676. toChooseVin(cartype) {
  9677. if (cartype == "" || cartype == null) {
  9678. this.$message({
  9679. message: "请输入车架号",
  9680. type: "warning",
  9681. });
  9682. } else {
  9683. const loading = this.$loading({
  9684. lock: true,
  9685. text: "Loading",
  9686. spinner: "el-icon-loading",
  9687. background: "rgba(0, 0, 0, 0.7)",
  9688. });
  9689. this.$api.letter.insZhongmeiVIN(this.carInfo.frameNo).then((res) => {
  9690. if (res.code == "200") {
  9691. this.reslist = res.data;
  9692. loading.close();
  9693. this.sbdmdialogVisible = true;
  9694. } else {
  9695. loading.close();
  9696. this.$message.error(res.msg);
  9697. }
  9698. });
  9699. }
  9700. },
  9701. // 撤销二维码
  9702. revokeCode(id) {
  9703. this.$api.letter.getRevokeQrCode(id).then((res) => {
  9704. if (res.code == 200) {
  9705. this.$message({
  9706. message: res.msg,
  9707. type: "success",
  9708. });
  9709. this.QuotationHistory();
  9710. }
  9711. });
  9712. },
  9713. //品牌型号查询
  9714. toChooseVehicleType(cartype) {
  9715. if (cartype == "" || cartype == null) {
  9716. this.$message({
  9717. message: "请输入车型名称",
  9718. type: "warning",
  9719. });
  9720. } else {
  9721. const loading = this.$loading({
  9722. lock: true,
  9723. text: "Loading",
  9724. spinner: "el-icon-loading",
  9725. background: "rgba(0, 0, 0, 0.7)",
  9726. });
  9727. let param = {
  9728. modelName: cartype.replace(/[^u4e00-u9fa5|,]+/gi, ""),
  9729. };
  9730. this.$api.letter.ModelsQuery(param).then((res) => {
  9731. if (res.code == "200") {
  9732. loading.close();
  9733. this.reslist = res.data;
  9734. this.chexingdialogVisible = true;
  9735. } else {
  9736. loading.close();
  9737. this.$message.error(res.msg);
  9738. }
  9739. });
  9740. }
  9741. },
  9742. //车型列表双击选中事件
  9743. reslistCurrentChange(row, column, event) {
  9744. this.carInfo.brandName = row.brandCN; //品牌型号
  9745. this.carInfo.modelcname = row.modelName; //品牌型号
  9746. this.carInfo.caryear = row.marketYear; //年款
  9747. this.carInfo.seatCount = row.ratedPassengerCapacity; //座位数
  9748. this.carInfo.purchasePrice = row.replacementValue; //购置价
  9749. this.carInfo.modelCode = row.modelCode; //型号代码
  9750. this.carInfo.familyName = row.series; //系列
  9751. this.carInfo.enginedesc = row.displacement; //排量
  9752. this.carInfo.energyType = row.energyTypes;
  9753. this.carInfo.powerScale = row.powerScale; //功率
  9754. this.chexingdialogVisible = false;
  9755. this.sbdmdialogVisible = false;
  9756. },
  9757. //是否过户事件
  9758. transferFlagChange(e) {
  9759. if (e) {
  9760. this.transferDateShow = true;
  9761. this.carInfo.transferDate = this.carInfo.issueDate;
  9762. } else {
  9763. this.transferDateShow = false;
  9764. this.carInfo.transferDate = "";
  9765. }
  9766. },
  9767. //影像上传
  9768. drivingupload(file, imageIdList, imgurl, type) {
  9769. let that = this;
  9770. let size = file.size / 1024 / 1024 < 5;
  9771. const isJPG =
  9772. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  9773. if (!size) {
  9774. this.$message.error("上传图片大小不能超过 5MB!");
  9775. this[imgurl] = [];
  9776. return false;
  9777. }
  9778. if (!isJPG) {
  9779. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  9780. this[imgurl] = [];
  9781. return false;
  9782. }
  9783. this[imgurl].push(file);
  9784. var file = file.raw;
  9785. const params = new FormData(); // 声明formData数据类型
  9786. params.append("multipartFile", file);
  9787. params.append("type", "image");
  9788. this.$api.letter.uploadFile(params).then((res) => {
  9789. if (res.code == "200") {
  9790. if (this[imageIdList].some((v) => v.imageType == type)) {
  9791. this[imageIdList].map((val) => {
  9792. if (val.imageType == type) {
  9793. val.imageId = res.data.id;
  9794. }
  9795. });
  9796. } else {
  9797. this[imageIdList].push({
  9798. imageId: res.data.id,
  9799. imageType: type,
  9800. });
  9801. }
  9802. }
  9803. });
  9804. },
  9805. policydrivingupload(file, val) {
  9806. // this.policyNumberForm[val + 'List'] = []
  9807. switch (val) {
  9808. case "jqPolicy":
  9809. this.policyNumberForm.jqPolicyList = [];
  9810. break;
  9811. case "syPolicy":
  9812. this.policyNumberForm.syPolicyList = [];
  9813. break;
  9814. case "noPolicy":
  9815. this.policyNumberForm.noPolicyList = [];
  9816. break;
  9817. case "jqSign":
  9818. this.policyNumberForm.jqSignList = [];
  9819. break;
  9820. default:
  9821. break;
  9822. }
  9823. var file = file.raw;
  9824. const params = new FormData(); // 声明formData数据类型
  9825. params.append("multipartFile", file);
  9826. params.append("type", "file");
  9827. this.$api.letter.uploadFile(params).then((res) => {
  9828. if (res.code == "200") {
  9829. res.data.name = res.data.fileName;
  9830. this.policyNumberForm[val + "List"].push(res.data);
  9831. }
  9832. });
  9833. },
  9834. handleRemove1(file, imageIdList, imgList) {
  9835. this[imageIdList].map((ele, index) => {
  9836. if (file.imageId === ele.imageId) {
  9837. this[imageIdList].splice(index, 1);
  9838. }
  9839. return ele;
  9840. });
  9841. if (file.imageId) {
  9842. this[imgList].map((ele, index) => {
  9843. if (file.imageId === ele.imageId) {
  9844. this[imgList].splice(index, 1);
  9845. }
  9846. return ele;
  9847. });
  9848. } else {
  9849. this[imgList].map((ele, index) => {
  9850. if (file.uid === ele.uid) {
  9851. this[imgList].splice(index, 1);
  9852. }
  9853. return ele;
  9854. });
  9855. }
  9856. },
  9857. compress(img, width, height, ratio) {
  9858. var canvas, ctx, img64;
  9859. canvas = document.createElement("canvas");
  9860. canvas.width = width;
  9861. canvas.height = height;
  9862. ctx = canvas.getContext("2d");
  9863. ctx.drawImage(img, 0, 0, width, height);
  9864. img64 = canvas.toDataURL("image/jpeg", ratio);
  9865. return img64;
  9866. },
  9867. base64ToFile(base64, fileName) {
  9868. let data = base64.split(",");
  9869. let type = data[0].match(/:(.*?);/)[1]; // let suffix = type.split('/')[1];
  9870. const bstr = window.atob(data[1]);
  9871. let n = bstr.length;
  9872. const u8arr = new Uint8Array(n);
  9873. while (n--) {
  9874. u8arr[n] = bstr.charCodeAt(n);
  9875. } // const file =  new File([u8arr], `${fileName}.${suffix}`, {
  9876. const file = new File([u8arr], `${fileName}`, {
  9877. type: type,
  9878. });
  9879. return file;
  9880. },
  9881. carfrontChange(file) {
  9882. //选择行驶证正面
  9883. let that = this;
  9884. let size = file.size / 1024 / 1024 < 5;
  9885. const isJPG =
  9886. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  9887. if (!size) {
  9888. this.$message.error("上传图片大小不能超过 5MB!");
  9889. return false;
  9890. }
  9891. if (!isJPG) {
  9892. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  9893. return false;
  9894. }
  9895. // let name=file.raw.name
  9896. //       var image = new Image();
  9897. //       image.src = window.URL.createObjectURL(file.raw);
  9898. //       that.carfrontImg =  image.src
  9899. //       image.onload = function(){
  9900. //         let aaa= that.base64ToFile(that.compress(image, 500, 400, 0.7),name)
  9901. // that.carfrontImg = image.src;
  9902. // const params = new FormData(); // 声明formData数据类型
  9903. // params.append("multipartFile", aaa);
  9904. // params.append("type", "image");
  9905. // that.$api.letter.uploadFile(params).then(res => {
  9906. // if (res.code == "200") {
  9907. // that.CarFrontFile = aaa;//文件流
  9908. // if (that.imageList1.some(v => v.imageType == 'C01')) {
  9909. // that.imageList1.map(val => {
  9910. // if (val.imageType == 'C01') {
  9911. // val.imageId = res.data.id;
  9912. // }
  9913. // })
  9914. // } else {
  9915. // that.imageList1.push({
  9916. // imageId: res.data.id,
  9917. // imageType: "C01",
  9918. // })
  9919. // }
  9920. // } else {
  9921. // that.$message({ message: res.msg, type: "warning" });
  9922. // }
  9923. // });
  9924. // }
  9925. var file = file.raw;
  9926. let files = window.URL.createObjectURL(file); //转临时路径
  9927. this.carfrontImg = files;
  9928. const params = new FormData(); // 声明formData数据类型
  9929. params.append("multipartFile", file);
  9930. params.append("type", "image");
  9931. this.$api.letter.uploadFile(params).then((res) => {
  9932. if (res.code == "200") {
  9933. this.CarFrontFile = file; //文件流
  9934. if (this.imageList1.some((v) => v.imageType == "C01")) {
  9935. this.imageList1.map((val) => {
  9936. if (val.imageType == "C01") {
  9937. val.imageId = res.data.id;
  9938. }
  9939. });
  9940. } else {
  9941. this.imageList1.push({
  9942. imageId: res.data.id,
  9943. imageType: "C01",
  9944. });
  9945. }
  9946. } else {
  9947. this.$message({ message: res.msg, type: "warning" });
  9948. }
  9949. });
  9950. },
  9951. carbackChange(file) {
  9952. let that = this;
  9953. let size = file.size / 1024 / 1024 < 2;
  9954. const isJPG =
  9955. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  9956. if (!size) {
  9957. this.$message.error("上传图片大小不能超过 5MB!");
  9958. return false;
  9959. }
  9960. if (!isJPG) {
  9961. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  9962. return false;
  9963. }
  9964. // let name=file.raw.name
  9965. //       var image = new Image();
  9966. //       image.src = window.URL.createObjectURL(file.raw);
  9967. //       image.onload = function(){
  9968. //         let aaa= that.base64ToFile(that.compress(image, 500, 400, 0.7),name)
  9969. // that.carbackImg = image.src;
  9970. // const params = new FormData(); // 声明formData数据类型
  9971. // params.append("multipartFile", aaa);
  9972. // params.append("type", "image");
  9973. // that.$api.letter.uploadFile(params).then(res => {
  9974. // if (res.code == "200") {
  9975. // that.CarBackFile = aaa;//文件流
  9976. // if (that.imageList1.some(v => v.imageType == 'D01')) {
  9977. // that.imageList1.map(val => {
  9978. // if (val.imageType == 'D01') {
  9979. // val.imageId = res.data.id;
  9980. // }
  9981. // })
  9982. // } else {
  9983. // that.imageList1.push({
  9984. // imageId: res.data.id,
  9985. // imageType: "D01",
  9986. // })
  9987. // }
  9988. // } else {
  9989. // that.$message({ message: res.msg, type: "warning" });
  9990. // }
  9991. // });
  9992. // }
  9993. //选择行驶证反面
  9994. var file = file.raw;
  9995. let files = window.URL.createObjectURL(file); //转临时路径
  9996. this.carbackImg = files;
  9997. const params = new FormData(); // 声明formData数据类型
  9998. params.append("multipartFile", file);
  9999. params.append("type", "image");
  10000. this.$api.letter.uploadFile(params).then((res) => {
  10001. if (res.code == "200") {
  10002. this.CarBackFile = file;
  10003. if (this.imageList1.some((v) => v.imageType == "D01")) {
  10004. this.imageList1.map((val) => {
  10005. if (val.imageType == "D01") {
  10006. val.imageId = res.data.id;
  10007. }
  10008. });
  10009. } else {
  10010. this.imageList1.push({
  10011. imageId: res.data.id,
  10012. imageType: "D01",
  10013. });
  10014. }
  10015. } else {
  10016. this.$message({ message: res.msg, type: "warning" });
  10017. }
  10018. });
  10019. },
  10020. userfrontChange(file) {
  10021. let that = this;
  10022. let size = file.size / 1024 / 1024 < 5;
  10023. const isJPG =
  10024. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  10025. if (!size) {
  10026. this.$message.error("上传图片大小不能超过 5MB!");
  10027. return false;
  10028. }
  10029. if (!isJPG) {
  10030. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  10031. return false;
  10032. }
  10033. // let name=file.raw.name
  10034. //       var image = new Image();
  10035. //       image.src = window.URL.createObjectURL(file.raw);
  10036. //       image.onload = function(){
  10037. //         let aaa= that.base64ToFile(that.compress(image, 500, 400, 0.7),name)
  10038. // that.userfrontImg = image.src;
  10039. // const params = new FormData(); // 声明formData数据类型
  10040. // params.append("multipartFile", aaa);
  10041. // params.append("type", "image");
  10042. // that.$api.letter.uploadFile(params).then(res => {
  10043. // if (res.code == "200") {
  10044. // let type = 'C0' + that.userIndex;
  10045. // if (that['imageList' + that.userIndex].some(v => v.imageType == type)) {
  10046. // that['imageList' + that.userIndex].map(val => {
  10047. // if (val.imageType == type) {
  10048. // val.imageId = res.data.id;
  10049. // }
  10050. // })
  10051. // } else {
  10052. // that['imageList' + that.userIndex].push({
  10053. // imageId: res.data.id,
  10054. // imageType: type,
  10055. // })
  10056. // }
  10057. // that[type + 'File'] = aaa;
  10058. // } else {
  10059. // that.$message({ message: res.msg, type: "warning" });
  10060. // }
  10061. // });
  10062. // }
  10063. //选择身份证正面
  10064. var file = file.raw;
  10065. let files = window.URL.createObjectURL(file); //转链接
  10066. this.userfrontImg = files;
  10067. const params = new FormData(); // 声明formData数据类型
  10068. params.append("multipartFile", file);
  10069. params.append("type", "image");
  10070. this.$api.letter.uploadFile(params).then((res) => {
  10071. if (res.code == "200") {
  10072. let type = "C0" + this.userIndex;
  10073. if (
  10074. this["imageList" + this.userIndex].some((v) => v.imageType == type)
  10075. ) {
  10076. this["imageList" + this.userIndex].map((val) => {
  10077. if (val.imageType == type) {
  10078. val.imageId = res.data.id;
  10079. }
  10080. });
  10081. } else {
  10082. this["imageList" + this.userIndex].push({
  10083. imageId: res.data.id,
  10084. imageType: type,
  10085. });
  10086. }
  10087. this[type + "File"] = file;
  10088. } else {
  10089. this.$message({ message: res.msg, type: "warning" });
  10090. }
  10091. });
  10092. },
  10093. userbackChange(file) {
  10094. let that = this;
  10095. let size = file.size / 1024 / 1024 < 5;
  10096. const isJPG =
  10097. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  10098. if (!size) {
  10099. this.$message.error("上传图片大小不能超过 5MB!");
  10100. return false;
  10101. }
  10102. if (!isJPG) {
  10103. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  10104. return false;
  10105. }
  10106. // let name=file.raw.name
  10107. //       var image = new Image();
  10108. //       image.src = window.URL.createObjectURL(file.raw);
  10109. //       image.onload = function(){
  10110. //         let aaa= that.base64ToFile(that.compress(image, 500, 400, 0.7),name)
  10111. // that.userbackImg = image.src;
  10112. // const params = new FormData(); // 声明formData数据类型
  10113. // params.append("multipartFile", aaa);
  10114. // params.append("type", "image");
  10115. // that.$api.letter.uploadFile(params).then(res => {
  10116. // if (res.code == "200") {
  10117. // let type = 'D0' + that.userIndex;
  10118. // if (that['imageList' + that.userIndex].some(v => v.imageType == type)) {
  10119. // that['imageList' + that.userIndex].map(val => {
  10120. // if (val.imageType == type) {
  10121. // val.imageId = res.data.id;
  10122. // }
  10123. // })
  10124. // } else {
  10125. // that['imageList' + that.userIndex].push({
  10126. // imageId: res.data.id,
  10127. // imageType: type,
  10128. // })
  10129. // }
  10130. // that[type + 'File'] = aaa;
  10131. // } else {
  10132. // that.$message({ message: res.msg, type: "warning" });
  10133. // }
  10134. // });
  10135. // }
  10136. //选择身份证背面
  10137. var file = file.raw;
  10138. let files = window.URL.createObjectURL(file); //转链接
  10139. this.userbackImg = files;
  10140. const params = new FormData(); // 声明formData数据类型
  10141. params.append("multipartFile", file);
  10142. params.append("type", "image");
  10143. this.$api.letter.uploadFile(params).then((res) => {
  10144. if (res.code == "200") {
  10145. let type = "D0" + this.userIndex;
  10146. if (
  10147. this["imageList" + this.userIndex].some((v) => v.imageType == type)
  10148. ) {
  10149. this["imageList" + this.userIndex].map((val) => {
  10150. if (val.imageType == type) {
  10151. val.imageId = res.data.id;
  10152. }
  10153. });
  10154. } else {
  10155. this["imageList" + this.userIndex].push({
  10156. imageId: res.data.id,
  10157. imageType: type,
  10158. });
  10159. }
  10160. this[type + "File"] = file;
  10161. } else {
  10162. this.$message({ message: res.msg, type: "warning" });
  10163. }
  10164. });
  10165. },
  10166. businessChange(file) {
  10167. let size = file.size / 1024 / 1024 < 5;
  10168. const isJPG =
  10169. file.raw.type === "image/jpeg" || file.raw.type === "image/png";
  10170. if (!size) {
  10171. this.$message.error("上传图片大小不能超过 5MB!");
  10172. return false;
  10173. }
  10174. if (!isJPG) {
  10175. this.$message.error("上传图片只能是 JPG、PNG 格式!");
  10176. return false;
  10177. }
  10178. var file = file.raw;
  10179. let files = window.URL.createObjectURL(file); //转链接
  10180. this.businessImg = files;
  10181. const params = new FormData(); // 声明formData数据类型
  10182. params.append("multipartFile", file);
  10183. params.append("type", "image");
  10184. this.$api.letter.uploadFile(params).then((res) => {
  10185. if (res.code == "200") {
  10186. let type = "Y0" + this.userIndex;
  10187. if (
  10188. this["imageList" + this.userIndex].some((v) => v.imageType == type)
  10189. ) {
  10190. this["imageList" + this.userIndex].map((val) => {
  10191. if (val.imageType == type) {
  10192. val.imageId = res.data.id;
  10193. }
  10194. });
  10195. } else {
  10196. this["imageList" + this.userIndex].push({
  10197. imageId: res.data.id,
  10198. imageType: type,
  10199. });
  10200. }
  10201. this[type + "File"] = file;
  10202. } else {
  10203. this.$message({ message: res.msg, type: "warning" });
  10204. }
  10205. });
  10206. },
  10207. CarOCRdiscern() {
  10208. //car识别
  10209. const loading = this.$loading({
  10210. lock: true,
  10211. text: "Loading",
  10212. spinner: "el-icon-loading",
  10213. background: "rgba(0, 0, 0, 0.7)",
  10214. });
  10215. const params = new FormData(); // 声明formData数据类型
  10216. params.append("image1", this.CarFrontFile);
  10217. params.append("image2", this.CarBackFile);
  10218. this.$api.letter.drivingPermit(params).then((res) => {
  10219. loading.close();
  10220. if (res.msg == "201") {
  10221. this.$message({ message: "请正确选择驾驶证", type: "warning" });
  10222. }
  10223. var carInfo = res.data.carInfo;
  10224. if (carInfo.issueDate) {
  10225. carInfo.issueDate =
  10226. carInfo.issueDate.substring(0, 4) +
  10227. "-" +
  10228. carInfo.issueDate.substring(4, 6) +
  10229. "-" +
  10230. carInfo.issueDate.substring(6, 8);
  10231. }
  10232. if (carInfo.registerDate) {
  10233. carInfo.registerDate =
  10234. carInfo.registerDate.substring(0, 4) +
  10235. "-" +
  10236. carInfo.registerDate.substring(4, 6) +
  10237. "-" +
  10238. carInfo.registerDate.substring(6, 8);
  10239. }
  10240. this.carform.carOwner = carInfo.carOwner; //车主
  10241. this.carform.licenseNo = carInfo.plateNo; //车牌号
  10242. this.carform.modelcname = carInfo.backOcrID; //品牌型号
  10243. this.carform.frameNo = carInfo.vin; //车架号
  10244. this.carform.engineNo = carInfo.engine; //发动机号
  10245. this.carform.registerDate = carInfo.registerDate; //车牌号
  10246. this.carform.issueDate = carInfo.issueDate; //车牌号
  10247. this.carform.grossMass = carInfo.grossMass; //总质量
  10248. this.carform.unladenMass = carInfo.unladenMass; //整备质量
  10249. this.carform.limitLoad = carInfo.limitLoad; //核定载质量
  10250. this.carform.category = carInfo.category; //车辆类型
  10251. this.carform.carnature = carInfo.useNature; //使用性质
  10252. this.carform.vehicleUse = carInfo.vehicleUse; //车辆用途
  10253. this.carform.plateType = carInfo.plateType; //车辆种类
  10254. this.carform.approvedPassengersCapacity =
  10255. carInfo.approvedPassengersCapacity; //核定载客数
  10256. });
  10257. },
  10258. CarOCRconfirm() {
  10259. //传参 carnature
  10260. this.ownerInfo.name = this.carform.carOwner; //车主
  10261. this.carInfo.cartype = "K33";
  10262. this.carInfo.licenseNo = this.carform.licenseNo; //车牌号
  10263. this.carInfo.modelcname = this.carform.modelcname; //品牌型号
  10264. this.carInfo.vinNo = this.carform.frameNo; //车架号
  10265. this.carInfo.frameNo = this.carform.frameNo; //车架号
  10266. this.carInfo.engineNo = this.carform.engineNo; //发动机号
  10267. this.carInfo.seatCount = this.carform.approvedPassengersCapacity; //核定载客数
  10268. this.carInfo.vehicleweight = this.carform.grossMass; //总质量
  10269. this.carInfo.completeKerbMass = this.carform.unladenMass; //整备质量
  10270. this.carInfo.limitLoad = this.carform.limitLoad; //核定载质量
  10271. this.carInfo.cartype = this.carform.category; //车辆类型
  10272. this.carInfo.carnature = this.carform.carnature
  10273. ? this.carform.carnature
  10274. : "02"; //使用性质
  10275. this.carInfo.vehicleUse = this.carform.vehicleUse
  10276. ? this.carform.vehicleUse
  10277. : "05"; //车辆用途
  10278. this.carInfo.cimodelclass = this.carform.plateType; //车辆种类
  10279. if (this.timeformat(this.carform.registerDate) != "NaN-NaN-NaN") {
  10280. this.carInfo.registerDate = this.carform.registerDate; //车牌号
  10281. }
  10282. if (this.timeformat(this.carform.issueDate) != "NaN-NaN-NaN") {
  10283. this.carInfo.issueDate = this.carform.issueDate; //车牌号
  10284. }
  10285. this.uploadcardialogVisible = false;
  10286. },
  10287. handleRemove(e) {
  10288. //删除图片
  10289. this[e] = "";
  10290. switch (this.userIndex) {
  10291. case 0:
  10292. this.carfrontImg = "";
  10293. this.carbackImg = "";
  10294. this.CarFrontFile = ""; // 行驶证正面base64
  10295. this.CarBackFile = ""; // 行驶证背面base64
  10296. break;
  10297. case 2:
  10298. this.userfrontImg = "";
  10299. this.userbackImg = "";
  10300. this.C02File = ""; // 车主正面base64
  10301. this.D02File = ""; // 车主背面base64
  10302. this.Y02File = ""; // 车主营业执照
  10303. break;
  10304. case 3:
  10305. this.userfrontImg = "";
  10306. this.userbackImg = "";
  10307. this.C03File = ""; // 投保人正面base64
  10308. this.D03File = ""; // 投保人背面base64
  10309. this.Y03File = ""; // 投保人营业执照
  10310. break;
  10311. case 4:
  10312. this.userfrontImg = "";
  10313. this.userbackImg = "";
  10314. this.C04File = ""; // 被保人正面base64
  10315. this.D04File = ""; // 被保人背面base64
  10316. this.Y04File = ""; // 被保人营业执照
  10317. break;
  10318. default:
  10319. }
  10320. },
  10321. //预览图片
  10322. handlePictureCardPreview(img) {
  10323. this.ProViewImg = img;
  10324. this.showViewer = true;
  10325. },
  10326. // 关闭查看器
  10327. closeViewer() {
  10328. this.showViewer = false;
  10329. },
  10330. uploaduser(index) {
  10331. this.userIndex = index;
  10332. this.uploaduserdialogVisible = true;
  10333. },
  10334. userOCRdiscern() {
  10335. //OCR识别
  10336. if( this.activeName=='1'){
  10337. switch (this.userIndex) {
  10338. case 2:
  10339. const params1 = new FormData(); // 声明formData数据类型
  10340. params1.append("image1", this.C02File);
  10341. params1.append("image2", this.D02File);
  10342. this.userOCRjoggle(params1);
  10343. break;
  10344. case 3:
  10345. const params2 = new FormData(); // 声明formData数据类型
  10346. params2.append("image1", this.C03File);
  10347. params2.append("image2", this.D03File);
  10348. this.userOCRjoggle(params2);
  10349. break;
  10350. case 4:
  10351. const params3 = new FormData(); // 声明formData数据类型
  10352. params3.append("image1", this.C04File);
  10353. params3.append("image2", this.D04File);
  10354. this.userOCRjoggle(params3);
  10355. break;
  10356. default:
  10357. }
  10358. }
  10359. else{
  10360. switch (this.userIndex ) {
  10361. case 2:
  10362. const params1 = new FormData(); // 声明formData数据类型
  10363. params1.append("image1", this.Y02File);
  10364. this.businessjoggle(params1);
  10365. break;
  10366. case 3:
  10367. const params2 = new FormData(); // 声明formData数据类型
  10368. params2.append("image1", this.Y03File);
  10369. this.businessjoggle(params2);
  10370. break;
  10371. case 4:
  10372. const params3 = new FormData(); // 声明formData数据类型
  10373. params3.append("image1", this.Y04File);
  10374. this.businessjoggle(params3);
  10375. break;
  10376. default:
  10377. }
  10378. }
  10379. },
  10380. businessjoggle(param) {
  10381. const loading = this.$loading({
  10382. lock: true,
  10383. text: "Loading",
  10384. spinner: "el-icon-loading",
  10385. background: "rgba(0, 0, 0, 0.7)",
  10386. });
  10387. this.$api.letter.businessLicense(param).then((res) => {
  10388. loading.close();
  10389. if (res.msg == "201") {
  10390. this.$message({ message: "请正确选择营业执照", type: "warning" });
  10391. }
  10392. if (res.code==200 && res.data) {
  10393. if(res.data){
  10394. this.businessform={
  10395. ...res.data,
  10396. name: res.data.company,
  10397. organizationCode: res.data.socialCreditCode,
  10398. addr: res.data.address,
  10399. identifyType:'10',
  10400. scope: res.data.businessScope,
  10401. legalPerson: res.data.legalRepresentative,
  10402. registeredCapital:parseInt(res.data.registeredCapital)
  10403. }
  10404. }
  10405. }
  10406. });
  10407. },
  10408. userOCRjoggle(param) {
  10409. const loading = this.$loading({
  10410. lock: true,
  10411. text: "Loading",
  10412. spinner: "el-icon-loading",
  10413. background: "rgba(0, 0, 0, 0.7)",
  10414. });
  10415. this.$api.letter.idCard(param).then((res) => {
  10416. loading.close();
  10417. if (res.msg == "201") {
  10418. this.$message({ message: "请正确选择身份证", type: "warning" });
  10419. }
  10420. var customerInfo = res.data.customerInfo;
  10421. if (customerInfo) {
  10422. this.ownerInfoform.name = customerInfo.name;
  10423. if (customerInfo.identifyType == "01") {
  10424. this.ownerInfoform.identifyType = "身份证";
  10425. } else {
  10426. this.ownerInfoform.identifyType = "";
  10427. }
  10428. this.ownerInfoform.identifyNumber = customerInfo.identifyNumber;
  10429. this.ownerInfoform.gender = customerInfo.identifyIssuedCom;
  10430. this.ownerInfoform.addr = customerInfo.addr;
  10431. if (customerInfo.identifyNumber) {
  10432. this.ownerInfoform.age = getAgeByIdCard(
  10433. customerInfo.identifyNumber
  10434. );
  10435. }
  10436. if (
  10437. customerInfo.identifyValidDate ||
  10438. customerInfo.identifyValidEndDate
  10439. ) {
  10440. this.ownerInfoform.identifyValidDate =
  10441. customerInfo.identifyValidDate.substring(0, 4) +
  10442. "-" +
  10443. customerInfo.identifyValidDate.substring(4, 6) +
  10444. "-" +
  10445. customerInfo.identifyValidDate.substring(6, 8);
  10446. this.ownerInfoform.identifyValidEndDate =
  10447. customerInfo.identifyValidEndDate.substring(0, 4) +
  10448. "-" +
  10449. customerInfo.identifyValidEndDate.substring(4, 6) +
  10450. "-" +
  10451. customerInfo.identifyValidEndDate.substring(6, 8);
  10452. if (customerInfo.identifyValidEndDate == "长期") {
  10453. this.ownerInfoform.identifyValidEndDate = "9999-12-31";
  10454. }
  10455. }
  10456. // let values = addressCode(this.ownerInfoform.addr);
  10457. // this.ownerInfoform.province = codeToText[values[0]]
  10458. // this.ownerInfoform.city = codeToText[values[1]]
  10459. // this.ownerInfoform.county = codeToText[values[2]]
  10460. }
  10461. });
  10462. },
  10463. userOCRconfirm() {
  10464. //传参
  10465. if( this.activeName=='1'){
  10466. this.ownerInfoform.property='1'
  10467. switch (this.userIndex) {
  10468. case 2:
  10469. // this.selectedOptions1 = addressCode(this.ownerInfoform.addr);
  10470. this.ownerInfo = {...this.ownerInfoform}
  10471. break;
  10472. case 3:
  10473. // this.selectedOptions2 = addressCode(this.ownerInfoform.addr);
  10474. this.policyHolderInfo = {...this.ownerInfoform}
  10475. break;
  10476. case 4:
  10477. // this.selectedOptions3 = addressCode(this.ownerInfoform.addr);
  10478. this.insuredPersonInfo = {...this.ownerInfoform}
  10479. break;
  10480. }
  10481. }
  10482. else{
  10483. this.businessform.property='0'
  10484. switch (this.userIndex) {
  10485. case 2:
  10486. this.ownerInfo ={...this.ownerInfo,...this.businessform}
  10487. break;
  10488. case 3:
  10489. this.policyHolderInfo ={...this.policyHolderInfo,...this.businessform}
  10490. break;
  10491. case 4:
  10492. this.insuredPersonInfo ={...this.insuredPersonInfo,...this.businessform}
  10493. break;
  10494. }
  10495. }
  10496. this.uploaduserdialogVisible = false;
  10497. },
  10498. closeDialog(index) {
  10499. // 0:车辆 1:车主 2:投保人 3:被保人
  10500. switch (index) {
  10501. case 0:
  10502. this.carfrontImg = "";
  10503. this.carbackImg = "";
  10504. this.CarFrontFile = ""; // 行驶证正面base64
  10505. this.CarBackFile = ""; // 行驶证背面base64
  10506. Object.keys(this.carform).forEach((key) => {
  10507. this.carform[key] = "";
  10508. });
  10509. break;
  10510. case 2:
  10511. this.userfrontImg = "";
  10512. this.userbackImg = "";
  10513. this.businessImg = "";
  10514. this.Y02File = ""; // 营业执照
  10515. this.C02File = ""; // 车主正面base64
  10516. this.D02File = ""; // 车主背面base64
  10517. Object.keys(this.ownerInfoform).forEach((key) => {
  10518. this.ownerInfoform[key] = "";
  10519. });
  10520. break;
  10521. case 3:
  10522. this.userfrontImg = "";
  10523. this.userbackImg = "";
  10524. this.businessImg = "";
  10525. this.Y03File = ""; // 营业执照
  10526. this.C03File = ""; // 投保人正面base64
  10527. this.D03File = ""; // 投保人背面base64
  10528. Object.keys(this.ownerInfoform).forEach((key) => {
  10529. this.ownerInfoform[key] = "";
  10530. });
  10531. break;
  10532. case 4:
  10533. this.userfrontImg = "";
  10534. this.userbackImg = "";
  10535. this.businessImg = "";
  10536. this.Y04File = ""; // 营业执照
  10537. this.C04File = ""; // 被保人正面base64
  10538. this.D04File = ""; // 被保人背面base64
  10539. Object.keys(this.ownerInfoform).forEach((key) => {
  10540. this.ownerInfoform[key] = "";
  10541. });
  10542. break;
  10543. default:
  10544. }
  10545. },
  10546. bjdpreview(id) {
  10547. let params = {
  10548. companyId: id,
  10549. };
  10550. this.$api.letter.getByCompanyId(params).then((res) => {
  10551. if (res.code == "200") {
  10552. var data = res.data;
  10553. if (data.kindinfo != null) {
  10554. data.kindinfo.map((ele, index) => {
  10555. switch (ele.kindCode) {
  10556. case "A":
  10557. if (ele.amount == 1) {
  10558. ele.amount = "投保";
  10559. } else {
  10560. ele.amount = ele.amount;
  10561. }
  10562. break;
  10563. case "D4":
  10564. case "SY_FJ_YBW2":
  10565. ele.unitAmount = this.toChinesNum(ele.unitAmount);
  10566. break;
  10567. case "MJ1":
  10568. case "MJ2":
  10569. case "MJ3":
  10570. case "MJ4":
  10571. ele.deductibleRate = ele.deductibleRate + "%";
  10572. break;
  10573. default:
  10574. ele.amount = this.toChinesNum(ele.amount);
  10575. }
  10576. return ele;
  10577. });
  10578. }
  10579. data.logoImg = this.iconfftter(res.data.inscompany);
  10580. this.queryOrders = data;
  10581. this.$api.letter.getThemeByUserId(this.userId).then((res) => {
  10582. if (res.code == 200) {
  10583. if (res.data[0] == "GD") {
  10584. this.$refs.quotationDialogPro.setBackupVisible(true);
  10585. } else {
  10586. this.$refs.quotationDialog.setBackupVisible(true);
  10587. }
  10588. }
  10589. });
  10590. // if (
  10591. // this.$store.state.user.roles.managementSource &&
  10592. // this.$store.state.user.roles.managementSource == "3"
  10593. // ) {
  10594. // this.$refs.quotationDialogPro.setBackupVisible(true);
  10595. // } else {
  10596. // this.$refs.quotationDialog.setBackupVisible(true);
  10597. // }
  10598. }
  10599. });
  10600. },
  10601. //返回上一步
  10602. Back() { },
  10603. carcode(id, item) {
  10604. this.$api.letter.getQrCode(id).then((res) => {
  10605. if (res.code == "200") {
  10606. this.inscompany = res.data.inscompany; //保险公司
  10607. this.sumpremium = res.data.sumpremium; //总价
  10608. this.licenseNo = res.data.cPlateNo; //车牌号
  10609. this.applyName = res.data.cInsuredNme; //车主
  10610. this.jqpremium = res.data.jqpremium; //交强
  10611. this.sypremium = res.data.sypremium; //商业
  10612. this.taxamount = res.data.taxamount; //车船税
  10613. this.jypremium = res.data.jypremium; //驾意险
  10614. this.jqstartdate = res.data.jqStartDate; //交强起保日期
  10615. this.systartdate = res.data.syStartDate; //商业起保日期
  10616. // this.mobile = res.data.applyinfo.mobile;//投保人手机号
  10617. let qrCodeUrl = res.data.qrCodeUrl;
  10618. this.$api.letter.getThemeByUserId(this.userId).then((res) => {
  10619. if (res.code == 200) {
  10620. if (res.data[0] == "GD") {
  10621. this.codedialogVisiblePro = true;
  10622. this.qrcodeWidth = "154";
  10623. this.qrcodeHeight = "154";
  10624. } else {
  10625. this.codedialogVisible = true;
  10626. }
  10627. this.$nextTick(function () {
  10628. var _that = this;
  10629. switch (_that.inscompany) {
  10630. case "太平财险":
  10631. let anresult = qrCodeUrl.replace(/[\r\n]/g, "");
  10632. let animgBase64 = `data:image/png;base64,${anresult}`;
  10633. base64ToPath(animgBase64).then((path) => {
  10634. this.paycodeimg = path;
  10635. });
  10636. break;
  10637. case "华泰财险":
  10638. switch (item.apiType) {
  10639. case 1:
  10640. this.creatQrCode(qrCodeUrl);
  10641. break;
  10642. case 2:
  10643. let anresult = qrCodeUrl.replace(/[\r\n]/g, "");
  10644. let animgBase64 = `data:image/png;base64,${anresult}`;
  10645. base64ToPath(animgBase64).then((path) => {
  10646. this.paycodeimg = path;
  10647. });
  10648. break;
  10649. }
  10650. break;
  10651. case "大家财险":
  10652. switch (item.apiType) {
  10653. case 1:
  10654. this.creatQrCode(qrCodeUrl);
  10655. break;
  10656. case 2:
  10657. let anresult = qrCodeUrl.replace(/[\r\n]/g, "");
  10658. let animgBase64 = `data:image/png;base64,${anresult}`;
  10659. base64ToPath(animgBase64).then((path) => {
  10660. this.paycodeimg = path;
  10661. });
  10662. break;
  10663. }
  10664. break;
  10665. default:
  10666. this.creatQrCode(qrCodeUrl);
  10667. }
  10668. });
  10669. }
  10670. });
  10671. } else {
  10672. this.$message({ message: res.msg, type: "warning" });
  10673. }
  10674. });
  10675. },
  10676. //同步
  10677. synchronization() {
  10678. this.systartDate = this.jqstartDate;
  10679. this.syendDate = this.jqendDate;
  10680. },
  10681. add() {
  10682. this.obtainProtocol();
  10683. if (this.isLetter == "1") {
  10684. this.$router.push({ path: "/letter/letter" });
  10685. }
  10686. for (let key in this.ownerInfo) {
  10687. this.ownerInfo[key] = "";
  10688. }
  10689. for (let key in this.policyHolderInfo) {
  10690. this.policyHolderInfo[key] = "";
  10691. }
  10692. for (let key in this.insuredPersonInfo) {
  10693. this.insuredPersonInfo[key] = "";
  10694. }
  10695. this.vehicleAndVesselTaxForm = {
  10696. taxRelifFlag: "1",
  10697. taxpayerIdentifier: "01",
  10698. };
  10699. this.ownerInfo.provinceData = [];
  10700. this.insuredPersonInfo.provinceData = [];
  10701. this.policyHolderInfo.provinceData = [];
  10702. this.carInfo = JSON.parse(localStorage.getItem("carInfo"));
  10703. this.insureList = JSON.parse(localStorage.getItem("insureList"));
  10704. this.sychecked = false;
  10705. this.yonganchecked = false;
  10706. this.zhongmeichecked = false;
  10707. this.transferDateShow = false;
  10708. (this.tbczcarShow = true), //投保人同车主
  10709. // this.bbczcarShow = false, //被保人同车主
  10710. (this.bbtbcarShow = true), //被保人同投保人
  10711. // this.$refs.imageDialog.emptyList()
  10712. this.imageList1 = [];
  10713. this.imageList2 = [];
  10714. this.imageList3 = [];
  10715. this.imageList4 = [];
  10716. this.imageList5 = [];
  10717. this.imageList6 = [];
  10718. this.imgList1 = [];
  10719. this.imgList2 = [];
  10720. this.imgList3 = [];
  10721. this.imgList4 = [];
  10722. this.imgList5 = [];
  10723. this.imgList6 = [];
  10724. this.imgList7 = [];
  10725. this.imgList8 = [];
  10726. this.imgList9 = [];
  10727. this.imgList10 = [];
  10728. this.imgList11 = [];
  10729. this.imgList12 = [];
  10730. this.imgList13 = [];
  10731. this.imgList14 = [];
  10732. this.imgList15 = [];
  10733. this.imgList16 = [];
  10734. this.imgList17 = [];
  10735. this.imgList18 = [];
  10736. this.imgList19 = [];
  10737. this.imgList20 = [];
  10738. this.imgList21 = [];
  10739. this.imgList22 = [];
  10740. this.imgList23 = [];
  10741. this.imgList24 = [];
  10742. // 清空保险公司选中的意外险
  10743. this.zijintemplateSelection = "";
  10744. this.zhongantemplateSelection = "";
  10745. this.hengbangtemplateSelection = "";
  10746. this.chengtaitemplateSelection = "";
  10747. this.taipingtemplateSelection = "";
  10748. this.insuranceHN = "";
  10749. this.renshoutemplateSelection = "";
  10750. this.dajiatemplateSelection = "";
  10751. this.accidentForm = {
  10752. fen: "1",
  10753. premium: 0,
  10754. };
  10755. this.accidentFormHN = {
  10756. allQuantity: "1",
  10757. quantity: "1",
  10758. };
  10759. this.hengbangaccidentalDrivingVo = {};
  10760. this.huanongaccidentalDrivingVo = {};
  10761. this.taipingaccidentalDrivingVo = {};
  10762. this.zhongmeiaccidentalDrivingVo = {};
  10763. this.accidentalDrivingVo = [];
  10764. this.zhonganaccidentalDrivingVo = {};
  10765. this.renshouaccidentalDrivingVo = {};
  10766. this.anshengaccidentalDrivingVo = {};
  10767. this.dajiaaccidentalDrivingVo = {};
  10768. // this.selectedOptions1 = [];
  10769. // this.selectedOptions2 = [];
  10770. // this.selectedOptions3 = [];
  10771. this.orderno = "";
  10772. this.quoteno = "";
  10773. this.lastCompanyId = "";
  10774. this.HistoryList = [];
  10775. this.jqstartDate = this.transformTime1();
  10776. this.jqendDate = this.oneYearPast1(this.jqstartDate);
  10777. this.systartDate = this.transformTime1();
  10778. this.syendDate = this.oneYearPast1(this.jqstartDate);
  10779. this.policyNumberForm = {
  10780. jqpolicyno: "",
  10781. sypolicyno: "",
  10782. jypolicyno: "",
  10783. jqpremium: "",
  10784. sypremium: "",
  10785. jypremium: "",
  10786. taxamount: "",
  10787. commissionFeevalue: "",
  10788. otherFeevalue: "",
  10789. jqSuperviseCostsProportion: "",
  10790. sySuperviseCostsProportion: "",
  10791. noSuperviseCostsProportion: "",
  10792. jqOtherCostsProportion: "",
  10793. syOtherCostsProportion: "",
  10794. noOtherCostsProportion: "",
  10795. jqReceivableProportion: "",
  10796. syReceivableProportion: "",
  10797. noReceivableProportion: "",
  10798. jqPolicyList: [],
  10799. syPolicyList: [],
  10800. jqSignList: [],
  10801. noPolicyList: [],
  10802. noCostsProportion: '',
  10803. jqCostsProportion: '',
  10804. syCostsProportion: '',
  10805. };
  10806. //清空保险公司列表数据 add by hxl
  10807. this.companyName ="";
  10808. this.isLetter3agreementId="";
  10809. this.costFlag="";
  10810. this.nowCostsId ="";
  10811. this.isInquiryNowDisable = false
  10812. this.isInquirySelectFlag = true;
  10813. this.inquiryNowList = [];
  10814. //清空费用
  10815. this.policyNumberForm.jqCostsProportion = "";
  10816. this.policyNumberForm.noCostsProportion = "";
  10817. this.policyNumberForm.syCostsProportion = "";
  10818. this.$route.query.data =null;
  10819. },
  10820. toChinesNum(num) {
  10821. if (num.toString().length == 4) {
  10822. let overQian = Math.floor(num / 1000);
  10823. let result = overQian + "千";
  10824. return result;
  10825. } else {
  10826. let overWan = Math.floor(num / 10000);
  10827. let result = overWan + "万";
  10828. return result;
  10829. }
  10830. },
  10831. reportDrop(event) {
  10832. event.preventDefault();
  10833. event.stopPropagation();
  10834. },
  10835. tabLiScroll(id, idx) {
  10836. this.tabLiIndex = idx;
  10837. document.getElementById(id).scrollIntoView({ behavior: "smooth" });
  10838. },
  10839. handleScroll(id) {
  10840. document.getElementById(id).scrollIntoView({ behavior: "smooth" });
  10841. },
  10842. },
  10843. };
  10844. </script>
  10845. <style>
  10846. /* .customNotifyClass {
  10847. word-break: break-all;
  10848. width: 600px;
  10849. } */
  10850. </style>
  10851. <style lang="scss" scoped>
  10852. .marginL {
  10853. margin-left: 10px;
  10854. }
  10855. .el-notification {
  10856. width: 600px;
  10857. }
  10858. .styleB .el-upload--picture-card {
  10859. // display: none;
  10860. opacity: 0;
  10861. }
  10862. .ORcodebody {
  10863. height: auto;
  10864. background-color: #fff;
  10865. //background: url(../../../assets/image/group.png) #fff;
  10866. padding: 16px;
  10867. }
  10868. .csstool {
  10869. font-weight: 600;
  10870. color: #606266;
  10871. font-size: 14px;
  10872. margin: 0 20px;
  10873. span {
  10874. margin-right: 5px;
  10875. }
  10876. }
  10877. .ORcode {
  10878. width: 100%;
  10879. height: auto;
  10880. display: flex;
  10881. justify-content: center;
  10882. align-items: center;
  10883. padding: 30px;
  10884. box-sizing: border-box;
  10885. &>div {
  10886. width: 176px;
  10887. height: 176px;
  10888. border: 1px solid var(--themeColor);
  10889. border-radius: 5px;
  10890. }
  10891. }
  10892. .ORtitle {
  10893. width: 100%;
  10894. padding-bottom: 20px;
  10895. box-sizing: border-box;
  10896. &>div {
  10897. width: 100%;
  10898. margin: 10px 0;
  10899. font-size: 14px;
  10900. &>span {
  10901. &:nth-child(1) {
  10902. color: #868b98;
  10903. text-align: end;
  10904. width: 150px;
  10905. }
  10906. &:nth-child(2) {
  10907. color: #333333;
  10908. }
  10909. }
  10910. }
  10911. }
  10912. .Risk {
  10913. width: 100%;
  10914. height: auto;
  10915. display: flex;
  10916. flex-direction: column;
  10917. align-items: center;
  10918. font-size: 12px;
  10919. }
  10920. .dis {
  10921. display: flex;
  10922. }
  10923. .align {
  10924. align-items: center;
  10925. }
  10926. .jus {
  10927. justify-content: space-between;
  10928. }
  10929. .shangyexian {
  10930. padding-left: 100px;
  10931. }
  10932. .headertotal {
  10933. padding: 30px;
  10934. }
  10935. .my-label {
  10936. background: #e1f3d8;
  10937. }
  10938. .my-content {
  10939. background: #fde2e2;
  10940. color: aqua;
  10941. }
  10942. .el-button--mini {
  10943. padding: 5px;
  10944. }
  10945. #qqq {
  10946. background-color: #111;
  10947. width: 300px;
  10948. height: 300px;
  10949. margin: 0 auto;
  10950. position: relative;
  10951. }
  10952. #qrCode {
  10953. display: inline-block;
  10954. margin: 0 auto;
  10955. position: relative;
  10956. top: 15%;
  10957. img {
  10958. width: 200px;
  10959. height: 200px;
  10960. background-color: #fff;
  10961. padding: 6px;
  10962. }
  10963. }
  10964. .code {
  10965. box-sizing: border-box;
  10966. display: flex;
  10967. flex-direction: column;
  10968. justify-content: space-between;
  10969. align-items: center;
  10970. &>span {
  10971. margin-bottom: 10px;
  10972. }
  10973. }
  10974. .code_name {
  10975. width: 350px;
  10976. display: flex;
  10977. justify-content: space-between;
  10978. align-items: center;
  10979. font-weight: bold;
  10980. &>span {
  10981. &:nth-child(1) {
  10982. color: #979797;
  10983. width: 120px;
  10984. text-align: right;
  10985. }
  10986. &:nth-child(2) {
  10987. color: #2d2d2d;
  10988. width: 120px;
  10989. text-align: left;
  10990. }
  10991. }
  10992. }
  10993. .header {
  10994. font-size: 18px;
  10995. font-weight: bold;
  10996. }
  10997. .body {
  10998. border-top: none;
  10999. padding-bottom: 100px;
  11000. box-sizing: border-box;
  11001. }
  11002. .u-f-ac {
  11003. -webkit-box-align: center;
  11004. align-items: center;
  11005. padding: 10px;
  11006. }
  11007. .bodyTitle {
  11008. height: 45px;
  11009. background: #f3f3f3;
  11010. border: 1px solid #dddddd;
  11011. line-height: 45px;
  11012. padding: 0 20px;
  11013. box-sizing: border-box;
  11014. }
  11015. .start {
  11016. justify-content: flex-start;
  11017. }
  11018. .end {
  11019. justify-content: flex-end;
  11020. }
  11021. .descriptions {
  11022. padding: 20px;
  11023. box-sizing: border-box;
  11024. display: flex;
  11025. flex-direction: column;
  11026. }
  11027. .bodys {
  11028. display: flex;
  11029. justify-content: space-between;
  11030. align-items: center;
  11031. flex-wrap: wrap;
  11032. }
  11033. .bodys1 {
  11034. display: flex;
  11035. justify-content: center;
  11036. align-items: center;
  11037. flex-wrap: wrap;
  11038. }
  11039. .widths {
  11040. width: 230px;
  11041. }
  11042. .widths1 {
  11043. width: 300px;
  11044. }
  11045. .back {
  11046. color: #333333;
  11047. // font-weight: 700;
  11048. }
  11049. .home {
  11050. // padding-left: 10px;
  11051. box-sizing: border-box;
  11052. padding-bottom: 10px;
  11053. border-bottom: 1px solid #eef1f6;
  11054. &>span {
  11055. margin-right: 10px;
  11056. }
  11057. }
  11058. .hovers {
  11059. margin: 10px 0;
  11060. cursor: pointer;
  11061. padding: 10px 0;
  11062. box-sizing: border-box;
  11063. border-bottom: 1px solid #f2f2f2;
  11064. .offer-time {
  11065. margin: 20px 0 0px 100px;
  11066. padding: 10px;
  11067. background: rgba(45, 77, 137, 0.06);
  11068. &>span {
  11069. margin: 0 10px;
  11070. }
  11071. }
  11072. }
  11073. /* 内容待定 */
  11074. .coll {
  11075. font-size: 14px;
  11076. }
  11077. .display {
  11078. display: flex;
  11079. justify-content: center;
  11080. align-items: center;
  11081. box-sizing: border-box;
  11082. }
  11083. .black {
  11084. color: #000;
  11085. }
  11086. .gray {
  11087. color: #999;
  11088. }
  11089. .OCR {
  11090. font-weight: bold;
  11091. color: #333;
  11092. margin: 20px;
  11093. }
  11094. .slot {
  11095. position: absolute;
  11096. width: 100%;
  11097. height: 100%;
  11098. left: 0;
  11099. top: 0;
  11100. cursor: default;
  11101. text-align: center;
  11102. color: #fff;
  11103. opacity: 0;
  11104. font-size: 20px;
  11105. background-color: rgba(0, 0, 0, 0.5);
  11106. transition: opacity 0.3s;
  11107. display: flex;
  11108. justify-content: center;
  11109. align-items: center;
  11110. &>i {
  11111. margin: 10px;
  11112. color: #fff;
  11113. font-size: 30px;
  11114. font-weight: bold;
  11115. cursor: pointer;
  11116. }
  11117. &:hover {
  11118. opacity: 1;
  11119. }
  11120. }
  11121. .companyhead {
  11122. width: 100%;
  11123. margin: 0 auto;
  11124. padding: 15px 10px;
  11125. color: #333;
  11126. font-weight: bold;
  11127. font-size: 14px;
  11128. background-color: #f7f7f9;
  11129. }
  11130. .position-left {
  11131. width: calc(100% - 220px);
  11132. }
  11133. .position-collapse-left {
  11134. width: calc(100% - 80px);
  11135. }
  11136. .footer {
  11137. position: fixed;
  11138. bottom: 0;
  11139. right: 0;
  11140. background-color: #fff;
  11141. z-index: 9;
  11142. padding: 20px;
  11143. box-sizing: border-box;
  11144. box-shadow: 0 0 1px 0 #ccc;
  11145. transition: all 0.1s, box-shadow 0.5s;
  11146. &.shadow {
  11147. box-shadow: 0 -10px 10px -10px #ccc;
  11148. }
  11149. }
  11150. .Enclosure {
  11151. width: 100%;
  11152. background-color: #fff;
  11153. padding: 20px;
  11154. box-sizing: border-box;
  11155. margin-bottom: 15px;
  11156. border-radius: 6px;
  11157. border: 1px solid #ebeef5;
  11158. transition: all 0.2s ease-in-out;
  11159. box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
  11160. }
  11161. .icon-img {
  11162. display: block;
  11163. width: 30px;
  11164. height: 30px;
  11165. }
  11166. .Anchor-link {
  11167. width: 40px;
  11168. background-color: #fff;
  11169. box-shadow: #ccc 0 0px 3px 0;
  11170. border-radius: 6px;
  11171. position: fixed;
  11172. top: 50%;
  11173. right: 0;
  11174. z-index: 99;
  11175. div {
  11176. margin: 5px;
  11177. border-bottom: 1px solid #f2f2f2;
  11178. cursor: pointer;
  11179. display: block;
  11180. }
  11181. }
  11182. .color {
  11183. padding-top: 150px;
  11184. margin-top: -150px;
  11185. }
  11186. .more {
  11187. width: 100%;
  11188. padding: 20px;
  11189. box-sizing: border-box;
  11190. }
  11191. .more-title {
  11192. padding: 15px 10px;
  11193. background-color: #f7f7f9;
  11194. // border-bottom: 1px solid #e3e3e3;
  11195. font-size: 14px;
  11196. }
  11197. .more-data {
  11198. padding: 10px;
  11199. border-bottom: 1px solid #f2f2f2;
  11200. color: #d42426;
  11201. font-size: 14px;
  11202. }
  11203. .Driving-risk {
  11204. padding-left: 100px;
  11205. // padding-top:20px
  11206. }
  11207. .checkbox {
  11208. transform: scale(1.2);
  11209. margin-right: 20px;
  11210. line-height: 32px;
  11211. }
  11212. .insure-long-term {
  11213. display: inline-flex;
  11214. padding-left: 8px;
  11215. padding-right: 8px;
  11216. background: var(--themeColor);
  11217. color: #fff;
  11218. font-size: 12px;
  11219. margin-left: -5px;
  11220. border-radius: 0px 5px 5px 0px;
  11221. cursor: pointer;
  11222. }
  11223. .textareaSty {
  11224. width: 160px;
  11225. height: 210px;
  11226. border: 1px solid #d2d2d2;
  11227. border-radius: 4px;
  11228. img {
  11229. width: 50px;
  11230. height: 50px;
  11231. }
  11232. }
  11233. .image-title {
  11234. width: 100px;
  11235. height: 30px;
  11236. color: #fff;
  11237. text-align: center;
  11238. line-height: 30px;
  11239. font-weight: bold;
  11240. margin-bottom: 15px;
  11241. background: #fc4a1a;
  11242. background: #f2994a;
  11243. /* fallback for old browsers */
  11244. background: -webkit-linear-gradient(to left, #f2c94c, #f2994a);
  11245. /* Chrome 10-25, Safari 5.1-6 */
  11246. background: linear-gradient(to left, #f2c94c, #f2994a);
  11247. /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
  11248. }
  11249. .aaa {
  11250. /deep/ {
  11251. margin-bottom: 20px;
  11252. margin-right: 30px;
  11253. span {
  11254. display: inline-block;
  11255. margin-bottom: 10px;
  11256. }
  11257. .el-upload .el-upload-dragger {
  11258. width: 180px;
  11259. height: 120px;
  11260. border: 1px dashed #c0ccda;
  11261. padding: 0;
  11262. }
  11263. .el-upload-list--picture-card .el-upload-list__item {
  11264. width: 180px;
  11265. height: 120px;
  11266. }
  11267. .el-upload-list__item:first-child {
  11268. margin-top: 0;
  11269. }
  11270. .el-upload--picture-card {
  11271. width: 180px;
  11272. height: 120px;
  11273. }
  11274. .el-upload-list__item {
  11275. width: 180px;
  11276. height: 120px;
  11277. margin: 0 !important;
  11278. display: block !important;
  11279. }
  11280. .el-upload-list--picture-card .el-upload-list__item-thumbnail {
  11281. width: 180px;
  11282. height: 120px;
  11283. }
  11284. }
  11285. }
  11286. .jyxStyle>span {
  11287. display: inline-block;
  11288. text-align: center;
  11289. }
  11290. .tab-style {
  11291. width: 120px;
  11292. li {
  11293. text-align: right;
  11294. padding-right: 20px;
  11295. line-height: 40px;
  11296. cursor: pointer;
  11297. box-sizing: border-box;
  11298. border-right: 1px solid #e2e5eb;
  11299. }
  11300. li:focus {
  11301. background: rgba(212, 36, 38, 0.1);
  11302. border-right: 2px solid var(--themeColor);
  11303. color: var(--themeColor);
  11304. }
  11305. }
  11306. .tabLi-style {
  11307. background: rgba(212, 36, 38, 0.1);
  11308. border-right: 2px solid var(--themeColor);
  11309. color: var(--themeColor);
  11310. }
  11311. .scan-code {
  11312. div {
  11313. margin-top: 10px;
  11314. }
  11315. }
  11316. /* 清除图片上传动画bug */
  11317. /deep/ {
  11318. .proSaomazhifucodeClass .el-dialog__header {
  11319. background: rgba(45, 77, 137, 0.1);
  11320. font-weight: bold;
  11321. }
  11322. .proSaomazhifucodeClass .el-dialog__footer {
  11323. border-top: 1px solid #eef1f6;
  11324. }
  11325. .el-upload-list__item {
  11326. transition: none !important;
  11327. }
  11328. .el-checkbox__input {
  11329. &.is-checked {
  11330. .el-checkbox__inner {
  11331. background-color: #d42426;
  11332. border-color: #d42426;
  11333. }
  11334. }
  11335. }
  11336. .el-checkbox__inner {
  11337. border: 1px solid var(--themeColor);
  11338. &:hover {
  11339. border-color: var(--themeColorHover);
  11340. }
  11341. &:focus {
  11342. border-color: var(--themeColor);
  11343. }
  11344. }
  11345. .el-upload .el-upload-dragger {
  11346. height: 250px;
  11347. width: 400px;
  11348. border: 1px dashed #ced4da;
  11349. }
  11350. // .el-button--warning {
  11351. // color: #fff;
  11352. // background-color: #D42426;
  11353. // border-color: #D42426;
  11354. // &:hover {
  11355. // color: #fff;
  11356. // background-color: #ee6f00ce;
  11357. // border-color: #ee6f00ce;
  11358. // }
  11359. // }
  11360. .el-descriptions-item__label {
  11361. &:not(.is-bordered-label) {
  11362. color: #333;
  11363. }
  11364. }
  11365. // .el-radio__input.is-checked + .el-radio__label {
  11366. // color: #ff7000;
  11367. // }
  11368. // .el-radio__input.is-checked .el-radio__inner {
  11369. // border-color: #ff7000;
  11370. // background: #ff7000;
  11371. // }
  11372. // .el-radio__inner {
  11373. // &:hover {
  11374. // border-color: #ff7000;
  11375. // }
  11376. // }
  11377. // .el-input--small .el-icon-date {
  11378. // color: #ee6f00ce;
  11379. // }
  11380. .el-select {
  11381. width: 100%;
  11382. }
  11383. .el-date-editor.el-input {
  11384. width: 100%;
  11385. }
  11386. .el-cascader--small {
  11387. width: 100%;
  11388. }
  11389. .styleB {
  11390. height: 128px;
  11391. }
  11392. .styleB .el-upload--picture-card {
  11393. display: none;
  11394. }
  11395. .saomazhifucodeClass .el-dialog__body,
  11396. .saomazhifucodeClass .el-dialog__header,
  11397. .saomazhifucodeClass .el-dialog__footer {
  11398. padding: 0;
  11399. background: #f4e9e9;
  11400. }
  11401. .saomazhifucodeClass .el-dialog__body {
  11402. padding: 15px;
  11403. }
  11404. .saomazhifucodeClass .el-dialog__footer {
  11405. background: #f4e9e9;
  11406. padding-bottom: 15px;
  11407. }
  11408. .saomazhifucodeClass .el-dialog__headerbtn {
  11409. margin-top: 10px;
  11410. }
  11411. .zmDriving {
  11412. thead .el-table-column--selection .cell {
  11413. display: none !important;
  11414. }
  11415. }
  11416. .synchronous {
  11417. width: 75px;
  11418. height: 45px;
  11419. line-height: 45px;
  11420. color: #fff;
  11421. cursor: pointer;
  11422. background: url(../../../../src/icon/Union2.png) no-repeat 100%;
  11423. }
  11424. .synchronous:hover {
  11425. background: url(../../../../src/icon/Union1.png) no-repeat 100%;
  11426. }
  11427. .line_style {
  11428. margin-top: 20px;
  11429. }
  11430. .el-input-group__append {
  11431. vertical-align: baseline;
  11432. }
  11433. .pinganTable .el-table__header-wrapper .el-checkbox {
  11434. display: none;
  11435. }
  11436. }
  11437. </style>