tab2.vue 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  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. <NormalScatterChart height="650px" :data="chartData" xTitle="风速" yTitle="功率" :showLegend="true" />
  35. </div>
  36. </template>
  37. <script>
  38. import NormalScatterChart from "@com/chart/scatter/normal-scatter-chart.vue";
  39. export default {
  40. // 名称
  41. name: "cutAnalyse",
  42. // 使用组件
  43. components: {
  44. NormalScatterChart
  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. value: []
  59. }]
  60. };
  61. },
  62. // 函数
  63. methods: {
  64. // 获取风场
  65. getWp (reGetWp) {
  66. let that = this;
  67. that.API.requestData({
  68. method: "GET",
  69. subUrl: "powercompare/windfarmAjax",
  70. success (res) {
  71. that.wpArray = res.data;
  72. that.wpId = res.data[0].id;
  73. that.getProject();
  74. }
  75. });
  76. },
  77. // 获取期数
  78. getProject(){
  79. let that = this;
  80. that.API.requestData({
  81. method: "GET",
  82. subUrl: "powercompare/projectAjax",
  83. data:{
  84. wpIds: that.wpId
  85. },
  86. success (res) {
  87. that.projectArray = res.data;
  88. that.projectId = res.data[0].id;
  89. that.getChartData();
  90. }
  91. });
  92. },
  93. // 获取图表数据
  94. getChartData () {
  95. let that = this;
  96. that.API.requestData({
  97. method: "POST",
  98. subUrl: "scatter/scatterAjax",
  99. data: {
  100. wpId: that.wpId,
  101. pjId: that.projectId,
  102. lnId: "",
  103. year: (that.recorddate ? new Date(that.recorddate).getFullYear() : ""),
  104. month: (that.recorddate ? (new Date(that.recorddate).getMonth() + 1) : ""),
  105. },
  106. success (res) {
  107. let chartData = [{
  108. title: "风资源分析",
  109. value: (res.data || [])
  110. }];
  111. that.$nextTick(()=>{
  112. that.chartData = chartData;
  113. });
  114. }
  115. });
  116. },
  117. search () {
  118. if (!this.wpId || !this.projectId) {
  119. this.BASE.showMsg({
  120. msg: '场站与项目为必选项'
  121. });
  122. } else {
  123. this.getChartData();
  124. }
  125. }
  126. },
  127. created () {
  128. this.getWp();
  129. },
  130. mounted () { },
  131. unmounted () { },
  132. };
  133. </script>
  134. <style lang="less" scoped>
  135. .draught-fan-list {
  136. width: 100%;
  137. height: 100%;
  138. display: flex;
  139. flex-direction: column;
  140. .btn-group-tabs {
  141. display: flex;
  142. flex-direction: row;
  143. .photovoltaic {
  144. margin-left: 1.481vh;
  145. }
  146. }
  147. .df-table {
  148. border: 0.093vh solid fade(@darkgray, 50%);
  149. position: relative;
  150. overflow: auto;
  151. flex-grow: 1;
  152. margin-top: 1.481vh;
  153. height: 30vh;
  154. &:before {
  155. content: '';
  156. width: 0.37vh;
  157. height: 0.37vh;
  158. background: @write;
  159. position: absolute;
  160. left: 0.278vh;
  161. top: 0.278vh;
  162. }
  163. tbody {
  164. height: calc(100vh - 166px);
  165. }
  166. }
  167. }
  168. </style>