整理接口定义规范
This commit is contained in:
@ -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
|
||||
}
|
||||
>
|
||||
|
Reference in New Issue
Block a user