整理接口定义规范

This commit is contained in:
linxd
2025-07-02 12:02:52 +08:00
parent 500272f459
commit aa7f985a74
49 changed files with 1345 additions and 2862 deletions

View File

@ -39,21 +39,33 @@ import styles from './supplierTemplateManage.less';
const { Option } = Select;
const { confirm } = Modal;
// 定义指标相关的接口
interface FormValues {
templateName: string;
categoryLimitation: string;
categoryId?: string;
status: string;
copyTemplateId?: string;
indicatorStMore: string;
indicatorNdMore: string;
[key: string]: any;
}
interface LocationState {
isEdit?: boolean;
editData?: SupplierEvaluate.TemplateRecord;
editData?: SupplierTemplateManage.TemplateItem;
}
const { Title } = Typography;
const SupplierTemplateManageAdd: React.FC = () => {
const intl = useIntl();
const [form] = Form.useForm();
const [form] = Form.useForm<FormValues>();
const [loading, setLoading] = useState<boolean>(false);
const [templateData, setTemplateData] = useState<any[]>([]);
const [templateData, setTemplateData] = useState<SupplierTemplateManage.IndicatorSt[]>([]);
const [isEdit, setIsEdit] = useState<boolean>(false);
const [templateDetail, setTemplateDetail] = useState<SupplierEvaluate.TemplateDetail>();
const [templateList, setTemplateList] = useState<SupplierEvaluate.TemplateItem[]>([]);
const [templateDetail, setTemplateDetail] = useState<SupplierTemplateManage.TemplateDetailResponse['data']>();
const [templateList, setTemplateList] = useState<SupplierTemplateManage.TemplateItem[]>([]);
// 添加控制开关的状态
const [indicatorStMore, setIndicatorStMore] = useState<string>(IndicatorAddOption.CAN_ADD);
@ -83,7 +95,7 @@ const SupplierTemplateManageAdd: React.FC = () => {
setLoading(true);
const res = await getTemplateDetail(templateId);
if (res.success && res.data) {
setTemplateDetail(res.data as any);
setTemplateDetail(res.data);
// 设置表单数据
form.setFieldsValue({
@ -98,7 +110,7 @@ const SupplierTemplateManageAdd: React.FC = () => {
// 直接设置指标数据,无需转换
if (res.data.indicatorStList && res.data.indicatorStList.length > 0) {
setTemplateData(res.data.indicatorStList);
setTemplateData(res.data.indicatorStList as SupplierTemplateManage.IndicatorSt[]);
}
} else {
message.error(intl.formatMessage({ id: 'supplierTemplateManage.message.getDetailFailed' }) || res.message);
@ -133,16 +145,16 @@ const SupplierTemplateManageAdd: React.FC = () => {
};
// 提交数据的函数
const handleDataSubmit = async (values: any) => {
const handleDataSubmit = async (values: FormValues) => {
// 准备提交数据
const selectedTemplate = templateList.find(template => template.id === values.copyTemplateId);
const dataToSubmit: any = {
const dataToSubmit: SupplierTemplateManage.TemplateUpdateRequest = {
...values,
templateType: selectedTemplate?.templateType || '',
indicatorStList: templateData,
indicatorTypeMore: IndicatorAddOption.CAN_ADD,
status: parseInt(values.status, 10)
};
} as unknown as SupplierTemplateManage.TemplateUpdateRequest;
// 如果是编辑模式添加ID
if (isEdit && templateDetail) {
@ -156,7 +168,7 @@ const SupplierTemplateManageAdd: React.FC = () => {
if (isEdit) {
res = await updateTemplate(dataToSubmit);
} else {
res = await addTemplate(dataToSubmit);
res = await addTemplate(dataToSubmit as unknown as SupplierTemplateManage.TemplateAddRequest);
}
if (res.success) {
@ -180,7 +192,7 @@ const SupplierTemplateManageAdd: React.FC = () => {
};
// 处理表单提交
const handleSubmit = (values: any) => {
const handleSubmit = (values: FormValues) => {
// 验证指标数据
if (!templateData || templateData.length === 0) {
message.error(intl.formatMessage({ id: 'supplierTemplateManage.message.addIndicator' }));
@ -206,7 +218,7 @@ const SupplierTemplateManageAdd: React.FC = () => {
};
// 处理指标数据变更
const handleTemplateDataChange = (data: any[]) => {
const handleTemplateDataChange = (data: SupplierTemplateManage.IndicatorSt[]) => {
setTemplateData(data);
};
@ -238,10 +250,10 @@ const SupplierTemplateManageAdd: React.FC = () => {
// 只复制指标数据,不复制基础信息
if (res.data.indicatorStList && res.data.indicatorStList.length > 0) {
// 复制模板数据但清除ID以创建新记录
const copiedIndicatorStList = JSON.parse(JSON.stringify(res.data.indicatorStList)).map((stItem: any) => {
const copiedIndicatorStList = JSON.parse(JSON.stringify(res.data.indicatorStList)).map((stItem: SupplierTemplateManage.IndicatorSt) => {
// 删除ID而不是设为undefined
delete stItem.id;
stItem.indicatorNdList = stItem.indicatorNdList.map((ndItem: any) => {
stItem.indicatorNdList = stItem.indicatorNdList.map((ndItem: SupplierTemplateManage.IndicatorNd) => {
delete ndItem.id;
return ndItem;
});
@ -276,7 +288,7 @@ const SupplierTemplateManageAdd: React.FC = () => {
</Button>
</div>
<Form
<Form<FormValues>
form={form}
onFinish={handleSubmit}
initialValues={{
@ -315,7 +327,7 @@ const SupplierTemplateManageAdd: React.FC = () => {
<Col span={8}>
<Form.Item
noStyle
shouldUpdate={(prevValues, currentValues) =>
shouldUpdate={(prevValues: FormValues, currentValues: FormValues) =>
prevValues.categoryLimitation !== currentValues.categoryLimitation
}
>