dj1.vue 47 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710
  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)', '(m/s)']"
  148. :showLegend="true"
  149. />
  150. </panel>
  151. <panel
  152. :title="'日发电量信息'"
  153. class="mg-b-16 outline"
  154. :showLine="false"
  155. >
  156. <div class="power-info">
  157. <div class="info-item">
  158. <div class="text">发电量:</div>
  159. <div class="value green">{{ dayPowerInfo.c1 }}</div>
  160. </div>
  161. <div class="info-item">
  162. <div class="text">理论发电量:</div>
  163. <div class="value green">{{ dayPowerInfo.c4 }}</div>
  164. </div>
  165. <div class="info-item">
  166. <div class="text">平均功率:</div>
  167. <div class="value green">{{ dayPowerInfo.c7 }}</div>
  168. </div>
  169. <div class="info-item">
  170. <div class="text">平均风速:</div>
  171. <div class="value green">{{ dayPowerInfo.c10 }}</div>
  172. </div>
  173. <div class="info-item">
  174. <div class="text">拟合优度:</div>
  175. <div class="value green">{{ dayPowerInfo.c55 }}</div>
  176. </div>
  177. <div class="info-item">
  178. <div class="text">运行小时:</div>
  179. <div class="value green">{{ dayPowerInfo.c13 }}</div>
  180. </div>
  181. <div class="info-item">
  182. <div class="text">停机小时:</div>
  183. <div class="value green">{{ dayPowerInfo.c16 }}</div>
  184. </div>
  185. <div class="info-item">
  186. <div class="text">故障小时:</div>
  187. <div class="value green">{{ dayPowerInfo.c19 }}</div>
  188. </div>
  189. <div class="info-item">
  190. <div class="text">维护小时:</div>
  191. <div class="value green">{{ dayPowerInfo.c22 }}</div>
  192. </div>
  193. <div class="info-item">
  194. <div class="text">中断小时:</div>
  195. <div class="value green">{{ dayPowerInfo.c25 }}</div>
  196. </div>
  197. <div class="info-item">
  198. <div class="text">有效风时数:</div>
  199. <div class="value green">{{ dayPowerInfo.c28 }}</div>
  200. </div>
  201. <div class="info-item">
  202. <div class="text">损失电量:</div>
  203. <div class="value green">{{ dayPowerInfo.c31 }}</div>
  204. </div>
  205. <div class="info-item">
  206. <div class="text">报警次数:</div>
  207. <div class="value green">{{ dayPowerInfo.c34 }}</div>
  208. </div>
  209. <div class="info-item">
  210. <div class="text">停机次数:</div>
  211. <div class="value green">{{ dayPowerInfo.c37 }}</div>
  212. </div>
  213. <div class="info-item">
  214. <div class="text">不饱和次数:</div>
  215. <div class="value green">{{ dayPowerInfo.c40 }}</div>
  216. </div>
  217. <div class="info-item">
  218. <div class="text">设备可利用率:</div>
  219. <div class="value green">{{ dayPowerInfo.c43 }}</div>
  220. </div>
  221. <div class="info-item">
  222. <div class="text">实际/保证偏差率:</div>
  223. <div class="value green">{{ dayPowerInfo.c58 }}</div>
  224. </div>
  225. <div class="info-item">
  226. <div class="text">平均温度:</div>
  227. <div class="value green">{{ dayPowerInfo.c46 }}</div>
  228. </div>
  229. <div class="info-item">
  230. <div class="text">平均湿度:</div>
  231. <div class="value green">{{ dayPowerInfo.c49 }}</div>
  232. </div>
  233. <div class="info-item">
  234. <div class="text">平均压强:</div>
  235. <div class="value green">{{ dayPowerInfo.c52 }}</div>
  236. </div>
  237. </div>
  238. </panel>
  239. <div class="month-info">
  240. <div class="month-info-left">
  241. <panel
  242. :title="'月发电量信息'"
  243. class="mg-b-16 outline"
  244. :showLine="false"
  245. >
  246. <div class="power-info month-3">
  247. <div class="info-item">
  248. <div class="text">月发电量:</div>
  249. <div class="value green">{{ dayPowerInfo.c2 }}</div>
  250. </div>
  251. <div class="info-item">
  252. <div class="text">月理论发电量:</div>
  253. <div class="value green">{{ dayPowerInfo.c5 }}</div>
  254. </div>
  255. <div class="info-item">
  256. <div class="text">月平均功率:</div>
  257. <div class="value green">{{ dayPowerInfo.c8 }}</div>
  258. </div>
  259. <div class="info-item">
  260. <div class="text">月平均风速:</div>
  261. <div class="value green">{{ dayPowerInfo.c11 }}</div>
  262. </div>
  263. <div class="info-item">
  264. <div class="text">月拟合优度:</div>
  265. <div class="value green">{{ dayPowerInfo.c56 }}</div>
  266. </div>
  267. <div class="info-item">
  268. <div class="text">月运行小时:</div>
  269. <div class="value green">{{ dayPowerInfo.c14 }}</div>
  270. </div>
  271. <div class="info-item">
  272. <div class="text">月停机小时:</div>
  273. <div class="value green">{{ dayPowerInfo.c17 }}</div>
  274. </div>
  275. <div class="info-item">
  276. <div class="text">月故障小时:</div>
  277. <div class="value green">{{ dayPowerInfo.c20 }}</div>
  278. </div>
  279. <div class="info-item">
  280. <div class="text">月维护小时:</div>
  281. <div class="value green">{{ dayPowerInfo.c23 }}</div>
  282. </div>
  283. <div class="info-item">
  284. <div class="text">月中断小时:</div>
  285. <div class="value green">{{ dayPowerInfo.c26 }}</div>
  286. </div>
  287. <div class="info-item">
  288. <div class="text">月有效风时数:</div>
  289. <div class="value green">{{ dayPowerInfo.c29 }}</div>
  290. </div>
  291. <div class="info-item">
  292. <div class="text">月报警次数:</div>
  293. <div class="value green">{{ dayPowerInfo.c35 }}</div>
  294. </div>
  295. <div class="info-item">
  296. <div class="text">月停机次数:</div>
  297. <div class="value green">{{ dayPowerInfo.c38 }}</div>
  298. </div>
  299. <div class="info-item">
  300. <div class="text">月实际/保证:</div>
  301. <div class="value green">{{ dayPowerInfo.c59 }}</div>
  302. </div>
  303. <div class="info-item">
  304. <div class="text">设备可利用率:</div>
  305. <div class="value green">{{ dayPowerInfo.c44 }}</div>
  306. </div>
  307. </div>
  308. </panel>
  309. </div>
  310. <div class="month-info-right">
  311. <panel
  312. :title="'年发电量信息'"
  313. class="mg-b-16 outline"
  314. :showLine="false"
  315. >
  316. <div class="power-info month-2">
  317. <div class="info-item">
  318. <div class="text">年发电量:</div>
  319. <div class="value green">{{ dayPowerInfo.c3 }}</div>
  320. </div>
  321. <div class="info-item">
  322. <div class="text">年拟合优度:</div>
  323. <div class="value green">{{ dayPowerInfo.c57 }}</div>
  324. </div>
  325. </div>
  326. </panel>
  327. <panel
  328. :title="'风资源'"
  329. class="radar-panel"
  330. :icon="'svg-wind-site'"
  331. >
  332. <div class="wind-info">
  333. <div class="legend mg-r-16">
  334. <span class="dot"></span>
  335. <span>{{ jfplStr }}</span>
  336. </div>
  337. <direction-radar-chart
  338. :width="'80%'"
  339. :height="'180px'"
  340. :value="windResourcesData"
  341. :showLegend="true"
  342. />
  343. </div>
  344. </panel>
  345. </div>
  346. </div>
  347. </el-col>
  348. <el-col :span="9">
  349. <panel
  350. class="table-panel outline mg-b-16"
  351. :title="'当日报警记录'"
  352. :showLine="false"
  353. >
  354. <Table :data="warnTableData" :canScroll="true" :height="'23vh'" />
  355. </panel>
  356. <panel
  357. class="table-panel outline mg-b-16"
  358. :title="'当日故障记录'"
  359. :showLine="false"
  360. >
  361. <Table :data="stopTableData" :canScroll="true" :height="'23vh'" />
  362. </panel>
  363. <panel
  364. class="table-panel outline"
  365. :title="'当月报警排行'"
  366. :showLine="false"
  367. >
  368. <Table
  369. :data="monthWarnRecordData"
  370. :canScroll="true"
  371. :height="'23vh'"
  372. />
  373. </panel>
  374. </el-col>
  375. </el-row>
  376. </div>
  377. <!-- tab3 -->
  378. <div v-if="tabIndex == 2" class="tab-3">
  379. <el-row>
  380. <el-col :span="8">
  381. <panel
  382. :title="'日最大风速'"
  383. class="radar-panel"
  384. :icon="'svg-wind-site'"
  385. >
  386. <div class="wind-info">
  387. <div class="legend mg-r-16">
  388. <span class="dot"></span>
  389. <span>{{ rzdfsStr }}</span>
  390. </div>
  391. <radar-chart
  392. :width="'100%'"
  393. :height="'350px'"
  394. :value="rzdfsData"
  395. />
  396. </div>
  397. </panel>
  398. </el-col>
  399. <el-col :span="8">
  400. <panel
  401. :title="'月最大风速'"
  402. class="radar-panel"
  403. :icon="'svg-wind-site'"
  404. >
  405. <div class="wind-info">
  406. <div class="legend mg-r-16">
  407. <span class="dot"></span>
  408. <span>{{ yzdfsStr }}</span>
  409. </div>
  410. <radar-chart
  411. :width="'100%'"
  412. :height="'350px'"
  413. :value="yzdfsData"
  414. />
  415. </div>
  416. </panel>
  417. </el-col>
  418. <el-col :span="8">
  419. <panel
  420. :title="'年最大风速'"
  421. class="radar-panel"
  422. :icon="'svg-wind-site'"
  423. >
  424. <div class="wind-info">
  425. <div class="legend mg-r-16">
  426. <span class="dot"></span>
  427. <span>{{ nzdfsStr }}</span>
  428. </div>
  429. <radar-chart
  430. :width="'100%'"
  431. :height="'350px'"
  432. :value="nzdfsData"
  433. />
  434. </div>
  435. </panel>
  436. </el-col>
  437. </el-row>
  438. <el-row>
  439. <el-col :span="8">
  440. <panel
  441. :title="'日风向频率'"
  442. class="radar-panel"
  443. :icon="'svg-wind-site'"
  444. >
  445. <div class="wind-info">
  446. <div class="legend mg-r-16">
  447. <span class="dot"></span>
  448. <span>{{ rfxplStr }}</span>
  449. </div>
  450. <radar-chart
  451. :width="'100%'"
  452. :height="'350px'"
  453. :value="rfxplData"
  454. />
  455. </div>
  456. </panel>
  457. </el-col>
  458. <el-col :span="8">
  459. <panel
  460. :title="'月风向频率'"
  461. class="radar-panel"
  462. :icon="'svg-wind-site'"
  463. >
  464. <div class="wind-info">
  465. <div class="legend mg-r-16">
  466. <span class="dot"></span>
  467. <span>{{ yfxplStr }}</span>
  468. </div>
  469. <radar-chart
  470. :width="'100%'"
  471. :height="'350px'"
  472. :value="yfxplData"
  473. />
  474. </div>
  475. </panel>
  476. </el-col>
  477. <el-col :span="8">
  478. <panel
  479. :title="'年风向频率'"
  480. class="radar-panel"
  481. :icon="'svg-wind-site'"
  482. >
  483. <div class="wind-info">
  484. <div class="legend mg-r-16">
  485. <span class="dot"></span>
  486. <span>{{ nfxplStr }}</span>
  487. </div>
  488. <radar-chart
  489. :width="'100%'"
  490. :height="'350px'"
  491. :value="nfxplData"
  492. />
  493. </div>
  494. </panel>
  495. </el-col>
  496. </el-row>
  497. </div>
  498. <!-- tab4 -->
  499. <div v-if="tabIndex == 3" class="tab-4">
  500. <el-row>
  501. <el-col :span="8">
  502. <panel
  503. :title="'日最大风速'"
  504. class="radar-panel"
  505. :icon="'svg-wind-site'"
  506. >
  507. <div class="wind-info">
  508. <div class="legend mg-r-16">
  509. <span class="dot"></span>
  510. <span>{{ rzdfsStr }}</span>
  511. </div>
  512. <radar-chart
  513. :width="'100%'"
  514. :height="'350px'"
  515. :value="zzrzdfsData"
  516. />
  517. </div>
  518. </panel>
  519. </el-col>
  520. <el-col :span="8">
  521. <panel
  522. :title="'月最大风速'"
  523. class="radar-panel"
  524. :icon="'svg-wind-site'"
  525. >
  526. <div class="wind-info">
  527. <div class="legend mg-r-16">
  528. <span class="dot"></span>
  529. <span>{{ yzdfsStr }}</span>
  530. </div>
  531. <radar-chart
  532. :width="'100%'"
  533. :height="'350px'"
  534. :value="yzdfsData"
  535. />
  536. </div>
  537. </panel>
  538. </el-col>
  539. <el-col :span="8">
  540. <panel
  541. :title="'年最大风速'"
  542. class="radar-panel"
  543. :icon="'svg-wind-site'"
  544. >
  545. <div class="wind-info">
  546. <div class="legend mg-r-16">
  547. <span class="dot"></span>
  548. <span>{{ nzdfsStr }}</span>
  549. </div>
  550. <radar-chart
  551. :width="'100%'"
  552. :height="'350px'"
  553. :value="nzdfsData"
  554. />
  555. </div>
  556. </panel>
  557. </el-col>
  558. </el-row>
  559. <el-row>
  560. <el-col :span="8">
  561. <panel
  562. :title="'日风向频率'"
  563. class="radar-panel"
  564. :icon="'svg-wind-site'"
  565. >
  566. <div class="wind-info">
  567. <div class="legend mg-r-16">
  568. <span class="dot"></span>
  569. <span>{{ rfxplStr }}</span>
  570. </div>
  571. <radar-chart
  572. :width="'100%'"
  573. :height="'350px'"
  574. :value="rfxplData"
  575. />
  576. </div>
  577. </panel>
  578. </el-col>
  579. <el-col :span="8">
  580. <panel
  581. :title="'月风向频率'"
  582. class="radar-panel"
  583. :icon="'svg-wind-site'"
  584. >
  585. <div class="wind-info">
  586. <div class="legend mg-r-16">
  587. <span class="dot"></span>
  588. <span>{{ yfxplStr }}</span>
  589. </div>
  590. <radar-chart
  591. :width="'100%'"
  592. :height="'350px'"
  593. :value="yfxplData"
  594. />
  595. </div>
  596. </panel>
  597. </el-col>
  598. <el-col :span="8">
  599. <panel
  600. :title="'年风向频率'"
  601. class="radar-panel"
  602. :icon="'svg-wind-site'"
  603. >
  604. <div class="wind-info">
  605. <div class="legend mg-r-16">
  606. <span class="dot"></span>
  607. <span>{{ nfxplStr }}</span>
  608. </div>
  609. <radar-chart
  610. :width="'100%'"
  611. :height="'350px'"
  612. :value="nfxplData"
  613. />
  614. </div>
  615. </panel>
  616. </el-col>
  617. </el-row>
  618. </div>
  619. <!-- tab5 -->
  620. <div v-if="tabIndex == 4" class="tab-5">
  621. <el-row>
  622. <el-col :span="8">
  623. <panel title="日小风切入">
  624. <dual-pie-chart
  625. height="350px"
  626. :innerData="dayWindPieData"
  627. :outerData="dayWindPieData"
  628. />
  629. </panel>
  630. </el-col>
  631. <el-col :span="8">
  632. <panel title="月小风切入">
  633. <dual-pie-chart
  634. height="350px"
  635. :innerData="monthWindPieData"
  636. :outerData="monthWindPieData"
  637. />
  638. </panel>
  639. </el-col>
  640. <el-col :span="8">
  641. <panel title="年小风切入">
  642. <dual-pie-chart
  643. height="350px"
  644. :innerData="yearWindPieData"
  645. :outerData="myearWindPieData"
  646. />
  647. </panel>
  648. </el-col>
  649. </el-row>
  650. <el-row>
  651. <el-col :span="8">
  652. <panel title="日小风停机">
  653. <dual-pie-chart
  654. height="350px"
  655. :innerData="dayStopPieData"
  656. :outerData="dayStopPieData"
  657. />
  658. </panel>
  659. </el-col>
  660. <el-col :span="8">
  661. <panel title="月小风停机">
  662. <dual-pie-chart
  663. height="350px"
  664. :innerData="monthStopPieData"
  665. :outerData="monthStopPieData"
  666. />
  667. </panel>
  668. </el-col>
  669. <el-col :span="8">
  670. <panel title="年小风停机">
  671. <dual-pie-chart
  672. height="350px"
  673. :innerData="yearStopPieData"
  674. :outerData="yearStopPieData"
  675. />
  676. </panel>
  677. </el-col>
  678. </el-row>
  679. </div>
  680. <el-dialog
  681. title="区域详情查看"
  682. v-model="dialogShow"
  683. width="85%"
  684. top="10vh"
  685. custom-class="modal"
  686. :close-on-click-modal="true"
  687. >
  688. <el-form ref="form" label-width="100px" inline>
  689. <el-form-item style="width: 32%" label="开始时间:">{{
  690. form.ks
  691. }}</el-form-item>
  692. <el-form-item style="width: 32%" label="结束时间:">{{
  693. form.js
  694. }}</el-form-item>
  695. <el-form-item style="width: 32%" label="时长:"
  696. >{{ form.sc }}(小时)</el-form-item
  697. >
  698. <el-form-item style="width: 32%" label="风速:"
  699. >{{ form.fs }}(m/s)</el-form-item
  700. >
  701. <el-form-item style="width: 32%" label="功率:"
  702. >{{ form.gl }}(KW)</el-form-item
  703. >
  704. <el-form-item style="width: 32%" label="理论发电量:"
  705. >{{ form.llfdl }}(KWh)</el-form-item
  706. >
  707. <el-form-item style="width: 32%" label="发电量:"
  708. >{{ form.fdl }}(KWh)</el-form-item
  709. >
  710. <el-form-item style="width: 32%" label="损失电量:"
  711. >{{ form.ssdl }}(KWh)</el-form-item
  712. >
  713. <el-form-item style="width: 32%" label="风机状态:">{{
  714. form.fjzt
  715. }}</el-form-item>
  716. </el-form>
  717. </el-dialog>
  718. </div>
  719. </template>
  720. <script>
  721. import AreaLineChart from "../../components/chart/combination/area-line-chart.vue";
  722. // import MultipleBarLineChart1 from "./multiple-bar-line-chart.vue";
  723. import MultipleBarLineChart from "../../components/chart/combination/multiple-bar-line-chart.vue";
  724. import MarkerLineChart from "../../components/chart/line/multiple-line-chart.vue";
  725. import DualPieChart from "../../components/chart/pie/dual-pie-chart.vue";
  726. import DirectionRadarChart from "../../components/chart/radar/direction-radar-chart.vue";
  727. import RadarChart from "../../components/chart/radar/radar-chart.vue";
  728. import panel from "../../components/coms/panel/panel.vue";
  729. import Table from "../../components/coms/table/table.vue";
  730. export default {
  731. components: {
  732. panel,
  733. AreaLineChart,
  734. // MultipleBarLineChart1,
  735. MultipleBarLineChart,
  736. Table,
  737. MarkerLineChart,
  738. DirectionRadarChart,
  739. DualPieChart,
  740. RadarChart,
  741. },
  742. setup() {},
  743. data() {
  744. return {
  745. tabIndex: 0,
  746. tableData: {
  747. column: [
  748. {
  749. name: "风机",
  750. field: "name",
  751. is_num: false,
  752. is_light: false,
  753. },
  754. {
  755. name: "描述",
  756. field: "desc",
  757. is_num: false,
  758. is_light: false,
  759. },
  760. {
  761. name: "报警时间",
  762. field: "date",
  763. is_num: false,
  764. is_light: false,
  765. },
  766. ],
  767. data: [],
  768. },
  769. wpArray: [],
  770. wpId: "",
  771. wtArray: [],
  772. wtId: "",
  773. recorddate: new Date(new Date().getTime() - 3600 * 1000 * 24).formatDate(
  774. "yyyy-MM-dd"
  775. ),
  776. lostChartData: [
  777. {
  778. text: "",
  779. value: [],
  780. },
  781. ],
  782. lostChartUnit: [],
  783. LostChartBgColorData: [
  784. {
  785. name: "",
  786. },
  787. ],
  788. powerChartData: [
  789. {
  790. title: "",
  791. yAxisIndex: 0,
  792. value: [],
  793. },
  794. ],
  795. powerChartLineData: {
  796. name: "",
  797. unit: "",
  798. data: [],
  799. },
  800. warnTableData: {
  801. column: [
  802. {
  803. name: "风机",
  804. field: "windturbineid",
  805. is_num: false,
  806. is_light: false,
  807. },
  808. {
  809. name: "描述",
  810. field: "warnDesc",
  811. is_num: false,
  812. is_light: false,
  813. },
  814. {
  815. name: "报警时间",
  816. field: "warningtime",
  817. is_num: false,
  818. is_light: false,
  819. },
  820. ],
  821. data: [],
  822. },
  823. stopTableData: {
  824. column: [
  825. {
  826. name: "风机",
  827. field: "windTurbineId",
  828. is_num: false,
  829. is_light: false,
  830. },
  831. {
  832. name: "停机时间",
  833. field: "stopTime",
  834. is_num: false,
  835. is_light: false,
  836. },
  837. {
  838. name: "恢复时间",
  839. field: "starttime",
  840. is_num: false,
  841. is_light: false,
  842. },
  843. ],
  844. data: [],
  845. },
  846. xdTableData: {
  847. column: [
  848. {
  849. name: "风机",
  850. field: "windturbineid",
  851. is_num: false,
  852. is_light: false,
  853. },
  854. {
  855. name: "停机时间",
  856. field: "stoptime",
  857. is_num: false,
  858. is_light: false,
  859. },
  860. {
  861. name: "恢复时间",
  862. field: "starttime",
  863. is_num: false,
  864. is_light: false,
  865. },
  866. {
  867. name: "损失电量",
  868. field: "losspower",
  869. is_num: false,
  870. is_light: false,
  871. },
  872. {
  873. name: "限电时长",
  874. field: "stophours",
  875. is_num: false,
  876. is_light: false,
  877. },
  878. ],
  879. data: [],
  880. },
  881. powerLineChartData: [
  882. {
  883. title: "",
  884. yAxisIndex: 0,
  885. value: [],
  886. },
  887. ],
  888. dayPowerInfo: {},
  889. monthWarnRecordData: {
  890. column: [
  891. {
  892. name: "名字",
  893. field: "name",
  894. is_num: false,
  895. is_light: false,
  896. },
  897. {
  898. name: "次数",
  899. field: "frequency",
  900. is_num: true,
  901. is_light: false,
  902. },
  903. ],
  904. data: [],
  905. },
  906. jfplStr: "",
  907. windResourcesData: {
  908. indicator: ["N0", "N1", "N2", "N3", "N4", "N5"],
  909. data: [
  910. {
  911. value: [44200, 14200, 20000, 35000, 50000, 38000],
  912. name: "",
  913. },
  914. ],
  915. },
  916. rzdfsStr: "",
  917. rzdfsData: {
  918. indicator: ["N0", "N1", "N2", "N3", "N4", "N5"],
  919. data: [
  920. {
  921. value: [44200, 14200, 20000, 35000, 50000, 38000],
  922. name: "",
  923. },
  924. ],
  925. },
  926. yzdfsStr: "",
  927. yzdfsData: {
  928. indicator: ["N0", "N1", "N2", "N3", "N4", "N5"],
  929. data: [
  930. {
  931. value: [44200, 14200, 20000, 35000, 50000, 38000],
  932. name: "",
  933. },
  934. ],
  935. },
  936. nzdfsStr: "",
  937. nzdfsData: {
  938. indicator: ["N0", "N1", "N2", "N3", "N4", "N5"],
  939. data: [
  940. {
  941. value: [44200, 14200, 20000, 35000, 50000, 38000],
  942. name: "",
  943. },
  944. ],
  945. },
  946. rfxplStr: "",
  947. rfxplData: {
  948. indicator: ["N0", "N1", "N2", "N3", "N4", "N5"],
  949. data: [
  950. {
  951. value: [44200, 14200, 20000, 35000, 50000, 38000],
  952. name: "",
  953. },
  954. ],
  955. },
  956. yfxplStr: "",
  957. yfxplData: {
  958. indicator: ["N0", "N1", "N2", "N3", "N4", "N5"],
  959. data: [
  960. {
  961. value: [44200, 14200, 20000, 35000, 50000, 38000],
  962. name: "",
  963. },
  964. ],
  965. },
  966. nfxplStr: "",
  967. nfxplData: {
  968. indicator: ["N0", "N1", "N2", "N3", "N4", "N5"],
  969. data: [
  970. {
  971. value: [44200, 14200, 20000, 35000, 50000, 38000],
  972. name: "",
  973. },
  974. ],
  975. },
  976. dayWindPieData: [],
  977. monthWindPieData: [],
  978. yearWindPieData: [],
  979. dayStopPieData: [],
  980. monthStopPieData: [],
  981. yearStopPieData: [],
  982. dialogShow: false,
  983. form: {},
  984. };
  985. },
  986. methods: {
  987. // 获取风场
  988. getWpArray() {
  989. let that = this;
  990. that.API.requestData({
  991. method: "GET",
  992. subUrl: "powercompare/windfarmAjax",
  993. success(res) {
  994. that.wpArray = res.data;
  995. that.wpId = that.wpId || res.data[0].id;
  996. that.getWtArray(that.wpId, true);
  997. },
  998. });
  999. },
  1000. // 获取风机
  1001. getWtArray(wpId, keepRequest) {
  1002. let that = this;
  1003. if (wpId) {
  1004. that.API.requestData({
  1005. method: "GET",
  1006. subUrl: "powercompare/windturbineAjax",
  1007. data: {
  1008. wpId,
  1009. },
  1010. success(res) {
  1011. that.wtArray = res.data;
  1012. const findRes = res.data.some((ele) => {
  1013. return ele.id === that.wtId;
  1014. });
  1015. that.wtId = findRes ? that.wtId : res.data[0].id;
  1016. if (keepRequest) {
  1017. that.search();
  1018. }
  1019. },
  1020. });
  1021. } else {
  1022. that.wtArray = [];
  1023. that.wtId = "";
  1024. }
  1025. },
  1026. // tab1 - 获取损失电量分析图表数据
  1027. getLostChartData() {
  1028. let that = this;
  1029. that.API.requestData({
  1030. method: "POST",
  1031. subUrl: "goodness/findWtRealPowerChar",
  1032. data: {
  1033. wtId: that.wtId,
  1034. recorddate: that.recorddate,
  1035. },
  1036. success(res) {
  1037. console.log('resLostChart:',res)
  1038. const keyArray = ["value1", "value2", "value3"];
  1039. let lostChartData = [
  1040. {
  1041. text: "实发功率",
  1042. value: [
  1043. {
  1044. text: "1",
  1045. value: 1,
  1046. },
  1047. ],
  1048. },
  1049. {
  1050. text: "保证功率",
  1051. value: [],
  1052. },
  1053. {
  1054. text: "风速",
  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("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("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. console.log('windRes:',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. console.log('resMGT:',res)
  1356. that[dataKey.split("Data")[0] + "Str"] = res.data.jfpl || "";
  1357. let mgtData = {
  1358. indicator: [],
  1359. data: [
  1360. {
  1361. name: "",
  1362. value: [],
  1363. },
  1364. ],
  1365. };
  1366. if (res.data.data) {
  1367. res.data.data.forEach((ele) => {
  1368. mgtData.indicator.push(ele.name);
  1369. mgtData.data[0].value.push(ele.data1);
  1370. });
  1371. }
  1372. that[dataKey] = mgtData;
  1373. },
  1374. });
  1375. },
  1376. // tab5 - 获取饼图
  1377. getPieChart(subUrl, type, dataKey) {
  1378. let that = this;
  1379. that.API.requestData({
  1380. method: "POST",
  1381. subUrl,
  1382. data: {
  1383. wtId: that.wtId,
  1384. recorddate: that.recorddate,
  1385. type,
  1386. },
  1387. success(res) {
  1388. let pieChart = [];
  1389. res.data.forEach((ele) => {
  1390. pieChart.push({
  1391. name: ele.name,
  1392. value: ele.value2,
  1393. unit: "(m/s)",
  1394. });
  1395. });
  1396. that[dataKey] = pieChart;
  1397. },
  1398. });
  1399. },
  1400. // 切换tab
  1401. tabSelect(index) {
  1402. this.tabIndex = index;
  1403. this.search();
  1404. },
  1405. // 搜索
  1406. search() {
  1407. if (this.tabIndex === 0) {
  1408. this.getLostChartData();
  1409. this.getPowerChartData();
  1410. this.getWarnData();
  1411. this.getStopData();
  1412. this.getXdData();
  1413. } else if (this.tabIndex === 1) {
  1414. this.getWarnData();
  1415. this.getStopData();
  1416. this.getDayPowerInfo();
  1417. this.getMonthWarnRecord();
  1418. this.getPowerLineChartData();
  1419. this.getWindResources();
  1420. } else if (this.tabIndex === 2) {
  1421. const xhrParam = { wpId: this.wpId, recorddate: this.recorddate };
  1422. this.getMgt("goodness/wprzdfs", xhrParam, "rzdfsData");
  1423. this.getMgt("goodness/wpyzdfs", xhrParam, "yzdfsData");
  1424. this.getMgt("goodness/wpnzdfs", xhrParam, "nzdfsData");
  1425. this.getMgt("goodness/wprfxpl", xhrParam, "rfxplData");
  1426. this.getMgt("goodness/wpyfxpl", xhrParam, "yfxplData");
  1427. this.getMgt("goodness/wpnfxpl", xhrParam, "nfxplData");
  1428. } else if (this.tabIndex === 3) {
  1429. const xhrParam = { wtId: this.wtId, recorddate: this.recorddate };
  1430. this.getMgt("goodness/wtrzdfs", xhrParam, "rzdfsData");
  1431. this.getMgt("goodness/wtyzdfs", xhrParam, "yzdfsData");
  1432. this.getMgt("goodness/wtnzdfs", xhrParam, "nzdfsData");
  1433. this.getMgt("goodness/wtrfxpl", xhrParam, "rfxplData");
  1434. this.getMgt("goodness/wtyfxpl", xhrParam, "yfxplData");
  1435. this.getMgt("goodness/wtnfxpl", xhrParam, "nfxplData");
  1436. } else if (this.tabIndex === 4) {
  1437. this.getPieChart("goodness/pieChart", "1", "dayWindPieData");
  1438. this.getPieChart("goodness/pieChart", "2", "monthWindPieData");
  1439. this.getPieChart("goodness/pieChart", "3", "yearWindPieData");
  1440. this.getPieChart("goodness/pieChart", "4", "dayStopPieData");
  1441. this.getPieChart("goodness/pieChart", "5", "monthStopPieData");
  1442. this.getPieChart("goodness/pieChart", "6", "yearStopPieData");
  1443. }
  1444. },
  1445. },
  1446. created() {
  1447. this.getWpArray();
  1448. this.wpId = this.$route.params.wpId || "";
  1449. this.wtId = this.$route.params.wtId || "";
  1450. },
  1451. };
  1452. </script>
  1453. <style lang="less">
  1454. .dj-1 {
  1455. .action-bar {
  1456. display: flex;
  1457. .selections {
  1458. flex: 1 0 auto;
  1459. display: flex;
  1460. .item {
  1461. flex: 0 0 164px;
  1462. text-align: center;
  1463. height: 33px;
  1464. line-height: 33px;
  1465. margin-right: 8px;
  1466. color: @font-color;
  1467. font-size: @fontsize-s;
  1468. background: fade(@gray, 20);
  1469. border: 1px solid fade(@gray, 20);
  1470. &:hover,
  1471. &.active {
  1472. background: fade(@green, 20);
  1473. border: 1px solid @green;
  1474. color: @green;
  1475. cursor: pointer;
  1476. }
  1477. }
  1478. }
  1479. }
  1480. .outline {
  1481. outline: 1px solid fade(@gray, 50);
  1482. }
  1483. .com-panel .panel-header {
  1484. margin-bottom: 0px;
  1485. }
  1486. .table-info {
  1487. display: flex;
  1488. .table-panel {
  1489. flex: 1 0 calc(100% / 3 - 8px);
  1490. outline: 1px solid fade(@gray, 50);
  1491. height: 100%;
  1492. & + .table-panel {
  1493. margin-left: 8px;
  1494. }
  1495. }
  1496. }
  1497. .tab-2 {
  1498. .power-info {
  1499. display: flex;
  1500. flex-wrap: wrap;
  1501. justify-content: space-between;
  1502. &.month-3 {
  1503. .info-item {
  1504. flex: 0 0 calc(100% / 3 - 6px);
  1505. &:nth-child(-n + 5) {
  1506. margin-top: 8px;
  1507. }
  1508. &:nth-child(-n + 3) {
  1509. margin-top: 0px;
  1510. }
  1511. }
  1512. }
  1513. &.month-2 {
  1514. .info-item {
  1515. flex: 0 0 calc(100% / 2 - 4px);
  1516. &:nth-child(-n + 5) {
  1517. margin-top: 8px;
  1518. }
  1519. &:nth-child(-n + 2) {
  1520. margin-top: 0px;
  1521. }
  1522. }
  1523. }
  1524. .info-item {
  1525. display: flex;
  1526. align-items: center;
  1527. flex: 0 0 calc(100% / 5 - 8px);
  1528. background: fade(@gray, 20);
  1529. height: 4.6296vh;
  1530. line-height: 4.6296vh;
  1531. margin-top: 8px;
  1532. &:nth-child(-n + 5) {
  1533. margin-top: 0px;
  1534. }
  1535. .text {
  1536. font-size: 12px;
  1537. flex: 0 0 110px;
  1538. text-align: right;
  1539. margin-right: 24px;
  1540. color: @gray-l;
  1541. }
  1542. .value {
  1543. font-size: 16px;
  1544. }
  1545. }
  1546. }
  1547. .month-info {
  1548. display: flex;
  1549. .month-info-left {
  1550. flex: 0 0 705px;
  1551. margin-right: 10px;
  1552. }
  1553. .month-info-right {
  1554. flex: 1 0 auto;
  1555. }
  1556. }
  1557. .moon-other {
  1558. flex: 1 0 auto;
  1559. }
  1560. .radar-panel {
  1561. height: 20.5vh;
  1562. .panel-body {
  1563. height: 100%;
  1564. }
  1565. }
  1566. .wind-info {
  1567. display: flex;
  1568. .legend {
  1569. white-space: nowrap;
  1570. font-size: 12px;
  1571. flex: 0 0 80px;
  1572. height: 20px;
  1573. display: flex;
  1574. align-items: center;
  1575. justify-content: center;
  1576. margin-top: 32px;
  1577. margin-bottom: 16px;
  1578. .dot {
  1579. width: 7px;
  1580. height: 7px;
  1581. background: @green;
  1582. display: inline-block;
  1583. margin-right: 8px;
  1584. }
  1585. }
  1586. }
  1587. }
  1588. .tab-3,
  1589. .tab-4 {
  1590. .wind-info {
  1591. position: relative;
  1592. .legend {
  1593. position: absolute;
  1594. left: 32px;
  1595. top: 32px;
  1596. font-size: 12px;
  1597. flex: 0 0 140px;
  1598. height: 20px;
  1599. display: flex;
  1600. align-items: center;
  1601. justify-content: center;
  1602. margin-top: 32px;
  1603. margin-bottom: 16px;
  1604. .dot {
  1605. width: 7px;
  1606. height: 7px;
  1607. background: @green;
  1608. display: inline-block;
  1609. margin-right: 8px;
  1610. }
  1611. }
  1612. }
  1613. }
  1614. .tab-5 {
  1615. .panel-body {
  1616. padding: 16px;
  1617. }
  1618. }
  1619. }
  1620. </style>