fix: 单价分值支持2位小数,二级分类也可设置分值

This commit is contained in:
Your Name 2026-01-05 23:03:28 +08:00
parent 30cf85e178
commit 372b5ead26

View File

@ -130,15 +130,15 @@
<span class="tree-name">{{ record.name || '--' }}</span>
</template>
<template v-else-if="column.key === 'unitScore'">
<!-- 三级分类显示单价,或者有单价值的也显示(兼容旧数据) -->
<span v-if="getDemandTypeLevel(record) === 3 || (record.unitScore && record.unitScore > 0)">
{{ record.unitScore ?? '--' }}
<!-- 有分值就显示(格式化为2位小数),无分值显示-- -->
<span v-if="record.unitScore !== null && record.unitScore !== undefined && record.unitScore !== 0">
{{ Number(record.unitScore).toFixed(2) }}
</span>
<span v-else class="text-muted">--</span>
</template>
<template v-else-if="column.key === 'estimatedHours'">
<span v-if="getDemandTypeLevel(record) === 3 || (record.estimatedHours && record.estimatedHours > 0)">
{{ record.estimatedHours ?? '--' }}
<span v-if="record.estimatedHours !== null && record.estimatedHours !== undefined && record.estimatedHours !== 0">
{{ record.estimatedHours }}
</span>
<span v-else class="text-muted">--</span>
</template>
@ -1244,20 +1244,28 @@
<a-input v-model:value="formData.demandType.name" placeholder="请输入类型名称" />
</a-form-item>
<!-- 单价分值(仅三级分类显示) -->
<a-form-item v-if="formData.demandType.addLevel === 'level3'" label="单价分值" required>
<!-- 单价分值(二级和三级分类都可以设置) -->
<a-form-item
v-if="formData.demandType.addLevel === 'level2' || formData.demandType.addLevel === 'level3'"
label="单价分值"
:required="formData.demandType.addLevel === 'level3'"
>
<a-input-number
v-model:value="formData.demandType.unitScore"
:min="0"
:precision="3"
:step="0.1"
:precision="2"
:step="0.01"
style="width: 100%"
placeholder="请输入单价分值(支持小数,如0.35)"
placeholder="请输入单价分值(如0.25)"
/>
<div v-if="formData.demandType.addLevel === 'level2'" class="form-tip">
<Icon name="info" size="sm" color="#6B6B6B" style="margin-right: 4px;" />
如果二级分类下没有三级子分类,可以直接设置分值
</div>
</a-form-item>
<!-- 预计时长(仅三级分类显示) -->
<a-form-item v-if="formData.demandType.addLevel === 'level3'" label="预计时长(小时)">
<!-- 预计时长(二级和三级分类都可以设置) -->
<a-form-item v-if="formData.demandType.addLevel === 'level2' || formData.demandType.addLevel === 'level3'" label="预计时长(小时)">
<a-input-number
v-model:value="formData.demandType.estimatedHours"
:min="0"
@ -2787,9 +2795,9 @@ const saveDemandType = async () => {
// 构建保存数据,确保字段名正确
const saveData: Partial<DemandType> = {
name: formData.demandType.name,
// 只有三级分类设置单价
unitScore: addLevel === 'level3' ? formData.demandType.unitScore : 0,
estimatedHours: addLevel === 'level3' ? formData.demandType.estimatedHours : null,
// 二级和三级分类都可以设置单价(兼容两种数据结构)
unitScore: (addLevel === 'level2' || addLevel === 'level3') ? (formData.demandType.unitScore || 0) : 0,
estimatedHours: (addLevel === 'level2' || addLevel === 'level3') ? formData.demandType.estimatedHours : null,
description: formData.demandType.description,
sortOrder: formData.demandType.sortOrder ?? 0,
isEnabled: formData.demandType.isEnabled ?? 1,