统一取消订单申请审核文案

This commit is contained in:
yml2213
2026-08-23 18:13:37 +08:00
parent 75d94140ed
commit 003c3e9208
14 changed files with 48 additions and 30 deletions
@@ -0,0 +1,6 @@
-- 062_worker_cancel_request_wording.sql —— 统一后台权限中的取消申请文案。
UPDATE admin_permissions
SET
permission_name = '审核取消订单申请',
description = '审核打手提交的取消订单申请'
WHERE permission_key = 'worker_cancel_request.review';
@@ -201,8 +201,8 @@ async function applyWorkerCancelRequestPenaltyWithClient(
return { levelBeforeId, levelChanged: true, accountDisabled: false }
}
/** 打手提交单申请;待审核期间订单与押金均保持原状。 */
/** 批量查询打手在各工单上待审核的单申请,用于订单角标与问题单归类。 */
/** 打手提交取消订单申请;待审核期间订单与押金均保持原状。 */
/** 批量查询打手在各工单上待审核的取消订单申请,用于订单角标与问题单归类。 */
export async function getPendingCancelRequestOrderIds(
workerId: number,
workOrderIds: number[],
@@ -503,7 +503,7 @@ export async function reviewWorkerCancelRequest(input: {
`INSERT INTO worker_wallet_ledgers (
worker_id, ledger_type, amount, balance_after, frozen_after,
related_work_order_id, note, payload_json, created_at
) VALUES ($1, 'deposit_release', $2, $3, $4, $5, '单申请审核通过退还拼单押金', $6::jsonb, $7)`,
) VALUES ($1, 'deposit_release', $2, $3, $4, $5, '取消订单申请审核通过退还拼单押金', $6::jsonb, $7)`,
[
request.worker_id,
releasedDepositAmount,
@@ -583,8 +583,8 @@ export async function reviewWorkerCancelRequest(input: {
nextFrozen,
request.work_order_id,
forfeitGiftDeposit
? '单申请审核通过扣除押金(已确认加好友)'
: '单申请审核通过退还押金',
? '取消订单申请审核通过扣除押金(已确认加好友)'
: '取消订单申请审核通过退还押金',
JSON.stringify({
requestId: request.id,
reason: request.reason,
@@ -15,7 +15,7 @@ router.get(
requireAdminPermission('worker_cancel_request.review'),
createJsonHandler((req) => listAdminWorkerCancelRequests(req.query), {
successMessage: 'ok',
errorMessage: '读取单申请失败',
errorMessage: '读取取消订单申请失败',
scope: '[admin/worker-platform/cancel-requests]',
}),
)
@@ -59,8 +59,8 @@ router.post(
req.adminSession?.username || '',
),
{
successMessage: '单申请已审核',
errorMessage: '审核单申请失败',
successMessage: '取消订单申请已审核',
errorMessage: '审核取消订单申请失败',
scope: '[admin/worker-platform/cancel-requests/:requestId/review]',
audit: (req, data) => ({
action: 'worker_cancel_request_reviewed',
@@ -110,7 +110,7 @@ export async function createWorkerCancelRequestAdminNotification(input: {
entityType: 'worker_cancel_request',
entityId: input.requestId,
dedupeKey: `worker_cancel_request:${input.requestId}`,
title: '有打手单申请待审核',
title: '有打手取消订单申请待审核',
body: [
`订单:${input.platformOrderId || input.workOrderId}`,
`商品:${input.productName || '-'}`,
@@ -41,19 +41,19 @@ export async function reviewAdminWorkerCancelRequest(
now: nowIso(),
})
if (result.failureReason === 'request_not_found') {
throw createHttpError('单申请不存在', {
throw createHttpError('取消订单申请不存在', {
statusCode: 404,
errorCode: 'worker_cancel_request_not_found',
})
}
if (result.failureReason === 'request_not_pending') {
throw createHttpError('该单申请已审核,请刷新后重试', {
throw createHttpError('该取消订单申请已审核,请刷新后重试', {
statusCode: 409,
errorCode: 'worker_cancel_request_not_pending',
})
}
if (!result.request || !result.order) {
throw createHttpError('订单状态已变化,无法审核该单申请', {
throw createHttpError('订单状态已变化,无法审核该取消订单申请', {
statusCode: 409,
errorCode: 'worker_cancel_request_target_changed',
})
@@ -98,7 +98,7 @@ export async function listWorkerMyOrders(query: JsonObject = {}, session: Worker
noteByOrderId.get(workOrderId) || '',
viewedAtByOrderId.get(workOrderId) || null,
),
// 问题单分组内的来源角标:平台标记 / 撤单审核中 / 反馈处理中。
// 问题单分组内的来源角标:平台标记 / 取消申请审核中 / 反馈处理中。
problemMarked: item.status === 'problem',
pendingCancelRequest: pendingCancelOrderIds.has(workOrderId),
pendingFeedback: pendingFeedbackOrderIds.has(workOrderId),
@@ -123,17 +123,17 @@ export function formatWorkOrderEvent(event: WorkOrderEvent): EventNodeStyle {
return { title: '打手取消接单', color: 'red' }
case 'cancel_request_submitted':
return {
title: note ? `打手提交单申请:${note}` : '打手提交单申请,等待客服审核',
title: note ? `打手提交取消订单申请:${note}` : '打手提交取消订单申请,等待客服审核',
color: 'orange',
}
case 'cancel_request_rejected':
return {
title: note ? `客服驳回单申请:${note}` : '客服驳回单申请',
title: note ? `客服驳回取消订单申请:${note}` : '客服驳回取消订单申请',
color: 'green',
}
case 'cancel_request_approved':
return {
title: note ? `客服同意单申请:${note}` : '客服同意单申请,订单已回到大厅',
title: note ? `客服同意取消订单申请:${note}` : '客服同意取消订单申请,订单已回到大厅',
color: 'red',
}
case 'worker_feedback_submitted':
@@ -78,13 +78,21 @@ export default function AdminWorkerPlatformPage() {
isSupport
? [
{ key: 'orders', label: '接单工单', children: <WorkOrdersPanel /> },
{ key: 'cancel-requests', label: '撤单审核', children: <CancelRequestsPanel /> },
{
key: 'cancel-requests',
label: '取消申请审核',
children: <CancelRequestsPanel />,
},
{ key: 'feedbacks', label: '问题反馈', children: <FeedbacksPanel /> },
afterSalesTab,
]
: [
{ key: 'orders', label: '接单工单', children: <WorkOrdersPanel /> },
{ key: 'cancel-requests', label: '撤单审核', children: <CancelRequestsPanel /> },
{
key: 'cancel-requests',
label: '取消申请审核',
children: <CancelRequestsPanel />,
},
{ key: 'feedbacks', label: '问题反馈', children: <FeedbacksPanel /> },
afterSalesTab,
...(isAdmin
@@ -71,12 +71,12 @@ export default function CancelRequestsPanel() {
: result.levelChanged
? ',该打手已降一级 VIP'
: ''
message.success(`${result.approved ? '已同意' : '已驳回'}单申请${resultText}`)
message.success(`${result.approved ? '已同意' : '已驳回'}取消订单申请${resultText}`)
setReviewTarget(null)
form.resetFields()
await refreshAll()
} catch (error) {
message.error(error instanceof Error ? error.message : '审核单申请失败')
message.error(error instanceof Error ? error.message : '审核取消订单申请失败')
}
}
@@ -135,7 +135,7 @@ export default function CancelRequestsPanel() {
return (
<>
<Card
title={`待审核单申请(${requestsQuery.data?.data.items.length || 0}`}
title={`待审核取消订单申请(${requestsQuery.data?.data.items.length || 0}`}
extra={
<Button
icon={<ReloadOutlined />}
@@ -154,12 +154,12 @@ export default function CancelRequestsPanel() {
dataSource={requestsQuery.data?.data.items || []}
columns={columns}
pagination={false}
locale={{ emptyText: '暂无待审核单申请' }}
locale={{ emptyText: '暂无待审核取消订单申请' }}
scroll={{ x: 900 }}
/>
</Card>
<Modal
title={reviewTarget?.approved ? '同意单申请' : '驳回单申请'}
title={reviewTarget?.approved ? '同意取消订单申请' : '驳回取消订单申请'}
open={Boolean(reviewTarget)}
onCancel={() => {
setReviewTarget(null)
@@ -24,7 +24,11 @@ const notificationEventRows: NotificationEventRow[] = [
{ key: 'acceptance_submitted', name: '提交验收', description: '打手提交订单验收资料' },
{ key: 'acceptance_reminded', name: '催验收', description: '打手在验收后催促处理' },
{ key: 'material_required', name: '待补资料工单', description: '新工单等待后台补充资料' },
{ key: 'cancel_requested', name: '撤单申请', description: '打手提交新的撤单申请,等待客服审核' },
{
key: 'cancel_requested',
name: '取消订单申请',
description: '打手提交新的取消订单申请,等待客服审核',
},
{ key: 'feedback_submitted', name: '问题反馈', description: '打手反馈客户资料或订单处理问题' },
]
@@ -77,7 +77,7 @@ export function getOrderFlagTags(order: WorkOrder) {
const flags: Array<{ key: string; label: string; color: string }> = []
if (order.problemMarked) flags.push({ key: 'problem', label: '平台标记', color: 'red' })
if (order.pendingCancelRequest)
flags.push({ key: 'cancel', label: '撤单审核中', color: 'orange' })
flags.push({ key: 'cancel', label: '取消申请审核中', color: 'orange' })
if (order.pendingFeedback) flags.push({ key: 'feedback', label: '反馈处理中', color: 'orange' })
if (order.materialUpdated) flags.push({ key: 'material', label: '资料已更新', color: 'blue' })
return flags
+1 -1
View File
@@ -582,7 +582,7 @@ export type WorkOrder = {
/** 打手本人尚未点击查看或操作过该工单。 */
isUnread?: boolean
problemNote: string
/** 问题单分组来源角标:平台标记 / 撤单审核中 / 反馈处理中 / 资料已更新。 */
/** 问题单分组来源角标:平台标记 / 取消申请审核中 / 反馈处理中 / 资料已更新。 */
problemMarked?: boolean
pendingCancelRequest?: boolean
pendingFeedback?: boolean
+2 -2
View File
@@ -29,7 +29,7 @@ export function formatAuditAction(action: string) {
platform_shop_config_updated: '更新店铺配置',
platform_fulfillment_config_updated: '更新履约配置',
worker_finance_request_reviewed: '资金申请审核',
worker_cancel_request_reviewed: '单申请审核',
worker_cancel_request_reviewed: '取消订单申请审核',
worker_reviewed: '打手账号审核',
worker_wallet_credited: '打手钱包手动加款',
worker_password_reset: '重置打手密码',
@@ -80,7 +80,7 @@ export function formatAuditTargetType(targetType: string) {
work_order: '接单工单',
work_order_share: '拼单份额',
worker_finance_request: '资金申请',
worker_cancel_request: '单申请',
worker_cancel_request: '取消订单申请',
after_sales_case: '售后问题单',
worker_level: '接单等级',
work_category: '接单分类',
+2 -2
View File
@@ -36,7 +36,7 @@ export const adminUserStatusOptions = [
export const adminAuditActionOptions = [
{ label: '资金申请审核(通过/拒绝)', value: 'worker_finance_request_reviewed' },
{ label: '单申请审核', value: 'worker_cancel_request_reviewed' },
{ label: '取消订单申请审核', value: 'worker_cancel_request_reviewed' },
{ label: '打手账号审核', value: 'worker_reviewed' },
{ label: '打手钱包手动加款', value: 'worker_wallet_credited' },
{ label: '重置打手密码', value: 'worker_password_reset' },
@@ -86,7 +86,7 @@ export const adminAuditActionOptions = [
export const adminAuditTargetTypeOptions = [
{ label: '资金申请', value: 'worker_finance_request' },
{ label: '单申请', value: 'worker_cancel_request' },
{ label: '取消订单申请', value: 'worker_cancel_request' },
{ label: '打手', value: 'worker' },
{ label: '接单工单', value: 'work_order' },
{ label: '拼单份额', value: 'work_order_share' },