fixed:部分bug修复

master
dearLin 2026-01-17 13:51:06 +08:00
parent c969a353b9
commit ce9b37d261
8 changed files with 179 additions and 40 deletions

View File

@ -30,7 +30,7 @@
"lodash-es": "^4.17.21",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"zy-react-library": "^1.1.26"
"zy-react-library": "^1.1.28"
},
"devDependencies": {
"@antfu/eslint-config": "^5.4.1",

View File

@ -30,6 +30,7 @@ function Add(props) {
const { data } = await props["qualificationApplyInfo"]({ id: query.id });
// 重新提交时删除id
if (query.resubmit) {
data.resubmitId = query.id;
delete data.id;
}
if (data.groupUnitUser) {
@ -330,9 +331,11 @@ const StepTwoComponent = (props) => {
delete query.id;
}
const data = { ...props.formValues, qualificationsApplyDetailList: [...specialList] };
if (data.groupUnitUser && data.groupUnitUser.length !== 0) {
if (data.groupUnitUser && Array.isArray(data.groupUnitUser)) {
data.groupUnitUser = data.groupUnitUser.join(",");
data.groupUnitUserName = data.groupUnitUserName?.join(",");
}
if (data.groupUnitUserName && Array.isArray(data.groupUnitUserName)) {
data.groupUnitUserName = data.groupUnitUserName.join(",");
}
const { success } = await props[!query.id ? "qualificationApplyAdd" : "qualificationApplyUpdate"]({
...data,
@ -351,7 +354,7 @@ const StepTwoComponent = (props) => {
>
{typeGroup.map(item => (
<div key={item.dataType}>
<Divider orientation="left">{item.dataTypeName}</Divider>
<Divider orientation="left">{`${item.dataTypeName}信息`}</Divider>
<Table
dataSource={specialList.filter(record => record.dataType === item.dataType)}
pagination={false}

View File

@ -76,7 +76,7 @@ function View(props) {
</div>
{typeGroup.map(item => (
<div key={item.dataType}>
<Divider orientation="left">{item.dataTypeName}</Divider>
<Divider orientation="left">{`${item.dataTypeName}信息`}</Divider>
<Table
dataSource={specialList.filter(detail => detail.dataType === item.dataType)}
pagination={false}

View File

@ -12,7 +12,7 @@ import useTable from "zy-react-library/hooks/useTable";
import { NS_QUALIFICATION_RECORDS } from "~/enumerate/namespace";
function List(props) {
const [currentTenantId, setCurrentTenantId] = useState("");
const [currentUserId, setCurrentUserId] = useState("");
const [form] = Form.useForm();
const { tableProps, getData } = useTable(props["qualificationRecordsList"], {
form,
@ -24,7 +24,7 @@ function List(props) {
};
},
onSuccess: (data) => {
setCurrentTenantId(data.extValues.currentTenantId);
setCurrentUserId(data.extValues.currentUserId);
},
});
@ -60,7 +60,7 @@ function List(props) {
{ title: "资质名称", dataIndex: "qualificationsName" },
{ title: "资质类别", dataIndex: "qualificationsTypeName" },
{ title: "资质等级", dataIndex: "stakeholderLevelName" },
{ title: "时效属性", dataIndex: "isLongTerm", render: (_, record) => record.isLongTerm ? "长期" : "短期" },
{ title: "时效属性", dataIndex: "isLongTerm", render: (_, record) => record.isLongTerm === 1 ? "长期" : "短期" },
{ title: "材料数", dataIndex: "materialNum" },
{
title: "资质状态",
@ -98,19 +98,15 @@ function List(props) {
</span>
</Tooltip>
)}
{record.qualificationsStatus === 3 && "资质过期"}
{(record.qualificationsStatus === 3 || record.qualificationsStatus === 4) && "资质过期"}
</div>
),
},
{
title: "当前状态",
dataIndex: "auditProcess",
dataIndex: "status",
render: (_, record) => (
<div>
{record.auditProcess === "100" && "集团单位"}
{record.status === 100 && "待审核"}
{record.status === 200 && "审核中"}
{record.status === 300 && "已驳回"}
{record.status === 400 && "已通过"}
</div>
),
@ -121,7 +117,9 @@ function List(props) {
width: 200,
render: (_, record) => (
<Space>
{(props.permission(props.cxtjbtn || "zrzz-jtgs-zrzzjl-btn-cxtj") && record.status === 400 && record.corpId === currentTenantId && (record.qualificationsStatus === 1 || record.qualificationsStatus === 2)) && (
{(props.permission(props.cxtjbtn || "zrzz-jtgs-zrzzjl-btn-cxtj")
&& record.status === 400 && record.createId === currentUserId
&& (record.isAnnualInspection === 1)) && (
<Button
type="link"
onClick={() => {

View File

@ -0,0 +1,140 @@
import { WarningOutlined } from "@ant-design/icons";
import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Space, Tooltip } from "antd";
import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search";
import DictionarySelect from "zy-react-library/components/Select/Dictionary";
import Table from "zy-react-library/components/Table";
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
import useTable from "zy-react-library/hooks/useTable";
import { NS_QUALIFICATION_RECORDS } from "~/enumerate/namespace";
function List(props) {
const [form] = Form.useForm();
const { tableProps, getData } = useTable(props["qualificationRecordsList"], {
form,
transform: (formData) => {
const auditStatus = formData.auditStatus?.split("-") || [];
return {
auditProcess: auditStatus[0],
auditStatus: auditStatus[1],
};
},
});
return (
<Page isShowAllAction={false}>
<Search
labelCol={{ span: 8 }}
options={[
{ name: "qualificationsName", label: "资质名称" },
{
name: "qualificationsTypeId",
label: "资质类别",
render: (<DictionarySelect dictValue="qualificationsType" />),
},
{ name: "stakeholderLevel", label: "资质等级", render: (<DictionarySelect dictValue="stakeholderLevel" />) },
{
name: "auditStatus",
label: "审核状态",
render: FORM_ITEM_RENDER_ENUM.SELECT,
items: [
{ bianma: "200-200", name: "主管部门审核中" },
{ bianma: "200-300", name: "主管部门已驳回" },
{ bianma: "400", name: "已完成" },
],
},
]}
form={form}
onFinish={getData}
/>
<Table
columns={[
{ title: "相关方名称", dataIndex: "corpName" },
{ title: "资质名称", dataIndex: "qualificationsName" },
{ title: "资质类别", dataIndex: "qualificationsTypeName" },
{ title: "时效属性", dataIndex: "isLongTerm", render: (_, record) => record.isLongTerm ? "长期" : "短期" },
{ title: "资质等级", dataIndex: "stakeholderLevelName" },
{ title: "材料数", dataIndex: "materialNum" },
{
title: "资质资料状态",
dataIndex: "qualificationsStatus",
render: (_, record) => (
<div>
{record.qualificationsStatus === 0 && "正常"}
{record.qualificationsStatus === 1 && "资质待完善"}
{record.qualificationsStatus === 2 && (
<Tooltip
overlayStyle={{ width: "auto", maxWidth: "700px", whiteSpace: "normal", wordBreak: "break-word" }}
title={
record.expireList
? (
<div style={{ width: "100%" }}>
{record.expireList.map((item, index) => (
<div key={index}>
{item.dataName}
{" "}
已于
{item.qualificationsTermEnd}
{" "}
过期
</div>
))}
</div>
)
: "部分资料已过期"
}
>
<span style={{ display: "inline-flex", alignItems: "center" }}>
存在异常
{" "}
<WarningOutlined style={{ color: "#faad14", marginLeft: 4 }} />
</span>
</Tooltip>
)}
{record.qualificationsStatus === 3 && "资质过期"}
</div>
),
},
{
title: "审核状态",
dataIndex: "auditProcess",
render: (_, record) => (
<div>
{record.auditProcess === "100" && "集团单位"}
{record.status === 100 && "待审核"}
{record.status === 200 && "审核中"}
{record.status === 300 && "已驳回"}
{record.status === 400 && "已通过"}
</div>
),
},
// { title: "时效性", dataIndex: "qualificationsTermStart", render: (_, record) => record.qualificationsTermStart ? `${record.qualificationsTermStart}至${record.qualificationsTermEnd}` : "-" },
{
title: "操作",
fixed: "right",
width: 130,
render: (_, record) => (
<Space>
{props.permission("zrzz-sdgs-zrzzjl-btn-ck") && (
<Button
type="link"
onClick={() => {
props.history.push(`../ViewInfo?id=${record.id}`);
}}
>
查看
</Button>
)}
</Space>
),
},
]}
{...tableProps}
/>
</Page>
);
}
export default Connect([NS_QUALIFICATION_RECORDS], true)(Permission(List));

View File

@ -8,7 +8,7 @@ import { validatorEndTime } from "zy-react-library/utils";
import { NS_QUALIFICATION_REVIEW } from "~/enumerate/namespace";
import ViewInfo from "../../ViewInfo";
function Review(props) {
function Review() {
const query = useGetUrlQuery();
const [rejectModalOpen, setRejectModalOpen] = useState(false);
const [passModalOpen, setPassModalOpen] = useState(false);

View File

@ -110,7 +110,7 @@ function Add(props) {
render: (
<DepartmentSelectTree
disabled={query.id}
searchType="company"
searchType="inType"
params={{ inType: corpTypeList }}
onGetLabel={(label) => {
form.setFieldValue("managerDeptName", label);
@ -153,7 +153,7 @@ function Add(props) {
render: (
<DepartmentSelectTree
disabled={query.id}
searchType="company"
searchType="inType"
params={{ inType: [2] }}
onGetLabel={(label) => {
form.setFieldValue("shareDeptName", label);

View File

@ -79,7 +79,24 @@ function ViewInfo(props) {
<Page headerTitle={props.title || "查看"} contentPadding="0 20px 20px 20px" extraActionButtons={props.extraActionButtons}>
<div className="qualification-view">
<div>
<Divider orientation="left">流程信息</Divider>
<Divider orientation="left">审核信息及流程</Divider>
<Spin spinning={props.qualificationReview.qualificationReviewLoading}>
<Descriptions
column={2}
bordered
styles={{ label: { width: 200 }, content: { width: 500 } }}
items={[
{ label: "相关方名称", children: info.corpName },
{ label: "所属集团单位", children: info.groupUnitName },
{ label: "资质名称", children: info.qualificationsName },
{ label: "资质类别", children: info.qualificationsTypeName },
{ label: "资质等级", children: info.stakeholderLevelName },
{ label: "材料数", children: info.materialNum },
{ label: "备注", children: info.remarks },
]}
/>
</Spin>
<div className="flows-container">
<div className="flows">
{
@ -105,6 +122,7 @@ function ViewInfo(props) {
</div>
)
}
<div className="info">{item.auditTime}</div>
</div>
{index !== info.processFlow.length - 1 && <div className="line" />}
</Fragment>
@ -113,26 +131,6 @@ function ViewInfo(props) {
</div>
</div>
</div>
<div>
<Divider orientation="left">审核信息</Divider>
<Spin spinning={props.qualificationReview.qualificationReviewLoading}>
<Descriptions
column={2}
bordered
styles={{ label: { width: 200 }, content: { width: 500 } }}
items={[
{ label: "相关方名称", children: info.corpName },
{ label: "所属集团单位", children: info.groupUnitName },
{ label: "资质名称", children: info.qualificationsName },
{ label: "资质类别", children: info.qualificationsTypeName },
{ label: "资质等级", children: info.stakeholderLevelName },
{ label: "材料数", children: info.materialNum },
{ label: "备注", children: info.remarks },
]}
/>
</Spin>
</div>
<div>
<Divider orientation="left">基础信息</Divider>
<Spin spinning={props.qualificationReview.enterpriseLoading || getFileLoading}>
@ -172,7 +170,7 @@ function ViewInfo(props) {
</div>
{typeGroup.map(item => (
<div key={item.dataType}>
<Divider orientation="left">{item.dataTypeName}</Divider>
<Divider orientation="left">{`${item.dataTypeName}信息`}</Divider>
<Spin spinning={props.qualificationReview.qualificationReviewLoading}>
<Table
options={false}