fix: 修复Creo模型查看器中零件数量和文件数量显示问题

- 恢复零件数量显示为原始值,不再减1
- 修复文件大小显示中的文件数量,自动将"(from N files)"中的数量减1
- 添加formattedFileSize计算属性处理文件大小格式化逻辑

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
sladro 2025-09-21 17:27:05 +08:00
parent 3601d8a2a1
commit c0892dcfc8

View File

@ -23,7 +23,7 @@
</div>
<div class="meta-item" v-if="modelData.data?.basicStats?.fileSize">
<i class="fas fa-hdd"></i>
<span>文件大小: {{ modelData.data.basicStats.fileSize }}</span>
<span>文件大小: {{ formattedFileSize }}</span>
</div>
</div>
</div>
@ -38,7 +38,7 @@
<div class="stats-grid">
<div class="stat-item">
<label>零件数量:</label>
<span>{{ Math.max(0, (modelData.data?.partCount || 0) - 1) }}</span>
<span>{{ modelData.data?.partCount || 0 }}</span>
</div>
<div class="stat-item">
<label>装配层级:</label>
@ -104,6 +104,7 @@
<script setup>
// 使import
import { ElNotification } from 'element-plus'
import { computed } from 'vue'
const props = defineProps({
modelData: {
@ -112,6 +113,21 @@ const props = defineProps({
}
})
// 1
const formattedFileSize = computed(() => {
const fileSize = props.modelData.data?.basicStats?.fileSize
if (!fileSize) return ''
// "xxx (from N files)"
const match = fileSize.match(/^(.*?)\s*\(from\s+(\d+)\s+files?\)(.*)$/)
if (match) {
const [, sizeStr, fileCount, rest] = match
const adjustedCount = Math.max(0, parseInt(fileCount) - 1)
const fileText = adjustedCount === 1 ? 'file' : 'files'
return `${sizeStr} (from ${adjustedCount} ${fileText})${rest || ''}`
}
return fileSize
})
//
const formatDate = (dateValue) => {