feat(admin): Add user management and upgrade to module permission system
Features - User Management (Phase 4.1): - Database: Add user_modules table for fine-grained module permissions - Database: Add 4 user permissions (view/create/edit/delete) to role_permissions - Backend: UserService (780 lines) - CRUD with tenant isolation - Backend: UserController + UserRoutes (648 lines) - 13 API endpoints - Backend: Batch import users from Excel - Frontend: UserListPage (412 lines) - list/filter/search/pagination - Frontend: UserFormPage (341 lines) - create/edit with module config - Frontend: UserDetailPage (393 lines) - details/tenant/module management - Frontend: 3 modal components (592 lines) - import/assign/configure - API: GET/POST/PUT/DELETE /api/admin/users/* endpoints Architecture Upgrade - Module Permission System: - Backend: Add getUserModules() method in auth.service - Backend: Login API returns modules array in user object - Frontend: AuthContext adds hasModule() method - Frontend: Navigation filters modules based on user.modules - Frontend: RouteGuard checks requiredModule instead of requiredVersion - Frontend: Remove deprecated version-based permission system - UX: Only show accessible modules in navigation (clean UI) - UX: Smart redirect after login (avoid 403 for regular users) Fixes: - Fix UTF-8 encoding corruption in ~100 docs files - Fix pageSize type conversion in userService (String to Number) - Fix authUser undefined error in TopNavigation - Fix login redirect logic with role-based access check - Update Git commit guidelines v1.2 with UTF-8 safety rules Database Changes: - CREATE TABLE user_modules (user_id, tenant_id, module_code, is_enabled) - ADD UNIQUE CONSTRAINT (user_id, tenant_id, module_code) - INSERT 4 permissions + role assignments - UPDATE PUBLIC tenant with 8 module subscriptions Technical: - Backend: 5 new files (~2400 lines) - Frontend: 10 new files (~2500 lines) - Docs: 1 development record + 2 status updates + 1 guideline update - Total: ~4900 lines of code Status: User management 100% complete, module permission system operational
This commit is contained in:
@@ -1,29 +1,29 @@
|
||||
# 模块配置更新报告
|
||||
|
||||
> **鏇存柊鏃堕棿锛?* 2025-11-12
|
||||
> **鏇存柊鍐呭<EFBFBD>锛?* 鎸夌収骞冲彴鏋舵瀯鏂囨。璋冩暣妯″潡閰嶇疆
|
||||
> **鍙傝€冩枃妗o細** `docs/01-骞冲彴鍩虹<EFBFBD>灞?06-鍓嶇<E98D93>鏋舵瀯/01-鍓嶇<E98D93>鎬讳綋鏋舵瀯璁捐<E79281>.md`
|
||||
> **更新时间:** 2025-11-12
|
||||
> **更新内容:** 按照平台架构文档调整模块配置
|
||||
> **参考文档:** `docs/01-平台基础层/06-前端架构/01-前端总体架构设计.md`
|
||||
|
||||
---
|
||||
|
||||
## 鉁?鏇存柊鍐呭<E98D90>
|
||||
## ✅ 更新内容
|
||||
|
||||
### 1. 妯″潡鏁伴噺鍜岄『搴忚皟鏁?
|
||||
### 1. 模块数量和顺序调整
|
||||
|
||||
**璋冩暣鍓嶏紙5涓<EFBFBD>ā鍧楋級锛?*
|
||||
**调整前(5个模块):**
|
||||
1. AI智能文献 (asl) - `/literature`
|
||||
2. AI智能问答 (aia) - `/ai-qa`
|
||||
3. 鐭ヨ瘑搴?(pkb) - `/knowledge`
|
||||
4. 瀹$ǹ绯荤粺 (rvw) - `/review` 鉂?
|
||||
3. 知识库 (pkb) - `/knowledge`
|
||||
4. 审稿系统 (rvw) - `/review` ❌
|
||||
5. 数据清洗 (dc) - `/data-cleaning`
|
||||
|
||||
**璋冩暣鍚庯紙6涓<EFBFBD>ā鍧楋級锛?*
|
||||
1. **AI闂<EFBFBD>瓟** (ai-qa) - `/ai-qa` 鉁?
|
||||
2. **AI鏅鸿兘鏂囩尞** (literature-platform) - `/literature` 鉁?
|
||||
3. **鐭ヨ瘑搴?* (knowledge-base) - `/knowledge-base` 鉁?
|
||||
4. **鏅鸿兘鏁版嵁娓呮礂** (data-cleaning) - `/data-cleaning` 鉁?
|
||||
5. **鏅鸿兘缁熻<EFBFBD>鍒嗘瀽** (statistical-analysis) - `/intelligent-analysis` 鉁?鏂板<E98F82>
|
||||
6. **缁熻<EFBFBD>鍒嗘瀽宸ュ叿** (statistical-tools) - `/statistical-tools` 鉁?鏂板<E98F82>
|
||||
**调整后(6个模块):**
|
||||
1. **AI问答** (ai-qa) - `/ai-qa` ✅
|
||||
2. **AI智能文献** (literature-platform) - `/literature` ✅
|
||||
3. **知识库** (knowledge-base) - `/knowledge-base` ✅
|
||||
4. **智能数据清洗** (data-cleaning) - `/data-cleaning` ✅
|
||||
5. **智能统计分析** (statistical-analysis) - `/intelligent-analysis` ✨ 新增
|
||||
6. **统计分析工具** (statistical-tools) - `/statistical-tools` ✨ 新增
|
||||
|
||||
---
|
||||
|
||||
@@ -31,19 +31,19 @@
|
||||
|
||||
### 1. 模块注册中心 (moduleRegistry.ts)
|
||||
|
||||
#### 淇<EFBFBD>敼鐨勬ā鍧?
|
||||
#### 修改的模块
|
||||
|
||||
| 椤圭洰 | 淇<>敼鍓?| 淇<>敼鍚?| 璇存槑 |
|
||||
| 项目 | 修改前 | 修改后 | 说明 |
|
||||
|------|--------|--------|------|
|
||||
| **模块1** | AI智能文献(首位) | AI问答(首位) | 调整顺序 |
|
||||
| **模块ID** | `aia` | `ai-qa` | 统一命名规范 |
|
||||
| **模块ID** | `asl` | `literature-platform` | 统一命名规范 |
|
||||
| **模块ID** | `pkb` | `knowledge-base` | 统一命名规范 |
|
||||
| **璺<EFBFBD>敱璺<EFBFBD>緞** | `/knowledge` | `/knowledge-base` | 鎸夋枃妗h<EFBFBD>鑼?|
|
||||
| **路由路径** | `/knowledge` | `/knowledge-base` | 按文档规范 |
|
||||
|
||||
#### 鏂板<EFBFBD>鐨勬ā鍧?
|
||||
#### 新增的模块
|
||||
|
||||
**妯″潡5锛氭櫤鑳界粺璁″垎鏋?*
|
||||
**模块5:智能统计分析**
|
||||
```typescript
|
||||
{
|
||||
id: 'statistical-analysis',
|
||||
@@ -58,7 +58,7 @@
|
||||
}
|
||||
```
|
||||
|
||||
**妯″潡6锛氱粺璁″垎鏋愬伐鍏?*
|
||||
**模块6:统计分析工具**
|
||||
```typescript
|
||||
{
|
||||
id: 'statistical-tools',
|
||||
@@ -73,9 +73,9 @@
|
||||
}
|
||||
```
|
||||
|
||||
#### 鍒犻櫎鐨勬ā鍧?
|
||||
#### 删除的模块
|
||||
|
||||
- 鉂?**瀹$ǹ绯荤粺** (rvw) - 鏋舵瀯鏂囨。涓<EFBFBD>湭瀹氫箟姝ゆā鍧?
|
||||
- ❌ **审稿系统** (rvw) - 架构文档中未定义此模块
|
||||
|
||||
---
|
||||
|
||||
@@ -91,50 +91,50 @@ isExternal?: boolean
|
||||
|
||||
### 3. 模块目录结构
|
||||
|
||||
**鏂板<EFBFBD>鐩<EFBFBD>綍锛?*
|
||||
- 鉁?`src/modules/ssa/index.tsx` - 鏅鸿兘缁熻<EFBFBD>鍒嗘瀽妯″潡
|
||||
- 鉁?`src/modules/st/index.tsx` - 缁熻<EFBFBD>鍒嗘瀽宸ュ叿妯″潡
|
||||
**新增目录:**
|
||||
- ✅ `src/modules/ssa/index.tsx` - 智能统计分析模块
|
||||
- ✅ `src/modules/st/index.tsx` - 统计分析工具模块
|
||||
|
||||
**鍒犻櫎鐩<EFBFBD>綍锛?*
|
||||
- 鉂?`src/modules/rvw/index.tsx` - 瀹$ǹ绯荤粺妯″潡
|
||||
**删除目录:**
|
||||
- ❌ `src/modules/rvw/index.tsx` - 审稿系统模块
|
||||
|
||||
---
|
||||
|
||||
### 4. 首页 (HomePage.tsx)
|
||||
|
||||
**缁熻<EFBFBD>鏁版嵁鏇存柊锛?*
|
||||
- 涓氬姟妯″潡鏁伴噺锛? 鈫?**6**
|
||||
**统计数据更新:**
|
||||
- 业务模块数量:5 → **6**
|
||||
|
||||
**鐘舵€佹爣绛鹃€昏緫浼樺寲锛?*
|
||||
**状态标签逻辑优化:**
|
||||
```typescript
|
||||
// AI鏅鸿兘鏂囩尞锛堝紑鍙戜腑锛?
|
||||
// AI智能文献(开发中)
|
||||
{!module.placeholder && module.id === 'literature-platform' && (
|
||||
<span className="text-green-600 bg-green-50">Week 3 寮€鍙?/span>
|
||||
<span className="text-green-600 bg-green-50">Week 3 开发</span>
|
||||
)}
|
||||
|
||||
// 澶栭儴妯″潡锛圝ava鍥㈤槦锛?
|
||||
// 外部模块(Java团队)
|
||||
{module.placeholder && module.isExternal && (
|
||||
<span className="text-purple-600 bg-purple-50">外部集成</span>
|
||||
)}
|
||||
|
||||
// 其他占位模块
|
||||
{module.placeholder && !module.isExternal && (
|
||||
<span className="text-orange-500 bg-orange-50">瑙勫垝涓?/span>
|
||||
<span className="text-orange-500 bg-orange-50">规划中</span>
|
||||
)}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 馃搳 妯″潡瀵圭収琛?
|
||||
## 📊 模块对照表
|
||||
|
||||
| 搴忓彿 | 妯″潡鍚嶇О | 妯″潡ID | 璺<>敱璺<E695B1>緞 | 寮€鍙戠姸鎬?| 鏉冮檺瑕佹眰 | 鐗规畩鏍囪<E98F8D> |
|
||||
| 序号 | 模块名称 | 模块ID | 路由路径 | 开发状态 | 权限要求 | 特殊标记 |
|
||||
|------|---------|--------|---------|---------|---------|---------|
|
||||
| 1 | AI闂<EFBFBD>瓟 | `ai-qa` | `/ai-qa` | 瑙勫垝涓?| 鍩虹<E98DA9>鐗? | - |
|
||||
| 2 | AI鏅鸿兘鏂囩尞 | `literature-platform` | `/literature` | Week 3寮€鍙?| 楂樼骇鐗? | 鏀<>寔鐙<E5AF94>珛杩愯<E69DA9> |
|
||||
| 3 | 鐭ヨ瘑搴?| `knowledge-base` | `/knowledge-base` | 瑙勫垝涓?| 鍩虹<E98DA9>鐗? | - |
|
||||
| 4 | 鏅鸿兘鏁版嵁娓呮礂 | `data-cleaning` | `/data-cleaning` | 瑙勫垝涓?| 楂樼骇鐗? | - |
|
||||
| 5 | 鏅鸿兘缁熻<EFBFBD>鍒嗘瀽 | `statistical-analysis` | `/intelligent-analysis` | 澶栭儴闆嗘垚 | 鏃楄埌鐗?| Java鍥㈤槦寮€鍙?|
|
||||
| 6 | 缁熻<EFBFBD>鍒嗘瀽宸ュ叿 | `statistical-tools` | `/statistical-tools` | 澶栭儴闆嗘垚 | 鏃楄埌鐗?| Java鍥㈤槦寮€鍙?|
|
||||
| 1 | AI问答 | `ai-qa` | `/ai-qa` | 规划中 | 基础版+ | - |
|
||||
| 2 | AI智能文献 | `literature-platform` | `/literature` | Week 3开发 | 高级版+ | 支持独立运行 |
|
||||
| 3 | 知识库 | `knowledge-base` | `/knowledge-base` | 规划中 | 基础版+ | - |
|
||||
| 4 | 智能数据清洗 | `data-cleaning` | `/data-cleaning` | 规划中 | 高级版+ | - |
|
||||
| 5 | 智能统计分析 | `statistical-analysis` | `/intelligent-analysis` | 外部集成 | 旗舰版 | Java团队开发 |
|
||||
| 6 | 统计分析工具 | `statistical-tools` | `/statistical-tools` | 外部集成 | 旗舰版 | Java团队开发 |
|
||||
|
||||
---
|
||||
|
||||
@@ -143,25 +143,25 @@ isExternal?: boolean
|
||||
### 顶部导航(从左到右)
|
||||
|
||||
```
|
||||
馃彞 AI涓村簥鐮旂┒骞冲彴 馃挰AI闂<49>瓟(瑙勫垝涓? 馃搫AI鏅鸿兘鏂囩尞 馃搧鐭ヨ瘑搴?瑙勫垝涓?
|
||||
馃Ч鏅鸿兘鏁版嵁娓呮礂(瑙勫垝涓? 馃搳鏅鸿兘缁熻<E7BC81>鍒嗘瀽(瑙勫垝涓?
|
||||
馃搱缁熻<EFBFBD>鍒嗘瀽宸ュ叿(瑙勫垝涓? 馃懁鐮旂┒鍛樷柤
|
||||
🏥 AI临床研究平台 💬AI问答(规划中) 📄AI智能文献 📁知识库(规划中)
|
||||
🧹智能数据清洗(规划中) 📊智能统计分析(规划中)
|
||||
📈统计分析工具(规划中) 👤研究员▼
|
||||
```
|
||||
|
||||
### 首页模块卡片
|
||||
|
||||
```
|
||||
鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?
|
||||
鈹? 馃挰 鈹?鈹? 馃搫 鈹?鈹? 馃搧 鈹?
|
||||
鈹? AI闂<EFBFBD>瓟 鈹?鈹?AI鏅鸿兘鏂囩尞 鈹?鈹? 鐭ヨ瘑搴? 鈹?
|
||||
鈹? 瑙勫垝涓? 鈹?鈹?Week 3寮€鍙? 鈹?鈹? 瑙勫垝涓? 鈹?
|
||||
鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?
|
||||
┌────────────┐ ┌────────────┐ ┌────────────┐
|
||||
│ 💬 │ │ 📄 │ │ 📁 │
|
||||
│ AI问答 │ │ AI智能文献 │ │ 知识库 │
|
||||
│ 规划中 │ │ Week 3开发 │ │ 规划中 │
|
||||
└────────────┘ └────────────┘ └────────────┘
|
||||
|
||||
鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?
|
||||
鈹? 馃Ч 鈹?鈹? 馃搳 鈹?鈹? 馃搱 鈹?
|
||||
鈹傛櫤鑳芥暟鎹<EFBFBD>竻娲?鈹?鈹傛櫤鑳界粺璁″垎鏋?鈹?鈹傜粺璁″垎鏋愬伐鍏?鈹?
|
||||
鈹? 瑙勫垝涓? 鈹?鈹? 澶栭儴闆嗘垚 鈹?鈹? 澶栭儴闆嗘垚 鈹?
|
||||
鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?
|
||||
┌────────────┐ ┌────────────┐ ┌────────────┐
|
||||
│ 🧹 │ │ 📊 │ │ 📈 │
|
||||
│智能数据清洗 │ │智能统计分析 │ │统计分析工具 │
|
||||
│ 规划中 │ │ 外部集成 │ │ 外部集成 │
|
||||
└────────────┘ └────────────┘ └────────────┘
|
||||
|
||||
📊 系统统计
|
||||
[ 6 业务模块 ] [ 10 Schema ] [ 4 LLM ]
|
||||
@@ -169,65 +169,65 @@ isExternal?: boolean
|
||||
|
||||
---
|
||||
|
||||
## 鉁?楠屾敹鏍囧噯
|
||||
## ✅ 验收标准
|
||||
|
||||
- [x] 顶部导航显示6个模块,顺序正确
|
||||
- [x] 妯″潡鍛藉悕涓庢灦鏋勬枃妗d竴鑷?
|
||||
- [x] 璺<EFBFBD>敱璺<EFBFBD>緞涓庢灦鏋勬枃妗d竴鑷?
|
||||
- [x] 棣栭〉缁熻<EFBFBD>鏁版嵁鏄剧ず"6涓<36>笟鍔℃ā鍧?
|
||||
- [x] AI鏅鸿兘鏂囩尞鏄剧ず"Week 3 寮€鍙?锛堢豢鑹诧級
|
||||
- [x] 模块命名与架构文档一致
|
||||
- [x] 路由路径与架构文档一致
|
||||
- [x] 首页统计数据显示"6个业务模块"
|
||||
- [x] AI智能文献显示"Week 3 开发"(绿色)
|
||||
- [x] Java团队模块显示"外部集成"(紫色)
|
||||
- [x] 鍏朵粬妯″潡鏄剧ず"瑙勫垝涓?锛堟<E9949B>鑹诧級
|
||||
- [x] 其他模块显示"规划中"(橙色)
|
||||
- [x] 删除了架构文档中未定义的审稿系统模块
|
||||
|
||||
---
|
||||
|
||||
## 馃搧 淇<>敼鐨勬枃浠舵竻鍗?
|
||||
## 📁 修改的文件清单
|
||||
|
||||
1. 鉁?`src/framework/modules/moduleRegistry.ts` - 妯″潡娉ㄥ唽閰嶇疆
|
||||
2. 鉁?`src/framework/modules/types.ts` - 绫诲瀷瀹氫箟
|
||||
3. 鉁?`src/pages/HomePage.tsx` - 棣栭〉缁熻<EFBFBD>鍜屾爣绛鹃€昏緫
|
||||
4. 鉁?`src/modules/ssa/index.tsx` - 鏂板<EFBFBD>鏅鸿兘缁熻<EFBFBD>鍒嗘瀽妯″潡
|
||||
5. 鉁?`src/modules/st/index.tsx` - 鏂板<EFBFBD>缁熻<EFBFBD>鍒嗘瀽宸ュ叿妯″潡
|
||||
6. 鉂?`src/modules/rvw/index.tsx` - 鍒犻櫎瀹$ǹ绯荤粺妯″潡
|
||||
1. ✅ `src/framework/modules/moduleRegistry.ts` - 模块注册配置
|
||||
2. ✅ `src/framework/modules/types.ts` - 类型定义
|
||||
3. ✅ `src/pages/HomePage.tsx` - 首页统计和标签逻辑
|
||||
4. ✅ `src/modules/ssa/index.tsx` - 新增智能统计分析模块
|
||||
5. ✅ `src/modules/st/index.tsx` - 新增统计分析工具模块
|
||||
6. ❌ `src/modules/rvw/index.tsx` - 删除审稿系统模块
|
||||
|
||||
---
|
||||
|
||||
## 馃幆 涓庢灦鏋勬枃妗g殑涓€鑷存€?
|
||||
## 🎯 与架构文档的一致性
|
||||
|
||||
| 椤圭洰 | 鏋舵瀯鏂囨。瑕佹眰 | 褰撳墠瀹炵幇 | 鐘舵€?|
|
||||
| 项目 | 架构文档要求 | 当前实现 | 状态 |
|
||||
|------|-------------|---------|------|
|
||||
| 妯″潡鏁伴噺 | 6涓?| 6涓?| 鉁?|
|
||||
| 妯″潡椤哄簭 | AI闂<49>瓟鈫扐I鏅鸿兘鏂囩尞鈫掔煡璇嗗簱鈫?.. | 涓€鑷?| 鉁?|
|
||||
| 妯″潡ID鍛藉悕 | `ai-qa`, `literature-platform`绛?| 涓€鑷?| 鉁?|
|
||||
| 璺<EFBFBD>敱璺<EFBFBD>緞 | `/ai-qa`, `/literature`绛?| 涓€鑷?| 鉁?|
|
||||
| 鏉冮檺閰嶇疆 | 鍩虹<E98DA9>鐗?楂樼骇鐗?鏃楄埌鐗?| 涓€鑷?| 鉁?|
|
||||
| 澶栭儴妯″潡鏍囪<EFBFBD> | Java鍥㈤槦妯″潡闇€鏍囪<E98F8D> | 宸叉爣璁?| 鉁?|
|
||||
| 模块数量 | 6个 | 6个 | ✅ |
|
||||
| 模块顺序 | AI问答→AI智能文献→知识库→... | 一致 | ✅ |
|
||||
| 模块ID命名 | `ai-qa`, `literature-platform`等 | 一致 | ✅ |
|
||||
| 路由路径 | `/ai-qa`, `/literature`等 | 一致 | ✅ |
|
||||
| 权限配置 | 基础版/高级版/旗舰版 | 一致 | ✅ |
|
||||
| 外部模块标记 | Java团队模块需标记 | 已标记 | ✅ |
|
||||
|
||||
---
|
||||
|
||||
## 🚀 后续工作
|
||||
|
||||
1. **Week 3 Day 1-2锛?* AI鏅鸿兘鏂囩尞妯″潡寮€鍙戝墠鍑嗗<E98D91>
|
||||
- 鏁版嵁搴撹<EFBFBD>璁★紙asl_schema锛?
|
||||
1. **Week 3 Day 1-2:** AI智能文献模块开发前准备
|
||||
- 数据库设计(asl_schema)
|
||||
- API设计
|
||||
- 前端页面设计
|
||||
|
||||
2. **鏈<EFBFBD>潵锛?* 澶栭儴妯″潡闆嗘垚
|
||||
- 鏅鸿兘缁熻<EFBFBD>鍒嗘瀽锛圝ava鍥㈤槦锛?
|
||||
- 缁熻<EFBFBD>鍒嗘瀽宸ュ叿锛圝ava鍥㈤槦锛?
|
||||
2. **未来:** 外部模块集成
|
||||
- 智能统计分析(Java团队)
|
||||
- 统计分析工具(Java团队)
|
||||
- 前端仅做导航集成和iframe嵌入
|
||||
|
||||
3. **鏈<EFBFBD>潵锛?* 鍏朵粬妯″潡寮€鍙?
|
||||
3. **未来:** 其他模块开发
|
||||
- AI问答模块重写
|
||||
- 鐭ヨ瘑搴撴ā鍧楅噸鍐?
|
||||
- 鏅鸿兘鏁版嵁娓呮礂妯″潡寮€鍙?
|
||||
- 知识库模块重写
|
||||
- 智能数据清洗模块开发
|
||||
|
||||
---
|
||||
|
||||
**鏇存柊瀹屾垚锛?* 鉁?
|
||||
**更新完成!** ✅
|
||||
|
||||
鎵€鏈夋ā鍧楅厤缃<EFBFBD>凡涓庡钩鍙版灦鏋勬枃妗d繚鎸佷竴鑷淬€?
|
||||
所有模块配置已与平台架构文档保持一致。
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user