1. main.html 页面修改,拆解功能

This commit is contained in:
2026-01-30 21:03:09 +08:00
parent 03b6071856
commit c9575b2553
6 changed files with 2120 additions and 2569 deletions

View File

@@ -345,7 +345,9 @@
type: 'LLM',
source: 'trained',
model_path: model.path,
train_method: method.name
train_method: method.name,
merged: model.merged, // 是否已合并
merging: model.merging // 是否正在合并
});
});
}
@@ -402,10 +404,15 @@
// 已训练模型区域
if (trainedModels.length > 0) {
// 统计已合并和未合并的数量
const mergedCount = trainedModels.filter(m => m.merged).length;
html += `
<div class="border-b border-gray-200">
<div class="px-4 py-2 bg-green-50 text-xs font-medium text-green-700 flex items-center">
<i class="fa fa-check-circle mr-1"></i> 已训练模型 (${trainedModels.length})
<div class="px-4 py-2 bg-green-50 text-xs font-medium text-green-700 flex items-center justify-between">
<div class="flex items-center">
<i class="fa fa-check-circle mr-1"></i> 已训练模型 (${trainedModels.length})
</div>
<span class="text-orange-600">${mergedCount > 0 ? `${mergedCount}个已合并可选择` : '需合并后才可选择'}</span>
</div>
<div class="divide-y divide-gray-100">
`;
@@ -420,7 +427,9 @@
// 渲染单个模型卡片
function renderModelCard(model) {
const isSelected = selectedModels.has(model.id);
const isDisabled = !isSelected && selectedModels.size >= 4;
// 未合并的已训练模型不可选择
const isTrainedNotMerged = model.source === 'trained' && !model.merged;
const isDisabled = !isSelected && (selectedModels.size >= 4 || isTrainedNotMerged);
const typeText = {
'LLM': '大语言模型',
'CV': '计算机视觉',
@@ -430,19 +439,24 @@
}[model.type] || model.type || '其他';
// 处理字符串类型的ID
const modelId = typeof model.id === 'string' ? `'${model.id.replace(/'/g, "\\'")}'` : model.id;
// 未合并提示文字
const unmergedTip = isTrainedNotMerged ? '请先合并权重后再选择' : '';
return `
<div class="model-card border-b border-gray-100 last:border-b-0 p-4 cursor-pointer ${isSelected ? 'selected bg-blue-50/50' : ''} ${isDisabled ? 'disabled opacity-50' : ''} hover:bg-gray-50 transition-colors"
onclick="toggleModel(${modelId})">
onclick="${isTrainedNotMerged ? `showMessage('提示', '该模型未合并权重,无法参与对比。请先在模型管理中合并权重。', 'warning')` : `toggleModel(${modelId})`}"
title="${unmergedTip}">
<div class="flex items-center justify-between">
<div class="flex items-center flex-1 min-w-0">
<div class="w-5 h-5 rounded-full border-2 ${isSelected ? 'border-primary bg-primary' : 'border-gray-300'} flex items-center justify-center mr-3 flex-shrink-0">
<div class="w-5 h-5 rounded-full border-2 ${isSelected ? 'border-primary bg-primary' : isTrainedNotMerged ? 'border-gray-300 bg-gray-200' : 'border-gray-300'} flex items-center justify-center mr-3 flex-shrink-0">
${isSelected ? '<i class="fa fa-check text-white text-xs"></i>' : ''}
</div>
<div class="min-w-0">
<div class="flex items-center mb-1">
<span class="font-medium text-gray-800 truncate">${model.name}</span>
<span class="ml-2 px-2 py-0.5 bg-blue-100 text-blue-700 text-xs rounded flex-shrink-0">${typeText}</span>
${isTrainedNotMerged ? '<span class="ml-2 px-2 py-0.5 bg-orange-100 text-orange-700 text-xs rounded flex-shrink-0"><i class="fa fa-lock mr-1"></i>未合并</span>' : ''}
${model.source === 'trained' && model.merged ? '<span class="ml-2 px-2 py-0.5 bg-green-100 text-green-700 text-xs rounded flex-shrink-0"><i class="fa fa-check-circle mr-1"></i>已合并</span>' : ''}
</div>
<p class="text-sm text-gray-500 truncate">${model.description || '暂无描述'}</p>
</div>
@@ -519,10 +533,15 @@
// 已训练模型区域
if (trainedModels.length > 0) {
// 统计已合并和未合并的数量
const mergedCount = trainedModels.filter(m => m.merged).length;
html += `
<div class="border-b border-gray-200">
<div class="px-4 py-2 bg-green-50 text-xs font-medium text-green-700 flex items-center">
<i class="fa fa-check-circle mr-1"></i> 已训练模型 (${trainedModels.length})
<div class="px-4 py-2 bg-green-50 text-xs font-medium text-green-700 flex items-center justify-between">
<div class="flex items-center">
<i class="fa fa-check-circle mr-1"></i> 已训练模型 (${trainedModels.length})
</div>
<span class="text-orange-600">${mergedCount > 0 ? `${mergedCount}个已合并可选择` : '需合并后才可选择'}</span>
</div>
<div class="divide-y divide-gray-100">
`;