add settings store with FIRE parameters; fix home page
- store/settings.ts: target 71万, withdraw rate 3.5%, monthly invest 1500, etc. (persist) - progress.vue: read target from settings store instead of hardcoded value - index/index.vue: remove type:home conflict so checkin page is the entry Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -3,8 +3,6 @@ defineOptions({
|
|||||||
name: 'Home',
|
name: 'Home',
|
||||||
})
|
})
|
||||||
definePage({
|
definePage({
|
||||||
// 使用 type: "home" 属性设置首页,其他页面不需要设置,默认为page
|
|
||||||
type: 'home',
|
|
||||||
style: {
|
style: {
|
||||||
// 'custom' 表示开启自定义导航栏,默认 'default'
|
// 'custom' 表示开启自定义导航栏,默认 'default'
|
||||||
'navigationStyle': 'custom',
|
'navigationStyle': 'custom',
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { useProgressStore } from '@/store/progress'
|
import { useProgressStore } from '@/store/progress'
|
||||||
|
import { useSettingsStore } from '@/store/settings'
|
||||||
|
|
||||||
defineOptions({ name: 'Progress' })
|
defineOptions({ name: 'Progress' })
|
||||||
definePage({
|
definePage({
|
||||||
@@ -7,10 +8,10 @@ definePage({
|
|||||||
})
|
})
|
||||||
|
|
||||||
const store = useProgressStore()
|
const store = useProgressStore()
|
||||||
const TARGET = 710000
|
const settings = useSettingsStore()
|
||||||
|
|
||||||
const percent = computed(() => Math.min(100, Math.round((store.netAssets / TARGET) * 100)))
|
const percent = computed(() => Math.min(100, Math.round((store.netAssets / settings.target) * 100)))
|
||||||
const remaining = computed(() => Math.max(0, TARGET - store.netAssets))
|
const remaining = computed(() => Math.max(0, settings.target - store.netAssets))
|
||||||
|
|
||||||
const showForm = ref(false)
|
const showForm = ref(false)
|
||||||
const inputVal = ref('')
|
const inputVal = ref('')
|
||||||
|
|||||||
@@ -0,0 +1,21 @@
|
|||||||
|
import { defineStore } from 'pinia'
|
||||||
|
|
||||||
|
export const useSettingsStore = defineStore('settings', () => {
|
||||||
|
const target = ref(710000) // 目標本金(元)
|
||||||
|
const withdrawRate = ref(0.035) // 安全提取率 3.5%
|
||||||
|
const monthlyInvest = ref(1500) // 每月定投(元)
|
||||||
|
const partTimeIncome = ref(40000) // 兼職年收入(元)
|
||||||
|
const annualExpense = ref(65000) // 年開支(元)
|
||||||
|
const initialCapital = ref(70000) // 起始本金(元)
|
||||||
|
|
||||||
|
return {
|
||||||
|
target,
|
||||||
|
withdrawRate,
|
||||||
|
monthlyInvest,
|
||||||
|
partTimeIncome,
|
||||||
|
annualExpense,
|
||||||
|
initialCapital,
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
persist: true,
|
||||||
|
})
|
||||||
Reference in New Issue
Block a user