表格样式

This commit is contained in:
zhaotiantian
2023-12-11 13:27:27 +08:00
parent bc15167485
commit 66175f4b4b
3 changed files with 172 additions and 120 deletions
+64 -64
View File
@@ -1,76 +1,76 @@
<template>
<div>
<public-title :title="props.title">
<template #title>
{{ props.tips }}
</template>
</public-title>
<div class="inner" ref="healthChart"></div>
</div>
<div>
<public-title :title="props.title">
<template #right>
{{ props.tips }}
</template>
</public-title>
<div class="inner" ref="healthChart"></div>
</div>
</template>
<script setup lang="ts">
import PublicTitle from '/@/components/publicTitle.vue';
import { useSpin } from '/@/components/body-d-left/bodyLeftHooks.ts';
import { useHealth } from '/@/components/body-d-right/bodyRightHooks.ts';
import { screenPie } from '/@/components/item-d/pieCharts.ts';
import { onMounted, ref, unref, watch } from 'vue';
import * as echarts from 'echarts';
import PublicTitle from '/@/components/publicTitle.vue';
import {useSpin} from '/@/components/body-d-left/bodyLeftHooks.ts';
import {useHealth} from '/@/components/body-d-right/bodyRightHooks.ts';
import {screenPie} from '/@/components/item-d/pieCharts.ts';
import {onMounted, ref, unref, watch} from 'vue';
import * as echarts from 'echarts';
const props = defineProps({
title: {
type: String,
default: () => '',
},
data: {
type: Array,
default: () => [],
},
color: {
type: Array,
default: () => [],
},
tips: {
type: String,
default: () => '',
},
});
const healthChart = ref<HTMLElement>();
const props = defineProps({
title: {
type: String,
default: () => '',
},
data: {
type: Array,
default: () => [],
},
color: {
type: Array,
default: () => [],
},
tips: {
type: String,
default: () => '',
},
});
const healthChart = ref<HTMLElement>();
const { setSpin, spinning } = useSpin();
const {setSpin, spinning} = useSpin();
onMounted(() => {
init();
});
onMounted(() => {
init();
});
watch(
() => props.data,
() => {
init();
}
);
const { healthData, getValue, setHealth } = useHealth();
async function init() {
// setHealth(props.data);
// const yData = unref(getValue);
// let total = yData.reduce((accumulator, currentValue) => Number(accumulator) + Number(currentValue), 0);
initChart(props.data, 78, props.color);
watch(
() => props.data,
() => {
init();
}
);
function initChart(chartData, total, color) {
let myChart = echarts.init(healthChart.value);
let options = screenPie(chartData, total, color);
myChart.setOption(options);
window.addEventListener('resize', () => {
myChart.resize();
});
}
const {healthData, getValue, setHealth} = useHealth();
async function init() {
// setHealth(props.data);
// const yData = unref(getValue);
// let total = yData.reduce((accumulator, currentValue) => Number(accumulator) + Number(currentValue), 0);
initChart(props.data, 78, props.color);
}
function initChart(chartData, total, color) {
let myChart = echarts.init(healthChart.value);
let options = screenPie(chartData, total, color);
myChart.setOption(options);
window.addEventListener('resize', () => {
myChart.resize();
});
}
</script>
<style scoped lang="less">
.inner {
width: 90%;
margin: 0 auto;
height: calc(100% - 40px);
}
.inner {
width: 90%;
margin: 0 auto;
height: calc(100% - 40px);
}
</style>
@@ -1,64 +1,64 @@
<template>
<div class="terminal-container">
<public-title title="睡眠">
<template #title>平均睡眠时长6小时30分</template>
</public-title>
<div class="inner">
<div class="title">
<span class="count">6.5h</span>
<span class="lightSleep">深睡2.4小时 浅睡4.1小时</span>
</div>
<div class="sleepChart" ref="sleepChart"></div>
</div>
<div class="terminal-container">
<public-title title="睡眠">
<template #right>平均睡眠时长6小时30分</template>
</public-title>
<div class="inner">
<div class="title">
<span class="count">6.5h</span>
<span class="lightSleep">深睡2.4小时 浅睡4.1小时</span>
</div>
<div class="sleepChart" ref="sleepChart"></div>
</div>
</div>
</template>
<script setup lang="ts">
import PublicTitle from '/@/components/publicTitle.vue';
import * as echarts from 'echarts';
import { ringOption, useHealth } from '/@/components/body-d-right/bodyRightHooks';
import { ref, onMounted, unref } from 'vue';
import { sleepCharts } from '/@/components/secondaryScreen/screen-right/screenRightHooks';
import PublicTitle from '/@/components/publicTitle.vue';
import * as echarts from 'echarts';
import {ringOption, useHealth} from '/@/components/body-d-right/bodyRightHooks';
import {ref, onMounted, unref} from 'vue';
import {sleepCharts} from '/@/components/secondaryScreen/screen-right/screenRightHooks';
const sleepChart = ref<HTMLElement>();
onMounted(() => {
init();
});
const { healthData, getValue, setHealth } = useHealth();
const sleepChart = ref<HTMLElement>();
onMounted(() => {
init();
});
const {healthData, getValue, setHealth} = useHealth();
function init() {
initChart();
}
function init() {
initChart();
}
function initChart() {
let myChart = echarts.init(sleepChart.value);
let options = sleepCharts();
myChart.setOption(options);
window.addEventListener('resize', () => {
myChart.resize();
});
}
function initChart() {
let myChart = echarts.init(sleepChart.value);
let options = sleepCharts();
myChart.setOption(options);
window.addEventListener('resize', () => {
myChart.resize();
});
}
</script>
<style scoped lang="less">
.inner {
height: calc(100% - 40px);
.inner {
height: calc(100% - 40px);
.title {
color: #cfcfcf;
text-align: left;
padding: 1% 6%;
.title {
color: #cfcfcf;
text-align: left;
padding: 1% 6%;
.count {
font-size: 28px;
font-weight: bold;
}
.lightSleep {
padding-left: 2%;
}
}
.sleepChart {
height: 80%;
}
.count {
font-size: 28px;
font-weight: bold;
}
.lightSleep {
padding-left: 2%;
}
}
.sleepChart {
height: 80%;
}
}
</style>
@@ -2,7 +2,9 @@
<div>
<public-title title="预警"/>
<div class="inner-screen">
<a-table :dataSource="dataSource" :columns="columns"/>
<a-table class="ant-table-striped" :dataSource="tableInfo.dataSource" :columns="tableInfo.columns"
:pagination="tableInfo.pagination"
:rowClassName="(record, index) => (index % 2 === 1 ? 'table-default' : 'table-striped')"/>
</div>
</div>
</template>
@@ -10,6 +12,15 @@
import {ref} from 'vue';
import PublicTitle from '/@/components/publicTitle.vue';
const tableInfo = ref({
dataSource: [],
columns: [],
pagination: {
current: 1,
pageSize: 2,
total: 20
}
})
const dataSource = ref([
{
key: '1',
@@ -36,16 +47,19 @@ const columns = ref([
title: '姓名',
dataIndex: 'name',
key: 'name',
align: 'center',
},
{
title: '年龄',
dataIndex: 'age',
key: 'age',
align: 'right',
},
{
title: '住址',
dataIndex: 'address',
key: 'address',
align: 'center',
},
]);
</script>
@@ -59,13 +73,51 @@ const columns = ref([
display: none !important;
}
:deep(.ant-table-tbody tr:nth-child(even)) {
background-color: rgba(255, 255, 255, 0.1);
:deep(.ant-table) {
background-color: transparent;
pointer-events: none;
}
:deep(.ant-table-tbody tr:nth-child(odd)) {
background-color: #0A0A0C;
:deep(.ant-table-tbody > tr > td) {
border-bottom: none;
}
:deep(.ant-table-row:hover) {
background-color: transparent !important;
color: #ffffff;
}
}
.ant-table-striped :deep(.table-striped) td {
background-color: #0A0A0C;
color: #ffffff;
}
.ant-table-striped :deep(.table-default) td {
color: #ffffff;
}
// 分页
:deep(.ant-pagination-prev .ant-pagination-item-link, .ant-pagination-next .ant-pagination-item-link) {
background-color: #1F2935;
color: #8291A9;
border: none;
}
:deep(.ant-pagination-item) {
background-color: #1F2935;
color: #ffffff;
border: none;
}
// 当前页选中的样式
:deep(.ant-pagination-item-active) {
background-color: #0081FF;
}
:deep(.ant-pagination-item-active a,.ant-pagination-item a) {
color: #ffffff;
}
</style>