工单状态语义对齐:处理中改蓝、已完成/关闭文案、用户删除自动关闭
ci/woodpecker/tag/build Pipeline was successful

- 状态颜色:处理中由品牌青绿改为蓝色(adm-badge-sky),即
  待处理(黄)/处理中(蓝)/已完成(绿)/关闭(灰)。
- 状态文案:resolved「已解决」→「已完成」,closed「已关闭」→「关闭」;
  管理端列表筛选与详情按钮(标记已完成)同步。
- 用户删除自动关闭:DeleteTicket 软删除前先将 status 置为 closed,
  此后不可回复,管理端也不再计入未关闭待办。
- 回复权限维持:closed 阶段禁止回复,其余状态(待处理/处理中/已完成)
  用户均可在客户端回复(用户回复已完成工单会自动重开为待处理)。
This commit is contained in:
becomer
2026-10-17 00:03:30 +08:00
parent 486e7ede04
commit 57903d9b34
4 changed files with 20 additions and 14 deletions
+4 -4
View File
@@ -146,14 +146,14 @@ export function updateTicketStatus(ticketId: number, status: string) {
export const TICKET_STATUS_MAP: Record<string, string> = {
pending: '待处理',
processing: '处理中',
resolved: '已解决',
closed: '已关闭',
resolved: '已完成',
closed: '关闭',
}
/** 工单状态颜色映射 */
/** 工单状态颜色映射:待处理=黄 / 处理中=蓝 / 已完成=绿 / 关闭=灰 */
export const TICKET_STATUS_COLOR: Record<string, string> = {
pending: 'adm-badge-amber',
processing: 'adm-badge-brand',
processing: 'adm-badge-sky',
resolved: 'adm-badge-green',
closed: 'adm-badge-gray',
}
@@ -134,14 +134,14 @@ async function changeStatus(status: string) {
class="h-8 px-3.5 rounded-full text-xs font-semibold adm-btn-success hover:brightness-105"
@click="changeStatus('resolved')"
>
标记已解决
标记已完成
</button>
<button
v-if="ticket.status !== 'closed' && ticket.status !== 'resolved'"
class="h-8 px-3.5 rounded-full text-xs font-semibold bg-green-50 text-green-700 hover:bg-green-100"
@click="changeStatus('resolved')"
>
直接解决
标记已完成
</button>
<button
v-if="ticket.status !== 'closed'"
+2 -2
View File
@@ -36,8 +36,8 @@ const statusOptions = [
{ value: '', label: '全部' },
{ value: 'pending', label: '待处理' },
{ value: 'processing', label: '处理中' },
{ value: 'resolved', label: '已解决' },
{ value: 'closed', label: '已关闭' },
{ value: 'resolved', label: '已完成' },
{ value: 'closed', label: '关闭' },
]
onMounted(async () => {