自动点赞
This commit is contained in:
@@ -2,15 +2,19 @@
|
||||
|
||||
import { useState, useEffect, use } from "react"
|
||||
import { useRouter } from "next/navigation"
|
||||
import { ChevronLeft, Search } from "lucide-react"
|
||||
import { ChevronLeft, Search, Users } from "lucide-react"
|
||||
import { Button } from "@/components/ui/button"
|
||||
import { Input } from "@/components/ui/input"
|
||||
import { StepIndicator } from "../../components/step-indicator"
|
||||
import { BasicSettings } from "../../components/basic-settings"
|
||||
import { DeviceSelectionDialog } from "../../components/device-selection-dialog"
|
||||
import { TagSelector } from "../../components/tag-selector"
|
||||
import { WechatGroupMemberSelector } from "@/components/WechatGroupMemberSelector"
|
||||
import { WechatFriendSelector } from "@/components/WechatFriendSelector"
|
||||
import { api, ApiResponse } from "@/lib/api"
|
||||
import { showToast } from "@/lib/toast"
|
||||
import { WechatGroupMember } from "@/types/wechat"
|
||||
import { WechatFriend } from "@/components/WechatFriendSelector"
|
||||
|
||||
interface TaskConfig {
|
||||
id: number
|
||||
@@ -43,6 +47,11 @@ export default function EditAutoLikePage({ params }: { params: Promise<{ id: str
|
||||
const router = useRouter()
|
||||
const [currentStep, setCurrentStep] = useState(1)
|
||||
const [deviceDialogOpen, setDeviceDialogOpen] = useState(false)
|
||||
const [isGroupMemberSelectorOpen, setIsGroupMemberSelectorOpen] = useState(false)
|
||||
const [currentGroupId, setCurrentGroupId] = useState<string>("")
|
||||
const [selectedGroupMembers, setSelectedGroupMembers] = useState<WechatGroupMember[]>([])
|
||||
const [isFriendSelectorOpen, setIsFriendSelectorOpen] = useState(false)
|
||||
const [selectedFriends, setSelectedFriends] = useState<WechatFriend[]>([])
|
||||
const [loading, setLoading] = useState(true)
|
||||
const [formData, setFormData] = useState({
|
||||
taskName: "",
|
||||
@@ -52,8 +61,7 @@ export default function EditAutoLikePage({ params }: { params: Promise<{ id: str
|
||||
contentTypes: ["text", "image", "video"],
|
||||
enabled: true,
|
||||
selectedDevices: [] as number[],
|
||||
selectedTags: [] as string[],
|
||||
tagOperator: "and" as "and" | "or",
|
||||
friends: [] as string[],
|
||||
})
|
||||
|
||||
useEffect(() => {
|
||||
@@ -78,8 +86,7 @@ export default function EditAutoLikePage({ params }: { params: Promise<{ id: str
|
||||
contentTypes: task.config.contentTypes,
|
||||
enabled: task.status === 1,
|
||||
selectedDevices: task.config.devices,
|
||||
selectedTags: task.config.targetGroups,
|
||||
tagOperator: task.config.tagOperator === 1 ? "and" : "or"
|
||||
friends: Array.isArray(task.config.friends) ? task.config.friends : [],
|
||||
})
|
||||
} else {
|
||||
showToast(response.msg || "获取任务信息失败", "error")
|
||||
@@ -121,8 +128,7 @@ export default function EditAutoLikePage({ params }: { params: Promise<{ id: str
|
||||
contentTypes: formData.contentTypes,
|
||||
enabled: formData.enabled,
|
||||
devices: formData.selectedDevices,
|
||||
targetGroups: formData.selectedTags,
|
||||
tagOperator: formData.tagOperator === 'and' ? 1 : 2
|
||||
friends: formData.friends,
|
||||
});
|
||||
|
||||
if (response.code === 200) {
|
||||
@@ -140,6 +146,17 @@ export default function EditAutoLikePage({ params }: { params: Promise<{ id: str
|
||||
}
|
||||
};
|
||||
|
||||
const handleSelectFriends = () => {
|
||||
setIsFriendSelectorOpen(true)
|
||||
}
|
||||
|
||||
const handleSaveSelectedFriends = (friends: WechatFriend[]) => {
|
||||
const ids = friends.map(f => f.id)
|
||||
setSelectedFriends(friends)
|
||||
handleUpdateFormData({ friends: ids })
|
||||
setIsFriendSelectorOpen(false)
|
||||
}
|
||||
|
||||
if (loading) {
|
||||
return null;
|
||||
}
|
||||
@@ -207,15 +224,19 @@ export default function EditAutoLikePage({ params }: { params: Promise<{ id: str
|
||||
|
||||
{currentStep === 3 && (
|
||||
<div className="px-6">
|
||||
<TagSelector
|
||||
selectedTags={formData.selectedTags}
|
||||
tagOperator={formData.tagOperator}
|
||||
onTagsChange={(tags) => handleUpdateFormData({ selectedTags: tags })}
|
||||
onOperatorChange={(operator) => handleUpdateFormData({ tagOperator: operator })}
|
||||
onBack={handlePrev}
|
||||
onComplete={handleComplete}
|
||||
/>
|
||||
|
||||
<div className="relative">
|
||||
<Users className="absolute left-3 top-4 h-5 w-5 text-gray-400" />
|
||||
<Input
|
||||
placeholder="选择微信好友"
|
||||
className="h-12 pl-11 rounded-xl border-gray-200 text-base"
|
||||
onClick={handleSelectFriends}
|
||||
readOnly
|
||||
value={formData.friends.length > 0 ? `已选择 ${formData.friends.length} 个好友` : ""}
|
||||
/>
|
||||
</div>
|
||||
{formData.friends.length > 0 && (
|
||||
<div className="text-base text-gray-500">已选好友:{formData.friends.length} 个</div>
|
||||
)}
|
||||
<div className="flex space-x-4 pt-4">
|
||||
<Button variant="outline" onClick={handlePrev} className="flex-1 h-12 rounded-xl text-base">
|
||||
上一步
|
||||
@@ -227,6 +248,12 @@ export default function EditAutoLikePage({ params }: { params: Promise<{ id: str
|
||||
完成
|
||||
</Button>
|
||||
</div>
|
||||
<WechatFriendSelector
|
||||
open={isFriendSelectorOpen}
|
||||
onOpenChange={setIsFriendSelectorOpen}
|
||||
selectedFriends={selectedFriends}
|
||||
onSelect={handleSaveSelectedFriends}
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
|
||||
@@ -10,7 +10,7 @@ import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"
|
||||
import { api } from "@/lib/api"
|
||||
import { showToast } from "@/lib/toast"
|
||||
|
||||
interface WechatFriend {
|
||||
export interface WechatFriend {
|
||||
id: string
|
||||
nickname: string
|
||||
wechatId: string
|
||||
|
||||
Reference in New Issue
Block a user