打手端流转记录改为后台配置开关控制,默认关闭
- 新增 WORKER_ORDER_TIMELINE_VISIBLE 配置(默认 false):打手端订单详情不展示流转记录 - 打手端 events 接口按开关拦截(关闭时 403) - profile 接口下发 orderTimelineVisible 供前端判断 - 管理端流转记录不受影响,始终可见
This commit is contained in:
@@ -151,6 +151,7 @@ PfQTPNA++KsXtwRX9M6Re3vkTDRsutIIWKtj8jqhUbbYS3vzS8GJnAWavUFVkR15
|
|||||||
cooldownSeconds: 60,
|
cooldownSeconds: 60,
|
||||||
dailyLimit: 10,
|
dailyLimit: 10,
|
||||||
},
|
},
|
||||||
|
orderTimelineVisible: false,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -165,6 +165,7 @@ export const ENV_OVERRIDES: readonly EnvOverride[] = [
|
|||||||
integerEnv('WORKER_SMS_CODE_TTL_SECONDS', ['worker', 'sms', 'codeTtlSeconds']),
|
integerEnv('WORKER_SMS_CODE_TTL_SECONDS', ['worker', 'sms', 'codeTtlSeconds']),
|
||||||
integerEnv('WORKER_SMS_COOLDOWN_SECONDS', ['worker', 'sms', 'cooldownSeconds']),
|
integerEnv('WORKER_SMS_COOLDOWN_SECONDS', ['worker', 'sms', 'cooldownSeconds']),
|
||||||
integerEnv('WORKER_SMS_DAILY_LIMIT', ['worker', 'sms', 'dailyLimit']),
|
integerEnv('WORKER_SMS_DAILY_LIMIT', ['worker', 'sms', 'dailyLimit']),
|
||||||
|
booleanEnv('WORKER_ORDER_TIMELINE_VISIBLE', ['worker', 'orderTimelineVisible']),
|
||||||
integerEnv('KUAISHOU_FEIFEI_TIMEOUT_MS', ['platforms', 'kuaishouFeifei', 'timeoutMs']),
|
integerEnv('KUAISHOU_FEIFEI_TIMEOUT_MS', ['platforms', 'kuaishouFeifei', 'timeoutMs']),
|
||||||
stringEnv('KUAISHOU_FEIFEI_NOTIFY_URL', ['platforms', 'kuaishouFeifei', 'notifyUrl']),
|
stringEnv('KUAISHOU_FEIFEI_NOTIFY_URL', ['platforms', 'kuaishouFeifei', 'notifyUrl']),
|
||||||
kuaishouFeifeiProductRulesEnv('KUAISHOU_FEIFEI_PRODUCT_RULES_JSON', [
|
kuaishouFeifeiProductRulesEnv('KUAISHOU_FEIFEI_PRODUCT_RULES_JSON', [
|
||||||
|
|||||||
@@ -528,6 +528,7 @@ export async function getWorkerProfile(session: WorkerSession) {
|
|||||||
},
|
},
|
||||||
levelProgress,
|
levelProgress,
|
||||||
financeConfig,
|
financeConfig,
|
||||||
|
orderTimelineVisible: runtimeConfig.worker.orderTimelineVisible === true,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1037,6 +1038,12 @@ export async function listWorkerMyOrders(query: JsonObject = {}, session: Worker
|
|||||||
|
|
||||||
export async function getWorkerMyOrderEvents(workOrderId: number | string, session: WorkerSession) {
|
export async function getWorkerMyOrderEvents(workOrderId: number | string, session: WorkerSession) {
|
||||||
requireActiveWorkerSession(session)
|
requireActiveWorkerSession(session)
|
||||||
|
if (runtimeConfig.worker.orderTimelineVisible !== true) {
|
||||||
|
throw createHttpError('流转记录暂未对打手开放', {
|
||||||
|
statusCode: 403,
|
||||||
|
errorCode: 'work_order_events_worker_disabled',
|
||||||
|
})
|
||||||
|
}
|
||||||
const workOrder = await getRequiredWorkOrder(workOrderId)
|
const workOrder = await getRequiredWorkOrder(workOrderId)
|
||||||
const workerId = Number(session.workerId)
|
const workerId = Number(session.workerId)
|
||||||
const sharingShare = await getWorkOrderShare(workOrder.id, workerId)
|
const sharingShare = await getWorkOrderShare(workOrder.id, workerId)
|
||||||
|
|||||||
@@ -143,6 +143,8 @@ export type RuntimeConfig = {
|
|||||||
cooldownSeconds: number
|
cooldownSeconds: number
|
||||||
dailyLimit: number
|
dailyLimit: number
|
||||||
}
|
}
|
||||||
|
/** 打手端订单详情是否展示流转记录(默认关闭,仅后台可见) */
|
||||||
|
orderTimelineVisible: boolean
|
||||||
}
|
}
|
||||||
cors: {
|
cors: {
|
||||||
allowedOrigins: string[]
|
allowedOrigins: string[]
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ import ImagePreviewList from '@/components/files/ImagePreviewList'
|
|||||||
import ImageUpload from '@/components/files/ImageUpload'
|
import ImageUpload from '@/components/files/ImageUpload'
|
||||||
import {
|
import {
|
||||||
fetchWorkerMyOrders,
|
fetchWorkerMyOrders,
|
||||||
|
fetchWorkerProfile,
|
||||||
saveWorkerAcceptanceDraft,
|
saveWorkerAcceptanceDraft,
|
||||||
saveWorkerOrderNote,
|
saveWorkerOrderNote,
|
||||||
submitWorkerAcceptance,
|
submitWorkerAcceptance,
|
||||||
@@ -191,6 +192,14 @@ export default function WorkerOrdersPage() {
|
|||||||
const pagination = ordersQuery.data?.data.pagination
|
const pagination = ordersQuery.data?.data.pagination
|
||||||
const orders = ordersQuery.data?.data.items || []
|
const orders = ordersQuery.data?.data.items || []
|
||||||
|
|
||||||
|
// 流转记录对打手是否可见(后台配置开关,默认关闭)
|
||||||
|
const profileQuery = useQuery({
|
||||||
|
queryKey: ['worker-profile'],
|
||||||
|
queryFn: () => fetchWorkerProfile(),
|
||||||
|
retry: false,
|
||||||
|
})
|
||||||
|
const orderTimelineVisible = profileQuery.data?.data.orderTimelineVisible === true
|
||||||
|
|
||||||
const overviewQuery = useQuery({
|
const overviewQuery = useQuery({
|
||||||
queryKey: ['worker-my-orders-overview'],
|
queryKey: ['worker-my-orders-overview'],
|
||||||
queryFn: async () => {
|
queryFn: async () => {
|
||||||
@@ -1104,13 +1113,14 @@ export default function WorkerOrdersPage() {
|
|||||||
</Card>
|
</Card>
|
||||||
) : null}
|
) : null}
|
||||||
|
|
||||||
|
{orderTimelineVisible ? (
|
||||||
<Card title="流转记录" size="small">
|
<Card title="流转记录" size="small">
|
||||||
<WorkOrderEventTimeline orderId={detailOrder.workOrderId} viewer="worker" />
|
<WorkOrderEventTimeline orderId={detailOrder.workOrderId} viewer="worker" />
|
||||||
</Card>
|
</Card>
|
||||||
|
) : null}
|
||||||
</div>
|
</div>
|
||||||
) : null}
|
) : null}
|
||||||
</Drawer>
|
</Drawer>
|
||||||
|
|
||||||
<Modal
|
<Modal
|
||||||
title={`订单备注 · ${getDisplayOrderNo(noteOrder)}`}
|
title={`订单备注 · ${getDisplayOrderNo(noteOrder)}`}
|
||||||
open={Boolean(noteOrder)}
|
open={Boolean(noteOrder)}
|
||||||
|
|||||||
@@ -111,6 +111,8 @@ export type WorkerProfileResponse = {
|
|||||||
summary: WorkerProfileSummary
|
summary: WorkerProfileSummary
|
||||||
levelProgress: WorkerLevelProgress | null
|
levelProgress: WorkerLevelProgress | null
|
||||||
financeConfig: WorkerFinanceConfig
|
financeConfig: WorkerFinanceConfig
|
||||||
|
/** 打手端订单详情是否展示流转记录(后台配置开关,默认关闭) */
|
||||||
|
orderTimelineVisible?: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
export type WorkerLevel = {
|
export type WorkerLevel = {
|
||||||
|
|||||||
Reference in New Issue
Block a user