power-review-home.vue 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. <template>
  2. <div class="power-review">
  3. <Row type="flex" justify="space-between" :align="'middle'">
  4. <!-- 功率复核 PowerLoad -->
  5. <Col v-for="item in PowerLoad" :key="item" :span="6">
  6. <dash-pie-chart
  7. :title="item.title"
  8. :unit="item.unit"
  9. :value="item.value"
  10. :max="item.max"
  11. height="10vh"
  12. @click="openDialog(item.dialogTitle)"
  13. />
  14. </Col>
  15. </Row>
  16. </div>
  17. </template>
  18. <script>
  19. import Col from "@/components/coms/grid/col.vue";
  20. import Row from "../../../components/coms/grid/row.vue";
  21. import DashPieChart from "@/components/chart/pie/dash-pie-chart.vue";
  22. import { FindGroupRealtime } from "@/api/home/home.js";
  23. import dayjs from "dayjs";
  24. export default {
  25. components: {
  26. Row,
  27. Col,
  28. DashPieChart,
  29. },
  30. data() {
  31. return {
  32. // 功率复核数据
  33. PowerLoad: [],
  34. valuelist: [
  35. {
  36. value: "SSZGL",
  37. name: "清洁能源",
  38. code: "value1",
  39. sign: 1,
  40. },
  41. {
  42. value: "SSZGL",
  43. name: "风电功率详情",
  44. code: "value2",
  45. sign: 1,
  46. },
  47. {
  48. value: "SSZGL",
  49. name: "光伏功率详情",
  50. code: "value3",
  51. sign: 1,
  52. },
  53. {
  54. value: "SSPJFS",
  55. name: "实时风速",
  56. code: "value4",
  57. },
  58. {
  59. value: "RPJGZD",
  60. name: "光照强度",
  61. code: "value6",
  62. },
  63. {
  64. value: "SSZGL",
  65. name: "实际功率",
  66. code: "value1",
  67. },
  68. {
  69. value: "FNLYL",
  70. name: "风能利用率",
  71. code: "value7",
  72. },
  73. {
  74. value: "FNLYL",
  75. name: "光能利用率",
  76. code: "value7",
  77. },
  78. ],
  79. wpId: "",
  80. };
  81. },
  82. props: {
  83. data: {
  84. type: Array,
  85. default: () => [],
  86. },
  87. id: {
  88. type: String,
  89. defaylt: "",
  90. },
  91. },
  92. mounted() {
  93. this.PowerLoad = this.data;
  94. this.wpId = this.id;
  95. },
  96. methods: {
  97. openDialog(dialogTitle) {
  98. let obj = this.valuelist.find((item) => item.name == dialogTitle);
  99. let params = {
  100. wpId: this.wpId,
  101. uniformCode: obj.value,
  102. };
  103. FindGroupRealtime(params).then(({ data }) => {
  104. this.$emit("chartClick", {
  105. dialogTitle,
  106. // dialogType,
  107. data: data.map((item) => {
  108. return {
  109. dateTime: dayjs()
  110. .startOf("date")
  111. .add(item.hours, "hour")
  112. .format("MM-DD HH:mm"),
  113. value: item[obj.code],
  114. };
  115. }),
  116. chartName: obj.sign ? "实际功率" : obj.dialogTitle,
  117. });
  118. });
  119. },
  120. },
  121. watch: {
  122. data(res) {
  123. this.PowerLoad = res;
  124. },
  125. id(res) {
  126. this.wpId = res;
  127. },
  128. },
  129. };
  130. </script>
  131. <style lang="less" scoped>
  132. .power-review {
  133. padding: 15px 10px 10px 10px;
  134. }
  135. .col + .col {
  136. margin-left: 0px;
  137. }
  138. </style>