refactor: 重构我的技能页面表格布局

- 移除版本、安装量、评分三列
- 将技能名称和描述分为两列显示
- 移除技能名称加粗样式
- 修复状态显示逻辑,只显示技能整体状态,不再额外显示审核中徽章
- 同步下架按钮禁用逻辑,详情页也添加 hasPendingReview 检查
- 移除技能描述字体特殊样式
This commit is contained in:
2026-03-21 14:36:02 +08:00
parent e1a65c1e84
commit dbfb3c08c9
3 changed files with 90 additions and 31 deletions

View File

@@ -110,33 +110,23 @@ function MySkillsPage({ onSkillClick }) {
<thead>
<tr>
<th>技能名称</th>
<th>技能描述</th>
<th>分类</th>
<th>版本</th>
<th>状态</th>
<th>安装量</th>
<th>评分</th>
<th style={{ width: '200px' }}>操作</th>
</tr>
</thead>
<tbody>
{filteredList.map(skill => (
<tr key={skill.id} onClick={() => onSkillClick(skill.id)} style={{ cursor: 'pointer' }}>
<td>
<div style={{ fontWeight: 600 }}>{skill.name}</div>
<div style={{ fontSize: '12px', color: '#94A3B8' }}>{skill.desc}</div>
</td>
<td>{skill.category}</td>
<td>{skill.version}</td>
<td>
<span className={`status ${skillStatusMap[skill.status]?.className || 'status-stopped'}`}>
{skillStatusMap[skill.status]?.text || skill.status}
</span>
{skill.hasPendingReview && (
<span className="status status-warning" style={{ marginLeft: '6px' }}>审核中</span>
)}
</td>
<td>{skill.installs}</td>
<td>{skill.rating || '-'}</td>
{filteredList.map(skill => (
<tr key={skill.id} onClick={() => onSkillClick(skill.id)} style={{ cursor: 'pointer' }}>
<td>{skill.name}</td>
<td>{skill.desc}</td>
<td>{skill.category}</td>
<td>
<span className={`status ${skillStatusMap[skill.status]?.className || 'status-stopped'}`}>
{skillStatusMap[skill.status]?.text || skill.status}
</span>
</td>
<td>
<div style={{ display: 'flex', gap: '8px' }}>
<button className="text-btn text-btn-primary" onClick={e => { e.stopPropagation(); onSkillClick(skill.id); }}>

View File

@@ -174,16 +174,23 @@ function SkillEditorPage({ skillId, onBack, onUploadNewVersion, onUpdateInfo })
<div className="card-title">管理</div>
</div>
<div className="card-body">
<div className="manage-actions">
{skill.status === 'published' && (
<button className="btn btn-danger" onClick={handleTogglePublish}>下架技能</button>
)}
<button
className="btn btn-danger"
onClick={() => setDeleteSkillModal(true)}
disabled={skill.status === 'published'}
title={skill.status === 'published' ? '已上架的技能需要先下架才能删除' : ''}
>
<div className="manage-actions">
{skill.status === 'published' && (
<button
className="btn btn-danger"
onClick={handleTogglePublish}
disabled={skill.hasPendingReview}
title={skill.hasPendingReview ? '存在审核中的版本,请先撤回后再下架' : ''}
>
下架技能
</button>
)}
<button
className="btn btn-danger"
onClick={() => setDeleteSkillModal(true)}
disabled={skill.status === 'published'}
title={skill.status === 'published' ? '已上架的技能需要先下架才能删除' : ''}
>
删除技能
</button>
</div>