处理序号字典

This commit is contained in:
孙景学
2025-07-10 09:31:22 +08:00
parent 1f2986b5ae
commit eefc97e553
26 changed files with 300 additions and 426 deletions

View File

@ -1,104 +0,0 @@
import { Request, Response } from 'express';
// 代码中会兼容本地 service mock 以及部署站点的静态数据
export default {
'GET /api/supplier/getSupplierChangeList': (req: Request, res: Response) => {
res.send({
code: 200,
msg: 'success',
data: [
{
id: 1,
name: '中山市合创展包装材料有限公司',
region: '境内',
supplierType: '中央企业',
accessTime: '2025-03-03 09:30',
changeTime: '2025-03-03 09:30',
status: '未开始',
result: '',
},
],
total: 10
});
},
'GET /api/supplier/list': (req: Request, res: Response) => {
res.send({
code: 200,
msg: 'success',
data: [
{
id: 1,
name: '中山市合创展包装材料有限公司',
region: '境内',
supplierType: '中央企业',
accessTime: '2025-03-03 09:30',
changeTime: '2025-03-03 09:30',
status: '未开始',
result: '',
},
],
total: 10
});
},
'GET /api/system/getPage': (req: Request, res: Response) => {
res.json({
code: 200,
data: [
{
deptName: '供应商名称变更',
categoryName: '2024-05-20 13:22:11',
createTime: '集团采购部',
exitTime: '已通过',
exitReason: '2024-05-21 09:10:31',
},
{
deptName: '法人代表变更',
categoryName: '2024-05-18 08:30:55',
createTime: '分公司审核部',
exitTime: '审核中',
exitReason: '',
},
],
total: 2,
msg: '操作成功'
});
},
'GET /api/system/getSupplierChangeDetail': (req: Request, res: Response) => {
res.json({
"code": 200,
"msg": "success",
"data": {
baseInfo: [
{ label: '供应商名称', value: 'xxx' },
{ label: '境内/境外', value: '境内' },
{ label: '准入单位', value: 'xxxx' },
{ label: '准入部门', value: '采购部' },
],
changeInfo: [
{ label: '供应商名称-变更前', value: 'xxxx' },
{ label: '供应商名称-变更后', value: 'xxxx' },
],
"supplierName": "中山市合创展包装材料有限公司",
"accessUnit": "中远海运(青岛)有限公司",
"region": "境内",
"accessDept": "采购部",
"beforeName": "中山市合创展包装材料有限公司",
"afterName": "中山市合创展包装有限公司",
"qualifications": [
{
"type": "CMMI资质",
"name": "CMMI资质",
"level": "高级",
"number": "546464",
"org": "XX机构",
"issueDate": "2024-09-08",
"validDate": "2028-09-10",
"file": "https://dummyimage.com/40x30/1890ff/fff.png&text=附件"
}
]
}
}
);
},
};

View File

@ -1,11 +1,15 @@
import React, { useEffect, useState } from 'react';
import { Table, Form, Input, Select, Button, DatePicker, Tag, Space, message } from 'antd';
import { Table, Form, Input, Select, Button, DatePicker, Tooltip } from 'antd';
import { SearchOutlined, ReloadOutlined } from '@ant-design/icons';
//详情
import DetailView from './components/DetailView';
//接口
import { getPage } from './services';
import type { ColumnsType } from 'antd/es/table';
//字典
import { getDictList } from '@/servers/api/dicts'
//umi 相关
import { connect } from 'umi';
import moment from 'moment';
const { RangePicker } = DatePicker;
@ -32,30 +36,39 @@ interface Dict {
dicName: string;
code: string;
}
const SupplierChangeReviewManage: React.FC = () => {
interface Props {
dispatch: any;
}
const SupplierChangeReviewManage: React.FC<Props> = ({ dispatch }) => {
//搜索
const [form] = Form.useForm();
//渲染数据
const [data, setData] = useState<Columns[]>([]);
//列表加载
const [loading, setLoading] = useState(false);
//分页
const [pagination, setPagination] = useState({ current: 1, pageSize: 10, total: 0 });
//审批记录弹窗
const [detailVisible, setDetailVisible] = useState(false);
//审批记录弹窗 传入id
const [currentDetailId, setCurrentDetailId] = useState<string | null>(null);
//列表数据
const [enterpriseType, setEnterpriseType] = useState<Dict[]>();
// 获取表格数据
const fetchData = async (params = {}) => {
setLoading(true);
try {
const values = form.getFieldsValue();
const { supplierName, changeTime, supplierType, approveStatus } = values;
const { changeTime } = values;
const startTime = changeTime ? moment(changeTime[0]).format('YYYY-MM-DD') : '';
const endTime = changeTime ? moment(changeTime[1]).format('YYYY-MM-DD') : '';
const { code, data, message } = await getPage({
pageNo: pagination.current,
pageSize: pagination.pageSize,
supplierName, startTime, endTime, supplierType, approveStatus,
startTime,
endTime,
...values
});
if (code === 200) {
setData(data.records);
@ -67,7 +80,7 @@ const SupplierChangeReviewManage: React.FC = () => {
setLoading(false);
}
};
// 初始化
useEffect(() => {
getDictList('approve_type').then((res) => {
if (res.code == 200) {
@ -93,6 +106,7 @@ const SupplierChangeReviewManage: React.FC = () => {
setCurrentDetailId(record.id);
setDetailVisible(true);
};
// 关闭弹窗
const handleDetailClose = () => {
setDetailVisible(false);
setCurrentDetailId(null);
@ -110,6 +124,21 @@ const SupplierChangeReviewManage: React.FC = () => {
dataIndex: 'supplierName',
align: 'center',
ellipsis: true,
render: (dom, record) =>
<Tooltip title={record.supplierName}>
<a
onClick={() => {
dispatch({
type: 'globalModal/show',
payload: {
id: record.id,
},
});
}}
>
{record.supplierName}
</a>
</Tooltip>,
},
{
title: '境内/境外',
@ -131,6 +160,7 @@ const SupplierChangeReviewManage: React.FC = () => {
title: '提交变更时间',
dataIndex: 'changeTime',
align: 'center',
ellipsis: true,
},
{
title: '审批状态',
@ -202,4 +232,4 @@ const SupplierChangeReviewManage: React.FC = () => {
);
};
export default SupplierChangeReviewManage;
export default connect()(SupplierChangeReviewManage);