LightMatrix3.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035
  1. <template>
  2. <div class="light-matrix">
  3. <div class="panel">
  4. <div class="dot left top"></div>
  5. <div class="dot left bottom"></div>
  6. <div class="dot right top"></div>
  7. <div class="dot right bottom"></div>
  8. <Row>
  9. <Col :span="3">
  10. <div class="panel-item-gf">
  11. <div class="panel-item-gf-left">
  12. <span class="svg-icon svg-icon-write svg-icon-md">
  13. <SvgIcon :svgid="panelData.first.icon"></SvgIcon>
  14. </span>
  15. </div>
  16. <div class="panel-item-gf-right">
  17. <div class="panel-item-gf-up">{{ panelData.first.text }}</div>
  18. <div class="panel-item-gf-down">{{ panelData.first.num }}</div>
  19. </div>
  20. </div>
  21. </Col>
  22. <Col :span="3" v-for="(data, index) of panelData.datas" :key="index">
  23. <div class="panel-item" :class="data.color">
  24. <div class="panel-item-left">
  25. <div class="panel-item-li">
  26. <span>{{ data.name }}</span>
  27. <span class="svg-icon svg-icon-sm" :class="'svg-icon-' + data.color">
  28. <SvgIcon :svgid="data.nameIcon"></SvgIcon>
  29. </span>
  30. </div>
  31. <div class="panel-item-li">
  32. <span>{{ data.num }}</span>
  33. <span class="svg-icon svg-icon-sm" :class="'svg-icon-' + data.color">
  34. <SvgIcon :svgid="data.numIcon"></SvgIcon>
  35. </span>
  36. </div>
  37. </div>
  38. <div class="panel-item-right">
  39. <div class="panel-item-ri">
  40. <span>{{ data.text1 }}</span>
  41. <span>{{ data.num1 }}</span>
  42. </div>
  43. <div class="panel-item-ri">
  44. <span>{{ data.text2 }}</span>
  45. <span>{{ data.num2 }}</span>
  46. </div>
  47. </div>
  48. </div>
  49. </Col>
  50. </Row>
  51. </div>
  52. <div class="panel-box">
  53. <div v-for="(table, k) of tables" :key="k">
  54. <div class="panel-title">
  55. <div class="panel-title-name">
  56. <i class="fa fa-send"></i>
  57. <span>某某某风电场</span>
  58. <div class="sub-title-item" v-for="(data, index) of table.subTitleDatas" :key="index">
  59. <span class="sub-title">{{ data.text }}</span>
  60. <span class="sub-count" :class="data.color">{{ data.num }}</span>
  61. </div>
  62. </div>
  63. </div>
  64. <div class="panel-body">
  65. <div class="card" v-for="(col, j) of table.datas" :key="j" :class="col.color">
  66. <span class="center-icon svg-icon svg-icon-md" :class="col.color == 'black' ? 'svg-icon-black' : 'svg-icon-write'">
  67. <SvgIcon :svgid="mapping[col.color]"></SvgIcon>
  68. </span>
  69. <div class="card-panel">
  70. <div class="card-left">
  71. <div class="tag">{{ col.tag }}</div>
  72. <div class="num">
  73. <i class="svg-icon svg-icon-sm" :class="'svg-icon-' + col.color">
  74. <SvgIcon svgid="svg-W"></SvgIcon>
  75. </i>
  76. <div>{{ col.num1 }}</div>
  77. </div>
  78. </div>
  79. <div class="card-right">
  80. <div class="num">
  81. <i class="svg-icon svg-icon-sm" :class="'svg-icon-' + col.color">
  82. <SvgIcon svgid="svg-R"></SvgIcon>
  83. </i>
  84. <div>{{ col.num2 }}</div>
  85. </div>
  86. <div class="num">
  87. <i class="svg-icon svg-icon-sm" :class="'svg-icon-' + col.color">
  88. <SvgIcon svgid="svg-P"></SvgIcon>
  89. </i>
  90. <div>{{ col.num3 }}</div>
  91. </div>
  92. </div>
  93. </div>
  94. </div>
  95. <!-- 站位用 保证卡片布局最后一行不会有问题 -->
  96. <i class="blank" v-for="i in table.datas.length" :key="i"></i>
  97. </div>
  98. </div>
  99. </div>
  100. </div>
  101. </template>
  102. <script>
  103. import Row from "@/components/coms/grid/row.vue";
  104. import Col from "@/components/coms/grid/col.vue";
  105. import SvgIcon from "@com/coms/icon/svg-icon.vue";
  106. import util from "@/helper/util.js";
  107. export default {
  108. // 名称
  109. name: "LightMatrix3",
  110. // 使用组件
  111. components: {
  112. Row,
  113. Col,
  114. SvgIcon,
  115. },
  116. // 数据
  117. data() {
  118. return {
  119. mapping: {
  120. green: "svg-standby",
  121. blue: "svg-normal-power",
  122. pink: "svg-limit-power",
  123. red: "svg-gz-downtime",
  124. orange: "svg-jx-downtime",
  125. gray: "svg-offline",
  126. black: "svg-intranet-involvement",
  127. },
  128. panelData: {
  129. first: {
  130. icon: "svg-wind-site",
  131. text: "接入电机",
  132. num: 256,
  133. },
  134. datas: [
  135. {
  136. color: "green",
  137. name: "待机",
  138. nameIcon: "svg-standby",
  139. num: 50,
  140. numIcon: "svg-manual",
  141. text1: "待风",
  142. num1: 30,
  143. text2: "手动停机",
  144. num2: 30,
  145. },
  146. {
  147. color: "blue",
  148. name: "运行",
  149. nameIcon: "svg-normal-power",
  150. num: 50,
  151. numIcon: "svg-drop-output",
  152. text1: "正常发电",
  153. num1: 30,
  154. text2: "降出力",
  155. num2: 30,
  156. },
  157. {
  158. color: "pink",
  159. name: "限电",
  160. nameIcon: "svg-limit-power",
  161. num: 50,
  162. numIcon: "svg-downtime",
  163. text1: "降出力",
  164. num1: 30,
  165. text2: "停机",
  166. num2: 30,
  167. },
  168. {
  169. color: "red",
  170. name: "故障",
  171. nameIcon: "svg-gz-downtime",
  172. num: 50,
  173. numIcon: "svg-field-involved",
  174. text1: "故障停机",
  175. num1: 30,
  176. text2: "场内受累",
  177. num2: 30,
  178. },
  179. {
  180. color: "orange",
  181. name: "检测",
  182. nameIcon: "svg-jx-downtime",
  183. num: 50,
  184. numIcon: "svg-field-involved",
  185. text1: "检修停机",
  186. num1: 30,
  187. text2: "产内受累",
  188. num2: 30,
  189. },
  190. {
  191. color: "gray",
  192. name: "离线",
  193. nameIcon: "svg-offline",
  194. num: 50,
  195. numIcon: "svg-unknown",
  196. text1: "离线",
  197. num1: 30,
  198. text2: "未知",
  199. num2: 30,
  200. },
  201. {
  202. color: "write",
  203. name: "受累",
  204. nameIcon: "svg-intranet-involvement",
  205. num: 50,
  206. numIcon: "svg-environment",
  207. text1: "电网",
  208. num1: 30,
  209. text2: "环境",
  210. num2: 30,
  211. },
  212. ],
  213. },
  214. tables: [
  215. {
  216. col: 15,
  217. subTitleDatas: [
  218. {
  219. text: "接入台数",
  220. num: 256,
  221. color: "write",
  222. },
  223. {
  224. text: "待机台数",
  225. num: 256,
  226. color: "green",
  227. },
  228. {
  229. text: "并网台数",
  230. num: 256,
  231. color: "blue",
  232. },
  233. {
  234. text: "限电台数",
  235. num: 256,
  236. color: "pink",
  237. },
  238. {
  239. text: "故障台数",
  240. num: 256,
  241. color: "red",
  242. },
  243. {
  244. text: "检修台数",
  245. num: 256,
  246. color: "orange",
  247. },
  248. {
  249. text: "受累台数",
  250. num: 256,
  251. color: "write",
  252. },
  253. {
  254. text: "离线台数",
  255. num: 256,
  256. color: "gray",
  257. },
  258. {
  259. text: "风速",
  260. num: 256,
  261. color: "gray",
  262. },
  263. {
  264. text: "预测功率",
  265. num: 256,
  266. color: "gray",
  267. },
  268. {
  269. text: "保证功率",
  270. num: 256,
  271. color: "gray",
  272. },
  273. {
  274. text: "应发功率",
  275. num: 256,
  276. color: "gray",
  277. },
  278. {
  279. text: "实际功率",
  280. num: 256,
  281. color: "gray",
  282. },
  283. {
  284. text: "AGC指令",
  285. num: 256,
  286. color: "gray",
  287. },
  288. {
  289. text: "出线功率",
  290. num: 256,
  291. color: "gray",
  292. },
  293. ],
  294. datas: [
  295. {
  296. tag: "A-11",
  297. num1: 1234.56,
  298. num2: 1234.56,
  299. num3: 1234.56,
  300. color: "blue",
  301. },
  302. ],
  303. },
  304. ],
  305. };
  306. },
  307. // 函数
  308. methods: {},
  309. // 生命周期钩子
  310. beforeCreate() {
  311. // 创建前
  312. },
  313. created() {
  314. // 创建后
  315. let tempData = [];
  316. for (let i = 0; i < 45; i++) {
  317. tempData.push(util.copy(this.tables[0].datas[0]));
  318. if (i == 39) {
  319. tempData[i].color = "green";
  320. }
  321. if (i == 40) {
  322. tempData[i].color = "pink";
  323. }
  324. if (i == 41) {
  325. tempData[i].color = "orange";
  326. }
  327. if (i == 42) {
  328. tempData[i].color = "red";
  329. }
  330. if (i == 43) {
  331. tempData[i].color = "black";
  332. }
  333. if (i == 44) {
  334. tempData[i].color = "gray";
  335. }
  336. }
  337. this.tables[0].datas = util.copy(tempData);
  338. for (let i = 0; i < 5; i++) {
  339. this.tables.push(util.copy(this.tables[0]));
  340. }
  341. },
  342. beforeMount() {
  343. // 渲染前
  344. },
  345. mounted() {
  346. // 渲染后
  347. },
  348. beforeUpdate() {
  349. // 数据更新前
  350. },
  351. updated() {
  352. // 数据更新后
  353. },
  354. };
  355. </script>
  356. <style lang="less" scoped>
  357. @panelHeight: 6.481vh;
  358. @titleHeight: 3.704vh;
  359. .light-matrix {
  360. width: calc(100% - 1.111vh);
  361. height: calc(100vh - 7.222vh);
  362. display: flex;
  363. flex-direction: column;
  364. .panel {
  365. width: 100%;
  366. border: 0.093vh solid @darkgray;
  367. position: relative;
  368. padding: 1.111vh 2.222vh;
  369. background-color: fade(@darkgray, 20%);
  370. .dot {
  371. width: 0.185vh;
  372. height: 0.185vh;
  373. border-radius: 50%;
  374. background-color: @write;
  375. position: absolute;
  376. &.left {
  377. left: 0.37vh;
  378. }
  379. &.right {
  380. right: 0.37vh;
  381. }
  382. &.top {
  383. top: 0.37vh;
  384. }
  385. &.bottom {
  386. bottom: 0.37vh;
  387. }
  388. }
  389. .panel-item-gf {
  390. width: 100%;
  391. background-color: fade(@darkgray, 20%);
  392. display: flex;
  393. height: @panelHeight;
  394. .panel-item-gf-left {
  395. width: @panelHeight;
  396. height: @panelHeight;
  397. background-color: fade(@darkgray, 40%);
  398. display: flex;
  399. align-items: center;
  400. justify-content: center;
  401. i {
  402. font-size: 2.778vh;
  403. color: @write;
  404. }
  405. }
  406. .panel-item-gf-right {
  407. flex-grow: 1;
  408. color: @write;
  409. text-align: right;
  410. .panel-item-gf-up {
  411. height: @panelHeight / 2;
  412. border-bottom: 0.093vh solid fade(@darkgray, 40%);
  413. line-height: @panelHeight / 2;
  414. padding-right: 1.111vh;
  415. font-size: @fontsize;
  416. }
  417. .panel-item-gf-down {
  418. height: @panelHeight / 2;
  419. line-height: @panelHeight / 2;
  420. padding-right: 1.111vh;
  421. font-weight: 600;
  422. font-size: @fontsize;
  423. }
  424. }
  425. }
  426. .panel-item {
  427. width: 100%;
  428. height: @panelHeight;
  429. display: flex;
  430. font-size: @fontsize-s;
  431. .panel-item-left {
  432. width: @panelHeight;
  433. height: @panelHeight;
  434. .panel-item-li {
  435. width: 100%;
  436. height: @panelHeight / 2;
  437. line-height: @panelHeight / 2;
  438. padding: 0 1.111vh;
  439. display: flex;
  440. align-items: center;
  441. font-size: @fontsize-s;
  442. .svg-icon {
  443. margin-left: auto;
  444. }
  445. }
  446. }
  447. .panel-item-right {
  448. flex-grow: 1;
  449. height: @panelHeight;
  450. .panel-item-ri {
  451. height: @panelHeight / 2;
  452. line-height: @panelHeight / 2;
  453. padding: 0 1.111vh;
  454. &:first-child {
  455. border-bottom: 0.093vh solid;
  456. }
  457. span {
  458. &:first-child {
  459. float: left;
  460. }
  461. &:last-child {
  462. float: right;
  463. color: @write;
  464. }
  465. }
  466. }
  467. }
  468. &.green {
  469. background-color: fade(@green, 20%);
  470. color: @green;
  471. .panel-item-left {
  472. background-color: fade(@green, 20%);
  473. }
  474. .panel-item-right {
  475. .panel-item-ri {
  476. &:first-child {
  477. border-color: @green;
  478. }
  479. }
  480. }
  481. }
  482. &.blue {
  483. background-color: fade(@darkBlue, 20%);
  484. color: @darkBlue;
  485. .panel-item-left {
  486. background-color: fade(@darkBlue, 20%);
  487. }
  488. .panel-item-right {
  489. .panel-item-ri {
  490. &:first-child {
  491. border-color: @darkBlue;
  492. }
  493. }
  494. }
  495. }
  496. &.pink {
  497. background-color: fade(@pink, 20%);
  498. color: @pink;
  499. .panel-item-left {
  500. background-color: fade(@pink, 20%);
  501. }
  502. .panel-item-right {
  503. .panel-item-ri {
  504. &:first-child {
  505. border-color: @pink;
  506. }
  507. }
  508. }
  509. }
  510. &.red {
  511. background-color: fade(@red, 20%);
  512. color: @red;
  513. .panel-item-left {
  514. background-color: fade(@red, 20%);
  515. }
  516. .panel-item-right {
  517. .panel-item-ri {
  518. &:first-child {
  519. border-color: @red;
  520. }
  521. }
  522. }
  523. }
  524. &.orange {
  525. background-color: fade(@orange, 20%);
  526. color: @orange;
  527. .panel-item-left {
  528. background-color: fade(@orange, 20%);
  529. }
  530. .panel-item-right {
  531. .panel-item-ri {
  532. &:first-child {
  533. border-color: @orange;
  534. }
  535. }
  536. }
  537. }
  538. &.gray {
  539. background-color: fade(@darkgray, 20%);
  540. color: @gray;
  541. .panel-item-left {
  542. background-color: fade(@darkgray, 20%);
  543. }
  544. .panel-item-right {
  545. .panel-item-ri {
  546. &:first-child {
  547. border-color: @darkgray;
  548. }
  549. }
  550. }
  551. }
  552. &.write {
  553. background-color: fade(@write, 20%);
  554. color: @write;
  555. .panel-item-left {
  556. background-color: fade(@write, 20%);
  557. }
  558. .panel-item-right {
  559. .panel-item-ri {
  560. &:first-child {
  561. border-color: @write;
  562. }
  563. }
  564. }
  565. }
  566. }
  567. }
  568. .panel-box {
  569. margin-top: 1.481vh;
  570. flex-grow: 1;
  571. overflow: auto;
  572. .panel-title {
  573. width: 100%;
  574. height: @titleHeight;
  575. line-height: @titleHeight;
  576. background-color: fade(@darkgray, 40%);
  577. .panel-title-name {
  578. font-size: @fontsize-s;
  579. color: @green;
  580. display: flex;
  581. align-items: center;
  582. i {
  583. margin: 0 0.556vh 0 1.481vh;
  584. }
  585. .sub-title-item {
  586. .sub-title {
  587. color: @gray;
  588. font-size: @fontsize-s;
  589. margin: 0 0.556vh 0 1.481vh;
  590. }
  591. .sub-count {
  592. font-size: @fontsize-s;
  593. font-family: "Bicubik";
  594. font-weight: 500;
  595. &.write {
  596. color: @write;
  597. }
  598. &.green {
  599. color: @green;
  600. }
  601. &.blue {
  602. color: @blue;
  603. }
  604. &.pink {
  605. color: @pink;
  606. }
  607. &.red {
  608. color: @red;
  609. }
  610. &.orange {
  611. color: @orange;
  612. }
  613. &.gray {
  614. color: @gray;
  615. }
  616. }
  617. }
  618. }
  619. }
  620. .panel-body {
  621. background-color: fade(@darkgray, 20%);
  622. padding: 0.741vh;
  623. margin-bottom: 1.481vh;
  624. width: 100%;
  625. display: flex;
  626. flex-direction: row;
  627. flex-wrap: wrap;
  628. justify-content: space-between;
  629. .blank {
  630. margin-right: 4px;
  631. flex: 1 0 15vh;
  632. }
  633. .card {
  634. margin-right: 4px;
  635. margin-top: 4px;
  636. flex: 1 0 15vh;
  637. }
  638. .card {
  639. border: 0.093vh solid;
  640. position: relative;
  641. .center-icon {
  642. font-size: 2.222vh;
  643. position: absolute;
  644. left: calc(50% - 1.111vh);
  645. top: calc(50% - 1.111vh);
  646. }
  647. .card-panel {
  648. display: flex;
  649. .card-left {
  650. flex: 1 0 auto;
  651. border-right: 0.093vh solid;
  652. .tag {
  653. color: @write;
  654. font-size: 14px;
  655. width: 100%;
  656. text-align: center;
  657. border-bottom: 0.093vh solid;
  658. padding: 0.37vh 0;
  659. }
  660. .num {
  661. display: flex;
  662. align-items: center;
  663. justify-content: space-around;
  664. width: 100%;
  665. font-size: 14px;
  666. text-align: left;
  667. padding: 0.37vh 0;
  668. div {
  669. min-width: 5.463vh;
  670. display: inline-block;
  671. margin-right: 0.3704vh;
  672. }
  673. i {
  674. margin-top: 0.2778vh;
  675. margin-left: 0.7407vh;
  676. }
  677. }
  678. }
  679. .card-right {
  680. flex: 1 0 auto;
  681. .num {
  682. display: flex;
  683. align-items: center;
  684. justify-content: space-around;
  685. width: 100%;
  686. font-size: 14px;
  687. text-align: left;
  688. padding: 0.37vh 0;
  689. &:first-child {
  690. border-bottom: 0.093vh solid;
  691. }
  692. div {
  693. min-width: 5.463vh;
  694. display: inline-block;
  695. margin-right: 0.3704vh;
  696. }
  697. i {
  698. margin-top: 0.2778vh;
  699. margin-left: 0.7407vh;
  700. }
  701. }
  702. }
  703. }
  704. .card-percent {
  705. height: 0.926vh;
  706. padding: 0.093vh 0.185vh;
  707. position: relative;
  708. border-top: 0.093vh solid;
  709. background-color: transparent;
  710. .percent {
  711. height: 0.648vh;
  712. background-color: @green;
  713. position: absolute;
  714. left: 0.185vh;
  715. top: 0.093vh;
  716. }
  717. }
  718. &.blue {
  719. border-color: @darkBlue;
  720. background-color: fade(@darkBlue, 30%);
  721. .center-icon {
  722. color: @write;
  723. }
  724. .card-panel {
  725. .card-left {
  726. border-color: @darkBlue;
  727. .tag {
  728. border-color: @darkBlue;
  729. }
  730. .num {
  731. color: @darkBlue;
  732. }
  733. }
  734. .card-right {
  735. .num {
  736. color: @darkBlue;
  737. border-color: @darkBlue;
  738. }
  739. }
  740. }
  741. .card-percent {
  742. border-color: @darkBlue;
  743. }
  744. }
  745. &.pink {
  746. border-color: @pink;
  747. background-color: fade(@pink, 30%);
  748. .center-icon {
  749. color: @write;
  750. }
  751. .card-panel {
  752. .card-left {
  753. border-color: @pink;
  754. .tag {
  755. border-color: @pink;
  756. }
  757. .num {
  758. color: @pink;
  759. }
  760. }
  761. .card-right {
  762. .num {
  763. color: @pink;
  764. border-color: @pink;
  765. }
  766. }
  767. }
  768. .card-percent {
  769. border-color: @pink;
  770. }
  771. }
  772. &.orange {
  773. border-color: @orange;
  774. background-color: fade(@orange, 30%);
  775. .center-icon {
  776. color: @write;
  777. }
  778. .card-panel {
  779. .card-left {
  780. border-color: @orange;
  781. .tag {
  782. border-color: @orange;
  783. }
  784. .num {
  785. color: @orange;
  786. }
  787. }
  788. .card-right {
  789. .num {
  790. color: @orange;
  791. border-color: @orange;
  792. }
  793. }
  794. }
  795. .card-percent {
  796. border-color: @orange;
  797. }
  798. }
  799. &.green {
  800. border-color: @green;
  801. background-color: fade(@green, 30%);
  802. .center-icon {
  803. color: @write;
  804. }
  805. .card-panel {
  806. .card-left {
  807. border-color: @green;
  808. .tag {
  809. border-color: @green;
  810. }
  811. .num {
  812. color: @green;
  813. }
  814. }
  815. .card-right {
  816. .num {
  817. color: @green;
  818. border-color: @green;
  819. }
  820. }
  821. }
  822. .card-percent {
  823. border-color: @green;
  824. }
  825. }
  826. &.gray {
  827. border-color: @darkgray;
  828. background-color: fade(@darkgray, 30%);
  829. .center-icon {
  830. color: @write;
  831. }
  832. .card-panel {
  833. .card-left {
  834. border-color: @darkgray;
  835. .tag {
  836. border-color: @darkgray;
  837. }
  838. .num {
  839. color: @gray;
  840. }
  841. }
  842. .card-right {
  843. .num {
  844. color: @gray;
  845. border-color: @darkgray;
  846. }
  847. }
  848. }
  849. .card-percent {
  850. border-color: @darkgray;
  851. }
  852. }
  853. &.red {
  854. border-color: @red;
  855. .center-icon {
  856. color: @write;
  857. }
  858. .card-panel {
  859. background-color: @red;
  860. .card-left {
  861. border-color: @darkRed;
  862. .tag {
  863. border-color: @darkRed;
  864. }
  865. .num {
  866. color: @write;
  867. }
  868. }
  869. .card-right {
  870. .num {
  871. color: @write;
  872. border-color: @darkRed;
  873. }
  874. }
  875. }
  876. .card-percent {
  877. border-color: @red;
  878. }
  879. }
  880. &.black {
  881. border-color: @write;
  882. .center-icon {
  883. color: @black;
  884. }
  885. .card-panel {
  886. background-color: @write;
  887. .card-left {
  888. border-color: @black;
  889. .tag {
  890. color: @black;
  891. border-color: @black;
  892. }
  893. .num {
  894. color: @black;
  895. }
  896. }
  897. .card-right {
  898. .num {
  899. color: @black;
  900. border-color: @black;
  901. }
  902. }
  903. }
  904. }
  905. }
  906. }
  907. }
  908. }
  909. </style>