chore: biz_org 合并 / BizProject 重构 / 各角色页面调整 (上次重构遗留)
涵盖改动范围: - 后端 BizOrg / BizProject / BizProjectRating / BizSpecialPlan controller + domain + mapper + service - 前端 admin (BizSpecialPlanAdmin, ProjectCategory) / executor / leader / manager / sponsor 多页调整 - api/dict.js + AdminLayout.vue 同步
This commit is contained in:
@@ -64,8 +64,18 @@
|
||||
<el-table-column label="可用金额" width="120" align="right"><template #default="{ row }">¥{{ formatMoney(row.availableAmount) }}</template></el-table-column>
|
||||
<el-table-column label="已支付劳务费" width="120" align="right"><template #default="{ row }">¥{{ formatMoney(row.paidLaborAmount) }}</template></el-table-column>
|
||||
<el-table-column label="已支付会务费" width="120" align="right"><template #default="{ row }">¥{{ formatMoney(row.paidMeetingAmount) }}</template></el-table-column>
|
||||
<el-table-column prop="complianceScore" label="执行单位得分(合规)" width="150" align="center" />
|
||||
<el-table-column prop="ratingScore" label="执行单位评价(支持方)" width="160" align="center" />
|
||||
<el-table-column prop="managerScore" label="执行单位得分(合规)" width="150" align="center">
|
||||
<template #default="{ row }">
|
||||
<span v-if="row.managerScore != null">{{ row.managerScore }}</span>
|
||||
<span v-else style="color:#c0c4cc">-</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="sponsorScore" label="执行单位评价(支持方)" width="160" align="center">
|
||||
<template #default="{ row }">
|
||||
<span v-if="row.sponsorScore != null">{{ row.sponsorScore }}</span>
|
||||
<span v-else style="color:#c0c4cc">-</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="orgName" label="支持公司" min-width="140" show-overflow-tooltip />
|
||||
<el-table-column prop="projectForm" label="项目形式" width="100" align="center" />
|
||||
<el-table-column label="是否结题" width="90" align="center">
|
||||
@@ -180,7 +190,7 @@
|
||||
<el-descriptions-item label="可用金额">¥{{ formatMoney(detail.availableAmount) }}</el-descriptions-item>
|
||||
<el-descriptions-item label="已支付劳务费">¥{{ formatMoney(detail.paidLaborAmount) }}</el-descriptions-item>
|
||||
<el-descriptions-item label="已支付会务费">¥{{ formatMoney(detail.paidMeetingAmount) }}</el-descriptions-item>
|
||||
<el-descriptions-item label="执行单位得分">{{ detail.ratingScore || '-' }}</el-descriptions-item>
|
||||
<el-descriptions-item label="执行单位得分">{{ detail.managerScore || '-' }}</el-descriptions-item>
|
||||
<el-descriptions-item label="是否结题">
|
||||
<el-tag :type="detail.isFinished === '1' ? 'success' : 'info'" disable-transitions>
|
||||
{{ detail.isFinished === '1' ? '已结题' : '未结题' }}
|
||||
@@ -306,21 +316,30 @@ async function submitRate() {
|
||||
if (!rateForm.q1 && !rateForm.q2 && !rateForm.q3 && !rateForm.q4) {
|
||||
ElMessage.warning('请至少完成一项评分'); return
|
||||
}
|
||||
// 计算 4 维平均 (任意维度填了就参与平均)
|
||||
const scores = [rateForm.q1, rateForm.q2, rateForm.q3, rateForm.q4].map(v => Number(v))
|
||||
const filled = scores.filter(v => v > 0)
|
||||
const avg = filled.length ? (filled.reduce((s, v) => s + v, 0) / filled.length).toFixed(1) : null
|
||||
try {
|
||||
// sponsor 专属: POST /business/project/rate (BizProjectSponsor 字段)
|
||||
const data = {
|
||||
// 1. 写明细到 biz_project_rating (rater_role='sponsor', 后端自动填 raterId)
|
||||
await request.post('/business/project/rate', {
|
||||
projectId: rateForm.projectId,
|
||||
projectNo: rateForm.projectNo,
|
||||
projectName: rateForm.projectName,
|
||||
sponsorQ1: rateForm.q1,
|
||||
sponsorQ2: rateForm.q2,
|
||||
sponsorQ3: rateForm.q3,
|
||||
sponsorQ4: rateForm.q4,
|
||||
sponsorRemark: rateForm.remark
|
||||
raterRole: 'sponsor',
|
||||
qualityScore: rateForm.q1,
|
||||
responseScore: rateForm.q2,
|
||||
cooperationScore: rateForm.q3,
|
||||
complianceScore: rateForm.q4,
|
||||
remark: rateForm.remark
|
||||
})
|
||||
// 2. 写聚合分到 biz_project.sponsor_score
|
||||
if (avg != null) {
|
||||
await bizUpdate('project', { projectId: rateForm.projectId, sponsorScore: Number(avg) })
|
||||
}
|
||||
await request.post('/business/project/rate', data)
|
||||
ElMessage.success('评分已提交')
|
||||
ElMessage.success(`评分已提交, 平均分:${avg ?? '-'}`)
|
||||
rateOpen.value = false
|
||||
load()
|
||||
} catch (e) { ElMessage.error(e?.msg || '提交失败') }
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user