123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528 |
- <!-- 领导首页 -->
- <template>
- <div class="sj-container">
- <!--头部 开始-->
- <div class="header">
- <div class="head-left">
- <img src="../assets/images/leader-logo1.png" style="cursor: pointer" @click="toHome" />
- <el-select v-model="place" size="small" placeholder="请选择" class="select" :popper-append-to-body="false"
- @focus="out" disabled>
- <el-option v-for="item in placeList" :key="item.value" :label="item.label" :value="item.value">
- </el-option>
- </el-select>
- <el-select v-model="dept" :disabled="userDeptId != 365" size="small" placeholder="请选择" class="select2"
- :popper-append-to-body="false" @focus="out" @change="getByDeptId">
- <el-option v-for="item in deptList" :key="item.value" :label="item.label" :value="item.value">
- </el-option>
- </el-select>
- </div>
- <div class="head-center" @click="titleClick">
- <span>{{ headerTitle }}</span>
- </div>
- <div class="head-right">
- <div class="head-time">
- <!-- 风向 -->
- <span><i class="head-fx"></i>
- <span style="margin-right: 0" v-if="!weatherinformationDirection">风向</span>
- <span style="margin-right: 0" v-if="weatherinformationDirection == 1">东风</span>
- <span style="margin-right: 0" v-if="weatherinformationDirection == 2">东南风</span>
- <span style="margin-right: 0" v-if="weatherinformationDirection == 3">南风</span>
- <span style="margin-right: 0" v-if="weatherinformationDirection == 4">西南风</span>
- <span style="margin-right: 0" v-if="weatherinformationDirection == 5">西风</span>
- <span style="margin-right: 0" v-if="weatherinformationDirection == 6">西北风</span>
- <span style="margin-right: 0" v-if="weatherinformationDirection == 7">西北风</span>
- <span style="margin-right: 0" v-if="weatherinformationDirection == 8">西北风</span>
- </span>
- <!-- 风速 -->
- <span><i class="head-fs"></i>{{ weatherinformationPower}}<u>m/s</u></span>
- <span><i class="head-jsl"></i>{{ weatherinformationTemperature}}<u>%</u></span>
- <span><i class="head-wd"></i>{{ weatherinformationLow }}-{{weatherinformationHigh}}<u>℃</u></span>
- <span class="timer"> {{ nowTime }}</span>
- <VfastMenu></VfastMenu>
- </div>
- </div>
- </div>
- <!--头部 结束-->
- <!--地图 开始-->
- <div class="map">
- <supermap ref="supermap" style="width: 100%; height: 100vh" @fatherMethod="fatherMethod" @preview="preview"
- @showEventDialog="showEventDialog" @jump="jump" @sewageOutletClick="sewageOutletClick"
- @sewageOutletClickfarming="sewageOutletClickfarming" @setPositioning="setPositioning"></supermap>
- </div>
- <!--地图 结束-->
- <!--左侧 开始-->
- <div class="con-left" ref="leftBar">
- <!-- 首页初始左模块开始 -->
- <div class="side-show-container" v-show="sideShowHome">
- <!-- 实时关注 -->
- <div class="con1 con-div" :style="{
- border: this.showModal ? '1px solid #00ffde !important' : '',
- }" @click="fn1()" id="box1">
- <div class="con-tit">
- <a><i></i><b>实时关注</b></a>
- <span><i class="tit_fire"></i>防火季</span>
- </div>
- <div class="cont ssgz">
- <div class="cont-top1 cont-top">
- <img src="../assets/images/leader-icon5.png" />
- <p>
- 火情发生<b>{{ interestTotal }}</b>起
- </p>
- <a>分析报告</a>
- </div>
- <div class="conChart1" id="conChart1"></div>
- </div>
- <dv-decoration-3 class="head-di" :color="['#02a3e9']" />
- </div>
- <!-- 事件统计 -->
- <div class="con3 con-div" :style="{
- border: this.showModa3 ? '1px solid #00ffde !important' : '',
- }" @click="fn3()" id="box3">
- <div class="con-tit">
- <a><i></i><b>事件统计</b></a>
- </div>
- <div class="cont sstj2 cont-np">
- <div class="cont-top2 cont-top">
- <span>待处理<b>{{ eventStatistics.untreatedNum }}</b></span>
- <span>总数<b>{{ eventStatistics.totalNum }}</b></span>
- <span>已处理<b>{{ eventStatistics.processedNum }}</b></span>
- </div>
- <div class="conChart3" id="conChart3"></div>
- </div>
- <dv-decoration-3 class="head-di" :color="['#02a3e9']" />
- </div>
- <!-- 一网通办 -->
- <div class="con6 con-div" :style="{
- border: this.showModa4 ? '1px solid #00ffde !important' : '',
- }" @click="fn4()" id="box4">
- <div class="con-tit">
- <a><i></i><b>一网通办</b></a>
- </div>
- <div class="cont ywtb">
- <div class="cont-top4 cont-top">
- <div class="cont-row">
- <div class="c-left">
- <p>
- 前日大厅办件总数<b>{{
- networkprocessingData.previousDayHallProcessingTotalNumber
- }}</b>
- </p>
- <p>
- 今日大厅办件总数<b>{{
- networkprocessingData.hallProcessingTotalNumber
- }}</b>
- </p>
- </div>
- <div class="c-right">
- <i class="ss" v-if="networkprocessingData.upDown >= 0"></i>
- <i class="xj" v-else></i>
- <div class="c-txt">
- <p>昨日同比</p>
- <b>{{ Math.abs(networkprocessingData.upDown) }}%</b>
- </div>
- </div>
- </div>
- <div class="cont-com">
- <div class="con-txt">
- <h5>
- <b>{{
- networkprocessingData.legalPersonProcessingNumber
- }}</b>
- <p>年度法人办件数</p>
- </h5>
- <h5>
- <b>{{
- networkprocessingData.legalPersonCompletionNumber
- }}</b>
- <p>年度法人办结数</p>
- </h5>
- <h5>
- <h6>
- 年度办结率
- {{ networkprocessingData.legalPersonCompletionRate }}
- </h6>
- </h5>
- </div>
- <div class="con-txt">
- <h5>
- <b>{{
- networkprocessingData.naturalPersonProcessingNumber
- }}</b>
- <p>年度自然人办件数</p>
- </h5>
- <h5>
- <b>{{
- networkprocessingData.naturalPersonCompletionNumber
- }}</b>
- <p>年度自然人办结数</p>
- </h5>
- <h5>
- <h6>
- 年度办结率
- {{ networkprocessingData.naturalPersonCompletionRate }}
- </h6>
- </h5>
- </div>
- </div>
- </div>
- </div>
- <dv-decoration-3 class="head-di" :color="['#02a3e9']" />
- </div>
- </div>
- <!-- 首页初始左模块结束 -->
- <!-- 视联网模块左侧树开始 -->
- <camerabar ref="cameraBar" @selectCameraByDeptId="selectCameraByDeptId" v-if="sideShowCamera" :deptId="dept">
- </camerabar>
- <!-- 视联网模块左侧树结束 -->
- <!-- 物联网模块左侧树开始 -->
- <monitorbar ref="monitorBar" @getMonitorList="getMonitorList" v-if="sideShowMonitor" :deptId="dept"></monitorbar>
- <!-- 物联网模块左侧树结束 -->
- </div>
- <!--左侧 结束-->
- <!-- 展开收起 开始-->
- <expendbutton @expandClick="expandClick" :expandValue="expandValue" ref="exb">
- </expendbutton>
- <!-- 展开收起 结束-->
- <!--右侧 开始-->
- <div class="con-right" ref="rightBar">
- <!-- 首页初始右模块开始 -->
- <div class="side-show-container" v-show="sideShowHome">
- <!-- 重点工程 -->
- <div class="con4 con-div" :style="{
- border: this.showModal6 ? '1px solid #00ffde !important' : '',
- }" id="box6">
- <div class="con-tit">
- <a><i></i><b>重点工程</b><span @click="fn6()">更多</span></a>
- </div>
- <div class="cont zdgc cont-np">
- <!-- <el-carousel :interval="5000" arrow="always" height="13rem"> -->
- <el-carousel :autoplay="false" arrow="always" height="13rem">
- <el-carousel-item v-for="(it, key) in imgList.length" :key="key">
- <div class="imgBox">
- <el-tooltip placement="left" v-for="(item, index) in imgList[key]" :key="index" popper-class="js-tps"
- :content="item.projectName">
- <div slot="content" class="leader-info-container">
- <div class="leader-info-list-con" v-if="item.projectName.length > 8">
- <h4>{{ item.projectName }}</h4>
- </div>
- </div>
- <!-- <div slot="content">{{item.name}}</div> -->
- <span @click="fn5(item, 1)">
- {{ item.projectName | ellipsisFont8 }}
- </span>
- </el-tooltip>
- <img src="../assets/images/leader-logo3.png" class="leader-logo" />
- </div>
- </el-carousel-item>
- </el-carousel>
- </div>
- <dv-decoration-3 class="head-di" :color="['#02a3e9']" />
- </div>
- <!-- 四长统计 -->
- <div class="con2 con-div" :style="{
- border: this.showModa2 ? '1px solid #00ffde !important' : '',
- }" @click="fn2()" id="box2">
- <div class="con-tit">
- <a><i></i><b>四长概况</b></a>
- </div>
- <div class="cont sstj">
- <div class="cont-top1 cont-top">
- <img src="../assets/images/leader-icon9.png" />
- <p>
- 四长总人数<b>{{ fourLengthStatistics.TotalNumberofPeople }}</b>人
- </p>
- <a>结构分析</a>
- </div>
- <div class="conChart2" id="fourLeaders"></div>
- </div>
- <dv-decoration-3 class="head-di" :color="['#02a3e9']" />
- </div>
- <!-- 重点区域 -->
- <div class="con5 con-div" :style="{
- border: this.showModal7 ? '1px solid #00ffde !important' : '',
- }" id="box7">
- <div class="con-tit">
- <a><i></i><b>重点区域</b><span @click="fn7()">更多</span></a>
- </div>
- <div class="cont zdqy">
- <el-tabs v-model="rActiveName" @tab-click="tabHandleClick">
- <el-tab-pane :label="item.areaName" v-for="(item, index) in keyAreasList" :key="index">
- <div class="con-list">
- <div class="tabList" v-for="(ite, index) in item.areaList">
- <a>
- <el-tooltip class="item" effect="dark" :content="ite.areaName" placement="top">
- <span>{{truncatedText(ite.areaName)}}</span>
- </el-tooltip>
- <u @click="fn5(ite, 2)">查看</u>
- </a>
- </div>
- </div>
- </el-tab-pane>
- </el-tabs>
- </div>
- <dv-decoration-3 class="head-di" :color="['#02a3e9']" />
- </div>
- </div>
- <!-- 首页初始右模块结束 -->
- <!-- 视联网模块右侧列表开始 -->
- <cameralist ref="cameraList" @dropLocation="dropLocation" @rightDeptName="rightDeptName" v-if="sideShowCamera"
- :visuForestCloudCameraBOListSearch="
- this.visuForestCloudCameraBOListSearch
- " :visuForestCloudCameraBOList="this.visuForestCloudCameraBOList"></cameralist>
- <!-- 视联网模块右侧列表结束 -->
- <!-- 视联网模块右侧列表开始 -->
- <monitorlist ref="monitorList" @dropLocation="dropLocation" @leftDeptName="leftDeptName" v-if="sideShowMonitor"
- :visuForestCloudMonitorBOListSearch="
- this.visuForestCloudMonitorBOListSearch
- " :visuForestCloudMonitorBOList="this.visuForestCloudMonitorBOList"></monitorlist>
- <!-- 视联网模块右侧列表结束 -->
- </div>
- <!--右侧 结束-->
- <!--底部 开始-->
- <div class="footer">
- <div class="foot-btn">
- <el-popover placement="top-start" :disabled="!sideShowCamera" v-model="visible_slw" title="摄像头类型"
- trigger="hover" popper-class="sj-layer-pop" ref="sideShowCamera">
- <el-checkbox-group v-model="cameraUseCheckList" @change="selectCameraByDeptIds(deptId)"
- style="height: 100px; overflow-y: scroll">
- <el-checkbox v-for="(item, index) in cameraUseList" :label="item.dictValue"
- :key="item.dictValue">{{ item.dictLabel }}
- </el-checkbox>
- </el-checkbox-group>
- <a class="btn1 btn" slot="reference" @click="selectDeviceType" :class="btnGetFocus1 ? 'on' : ''">
- <span><img src="../assets/images/leader-foot1.png" /><u></u><i></i></span>
- <i>视联网</i>
- </a>
- </el-popover>
- <el-popover placement="top-start" :disabled="!sideShowMonitor" v-model="visible_wlw" title="物联网类型"
- trigger="hover" popper-class="sj-layer-pop" ref="sideShowMonitor">
- <el-checkbox-group v-model="sensorCheckList" @change="getMonitorDeviceAndDataList()"
- style="height: 200px; overflow-y: scroll">
- <el-checkbox v-for="(item, index) in sensorList" :label="item.dictLabel"
- :key="item.dictLabel">{{ item.dictLabel }}
- </el-checkbox>
- </el-checkbox-group>
- <a class="btn2 btn" slot="reference" @click="getMonitorDeviceAndData()" :class="btnGetFocus2 ? 'on' : ''">
- <span><img src="../assets/images/leader-foot2.png" /><u></u><i></i></span>
- <i>物联网</i>
- </a>
- </el-popover>
- <el-popover placement="top-start" :disabled="!btnGetFocus3" v-model="visible_ygb" title="云广播类型" trigger="hover"
- popper-class="sj-layer-pop" ref="btnGetFocus3">
- <el-checkbox-group v-model="broadcastUseCheckList" @change="getDlblistBydeptIds()"
- style="height: 100px; overflow-y: scroll">
- <el-checkbox v-for="(item, index) in broadcastUseList" :label="item.dictValue"
- :key="item.dictValue">{{ item.dictLabel }}
- </el-checkbox>
- </el-checkbox-group>
- <a class="btn3 btn" slot="reference" @click="getDlblistBydeptId()" :class="btnGetFocus3 ? 'on' : ''">
- <span><img src="../assets/images/leader-foot3.png" /><u></u><i></i></span>
- <i>云广播</i>
- </a>
- </el-popover>
- <a class="btn4 btn" @click="showTVWall" :class="btnGetFocus4 ? 'on' : ''">
- <span><img src="../assets/images/leader-foot4.png" /><u></u><i></i></span>
- <i>云指挥</i>
- </a>
- </div>
- </div>
- <!--底部 结束-->
- <!--AI 机器人 开始-->
- <a class="leader-ai" @click="showDownloadList('2')">
- <img src="../assets/images/leader-ai.png" />
- </a>
- <!--AI 机器人 结束-->
- <!--图层切换 开始-->
- <div class="sj-layer-switch" ref="sjLayerSwith">
- <el-popover placement="top" title="专题" width="50" trigger="click" @show="hideClick" popper-class="sj-layer-pop">
- <el-checkbox-group v-model="layerCheckList" @change="layerCheck">
- <!-- <el-checkbox label="buildingModel" name="buildingModel"-->
- <!-- v-if="dept == '365' || dept == '373'">倾斜实景</el-checkbox>-->
- <el-checkbox label="lindi" name="lindi">林地专题</el-checkbox>
- <el-checkbox label="shuixi" ame="shuixi">水系专题</el-checkbox>
- <el-checkbox label="road" ame="road">路网专题</el-checkbox>
- <el-checkbox label="nongtian" ame="nongtian">农田专题</el-checkbox>
- </el-checkbox-group>
- <a class="leader-tcqh" slot="reference">
- <img src="../assets/images/leader-tcbg.png" />
- <p>专题</p>
- </a>
- </el-popover>
- <!--图层切换 结束-->
- <!--资源切换 开始-->
- <el-popover placement="top" title="资源" trigger="click" v-model="visible_zy" @show="hideClick"
- popper-class="sj-layer-pop">
- <div style="margin-bottom: 15px; display: flex">
- <el-select v-model="resourcesType" size="small" style="width: 140px" placeholder="请选择资源分类"
- popper-class="sj-select" :popper-append-t0o-body="false">
- <el-option v-for="dict in dict.type.camera_system" :key="dict.value" :label="dict.label" :value="dict.value"
- @click.native="getResourceType(dict.value)"></el-option>
- </el-select>
- <el-button type="primary" icon="el-icon-delete" size="normal" @click="colseClick()"
- style="margin-left: 10px; height: 32px; padding: 9px 20px">清除
- </el-button>
- </div>
- <el-checkbox-group v-model="resourcesCheckList" @change="getResourcePoint"
- style="height: 200px; overflow-y: scroll">
- <el-checkbox v-for="(item, index) in resourcesList" :label="item.type" :key="item.type">{{ item.name }}
- </el-checkbox>
- </el-checkbox-group>
- <a class="leader-tcqh" slot="reference" @click="resourcesClick" @close="resourcesClose">
- <img src="../assets/images/leader-tcbg2.png" />
- <p>资源</p>
- </a>
- </el-popover>
- <!--图层切换 结束-->
- <!--图层切换 开始-->
- <!-- <el-popover placement="top-start" title="人员" trigger="manual" @show="selectPersonnelTypeList()" v-model="pvisible" -->
- <el-popover placement="top-start" v-model="visible_tc" title="人员" trigger="click"
- @show="selectPersonnelTypeList()" popper-class="sj-layer-pop">
- <div class="gctj-tk no-icon">
- <div class="pop tbtj-row">
- <div class="ssgz-row" style="width: 100%">
- <div class="tk-con"></div>
- <div style="display: flex">
- <div class="cont-top1" style="margin-right: 15px">
- <el-select v-model="personnelVisualizationModel" size="small" placeholder="请选择可视化类型" filterable
- class="select" :popper-append-to-body="false" @change="selectPersonnelTypeList">
- <el-option v-for="dict in dict.type.camera_system" :key="dict.value" :label="dict.label"
- :value="dict.value"></el-option>
- </el-select>
- </div>
- <div class="cont-top1" style="margin-right: 15px">
- <el-select v-model="personneType" size="small" placeholder="请选择人员类型" filterable class="select"
- :popper-append-to-body="false" @change="selectPersonneList">
- <el-option v-for="dict in personneTypeList" :key="dict.jobValue" :label="dict.job"
- :value="dict.jobValue"></el-option>
- </el-select>
- </div>
- <div class="cont-top1" style="margin-right: 15px">
- <el-select v-model="personne" size="small" placeholder="请选择人员" filterable class="select"
- :popper-append-to-body="false" @change="selectPersonneTaskList">
- <el-option v-for="dict in personneList" :key="dict.userId" :label="dict.nickName"
- :value="dict.userId"></el-option>
- </el-select>
- </div>
- <div class="cont-top1" style="margin-right: 15px">
- <el-select v-model="personneTask" size="small" placeholder="请选择巡查任务" filterable class="select"
- :popper-append-to-body="false" @change="search">
- <el-option v-for="dict in personneTaskList" :key="dict.id" :label="dict.taskName" :value="dict.id"
- @click.native="getTaskTrajectory(dict)"></el-option>
- </el-select>
- </div>
- <div>
- <el-button type="primary" icon="el-icon-delete" size="normal" @click="resettings()"
- style="margin-right: 15px; height: 32px; padding: 9px 20px">清除轨迹
- </el-button>
- </div>
- </div>
- <el-table :data="personneTaskTrajectoryList" height="250" border style="width: 100%; margin-top: 0.5rem">
- <el-table-column label="开始时间" align="center" prop="beginTime" />
- <el-table-column label="结束时间" align="center" prop="endTime">
- </el-table-column>
- <el-table-column label="查询轨迹" align="center" class-name="small-padding fixed-width">
- <template slot-scope="scope">
- <el-button size="mini" type="text" @click="getTrack(scope.row.id)">
- 查询轨迹
- <!-- <i class="iconfont sj-icon-jkzx icon-sxt"></i>-->
- </el-button>
- </template>
- </el-table-column>
- </el-table>
- <pagination id="pagination1" v-show="total > 0" :total="total" :page.sync="queryParams1.pageNum"
- :limit.sync="queryParams1.pageSize" @pagination="getKeyProjects1" popper-class="sj-pagination" />
- </div>
- </div>
- <div class="ssgz-tkcom"></div>
- </div>
- <!-- <a class="leader-tcqh" slot="reference" @click="pvisible=!pvisible"> -->
- <a class="leader-tcqh" slot="reference">
- <img src="../assets/images/leader-tcbg3.png" />
- <p>人员</p>
- </a>
- </el-popover>
- <el-popover placement="bottom" v-model="visible_dw" title="定位" trigger="manual" popper-class="sj-layer-pop">
- <span class="tk-close el-icon-close" style="right: 0.5rem;top: 0.5rem;" @click="getLocation(1)"></span>
- 经度: <el-input placeholder="请输入经度" style="width: 200px;" v-model="positioning.lon" clearable></el-input><br><br>
- 纬度: <el-input placeholder="请输入纬度" style="width: 200px;" v-model="positioning.lat" clearable></el-input><br><br>
- <el-button type="primary" size="mini" style="width:100%; float: right;cursor: pointer;"
- @click="lonAndLatQueryCamera">查询附近摄像头</el-button>
- <a class="leader-tcqh" slot="reference" @click="getLocation(1)">
- <img src="../assets/images/leader-tcbg4.png" />
- <p>定位</p>
- </a>
- </el-popover>
- <el-popover placement="bottom" v-if="dept == '365' || dept == '373'" title="实景" trigger="manual"
- popper-class="sj-layer-pop">
- <a class="leader-tcqh" slot="reference" @click="openLiveAction()">
- <img src="../assets/images/leader-tcbg5.png" />
- <p>实景</p>
- </a>
- </el-popover>
- <!--图层切换 结束-->
- </div>
- <!--实时关注弹框 开始-->
- <div id="leader-tkbg" v-show="showModal">
- <span @click="showModal = false" class="tk-close el-icon-close"></span>
- <div class="pop ssgz-tk">
- <div class="ssgz-tkcom">
- <div class="ssgz-row">
- <div class="tk-con">
- <p class="tk-tit">起火原因统计(年度)</p>
- <div id="tkCharts1"></div>
- </div>
- <div class="tk-con">
- <p class="tk-tit">起火场所统计(年度)</p>
- <div id="tkCharts3"></div>
- </div>
- </div>
- <div class="ssgz-row2">
- <div class="tk-con">
- <p class="tk-tit">当前防火季火灾损失统计(年度)</p>
- <div class="tk-top">
- <p>
- <img src="../assets/images/leader-tk3.png" /><span>火灾损失总价值</span><u>{{ lossCount }}万元</u>
- </p>
- <p>
- <img src="../assets/images/leader-tk2.png" /><span>扑火费用总支出</span><u>{{ blazesCount }}万元</u>
- </p>
- </div>
- <div id="tkCharts2"></div>
- </div>
- <div class="tk-con">
- <p class="tk-tit">防火季火灾发生情况(年度)</p>
- <div id="tkCharts4"></div>
- </div>
- </div>
- </div>
- <div class="ssgz-tkcom"></div>
- </div>
- </div>
- <!--实时关注弹框 结束-->
- <!--四长统计弹框 开始-->
- <div id="leader-tkbg2" v-show="showModa2">
- <span @click="showModa2 = false" class="tk-close el-icon-close"></span>
- <div class="pop sztj-tk">
- <div class="sztj-row">
- <div class="sztj-div1">
- <p class="tk-tit">四长结构</p>
- <el-tabs v-model="szActiveName" @tab-click="szHandleClick" style="margin-top: 1rem">
- <el-tab-pane label="林长" name="lin">
- <div class="cont-top1 cont-top">
- <el-input v-model="linName" placeholder="请输入部门名称" prefix-icon="el-icon-search"
- style="line-height: 2rem; margin-top: 15px" />
- </div>
- <div class="sztj-1-con">
- <el-tree :data="data" :props="defaultProps" accordion node-key="id" ref="treeLin"
- :default-expanded-keys="expandedKeys" :filter-node-method="filterNode"
- @node-click="handleNodeClick">
- <template slot-scope="{ node, data }">
- <el-tooltip effect="dark" :content="data.title" placement="right" popper-class="js-tps"
- :visible-arrow="false">
- <div slot="content" class="leader-info-container">
- <div class="leader-info-list-con" v-for="(item, index) in data.title" :key="index">
- <h4>职务:{{ item.position }}</h4>
- <h4>姓名:{{ item.name }}</h4>
- <h4 v-if="item.phone != undefined">
- 电话:{{ item.phone }}
- </h4>
- </div>
- </div>
- <span class="leader-info-container-right">{{
- node.label
- }}</span>
- </el-tooltip>
- </template>
- </el-tree>
- </div>
- </el-tab-pane>
- <el-tab-pane label="田长" name="tian">
- <div class="cont-top1 cont-top">
- <el-input v-model="tianName" placeholder="请输入部门名称" prefix-icon="el-icon-search"
- style="line-height: 2rem; margin-top: 15px" />
- </div>
- <div class="sztj-1-con">
- <el-tree :data="data" :props="defaultProps" accordion node-key="id"
- :default-expanded-keys="expandedKeys" ref="treeTian" :filter-node-method="filterNode"
- @node-click="handleNodeClick">
- <template slot-scope="{ node, data }">
- <el-tooltip effect="dark" :content="data.title" placement="right" popper-class="js-tps"
- :visible-arrow="false">
- <div slot="content" class="leader-info-container">
- <div class="leader-info-list-con" v-for="(item, index) in data.title" :key="index">
- <h4>职务:{{ item.position }}</h4>
- <h4>姓名:{{ item.name }}</h4>
- <h4 v-if="item.phone != undefined">
- 电话:{{ item.phone }}
- </h4>
- </div>
- </div>
- <span class="leader-info-container-right">{{
- node.label
- }}</span>
- </el-tooltip>
- </template>
- </el-tree>
- </div>
- </el-tab-pane>
- <el-tab-pane label="路长" name="lu">
- <div class="cont-top1 cont-top">
- <el-input v-model="luName" placeholder="请输入部门名称" prefix-icon="el-icon-search"
- style="line-height: 2rem; margin-top: 15px" />
- </div>
- <div class="sztj-1-con">
- <el-tree :data="data" :props="defaultProps" :default-expanded-keys="expandedKeys" accordion
- node-key="id" ref="treeLu" :filter-node-method="filterNode" @node-click="handleNodeClick">
- <template slot-scope="{ node, data }">
- <el-tooltip effect="dark" placement="right" popper-class="js-tps" :visible-arrow="false">
- <div slot="content" class="leader-info-container">
- <div class="leader-info-list-con" v-for="(item, index) in data.title" :key="index">
- <h4>职务:{{ item.position }}</h4>
- <h4>姓名:{{ item.name }}</h4>
- <h4 v-if="item.phone != undefined">
- 电话:{{ item.phone }}
- </h4>
- </div>
- </div>
- <span class="leader-info-container-right">{{
- node.label
- }}</span>
- </el-tooltip>
- </template>
- </el-tree>
- </div>
- </el-tab-pane>
- <el-tab-pane label="河长" name="he">
- <div class="cont-top1 cont-top">
- <el-input v-model="heName" placeholder="请输入部门名称" prefix-icon="el-icon-search"
- style="line-height: 2rem; margin-top: 15px" />
- </div>
- <div class="sztj-1-con">
- <el-tree :data="data" :props="defaultProps" :default-expanded-keys="expandedKeys" accordion
- node-key="id" ref="treeHe" :filter-node-method="filterNode" @node-click="handleNodeClick">
- <template slot-scope="{ node, data }">
- <el-tooltip effect="dark" placement="right" popper-class="js-tps" :visible-arrow="false">
- <div slot="content" class="leader-info-container">
- <div class="leader-info-list-con" v-for="(item, index) in data.title" :key="index">
- <h4>职务:{{ item.position }}</h4>
- <h4>姓名:{{ item.name }}</h4>
- <h4 v-if="item.phone != undefined">
- 电话:{{ item.phone }}
- </h4>
- </div>
- </div>
- <span class="leader-info-container-right">{{
- node.label
- }}</span>
- </el-tooltip>
- </template>
- </el-tree>
- </div>
- </el-tab-pane>
- </el-tabs>
- </div>
- <div class="sztj-div3">
- <p class="tk-tit">巡护计划完成度</p>
- <div id="szCharts2"></div>
- </div>
- <div class="sztj-div3">
- <p class="tk-tit">事件任务完成度</p>
- <div id="szCharts3"></div>
- </div>
- <div class="sztj-div2">
- <p class="tk-tit">结构分析</p>
- <div id="szCharts1"></div>
- </div>
- </div>
- </div>
- </div>
- <!--四长统计弹框 结束-->
- <!--事件统计弹框 开始-->
- <div id="leader-tkbg3" v-show="showModa3">
- <p class="tk-tit" style="
- margin-bottom: 1rem;
- display: flex;
- justify-content: space-between;
- align-items: center;
- ">
- 事件详情(年度)
- <!-- <el-date-picker ref="datePickRef" v-model="queryTime" clearable type="datetimerange"-->
- <!-- value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss" range-separator="至" start-placeholder="开始日期"-->
- <!-- end-placeholder="结束日期" :validate-event="true" class="sj-data-picker-input" popper-class="sj-data-picker" />-->
- <!-- <el-button type="primary" icon="el-icon-printer" size="normal" @click="getEventReport()" style="-->
- <!-- height: 32px;-->
- <!-- padding: 9px 20px;-->
- <!-- position: relative;-->
- <!-- right: 2rem;-->
- <!-- ">生成报告-->
- <!-- </el-button>-->
- </p>
- <span @click="showModa3 = false" class="tk-close el-icon-close"></span>
- <div class="sjtj-tk">
- <div class="pop sstj-row">
- <div class="sstj-div" id="sjCharts1"></div>
- <div class="sstj-div" id="sjCharts2"></div>
- </div>
- </div>
- </div>
- <!--事件统计弹框 结束-->
- <!--一网通办弹框 开始-->
- <div id="leader-tbbg4" v-show="showModa4">
- <span @click="showModa4 = false" class="tk-close el-icon-close"></span>
- <div class="tbtj-tk">
- <div class="pop tbtj-row">
- <div class="tbtj-div1">
- <p class="tk-tit">部门办结统计Top5</p>
- <div id="tbCharts1"></div>
- </div>
- <div class="tbtj-div2">
- <p class="tk-tit">好差评统计</p>
- <div id="tbCharts2"></div>
- </div>
- </div>
- </div>
- </div>
- <!--一网通办弹框 结束-->
- <!--重点工程弹框 开始-->
- <div id="leader-tbbg5" v-show="showModa5">
- <span @click="showModa5 = false" class="tk-close el-icon-close"></span>
- <div class="gctj-tk">
- <div class="pop gctj-row">
- <div class="gctj-div1">
- <p class="tk-tit">重点工程实时监控</p>
- <div class="gctj-jk">
- <img :src="introductionToKeyProjectsImg" />
- </div>
- </div>
- <div class="gctj-div2">
- <h5>{{ introductionToKeyProjectsTitle }}</h5>
- <p>{{ introductionToKeyProjects }}</p>
- </div>
- </div>
- </div>
- </div>
- <!--重点工程弹框 结束-->
- <!--重点工程弹窗 开始-->
- <div id="leader-tkbg6" v-show="showModal6">
- <span @click="showModal6 = false" class="tk-close el-icon-close"></span>
- <div class="gctj-tk">
- <div class="pop tbtj-row">
- <div class="ssgz-row" style="width: 100%">
- <div class="tk-con"></div>
- <div style="display: flex">
- <div class="cont-top1" style="margin-right: 15px">
- <el-input v-model="queryParams1.params.projectName" placeholder="请输入工程名称" prefix-icon="el-icon-search"
- style="line-height: 2rem" />
- </div>
- <div class="cont-top1" style="margin-right: 15px">
- <el-select v-model="queryParams1.params.territoriality" size="small" placeholder="请选择属地辖区" class="select"
- :popper-append-to-body="false">
- <el-option v-for="dict in projectTypeList" :key="dict.value" :label="dict.label"
- :value="dict.value"></el-option>
- </el-select>
- </div>
- <div class="cont-top1" style="margin-right: 15px">
- <el-input v-model="queryParams1.params.park" placeholder="请输入所属开发区" prefix-icon="el-icon-search"
- style="line-height: 2rem" />
- </div>
- <div>
- <el-button type="primary" icon="el-icon-search" size="normal" @click="getKeyProjects1()"
- style="margin-right: 15px; height: 32px; padding: 9px 20px">搜索
- </el-button>
- </div>
- <div>
- <el-button icon="el-icon-refresh" size="normal" @click="resetting(1)"
- style="height: 32px; padding: 9px 20px">重置
- </el-button>
- </div>
- </div>
- <el-table :data="imgLists" height="250" border style="width: 100%; margin-top: 0.5rem">
- <el-table-column label="工程名称" align="center" prop="projectName" />
- <el-table-column label="属地辖区" align="center" prop="territoriality" />
- <el-table-column label="所属开发区" align="center" prop="park" />
- <el-table-column label="查看摄像头" align="center" class-name="small-padding fixed-width">
- <template slot-scope="scope">
- <el-button size="mini" type="text" @click="fn5(scope.row, 1)"><i
- class="iconfont sj-icon-jkzx icon-sxt"></i></el-button>
- </template>
- </el-table-column>
- </el-table>
- <pagination id="pagination1" v-show="total > 0" :total="total" :page.sync="queryParams1.pageNum"
- :limit.sync="queryParams1.pageSize" @pagination="getKeyProjects1" popper-class="sj-pagination" />
- </div>
- </div>
- <div class="ssgz-tkcom"></div>
- </div>
- </div>
- <!--重点工程弹窗 结束-->
- <!--重点区域弹窗 开始-->
- <div id="leader-tkbg7" v-show="showModal7">
- <span @click="showModal7 = false" class="tk-close el-icon-close"></span>
- <div class="zdqy-tk">
- <div class="pop tbtj-row">
- <div class="ssgz-row" style="width: 100%">
- <div class="tk-con"></div>
- <div style="display: flex">
- <div class="cont-top1" style="margin-right: 15px">
- <el-input v-model="queryParams.params.areaName" placeholder="请输入区域名称" prefix-icon="el-icon-search"
- style="line-height: 2rem" />
- </div>
- <div class="cont-top1" style="margin-right: 15px">
- <el-select v-model="queryParams.params.projectLevel" size="small" placeholder="请选择区域级别" class="select"
- :popper-append-to-body="false">
- <el-option v-for="dict in dict.type.centerdata_project_level" :key="dict.value" :label="dict.label"
- :value="dict.value"></el-option>
- </el-select>
- </div>
- <div>
- <el-button type="primary" icon="el-icon-search" size="mini" @click="getImportAreaList1()"
- style="margin-right: 15px; height: 32px; padding: 9px 20px">搜索
- </el-button>
- </div>
- <div>
- <el-button icon="el-icon-refresh" size="mini" @click="resetting(2)"
- style="height: 32px; padding: 9px 20px">重置
- </el-button>
- </div>
- </div>
- <el-table :data="keyAreasListList" height="250" border style="width: 100%; margin-top: 0.5rem">
- <el-table-column label="区域名称" align="center" prop="areaName" />
- <el-table-column label="区域级别" align="center" prop="projectLevel">
- <template slot-scope="scope">
- <dict-tag :options="dict.type.centerdata_project_level" :value="scope.row.projectLevel" />
- </template>
- </el-table-column>
- <el-table-column label="查看摄像头" align="center" class-name="small-padding fixed-width">
- <template slot-scope="scope">
- <el-button size="mini" type="text" @click="fn5(scope.row, 2)"><i
- class="iconfont sj-icon-jkzx icon-sxt"></i></el-button>
- </template>
- </el-table-column>
- </el-table>
- <pagination v-show="total1 > 0" :total="total1" :page.sync="queryParams.pageNum"
- :limit.sync="queryParams.pageSize" @pagination="getImportAreaList1" popper-class="sj-pagination" />
- </div>
- </div>
- <div class="ssgz-tkcom"></div>
- </div>
- </div>
- <!--重点区域弹窗 结束-->
- <!--电视墙 无右侧 开始-->
- <TVWallNoRight ref="TVWallNoRight"></TVWallNoRight>
- <TVWall ref="TVWall"></TVWall>
- <!--电视墙 结束-->
- <!--下载附件 开始-->
- <el-dialog title="文件下载" :visible.sync="isShowDownloadList" customClass="black-dialog" v-if="isShowDownloadList"
- width="35%" @close="cancelShowDownloadList()">
- <el-form>
- <div class="bottom">
- <div ref="wrapper">
- <el-form-item>
- <el-input v-model="fileNameS" style="width: 85%"
- onkeydown="if (event.keyCode===13){return false;}"></el-input>
- <el-button type="primary" icon="el-icon-search" @click="showDownloadList('1')">搜索
- </el-button>
- </el-form-item>
- <el-table :data="downloadList" style="width: 100%;height: 53vh;overflow-y: auto">
- <el-table-column prop="name" label="附件名称">
- <template slot-scope="scope">
- {{ scope.row.fileName }}
- </template>
- </el-table-column>
- <el-table-column prop="bookbuytime" label="操作">
- <template slot-scope="scope">
- <el-button size="mini" type="danger" icon="el-icon-download" @click="download(scope.row.path)">下载
- </el-button>
- </template>
- </el-table-column>
- </el-table>
- </div>
- </div>
- </el-form>
- </el-dialog>
- <!--下载附件 结束-->
- <eventdetailsdialog ref="eventdetailsdialog"></eventdetailsdialog>
- <TVWalls ref="TVWalls"></TVWalls>
- </div>
- </template>
- <script>
- import * as echarts from 'echarts'
- import supermap from '@/components/supermap-2.5d' //超图
- import TVWall from '@/views/tvwall/TVWall.vue' //电视墙弹窗
- import TVWalls from '@/views/tvwall/TVWalls.vue' //电视墙弹窗
- import TVWallNoRight from '@/views/tvwall/TVWall-no-right.vue' //电视墙弹窗
- import eventdetailsdialog from '@/views/eventdetailsdialog.vue' //事件详情弹窗
- import monitorbar from '@/components/leaderIndex/monitorbar.vue' // 视联网bar组件
- import camerabar from '@/components/leaderIndex/camerabar.vue' // 视联网bar组件
- import monitorlist from '@/components/leaderIndex/monitorlist.vue' // 视联网左侧组件
- import cameralist from '@/components/leaderIndex/cameralist.vue' // 视联网左侧组件
- import VfastMenu from '@/components/v-fastmenu.vue' // 头部右侧菜单
- import expendbutton from '@/components/expendbutton' //左右收起展开
- /** ----------------------------------摄像头预览开始------------------------------------- */
- import { getTVWallList } from '@/api/dahua/dahua'
- import DHWs from '@/dahua/lib/DHWs'
- /** ----------------------------------摄像头预览结束------------------------------------- */
- import {
- allAtOnce,
- fourLengthOverTree,
- fourLengthOverview,
- fourLengthOverviewOther,
- getAnalysisReport,
- getCamerasByDeptId,
- getDeptEventCount,
- getDlblistBydeptId,
- getEventPoint,
- getEventStatistics,
- getEventStatisticsOther,
- getImportAreaList,
- getImportAreaListOne,
- getKeyProjects,
- getKeyProjectsOne,
- getSensorListByDeptId,
- getWeather,
- initByArea,
- initByProject,
- rotation,
- searchAllYouWant
- } from '@/api/system/commandCenter'
- import { getMonitorDeviceAndDataList, selectCameraByDeptId } from '@/api/monitor'
- import { selectConfigKey } from '@/api/system/config'
- import {
- getResourceagriculture,
- getResourceemergency,
- getResourceenvironment,
- getResourcefire,
- getResourceres,
- getResourcesCounttraffic,
- getResourcewater
- } from '@/api/system/datacenter'
- import {
- fireControlViewList,
- fireControlViewPointPost,
- getEnvironmentLeader,
- getEnvironmentRy,
- getFirecontrolLeader,
- getFirecontrolRy,
- getForestLeader,
- getForestryRy,
- getPlanList,
- getResourceDetail,
- getResourcesRy,
- getRresourcesRyListByJob,
- getTaskList,
- getTrack,
- getTrafficRy,
- getTrafficRyListByJob,
- getWaterRy,
- getWaterRyListByJob,
- initByCameras,
- notCoverPlaces
- } from '@/api/leadex-index'
- import Cookies from 'js-cookie'
- import { getDicts } from '@/api/system/dict/data'
- export default {
- components: {
- supermap,
- TVWall,
- TVWalls,
- TVWallNoRight,
- eventdetailsdialog,
- camerabar,
- monitorlist,
- monitorbar,
- VfastMenu,
- expendbutton,
- cameralist,
- },
- watch: {
- heName(val) {
- this.$refs.treeHe.filter(val);
- },
- luName(val) {
- this.$refs.treeLu.filter(val);
- },
- linName(val) {
- this.$refs.treeLin.filter(val);
- },
- tianName(val) {
- this.$refs.treeTian.filter(val);
- },
- },
- metaInfo() {
- return {
- title: '态势感知平台',
- meta: [{
- charset: "utf-8"
- },
- {
- name: "viewport",
- content: "width=device-width, initial-scale=1.0,minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"
- }
- ]
- }
- },
- created() {
- this.getheaderTitle;
- this.currentTime();
- this.out1();
- this.out2();
- this.out3();
- this.out4();
- this.out6();
- this.out7();
- this.dept = Cookies.get("deptId");
- this.deptId = Cookies.get("deptId");
- this.userDeptId = Cookies.get("deptId");
- let isDept = this.deptList.filter((item) => item.value == this.dept).length;
- if (isDept == 0) {
- this.$router.push("/newpage");
- }
- /** ----------------------------------摄像头预览开始------------------------------------- */
- const DHWsInstance = DHWs.getInstance();
- this.ws = DHWsInstance;
- window.choseLayerSwitchingList_Data = this.choseLayerSwitchingList_Data;
- /** ----------------------------------摄像头预览结束------------------------------------- */
- },
- dicts: ["centerdata_project_level", "forest_lin_level", "camera_system"],
- beforeDestroy() {
- clearInterval(this.cgqTimer); //关闭
- },
- data() {
- return {
- resourcesTypeList: [{
- 'id': 1,
- 'name': 'linye'
- },
- {
- 'id': 2,
- 'name': 'nongye'
- },
- {
- 'id': 3,
- 'name': 'shuili'
- },
- {
- 'id': 4,
- 'name': 'huanbao'
- },
- {
- 'id': 5,
- 'name': 'yingji'
- },
- {
- 'id': 6,
- 'name': 'jiaotong'
- },
- {
- 'id': 7,
- 'name': 'ziyuan'
- },
- {
- 'id': 8,
- 'name': 'xiaofang'
- }
- ],
- userDeptId: "",
- deptId: "",
- //展开收起
- expandValue: false,
- //按钮选中
- btnGetFocus1: false,
- btnGetFocus2: false,
- btnGetFocus3: false,
- btnGetFocus4: false,
- personnelVisualizationModel: "1",
- personnelVisualizationList: [],
- personneType: "",
- personneTypeList: [],
- personne: "",
- personneList: [],
- cgqTimer: null,
- personneTask: "",
- personneTaskList: [],
- personneTaskTrajectoryList: [],
- localPersonnelVisualizationModel: "",
- //图层checkbox
- layerCheckList: [],
- resourcesList: [],
- pvisible: false,
- markersList: [],
- resourcesType: "1",
- resourcesCheckList: [],
- personList: [],
- headerTitle: "",
- queryParams: {
- pageNum: 1,
- pageSize: 10,
- deptId: null,
- params: {
- areaName: null,
- projectLevel: null,
- },
- },
- queryParams1: {
- pageNum: 1,
- pageSize: 10,
- deptId: null,
- params: {
- projectName: null,
- territoriality: null,
- park: null,
- },
- },
- titlename: "",
- // 四长虚拟结构
- leaderData: [],
- // 下载操作手册列表弹出层
- isShowDownloadList: false,
- // 下载列表
- downloadList: [],
- // 四长概况
- overview: [100, 50, 50, 50],
- // 四长概况比例
- overviewPercentCount: 0,
- // tab默认
- rActiveName: 0,
- // 当前时间
- nowTime: "", //现在时间
- projectName: "",
- projectLevel: null,
- placeList: [{
- value: "365",
- label: "四平市",
- }, ],
- deptList: [{
- value: "365",
- label: "所有县(市)区",
- }, // 365_四平市
- {
- value: "369",
- label: "双辽市",
- }, // 369_双辽市
- {
- value: "371",
- label: "梨树县",
- }, // 371_梨树县
- {
- value: "373",
- label: "铁西区",
- }, // 373_铁西区
- {
- value: "372",
- label: "铁东区",
- }, // 372_铁东区
- {
- value: "370",
- label: "伊通县",
- }, // 370_伊通县
- ],
- place: "365",
- dept: "365",
- // 重点工程
- imgList: [],
- projectTypeList:[
- {value: "市本级",label: "市本级"},
- {value: "铁西区",label: "铁西区"},
- {value: "铁东区",label: "铁东区"},
- {value: "梨树县",label: "梨树县"},
- {value: "双辽市",label: "双辽市"},
- {value: "伊通县",label: "伊通县"},
- ],
- imgLists: [],
- leftVal: 0, // 轮播图盒子的偏移值
- flag: true, // 用来节流防止重复点击
- start: null, // 自动执行下一张定的时器
- imgWidth: 500, // 在这里填写你需要的图片宽度
- ition: 0.8, // 设置轮播图过度时间
- imgShow: 0, // 表示当前显示的图片索引
- weatherinformationLow: 0,
- weatherinformationHigh: 0,
- weatherinformationTemperature: 0,
- weatherinformationPower: 0,
- weatherinformationDirection: 0,
- // 重点区域
- keyAreasList: [],
- keyAreasLists: [],
- keyAreasListList: [],
- num: 0,
- visible_tc: false,
- visible_dw: false,
- visible_slw: false,
- visible_wlw: false,
- visible_ygb: false,
- visible_zy: false,
- // 实时关注弹框
- showModal: false,
- // 四长统计弹框
- showModa2: false,
- // 事件统计弹框
- showModa3: false,
- // 一网通办弹框
- showModa4: false,
- // 重点工程弹框
- showModa5: false,
- showModal6: false,
- showModal7: false,
- // 四长统计tab
- szActiveName: "lin",
- heName: "",
- linName: "",
- luName: "",
- tianName: "",
- // 四长统计 tree
- data: [],
- defaultProps: {
- children: "children",
- label: "label",
- },
- // 实时关注数据
- interestList: [],
- // 实时关注事件总数
- interestTotal: 0,
- // 实时关注 - 当前防火季火灾损失统计
- fireLossStatistics: [],
- // 实时关注 - 起火原因统计
- statisticsCausesFire: [],
- // 实时关注 - 起火场所统计
- statisticsFireSites: [],
- // 实时关注 - 防火季火灾发生情况
- fireSituation: [],
- // 事件统计-事件详情
- eventDetails1: [],
- eventDetails2: [],
- visuForestCloudMonitorBOListSearch: [],
- visuForestCloudMonitorBOList: [],
- // 重点工程简介
- introductionToKeyProjectsTitle: "",
- introductionToKeyProjects: "",
- introductionToKeyProjectsImg: "",
- // 四长概况计划完成度
- fourLengthPlan: [100, 100, 100, 100],
- // 四长统计
- fourLengthStatistics: {
- TotalNumberofPeople: 0,
- list: [{
- num: 0,
- title: "河长责任里程",
- },
- {
- num: 0,
- title: "林长责任里程",
- },
- {
- num: 0,
- title: "路长责任里程",
- },
- {
- num: 0,
- title: "田长责任里程",
- },
- ],
- },
- total1: 0,
- // 四长统计趋势图
- fourLengthTask: [{
- name: "河长",
- value: 0,
- },
- {
- name: "林长",
- value: 0,
- },
- {
- name: "路长",
- value: 0,
- },
- {
- name: "田长",
- value: 0,
- },
- ],
- // 事件统计
- eventStatistics: {
- untreatedNum: 0,
- totalNum: 0,
- processedNum: 0,
- eventList: [],
- },
- total: 0,
- // 一网通办
- networkprocessingData: {},
- /** ----------------------------------摄像头预览开始------------------------------------- */
- //大华
- activePanel: "key1",
- areaName: null,
- isLogin: false,
- cameraParams: [],
- ws: null,
- //海康
- cameraTitle: "",
- cameraVisible: false,
- initCount: 0,
- pubKey: "",
- oWebControl: null,
- /** ----------------------------------摄像头预览结束------------------------------------- */
- lossCount: 0,
- blazesCount: 0,
- fileNameS: "",
- positioning: {
- lon: "",
- lat: ""
- },
- /** ----------------------------------左右侧隐藏------------------------------------- */
- // 首页边栏显隐
- sideShowHome: true,
- // 互联网显隐
- sideShowCamera: false,
- sideShowMonitor: false,
- expandedKeys: [],
- cameraUseList: [],
- broadcastUseList: [],
- broadcastUseCheckList: [],
- cameraUseCheckList: [],
- sensorList: [],
- sensorCheckList: [],
- queryTime: [],
- farmingList: [
- "centerdata_t_farm_agricultural_cooperatives",
- "centerdata_t_farm_botany_protect_info",
- "centerdata_t_farm_enterprise@1",
- "centerdata_t_farm_enterprise@2",
- "centerdata_t_farm_enterprise@3",
- "centerdata_t_farm_filings_livestock",
- "centerdata_t_farm_livestock",
- "centerdata_t_farm_agricultural_supervise",
- "centerdata_t_farm_excrement_dispose",
- "centerdata_t_farm_complex_modification",
- "centerdata_t_farm_greenhouse_film",
- "centerdata_t_farm_agricultural_machinery_info"
- ],
- };
- },
- mounted() {
- // 当前时间
- this.getNowTime(); //调用函数
- this.getheaderTitle();
- // 初始化数据
- this.getByDeptId(-1);
- this.getDicts();
- this.expandClick();
- this.choseLayerSwitchingList_Data([
- "http://121.36.228.94:8090/iserver/services/map-BaiShan/rest/maps/BanShiLinChangLK",
- ]);
- // 重点工程
- this.imgWidth = this.$refs.SwiperBox.width // 自动获取轮播图盒子宽度
- this.gogo();
- },
- methods: {
- openLiveAction() {
- window.open("/live-action", "_blank");
- },
- lonAndLatQueryCamera() {
- console.log(this.$refs.supermap.positioningEntity)
- //经度,整数部分为0-180小数部分为0到15位
- var longreg =
- /^(\-|\+)?(((\d|[1-9]\d|1[0-7]\d|0{1,3})\.\d{0,15})|(\d|[1-9]\d|1[0-7]\d|0{1,3})|180\.0{0,15}|180)$/
- if (!longreg.test(this.positioning.lon)) {
- this.$message.warning('经度整数部分为0-180,小数部分为0到15位!')
- return
- }
- //纬度,整数部分为0-90小数部分为0到15位
- var latreg = /^(\-|\+)?([0-8]?\d{1}\.\d{0,15}|90\.0{0,15}|[0-8]?\d{1}|90)$/
- if (!latreg.test(this.positioning.lat)) {
- this.$message.warning('纬度整数部分为0-90,小数部分为0到15位!')
- return
- }
- this.$refs.supermap.lonAndLatPlacement(this.positioning.lon, this.positioning.lat)
- const params = Object.assign({})
- params.longitude = this.positioning.lon;
- params.latitude = this.positioning.lat;
- params.type = '1,2,3,4,5,6,7,8'
- initByCameras(params).then(res => {
- if(res.data != null && res.data.length != 0){
- this.$refs.TVWallNoRight.showTVWall1(this.positioning.lon, this.positioning.lat, res.data);
- }else{
- this.$message.warning('周边无摄像头信息!')
- }
- })
- },
- setPositioning(longitude, latitude) {
- let that = this
- that.positioning.lon = longitude
- that.positioning.lat = latitude
- },
- getLocation(event) {
- if (event == 1) {
- this.visible_dw = !this.visible_dw
- this.showModal7 = false;
- this.showModal6 = false;
- } else {
- this.visible_dw = false
- }
- if (!this.visible_dw) {
- this.positioning.lon = ''
- this.positioning.lat = ''
- this.$refs.supermap.clearDW()
- }
- this.$refs.supermap.setIsObtainLaAndLon(this.visible_dw)
- },
- truncatedText(str) {
- if (str.length <= 19) {
- return str;
- } else {
- return str.substring(0, 19) + '...';
- }
- },
- getDicts() {
- let that = this
- let cgqlist = []
- getDicts("camera_use").then(req => {
- that.cameraUseList = req.data
- cgqlist.push.apply(cgqlist, req.data.filter(item => item.dictValue != "2"))
- })
- getDicts("device_type").then(req => {
- cgqlist.push.apply(cgqlist, req.data)
- that.sensorList = cgqlist
- })
- getDicts("broadcast_use").then(req => {
- that.broadcastUseList = req.data
- })
- },
- // 展开收起
- expandClick(value) {
- this.expandValue = !this.expandValue;
- // console.log(value,'=================================================== ============')
- },
- //数据获取
- getMonitorDeviceAndData() {
- let that = this
- that.$refs.supermap.clearG();
- //当左右收起,点击视联网,左右会弹出
- if (!that.expandValue) {
- that.$refs.exb.expandClick();
- }
- that.resourcesCheckList = [];
- that.broadcastUseCheckList = []
- that.cameraUseCheckList = []
- that.sensorCheckList = []
- that.btnGetFocus1 = false;
- that.btnGetFocus2 = !that.btnGetFocus2;
- that.visible_wlw = !that.visible_wlw;
- that.btnGetFocus3 = false;
- that.btnGetFocus4 = false;
- that.showModal7 = false;
- that.showModal6 = false;
- this.getLocation()
- that.resettings();
- if (!that.btnGetFocus2) {
- that.$refs.supermap.clearM();
- that.$refs.supermap.clearMRadius();
- return;
- }
- that.getMonitorDeviceAndDataList();
- clearInterval(that.cgqTimer);
- that.cgqTimer = setInterval(() => {
- that.getMonitorDeviceAndDataList();
- }, 5 * 60 * 1000);
- if (that.sideShowMonitor) {
- that.titleClick();
- return;
- } else {
- that.sideShowHome = false;
- that.sideShowMonitor = true;
- that.sideShowCamera = false;
- that.sensorList.forEach(function(item) {
- that.sensorCheckList.push(item.dictLabel)
- });
- }
- that.$refs.sideShowMonitor.updatePopper();
- },
- getEventReport() {
- console.log(this.queryTime)
- if (this.queryTime == null || this.queryTime.length < 2) {
- this.$modal.msgWarning("请选择时间");
- return
- }
- let start = this.queryTime[0];
- let end = this.queryTime[1];
- selectConfigKey("eventReport").then((res) => {
- window.open(res.data + "/commandCenter/getEventReport?params%5Bstart%5D=" + start + "¶ms%5Bend%5D=" +
- end);
- });
- },
- getMonitorList(deptId) {
- let list = [];
- let markersList = [];
- let cameraMarkersList = [];
- this.deptId = deptId;
- let deviceTypeList = [];
- let cameraList = [];
- for (var i = 0; i < this.sensorCheckList.length; i++) {
- let data = this.sensorList.filter(item => item.dictLabel == this.sensorCheckList[i])
- if (data.length > 0) {
- if (data[0].dictType == "camera_use") {
- cameraList.push(data[0].dictValue)
- }
- if (data[0].dictType == "device_type") {
- deviceTypeList.push(data[0].dictValue)
- }
- }
- }
- if (deviceTypeList.length == 0 && cameraList.length == 0) {
- for (var i = 0; i < this.sensorList.length; i++) {
- if (this.sensorList[i].dictType == "camera_use") {
- cameraList.push(this.sensorList[i].dictValue)
- }
- if (this.sensorList[i].dictType == "device_type") {
- deviceTypeList.push(this.sensorList[i].dictValue)
- }
- }
- }
- const deviceType = deviceTypeList.join(",");
- const camera = cameraList.join(",");
- getMonitorDeviceAndDataList(deptId, deviceType).then((res) => {
- this.visuForestCloudMonitorBOListSearch = [];
- list = res.data;
- //this.sensorNum = list.length
- list.forEach((item) => {
- let dat = {
- cameraName: item.deviceName,
- longitude: item.longitude,
- latitude: item.latitude,
- };
- this.visuForestCloudMonitorBOListSearch.push(dat);
- let markersMap = {
- lng: 124.59,
- lat: 43.02,
- icon: "marker",
- bindPopupHtml: '<div class="map-tip">' +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>名称:" +
- (item.deviceName ? item.deviceName : "") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>经纬度:" +
- item.longitude +
- "," +
- item.latitude +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "</div>",
- click: "",
- parameter: "",
- name: "",
- keepBindPopup: false,
- isAggregation: false,
- };
- if (item.deviceType == 1) {
- // 水质传感器
- markersMap.icon = "sj-icon-map-centerdata_water_quality_sensor";
- if (item.data != null) {
- markersMap.bindPopupHtml +=
- '<div class="map-tip">' +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>类型:水质传感器" +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>水中PH:" +
- (item.data.waterPh ?
- item.data.waterPh +
- "pH | " +
- (item.threshold ?
- item.threshold.waterPhThresholdUp +
- "pH - " +
- item.threshold.waterPhThresholdDown +
- "pH" :
- "0pH - 0pH") :
- "0pH | 0pH - 0pH") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>化学需氧量:" +
- (item.data.cod ? item.data.cod + "mg/L" : "0mg/L") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>氨氮:" +
- (item.data.ammoniaNitrogen ?
- item.data.ammoniaNitrogen + "mg/L" :
- "0mg/L") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>水温:" +
- (item.data.waterTemperature ?
- item.data.waterTemperature +
- "°C | " +
- (item.threshold ?
- item.threshold.waterTemperatureThresholdUp +
- "°C - " +
- item.threshold.waterTemperatureThresholdDown +
- "°C" :
- "0°C - 0°C") :
- "0°C | 0°C - 0°C") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "</div>";
- }
- } else if (item.deviceType == 8) {
- // 水尺
- markersMap.icon = "sj-icon-map-centerdata_water_gauge";
- markersMap.bindPopupHtml +=
- '<div class="map-tip">' +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>类型:水尺传感器" +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>地址:" +
- (item.address ? item.address : "") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "</div>";
- } else if (item.deviceType == "003") {
- // 水文监测设备
- markersMap.icon =
- "sj-icon-map-centerdata_hydrological_monitoring_equipment";
- markersMap.bindPopupHtml +=
- '<div class="map-tip">' +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>类型:水文传感器" +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "</div>";
- } else if (item.deviceType == 2) {
- // 土壤监测设备
- markersMap.icon =
- "sj-icon-map-centerdata_soil_monitoring_equipment";
- if (item.data != null) {
- markersMap.bindPopupHtml +=
- '<div class="map-tip">' +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>类型:土壤监测设备" +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>钾含量:" +
- (item.data.potassium ?
- item.data.potassium +
- "mg/kg | " +
- (item.threshold ?
- item.threshold.potassiumThresholdUp +
- "mg/kg - " +
- item.threshold.potassiumThresholdDown +
- "mg/kg" :
- "0mg/kg - 0mg/kg") :
- "0mg/kg | 0mg/kg - 0mg/kg") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>导电率:" +
- (item.data.conductivity ?
- item.data.conductivity +
- "us/cm | " +
- (item.threshold ?
- item.threshold.conductivityThresholdUp +
- "us/cm - " +
- item.threshold.conductivityThresholdDown +
- "us/cm" :
- "0us/cm - 0us/cm") :
- "0us/cm | 0us/cm - 0us/cm") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>氮含量:" +
- (item.data.nitrogen ?
- item.data.nitrogen +
- "mg/kg | " +
- (item.threshold ?
- item.threshold.nitrogenThresholdUp +
- "mg/kg - " +
- item.threshold.nitrogenThresholdDown +
- "mg/kg" :
- "0mg/kg - 0mg/kg") :
- "0mg/kg | 0mg/kg - 0mg/kg") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>温度:" +
- (item.data.temperature ?
- item.data.temperature +
- "°C | " +
- (item.threshold ?
- item.threshold.temperatureThresholdUp +
- "°C - " +
- item.threshold.temperatureThresholdDown +
- "°C" :
- "0°C - 0°C") :
- "0°C | 0°C - 0°C") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>ph值:" +
- (item.data.ph ?
- item.data.ph +
- "pH | " +
- (item.threshold ?
- item.threshold.phThresholdUp +
- "pH - " +
- item.threshold.phThresholdDown +
- "pH" :
- "0pH - 0pH") :
- "0pH | 0pH - 0pH") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>湿度:" +
- (item.data.humidity ? item.data.humidity + "%RH" : "0%RH") +
- (item.data.humidity ?
- item.data.humidity +
- "%RH | " +
- (item.threshold ?
- item.threshold.humidityThresholdUp +
- "%RH - " +
- item.threshold.humidityThresholdDown +
- "%RH" :
- "0%RH - 0%RH") :
- "0%RH | 0%RH - 0%RH") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>磷含量:" +
- (item.data.phosphorus ?
- item.data.phosphorus +
- "mg/kg | " +
- (item.threshold ?
- item.threshold.phosphorusThresholdUp +
- "mg/kg - " +
- item.threshold.phosphorusThresholdDown +
- "mg/kg" :
- "0mg/kg - 0mg/kg") :
- "0mg/kg | 0mg/kg - 0mg/kg") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- // "<span>" +
- // ' <div class="d-l-con">' +
- // ' <div class="d-l-l-text">' +
- // " <h4>电压:" +
- // (item.data.voltage ? item.data.voltage : "") +
- // "</h4>" +
- // " </div>" +
- // " </div>" +
- // " </span>"
- "</div>";
- }
- } else if (item.deviceType == 4) {
- // 病虫害监测站
- markersMap.icon =
- "sj-icon-map-centerdata_pest_and_disease_monitoring_station";
- markersMap.bindPopupHtml +=
- '<div class="map-tip">' +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>类型:病虫害传感器" +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "</div>";
- } else if (item.deviceType == 5) {
- // 大气传感器
- markersMap.icon = "sj-icon-map-centerdata_atmospheric_sensor";
- if (item.data != null) {
- markersMap.bindPopupHtml +=
- '<div class="map-tip">' +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>类型:大气传感器" +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>二氧化硫:" +
- (item.data.sulfurDioxide ?
- item.data.sulfurDioxide + "ug/m³" :
- "0ug/m³") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>一氧化碳:" +
- (item.data.carbonMonoxide ?
- item.data.carbonMonoxide + "ug/m³" :
- "0ug/m³") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>温度:" +
- (item.data.temperature ?
- item.data.temperature +
- "°C | " +
- (item.threshold ?
- item.threshold.temperatureThresholdUp +
- "°C - " +
- item.threshold.temperatureThresholdDown +
- "°C" :
- "0°C - 0°C") :
- "0°C | 0°C - 0°C") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>二氧化氮:" +
- (item.data.nitrogenDioxide ?
- item.data.nitrogenDioxide + "ug/m³" :
- "0ug/m³") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- // "<span>" +
- // ' <div class="d-l-con">' +
- // ' <div class="d-l-l-text">' +
- // " <h4>风向:" +
- // (item.data.windDirection ? item.data.windDirection : "") +
- // "</h4>" +
- // " </div>" +
- // " </div>" +
- // " </span>" +
- // "<span>" +
- // ' <div class="d-l-con">' +
- // ' <div class="d-l-l-text">' +
- // " <h4>风速:" +
- // (item.data.windSpeed ? item.data.windSpeed : "") +
- // "</h4>" +
- // " </div>" +
- // " </div>" +
- // " </span>" +
- "</div>";
- }
- } else if (item.deviceType == 6) {
- // 水压传感器
- markersMap.icon = "sj-icon-map-centerdata_water_pressure_sensor";
- if (item.data != null) {
- markersMap.bindPopupHtml +=
- '<div class="map-tip">' +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>类型:水压传感器" +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- '<div class="map-tip">' +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>电池电量:" +
- (item.data.batteryValue ? item.data.batteryValue + "%" : "0%") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- // "<span>" +
- // ' <div class="d-l-con">' +
- // ' <div class="d-l-l-text">' +
- // " <h4>上限警报使能:" +
- // (item.data.thresholdHighEnable ?
- // item.data.thresholdHighEnable + "MPa" :
- // "0MPa") +
- // "</h4>" +
- // " </div>" +
- // " </div>" +
- // " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4 style='color:" + (item.data.hydraulicThresholdMax >= item.data
- .hydraulicValue >= item.data.hydraulicThresholdMin ? 'green' : 'red') + "'" + ">水压力值:" +
- (item.data.hydraulicValue ? item.data.hydraulicValue + "MPa" : "0MPa") + ' | ' + (item.data
- .hydraulicThresholdMin ? item.data.hydraulicThresholdMin + "MPa" : "0MPa") + "-" + (item
- .data.hydraulicThresholdMax ? item.data.hydraulicThresholdMax + "MPa" : "0MPa") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "</div>";
- }
- } else if (item.deviceType == 7) {
- //水流速传感器
- markersMap.icon = "sj-icon-map-centerdata_water_flow_rate";
- if (item.data != null) {
- markersMap.bindPopupHtml +=
- '<div class="map-tip">' +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>类型:水流速传感器" +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- // "<span>" +
- // ' <div class="d-l-con">' +
- // ' <div class="d-l-l-text">' +
- // " <h4>两流量累计之和:" +
- // (item.data.Q ? item.data.Q : "") +
- // "</h4>" +
- // " </div>" +
- // " </div>" +
- // " </span>" +
- // "<span>" +
- // ' <div class="d-l-con">' +
- // ' <div class="d-l-l-text">' +
- // " <h4>瞬时流量:" +
- // (item.data.Q1 ? item.data.Q1+"m3/s" : "") +
- // "</h4>" +
- // " </div>" +
- // " </div>" +
- // " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>瞬时流速:" +
- (item.data.V1 ? item.data.V1 + "m/s" : "0m/s") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>瞬时流量:" +
- (item.data.Q ? item.data.Q + "m³/s" : "0m³/s") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span></div>";
- }
- }
- markersMap.lng = item.longitude;
- markersMap.lat = item.latitude;
- markersList.push(markersMap);
- });
- console.log(markersList);
- });
- selectCameraByDeptId(deptId, camera).then((res) => {
- //根据设备类型查看列表
- list = res.data;
- //this.sensorNum = list.length
- list.forEach((item) => {
- if (item.cameraUse == 1) {
- let dat = {
- cameraName: item.cameraName,
- longitude: item.longitude,
- latitude: item.latitude,
- };
- // this.visuForestCloudCameraBOListSearch.push(dat);
- }
- });
- if (res.data != null && res.data.length > 0) {
- for (let i = 0; i < res.data.length; i++) {
- if (res.data[i].cameraUse == 1) {
- let markersMap = {
- lng: 124.59,
- lat: 43.02,
- icon: "sj-icon-map-centerdata-slmonitor",
- bindPopupHtml: "",
- click: "preview",
- parameter: "",
- name: i,
- keepBindPopup: false,
- isAggregation: false,
- };
- if (res.data[i].channelCode != null) {
- markersMap.parameter = {
- code: res.data[i].cameraCode,
- name: res.data[i].cameraName,
- type: res.data[i].cameraType,
- };
- } else {
- markersMap.parameter = [];
- }
- markersMap.lng = res.data[i].longitude;
- markersMap.lat = res.data[i].latitude;
- markersMap.radius = res.data[i].cameraRadius;
- markersMap.bindPopupHtml =
- '<div class="map-tip">' +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>经纬度:" +
- res.data[i].longitude +
- "," +
- res.data[i].latitude +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>摄像头名称:" +
- res.data[i].cameraName +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>网络运营商:" +
- (res.data[i].operatorType == "1" ?
- "联通" :
- res.data[i].operatorType == "2" ?
- "移动" :
- "电信") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>摄像头半径:" +
- res.data[i].cameraRadius +
- "米</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "</div>";
- cameraMarkersList.push(markersMap);
- }
- }
- }
- });
- setTimeout(() => {
- this.$refs.supermap.clearM();
- this.$refs.supermap.clearMRadius();
- this.$refs.supermap.setMarkers(markersList);
- this.$refs.supermap.setMarkersRadius(cameraMarkersList);
- }, 5000);
- },
- getMonitorDeviceAndDataList() {
- // if (!this.sideShowMonitor) {
- // this.$message.warning("请先选择物联网")
- // return
- // }
- let list = [];
- let markersList = [];
- let cameraMarkersList = [];
- let deviceTypeList = []
- let cameraList = []
- this.visuForestCloudMonitorBOListSearch = [];
- this.visuForestCloudMonitorBOList = [];
- for (var i = 0; i < this.sensorCheckList.length; i++) {
- let data = this.sensorList.filter(item => item.dictLabel == this.sensorCheckList[i])
- if (data.length > 0) {
- if (data[0].dictType == "camera_use") {
- cameraList.push(data[0].dictValue)
- }
- if (data[0].dictType == "device_type") {
- deviceTypeList.push(data[0].dictValue)
- }
- }
- }
- if (deviceTypeList.length == 0 && cameraList.length == 0) {
- for (var i = 0; i < this.sensorList.length; i++) {
- if (this.sensorList[i].dictType == "camera_use") {
- cameraList.push(this.sensorList[i].dictValue)
- }
- if (this.sensorList[i].dictType == "device_type") {
- deviceTypeList.push(this.sensorList[i].dictValue)
- }
- }
- }
- const deviceType = deviceTypeList.join(",");
- const camera = cameraList.join(",");
- if (deviceType != "" && deviceType != null && deviceType != undefined) {
- getMonitorDeviceAndDataList(this.deptId, deviceType).then((res) => {
- list = res.data;
- //this.sensorNum = list.length
- list.forEach((item) => {
- let dat = {
- cameraName: item.deviceName,
- longitude: item.longitude,
- latitude: item.latitude,
- };
- this.visuForestCloudMonitorBOListSearch.push(dat);
- this.visuForestCloudMonitorBOList.push(dat);
- let markersMap = {
- lng: 124.59,
- lat: 43.02,
- icon: "marker",
- bindPopupHtml: '<div class="map-tip">' +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>名称:" +
- (item.deviceName ? item.deviceName : "") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>经纬度:" +
- item.longitude +
- "," +
- item.latitude +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "</div>",
- click: "",
- parameter: "",
- name: "",
- keepBindPopup: false,
- isAggregation: false,
- };
- if (item.deviceType == 1) {
- // 水质传感器
- markersMap.icon = "sj-icon-map-centerdata_water_quality_sensor";
- if (item.data != null) {
- markersMap.bindPopupHtml +=
- '<div class="map-tip">' +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>类型:水质传感器" +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>水中PH:" +
- (item.data.waterPh ?
- item.data.waterPh +
- "pH | " +
- (item.threshold ?
- item.threshold.waterPhThresholdUp +
- "pH - " +
- item.threshold.waterPhThresholdDown +
- "pH" :
- "0pH - 0pH") :
- "0pH | 0pH - 0pH") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>化学需氧量:" +
- (item.data.cod ? item.data.cod + "mg/L" : "0mg/L") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>氨氮:" +
- (item.data.ammoniaNitrogen ?
- item.data.ammoniaNitrogen + "mg/L" :
- "0mg/L") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>水温:" +
- (item.data.waterTemperature ?
- item.data.waterTemperature +
- "°C | " +
- (item.threshold ?
- item.threshold.waterTemperatureThresholdUp +
- "°C - " +
- item.threshold.waterTemperatureThresholdDown +
- "°C" :
- "0°C - 0°C") :
- "0°C | 0°C - 0°C") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "</div>";
- }
- } else if (item.deviceType == 8) {
- // 水尺
- markersMap.icon = "sj-icon-map-centerdata_water_gauge";
- markersMap.bindPopupHtml +=
- '<div class="map-tip">' +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>类型:水尺传感器" +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>地址:" +
- (item.address ? item.address : "") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "</div>";
- } else if (item.deviceType == "003") {
- // 水文监测设备
- markersMap.icon =
- "sj-icon-map-centerdata_hydrological_monitoring_equipment";
- markersMap.bindPopupHtml +=
- '<div class="map-tip">' +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>类型:水文传感器" +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "</div>";
- } else if (item.deviceType == 2) {
- // 土壤监测设备
- markersMap.icon =
- "sj-icon-map-centerdata_soil_monitoring_equipment";
- if (item.data != null) {
- markersMap.bindPopupHtml +=
- '<div class="map-tip">' +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>类型:土壤监测设备" +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>钾含量:" +
- (item.data.potassium ?
- item.data.potassium +
- "mg/kg | " +
- (item.threshold ?
- item.threshold.potassiumThresholdUp +
- "mg/kg - " +
- item.threshold.potassiumThresholdDown +
- "mg/kg" :
- "0mg/kg - 0mg/kg") :
- "0mg/kg | 0mg/kg - 0mg/kg") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>导电率:" +
- (item.data.conductivity ?
- item.data.conductivity +
- "us/cm | " +
- (item.threshold ?
- item.threshold.conductivityThresholdUp +
- "us/cm - " +
- item.threshold.conductivityThresholdDown +
- "us/cm" :
- "0us/cm - 0us/cm") :
- "0us/cm | 0us/cm - 0us/cm") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>氮含量:" +
- (item.data.nitrogen ?
- item.data.nitrogen +
- "mg/kg | " +
- (item.threshold ?
- item.threshold.nitrogenThresholdUp +
- "mg/kg - " +
- item.threshold.nitrogenThresholdDown +
- "mg/kg" :
- "0mg/kg - 0mg/kg") :
- "0mg/kg | 0mg/kg - 0mg/kg") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>温度:" +
- (item.data.temperature ?
- item.data.temperature +
- "°C | " +
- (item.threshold ?
- item.threshold.temperatureThresholdUp +
- "°C - " +
- item.threshold.temperatureThresholdDown +
- "°C" :
- "0°C - 0°C") :
- "0°C | 0°C - 0°C") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>ph值:" +
- (item.data.ph ?
- item.data.ph +
- "pH | " +
- (item.threshold ?
- item.threshold.phThresholdUp +
- "pH - " +
- item.threshold.phThresholdDown +
- "pH" :
- "0pH - 0pH") :
- "0pH | 0pH - 0pH") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>湿度:" +
- (item.data.humidity ? item.data.humidity + "%RH" : "0%RH") +
- (item.data.humidity ?
- item.data.humidity +
- "%RH | " +
- (item.threshold ?
- item.threshold.humidityThresholdUp +
- "%RH - " +
- item.threshold.humidityThresholdDown +
- "%RH" :
- "0%RH - 0%RH") :
- "0%RH | 0%RH - 0%RH") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>磷含量:" +
- (item.data.phosphorus ?
- item.data.phosphorus +
- "mg/kg | " +
- (item.threshold ?
- item.threshold.phosphorusThresholdUp +
- "mg/kg - " +
- item.threshold.phosphorusThresholdDown +
- "mg/kg" :
- "0mg/kg - 0mg/kg") :
- "0mg/kg | 0mg/kg - 0mg/kg") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- // "<span>" +
- // ' <div class="d-l-con">' +
- // ' <div class="d-l-l-text">' +
- // " <h4>电压:" +
- // (item.data.voltage ? item.data.voltage : "") +
- // "</h4>" +
- // " </div>" +
- // " </div>" +
- // " </span>"
- "</div>";
- }
- } else if (item.deviceType == 4) {
- // 病虫害监测站
- markersMap.icon =
- "sj-icon-map-centerdata_pest_and_disease_monitoring_station";
- markersMap.bindPopupHtml +=
- '<div class="map-tip">' +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>类型:病虫害传感器" +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "</div>";
- } else if (item.deviceType == 5) {
- // 大气传感器
- markersMap.icon = "sj-icon-map-centerdata_atmospheric_sensor";
- if (item.data != null) {
- markersMap.bindPopupHtml +=
- '<div class="map-tip">' +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>类型:大气传感器" +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>二氧化硫:" +
- (item.data.sulfurDioxide ?
- item.data.sulfurDioxide + "ug/m³" :
- "0ug/m³") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>一氧化碳:" +
- (item.data.carbonMonoxide ?
- item.data.carbonMonoxide + "ug/m³" :
- "0ug/m³") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>温度:" +
- (item.data.temperature ?
- item.data.temperature +
- "°C | " +
- (item.threshold ?
- item.threshold.temperatureThresholdUp +
- "°C - " +
- item.threshold.temperatureThresholdDown +
- "°C" :
- "0°C - 0°C") :
- "0°C | 0°C - 0°C") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>二氧化氮:" +
- (item.data.nitrogenDioxide ?
- item.data.nitrogenDioxide + "ug/m³" :
- "0ug/m³") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- // "<span>" +
- // ' <div class="d-l-con">' +
- // ' <div class="d-l-l-text">' +
- // " <h4>风向:" +
- // (item.data.windDirection ? item.data.windDirection : "") +
- // "</h4>" +
- // " </div>" +
- // " </div>" +
- // " </span>" +
- // "<span>" +
- // ' <div class="d-l-con">' +
- // ' <div class="d-l-l-text">' +
- // " <h4>风速:" +
- // (item.data.windSpeed ? item.data.windSpeed : "") +
- // "</h4>" +
- // " </div>" +
- // " </div>" +
- // " </span>" +
- "</div>";
- }
- } else if (item.deviceType == 6) {
- // 水压传感器
- markersMap.icon = "sj-icon-map-centerdata_water_pressure_sensor";
- if (item.data != null) {
- markersMap.bindPopupHtml +=
- '<div class="map-tip">' +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>类型:水压传感器" +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- '<div class="map-tip">' +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>下限警报使能:" +
- (item.data.thresholdLowEnable ?
- item.data.thresholdLowEnable + "MPa" :
- "0MPa") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>上限警报使能:" +
- (item.data.thresholdHighEnable ?
- item.data.thresholdHighEnable + "MPa" :
- "0MPa") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- // "<span>" +
- // ' <div class="d-l-con">' +
- // ' <div class="d-l-l-text">' +
- // " <h4>信号强度:" +
- // (item.data.signalPower ? item.data.signalPower : "") +
- // "</h4>" +
- // " </div>" +
- // " </div>" +
- // " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>水压力值:" +
- (item.data.hydraulicValue ?
- item.data.hydraulicValue + "MPa | 0.5MPa - 2.0MPa" :
- "0MPa | 0.5MPa - 2.0MPa") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "</div>";
- }
- } else if (item.deviceType == 7) {
- //水流速传感器
- markersMap.icon = "sj-icon-map-centerdata_water_flow_rate";
- if (item.data != null) {
- markersMap.bindPopupHtml +=
- '<div class="map-tip">' +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>类型:水流速传感器" +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- // "<span>" +
- // ' <div class="d-l-con">' +
- // ' <div class="d-l-l-text">' +
- // " <h4>两流量累计之和:" +
- // (item.data.Q ? item.data.Q : "") +
- // "</h4>" +
- // " </div>" +
- // " </div>" +
- // " </span>" +
- // "<span>" +
- // ' <div class="d-l-con">' +
- // ' <div class="d-l-l-text">' +
- // " <h4>瞬时流量:" +
- // (item.data.Q1 ? item.data.Q1+"m3/s" : "") +
- // "</h4>" +
- // " </div>" +
- // " </div>" +
- // " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>瞬时流速:" +
- (item.data.V1 ? item.data.V1 + "m/s" : "0m/s") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>瞬时流量:" +
- (item.data.Q ? item.data.Q + "m³/s" : "0m³/s") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span></div>";
- }
- }
- markersMap.lng = item.longitude;
- markersMap.lat = item.latitude;
- markersList.push(markersMap);
- });
- console.log(markersList);
- });
- }
- if (camera != "" && camera != null && camera != undefined) {
- selectCameraByDeptId(this.dept, camera).then((res) => {
- //根据设备类型查看列表
- list = res.data;
- //this.sensorNum = list.length
- list.forEach((item) => {
- if (item.cameraUse == 1) {
- let dat = {
- cameraName: item.cameraName,
- longitude: item.longitude,
- latitude: item.latitude,
- };
- this.visuForestCloudMonitorBOListSearch.push(dat);
- this.visuForestCloudMonitorBOList.push(dat);
- }
- });
- if (res.data != null && res.data.length > 0) {
- for (let i = 0; i < res.data.length; i++) {
- if (res.data[i].cameraUse != 2) {
- let markersMap = {
- lng: 124.59,
- lat: 43.02,
- icon: "sj-icon-map-centerdata-slmonitor",
- bindPopupHtml: "",
- click: "preview",
- parameter: "",
- name: i,
- keepBindPopup: false,
- isAggregation: false,
- };
- if (res.data[i].cameraUse == 1) {
- if (res.data[i].workingStatus == 0) {
- markersMap.icon = "sj-icon-map-centerdata-slmonitor";
- } else {
- markersMap.icon = "sj-icon-map-centerdata-slmonitor-not";
- markersMap.click = ""
- }
- } else if (res.data[i].cameraUse == 3) {
- if (res.data[i].workingStatus == 0) {
- markersMap.icon = "sj-icon-map-centerdata-slmonitor-traffic";
- } else {
- markersMap.icon = "sj-icon-map-centerdata-slmonitor-traffic-not";
- markersMap.click = ""
- }
- } else if (res.data[i].cameraUse == 4) {
- if (res.data[i].workingStatus == 0) {
- markersMap.icon = 'sj-icon-map-centerdata-sand-quarry-camera'
- } else {
- markersMap.icon = 'sj-icon-map-centerdata-sand-quarry-camera-not'
- markersMap.click = ""
- }
- } else if (res.data[i].cameraUse == 5) {
- if (res.data[i].workingStatus == 0) {
- markersMap.icon = 'sj-icon-map-centerdata-river_camera'
- } else {
- markersMap.icon = 'sj-icon-map-centerdata-river_camera_not'
- markersMap.click = ""
- }
- }
- if (res.data[i].channelCode != null) {
- markersMap.parameter = {
- code: res.data[i].cameraCode,
- name: res.data[i].cameraName,
- type: res.data[i].cameraType,
- };
- } else {
- markersMap.parameter = [];
- }
- markersMap.lng = res.data[i].longitude;
- markersMap.lat = res.data[i].latitude;
- markersMap.radius = res.data[i].cameraRadius;
- markersMap.bindPopupHtml =
- '<div class="map-tip">' +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>经纬度:" +
- res.data[i].longitude +
- "," +
- res.data[i].latitude +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>摄像头名称:" +
- res.data[i].cameraName +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>网络运营商:" +
- (res.data[i].operatorType == "1" ?
- "联通" :
- res.data[i].operatorType == "2" ?
- "移动" :
- "电信") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>摄像头半径:" +
- res.data[i].cameraRadius +
- "米</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "</div>";
- cameraMarkersList.push(markersMap);
- }
- }
- }
- });
- }
- setTimeout(() => {
- this.$refs.supermap.clearM();
- this.$refs.supermap.clearMRadius();
- this.$refs.supermap.setMarkers(markersList);
- this.$refs.supermap.setMarkersRadius(cameraMarkersList);
- }, 5000);
- },
- // 获取人员类型
- selectPersonnelTypeList(data) {
- this.showModal7 = false;
- this.showModal6 = false;
- this.getLocation()
- let that = this;
- if (
- that.localPersonnelVisualizationModel == data ||
- that.localPersonnelVisualizationModel ==
- that.personnelVisualizationModel
- ) {
- return;
- }
- that.localPersonnelVisualizationModel = data;
- that.personneType = "";
- that.personneTypeList = [];
- that.personne = "";
- that.personneList = [];
- that.personneTask = "";
- that.personneTaskList = [];
- that.$refs.supermap.clearC();
- that.$refs.supermap.clearTwoC();
- that.personneTaskTrajectoryList = [];
- if (data == null) {
- data = 1;
- that.personnelVisualizationModel = "1";
- }
- if (data == 1) {
- // 林业
- getForestryRy(that.dept).then((res) => {
- if (res.data.visuForestCloudRYBO.length < 1) {
- return;
- }
- that.personneType = res.data.visuForestCloudRYBO[0].jobValue;
- that.personneTypeList = res.data.visuForestCloudRYBO;
- that.selectPersonneList(res.data.visuForestCloudRYBO[0].jobValue);
- });
- } else if (data == 2) {
- // 农业
- } else if (data == 3) {
- // 水利
- getWaterRy(that.dept).then((res) => {
- if (res.data.ryList.length < 1) {
- return;
- }
- that.personneType = res.data.ryList[0].dictType;
- for (let i = 0; i < res.data.ryList.length; i++) {
- let data = {
- job: "",
- jobValue: "",
- };
- data.job = res.data.ryList[i].job;
- data.jobValue = res.data.ryList[i].dictType;
- console.log(data);
- that.personneTypeList.push(data);
- }
- that.selectPersonneList(res.data.ryList[0].dictType);
- });
- } else if (data == 4) {
- // 环保
- getEnvironmentRy(that.dept).then((res) => {
- if (res.data.user.length < 1) {
- return;
- }
- that.personneType = res.data.user[0].jobValue;
- that.personneTypeList = res.data.user;
- that.selectPersonneList(res.data.user[0].jobValue);
- });
- } else if (data == 5) {
- // 应急
- } else if (data == 6) {
- // 交通
- getTrafficRy(that.dept).then((res) => {
- if (res.data.ryList.length < 1) {
- return;
- }
- that.personneType = res.data.ryList[0].dictType;
- for (let i = 0; i < res.data.ryList.length; i++) {
- let data = {
- job: "",
- jobValue: "",
- };
- data.job = res.data.ryList[i].job;
- data.jobValue = res.data.ryList[i].dictType;
- console.log(data);
- that.personneTypeList.push(data);
- }
- that.selectPersonneList(res.data.ryList[0].dictType);
- });
- } else if (data == 7) {
- // 资源
- getResourcesRy(that.dept).then((res) => {
- if (res.data.ryList.length < 1) {
- return;
- }
- that.personneType = res.data.ryList[0].dictType;
- for (let i = 0; i < res.data.ryList.length; i++) {
- let data = {
- job: "",
- jobValue: "",
- };
- data.job = res.data.ryList[i].job;
- data.jobValue = res.data.ryList[i].dictType;
- that.personneTypeList.push(data);
- }
- that.selectPersonneList(res.data.ryList[0].dictType);
- });
- } else if (data == 8) {
- // 消防
- getFirecontrolRy(that.dept).then((res) => {
- if (res.data.ryList.length < 1) {
- return;
- }
- that.personneType = res.data.ryList[0].jobValue;
- that.personneTypeList = res.data.ryList;
- that.selectPersonneList(res.data.ryList[0].jobValue);
- });
- }
- },
- // 获取类型下的人员列表
- selectPersonneList(linJob) {
- let that = this;
- let data = this.personnelVisualizationModel;
- that.personne = "";
- that.personneList = [];
- that.personneTask = "";
- that.personneTaskList = [];
- that.personneTaskTrajectoryList = [];
- that.$refs.supermap.clearC();
- that.$refs.supermap.clearTwoC();
- if (data == 1) {
- // 林业
- getForestLeader(linJob, that.dept).then((res) => {
- if (res.data.length < 1) {
- return;
- }
- that.personne = res.data[0].userId;
- that.personneList = res.data;
- that.selectPersonneTaskList(res.data[0].userId);
- });
- } else if (data == 2) {
- // 农业
- } else if (data == 3) {
- // 水利
- getWaterRyListByJob(linJob, that.dept).then((res) => {
- if (res.data.length < 1) {
- return;
- }
- that.personne = res.data[0].userId;
- for (let i = 0; i < res.data.length; i++) {
- let data = {
- userId: "",
- nickName: "",
- };
- data.nickName = res.data[i].name;
- data.userId = res.data[i].userId;
- that.personneList.push(data);
- }
- that.selectPersonneTaskList(res.data[0].userId);
- });
- } else if (data == 4) {
- // 环保
- getEnvironmentLeader(linJob, that.dept).then((res) => {
- if (res.data.length < 1) {
- return;
- }
- that.personne = res.data[0].userId;
- that.personneList = res.data;
- that.selectPersonneTaskList(res.data[0].userId);
- });
- } else if (data == 5) {
- // 应急
- } else if (data == 6) {
- // 交通
- getTrafficRyListByJob(linJob, that.dept).then((res) => {
- if (res.data.length < 1) {
- return;
- }
- that.personne = res.data[0].userId;
- for (let i = 0; i < res.data.length; i++) {
- let data = {
- userId: "",
- nickName: "",
- };
- data.nickName = res.data[i].name;
- data.userId = res.data[i].userId;
- that.personneList.push(data);
- }
- that.selectPersonneTaskList(res.data[0].userId);
- });
- } else if (data == 7) {
- // 资源
- getRresourcesRyListByJob(linJob, that.dept).then((res) => {
- if (res.data.length < 1) {
- return;
- }
- that.personne = res.data[0].userId;
- for (let i = 0; i < res.data.length; i++) {
- let data = {
- userId: "",
- nickName: "",
- };
- data.nickName = res.data[i].name;
- data.userId = res.data[i].userId;
- that.personneList.push(data);
- }
- that.selectPersonneTaskList(res.data[0].userId);
- });
- } else if (data == 8) {
- // 消防
- getFirecontrolLeader(linJob, that.dept).then((res) => {
- if (res.data.length < 1) {
- return;
- }
- that.personne = res.data[0].userId;
- that.personneList = res.data;
- that.selectPersonneTaskList(res.data[0].userId);
- });
- }
- },
- // 获取人员任务列表
- selectPersonneTaskList(userId) {
- let that = this;
- let data = this.personnelVisualizationModel;
- that.personneTask = "";
- that.personneTaskList = [];
- that.personneTaskTrajectoryList = [];
- that.$refs.supermap.clearC();
- that.$refs.supermap.clearTwoC();
- if (data == 1) {
- // 林业
- getPlanList(userId, 1).then((res) => {
- if (res.data.length < 1) {
- return;
- }
- that.personneTask = res.data[0].id;
- that.personneTaskList = res.data;
- that.getTaskTrajectory(res.data[0]);
- that.getTaskList(this.personneTask);
- });
- } else if (data == 2) {
- // 农业
- } else if (data == 3) {
- // 水利
- getPlanList(userId, 2).then((res) => {
- if (res.data.length < 1) {
- return;
- }
- that.personneTask = res.data[0].id;
- that.personneTaskList = res.data;
- that.getTaskTrajectory(res.data[0]);
- that.getTaskList(this.personneTask);
- });
- } else if (data == 4) {
- // 环保
- getPlanList(userId, 4).then((res) => {
- if (res.data.length < 1) {
- return;
- }
- that.personneTask = res.data[0].id;
- that.personneTaskList = res.data;
- that.getTaskTrajectory(res.data[0]);
- that.getTaskList(this.personneTask);
- });
- } else if (data == 5) {
- // 应急
- } else if (data == 6) {
- // 交通
- getPlanList(userId, 3).then((res) => {
- if (res.data.length < 1) {
- return;
- }
- that.personneTask = res.data[0].id;
- that.personneTaskList = res.data;
- that.getTaskTrajectory(res.data[0]);
- that.getTaskList(this.personneTask);
- });
- } else if (data == 7) {
- // 资源
- getPlanList(userId, 6).then((res) => {
- if (res.data.length < 1) {
- return;
- }
- that.personneTask = res.data[0].id;
- that.personneTaskList = res.data;
- that.getTaskTrajectory(res.data[0]);
- that.getTaskList(this.personneTask);
- });
- } else if (data == 8) {
- // 消防
- getPlanList(userId, 5).then((res) => {
- if (res.data.length < 1) {
- return;
- }
- that.personneTask = res.data[0].id;
- that.personneTaskList = res.data;
- that.getTaskTrajectory(res.data[0]);
- that.getTaskList(this.personneTask);
- });
- }
- },
- search() {
- this.getTaskList(this.personneTask);
- },
- resettings() {
- // this.personnelVisualizationModel = ''
- // this.personneType = ''
- // this.personneTypeList = []
- // this.personne = ''
- // this.personneList = []
- // this.personneTask = ''
- // this.personneTaskList = []
- // this.personneTaskTrajectoryList = []
- this.$refs.supermap.clearC();
- this.$refs.supermap.clearTwoC();
- },
- // 获取人员任务轨迹列表
- getTaskList(taskId) {
- let that = this;
- getTaskList(taskId, that.personne).then((res) => {
- that.personneTaskTrajectoryList = res.data;
- });
- },
- // 获取人员任务轨迹
- getTrack(id) {
- let that = this;
- getTrack(id).then((res) => {
- let connectList = [];
- if (res.data != null && res.data.length > 0) {
- for (let i = 0; i < res.data.length; i++) {
- connectList.push(res.data[i].longitude);
- connectList.push(res.data[i].latitude);
- }
- setTimeout(() => {
- that.visible_tc = false;
- that.$refs.supermap.clearTwoC();
- that.$refs.supermap.setConnectTwoList(connectList, "#f40", 0.8);
- that.$refs.supermap.dropLocation(
- res.data[0].latitude,
- res.data[0].longitude
- );
- }, 1000);
- } else {
- that.visible_tc = false;
- that.$refs.supermap.clearTwoC();
- }
- });
- },
- getTaskTrajectory(task) {
- let list = JSON.parse(task.patrolTrajectory);
- let data = [];
- for (var i = 0; i < list.length; i++) {
- data.push(list[i].lng);
- data.push(list[i].lat);
- }
- setTimeout(() => {
- this.$refs.supermap.clearC();
- this.$refs.supermap.clearTwoC();
- this.$refs.supermap.setConnectList(data, "#04f", 0.8);
- }, 1000);
- },
- //获取标题
- getheaderTitle() {
- selectConfigKey("titlename").then((res) => {
- this.headerTitle = res.data;
- });
- },
- choseLayerSwitchingList_Data(urlList) {
- //选择图层(传递数组)
- setTimeout(() => {
- this.$refs.supermap.layerSwitchingList_Data(urlList);
- }, 1000);
- },
- sewageOutletClick(data) {
- console.log(data);
- const params = Object.assign({});
- params.longitude = data.longitude;
- params.latitude = data.latitude;
- let data1 = null
- getResourceDetail(data.indexName, data.id).then(res => {
- data1 = res.data
- const treeLabels = [{
- id: null,
- labelCode: "999",
- labelName: "电视墙",
- cameraType: null,
- parentLabelCode: "",
- }, ];
- const labelChannels = [];
- // if (0 < data1.cameras.length) {
- for (let i in data1.cameras) {
- treeLabels.push({
- id: null,
- labelCode: data1.cameras[i].cameraCode,
- labelName: data1.cameras[i].cameraName,
- cameraType: data1.cameras[i].cameraType,
- parentLabelCode: "999",
- });
- labelChannels.push({
- labelCode: data1.cameras[i].cameraCode,
- channelDates: [{
- channelCode: data1.cameras[i].cameraCode,
- channelName: data1.cameras[i].cameraName,
- channelSn: null,
- cameraType: data1.cameras[i].cameraType,
- online: "1",
- cameraCode: "1",
- }, ],
- });
- }
- const dianshiqiang = [{
- switchTab: "2",
- treeLabels: treeLabels,
- labelChannels: labelChannels,
- }, ]
- this.$refs.TVWalls.showTVWall2(
- dianshiqiang, {
- longitude: params.longitude,
- latitude: params.latitude
- },
- data1.detail
- );
- // }
- })
- },
- sewageOutletClickfarming(data) {
- const params = Object.assign({});
- params.longitude = data.longitude;
- params.latitude = data.latitude;
- const treeLabels = [{
- id: null,
- labelCode: "999",
- labelName: "电视墙",
- cameraType: null,
- parentLabelCode: "",
- }, ];
- const labelChannels = [];
- for (let i in data.cameraList) {
- treeLabels.push({
- id: null,
- labelCode: data.cameraList[i].cameraCode,
- labelName: data.cameraList[i].cameraName,
- cameraType: data.cameraList[i].cameraType,
- parentLabelCode: "999",
- });
- labelChannels.push({
- labelCode: data.cameraList[i].cameraCode,
- channelDates: [{
- channelCode: data.cameraList[i].cameraCode,
- channelName: data.cameraList[i].cameraName,
- channelSn: null,
- cameraType: data.cameraList[i].cameraType,
- online: "1",
- cameraCode: "1",
- }, ],
- });
- }
- const dianshiqiang = [{
- switchTab: "2",
- treeLabels: treeLabels,
- labelChannels: labelChannels,
- }, ];
- if (data.cameraList.length > 0) {
- this.$refs.TVWalls.showTVWall1(
- data.longitude,
- data.latitude,
- dianshiqiang,
- param
- );
- }
- },
- /* 电视墙替换开始 */
- showTVWallMine(channelCode, channelName, cameraType) {
- // let channelCode = '6044981090191552';
- // let channelName = '复兴大桥中段-交通事故';
- let tvListJson = [{
- switchTab: "2",
- treeLabels: [{
- id: null,
- labelCode: "999",
- labelName: "电视墙",
- cameraType: null,
- parentLabelCode: "",
- },
- {
- id: "spcamera00010",
- labelCode: channelCode,
- labelName: channelName,
- cameraType: cameraType,
- parentLabelCode: "999",
- },
- ],
- labelChannels: [{
- labelCode: channelCode,
- channelDates: [{
- channelCode: channelCode,
- channelName: channelName,
- channelSn: null,
- cameraType: cameraType,
- online: "1",
- cameraCode: null,
- }, ],
- }, ],
- }, ];
- this.$refs.TVWallNoRight.showTVWall(tvListJson, null);
- this.$refs.supermap.isEditableLayers = false;
- },
- fatherMethod(dianshiqiang, longitude, latitude, item) {
- this.$refs.TVWall.showTVWall(
- dianshiqiang, {
- longitude: longitude,
- latitude: latitude,
- },
- item
- );
- },
- /* 电视墙替换结束 */
- selectCameraByDeptId(depId, lng, lat) {
- this.visuForestCloudCameraBOListSearch = [];
- this.visuForestCloudCameraBOList = [];
- let that = this;
- that.deptId = depId
- const str = this.cameraUseCheckList.join(",");
- selectCameraByDeptId(depId, str).then((res) => {
- let cameraMarkersList = [];
- that.visuForestCloudCameraBOListSearch = res.data;
- that.visuForestCloudCameraBOList = res.data;
- //根据设备类型查看列表
- if (res.data != null && res.data.length > 0) {
- for (let i = 0; i < res.data.length; i++) {
- let markersMap = {
- lng: res.data[i].longitude,
- lat: res.data[i].latitude,
- icon: "camera",
- bindPopupHtml: "",
- click: "preview",
- parameter: "",
- keepBindPopup: false,
- isAggregation: false,
- };
- if (res.data[i].channelCode != null) {
- markersMap.parameter = {
- code: res.data[i].cameraCode,
- name: res.data[i].cameraName,
- type: res.data[i].cameraType,
- };
- } else {
- markersMap.parameter = [];
- }
- if (res.data[i].cameraUse == 1) {
- markersMap.icon = "sj-icon-map-centerdata-slmonitor";
- } else if (res.data[i].cameraUse == 2) {
- markersMap.icon = "camera";
- } else if (res.data[i].cameraUse == 3) {
- markersMap.icon = "sj-icon-map-centerdata-slmonitor-traffic";
- } else if (res.data[i].cameraUse == 4) {
- markersMap.icon = 'sj-icon-map-centerdata-sand-quarry-camera'
- } else if (res.data[i].cameraUse == 5) {
- markersMap.icon = 'sj-icon-map-centerdata-river_camera'
- }
- markersMap.lng = res.data[i].longitude;
- markersMap.lat = res.data[i].latitude;
- markersMap.radius = res.data[i].cameraRadius;
- markersMap.bindPopupHtml =
- '<div class="map-tip">' +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>经纬度:" +
- res.data[i].longitude +
- "," +
- res.data[i].latitude +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>摄像头名称:" +
- res.data[i].cameraName +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>网络运营商:" +
- (res.data[i].operatorType == "1" ?
- "联通" :
- res.data[i].operatorType == "2" ?
- "移动" :
- "电信") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>摄像头半径:" +
- res.data[i].cameraRadius +
- "米</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "</div>";
- cameraMarkersList.push(markersMap);
- }
- setTimeout(() => {
- that.$refs.supermap.clearMRadius();
- that.$refs.supermap.setMarkersRadius(cameraMarkersList);
- }, 1000);
- } else {
- that.$refs.supermap.clearMRadius();
- }
- });
- getCamerasByDeptId(depId).then((res) => {
- this.$refs.TVWallNoRight.showTVWall(res.data, {
- longitude: lng,
- latitude: lat,
- });
- });
- this.$refs.supermap.clearG();
- setTimeout(() => {
- if (depId == "365" || depId == "369" || depId == "371" || depId == "373" || depId == "372" || depId ==
- "370") {
- if (this.cameraUseCheckList.length == this.cameraUseList.length || this.cameraUseCheckList.length ==
- 0) {
- this.getNotCoverPlaces(depId);
- }
- }
- }, 500)
- },
- selectCameraByDeptIds(depId, lng, lat) {
- // if (!this.sideShowCamera) {
- // this.$message.warning("请先选择视联网!")
- // return
- // }
- this.visuForestCloudCameraBOListSearch = [];
- this.visuForestCloudCameraBOList = [];
- let that = this;
- debugger
- const str = this.cameraUseCheckList.join(",");
- selectCameraByDeptId(depId, str).then((res) => {
- that.visuForestCloudCameraBOListSearch = res.data;
- that.visuForestCloudCameraBOList = res.data;
- let cameraMarkersList = [];
- //根据设备类型查看列表
- if (res.data != null && res.data.length > 0) {
- for (let i = 0; i < res.data.length; i++) {
- let markersMap = {
- lng: res.data[i].longitude,
- lat: res.data[i].latitude,
- icon: "camera",
- bindPopupHtml: "",
- click: "preview",
- parameter: "",
- keepBindPopup: false,
- isAggregation: false,
- };
- if (res.data[i].channelCode != null) {
- markersMap.parameter = {
- code: res.data[i].cameraCode,
- name: res.data[i].cameraName,
- type: res.data[i].cameraType,
- };
- } else {
- markersMap.parameter = [];
- }
- if (res.data[i].cameraUse == 1) {
- if (res.data[i].workingStatus == 0) {
- markersMap.icon = "sj-icon-map-centerdata-slmonitor";
- } else {
- markersMap.icon = "sj-icon-map-centerdata-slmonitor-not";
- markersMap.click = ""
- }
- } else if (res.data[i].cameraUse == 2) {
- if (res.data[i].workingStatus == 0) {
- markersMap.icon = "camera";
- } else {
- markersMap.icon = "camera-not";
- markersMap.click = ""
- }
- } else if (res.data[i].cameraUse == 3) {
- if (res.data[i].workingStatus == 0) {
- markersMap.icon = "sj-icon-map-centerdata-slmonitor-traffic";
- } else {
- markersMap.icon = "sj-icon-map-centerdata-slmonitor-traffic-not";
- markersMap.click = ""
- }
- } else if (res.data[i].cameraUse == 4) {
- if (res.data[i].workingStatus == 0) {
- markersMap.icon = 'sj-icon-map-centerdata-sand-quarry-camera'
- } else {
- markersMap.icon = 'sj-icon-map-centerdata-sand-quarry-camera-not'
- markersMap.click = ""
- }
- } else if (res.data[i].cameraUse == 5) {
- if (res.data[i].workingStatus == 0) {
- markersMap.icon = 'sj-icon-map-centerdata-river_camera'
- } else {
- markersMap.icon = 'sj-icon-map-centerdata-river_camera_not'
- markersMap.click = ""
- }
- }
- markersMap.lng = res.data[i].longitude;
- markersMap.lat = res.data[i].latitude;
- markersMap.radius = res.data[i].cameraRadius;
- markersMap.bindPopupHtml =
- '<div class="map-tip">' +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>经纬度:" +
- res.data[i].longitude +
- "," +
- res.data[i].latitude +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>摄像头名称:" +
- res.data[i].cameraName +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>网络运营商:" +
- (res.data[i].operatorType == "1" ?
- "联通" :
- res.data[i].operatorType == "2" ?
- "移动" :
- "电信") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>摄像头半径:" +
- res.data[i].cameraRadius +
- "米</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "</div>";
- cameraMarkersList.push(markersMap);
- }
- setTimeout(() => {
- that.$refs.supermap.clearM();
- that.$refs.supermap.clearMRadius();
- that.$refs.supermap.setMarkersRadius(cameraMarkersList);
- }, 1000);
- } else {
- that.$refs.supermap.clearM();
- that.$refs.supermap.clearMRadius();
- }
- this.$refs.supermap.clearG();
- setTimeout(() => {
- if (depId == "365" || depId == "369" || depId == "371" || depId == "373" || depId == "372" ||
- depId == "370") {
- if (this.cameraUseCheckList.length == this.cameraUseList.length || this.cameraUseCheckList
- .length == 0) {
- this.getNotCoverPlaces(depId);
- }
- }
- }, 500)
- });
- },
- rotation(lng, lat, list) {
- rotation(lng, lat, list).then((res) => {});
- },
- /** 标题返回 */
- titleClick() {
- this.sideShowHome = true;
- this.sideShowCamera = false;
- this.sideShowMonitor = false;
- this.getEventPoint();
- this.btnGetFocus1 = false;
- this.btnGetFocus2 = false;
- this.btnGetFocus3 = false;
- this.btnGetFocus4 = false;
- },
- getByDeptId(index) {
- let num = 0;
- if (this.dept == "365") {
- num = 0;
- } else if (this.dept == "369") {
- num = 1;
- } else if (this.dept == "371") {
- num = 2;
- } else if (this.dept == "373") {
- num = 3;
- } else if (this.dept == "372") {
- num = 4;
- } else if (this.dept == "370") {
- num = 5;
- }
- this.showModal6 = false;
- this.showModal7 = false;
- this.resourcesCheckList = [];
- this.personnelVisualizationModel = "1";
- this.personnelVisualizationList = [];
- this.personneType = "";
- this.personneTypeList = [];
- this.personne = "";
- this.personneList = [];
- this.visible_tc = false;
- this.visible_zy = false;
- // 获取实时关注数据
- this.getDeptEventCount();
- // 获取事件统计数据
- this.getEventStatistics();
- // 获取重点工程数据
- this.getKeyProjects();
- // 获取重点区域
- this.getImportAreaList();
- // 四长概况
- this.fourLengthOverview();
- // // 四长统计
- // this.listFourCount();
- // 一网通办
- this.allAtOnce();
- // 加载事件点位
- this.getEventPoint();
- // 获取天气
- this.getWeather();
- this.titleClick();
- this.layerCheckList = [];
- this.$refs.supermap.removeAllviewer(num, index);
- },
- fourLengthOverTree(val) {
- let that = this;
- fourLengthOverTree({
- timeTag: val,
- deptId: that.dept,
- })
- .then(function(response) {
- that.data = response.data;
- that.expandedKeys.push(response.data[0].id);
- })
- .catch(function(error) {
- console.log(error);
- });
- },
- // 传感器
- getSensorListByDeptId() {
- this.btnGetFocus1 = false;
- this.btnGetFocus2 = !this.btnGetFocus2;
- this.btnGetFocus3 = false;
- this.btnGetFocus4 = false;
- let that = this;
- let markersList = [];
- getSensorListByDeptId({
- deptId: that.dept,
- })
- .then(function(res) {
- console.log(res.data);
- if (res.data != null && res.data.length > 0) {
- for (let i = 0; i < res.data.length; i++) {
- let markersMap = {
- lng: 124.59,
- lat: 43.02,
- icon: "marker",
- bindPopupHtml: "",
- click: "",
- parameter: "",
- keepBindPopup: false,
- isAggregation: false,
- };
- markersMap.icon = "sensor";
- markersMap.lng = res.data[i].longitude;
- markersMap.lat = res.data[i].latitude;
- markersList.push(markersMap);
- }
- setTimeout(() => {
- that.$refs.supermap.clearM();
- that.$refs.supermap.clearMRadius();
- that.$refs.supermap.setMarkers(markersList);
- }, 1000);
- } else {
- setTimeout(() => {
- that.$refs.supermap.clearM();
- that.$refs.supermap.clearMRadius();
- }, 1000);
- }
- })
- .catch(function(error) {
- console.error(error);
- });
- },
- jump() {
- // 跳转大喇叭页面
- window.open("https://sts.sty1818.com");
- },
- // 大喇叭
- getDlblistBydeptIds() {
- // if (!this.btnGetFocus3) {
- // this.$message.warning("请先选择云广播!")
- // return
- // }
- let that = this;
- let markersList = [];
- const str = that.broadcastUseCheckList.join(",");
- getDlblistBydeptId({
- deptId: that.dept,
- broadcastUse: str,
- })
- .then(function(res) {
- console.log(res.data);
- if (res.data != null && res.data.length > 0) {
- for (let i = 0; i < res.data.length; i++) {
- let markersMap = {
- lng: 124.59,
- lat: 43.02,
- icon: "big-horn",
- bindPopupHtml: '<div class="map-tip">' +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>名称:" +
- (res.data[i].name ? res.data[i].name : "") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>位置:" +
- (res.data[i].position ? res.data[i].position : "") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>备注:" +
- (res.data[i].remark ? res.data[i].remark : "") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>经纬度:" +
- res.data[i].longitude +
- "," +
- res.data[i].latitude +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "</div>",
- click: "jump",
- parameter: "",
- keepBindPopup: false,
- isAggregation: false,
- };
- if (res.data[i].broadcastUse == '1') {
- markersMap.icon = "big-horn-emergency";
- } else if (res.data[i].broadcastUse == '2') {
- markersMap.icon = "big-horn";
- }
- markersMap.lng = res.data[i].longitude;
- markersMap.lat = res.data[i].latitude;
- markersList.push(markersMap);
- }
- setTimeout(() => {
- that.$refs.supermap.clearM();
- that.$refs.supermap.clearMRadius();
- that.$refs.supermap.setMarkers(markersList);
- }, 1000);
- } else {
- setTimeout(() => {
- that.$refs.supermap.clearM();
- that.$refs.supermap.clearMRadius();
- }, 1000);
- }
- })
- .catch(function(error) {
- console.error(error);
- });
- },
- getDlblistBydeptId() {
- let that = this
- that.$refs.supermap.clearG();
- that.resourcesCheckList = [];
- if (that.cgqTimer != null) {
- clearInterval(that.cgqTimer);
- }
- that.broadcastUseCheckList = []
- that.cameraUseCheckList = []
- that.sensorCheckList = []
- that.sideShowHome = true;
- that.sideShowMonitor = false;
- that.sideShowCamera = false;
- that.btnGetFocus1 = false;
- that.btnGetFocus2 = false;
- that.btnGetFocus3 = !that.btnGetFocus3;
- that.visible_ygb = !that.visible_ygb;
- that.btnGetFocus4 = false;
- that.showModal7 = false;
- that.showModal6 = false;
- this.getLocation()
- that.resettings();
- if (!that.btnGetFocus3) {
- that.$refs.supermap.clearM();
- that.$refs.supermap.clearMRadius();
- } else {
- that.broadcastUseList.forEach(function(item) {
- that.broadcastUseCheckList.push(item.dictValue)
- });
- }
- that.$refs.btnGetFocus3.updatePopper();
- that.getDlblistBydeptIds();
- },
- // 获取天气数据
- getWeather() {
- let that = this;
- let date = new Date();
- let y = date.getFullYear();
- let m = date.getMonth() + 1;
- m = m < 10 ? "0" + m : m;
- let d = date.getDate();
- d = d < 10 ? "0" + d : d;
- let str = y + "-" + m + "-" + d;
- getWeather({
- day: str,
- }).then((res) => {
- if (res.data.length > 0) {
- that.weatherinformationLow = res.data[0].weatherinformationLow;
- that.weatherinformationPower = res.data[0].weatherinformationPower;
- that.weatherinformationHigh = res.data[0].weatherinformationHigh;
- that.weatherinformationDirection =
- res.data[0].weatherinformationDirection;
- that.weatherinformationTemperature =
- res.data[0].weatherinformationTemperature;
- }
- console.log("获取天气数据=", res.data[0]);
- });
- },
- // 加载事件点位
- getEventPoint() {
- let that = this;
- getEventPoint({
- deptId: that.dept,
- })
- .then(function(response) {
- console.log(response.data);
- let markersList = [];
- let res = response;
- if (res.data != null && res.data.length > 0) {
- for (let i = 0; i < res.data.length; i++) {
- let markersMap = {
- lng: 124.59,
- lat: 43.02,
- icon: "marker",
- bindPopupHtml: "",
- click: "",
- parameter: "",
- keepBindPopup: false,
- isAggregation: true,
- };
- // if (res.data.length > 200) {
- // markersMap.isAggregation = true
- // }
- if (
- res.data[i].eventStatusValue == "forest_event_status_1" &&
- res.data[i].urgeCount == 0
- ) {
- markersMap.click = "showEventDialog";
- markersMap.icon = "sj-icon-map-xinshangbao";
- }
- if (
- res.data[i].eventStatusValue == "forest_event_status_1" &&
- res.data[i].urgeCount > 0
- ) {
- markersMap.click = "showEventDialog";
- markersMap.icon = "sj-icon-map-cuiban";
- } else if (
- res.data[i].eventStatusValue == "forest_event_status_2"
- ) {
- markersMap.click = "showEventDialog";
- markersMap.icon = "sj-icon-map-qianshou";
- markersMap.isAggregation = false;
- } else if (
- res.data[i].eventStatusValue == "forest_event_status_5"
- ) {
- markersMap.click = "showEventDialog";
- markersMap.icon = "sj-icon-map-banjie";
- markersMap.isAggregation = false;
- } else if (
- res.data[i].eventStatusValue == "forest_event_status_6"
- ) {
- markersMap.click = "showEventDialog";
- markersMap.icon = "sj-icon-map-guidang";
- } else if (
- res.data[i].eventStatusValue == "forest_event_status_7"
- ) {
- markersMap.click = "showEventDialog";
- markersMap.icon = "sj-icon-map-queren";
- }
- markersMap.parameter = res.data[i].eventCode;
- markersMap.lng = res.data[i].longitude;
- markersMap.lat = res.data[i].latitude;
- markersMap.bindPopupHtml = '<div class="map-tip">' +
- '<span>' +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- ' <h4>经纬度:' + res.data[i].longitude + ',' + res.data[i].latitude + '</h4>' +
- ' </div>' +
- ' </div>' +
- ' </span>' +
- '<span>' +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- ' <h4>事件名称:' + res.data[i].eventName + '</h4>' +
- ' </div>' +
- ' </div>' +
- ' </span>'
- // '<span>' +
- // ' <div class="d-l-con">' +
- // ' <div class="d-l-l-text">' +
- // ' <h4>事件时间:' + res.data[i].createTime + '</h4>' +
- // ' </div>' +
- // ' </div>' +
- // ' </span>';
- if (res.data[i].pictureType == 'image' && res.data[i].picturePath != null && res.data[i]
- .picturePath != '') {
- markersMap.bindPopupHtml += '<span>' +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- '<img src="' + res.data[i].picturePath + '" style="width: 150px;height: 100px"/>' +
- ' </div>' +
- ' </div>' +
- ' </span>'
- }
- markersMap.bindPopupHtml += '</div>'
- markersList.push(markersMap);
- }
- setTimeout(() => {
- that.$refs.supermap.clearM();
- that.$refs.supermap.clearMRadius();
- that.$refs.supermap.setMarkers(markersList);
- }, 1000);
- } else {
- setTimeout(() => {
- that.$refs.supermap.clearM();
- that.$refs.supermap.clearMRadius();
- }, 1000);
- }
- })
- .catch(function(error) {
- console.error(error);
- });
- },
- // 展示电视墙
- showTVWall() {
- this.$refs.supermap.clearG();
- this.resourcesCheckList = [];
- this.btnGetFocus1 = false;
- this.btnGetFocus2 = false;
- this.btnGetFocus3 = false;
- this.btnGetFocus4 = !this.btnGetFocus4;
- this.showModal7 = false;
- this.showModal6 = false;
- this.getLocation()
- this.resettings();
- getTVWallList().then((res) => {
- this.$refs.TVWallNoRight.showTVWall(res.data, null);
- this.getEventPoint();
- });
- },
- // 获取所有摄像头
- selectDeviceType() {
- this.deptId = Cookies.get("deptId");
- this.$refs.supermap.clearG();
- //当左右收起,点击视联网,左右会弹出
- if (!this.expandValue) {
- this.$refs.exb.expandClick();
- }
- this.resourcesCheckList = [];
- if (this.cgqTimer != null) {
- clearInterval(this.cgqTimer);
- }
- this.btnGetFocus1 = !this.btnGetFocus1;
- this.visible_slw = !this.visible_slw;
- this.btnGetFocus2 = false;
- this.btnGetFocus3 = false;
- this.btnGetFocus4 = false;
- this.showModal7 = false;
- this.showModal6 = false;
- this.getLocation()
- this.resettings();
- let that = this;
- // that.sideShowHome = false;
- // that.sideShowCamera = true;
- if (that.sideShowCamera) {
- this.titleClick();
- return;
- } else {
- that.sideShowHome = false;
- that.sideShowMonitor = false;
- that.sideShowCamera = true;
- that.cameraUseList.forEach(function(item) {
- that.cameraUseCheckList.push(item.dictValue)
- });
- }
- this.selectCameraByDeptIds(this.dept);
- that.$refs.sideShowCamera.updatePopper();
- },
- // 获取所有摄像头
- // 获取附近摄像头
- getNearCamera(data) {
- let cameraMarkersList = [];
- let that = this;
- if (data != null && data.length > 0) {
- for (let i = 0; i < data.length; i++) {
- let markersMap = {
- lng: 124.59,
- lat: 43.02,
- icon: "camera",
- bindPopupHtml: "",
- click: "preview",
- keepBindPopup: false,
- isAggregation: false,
- };
- if (data[i].cameraCode != null) {
- markersMap.parameter = {
- cameraCode: data[i].cameraCode,
- cameraFactory: data[i].cameraFactory,
- };
- } else {
- markersMap.parameter = [];
- }
- markersMap.lng = data[i].longitude;
- markersMap.lat = data[i].latitude;
- markersMap.radius = data[i].cameraRadius;
- markersMap.bindPopupHtml =
- '<div class="map-tip">' +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>摄像头名称:" +
- data[i].cameraName +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>网络运营商:" +
- (res.data[i].operatorType == "1" ?
- "联通" :
- res.data[i].operatorType == "2" ?
- "移动" :
- "电信") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>摄像头半径:" +
- data[i].cameraRadius +
- "米</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "</div>";
- cameraMarkersList.push(markersMap);
- }
- setTimeout(() => {
- that.$refs.supermap.clearMRadius();
- that.$refs.supermap.setMarkersRadius(cameraMarkersList);
- }, 1000);
- } else {
- setTimeout(() => {
- that.$refs.supermap.clearMRadius();
- }, 1000);
- }
- that.$refs.supermap.clearG();
- },
- // 一网通办
- allAtOnce() {
- let that = this;
- allAtOnce({
- deptId: that.dept,
- })
- .then(function(response) {
- if (response.data != undefined) {
- that.networkprocessingData = response.data;
- that.networkprocessingData.upDown = parseInt(
- response.data.upDown.replace("%")
- );
- } else {
- that.networkprocessingData = {
- naturalPersonCompletionRate: "",
- naturalPersonCompletionNumber: 0,
- naturalPersonProcessingNumber: 0,
- legalPersonCompletionRate: "",
- legalPersonCompletionNumber: 0,
- legalPersonProcessingNumber: 0,
- upDown: 0,
- hallProcessingTotalNumber: 0,
- previousDayHallProcessingTotalNumber: 0,
- top1CompletionNumber: 0,
- top2CompletionNumber: 0,
- top3CompletionNumber: 0,
- top4CompletionNumber: 0,
- top5CompletionNumber: 0,
- top1DeptName: "-",
- top2DeptName: "-",
- top3DeptName: "-",
- top4DeptName: "-",
- top5DeptName: "-",
- verySatisfied: 0,
- satisfied: 0,
- basicallySatisfied: 0,
- dissatisfied: 0,
- veryDissatisfied: 0,
- upDownzuidui: 0,
- };
- }
- console.log(response.data);
- })
- .catch(function(error) {
- console.error(error);
- });
- },
- // 事件统计-事件详情
- getEventStatisticsOther() {
- let that = this;
- getEventStatisticsOther({
- deptId: that.dept,
- })
- .then(function(response) {
- that.eventDetails1 = response.data.hgj;
- that.eventDetails2 = response.data.trend;
- that.getEchartssjData1();
- that.getEchartssjData2();
- console.log(response.data);
- })
- .catch(function(error) {
- console.error(error);
- });
- },
- // 实时关注统计
- getAnalysisReport() {
- let that = this;
- getAnalysisReport({
- deptId: that.dept,
- })
- .then(function(response) {
- that.fireLossStatistics = response.data.fireLoss;
- if (response.data.fireSource.length > 0)
- that.statisticsCausesFire = response.data.fireSource;
- else
- that.statisticsCausesFire = [{
- num: 0,
- max: 500,
- name: "",
- }, ];
- if (response.data.firePlace.length > 0)
- that.statisticsFireSites = response.data.firePlace;
- else
- that.statisticsFireSites = [{
- num: 0,
- max: 500,
- name: "",
- }, ];
- if (response.data.fireInfo.length > 0)
- that.fireSituation = response.data.fireInfo;
- else
- that.fireSituation = [{
- num: 0,
- name: "",
- }, ];
- that.getEchartstkData1();
- that.getEchartstkData2();
- that.getEchartstkData3();
- that.getEchartstkData4();
- console.log(response.data);
- })
- .catch(function(error) {
- console.error(error);
- });
- },
- //四长tab切换点击事件
- szHandleClick(tab, e) {
- console.log("点击了四长tab标签", tab, e);
- this.linName = "";
- this.heName = "";
- this.luName = "";
- this.tianName = "";
- if (tab.index == 0) {
- this.fourLengthOverTree(1); // 林长
- } else if (tab.index == 1) {
- this.fourLengthOverTree(6); // 田长
- } else if (tab.index == 2) {
- this.fourLengthOverTree(3); // 路长
- } else if (tab.index == 3) {
- this.fourLengthOverTree(2); //河长
- }
- },
- fourLengthOverview() {
- let that = this;
- fourLengthOverview({
- deptId: that.dept,
- })
- .then(function(response) {
- console.log("fourLengthOverview response=", response.data);
- that.fourLengthStatistics.list = response.data.patrol;
- that.fourLengthStatistics.TotalNumberofPeople = response.data.total;
- that.fourLeadersChart();
- })
- .catch(function(error) {
- console.error(error);
- });
- },
- // 获取四长概况数据 新功能 已改版
- fourLengthOverviewOther() {
- let that = this;
- //commandCenter/overview 四长概况 get请求 入参deptId 部门id
- fourLengthOverviewOther({
- deptId: that.dept,
- })
- .then(function(response) {
- console.log("response=", response);
- if (response.data.task.length > 0) {
- for (let i = 0; i < response.data.task.length; i++) {
- if (response.data.task[i].name == "1") {
- that.fourLengthTask[0].value = response.data.task[i].num;
- } else if (response.data.task[i].name == "2") {
- that.fourLengthTask[1].value = response.data.task[i].num;
- } else if (response.data.task[i].name == "3") {
- that.fourLengthTask[2].value = response.data.task[i].num;
- } else if (response.data.task[i].name == "6") {
- that.fourLengthTask[3].value = response.data.task[i].num;
- }
- }
- }
- if (response.data.plan.length > 0) {
- for (let i = 0; i < response.data.plan.length; i++) {
- if (response.data.task[i].name == "1") {
- that.fourLengthPlan[0] = response.data.plan[i].num;
- } else if (response.data.plan[i].name == "2") {
- that.fourLengthPlan[1] = response.data.plan[i].num;
- } else if (response.data.plan[i].name == "3") {
- that.fourLengthPlan[2] = response.data.plan[i].num;
- } else if (response.data.plan[i].name == "6") {
- that.fourLengthPlan[3] = response.data.plan[i].num;
- }
- }
- }
- if (
- response.data.structure != null &&
- response.data.structure != undefined
- ) {
- that.overview[0] = response.data.structure["1"];
- that.overview[1] = response.data.structure["2"];
- that.overview[2] = response.data.structure["3"];
- that.overview[3] = response.data.structure["4"];
- }
- that.fourLeaderChartPop();
- that.fourLeaderChartPop2();
- that.fourLeaderChartPop3();
- console.log(response.data);
- })
- .catch(function(error) {
- console.error(error);
- });
- },
- // 获取重点区域数据
- getImportAreaList1() {
- let that = this;
- that.queryParams.deptId = that.dept;
- getImportAreaListOne(that.queryParams)
- .then(function(response) {
- that.keyAreasListList = response.rows;
- that.total1 = response.total;
- })
- .catch(function(error) {
- console.error(error);
- });
- },
- // 获取重点区域数据
- getImportAreaList() {
- let that = this;
- getImportAreaList({
- deptId: that.dept,
- })
- .then(function(response) {
- that.keyAreasList = response.data;
- console.log(response.data);
- })
- .catch(function(error) {
- console.error(error);
- });
- },
- getKeyProjects1() {
- let that = this;
- this.queryParams1.deptId = this.dept;
- getKeyProjectsOne(this.queryParams1)
- .then(function(response) {
- that.imgLists = response.rows;
- that.total = response.total;
- })
- .catch(function(error) {
- console.error(error);
- });
- },
- // 获取重点工程数据
- getKeyProjects() {
- let that = this;
- getKeyProjects({
- deptId: that.dept,
- })
- .then(function(response) {
- console.log(response.data);
- that.imgList = [];
- for (let i = 1; i <= Math.ceil(response.data.length / 6); i++) {
- let data = [];
- let jlength =
- response.data.length - i * 6 < 0 ?
- response.data.length - i * 6 + 6 :
- 6;
- for (let j = 0; j < jlength; j++) {
- data.push({
- projectId: response.data[i * 6 - 6 + j].projectId,
- projectName: response.data[i * 6 - 6 + j].projectName,
- projectTarget: response.data[i * 6 - 6 + j].projectTarget,
- longitude: response.data[i * 6 - 6 + j].longitude,
- latitude: response.data[i * 6 - 6 + j].latitude,
- photoId: response.data[i * 6 - 6 + j].photo_id,
- introduction: response.data[i * 6 - 6 + j].introduction,
- cameraList: response.data[i * 6 - 6 + j].cameraList,
- scheduleList: response.data[i * 6 - 6 + j].scheduleList,
- territoriality: response.data[i * 6 - 6 + j].territoriality,
- park: response.data[i * 6 - 6 + j].park,
- parklongitude: response.data[i * 6 - 6 + j].parklongitude,
- parklatitude: response.data[i * 6 - 6 + j].parklatitude,
- environment: response.data[i * 6 - 6 + j].environment,
- legalUnit: response.data[i * 6 - 6 + j].legalUnit,
- startTime: response.data[i * 6 - 6 + j].startTime,
- endTime: response.data[i * 6 - 6 + j].endTime,
- naturer: response.data[i * 6 - 6 + j].naturer,
- totalInvest: response.data[i * 6 - 6 + j].totalInvest,
- yearInvest: response.data[i * 6 - 6 + j].yearInvest,
- industryType: response.data[i * 6 - 6 + j].industryType,
- principal: response.data[i * 6 - 6 + j].principal,
- phone: response.data[i * 6 - 6 + j].phone,
- });
- }
- that.imgList.push(data);
- }
- console.log(111111, that.imgList);
- })
- .catch(function(error) {
- console.error(error);
- });
- },
- resourcesClick() {
- this.getResourceType(this.resourcesType);
- this.markersList = [];
- // this.$refs.supermap.clearM();
- // this.getEventPoint()
- //this.resourcesCheckList = []
- console.log(this.resourcesCheckList);
- },
- getResourceType(resourcesType) {
- let type = this.resourcesTypeList.filter(item => item.id == resourcesType)[0].name
- let that = this;
- // that.resourcesCheckList = []
- that.resourcesList = [];
- // this.$refs.supermap.clearM();
- // this.$refs.supermap.clearMRadius();
- fireControlViewList(type, 'leader').then(function(res) {
- for (let i = 0; i < res.data.length; i++) {
- if (res.data[i].type != 'centerdata_t_forest_fireteam') {
- that.resourcesList.push(res.data[i]);
- }
- }
- if (resourcesType == 8 || resourcesType == 5) {
- that.resourcesList = that.resourcesList.filter(item => item.type != 'centerdata_t_forest_fireteam')
- }
- //截取data.resourceTable字段中“_”分隔符最后一个作为关键字,重新拼接成前端需要的图标:class,格式sj-icon-xxxx,将其set回原数组
- that.resourcesList.forEach(function(data, index) {
- data.name = data.name.replaceAll("(", '(' + data.num)
- that.resourcesList.splice(index, 1, data)
- //that.$set(that.resourcesList[index], "name", );
- // //每个图标对应固定颜色
- // that.$set(that.resourcesList[index], "bg", getIconBg(icon));
- });
- //that.fireControlViewPoint("xiaofang", "");
- });
- },
- getResourcePoint() {
- let that = this;
- this.markersList = [];
- this.$refs.supermap.clearM();
- let str = this.resourcesCheckList.join(",")
- if (str == '' || str == null) return;
- const param = {
- type: str,
- deptId: that.deptId,
- name: '',
- assort: 'leader'
- }
- //this.resourcesCheckList.forEach((item) => {
- fireControlViewPointPost(param).then((res) => {
- console.log(that.deptId)
- let resList1 = [];
- resList1 = res.data;
- console.log("resList1=", resList1)
- resList1.forEach((item2) => {
- let markersMap = {
- lng: item2.longitude,
- lat: item2.latitude,
- icon: "marker",
- bindPopupHtml: "",
- click: "",
- keepBindPopup: false,
- isAggregation: false,
- };
- this.markersList.push(this.getMarkersMap1(item2.indexName, markersMap, item2));
- this.$refs.supermap.setMarkers([this.getMarkersMap1(item2.indexName, markersMap, item2)]);
- });
- });
- //});
- },
- getMarkersMap1(resourceTable, markersMap, item) {
- let icon = "sj-icon-map-" + resourceTable.replaceAll("_", "-").replaceAll("@", "-");
- item.type = resourceTable
- markersMap.lng = item.longitude;
- markersMap.lat = item.latitude;
- markersMap.click = "sewageOutletClick";
- // if(this.farmingList.includes(resourceTable)){
- // markersMap.click = "sewageOutletClickfarming";
- // }
- markersMap.parameter = item;
- markersMap.icon = icon;
- markersMap.bindPopupHtml =
- '<div class="map-tip">' +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>经纬度:" +
- (item.longitude ? item.longitude : "") +
- "," +
- (item.latitude ? item.latitude : "") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>名称:" +
- (item.name ? item.name : "无") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>地址:" +
- (item.address ? item.address : "无") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>联系人:" +
- (item.contacts ? item.contacts : "无") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span>" +
- "<span>" +
- ' <div class="d-l-con">' +
- ' <div class="d-l-l-text">' +
- " <h4>联系电话:" +
- (item.phone ? item.phone : "无") +
- "</h4>" +
- " </div>" +
- " </div>" +
- " </span></div>";
- console.log(markersMap)
- return markersMap;
- },
- resourcesClose() {
- this.markersList = [];
- // this.$refs.supermap.clearM();
- // this.getEventPoint()
- //this.resourcesCheckList = []
- console.log(this.resourcesCheckList);
- },
- colseClick() {
- this.resourcesCheckList = [];
- this.$refs.supermap.clearM();
- this.getEventPoint();
- },
- getNotCoverPlaces(deptId) {
- let that = this;
- if (that.sideShowCamera) {
- notCoverPlaces(deptId).then((res) => {
- if (res.data != null && Array.isArray(res.data)) {
- that.$refs.supermap.setGraphicsListMultiple(res.data, "rgb(105, 105, 255)", 0.8);
- }
- })
- } else {
- that.$refs.supermap.clearG();
- }
- },
- hideClick() {
- this.showModal7 = false;
- this.getLocation()
- this.showModal6 = false;
- //this.resourcesCheckList=[]
- // this.$refs.supermap.clearM()
- // this.getEventPoint()
- },
- getResourcesType(item) {
- this.$refs.supermap.clearM();
- this.resourcesCheckList = [];
- if (item == "resources_type1") {
- //数字林业
- // this.$refs.supermap.clearM();
- // this.resourcesCheckList = []
- this.resourcesList = [];
- getResourcefire().then((res) => {
- this.resourcesList = res.data;
- });
- } else if (item == "resources_type2") {
- //数字农业
- // this.$refs.supermap.clearM();
- // this.resourcesCheckList = []
- this.resourcesList = [];
- getResourceagriculture().then((res) => {
- this.resourcesList = res.data;
- });
- } else if (item == "resources_type3") {
- //数字水利
- // this.$refs.supermap.clearM();
- // this.resourcesCheckList = []
- this.resourcesList = [];
- getResourcewater().then((res) => {
- this.resourcesList = res.data;
- });
- } else if (item == "resources_type4") {
- //数字环保
- // this.$refs.supermap.clearM();
- // this.resourcesCheckList = []
- this.resourcesList = [];
- getResourceenvironment().then((res) => {
- this.resourcesList = res.data;
- });
- } else if (item == "resources_type5") {
- //数字应急
- // this.$refs.supermap.clearM();
- // this.resourcesCheckList = []
- this.resourcesList = [];
- getResourceemergency().then((res) => {
- this.resourcesList = res.data;
- });
- } else if (item == "resources_type6") {
- //数字交通
- // this.$refs.supermap.clearM();
- // this.resourcesCheckList = []
- this.resourcesList = [];
- getResourcesCounttraffic().then((res) => {
- this.resourcesList = res.data;
- });
- } else if (item == "resources_type7") {
- //数字资源
- // this.$refs.supermap.clearM();
- // this.resourcesCheckList = []
- this.resourcesList = [];
- getResourceres().then((res) => {
- this.resourcesList = res.data;
- });
- } else if (item == "resources_type8") {
- //数字消防
- // this.$refs.supermap.clearM();
- // this.resourcesCheckList = []
- this.resourcesList = [];
- fireControlViewList().then((res) => {
- this.resourcesList = res.data;
- });
- }
- },
- //重置重点工程和重点区域的搜索框
- resetting(type) {
- if (type == 2) {
- this.queryParams = {
- pageNum: 1,
- pageSize: 10,
- deptId: null,
- params: {
- areaName: null,
- projectLevel: null,
- },
- };
- this.getImportAreaList1();
- } else {
- this.queryParams1 = {
- pageNum: 1,
- pageSize: 10,
- deptId: null,
- params: {
- projectName: null,
- projectLevel: null,
- },
- };
- this.getKeyProjects1();
- }
- },
- // 获取事件统计数据
- getEventStatistics() {
- let that = this;
- getEventStatistics({
- deptId: that.dept,
- })
- .then(function(response) {
- let data = response.data;
- that.eventStatistics.processedNum = data.status[0].processed;
- that.eventStatistics.totalNum = data.status[0].num;
- that.eventStatistics.untreatedNum = data.status[0].unprocessed;
- that.eventStatistics.eventList = [];
- for (let i = 0; i < data.type.length; i++) {
- that.eventStatistics.eventList.push({
- name: data.type[i].name,
- value: data.type[i].num,
- });
- }
- // 刷新事件统计
- that.getEchartsj2Data();
- console.log(response.data);
- })
- .catch(function(error) {
- console.error(error);
- });
- },
- // 展示下载操作手册列表
- showDownloadList(type) {
- let that = this;
- that.isShowDownloadList = true;
- this.showModal7 = false;
- this.showModal6 = false;
- if (type == "1") {
- searchAllYouWant({
- keyWord: this.fileNameS,
- })
- .then(function(response) {
- console.log(response.data);
- that.downloadList = response.data;
- })
- .catch(function(error) {
- console.error(error);
- });
- }
- },
- // 关闭下载操作手册列表
- cancelShowDownloadList() {
- this.fileNameS = ""
- this.downloadList = []
- },
- // 下载操作手册
- download(path) {
- window.open(path);
- },
- // 获取实时关注数据
- getDeptEventCount() {
- let that = this;
- getDeptEventCount({
- deptId: that.dept,
- })
- .then(function(response) {
- that.interestList = response.data;
- that.getEchartData();
- console.log(response.data);
- })
- .catch(function(error) {
- console.error(error);
- });
- },
- dropLocation(latitude, longitude, leve) {
- //摄像头定位
- this.$refs.supermap.dropLocation(latitude, longitude, leve);
- },
- rightDeptName(value) {
- //摄像头搜索
- this.visuForestCloudCameraBOListSearch = [];
- for (let i in this.visuForestCloudCameraBOList) {
- if (
- this.visuForestCloudCameraBOList[i].cameraName.indexOf(value) != -1
- ) {
- this.visuForestCloudCameraBOListSearch.push(
- this.visuForestCloudCameraBOList[i]
- );
- }
- }
- },
- leftDeptName(value) {
- //摄像头搜索
- this.visuForestCloudMonitorBOListSearch = [];
- for (let i in this.visuForestCloudMonitorBOList) {
- if (
- this.visuForestCloudMonitorBOList[i].cameraName.indexOf(value) != -1
- ) {
- this.visuForestCloudMonitorBOListSearch.push(
- this.visuForestCloudMonitorBOList[i]
- );
- }
- }
- },
- // 实时关注
- getEchartData() {
- let totalList = [];
- let titleList = [];
- let total = 0;
- for (let i = 0; i < this.interestList.length; i++) {
- total += this.interestList[i].num;
- totalList.push(this.interestList[i].num);
- titleList.push(this.interestList[i].name);
- }
- this.interestTotal = total;
- let myChart = this.$echarts.init(document.getElementById("conChart1"));
- // let peoples = [5, 13, 9, 3, 7];
- let maxNumber = Math.max.apply(null, totalList) + 10;
- let maxData = [maxNumber, maxNumber, maxNumber, maxNumber, maxNumber, 1];
- let option = {
- grid: {
- left: "5%",
- right: "5%",
- bottom: "5%",
- top: "10%",
- containLabel: true,
- },
- tooltip: {
- trigger: "axis",
- axisPointer: {
- type: "none",
- },
- formatter: function(params) {
- return (
- params[0].name +
- "<br/>" +
- params[0].seriesName +
- " : " +
- params[0].value +
- "<br/>"
- );
- },
- },
- xAxis: {
- show: false,
- type: "value",
- },
- yAxis: [{
- type: "category",
- inverse: true,
- axisLabel: {
- show: true,
- textStyle: {
- color: "#fff",
- },
- },
- splitLine: {
- show: false,
- },
- axisTick: {
- show: false,
- },
- axisLine: {
- show: false,
- },
- data: titleList,
- },
- {
- type: "category",
- inverse: true,
- axisTick: "none",
- axisLine: "none",
- show: true,
- axisLabel: {
- textStyle: {
- color: "#ffffff",
- fontSize: "12",
- },
- formatter: "{value}",
- },
- data: totalList,
- },
- ],
- series: [{
- name: "事件",
- type: "bar",
- zlevel: 1,
- itemStyle: {
- normal: {
- barBorderRadius: 30,
- color: new echarts.graphic.LinearGradient(0, 0, 1, 0, [{
- offset: 0,
- color: "rgba(0,174,255,0.01)",
- },
- {
- offset: 1,
- color: "rgba(0,174,255,1)",
- },
- ]),
- },
- },
- barWidth: 8,
- data: totalList,
- },
- {
- name: "背景",
- type: "bar",
- barWidth: 8,
- barGap: "-100%",
- data: maxData,
- itemStyle: {
- normal: {
- color: "rgba(255, 255, 255, 0.1)",
- barBorderRadius: 30,
- },
- },
- },
- ],
- };
- myChart.setOption(option);
- },
- // 四长统计
- fourLeadersChart() {
- let salvProName = [];
- let salvProValue = [];
- let max = 0;
- for (let i = 0; i < this.fourLengthStatistics.list.length; i++) {
- salvProValue.push(this.fourLengthStatistics.list[i].num);
- salvProName.push(this.fourLengthStatistics.list[i].name);
- if (this.fourLengthStatistics.list[i].num > max)
- max = this.fourLengthStatistics.list[i].num;
- }
- let myChart = this.$echarts.init(document.getElementById("fourLeaders"));
- let salvProMax = []; //背景按最大值
- for (let i = 0; i < salvProValue.length; i++) {
- salvProMax.push(max);
- }
- let option = {
- backgroundColor: "",
- grid: {
- left: "5%",
- right: "5%",
- bottom: "0%",
- top: "5%",
- containLabel: true,
- },
- tooltip: {
- trigger: "axis",
- axisPointer: {
- type: "none",
- },
- formatter: function(params) {
- return params[0].name + " : " + params[0].value + "公里";
- },
- },
- xAxis: {
- show: false,
- type: "value",
- },
- yAxis: [{
- type: "category",
- inverse: true,
- axisLabel: {
- show: true,
- textStyle: {
- color: "#ffffff",
- fontSize: 11,
- fontWeight: 500,
- },
- },
- splitLine: {
- show: false,
- },
- axisTick: {
- show: false,
- },
- axisLine: {
- show: false,
- },
- data: salvProName,
- },
- {
- type: "category",
- inverse: true,
- axisTick: "none",
- axisLine: "none",
- show: true,
- axisLabel: {
- textStyle: {
- color: "#fff",
- fontSize: "11",
- },
- formatter: function(value) {
- return ((value * 10) / 10).toLocaleString() + "公里";
- },
- },
- data: salvProValue,
- },
- ],
- series: [{
- name: "值",
- type: "bar",
- zlevel: 1,
- itemStyle: {
- normal: {
- // barBorderRadius: 10,
- color: new echarts.graphic.LinearGradient(0, 0, 1, 0, [{
- offset: 0,
- color: "rgb(7,70,114,1)",
- },
- {
- offset: 1,
- color: "rgb(0,225,252,1)",
- },
- ]),
- },
- },
- barWidth: 10,
- data: salvProValue,
- },
- // {
- // name: '背景',
- // type: 'bar',
- // barWidth: 15,
- // barGap: '-100%',
- // data: salvProMax,
- // itemStyle: {
- // normal: {
- // color: 'rgba(24,31,68,1)',
- // barBorderRadius: 30,
- // }
- // },
- // },
- ],
- };
- myChart.setOption(option);
- },
- // 筛选节点
- filterNode(value, data) {
- if (!value) return true;
- return data.label.indexOf(value) !== -1;
- },
- // 事件统计
- getEchartsj2Data() {
- let myChart = this.$echarts.init(document.getElementById("conChart3"));
- let bgColor = "";
- let title = "总量";
- let color = ["#00fdff", "#40fcd5", "#70c5e2", "#51b5ff", "#0e7ce2"];
- let echartData = this.eventStatistics.eventList;
- let formatNumber = function(num) {
- let reg = /(?=(\B)(\d{3})+$)/g;
- return num.toString().replace(reg, ",");
- };
- let total = echartData.reduce((a, b) => {
- return a + b.value * 1;
- }, 0);
- let option = {
- color: color,
- // tooltip: {
- // trigger: 'item'
- // },
- title: [{
- text: "{name|" + title + "}\n{val|" + formatNumber(total) + "}",
- top: "center",
- left: "center",
- textStyle: {
- rich: {
- name: {
- fontSize: 10,
- fontWeight: "normal",
- color: "#fff",
- padding: [0, 0],
- },
- val: {
- fontSize: 10,
- fontWeight: "bold",
- color: "#fff",
- },
- },
- },
- },
- {
- text: "",
- top: 20,
- left: 20,
- textStyle: {
- fontSize: 10,
- color: "#fff",
- },
- },
- ],
- series: [{
- type: "pie",
- radius: ["45%", "60%"],
- center: ["50%", "50%"],
- data: echartData,
- hoverAnimation: false,
- itemStyle: {
- normal: {
- borderColor: bgColor,
- borderWidth: 0,
- shadowColor: "#1274ac",
- },
- emphasis: {
- borderColor: bgColor,
- borderWidth: 0,
- shadowBlur: 8,
- shadowColor: "#1274ac",
- },
- },
- labelLine: {
- normal: {
- length: 20,
- length2: 80,
- show: "false",
- lineStyle: {
- color: "#021637",
- show: "false",
- },
- },
- },
- label: {
- normal: {
- formatter: (params) => {
- return (
- "{icon|●}{name|" +
- params.name +
- "}{value|" +
- formatNumber(params.value) +
- "}"
- );
- },
- padding: [0, -100, 8, -100],
- rich: {
- icon: {
- fontSize: 10,
- },
- name: {
- fontSize: 10,
- padding: [0, 5, 0, 4],
- color: "#fff",
- },
- value: {
- fontSize: 10,
- fontWeight: "bold",
- color: "#fff",
- },
- },
- },
- },
- }, ],
- };
- myChart.setOption(option);
- },
- // 重点工程
- // 这里定义一个鼠标移入移出事件,鼠标悬停时停止自动轮播,鼠标移出则重新执行自动轮播
- MouseFun(type) {
- // 停止定时器 // 重新执行定时器
- type == "移入" ? clearTimeout(this.start) : this.gogo();
- },
- // 此为自动轮播定时器
- gogo() {
- this.start = setInterval(() => {
- this.NextFun();
- }, 1500);
- },
- // 这里通过额外封装的节流函数触发 PrevFun() 和 NextFun(),以达到防止重复点击的效果
- throttle(fun) {
- if (this.flag) {
- this.flag = false;
- fun(); // 此为模板中传递进来的PrevFun()或NextFun()函数
- setTimeout(() => {
- this.flag = true;
- }, 1200); // 节流间隔时间
- }
- },
- // 上一张
- PrevFun() {
- if (this.leftVal == 0) {
- // 判断显示的图片 是 第一张时执行
- // this.imgList.length是指循环图片数组的图片个数
- this.ition = 0; // 将过渡时间变成0,瞬间位移到最后一张图
- this.imgShow = this.imgList.length - 1; // 将高亮小点改为最后一张图
- this.leftVal = this.imgList.length * this.imgWidth; // 瞬间移动
- setTimeout(() => {
- // 通过延时障眼法,归原过渡时间,执行真正的“上一张”函数
- this.ition = 0.8;
- this.leftVal -= this.imgWidth;
- }, this.ition * 1000);
- } else {
- // 判断显示的图片 不是 第一张时执行
- this.ition = 0.8;
- this.leftVal -= this.imgWidth;
- this.imgShow--;
- }
- },
- toHome() {
- this.$refs.supermap.clearM();
- this.$refs.supermap.clearMRadius();
- this.$router.push("/newpage");
- },
- // 下一张
- NextFun() {
- if (this.leftVal == (this.imgList.length - 1) * this.imgWidth) {
- // 判断显示的图片 是 最后一张时执行
- this.ition = 0.8;
- this.leftVal += this.imgWidth;
- this.imgShow = 0;
- setTimeout(() => {
- this.ition = 0;
- this.leftVal = 0;
- }, this.ition * 1000);
- } else {
- // 判断显示的图片 不是 最后一张时执行
- this.ition = 0.8;
- this.leftVal += this.imgWidth;
- this.imgShow++;
- }
- },
- // 点击小圆点
- instFun(index) {
- this.ition = 0.8;
- this.leftVal = index * this.imgWidth;
- this.imgShow = index;
- },
- //重点区域
- changes(key) {
- this.num = key;
- },
- // 实时关注弹框
- fn1() {
- this.showModal = !this.showModal;
- this.getAnalysisReport();
- this.showModal7 = false;
- this.showModal6 = false;
- this.getLocation()
- },
- fn6() {
- this.getKeyProjects1();
- this.showModal6 = !this.showModal6;
- this.showModal7 = false;
- this.getLocation()
- console.log(this.imgList);
- },
- out6() {
- document.addEventListener("click", (e) => {
- let lt6 = document.getElementById("leader-tkbg6");
- let pagination1 = document.getElementById("pagination1");
- let box6 = document.getElementById("box6");
- if (lt6.contains(e.target) && box6.contains(e.target)) {
- this.showModal6 = false;
- }
- });
- },
- out7() {
- document.addEventListener("click", (e) => {
- let lt7 = document.getElementById("leader-tkbg7");
- let box7 = document.getElementById("box7");
- if (lt7.contains(e.target) && box7.contains(e.target)) {
- this.showModal7 = false;
- }
- });
- },
- fn7() {
- this.getImportAreaList1();
- this.showModal6 = false;
- this.getLocation()
- this.showModal7 = !this.showModal7;
- },
- out() {
- this.showModal = false;
- this.showModa2 = false;
- this.showModa3 = false;
- this.showModa4 = false;
- },
- out1() {
- document.addEventListener("click", (e) => {
- let lt = document.getElementById("leader-tkbg");
- let box1 = document.getElementById("box1");
- if (!lt.contains(e.target) && !box1.contains(e.target)) {
- this.showModal = false;
- }
- });
- },
- // 四长统计弹框
- fn2() {
- this.fourLengthOverTree(1);
- this.fourLengthOverviewOther();
- this.showModa2 = !this.showModa2;
- this.szActiveName = "lin"
- this.showModal7 = false;
- this.showModal6 = false;
- this.getLocation()
- },
- out2() {
- document.addEventListener("click", (e) => {
- let lt2 = document.getElementById("leader-tkbg2");
- let box2 = document.getElementById("box2");
- if (!lt2.contains(e.target) && !box2.contains(e.target)) {
- this.showModa2 = false;
- }
- });
- },
- // 事件统计弹框
- fn3() {
- this.showModa3 = !this.showModa3;
- this.getEventStatisticsOther();
- this.showModal7 = false;
- this.showModal6 = false;
- this.getLocation()
- },
- out3() {
- document.addEventListener("click", (e) => {
- let lt3 = document.getElementById("leader-tkbg3");
- let box3 = document.getElementById("box3");
- if (!lt3.contains(e.target) && !box3.contains(e.target)) {
- this.showModa3 = false;
- this.$refs.datePickRef.pickerVisible = false
- }
- });
- },
- // 一网通办弹框
- fn4() {
- this.getEchartstbData1();
- this.getEchartstbData2();
- this.showModa4 = !this.showModa4;
- this.showModal7 = false;
- this.showModal6 = false;
- this.getLocation()
- },
- out4() {
- document.addEventListener("click", (e) => {
- let lt4 = document.getElementById("leader-tbbg4");
- let box4 = document.getElementById("box4");
- if (!lt4.contains(e.target) && !box4.contains(e.target)) {
- this.showModa4 = false;
- }
- });
- },
- // 重点工程弹框
- fn5(val, index) {
- this.getLocation()
- // this.showModal7 = false;
- // this.showModal6 = false;
- //电视墙开始
- // this.$refs.TVWallNoRight.showTVWall();
- // this.$refs.supermap.isEditableLayers = false
- // this.$refs.bottomMenu.showChild = false
- // this.$refs.bottomMenu.showBanChild = false
- // this.$refs.bottomMenu.showChangChild = false
- // //电视墙结束
- // this.introductionToKeyProjects = "";
- // this.introductionToKeyProjectsTitle = "";
- // this.introductionToKeyProjectsImg = "";
- // this.introductionToKeyProjects = val.introduction;
- // this.introductionToKeyProjectsTitle = val.projectTarget;
- // this.introductionToKeyProjectsImg = val.photoId;
- // this.preview(val.cameraList.length > 0 ? val.cameraList[0] : {cameraFactory: 3});
- if (index == 1) {
- initByProject(val.projectId).then((res) => {
- this.showModal7 = false;
- this.showModal6 = false;
- this.$refs.TVWall.showTVWall(res.data, {
- longitude: val.longitude,
- latitude: val.latitude
- }, val, "tup");
- });
- } else if (index == 2) {
- initByArea(val.id).then((res) => {
- if (res.data != null && res.data.length == 1 && res.data[0].treeLabels.length > 1) {
- this.showModal7 = false;
- this.showModal6 = false;
- this.$refs.TVWallNoRight.showTVWall(res.data, {
- longitude: val.longitude,
- latitude: val.latitude
- });
- }
- });
- }
- },
- out5() {
- document.addEventListener("click", (e) => {
- let lt5 = document.getElementById("leader-tbbg5");
- let box5 = document.getElementById("box5");
- if (!lt5.contains(e.target) && !box5.contains(e.target)) {
- this.showModa5 = false;
- }
- });
- },
- // 起火原因统计
- getEchartstkData1() {
- let myChart = this.$echarts.init(document.getElementById("tkCharts1"));
- let legendData = ["起火原因"]; //图例
- let num = [];
- let indicator = [];
- for (let i = 0; i < this.statisticsCausesFire.length; i++) {
- num.push(this.statisticsCausesFire[i].num);
- indicator.push({
- text: this.statisticsCausesFire[i].name,
- max: this.statisticsCausesFire[i].max,
- });
- }
- let dataArr = [{
- value: num,
- itemStyle: {
- normal: {
- lineStyle: {
- color: "#55d7f2",
- },
- // shadowColor: '#4A99FF',
- // shadowBlur: 10,
- },
- },
- areaStyle: {
- normal: {
- // 单项区域填充样式
- color: {
- type: "linear",
- x: 1, //右
- y: 0, //下
- x2: 1, //左
- y2: 1, //上
- colorStops: [{
- offset: 0,
- color: "#4A99FF",
- },
- {
- offset: 1,
- color: "rgba(0,0,0,0)",
- },
- ],
- globalCoord: false,
- },
- opacity: 1, // 区域透明度
- },
- },
- }, ];
- let colorArr = ["#55d7f2", "#4BFFFC"]; //颜色
- let option = {
- color: colorArr,
- legend: {
- orient: "vertical",
- // icon: 'circle', //图例形状
- data: legendData,
- top: 20,
- left: 20,
- itemWidth: 8, // 图例标记的图形宽度。[ default: 25 ]
- itemHeight: 8, // 图例标记的图形高度。[ default: 14 ]
- itemGap: 22, // 图例每项之间的间隔。[ default: 10 ]横向布局时为水平间隔,纵向布局时为纵向间隔。
- textStyle: {
- fontSize: 10,
- fontWeight: "bold",
- color: "#00E4FF",
- },
- },
- radar: {
- // shape: 'circle',
- name: {
- textStyle: {
- color: "#fff",
- fontSize: 10,
- },
- },
- indicator: indicator,
- splitArea: {
- // 坐标轴在 grid 区域中的分隔区域,默认不显示。
- show: true,
- areaStyle: {
- // 分隔区域的样式设置。
- color: ["rgba(255,255,255,0)", "rgba(255,255,255,0)"], // 分隔区域颜色。分隔区域会按数组中颜色的顺序依次循环设置颜色。默认是一个深浅的间隔色。
- },
- },
- axisLine: {
- //指向外圈文本的分隔线样式
- lineStyle: {
- color: "#153269",
- },
- },
- splitLine: {
- lineStyle: {
- color: "#2b75d2", // 分隔线颜色
- width: 2, // 分隔线线宽
- },
- },
- },
- series: [{
- type: "radar",
- symbolSize: 8,
- symbol: "circle",
- data: dataArr,
- }, ],
- };
- myChart.setOption(option);
- },
- // 当前防火季火灾损失统计
- getEchartstkData2() {
- let that = this;
- let myChart = this.$echarts.init(document.getElementById("tkCharts2"));
- let xData = [];
- let loss = [];
- let blazes = [];
- let lossCounts = 0;
- let blazesCounts = 0;
- for (let i = 0; i < this.fireLossStatistics.length; i++) {
- xData.push(this.fireLossStatistics[i].month);
- lossCounts += this.fireLossStatistics[i].loss;
- blazesCounts += this.fireLossStatistics[i].blazes;
- loss.push(this.fireLossStatistics[i].loss);
- blazes.push(this.fireLossStatistics[i].blazes);
- }
- that.lossCount = lossCounts
- that.blazesCount = blazesCounts
- let option = {
- tooltip: {
- trigger: "axis",
- axisPointer: {
- lineStyle: {
- color: {
- type: "linear",
- x: 0,
- y: 0,
- x2: 0,
- y2: 1,
- colorStops: [{
- offset: 0,
- color: "rgba(0, 255, 233,0)",
- },
- {
- offset: 0.5,
- color: "rgba(255, 255, 255,1)",
- },
- {
- offset: 1,
- color: "rgba(0, 255, 233,0)",
- },
- ],
- global: false,
- },
- },
- },
- },
- grid: {
- top: "15%",
- left: "10%",
- right: "5%",
- bottom: "15%",
- },
- legend: {
- data: ["火灾损失总价值", "扑火费用总支出"],
- textStyle: {
- color: "#fff",
- align: "center",
- fontSize: 16,
- show: false,
- },
- x: "center",
- },
- xAxis: [{
- type: "category",
- // 轴线
- axisLine: {
- show: true,
- lineStyle: {
- color: "#85B1B4",
- },
- },
- // 轴刻度线
- axisTick: {
- show: false,
- },
- // 坐标轴名称
- axisLabel: {
- color: "#fff",
- margin: 6,
- },
- // 轴分隔线
- splitLine: {
- show: false,
- },
- // 轴两侧留白
- boundaryGap: ["5%", "5%"],
- data: xData,
- }, ],
- yAxis: [{
- type: "value",
- min: 0,
- // max: 140,
- splitNumber: 4,
- splitLine: {
- show: false,
- },
- axisLine: {
- show: true,
- lineStyle: {
- color: "#85B1B4",
- },
- },
- axisLabel: {
- show: true,
- margin: 10,
- textStyle: {
- color: "#fff",
- },
- },
- axisTick: {
- show: false,
- },
- }, ],
- series: [{
- name: "火灾损失总价值",
- type: "line",
- showAllSymbol: true,
- symbol: "circle",
- symbolSize: 4,
- lineStyle: {
- normal: {
- color: "#FF8736",
- },
- },
- label: {
- show: false,
- },
- itemStyle: {
- color: "#FF8736",
- borderColor: "#FF8736",
- borderWidth: 2,
- },
- data: loss,
- },
- {
- name: "扑火费用总支出",
- type: "line",
- showAllSymbol: true,
- symbol: "circle",
- symbolSize: 4,
- lineStyle: {
- normal: {
- color: "#13EFB7",
- },
- },
- label: {
- show: false,
- },
- itemStyle: {
- color: "#13EFB7",
- borderColor: "#13EFB7",
- borderWidth: 2,
- },
- areaStyle: {
- normal: {
- color: new echarts.graphic.LinearGradient(
- 0,
- 0,
- 0,
- 1,
- [{
- offset: 0,
- color: "rgba(81,150,164,0.3)",
- },
- {
- offset: 1,
- color: "rgba(81,150,164,0)",
- },
- ],
- false
- ),
- },
- },
- data: blazes,
- },
- ],
- };
- myChart.setOption(option);
- },
- // 起火场景统计
- getEchartstkData3() {
- let myChart = this.$echarts.init(document.getElementById("tkCharts3"));
- let num = [];
- let indicator = [];
- for (let i = 0; i < this.statisticsFireSites.length; i++) {
- num.push(this.statisticsFireSites[i].num);
- indicator.push({
- text: this.statisticsFireSites[i].name,
- max: this.statisticsFireSites[i].max,
- });
- }
- let option = {
- grid: {
- left: "3%",
- right: "4%",
- bottom: "3%",
- top: "15%",
- containLabel: true,
- },
- tooltip: {},
- dataset: {},
- radar: {
- // shape: 'circle',
- name: {
- textStyle: {
- color: "#fff",
- fontSize: 10,
- },
- },
- axisLine: {
- lineStyle: {
- color: "rgba(255,255,255,.2)",
- },
- },
- splitLine: {
- lineStyle: {
- color: "rgba(255,255,255,.2)",
- },
- },
- splitArea: {
- areaStyle: {
- color: ["rgba(1, 15, 49, 0.86)"],
- },
- },
- indicator: indicator,
- },
- series: [{
- type: "radar",
- symbol: "none",
- data: [{
- value: num,
- name: "起火场景",
- }, ],
- itemStyle: {
- color: "",
- show: false,
- },
- lineStyle: {
- color: "#297fac",
- },
- areaStyle: {
- color: "rgba(68, 255, 253, 0.3)",
- },
- }, ],
- };
- myChart.setOption(option);
- },
- // 防火季火灾发生情况
- getEchartstkData4() {
- let myChart = this.$echarts.init(document.getElementById("tkCharts4"));
- let num = [];
- let name = [];
- for (let i = 0; i < this.fireSituation.length; i++) {
- num.push(this.fireSituation[i].num);
- name.push(this.fireSituation[i].name);
- }
- // fireSituation
- let option = {
- title: {
- text: "",
- x: "center",
- y: "4%",
- textStyle: {
- color: "#fff",
- fontSize: "10",
- },
- subtextStyle: {
- color: "#90979c",
- fontSize: "10",
- },
- },
- tooltip: {
- trigger: "axis",
- axisPointer: {
- type: "shadow",
- },
- },
- grid: {
- top: "20%",
- right: "3%",
- left: "15%",
- bottom: "12%",
- },
- xAxis: [{
- type: "category",
- data: name,
- axisLine: {
- lineStyle: {
- color: "rgba(255,255,255,0.12)",
- },
- },
- axisLabel: {
- margin: 10,
- color: "#e2e9ff",
- textStyle: {
- fontSize: 10,
- },
- },
- }, ],
- yAxis: [{
- // 设置单位
- name: "",
- axisLabel: {
- formatter: "{value}",
- color: "#e2e9ff",
- },
- axisLine: {
- show: true,
- lineStyle: {
- color: "rgba(255,255,255,1)",
- },
- },
- splitLine: {
- lineStyle: {
- color: "rgba(255,255,255,0.12)",
- },
- },
- }, ],
- series: [{
- type: "bar",
- data: num,
- barWidth: "20px",
- itemStyle: {
- normal: {
- color: new echarts.graphic.LinearGradient(
- 0,
- 0,
- 0,
- 1,
- [{
- offset: 0,
- color: "rgba(0,244,255,1)", // 0% 处的颜色
- },
- {
- offset: 1,
- color: "rgba(0,77,167,1)", // 100% 处的颜色
- },
- ],
- false
- ),
- barBorderRadius: [30, 30, 0, 0],
- shadowColor: "rgba(0,160,221,1)",
- shadowBlur: 4,
- },
- },
- label: {
- normal: {
- show: true,
- lineHeight: 20,
- width: 80,
- height: 20,
- backgroundColor: "rgba(0,160,221,0.1)",
- borderRadius: 200,
- position: ["-8", "-46"],
- distance: 1,
- formatter: [" {d|●}", " {a|{c}} \n", " {b|}"].join(
- ","
- ),
- rich: {
- d: {
- color: "#3CDDCF",
- },
- a: {
- color: "#fff",
- align: "center",
- },
- b: {
- width: 1,
- height: 30,
- borderWidth: 1,
- borderColor: "#234e6c",
- align: "left",
- },
- },
- },
- },
- }, ],
- };
- myChart.setOption(option);
- },
- // 事件统计1
- getEchartssjData1() {
- let myChart = this.$echarts.init(document.getElementById("sjCharts1"));
- const man = [];
- const woman = [];
- const indicator = [];
- var bigvalue = 0;
- for (var i in this.eventDetails1) {
- if (this.eventDetails1[i].processed > bigvalue) {
- bigvalue = this.eventDetails1[i].processed;
- }
- if (this.eventDetails1[i].inprocess > bigvalue) {
- bigvalue = this.eventDetails1[i].inprocess;
- }
- }
- for (let i = 0; i < this.eventDetails1.length; i++) {
- man.push(this.eventDetails1[i].processed);
- woman.push(this.eventDetails1[i].inprocess);
- indicator.push({
- name: this.eventDetails1[i].name,
- max: bigvalue,
- });
- }
- let option = {
- tooltip: {
- trigger: "item",
- },
- color: ["#068AC3", "#B2782C"],
- legend: {
- icon: "roundRect",
- // left: '47%',
- top: "90%",
- show: true,
- padding: [3, 5],
- // right: '50',
- y: "1",
- center: 0,
- itemWidth: 20,
- itemHeight: 10,
- itemGap: 26,
- z: 3,
- // orient: 'horizontal',
- data: ["已处理", "待处理"],
- textStyle: {
- fontSize: 10,
- color: "#F1F7FF",
- },
- },
- radar: {
- center: ["50%", "45%"], // 外圆的位置
- radius: "55%",
- name: {
- textStyle: {
- color: "#fff",
- fontSize: 15,
- fontWeight: 400,
- fontFamily: "PingFangSC-Regular,PingFang SC",
- fontStyle: "italic",
- },
- },
- // TODO:
- indicator: indicator,
- splitArea: {
- // 坐标轴在 grid 区域中的分隔区域,默认不显示。
- show: true,
- areaStyle: {
- // 分隔区域的样式设置。
- color: ["#00224A", "#00224A", "#00224A", "#00224A",
- "#00224A"
- ], // 画布颜色 // 分隔区域颜色。分隔区域会按数组中颜色的顺序依次循环设置颜色。默认是一个深浅的间隔色。
- },
- },
- axisLine: {
- // 指向外圈文本的分隔线样式
- lineStyle: {
- color: "rgba(255,255,255,0.2)",
- },
- },
- splitLine: {
- lineStyle: {
- type: "solid",
- color: ["#1781BA", "#1781BA"], // 分隔线颜色
- width: 1, // 分隔线线宽
- },
- },
- },
- series: [{
- type: "radar",
- symbolSize: 5,
- data: [{
- // TODO:
- value: man,
- name: "已处理",
- areaStyle: {
- normal: {
- color: {
- type: "radial",
- x: 0.5,
- y: 0.5,
- r: 0.5,
- colorStops: [{
- offset: 0,
- color: "rgba(46,203,255, 0.14)", // 0% 处的颜色
- },
- {
- offset: 0.15,
- color: "rgba(46,203,255, 0.14)", // 100% 处的颜色
- },
- {
- offset: 0.75,
- color: "#057FB3", // 100% 处的颜色
- },
- {
- offset: 1,
- color: "#078DC6", // 100% 处的颜色
- },
- ],
- global: false, // 缺省为 false
- },
- },
- },
- itemStyle: {
- // 折线拐点标志的样式。
- normal: {
- // 普通状态时的样式
- lineStyle: {
- width: 1,
- },
- opacity: 0.3,
- },
- emphasis: {
- // 高亮时的样式
- lineStyle: {
- width: 5,
- },
- opacity: 0,
- },
- },
- },
- {
- // TODO:
- value: woman,
- name: "待处理",
- areaStyle: {
- normal: {
- color: {
- type: "radial",
- x: 0.5,
- y: 0.5,
- r: 0.5,
- colorStops: [{
- offset: 0,
- color: "rgba(255, 127,0, 0.14)", // 0% 处的颜色
- },
- {
- offset: 0.15,
- color: "rgba(255, 127,0, 0.14)", // 100% 处的颜色
- },
- {
- offset: 0.75,
- color: "rgba(2255, 127,0, 0.4)", // 100% 处的颜色
- },
- {
- offset: 1,
- color: "rgba(255, 127,0, 0.5)", // 100% 处的颜色
- },
- ],
- global: false, // 缺省为 false
- },
- },
- },
- itemStyle: {
- // 折线拐点标志的样式。
- normal: {
- // 普通状态时的样式
- lineStyle: {
- width: 1,
- },
- opacity: 0.3,
- },
- emphasis: {
- // 高亮时的样式
- lineStyle: {
- width: 5,
- },
- opacity: 0,
- },
- },
- },
- ],
- }, ],
- };
- myChart.setOption(option);
- },
- // 事件统计2
- getEchartssjData2() {
- let myChart = this.$echarts.init(document.getElementById("sjCharts2"));
- let num = [];
- let time = [];
- let eventTrend =
- "事件趋势 (" + this.eventDetails2[0].name.split("-")[0] + "年)"; // 事件趋势(2023年)
- for (let i = 0; i < this.eventDetails2.length; i++) {
- num.push(this.eventDetails2[i].num);
- time.push(this.eventDetails2[i].name.split("-")[1] + "月");
- // time.push(this.eventDetails2[i].name);
- console.log("this.eventDetails2[i].name=", this.eventDetails2[i].name);
- }
- let option = {
- title: {
- // text: '近6月的平台趋势分析',
- textStyle: {
- align: "center",
- color: "#fff",
- fontSize: 10,
- },
- top: "0%",
- left: "center",
- },
- tooltip: {
- trigger: "axis",
- },
- legend: {
- data: [eventTrend], // 事件趋势 标题
- top: "-1%",
- left: "5%",
- // bottom:'0%',
- textStyle: {
- align: "center",
- color: "#fff",
- fontSize: 10,
- },
- },
- grid: {
- left: "3%",
- right: "2%",
- top: "3%",
- bottom: "0%",
- containLabel: true,
- },
- // toolbox: {
- // feature: {
- // saveAsImage: {}
- // }
- // },
- xAxis: {
- type: "category",
- boundaryGap: false, //坐标轴两边留白
- data: time,
- axisLabel: {
- //坐标轴刻度标签的相关设置。
- interval: 0, //设置为 1,表示『隔一个标签显示一个标签』
- // margin:15,
- textStyle: {
- color: "#fff",
- fontStyle: "normal",
- fontFamily: "微软雅黑",
- fontSize: 10,
- },
- formatter: function(params) {
- var newParamsName = "";
- var paramsNameNumber = params.length;
- var provideNumber = 4; //一行显示几个字
- var rowNumber = Math.ceil(paramsNameNumber / provideNumber);
- if (paramsNameNumber > provideNumber) {
- for (var p = 0; p < rowNumber; p++) {
- var tempStr = "";
- var start = p * provideNumber;
- var end = start + provideNumber;
- if (p == rowNumber - 1) {
- tempStr = params.substring(start, paramsNameNumber);
- } else {
- tempStr = params.substring(start, end) + "\n";
- }
- newParamsName += tempStr;
- }
- } else {
- newParamsName = params;
- }
- return newParamsName;
- },
- //rotate:50,
- },
- axisTick: {
- //坐标轴刻度相关设置。
- show: false,
- },
- axisLine: {
- //坐标轴轴线相关设置
- lineStyle: {
- color: "#CAFFFD",
- opacity: 0.3,
- },
- },
- splitLine: {
- //坐标轴在 grid 区域中的分隔线。
- show: false,
- lineStyle: {
- color: "#E5E9ED",
- // opacity:0.1
- },
- },
- },
- yAxis: [{
- type: "value",
- min: 0,
- splitNumber: 5,
- axisLabel: {
- textStyle: {
- color: "#EEEEEE",
- fontStyle: "normal",
- fontFamily: "微软雅黑",
- fontSize: 10,
- },
- },
- axisLine: {
- show: true,
- lineStyle: {
- color: "#CAFFFD",
- opacity: 0.3,
- },
- },
- axisTick: {
- show: false,
- },
- splitLine: {
- show: true,
- lineStyle: {
- type: "dashed",
- color: "rgba(202, 255, 253, 0.2)",
- // opacity:0.1
- },
- },
- }, ],
- series: [{
- name: eventTrend, // 事件趋势 图表
- type: "line",
- smooth: true,
- symbol: "circle",
- symbolSize: 10,
- itemStyle: {
- normal: {
- color: "rgba(43, 185, 251, 1)",
- shadowColor: "#2bb9fb",
- shadowBlur: 20,
- borderColor: "#2bb9fb",
- borderWidth: 2,
- lineStyle: {
- color: "#2bb9fb",
- width: 1,
- },
- areaStyle: {
- color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [{
- offset: 0,
- color: "rgba(0,0,0,0)",
- },
- {
- offset: 1,
- color: "rgba(43, 185, 251, 1)",
- },
- ]),
- },
- },
- },
- data: num,
- }, ],
- };
- myChart.setOption(option);
- },
- // 一网通办1
- getEchartstbData1() {
- let myChart = this.$echarts.init(document.getElementById("tbCharts1"));
- let charts = {
- // 按顺序排列从大到小
- cityList: [
- this.networkprocessingData.top1DeptName,
- this.networkprocessingData.top2DeptName,
- this.networkprocessingData.top3DeptName,
- this.networkprocessingData.top4DeptName,
- this.networkprocessingData.top5DeptName,
- ],
- cityData: [
- this.networkprocessingData.top1CompletionNumber,
- this.networkprocessingData.top2CompletionNumber,
- this.networkprocessingData.top3CompletionNumber,
- this.networkprocessingData.top4CompletionNumber,
- this.networkprocessingData.top5CompletionNumber,
- ],
- };
- let top10CityList = charts.cityList;
- let top10CityData = charts.cityData;
- let color = ["#ff9500", "#02d8f9", "#027fff"];
- let color1 = ["#ffb349", "#70e9fc", "#4aa4ff"];
- let lineY = [];
- let lineT = [];
- for (var i = 0; i < charts.cityList.length; i++) {
- let x = i;
- if (x > 1) {
- x = 2;
- }
- let data = {
- name: charts.cityitem,
- color: color[x],
- value: top10CityData[i],
- barGap: "-100%",
- itemStyle: {
- normal: {
- show: true,
- color: new echarts.graphic.LinearGradient(
- 0,
- 0,
- 1,
- 0,
- [{
- offset: 0,
- color: color[x],
- },
- {
- offset: 1,
- color: color1[x],
- },
- ],
- false
- ),
- barBorderRadius: 5,
- },
- emphasis: {
- shadowBlur: 5,
- shadowColor: "rgba(0, 0, 0, 0.1)",
- },
- },
- };
- let data1 = {
- value: top10CityData[0],
- itemStyle: {
- color: "#001235",
- barBorderRadius: 5,
- },
- };
- lineY.push(data);
- lineT.push(data1);
- }
- let backTop = [];
- for (var i = top10CityData.length - 1; i >= 0; i--) {
- backTop.push(top10CityData[i]);
- }
- let option = {
- title: {
- show: false,
- },
- tooltip: {
- trigger: "item",
- formatter: function(p) {
- if (p.seriesName === "total") {
- return "";
- }
- return p.name + "<br/>" + p.value;
- },
- textStyle: {
- fontSize: 10,
- color: "#fff",
- },
- },
- grid: {
- borderWidth: 0,
- top: "8%",
- left: "5%",
- right: "15%",
- bottom: "6%",
- },
- color: color,
- yAxis: [{
- type: "category",
- inverse: true,
- axisTick: {
- show: false,
- },
- axisLine: {
- show: false,
- },
- axisLabel: {
- show: false,
- inside: false,
- },
- data: top10CityList,
- },
- {
- type: "category",
- axisLine: {
- show: false,
- },
- axisTick: {
- show: false,
- },
- axisLabel: {
- interval: 0,
- color: "#e3c478",
- align: "right",
- margin: 40,
- fontSize: 10,
- formatter: function(val) {
- return val;
- },
- },
- splitArea: {
- show: false,
- },
- splitLine: {
- show: false,
- },
- data: backTop,
- },
- ],
- xAxis: {
- type: "value",
- axisTick: {
- show: false,
- },
- axisLine: {
- show: false,
- },
- splitLine: {
- show: false,
- },
- axisLabel: {
- show: false,
- },
- },
- series: [{
- name: "total",
- type: "bar",
- zlevel: 1,
- barGap: "-100%",
- barWidth: "6px",
- data: lineT,
- legendHoverLink: false,
- },
- {
- name: "bar",
- type: "bar",
- zlevel: 2,
- barWidth: "6px",
- data: lineY,
- label: {
- normal: {
- color: "#b3ccf8",
- show: true,
- position: [0, "-12px"],
- textStyle: {
- fontSize: 10,
- },
- formatter: function(a) {
- let num = "";
- let str = "";
- num = "NO." + (a.dataIndex + 1);
- if (a.dataIndex === 0) {
- str = "{color1|" + num + "} {color4|" + a.name + "}";
- } else if (a.dataIndex === 1) {
- str = "{color2|" + num + "} {color4|" + a.name + "}";
- } else {
- str = "{color3|" + num + "} {color4|" + a.name + "}";
- }
- return str;
- },
- rich: {
- color1: {
- color: "#ff9500",
- fontWeight: 700,
- fontSize: 10,
- },
- color2: {
- color: "#02d8f9",
- fontWeight: 700,
- fontSize: 10,
- },
- color3: {
- color: "#027fff",
- fontWeight: 700,
- fontSize: 10,
- },
- color4: {
- color: "#e5eaff",
- fontSize: 10,
- },
- },
- },
- },
- },
- ],
- };
- myChart.setOption(option);
- },
- // 一网通办2
- getEchartstbData2() {
- let myChart = this.$echarts.init(document.getElementById("tbCharts2"));
- let option = {
- tooltip: {
- show: true,
- trigger: "axis",
- axisPointer: {
- // 坐标轴指示器,坐标轴触发有效
- type: "line", // 默认为直线,可选为:'line' | 'shadow'
- //修改指识线的颜色
- lineStyle: {
- color: "transparent",
- },
- },
- formatter: function(params) {
- console.log(params);
- },
- },
- grid: {
- top: 40,
- bottom: 40,
- left: 30,
- right: 20,
- },
- xAxis: [{
- type: "category",
- axisTick: {
- show: false,
- alignWithLabel: true, //true 的时候有效,可以保证刻度线和标签对齐
- },
- axisLine: {
- lineStyle: {
- color: "#fff",
- },
- },
- data: ["满意", "基本满意", "不满意"],
- }, ],
- yAxis: [{
- type: "value",
- splitLine: {
- show: true,
- lineStyle: {
- color: "rgba(136, 159, 204, .2)",
- },
- },
- axisLine: {
- show: false,
- lineStyle: {
- color: "#374158",
- },
- },
- axisTick: {
- show: false,
- },
- }, ],
- //手势放大柱状图折线图
- dataZoom: {
- type: "inside",
- },
- series: [{
- //给折线图下方添加阴影
- areaStyle: {
- normal: {
- color: new echarts.graphic.LinearGradient(
- 0,
- 0,
- 0,
- 1,
- [{
- offset: 0,
- color: "rgba(59, 34, 201,.4)",
- },
- {
- offset: 1,
- color: "rgba(16, 25, 112,0.2)",
- },
- ],
- false
- ),
- shadowColor: "rgba(59, 34, 201,1)",
- shadowBlur: 10,
- },
- },
- name: "2017 降水量",
- type: "line",
- smooth: true,
- itemStyle: {
- normal: {
- show: false,
- color: "#0d3d8d", //改变折线点的颜色
- lineStyle: {
- color: "#0d3d8d", //改变折线颜色
- },
- label: {
- show: false, //开启显示
- position: "top", //在上方显示
- textStyle: {
- //数值样式
- color: "#fff",
- fontSize: 10,
- },
- },
- },
- emphasis: {
- show: true,
- color: "#0d3d8d",
- borderColor: "#ffffff",
- label: {
- show: true, //开启显示
- position: "top", //在上方显示
- textStyle: {
- //数值样式
- color: "#fff",
- fontSize: 10,
- padding: [10, 10, 10, 10],
- backgroundColor: "rgba(24, 71, 185, .6)",
- borderRadius: 4,
- },
- },
- },
- },
- // data: ['非常满意', '满意', '基本满意', '不满意', '非常不满意']
- data: [
- // this.networkprocessingData.verySatisfied,
- this.networkprocessingData.satisfied,
- this.networkprocessingData.basicallySatisfied,
- this.networkprocessingData.dissatisfied,
- // this.networkprocessingData.veryDissatisfied,
- ],
- }, ],
- };
- myChart.setOption(option);
- },
- //四长弹层统计1
- fourLeaderChartPop() {
- let that = this;
- that.overviewPercentCount =
- that.overview[0] +
- that.overview[1] +
- that.overview[2] +
- that.overview[3];
- let myChart = this.$echarts.init(document.getElementById("szCharts1"));
- var dataStyle = {
- normal: {
- label: {
- show: false,
- },
- labelLine: {
- show: false,
- },
- shadowBlur: 0,
- shadowColor: "#203665",
- },
- };
- let option = {
- series: [{
- name: "第一个圆环",
- type: "pie",
- clockWise: false,
- radius: [100, 80],
- itemStyle: dataStyle,
- hoverAnimation: false,
- center: ["12%", "50%"],
- data: [{
- // value: 70,
- value: that.overview[0],
- percent: that.overviewPercentCount,
- label: {
- normal: {
- rich: {
- a: {
- color: "#7DB2FF",
- align: "center",
- fontSize: 18,
- fontWeight: "bold",
- },
- b: {
- color: "#E7E9FF",
- align: "center",
- fontSize: 14,
- },
- },
- formatter: function(params) {
- return (
- "{b|一岗一人}\n\n" +
- "{a|" +
- params.data.value +
- "人}" +
- "\n\n{b|" +
- (params.data.percent != 0 ?
- parseFloat(
- (params.data.value / params.data.percent) * 100
- ).toFixed(2) :
- 0) +
- "%}"
- );
- },
- position: "center",
- show: true,
- textStyle: {
- fontSize: "14",
- fontWeight: "normal",
- color: "#fff",
- },
- },
- },
- itemStyle: {
- normal: {
- color: {
- colorStops: [{
- offset: 0,
- color: "#3CDDFF", // 0% 处的颜色
- },
- {
- offset: 1,
- color: "#4084FF", // 100% 处的颜色
- },
- ],
- },
- shadowColor: "#5FB878",
- shadowBlur: 0,
- },
- },
- },
- {
- value: that.overviewPercentCount - that.overview[0],
- name: "invisible",
- itemStyle: {
- normal: {
- color: "#154a75",
- },
- },
- },
- ],
- },
- {
- name: "第二个圆环",
- type: "pie",
- clockWise: false,
- radius: [100, 80],
- itemStyle: dataStyle,
- hoverAnimation: false,
- center: ["37%", "50%"],
- data: [{
- // value: 24,
- value: that.overview[1],
- percent: that.overviewPercentCount,
- label: {
- normal: {
- rich: {
- a: {
- color: "#7DB2FF",
- align: "center",
- fontSize: 18,
- fontWeight: "bold",
- },
- b: {
- color: "#E7E9FF",
- align: "center",
- fontSize: 14,
- },
- },
- formatter: function(params) {
- return (
- "{b|双岗一人}\n\n" +
- "{a|" +
- params.data.value +
- "人}" +
- "\n\n{b|" +
- (params.data.percent != 0 ?
- parseFloat(
- (params.data.value / params.data.percent) * 100
- ).toFixed(2) :
- 0) +
- "%}"
- // "\n\n{b|"+300+"%}"
- );
- },
- position: "center",
- show: true,
- textStyle: {
- fontSize: "14",
- fontWeight: "normal",
- color: "#fff",
- },
- },
- },
- itemStyle: {
- normal: {
- color: {
- colorStops: [{
- offset: 0,
- color: "#3CDDFF", // 0% 处的颜色
- },
- {
- offset: 1,
- color: "#4084FF", // 100% 处的颜色
- },
- ],
- },
- shadowColor: "#01AAED",
- shadowBlur: 0,
- },
- },
- },
- {
- value: that.overviewPercentCount - that.overview[1],
- name: "invisible",
- itemStyle: {
- normal: {
- color: "#154a75",
- },
- },
- },
- ],
- },
- {
- name: "第三个圆环",
- type: "pie",
- clockWise: false,
- radius: [100, 80],
- itemStyle: dataStyle,
- hoverAnimation: false,
- center: ["62%", "50%"],
- data: [{
- // value: 11,
- value: that.overview[2],
- percent: that.overviewPercentCount,
- label: {
- normal: {
- rich: {
- a: {
- color: "#7DB2FF",
- align: "center",
- fontSize: 18,
- fontWeight: "bold",
- },
- b: {
- color: "#E7E9FF",
- align: "center",
- fontSize: 14,
- },
- },
- formatter: function(params) {
- return (
- "{b|三岗一人}\n\n" +
- "{a|" +
- params.data.value +
- "人}" +
- "\n\n{b|" +
- (params.data.percent != 0 ?
- parseFloat(
- (params.data.value / params.data.percent) * 100
- ).toFixed(2) :
- 0) +
- "%}"
- );
- },
- position: "center",
- show: true,
- textStyle: {
- fontSize: "14",
- fontWeight: "normal",
- color: "#fff",
- },
- },
- },
- itemStyle: {
- normal: {
- color: {
- colorStops: [{
- offset: 0,
- color: "#3CDDFF", // 0% 处的颜色
- },
- {
- offset: 1,
- color: "#4084FF", // 100% 处的颜色
- },
- ],
- },
- shadowColor: "#FF5722",
- shadowBlur: 0,
- },
- },
- },
- {
- value: that.overviewPercentCount - that.overview[2],
- name: "invisible",
- itemStyle: {
- normal: {
- color: "#154a75",
- },
- },
- },
- ],
- },
- {
- name: "第四个圆环",
- type: "pie",
- clockWise: false,
- radius: [100, 80],
- itemStyle: dataStyle,
- hoverAnimation: false,
- center: ["87%", "50%"],
- data: [{
- // value: 11,
- value: that.overview[3],
- percent: that.overviewPercentCount,
- label: {
- normal: {
- rich: {
- a: {
- color: "#7DB2FF",
- align: "center",
- fontSize: 18,
- fontWeight: "bold",
- },
- b: {
- color: "#E7E9FF",
- align: "center",
- fontSize: 14,
- },
- },
- formatter: function(params) {
- return (
- "{b|四岗一人}\n\n" +
- "{a|" +
- params.data.value +
- "人}" +
- "\n\n{b|" +
- (params.data.percent != 0 ?
- parseFloat(
- (params.data.value / params.data.percent) * 100
- ).toFixed(2) :
- 0) +
- "%}"
- );
- },
- position: "center",
- show: true,
- textStyle: {
- fontSize: "14",
- fontWeight: "normal",
- color: "#fff",
- },
- },
- },
- itemStyle: {
- normal: {
- color: {
- colorStops: [{
- offset: 0,
- color: "#3CDDFF", // 0% 处的颜色
- },
- {
- offset: 1,
- color: "#4084FF", // 100% 处的颜色
- },
- ],
- },
- shadowColor: "#FF5722",
- shadowBlur: 0,
- },
- },
- },
- {
- value: that.overviewPercentCount - that.overview[3],
- name: "invisible",
- itemStyle: {
- normal: {
- color: "#154a75",
- },
- },
- },
- ],
- },
- ],
- };
- if (option) {
- myChart.setOption(option);
- }
- },
- //四长弹层统计2
- fourLeaderChartPop2() {
- //http://192.144.199.210:8080/editor/index.html?chart_id=uNox2ENVrtmsMWRI
- let that = this;
- let myChart = this.$echarts.init(document.getElementById("szCharts2"));
- let option = {
- // backgroundColor: '#000E1A',
- textStyle: {
- color: "#c0c3cd",
- fontSize: 12,
- },
- toolbox: {
- show: false,
- feature: {
- saveAsImage: {
- backgroundColor: "#031245",
- },
- restore: {},
- },
- iconStyle: {
- borderColor: "#c0c3cd",
- },
- },
- legend: {
- top: 10,
- itemWidth: 8,
- itemHeight: 8,
- icon: "circle",
- left: "center",
- padding: 0,
- textStyle: {
- color: "#c0c3cd",
- fontSize: 14,
- padding: [2, 0, 0, 0],
- },
- },
- color: [
- "#63caff",
- "#49beff",
- "#03387a",
- "#03387a",
- "#03387a",
- "#6c93ee",
- "#a9abff",
- "#f7a23f",
- "#27bae7",
- "#ff6d9d",
- "#cb79ff",
- "#f95b5a",
- "#ccaf27",
- "#38b99c",
- "#93d0ff",
- "#bd74e0",
- "#fd77da",
- "#dea700",
- ],
- grid: {
- containLabel: true,
- left: 20,
- right: 10,
- bottom: 30,
- top: 80,
- },
- xAxis: {
- nameTextStyle: {
- color: "#c0c3cd",
- padding: [0, 0, -10, 0],
- fontSize: 11,
- },
- axisLabel: {
- color: "#c0c3cd",
- fontSize: 14,
- interval: 0,
- },
- axisTick: {
- lineStyle: {
- color: "#384267",
- width: 1,
- },
- show: false,
- },
- splitLine: {
- show: false,
- },
- axisLine: {
- lineStyle: {
- color: "#384267",
- width: 2,
- type: "dashed",
- },
- show: false,
- },
- data: ["河长", "林长", "路长", "田长"],
- type: "category",
- },
- yAxis: {
- nameTextStyle: {
- color: "#c0c3cd",
- padding: [0, 0, -10, 0],
- fontSize: 14,
- },
- axisLabel: {
- show: false,
- },
- axisTick: {
- lineStyle: {
- color: "#384267",
- width: 1,
- },
- show: false,
- },
- splitLine: {
- show: false,
- lineStyle: {
- color: "#384267",
- type: "dashed",
- },
- },
- axisLine: {
- lineStyle: {
- color: "#384267",
- width: 1,
- type: "dashed",
- },
- show: false,
- },
- name: "",
- },
- series: [{
- data: that.fourLengthPlan,
- type: "bar",
- barMaxWidth: "auto",
- barWidth: 50,
- itemStyle: {
- color: {
- x: 0,
- y: 0,
- x2: 0,
- y2: 1,
- type: "linear",
- global: false,
- colorStops: [{
- offset: 0,
- color: "#0b9eff",
- },
- {
- offset: 1,
- color: "#63caff",
- },
- ],
- },
- },
- label: {
- normal: {
- position: "top",
- show: true,
- color: "white",
- formatter: "{c}%",
- },
- },
- },
- {
- data: [1, 1, 1, 1, 1, 1, 1, 1],
- type: "pictorialBar",
- barMaxWidth: "10",
- symbol: "diamond",
- symbolOffset: [0, "50%"],
- symbolSize: [50, 15],
- },
- {
- data: that.fourLengthPlan,
- type: "pictorialBar",
- barMaxWidth: "10",
- symbolPosition: "end",
- symbol: "diamond",
- symbolOffset: [0, "-50%"],
- symbolSize: [50, 12],
- zlevel: 2,
- },
- {
- data: [100, 100, 100, 100],
- type: "bar",
- barMaxWidth: "auto",
- barWidth: 50,
- barGap: "-100%",
- zlevel: -1,
- },
- {
- data: [1, 1, 1, 1],
- type: "pictorialBar",
- barMaxWidth: "10",
- symbol: "diamond",
- symbolOffset: [0, "50%"],
- symbolSize: [50, 15],
- zlevel: -2,
- },
- {
- data: [100, 100, 100, 100],
- type: "pictorialBar",
- barMaxWidth: "10",
- symbolPosition: "end",
- symbol: "diamond",
- symbolOffset: [0, "-50%"],
- symbolSize: [50, 12],
- zlevel: -1,
- },
- ],
- tooltip: {
- trigger: "axis",
- show: false,
- },
- };
- if (option) {
- myChart.setOption(option);
- }
- },
- //四长弹层统计3 http://192.144.199.210:8080/editor/index.html?chart_id=dm5L9wA0yywrIPq2
- fourLeaderChartPop3() {
- let that = this;
- let myChart = this.$echarts.init(document.getElementById("szCharts3"));
- // let data = that.fourLengthTask
- let data = [{
- name: "林长",
- value: 25,
- },
- {
- name: "田长",
- value: 25,
- },
- {
- name: "路长",
- value: 25,
- },
- {
- name: "河长",
- value: 25,
- },
- ];
- let name = data.map((item) => item.name);
- let value = data.map((item) => item.value);
- let sum = 25;
- let color = [
- ["#198AFD", "#0FDEAE", "#04d030", "#fdda13"],
- [
- "rgba(24, 183, 142,0.1)",
- "rgba(1, 179, 238,0.1)",
- "rgba(22, 75, 205,0.1)",
- "rgba(52, 52, 176,0.1)",
- ],
- ];
- let series = [];
- let yAxis = [];
- for (let i = 0; i < data.length; i++) {
- series.push({
- name: "",
- type: "pie",
- clockWise: false, //顺时加载
- hoverAnimation: false, //鼠标移入变大
- radius: [80 - i * 10 + "%", 75 - i * 10 + "%"],
- center: ["50%", "60%"],
- label: {
- show: false,
- },
- itemStyle: {
- label: {
- show: false,
- },
- labelLine: {
- show: false,
- },
- borderWidth: 5,
- },
- data: [{
- value: data[i].value,
- name: data[i].name,
- },
- {
- value: sum - data[i].value,
- name: "",
- itemStyle: {
- color: "transparent",
- },
- tooltip: {
- show: false,
- },
- hoverAnimation: false,
- },
- ],
- });
- series.push({
- name: "",
- type: "pie",
- silent: true,
- z: 1,
- clockWise: false, //顺时加载
- hoverAnimation: false, //鼠标移入变大
- radius: [80 - i * 10 + "%", 75 - i * 10 + "%"],
- center: ["50%", "60%"],
- label: {
- show: false,
- },
- itemStyle: {
- label: {
- show: false,
- },
- labelLine: {
- show: false,
- },
- borderWidth: 5,
- },
- data: [{
- value: 7.5,
- itemStyle: {
- color: color[1][i],
- },
- tooltip: {
- show: false,
- },
- hoverAnimation: false,
- },
- {
- value: 2.5,
- itemStyle: {
- color: "rgba(0,0,0,0)",
- borderWidth: 0,
- },
- tooltip: {
- show: false,
- },
- hoverAnimation: false,
- },
- ],
- });
- yAxis.push(
- name[i] +
- (((data[i].value / sum) * 100).toFixed(2) == "NaN" ?
- "0" :
- ((data[i].value / sum) * 100).toFixed(2)) +
- "%"
- );
- }
- let option = {
- color: color[0],
- legend: {
- show: false,
- icon: "circle",
- top: "center",
- right: "10%",
- data: name,
- orient: "vertical",
- formatter: (name) => {
- return "{title|" + name + "}";
- },
- textStyle: {
- rich: {
- title: {
- fontSize: 14,
- lineHeight: 20,
- color: "rgb(0, 178, 246)",
- },
- value: {
- fontSize: 14,
- lineHeight: 20,
- color: "#fff",
- },
- },
- },
- },
- tooltip: {
- show: true,
- trigger: "item",
- formatter: "{a}<br>{b}:{c}({d}%)",
- },
- grid: {
- top: "50%",
- left: "34%",
- width: "40%",
- height: "20%",
- containLabel: false,
- },
- yAxis: [{
- type: "category",
- inverse: true,
- axisLine: {
- show: false,
- },
- axisTick: {
- show: false,
- },
- axisLabel: {
- interval: 0,
- inside: true,
- textStyle: {
- color: "#fff",
- fontSize: 14,
- },
- show: true,
- },
- data: yAxis,
- }, ],
- xAxis: [{
- show: false,
- }, ],
- series: series,
- };
- if (option) {
- myChart.setOption(option);
- }
- },
- // 四长统计 tree
- handleNodeClick(data) {
- console.log(data);
- this.leaderData = data.title;
- },
- //tab 切换
- tabHandleClick(tab, event) {
- console.log(tab, event);
- },
- // 当前时间
- getNowTime() {
- var date = new Date();
- var sign2 = ":";
- var year = date.getFullYear(); // 年
- var month = date.getMonth() + 1; // 月
- var day = date.getDate(); // 日
- var hour = date.getHours(); // 时
- var minutes = date.getMinutes(); // 分
- var seconds = date.getSeconds(); //秒
- var weekArr = [
- "星期一",
- "星期二",
- "星期三",
- "星期四",
- "星期五",
- "星期六",
- "星期天",
- ];
- var week = weekArr[date.getDay()];
- // 给一位数的数据前面加 “0”
- if (month >= 1 && month <= 9) {
- month = "0" + month;
- }
- if (day >= 0 && day <= 9) {
- day = "0" + day;
- }
- if (hour >= 0 && hour <= 9) {
- hour = "0" + hour;
- }
- if (minutes >= 0 && minutes <= 9) {
- minutes = "0" + minutes;
- }
- if (seconds >= 0 && seconds <= 9) {
- seconds = "0" + seconds;
- }
- this.nowTime = hour + sign2 + minutes + sign2 + seconds;
- },
- currentTime() {
- setInterval(() => {
- this.getNowTime();
- }, 1000);
- },
- showEventDialog(eventCode) {
- //事件信息弹出
- this.$refs.eventdetailsdialog.showEventDialog(eventCode);
- },
- /** ----------------------------------摄像头预览开始------------------------------------- */
- alertLogin: function() {
- this.$modal.msg("登录中....");
- },
- alertLoginSuccess: function() {
- this.$modal.msgSuccess("登录成功!");
- },
- alertLoginFailed: function() {
- this.$modal.msgError("登陆失败!");
- },
- alertReinstall: function() {
- this.$modal.msgWarning("请重新安装客户端");
- },
- cancelEventLocationShow() {
- if (this.oWebControl != null) {
- this.oWebControl.JS_HideWnd(); // 先让窗口隐藏,规避可能的插件窗口滞后于浏览器消失问题
- this.oWebControl.JS_Disconnect().then(
- function() {
- // 断开与插件服务连接成功
- },
- function() {
- // 断开与插件服务连接失败
- }
- );
- }
- },
- /** 预览按钮操作 */
- preview(cameraParam) {
- this.showTVWallMine(cameraParam.code, cameraParam.name, cameraParam.type);
- // if (cameraParam.cameraFactory == "1") {
- // getDahuaVideoServer().then((newResponse) => {
- // console.log(newResponse);
- // this.ws.detectConnectQt().then((res) => {
- // if (res) {
- // // 连接客户端成功
- // this.alertLogin();
- // this.ws.login({
- // loginIp: newResponse.loginIp,
- // loginPort: newResponse.loginPort,
- // userName: newResponse.userName,
- // userPwd: newResponse.userPwd,
- // token: "",
- // https: 1,
- // });
- // this.ws.on("loginState", (res) => {
- // this.isLogin = res;
- // console.log("---res-----", res);
- // if (res) {
- // this.alertLoginSuccess();
- // this.activePanel = "key2";
- // this.realTimeVideoDialog(cameraParam.cameraCode);
- // } else {
- // this.alertLoginFailed();
- // }
- // });
- // } else {
- // // 连接客户端失败
- // this.alertReinstall();
- // }
- // });
- // });
- // } else if (cameraParam.cameraFactory == "0") {
- // let that = this;
- // that.cameraVisible = true;
- // getHaiKangVideoServer({
- // cameraCode: cameraParam.cameraCode,
- // }).then((newResponse) => {
- // that.cameraTitle = "摄像头-" + newResponse.data.cameraName;
- // that.initPlugin(
- // newResponse.data.appkey,
- // newResponse.data.loginIp,
- // newResponse.data.secret,
- // newResponse.data.loginPort
- // );
- // setTimeout(function () {
- // that.playhk(newResponse.data.channelCode);
- // }, 5000);
- // });
- // }
- },
- realTimeVideoDialog(cameraParams) {
- // 调用弹窗实时播放接口
- if (!this.isLogin) {
- this.$Message.info("正在登陆客户端,请稍等......");
- return false;
- }
- const params = [cameraParams];
- this.ws.openVideo(params);
- },
- /** ----------------------------------摄像头预览结束------------------------------------- */
- /** ----------------------------------海康摄像头预览开始------------------------------------- */
- // 创建播放实例
- initPlugin(newappkey, newloginIp, newsecret, newloginPort) {
- let that = this;
- that.oWebControl = new WebControl({
- szPluginContainer: "playWnd", // 指定容器id
- iServicePortStart: 15900, // 指定起止端口号,建议使用该值
- iServicePortEnd: 15909,
- szClassId: "23BF3B0A-2C56-4D97-9C03-0CB103AA8F11", // 用于IE10使用ActiveX的clsid
- cbConnectSuccess: function() {
- // 创建WebControl实例成功
- that.oWebControl
- .JS_StartService("window", {
- // WebControl实例创建成功后需要启动服务
- dllPath: "./VideoPluginConnect.dll", // 值"./VideoPluginConnect.dll"写死
- })
- .then(
- function() {
- // 启动插件服务成功
- that.oWebControl.JS_SetWindowControlCallback({
- // 设置消息回调
- cbIntegrationCallBack: cbIntegrationCallBack,
- });
- that.oWebControl
- .JS_CreateWnd("playWnd", 1020, 600)
- .then(function() {
- //JS_CreateWnd创建视频播放窗口,宽高可设定
- that.init(newappkey, newloginIp, newsecret, newloginPort); // 创建播放实例成功后初始化
- });
- },
- function() {
- // 启动插件服务失败
- }
- );
- },
- cbConnectError: function() {
- // 创建WebControl实例失败
- that.oWebControl = null;
- $("#playWnd").html(
- '插件未启动,正在尝试启动,请稍候...<a href="./hk/VideoWebPlugin.exe">点击下载插件</a>'
- );
- WebControl.JS_WakeUp("VideoWebPlugin://"); // 程序未启动时执行error函数,采用wakeup来启动程序
- initCount++;
- if (initCount < 3) {
- setTimeout(function() {
- that.initPlugin(newappkey, newloginIp, newsecret, newloginPort);
- }, 1000);
- } else {
- $("#playWnd").html(
- '插件启动失败,请检查插件是否安装!<a href="./hk/VideoWebPlugin.exe">点击下载插件</a>'
- );
- }
- },
- cbConnectClose: function(bNormalClose) {
- // 异常断开:bNormalClose = false
- // JS_Disconnect正常断开:bNormalClose = true
- console.log("cbConnectClose");
- that.oWebControl = null;
- },
- });
- },
- //播放海康摄像头
- playhk(channelCode) {
- var cameraIndexCode = channelCode; //获取输入的监控点编号值,必填
- var streamMode = 0; //主子码流标识:0-主码流,1-子码流
- var transMode = 1; //传输协议:0-UDP,1-TCP
- var gpuMode = 0; //是否启用GPU硬解,0-不启用,1-启用
- var wndId = -1; //播放窗口序号(在2x2以上布局下可指定播放窗口)
- cameraIndexCode = cameraIndexCode.replace(/(^\s*)/g, "");
- cameraIndexCode = cameraIndexCode.replace(/(\s*$)/g, "");
- this.oWebControl.JS_RequestInterface({
- funcName: "startPreview",
- argument: JSON.stringify({
- cameraIndexCode: cameraIndexCode, //监控点编号
- streamMode: streamMode, //主子码流标识
- transMode: transMode, //传输协议
- gpuMode: gpuMode, //是否开启GPU硬解
- wndId: wndId, //可指定播放窗口
- }),
- });
- },
- //初始化
- init(newappkey, newloginIp, newsecret, newloginPort) {
- let that = this;
- that.getPubKey(function() {
- ////////////////////////////////// 请自行修改以下变量值 ////////////////////////////////////
- var appkey = newappkey; //综合安防管理平台提供的appkey,必填
- var secret = that.setEncrypt(newsecret); //综合安防管理平台提供的secret,必填
- var ip = newloginIp; //综合安防管理平台IP地址,必填
- var playMode = 0; //初始播放模式:0-预览,1-回放
- var port = Number(newloginPort); //综合安防管理平台端口,若启用HTTPS协议,默认443
- var snapDir = "D:\\SnapDir"; //抓图存储路径
- var videoDir = "D:\\VideoDir"; //紧急录像或录像剪辑存储路径
- var layout = "1x1"; //playMode指定模式的布局
- var enableHTTPS = 1; //是否启用HTTPS协议与综合安防管理平台交互,这里总是填1
- var encryptedFields = "secret"; //加密字段,默认加密领域为secret
- var showToolbar = 1; //是否显示工具栏,0-不显示,非0-显示
- var showSmart = 1; //是否显示智能信息(如配置移动侦测后画面上的线框),0-不显示,非0-显示
- var buttonIDs =
- "0,16,256,257,258,259,260,512,513,514,515,516,517,768,769"; //自定义工具条按钮
- ////////////////////////////////// 请自行修改以上变量值 ////////////////////////////////////
- that.oWebControl
- .JS_RequestInterface({
- funcName: "init",
- argument: JSON.stringify({
- appkey: appkey, //API网关提供的appkey
- secret: secret, //API网关提供的secret
- ip: ip, //API网关IP地址
- playMode: playMode, //播放模式(决定显示预览还是回放界面)
- port: port, //端口
- snapDir: snapDir, //抓图存储路径
- videoDir: videoDir, //紧急录像或录像剪辑存储路径
- layout: layout, //布局
- enableHTTPS: enableHTTPS, //是否启用HTTPS协议
- encryptedFields: encryptedFields, //加密字段
- showToolbar: showToolbar, //是否显示工具栏
- showSmart: showSmart, //是否显示智能信息
- buttonIDs: buttonIDs, //自定义工具条按钮
- }),
- })
- .then(function(oData) {
- that.oWebControl.JS_Resize(1020, 600); // 初始化后resize一次,规避firefox下首次显示窗口后插件窗口未与DIV窗口重合问题
- });
- });
- },
- //获取公钥
- getPubKey(callback) {
- let that = this;
- that.oWebControl
- .JS_RequestInterface({
- funcName: "getRSAPubKey",
- argument: JSON.stringify({
- keyLength: 1024,
- }),
- })
- .then(function(oData) {
- console.log(oData);
- if (oData.responseMsg.data) {
- that.pubKey = oData.responseMsg.data;
- callback();
- }
- });
- },
- //RSA加密
- setEncrypt(value) {
- var encrypt = new JSEncrypt();
- encrypt.setPublicKey(this.pubKey);
- return encrypt.encrypt(value);
- },
- /** ----------------------------------海康摄像头预览结束------------------------------------- */
- layerCheck() {
- this.getLocation()
- this.$refs.supermap.reload(this.layerCheckList);
- },
- },
- // 局部过滤器
- filters: {
- ellipsisFont8(value) {
- if (!value) return "";
- if (value.length > 8) {
- return value.slice(0, 8) + "...";
- }
- return value;
- },
- },
- };
- </script>
- <style lang="scss">
- @import "@/assets/styles/base.scss";
- @import url("../assets/styles/leader-index.scss");
- .sj-container {
- background: #020d1f;
- font-family: "syht";
- position: absolute;
- overflow: hidden;
- }
- .zdgc {
- //轮播
- .el-carousel__item h3 {
- color: #475669;
- font-size: 18px;
- opacity: 0.75;
- line-height: 300px;
- margin: 0;
- }
- .el-carousel__button {
- width: 3px;
- background: #0bf3f7;
- }
- .el-carousel__arrow--left {
- left: 0;
- }
- .el-carousel__arrow--right {
- right: 0;
- }
- }
- .header {
- z-index: 10;
- position: absolute;
- width: 100%;
- top: 0px;
- display: flex;
- flex-direction: row;
- justify-content: space-between;
- height: 8vh;
- .head-left {
- display: flex;
- flex-direction: row;
- justify-content: flex-start;
- align-items: center;
- width: 50%;
- background: url("../assets/images/leader-topl.png") no-repeat top left;
- img {
- width: 3.5rem;
- height: 3.5rem;
- margin-left: 0.5rem;
- margin-right: 0.5rem;
- }
- .el-select-dropdown {
- border: none;
- background-color: rgba(1, 28, 82, 0.8);
- }
- //输入框
- .el-input__inner {
- color: #eee !important;
- border: 0px;
- padding-left: 2rem;
- background-size: 100% 100%;
- background: url("../assets/images/leader-topk.png") no-repeat center;
- }
- .el-input {
- position: relative;
- }
- .el-input:after {
- content: " ";
- display: block;
- position: absolute;
- left: 0.5rem;
- top: 0.25rem;
- width: 1rem;
- height: 1.3rem;
- z-index: 11;
- background: url("../assets/images/leader-icon1.png") no-repeat center;
- }
- //聚焦时的样式
- .el-select .el-input.is-focus .el-input__inner {
- border-color: #0b61aa;
- background-color: rgba(1, 28, 82, 0.8);
- color: #00d3e9;
- }
- //下拉框选中
- .el-select-dropdown__item {
- color: #eee;
- }
- //鼠标经过下拉框
- .el-select-dropdown__item.hover,
- .el-select-dropdown__item:hover {
- color: #00d3e9;
- background-color: #0f3360;
- }
- .select {
- width: 8rem;
- height: 2.4rem;
- z-index: 1000;
- display: flex;
- align-items: center;
- border-radius: 30px;
- margin-right: 1rem;
- }
- .select2 {
- width: 10rem;
- height: 2.4rem;
- z-index: 1000;
- display: flex;
- align-items: center;
- border-radius: 30px;
- margin-right: 1rem;
- //输入框
- .el-input__inner {
- color: #eee !important;
- border: 0px;
- padding-left: 2rem;
- background-size: 100% 100%;
- background: url("../assets/images/leader-topk.png") no-repeat center;
- background-size: cover;
- }
- }
- }
- .head-center {
- position: absolute;
- z-index: 10;
- width: 835px;
- height: 10vh;
- left: 50%;
- margin-left: -417px;
- background: url("../assets/images/leader-topc.png") no-repeat top center;
- cursor: pointer;
- span {
- font-family: $fontHk;
- line-height: 8vh;
- font-size: 2.2rem;
- text-align: center;
- display: block;
- background-image: -webkit-linear-gradient(bottom, #e6fcff, #b2e6fc);
- -webkit-background-clip: text;
- -webkit-text-fill-color: transparent;
- letter-spacing: 0.2rem;
- }
- }
- .head-right {
- width: 50%;
- background: url("../assets/images/leader-topr.png") no-repeat top right;
- .head-time {
- display: flex;
- flex-direction: row;
- justify-content: flex-end;
- line-height: 7vh;
- background: url("../assets/images/leader-topk2.png") no-repeat 100%;
- // background-size: contain;
- i {
- display: inline-block;
- width: 2rem;
- height: 2rem;
- }
- .head-fx {
- background: url("../assets/images/leader-icon-fengxiang.png") no-repeat 5px 5px;
- }
- .head-fs {
- background: url("../assets/images/leader-icon2.png") no-repeat 5px 5px;
- }
- .head-jsl {
- background: url("../assets/images/leader-icon3.png") no-repeat 4px 5px;
- }
- .head-wd {
- background: url("../assets/images/leader-icon4.png") no-repeat 5px 6px;
- }
- }
- span {
- margin-right: 1rem;
- color: #fff;
- font-size: 1rem;
- display: flex;
- flex-direction: row;
- align-items: center;
- u {
- text-decoration: none;
- }
- }
- .timer {
- padding-right: 1rem;
- font-weight: bold;
- font-style: oblique;
- }
- }
- }
- /*左侧 右侧*/
- .con-left {
- position: absolute;
- left: 0.2rem;
- top: 10vh;
- z-index: 9;
- display: flex;
- flex-direction: column;
- justify-content: space-between;
- }
- .con-right {
- position: absolute;
- right: 0.2rem;
- top: 10vh;
- z-index: 9;
- display: flex;
- flex-direction: column;
- justify-content: space-between;
- }
- .con-div {
- border: 1px solid #15519b;
- position: relative;
- height: 26.7vh;
- width: 18.75vw;
- margin-bottom: 0.8rem;
- overflow: hidden;
- background: linear-gradient(rgba(4, 23, 62, 0.6), rgba(0, 28, 70, 0.6));
- /* 标准的语法 */
- .head-di {
- position: absolute;
- right: 0px;
- bottom: 0px;
- width: 7rem;
- height: 1rem;
- color: #02a3e9;
- }
- .con-tit {
- height: 2rem;
- position: relative;
- a {
- background: url("../assets/images/leader-titbg.png") no-repeat 0px 0px;
- display: flex;
- flex-direction: row;
- justify-content: left;
- align-content: center;
- position: absolute;
- left: 0px;
- top: 0px;
- width: 100%;
- height: 3rem;
- z-index: 3;
- line-height: 2.4rem;
- background-size: 100% 100%;
- letter-spacing: 1px;
- transition: all 0.5s;
- i {
- background: url("../assets/images/leader-tit1.png") no-repeat 6px 8px;
- display: block;
- width: 1.8rem;
- height: 1.8rem;
- animation: cccbt2 4s infinite;
- }
- b {
- display: inline-block;
- height: 3rem;
- padding-left: 0.4rem;
- color: #fff;
- font-size: 0.9rem;
- }
- }
- span {
- position: absolute;
- right: 0px;
- top: 0px;
- color: #fff;
- font-size: 0.8rem;
- z-index: 10;
- height: 2.2rem;
- padding-right: 1rem;
- line-height: 2.2rem;
- display: flex;
- .tit_fire {
- background: url("../assets/images/leader-titfire.png") no-repeat 0px 6px;
- width: 1.5rem;
- height: 1.7rem;
- z-index: 9;
- display: inline-block;
- }
- }
- }
- .con-tit a:hover i {
- animation: rotate 3s linear infinite;
- transform-origin: center center;
- }
- @keyframes rotate {
- to {
- transform: rotateY(360deg);
- }
- }
- .cont-np {
- padding: 0px !important;
- }
- .cont {
- padding: 1rem 0.5rem;
- .cont-top1 {
- position: relative;
- width: 92%;
- margin: 0px auto;
- height: 3.5rem;
- line-height: 3.5rem;
- img {
- position: absolute;
- left: 0rem;
- z-index: 1;
- }
- p {
- background: url("../assets/images/leader-iconbg.png") no-repeat left;
- color: #fff;
- width: 20rem;
- z-index: 0;
- position: absolute;
- left: 2rem;
- padding-left: 2rem;
- font-size: 0.6rem;
- b {
- padding: 0px 0.2rem;
- //font-size: 1rem;
- font-weight: bold;
- }
- }
- a {
- background: url("../assets/images/leader-iconbg2.png") no-repeat center;
- width: 6rem;
- z-index: 1;
- position: absolute;
- right: 0rem;
- text-align: center;
- color: #fff;
- font-size: 0.7rem;
- }
- }
- .cont-top2 {
- display: flex;
- flex-direction: row;
- width: 100%;
- height: 2.5rem;
- line-height: 2.5rem;
- justify-content: center;
- text-align: center;
- margin-top: 0.8rem;
- span {
- width: 33%;
- color: #fff;
- font-size: 0.6rem;
- b {
- padding-left: 0.2rem;
- }
- }
- span:nth-child(1) {
- display: block;
- background: url("../assets/images/leader-iconbg3.png") no-repeat center;
- background-size: 100% 100%;
- }
- span:nth-child(2) {
- display: block;
- background: url("../assets/images/leader-iconbg4.png") no-repeat center;
- background-size: 100% 100%;
- b {
- //font-size: 1rem;
- }
- }
- span:nth-child(3) {
- display: block;
- background: url("../assets/images/leader-iconbg5.png") no-repeat center;
- background-size: 100% 100%;
- }
- }
- .cont-top3 {
- display: flex;
- flex-direction: row;
- width: 100%;
- height: 2.5rem;
- line-height: 2.5rem;
- justify-content: center;
- text-align: center;
- span {
- cursor: pointer;
- width: 25%;
- display: block;
- background: url("../assets/images/leader-iconbg8.png") no-repeat center;
- background-size: 100% 100%;
- color: #fff;
- font-size: 0.9rem;
- }
- span.active {
- background: url("../assets/images/leader-iconbg8-on.png") no-repeat center;
- background-size: 100% 100%;
- font-weight: bold;
- }
- }
- .con-list {
- margin-top: 0.2rem;
- height: 9rem;
- overflow-y: scroll;
- .tabList a {
- display: flex;
- flex-direction: row;
- width: 100%;
- height: 2rem;
- line-height: 2rem;
- color: #fff;
- font-size: 0.6rem;
- padding-left: 1.5rem;
- background: linear-gradient(180deg,
- rgba($color: #22a0e1, $alpha: 0.15),
- rgba($color: #173fbf, $alpha: 0.15));
- position: relative;
- span:after {
- display: block;
- content: "";
- width: 6px;
- height: 6px;
- background: #00b2de;
- box-shadow: 0px 0px 6px #00b2de;
- position: absolute;
- left: 0.7rem;
- top: 0.8rem;
- }
- u {
- margin-left: auto;
- padding: 0px 1rem 0px 1.5rem;
- text-decoration: none;
- color: #00b2de;
- text-shadow: 0px 0px 6px #00b2de;
- background: url("../assets/images/leader-icon6.png") no-repeat left center;
- }
- }
- }
- .tabList a:hover {
- text-shadow: 0px 0px 6px #25d5de;
- u {
- text-shadow: 0px 0px 6px #25d5de;
- }
- }
- .con-list::-webkit-scrollbar {
- width: 0px;
- height: 0px;
- }
- .cont-top4 {
- .cont-row {
- display: flex;
- flex-direction: row;
- justify-content: space-between;
- .c-left {
- width: 78%;
- p {
- height: 2.1rem;
- line-height: 2.1rem;
- width: 100%;
- padding: 0px 0.8rem;
- background: url("../assets/images/leader-iconbg9.png") no-repeat center;
- background-size: 99% 100%;
- margin-bottom: 0.2rem;
- margin-right: 0.2rem;
- font-size: 0.6rem;
- color: #fff;
- b {
- float: right;
- font-family: "pm";
- letter-spacing: 0.1rem;
- font-size: 1rem;
- }
- }
- }
- .c-right {
- width: 39%;
- background: url("../assets/images/leader-iconbg10.png") no-repeat center;
- background-size: 99% 100%;
- height: 4.4rem;
- padding: 0px 0.8rem;
- display: flex;
- flex-direction: row;
- align-items: center;
- i {
- display: block;
- height: 100%;
- width: 2rem;
- }
- i.ss {
- background: url("../assets/images/leader-icon7.png") no-repeat center;
- }
- i.xj {
- background: url("../assets/images/leader-icon8.png") no-repeat center;
- }
- .c-txt {
- padding-left: 0.5rem;
- p {
- color: #fff;
- font-size: 0.6rem;
- }
- b {
- font-family: "pm";
- color: #fff;
- font-size: 1.25rem;
- }
- }
- }
- }
- .cont-com {
- display: flex;
- flex-direction: column;
- align-items: center;
- .con-txt {
- display: flex;
- flex-direction: row;
- background: url("../assets/images/leader-iconbg11.png") no-repeat center;
- background-size: 100% 100%;
- padding: 0px 0rem;
- width: 100%;
- height: 3.2rem;
- margin-bottom: 0.2rem;
- align-items: center;
- h5 {
- width: 33%;
- height: 100%;
- align-content: center;
- display: flex;
- flex-direction: column;
- justify-content: center;
- color: #fff;
- text-align: center;
- p {
- font-size: 0.6rem;
- /*padding-bottom: 0.1rem;*/
- }
- .jdChart {
- height: 0.5rem;
- width: 100%;
- padding-bottom: 0.1rem;
- }
- b {
- font-family: "pm";
- font-size: 1rem;
- letter-spacing: 1px;
- padding-bottom: 0.3rem;
- }
- h6 {
- padding-top: 0.4rem;
- font-size: 0.6rem;
- }
- }
- h5:nth-child(1),
- h5:nth-child(2) {
- background: url("../assets/images/leader-iconx.png") no-repeat right center;
- background-size: 0.1rem;
- }
- /*h5:nth-child(2),*/
- /*h5:nth-child(3) {*/
- /*padding-left: 0.8rem;*/
- /*}*/
- }
- }
- }
- }
- .ssgz {
- display: flex;
- flex-direction: column;
- justify-content: center;
- .conChart1 {
- width: 100%;
- height: 9rem;
- }
- }
- .sstj {
- display: flex;
- flex-direction: column;
- justify-content: center;
- .conChart2 {
- width: 100%;
- height: 9rem;
- }
- }
- .sstj2 {
- display: flex;
- flex-direction: column;
- justify-content: center;
- .conChart3 {
- width: 100%;
- height: 10rem;
- }
- }
- }
- /*底部*/
- .footer {
- width: 100%;
- position: absolute;
- bottom: 0px;
- z-index: 9;
- background: url("../assets/images/leader-btmbg.png") no-repeat bottom center;
- .foot-btn {
- text-align: center;
- display: flex;
- flex-direction: row;
- justify-content: center;
- padding-bottom: 0.6rem;
- a {
- display: flex;
- flex-direction: column;
- margin: 0px 1.5rem;
- transform: scale(1, 1) translateY(0px);
- transition: all 1s;
- span {
- transition: all 0.5s;
- width: 4.5rem;
- height: 4.5rem;
- position: relative;
- justify-content: center;
- display: flex;
- flex-direction: column;
- u {
- background: url("../assets/images/leader-footy.png") no-repeat center;
- position: absolute;
- display: block;
- width: 4.5rem;
- height: 4.5rem;
- animation: circle 6s infinite linear;
- }
- i {
- background: url("../assets/images/leader-footy2.png") no-repeat center;
- position: absolute;
- display: block;
- width: 4.5rem;
- height: 4.5rem;
- animation: circle2 6s infinite linear;
- }
- }
- i {
- text-align: center;
- color: #fff;
- font-size: 1rem;
- font-weight: bold;
- font-style: normal;
- transition: all 0.5s;
- }
- }
- }
- }
- @keyframes circle {
- 0% {
- transform: rotate(0deg);
- opacity: 0.6;
- }
- 100% {
- transform: rotate(-360deg);
- opacity: 1;
- }
- }
- @keyframes circle2 {
- 0% {
- transform: rotate(0deg);
- opacity: 0.6;
- }
- 100% {
- transform: rotate(360deg);
- opacity: 1;
- }
- }
- .foot-btn a:hover {
- transform: scale(1.1, 1.1) translateY(-10px);
- transition: all 0.5s;
- }
- .foot-btn a:hover span {
- cursor: pointer;
- animation: cccbt 2s infinite;
- }
- .foot-btn a:hover i {
- text-shadow: 0px 0px 6px #90e9ff;
- animation: shinetext2 1s infinite;
- }
- .foot-btn a.on {
- transform: scale(1.1, 1.1) translateY(-10px);
- transition: all 0.5s;
- box-shadow: none;
- }
- .foot-btn a.on span {
- cursor: pointer;
- animation: cccbt 2s infinite;
- }
- .foot-btn a.on i {
- text-shadow: 0px 0px 6px #90e9ff;
- animation: shinetext2 1s infinite;
- }
- /*图片闪光*/
- @keyframes cccbt {
- 0% {
- -webkit-filter: hue-rotate(0deg) brightness(1);
- }
- 25% {
- -webkit-filter: hue-rotate(0deg) brightness(1.1);
- }
- 50% {
- -webkit-filter: hue-rotate(0deg) brightness(1);
- }
- 75% {
- -webkit-filter: hue-rotate(0deg) brightness(1.3);
- }
- 100% {
- -webkit-filter: hue-rotate(0deg) brightness(1);
- }
- }
- @keyframes cccbt2 {
- 0% {
- -webkit-filter: hue-rotate(0deg) brightness(1);
- }
- 25% {
- -webkit-filter: hue-rotate(0deg) brightness(1.1);
- }
- 50% {
- -webkit-filter: hue-rotate(0deg) brightness(2);
- }
- 75% {
- -webkit-filter: hue-rotate(0deg) brightness(1.3);
- }
- 100% {
- -webkit-filter: hue-rotate(0deg) brightness(1);
- }
- }
- /*文字闪光*/
- @keyframes shinetext2 {
- 0% {
- text-shadow: 0 0 0px #1aa7ff;
- }
- 50% {
- text-shadow: 0 0 10px #90d3ff;
- }
- 100% {
- text-shadow: 0 0 0px #1aa7ff;
- }
- }
- /*重点工程轮播*/
- /* 图片容器样式 */
- .SwiperBox {
- position: relative;
- width: 100%;
- height: 13rem;
- box-sizing: border-box;
- cursor: pointer;
- overflow: hidden;
- }
- .imgBox {
- position: absolute;
- top: 0px;
- left: 0px;
- display: flex;
- height: 13rem;
- width: 100%;
- justify-content: flex-start;
- }
- /* 图片默认样式 */
- .imgBox img {
- position: absolute;
- top: 4rem;
- left: 50%;
- transform: translateX(-50%);
- }
- .imgBox span {
- position: absolute;
- display: block;
- padding: 0.5rem 1rem 0.5rem 1rem;
- color: #fff;
- font-size: 0.6rem;
- /*font-weight: 900;*/
- background-size: 100% 100%;
- cursor: pointer;
- width: 40%;
- }
- .imgBox span:hover {
- color: #00f6ff;
- }
- .imgBox span:nth-child(1) {
- background: url("../assets/images/leader-iconbg6.png") no-repeat bottom center;
- background-size: 100% 100%;
- top: 2rem;
- left: 1.9rem;
- }
- .imgBox span:nth-child(2) {
- background: url("../assets/images/leader-iconbg7.png") no-repeat bottom center;
- background-size: 100% 100%;
- top: 2rem;
- right: 1.9rem;
- }
- // .imgBox span:nth-child(3) {
- // background: url("../assets/images/leader-iconbg6.png") no-repeat bottom center;
- // background-size: 100% 100%;
- // top: 8.5rem;
- // left: 2rem;
- // }
- // .imgBox span:nth-child(4) {
- // background: url("../assets/images/leader-iconbg7.png") no-repeat bottom center;
- // background-size: 100% 100%;
- // top: 8.5rem;
- // right: 2rem;
- // }
- .imgBox span:nth-child(3) {
- background: url("../assets/images/leader-iconbg6.png") no-repeat bottom center;
- background-size: 100% 100%;
- top: 5.2rem;
- left: 1.5rem;
- }
- .imgBox span:nth-child(4) {
- background: url("../assets/images/leader-iconbg7.png") no-repeat bottom center;
- background-size: 100% 100%;
- top: 5.2rem;
- right: 1.5rem;
- }
- .imgBox span:nth-child(5) {
- background: url("../assets/images/leader-iconbg6.png") no-repeat bottom center;
- background-size: 100% 100%;
- top: 8.5rem;
- left: 2rem;
- }
- .imgBox span:nth-child(6) {
- background: url("../assets/images/leader-iconbg7.png") no-repeat bottom center;
- background-size: 100% 100%;
- top: 8.5rem;
- right: 2rem;
- }
- /* 两个按钮共有的样式,也可直接使用箭头图片替代 */
- .leftBtn,
- .rightBtn {
- position: absolute;
- top: 50%;
- transform: translateY(-50%);
- width: 30px;
- height: 30px;
- display: flex;
- justify-content: center;
- align-items: center;
- /*background: rgba(109, 109, 109, 0.445);*/
- color: #fff;
- border-radius: 50%;
- cursor: pointer;
- font-size: 12px;
- font-weight: 500;
- img {
- width: 0.6rem;
- display: block;
- opacity: 0.9;
- }
- }
- .leftBtn {
- left: -0.2rem;
- }
- .rightBtn {
- right: -0.2rem;
- }
- /* 下方指示器盒子 */
- .instBox {
- position: absolute;
- left: 50%;
- transform: translateX(-50%);
- bottom: 10px;
- display: flex;
- }
- /* 小圆点 */
- .inst {
- width: 6px;
- height: 6px;
- border: 1px solid #ccc;
- margin-right: 8px;
- background: #fff;
- border-radius: 50%;
- cursor: pointer;
- }
- .inst:last-child {
- margin-right: 0px;
- }
- .instActv {
- border: 1px solid #1bdbf4;
- background: #1bdbf4;
- }
- /* 实时关注 弹框样式 */
- #leader-tkbg {
- position: fixed;
- top: 10%;
- left: 20.5%;
- width: calc(100% - 49rem);
- height: auto;
- padding: 2rem;
- z-index: 999;
- background: #021636;
- border: 1px solid #00ffde;
- /*box-shadow: inset 0px 0px 16px 0px rgba(0, 255, 222, .5);*/
- }
- .tk-tit {
- padding-left: 2rem;
- background: url("../assets/images/leader-tit1.png") no-repeat left center;
- font-size: 0.9rem;
- color: #fff;
- font-weight: 900;
- }
- .tk-top {
- display: flex;
- flex-direction: row;
- justify-content: space-between;
- padding: 1rem 2rem;
- align-items: center;
- p {
- background: url("../assets/images/leader-tk1.png") no-repeat bottom center;
- color: #fff;
- font-size: 0.9rem;
- height: 2rem;
- width: 50%;
- text-align: center;
- img {
- margin-right: 0.2rem;
- }
- u {
- padding-left: 0.8rem;
- text-decoration: none;
- }
- }
- }
- .tk-close {
- width: 1.3rem;
- height: 1.3rem;
- color: #346ebc;
- font-size: 1.3rem;
- position: absolute;
- right: 0.8rem;
- top: 0.8rem;
- cursor: pointer;
- }
- .ssgz-tk {
- position: relative;
- display: flex;
- flex-direction: column;
- .ssgz-tkcom {
- display: flex;
- flex-direction: row;
- .ssgz-row {
- width: 40%;
- }
- .ssgz-row2 {
- width: 60%;
- .tk-tit {
- padding-left: 2rem;
- background: url("../assets/images/leader-tit1.png") no-repeat left center;
- font-size: 1rem;
- color: #fff;
- font-weight: 900;
- }
- }
- }
- }
- .ssgz-tk::after {
- content: "";
- position: absolute;
- left: -72px;
- top: -24px;
- width: 0;
- height: 0;
- border-top: 20px solid transparent;
- border-right: 20px solid #021636;
- border-left: 20px solid transparent;
- border-bottom: 20px solid transparent;
- /*box-shadow: inset 0px 0px 16px 0px rgba(0, 255, 222, .5);*/
- }
- .ssgz-tk::before {
- content: "";
- position: absolute;
- left: -75px;
- top: -25px;
- width: 0;
- height: 0;
- border-top: 21px solid transparent;
- border-right: 21px solid #00ffde;
- border-left: 21px solid transparent;
- border-bottom: 21px solid transparent;
- }
- /* 事件统计弹框样式 */
- #leader-tkbg3 {
- position: fixed;
- top: 38.3%;
- left: 20.5%;
- width: calc(100% - 49rem);
- height: auto;
- padding: 1rem 2rem;
- z-index: 999;
- background: #021636;
- border: 1px solid #00ffde;
- /*box-shadow: inset 0px 0px 16px 0px rgba(0, 255, 222, .5);*/
- }
- .sstj-row {
- position: relative;
- display: flex;
- flex-direction: row;
- justify-content: center;
- }
- .sjtj-tk::after {
- content: "";
- position: absolute;
- left: -40px;
- top: 5px;
- width: 0;
- height: 0;
- border-top: 20px solid transparent;
- border-right: 20px solid #021636;
- border-left: 20px solid transparent;
- border-bottom: 20px solid transparent;
- /*box-shadow: inset 0px 0px 16px 0px rgba(0, 255, 222, .5);*/
- }
- .sjtj-tk::before {
- content: "";
- position: absolute;
- left: -43px;
- top: 4px;
- width: 0;
- height: 0;
- border-top: 21px solid transparent;
- border-right: 21px solid #00ffde;
- border-left: 21px solid transparent;
- border-bottom: 21px solid transparent;
- }
- /* 一网通办弹框样式 */
- #leader-tbbg4 {
- position: fixed;
- top: 66.4%;
- left: 20.5%;
- width: calc(100% - 49rem);
- height: auto;
- padding: 1rem 2rem;
- z-index: 999;
- background: #021636;
- border: 1px solid #00ffde;
- /*box-shadow: inset 0px 0px 16px 0px rgba(0, 255, 222, .5);*/
- }
- .tbtj-row {
- position: relative;
- display: flex;
- flex-direction: row;
- justify-content: center;
- }
- .tbtj-tk::after {
- content: "";
- position: absolute;
- left: -40px;
- top: 5px;
- width: 0;
- height: 0;
- border-top: 20px solid transparent;
- border-right: 20px solid #021636;
- border-left: 20px solid transparent;
- border-bottom: 20px solid transparent;
- /*box-shadow: inset 0px 0px 16px 0px rgba(0, 255, 222, .5);*/
- }
- .tbtj-tk::before {
- content: "";
- position: absolute;
- left: -43px;
- top: 4px;
- width: 0;
- height: 0;
- border-top: 21px solid transparent;
- border-right: 21px solid #00ffde;
- border-left: 21px solid transparent;
- border-bottom: 21px solid transparent;
- }
- .tbtj-div1 {
- width: 25rem;
- display: flex;
- flex-direction: column;
- }
- .tbtj-div2 {
- width: 40rem;
- display: flex;
- flex-direction: column;
- }
- /* 四长统计弹框样式 */
- #leader-tkbg2 {
- position: fixed;
- top: 10%;
- left: 20.5%;
- width: calc(100% - 49rem);
- height: auto;
- padding: 1rem 2rem;
- z-index: 999;
- background: #021636;
- border: 1px solid #00ffde;
- /*box-shadow: inset 0px 0px 16px 0px rgba(0, 255, 222, .5);*/
- }
- .sztj-row {
- position: relative;
- display: flex;
- flex-wrap: wrap;
- justify-content: space-between;
- }
- .sztj-tk {
- position: relative;
- }
- .sztj-tk::after {
- content: "";
- position: absolute;
- right: -72px;
- top: 34%;
- width: 0;
- height: 0;
- border-top: 20px solid transparent;
- border-left: 20px solid #021636;
- border-right: 20px solid transparent;
- border-bottom: 20px solid transparent;
- }
- .sztj-tk::before {
- content: "";
- position: absolute;
- right: -75px;
- top: 34%;
- width: 0;
- height: 0;
- border-bottom: 21px solid transparent;
- border-left: 21px solid #00ffde;
- border-right: 21px solid transparent;
- border-top: 21px solid transparent;
- }
- .sztj-div1 {
- width: 23rem;
- height: 27rem;
- .el-tabs__header {
- margin-bottom: 0 !important;
- }
- .el-tabs__item.is-active {
- background: url("../assets/images/leader-iconbg8-on.png") no-repeat center !important;
- background-size: 100% 100% !important;
- font-weight: bold;
- color: #fff !important;
- }
- //如果不需要超过4个横向滚动,用此样式
- .el-tabs__nav {
- width: 100%;
- }
- .el-tabs__item {
- // cursor: pointer;
- // padding:0 .9rem !important;
- padding: 0 !important;
- width: 25%;
- text-align: center;
- // display: block;
- background: url("../assets/images/leader-iconbg8.png") no-repeat center !important;
- background-size: 100% 100% !important;
- color: #ffffff !important;
- font-size: 0.8rem;
- height: 2rem;
- line-height: 2rem;
- }
- // 如果需要超过4个横向滚动,用此样式
- // .el-tabs__item{
- // // cursor: pointer;
- // padding:0 .9rem !important;
- // text-align: center;
- // // display: block;
- // background: url("../assets/images/leader-iconbg8.png") no-repeat center !important;
- // background-size: 100% 100% !important;
- // color:#ffffff !important;
- // }
- .el-tabs__nav-wrap::after {
- display: none;
- }
- .el-tabs__active-bar {
- display: none;
- }
- .sztj-1-con {
- width: 100%;
- height: 16rem;
- margin-top: 1rem;
- overflow-y: scroll;
- display: flex;
- flex-direction: column;
- }
- .el-tree {
- color: #fff;
- .el-tree-node__content:hover {
- background-color: #123d7e !important;
- }
- .el-tree-node.is-current>.el-tree-node__content {
- background-color: #123d7e !important;
- }
- .el-tree-node:focus>.el-tree-node__content {
- background-color: #123d7e !important;
- }
- .el-tree-node__content:hover {
- background-color: #123d7e !important;
- }
- }
- }
- /* 重点工程弹框样式 */
- #leader-tbbg5 {
- position: fixed;
- top: 10%;
- right: 20.5%;
- width: calc(100% - 49rem);
- height: auto;
- padding: 1rem 2rem;
- z-index: 999;
- background: #021636;
- border: 1px solid #00ffde;
- /*box-shadow: inset 0px 0px 16px 0px rgba(0, 255, 222, .5);*/
- }
- /* 实时关注 弹框样式 */
- #leader-tkbg6 {
- position: fixed;
- top: 10%;
- left: 20.5%;
- width: calc(100% - 49rem);
- height: auto;
- padding: 2rem;
- z-index: 999;
- background: #021636;
- border: 1px solid #00ffde;
- /*box-shadow: inset 0px 0px 16px 0px rgba(0, 255, 222, .5);*/
- }
- /* 重点区域 弹框样式 */
- #leader-tkbg7 {
- position: fixed;
- top: 50%;
- left: 20.5%;
- width: calc(100% - 49rem);
- height: auto;
- padding: 2rem;
- z-index: 999;
- background: #021636;
- border: 1px solid #00ffde;
- /*box-shadow: inset 0px 0px 16px 0px rgba(0, 255, 222, .5);*/
- }
- .gctj-row {
- position: relative;
- display: flex;
- flex-direction: row;
- justify-content: space-between;
- }
- .gctj-tk {
- position: relative;
- }
- .gctj-tk::after {
- content: "";
- position: absolute;
- right: -72px;
- top: -24px;
- width: 0;
- height: 0;
- border-top: 20px solid transparent;
- border-left: 20px solid #021636;
- border-right: 20px solid transparent;
- border-bottom: 20px solid transparent;
- }
- .gctj-tk::before {
- content: "";
- position: absolute;
- right: -75px;
- top: -24px;
- width: 0;
- height: 0;
- border-bottom: 21px solid transparent;
- border-left: 21px solid #00ffde;
- border-right: 21px solid transparent;
- border-top: 21px solid transparent;
- }
- .zdqy-tk {
- position: relative;
- }
- .zdqy-tk::after {
- content: "";
- position: absolute;
- right: -72px;
- top: 123px;
- width: 0;
- height: 0;
- border-top: 20px solid transparent;
- border-left: 20px solid #021636;
- border-right: 20px solid transparent;
- border-bottom: 20px solid transparent;
- }
- .zdqy-tk::before {
- content: "";
- position: absolute;
- right: -75px;
- top: 123px;
- width: 0;
- height: 0;
- border-bottom: 21px solid transparent;
- border-left: 21px solid #00ffde;
- border-right: 21px solid transparent;
- border-top: 21px solid transparent;
- }
- .no-icon::after {
- content: "";
- border-top: none !important;
- border-left: none !important;
- border-right: none !important;
- border-bottom: none !important;
- }
- .no-icon::before {
- content: "";
- border-bottom: none !important;
- border-left: none !important;
- border-right: none !important;
- border-top: none !important;
- }
- .gctj-div1 {
- width: 26.5rem;
- height: 19rem;
- .tk-tit {
- margin-bottom: 1rem;
- }
- img {
- display: block;
- width: 100%;
- height: 100%;
- }
- }
- .gctj-div2 {
- width: 39rem;
- height: 19rem;
- text-align: left;
- padding-top: 2.5rem;
- h5 {
- color: #fff;
- font-size: 0.9rem;
- font-weight: bold;
- padding-bottom: 0.5rem;
- }
- p {
- color: #fff;
- font-size: 0.6rem;
- line-height: 1.2rem;
- margin-bottom: 0.2rem;
- text-indent: 1.8rem;
- }
- }
- .sztj-div2 {
- width: 67rem;
- height: 20rem;
- }
- .sztj-div3 {
- width: fit-content;
- height: 27rem;
- }
- .pop {
- width: 100%;
- height: 100%;
- z-index: 2;
- }
- bor-on {
- border: 1px solid #00ffde;
- }
- #tkCharts1 {
- width: 25rem;
- height: 21.5rem;
- }
- #tkCharts2 {
- width: 40rem;
- height: 17.4rem;
- }
- #tkCharts3 {
- width: 25rem;
- height: 20rem;
- }
- #tkCharts4 {
- width: 39rem;
- height: 20rem;
- }
- #sjCharts1 {
- width: 22rem;
- height: 12rem;
- }
- #sjCharts2 {
- width: 45rem;
- height: 12rem;
- }
- #tbCharts1 {
- width: 25rem;
- height: 12rem;
- }
- #tbCharts2 {
- width: 40rem;
- height: 12rem;
- }
- #szCharts1 {
- width: 67rem;
- height: 18rem;
- }
- #szCharts2 {
- width: 20rem;
- height: 22rem;
- }
- #szCharts3 {
- width: 20rem;
- height: 20rem;
- }
- /*机器人*/
- .leader-ai {
- position: fixed;
- bottom: 2rem;
- right: 25%;
- z-index: 10;
- }
- .sj-layer-switch {
- position: fixed;
- bottom: 4rem;
- display: flex;
- left: 21%;
- z-index: 10;
- }
- /*图层切换*/
- .leader-tcqh {
- width: fit-content;
- height: fit-content;
- text-align: center;
- color: #fff !important;
- font-size: 0.6rem;
- margin-right: 1rem;
- display: flex;
- flex-direction: column;
- img {
- margin-bottom: 3px;
- }
- }
- .leader-tcqh:hover {
- color: #fff !important;
- }
- //地图
- .map {
- position: absolute;
- top: 0px;
- left: 0px;
- width: 100%;
- height: 100%;
- // z-index: 1;
- }
- //重点区域
- .zdqy {
- .el-tabs__header {
- margin-bottom: 0 !important;
- }
- .el-tabs__item.is-active {
- background: url("../assets/images/leader-iconbg8-on.png") no-repeat center !important;
- background-size: 100% 100% !important;
- font-weight: bold;
- color: #fff !important;
- }
- //如果不需要超过4个横向滚动,用此样式
- .el-tabs__nav {
- width: auto;
- }
- .el-tabs__item {
- // cursor: pointer;
- // padding:0 .9rem !important;
- padding: 0 !important;
- /*width: 25%;*/
- width: 100px;
- text-align: center;
- // display: block;
- background: url("../assets/images/leader-iconbg8.png") no-repeat center !important;
- background-size: 100% 100% !important;
- color: #ffffff !important;
- font-size: 0.8rem;
- height: 2rem;
- line-height: 2rem;
- }
- // 如果需要超过4个横向滚动,用此样式
- // .el-tabs__item{
- // // cursor: pointer;
- // padding:0 .9rem !important;
- // text-align: center;
- // // display: block;
- // background: url("../assets/images/leader-iconbg8.png") no-repeat center !important;
- // background-size: 100% 100% !important;
- // color:#ffffff !important;
- // }
- .el-tabs__nav-wrap::after {
- display: none;
- }
- .el-tabs__active-bar {
- display: none;
- }
- }
- /*事件统计 弹框日期样式*/
- #leader-tkbg3 .el-date-editor.el-input__inner {
- width: 720px !important;
- background: rgb(2 22 54);
- border: 1px solid #0155a3;
- }
- .sj-data-picker-input {
- .el-range-input {
- font-size: 14px;
- background: #061d42;
- color: #fff;
- width: 45%;
- }
- .el-range__close-icon {
- width: 0px;
- }
- .el-range-separator {
- color: #fff;
- }
- .el-range__icon {
- line-height: 24px;
- color: #fff;
- font-size: 16px;
- }
- }
- .sj-data-picker {
- width: 720px !important;
- background: #021636;
- color: #fff !important;
- border: 1px solid #0155a3;
- .el-picker-panel {
- color: #fff !important;
- border: 1px solid #0155a3;
- background: #021636;
- }
- .popper__arrow::after {
- top: 0px !important;
- border-bottom-color: #17386e !important;
- }
- .el-input__inner {
- background-color: #061d42;
- border: 1px solid #17386e;
- color: #ffffff;
- }
- .el-date-range-picker__time-header {
- border-bottom: 1px solid #17386e;
- }
- .el-date-range-picker__content.is-left {
- border-right: 1px solid #17386e;
- }
- .el-icon-arrow-right {
- color: #ffffff;
- }
- .el-input.is-disabled .el-input__inner {
- background-color: #061d42;
- border: 1px solid #17386e;
- color: #ffffff;
- }
- .el-picker-panel__icon-btn {
- color: #fff;
- }
- .el-date-table th {
- color: #ffffff;
- border-bottom: solid 1px #17386e;
- }
- .el-date-table td.in-range div {
- background-color: #143260;
- }
- .el-picker-panel__footer {
- border-top: 1px solid #17386e;
- background-color: #021636;
- }
- .el-button.is-plain {
- background: #143260;
- border: 1px solid #2d4791;
- color: #4890fb;
- }
- .el-time-panel {
- border: solid 1px #17386e;
- background-color: #072554;
- }
- .el-time-spinner__item {
- color: #fff;
- }
- .el-time-spinner__item:hover:not(.disabled):not(.active) {
- background: #10408b;
- }
- .el-time-panel__content::after,
- .el-time-panel__content::before {
- border-top: 1px solid #113474;
- border-bottom: 1px solid #113474;
- }
- .el-time-spinner__item.active:not(.disabled) {
- color: #57ceff;
- font-weight: bold;
- }
- .el-time-panel__btn.cancel {
- color: #f7f7f7;
- }
- .el-time-panel__footer {
- border-top: 1px solid #17386e;
- }
- }
- /*时间日历*/
- .el-picker-panel {
- border: 1px solid #1d6895;
- background: #082242;
- color: #fff;
- .el-popper[x-placement^=bottom] .popper__arrow::after {
- border-bottom-color: #082242;
- }
- .el-popper[x-placement^=bottom] .popper__arrow {
- border-bottom-color: #1d6895;
- }
- .el-date-picker__header-label {
- color: #ffffff;
- }
- .el-picker-panel__icon-btn {
- color: #ffffff;
- }
- .el-date-table th {
- color: #ffffff;
- border-bottom: solid 1px #98a9cb;
- }
- .el-picker-panel {
- color: #ffffff;
- }
- .el-date-table td.next-month,
- .el-date-table td.prev-month {
- color: #878d9b;
- }
- }
- .sj-container .el-input__inner {
- color: #2d8fed !important;
- border: solid 1px #2665a1 !important;
- }
- .el-tabs__nav-next,
- .el-tabs__nav-prev {
- line-height: 30px;
- }
- </style>
|