tab2.vue 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. <template>
  2. <div class="draught-fan-list">
  3. <div class="query mg-b-8">
  4. <div class="query-items">
  5. <div class="query-item">
  6. <div class="lable">场站:</div>
  7. <div class="search-input">
  8. <el-select v-model="wpId" clearable placeholder="请选择" popper-class="select" @change="(wpId) => { getProject(); }">
  9. <el-option v-for="item in wpArray" :key="item.id" :value="item.id" :label="item.name" />
  10. </el-select>
  11. </div>
  12. </div>
  13. <div class="query-item">
  14. <div class="lable">项目:</div>
  15. <div class="search-input">
  16. <el-select v-model="projectId" clearable placeholder="请选择" popper-class="select">
  17. <el-option v-for="item in projectArray" :key="item.id" :value="item.id" :label="item.name" />
  18. </el-select>
  19. </div>
  20. </div>
  21. <div class="query-item">
  22. <div class="lable">日期:</div>
  23. <div class="search-input">
  24. <el-date-picker v-model="recorddate" type="date"
  25. value-format="YYYY-MM-DD" placeholder="选择日期" popper-class="date-select">
  26. </el-date-picker>
  27. </div>
  28. </div>
  29. </div>
  30. <div class="query-actions">
  31. <button class="btn green" @click="search">搜索</button>
  32. </div>
  33. </div>
  34. <Mlc height="650px" :list="chartData" :units="chartUnit" :showLegend="true" />
  35. </div>
  36. </template>
  37. <script>
  38. import Mlc from "@com/chart/line/multiple-line-chart.vue";
  39. export default {
  40. // 名称
  41. name: "cutAnalyse",
  42. // 使用组件
  43. components: {
  44. Mlc
  45. },
  46. // 数据
  47. data () {
  48. return {
  49. isAsc: "asc",
  50. wpArray: [],
  51. projectArray: [],
  52. wpId: "",
  53. projectId:"",
  54. wtId: "MG01_01",
  55. recorddate:new Date((new Date().getTime() - 3600 * 1000 * 24)).formatDate("yyyy-MM-dd"),
  56. chartData: [{
  57. title: "",
  58. yAxisIndex: 0,
  59. value: []
  60. }],
  61. chartUnit: ["功率(万kw)"]
  62. };
  63. },
  64. // 函数
  65. methods: {
  66. // 获取风场
  67. getWp (reGetWp) {
  68. let that = this;
  69. that.API.requestData({
  70. method: "GET",
  71. subUrl: "powercompare/windfarmAjax",
  72. success (res) {
  73. that.wpArray = res.data;
  74. that.wpId = res.data[0].id;
  75. that.getProject();
  76. }
  77. });
  78. },
  79. // 获取期数
  80. getProject(){
  81. let that = this;
  82. that.API.requestData({
  83. method: "GET",
  84. subUrl: "powercompare/projectAjax",
  85. data:{
  86. wpIds: that.wpId
  87. },
  88. success (res) {
  89. that.projectArray = res.data;
  90. that.projectId = res.data[0].id;
  91. that.getChartData();
  92. }
  93. });
  94. },
  95. // 获取图表数据
  96. getChartData () {
  97. let that = this;
  98. that.API.requestData({
  99. method: "POST",
  100. subUrl: "powersaturation/powersaturationamonutchart",
  101. data: {
  102. wtId: that.wtId
  103. },
  104. success (res) {
  105. const keyArray = [{
  106. key: "value1",
  107. title: "功率"
  108. }];
  109. let chartData = [{
  110. title: "功率",
  111. yAxisIndex: 0,
  112. value: []
  113. }];
  114. keyArray.forEach((keyEle, keyIndex) => {
  115. res.data.forEach(ele => {
  116. chartData[keyIndex].value.push({
  117. text: "",
  118. value: ele[keyEle.key]
  119. });
  120. });
  121. });
  122. that.chartData = chartData;
  123. }
  124. });
  125. },
  126. search () {
  127. if (!this.wpId || !this.projectId) {
  128. this.BASE.showMsg({
  129. msg: '场站与项目为必选项'
  130. });
  131. } else {
  132. this.getChartData();
  133. }
  134. }
  135. },
  136. created () {
  137. this.getWp();
  138. },
  139. mounted () { },
  140. unmounted () { },
  141. };
  142. </script>
  143. <style lang="less" scoped>
  144. .draught-fan-list {
  145. width: 100%;
  146. height: 100%;
  147. display: flex;
  148. flex-direction: column;
  149. .btn-group-tabs {
  150. display: flex;
  151. flex-direction: row;
  152. .photovoltaic {
  153. margin-left: 1.481vh;
  154. }
  155. }
  156. .df-table {
  157. border: 0.093vh solid fade(@darkgray, 50%);
  158. position: relative;
  159. overflow: auto;
  160. flex-grow: 1;
  161. margin-top: 1.481vh;
  162. height: 30vh;
  163. &:before {
  164. content: '';
  165. width: 0.37vh;
  166. height: 0.37vh;
  167. background: @write;
  168. position: absolute;
  169. left: 0.278vh;
  170. top: 0.278vh;
  171. }
  172. tbody {
  173. height: calc(100vh - 166px);
  174. }
  175. }
  176. }
  177. </style>