dj1.vue 47 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709
  1. <template>
  2. <div class="dj-1">
  3. <div class="action-bar">
  4. <div class="selections mg-b-16">
  5. <div
  6. class="item"
  7. @click="tabSelect(0)"
  8. :class="{ active: tabIndex == 0 }"
  9. >
  10. 风机运行情况信息
  11. </div>
  12. <div
  13. class="item"
  14. @click="tabSelect(1)"
  15. :class="{ active: tabIndex == 1 }"
  16. >
  17. 风机日详细信息
  18. </div>
  19. <div
  20. class="item"
  21. @click="tabSelect(2)"
  22. :class="{ active: tabIndex == 2 }"
  23. >
  24. 风场玫瑰图
  25. </div>
  26. <div
  27. class="item"
  28. @click="tabSelect(3)"
  29. :class="{ active: tabIndex == 3 }"
  30. >
  31. 风机玫瑰图
  32. </div>
  33. <div
  34. class="item"
  35. @click="tabSelect(4)"
  36. :class="{ active: tabIndex == 4 }"
  37. >
  38. 风机切入切出分析
  39. </div>
  40. </div>
  41. <div class="query mg-b-16">
  42. <div class="query-items">
  43. <div class="query-item">
  44. <div class="lable">风场:</div>
  45. <div class="search-input">
  46. <el-select
  47. v-model="wpId"
  48. clearable
  49. placeholder="请选择"
  50. popper-class="select"
  51. @change="getWtArray"
  52. >
  53. <el-option
  54. v-for="item in wpArray"
  55. :key="item.id"
  56. :value="item.id"
  57. :label="item.name"
  58. />
  59. </el-select>
  60. </div>
  61. </div>
  62. <div class="query-item">
  63. <div class="lable">风机:</div>
  64. <div class="search-input">
  65. <el-select
  66. v-model="wtId"
  67. clearable
  68. placeholder="请选择"
  69. popper-class="select"
  70. >
  71. <el-option
  72. v-for="item in wtArray"
  73. :key="item.id"
  74. :value="item.id"
  75. :label="item.name"
  76. />
  77. </el-select>
  78. </div>
  79. </div>
  80. <div class="query-item">
  81. <div class="lable">日期:</div>
  82. <div class="search-input">
  83. <el-date-picker
  84. v-model="recorddate"
  85. type="date"
  86. value-format="YYYY-MM-DD"
  87. placeholder="选择日期"
  88. popper-class="date-select"
  89. >
  90. </el-date-picker>
  91. </div>
  92. </div>
  93. </div>
  94. <div class="query-actions">
  95. <button class="btn green" @click="search">搜索</button>
  96. </div>
  97. </div>
  98. </div>
  99. <!-- tab1 -->
  100. <div v-if="tabIndex == 0" class="tab-1">
  101. <panel :title="'损失电量分析'" class="mg-b-16">
  102. <area-line-chart
  103. :height="'23.1481vh'"
  104. :lineData="lostChartData"
  105. :units="lostChartUnit"
  106. :areaData="LostChartBgColorData"
  107. @areaClick="areaBarChartClick"
  108. :showLegend="true"
  109. />
  110. <!-- <multiple-bar-line-chart1
  111. :height="'16.6667vh'"
  112. :barData="powerChartData"
  113. :lineData="powerChartLineData"
  114. :units="['(kWh)']"
  115. :showLegend="true"
  116. /> -->
  117. </panel>
  118. <panel :title="'电量'" class="mg-b-16">
  119. <multiple-bar-line-chart
  120. :height="'16.6667vh'"
  121. :barData="powerChartData"
  122. :lineData="powerChartLineData"
  123. :units="['(kWh)']"
  124. :showLegend="true"
  125. />
  126. </panel>
  127. <div class="table-info">
  128. <panel class="table-panel" :title="'当日报警记录'" :showLine="false">
  129. <Table :data="warnTableData" :canScroll="true" :height="'32.5vh'" />
  130. </panel>
  131. <panel class="table-panel" :title="'当日故障记录'" :showLine="false">
  132. <Table :data="stopTableData" :canScroll="true" :height="'32.5vh'" />
  133. </panel>
  134. <panel class="table-panel" :title="'当日限电记录'" :showLine="false">
  135. <Table :data="xdTableData" :canScroll="true" :height="'32.5vh'" />
  136. </panel>
  137. </div>
  138. </div>
  139. <!-- tab2 -->
  140. <div v-if="tabIndex == 1" class="tab-2">
  141. <el-row>
  142. <el-col :span="15">
  143. <panel :title="'功率曲线'" class="mg-b-16">
  144. <marker-line-chart
  145. :height="'28vh'"
  146. :list="powerLineChartData"
  147. :units="['(MW)', '(功率)']"
  148. :showLegend="true"
  149. :hoverType="'axis'"
  150. />
  151. </panel>
  152. <panel
  153. :title="'日发电量信息'"
  154. class="mg-b-16 outline"
  155. :showLine="false"
  156. >
  157. <div class="power-info">
  158. <div class="info-item">
  159. <div class="text">发电量:</div>
  160. <div class="value green">{{ dayPowerInfo.c1 }}</div>
  161. </div>
  162. <div class="info-item">
  163. <div class="text">理论发电量:</div>
  164. <div class="value green">{{ dayPowerInfo.c4 }}</div>
  165. </div>
  166. <div class="info-item">
  167. <div class="text">平均功率:</div>
  168. <div class="value green">{{ dayPowerInfo.c7 }}</div>
  169. </div>
  170. <div class="info-item">
  171. <div class="text">平均风速:</div>
  172. <div class="value green">{{ dayPowerInfo.c10 }}</div>
  173. </div>
  174. <div class="info-item">
  175. <div class="text">拟合优度:</div>
  176. <div class="value green">{{ dayPowerInfo.c55 }}</div>
  177. </div>
  178. <div class="info-item">
  179. <div class="text">运行小时:</div>
  180. <div class="value green">{{ dayPowerInfo.c13 }}</div>
  181. </div>
  182. <div class="info-item">
  183. <div class="text">停机小时:</div>
  184. <div class="value green">{{ dayPowerInfo.c16 }}</div>
  185. </div>
  186. <div class="info-item">
  187. <div class="text">故障小时:</div>
  188. <div class="value green">{{ dayPowerInfo.c19 }}</div>
  189. </div>
  190. <div class="info-item">
  191. <div class="text">维护小时:</div>
  192. <div class="value green">{{ dayPowerInfo.c22 }}</div>
  193. </div>
  194. <div class="info-item">
  195. <div class="text">中断小时:</div>
  196. <div class="value green">{{ dayPowerInfo.c25 }}</div>
  197. </div>
  198. <div class="info-item">
  199. <div class="text">有效风时数:</div>
  200. <div class="value green">{{ dayPowerInfo.c28 }}</div>
  201. </div>
  202. <div class="info-item">
  203. <div class="text">损失电量:</div>
  204. <div class="value green">{{ dayPowerInfo.c31 }}</div>
  205. </div>
  206. <div class="info-item">
  207. <div class="text">报警次数:</div>
  208. <div class="value green">{{ dayPowerInfo.c34 }}</div>
  209. </div>
  210. <div class="info-item">
  211. <div class="text">停机次数:</div>
  212. <div class="value green">{{ dayPowerInfo.c37 }}</div>
  213. </div>
  214. <div class="info-item">
  215. <div class="text">不饱和次数:</div>
  216. <div class="value green">{{ dayPowerInfo.c40 }}</div>
  217. </div>
  218. <div class="info-item">
  219. <div class="text">设备可利用率:</div>
  220. <div class="value green">{{ dayPowerInfo.c43 }}</div>
  221. </div>
  222. <div class="info-item">
  223. <div class="text">实际/保证偏差率:</div>
  224. <div class="value green">{{ dayPowerInfo.c58 }}</div>
  225. </div>
  226. <div class="info-item">
  227. <div class="text">平均温度:</div>
  228. <div class="value green">{{ dayPowerInfo.c46 }}</div>
  229. </div>
  230. <div class="info-item">
  231. <div class="text">平均湿度:</div>
  232. <div class="value green">{{ dayPowerInfo.c49 }}</div>
  233. </div>
  234. <div class="info-item">
  235. <div class="text">平均压强:</div>
  236. <div class="value green">{{ dayPowerInfo.c52 }}</div>
  237. </div>
  238. </div>
  239. </panel>
  240. <div class="month-info">
  241. <div class="month-info-left">
  242. <panel
  243. :title="'月发电量信息'"
  244. class="mg-b-16 outline"
  245. :showLine="false"
  246. >
  247. <div class="power-info month-3">
  248. <div class="info-item">
  249. <div class="text">月发电量:</div>
  250. <div class="value green">{{ dayPowerInfo.c2 }}</div>
  251. </div>
  252. <div class="info-item">
  253. <div class="text">月理论发电量:</div>
  254. <div class="value green">{{ dayPowerInfo.c5 }}</div>
  255. </div>
  256. <div class="info-item">
  257. <div class="text">月平均功率:</div>
  258. <div class="value green">{{ dayPowerInfo.c8 }}</div>
  259. </div>
  260. <div class="info-item">
  261. <div class="text">月平均风速:</div>
  262. <div class="value green">{{ dayPowerInfo.c11 }}</div>
  263. </div>
  264. <div class="info-item">
  265. <div class="text">月拟合优度:</div>
  266. <div class="value green">{{ dayPowerInfo.c56 }}</div>
  267. </div>
  268. <div class="info-item">
  269. <div class="text">月运行小时:</div>
  270. <div class="value green">{{ dayPowerInfo.c14 }}</div>
  271. </div>
  272. <div class="info-item">
  273. <div class="text">月停机小时:</div>
  274. <div class="value green">{{ dayPowerInfo.c17 }}</div>
  275. </div>
  276. <div class="info-item">
  277. <div class="text">月故障小时:</div>
  278. <div class="value green">{{ dayPowerInfo.c20 }}</div>
  279. </div>
  280. <div class="info-item">
  281. <div class="text">月维护小时:</div>
  282. <div class="value green">{{ dayPowerInfo.c23 }}</div>
  283. </div>
  284. <div class="info-item">
  285. <div class="text">月中断小时:</div>
  286. <div class="value green">{{ dayPowerInfo.c26 }}</div>
  287. </div>
  288. <div class="info-item">
  289. <div class="text">月有效风时数:</div>
  290. <div class="value green">{{ dayPowerInfo.c29 }}</div>
  291. </div>
  292. <div class="info-item">
  293. <div class="text">月报警次数:</div>
  294. <div class="value green">{{ dayPowerInfo.c35 }}</div>
  295. </div>
  296. <div class="info-item">
  297. <div class="text">月停机次数:</div>
  298. <div class="value green">{{ dayPowerInfo.c38 }}</div>
  299. </div>
  300. <div class="info-item">
  301. <div class="text">月实际/保证:</div>
  302. <div class="value green">{{ dayPowerInfo.c59 }}</div>
  303. </div>
  304. <div class="info-item">
  305. <div class="text">设备可利用率:</div>
  306. <div class="value green">{{ dayPowerInfo.c44 }}</div>
  307. </div>
  308. </div>
  309. </panel>
  310. </div>
  311. <div class="month-info-right">
  312. <panel
  313. :title="'年发电量信息'"
  314. class="mg-b-16 outline"
  315. :showLine="false"
  316. >
  317. <div class="power-info month-2">
  318. <div class="info-item">
  319. <div class="text">年发电量:</div>
  320. <div class="value green">{{ dayPowerInfo.c3 }}</div>
  321. </div>
  322. <div class="info-item">
  323. <div class="text">年拟合优度:</div>
  324. <div class="value green">{{ dayPowerInfo.c57 }}</div>
  325. </div>
  326. </div>
  327. </panel>
  328. <panel
  329. :title="'风资源'"
  330. class="radar-panel"
  331. :icon="'svg-wind-site'"
  332. >
  333. <div class="wind-info">
  334. <div class="legend mg-r-16">
  335. <span class="dot"></span>
  336. <span>{{ jfplStr }}</span>
  337. </div>
  338. <direction-radar-chart
  339. :width="'80%'"
  340. :height="'180px'"
  341. :value="windResourcesData"
  342. :showLegend="true"
  343. />
  344. </div>
  345. </panel>
  346. </div>
  347. </div>
  348. </el-col>
  349. <el-col :span="9">
  350. <panel
  351. class="table-panel outline mg-b-16"
  352. :title="'当日报警记录'"
  353. :showLine="false"
  354. >
  355. <Table :data="warnTableData" :canScroll="true" :height="'23vh'" />
  356. </panel>
  357. <panel
  358. class="table-panel outline mg-b-16"
  359. :title="'当日故障记录'"
  360. :showLine="false"
  361. >
  362. <Table :data="stopTableData" :canScroll="true" :height="'23vh'" />
  363. </panel>
  364. <panel
  365. class="table-panel outline"
  366. :title="'当月报警排行'"
  367. :showLine="false"
  368. >
  369. <Table
  370. :data="monthWarnRecordData"
  371. :canScroll="true"
  372. :height="'23vh'"
  373. />
  374. </panel>
  375. </el-col>
  376. </el-row>
  377. </div>
  378. <!-- tab3 -->
  379. <div v-if="tabIndex == 2" class="tab-3">
  380. <el-row>
  381. <el-col :span="8">
  382. <panel
  383. :title="'日最大风速'"
  384. class="radar-panel"
  385. :icon="'svg-wind-site'"
  386. >
  387. <div class="wind-info">
  388. <div class="legend mg-r-16">
  389. <span class="dot"></span>
  390. <span>{{ rzdfsStr }}</span>
  391. </div>
  392. <radar-chart
  393. :width="'100%'"
  394. :height="'350px'"
  395. :value="rzdfsData"
  396. />
  397. </div>
  398. </panel>
  399. </el-col>
  400. <el-col :span="8">
  401. <panel
  402. :title="'月最大风速'"
  403. class="radar-panel"
  404. :icon="'svg-wind-site'"
  405. >
  406. <div class="wind-info">
  407. <div class="legend mg-r-16">
  408. <span class="dot"></span>
  409. <span>{{ yzdfsStr }}</span>
  410. </div>
  411. <radar-chart
  412. :width="'100%'"
  413. :height="'350px'"
  414. :value="yzdfsData"
  415. />
  416. </div>
  417. </panel>
  418. </el-col>
  419. <el-col :span="8">
  420. <panel
  421. :title="'年最大风速'"
  422. class="radar-panel"
  423. :icon="'svg-wind-site'"
  424. >
  425. <div class="wind-info">
  426. <div class="legend mg-r-16">
  427. <span class="dot"></span>
  428. <span>{{ nzdfsStr }}</span>
  429. </div>
  430. <radar-chart
  431. :width="'100%'"
  432. :height="'350px'"
  433. :value="nzdfsData"
  434. />
  435. </div>
  436. </panel>
  437. </el-col>
  438. </el-row>
  439. <el-row>
  440. <el-col :span="8">
  441. <panel
  442. :title="'日风向频率'"
  443. class="radar-panel"
  444. :icon="'svg-wind-site'"
  445. >
  446. <div class="wind-info">
  447. <div class="legend mg-r-16">
  448. <span class="dot"></span>
  449. <span>{{ rfxplStr }}</span>
  450. </div>
  451. <radar-chart
  452. :width="'100%'"
  453. :height="'350px'"
  454. :value="rfxplData"
  455. />
  456. </div>
  457. </panel>
  458. </el-col>
  459. <el-col :span="8">
  460. <panel
  461. :title="'月风向频率'"
  462. class="radar-panel"
  463. :icon="'svg-wind-site'"
  464. >
  465. <div class="wind-info">
  466. <div class="legend mg-r-16">
  467. <span class="dot"></span>
  468. <span>{{ yfxplStr }}</span>
  469. </div>
  470. <radar-chart
  471. :width="'100%'"
  472. :height="'350px'"
  473. :value="yfxplData"
  474. />
  475. </div>
  476. </panel>
  477. </el-col>
  478. <el-col :span="8">
  479. <panel
  480. :title="'年风向频率'"
  481. class="radar-panel"
  482. :icon="'svg-wind-site'"
  483. >
  484. <div class="wind-info">
  485. <div class="legend mg-r-16">
  486. <span class="dot"></span>
  487. <span>{{ nfxplStr }}</span>
  488. </div>
  489. <radar-chart
  490. :width="'100%'"
  491. :height="'350px'"
  492. :value="nfxplData"
  493. />
  494. </div>
  495. </panel>
  496. </el-col>
  497. </el-row>
  498. </div>
  499. <!-- tab4 -->
  500. <div v-if="tabIndex == 3" class="tab-4">
  501. <el-row>
  502. <el-col :span="8">
  503. <panel
  504. :title="'日最大风速'"
  505. class="radar-panel"
  506. :icon="'svg-wind-site'"
  507. >
  508. <div class="wind-info">
  509. <div class="legend mg-r-16">
  510. <span class="dot"></span>
  511. <span>{{ rzdfsStr }}</span>
  512. </div>
  513. <radar-chart
  514. :width="'100%'"
  515. :height="'350px'"
  516. :value="rzdfsData"
  517. />
  518. </div>
  519. </panel>
  520. </el-col>
  521. <el-col :span="8">
  522. <panel
  523. :title="'月最大风速'"
  524. class="radar-panel"
  525. :icon="'svg-wind-site'"
  526. >
  527. <div class="wind-info">
  528. <div class="legend mg-r-16">
  529. <span class="dot"></span>
  530. <span>{{ yzdfsStr }}</span>
  531. </div>
  532. <radar-chart
  533. :width="'100%'"
  534. :height="'350px'"
  535. :value="yzdfsData"
  536. />
  537. </div>
  538. </panel>
  539. </el-col>
  540. <el-col :span="8">
  541. <panel
  542. :title="'年最大风速'"
  543. class="radar-panel"
  544. :icon="'svg-wind-site'"
  545. >
  546. <div class="wind-info">
  547. <div class="legend mg-r-16">
  548. <span class="dot"></span>
  549. <span>{{ nzdfsStr }}</span>
  550. </div>
  551. <radar-chart
  552. :width="'100%'"
  553. :height="'350px'"
  554. :value="nzdfsData"
  555. />
  556. </div>
  557. </panel>
  558. </el-col>
  559. </el-row>
  560. <el-row>
  561. <el-col :span="8">
  562. <panel
  563. :title="'日风向频率'"
  564. class="radar-panel"
  565. :icon="'svg-wind-site'"
  566. >
  567. <div class="wind-info">
  568. <div class="legend mg-r-16">
  569. <span class="dot"></span>
  570. <span>{{ rfxplStr }}</span>
  571. </div>
  572. <radar-chart
  573. :width="'100%'"
  574. :height="'350px'"
  575. :value="rfxplData"
  576. />
  577. </div>
  578. </panel>
  579. </el-col>
  580. <el-col :span="8">
  581. <panel
  582. :title="'月风向频率'"
  583. class="radar-panel"
  584. :icon="'svg-wind-site'"
  585. >
  586. <div class="wind-info">
  587. <div class="legend mg-r-16">
  588. <span class="dot"></span>
  589. <span>{{ yfxplStr }}</span>
  590. </div>
  591. <radar-chart
  592. :width="'100%'"
  593. :height="'350px'"
  594. :value="yfxplData"
  595. />
  596. </div>
  597. </panel>
  598. </el-col>
  599. <el-col :span="8">
  600. <panel
  601. :title="'年风向频率'"
  602. class="radar-panel"
  603. :icon="'svg-wind-site'"
  604. >
  605. <div class="wind-info">
  606. <div class="legend mg-r-16">
  607. <span class="dot"></span>
  608. <span>{{ nfxplStr }}</span>
  609. </div>
  610. <radar-chart
  611. :width="'100%'"
  612. :height="'350px'"
  613. :value="nfxplData"
  614. />
  615. </div>
  616. </panel>
  617. </el-col>
  618. </el-row>
  619. </div>
  620. <!-- tab5 -->
  621. <div v-if="tabIndex == 4" class="tab-5">
  622. <el-row>
  623. <el-col :span="8">
  624. <panel title="日小风切入">
  625. <dual-pie-chart
  626. height="350px"
  627. :innerData="dayWindPieData"
  628. :outerData="dayWindPieData"
  629. />
  630. </panel>
  631. </el-col>
  632. <el-col :span="8">
  633. <panel title="月小风切入">
  634. <dual-pie-chart
  635. height="350px"
  636. :innerData="monthWindPieData"
  637. :outerData="monthWindPieData"
  638. />
  639. </panel>
  640. </el-col>
  641. <el-col :span="8">
  642. <panel title="年小风切入">
  643. <dual-pie-chart
  644. height="350px"
  645. :innerData="yearWindPieData"
  646. :outerData="myearWindPieData"
  647. />
  648. </panel>
  649. </el-col>
  650. </el-row>
  651. <el-row>
  652. <el-col :span="8">
  653. <panel title="日小风停机">
  654. <dual-pie-chart
  655. height="350px"
  656. :innerData="dayStopPieData"
  657. :outerData="dayStopPieData"
  658. />
  659. </panel>
  660. </el-col>
  661. <el-col :span="8">
  662. <panel title="月小风停机">
  663. <dual-pie-chart
  664. height="350px"
  665. :innerData="monthStopPieData"
  666. :outerData="monthStopPieData"
  667. />
  668. </panel>
  669. </el-col>
  670. <el-col :span="8">
  671. <panel title="年小风停机">
  672. <dual-pie-chart
  673. height="350px"
  674. :innerData="yearStopPieData"
  675. :outerData="yearStopPieData"
  676. />
  677. </panel>
  678. </el-col>
  679. </el-row>
  680. </div>
  681. <el-dialog
  682. title="区域详情查看"
  683. v-model="dialogShow"
  684. width="85%"
  685. top="10vh"
  686. custom-class="modal"
  687. :close-on-click-modal="true"
  688. >
  689. <el-form ref="form" label-width="100px" inline>
  690. <el-form-item style="width: 32%" label="开始时间:">{{
  691. form.ks
  692. }}</el-form-item>
  693. <el-form-item style="width: 32%" label="结束时间:">{{
  694. form.js
  695. }}</el-form-item>
  696. <el-form-item style="width: 32%" label="时长:"
  697. >{{ form.sc }}(小时)</el-form-item
  698. >
  699. <el-form-item style="width: 32%" label="风速:"
  700. >{{ form.fs }}(m/s)</el-form-item
  701. >
  702. <el-form-item style="width: 32%" label="功率:"
  703. >{{ form.gl }}(KW)</el-form-item
  704. >
  705. <el-form-item style="width: 32%" label="理论发电量:"
  706. >{{ form.llfdl }}(KWh)</el-form-item
  707. >
  708. <el-form-item style="width: 32%" label="发电量:"
  709. >{{ form.fdl }}(KWh)</el-form-item
  710. >
  711. <el-form-item style="width: 32%" label="损失电量:"
  712. >{{ form.ssdl }}(KWh)</el-form-item
  713. >
  714. <el-form-item style="width: 32%" label="风机状态:">{{
  715. form.fjzt
  716. }}</el-form-item>
  717. </el-form>
  718. </el-dialog>
  719. </div>
  720. </template>
  721. <script>
  722. import AreaLineChart from "./area-line-chart.vue";
  723. // import AreaLineChart from "../../components/chart/combination/area-line-chart.vue";
  724. // import MultipleBarLineChart1 from "./multiple-bar-line-chart.vue";
  725. import MultipleBarLineChart from "../../components/chart/combination/multiple-bar-line-chart.vue";
  726. import MarkerLineChart from "../../components/chart/line/multiple-line-chart.vue";
  727. import DualPieChart from "../../components/chart/pie/dual-pie-chart.vue";
  728. import DirectionRadarChart from "../../components/chart/radar/direction-radar-chart.vue";
  729. import RadarChart from "../../components/chart/radar/radar-chart.vue";
  730. import panel from "../../components/coms/panel/panel.vue";
  731. import Table from "../../components/coms/table/table.vue";
  732. export default {
  733. components: {
  734. panel,
  735. AreaLineChart,
  736. // MultipleBarLineChart1,
  737. MultipleBarLineChart,
  738. Table,
  739. MarkerLineChart,
  740. DirectionRadarChart,
  741. DualPieChart,
  742. RadarChart,
  743. },
  744. setup() {},
  745. data() {
  746. return {
  747. tabIndex: 0,
  748. tableData: {
  749. column: [
  750. {
  751. name: "风机",
  752. field: "name",
  753. is_num: false,
  754. is_light: false,
  755. },
  756. {
  757. name: "描述",
  758. field: "desc",
  759. is_num: false,
  760. is_light: false,
  761. },
  762. {
  763. name: "报警时间",
  764. field: "date",
  765. is_num: false,
  766. is_light: false,
  767. },
  768. ],
  769. data: [],
  770. },
  771. wpArray: [],
  772. wpId: "",
  773. wtArray: [],
  774. wtId: "",
  775. recorddate: new Date(new Date().getTime() - 3600 * 1000 * 24).formatDate(
  776. "yyyy-MM-dd"
  777. ),
  778. lostChartData: [
  779. {
  780. text: "",
  781. value: [],
  782. },
  783. ],
  784. lostChartUnit: [],
  785. LostChartBgColorData: [
  786. {
  787. name: "",
  788. },
  789. ],
  790. powerChartData: [
  791. {
  792. title: "",
  793. yAxisIndex: 0,
  794. value: [],
  795. },
  796. ],
  797. powerChartLineData: {
  798. name: "",
  799. unit: "",
  800. data: [],
  801. },
  802. warnTableData: {
  803. column: [
  804. {
  805. name: "风机",
  806. field: "windturbineid",
  807. is_num: false,
  808. is_light: false,
  809. },
  810. {
  811. name: "描述",
  812. field: "warnDesc",
  813. is_num: false,
  814. is_light: false,
  815. },
  816. {
  817. name: "报警时间",
  818. field: "warningtime",
  819. is_num: false,
  820. is_light: false,
  821. },
  822. ],
  823. data: [],
  824. },
  825. stopTableData: {
  826. column: [
  827. {
  828. name: "风机",
  829. field: "windTurbineId",
  830. is_num: false,
  831. is_light: false,
  832. },
  833. {
  834. name: "停机时间",
  835. field: "stopTime",
  836. is_num: false,
  837. is_light: false,
  838. },
  839. {
  840. name: "恢复时间",
  841. field: "starttime",
  842. is_num: false,
  843. is_light: false,
  844. },
  845. ],
  846. data: [],
  847. },
  848. xdTableData: {
  849. column: [
  850. {
  851. name: "风机",
  852. field: "windturbineid",
  853. is_num: false,
  854. is_light: false,
  855. },
  856. {
  857. name: "停机时间",
  858. field: "stoptime",
  859. is_num: false,
  860. is_light: false,
  861. },
  862. {
  863. name: "恢复时间",
  864. field: "starttime",
  865. is_num: false,
  866. is_light: false,
  867. },
  868. {
  869. name: "损失电量",
  870. field: "losspower",
  871. is_num: false,
  872. is_light: false,
  873. },
  874. {
  875. name: "限电时长",
  876. field: "stophours",
  877. is_num: false,
  878. is_light: false,
  879. },
  880. ],
  881. data: [],
  882. },
  883. powerLineChartData: [
  884. {
  885. title: "",
  886. yAxisIndex: 0,
  887. value: [],
  888. },
  889. ],
  890. dayPowerInfo: {},
  891. monthWarnRecordData: {
  892. column: [
  893. {
  894. name: "名字",
  895. field: "name",
  896. is_num: false,
  897. is_light: false,
  898. },
  899. {
  900. name: "次数",
  901. field: "frequency",
  902. is_num: true,
  903. is_light: false,
  904. },
  905. ],
  906. data: [],
  907. },
  908. jfplStr: "",
  909. windResourcesData: {
  910. indicator: ["N0", "N1", "N2", "N3", "N4", "N5"],
  911. data: [
  912. {
  913. value: [44200, 14200, 20000, 35000, 50000, 38000],
  914. name: "",
  915. },
  916. ],
  917. },
  918. rzdfsStr: "",
  919. rzdfsData: {
  920. indicator: ["N0", "N1", "N2", "N3", "N4", "N5"],
  921. data: [
  922. {
  923. value: [44200, 14200, 20000, 35000, 50000, 38000],
  924. name: "",
  925. },
  926. ],
  927. },
  928. yzdfsStr: "",
  929. yzdfsData: {
  930. indicator: ["N0", "N1", "N2", "N3", "N4", "N5"],
  931. data: [
  932. {
  933. value: [44200, 14200, 20000, 35000, 50000, 38000],
  934. name: "",
  935. },
  936. ],
  937. },
  938. nzdfsStr: "",
  939. nzdfsData: {
  940. indicator: ["N0", "N1", "N2", "N3", "N4", "N5"],
  941. data: [
  942. {
  943. value: [44200, 14200, 20000, 35000, 50000, 38000],
  944. name: "",
  945. },
  946. ],
  947. },
  948. rfxplStr: "",
  949. rfxplData: {
  950. indicator: ["N0", "N1", "N2", "N3", "N4", "N5"],
  951. data: [
  952. {
  953. value: [44200, 14200, 20000, 35000, 50000, 38000],
  954. name: "",
  955. },
  956. ],
  957. },
  958. yfxplStr: "",
  959. yfxplData: {
  960. indicator: ["N0", "N1", "N2", "N3", "N4", "N5"],
  961. data: [
  962. {
  963. value: [44200, 14200, 20000, 35000, 50000, 38000],
  964. name: "",
  965. },
  966. ],
  967. },
  968. nfxplStr: "",
  969. nfxplData: {
  970. indicator: ["N0", "N1", "N2", "N3", "N4", "N5"],
  971. data: [
  972. {
  973. value: [44200, 14200, 20000, 35000, 50000, 38000],
  974. name: "",
  975. },
  976. ],
  977. },
  978. dayWindPieData: [],
  979. monthWindPieData: [],
  980. yearWindPieData: [],
  981. dayStopPieData: [],
  982. monthStopPieData: [],
  983. yearStopPieData: [],
  984. dialogShow: false,
  985. form: {},
  986. };
  987. },
  988. methods: {
  989. // 获取风场
  990. getWpArray() {
  991. let that = this;
  992. that.API.requestData({
  993. method: "GET",
  994. subUrl: "powercompare/windfarmAjax",
  995. success(res) {
  996. that.wpArray = res.data;
  997. that.wpId = that.wpId || res.data[0].id;
  998. that.getWtArray(that.wpId, true);
  999. },
  1000. });
  1001. },
  1002. // 获取风机
  1003. getWtArray(wpId, keepRequest) {
  1004. let that = this;
  1005. if (wpId) {
  1006. that.API.requestData({
  1007. method: "GET",
  1008. subUrl: "powercompare/windturbineAjax",
  1009. data: {
  1010. wpId,
  1011. },
  1012. success(res) {
  1013. that.wtArray = res.data;
  1014. const findRes = res.data.some((ele) => {
  1015. return ele.id === that.wtId;
  1016. });
  1017. that.wtId = findRes ? that.wtId : res.data[0].id;
  1018. if (keepRequest) {
  1019. that.search();
  1020. }
  1021. },
  1022. });
  1023. } else {
  1024. that.wtArray = [];
  1025. that.wtId = "";
  1026. }
  1027. },
  1028. // tab1 - 获取损失电量分析图表数据
  1029. getLostChartData() {
  1030. let that = this;
  1031. that.API.requestData({
  1032. method: "POST",
  1033. subUrl: "goodness/findWtRealPowerChar",
  1034. data: {
  1035. wtId: that.wtId,
  1036. recorddate: that.recorddate,
  1037. },
  1038. success(res) {
  1039. const keyArray = ["value1", "value2", "value3"];
  1040. let lostChartData = [
  1041. {
  1042. text: "实发功率",
  1043. value: [
  1044. {
  1045. text: "1",
  1046. value: 1,
  1047. },
  1048. ],
  1049. },
  1050. {
  1051. text: "保证功率",
  1052. value: [],
  1053. },
  1054. {
  1055. text: "风速",
  1056. value: [],
  1057. },
  1058. ];
  1059. const lostChartUnit = ["实发功率", "保证功率", "风速", "状态"];
  1060. keyArray.forEach((key, keyIndex) => {
  1061. res.data.forEach((ele) => {
  1062. lostChartData[keyIndex].value.push({
  1063. text: new Date(ele.time).formatDate("MM-dd hh:mm"),
  1064. value: ele[key],
  1065. });
  1066. });
  1067. });
  1068. that.lostChartData = lostChartData;
  1069. that.lostChartUnit = lostChartUnit;
  1070. that.getLostChartBgColorData();
  1071. },
  1072. });
  1073. },
  1074. // tab1 - 获取损失电量分析图表背景颜色
  1075. getLostChartBgColorData() {
  1076. let that = this;
  1077. that.API.requestData({
  1078. method: "POST",
  1079. subUrl: "goodness/getplotBands",
  1080. data: {
  1081. wtId: that.wtId,
  1082. recorddate: that.recorddate,
  1083. },
  1084. success(res) {
  1085. let LostChartBgColorData = [];
  1086. res.data.forEach((pEle, pIndex) => {
  1087. LostChartBgColorData.push({
  1088. name: pEle[0].name,
  1089. start: pIndex ? LostChartBgColorData[pIndex - 1].end : 0,
  1090. end:
  1091. (pIndex ? LostChartBgColorData[pIndex - 1].end : 0) +
  1092. (new Date(pEle[0].time2).getTime() / 1000 -
  1093. new Date(pEle[0].time1).getTime() / 1000),
  1094. color: pEle[0].itemStyle.color,
  1095. beginDate: pEle[0].time1,
  1096. endDate: pEle[0].time2,
  1097. wtId: that.wtId,
  1098. });
  1099. });
  1100. that.LostChartBgColorData = LostChartBgColorData;
  1101. },
  1102. });
  1103. },
  1104. // 损失电量分析图背景颜色区域点击事件
  1105. areaBarChartClick(item) {
  1106. let that = this;
  1107. that.API.requestData({
  1108. method: "POST",
  1109. subUrl: "goodness/plotBandAjax",
  1110. data: {
  1111. wtId: item.data.wtId,
  1112. beginDate: item.data.beginDate,
  1113. endDate: item.data.endDate,
  1114. },
  1115. success(res) {
  1116. that.form = res.data || {};
  1117. that.dialogShow = true;
  1118. },
  1119. });
  1120. },
  1121. // tab1 - 获取电量图表数据
  1122. getPowerChartData() {
  1123. let that = this;
  1124. that.API.requestData({
  1125. method: "POST",
  1126. subUrl: "goodness/findRealPowerCharBy24",
  1127. data: {
  1128. wtId: that.wtId,
  1129. recorddate: that.recorddate,
  1130. },
  1131. success(res) {
  1132. const keyArray = ["value1", "value2", "value3", "value4", "value5"];
  1133. let powerChartData = [
  1134. {
  1135. title: "scada发电量",
  1136. yAxisIndex: 0,
  1137. value: [],
  1138. },
  1139. {
  1140. title: "维护损失",
  1141. yAxisIndex: 0,
  1142. value: [],
  1143. },
  1144. {
  1145. title: "故障损失",
  1146. yAxisIndex: 0,
  1147. value: [],
  1148. },
  1149. {
  1150. title: "限电损失",
  1151. yAxisIndex: 0,
  1152. value: [],
  1153. },
  1154. {
  1155. title: "欠发损失",
  1156. yAxisIndex: 0,
  1157. value: [],
  1158. },
  1159. ];
  1160. let powerChartLineData = {
  1161. name: "风速",
  1162. unit: "(m/s)",
  1163. data: [],
  1164. };
  1165. keyArray.forEach((keyEle, keyIndex) => {
  1166. res.data.forEach((ele) => {
  1167. powerChartData[keyIndex].value.push({
  1168. text: new Date(ele.time).formatDate("MM-dd hh:mm"),
  1169. value: ele[keyEle],
  1170. });
  1171. powerChartLineData.data.push(ele.value6);
  1172. });
  1173. });
  1174. that.powerChartData = powerChartData;
  1175. that.powerChartLineData = powerChartLineData;
  1176. },
  1177. });
  1178. },
  1179. // tab1 - 获取当日报警数据
  1180. getWarnData() {
  1181. let that = this;
  1182. that.API.requestData({
  1183. method: "POST",
  1184. subUrl: "goodness/bjjllist",
  1185. data: {
  1186. wtId: that.wtId,
  1187. recorddate: that.recorddate,
  1188. },
  1189. success(res) {
  1190. res.data.list.forEach((ele) => {
  1191. ele.warningtime = new Date(ele.warningtime).formatDate(
  1192. "yyyy-MM-dd hh:mm:ss"
  1193. );
  1194. });
  1195. that.warnTableData.data = res.data.list;
  1196. },
  1197. });
  1198. },
  1199. // tab1 - 获取当日故障数据
  1200. getStopData() {
  1201. let that = this;
  1202. that.API.requestData({
  1203. method: "POST",
  1204. subUrl: "goodness/gzjllist",
  1205. data: {
  1206. wtId: that.wtId,
  1207. recorddate: that.recorddate,
  1208. },
  1209. success(res) {
  1210. res.data.list.forEach((ele) => {
  1211. ele.stopTime = new Date(ele.stopTime).formatDate(
  1212. "yyyy-MM-dd hh:mm:ss"
  1213. );
  1214. ele.starttime = ele.starttime
  1215. ? new Date(ele.starttime).formatDate("yyyy-MM-dd hh:mm:ss")
  1216. : "";
  1217. });
  1218. that.stopTableData.data = res.data.list;
  1219. },
  1220. });
  1221. },
  1222. // tab1 - 获取当日限电数据
  1223. getXdData() {
  1224. let that = this;
  1225. that.API.requestData({
  1226. method: "POST",
  1227. subUrl: "goodness/xdjllist",
  1228. data: {
  1229. wtId: that.wtId,
  1230. recorddate: that.recorddate,
  1231. },
  1232. success(res) {
  1233. res.data.list.forEach((ele) => {
  1234. ele.stopTime = new Date(ele.stopTime).formatDate(
  1235. "yyyy-MM-dd hh:mm:ss"
  1236. );
  1237. ele.starttime = ele.starttime
  1238. ? new Date(ele.starttime).formatDate("yyyy-MM-dd hh:mm:ss")
  1239. : "";
  1240. });
  1241. that.xdTableData.data = res.data.list;
  1242. },
  1243. });
  1244. },
  1245. // tab2 - 获取日发电量信息
  1246. getDayPowerInfo() {
  1247. let that = this;
  1248. that.API.requestData({
  1249. method: "POST",
  1250. subUrl: "goodness/wadAjax",
  1251. data: {
  1252. wtId: that.wtId,
  1253. recorddate: that.recorddate,
  1254. },
  1255. success(res) {
  1256. that.dayPowerInfo = res.data;
  1257. },
  1258. });
  1259. },
  1260. // tab2 - 获取当月报警排行
  1261. getMonthWarnRecord() {
  1262. let that = this;
  1263. that.API.requestData({
  1264. method: "POST",
  1265. subUrl: "goodness/bjphlist",
  1266. data: {
  1267. wtId: that.wtId,
  1268. recorddate: that.recorddate,
  1269. },
  1270. success(res) {
  1271. that.monthWarnRecordData.data = res.data;
  1272. },
  1273. });
  1274. },
  1275. // tab2 - 获取当月报警排行
  1276. getPowerLineChartData() {
  1277. let that = this;
  1278. that.API.requestData({
  1279. method: "POST",
  1280. subUrl: "goodness/glchat",
  1281. data: {
  1282. wtId: that.wtId,
  1283. recorddate: that.recorddate,
  1284. },
  1285. success(res) {
  1286. const keyArray = ["value2", "value3", "value4"];
  1287. let powerLineChartData = [
  1288. {
  1289. title: "实际拟合功率",
  1290. yAxisIndex: 0,
  1291. value: [],
  1292. },
  1293. {
  1294. title: "最优功率",
  1295. yAxisIndex: 0,
  1296. value: [],
  1297. },
  1298. {
  1299. title: "保证功率",
  1300. yAxisIndex: 0,
  1301. value: [],
  1302. },
  1303. ];
  1304. keyArray.forEach((keyEle, keyIndex) => {
  1305. res.data.forEach((ele, index) => {
  1306. powerLineChartData[keyIndex].value.push({
  1307. text: index + 1,
  1308. value: ele[keyEle],
  1309. });
  1310. });
  1311. });
  1312. that.powerLineChartData = powerLineChartData;
  1313. },
  1314. });
  1315. },
  1316. // tab2 - 获取当月报警排行
  1317. getWindResources() {
  1318. let that = this;
  1319. that.API.requestData({
  1320. method: "POST",
  1321. subUrl: "goodness/fjfzy",
  1322. data: {
  1323. wtId: that.wtId,
  1324. recorddate: that.recorddate,
  1325. },
  1326. success(res) {
  1327. that.jfplStr = res.data.jfpl || "";
  1328. let windResourcesData = {
  1329. indicator: [],
  1330. data: [
  1331. {
  1332. name: "",
  1333. value: [],
  1334. },
  1335. ],
  1336. };
  1337. if (res.data.data) {
  1338. res.data.data.forEach((ele) => {
  1339. windResourcesData.indicator.push(ele.name);
  1340. windResourcesData.data[0].value.push(ele.data1);
  1341. });
  1342. }
  1343. that.windResourcesData = windResourcesData;
  1344. },
  1345. });
  1346. },
  1347. // tab3,tab4 - 获取玫瑰图
  1348. getMgt(subUrl, data, dataKey, logFlg) {
  1349. let that = this;
  1350. that.API.requestData({
  1351. method: "POST",
  1352. subUrl,
  1353. data,
  1354. success(res) {
  1355. that[dataKey.split("Data")[0] + "Str"] = res.data.jfpl || "";
  1356. let mgtData = {
  1357. indicator: [],
  1358. data: [
  1359. {
  1360. name: "",
  1361. value: [],
  1362. },
  1363. ],
  1364. };
  1365. if (res.data.data) {
  1366. mgtData.indicator = ["北", "北北西", "北西", "西北西", "西", "西南西", "南西", "南南西", "南", "南南东", "东南", "东南东","东", "东北东", "北东", "北北东"]
  1367. res.data.data.forEach((ele) => {
  1368. // mgtData.indicator.push(ele.name);
  1369. mgtData.data[0].value.push(ele.data1);
  1370. });
  1371. }
  1372. mgtData.data[0].value.reverse();
  1373. that[dataKey] = mgtData;
  1374. },
  1375. });
  1376. },
  1377. // tab5 - 获取饼图
  1378. getPieChart(subUrl, type, dataKey) {
  1379. let that = this;
  1380. that.API.requestData({
  1381. method: "POST",
  1382. subUrl,
  1383. data: {
  1384. wtId: that.wtId,
  1385. recorddate: that.recorddate,
  1386. type,
  1387. },
  1388. success(res) {
  1389. let pieChart = [];
  1390. res.data.forEach((ele) => {
  1391. pieChart.push({
  1392. name: ele.name,
  1393. value: ele.value2,
  1394. unit: "(m/s)",
  1395. });
  1396. });
  1397. that[dataKey] = pieChart;
  1398. },
  1399. });
  1400. },
  1401. // 切换tab
  1402. tabSelect(index) {
  1403. this.tabIndex = index;
  1404. this.search();
  1405. },
  1406. // 搜索
  1407. search() {
  1408. if (this.tabIndex === 0) {
  1409. this.getLostChartData();
  1410. this.getPowerChartData();
  1411. this.getWarnData();
  1412. this.getStopData();
  1413. this.getXdData();
  1414. } else if (this.tabIndex === 1) {
  1415. this.getWarnData();
  1416. this.getStopData();
  1417. this.getDayPowerInfo();
  1418. this.getMonthWarnRecord();
  1419. this.getPowerLineChartData();
  1420. this.getWindResources();
  1421. } else if (this.tabIndex === 2) {
  1422. const xhrParam = { wpId: this.wpId, recorddate: this.recorddate };
  1423. this.getMgt("goodness/wprzdfs", xhrParam, "rzdfsData");
  1424. this.getMgt("goodness/wpyzdfs", xhrParam, "yzdfsData");
  1425. this.getMgt("goodness/wpnzdfs", xhrParam, "nzdfsData");
  1426. this.getMgt("goodness/wprfxpl", xhrParam, "rfxplData");
  1427. this.getMgt("goodness/wpyfxpl", xhrParam, "yfxplData");
  1428. this.getMgt("goodness/wpnfxpl", xhrParam, "nfxplData");
  1429. } else if (this.tabIndex === 3) {
  1430. const xhrParam = { wtId: this.wtId, recorddate: this.recorddate };
  1431. this.getMgt("goodness/wtrzdfs", xhrParam, "rzdfsData");
  1432. this.getMgt("goodness/wtyzdfs", xhrParam, "yzdfsData");
  1433. this.getMgt("goodness/wtnzdfs", xhrParam, "nzdfsData");
  1434. this.getMgt("goodness/wtrfxpl", xhrParam, "rfxplData");
  1435. this.getMgt("goodness/wtyfxpl", xhrParam, "yfxplData");
  1436. this.getMgt("goodness/wtnfxpl", xhrParam, "nfxplData");
  1437. } else if (this.tabIndex === 4) {
  1438. this.getPieChart("goodness/pieChart", "1", "dayWindPieData");
  1439. this.getPieChart("goodness/pieChart", "2", "monthWindPieData");
  1440. this.getPieChart("goodness/pieChart", "3", "yearWindPieData");
  1441. this.getPieChart("goodness/pieChart", "4", "dayStopPieData");
  1442. this.getPieChart("goodness/pieChart", "5", "monthStopPieData");
  1443. this.getPieChart("goodness/pieChart", "6", "yearStopPieData");
  1444. }
  1445. },
  1446. },
  1447. created() {
  1448. this.getWpArray();
  1449. this.wpId = this.$route.params.wpId || "";
  1450. this.wtId = this.$route.params.wtId || "";
  1451. },
  1452. };
  1453. </script>
  1454. <style lang="less">
  1455. .dj-1 {
  1456. .action-bar {
  1457. display: flex;
  1458. .selections {
  1459. flex: 1 0 auto;
  1460. display: flex;
  1461. .item {
  1462. flex: 0 0 164px;
  1463. text-align: center;
  1464. height: 33px;
  1465. line-height: 33px;
  1466. margin-right: 8px;
  1467. color: @font-color;
  1468. font-size: @fontsize-s;
  1469. background: fade(@gray, 20);
  1470. border: 1px solid fade(@gray, 20);
  1471. &:hover,
  1472. &.active {
  1473. background: fade(@green, 20);
  1474. border: 1px solid @green;
  1475. color: @green;
  1476. cursor: pointer;
  1477. }
  1478. }
  1479. }
  1480. }
  1481. .outline {
  1482. outline: 1px solid fade(@gray, 50);
  1483. }
  1484. .com-panel .panel-header {
  1485. margin-bottom: 0px;
  1486. }
  1487. .table-info {
  1488. display: flex;
  1489. .table-panel {
  1490. flex: 1 0 calc(100% / 3 - 8px);
  1491. outline: 1px solid fade(@gray, 50);
  1492. height: 100%;
  1493. & + .table-panel {
  1494. margin-left: 8px;
  1495. }
  1496. }
  1497. }
  1498. .tab-2 {
  1499. .power-info {
  1500. display: flex;
  1501. flex-wrap: wrap;
  1502. justify-content: space-between;
  1503. &.month-3 {
  1504. .info-item {
  1505. flex: 0 0 calc(100% / 3 - 6px);
  1506. &:nth-child(-n + 5) {
  1507. margin-top: 8px;
  1508. }
  1509. &:nth-child(-n + 3) {
  1510. margin-top: 0px;
  1511. }
  1512. }
  1513. }
  1514. &.month-2 {
  1515. .info-item {
  1516. flex: 0 0 calc(100% / 2 - 4px);
  1517. &:nth-child(-n + 5) {
  1518. margin-top: 8px;
  1519. }
  1520. &:nth-child(-n + 2) {
  1521. margin-top: 0px;
  1522. }
  1523. }
  1524. }
  1525. .info-item {
  1526. display: flex;
  1527. align-items: center;
  1528. flex: 0 0 calc(100% / 5 - 8px);
  1529. background: fade(@gray, 20);
  1530. height: 4.6296vh;
  1531. line-height: 4.6296vh;
  1532. margin-top: 8px;
  1533. &:nth-child(-n + 5) {
  1534. margin-top: 0px;
  1535. }
  1536. .text {
  1537. font-size: 12px;
  1538. flex: 0 0 110px;
  1539. text-align: right;
  1540. margin-right: 24px;
  1541. color: @gray-l;
  1542. }
  1543. .value {
  1544. font-size: 16px;
  1545. }
  1546. }
  1547. }
  1548. .month-info {
  1549. display: flex;
  1550. .month-info-left {
  1551. flex: 0 0 705px;
  1552. margin-right: 10px;
  1553. }
  1554. .month-info-right {
  1555. flex: 1 0 auto;
  1556. }
  1557. }
  1558. .moon-other {
  1559. flex: 1 0 auto;
  1560. }
  1561. .radar-panel {
  1562. height: 20.5vh;
  1563. .panel-body {
  1564. height: 100%;
  1565. }
  1566. }
  1567. .wind-info {
  1568. display: flex;
  1569. .legend {
  1570. white-space: nowrap;
  1571. font-size: 12px;
  1572. flex: 0 0 80px;
  1573. height: 20px;
  1574. display: flex;
  1575. align-items: center;
  1576. justify-content: center;
  1577. margin-top: 32px;
  1578. margin-bottom: 16px;
  1579. .dot {
  1580. width: 7px;
  1581. height: 7px;
  1582. background: @green;
  1583. display: inline-block;
  1584. margin-right: 8px;
  1585. }
  1586. }
  1587. }
  1588. }
  1589. .tab-3,
  1590. .tab-4 {
  1591. .wind-info {
  1592. position: relative;
  1593. .legend {
  1594. position: absolute;
  1595. left: 32px;
  1596. top: 32px;
  1597. font-size: 12px;
  1598. flex: 0 0 140px;
  1599. height: 20px;
  1600. display: flex;
  1601. align-items: center;
  1602. justify-content: center;
  1603. margin-top: 32px;
  1604. margin-bottom: 16px;
  1605. .dot {
  1606. width: 7px;
  1607. height: 7px;
  1608. background: @green;
  1609. display: inline-block;
  1610. margin-right: 8px;
  1611. }
  1612. }
  1613. }
  1614. }
  1615. .tab-5 {
  1616. .panel-body {
  1617. padding: 16px;
  1618. }
  1619. }
  1620. }
  1621. </style>