+
+ 总部直存立即生效,无需审核。最多 {STORE_PACKAGE_MAX_COUNT} 条。
+
+ {items.map((item, index) => (
+
+
+ 套餐 {index + 1}
+ {items.length > 1 ? (
+
+ ) : null}
+
+
+ updateAt(index, { name: e.target.value })}
+ style={{ width: '100%', padding: 8 }}
+ />
+ updateAt(index, { price: e.target.value })}
+ style={{ width: '100%', padding: 8 }}
+ />
+
+
+ ))}
+ {items.length < STORE_PACKAGE_MAX_COUNT ? (
+
+ ) : null}
+
+
+ );
+}
diff --git a/apps/admin-web/src/pages/StorePackageAuditsPage.tsx b/apps/admin-web/src/pages/StorePackageAuditsPage.tsx
new file mode 100644
index 0000000..d348321
--- /dev/null
+++ b/apps/admin-web/src/pages/StorePackageAuditsPage.tsx
@@ -0,0 +1,148 @@
+import { useEffect, useState } from 'react';
+import { Button, Input, Modal, Space, Table, Tag, Typography, message } from 'antd';
+import type { ColumnsType } from 'antd/es/table';
+import type { StorePackageChangeRequestDto } from '@dukang/shared-types';
+import { STORE_PACKAGE_CHANGE_STATUS_LABELS } from '@dukang/shared-types';
+import { request, type Paginated } from '../lib/api';
+import { fmtTime } from '../lib/constants';
+
+export default function StorePackageAuditsPage() {
+ const [loading, setLoading] = useState(false);
+ const [items, setItems] = useState