electronicMonitoring.vue 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305
  1. <template>
  2. <view>
  3. <view class="background">
  4. <!-- 设备选择器 -->
  5. <!-- <u-picker title="设备选择" v-model="equipmentShow"
  6. mode="multiSelector" :default-selector='[0, 1]' :range="multiSelector">
  7. </u-picker> -->
  8. <u-picker v-model="tabsFrom.show1" mode="selector" :range="tabsFrom.selector1" range-key="label"
  9. @confirm="selector1confirm"></u-picker>
  10. <u-select v-model="equipmentShow" mode="mutil-column-auto" :list="equipmentList" @confirm="confirm">
  11. </u-select>
  12. <!-- 日期选择器 -->
  13. <u-picker-select title="日期选择" v-model="tabsFrom.show2" :defaultTime="tabsFrom.show2Index" :endYear="endYear"
  14. mode="time" :params="params" @confirm="selector2confirm" @reset="selector2reset"></u-picker-select>
  15. <view class="navbar-c">
  16. <view class="back" @click="backDataMonitoringList">
  17. <u-icon name="arrow-left" color="#fff" size="36"></u-icon>
  18. </view>
  19. <view class="title">
  20. {{tabsFrom.title}}
  21. <!-- <u-icon name="arrow-down" color="#fff" size="24" @click="equipmentShow=true"></u-icon> -->
  22. <u-icon name="arrow-down" color="#fff" size="24" @click="tabsFrom.show1=true"></u-icon>
  23. </view>
  24. </view>
  25. </view>
  26. <!-- 用电量 -->
  27. <view class="electricity-consumption">
  28. <view class="title">
  29. 用电量统计 (度)
  30. </view>
  31. <view class="degree">
  32. <view class="item">
  33. <view class="item-text">
  34. 百万
  35. </view>
  36. <view class="item-number" v-text="showTop[0]">
  37. 0
  38. </view>
  39. </view>
  40. <view class="item">
  41. <view class="item-text">
  42. 拾万
  43. </view>
  44. <view class="item-number" v-text="showTop[1]">
  45. 0
  46. </view>
  47. </view>
  48. <view class="item">
  49. <view class="item-text">
  50. </view>
  51. <view class="item-number" v-text="showTop[2]">
  52. 0
  53. </view>
  54. </view>
  55. <view class="item">
  56. <view class="item-text">
  57. </view>
  58. <view class="item-number" v-text="showTop[3]">
  59. 0
  60. </view>
  61. </view>
  62. <view class="item">
  63. <view class="item-text">
  64. </view>
  65. <view class="item-number" v-text="showTop[4]">
  66. 0
  67. </view>
  68. </view>
  69. <view class="item">
  70. <view class="item-text">
  71. </view>
  72. <view class="item-number" v-text="showTop[5]">
  73. 7
  74. </view>
  75. </view>
  76. <view class="item">
  77. <view class="item-text">
  78. 1
  79. </view>
  80. <view class="item-number" v-text="showTop[6]">
  81. 7
  82. </view>
  83. </view>
  84. <view class="item">
  85. <view class="item-text">
  86. 0.1
  87. </view>
  88. <view class="item-number decimal" v-text="showTop[7]">
  89. 7
  90. </view>
  91. </view>
  92. </view>
  93. <view class="radio">
  94. <u-radio-group v-model="value" @change="radioGroupChange">
  95. <u-radio @change="radioChange" v-for="(item, index) in list" :key="index" :name="item.id"
  96. :disabled="item.disabled">
  97. {{item.name}}
  98. </u-radio>
  99. </u-radio-group>
  100. </view>
  101. </view>
  102. <!-- 各时段用电量 -->
  103. <view class="electricity-chart">
  104. <view class="title">
  105. <view class="text">
  106. <view class="icon">
  107. </view> 各时段用电量 (度)
  108. </view>
  109. <view @click="tabsFrom.show2=true,params.day=true">
  110. {{queryDay}}<u-icon name="arrow-down"></u-icon>
  111. </view>
  112. </view>
  113. <view class="chart">
  114. <!-- <image class="img" src="@/assets/img/chart@1x.png" mode=""></image> -->
  115. <view id="barEcharts" style="min-height:440rpx;">
  116. </view>
  117. <view style="
  118. text-align: center;
  119. background: white;" ></view>
  120. </view>
  121. </view>
  122. <!-- 异常波动 -->
  123. <view class="abnormal" v-if="false">
  124. <view class="headline">
  125. <view class="title">
  126. <view class="icon">
  127. </view>
  128. <view class="text">
  129. 异常告警
  130. </view>
  131. </view>
  132. <view class="more">
  133. 查看全部
  134. <u-icon name="arrow-right" size="24" color="#d4d4d4"></u-icon>
  135. </view>
  136. </view>
  137. <view class="details">
  138. <view class="item">
  139. <view class="name">
  140. 温度异常告警
  141. </view>
  142. <view class="time">
  143. 2024-01-25 15:00:00
  144. </view>
  145. </view>
  146. <view class="item">
  147. <view class="name">
  148. 三厢功率因数异常告警
  149. </view>
  150. <view class="time">
  151. 2024-01-05 20:00:00
  152. </view>
  153. </view>
  154. </view>
  155. </view>
  156. <!-- 能源监测 -->
  157. <view class="energy-inspection" v-if="false">
  158. <view class="title">
  159. <view class="icon">
  160. </view>
  161. <view class="text">
  162. 能源监测
  163. </view>
  164. </view>
  165. <view class="grid">
  166. <u-grid :col="3" :border="false">
  167. <u-grid-item>
  168. <view class="icon icon1">
  169. <image class="img" src="@/assets/img/Image@1.png" mode=""></image>
  170. </view>
  171. <view class="grid-text">三相电流</view>
  172. </u-grid-item>
  173. <u-grid-item>
  174. <view class="icon icon2">
  175. <image class="img" src="@/assets/img/Image@2.png" mode=""></image>
  176. </view>
  177. <view class="grid-text">三相电压</view>
  178. </u-grid-item>
  179. <u-grid-item>
  180. <view class="icon icon3">
  181. <image class="img" src="@/assets/img/Image@3.png" mode=""></image>
  182. </view>
  183. <view class="grid-text">三相温度</view>
  184. </u-grid-item>
  185. <u-grid-item>
  186. <view class="icon icon4">
  187. <image class="img" src="@/assets/img/Image@4.png" mode=""></image>
  188. </view>
  189. <view class="grid-text">三相有功功率</view>
  190. </u-grid-item>
  191. <u-grid-item>
  192. <view class="icon icon5">
  193. <image class="img" src="@/assets/img/Image@5.png" mode=""></image>
  194. </view>
  195. <view class="grid-text">三相功率因数</view>
  196. </u-grid-item>
  197. <u-grid-item>
  198. <view class="icon icon6">
  199. <image class="img" src="@/assets/img/Image@5.png" mode=""></image>
  200. </view>
  201. <view class="grid-text">平均功率因数</view>
  202. </u-grid-item>
  203. </u-grid>
  204. </view>
  205. </view>
  206. <!-- 数据分析 -->
  207. <view class="data-analysis" v-if="false">
  208. <view class="title">
  209. <view class="icon">
  210. </view>
  211. <view class="text">
  212. 数据分析
  213. </view>
  214. </view>
  215. <view class="grid">
  216. <u-grid :col="3" :border="false">
  217. <u-grid-item>
  218. <view class="icon icon7">
  219. <image class="img" src="@/assets/img/Image@7.png" mode=""></image>
  220. </view>
  221. <view class="grid-text">同比分析</view>
  222. </u-grid-item>
  223. <u-grid-item>
  224. <view class="icon icon8">
  225. <image class="img" src="@/assets/img/Image@8.png" mode=""></image>
  226. </view>
  227. <view class="grid-text">环比分析</view>
  228. </u-grid-item>
  229. <u-grid-item>
  230. <view class="icon icon9">
  231. <image class="img" src="@/assets/img/Image@9.svg" mode=""></image>
  232. </view>
  233. <view class="grid-text">用电统计</view>
  234. </u-grid-item>
  235. </u-grid>
  236. </view>
  237. </view>
  238. <!-- 设备信息 -->
  239. <view class="equipment-information" v-if="false">
  240. <view class="title">
  241. <view class="icon">
  242. </view>
  243. <view class="text">
  244. 设备信息
  245. </view>
  246. <view class="more" @click="equipmentInfosShow=true">
  247. 查看全部<u-icon name="arrow-right" size="24" color="#d4d4d4"></u-icon>
  248. </view>
  249. </view>
  250. <view class="infos">
  251. <view class="item">
  252. <view class="item-title">
  253. 类型
  254. </view>
  255. <view class="item-value">
  256. 变压器
  257. </view>
  258. </view>
  259. <view class="border">
  260. </view>
  261. <view class="item">
  262. <view class="item-title">
  263. 设备编号
  264. </view>
  265. <view class="item-value">
  266. SN9015001
  267. </view>
  268. </view>
  269. <view class="border">
  270. </view>
  271. <view class="item">
  272. <view class="item-title">
  273. 上次故障时间
  274. </view>
  275. <view class="item-value">
  276. 2024-02-14
  277. </view>
  278. </view>
  279. </view>
  280. </view>
  281. <!-- 设备信息弹窗 -->
  282. <view class="equipment-popup">
  283. <u-popup v-model="equipmentInfosShow" mode="bottom" border-radius="12">
  284. <view class="content">
  285. <view class="headline">
  286. 设备信息
  287. </view>
  288. <view class="infos">
  289. <view class="item" >
  290. <view class="item-title">
  291. 类型
  292. </view>
  293. <view class="item-value">
  294. 变压器
  295. </view>
  296. </view>
  297. <view class="item" >
  298. <view class="item-title">
  299. 编号
  300. </view>
  301. <view class="item-value">
  302. SN9015001
  303. </view>
  304. </view>
  305. <view class="item" >
  306. <view class="item-title">
  307. 所属公司
  308. </view>
  309. <view class="item-value">
  310. 荆鹏集团
  311. </view>
  312. </view>
  313. <view class="item" >
  314. <view class="item-title">
  315. 地址
  316. </view>
  317. <view class="item-value">
  318. 荆州市沙市区江津东路155号
  319. </view>
  320. </view>
  321. <view class="item" >
  322. <view class="item-title">
  323. 上线时间
  324. </view>
  325. <view class="item-value">
  326. 2024-01-01
  327. </view>
  328. </view>
  329. <view class="item" >
  330. <view class="item-title">
  331. 上次故障时间
  332. </view>
  333. <view class="item-value">
  334. 2024-02-14
  335. </view>
  336. </view>
  337. </view>
  338. <button class="get" @click="equipmentInfosShow=false">知道了</button>
  339. </view>
  340. </u-popup>
  341. </view>
  342. <!-- 故障上报 -->
  343. <view class="create-order" v-if="false">
  344. <view class="img-box">
  345. <image class="img" src="@/assets/img/fas fa-exclamation-triangle Copy 2@3x.png" mode=""></image>
  346. </view>
  347. <view class="text">
  348. 故障上报
  349. </view>
  350. </view>
  351. </view>
  352. </template>
  353. <script>
  354. import {
  355. parseUnixTime,
  356. beforeTimeStamp,
  357. getWeek
  358. } from '@/apis/utils'
  359. import * as echarts from 'echarts';
  360. import * as API from '@/apis/pagejs/energy/index.js'
  361. export default {
  362. data() {
  363. return {
  364. equipmentInfosShow:false,
  365. kWhList: [],
  366. queryDay: '',
  367. showTop: [0, 0, 0, 0, 0, 0, 0, 0],
  368. FormData: {
  369. queryDate: '',
  370. meterId: '',
  371. type: 0
  372. },
  373. FormData2: {
  374. queryDate: '',
  375. meterId: ''
  376. },
  377. myBarChart: null,
  378. endYear: '',
  379. equipmentShow: false,
  380. multiSelector: [
  381. ['荆鹏集团', '玉桥公园', '全季酒店'],
  382. ['荆鹏软件园01', '青少年宫02', '御河社区03', '荆州院子04']
  383. ],
  384. equipmentList: [{
  385. value: 1,
  386. label: '荆鹏集团',
  387. children: [{
  388. value: 2,
  389. label: '荆鹏集团01',
  390. },
  391. {
  392. value: 3,
  393. label: '荆鹏集团02',
  394. },
  395. {
  396. value: 4,
  397. label: '荆鹏集团03',
  398. }
  399. ]
  400. },
  401. {
  402. value: 5,
  403. label: '荆州院子',
  404. children: [{
  405. value: 6,
  406. label: '荆州院子01',
  407. },
  408. {
  409. value: 7,
  410. label: '荆州院子02',
  411. },
  412. {
  413. value: 8,
  414. label: '荆州院子03',
  415. }
  416. ]
  417. }
  418. ],
  419. params: {
  420. year: true,
  421. month: true,
  422. day: true,
  423. hour: false,
  424. minute: false,
  425. second: false
  426. },
  427. tabsFrom: {
  428. show1: false,
  429. show1Index: 0,
  430. show2Index: '',
  431. show2: false,
  432. show1Text: "全部类型",
  433. show2Text: "全部时间",
  434. selector1: [{
  435. label: '全部类型',
  436. value: '',
  437. },
  438. {
  439. label: '线上充值',
  440. value: '1',
  441. },
  442. {
  443. label: '线下充值',
  444. value: '2',
  445. },
  446. ]
  447. },
  448. background: {
  449. backgroundColor: '#1677FF',
  450. },
  451. list: [{
  452. id: 4,
  453. name: '当日用电量',
  454. disabled: false
  455. }, {
  456. id: 1,
  457. name: '当月用电量',
  458. disabled: false
  459. }, {
  460. id: 2,
  461. name: '上月用电量',
  462. disabled: false
  463. }, {
  464. id: 3,
  465. name: '当年用电量',
  466. disabled: false
  467. }, {
  468. id: 0,
  469. name: '总用电量',
  470. disabled: false
  471. }, {
  472. id: 10,
  473. name: '指定月份',
  474. disabled: false
  475. }],
  476. value: '2',
  477. };
  478. },
  479. onLoad(op) {
  480. if (op.id) {
  481. this.FormData.meterId = op.id;
  482. this.FormData2.meterId = op.id;
  483. this.tabsFrom.title = op.name;
  484. }
  485. this.endYear = new Date().getFullYear();
  486. this.FormData.queryDate = parseUnixTime(new Date(), '{y}-{m}-{d}');
  487. this.FormData2.queryDate = parseUnixTime(new Date(), '{y}-{m}-{d}');
  488. this.FormData.type = 2;
  489. this.getElectricityStatistics();
  490. this.getTimeSlotStatistics();
  491. this.getList();
  492. },
  493. onReady() {
  494. this.getBarCharts(false);
  495. },
  496. methods: {
  497. selector1confirm(e) {
  498. var index = e[0];
  499. this.tabsFrom.show1Index = index;
  500. this.tabsFrom.show1Text = this.tabsFrom.selector1[index].label;
  501. this.tabsFrom.title = this.tabsFrom.selector1[index].label;
  502. this.FormData.meterId = this.tabsFrom.selector1[index].value;
  503. this.FormData.queryDate = parseUnixTime(new Date(), '{y}-{m}-{d}');
  504. this.FormData2.meterId = this.tabsFrom.selector1[index].value;
  505. this.FormData2.queryDate = parseUnixTime(new Date(), '{y}-{m}-{d}');
  506. this.FormData.type = 2;
  507. this.value = '2';
  508. this.getTimeSlotStatistics();
  509. this.getElectricityStatistics();
  510. },
  511. queryDate(queryTime, day) {
  512. if (day) {
  513. this.FormData2.queryDate = queryTime;
  514. //this.FormData2.type =day?"9":"10"
  515. //this.value="-1"
  516. this.getTimeSlotStatistics();
  517. } else {
  518. this.FormData.queryDate = queryTime + "-01";
  519. this.FormData.type = "10";
  520. this.value="10"
  521. this.getElectricityStatistics();
  522. }
  523. },
  524. getList() {
  525. uni.showLoading({
  526. title: "加载中",
  527. mask: true,
  528. })
  529. var data = {
  530. pageIndex: 1,
  531. pageSize: 100
  532. };
  533. API.homePageKwh(data).then((res) => {
  534. uni.hideLoading()
  535. this.kWhList = res.data.data;
  536. this.tabsFrom.selector1 = [];
  537. this.tabsFrom.selector1 = this.kWhList.map(item => {
  538. return {
  539. label: item.name,
  540. value: item.id
  541. }
  542. })
  543. }).catch(error => {
  544. uni.showToast({
  545. title: error,
  546. icon: "none"
  547. })
  548. })
  549. },
  550. getTimeSlotStatistics() {
  551. uni.showLoading({
  552. title: "加载中",
  553. mask: true,
  554. })
  555. this.queryDay = parseUnixTime(new Date(this.FormData2.queryDate), '{y}年{m}月{d}日');
  556. API.timeSlotStatistics(this.FormData2).then((response) => {
  557. uni.hideLoading();
  558. this.hourMap = response.data.hourMap;
  559. this.getBarCharts(this.hourMap);
  560. }).catch(error => {
  561. uni.showToast({
  562. title: error,
  563. icon: "none"
  564. })
  565. })
  566. },
  567. getElectricityStatistics() {
  568. uni.showLoading({
  569. title: "加载中",
  570. mask: true,
  571. })
  572. var obj = {
  573. ...this.FormData
  574. }
  575. // if(obj.type==10){
  576. // obj.queryDate+="-01"
  577. // }
  578. API.electricityStatistics(obj).then((response) => {
  579. uni.hideLoading();
  580. this.showTop = [0, 0, 0, 0, 0, 0, 0, 0]
  581. var electricity = response.data.kwhMap.kwh + "";
  582. if (electricity) {
  583. var sz = electricity.split(".")
  584. var str1 = sz[0];
  585. var str2 = [];
  586. if (sz.length > 1) {
  587. str2 = sz[1];
  588. this.showTop[7] = str2[0];
  589. }
  590. var j = 0;
  591. for (var i in str1) {
  592. if (i != undefined) {
  593. this.showTop[6 - str1.length + j + 1] = str1[i]
  594. }
  595. j++;
  596. }
  597. this.$forceUpdate()
  598. }
  599. //this.electricityMeterList=response.data.meterList
  600. }).catch(error => {
  601. uni.showToast({
  602. title: error,
  603. icon: "none"
  604. })
  605. })
  606. },
  607. getBarCharts(list) {
  608. if (!this.myChart) {
  609. this.myChart = echarts.init(document.getElementById('barEcharts'), null, {
  610. width: uni.upx2px(700),
  611. height: uni.upx2px(480)
  612. });
  613. }
  614. this.myChart.clear();
  615. var data1 = ['0-2点', '3-4点', '5-6点', '7-8点', '9-10点', '11-12点', '13-14点', '15-16点',
  616. '17-18点', '19-20点', '21-22点', '23-24点'];
  617. var data2 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
  618. if(list) {
  619. data1 = [];
  620. data2 = [];
  621. for (var i in list) {
  622. data1.push(i)
  623. data2.push(list[i])
  624. }
  625. }
  626. var headitemby = ""
  627. var showkey = "";
  628. var option = {
  629. tooltip: {
  630. trigger: 'axis',
  631. axisPointer: {
  632. type: 'shadow'
  633. }
  634. },
  635. grid: {
  636. top: '6%',
  637. left: '3%',
  638. right: '8%',
  639. bottom: '8%',
  640. containLabel: true
  641. },
  642. xAxis: {
  643. type: 'category',
  644. data: data1,
  645. axisLabel: {
  646. rotate: 40,
  647. interval: 0,
  648. textStyle: {
  649. color: "#333"
  650. }
  651. },
  652. },
  653. yAxis: {
  654. type: 'value',
  655. },
  656. series: [{
  657. name: '合计',
  658. data: data2,
  659. type: 'bar'
  660. }]
  661. }
  662. console.log(option)
  663. this.myChart.setOption(option);
  664. },
  665. selector2confirm(e) {
  666. this.tabsFrom.show2Text = e.year + "年" + e.month + "月"
  667. this.tabsFrom.show2Index = e.year + "-" + e.month
  668. if (e.day) {
  669. this.tabsFrom.show2Text += e.day + "日"
  670. this.tabsFrom.show2Index += '-' + e.day
  671. this.queryDate(this.tabsFrom.show2Index, true)
  672. } else {
  673. this.queryDate(this.tabsFrom.show2Index, false)
  674. }
  675. },
  676. selector2reset(e) {
  677. console.log(e)
  678. this.tabsFrom.show2Text = '全部时间'
  679. this.tabsFrom.show2Index = '';
  680. },
  681. // 选中某个单选框时,由radio时触发
  682. radioChange(e) {
  683. //console.log(e);
  684. },
  685. // 选中任一radio时,由radio-group触发
  686. radioGroupChange(e) {
  687. console.log(e)
  688. this.FormData.type = e;
  689. if (e == 10) {
  690. this.tabsFrom.show2 = true;
  691. this.params.day = false;
  692. } else {
  693. this.getElectricityStatistics();
  694. }
  695. },
  696. backDataMonitoringList() {
  697. uni.navigateBack()
  698. },
  699. }
  700. };
  701. </script>
  702. <style lang="scss" scoped>
  703. page {
  704. padding-bottom: 184rpx;
  705. }
  706. .navbar-c {
  707. background-color: rgba(22, 119, 255, 1);
  708. .back {
  709. z-index: 999;
  710. width: 200rpx;
  711. }
  712. .title {
  713. color: #fff;
  714. display: flex;
  715. align-items: center;
  716. justify-content: center;
  717. }
  718. .right {
  719. .img {
  720. width: 48rpx;
  721. height: 48rpx;
  722. }
  723. }
  724. }
  725. /deep/.uicon-nav-back {
  726. color: #fff !important;
  727. }
  728. .background {
  729. background-color: rgba(22, 119, 255, 1);
  730. padding-bottom: 100rpx;
  731. /deep/.u-border-bottom:after {
  732. border: none;
  733. }
  734. .u-nav-slot {
  735. margin-right: 32rpx;
  736. .img {
  737. width: 48rpx;
  738. height: 48rpx;
  739. vertical-align: middle;
  740. }
  741. }
  742. }
  743. .background::after {
  744. content: '';
  745. position: absolute;
  746. width: 160%;
  747. height: 80px;
  748. background-color: rgba(22, 119, 255, 1);
  749. left: -30%;
  750. border-radius: 0 0 50% 50%;
  751. }
  752. // // 日期
  753. .date-box {
  754. display: flex;
  755. align-items: center;
  756. justify-content: space-between;
  757. margin: 24rpx 32rpx;
  758. .item {
  759. border-radius: 8px;
  760. background-color: rgba(255, 255, 255, 0.1);
  761. border: 1px solid rgba(255, 255, 255, 0.15);
  762. width: 120rpx;
  763. height: 120rpx;
  764. color: #fff;
  765. text-align: center;
  766. display: flex;
  767. flex-direction: column;
  768. justify-content: center;
  769. .date {
  770. font-size: 40rpx;
  771. }
  772. }
  773. .item-today {
  774. background-color: rgba(255, 255, 255, 1);
  775. position: relative;
  776. .date {
  777. color: rgba(22, 119, 255, 1);
  778. }
  779. .week {
  780. color: rgba(16, 16, 16, 1);
  781. }
  782. .dot {
  783. width: 10rpx;
  784. height: 10rpx;
  785. background-color: rgba(255, 150, 0, 1);
  786. border-radius: 999px;
  787. position: absolute;
  788. bottom: -5rpx;
  789. left: 50%;
  790. transform: translateX(-50%);
  791. }
  792. }
  793. }
  794. // 用电量
  795. .electricity-consumption {
  796. background-color: #fff;
  797. padding: 40rpx 32rpx 0rpx;
  798. border-radius: 8px;
  799. margin: -88rpx 32rpx 0;
  800. position: relative;
  801. .title {
  802. color: rgba(16, 16, 16, 1);
  803. font-size: 36rpx;
  804. }
  805. .degree {
  806. display: flex;
  807. margin-top: 32rpx;
  808. .item {
  809. margin-right: 6rpx;
  810. text-align: center;
  811. .item-text {
  812. color: rgba(16, 16, 16, 1);
  813. }
  814. .item-number {
  815. margin-top: 24rpx;
  816. width: 72rpx;
  817. height: 96rpx;
  818. background-color: rgba(16, 16, 16, 1);
  819. color: #fff;
  820. font-size: 72rpx;
  821. }
  822. .decimal {
  823. background-color: #900005;
  824. }
  825. }
  826. }
  827. // .tab {
  828. // width: 240rpx;
  829. // height: 0;
  830. // border-width: 0px 48rpx 72rpx 0px;
  831. // border-radius: 8px 8px 0 0;
  832. // border-style: none solid solid none;
  833. // border-color: transparent transparent #fff;
  834. // position: absolute;
  835. // top: -72rpx;
  836. // left: 0rpx;
  837. // right: 0rpx;
  838. // color: #101010;
  839. // color: rgba(16, 16, 16, 1);
  840. // text-align: center;
  841. // line-height: 72rpx;
  842. // z-index: 999;
  843. // text-indent: 16rpx;
  844. // }
  845. // .tab2 {
  846. // width: 240rpx;
  847. // height: 0;
  848. // border-width: 0px 48rpx 72rpx 0px;
  849. // border-radius: 8px 8px 0 0;
  850. // border-style: none solid solid none;
  851. // border-color: transparent transparent #D4DBE4;
  852. // position: absolute;
  853. // top: -72rpx;
  854. // left: 210rpx;
  855. // right: 0rpx;
  856. // color: #777777;
  857. // text-align: center;
  858. // line-height: 72rpx;
  859. // text-indent: 16rpx;
  860. // }
  861. .radio {
  862. margin-top: 24rpx;
  863. /deep/.u-radio__label {
  864. font-size: 24rpx
  865. }
  866. /deep/.u-radio {
  867. margin-bottom: 16px;
  868. width: 200rpx !important;
  869. }
  870. }
  871. }
  872. //各时段用电量
  873. .electricity-chart {
  874. margin: 24rpx 32rpx;
  875. padding: 40rpx 0rpx;
  876. background-color: #fff;
  877. border-radius: 8px;
  878. .title {
  879. display: flex;
  880. align-items: center;
  881. justify-content: space-between;
  882. padding: 0 12rpx;
  883. margin-bottom: 40rpx;
  884. .icon {
  885. width: 36rpx;
  886. height: 36rpx;
  887. background-color: rgba(22, 119, 255, 1);
  888. border: 6px solid rgba(182, 212, 255, 1);
  889. border-radius: 100px;
  890. }
  891. .text {
  892. display: flex;
  893. align-items: center;
  894. color: rgba(51, 51, 51, 1);
  895. font-size: 36rpx;
  896. margin-left: 16rpx;
  897. }
  898. }
  899. .chart {
  900. width: 100%;
  901. height: 440rpx;
  902. .img {
  903. width: 100%;
  904. height: 440rpx;
  905. }
  906. }
  907. }
  908. .equipment-information {
  909. margin: 24rpx 32rpx;
  910. padding: 40rpx 0rpx;
  911. background-color: #fff;
  912. border-radius: 8px;
  913. .title {
  914. display: flex;
  915. align-items: center;
  916. padding: 0 32rpx;
  917. margin-bottom: 40rpx;
  918. .icon {
  919. width: 36rpx;
  920. height: 36rpx;
  921. background-color: rgba(182, 212, 255, 1);
  922. border: 6px solid rgba(22, 119, 255, 1);
  923. border-radius: 100px;
  924. }
  925. .text {
  926. display: flex;
  927. align-items: center;
  928. color: rgba(51, 51, 51, 1);
  929. font-size: 36rpx;
  930. margin-left: 16rpx;
  931. }
  932. .date {
  933. margin-left: auto;
  934. }
  935. .more {
  936. color: #838383;
  937. font-size: 24rpx;
  938. margin-left: auto;
  939. }
  940. }
  941. .chart {
  942. width: 100%;
  943. height: 440rpx;
  944. .img {
  945. width: 100%;
  946. height: 440rpx;
  947. }
  948. }
  949. .infos{
  950. padding: 0 32rpx;
  951. display: flex;
  952. justify-content: space-between;
  953. text-align: center;
  954. .border{
  955. margin: auto 0;
  956. height: 70rpx;
  957. width: 2rpx;
  958. background-color: rgba(204,204,204,1);;
  959. }
  960. .item-title{
  961. color: rgba(119,119,119,1);
  962. }
  963. .item-value{
  964. color: rgba(16,16,16,1);
  965. font-size: 32rpx;
  966. margin-top: 16rpx;
  967. }
  968. }
  969. }
  970. // 异常
  971. .abnormal {
  972. margin: 24rpx 32rpx;
  973. padding: 40rpx 32rpx;
  974. background-color: #fff;
  975. border-radius: 8px;
  976. .headline {
  977. display: flex;
  978. align-items: center;
  979. justify-content: space-between;
  980. }
  981. .title {
  982. display: flex;
  983. align-items: center;
  984. font-weight: bold;
  985. .icon {
  986. width: 36rpx;
  987. height: 36rpx;
  988. background-color: rgba(182, 212, 255, 1);
  989. border: 6px solid rgba(22, 119, 255, 1);
  990. border-radius: 100px;
  991. }
  992. .text {
  993. color: rgba(51, 51, 51, 1);
  994. font-size: 36rpx;
  995. margin-left: 16rpx;
  996. }
  997. }
  998. .more {
  999. color: #838383;
  1000. font-size: 24rpx
  1001. }
  1002. .details {
  1003. margin-top: 40rpx;
  1004. .item {
  1005. display: flex;
  1006. align-items: center;
  1007. justify-content: space-between;
  1008. margin-top: 32rpx;
  1009. .name {
  1010. color: rgba(51, 51, 51, 1);
  1011. }
  1012. .time {
  1013. color: rgba(119, 119, 119, 1);
  1014. font-size: 24rpx;
  1015. }
  1016. }
  1017. }
  1018. }
  1019. // 能源监测
  1020. .energy-inspection,
  1021. .data-analysis {
  1022. margin: 24rpx 32rpx;
  1023. padding: 40rpx 32rpx;
  1024. background-color: #fff;
  1025. border-radius: 8px;
  1026. .title {
  1027. display: flex;
  1028. align-items: center;
  1029. font-weight: bold;
  1030. .icon {
  1031. width: 36rpx;
  1032. height: 36rpx;
  1033. background-color: rgba(182, 212, 255, 1);
  1034. border: 6px solid rgba(22, 119, 255, 1);
  1035. border-radius: 100px;
  1036. }
  1037. .text {
  1038. color: rgba(51, 51, 51, 1);
  1039. font-size: 36rpx;
  1040. margin-left: 16rpx;
  1041. }
  1042. }
  1043. .grid {
  1044. .icon {
  1045. width: 128rpx;
  1046. height: 128rpx;
  1047. border-radius: 12px;
  1048. background-color: rgba(35, 186, 178, 1);
  1049. display: flex;
  1050. align-items: center;
  1051. justify-content: center;
  1052. margin-bottom: 16rpx;
  1053. .img {
  1054. width: 80rpx;
  1055. height: 80rpx;
  1056. }
  1057. }
  1058. .icon2 {
  1059. background-color: rgba(42, 186, 72, 1);
  1060. }
  1061. .icon3 {
  1062. background-color: rgba(78, 96, 246, 1);
  1063. }
  1064. .icon4 {
  1065. background-color: rgba(22, 119, 255, 1);
  1066. }
  1067. .icon5 {
  1068. background-color: rgba(35, 186, 178, 1);
  1069. }
  1070. .icon6 {
  1071. background-color: rgba(42, 186, 72, 1);
  1072. }
  1073. .icon7 {
  1074. background-color: rgba(22, 119, 255, 1);
  1075. }
  1076. .icon8 {
  1077. background-color: rgba(35, 186, 178, 1);
  1078. }
  1079. .icon9 {
  1080. background-color: rgba(42, 186, 72, 1);
  1081. }
  1082. .grid-text {
  1083. color: #333333;
  1084. }
  1085. }
  1086. }
  1087. // 设备信息弹窗
  1088. .equipment-popup{
  1089. .content{
  1090. padding: 32rpx;
  1091. .headline{
  1092. color: rgba(16,16,16,1);
  1093. font-size: 36rpx;
  1094. text-align: center;
  1095. font-weight: bold;
  1096. }
  1097. .infos{
  1098. padding-bottom: 100rpx;
  1099. .item:last-of-type{
  1100. border: none;
  1101. }
  1102. .item{
  1103. display: flex;
  1104. align-items: center;
  1105. height: 80rpx;
  1106. line-height: 80rpx;
  1107. border-bottom: 1px solid #cccccc;
  1108. .item-title{
  1109. color: rgba(51,51,51,1);
  1110. width: 200rpx;
  1111. }
  1112. .item-value{
  1113. color: #666666;
  1114. flex: 1;
  1115. margin-left: 16rpx;
  1116. }
  1117. }
  1118. }
  1119. .get{
  1120. height: 80rpx;
  1121. line-height: 80rpx;
  1122. border-radius: 4px;
  1123. background-color: rgba(22,119,255,1);
  1124. color: rgba(255,255,255,1);
  1125. font-size: 32rpx;
  1126. }
  1127. }
  1128. }
  1129. // 创建工单
  1130. .create-order {
  1131. width: 120rpx;
  1132. height: 120rpx;
  1133. border-radius: 20px;
  1134. background: linear-gradient(180.29deg, rgba(255,124,112,1) 0.9%,rgba(255,79,63,1) 100.4%);
  1135. box-shadow: 0px 2px 6px 0px rgba(0, 0, 0, 0.4);
  1136. text-align: center;
  1137. display: flex;
  1138. flex-direction: column;
  1139. justify-content: center;
  1140. align-items: center;
  1141. position: fixed;
  1142. right: 32rpx;
  1143. bottom: 64rpx;
  1144. .img {
  1145. width: 56rpx;
  1146. height: 56rpx;
  1147. vertical-align: middle;
  1148. }
  1149. .text {
  1150. color: rgba(255, 255, 255, 1);
  1151. font-size: 22rpx;
  1152. }
  1153. }
  1154. </style>