Decision3.vue 9.3 KB

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