From 34ac066f36d7171484e3209e2219df4bb2bea3d0 Mon Sep 17 00:00:00 2001 From: feitianbubu Date: Sat, 10 Jan 2026 23:21:12 +0800 Subject: [PATCH] feat: task log show username --- model/task.go | 7 ++++ .../table/task-logs/TaskLogsColumnDefs.jsx | 35 +++++++++++++++++++ web/src/hooks/task-logs/useTaskLogsData.js | 8 ++++- 3 files changed, 49 insertions(+), 1 deletion(-) diff --git a/model/task.go b/model/task.go index c76d26edf..b37dd3e6a 100644 --- a/model/task.go +++ b/model/task.go @@ -57,6 +57,7 @@ type Task struct { FinishTime int64 `json:"finish_time" gorm:"index"` Progress string `json:"progress" gorm:"type:varchar(20);index"` Properties Properties `json:"properties" gorm:"type:json"` + Username string `json:"username,omitempty" gorm:"-"` // 禁止返回给用户,内部可能包含key等隐私信息 PrivateData TaskPrivateData `json:"-" gorm:"column:private_data;type:json"` Data json.RawMessage `json:"data" gorm:"type:json"` @@ -233,6 +234,12 @@ func TaskGetAllTasks(startIdx int, num int, queryParams SyncTaskQueryParams) []* return nil } + for _, task := range tasks { + if cache, err := GetUserCache(task.UserId); err == nil { + task.Username = cache.Username + } + } + return tasks } diff --git a/web/src/components/table/task-logs/TaskLogsColumnDefs.jsx b/web/src/components/table/task-logs/TaskLogsColumnDefs.jsx index db5228370..7fd930eb1 100644 --- a/web/src/components/table/task-logs/TaskLogsColumnDefs.jsx +++ b/web/src/components/table/task-logs/TaskLogsColumnDefs.jsx @@ -42,6 +42,8 @@ import { TASK_ACTION_REMIX_GENERATE, } from '../../../constants/common.constant'; import { CHANNEL_OPTIONS } from '../../../constants/channel.constants'; +import { stringToColor } from '../../../helpers/render'; +import { Avatar, Space } from '@douyinfe/semi-ui'; const colors = [ 'amber', @@ -288,6 +290,39 @@ export const getTaskLogsColumns = ({ ); }, }, + { + key: COLUMN_KEYS.USERNAME, + title: t('用户'), + dataIndex: 'username', + render: (text, record, index) => { + if (!isAdminUser) { + return <>; + } + const displayName = record.display_name; + const label = displayName || text || t('未知'); + const avatarText = + typeof displayName === 'string' && displayName.length > 0 + ? displayName[0] + : typeof text === 'string' && text.length > 0 + ? text[0] + : '?'; + + return ( + + + {avatarText} + + + {label} + + + ); + }, + }, { key: COLUMN_KEYS.PLATFORM, title: t('平台'), diff --git a/web/src/hooks/task-logs/useTaskLogsData.js b/web/src/hooks/task-logs/useTaskLogsData.js index 0c942a675..24762181f 100644 --- a/web/src/hooks/task-logs/useTaskLogsData.js +++ b/web/src/hooks/task-logs/useTaskLogsData.js @@ -40,6 +40,7 @@ export const useTaskLogsData = () => { FINISH_TIME: 'finish_time', DURATION: 'duration', CHANNEL: 'channel', + USERNAME: 'username', PLATFORM: 'platform', TYPE: 'type', TASK_ID: 'task_id', @@ -104,6 +105,7 @@ export const useTaskLogsData = () => { // For non-admin users, force-hide admin-only columns (does not touch admin settings) if (!isAdminUser) { merged[COLUMN_KEYS.CHANNEL] = false; + merged[COLUMN_KEYS.USERNAME] = false; } setVisibleColumns(merged); } catch (e) { @@ -122,6 +124,7 @@ export const useTaskLogsData = () => { [COLUMN_KEYS.FINISH_TIME]: true, [COLUMN_KEYS.DURATION]: true, [COLUMN_KEYS.CHANNEL]: isAdminUser, + [COLUMN_KEYS.USERNAME]: isAdminUser, [COLUMN_KEYS.PLATFORM]: true, [COLUMN_KEYS.TYPE]: true, [COLUMN_KEYS.TASK_ID]: true, @@ -151,7 +154,10 @@ export const useTaskLogsData = () => { const updatedColumns = {}; allKeys.forEach((key) => { - if (key === COLUMN_KEYS.CHANNEL && !isAdminUser) { + if ( + (key === COLUMN_KEYS.CHANNEL || key === COLUMN_KEYS.USERNAME) && + !isAdminUser + ) { updatedColumns[key] = false; } else { updatedColumns[key] = checked;