Files
group_fqcd_jr/app/static/portal/common/mock-data.js
T

66 lines
3.7 KiB
JavaScript
Raw Normal View History

2026-09-13 15:56:54 +08:00
const PRODUCT_BASE = {
exchange_code: 'SSE',
product_category: 'ETF',
risk_level: 'R3',
fund_manager: '南方基金管理股份有限公司',
currency: 'CNY',
lot_size: '100.0000',
price_tick: '0.001000',
min_amount: '100.00',
open_start_at: null,
open_end_at: null,
open_period_start: null,
open_period_end: null,
transaction_fee_rate: '0.000500',
single_investor_max_holding_ratio: '10.0000',
management_fee_rate: '0.5000',
custodian_fee_rate: '0.1000',
risk_disclosure_required: 1,
second_confirmation_required: 0,
recording_required: 0,
status: '正常',
created_at: '2026-01-02T09:00:00',
updated_at: '2026-09-11T15:00:00',
};
export const MOCK_PRODUCTS = Object.freeze([
{ ...PRODUCT_BASE, id: 1, product_code: '510300', product_name: '南方沪深300ETF', current_nav: '4.218000', current_nav_at: '2026-09-11T15:00:00', product_category: '宽基ETF', risk_level: 'R3' },
{ ...PRODUCT_BASE, id: 2, product_code: '510500', product_name: '南方中证500ETF', current_nav: '6.742000', current_nav_at: '2026-09-11T15:00:00', product_category: '宽基ETF', risk_level: 'R4' },
{ ...PRODUCT_BASE, id: 3, product_code: '159915', product_name: '南方创业板ETF', current_nav: '2.184000', current_nav_at: '2026-09-11T15:00:00', product_category: '成长ETF', risk_level: 'R4', exchange_code: 'SZSE' },
{ ...PRODUCT_BASE, id: 4, product_code: '512100', product_name: '南方中证1000ETF', current_nav: '2.367000', current_nav_at: '2026-09-11T15:00:00', product_category: '宽基ETF', risk_level: 'R4' },
{ ...PRODUCT_BASE, id: 5, product_code: '513100', product_name: '南方纳指ETF', current_nav: '1.728000', current_nav_at: '2026-09-11T15:00:00', product_category: '跨境ETF', risk_level: 'R5' },
{ ...PRODUCT_BASE, id: 6, product_code: '511360', product_name: '南方短融ETF', current_nav: '110.126000', current_nav_at: '2026-09-11T15:00:00', product_category: '债券ETF', risk_level: 'R2' },
{ ...PRODUCT_BASE, id: 7, product_code: '159645', product_name: '南方新能源ETF', current_nav: '0.864000', current_nav_at: '2026-09-11T15:00:00', product_category: '行业ETF', risk_level: 'R5', exchange_code: 'SZSE' },
{ ...PRODUCT_BASE, id: 8, product_code: '159925', product_name: '南方沪深300成长ETF', current_nav: '1.462000', current_nav_at: '2026-09-11T15:00:00', product_category: '策略ETF', risk_level: 'R4', exchange_code: 'SZSE' },
]);
const CLOSE_SERIES = [4.02, 4.08, 4.05, 4.12, 4.16, 4.11, 4.19, 4.23, 4.18, 4.26, 4.21, 4.218];
export function getMockNavHistory(productId) {
const product = MOCK_PRODUCTS.find((item) => item.id === Number(productId)) || MOCK_PRODUCTS[0];
const ratio = Number(product.current_nav) / CLOSE_SERIES.at(-1);
return CLOSE_SERIES.map((close, index) => ({
id: product.id * 100 + index,
product_id: product.id,
nav_date: `2026-${String(index + 1).padStart(2, '0')}-11`,
nav: (close * ratio).toFixed(6),
created_at: `2026-${String(index + 1).padStart(2, '0')}-11T15:00:00`,
}));
}
export const MOCK_RANKING_CHANGE = Object.freeze({
'510300': 1.26,
'510500': 2.18,
'159915': -0.42,
'512100': 1.88,
'513100': 0.76,
'511360': 0.05,
'159645': -1.12,
'159925': 1.54,
});
//: 公开产品 HTTP 接口尚未实现,访客页面的产品、净值与涨跌**来自本文件而不是数据库**。
//: 这是接口缺位时的显式降级,不是真实行情 —— 凡展示这些数据的页面都必须原样呈现这句话。
//: 删掉它并不会让数据变真,只会让客户以为看到的是真实净值。
export const MOCK_SOURCE_NOTICE = '公开产品接口尚未提供,本页使用与 fin_product、fin_nav_history 模型同字段的演示数据,非真实行情。';