From e9fbc2ddc567231a0d8a7cb3136ed7dc51b08b48 Mon Sep 17 00:00:00 2001 From: tangjie <122778500@qq.com> Date: Thu, 9 Jul 2026 14:15:20 +0800 Subject: [PATCH 1/2] fix --- src/api/qualFiling/index.js | 380 ++++-------------- .../QualApplication/FiledManage/List/index.js | 4 +- .../FilingApplication/List/index.js | 1 + .../FilingChange/List/index.js | 6 +- .../components/ChangeHistoryModal.jsx | 4 +- .../QualApplication/FilingForm/index.js | 12 +- .../QualApplication/FilingListTable.jsx | 24 +- .../Container/QualApplication/filingPaths.js | 14 +- 8 files changed, 109 insertions(+), 336 deletions(-) diff --git a/src/api/qualFiling/index.js b/src/api/qualFiling/index.js index 8b7c63a..1f9ebbc 100644 --- a/src/api/qualFiling/index.js +++ b/src/api/qualFiling/index.js @@ -1,338 +1,115 @@ -/** 资质备案:接口定义与前后端字段适配 */ - import { declareRequest } from "@cqsjjb/jjb-dva-runtime"; -import { fromPageResponse, fromSingleResponse, toPageQuery } from "../../utils/enterpriseInfo/adapter"; -import { apiGet, apiPost, apiPostDelete, safeAction, safePageResult } from "../../utils/enterpriseInfo/http"; -import { asId, normalizeQueryIds } from "../../utils/enterpriseInfo/idUtil"; -import { formatDate, toApiDate, toDayjs } from "../../utils/dateFormat"; -import { parseUploadFileList, resolveUploadFileId } from "../../utils/mockUpload"; - -// ─── 工具 ─── - -const APPLY_TYPE_APPLICATION = 1; - -// ─── 字段映射:列表行 ─── - -export function toFilingListRow(data = {}) { - return { - id: asId(data.id), - filingId: data.filingId, - filingTerritoryCode: data.filingTerritoryCode, - filingTerritoryName: data.filingTerritoryName, - filingUnitName: data.filingUnitName, - filingNo: data.filingNo || (data.id ? String(data.id) : ""), - businessScope: data.businessScope, - filingStatusCode: data.filingStatusCode, - filingStatusName: data.filingStatusName, - applyTypeCode: data.applyTypeCode, - applyTypeName: data.applyTypeName, - changeCount: Number(data.changeCount ?? 0), - originFilingId: asId(data.originFilingId), - rejectReason: data.rejectReason, - submitTime: formatDate(data.submitTime), - approveTime: formatDate(data.approveTime), - }; -} - - - -export function fromFilingBasicForm(values = {}) { - const territoryName = values.filingTerritoryName || values.filingTerritoryCode; - const unitTypeName = values.filingUnitTypeName || values.filingUnitTypeCode; - return normalizeQueryIds({ - id: asId(values.id), - businessScope: values.businessScope, - filingTerritoryCode: territoryName, - filingTerritoryName: territoryName, - filingUnitName: values.filingUnitName, - filingUnitTypeCode: unitTypeName, - filingUnitTypeName: unitTypeName, - filingNo: values.filingNo, - registerAddress: values.registerAddress, - officeAddress: values.officeAddress, - creditCode: values.creditCode, - qualCertNo: values.qualCertNo, - legalPersonPhone: values.legalPersonPhone, - contactPhone: values.contactPhone, - infoDisclosureUrl: values.infoDisclosureUrl, - fixedAssetAmount: values.fixedAssetAmount, - workplaceArea: values.workplaceArea, - archiveRoomArea: values.archiveRoomArea, - fulltimeEvaluatorCount: values.fulltimeEvaluatorCount, - registeredEngineerCount: values.registeredEngineerCount, - unitIntro: values.unitIntro, - attachmentUrl: values.attachmentUrl, - }); -} - -// ─── 字段映射:详情 ─── - -export function toFilingDetail(data = {}) { - return { - ...data, - materials: (data.materials || []), - commitment: data.commitment ? toFilingCommitmentForm(data.commitment, data.filingUnitName) : null, - personnelList: (data.personnelList || []).map(toFilingPersonnelRow), - equipmentList: (data.equipmentList || []).map(toFilingEquipmentRow), - }; -} - - - -// ─── 字段映射:承诺书 ─── - -export function parseCommitmentNames(content = "", filingUnitName = "") { - const withComma = String(content).match(/本人是(.+?),是(.+?)法定代表人/); - if (withComma) { - return { - legalRepName: withComma[1]?.trim() || "", - filingUnitName: withComma[2]?.trim() || filingUnitName || "", - }; - } - const legacy = String(content).match(/本人是(.+?)是(.+?)法定代表人/); - return { - legalRepName: legacy?.[1]?.trim() || "", - filingUnitName: legacy?.[2]?.trim() || filingUnitName || "", - }; -} - -export function toFilingCommitmentForm(data = {}, filingUnitName = "") { - const parsed = parseCommitmentNames(data.commitmentContent, filingUnitName); - const legalRepPersonnelId = data.legalRepPersonnelId ? String(asId(data.legalRepPersonnelId)) : ""; - return { - id: asId(data.id), - filingId: asId(data.filingId), - commitmentContent: data.commitmentContent, - legalRepPersonnelId, - legalRepName: data.legalRepName || parsed.legalRepName, - filingUnitName: parsed.filingUnitName || filingUnitName, - legalRepSignatureUrl: data.legalRepSignatureUrl, - signDate: toDayjs(data.signDate), - signatureFiles: parseUploadFileList(data.legalRepSignatureUrl, "电子签名.jpg"), - }; -} - -export function fromFilingCommitmentForm(values = {}, filingId) { - const personnelId = asId(values.legalRepPersonnelId); - return { - id: asId(values.id), - filingId: asId(filingId), - commitmentContent: values.commitmentContent, - legalRepSignatureUrl: values.legalRepSignatureUrl, - signDate: toApiDate(values.signDate), - legalRepPersonnelId: personnelId || null, - legalRepName: values.legalRepName || "", - }; -} - -// ─── 字段映射:人员 / 装备 ─── - -export function toFilingPersonnelRow(data = {}) { - const personName = data.personName || data.userName || data.staffName; - return { - id: asId(data.id), - filingId: asId(data.filingId), - sourcePersonnelId: asId(data.sourcePersonnelId), - personName, - userName: personName, - personTypeCode: data.personTypeCode, - personTypeName: data.personTypeName, - positionName: data.positionName, - titleName: data.titleName, - genderCode: data.genderCode, - genderName: data.genderName, - birthDate: data.birthDate, - joinWorkDate: data.joinWorkDate, - idCardNo: data.idCardNo, - currentAddress: data.currentAddress, - officeAddress: data.officeAddress, - educationCode: data.educationCode, - educationName: data.educationName, - graduateSchool: data.graduateSchool, - major: data.major, - qualScope: data.qualScope, - publications: data.publications, - professionalLevelCert: data.professionalLevelCert, - registerEngineerFlag: data.registerEngineerFlag, - abilityDeclaration: data.abilityDeclaration, - workExperience: data.workExperience, - proofMaterialUrl: data.proofMaterialUrl, - }; -} - - - -export function toFilingEquipmentRow(data = {}) { - return { - id: asId(data.id), - filingId: asId(data.filingId), - sourceEquipmentId: asId(data.sourceEquipmentId), - deviceName: data.deviceName, - deviceModel: data.deviceModel, - manufacturer: data.manufacturer, - calibrationReportUrl: data.calibrationReportUrl, - }; -} - -// ─── 字段映射:变更历史 ─── - -export function toChangeHistory(data = {}) { - return { - changeCount: Number(data.changeCount ?? 0), - records: (data.records || []).map((item, index) => ({ - id: asId(item.id), - index: index + 1, - changeItemName: item.changeItemName, - changeTime: formatDate(item.changeTime), - operatorName: item.operatorName, - })), - }; -} - - - -// ─── 分页查询参数映射 ─── - -function toFilingPageQuery(params = {}) { - const { filingTerritoryName, filingTerritoryCode, filingStatus, ...rest } = params; - const query = toPageQuery(rest, { - filingUnitName: "filingUnitName", - filingNo: "filingNo", - applyTypeCode: "applyTypeCode", - }); - const territory = filingTerritoryCode || filingTerritoryName; - if (territory) { - query.filingTerritoryCode = territory; - } - if (filingStatus !== undefined && filingStatus !== null && filingStatus !== "") { - query.filingStatusCode = Number(filingStatus); - } - return query; -} +import { apiGet } from "../../utils/enterpriseInfo/http"; // ═══════════════════════════════════════════════════ -// 接口 Action +// 详情查询 // ═══════════════════════════════════════════════════ export async function fetchQualFilingDetail(id) { - const res = await apiGet("/safetyEval/qual-filing/detail", { id: asId(id) }); - return fromSingleResponse(res, toFilingDetail); + return apiGet("/safetyEval/qual-filing/detail", { id }); } export async function fetchQualChangeDetail(id) { - const res = await apiGet("/safetyEval/qual-filing-change/detail", { id: asId(id) }); - return fromSingleResponse(res, toFilingDetail); + return apiGet("/safetyEval/qual-filing-change/detail", { id }); } export async function fetchQualFilingChangeHistory(filingId) { - const res = await apiGet("/safetyEval/qual-filing-change/history", { - filingId: asId(filingId), - }); - return fromSingleResponse(res, toChangeHistory); + return apiGet("/safetyEval/qual-filing-change/history", { filingId }); } -export const qualFilingPage = declareRequest("qualFilingLoading", safePageResult(async (params) => { - const res = await apiGet("/safetyEval/qual-filing/page", toFilingPageQuery(params)); - return fromPageResponse(res, toFilingListRow); -})); +// ═══════════════════════════════════════════════════ +// 分页列表 +// ═══════════════════════════════════════════════════ -export const qualFilingFiledPage = declareRequest("qualFilingLoading", safePageResult(async (params) => { - const res = await apiGet("/safetyEval/qual-filing/filed/page", toFilingPageQuery(params)); - return fromPageResponse(res, toFilingListRow); -})); +export const qualFilingPage = declareRequest("qualFilingLoading", "Get > /safetyEval/qual-filing/page"); -export const qualFilingChangePage = declareRequest("qualFilingLoading", safePageResult(async (params) => { - const res = await apiGet("/safetyEval/qual-filing-change/org/page", toFilingPageQuery(params)); - return fromPageResponse(res, toFilingListRow); -})); +export const qualFilingFiledPage = declareRequest("qualFilingLoading", "Get > /safetyEval/qual-filing/filed/page"); -export const qualFilingDraft = declareRequest("qualFilingLoading", safeAction(async () => { - const res = await apiPost("/safetyEval/qual-filing/draft?applyTypeCode=1", {}); - return fromSingleResponse(res, toFilingListRow); -})); +export const qualFilingChangePage = declareRequest("qualFilingLoading", "Get > /safetyEval/qual-filing-change/org/page"); -export const qualFilingFiledDraft = declareRequest("qualFilingLoading", safeAction(async () => { - const res = await apiPost("/safetyEval/qual-filing/filed/draft", {}); - return fromSingleResponse(res, toFilingListRow); -})); +// ═══════════════════════════════════════════════════ +// 草稿 / 提交 +// ═══════════════════════════════════════════════════ -export const qualFilingSaveDraft = declareRequest("qualFilingLoading", safeAction(async (values) => { - const res = await apiPost("/safetyEval/qual-filing/save-draft", fromFilingBasicForm(values)); - return fromSingleResponse(res, toFilingListRow); -})); +export const qualFilingDraft = declareRequest( + "qualFilingLoading", + "Post > @/safetyEval/qual-filing/draft?applyTypeCode=1", +); -export const qualFilingSubmit = declareRequest("qualFilingLoading", safeAction(async ({ id }) => { - const res = await apiPost(`/safetyEval/qual-filing/submit?id=${encodeURIComponent(asId(id))}`, {}); - return fromSingleResponse(res, toFilingListRow); -})); +export const qualFilingFiledDraft = declareRequest( + "qualFilingLoading", + "Post > @/safetyEval/qual-filing/filed/draft", +); -export const qualFilingDelete = declareRequest("qualFilingLoading", safeAction(async ({ id }) => { - return apiPostDelete("/safetyEval/qual-filing/delete", id); -})); +export const qualFilingSaveDraft = declareRequest( + "qualFilingLoading", + "Post > @/safetyEval/qual-filing/save-draft", +); -export const qualFilingMaterialInitTemplate = declareRequest("qualFilingLoading", safeAction(async ({ filingId }) => { - return apiPost(`/safetyEval/qual-filing-material/init-template?filingId=${encodeURIComponent(asId(filingId))}`, {}); -})); +export const qualFilingSubmit = declareRequest( + "qualFilingLoading", + "Post > @/safetyEval/qual-filing/submit", +); -export const qualFilingMaterialUpload = declareRequest("qualFilingLoading", safeAction(async ({ id, attachmentUrl, files }) => { - const url = attachmentUrl || resolveUploadFileId(files); - const res = await apiPost("/safetyEval/qual-filing-material/upload", { id: asId(id), attachmentUrl: url }); - return fromSingleResponse(res); -})); +export const qualFilingDelete = declareRequest( + "qualFilingLoading", + "Post > @/safetyEval/qual-filing/delete", +); -export const qualFilingUploadAttachment = declareRequest("qualFilingLoading", safeAction(async ({ id, attachmentUrl, files }) => { - const url = attachmentUrl || resolveUploadFileId(files); - const res = await apiPost("/safetyEval/qual-filing/upload-attachment", { id: asId(id), attachmentUrl: url }); - return fromSingleResponse(res, toFilingListRow); -})); +export const qualFilingMaterialInitTemplate = declareRequest( + "qualFilingLoading", + "Post > @/safetyEval/qual-filing-material/init-template", +); -export const qualFilingCommitmentSaveOrUpdate = declareRequest("qualFilingLoading", safeAction(async (values) => { - const payload = fromFilingCommitmentForm(values, values.filingId); - const res = await apiPost("/safetyEval/qual-filing-commitment/save-or-update", payload); - return fromSingleResponse(res); -})); +export const qualFilingMaterialUpload = declareRequest( + "qualFilingLoading", + "Post > @/safetyEval/qual-filing-material/upload", +); -export const qualFilingCommitmentUploadSignature = declareRequest("qualFilingLoading", safeAction(async ({ id, attachmentUrl, files }) => { - const url = attachmentUrl || resolveUploadFileId(files); - const res = await apiPost("/safetyEval/qual-filing-commitment/upload-signature", { id: asId(id), attachmentUrl: url }); - return fromSingleResponse(res); -})); +export const qualFilingUploadAttachment = declareRequest( + "qualFilingLoading", + "Post > @/safetyEval/qual-filing/upload-attachment", +); -export const qualFilingPersonnelBatchAdd = declareRequest("qualFilingLoading", safeAction(async ({ filingId, sourcePersonnelIds }) => { - const res = await apiPost("/safetyEval/qual-filing-personnel/batch-add-from-org", { - filingId: asId(filingId), - sourcePersonnelIds: (sourcePersonnelIds || []).map(asId), - }); - return res; -})); +export const qualFilingCommitmentSaveOrUpdate = declareRequest( + "qualFilingLoading", + "Post > @/safetyEval/qual-filing-commitment/save-or-update", +); -export const qualFilingPersonnelDelete = declareRequest("qualFilingLoading", safeAction(async ({ id }) => { - return apiPostDelete("/safetyEval/qual-filing-personnel/delete", id); -})); +export const qualFilingCommitmentUploadSignature = declareRequest( + "qualFilingLoading", + "Post > @/safetyEval/qual-filing-commitment/upload-signature", +); -export const qualFilingEquipmentBatchAdd = declareRequest("qualFilingLoading", safeAction(async ({ filingId, sourceEquipmentIds }) => { - const res = await apiPost("/safetyEval/qual-filing-equipment/batch-add-from-org", { - filingId: asId(filingId), - sourceEquipmentIds: (sourceEquipmentIds || []).map(asId), - }); - return res; -})); +export const qualFilingPersonnelBatchAdd = declareRequest( + "qualFilingLoading", + "Post > @/safetyEval/qual-filing-personnel/batch-add-from-org", +); -export const qualFilingEquipmentUploadCalibration = declareRequest("qualFilingLoading", safeAction(async ({ id, attachmentUrl, files }) => { - const url = attachmentUrl || resolveUploadFileId(files); - const res = await apiPost("/safetyEval/qual-filing-equipment/upload-calibration", { id: asId(id), attachmentUrl: url }); - return fromSingleResponse(res); -})); +export const qualFilingPersonnelDelete = declareRequest( + "qualFilingLoading", + "Post > @/safetyEval/qual-filing-personnel/delete", +); -export const qualFilingEquipmentDelete = declareRequest("qualFilingLoading", safeAction(async ({ id }) => { - return apiPostDelete("/safetyEval/qual-filing-equipment/delete", id); -})); +export const qualFilingEquipmentBatchAdd = declareRequest( + "qualFilingLoading", + "Post > @/safetyEval/qual-filing-equipment/batch-add-from-org", +); +export const qualFilingEquipmentUploadCalibration = declareRequest( + "qualFilingLoading", + "Post > @/safetyEval/qual-filing-equipment/upload-calibration", +); +export const qualFilingEquipmentDelete = declareRequest( + "qualFilingLoading", + "Post > @/safetyEval/qual-filing-equipment/delete", +); -export const qualFilingChangeSubmit = declareRequest("qualFilingLoading", safeAction(async ({ draftFilingId }) => { - return apiPost("/safetyEval/qual-filing-change/submit", { draftFilingId: asId(draftFilingId) }); -})); +export const qualFilingChangeSubmit = declareRequest( + "qualFilingLoading", + "Post > @/safetyEval/qual-filing-change/submit", +); export const qualFilingReviewGet = declareRequest( "qualFilingLoading", @@ -348,4 +125,3 @@ export const submitQualFilingChange = declareRequest( "qualFilingSubmitLoading", "Post > @/safetyEval/qual-filing-change/aggregationSaveOrEdit", ); - diff --git a/src/pages/Container/QualApplication/FiledManage/List/index.js b/src/pages/Container/QualApplication/FiledManage/List/index.js index d736887..a43ab3e 100644 --- a/src/pages/Container/QualApplication/FiledManage/List/index.js +++ b/src/pages/Container/QualApplication/FiledManage/List/index.js @@ -7,7 +7,6 @@ import { AntdTableFuncControl } from "@cqsjjb/jjb-common-decorator/antd"; import { NS_QUAL_FILING } from "~/enumerate/namespace"; import { FILING_FORM_MODE } from "~/enumerate/qualFilingOptions"; import FilingListTable from "../../FilingListTable"; -import { goFilingForm } from "../../filingPaths"; const { router } = tools; @@ -56,7 +55,7 @@ function FiledManageListPage(props) { }; const handleCreate = () => { - goFilingForm({ mode: FILING_FORM_MODE.FILED }); + props.history.push(`/container/qualApplication/filingForm?mode=${FILING_FORM_MODE.FILED}`); }; const [reviewModalOpen, setReviewModalOpen] = useState(false); @@ -98,6 +97,7 @@ function FiledManageListPage(props) { total={total} loading={loading} scrollY={props.scrollY} + history={props.history} searchForm={searchForm} onSearch={handleSearch} onPageChange={handlePageChange} diff --git a/src/pages/Container/QualApplication/FilingApplication/List/index.js b/src/pages/Container/QualApplication/FilingApplication/List/index.js index 0311b67..ae5c7ea 100644 --- a/src/pages/Container/QualApplication/FilingApplication/List/index.js +++ b/src/pages/Container/QualApplication/FilingApplication/List/index.js @@ -93,6 +93,7 @@ function FilingApplicationListPage(props) { total={total} loading={loading} scrollY={props.scrollY} + history={props.history} searchForm={searchForm} onSearch={handleSearch} onPageChange={handlePageChange} diff --git a/src/pages/Container/QualApplication/FilingChange/List/index.js b/src/pages/Container/QualApplication/FilingChange/List/index.js index ad30a04..47d758b 100644 --- a/src/pages/Container/QualApplication/FilingChange/List/index.js +++ b/src/pages/Container/QualApplication/FilingChange/List/index.js @@ -48,9 +48,8 @@ function FilingChangeListPage(props) { }, []); const handleSearch = (values) => { - const { filingNo, ...rest } = values; - const { filingNo: _omit, ...restQuery } = router.query; - router.query = { ...restQuery, ...rest, ...(filingNo != null && filingNo !== "" ? { id: filingNo } : {}), current: 1, size: 10 }; + + router.query = { ...values, current: 1, size: 10 }; getData(); }; @@ -86,6 +85,7 @@ function FilingChangeListPage(props) { total={total} loading={loading} scrollY={props.scrollY} + history={props.history} searchForm={searchForm} onSearch={handleSearch} onPageChange={handlePageChange} diff --git a/src/pages/Container/QualApplication/FilingForm/components/ChangeHistoryModal.jsx b/src/pages/Container/QualApplication/FilingForm/components/ChangeHistoryModal.jsx index d03381a..005de70 100644 --- a/src/pages/Container/QualApplication/FilingForm/components/ChangeHistoryModal.jsx +++ b/src/pages/Container/QualApplication/FilingForm/components/ChangeHistoryModal.jsx @@ -48,12 +48,12 @@ export default function ChangeHistoryModal({ open, filingId, onCancel }) {