From 9c3e98d7c6856db73fef42be083d33e2fc05145e Mon Sep 17 00:00:00 2001
From: 快乐的昕的电脑 <快乐的昕的电脑@DESKTOP-C2BQPQU>
Date: 星期二, 14 十月 2025 17:29:47 +0800
Subject: [PATCH] • 预警判断也基于此百分比与预警值
---
components/mold.vue | 81 ++++++++++++++++++++++++++--------------
1 files changed, 53 insertions(+), 28 deletions(-)
diff --git a/components/mold.vue b/components/mold.vue
index d09ffed..da28224 100644
--- a/components/mold.vue
+++ b/components/mold.vue
@@ -375,38 +375,63 @@
return `${Number(n).toFixed(0)}%`;
};
- const mapped = (list || []).map(t => {
- const upTimeRaw = getField(t, 'uP_TIME', 'UP_TIME', 'uPTime', 'UPTIME', 'UpTime');
- const downTimeRaw = getField(t, 'dowN_TIME', 'DOWN_TIME', 'downTime', 'DOWNTIME');
- const lifePercentRaw = getField(t, 'lifE_PERCENT', 'LIFE_PERCENT', 'lifePercent', 'LIFEPERCENT');
- const lifeWarnRaw = getField(t, 'lifE_WARN', 'LIFE_WARN', 'lifeWarn', 'LIFEWARN');
+ const mapped = (list || []).map(t => {
+ const upTimeRaw = getField(t, 'uP_TIME', 'UP_TIME', 'uPTime', 'UPTIME', 'UpTime');
+ const downTimeRaw = getField(t, 'dowN_TIME', 'DOWN_TIME', 'downTime', 'DOWNTIME');
+ const lifeWarnRaw = getField(t, 'lifE_WARN', 'LIFE_WARN', 'lifeWarn', 'LIFEWARN');
- const lifePercentNum = parseNumber(lifePercentRaw);
- const lifeWarnNum = parseNumber(lifeWarnRaw);
+ // 浣跨敤娆℃暟鍜屼笂闄�
+ const useCount = getField(t, 'usE_COUNT', 'USE_COUNT', 'useCount');
+ const useLimit = getField(t, 'usE_LIMIT', 'USE_LIMIT', 'useLimit');
- // 棰勮瑙勫垯锛氬綋瀵垮懡姣� >= 棰勮鍊兼椂鏍囪 棰勮锛堜笌鍚庣 V_WOMDAA_BY_CUTTER 淇濇寔涓�鑷达級
- let warnStatus = getField(t, 'status', 'STATUS') || '';
- if (lifeWarnNum !== null && lifePercentNum !== null) {
- warnStatus = (lifePercentNum >= lifeWarnNum) ? '棰勮' : '姝e父';
- } else {
- warnStatus = warnStatus || '鏈煡';
- }
+ // 璁$畻瀵垮懡姣旓紙浣跨敤娆℃暟/浣跨敤涓婇檺锛�
+ let percent = '';
+ if (
+ useCount != null && useLimit != null &&
+ !isNaN(useCount) && !isNaN(useLimit) &&
+ Number(useLimit) > 0
+ ) {
+ percent = ((Number(useCount) / Number(useLimit)) * 100).toFixed(0) + '%';
+ }
- return {
- id: getField(t, 'id', 'ID') || `${getField(t, 'cutteR_ID') || getField(t, 'CUTTER_ID') || ''}-${upTimeRaw || ''}`,
- no: getField(t, 'cutteR_ID', 'CUTTER_ID', 'cutterId', 'no') || '',
- name: getField(t, 'cutteR_NAME', 'CUTTER_NAME', 'cutterName', 'name') || '',
- upTime: this.formatDateTime(upTimeRaw),
- upCount: getField(t, 'uP_COUNT', 'UP_COUNT', 'upCount') ?? '',
- downTime: this.formatDateTime(downTimeRaw),
- downCount: getField(t, 'dowN_COUNT', 'DOWN_COUNT', 'downCount') ?? '',
- useCount: getField(t, 'usE_COUNT', 'USE_COUNT', 'useCount') ?? '',
- useLimit: getField(t, 'usE_LIMIT', 'USE_LIMIT', 'useLimit') ?? '',
- lifePercent: formatPercent(lifePercentNum),
+ // 棰勮鍊兼牸寮忓寲
+ const parseNumber = v => {
+ if (v === null || v === undefined || v === '') return null;
+ const s = String(v).replace(/[,锛�%]/g, '').trim();
+ const n = parseFloat(s);
+ return Number.isFinite(n) ? n : null;
+ };
+ const formatPercent = n => {
+ if (n === null || n === undefined || isNaN(n)) return '';
+ if (n <= 1) return `${(n * 100).toFixed(0)}%`;
+ return `${Number(n).toFixed(0)}%`;
+ };
+ const lifeWarnNum = parseNumber(lifeWarnRaw);
+
+ // 棰勮瑙勫垯锛氬綋瀵垮懡姣� >= 棰勮鍊兼椂鏍囪 棰勮
+ let warnStatus = getField(t, 'status', 'STATUS') || '';
+ if (lifeWarnNum !== null && useCount != null && useLimit != null && !isNaN(useCount) && !isNaN(useLimit) && Number(useLimit) > 0) {
+ const percentNum = Number(useCount) / Number(useLimit);
+ warnStatus = (percentNum >= lifeWarnNum) ? '棰勮' : '姝e父';
+ } else {
+ warnStatus = warnStatus || '鏈煡';
+ }
+
+ return {
+ id: getField(t, 'id', 'ID') || `${getField(t, 'cutteR_ID') || getField(t, 'CUTTER_ID') || ''}-${upTimeRaw || ''}`,
+ no: getField(t, 'cutteR_ID', 'CUTTER_ID', 'cutterId', 'no') || '',
+ name: getField(t, 'cutteR_NAME', 'CUTTER_NAME', 'cutterName', 'name') || '',
+ upTime: this.formatDateTime(upTimeRaw),
+ upCount: getField(t, 'uP_COUNT', 'UP_COUNT', 'upCount') ?? '',
+ downTime: this.formatDateTime(downTimeRaw),
+ downCount: getField(t, 'dowN_COUNT', 'DOWN_COUNT', 'downCount') ?? '',
+ useCount: useCount ?? '',
+ useLimit: useLimit ?? '',
+ lifePercent: percent,
lifeWarn: formatPercent(lifeWarnNum),
- warnStatus
- };
- });
+ warnStatus
+ };
+ });
this.toolRecords = mapped;
const totalFromRes = Number(
--
Gitblit v1.9.3