276 lines
8.5 KiB
Vue
276 lines
8.5 KiB
Vue
<template>
|
||
<lay-container :fluid="true" style="padding: 10px">
|
||
<lay-row :space="10">
|
||
<lay-col :md="6" :sm="6" :xs="12">
|
||
<lay-card class="statistics">
|
||
<template #title>今日访问</template>
|
||
<template #extra>
|
||
<lay-badge theme="green">Hot</lay-badge>
|
||
</template>
|
||
<div class="statistics-body">
|
||
<lay-count-up :startVal="0" :endVal="3600" :decimalPlaces="2"></lay-count-up>
|
||
</div>
|
||
<template #footer>
|
||
访问趋势
|
||
</template>
|
||
</lay-card>
|
||
</lay-col>
|
||
<lay-col :md="6" :sm="6" :xs="12">
|
||
<lay-card class="statistics">
|
||
<template #title>提交次数</template>
|
||
<template #extra>
|
||
<lay-badge type="rim">Hot</lay-badge>
|
||
</template>
|
||
<div class="statistics-body">
|
||
<lay-count-up :startVal="0" :endVal="3600" :decimalPlaces="2"></lay-count-up>
|
||
</div>
|
||
<template #footer>
|
||
最近一月
|
||
</template>
|
||
</lay-card>
|
||
</lay-col>
|
||
<lay-col :md="6" :sm="6" :xs="12">
|
||
<lay-card class="statistics">
|
||
<template #title>下载数量</template>
|
||
<template #extra>
|
||
<lay-badge type="rim">Hot</lay-badge>
|
||
</template>
|
||
<div class="statistics-body">
|
||
<lay-count-up :startVal="0" :endVal="3600" :decimalPlaces="2"></lay-count-up>
|
||
</div>
|
||
<template #footer>
|
||
总下载量
|
||
</template>
|
||
</lay-card>
|
||
</lay-col>
|
||
<lay-col :md="6" :sm="6" :xs="12">
|
||
<lay-card class="statistics">
|
||
<template #title>流量统计</template>
|
||
<template #extra>
|
||
<lay-badge type="rim">Hot</lay-badge>
|
||
</template>
|
||
<div class="statistics-body">
|
||
<lay-count-up :startVal="0" :endVal="3600" :decimalPlaces="2"></lay-count-up>
|
||
</div>
|
||
<template #footer>
|
||
最近一年
|
||
</template>
|
||
</lay-card>
|
||
</lay-col>
|
||
<lay-col :md="24" :sm="24" :xs="24">
|
||
<lay-card>
|
||
<template #title>我的觉悟</template>
|
||
<template #extra>
|
||
<lay-badge type="rim">昨日</lay-badge>
|
||
<lay-badge type="rim">今日</lay-badge>
|
||
</template>
|
||
<lay-row>
|
||
<lay-col :md="18">
|
||
<div id="main" ref="mainRef"></div>
|
||
</lay-col>
|
||
<lay-col :md="6">
|
||
<div style="padding-top:42px;padding-left: 42px;padding-right: 42px;padding-bottom: 10px;">
|
||
<lay-timeline>
|
||
<lay-timeline-item title="工专路 0 号店" simple>
|
||
<template #dot>
|
||
<lay-icon type="layui-icon-face-smile" color="#009688"></lay-icon>
|
||
</template>
|
||
</lay-timeline-item>
|
||
<lay-timeline-item title="工专路 1 号店" simple></lay-timeline-item>
|
||
<lay-timeline-item title="工专路 2 号店" simple></lay-timeline-item>
|
||
<lay-timeline-item title="工专路 3 号店" simple></lay-timeline-item>
|
||
<lay-timeline-item title="工专路 4 号店" simple></lay-timeline-item>
|
||
<lay-timeline-item title="工专路 5 号店" simple></lay-timeline-item>
|
||
<lay-timeline-item title="工专路 5 号店" simple></lay-timeline-item>
|
||
</lay-timeline>
|
||
</div>
|
||
</lay-col>
|
||
</lay-row>
|
||
</lay-card>
|
||
</lay-col>
|
||
<lay-col :md="8" :sm="8" :xs="24">
|
||
<lay-card>
|
||
<template #title>留言面板</template>
|
||
<ul class="leaving-messages">
|
||
<li>
|
||
<h3>张爱玲</h3>
|
||
<p>于千万人之中遇到你所要遇到的人,于千万年之中,时间的无涯的荒野中,没有早一步,也没有晚一步,刚巧赶上了,那也没有别的话好说,唯有轻轻的问一声:“噢,原来你也在这里?”。</p>
|
||
<span>5月30日 00:00</span>
|
||
</li>
|
||
<li>
|
||
<h3>王羲之</h3>
|
||
<p>但我只要够快就行了对不对?你就算有无限量的子弹,你换弹匣也需要时间,我只有那么一瞬间,把你打翻,然后就拍屁股走人。</p>
|
||
<span>5月30日 00:00</span>
|
||
</li>
|
||
<li>
|
||
<h3>诸葛亮</h3>
|
||
<p>皓首匹夫!苍髯老贼!你枉活九十有六,一生未立寸功,只会摇唇鼓舌!助曹为虐!一条断脊之犬,还敢在我军阵前狺狺狂吠,我从未见过有如此厚颜无耻之人!</p>
|
||
<span>5月30日 00:00</span>
|
||
</li>
|
||
</ul>
|
||
</lay-card>
|
||
</lay-col>
|
||
<lay-col :md="8" :sm="8" :xs="24">
|
||
<lay-card>
|
||
<template #title>签到统计</template>
|
||
<lay-table :columns="columns21" :data-source="dataSource21">
|
||
<template #state="{ data }">
|
||
<span v-if="data.state == 0" style="color:#FFB800">进行中</span>
|
||
<span v-else-if="data.state == 1" style="color:#5FB878">已完成</span>
|
||
<span v-else style="color:#FF5722">已预期</span>
|
||
</template>
|
||
</lay-table>
|
||
</lay-card>
|
||
</lay-col>
|
||
<lay-col :md="8" :sm="8" :xs="24">
|
||
<lay-card>
|
||
<template #title>本月目标</template>
|
||
<div class="target">
|
||
<lay-progress :percent="90" circle :circleWidth="15" :show-text="true" text="已完成">
|
||
<template v-slot:text="{}">
|
||
<span></span>
|
||
</template>
|
||
</lay-progress>
|
||
<p class="target-title">{{ 100 > 70 ? '恭喜,本月目标已达标!' : '加油, 就快达标了!' }}</p>
|
||
</div>
|
||
</lay-card>
|
||
</lay-col>
|
||
</lay-row>
|
||
</lay-container>
|
||
</template>
|
||
<script lang="ts">
|
||
import { defineComponent, ref, onMounted } from "vue";
|
||
|
||
import * as echarts from 'echarts';
|
||
|
||
export default defineComponent({
|
||
name: 'Analysis',
|
||
setup() {
|
||
|
||
const mainRef = ref()
|
||
onMounted(() => {
|
||
var chartDom = mainRef.value;
|
||
// @ts-ignore
|
||
var myChart = echarts.init(chartDom);
|
||
var option = {
|
||
xAxis: {
|
||
type: 'category',
|
||
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun', 'Bai', 'Fan', 'Yue', 'Qian']
|
||
},
|
||
yAxis: {
|
||
type: 'value'
|
||
},
|
||
grid: {
|
||
x: '50px',
|
||
y: '50px',
|
||
x2: '50px',
|
||
y2: '50px',
|
||
},
|
||
series: [
|
||
{
|
||
data: [120, 200, 150, 80, 70, 110, 130, 50, 40, 70, 100],
|
||
type: 'bar',
|
||
showBackground: true,
|
||
backgroundStyle: {
|
||
color: 'rgba(180, 180, 180, 0.2)'
|
||
},
|
||
itemStyle: {
|
||
normal: {
|
||
color: '#009688'
|
||
},
|
||
}
|
||
}
|
||
]
|
||
};
|
||
option && myChart.setOption(option);
|
||
})
|
||
|
||
const columns21 = [
|
||
{
|
||
type: "number",
|
||
},
|
||
{
|
||
title: "任务内容",
|
||
key: "task",
|
||
}, {
|
||
title: "计划时间",
|
||
key: "time"
|
||
}, {
|
||
title: "完成情况",
|
||
key: "state",
|
||
customSlot: "state"
|
||
}
|
||
]
|
||
|
||
const dataSource21 = [
|
||
{ task: "睡觉", time: "两小时", state: "1" },
|
||
{ task: "吃饭", time: "两小时", state: "2" },
|
||
{ task: "吃饭", time: "两小时", state: "1" },
|
||
{ task: "睡觉", time: "两小时", state: "1" },
|
||
{ task: "睡觉", time: "两小时", state: "2" },
|
||
{ task: "上班", time: "两小时", state: "1" },
|
||
{ task: "上班", time: "两小时", state: "1" },
|
||
{ task: "上班", time: "两小时", state: "0" },
|
||
{ task: "睡觉", time: "两小时", state: "0" },
|
||
{ task: "睡觉", time: "两小时", state: "0" }
|
||
]
|
||
|
||
return {
|
||
mainRef,
|
||
columns21,
|
||
dataSource21
|
||
};
|
||
},
|
||
});
|
||
</script>
|
||
|
||
<style lang="less" scoped>
|
||
#main {
|
||
width: 100%;
|
||
height: 410px;
|
||
}
|
||
|
||
.leaving-messages {
|
||
li {
|
||
position: relative;
|
||
padding: 10px 0;
|
||
border-bottom: 1px solid #eee;
|
||
|
||
h3 {
|
||
padding-bottom: 5px;
|
||
font-weight: 700;
|
||
}
|
||
|
||
p {
|
||
font-size: 14px;
|
||
padding-bottom: 10px;
|
||
}
|
||
|
||
>span {
|
||
color: #999;
|
||
}
|
||
}
|
||
}
|
||
|
||
.target {
|
||
width: 100%;
|
||
height: 440px;
|
||
display: flex;
|
||
justify-content: center;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
}
|
||
|
||
.target-title {
|
||
margin: 20px;
|
||
}
|
||
|
||
.statistics {
|
||
font-size: 24px !important;
|
||
}
|
||
|
||
.statistics-body {
|
||
padding: 14px 0;
|
||
}
|
||
</style>
|