fix(contact-import): 修复联系人导入表单时间格式和设备组选项问题

- 将时间格式从HH:mm:ss简化为HH:mm
- 从config中获取设备组选项而不是手动构造
- 添加加载状态防止重复提交
This commit is contained in:
超级老白兔
2025-09-11 11:56:50 +08:00
parent 8d386d9bdf
commit b69ad40013

View File

@@ -32,8 +32,8 @@ const ContactImportForm: React.FC = () => {
clearContact: 0,
remarkType: 0,
remark: "",
startTime: null,
endTime: null,
startTime: dayjs("09:00", "HH:mm"),
endTime: dayjs("21:00", "HH:mm"),
// 保留原有字段用于UI显示
deviceGroupsOptions: [] as any[],
});
@@ -55,30 +55,25 @@ const ContactImportForm: React.FC = () => {
setLoading(true);
const data = await fetchContactImportTaskDetail(Number(id));
if (data) {
const config = data.config || {};
// 构造设备选择组件需要的数据格式
// 如果后端返回的是设备ID数组需要构造完整的设备对象用于显示
const deviceGroupsOptions =
data.deviceGroups?.map((deviceId: number) => ({
id: deviceId,
memo: `设备 ${deviceId}`,
imei: ``,
wechatId: ``,
status: "online" as const,
})) || [];
const deviceGroupsOptions = config.deviceGroupsOptions || [];
setFormData({
name: data.name || "",
status: data.status || 1,
type: data.type || 6,
workbenchId: data.workbenchId || 1,
deviceGroups: data.deviceGroups || [],
pools: data.pools ? JSON.parse(JSON.stringify(data.pools)) : [],
num: data.num || 50,
clearContact: data.clearContact || 0,
remarkType: data.remarkType || 0,
remark: data.remark || "",
startTime: data.startTime ? dayjs(data.startTime, "HH:mm:ss") : null,
endTime: data.endTime ? dayjs(data.endTime, "HH:mm:ss") : null,
workbenchId: config.workbenchId || 1,
deviceGroups:
deviceGroupsOptions.map((device: any) => device.id) || [],
pools: config.pools ? JSON.parse(JSON.stringify(config.pools)) : [],
num: config.num || 50,
clearContact: config.clearContact || 0,
remarkType: config.remarkType || 0,
remark: config.remark || "",
startTime: config.startTime ? dayjs(config.startTime, "HH:mm") : null,
endTime: config.endTime ? dayjs(config.endTime, "HH:mm") : null,
deviceGroupsOptions,
});
}
@@ -135,8 +130,8 @@ const ContactImportForm: React.FC = () => {
clearContact: formData.clearContact,
remarkType: formData.remarkType,
remark: formData.remark || null,
startTime: formData.startTime?.format("HH:mm:ss") || null,
endTime: formData.endTime?.format("HH:mm:ss") || null,
startTime: formData.startTime?.format("HH:mm") || null,
endTime: formData.endTime?.format("HH:mm") || null,
};
if (isEdit && id) {
@@ -168,8 +163,8 @@ const ContactImportForm: React.FC = () => {
clearContact: 0,
remarkType: 0,
remark: "",
startTime: null,
endTime: null,
startTime: dayjs("09:00", "HH:mm"),
endTime: dayjs("21:00", "HH:mm"),
deviceGroupsOptions: [],
});
};
@@ -203,6 +198,7 @@ const ContactImportForm: React.FC = () => {
</Button>
</div>
}
loading={loading}
>
<div className={style.formBg}>
<div className={style.basicSection}>