fix(douyu): 账号标签列表按用户可见范围过滤 & 导入弹窗切换筛选时清空已选
This commit is contained in:
@@ -377,8 +377,14 @@ def list_tags(
|
|||||||
db: Session = Depends(get_db),
|
db: Session = Depends(get_db),
|
||||||
current: User = Depends(get_current_user),
|
current: User = Depends(get_current_user),
|
||||||
):
|
):
|
||||||
"""获取所有标签列表。"""
|
"""获取当前用户可见账号的标签列表。"""
|
||||||
tags = db.query(Account.tag).filter(Account.tag != "", Account.tag.isnot(None)).distinct().all()
|
query = _visible_accounts_query(db, current)
|
||||||
|
tags = (
|
||||||
|
query.filter(Account.tag != "", Account.tag.isnot(None))
|
||||||
|
.with_entities(Account.tag)
|
||||||
|
.distinct()
|
||||||
|
.all()
|
||||||
|
)
|
||||||
return [t[0] for t in tags if t[0]]
|
return [t[0] for t in tags if t[0]]
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ export const douyuApi = {
|
|||||||
taskTypes: () => api.get<Record<string, string>, Record<string, string>>('/douyu/task-types'),
|
taskTypes: () => api.get<Record<string, string>, Record<string, string>>('/douyu/task-types'),
|
||||||
listAccounts: (params?: { search?: string; tag?: string; ids?: string }) =>
|
listAccounts: (params?: { search?: string; tag?: string; ids?: string }) =>
|
||||||
api.get<DouyuTaskAccountItem[], DouyuTaskAccountItem[]>('/douyu/accounts', { params }),
|
api.get<DouyuTaskAccountItem[], DouyuTaskAccountItem[]>('/douyu/accounts', { params }),
|
||||||
listAccountsPaged: (params: PageParams & { tag?: string; ids?: string }) =>
|
listAccountsPaged: (params: PageParams & { ids?: string }) =>
|
||||||
api.get<PaginatedResponse<DouyuTaskAccountItem>, PaginatedResponse<DouyuTaskAccountItem>>('/douyu/accounts', { params }),
|
api.get<PaginatedResponse<DouyuTaskAccountItem>, PaginatedResponse<DouyuTaskAccountItem>>('/douyu/accounts', { params }),
|
||||||
getConfig: () => api.get<DouyuConfig, DouyuConfig>('/douyu/config'),
|
getConfig: () => api.get<DouyuConfig, DouyuConfig>('/douyu/config'),
|
||||||
updateConfig: (data: Partial<DouyuConfig>) => api.put<DouyuConfig, DouyuConfig>('/douyu/config', data),
|
updateConfig: (data: Partial<DouyuConfig>) => api.put<DouyuConfig, DouyuConfig>('/douyu/config', data),
|
||||||
|
|||||||
@@ -853,6 +853,8 @@ export default function DouyuTasksPage({ handbook }: { handbook: HandbookKind })
|
|||||||
if (!importOpen) return;
|
if (!importOpen) return;
|
||||||
accountApi.listTags().then(setImportTags).catch(() => {});
|
accountApi.listTags().then(setImportTags).catch(() => {});
|
||||||
}, [importOpen]);
|
}, [importOpen]);
|
||||||
|
// 切换搜索/标签时清空已选,避免计数与可见行不一致
|
||||||
|
useEffect(() => { setImportSelectedIds([]); }, [importSearch, importTag]);
|
||||||
|
|
||||||
const importAccounts = (ids: number[]) => {
|
const importAccounts = (ids: number[]) => {
|
||||||
const toImport = importPool.filter((a) => ids.includes(a.id));
|
const toImport = importPool.filter((a) => ids.includes(a.id));
|
||||||
|
|||||||
Reference in New Issue
Block a user