@@ -327,6 +327,9 @@ export default function OrdersPage() {
|
||||
const [searchParams] = useSearchParams();
|
||||
const initialOrderNo = searchParams.get('orderNo')?.trim() || '';
|
||||
const initialPromoCodeId = searchParams.get('promoCodeId')?.trim() || '';
|
||||
const initialCityId = searchParams.get('cityId')?.trim() || '';
|
||||
const initialCreatedFrom = searchParams.get('createdFrom')?.trim() || '';
|
||||
const initialCreatedTo = searchParams.get('createdTo')?.trim() || '';
|
||||
const initialStatusParam = searchParams.getAll('status').join(',');
|
||||
const initialStatuses = useMemo(
|
||||
() => initialStatusParam.split(',').map((s) => s.trim()).filter(Boolean),
|
||||
@@ -389,6 +392,18 @@ export default function OrdersPage() {
|
||||
}
|
||||
}, [form, initialOrderNo]);
|
||||
|
||||
useEffect(() => {
|
||||
const patch: { cityId?: string; dateRange?: [Dayjs, Dayjs] } = {};
|
||||
if (initialCityId) patch.cityId = initialCityId;
|
||||
if (
|
||||
/^\d{4}-\d{2}-\d{2}$/.test(initialCreatedFrom) &&
|
||||
/^\d{4}-\d{2}-\d{2}$/.test(initialCreatedTo)
|
||||
) {
|
||||
patch.dateRange = [dayjs(initialCreatedFrom), dayjs(initialCreatedTo)];
|
||||
}
|
||||
if (Object.keys(patch).length) form.setFieldsValue(patch);
|
||||
}, [form, initialCityId, initialCreatedFrom, initialCreatedTo]);
|
||||
|
||||
useEffect(() => {
|
||||
if (initialStatuses.length) {
|
||||
form.setFieldsValue({ status: initialStatuses });
|
||||
@@ -437,7 +452,7 @@ export default function OrdersPage() {
|
||||
const statusList = statuses.length ? statuses : initialStatuses;
|
||||
for (const status of statusList) qs.append('status', status);
|
||||
if (values.orderType) qs.set('orderType', values.orderType);
|
||||
if (values.cityId) qs.set('cityId', values.cityId);
|
||||
if (values.cityId || initialCityId) qs.set('cityId', values.cityId || initialCityId);
|
||||
if (values.receiverPhone) qs.set('receiverPhone', values.receiverPhone);
|
||||
if (values.userKeyword) qs.set('userKeyword', values.userKeyword);
|
||||
if (values.productKeyword) qs.set('productKeyword', values.productKeyword);
|
||||
@@ -445,14 +460,16 @@ export default function OrdersPage() {
|
||||
if (values.deliveryType) qs.set('deliveryType', values.deliveryType);
|
||||
if (values.assocPartnerAccountId) qs.set('assocPartnerAccountId', values.assocPartnerAccountId);
|
||||
if (initialPromoCodeId) qs.set('promoCodeId', initialPromoCodeId);
|
||||
if (values.dateRange?.[0]) qs.set('createdFrom', values.dateRange[0].format('YYYY-MM-DD'));
|
||||
if (values.dateRange?.[1]) qs.set('createdTo', values.dateRange[1].format('YYYY-MM-DD'));
|
||||
const createdFrom = values.dateRange?.[0]?.format('YYYY-MM-DD') || initialCreatedFrom;
|
||||
const createdTo = values.dateRange?.[1]?.format('YYYY-MM-DD') || initialCreatedTo;
|
||||
if (createdFrom) qs.set('createdFrom', createdFrom);
|
||||
if (createdTo) qs.set('createdTo', createdTo);
|
||||
const res = await request<Paginated<AdminOrderRow>>(`/admin/orders?${qs}`);
|
||||
setData(res);
|
||||
} finally {
|
||||
setLoading(false);
|
||||
}
|
||||
}, [form, page, pageSize, initialOrderNo, initialPromoCodeId, initialStatuses]);
|
||||
}, [form, page, pageSize, initialOrderNo, initialPromoCodeId, initialStatuses, initialCityId, initialCreatedFrom, initialCreatedTo]);
|
||||
|
||||
useEffect(() => {
|
||||
void load();
|
||||
|
||||
Reference in New Issue
Block a user