From a3298d4e03b929a1fb9e00f3211baa577338b9c8 Mon Sep 17 00:00:00 2001
From: 快乐的昕的电脑 <快乐的昕的电脑@DESKTOP-C2BQPQU>
Date: 星期三, 15 十月 2025 10:38:23 +0800
Subject: [PATCH] 界面修改

---
 components/WorkOrderPrint.vue |  135 +++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 124 insertions(+), 11 deletions(-)

diff --git a/components/WorkOrderPrint.vue b/components/WorkOrderPrint.vue
index f51371c..04daa51 100644
--- a/components/WorkOrderPrint.vue
+++ b/components/WorkOrderPrint.vue
@@ -1,5 +1,6 @@
 <template>
-	<view class="page">
+	<!-- 鏍瑰厓绱犲鍔犲姩鎬佺被锛屽脊绐楀嚭鐜版椂闄勫姞 has-overlay锛岀敤浜庢帶鍒跺簳灞備氦浜掍笌灞傜骇 -->
+	<view class="page" :class="{'has-overlay': (isShowUserSelect || isShow || barcodeIsShow)}">
 		<view class="status-section">
 			<!-- 鎶ュ伐璁板綍琛� -->
 			<view class="report-table-wrapper">
@@ -23,7 +24,7 @@
 					<tbody>
 						<tr>
 							<td>{{ nowTime }}</td>
-							<td>{{ staffNo || '-' }}</td>
+							<td>{{ staffName || '-' }}</td>
 							<td>{{ orderNo || '-' }}</td>
 							<td>{{ order.daa003 || '-' }}</td>
 							<td>{{ planQtyDisplay }}</td>
@@ -68,7 +69,6 @@
 				</view>
 			</view>
 
-			<!-- 宸茬Щ闄�: 浜у搧缂栫爜 / 浜у搧鍚嶇О / 浜у搧瑙勬牸 杈撳叆鍖哄煙 -->
 			<!-- 涓嶈壇鏁伴噺 -->
 			<view class="print-section" style="margin-top:10px;">
 				<view class="barcode-info">
@@ -84,13 +84,28 @@
 			</view>
 
 			<!-- 鎶ュ伐浜洪�夋嫨 -->
-			<view>
-				<view class="reason-section" style="margin-bottom:-10px">
-					<text>鎶ュ伐浜猴細</text>
-					<view class="reason-buttons">
-						<button v-for="(u,index) in users" :key="index"
-								:class="{'reason-btn':true,'selected': staffNo===u}"
-								@click="toggleUser(u)" v-text="u"></button>
+			<view class="current-user-section">
+				<text>褰撳墠鎶ュ伐浜猴細</text>
+				<text class="current-user-name">{{ staffName || '鏈�夋嫨' }}</text>
+				<button class="select-user-btn" @click="isShowUserSelect = true">閫変汉</button>
+			</view>
+
+			<!-- 閫変汉寮圭獥 -->
+			<view v-if="isShowUserSelect" class="overlay">
+				<view class="popup user-select-popup">
+					<view class="user-list-scroll">
+						<view class="user-list-grid">
+							<button v-for="(u, index) in users"
+									:key="index"
+									class="user-list-btn"
+									:class="{'selected': u === staffNo}"
+									@click="selectUser(u)">
+								{{ u.split(':')[1] }}
+							</button>
+						</view>
+					</view>
+					<view class="user-popup-footer">
+						<button class="clean-btn" style="width: 60%;" @click="isShowUserSelect = false">鍏抽棴</button>
 					</view>
 				</view>
 			</view>
@@ -148,6 +163,7 @@
 		props: { orderNo: String, orderId: Number, machineNo: String },
 		data() {
 			return {
+				isShowUserSelect: false,
 				currentUser: '',
 				barcodeAmount: '',
 				users: [], userForm: [], staff: [], user: {},
@@ -165,7 +181,13 @@
 			calculatedCurrentCount() { return (this.productionCount || 0) - (this.initialValue || 0); },
 			calculatedTotalProduction() { return (this.kgQty || 0) + this.calculatedCurrentCount; },
 			calculatedDefectiveCount() { return this.calculatedTotalProduction - (this.sQuantity || 0); },
-			planQtyDisplay() { return this.order.planQty || this.order.planQuantity || this.order.daa007 || this.order.daa010 || 0; }
+			planQtyDisplay() { return this.order.planQty || this.order.planQuantity || this.order.daa007 || this.order.daa010 || 0; },
+			// 鏂板锛氳В鏋愬鍚�
+			staffName() {
+				if (!this.staffNo) return '';
+				const parts = this.staffNo.split(':');
+				return parts.length > 1 ? parts[1] : this.staffNo;
+			}
 		},
 		created() {
 			this.initializeData();
@@ -177,6 +199,11 @@
 		},
 		beforeDestroy() { if (this.nowTimeTimer) clearInterval(this.nowTimeTimer); },
 		methods: {
+			// 閫夋嫨浜哄憳
+			selectUser(u) {
+				this.staffNo = u;
+				this.isShowUserSelect = false;
+			},
 			updateNowTime() {
 				const d = new Date(), p = n => n.toString().padStart(2, '0');
 				this.nowTime = `${d.getFullYear()}-${p(d.getMonth() + 1)}-${p(d.getDate())} ${p(d.getHours())}:${p(d.getMinutes())}`;
@@ -339,6 +366,14 @@
 		flex-direction: column;
 		box-sizing: border-box;
 	}
+
+		.page.has-overlay .status-section > :not(.overlay) {
+			pointer-events: none;
+		}
+
+		.page.has-overlay .status-section > .overlay {
+			pointer-events: auto;
+		}
 
 	.report-table-wrapper {
 		margin-bottom: 8px;
@@ -509,6 +544,8 @@
 		display: flex;
 		justify-content: space-between;
 		margin-top: 12px;
+		position: relative;
+		z-index: 10;
 	}
 
 	.save-btn, .cancel-btn {
@@ -531,6 +568,7 @@
 		display: flex;
 		justify-content: center;
 		align-items: center;
+		z-index: 1000;
 	}
 
 	.popup {
@@ -544,6 +582,7 @@
 		max-height: 80vh;
 		overflow-y: auto;
 		border-radius: 8px;
+		z-index: 1001;
 	}
 
 	.clean-btn {
@@ -563,6 +602,80 @@
 		border-spacing: 3px;
 	}
 
+	.current-user-section {
+		display: flex;
+		align-items: center;
+		margin: 16px 0;
+		font-size: 18px;
+		border: 1.5px solid #f00;
+		border-radius: 8px;
+		padding: 12px 18px;
+		background: #fff;
+		width: fit-content;
+		gap: 10px;
+	}
+
+	.current-user-name {
+		font-weight: bold;
+		font-size: 20px;
+		margin: 0 10px;
+	}
+
+	.select-user-btn {
+		padding: 4px 18px;
+		background: #eee;
+		border: 1px solid #aaa;
+		border-radius: 6px;
+		font-size: 16px;
+		margin-left: 8px;
+	}
+
+	.user-select-popup {
+		width: 480px;
+		max-width: 96vw;
+		max-height: 80vh;
+		padding: 0;
+		display: flex;
+		flex-direction: column;
+		justify-content: flex-start;
+	}
+
+	.user-list-scroll {
+		flex: 1 1 auto;
+		overflow-y: auto;
+		padding: 32px 24px 0 24px;
+	}
+
+	.user-list-grid {
+		display: grid;
+		grid-template-columns: repeat(3, 1fr);
+		gap: 18px 18px;
+		margin-bottom: 0;
+	}
+
+	.user-popup-footer {
+		flex-shrink: 0;
+		padding: 18px 24px 24px 24px;
+		background: #fff;
+		text-align: center;
+	}
+
+	.user-list-btn {
+		padding: 18px 0;
+		font-size: 20px;
+		background: #00a2e9;
+		color: #fff;
+		border: none;
+		border-radius: 8px;
+		cursor: pointer;
+		width: 100%;
+		box-sizing: border-box;
+	}
+
+		.user-list-btn.selected {
+			background: #ff9500;
+		}
+
 	@media (max-width:1400px) {
 		input.highlight {
 			font-size: 14px;

--
Gitblit v1.9.3