Appearance
BizWorkOrder 工单中心
服务请求全生命周期容器:提交 → 受理分派 → 处理(对外回复 / 内部备注)→ 提交结果待确认 → 评价关单 → 重新打开;SLA 按紧急程度时限倒计时(临期橙标 / 超期红标)。与 BizTodoCenter(我收到的待办)、BizFeedbackPanel(单向意见反馈)互补,面向 IT 服务台 / 行政报修 / 客服 / 运维事件单等「服务请求」场景。
零接口可用:本地 data 注入即可跑通全流程;列表与动作级 request 按需注入。
基础用法
工单中心
4全部
1待受理
1处理中
1待确认
1已关单
零接口即可跑通全流程:点「详情」进入工单,按状态执行 受理分派 / 回复 / 提交结果 / 评价关单 / 重新打开。
分类 / 紧急程度 / SLA 定制
IT 服务台
2全部
1待受理
1处理中
0待确认
0已关单
categories 自定义分类与标签色;urgencies 覆盖文案;sla-hours 按紧急程度收紧时限(urgent 4 小时 → 1 小时前提交的投屏工单已进入临期橙标)。
受理分派与转派
分派与转派
2全部
1待受理
1处理中
0待确认
0已关单
待受理工单点「受理并分派」、处理中工单在详情里点「转派」,均弹出可搜索的候选人(带头像);dispatchRequest 注入后走服务端确认,失败会拦截本地流转。
处理记录双通道
处理记录
1全部
0待受理
1处理中
0待确认
0已关单
打开详情在输入区切换「对外回复 / 内部备注」发送——对外内容面向请求人,内部备注带警示色徽标沉淀排查线索;系统流转节点灰字穿插其间。
SLA 倒计时三态
SLA 监控
时限优先级:工单级 slaHours > sla-hours 映射 > 默认表;已关单工单 SLA 显示「—」。倒计时每 30 秒自动刷新。
确认关单与重新打开
关单与重开
1全部
0待受理
0处理中
1待确认
0已关单
打开详情:选星级 → 点「确认关单并提交评价」进入已关单(评价回显);若问题复现,点「重新打开」填写原因,工单回到处理中并追加灰字流转记录。
满意度评价定制
满意度评价
1全部
0待受理
0处理中
1待确认
0已关单
rating-tags 自定义评价标签(可多选);星级为必选校验;allow-reopen 关闭后已关单工单不再提供重开入口。
request 远程列表
远程工单列表
0全部
0待受理
0处理中
0待确认
0已关单
400ms 模拟延迟;搜索 / 状态筛选 / 翻页均走 request;新建标题含「失败」可演示 createRequest 报错(ElMessage.error 提示并停留表单)。
dialog 详情形态
弹窗详情形态
2全部
1待受理
1处理中
0待确认
0已关单
detail-variant 默认 drawer 抽屉,改为 dialog 后详情以居中弹窗打开(宽度经 dialog-width 定制)。
插槽扩展
插槽扩展
1全部
0待受理
1处理中
0待确认
0已关单
status-cell 接管状态列渲染(透传 record 与 meta);toolbar-extra / detail-header / comment-extra 分别注入工具栏、详情头部与记录项。
Props
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| title | string | '工单中心' | 面板标题 |
| data | BizWorkOrderRecord[] | — | 本地工单数据(与 request 二选一) |
| request | (query: BizWorkOrderQuery) => Promise<{ list: BizWorkOrderRecord[]; total: number }> | — | 远程列表实现,传入即远程模式 |
| categories | BizWorkOrderCategory[] | 故障报修 / 需求建议 / 使用咨询 / 投诉反馈 | 工单分类(label / tagType) |
| urgencies | { value: BizWorkOrderUrgency; label: string }[] | 低 / 一般 / 紧急 / 特急 | 紧急程度文案覆盖 |
| sla-hours | Partial<Record<BizWorkOrderUrgency, number>> | { critical: 2, urgent: 8, normal: 48, low: 120 } | SLA 时限映射(小时);工单级 slaHours 优先 |
| assignees | BizWorkOrderUser[] | — | 候选处理人(受理分派 / 转派弹窗) |
| current-user | BizWorkOrderUser | { id: 'me', name: '当前用户' } | 当前操作人(本地新建 / 回复作者) |
| allow-reopen | boolean | true | 允许关单后重新打开 |
| allow-rating | boolean | true | 待确认关单时采集满意度 |
| rating-tags | string[] | 响应及时 / 处理专业 / 态度友好 / 一次解决 | 满意度标签候选 |
| upload-request | (file: File) => Promise<string> | — | 新建工单附件上传(复用 BizUploadFile 契约,支持截图粘贴) |
| upload-limit | number | 6 | 附件数量上限 |
| create-request | (payload: BizWorkOrderCreatePayload) => Promise<void> | — | 新建实现:resolve 后本地入列 / 远程刷新;reject 提示失败停留表单 |
| dispatch-request | (id: string, assignee: BizWorkOrderUser) => Promise<void> | — | 受理分派 / 转派实现 |
| comment-request | (id: string, content: string, type: 'external' | 'internal') => Promise<void> | — | 回复 / 内部备注实现 |
| resolve-request | (id: string, content: string) => Promise<void> | — | 提交处理结果(进入待确认)实现 |
| confirm-request | (id: string, rating?: BizWorkOrderRating) => Promise<void> | — | 确认关单实现(含满意度) |
| reopen-request | (id: string, reason: string) => Promise<void> | — | 重新打开实现 |
| page-size | number | 10 | 单页条数(本地分页 / 远程入参) |
| show-status-filter | boolean | true | 状态筛选下拉 |
| show-stats | boolean | true | 头部状态统计条(远程模式按当前页统计) |
| detail-variant | 'drawer' | 'dialog' | 'drawer' | 详情形态 |
| dialog-width | string | number | 'min(720px, 94vw)' | dialog 详情宽度 |
| drawer-size | string | number | '640px' | drawer 详情宽度 |
Events
| 事件名 | 参数 | 说明 |
|---|---|---|
| create | (payload: BizWorkOrderCreatePayload) | 新建提交(先于 createRequest 抛出) |
| dispatch | (id: string, assignee: BizWorkOrderUser) | 受理分派 / 转派 |
| comment | (id: string, content: string, type: 'external' | 'internal') | 回复 / 内部备注 |
| resolve | (id: string, content: string) | 提交处理结果 |
| confirm | (id: string, rating?: BizWorkOrderRating) | 确认关单(allow-rating 关闭时无 rating) |
| reopen | (id: string, reason: string) | 重新打开 |
Slots
| 插槽名 | 说明 |
|---|---|
| toolbar-extra | 工具栏右侧扩展区 |
| status-cell | 状态列自定义(作用域:record / meta) |
| detail-header | 详情头部(作用域:record) |
| comment-extra | 处理记录项尾部(作用域:comment) |
Expose
| 属性/方法 | 说明 |
|---|---|
| refresh | 重新拉取列表(远程模式) |
| openCreate | 打开新建工单弹窗 |
| openDetail | (id: string) 打开指定工单详情 |
状态流转与 SLA 口径
- 状态机:
pending 待受理 → processing 处理中 → confirming 待确认 → closed 已关单;confirming / closed 均可重新打开(需原因)回到 processing,重开会清空既有满意度。 - SLA 时限:工单级
record.slaHours>sla-hours[urgency]> 默认表;剩余不足时限 25% 临期橙标,超时红标加粗,已关单显示「—」。倒计时每 30 秒刷新。 - 动作注入约定:所有
*-request均「resolve 成功才落地本地流转 / 触发远程刷新,reject 则 ElMessage 提示并停留」;未注入时纯本地流转并外抛对应事件。 - 远程模式注意:状态统计按当前页数据统计;动作成功后自动 refresh 当前页。