index.vue 28 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088
  1. <template>
  2. <div class="health-0">
  3. <el-row style="height: 100%">
  4. <el-col :span="14" class="health-0-left">
  5. <el-row>
  6. <el-col :span="24">
  7. <div class="query mg-b-8">
  8. <div class="query-items">
  9. <div class="query-item">
  10. <div class="lable">风场:</div>
  11. <div class="search-input">
  12. <el-select
  13. v-model="value1"
  14. clearable
  15. placeholder="请选择风场"
  16. popper-class="select"
  17. @change="wpselect"
  18. >
  19. <el-option
  20. v-for="item in options"
  21. :key="item.id"
  22. :label="item.name"
  23. :value="item.id"
  24. >
  25. </el-option>
  26. </el-select>
  27. </div>
  28. </div>
  29. <div class="query-item">
  30. <div class="lable">风机:</div>
  31. <div class="search-input">
  32. <el-select
  33. v-model="value2"
  34. clearable
  35. placeholder="请选择风机"
  36. popper-class="select"
  37. @change="wtselect"
  38. >
  39. <el-option
  40. v-for="item in options1"
  41. :key="item.id"
  42. :label="item.nemCode"
  43. :value="item.id"
  44. >
  45. </el-option>
  46. </el-select>
  47. </div>
  48. </div>
  49. </div>
  50. <!-- <div class="query-actions">
  51. <button class="btn" type="button">
  52. <i class="el-icon-back mg-r-8"></i><span>返回</span>
  53. </button>
  54. </div> -->
  55. </div>
  56. </el-col>
  57. </el-row>
  58. <el-row class="mg-t-16">
  59. <el-col :span="24" class="fan-code-box">
  60. <span class="svg-icon svg-icon-white svg-icon-md mg-l-16 mg-r-16">
  61. <SvgIcon svgid="svg-wind-site"></SvgIcon>
  62. </span>
  63. <div class="fan-code">
  64. <div
  65. :style="`color:${getWpStateColor()}`"
  66. class="fan-code-text font-md green"
  67. >
  68. {{ getWpName(value2) }}
  69. </div>
  70. <div class="fan-code-type">
  71. <div class="fan-code-type-item">
  72. <div class="fan-code-label font-md gray-l">高频:</div>
  73. <!-- <div v-if="" class="fan-code-value font-md green">
  74. {{ stoptypemap && stoptypemap.top1type }}
  75. </div> -->
  76. <el-tooltip
  77. effect="dark"
  78. :content="stoptypemap && stoptypemap.top1type"
  79. placement="top-start"
  80. >
  81. <div class="fan-code-value font-md green">
  82. {{ stoptypemap && stoptypemap.top1type }}
  83. </div>
  84. </el-tooltip>
  85. </div>
  86. <div class="fan-code-type-item">
  87. <div class="fan-code-label font-md gray-l">中频:</div>
  88. <div class="fan-code-value font-md green">
  89. {{ stoptypemap && stoptypemap.top2type }}
  90. </div>
  91. </div>
  92. <div class="fan-code-type-item">
  93. <div class="fan-code-label font-md gray-l">低频:</div>
  94. <div class="fan-code-value font-md green">
  95. {{
  96. stoptypemap &&
  97. (stoptypemap.top3type == "null"
  98. ? "暂无数据"
  99. : stoptypemap.top3type)
  100. }}
  101. </div>
  102. </div>
  103. </div>
  104. <!-- <div
  105. class="fan-code-label font-md gray-l"
  106. style="margin-left: 20px"
  107. >
  108. 高频:
  109. </div>
  110. <el-tooltip
  111. effect="dark"
  112. :content="stoptypemap && stoptypemap.top1type"
  113. placement="top-start"
  114. >
  115. <div class="fan-code-value font-md green">
  116. {{ stoptypemap && stoptypemap.top1type }}
  117. </div>
  118. </el-tooltip> -->
  119. </div>
  120. <!-- <span class="svg-icon svg-icon-white svg-icon-md mg-l-16">
  121. <SvgIcon svgid="svg-wind-site"></SvgIcon>
  122. </span>
  123. <div class="fan-code bg">
  124. <div class="fan-code-label font-md gray-l">风机评分:</div>
  125. </div>
  126. <div class="fan-code">
  127. <div class="fan-code-value nm font-md green">{{stoptypemap && stoptypemap.wtscore}}</div>
  128. </div> -->
  129. <el-button
  130. style="margin-left: 15px"
  131. class="searchColor"
  132. @click="onClickReport()"
  133. >
  134. <i class="el-icon-s-order mg-r-8"></i><span>健康报告</span>
  135. </el-button>
  136. </el-col>
  137. </el-row>
  138. <el-row>
  139. <el-col :span="24" style="text-align: center">
  140. <StandAloneImg
  141. class="sai"
  142. :activeIndex="activeIndex"
  143. @selectSvg="selectSvg"
  144. ></StandAloneImg>
  145. </el-col>
  146. </el-row>
  147. <el-row style="flex: 1">
  148. <el-col :span="6" style="padding-left: 16px">
  149. <img :src="bsxImg" class="bsx" />
  150. <img :src="bsxImg" class="bsx o" />
  151. </el-col>
  152. <el-col :span="6"></el-col>
  153. <el-col :span="6"></el-col>
  154. <el-col :span="6">
  155. <progress-bar
  156. title="风机"
  157. name="风机健康度"
  158. :progress="stoptypemap && stoptypemap.wtscore"
  159. :color="stoptypemap && color('05bb4c')"
  160. ></progress-bar>
  161. </el-col>
  162. <el-col :span="6">
  163. <progress-bar
  164. title="发电机"
  165. name="寿命指数"
  166. :progress="partmap && partmap.fdj.smsyl"
  167. :color="partmap && color(partmap.fdj.jkzt)"
  168. ></progress-bar>
  169. </el-col>
  170. <el-col :span="6">
  171. <progress-bar
  172. title="齿轮箱"
  173. name="寿命指数"
  174. :progress="partmap && partmap.clx.smsyl"
  175. :color="partmap && color(partmap.clx.jkzt)"
  176. ></progress-bar>
  177. </el-col>
  178. <el-col :span="6">
  179. <progress-bar
  180. title="主轴"
  181. name="寿命指数"
  182. :progress="partmap && partmap.zz.smsyl"
  183. :color="partmap && color(partmap.zz.jkzt)"
  184. ></progress-bar>
  185. </el-col>
  186. <el-col :span="6">
  187. <progress-bar
  188. title="变桨"
  189. name="寿命指数"
  190. :progress="partmap && partmap.bj.smsyl"
  191. :color="partmap && color(partmap.bj.jkzt)"
  192. ></progress-bar>
  193. </el-col>
  194. <el-col :span="6">
  195. <progress-bar
  196. title="偏航"
  197. name="寿命指数"
  198. :progress="partmap && partmap.ph.smsyl"
  199. :color="partmap && color(partmap.ph.jkzt)"
  200. ></progress-bar>
  201. </el-col>
  202. <el-col :span="6">
  203. <progress-bar
  204. title="机舱"
  205. name="寿命指数"
  206. :progress="partmap && partmap.jc.smsyl"
  207. :color="partmap && color(partmap.jc.jkzt)"
  208. ></progress-bar>
  209. </el-col>
  210. <el-col :span="6">
  211. <progress-bar
  212. title="变频器"
  213. name="寿命指数"
  214. :progress="partmap && partmap.bpq.smsyl"
  215. :color="partmap && color(partmap.bpq.jkzt)"
  216. ></progress-bar>
  217. </el-col>
  218. <el-col :span="6">
  219. <progress-bar
  220. title="主控"
  221. name="寿命指数"
  222. :progress="partmap && partmap.zk.smsyl"
  223. :color="partmap && color(partmap.zk.jkzt)"
  224. ></progress-bar>
  225. </el-col>
  226. </el-row>
  227. </el-col>
  228. <el-col :span="10" class="health-0-right">
  229. <el-row>
  230. <el-col :span="24">
  231. <div class="table">
  232. <Table :data="gztableData" />
  233. </div>
  234. </el-col>
  235. </el-row>
  236. <el-row class="mg-t-16">
  237. <el-col :span="24">
  238. <div class="table">
  239. <Table :data="yjtableData" />
  240. </div>
  241. </el-col>
  242. </el-row>
  243. <el-row class="mg-t-16">
  244. <el-col :span="24">
  245. <div class="table">
  246. <Table :data="yxtableData" />
  247. </div>
  248. </el-col>
  249. </el-row>
  250. <el-row class="mg-t-16">
  251. <el-col :span="24">
  252. <div class="table">
  253. <Table :data="tableData2" />
  254. </div>
  255. </el-col>
  256. </el-row>
  257. <el-row class="mg-t-16">
  258. <el-col :span="24">
  259. <div class="card-tool">
  260. <div class="card-tool-item font-sm gray-l">故障描述</div>
  261. <div class="card-tool-item font-sm gray-l">
  262. 开始时间<i class="el-icon-d-caret"></i>
  263. </div>
  264. </div>
  265. </el-col>
  266. </el-row>
  267. <el-row class="mg-t-16">
  268. <el-col :span="24">
  269. <div class="table">
  270. <Table :data="tableData11" />
  271. </div>
  272. </el-col>
  273. </el-row>
  274. <el-row class="mg-t-16">
  275. <el-col :span="24">
  276. <div class="table">
  277. <Table :data="tableData3" />
  278. </div>
  279. </el-col>
  280. </el-row>
  281. <el-row class="mg-t-16">
  282. <el-col :span="24">
  283. <div class="card-tool font-sm gray-l pd">评判扣分</div>
  284. </el-col>
  285. </el-row>
  286. <el-row class="mg-t-16">
  287. <el-col :span="24">
  288. <div class="table">
  289. <Table :data="tableData4" />
  290. </div>
  291. </el-col>
  292. </el-row>
  293. </el-col>
  294. </el-row>
  295. <health-report
  296. :show="reportshow"
  297. :params="reportparams"
  298. ref="eport"
  299. @closed="closed"
  300. />
  301. </div>
  302. </template>
  303. <script>
  304. import SvgIcon from "@com/coms/icon/svg-icon.vue";
  305. import StandAloneImg from "@/views/WindSite/pages/Info/StandAloneImg.vue";
  306. import ProgressBar from "@com/coms/progress-bar/progress-bar.vue";
  307. import Table from "../../../../components/coms/table/table.vue";
  308. import HealthReport from "../../../../components/other/healthReport/index.vue";
  309. import axios from "axios";
  310. export default {
  311. name: "health0",
  312. setup() {},
  313. components: {
  314. SvgIcon,
  315. StandAloneImg,
  316. ProgressBar,
  317. Table,
  318. HealthReport,
  319. },
  320. data() {
  321. return {
  322. reportshow: false, //是否显示健康报告
  323. reportparams: undefined,
  324. bsxImg: require("@assets/png/bsx.png"),
  325. options: [],
  326. wtid: "",
  327. wpid: "",
  328. options1: [],
  329. value1: [],
  330. value2: [],
  331. colorval: {
  332. "1.0": "green",
  333. "2.0": "purple",
  334. "3.0": "orange",
  335. "4.0": "red",
  336. },
  337. activeIndex: -1,
  338. gztableData: {
  339. column: [
  340. {
  341. name: "",
  342. field: "index",
  343. width: "30px",
  344. is_num: false,
  345. is_light: false,
  346. },
  347. {
  348. name: "时间",
  349. field: "name",
  350. width: "130px",
  351. is_num: false,
  352. is_light: false,
  353. },
  354. {
  355. name: "故障1名称",
  356. field: "top1gzname",
  357. is_num: false,
  358. is_light: false,
  359. },
  360. {
  361. name: "故障1数量",
  362. field: "top1gznum",
  363. is_num: false,
  364. is_light: false,
  365. },
  366. {
  367. name: "故障2名称",
  368. field: "top2gzname",
  369. is_num: false,
  370. is_light: false,
  371. },
  372. {
  373. name: "故障2数量",
  374. field: "top2gznum",
  375. is_num: false,
  376. is_light: false,
  377. },
  378. {
  379. name: "故障3名称",
  380. field: "top3gzname",
  381. is_num: false,
  382. is_light: false,
  383. },
  384. {
  385. name: "故障3数量",
  386. field: "top3gznum",
  387. is_num: false,
  388. is_light: false,
  389. },
  390. ],
  391. data: [],
  392. },
  393. yjtableData: {
  394. column: [
  395. {
  396. name: "",
  397. field: "index",
  398. width: "30px",
  399. is_num: false,
  400. is_light: false,
  401. },
  402. {
  403. name: "时间",
  404. field: "name",
  405. width: "130px",
  406. is_num: false,
  407. is_light: false,
  408. },
  409. {
  410. name: "预警1名称",
  411. field: "top1gzname",
  412. is_num: false,
  413. is_light: false,
  414. },
  415. {
  416. name: "预警1数量",
  417. field: "top1gznum",
  418. is_num: false,
  419. is_light: false,
  420. },
  421. {
  422. name: "预警2名称",
  423. field: "top2gzname",
  424. is_num: false,
  425. is_light: false,
  426. },
  427. {
  428. name: "预警2数量",
  429. field: "top2gznum",
  430. is_num: false,
  431. is_light: false,
  432. },
  433. {
  434. name: "预警3名称",
  435. field: "top3gzname",
  436. is_num: false,
  437. is_light: false,
  438. },
  439. {
  440. name: "故障3数量",
  441. field: "top3gznum",
  442. is_num: false,
  443. is_light: false,
  444. },
  445. ],
  446. data: [],
  447. },
  448. yxtableData: {
  449. column: [
  450. {
  451. name: "",
  452. field: "index",
  453. width: "30px",
  454. is_num: false,
  455. is_light: false,
  456. },
  457. {
  458. name: "时间",
  459. field: "name",
  460. width: "130px",
  461. is_num: false,
  462. is_light: false,
  463. },
  464. {
  465. name: "发电机",
  466. field: "numfdj",
  467. is_num: false,
  468. is_light: false,
  469. },
  470. {
  471. name: "齿轮箱",
  472. field: "numclx",
  473. is_num: false,
  474. is_light: false,
  475. },
  476. {
  477. name: "主轴",
  478. field: "numzz",
  479. is_num: false,
  480. is_light: false,
  481. },
  482. {
  483. name: "变桨",
  484. field: "numbj",
  485. is_num: false,
  486. is_light: false,
  487. },
  488. {
  489. name: "偏航",
  490. field: "numph",
  491. is_num: false,
  492. is_light: false,
  493. },
  494. {
  495. name: "机舱",
  496. field: "numjc",
  497. is_num: false,
  498. is_light: false,
  499. },
  500. {
  501. name: "变频器",
  502. field: "numbpq",
  503. is_num: false,
  504. is_light: false,
  505. },
  506. {
  507. name: "主控",
  508. field: "numzk",
  509. is_num: false,
  510. is_light: false,
  511. },
  512. ],
  513. data: [
  514. {
  515. index: 1,
  516. time: "1天故障数据分析",
  517. fdj: "0.00",
  518. clx: "9.00",
  519. zz: "0.00",
  520. bj: "0.00",
  521. ph: "0.00",
  522. jc: "0.00",
  523. bpq: "0.00",
  524. zk: "0.00",
  525. is_light: false,
  526. },
  527. {
  528. index: 2,
  529. time: "3天故障数据分析",
  530. fdj: "0.00",
  531. clx: "74.00",
  532. zz: "0.00",
  533. bj: "0.00",
  534. ph: "0.00",
  535. jc: "0.00",
  536. bpq: "0.00",
  537. zk: "0.00",
  538. is_light: false,
  539. },
  540. ],
  541. },
  542. tableData2: {
  543. column: [
  544. {
  545. name: "",
  546. field: "index",
  547. width: "30px",
  548. is_num: false,
  549. is_light: false,
  550. },
  551. {
  552. name: "时间",
  553. field: "name",
  554. is_num: false,
  555. is_light: false,
  556. },
  557. {
  558. name: "评估等级",
  559. field: "levelname",
  560. is_num: false,
  561. is_light: false,
  562. },
  563. {
  564. name: "排名",
  565. field: "topnum",
  566. is_num: false,
  567. is_light: false,
  568. },
  569. ],
  570. data: [
  571. {
  572. index: 1,
  573. time: "1天故障数据分析",
  574. level: "C",
  575. score: "0.00",
  576. is_light: false,
  577. },
  578. ],
  579. },
  580. tableData11: {
  581. column: [
  582. {
  583. name: "",
  584. field: "index",
  585. width: "30px",
  586. is_num: false,
  587. is_light: false,
  588. },
  589. {
  590. name: "温度范围",
  591. field: "name",
  592. width: "130px",
  593. is_num: false,
  594. is_light: false,
  595. },
  596. {
  597. name: "发电机",
  598. field: "numfdj",
  599. is_num: false,
  600. is_light: false,
  601. },
  602. {
  603. name: "齿轮箱",
  604. field: "numclx",
  605. is_num: false,
  606. is_light: false,
  607. },
  608. {
  609. name: "主轴",
  610. field: "numzz",
  611. is_num: false,
  612. is_light: false,
  613. },
  614. {
  615. name: "变桨",
  616. field: "numbj",
  617. is_num: false,
  618. is_light: false,
  619. },
  620. {
  621. name: "偏航",
  622. field: "numph",
  623. is_num: false,
  624. is_light: false,
  625. },
  626. {
  627. name: "机舱",
  628. field: "numjc",
  629. is_num: false,
  630. is_light: false,
  631. },
  632. {
  633. name: "变频器",
  634. field: "numbpq",
  635. is_num: false,
  636. is_light: false,
  637. },
  638. {
  639. name: "主控",
  640. field: "numzk",
  641. is_num: false,
  642. is_light: false,
  643. },
  644. ],
  645. data: [
  646. {
  647. index: 1,
  648. time: "1天故障数据分析",
  649. fdj: "0.00",
  650. clx: "9.00",
  651. zz: "0.00",
  652. bj: "0.00",
  653. ph: "0.00",
  654. jc: "0.00",
  655. bpq: "0.00",
  656. zk: "0.00",
  657. is_light: false,
  658. },
  659. {
  660. index: 2,
  661. time: "3天故障数据分析",
  662. fdj: "0.00",
  663. clx: "74.00",
  664. zz: "0.00",
  665. bj: "0.00",
  666. ph: "0.00",
  667. jc: "0.00",
  668. bpq: "0.00",
  669. zk: "0.00",
  670. is_light: false,
  671. },
  672. {
  673. index: 3,
  674. time: "1天故障数据分析",
  675. fdj: "0.00",
  676. clx: "9.00",
  677. zz: "0.00",
  678. bj: "0.00",
  679. ph: "0.00",
  680. jc: "0.00",
  681. bpq: "0.00",
  682. zk: "0.00",
  683. is_light: false,
  684. },
  685. {
  686. index: 4,
  687. time: "3天故障数据分析",
  688. fdj: "0.00",
  689. clx: "74.00",
  690. zz: "0.00",
  691. bj: "0.00",
  692. ph: "0.00",
  693. jc: "0.00",
  694. bpq: "0.00",
  695. zk: "0.00",
  696. is_light: false,
  697. },
  698. ],
  699. },
  700. tableData3: {
  701. column: [
  702. {
  703. name: "",
  704. field: "index",
  705. width: "30px",
  706. is_num: false,
  707. is_light: false,
  708. },
  709. {
  710. name: "3-5米曲线偏差率",
  711. field: "qxpc1",
  712. is_num: false,
  713. is_light: false,
  714. },
  715. {
  716. name: "5-11米曲线偏差率",
  717. field: "qxpc2",
  718. is_num: false,
  719. is_light: false,
  720. },
  721. {
  722. name: "11-25米曲线偏差率",
  723. field: "qxpc3",
  724. is_num: false,
  725. is_light: false,
  726. },
  727. ],
  728. data: [
  729. {
  730. index: 1,
  731. v1: "1.50",
  732. v2: "1.69",
  733. v3: "2.44",
  734. is_light: false,
  735. },
  736. ],
  737. },
  738. tableData4: {
  739. column: [
  740. {
  741. name: "",
  742. field: "index",
  743. width: "30px",
  744. is_num: false,
  745. is_light: false,
  746. },
  747. {
  748. name: "判断描述",
  749. field: "name",
  750. is_num: false,
  751. is_light: false,
  752. },
  753. {
  754. name: "是否扣分",
  755. field: "value",
  756. is_num: false,
  757. is_light: false,
  758. },
  759. ],
  760. data: [
  761. {
  762. index: 1,
  763. v1: "运行状态为故障",
  764. v2: "未扣分",
  765. is_light: false,
  766. },
  767. {
  768. index: 2,
  769. v1: "风机部件温度超出合理值范围",
  770. v2: "未扣分",
  771. is_light: false,
  772. },
  773. {
  774. index: 3,
  775. v1: "性能损失率连续三天大于基准值",
  776. v2: "未扣分",
  777. is_light: false,
  778. },
  779. {
  780. index: 4,
  781. v1: "曲线偏差率连续三天大于基准值",
  782. v2: "未扣分",
  783. is_light: false,
  784. },
  785. ],
  786. },
  787. partmap: null,
  788. stoptypemap: null,
  789. };
  790. },
  791. created() {
  792. this.wtid = this.$route.params.wtId;
  793. this.wpid = this.$route.params.wpId;
  794. // let flag = this.$route.query.from;
  795. // this.$emit("getWtid", this.wtid, flag);
  796. this.search();
  797. },
  798. methods: {
  799. // 查看健康报告
  800. onClickReport() {
  801. this.reportshow = true;
  802. // this.reportparams = {wtId: this.value2, recorddate: new Date(new Date()).formatDate("yyyy-MM-dd")}
  803. this.$refs.eport.getReport(
  804. this.value2,
  805. new Date(new Date()).formatDate("yyyy-MM-dd")
  806. );
  807. },
  808. // 关闭健康报告
  809. closed() {
  810. this.reportshow = false;
  811. },
  812. color(val) {
  813. return this.colorval[val];
  814. },
  815. wpselect() {
  816. this.searchWindturbine("select");
  817. },
  818. wtselect() {
  819. this.searchWtHealthInfo();
  820. },
  821. search() {
  822. axios({
  823. baseURL: process.env.VUE_APP_API,
  824. url: `/benchmarking/wpByCplist?companyids=SXJ_RGN&type=-1`,
  825. }).then((res) => {
  826. if (res.data?.data?.code === 200) {
  827. this.options = res.data.data.data || [];
  828. this.value1 = this.wpid;
  829. this.searchWindturbine();
  830. }
  831. });
  832. },
  833. async searchWindturbine(statu) {
  834. axios({
  835. baseURL: process.env.VUE_APP_NEW_WISDOM,
  836. url: `/health/windturbineAjax?wpId=${this.value1}`,
  837. }).then((res) => {
  838. if (res.data?.code === 200) {
  839. this.options1 = res.data.data || [];
  840. this.value2 =
  841. statu == "select" ? res.data.data?.[0]?.id || "" : this.wtid || "";
  842. this.searchWtHealthInfo();
  843. }
  844. });
  845. },
  846. async searchWtHealthInfo() {
  847. // const { data } = await this.API.requestData({
  848. // subUrl: "/healthsub//findWtHealthInfo",
  849. // showLoading: true,
  850. // method:'POST',
  851. // timeout: 30000, // 请求超时时间,默认 3s ,可缺省
  852. // data:{
  853. // wtId : this.value2
  854. // }
  855. // });
  856. // console.warn(data);
  857. // this.gztableData.data = data.data.gzls
  858. // this.yjtableData.data = data.data.yjls
  859. // this.yxtableData.data = data.data.bjyxls
  860. // this.tableData2.data = data.data.djpgls
  861. // this.tableData11.data = data.data.wdls
  862. // this.tableData3.data = data.data.qxpcls
  863. // this.tableData4.data = data.data.jkls
  864. // this.partmap = data.data.partmap
  865. // this.stoptypemap = data.data.stoptypemap
  866. this.search1();
  867. this.search2();
  868. this.search3();
  869. },
  870. search1() {
  871. const that = this;
  872. this.API.requestData({
  873. baseURL: process.env.VUE_APP_NEW_WISDOM,
  874. subUrl: "health/findWtHealthInfo1",
  875. timeout: 30000,
  876. data: {
  877. wtId: this.value2,
  878. },
  879. success(res) {
  880. that.yjtableData.data = res.data.yjls;
  881. that.partmap = res.data.partmap;
  882. that.stoptypemap = res.data.stoptypemap;
  883. that.gztableData.data = res.data.gzls;
  884. },
  885. });
  886. },
  887. search2() {
  888. const that = this;
  889. this.API.requestData({
  890. baseURL: process.env.VUE_APP_NEW_WISDOM,
  891. // subUrl: "healthsub/findWtHealthInfo2",
  892. subUrl: "health/findWtHealthInfo2",
  893. timeout: 30000,
  894. data: {
  895. wtId: this.value2,
  896. },
  897. success(res) {
  898. that.yxtableData.data = res.data.bjyxls;
  899. that.tableData2.data = res.data.djpgls;
  900. },
  901. });
  902. },
  903. search3() {
  904. const that = this;
  905. this.API.requestData({
  906. baseURL: process.env.VUE_APP_NEW_WISDOM,
  907. // subUrl: "healthsub/findWtHealthInfo3",
  908. subUrl: "health/findWtHealthInfo3",
  909. timeout: 30000,
  910. data: {
  911. wtId: this.value2,
  912. },
  913. success(res) {
  914. that.tableData3.data = res.data.qxpcls;
  915. that.tableData11.data = res.data.wdls;
  916. that.tableData4.data = res.data.jkls;
  917. },
  918. });
  919. },
  920. selectSvg(index) {
  921. this.activeIndex = index;
  922. },
  923. getWpName(wtId) {
  924. return (
  925. this.options1.find((ele) => {
  926. return ele.id === wtId;
  927. })?.nemCode || ""
  928. );
  929. },
  930. getWpStateColor() {
  931. const jkzt = this?.partmap?.fj?.jkzt;
  932. if (jkzt == 1) {
  933. return "#05bb4c";
  934. } else if (jkzt == 2) {
  935. return "#4b55ae";
  936. } else if (jkzt == 3) {
  937. return "#edbf03";
  938. } else if (jkzt == 4) {
  939. return "#e17e23";
  940. } else {
  941. return "#05bb4c";
  942. }
  943. },
  944. },
  945. };
  946. </script>
  947. <style lang="less" scoped>
  948. button {
  949. margin-left: 10px;
  950. background: rgba(67, 81, 107, 0.3);
  951. border: 1px solid #274934;
  952. color: #b3b3b3;
  953. }
  954. .searchColor {
  955. background-color: rgba(5, 187, 76, 0.2);
  956. border: 1px solid #3b6c53;
  957. color: #b3b3b3;
  958. font-size: 14px;
  959. &:hover {
  960. background-color: rgba(5, 187, 76, 0.5);
  961. color: #ffffff;
  962. }
  963. }
  964. .health-0 {
  965. width: 100%;
  966. height: 100%;
  967. .health-0-left {
  968. display: flex;
  969. flex-direction: column;
  970. }
  971. .fan-code-box {
  972. display: flex;
  973. align-items: center;
  974. .fan-code {
  975. width: 76%;
  976. display: flex;
  977. align-items: center;
  978. background: #53626833;
  979. padding: 7px 20px 7px 0;
  980. &.bg {
  981. background: transparent;
  982. padding: 7px 0;
  983. .fan-code-label {
  984. margin-left: 8px;
  985. }
  986. }
  987. .fan-code-text {
  988. width: 45px;
  989. text-align: center;
  990. border-right: 1px solid #536268;
  991. // overflow: hidden;
  992. // text-overflow:ellipsis;
  993. white-space: nowrap;
  994. }
  995. .fan-code-type {
  996. flex: 1;
  997. display: flex;
  998. align-items: center;
  999. justify-content: space-evenly;
  1000. .fan-code-type-item {
  1001. width: calc((100% / 3) - 10px);
  1002. display: flex;
  1003. align-items: center;
  1004. }
  1005. }
  1006. .fan-code-label {
  1007. width: 50px;
  1008. }
  1009. .fan-code-value {
  1010. width: calc(100% - 50px);
  1011. &.nm {
  1012. margin-left: 0;
  1013. }
  1014. }
  1015. }
  1016. }
  1017. .sai {
  1018. height: 500px;
  1019. }
  1020. .bsx {
  1021. // height: 100%;
  1022. margin-right: 15px;
  1023. &.o {
  1024. opacity: 0.5;
  1025. }
  1026. }
  1027. .health-0-right {
  1028. height: 100%;
  1029. overflow-y: auto;
  1030. .table {
  1031. border: 1px solid #6067697d;
  1032. .com-table thead tr th,
  1033. .com-table tr td {
  1034. padding: 0.463vh 0;
  1035. }
  1036. }
  1037. .card-tool {
  1038. width: 100%;
  1039. background: #53626866;
  1040. padding: 10px 0;
  1041. display: flex;
  1042. &.pd {
  1043. padding-left: 30px;
  1044. }
  1045. .card-tool-item {
  1046. flex: 1;
  1047. text-align: center;
  1048. cursor: pointer;
  1049. &:last-child {
  1050. border-left: 1px solid #536268;
  1051. }
  1052. &:hover {
  1053. color: @green;
  1054. }
  1055. }
  1056. }
  1057. }
  1058. }
  1059. .el-col + .el-col {
  1060. padding-left: 16px;
  1061. }
  1062. </style>