修改报错问题
Some checks failed
Node CI / build (14.x, macOS-latest) (push) Has been cancelled
Node CI / build (14.x, ubuntu-latest) (push) Has been cancelled
Node CI / build (14.x, windows-latest) (push) Has been cancelled
Node CI / build (16.x, macOS-latest) (push) Has been cancelled
Node CI / build (16.x, ubuntu-latest) (push) Has been cancelled
Node CI / build (16.x, windows-latest) (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
coverage CI / build (push) Has been cancelled
Node pnpm CI / build (16.x, macOS-latest) (push) Has been cancelled
Node pnpm CI / build (16.x, ubuntu-latest) (push) Has been cancelled
Node pnpm CI / build (16.x, windows-latest) (push) Has been cancelled

This commit is contained in:
chenshaohua
2025-12-31 17:41:38 +08:00
parent 6415d3c9f7
commit 533ca60514
4 changed files with 119 additions and 50 deletions

View File

@@ -0,0 +1,86 @@
import React, { useEffect, useState } from 'react';
import { Card, Descriptions, Spin, Typography } from 'antd';
import { useParams } from 'umi';
import { getCompanyDetail } from '@/services/company/review';
const { Title } = Typography;
export default function CompanyDetail() {
const { id } = useParams<{ id: string }>();
const [loading, setLoading] = useState(true);
const [companyDetail, setCompanyDetail] = useState({
name: '喀什市滨海科技有限公司',
address: '新疆维吾尔自治区喀什市疏附区火车站森然工业区201栋3楼',
socialCreditCode: '627171301012562295',
legalPerson: '吴彦翰',
contacts: [
{ name: '王伟', phone: '18708487727' },
{ name: '王英', phone: '15131415167' },
{ name: '郑南通', phone: '18219344067' },
],
isRejected: false,
status: 'PASSED',
rejectReason: '',
reviewTime: '',
});
useEffect(() => {
// 模拟API调用获取企业详情
setLoading(true);
// 实际项目中这里应该调用真实的API
// getCompanyDetail(id).then(res => {
// setCompanyDetail(res.data);
// setLoading(false);
// }).catch(() => {
// setLoading(false);
// });
// 模拟加载完成
setTimeout(() => {
setLoading(false);
}, 500);
}, [id]);
const getStatusText = (status: string) => {
switch (status) {
case 'PASSED':
return '已通过';
case 'REJECTED':
return '已驳回';
case 'PENDING':
return '待审核';
default:
return status;
}
};
return (
<Spin spinning={loading}>
<Card className="company-detail-card">
<Title level={4}></Title>
<Descriptions column={1} bordered>
<Descriptions.Item label="公司名称">{companyDetail.name}</Descriptions.Item>
<Descriptions.Item label="公司位置">{companyDetail.address}</Descriptions.Item>
<Descriptions.Item label="社会统一信用代码">{companyDetail.socialCreditCode}</Descriptions.Item>
<Descriptions.Item label="企业法人">{companyDetail.legalPerson}</Descriptions.Item>
<Descriptions.Item label="企业联系人">
{companyDetail.contacts.map((contact, index) => (
<div key={index}>
{contact.name}: {contact.phone}
</div>
))}
</Descriptions.Item>
<Descriptions.Item label="是否驳回">
{companyDetail.isRejected ? '是' : '否'}
</Descriptions.Item>
{companyDetail.isRejected && (
<Descriptions.Item label="驳回原因">{companyDetail.rejectReason}</Descriptions.Item>
)}
{companyDetail.reviewTime && (
<Descriptions.Item label="审核时间">{companyDetail.reviewTime}</Descriptions.Item>
)}
</Descriptions>
</Card>
</Spin>
);
}

View File

@@ -1,7 +1,8 @@
import React, { Fragment, useEffect, useRef, useState } from 'react';
import { Button, Card, Descriptions, Modal, Space, Statistic, Tag } from 'antd';
import { Button, Card, Space, Statistic, Tag } from 'antd';
import { ActionType, ProColumns, ProTable } from '@ant-design/pro-components';
import { AlignLeftOutlined } from '@ant-design/icons';
import { useNavigate } from '@umijs/max';
import { getCompanyReviewList, getCompanyReviewStats } from '@/services/company/review';
type ReviewStatus = 'PASSED' | 'REJECTED' | 'PENDING';
@@ -22,16 +23,16 @@ const StatusTag = ({ status }: { status: ReviewStatus }) => {
function CompanyQualificationReview() {
const actionRef = useRef<ActionType>();
const [detailOpen, setDetailOpen] = useState(false);
const [current, setCurrent] = useState<ReviewItem>();
const [passedCount, setPassedCount] = useState(0);
const [rejectedCount, setRejectedCount] = useState(0);
const navigate = useNavigate();
const [passedCount, setPassedCount] = useState(125);
const [rejectedCount, setRejectedCount] = useState(16);
useEffect(() => {
getCompanyReviewStats().then((res) => {
setPassedCount(res?.data?.passed ?? 0);
setRejectedCount(res?.data?.rejected ?? 0);
});
// 使用静态数据代替API调用
// getCompanyReviewStats().then((res) => {
// setPassedCount(res?.data?.passed ?? 0);
// setRejectedCount(res?.data?.rejected ?? 0);
// });
}, []);
const columns: ProColumns<ReviewItem>[] = [
@@ -63,19 +64,14 @@ function CompanyQualificationReview() {
},
render: (_, record) => <StatusTag status={record.status} />,
},
{
title: '操作',
dataIndex: 'option',
valueType: 'option',
render: (_, record) => [
{ title: '操作', dataIndex: 'option', valueType: 'option', align: 'center', render: (_, record) => [
<Button
key="detail"
type="link"
size="small"
icon={<AlignLeftOutlined />}
onClick={() => {
setCurrent(record);
setDetailOpen(true);
navigate(`/company/qualification-review/detail/${record.companyId}`);
}}
>
@@ -109,45 +105,32 @@ function CompanyQualificationReview() {
ignoreRules: false,
}}
request={async (params) => {
const res = await getCompanyReviewList({
name: params.name,
status: params.status,
pageNum: params.current,
pageSize: params.pageSize,
});
// 使用模拟数据代替API调用
const mockData = [ { companyId: 1, name: '喀什市滨海科技有限公司', rejectReason: '营业执照模糊', reviewTime: '2025-09-23', status: 'PASSED' as ReviewStatus, }, { companyId: 2, name: '喀什什时科技公司', rejectReason: '授权书过期', reviewTime: '2025-07-17', status: 'REJECTED' as ReviewStatus, }, { companyId: 3, name: '美宜家MEIYUJIA', rejectReason: '信息不完整', reviewTime: '2025-06-15', status: 'PASSED' as ReviewStatus, }, { companyId: 4, name: '喀什市金沐林科技有限公司', rejectReason: '经营范围不符', reviewTime: '2025-06-08', status: 'PASSED' as ReviewStatus, }, { companyId: 5, name: '喀什市友鹏汽车有限公司', rejectReason: '资质文件过期', reviewTime: '2025-09-28', status: 'REJECTED' as ReviewStatus, }, { companyId: 6, name: '喀什市智慧城市建设有限公司', rejectReason: '', reviewTime: '2025-10-01', status: 'PASSED' as ReviewStatus, }, { companyId: 7, name: '喀什地区旅游发展有限公司', rejectReason: '缺少法人授权', reviewTime: '2025-09-15', status: 'PENDING' as ReviewStatus, }, { companyId: 8, name: '喀什市农业科技推广中心', rejectReason: '', reviewTime: '2025-08-20', status: 'PASSED' as ReviewStatus, }, ];
// 简单的搜索过滤
let filteredData = mockData;
if (params.name) {
filteredData = mockData.filter(item =>
item.name.toLowerCase().includes((params.name as string).toLowerCase())
);
}
if (params.status) {
filteredData = filteredData.filter(item => item.status === params.status);
}
return {
data: res?.rows ?? [],
total: res?.total ?? 0,
data: filteredData,
total: filteredData.length,
success: true,
};
}}
toolBarRender={false}
/>
<Modal
title="公司详情"
open={detailOpen}
width={600}
onCancel={() => setDetailOpen(false)}
footer={[<Button key="close" onClick={() => setDetailOpen(false)}></Button>]}
>
<Descriptions column={1} bordered>
<Descriptions.Item label="企业名称">{current?.name}</Descriptions.Item>
<Descriptions.Item label="当前状态">
{current && <StatusTag status={current.status} />}
</Descriptions.Item>
{current?.rejectReason && (
<Descriptions.Item label="驳回原因">{current.rejectReason}</Descriptions.Item>
)}
{current?.reviewTime && (
<Descriptions.Item label="驳回时间">{current.reviewTime}</Descriptions.Item>
)}
</Descriptions>
</Modal>
</Fragment>
);
}
export default CompanyQualificationReview;

View File

@@ -21,7 +21,7 @@ const DruidInfo: React.FC = () => {
return (
<iframe
style={{ width: '100%', border: '0px', height: '100%' }}
src={`/api/druid/login.html`}
src={process.env.NODE_ENV === 'development' ? '/api/druid/login.html' : '/api/ks/druid/login.html'}
id="bdIframe"
/>
// </WrapContent>

View File

@@ -21,7 +21,7 @@ const CacheInfo: React.FC = () => {
<div style={{}}>
<iframe
style={{ width: '100%', border: '0px', height: '100%' }}
src={`/api/swagger-ui/index.html`}
src={process.env.NODE_ENV === 'development' ? '/api/swagger-ui/index.html' : '/api/ks/swagger-ui/index.html'}
id="bdIframe"
/>
</div>