From b377351789728be6a804daf38de524abae8eab83 Mon Sep 17 00:00:00 2001
From: 快乐的昕的电脑 <快乐的昕的电脑@DESKTOP-C2BQPQU>
Date: 星期五, 24 十月 2025 16:34:21 +0800
Subject: [PATCH] 更新注释

---
 components/machine.vue |  400 +++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 235 insertions(+), 165 deletions(-)

diff --git a/components/machine.vue b/components/machine.vue
index 7c76197..54bb59a 100644
--- a/components/machine.vue
+++ b/components/machine.vue
@@ -1,212 +1,276 @@
 <template>
-	<div class="page">
-		<div class="top-right">
+	<view class="page">
+		<!--璋冩満閫佹-->
+		<!-- 鍙充笂瑙掑埛鏂版寜閽� -->
+		<view class="top-right">
 			<button class="refresh-btn" @click="refresh">鍒锋柊</button>
-		</div>
+		</view>
 
-		<div class="middle-section">
-			<div class="item" style="height:100px;">
-				<h4>璇存槑:鍏堣皟鏈�,鍐嶉�佹</h4>
-			</div>
-
-			<!-- 璋冩満寮�濮� -->
-			<div class="item">
-				<button :class="canStart ? 'btn-blue' : 'btn-disabled'"
-						:disabled="!canStart"
-						@click="onStartClick">
+		<!-- 涓棿鐘舵�侀儴鍒嗭紝涓婁笅缁撴瀯锛屽寘鍚皟鏈烘祦绋嬬殑涓変釜姝ラ -->
+		<view class="middle-section">
+			<view class="item" style="height: 100px;">
+				<h4>
+					璇存槑:1.鐐瑰嚮'璋冩満寮�濮�'鍚庡啀鐐瑰嚮'淇濆瓨鐢熸晥' <br />
+					2.鐐瑰嚮'閫佹鍛煎彨'鍚庡啀鐐瑰嚮'淇濆瓨鐢熸晥'<br />
+					3.涓荤晫闈㈤妫�鍚堟牸鍚庡啀鐐瑰嚮'淇濆瓨鐢熸晥'<br />
+					4.棣栨涓嶅悎鏍煎啀鐐瑰嚮'淇濆瓨鐢熸晥'浼氭竻绌洪�佹鏃堕棿<br />
+					5.娓呯┖閫佹鏃堕棿鍚庣偣鍑烩�樻楠屼笉鍚堟牸閲嶆柊閫佹鍛煎彨鈥欏啀淇濆瓨
+				</h4>
+			</view>
+			<view class="item">
+				<!-- 璋冩満寮�濮嬫寜閽紝maStartTime鏈夊�兼椂绂佺敤 -->
+				<button :class="maStartTime ? 'btn-disabled' : 'btn-blue'"
+						:disabled="!!maStartTime"
+						@click="handleMaStartTime">
 					璋冩満寮�濮�
 				</button>
-				<input class="txt-inp" v-model="maStartTime" placeholder="鐐瑰嚮鎸夐挳甯﹀嚭鏃堕棿" disabled />
-			</div>
-
-			<!-- 閫佹鍛煎彨 -->
-			<div class="item">
-				<button :class="canShout ? 'btn-blue' : 'btn-disabled'"
-						:disabled="!canShout"
-						@click="onShoutClick">
+				<!-- 鏄剧ず璋冩満寮�濮嬫椂闂� -->
+				<input class="txt-inp" v-model="maStartTime" placeholder="鐐瑰嚮鎸夐挳甯﹀嚭璋冩満鏃堕棿" disabled="true" />
+			</view>
+			<view class="item">
+				<!-- 閫佹鍛煎彨鎸夐挳锛宮aShoutTime鏈夊�兼椂绂佺敤 -->
+				<button :class="maShoutTime ? 'btn-disabled' : 'btn-blue'"
+						:disabled="!!maShoutTime"
+						@click="handleMaShoutTime">
 					閫佹鍛煎彨
 				</button>
-				<input class="txt-inp" v-model="maShoutTime" placeholder="鐐瑰嚮鎸夐挳甯﹀嚭鏃堕棿" disabled />
-			</div>
+				<!-- 鏄剧ず閫佹鍛煎彨鏃堕棿 -->
+				<input class="txt-inp" v-model="maShoutTime" placeholder="鐐瑰嚮鎸夐挳甯﹀嚭閫佹鏃堕棿" disabled="true" />
+			</view>
+			<!--<view class="item">-->
+			<!-- 璋冩満瀹屾垚鎸夐挳锛宮aEndTime鏈夊�兼椂绂佺敤 -->
+			<!--<button :class="maEndTime ? 'btn-disabled' : 'btn-blue'"
+					:disabled="!!maEndTime"
+					@click="handleMaEndTime">
+				璋冩満瀹屾垚锛�=妫�楠岄�氳繃锛�
+			</button>-->
+			<!-- 鏄剧ず璋冩満瀹屾垚鏃堕棿 -->
+			<!--<input class="txt-inp" v-model="maEndTime" placeholder="棣栨棣栨纭閫氳繃鍐欏叆" disabled="true" />
+			</view>-->
+			<view class="item">
+				<button class="btn-disabled" disabled>
+					璋冩満瀹屾垚锛�=妫�楠岄�氳繃=寮�宸ワ級
+				</button>
+				<input class="txt-inp" v-model="maEndTime" placeholder="棣栨棣栨纭閫氳繃鍐欏叆" disabled="true" />
+			</view>
 
-			<!-- 璋冩満瀹屾垚锛堝悗绔悎鏍艰嚜鍔ㄥ啓锛� -->
-			<div class="item">
-				<button class="btn-disabled" disabled>璋冩満瀹屾垚锛�=妫�楠岄�氳繃=寮�宸ワ級</button>
-				<input class="txt-inp" v-model="maEndTime" placeholder="棣栨棣栨鍚堟牸鍚庡啓鍏�" disabled />
-			</div>
+			<!--鍚敤璇ュ姛鑳�-->
+			<!--鏂板锛氭楠屼笉鍚堟牸閫佹鍛煎彨 鎸夐挳锛堝姛鑳戒笌閫佹鍛煎彨涓�鏍凤紝浠呭湪鐗瑰畾 remark 涓嬪彲浠ョ偣鍑伙級--> 
+			<view class="item">
+				 <!--妫�楠屼笉鍚堟牸閫佹鍛煎彨鎸夐挳锛屼粎鍦� remark 涓烘寚瀹氭枃鏈� 涓� 褰撳墠鏃犻�佹鏃堕棿 鏃跺彲鐐瑰嚮--> 
+				<button :class="canFailResend ? 'btn-blue' : 'btn-disabled'"
+						:disabled="!canFailResend"
+						@click="ReHandleMaShoutTime">
+					妫�楠屼笉鍚堟牸閲嶆柊閫佹鍛煎彨
+				</button>
+				 <!--浠嶅鐢ㄥ悓涓�閫佹鏃堕棿瀛楁锛岄伩鍏嶉噸澶嶇姸鎬�--> 
+				<input class="txt-inp"
+					   v-model="maShoutTime"
+					   placeholder="棣栨涓嶅悎鏍奸噸鏂板懠鍙椂鐐瑰嚮鎸夐挳甯﹀嚭閫佹鏃堕棿"
+					   disabled="true" />
+			</view>
 
-			<!-- 棣栨缁撴灉涓庢彁绀� -->
-			<div class="item" style="flex-direction:column;">
-				<label>褰撳墠棣栨缁撴灉: {{ latestFirstResult || '鏈垽瀹�' }}</label>
-				<label v-if="remark" style="color:#00A2E9">{{ remark }}</label>
-			</div>
-		</div>
+		</view>
 
-		<!-- 搴曢儴鎿嶄綔 -->
-		<div class="bottom-section">
-			<button :class="hasUnsaved ? 'save-btn':'btn-disabled'"
-					:disabled="!hasUnsaved"
-					@click="save">
-				淇濆瓨骞剁敓鏁�
-			</button>
+		<!-- 搴曢儴淇濆瓨/鍙栨秷鎸夐挳 -->
+		<view class="bottom-section">
+			<!-- 鍙湁璋冩満瀹屾垚鏈~鍐欐椂鎵嶅彲淇濆瓨 -->
+			<button class="save-btn" v-if="!maEndTime" @click="save">淇濆瓨骞剁敓鏁�</button>
+			<!-- 宸插畬鎴愭椂淇濆瓨鎸夐挳绂佺敤 -->
+			<button class="btn-disabled" v-else>淇濆瓨骞剁敓鏁�</button>
 			<button class="cancel-btn" @click="cancel">鍙栨秷</button>
-		</div>
-	</div>
+		</view>
+
+	</view>
 </template>
 
 <script>
 	export default {
 		props: {
-			orderNo: String,
-			orderId: Number,
-			machineNo: String
+			orderNo: String,    // 宸ュ崟鍙�
+			orderId: Number,    // 宸ュ崟ID
+			machineNo: String   // 鏈哄彴鍙�
 		},
 		data() {
 			return {
-				statusForm: {},
-				maStartTime: '',
-				maShoutTime: '',
-				maEndTime: '',
-				remark: '',
-				latestFirstResult: '',
-				origStart: '',
-				origShout: '',
-				origEnd: '',
-				submitting: false
-			};
+				maShoutTime: '',   // 閫佹鍛煎彨鏃堕棿
+				maStartTime: '',   // 璋冩満寮�濮嬫椂闂�
+				maEndTime: '',     // 璋冩満瀹屾垚鏃堕棿
+				statusForm: {},    // 宸ュ崟鐘舵�佽〃鍗曟暟鎹紙鍖呭惈 remark 瀛楁锛�
+				flag: -1,          // 鎿嶄綔鏍囪
+				failedRemark: '棣栨涓嶅悎鏍硷紝閫佹鏃堕棿宸叉竻绌猴紝璇烽噸鏂伴�佹鍛煎彨鐢熸垚鏂扮殑棣栨鍗�' // 棣栨涓嶅悎鏍煎悗鐢卞悗绔繑鍥炵殑鎻愮ず
+			}
 		},
 		computed: {
-			canStart() {
-				// 鑻ヤ粠鏈紑濮嬪彲璋冩満锛涗繚鐣欏師瑙勫垯锛堜笟鍔¤嫢闇�棣栨涓嶅悎鏍煎悗鍏佽鍐嶆璋冩満鍙啀鎵╁睍锛�
-				return !this.maStartTime;
-			},
-			canShout() {
-				// 宸叉湁寮�濮� 涓� (鏈�佹 鎴� 棣栨涓嶅悎鏍煎厑璁稿啀娆¢�佹)
-				if (!this.maStartTime) return false;
-				if (!this.maShoutTime) return true;
-				return this.latestFirstResult === '涓嶅悎鏍�';
-			},
-			hasUnsaved() {
-				return (this.maStartTime !== this.origStart ||
-					this.maShoutTime !== this.origShout);
+			// 婊¤冻棣栨涓嶅悎鏍奸噸鏂板懠鍙潯浠朵笖褰撳墠灏氭湭閲嶆柊鐢熸垚閫佹鏃堕棿 => 鎸夐挳鍙敤
+			canFailResend() {
+				return this.statusForm &&
+					this.statusForm.remark === this.failedRemark &&
+					!this.maShoutTime;
 			}
 		},
 		created() {
-			this.refresh();
+			// 缁勪欢鍒涘缓鏃惰嚜鍔ㄥ姞杞藉伐鍗曟暟鎹�
+			if (!this.orderId && !this.orderNo) {
+				return;
+			}
+			this.findByOrderId();
 		},
 		methods: {
-			getNow() {
-				const pad = n => (n < 10 ? '0' + n : '' + n);
-				const d = new Date();
-				return `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())} ${pad(d.getHours())}:${pad(d.getMinutes())}:${pad(d.getSeconds())}`;
+			// 澶勭悊璋冩満寮�濮嬫寜閽偣鍑�
+			handleMaStartTime() {
+				if (!this.maStartTime) {
+					this.setMaStartTime();
+					this.flag = -1; // 璋冩満寮�濮嬫寜閽寜涓嬫椂鍥炰紶鐨刦lag=-1
+				}
 			},
-			onStartClick() {
-				if (!this.canStart) return;
-				this.maStartTime = this.getNow();
+			// 澶勭悊閫佹鍛煎彨鎸夐挳鐐瑰嚮锛堜笉鍚妫�涓嶅悎鏍奸噸鍛煎彨锛�
+			handleMaShoutTime() {
+				if (!this.maShoutTime) {
+					this.stateCheck(1);
+				}
 			},
-			onShoutClick() {
-				if (!this.canShout) return;
-				// 鐩存帴瑕嗙洊鏃ч�佹鏃堕棿锛屽疄鐜伴噸閫佹
-				this.maShoutTime = this.getNow();
+            // 棣栨涓嶅悎鏍奸噸鍛煎彨锛歠lag = 2
+            ReHandleMaShoutTime() {
+                if (!this.maShoutTime && this.canFailResend) {
+                    this.stateCheck(2);
+                }
+            },
+			// 澶勭悊璋冩満瀹屾垚鎸夐挳鐐瑰嚮
+			handleMaEndTime() {
+				if (!this.maEndTime) {
+					this.setMaEndTime();
+				}
 			},
+			// 璁剧疆璋冩満寮�濮嬫椂闂翠负褰撳墠鏃堕棿
+			setMaStartTime() {
+				this.maStartTime = this.$getDate('yyyy-mm-dd hh24:mi:ss');
+			},
+			// 璁剧疆璋冩満瀹屾垚鏃堕棿涓哄綋鍓嶆椂闂�
+			setMaEndTime() {
+				console.log('璋冩満瀹屾垚鎸夐挳琚偣鍑�');
+				this.maEndTime = this.$getDate('yyyy-mm-dd hh24:mi:ss');
+			},
+			// 鍒锋柊宸ュ崟鏁版嵁
 			refresh() {
-				if (!this.orderId) return;
-				this.$post({
-					url: "/MesOrderSta/FindByOrderNo",
-					data: { orderId: this.orderId, orderNo: this.orderNo }
-				}).then(res => {
-					const d = res.data;
-					if (!d) return;
-					const sta = d.tbBillList || {};
-					this.statusForm = sta;
-					this.maStartTime = sta.maStartTime || '';
-					this.maShoutTime = sta.maShoutTime || '';
-					this.maEndTime = sta.maEndTime || '';
-					this.remark = sta.remark || d.remark || '';
-					this.latestFirstResult = sta.latestFirstResult || d.latestFirstResult || '';
-					this.syncOrig();
-					// 鑻ュ悗绔笉涓诲姩娓� maShoutTime锛岄�氳繃 canShout 閫昏緫浠嶅彲閲嶉�佹
-				});
+				this.findByOrderId();
 			},
-			syncOrig() {
-				this.origStart = this.maStartTime;
-				this.origShout = this.maShoutTime;
-				this.origEnd = this.maEndTime;
-			},
-			cancel() {
-				this.maStartTime = this.origStart;
-				this.maShoutTime = this.origShout;
-				this.maEndTime = this.origEnd;
-			},
+			// 淇濆瓨骞剁敓鏁堬紝灏嗘椂闂寸瓑淇℃伅鎻愪氦鍒板悗绔�
 			save() {
 				if (!this.statusForm.id) {
-					this.$showMessage("鐘舵�両D涓虹┖锛屼笉鑳戒繚瀛�");
+					this.$showMessage("id涓虹┖锛屼笉鍏佽鎺ㄩ��");
 					return;
 				}
-				if (!this.hasUnsaved) {
-					this.$showMessage("鏃犲彉鏇�");
-					return;
-				}
-				if (this.submitting) return;
-				this.submitting = true;
 				this.$post({
 					url: "/MesOrderSta/ChangeMachineTime",
 					data: {
+						maStartTime: this.maStartTime,
+						maShoutTime: this.maShoutTime,
+						maEndTime: this.maEndTime,
 						id: this.statusForm.id,
-						maStartTime: this.maStartTime || null,
-						maShoutTime: this.maShoutTime || null,
-						maEndTime: null,
 						orderId: this.orderId,
-						orderNo: this.orderNo,
-						machineNo: this.machineNo
+						machineNo: this.machineNo,
+						flag: this.flag
 					}
 				}).then(res => {
-					this.submitting = false;
-					if (res.data) {
-						const sta = res.data.tbBillList || {};
-						this.maStartTime = sta.maStartTime || '';
-						this.maShoutTime = sta.maShoutTime || '';
-						this.maEndTime = sta.maEndTime || '';
-						this.remark = sta.remark || res.data.remark || '';
-						this.latestFirstResult = sta.latestFirstResult || res.data.latestFirstResult || '';
-						this.syncOrig();
-						this.$showMessage("淇濆瓨鎴愬姛");
+					if (res.data.tbBillList) {
+						this.$showMessage("鍛煎彨鎴愬姛");
+						this.findByOrderId();
 					} else {
-						this.$showMessage("淇濆瓨澶辫触");
+						this.$showMessage("鍛煎彨澶辫触");
+						this.cancel();
 					}
-				}).catch(() => {
-					this.submitting = false;
-					this.$showMessage("缃戠粶寮傚父");
-				});
+				})
+			},
+			// 鍙栨秷鎿嶄綔锛屾仮澶嶄负涓婃淇濆瓨鐨勬暟鎹�
+			cancel() {
+				this.maShoutTime = this.statusForm.maShoutTime;
+				this.maStartTime = this.statusForm.maStartTime;
+				this.maEndTime = this.statusForm.maEndTime;
+			},
+			// 閫佹鍛煎彨锛宨tem=1鏃惰缃�佹鍛煎彨鏃堕棿
+            // 閫佹鍛煎彨涓庨噸鏂伴�佹鍛煎彨浠ュ強璋冩満寮�濮嬪搴旂殑 flag 鍊�
+            // flag 璇存槑锛�-1 = 璋冩満寮�濮嬶紱1 = 棣栨閫佹鍛煎彨锛�2 = 涓嶅悎鏍奸噸鏂伴�佹鍛煎彨
+            stateCheck(item) {
+				switch (item) {
+					case 0:
+						break;
+                    case 1:// 棣栨閫佹鍛煎彨
+						this.maShoutTime = this.$getDate('yyyy-mm-dd hh24:mi:ss');
+						this.flag = -1; // 閫佹鍛煎彨鏈夊�煎悗锛宖lag濮嬬粓涓�-1
+						break;
+                    case 2:// 妫�楠屼笉鍚堟牸閲嶆柊閫佹鍛煎彨
+                        this.maShoutTime = this.$getDate('yyyy-mm-dd hh24:mi:ss');
+                        //this.flag = -1; // 閫佹鍛煎彨鏈夊�煎悗锛宖lag濮嬬粓涓�-1
+						break;
+                    default:
+                        // 鍏跺畠鍊间笉澶勭悊
+                        break;
+				}
+				this.flag = item;
+			},
+			// 鏍规嵁宸ュ崟鍙�/ID鑾峰彇宸ュ崟鐘舵�佹暟鎹�
+			findByOrderId() {
+				this.$post({
+					url: "/MesOrderSta/FindByOrderNo",
+					data: {
+						orderId: this.orderId,
+						orderNo: this.orderNo
+					}
+				}).then(res => {
+					this.statusForm = res.data.tbBillList;
+					this.maShoutTime = res.data.tbBillList.maShoutTime;
+					this.maStartTime = res.data.tbBillList.maStartTime;
+					this.maEndTime = res.data.tbBillList.maEndTime;
+				})
 			}
 		}
 	};
 </script>
 
 <style scoped>
+	/* 椤甸潰鏁翠綋甯冨眬 */
 	.page {
 		padding: 2vh;
 		display: flex;
 		flex-direction: column;
-		height: 100%;
+		justify-content: space-between;
 		box-sizing: border-box;
+		height: 100%;
 	}
 
+	/* 鍙充笂瑙掑埛鏂版寜閽� */
 	.top-right {
 		position: absolute;
 		top: 10px;
 		right: 50px;
+		z-index: 1000;
 	}
 
 	.refresh-btn {
 		padding: 10px;
-		background: #00A2E9;
-		color: #fff;
+		background-color: #00A2E9;
+		color: white;
 		border: none;
 		font-size: 1.5vw;
 		border-radius: 5px;
 	}
 
+	label {
+		margin-right: 1vw;
+		font-size: 1.6vw;
+	}
+
+	input {
+		padding: 1vh;
+		font-size: 1.5vw;
+		border: 1px solid #ccc;
+		width: 100%;
+		margin-top: 1vh;
+		box-sizing: border-box;
+	}
+
+	/* 涓棿鐘舵�侀儴鍒嗗竷灞� */
 	.middle-section {
 		display: flex;
 		flex-direction: column;
@@ -228,14 +292,40 @@
 		text-align: center;
 	}
 
-	.btn-blue {
-		background: #00A2E9;
-		color: #fff;
+	.btn-disabled {
+		background-color: #ccc;
+		color: white;
 	}
 
-	.btn-disabled {
-		background: #ccc;
-		color: #fff;
+	.btn-blue {
+		background-color: #00A2E9;
+		color: white;
+	}
+
+	input {
+		margin-top: 10px;
+		padding: 10px;
+		font-size: 14px;
+		border: 1px solid #ccc;
+		width: 100%;
+	}
+
+	/* 搴曢儴淇濆瓨/鍙栨秷鎸夐挳甯冨眬 */
+	.bottom-section {
+		display: flex;
+		justify-content: space-between;
+		margin-top: 4vh;
+	}
+
+	.save-btn,
+	.cancel-btn {
+		width: 48%;
+		padding: 1.5vh;
+		background-color: #00A2E9;
+		color: white;
+		font-size: 1.6vw;
+		border: none;
+		text-align: center;
 	}
 
 	.txt-inp {
@@ -244,25 +334,5 @@
 		font-size: 1.5vw;
 		width: 100%;
 		box-sizing: border-box;
-		margin-left: 1vw;
-	}
-
-	.bottom-section {
-		display: flex;
-		justify-content: space-between;
-		margin-top: 4vh;
-	}
-
-	.save-btn, .cancel-btn {
-		width: 48%;
-		padding: 1.5vh;
-		background: #00A2E9;
-		color: #fff;
-		font-size: 1.6vw;
-		border: none;
-	}
-
-	.cancel-btn {
-		background: #0077A6;
 	}
 </style>
\ No newline at end of file

--
Gitblit v1.9.3