fix: OCR 审查驱动的全库修复(安全/正确性/部署/前端) #64

Merged
wangziqi merged 43 commits from feat/ocr-review-fixes into main 2026-08-09 13:32:19 +00:00
4 changed files with 6 additions and 5 deletions
Showing only changes of commit 00cdb322d2 - Show all commits

View File

@@ -507,6 +507,7 @@ const ClassroomRentalsPage: React.FC = () => {
style={{ width: '100%' }}
placeholder={['开始日期', '结束日期']}
format="YYYY-MM-DD"
allowEmpty={[true, true]}
disabled={!selectedClassroomId}
disabledDate={(date) => unavailableDatesLoading || isDateUnavailable(date)}
onPanelChange={(dates) => dates.forEach((date) => date && handleCalendarChange(date))}

View File

@@ -352,7 +352,7 @@ const RolesPage: React.FC = () => {
onOk={handleSubmit}
onCancel={() => roleGuard.confirmClose(() => setModalOpen(false))}
width={700}
destroyOnHidden
forceRender
confirmLoading={saving}
>
<Form form={form} layout="vertical">

View File

@@ -449,7 +449,7 @@ const UsersPage: React.FC = () => {
open={modalOpen}
onOk={handleSubmit}
onCancel={() => accountGuard.confirmClose(() => setModalOpen(false))}
destroyOnHidden
forceRender
confirmLoading={saving}
>
<Form form={form} layout="vertical">
@@ -496,7 +496,7 @@ const UsersPage: React.FC = () => {
open={pwdModalOpen}
onOk={handlePwdSubmit}
onCancel={() => pwdGuard.confirmClose(() => setPwdModalOpen(false))}
destroyOnHidden
forceRender
confirmLoading={saving}
>
<Form form={pwdForm} layout="vertical">
@@ -515,7 +515,7 @@ const UsersPage: React.FC = () => {
open={profileModalOpen}
onOk={handleProfileSubmit}
onCancel={() => profileGuard.confirmClose(() => setProfileModalOpen(false))}
destroyOnHidden
forceRender
confirmLoading={saving}
>
<Form form={profileForm} layout="vertical">

View File

@@ -103,7 +103,7 @@ export class DashboardService {
const totalCapacity = await capQb.getRawOne<{ total: string | number | null }>();
// MySQL 的 SUM() 聚合默认以字符串返回,需显式转成 number
const cap = Number(totalCapacity?.total ?? 0) || 0;
const occupancyRate = cap > 0 ? ((occupiedBeds / cap) * 100).toFixed(1) : 0;
const occupancyRate = cap > 0 ? ((occupiedBeds / cap) * 100).toFixed(1) : '0.0';
const billStatsQb = this.billRepo
.createQueryBuilder('b')