feat: Refactor user detail and subscription management components

This commit is contained in:
web
2025-08-27 06:28:51 -07:00
parent 2f20ac95da
commit 973c06f0fa
31 changed files with 459 additions and 408 deletions
+19 -14
View File
@@ -2,6 +2,7 @@
import { useQuery } from '@tanstack/react-query';
import { useTranslations } from 'next-intl';
import { useSearchParams } from 'next/navigation';
import { useRef } from 'react';
import { Display } from '@/components/display';
@@ -17,8 +18,9 @@ import { cn } from '@workspace/ui/lib/utils';
import { formatDate } from '@workspace/ui/utils';
import { UserDetail } from '../user/user-detail';
export default function Page(props: any) {
export default function Page() {
const t = useTranslations('order');
const sp = useSearchParams();
const statusOptions = [
{ value: 1, label: t('status.1'), className: 'bg-orange-500' },
@@ -41,9 +43,17 @@ export default function Page(props: any) {
},
});
const initialFilters = {
search: sp.get('search') || undefined,
status: sp.get('status') || undefined,
subscribe_id: sp.get('subscribe_id') || undefined,
user_id: sp.get('user_id') || undefined,
};
return (
<ProTable<API.Order, any>
action={ref}
initialFilters={initialFilters}
columns={[
{
accessorKey: 'order_no',
@@ -146,7 +156,7 @@ export default function Page(props: any) {
if ([1, 3, 4].includes(row.getValue('status'))) {
return (
<Combobox<number, false>
placeholder='状态'
placeholder={t('status.0')}
value={row.original.status}
onChange={async (value) => {
await updateOrderStatus({
@@ -182,19 +192,14 @@ export default function Page(props: any) {
})),
},
{ key: 'search' },
].concat(
props.userId
? []
: [
{
key: 'user_id',
placeholder: `${t('user')} ID`,
options: undefined,
},
],
)}
{
key: 'user_id',
placeholder: `${t('user')} ID`,
options: undefined,
},
]}
request={async (pagination, filter) => {
const { data } = await getOrderList({ ...pagination, ...filter, user_id: props.userId });
const { data } = await getOrderList({ ...pagination, ...filter });
return {
list: data.data?.list || [],
total: data.data?.total || 0,