代码提交
This commit is contained in:
@@ -26,16 +26,7 @@ interface TaskDetail {
|
||||
startTime: string
|
||||
endTime: string
|
||||
enabled: boolean
|
||||
devices: {
|
||||
id: string
|
||||
name: string
|
||||
avatar: string
|
||||
}[]
|
||||
contentLibraries: {
|
||||
id: string
|
||||
name: string
|
||||
count: number
|
||||
}[]
|
||||
config: any
|
||||
lastSyncTime: string
|
||||
createTime: string
|
||||
creator: string
|
||||
@@ -79,7 +70,7 @@ export default function MomentsSyncDetailPage({ params }: { params: { id: string
|
||||
const fetchTaskDetail = async () => {
|
||||
setIsLoading(true)
|
||||
try {
|
||||
const response = await api.get<ApiResponse>(`/v1/workbench/moments-records?workbenchId=${params.id}`)
|
||||
const response = await api.get<ApiResponse>(`/v1/workbench/detail?id=${params.id}`)
|
||||
if (response.code === 200 && response.data) {
|
||||
setTaskDetail(response.data)
|
||||
|
||||
@@ -260,33 +251,6 @@ export default function MomentsSyncDetailPage({ params }: { params: { id: string
|
||||
</Button>
|
||||
<h1 className="text-lg font-medium">任务详情</h1>
|
||||
</div>
|
||||
<div className="flex items-center space-x-2">
|
||||
<Switch
|
||||
checked={taskDetail.status === "running"}
|
||||
onCheckedChange={toggleTaskStatus}
|
||||
/>
|
||||
<DropdownMenu>
|
||||
<DropdownMenuTrigger asChild>
|
||||
<Button variant="ghost" size="icon">
|
||||
<MoreVertical className="h-5 w-5" />
|
||||
</Button>
|
||||
</DropdownMenuTrigger>
|
||||
<DropdownMenuContent align="end">
|
||||
<DropdownMenuItem onClick={handleEdit}>
|
||||
<Edit className="h-4 w-4 mr-2" />
|
||||
编辑
|
||||
</DropdownMenuItem>
|
||||
<DropdownMenuItem onClick={handleCopy}>
|
||||
<Copy className="h-4 w-4 mr-2" />
|
||||
复制
|
||||
</DropdownMenuItem>
|
||||
<DropdownMenuItem onClick={confirmDelete} className="text-red-500 hover:text-red-600">
|
||||
<Trash2 className="h-4 w-4 mr-2" />
|
||||
删除
|
||||
</DropdownMenuItem>
|
||||
</DropdownMenuContent>
|
||||
</DropdownMenu>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
@@ -296,8 +260,8 @@ export default function MomentsSyncDetailPage({ params }: { params: { id: string
|
||||
<div className="flex items-center justify-between mb-4">
|
||||
<div className="flex items-center space-x-2">
|
||||
<h2 className="text-xl font-semibold">{taskDetail.name}</h2>
|
||||
<Badge variant={taskDetail.status === "running" ? "success" : "secondary"}>
|
||||
{taskDetail.status === "running" ? "进行中" : "已暂停"}
|
||||
<Badge variant={taskDetail.status == 1 ? "success" : "secondary"}>
|
||||
{taskDetail.status == 1 ? "进行中" : "已暂停"}
|
||||
</Badge>
|
||||
</div>
|
||||
</div>
|
||||
@@ -323,28 +287,24 @@ export default function MomentsSyncDetailPage({ params }: { params: { id: string
|
||||
<div className="space-y-4">
|
||||
<div>
|
||||
<div className="font-medium mb-1">账号类型</div>
|
||||
<div className="text-gray-600">{taskDetail.accountType === 1 ? "业务号" : "人设号"}</div>
|
||||
</div>
|
||||
<div>
|
||||
<div className="font-medium mb-1">同步类型</div>
|
||||
<div className="text-gray-600">{taskDetail.syncType === 1 ? "循环同步" : "实时更新"}</div>
|
||||
<div className="text-gray-600">{taskDetail.config.accountType === 1 ? "业务号" : "人设号"}</div>
|
||||
</div>
|
||||
<div>
|
||||
<div className="font-medium mb-1">同步间隔</div>
|
||||
<div className="text-gray-600">{taskDetail.syncInterval} 分钟</div>
|
||||
<div className="text-gray-600">{taskDetail.config.syncInterval} 分钟</div>
|
||||
</div>
|
||||
<div>
|
||||
<div className="font-medium mb-1">每日同步数量</div>
|
||||
<div className="text-gray-600">{taskDetail.syncCount} 条</div>
|
||||
<div className="text-gray-600">{taskDetail.config.syncCount} 条</div>
|
||||
</div>
|
||||
<div>
|
||||
<div className="font-medium mb-1">允许发布时间段</div>
|
||||
<div className="text-gray-600">{taskDetail.startTime} - {taskDetail.endTime}</div>
|
||||
<div className="text-gray-600">{taskDetail.config.startTime} - {taskDetail.config.endTime}</div>
|
||||
</div>
|
||||
<div>
|
||||
<div className="font-medium mb-1">内容库</div>
|
||||
<div className="flex flex-wrap gap-2 mt-1">
|
||||
{taskDetail.contentLibraries.map((lib) => (
|
||||
{taskDetail.config.contentLibraries.map((lib) => (
|
||||
<Badge key={lib.id} variant="outline" className="bg-blue-50">
|
||||
{lib.name}
|
||||
</Badge>
|
||||
@@ -357,24 +317,24 @@ export default function MomentsSyncDetailPage({ params }: { params: { id: string
|
||||
|
||||
<TabsContent value="devices" className="mt-4">
|
||||
<Card className="p-4">
|
||||
{taskDetail.devices.length === 0 ? (
|
||||
{taskDetail.config.deviceList.length === 0 ? (
|
||||
<div className="text-center py-8 text-gray-500">暂无关联设备</div>
|
||||
) : (
|
||||
<div className="divide-y">
|
||||
{taskDetail.devices.map((device) => (
|
||||
{taskDetail.config.deviceList.map((device) => (
|
||||
<div key={device.id} className="flex items-center py-3 first:pt-0 last:pb-0">
|
||||
<Avatar className="h-10 w-10 mr-3">
|
||||
{device.avatar ? (
|
||||
<img src={device.avatar} alt={device.name} />
|
||||
<img src={device.avatar} alt={device.nickname} />
|
||||
) : (
|
||||
<div className="bg-blue-100 text-blue-600 h-full w-full flex items-center justify-center">
|
||||
{device.name.charAt(0)}
|
||||
{device.nickname}
|
||||
</div>
|
||||
)}
|
||||
</Avatar>
|
||||
<div>
|
||||
<div className="font-medium">{device.name}</div>
|
||||
<div className="text-xs text-gray-500">ID: {device.id}</div>
|
||||
<div className="font-medium">{device.nickname}</div>
|
||||
<div className="text-xs text-gray-500">{device.alias || device.wechatId}</div>
|
||||
</div>
|
||||
</div>
|
||||
))}
|
||||
|
||||
Reference in New Issue
Block a user