fix(portfolio): 默认日期改最近1年+记忆; MOCK_ON=import.meta.env.DEV(NAS构建走真实,治组合回测2022日期/不在历史mock假象) [nas]
This commit is contained in:
@@ -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' },
|
||||
|
||||
Reference in New Issue
Block a user