diff --git a/docs/.vitepress/theme/components/DraggableWidget.vue b/docs/.vitepress/theme/components/DraggableWidget.vue index 55bb352..c6a134b 100644 --- a/docs/.vitepress/theme/components/DraggableWidget.vue +++ b/docs/.vitepress/theme/components/DraggableWidget.vue @@ -33,7 +33,11 @@ const widgetState = computed(() => { const position = computed(() => { if (isMobile.value || !isMounted.value) return { x: 0, y: 0 } - return widgetState.value?.position ?? getDefaultPosition() + const storedPos = widgetState.value?.position + if (storedPos && storedPos.x >= 0 && storedPos.y >= 0) { + return storedPos + } + return getDefaultPosition() }) const order = computed(() => { @@ -59,11 +63,8 @@ function getDefaultPosition() { onMounted(async () => { await nextTick() - const storedData = localStorage.getItem('wufangzhen-settings') - const parsed = storedData ? JSON.parse(storedData) : null - const storedWidget = parsed?.widgets?.find((w: { id: string }) => w.id === props.id) - - if (!storedWidget) { + const storedPos = widgetState.value?.position + if (!storedPos || storedPos.x < 0 || storedPos.y < 0) { const defaultPos = getDefaultPosition() settingsStore.updateWidgetPosition(props.id, defaultPos) } diff --git a/docs/.vitepress/theme/stores/settings.ts b/docs/.vitepress/theme/stores/settings.ts index 951a274..d1c84f4 100644 --- a/docs/.vitepress/theme/stores/settings.ts +++ b/docs/.vitepress/theme/stores/settings.ts @@ -153,7 +153,7 @@ export const useSettingsStore = defineStore('settings', () => { if (!existingIds.includes(id)) { widgets.value.push({ id, - position: { x: 20, y: 20 + index * 120 }, + position: { x: -1, y: -1 }, order: index }) }