projectManagement.vue 324 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384
  1. <template>
  2. <div class="projectManagement_template">
  3. <div class="nav_top">
  4. <div class="left_title">
  5. <img src="../img/iconfont/notice.png"><span class="span">Please pay attention to the updated content at any time.</span>
  6. </div>
  7. <div class="right_operation">
  8. <el-dropdown @command="commandDropdown" trigger="click" @visible-change="commandHide('dropdown_projectManagement_division')">
  9. <span class="el-dropdown-link">
  10. <span>{{divisionName}}</span><i class="el-icon-caret-bottom el-icon--right"></i>
  11. </span>
  12. <el-dropdown-menu slot="dropdown" class="scrollbar_style dropdown_projectManagement_division">
  13. <el-dropdown-item v-for="item in divisionNav" :class="{'select':item.id==division}" :command="{'key':'division','id':item.id}" :key="item.id">{{item.name}}</el-dropdown-item>
  14. </el-dropdown-menu>
  15. </el-dropdown>
  16. <el-input placeholder="search..." v-model="keywords" @keyup.native="getLightListKeyUp($event)" class="input-with-select">
  17. <i slot="suffix" class="el-input__icon el-icon-search" @click="getLightList()"></i>
  18. </el-input>
  19. <div class="btn" @click="addItemFun()"><img src="../img/iconfont/add.png"><span>New project</span></div>
  20. </div>
  21. </div>
  22. <div class="projectManagement_main">
  23. <side-bar-idcol class="side_bar_left" :sideBarList="projectNav" :companyId="companyId" :projectId="projectId" :roadId="roadId" :sideBarListIsOpen="sideBarListIsOpen" :projectSelectFun="projectSelectFun" :roadSelectFun="roadSelectFun" :sideBarIsOn="sideBarIsOn" :sideBarType="sideBarType" :sideBarCompanyList="sideBarCompanyList" :projectAll="projectAll"></side-bar-idcol>
  24. <div class="main_top">
  25. <div class="main_top_left">
  26. <div class="main_top_left_left">
  27. <div class="title">
  28. <div class="l_text">
  29. <span class="span1">{{detailData.projectname}}</span>
  30. <span class="span2">Number:{{detailData.number}}</span>
  31. </div>
  32. <div class="r_btn" @click="editProject()"><i class="iconfont icon-bianji"></i></div>
  33. </div>
  34. <p class="p"><i class="iconfont icon-dizhi"></i><span class="span2">{{detailData.location}}</span></p>
  35. <div class="data_bpx">
  36. <div class="li">
  37. <p class="p1">{{Number(deviceTotalData.light_num).formatNumberRgx()}}</p>
  38. <p class="p2">Lights</p>
  39. </div>
  40. <div class="li">
  41. <p class="p1"><span class="span1">{{Number(deviceTotalData.online_num).formatNumberRgx()}}</span><span class="span2">{{deviceTotalData.online_rate}}</span></p>
  42. <p class="p2">On-line</p>
  43. </div>
  44. <div class="li">
  45. <p class="p1"><span class="span1">{{Number(deviceTotalData.light_num).formatNumberRgx()}}</span><span class="span2">{{deviceTotalData.light_rate}}</span></p>
  46. <p class="p2">Light-up</p>
  47. </div>
  48. <div class="li">
  49. <p class="p1"><span class="span1">{{Number(deviceTotalData.fault_count).formatNumberRgx()}}</span><span class="span2">{{deviceTotalData.fault_rate}}</span></p>
  50. <p class="p2">Flaut</p>
  51. </div>
  52. </div>
  53. </div>
  54. <div class="main_top_left_right">
  55. <div class="box box1">
  56. <p class="p1"><i></i><span>Time zone</span></p>
  57. <p class="p2">{{detailData.timezone}}</p>
  58. </div>
  59. <div class="box box2">
  60. <p class="p1"><i></i><span>Creation time</span></p>
  61. <p class="p2">{{detailData.create_time}}</p>
  62. </div>
  63. <div class="box box3">
  64. <p class="p1"><i></i><span>Region</span></p>
  65. <p class="p2">{{detailData.address}}</p>
  66. </div>
  67. </div>
  68. </div>
  69. <div class="main_top_right">
  70. <div class="weather_top">
  71. <div class="weather_top_l">
  72. <div class="box1">
  73. <img src="../img/weather/304.png">
  74. </div>
  75. <div class="box2">
  76. <p class="p1">Today</p>
  77. <p class="p2">{{weatherList[0].Thundershower}}</p>
  78. </div>
  79. </div>
  80. <div class="weather_top_r">
  81. <div class="box1">
  82. <img src="../img/sunrise.png">
  83. <p class="p2">{{weatherList[0].sr}}</p>
  84. </div>
  85. <div class="box2">
  86. <img src="../img/sunset.png">
  87. <p class="p2">{{weatherList[0].ss}}</p>
  88. </div>
  89. <div class="box3"><span>{{(new Date().format('HH:MM'))}}</span></div>
  90. </div>
  91. </div>
  92. <div class="weather_top_bottom" v-if="weatherList.length>1">
  93. <div class="li">
  94. <p class="p1">{{weatherList[1].dateStr}}</p>
  95. <img :src="require('../img/weather/'+weatherList[1].code+'.png')">
  96. <p class="p2">{{weatherList[1].maxTmp+'/'+weatherList[1].minTmp}}</p>
  97. </div>
  98. <div class="li">
  99. <p class="p1">{{weatherList[2].dateStr}}</p>
  100. <img :src="require('../img/weather/'+weatherList[2].code+'.png')">
  101. <p class="p2">{{weatherList[2].maxTmp+'/'+weatherList[2].minTmp}}</p>
  102. </div>
  103. <div class="li">
  104. <p class="p1">{{weatherList[3].dateStr}}</p>
  105. <img :src="require('../img/weather/'+weatherList[3].code+'.png')">
  106. <p class="p2">{{weatherList[3].maxTmp+'/'+weatherList[3].minTmp}}</p>
  107. </div>
  108. <div class="li">
  109. <p class="p1">{{weatherList[4].dateStr}}</p>
  110. <img :src="require('../img/weather/'+weatherList[4].code+'.png')">
  111. <p class="p2">{{weatherList[4].maxTmp+'/'+weatherList[4].minTmp}}</p>
  112. </div>
  113. <div class="li">
  114. <p class="p1">{{weatherList[5].dateStr}}</p>
  115. <img :src="require('../img/weather/'+weatherList[2].code+'.png')">
  116. <p class="p2">{{weatherList[5].maxTmp+'/'+weatherList[5].minTmp}}</p>
  117. </div>
  118. <div class="li">
  119. <p class="p1">{{weatherList[6].dateStr}}</p>
  120. <img :src="require('../img/weather/'+weatherList[6].code+'.png')">
  121. <p class="p2">{{weatherList[6].maxTmp+'/'+weatherList[6].minTmp}}</p>
  122. </div>
  123. </div>
  124. </div>
  125. </div>
  126. <div class="main_table">
  127. <div class="table_top">
  128. <div class="table_top_l">
  129. <el-dropdown @command="commandDropdown" trigger="click" @visible-change="commandHide('dropdown_projectManagement_roadId')">
  130. <span class="el-dropdown-link">
  131. <span>{{roadIdName}}</span><i class="el-icon-caret-bottom el-icon--right"></i>
  132. </span>
  133. <el-dropdown-menu slot="dropdown" class="scrollbar_style dropdown_projectManagement_roadId">
  134. <el-dropdown-item :class="{'select':roadId== 0}" :command="{'key':'roadId','id':0}" :key="0">All</el-dropdown-item>
  135. <el-dropdown-item v-for="item in tabNavList" :class="{'select':item.id==roadId}" :command="{'key':'roadId','id':item.id}" :key="item.id">{{item.name}}</el-dropdown-item>
  136. </el-dropdown-menu>
  137. </el-dropdown>
  138. <div class="nav_box">
  139. <div class="li" :class="{'select':status=='0' && alarmtype == '0' && offline == '0' && online == '0'}" @click="statusTypeFun('0','0','0','0')"><span>All</span></div>
  140. <div class="li" :class="{'select':alarmtype == '1'}" @click="statusTypeFun('0','1','0','0')"><span>Overdischarge</span></div>
  141. <div class="li" :class="{'select':alarmtype == '2'}" @click="statusTypeFun('0','2','0','0')"><span>Overpressure</span></div>
  142. <div class="li" :class="{'select':offline == '1'}" @click="statusTypeFun('0','0','1','0')"><span>Offline</span></div>
  143. <div class="li" :class="{'select':online == '1'}" @click="statusTypeFun('0','0','0','1')"><span>Online</span></div>
  144. <div class="li" :class="{'select':status == '1'}" @click="statusTypeFun('1','0','0','0')"><span>Warning</span></div>
  145. </div>
  146. <div class="btn" @click="batchProcessingFun('on')" v-if="batchProcessing=='off'"><i class="iconfont icon-piliangcaozuo"></i><span>Batch management</span></div>
  147. <div class="left_button" v-if="batchProcessing=='on'">
  148. <div :class="{'lampcontrol_type_select':lampcontrolOperationType=='1'}" @click="batchOperation('1')"><span>Turn-on</span></div>
  149. <div :class="{'lampcontrol_type_select':lampcontrolOperationType=='0'}" @click="batchOperation('0')"><span>Turn-off</span></div>
  150. <div :class="{'lampcontrol_type_select':lampcontrolOperationType=='参数'}" @click="batchOperation('参数')"><span>Parameter</span></div>
  151. <div class="dimming_slider_box" :class="{'lampcontrol_type_select':lampcontrolOperationType=='调光'}" @click="batchOperation('调光')">
  152. <span>Dimming</span>
  153. <el-slider v-model="batchDimmingVal" v-if="lampcontrolOperationType=='调光'"></el-slider>
  154. <span class="span_last" v-if="lampcontrolOperationType=='调光'">{{batchDimmingVal}}%</span>
  155. </div>
  156. <div :class="{'lampcontrol_type_select':lampcontrolOperationType=='3'}" @click="batchOperation('3')"><span class="del">Delete</span></div>
  157. <div :class="{'wxzzt':lampcontrolOperationType == '-1'}"><span @click="batchProcessingFun('off')" v-loading="loading.batchProcessingFun">{{lampcontrolOperationType=='参数'?'modify':'Save'}}</span></div>
  158. <div @click="batchProcessingFun('cancel')"><span>Cancel</span></div>
  159. </div>
  160. </div>
  161. <div class="table_top_r">
  162. <div class="btn" @click="getLightList()">
  163. <i class="iconfont icon-shuaxin"></i>
  164. </div>
  165. <div class="btn" @click="fieldManagement()">
  166. <i class="iconfont icon-ziduan"></i><span>Field</span>
  167. </div>
  168. <div class="btn" @click="addLightControlFun()">
  169. <img src="../img/iconfont/add.png"><span>New Light</span>
  170. </div>
  171. </div>
  172. </div>
  173. <el-table
  174. ref="deviceList"
  175. v-loading="loading.deviceList"
  176. element-loading-background="rgba(255, 255, 255, 0.5)"
  177. height="calc(100% - 9.6rem)"
  178. @selection-change="handleSelectionChange"
  179. :data="deviceList">
  180. <el-table-column
  181. fixed
  182. type="selection"
  183. width="50">
  184. </el-table-column>
  185. <el-table-column
  186. label="Num"
  187. prop="webIndex"
  188. align="center"
  189. header-align="center"
  190. width="60">
  191. </el-table-column>
  192. <el-table-column
  193. v-for="(item) in deviceArr"
  194. :key="'table_'+item.prop"
  195. :prop="item.prop"
  196. :label="item.label"
  197. :align="item.align?item.align:'center'"
  198. :width="item.width"
  199. :show-overflow-tooltip="true"
  200. :min-width="item.minWidth">
  201. <template slot-scope="scope">
  202. <div v-if="item.prop != 'status'&&item.prop != 'lighteness'">{{scope.row[item.prop]}}{{item.unit?item.unit:''}}</div>
  203. <div v-if="item.prop == 'status'" class="status">
  204. <img src="../img/projectManagement/Online.png" v-if="scope.row[item.prop] == '1'">
  205. <img src="../img/projectManagement/Offline.png" v-if="scope.row[item.prop] == '0'" >
  206. </div>
  207. <div v-if="item.prop == 'lighteness'" class="Brightness">
  208. <div class="progress_outer" @click="brightnessAdjustment($event,scope.row)">
  209. <div class="progress_inner" :style="{'width':scope.row['lighteness']+'%'}">
  210. </div>
  211. <div class="text" :class="{'light50':scope.row['lighteness'] >55,'light0':scope.row['lighteness'] ==0}">{{scope.row['lighteness'] != 0 ? scope.row['lighteness']+'%':'off'}}</div>
  212. </div>
  213. <!-- <div style="position: absolute;top: 0px;left: 0px;width: 100%;height: 100%;" ></div> -->
  214. </div>
  215. </template>
  216. </el-table-column>
  217. <el-table-column
  218. fixed="right"
  219. align="center"
  220. :width="12*remRatio"
  221. :label="'operation'">
  222. <template slot-scope="scope">
  223. <span class="btn" @click="seeFun(scope.row)" title="See">
  224. <i class="iconfont icon-chakanxiangqing"></i>
  225. </span>
  226. <span class="btn" @click="editFun(scope.row)" title="Edit">
  227. <i class="iconfont icon-bianji"></i>
  228. </span>
  229. <span class="btn" @click="historicalFun(scope.row)" title="Historical">
  230. <i class="iconfont icon-lishi"></i>
  231. </span>
  232. <span class="btn" @click="gisFun(scope.row,'GIS')" title="GIS">
  233. <i class="iconfont icon-GIS"></i>
  234. </span>
  235. <span class="btn" @click="monitorFun(scope.row)" title="Weather">
  236. <i class="iconfont icon-tianqi"></i>
  237. </span>
  238. </template>
  239. </el-table-column>
  240. </el-table>
  241. <div class="pagination_box">
  242. <div class="left">
  243. <div class="totle">
  244. <span class="span1">Total</span>
  245. <span class="span2">{{total}}</span>
  246. </div>
  247. <div class="line"></div>
  248. <el-dropdown @command="commandDropdown" trigger="click" @visible-change="commandHide('dropdown_projectManagement_division')">
  249. <span class="el-dropdown-link">
  250. <span>{{pageSizeName}}</span><i class="el-icon-caret-bottom el-icon--right"></i>
  251. </span>
  252. <el-dropdown-menu slot="dropdown" class="scrollbar_style dropdown_projectManagement_pageSize">
  253. <el-dropdown-item v-for="item in pageSizeArr" :class="{'select':item.id==pageSize}" :command="{'key':'pageSize','id':item.id}" :key="item.id">{{item.name}}</el-dropdown-item>
  254. </el-dropdown-menu>
  255. </el-dropdown>
  256. </div>
  257. <el-pagination
  258. @current-change="handleCurrentChange"
  259. :current-page="currentPage"
  260. :page-sizes="pageSizeArr"
  261. :page-size="pageSize"
  262. layout="prev, pager, next, jumper"
  263. :total="total">
  264. </el-pagination>
  265. </div>
  266. </div>
  267. </div>
  268. <div class="lamp_light_slider" v-show="lampLightSliderShow">
  269. <div class="bg" @click="lampLightSliderClose()"></div>
  270. <div class="box" :style="{'top':lampLightSliderPageY+'px','left':lampLightSliderPageX+'px'}">
  271. <div class="div1">
  272. <span></span><i></i>
  273. </div>
  274. <div class="div2">
  275. <div>
  276. <span>{{'brightness'}}: {{lampLightSlider}}%</span>
  277. <span @click="lampLightSliderSave()" v-loading="loading.lampLightSlider">{{'save'}}</span>
  278. </div>
  279. <div>
  280. <el-slider v-model="lampLightSlider"></el-slider>
  281. </div>
  282. </div>
  283. </div>
  284. </div>
  285. <!-- 添加/编辑项目弹框 -->
  286. <el-dialog
  287. :title="projectTitle"
  288. :visible.sync="addItemDialog"
  289. :close-on-click-modal="false"
  290. class="addItem_box"
  291. width="60%">
  292. <el-form ref="addItemData" label-width="120px" :model="addItemData" label-position="right" class="box">
  293. <el-row>
  294. <el-col :span="12" class="left_box">
  295. <el-form-item label="Project name:" prop="projectName" :rules="{required: true, message: 'Can not be empty', trigger: 'blur'}">
  296. <el-input v-model="addItemData.projectName" @keyup.native="projectKeydown($event)"></el-input>
  297. </el-form-item>
  298. <el-form-item label="Country:" prop="countryId" :rules="{required: true, message: 'Not null', trigger: 'change'}">
  299. <el-select v-model="addItemData.countryId" @change = "countryType" @keyup.native="projectKeydown($event)">
  300. <el-option
  301. v-for="item in countryList"
  302. :key="item.id"
  303. :label="item.name"
  304. :value="item.id">
  305. </el-option>
  306. </el-select>
  307. </el-form-item>
  308. <el-form-item label="City:" prop="cityId" :rules="{required: true, message: 'Not null', trigger: 'change'}" v-if="cityList.length > 0">
  309. <el-select v-model="addItemData.cityId" @change = "cityType" @keyup.native="projectKeydown($event)">
  310. <el-option
  311. v-for="item in cityList"
  312. :key="item.id"
  313. :label="item.name"
  314. :value="item.id">
  315. </el-option>
  316. </el-select>
  317. </el-form-item>
  318. <el-form-item label="City:" v-if="cityList.length == 0">
  319. <el-input v-model="addItemData.cityId" :disabled="true"></el-input>
  320. </el-form-item>
  321. </el-col>
  322. <el-col :span="12">
  323. <el-form-item label="Number:" prop="projectNo" :rules="{required: true, message: 'Can not be empty', trigger: 'blur'}">
  324. <el-input v-model="addItemData.projectNo" @keyup.native="projectKeydown($event)"></el-input>
  325. </el-form-item>
  326. <el-form-item label="Province:" prop="provinceId" :rules="{required: true, message:'Not null', trigger: 'change'}" v-if="provinceList.length > 0">
  327. <el-select v-model="addItemData.provinceId" @change = "provinceType" @keyup.native="projectKeydown($event)">
  328. <el-option
  329. v-for="item in provinceList"
  330. :key="item.id"
  331. :label="item.name"
  332. :value="item.id">
  333. </el-option>
  334. </el-select>
  335. </el-form-item>
  336. <el-form-item label="Province:" v-if="provinceList.length == 0">
  337. <el-input v-model="addItemData.provinceId" :disabled="true"></el-input>
  338. </el-form-item>
  339. <el-form-item label="Area:" prop="areaId" :rules="{required: true, message:'Not null', trigger: 'change'}" v-if="areaList.length > 0">
  340. <el-select v-model="addItemData.areaId" @keyup.native="projectKeydown($event)">
  341. <el-option
  342. v-for="item in areaList"
  343. :key="item.id"
  344. :label="item.name"
  345. :value="item.id">
  346. </el-option>
  347. </el-select>
  348. </el-form-item>
  349. <el-form-item label="Area:" v-if="areaList.length == 0">
  350. <el-input v-model="addItemData.areaId" :disabled="true"></el-input>
  351. </el-form-item>
  352. </el-col>
  353. </el-row>
  354. <el-form-item label="Inspection time:" prop="patrolinterval">
  355. <el-select v-model="addItemData.patrolinterval" style="width:100%" @keyup.native="projectKeydown($event)">
  356. <el-option key="0" value="0" :label="'Close inspection'"></el-option>
  357. <el-option key="5" value="5" :label="'5min'"></el-option>
  358. <el-option key="10" value="10" :label="'10min'"></el-option>
  359. <el-option key="30" value="30" :label="'30min'"></el-option>
  360. <el-option key="60" value="60" :label="'1h'"></el-option>
  361. <el-option key="120" value="120" :label="'2h'"></el-option>
  362. <el-option key="360" value="360" :label="'6h'"></el-option>
  363. <el-option key="720" value="720" :label="'12h'"></el-option>
  364. <el-option key="1440" value="1440" :label="'24h'"></el-option>
  365. </el-select>
  366. </el-form-item>
  367. <el-form-item label="Address:" prop="address">
  368. <el-input v-model="addItemData.address" type="textarea" @keyup.native="projectKeydown($event)"></el-input>
  369. </el-form-item>
  370. </el-form>
  371. <div class="dialog_foot">
  372. <el-button type="primary" @click="projectSaveFun()" v-loading="projectSaveLoading">{{projectButton}}</el-button>
  373. <span class="project_del" v-if="projectTitle == 'Edit Project'" @click="projectSaveDel()">{{'Delete Project'}}</span>
  374. </div>
  375. </el-dialog>
  376. <!-- 字段管理弹框 -->
  377. <el-dialog
  378. :title="'Field Management'"
  379. :visible.sync="fieldDialog"
  380. :close-on-click-modal="false"
  381. class="field_box"
  382. width="95%">
  383. <div class="clearfix" :class="{'fielf_box':(windowWidth < 1600 && version == 0)}">
  384. <div class="field_list" :class="{'field_select':item.select=='1'&&item.select}" v-for="(item) in fieldList" :key="item.fields" v-show="item.fields1 != 'lighteness'">
  385. <div @click="fieldSelect(item)">
  386. <img src="../img/projectManagement/select.png" height="12" width="12" v-if="item.select=='1'">
  387. <span>{{item.enname}}</span>
  388. </div>
  389. </div>
  390. </div>
  391. <div class="dialog_foot">
  392. <el-button type="primary" @click="fieldKeep()" v-loading="loading.fieldKeep">{{'Save'}}</el-button>
  393. </div>
  394. </el-dialog>
  395. <!-- 表格详情弹框 -->
  396. <el-dialog
  397. title="Lamp Details"
  398. :visible.sync="detailsDialog"
  399. :close-on-click-modal="false"
  400. class="solar_dialig details_box"
  401. width="95%">
  402. <div class="wrap">
  403. <div class="nav clearfix" style="width: 550px;margin-left: -275px;">
  404. <div class="nav_list"
  405. :class="{'details_nav_select':detailsNavSelect==item.model}"
  406. v-for="item in detailsNavListEN"
  407. :key="item.label"
  408. @click="detailsNavSelectFun(item)"><span>{{item.label}}</span></div>
  409. </div>
  410. <div class="details_list_box clearfix" :class="{'details_list_box_EN':version == 0}" v-loading="loading.detailsFieldList">
  411. <div class="details_list" :class="{'details_list_min':(windowWidth < 1600 && version == 0)}" v-for="item in detailsFieldList" :key="item.key">
  412. <template v-if="!(lampcontrolListHC['devicetype'] == '1')&&!(item.model =='lighteness'&&lampLoadtype=='1')">
  413. <span v-if="item.unit">{{item.key+'('+item.unit+'):'}}</span>
  414. <span v-if="!item.unit">{{item.key+':'}}</span>
  415. <span v-if="item.value && item.model!='lampstatus'&&item.model !='status'&&item.model !='devicetype'&&item.model !='battstatus'&&item.model !='chargestage'" :title="item.value">{{item.value}}</span>
  416. <span v-if="item.model && item.model=='lampstatus' && item.value == '0'" :title="'Off'">{{'Off'}}</span>
  417. <span v-if="item.model && item.model=='lampstatus' && item.value == '1'" :title="'On'">{{'On'}}</span>
  418. <span v-if="item.model && item.model=='status' && item.value == '0'" :title="'Not online'">{{'Not online'}}</span>
  419. <span v-if="item.model && item.model=='status' && item.value == '1'" :title="'Online'">{{'Online'}}</span>
  420. <span v-if="item.model && item.model=='battstatus' && item.value == '0'" :title="'idle'">{{'idle'}}</span>
  421. <span v-if="item.model && item.model=='battstatus' && item.value == '1'" :title="'Discharging'">{{'Discharging'}}</span>
  422. <span v-if="item.model && item.model=='battstatus' && item.value == '2'" :title="'Charging'">{{'Charging'}}</span>
  423. <span v-if="item.model && item.model=='battstatus' && item.value == '3'" :title="'Discharge while charging'">{{'Discharge while charging'}}</span>
  424. <span v-if="item.model && item.model=='chargestage' && (item.value == ''||item.value == null)" :title="'Unknown state'">{{'Unknown state'}}</span>
  425. <span v-if="item.model && item.model=='chargestage' && item.value == '0'" :title="'Uncharged'">{{'Uncharged'}}</span>
  426. <span v-if="item.model && item.model=='chargestage' && item.value == '1'" :title="'Start charging'">{{'Uncharged'}}</span>
  427. <span v-if="item.model && item.model=='chargestage' && item.value == '6'" :title="'Current limiting'">{{'Uncharged'}}</span>
  428. <span v-if="item.model && item.model=='chargestage' && item.value == '7'" :title="'Full'">{{'Uncharged'}}</span>
  429. <span v-if="item.model && item.model=='chargestage' && item.value == '16'" :title="'MPPT charging'">{{'MPPT charging'}}</span>
  430. <span v-if="item.model && item.model=='chargestage' && item.value == '32'" :title="'Balanced charge'">{{'Balanced charge'}}</span>
  431. <span v-if="item.model && item.model=='chargestage' && item.value == '48'" :title="'Increase charging'">{{'Increase charging'}}</span>
  432. <span v-if="item.model && item.model=='chargestage' && item.value == '64'" :title="'Floating charge'">{{'Floating charge'}}</span>
  433. <span v-if="!(item.value)">{{item.value}}</span>
  434. </template>
  435. </div>
  436. <div v-if="detailsFieldList.length == 0 && !loading.detailsFieldList" style="text-align:center;">
  437. {{'No relevant data was queried'}}
  438. </div>
  439. </div>
  440. </div>
  441. </el-dialog>
  442. <!-- 灯控添加编辑 -->
  443. <el-dialog
  444. :title="lightControlTitle"
  445. :visible.sync="addLightControlDialog"
  446. :close-on-click-modal="false"
  447. class="solar_dialig addLightControl_box"
  448. width="95%">
  449. <el-dialog
  450. width="80%"
  451. :title="'Lamp positioning'"
  452. :visible.sync="amapWrapper"
  453. :close-on-click-modal="false"
  454. append-to-body>
  455. <div class="lampAmapWrapper_box">
  456. <el-input class="screenMap" v-model="screenMap" @keyup.native="screenMapKeyUp($event)" :placeholder="'Please enter the keyword search'" clearable>
  457. <i slot="prefix" class="scree-icon el-icon-search" @click="screenMapChange(screenMap)"></i>
  458. </el-input>
  459. <div id="lampAmapWrapper">
  460. </div>
  461. </div>
  462. </el-dialog>
  463. <el-form label-width="200px" ref="lightControlData" :model="lightControlData" :rules="lightControlDataRulesEN" label-position="right" class="clearfix">
  464. <el-form-item :label="item.label+item.unit+':'" :key="item.id" v-for="item in lightControlListEN_for" class="list_box" :class="{'list_box_min':windowWidth < 1600}" :prop="item.model">
  465. <el-input v-model="lightControlData[item.model]" v-if="item.type != 'select'&&item.type != 'select_filterable'&&item.model !='lamp_no'"
  466. @keyup.native="lampKeydown($event)"></el-input>
  467. <el-input-number v-model="lightControlData[item.model]" controls-position="right" :min="0" :max="999999" v-if="item.type != 'select'&&item.model =='lamp_no'"
  468. @keyup.native="lampKeydown($event)"></el-input-number>
  469. <el-select v-model="lightControlData[item.model]" placeholder="please choose" v-if="item.type == 'select' && item.model == 'protocoltype'" @keyup.native="lampKeydown($event)">
  470. <el-option :key="0" label="mqtt" :value="0"></el-option>
  471. </el-select>
  472. <el-select v-model="lightControlData[item.model]" placeholder="please choose" v-if="item.type == 'select' && item.model == 'companyName'" @keyup.native="lampKeydown($event)">
  473. <el-option :key="item.id" :label="item.name" :value="item.id" v-for="item in companyNav"></el-option>
  474. </el-select>
  475. <el-select v-model="lightControlData[item.model]" placeholder="please choose" v-if="item.type == 'select' && item.model == 'loadtype'" @keyup.native="lampKeydown($event)">
  476. <el-option key="0" label="LED" value="0"></el-option>
  477. <el-option key="1" label="Insecticidal lamp" value="1"></el-option>
  478. </el-select>
  479. <el-select v-model="lightControlData[item.model]" placeholder="please choose" v-if="item.type == 'select' && item.model == 'network_id'"
  480. @keyup.native="lampKeydown($event)">
  481. <el-option
  482. v-for="item in networkList"
  483. :key="item.id"
  484. :label="item.name"
  485. :value="item.id">
  486. </el-option>
  487. </el-select>
  488. <el-select
  489. v-model="lightControlData[item.model]"
  490. placeholder="please choose"
  491. @keyup.native="lampKeydown($event)"
  492. v-if="item.type == 'select_filterable' && item.model == 'polematerial'">
  493. <el-option key="Cold galvanizing" label="Cold galvanizing" value="Cold galvanizing"></el-option>
  494. <el-option key="Hot galvanizing" label="Hot galvanizing" value="Hot galvanizing"></el-option>
  495. <el-option key="Stainless steel" label="Stainless steel" value="Stainless steel"></el-option>
  496. </el-select>
  497. <el-select
  498. v-model="lightControlData[item.model]"
  499. placeholder="please choose"
  500. @keyup.native="lampKeydown($event)"
  501. v-if="item.type == 'select_filterable' && item.model == 'lighttype'">
  502. <el-option key="LED lamp" label="LED lamp" value="LED lamp"></el-option>
  503. <el-option key="Sodium lamp" label="Sodium lamp" value="Sodium lamp"></el-option>
  504. <el-option key="Energy saving light" label="Energy saving light" value="Energy saving light"></el-option>
  505. </el-select>
  506. <el-select
  507. v-model="lightControlData[item.model]"
  508. placeholder="please choose"
  509. @keyup.native="lampKeydown($event)"
  510. v-if="item.type == 'select_filterable' && item.model == 'lamptype'">
  511. <el-option key="Solar street lamp" label="Solar street lamp" value="Solar street lamp" v-if="lampLoadtype == '0'"></el-option>
  512. <el-option key="Solar street lamp" label="Solar street lamp" value="Solar street lamp" v-if="lampLoadtype == '1'"></el-option>
  513. <el-option key="Landscape Insect trap" label="Landscape Insect trap" value="Landscape Insect trap"></el-option>
  514. <el-option key="Garden light" label="Garden light" value="Garden light"></el-option>
  515. </el-select>
  516. <el-select
  517. v-model="lightControlData[item.model]"
  518. placeholder="please choose"
  519. @keyup.native="lampKeydown($event)"
  520. v-if="item.type == 'select_filterable' && item.model == 'boardtype'">
  521. <el-option key="Single crystal plate" label="Single crystal plate" value="Single crystal plate"></el-option>
  522. <el-option key="Polycrystalline plate" label="Polycrystalline plate" value="Polycrystalline plate"></el-option>
  523. <el-option key="Amorphous plate" label="Amorphous plate" value="Amorphous plate"></el-option>
  524. </el-select>
  525. <el-select
  526. v-model="lightControlData[item.model]"
  527. placeholder="please choose"
  528. @keyup.native="lampKeydown($event)"
  529. v-if="item.type == 'select_filterable' && item.model == 'batterytype'">
  530. <el-option key="Lead acid battery" label="Lead acid battery" value="Lead acid battery"></el-option>
  531. <el-option key="Lithium battery" label="Lithium battery" value="Lithium battery"></el-option>
  532. <el-option key="Supercapacitor" label="Supercapacitor" value="Supercapacitor"></el-option>
  533. </el-select>
  534. </el-form-item>
  535. <img src="../img/projectManagement/location.png" width="40" height="40" style="margin-left: 20px;cursor: pointer;" @click="amapWrapperFun()">
  536. </el-form>
  537. <div class="dialog_foot">
  538. <el-button type="primary" @click="lightControlFun()">{{lightControlButton}}</el-button>
  539. </div>
  540. </el-dialog>
  541. <!-- 表格历史弹框 -->
  542. <el-dialog
  543. title="Historical Data"
  544. :visible.sync="historicalDialog"
  545. :close-on-click-modal="false"
  546. class="solar_dialig history_box"
  547. width="95%">
  548. <div class="wrap">
  549. <div class="main_list">
  550. <div class="main_list_title">
  551. <p>{{'Lamp number'}}</p>
  552. </div>
  553. <div class="main_list_box" :class="{'EN':version == '0'}">
  554. <div class="lamp_list scroll_show_all">
  555. <div class="li" :class="{'select':item.id==historicalLampId}" v-for="item in historicalLampList" @click="historicalLampClick(item.id)" :key="item.id">
  556. {{item.number}}
  557. </div>
  558. </div>
  559. <div class="historicalnav clearfix">
  560. <div class="nav_list"
  561. :class="{'details_nav_select':historicalNavSelect==item.model}"
  562. v-for="item in historicalNavListENFor" :key="item.id"
  563. @click="historicalNavSelectFun(item)"><span :title="item.label">{{item.label}}</span>
  564. </div>
  565. </div>
  566. </div>
  567. </div>
  568. <div class="main_box">
  569. <div class="screen_box" v-if="dataLSType == '1'">
  570. <el-pagination
  571. @current-change="handleCurrentChangeLS"
  572. :current-page.sync="currentPageLS"
  573. :page-size="16"
  574. layout="prev, pager, next, jumper"
  575. :total="totalLS">
  576. </el-pagination>
  577. <div>
  578. <div class="screen_date">
  579. <el-date-picker
  580. v-model="screenDateLS"
  581. format="MM-dd"
  582. value-format="yyyy-MM-dd"
  583. size="small"
  584. :clearable="false"
  585. prefix-icon=" "
  586. type="daterange"
  587. range-separator="-"
  588. start-placeholder=""
  589. end-placeholder="">
  590. </el-date-picker>
  591. <el-button size="small" @click="screenDateFun()">{{'Determine'}}<i class="el-icon-arrow-right"></i></el-button>
  592. </div>
  593. <el-button round size="small" @click="exportTableLS()" v-loading="loading.exportTableLS">{{'Export'}}</el-button>
  594. </div>
  595. </div>
  596. <el-table
  597. v-if="dataLSType == '1'"
  598. ref="multipleTable"
  599. v-loading="historicalTableLoading"
  600. :data="historicalTableData"
  601. border
  602. align="center"
  603. style="width: 100%;"
  604. height="374"
  605. :row-class-name="tableRowClassName">
  606. <el-table-column
  607. label="Number"
  608. prop="LSLD_index"
  609. align="center"
  610. :show-overflow-tooltip="true"
  611. width="82">
  612. </el-table-column>
  613. <template>
  614. <el-table-column :show-overflow-tooltip="true" :sortable="item.sortable" :prop="item.prop" :label="item.label" :key="item.id" v-for="item in historicalTableList" align="center">
  615. <template slot-scope="scope">
  616. <span v-if="item.prop !='lampstatus' && item.prop !='battstatus' && item.prop !='chargestage'">{{scope.row[item.prop]}}</span>
  617. <span v-if="item.prop=='lampstatus'&&scope.row[item.prop]=='1'">on</span>
  618. <span v-if="item.prop=='lampstatus'&&scope.row[item.prop]=='0'">off</span>
  619. <span v-if="item.prop=='battstatus'&&scope.row[item.prop]=='0'">free</span>
  620. <span v-if="item.prop=='battstatus'&&scope.row[item.prop]=='1'">discharge</span>
  621. <span v-if="item.prop=='battstatus'&&scope.row[item.prop]=='2'">Charge</span>
  622. <span v-if="item.prop=='battstatus'&&scope.row[item.prop]=='3'">Discharge while charging</span>
  623. <template>
  624. <span v-if="item.prop=='chargestage'&&scope.row[item.prop]=='0'">No charge</span>
  625. <span v-if="item.prop=='chargestage'&&scope.row[item.prop]=='1'">Start charging</span>
  626. <span v-if="item.prop=='chargestage'&&scope.row[item.prop]=='6'">Current limiting</span>
  627. <span v-if="item.prop=='chargestage'&&scope.row[item.prop]=='7'">Full</span>
  628. <span v-if="item.prop=='chargestage'&&scope.row[item.prop]=='16'">MPPT charging</span>
  629. <span v-if="item.prop=='chargestage'&&scope.row[item.prop]=='32'">Equalizing charging</span>
  630. <span v-if="item.prop=='chargestage'&&scope.row[item.prop]=='48'">Boost charging</span>
  631. <span v-if="item.prop=='chargestage'&&scope.row[item.prop]=='64'">floating charge</span>
  632. </template>
  633. </template>
  634. </el-table-column>
  635. </template>
  636. <!-- <el-table-column :show-overflow-tooltip="true" header-align="center" prop="updatetime" label="更新时间" width="160px" v-if="version == 0">
  637. </el-table-column> -->
  638. <el-table-column :show-overflow-tooltip="true" header-align="center" prop="updatetime" label="Update time" width="160px">
  639. </el-table-column>
  640. </el-table>
  641. <div v-if="dataLSType == '0'" class="LS_echarts">
  642. <div class="left_echarts">
  643. <div class="echarts_top">
  644. <div></div>
  645. <div>
  646. <div class="screen_date_select">
  647. <div class="li" :class="{'select':LSDataType == '0'}" @click="LSDataTypeFun('0',1)">1{{'Day'}}</div>
  648. <div class="li" :class="{'select':LSDataType == '1'}" @click="LSDataTypeFun('1',3)">3{{'Day'}}</div>
  649. <div class="li" :class="{'select':LSDataType == '2'}" @click="LSDataTypeFun('2',7)">7{{'Day'}}</div>
  650. <div class="li" :class="{'select':LSDataType == '3'}" @click="LSDataTypeFun('3',14)">14{{'Day'}}</div>
  651. </div>
  652. <div class="screen_date">
  653. <el-date-picker
  654. v-model="screenDateLS"
  655. format="MM-dd"
  656. value-format="yyyy-MM-dd"
  657. size="small"
  658. :clearable="false"
  659. prefix-icon=" "
  660. type="daterange"
  661. range-separator="-"
  662. start-placeholder=""
  663. end-placeholder="">
  664. </el-date-picker>
  665. <el-button size="small" @click="screenDateFun()">{{'Determine'}}<i class="el-icon-arrow-right"></i></el-button>
  666. </div>
  667. </div>
  668. </div>
  669. <div class="history_echarts" v-loading="loading.historyEcharts" v-show="historyDataInfo.list.updatetime"></div>
  670. <div class="history_echarts_noData" v-show="!historyDataInfo.list.updatetime">
  671. <h3>{{'No data can be queried'}}</h3>
  672. </div>
  673. <div class="echarts_bottom echarts_line">
  674. <div class="echarts_bottom_text">{{'sampling period'}}: {{historyDataInfo.patrolinterval}}{{'minutes'}}</div>
  675. <div class="data_type_nav">
  676. <div class="li" :class="{'select':dataLSType == '0'}" @click="dataLSTypeFun('0')">{{'Diagram'}}</div>
  677. <div class="li" :class="{'select':dataLSType == '1'}" @click="dataLSTypeFun('1')">{{'list'}}</div>
  678. </div>
  679. </div>
  680. </div>
  681. <div class="left_data">
  682. <p><img src="../img/projectManagement/data.png">{{'Statistical extremum'}}</p>
  683. <div class="ul" :class="{'EN':version == '0'}">
  684. <div class="li" v-if="historicalNavSelect != '3'">
  685. <span class="span1">{{'Maximum voltage'}}</span>
  686. <span class="span_r">
  687. <span class="span2" :title="historyDataInfo.maxvoltage">{{historyDataInfo.maxvoltage}}</span>
  688. <span class="span3">V</span>
  689. </span>
  690. </div>
  691. <div class="li" v-if="historicalNavSelect == 'battery_info_log'">
  692. <span class="span1">{{'Minimum voltage'}}</span>
  693. <span class="span_r">
  694. <span class="span2" :title="historyDataInfo.minvoltage">{{historyDataInfo.minvoltage}}</span>
  695. <span class="span3">V</span>
  696. </span>
  697. </div>
  698. <div class="li" v-if="historicalNavSelect != '3'&&historicalNavSelect != 'battery_info_log'">
  699. <span class="span1">{{'Maximum current'}}</span>
  700. <span class="span_r">
  701. <span class="span2" :title="historyDataInfo.maxcurrent">{{historyDataInfo.maxcurrent}}</span>
  702. <span class="span3">A</span>
  703. </span>
  704. </div>
  705. <div class="li" v-if="historicalNavSelect == 'battery_info_log'">
  706. <span class="span1">{{'Max charging current'}}</span>
  707. <span class="span_r">
  708. <span class="span2" :title="historyDataInfo.maxcurrent">{{historyDataInfo.maxcurrent}}</span>
  709. <span class="span3">A</span>
  710. </span>
  711. </div>
  712. <div class="li" v-if="historicalNavSelect =='battery_info_log'">
  713. <span class="span1">{{'Max discharge current'}}</span>
  714. <span class="span_r">
  715. <span class="span2" :title="historyDataInfo.mincurrent">{{historyDataInfo.mincurrent}}</span>
  716. <span class="span3">A</span>
  717. </span>
  718. </div>
  719. <div class="li" v-if="historicalNavSelect =='battery_info_log'">
  720. <span class="span1">{{'Max charging power'}}</span>
  721. <span class="span_r">
  722. <span class="span2" :title="historyDataInfo.maxpower">{{historyDataInfo.maxpower}}</span>
  723. <span class="span3">W</span>
  724. </span>
  725. </div>
  726. <div class="li" v-if="historicalNavSelect != '3'&&historicalNavSelect != 'battery_info_log'">
  727. <span class="span1">{{'maximum power'}}</span>
  728. <span class="span_r">
  729. <span class="span2" :title="historyDataInfo.maxpower">{{historyDataInfo.maxpower}}</span>
  730. <span class="span3">W</span>
  731. </span>
  732. </div>
  733. <div class="li" v-if="historicalNavSelect =='battery_info_log'">
  734. <span class="span1">{{'Max discharge power'}}</span>
  735. <span class="span_r">
  736. <span class="span2" :title="historyDataInfo.minpower">{{historyDataInfo.minpower}}</span>
  737. <span class="span3">W</span>
  738. </span>
  739. </div>
  740. <div class="li" v-if="historicalNavSelect == 'lamp_info_log'">
  741. <span class="span1">{{'Maximum brightness'}}</span>
  742. <span class="span_r">
  743. <span class="span2" :title="historyDataInfo.maxlighteness">{{historyDataInfo.maxlighteness}}</span>
  744. <span class="span3">%</span>
  745. </span>
  746. </div>
  747. <div class="li" v-if="historicalNavSelect == 'battery_info_log'">
  748. <span class="span1">{{'Max temperature'}}</span>
  749. <span class="span_r">
  750. <span class="span2" :title="historyDataInfo.maxbatttemper">{{historyDataInfo.maxbatttemper}}</span>
  751. <span class="span3">℃</span>
  752. </span>
  753. </div>
  754. <div class="li" v-if="historicalNavSelect == 'battery_info_log'">
  755. <span class="span1">{{'Min temperature'}}</span>
  756. <span class="span_r">
  757. <span class="span2" :title="historyDataInfo.minbatttemper">{{historyDataInfo.minbatttemper}}</span>
  758. <span class="span3">℃</span>
  759. </span>
  760. </div>
  761. <div class="li" v-if="historicalNavSelect == 'solar_info_log'">
  762. <span class="span1">{{'Charging time'}}</span>
  763. <span class="span_r">
  764. <span class="span2">{{historyDataInfo.maxdaydischargemincurrent}}</span>
  765. <!-- <span class="span3"></span> -->
  766. </span>
  767. </div>
  768. <div class="li" v-if="historicalNavSelect == 'lamp_info_log'">
  769. <span class="span1">{{'Lights on time'}}</span>
  770. <span class="span_r">
  771. <span class="span2">{{historyDataInfo.maxdaychargemincurrent}}</span>
  772. <!-- <span class="span3">%</span> -->
  773. </span>
  774. </div>
  775. <div class="li" v-if="historicalNavSelect == '3'">
  776. <span class="span1">{{'Max charge ampere hours'}}</span>
  777. <span class="span_r">
  778. <span class="span2" :title="historyDataInfo.maxdaychargeah">{{historyDataInfo.maxdaychargeah}}</span>
  779. <span class="span3">AH</span>
  780. </span>
  781. </div>
  782. <div class="li" v-if="historicalNavSelect == '3'">
  783. <span class="span1">{{'Min charge ampere hours'}}</span>
  784. <span class="span_r">
  785. <span class="span2" :title="historyDataInfo.mindaychargeah">{{historyDataInfo.mindaychargeah}}</span>
  786. <span class="span3">AH</span>
  787. </span>
  788. </div>
  789. <div class="li" v-if="historicalNavSelect == '3'">
  790. <span class="span1">{{'Max discharge amperes'}}</span>
  791. <span class="span_r">
  792. <span class="span2" :title="historyDataInfo.maxdaydischarah">{{historyDataInfo.maxdaydischarah}}</span>
  793. <span class="span3">AH</span>
  794. </span>
  795. </div>
  796. <div class="li" v-if="historicalNavSelect == '3'">
  797. <span class="span1">{{'Min discharge amperes'}}</span>
  798. <span class="span_r">
  799. <span class="span2" :title="historyDataInfo.mindaydischarah">{{historyDataInfo.mindaydischarah}}</span>
  800. <span class="span3">AH</span>
  801. </span>
  802. </div>
  803. </div>
  804. </div>
  805. </div>
  806. <div class="echarts_bottom" v-if="dataLSType == '1'">
  807. <div class="data_type_nav">
  808. <div class="li" :class="{'select':dataLSType == '0'}" @click="dataLSTypeFun('0')">{{'Diagram'}}</div>
  809. <div class="li" :class="{'select':dataLSType == '1'}" @click="dataLSTypeFun('1')">{{'list'}}</div>
  810. </div>
  811. </div>
  812. </div>
  813. </div>
  814. </el-dialog>
  815. <!-- 参数弹框 -->
  816. <el-dialog
  817. :visible.sync="monitorDialog"
  818. :close-on-click-modal="false"
  819. :close-on-press-escape="!loading.loadSetting&&!loading.batterySetting"
  820. :show-close="!loading.loadSetting&&!loading.batterySetting"
  821. class="monitor_box"
  822. width="95%">
  823. <div class="wrap">
  824. <div class="button" v-if="monitorType=='loadParameters'">
  825. <el-button round icon="el-icon-refresh" v-if="!loading.loadSetting&&batchModificationParameters" @click="loadSettingFun()">Get parameters</el-button>
  826. <el-button round icon="el-icon-refresh" v-if="loading.loadSetting&&batchModificationParameters" v-loading="loading.loadSetting">Getting parameters</el-button>
  827. </div>
  828. <div class="button" v-if="monitorType=='batteryParameters'">
  829. <el-button round icon="el-icon-refresh" v-if="!loading.batterySetting" @click="batterySettingFun()">Get parameters</el-button>
  830. <el-button round icon="el-icon-refresh" v-if="loading.batterySetting" v-loading="loading.batterySetting">Getting parameters</el-button>
  831. </div>
  832. <div class="box clearfix">
  833. <el-form label-width="260px" ref="loadParametersData" :model="loadParametersData" label-position="right" class="clearfix" v-if="monitorType=='loadParameters'">
  834. <el-form-item :label="item.label+item.unit+':'" :key="item.id" v-for="(item) in loadParametersListEN" class="list_box" :prop="item.model" :label-width="item.model=='intell_power'||item.model=='begin_voltage'||item.model=='end_voltage'||item.model=='end_current'?'210px':''"
  835. :style="{'visibility':
  836. ((item.model=='begin_voltage'||item.model=='end_voltage'||item.model=='end_current')&&loadParametersData['intell_power']!='5')
  837. ||
  838. ((parseInt(loadParametersData['induction_delay'])==0&&(item.model=='first_light_unman_power'||item.model=='second_light_unman_power'||item.model=='third_light_unman_power'||item.model=='fourth_light_unman_power'||item.model=='fifth_light_unman_power'||item.model=='sixth_light_unman_power'||item.model=='seventh_light_unman_power'||item.model=='eighth_light_unman_power'||item.model=='ninth_light_unman_power'||item.model=='tenth_light_unman_power')))
  839. ?'hidden':'','width':
  840. (item.model!='intell_power'&&item.model!='begin_voltage'&&item.model!='end_voltage'&&item.model!='end_current')?'33.33%':''}">
  841. <el-input v-model="loadParametersData[item.model]" v-if="item.type == 'input'" :disabled="!loadSettingIsTrue||!parameterLoadIsEdit"></el-input>
  842. <el-select v-model="loadParametersData[item.model]" v-if="item.type == 'select'" :disabled="!loadSettingIsTrue||!parameterLoadIsEdit">
  843. <el-option
  844. v-for="item in option[item.option]"
  845. :key="item.id"
  846. :label="item.name"
  847. :value="item.id">
  848. </el-option>
  849. </el-select>
  850. <!-- :controls="false" -->
  851. <el-input-number
  852. v-if="item.type == 'number'"
  853. controls-position="right"
  854. :disabled="!loadSettingIsTrue||!parameterLoadIsEdit"
  855. :max="item.max" :min="item.min" :precision="item.precision" :step="item.step"
  856. v-model="loadParametersData[item.model]">
  857. </el-input-number>
  858. <el-time-picker
  859. v-if="item.type == 'timeSelect'"
  860. v-model="loadParametersData[item.model]"
  861. :disabled="!loadSettingIsTrue||!parameterLoadIsEdit"
  862. :picker-options="{
  863. selectableRange: '00:00:00 - 15:00:00'
  864. }"
  865. format="HH:mm">
  866. </el-time-picker>
  867. </el-form-item>
  868. </el-form>
  869. <el-form label-width="260px" ref="batteryParametersData" :model="batteryParametersData" label-position="right" class="clearfix" v-if="monitorType=='batteryParameters'">
  870. <!-- {model:'',label:'',unit:'',type:'select',option:'batteryListEN'}, -->
  871. <el-form-item label="Battery type:" class="list_boxEN" prop="batterytype">
  872. <el-select v-model="batteryParametersData['batterytype']" :disabled="!batterySettingIsTrue||!parameterBatteryIsEdit">
  873. <el-option
  874. v-for="item in option['batteryListEN']"
  875. :key="item.id"
  876. :label="item.name"
  877. :value="item.id">
  878. </el-option>
  879. </el-select>
  880. </el-form-item>
  881. <template v-for="(item) in batteryParametersList0EN" >
  882. <el-form-item :label="item.label+item.unit+':'" :key="item.id" :prop="item.model" v-if="batteryParametersData['batterytype'] == '0'||batteryParametersData['battery_type'] == '0'" class="list_boxEN">
  883. <el-input v-model="batteryParametersData[item.model]" v-if="item.type == 'input'" :disabled="!batterySettingIsTrue||!parameterBatteryIsEdit"></el-input>
  884. <el-select v-model="batteryParametersData[item.model]" v-if="item.type == 'select'" :disabled="!batterySettingIsTrue||!parameterBatteryIsEdit">
  885. <el-option
  886. v-for="item in option[item.option]"
  887. :key="item.id"
  888. :label="item.name"
  889. :value="item.id">
  890. </el-option>
  891. </el-select>
  892. <!-- :controls="false" -->
  893. <el-input-number
  894. v-if="item.type == 'number'"
  895. controls-position="right"
  896. :disabled="!batterySettingIsTrue||!parameterBatteryIsEdit"
  897. :max="item.max" :min="item.min" :precision="item.precision" :step="item.step"
  898. v-model="batteryParametersData[item.model]">
  899. </el-input-number>
  900. </el-form-item>
  901. </template>
  902. <template v-for="(item) in batteryParametersList1EN">
  903. <el-form-item :label="item.label+item.unit+':'" :key="item.id" class="list_boxEN" :prop="item.model" v-if="(batteryParametersData['batterytype'] == '1'||batteryParametersData['batterytype'] == '2')||(batteryParametersData['battery_type'] == '1'||batteryParametersData['battery_type'] == '2')">
  904. <el-input v-model="batteryParametersData[item.model]" v-if="item.type == 'input'" :disabled="!batterySettingIsTrue||!parameterBatteryIsEdit"></el-input>
  905. <el-select v-model="batteryParametersData[item.model]" v-if="item.type == 'select'" :disabled="!batterySettingIsTrue||!parameterBatteryIsEdit">
  906. <el-option
  907. v-for="item in option[item.option]"
  908. :key="item.id"
  909. :label="item.name"
  910. :value="item.id">
  911. </el-option>
  912. </el-select>
  913. <!-- :controls="false" -->
  914. <el-input-number
  915. v-if="item.type == 'number'"
  916. controls-position="right"
  917. :disabled="!batterySettingIsTrue||!parameterBatteryIsEdit"
  918. :max="item.max" :min="item.min" :precision="item.precision" :step="item.step"
  919. v-model="batteryParametersData[item.model]">
  920. </el-input-number>
  921. </el-form-item>
  922. </template>
  923. </el-form>
  924. </div>
  925. </div>
  926. <div class="dialog_foot" v-if="monitorType=='loadParameters'">
  927. <el-button type="primary" :disabled="!loadSettingIsTrue" v-if="!parameterLoadIsEdit" @click="parameterLoadIsEdit = true">Modify</el-button>
  928. <el-button type="text" :disabled="!loadSettingIsTrue" v-if="!parameterLoadIsEdit" @click="monitorDialog = false">Close</el-button>
  929. <el-button type="primary" :disabled="!loadSettingIsTrue" v-if="parameterLoadIsEdit&&!loading.setLoadFun" @click="setLoadFun()">Save</el-button>
  930. <el-button type="text" :disabled="!loadSettingIsTrue" v-if="parameterLoadIsEdit&&!loading.setLoadFun" @click="loadNoEditFun()">Cancel save</el-button>
  931. <el-button type="primary" v-if="loading.setLoadFun&&parameterLoadIsEdit" v-loading="loading.setLoadFun">Setting parameters</el-button>
  932. </div>
  933. <div class="dialog_foot" v-if="monitorType=='batteryParameters'">
  934. <el-button type="primary" :disabled="!batterySettingIsTrue" v-if="!parameterBatteryIsEdit" @click="parameterBatteryIsEdit = true">Modify</el-button>
  935. <el-button type="text" :disabled="!batterySettingIsTrue||!loadSettingIsTrue" v-if="!parameterBatteryIsEdit" @click="monitorDialog = false">Close</el-button>
  936. <el-button type="primary" :disabled="!batterySettingIsTrue" v-if="parameterBatteryIsEdit&&!loading.setBatteryFun" @click="setBatteryFun()">Save</el-button>
  937. <el-button type="text" :disabled="!batterySettingIsTrue" v-if="parameterBatteryIsEdit&&!loading.setBatteryFun" @click="batteryNoEditFun()">Cancel save</el-button>
  938. <el-button type="primary" v-if="loading.setBatteryFun&&parameterBatteryIsEdit" v-loading="loading.setBatteryFun">Setting parameters</el-button>
  939. </div>
  940. </el-dialog>
  941. </div>
  942. </template>
  943. <script type="text/javascript">
  944. import allUrl from '../api/allUel.js'
  945. import baseApi from '../api/base.js'
  946. import { mapGetters } from 'vuex'
  947. import sideBarIdcol from '../components/sideBar_idcol.vue'
  948. export default {
  949. name:'projectManagement',
  950. data(){
  951. return{
  952. keywords:'',
  953. division:'',
  954. networkId:'0',
  955. lamptype:1,
  956. divisionNav:[{id:'0',name:'All'}],
  957. rightDate:'',
  958. rightDateNav:[{id:'0',name:'Today'}],
  959. myChart1:'',
  960. lampLightSlider:0,
  961. lampLightSliderShow:false,
  962. lampLightSliderPageX:0,
  963. lampLightSliderPageY:0,
  964. roadId:null,
  965. projectId:0,
  966. companyId:'',
  967. detailData:{},
  968. weatherList:[{
  969. code: null,
  970. date: null,
  971. dateStr: null,
  972. sr: null,
  973. ss: null,
  974. tmp: 28
  975. }],
  976. /*表格*/
  977. tabNavList:[],
  978. deviceList:[],
  979. multipleSelection:[],
  980. lampcontrolOperationType:'-1',
  981. deviceArr:[],
  982. tableConfig:{
  983. label:[],
  984. prop:[],
  985. prop1:[],
  986. width:[],
  987. sortable:[],
  988. },
  989. offline:0,
  990. online:0,
  991. alarmtype:0,
  992. status:0,
  993. deviceTotalData:{
  994. light_num:0,
  995. online_num:0,
  996. fault_count:0,
  997. network_num:0,
  998. },
  999. /*侧边栏*/
  1000. projectNav:[{id: "17247",name: "0--0",number:7,isOpen:false,project_list: [{id: "17582", projectname: "太阳能路灯", lampcount: "2"}]}],
  1001. sideBarType:'off',
  1002. /*项目弹框*/
  1003. projectSaveLoading:false,
  1004. projectTitle:'新建项目',
  1005. projectButton:'立 刻 创 建',
  1006. projectList:[],
  1007. provinceList:[],
  1008. countryList:[],
  1009. cityList:[],
  1010. areaList:[],
  1011. batchProcessing:'off',
  1012. fieldDialog:false,
  1013. fieldList:[],
  1014. /*参数弹框*/
  1015. companyNav:[],
  1016. detailsDialog:false,
  1017. detailsNavSelect:'lamp_info_log',
  1018. detailsNavList:[{model:'lamp_info_log',label:'路灯'},{model:'lampinfo',label:'配置'},{model:'system_info_log',label:'系统'},{model:'solar_info_log',label:'太阳能板'},{model:'battery_info_log',label:'蓄电池'}],
  1019. detailsNavListEN:[{model:'lamp_info_log',label:'Lamp'},{model:'lampinfo',label:'Configuration'},{model:'system_info_log',label:'System'},{model:'solar_info_log',label:'Solar panels'},{model:'battery_info_log',label:'Battery'}],
  1020. detailsFieldList:[],
  1021. addItemDialog:false,
  1022. addItemData:{
  1023. projectName:'',
  1024. projectNo:'',
  1025. customer:'',
  1026. countryId:'',
  1027. provinceId:'',
  1028. cityId:'',
  1029. areaId:'',
  1030. zoneId:'',
  1031. address:'',
  1032. company:'',
  1033. timezone:'',
  1034. patrolinterval:'',
  1035. },
  1036. addLightControlDialog:false,
  1037. lightControlData:{
  1038. lamp_no:'',
  1039. network_id:'',
  1040. status:'',
  1041. section:'',
  1042. address:'',
  1043. poleheight:'',
  1044. polediameter:'',
  1045. polematerial:'',
  1046. lighttype:'',
  1047. lamptype:'',
  1048. boardtype:'',
  1049. batterytype:'',
  1050. boardpower:'',
  1051. batteryah:'',
  1052. loadpower:'',
  1053. longitude:'',
  1054. latitude:'',
  1055. companyName:'',
  1056. protocoltype:'',
  1057. loadtype:'0',
  1058. },
  1059. lightControlListEN:[
  1060. {model:'lamp_no',label:'Lamp number',unit:''},
  1061. {model:'companyName',label:'Company name',type:'select',unit:''},{model:'network_id',label:'Network',type:"select",unit:''},
  1062. {model:'protocoltype',label:'Network protocol type',type:"select",unit:''},{model:'section',label:'Road',unit:''},{model:'address',label:'Wireless module address',unit:''},
  1063. // {model:'poleheight',label:'Lamp-post length',unit:'(m)'},
  1064. // {model:'polediameter',label:'Lamp-post diameter',unit:'(mm)'},
  1065. // {model:'polematerial',label:'Lamp-post materials',type:"select_filterable",unit:''},
  1066. // {model:'lighttype',label:'Light type',type:"select_filterable",unit:''},
  1067. {model:'lamptype',label:'Lamp type',type:"select_filterable",unit:''},{model:'boardtype',label:'Solar panel type',type:"select_filterable",unit:''},{model:'batterytype',label:'Battery type',type:"select_filterable",unit:''},{model:'boardpower',label:'Solar panel power',unit:'(W)'},{model:'batteryah',label:'Battery capacity',unit:'(Ah)'},{model:'loadpower',label:'Load power',unit:'(W)'},
  1068. {model:'loadtype',label:'Load type',unit:'',type:"select"},
  1069. {model:'longitude',label:'Longitude',unit:''},
  1070. {model:'latitude',label:'Latitude',unit:''}
  1071. ],
  1072. lightControlListEN_for:[
  1073. {model:'lamp_no',label:'Lamp number',unit:''},
  1074. {model:'companyName',label:'Company name',type:'select',unit:''},
  1075. {model:'protocoltype',label:'Network protocol type',type:"select",unit:''},{model:'section',label:'Road',unit:''},{model:'address',label:'Wireless module address',unit:''},
  1076. // {model:'poleheight',label:'Lamp-post length',unit:'(m)'},
  1077. // {model:'polediameter',label:'Lamp-post diameter',unit:'(mm)'},
  1078. // {model:'polematerial',label:'Lamp-post materials',type:"select_filterable",unit:''},
  1079. // {model:'lighttype',label:'Light type',type:"select_filterable",unit:''},
  1080. {model:'lamptype',label:'Lamp type',type:"select_filterable",unit:''},{model:'boardtype',label:'Solar panel type',type:"select_filterable",unit:''},{model:'batterytype',label:'Battery type',type:"select_filterable",unit:''},{model:'boardpower',label:'Solar panel power',unit:'(W)'},{model:'batteryah',label:'Battery capacity',unit:'(Ah)'},{model:'loadpower',label:'Load power',unit:'(W)'},
  1081. {model:'loadtype',label:'Load type',unit:'',type:"select"},
  1082. {model:'longitude',label:'Longitude',unit:''},
  1083. {model:'latitude',label:'Latitude',unit:''}
  1084. ],
  1085. streetlightDetails:[{model:'lighteness',label:'路灯亮度',unit:'%'},{model:'lampstatus',label:'路灯状态'},{model:'lampvoltage',label:'路灯电压',unit:'V'},{model:'lampcurrent',label:'路灯电流',unit:'A'},{model:'lamppower',label:'路灯功率',unit:'W'},{model:'temper',label:'灯头温度',unit:'°C'},{model:'updatetime',label:'最新更新时间'},{model:'status',label:'网络状态'},{model:'isfaulted',label:'是否故障'},{model:'lamp_no',label:'路灯编号'},{model:'network_no',label:'网络编号'},{model:'project_name',label:'项目名称'},{model:'address',label:'无线模块地址'},{model:'longitude',label:'经度'},{model:'latitude',label:'纬度'},{model:'section',label:'路段'},{model:'boardpower',label:'太阳能板功率',unit:'W'},{model:'poleheight',label:'灯杆高度',unit:'m'},{model:'polediameter',label:'灯杆直径',unit:'mm'},{model:'polematerial',label:'灯杆材质'},{model:'lighttype',label:'灯具类型'},{model:'lamptype',label:'路灯类型'},{model:'boardtype',label:'太阳能板类型'},{model:'batteryah',label:'蓄电池AH数'},{model:'loadpower',label:'负载功率',unit:'W'},{model:'solarvoltage',label:'太阳能板电压',unit:'V'},{model:'solarcurrent',label:'太阳能板电流',unit:'A'},{model:'solarpower',label:'太阳能板功率',unit:'W'},{model:'battstatus',label:'电池状态'},{model:'chargestage',label:'蓄电池充电阶段'},{model:'battvoltage',label:'蓄电池电压',unit:'V'},{model:'chargecurrent',label:'蓄电池充电电流',unit:'A'},{model:'discharcurrent',label:'蓄电池放电电流',unit:'A'},{model:'chargepower',label:'蓄电池充电功率',unit:'W'},{model:'dischargepower',label:'蓄电池放电功率',unit:'W'},{model:'batttemper',label:'蓄电池表面温度',unit:'°C'},{model:'electrictotal',label:'蓄电池总电量',unit:'AH'},{model:'electricleft',label:'蓄电池剩余电量',unit:'AH'},{model:'electricSOC',label:'蓄电池电量SOC',unit:'%'},{model:'voltagedaymin',label:'当天最低电压',unit:'V'},{model:'daychargeah',label:'当天充电安时数',unit:'AH'},{model:'daydischarah',label:'当天放电安时数',unit:'AH'},{model:'daychargemaxpow',label:'当天充电最大功率',unit:'V'},{model:'daydischarmaxpow',label:'当天放电最大功率',unit:'V'},{model:'daychargemincurrent',label:'当天充电最小电流',unit:'A'},{model:'daycharmaxcurrent',label:'当天充电最大电流',unit:'A'},{model:'daydischargemincurrent',label:'当天放电最小电流',unit:'A'},{model:'daydischarmaxcurrent',label:'当天放电最大电流',unit:'A'},{model:'daybattmintemper',label:'当天蓄电池最低温度',unit:'°C'},{model:'daybattmaxtemper',label:'当天蓄电池最高温度',unit:'°C'},{model:'devicetype',label:'设备类型'},{model:'simid',label:'SIM卡号'},{model:'packageSurplus',label:'套餐剩余'},{model:'monthly_can_usage',label:'套餐总量',unit:'M'},{model:'monthly_already_usage',label:'套餐使用量',unit:'M'},{model:'iccid',label:'ICCID',unit:''}],
  1086. /*添加编辑灯控*/
  1087. lightControlTitle:'创建灯控',
  1088. lightControlButton:'立 刻 创 建',
  1089. lampcontrolListHC:{},
  1090. lightControlDataRules:{
  1091. network_id: [
  1092. { required: true, message: '不能为空', trigger: 'blur' }
  1093. ],
  1094. lamp_no: [
  1095. { required: true, message: '不能为空'},
  1096. ],
  1097. address: [
  1098. { required: true, message: '不能为空', trigger: 'blur' }
  1099. ],
  1100. protocoltype: [
  1101. { required: true, message: '不能为空', trigger: 'blur' }
  1102. ],
  1103. section:[
  1104. { required: true, message: '不能为空', trigger: 'blur' }
  1105. ],
  1106. },
  1107. lightControlDataRulesEN:{
  1108. network_id: [
  1109. { required: true, message: 'Not null', trigger: 'blur' }
  1110. ],
  1111. lamp_no: [
  1112. { required: true, message: 'Not null'},
  1113. ],
  1114. address: [
  1115. { required: true, message: 'Not null', trigger: 'blur' }
  1116. ],
  1117. protocoltype: [
  1118. { required: true, message: 'Not null', trigger: 'blur' }
  1119. ],
  1120. section:[
  1121. { required: true, message: 'Not null', trigger: 'blur' }
  1122. ],
  1123. },
  1124. lampLoadtype:'',
  1125. screenMap:'',
  1126. amapWrapper:false,
  1127. map:null,
  1128. lampLongitude:0,
  1129. lampLatitude:0,
  1130. networkList:[],
  1131. /*灯控历史*/
  1132. // historicalNavList:[{model:'lamp_info_log',label:'路灯'},{model:'system_info_log',label:'系统'},{model:'battery_info_log',label:'蓄电池'},{model:'solar_info_log',label:'太阳能板'},{model:'3',label:'充放电量'}],
  1133. historicalNavListEN:[
  1134. {model:'lamp_info_log',label:'Lamp'},
  1135. // {model:'system_info_log',label:'system'},
  1136. {model:'battery_info_log',label:'Battery'},
  1137. {model:'solar_info_log',label:'Solar panels'},
  1138. {model:'3',label:'Capacity'}
  1139. ],
  1140. historicalTableData:[],
  1141. historicalTableList:[],
  1142. screenDateLS:'',
  1143. historyDataInfo:{
  1144. list:{}
  1145. },
  1146. historicalLampList:[],
  1147. historicalLampId:'',
  1148. dataLSType:'0',
  1149. LSDataType:'0',
  1150. currentPageLS:1,
  1151. totalLS:0,
  1152. historicalTableLoading:false,
  1153. historicalDialog:false,
  1154. historicalNavSelect:'lamp_info_log',
  1155. batchDimmingVal:0,
  1156. windowWidth:0,
  1157. positionPicker:null,
  1158. geocoder:null,
  1159. mapDWIsTrue:false,
  1160. mpaDWTimeOut:null,
  1161. parameterLoadIsEdit:false,
  1162. parameterBatteryIsEdit:false,
  1163. batchModificationParameters:true,
  1164. googleMapLocattion:true,
  1165. lamp_info_logTableList:[{prop:'lighteness',label:'亮度',unit:'(%)'},{prop:'lampstatus',label:'状态'},{prop:'lampvoltage',label:'电压',unit:'(V)'},{prop:'lampcurrent',label:'电流',unit:'(A)'},{prop:'lamppower',label:'功率',unit:'(W)'},{prop:'daydischarmaxpow',label:'当天放电最大功率',unit:'(W)'},{prop:'daychargemincurrent',label:'当天亮灯时间'}],
  1166. lamp_info_logTableListEN:[{prop:'lighteness',label:'Brightness(%)'},{prop:'lampstatus',label:'status'},{prop:'lampvoltage',label:'voltage(V)'},{prop:'lampcurrent',label:'current(A)'},{prop:'lamppower',label:'power(W)'},{prop:'daydischarmaxpow',label:'Discharging maximum power(w)'},{prop:'daychargemincurrent',label:'Turn-on duration'}],
  1167. system_info_logTableList:[{prop:'sysvoltage',label:'系统电压',unit:'(V)'},{prop:'syscurrent',label:'系统电流',unit:'(A)'},{prop:'temper',label:'控制器温度',unit:'(℃)'}],
  1168. system_info_logTableListEN:[{prop:'sysvoltage',label:'System voltage(V)'},{prop:'syscurrent',label:'System current(A)'},{prop:'temper',label:'Controller temperature(℃)'}],
  1169. battery_info_logTableList:[{prop:'battstatus',label:'状态'},{prop:'chargestage',label:'充电阶段'},{prop:'battvoltage',label:'电压',unit:'(V)'},{prop:'voltagedaymin',label:'当天最低电压',unit:'(V)'},{prop:'voltagedaymax',label:'当天最高电压',unit:'(V)'},{prop:'batttemper',label:'蓄电池表面温度',unit:'(℃)'},{prop:'daybattmintemper',label:'当天最低温度',unit:'(℃)'},{prop:'daybattmaxtemper',label:'当天最高温度',unit:'(℃)'},{prop:'overtimes',label:'过放次数',unit:''}],
  1170. battery_info_logTableListEN:[{prop:'battstatus',label:'status'},{prop:'chargestage',label:'Charging stage'},{prop:'battvoltage',label:'voltage(V)'},{prop:'voltagedaymin',label:'Minimum voltage(V)'},{prop:'voltagedaymax',label:'Highest voltage(V)'},{prop:'batttemper',label:'surface temperature(℃)'},{prop:'daybattmintemper',label:'minimum temperature(℃)'},{prop:'daybattmaxtemper',label:'highest temperature(℃)'},{prop:'overtimes',label:'Over Discharge times',unit:''}],
  1171. solar_info_logTableList:[{prop:'solarvoltage',label:'电压',unit:'(V)'},{prop:'solarcurrent',label:'电流',unit:'(A)'},{prop:'solarpower',label:'功率',unit:'(W)'},{prop:'daychargemaxpow',label:'当天充电最大功率',unit:'(W)'},{prop:'daydischargemincurrent',label:'当天充电时间'}],
  1172. solar_info_logTableListEN:[{prop:'solarvoltage',label:'voltage(V)'},{prop:'solarcurrent',label:'current(A)'},{prop:'solarpower',label:'power(W)'},{prop:'daychargemaxpow',label:'Charging maximum power(W)'},{prop:'daydischargemincurrent',label:'Charging duration(S)'}],
  1173. /*路灯负载参数*/
  1174. loadParametersData:{},
  1175. loadParametersList:[],
  1176. loadParametersDataOld:{
  1177. workmode:'',
  1178. worktimefirst:'',
  1179. workpowerfirst:'',
  1180. worktimesencond:'',
  1181. workpowersencond:'',
  1182. worktimethird:'',
  1183. workpowerthird:'',
  1184. worktimeforth:'',
  1185. workpowerforth:'',
  1186. voptically:'',
  1187. delaytime:'',
  1188. ledloadcurrent:'',
  1189. powercmd:'',
  1190. switchfeature:'',
  1191. },
  1192. loadParametersDataHC:{},
  1193. loadParametersListOld:[
  1194. {model:'workmode',label:'路灯负载模式',unit:'',type:'select',option:'workmodeList'},
  1195. {model:'worktimefirst',label:'第一阶段工作时间',unit:'(H)',type:'input'},
  1196. {model:'workpowerfirst',label:'第一阶段工作功率',unit:'(%)',type:'input'},
  1197. {model:'worktimesencond',label:'第二阶段工作时间',unit:'(H)',type:'input'},
  1198. {model:'workpowersencond',label:'第二阶段工作功率',unit:'(%)',type:'input'},
  1199. {model:'worktimethird',label:'第三阶段工作时间',unit:'(H)',type:'input'},
  1200. {model:'workpowerthird',label:'第三阶段工作功率',unit:'(%)',type:'input'},
  1201. {model:'worktimeforth',label:'晨亮时间',unit:'(H)',type:'input'},
  1202. {model:'workpowerforth',label:'晨亮功率',unit:'(%)',type:'input'},
  1203. {model:'voptically',label:'光控电压',unit:'(V)',type:'input'},
  1204. {model:'delaytime',label:'光控延时时间',unit:'(Min)',type:'select',option:'timeList'},
  1205. {model:'ledloadcurrent',label:'LED负载电流',unit:'(mA)',type:'input'},
  1206. {model:'powercmd',label:'智能功率控制',unit:'',type:'select',option:'onOff'},
  1207. {model:'switchfeature',label:'每晚亮灯功能',unit:'',type:'select',option:'onOff'},
  1208. ],
  1209. catcherloadParametersListOld:[
  1210. {model:'workmode',label:'杀虫灯负载模式',unit:'',type:'select',option:'workmodeList'},
  1211. {model:'worktimefirst',label:'第一阶段工作时间',unit:'(H)',type:'input'},
  1212. {model:'worktimesencond',label:'第二阶段工作时间',unit:'(H)',type:'input'},
  1213. {model:'worktimethird',label:'第三阶段工作时间',unit:'(H)',type:'input'},
  1214. {model:'worktimeforth',label:'晨亮时间',unit:'(H)',type:'input'},
  1215. {model:'voptically',label:'光控电压',unit:'(V)',type:'input'},
  1216. {model:'delaytime',label:'光控延时时间',unit:'(Min)',type:'select',option:'timeList'},
  1217. {model:'ledloadcurrent',label:'LED负载电流',unit:'(mA)',type:'input'},
  1218. {model:'powercmd',label:'智能功率控制',unit:'',type:'select',option:'onOff'},
  1219. {model:'switchfeature',label:'每晚亮灯功能',unit:'',type:'select',option:'onOff'},
  1220. ],
  1221. catcherloadParametersListNew:[
  1222. {model:'intell_power',label:'智能功率',unit:'',type:'select',option:'intell_power'},
  1223. {model:'begin_voltage',label:'智能功率USER1起始电压',unit:'V',type:'select',option:'intell_powerV'},
  1224. {model:'end_voltage',label:'智能功率USER1终止电压',unit:'V',type:'select',option:'intell_powerV'},
  1225. {model:'end_current',label:'智能功率USER1终止电流 ',unit:'A',type:'select',option:'intell_powerC'},
  1226. {model:'load_current',label:'负载电流',unit:'(A)',type:'select',option:'load_current'},
  1227. {model:'light_delay',label:'光控延时',unit:'',type:'select',option:'light_delay'},
  1228. {model:'induction_delay',label:'感应延时',unit:'(S)',type:'select',option:'induction_delay'},
  1229. {model:'first_light_time',label:'第一段亮灯时间',unit:'(HH:MM)',type:'timeSelect'},
  1230. {model:'second_light_time',label:'第二段亮灯时间',unit:'(HH:MM)',type:'timeSelect'},
  1231. {model:'third_light_time',label:'第三段亮灯时间',unit:'(HH:MM)',type:'timeSelect'},
  1232. {model:'tenth_light_time',label:'晨亮时间',unit:'(HH:MM)',type:'timeSelect'},
  1233. ],
  1234. catcherloadParametersListENNew:[{model:'intell_power',label:'SpecialPowerCtrl',unit:'',type:'select',option:'intell_powerEN'},
  1235. {model:'begin_voltage',label:'AutoPowerStartUser1Volt',unit:'(V)',type:'select',option:'intell_powerV'},
  1236. {model:'end_voltage',label:'AutoPowerStopUser1Volt',unit:'(V)',type:'select',option:'intell_powerV'},
  1237. {model:'end_current',label:'AutoPowerStopUser1Power',unit:'(A)',type:'select',option:'intell_powerC'},
  1238. {model:'load_current',label:'LedCurrSet',unit:'(A)',type:'select',option:'load_current'},
  1239. {model:'light_delay',label:'LightCtrlDelayTimeS',unit:'',type:'select',option:'light_delay'},
  1240. {model:'induction_delay',label:'SensorDelayTime',unit:'(S)',type:'select',option:'induction_delay'},
  1241. {model:'first_light_time',label:'LoadTime1',unit:'(HH:MM)',type:'timeSelect'},
  1242. {model:'second_light_time',label:'LoadTime2',unit:'(HH:MM)',type:'timeSelect'},
  1243. {model:'third_light_time',label:'LoadTime3',unit:'(HH:MM)',type:'timeSelect'},
  1244. {model:'tenth_light_time',label:'LoadMorningLightTime',unit:'(HH:MM)',type:'timeSelect'},
  1245. ],
  1246. loadParametersDataNew:{
  1247. light_voltage:'',
  1248. intell_power:'',
  1249. load_current:'',
  1250. light_delay:'',
  1251. induction_delay:'',
  1252. first_light_time:'',
  1253. first_light_human_power:'',
  1254. first_light_unman_power:'',
  1255. second_light_time:'',
  1256. second_light_human_power:'',
  1257. second_light_unman_power:'',
  1258. third_light_time:'',
  1259. third_light_human_power:'',
  1260. third_light_unman_power:'',
  1261. fourth_light_time:'',
  1262. fourth_light_human_power:'',
  1263. fourth_light_unman_power:'',
  1264. fifth_light_time:'',
  1265. fifth_light_human_power:'',
  1266. fifth_light_unman_power:'',
  1267. sixth_light_time:'',
  1268. sixth_light_human_power:'',
  1269. sixth_light_unman_power:'',
  1270. seventh_light_time:'',
  1271. seventh_light_human_power:'',
  1272. seventh_light_unman_power:'',
  1273. eighth_light_time:'',
  1274. eighth_light_human_power:'',
  1275. eighth_light_unman_power:'',
  1276. ninth_light_time:'',
  1277. ninth_light_human_power:'',
  1278. ninth_light_unman_power:'',
  1279. tenth_light_time:'',
  1280. tenth_light_human_power:'',
  1281. tenth_light_unman_power:'',
  1282. begin_voltage:'',
  1283. end_voltage:'',
  1284. end_current:'',
  1285. },
  1286. loadParametersListNew:[
  1287. {model:'intell_power',label:'智能功率',unit:'',type:'select',option:'intell_power'},
  1288. {model:'begin_voltage',label:'智能功率USER1起始电压',unit:'V',type:'select',option:'intell_powerV'},
  1289. {model:'end_voltage',label:'智能功率USER1终止电压',unit:'V',type:'select',option:'intell_powerV'},
  1290. {model:'end_current',label:'智能功率USER1终止电流 ',unit:'A',type:'select',option:'intell_powerC'},
  1291. {model:'load_current',label:'负载电流',unit:'(A)',type:'select',option:'load_current'},
  1292. {model:'light_delay',label:'光控延时',unit:'',type:'select',option:'light_delay'},
  1293. {model:'induction_delay',label:'感应延时',unit:'(S)',type:'select',option:'induction_delay'},
  1294. {model:'first_light_time',label:'第一段亮灯时间',unit:'(HH:MM)',type:'timeSelect'},
  1295. {model:'first_light_human_power',label:'第一段有人功率',unit:'(%)',type:'select',option:'light_power'},
  1296. {model:'first_light_unman_power',label:'第一段无人功率',unit:'(%)',type:'select',option:'light_power'},
  1297. {model:'second_light_time',label:'第二段亮灯时间',unit:'(HH:MM)',type:'timeSelect'},
  1298. {model:'second_light_human_power',label:'第二段有人功率',unit:'(%)',type:'select',option:'light_power'},
  1299. {model:'second_light_unman_power',label:'第二段无人功率',unit:'(%)',type:'select',option:'light_power'},
  1300. {model:'third_light_time',label:'第三段亮灯时间',unit:'(HH:MM)',type:'timeSelect'},
  1301. {model:'third_light_human_power',label:'第三段有人功率',unit:'(%)',type:'select',option:'light_power'},
  1302. {model:'third_light_unman_power',label:'第三段无人功率',unit:'(%)',type:'select',option:'light_power'},
  1303. {model:'fourth_light_time',label:'第四段亮灯时间',unit:'(HH:MM)',type:'timeSelect'},
  1304. {model:'fourth_light_human_power',label:'第四段有人功率',unit:'(%)',type:'select',option:'light_power'},
  1305. {model:'fourth_light_unman_power',label:'第四段无人功率',unit:'(%)',type:'select',option:'light_power'},
  1306. {model:'fifth_light_time',label:'第五段亮灯时间',unit:'(HH:MM)',type:'timeSelect'},
  1307. {model:'fifth_light_human_power',label:'第五段有人功率',unit:'(%)',type:'select',option:'light_power'},
  1308. {model:'fifth_light_unman_power',label:'第五段无人功率',unit:'(%)',type:'select',option:'light_power'},
  1309. {model:'sixth_light_time',label:'第六段亮灯时间',unit:'(HH:MM)',type:'timeSelect'},
  1310. {model:'sixth_light_human_power',label:'第六段有人功率',unit:'(%)',type:'select',option:'light_power'},
  1311. {model:'sixth_light_unman_power',label:'第六段无人功率',unit:'(%)',type:'select',option:'light_power'},
  1312. {model:'seventh_light_time',label:'第七段亮灯时间',unit:'(HH:MM)',type:'timeSelect'},
  1313. {model:'seventh_light_human_power',label:'第七段有人功率',unit:'(%)',type:'select',option:'light_power'},
  1314. {model:'seventh_light_unman_power',label:'第七段无人功率',unit:'(%)',type:'select',option:'light_power'},
  1315. {model:'eighth_light_time',label:'第八段亮灯时间',unit:'(HH:MM)',type:'timeSelect'},
  1316. {model:'eighth_light_human_power',label:'第八段有人功率',unit:'(%)',type:'select',option:'light_power'},
  1317. {model:'eighth_light_unman_power',label:'第八段无人功率',unit:'(%)',type:'select',option:'light_power'},
  1318. {model:'ninth_light_time',label:'第九段亮灯时间',unit:'(HH:MM)',type:'timeSelect'},
  1319. {model:'ninth_light_human_power',label:'第九段有人功率',unit:'(%)',type:'select',option:'light_power'},
  1320. {model:'ninth_light_unman_power',label:'第九段无人功率',unit:'(%)',type:'select',option:'light_power'},
  1321. {model:'tenth_light_time',label:'晨亮时间',unit:'(HH:MM)',type:'timeSelect'},
  1322. {model:'tenth_light_human_power',label:'晨亮有人功率',unit:'(%)',type:'select',option:'light_power'},
  1323. {model:'tenth_light_unman_power',label:'晨亮无人功率',unit:'(%)',type:'select',option:'light_power'},
  1324. ],
  1325. loadParametersListEN:[],
  1326. loadParametersListENOld:[
  1327. {model:'workmode',label:'Street light load mode',unit:'',type:'select',option:'workmodeList'},
  1328. {model:'worktimefirst',label:'First phase working hours',unit:'(H)',type:'input'},
  1329. {model:'workpowerfirst',label:'First stage operating power',unit:'(%)',type:'input'},
  1330. {model:'worktimesencond',label:'Second phase working hours',unit:'(H)',type:'input'},
  1331. {model:'workpowersencond',label:'Second stage operating power',unit:'(%)',type:'input'},
  1332. {model:'worktimethird',label:'Third stage working hours',unit:'(H)',type:'input'},
  1333. {model:'workpowerthird',label:'Third stage operating power',unit:'(%)',type:'input'},
  1334. {model:'worktimeforth',label:'Morning light time',unit:'(H)',type:'input'},
  1335. {model:'workpowerforth',label:'Morning light power',unit:'(%)',type:'input'},
  1336. {model:'voptically',label:'Light control voltage',unit:'(V)',type:'input'},
  1337. {model:'delaytime',label:'Light control delay time',unit:'(Min)',type:'select',option:'timeListEN'},
  1338. {model:'ledloadcurrent',label:'LED load current',unit:'(mA)',type:'input'},
  1339. {model:'powercmd',label:'Intelligent power control',unit:'',type:'select',option:'onOffEN'},
  1340. {model:'switchfeature',label:'Nightly lighting function',unit:'',type:'select',option:'onOffEN'},
  1341. ],
  1342. catcherloadParametersListENOld:[
  1343. {model:'workmode',label:'Load mode of insecticidal lamp',unit:'',type:'select',option:'workmodeList'},
  1344. {model:'worktimefirst',label:'First phase working hours',unit:'(H)',type:'input'},
  1345. {model:'worktimesencond',label:'Second phase working hours',unit:'(H)',type:'input'},
  1346. {model:'worktimethird',label:'Third stage working hours',unit:'(H)',type:'input'},
  1347. {model:'worktimeforth',label:'Morning light time',unit:'(H)',type:'input'},
  1348. {model:'voptically',label:'Light control voltage',unit:'(V)',type:'input'},
  1349. {model:'delaytime',label:'Light control delay time',unit:'(Min)',type:'select',option:'timeListEN'},
  1350. {model:'ledloadcurrent',label:'LED load current',unit:'(mA)',type:'input'},
  1351. {model:'powercmd',label:'Intelligent power control',unit:'',type:'select',option:'onOffEN'},
  1352. {model:'switchfeature',label:'Nightly lighting function',unit:'',type:'select',option:'onOffEN'},
  1353. ],
  1354. loadParametersListENNew:[
  1355. {model:'intell_power',label:'SpecialPowerCtrl',unit:'',type:'select',option:'intell_powerEN'},
  1356. {model:'begin_voltage',label:'AutoPowerStartUser1Volt',unit:'(V)',type:'select',option:'intell_powerV'},
  1357. {model:'end_voltage',label:'AutoPowerStopUser1Volt',unit:'(V)',type:'select',option:'intell_powerV'},
  1358. {model:'end_current',label:'AutoPowerStopUser1Power',unit:'(A)',type:'select',option:'intell_powerC'},
  1359. {model:'load_current',label:'LedCurrSet',unit:'(A)',type:'select',option:'load_current'},
  1360. {model:'light_delay',label:'LightCtrlDelayTimeS',unit:'',type:'select',option:'light_delay'},
  1361. {model:'induction_delay',label:'SensorDelayTime',unit:'(S)',type:'select',option:'induction_delay'},
  1362. {model:'first_light_time',label:'LoadTime1',unit:'(HH:MM)',type:'timeSelect'},
  1363. {model:'first_light_human_power',label:'LoadSensorOnPower1',unit:'(%)',type:'select',option:'light_power'},
  1364. {model:'first_light_unman_power',label:'LoadSensorOffPower1',unit:'(%)',type:'select',option:'light_power'},
  1365. {model:'second_light_time',label:'LoadTime2',unit:'(HH:MM)',type:'timeSelect'},
  1366. {model:'second_light_human_power',label:'LoadSensorOnPower2',unit:'(%)',type:'select',option:'light_power'},
  1367. {model:'second_light_unman_power',label:'LoadSensorOffPower2',unit:'(%)',type:'select',option:'timeListEN'},
  1368. {model:'third_light_time',label:'LoadTime3',unit:'(HH:MM)',type:'timeSelect'},
  1369. {model:'third_light_human_power',label:'LoadSensorOnPower3',unit:'%',type:'select',option:'light_power'},
  1370. {model:'third_light_unman_power',label:'LoadSensorOffPower3',unit:'%',type:'select',option:'light_power'},
  1371. {model:'fourth_light_time',label:'LoadTime4',unit:'(HH:MM)',type:'timeSelect'},
  1372. {model:'fourth_light_human_power',label:'LoadSensorOnPower4',unit:'%',type:'select',option:'light_power'},
  1373. {model:'fourth_light_unman_power',label:'LoadSensorOffPower4',unit:'%',type:'select',option:'light_power'},
  1374. {model:'fifth_light_time',label:'LoadTime5',unit:'(HH:MM)',type:'timeSelect'},
  1375. {model:'fifth_light_human_power',label:'LoadSensorOnPower5',unit:'%',type:'select',option:'light_power'},
  1376. {model:'fifth_light_unman_power',label:'LoadSensorOffPower5',unit:'%',type:'select',option:'light_power'},
  1377. {model:'sixth_light_time',label:'LoadTime6',unit:'(HH:MM)',type:'timeSelect'},
  1378. {model:'sixth_light_human_power',label:'LoadSensorOnPower6',unit:'%',type:'select',option:'light_power'},
  1379. {model:'sixth_light_unman_power',label:'LoadSensorOffPower6',unit:'%',type:'select',option:'light_power'},
  1380. {model:'seventh_light_time',label:'LoadTime7',unit:'(HH:MM)',type:'timeSelect'},
  1381. {model:'seventh_light_human_power',label:'LoadSensorOnPower7',unit:'%',type:'select',option:'light_power'},
  1382. {model:'seventh_light_unman_power',label:'LoadSensorOffPower7',unit:'%',type:'select',option:'light_power'},
  1383. {model:'eighth_light_time',label:'LoadTime8',unit:'(HH:MM)',type:'timeSelect'},
  1384. {model:'eighth_light_human_power',label:'LoadSensorOnPower8',unit:'%',type:'select',option:'light_power'},
  1385. {model:'eighth_light_unman_power',label:'LoadSensorOffPower8',unit:'%',type:'select',option:'light_power'},
  1386. {model:'ninth_light_time',label:'LoadTime9',unit:'(HH:MM)',type:'timeSelect'},
  1387. {model:'ninth_light_human_power',label:'LoadSensorOnPower9',unit:'%',type:'select',option:'light_power'},
  1388. {model:'ninth_light_unman_power',label:'LoadSensorOffPower9',unit:'%',type:'select',option:'light_power'},
  1389. {model:'tenth_light_time',label:'LoadMorningLightTime',unit:'(HH:MM)',type:'timeSelect'},
  1390. {model:'tenth_light_human_power',label:'LoadMornLightSensorOnPower',unit:'%',type:'select',option:'light_power'},
  1391. {model:'tenth_light_unman_power',label:'LoadMornLightSensorOffPower',unit:'%',type:'select',option:'light_power'},
  1392. ],
  1393. monitorDialog:false,
  1394. projectLoadDialog:false,
  1395. loadSettingIsTrue:false,
  1396. batterySettingIsTrue:false,
  1397. batteryParametersData:{
  1398. light_voltage:'',
  1399. batterytype:'',
  1400. capacity:'',
  1401. vovervoltage:'',
  1402. vlimitedcharge:'',
  1403. vbalancecharge:'',
  1404. vpromotecharge:'',
  1405. vfloatingcharge:'',
  1406. vpromoterecover:'',
  1407. voverdischargerecover:'',
  1408. vundervoltagewarn:'',
  1409. voverdischarge:'',
  1410. balancechargetime:'',
  1411. promotechargetime:'',
  1412. balanceinterval:'',
  1413. tempcompensation:'',
  1414. tempcompmax:'',
  1415. tempcompmin:'',
  1416. turnfloatingcurrent:'',
  1417. // capacity:'',
  1418. // vpromotecharge:'',
  1419. // vpromoterecover:'',
  1420. // voverdischargerecover:'',
  1421. // voverdischarge:'',
  1422. vsystem:'',
  1423. minusnocharge:'',
  1424. chargemode:'',
  1425. battery_type:'',
  1426. system_voltage:'',
  1427. overvoltage:'',
  1428. char_limit_voltage:'',
  1429. equ_char_voltage:'',
  1430. li_battery_type:'',
  1431. increa_char_voltage:'',
  1432. float_char_voltage:'',
  1433. increa_char_return_voltage:'',
  1434. over_dischar_return_voltage:'',
  1435. over_dischar_voltage:'',
  1436. equ_char_time:'',
  1437. increa_char_time:'',
  1438. balan_char_interval:'',
  1439. temper_compen_coeff:'',
  1440. char_upper_limit_temper:'',
  1441. char_lower_limit_temper:'',
  1442. dischar_upper_limit_temper:'',
  1443. dischar_lower_limit_temper:'',
  1444. },
  1445. batteryParametersDataHC:{},
  1446. batteryParametersList0:[],
  1447. batteryParametersListOld0:[
  1448. {model:'capacity',label:'蓄电池容量',unit:'',type:'input'},
  1449. {model:'vovervoltage',label:'超压电压',unit:'(V)',type:'input'},
  1450. {model:'vlimitedcharge',label:'充电限制电压',unit:'(V)',type:'input'},
  1451. {model:'vbalancecharge',label:'均衡充电电压',unit:'(V)',type:'input'},
  1452. {model:'vpromotecharge',label:'提升充电电压',unit:'(V)',type:'input'},
  1453. {model:'vfloatingcharge',label:'浮充充电电压',unit:'(V)',type:'input'},
  1454. {model:'vpromoterecover',label:'提升充电恢复电压',unit:'(V)',type:'input'},
  1455. {model:'voverdischargerecover',label:'过放恢复电压',unit:'(V)',type:'input'},
  1456. {model:'vundervoltagewarn',label:'欠压警告电压',unit:'(V)',type:'input'},
  1457. {model:'voverdischarge',label:'过放电压',unit:'',type:'input'},
  1458. {model:'balancechargetime',label:'均衡充电时间',unit:'(H)',type:'select',option:'balancechargetime'},
  1459. {model:'promotechargetime',label:'提升充电时间',unit:'(H)',type:'select',option:'balancechargetime'},
  1460. {model:'balanceinterval',label:'均衡充电间隔',unit:'(天)',type:'input'},
  1461. {model:'tempcompensation',label:'温度补偿系数',unit:'(mV℃/2V)',type:'input'},
  1462. {model:'tempcompmax',label:'温度补偿最高温度',unit:'(℃)',type:'input'},
  1463. {model:'tempcompmin',label:'温度补偿最低温度',unit:'(℃)',type:'input'},
  1464. {model:'turnfloatingcurrent',label:'转浮充电流',unit:'(A)',type:'input'},
  1465. ],
  1466. batteryParametersListNew0:[
  1467. {model:'light_voltage',label:'光控电压',unit:'(V)',type:'select',option:'light_voltage'},
  1468. {model:'system_voltage',label:'系统电压',unit:'(V)',type:'select',option:'system_voltage0'},
  1469. {model:'overvoltage',label:'超压电压',unit:'(V)',type:'select',option:'increa_char_voltage0'},
  1470. {model:'char_limit_voltage',label:'充电限制电压',unit:'(V)',type:'select',option:'increa_char_voltage0'},
  1471. {model:'equ_char_voltage',label:'均衡充电电压',unit:'(V)',type:'select',option:'increa_char_voltage0'},
  1472. {model:'increa_char_voltage',label:'提升充电电压',unit:'(V)',type:'select',option:'increa_char_voltage0'},
  1473. {model:'float_char_voltage',label:'浮充充电电压',unit:'(V)',type:'select',option:'increa_char_voltage0'},
  1474. {model:'increa_char_return_voltage',label:'提升充电返回电压',unit:'(V)',type:'select',option:'increa_char_voltage0'},
  1475. {model:'over_dischar_return_voltage',label:'过放返回电压',unit:'(V)',type:'select',option:'increa_char_voltage0'},
  1476. {model:'over_dischar_voltage',label:'过放电压',unit:'(V)',type:'select',option:'increa_char_voltage0'},
  1477. {model:'equ_char_time',label:'均衡充电时间',unit:'(min)',type:'select',option:'equ_char_time'},
  1478. {model:'increa_char_time',label:'提升充电时间',unit:'(min)',type:'select',option:'equ_char_time'},
  1479. {model:'balan_char_interval',label:'均衡充电间隔',unit:'(day)',type:'select',option:'balan_char_interval'},
  1480. {model:'temper_compen_coeff',label:'温度补偿系数',unit:'(mV/℃/2V)',type:'select',option:'temper_compen_coeff'},
  1481. {model:'char_upper_limit_temper',label:'充电上限温度',unit:'(℃)',type:'select',option:'limit_temper'},
  1482. {model:'char_lower_limit_temper',label:'充电下限温度',unit:'(℃)',type:'select',option:'limit_temper'},
  1483. {model:'dischar_upper_limit_temper',label:'放电上限温度',unit:'(A)',type:'select',option:'limit_temper'},
  1484. {model:'dischar_lower_limit_temper',label:'放电下限温度',unit:'(A)',type:'select',option:'limit_temper'},
  1485. ],
  1486. batteryParametersListNew0EN:[
  1487. {model:'light_voltage',label:'OpticallyControlledVoltage',unit:'(V)',type:'select',option:'light_voltage'},
  1488. {model:'system_voltage',label:'BatRateVolt',unit:'(V)',type:'select',option:'system_voltage0'},
  1489. {model:'overvoltage',label:'BatOverVolt',unit:'(V)',type:'select',option:'increa_char_voltage0'},
  1490. {model:'char_limit_voltage',label:'BatChgLimitVolt',unit:'(V)',type:'select',option:'increa_char_voltage0'},
  1491. {model:'equ_char_voltage',label:'BatConstChgVolt',unit:'(V)',type:'select',option:'increa_char_voltage0'},
  1492. {model:'increa_char_voltage',label:'BatImprovChgVolt',unit:'(V)',type:'select',option:'increa_char_voltage0'},
  1493. {model:'float_char_voltage',label:'BatFloatChgVolt',unit:'(V)',type:'select',option:'increa_char_voltage0'},
  1494. {model:'increa_char_return_voltage',label:'BatImprovChgBackVolt',unit:'(V)',type:'select',option:'increa_char_voltage0'},
  1495. {model:'over_dischar_return_voltage',label:'BatOverDischgBackVolt',unit:'(V)',type:'select',option:'increa_char_voltage0'},
  1496. {model:'over_dischar_voltage',label:'BatOverDischgVolt',unit:'(V)',type:'select',option:'increa_char_voltage0'},
  1497. {model:'equ_char_time',label:'BatConstChgTime',unit:'(min)',type:'select',option:'equ_char_time'},
  1498. {model:'increa_char_time',label:'BatImprovChgTime',unit:'(min)',type:'select',option:'equ_char_time'},
  1499. {model:'balan_char_interval',label:'BatConstChgGapTime',unit:'(day)',type:'select',option:'balan_char_interval'},
  1500. {model:'temper_compen_coeff',label:'CoeffTemperCompen',unit:'(mV/℃/2V)',type:'select',option:'temper_compen_coeff'},
  1501. {model:'char_upper_limit_temper',label:'ChgMaxTemper',unit:'(℃)',type:'select',option:'limit_temper'},
  1502. {model:'char_lower_limit_temper',label:'ChgMinTemper',unit:'(℃)',type:'select',option:'limit_temper'},
  1503. {model:'dischar_upper_limit_temper',label:'DisChgMaxTemper',unit:'(A)',type:'select',option:'limit_temper'},
  1504. {model:'dischar_lower_limit_temper',label:'DisChgMinTemper',unit:'(A)',type:'select',option:'limit_temper'},
  1505. ],
  1506. batteryParametersList0EN:[],
  1507. batteryParametersListOld0EN:[
  1508. {model:'capacity',label:'Battery capacity',unit:'',type:'input'},
  1509. {model:'vovervoltage',label:'Overvoltage voltage',unit:'(V)',type:'input'},
  1510. {model:'vlimitedcharge',label:'Charge limit voltage',unit:'(V)',type:'input'},
  1511. {model:'vbalancecharge',label:'Balanced charging voltage',unit:'(V)',type:'input'},
  1512. {model:'vpromotecharge',label:'Increase charging voltage',unit:'(V)',type:'input'},
  1513. {model:'vfloatingcharge',label:'Floating charge voltage',unit:'(V)',type:'input'},
  1514. {model:'vpromoterecover',label:'Increase charge recovery voltage',unit:'(V)',type:'input'},
  1515. {model:'voverdischargerecover',label:'Over-discharge recovery voltage',unit:'(V)',type:'input'},
  1516. {model:'vundervoltagewarn',label:'Undervoltage warning voltage',unit:'(V)',type:'input'},
  1517. {model:'voverdischarge',label:'Over discharge voltage',unit:'',type:'input'},
  1518. {model:'balancechargetime',label:'Balanced charging time',unit:'(H)',type:'select',option:'balancechargetime'},
  1519. {model:'promotechargetime',label:'Increase charging time',unit:'(H)',type:'select',option:'balancechargetime'},
  1520. {model:'balanceinterval',label:'Balanced charge interval',unit:'(day)',type:'input'},
  1521. {model:'tempcompensation',label:'Temperature compensation coefficient',unit:'(mV℃/2V)',type:'select',option:'tempcompensation'},
  1522. {model:'tempcompmax',label:'max-temperature compensation',unit:'(℃)',type:'input'},
  1523. {model:'tempcompmin',label:'min-temperature compensation',unit:'(℃)',type:'input'},
  1524. {model:'turnfloatingcurrent',label:'To float flow',unit:'(A)',type:'input'},
  1525. ],
  1526. batteryParametersList1:[],
  1527. batteryParametersListOld1:[
  1528. {model:'capacity',label:'蓄电池容量',unit:'(AH)',type:'input'},
  1529. {model:'vpromotecharge',label:'过充电压',unit:'(V)',type:'input'},
  1530. {model:'vpromoterecover',label:'过充返回电压',unit:'(V)',type:'input'},
  1531. {model:'voverdischargerecover',label:'过放恢复电压',unit:'(V)',type:'input'},
  1532. {model:'voverdischarge',label:'过放电压',unit:'(V)',type:'input'},
  1533. {model:'vsystem',label:'系统电压',unit:'(V)',type:'select',option:'vsystem'},
  1534. {model:'minusnocharge',label:'零下禁充',unit:'',type:'select',option:'minusnocharge'},
  1535. {model:'chargemode',label:'充电模式',unit:'',type:'select',option:'chargemode'},
  1536. ],
  1537. batteryParametersListNew1:[
  1538. {model:'light_voltage',label:'光控电压',unit:'(V)',type:'select',option:'light_voltage'},
  1539. {model:'system_voltage',label:'系统电压',unit:'(V)',type:'select',option:'system_voltage1'},
  1540. {model:'li_battery_type',label:'锂电池类型',unit:'(V)',type:'select',option:'li_battery_type'},
  1541. {model:'increa_char_voltage',label:'充电电压',unit:'(V)',type:'select',option:'increa_char_voltage0'},
  1542. {model:'float_char_voltage',label:'充电返回电压',unit:'(V)',type:'select',option:'increa_char_voltage0'},
  1543. {model:'over_dischar_return_voltage',label:'过放返回电压',unit:'(V)',type:'select',option:'increa_char_voltage0'},
  1544. {model:'over_dischar_voltage',label:'过放电压',unit:'(V)',type:'select',option:'increa_char_voltage0'},
  1545. {model:'char_upper_limit_temper',label:'充电上限温度',unit:'(℃)',type:'select',option:'limit_temper'},
  1546. {model:'char_lower_limit_temper',label:'充电下限温度',unit:'(℃)',type:'select',option:'limit_temper'},
  1547. {model:'dischar_upper_limit_temper',label:'放电上限温度',unit:'(℃)',type:'select',option:'limit_temper'},
  1548. {model:'dischar_lower_limit_temper',label:'放电下限温度',unit:'(℃)',type:'select',option:'limit_temper'},
  1549. ],
  1550. batteryParametersListNew1EN:[
  1551. {model:'light_voltage',label:'OpticallyControlledVoltage',unit:'(V)',type:'select',option:'light_voltage'},
  1552. {model:'system_voltage',label:'BatRateVolt',unit:'(V)',type:'select',option:'system_voltage1'},
  1553. {model:'li_battery_type',label:'lithiumBatteryType',unit:'(V)',type:'select',option:'li_battery_typeEN'},
  1554. {model:'increa_char_voltage',label:'BatImprovChgVolt',unit:'(V)',type:'input'},
  1555. {model:'float_char_voltage',label:'BatFloatChgVolt',unit:'(V)',type:'input'},
  1556. {model:'over_dischar_return_voltage',label:'BatOverDischgBackVolt',unit:'(V)',type:'input'},
  1557. {model:'over_dischar_voltage',label:'BatOverDischgVolt',unit:'(V)',type:'input'},
  1558. {model:'char_upper_limit_temper',label:'ChgMaxTemper',unit:'(℃)',type:'select',option:'limit_temper'},
  1559. {model:'char_lower_limit_temper',label:'ChgMinTemper',unit:'(℃)',type:'select',option:'limit_temper'},
  1560. {model:'dischar_upper_limit_temper',label:'DisChgMaxTemper',unit:'(℃)',type:'select',option:'limit_temper'},
  1561. {model:'dischar_lower_limit_temper',label:'DisChgMinTemper',unit:'(℃)',type:'select',option:'limit_temper'},
  1562. ],
  1563. batteryParametersList1EN:[],
  1564. batteryParametersListOld1EN:[
  1565. {model:'capacity',label:'Battery capacity',unit:'(Ah)',type:'input'},
  1566. {model:'vpromotecharge',label:'Overcharge voltage',unit:'(V)',type:'input'},
  1567. {model:'vpromoterecover',label:'Overcharge return voltage',unit:'(V)',type:'input'},
  1568. {model:'voverdischargerecover',label:'Over-discharge recovery voltage',unit:'(V)',type:'input'},
  1569. {model:'voverdischarge',label:'Over discharge voltage',unit:'(V)',type:'input'},
  1570. {model:'vsystem',label:'System voltage',unit:'(V)',type:'select',option:'vsystem'},
  1571. {model:'minusnocharge',label:'Zero charge',unit:'',type:'select',option:'minusnochargeEN'},
  1572. {model:'chargemode',label:'Charging mode',unit:'',type:'select',option:'chargemode'},
  1573. ],
  1574. option:{
  1575. equ_char_time:[],
  1576. temper_compen_coeff:[],
  1577. limit_temper:[],
  1578. increa_char_voltage0:[],
  1579. increa_char_voltage3:[],
  1580. increa_char_voltage6:[],
  1581. light_voltage:[],
  1582. load_current:[],
  1583. light_time:[],
  1584. light_power:[],
  1585. balan_char_interval:[],
  1586. intell_powerV:[],
  1587. intell_powerC:[],
  1588. li_battery_type:[
  1589. {id:'0',name:'磷酸铁锂'},
  1590. {id:'1',name:'三元锂'},
  1591. ],
  1592. li_battery_typeEN:[
  1593. {id:'0',name:'LiFePO4'},
  1594. {id:'1',name:'NCM'},
  1595. ],
  1596. system_voltage0:[
  1597. {id:'12',name:'12'},
  1598. {id:'24',name:'24'},
  1599. ],
  1600. system_voltage1:[
  1601. {id:'3',name:'3'},
  1602. {id:'6',name:'6'},
  1603. {id:'12',name:'12'},
  1604. {id:'24',name:'24'},
  1605. ],
  1606. light_delay:[],
  1607. induction_delay:[],
  1608. workmodeList:[],
  1609. intell_power:[
  1610. {id:'0',name:'关'},
  1611. {id:'1',name:'高'},
  1612. {id:'2',name:'中'},
  1613. {id:'3',name:'低'},
  1614. {id:'4',name:'自动'},
  1615. {id:'5',name:'USE'},
  1616. ],
  1617. intell_powerEN:[
  1618. {id:'0',name:'Off'},
  1619. {id:'1',name:'High'},
  1620. {id:'2',name:'Centre'},
  1621. {id:'3',name:'low'},
  1622. {id:'4',name:'Automatic'},
  1623. {id:'5',name:'USE'},
  1624. ],
  1625. chargemode:[
  1626. {id:'0',name:'PWM/MPPT'},
  1627. {id:'1',name:'ON/OFF'},
  1628. ],
  1629. minusnocharge:[
  1630. {id:'0',name:'可以充电'},
  1631. {id:'1',name:'禁止充电'},
  1632. ],
  1633. minusnochargeEN:[
  1634. {id:'0',name:'Can charge'},
  1635. {id:'1',name:'Prohibited chargeing'},
  1636. ],
  1637. vsystem:[
  1638. {id:'12',name:'12'},
  1639. {id:'24',name:'24'},
  1640. ],
  1641. balancechargetime:[
  1642. {id:'0',name:'0'},
  1643. {id:'1',name:'1'},
  1644. {id:'2',name:'2'},
  1645. {id:'3',name:'3'},
  1646. {id:'4',name:'4'},
  1647. {id:'5',name:'5'},
  1648. {id:'6',name:'6'},
  1649. {id:'7',name:'7'},
  1650. {id:'8',name:'8'},
  1651. {id:'9',name:'9'},
  1652. {id:'10',name:'10'},
  1653. ],
  1654. tempcompensation:[
  1655. {id:'-2',name:'-2'},
  1656. {id:'-3',name:'-3'},
  1657. {id:'-4',name:'-4'},
  1658. {id:'-5',name:'-5'},
  1659. ],
  1660. batteryList:[
  1661. {id:'0',name:'铅酸电池'},
  1662. {id:'1',name:'锂电池'},
  1663. {id:'2',name:'超级电容'},
  1664. ],
  1665. batteryListEN:[
  1666. {id:'0',name:'Lead-acid batteries'},
  1667. {id:'1',name:'lithium battery'},
  1668. {id:'2',name:'Supercapacitor'},
  1669. ],
  1670. onOff:[
  1671. {id:'1',name:'开启'},
  1672. {id:'0',name:'关闭'},
  1673. ],
  1674. onOffEN:[
  1675. {id:'1',name:'Open'},
  1676. {id:'0',name:'shut down'},
  1677. ],
  1678. timeList:[
  1679. {id:'1',name:'1分钟'},
  1680. {id:'5',name:'5分钟'},
  1681. {id:'10',name:'10分钟'},
  1682. {id:'15',name:'15分钟'},
  1683. {id:'20',name:'20分钟'},
  1684. {id:'25',name:'25分钟'},
  1685. {id:'30',name:'30分钟'},
  1686. {id:'35',name:'35分钟'},
  1687. {id:'40',name:'40分钟'},
  1688. {id:'45',name:'45分钟'},
  1689. {id:'50',name:'50分钟'},
  1690. ],
  1691. timeListEN:[
  1692. {id:'1',name:'1 minutes'},
  1693. {id:'5',name:'5 minutes'},
  1694. {id:'10',name:'10 minutes'},
  1695. {id:'15',name:'15 minutes'},
  1696. {id:'20',name:'20 minutes'},
  1697. {id:'25',name:'25 minutes'},
  1698. {id:'30',name:'30 minutes'},
  1699. {id:'35',name:'35 minutes'},
  1700. {id:'40',name:'40 minutes'},
  1701. {id:'45',name:'45 minutes'},
  1702. {id:'50',name:'50 minutes'},
  1703. ],
  1704. },
  1705. monitorType:'loadParameters',
  1706. myChart2:'',
  1707. currentPage:1,
  1708. pageSize:0,
  1709. total:0,
  1710. pageSizeArr:[{id:10,name:'10/page'},{id:20,name:'20/page'},{id:50,name:'50/page'},{id:100,name:'100/page'}],
  1711. loading:{
  1712. deviceList:false,
  1713. lampLightSlider:false,
  1714. batchProcessingFun:false,
  1715. }
  1716. }
  1717. },
  1718. components:{sideBarIdcol},
  1719. computed:{
  1720. ...mapGetters({
  1721. token:'token',
  1722. client_key:'client_key',
  1723. username:'username',
  1724. version:'version',
  1725. privilege:'privilege',
  1726. role:'role',
  1727. remRatio:'remRatio',
  1728. sideBarCompanyType:'sideBarCompanyType',
  1729. }),
  1730. historicalNavListENFor(){
  1731. let list = [];
  1732. for(let item of this.historicalNavListEN){
  1733. if(((item.model =='3'&&this.dataLSType=='0')||item.model !='3')&&((item.model =='system_info_log'&&this.dataLSType=='1')||item.model !='system_info_log')){
  1734. list.push(item)
  1735. }
  1736. }
  1737. return list
  1738. },
  1739. divisionName(){
  1740. let name;
  1741. for(let d of this.divisionNav){
  1742. if(d.id == this.division){
  1743. name = d.name;
  1744. }
  1745. }
  1746. return name;
  1747. },
  1748. roadIdName(){
  1749. let name;
  1750. if(this.roadId == 0){
  1751. return "All";
  1752. }
  1753. for(let d of this.tabNavList){
  1754. if(d.id == this.roadId){
  1755. name = d.name;
  1756. }
  1757. }
  1758. return name;
  1759. },
  1760. pageSizeName(){
  1761. let name;
  1762. for(let d of this.pageSizeArr){
  1763. if(d.id == this.pageSize){
  1764. name = d.name;
  1765. }
  1766. }
  1767. return name;
  1768. },
  1769. },
  1770. mounted(){
  1771. this.rightDate = '0';
  1772. this.division = '0';
  1773. this.roadId = 0;
  1774. this.pageSize = 10;
  1775. // this.currentPage = 1;
  1776. // this.deviceArr = [
  1777. // {prop:'ID',label:'ID',align:'left',minWidth:60},
  1778. // {prop:'State',label:'State',minWidth:60,type:1},
  1779. // {prop:'Section',label:'Section',minWidth:60},
  1780. // {prop:'Brightness',label:'Brightness',minWidth:80,type:1},
  1781. // {prop:'Wireless',label:'Wireless',minWidth:70},
  1782. // {prop:'Power',label:'Power',minWidth:60},
  1783. // {prop:'Chargingstage',label:'Charging stage',minWidth:90},
  1784. // {prop:'Voltage',label:'Voltage',minWidth:70},
  1785. // {prop:'ElectricQuantity',label:'Electric quantity',minWidth:100},
  1786. // {prop:'Overdischarge',label:'Overdischarge',minWidth:80},
  1787. // {prop:'SolarPower',label:'Solar power',minWidth:70},
  1788. // {prop:'Fault',label:'Fault',minWidth:60},
  1789. // ];
  1790. // this.deviceList = [];
  1791. this.getCountry();
  1792. // this.getProjectNav('init');
  1793. },
  1794. methods:{
  1795. tableRowClassName({row, rowIndex}) {
  1796. console.log(row)
  1797. if (rowIndex%2 == 0) {
  1798. return 'row_bg';
  1799. }
  1800. return '';
  1801. },
  1802. commandHide(val){
  1803. this.$nextTick(function(){
  1804. if($('.'+val)&&$('.'+val+' >.select').offset()){
  1805. $('.'+val).animate({scrollTop: $('.'+val).scrollTop() + $('.'+val+' >.select').offset().top - $('.'+val).offset().top - 100})
  1806. }
  1807. })
  1808. },
  1809. commandDropdown(obj){
  1810. this.$set(this,obj.key,obj.id)
  1811. if(obj.key == 'pageSize'||obj.key == 'roadId'){
  1812. this.getLightList();
  1813. }
  1814. },
  1815. /*设备列表*/
  1816. getLightListKeyUp(e){
  1817. if(e.key == 'Enter'){
  1818. this.getLightList();
  1819. }
  1820. },
  1821. /*获取表格数据*/
  1822. getLightList(value,callback,download){
  1823. let downloadVal = 0;
  1824. if(download){
  1825. downloadVal = download;
  1826. }else{
  1827. this.loading.deviceList = true;
  1828. }
  1829. baseApi.ajax_post(
  1830. allUrl.project.lampcontrolGet,
  1831. {
  1832. username:this.username,
  1833. client_key:this.client_key,
  1834. token:this.token,
  1835. fields:this.tableConfig.prop1.join(','),
  1836. field1:this.tableConfig.prop.join(','),
  1837. project_id:this.projectId,
  1838. keyword:this.keywords,
  1839. status:this.status,
  1840. alarmtype:this.alarmtype,
  1841. page:value,
  1842. count:this.pageSize,
  1843. offline:this.offline,
  1844. online:this.online,
  1845. download:downloadVal,
  1846. section:this.roadId,
  1847. type:this.sideBarCompanyType,
  1848. company:this.companyId,
  1849. },
  1850. {},
  1851. data =>{
  1852. if(callback){
  1853. callback(data)
  1854. }
  1855. if(downloadVal == 0){
  1856. this.deviceTotalData = data.data.total_data;
  1857. this.deviceList = data.data.lamps;
  1858. let i = (this.currentPage - 1)*this.pageSize+1;
  1859. for(let d of this.deviceList){
  1860. d.lighteness = parseInt(d.lighteness);
  1861. let hh1 = '',mm1 = '',hh2 = '',mm2 = '';
  1862. hh1 = parseInt(d.daychargemincurrent/3600);
  1863. mm1 = parseInt((d.daychargemincurrent%3600)/60);
  1864. hh2 = parseInt(d.daydischargemincurrent/3600);
  1865. mm2 = parseInt((d.daydischargemincurrent%3600)/60);
  1866. if(hh1<10){
  1867. hh1 = '0'+hh1;
  1868. }
  1869. if(hh2<10){
  1870. hh2 = '0'+hh2;
  1871. }
  1872. if(mm1<10){
  1873. mm1 = '0'+mm1;
  1874. }
  1875. if(mm2<10){
  1876. mm2 = '0'+mm2;
  1877. }
  1878. d.daychargemincurrent = hh1+':'+mm1;
  1879. d.daydischargemincurrent = hh2+':'+mm2;
  1880. d.webIndex = i;
  1881. i++;
  1882. }
  1883. this.total = Number(data.data.total);
  1884. this.count = data.data.count;
  1885. this.fault = data.data.fault;
  1886. this.loading.deviceList = false;
  1887. this.$refs.deviceList.doLayout();
  1888. }
  1889. },
  1890. this,
  1891. () => {
  1892. if(!download){
  1893. this.loading.deviceList = false;
  1894. }
  1895. }
  1896. )
  1897. },
  1898. /*项目详情*/
  1899. getProjectDetail(id,callback){
  1900. baseApi.ajax_post(
  1901. allUrl.project.projectDetail,
  1902. {
  1903. username:this.username,
  1904. client_key:this.client_key,
  1905. token:this.token,
  1906. project_id:id,
  1907. },
  1908. {},
  1909. data =>{
  1910. if(callback){
  1911. callback(data)
  1912. }
  1913. },
  1914. this)
  1915. },
  1916. getProjectData(id){
  1917. this.projectId = id;
  1918. baseApi.ajax_post(
  1919. allUrl.project.projectData,
  1920. {
  1921. username:this.username,
  1922. client_key:this.client_key,
  1923. token:this.token,
  1924. project_id:id,
  1925. type:this.sideBarCompanyType,
  1926. company:this.companyId,
  1927. },
  1928. {},
  1929. data =>{
  1930. this.detailData = data.data;
  1931. if(this.weatherList.length>0){
  1932. this.weatherList = data.data.weatherList;
  1933. }
  1934. this.networkSectionList();
  1935. },
  1936. this)
  1937. },
  1938. networkSectionList(){
  1939. baseApi.ajax_post(
  1940. allUrl.alarm.networkSectionList,
  1941. {
  1942. username:this.username,
  1943. client_key:this.client_key,
  1944. token:this.token,
  1945. project_id:this.projectId,
  1946. },
  1947. {},
  1948. data =>{
  1949. this.tabNavList = data.data.networks;
  1950. },
  1951. this)
  1952. },
  1953. networkGet(){
  1954. baseApi.ajax_post(
  1955. allUrl.alarm.networkGet,
  1956. {
  1957. username:this.username,
  1958. client_key:this.client_key,
  1959. token:this.token,
  1960. project_id:this.projectId,
  1961. },
  1962. {},
  1963. data =>{
  1964. this.networkList = data.data.networks;
  1965. // console.log(data,'组网下拉')
  1966. },
  1967. this)
  1968. },
  1969. /*侧栏列表*/
  1970. sideBarCompanyList(val,type,init){
  1971. baseApi.ajax_post(
  1972. allUrl.project.projectNav,
  1973. {
  1974. username:this.username,
  1975. client_key:this.client_key,
  1976. token:this.token,
  1977. type:type,
  1978. keyword:val,
  1979. },
  1980. {},
  1981. data =>{
  1982. // console.log(data,'公司列表')
  1983. console.log(init)
  1984. let storage = window.localStorage;
  1985. let companyId = storage.getItem("companyId");
  1986. let projectId = storage.getItem("projectId")
  1987. if(type == 0){
  1988. if(data.data.length>0){
  1989. if(projectId){
  1990. this.projectId = projectId;
  1991. }else{
  1992. this.projectId = data.data[0].id;
  1993. }
  1994. this.getProjectData(this.projectId)
  1995. this.getFields();
  1996. this.networkGet();
  1997. for(let key in data.data){
  1998. this.$set(data.data[key],'isOpen',false)
  1999. if(data.data[key].id == this.projectId){
  2000. this.$set(data.data[key],'isOpen',true)
  2001. }
  2002. }
  2003. }
  2004. }else{
  2005. if(data.data.length>0){
  2006. if(companyId){
  2007. this.companyId = companyId;
  2008. if(data.data[0].projectList.length>0){
  2009. if(projectId){
  2010. this.projectId = projectId;
  2011. }else{
  2012. this.projectId = data.data[0].projectList[0].id;
  2013. }
  2014. // this.$set(data.data[0].projectList[0],'isOpen',true)
  2015. this.getProjectData(this.projectId)
  2016. this.getFields();
  2017. this.networkGet();
  2018. }else{
  2019. this.projectId = null;
  2020. this.deviceTotalData = {
  2021. light_num:0,
  2022. online_num:0,
  2023. fault_count:0,
  2024. network_num:0
  2025. };
  2026. this.deviceList = [];
  2027. this.total = 0;
  2028. this.count = 0;
  2029. this.fault = 0;
  2030. }
  2031. }else{
  2032. this.companyId = data.data[0].cId;
  2033. if(data.data[0].projectList.length>0){
  2034. this.projectId = data.data[0].projectList[0].id;
  2035. // this.$set(data.data[0].projectList[0],'isOpen',true)
  2036. this.getProjectData(this.projectId)
  2037. this.getFields();
  2038. this.networkGet();
  2039. }else{
  2040. this.projectId = null;
  2041. this.deviceTotalData = {
  2042. light_num:0,
  2043. online_num:0,
  2044. fault_count:0,
  2045. network_num:0
  2046. };
  2047. this.deviceList = [];
  2048. this.total = 0;
  2049. this.count = 0;
  2050. this.fault = 0;
  2051. }
  2052. }
  2053. for(let key in data.data){
  2054. this.$set(data.data[key],'isOpen',false)
  2055. if(data.data[key].cId == this.companyId){
  2056. this.$set(data.data[key],'isOpen',true)
  2057. }
  2058. if(data.data[0].projectList.length>0){
  2059. for(let d of data.data[0].projectList){
  2060. this.$set(d,'isOpen',true)
  2061. if(d.id == this.projectId){
  2062. this.$set(d,'isOpen',true)
  2063. }
  2064. }
  2065. }
  2066. }
  2067. }else{
  2068. this.companyId = null
  2069. this.projectId = null;
  2070. this.deviceTotalData = {
  2071. light_num:0,
  2072. online_num:0,
  2073. fault_count:0,
  2074. network_num:0
  2075. };
  2076. this.deviceList = [];
  2077. this.total = 0;
  2078. this.count = 0;
  2079. this.fault = 0;
  2080. }
  2081. }
  2082. console.log(this.companyId)
  2083. this.projectNav = data.data;
  2084. },
  2085. this)
  2086. },
  2087. /*侧边栏打开关闭*/
  2088. sideBarIsOn(){
  2089. if(this.sideBarType == 'on'){
  2090. this.sideBarType = 'off';
  2091. }else{
  2092. this.sideBarType = 'on';
  2093. }
  2094. },
  2095. /*侧边栏里展开收起*/
  2096. sideBarListIsOpen(data){
  2097. if(data.isOpen){
  2098. data.isOpen = false;
  2099. }else{
  2100. data.isOpen = true;
  2101. }
  2102. },
  2103. projectAll(){
  2104. this.projectId = 0;
  2105. this.companyId = 0;
  2106. var storage = window.localStorage;
  2107. storage.setItem('projectId',false);
  2108. storage.setItem('companyId',false);
  2109. },
  2110. projectSelectFun(type,data,d){
  2111. var storage = window.localStorage;
  2112. if(!data.isOpen||this.projectId != data.id){
  2113. this.$set(data,'isOpen',true)
  2114. }else{
  2115. this.$set(data,'isOpen',false)
  2116. }
  2117. console.log(type,data,d)
  2118. storage.setItem('projectId',data.id);
  2119. if(type != 0){
  2120. if(d.cId != this.companyId){
  2121. this.companyId = d.cId;
  2122. storage.setItem('companyId',d.cId);
  2123. }
  2124. }
  2125. this.projectId = data.id;
  2126. this.roadId = '';
  2127. this.getLightList(this.currentPage);
  2128. this.getProjectData(this.projectId)
  2129. },
  2130. roadSelectFun(data,obj,d){
  2131. var storage = window.localStorage;
  2132. if(this.sideBarCompanyType == 0){
  2133. if(data.id != this.projectId){
  2134. storage.setItem('projectId',data.id);
  2135. this.projectId = data.id;
  2136. }
  2137. this.roadId = obj.name;
  2138. }else{
  2139. if(data.cId != this.companyId){
  2140. this.companyId = data.cId;
  2141. storage.setItem('companyId',data.cId);
  2142. }
  2143. if(obj.id != this.projectId){
  2144. storage.setItem('projectId',obj.id);
  2145. this.projectId = obj.id;
  2146. }
  2147. this.roadId = d.name;
  2148. }
  2149. this.getLightList(this.currentPage);
  2150. this.getProjectData(this.projectId)
  2151. },
  2152. /*批量处理*/
  2153. batchOperation(val){
  2154. console.log(val,this.multipleSelection.length)
  2155. if(this.multipleSelection.length <= '0'){
  2156. this.$message({
  2157. showClose: true,
  2158. message:'Please select the light control',
  2159. type: 'warning'
  2160. });
  2161. }else{
  2162. this.lampcontrolOperationType = val
  2163. if(val == 'strategy'){
  2164. baseApi.ajax_post(
  2165. allUrl.strategy.policy_nav,
  2166. {
  2167. username:this.username,
  2168. client_key:this.client_key,
  2169. token:this.token,
  2170. client_type:'0',
  2171. },
  2172. {},
  2173. data =>{
  2174. this.policyList = data.data.list;
  2175. },
  2176. this)
  2177. }
  2178. }
  2179. },
  2180. batchProcessingFun(type){
  2181. if(this.loading.batchProcessingFun){
  2182. return
  2183. }
  2184. let lampIds = '';
  2185. if(type == 'on'){
  2186. this.lampcontrolOperationType = '-1';
  2187. this.batchProcessing = type;
  2188. this.batchDimmingVal = 0;
  2189. }else if(type == 'cancel'){
  2190. this.batchProcessing = 'off';
  2191. }else{
  2192. if(this.lampcontrolOperationType == '参数'){
  2193. if(this.multipleSelection.length == 0){
  2194. this.$message({
  2195. showClose: true,
  2196. message:'Please select the light control first',
  2197. type: 'warning'
  2198. });
  2199. }else{
  2200. let oldBoolean = false;
  2201. let newBoolean = false;
  2202. let lampBoolean = false;
  2203. let catcherBoolean = false;
  2204. for(let d of this.multipleSelection){
  2205. if(d.lampProtocoltype == '0'){
  2206. oldBoolean = true;
  2207. }else if(d.lampProtocoltype == '1'){
  2208. newBoolean = true;
  2209. }
  2210. if(d.loadtype == '0'){
  2211. lampBoolean = true;
  2212. }else if(d.loadtype == '1'){
  2213. catcherBoolean = true;
  2214. }
  2215. }
  2216. console.log(newBoolean,oldBoolean,lampBoolean,catcherBoolean)
  2217. if(newBoolean && oldBoolean){
  2218. this.$message({
  2219. showClose: true,
  2220. message:'Cannot modify both old and new controller parameters at the same time',
  2221. type: 'warning'
  2222. });
  2223. }else if(lampBoolean && catcherBoolean){
  2224. this.$message({
  2225. showClose: true,
  2226. message:'Unable to modify street lamp and insect trap parameters at the same time.',
  2227. type: 'warning'
  2228. });
  2229. }else{
  2230. this.monitorType = 'loadParameters';
  2231. this.monitorDialog = true;
  2232. this.parameterLoadIsEdit = false;
  2233. this.parameterBatteryIsEdit = false;
  2234. this.batchModificationParameters = false;
  2235. this.loadSettingIsTrue = false;
  2236. this.loading.loadSetting = true;
  2237. this.batterySettingIsTrue = false;
  2238. this.loading.batterySetting = true;
  2239. if(oldBoolean){
  2240. this.lampProtocoltype = '0';
  2241. baseApi.ajax_post(
  2242. allUrl.project.workmode,
  2243. {
  2244. username:this.username,
  2245. client_key:this.client_key,
  2246. token:this.token,
  2247. },
  2248. {},
  2249. data =>{
  2250. this.option.workmodeList = [];
  2251. for(let key in data.data){
  2252. this.option.workmodeList.push({
  2253. id:key,
  2254. name:data.data[key],
  2255. })
  2256. }
  2257. },
  2258. this)
  2259. this.loadParametersData = this.loadParametersDataOld;
  2260. if(catcherBoolean){
  2261. this.loadtype = '1';
  2262. if(this.version == '0'){
  2263. this.loadParametersList = this.catcherloadParametersListOld;
  2264. }else{
  2265. this.loadParametersListEN = this.catcherloadParametersListENOld
  2266. }
  2267. }else{
  2268. this.loadtype = '0';
  2269. if(this.version == '0'){
  2270. this.loadParametersList = this.loadParametersListOld;
  2271. }else{
  2272. this.loadParametersListEN = this.loadParametersListENOld
  2273. }
  2274. }
  2275. }
  2276. if(newBoolean){
  2277. if(catcherBoolean){
  2278. this.lampProtocoltype = '1';
  2279. this.loadtype = '1';
  2280. this.loadParametersData = this.loadParametersDataNew;
  2281. if(this.version == '0'){
  2282. this.loadParametersList = this.catcherloadParametersListNew
  2283. }else{
  2284. this.loadParametersListEN = this.catcherloadParametersListENNew;
  2285. }
  2286. }else{
  2287. this.lampProtocoltype = '1';
  2288. this.loadtype = '0';
  2289. this.loadParametersData = this.loadParametersDataNew;
  2290. if(this.version == '0'){
  2291. this.loadParametersList = this.loadParametersListNew;
  2292. }else{
  2293. this.loadParametersListEN = this.loadParametersListENNew
  2294. }
  2295. }
  2296. }
  2297. for(let key in this.loadParametersData){
  2298. this.loadParametersData[key] = '';
  2299. }
  2300. this.lampcontrolGetData(1,data=>{
  2301. data.data.first_light_time = new Date('2018-08-06 '+data.data.first_light_time);
  2302. data.data.second_light_time = new Date('2018-08-06 '+data.data.second_light_time);
  2303. data.data.third_light_time = new Date('2018-08-06 '+data.data.third_light_time);
  2304. data.data.fourth_light_time = new Date('2018-08-06 '+data.data.fourth_light_time);
  2305. data.data.fifth_light_time = new Date('2018-08-06 '+data.data.fifth_light_time);
  2306. data.data.sixth_light_time = new Date('2018-08-06 '+data.data.sixth_light_time);
  2307. data.data.seventh_light_time = new Date('2018-08-06 '+data.data.seventh_light_time);
  2308. data.data.eighth_light_time = new Date('2018-08-06 '+data.data.eighth_light_time);
  2309. data.data.ninth_light_time = new Date('2018-08-06 '+data.data.ninth_light_time);
  2310. data.data.tenth_light_time = new Date('2018-08-06 '+data.data.tenth_light_time);
  2311. for(let key in data.data){
  2312. this.loadParametersData[key] = data.data[key]
  2313. }
  2314. this.loadParametersDataHC = Object.assign({},this.loadParametersData);
  2315. this.loadSettingIsTrue = true;
  2316. this.loading.loadSetting = false;
  2317. })
  2318. this.lampcontrolGetData(2,data=>{
  2319. console.log(data)
  2320. for(let key in data.data){
  2321. this.batteryParametersData[key] = data.data[key]
  2322. }
  2323. this.batteryParametersDataHC = Object.assign({},this.batteryParametersData)
  2324. this.batteryParametersDataHC.type = '默认';
  2325. this.batterySettingIsTrue = true;
  2326. this.loading.batterySetting = false;
  2327. })
  2328. }
  2329. }
  2330. }else if(this.lampcontrolOperationType == '调光'){
  2331. if(this.multipleSelection.length == 0){
  2332. this.$message({
  2333. showClose: true,
  2334. message:'Please select the light control',
  2335. type: 'warning'
  2336. });
  2337. }else{
  2338. /*灯控调光*/
  2339. let this_ = this;
  2340. let i = 0;
  2341. // let key = 0;
  2342. this.giveCommandDialog = true;
  2343. this.giveCommandZS = this.multipleSelection.length;
  2344. this.giveCommandCG = 0;
  2345. this.giveCommandJD = 0;
  2346. this.giveCommandJournal = [];
  2347. let ids = '';
  2348. let ids_length = this.multipleSelection.length;
  2349. for(let d of this.multipleSelection){
  2350. if(ids == ''){
  2351. ids = d.id;
  2352. }else{
  2353. ids+=','+d.id;
  2354. }
  2355. }
  2356. this_.loading.batchProcessingFun = true;
  2357. baseApi.websocket1(allUrl.websocket.wss,data=>{
  2358. if(data.data.status == '1'){
  2359. baseApi.ajax_post_ws(
  2360. allUrl.gisMap.lampcontrolDimming,
  2361. {
  2362. username:this_.username,
  2363. client_key:this_.client_key,
  2364. token:this_.token,
  2365. lamp_id:ids,
  2366. type:'1',
  2367. lightness:this_.batchDimmingVal,
  2368. mode:'0',
  2369. clientid:data.data.clientid,
  2370. },
  2371. this_,
  2372. )
  2373. }
  2374. if(data.data.status == '2'){
  2375. if(data.data.code == '0000'){
  2376. console.log(1,'--')
  2377. this_.$notify({
  2378. title: 'Successful operation',
  2379. message: 'lamp '+data.data.data.number,
  2380. type: 'success'
  2381. });
  2382. this_.giveCommandJournal.push({
  2383. time:this_.GMTToZero2(new Date()),
  2384. text:data.data.msg,
  2385. number:data.data.data.number,
  2386. type:true
  2387. })
  2388. i++;
  2389. this_.giveCommandCG ++;
  2390. this_.giveCommandJD = i;
  2391. if(i >= ids_length){
  2392. this_.loading.batchProcessingFun = false;
  2393. this_.batchProcessing = type;
  2394. this_.getLightList(this_.currentPage);
  2395. websocket.close();
  2396. }
  2397. }else{
  2398. this_.$notify.error({
  2399. title: 'Operation failed',
  2400. message: 'Lamp '+data.data.data.number+':'+data.data.msg
  2401. });
  2402. this_.giveCommandJournal.push({
  2403. time:this_.GMTToZero2(new Date()),
  2404. text:data.data.msg,
  2405. number:data.data.data.number,
  2406. type:false
  2407. })
  2408. i++;
  2409. this_.giveCommandJD = i;
  2410. if(i >= ids_length){
  2411. this_.loading.batchProcessingFun = false;
  2412. this_.batchProcessing = type;
  2413. this_.getLightList(this_.currentPage);
  2414. websocket.close();
  2415. }
  2416. }
  2417. }
  2418. },() => {
  2419. this_.loading.batchProcessingFun = false;
  2420. },this_)
  2421. }
  2422. }else if(this.lampcontrolOperationType == '3'){
  2423. if(this.multipleSelection.length == 0){
  2424. this.$message({
  2425. showClose: true,
  2426. message:'Please select the light control',
  2427. type: 'warning'
  2428. });
  2429. }else{
  2430. for(let d of this.multipleSelection){
  2431. if(lampIds == ''){
  2432. lampIds = d.id;
  2433. }else{
  2434. lampIds += ',' + d.id;
  2435. }
  2436. }
  2437. this.$confirm('This operation will permanently delete the lamp control, will it continue?','Prompt', {
  2438. confirmButtonText: 'confirm',
  2439. cancelButtonText: 'cancel',
  2440. type: 'warning'
  2441. }).then(() => {
  2442. this.loading.batchProcessingFun = true;
  2443. baseApi.ajax_post(
  2444. allUrl.project.lampcontrolDel,
  2445. {
  2446. username:this.username,
  2447. client_key:this.client_key,
  2448. token:this.token,
  2449. lamp_ids:lampIds,
  2450. },
  2451. {},
  2452. data =>{
  2453. // console.log(data,'灯控删除回调')
  2454. this.$message({
  2455. showClose: true,
  2456. message:data.msg,
  2457. type: 'success'
  2458. });
  2459. this.batchProcessing = type;
  2460. this.getLightList(this.currentPage);
  2461. this.networkSectionList();
  2462. this.loading.batchProcessingFun = false;
  2463. },
  2464. this)
  2465. }).catch(() => {
  2466. this.$message({
  2467. type: 'info',
  2468. message: 'Undeleted'
  2469. });
  2470. });
  2471. }
  2472. }else if(this.lampcontrolOperationType == '-1'){
  2473. if(this.version == 0){
  2474. this.$message({
  2475. showClose: true,
  2476. message:'Please select the modified type first',
  2477. type: 'warning'
  2478. });
  2479. }else{
  2480. this.$message({
  2481. showClose: true,
  2482. message:'Please select the modification type',
  2483. type: 'warning'
  2484. });
  2485. }
  2486. }else if(this.lampcontrolOperationType == 'strategy'){
  2487. if(this.multipleSelection.length == 0){
  2488. this.$message({
  2489. showClose: true,
  2490. message:'Please select the light control first',
  2491. type: 'warning'
  2492. });
  2493. }else{
  2494. for(let d of this.multipleSelection){
  2495. if(lampIds == ''){
  2496. lampIds = d.id;
  2497. }else{
  2498. lampIds += ',' + d.id;
  2499. }
  2500. }
  2501. baseApi.ajax_post(
  2502. allUrl.strategy.set_policy,
  2503. {
  2504. username:this.username,
  2505. client_key:this.client_key,
  2506. token:this.token,
  2507. policyid:this.policyId,
  2508. lampid:lampIds,
  2509. },
  2510. {},
  2511. data =>{
  2512. this.$message({
  2513. showClose: true,
  2514. message:data.msg,
  2515. type: 'success'
  2516. });
  2517. this.policyName = 'policy'
  2518. this.batchProcessing = type;
  2519. this.getLightList(this.currentPage);
  2520. this.loading.batchProcessingFun = false;
  2521. },
  2522. this)
  2523. }
  2524. }else{
  2525. // console.log(this.multipleSelection)
  2526. if(this.multipleSelection.length == 0){
  2527. this.$message({
  2528. showClose: true,
  2529. message:'Please select the light control first',
  2530. type: 'warning'
  2531. });
  2532. }else{
  2533. let this_ = this;
  2534. let i = 0;
  2535. this.giveCommandDialog = true;
  2536. this.giveCommandZS = this.multipleSelection.length;
  2537. this.giveCommandCG = 0;
  2538. this.giveCommandJD = 0;
  2539. this.giveCommandJournal = [];
  2540. let ids = '';
  2541. let ids_length = this.multipleSelection.length;
  2542. for(let d of this.multipleSelection){
  2543. if(ids == ''){
  2544. ids = d.id;
  2545. }else{
  2546. ids+=','+d.id;
  2547. }
  2548. }
  2549. baseApi.websocket1(allUrl.websocket.wss,(data,websocket)=>{
  2550. this_.loading.batchProcessingFun = true;
  2551. if(data.data.status == '1'){
  2552. baseApi.ajax_post_ws(
  2553. allUrl.project.lampcontrolTurnonoff,
  2554. {
  2555. username:this_.username,
  2556. client_key:this_.client_key,
  2557. token:this_.token,
  2558. lamp_id:ids,
  2559. type:this_.lampcontrolOperationType,
  2560. mode:0,
  2561. clientid:data.data.clientid,
  2562. },
  2563. this_
  2564. )
  2565. }else if(data.status == '2'){
  2566. if(data.code == '0000'){
  2567. this_.$notify({
  2568. title: 'Successful operation',
  2569. message: 'lamp '+data.data.number,
  2570. type: 'success'
  2571. });
  2572. this_.giveCommandJournal.push({
  2573. time:this_.GMTToZero2(new Date()),
  2574. text:data.msg,
  2575. number:data.data.number,
  2576. type:true
  2577. })
  2578. i++;
  2579. this_.giveCommandCG ++;
  2580. this_.giveCommandJD = i;
  2581. if(i >= ids_length){
  2582. this_.loading.batchProcessingFun = false;
  2583. this_.batchProcessing = type;
  2584. this_.getLightList(this_.currentPage);
  2585. websocket.close();
  2586. }
  2587. }else{
  2588. this_.$notify.error({
  2589. title: 'operation failed',
  2590. message: 'Lamp'+data.data.number+':'+data.msg
  2591. });
  2592. this_.giveCommandJournal.push({
  2593. time:this_.GMTToZero2(new Date()),
  2594. text:data.msg,
  2595. number:data.data.number,
  2596. type:false
  2597. })
  2598. i++;
  2599. this_.giveCommandJD = i;
  2600. console.log(i >= ids_length)
  2601. if(i >= ids_length){
  2602. this_.loading.batchProcessingFun = false;
  2603. this_.batchProcessing = type;
  2604. this_.getLightList(this_.currentPage);
  2605. websocket.close();
  2606. }
  2607. }
  2608. }
  2609. },() => {
  2610. this_.loading.batchProcessingFun = false;
  2611. },this_)
  2612. }
  2613. }
  2614. }
  2615. },
  2616. GMTToZero2(time){
  2617. let now = new Date(time);
  2618. let hour = now.getHours();//得到小时
  2619. let minu = now.getMinutes();//得到分钟
  2620. let sec = now.getSeconds();//得到秒
  2621. if (hour < 10) hour = "0" + hour;
  2622. if (minu < 10) minu = "0" + minu;
  2623. if (sec < 10) sec = "0" + sec;
  2624. let times = "";
  2625. times = hour + ":" + minu + ":" + sec;
  2626. return times
  2627. },
  2628. /*获取表格字段*/
  2629. getFields(){
  2630. baseApi.ajax_post(
  2631. allUrl.project.homeFields,
  2632. {
  2633. username:this.username,
  2634. client_key:this.client_key,
  2635. token:this.token,
  2636. },
  2637. {},
  2638. data =>{
  2639. // console.log(data,'字段列表')
  2640. this.fieldList = data.data.list;
  2641. this.fieldKeep();
  2642. },
  2643. this)
  2644. },
  2645. /*字段管理*/
  2646. fieldManagement(){
  2647. baseApi.ajax_post(
  2648. allUrl.project.homeFields,
  2649. {
  2650. username:this.username,
  2651. client_key:this.client_key,
  2652. token:this.token,
  2653. },
  2654. {},
  2655. data =>{
  2656. this.fieldList = data.data.list;
  2657. },
  2658. this)
  2659. this.fieldDialog = true;
  2660. },
  2661. /*字段选择*/
  2662. fieldSelect(data){
  2663. if(data.select == '1'){
  2664. if(data.fields1 == 'number' || data.fields1 == 'address' || data.fields1 == 'networkname' || data.fields1 == 'section'){
  2665. this.$message({
  2666. showClose: true,
  2667. message:'This field cannot be undisplayed',
  2668. type: 'warning'
  2669. });
  2670. }else{
  2671. data.select = '0'
  2672. }
  2673. }else{
  2674. data.select = '1'
  2675. }
  2676. },
  2677. /*字段*/
  2678. fieldKeep(){
  2679. this.tableConfig.label = [];
  2680. this.tableConfig.prop = [];
  2681. this.tableConfig.prop1 = [];
  2682. this.tableConfig.width = [];
  2683. for(var d of this.fieldList){
  2684. if(d.select == '1'){
  2685. this.$set(this.tableConfig.label,this.tableConfig.label.length,d.enname);
  2686. this.$set(this.tableConfig.prop1,this.tableConfig.prop1.length,d.field);
  2687. this.$set(this.tableConfig.prop,this.tableConfig.prop.length,d.fields1);
  2688. if(d.fields1 == 'updatetime'){
  2689. this.$set(this.tableConfig.width,this.tableConfig.width.length,160);
  2690. }else{
  2691. this.$set(this.tableConfig.width,this.tableConfig.width.length,(d.enname.length+1)*8+20);
  2692. }
  2693. }
  2694. }
  2695. let i = 0;
  2696. this.deviceArr = [];
  2697. for(let d of this.tableConfig.prop){
  2698. this.deviceArr.push({prop:d,label:this.tableConfig.label[i],minWidth:this.tableConfig.width[i],sortable:this.tableConfig.sortable[i]})
  2699. i++;
  2700. }
  2701. console.log(this.deviceArr)
  2702. this.currentPage = 1;
  2703. this.loading.fieldKeep = true;
  2704. this.getLightList(this.currentPage,() => {
  2705. let this_ = this;
  2706. setTimeout(function(){
  2707. this_.fieldDialog = false;
  2708. this_.loading.fieldKeep = false;
  2709. },100)
  2710. });
  2711. },
  2712. /*获取国家列表*/
  2713. getCountry(){
  2714. baseApi.ajax_post(
  2715. allUrl.common.get_country,
  2716. {
  2717. username:this.username,
  2718. client_key:this.client_key,
  2719. token:this.token,
  2720. },
  2721. {},
  2722. data =>{
  2723. this.countryList = data.data.list;
  2724. },
  2725. this)
  2726. },
  2727. /*获取省份下拉*/
  2728. getProvince(value){
  2729. baseApi.ajax_post(
  2730. allUrl.common.get_province,
  2731. {
  2732. username:this.username,
  2733. client_key:this.client_key,
  2734. token:this.token,
  2735. countryId:value,
  2736. },
  2737. {},
  2738. data =>{
  2739. this.provinceList = data.data.list;
  2740. },
  2741. this)
  2742. },
  2743. /*获取市级下拉*/
  2744. getCity(value){
  2745. baseApi.ajax_post(
  2746. allUrl.common.get_city,
  2747. {
  2748. username:this.username,
  2749. client_key:this.client_key,
  2750. token:this.token,
  2751. provinceId:value,
  2752. },
  2753. {},
  2754. data =>{
  2755. this.cityList = data.data.list;
  2756. },
  2757. this)
  2758. },
  2759. /*获取区级下拉*/
  2760. getArea(value){
  2761. baseApi.ajax_post(
  2762. allUrl.common.get_area,
  2763. {
  2764. username:this.username,
  2765. client_key:this.client_key,
  2766. token:this.token,
  2767. cityId:value,
  2768. },
  2769. {},
  2770. data =>{
  2771. this.areaList = data.data.list;
  2772. },
  2773. this)
  2774. },
  2775. /*公司下拉列表*/
  2776. getCompanyNav(){
  2777. console.log(this.sideBarCompanyType)
  2778. baseApi.ajax_post(
  2779. allUrl.user.company_nav,
  2780. {
  2781. username:this.username,
  2782. client_key:this.client_key,
  2783. token:this.token,
  2784. type:this.sideBarCompanyType,
  2785. },
  2786. {},
  2787. data =>{
  2788. this.companyNav = data.data.list;
  2789. },
  2790. this)
  2791. },
  2792. /*添加项目*/
  2793. addItemFun(){
  2794. this.projectTitle = 'Add Project';
  2795. this.projectButton = 'Create it now';
  2796. this.addItemDialog = true;
  2797. // let this_ = this;
  2798. this.provinceList = [];
  2799. this.cityList = [];
  2800. this.areaList = [];
  2801. this.$nextTick(function(){
  2802. this.$refs['addItemData'].resetFields();
  2803. // this.addItemData.company = this.companyId;
  2804. this.addItemData.patrolinterval = '60';
  2805. this.addItemData.countryId = '';
  2806. this.addItemData.provinceId = '';
  2807. this.addItemData.cityId = '';
  2808. this.addItemData.areaId = '';
  2809. })
  2810. },
  2811. /*编辑项目*/
  2812. editProject(){
  2813. // console.log(this.detail)
  2814. this.addItemDialog = true;
  2815. this.projectTitle = 'Edit Project';
  2816. this.projectButton = 'Save';
  2817. this.$nextTick(function(){
  2818. this.$refs['addItemData'].resetFields();
  2819. this.getProjectDetail(this.projectId,data=>{
  2820. this.addItemData.projectName = data.data.project_name;
  2821. this.addItemData.projectNo = data.data.project_no;
  2822. this.addItemData.timezone = data.data.timezone;
  2823. this.getProvince(data.data.countryId)
  2824. this.getCity(data.data.provinceId);
  2825. this.getArea(data.data.cityId);
  2826. this.addItemData.countryId = data.data.countryId=='0'?'':data.data.countryId;
  2827. this.addItemData.provinceId = data.data.provinceId=='0'?'':data.data.provinceId;
  2828. this.addItemData.cityId = data.data.cityId=='0'?'':data.data.cityId;
  2829. this.addItemData.areaId = data.data.areaId=='0'?'':data.data.areaId;
  2830. this.addItemData.address = data.data.address;
  2831. // this.addItemData.company = this.companyId;
  2832. this.addItemData.patrolinterval = data.data.patrolinterval;
  2833. })
  2834. })
  2835. },
  2836. countryType(val){
  2837. this.getProvince(val)
  2838. this.addItemData.provinceId = '';
  2839. this.provinceList = [];
  2840. this.addItemData.cityId = '';
  2841. this.cityList = [];
  2842. this.addItemData.areaId = '';
  2843. this.areaList = [];
  2844. },
  2845. provinceType(val){
  2846. this.getCity(val);
  2847. this.addItemData.cityId = '';
  2848. this.cityList = [];
  2849. this.addItemData.areaId = '';
  2850. this.areaList = [];
  2851. },
  2852. cityType(val){
  2853. this.getArea(val);
  2854. this.addItemData.areaId = '';
  2855. this.areaList = [];
  2856. },
  2857. handleSelectionChange(val) {
  2858. this.multipleSelection = val;
  2859. this.popoverCLShow = false;
  2860. for(let d of this.multipleSelection){
  2861. if(d.loadtype == '1'){
  2862. this.popoverCLShow = true;
  2863. }
  2864. }
  2865. },
  2866. statusTypeFun(value,type,offline,online){
  2867. if(this.status != value || this.alarmtype != type || this.offline != offline || this.online != online){
  2868. this.status = value;
  2869. this.alarmtype = type;
  2870. this.currentPage = 1;
  2871. this.offline = offline;
  2872. this.online = online;
  2873. this.getLightList(this.currentPage);
  2874. }
  2875. },
  2876. brightnessAdjustment(e,data){
  2877. console.log(e,'--------',data)
  2878. this.lampLightSliderShow = true;
  2879. let clientWidth = 0,clientHeight = 0,offsetX = 0,offsetY = 0,pageX = 0,pageY = 0;
  2880. clientWidth = e.target.clientWidth;
  2881. clientHeight = e.target.clientHeight;
  2882. offsetX = e.offsetX;
  2883. offsetY = e.offsetY;
  2884. pageX = e.pageX;
  2885. pageY = e.pageY;
  2886. console.log(pageY,$('#app > .scrollbar_style.padding')[0].scrollTop,clientHeight - offsetY);
  2887. this.lampLightSliderPageX = pageX - offsetX + clientWidth + 15;
  2888. this.lampLightSliderPageY = pageY + $('#app > .scrollbar_style.padding')[0].scrollTop - (this.remRatio*(4.1+1.5/2)+71/2+6) + clientHeight - offsetY;
  2889. this.lampLightSlider = parseInt(data.lighteness);
  2890. this.lampId = data.id;
  2891. },
  2892. lampLightSliderClose(){
  2893. this.lampLightSliderShow = false;
  2894. this.lampLightSlider = 0;
  2895. },
  2896. lampLightSliderSave(){
  2897. let this_ = this;
  2898. this.loading.lampLightSlider = true;
  2899. console.log(allUrl.websocket.wss)
  2900. baseApi.websocket1(allUrl.websocket.wss,data=>{
  2901. if(data.data.status == '1'){
  2902. baseApi.ajax_post_ws(
  2903. allUrl.gisMap.lampcontrolDimming,
  2904. {
  2905. username:this_.username,
  2906. client_key:this_.client_key,
  2907. token:this_.token,
  2908. lamp_id:this_.lampId,
  2909. type:'1',
  2910. lightness:this_.lampLightSlider,
  2911. mode:'0',
  2912. clientid:data.data.clientid,
  2913. },
  2914. this_,
  2915. )
  2916. }
  2917. if(data.status == '2'){
  2918. if(data.code == '0000'){
  2919. this_.$message({
  2920. showClose: true,
  2921. message:data.msg,
  2922. type: 'success'
  2923. });
  2924. this_.loading.lampLightSlider = false;
  2925. this_.getLightList(this_.currentPage);
  2926. this_.lampLightSliderShow = false;
  2927. }else{
  2928. this_.$message({
  2929. showClose: true,
  2930. message:data.msg,
  2931. type: 'warning'
  2932. });
  2933. this_.loading.lampLightSlider = false;
  2934. }
  2935. }
  2936. },() => {
  2937. this_.loading.lampLightSlider = false;
  2938. },this_)
  2939. },
  2940. handleCurrentChange(val){
  2941. console.log(`current page: ${val}`);
  2942. this.currentPage = val;
  2943. this.getLightList(this.currentPage);
  2944. },
  2945. handleCurrentChangeLS(val) {
  2946. this.lampcontrolHistorylist(val);
  2947. },
  2948. seeFun(data){
  2949. this.detailsDialog = true;
  2950. this.detailsFieldList = [];
  2951. this.lampId = data.id;
  2952. this.lampLoadtype = data.loadtype;
  2953. if(data.loadtype == '1'){
  2954. this.detailsNavList[0].label ='Insect trap';
  2955. }else{
  2956. this.detailsNavList[0].label ='lamp';
  2957. }
  2958. this.detailsNavSelect = 'lamp_info_log';
  2959. this.lampcontrolViewloglist('lamp_info_log',data => {
  2960. // console.log(data,this.streetlightDetails)
  2961. let fieldList = Object.assign([],this.fieldList)
  2962. for(var key in data.data){
  2963. for(var d of this.streetlightDetails){
  2964. let obj = {};
  2965. for(let dd of fieldList){
  2966. console.log(dd.fields1,d.model)
  2967. if(dd.fields1 == 'number'){
  2968. dd.fields1 = 'lamp_no'
  2969. }
  2970. if(dd.fields1 == 'networkname'){
  2971. dd.fields1 = 'network_no'
  2972. }
  2973. if(dd.fields1 == 'projectname'){
  2974. dd.fields1 = 'project_name'
  2975. }
  2976. if(dd.fields1 == d.model){
  2977. obj.key = dd.enname
  2978. }
  2979. }
  2980. if(this.lampLoadtype == '1'){
  2981. if(d.model == 'lampstatus'){
  2982. obj.key = 'Insect trap status'
  2983. }
  2984. if(d.model == 'lampvoltage'){
  2985. obj.key = 'Insect trap voltage'
  2986. }
  2987. if(d.model == 'lampcurrent'){
  2988. obj.key = 'Insect trap current'
  2989. }
  2990. if(d.model == 'lamppower'){
  2991. obj.key = 'Insect trap power'
  2992. }
  2993. }
  2994. if(d.model == 'monthly_can_usage'){
  2995. obj.key = '套餐总量'
  2996. }
  2997. if(d.model == 'monthly_already_usage'){
  2998. obj.key = '套餐使用量'
  2999. }
  3000. if(d.model == 'iccid'){
  3001. obj.key = 'ICCID'
  3002. }
  3003. if(d.model == key){
  3004. if(d.model != 'devicetype'){
  3005. obj.value = data.data[key];
  3006. obj.model = d.model;
  3007. obj.unit = '';
  3008. console.log(obj.key,obj)
  3009. this.detailsFieldList.push(obj)
  3010. }
  3011. }
  3012. }
  3013. }
  3014. })
  3015. },
  3016. detailsNavSelectFun(data){
  3017. this.detailsNavSelect = data.model;
  3018. this.detailsFieldList = [];
  3019. this.lampcontrolViewloglist(data.model,data => {
  3020. // console.log(data,this.streetlightDetails)
  3021. let fieldList = Object.assign([],this.fieldList)
  3022. for(var key in data.data){
  3023. for(var d of this.streetlightDetails){
  3024. let obj = {};
  3025. for(let dd of fieldList){
  3026. if(dd.fields1 == 'number'){
  3027. dd.fields1 = 'lamp_no'
  3028. }
  3029. if(dd.fields1 == 'networkname'){
  3030. dd.fields1 = 'network_no'
  3031. }
  3032. if(dd.fields1 == 'projectname'){
  3033. dd.fields1 = 'project_name'
  3034. }
  3035. if(dd.fields1 == d.model){
  3036. obj.key = dd.enname
  3037. }
  3038. }
  3039. if(this.lampLoadtype == '1'){
  3040. if(d.model == 'lampstatus'){
  3041. obj.key = 'Insect trap status'
  3042. }
  3043. if(d.model == 'lampvoltage'){
  3044. obj.key = 'Insect trap voltage'
  3045. }
  3046. if(d.model == 'lampcurrent'){
  3047. obj.key = 'Insect trap current'
  3048. }
  3049. if(d.model == 'lamppower'){
  3050. obj.key = 'Insect trap power'
  3051. }
  3052. if(d.model == 'lamp_no'){
  3053. obj.key = 'Insect trap number'
  3054. }
  3055. }
  3056. if(d.model == 'monthly_can_usage'){
  3057. obj.key = '套餐总量'
  3058. }
  3059. if(d.model == 'monthly_already_usage'){
  3060. obj.key = '套餐使用量'
  3061. }
  3062. if(d.model == 'iccid'){
  3063. obj.key = 'ICCID'
  3064. }
  3065. if(d.model == key){
  3066. if(d.model != 'devicetype'){
  3067. obj.value = data.data[key];
  3068. obj.model = d.model;
  3069. obj.unit = '';
  3070. console.log(obj.key,obj)
  3071. this.detailsFieldList.push(obj)
  3072. }
  3073. }
  3074. }
  3075. }
  3076. })
  3077. },
  3078. projectSaveDel(){
  3079. this.$confirm('This operation will permanently delete the project, will it continue?', 'Prompt', {
  3080. confirmButtonText: 'confirm',
  3081. cancelButtonText: 'cancel',
  3082. type: 'warning'
  3083. }).then(() => {
  3084. baseApi.ajax_post(
  3085. allUrl.project.projectDel,
  3086. {
  3087. username:this.username,
  3088. client_key:this.client_key,
  3089. token:this.token,
  3090. project_id:this.projectId,
  3091. },
  3092. {},
  3093. data =>{
  3094. this.$message({
  3095. showClose: true,
  3096. message:data.msg,
  3097. type: 'success'
  3098. });
  3099. var storage = window.localStorage;
  3100. storage.setItem('projectId',false);
  3101. storage.setItem('companyId',false);
  3102. this.projectId = '';
  3103. // this.getProjectNav('del',this.companyId);
  3104. // var storage = window.localStorage;
  3105. let searchType = storage.getItem("searchType");
  3106. this.sideBarCompanyList('',searchType)
  3107. this.addItemDialog = false;
  3108. },
  3109. this)
  3110. }).catch(() => {
  3111. this.$message({
  3112. type: 'info',
  3113. message: 'Undeleted'
  3114. });
  3115. });
  3116. },
  3117. projectKeydown(e){
  3118. if(e.key == 'Enter'){
  3119. this.projectSaveFun();
  3120. }
  3121. },
  3122. projectSaveFun(){
  3123. var projectId;
  3124. if(this.projectTitle == 'Edit Project'){
  3125. projectId = this.projectId;
  3126. }else{
  3127. projectId = 0;
  3128. }
  3129. let pid = '';
  3130. if(this.addItemData.areaId){
  3131. pid = this.addItemData.areaId;
  3132. }else{
  3133. if(this.addItemData.cityId){
  3134. pid = this.addItemData.cityId;
  3135. }else{
  3136. if(this.addItemData.provinceId){
  3137. pid = this.addItemData.provinceId;
  3138. }else{
  3139. if(this.addItemData.countryId){
  3140. pid = this.addItemData.countryId;
  3141. }
  3142. }
  3143. }
  3144. }
  3145. this.$refs['addItemData'].validate((valid) => {
  3146. if(valid){
  3147. this.projectSaveLoading = true;
  3148. baseApi.ajax_post(
  3149. allUrl.project.projectSave,
  3150. {
  3151. username:this.username,
  3152. client_key:this.client_key,
  3153. token:this.token,
  3154. project_name:this.addItemData.projectName,
  3155. project_no:this.addItemData.projectNo,
  3156. pid:pid,
  3157. project_id:projectId,
  3158. address:this.addItemData.address,
  3159. // company:this.addItemData.company,
  3160. patrolinterval:this.addItemData.patrolinterval,
  3161. },
  3162. {},
  3163. data =>{
  3164. // console.log(data)
  3165. this.$message({
  3166. showClose: true,
  3167. message:data.msg,
  3168. type: 'success'
  3169. });
  3170. if(this.projectId){
  3171. // this.getProjectNav(this.projectId,this.companyId)
  3172. }else{
  3173. // this.getProjectNav('init')
  3174. }
  3175. this.addItemDialog = false;
  3176. this.projectSaveLoading = false;
  3177. },
  3178. this,() =>{
  3179. this.projectSaveLoading = false;
  3180. })
  3181. }
  3182. })
  3183. },
  3184. /*灯控详细数据*/
  3185. lampcontrolViewloglist(value,callback){
  3186. this.loading.detailsFieldList = true;
  3187. baseApi.ajax_post(
  3188. allUrl.project.lampcontrolViewloglist,
  3189. {
  3190. username:this.username,
  3191. client_key:this.client_key,
  3192. token:this.token,
  3193. lamp_id:this.lampId,
  3194. datatype:value,
  3195. },
  3196. {},
  3197. data =>{
  3198. this.loading.detailsFieldList = false;
  3199. if(callback){
  3200. callback(data)
  3201. }
  3202. this.lampcontrolListHC = data.data;
  3203. },
  3204. this,()=>{
  3205. this.loading.detailsFieldList = false;
  3206. })
  3207. },
  3208. /*添加灯控*/
  3209. addLightControlFun(value){
  3210. this.getCompanyNav();
  3211. this.lightControlTitle = 'Add Lamp';
  3212. this.lightControlButton = 'Create it now';
  3213. this.addLightControlDialog = true;
  3214. this.$nextTick(function(){
  3215. this.$refs['lightControlData'].resetFields();
  3216. if(value != 0){
  3217. this.lightControlData.network_id = value
  3218. }
  3219. this.lightControlData.longitude = this.detailData.longitude;
  3220. this.lightControlData.latitude = this.detailData.latitude;
  3221. })
  3222. },
  3223. /*编辑灯控*/
  3224. editFun(data){
  3225. this.getCompanyNav();
  3226. this.lampId = data.id;
  3227. this.lampLoadtype = data.loadtype;
  3228. if(this.lampLoadtype == '1'){
  3229. // this.lightControlList[0].label = '捕虫器编号';
  3230. // this.lightControlList[11].label = '捕虫器类型';
  3231. this.lightControlListEN[0].label = 'Insect trap number';
  3232. this.lightControlListEN[11].label = 'Insect trap Type';
  3233. }else{
  3234. // this.lightControlList[0].label = '路灯编号';
  3235. // this.lightControlList[11].label = '路灯类型';
  3236. this.lightControlListEN[0].label = 'Lamp number';
  3237. this.lightControlListEN[11].label = 'Lamp type';
  3238. }
  3239. if(this.lampLoadtype == '1'){
  3240. this.lightControlTitle = 'Edit Insect trap';
  3241. }else{
  3242. this.lightControlTitle = 'Edit Lamp';
  3243. }
  3244. this.lightControlButton = 'Save';
  3245. this.addLightControlDialog = true;
  3246. this.lampcontrolViewloglist('lampinfo',data=>{
  3247. // console.log(data)
  3248. this.$nextTick(function(){
  3249. this.$refs['lightControlData'].resetFields();
  3250. for(let key in this.lightControlData){
  3251. this.lightControlData[key] = data.data[key];
  3252. }
  3253. })
  3254. })
  3255. },
  3256. lampKeydown(e){
  3257. if(e.key == 'Enter'){
  3258. this.lightControlFun();
  3259. }
  3260. },
  3261. lightControlFun(){
  3262. // console.log(this.lightControlData)
  3263. let lamp_id;
  3264. if(this.lightControlTitle == 'Add Lamp'){
  3265. lamp_id = 0;
  3266. }else if(this.lightControlTitle == 'Edit Lamp' ||this.lightControlTitle == 'Edit Insect trap'){
  3267. lamp_id = this.lampId;
  3268. }
  3269. if(this.sideBarCompanyType == 2){
  3270. this.lightControlData.manu = this.lightControlData.companyName;
  3271. }
  3272. if(this.lightControlData.deviceType == 3){
  3273. this.lightControlData.supplier = this.lightControlData.companyName;
  3274. }
  3275. if(this.lightControlData.deviceType == 4){
  3276. this.lightControlData.PO = this.lightControlData.companyName;
  3277. }
  3278. if(this.lightControlData.deviceType == 5){
  3279. this.lightControlData.upazilla = this.lightControlData.companyName;
  3280. }
  3281. this.$refs['lightControlData'].validate((valid) => {
  3282. if(valid){
  3283. baseApi.ajax_post(
  3284. allUrl.project.lampcontrolSave,
  3285. {
  3286. username:this.username,
  3287. client_key:this.client_key,
  3288. token:this.token,
  3289. lamp_id:lamp_id,
  3290. network_id:this.networkId,
  3291. project_id:this.projectId,
  3292. ...this.lightControlData
  3293. },
  3294. {},
  3295. data =>{
  3296. // console.log(data,'灯控回调')
  3297. this.$message({
  3298. showClose: true,
  3299. message:data.msg,
  3300. type: 'success'
  3301. });
  3302. this.getLightList(this.currentPage);
  3303. this.addLightControlDialog = false;
  3304. // this.networkSectionList();
  3305. },
  3306. this)
  3307. }
  3308. })
  3309. },
  3310. amapWrapperFun(){
  3311. this.lampLongitude = Number(this.lightControlData.longitude);
  3312. this.lampLatitude = Number(this.lightControlData.latitude);
  3313. if(isNaN(this.lampLongitude) || isNaN(this.lampLatitude) || this.lampLongitude>180||this.lampLongitude<-180||this.lampLatitude>90||this.lampLatitude<-90){
  3314. this.$message({
  3315. showClose: true,
  3316. message: 'Please enter the correct latitude and longitude',
  3317. type: 'warning'
  3318. });
  3319. }else{
  3320. let this_ = this;
  3321. this.amapWrapper = true;
  3322. this.$nextTick(function(){
  3323. $('#lampAmapWrapper').css('height',$(window).height()*0.6+'px')
  3324. // console.log(this.lightControlData)
  3325. let JDstr = '';
  3326. let WDstr = '';
  3327. JDstr = 'longitude';
  3328. WDstr = 'latitude';
  3329. let lat = 0;
  3330. let lng = 0;
  3331. if(!isNaN(this.lampLongitude) && !isNaN(this.lampLatitude) &&!(this.lampLongitude ==0 &&this.lampLongitude ==0)){
  3332. let bd_decrypt = this.bd_decrypt(this.lampLongitude,this.lampLatitude)
  3333. this.lampLatitude = Number(bd_decrypt.lat.toFixed(8));
  3334. this.lampLongitude = Number(bd_decrypt.lng.toFixed(8));
  3335. console.log(this.lampLatitude,this.lampLongitude,'----s')
  3336. lat = bd_decrypt.lat;
  3337. lng = bd_decrypt.lng;
  3338. this_.mapDWIsTrue = false;
  3339. this.map = new google.maps.Map(document.getElementById('lampAmapWrapper'), {
  3340. center:{lat: this.lampLatitude, lng: this.lampLongitude},
  3341. zoom: 16,
  3342. gestureHandling: 'greedy',
  3343. streetViewControl:false,
  3344. mapTypeControlOptions:{
  3345. style:google.maps.MapTypeControlStyle.DROPDOWN_MENU,
  3346. position:google.maps.ControlPosition.RIGHT_TOP
  3347. },
  3348. mapTypeId:google.maps.MapTypeId.ROADMAP,
  3349. });
  3350. // console.log('---------1',lat,lng)
  3351. }else{
  3352. this_.mapDWIsTrue = true;
  3353. this.map = new google.maps.Map(document.getElementById('lampAmapWrapper'), {
  3354. center:{lat: 0, lng: 0},
  3355. zoom: 16,
  3356. gestureHandling: 'greedy',
  3357. streetViewControl:false,
  3358. mapTypeControlOptions:{
  3359. style:google.maps.MapTypeControlStyle.DROPDOWN_MENU,
  3360. position:google.maps.ControlPosition.RIGHT_TOP
  3361. },
  3362. mapTypeId:google.maps.MapTypeId.ROADMAP,
  3363. });
  3364. }
  3365. // console.log(Number(lat),Number(lng))
  3366. this.geocoder = new google.maps.Geocoder();
  3367. let bgColor = 'linear-gradient(#fc8440, #fe7121)';
  3368. let borderColor = 'rgba(253, 122, 48, 0.18)';
  3369. this_.positionPicker = new RichMarker({
  3370. position:new google.maps.LatLng(Number(lat),Number(lng)),
  3371. map: this_.map,
  3372. draggable: true,
  3373. content:'<div class="lm_img_mover" style="text-align:center;border:11px solid '+borderColor+'; border-radius:50%;cursor:pointer;"><div style="text-align:center;background:'+bgColor+';background-clip: padding-box;border:2px solid #fff; height: 16px; width: 16px; border-radius:50%;"></div></div>'
  3374. })
  3375. var controlDiv = document.createElement('DIV');
  3376. controlDiv.className = "google_Location_box"
  3377. var controlUI = document.createElement('DIV');
  3378. controlUI.className = "google_Location"
  3379. controlDiv.appendChild(controlUI);
  3380. var svg = document.createElementNS('http://www.w3.org/2000/svg','svg');
  3381. svg.setAttribute('viewBox','25 25 50 50');
  3382. svg.setAttribute('class','circular');
  3383. svg.setAttribute('styel','display:none');
  3384. var circle = document.createElementNS('http://www.w3.org/2000/svg','circle');
  3385. circle.setAttribute('cx','50');
  3386. circle.setAttribute('cy','50');
  3387. circle.setAttribute('r','20');
  3388. circle.setAttribute('fill','none');
  3389. circle.setAttribute('class','path');
  3390. svg.appendChild(circle);
  3391. controlDiv.appendChild(svg);
  3392. google.maps.event.addDomListener(controlDiv, 'click', function() {
  3393. if (navigator.geolocation && this_.googleMapLocattion) {
  3394. this_.googleMapLocattion = false;
  3395. $('.google_Location').css('display','none');
  3396. $('.google_Location_box .circular').css('display','inline-block');
  3397. let options ={
  3398. enableHighAccuracy:false,
  3399. timeout:3000,
  3400. maximumAge:3000
  3401. }
  3402. navigator.geolocation.getCurrentPosition(successHandler,errorHandler,options)
  3403. }
  3404. });
  3405. function successHandler(position){
  3406. this_.map.setCenter(new google.maps.LatLng(position.coords.latitude,position.coords.longitude));
  3407. lat = position.coords.latitude;
  3408. lng = position.coords.longitude;
  3409. this_.positionPicker.setPosition(new google.maps.LatLng(position.coords.latitude,position.coords.longitude))
  3410. this_.googleMapLocattion = true;
  3411. $('.google_Location').css('display','inline-block');
  3412. $('.google_Location_box .circular').css('display','none');
  3413. console.log('---------1--------',position)
  3414. }
  3415. function errorHandler(error){
  3416. console.log('------2-----------',error)
  3417. this_.googleMapLocattion = true;
  3418. $('.google_Location').css('display','inline-block');
  3419. $('.google_Location_box .circular').css('display','none');
  3420. this_.$message({
  3421. showClose: true,
  3422. message:'seek failed',
  3423. type: 'warning'
  3424. });
  3425. }
  3426. this_.map.controls[google.maps.ControlPosition.BOTTOM_RIGHT].push(controlDiv);
  3427. if(this_.screenMap && this_.mapDWIsTrue){
  3428. this_.geocoder.geocode({address:this_.screenMap},function(status, result){
  3429. // console.log(status, result)
  3430. if(result === 'OK'){
  3431. this_.mapDWIsTrue = false;
  3432. lng = status[0].geometry.location.lng();
  3433. lat = status[0].geometry.location.lat();
  3434. // console.log(lng,lat)
  3435. this_.positionPicker.setPosition(new google.maps.LatLng(lat,lng))
  3436. this_.map.setCenter(new google.maps.LatLng(lat,lng));
  3437. }else{
  3438. this_.mapDWIsTrue = true;
  3439. this_.$message({
  3440. showClose: true,
  3441. message: 'Unrecognized, please change the search content',
  3442. type: 'warning'
  3443. });
  3444. }
  3445. function_navigator(this_,lat,lng);
  3446. })
  3447. }else{
  3448. function_navigator(this_,lat,lng);
  3449. }
  3450. // console.log(navigator.geolocation , this_.mapDWIsTrue)
  3451. function function_navigator(this_) {
  3452. if (navigator.geolocation && this_.mapDWIsTrue && this_.googleMapLocattion) {
  3453. this_.googleMapLocattion = false;
  3454. let time1 = setInterval(function(){
  3455. if($('.google_Location').length>0 && $('.google_Location_box .circular').length>0){
  3456. $('.google_Location').css('display','none');
  3457. $('.google_Location_box .circular').css('display','inline-block');
  3458. clearInterval(time1);
  3459. }
  3460. },1)
  3461. let options ={
  3462. enableHighAccuracy:false,
  3463. timeout:3000,
  3464. maximumAge:3000
  3465. }
  3466. navigator.geolocation.getCurrentPosition(successHandler_,errorHandler_,options)
  3467. }
  3468. }
  3469. function successHandler_(position){
  3470. this_.map.setCenter(new google.maps.LatLng(position.coords.latitude,position.coords.longitude));
  3471. lat = position.coords.latitude;
  3472. lng = position.coords.longitude;
  3473. this_.positionPicker.setPosition(new google.maps.LatLng(position.coords.latitude,position.coords.longitude))
  3474. this_.googleMapLocattion = true;
  3475. let time2 = setInterval(function(){
  3476. if($('.google_Location').length>0 && $('.google_Location_box .circular').length>0){
  3477. $('.google_Location').css('display','inline-block');
  3478. $('.google_Location_box .circular').css('display','none');
  3479. clearInterval(time1);
  3480. clearInterval(time2);
  3481. }
  3482. },1)
  3483. // console.log('---------1--------')
  3484. }
  3485. function errorHandler_(){
  3486. // console.log('------2-----------')
  3487. this_.googleMapLocattion = true;
  3488. let time3 = setInterval(function(){
  3489. if($('.google_Location').length>0 && $('.google_Location_box .circular').length>0){
  3490. $('.google_Location').css('display','inline-block');
  3491. $('.google_Location_box .circular').css('display','none');
  3492. clearInterval(time1);
  3493. clearInterval(time3);
  3494. }
  3495. },1)
  3496. this_.$message({
  3497. showClose: true,
  3498. message:'seek failed',
  3499. type: 'warning'
  3500. });
  3501. }
  3502. google.maps.event.addListener(this_.positionPicker,"position_changed",function(){
  3503. $('.lampLongitude'+this_.lampId).text(this.getPosition().lng().toFixed(8));
  3504. $('.lampLatitude'+this_.lampId).html(this.getPosition().lat().toFixed(8));
  3505. let bd_encrypt = this_.bd_encrypt(this.getPosition().lng().toFixed(8),this.getPosition().lat().toFixed(8))
  3506. this_.lampLongitude = bd_encrypt.bd_lng;
  3507. this_.lampLatitude = bd_encrypt.bd_lat;
  3508. })
  3509. let time = setInterval(function(){
  3510. if($('.lm_img_mover').length >0){
  3511. let div = $('<div class="lamp_coordinate_en lamp_coordinate_'+this_.lampId+'"><span><span>'+ JDstr +' : <span class="lampLongitude'+this_.lampId+'">'+this_.lampLongitude+'</span></span><span>'+ WDstr +' : <span class="lampLatitude'+this_.lampId+'">'+this_.lampLatitude+'</span></span></span><i class="determine_l"></i><i class="cancel_l"></i></div>')
  3512. $('.lm_img_mover').parent().append(div);
  3513. $('.lamp_coordinate_'+this_.lampId).children('i').mouseup(function(e){
  3514. let className = e.target.className.split(' ');
  3515. if(className[0] == 'determine_l'){
  3516. this_.lightControlData.longitude = this_.lampLongitude;
  3517. this_.lightControlData.latitude = this_.lampLatitude;
  3518. $('.lamp_coordinate_'+this_.lampId).css('display','none');
  3519. $('.lamp_'+this_.lampId).unbind("mousedown");
  3520. this_.amapWrapper = false;
  3521. }else if(className[0] == 'cancel_l'){
  3522. this_.amapWrapper = false;
  3523. }
  3524. })
  3525. clearInterval(time)
  3526. }
  3527. },1)
  3528. })
  3529. }
  3530. },
  3531. devicetypeChange(){
  3532. this.lightControlData['protocoltype'] = '';
  3533. this.lightControlData['network_id'] = '';
  3534. },
  3535. screenMapKeyUp(e){
  3536. if(e.key == 'Enter'){
  3537. this.screenMapChange(this.screenMap);
  3538. }
  3539. },
  3540. screenMapChange(val){
  3541. let this_ = this;
  3542. // console.log(val)
  3543. //地理编码,返回地理编码结果
  3544. this_.geocoder.geocode({address:val},function(status, result){
  3545. // console.log(status, result)
  3546. let lng = 0;
  3547. let lat = 0;
  3548. if(result === 'OK'){
  3549. lng = status[0].geometry.location.lng();
  3550. lat = status[0].geometry.location.lat();
  3551. console.log(lng,lat)
  3552. this_.positionPicker.setPosition(new google.maps.LatLng(lat,lng))
  3553. this_.map.setCenter(new google.maps.LatLng(lat,lng));
  3554. this_.mapDWIsTrue = false;
  3555. }else{
  3556. this_.$message({
  3557. showClose: true,
  3558. message:'Unrecognized, please change the search content',
  3559. type: 'warning'
  3560. });
  3561. this_.mapDWIsTrue = true;
  3562. }
  3563. })
  3564. },
  3565. gisFun(obj,type){
  3566. this.lampId = obj.id;
  3567. let isImplement = false;
  3568. for(let val of this.privilege){
  3569. if(val == '2'){
  3570. isImplement = true;
  3571. }
  3572. }
  3573. console.log(this.role)
  3574. if(this.role == '1'){
  3575. isImplement = true;
  3576. }
  3577. if(isImplement){
  3578. this.lampcontrolViewloglist('lampinfo',data=>{
  3579. window.open('#/'+type+'?longitude='+data.data.longitude+'&latitude='+data.data.latitude+'&id='+obj.id);
  3580. })
  3581. }else{
  3582. this.$message({
  3583. showClose: true,
  3584. message:'No view permissions',
  3585. type: 'warning'
  3586. });
  3587. }
  3588. },
  3589. /*历史*/
  3590. historicalFun(data){
  3591. // console.log(data)
  3592. this.lampId = data.id;
  3593. this.historicalLampId = data.id;
  3594. this.lampLoadtype = data.loadtype;
  3595. this.historicalDialog = true;
  3596. this.currentPageLS = 1;
  3597. this.historicalNavSelect = 'lamp_info_log';
  3598. if(data.loadtype == '1'){
  3599. this.historicalNavListEN[0].label = 'Insect trap';
  3600. }else{
  3601. this.historicalNavListEN[0].label = 'lamp';
  3602. }
  3603. this.historicalTableList = JSON.parse(JSON.stringify(this[this.historicalNavSelect+'TableListEN']));
  3604. this.lampcontrolHistorylist(1);
  3605. this.lampHistoryData();
  3606. this.getLampList();
  3607. },
  3608. historicalLampClick(id){
  3609. this.historicalLampId = id;
  3610. this.lampId = id;
  3611. if(this.dataLSType == '1'){
  3612. this.lampcontrolHistorylist(1);
  3613. }else{
  3614. this.lampHistoryData();
  3615. }
  3616. },
  3617. getLampList(){
  3618. this.loading.getLampList = true;
  3619. baseApi.ajax_post(
  3620. allUrl.common.lamp_list,
  3621. {
  3622. username:this.username,
  3623. client_key:this.client_key,
  3624. token:this.token,
  3625. client_type:'0',
  3626. projectid:this.projectId,
  3627. },
  3628. {},
  3629. data =>{
  3630. this.historicalLampList = data.data;
  3631. this.loading.getLampList = false;
  3632. console.log($('.history_box .main_list .lamp_list .select'))
  3633. let isTrue = true;
  3634. let time = setInterval(function(){
  3635. if($('.history_box .main_list .lamp_list .select')){
  3636. $('.history_box .main_list .lamp_list').animate({scrollTop: $('.history_box .main_list .lamp_list .select').offset().top - 250 + $('.history_box .main_list .lamp_list').scrollTop()});
  3637. clearInterval(time);
  3638. }
  3639. if(isTrue){
  3640. setTimeout(function(){
  3641. clearInterval(time);
  3642. },3000)
  3643. }
  3644. isTrue = false;
  3645. },100)
  3646. },
  3647. this,()=>{
  3648. this.loading.getLampList = false;
  3649. })
  3650. },
  3651. LSDataTypeFun(val){
  3652. this.LSDataType = val;
  3653. this.lampHistoryData();
  3654. },
  3655. dataLSTypeFun(val){
  3656. let historicalNavSelect = this.historicalNavSelect;
  3657. this.dataLSType = val;
  3658. if(val == '0'){
  3659. if(historicalNavSelect == 'system_info_log'){
  3660. this.historicalNavSelect = 'lamp_info_log';
  3661. }
  3662. this.lampHistoryData();
  3663. }else{
  3664. if(historicalNavSelect == '3'){
  3665. this.historicalNavSelect = 'lamp_info_log';
  3666. }
  3667. this.currentPageLS = 1;
  3668. this.historicalTableList = this[this.historicalNavSelect+'TableListEN'];
  3669. this.lampcontrolHistorylist(1,0);
  3670. }
  3671. },
  3672. lampHistoryData(){
  3673. let type = this.historicalNavSelect,date = this.screenDateLS[0]+'/'+this.screenDateLS[1];
  3674. if(this.historicalNavSelect == 'lamp_info_log'){
  3675. type = '0';
  3676. }
  3677. if(this.historicalNavSelect == 'battery_info_log'){
  3678. type = '1';
  3679. }
  3680. if(this.historicalNavSelect == 'solar_info_log'){
  3681. type = '2';
  3682. }
  3683. console.log(type,date)
  3684. this.loading.historyEcharts = true;
  3685. baseApi.ajax_post(
  3686. allUrl.project.lampHistoryData,
  3687. {
  3688. username:this.username,
  3689. client_key:this.client_key,
  3690. client_type:'0',
  3691. token:this.token,
  3692. lampid:this.lampId,
  3693. type:type,
  3694. dateType:this.LSDataType,
  3695. date:date,
  3696. },
  3697. {},
  3698. data =>{
  3699. this.loading.historyEcharts = false;
  3700. this.historyDataInfo = data.data;
  3701. if(data.data.list.updatetime){
  3702. this.historyEcharts(data.data.list,type);
  3703. }
  3704. },
  3705. this,()=>{
  3706. this.loading.historyEcharts = false;
  3707. for(let key in this.historyDataInfo){
  3708. this.historyDataInfo[key] = '';
  3709. }
  3710. })
  3711. },
  3712. historyEcharts(data,type){
  3713. let this_ = this,series = [],dataListMax = 3,gridLeft,legendData = [],legendSelected = {};
  3714. if(type == '0'){
  3715. series = [
  3716. {
  3717. name:'Voltage',
  3718. id:'V_0',
  3719. data:data.lampvoltage,
  3720. type: 'line',
  3721. smooth: true,
  3722. color:'#15CA56',
  3723. showSymbol:false,
  3724. },{
  3725. name:'Current',
  3726. id:'A_1',
  3727. data:data.lampcurrent,
  3728. type: 'line',
  3729. smooth: true,
  3730. color:'#F3BC12',
  3731. showSymbol:false,
  3732. },{
  3733. name:'power',
  3734. id:'W_2',
  3735. data:data.lamppower,
  3736. type: 'line',
  3737. smooth: true,
  3738. color:'#3898F8',
  3739. showSymbol:false,
  3740. },{
  3741. name:'brightness',
  3742. id:'%_3',
  3743. data:data.lighteness,
  3744. type: 'line',
  3745. smooth: true,
  3746. color:'#F05904',
  3747. showSymbol:false,
  3748. },
  3749. ];
  3750. legendData = [
  3751. {name:'Voltage',icon:'circle'},
  3752. {name:'Current',icon:'circle'},
  3753. {name:'power',icon:'circle'},
  3754. {name:'brightness',icon:'circle',select:false}
  3755. ];
  3756. legendSelected['Voltage'] = true;
  3757. legendSelected['Current'] = true;
  3758. legendSelected['power'] = true;
  3759. legendSelected['brightness'] = false;
  3760. for(let d of data.lamppower){
  3761. d = parseInt(d);
  3762. if(d > dataListMax){
  3763. dataListMax = d;
  3764. }
  3765. }
  3766. dataListMax = dataListMax +'00'
  3767. gridLeft = dataListMax.length*10;
  3768. }
  3769. if(type == '1'){
  3770. series = [
  3771. {
  3772. name:'Voltage',
  3773. id:'V_0',
  3774. data:data.battvoltage,
  3775. type: 'line',
  3776. smooth: true,
  3777. color:'#15CA56',
  3778. showSymbol:false,
  3779. },{
  3780. name:'Current',
  3781. id:'A_1',
  3782. data:data.batterycurrent,
  3783. type: 'line',
  3784. smooth: true,
  3785. color:'#F3BC12',
  3786. showSymbol:false,
  3787. },{
  3788. name:'power',
  3789. id:'W_2',
  3790. data:data.batterypower,
  3791. type: 'line',
  3792. smooth: true,
  3793. color:'#3898F8',
  3794. showSymbol:false,
  3795. }
  3796. ];
  3797. legendData = [
  3798. {name:'Voltage',icon:'circle'},
  3799. {name:'Current',icon:'circle'},
  3800. {name:'power',icon:'circle'},
  3801. ];
  3802. legendSelected['Voltage'] = true;
  3803. legendSelected['Current'] = true;
  3804. legendSelected['power'] = true;
  3805. for(let d of data.batterypower){
  3806. d = parseInt(d);
  3807. if(d > dataListMax){
  3808. dataListMax = d;
  3809. }
  3810. }
  3811. dataListMax = dataListMax +'00'
  3812. gridLeft = dataListMax.length*10;
  3813. }
  3814. if(type == '2'){
  3815. series = [
  3816. {
  3817. name:'Voltage',
  3818. id:'V_0',
  3819. data:data.solarvoltage,
  3820. type: 'line',
  3821. smooth: true,
  3822. color:'#15CA56',
  3823. showSymbol:false,
  3824. },{
  3825. name:'Current',
  3826. id:'A_1',
  3827. data:data.solarcurrent,
  3828. type: 'line',
  3829. smooth: true,
  3830. color:'#F3BC12',
  3831. showSymbol:false,
  3832. },{
  3833. name:'power',
  3834. id:'W_2',
  3835. data:data.solarpower,
  3836. type: 'line',
  3837. smooth: true,
  3838. color:'#3898F8',
  3839. showSymbol:false,
  3840. },
  3841. ];
  3842. legendData = [
  3843. {name:'Voltage',icon:'circle'},
  3844. {name:'Current',icon:'circle'},
  3845. {name:'power',icon:'circle'},
  3846. ];
  3847. legendSelected['Voltage'] = true;
  3848. legendSelected['Current'] = true;
  3849. legendSelected['power'] = true;
  3850. for(let d of data.solarpower){
  3851. d = parseInt(d);
  3852. if(d > dataListMax){
  3853. dataListMax = d;
  3854. }
  3855. }
  3856. dataListMax = dataListMax +'00'
  3857. gridLeft = dataListMax.length*10;
  3858. }
  3859. if(type == '3'){
  3860. series = [
  3861. {
  3862. name:'Charge',
  3863. id:'AH_0',
  3864. data:data.daychargeah,
  3865. type: 'line',
  3866. smooth: true,
  3867. color:'#15CA56',
  3868. showSymbol:false,
  3869. },{
  3870. name:'Discharge',
  3871. id:'AH_1',
  3872. data:data.daydischarah,
  3873. type: 'line',
  3874. smooth: true,
  3875. color:'#F3BC12',
  3876. showSymbol:false,
  3877. }
  3878. ];
  3879. legendData = [
  3880. {name:'Charge',icon:'circle'},
  3881. {name:'Discharge',icon:'circle'},
  3882. ];
  3883. legendSelected['Charge'] = true;
  3884. legendSelected['Discharge'] = true;
  3885. for(let d of data.daychargeah){
  3886. d = parseInt(d);
  3887. if(d > dataListMax){
  3888. dataListMax = d;
  3889. }
  3890. }
  3891. for(let d of data.daydischarah){
  3892. d = parseInt(d);
  3893. if(d > dataListMax){
  3894. dataListMax = d;
  3895. }
  3896. }
  3897. dataListMax = dataListMax +'00'
  3898. gridLeft = dataListMax.length*10;
  3899. }
  3900. // console.log(data,'------')
  3901. let legendOrient = 'horizontal';
  3902. if(document.body.offsetWidth <1500){
  3903. this_.legendWidth = '180px';
  3904. // if(type == '3'){
  3905. // legendOrient = 'vertical';
  3906. // }
  3907. }else{
  3908. this_.legendWidth = 'auto';
  3909. // legendOrient = 'horizontal';
  3910. }
  3911. this.$nextTick(function(){
  3912. if(document.getElementsByClassName('history_echarts')[0]){
  3913. const myChart = this.$echarts.init(document.getElementsByClassName('history_echarts')[0]);
  3914. let arry = [],hh,month,dd,mm;
  3915. for(let d of data.updatetime){
  3916. d = new Date(d);month = d.getMonth()+1;dd = d.getDate();
  3917. hh = d.getHours()<10?'0'+d.getHours():d.getHours();
  3918. mm = d.getMinutes()<10?'0'+d.getMinutes():d.getMinutes();
  3919. arry.push(month+'-'+dd+' '+hh+':'+mm)
  3920. }
  3921. let option = {
  3922. tooltip:{
  3923. trigger:'axis',
  3924. axisPointer:{
  3925. snap:true,
  3926. lineStyle:{
  3927. width:2,
  3928. color:'rgba(252, 130, 61, 0.19)',
  3929. type:'dashed',
  3930. }
  3931. },
  3932. padding:0,
  3933. backgroundColor:'rgba(0,0,0,0.6)',
  3934. formatter: function (params) {
  3935. var tls,p='';
  3936. for(let key in params){
  3937. // console.log('sapn_'+params[key].seriesId.split('_')[1])
  3938. p=p+'<p><span class="span_'+params[key].seriesId.split('_')[1]+'"></span>'+params[key].seriesName+': '+params[key].data+' '+params[key].seriesId.split('_')[0]+'</p>'
  3939. }
  3940. tls = '<div class="history_echarts_tooltip"><p>'+data.updatetime[params[0].dataIndex]+'</p>'+p+'</div>'
  3941. return tls;
  3942. },
  3943. },
  3944. grid:{
  3945. top:60,
  3946. left:gridLeft,
  3947. bottom:20,
  3948. right:40,
  3949. },
  3950. legend: {
  3951. data:legendData,
  3952. selected:legendSelected,
  3953. orient:legendOrient,
  3954. type: 'scroll',
  3955. left: '20px',
  3956. top: '0px',
  3957. width:this_.legendWidth,
  3958. itemWidth: 12,
  3959. itemHeight: 12,
  3960. textStyle:{
  3961. color:'rgba(102,102,102,1)',
  3962. fontSize:14,
  3963. fontWeight:500,
  3964. },
  3965. },
  3966. xAxis: {
  3967. data: arry,
  3968. type: 'category',
  3969. boundaryGap: false,
  3970. axisLabel:{
  3971. color:'rgba(136, 136, 136, 1)',
  3972. fontSize:'12',
  3973. },
  3974. axisTick:{
  3975. show:false
  3976. },
  3977. axisLine:{
  3978. show:false
  3979. },
  3980. },
  3981. yAxis: {
  3982. type: 'value',
  3983. nameGap:6,
  3984. // interval:6,
  3985. // max:
  3986. axisLabel:{
  3987. color:'rgba(136, 136, 136, 1)',
  3988. fontSize:'12',
  3989. },
  3990. axisTick:{
  3991. show:false
  3992. },
  3993. axisLine:{
  3994. show:false
  3995. },
  3996. splitNumber:4,
  3997. splitLine:{
  3998. lineStyle:{
  3999. color:'rgba(240, 240, 240, 1)',
  4000. }
  4001. },
  4002. },
  4003. series: series,
  4004. };
  4005. myChart.setOption(option,true);
  4006. window.onresize = function(){
  4007. if(document.body.offsetWidth <1500){
  4008. this_.legendWidth = '180px';
  4009. }else{
  4010. this_.legendWidth = 'auto';
  4011. }
  4012. myChart.setOption(option,true);
  4013. myChart.resize();
  4014. }
  4015. }
  4016. })
  4017. },
  4018. historicalNavSelectFun(obj){
  4019. this.historicalNavSelect = obj.model;
  4020. if(this.dataLSType == '0'){
  4021. this.lampHistoryData();
  4022. }else{
  4023. this.currentPageLS = 1;
  4024. this.historicalTableList = this[this.historicalNavSelect+'TableListEN'];
  4025. this.lampcontrolHistorylist(1,0);
  4026. }
  4027. // console.log(this.historicalTableList)
  4028. },
  4029. lampcontrolHistorylist(val,download,callback,error){
  4030. let isDownload;
  4031. if(!download){
  4032. isDownload = 0;
  4033. this.historicalTableLoading = true;
  4034. }else{
  4035. this.loading.exportTableLS = true;
  4036. isDownload = download;
  4037. }
  4038. let date = this.screenDateLS[0]+'/'+this.screenDateLS[1];
  4039. console.log(isDownload,callback,error,date)
  4040. baseApi.ajax_post(
  4041. allUrl.project.lampcontrolHistorylist,
  4042. {
  4043. username:this.username,
  4044. client_key:this.client_key,
  4045. token:this.token,
  4046. lamp_id:this.lampId,
  4047. page:val,
  4048. count:this.zCount,
  4049. datatype:this.historicalNavSelect,
  4050. download:isDownload,
  4051. date:date,
  4052. },
  4053. {},
  4054. data =>{
  4055. // console.log(data,'表格历史数据')
  4056. if(callback){
  4057. callback()
  4058. }
  4059. if(download){
  4060. // var $eleBtn2 = $("#btn2");
  4061. var $eleForm = $("<form method='get'></form>");
  4062. $eleForm.attr("action",data.data.path);
  4063. $(document.body).append($eleForm);
  4064. //提交表单,实现下载
  4065. $eleForm.submit();
  4066. this.loading.exportTableLS = false;
  4067. }else{
  4068. this.historicalTableLoading = false;
  4069. if(data.data.list){
  4070. this.historicalTableData = data.data.list;
  4071. this.totalLS = data.data.total*16;
  4072. let i = (this.currentPageLS - 1)*16+1;
  4073. for(let d of this.historicalTableData){
  4074. let hh1 = '',mm1 = '',hh2 = '',mm2 = '';
  4075. hh1 = parseInt(d.daychargemincurrent/3600);
  4076. mm1 = parseInt((d.daychargemincurrent%3600)/60);
  4077. hh2 = parseInt(d.daydischargemincurrent/3600);
  4078. mm2 = parseInt((d.daydischargemincurrent%3600)/60);
  4079. if(hh1<10){
  4080. hh1 = '0'+hh1;
  4081. }
  4082. if(hh2<10){
  4083. hh2 = '0'+hh2;
  4084. }
  4085. if(mm1<10){
  4086. mm1 = '0'+mm1;
  4087. }
  4088. if(mm2<10){
  4089. mm2 = '0'+mm2;
  4090. }
  4091. d.daychargemincurrent = hh1+':'+mm1;
  4092. d.daydischargemincurrent = hh2+':'+mm2;
  4093. d.LSLD_index = i;
  4094. i++;
  4095. }
  4096. }else{
  4097. this.historicalTableData = [];
  4098. this.totalLS = 0;
  4099. }
  4100. }
  4101. },
  4102. this,()=>{
  4103. if(error){
  4104. error()
  4105. }
  4106. if(download){
  4107. this.loading.exportTableLS = false;
  4108. }else{
  4109. this.historicalTableData = [];
  4110. this.totalLS = 0;
  4111. this.historicalTableLoading = false;
  4112. }
  4113. }
  4114. )
  4115. },
  4116. /*参数弹框*/
  4117. monitorFun(data){
  4118. console.log(data,'-------')
  4119. this.lampId = data.id;
  4120. this.loadtype = data.loadtype;
  4121. this.monitorType = 'loadParameters';
  4122. this.monitorDialog = true;
  4123. this.parameterLoadIsEdit = false;
  4124. this.parameterBatteryIsEdit = false;
  4125. baseApi.ajax_post(
  4126. allUrl.project.workmode,
  4127. {
  4128. username:this.username,
  4129. client_key:this.client_key,
  4130. token:this.token,
  4131. },
  4132. {},
  4133. data =>{
  4134. this.option.workmodeList = [];
  4135. // console.log(data,'路灯负载模式下拉列表')
  4136. for(let key in data.data){
  4137. this.option.workmodeList.push({
  4138. id:key,
  4139. name:data.data[key],
  4140. })
  4141. }
  4142. },
  4143. this)
  4144. this.loadParametersData = this.loadParametersDataOld;
  4145. if(data.loadtype == '1'){
  4146. this.loadParametersListEN = this.catcherloadParametersListENOld
  4147. }else{
  4148. this.loadParametersListEN = this.loadParametersListENOld
  4149. }
  4150. for(let key in this.loadParametersData){
  4151. this.loadParametersData[key] = '';
  4152. }
  4153. this.loadSetting();
  4154. for(let key in this.batteryParametersData){
  4155. this.batteryParametersData[key] = '';
  4156. }
  4157. this.batterySetting();
  4158. },
  4159. loadNoEditFun(){
  4160. this.loadParametersData = Object.assign({},this.loadParametersDataHC);
  4161. this.parameterLoadIsEdit = false;
  4162. },
  4163. batteryNoEditFun(){
  4164. this.batteryParametersData = Object.assign({},this.batteryParametersDataHC)
  4165. this.parameterBatteryIsEdit = false;
  4166. },
  4167. setLoadFun(){
  4168. // console.log(this.batchModificationParameters,'------1')
  4169. let loadParametersData = JSON.parse(JSON.stringify(this.loadParametersData));
  4170. loadParametersData.first_light_time = this.datezhuanhuan(loadParametersData.first_light_time);
  4171. loadParametersData.second_light_time = this.datezhuanhuan(loadParametersData.second_light_time);
  4172. loadParametersData.third_light_time = this.datezhuanhuan(loadParametersData.third_light_time);
  4173. loadParametersData.fourth_light_time = this.datezhuanhuan(loadParametersData.fourth_light_time);
  4174. loadParametersData.fifth_light_time = this.datezhuanhuan(loadParametersData.fifth_light_time);
  4175. loadParametersData.sixth_light_time = this.datezhuanhuan(loadParametersData.sixth_light_time);
  4176. loadParametersData.seventh_light_time = this.datezhuanhuan(loadParametersData.seventh_light_time);
  4177. loadParametersData.eighth_light_time = this.datezhuanhuan(loadParametersData.eighth_light_time);
  4178. loadParametersData.ninth_light_time = this.datezhuanhuan(loadParametersData.ninth_light_time);
  4179. loadParametersData.tenth_light_time = this.datezhuanhuan(loadParametersData.tenth_light_time);
  4180. if(this.batchModificationParameters){
  4181. this.loading.setLoadFun = true;
  4182. baseApi.websocket1(allUrl.websocket.wss,data=>{
  4183. if(data.data.status == '1'){
  4184. baseApi.ajax_post_ws(
  4185. allUrl.project.setLoad,
  4186. {
  4187. username:this.username,
  4188. client_key:this.client_key,
  4189. token:this.token,
  4190. lamp_id:this.lampId,
  4191. clientid:data.data.clientid,
  4192. ...loadParametersData,
  4193. },
  4194. this,
  4195. )
  4196. }
  4197. if(data.data.status == '2'){
  4198. if(data.data.code == '0000'){
  4199. this.$message({
  4200. showClose: true,
  4201. message:data.data.msg,
  4202. type: 'success'
  4203. });
  4204. this.loading.setLoadFun = false;
  4205. this.parameterLoadIsEdit = false;
  4206. }else{
  4207. this.$message({
  4208. showClose: true,
  4209. message:data.data.msg,
  4210. type: 'warning'
  4211. });
  4212. this.loading.setLoadFun = false;
  4213. this.parameterLoadIsEdit = false;
  4214. }
  4215. }
  4216. },() => {
  4217. this.loading.setLoadFun = false;
  4218. },this)
  4219. }else{
  4220. let this_ = this;
  4221. let i = 0;
  4222. let type = 'off';
  4223. this.loading.setLoadFun = false;
  4224. this.parameterLoadIsEdit = false;
  4225. this.monitorDialog = false;
  4226. this.giveCommandDialog = true;
  4227. this.giveCommandZS = this.multipleSelection.length;
  4228. this.giveCommandCG = 0;
  4229. this.giveCommandJD = 0;
  4230. this.giveCommandJournal = [];
  4231. console.log(this.multipleSelection)
  4232. let ids = '';
  4233. let ids_length = this.multipleSelection.length;
  4234. for(let d of this.multipleSelection){
  4235. if(ids == ''){
  4236. ids = d.id;
  4237. }else{
  4238. ids+=','+d.id;
  4239. }
  4240. }
  4241. baseApi.websocket1(allUrl.websocket.wss,(data,websocket)=>{
  4242. this_.loading.batchProcessingFun = true;
  4243. if(data.data.status == '1'){
  4244. baseApi.ajax_post_ws(
  4245. allUrl.project.setLoad,
  4246. {
  4247. username:this_.username,
  4248. client_key:this_.client_key,
  4249. token:this_.token,
  4250. lamp_id:ids,
  4251. clientid:data.data.clientid,
  4252. ...loadParametersData,
  4253. },
  4254. this,
  4255. )
  4256. }
  4257. if(data.data.status == '2'){
  4258. if(data.data.code == '0000'){
  4259. this_.$notify({
  4260. title: 'Successful operation',
  4261. message: 'Lamp '+data.data.data.number,
  4262. type: 'success'
  4263. });
  4264. this_.giveCommandJournal.push({
  4265. time:this_.GMTToZero2(new Date()),
  4266. text:data.data.msg,
  4267. number:data.data.data.number,
  4268. type:true
  4269. })
  4270. i++;
  4271. this_.giveCommandCG ++;
  4272. this_.giveCommandJD = i;
  4273. if(i >= ids_length){
  4274. this_.loading.batchProcessingFun = false;
  4275. this_.batchProcessing = type;
  4276. this_.getLightList(this_.currentPage);
  4277. websocket.close();
  4278. }
  4279. }else{
  4280. this_.$notify.error({
  4281. title: 'Operation failed',
  4282. message: 'Lamp '+data.data.data.number+':'+data.data.msg
  4283. });
  4284. this_.giveCommandJournal.push({
  4285. time:this_.GMTToZero2(new Date()),
  4286. text:data.data.msg,
  4287. number:data.data.data.number,
  4288. type:false
  4289. })
  4290. i++;
  4291. this_.giveCommandJD = i;
  4292. if(i >= ids_length){
  4293. this_.loading.batchProcessingFun = false;
  4294. this_.batchProcessing = type;
  4295. this_.getLightList(this_.currentPage);
  4296. websocket.close();
  4297. }
  4298. }
  4299. }
  4300. },() => {
  4301. this_.loading.batchProcessingFun = false;
  4302. },this_)
  4303. }
  4304. },
  4305. setProjectLoadFun(){
  4306. this.loading.setProjectLoadFun = true;
  4307. baseApi.ajax_post(
  4308. allUrl.project.projectSetPramData,
  4309. {
  4310. // controlType:this.lampProtocoltype,
  4311. username:this.username,
  4312. client_key:this.client_key,
  4313. token:this.token,
  4314. projectid:this.projectId,
  4315. ...this.loadParametersData,
  4316. },
  4317. {},
  4318. data => {
  4319. if(data.data.code == '0000'){
  4320. console.log(data)
  4321. this.$message({
  4322. showClose: true,
  4323. message:data.msg,
  4324. type: 'success'
  4325. });
  4326. this.loading.setProjectLoadFun = false;
  4327. this.parameterLoadIsEdit = false;
  4328. }else{
  4329. this.$message({
  4330. showClose: true,
  4331. message:data.msg,
  4332. type: 'warning'
  4333. });
  4334. this.loading.setProjectLoadFun = false;
  4335. this.parameterLoadIsEdit = false;
  4336. }
  4337. },
  4338. this,
  4339. () => {
  4340. this.loading.setProjectLoadFun = false;
  4341. },
  4342. )
  4343. },
  4344. setBatteryFun(){
  4345. console.log(this.batchModificationParameters,'-----2')
  4346. if(this.batchModificationParameters){
  4347. this.loading.setBatteryFun = true;
  4348. let parameter = {};
  4349. let obj = [];
  4350. let objData = {};
  4351. obj = this['batteryParametersList'+this.batteryParametersData.batterytype+'EN']
  4352. for(let d of obj){
  4353. console.log(d.model)
  4354. parameter[d.model] = this.batteryParametersData[d.model]
  4355. }
  4356. objData = {
  4357. username:this.username,
  4358. client_key:this.client_key,
  4359. token:this.token,
  4360. lamp_id:this.lampId,
  4361. batterytype:this.batteryParametersData.batterytype,
  4362. ...parameter,
  4363. }
  4364. // console.log(data)
  4365. baseApi.websocket1(allUrl.websocket.wss,data=>{
  4366. if(data.data.status == '1'){
  4367. baseApi.ajax_post_ws(
  4368. allUrl.project.setBattery,
  4369. {
  4370. clientid:data.data.clientid,
  4371. ...objData
  4372. },
  4373. this,
  4374. )
  4375. }
  4376. if(data.data.status == '2'){
  4377. if(data.data.code == '0000'){
  4378. this.$message({
  4379. showClose: true,
  4380. message:data.data.msg,
  4381. type: 'success'
  4382. });
  4383. this.loading.setBatteryFun = false;
  4384. this.parameterBatteryIsEdit = false;
  4385. }else{
  4386. this.$message({
  4387. showClose: true,
  4388. message:data.data.msg,
  4389. type: 'warning'
  4390. });
  4391. this.loading.setBatteryFun = false;
  4392. this.parameterBatteryIsEdit = false;
  4393. }
  4394. }
  4395. },() => {
  4396. this.loading.setBatteryFun = false;
  4397. },this)
  4398. // baseApi.ajax_post(
  4399. // allUrl.project.setBattery,
  4400. // {
  4401. // username:this.username,
  4402. // client_key:this.client_key,
  4403. // token:this.token,
  4404. // lamp_id:this.lampId,
  4405. // batterytype:this.batteryParametersData.batterytype,
  4406. // ...data,
  4407. // },
  4408. // {},
  4409. // data =>{
  4410. // this.$message({
  4411. // showClose: true,
  4412. // message:data.msg,
  4413. // type: 'success'
  4414. // });
  4415. // this.loading.setBatteryFun = false;
  4416. // this.parameterBatteryIsEdit = false;
  4417. // },
  4418. // this,
  4419. // data =>{
  4420. // this.$message({
  4421. // showClose: true,
  4422. // message:data.msg,
  4423. // type: 'warning'
  4424. // });
  4425. // this.loading.setBatteryFun = false;
  4426. // this.parameterBatteryIsEdit = false;
  4427. // }
  4428. // )
  4429. }else{
  4430. let this_ = this;
  4431. let i = 0;
  4432. let type = 'off';
  4433. this.loading.setBatteryFun = false;
  4434. this.parameterBatteryIsEdit = false;
  4435. this.monitorDialog = false;
  4436. this.giveCommandDialog = true;
  4437. this.giveCommandZS = this.multipleSelection.length;
  4438. this.giveCommandCG = 0;
  4439. this.giveCommandJD = 0;
  4440. this.giveCommandJournal = [];
  4441. console.log(this.multipleSelection)
  4442. let ids = '';
  4443. let ids_length = this.multipleSelection.length;
  4444. for(let d of this.multipleSelection){
  4445. if(ids == ''){
  4446. ids = d.id;
  4447. }else{
  4448. ids+=','+d.id;
  4449. }
  4450. }
  4451. baseApi.websocket1(allUrl.websocket.wss,(data,websocket)=>{
  4452. this_.loading.batchProcessingFun = true;
  4453. if(data.data.status == '1'){
  4454. baseApi.ajax_post_ws(
  4455. allUrl.project.setBattery,
  4456. {
  4457. username:this_.username,
  4458. client_key:this_.client_key,
  4459. token:this_.token,
  4460. lamp_id:ids,
  4461. clientid:data.data.clientid,
  4462. ...this_.batteryParametersData,
  4463. },
  4464. this_,
  4465. )
  4466. }
  4467. if(data.data.status == '2'){
  4468. if(data.data.code == '0000'){
  4469. this_.$notify({
  4470. title: 'Successful operation',
  4471. message: 'Lamp '+data.data.data.number,
  4472. type: 'success'
  4473. });
  4474. this_.giveCommandJournal.push({
  4475. time:this_.GMTToZero2(new Date()),
  4476. text:data.data.msg,
  4477. number:data.data.data.number,
  4478. type:true
  4479. })
  4480. i++;
  4481. this_.giveCommandCG ++;
  4482. this_.giveCommandJD = i;
  4483. if(i >= ids_length){
  4484. this_.loading.batchProcessingFun = false;
  4485. this_.batchProcessing = type;
  4486. this_.getLightList(this_.currentPage);
  4487. websocket.close();
  4488. }
  4489. }else{
  4490. this_.$notify.error({
  4491. title: 'Operation failed',
  4492. message: 'Lamp '+data.data.data.number+':'+data.data.msg
  4493. });
  4494. this_.giveCommandJournal.push({
  4495. time:this_.GMTToZero2(new Date()),
  4496. text:data.data.msg,
  4497. number:data.data.data.number,
  4498. type:false
  4499. })
  4500. i++;
  4501. this_.giveCommandJD = i;
  4502. if(i >= ids_length){
  4503. this_.loading.batchProcessingFun = false;
  4504. this_.batchProcessing = type;
  4505. this_.getLightList(this_.currentPage);
  4506. websocket.close();
  4507. }
  4508. }
  4509. }
  4510. },() => {
  4511. this_.loading.batchProcessingFun = false;
  4512. },this_)
  4513. }
  4514. },
  4515. loadSettingFun(){
  4516. for(let key in this.loadParametersData){
  4517. this.loadParametersData[key] = '';
  4518. }
  4519. this.loadSetting();
  4520. },
  4521. loadSetting(callback,error){
  4522. this.loadSettingIsTrue = false;
  4523. this.loading.loadSetting = true;
  4524. this.batchModificationParameters = true;
  4525. baseApi.ajax_post(
  4526. allUrl.project.loadSetting,
  4527. {
  4528. username:this.username,
  4529. client_key:this.client_key,
  4530. token:this.token,
  4531. lamp_id:this.lampId,
  4532. },
  4533. {},
  4534. data =>{
  4535. let arr = Object.keys(data);
  4536. if(arr.length != 0){
  4537. if(callback){
  4538. callback(data)
  4539. }
  4540. this.$message({
  4541. showClose: true,
  4542. message:'Get load parameters successfully',
  4543. type: 'success'
  4544. });
  4545. data.data.first_light_time = new Date('2018-08-06 '+data.data.first_light_time);
  4546. data.data.second_light_time = new Date('2018-08-06 '+data.data.second_light_time);
  4547. data.data.third_light_time = new Date('2018-08-06 '+data.data.third_light_time);
  4548. data.data.fourth_light_time = new Date('2018-08-06 '+data.data.fourth_light_time);
  4549. data.data.fifth_light_time = new Date('2018-08-06 '+data.data.fifth_light_time);
  4550. data.data.sixth_light_time = new Date('2018-08-06 '+data.data.sixth_light_time);
  4551. data.data.seventh_light_time = new Date('2018-08-06 '+data.data.seventh_light_time);
  4552. data.data.eighth_light_time = new Date('2018-08-06 '+data.data.eighth_light_time);
  4553. data.data.ninth_light_time = new Date('2018-08-06 '+data.data.ninth_light_time);
  4554. data.data.tenth_light_time = new Date('2018-08-06 '+data.data.tenth_light_time);
  4555. this.loadParametersDataHC = Object.assign({},data.data)
  4556. for(let key in data.data){
  4557. this.loadParametersData[key] = data.data[key]
  4558. }
  4559. // this.loadParametersDataHC = Object.assign({},this.loadParametersData);
  4560. this.loadSettingIsTrue = true;
  4561. this.loading.loadSetting = false;
  4562. // console.log(data,'获取负载参数成功')
  4563. }
  4564. },
  4565. this,
  4566. data =>{
  4567. if(error){
  4568. error(data)
  4569. }
  4570. if(data.status == '0006'){
  4571. this.loadSettingIsTrue = true;
  4572. this.loading.loadSetting = false;
  4573. }else{
  4574. this.loadSettingIsTrue = false;//555
  4575. this.loading.loadSetting = false;
  4576. }
  4577. this.$message({
  4578. showClose: true,
  4579. message:data.msg,
  4580. type: 'warning'
  4581. });
  4582. }
  4583. )
  4584. },
  4585. batterySettingFun(){
  4586. for(let key in this.batteryParametersData){
  4587. this.batteryParametersData[key] = '';
  4588. }
  4589. this.batterySetting();
  4590. },
  4591. batterySetting(callback,error){
  4592. this.batterySettingIsTrue = false;
  4593. this.loading.batterySetting = true;
  4594. this.batchModificationParameters = true;
  4595. baseApi.ajax_post(
  4596. allUrl.project.batterySetting,
  4597. {
  4598. username:this.username,
  4599. client_key:this.client_key,
  4600. token:this.token,
  4601. lamp_id:this.lampId,
  4602. },
  4603. {},
  4604. data =>{
  4605. if(callback){
  4606. callback(data)
  4607. }
  4608. this.$message({
  4609. showClose: true,
  4610. message:'Get battery parameters successfully',
  4611. type: 'success'
  4612. });
  4613. this.batteryParametersDataHC = Object.assign({},data.data)
  4614. for(let key in data.data){
  4615. this.batteryParametersData[key] = data.data[key]
  4616. // console.log(key,'------')
  4617. }
  4618. // this.batteryParametersData.batterytype = data.data.batterytype;
  4619. console.log(this.batteryParametersData,data.data,'------------')
  4620. this.batterySettingIsTrue = true;
  4621. this.loading.batterySetting = false;
  4622. // console.log(data,'获取蓄电池参数成功')
  4623. },
  4624. this,
  4625. data =>{
  4626. if(error){
  4627. error(data)
  4628. }
  4629. if(data.status == '0006'){
  4630. this.batterySettingIsTrue = true;
  4631. this.loading.batterySetting = false;
  4632. }else{
  4633. this.batterySettingIsTrue = false;//555
  4634. this.loading.batterySetting = false;
  4635. }
  4636. this.$message({
  4637. showClose: true,
  4638. message:data.msg,
  4639. type: 'warning'
  4640. });
  4641. }
  4642. )
  4643. },
  4644. //百度坐标转高德(传入经度、纬度)
  4645. bd_decrypt(bd_lng, bd_lat) {
  4646. var X_PI = Math.PI * 3000.0 / 180.0;
  4647. var x = bd_lng - 0.0065;
  4648. var y = bd_lat - 0.006;
  4649. var z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * X_PI);
  4650. var theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * X_PI);
  4651. var gg_lng = z * Math.cos(theta);
  4652. var gg_lat = z * Math.sin(theta);
  4653. return {lng: gg_lng, lat: gg_lat}
  4654. },
  4655. //高德坐标转百度(传入经度、纬度)
  4656. bd_encrypt(gg_lng, gg_lat) {
  4657. var X_PI = Math.PI * 3000.0 / 180.0;
  4658. var x = gg_lng, y = gg_lat;
  4659. var z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * X_PI);
  4660. var theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * X_PI);
  4661. var bd_lng = z * Math.cos(theta) + 0.0065;
  4662. var bd_lat = z * Math.sin(theta) + 0.006;
  4663. return {
  4664. bd_lat: bd_lat,
  4665. bd_lng: bd_lng
  4666. };
  4667. }
  4668. },
  4669. watch:{
  4670. "lightControlData.devicetype":function (){
  4671. let list = JSON.parse(JSON.stringify(this.lightControlListEN))
  4672. for(let key in list){
  4673. if((list[key].model == 'network_id' && this.lightControlData.devicetype == '1')||(list[key].model == 'protocoltype' && this.lightControlData.devicetype == '0')){
  4674. list.splice(key,1)
  4675. }
  4676. }
  4677. // this.lightControlListEN_for = list;
  4678. this.$set(this,'lightControlListEN_for',list)
  4679. }
  4680. }
  4681. }
  4682. </script>
  4683. <style type="text/css" lang="less">
  4684. .projectManagement_template{
  4685. width: 100%;
  4686. height: 100%;
  4687. // height: 105rem;
  4688. min-height: 50rem;
  4689. // min-width: 120rem;
  4690. margin: 0 auto;
  4691. overflow: hidden;
  4692. position: relative;
  4693. .nav_top{
  4694. display: flex;
  4695. justify-content: space-between;
  4696. width:100%;
  4697. height:3.3rem;line-height: 3.3rem;
  4698. background:rgba(255,255,255,1);
  4699. border:0.1rem solid rgba(240,240,240,1);
  4700. .left_title{
  4701. display: flex;
  4702. align-items: center;
  4703. img{
  4704. display: inline-block;
  4705. // width: 1.2rem;
  4706. height: 1rem;
  4707. margin: 0 0.6rem;
  4708. }
  4709. .span{
  4710. font-size:1rem;
  4711. font-family:HiraginoSansGB-W3,HiraginoSansGB;
  4712. font-weight:normal;
  4713. color:rgba(101,112,133,1);
  4714. }
  4715. }
  4716. .right_operation{
  4717. display: flex;
  4718. align-items: center;
  4719. padding-right: 1.6rem;
  4720. .el-dropdown{
  4721. width: 10rem;
  4722. height: 2rem;line-height: 2rem;
  4723. background:rgba(246,248,250,1);
  4724. border-radius: 0.2rem;
  4725. margin-right: 0.8rem;
  4726. .el-dropdown-link{
  4727. cursor: pointer;
  4728. height: 100%;
  4729. display: flex;
  4730. align-items: center;
  4731. justify-content: space-between;
  4732. padding: 0 0.8rem;
  4733. font-size:1rem;
  4734. font-family:PingFang-SC-Medium,PingFang-SC;
  4735. font-weight:500;
  4736. color:rgba(101,112,133,1);
  4737. }
  4738. }
  4739. .el-input{
  4740. width: 16.5rem;
  4741. height: 2rem;line-height: 2rem;
  4742. .el-input__inner{
  4743. height: 2rem;line-height: 2rem;
  4744. background:rgba(246,248,250,1);
  4745. border: none;
  4746. }
  4747. .el-input__icon{
  4748. width: 1.8rem;
  4749. height: 2rem;line-height: 2rem;
  4750. border-top-right-radius: 0.2rem;
  4751. border-bottom-right-radius: 0.2rem;
  4752. background:#FC8440;
  4753. color: #fff;
  4754. font-size: 1rem;
  4755. cursor: pointer;
  4756. position: absolute;
  4757. top: 0;
  4758. right: 0;
  4759. }
  4760. }
  4761. .btn{
  4762. margin-left: 0.6rem;
  4763. display: flex;
  4764. align-items: center;
  4765. padding: 0.5rem 1rem;
  4766. height:2rem;line-height: 2rem;
  4767. background:rgba(255,255,255,1);
  4768. border-radius:0.2rem 0.1rem 0.1rem 0.2rem;
  4769. border:0.1rem solid rgba(240,240,240,1);
  4770. cursor: pointer;
  4771. font-size:1rem;
  4772. font-family:PingFang-SC-Medium,PingFang-SC;
  4773. font-weight:500;
  4774. color:rgba(51,51,51,1);
  4775. img{
  4776. height: 1.2rem;
  4777. margin-right: 0.5rem;
  4778. }
  4779. }
  4780. }
  4781. }
  4782. .projectManagement_main{
  4783. background:rgba(246,248,250,1);
  4784. padding: 0.8rem 1.5rem 1.5rem;
  4785. height: calc(100% - 3.3rem);
  4786. position: relative;
  4787. .side_bar_left{
  4788. position: absolute;
  4789. left:0rem;
  4790. height: calc(100% - 2.2rem);
  4791. }
  4792. .main_top{
  4793. // margin-top: 0.8rem;
  4794. display: flex;
  4795. .main_top_left{
  4796. width:82.5rem;
  4797. height:11.6rem;
  4798. padding: 0rem 0 0 19rem;
  4799. // background:linear-gradient(134deg,rgba(252,169,64,1) 0%,rgba(252,132,64,1) 100%);
  4800. background-image: url(../img/project_box1_bg.png);
  4801. background-position: center;
  4802. background-size: 100% 100%;
  4803. border-radius:0.3rem;
  4804. display: flex;
  4805. .main_top_left_left{
  4806. flex: 1;
  4807. .title{
  4808. margin-top: 1.8rem;
  4809. display: flex;
  4810. align-items: center;
  4811. justify-content: space-between;
  4812. height: 1.6rem;
  4813. .l_text{
  4814. .span1{
  4815. font-size:1.33rem;
  4816. font-family:PingFangSC-Medium,PingFang SC;
  4817. font-weight:500;
  4818. color:rgba(255,255,255,1);
  4819. }
  4820. .span2{
  4821. margin-left: 1rem;
  4822. font-size:1rem;
  4823. font-family:PingFangSC-Regular,PingFang SC;
  4824. font-weight:400;
  4825. color:rgba(255,255,255,1);
  4826. }
  4827. }
  4828. .r_btn{
  4829. margin-right: 3rem;
  4830. width:1.6rem;
  4831. height:1.6rem;line-height: 1.6rem;
  4832. text-align: center;
  4833. background:rgba(255,255,255,0.1);
  4834. border-radius:0.2rem;
  4835. cursor: pointer;
  4836. i{
  4837. font-size: 1rem;
  4838. color:rgba(255, 255, 255, 0.8);
  4839. }
  4840. }
  4841. }
  4842. .p{
  4843. margin-top: 0.6rem;
  4844. display: flex;
  4845. align-items: center;
  4846. i{
  4847. font-size: 1rem;
  4848. color: #fff;
  4849. }
  4850. span{
  4851. margin-left: 0.3rem;
  4852. font-size:1rem;
  4853. font-family:PingFangSC-Medium,PingFang SC;
  4854. font-weight:500;
  4855. color:rgba(255,255,255,0.6);
  4856. }
  4857. }
  4858. .data_bpx{
  4859. margin-top: 1.2rem;
  4860. display: flex;
  4861. height:3.8rem;
  4862. border:0.05rem solid rgba(253,195,148,1);
  4863. margin-right: 3rem;
  4864. .li{
  4865. flex: 1;
  4866. text-align:center;
  4867. border-right:0.05rem solid rgba(253,195,148,1);;
  4868. .p1{
  4869. margin-top: 0.5rem;
  4870. font-size:1.3rem;
  4871. font-family:PingFangSC-Regular,PingFang SC;
  4872. font-weight:400;
  4873. color:rgba(255,255,255,1);
  4874. .span2{
  4875. margin-left: 0.3rem;
  4876. font-size:1rem;
  4877. font-family:PingFangSC-Regular,PingFang SC;
  4878. font-weight:400;
  4879. color:rgba(255,255,255,0.5);
  4880. }
  4881. }
  4882. .p2{
  4883. font-size:1rem;
  4884. font-family:PingFangSC-Regular,PingFang SC;
  4885. font-weight:400;
  4886. color:rgba(255,255,255,0.7);
  4887. }
  4888. }
  4889. }
  4890. }
  4891. .main_top_left_right{
  4892. width: 18.8rem;
  4893. border-left: 0.1rem dotted #fff;
  4894. padding-top: 0.8rem;
  4895. padding-left: 0.8rem;
  4896. .box{
  4897. margin-bottom: 0.6rem;
  4898. .p1{
  4899. font-size:1rem;
  4900. font-family:PingFangSC-Regular,PingFang SC;
  4901. font-weight:400;
  4902. color:rgba(255,255,255,1);
  4903. position: relative;
  4904. i{
  4905. position: absolute;
  4906. display: inline-block;
  4907. top: 0.3rem;
  4908. left: -1.2rem;
  4909. width:0.5rem;
  4910. height:0.5rem;
  4911. background:rgba(252,134,64,1);
  4912. border:0.1rem solid rgba(255,201,54,1);
  4913. border-radius: 50%;
  4914. }
  4915. }
  4916. .p2{
  4917. margin-top: 0.2rem;
  4918. font-size:1rem;
  4919. font-family:PingFangSC-Regular,PingFang SC;
  4920. font-weight:400;
  4921. color:rgba(255,255,255,0.6);
  4922. }
  4923. }
  4924. }
  4925. }
  4926. .main_top_right{
  4927. margin-left: 0.8rem;
  4928. flex: 1;
  4929. height:11.8rem;
  4930. background:rgba(255,255,255,1);
  4931. border-radius:0.3rem;
  4932. border:0.1rem solid rgba(240,240,240,1);
  4933. .weather_top{
  4934. display: flex;
  4935. justify-content: space-between;
  4936. padding: 1.4rem 1.6rem 0 1.6rem;
  4937. .weather_top_l{
  4938. display: flex;
  4939. height: 2.8rem;
  4940. .box1{
  4941. img{
  4942. height: 2.8rem;
  4943. }
  4944. }
  4945. .box2{
  4946. margin-left: 0.5rem;
  4947. }
  4948. .p1{
  4949. font-size:1.2rem;
  4950. font-family:PingFangSC-Regular,PingFang SC;
  4951. font-weight:400;
  4952. color:rgba(51,51,51,1);
  4953. }
  4954. }
  4955. .p2{
  4956. font-size:1rem;
  4957. font-family:PingFangSC-Regular,PingFang SC;
  4958. font-weight:400;
  4959. color:rgba(101,112,133,1);
  4960. }
  4961. .weather_top_r{
  4962. display: flex;
  4963. .box1,.box2{
  4964. text-align:center;
  4965. img{
  4966. height: 1.6rem;
  4967. }
  4968. }
  4969. .box2{
  4970. margin-left: 2.2rem;
  4971. }
  4972. .box3{
  4973. font-size:2rem;
  4974. font-family:PingFang-SC-Regular,PingFang-SC;
  4975. font-weight:400;
  4976. color:rgba(34,34,34,1);
  4977. span{
  4978. position: relative;
  4979. margin-left: 1.2rem;
  4980. padding-left: 0.8rem;
  4981. top: 0.2rem;
  4982. border-left: 0.1rem dotted rgba(198, 205, 213, 1);
  4983. }
  4984. }
  4985. }
  4986. }
  4987. .weather_top_bottom{
  4988. display: flex;
  4989. margin-top: 0.7rem;
  4990. padding: 0 1.6rem;
  4991. .li{
  4992. flex: 1;
  4993. height:5.8rem;
  4994. margin-right: 1rem;
  4995. background:rgba(251,252,253,1);
  4996. border-radius:0.42rem;
  4997. border:0.08rem solid rgba(235,239,242,1);
  4998. text-align:center;
  4999. &:last-child{
  5000. margin-right: 0;
  5001. }
  5002. .p1{
  5003. font-size:1rem;
  5004. font-family:AlibabaPuHuiTiR;
  5005. color:rgba(101,112,133,1);
  5006. }
  5007. img{
  5008. margin: 0.2rem 0 0.2rem;
  5009. height: 1.8rem;
  5010. }
  5011. .p2{
  5012. font-size:1rem;
  5013. font-family:PingFangSC-Regular,PingFang SC;
  5014. font-weight:400;
  5015. color:rgba(51,51,51,1);
  5016. }
  5017. }
  5018. }
  5019. }
  5020. }
  5021. .main_table{
  5022. height: calc(100% - 12.4rem);
  5023. margin-top: 0.8rem;
  5024. background-color: #fff;
  5025. border:0.08rem solid rgba(240,240,240,1);
  5026. padding: 0 1.6rem;
  5027. .table_top{
  5028. padding: 1.3rem 0 0.8rem;
  5029. display: flex;
  5030. justify-content: space-between;
  5031. background-color: #fff;
  5032. .table_top_l{
  5033. display: flex;
  5034. .el-dropdown{
  5035. width: 10rem;
  5036. height: 2rem;line-height: 2rem;
  5037. background:rgba(246,248,250,1);
  5038. border-radius: 0.2rem;
  5039. margin-right: 0.8rem;
  5040. .el-dropdown-link{
  5041. cursor: pointer;
  5042. height: 100%;
  5043. display: flex;
  5044. align-items: center;
  5045. justify-content: space-between;
  5046. padding: 0 0.8rem;
  5047. font-size:1rem;
  5048. font-family:PingFang-SC-Medium,PingFang-SC;
  5049. font-weight:500;
  5050. color:rgba(101,112,133,1);
  5051. }
  5052. }
  5053. .nav_box{
  5054. height:2rem;line-height: 2rem;
  5055. background:rgba(246,248,250,1);
  5056. border-radius:0.2rem;
  5057. display: flex;
  5058. .li{
  5059. padding: 0 1rem;
  5060. font-size:1rem;
  5061. font-family:PingFangSC-Regular,PingFang SC;
  5062. font-weight:400;
  5063. color:rgba(101,112,133,1);
  5064. cursor: pointer;
  5065. &.select{
  5066. background:rgba(252,132,64,1);
  5067. box-shadow:0rem 0.17rem 0.5rem 0rem rgba(252,132,64,0.3);
  5068. border-radius:0.2rem;
  5069. font-size:1rem;
  5070. font-family:PingFang-SC-Medium,PingFang-SC;
  5071. font-weight:500;
  5072. color:rgba(255,255,255,1);
  5073. }
  5074. }
  5075. }
  5076. .left_button{
  5077. display: flex;
  5078. >span{
  5079. height:2rem;line-height:2rem;
  5080. font-size: 1rem;
  5081. font-family: PingFangSC-Regular, PingFang SC;
  5082. font-weight: 400;
  5083. color:rgba(101,112,133,1);
  5084. }
  5085. >div{
  5086. margin-left: 1rem;
  5087. padding: 0 0.5rem;
  5088. height:2rem;line-height:2rem;
  5089. border: 1px solid #E8E8E8;
  5090. cursor:pointer;
  5091. >span{
  5092. font-size: 1rem;
  5093. font-family: PingFangSC-Regular, PingFang SC;
  5094. font-weight: 400;
  5095. color:rgba(101,112,133,1);
  5096. }
  5097. }
  5098. .lampcontrol_type_select{
  5099. >span{
  5100. color: #FC8440;
  5101. }
  5102. }
  5103. .dimming_slider_box{
  5104. display: flex;
  5105. // width: 15rem;
  5106. .el-slider{
  5107. position: relative;
  5108. top: 0;
  5109. width: 5rem;
  5110. .el-slider__runway{
  5111. margin: 0.7rem 0 0.7rem 1rem;
  5112. height: 0.6rem;
  5113. .el-slider__bar{
  5114. background-color: #fc8440;
  5115. height: 0.6rem;
  5116. }
  5117. .el-slider__button-wrapper{
  5118. top: -0.5rem;
  5119. width: 1.2rem;height: 1.2rem;
  5120. .el-slider__button{
  5121. width:100%;height: 100%;
  5122. background:url(../img/GIS/Lamp_icon-pre.png);
  5123. background-size: 100% 100%;
  5124. border:0px;
  5125. }
  5126. }
  5127. }
  5128. }
  5129. .span_last{
  5130. float: right;
  5131. color: #FC8440;
  5132. margin-left: 27px;
  5133. }
  5134. }
  5135. >:nth-child(6){
  5136. border: 0px;
  5137. color: #FE7325;
  5138. margin-left: 0px;
  5139. span{
  5140. color: #FC8440;
  5141. text-decoration:underline;
  5142. cursor:pointer;
  5143. }
  5144. }
  5145. >div:nth-child(7){
  5146. border: 0px;
  5147. color: #FE7325;
  5148. padding: 0px;
  5149. span{
  5150. color: #888888;
  5151. text-decoration:underline;
  5152. cursor:pointer;
  5153. }
  5154. }
  5155. .wxzzt{
  5156. span{
  5157. color: #666666;
  5158. }
  5159. }
  5160. .el-loading-spinner{
  5161. height: 100%;
  5162. top: 0;
  5163. margin-top: 0;
  5164. .circular{
  5165. height: 100%;
  5166. width: 100%;
  5167. }
  5168. }
  5169. }
  5170. }
  5171. .table_top_r{
  5172. display: flex;
  5173. .btn{
  5174. padding: 0 0.5rem;
  5175. img{
  5176. height: 1.2rem;
  5177. }
  5178. }
  5179. }
  5180. .btn{
  5181. margin-left: 0.6rem;
  5182. display: flex;
  5183. align-items: center;
  5184. padding: 0.5rem 1rem;
  5185. height:2rem;line-height: 2rem;
  5186. background:rgba(255,255,255,1);
  5187. border-radius:0.2rem 0.1rem 0.1rem 0.2rem;
  5188. border:0.1rem solid rgba(240,240,240,1);
  5189. cursor: pointer;
  5190. font-size:1rem;
  5191. font-family:PingFang-SC-Medium,PingFang-SC;
  5192. font-weight:500;
  5193. color:rgba(51,51,51,1);
  5194. i{
  5195. font-size: 1.2rem;
  5196. color: rgba(252, 137, 64, 1);
  5197. }
  5198. span{
  5199. margin-left: 0.5rem;
  5200. }
  5201. }
  5202. }
  5203. .el-table{
  5204. width: 100%;
  5205. th,td{
  5206. padding: 0;
  5207. >.cell{
  5208. padding: 0 0.5rem;
  5209. }
  5210. }
  5211. th{
  5212. height: 3.33rem;line-height: 3.33rem;
  5213. background:rgba(246,248,250,1);
  5214. font-size:1rem;
  5215. font-family:PingFang-SC-Medium,PingFang-SC;
  5216. font-weight:500;
  5217. color:rgba(102,102,102,1);
  5218. }
  5219. td{
  5220. height: 4.2rem;line-height: 4.2rem;
  5221. font-size:1rem;
  5222. font-family:PingFangSC-Medium,PingFang SC;
  5223. font-weight:500;
  5224. color:rgba(51,51,51,1);
  5225. }
  5226. // tr:hover>td{
  5227. // background: rgba(246, 248, 250, 1);
  5228. // >.cell{
  5229. // font-family:PingFangSC-Semibold,PingFang SC;
  5230. // font-weight:600;
  5231. // }
  5232. // }
  5233. .btn{
  5234. padding: 0.5rem 0.5rem;
  5235. cursor: pointer;
  5236. .iconfont{
  5237. font-size: 1rem;
  5238. color: rgba(163, 175, 187, 1);
  5239. }
  5240. }
  5241. .status{
  5242. display: flex;align-items: center;justify-content: center;
  5243. img{
  5244. width: 1.3rem;
  5245. }
  5246. }
  5247. .Brightness{
  5248. padding: 0 1rem;
  5249. .progress_outer{
  5250. height:1.5rem;
  5251. position: relative;
  5252. cursor: pointer;
  5253. border-radius:0.75rem;
  5254. overflow: hidden;
  5255. .progress_inner{
  5256. height:1.5rem;;line-height:1.5rem;
  5257. background:linear-gradient(134deg,rgba(252,169,64,1) 0%,rgba(252,132,64,1) 100%);
  5258. }
  5259. .text{
  5260. background:rgba(252,132,64,0.1);
  5261. position: absolute;
  5262. top: 0;left:0;
  5263. width: 100%;height: 1.5rem;line-height: 1.5rem;
  5264. text-align: center;
  5265. font-size:1rem;
  5266. font-family:PingFang-SC-Medium,PingFang-SC;
  5267. font-weight:500;
  5268. color:#BC4502;
  5269. &.light50{
  5270. color: #FFFFFF;
  5271. }
  5272. &.light0{
  5273. color: #657085;
  5274. background-color:#EBEFF2;
  5275. }
  5276. }
  5277. }
  5278. }
  5279. }
  5280. .pagination_box{
  5281. height: 2.3rem;line-height: 2.3rem;
  5282. margin-top: 1.6rem;
  5283. margin-bottom: 1.6rem;
  5284. display: flex;
  5285. .left{
  5286. margin-left: auto;
  5287. display: flex;
  5288. align-items: center;
  5289. background:rgba(246,248,250,1);
  5290. border-radius:1.2rem;
  5291. padding: 0 1.2rem;
  5292. .totle{
  5293. font-size:1rem;
  5294. font-family:AlibabaPuHuiTiR;
  5295. color:rgba(51,51,51,1);
  5296. .span2{
  5297. margin-left: 0.2rem;
  5298. color: rgba(252, 132, 64, 1);
  5299. }
  5300. }
  5301. .line{
  5302. margin: 0 0.7rem;
  5303. width:0.08rem;
  5304. height:1rem;
  5305. background-color: rgba(235, 239, 242, 1);
  5306. }
  5307. .el-dropdown-link{
  5308. font-size:1rem;
  5309. font-family:AlibabaPuHuiTiR;
  5310. color:rgba(51,51,51,1);
  5311. cursor: pointer;
  5312. }
  5313. }
  5314. .el-pagination{
  5315. margin: 0 auto 0 0.8rem;
  5316. // border-radius:1.2rem;
  5317. padding: 0;
  5318. .btn-next,.btn-prev{
  5319. height: 2.3rem;line-height: 2.3rem;
  5320. background:rgba(246,248,250,1);
  5321. &:hover{
  5322. background:rgba(252,132,64,1);
  5323. font-family:AlibabaPuHuiTiM;
  5324. color:rgba(255,255,255,1);
  5325. }
  5326. &.active{
  5327. font-family:AlibabaPuHuiTiM;
  5328. color:rgba(255,255,255,1);
  5329. cursor: default;
  5330. background:rgba(252,132,64,1);
  5331. }
  5332. }
  5333. // button{
  5334. // &:disabled{
  5335. // background-color: initial;
  5336. // }
  5337. // }
  5338. .btn-prev{
  5339. border-top-left-radius: 1.2rem;
  5340. border-bottom-left-radius: 1.2rem;
  5341. }
  5342. .btn-next{
  5343. border-top-right-radius: 1.2rem;
  5344. border-bottom-right-radius: 1.2rem;
  5345. }
  5346. .el-pager{
  5347. background:rgba(246,248,250,1);
  5348. li{
  5349. height: 2.3rem;line-height: 2.3rem;
  5350. background-color: initial;
  5351. font-size:1rem;
  5352. font-family:AlibabaPuHuiTiR;
  5353. color:rgba(51,51,51,1);
  5354. border-radius:0.25rem;
  5355. &:hover{
  5356. background:rgba(252,132,64,1);
  5357. font-family:AlibabaPuHuiTiM;
  5358. color:rgba(255,255,255,1);
  5359. }
  5360. &.active{
  5361. font-family:AlibabaPuHuiTiM;
  5362. color:rgba(255,255,255,1);
  5363. cursor: default;
  5364. background:rgba(252,132,64,1);
  5365. }
  5366. }
  5367. }
  5368. .el-pagination__jump{
  5369. margin-left: 0.8rem;
  5370. height:2.3rem;line-height: 2.3rem;
  5371. background:rgba(246,248,250,1);
  5372. border-radius:1.2rem;
  5373. padding: 0 1.2rem;
  5374. font-size:1rem;
  5375. font-family:AlibabaPuHuiTiR;
  5376. color:rgba(51,51,51,1);
  5377. .el-input{
  5378. height:2.3rem;line-height: 2.3rem;
  5379. .el-input__inner{
  5380. height:2.3rem;line-height: 2.3rem;
  5381. border: none;
  5382. background-color: #f6f8fa;
  5383. }
  5384. }
  5385. }
  5386. }
  5387. }
  5388. }
  5389. }
  5390. /*添加编辑项目*/
  5391. .addItem_box{
  5392. .box{
  5393. padding: 0 40px 0 20px;
  5394. .left_box{
  5395. .el-input{
  5396. width: 90%;
  5397. }
  5398. }
  5399. .el-select{
  5400. width:100%;
  5401. }
  5402. }
  5403. .project_del{
  5404. color: #fc8440;
  5405. margin-left: 30px;
  5406. cursor: pointer;
  5407. text-decoration: underline;
  5408. }
  5409. .project_upgrade{
  5410. color: #409EFF;
  5411. margin-left: 30px;
  5412. cursor: pointer;
  5413. text-decoration: underline;
  5414. }
  5415. }
  5416. /*字段管理*/
  5417. .field_box{
  5418. .fielf_box{
  5419. >div{
  5420. width: 25%;
  5421. font-size:12px;
  5422. }
  5423. }
  5424. .field_list{
  5425. float:left;
  5426. width: 20%;
  5427. margin-bottom:20px;
  5428. div{
  5429. margin-right: 20px;
  5430. height:40px;
  5431. line-height: 40px;
  5432. text-align: center;
  5433. border-radius: 6px;
  5434. color: #888888;
  5435. border: 1px solid #DCDCDC;
  5436. cursor: pointer;
  5437. position: relative;
  5438. img{
  5439. position: absolute;
  5440. top: 15px;
  5441. left: 10px;
  5442. }
  5443. }
  5444. }
  5445. .field_select{
  5446. div{
  5447. background:#3A96FF;
  5448. color: #FFFFFF;
  5449. border: 1px solid #3A96FF;
  5450. }
  5451. }
  5452. }
  5453. /*灯控详情*/
  5454. .details_box{
  5455. .wrap{
  5456. .table_box{
  5457. text-align: center;
  5458. th{
  5459. text-align: center;
  5460. color: #444444;
  5461. }
  5462. }
  5463. .el-table--enable-row-hover .el-table__body tr:hover>td{
  5464. // background: inherit;
  5465. }
  5466. .row_bg{
  5467. background: #F6F6F9;
  5468. }
  5469. position: relative;
  5470. // height: 50px;
  5471. .nav{
  5472. position: absolute;
  5473. width:428px;
  5474. height:50px;
  5475. line-height: 50px;
  5476. left: 50%;
  5477. margin-left: -214px;
  5478. background:rgba(255,255,255,1);
  5479. border-radius: 100px;
  5480. border:1px solid #E8E8E8;
  5481. .nav_list{
  5482. float: left;
  5483. width: 19%;
  5484. text-align: center;
  5485. cursor: pointer;
  5486. span{
  5487. font-size:14px;
  5488. font-family:PingFangSC-Medium;
  5489. color:#888888;
  5490. }
  5491. }
  5492. .details_nav_select{
  5493. background:linear-gradient(-90deg,rgba(54,130,251,1),rgba(56,161,246,1));
  5494. border-radius: 100px;
  5495. width: 24%;
  5496. span{
  5497. color: #ffffff;
  5498. }
  5499. }
  5500. }
  5501. .historicalnav{
  5502. position: absolute;
  5503. width:428px;
  5504. height:50px;
  5505. line-height: 50px;
  5506. left: 50%;
  5507. margin-left: -214px;
  5508. background:rgba(255,255,255,1);
  5509. border-radius: 100px;
  5510. border:1px solid #E8E8E8;
  5511. .nav_list{
  5512. float: left;
  5513. width: 24%;
  5514. text-align: center;
  5515. cursor: pointer;
  5516. span{
  5517. font-size:14px;
  5518. font-family:PingFangSC-Medium;
  5519. color:#888888;
  5520. }
  5521. }
  5522. .details_nav_select{
  5523. background:linear-gradient(-90deg,rgba(54,130,251,1),rgba(56,161,246,1));
  5524. border-radius: 100px;
  5525. width: 28%;
  5526. span{
  5527. color: #ffffff;
  5528. }
  5529. }
  5530. }
  5531. .details_list_box{
  5532. padding-top: 126px;
  5533. display: flex;
  5534. // justify-content: space-between;
  5535. flex-direction: row;
  5536. flex-wrap: wrap;
  5537. .details_list{
  5538. // float: left;
  5539. width: 25%;
  5540. position: relative;
  5541. margin-bottom: 30px;
  5542. span{
  5543. display: inline-block;
  5544. font-size:16px;
  5545. font-family:PingFangSC-Medium;
  5546. color:#222222;
  5547. line-height:16px;
  5548. height:44px;
  5549. line-height: 44px;
  5550. // white-space: nowrap;
  5551. // overflow: hidden;
  5552. // text-overflow: ellipsis;
  5553. }
  5554. span:first-child{
  5555. position: absolute;
  5556. width: 180px;
  5557. padding-right:20px;
  5558. text-align: right;
  5559. }
  5560. span:last-child{
  5561. padding: 0 20px;
  5562. margin-left: 190px;
  5563. width:calc(100% - 242px);
  5564. background:#F8F9FC;
  5565. border-radius: 2px ;
  5566. border: 1px solid #E8E8E8;
  5567. white-space: nowrap;
  5568. overflow: hidden;
  5569. text-overflow: ellipsis;
  5570. }
  5571. }
  5572. }
  5573. .details_list_box_EN{
  5574. .details_list_min{
  5575. width: 33.3%;
  5576. }
  5577. .details_list{
  5578. span:first-child{
  5579. width: 255px;
  5580. // line-height: 22px;
  5581. }
  5582. span:last-child{
  5583. margin-left: 260px;
  5584. width:calc(100% - 300px);
  5585. }
  5586. }
  5587. }
  5588. }
  5589. }
  5590. /*添加编辑灯控*/
  5591. .addLightControl_box{
  5592. .list_box{
  5593. width: 20%;
  5594. float: left;
  5595. height: 40px;
  5596. }
  5597. .list_box_min{
  5598. width: 25%;
  5599. }
  5600. .project_del{
  5601. color: #fc8440;
  5602. margin-left: 30px;
  5603. cursor: pointer;
  5604. text-decoration: underline;
  5605. }
  5606. .el-input-number{
  5607. width:100%;
  5608. .el-input__inner{
  5609. text-align: left;
  5610. }
  5611. }
  5612. .el-select{
  5613. width: 100%;
  5614. }
  5615. }
  5616. .monitor_box{
  5617. .el-date-editor.el-input, .el-date-editor.el-input__inner{
  5618. width: 100%;
  5619. }
  5620. .el-dialog__header{
  5621. border-bottom: 0px;
  5622. height: 25px;
  5623. }
  5624. .el-dialog{
  5625. margin-top: 60px !important;
  5626. }
  5627. .el-dialog__body{
  5628. // padding: 30px 0px 0 60px;
  5629. .dialog_foot .el-button{
  5630. width: 160px;
  5631. }
  5632. }
  5633. .el-input-number{
  5634. width: 100%;
  5635. input{
  5636. text-align: left;
  5637. }
  5638. }
  5639. .el-select{
  5640. width: 100%;
  5641. }
  5642. .wrap{
  5643. position: relative;
  5644. padding-top: 80px;
  5645. .button{
  5646. position: absolute;
  5647. top: -10px;right: 0px;
  5648. .el-button{
  5649. background: linear-gradient(140.3deg, #fc8440, #fe7121);
  5650. color: #fff;
  5651. border: 0px;
  5652. }
  5653. }
  5654. .nav{
  5655. position: absolute;
  5656. top: -10px;
  5657. left: 50%;
  5658. margin-left: -209px;
  5659. width:418px;
  5660. height:50px;
  5661. background:rgba(232,232,232,1);
  5662. border-radius: 100px;
  5663. div{
  5664. float: left;
  5665. text-align: center;
  5666. width:209px;
  5667. height:50px;
  5668. line-height: 50px;
  5669. border-radius: 100px ;
  5670. cursor: pointer;
  5671. span{
  5672. font-size:14px;
  5673. font-family:PingFangSC-Medium;
  5674. }
  5675. }
  5676. .monitor_type{
  5677. background:rgba(55,59,68,1);
  5678. span{
  5679. color:rgba(255,255,255,1);
  5680. }
  5681. }
  5682. }
  5683. .box{
  5684. // overflow: auto;
  5685. // padding-right: 75px;
  5686. .list_box{
  5687. width: 25%;
  5688. float: left;
  5689. height: 40px;
  5690. }
  5691. .list_boxEN{
  5692. width: 33.33%;
  5693. float: left;
  5694. height: 40px;
  5695. }
  5696. }
  5697. .box_padding{
  5698. padding-right: 0px;
  5699. }
  5700. }
  5701. }
  5702. /*历史弹框*/
  5703. .history_box{
  5704. .el-dialog__body{
  5705. padding:0px;
  5706. }
  5707. .wrap{
  5708. position: relative;
  5709. height: 600px;
  5710. display: flex;
  5711. .main_list{
  5712. width: 200px;
  5713. // display: flex;
  5714. box-sizing: border-box;
  5715. border-right: 2px solid rgba(240, 240, 240, 1);
  5716. .main_list_title{
  5717. height: 48px;
  5718. line-height: 48px;
  5719. font-size:14px;
  5720. font-family:PingFangSC-Semibold;
  5721. font-weight:600;
  5722. color:rgba(34,34,34,1);
  5723. padding-left:23px;
  5724. border-bottom: 1px solid rgba(240, 240, 240, 1);
  5725. }
  5726. .main_list_box{
  5727. height: calc(100% - 50px);
  5728. display: flex;
  5729. &.EN{
  5730. .nav_list{
  5731. padding-left: 10px;
  5732. span{
  5733. display: inline-block;
  5734. max-width: 100%;
  5735. line-height: 12px;
  5736. vertical-align: middle; // 行内垂直平行
  5737. }
  5738. }
  5739. }
  5740. }
  5741. .lamp_list{
  5742. text-align: center;
  5743. height: calc(100%);
  5744. overflow: auto;
  5745. box-sizing: border-box;
  5746. width: 100px;
  5747. border-right: 2px solid rgba(240, 240, 240, 1);
  5748. .li{
  5749. height:49px;
  5750. line-height: 49px;
  5751. font-size:14px;
  5752. font-family:PingFang-SC-Medium;
  5753. font-weight:500;
  5754. color:rgba(102,102,102,1);
  5755. cursor: pointer;
  5756. &.select{
  5757. font-family:PingFangSC-Semibold;
  5758. font-weight:600;
  5759. color:rgba(254,119,43,1);
  5760. background:rgba(253,124,51,0.1);
  5761. }
  5762. }
  5763. }
  5764. .historicalnav{
  5765. box-sizing: border-box;
  5766. background-color:rgba(248, 248, 248, 1);
  5767. width: 100px;
  5768. }
  5769. .nav_list{
  5770. padding-left: 20px;
  5771. height: 50px;
  5772. line-height: 50px;
  5773. border-bottom: 1px solid rgba(240, 240, 240, 1);
  5774. // background-color:rgba(255, 255, 255, 1);
  5775. cursor: pointer;
  5776. span{
  5777. display: inline-block;
  5778. max-width: 80px;
  5779. // white-space: nowrap;
  5780. // overflow: hidden;
  5781. // text-overflow: ellipsis;
  5782. }
  5783. }
  5784. .details_nav_select{
  5785. color: rgba(255, 117, 39, 1);
  5786. }
  5787. }
  5788. .main_box{
  5789. width: calc(100% - 240px);
  5790. padding: 24px 20px 0 20px;
  5791. .screen_box{
  5792. height: 32px;
  5793. line-height: 32px;
  5794. margin-bottom: 24px;
  5795. display: flex;
  5796. align-items: center;
  5797. justify-content: space-between;
  5798. >div{
  5799. display: flex;
  5800. }
  5801. .el-pager{
  5802. padding-top: 5px;
  5803. li{
  5804. height: 22px;
  5805. line-height: 22px;
  5806. &.active {
  5807. color: #fff;
  5808. background: #fc8440;
  5809. border-radius: 20px;
  5810. }
  5811. }
  5812. }
  5813. .el-pagination{
  5814. font-weight: normal;
  5815. }
  5816. .el-select .el-input.is-focus .el-input__inner{
  5817. border-color: #fc8440;
  5818. }
  5819. .el-input.is-active .el-input__inner, .el-input__inner:focus{
  5820. border-color: #fc8440;
  5821. }
  5822. .el-pagination button, .el-pagination span:not([class*=suffix]){
  5823. height: 32px;
  5824. line-height: 32px;
  5825. }
  5826. .el-pagination__editor{
  5827. height: 32px;
  5828. line-height: 32px;
  5829. }
  5830. .el-pagination__editor.el-input .el-input__inner{
  5831. height: 22px;
  5832. }
  5833. .el-pager .more::before{
  5834. line-height: 22px;
  5835. }
  5836. }
  5837. .screen_date{
  5838. border-radius: 20px;
  5839. border:1px solid #DCDFE6;
  5840. overflow: hidden;
  5841. margin-right: 20px;
  5842. .el-date-editor{
  5843. width: 140px;
  5844. border:none;
  5845. }
  5846. .el-button{
  5847. border: none;
  5848. border-left: 1px solid #DCDFE6;
  5849. .el-icon-arrow-right{
  5850. margin: 0 0 0 18px;
  5851. }
  5852. }
  5853. }
  5854. .el-table{
  5855. td,th{
  5856. padding: 7px 0px;
  5857. }
  5858. }
  5859. .data_type_nav{
  5860. display: flex;
  5861. width: 200px;
  5862. height: 32px;line-height: 32px;
  5863. border: 1px solid rgba(232, 232, 232, 1);
  5864. border-radius: 16px;
  5865. overflow: hidden;
  5866. text-align: center;
  5867. margin-top: 50px;
  5868. position: relative;
  5869. margin-left: -100px;
  5870. left: 50%;
  5871. .li{
  5872. flex: 1;
  5873. cursor: pointer;
  5874. }
  5875. .select{
  5876. color: #fff;
  5877. height:32px;
  5878. background:linear-gradient(270deg,rgba(54,130,251,1) 0%,rgba(56,161,246,1) 100%);
  5879. border-radius:100px;
  5880. }
  5881. }
  5882. .LS_echarts{
  5883. display: flex;
  5884. .left_echarts{
  5885. width: 81.31%;
  5886. position: relative;
  5887. .echarts_top{
  5888. position: absolute;
  5889. z-index: 1;
  5890. right: 0px;
  5891. display: flex;
  5892. align-items: center;
  5893. justify-content: space-between;
  5894. >div{
  5895. display: flex;
  5896. }
  5897. }
  5898. .screen_date_select{
  5899. margin-right: 20px;
  5900. width: 240px;
  5901. height:30px;line-height:30px;
  5902. border: 1px solid #DCDFE6;
  5903. border-radius: 20px;
  5904. overflow: hidden;
  5905. text-align: center;
  5906. display: flex;
  5907. font-size: 12px;
  5908. cursor: pointer;
  5909. .li{
  5910. flex:1;
  5911. border-right: 1px solid #DCDFE6;
  5912. &:last-child{
  5913. border-right: none;
  5914. }
  5915. }
  5916. .select{
  5917. color: rgba(253, 125, 52, 1);
  5918. }
  5919. }
  5920. .history_echarts{
  5921. width: 100%;
  5922. height: 430px;
  5923. }
  5924. .history_echarts_noData{
  5925. width: 100%;
  5926. height: 430px;
  5927. h3{
  5928. margin-top: 30px;
  5929. text-align: center;
  5930. }
  5931. }
  5932. }
  5933. .left_data{
  5934. width: 18.69%;
  5935. height:498px;
  5936. background:rgba(255,249,245,1);
  5937. border-radius:2px;
  5938. border:1px solid rgba(238,238,238,1);
  5939. padding: 0 10px;
  5940. p{
  5941. text-align: center;
  5942. font-size:12px;
  5943. font-family:PingFang-SC-Medium;
  5944. font-weight:500;
  5945. color:rgba(51,51,51,1);
  5946. margin: 19px 0 23px 0;
  5947. img{
  5948. position:relative;
  5949. top: 2px;
  5950. margin-right: 10px;
  5951. }
  5952. }
  5953. .ul{
  5954. .li{
  5955. height:40px;
  5956. line-height: 40px;
  5957. background:rgba(249,240,233,1);
  5958. border-radius:4px;
  5959. display: flex;
  5960. align-items: center;
  5961. justify-content: space-between;
  5962. margin-bottom: 10px;
  5963. .span1{
  5964. font-size:12px;
  5965. font-family:PingFang-SC-Medium;
  5966. font-weight:500;
  5967. color:rgba(102,102,102,1);
  5968. margin-left: 13px;
  5969. }
  5970. .span_r{
  5971. display: flex;
  5972. height: 40px;
  5973. align-items: center;
  5974. flex: 1;
  5975. justify-content: flex-end;
  5976. }
  5977. .span2{
  5978. font-size:19px;
  5979. font-family:PingFang-SC-Medium;
  5980. font-weight:500;
  5981. color:rgba(51,51,51,1);
  5982. margin-right: 5px;
  5983. display: inline-block;
  5984. // max-width: 38px;
  5985. width: calc(100% - 40px);
  5986. white-space: nowrap;
  5987. overflow: hidden;
  5988. text-overflow: ellipsis;
  5989. @media (max-width: 1500px){
  5990. font-size: 12px;
  5991. margin-right: 5px;
  5992. // position: relative;
  5993. // top: 7px;
  5994. }
  5995. }
  5996. .span3{
  5997. margin-right: 10px;
  5998. font-size:14px;
  5999. font-family:PingFang-SC-Medium;
  6000. font-weight:500;
  6001. color:rgba(153,153,153,1);
  6002. // margin-right: 7px;
  6003. // @media (max-width: 1500px){
  6004. // display: inline-block;
  6005. // line-height: 40px;
  6006. // position: relative;
  6007. // top: -7px;
  6008. // }
  6009. }
  6010. }
  6011. &.EN{
  6012. .li{
  6013. .span1{
  6014. display: inline-block;
  6015. max-width: calc(100% - 100px);
  6016. line-height: 12px;
  6017. }
  6018. }
  6019. }
  6020. }
  6021. }
  6022. }
  6023. .echarts_bottom{
  6024. position: relative;
  6025. display: flex;
  6026. .echarts_bottom_text{
  6027. margin-top: 50px;
  6028. height: 32px;
  6029. line-height: 32px;
  6030. font-size:12px;
  6031. font-family:PingFang-SC-Medium;
  6032. font-weight:500;
  6033. color:rgba(102,102,102,1);
  6034. }
  6035. &.echarts_line{
  6036. .data_type_nav{
  6037. margin-left: -180px;
  6038. left: 61.49%;
  6039. }
  6040. }
  6041. }
  6042. }
  6043. .table_box{
  6044. text-align: center;
  6045. th{
  6046. text-align: center;
  6047. color: #444444;
  6048. }
  6049. }
  6050. .el-table--enable-row-hover .el-table__body tr:hover>td{
  6051. // background: inherit;
  6052. }
  6053. .row_bg{
  6054. background: #F6F6F9;
  6055. }
  6056. }
  6057. }
  6058. }
  6059. .lampAmapWrapper_box{
  6060. position: relative;
  6061. .screenMap{
  6062. position: absolute;
  6063. top: 20px;left:40px;
  6064. width:250px;
  6065. z-index: 1;
  6066. line-height: 50px;
  6067. i{
  6068. font-size: 20px;
  6069. cursor: pointer;
  6070. }
  6071. }
  6072. }
  6073. #lampAmapWrapper{
  6074. width: 100%;
  6075. min-height: 400px;
  6076. .google_Location_box{
  6077. width: 40px;
  6078. height: 40px;
  6079. background: #fff;
  6080. right: 10px !important;
  6081. bottom: 120px !important;
  6082. .google_Location{
  6083. display:none;
  6084. background: #fff url(http://webapi.amap.com/theme/v1.3/markers/b/loc_gray.png) 50% 50% no-repeat;
  6085. width: 38px;
  6086. height: 38px;
  6087. border: 1px solid #ccc;
  6088. cursor: pointer;
  6089. }
  6090. .circular{
  6091. height: 40px;
  6092. width: 40px;
  6093. animation: loading-rotate 2s linear infinite;
  6094. .path{
  6095. animation: loading-dash 1.5s ease-in-out infinite;
  6096. stroke-dasharray: 90,150;
  6097. stroke-dashoffset: 0;
  6098. stroke-width: 2;
  6099. stroke: #409eff;
  6100. stroke-linecap: round;
  6101. }
  6102. }
  6103. }
  6104. .lamp_coordinate_en{
  6105. .determine_l{
  6106. background: url(../img/GIS/determine-icon.png);
  6107. display:inline-block;
  6108. width: 38px;height: 38px;
  6109. }
  6110. .cancel_l{
  6111. background: url(../img/GIS/cancel-icon.png);
  6112. display:inline-block;
  6113. width: 38px;height: 38px;
  6114. margin-left: 10px;
  6115. }
  6116. }
  6117. .lamp_coordinate_en{
  6118. // width: 200px
  6119. // display: none;
  6120. position: absolute;
  6121. line-height: 40px;
  6122. width: 600px;
  6123. top: -6px;
  6124. left: 50px;
  6125. display: flex;
  6126. align-items: center;
  6127. >span{
  6128. display: inline-block;
  6129. padding: 0 20px;
  6130. margin-right: 20px;
  6131. font-size: 14px;
  6132. color: #888888;
  6133. background: #fff;
  6134. span{
  6135. span{
  6136. color:#fc8440;
  6137. }
  6138. }
  6139. >:first-child{
  6140. margin-right: 10px;
  6141. }
  6142. }
  6143. >i{
  6144. font-size:30px;
  6145. z-index: 1;
  6146. cursor: pointer;
  6147. }
  6148. }
  6149. .lamp_coordinate{
  6150. // width: 200px
  6151. // display: none;
  6152. position: absolute;
  6153. line-height: 40px;
  6154. width: 450px;
  6155. top: 0px;
  6156. left: 78px;
  6157. >span{
  6158. display: inline-block;
  6159. padding: 0 20px;
  6160. margin-right: 20px;
  6161. font-size: 14px;
  6162. color: #888888;
  6163. background: #fff;
  6164. span{
  6165. span{
  6166. color:#fc8440;
  6167. }
  6168. }
  6169. >:first-child{
  6170. margin-right: 10px;
  6171. }
  6172. }
  6173. >i{
  6174. font-size:30px;
  6175. z-index: 1;
  6176. cursor: pointer;
  6177. }
  6178. }
  6179. }
  6180. .lamp_light_slider{
  6181. position: absolute;
  6182. top: 0px;
  6183. left: 0px;
  6184. width: 100%;
  6185. height: 100%;
  6186. .bg{
  6187. position:absolute;
  6188. top: 0px;
  6189. left: 0px;
  6190. width: 100%;
  6191. height: 100%;
  6192. }
  6193. .box{
  6194. position:absolute;
  6195. width: 342px;
  6196. padding: 5px 0 15px 0;
  6197. background-color: #fff;
  6198. box-shadow:0px 2px 24px 0px rgba(90,90,90,0.12);
  6199. border-radius:2px;
  6200. }
  6201. .div1{
  6202. position: absolute;
  6203. top: 40px;
  6204. left: -15px;
  6205. display: flex;
  6206. width: 25px;
  6207. span{
  6208. display: inline-block;
  6209. width:15px;
  6210. height:1px;
  6211. border-top:1px solid rgba(252, 132, 64, 1);
  6212. }
  6213. i{
  6214. position: relative;
  6215. top: -3px;
  6216. display: inline-block;
  6217. width:7px;
  6218. height:7px;
  6219. border-radius: 7px;
  6220. background:rgba(252,132,64,1);
  6221. }
  6222. }
  6223. .div2{
  6224. padding: 0 16px 0 18px;
  6225. >div:nth-child(1){
  6226. height:25px;
  6227. line-height:25px;
  6228. span:nth-child(1){
  6229. font-size:12px;
  6230. font-family:PingFang-SC-Medium;
  6231. font-weight:500;
  6232. color:rgba(102,102,102,1);
  6233. }
  6234. span:nth-child(2){
  6235. padding: 0px 10px;
  6236. font-size:14px;
  6237. font-family:PingFang-SC-Medium;
  6238. font-weight:500;
  6239. color:rgba(252,129,58,1);
  6240. float: right;
  6241. cursor: pointer;
  6242. }
  6243. }
  6244. .el-slider__bar{
  6245. background-color:rgba(252, 132, 64, 1);
  6246. }
  6247. .el-slider__button{
  6248. position: relative;
  6249. top: 15px;
  6250. border:none;
  6251. background-image: url(../img/projectManagement/slider_button.png);
  6252. background-size: 100% 100%;
  6253. }
  6254. .el-slider__runway{
  6255. margin: 10px 0;
  6256. }
  6257. }
  6258. }
  6259. </style>