123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- <template>
- <div class="count-views">
- <div class="card">
- <div class="card__header">
- <span class="label">总访问量</span>
- <span class="value">8846</span>
- </div>
- <div class="card__container">
- <v-chart :option="chartOption" autoresize />
- </div>
- <div class="card__footer">
- <span class="label">日访问量</span>
- <span class="value">1351</span>
- </div>
- </div>
- </div>
- </template>
- <script lang="ts" setup>
- import { reactive } from 'vue';
- import * as echarts from 'echarts';
- const chartOption = reactive({
- grid: {
- left: 0,
- top: 1,
- right: 0,
- bottom: 1
- },
- xAxis: {
- type: 'category',
- boundaryGap: false,
- axisLine: {
- show: false
- },
- data: [
- '00:00',
- '2:00',
- '4:00',
- '6:00',
- '8:00',
- '10:00',
- '12:00',
- '14:00',
- '16:00',
- '18:00',
- '20:00',
- '22:00'
- ]
- },
- yAxis: {
- type: 'value',
- splitLine: {
- show: false
- },
- axisTick: {
- show: false
- },
- axisLine: {
- show: false
- },
- axisLabel: {
- show: false
- }
- },
- series: [
- {
- type: 'line',
- smooth: true,
- showSymbol: false,
- symbol: 'circle',
- symbolSize: 6,
- data: new Array(12)
- .fill(1)
- .map(() => parseInt((Math.random() * 1000).toFixed(0)) + 500),
- areaStyle: {
- color: new echarts.graphic.LinearGradient(
- 0,
- 0,
- 0,
- 1,
- [
- {
- offset: 0,
- color: '#D1E5FF'
- },
- {
- offset: 1,
- color: '#FFFFFF'
- }
- ],
- false
- )
- },
- itemStyle: {
- color: '#4165d7'
- },
- lineStyle: {
- width: 2
- }
- }
- ]
- });
- </script>
- <style lang="scss" scoped>
- .count-views {
- .card {
- .echarts {
- height: 50px;
- width: 100%;
- }
- &__container {
- padding: 0;
- }
- &__footer {
- border-top: 0;
- }
- }
- }
- </style>
|