statistics.vue 82 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493
  1. <template>
  2. <view>
  3. <u-popup v-model="popShow1" duration="10" mode="bottom" border-radius="16">
  4. <view class="popShow1">
  5. <view class="title">
  6. {{companyInfo.name}}
  7. </view>
  8. <view class="popShowList">
  9. <scroll-view scroll-y="true" style="height: 500rpx;" >
  10. <view class="popShowItem" v-for="(item,i) in childCompanyList.list"
  11. @click="change3(i)"
  12. :class="{
  13. index:item.id==childInfo.id
  14. }" >
  15. <view class="online" :class="'online'+item.online">
  16. <view class="name">{{item.name}}</view>
  17. <view class="onlineChild" v-if="item.online==0"><view class="dot"></view>离线</view>
  18. <view class="onlineChild" v-if="item.online==1"><view class="dot"></view>在线</view>
  19. <view class="onlineChild" v-if="item.online==2">【多表】</view>
  20. <view class="onlineChild" v-if="item.online==3">【无表】</view>
  21. </view>
  22. <u-icon name="arrow-right" size="24" color="#838383"></u-icon>
  23. </view>
  24. <u-divider nonetext="暂无数据" border-color="#CFD2D5">已经到底了</u-divider>
  25. </scroll-view>
  26. </view>
  27. </view>
  28. </u-popup>
  29. <u-picker-select title="日期选择" :maskCloseAble="true" v-model="tabsFrom.show2" :defaultTime="tabsFrom.show2Index" :endYear="endYear"
  30. mode="time" :params="params" @confirm="selector2confirm" @cancel="selector2cancel"
  31. @reset="selector2reset">
  32. </u-picker-select>
  33. <!--
  34. <u-select title="" v-model="tabsFrom.show1" :defaultValue="[current2]"
  35. :list="childCompanyList.list" value-name="id" label-name="name"
  36. @confirm="selector1confirm" >
  37. </u-select>
  38. -->
  39. <!-- 导航栏 -->
  40. <view class="navbar">
  41. <view class="title" v-if="companyInfotype==4">
  42. 能源管理
  43. <span style="padding-left: 4px;" >
  44. |
  45. </span>
  46. <span style="padding-left: 4px;" >
  47. {{datacompanyInfo.name}}
  48. </span>
  49. </view>
  50. <view class="title" v-else>
  51. 能源管理
  52. <span style="padding-left: 4px;" v-if="companyList.length>1&&current!=0">
  53. |
  54. </span>
  55. <span style="padding-left: 4px;" v-if="companyList.length>1&&current!=0">
  56. <template v-if="kWhList.length==1">
  57. {{kWhList[0].name}}
  58. </template>
  59. <template v-else>
  60. <!-- {{childList.length==1? : childInfo.name}} -->
  61. {{companyInfo.name}}
  62. </template>
  63. </span>
  64. <span style="padding-left: 4px;" v-if="companyList.length==1">
  65. |
  66. </span>
  67. <span style="padding-left: 4px;" v-if="companyList.length==1">
  68. <template v-if="kWhList.length==1">
  69. {{kWhList[0].name}}
  70. </template>
  71. <template v-else>
  72. {{childList.length==1?companyInfo.name : childInfo.name}}
  73. </template>
  74. </span>
  75. </view>
  76. </view>
  77. <view class="tabs-box tabs-box2" v-if="companyInfotype==4&&readingMeterNum&&monitorMeterNum" >
  78. <view class="tabs2" :class="'tabs-len-2'"
  79. :style="{width: '100%', }">
  80. <u-tabs-one :gutter="32"
  81. :list="companyInfotypeList" :is-scroll="false" active-color="#fff" inactive-color="#CCE2FF"
  82. bg-color="#1677FF" :current="1" @change="companyInfotypeChange"></u-tabs-one>
  83. </view>
  84. </view>
  85. <!-- 标签 -->
  86. <view class="tabs-box" v-else >
  87. <view class="tabs" :class="'tabs-len-'+merchantList1.length" v-show="companyList.length>1"
  88. :style="{width: companyList.length>3 ? '' : '100%'}">
  89. <u-tabs-one v-if="utabsone"
  90. :list="merchantList1" :is-scroll="false" active-color="#fff" inactive-color="#CCE2FF"
  91. bg-color="#1677FF" :current="current" @change="change"></u-tabs-one>
  92. </view>
  93. <view class="more" @click="popShow=true" v-if="companyList.length >= 4">
  94. <u-icon name="arrow-down" color="#fff" size="40"></u-icon>
  95. </view>
  96. </view>
  97. <!-- 标签弹出层 -->
  98. <u-popup v-model="popShow" duration="10" mode="top" :negative-top="88" border-radius="16">
  99. <view class="popup-tabs">
  100. <view class="tabs">
  101. <u-tabs
  102. :list="merchantList1" :is-scroll="false" :current="current" @change="change"></u-tabs>
  103. </view>
  104. <view class="more">
  105. <u-icon name="arrow-up" color="#777777" size="40" @click="popShow=false"></u-icon>
  106. </view>
  107. </view>
  108. <view class="tabs-options">
  109. <view class="item" v-for="(item, index) in merchantList2" :key="index"
  110. @click="merchantChange(item,index)">
  111. {{item.name}}
  112. </view>
  113. </view>
  114. </u-popup>
  115. <view class="main electronicMonitoring-123" v-show="kWhList.length==1" style="padding:32rpx 0;">
  116. <view class="electronicMonitoring-title3"
  117. v-if="companyType==5"
  118. v-show="childList&&childList.length>1" >
  119. <view style="padding:0 32rpx;">
  120. <u-tabs-one height="60" v-if="utabsone&&childList&&childList.length"
  121. :currentIndexBl="true" bg-color="#f2f4f6" key="B" :showBar="false"
  122. :list="childList" :is-scroll="false" :current="current2" @change="change2"></u-tabs-one>
  123. </view>
  124. </view>
  125. <view class="electronicMonitoring-title"
  126. @click="titleCk"
  127. v-else-if="childList&&childList.length>0" >
  128. <view class="view">
  129. {{childListName}}
  130. <template v-if="kWhList&&kWhList.length==1">
  131. <view class=" view dotview online0" v-if="!kWhList[0].online">
  132. <view class="dot online0"></view>
  133. <view class="text online0">离线</view>
  134. </view>
  135. <view class="view dotview online1" v-else>
  136. <view class="dot online1"></view>
  137. <view class="text online1">在线</view>
  138. </view>
  139. </template>
  140. <template v-if="kWhList&&kWhList.length>1">
  141. <view class="dotview view " >
  142. <!-- <view class="dot on-line"></view> -->
  143. <view class="text online2">【多表】</view>
  144. </view>
  145. </template>
  146. </view>
  147. <view v-show="childList.length>1"
  148. style="color: #777777;font-size: 24rpx;display: flex;align-items: center;"
  149. class="view">
  150. 切换<u-icon name="arrow-down" color="#777777"></u-icon>
  151. </view>
  152. </view>
  153. <electronicMonitoring v-show="kWhList.length" :ref="'refMyEm'+companyId"></electronicMonitoring>
  154. <u-divider :isnone="kWhList.length==0" nonetext="暂无数据" border-color="#CFD2D5">已经到底了</u-divider>
  155. </view>
  156. <view class="main current-123" v-show="(kWhList.length!=1)">
  157. <view class="electronicMonitoring-title"
  158. @click="titleCk"
  159. v-if="companyType==1"
  160. v-show="childList&&childList.length>0" >
  161. <view class="view">
  162. {{childListName}}
  163. <template v-if="kWhList&&kWhList.length>1">
  164. <view class="dotview view " >
  165. <!-- <view class="dot on-line"></view> -->
  166. <view class="text online2">【多表】</view>
  167. </view>
  168. </template>
  169. </view>
  170. <view v-show="childList.length>1"
  171. style="color: #777777;font-size: 24rpx;display: flex;align-items: center;"
  172. class="view">
  173. 切换<u-icon name="arrow-down" color="#777777"></u-icon>
  174. </view>
  175. </view>
  176. <view class="electronicMonitoring-title2"
  177. v-else
  178. v-show="childList&&childList.length>1" >
  179. <u-tabs-one height="60" :showBar="false" v-if="utabsone&&childList&&childList.length"
  180. :currentIndexBl="true" bg-color="#f2f4f6" key="A"
  181. :list="childList" :is-scroll="false" :current="current2" @change="change2"></u-tabs-one>
  182. </view>
  183. <!-- 电表运行情况 -->
  184. <view class="statistics-1 statistics point-meteroperation" v-show="anchorpointShow('point-meteroperation')">
  185. <view class="title">
  186. <view class="icon">
  187. <image class="img" src="@/assets/img/circleCopy1@1x.png" mode=""></image>
  188. </view>
  189. <view class="text">
  190. 设备运行情况
  191. </view>
  192. <view class="check-all" @click="toEquipmentConditionMonitoring">
  193. 查看全部<u-icon name="arrow-right" size="24" color="#838383"></u-icon>
  194. </view>
  195. </view>
  196. <view class="item">
  197. <view>
  198. <u-circle-progress width="88" borderWidth="12" active-color="#2979ff" :percent="80">
  199. <view class="u-progress-content">
  200. <image class="img" style="width: 32rpx;height: 32rpx;margin-top: 8rpx;"
  201. src="@/assets/img/statistics/fa5-bolt-fas.svg"></image>
  202. </view>
  203. </u-circle-progress>
  204. </view>
  205. <!-- 累计 -->
  206. <view class="total">
  207. <view class="total2">
  208. 运行电表
  209. </view>
  210. <view class="total1">
  211. <view class="normal">
  212. 正常 <span style="color:#19be6b;margin: 0 8rpx;">{{alarmsForm.okNum}}</span> 台
  213. </view>
  214. <view class="abnormal">
  215. 异常 <span style="color:red;margin: 0 8rpx;">{{alarmsForm.errorNum}}</span> 台
  216. </view>
  217. </view>
  218. <view class="total2" v-if="false">
  219. 本月累计触发告警 <text class="total-number">{{alarmsForm.errorMonthNum}}</text> 次
  220. </view>
  221. </view>
  222. </view>
  223. <view class="item">
  224. <view>
  225. <u-circle-progress width="88" borderWidth="12" active-color="#00B962" :percent="80">
  226. <view class="u-progress-content">
  227. <image class="img" style="width: 32rpx;height: 32rpx;margin-top: 8rpx;"
  228. src="@/assets/img/statistics/fas fa-tint.svg"></image>
  229. </view>
  230. </u-circle-progress>
  231. </view>
  232. <!-- 累计 -->
  233. <view class="total">
  234. <view class="total2">
  235. 运行水表
  236. </view>
  237. <view class="total1">
  238. <view class="normal">
  239. 正常 <span style="color:#19be6b;margin: 0 8rpx;">{{alarmsForm.okNum}}</span> 台
  240. </view>
  241. <view class="abnormal">
  242. 异常 <span style="color:red;margin: 0 8rpx;">{{alarmsForm.errorNum}}</span> 台
  243. </view>
  244. </view>
  245. <view class="total2" v-if="false">
  246. 本月累计触发告警 <text class="total-number">{{alarmsForm.errorMonthNum}}</text> 次
  247. </view>
  248. </view>
  249. </view>
  250. </view>
  251. <view class="" v-show="companyId==''&&companyList.length>1&&datacompanyInfo.type=='2'">
  252. <!-- 电表运行情况 -->
  253. <view class="statistics-1 statistics" >
  254. <view class="title">
  255. <view class="icon">
  256. <image class="img" src="@/assets/img/circleCopy1@1x.png" mode=""></image>
  257. </view>
  258. <view class="text">
  259. <!-- 在用园区与产权单位 -->
  260. 园区&产权单位
  261. </view>
  262. </view>
  263. <view class=" contractList" >
  264. <view class="contractListClass" v-for="(item,i) in companyList" :key="i"
  265. @click="change(i+1)">
  266. <view class="contractListClass1">
  267. {{item.name}}
  268. </view>
  269. <view class="contractListClass2">
  270. <u-icon name="arrow-right" size="24" color="#838383"></u-icon>
  271. </view>
  272. </view>
  273. </view>
  274. </view>
  275. </view>
  276. <view class="point-PlatformRevenue" v-show="anchorpointShow('point-PlatformRevenue')" >
  277. <!-- 电表运行情况 -->
  278. <view class="statistics-1 statistics statistics-3" >
  279. <view class="title">
  280. <view class="icon">
  281. <image class="img" src="@/assets/img/circleCopy1@1x.png" mode=""></image>
  282. </view>
  283. <view class="text">
  284. {{!companyId?'平台':'园区营增'}}收入(元)
  285. </view>
  286. </view>
  287. <view class=" contractList" >
  288. <view class="content"
  289. style="display: flex;justify-content: center;margin: 40px 0;"
  290. v-if="!getPlatformRevenueReady">
  291. <div class="uni-toast" style="display: flex;font-size: 60rpx; color: rgb(192, 196, 204);" >
  292. <i class="uni-icon_toast uni-loading"
  293. style="
  294. width: 80rpx;
  295. height: 80rpx;
  296. "
  297. ></i><p class="uni-toast__content"> </p>加载中...</div>
  298. </view>
  299. <!-- -->
  300. <view class="contractListClass" v-for="(item,i) in platformRevenueList"
  301. @click="gotoUrl('/pages/platformRevenueStatistics/platformRevenueStatistics?id='+item.companyId+'&companyId='+companyId)"
  302. :key="i"
  303. >
  304. <view class="contractListClass1">
  305. <view class="class1">{{item.companyName}}</view>
  306. <view class="class2">{{month}}月预计收入</view>
  307. </view>
  308. <view class="contractListClass2">
  309. {{item.totalFee}}
  310. <u-icon name="arrow-right" style="margin-left: 12rpx;" size="24" color="#838383"></u-icon>
  311. </view>
  312. </view>
  313. </view>
  314. </view>
  315. </view>
  316. <view class="">
  317. <!-- 电表运行情况 -->
  318. <view class="statistics-1 statistics point-TenantManagement" v-show="anchorpointShow('point-TenantManagement')">
  319. <view class="title">
  320. <view class="icon">
  321. <image class="img" src="@/assets/img/circleCopy1@1x.png" mode=""></image>
  322. </view>
  323. <view class="text">
  324. 租户管理预警
  325. </view>
  326. </view>
  327. <view class=" contractList">
  328. <view class="contractListClass" @click="gotoUrl('/pages/tenantList/contractList?query=1&companyId='+companyId)">
  329. <view class="contractListClass1">
  330. <image class="img" src="@/assets/img/riLine-wallet-2-line.svg"></image>
  331. 账户余额不足 <span class="tenantListNum">{{tenantListNum1}}</span> 家
  332. </view>
  333. <view class="contractListClass2">
  334. <u-icon name="arrow-right" size="24" color="#838383"></u-icon>
  335. </view>
  336. </view>
  337. <view class="contractListClass" @click="gotoUrl('/pages/tenantList/contractList?query=2&companyId='+companyId)">
  338. <view class="contractListClass1">
  339. <!-- <image class="img" src="@/assets/img/riLine-time-line2.svg"></image> -->
  340. <u-icon name="warning" class="img" size="32" color="#ef8132"></u-icon>
  341. 租赁费催缴提醒 <span class="tenantListNum">{{tenantListNum2}}</span> 家<span>(即将到期)</span>
  342. </view>
  343. <view class="contractListClass2">
  344. <u-icon name="arrow-right" size="24" color="#838383"></u-icon>
  345. </view>
  346. </view>
  347. <view class="contractListClass" @click="gotoUrl('/pages/tenantList/contractList?query=3&companyId='+companyId)">
  348. <view class="contractListClass1">
  349. <image class="img" src="@/assets/img/riLine-time-line2.svg"></image>
  350. 租赁费催缴提醒 <span class="tenantListNum">{{tenantListNum3}}</span> 家<span>(已到期)</span>
  351. </view>
  352. <view class="contractListClass2">
  353. <u-icon name="arrow-right" size="24" color="#838383"></u-icon>
  354. </view>
  355. </view>
  356. </view>
  357. </view>
  358. </view>
  359. <!-- 统计2 异常告警记录 -->
  360. <view class="statistics-2 statistics point-Poweroutagereminder" v-show="anchorpointShow('point-Poweroutagereminder')" >
  361. <view class="title">
  362. <view class="icon">
  363. <image class="img" src="@/assets/img/circleCopy1@1x.png" mode=""></image>
  364. </view>
  365. <view class="text">
  366. 租户断电提醒
  367. </view>
  368. <view class="check-all" @click="gotoUrl('/pages/tenantList/remindList?id='+companyId)">
  369. 查看全部<u-icon name="arrow-right" size="24" color="#838383"></u-icon>
  370. </view>
  371. </view>
  372. <u-divider :isnone="abnormalRecordsList.length==0" nonetext="无记录"
  373. border-color="#fff"></u-divider>
  374. <!-- 异常 -->
  375. <view class="abnormal-item" v-for="(item,index) in abnormalRecordsList"
  376. :key="index"
  377. >
  378. <!-- @click="gotoUrl('/pages/abnormal/abnormalAlarmDetails?id='+item.id)"
  379. -->
  380. <view class="item-title">
  381. <view class="name">
  382. <span v-if="item.level==1" class="level level1 ">一级</span>
  383. <span v-if="item.level==2" class="level level2">二级</span>
  384. {{item.content}}
  385. </view>
  386. <view class="date" style="display: flex; justify-content: space-between;margin-top: 4rpx;">
  387. <view>{{item.title}}</view>
  388. <view>{{item.createTime}}</view>
  389. </view>
  390. </view>
  391. </view>
  392. </view>
  393. <!-- 能源管理 -->
  394. <view v-show="companyId" class="statistics statistics-manage">
  395. <view class="title">
  396. <view class="icon">
  397. <image class="img" src="@/assets/img/circleCopy1@1x.png" mode=""></image>
  398. </view>
  399. <view class="text">
  400. 能源管理
  401. </view>
  402. <view class="check-all switchWater" >
  403. <view class="s s1" :class="showAccountantWater?'':'index'"
  404. @click="showAccountantWater=false" >电表</view>
  405. <view class="s s2" :class="showAccountantWater?'index':''"
  406. @click="showAccountantWater=true" >水表</view>
  407. </view>
  408. </view>
  409. <template v-if="anchorpointShow('point-devices')">
  410. <view class="content"
  411. style="display: flex;justify-content: center;margin: 40px 0;"
  412. v-if="!getHomePageManageshowLoading">
  413. <div class="uni-toast" style="display: flex;font-size: 60rpx; color: rgb(192, 196, 204);" >
  414. <i class="uni-icon_toast uni-loading"
  415. style="
  416. width: 80rpx;
  417. height: 80rpx;
  418. "
  419. ></i><p class="uni-toast__content"> </p>加载中...</div>
  420. </view>
  421. <view class="content" v-else-if="getHomePageManageshowLoading&&meterList.length == 0">
  422. <u-divider :isnone="true" nonetext="无记录"
  423. border-color="#fff"></u-divider>
  424. </view>
  425. </template>
  426. <!-- 图表 -->
  427. <view class="chart" v-show="getHomePageManageshowLoading">
  428. <view class="u-subsection">
  429. <u-subsection :list="list" :current="homePageManageType" @change="sectionChange"
  430. font-size="24"></u-subsection>
  431. <view style="margin-top: 18rpx;" v-if="homePageManageType==5&&tabsFrom.show2Text">
  432. 指定时间:{{tabsFrom.show2Text}}
  433. </view>
  434. </view>
  435. <view class="incomeExpenditureClass point-Accountant" v-show="anchorpointShow('point-Accountant')" >
  436. <view class="incomeRow" >
  437. <view class="isOpenClass" @click="isOpen1=!isOpen1">
  438. <view class="isOpenClass1">收支统计</view>
  439. <view class="isOpenClass2">
  440. <span class="span">{{isOpen1?'收起':'展开'}}</span>
  441. <u-icon name="arrow-up" color="rgb(164 156 156)" v-show="isOpen1" size="24"></u-icon>
  442. <u-icon name="arrow-down" color="rgb(164 156 156)" v-show="!isOpen1" size="24"></u-icon>
  443. </view>
  444. </view>
  445. </view>
  446. <view class="incomeRow" v-show="isOpen1" >
  447. <view class="income1">
  448. <view class="income11">
  449. 收入(元)
  450. </view>
  451. <view class="income12">
  452. {{incomeExpenditureObj.incomeFee}}
  453. <span class="income121" v-if="!incomeExpenditureObj.id">加载中...</span>
  454. </view>
  455. </view>
  456. <view class="income1">
  457. <view class="income11">
  458. 支出(元)
  459. </view>
  460. <view class="income12">
  461. {{incomeExpenditureObj.expenditureFee}}
  462. <span class="income121" v-if="!incomeExpenditureObj.id">加载中...</span>
  463. </view>
  464. </view>
  465. <view class="income1">
  466. <view class="income11">
  467. 营收(元)
  468. </view>
  469. <view class="income12" :style="incomeExpenditureObj.differenceFee>=0?'color:red':'color:#52b8aa'">
  470. {{incomeExpenditureObj.differenceFee>0?'+':''}}{{incomeExpenditureObj.differenceFee}}
  471. <span class="income121" v-if="!incomeExpenditureObj.id">加载中...</span>
  472. </view>
  473. </view>
  474. </view>
  475. <view class="incomeRow" v-show="isOpen1" >
  476. <view class="income1">
  477. <view class="income11">
  478. 增收电量(度)
  479. </view>
  480. <view class="income12">
  481. {{incomeExpenditureObj.addKwh}}
  482. <span class="income121" v-if="!incomeExpenditureObj.id">加载中...</span>
  483. </view>
  484. </view>
  485. <view class="income1">
  486. <view class="income11">
  487. 减支电量(度)
  488. </view>
  489. <view class="income12">
  490. {{incomeExpenditureObj.minusKwh}}
  491. <span class="income121" v-if="!incomeExpenditureObj.id">加载中...</span>
  492. </view>
  493. </view>
  494. <view class="income1">
  495. <view class="income11">
  496. 增收减支电量(度)
  497. </view>
  498. <view class="income12" :style="incomeExpenditureObj.addMinusKwh>=0?'color:red':'color:#52b8aa'">
  499. {{incomeExpenditureObj.addMinusKwh>0?'+':''}}{{incomeExpenditureObj.addMinusKwh}}
  500. <span class="income121" v-if="!incomeExpenditureObj.id">加载中...</span>
  501. </view>
  502. </view>
  503. </view>
  504. <view class="incomeRow" v-show="isOpen1" >
  505. <view class="income1">
  506. <view class="income11">
  507. 营增收入(元)
  508. </view>
  509. <view class="income12" style="color:#52b8aa">
  510. {{incomeExpenditureObj.totalFee}}
  511. <span class="income121" v-if="!incomeExpenditureObj.id">加载中...</span>
  512. </view>
  513. </view>
  514. <view class="income2">
  515. <view class="income11">
  516. 代缴费收入(元)
  517. </view>
  518. <view class="income12" style="color:#52b8aa">
  519. <view class="income12-1"></view>
  520. <view class="income12-2">
  521. {{incomeExpenditureObj.proxyFee}}
  522. </view>
  523. <view class="income12-3" @click="gotoUrl('/pages/proxy/proxyList?companyId='+companyId+'&sp='+childInfo.sp+'&type='+homePageManageType)" >
  524. <u>查看明细</u>
  525. </view>
  526. </view>
  527. </view>
  528. </view>
  529. </view>
  530. <view class="incomeExpenditureClass point-Accountant" v-show="anchorpointShow('point-Accountant-water')" >
  531. <view class="incomeRow" >
  532. <view class="isOpenClass" @click="isOpen1=!isOpen1">
  533. <view class="isOpenClass1">收支统计</view>
  534. <view class="isOpenClass2">
  535. <span class="span">{{isOpen1?'收起':'展开'}}</span>
  536. <u-icon name="arrow-up" color="rgb(164 156 156)" v-show="isOpen1" size="24"></u-icon>
  537. <u-icon name="arrow-down" color="rgb(164 156 156)" v-show="!isOpen1" size="24"></u-icon>
  538. </view>
  539. </view>
  540. </view>
  541. <view class="incomeRow" v-show="isOpen1" >
  542. <view class="income1">
  543. <view class="income11">
  544. 收入(元)
  545. </view>
  546. <view class="income12">
  547. {{incomeExpenditureObj.incomeFee}}
  548. <span class="income121" v-if="!incomeExpenditureObj.id">加载中...</span>
  549. </view>
  550. </view>
  551. <view class="income1">
  552. <view class="income11">
  553. 支出(元)
  554. </view>
  555. <view class="income12">
  556. {{incomeExpenditureObj.expenditureFee}}
  557. <span class="income121" v-if="!incomeExpenditureObj.id">加载中...</span>
  558. </view>
  559. </view>
  560. <view class="income1">
  561. <view class="income11">
  562. 营收(元)
  563. </view>
  564. <view class="income12" :style="incomeExpenditureObj.differenceFee>=0?'color:red':'color:#52b8aa'">
  565. {{incomeExpenditureObj.differenceFee>0?'+':''}}{{incomeExpenditureObj.differenceFee}}
  566. <span class="income121" v-if="!incomeExpenditureObj.id">加载中...</span>
  567. </view>
  568. </view>
  569. </view>
  570. <view class="incomeRow" v-show="isOpen1" >
  571. <view class="income2">
  572. <view class="income11">
  573. 节约用水量(立方米)
  574. </view>
  575. <view class="income12" :style="incomeExpenditureObj.addMinusKwh>=0?'color:red':'color:#52b8aa'">
  576. {{incomeExpenditureObj.addMinusKwh>0?'+':''}}{{incomeExpenditureObj.addMinusKwh}}
  577. <span class="income121" v-if="!incomeExpenditureObj.id">加载中...</span>
  578. </view>
  579. </view>
  580. <view class="income1">
  581. <view class="income11">
  582. 增收电量(度)
  583. </view>
  584. <view class="income12">
  585. {{incomeExpenditureObj.addKwh}}
  586. <span class="income121" v-if="!incomeExpenditureObj.id">加载中...</span>
  587. </view>
  588. </view>
  589. </view>
  590. </view>
  591. <view v-show="anchorpointShow('point-Electricityconsumptiontype')" >
  592. <view class="incomeRow" >
  593. <view class="isOpenClass point-Electricityconsumptiontype" @click="isOpen2=!isOpen2">
  594. <view class="isOpenClass1">用电类型</view>
  595. <view class="isOpenClass2">
  596. <span class="span">{{isOpen2?'收起':'展开'}}</span>
  597. <u-icon name="arrow-up" color="rgb(164 156 156)" v-show="isOpen2" size="24"></u-icon>
  598. <u-icon name="arrow-down" color="rgb(164 156 156)" v-show="!isOpen2" size="24"></u-icon>
  599. </view>
  600. </view>
  601. </view>
  602. <view class="chat-box " v-show="isOpen2" id="barEcharts-statistics" >
  603. </view>
  604. </view>
  605. </view>
  606. <view class="search" v-if="false">
  607. <view class="switch">
  608. <u-switch v-model="checked" size="40"></u-switch><text>只看离线表</text>
  609. </view>
  610. <view class="search-box">
  611. <input type="text" placeholder="请输入电表查询" />
  612. <view class="icon">
  613. <img src="@/assets/img/riLine-search-line 1.svg" alt="" />
  614. </view>
  615. </view>
  616. </view>
  617. <view class="incomeExpenditureClass">
  618. <view class="incomeRow" >
  619. <view class="isOpenClass point-devices"
  620. v-show="anchorpointShow('point-devices')"
  621. style="padding: 0 16px;" v-if="getHomePageManageReady" @click="isOpen3=!isOpen3">
  622. <view class="isOpenClass1">设备列表</view>
  623. <view class="isOpenClass2"><span class="span">{{isOpen3?'收起':'展开'}}</span>
  624. <u-icon name="arrow-up" color="rgb(164 156 156)" v-show="isOpen3" size="24"></u-icon>
  625. <u-icon name="arrow-down" color="rgb(164 156 156)" v-show="!isOpen3" size="24"></u-icon>
  626. </view>
  627. </view>
  628. </view>
  629. </view>
  630. <!-- 电表统计 -->
  631. <Tree-Body :meterList="meterList" ref="mytree"
  632. class="" v-show="isOpen3&&anchorpointShow('point-devices')"
  633. :showPark="homePageManageObj.showPark"
  634. :childInfo="childInfo"
  635. @query="getHomePageManageChildMeter"
  636. v-if="getHomePageManageReady"
  637. :role="codes&&codes.indexOf('switch')!=-1"
  638. @switchBtn="switchBtnApi"
  639. ></Tree-Body>
  640. </view>
  641. <!-- 用电量 -->
  642. <view class="statistics-e statistics" v-if="!companyId">
  643. <view class="title">
  644. <view class="icon">
  645. <image class="img" src="@/assets/img/circleCopy1@1x.png" mode=""></image>
  646. </view>
  647. <view class="text">
  648. 用电量 (度)
  649. </view>
  650. <view class="check-all" @click="toEquipmentElectricity">
  651. 查看全部<u-icon name="arrow-right" size="24" color="#838383"></u-icon>
  652. </view>
  653. </view>
  654. <view class="content" style="display: flex;justify-content: center;margin: 40px 0;"
  655. v-if="getHomePageKwhshowLoading">
  656. <div class="uni-toast" style="display: flex;font-size: 60rpx; color: rgb(192, 196, 204);" >
  657. <i class="uni-icon_toast uni-loading"
  658. style="
  659. width: 80rpx;
  660. height: 80rpx;
  661. "
  662. ></i><p class="uni-toast__content"> </p>加载中...</div>
  663. </view>
  664. <view class="content" v-else-if="!getHomePageKwhshowLoading&&kWhListHome.length == 0">
  665. <u-divider :isnone="true" nonetext="无记录"
  666. border-color="#fff"></u-divider>
  667. </view>
  668. <view class="content" v-else >
  669. <view class="electricity">
  670. <view class="item" v-for="(item, index) in kWhListHome" :key="index"
  671. @click="toElectronicMonitoring(item)">
  672. <view class="item-content">
  673. <view class="equipment">
  674. <view class="equipment1 ">
  675. {{replaceLastTwoWords(item.name)}}
  676. </view>
  677. <view class="equipment2">
  678. {{item.installationAddressSimple}}
  679. </view>
  680. <view class="state" v-if="!item.online">
  681. <!-- <view class="dot off-line"></view> -->
  682. <view class="text">离线</view>
  683. </view>
  684. <view class="state state2" v-else>
  685. <!-- <view class="dot on-line"></view> -->
  686. <view class="text">在线</view>
  687. </view>
  688. </view>
  689. <view class="electricity">
  690. <view class="electricity-item electricity-item-day">
  691. <view class="date">
  692. 今日
  693. </view>
  694. <view class="number">
  695. {{item.thisDayKwh}}
  696. </view>
  697. </view>
  698. <view class="electricity-item">
  699. <view class="date">
  700. 本月
  701. </view>
  702. <view class="number">
  703. {{item.thisMonthKwh}}
  704. </view>
  705. </view>
  706. <view class="electricity-item">
  707. <view class="date">
  708. 上月
  709. </view>
  710. <view class="number">
  711. {{item.lastMonthKwh}}
  712. </view>
  713. </view>
  714. </view>
  715. </view>
  716. <view class="more">
  717. <u-icon name="arrow-right" color="#d4d4d4" size="24"></u-icon>
  718. </view>
  719. </view>
  720. </view>
  721. </view>
  722. </view>
  723. <!-- 用电量 -->
  724. <view class="statistics-e statistics" v-if="!companyId">
  725. <view class="title">
  726. <view class="icon">
  727. <image class="img" src="@/assets/img/circleCopy1@1x.png" mode=""></image>
  728. </view>
  729. <view class="text">
  730. 用水量 (立方米)
  731. </view>
  732. <view class="check-all" @click="toEquipmentElectricity">
  733. 查看全部<u-icon name="arrow-right" size="24" color="#838383"></u-icon>
  734. </view>
  735. </view>
  736. <view class="content" style="display: flex;justify-content: center;margin: 40px 0;"
  737. v-if="getHomePageKwhshowLoading">
  738. <div class="uni-toast" style="display: flex;font-size: 60rpx; color: rgb(192, 196, 204);" >
  739. <i class="uni-icon_toast uni-loading"
  740. style="
  741. width: 80rpx;
  742. height: 80rpx;
  743. "
  744. ></i><p class="uni-toast__content"> </p>加载中...</div>
  745. </view>
  746. <view class="content" v-else-if="!getHomePageKwhshowLoading&&kWhListHome.length == 0">
  747. <u-divider :isnone="true" nonetext="无记录"
  748. border-color="#fff"></u-divider>
  749. </view>
  750. <view class="content" v-else >
  751. <view class="electricity">
  752. <view class="item" v-for="(item, index) in kWhListHome" :key="index"
  753. @click="toElectronicMonitoring(item)">
  754. <view class="item-content">
  755. <view class="equipment">
  756. <view class="equipment1 ">
  757. {{replaceLastTwoWords(item.name)}}
  758. </view>
  759. <view class="equipment2">
  760. {{item.installationAddressSimple}}
  761. </view>
  762. <view class="state" v-if="!item.online">
  763. <!-- <view class="dot off-line"></view> -->
  764. <view class="text">离线</view>
  765. </view>
  766. <view class="state state2" v-else>
  767. <!-- <view class="dot on-line"></view> -->
  768. <view class="text">在线</view>
  769. </view>
  770. </view>
  771. <view class="electricity">
  772. <view class="electricity-item electricity-item-day">
  773. <view class="date">
  774. 今日
  775. </view>
  776. <view class="number">
  777. {{item.thisDayKwh}}
  778. </view>
  779. </view>
  780. <view class="electricity-item">
  781. <view class="date">
  782. 本月
  783. </view>
  784. <view class="number">
  785. {{item.thisMonthKwh}}
  786. </view>
  787. </view>
  788. <view class="electricity-item">
  789. <view class="date">
  790. 上月
  791. </view>
  792. <view class="number">
  793. {{item.lastMonthKwh}}
  794. </view>
  795. </view>
  796. </view>
  797. </view>
  798. <view class="more">
  799. <u-icon name="arrow-right" color="#d4d4d4" size="24"></u-icon>
  800. </view>
  801. </view>
  802. </view>
  803. </view>
  804. </view>
  805. <!-- 异常设备排名 -->
  806. <view class="statistics statistics-ranking" v-if="false">
  807. <view class="title">
  808. <view class="icon">
  809. <image class="img" src="@/assets/img/circleCopy1@1x.png" mode=""></image>
  810. </view>
  811. <view class="text">
  812. 异常设备排名
  813. </view>
  814. <view class="check-all">
  815. 查看全部<u-icon name="arrow-right" size="24" color="#838383"></u-icon>
  816. </view>
  817. </view>
  818. <!-- 合计 -->
  819. <view class="total">
  820. 本年度共有<text> 42</text>次设备异常告警
  821. </view>
  822. <view class="ranking-main">
  823. <view class="item" v-for="(item,i) in 3" :key="i"
  824. @click="gotoUrl('/pages/equipmentDataMonitoring/electronicMonitoring?id='+'&name=')">
  825. <view class="ranking">
  826. 1
  827. </view>
  828. <view class="name">
  829. <view class="name1">
  830. 荆鹏软件园01
  831. </view>
  832. <view class="name2">
  833. 荆鹏集团
  834. </view>
  835. </view>
  836. <view class="time">
  837. 5次
  838. </view>
  839. </view>
  840. </view>
  841. <!-- 查看全部排名 -->
  842. <!-- <view class="check-all" @click="gotoUrl('/pages/abnormal/abnormalDeviceRanking')">
  843. 查看全部排名 <u-icon name="arrow-down" size="24" color="rgba(119,119,119,1)"></u-icon>
  844. </view> -->
  845. </view>
  846. <u-divider nonetext="暂无数据" border-color="#CFD2D5">已经到底了</u-divider>
  847. </view>
  848. <view class="anchorpoint" v-show="anchorpointListNum>3">
  849. <view class="point"
  850. v-for="(item,i) in anchorpointList" :key="i"
  851. @click="anchorpointCk(item)" v-show="anchorpointShow(item.key)"
  852. :class="{ index: anchorpointIndex==item.key }" v-html="anchorpointHtml(item.name)" >
  853. </view>
  854. </view>
  855. <energyCenterTabbar :current="0"></energyCenterTabbar>
  856. </view>
  857. </template>
  858. <script>
  859. import {
  860. parseUnixTime,
  861. beforeTimeStamp,
  862. getWeek,newDate
  863. } from '@/apis/utils'
  864. import energyCenterTabbar from '@/components/energyCenterTabbar.vue'
  865. import electronicMonitoring from '@/pages/equipmentDataMonitoring/electronicMonitoring.vue'
  866. import * as echarts from 'echarts';
  867. import * as API_index from '@/apis/pagejs/index.js'
  868. import * as API_tenantList from '@/apis/pagejs/tenantList.js'
  869. import * as API from '@/apis/pagejs/energyManage.js'
  870. import TreeBody from '@/components/tree/tree-body.vue';
  871. export default {
  872. components: {
  873. energyCenterTabbar,TreeBody,electronicMonitoring
  874. },
  875. data() {
  876. return {
  877. abnormalRecordsList: [],
  878. queryDate: '',
  879. alarmsPercent: 0,
  880. alarmsForm: {
  881. okNum: 0,
  882. errorNum: 0,
  883. errorMonthNum: 0
  884. }, // 累计报警
  885. companyId: '', // 商户ID
  886. pageIndexe: 1, // 设备数据检测
  887. totalPagee: 1,
  888. deviceList: [],
  889. pageIndexp: 1, // 用电量
  890. totalPagep: 1,
  891. kWhList: [],
  892. kWhListHome: [],
  893. codes: '', // 判断:reading用电量 detector设备数据检测
  894. merchantList1: [], // 商户
  895. merchantList2: [],
  896. companyListMain: [],
  897. companyList: [],
  898. datacompanyInfo:{},
  899. companyInfotypeCurrent:1,
  900. companyInfotypeList:[
  901. {
  902. name: '变压器巡检仪'
  903. },
  904. {
  905. name: '费控电表计量仪'
  906. }
  907. ],
  908. popShow: false,
  909. popShowtest: true,
  910. current: 0,
  911. current2: 0,
  912. myLineChart: null, // 图表
  913. myBarChart: null,
  914. myPieChart: null,
  915. intervalId: null, // 用于存储间隔ID
  916. intervalReady: false, // 用于存储间隔ID
  917. list: [{
  918. name: '上月',
  919. value: "2"
  920. },
  921. {
  922. name: '当月',
  923. value: "1"
  924. },
  925. {
  926. name: '今日',
  927. value: "4"
  928. }, {
  929. name: '当年',
  930. value: "3"
  931. }, {
  932. name: '合计',
  933. value: "0"
  934. },
  935. {
  936. name: '指定时间',
  937. value: "10"
  938. }
  939. ],
  940. checked: false,
  941. homePageManageType: 2,
  942. meterList: [],
  943. showPark:false,
  944. meterListShow:{},
  945. homePageManageObj: {
  946. chargeKwh: 0,
  947. lostKwh: 0,
  948. parkKwh: 0,
  949. freeKwh:0,
  950. publicKwh:0,
  951. },
  952. endYear: '',
  953. params: {
  954. year: true,
  955. month: true,
  956. day: false,
  957. hour: false,
  958. minute: false,
  959. second: false
  960. },
  961. value: '2',
  962. clickType: -1,
  963. tabsFrom: {
  964. show1: false,
  965. show1Index: 0,
  966. show2Index: '',
  967. show2: false,
  968. show1Text: "全部类型",
  969. show2Text: "",
  970. },
  971. getHomePageManageReady:false,
  972. utabsone:true,
  973. incomeExpenditureObj:{},
  974. getHomePageKwhshowLoading:false,
  975. getHomePageManageshowLoading:false,
  976. companyInfotype:0,
  977. readingMeterNum:0, //计量仪
  978. monitorMeterNum:0, //巡检仪
  979. tenantListNum0:0,
  980. tenantListNum1:0,
  981. tenantListNum2:0,
  982. tenantListNum3:0,
  983. childList:[],
  984. childInfo:{},
  985. companyInfo:{},
  986. month:0,
  987. platformRevenueList:[],
  988. getPlatformRevenueReady:false,
  989. anchorpointIndex:"",
  990. anchorpointNum:0,
  991. isOpen1:true,
  992. isOpen2:true,
  993. isOpen3:true,
  994. showAccountantWater:false,
  995. anchorpointList:[
  996. {
  997. key:"point-meteroperation",name:"运行电表"
  998. },
  999. {
  1000. key:"point-PlatformRevenue",name:"收入统计"
  1001. },
  1002. {
  1003. key:"point-TenantManagement",name:"租户管理"
  1004. },
  1005. {
  1006. key:"point-Poweroutagereminder",name:"断电提醒"
  1007. },
  1008. {
  1009. key:"point-Accountant",name:"收支统计"
  1010. }
  1011. ,
  1012. {
  1013. key:"point-Accountant-water",name:"收支统计"
  1014. },{
  1015. key:"point-Electricityconsumptiontype",name:"用电类型"
  1016. },{
  1017. key:"point-devices",name:"设备列表"
  1018. }
  1019. ],
  1020. childCompanyList:{
  1021. id:"",
  1022. list:[]
  1023. },
  1024. popShow1:false,
  1025. userInfo:{},
  1026. }
  1027. },
  1028. onLoad() {
  1029. var date = new Date();
  1030. var year = date.getFullYear();
  1031. var month = date.getMonth() + 1 >= 10 ? date.getMonth() + 1 : '0' + (date.getMonth() + 1);
  1032. this.month=date.getMonth() + 1
  1033. this.endYear = new Date().getFullYear();
  1034. this.queryDate = parseUnixTime(new Date(), '{y}-{m}-{d}');
  1035. this.datacompanyInfo=this.carhelp.getPersonInfoPlus().companyInfo
  1036. this.userInfo=this.carhelp.getPersonInfo()
  1037. this.getfindByOpenId();
  1038. },
  1039. onReady() {
  1040. },
  1041. onUnload(){
  1042. this.clearTimer(); // 组件销毁前清除定时器
  1043. //console.log("组件销毁前清除定时器")
  1044. },
  1045. beforeDestroy() {
  1046. this.clearTimer(); // 组件销毁前清除定时器
  1047. //console.log("组件销毁前清除定时器")
  1048. },
  1049. onHide(){
  1050. this.intervalReady=false
  1051. this.clearTimer();
  1052. },
  1053. onShow(){
  1054. // if(!this.intervalReady&&this.companyList.length>1){
  1055. // this.startInterval();
  1056. // }
  1057. },
  1058. computed:{
  1059. anchorpointListNum(){
  1060. var num=0;
  1061. this.anchorpointList.forEach((item)=>{
  1062. if(this.anchorpointShow(item.key)){
  1063. num+=1;
  1064. }
  1065. })
  1066. return num
  1067. },
  1068. incomeExpenditureBl(){
  1069. //var bl=(this.childInfo.sp==1 ||this.childInfo.type!=4&&(this.childInfo.styleTemplate==1))&&!this.userInfo.authorizedMeterEnabled
  1070. var bl=(this.childInfo.sp==1 ||this.childInfo.type!=4&&(this.childInfo.styleTemplate==1||true))&&!this.userInfo.authorizedMeterEnabled
  1071. return bl;
  1072. },
  1073. childListName(){
  1074. return this.childInfo.name;
  1075. },
  1076. companyType(){
  1077. return this.companyInfo.type;
  1078. }
  1079. },
  1080. onPageScroll(e) {
  1081. this.anchorpointNum=e.scrollTop
  1082. },
  1083. methods: {
  1084. anchorpointShow(key){
  1085. if(this.childInfo.sp==1||this.companyId==''){
  1086. if(key=='point-meteroperation'){
  1087. return true
  1088. }
  1089. if(key=='point-PlatformRevenue'){
  1090. return this.getPlatformRevenueBl()
  1091. }
  1092. if(key=='point-TenantManagement0'){
  1093. return this.codes&&this.codes.indexOf('property')!=-1
  1094. }
  1095. if(key=='point-TenantManagement'){
  1096. return (this.companyListMain.length==1||this.companyId)&&this.anchorpointShow('point-TenantManagement0')
  1097. }
  1098. if(key=='point-Poweroutagereminder'){
  1099. return this.anchorpointShow('point-TenantManagement')&&(this.tenantListNum0)
  1100. }
  1101. }else{
  1102. if(key=='point-Electricityconsumptiontype'){
  1103. return this.incomeExpenditureBl&&this.childInfo.sp!=1&&!this.showAccountantWater
  1104. }
  1105. }
  1106. if(this.companyId&&(this.kWhList.length!=1)){
  1107. if(key=='point-Accountant'){
  1108. //console.log("point-Accountantpoint-Accountantpoint-Accountantpoint-Accountant")
  1109. return this.incomeExpenditureBl&&!this.showAccountantWater
  1110. }
  1111. if(key=='point-Accountant-water'){
  1112. //console.log("point-Accountantpoint-Accountantpoint-Accountantpoint-Accountant")
  1113. return this.incomeExpenditureBl&&this.showAccountantWater
  1114. }
  1115. if(this.childInfo.sp!=1){
  1116. if(key=='point-devices'){
  1117. return true&&!this.showAccountantWater
  1118. }
  1119. }
  1120. }
  1121. return false
  1122. },
  1123. anchorpointHtml(str){
  1124. if (!str || str.length === 0) {
  1125. return str; // 如果字符串为空或未定义,则直接返回
  1126. }
  1127. let result = '';
  1128. for (let i = 0; i < str.length; i += 2) {
  1129. result += str.substr(i, 2) + (i < str.length - 2 ? '<br/>' : '');
  1130. }
  1131. return result;
  1132. },
  1133. anchorpointCk(item){
  1134. this.anchorpointIndex=item.key
  1135. //const info = uni.getSystemInfoSync();
  1136. let that = this;
  1137. uni.createSelectorQuery().select("."+item.key).boundingClientRect(function(res){//定位到你要的class的位置
  1138. // console.log("标签获取====>",item.key+JSON.stringify(res),info.windowHeight)
  1139. var num=that.anchorpointNum+res.top-70
  1140. uni.pageScrollTo({
  1141. scrollTop:num,
  1142. duration: 300
  1143. });
  1144. }).exec()
  1145. },
  1146. titleCk() {
  1147. if(this.childCompanyList.id==this.companyInfo.id){
  1148. this.popShow1 = true
  1149. }else{
  1150. this.getChildCompanyList()
  1151. }
  1152. },
  1153. getChildCompanyList(){
  1154. uni.showLoading({
  1155. title: "加载中",
  1156. mask: true,
  1157. })
  1158. API.childCompanyList({
  1159. companyId:this.companyInfo.id
  1160. }).then((response) => {
  1161. uni.hideLoading();
  1162. this.childCompanyList={
  1163. id:this.companyInfo.id,
  1164. list:response.data.companyInfoList
  1165. }
  1166. this.popShow1 = true
  1167. //this.getTenantListReady=true
  1168. }).catch(error => {
  1169. uni.showToast({
  1170. title: error,
  1171. icon: "none"
  1172. })
  1173. })
  1174. },
  1175. stateBl(timekey,day){
  1176. var get=newDate(timekey)
  1177. var time=new Date()
  1178. if(!day){
  1179. return time>get;
  1180. }else{
  1181. var get2=newDate(timekey)
  1182. get2.setDate(get2.getDate() - day)
  1183. //console.log(timekey)
  1184. return get2<time&&get>time;
  1185. }
  1186. },
  1187. selectTypeMethod(tenant,selectType){
  1188. var selectType1=this.selectType;
  1189. if(selectType){
  1190. selectType1=selectType;
  1191. }
  1192. // if(){
  1193. // }
  1194. if(true){
  1195. var bl=false;
  1196. for(var j in tenant.tenantContractList){
  1197. var tenant1=tenant.tenantContractList[j]
  1198. ////console.log(tenant1.autoDeductFee)
  1199. // if(tenant1.autoDeductFee!=true){
  1200. // continue;
  1201. // }
  1202. if(selectType1==0){
  1203. return true
  1204. }
  1205. if(selectType1==1){
  1206. if(tenant1.autoDeductFee!=true){
  1207. continue;
  1208. }
  1209. return tenant.balance<tenant.minBalance
  1210. }
  1211. for(var k in tenant1.contractItemList){
  1212. var item=tenant1.contractItemList[k]
  1213. ////console.log(item.prepaidEndTime)
  1214. if(item.paymentMethod==1&&item.name!='电费'){
  1215. if(selectType1==2){
  1216. if(item.prepaidEndTime&&this.stateBl(item.prepaidEndTime,30)){
  1217. bl=true;
  1218. }
  1219. }
  1220. if(selectType1==3){
  1221. if(item.prepaidEndTime&&this.stateBl(item.prepaidEndTime)){
  1222. bl=true;
  1223. }
  1224. if(item.prepaidEndTime==null){
  1225. bl=true;
  1226. }
  1227. }
  1228. }
  1229. }
  1230. }
  1231. return bl
  1232. }
  1233. },
  1234. getTenantList(companyId){
  1235. // uni.showLoading({
  1236. // title: "加载中",
  1237. // mask: true,
  1238. // })
  1239. this.tenantListNum1=0
  1240. this.tenantListNum2=0
  1241. this.tenantListNum3=0
  1242. API_tenantList.tenantContractList({
  1243. companyId:this.childInfo.id,
  1244. queryParent:(this.childInfo.sp==1)?1:0
  1245. }).then((response) => {
  1246. uni.hideLoading();
  1247. //this.getTenantListReady=true
  1248. var tenantList=response.data.tenantInfoList;
  1249. this.tenantListNum0=tenantList.length
  1250. for(var i in tenantList){
  1251. var obj=tenantList[i]
  1252. if(this.selectTypeMethod(obj,1)){
  1253. this.tenantListNum1++;
  1254. }
  1255. if(this.selectTypeMethod(obj,2)){
  1256. this.tenantListNum2++;
  1257. }
  1258. if(this.selectTypeMethod(obj,3)){
  1259. this.tenantListNum3++;
  1260. }
  1261. }
  1262. this.getAbnormalAlarmRecord(this.companyId);
  1263. }).catch(error => {
  1264. uni.showToast({
  1265. title: error,
  1266. icon: "none"
  1267. })
  1268. })
  1269. },
  1270. //绑定权限
  1271. getfindByOpenId() {
  1272. API_index.findByOpenId({
  1273. openId: this.carhelp.getOpenId()
  1274. }).then((response) => {
  1275. if(response.data&&response.data.companyInfo){
  1276. this.datacompanyInfo=response.data.companyInfo
  1277. this.companyInfotype = response.data.companyInfo.type;
  1278. if(this.companyInfotype==4){
  1279. this.getFindMeterList()
  1280. }
  1281. }
  1282. if(response.data){
  1283. var token = response ? response.data.token : '';
  1284. this.carhelp.setPersonInfo(response.data.regUser );
  1285. this.carhelp.setToken(token);
  1286. this.carhelp.setPersonInfoPlus(response.data);
  1287. this.codes =response.data.regUser.codes
  1288. }
  1289. this.userInfo=this.carhelp.getPersonInfo()
  1290. this.getCompanyInfoList();
  1291. }).catch(error => {
  1292. uni.showToast({
  1293. title: error,
  1294. icon: "none"
  1295. })
  1296. })
  1297. },
  1298. getFindMeterList(){
  1299. API.findMeterList().then((response) => {
  1300. //readingMeterNum 计量仪 //monitorMeterNum 巡检仪
  1301. this.readingMeterNum=response.data.readingMeterNum
  1302. this.monitorMeterNum=response.data.monitorMeterNum
  1303. }).catch(error => {
  1304. uni.showToast({
  1305. title: error,
  1306. icon: "none"
  1307. })
  1308. })
  1309. },
  1310. switchBtnApiMethod(node,key){
  1311. uni.showLoading({
  1312. title: "加载中",
  1313. mask: true,
  1314. })
  1315. API.remoteSwitch({
  1316. meterId:node.id,
  1317. enabled:key
  1318. }).then((res) => {
  1319. uni.hideLoading();
  1320. node.switchStatus=key
  1321. }).catch(error => {
  1322. uni.showToast({
  1323. title: error,
  1324. icon: "none"
  1325. })
  1326. })
  1327. },
  1328. switchBtnApi(node,key){
  1329. uni.showModal({
  1330. confirmColor:`${key?'#3CC51F':'red'}`,
  1331. confirmText:`${key?'开启':'关闭'}`,
  1332. content: `确认是否要"${key?'开启':'关闭'}"${this.replaceLastTwoWords(node.name)}`,
  1333. title: "提示",
  1334. success:res=> {
  1335. if(res.confirm){
  1336. this.switchBtnApiMethod(node,key);
  1337. }
  1338. }
  1339. })
  1340. //console.log(node,key)
  1341. },
  1342. getIncomeExpenditure(companyId){
  1343. if(!this.anchorpointShow('point-Accountant')){
  1344. return
  1345. }
  1346. API.incomeExpenditure({
  1347. //parentMeterId:item.id,
  1348. queryDate:this.queryDate,
  1349. companyId: companyId,
  1350. type: this.list[this.homePageManageType].value,
  1351. queryParent:this.childInfo.sp==1?1:0
  1352. }).then((response) => {
  1353. if(this.companyId!=companyId){
  1354. return
  1355. }
  1356. this.incomeExpenditureObj=response.data
  1357. this.incomeExpenditureObj.id=1
  1358. }).catch(error => {
  1359. uni.showToast({
  1360. title: error,
  1361. icon: "none"
  1362. })
  1363. })
  1364. },
  1365. // 设备数据监测
  1366. getHomePageManageChildMeter(item,bl,companyId) {
  1367. if(!this.anchorpointShow('point-devices')){
  1368. return
  1369. }
  1370. if(!companyId){
  1371. companyId=this.companyId
  1372. }
  1373. if(!bl){
  1374. // uni.showLoading({
  1375. // title: "加载中",
  1376. // mask: true,
  1377. // })
  1378. }
  1379. API.homePageManageChildMeter({
  1380. parentMeterId:item.id,
  1381. queryDate:this.queryDate,
  1382. companyId: companyId,
  1383. type: this.list[this.homePageManageType].value
  1384. }).then((response) => {
  1385. // if(!bl){
  1386. // uni.hideLoading();
  1387. // }
  1388. // this.meterList = response.data.meterList;
  1389. // if(!this.meterListShow.id){
  1390. // this.meterListShow.id=1
  1391. // this.recursionList(this.meterList)
  1392. // }
  1393. if(this.companyId!=companyId){
  1394. return
  1395. }
  1396. var childMeterList=response.data.childMeterList
  1397. item.childMeterList=childMeterList
  1398. if(!bl){
  1399. for(var i in childMeterList){
  1400. var obj=childMeterList[i]
  1401. this.getHomePageManageChildMeter(obj,true,this.companyId)
  1402. }
  1403. }
  1404. }).catch(error => {
  1405. uni.showToast({
  1406. title: error,
  1407. icon: "none"
  1408. })
  1409. })
  1410. },
  1411. recursionList(list){
  1412. if(list){
  1413. for(var i in list){
  1414. var obj=list[i]
  1415. this.meterListShow[obj.id]=false
  1416. this.recursionList(obj.childMeterList)
  1417. }
  1418. }
  1419. },
  1420. ifBtnShow(item){
  1421. return this.meterListShow[item.id]
  1422. },
  1423. showBtn(item){
  1424. var key=this.meterListShow[item.id];
  1425. this.$set(this.meterListShow,item.id,!key)
  1426. //console.log("showBtn,",key)
  1427. this.$forceUpdate()
  1428. },
  1429. selector2reset(e) {
  1430. //console.log(e)
  1431. this.tabsFrom.show2Text = '全部时间'
  1432. this.tabsFrom.show2Index = '';
  1433. if (e.day) {
  1434. this.queryDate = parseUnixTime(new Date(), '{y}-{m}-{d}');
  1435. this.getHomePageManage(0,this.companyId);
  1436. } else {
  1437. this.homePageManageType = this.clickType;
  1438. if (this.homePageManageType != 5) {
  1439. this.list[5].name = '指定时间';
  1440. }
  1441. this.getHomePageManage(0,this.companyId);
  1442. }
  1443. },
  1444. selector2cancel() {
  1445. if(this.clickType != -1) {
  1446. }
  1447. this.homePageManageType = this.clickType;
  1448. },
  1449. selector2confirm(e) {
  1450. this.tabsFrom.show2Text = e.year + "年" + e.month + "月"
  1451. this.tabsFrom.show2Index = e.year + "-" + e.month
  1452. if (e.day) {
  1453. this.tabsFrom.show2Text += e.day + "日"
  1454. this.tabsFrom.show2Index += '-' + e.day
  1455. this.queryDateMethod(this.tabsFrom.show2Index, true)
  1456. } else {
  1457. this.queryDateMethod(this.tabsFrom.show2Index, false)
  1458. }
  1459. },
  1460. queryDateMethod(queryTime, day) {
  1461. this.homePageManageType = "5";
  1462. if (day) {
  1463. this.queryDate = queryTime;
  1464. this.list[5].value = '9';
  1465. } else {
  1466. this.queryDate = queryTime + "-01";
  1467. this.list[5].value = '10';
  1468. }
  1469. //this.list[5].name = queryTime;
  1470. this.getHomePageManage(0,this.companyId);
  1471. },
  1472. clearTimer() {
  1473. if (this.intervalId) {
  1474. clearInterval(this.intervalId); // 清除定时器
  1475. this.intervalId = null; // 重置定时器ID
  1476. }
  1477. },
  1478. startInterval() {
  1479. this.clearTimer(); // 组件销毁前清除定时器
  1480. this.intervalId = setInterval(() => {
  1481. this.getHomePageKwh('', true)
  1482. }, 60000);
  1483. },
  1484. merchantChangeApi() {
  1485. this.popShow=false
  1486. this.getHomePageManageshowLoading=false;
  1487. this.meterList=[]
  1488. if (this.companyId) {
  1489. this.getHomePageKwh(this.companyId,true)
  1490. }else{
  1491. this.kWhList=[]
  1492. }
  1493. if(this.anchorpointShow('point-PlatformRevenue')){
  1494. this.getPlatformRevenue(this.companyId)
  1495. }
  1496. if(this.anchorpointShow('point-TenantManagement')){
  1497. this.getTenantList(this.companyId)
  1498. }
  1499. this.getDeviceStatus(this.companyId)
  1500. },
  1501. companyInfotypeChange(index){
  1502. if(index!=this.companyInfotypeCurrent){
  1503. var url=""
  1504. if(process.car.NODE_ENV=='dev'){
  1505. url='http://localhost:8081/#/'
  1506. }else if(process.car.NODE_ENV=='test'){
  1507. url='https://dgj.hbjp.com.cn/charging-prod/jp-housekeep-electric-test/#/'
  1508. }else{
  1509. url='https://dgj.hbjp.com.cn/charging-prod/jp-housekeep-electric/#/'
  1510. }
  1511. window.location.href=url+"pages/statistics/statistics"
  1512. }
  1513. },
  1514. change(index) {
  1515. this.current = index;
  1516. this.current2=0;
  1517. this.childList=[]
  1518. var company= this.merchantList1[index]
  1519. if(company.id!=''){
  1520. if(company.childList){
  1521. this.childList=[
  1522. ...company.childList
  1523. ];
  1524. if(company.type==5){
  1525. this.childList.unshift({
  1526. id: company.id,
  1527. name: '综合统计',
  1528. sp:1
  1529. });
  1530. }
  1531. }
  1532. if(this.childList&&this.childList.length){
  1533. this.companyId = this.childList[0].id;
  1534. this.childInfo=this.childList[0]
  1535. }else{
  1536. this.childList=[]
  1537. this.companyId =company.id
  1538. this.childInfo=company
  1539. }
  1540. }else{
  1541. this.companyId =''
  1542. }
  1543. console.log(this.childInfo)
  1544. this.companyInfo=company;
  1545. this.merchantChangeApi()
  1546. },
  1547. change2(index) {
  1548. this.current2=index;
  1549. this.companyId = this.childList[this.current2].id;
  1550. this.childInfo=this.childList[this.current2]
  1551. this.merchantChangeApi()
  1552. },
  1553. change3(index) {
  1554. //this.current2=index;
  1555. this.companyId = this.childCompanyList.list[index].id;
  1556. this.childInfo=this.childCompanyList.list[index]
  1557. this.popShow1=false;
  1558. this.merchantChangeApi()
  1559. },
  1560. merchantChange(company, index) {
  1561. if(this.current==0){
  1562. this.current=1;
  1563. }
  1564. var m = company;
  1565. var n = this.merchantList1[this.current];
  1566. this.merchantList1[this.current] = m;
  1567. this.merchantList2[index] = n;
  1568. //this.$forceUpdate()
  1569. this.utabsone=false
  1570. this.companyId = company.id;
  1571. this.companyInfo=company
  1572. //console.log(company.type+"!!!!!!!!")
  1573. if(company.id!=''){
  1574. if(company.childList){
  1575. this.childList=company.childList;
  1576. if(company.type==5){
  1577. this.childList.unshift({
  1578. id: company.id,
  1579. name: '综合统计',
  1580. sp:1
  1581. });
  1582. }
  1583. }
  1584. if(this.childList&&this.childList.length){
  1585. this.companyId = this.childList[0].id;
  1586. this.childInfo=this.childList[0]
  1587. }else{
  1588. this.childList=[]
  1589. this.companyId =company.id
  1590. this.childInfo=company
  1591. }
  1592. }else{
  1593. this.companyId =''
  1594. }
  1595. this.merchantChangeApi()
  1596. this.popShow = false;
  1597. },
  1598. getCompanyInfoList() {
  1599. // uni.showLoading({
  1600. // title: "加载中",
  1601. // mask: true,
  1602. // })
  1603. API.deviceCompanyList().then((response) => {
  1604. //uni.hideLoading();
  1605. var list = response.data.companyInfoList;
  1606. this.companyListMain=response.data.companyInfoList;
  1607. var mList1 = [];
  1608. var mList2 = [];
  1609. var sp=0
  1610. var id=""
  1611. if(list.length==1&&list[0].childList&&list[0].childList.length){
  1612. list=list[0].childList
  1613. sp=1;
  1614. id=this.companyListMain[0].id
  1615. this.companyId=id
  1616. }
  1617. mList1.push({
  1618. id:id,
  1619. name: '全部',
  1620. sp:sp
  1621. });
  1622. for (var i = 0; i < list.length; i++) {
  1623. if (i >= 3) {
  1624. mList2.push(list[i]);
  1625. } else {
  1626. mList1.push(list[i]);
  1627. }
  1628. }
  1629. this.companyList = list;
  1630. if(this.companyList&&this.companyList.length&&this.companyList.length==1){
  1631. this.childList=list[0].childList
  1632. if(!this.childList){
  1633. this.childList=[]
  1634. }
  1635. // this.childList=[
  1636. // ...list[0].childList,
  1637. // {
  1638. // name:'创客公寓',
  1639. // id:''
  1640. // },
  1641. // {
  1642. // name:'创客公寓',
  1643. // id:''
  1644. // }
  1645. // ]
  1646. }
  1647. if(sp==1){
  1648. this.childInfo=this.companyListMain[0]
  1649. this.companyInfo=this.companyListMain[0]
  1650. this.childInfo.sp=1
  1651. this.getHomePageKwh('')
  1652. // this.companyInfo.sp=1
  1653. }else if(this.companyList.length==1&&this.childList.length==0){
  1654. this.companyId=this.companyList[0].id
  1655. this.childInfo=this.companyList[0]
  1656. this.companyInfo=this.companyList[0]
  1657. }else if(this.companyList.length==1){
  1658. this.companyId=this.childList[0].id
  1659. this.childInfo=this.childList[0]
  1660. this.companyInfo=this.companyList[0]
  1661. }else{
  1662. this.getHomePageKwh('')
  1663. }
  1664. this.merchantList1 = mList1;
  1665. this.merchantList2 = mList2;
  1666. this.merchantChangeApi()
  1667. }).catch(error => {
  1668. uni.showToast({
  1669. title: error,
  1670. icon: "none"
  1671. })
  1672. })
  1673. },
  1674. sectionChange(index) {
  1675. this.clickType = this.homePageManageType ;
  1676. this.homePageManageType = index;
  1677. if (index == 5) {
  1678. this.tabsFrom.show2 = true;
  1679. //this.params.day = false;
  1680. } else {
  1681. this.list[5].name = '指定时间'
  1682. this.getHomePageManage(0,this.companyId)
  1683. }
  1684. },
  1685. getHomePageManage(bl,companyId) {
  1686. if(this.myBarChart){
  1687. this.myBarChart.clear()
  1688. }
  1689. this.getHomePageManageReady=false
  1690. if(bl){
  1691. this.getHomePageManageshowLoading=false
  1692. }else{
  1693. uni.showLoading({
  1694. title: "加载中",
  1695. mask: true,
  1696. })
  1697. }
  1698. this.incomeExpenditureObj={}
  1699. var type=this.list[this.homePageManageType].value
  1700. API.homePageManage({
  1701. queryDate:this.queryDate,
  1702. companyId: companyId ,
  1703. type: type
  1704. }).then((response) => {
  1705. this.getHomePageManageReady=true
  1706. if(bl){
  1707. this.getHomePageManageshowLoading=true
  1708. }else{
  1709. uni.hideLoading();
  1710. }
  1711. if(this.companyId!=companyId){
  1712. return
  1713. }
  1714. this.meterList = response.data.meterList;
  1715. ////console.log(this.meterList)
  1716. this.homePageManageObj = response.data;
  1717. //this.$forceUpdate()
  1718. if(this.incomeExpenditureBl){
  1719. //&&this.homePageManageObj.showPark
  1720. this.myBarChart=null;
  1721. this.$nextTick(()=>{
  1722. this.getBarCharts()
  1723. })
  1724. this.getIncomeExpenditure(this.companyId);
  1725. }
  1726. }).catch(error => {
  1727. uni.showToast({
  1728. title: error,
  1729. icon: "none"
  1730. })
  1731. })
  1732. },
  1733. // 报警
  1734. getAbnormalAlarmRecord(companyId) {
  1735. if(this.anchorpointShow('point-Poweroutagereminder')){
  1736. }else{
  1737. return
  1738. }
  1739. API.remindList({
  1740. configId: '',
  1741. pageIndex: 1,
  1742. pageSize: 3,
  1743. companyId: this.childInfo.id,
  1744. queryParent:this.childInfo.sp?1:0
  1745. }).then((response) => {
  1746. if(this.companyId!=companyId){
  1747. return
  1748. }
  1749. this.abnormalRecordsList = response.data.data;
  1750. }).catch(error => {
  1751. uni.showToast({
  1752. title: error,
  1753. icon: "none"
  1754. })
  1755. })
  1756. },
  1757. selector1confirm(e) {
  1758. //this.getHomePageKwh()
  1759. //console.log(e)
  1760. this.companyId=e[0].value
  1761. this.current2=e[0].i
  1762. this.childInfo=this.childList[this.current2];
  1763. uni.showLoading()
  1764. this.merchantChangeApi()
  1765. },
  1766. // 用电量
  1767. getHomePageKwh( companyId,interval) {
  1768. if (!interval) {
  1769. // uni.showLoading({
  1770. // title: "加载中",
  1771. // mask: true,
  1772. // })
  1773. this.getHomePageKwhshowLoading=true;
  1774. }
  1775. API.homePageKwh({
  1776. pageIndex: 1,
  1777. pageSize: 5,
  1778. companyId:companyId,
  1779. queryKwh:companyId?1:'',//是否查电量 默认查
  1780. queryXn:companyId?1:'',//是否查虚拟表 默认不查
  1781. }).then((response) => {
  1782. if (!interval) {
  1783. //uni.hideLoading();
  1784. this.getHomePageKwhshowLoading=false;
  1785. }
  1786. if(this.companyId!=companyId){
  1787. return
  1788. }
  1789. if(companyId){
  1790. this.kWhList = response.data.data;
  1791. if(this.kWhList.length==1){
  1792. var item=this.kWhList[0];
  1793. this.$refs['refMyEm'+companyId].init({
  1794. id:item.id,
  1795. name:item.name,
  1796. companyId:item.companyId,
  1797. ref:1,
  1798. })
  1799. setTimeout(()=>{
  1800. this.$nextTick(()=>{
  1801. this.utabsone=true
  1802. })
  1803. },200)
  1804. }else{
  1805. this.getHomePageManage(1,this.companyId)
  1806. }
  1807. }else{
  1808. this.kWhListHome= response.data.data;
  1809. if (!interval) {
  1810. //this.startInterval(); // 组件挂载后开始间隔
  1811. }else{
  1812. this.intervalReady=true
  1813. }
  1814. setTimeout(()=>{
  1815. this.$nextTick(()=>{
  1816. this.utabsone=true
  1817. })
  1818. },200)
  1819. }
  1820. }).catch(error => {
  1821. uni.showToast({
  1822. title: error,
  1823. icon: "none"
  1824. })
  1825. })
  1826. },
  1827. getPlatformRevenueBl(){
  1828. return this.datacompanyInfo.type=='2'
  1829. },
  1830. getPlatformRevenue(companyId){
  1831. if(this.getPlatformRevenueBl()){
  1832. }else{
  1833. return
  1834. }
  1835. this.platformRevenueList=[]
  1836. this.getPlatformRevenueReady=false
  1837. var queryDate =parseUnixTime(new Date(), '{y}-{m}-1');
  1838. API.platformRevenue({
  1839. queryDate:queryDate,
  1840. companyId:companyId,
  1841. queryParent:this.childInfo.sp==1?1:0
  1842. }).then((response) => {
  1843. if(companyId!=this.companyId){
  1844. return
  1845. }
  1846. this.getPlatformRevenueReady=true
  1847. this.platformRevenueList=response.data.incomeList
  1848. }).catch(error => {
  1849. uni.showToast({
  1850. title: error,
  1851. icon: "none"
  1852. })
  1853. })
  1854. },
  1855. // 累计报警
  1856. getDeviceStatus(companyId) {
  1857. this.alarmsForm ={
  1858. okNum:0,errorNum:0
  1859. }
  1860. API.deviceStatus({
  1861. companyId: companyId,
  1862. queryParent:this.childInfo.sp==1?1:0
  1863. }).then((response) => {
  1864. if(this.companyId!=companyId){
  1865. return
  1866. }
  1867. setTimeout(()=>{
  1868. this.$nextTick(()=>{
  1869. this.utabsone=true
  1870. })
  1871. },200)
  1872. this.alarmsForm = response.data;
  1873. if (this.alarmsForm.okNum != 0) {
  1874. }
  1875. this.alarmsPercent = this.alarmsForm.okNum / (this.alarmsForm.okNum + this.alarmsForm
  1876. .errorNum) * 100;
  1877. }).catch(error => {
  1878. uni.showToast({
  1879. title: error,
  1880. icon: "none"
  1881. })
  1882. })
  1883. },
  1884. // 故障类型
  1885. getBarCharts() {
  1886. if (!this.myBarChart) {
  1887. this.myBarChart = echarts.init(document.getElementById('barEcharts-statistics'),null,{
  1888. width:uni.upx2px(620),height:uni.upx2px(740)
  1889. });
  1890. }
  1891. this.myBarChart.clear()
  1892. var data=[
  1893. {
  1894. name:"总表电量",
  1895. key:"parkKwh",
  1896. color:"#307af6"
  1897. },
  1898. {
  1899. name:"计费电量",
  1900. key:"chargeKwh",
  1901. color:"#52b8aa"
  1902. },
  1903. {
  1904. name:"自用电量",
  1905. key:"freeKwh",
  1906. color:"#53b56b"
  1907. },
  1908. {
  1909. name:"公用电量",
  1910. key:"publicKwh",
  1911. color:"#ef8132"
  1912. },
  1913. {
  1914. name:"电损量",
  1915. key:"lostKwh",
  1916. color:"#dc4441"
  1917. }
  1918. ]
  1919. var dataName=[]
  1920. var dataSeries=[]
  1921. for(var i in data){
  1922. var it=data[i]
  1923. dataName.push(it.name)
  1924. dataSeries.push({})
  1925. }
  1926. for(var i in data){
  1927. var it=data[i]
  1928. dataSeries[data.length-i-1]={
  1929. name:it.name,
  1930. type: 'bar',
  1931. itemStyle:{
  1932. color:it.color
  1933. },
  1934. data: [
  1935. this.homePageManageObj[it.key]
  1936. ],
  1937. coordinateSystem: 'polar',
  1938. label: {
  1939. show: true,
  1940. position: 'start',
  1941. formatter: '{c}度'
  1942. }
  1943. }
  1944. }
  1945. var option = {
  1946. polar: {
  1947. center:['50%','58%'],
  1948. radius:[25, '80%']
  1949. },
  1950. angleAxis: {
  1951. startAngle: 75,
  1952. label: {
  1953. rotate: 45, // 旋转标签,使得重叠的概率降低
  1954. // margin: 5 // 设置标签与轴线之间的距离,增加空间
  1955. }
  1956. },
  1957. legend: {
  1958. itemGap:5,
  1959. data: dataName,
  1960. //orient :'vertical'
  1961. },
  1962. radiusAxis: {
  1963. type: 'category',
  1964. data: ['']
  1965. },
  1966. tooltip: {},
  1967. series: dataSeries
  1968. };
  1969. //console.log(option)
  1970. this.myBarChart.setOption(option);
  1971. },
  1972. toDataMonitoringList() {
  1973. uni.navigateTo({
  1974. url: '/pages/equipmentDataMonitoring/dataMonitoring-list'
  1975. })
  1976. },
  1977. toEquipmentConditionMonitoring() {
  1978. uni.navigateTo({
  1979. url: '/pages/equipmentInformation/equipmentConditionMonitoring?companyId='+this.companyId
  1980. })
  1981. },
  1982. toWorkOrderManagement() {
  1983. uni.navigateTo({
  1984. url: '/pages/workOrderManagement/workOrderManagement'
  1985. })
  1986. },
  1987. toEquipmentElectricity() {
  1988. uni.navigateTo({
  1989. url: '/pages/equipmentDataMonitoring/equipmentElectricity?companyId=' + this.companyId
  1990. })
  1991. },
  1992. toElectronicMonitoring(item) {
  1993. uni.navigateTo({
  1994. url: '/pages/equipmentDataMonitoring/electronicMonitoring?id=' + item.id + '&name=' + item
  1995. .name +
  1996. '&companyId=' + item.companyId
  1997. })
  1998. }
  1999. }
  2000. }
  2001. </script>
  2002. <style lang="scss" scoped>
  2003. .incomeExpenditureClass{
  2004. width: 100%;
  2005. //padding:16rpx 0;
  2006. .incomeRow{
  2007. display: flex;
  2008. justify-content: space-evenly;
  2009. }
  2010. .income1:last-child{
  2011. .income11,.income12{
  2012. border-right: 1px solid #c5c3c3;
  2013. }
  2014. }
  2015. .income2{
  2016. width: 200% !important;
  2017. .income12{
  2018. display: flex;
  2019. justify-content: space-between;
  2020. border-right: 1px solid #c5c3c3;
  2021. .income12-1{
  2022. width: 100%;
  2023. }
  2024. .income12-1{
  2025. width: 100%;
  2026. }
  2027. .income12-3{
  2028. width: 100%;
  2029. color: rgba(22,119,255,1);
  2030. font-size: 28rpx;
  2031. }
  2032. }
  2033. }
  2034. .income1,.income2{
  2035. .income121{
  2036. font-size: 24rpx;
  2037. color:#c5c3c3;
  2038. }
  2039. width: 100%;
  2040. text-align: center;
  2041. .income11{
  2042. padding:6rpx 0;
  2043. background-color: #1677FF ;
  2044. color:#fff;
  2045. font-size: 26rpx;
  2046. white-space: pre;
  2047. border-top: 1px solid #c5c3c3;
  2048. border-left: 1px solid #c5c3c3;
  2049. }
  2050. .income12{
  2051. padding:6rpx 0;
  2052. border-top: 1px solid #c5c3c3;
  2053. border-bottom: 1px solid #c5c3c3;
  2054. border-left: 1px solid #c5c3c3;
  2055. font-size: 40rpx;
  2056. line-height: 56rpx;
  2057. }
  2058. }
  2059. }
  2060. /deep/.u-drawer-content {
  2061. margin-top: 88rpx;
  2062. }
  2063. .popup-tabs {
  2064. background-color: #fff;
  2065. display: flex;
  2066. align-items: center;
  2067. justify-content: space-between;
  2068. padding-top: 32rpx;
  2069. padding-right: 32rpx;
  2070. color: rgba(51, 51, 51, 1);
  2071. font-size: 32rpx;
  2072. .tabs {
  2073. width: 88%;
  2074. }
  2075. }
  2076. // /deep/.u-tab-item {
  2077. // width: 25% !important;
  2078. // flex: none !important;
  2079. // }
  2080. .tabs-box{
  2081. .tabs-len-1{
  2082. }
  2083. .tabs-len-2{
  2084. /deep/.u-tab-item {
  2085. // max-width: 39% !important;
  2086. // flex: none !important;
  2087. }
  2088. }
  2089. .tabs-len-3{
  2090. /deep/.u-tab-item {
  2091. max-width: 39% !important;
  2092. flex: none !important;
  2093. }
  2094. }
  2095. .tabs-len-4{
  2096. /deep/.u-tab-item {
  2097. max-width: 26% !important;
  2098. flex: none !important;
  2099. }
  2100. }
  2101. .tabs{
  2102. /deep/.u-tab-item:first-child {
  2103. width: 20% !important;
  2104. flex: none !important;
  2105. }
  2106. }
  2107. }
  2108. // /deep/.u-tab-item2 {
  2109. // width: 33% !important;
  2110. // flex: none !important;
  2111. // }
  2112. .tabs-options {
  2113. display: flex;
  2114. padding: 24rpx 32rpx 0;
  2115. flex-wrap: wrap;
  2116. .item {
  2117. width: 25%;
  2118. margin-bottom: 40rpx;
  2119. }
  2120. }
  2121. // 导航栏
  2122. .navbar {
  2123. background-color: rgba(22, 119, 255, 1);
  2124. color: #fff;
  2125. line-height: 88rpx;
  2126. display: flex;
  2127. justify-content: space-between;
  2128. align-items: center;
  2129. padding: 0 32rpx;
  2130. color: rgba(255, 255, 255, 1);
  2131. font-size: 36rpx;
  2132. position: fixed;
  2133. left: 0;
  2134. right: 0;
  2135. top: 0;
  2136. z-index: 999999;
  2137. font-weight: bold;
  2138. .title{
  2139. overflow: hidden;
  2140. white-space: nowrap;
  2141. text-overflow: ellipsis;
  2142. }
  2143. .img {
  2144. width: 48rpx;
  2145. height: 48rpx;
  2146. vertical-align: middle;
  2147. }
  2148. }
  2149. // 标签
  2150. .tabs-box {
  2151. padding: 32rpx 0;
  2152. margin-top: 66rpx;
  2153. padding-right: 32rpx;
  2154. background-color: rgba(22, 119, 255, 1);
  2155. display: flex;
  2156. align-items: center;
  2157. justify-content: space-between;
  2158. .tabs {
  2159. width: 97%;
  2160. }
  2161. .more{
  2162. padding-right: 12rpx;
  2163. }
  2164. }
  2165. .main {
  2166. border-radius: 16px 16px 0px 0px;
  2167. background: linear-gradient(180deg, rgba(242, 244, 246, 1) 61%, rgba(255, 255, 255, 0) 100%);
  2168. margin-top: -24rpx;
  2169. padding: 32rpx 32rpx 32rpx 20rpx;
  2170. .statistics {
  2171. border-radius: 8px;
  2172. background-color: rgba(255, 255, 255, 1);
  2173. box-shadow: 0px 1px 6px 0px rgba(0, 59, 142, 0.05);
  2174. margin-bottom: 16rpx;
  2175. padding: 40rpx;
  2176. .title {
  2177. display: flex;
  2178. align-items: center;
  2179. margin-bottom: 16rpx;
  2180. .img {
  2181. width: 36rpx;
  2182. height: 36rpx;
  2183. vertical-align: middle;
  2184. border-radius: 999px;
  2185. }
  2186. .change {
  2187. display: flex;
  2188. align-items: center;
  2189. .change-img {
  2190. width: 32rpx;
  2191. height: 32rpx;
  2192. vertical-align: middle;
  2193. }
  2194. text {
  2195. margin-left: 8rpx;
  2196. }
  2197. }
  2198. .text {
  2199. color: rgba(16, 16, 16, 1);
  2200. font-size: 36rpx;
  2201. margin-left: 16rpx;
  2202. font-weight: bold;
  2203. }
  2204. .change {
  2205. margin-left: 16rpx;
  2206. font-size: 24rpx;
  2207. color: #838383;
  2208. }
  2209. .check-all {
  2210. margin-left: auto;
  2211. color: rgba(131, 131, 131, 1);
  2212. font-size: 24rpx;
  2213. }
  2214. }
  2215. }
  2216. .switchWater{
  2217. display: flex;
  2218. margin-left: 8px;
  2219. .s{
  2220. border: 1px solid rgba(22,132,252,1);
  2221. color:rgba(22,132,252,1);
  2222. padding: 2px 8px;
  2223. }
  2224. .s2{
  2225. border-radius: 0 4px 4px 0;
  2226. }
  2227. .s1{
  2228. border-radius: 4px 0 0 4px;
  2229. }
  2230. .index{
  2231. background-color:rgba(22,132,252,1);
  2232. color: #fff;
  2233. }
  2234. }
  2235. // 用电量
  2236. .statistics-e {
  2237. padding: 40rpx;
  2238. .electricity {
  2239. background-color: #fff;
  2240. .item:last-of-type {
  2241. border: none;
  2242. padding-bottom: 0;
  2243. }
  2244. .item {
  2245. padding: 16rpx 0;
  2246. display: flex;
  2247. align-items: center;
  2248. justify-content: space-between;
  2249. border-bottom: 1px solid rgba(245, 245, 245, 1);
  2250. .item-content {
  2251. width: 93%;
  2252. }
  2253. .equipment {
  2254. display: flex;
  2255. align-items: center;
  2256. .equipment1 {
  2257. color: rgba(51, 51, 51, 1);
  2258. font-size: 32rpx;
  2259. max-width: 40%;
  2260. font-weight: bold;
  2261. white-space: nowrap;
  2262. overflow: hidden;
  2263. text-overflow: ellipsis;
  2264. }
  2265. .equipment2 {
  2266. color: rgba(119, 119, 119, 1);
  2267. margin-left: 16rpx;
  2268. max-width: 40%;
  2269. white-space: nowrap;
  2270. overflow: hidden;
  2271. text-overflow: ellipsis;
  2272. }
  2273. }
  2274. // 状态
  2275. .state {
  2276. white-space: pre;
  2277. //width: 64rpx;
  2278. //height: 36rpx;
  2279. padding: 0 4rpx;
  2280. line-height: 36rpx;
  2281. border-radius: 8rpx;
  2282. font-size: 22rpx;
  2283. text-align: center;
  2284. border: 1px solid rgba(255, 123, 0, 1);
  2285. color: rgba(255, 123, 0, 1);
  2286. margin-left: auto;
  2287. // .dot {
  2288. // margin-right: 8rpx;
  2289. // width: 16rpx;
  2290. // height: 16rpx;
  2291. // background-color: rgba(255, 123, 0, 1);
  2292. // border-radius: 999px;
  2293. // margin-left: auto;
  2294. // }
  2295. }
  2296. .state2 {
  2297. border: 1px solid rgba(0, 185, 98, 1);
  2298. color: rgba(0, 185, 98, 1);
  2299. }
  2300. .electricity {
  2301. display: flex;
  2302. justify-content: space-between;
  2303. align-items: center;
  2304. margin-top: 8rpx;
  2305. text-align: center;
  2306. .electricity-item {
  2307. display: flex;
  2308. align-items: center;
  2309. width: 33.3%;
  2310. height: 40rpx;
  2311. line-height: 40rpx;
  2312. .number {
  2313. color: rgba(51, 51, 51, 1);
  2314. font-weight: bold;
  2315. font-size: 24rpx;
  2316. margin-left: 8rpx;
  2317. }
  2318. .date {
  2319. color: rgba(119, 119, 119, 1);
  2320. font-size: 24rpx;
  2321. }
  2322. }
  2323. }
  2324. }
  2325. }
  2326. }
  2327. // 统计1
  2328. .statistics-1 {
  2329. background-color: rgba(255, 255, 255, 1);
  2330. width: 100%;
  2331. padding: 24rpx;
  2332. box-shadow: 0px 1px 6px 0px rgba(0, 59, 142, 0.05);
  2333. border-radius: 8px;
  2334. margin-bottom: 24rpx;
  2335. .item {
  2336. margin-top: 24rpx;
  2337. display: flex;
  2338. align-items: center;
  2339. .item-progess {
  2340. }
  2341. .total {
  2342. margin-left: 24rpx;
  2343. color: rgba(119, 119, 119, 1);
  2344. .total1 {
  2345. display: flex;
  2346. color: rgba(51, 51, 51, 1);
  2347. font-size: 32rpx;
  2348. font-weight: bold;
  2349. .normal {
  2350. margin-bottom: 12rpx;
  2351. }
  2352. }
  2353. .total2 {
  2354. color: rgba(119, 119, 119, 1);
  2355. }
  2356. .abnormal {
  2357. margin-left: 24rpx;
  2358. }
  2359. }
  2360. .total-number {
  2361. color: rgba(255, 123, 0, 1);
  2362. margin: 0 8rpx;
  2363. font-weight: bold;
  2364. }
  2365. }
  2366. }
  2367. // 统计2异常报警记录
  2368. .statistics-2 {
  2369. .abnormal-item:last-of-type {
  2370. border-bottom: none !important;
  2371. padding-bottom: 0;
  2372. }
  2373. .abnormal-item {
  2374. display: flex;
  2375. justify-content: space-between;
  2376. align-items: center;
  2377. padding: 16rpx;
  2378. border-bottom: 1px solid rgba(245, 245, 245, 1);
  2379. .item-title {
  2380. .level{
  2381. color:#fff;
  2382. border-radius: 8rpx;
  2383. font-weight: 400;
  2384. padding: 4rpx 8rpx;
  2385. font-size: 22rpx;
  2386. margin-right: 2px;
  2387. }
  2388. .level1{
  2389. background: red;
  2390. }
  2391. .level2{
  2392. background-color: rgba(255,123,0,1);
  2393. }
  2394. color: rgba(51, 51, 51, 1);
  2395. width: 100%;
  2396. .img {
  2397. width: 32rpx;
  2398. height: 32rpx;
  2399. margin-right: 8rpx;
  2400. }
  2401. .name {
  2402. color: rgba(51, 51, 51, 1);
  2403. font-weight: bold;
  2404. overflow: hidden;
  2405. white-space: nowrap;
  2406. text-overflow: ellipsis;
  2407. }
  2408. .date {
  2409. color: rgba(119, 119, 119, 1);
  2410. font-size: 24rpx;
  2411. }
  2412. }
  2413. .item-value {
  2414. text-align: right;
  2415. display: flex;
  2416. align-items: center;
  2417. .more {
  2418. margin-left: 8rpx;
  2419. }
  2420. .value1 {
  2421. font-weight: bold;
  2422. color: rgba(51, 51, 51, 1);
  2423. }
  2424. .value2 {
  2425. color: rgba(119, 119, 119, 1);
  2426. font-size: 24rpx;
  2427. }
  2428. }
  2429. }
  2430. }
  2431. .statistics-3 {
  2432. }
  2433. .statistics-4 {
  2434. }
  2435. // 异常设备排名
  2436. .statistics-ranking {
  2437. .total {
  2438. color: rgba(16, 16, 16, 1);
  2439. padding-left: 52rpx;
  2440. text {
  2441. color: #1677FF;
  2442. padding: 0 8rpx;
  2443. }
  2444. }
  2445. .ranking-main {
  2446. margin-top: 40rpx;
  2447. border-radius: 16px;
  2448. background-color: #fff;
  2449. .item:last-of-type {
  2450. margin-bottom: 0;
  2451. }
  2452. .item {
  2453. display: flex;
  2454. align-items: center;
  2455. margin-bottom: 32rpx;
  2456. .ranking {
  2457. color: rgba(16, 16, 16, 1);
  2458. font-weight: bold;
  2459. }
  2460. .icon {
  2461. width: 72rpx;
  2462. height: 72rpx;
  2463. border-radius: 4px;
  2464. background-color: rgba(219, 234, 255, 1);
  2465. display: flex;
  2466. align-items: center;
  2467. justify-content: center;
  2468. margin-left: 24rpx;
  2469. .img {
  2470. width: 48rpx;
  2471. height: 48rpx;
  2472. }
  2473. }
  2474. .name {
  2475. margin-left: 16rpx;
  2476. .name1 {
  2477. color: rgba(51, 51, 51, 1);
  2478. font-weight: bold;
  2479. }
  2480. .name2 {
  2481. color: rgba(119, 119, 119, 1);
  2482. font-size: 24rpx;
  2483. margin-top: 4rpx;
  2484. }
  2485. }
  2486. .time {
  2487. color: rgba(16, 16, 16, 1);
  2488. margin-left: auto;
  2489. font-weight: bold;
  2490. }
  2491. }
  2492. }
  2493. // 查看全部排名
  2494. .check-all {
  2495. text-align: center;
  2496. color: rgba(119, 119, 119, 1);
  2497. font-size: 12px;
  2498. }
  2499. }
  2500. // 能源管理
  2501. .statistics-manage {
  2502. padding: 40rpx 0;
  2503. .title,
  2504. .chart,
  2505. .search,
  2506. .meter-statistic {
  2507. padding: 0 32rpx;
  2508. }
  2509. // 图表
  2510. .chart {
  2511. padding-top: 32rpx;
  2512. border-top: 1px solid rgba(242, 242, 242, 1);
  2513. /deep/.u-subsection {
  2514. padding: 2px;
  2515. }
  2516. /deep/.u-item {
  2517. padding: 0;
  2518. font-size: 24rpx
  2519. }
  2520. .chat-box {
  2521. //margin-top: 24rpx;
  2522. width: 100%;
  2523. //height: 480rpx;
  2524. img {
  2525. width: 100%;
  2526. height: 100%;
  2527. }
  2528. }
  2529. }
  2530. .search {
  2531. border-top: 1px solid rgba(242, 242, 242, 1);
  2532. border-bottom: 1px solid rgba(242, 242, 242, 1);
  2533. display: flex;
  2534. align-items: center;
  2535. justify-content: space-between;
  2536. padding: 40rpx 32rpx;
  2537. .switch {
  2538. display: flex;
  2539. align-items: center;
  2540. text {
  2541. margin-left: 8rpx;
  2542. color: rgba(51, 51, 51, 1);
  2543. }
  2544. }
  2545. .search-box {
  2546. border-radius: 50px;
  2547. background-color: rgba(242, 244, 246, 1);
  2548. color: rgba(136, 136, 136, 1);
  2549. height: 56rpx;
  2550. line-height: 56rpx;
  2551. padding-left: 16rpx;
  2552. padding-right: 8rpx;
  2553. flex: 1;
  2554. margin-left: 28rpx;
  2555. display: flex;
  2556. align-items: center;
  2557. justify-content: space-between;
  2558. uni-input {
  2559. height: 56rpx;
  2560. line-height: 56rpx !important;
  2561. font-size: 28rpx;
  2562. width: 75%;
  2563. }
  2564. .icon {
  2565. display: flex;
  2566. align-items: center;
  2567. justify-content: center;
  2568. width: 64rpx;
  2569. height: 40rpx;
  2570. border-radius: 50px;
  2571. background-color: rgba(22, 119, 255, 1);
  2572. }
  2573. }
  2574. }
  2575. }
  2576. // 电表统计
  2577. .meter-statistic {
  2578. margin-top: 32rpx;
  2579. .meter-statistic-main{
  2580. display: flex;
  2581. align-items: center;
  2582. }
  2583. .sum {
  2584. .meter-name {
  2585. color: rgba(51, 51, 51, 1);
  2586. font-size: 32rpx;
  2587. margin-left: 8rpx;
  2588. font-weight: bold;
  2589. }
  2590. .icon {
  2591. margin-right: 8rpx;
  2592. img {
  2593. width: 40rpx;
  2594. height: 40rpx;
  2595. vertical-align: middle;
  2596. }
  2597. }
  2598. .meter-state {
  2599. margin-left: 8rpx;
  2600. width: 64rpx;
  2601. height: 36rpx;
  2602. line-height: 36rpx;
  2603. border-radius: 4px;
  2604. background-color: rgba(255, 255, 255, 1);
  2605. color: rgba(0, 185, 98, 1);
  2606. font-size: 22rpx;
  2607. text-align: center;
  2608. border: 1px solid rgba(0, 185, 98, 1);
  2609. }
  2610. .meter-state2 {
  2611. border: 1px solid rgba(255, 123, 0, 1);
  2612. color: rgba(255, 123, 0, 1);
  2613. }
  2614. .meter-number {
  2615. margin-left: auto;
  2616. color: rgba(51, 51, 51, 1);
  2617. font-size: 32rpx;
  2618. /deep/.u-icon--right {
  2619. margin-left: 8rpx;
  2620. }
  2621. }
  2622. }
  2623. .sum2 {
  2624. padding: 0 32rpx;
  2625. margin-top: 8rpx;
  2626. display: flex;
  2627. align-items: center;
  2628. justify-content: space-between;
  2629. .title {
  2630. color: rgba(119, 119, 119, 1);
  2631. }
  2632. .value {
  2633. color: rgba(119, 119, 119, 1);
  2634. }
  2635. }
  2636. // 一级表
  2637. .first-level {
  2638. padding-left: 16rpx;
  2639. margin-top: 20rpx;
  2640. .meter-name {
  2641. font-size: 28rpx
  2642. }
  2643. }
  2644. .first-level-list{
  2645. width: 100%;
  2646. display: flex;
  2647. align-items: center;
  2648. }
  2649. // 二级表
  2650. .second-level {
  2651. padding-left: 32rpx;
  2652. margin-top: 20rpx;
  2653. .meter-name {
  2654. font-size: 24rpx
  2655. }
  2656. }
  2657. .else-switch {
  2658. padding-left: 72rpx;
  2659. .meter-name {
  2660. font-size: 24rpx
  2661. }
  2662. .item {
  2663. margin-top: 24rpx;
  2664. }
  2665. }
  2666. }
  2667. }
  2668. /deep/.u-drawer {
  2669. z-index: 999 !important;
  2670. }
  2671. .contractList{
  2672. font-weight: bold;
  2673. .contractListClass{
  2674. display: flex;
  2675. margin-top:16rpx;
  2676. justify-content: space-between;
  2677. color: rgba(51,51,51,1);
  2678. .img{
  2679. width: 32rpx;
  2680. height: 32rpx;
  2681. margin-right: 18rpx;
  2682. }
  2683. .contractListClass1{
  2684. display: flex;
  2685. align-items: center;
  2686. }
  2687. .tenantListNum{
  2688. margin: 0 8rpx;
  2689. color:#FF7B00 ;
  2690. }
  2691. }
  2692. }
  2693. .statistics-3 {
  2694. .contractListClass{
  2695. .contractListClass1{
  2696. display: block;
  2697. .class1{
  2698. font-size: 28rpx;
  2699. color: rgba(51,51,51,1);
  2700. }
  2701. .class2{
  2702. font-size: 24rpx;
  2703. color: rgba(119,119,119,1);
  2704. }
  2705. }
  2706. .contractListClass2{
  2707. font-size: 40rpx;
  2708. color: rgba(16,16,16,1);
  2709. font-weight: bold;
  2710. display: flex;
  2711. align-items: center;
  2712. }
  2713. }
  2714. }
  2715. .statistics-4 {
  2716. }
  2717. .electronicMonitoring-title2{
  2718. margin-bottom: 16rpx;
  2719. }
  2720. .electronicMonitoring-title3{
  2721. }
  2722. .electronicMonitoring-title{
  2723. display: flex;
  2724. margin: 0px 32rpx;
  2725. // background: #fff;
  2726. // border: 1px solid #bbbbbb;
  2727. border-radius: 4px;
  2728. padding: 4px;
  2729. //background: linear-gradient(180deg, #bbd8ff 0%, white 63%);
  2730. justify-content: space-between;
  2731. font-size:32rpx;
  2732. font-weight: bold;
  2733. .view{
  2734. display: flex;
  2735. justify-content: space-between;
  2736. margin-right: 12rpx;
  2737. }
  2738. // 状态
  2739. .state {
  2740. white-space: pre;
  2741. //width: 64rpx;
  2742. //height: 36rpx;
  2743. padding: 0 4rpx;
  2744. line-height: 36rpx;
  2745. border-radius: 8rpx;
  2746. font-size: 22rpx;
  2747. text-align: center;
  2748. border: 1px solid rgba(255, 123, 0, 1);
  2749. color: rgba(255, 123, 0, 1);
  2750. // .dot {
  2751. // margin-right: 8rpx;
  2752. // width: 16rpx;
  2753. // height: 16rpx;
  2754. // background-color: rgba(255, 123, 0, 1);
  2755. // border-radius: 999px;
  2756. // margin-left: auto;
  2757. // }
  2758. }
  2759. .state2 {
  2760. border: 1px solid rgba(0, 185, 98, 1);
  2761. color: rgba(0, 185, 98, 1);
  2762. }
  2763. }
  2764. .current-123{
  2765. .electronicMonitoring-title{
  2766. margin: 8rpx 0rpx 32rpx 0;
  2767. }
  2768. }
  2769. .electronicMonitoring-123{
  2770. }
  2771. .anchorpoint{
  2772. .index{
  2773. color: rgba(22,119,255,1);
  2774. }
  2775. background-color: rgba(0,0,0,0.25);
  2776. margin-top: 20rpx;
  2777. display: flex;
  2778. /* text-decoration: underline; */
  2779. // z-index: 999;
  2780. text-align: center;
  2781. position: fixed;
  2782. /* top: 40px; */
  2783. top: 200rpx;
  2784. right: 0px;
  2785. font-size: 24rpx;
  2786. //background: linear-gradient(95deg, #FF9800, #FF5722);
  2787. //box-shadow: 0 4rpx 24rpx 0 #FF5722;
  2788. //padding-top: 8px;
  2789. color: #fff;
  2790. border-radius: 25px;
  2791. flex-direction: column;
  2792. align-items: flex-end;
  2793. .point{
  2794. padding: 16rpx;
  2795. }
  2796. .point:last-child{
  2797. padding-bottom: 36rpx;;
  2798. }
  2799. .point:first-child{
  2800. padding-top: 36rpx;
  2801. }
  2802. }
  2803. .isOpenClass{
  2804. display: flex;
  2805. width: 100%;
  2806. justify-content: space-between;
  2807. margin: 12rpx 0;
  2808. align-items: center;
  2809. .isOpenClass1{
  2810. font-size: 28rpx;
  2811. font-weight: bold;
  2812. padding-bottom: 8rpx;
  2813. color: rgba(51,51,51,1);
  2814. }
  2815. .isOpenClass2{
  2816. font-size: 24rpx;
  2817. color: rgba(131,131,131,1);
  2818. .span{
  2819. margin-right: 8rpx;
  2820. }
  2821. }
  2822. }
  2823. .popShow1{
  2824. background-color: #f2f4f6;
  2825. padding: 32rpx;
  2826. .popShowList{
  2827. border-radius: 8px;
  2828. padding:0 10rpx;
  2829. background-color: #FFF;
  2830. }
  2831. .title{
  2832. text-align: center;
  2833. font-size: 44rpx;
  2834. padding: 20rpx;
  2835. font-weight: bold;
  2836. }
  2837. .popShowItem:first-child{
  2838. padding-top: 38rpx;
  2839. }
  2840. .popShowItem{
  2841. font-size: 32rpx;
  2842. display: flex;
  2843. margin: 24rpx;
  2844. justify-content: space-between;
  2845. }
  2846. .onlineChild{
  2847. margin:0 8rpx;
  2848. display: flex;
  2849. align-items: center;
  2850. font-size: 28rpx;
  2851. }
  2852. .online{
  2853. display: flex;
  2854. .name{
  2855. color: #777777 ;
  2856. }
  2857. }
  2858. .index{
  2859. .name{
  2860. color: #1677ff;
  2861. font-weight: bold;
  2862. }
  2863. }
  2864. }
  2865. .online0{
  2866. color: #ff7b00;
  2867. }
  2868. .online2{
  2869. color: #009688;
  2870. }
  2871. .online3{
  2872. color: #9E9E9E;
  2873. }
  2874. .online1{
  2875. color: #00b962;
  2876. .dot{
  2877. background-color: #00b962;
  2878. }
  2879. }
  2880. .dotview{
  2881. display: flex;
  2882. font-size: 28rpx;
  2883. align-items: center;
  2884. margin:0 8rpx;
  2885. .text{
  2886. font-size: 28rpx;
  2887. font-weight: 400;
  2888. }
  2889. }
  2890. .dot{
  2891. margin:0 8rpx;
  2892. width: 16rpx;
  2893. height:16rpx;
  2894. background-color: #ff7b00;
  2895. border-radius: 999px;
  2896. margin-left: auto;
  2897. }
  2898. </style>