fix: 修复设备ID类型错误并优化选项处理

- 将设备ID从string类型改为number类型以匹配后端接口
- 为packageOptions添加默认空数组防止undefined错误
- 优化选项获取逻辑,正确处理API返回的数据结构
- 修复自动点赞任务创建时的friendsGroups校验条件
This commit is contained in:
超级老白兔
2025-08-22 14:47:39 +08:00
parent b3cf0243dd
commit 0b1872cc02
10 changed files with 42 additions and 31 deletions

View File

@@ -1,18 +1,14 @@
{
"_charts-DRkEUjsu.js": {
"file": "assets/charts-DRkEUjsu.js",
"_charts-BKZw5YGd.js": {
"file": "assets/charts-BKZw5YGd.js",
"name": "charts",
"imports": [
"_ui-ltFujOOi.js",
"_ui-CQE-Ac3N.js",
"_vendor-2vc8h_ct.js"
]
},
"_ui-D0C0OGrH.css": {
"file": "assets/ui-D0C0OGrH.css",
"src": "_ui-D0C0OGrH.css"
},
"_ui-ltFujOOi.js": {
"file": "assets/ui-ltFujOOi.js",
"_ui-CQE-Ac3N.js": {
"file": "assets/ui-CQE-Ac3N.js",
"name": "ui",
"imports": [
"_vendor-2vc8h_ct.js"
@@ -21,6 +17,10 @@
"assets/ui-D0C0OGrH.css"
]
},
"_ui-D0C0OGrH.css": {
"file": "assets/ui-D0C0OGrH.css",
"src": "_ui-D0C0OGrH.css"
},
"_utils-6WF66_dS.js": {
"file": "assets/utils-6WF66_dS.js",
"name": "utils",
@@ -33,18 +33,18 @@
"name": "vendor"
},
"index.html": {
"file": "assets/index-C1eWqLbB.js",
"file": "assets/index-Do1bKVHK.js",
"name": "index",
"src": "index.html",
"isEntry": true,
"imports": [
"_vendor-2vc8h_ct.js",
"_ui-ltFujOOi.js",
"_ui-CQE-Ac3N.js",
"_utils-6WF66_dS.js",
"_charts-DRkEUjsu.js"
"_charts-BKZw5YGd.js"
],
"css": [
"assets/index-DqyE1UEk.css"
"assets/index-ZCB0Bf2x.css"
]
}
}

View File

@@ -11,13 +11,13 @@
</style>
<!-- 引入 uni-app web-view SDK必须 -->
<script type="text/javascript" src="/websdk.js"></script>
<script type="module" crossorigin src="/assets/index-C1eWqLbB.js"></script>
<script type="module" crossorigin src="/assets/index-Do1bKVHK.js"></script>
<link rel="modulepreload" crossorigin href="/assets/vendor-2vc8h_ct.js">
<link rel="modulepreload" crossorigin href="/assets/ui-ltFujOOi.js">
<link rel="modulepreload" crossorigin href="/assets/ui-CQE-Ac3N.js">
<link rel="modulepreload" crossorigin href="/assets/utils-6WF66_dS.js">
<link rel="modulepreload" crossorigin href="/assets/charts-DRkEUjsu.js">
<link rel="modulepreload" crossorigin href="/assets/charts-BKZw5YGd.js">
<link rel="stylesheet" crossorigin href="/assets/ui-D0C0OGrH.css">
<link rel="stylesheet" crossorigin href="/assets/index-DqyE1UEk.css">
<link rel="stylesheet" crossorigin href="/assets/index-ZCB0Bf2x.css">
</head>
<body>
<div id="root"></div>

View File

@@ -10,7 +10,7 @@ export interface FriendSelectionItem {
export interface FriendSelectionProps {
selectedOptions?: FriendSelectionItem[];
onSelect: (friends: FriendSelectionItem[]) => void;
deviceIds?: string[];
deviceIds?: number[];
enableDeviceFilter?: boolean;
placeholder?: string;
className?: string;

View File

@@ -12,7 +12,7 @@ interface SelectionPopupProps {
onVisibleChange: (visible: boolean) => void;
selectedOptions: FriendSelectionItem[];
onSelect: (friends: FriendSelectionItem[]) => void;
deviceIds?: string[];
deviceIds?: number[];
enableDeviceFilter?: boolean;
readonly?: boolean;
onConfirm?: (

View File

@@ -15,7 +15,7 @@ interface BatchAddModalProps {
const BatchAddModal: React.FC<BatchAddModalProps> = ({
visible,
onClose,
packageOptions,
packageOptions = [],
batchTarget,
setBatchTarget,
selectedCount,

View File

@@ -9,10 +9,10 @@ export function fetchTrafficPoolList(params: {
return request("/v1/traffic/pool", params, "GET");
}
export async function fetchScenarioOptions(): Promise<any[]> {
export async function fetchScenarioOptions() {
return request("/v1/plan/scenes", {}, "GET");
}
export async function fetchPackageOptions(): Promise<any[]> {
export async function fetchPackageOptions() {
return request("/v1/traffic/pool/getPackage", {}, "GET");
}

View File

@@ -78,8 +78,14 @@ export function useTrafficPoolListLogic() {
// 获取筛选项
useEffect(() => {
fetchPackageOptions().then(setPackageOptions);
fetchScenarioOptions().then(setScenarioOptions);
fetchPackageOptions().then(res => {
console.log("packageOptions", res);
setPackageOptions(res.list || []);
});
fetchScenarioOptions().then(res => {
setScenarioOptions(res.list || []);
});
}, []);
// 筛选条件变化时刷新列表

View File

@@ -173,8 +173,8 @@ const TrafficPoolList: React.FC = () => {
status: "offline" as const,
})),
);
setPackageId(filters.packageId);
setScenarioId(filters.scenarioId);
setPackageId(filters.packageId ? parseInt(filters.packageId) : 0);
setScenarioId(filters.scenarioId ? parseInt(filters.scenarioId) : 0);
setUserValue(filters.userValue);
setUserStatus(filters.userStatus);
// 重新获取列表

View File

@@ -79,9 +79,9 @@ export interface CreateLikeTaskData {
startTime: string;
endTime: string;
contentTypes: ContentType[];
deveiceGroups: string[];
deveiceGroups: number[];
deveiceGroupsOptions: DeviceSelectionItem[];
friendsGroups: string[];
friendsGroups: number[];
friendsGroupsOptions: FriendSelectionItem[];
friendMaxLikes: number;
friendTags?: string;

View File

@@ -330,7 +330,12 @@ const NewAutoLike: React.FC = () => {
<div className={style.formItem}>
<DeviceSelection
selectedOptions={formData.deveiceGroupsOptions}
onSelect={devices => handleUpdateFormData({ devices })}
onSelect={devices =>
handleUpdateFormData({
deveiceGroups: devices.map(v => v.id),
deveiceGroupsOptions: devices,
})
}
showInput={true}
showSelectedList={true}
/>
@@ -363,7 +368,7 @@ const NewAutoLike: React.FC = () => {
selectedOptions={formData.friendsGroupsOptions || []}
onSelect={friends =>
handleUpdateFormData({
friendsGroups: friends.map(f => String(f.id)),
friendsGroups: friends.map(f => f.id),
friendsGroupsOptions: friends,
})
}
@@ -385,7 +390,7 @@ const NewAutoLike: React.FC = () => {
size="large"
loading={isSubmitting}
disabled={
!formData.friendsgroups || formData.friendsgroups.length === 0
!formData.friendsGroups || formData.friendsGroups.length === 0
}
>
{isEditMode ? "更新任务" : "创建任务"}