lightMatrix.vue 41 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638
  1. <template>
  2. <headerNav @typeFlag="typeFlag" :isAll="true" />
  3. <div
  4. :class="$store.state.themeName === 'dark' ? 'dark-matrix' : 'light-matrix'"
  5. >
  6. <el-header>
  7. <el-row>
  8. <el-col :span="12" v-if="activeTab == 'all' || activeTab == 'fc'">
  9. <div class="fd-header1">
  10. <el-col class="fd-img">
  11. <div class="imgs">
  12. <img src="@assets/imgs/downF.png" />
  13. <img
  14. width="30"
  15. height="26"
  16. src="@assets/imgs/windup.png"
  17. class="qty_imgs"
  18. />
  19. </div>
  20. <div class="titles" @click="changeShow('all')">
  21. <div>接入风机</div>
  22. <p style="text-align: center; cursor: pointer">
  23. {{ sourceMap.jrts || "0" }}
  24. </p>
  25. </div>
  26. </el-col>
  27. <el-col @click="changeShow(0)" style="cursor: pointer">
  28. <div class="active-b" :class="{ active_bor: fillFjzt == 0 }">
  29. <p class="left_p"></p>
  30. <p class="right_p"></p>
  31. <div class="yuan">
  32. <p><span class="circle"></span></p>
  33. <p>待机</p>
  34. </div>
  35. <div>
  36. {{ sourceMap.djts || "0" }}
  37. </div>
  38. </div>
  39. </el-col>
  40. <el-col @click="changeShow(1)" style="cursor: pointer">
  41. <div class="active-b" :class="{ active_bor: fillFjzt == 1 }">
  42. <p class="left_p"></p>
  43. <p class="right_p"></p>
  44. <div class="yuan">
  45. <p><span class="circle"></span></p>
  46. <p>并网</p>
  47. </div>
  48. <div>
  49. {{ sourceMap.bwts || "0" }}
  50. </div>
  51. </div>
  52. </el-col>
  53. <el-col @click="changeShow(2)" style="cursor: pointer">
  54. <div class="active-b" :class="{ active_bor: fillFjzt == 2 }">
  55. <p class="left_p"></p>
  56. <p class="right_p"></p>
  57. <div class="yuan">
  58. <p><span class="circle"></span></p>
  59. <p>故障</p>
  60. </div>
  61. <div>
  62. {{ sourceMap.gzts || "0" }}
  63. </div>
  64. </div>
  65. </el-col>
  66. <el-col @click="changeShow(3)" style="cursor: pointer">
  67. <div class="active-b" :class="{ active_bor: fillFjzt == 3 }">
  68. <p class="left_p"></p>
  69. <p class="right_p"></p>
  70. <div class="yuan">
  71. <p><span class="circle"></span></p>
  72. <p>检修</p>
  73. </div>
  74. <div>
  75. {{ sourceMap.jxts || "0" }}
  76. </div>
  77. </div>
  78. </el-col>
  79. <el-col @click="changeShow(4)" style="cursor: pointer">
  80. <div class="active-b" :class="{ active_bor: fillFjzt == 4 }">
  81. <p class="left_p"></p>
  82. <p class="right_p"></p>
  83. <div class="yuan">
  84. <p><span class="circle"></span></p>
  85. <p>限电</p>
  86. </div>
  87. <div>
  88. {{ sourceMap.xdts || "0" }}
  89. </div>
  90. </div>
  91. </el-col>
  92. <el-col @click="changeShow(5)" style="cursor: pointer">
  93. <div class="active-b" :class="{ active_bor: fillFjzt == 5 }">
  94. <p class="left_p"></p>
  95. <p class="right_p"></p>
  96. <div class="yuan">
  97. <p><span class="circle"></span></p>
  98. <p>受累</p>
  99. </div>
  100. <div>
  101. {{ sourceMap.slts || "0" }}
  102. </div>
  103. </div>
  104. </el-col>
  105. <el-col @click="changeShow(6)" style="cursor: pointer">
  106. <div class="active-b" :class="{ active_bor: fillFjzt == 6 }">
  107. <p class="left_p"></p>
  108. <p class="right_p"></p>
  109. <div class="yuan">
  110. <p><span class="circle"></span></p>
  111. <p>离线</p>
  112. </div>
  113. <div>
  114. {{ sourceMap.lxts || "0" }}
  115. </div>
  116. </div>
  117. </el-col>
  118. </div>
  119. </el-col>
  120. <el-col :span="12" v-if="activeTab == 'all' || activeTab == 'gf'">
  121. <div class="fd-header2">
  122. <el-col class="gf-img">
  123. <div class="imgs">
  124. <img src="@assets/imgs/downg.png" />
  125. <img src="@assets/imgs/ptyup.png" class="qty_img" />
  126. </div>
  127. <div class="titles">
  128. <div>接入光伏</div>
  129. <p
  130. style="text-align: center; cursor: pointer"
  131. @click="changeShow('all')"
  132. >
  133. {{ sourceMap.gfjrts || "0" }}
  134. </p>
  135. </div>
  136. </el-col>
  137. <el-col @click="changeShow(0)" style="cursor: pointer">
  138. <div class="active-b" :class="{ active_bor: fillFjzt == 0 }">
  139. <p class="left_p"></p>
  140. <p class="right_p"></p>
  141. <div class="yuan">
  142. <p><span class="circle"></span></p>
  143. <p>待机</p>
  144. </div>
  145. <div>
  146. {{ sourceMap.gfdjts || "0" }}
  147. </div>
  148. </div>
  149. </el-col>
  150. <el-col @click="changeShow(1)" style="cursor: pointer">
  151. <div class="active-b" :class="{ active_bor: fillFjzt == 1 }">
  152. <p class="left_p"></p>
  153. <p class="right_p"></p>
  154. <div class="yuan">
  155. <p><span class="circle"></span></p>
  156. <p>并网</p>
  157. </div>
  158. <div>
  159. {{ sourceMap.gfbwts || "0" }}
  160. </div>
  161. </div>
  162. </el-col>
  163. <el-col @click="changeShow(2)" style="cursor: pointer">
  164. <div class="active-b" :class="{ active_bor: fillFjzt == 2 }">
  165. <p class="left_p"></p>
  166. <p class="right_p"></p>
  167. <div class="yuan">
  168. <p><span class="circle"></span></p>
  169. <p>故障</p>
  170. </div>
  171. <div>
  172. {{ sourceMap.gfgzts || "0" }}
  173. </div>
  174. </div>
  175. </el-col>
  176. <el-col @click="changeShow(3)" style="cursor: pointer">
  177. <div class="active-b" :class="{ active_bor: fillFjzt == 3 }">
  178. <p class="left_p"></p>
  179. <p class="right_p"></p>
  180. <div class="yuan">
  181. <p><span class="circle"></span></p>
  182. <p>检修</p>
  183. </div>
  184. <div>
  185. {{ sourceMap.gfwhts || "0" }}
  186. </div>
  187. </div>
  188. </el-col>
  189. <el-col @click="changeShow(4)" style="cursor: pointer">
  190. <div class="active-b" :class="{ active_bor: fillFjzt == 4 }">
  191. <p class="left_p"></p>
  192. <p class="right_p"></p>
  193. <div class="yuan">
  194. <p><span class="circle"></span></p>
  195. <p>限电</p>
  196. </div>
  197. <div>
  198. {{ sourceMap.gfxdts || "0" }}
  199. </div>
  200. </div>
  201. </el-col>
  202. <el-col @click="changeShow(5)" style="cursor: pointer">
  203. <div class="active-b" :class="{ active_bor: fillFjzt == 5 }">
  204. <p class="left_p"></p>
  205. <p class="right_p"></p>
  206. <div class="yuan">
  207. <p><span class="circle"></span></p>
  208. <p>受累</p>
  209. </div>
  210. <div>
  211. {{ sourceMap.gfslts || "0" }}
  212. </div>
  213. </div>
  214. </el-col>
  215. <el-col @click="changeShow(6)" style="cursor: pointer">
  216. <div class="active-b" :class="{ active_bor: fillFjzt == 6 }">
  217. <p class="left_p"></p>
  218. <p class="right_p"></p>
  219. <div class="yuan">
  220. <p><span class="circle"></span></p>
  221. <p>离线</p>
  222. </div>
  223. <div>
  224. {{ sourceMap.gflxts || "0" }}
  225. </div>
  226. </div>
  227. </el-col>
  228. </div>
  229. </el-col>
  230. </el-row>
  231. </el-header>
  232. <el-scrollbar
  233. v-loading="loading"
  234. element-loading-background="rgba(4, 12, 11, 0.8)"
  235. element-loading-text="加载中..."
  236. >
  237. <div
  238. class="wind_power_plant"
  239. v-for="(item, index) in showMatrixList"
  240. :key="index"
  241. >
  242. <el-row class="data_statistics">
  243. <el-col>
  244. <i
  245. v-if="item.czlx == -1"
  246. class="svg-icon svg-icon-sm svg-icon-green"
  247. >
  248. <SvgIcon svgid="svg-wind-site"></SvgIcon>
  249. </i>
  250. <i v-else class="svg-icon svg-icon-sm svg-icon-orange">
  251. <SvgIcon svgid="svg-photovoltaic"></SvgIcon>
  252. </i>
  253. <span
  254. class="station-name"
  255. :style="item.czlx == -1 ? '' : 'color:#ff8100'"
  256. >{{ item.wpname }}</span
  257. >
  258. </el-col>
  259. <el-col>
  260. 接入台数<span>{{
  261. item.jrts ? item.jrts.toFixed(0) : "0"
  262. }}</span></el-col
  263. >
  264. <el-col>
  265. 待机台数<span>{{
  266. item.djts ? item.djts.toFixed(0) : "0"
  267. }}</span></el-col
  268. >
  269. <el-col>
  270. 并网台数<span>{{
  271. item.bwts ? item.bwts.toFixed(0) : "0"
  272. }}</span></el-col
  273. >
  274. <el-col>
  275. 故障台数<span>{{
  276. item.gzts ? item.gzts.toFixed(0) : "0"
  277. }}</span></el-col
  278. >
  279. <el-col>
  280. 检修台数<span>{{
  281. item.jxts ? item.jxts.toFixed(0) : "0"
  282. }}</span></el-col
  283. >
  284. <el-col>
  285. 限电台数<span>{{
  286. item.xdts ? item.xdts.toFixed(0) : "0"
  287. }}</span></el-col
  288. >
  289. <el-col>
  290. 受累台数<span>{{
  291. item.slts ? item.slts.toFixed(0) : "0"
  292. }}</span></el-col
  293. >
  294. <el-col>
  295. 离线台数<span>{{
  296. item.lxts ? item.lxts.toFixed(0) : "0"
  297. }}</span></el-col
  298. >
  299. <el-col
  300. style="cursor: pointer"
  301. v-if="item.czlx == -1"
  302. @click="handleIndicatorClick(item.czlx, item.wpid)"
  303. >
  304. 风速<span>{{ item.spped ? item.spped.toFixed(2) : "0.00" }}</span>
  305. </el-col>
  306. <el-col
  307. style="cursor: pointer"
  308. v-else
  309. @click="handleIndicatorClick(item.czlx, item.wpid)"
  310. >
  311. 光照强度<span>{{
  312. item.spped ? item.spped.toFixed(2) : "0.00"
  313. }}</span></el-col
  314. >
  315. <el-col
  316. style="cursor: pointer"
  317. @click="handleIndicatorClick(item.czlx, item.wpid)"
  318. >
  319. 预测功率<span>{{
  320. item.ycgl ? (item.ycgl / 1000).toFixed(2) : "0.00"
  321. }}</span></el-col
  322. >
  323. <el-col
  324. style="cursor: pointer"
  325. @click="handleIndicatorClick(item.czlx, item.wpid)"
  326. >
  327. 保证功率<span>{{
  328. item.bzgl ? (item.bzgl / 1000).toFixed(2) : "0.00"
  329. }}</span></el-col
  330. >
  331. <el-col
  332. style="cursor: pointer"
  333. @click="handleIndicatorClick(item.czlx, item.wpid)"
  334. >
  335. 理论功率<span>{{
  336. item.llgl ? (item.llgl / 1000).toFixed(2) : "0.00"
  337. }}</span></el-col
  338. >
  339. <el-col
  340. style="cursor: pointer"
  341. @click="handleIndicatorClick(item.czlx, item.wpid)"
  342. >
  343. 实际功率<span>{{
  344. item.sjgl ? (item.sjgl / 1000).toFixed(2) : "0.00"
  345. }}</span></el-col
  346. >
  347. <el-col>
  348. AGC指令<span>{{
  349. item.agc ? item.agc.toFixed(2) : "0.00"
  350. }}</span></el-col
  351. >
  352. <el-col>
  353. 出线功率<span>{{
  354. item.cxgl ? (item.cxgl / 1000).toFixed(2) : "0.00"
  355. }}</span></el-col
  356. >
  357. </el-row>
  358. <div
  359. class="data_views"
  360. :class="{ active_vie: item.wtlist.length == 0 }"
  361. >
  362. <span
  363. v-for="(subItem, index) in item.wtlist"
  364. :class="getColor(subItem?.status)"
  365. :key="index"
  366. @click="goDetails(subItem, item.czlx)"
  367. >{{ subItem.wtname }}</span
  368. >
  369. </div>
  370. </div>
  371. </el-scrollbar>
  372. </div>
  373. <el-dialog
  374. class="dialogs"
  375. width="90%"
  376. top="40px"
  377. v-model="displayMatrix"
  378. :show-close="true"
  379. destroy-on-close
  380. >
  381. <template #title>
  382. <div class="dialog-title">
  383. <img class="dialog-title-img" src="@assets/imgs/dialog-title.png" />
  384. <div class="title">设备详情</div>
  385. </div>
  386. </template>
  387. <div class="dialog-body" style="height: 77vh">
  388. <img class="dialog-img" src="@assets/imgs/dialog.png" />
  389. <windDetail
  390. v-show="wtType == -1"
  391. :wind="wind"
  392. :wtType="wtType"
  393. :flag="flag"
  394. showHeight="77vh"
  395. ></windDetail>
  396. <lightDetail
  397. v-show="wtType == -2"
  398. :wind="wind"
  399. :wtType="wtType"
  400. :flag="flag"
  401. showHeight="77vh"
  402. ></lightDetail>
  403. </div>
  404. </el-dialog>
  405. <qushi-dialog ref="child" :chartName="chartName"></qushi-dialog>
  406. </template>
  407. <script>
  408. import qushiDialog from "@/components/qushi/qushiDialog.vue";
  409. import windDetail from "@/components/windDetail/index";
  410. import lightDetail from "@/components/lightDetial/index.vue";
  411. import { deepClone } from "@/utills/func.js";
  412. import SvgIcon from "@com/coms/icon/svg-icon.vue";
  413. import api from "@api/cockpit/matrix/index.js";
  414. import { setInterval, clearInterval } from "timers";
  415. import HeaderNav from "@/components/headerNav/index.vue";
  416. export default {
  417. // 名称
  418. name: "LightMatrix", //基础矩阵
  419. // 使用组件
  420. components: {
  421. HeaderNav,
  422. qushiDialog,
  423. SvgIcon,
  424. windDetail,
  425. lightDetail,
  426. },
  427. // 数据
  428. data() {
  429. return {
  430. loading: false,
  431. timmer: null, // 计时器
  432. sourceMap: {}, // 核心数据
  433. showMatrixList: [],
  434. fillCategory: null, // 过滤条件
  435. fillFjzt: "all", // 过滤条件
  436. displayMatrix: false, //风机详情
  437. wind: {},
  438. wtType: -1,
  439. flag: false,
  440. gfdetialDisplay: false,
  441. stationId: "",
  442. windId: "",
  443. contrastDisplay: false,
  444. chooseList: [],
  445. activeTab: "all", //全部 风电 光伏
  446. enterpriseIndex: "all",
  447. tabIndex: 0,
  448. // wp指标
  449. stse: [
  450. {
  451. statiomName: "风速",
  452. stse: "",
  453. sts: "SSPJFS",
  454. },
  455. {
  456. statiomName: "预测功率",
  457. stse: "",
  458. sts: "FCFGDQDT0001",
  459. },
  460. {
  461. statiomName: "保证功率",
  462. stse: "",
  463. sts: "SSZBZGL",
  464. },
  465. {
  466. statiomName: "理论功率",
  467. stse: "",
  468. sts: "SSZNHGLZS",
  469. },
  470. {
  471. statiomName: "实际功率",
  472. stse: "",
  473. sts: "SSZGL",
  474. },
  475. ],
  476. chartName: "对比曲线",
  477. };
  478. },
  479. // 函数
  480. methods: {
  481. deepClone,
  482. typeFlag(activeTab, enterpriseIndex) {
  483. this.activeTab = activeTab;
  484. this.tabIndex = activeTab == "all" ? 0 : activeTab == "fc" ? -1 : -2;
  485. this.enterpriseIndex = enterpriseIndex;
  486. },
  487. // 根据风机状态码返回对应 class
  488. getColor(fjzt) {
  489. switch (fjzt) {
  490. case 0:
  491. return "blue";
  492. case 1:
  493. return "green";
  494. case 2:
  495. return "red";
  496. case 3:
  497. return "orange";
  498. case 4:
  499. return "pink";
  500. case 5:
  501. return "write";
  502. case 6:
  503. return "gray";
  504. }
  505. },
  506. // 切换显示种类
  507. changeShow(fjzt) {
  508. // 风机状态
  509. this.fillFjzt = fjzt;
  510. let showMatrixList = this.deepClone(this.sourceMap.powerVos);
  511. if (fjzt !== "all") {
  512. // 展示数据过滤
  513. this.showMatrixList = showMatrixList?.map(function (item) {
  514. item.wtlist = item.wtlist.filter(function (y) {
  515. return y.status === fjzt;
  516. });
  517. return item;
  518. });
  519. } else {
  520. this.showMatrixList = showMatrixList;
  521. }
  522. },
  523. // 请求服务
  524. requestData() {
  525. api
  526. .matrixPush({
  527. company:
  528. this.enterpriseIndex == "all"
  529. ? "0"
  530. : this.enterpriseIndex.toString(),
  531. type: this.tabIndex.toString(),
  532. })
  533. .then((res) => {
  534. this.loading = false;
  535. if (Object.values(res.data.data).length) {
  536. this.sourceMap = res.data.data;
  537. if (this.fillFjzt) {
  538. this.changeShow(this.fillFjzt);
  539. }
  540. } else {
  541. this.sourceMap = {};
  542. this.showMatrixList = [];
  543. }
  544. });
  545. },
  546. // 展示对比曲线
  547. handleIndicatorClick(czlx, wpid) {
  548. let y = this.deepClone(this.stse);
  549. if (czlx == "-2") {
  550. y[0].statiomName = "光照强度";
  551. y[0].sts = "SSPJGZD";
  552. }
  553. this.$refs.child.openCurvDatas(y, 1, wpid);
  554. },
  555. // 查看风机详情
  556. goDetails(wt, type) {
  557. this.displayMatrix = true;
  558. this.wtType = type;
  559. this.$nextTick(() => {
  560. this.wind = { ...wt, wtType: type };
  561. this.flag = true;
  562. });
  563. },
  564. selectList(val) {
  565. val.forEach((item) => {
  566. this.handleChoose(item.id);
  567. });
  568. },
  569. handleChoose(value) {
  570. this.sourceMap.fjmap.forEach((val) => {
  571. val.forEach((item) => {
  572. if (item.wtId === value) {
  573. if (item.active) {
  574. let showIndex = null;
  575. this.chooseList.forEach((res, index) => {
  576. if (res.wtId === item.wtId) {
  577. showIndex = index;
  578. }
  579. });
  580. this.chooseList.splice(showIndex, 1);
  581. } else {
  582. this.chooseList.push(item);
  583. }
  584. item.active = !item.active;
  585. }
  586. });
  587. });
  588. },
  589. handleClick() {
  590. this.contrastDisplay = true;
  591. this.$refs.contrast.handleSearch(this.chooseList);
  592. },
  593. },
  594. created() {
  595. let that = this;
  596. that.$nextTick(() => {
  597. this.loading = true;
  598. that.requestData();
  599. that.timmer = setInterval(() => {
  600. that.requestData();
  601. }, 5000);
  602. });
  603. },
  604. unmounted() {
  605. clearInterval(this.timmer);
  606. this.timmer = null;
  607. },
  608. };
  609. </script>
  610. <style lang="less" scoped>
  611. .light-matrix {
  612. height: calc(100vh - 59px - 67px);
  613. display: flex;
  614. flex-direction: column;
  615. padding: 0 16px;
  616. p {
  617. margin: 0;
  618. }
  619. .el-header {
  620. height: 78px;
  621. // margin-top: 10px;
  622. background-color: #fff;
  623. border-radius: 5px 5px 0 0;
  624. .el-row {
  625. align-items: center;
  626. height: 100%;
  627. .el-col {
  628. width: 40px;
  629. div {
  630. text-align: center;
  631. }
  632. .fd-header1,
  633. .fd-header2 {
  634. display: flex;
  635. position: relative;
  636. .el-col {
  637. flex: 1;
  638. display: flex;
  639. align-items: center;
  640. .active-b {
  641. border: 1px solid transparent;
  642. padding: 4px 10px;
  643. position: relative;
  644. .left_p {
  645. width: 12px;
  646. height: 12px;
  647. position: absolute;
  648. left: -1px;
  649. top: -1px;
  650. }
  651. .right_p {
  652. width: 12px;
  653. height: 12px;
  654. position: absolute;
  655. left: 61px;
  656. top: 35px;
  657. }
  658. .yuan {
  659. font-family: AgencyFB-Reg;
  660. line-height: 20px;
  661. display: flex;
  662. > p:first-of-type {
  663. width: 13px;
  664. height: 13px;
  665. border: 1px solid transparent;
  666. position: absolute;
  667. top: 9px;
  668. left: 10px;
  669. }
  670. > p:last-of-type {
  671. margin-left: 20px;
  672. }
  673. .circle {
  674. display: inline-block;
  675. width: 4px;
  676. height: 4px;
  677. vertical-align: middle;
  678. margin-right: 10px;
  679. position: absolute;
  680. top: 3.5px;
  681. left: 3px;
  682. }
  683. }
  684. }
  685. }
  686. .el-col.fd-img,
  687. .el-col.gf-img {
  688. flex: 1.5 0 auto;
  689. display: flex;
  690. color: #b3b3b3;
  691. align-items: none;
  692. // border: 0;
  693. // padding: 0;
  694. .imgs {
  695. margin-right: 20px;
  696. }
  697. .titles {
  698. display: flex;
  699. flex-direction: column;
  700. justify-content: center;
  701. align-items: center;
  702. font-size: 14px;
  703. color: #0d1e1c;
  704. font-weight: bold;
  705. p {
  706. font-size: 16px;
  707. margin-top: 5px;
  708. }
  709. }
  710. }
  711. .el-col.fd-img {
  712. .qty_imgs {
  713. position: absolute;
  714. left: 11px;
  715. top: 12px;
  716. animation: move 1s infinite linear;
  717. }
  718. @keyframes move {
  719. 0% {
  720. top: 12px;
  721. }
  722. 20% {
  723. top: 11px;
  724. }
  725. 40% {
  726. top: 10px;
  727. }
  728. 80% {
  729. top: 11px;
  730. }
  731. 100% {
  732. top: 12px;
  733. }
  734. }
  735. }
  736. // 待机
  737. .el-col:nth-child(2) {
  738. color: #1c99ff;
  739. .active_bor {
  740. border: 1px solid #1c99ff;
  741. .left_p {
  742. border-left: 1.5px solid #ffffff;
  743. border-top: 1.5px solid #ffffff;
  744. }
  745. .right_p {
  746. border-right: 1.5px solid #ffffff;
  747. border-bottom: 1.5px solid #ffffff;
  748. }
  749. div {
  750. > p:first-of-type {
  751. border: 1px solid #1c99ff !important;
  752. }
  753. }
  754. }
  755. .circle {
  756. background-color: #1c99ff;
  757. }
  758. }
  759. //并网
  760. .el-col:nth-child(3) {
  761. color: #05bb4c;
  762. .active_bor {
  763. border: 1px solid #05bb4c;
  764. .left_p {
  765. border-left: 1.5px solid #ffffff;
  766. border-top: 1.5px solid #ffffff;
  767. }
  768. .right_p {
  769. border-right: 1.5px solid #ffffff;
  770. border-bottom: 1.5px solid #ffffff;
  771. }
  772. div {
  773. > p:first-of-type {
  774. border: 1px solid #05bb4c !important;
  775. }
  776. }
  777. }
  778. .circle {
  779. background-color: #05bb4c;
  780. }
  781. }
  782. // 故障
  783. .el-col:nth-child(4) {
  784. color: #ba3237;
  785. .active_bor {
  786. border: 1px solid #ba3237;
  787. .left_p {
  788. border-left: 1.5px solid #ffffff;
  789. border-top: 1.5px solid #ffffff;
  790. }
  791. .right_p {
  792. border-right: 1.5px solid #ffffff;
  793. border-bottom: 1.5px solid #ffffff;
  794. }
  795. div {
  796. > p:first-of-type {
  797. border: 1px solid #ba3237 !important;
  798. }
  799. }
  800. }
  801. .circle {
  802. background-color: #ba3237;
  803. }
  804. }
  805. // 检修
  806. .el-col:nth-child(5) {
  807. color: #e17d24;
  808. .active_bor {
  809. border: 1px solid #e17d24;
  810. .left_p {
  811. border-left: 1.5px solid #ffffff;
  812. border-top: 1.5px solid #ffffff;
  813. }
  814. .right_p {
  815. border-right: 1.5px solid #ffffff;
  816. border-bottom: 1.5px solid #ffffff;
  817. }
  818. div {
  819. > p:first-of-type {
  820. border: 1px solid #e17d24 !important;
  821. }
  822. }
  823. }
  824. .circle {
  825. background-color: #e17d24;
  826. }
  827. }
  828. // 限电
  829. .el-col:nth-child(6) {
  830. color: #c530c8;
  831. .active_bor {
  832. border: 1px solid #c530c8;
  833. .left_p {
  834. border-left: 1.5px solid #ffffff;
  835. border-top: 1.5px solid #ffffff;
  836. }
  837. .right_p {
  838. border-right: 1.5px solid #ffffff;
  839. border-bottom: 1.5px solid #ffffff;
  840. }
  841. div {
  842. > p:first-of-type {
  843. border: 1px solid #c530c8 !important;
  844. }
  845. }
  846. }
  847. .circle {
  848. background-color: #c530c8;
  849. }
  850. }
  851. // 受累
  852. .el-col:nth-child(7) {
  853. color: #0d1e1c;
  854. .active_bor {
  855. border: 1px solid #0d1e1c;
  856. .left_p {
  857. border-left: 1.5px solid #ffffff;
  858. border-top: 1.5px solid #ffffff;
  859. }
  860. .right_p {
  861. border-right: 1.5px solid #ffffff;
  862. border-bottom: 1.5px solid #ffffff;
  863. }
  864. div {
  865. > p:first-of-type {
  866. border: 1px solid #0d1e1c !important;
  867. }
  868. }
  869. }
  870. .circle {
  871. background-color: #0d1e1c;
  872. }
  873. }
  874. // 离线
  875. .el-col:nth-child(8) {
  876. color: #929ca3;
  877. .active_bor {
  878. border: 1px solid #929ca3;
  879. .left_p {
  880. border-left: 1.5px solid #ffffff;
  881. border-top: 1.5px solid #ffffff;
  882. }
  883. .right_p {
  884. border-right: 1.5px solid #ffffff;
  885. border-bottom: 1.5px solid #ffffff;
  886. }
  887. div {
  888. > p:first-of-type {
  889. border: 1px solid #929ca3 !important;
  890. }
  891. }
  892. }
  893. .circle {
  894. background-color: #929ca3;
  895. }
  896. }
  897. }
  898. .fd-header2 {
  899. .el-col.gf-img {
  900. .qty_img {
  901. position: absolute;
  902. left: 11px;
  903. top: 18px;
  904. animation: moves 1s infinite linear;
  905. }
  906. @keyframes moves {
  907. 0% {
  908. top: 18px;
  909. }
  910. 20% {
  911. top: 17px;
  912. }
  913. 40% {
  914. top: 16px;
  915. }
  916. 80% {
  917. top: 17px;
  918. }
  919. 100% {
  920. top: 18px;
  921. }
  922. }
  923. }
  924. }
  925. }
  926. }
  927. }
  928. .data_statistics {
  929. width: 100%;
  930. height: 32px;
  931. line-height: 32px;
  932. // background-color: rgba(0, 24, 68, 0.8);
  933. background-color: rgba(96, 103, 105, 0.4);
  934. padding: 0 12px;
  935. .icon-photovoltaic {
  936. color: #ff8100;
  937. }
  938. .el-col {
  939. height: 32px;
  940. }
  941. .el-col + .el-col {
  942. padding-left: 0;
  943. }
  944. .el-col:first-child {
  945. flex: 0 0 auto;
  946. margin-right: 10px;
  947. font-family: AgencyFB-Reg;
  948. color: #05bb4c;
  949. font-size: 14px;
  950. i {
  951. margin-right: 5px;
  952. font-size: 15px;
  953. position: relative;
  954. top: 3px;
  955. }
  956. }
  957. .el-col:not(:first-child) {
  958. flex: 1 0 auto;
  959. color: #b3b3b3;
  960. display: flex;
  961. align-items: center;
  962. span {
  963. font-family: Arial;
  964. color: #9ca5a8;
  965. font-size: 12px;
  966. // display: inline-block;
  967. width: 45px;
  968. text-align: left;
  969. margin-left: 5px;
  970. vertical-align: middle;
  971. }
  972. }
  973. .el-col:nth-child(2) {
  974. span {
  975. color: #fff;
  976. }
  977. }
  978. .el-col:nth-child(3) {
  979. span {
  980. color: #1c99ff;
  981. }
  982. }
  983. .el-col:nth-child(4) {
  984. span {
  985. color: #05bb4c;
  986. }
  987. }
  988. .el-col:nth-child(5) {
  989. span {
  990. color: #ba3237;
  991. }
  992. }
  993. .el-col:nth-child(6) {
  994. span {
  995. color: #e17d24;
  996. }
  997. }
  998. .el-col:nth-child(7) {
  999. span {
  1000. color: #c530c8;
  1001. }
  1002. }
  1003. .el-col:nth-child(8) {
  1004. span {
  1005. color: #ffffff;
  1006. }
  1007. }
  1008. .el-col:nth-child(9) {
  1009. span {
  1010. color: #606769;
  1011. }
  1012. }
  1013. }
  1014. .data_views {
  1015. padding: 5px 0;
  1016. display: grid;
  1017. justify-content: space-between;
  1018. grid-template-columns: repeat(auto-fill, 44px);
  1019. span {
  1020. cursor: pointer;
  1021. display: inline-block;
  1022. min-width: 44px;
  1023. height: 22px;
  1024. line-height: 22px;
  1025. text-align: center;
  1026. border-radius: 2px;
  1027. margin-bottom: 3px;
  1028. margin-right: 4px;
  1029. font-size: 13px;
  1030. }
  1031. .card_hover {
  1032. background: #1a7ccd;
  1033. }
  1034. // 待机
  1035. .blue {
  1036. color: #1c99ff;
  1037. border-color: #1c99ff;
  1038. }
  1039. // 并网
  1040. .green {
  1041. color: #05bb4c;
  1042. border-color: #05bb4c;
  1043. }
  1044. // 限电
  1045. .pink {
  1046. color: #c530c8;
  1047. border-color: #c530c8;
  1048. }
  1049. // 故障
  1050. .red {
  1051. color: #fff;
  1052. border-color: #ba3237;
  1053. background-color: #ba3237;
  1054. }
  1055. // 检修
  1056. .orange {
  1057. color: #e17d24;
  1058. border-color: #e17d24;
  1059. }
  1060. // 受累
  1061. .write {
  1062. color: #ffffff;
  1063. border-color: rgba(255, 255, 255, 1);
  1064. }
  1065. // 离线
  1066. .gray {
  1067. color: #a7a7a7;
  1068. border-color: #606769;
  1069. background-color: rgba(96, 103, 105, 0.2);
  1070. }
  1071. .line_ll {
  1072. color: #ffffff !important;
  1073. border-color: #606701 !important;
  1074. background-color: #606239 !important;
  1075. }
  1076. }
  1077. }
  1078. // ---------------------------------------------------------------------------
  1079. .dark-matrix {
  1080. height: calc(100vh - 59px - 67px);
  1081. padding: 0 16px;
  1082. display: flex;
  1083. flex-direction: column;
  1084. p {
  1085. margin: 0;
  1086. }
  1087. .el-header {
  1088. height: 78px;
  1089. // margin-top: 10px;
  1090. background-color: rgba(0, 0, 0, 0.45);
  1091. border-radius: 5px 5px 0 0;
  1092. .el-row {
  1093. align-items: center;
  1094. height: 100%;
  1095. .el-col {
  1096. width: 40px;
  1097. div {
  1098. text-align: center;
  1099. }
  1100. .fd-header1,
  1101. .fd-header2 {
  1102. display: flex;
  1103. position: relative;
  1104. .el-col {
  1105. flex: 1;
  1106. display: flex;
  1107. align-items: center;
  1108. .active-b {
  1109. border: 1px solid transparent;
  1110. padding: 4px 10px;
  1111. position: relative;
  1112. .left_p {
  1113. width: 12px;
  1114. height: 12px;
  1115. position: absolute;
  1116. left: -1px;
  1117. top: -1px;
  1118. }
  1119. .right_p {
  1120. width: 12px;
  1121. height: 12px;
  1122. position: absolute;
  1123. left: 61px;
  1124. top: 45px;
  1125. }
  1126. .yuan {
  1127. font-family: AgencyFB-Reg;
  1128. line-height: 30px;
  1129. display: flex;
  1130. > p:first-of-type {
  1131. width: 13px;
  1132. height: 13px;
  1133. border: 1px solid transparent;
  1134. position: absolute;
  1135. top: 9px;
  1136. left: 10px;
  1137. }
  1138. > p:last-of-type {
  1139. margin-left: 20px;
  1140. }
  1141. .circle {
  1142. display: inline-block;
  1143. width: 4px;
  1144. height: 4px;
  1145. vertical-align: middle;
  1146. margin-right: 10px;
  1147. position: absolute;
  1148. top: 3.5px;
  1149. left: 3px;
  1150. }
  1151. }
  1152. }
  1153. }
  1154. .el-col.fd-img,
  1155. .el-col.gf-img {
  1156. flex: 1.5 0 auto;
  1157. display: flex;
  1158. color: #b3b3b3;
  1159. align-items: none;
  1160. // border: 0;
  1161. // padding: 0;
  1162. .imgs {
  1163. margin-right: 20px;
  1164. }
  1165. .titles {
  1166. display: flex;
  1167. flex-direction: column;
  1168. justify-content: center;
  1169. align-items: center;
  1170. font-size: 14px;
  1171. p {
  1172. font-size: 16px;
  1173. margin-top: 5px;
  1174. }
  1175. }
  1176. }
  1177. .el-col.fd-img {
  1178. .qty_imgs {
  1179. position: absolute;
  1180. left: 11px;
  1181. top: 12px;
  1182. animation: move 1s infinite linear;
  1183. }
  1184. @keyframes move {
  1185. 0% {
  1186. top: 12px;
  1187. }
  1188. 20% {
  1189. top: 11px;
  1190. }
  1191. 40% {
  1192. top: 10px;
  1193. }
  1194. 80% {
  1195. top: 11px;
  1196. }
  1197. 100% {
  1198. top: 12px;
  1199. }
  1200. }
  1201. }
  1202. // 待机
  1203. .el-col:nth-child(2) {
  1204. color: #1c99ff;
  1205. .active_bor {
  1206. border: 1px solid #1c99ff;
  1207. .left_p {
  1208. border-left: 1.5px solid #ffffff;
  1209. border-top: 1.5px solid #ffffff;
  1210. }
  1211. .right_p {
  1212. border-right: 1.5px solid #ffffff;
  1213. border-bottom: 1.5px solid #ffffff;
  1214. }
  1215. div {
  1216. > p:first-of-type {
  1217. border: 1px solid #1c99ff !important;
  1218. }
  1219. }
  1220. }
  1221. .circle {
  1222. background-color: #1c99ff;
  1223. }
  1224. }
  1225. //并网
  1226. .el-col:nth-child(3) {
  1227. color: #05bb4c;
  1228. .active_bor {
  1229. border: 1px solid #05bb4c;
  1230. .left_p {
  1231. border-left: 1.5px solid #ffffff;
  1232. border-top: 1.5px solid #ffffff;
  1233. }
  1234. .right_p {
  1235. border-right: 1.5px solid #ffffff;
  1236. border-bottom: 1.5px solid #ffffff;
  1237. }
  1238. div {
  1239. > p:first-of-type {
  1240. border: 1px solid #05bb4c !important;
  1241. }
  1242. }
  1243. }
  1244. .circle {
  1245. background-color: #05bb4c;
  1246. }
  1247. }
  1248. // 故障
  1249. .el-col:nth-child(4) {
  1250. color: #ba3237;
  1251. .active_bor {
  1252. border: 1px solid #ba3237;
  1253. .left_p {
  1254. border-left: 1.5px solid #ffffff;
  1255. border-top: 1.5px solid #ffffff;
  1256. }
  1257. .right_p {
  1258. border-right: 1.5px solid #ffffff;
  1259. border-bottom: 1.5px solid #ffffff;
  1260. }
  1261. div {
  1262. > p:first-of-type {
  1263. border: 1px solid #ba3237 !important;
  1264. }
  1265. }
  1266. }
  1267. .circle {
  1268. background-color: #ba3237;
  1269. }
  1270. }
  1271. // 检修
  1272. .el-col:nth-child(5) {
  1273. color: #e17d24;
  1274. .active_bor {
  1275. border: 1px solid #e17d24;
  1276. .left_p {
  1277. border-left: 1.5px solid #ffffff;
  1278. border-top: 1.5px solid #ffffff;
  1279. }
  1280. .right_p {
  1281. border-right: 1.5px solid #ffffff;
  1282. border-bottom: 1.5px solid #ffffff;
  1283. }
  1284. div {
  1285. > p:first-of-type {
  1286. border: 1px solid #e17d24 !important;
  1287. }
  1288. }
  1289. }
  1290. .circle {
  1291. background-color: #e17d24;
  1292. }
  1293. }
  1294. // 限电
  1295. .el-col:nth-child(6) {
  1296. color: #c530c8;
  1297. .active_bor {
  1298. border: 1px solid #c530c8;
  1299. .left_p {
  1300. border-left: 1.5px solid #ffffff;
  1301. border-top: 1.5px solid #ffffff;
  1302. }
  1303. .right_p {
  1304. border-right: 1.5px solid #ffffff;
  1305. border-bottom: 1.5px solid #ffffff;
  1306. }
  1307. div {
  1308. > p:first-of-type {
  1309. border: 1px solid #c530c8 !important;
  1310. }
  1311. }
  1312. }
  1313. .circle {
  1314. background-color: #c530c8;
  1315. }
  1316. }
  1317. // 受累
  1318. .el-col:nth-child(7) {
  1319. color: rgba(255, 255, 255, 1);
  1320. .active_bor {
  1321. border: 1px solid rgba(255, 255, 255, 1);
  1322. .left_p {
  1323. border-left: 1.5px solid #ffffff;
  1324. border-top: 1.5px solid #ffffff;
  1325. }
  1326. .right_p {
  1327. border-right: 1.5px solid #ffffff;
  1328. border-bottom: 1.5px solid #ffffff;
  1329. }
  1330. div {
  1331. > p:first-of-type {
  1332. border: 1px solid rgba(255, 255, 255, 1) !important;
  1333. }
  1334. }
  1335. }
  1336. .circle {
  1337. background-color: rgba(255, 255, 255, 1);
  1338. }
  1339. }
  1340. // 离线
  1341. .el-col:nth-child(8) {
  1342. color: #606769;
  1343. .active_bor {
  1344. border: 1px solid #606769;
  1345. .left_p {
  1346. border-left: 1.5px solid #ffffff;
  1347. border-top: 1.5px solid #ffffff;
  1348. }
  1349. .right_p {
  1350. border-right: 1.5px solid #ffffff;
  1351. border-bottom: 1.5px solid #ffffff;
  1352. }
  1353. div {
  1354. > p:first-of-type {
  1355. border: 1px solid #606769 !important;
  1356. }
  1357. }
  1358. }
  1359. .circle {
  1360. background-color: #606769;
  1361. }
  1362. }
  1363. }
  1364. .fd-header2 {
  1365. .el-col.gf-img {
  1366. .qty_img {
  1367. position: absolute;
  1368. left: 11px;
  1369. top: 18px;
  1370. animation: moves 1s infinite linear;
  1371. }
  1372. @keyframes moves {
  1373. 0% {
  1374. top: 18px;
  1375. }
  1376. 20% {
  1377. top: 17px;
  1378. }
  1379. 40% {
  1380. top: 16px;
  1381. }
  1382. 80% {
  1383. top: 17px;
  1384. }
  1385. 100% {
  1386. top: 18px;
  1387. }
  1388. }
  1389. }
  1390. }
  1391. }
  1392. }
  1393. }
  1394. .data_statistics {
  1395. width: 100%;
  1396. height: 32px;
  1397. line-height: 32px;
  1398. // background-color: rgba(0, 24, 68, 0.8);
  1399. background-color: rgba(96, 103, 105, 0.4);
  1400. padding: 0 12px;
  1401. .icon-photovoltaic {
  1402. color: #ff8100;
  1403. }
  1404. .el-col {
  1405. height: 32px;
  1406. }
  1407. .el-col + .el-col {
  1408. padding-left: 0;
  1409. }
  1410. .el-col:first-child {
  1411. flex: 0 0 auto;
  1412. margin-right: 10px;
  1413. font-family: AgencyFB-Reg;
  1414. color: #05bb4c;
  1415. font-size: 14px;
  1416. i {
  1417. margin-right: 5px;
  1418. font-size: 15px;
  1419. position: relative;
  1420. top: 3px;
  1421. }
  1422. }
  1423. .el-col:not(:first-child) {
  1424. flex: 1 0 auto;
  1425. color: #b3b3b3;
  1426. display: flex;
  1427. align-items: center;
  1428. span {
  1429. font-family: Arial;
  1430. color: #9ca5a8;
  1431. font-size: 12px;
  1432. // display: inline-block;
  1433. width: 45px;
  1434. text-align: left;
  1435. margin-left: 5px;
  1436. vertical-align: middle;
  1437. }
  1438. }
  1439. .el-col:nth-child(2) {
  1440. span {
  1441. color: #fff;
  1442. }
  1443. }
  1444. .el-col:nth-child(3) {
  1445. span {
  1446. color: #1c99ff;
  1447. }
  1448. }
  1449. .el-col:nth-child(4) {
  1450. span {
  1451. color: #05bb4c;
  1452. }
  1453. }
  1454. .el-col:nth-child(5) {
  1455. span {
  1456. color: #ba3237;
  1457. }
  1458. }
  1459. .el-col:nth-child(6) {
  1460. span {
  1461. color: #e17d24;
  1462. }
  1463. }
  1464. .el-col:nth-child(7) {
  1465. span {
  1466. color: #c530c8;
  1467. }
  1468. }
  1469. .el-col:nth-child(8) {
  1470. span {
  1471. color: #ffffff;
  1472. }
  1473. }
  1474. .el-col:nth-child(9) {
  1475. span {
  1476. color: #606769;
  1477. }
  1478. }
  1479. }
  1480. .data_views {
  1481. padding: 5px 0;
  1482. display: grid;
  1483. justify-content: space-between;
  1484. grid-template-columns: repeat(auto-fill, 44px);
  1485. span {
  1486. cursor: pointer;
  1487. display: inline-block;
  1488. min-width: 44px;
  1489. height: 22px;
  1490. line-height: 22px;
  1491. text-align: center;
  1492. border: 1px solid #4b55ae;
  1493. color: #4b55ae;
  1494. border-radius: 2px;
  1495. margin-bottom: 3px;
  1496. margin-right: 4px;
  1497. font-size: 13px;
  1498. }
  1499. .card_hover {
  1500. background: #1a7ccd;
  1501. }
  1502. // 待机
  1503. .blue {
  1504. color: #1c99ff;
  1505. border-color: #1c99ff;
  1506. }
  1507. // 并网
  1508. .green {
  1509. color: #05bb4c;
  1510. border-color: #05bb4c;
  1511. }
  1512. // 限电
  1513. .pink {
  1514. color: #c530c8;
  1515. border-color: #c530c8;
  1516. }
  1517. // 故障
  1518. .red {
  1519. color: #fff;
  1520. border-color: #ba3237;
  1521. background-color: #ba3237;
  1522. }
  1523. // 检修
  1524. .orange {
  1525. color: #e17d24;
  1526. border-color: #e17d24;
  1527. }
  1528. // 受累
  1529. .write {
  1530. color: #ffffff;
  1531. border-color: rgba(255, 255, 255, 1);
  1532. }
  1533. // 离线
  1534. .gray {
  1535. color: #a7a7a7;
  1536. border-color: #606769;
  1537. background-color: rgba(96, 103, 105, 0.2);
  1538. }
  1539. .line_ll {
  1540. color: #ffffff !important;
  1541. border-color: #606701 !important;
  1542. background-color: #606239 !important;
  1543. }
  1544. }
  1545. }
  1546. </style>