@qnote/q-ai-note 1.0.13 → 1.0.15

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.
@@ -20,9 +20,22 @@
20
20
  <ul class="nav-list">
21
21
  <li><a href="#/sandboxes" data-nav="sandboxes">沙盘</a></li>
22
22
  <li><a href="#/diaries" data-nav="diaries">日记</a></li>
23
+ <li><a href="#/tasks" data-nav="tasks">任务看板</a></li>
23
24
  <li><a href="#/changes" data-nav="changes">变化</a></li>
24
25
  <li><a href="#/settings" data-nav="settings">项目设置</a></li>
25
26
  <li><a href="#/system-settings" data-nav="system-settings">系统设置</a></li>
27
+ <li class="nav-group nav-group-collapsed" id="ai-engineering-nav-group">
28
+ <div class="nav-group-header">
29
+ <a href="#/ai-engineering" data-nav="ai-engineering">AI软件工程</a>
30
+ <button class="nav-group-toggle" id="toggle-ai-engineering-nav" type="button" aria-expanded="false" aria-controls="ai-engineering-nav-sub-list">▸</button>
31
+ </div>
32
+ <ul class="nav-sub-list" id="ai-engineering-nav-sub-list">
33
+ <li><a href="#/aser-runtime" data-nav="aser-runtime">ASER 运行时</a></li>
34
+ <li><a href="#/agent-club" data-nav="agent-club">Agent Club</a></li>
35
+ <li><a href="#/teams" data-nav="teams">Teams</a></li>
36
+ <li><a href="#/opencode-team-runner" data-nav="opencode-team-runner">OpenCode Team Runner</a></li>
37
+ </ul>
38
+ </li>
26
39
  </ul>
27
40
  </nav>
28
41
  <main class="content">
@@ -52,6 +65,8 @@
52
65
  <div class="action-strip">
53
66
  <button class="btn btn-secondary btn-sm" id="generate-insight-btn">智能总结</button>
54
67
  <button class="btn btn-secondary btn-sm" id="generate-report-btn">生成汇报</button>
68
+ <button class="btn btn-secondary btn-sm" id="export-sandbox-markdown-btn">导出Markdown</button>
69
+ <button class="btn btn-secondary btn-sm" id="export-sandbox-excel-btn">导出Excel</button>
55
70
  <button class="btn btn-secondary btn-sm ai-toggle-btn" id="toggle-sandbox-chat-btn" type="button">
56
71
  <span class="icon" aria-hidden="true">🤖</span>
57
72
  <span>显示 AI 助手</span>
@@ -82,9 +97,9 @@
82
97
  </select>
83
98
  <select id="work-item-element-preview-mode">
84
99
  <option value="none">能力要素:不显示</option>
85
- <option value="issue">能力要素:Issue</option>
86
- <option value="knowledge">能力要素:Knowledge</option>
87
- <option value="capability">能力要素:Capability</option>
100
+ <option value="issue">能力要素:问题</option>
101
+ <option value="knowledge">能力要素:知识</option>
102
+ <option value="capability">能力要素:能力</option>
88
103
  <option value="all">能力要素:全部</option>
89
104
  </select>
90
105
  <label class="inline-checkbox">
@@ -105,9 +120,9 @@
105
120
  <div class="work-tree-legend">
106
121
  <span class="legend-title">图例</span>
107
122
  <span class="legend-chip">1/2/3</span>
108
- <span class="legend-text">顺序:Issue / Knowledge / Capability</span>
109
- <span class="legend-state issue-open"><span class="dot"></span>Issue 有未关闭项</span>
110
- <span class="legend-state issue-closed"><span class="dot"></span>Issue 已关闭</span>
123
+ <span class="legend-text">顺序:问题 / 知识 / 能力</span>
124
+ <span class="legend-state issue-open"><span class="dot"></span>问题有未关闭项</span>
125
+ <span class="legend-state issue-closed"><span class="dot"></span>问题已关闭</span>
111
126
  </div>
112
127
  <div class="work-tree" id="work-tree"></div>
113
128
  </div>
@@ -156,28 +171,45 @@
156
171
  </div>
157
172
  <div class="entity-filter-tabs" id="entity-filter-tabs">
158
173
  <button class="btn btn-secondary btn-sm active" data-entity-filter="all">全部</button>
159
- <button class="btn btn-secondary btn-sm" data-entity-filter="issue">Issue</button>
160
- <button class="btn btn-secondary btn-sm" data-entity-filter="knowledge">Knowledge</button>
161
- <button class="btn btn-secondary btn-sm" data-entity-filter="capability">Capability</button>
174
+ <button class="btn btn-secondary btn-sm" data-entity-filter="todo">Todo</button>
175
+ <button class="btn btn-secondary btn-sm" data-entity-filter="issue">问题</button>
176
+ <button class="btn btn-secondary btn-sm" data-entity-filter="knowledge">知识</button>
177
+ <button class="btn btn-secondary btn-sm" data-entity-filter="capability">能力</button>
162
178
  <button class="btn btn-secondary btn-sm" data-entity-filter="diary">Diary</button>
163
179
  </div>
164
180
 
165
181
  <div class="drawer-create-form hidden" id="drawer-create-form">
166
182
  <select id="entity-type-select">
167
- <option value="issue">Issue</option>
168
- <option value="knowledge">Knowledge</option>
169
- <option value="capability">Capability</option>
183
+ <option value="todo">Todo</option>
184
+ <option value="issue">问题</option>
185
+ <option value="knowledge">知识</option>
186
+ <option value="capability">能力</option>
170
187
  </select>
171
188
  <input type="text" id="entity-title-input" placeholder="标题(必填)">
172
189
  <div class="entity-field-group" id="entity-assignee-group">
173
- <input type="text" id="entity-assignee-input" placeholder="负责人(Issue可选)">
190
+ <input type="text" id="entity-assignee-input" placeholder="负责人(问题可选)">
191
+ </div>
192
+ <div class="entity-field-group hidden" id="entity-due-date-group">
193
+ <input type="date" id="entity-due-date-input">
194
+ </div>
195
+ <div class="entity-field-group hidden" id="entity-todo-date-group">
196
+ <div class="todo-form-dates">
197
+ <div>
198
+ <label for="entity-todo-planned-start-input">计划启动日期</label>
199
+ <input type="date" id="entity-todo-planned-start-input">
200
+ </div>
201
+ <div>
202
+ <label for="entity-todo-due-date-input">截止日期</label>
203
+ <input type="date" id="entity-todo-due-date-input">
204
+ </div>
205
+ </div>
174
206
  </div>
175
207
  <div class="entity-field-group" id="entity-status-group">
176
208
  <select id="entity-status-select"></select>
177
209
  </div>
178
210
  <div class="entity-field-group" id="entity-priority-group">
179
211
  <select id="entity-priority-select">
180
- <option value="">优先级(Issue可选)</option>
212
+ <option value="">优先级(问题可选)</option>
181
213
  <option value="low">low</option>
182
214
  <option value="medium">medium</option>
183
215
  <option value="high">high</option>
@@ -186,7 +218,7 @@
186
218
  </div>
187
219
  <div class="entity-field-group" id="entity-capability-type-group">
188
220
  <select id="entity-capability-type-input">
189
- <option value="">能力类型(Capability可选)</option>
221
+ <option value="">能力类型(能力项可选)</option>
190
222
  <option value="workflow">workflow(流程能力)</option>
191
223
  <option value="automation">automation(自动化能力)</option>
192
224
  <option value="tooling">tooling(工具能力)</option>
@@ -197,7 +229,7 @@
197
229
  <option value="other">other(其他)</option>
198
230
  </select>
199
231
  </div>
200
- <textarea id="entity-content-input" rows="4" placeholder="Markdown 内容(Knowledge/Capability 推荐)"></textarea>
232
+ <textarea id="entity-content-input" rows="4" placeholder="Markdown 内容(知识/能力 推荐)"></textarea>
201
233
  <div class="entity-form-hint" id="entity-form-hint"></div>
202
234
  <div class="entity-form-actions">
203
235
  <button class="btn btn-secondary btn-sm hidden" id="cancel-edit-entity-btn" type="button">取消编辑</button>
@@ -210,6 +242,281 @@
210
242
  </aside>
211
243
  </div>
212
244
  </div>
245
+
246
+ <div id="page-aser-runtime" class="page hidden">
247
+ <h2>ASER Runtime 子系统</h2>
248
+ <p class="aser-intro">
249
+ 独立承载 agent-native 软件工程运行时模型:event / intent / task / artifact / evaluation。
250
+ </p>
251
+ <div class="summary-strip" id="aser-runtime-summary">
252
+ <div class="summary-card">
253
+ <div class="label">项目数</div>
254
+ <div class="value" id="aser-summary-total-projects">0</div>
255
+ </div>
256
+ <div class="summary-card">
257
+ <div class="label">最近更新时间</div>
258
+ <div class="value" id="aser-summary-last-updated">-</div>
259
+ </div>
260
+ </div>
261
+ <div class="aser-layout">
262
+ <section class="aser-left-panel">
263
+ <div class="section-header">
264
+ <span>Protocol 流程</span>
265
+ <div class="aser-inline-actions">
266
+ <button class="btn btn-secondary btn-sm" id="aser-open-protocol-dialog-btn" type="button">编辑 Protocol</button>
267
+ <button class="btn btn-secondary btn-sm" id="aser-open-create-project-dialog-btn" type="button">基于流程新建 Project</button>
268
+ <button class="btn btn-secondary btn-sm" id="aser-load-complex-scenario-btn" type="button">注入复杂场景</button>
269
+ </div>
270
+ </div>
271
+ <div class="aser-form-grid">
272
+ <label for="aser-protocol-preset-select">选择流程模板(Protocol)</label>
273
+ <select id="aser-protocol-preset-select"></select>
274
+ </div>
275
+ <div class="aser-left-bottom">
276
+ <div class="section-header">
277
+ <h3>Protocol 信息</h3>
278
+ <div class="aser-inline-actions">
279
+ <label class="aser-toggle-inline" for="aser-protocol-coverage-toggle">
280
+ <input id="aser-protocol-coverage-toggle" type="checkbox" checked>
281
+ <span>渲染 Project 覆盖</span>
282
+ </label>
283
+ <button class="btn btn-secondary btn-sm active" id="aser-protocol-view-graph-btn" type="button">图形</button>
284
+ <button class="btn btn-secondary btn-sm" id="aser-protocol-view-text-btn" type="button">文字</button>
285
+ <button class="btn btn-secondary btn-sm" id="aser-protocol-expand-btn" type="button">全屏详情</button>
286
+ </div>
287
+ </div>
288
+ <div class="aser-protocol-visual" id="aser-protocol-visual"></div>
289
+ <div class="aser-protocol-flow" id="aser-protocol-flow"></div>
290
+ </div>
291
+ <div class="aser-left-bottom">
292
+ <h3>Project 列表(使用已选流程)</h3>
293
+ <div class="aser-project-list" id="aser-project-list"></div>
294
+ <div class="aser-project-list-pager" id="aser-project-list-pager"></div>
295
+ </div>
296
+ <div class="aser-left-bottom aser-project-overview" id="aser-project-overview">
297
+ <h3>Project 总览</h3>
298
+ <div class="aser-project-detail-row">
299
+ <span class="label">当前 Project</span>
300
+ <span class="value" id="aser-selected-project-title">未选择项目</span>
301
+ </div>
302
+ <div class="aser-project-detail-row">
303
+ <span class="label">描述 / 更新时间</span>
304
+ <span class="value" id="aser-selected-project-description">从左侧选择或新建一个项目。</span>
305
+ <span class="value" id="aser-selected-project-updated">-</span>
306
+ </div>
307
+ <div class="aser-project-detail-row">
308
+ <span class="label">项目状态</span>
309
+ <span class="value" id="aser-selected-project-state">-</span>
310
+ </div>
311
+ <div class="aser-project-detail-row">
312
+ <span class="label">Thread 概览</span>
313
+ <span class="value" id="aser-selected-thread-state">-</span>
314
+ </div>
315
+ </div>
316
+ </section>
317
+ <section class="aser-center-panel">
318
+ <div class="section-header">
319
+ <span>任务过程区</span>
320
+ <div class="aser-inline-actions">
321
+ <button class="btn btn-secondary btn-sm active" id="aser-view-mode-chat-btn" type="button">Chat 模式</button>
322
+ <button class="btn btn-secondary btn-sm" id="aser-view-mode-graph-btn" type="button">图形模式</button>
323
+ <button class="btn btn-secondary btn-sm" id="aser-view-mode-thread-btn" type="button">Thread 模式</button>
324
+ </div>
325
+ </div>
326
+ <div class="aser-demo-panel" id="aser-demo-panel">
327
+ <div class="aser-demo-top">
328
+ <strong id="aser-replay-title">最新状态全景</strong>
329
+ <div class="aser-inline-actions" id="aser-replay-actions">
330
+ <button class="btn btn-secondary btn-sm" id="aser-demo-start-btn" type="button">开始重放</button>
331
+ <button class="btn btn-secondary btn-sm" id="aser-demo-next-btn" type="button">下一步</button>
332
+ <button class="btn btn-secondary btn-sm" id="aser-demo-auto-btn" type="button">自动播放</button>
333
+ <button class="btn btn-secondary btn-sm" id="aser-demo-stop-btn" type="button">停止</button>
334
+ <button class="btn btn-secondary btn-sm" id="aser-demo-reset-btn" type="button">重置</button>
335
+ </div>
336
+ </div>
337
+ <div class="aser-demo-progress" id="aser-demo-progress">未开始</div>
338
+ <div class="aser-demo-progress-bar"><div class="aser-demo-progress-inner" id="aser-demo-progress-inner"></div></div>
339
+ <div class="aser-demo-steps" id="aser-demo-steps"></div>
340
+ <div class="aser-demo-logs" id="aser-demo-logs"></div>
341
+ </div>
342
+ <div class="aser-form-grid">
343
+ <h3>系统输入</h3>
344
+ <textarea id="aser-system-input" rows="3" placeholder="输入系统指令,例如:请评审支付回调重试策略;请上升发布风险到 PM"></textarea>
345
+ <div class="aser-inline-actions">
346
+ <select id="aser-run-team-select" title="选择执行团队"></select>
347
+ <button class="btn btn-secondary btn-sm" id="aser-assign-team-btn" type="button">分派给项目</button>
348
+ <button class="btn btn-secondary btn-sm" id="aser-start-run-btn" type="button">启动干活</button>
349
+ <button class="btn btn-secondary btn-sm" id="aser-submit-event-btn" type="button">提交系统输入</button>
350
+ </div>
351
+ </div>
352
+ <div class="aser-divider"></div>
353
+ <div class="aser-form-grid" id="aser-chat-process-container">
354
+ <h3>Chat 模式任务过程</h3>
355
+ <div class="aser-chat-process-list" id="aser-chat-process-list"></div>
356
+ </div>
357
+ <div class="aser-divider"></div>
358
+ <div class="aser-form-grid hidden" id="aser-graph-process-container">
359
+ <h3>图形化 Task 全局过程</h3>
360
+ <div class="aser-task-graph" id="aser-task-graph"></div>
361
+ </div>
362
+ <div class="aser-divider"></div>
363
+ <div class="aser-form-grid hidden" id="aser-thread-process-container">
364
+ <div class="section-header">
365
+ <h3>Task Thread(父子/关联线程)</h3>
366
+ <div class="aser-inline-actions">
367
+ <select id="aser-thread-filter-select">
368
+ <option value="all">全部线程</option>
369
+ <option value="blocked">仅阻塞线程</option>
370
+ <option value="loop">仅回路线程</option>
371
+ <option value="rework">仅返工线程</option>
372
+ </select>
373
+ </div>
374
+ </div>
375
+ <div class="aser-task-thread" id="aser-task-thread"></div>
376
+ </div>
377
+ <div class="aser-divider"></div>
378
+ </section>
379
+ <section class="aser-right-panel aser-project-detail is-empty" id="aser-project-detail">
380
+ <div class="section-header">
381
+ <span>详情面板</span>
382
+ </div>
383
+ <div class="aser-runtime-board">
384
+ <h3>PM 过程看板</h3>
385
+ <div class="aser-pm-board" id="aser-pm-board"></div>
386
+ </div>
387
+ <div class="aser-runtime-board">
388
+ <h3>Thread 摘要</h3>
389
+ <div class="aser-thread-summary" id="aser-thread-summary"></div>
390
+ </div>
391
+ <div class="aser-runtime-board">
392
+ <h3>治理建议</h3>
393
+ <div class="aser-governance-advice" id="aser-governance-advice"></div>
394
+ </div>
395
+ <div class="aser-runtime-board">
396
+ <h3>选中对象详情</h3>
397
+ <div class="aser-focus-detail" id="aser-focus-detail">
398
+ 点击中间区域中的 chat 任务或图形 task,查看详细信息。
399
+ </div>
400
+ </div>
401
+ </section>
402
+ </div>
403
+
404
+ <dialog id="aser-create-project-dialog">
405
+ <div class="aser-dialog-shell">
406
+ <h3>新建 Project</h3>
407
+ <select id="aser-create-project-protocol-select"></select>
408
+ <input type="text" id="aser-project-name-input" placeholder="项目名称(必填)">
409
+ <textarea id="aser-project-description-input" rows="4" placeholder="项目描述(可选)"></textarea>
410
+ <div class="aser-inline-actions">
411
+ <button class="btn btn-secondary btn-sm" id="aser-cancel-create-project-dialog-btn" type="button">取消</button>
412
+ <button class="btn btn-primary btn-sm" id="aser-create-project-btn" type="button">创建</button>
413
+ </div>
414
+ </div>
415
+ </dialog>
416
+
417
+ <dialog id="aser-protocol-dialog">
418
+ <div class="aser-dialog-shell">
419
+ <h3>编辑 Protocol</h3>
420
+ <textarea id="aser-protocol-json-input" rows="16" placeholder="protocol JSON"></textarea>
421
+ <div class="aser-inline-actions">
422
+ <button class="btn btn-secondary btn-sm" id="aser-load-protocol-btn" type="button">重载</button>
423
+ <button class="btn btn-secondary btn-sm" id="aser-cancel-protocol-dialog-btn" type="button">取消</button>
424
+ <button class="btn btn-primary btn-sm" id="aser-save-protocol-btn" type="button">保存</button>
425
+ </div>
426
+ </div>
427
+ </dialog>
428
+
429
+ <dialog id="aser-protocol-flow-dialog">
430
+ <div class="aser-dialog-shell aser-protocol-detail-shell">
431
+ <h3>Protocol 全屏详情</h3>
432
+ <div id="aser-protocol-flow-fullscreen"></div>
433
+ <div class="aser-inline-actions">
434
+ <button class="btn btn-secondary btn-sm" id="aser-close-protocol-flow-dialog-btn" type="button">关闭</button>
435
+ </div>
436
+ </div>
437
+ </dialog>
438
+ </div>
439
+
440
+ <div id="page-ai-engineering" class="page hidden">
441
+ <h2>AI软件工程</h2>
442
+ <p class="aser-intro">统一管理流程运行(ASER)、Agent 能力资产(Agent Club)和团队编排(Teams)。</p>
443
+ <div class="card">
444
+ <h3>导航说明</h3>
445
+ <p>在左侧子导航进入 `ASER 运行时`、`Agent Club`、`Teams`。推荐流程:先定义 Agent -> 组建 Team -> 在 ASER 中创建 Project 并分派 Team 后启动。</p>
446
+ </div>
447
+ </div>
448
+
449
+ <div id="page-agent-club" class="page hidden">
450
+ <h2>Agent Club</h2>
451
+ <div class="card">
452
+ <div class="section-header">
453
+ <span>创建 Agent</span>
454
+ </div>
455
+ <div class="aser-form-grid">
456
+ <input type="text" id="agent-club-name" placeholder="Agent 名称(例如:Dev Alpha)">
457
+ <input type="text" id="agent-club-role" placeholder="角色(例如:developer)">
458
+ <textarea id="agent-club-knowledge" rows="2" placeholder="知识背景(每行一项,例如:支付域 / 分布式事务)"></textarea>
459
+ <textarea id="agent-club-skills" rows="3" placeholder="技能(每行一项,格式:技能:等级,例如 React:advanced)"></textarea>
460
+ <textarea id="agent-club-task-types" rows="2" placeholder="任务类型(每行一项,例如:需求拆解 / 代码实现)"></textarea>
461
+ <textarea id="agent-club-deliverables" rows="2" placeholder="产物类型(每行一项,例如:设计文档 / PR / 测试报告)"></textarea>
462
+ <input type="text" id="agent-club-raci-default" placeholder="默认RACI(例如:R=developer,A=architect,C=reviewer,I=pm)">
463
+ <textarea id="agent-club-quality-criteria" rows="2" placeholder="质量标准(每行一项,例如:测试通过 / 评审通过)"></textarea>
464
+ <textarea id="agent-club-risk-limits" rows="2" placeholder="风险边界(每行一项,例如:跨团队阻塞需升级)"></textarea>
465
+ <div class="aser-inline-actions">
466
+ <button class="btn btn-primary btn-sm" id="agent-club-create-btn" type="button">创建 Agent</button>
467
+ </div>
468
+ </div>
469
+ </div>
470
+ <div class="card">
471
+ <h3>Agent 列表</h3>
472
+ <div class="aser-task-list" id="agent-club-list"></div>
473
+ </div>
474
+ </div>
475
+
476
+ <div id="page-teams" class="page hidden">
477
+ <h2>Teams</h2>
478
+ <div class="card">
479
+ <div class="section-header">
480
+ <span>创建 Team</span>
481
+ </div>
482
+ <div class="aser-form-grid">
483
+ <input type="text" id="teams-name" placeholder="Team 名称(例如:Payment Delivery Team)">
484
+ <select id="teams-agent-select" multiple size="6" title="选择 Team 成员 Agent"></select>
485
+ <div class="aser-inline-actions">
486
+ <button class="btn btn-primary btn-sm" id="teams-create-btn" type="button">创建 Team</button>
487
+ </div>
488
+ </div>
489
+ </div>
490
+ <div class="card">
491
+ <h3>Team 列表</h3>
492
+ <div class="aser-task-list" id="teams-list"></div>
493
+ </div>
494
+ </div>
495
+
496
+ <div id="page-opencode-team-runner" class="page hidden">
497
+ <h2>OpenCode Team Runner</h2>
498
+ <p class="aser-intro">面向项目执行编排:获取任务、分派责任、启动 Agent、跟踪产出与沟通诉求(上升/澄清)。</p>
499
+ <div class="card">
500
+ <div class="aser-form-grid">
501
+ <select id="opencode-runner-project-select" title="选择 ASER Project"></select>
502
+ <select id="opencode-runner-team-select" title="选择执行 Team"></select>
503
+ <div class="aser-inline-actions">
504
+ <button class="btn btn-secondary btn-sm" id="opencode-runner-load-btn" type="button">获取任务</button>
505
+ <button class="btn btn-secondary btn-sm" id="opencode-runner-plan-btn" type="button">编排责任</button>
506
+ <button class="btn btn-primary btn-sm" id="opencode-runner-start-btn" type="button">启动执行</button>
507
+ </div>
508
+ <div id="opencode-runner-summary" class="aser-meta-item">未开始</div>
509
+ </div>
510
+ </div>
511
+ <div class="card">
512
+ <h3>任务责任与进度</h3>
513
+ <div class="aser-task-list" id="opencode-runner-task-list"></div>
514
+ </div>
515
+ <div class="card">
516
+ <h3>运行过程可视化</h3>
517
+ <div class="aser-chat-task-timeline" id="opencode-runner-timeline"></div>
518
+ </div>
519
+ </div>
213
520
 
214
521
  <div id="page-diaries" class="page hidden">
215
522
  <h2>日记</h2>
@@ -231,6 +538,31 @@
231
538
  <div class="diary-timeline" id="diary-timeline"></div>
232
539
  </div>
233
540
 
541
+ <div id="page-tasks" class="page hidden">
542
+ <h2>任务看板</h2>
543
+ <div class="action-strip">
544
+ <select id="task-board-period">
545
+ <option value="week">本周任务</option>
546
+ <option value="month">本月任务</option>
547
+ <option value="quarter">3个月以内</option>
548
+ <option value="all">所有任务</option>
549
+ </select>
550
+ <input type="text" id="task-board-owner-input" placeholder="我的名字(用于区分我/他人)">
551
+ <button class="btn btn-secondary btn-sm" id="task-board-refresh-btn" type="button">刷新</button>
552
+ </div>
553
+ <div class="summary-strip" id="task-board-summary"></div>
554
+ <div class="task-board-grid">
555
+ <section class="task-board-column">
556
+ <div class="task-board-column-title">我的任务</div>
557
+ <div id="task-board-mine-list" class="task-board-list"></div>
558
+ </section>
559
+ <section class="task-board-column">
560
+ <div class="task-board-column-title">他人任务</div>
561
+ <div id="task-board-others-list" class="task-board-list"></div>
562
+ </section>
563
+ </div>
564
+ </div>
565
+
234
566
  <dialog id="diary-edit-dialog">
235
567
  <div class="diary-edit-shell">
236
568
  <div class="diary-edit-header">