diff --git a/nkebao/src/pages/workspace/auto-group/AutoGroup.tsx b/nkebao/src/pages/workspace/auto-group/AutoGroup.tsx
deleted file mode 100644
index 935827d6..00000000
--- a/nkebao/src/pages/workspace/auto-group/AutoGroup.tsx
+++ /dev/null
@@ -1,10 +0,0 @@
-import React from "react";
-import PlaceholderPage from "@/components/PlaceholderPage";
-
-const AutoGroup: React.FC = () => {
- return (
-
- );
-};
-
-export default AutoGroup;
diff --git a/nkebao/src/pages/workspace/auto-group/Detail.tsx b/nkebao/src/pages/workspace/auto-group/Detail.tsx
deleted file mode 100644
index db34f334..00000000
--- a/nkebao/src/pages/workspace/auto-group/Detail.tsx
+++ /dev/null
@@ -1,8 +0,0 @@
-import React from "react";
-import PlaceholderPage from "@/components/PlaceholderPage";
-
-const AutoGroupDetail: React.FC = () => {
- return ;
-};
-
-export default AutoGroupDetail;
diff --git a/nkebao/src/pages/workspace/auto-group/detail/api.ts b/nkebao/src/pages/workspace/auto-group/detail/api.ts
new file mode 100644
index 00000000..ff38e95f
--- /dev/null
+++ b/nkebao/src/pages/workspace/auto-group/detail/api.ts
@@ -0,0 +1,6 @@
+import request from "@/api/request";
+
+// 获取自动建群任务详情
+export function getAutoGroupDetail(id: string) {
+ return request(`/api/auto-group/detail/${id}`);
+}
diff --git a/nkebao/src/pages/workspace/auto-group/detail/index.module.scss b/nkebao/src/pages/workspace/auto-group/detail/index.module.scss
new file mode 100644
index 00000000..93c42e85
--- /dev/null
+++ b/nkebao/src/pages/workspace/auto-group/detail/index.module.scss
@@ -0,0 +1,3 @@
+.autoGroupDetail {
+ // 这里写详情页样式
+}
\ No newline at end of file
diff --git a/nkebao/src/pages/workspace/auto-group/detail/index.tsx b/nkebao/src/pages/workspace/auto-group/detail/index.tsx
new file mode 100644
index 00000000..00f574dd
--- /dev/null
+++ b/nkebao/src/pages/workspace/auto-group/detail/index.tsx
@@ -0,0 +1,7 @@
+import React from "react";
+
+const AutoGroupDetail: React.FC = () => {
+ return
自动建群详情页
;
+};
+
+export default AutoGroupDetail;
diff --git a/nkebao/src/pages/workspace/auto-group/form/api.ts b/nkebao/src/pages/workspace/auto-group/form/api.ts
new file mode 100644
index 00000000..4ab01f32
--- /dev/null
+++ b/nkebao/src/pages/workspace/auto-group/form/api.ts
@@ -0,0 +1,11 @@
+import request from "@/api/request";
+
+// 新建自动建群任务
+export function createAutoGroup(data: any) {
+ return request("/api/auto-group/create", data, "POST");
+}
+
+// 编辑自动建群任务
+export function updateAutoGroup(id: string, data: any) {
+ return request(`/api/auto-group/update/${id}`, data, "POST");
+}
diff --git a/nkebao/src/pages/workspace/auto-group/form/index.module.scss b/nkebao/src/pages/workspace/auto-group/form/index.module.scss
new file mode 100644
index 00000000..19f9a662
--- /dev/null
+++ b/nkebao/src/pages/workspace/auto-group/form/index.module.scss
@@ -0,0 +1,3 @@
+.autoGroupForm {
+ // 这里写新建/编辑页样式
+}
\ No newline at end of file
diff --git a/nkebao/src/pages/workspace/auto-group/form/index.tsx b/nkebao/src/pages/workspace/auto-group/form/index.tsx
new file mode 100644
index 00000000..3a8d8bd1
--- /dev/null
+++ b/nkebao/src/pages/workspace/auto-group/form/index.tsx
@@ -0,0 +1,7 @@
+import React from "react";
+
+const AutoGroupForm: React.FC = () => {
+ return 自动建群新建/编辑页
;
+};
+
+export default AutoGroupForm;
diff --git a/nkebao/src/pages/workspace/auto-group/list/api.ts b/nkebao/src/pages/workspace/auto-group/list/api.ts
new file mode 100644
index 00000000..073a6242
--- /dev/null
+++ b/nkebao/src/pages/workspace/auto-group/list/api.ts
@@ -0,0 +1,8 @@
+import request from "@/api/request";
+
+// 获取自动建群任务列表
+export function getAutoGroupList(params?: any) {
+ return request("/api/auto-group/list", params, "GET");
+}
+
+// 其他相关API可按需添加
diff --git a/nkebao/src/pages/workspace/auto-group/list/index.module.scss b/nkebao/src/pages/workspace/auto-group/list/index.module.scss
new file mode 100644
index 00000000..02104154
--- /dev/null
+++ b/nkebao/src/pages/workspace/auto-group/list/index.module.scss
@@ -0,0 +1,3 @@
+.autoGroupList {
+ // 这里写列表页样式
+}
\ No newline at end of file
diff --git a/nkebao/src/pages/workspace/auto-group/list/index.tsx b/nkebao/src/pages/workspace/auto-group/list/index.tsx
new file mode 100644
index 00000000..ec7b02eb
--- /dev/null
+++ b/nkebao/src/pages/workspace/auto-group/list/index.tsx
@@ -0,0 +1,378 @@
+import React, { useState } from "react";
+import { useNavigate } from "react-router-dom";
+import {
+ Button,
+ Card,
+ Input,
+ Switch,
+ ProgressBar,
+ Popover,
+ Toast,
+} from "antd-mobile";
+import {
+ MoreOutline,
+ AddCircleOutline,
+ SearchOutline,
+ FilterOutline,
+ UserAddOutline,
+ ClockCircleOutline,
+ TeamOutline,
+ CalendarOutline,
+} from "antd-mobile-icons";
+
+import { ReloadOutlined, SettingOutlined } from "@ant-design/icons";
+
+import Layout from "@/components/Layout/Layout";
+import MeauMobile from "@/components/MeauMobile/MeauMoible";
+import style from "./index.module.scss";
+
+interface GroupTask {
+ id: string;
+ name: string;
+ status: "running" | "paused" | "completed";
+ deviceCount: number;
+ targetFriends: number;
+ createdGroups: number;
+ lastCreateTime: string;
+ createTime: string;
+ creator: string;
+ createInterval: number;
+ maxGroupsPerDay: number;
+ timeRange: { start: string; end: string };
+ groupSize: { min: number; max: number };
+ targetTags: string[];
+ groupNameTemplate: string;
+ groupDescription: string;
+}
+
+const mockTasks: GroupTask[] = [
+ {
+ id: "1",
+ name: "VIP客户建群",
+ deviceCount: 2,
+ targetFriends: 156,
+ createdGroups: 12,
+ lastCreateTime: "2025-02-06 13:12:35",
+ createTime: "2024-11-20 19:04:14",
+ creator: "admin",
+ status: "running",
+ createInterval: 300,
+ maxGroupsPerDay: 20,
+ timeRange: { start: "09:00", end: "21:00" },
+ groupSize: { min: 20, max: 50 },
+ targetTags: ["VIP客户", "高价值"],
+ groupNameTemplate: "VIP客户交流群{序号}",
+ groupDescription: "VIP客户专属交流群,提供优质服务",
+ },
+ {
+ id: "2",
+ name: "产品推广建群",
+ deviceCount: 1,
+ targetFriends: 89,
+ createdGroups: 8,
+ lastCreateTime: "2024-03-04 14:09:35",
+ createTime: "2024-03-04 14:29:04",
+ creator: "manager",
+ status: "paused",
+ createInterval: 600,
+ maxGroupsPerDay: 10,
+ timeRange: { start: "10:00", end: "20:00" },
+ groupSize: { min: 15, max: 30 },
+ targetTags: ["潜在客户", "中意向"],
+ groupNameTemplate: "产品推广群{序号}",
+ groupDescription: "产品推广交流群,了解最新产品信息",
+ },
+];
+
+const getStatusColor = (status: string) => {
+ switch (status) {
+ case "running":
+ return style.statusRunning;
+ case "paused":
+ return style.statusPaused;
+ case "completed":
+ return style.statusCompleted;
+ default:
+ return style.statusPaused;
+ }
+};
+
+const getStatusText = (status: string) => {
+ switch (status) {
+ case "running":
+ return "进行中";
+ case "paused":
+ return "已暂停";
+ case "completed":
+ return "已完成";
+ default:
+ return "未知";
+ }
+};
+
+const AutoGroupList: React.FC = () => {
+ const navigate = useNavigate();
+ const [expandedTaskId, setExpandedTaskId] = useState(null);
+ const [searchTerm, setSearchTerm] = useState("");
+ const [tasks, setTasks] = useState(mockTasks);
+
+ const toggleExpand = (taskId: string) => {
+ setExpandedTaskId(expandedTaskId === taskId ? null : taskId);
+ };
+
+ const handleDelete = (taskId: string) => {
+ const taskToDelete = tasks.find((task) => task.id === taskId);
+ if (!taskToDelete) return;
+ window.confirm(`确定要删除"${taskToDelete.name}"吗?`) &&
+ setTasks(tasks.filter((task) => task.id !== taskId));
+ Toast.show({ content: "删除成功" });
+ };
+
+ const handleEdit = (taskId: string) => {
+ navigate(`/workspace/auto-group/${taskId}/edit`);
+ };
+
+ const handleView = (taskId: string) => {
+ navigate(`/workspace/auto-group/${taskId}`);
+ };
+
+ const handleCopy = (taskId: string) => {
+ const taskToCopy = tasks.find((task) => task.id === taskId);
+ if (taskToCopy) {
+ const newTask = {
+ ...taskToCopy,
+ id: `${Date.now()}`,
+ name: `${taskToCopy.name} (复制)`,
+ createTime: new Date().toISOString().replace("T", " ").substring(0, 19),
+ };
+ setTasks([...tasks, newTask]);
+ Toast.show({ content: "复制成功" });
+ }
+ };
+
+ const toggleTaskStatus = (taskId: string) => {
+ setTasks((prev) =>
+ prev.map((task) =>
+ task.id === taskId
+ ? {
+ ...task,
+ status: task.status === "running" ? "paused" : "running",
+ }
+ : task
+ )
+ );
+ Toast.show({ content: "状态已切换" });
+ };
+
+ const handleCreateNew = () => {
+ navigate("/workspace/auto-group/new");
+ };
+
+ const filteredTasks = tasks.filter((task) =>
+ task.name.toLowerCase().includes(searchTerm.toLowerCase())
+ );
+
+ return (
+
+ 自动建群
+
+
+ }
+ footer={}
+ >
+
+
+ setSearchTerm(val)}
+ prefix={}
+ clearable
+ />
+
+
+
+
+ {filteredTasks.length === 0 ? (
+
+
+ 暂无建群任务
+ 创建您的第一个自动建群任务
+
+
+ ) : (
+ filteredTasks.map((task) => (
+
+
+
{task.name}
+
+ {getStatusText(task.status)}
+
+
toggleTaskStatus(task.id)}
+ disabled={task.status === "completed"}
+ style={{ marginLeft: 8 }}
+ />
+
+ handleView(task.id)}
+ >
+ 查看
+
+ handleEdit(task.id)}
+ >
+ 编辑
+
+ handleCopy(task.id)}
+ >
+ 复制
+
+ handleDelete(task.id)}
+ >
+ 删除
+
+
+ }
+ trigger="click"
+ >
+
+
+
+
+
+
执行设备
+
{task.deviceCount} 个
+
+
+
目标好友
+
+ {task.targetFriends} 个
+
+
+
+
已建群
+
+ {task.createdGroups} 个
+
+
+
+
+
+
+
+ 上次建群:{task.lastCreateTime}
+
+
+ 创建时间:{task.createTime}
+
+
+
+ {expandedTaskId === task.id && (
+
+
+
+
+ {" "}
+ 基本设置
+
+
+ 建群间隔:{task.createInterval} 秒
+
+
+ 每日最大建群数:{task.maxGroupsPerDay} 个
+
+
+ 执行时间段:{task.timeRange.start} -{" "}
+ {task.timeRange.end}
+
+
+ 群组规模:{task.groupSize.min}-{task.groupSize.max} 人
+
+
+
+
+ 目标人群
+
+
+ {task.targetTags.map((tag) => (
+
+ {tag}
+
+ ))}
+
+
+
+
+ 群组设置
+
+
+ 群名称模板:{task.groupNameTemplate}
+
+
+ 群描述:{task.groupDescription}
+
+
+
+
+ {" "}
+ 执行进度
+
+
+ 今日已建群:{task.createdGroups} /{" "}
+ {task.maxGroupsPerDay}
+
+
+
+
+
+ )}
+
+ ))
+ )}
+
+
+
+ );
+};
+
+export default AutoGroupList;
diff --git a/nkebao/src/router/module/workspace.tsx b/nkebao/src/router/module/workspace.tsx
index b7ccc7c2..f1230d2e 100644
--- a/nkebao/src/router/module/workspace.tsx
+++ b/nkebao/src/router/module/workspace.tsx
@@ -2,8 +2,9 @@ import Workspace from "@/pages/workspace/main";
import AutoLike from "@/pages/workspace/auto-like/AutoLike";
import NewAutoLike from "@/pages/workspace/auto-like/NewAutoLike";
import AutoLikeDetail from "@/pages/workspace/auto-like/AutoLikeDetail";
-import AutoGroup from "@/pages/workspace/auto-group/AutoGroup";
-import AutoGroupDetail from "@/pages/workspace/auto-group/Detail";
+import AutoGroupList from "@/pages/workspace/auto-group/list";
+import AutoGroupDetail from "@/pages/workspace/auto-group/detail";
+import AutoGroupForm from "@/pages/workspace/auto-group/form";
import GroupPush from "@/pages/workspace/group-push/GroupPush";
import NewGroupPush from "@/pages/workspace/group-push/new";
import MomentsSync from "@/pages/workspace/moments-sync/MomentsSync";
@@ -42,10 +43,15 @@ const workspaceRoutes = [
element: ,
auth: true,
},
- // 自动分组
+ // 自动建群
{
path: "/workspace/auto-group",
- element: ,
+ element: ,
+ auth: true,
+ },
+ {
+ path: "/workspace/auto-group/new",
+ element: ,
auth: true,
},
{
@@ -53,6 +59,11 @@ const workspaceRoutes = [
element: ,
auth: true,
},
+ {
+ path: "/workspace/auto-group/:id/edit",
+ element: ,
+ auth: true,
+ },
// 群发推送
{
path: "/workspace/group-push",