huwei 2026-07-09 09:24:30 +08:00
commit f3d9291fdb
9 changed files with 34 additions and 24 deletions

View File

@ -10,7 +10,7 @@ module.exports = {
javaGitBranch: "dev", javaGitBranch: "dev",
// 本地联调 safetyEval-servicecontext-path: /safetyEval默认端口 8095 // 本地联调 safetyEval-servicecontext-path: /safetyEval默认端口 8095
// 可通过环境变量覆盖: SAFETY_EVAL_API_HOST=http://192.168.x.x:8095 // 可通过环境变量覆盖: SAFETY_EVAL_API_HOST=http://192.168.x.x:8095
API_HOST: "http://192.168.0.149", API_HOST: "http://192.168.0.152",
}, },
production: { production: {
// 应用后端分支名称,部署上线需要 // 应用后端分支名称,部署上线需要

View File

@ -120,7 +120,7 @@ export default function StaffViewModal({
onCancel={onCancel} onCancel={onCancel}
> >
<Descriptions bordered column={2} labelStyle={{ width: 120 }}> <Descriptions bordered column={2} labelStyle={{ width: 120 }}>
<Descriptions.Item label="姓名">{info.userName}</Descriptions.Item> <Descriptions.Item label="姓名">{info.titleName}</Descriptions.Item>
<Descriptions.Item label="性别"> <Descriptions.Item label="性别">
{GENDER_MAP[info.genderCode]} {GENDER_MAP[info.genderCode]}
</Descriptions.Item> </Descriptions.Item>
@ -131,7 +131,7 @@ export default function StaffViewModal({
<Descriptions.Item label="部门">{info.deptName}</Descriptions.Item> <Descriptions.Item label="部门">{info.deptName}</Descriptions.Item>
<Descriptions.Item label="岗位">{info.postName}</Descriptions.Item> <Descriptions.Item label="岗位">{info.postName}</Descriptions.Item>
<Descriptions.Item label="人员类型"> <Descriptions.Item label="人员类型">
{info.personType || "基础人员"} {info.personTypeName || "基础人员"}
</Descriptions.Item> </Descriptions.Item>
<Descriptions.Item label="资质范围"> <Descriptions.Item label="资质范围">
{info.qualScope || "-"} {info.qualScope || "-"}
@ -183,17 +183,23 @@ export default function StaffViewModal({
<Descriptions.Item label="申报专业能力证明材料" span={2}> <Descriptions.Item label="申报专业能力证明材料" span={2}>
{proofMaterialUrl.length {proofMaterialUrl.length
? proofMaterialUrl.map((item) => { ? proofMaterialUrl.map((item) => {
const isImage = /\.(jpg|jpeg|png|gif|webp|bmp|svg)(\?.*)?$/i.test(item.url); const isImage =
/\.(jpg|jpeg|png|gif|webp|bmp|svg)(\?.*)?$/i.test(item.url);
return ( return (
<div key={item.id}> <div key={item.id}>
{isImage ? ( {isImage ? (
<Image <Image
src={item.url} src={item.url}
style={{ maxWidth: 200, cursor: "pointer" }} style={{ maxWidth: 200, cursor: "pointer" }}
preview={{ mask: item.fileName || item.name || "预览" }} preview={{
mask: item.fileName || item.name || "预览",
}}
/> />
) : ( ) : (
<Button type="link" onClick={() => window.open(item.url)}> <Button
type="link"
onClick={() => window.open(item.url)}
>
{item.fileName || item.name || item.url} {item.fileName || item.name || item.url}
</Button> </Button>
)} )}
@ -217,7 +223,7 @@ export default function StaffViewModal({
columns={[ columns={[
{ title: "证照名称", dataIndex: "certName" }, { title: "证照名称", dataIndex: "certName" },
{ title: "证书编号", dataIndex: "certNo" }, { title: "证书编号", dataIndex: "certNo" },
{ title: "证书类别", dataIndex: "certCategory" }, { title: "证书类别", dataIndex: "certTypeName" },
{ title: "发证机关", dataIndex: "issueOrg" }, { title: "发证机关", dataIndex: "issueOrg" },
{ title: "有效开始日期", dataIndex: "validStartDate", width: 120 }, { title: "有效开始日期", dataIndex: "validStartDate", width: 120 },
{ title: "有效结束日期", dataIndex: "validEndDate", width: 120 }, { title: "有效结束日期", dataIndex: "validEndDate", width: 120 },
@ -284,7 +290,7 @@ export default function StaffViewModal({
{certPreviewInfo.certNo} {certPreviewInfo.certNo}
</Descriptions.Item> </Descriptions.Item>
<Descriptions.Item label="证书类别"> <Descriptions.Item label="证书类别">
{certPreviewInfo.certCategory || "-"} {certPreviewInfo.certTypeName || "-"}
</Descriptions.Item> </Descriptions.Item>
<Descriptions.Item label="发证机关"> <Descriptions.Item label="发证机关">
{certPreviewInfo.issueOrg || "-"} {certPreviewInfo.issueOrg || "-"}
@ -295,11 +301,17 @@ export default function StaffViewModal({
<Descriptions.Item label="有效结束日期"> <Descriptions.Item label="有效结束日期">
{certPreviewInfo.validEndDate || "-"} {certPreviewInfo.validEndDate || "-"}
</Descriptions.Item> </Descriptions.Item>
<Descriptions.Item label="查看证书">
{certPreviewInfo.certAttachmentUrl &&
certPreviewInfo.certAttachmentUrl.split(",").map((item) => (
<div>
<a key={item} onClick={() => window.open(item)}>
{item}
</a>
</div>
))}
</Descriptions.Item>
</Descriptions> </Descriptions>
<FilePreviewContent
url={certPreviewUrl}
fileName={certPreviewName}
/>
</div> </div>
)} )}
</Modal> </Modal>

View File

@ -32,7 +32,7 @@ import {
import { getBirthDateFromIdCard } from "~/utils"; import { getBirthDateFromIdCard } from "~/utils";
import { idCardRule, mobileRule } from "~/utils/validators"; import { idCardRule, mobileRule } from "~/utils/validators";
import AttachmentUpload from "~/components/AttachmentUpload"; import AttachmentUpload from "~/components/AttachmentUpload";
import StaffViewModal from "../StaffViewModal"; import StaffViewModal from "~/components/StaffViewModal";
const { router } = tools; const { router } = tools;
@ -303,7 +303,7 @@ function PersonnelInfoPage(props) {
<StaffViewModal <StaffViewModal
open={viewModalOpen} open={viewModalOpen}
currentId={currentId} currentId={currentId}
requestDetails={props.staffInfoGet}
onCancel={() => { onCancel={() => {
setViewModalOpen(false); setViewModalOpen(false);
setCurrentId(""); setCurrentId("");

View File

@ -2,7 +2,7 @@ import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Input, Modal, Table } from "antd"; import { Button, Form, Input, Modal, Table } from "antd";
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import { NS_STAFF_INFO } from "~/enumerate/namespace"; import { NS_STAFF_INFO } from "~/enumerate/namespace";
import StaffViewModal from "~/pages/Container/EnterpriseInfo/PersonnelInfo/StaffViewModal"; import StaffViewModal from "~/components/StaffViewModal";
function OrgPersonnelSelectModalInner(props) { function OrgPersonnelSelectModalInner(props) {
const { open, onCancel, onConfirm, existingIds = [] } = props; const { open, onCancel, onConfirm, existingIds = [] } = props;
@ -110,7 +110,7 @@ function OrgPersonnelSelectModalInner(props) {
<StaffViewModal <StaffViewModal
open={!!viewId} open={!!viewId}
currentId={viewId} currentId={viewId}
requestDetails={props.staffInfoGet}
onCancel={() => setViewId("")} onCancel={() => setViewId("")}
/> />
</> </>

View File

@ -1,6 +1,6 @@
import { Button, Modal, Space, Table } from "antd"; import { Button, Modal, Space, Table } from "antd";
import { useState } from "react"; import { useState } from "react";
import StaffViewModal from "~/pages/Container/EnterpriseInfo/PersonnelInfo/StaffViewModal"; import StaffViewModal from "~/components/StaffViewModal";
import OrgPersonnelSelectModal from "./OrgPersonnelSelectModal"; import OrgPersonnelSelectModal from "./OrgPersonnelSelectModal";

View File

@ -177,6 +177,7 @@ function FilingFormPage(props) {
return { return {
...item, ...item,
personName: item.userName, personName: item.userName,
sourcePersonnelId: item.id,
}; };
}); });
delete params.personnelList; delete params.personnelList;

View File

@ -2,7 +2,7 @@ import React, { useState, useEffect } from "react";
import { Button, Descriptions, Table, Tag, Tabs, Select, Modal, Space, Image } from "antd"; import { Button, Descriptions, Table, Tag, Tabs, Select, Modal, Space, Image } from "antd";
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { NS_QUAL_REVIEW } from "~/enumerate/namespace"; import { NS_QUAL_REVIEW } from "~/enumerate/namespace";
import StaffViewModal from "~/pages/Container/EnterpriseInfo/PersonnelInfo/StaffViewModal"; import StaffViewModal from "~/components/StaffViewModal";
import PreviewUrlButton from "~/components/PreviewUrlButton/index"; import PreviewUrlButton from "~/components/PreviewUrlButton/index";

View File

@ -12,7 +12,7 @@ import {
fetchRegisteredOrgQualificationGroups, fetchRegisteredOrgQualificationGroups,
} from "~/utils/regulatorOrgInfo"; } from "~/utils/regulatorOrgInfo";
import { buildOrgInfoFormOptions } from "../../../../EnterpriseInfo/OrgInfo/formOptions"; import { buildOrgInfoFormOptions } from "../../../../EnterpriseInfo/OrgInfo/formOptions";
import StaffViewModal from "../../../../EnterpriseInfo/PersonnelInfo/StaffViewModal"; import StaffViewModal from "~/components/StaffViewModal";
const LIST_PATH = "/container/supervision/basicInfo/registeredOrg/list"; const LIST_PATH = "/container/supervision/basicInfo/registeredOrg/list";
const ORG_INFO_FORM_OPTIONS = buildOrgInfoFormOptions(); const ORG_INFO_FORM_OPTIONS = buildOrgInfoFormOptions();
@ -283,9 +283,7 @@ function RegisteredOrgDetailPage(props) {
<StaffViewModal <StaffViewModal
open={!!viewPersonnelId} open={!!viewPersonnelId}
currentId={viewPersonnelId} currentId={viewPersonnelId}
requestDetails={fetchRegisteredOrgPersonnelDetail}
requestCertList={fetchRegisteredOrgPersonnelCertList}
requestCertDetails={fetchRegisteredOrgPersonnelCertDetail}
onCancel={() => setViewPersonnelId("")} onCancel={() => setViewPersonnelId("")}
/> />
)} )}

View File

@ -1,8 +1,7 @@
import { fromSingleResponse, toStaffForm } from "../enterpriseInfo/adapter";
import { apiGet } from "../enterpriseInfo/http"; import { apiGet } from "../enterpriseInfo/http";
import { asId } from "../enterpriseInfo/idUtil"; import { asId } from "../enterpriseInfo/idUtil";
export async function fetchOrgPersonnelDetail(params) { export async function fetchOrgPersonnelDetail(params) {
const res = await apiGet("/safetyEval/org-personnel/get", { id: asId(params?.id) }); const res = await apiGet("/safetyEval/org-personnel/get", { id: asId(params?.id) });
return fromSingleResponse(res, toStaffForm); return res;
} }