merge: 同步 main 最新到 dev(接单平台店铺筛选)
This commit is contained in:
@@ -3,6 +3,7 @@ import {
|
||||
listConsignmentInventoriesByIds,
|
||||
listWorkOrderEventsByOrderId,
|
||||
listWorkOrderSharesByOrderIds,
|
||||
listWorkOrderShopNames,
|
||||
listWorkOrders,
|
||||
sumPendingUnfreezeByOrderIds,
|
||||
type ConsignmentInventoryRow,
|
||||
@@ -49,6 +50,7 @@ function buildWorkOrderStatisticsCacheKey(filters: JsonObject): string {
|
||||
filters.status || '',
|
||||
filters.workOrderId || 0,
|
||||
filters.keyword || '',
|
||||
filters.shopNames || [],
|
||||
filters.workerSharingId || 0,
|
||||
filters.workerId || 0,
|
||||
filters.workerLevelIds || [],
|
||||
@@ -92,6 +94,7 @@ export function resolveAdminWorkOrderListFilters(query: JsonObject = {}): ListIn
|
||||
workOrderId: 0,
|
||||
categoryId: 0,
|
||||
keyword,
|
||||
shopNames: [],
|
||||
workerSharingId: 0,
|
||||
workerLevelIds: [],
|
||||
vipEvidencePending: false,
|
||||
@@ -106,6 +109,8 @@ export function resolveAdminWorkOrderListFilters(query: JsonObject = {}): ListIn
|
||||
.map(normalizeOptionalId)
|
||||
.filter((levelId): levelId is number => levelId !== null)
|
||||
const statuses = normalizeStatuses(query.status)
|
||||
// 店铺来自 orders.shop_name,前端按逗号拼串传参,复用同一套数组解析(去重 + trim)。
|
||||
const shopNames = normalizeStatuses(query.shopNames ?? query.shop_names)
|
||||
const vipEvidencePending = normalizeBoolean(query.vipEvidencePending, false)
|
||||
const createdFrom = normalizeDateString(query.createdFrom)
|
||||
const createdTo = normalizeDateString(query.createdTo)
|
||||
@@ -116,6 +121,7 @@ export function resolveAdminWorkOrderListFilters(query: JsonObject = {}): ListIn
|
||||
workOrderId,
|
||||
categoryId,
|
||||
keyword,
|
||||
shopNames,
|
||||
workerSharingId: workerId,
|
||||
workerLevelIds,
|
||||
vipEvidencePending,
|
||||
@@ -182,3 +188,13 @@ export async function listAdminWorkOrders(query: JsonObject = {}) {
|
||||
statistics,
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 后台工单「店铺」筛选的下拉候选。
|
||||
*
|
||||
* 固定全量去重(不随状态/日期等筛选变化),下拉里带搜索框由前端过滤即可;
|
||||
* 数据口径见 repository 的 listWorkOrderShopNames(orders.shop_name,精确匹配)。
|
||||
*/
|
||||
export async function listAdminWorkOrderShopNames(): Promise<{ items: string[] }> {
|
||||
return { items: await listWorkOrderShopNames() }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user