| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- <template>
- <a-card title="系统概览" >
- <a-row justify="space-between" >
- <a-col>
- <a-select style="width: 170px;" v-model:value="spaceId" >
- <a-select-option v-for="item in spaceList" :key="item.id" :value="item.spaceId" >{{item.spaceName}}</a-select-option>
- </a-select>
- </a-col>
- <a-col><a-button type="primary" @click="reload" >刷新</a-button></a-col>
- </a-row>
- <!-- 仪表盘 -->
- <a-spin :spinning="loading" >
- <div class="board">
- <a-row>
- <a-col :span="24" >今日数据</a-col>
- <a-col :span="24">
- <a-row align="middle" >
- <a-col :span="8" >
- <div id="pie" style="width: 200px;height: 300px;" ></div>
- </a-col>
- <a-col :span="16" >
- <a-row :gutter="[8, 8]" >
- <a-col :span="11" v-for="(item, index) in statisticList" :key="index" >
- <a-statistic
- :title="item.label"
- :value="0"
- :precision="2"
- suffix="%"
- :value-style="{ color: '#3f8600' }"
- style="margin-right: 50px"
- >
- <template #prefix>
- <arrow-up-outlined />
- </template>
- </a-statistic>
- </a-col>
- </a-row>
- </a-col>
- </a-row>
- </a-col>
- </a-row>
- </div>
- </a-spin>
- </a-card>
- </template>
- <script lang='ts' setup >
- import { SpaceController } from '@/controller'
- import { onMounted, ref } from 'vue'
- import * as echarts from 'echarts'
- import { pieOption } from './echartsJson'
- import { ArrowUpOutlined } from '@ant-design/icons-vue'
- import { useSchedulerOnce } from '@/hooks'
- const spaceList = ref<CVS.space[]>([])
- const spaceId = ref(null)
- const loading = ref<boolean>(false)
- const statisticList = [{ label: '上行带宽峰值' }, { label: '上行流量' }, { label: '下行带宽峰值' }, { label: '下行流量' }]
- const initPie = () => {
- const chartDom = document.getElementById('pie')!
- const myChart = echarts.init(chartDom)
- myChart.setOption(pieOption)
- }
- const reload = () => {
- loading.value = true
- useSchedulerOnce(() => {
- console.log('????')
- loading.value = false
- }, 1000)
- }
- const getSpaceList = async () => {
- spaceList.value = await SpaceController.list()
- spaceId.value = spaceList.value[0].spaceId
- }
- onMounted(() => {
- getSpaceList()
- initPie()
- reload()
- })
- </script>
- <style lang='less' scoped >
- .board {
- width: 100%;
- margin-top: 10px;
- padding: 10px 20px 20px;
- border: 1px solid #ebebeb;
- }
- </style>
- ./echartsJson
|