From 0a0aaff74884a8ecab15fb581855a148f442f5c5 Mon Sep 17 00:00:00 2001
From: 快乐的昕的电脑 <快乐的昕的电脑@DESKTOP-C2BQPQU>
Date: 星期四, 25 十二月 2025 10:12:52 +0800
Subject: [PATCH] 上下刀调机逻辑优化

---
 pages/index.vue |  458 ++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 357 insertions(+), 101 deletions(-)

diff --git a/pages/index.vue b/pages/index.vue
index 610bebb..47cd348 100644
--- a/pages/index.vue
+++ b/pages/index.vue
@@ -14,6 +14,9 @@
 			<view class="tab-item" :class="{ active: currentTab === 3 }" @click="changeTab(3)">
 				璋冩満閫佹
 			</view>
+			<view class="tab-item" :class="{ active: currentTab === 10 }" @click="changeTab(10)">
+				涓婁笅鍒�/棣栨鍗曡褰�
+			</view>
 			<view class="tab-item" :class="{ active: currentTab === 4 }" @click="changeTab(4)">
 				鐢熶骇鎶ュ伐
 			</view>
@@ -38,12 +41,9 @@
 		<scroll-view class="content">
 			<view v-if="currentTab === 7" class="tab-content">
 				<view class="content">
-					<!--<view class="top-right">
-						<button class="refresh-btn" @click="refresh">鍒锋柊</button>
-					</view>-->
-					<view>
+					<!--<view>
 						<h4>涓�鍙版満鍙板彧鑳介�夋嫨涓�鏉″伐鍗曪紙澶氶�夐粯璁や负鏈�鍚庝竴鏉★級</h4>
-					</view>
+					</view>-->
 					<view class="section top-section">
 						<view class="form-row align-row">
 							<input v-model="machineName"
@@ -51,8 +51,10 @@
 								   type="text"
 								   class="machine-name-box" />
 							<view class="form-group">
-								<label class="order-label">绗竴姝ラ�夋嫨宸ュ崟:</label>
-								<button class="print-btn" @click="isShowTab">閫夋嫨宸ュ崟</button>
+								<label style="float: left;margin-top: 18px;font-size: 22px;">鐐瑰嚮鎸夐挳绛涢�夊伐鍗曠姸鎬�:</label>
+								<superwei-combox :candidates="engineeringNoMapList" placeholder="璇烽�夋嫨" v-model="engineeringNo"
+												 @select="onEngineeringNoChange" class="picker"
+												 style="padding: 7px 46px;width: 650px;margin-right: 20px;"></superwei-combox>
 							</view>
 							<view class="top-right">
 								<button class="refresh-btn" @click="refresh">鍒锋柊</button>
@@ -60,77 +62,75 @@
 						</view>
 					</view>
 
-					<!--          &lt;!&ndash; 涓儴锛氳繍琛岀姸鎬�-->
+					<!-- 宸ュ崟閫夋嫨琛ㄦ牸 -->
 					<view class="section card">
-						<uni-table border stripe emptyText="鏆傛棤鏇村鏁版嵁" @selection-change="selectionChange">
+						<uni-table border stripe emptyText="鏆傛棤鏇村鏁版嵁">
 							<uni-tr>
+								<uni-th align="center" class="th" style="width: 220px;">鎿嶄綔</uni-th>
 								<uni-th align="center" class="th" style="width: 100px;">宸ュ簭</uni-th>
-								<uni-th align="center" class="th" style="width: 170px;">宸ュ崟鍙�</uni-th>
+								<uni-th align="center" class="th" style="width: 200px;">宸ュ崟鍙�</uni-th>
 								<uni-th align="center" class="th" style="width: 150px;">浜у搧缂栫爜</uni-th>
-								<uni-th align="center" class="th" style="width: 190px;">浜у搧鍚嶇О</uni-th>
-								<uni-th align="center" class="th" style="width: 190px;">瑙勬牸</uni-th>
-								<uni-th align="center" class="th" style="width: 80px;">宸茬敓浜ф暟閲�</uni-th>
-								<uni-th align="center" class="th" style="width: 80px;">鏈敓浜ф暟閲�</uni-th>
-								<uni-th align="center" class="th" style="width: 80px;">娲惧伐鏁伴噺</uni-th>
-								<uni-th align="center" class="th" style="width: 80px;">宸ュ崟鏁伴噺</uni-th>
+								<uni-th align="center" class="th" style="width: 240px;">浜у搧鍚嶇О</uni-th>
+								<uni-th align="center" class="th" style="width: 200px;">瑙勬牸</uni-th>
+								<uni-th align="center" class="th" style="width: 150px;">宸茬敓浜ф暟閲�</uni-th>
+								<uni-th align="center" class="th" style="width: 150px;">鏈敓浜ф暟閲�</uni-th>
+								<uni-th align="center" class="th" style="width: 150px;">娲惧伐鏁伴噺</uni-th>
+								<uni-th align="center" class="th" style="width: 150px;">宸ュ崟鏁伴噺</uni-th>
 								<uni-th align="center" class="th" style="width: 90px;">宸ュ崟鐘舵��</uni-th>
 								<uni-th align="center" class="th" style="width: 90px;">鎶ュ伐浜�</uni-th>
-								<uni-th align="center" class="th" style="width: 90px;">閫夋嫨</uni-th>
 							</uni-tr>
-							<uni-tr v-for="(item, index) in isShowTableData" :key="index">
+							<uni-tr v-for="(item, index) in tableData" :key="index">
 								<uni-td align="center">
-									<input class="form-input" disabled="true" type="text" v-model="item.procName" /><!--宸ュ簭-->
-								</uni-td>
-								<uni-td align="center">
-									<div class="form-input">{{ item.daa001 }}</div><!--宸ュ崟鍙�-->
-								</uni-td>
-								<uni-td align="center">
-									<div class="form-input">{{ item.daa002 }}</div><!--浜у搧缂栫爜-->
-								</uni-td>
-								<uni-td align="center">
-									<div class="form-input">{{ item.daa003 }}</div><!--浜у搧鍚嶇О-->
-								</uni-td>
-								<uni-td align="center">
-									<div class="form-input">{{ item.daa004 }}</div><!--瑙勬牸-->
-								</uni-td>
-								<uni-td align="center">
-									<input class="form-input" disabled="true" type="text" v-model="item.daa011" /><!--宸茬敓浜ф暟閲�-->
-								</uni-td>
-								<uni-td align="center">
-									<input class="form-input" disabled="true" type="text" :value="(item.daa008 || 0) - (item.daa011 || 0)" /><!--鏈敓浜ф暟閲�-->
-								</uni-td>
-								<uni-td align="center">
-									<input class="form-input" disabled="true" type="text" v-model="item.daa008" /><!--娲惧伐鏁伴噺-->
-								</uni-td>
-								<uni-td align="center">
-		                        <input class="form-input" disabled="true" type="text" v-model="item.daa008" /><!--宸ュ崟鏁伴噺-->
-								</uni-td>
-								<uni-td align="center">
-									<input class="form-input" disabled="true" type="text" v-model="item.daa018" /><!--宸ュ崟鐘舵��-->
-								</uni-td>
-								<uni-td align="center">
-									<input class="form-input" disabled="true" type="text" v-model="item.staffName" /><!--鎶ュ伐浜�-->
-								</uni-td>
-								<uni-td>
-									<view class="uni-group">
-										<button class="select-btn" type="default" @click="toDetail(item)">
-											杞埌涓荤晫闈�
+									<view class="operation-btns">
+										<button 
+											:class="getStartBtnClass(item)" 
+											:disabled="isStartBtnDisabled(item)"
+											@click="handleStartWork(item)">
+											{{ getStartBtnText(item) }}
+										</button>
+										<button 
+											class="pause-btn" 
+											:disabled="isPauseBtnDisabled(item)"
+											@click="handlePauseWork(item)">
+											鏆傚仠
 										</button>
 									</view>
 								</uni-td>
+								<uni-td align="center">
+									<input class="form-input" disabled="true" type="text" v-model="item.procName" />
+								</uni-td>
+								<uni-td align="center">
+									<div class="form-input">{{ item.daa001 }}</div>
+								</uni-td>
+								<uni-td align="center">
+									<div class="form-input">{{ item.daa002 }}</div>
+								</uni-td>
+								<uni-td align="center">
+									<div class="form-input">{{ item.daa003 }}</div>
+								</uni-td>
+								<uni-td align="center">
+									<div class="form-input">{{ item.daa004 }}</div>
+								</uni-td>
+								<uni-td align="center">
+									<input class="form-input" disabled="true" type="text" v-model="item.daa011" />
+								</uni-td>
+								<uni-td align="center">
+									<input class="form-input" disabled="true" type="text" :value="(item.daa008 || 0) - (item.daa011 || 0)" />
+								</uni-td>
+								<uni-td align="center">
+									<input class="form-input" disabled="true" type="text" v-model="item.daa008" />
+								</uni-td>
+								<uni-td align="center">
+									<input class="form-input" disabled="true" type="text" v-model="item.daa008" />
+								</uni-td>
+								<uni-td align="center">
+									<input class="form-input" disabled="true" type="text" v-model="item.daa018" />
+								</uni-td>
+								<uni-td align="center">
+									<input class="form-input" disabled="true" type="text" v-model="item.staffName" />
+								</uni-td>
 							</uni-tr>
 						</uni-table>
-					</view>
-
-					<view class="bottom-section">
-						<button class="cancel-btn" @click="cancel">娓呯┖閲嶉��</button>
-					</view>
-
-					<view>
-						<!--<text style="color: red;">
-						璇存槑:鍙兘鍚屾椂寮�宸ヤ竴涓伐鍗曘�傞�夋嫨瀹屾垚锛岀偣鍑讳繚瀛橀�夋嫨銆傜郴缁熶繚鐣欓�変腑鐨勫伐鍗曘��
-						濡傛灉瑕侀噸閫夛紝鐐瑰嚮娓呯┖閲嶉�夊姛鑳姐��
-					</text>-->
 					</view>
 				</view>
 			</view>
@@ -149,6 +149,10 @@
 			<view v-if="currentTab === 3" class="tab-content">
 				<!--        &lt;!&ndash; 璋冪敤 mold 缁勪欢 &ndash;&gt;-->
 				<machine :orderId="orderId" :orderNo="selectedOrder" :machineNo="machineNo" />
+			</view>
+			<view v-if="currentTab === 10" class="tab-content">
+				<!-- 璋冪敤 moldRecord 缁勪欢 -->
+				<MoldRecord :orderId="orderId" :orderNo="selectedOrder" :machineNo="machineNo" />
 			</view>
 			<view v-if="currentTab === 4" class="tab-content">
 				<!--  璋冪敤 mold 缁勪欢 -->
@@ -277,6 +281,7 @@
 import PrintInit from "../components/PrintInit.vue";
 import PrintTest from "../components/PrintTest.vue";
 import EquipmentInspection from "../components/EquipmentInspection.vue";
+import MoldRecord from "../pages/moldRecord.vue";
 
 	export default {
 		components: {
@@ -290,7 +295,8 @@
 			PDFShow,
 			PrintInit,
 			PrintTest,
-			EquipmentInspection
+			EquipmentInspection,
+			MoldRecord
 		},
 		data() {
 			return {
@@ -325,6 +331,10 @@
 				// 鑷姩璺宠浆鐩稿叧
 				autoRedirectTimer: null,
 				autoRedirectTime: 5 * 60 * 1000, // 5鍒嗛挓
+				
+				// 宸ュ崟閫夋嫨椤甸潰瀹氭椂鍒锋柊
+				autoRefreshTimer: null,
+				autoRefreshInterval: 60 * 1000, // 1鍒嗛挓
 			};
 		},
 		created() {
@@ -351,6 +361,14 @@
 		onShow() {
 			this.refresh();
 			this.resetAutoRedirectTimer();
+			// 濡傛灉鍦ㄥ伐鍗曢�夋嫨椤甸潰锛屽惎鍔ㄥ畾鏃跺埛鏂�
+			if (this.currentTab === 7) {
+				this.startAutoRefresh();
+			}
+		},
+		onHide() {
+			// 椤甸潰闅愯棌鏃舵竻闄ゅ畾鏃跺櫒
+			this.stopAutoRefresh();
 		},
 		methods: {
             onRowClick(index) {
@@ -447,13 +465,32 @@
 			
 			refresh() {
 				this.getMachineList();
-				this.getPrintInfo();
-				this.getWomdaaIsShow();
+				this.getPrintInfo(); // getPrintInfo 瀹屾垚鍚庝細鑷姩璋冪敤 getWomdaaIsShow()
+				// 濡傛灉褰撳墠鍦ㄥ伐鍗曢�夋嫨椤甸潰锛岄粯璁ゅ姞杞藉伐鍗曞垪琛�
+				if (this.currentTab === 7) {
+					// 鏍规嵁褰撳墠缁戝畾宸ュ崟鐨勭姸鎬佸喅瀹氶粯璁ょ瓫閫夋潯浠�
+					let defaultStatus = '寰呭紑宸ャ�佹湭寮�宸ャ�佹殏鍋�';
+					if (this.isShowTableData.length > 0) {
+						const currentOrderStatus = this.isShowTableData[0].daa018;
+						if (currentOrderStatus === '寮�宸�') {
+							defaultStatus = '寮�宸�';
+						} else if (currentOrderStatus === '瀹屽伐') {
+							defaultStatus = '瀹屽伐';
+						}
+					}
+					this.engineeringNo = defaultStatus;
+					this.engineeringNoMapList = [
+						'寰呭紑宸ャ�佹湭寮�宸ャ�佹殏鍋�',
+						'寮�宸�',
+						'瀹屽伐'
+					];
+					this.getWomdaaByStatus();
+				}
 			},
 			getPrintInfo() {
 				var mac = "";
 				
-				mac = "74:24:ca:4f:b2:c3";
+				mac = "74:24:ca:4f:b7:4d";
 				this.$post({
 					url: "/DevMachine/GetDevMachineByPdaMac",
 					data: {
@@ -474,43 +511,43 @@
 				return;
 				
 				
-	 			if (plus.os.name == "Android") {
-	 				//鑾峰彇鎵嬫満MAC鍦板潃
-	 				var Context = plus.android.importClass("android.content.Context");
-	 				var WifiManager = plus.android.importClass("android.net.wifi.WifiManager");
-	 				var wifiManager = plus.android.runtimeMainActivity().getSystemService(Context.WIFI_SERVICE);
-	 				var WifiInfo = plus.android.importClass("android.net.wifi.WifiInfo");
-	 				var wifiInfo = wifiManager.getConnectionInfo();
-	 				mac = wifiInfo.getMacAddress();
+	//  			if (plus.os.name == "Android") {
+	//  				//鑾峰彇鎵嬫満MAC鍦板潃
+	//  				var Context = plus.android.importClass("android.content.Context");
+	//  				var WifiManager = plus.android.importClass("android.net.wifi.WifiManager");
+	//  				var wifiManager = plus.android.runtimeMainActivity().getSystemService(Context.WIFI_SERVICE);
+	//  				var WifiInfo = plus.android.importClass("android.net.wifi.WifiInfo");
+	//  				var wifiInfo = wifiManager.getConnectionInfo();
+	//  				mac = wifiInfo.getMacAddress();
 					
-	 				//濡傛灉mac涓衡��02:00:00:00:00:00鈥濓紝鍒欏彲鑳芥槸瀹夊崜6.0浠ヤ笂鐗堟湰锛屽垯浣跨敤鍙︿竴绉嶆柟娉曡幏鍙杕ac鍦板潃
-	 				if (mac == "02:00:00:00:00:00") {
-	 					mac = this.getMacNew();
-	 				}
-	 				//濡傛灉mac浣跨敤鏂版柟娉曚緷鐒舵槸鈥�02:00:00:00:00:00鈥濆垯涓嶈繘琛屼繚瀛�
-	 				if (mac == "02:00:00:00:00:00") {
-	 					return;
-	 				}
-	 				uni.setStorageSync('pdaMac', mac);
+	//  				//濡傛灉mac涓衡��02:00:00:00:00:00鈥濓紝鍒欏彲鑳芥槸瀹夊崜6.0浠ヤ笂鐗堟湰锛屽垯浣跨敤鍙︿竴绉嶆柟娉曡幏鍙杕ac鍦板潃
+	//  				if (mac == "02:00:00:00:00:00") {
+	//  					mac = this.getMacNew();
+	//  				}
+	//  				//濡傛灉mac浣跨敤鏂版柟娉曚緷鐒舵槸鈥�02:00:00:00:00:00鈥濆垯涓嶈繘琛屼繚瀛�
+	//  				if (mac == "02:00:00:00:00:00") {
+	//  					return;
+	//  				}
+	//  				uni.setStorageSync('pdaMac', mac);
 
-	 				this.$post({
-	 					url: "/DevMachine/GetDevMachineByPdaMac",
-	 					data: {
-	 						pdaMac: mac,
-	 					}
-	 				}).then(res => {
-	 					let devMachine = res.data.tbBillList;
-	 					this.machineNo = devMachine.machineNo;
-	 					this.machineName = "褰撳墠鏈哄彴锛�" + this.machineNo + "鍙烽娇杞満";
+	//  				this.$post({
+	//  					url: "/DevMachine/GetDevMachineByPdaMac",
+	//  					data: {
+	//  						pdaMac: mac,
+	//  					}
+	//  				}).then(res => {
+	//  					let devMachine = res.data.tbBillList;
+	//  					this.machineNo = devMachine.machineNo;
+	//  					this.machineName = "褰撳墠鏈哄彴锛�" + this.machineNo + "鍙烽娇杞満";
 
-	 					uni.setStorageSync('machineNo', this.machineNo);
-	 					uni.setStorageSync('printMac', devMachine.printMac);
+	//  					uni.setStorageSync('machineNo', this.machineNo);
+	//  					uni.setStorageSync('printMac', devMachine.printMac);
  
 
-	 					this.getWomdaaIsShow();
+	//  					this.getWomdaaIsShow();
 
-	 				});
-	 			}
+	//  				});
+	//  			}
 			},
 			save() {
 				let data = this.selectedItems();
@@ -650,6 +687,11 @@
 				// 褰撳垏鎹㈠埌宸ュ崟閫夋嫨椤甸潰(index === 7)鏃惰嚜鍔ㄥ埛鏂�
 				if (index === 7) {
 					this.refresh();
+					// 鍚姩瀹氭椂鍒锋柊
+					this.startAutoRefresh();
+				} else {
+					// 绂诲紑宸ュ崟閫夋嫨椤甸潰鏃跺仠姝㈠畾鏃跺埛鏂�
+					this.stopAutoRefresh();
 				}
 				// 閲嶇疆鑷姩璺宠浆璁℃椂鍣�
 				this.resetAutoRedirectTimer();
@@ -782,6 +824,151 @@
                 this.productCode = item.daa002; // 浜у搧缂栫爜
                 this.productSpec = item.daa004; // 浜у搧瑙勬牸
 				this.currentTab = 0;
+			},
+			
+			// 鑾峰彇寮�宸ユ寜閽殑class
+			getStartBtnClass(item) {
+				const isSelected = this.isShowTableData.length > 0 && this.isShowTableData[0].daa001 === item.daa001;
+				if (isSelected) {
+					return 'start-btn start-btn-selected'; // 褰撳墠閫変腑鐨勫伐鍗曪紝缁胯壊
+				}
+				return 'start-btn';
+			},
+			
+			// 鍒ゆ柇寮�宸ユ寜閽槸鍚︾鐢�
+			isStartBtnDisabled(item) {
+				// 濡傛灉宸茬粡鏈夐�変腑鐨勫伐鍗曪紝涓斿綋鍓嶉」涓嶆槸閫変腑鐨勫伐鍗曪紝鍒欑鐢�
+				if (this.isShowTableData.length > 0 && this.isShowTableData[0].daa001 !== item.daa001) {
+					return true;
+				}
+				return false;
+			},
+			
+			// 鍒ゆ柇鏆傚仠鎸夐挳鏄惁绂佺敤
+			isPauseBtnDisabled(item) {
+				// 濡傛灉宸茬粡鏈夐�変腑鐨勫伐鍗曪紝涓斿綋鍓嶉」涓嶆槸閫変腑鐨勫伐鍗曪紝鍒欑鐢�
+				if (this.isShowTableData.length > 0 && this.isShowTableData[0].daa001 !== item.daa001) {
+					return true;
+				}
+				// 濡傛灉杩樻病鏈夐�変腑浠讳綍宸ュ崟锛屼篃绂佺敤鏆傚仠鎸夐挳
+				if (this.isShowTableData.length === 0) {
+					return true;
+				}
+				return false;
+			},
+			
+			// 鑾峰彇寮�宸ユ寜閽枃鏈�
+			getStartBtnText(item) {
+				const isSelected = this.isShowTableData.length > 0 && this.isShowTableData[0].daa001 === item.daa001;
+				if (isSelected) {
+					return '杞烦鎶ュ伐鐣岄潰';
+				}
+				return '寮�宸�';
+			},
+			
+			// 澶勭悊寮�宸�
+			async handleStartWork(item) {
+				// 鍒ゆ柇褰撳墠宸ュ崟鏄惁宸查�変腑
+				const isSelected = this.isShowTableData.length > 0 && this.isShowTableData[0].daa001 === item.daa001;
+				
+				if (isSelected) {
+					// 濡傛灉宸查�変腑锛屽垯鍏堣烦杞埌涓荤晫闈紝鐒跺悗璺宠浆鍒版姤宸ョ晫闈�
+					this.toDetail(item);
+					// 寤惰繜璺宠浆鍒版姤宸ョ晫闈�
+					setTimeout(() => {
+						this.currentTab = 4;
+					}, 100);
+				} else {
+					// 濡傛灉鏈�変腑锛屽垯鎵ц寮�宸ラ�昏緫
+					let orderSelect = [{
+						orderId: item.id,
+						orderNo: item.daa001
+					}];
+					
+					let editDate = this.formatDate(new Date());
+					
+					this.$post({
+						url: "/MesOrderSelect/Add",
+						data: {
+							machineNo: this.machineNo,
+							editDate: editDate,
+							item: orderSelect
+						}
+					}).then(res => {
+						if (res.data.tbBillList) {
+							this.getWomdaaIsShow();
+							uni.showToast({
+								title: '寮�宸ユ垚鍔�',
+								icon: 'success',
+								duration: 2000
+							});
+						}
+					});
+				}
+			},
+			
+			// 澶勭悊鏆傚仠锛堜娇鐢ㄦ竻绌洪噸閫夌殑閫昏緫锛�
+			async handlePauseWork(item) {
+				if (!this.machineNo) {
+					return;
+				}
+								
+				// 鐩存帴鐢� flag 鍒ゆ柇
+				if (this.hasBindedCutterFlag) {
+					uni.showToast({
+						title: '褰撳墠宸ュ崟宸茬粦瀹氬垁鍏凤紝涓嶈兘鏆傚仠',
+						icon: 'error',
+						duration: 2000
+					});
+					return;
+				}
+								
+				let editDate = this.formatDate(new Date());
+				this.selectedIndexs = [];
+								
+				this.$post({
+					url: "/MesOrderSelect/Remove",
+					data: {
+						machineNo: this.machineNo,
+						editDate: editDate
+					},
+				}).then(res => {
+					if (res.data.tbBillList > 0) {
+						this.isShowTableData = [];
+						uni.showToast({
+							title: '宸ュ崟宸叉殏鍋�',
+							icon: 'success',
+							duration: 2000
+						});
+											
+						// 鏆傚仠鎴愬姛鍚庯紝鍒锋柊褰撳墠椤甸潰
+						setTimeout(() => {
+							this.refresh();
+						}, 500);
+					}
+				});
+			},
+				
+			// 鍚姩鑷姩鍒锋柊
+			startAutoRefresh() {
+				// 鍏堟竻闄ょ幇鏈夊畾鏃跺櫒
+				this.stopAutoRefresh();
+				// 鍙湪宸ュ崟閫夋嫨椤甸潰鍚姩瀹氭椂鍒锋柊
+				if (this.currentTab === 7) {
+					this.autoRefreshTimer = setInterval(() => {
+						if (this.currentTab === 7) {
+							this.refresh();
+						}
+					}, this.autoRefreshInterval);
+				}
+			},
+				
+			// 鍋滄鑷姩鍒锋柊
+			stopAutoRefresh() {
+				if (this.autoRefreshTimer) {
+					clearInterval(this.autoRefreshTimer);
+					this.autoRefreshTimer = null;
+				}
 			}
 		},
 		computed: {}
@@ -953,7 +1140,7 @@
 
 	.top-right {
 		position: absolute;
-		top: 10px;
+		top: -15px;
 		right: 50px;
 		z-index: 1000;
 	}
@@ -1080,6 +1267,75 @@
 		background-color: #00A2E9;
 		color: white;
 	}
+	
+	/* 鎿嶄綔鎸夐挳鍖哄煙 */
+	.operation-btns {
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		gap: 10px;
+	}
+	
+	/* 寮�宸ユ寜閽� */
+	.start-btn {
+		padding: 8px 20px;
+		background-color: #00A2E9;
+		color: white;
+		font-size: 18px;
+		font-weight: 500;
+		border: none;
+		border-radius: 4px;
+		cursor: pointer;
+		transition: all 0.3s;
+		box-shadow: 0 2px 4px rgba(0, 162, 233, 0.2);
+	}
+	
+	.start-btn:hover:not(:disabled) {
+		background-color: #0092d6;
+		box-shadow: 0 4px 8px rgba(0, 162, 233, 0.3);
+		transform: translateY(-1px);
+	}
+	
+	/* 寮�宸ユ寜閽� - 閫変腑鐘舵�侊紙缁胯壊锛� */
+	.start-btn-selected {
+		background-color: #52c41a !important;
+		box-shadow: 0 2px 4px rgba(82, 196, 26, 0.3) !important;
+	}
+	
+	.start-btn-selected:hover:not(:disabled) {
+		background-color: #49b015 !important;
+		box-shadow: 0 4px 8px rgba(82, 196, 26, 0.4) !important;
+	}
+	
+	/* 鏆傚仠鎸夐挳 */
+	.pause-btn {
+		padding: 8px 20px;
+		background-color: #ff4d4f;
+		color: white;
+		font-size: 18px;
+		font-weight: 500;
+		border: none;
+		border-radius: 4px;
+		cursor: pointer;
+		transition: all 0.3s;
+		box-shadow: 0 2px 4px rgba(255, 77, 79, 0.2);
+	}
+	
+	.pause-btn:hover:not(:disabled) {
+		background-color: #ff3336;
+		box-shadow: 0 4px 8px rgba(255, 77, 79, 0.3);
+		transform: translateY(-1px);
+	}
+	
+	/* 鎸夐挳绂佺敤鐘舵�� */
+	.start-btn:disabled,
+	.pause-btn:disabled {
+		background-color: #d9d9d9 !important;
+		color: #999 !important;
+		cursor: not-allowed !important;
+		box-shadow: none !important;
+		opacity: 0.6;
+	}
 
     .overlay {
         position: fixed;

--
Gitblit v1.9.3