feat(projects-assign): 上半部分展示项目核心属性 (单条模式)

6 字段 3 列 el-descriptions 只读展示:
  - 项目编号 / 项目名称 / 项目形式
  - 总场次 / 总金额 / 管理费及税金
批量模式不展示 (各项目字段独立, 不适合合并展示)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
郭庆泰
2026-08-20 23:06:30 +08:00
co-authored by Claude
parent 7f4c66e147
commit 5e688f17b1
@@ -13,6 +13,17 @@
当前项目: <b>{{ currentProject?.projectNo || '-' }}</b> - {{ currentProject?.projectName || '-' }} 当前项目: <b>{{ currentProject?.projectNo || '-' }}</b> - {{ currentProject?.projectName || '-' }}
</div> </div>
<!-- 项目核心属性 (单条模式: 只读展示) -->
<el-descriptions v-if="!batchMode && currentProject"
class="project-meta" :column="3" border size="small">
<el-descriptions-item label="项目编号">{{ currentProject.projectNo || '-' }}</el-descriptions-item>
<el-descriptions-item label="项目名称">{{ currentProject.projectName || '-' }}</el-descriptions-item>
<el-descriptions-item label="项目形式">{{ currentProject.projectForm || '-' }}</el-descriptions-item>
<el-descriptions-item label="总场次/总期数">{{ currentProject.totalSessions || 0 }}</el-descriptions-item>
<el-descriptions-item label="总金额(元)">{{ currentProject.totalAmount || 0 }}</el-descriptions-item>
<el-descriptions-item label="管理费及税金">{{ currentProject.manageFee || 0 }}</el-descriptions-item>
</el-descriptions>
<el-form :model="assignForm" label-width="120px"> <el-form :model="assignForm" label-width="120px">
<el-form-item label="支持方"> <el-form-item label="支持方">
<el-select v-model="assignForm.sponsorAdminUserId" placeholder="请选择支持单位" filterable <el-select v-model="assignForm.sponsorAdminUserId" placeholder="请选择支持单位" filterable
@@ -410,6 +421,10 @@ async function submitAssign() {
} }
.info-bar b { color: #303133; margin: 0 2px; } .info-bar b { color: #303133; margin: 0 2px; }
/* 项目核心属性只读区 */
.project-meta { margin-bottom: 16px; }
.project-meta :deep(.el-descriptions__label) { width: 110px; }
/* 分配 dialog 总场次条 (从 Projects.vue 1:1 搬) */ /* 分配 dialog 总场次条 (从 Projects.vue 1:1 搬) */
.assign-sessions-bar { .assign-sessions-bar {
display: flex; align-items: center; gap: 18px; display: flex; align-items: center; gap: 18px;