存客宝 - 修复添加设备二维码有时会错误的问题

This commit is contained in:
柳清爽
2025-04-30 17:15:11 +08:00
parent af1b3b6988
commit 4935d8c8c0
7 changed files with 125 additions and 75 deletions

View File

@@ -9,6 +9,7 @@ import { BasicSettings } from "../components/basic-settings"
import { GroupSelector } from "../components/group-selector"
import { ContentSelector } from "../components/content-selector"
import type { WechatGroup, ContentLibrary } from "@/types/group-sync"
import { toast } from "@/components/ui/use-toast"
const steps = [
{ id: 1, title: "步骤 1", subtitle: "基础设置" },
@@ -46,11 +47,39 @@ export default function NewGroupSyncPage() {
setFormData((prev) => ({ ...prev, contentLibraries }))
}
const handleSave = () => {
// 这里可以添加保存逻辑例如API调用
console.log("保存表单数据:", formData)
router.push("/workspace/group-sync")
}
const handleSubmit = async (formData: any) => {
try {
const response = await fetch(`${process.env.NEXT_PUBLIC_API_BASE_URL}/v1/api/group-sync`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${localStorage.getItem('token')}`
},
body: JSON.stringify(formData)
});
const data = await response.json();
if (data.code === 200) {
toast({
title: "创建成功",
description: "群同步计划已创建",
});
router.push('/workspace/group-sync');
} else {
toast({
title: "创建失败",
description: data.msg || "请稍后重试",
variant: "destructive",
});
}
} catch (error) {
toast({
title: "创建失败",
description: "网络错误,请稍后重试",
variant: "destructive",
});
}
};
const handleCancel = () => {
router.push("/workspace/group-sync")
@@ -81,7 +110,7 @@ export default function NewGroupSyncPage() {
isEnabled: formData.isEnabled,
}}
onNext={handleBasicSettingsNext}
onSave={handleSave}
onSave={handleSubmit}
onCancel={handleCancel}
/>
)}
@@ -92,7 +121,7 @@ export default function NewGroupSyncPage() {
onGroupsChange={handleGroupsChange}
onPrevious={() => setCurrentStep(1)}
onNext={() => setCurrentStep(3)}
onSave={handleSave}
onSave={handleSubmit}
onCancel={handleCancel}
/>
)}
@@ -103,7 +132,7 @@ export default function NewGroupSyncPage() {
onLibrariesChange={handleLibrariesChange}
onPrevious={() => setCurrentStep(2)}
onNext={() => setCurrentStep(4)}
onSave={handleSave}
onSave={handleSubmit}
onCancel={handleCancel}
/>
)}
@@ -118,7 +147,7 @@ export default function NewGroupSyncPage() {
<Button type="button" variant="outline" onClick={() => setCurrentStep(3)}>
</Button>
<Button type="button" onClick={handleSave}>
<Button type="button" onClick={handleSubmit}>
</Button>
<Button type="button" variant="outline" onClick={handleCancel}>

View File

@@ -15,6 +15,7 @@ import { Tabs, TabsList, TabsTrigger, TabsContent } from "@/components/ui/tabs"
import { Slider } from "@/components/ui/slider"
import { Badge } from "@/components/ui/badge"
import { TrafficPoolSelector } from "@/app/components/traffic-pool-selector"
import { toast } from "@/components/ui/use-toast"
// 模拟数据
const planDetails = {
@@ -123,11 +124,39 @@ export default function EditTrafficDistributionPage({ params }: { params: { id:
}
}
const handleSubmit = () => {
// 这里处理表单提交逻辑
console.log("提交表单数据:", formData)
router.push(`/workspace/traffic-distribution/${params.id}`)
}
const handleSubmit = async (formData: any) => {
try {
const response = await fetch(`${process.env.NEXT_PUBLIC_API_BASE_URL}/v1/api/traffic-distribution/${params.id}`, {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${localStorage.getItem('token')}`
},
body: JSON.stringify(formData)
});
const data = await response.json();
if (data.code === 200) {
toast({
title: "保存成功",
description: "流量分配计划已更新",
});
router.push('/workspace/traffic-distribution');
} else {
toast({
title: "保存失败",
description: data.msg || "请稍后重试",
variant: "destructive",
});
}
} catch (error) {
toast({
title: "保存失败",
description: "网络错误,请稍后重试",
variant: "destructive",
});
}
};
const isStep1Valid = formData.name && formData.source
const isStep2Valid = formData.targetGroups.length > 0 || formData.targetDevices.length > 0
@@ -463,7 +492,7 @@ export default function EditTrafficDistributionPage({ params }: { params: { id:
<ArrowLeft className="mr-2 h-4 w-4" />
</Button>
<Button onClick={handleSubmit} disabled={!isStep3Valid}>
<Button onClick={() => handleSubmit(formData)} disabled={!isStep3Valid}>
</Button>
</div>