fix(portfolio): 默认日期改最近1年+记忆; MOCK_ON=import.meta.env.DEV(NAS构建走真实,治组合回测2022日期/不在历史mock假象) [nas]
CI/CD / test (push) Successful in 16s
CI/CD / nas-deploy (push) Successful in 29s
CI/CD / nas-verify (push) Successful in 12s

This commit is contained in:
2026-08-13 08:05:46 +08:00
parent 4ad505434b
commit e07cf7cd81
2 changed files with 29 additions and 3 deletions
+3 -1
View File
@@ -4,7 +4,9 @@
* 样板阶段用于让每个页面都有内容可看。接真实后端时无需改这里。 */
import * as D from './data'
export const MOCK_ON = true
// dev(npm run dev)=true 走 mock 假数据(本地无后端看原型)build(vite build)=false 走真实后端。
// 这样 NAS/生产 dist 自动真实,Mac 本地 dev 自动 mock。
export const MOCK_ON = import.meta.env.DEV
type Builder = (url: string) => unknown
interface Route {
@@ -26,15 +26,39 @@ const errorMsg = ref('')
const stageHint = ref('')
let pollTimer: ReturnType<typeof setInterval> | null = null
function loadDateRange(): { start: string; end: string } {
try {
const s = localStorage.getItem('portfolio_date_range')
if (s) return JSON.parse(s) as { start: string; end: string }
} catch {
/* ignore */
}
const end = new Date()
const start = new Date(end)
start.setFullYear(start.getFullYear() - 1)
const f = (d: Date): string => d.toISOString().slice(0, 10)
return { start: f(start), end: f(end) }
}
const dr = loadDateRange()
const form = reactive({
pool: 'hs300_subset',
strategy: 'all_weather',
max_pool: 30,
start: '2024-01-01',
end: '2024-02-29',
start: dr.start,
end: dr.end,
cash: 1_000_000,
benchmark: '000300.XSHG',
})
watch(
() => [form.start, form.end],
([s, e]) => {
try {
localStorage.setItem('portfolio_date_range', JSON.stringify({ start: s, end: e }))
} catch {
/* ignore */
}
},
)
const poolOptions = [
{ label: 'HS300 子集(小范围验证)', value: 'hs300_subset' },