dj1.vue 47 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725
  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/line/multiple-y-line-chart-normal.vue";
  724. // import AreaLineChart from "../../components/chart/combination/area-line-chart.vue";
  725. // import MultipleBarLineChart1 from "./multiple-bar-line-chart.vue";
  726. import MultipleBarLineChart from "../../components/chart/combination/multiple-bar-line-chart.vue";
  727. import MarkerLineChart from "../../components/chart/line/multiple-line-chart.vue";
  728. import DualPieChart from "../../components/chart/pie/dual-pie-chart.vue";
  729. import DirectionRadarChart from "../../components/chart/radar/direction-radar-chart.vue";
  730. import RadarChart from "../../components/chart/radar/radar-chart.vue";
  731. import panel from "../../components/coms/panel/panel.vue";
  732. import Table from "../../components/coms/table/table.vue";
  733. export default {
  734. components: {
  735. panel,
  736. AreaLineChart,
  737. // MultipleBarLineChart1,
  738. MultipleBarLineChart,
  739. Table,
  740. MarkerLineChart,
  741. DirectionRadarChart,
  742. DualPieChart,
  743. RadarChart,
  744. },
  745. setup() {},
  746. data() {
  747. return {
  748. tabIndex: 0,
  749. tableData: {
  750. column: [
  751. {
  752. name: "风机",
  753. field: "name",
  754. is_num: false,
  755. is_light: false,
  756. },
  757. {
  758. name: "描述",
  759. field: "desc",
  760. is_num: false,
  761. is_light: false,
  762. },
  763. {
  764. name: "报警时间",
  765. field: "date",
  766. is_num: false,
  767. is_light: false,
  768. },
  769. ],
  770. data: [],
  771. },
  772. wpArray: [],
  773. wpId: "",
  774. wtArray: [],
  775. wtId: "",
  776. recorddate: new Date(new Date().getTime() - 3600 * 1000 * 24).formatDate(
  777. "yyyy-MM-dd"
  778. ),
  779. lostChartData: [
  780. {
  781. text: "",
  782. value: [],
  783. },
  784. ],
  785. lostChartUnit: [],
  786. LostChartBgColorData: [
  787. {
  788. name: "",
  789. },
  790. ],
  791. powerChartData: [
  792. {
  793. title: "",
  794. yAxisIndex: 0,
  795. value: [],
  796. },
  797. ],
  798. powerChartLineData: {
  799. name: "",
  800. unit: "",
  801. data: [],
  802. },
  803. warnTableData: {
  804. column: [
  805. {
  806. name: "风机",
  807. field: "windturbineid",
  808. is_num: false,
  809. is_light: false,
  810. },
  811. {
  812. name: "描述",
  813. field: "warnDesc",
  814. is_num: false,
  815. is_light: false,
  816. },
  817. {
  818. name: "报警时间",
  819. field: "warningtime",
  820. is_num: false,
  821. is_light: false,
  822. },
  823. ],
  824. data: [],
  825. },
  826. stopTableData: {
  827. column: [
  828. {
  829. name: "风机",
  830. field: "windTurbineId",
  831. is_num: false,
  832. is_light: false,
  833. },
  834. {
  835. name: "停机时间",
  836. field: "stopTime",
  837. is_num: false,
  838. is_light: false,
  839. },
  840. {
  841. name: "恢复时间",
  842. field: "starttime",
  843. is_num: false,
  844. is_light: false,
  845. },
  846. ],
  847. data: [],
  848. },
  849. xdTableData: {
  850. column: [
  851. {
  852. name: "风机",
  853. field: "windturbineid",
  854. is_num: false,
  855. is_light: false,
  856. },
  857. {
  858. name: "停机时间",
  859. field: "stoptime",
  860. is_num: false,
  861. is_light: false,
  862. },
  863. {
  864. name: "恢复时间",
  865. field: "starttime",
  866. is_num: false,
  867. is_light: false,
  868. },
  869. {
  870. name: "损失电量",
  871. field: "losspower",
  872. is_num: false,
  873. is_light: false,
  874. },
  875. {
  876. name: "限电时长",
  877. field: "stophours",
  878. is_num: false,
  879. is_light: false,
  880. },
  881. ],
  882. data: [],
  883. },
  884. powerLineChartData: [
  885. {
  886. title: "",
  887. yAxisIndex: 0,
  888. value: [],
  889. },
  890. ],
  891. dayPowerInfo: {},
  892. monthWarnRecordData: {
  893. column: [
  894. {
  895. name: "名字",
  896. field: "name",
  897. is_num: false,
  898. is_light: false,
  899. },
  900. {
  901. name: "次数",
  902. field: "frequency",
  903. is_num: true,
  904. is_light: false,
  905. },
  906. ],
  907. data: [],
  908. },
  909. jfplStr: "",
  910. windResourcesData: {
  911. indicator: ["N0", "N1", "N2", "N3", "N4", "N5"],
  912. data: [
  913. {
  914. value: [44200, 14200, 20000, 35000, 50000, 38000],
  915. name: "",
  916. },
  917. ],
  918. },
  919. rzdfsStr: "",
  920. rzdfsData: {
  921. indicator: ["N0", "N1", "N2", "N3", "N4", "N5"],
  922. data: [
  923. {
  924. value: [44200, 14200, 20000, 35000, 50000, 38000],
  925. name: "",
  926. },
  927. ],
  928. },
  929. yzdfsStr: "",
  930. yzdfsData: {
  931. indicator: ["N0", "N1", "N2", "N3", "N4", "N5"],
  932. data: [
  933. {
  934. value: [44200, 14200, 20000, 35000, 50000, 38000],
  935. name: "",
  936. },
  937. ],
  938. },
  939. nzdfsStr: "",
  940. nzdfsData: {
  941. indicator: ["N0", "N1", "N2", "N3", "N4", "N5"],
  942. data: [
  943. {
  944. value: [44200, 14200, 20000, 35000, 50000, 38000],
  945. name: "",
  946. },
  947. ],
  948. },
  949. rfxplStr: "",
  950. rfxplData: {
  951. indicator: ["N0", "N1", "N2", "N3", "N4", "N5"],
  952. data: [
  953. {
  954. value: [44200, 14200, 20000, 35000, 50000, 38000],
  955. name: "",
  956. },
  957. ],
  958. },
  959. yfxplStr: "",
  960. yfxplData: {
  961. indicator: ["N0", "N1", "N2", "N3", "N4", "N5"],
  962. data: [
  963. {
  964. value: [44200, 14200, 20000, 35000, 50000, 38000],
  965. name: "",
  966. },
  967. ],
  968. },
  969. nfxplStr: "",
  970. nfxplData: {
  971. indicator: ["N0", "N1", "N2", "N3", "N4", "N5"],
  972. data: [
  973. {
  974. value: [44200, 14200, 20000, 35000, 50000, 38000],
  975. name: "",
  976. },
  977. ],
  978. },
  979. dayWindPieData: [],
  980. monthWindPieData: [],
  981. yearWindPieData: [],
  982. dayStopPieData: [],
  983. monthStopPieData: [],
  984. yearStopPieData: [],
  985. dialogShow: false,
  986. form: {},
  987. };
  988. },
  989. methods: {
  990. // 获取风场
  991. getWpArray() {
  992. let that = this;
  993. that.API.requestData({
  994. method: "GET",
  995. subUrl: "powercompare/windfarmAjax",
  996. success(res) {
  997. that.wpArray = res.data;
  998. that.wpId = that.wpId || res.data[0].id;
  999. that.getWtArray(that.wpId, true);
  1000. },
  1001. });
  1002. },
  1003. // 获取风机
  1004. getWtArray(wpId, keepRequest) {
  1005. let that = this;
  1006. if (wpId) {
  1007. that.API.requestData({
  1008. method: "GET",
  1009. subUrl: "powercompare/windturbineAjax",
  1010. data: {
  1011. wpId,
  1012. },
  1013. success(res) {
  1014. that.wtArray = res.data;
  1015. const findRes = res.data.some((ele) => {
  1016. return ele.id === that.wtId;
  1017. });
  1018. that.wtId = findRes ? that.wtId : res.data[0].id;
  1019. if (keepRequest) {
  1020. that.search();
  1021. }
  1022. },
  1023. });
  1024. } else {
  1025. that.wtArray = [];
  1026. that.wtId = "";
  1027. }
  1028. },
  1029. // tab1 - 获取损失电量分析图表数据
  1030. getLostChartData() {
  1031. let that = this;
  1032. that.API.requestData({
  1033. method: "POST",
  1034. subUrl: "goodness/findWtRealPowerChar",
  1035. data: {
  1036. wtId: that.wtId,
  1037. recorddate: that.recorddate,
  1038. },
  1039. success(res) {
  1040. const keyArray = ["value1", "value2", "value3"];
  1041. let lostChartData = [
  1042. {
  1043. text: "实发功率",
  1044. yAxisIndex: 0,
  1045. value: [],
  1046. },
  1047. {
  1048. text: "保证功率",
  1049. yAxisIndex: 0,
  1050. value: [],
  1051. },
  1052. {
  1053. text: "风速",
  1054. yAxisIndex: 3,
  1055. value: [],
  1056. },
  1057. ];
  1058. const lostChartUnit = ["实发功率", "保证功率", "风速"];
  1059. keyArray.forEach((key, keyIndex) => {
  1060. res.data.forEach((ele) => {
  1061. lostChartData[keyIndex].value.push({
  1062. text: new Date(ele.time).formatDate("MM-dd hh:mm"),
  1063. value: ele[key],
  1064. });
  1065. });
  1066. });
  1067. that.lostChartData = lostChartData;
  1068. that.lostChartUnit = lostChartUnit;
  1069. that.getLostChartBgColorData();
  1070. },
  1071. });
  1072. },
  1073. // tab1 - 获取损失电量分析图表背景颜色
  1074. getLostChartBgColorData() {
  1075. let that = this;
  1076. that.API.requestData({
  1077. method: "POST",
  1078. subUrl: "goodness/getplotBands",
  1079. data: {
  1080. wtId: that.wtId,
  1081. recorddate: that.recorddate,
  1082. },
  1083. success(res) {
  1084. let LostChartBgColorData = [];
  1085. res.data.forEach((pEle, pIndex) => {
  1086. LostChartBgColorData.push({
  1087. name: pEle[0].name,
  1088. start: pIndex ? LostChartBgColorData[pIndex - 1].end : 0,
  1089. end:
  1090. (pIndex ? LostChartBgColorData[pIndex - 1].end : 0) +
  1091. (new Date(pEle[0].time2).getTime() / 1000 -
  1092. new Date(pEle[0].time1).getTime() / 1000),
  1093. color: pEle[0].itemStyle.color,
  1094. beginDate: pEle[0].time1,
  1095. endDate: pEle[0].time2,
  1096. wtId: that.wtId,
  1097. });
  1098. });
  1099. that.LostChartBgColorData = LostChartBgColorData;
  1100. },
  1101. });
  1102. },
  1103. // 损失电量分析图背景颜色区域点击事件
  1104. areaBarChartClick(item) {
  1105. let that = this;
  1106. that.API.requestData({
  1107. method: "POST",
  1108. subUrl: "goodness/plotBandAjax",
  1109. data: {
  1110. wtId: item.data.wtId,
  1111. beginDate: item.data.beginDate,
  1112. endDate: item.data.endDate,
  1113. },
  1114. success(res) {
  1115. that.form = res.data || {};
  1116. that.dialogShow = true;
  1117. },
  1118. });
  1119. },
  1120. // tab1 - 获取电量图表数据
  1121. getPowerChartData() {
  1122. let that = this;
  1123. that.API.requestData({
  1124. method: "POST",
  1125. subUrl: "goodness/findRealPowerCharBy24",
  1126. data: {
  1127. wtId: that.wtId,
  1128. recorddate: that.recorddate,
  1129. },
  1130. success(res) {
  1131. const keyArray = ["value1", "value2", "value3", "value4", "value5"];
  1132. let powerChartData = [
  1133. {
  1134. title: "scada发电量",
  1135. yAxisIndex: 0,
  1136. value: [],
  1137. },
  1138. {
  1139. title: "维护损失",
  1140. yAxisIndex: 0,
  1141. value: [],
  1142. },
  1143. {
  1144. title: "故障损失",
  1145. yAxisIndex: 0,
  1146. value: [],
  1147. },
  1148. {
  1149. title: "限电损失",
  1150. yAxisIndex: 0,
  1151. value: [],
  1152. },
  1153. {
  1154. title: "欠发损失",
  1155. yAxisIndex: 0,
  1156. value: [],
  1157. },
  1158. ];
  1159. let powerChartLineData = {
  1160. name: "风速",
  1161. unit: "(m/s)",
  1162. data: [],
  1163. };
  1164. keyArray.forEach((keyEle, keyIndex) => {
  1165. res.data.forEach((ele) => {
  1166. powerChartData[keyIndex].value.push({
  1167. text: new Date(ele.time).formatDate("MM-dd hh:mm"),
  1168. value: ele[keyEle],
  1169. });
  1170. powerChartLineData.data.push(ele.value6);
  1171. });
  1172. });
  1173. that.powerChartData = powerChartData;
  1174. that.powerChartLineData = powerChartLineData;
  1175. },
  1176. });
  1177. },
  1178. // tab1 - 获取当日报警数据
  1179. getWarnData() {
  1180. let that = this;
  1181. that.API.requestData({
  1182. method: "POST",
  1183. subUrl: "goodness/bjjllist",
  1184. data: {
  1185. wtId: that.wtId,
  1186. recorddate: that.recorddate,
  1187. },
  1188. success(res) {
  1189. res.data.list.forEach((ele) => {
  1190. ele.warningtime = new Date(ele.warningtime).formatDate(
  1191. "yyyy-MM-dd hh:mm:ss"
  1192. );
  1193. });
  1194. that.warnTableData.data = res.data.list;
  1195. },
  1196. });
  1197. },
  1198. // tab1 - 获取当日故障数据
  1199. getStopData() {
  1200. let that = this;
  1201. that.API.requestData({
  1202. method: "POST",
  1203. subUrl: "goodness/gzjllist",
  1204. data: {
  1205. wtId: that.wtId,
  1206. recorddate: that.recorddate,
  1207. },
  1208. success(res) {
  1209. res.data.list.forEach((ele) => {
  1210. ele.stopTime = new Date(ele.stopTime).formatDate(
  1211. "yyyy-MM-dd hh:mm:ss"
  1212. );
  1213. ele.starttime = ele.starttime
  1214. ? new Date(ele.starttime).formatDate("yyyy-MM-dd hh:mm:ss")
  1215. : "";
  1216. });
  1217. that.stopTableData.data = res.data.list;
  1218. },
  1219. });
  1220. },
  1221. // tab1 - 获取当日限电数据
  1222. getXdData() {
  1223. let that = this;
  1224. that.API.requestData({
  1225. method: "POST",
  1226. subUrl: "goodness/xdjllist",
  1227. data: {
  1228. wtId: that.wtId,
  1229. recorddate: that.recorddate,
  1230. },
  1231. success(res) {
  1232. res.data.list.forEach((ele) => {
  1233. ele.stopTime = new Date(ele.stopTime).formatDate(
  1234. "yyyy-MM-dd hh:mm:ss"
  1235. );
  1236. ele.starttime = ele.starttime
  1237. ? new Date(ele.starttime).formatDate("yyyy-MM-dd hh:mm:ss")
  1238. : "";
  1239. });
  1240. that.xdTableData.data = res.data.list;
  1241. },
  1242. });
  1243. },
  1244. // tab2 - 获取日发电量信息
  1245. getDayPowerInfo() {
  1246. let that = this;
  1247. that.API.requestData({
  1248. method: "POST",
  1249. subUrl: "goodness/wadAjax",
  1250. data: {
  1251. wtId: that.wtId,
  1252. recorddate: that.recorddate,
  1253. },
  1254. success(res) {
  1255. that.dayPowerInfo = res.data;
  1256. },
  1257. });
  1258. },
  1259. // tab2 - 获取当月报警排行
  1260. getMonthWarnRecord() {
  1261. let that = this;
  1262. that.API.requestData({
  1263. method: "POST",
  1264. subUrl: "goodness/bjphlist",
  1265. data: {
  1266. wtId: that.wtId,
  1267. recorddate: that.recorddate,
  1268. },
  1269. success(res) {
  1270. that.monthWarnRecordData.data = res.data;
  1271. },
  1272. });
  1273. },
  1274. // tab2 - 获取当月报警排行
  1275. getPowerLineChartData() {
  1276. let that = this;
  1277. that.API.requestData({
  1278. method: "POST",
  1279. subUrl: "goodness/glchat",
  1280. data: {
  1281. wtId: that.wtId,
  1282. recorddate: that.recorddate,
  1283. },
  1284. success(res) {
  1285. const keyArray = ["value2", "value3", "value4"];
  1286. let powerLineChartData = [
  1287. {
  1288. title: "实际拟合功率",
  1289. yAxisIndex: 0,
  1290. value: [],
  1291. },
  1292. {
  1293. title: "最优功率",
  1294. yAxisIndex: 0,
  1295. value: [],
  1296. },
  1297. {
  1298. title: "保证功率",
  1299. yAxisIndex: 0,
  1300. value: [],
  1301. },
  1302. ];
  1303. keyArray.forEach((keyEle, keyIndex) => {
  1304. res.data.forEach((ele, index) => {
  1305. powerLineChartData[keyIndex].value.push({
  1306. text: index + 1,
  1307. value: ele[keyEle],
  1308. });
  1309. });
  1310. });
  1311. that.powerLineChartData = powerLineChartData;
  1312. },
  1313. });
  1314. },
  1315. // tab2 - 获取当月报警排行
  1316. getWindResources() {
  1317. let that = this;
  1318. that.API.requestData({
  1319. method: "POST",
  1320. subUrl: "goodness/fjfzy",
  1321. data: {
  1322. wtId: that.wtId,
  1323. recorddate: that.recorddate,
  1324. },
  1325. success(res) {
  1326. that.jfplStr = res.data.jfpl || "";
  1327. let windResourcesData = {
  1328. indicator: [],
  1329. data: [
  1330. {
  1331. name: "",
  1332. value: [],
  1333. },
  1334. ],
  1335. };
  1336. if (res.data.data) {
  1337. res.data.data.forEach((ele) => {
  1338. windResourcesData.indicator.push(ele.name);
  1339. windResourcesData.data[0].value.push(ele.data1);
  1340. });
  1341. }
  1342. that.windResourcesData = windResourcesData;
  1343. },
  1344. });
  1345. },
  1346. // tab3,tab4 - 获取玫瑰图
  1347. getMgt(subUrl, data, dataKey, logFlg) {
  1348. let that = this;
  1349. that.API.requestData({
  1350. method: "POST",
  1351. subUrl,
  1352. data,
  1353. success(res) {
  1354. that[dataKey.split("Data")[0] + "Str"] = res.data.jfpl || "";
  1355. let mgtData = {
  1356. indicator: [],
  1357. data: [
  1358. {
  1359. name: "",
  1360. value: [],
  1361. },
  1362. ],
  1363. };
  1364. if (res.data.data) {
  1365. mgtData.indicator = [
  1366. "北",
  1367. "北北西",
  1368. "北西",
  1369. "西北西",
  1370. "西",
  1371. "西南西",
  1372. "南西",
  1373. "南南西",
  1374. "南",
  1375. "南南东",
  1376. "东南",
  1377. "东南东",
  1378. "东",
  1379. "东北东",
  1380. "北东",
  1381. "北北东",
  1382. ];
  1383. res.data.data.forEach((ele) => {
  1384. // mgtData.indicator.push(ele.name);
  1385. mgtData.data[0].value.push(ele.data1);
  1386. });
  1387. }
  1388. mgtData.data[0].value.reverse();
  1389. that[dataKey] = mgtData;
  1390. },
  1391. });
  1392. },
  1393. // tab5 - 获取饼图
  1394. getPieChart(subUrl, type, dataKey) {
  1395. let that = this;
  1396. that.API.requestData({
  1397. method: "POST",
  1398. subUrl,
  1399. data: {
  1400. wtId: that.wtId,
  1401. recorddate: that.recorddate,
  1402. type,
  1403. },
  1404. success(res) {
  1405. let pieChart = [];
  1406. res.data.forEach((ele) => {
  1407. pieChart.push({
  1408. name: ele.name,
  1409. value: ele.value2,
  1410. unit: "(m/s)",
  1411. });
  1412. });
  1413. that[dataKey] = pieChart;
  1414. },
  1415. });
  1416. },
  1417. // 切换tab
  1418. tabSelect(index) {
  1419. this.tabIndex = index;
  1420. this.search();
  1421. },
  1422. // 搜索
  1423. search() {
  1424. if (this.tabIndex === 0) {
  1425. this.getLostChartData();
  1426. this.getPowerChartData();
  1427. this.getWarnData();
  1428. this.getStopData();
  1429. this.getXdData();
  1430. } else if (this.tabIndex === 1) {
  1431. this.getWarnData();
  1432. this.getStopData();
  1433. this.getDayPowerInfo();
  1434. this.getMonthWarnRecord();
  1435. this.getPowerLineChartData();
  1436. this.getWindResources();
  1437. } else if (this.tabIndex === 2) {
  1438. const xhrParam = { wpId: this.wpId, recorddate: this.recorddate };
  1439. this.getMgt("goodness/wprzdfs", xhrParam, "rzdfsData");
  1440. this.getMgt("goodness/wpyzdfs", xhrParam, "yzdfsData");
  1441. this.getMgt("goodness/wpnzdfs", xhrParam, "nzdfsData");
  1442. this.getMgt("goodness/wprfxpl", xhrParam, "rfxplData");
  1443. this.getMgt("goodness/wpyfxpl", xhrParam, "yfxplData");
  1444. this.getMgt("goodness/wpnfxpl", xhrParam, "nfxplData");
  1445. } else if (this.tabIndex === 3) {
  1446. const xhrParam = { wtId: this.wtId, recorddate: this.recorddate };
  1447. this.getMgt("goodness/wtrzdfs", xhrParam, "rzdfsData");
  1448. this.getMgt("goodness/wtyzdfs", xhrParam, "yzdfsData");
  1449. this.getMgt("goodness/wtnzdfs", xhrParam, "nzdfsData");
  1450. this.getMgt("goodness/wtrfxpl", xhrParam, "rfxplData");
  1451. this.getMgt("goodness/wtyfxpl", xhrParam, "yfxplData");
  1452. this.getMgt("goodness/wtnfxpl", xhrParam, "nfxplData");
  1453. } else if (this.tabIndex === 4) {
  1454. this.getPieChart("goodness/pieChart", "1", "dayWindPieData");
  1455. this.getPieChart("goodness/pieChart", "2", "monthWindPieData");
  1456. this.getPieChart("goodness/pieChart", "3", "yearWindPieData");
  1457. this.getPieChart("goodness/pieChart", "4", "dayStopPieData");
  1458. this.getPieChart("goodness/pieChart", "5", "monthStopPieData");
  1459. this.getPieChart("goodness/pieChart", "6", "yearStopPieData");
  1460. }
  1461. },
  1462. },
  1463. created() {
  1464. this.getWpArray();
  1465. this.wpId = this.$route.params.wpId || "";
  1466. this.wtId = this.$route.params.wtId || "";
  1467. },
  1468. };
  1469. </script>
  1470. <style lang="less">
  1471. .dj-1 {
  1472. .action-bar {
  1473. display: flex;
  1474. .selections {
  1475. flex: 1 0 auto;
  1476. display: flex;
  1477. .item {
  1478. flex: 0 0 164px;
  1479. text-align: center;
  1480. height: 33px;
  1481. line-height: 33px;
  1482. margin-right: 8px;
  1483. color: @font-color;
  1484. font-size: @fontsize-s;
  1485. background: fade(@gray, 20);
  1486. border: 1px solid fade(@gray, 20);
  1487. &:hover,
  1488. &.active {
  1489. background: fade(@green, 20);
  1490. border: 1px solid @green;
  1491. color: @green;
  1492. cursor: pointer;
  1493. }
  1494. }
  1495. }
  1496. }
  1497. .outline {
  1498. outline: 1px solid fade(@gray, 50);
  1499. }
  1500. .com-panel .panel-header {
  1501. margin-bottom: 0px;
  1502. }
  1503. .table-info {
  1504. display: flex;
  1505. .table-panel {
  1506. flex: 1 0 calc(100% / 3 - 8px);
  1507. outline: 1px solid fade(@gray, 50);
  1508. height: 100%;
  1509. & + .table-panel {
  1510. margin-left: 8px;
  1511. }
  1512. }
  1513. }
  1514. .tab-2 {
  1515. .power-info {
  1516. display: flex;
  1517. flex-wrap: wrap;
  1518. justify-content: space-between;
  1519. &.month-3 {
  1520. .info-item {
  1521. flex: 0 0 calc(100% / 3 - 6px);
  1522. &:nth-child(-n + 5) {
  1523. margin-top: 8px;
  1524. }
  1525. &:nth-child(-n + 3) {
  1526. margin-top: 0px;
  1527. }
  1528. }
  1529. }
  1530. &.month-2 {
  1531. .info-item {
  1532. flex: 0 0 calc(100% / 2 - 4px);
  1533. &:nth-child(-n + 5) {
  1534. margin-top: 8px;
  1535. }
  1536. &:nth-child(-n + 2) {
  1537. margin-top: 0px;
  1538. }
  1539. }
  1540. }
  1541. .info-item {
  1542. display: flex;
  1543. align-items: center;
  1544. flex: 0 0 calc(100% / 5 - 8px);
  1545. background: fade(@gray, 20);
  1546. height: 4.6296vh;
  1547. line-height: 4.6296vh;
  1548. margin-top: 8px;
  1549. &:nth-child(-n + 5) {
  1550. margin-top: 0px;
  1551. }
  1552. .text {
  1553. font-size: 12px;
  1554. flex: 0 0 110px;
  1555. text-align: right;
  1556. margin-right: 24px;
  1557. color: @gray-l;
  1558. }
  1559. .value {
  1560. font-size: 16px;
  1561. }
  1562. }
  1563. }
  1564. .month-info {
  1565. display: flex;
  1566. .month-info-left {
  1567. flex: 0 0 705px;
  1568. margin-right: 10px;
  1569. }
  1570. .month-info-right {
  1571. flex: 1 0 auto;
  1572. }
  1573. }
  1574. .moon-other {
  1575. flex: 1 0 auto;
  1576. }
  1577. .radar-panel {
  1578. height: 20.5vh;
  1579. .panel-body {
  1580. height: 100%;
  1581. }
  1582. }
  1583. .wind-info {
  1584. display: flex;
  1585. .legend {
  1586. white-space: nowrap;
  1587. font-size: 12px;
  1588. flex: 0 0 80px;
  1589. height: 20px;
  1590. display: flex;
  1591. align-items: center;
  1592. justify-content: center;
  1593. margin-top: 32px;
  1594. margin-bottom: 16px;
  1595. .dot {
  1596. width: 7px;
  1597. height: 7px;
  1598. background: @green;
  1599. display: inline-block;
  1600. margin-right: 8px;
  1601. }
  1602. }
  1603. }
  1604. }
  1605. .tab-3,
  1606. .tab-4 {
  1607. .wind-info {
  1608. position: relative;
  1609. .legend {
  1610. position: absolute;
  1611. left: 32px;
  1612. top: 32px;
  1613. font-size: 12px;
  1614. flex: 0 0 140px;
  1615. height: 20px;
  1616. display: flex;
  1617. align-items: center;
  1618. justify-content: center;
  1619. margin-top: 32px;
  1620. margin-bottom: 16px;
  1621. .dot {
  1622. width: 7px;
  1623. height: 7px;
  1624. background: @green;
  1625. display: inline-block;
  1626. margin-right: 8px;
  1627. }
  1628. }
  1629. }
  1630. }
  1631. .tab-5 {
  1632. .panel-body {
  1633. padding: 16px;
  1634. }
  1635. }
  1636. }
  1637. </style>