修改了一些bug

This commit is contained in:
Sebastian
2026-01-20 11:56:50 +08:00
parent 623c412d1b
commit babc36aa4e
3 changed files with 25 additions and 18 deletions

View File

@@ -1605,7 +1605,7 @@ def get_available_fund_types():
if strategy == 'high_sharpe':
query = query.filter(
FundRiskMetrics.sharpe_ratio_1y > 1,
FundRiskMetrics.sharpe_ratio_1y > 2,
FundRiskMetrics.volatility_1y < 25
)
elif strategy == 'low_volatility':
@@ -1675,7 +1675,7 @@ def query_screening_funds():
elif strategy == 'high_sharpe':
query = query.filter(
FundRiskMetrics.sharpe_ratio_1y > 1,
FundRiskMetrics.sharpe_ratio_1y > 2,
FundRiskMetrics.volatility_1y < 25
)
@@ -1812,7 +1812,7 @@ def get_screening_strategies():
{
'id': 'high_sharpe',
'name': '高夏普比率',
'description': '夏普比率 > 1,单位风险收益最优',
'description': '夏普比率 > 2,单位风险收益最优',
'tags': ['风险调整', '收益优化']
},
{

View File

@@ -636,12 +636,12 @@ export default {
{
name: '偏股型',
icon: '📈',
patterns: ['混合型-偏股', '混合型-灵活', '混合型-平衡', '股票型', '股票指数', '联接基金', '增强指数', '被动指数']
patterns: ['混合型-偏股', '混合型-灵活', '混合型-平衡', '股票型', '股票指数', '指数型-股票', '联接基金', '增强指数', '被动指数', '指数-股票']
},
{
name: '偏债型',
icon: '📊',
patterns: ['混合型-偏债', '债券型', '债券指数', '短债', '中短债', '长债', '纯债', '可转债']
patterns: ['混合型-偏债', '债券型', '债券指数', '指数型-固收', '短债', '中短债', '长债', '纯债', '可转债', '指数-债券']
},
{
name: 'FOF',
@@ -651,15 +651,25 @@ export default {
{
name: 'QDII',
icon: '🌍',
patterns: ['QDII']
patterns: ['QDII', '海外指数', '指数型-海外']
},
{
name: '货币/其他',
icon: '💰',
patterns: ['货币', 'REITs', '商品']
patterns: ['货币', 'REITs', '商品', '指数-其他', '指数型-其他', '其他']
}
]
// 辅助函数:确定类型的归属分类(按顺序优先匹配,避免重复)
const getTypeCategoryName = (type) => {
for (const cat of quickTypeCategories) {
if (cat.patterns.some(p => type.includes(p))) {
return cat.name
}
}
return null
}
// 切换下拉菜单
const toggleQuickDropdown = (categoryName) => {
if (activeQuickDropdown.value === categoryName) {
@@ -681,15 +691,14 @@ export default {
// 获取分类下在可用类型中的类型
const getFilteredCategoryTypes = (category) => {
return availableTypes.value.filter(type => {
return category.patterns.some(pattern => type.includes(pattern))
})
return availableTypes.value.filter(type => getTypeCategoryName(type) === category.name)
}
// 检查分类下是否有当前选中的类型
const isCategoryTypeActive = (category) => {
if (!quickTypeFilter.value) return false
return category.patterns.some(pattern => quickTypeFilter.value.includes(pattern))
// 如果当前选中的类型属于该分类
return getTypeCategoryName(quickTypeFilter.value) === category.name
}
// 检查分类下是否有可用类型
@@ -699,10 +708,7 @@ export default {
// 获取未分类的类型
const uncategorizedTypes = computed(() => {
const allPatterns = quickTypeCategories.flatMap(c => c.patterns)
return availableTypes.value.filter(type => {
return !allPatterns.some(pattern => type.includes(pattern))
})
return availableTypes.value.filter(type => getTypeCategoryName(type) === null)
})
// 分页
@@ -1928,7 +1934,7 @@ export default {
.quick-tag.active {
background: #667eea;
border-color: #667eea;
color: white;
color: rgb(50, 53, 218);
}
.quick-tag.has-active {

View File

@@ -641,14 +641,15 @@ export default {
.btn-danger:hover:not(:disabled) { background: #fee2e2; }
.btn-secondary { background: #f3f4f6; color: #374151; }
.btn-secondary:hover { background: #e5e7eb; }
.btn-refresh { background: #ecfdf5; color: #10b981; padding: 5px 8px; }
.btn-refresh { background: #ecfdf5; color: #10b981; padding: 5px 8px; display: inline-flex; align-items: center; justify-content: center; }
.btn-refresh:hover:not(:disabled) { background: #d1fae5; }
.btn-primary { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; }
.btn-primary:hover:not(:disabled) { opacity: 0.9; }
/* 旋转动画 */
.rotating {
display: inline-block;
display: block;
transform-origin: center;
animation: spin 1s linear infinite;
}