包含多个会话的累积代码变更: - backend: AI 聊天服务、触发器调度、认证增强、WebSocket、调度器最小间隔 - admin-web: ETL 状态页、任务管理、调度配置、登录优化 - miniprogram: 看板页面、聊天集成、UI 组件、导航更新 - etl: DWS 新任务(finance_area_daily/board_cache)、连接器增强 - tenant-admin: 项目初始化 - db: 19 个迁移脚本(etl_feiqiu 11 + zqyy_app 8) - packages/shared: 枚举和工具函数更新 - tools: 数据库工具、报表生成、健康检查 - docs: PRD/架构/部署/合约文档更新 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2.2 KiB
2.2 KiB
P6→NS1/RNS1 缺失项 #2:3 种空状态设计
简要结论
- 状态:⚠️ 部分解决
- 风险等级:🟠 中
- 已实现 2 种空状态(无任务、网络错误),但缺少「筛选无结果」空状态,且现有空状态缺少插图。
详细审查
审查范围
apps/miniprogram/miniprogram/pages/task-list/task-list.wxml— 空状态模板apps/miniprogram/miniprogram/pages/task-list/task-list.ts— pageState 逻辑apps/miniprogram/miniprogram/pages/task-list/task-list.wxss— 空状态样式apps/miniprogram/miniprogram/pages/task-detail/task-detail.wxml— 详情页空状态
发现
已实现的 2 种空状态:
- 无任务(empty):
pageState === 'empty'时显示纯文字「暂无待办任务」 - 网络错误(error):
pageState === 'error'时显示「加载失败,请重试」+ 重试按钮
缺失项:
- 筛选无结果:当前 task-list 页面无筛选功能(无 filter-dropdown 组件引用),因此无筛选无结果状态。但 P6 定义了此场景,未来添加筛选时需要补充
- 插图缺失:两种空状态均为纯文字,无 SVG/PNG 插图。P6 定义了每种空状态应有对应插图
- task-detail 页面有更完善的空状态:使用了
t-icon图标(info-circle / close-circle),但仍非 P6 定义的专属插图
证据
task-list.wxml 空状态实现:
<!-- 空状态 -->
<view class="state-empty" wx:if="{{pageState === 'empty'}}">
<text class="empty-text">暂无待办任务</text>
</view>
<!-- Error 状态 -->
<view class="state-error" wx:if="{{pageState === 'error'}}">
<text class="error-text">加载失败,请重试</text>
<view class="retry-btn" bindtap="onRetry">
<text class="retry-btn-text">重试</text>
</view>
</view>
pageState 类型定义仅 4 种:'loading' | 'empty' | 'error' | 'normal',无 'filter-empty' 状态。
建议(如未完全解决)
- 为 empty 和 error 状态添加 SVG 插图(建议放在
/assets/images/empty-*.svg) - 预留
filter-empty状态,文案如「没有找到匹配的任务,试试调整筛选条件」 - 可使用 TDesign 的
t-empty组件替代自定义实现,自带图标和文案插槽