整理接口定义规范
This commit is contained in:
@ -9,32 +9,37 @@ import {
|
||||
Space,
|
||||
Tag,
|
||||
DatePicker,
|
||||
TablePaginationConfig,
|
||||
Modal,
|
||||
Row,
|
||||
Col,
|
||||
Tooltip,
|
||||
message,
|
||||
} from 'antd';
|
||||
import type { TablePaginationConfig } from 'antd';
|
||||
import {
|
||||
SearchOutlined,
|
||||
DeleteOutlined,
|
||||
EyeOutlined,
|
||||
PlusOutlined,
|
||||
} from '@ant-design/icons';
|
||||
import { TaskStatus, TaskStatusText, TaskStatusColor, TaskType, TaskTypeText } from '@/dicts/supplierTaskDict';
|
||||
import moment from 'moment';
|
||||
import styles from './supplierEvaluateResult.less';
|
||||
import { TaskStatus, TaskStatusText, TaskStatusColor } from '@/dicts/supplierTaskDict';
|
||||
import { history } from 'umi';
|
||||
import { getEvaluateResultList, submitTaskForApproval } from '@/servers/api/supplierEvaluate';
|
||||
|
||||
|
||||
|
||||
// 扩展评价任务搜索参数类型
|
||||
interface EvaluateTaskSearchParams {
|
||||
evaluateTheme?: string;
|
||||
status?: string;
|
||||
timeRange?: string[];
|
||||
[key: string]: any;
|
||||
}
|
||||
|
||||
|
||||
const { Option } = Select;
|
||||
const { RangePicker } = DatePicker;
|
||||
|
||||
const SupplierEvaluateResult: React.FC = () => {
|
||||
const [loading, setLoading] = useState<boolean>(false);
|
||||
const [form] = Form.useForm();
|
||||
const [resultData, setResultData] = useState<API.EvaluateTaskRecord[]>([]);
|
||||
const [resultData, setResultData] = useState< SupplierEvaluateResult.EvaluateTaskItem []>([]);
|
||||
const [pagination, setPagination] = useState<TablePaginationConfig>({
|
||||
current: 1,
|
||||
pageSize: 10,
|
||||
@ -43,7 +48,7 @@ const SupplierEvaluateResult: React.FC = () => {
|
||||
showQuickJumper: true,
|
||||
showTotal: (total) => `共 ${total} 条记录`,
|
||||
});
|
||||
const [searchParams, setSearchParams] = useState<API.EvaluateTaskSearchParams>({});
|
||||
const [searchParams, setSearchParams] = useState<EvaluateTaskSearchParams>({});
|
||||
|
||||
// 品类数据
|
||||
const categoryOptions = [
|
||||
@ -66,7 +71,7 @@ const SupplierEvaluateResult: React.FC = () => {
|
||||
const fetchResultList = async (
|
||||
current = 1,
|
||||
pageSize = 10,
|
||||
params: API.EvaluateTaskSearchParams = searchParams,
|
||||
params: EvaluateTaskSearchParams = searchParams,
|
||||
) => {
|
||||
// 更新搜索参数状态
|
||||
if (params !== searchParams) {
|
||||
@ -76,7 +81,7 @@ const SupplierEvaluateResult: React.FC = () => {
|
||||
setLoading(true);
|
||||
try {
|
||||
// 构建请求参数
|
||||
const requestParams: API.EvaluateTaskRequest = {
|
||||
const requestParams: SupplierEvaluateResult.EvaluateTaskRequest = {
|
||||
basePageRequest: {
|
||||
pageNo: current,
|
||||
pageSize: pageSize,
|
||||
@ -137,7 +142,7 @@ const SupplierEvaluateResult: React.FC = () => {
|
||||
// 处理搜索
|
||||
const handleSearch = (values: any) => {
|
||||
const { timeRange, ...rest } = values;
|
||||
const params: API.EvaluateTaskSearchParams = { ...rest };
|
||||
const params: EvaluateTaskSearchParams = { ...rest };
|
||||
|
||||
if (timeRange && timeRange.length === 2) {
|
||||
params.timeRange = [timeRange[0].format('YYYY-MM-DD'), timeRange[1].format('YYYY-MM-DD')];
|
||||
@ -153,7 +158,7 @@ const SupplierEvaluateResult: React.FC = () => {
|
||||
};
|
||||
|
||||
// 处理提交审批
|
||||
const handleApprove = (record: API.EvaluateTaskRecord) => {
|
||||
const handleApprove = (record: SupplierEvaluateResult.EvaluateTaskItem ) => {
|
||||
Modal.confirm({
|
||||
title: '提交审批确认',
|
||||
content: `确定要提交"${record.evaluateTheme}"的评价任务进行审批吗?`,
|
||||
@ -178,7 +183,7 @@ const SupplierEvaluateResult: React.FC = () => {
|
||||
};
|
||||
|
||||
// 查看详情 - 修改为跳转到详情页
|
||||
const handleViewDetail = (record: API.EvaluateTaskRecord) => {
|
||||
const handleViewDetail = (record: SupplierEvaluateResult.EvaluateTaskItem ) => {
|
||||
history.push({
|
||||
pathname: 'supplierEvaluateResultInfo',
|
||||
state: { record }
|
||||
@ -195,7 +200,7 @@ const SupplierEvaluateResult: React.FC = () => {
|
||||
const columns = [
|
||||
{
|
||||
title: '序号',
|
||||
render: (_: any, __: API.EvaluateTaskRecord, index: number) =>
|
||||
render: (_: any, __: SupplierEvaluateResult.EvaluateTaskItem , index: number) =>
|
||||
(pagination.current! - 1) * pagination.pageSize! + index + 1,
|
||||
width: 80,
|
||||
},
|
||||
@ -265,7 +270,7 @@ const SupplierEvaluateResult: React.FC = () => {
|
||||
key: 'action',
|
||||
width: 100,
|
||||
align: 'center' as const,
|
||||
render: (_: unknown, record: API.EvaluateTaskRecord) => (
|
||||
render: (_: unknown, record: SupplierEvaluateResult.EvaluateTaskItem ) => (
|
||||
<Space>
|
||||
<Button type="link" onClick={() => handleViewDetail(record)}>
|
||||
查看
|
||||
|
@ -9,38 +9,20 @@ import { getIndicator } from '@/servers/api/supplierEvaluate';
|
||||
|
||||
const { Title } = Typography;
|
||||
|
||||
// 评价打分详情数据接口
|
||||
interface IndicatorDetailData {
|
||||
category: string;
|
||||
name: string;
|
||||
taskIndicatorVo: {
|
||||
baseIndicator: string;
|
||||
indicatorDesc: string;
|
||||
score: string;
|
||||
subIndicator: {
|
||||
id: string;
|
||||
remark: string | null;
|
||||
scoreNum: string | null;
|
||||
starIndicator: string;
|
||||
stId: string;
|
||||
subIndicator: string;
|
||||
subScore: string;
|
||||
}[];
|
||||
}[];
|
||||
}
|
||||
// 评价打分详情数据接口已移至 SupplierEvaluateResult 命名空间
|
||||
|
||||
const SupplierEvaluateResultByZb: React.FC = () => {
|
||||
const location = useLocation<{
|
||||
record: API.EvaluateScoreIndicator;
|
||||
parentRecord: API.EvaluateTaskRecord;
|
||||
supplierRecord: API.EvaluateSupplierRecord;
|
||||
scoreDetail: API.EvaluateScoreData;
|
||||
record: SupplierEvaluateResult.EvaluateScoreIndicator;
|
||||
parentRecord: SupplierEvaluateResult.EvaluateTaskItem;
|
||||
supplierRecord: SupplierEvaluateResult.EvaluateSupplierItem;
|
||||
scoreDetail: SupplierEvaluateResult.EvaluateScoreData;
|
||||
}>();
|
||||
const [loading, setLoading] = useState<boolean>(false);
|
||||
const [scoreRecord, setScoreRecord] = useState<API.EvaluateScoreIndicator | null>(null);
|
||||
const [parentRecord, setParentRecord] = useState<API.EvaluateTaskRecord | null>(null);
|
||||
const [supplierRecord, setSupplierRecord] = useState<API.EvaluateSupplierRecord | null>(null);
|
||||
const [indicatorDetail, setIndicatorDetail] = useState<IndicatorDetailData | null>(null);
|
||||
const [scoreRecord, setScoreRecord] = useState<SupplierEvaluateResult.EvaluateScoreIndicator | null>(null);
|
||||
const [parentRecord, setParentRecord] = useState<SupplierEvaluateResult.EvaluateTaskItem | null>(null);
|
||||
const [supplierRecord, setSupplierRecord] = useState<SupplierEvaluateResult.EvaluateSupplierItem | null>(null);
|
||||
const [indicatorDetail, setIndicatorDetail] = useState<SupplierEvaluateResult.IndicatorDetailData | null>(null);
|
||||
|
||||
// 获取上级页面传递的数据
|
||||
useEffect(() => {
|
||||
|
@ -25,10 +25,10 @@ import { getEvaluateSupplierList, getAllEvaluateRules } from '@/servers/api/supp
|
||||
const { Option } = Select;
|
||||
|
||||
const SupplierEvaluateResultInfo: React.FC = () => {
|
||||
const location = useLocation<{ record: API.EvaluateTaskRecord }>();
|
||||
const location = useLocation<{ record: SupplierEvaluateResult.EvaluateTaskItem }>();
|
||||
const [loading, setLoading] = useState<boolean>(false);
|
||||
const [form] = Form.useForm();
|
||||
const [resultData, setResultData] = useState<API.EvaluateSupplierRecord[]>([]);
|
||||
const [resultData, setResultData] = useState<SupplierEvaluateResult.EvaluateSupplierItem[]>([]);
|
||||
const [pagination, setPagination] = useState<TablePaginationConfig>({
|
||||
current: 1,
|
||||
pageSize: 10,
|
||||
@ -38,11 +38,11 @@ const SupplierEvaluateResultInfo: React.FC = () => {
|
||||
showTotal: (total) => `共 ${total} 条记录`,
|
||||
});
|
||||
const [searchParams, setSearchParams] =
|
||||
useState<API.EvaluateSupplierSearchParams>({});
|
||||
const [parentRecord, setParentRecord] = useState<API.EvaluateTaskRecord | null>(
|
||||
useState<SupplierEvaluateResult.EvaluateSupplierSearchParams>({});
|
||||
const [parentRecord, setParentRecord] = useState<SupplierEvaluateResult.EvaluateTaskItem | null>(
|
||||
null,
|
||||
);
|
||||
const [evaluateRules, setEvaluateRules] = useState<API.EvaluateRuleItem[]>([]);
|
||||
const [evaluateRules, setEvaluateRules] = useState<SupplierEvaluateRuleManage.EvaluateRuleItem[]>([]);
|
||||
|
||||
|
||||
|
||||
@ -77,7 +77,7 @@ const SupplierEvaluateResultInfo: React.FC = () => {
|
||||
const fetchResultDetailList = async (
|
||||
current = 1,
|
||||
pageSize = 10,
|
||||
params: API.EvaluateSupplierSearchParams = searchParams,
|
||||
params: SupplierEvaluateResult.EvaluateSupplierSearchParams = searchParams,
|
||||
) => {
|
||||
// 确保有评价任务ID
|
||||
if (!parentRecord?.id) {
|
||||
@ -93,7 +93,7 @@ const SupplierEvaluateResultInfo: React.FC = () => {
|
||||
setLoading(true);
|
||||
try {
|
||||
// 构建请求参数
|
||||
const requestParams: API.EvaluateSupplierRequest = {
|
||||
const requestParams: SupplierEvaluateResult.EvaluateSupplierRequest = {
|
||||
basePageRequest: {
|
||||
pageNo: current,
|
||||
pageSize: pageSize,
|
||||
@ -167,7 +167,7 @@ const SupplierEvaluateResultInfo: React.FC = () => {
|
||||
};
|
||||
|
||||
// 查看得分明细
|
||||
const handleViewScoreDetail = (record: API.EvaluateSupplierRecord) => {
|
||||
const handleViewScoreDetail = (record: SupplierEvaluateResult.EvaluateSupplierItem) => {
|
||||
history.push({
|
||||
pathname: 'supplierEvaluateResultScoreDetail',
|
||||
state: { record, parentRecord }
|
||||
@ -175,7 +175,7 @@ const SupplierEvaluateResultInfo: React.FC = () => {
|
||||
};
|
||||
|
||||
// 查看打分情况
|
||||
const handleViewScoring = (record: API.EvaluateSupplierRecord) => {
|
||||
const handleViewScoring = (record: SupplierEvaluateResult.EvaluateSupplierItem) => {
|
||||
history.push({
|
||||
pathname: 'supplierEvaluateResultScoreByList',
|
||||
state: { record, parentRecord }
|
||||
@ -185,7 +185,7 @@ const SupplierEvaluateResultInfo: React.FC = () => {
|
||||
const columns = [
|
||||
{
|
||||
title: '序号',
|
||||
render: (_: any, __: API.EvaluateSupplierRecord, index: number) =>
|
||||
render: (_: any, __: SupplierEvaluateResult.EvaluateSupplierItem, index: number) =>
|
||||
(pagination.current! - 1) * pagination.pageSize! + index + 1,
|
||||
width: 80,
|
||||
},
|
||||
@ -227,7 +227,7 @@ const SupplierEvaluateResultInfo: React.FC = () => {
|
||||
key: 'action',
|
||||
width: 180,
|
||||
align: 'center' as const,
|
||||
render: (_: unknown, record: API.EvaluateSupplierRecord) => (
|
||||
render: (_: unknown, record: SupplierEvaluateResult.EvaluateSupplierItem) => (
|
||||
<Space size="middle">
|
||||
<Button
|
||||
type="link"
|
||||
|
@ -14,45 +14,21 @@ import { SearchOutlined, DeleteOutlined, ArrowLeftOutlined } from '@ant-design/i
|
||||
import { history, useLocation } from 'umi';
|
||||
import { getEvaluateScoreList, getAllEvaluateRules } from '@/servers/api/supplierEvaluate';
|
||||
|
||||
// 为修复类型问题,定义新的评分数据结构
|
||||
interface ScoreDataItem {
|
||||
id: string;
|
||||
key: string;
|
||||
name?: string;
|
||||
supplierName: string;
|
||||
evaluateTheme: string;
|
||||
startTime?: string;
|
||||
endTime?: string;
|
||||
evaluateTime: string;
|
||||
status?: string;
|
||||
statusName?: string;
|
||||
score: string | number;
|
||||
suscore?: string | number;
|
||||
createBy?: string;
|
||||
createTime?: string;
|
||||
updateBy?: string;
|
||||
updateTime?: string;
|
||||
categoryName?: string; // 品类名称
|
||||
deptName?: string; // 评价单位
|
||||
evaluatorName?: string; // 评价人员
|
||||
[key: string]: any;
|
||||
}
|
||||
|
||||
// 自定义类型用于传递给详情页的数据
|
||||
interface DetailPageState {
|
||||
record: ScoreDataItem;
|
||||
parentRecord: API.EvaluateSupplierRecord | null;
|
||||
record: SupplierEvaluateResult.ScoreDataItem;
|
||||
parentRecord: SupplierEvaluateResult.EvaluateSupplierItem | null;
|
||||
}
|
||||
|
||||
const { Option } = Select;
|
||||
|
||||
const SupplierEvaluateResultScoreByList: React.FC = () => {
|
||||
const location = useLocation<{
|
||||
record: API.EvaluateSupplierRecord;
|
||||
record: SupplierEvaluateResult.EvaluateSupplierItem;
|
||||
}>();
|
||||
const [loading, setLoading] = useState<boolean>(false);
|
||||
const [form] = Form.useForm();
|
||||
const [scoreData, setScoreData] = useState<ScoreDataItem[]>([]);
|
||||
const [scoreData, setScoreData] = useState<SupplierEvaluateResult.ScoreDataItem[]>([]);
|
||||
const [pagination, setPagination] = useState<TablePaginationConfig>({
|
||||
current: 1,
|
||||
pageSize: 10,
|
||||
@ -61,9 +37,9 @@ const SupplierEvaluateResultScoreByList: React.FC = () => {
|
||||
showQuickJumper: true,
|
||||
showTotal: (total) => `共 ${total} 条记录`,
|
||||
});
|
||||
const [searchParams, setSearchParams] = useState<API.EvaluateScoreSearchParams>({});
|
||||
const [record, setRecord] = useState<API.EvaluateSupplierRecord | null>(null);
|
||||
const [evaluateRules, setEvaluateRules] = useState<API.EvaluateRuleItem[]>([]);
|
||||
const [searchParams, setSearchParams] = useState<SupplierEvaluateResult.EvaluateScoreSearchParams>({});
|
||||
const [record, setRecord] = useState<SupplierEvaluateResult.EvaluateSupplierItem | null>(null);
|
||||
const [evaluateRules, setEvaluateRules] = useState<SupplierEvaluateRuleManage.EvaluateRuleItem[]>([]);
|
||||
|
||||
// 获取评价规则列表
|
||||
const fetchEvaluateRules = async () => {
|
||||
@ -97,7 +73,7 @@ const SupplierEvaluateResultScoreByList: React.FC = () => {
|
||||
const fetchScoreList = async (
|
||||
current = 1,
|
||||
pageSize = 10,
|
||||
params: API.EvaluateScoreSearchParams = searchParams,
|
||||
params: SupplierEvaluateResult.EvaluateScoreSearchParams = searchParams,
|
||||
) => {
|
||||
// 确保有必要的参数
|
||||
if (!record?.supplierId || !record?.evaluateTaskId) {
|
||||
@ -113,7 +89,7 @@ const SupplierEvaluateResultScoreByList: React.FC = () => {
|
||||
setLoading(true);
|
||||
try {
|
||||
// 构建请求参数
|
||||
const requestParams: API.EvaluateScoreRequest = {
|
||||
const requestParams: SupplierEvaluateResult.EvaluateScoreRequest = {
|
||||
basePageRequest: {
|
||||
pageNo: current,
|
||||
pageSize: pageSize,
|
||||
@ -181,7 +157,7 @@ const SupplierEvaluateResultScoreByList: React.FC = () => {
|
||||
}, [record]);
|
||||
|
||||
// 处理搜索
|
||||
const handleSearch = (values: API.EvaluateScoreSearchParams) => {
|
||||
const handleSearch = (values: SupplierEvaluateResult.EvaluateScoreSearchParams) => {
|
||||
fetchScoreList(1, pagination.pageSize, values);
|
||||
};
|
||||
|
||||
@ -197,7 +173,7 @@ const SupplierEvaluateResultScoreByList: React.FC = () => {
|
||||
};
|
||||
|
||||
// 查看评价详情
|
||||
const handleViewDetail = (scoreItem: ScoreDataItem) => {
|
||||
const handleViewDetail = (scoreItem: SupplierEvaluateResult.ScoreDataItem) => {
|
||||
const detailState: DetailPageState = {
|
||||
record: scoreItem,
|
||||
parentRecord: record
|
||||
@ -294,7 +270,7 @@ const SupplierEvaluateResultScoreByList: React.FC = () => {
|
||||
key: 'action',
|
||||
width: 80,
|
||||
align: 'center' as const,
|
||||
render: (_: unknown, scoreItem: ScoreDataItem) => (
|
||||
render: (_: unknown, scoreItem: SupplierEvaluateResult.ScoreDataItem) => (
|
||||
<Button type="link" onClick={() => handleViewDetail(scoreItem)}>
|
||||
查看
|
||||
</Button>
|
||||
|
@ -11,13 +11,13 @@ const { Title } = Typography;
|
||||
|
||||
const SupplierEvaluateResultScoreDetail: React.FC = () => {
|
||||
const location = useLocation<{
|
||||
record: API.EvaluateSupplierRecord;
|
||||
parentRecord: API.EvaluateTaskRecord;
|
||||
record: SupplierEvaluateResult.EvaluateSupplierItem;
|
||||
parentRecord: SupplierEvaluateResult.EvaluateTaskItem;
|
||||
}>();
|
||||
const [loading, setLoading] = useState<boolean>(false);
|
||||
const [supplierRecord, setSupplierRecord] = useState<API.EvaluateSupplierRecord | null>(null);
|
||||
const [parentRecord, setParentRecord] = useState<API.EvaluateTaskRecord | null>(null);
|
||||
const [scoreDetail, setScoreDetail] = useState<API.EvaluateScoreDetailData | null>(null);
|
||||
const [supplierRecord, setSupplierRecord] = useState<SupplierEvaluateResult.EvaluateSupplierItem | null>(null);
|
||||
const [parentRecord, setParentRecord] = useState<SupplierEvaluateResult.EvaluateTaskItem | null>(null);
|
||||
const [scoreDetail, setScoreDetail] = useState<SupplierEvaluateResult.EvaluateScoreDetailData | null>(null);
|
||||
|
||||
// 获取上级页面传递的数据
|
||||
useEffect(() => {
|
||||
@ -69,12 +69,12 @@ const SupplierEvaluateResultScoreDetail: React.FC = () => {
|
||||
const formatDataForScoreTable = () => {
|
||||
if (!scoreDetail?.taskIndicatorVo) return [];
|
||||
|
||||
return scoreDetail.taskIndicatorVo.map(indicator => {
|
||||
return scoreDetail.taskIndicatorVo.map((indicator: SupplierEvaluateResult.TaskIndicatorVo) => {
|
||||
return {
|
||||
baseIndicator: indicator.baseIndicator,
|
||||
descIndicator: indicator.indicatorDesc,
|
||||
score: indicator.score,
|
||||
indicatorNdList: indicator.subIndicator?.map(subItem => {
|
||||
indicatorNdList: indicator.subIndicator?.map((subItem: SupplierEvaluateResult.SubIndicator) => {
|
||||
return {
|
||||
subIndicator: subItem.subIndicator,
|
||||
score: subItem.subScore,
|
||||
|
Reference in New Issue
Block a user