feat(cost-center): 成本中心与商品映射开发草案 (含文档与订单页调整 WIP)
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -55,15 +55,6 @@ type OrderFilterForm = {
|
||||
dateRange?: unknown
|
||||
}
|
||||
|
||||
/** 默认展示近 7 天(含今天)。 */
|
||||
function resolveDefaultOrderDateRange() {
|
||||
const today = dayjs()
|
||||
return {
|
||||
dateFrom: today.subtract(6, 'day').format('YYYY-MM-DD'),
|
||||
dateTo: today.format('YYYY-MM-DD'),
|
||||
}
|
||||
}
|
||||
|
||||
export default function AdminOrdersPage() {
|
||||
const navigate = useNavigate()
|
||||
const { message } = App.useApp()
|
||||
@@ -72,20 +63,6 @@ export default function AdminOrdersPage() {
|
||||
const page = Number(searchParams.get('page') || 1) || 1
|
||||
const pageSize = resolveAdminPageSize(searchParams.get('pageSize'), ADMIN_DEFAULT_PAGE_SIZE)
|
||||
|
||||
// 首次进入(仅有分页参数)时写入默认近 7 天,避免一把拉出全库。
|
||||
useEffect(() => {
|
||||
const meaningfulKeys = [...searchParams.keys()].filter(
|
||||
(key) => key !== 'page' && key !== 'pageSize',
|
||||
)
|
||||
if (meaningfulKeys.length > 0) {
|
||||
return
|
||||
}
|
||||
const { dateFrom, dateTo } = resolveDefaultOrderDateRange()
|
||||
setSearchParams(cleanParams({ page: 1, pageSize, dateFrom, dateTo }), { replace: true })
|
||||
// 仅首屏引导默认日期,避免与后续筛选互相打架。
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, [])
|
||||
|
||||
const filters = {
|
||||
keyword: searchParams.get('keyword') || '',
|
||||
provider: searchParams.get('provider') || '',
|
||||
@@ -111,17 +88,9 @@ export default function AdminOrdersPage() {
|
||||
],
|
||||
)
|
||||
|
||||
// 等待默认日期写入 URL 后再请求,避免首屏无日期打出全库。
|
||||
const hasBootstrappedFilters =
|
||||
Boolean(filters.dateFrom && filters.dateTo) ||
|
||||
Boolean(filters.keyword) ||
|
||||
searchParams.get('allTime') === '1' ||
|
||||
Boolean(filters.provider || filters.executorKey || filters.payStatus || filters.taskStatus)
|
||||
|
||||
const query = useQuery({
|
||||
queryKey: ['admin-orders', queryParams],
|
||||
queryFn: () => fetchAdminOrders(queryParams),
|
||||
enabled: hasBootstrappedFilters,
|
||||
})
|
||||
const data = query.data?.data
|
||||
|
||||
@@ -410,7 +379,6 @@ export default function AdminOrdersPage() {
|
||||
// 有关键词时不强制日期(后端也会忽略日期);清空日期且无关键词则查全部时间。
|
||||
const dateFrom = rawFrom || ''
|
||||
const dateTo = rawTo || ''
|
||||
const allTime = !dateFrom && !dateTo && !keyword ? '1' : ''
|
||||
|
||||
setSearchParams(
|
||||
cleanParams({
|
||||
@@ -418,7 +386,6 @@ export default function AdminOrdersPage() {
|
||||
keyword,
|
||||
dateFrom,
|
||||
dateTo,
|
||||
allTime,
|
||||
page: 1,
|
||||
pageSize,
|
||||
}),
|
||||
@@ -426,16 +393,15 @@ export default function AdminOrdersPage() {
|
||||
}
|
||||
|
||||
function resetFilters() {
|
||||
const { dateFrom, dateTo } = resolveDefaultOrderDateRange()
|
||||
form.setFieldsValue({
|
||||
keyword: undefined,
|
||||
provider: undefined,
|
||||
executorKey: undefined,
|
||||
payStatus: undefined,
|
||||
taskStatus: undefined,
|
||||
dateRange: [dayjs(dateFrom), dayjs(dateTo)],
|
||||
dateRange: undefined,
|
||||
})
|
||||
setSearchParams(cleanParams({ page: 1, pageSize, dateFrom, dateTo }))
|
||||
setSearchParams(cleanParams({ page: 1, pageSize }))
|
||||
}
|
||||
|
||||
const currentSegmentedProvider = filters.provider || ''
|
||||
@@ -537,7 +503,7 @@ export default function AdminOrdersPage() {
|
||||
<Card>
|
||||
<Table<AdminOrderListItem>
|
||||
rowKey="orderId"
|
||||
loading={query.isLoading || query.isFetching || !hasBootstrappedFilters}
|
||||
loading={query.isLoading || query.isFetching}
|
||||
columns={columns}
|
||||
dataSource={data?.items || []}
|
||||
scroll={{ x: 960 }}
|
||||
@@ -549,7 +515,6 @@ export default function AdminOrdersPage() {
|
||||
setSearchParams(
|
||||
cleanParams({
|
||||
...filters,
|
||||
allTime: searchParams.get('allTime') || '',
|
||||
page: nextPage,
|
||||
pageSize: nextPageSize,
|
||||
}),
|
||||
|
||||
Reference in New Issue
Block a user