diff --git a/apps/h5-partner/src/PartnerAppRoutes.tsx b/apps/h5-partner/src/PartnerAppRoutes.tsx
index 89f1b55..79c7c90 100644
--- a/apps/h5-partner/src/PartnerAppRoutes.tsx
+++ b/apps/h5-partner/src/PartnerAppRoutes.tsx
@@ -55,7 +55,7 @@ function SubAccountRoutes() {
} />
} />
- } />
+ } />
);
}
diff --git a/apps/h5-partner/src/lib/partnerAccess.ts b/apps/h5-partner/src/lib/partnerAccess.ts
index efcbe32..c2093ea 100644
--- a/apps/h5-partner/src/lib/partnerAccess.ts
+++ b/apps/h5-partner/src/lib/partnerAccess.ts
@@ -9,7 +9,7 @@ export function isSubAccount(account: PartnerMe | null | undefined): boolean {
}
export function partnerHomePath(account: PartnerMe | null | undefined): string {
- return isSubAccount(account) ? '/stores/new' : '/';
+ return isSubAccount(account) ? '/stores/new?step=1' : '/';
}
export const SUB_ACCOUNT_ALLOWED_PREFIXES = ['/stores', '/login'];
diff --git a/apps/h5-partner/src/lib/storeDraft.ts b/apps/h5-partner/src/lib/storeDraft.ts
index 783ec1e..47bf3ab 100644
--- a/apps/h5-partner/src/lib/storeDraft.ts
+++ b/apps/h5-partner/src/lib/storeDraft.ts
@@ -23,6 +23,10 @@ export type StoreDraft = {
export const STORE_DRAFT_KEY = 'partner_store_draft_v2';
+export function storeDraftKey(accountId?: string): string {
+ return accountId ? `${STORE_DRAFT_KEY}_${accountId}` : STORE_DRAFT_KEY;
+}
+
export const defaultStoreForm = (): StoreDraftForm => ({
regionCodes: [],
cityId: '',
@@ -72,9 +76,17 @@ function normalizeForm(raw: Record): StoreDraftForm {
};
}
-export function loadStoreDraft(): StoreDraft | null {
+export function loadStoreDraft(accountId?: string): StoreDraft | null {
try {
- const raw = localStorage.getItem(STORE_DRAFT_KEY);
+ const key = storeDraftKey(accountId);
+ let raw = localStorage.getItem(key);
+ if (!raw && accountId) {
+ raw = localStorage.getItem(STORE_DRAFT_KEY);
+ if (raw) {
+ localStorage.setItem(key, raw);
+ localStorage.removeItem(STORE_DRAFT_KEY);
+ }
+ }
if (!raw) return null;
const parsed = JSON.parse(raw) as Record;
if (parsed.form && typeof parsed.form === 'object') {
@@ -89,12 +101,12 @@ export function loadStoreDraft(): StoreDraft | null {
}
}
-export function saveStoreDraft(draft: StoreDraft) {
- localStorage.setItem(STORE_DRAFT_KEY, JSON.stringify(draft));
+export function saveStoreDraft(draft: StoreDraft, accountId?: string) {
+ localStorage.setItem(storeDraftKey(accountId), JSON.stringify(draft));
}
-export function clearStoreDraft() {
- localStorage.removeItem(STORE_DRAFT_KEY);
+export function clearStoreDraft(accountId?: string) {
+ localStorage.removeItem(storeDraftKey(accountId));
}
const PHONE_RE = /^1\d{10}$/;
diff --git a/apps/h5-partner/src/pages/StoreCreatePage.tsx b/apps/h5-partner/src/pages/StoreCreatePage.tsx
index 48018cb..24802c4 100644
--- a/apps/h5-partner/src/pages/StoreCreatePage.tsx
+++ b/apps/h5-partner/src/pages/StoreCreatePage.tsx
@@ -31,6 +31,8 @@ import { isWechatEnv, weixinSdk } from '../lib/weixin';
import { stripOAuthParamsFromLocation } from '@dukang/weixin-sdk';
+import { usePartnerSession } from '../contexts/PartnerSessionContext';
+
import {
clearStoreDraft,
@@ -77,9 +79,13 @@ export default function StoreCreatePage() {
const navigate = useNavigate();
+ const { account } = usePartnerSession();
+
+ const accountId = account?.id;
+
const [params, setParams] = useSearchParams();
- const saved = loadStoreDraft();
+ const saved = loadStoreDraft(accountId);
const [form, setForm] = useState(saved?.form ?? defaultStoreForm());
@@ -122,9 +128,9 @@ export default function StoreCreatePage() {
useEffect(() => {
- saveStoreDraft({ step, form });
+ saveStoreDraft({ step, form }, accountId);
- }, [step, form]);
+ }, [step, form, accountId]);
@@ -437,7 +443,7 @@ export default function StoreCreatePage() {
});
- clearStoreDraft();
+ clearStoreDraft(accountId);
toastSuccess('门店录入成功');
navigate(`/stores/${result.store.id}`);
} catch (e) {