Decision3Db.vue 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363
  1. <template>
  2. <div class="decision-page-3">
  3. <div class="query mg-b-8">
  4. <div class="query-items">
  5. <div class="query-item">
  6. <div class="lable">场站:</div>
  7. <div class="search-input">
  8. <el-select v-model="value1" @change="ChangZhanChange(value1)" multiple placeholder="请选择"
  9. popper-class="select">
  10. <el-option v-for="item in ChangZhan" :key="item.id" :value="item.id" :label="item.name">
  11. </el-option>
  12. </el-select>
  13. </div>
  14. </div>
  15. <div class="query-item">
  16. <div class="lable">项目:</div>
  17. <div class="search-input">
  18. <el-select v-model="value2" @change="XiangMuChange(value2)" multiple placeholder="请选择"
  19. popper-class="select">
  20. <el-option v-for="item in XiangMu" :key="item.id" :value="item.id" :label="item.name">
  21. </el-option>
  22. </el-select>
  23. </div>
  24. </div>
  25. <div class="query-item">
  26. <div class="lable">开始日期:</div>
  27. <div class="search-input">
  28. <el-date-picker v-model="value4" @change="BeginChange(value4)" type="date"
  29. value-format="YYYY-MM-DD" placeholder="选择日期" popper-class="date-select">
  30. </el-date-picker>
  31. </div>
  32. </div>
  33. </div>
  34. <div class="actions mg-b-8">
  35. <button class="btn green">风场</button>
  36. <button class="btn">项目</button>
  37. <button class="btn">集电线路</button>
  38. </div>
  39. </div>
  40. <!-- 列表 -->
  41. <div class="info">
  42. <div class="mg-b-16">
  43. <div class="project-table">
  44. <Table :data="tableData"></Table>
  45. </div>
  46. </div>
  47. <!-- 风资源列表 -->
  48. <div class="direction-info mg-b-16">
  49. <table class="com-table">
  50. <tbody>
  51. <tr>
  52. <td v-for="(col, i) of tableData.column" :key="i">
  53. <div v-if="i == 0">22</div>
  54. <div v-if="i == 1">风资源</div>
  55. <div v-if="i != 0 && i != 1">
  56. <div class="direction-title">3.123</div>
  57. <div class="direction-chart">
  58. <DirectionRadarChart :width="'70%'" :height="'232px'" :value="90" />
  59. <div class="legend mg-t-16">
  60. <span class="dot"></span>
  61. <span>静风频率为2</span>
  62. </div>
  63. </div>
  64. </div>
  65. </td>
  66. </tr>
  67. </tbody>
  68. </table>
  69. </div>
  70. <!-- 日功率曲线 -->
  71. <div>
  72. <toolbar-panel :title="'日功率曲线'">
  73. <template v-slot:tools>
  74. <div class="tools">
  75. <div class="tool-block">
  76. <div class="legend bg-green"></div>
  77. <div class="legend-text">理论功率</div>
  78. </div>
  79. <div class="tool-block">
  80. <div class="legend bg-orange"></div>
  81. <div class="legend-text">预测功率4小时</div>
  82. </div>
  83. </div>
  84. </template>
  85. <double-line-chart :height="'200px'" />
  86. <normal-line-chart :height="'200px'" />
  87. </toolbar-panel>
  88. </div>
  89. </div>
  90. </div>
  91. </template>
  92. <script>
  93. import DoubleLineChart from "../../components/chart/line/double-line-chart.vue";
  94. import NormalLineChart from "../../components/chart/line/normal-line-chart.vue";
  95. import DirectionRadarChart from "../../components/chart/radar/direction-radar-chart.vue";
  96. import SvgIcon from "../../components/coms/icon/svg-icon.vue";
  97. import ToolbarPanel from "../../components/coms/panel/toolbar-panel.vue";
  98. import Table from "../../components/coms/table/table.vue";
  99. export default {
  100. components: {
  101. Table,
  102. SvgIcon,
  103. DirectionRadarChart,
  104. ToolbarPanel,
  105. DoubleLineChart,
  106. NormalLineChart
  107. },
  108. data() {
  109. return {
  110. tableData: {
  111. column: [{
  112. name: "",
  113. field: "index",
  114. is_num: false,
  115. is_light: false,
  116. },
  117. {
  118. name: "项目",
  119. field: "name",
  120. is_num: false,
  121. is_light: false,
  122. },
  123. {
  124. name: "项目",
  125. field: "lqf",
  126. is_num: false,
  127. is_light: false,
  128. },
  129. {
  130. name: "项目",
  131. field: "yggl",
  132. is_num: false,
  133. is_light: false,
  134. },
  135. {
  136. name: "项目",
  137. field: "yyy",
  138. is_num: false,
  139. is_light: false,
  140. },
  141. {
  142. name: "项目",
  143. field: "pcspp",
  144. is_num: false,
  145. is_light: false,
  146. },
  147. ],
  148. data: [{
  149. index: 1,
  150. name: "MG01-01",
  151. lqf: "0.1000",
  152. yggl: "0.1000",
  153. yyy: "0.10",
  154. pcspp: "0.1000",
  155. u1: "0.1000",
  156. u2: "0.1000",
  157. v1: "0.1000",
  158. v2: "0.1000",
  159. w1: "0.1000",
  160. w2: "0.1000",
  161. zca: "0.1000",
  162. zcb: "0.1000",
  163. clx: "0.1000",
  164. clx1: "0.1000",
  165. clx2: "0.1000",
  166. jc: "0.1000",
  167. hh: "0.1000",
  168. hj: "0.1000",
  169. is_light: false,
  170. }, ],
  171. },
  172. options: [{
  173. value: "选项1",
  174. label: "黄金糕",
  175. },
  176. {
  177. value: "选项2",
  178. label: "双皮奶",
  179. },
  180. {
  181. value: "选项3",
  182. label: "蚵仔煎",
  183. },
  184. {
  185. value: "选项4",
  186. label: "龙须面",
  187. },
  188. {
  189. value: "选项5",
  190. label: "北京烤鸭",
  191. },
  192. ],
  193. value1: [],
  194. value2: [],
  195. value3: [],
  196. value4: "",
  197. value5: "",
  198. };
  199. },
  200. created() {
  201. },
  202. methods:{
  203. ChangZhanVal() {
  204. var that = this;
  205. that.API.requestData({
  206. method: "GET",
  207. baseURL : "http://10.155.32.4:9001/",
  208. subUrl: "benchmarking/wplist",
  209. success(res) {
  210. that.ChangZhan = res.data;
  211. }
  212. });
  213. },
  214. ChangZhanChange(val) {
  215. this.value1 = val;
  216. this.value2 = [];
  217. this.value3 = [];
  218. this.AjaxCommon();
  219. this.XiangMuVal(val);
  220. this.clearDb();
  221. },
  222. XiangMuVal(val) {
  223. var that = this;
  224. that.API.requestData({
  225. method: "GET",
  226. baseURL : "http://10.155.32.4:9001/",
  227. subUrl: "benchmarking/projectList",
  228. data: {
  229. wpids: val
  230. },
  231. success(res) {
  232. that.XiangMu = res.data;
  233. }
  234. });
  235. },
  236. XiangMuChange(val) {
  237. this.value2 = val;
  238. this.value3 = [];
  239. this.AjaxCommon();
  240. this.XianLuVal(val);
  241. this.clearDb();
  242. },
  243. }
  244. };
  245. </script>
  246. <style lang="less">
  247. .decision-page-3 {
  248. .com-panel {
  249. .panel-title {
  250. color: @gray-l;
  251. }
  252. .tools {
  253. display: flex;
  254. .tool-block {
  255. display: flex;
  256. align-items: center;
  257. margin-left: 0.741vh;
  258. .legend {
  259. flex: auto;
  260. width: 0.741vh;
  261. height: 0.741vh;
  262. margin-right: 0.741vh;
  263. &.long {
  264. width: 2.963vh;
  265. height: 0.37vh;
  266. }
  267. }
  268. .legend-text {
  269. color: @gray-l;
  270. font-size: @fontsize-s;
  271. }
  272. }
  273. }
  274. }
  275. .info {
  276. overflow: auto;
  277. height: calc(100vh - 150px);
  278. }
  279. .project-table {
  280. overflow: auto;
  281. .com-table {
  282. tbody {
  283. padding-right: 0px;
  284. }
  285. th,
  286. td {
  287. color: #b2bdc0;
  288. &:nth-child(1) {
  289. width: 32px;
  290. }
  291. &:nth-child(2) {
  292. width: 183px;
  293. }
  294. }
  295. }
  296. }
  297. .direction-info {
  298. .com-table {
  299. tbody {
  300. padding-right: 0px;
  301. }
  302. th,
  303. td {
  304. color: #b2bdc0;
  305. padding: 0;
  306. &:nth-child(1) {
  307. width: 32px;
  308. background-color: fade(#536268, 20);
  309. }
  310. &:nth-child(2) {
  311. width: 183px;
  312. background-color: fade(#536268, 40);
  313. }
  314. .direction-title {
  315. background-color: fade(#536268, 20);
  316. font-size: @fontsize-s;
  317. line-height: 2.963vh;
  318. }
  319. .direction-chart {
  320. padding-top: 48px;
  321. .legend {
  322. display: flex;
  323. align-items: center;
  324. justify-content: center;
  325. margin-top: 32px;
  326. margin-bottom: 16px;
  327. .dot {
  328. width: 7px;
  329. height: 7px;
  330. background: @green;
  331. display: inline-block;
  332. margin-right: 8px;
  333. }
  334. }
  335. }
  336. }
  337. }
  338. }
  339. }
  340. </style>