yifengyide/src/views/home/index.vue

276 lines
8.5 KiB
Vue
Raw Normal View History

2025-02-07 16:12:06 +08:00
<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>