<template> <div class="dashboard-container" style="background-color: white"> <el-row> <el-col :span="8"> <el-card shadow="never" class="card"> <energy-num ref="energyNum" /> </el-card> </el-col> <el-col :span="8"> <el-card shadow="never" class="card"> <energy-year ref="energyYear" /> </el-card> </el-col> <el-col :span="8"> <el-card shadow="never" class="card"> <energy-month ref="energyYear" /> </el-card> </el-col> </el-row> <el-row> <el-col v-for="(item,index) in buildingList" :key="item.value" :span="6"> <el-card shadow="never" class="card"> <energy-building :ref="'building'+index" :query="item" /> </el-card> </el-col> </el-row> </div> </template> <script> import { mapGetters } from 'vuex' import EnergyNum from './components/energyNum' import EnergyYear from './components/energyYear' import EnergyMonth from './components/energyMonth' import { getDictByCode } from '@/api/system/dict' import EnergyBuilding from './components/energyBuilding' export default { name: 'Dashboard', components: { EnergyBuilding, EnergyMonth, EnergyYear, EnergyNum }, data() { return { buildingList: [] } }, mounted() { this.fetchOptions() }, methods: { fetchOptions() { getDictByCode('buildingType').then(response => { if (response.code === 200) { this.buildingList = response.data } }) } } } </script> <style rel="stylesheet/scss" lang="scss" scoped> .card{ margin: 0px; } .dashboard-container{ .el-row{ .el-col{ margin-bottom: 10px; } } } .dashboard { &-container { padding: 10px 20px; } &-text { font-size: 30px; line-height: 46px; } } </style>