preview_v1.vue 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326
  1. <template>
  2. <div id="body">
  3. <div id="index">
  4. <!--顶部标题-->
  5. <el-row class="head-title">
  6. <el-col :span="1">
  7. <div class="grid-content title_r"></div>
  8. </el-col>
  9. <el-col :span="7">
  10. <div class="grid-content title_l">
  11. <img class="icon_shdq" src="../../assets/screen/icon_shdq.png">
  12. </div>
  13. </el-col>
  14. <el-col :span="8">
  15. <div class="grid-content title">工服鲁班® 智能装备管理平台</div>
  16. </el-col>
  17. <el-col :span="7">
  18. <!-- <div class="grid-content title_r">
  19. <img class="icon_lb" src="../../assets/screen/icon_lb.png">
  20. </div> -->
  21. </el-col>
  22. <el-col :span="1">
  23. <div class="grid-content"></div>
  24. </el-col>
  25. </el-row>
  26. <el-row class="time-box-row">
  27. <!--时间日期栏-->
  28. <el-col :span="1">
  29. <div class="grid-content"></div>
  30. </el-col>
  31. <el-col :span="22">
  32. <div class="grid-content">
  33. <span class="time-box fl time-box-left">
  34. <!-- <i class="el-icon-time" style="color:#3fd5f1;"></i>&nbsp; <span>{{date}}</span> -->
  35. </span>
  36. <span class="time-box fr time-box-right" ><i class="el-icon-time" style="color:#3fd5f1;"></i>&nbsp; {{date}}&nbsp;&nbsp;&nbsp;&nbsp;{{nowWeek}}</span></div>
  37. </el-col>
  38. <el-col :span="1">
  39. <div class="grid-content"></div>
  40. </el-col>
  41. </el-row>
  42. <el-row>
  43. <el-col :span="1">
  44. <div class="grid-content"></div>
  45. </el-col>
  46. <el-col :span="6">
  47. <!--服务螺栓 左上-->
  48. <div class="grid-content left-chart">
  49. <i class="topL"></i>
  50. <i class="topR"></i>
  51. <i class="bottomL"></i>
  52. <i class="bottomR"></i>
  53. <div class="left-chart1-box">
  54. <div class="left-chart1-box-contnet">
  55. <el-date-picker
  56. v-model="value3"
  57. type="year"
  58. popper-class="select-box"
  59. placeholder="选择年">
  60. </el-date-picker>
  61. </div>
  62. <div class="left-chart1-box-contnet">服务螺栓:<i class="box-number">501</i>根</div>
  63. <div class="left-chart1-box-contnet">服务风机:<i class="box-number">1545</i>台</div>
  64. <div class="left-chart1-box-contnet">服务风场:<i class="box-number">501</i>个</div>
  65. <div class="left-chart1-box-contnet"></div>
  66. </div>
  67. <div class="left-chart1-box">
  68. <base-bar :options="barOptions" width="100%" height="100%" theme="shine" />
  69. </div>
  70. </div>
  71. <!--服务螺栓 左中-->
  72. <div class="grid-content left-chart">
  73. <i class="topL"></i>
  74. <i class="topR"></i>
  75. <i class="bottomL"></i>
  76. <i class="bottomR"></i>
  77. <base-pie :options="pieOptions" width="100%" theme="shine" />
  78. </div>
  79. <!--作业动态 左下-->
  80. <div class="grid-content left-chart">
  81. <i class="topL"></i>
  82. <i class="topR"></i>
  83. <i class="bottomL"></i>
  84. <i class="bottomR"></i>
  85. <table width="100%" border=0 class="task-table" style="border-collapse:collapse;border:none;">
  86. <tr>
  87. <th colspan="5" class="task-header">作业动态</th>
  88. </tr>
  89. <tr align="center">
  90. <th></th>
  91. <th>风场名称</th>
  92. <th>机位号</th>
  93. <th>工作位置</th>
  94. <th>操作人</th>
  95. </tr>
  96. <tr align="center" v-for="(item,index) in workData" :key="index">
  97. <td><span class="table-index">{{index+1}}</span></td>
  98. <td>测试风场1</td>
  99. <td>A0001B</td>
  100. <td>固定轴—机座</td>
  101. <td>员工1</td>
  102. </tr>
  103. </table>
  104. </div>
  105. </el-col>
  106. <el-col :span="10">
  107. <!--中间地图-->
  108. <!-- <baidu-map class="center-map" :center="center" :zoom="zoom" @ready="mapInit">
  109. <bml-marker-clusterer :averageCenter="true">
  110. <bm-marker v-for="(marker,index) of windMarkers" :key="index+200" :position="{lng: marker.lng, lat: marker.lat}" :icon="{url: 'https://rlfd.oss-cn-hangzhou.aliyuncs.com/smart_tool/wind_32.png', size: {width: 32, height: 32}}"></bm-marker>
  111. </bml-marker-clusterer>
  112. </baidu-map> -->
  113. <div class="grid-content center-map">
  114. <i class="topL"></i>
  115. <i class="topR"></i>
  116. <i class="bottomL"></i>
  117. <i class="bottomR"></i>
  118. <!--地图右下统计-->
  119. <div class="map-center-top">设备总数:<i class="box-number">999</i>件</div>
  120. <div class="map-right-bottom">
  121. <div class="center-alarm-label1" style="font-family:bold;margin-bottom:3px;padding-top:2px;">
  122. <div class="alarm-label-title">区域</div>
  123. <div class="alarm-label-value " >设备</div>
  124. </div>
  125. <div class="center-alarm-label">
  126. <div class="alarm-label-title">华北大区</div>
  127. <div class="alarm-label-value normal-value" >21</div>
  128. </div>
  129. <div class="center-alarm-label1">
  130. <div class="alarm-label-title">东北大区</div>
  131. <div class="alarm-label-value normal-value">24</div>
  132. </div>
  133. <div class="center-alarm-label">
  134. <div class="alarm-label-title">西北大区</div>
  135. <div class="alarm-label-value normal-value">24</div>
  136. </div>
  137. <div class="center-alarm-label1">
  138. <div class="alarm-label-title">南部大区</div>
  139. <div class="alarm-label-value normal-value">32</div>
  140. </div>
  141. <div class="center-alarm-label">
  142. <div class="alarm-label-title">中部大区</div>
  143. <div class="alarm-label-value normal-value">321</div>
  144. </div>
  145. <div class="center-alarm-label1">
  146. <div class="alarm-label-title">内蒙大区</div>
  147. <div class="alarm-label-value normal-value">14</div>
  148. </div>
  149. <div class="center-alarm-label">
  150. <div class="alarm-label-title">江苏大区</div>
  151. <div class="alarm-label-value normal-value">234</div>
  152. </div>
  153. </div>
  154. <div class="map-left-bottom">
  155. <div class="map-left-bottom-head">设备状态颜色</div>
  156. <div> <span class="map-left-bottom-title">当天使用</span> <span class="map-left-bottom-color0"></span></div>
  157. <div> <span class="map-left-bottom-title">3天内使用</span> <span class="map-left-bottom-color1"></span></div>
  158. <div> <span class="map-left-bottom-title">静止状态</span> <span class="map-left-bottom-color2"></span></div>
  159. </div>
  160. <base-map width="100%" :options="mapOptions" />
  161. </div>
  162. <div class="grid-content center-bottom">
  163. <i class="topL"></i>
  164. <i class="topR"></i>
  165. <i class="bottomL"></i>
  166. <i class="bottomR"></i>
  167. <!--地图下方频繁告警区域统计-->
  168. <div class="center-bottom-left">
  169. <base-bar :options="barPlanOptions" width="100%" height="100%" theme="shine" />
  170. </div>
  171. <div class="center-bottom-right">
  172. <div class="center-bottom-right-box">
  173. <base-pie :options="pieCenterOptions" width="100%" theme="shine" />
  174. </div>
  175. <div class="center-bottom-right-box">
  176. <base-pie :options="pieStateOptions" width="100%" theme="shine" />
  177. </div>
  178. </div>
  179. </div>
  180. </el-col>
  181. <el-col :span="6">
  182. <!--右边月告警曲线图-->
  183. <div class="grid-content right-chart">
  184. <i class="topL"></i>
  185. <i class="topR"></i>
  186. <i class="bottomL"></i>
  187. <i class="bottomR"></i>
  188. <div class="right-chart-right-box">
  189. <base-line :options="lineOptions" width="100%" theme="shine" />
  190. </div>
  191. <div class="right-chart-left-box">
  192. <base-pie :options="pieRightOptions" width="100%" theme="shine" />
  193. </div>
  194. <!-- <base-line :options="lineOptions" width="100%" theme="shine" /> -->
  195. </div>
  196. <div class="grid-content right-chart2">
  197. <i class="topL"></i>
  198. <i class="topR"></i>
  199. <i class="bottomL"></i>
  200. <i class="bottomR"></i>
  201. <!-- <base-pie :options="pieFaultOptions" width="100%" theme="shine" /> -->
  202. <div class="grid-content alarm-title">装备自检</div>
  203. <scroll :alarmData="alarmData" />
  204. </div>
  205. <!-- <div class="grid-content right-chart">
  206. <i class="topL"></i>
  207. <i class="topR"></i>
  208. <i class="bottomL"></i>
  209. <i class="bottomR"></i>
  210. <base-pie :options="pieDeviceOptions" width="100%" theme="shine" />
  211. </div> -->
  212. </el-col>
  213. <el-col :span="1">
  214. <div class="grid-content"></div>
  215. </el-col>
  216. </el-row>
  217. <div class="back-btn" @click="fullscreen"> <i class="el-icon-full-screen"></i> <br/> <a>{{screen_title}}</a></div>
  218. </div>
  219. </div>
  220. </template>
  221. <script>
  222. import BasePie from "./Charts/BasePieChart";
  223. import BaseBar from "@/components/Charts/BaseBarChart";
  224. import BaseLine from "@/components/Charts/BaseLineChart";
  225. import BaseMap from "@/components/Charts/BaseMapChart";
  226. import scroll from "./scroll";
  227. import {BmlMarkerClusterer} from 'vue-baidu-map'
  228. export default {
  229. name: "screen_screen",
  230. components: {
  231. BasePie,
  232. BaseBar,
  233. BaseLine,
  234. BaseMap,
  235. scroll,
  236. BmlMarkerClusterer
  237. },
  238. props:['date','nowWeek','workData','deviceStatusData','pieCenterOptions','pieOptions','pieRightOptions','alarmData','pieStateOptions','pieFaultOptions','pieDeviceOptions','barPlanOptions','barOptions','lineOptions','mapOptions'],
  239. data() {
  240. return {
  241. center:'中国',
  242. zoom:5,
  243. markers:[],
  244. isFullFlag:false,
  245. screen_title:'全屏',
  246. windMarkers:[],
  247. value3: new Date(new Date().toLocaleDateString()),
  248. }
  249. },
  250. methods: {
  251. // mapInit({ BMap, map }) {
  252. // this.map = map;
  253. // // 初始化地图,设置中心点坐标
  254. // this.map.setMapStyle({style:'dark'});
  255. // map.enableScrollWheelZoom();
  256. // for (let i = 0; i < 200; i++) {
  257. // const position = {lng: Math.random() * 40 + 85, lat: Math.random() * 30 + 21}
  258. // this.windMarkers.push(position)
  259. // }
  260. // },
  261. fullscreen(){
  262. this.isFullFlag =!this.isFullFlag
  263. if(this.isFullFlag){
  264. this.screen_title='退出'
  265. var el =document.getElementById('content');
  266. var rfs = el.requestFullScreen ||
  267. el.webkitRequestFullScreen ||
  268. el.mozRequestFullScreen ||
  269. el.msRequestFullScreen,
  270. wscript
  271. if (typeof rfs != "undefined" && rfs) {
  272. rfs.call(el);
  273. return;
  274. }
  275. if (typeof window.ActiveXObject != "undefined") {
  276. wscript = new ActiveXObject("WScript.Shell");
  277. if (wscript) {
  278. wscript.SendKeys("{F11}");
  279. }
  280. }
  281. }else{
  282. this.screen_title='全屏'
  283. document.exitFullscreen();
  284. }
  285. },
  286. }
  287. };
  288. </script>
  289. <style lang="scss" scoped>
  290. @import "./index_v1.scss";
  291. </style>