feat: 本次提交更新内容如下

-流量分发新建\编辑✔
-内容库新建\编辑✔
-隐藏Ai策略优化✔
-隐藏Ai销售预测✔
This commit is contained in:
笔记本里的永平
2025-07-28 11:42:54 +08:00
parent cbc8c4a501
commit c8742de888
7 changed files with 6701 additions and 26 deletions

View File

@@ -123,22 +123,25 @@ export default function AccountSelection({
// 处理账号选择
const handleAccountToggle = (accountId: number) => {
if (readonly) return;
const newSelected = value.includes(accountId)
? value.filter((id) => id !== accountId)
: [...value, accountId];
const uniqueValue = [...new Set(value)];
const newSelected = uniqueValue.includes(accountId)
? uniqueValue.filter((id) => id !== accountId)
: [...uniqueValue, accountId];
onChange(newSelected);
};
// 获取显示文本
const getDisplayText = () => {
if (value.length === 0) return "";
return `已选择 ${value.length} 个账号`;
const uniqueValue = [...new Set(value)];
if (uniqueValue.length === 0) return "";
return `已选择 ${uniqueValue.length} 个账号`;
};
// 获取已选账号详细信息
// 获取已选账号详细信息 - 去重处理
const uniqueValue = [...new Set(value)];
const selectedAccountObjs = [
...accountsList.filter((acc) => value.includes(acc.id)),
...value
...accountsList.filter((acc) => uniqueValue.includes(acc.id)),
...uniqueValue
.filter((id) => !accountsList.some((acc) => acc.id === id))
.map((id) => ({
id,
@@ -151,13 +154,15 @@ export default function AccountSelection({
// 删除已选账号
const handleRemoveAccount = (id: number) => {
if (readonly) return;
onChange(value.filter((d) => d !== id));
const uniqueValue = [...new Set(value)];
onChange(uniqueValue.filter((d) => d !== id));
};
// 确认选择
const handleConfirm = () => {
if (onConfirm) {
onConfirm(value, selectedAccountObjs);
const uniqueValue = [...new Set(value)];
onConfirm(uniqueValue, selectedAccountObjs);
}
setRealVisible(false);
};
@@ -265,7 +270,7 @@ export default function AccountSelection({
currentPage={currentPage}
totalPages={1}
loading={loading}
selectedCount={value.length}
selectedCount={uniqueValue.length}
onPageChange={setCurrentPage}
onCancel={() => setRealVisible(false)}
onConfirm={handleConfirm}
@@ -288,12 +293,12 @@ export default function AccountSelection({
<div className={style.radioWrapper}>
<div
className={
value.includes(acc.id)
uniqueValue.includes(acc.id)
? style.radioSelected
: style.radioUnselected
}
>
{value.includes(acc.id) && (
{uniqueValue.includes(acc.id) && (
<div className={style.radioDot}></div>
)}
</div>