index.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402
  1. <template>
  2. <div class="dashboard-editor-container">
  3. <div class="layout-1">
  4. <el-row :gutter="24">
  5. <el-col class="gutter-row item item4" :span="8">
  6. <div class="gutter-box">
  7. <div class="gutter-box-title">风场统计</div>
  8. <div class="count-to-box">
  9. <span class="text">总数</span>
  10. <span class="number" @click="redirectPage('departments')">
  11. <i class="el-icon-loading" v-if="showLoading"></i>
  12. <countTo v-else :startVal='startVal' :endVal='countData.department_count' :duration='duration'></countTo>
  13. </span>
  14. </div>
  15. </div>
  16. </el-col>
  17. <el-col class="gutter-row item item4" :span="8">
  18. <div class="gutter-box">
  19. <div class="gutter-box-title">设备统计</div>
  20. <div class="count-to-box">
  21. <span class="text">总数</span>
  22. <el-popover
  23. placement="bottom"
  24. width="600"
  25. trigger="hover">
  26. <div>
  27. <device-table :tableData="countData.device_type_data" />
  28. </div>
  29. <span slot="reference" class="number">
  30. <i class="el-icon-loading" v-if="showLoading"></i>
  31. <countTo v-else :startVal='startVal' :endVal='countData.device_total_count' :duration='duration'></countTo>
  32. </span>
  33. </el-popover>
  34. <!-- <span class="number" @click="redirectPage('school')">
  35. <i class="el-icon-loading" v-if="showLoading"></i>
  36. <countTo v-else :startVal='startVal' :endVal='countData.device_total_count' :duration='duration'></countTo>
  37. </span> -->个
  38. </div>
  39. <div class="count-to-box">
  40. <span class="text">在线数</span>
  41. <span class="number" @click="redirectPage('school')">
  42. <i class="el-icon-loading" v-if="showLoading"></i>
  43. <countTo v-else :startVal='startVal' :endVal='countData.device_online_count' :duration='duration'></countTo>
  44. </span>个
  45. </div>
  46. </div>
  47. </el-col>
  48. </el-row>
  49. </div>
  50. <div class="layout-2">
  51. <!-- 用户设备数据 -->
  52. <el-row :gutter="16">
  53. <el-col class="gutter-row item" :span="24">
  54. <device-data-chart :countData="countData" :total="countData.device_total_count" />
  55. </el-col>
  56. </el-row>
  57. <!-- 告警图表 -->
  58. <el-row :gutter="16">
  59. <!-- 告警提醒 -->
  60. <el-col class="gutter-row item" :span="8">
  61. <device-alarm-message />
  62. </el-col>
  63. <!-- 告警数据 -->
  64. <el-col class="gutter-row item" :span="16">
  65. <!-- <device-alarm-chart :statsData="statsData" /> -->
  66. <normal-card
  67. showHeader
  68. showMenu
  69. title="告警数据"
  70. shadow="always"
  71. trigger="hover"
  72. :menuItems="alarmGrowthMenuItems"
  73. :bodyStyle="{height: '310px'}"
  74. >
  75. <template v-slot:content>
  76. <total-alarm-growth width="100%" />
  77. </template>
  78. </normal-card>
  79. </el-col>
  80. </el-row>
  81. <!-- 维保记录 -->
  82. <el-row :gutter="16">
  83. <!-- 告警提醒 -->
  84. <el-col class="gutter-row item" :span="8">
  85. <device-alarm-message />
  86. </el-col>
  87. <!-- 告警数据 -->
  88. <el-col class="gutter-row item" :span="16">
  89. <!-- <device-alarm-chart :statsData="statsData" /> -->
  90. <maintenance-alarm-chart
  91. showHeader
  92. showMenu
  93. title="告警数据"
  94. shadow="always"
  95. trigger="hover"
  96. :menuItems="alarmGrowthMenuItems"
  97. :bodyStyle="{height: '310px'}"
  98. >
  99. <template v-slot:content>
  100. <total-alarm-growth width="100%" />
  101. </template>
  102. </maintenance-alarm-chart>
  103. </el-col>
  104. </el-row>
  105. </div>
  106. </div>
  107. </template>
  108. <script>
  109. import countTo from 'vue-count-to'
  110. import NormalCard from '@/components/Card/NormalCard'
  111. import StationDataChart from './components/StationDataChart'
  112. import DeviceDataChart from './components/DeviceDataChart'
  113. import DeviceAlarmMessage from './components/DeviceAlarmMessage'
  114. import TotalAlarmGrowth from './components/TotalAlarmGrowth'
  115. import StationTable from './components/StationTable'
  116. import DeviceTable from './components/DeviceTable'
  117. import MaintenanceAlarmChart from './components/MaintenanceAlarmChart'
  118. export default {
  119. name: 'DashboardAdmin',
  120. components: {
  121. countTo,
  122. NormalCard,
  123. StationDataChart,
  124. DeviceDataChart,
  125. TotalAlarmGrowth,
  126. DeviceAlarmMessage,
  127. StationTable,
  128. DeviceTable,
  129. MaintenanceAlarmChart
  130. },
  131. deactivated() {
  132. // 选中本页面时重新加载,以便获取最新数据
  133. var cached = this.$store.state.tagsView.cachedViews.filter(item => {
  134. return item != "Dashboard"
  135. })
  136. this.$store.state.tagsView.cachedViews = cached
  137. },
  138. data() {
  139. return {
  140. statsData: {}, // 统计数据
  141. cardColors: {},
  142. duration: 3000,
  143. showLoading: true,
  144. // showAddLoading: true,
  145. startVal: 0,
  146. //维保记录规律统计
  147. Maintenance:{
  148. },
  149. countData: {
  150. department_count:24,
  151. device_online_count:31,
  152. device_total_count:215,
  153. device_type_data:[
  154. {
  155. 'alarm': 62,
  156. 'online': 31,
  157. 'text': "液压泵",
  158. 'total': 40,
  159. 'value': "0",
  160. },
  161. {
  162. 'alarm': 80,
  163. 'online': 32,
  164. 'text': "法兰",
  165. 'total': 75,
  166. 'value': "0",
  167. },
  168. {
  169. 'alarm': 80,
  170. 'online': 32,
  171. 'text': "液压扳手",
  172. 'total': 100,
  173. 'value': "0",
  174. },
  175. ]
  176. },
  177. alarmGrowthMenuItems: [
  178. {
  179. name: '全屏',
  180. command: 'full',
  181. icon: 'full-screen',
  182. }
  183. ]
  184. }
  185. },
  186. created() {
  187. this.$appConfig.netState && this.$appConfig.netState.forEach(item => {
  188. this.cardColors[item.value] = item.color
  189. })
  190. // 查询近期统计数据
  191. this.getHomePageCountData()
  192. },
  193. methods: {
  194. /**
  195. * 获取首页数量数据
  196. */
  197. getHomePageCountData() {
  198. // this.$http.get('total/getHomePageCountData')
  199. // .then((resp) => {
  200. // if(resp.code == 10000){
  201. // this.countData = resp.data
  202. this.showLoading = false
  203. // }
  204. // })
  205. },
  206. redirectPage(type) {
  207. let path = '';
  208. switch(type) {
  209. case 'departments':
  210. path = '/permissions/departments'
  211. break;
  212. case 'student':
  213. path = '/schoolsys/student'
  214. break;
  215. default:
  216. break;
  217. }
  218. this.$router.push({ path: path})
  219. }
  220. }
  221. }
  222. </script>
  223. <style lang='scss' scoped>
  224. .dashboard-editor-container {
  225. padding: 20px;
  226. background-color: rgb(240, 242, 245);
  227. position: relative;
  228. .chart-wrapper {
  229. background: #fff;
  230. padding: 16px 16px 0;
  231. margin-bottom: 32px;
  232. }
  233. }
  234. @media (max-width:1024px) {
  235. .chart-wrapper {
  236. padding: 8px;
  237. }
  238. }
  239. .layout-1 {
  240. margin-bottom: 25px;
  241. .item {
  242. color: #fff;
  243. .gutter-box {
  244. height: 160px;
  245. border-radius: 5px;
  246. box-shadow: 0 4px 5px rgba(0,0,0,.15);
  247. .today-add {
  248. font-size: 12px;
  249. .number {
  250. padding-left: 10px;
  251. font-size: 22px;
  252. font-family: Arial,"Helvetica Neue",Helvetica,sans-serif;
  253. span:hover {
  254. cursor: pointer;
  255. color: #000;
  256. }
  257. }
  258. display: flex;
  259. margin-left: 20px;
  260. height: 46px;
  261. line-height: 46px;
  262. }
  263. .gutter-box-title {
  264. font-size: 1.5rem;
  265. margin-left: 20px;
  266. height: 46px;
  267. line-height: 46px;
  268. }
  269. }
  270. }
  271. .item1 > .gutter-box{
  272. background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHIAAABOCAYAAAD8ZUKrAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowNkI0ODE2MUE1QUMxMUU4QkVCRThERDMyMUJCMDZFNiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowNkI0ODE2MkE1QUMxMUU4QkVCRThERDMyMUJCMDZFNiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjA2QjQ4MTVGQTVBQzExRThCRUJFOEREMzIxQkIwNkU2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjA2QjQ4MTYwQTVBQzExRThCRUJFOEREMzIxQkIwNkU2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+oXRIKgAACoRJREFUeNrsXflvVFUU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') 20px 48px no-repeat #32c5d2;
  273. }
  274. .item2 > .gutter-box {
  275. background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFwAAABOCAYAAACt8XHIAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0MUZFREY1QkE1QUMxMUU4QTBDRkY5NDk2NDQxQ0E5NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0MUZFREY1Q0E1QUMxMUU4QTBDRkY5NDk2NDQxQ0E5NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjQxRkVERjU5QTVBQzExRThBMENGRjk0OTY0NDFDQTk2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjQxRkVERjVBQTVBQzExRThBMENGRjk0OTY0NDFDQTk2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+/CLBTgAAB7lJREFUeNrsXPlvVFUU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') 20px 48px no-repeat;
  276. // #4CAF50
  277. }
  278. .item3 > .gutter-box {
  279. background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGgAAABQCAYAAAD1NTBhAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2NjUxNzI0OEE1QUMxMUU4ODE5RUFGMThGQzU0OEYxMCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2NjUxNzI0OUE1QUMxMUU4ODE5RUFGMThGQzU0OEYxMCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjY2NTE3MjQ2QTVBQzExRTg4MTlFQUYxOEZDNTQ4RjEwIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjY2NTE3MjQ3QTVBQzExRTg4MTlFQUYxOEZDNTQ4RjEwIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+pX+/0AAACM5JREFUeNrsXflvFVUY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') 20px 48px no-repeat;
  280. // #7ba7bd
  281. }
  282. .item4 > .gutter-box {
  283. background: #00bcd4 ;
  284. // background-image: url('/icons/organization.png') 20px 38px no-repeat;
  285. // background-size: 114px 78px;
  286. // #e7505a
  287. }
  288. .item5 > .gutter-box {
  289. background: #00bcd4 url('/icons/student_104.png') 20px 38px no-repeat;
  290. // #e7505a
  291. }
  292. .count-to-box {
  293. margin-left: 20px;
  294. margin-right: 20px;
  295. text-align: left;
  296. // position: relative;
  297. // right: 50px;
  298. .text {
  299. display: inline-block;
  300. width: 100px;
  301. font-size: 16px;
  302. height: 28px;
  303. line-height: 28px;
  304. }
  305. .number {
  306. font-family: Arial,"Helvetica Neue",Helvetica,sans-serif;
  307. font-size: 2rem;
  308. height: 52px;
  309. line-height: 52px;
  310. /* span {
  311. float: right;
  312. width: 100px;
  313. } */
  314. span:hover {
  315. cursor: pointer;
  316. color: #000;
  317. }
  318. }
  319. }
  320. /** 5等分 */
  321. .el-col-5,
  322. .el-col-5,
  323. .el-col-5,
  324. .el-col-5 {
  325. position: relative;
  326. min-height: 1px;
  327. padding-right: 10px;
  328. padding-left: 10px;
  329. }
  330. .el-col-5 {
  331. width: 20%;
  332. float: left;
  333. }
  334. @media (min-width: 768px) {
  335. .el-col-5 {
  336. width: 20%;
  337. float: left;
  338. }
  339. }
  340. @media (min-width: 992px) {
  341. .el-col-5 {
  342. width: 20%;
  343. float: left;
  344. }
  345. }
  346. @media (min-width: 1200px) {
  347. .el-col-5 {
  348. width: 20%;
  349. float: left;
  350. }
  351. }
  352. }
  353. .layout-2 {
  354. margin-bottom: 25px;
  355. .item {
  356. margin-bottom: 25px;
  357. }
  358. .charts-icon {
  359. float: right;
  360. color: #000;
  361. }
  362. .charts-icon:hover {
  363. cursor: pointer;
  364. }
  365. }
  366. </style>