projectManagement.vue 325 KB

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