statistics.vue 74 KB

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