1 .修改了新建评估指标删除的bug
This commit is contained in:
@@ -482,13 +482,23 @@
|
||||
const displayText = textMap[val] || val || '-';
|
||||
return '<span class="px-2 py-1 rounded text-xs bg-blue-100 text-blue-700">' + displayText + '</span>';
|
||||
}},
|
||||
{ title: '用途', key: 'purpose', render: (val) => {
|
||||
const purposeMap = {
|
||||
'training': { text: '训练', class: 'bg-blue-100 text-blue-700' },
|
||||
'inference': { text: '推理', class: 'bg-green-100 text-green-700' },
|
||||
'evaluation': { text: '评测', class: 'bg-purple-100 text-purple-700' }
|
||||
};
|
||||
const display = purposeMap[val] || { text: val || '-', class: 'bg-gray-100 text-gray-700' };
|
||||
return '<span class="px-2 py-1 rounded text-xs ' + display.class + '">' + display.text + '</span>';
|
||||
}},
|
||||
{ title: '模型来源', key: 'model_source', render: (val) => {
|
||||
const textMap = {
|
||||
'local': '本地模型',
|
||||
'api': '在线模型',
|
||||
'online': '在线模型'
|
||||
};
|
||||
const displayText = textMap[val] || val || '-';
|
||||
return '<span class="px-2 py-1 rounded text-xs bg-green-100 text-green-700">' + displayText + '</span>';
|
||||
return '<span class="px-2 py-1 rounded text-xs bg-gray-100 text-gray-700">' + displayText + '</span>';
|
||||
}},
|
||||
{ title: '描述', key: 'description', render: (val) => val || '-' },
|
||||
{ title: '创建时间', key: 'create_time', render: (val) => val ? new Date(val).toLocaleString('zh-CN') : '-' }
|
||||
@@ -778,6 +788,29 @@
|
||||
});
|
||||
}
|
||||
|
||||
// 更新模型用途
|
||||
async function updateModelPurpose(id, purpose) {
|
||||
try {
|
||||
const response = await fetch(`${API_BASE}/model-manage/${id}/purpose`, {
|
||||
method: 'PUT',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify({ purpose })
|
||||
});
|
||||
const result = await response.json();
|
||||
if (result.code === 0) {
|
||||
// 刷新当前页面
|
||||
const activeLink = document.querySelector('.nav-link.sidebar-item-active');
|
||||
if (activeLink) {
|
||||
loadPage(activeLink.dataset.page);
|
||||
}
|
||||
} else {
|
||||
showMessage('错误', result.message || '更新失败', 'error');
|
||||
}
|
||||
} catch (error) {
|
||||
showMessage('错误', '更新失败: ' + error.message, 'error');
|
||||
}
|
||||
}
|
||||
|
||||
// 切换单个项的选中状态
|
||||
function toggleItemSelection(id, api) {
|
||||
if (selectedItems.has(id)) {
|
||||
@@ -2229,8 +2262,8 @@
|
||||
}
|
||||
|
||||
// ============ 自定义消息弹窗 ============
|
||||
// 显示消息弹窗
|
||||
function showMessage(title, message, type = 'info', onConfirm) {
|
||||
// 显示消息弹窗 - 使用 window 确保全局可访问
|
||||
window.showMessage = function(title, message, type = 'info', onConfirm) {
|
||||
const modal = document.getElementById('customModal');
|
||||
const modalTitle = document.getElementById('modalTitle');
|
||||
const modalMessage = document.getElementById('modalMessage');
|
||||
@@ -2263,7 +2296,7 @@
|
||||
modalSingleBtnGroup.classList.remove('hidden');
|
||||
const confirmBtn = modalConfirmBtn2;
|
||||
if (type === 'error') {
|
||||
confirmBtn.className = 'px-6 py-2 bg-danger text-white rounded-lg hover:bg-danger/90 transition-colors';
|
||||
confirmBtn.className = 'px-6 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 transition-colors';
|
||||
} else {
|
||||
confirmBtn.className = 'px-6 py-2 bg-primary text-white rounded-lg hover:bg-primary/90 transition-colors';
|
||||
}
|
||||
@@ -2272,10 +2305,17 @@
|
||||
modal.classList.remove('hidden');
|
||||
document.body.style.overflow = 'hidden';
|
||||
|
||||
// 绑定确认按钮事件
|
||||
confirmBtn.onclick = () => {
|
||||
// 保存回调到按钮属性
|
||||
confirmBtn._onConfirm = onConfirm;
|
||||
|
||||
// 使用 function 而不是箭头函数
|
||||
confirmBtn.onclick = function() {
|
||||
closeModal();
|
||||
if (onConfirm) onConfirm();
|
||||
const callback = this._onConfirm;
|
||||
if (typeof callback === 'function') {
|
||||
callback();
|
||||
}
|
||||
this._onConfirm = null;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -2286,8 +2326,8 @@
|
||||
document.body.style.overflow = '';
|
||||
}
|
||||
|
||||
// 确认弹窗(两个按钮)
|
||||
function showConfirm(title, message, onConfirm, onCancel) {
|
||||
// 确认弹窗(两个按钮)- 使用 window 确保全局可访问
|
||||
window.showConfirm = function(title, message, onConfirm, onCancel, type = 'info') {
|
||||
const modal = document.getElementById('customModal');
|
||||
const modalTitle = document.getElementById('modalTitle');
|
||||
const modalMessage = document.getElementById('modalMessage');
|
||||
@@ -2296,9 +2336,20 @@
|
||||
const modalCancelBtn = document.getElementById('modalCancelBtn');
|
||||
const modalBtnGroup = document.getElementById('modalBtnGroup');
|
||||
|
||||
if (!modalConfirmBtn) {
|
||||
console.error('modalConfirmBtn not found');
|
||||
return;
|
||||
}
|
||||
|
||||
modalTitle.textContent = title;
|
||||
modalMessage.innerHTML = message;
|
||||
modalIcon.innerHTML = '<div class="w-12 h-12 mx-auto mb-4 rounded-full bg-blue-100 flex items-center justify-center"><i class="fa fa-question text-xl text-blue-600"></i></div>';
|
||||
|
||||
// 根据类型设置图标
|
||||
if (type === 'warning') {
|
||||
modalIcon.innerHTML = '<div class="w-12 h-12 mx-auto mb-4 rounded-full bg-yellow-100 flex items-center justify-center"><i class="fa fa-exclamation text-xl text-yellow-600"></i></div>';
|
||||
} else {
|
||||
modalIcon.innerHTML = '<div class="w-12 h-12 mx-auto mb-4 rounded-full bg-blue-100 flex items-center justify-center"><i class="fa fa-question text-xl text-blue-600"></i></div>';
|
||||
}
|
||||
|
||||
modalBtnGroup.classList.remove('hidden');
|
||||
modalConfirmBtn.textContent = '确定';
|
||||
@@ -2307,14 +2358,29 @@
|
||||
modal.classList.remove('hidden');
|
||||
document.body.style.overflow = 'hidden';
|
||||
|
||||
modalConfirmBtn.onclick = () => {
|
||||
// 保存回调到按钮属性
|
||||
modalConfirmBtn._onConfirm = onConfirm;
|
||||
modalConfirmBtn._onCancel = onCancel;
|
||||
|
||||
// 使用 function 而不是箭头函数,确保 this 指向正确
|
||||
modalConfirmBtn.onclick = function() {
|
||||
closeModal();
|
||||
if (onConfirm) onConfirm();
|
||||
const callback = this._onConfirm;
|
||||
if (typeof callback === 'function') {
|
||||
callback();
|
||||
}
|
||||
this._onConfirm = null;
|
||||
this._onCancel = null;
|
||||
};
|
||||
|
||||
modalCancelBtn.onclick = () => {
|
||||
modalCancelBtn.onclick = function() {
|
||||
closeModal();
|
||||
if (onCancel) onCancel();
|
||||
const callback = this._onCancel || modalConfirmBtn._onCancel;
|
||||
if (typeof callback === 'function') {
|
||||
callback();
|
||||
}
|
||||
modalConfirmBtn._onConfirm = null;
|
||||
modalConfirmBtn._onCancel = null;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -2382,6 +2448,29 @@
|
||||
window.location.href = 'model-dimension-create.html';
|
||||
}
|
||||
|
||||
// 删除评测维度
|
||||
async function deleteDimension(id) {
|
||||
showConfirm('确认删除', '确定要删除此评测维度吗?', async () => {
|
||||
try {
|
||||
const response = await fetch(`${API_BASE}/dimension/${id}`, {
|
||||
method: 'DELETE'
|
||||
});
|
||||
const result = await response.json();
|
||||
if (result.code === 0) {
|
||||
showMessage('成功', '删除成功', 'success', () => {
|
||||
// 刷新维度列表 - 切换到 dimensions tab
|
||||
switchTab(document.querySelector('[data-tab="dimensions"]'), 'dimensions');
|
||||
});
|
||||
} else {
|
||||
showMessage('错误', result.message || '删除失败', 'error');
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('删除维度失败:', error);
|
||||
showMessage('错误', '删除失败: ' + error.message, 'error');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 切换 Tab
|
||||
function switchTab(btn, tabId) {
|
||||
// 更新按钮状态
|
||||
|
||||
Reference in New Issue
Block a user