diff --git a/src/pages/Container/SafetyEvalBusiness/ProjectFlow/TeamContent.js b/src/pages/Container/SafetyEvalBusiness/ProjectFlow/TeamContent.js index 4162f40..f0d31bb 100644 --- a/src/pages/Container/SafetyEvalBusiness/ProjectFlow/TeamContent.js +++ b/src/pages/Container/SafetyEvalBusiness/ProjectFlow/TeamContent.js @@ -1,19 +1,31 @@ import React, { useEffect, useState } from "react"; import { - Tag, Button, Card, Row, Col, Table, Statistic, Flex, Modal, Radio, Checkbox, message, Spin, + Tag, + Button, + Card, + Row, + Col, + Table, + Statistic, + Flex, + Modal, + Radio, + Checkbox, + message, + Spin, } from "antd"; import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { NS_SAFETY_EVAL_BUSINESS } from "~/enumerate/namespace"; import { tools } from "@cqsjjb/jjb-common-lib"; -import {ROLE_DEFINITIONS} from '~/enumerate/constant' +import { ROLE_DEFINITIONS } from "~/enumerate/constant"; const { router } = tools; - - const TeamContent = ({ readOnly, ...props }) => { - const { safetyEvalBusiness, evalProjectMemberPage, evalProjectMemberSave } = props; - const { evalProjectDetailData, memberLoading, memberSaveLoading } = safetyEvalBusiness || {}; + const { safetyEvalBusiness, evalProjectMemberPage, evalProjectMemberSave } = + props; + const { evalProjectDetailData, memberLoading, memberSaveLoading } = + safetyEvalBusiness || {}; const participants = evalProjectDetailData?.participants || []; const projectId = router.query?.id; @@ -31,7 +43,10 @@ const TeamContent = ({ readOnly, ...props }) => { ...item, roles: (item.role || []).map((r) => ({ role: r, - duty: item.responsibility || ROLE_DEFINITIONS.find((d) => d.value === r)?.summary || "", + duty: + item.responsibility || + ROLE_DEFINITIONS.find((d) => d.value === r)?.summary || + "", })), })), ); @@ -42,7 +57,9 @@ const TeamContent = ({ readOnly, ...props }) => { if (evalProjectDetailData?.id) fetchData(); }, [projectId, evalProjectDetailData?.id]); - const isUniqueRole = selectedRole && ROLE_DEFINITIONS.find((r) => r.value === selectedRole)?.unique; + const isUniqueRole = + selectedRole && + ROLE_DEFINITIONS.find((r) => r.value === selectedRole)?.unique; const handlePersonChange = (checkedValues) => { if (isUniqueRole && checkedValues.length > 1) { @@ -59,13 +76,24 @@ const TeamContent = ({ readOnly, ...props }) => { }; const handleConfirm = () => { - if (!selectedRole) { message.warning("请选择1个项目角色"); return; } - if (selectedPersons.length === 0) { message.warning("请至少选择1名人员"); return; } + if (!selectedRole) { + message.warning("请选择1个项目角色"); + return; + } + if (selectedPersons.length === 0) { + message.warning("请至少选择1名人员"); + return; + } const role = ROLE_DEFINITIONS.find((r) => r.value === selectedRole); - if (role?.unique && selectedPersons.length > 1) { message.warning("该角色为单人唯一角色,只能选择1名人员"); return; } + if (role?.unique && selectedPersons.length > 1) { + message.warning("该角色为单人唯一角色,只能选择1名人员"); + return; + } // 唯一角色校验:检查是否已有人担任该角色 if (role?.unique) { - const existing = teamMembers.some((m) => m.roles.some((r) => r.role === selectedRole)); + const existing = teamMembers.some((m) => + m.roles.some((r) => r.role === selectedRole), + ); if (existing) { message.warning(`"${role.name}"已配置,不可重复添加`); return; @@ -88,7 +116,9 @@ const TeamContent = ({ readOnly, ...props }) => { setTeamMembers((prev) => { const merged = [...prev]; newEntries.forEach((entry) => { - const existing = merged.find((m) => m.personnelId === entry.personnelId); + const existing = merged.find( + (m) => m.personnelId === entry.personnelId, + ); if (existing) { if (!existing.roles.find((r) => r.role === entry.roles[0].role)) { existing.roles.push(entry.roles[0]); @@ -140,32 +170,63 @@ const TeamContent = ({ readOnly, ...props }) => { { title: "姓名", dataIndex: "personnelName", width: 120, ellipsis: true }, { title: "部门/岗位", dataIndex: "deptName", width: 200, ellipsis: true }, { - title: "项目角色", dataIndex: "roles", width: 350, + title: "项目角色", + dataIndex: "roles", + width: 350, render: (roles, record) => (
{role.summary}