agc-panel.vue 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364
  1. <template>
  2. <ComPanel
  3. v-if="data && data.jcxx"
  4. :title="data.jcxx.name || '---'"
  5. :icon="data.jcxx.icon"
  6. :subTitle="data.jcxx.ddmc || '---'"
  7. :color="data.jcxx.color"
  8. >
  9. <table class="panel-table">
  10. <tbody>
  11. <tr>
  12. <td colspan="2">
  13. <div class="data-item">
  14. <span class="data-item-name">限电指令:</span>
  15. <span class="data-item-count">{{ data.jcxx.AGC002 }}</span>
  16. <span class="data-item-unit">MW</span>
  17. </div>
  18. </td>
  19. <td colspan="2">
  20. <div class="data-item">
  21. <span class="data-item-name">实际功率:</span>
  22. <span class="data-item-count">{{ data.jcxx.AGC001 }}</span>
  23. <span class="data-item-unit">MW</span>
  24. </div>
  25. </td>
  26. </tr>
  27. <tr>
  28. <td colspan="2">
  29. <div class="data-item">
  30. <span class="data-item-name">AGC可调上限:</span>
  31. <span class="data-item-count">{{ data.jcxx.AGC003 }}</span>
  32. <span class="data-item-unit">MW</span>
  33. </div>
  34. </td>
  35. <td colspan="2">
  36. <div class="data-item">
  37. <span class="data-item-name">理论功率:</span>
  38. <span class="data-item-count">{{ (data.jcxx.ZZSGL/1000).toFixed(2) }}</span>
  39. <span class="data-item-unit">MW</span>
  40. </div>
  41. </td>
  42. </tr>
  43. <tr>
  44. <td colspan="2">
  45. <div class="data-item">
  46. <span class="data-item-name">AGC可调下限:</span>
  47. <span class="data-item-count">{{ data.jcxx.AGC004 }}</span>
  48. <span class="data-item-unit">MW</span>
  49. </div>
  50. </td>
  51. <td colspan="2">
  52. <div class="data-item">
  53. <span class="data-item-name">预测功率:</span>
  54. <span class="data-item-count">{{ data.jcxx.ycgl || 0 }}</span>
  55. <span class="data-item-unit">MW</span>
  56. </div>
  57. </td>
  58. </tr>
  59. <tr>
  60. <td>
  61. <div class="data-item">
  62. <span class="data-item-name">AGC投入</span>
  63. <i
  64. :class="
  65. 'data-item-icon fa fa-chrome ' +
  66. (data.jcxx.AGC006 === 1 ? 'red' : 'green')
  67. "
  68. ></i>
  69. </div>
  70. </td>
  71. <td>
  72. <div class="data-item">
  73. <span class="data-item-name">AGC远方</span>
  74. <i
  75. :class="
  76. 'data-item-icon fa fa-chrome ' +
  77. (data.jcxx.AGC005 === 1 ? 'red' : 'green')
  78. "
  79. ></i>
  80. </div>
  81. </td>
  82. <td>
  83. <div class="data-item">
  84. <span class="data-item-name">有功增闭锁</span>
  85. <i
  86. :class="
  87. 'data-item-icon fa fa-chrome ' +
  88. (data.jcxx.AGC008 === 1 ? 'red' : 'green')
  89. "
  90. ></i>
  91. </div>
  92. </td>
  93. <td>
  94. <div class="data-item">
  95. <span class="data-item-name">有功减闭锁</span>
  96. <i
  97. :class="
  98. 'data-item-icon fa fa-chrome ' +
  99. (data.jcxx.AGC007 === 1 ? 'red' : 'green')
  100. "
  101. ></i>
  102. </div>
  103. </td>
  104. </tr>
  105. </tbody>
  106. </table>
  107. <!-- 查看默认实例去除末尾参数 :list 即可 -->
  108. <DoubleLineChart
  109. v-if="chartType === 'double'"
  110. height="20vh"
  111. :list="data.tb || chartData"
  112. @chartClick="chartClick($event)"
  113. :isChartClick="true"
  114. ></DoubleLineChart>
  115. <!-- <MultipleLineChart v-if="chartType === 'multiple'" height="13.889vh" :list="data.tb || chartData" :hoverType="'axis'"></MultipleLineChart> -->
  116. <el-dialog
  117. v-model="dialogVisible"
  118. width="70%"
  119. top="10vh"
  120. custom-class="modal"
  121. :close-on-click-modal="true"
  122. >
  123. <DoubleLineChart
  124. height="70vh"
  125. :list="data.tb || chartData"
  126. myUnit="MW"
  127. ></DoubleLineChart>
  128. </el-dialog>
  129. </ComPanel>
  130. </template>
  131. <script>
  132. import ComPanel from "@com/coms/panel/panel2.vue";
  133. import DoubleLineChart from "@com/chart/line/marker-line-chart.vue";
  134. import MultipleLineChart from "@com/chart/line/multiple-line-chart.vue";
  135. export default {
  136. // 名称
  137. name: "AgcPanel",
  138. // 使用组件
  139. components: {
  140. ComPanel,
  141. DoubleLineChart,
  142. MultipleLineChart,
  143. },
  144. // 传入参数
  145. props: {
  146. data: Object,
  147. chartType: {
  148. type: String,
  149. default: "double",
  150. },
  151. chartData: {
  152. type: Array,
  153. default: [
  154. {
  155. title: "",
  156. smooth: true,
  157. value: [],
  158. },
  159. ],
  160. },
  161. },
  162. // 自定义事件
  163. emits: {},
  164. // 数据
  165. data() {
  166. return {
  167. dialogVisible: false,
  168. list: [
  169. {
  170. title: "平均风速",
  171. yAxisIndex: 1, // 使用单位
  172. value: [
  173. {
  174. text: "1日",
  175. value: 0,
  176. },
  177. {
  178. text: "2日",
  179. value: 1,
  180. },
  181. {
  182. text: "3日",
  183. value: 0,
  184. },
  185. {
  186. text: "4日",
  187. value: 1,
  188. },
  189. {
  190. text: "5日",
  191. value: 0,
  192. },
  193. {
  194. text: "6日",
  195. value: 1,
  196. },
  197. {
  198. text: "7日",
  199. value: 0,
  200. },
  201. ],
  202. },
  203. {
  204. title: "应发功率",
  205. yAxisIndex: 0,
  206. value: [
  207. {
  208. text: "1日",
  209. value: 4,
  210. },
  211. {
  212. text: "2日",
  213. value: 2,
  214. },
  215. {
  216. text: "3日",
  217. value: 4,
  218. },
  219. {
  220. text: "4日",
  221. value: 2,
  222. },
  223. {
  224. text: "5日",
  225. value: 4,
  226. },
  227. {
  228. text: "6日",
  229. value: 2,
  230. },
  231. {
  232. text: "7日",
  233. value: 4,
  234. },
  235. ],
  236. },
  237. {
  238. title: "实际功率",
  239. yAxisIndex: 0,
  240. value: [
  241. {
  242. text: "1日",
  243. value: 1,
  244. },
  245. {
  246. text: "2日",
  247. value: 3,
  248. },
  249. {
  250. text: "3日",
  251. value: 1,
  252. },
  253. {
  254. text: "4日",
  255. value: 3,
  256. },
  257. {
  258. text: "5日",
  259. value: 1,
  260. },
  261. {
  262. text: "6日",
  263. value: 3,
  264. },
  265. {
  266. text: "7日",
  267. value: 1,
  268. },
  269. ],
  270. },
  271. ],
  272. };
  273. },
  274. // 函数
  275. methods: {
  276. chartClick() {
  277. this.dialogVisible = true;
  278. },
  279. },
  280. // 生命周期钩子
  281. beforeCreate() {
  282. // 创建前
  283. },
  284. created() {
  285. // 创建后
  286. },
  287. beforeMount() {
  288. // 渲染前
  289. },
  290. mounted() {
  291. // 渲染后
  292. this.list = this.data || [
  293. {
  294. title: "",
  295. yAxisIndex: 1, // 使用单位
  296. value: [],
  297. },
  298. ];
  299. },
  300. beforeUpdate() {
  301. // 数据更新前
  302. },
  303. updated() {
  304. // 数据更新后
  305. },
  306. watch: {
  307. daya(res) {
  308. this.list = res;
  309. },
  310. },
  311. };
  312. </script>
  313. <style lang="less">
  314. .panel-table {
  315. width: 100%;
  316. .data-item {
  317. background-color: fade(@gray, 20);
  318. padding: 0.278vh;
  319. padding-left: 0.7407vh;
  320. font-size: 1.504vh;
  321. display: flex;
  322. flex-direction: row;
  323. height: 30px;
  324. padding-left: 45px;
  325. padding-right: 80px;
  326. align-items: center;
  327. .data-item-name {
  328. color: @gray;
  329. }
  330. .data-item-count {
  331. color: @green;
  332. margin-left: auto;
  333. margin-right:2.7vh;
  334. }
  335. .data-item-unit {
  336. color: @gray;
  337. }
  338. .data-item-icon {
  339. margin: auto;
  340. margin-right: 0;
  341. font-size: @fontsize-s;
  342. }
  343. }
  344. }
  345. .green {
  346. color: @green;
  347. }
  348. .red {
  349. color: @red;
  350. }
  351. </style>