<template>
  <div class="home">
    <div class="title">实验仪器设备管理系统</div>
    <el-row :gutter="20">
      <el-col :span="6">
        <el-card class="card">
          <div slot="header" class="card-header">
            <i class="el-icon-notebook-2"></i>
            <span>设备总数</span>
          </div>
          <div class="card-content">
            <h2 class="card-number">{{ totalNum }}</h2>
            <div class="card-description">
              <i class="el-icon-arrow-up"></i>
              <span>+2%</span>
            </div>
          </div>
        </el-card>
      </el-col>
      <el-col :span="6">
        <el-card class="card">
          <div slot="header" class="card-header">
            <i class="el-icon-s-tools"></i>
            <span>待维修设备</span>
          </div>
          <div class="card-content">
            <h2 class="card-number">{{ repairNum }}</h2>
            <div class="card-description">
              <i class="el-icon-arrow-up"></i>
              <span>+5%</span>
            </div>
          </div>
        </el-card>
      </el-col>
      <el-col :span="6">
        <el-card class="card">
          <div slot="header" class="card-header">
            <i class="el-icon-s-check"></i>
            <span>已检设备</span>
          </div>
          <div class="card-content">
            <h2 class="card-number">{{ checkedNum }}</h2>
            <div class="card-description">
              <i class="el-icon-arrow-down"></i>
              <span>-3%</span>
            </div>
          </div>
        </el-card>
      </el-col>
      <el-col :span="6">
        <el-card class="card">
          <div slot="header" class="card-header">
            <i class="el-icon-s-promotion"></i>
            <span>待领用设备</span>
          </div>
          <div class="card-content">
            <h2 class="card-number">{{ lendNum }}</h2>
            <div class="card-description">
              <i class="el-icon-arrow-up"></i>
              <span>+2%</span>
            </div>
          </div>
        </el-card>
      </el-col>
    </el-row>
    <el-row :gutter="20">
      <el-col :span="12">
        <el-card class="card">
          <div slot="header" class="card-header">
            <i class="el-icon-s-data"></i>
            <span>设备分类统计</span>
          </div>
          <div class="card-content">
            <echarts :options="categoryOptions" class="chart"></echarts>
          </div>
        </el-card>
      </el-col>
      <el-col :span="12">
        <el-card class="card">
          <div slot="header" class="card-header">
            <i class="el-icon-s-order"></i>
            <span>设备状态统计</span>
          </div>
          <div class="card-content">
            <echarts :options="statusOptions" class="chart"></echarts>
          </div>
        </el-card>
      </el-col>
    </el-row>
  </div>
</template>
<script>
import echarts from 'echarts'

export default {
  name: 'Home',
  components: {
    'el-row': () => import('element-ui/lib/row'),
    'el-col': () => import('element-ui/lib/col'),
    'el-card': () => import('element-ui/lib/card'),
    'echarts': () => import('vue-echarts/components/ECharts')
  },
  data() {
    return {
      totalNum: 150,
      repairNum: 30,
      checkedNum: 50,
      lendNum: 20,
      categoryOptions: {
        tooltip: {
          trigger: 'item',
          formatter: '{a} <br/>{b}: {c} ({d}%)'
        },
        legend: {
          orient: 'vertical',
          left: 10,
          data: ['光学设备', '电子设备', '机械设备', '化学设备', '生物设备']
        },
        series: [
          {
            name: '设备分类',
            type: 'pie',
            radius: ['50%', '70%'],
            avoidLabelOverlap: false,
            label: {
              show: false,
              position: 'center'
            },
            emphasis: {
              label: {
                show: true,
                fontSize: '30',
                fontWeight: 'bold'
              }
            },
            labelLine: {
              show: false
            },
            data: [
              { value: 40, name: '光学设备' },
              { value: 30, name: '电子设备' },
              { value: 20, name: '机械设备' },
              { value: 10, name: '化学设备' },
              { value: 5, name: '生物设备' }
            ]
          }
        ]
      },
      statusOptions: {
        tooltip: {
          trigger: 'item',
          formatter: '{a} <br/>{b}: {c} ({d}%)'
        },
        legend: {
          orient: 'vertical',
          left: 10,
          data: ['正常', '待维修', '已检', '待领用', '已报废']
        },
        series: [
          {
            name: '设备状态',
            type: 'pie',
            radius: ['50%', '70%'],
            avoidLabelOverlap: false,
            label: {
              show: false,
              position: 'center'
            },
            emphasis: {
              label: {
                show: true,
                fontSize: '30',
                fontWeight: 'bold'
              }
            },
            labelLine: {
              show: false
            },
            data: [
              { value: 80, name: '正常' },
              { value: 30, name: '待维修' },
              { value: 50, name: '已检' },
              { value: 20, name: '待领用' },
              { value: 10, name: '已报废' }
            ]
          }
        ]
      }
    }
  },
  mounted() {
    this.$nextTick(() => {
      window.addEventListener('resize', () => {
        this.$refs.categoryChart.resize()
        this.$refs.statusChart.resize()
      })

      const categoryChart = echarts.init(this.$refs.categoryChart)
      const statusChart = echarts.init(this.$refs.statusChart)

      categoryChart.setOption(this.categoryOptions)
      statusChart.setOption(this.statusOptions)
    })
  }
}
</script>
<style scoped>
.home {
  padding: 20px;
  background-color: #f5f7fa;
}

.title {
  font-size: 24px;
  font-weight: bold;
  margin-bottom: 20px;
  text-align: center;
}

.card {
  height: 200px;
}

.card-header {
  display: flex;
  align-items: center;
  justify-content: center;
}

.card-header i {
  font-size: 24px;
  margin-right: 10px;
}

.card-header span {
  font-size: 18px;
  font-weight: bold;
}

.card-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.card-number {
  font-size: 48px;
  font-weight: bold;
  margin-bottom: 10px;
}

.card-description {
  display: flex;
  align-items: center;
}

.card-description i {
  font-size: 16px;
  color: green;
  margin-right: 5px;
}

.chart {
  height: 100%;
}
</style>
使用element写一个的实验仪器设备管理系统的首页

原文地址: https://www.cveoy.top/t/topic/IDs 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录