feat(表单): 添加采集内容类型选择功能

在表单页面新增采集内容类型选择功能,支持用户选择文本、图片和视频类型
This commit is contained in:
超级老白兔
2025-09-11 10:05:21 +08:00
parent 23c54af27d
commit 919f0dc120

View File

@@ -48,6 +48,11 @@ export default function ContentForm() {
const [showEndPicker, setShowEndPicker] = useState(false);
const [keywordsInclude, setKeywordsInclude] = useState("");
const [keywordsExclude, setKeywordsExclude] = useState("");
const [catchType, setCatchType] = useState<string[]>([
"text",
"image",
"video",
]);
const [submitting, setSubmitting] = useState(false);
const [loading, setLoading] = useState(false);
@@ -65,6 +70,7 @@ export default function ContentForm() {
setSelectedFriendsOptions(data.friendsGroupsOptions || []);
setKeywordsInclude((data.keywordInclude || []).join(","));
setKeywordsExclude((data.keywordExclude || []).join(","));
setCatchType(data.catchType || ["text", "image", "video"]);
setAIPrompt(data.aiPrompt || "");
setUseAI(!!data.aiPrompt);
setEnabled(data.status === 1);
@@ -108,6 +114,7 @@ export default function ContentForm() {
.split(/,||\n|\s+/)
.map(s => s.trim())
.filter(Boolean),
catchType,
aiPrompt,
timeEnabled: dateRange[0] || dateRange[1] ? 1 : 0,
startTime: dateRange[0] ? formatDate(dateRange[0]) : "",
@@ -236,6 +243,46 @@ export default function ContentForm() {
</Collapse.Panel>
</Collapse>
{/* 采集内容类型 */}
<div className={style["section-title"]}></div>
<div className={style["form-section"]}>
<div style={{ display: "flex", flexWrap: "wrap", gap: 12 }}>
{["text", "image", "video"].map(type => (
<div
key={type}
style={{
display: "flex",
alignItems: "center",
gap: 8,
padding: "8px 12px",
border: "1px solid #d9d9d9",
borderRadius: "6px",
backgroundColor: catchType.includes(type)
? "#1890ff"
: "#fff",
color: catchType.includes(type) ? "#fff" : "#333",
cursor: "pointer",
}}
onClick={() => {
setCatchType(prev =>
prev.includes(type)
? prev.filter(t => t !== type)
: [...prev, type],
);
}}
>
<span>
{type === "text"
? "文本"
: type === "image"
? "图片"
: "视频"}
</span>
</div>
))}
</div>
</div>
<div className={style["section-title"]}>AI</div>
<div
className={style["form-section"]}