feat(mindspace): add per-user OA cloud drive with fds-style file manager

Expose authenticated /api/mindspace/v1/oa/drive APIs over each user's oa/ workspace and wire a MindSpace entry at /space/oa/drive.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
john
2026-09-10 18:55:46 +08:00
parent d07815d317
commit 6d5eb15b1b
22 changed files with 3833 additions and 9 deletions
+21 -9
View File
@@ -512,6 +512,7 @@ type MindSpaceRouteSync = {
pushWechatConfig: () => void;
pushCategory: (code: MindSpaceSaveCategory | MindSpaceCategory['code']) => void;
pushPage: (pageId: string) => void;
pushOaDrive?: () => void;
};
function MindSpaceBalanceRing() {
@@ -2862,15 +2863,26 @@ export function MindSpaceView({
</p>
<h2>{selectedCategory.name}</h2>
</div>
{['oa', 'public', 'health'].includes(selectedCategory.code) && (
<button
type="button"
className="mindspace-primary"
onClick={() => openUpload(selectedCategory)}
>
{selectedCategory.code === 'health' ? '上传报告' : '上传资料'}
</button>
)}
<div className="mindspace-category-actions">
{selectedCategory.code === 'oa' && routeSync?.pushOaDrive && (
<button
type="button"
className="mindspace-secondary"
onClick={() => routeSync.pushOaDrive?.()}
>
文件管理
</button>
)}
{['oa', 'public', 'health'].includes(selectedCategory.code) && (
<button
type="button"
className="mindspace-primary"
onClick={() => openUpload(selectedCategory)}
>
{selectedCategory.code === 'health' ? '上传报告' : '上传资料'}
</button>
)}
</div>
</div>
{selectedCategory.code === 'health' ? (