gongchunyi
2026-09-22 ba0a75ccaf642d98d8cf054691f42a5c593c54ce
fix: 生产订单完成进度去除百分比限制
已修改1个文件
29 ■■■■■ 文件已修改
src/views/productionManagement/productionOrder/index.vue 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/productionManagement/productionOrder/index.vue
@@ -79,9 +79,11 @@
                @selection-change="handleSelectionChange"
                @pagination="pagination">
        <template #completionStatus="{ row }">
          <el-progress :percentage="toProgressPercentage(row?.completionStatus)"
                       :color="progressColor(toProgressPercentage(row?.completionStatus))"
                       :status="toProgressPercentage(row?.completionStatus) >= 100 ? 'success' : ''" />
          <el-progress :percentage="toBarPercentage(row?.completionStatus)"
                       :color="progressColor(row?.completionStatus)"
                       :status="toProgressPercentage(row?.completionStatus) >= 100 ? 'success' : ''">
            <span>{{ progressText(row?.completionStatus) }}</span>
          </el-progress>
        </template>
        <template #processRouteStatus="{ row }">
          <div v-if="row.processRouteStatus && row.processRouteStatus.length"
@@ -93,7 +95,7 @@
                <div class="step-circle"
                     :class="{ 'is-completed': item.percentage >= 100 }">
                  <span class="step-percentage"
                        :style="{ color: item.percentage >= 70 ? item.percentage >= 100 ? '#67c23a' : '#f56c6c' : '#000' }">{{ item.percentage }}%</span>
                        :style="{ color: processStepColor(item.percentage) }">{{ percentLabel(item.percentage) }}</span>
                </div>
                <div class="step-name">{{ item.name }}</div>
              </div>
@@ -497,10 +499,21 @@
  const toProgressPercentage = val => {
    const n = Number(val);
    if (!Number.isFinite(n)) return 0;
    if (n <= 0) return 0;
    if (n >= 100) return 100;
    return Math.round(n);
    if (!Number.isFinite(n) || n <= 0) return 0;
    return Math.round(n * 100) / 100;
  };
  const toBarPercentage = val => Math.min(100, toProgressPercentage(val));
  const progressText = val => `${toProgressPercentage(val)}%`;
  const percentLabel = val => `${Math.round(toProgressPercentage(val))}%`;
  const processStepColor = percentage => {
    const p = toProgressPercentage(percentage);
    if (p >= 100) return "#67c23a";
    if (p >= 70) return "#f56c6c";
    return "#000";
  };
  // 30/50/80/100 分段颜色:红/橙/蓝/绿