diff --git a/frontend/src/views/Settings.vue b/frontend/src/views/Settings.vue index 6919ccf..b9f7782 100644 --- a/frontend/src/views/Settings.vue +++ b/frontend/src/views/Settings.vue @@ -3383,17 +3383,19 @@ const loadDepartments = async () => { // 同步钉钉组织架构 const handleSyncOrganization = async () => { syncingOrganization.value = true + message.loading({ content: '正在同步钉钉组织架构,请稍候...', key: 'sync', duration: 0 }) try { - const response = await request.post('/dingtalk/sync-organization') + // 同步操作需要较长时间,设置120秒超时 + const response = await request.post('/dingtalk/sync-organization', {}, { timeout: 120000 }) if (response.code === 200) { const result = response.data as any - message.success(`同步完成!更新${result.updatedUsers}人,跳过${result.skippedUsers}人,失败${result.errorUsers}人`) + message.success({ content: `同步完成!更新${result.updatedUsers}人,跳过${result.skippedUsers}人,失败${result.errorUsers}人`, key: 'sync' }) // 如果有错误信息,显示详情 if (result.errors && result.errors.length > 0) { Modal.warning({ title: '部分用户同步失败', - content: result.errors.join('\n'), + content: result.errors.slice(0, 10).join('\n') + (result.errors.length > 10 ? `\n...等${result.errors.length}条` : ''), width: 500 }) } @@ -3401,11 +3403,11 @@ const handleSyncOrganization = async () => { // 刷新部门和用户数据 await Promise.all([loadDepartments(), loadDepartmentUsers()]) } else { - message.error(response.message || '同步失败') + message.error({ content: response.message || '同步失败', key: 'sync' }) } } catch (error: any) { console.error('同步钉钉组织架构失败:', error) - message.error(error?.response?.data?.message || error?.message || '同步失败') + message.error({ content: error?.response?.data?.message || error?.message || '同步失败,请重试', key: 'sync' }) } finally { syncingOrganization.value = false }