diff --git a/frontend/src/pages/access/users/index.tsx b/frontend/src/pages/access/users/index.tsx index c929bef..887504f 100644 --- a/frontend/src/pages/access/users/index.tsx +++ b/frontend/src/pages/access/users/index.tsx @@ -138,6 +138,7 @@ export default function Users() { const [filterTenantId, setFilterTenantId] = useState(undefined); const [drawerOpen, setDrawerOpen] = useState(false); const [editing, setEditing] = useState(null); + const [roleSelectOpen, setRoleSelectOpen] = useState(false); const [form] = Form.useForm(); const [resetPasswordOpen, setResetPasswordOpen] = useState(false); const [resetPasswordLoading, setResetPasswordLoading] = useState(false); @@ -264,6 +265,7 @@ export default function Users() { const openCreate = () => { setEditing(null); + setRoleSelectOpen(false); form.resetFields(); form.setFieldsValue({ status: 1, @@ -277,6 +279,7 @@ export default function Users() { const openEdit = async (record: SysUser) => { setEditing(record); + setRoleSelectOpen(false); try { const detail = await getUserDetail(record.userId); const roleIds = await listUserRoles(record.userId); @@ -594,10 +597,13 @@ export default function Users() { ) : null} setRoleSelectOpen(false)} + optionFilterProp={isPlatformMode ? "searchText" : "label"}/> {!isPlatformMode && } diff --git a/frontend/src/pages/business/Meetings.tsx b/frontend/src/pages/business/Meetings.tsx index 2e4ad4e..4b0e3d8 100644 --- a/frontend/src/pages/business/Meetings.tsx +++ b/frontend/src/pages/business/Meetings.tsx @@ -10,7 +10,6 @@ InfoCircleOutlined, PauseCircleOutlined, PlusOutlined, - RightOutlined, SearchOutlined, SettingOutlined, SyncOutlined, @@ -136,6 +135,9 @@ const shouldPollMeetingCard = (item: MeetingVO) => const getUnifiedStatusCode = (progress: MeetingProgress | null | undefined) => progress?.unifiedStatus?.statusCode; +const isWaitingUploadProgress = (progress: MeetingProgress | null | undefined) => + getUnifiedStatusCode(progress) === "WAITING_UPLOAD"; + const getEffectiveStatus = (item: MeetingVO, progress: MeetingProgress | null) => { const unifiedStatusCode = getUnifiedStatusCode(progress); if (unifiedStatusCode === "WAITING_UPLOAD") { @@ -285,12 +287,17 @@ const MeetingCardItem: React.FC<{ }> = ({ item, config, progress, onOpenMeeting, onRetrySchedule, onDelete, retrying }) => { const effectiveStatus = getEffectiveStatus(item, progress); const isProcessing = shouldTrackGenerationProgress(item); + const isWaitingUpload = isWaitingUploadProgress(progress) || effectiveStatus === 8; const isPaused = effectiveStatus === PAUSED_DISPLAY_STATUS; const isRealtimeActive = effectiveStatus === REALTIME_ACTIVE_DISPLAY_STATUS; const isRealtimeIdle = effectiveStatus === REALTIME_IDLE_DISPLAY_STATUS; const isCrossPlatformRealtime = (isPaused || isRealtimeActive || isRealtimeIdle) && !canControlRealtimeFromCurrentPlatform(item); const crossPlatformHint = `在 ${getRealtimeSourceLabel(item)} 继续`; const canRetry = canRetryQueuedMeeting(item, progress); + const ownerName = item.creatorName || "未知"; + const processingMessage = isWaitingUpload + ? (progress?.message || progress?.unifiedStatus?.message || config.text) + : (progress?.unifiedStatus?.message || progress?.message || "深度分析中..."); const sourceColor = item.meetingSource === "ANDROID" ? "#10b981" : "#3b82f6"; @@ -375,26 +382,28 @@ const MeetingCardItem: React.FC<{ fontSize: "12px" }} > -
- {isProcessing ? : } - - {isProcessing ? (progress?.message || "深度分析中...") : (isCrossPlatformRealtime ? crossPlatformHint : config.text)} - +
+
+ {isProcessing ? : } + + {isProcessing ? processingMessage : (isCrossPlatformRealtime ? crossPlatformHint : config.text)} + +
+ {canRetry && ( + + )}
- {canRetry && ( - - )}
) : (
@@ -402,10 +411,6 @@ const MeetingCardItem: React.FC<{ {dayjs(item.meetingTime).format("MM-DD HH:mm")}
-
- - {item.creatorName || "未知"} -
)} @@ -433,34 +438,30 @@ const MeetingCardItem: React.FC<{ )) || 无标签} -
- - 查看详情 + + + {ownerName} +
@@ -1001,8 +1002,6 @@ const Meetings: React.FC = () => {