From 5ae97428bee75124a0f12dac12df35efeb6f5204 Mon Sep 17 00:00:00 2001
From: 快乐的昕的电脑 <快乐的昕的电脑@DESKTOP-C2BQPQU>
Date: 星期一, 13 十月 2025 16:39:44 +0800
Subject: [PATCH] 优化
---
components/mold.vue | 140 +++++++++++++++++++++++++++++++++-------------
1 files changed, 100 insertions(+), 40 deletions(-)
diff --git a/components/mold.vue b/components/mold.vue
index 4bc7868..b322b5b 100644
--- a/components/mold.vue
+++ b/components/mold.vue
@@ -69,7 +69,7 @@
<th>浣跨敤娆℃暟</th>
<th>浣跨敤涓婇檺</th>
<th>瀵垮懡姣�%</th>
- <th>瀵垮懡棰勮鍊�</th>
+ <th>瀵垮懡姣旈璀﹀��</th>
<th>棰勮鐘舵��</th>
</tr>
</thead>
@@ -236,6 +236,8 @@
});
if (res.status === 0) {
this.$showMessage('涓婂垁鎻愪氦鎴愬姛');
+ // 鎴愬姛鍚庡埛鏂板垪琛�
+ await this.fetchFormData();
} else {
this.$showMessage(res.message || '涓婂垁鎻愪氦澶辫触');
}
@@ -276,6 +278,8 @@
});
if (res.status === 0) {
this.$showMessage('涓嬪垁鎻愪氦鎴愬姛');
+ // 鎴愬姛鍚庡埛鏂板垪琛�
+ await this.fetchFormData();
} else {
this.$showMessage(res.message || '涓嬪垁鎻愪氦澶辫触');
}
@@ -286,6 +290,7 @@
this.toolModel = '';
},
async fetchFormData() {
+ // 閲嶅啓锛氬寮哄吋瀹规�с�佺粺涓�瀛楁鏄犲皠銆佹牸寮忓寲鏃堕棿鍜岀櫨鍒嗘瘮锛岃绠楅璀︾姸鎬�
if (!this.workOrderNo || !this.machineNo) {
console.warn('宸ュ崟鍙锋垨鏈哄彴鍙蜂负绌猴紝璺宠繃鑾峰彇琛ㄥ崟鏁版嵁');
return;
@@ -297,7 +302,7 @@
};
try {
- console.log('璇锋眰鍙傛暟:', payload); // 娣诲姞璋冭瘯鏃ュ織
+ console.log('璇锋眰鍙傛暟:', payload);
const res = await this.$post({
url: '/MesCutterLedger/GetFormData',
@@ -305,50 +310,105 @@
headers: { 'Content-Type': 'application/json' }
});
- if (res.status === 0) {
- console.log('鑾峰彇鏁版嵁鎴愬姛:', res.data);
-
- // 鍏煎澶氱杩斿洖缁撴瀯锛屽彇鍒版暟缁�
- const list = Array.isArray(res.data) ? res.data
- : (res.data && res.data.tbBillList) ? res.data.tbBillList
- : (res.data && res.data.data) ? res.data.data
- : [];
-
- const getField = (obj, ...keys) => {
- for (const k of keys) if (obj?.[k] !== undefined && obj?.[k] !== null) return obj[k];
- return null;
- };
-
- // 鏄犲皠鍒版ā鏉夸娇鐢ㄧ殑瀛楁
- this.toolRecords = (list || []).map(t => ({
- id: getField(t, 'id', 'ID') || `${getField(t, 'cutteR_ID') || getField(t, 'CUTTER_ID') || ''}-${getField(t, 'uP_TIME') || ''}`,
- no: getField(t, 'cutteR_ID', 'CUTTER_ID', 'cutterId', 'no'),
- name: getField(t, 'cutteR_NAME', 'CUTTER_NAME', 'cutterName', 'name'),
- upTime: getField(t, 'uP_TIME', 'UP_TIME', 'uPTime') || '',
- upCount: getField(t, 'uP_COUNT', 'UP_COUNT') ?? '',
- downTime: getField(t, 'dowN_TIME', 'DOWN_TIME', 'downTime') || '',
- downCount: getField(t, 'dowN_COUNT', 'DOWN_COUNT') ?? '',
- useCount: getField(t, 'usE_COUNT', 'USE_COUNT') ?? '',
- useLimit: getField(t, 'usE_LIMIT', 'USE_LIMIT') ?? '',
- lifePercent: getField(t, 'lifE_PERCENT', 'LIFE_PERCENT') ?? '',
- lifeWarn: getField(t, 'lifE_WARN', 'LIFE_WARN') ?? '',
- warnStatus: getField(t, 'status', 'STATUS') || ''
- }));
-
- // 濡傛灉鍚庣杩斿洖浜� totalCount锛屽彲浠ユ洿鏂� total锛堢敤浜庡垎椤垫樉绀猴級
- const totalFromRes = Number(res.totalCount);
- if (Number.isFinite(totalFromRes) && totalFromRes > 0) {
- this.total = totalFromRes;
- } else {
- this.total = Number(res.data?.total ?? res.data?.totalCount ?? this.toolRecords.length) || 0;
- }
- } else {
+ if (res.status !== 0) {
this.$showMessage(res.message || '鑾峰彇琛ㄥ崟鏁版嵁澶辫触');
+ return;
+ }
+
+ // 鍏煎澶氱杩斿洖缁撴瀯锛屽彇鍒版暟缁�
+ const list = Array.isArray(res.data) ? res.data
+ : (res.data && res.data.tbBillList) ? res.data.tbBillList
+ : (res.data && res.data.data) ? res.data.data
+ : [];
+
+ const getField = (obj, ...keys) => {
+ for (const k of keys) if (obj?.[k] !== undefined && obj?.[k] !== null) return obj[k];
+ return null;
+ };
+
+ 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 => (n === null || n === undefined || isNaN(n)) ? '' : `${Number(n).toFixed(2)}%`;
+
+ 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 lifePercentNum = parseNumber(lifePercentRaw);
+ const lifeWarnNum = parseNumber(lifeWarnRaw);
+
+ // 棰勮瑙勫垯锛氬綋瀵垮懡姣� >= 棰勮鍊兼椂鏍囪 璀﹀憡锛堟牴鎹浘鐗囩ず渚嬶細90.01% vs 90% 涓� 璀﹀憡锛�
+ let warnStatus = getField(t, 'status', 'STATUS') || '';
+ if (lifeWarnNum !== null && lifePercentNum !== null) {
+ warnStatus = (lifePercentNum >= 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: getField(t, 'usE_COUNT', 'USE_COUNT', 'useCount') ?? '',
+ useLimit: getField(t, 'usE_LIMIT', 'USE_LIMIT', 'useLimit') ?? '',
+ lifePercent: formatPercent(lifePercentNum),
+ lifeWarn: lifeWarnNum !== null ? `${Number(lifeWarnNum).toFixed(0)}%` : (lifeWarnRaw ? String(lifeWarnRaw) : ''),
+ warnStatus
+ };
+ });
+
+ this.toolRecords = mapped;
+
+ // 鏇存柊 total锛氫紭鍏堜娇鐢ㄥ悗绔� totalCount锛屽惁鍒欎娇鐢ㄨ繑鍥炴暟缁勯暱搴�
+ const totalFromRes = Number(res.totalCount);
+ if (Number.isFinite(totalFromRes) && totalFromRes > 0) {
+ this.total = totalFromRes;
+ } else {
+ this.total = Number(res.data?.total ?? res.data?.totalCount ?? this.toolRecords.length) || 0;
}
} catch (error) {
console.error('鑾峰彇琛ㄥ崟鏁版嵁閿欒:', error);
this.$showMessage('鑾峰彇鏁版嵁澶辫触锛岃妫�鏌ョ綉缁滆繛鎺�');
}
+ },
+ formatDateTime(dateTimeStr) {
+ if (!dateTimeStr) return '';
+ // 鏀寔澶氱鍚庣鏃堕棿鏍煎紡锛欼SO / 鏃堕棿鎴� / 鑷畾涔夊瓧绗︿覆
+ // 浼樺厛灏濊瘯瑙f瀽涓� Date锛屽け璐ュ垯杩斿洖鍘熷瀛楃涓茬殑鍙鐗囨
+ try {
+ // 濡傛灉鏄椂闂存埑锛堢鎴栨绉掞級
+ const s = String(dateTimeStr).trim();
+ if (/^\d{10}$/.test(s)) {
+ const d = new Date(Number(s) * 1000);
+ return `${d.getMonth() + 1}-${d.getDate()} ${d.getHours()}:${String(d.getMinutes()).padStart(2, '0')}`;
+ }
+ if (/^\d{13}$/.test(s)) {
+ const d = new Date(Number(s));
+ return `${d.getMonth() + 1}-${d.getDate()} ${d.getHours()}:${String(d.getMinutes()).padStart(2, '0')}`;
+ }
+ const date = new Date(dateTimeStr);
+ if (!isNaN(date.getTime())) {
+ return `${date.getMonth() + 1}-${date.getDate()} ${date.getHours()}:${String(date.getMinutes()).padStart(2, '0')}`;
+ }
+ // 鍥為��锛氭埅鍙栧埌鏃ユ湡鍜屾椂闂撮儴鍒嗭紙甯歌鏍煎紡锛�
+ const match = String(dateTimeStr).match(/(\d{1,4}[-\/]\d{1,2}[-\/]\d{1,2}).*?(\d{1,2}:\d{2})/);
+ if (match) return `${match[1].replace(/-/g, '/').replace(/^\d{4}\//, (m) => m)} ${match[2]}`;
+ return String(dateTimeStr);
+ } catch {
+ return String(dateTimeStr);
+ }
}
//// 娣诲姞杈呭姪鏂规硶
//formatDateTime(dateTimeStr) {
--
Gitblit v1.9.3