Appearance
BizTodoCenter 待办事项中心
待办事项中心:页签条(待办 / 已办 / 我发起,每页签带过滤后条数角标)+ 关键字检索(标题 / 摘要 / 发起人包含匹配,300ms 防抖)+ 优先级色点(紧急 / 高 / 普通 / 低,紧急附红色「紧急」标)+ 超期红标(截止早于今天显示「已超期 X 天」)+ 行内操作(可配 ElMessageBox 二次确认)+ 前端分页 + 骨架 / 空态。组件不含业务接口:数据由 items 传入,操作与点击全部事件外抛,适合工作台首屏、导航待办抽屉等场景。
基础用法
合同审批
供应商已盖章,等待法务与财务会签后归档
人事流程
待开通邮箱、门禁与内部系统权限
权限申请
申请城市安全运行大屏的只读权限
当前页签:todo;最近点击:(无)
自定义页签
运维流程
10 月第二周巡检异常项整改确认
紧急采购会签
涉及预算调整,需本周内完成会签
事项按 source 归属页签;当前页签 key:mine
关键字检索
合同审批
供应商已盖章,等待法务与财务会签后归档
资源申请
模型训练节点内存扩容至 256G
权限申请
申请城市安全运行大屏的只读权限
合同审批
上半年框架合同归档编号补录
输入「合同 / 扩容 / 赵敏」等关键字体验过滤(停止输入 300ms 后生效);过滤后待办数:4 条
优先级
紧急变更审批
今晚 22:00 割接窗口,超时顺延一周
采购会签
涉及预算调整,需本周内完成会签
人事流程
待开通邮箱、门禁与内部系统权限
知识库
不急,本月内评审即可
urgent=危险红 + 「紧急」标;high=警告橙;normal=主色蓝;low=信息灰(level 缺省视为 normal)
超期标识
紧急报告提交
上周五截止,已进入超期催办
隐患督办
昨天截止,等待现场复核照片
行政流程
今日 18:00 截止
会议材料
后天评审会前提交
总结
月底前完成即可
截止早于今天(自然日)→ 红色「已超期 X 天」;今天及以后 → 灰色「截止 yyyy-mm-dd」
行内操作
合同审批
供应商已盖章,等待法务与财务会签后归档
紧急财务报销
差旅报销 3,860 元,附发票 6 张
资源申请
模型训练节点内存扩容至 256G
操作记录:(无)
分页
紧急运维流程
分页第 1 条事项的摘要说明
权限申请
分页第 2 条事项的摘要说明
采购会签
分页第 3 条事项的摘要说明
运维流程
分页第 4 条事项的摘要说明
紧急权限申请
分页第 5 条事项的摘要说明
上:默认 pageSize=5,过滤 / 切页签后自动回到第 1 页
紧急运维流程
不分页第 1 条事项的摘要说明
权限申请
不分页第 2 条事项的摘要说明
采购会签
不分页第 3 条事项的摘要说明
运维流程
不分页第 4 条事项的摘要说明
紧急权限申请
不分页第 5 条事项的摘要说明
采购会签
不分页第 6 条事项的摘要说明
运维流程
不分页第 7 条事项的摘要说明
权限申请
不分页第 8 条事项的摘要说明
紧急采购会签
不分页第 9 条事项的摘要说明
运维流程
不分页第 10 条事项的摘要说明
权限申请
不分页第 11 条事项的摘要说明
下:page-size=0 关闭分页,11 条全部展示
角标上报
待办中心(当前待办 0 条,随列表过滤实时更新)
合同审批
供应商已盖章,等待会签
紧急财务报销
差旅报销 3,860 元
自定义行内容
[隐患督办] 隐患整改闭环确认 整改进度 40% 发起人:周凯
[会议材料] 模型评审会材料准备 整改进度 70% 发起人:赵敏
[采购会签] 安全设备采购单会签 整改进度 10% 发起人:吴静
item 插槽收到 { item, index };页签 / 检索 / 分页能力不受影响
Props
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| items | BizTodoItem[] | [] | 事项数据(组件不含接口,业务侧拉取后回填) |
| tabs | BizTodoTab[] | [{key:'todo',name:'待办'},{key:'done',name:'已办'},{key:'initiated',name:'我发起'}] | 页签配置(key 与 item.source 对应) |
| v-model:active-tab | string | 'todo' | 激活页签 key |
| filterable | boolean | true | 关键字检索框(300ms 防抖) |
| page-size | number | 5 | 每页条数;0 不分页 |
| actions | BizTodoAction[] | [] | 行内操作按钮(confirm 非空先二次确认) |
| show-time | boolean | true | 展示创建时间 |
| show-applicant | boolean | true | 展示发起人 |
| loading | boolean | false | 加载中(3 行骨架) |
| empty-text | string | '暂无事项' | 空态文案 |
Events
| 事件名 | 参数 | 说明 |
|---|---|---|
| update:activeTab | (key: string) | 激活页签变化(v-model:active-tab) |
| tab-change | (key: string) | 页签切换(与 update:activeTab 同时触发) |
| action | (payload: { item: BizTodoItem; action: BizTodoAction }) | 行内操作确认后触发 |
| item-click | (item: BizTodoItem) | 点击事项标题 |
| badge-report | (count: number) | 待办(key='todo')条数变化上报(watch immediate) |
Slots
| 插槽名 | 说明 |
|---|---|
| item | 自定义整行内容,参数 { item, index } |
| actions | 自定义行内操作区,参数 { item }(item 插槽接管整行时不再生效) |
| empty | 自定义空态 |
| header | 顶部自定义内容(页签条之上) |
Expose
| 名称 | 类型 | 说明 |
|---|---|---|
| setActiveTab | (key: string) => void | 切换页签(与点击页签一致:触发 update:activeTab 与 tab-change) |
| getActiveTab | () => string | 当前激活页签 key |
| getPendingCount | () => number | 待办(source='todo')条数(含关键字过滤,与页签角标一致) |
| getFilteredItems | () => BizTodoItem[] | 当前页签 + 关键字过滤后的完整列表(分页切片前) |