fix: 工作台 KPI 卡片换行与考勤趋势横坐标日期 #79
@@ -274,7 +274,7 @@ const DashboardPage: React.FC = () => {
|
||||
|
||||
{/* 核心 KPI */}
|
||||
<Row gutter={[16, 16]} style={SECTION_ROW_STYLE}>
|
||||
<Col xs={12} sm={8} md={4}>
|
||||
<Col xs={12} sm={8} md={8} lg={6} xl={6} xxl={4}>
|
||||
<Card>
|
||||
<Statistic
|
||||
title="入住率"
|
||||
@@ -284,17 +284,21 @@ const DashboardPage: React.FC = () => {
|
||||
/>
|
||||
</Card>
|
||||
</Col>
|
||||
<Col xs={12} sm={8} md={4}>
|
||||
<Col xs={12} sm={8} md={8} lg={6} xl={6} xxl={4}>
|
||||
<Card>
|
||||
<Statistic
|
||||
title="当前在住"
|
||||
value={stats?.occupiedBeds || 0}
|
||||
suffix={`/ ${stats?.totalCapacity || 0}`}
|
||||
suffix={
|
||||
<span style={{ fontSize: 14, color: 'rgba(0, 0, 0, 0.45)' }}>
|
||||
/ {stats?.totalCapacity || 0}
|
||||
</span>
|
||||
}
|
||||
prefix={<CheckCircleOutlined />}
|
||||
/>
|
||||
</Card>
|
||||
</Col>
|
||||
<Col xs={12} sm={8} md={4}>
|
||||
<Col xs={12} sm={8} md={8} lg={6} xl={6} xxl={4}>
|
||||
<Card>
|
||||
<Statistic
|
||||
title="今日出勤率"
|
||||
@@ -304,7 +308,7 @@ const DashboardPage: React.FC = () => {
|
||||
/>
|
||||
</Card>
|
||||
</Col>
|
||||
<Col xs={12} sm={8} md={4}>
|
||||
<Col xs={12} sm={8} md={8} lg={6} xl={6} xxl={4}>
|
||||
<Card>
|
||||
<Statistic
|
||||
title="教室占用率"
|
||||
@@ -314,7 +318,7 @@ const DashboardPage: React.FC = () => {
|
||||
/>
|
||||
</Card>
|
||||
</Col>
|
||||
<Col xs={12} sm={8} md={4}>
|
||||
<Col xs={12} sm={8} md={8} lg={6} xl={6} xxl={4}>
|
||||
<Card>
|
||||
<Statistic
|
||||
title="本月收入"
|
||||
@@ -324,7 +328,7 @@ const DashboardPage: React.FC = () => {
|
||||
/>
|
||||
</Card>
|
||||
</Col>
|
||||
<Col xs={12} sm={8} md={4}>
|
||||
<Col xs={12} sm={8} md={8} lg={6} xl={6} xxl={4}>
|
||||
{/* 占位:保持 6 列布局最后一个空位 */}
|
||||
</Col>
|
||||
</Row>
|
||||
|
||||
@@ -43,7 +43,8 @@ async getAttendanceTrend(
|
||||
|
||||
const trendQb = attendanceRepo
|
||||
.createQueryBuilder('a')
|
||||
.select('a.attendanceDate', 'date')
|
||||
// DATE_FORMAT 直接输出 YYYY-MM-DD 字符串,避免 mysql2 把 DATE 列序列化成 ISO 时间戳
|
||||
.select("DATE_FORMAT(a.attendanceDate, '%Y-%m-%d')", 'date')
|
||||
.addSelect('a.status', 'status')
|
||||
.addSelect('COUNT(*)', 'count')
|
||||
.where('a.attendanceDate >= :start', { start: startStr })
|
||||
|
||||
Reference in New Issue
Block a user