加上scrollToFirstError

dev-tmp1
tangjie 2026-08-11 13:46:02 +08:00
parent dd71d5c0c1
commit 31b00b37ce
25 changed files with 37 additions and 35 deletions

View File

@ -546,7 +546,7 @@ function DepartmentPositionPage(props) {
onCancel={closePositionModal}
onOk={modalForm.submit}
>
<Form form={modalForm} layout="vertical" onFinish={submitPosition}>
<Form form={modalForm} layout="vertical" onFinish={submitPosition} scrollToFirstError>
<Form.Item name="deptId" hidden>
<Input />
</Form.Item>
@ -596,6 +596,7 @@ function DepartmentPositionPage(props) {
>
<Form
form={assignRoleForm}
scrollToFirstError
layout="vertical"
onFinish={submitAssignRole}
>
@ -740,7 +741,7 @@ function DeptFormModal({
onCancel={onCancel}
onOk={form.submit}
>
<Form form={form} layout="vertical" onFinish={handleSubmit}>
<Form form={form} layout="vertical" onFinish={handleSubmit} scrollToFirstError>
{!currentId && (
<Form.Item
name="parentId"

View File

@ -372,7 +372,7 @@ function EquipFormModal({
onCancel={handleCancel}
onOk={form.submit}
>
<Form form={form} layout="vertical" onFinish={handleSubmit}>
<Form form={form} layout="vertical" onFinish={handleSubmit} scrollToFirstError>
<Row gutter={16}>
<Col span={12}>
<Form.Item

View File

@ -1,4 +1,4 @@
import React, { useEffect, useMemo, useRef, useState } from 'react';
import React, { useEffect, useMemo, useRef, useState } from 'react';
import { Button, Form, Input, message, Space } from 'antd';
import {
CheckCircleFilled,
@ -120,7 +120,7 @@ function FillStep({ onSubmitted }) {
return (
<div className="material-fill-step">
<Form form={form} initialValues={materialInitialValues} colon={false} labelAlign="right">
<Form form={form} initialValues={materialInitialValues} colon={false} labelAlign="right" scrollToFirstError>
<div className="material-form-grid">
{groupedRows.map((row, index) => (
<div key={index} className="material-form-row">

View File

@ -173,7 +173,7 @@ function OrgInfoPage(props) {
>
<Form form={form} layout="vertical" disabled={!editing}>
<Form form={form} layout="vertical" disabled={!editing} scrollToFirstError>
<Row gutter={16}>
{/* 2026-08-08 字段顺序严格对齐原型 institution.html 434-450 行 */}
<Col span={12}>

View File

@ -413,7 +413,7 @@ function CertModal({
onCancel={handleCancel}
onOk={form.submit}
>
<Form form={form} layout="vertical" onFinish={handleSubmit}>
<Form form={form} layout="vertical" onFinish={handleSubmit} scrollToFirstError>
<Form.Item name="businessScope" label="专业范围" rules={[{ required: true, message: "请选择专业范围" }]}>
<Select
placeholder="请选择专业范围"

View File

@ -732,6 +732,7 @@ function StaffFormModal({
>
<Form
form={form}
scrollToFirstError
layout="vertical"
onValuesChange={onValuesChange}
onFinish={handleSubmit}
@ -1431,7 +1432,7 @@ function ResetPasswordModal({
onCancel={handleCancel}
onOk={form.submit}
>
<Form form={form} layout="vertical" onFinish={handleSubmit}>
<Form form={form} layout="vertical" onFinish={handleSubmit} scrollToFirstError>
<Form.Item
name="resetPassword"
label="新密码"

View File

@ -350,7 +350,7 @@ function CertFormModal({
<div style={{ color: "#999", marginBottom: 16, fontSize: 12 }}>
严谨在本互联网非涉密平台处理传输国家秘密和工作秘密请确认扫描传输的文件资料不涉及国家秘密和工作秘密
</div>
<Form form={form} layout="horizontal" onFinish={handleSubmit} labelCol={{ span: 4 }}>
<Form form={form} layout="horizontal" onFinish={handleSubmit} labelCol={{ span: 4 }} scrollToFirstError>
<Form.Item
name="licenseTypeName"
label="证照类型"

View File

@ -257,7 +257,7 @@ function AddModal({ open, staffOptions, requestAdd, onCancel, onSuccess }) {
onCancel={handleCancel}
onOk={handleSubmit}
>
<Form form={form} layout="vertical">
<Form form={form} layout="vertical" scrollToFirstError>
<Form.Item
name="personnelId"
label="申请人"

View File

@ -613,7 +613,7 @@ const InstitutionInspectionNotice = (props) => {
title="处理要求"
desc="机构收到消息后直接填写说明并上传证明材料,完成后提交监管复核。"
/>
<Form form={processForm} layout="vertical" preserve={false}>
<Form form={processForm} layout="vertical" preserve={false} scrollToFirstError>
<div className="inst-form-grid">
<Form.Item name="noticeNo" label="关联消息编号">
<Input readOnly />

View File

@ -316,7 +316,7 @@ const RiskCenter = (props) => {
<div style={{ padding: "0 0 8px", fontSize: 13, color: "#666" }}>
风险预警中心统一办理监管处置确认来源选择处置方式发送机构消息等待机构反馈复核并闭环
</div>
<Form form={processForm} layout="vertical" style={{ display: "grid", gridTemplateColumns: "1fr 1fr", gap: "0 16px" }}>
<Form form={processForm} layout="vertical" style={{ display: "grid", gridTemplateColumns: "1fr 1fr", gap: "0 16px" }} scrollToFirstError>
<Form.Item name="method" label="处置方式" rules={[{ required: true, message: "请选择处置方式" }]}>
<Select placeholder="请选择处置方式" options={[
{ label: "发送整改通知", value: "send_rectify" },

View File

@ -105,7 +105,7 @@ const QualConfirmForm = (props) => {
<div className="opinion-card">
<div className="summary-card-title">📝 确认意见</div>
<Form form={form} layout="vertical">
<Form form={form} layout="vertical" scrollToFirstError>
<Form.Item
label="确认结果"
name="reviewResult"

View File

@ -167,7 +167,7 @@ const ReviewModal = (props) => {
</div>
</div>
<Form form={form} layout="vertical" style={{ marginTop: "0.5rem" }}>
<Form form={form} layout="vertical" style={{ marginTop: "0.5rem" }} scrollToFirstError>
<Form.Item
label="审核结果"
name="reviewResult"

View File

@ -302,7 +302,7 @@ const SiteReviewNotice = (props) => {
width={760}
destroyOnHidden
>
<Form form={noticeForm} layout="vertical">
<Form form={noticeForm} layout="vertical" scrollToFirstError>
<Row gutter={16}>
<Col span={12}>
<Form.Item name="orgId" label="受审查机构" rules={[{ required: true, message: "请选择" }]}>
@ -372,7 +372,7 @@ const SiteReviewNotice = (props) => {
<div style={{ fontSize: 13, color: "#666", marginBottom: 16 }}>
上传现场审查结果文件并保存审查结论和意见
</div>
<Form form={resultForm} layout="vertical">
<Form form={resultForm} layout="vertical" scrollToFirstError>
<Row gutter={16}>
<Col span={12}>
<Form.Item name="institution" label="受审查机构">

View File

@ -338,7 +338,7 @@ const CustomerManage = (props) => {
width={800}
destroyOnHidden
>
<Form form={modalForm} layout="vertical">
<Form form={modalForm} layout="vertical" scrollToFirstError>
<Row gutter={16}>
<Col span={12}>
<Form.Item

View File

@ -146,7 +146,7 @@ const EvalProjectCreate = (props) => {
}
loading={detailLoading}
>
<Form form={form} layout="vertical" disabled={isView}>
<Form form={form} layout="vertical" disabled={isView} scrollToFirstError>
<Card title="项目基本信息" style={{ marginBottom: 24 }}>
<Row gutter={24}>
<Col span={12}>

View File

@ -768,7 +768,7 @@ const EvalReportLibrary = (props) => {
destroyOnClose
className="erl-upload-modal"
>
<Form form={uploadForm} layout="vertical" preserve={false}>
<Form form={uploadForm} layout="vertical" preserve={false} scrollToFirstError>
<Form.Item name="fileUrl" hidden>
<Input />
</Form.Item>
@ -1110,7 +1110,7 @@ const EvalReportLibrary = (props) => {
</div>
</div>
)}
<Form form={rectifyForm} layout="vertical" preserve={false}>
<Form form={rectifyForm} layout="vertical" preserve={false} scrollToFirstError>
<Form.Item
name="rectifyFeedback"
label="整改反馈"

View File

@ -240,7 +240,7 @@ const ProjectDocLibrary = (props) => {
width={700}
destroyOnHide={true}
>
<Form form={uploadForm} layout="vertical" preserve={false}>
<Form form={uploadForm} layout="vertical" preserve={false} scrollToFirstError>
<Form.Item
label="项目"
name="projectId"

View File

@ -166,7 +166,7 @@ const ArchiveContent = ({ readOnly, ...props }) => {
size="small"
/>
<Form form={archiveForm} layout="vertical" disabled={readOnly}>
<Form form={archiveForm} layout="vertical" disabled={readOnly} scrollToFirstError>
<Row gutter={16} style={{ marginTop: 16, marginBottom: 16 }}>
<Col span={6}>
<Form.Item label="项目编号" name="projectNo">

View File

@ -136,7 +136,7 @@ const ContractContent = ({ readOnly, ...props }) => {
</span>
</div>
<Card title="项目合同信息" styles={{ header: { textAlign: "center" } }}>
<Form form={form} layout="vertical" disabled={readOnly}>
<Form form={form} layout="vertical" disabled={readOnly} scrollToFirstError>
<Card
type="inner"
size="small"

View File

@ -167,7 +167,7 @@ const RiskAnalysisContent = ({ readOnly, ...props }) => {
title="安全评价风险分析记录表"
styles={{ header: { textAlign: "center" } }}
>
<Form form={form} layout="vertical" disabled={readOnly}>
<Form form={form} layout="vertical" disabled={readOnly} scrollToFirstError>
<Row gutter={16}>
<Col span={12}>
<Form.Item label="风险分析时间" name="analysisDate">

View File

@ -321,7 +321,7 @@ const SurveyContent = ({ readOnly, ...props }) => {
items={STAGES.map((s) => ({ title: s.label }))}
/>
<Form form={form} layout="vertical" disabled={readOnly}>
<Form form={form} layout="vertical" disabled={readOnly} scrollToFirstError>
<div style={{ display: activeStage === "PRACTICE_NOTIFICATION" ? "block" : "none" }}>
<NoticePanel readOnly={readOnly} />
</div>

View File

@ -418,7 +418,7 @@ function OrgAccountPage(props) {
}}
onOk={onEditSubmit}
>
<Form form={editForm} layout="vertical">
<Form form={editForm} layout="vertical" scrollToFirstError>
<Row gutter={16}>
<Col span={12}>
<Form.Item

View File

@ -995,7 +995,7 @@ const EvalReportDatabase = (props) => {
title="导出设置"
desc="导出当前查询范围内的数据,系统将记录导出人和导出时间。"
>
<Form form={exportForm} layout="vertical" preserve={false} className="redb-form-grid">
<Form form={exportForm} layout="vertical" preserve={false} className="redb-form-grid" scrollToFirstError>
<Form.Item
name="scope"
label="导出范围"
@ -1042,7 +1042,7 @@ const EvalReportDatabase = (props) => {
title="批量操作确认"
desc="批量分类将按年度、行业和评价类型重新校验目录;批量下载将生成所选报告的压缩文件。"
>
<Form form={batchForm} layout="vertical" preserve={false} className="redb-form-grid">
<Form form={batchForm} layout="vertical" preserve={false} className="redb-form-grid" scrollToFirstError>
<Form.Item name="scopeLabel" label="操作范围" className="redb-field">
<Input disabled />
</Form.Item>
@ -1110,7 +1110,7 @@ const EvalReportDatabase = (props) => {
destroyOnClose
className="redb-modal"
>
<Form form={spotcheckForm} layout="vertical" preserve={false}>
<Form form={spotcheckForm} layout="vertical" preserve={false} scrollToFirstError>
<Form.Item
name="checkResultCode"
label="抽查结果"
@ -1162,7 +1162,7 @@ const EvalReportDatabase = (props) => {
<div>整改反馈{reviewRecord.rectifyFeedback || "-"}</div>
</div>
)}
<Form form={reviewForm} layout="vertical" preserve={false}>
<Form form={reviewForm} layout="vertical" preserve={false} scrollToFirstError>
<Form.Item
name="reviewResultCode"
label="复核结果"

View File

@ -312,7 +312,7 @@ const ExperManage = (props) => {
confirmLoading={submiting}
width={520}
>
<Form form={editForm} layout="vertical">
<Form form={editForm} layout="vertical" scrollToFirstError>
<Form.Item
name="userName"
label="姓名"

View File

@ -759,7 +759,7 @@ const InspectionNotice = (props) => {
title="告知信息"
desc="告知下发后同步至机构端消息中心,机构需确认检查时间并按要求准备材料。"
>
<Form form={createForm} layout="vertical" preserve={false}>
<Form form={createForm} layout="vertical" preserve={false} scrollToFirstError>
<div className="insp-form-grid">
<Form.Item
name="orgId"
@ -875,7 +875,7 @@ const InspectionNotice = (props) => {
/>
</ModalSection>
<div className="insp-form-grid" style={{ marginTop: "1rem" }}>
<Form form={remarkForm} layout="vertical" className="insp-form-full">
<Form form={remarkForm} layout="vertical" className="insp-form-full" scrollToFirstError>
<Form.Item name="remarks" label="监管备注" className="insp-form-full">
<TextArea rows={3} placeholder="填写检查前备注或补充要求" />
</Form.Item>
@ -911,7 +911,7 @@ const InspectionNotice = (props) => {
title="检查结果"
desc="记录实际检查情况、不符合项、整改要求和后续处置。"
>
<Form form={resultForm} layout="vertical" preserve={false}>
<Form form={resultForm} layout="vertical" preserve={false} scrollToFirstError>
<div className="insp-form-grid">
<Form.Item name="resultTime" label="实际检查时间">
<DatePicker showTime format="YYYY-MM-DD HH:mm" style={{ width: "100%" }} />
@ -970,7 +970,7 @@ const InspectionNotice = (props) => {
title="导出设置"
desc="导出当前查询范围内的数据,系统将记录导出人和导出时间。"
>
<Form form={exportForm} layout="vertical" preserve={false}>
<Form form={exportForm} layout="vertical" preserve={false} scrollToFirstError>
<div className="insp-form-grid">
<Form.Item name="scope" label="导出范围" initialValue="FILTERED">
<Select