统一取消订单申请审核文案
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -582,7 +582,7 @@ export type WorkOrder = {
|
||||
/** 打手本人尚未点击查看或操作过该工单。 */
|
||||
isUnread?: boolean
|
||||
problemNote: string
|
||||
/** 问题单分组来源角标:平台标记 / 撤单审核中 / 反馈处理中 / 资料已更新。 */
|
||||
/** 问题单分组来源角标:平台标记 / 取消申请审核中 / 反馈处理中 / 资料已更新。 */
|
||||
problemMarked?: boolean
|
||||
pendingCancelRequest?: boolean
|
||||
pendingFeedback?: boolean
|
||||
|
||||
@@ -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: '接单分类',
|
||||
|
||||
@@ -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' },
|
||||
|
||||
Reference in New Issue
Block a user