FEAT => 本次更新项目为:

This commit is contained in:
超级老白兔
2025-09-22 14:15:23 +08:00
parent deb0eb85b5
commit a9b769e510
5 changed files with 74 additions and 21 deletions

View File

@@ -33,7 +33,7 @@
"name": "vendor"
},
"index.html": {
"file": "assets/index-Czxez1-3.js",
"file": "assets/index-DSkLRL1o.js",
"name": "index",
"src": "index.html",
"isEntry": true,

View File

@@ -11,7 +11,7 @@
</style>
<!-- 引入 uni-app web-view SDK必须 -->
<script type="text/javascript" src="/websdk.js"></script>
<script type="module" crossorigin src="/assets/index-Czxez1-3.js"></script>
<script type="module" crossorigin src="/assets/index-DSkLRL1o.js"></script>
<link rel="modulepreload" crossorigin href="/assets/vendor-0WYR1k4q.js">
<link rel="modulepreload" crossorigin href="/assets/ui-DDu9FCjt.js">
<link rel="modulepreload" crossorigin href="/assets/utils-DC06x9DY.js">

View File

@@ -112,8 +112,8 @@ const FilterModal: React.FC<FilterModalProps> = ({
const handleReset = () => {
setSelectedDevices([]);
setPackageId("");
setScenarioId("");
setPackageId(0);
setScenarioId(0);
setUserValue(0);
setUserStatus(0);
};

View File

@@ -19,17 +19,16 @@ export async function fetchPackageOptions() {
export async function addPackage(params: {
type: string; // 类型 1搜索 2选择用户 3文件上传
addPackageId?: string;
addStatus?: string;
addPackageId?: number;
addStatus?: number;
deviceId?: string;
keyword?: string;
packageId?: string;
packageName?: string; // 添加的流量池名称
tableFile?: string;
taskId?: string; // 任务id j及场景获客id
"userIds[]"?: string[];
userValue?: string;
[property: string]: any;
packageId?: number;
packageName?: number; // 添加的流量池名称
tableFile?: number;
taskId?: number; // 任务id j及场景获客id
userIds?: number[];
userValue?: number;
}) {
return request("/v1/traffic/pool/addPackage", params, "POST");
}

View File

@@ -5,18 +5,18 @@ import {
ReloadOutlined,
BarChartOutlined,
} from "@ant-design/icons";
import { Toast } from "antd-mobile";
import { Input, Button, Checkbox, Pagination } from "antd";
import styles from "./index.module.scss";
import { Empty, Avatar } from "antd-mobile";
import { useNavigate } from "react-router-dom";
import NavCommon from "@/components/NavCommon";
import { fetchTrafficPoolList, fetchScenarioOptions } from "./api";
import { fetchTrafficPoolList, fetchScenarioOptions, addPackage } from "./api";
import type { TrafficPoolUser, ScenarioOption } from "./data";
import DataAnalysisPanel from "./DataAnalysisPanel";
import FilterModal from "./FilterModal";
import BatchAddModal from "./BatchAddModal";
import { DeviceSelectionItem } from "@/components/DeviceSelection/data";
import { join } from "path";
const defaultAvatar =
"https://cdn.jsdelivr.net/gh/maokaka/static/avatar-default.png";
@@ -66,7 +66,6 @@ const TrafficPoolList: React.FC = () => {
deviceld: filterParams.selectedDevices.map(d => d.id).join(),
...customParams, // 允许传入自定义参数覆盖
};
console.log("搜索条件:", params);
const res = await fetchTrafficPoolList(params);
setList(res.list || []);
@@ -105,12 +104,55 @@ const TrafficPoolList: React.FC = () => {
};
// 批量加入分组/流量池
const handleBatchAdd = options => {
console.log("批量加入分组", options);
const handleBatchAdd = async options => {
try {
// 构建请求参数
const params = {
type: "2", // 2选择用户
addPackageId: options.selectedPackageId, // 目标分组ID
userIds: selectedIds.map(id => id), // 选中的用户ID数组
// 如果有当前筛选条件,也可以传递
...(filterParams.packageId && {
packageId: filterParams.packageId,
}),
...(filterParams.scenarioId && {
taskId: filterParams.scenarioId,
}),
...(filterParams.userValue && {
userValue: filterParams.userValue,
}),
...(filterParams.userStatus && {
addStatus: filterParams.userStatus,
}),
...(filterParams.selectedDevices.length > 0 && {
deviceId: filterParams.selectedDevices.map(d => d.id).join(","),
}),
...(search && { keyword: search }),
};
// TODO: 实现批量加入逻辑
setBatchModal(false);
setSelectedIds([]);
console.log("批量加入请求参数:", params);
// 调用接口
const result = await addPackage(params);
console.log("批量加入结果:", result);
// 成功后刷新列表
getList();
// 关闭弹窗并清空选择
setBatchModal(false);
setSelectedIds([]);
// 可以添加成功提示
Toast.show({
content: `成功将${selectedIds.length}个用户加入分组`,
position: "top",
});
} catch (error) {
console.error("批量加入失败:", error);
// 可以添加错误提示
Toast.show({ content: "批量加入失败,请重试", position: "top" });
}
};
// 搜索防抖处理
@@ -208,6 +250,18 @@ const TrafficPoolList: React.FC = () => {
</Button>
</>
)}
{searchInput.length > 0 && (
<>
<Button
size="small"
type="primary"
style={{ marginLeft: 16 }}
onClick={() => setBatchModal(true)}
>
</Button>
</>
)}
<div style={{ flex: 1 }} />
<Button
size="small"