statistics.vue 75 KB

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