collabdocchat 1.2.13 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/README.md +219 -218
  2. package/index.html +2 -0
  3. package/install-and-start.bat +5 -0
  4. package/install-and-start.sh +5 -0
  5. package/package.json +9 -2
  6. package/scripts/generate-docs.js +448 -0
  7. package/scripts/pre-publish-check.js +213 -0
  8. package/scripts/start-app.js +15 -15
  9. package/server/index.js +38 -6
  10. package/server/middleware/cache.js +115 -0
  11. package/server/middleware/errorHandler.js +209 -0
  12. package/server/models/Document.js +66 -59
  13. package/server/models/File.js +49 -43
  14. package/server/models/Group.js +6 -0
  15. package/server/models/KnowledgeBase.js +254 -0
  16. package/server/models/Message.js +43 -0
  17. package/server/models/Task.js +87 -55
  18. package/server/models/User.js +67 -60
  19. package/server/models/Workflow.js +249 -0
  20. package/server/routes/ai.js +327 -0
  21. package/server/routes/audit.js +245 -210
  22. package/server/routes/backup.js +108 -0
  23. package/server/routes/chunked-upload.js +343 -0
  24. package/server/routes/export.js +440 -0
  25. package/server/routes/files.js +294 -218
  26. package/server/routes/groups.js +182 -0
  27. package/server/routes/knowledge.js +509 -0
  28. package/server/routes/tasks.js +257 -110
  29. package/server/routes/workflows.js +380 -0
  30. package/server/utils/backup.js +439 -0
  31. package/server/utils/cache.js +223 -0
  32. package/server/utils/workflow-engine.js +479 -0
  33. package/server/websocket/enhanced.js +509 -0
  34. package/server/websocket/index.js +233 -1
  35. package/src/components/knowledge-modal.js +485 -0
  36. package/src/components/optimized-poll-detail.js +724 -0
  37. package/src/main.js +5 -0
  38. package/src/pages/admin-dashboard.js +2248 -44
  39. package/src/pages/optimized-backup-view.js +616 -0
  40. package/src/pages/optimized-knowledge-view.js +803 -0
  41. package/src/pages/optimized-task-detail.js +843 -0
  42. package/src/pages/optimized-workflow-view.js +806 -0
  43. package/src/pages/simplified-workflows.js +651 -0
  44. package/src/pages/user-dashboard.js +677 -58
  45. package/src/services/api.js +64 -0
  46. package/src/services/auth.js +1 -1
  47. package/src/services/websocket.js +124 -16
  48. package/src/styles/collaboration-modern.js +708 -0
  49. package/src/styles/enhancements.css +392 -0
  50. package/src/styles/main.css +620 -1420
  51. package/src/styles/responsive.css +1000 -0
  52. package/src/styles/sidebar-fix.css +60 -0
  53. package/src/utils/ai-assistant.js +1398 -0
  54. package/src/utils/chat-enhancements.js +509 -0
  55. package/src/utils/collaboration-enhancer.js +1151 -0
  56. package/src/utils/feature-integrator.js +1724 -0
  57. package/src/utils/onboarding-guide.js +734 -0
  58. package/src/utils/performance.js +394 -0
  59. package/src/utils/permission-manager.js +890 -0
  60. package/src/utils/responsive-handler.js +491 -0
  61. package/src/utils/theme-manager.js +811 -0
  62. package/src/utils/ui-enhancements-loader.js +329 -0
  63. package/USAGE.md +0 -298
@@ -0,0 +1,329 @@
1
+ /**
2
+ * UI 美化增强加载器
3
+ * 自动加载所有界面美化功能
4
+ * 确保所有优化的界面在启动时自动集成
5
+ */
6
+
7
+ export class UIEnhancementsLoader {
8
+ constructor() {
9
+ this.enhancementsLoaded = false;
10
+ }
11
+
12
+ /**
13
+ * 初始化所有UI美化增强
14
+ * 在应用启动时自动调用
15
+ */
16
+ async init() {
17
+ if (this.enhancementsLoaded) {
18
+ console.log('✅ UI美化增强已加载');
19
+ return;
20
+ }
21
+
22
+ console.log('🎨 开始加载UI美化增强...');
23
+
24
+ try {
25
+ // 1. 加载全局美化样式
26
+ this.loadGlobalStyles();
27
+
28
+ // 2. 加载备份管理美化
29
+ await this.loadBackupEnhancements();
30
+
31
+ // 3. 加载任务详情美化
32
+ await this.loadTaskDetailEnhancements();
33
+
34
+ // 4. 加载工作流美化
35
+ await this.loadWorkflowEnhancements();
36
+
37
+ // 5. 加载投票详情美化
38
+ await this.loadPollDetailEnhancements();
39
+
40
+ // 6. 加载协作工具美化
41
+ await this.loadCollaborationEnhancements();
42
+
43
+ // 7. 加载设置界面美化(已在 feature-integrator.js 中)
44
+ console.log('✅ 设置界面美化已集成');
45
+
46
+ // 8. 加载帮助中心美化(已在 onboarding-guide.js 中)
47
+ console.log('✅ 帮助中心美化已集成');
48
+
49
+ this.enhancementsLoaded = true;
50
+ console.log('🎉 所有UI美化增强加载完成!');
51
+
52
+ } catch (error) {
53
+ console.error('❌ UI美化增强加载失败:', error);
54
+ }
55
+ }
56
+
57
+ /**
58
+ * 加载全局美化样式
59
+ */
60
+ loadGlobalStyles() {
61
+ if (document.getElementById('global-ui-enhancements')) {
62
+ return;
63
+ }
64
+
65
+ const style = document.createElement('style');
66
+ style.id = 'global-ui-enhancements';
67
+ style.textContent = `
68
+ /* ========================================
69
+ 全局UI美化样式
70
+ 自动加载,无需手动集成
71
+ ======================================== */
72
+
73
+ /* 确保主内容区域填满空间 */
74
+ .main-content {
75
+ width: 100% !important;
76
+ max-width: 100% !important;
77
+ overflow-x: hidden;
78
+ }
79
+
80
+ .dashboard {
81
+ width: 100% !important;
82
+ max-width: 100% !important;
83
+ }
84
+
85
+ /* 通用卡片样式 */
86
+ .card-modern {
87
+ background: var(--bg-card);
88
+ border: 2px solid var(--border);
89
+ border-radius: 16px;
90
+ padding: 24px;
91
+ transition: all 0.3s ease;
92
+ }
93
+
94
+ .card-modern:hover {
95
+ border-color: var(--primary);
96
+ box-shadow: 0 8px 24px rgba(99,102,241,0.15);
97
+ transform: translateY(-2px);
98
+ }
99
+
100
+ /* 通用按钮增强 */
101
+ .btn-primary,
102
+ .btn-secondary {
103
+ transition: all 0.3s ease;
104
+ }
105
+
106
+ .btn-primary:hover {
107
+ transform: translateY(-2px);
108
+ box-shadow: 0 4px 12px rgba(99,102,241,0.4);
109
+ }
110
+
111
+ .btn-secondary:hover {
112
+ transform: translateY(-2px);
113
+ box-shadow: 0 4px 12px rgba(0,0,0,0.1);
114
+ }
115
+
116
+ /* 通用动画 */
117
+ @keyframes fadeIn {
118
+ from {
119
+ opacity: 0;
120
+ }
121
+ to {
122
+ opacity: 1;
123
+ }
124
+ }
125
+
126
+ @keyframes fadeInUp {
127
+ from {
128
+ opacity: 0;
129
+ transform: translateY(20px);
130
+ }
131
+ to {
132
+ opacity: 1;
133
+ transform: translateY(0);
134
+ }
135
+ }
136
+
137
+ @keyframes slideInRight {
138
+ from {
139
+ opacity: 0;
140
+ transform: translateX(20px);
141
+ }
142
+ to {
143
+ opacity: 1;
144
+ transform: translateX(0);
145
+ }
146
+ }
147
+
148
+ @keyframes pulse {
149
+ 0%, 100% {
150
+ opacity: 1;
151
+ }
152
+ 50% {
153
+ opacity: 0.5;
154
+ }
155
+ }
156
+
157
+ /* 视图头部增强 */
158
+ .view-header {
159
+ animation: fadeInUp 0.5s ease;
160
+ }
161
+
162
+ /* 网格布局增强 */
163
+ .groups-grid,
164
+ .tasks-grid,
165
+ .documents-grid {
166
+ animation: fadeIn 0.5s ease;
167
+ }
168
+
169
+ /* 模态框增强 */
170
+ .modal {
171
+ animation: fadeIn 0.3s ease;
172
+ }
173
+
174
+ .modal-content {
175
+ animation: fadeInUp 0.3s ease;
176
+ }
177
+
178
+ /* 加载状态 */
179
+ .loading {
180
+ animation: pulse 1.5s ease-in-out infinite;
181
+ }
182
+
183
+ /* 成功状态 */
184
+ .success-feedback {
185
+ background: linear-gradient(135deg, #10b981 0%, #059669 100%);
186
+ color: white;
187
+ padding: 12px 24px;
188
+ border-radius: 8px;
189
+ animation: fadeInUp 0.3s ease;
190
+ }
191
+
192
+ /* 错误状态 */
193
+ .error-feedback {
194
+ background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
195
+ color: white;
196
+ padding: 12px 24px;
197
+ border-radius: 8px;
198
+ animation: fadeInUp 0.3s ease;
199
+ }
200
+ `;
201
+ document.head.appendChild(style);
202
+ console.log('✅ 全局美化样式已加载');
203
+ }
204
+
205
+ /**
206
+ * 加载备份管理美化
207
+ */
208
+ async loadBackupEnhancements() {
209
+ try {
210
+ // 动态导入备份管理美化模块
211
+ const module = await import('../pages/optimized-backup-view.js');
212
+
213
+ // 将函数挂载到全局,供 admin-dashboard.js 调用
214
+ window.renderOptimizedBackupView = module.renderOptimizedBackupView;
215
+
216
+ console.log('✅ 备份管理美化已加载');
217
+ } catch (error) {
218
+ console.warn('⚠️ 备份管理美化加载失败,使用默认界面:', error);
219
+ }
220
+ }
221
+
222
+ /**
223
+ * 加载任务详情美化
224
+ */
225
+ async loadTaskDetailEnhancements() {
226
+ try {
227
+ // 动态导入任务详情美化模块
228
+ const module = await import('../pages/optimized-task-detail.js');
229
+
230
+ // 将函数挂载到全局,供其他模块调用
231
+ window.renderOptimizedTaskDetail = module.renderOptimizedTaskDetail;
232
+
233
+ console.log('✅ 任务详情美化已加载');
234
+ } catch (error) {
235
+ console.warn('⚠️ 任务详情美化加载失败,使用默认界面:', error);
236
+ }
237
+ }
238
+
239
+ /**
240
+ * 加载工作流美化
241
+ */
242
+ async loadWorkflowEnhancements() {
243
+ try {
244
+ // 动态导入工作流美化模块
245
+ const module = await import('../pages/optimized-workflow-view.js');
246
+
247
+ // 将函数挂载到全局,供其他模块调用
248
+ window.renderOptimizedWorkflowView = module.renderOptimizedWorkflowView;
249
+
250
+ console.log('✅ 工作流美化已加载');
251
+ } catch (error) {
252
+ console.warn('⚠️ 工作流美化加载失败,使用默认界面:', error);
253
+ }
254
+ }
255
+
256
+ /**
257
+ * 加载投票详情美化
258
+ */
259
+ async loadPollDetailEnhancements() {
260
+ try {
261
+ // 动态导入投票详情美化模块
262
+ const module = await import('../components/optimized-poll-detail.js');
263
+
264
+ // 将函数挂载到全局,供其他模块调用
265
+ window.renderOptimizedPollDetail = module.renderOptimizedPollDetail;
266
+ window.addPollDetailStyles = module.addPollDetailStyles;
267
+
268
+ // 立即添加样式
269
+ if (typeof window.addPollDetailStyles === 'function') {
270
+ window.addPollDetailStyles();
271
+ }
272
+
273
+ console.log('✅ 投票详情美化已加载');
274
+ } catch (error) {
275
+ console.warn('⚠️ 投票详情美化加载失败,使用默认界面:', error);
276
+ }
277
+ }
278
+
279
+ /**
280
+ * 加载协作工具美化
281
+ */
282
+ async loadCollaborationEnhancements() {
283
+ try {
284
+ // 动态导入协作工具美化模块
285
+ const module = await import('../styles/collaboration-modern.js');
286
+
287
+ // 立即添加样式
288
+ if (typeof module.addCollaborationStyles === 'function') {
289
+ module.addCollaborationStyles();
290
+ }
291
+
292
+ console.log('✅ 协作工具美化已加载');
293
+ } catch (error) {
294
+ console.warn('⚠️ 协作工具美化加载失败,使用默认界面:', error);
295
+ }
296
+ }
297
+
298
+ /**
299
+ * 检查美化功能是否已加载
300
+ */
301
+ isLoaded() {
302
+ return this.enhancementsLoaded;
303
+ }
304
+
305
+ /**
306
+ * 重新加载所有美化功能
307
+ */
308
+ async reload() {
309
+ this.enhancementsLoaded = false;
310
+ await this.init();
311
+ }
312
+ }
313
+
314
+ // 创建单例实例
315
+ export const uiEnhancementsLoader = new UIEnhancementsLoader();
316
+
317
+ // 自动初始化(在模块加载时)
318
+ if (typeof window !== 'undefined') {
319
+ // 等待 DOM 加载完成后初始化
320
+ if (document.readyState === 'loading') {
321
+ document.addEventListener('DOMContentLoaded', () => {
322
+ uiEnhancementsLoader.init();
323
+ });
324
+ } else {
325
+ // DOM 已经加载完成,立即初始化
326
+ uiEnhancementsLoader.init();
327
+ }
328
+ }
329
+
package/USAGE.md DELETED
@@ -1,298 +0,0 @@
1
- # 使用说明
2
-
3
- ## 🚀 推荐的安装和使用流程
4
-
5
- ### 步骤 1: 安装包
6
-
7
- ```bash
8
- # 在您想要的目录下安装
9
- npm install collabdocchat
10
- ```
11
-
12
- ### 步骤 2: 进入目录
13
-
14
- ```bash
15
- cd node_modules/collabdocchat
16
- ```
17
-
18
- ### 步骤 3: 启动应用
19
-
20
- ```bash
21
- npm start
22
- ```
23
-
24
- **首次启动时**,系统会自动:
25
- - 检测并安装缺失的依赖
26
- - 检查端口是否可用
27
- - 启动服务器和客户端
28
- - 自动打开浏览器
29
-
30
- ## ⚠️ 常见问题解决
31
-
32
- ### 问题 1: 端口被占用
33
-
34
- 如果看到错误:`Error: listen EADDRINUSE: address already in use :::3000`
35
-
36
- **解决方案:**
37
-
38
- #### Windows:
39
- ```cmd
40
- # 查找占用端口的进程
41
- netstat -ano | findstr :3000
42
-
43
- # 结束进程(替换 <PID> 为实际的进程ID)
44
- taskkill /PID <PID> /F
45
- ```
46
-
47
- #### Mac/Linux:
48
- ```bash
49
- # 查找并结束进程
50
- lsof -ti:3000 | xargs kill -9
51
- ```
52
-
53
- 或者使用项目提供的停止脚本:
54
- ```bash
55
- npm run stop
56
- ```
57
-
58
- ### 问题 2: vite 命令找不到
59
-
60
- 如果看到错误:`'vite' 不是内部或外部命令`
61
-
62
- **原因:** 开发依赖未安装
63
-
64
- **解决方案:**
65
- ```bash
66
- # 在 collabdocchat 目录下运行
67
- npm install
68
- ```
69
-
70
- v1.2.8 及以上版本会在启动时自动检测并安装缺失的依赖。
71
-
72
- ### 问题 3: MongoDB 连接失败
73
-
74
- 如果看到错误:`MongoNetworkError: connect ECONNREFUSED`
75
-
76
- **解决方案:**
77
-
78
- 1. **确保 MongoDB 已安装**
79
- - 下载地址: https://www.mongodb.com/try/download/community
80
-
81
- 2. **启动 MongoDB 服务**
82
-
83
- **Windows:**
84
- ```cmd
85
- net start MongoDB
86
- ```
87
-
88
- **Mac:**
89
- ```bash
90
- brew services start mongodb-community
91
- ```
92
-
93
- **Linux:**
94
- ```bash
95
- sudo systemctl start mongod
96
- ```
97
-
98
- 3. **验证 MongoDB 运行**
99
- ```bash
100
- # 连接到 MongoDB
101
- mongosh
102
- # 或旧版本
103
- mongo
104
- ```
105
-
106
- ## 📋 完整的使用流程示例
107
-
108
- ### Windows 用户
109
-
110
- ```cmd
111
- # 1. 创建项目目录
112
- mkdir my-collab-app
113
- cd my-collab-app
114
-
115
- # 2. 安装包
116
- npm install collabdocchat
117
-
118
- # 3. 进入目录
119
- cd node_modules\collabdocchat
120
-
121
- # 4. 确保 MongoDB 运行
122
- net start MongoDB
123
-
124
- # 5. 启动应用
125
- npm start
126
- ```
127
-
128
- ### Mac/Linux 用户
129
-
130
- ```bash
131
- # 1. 创建项目目录
132
- mkdir my-collab-app
133
- cd my-collab-app
134
-
135
- # 2. 安装包
136
- npm install collabdocchat
137
-
138
- # 3. 进入目录
139
- cd node_modules/collabdocchat
140
-
141
- # 4. 确保 MongoDB 运行
142
- brew services start mongodb-community # Mac
143
- # 或
144
- sudo systemctl start mongod # Linux
145
-
146
- # 5. 启动应用
147
- npm start
148
- ```
149
-
150
- ## 🎯 访问应用
151
-
152
- 启动成功后,浏览器会自动打开:
153
-
154
- - **客户端界面**: http://localhost:5173
155
- - **服务器 API**: http://localhost:3000
156
-
157
- ### 默认管理员账号
158
-
159
- - **用户名**: `admin`
160
- - **密码**: `admin123`
161
-
162
- ⚠️ **重要**: 首次登录后请立即修改密码!
163
-
164
- ## 🛑 停止应用
165
-
166
- ### 方法 1: 使用快捷键
167
- 在运行应用的终端窗口按 `Ctrl + C`
168
-
169
- ### 方法 2: 使用停止脚本
170
- ```bash
171
- npm run stop
172
- ```
173
-
174
- ### 方法 3: 手动结束进程
175
-
176
- **Windows:**
177
- ```cmd
178
- taskkill /F /IM node.exe
179
- ```
180
-
181
- **Mac/Linux:**
182
- ```bash
183
- pkill -f node
184
- ```
185
-
186
- ## 🔧 配置说明
187
-
188
- ### 修改端口
189
-
190
- 编辑 `.env` 文件:
191
-
192
- ```env
193
- # 修改服务器端口
194
- PORT=3000
195
-
196
- # MongoDB 连接
197
- MONGODB_URI=mongodb://localhost:27017/collabdocchat
198
-
199
- # JWT 密钥(生产环境务必修改)
200
- JWT_SECRET=your-secret-key-here
201
- ```
202
-
203
- ### 修改管理员账号
204
-
205
- 编辑 `.env` 文件:
206
-
207
- ```env
208
- ADMIN_USERNAME=admin
209
- ADMIN_PASSWORD=your-secure-password
210
- ADMIN_EMAIL=admin@yourdomain.com
211
- ```
212
-
213
- 删除数据库后重新启动,将使用新的管理员信息。
214
-
215
- ## 📊 开发模式
216
-
217
- 如果您想进行开发或调试:
218
-
219
- ```bash
220
- # 开发模式(支持热重载)
221
- npm run dev
222
- ```
223
-
224
- 特点:
225
- - 服务器自动重启(nodemon)
226
- - 前端热重载(Vite HMR)
227
- - 自动打开浏览器
228
-
229
- ## 🔍 检查安装
230
-
231
- ### 验证 Node.js
232
- ```bash
233
- node --version
234
- # 应该 >= 16.0.0
235
- ```
236
-
237
- ### 验证 npm
238
- ```bash
239
- npm --version
240
- # 应该 >= 7.0.0
241
- ```
242
-
243
- ### 验证 MongoDB
244
- ```bash
245
- mongod --version
246
- # 应该 >= 4.4
247
- ```
248
-
249
- ## 📞 获取帮助
250
-
251
- 如果遇到其他问题:
252
-
253
- 1. 查看 [INSTALLATION.md](./INSTALLATION.md) - 详细安装指南
254
- 2. 查看 [README.md](./README.md) - 完整文档
255
- 3. 访问 [GitHub Issues](https://github.com/shijinghao/collabdocchat/issues)
256
- 4. 提交新的 Issue 描述您的问题
257
-
258
- ## 💡 最佳实践
259
-
260
- 1. **定期更新**
261
- ```bash
262
- npm update collabdocchat
263
- ```
264
-
265
- 2. **备份数据**
266
- ```bash
267
- mongodump --db collabdocchat --out ./backup
268
- ```
269
-
270
- 3. **使用 PM2 管理进程**(生产环境)
271
- ```bash
272
- npm install -g pm2
273
- pm2 start server/index.js --name collabdocchat
274
- pm2 startup
275
- pm2 save
276
- ```
277
-
278
- 4. **配置反向代理**(生产环境)
279
- 使用 Nginx 或 Apache 作为反向代理
280
-
281
- 5. **启用 HTTPS**(生产环境)
282
- 使用 Let's Encrypt 获取免费 SSL 证书
283
-
284
- ## 🎉 开始使用
285
-
286
- 现在您可以:
287
-
288
- - ✅ 创建新文档
289
- - ✅ 邀请团队成员
290
- - ✅ 实时协作编辑
291
- - ✅ 使用聊天功能
292
- - ✅ 管理任务
293
- - ✅ 上传文件
294
-
295
- 祝您使用愉快!🚀
296
-
297
-
298
-