From 661d1a63f7de63dc86b9e3b22f0267acc57cd484 Mon Sep 17 00:00:00 2001
From: 快乐的昕的电脑 <快乐的昕的电脑@DESKTOP-C2BQPQU>
Date: 星期一, 13 十月 2025 15:55:47 +0800
Subject: [PATCH] BUG修改

---
 components/mold.vue |  363 +++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 263 insertions(+), 100 deletions(-)

diff --git a/components/mold.vue b/components/mold.vue
index 610d4b8..919b29f 100644
--- a/components/mold.vue
+++ b/components/mold.vue
@@ -1,33 +1,32 @@
 <template>
-	<!-- 鍒�鍏风鐞� -->
 	<view class="page">
-		<!-- 椤堕儴Tab鏍忥紙濡傛湁闇�瑕佸彲淇濈暀锛� -->
 		<!-- 鍒�鍏烽�夋嫨鍖� -->
-		<view class="top-section">
-			<view class="form-group">
-				<label>閫夋嫨鍒�鍏风紪鍙凤細</label>
-				<view class="form-group">
-					<label>璁剧疆浣跨敤涓婇檺锛�</label>
-					<input class="input"
-						   type="number"
-						   v-model="useLimitInput"
-						   placeholder="姣忔鎹㈠垁鍚庢墜濉�"
-						   :disabled="!selectedToolNo" />
-					<button class="btn-blue" @click="setUseLimit" :disabled="!selectedToolNo || !useLimitInput">淇濆瓨涓婇檺</button>
-				</view>
-				<select v-model="selectedToolNo">
+		<view class="top-section-grid">
+			<view class="form-cell">
+				<label class="form-label">閫夋嫨鍒�鍏风紪鍙凤細</label>
+				<select v-model="selectedToolNo" class="form-select">
 					<option v-for="tool in toolList" :key="tool.no" :value="tool.no">{{ tool.no }} | {{ tool.name }}</option>
 				</select>
 				<button class="btn-blue" @click="showToolDialog = true">鍒�鍏风洰褰�</button>
 			</view>
-			<view class="form-group">
-				<label>鍒�鍏峰悕绉帮細</label>
-				<input class="input" v-model="toolName" placeholder="鍒�鍏峰甫鍑�" disabled />
+			<view class="form-cell">
+				<label class="form-label">璁剧疆浣跨敤涓婇檺锛�</label>
+				<input class="input" type="number" v-model="useLimitInput" placeholder="姣忔鎹㈠垁鍚庢墜濉�" :disabled="!selectedToolNo" />
+				<button class="btn-blue" @click="setUseLimit" :disabled="!selectedToolNo || !useLimitInput">淇濆瓨涓婇檺</button>
 			</view>
-			<view class="form-group">
-				<label>瑙勬牸鍨嬪彿锛�</label>
+			<view class="form-cell">
+				<label class="form-label">鍒�鍏峰悕绉帮細</label>
+				<input class="input" v-model="toolName" placeholder="鍒�鍏峰甫鍑�" disabled />
+				<label class="form-label" style="margin-left: 16px;">瑙勬牸鍨嬪彿锛�</label>
 				<input class="input" v-model="toolModel" placeholder="鍒�鍏峰甫鍑�" disabled />
 			</view>
+		</view>
+
+		<!-- 鎿嶄綔鎸夐挳 -->
+		<view class="button-row">
+			<button class="save-btn" @click="handleUpTool">涓婂垁鎻愪氦</button>
+			<button class="save-btn" @click="handleDownTool">涓嬪垁鎻愪氦</button>
+			<button class="cancel-btn" @click="cancel">鍙栨秷</button>
 		</view>
 
 		<!-- 鍒�鍏风洰褰曞脊绐� -->
@@ -43,8 +42,15 @@
 					</button>
 				</view>
 				<view class="dialog-actions">
-					<button class="btn-blue" @click="confirmTool">纭畾</button>
-					<button class="btn-disabled" @click="showToolDialog = false">鍙栨秷</button>
+					<div style="display: flex; align-items: center;">
+						<button class="btn-blue" @click="prevPage" :disabled="pageIndex === 1">涓婁竴椤�</button>
+						<span style="margin: 0 12px;">绗瑊{ pageIndex }}椤� / 鍏眥{ totalPages }}椤�</span>
+						<button class="btn-blue" @click="nextPage" :disabled="pageIndex === totalPages">涓嬩竴椤�</button>
+					</div>
+					<div>
+						<button class="btn-blue" @click="confirmTool">纭畾</button>
+						<button class="btn-disabled" @click="showToolDialog = false">鍙栨秷</button>
+					</div>
 				</view>
 			</view>
 		</view>
@@ -85,13 +91,6 @@
 			</table>
 		</view>
 
-		<!-- 涓婁笅鍒�鎸夐挳 -->
-		<view class="bottom-section">
-			<button class="save-btn" @click="handleUpTool">涓婂垁鎻愪氦</button>
-			<button class="save-btn" @click="handleDownTool">涓嬪垁鎻愪氦</button>
-			<button class="cancel-btn" @click="cancel">鍙栨秷</button>
-		</view>
-
 		<!-- 璇存槑 -->
 		<view class="tool-desc">
 			<p style="color:red;">褰撳墠宸ュ崟涓紝鎹簡鍑犳鍒�锛屽氨浼氫骇鐢熷嚑鏉℃暟鎹�備笂鍒�鏃堕棿銆佷笅鍒�鏃堕棿鍦ㄨ〃涓兘鐪嬪埌銆�</p>
@@ -105,29 +104,65 @@
 	export default {
 		data() {
 			return {
-				toolList: [
-					// 绀轰緥鏁版嵁锛屽疄闄呭簲浠庡悗绔帴鍙h幏鍙�
-					{ no: 'T22050338', name: 'm1.5鍚堥噾闀垮垁', model: 'xxx' },
-					{ no: 'T22050337', name: 'm0.546鍚堥噾闀垮垁', model: 'yyy' }
-				],
+				machineNo: '',//鏈哄彴缂栫爜
+                workOrderNo: '',//宸ュ崟鍙�
+				pageIndex: 1,
+				pageSize: 18,
+				total: 0,
+				toolList: [],
 				selectedToolNo: '',
 				toolName: '',
 				toolModel: '',
 				showToolDialog: false,
 				searchKey: '',
 				filteredTools: [],
-                useLimitInput: '',
-				toolRecords: [
-					// 绀轰緥鏁版嵁锛屽疄闄呭簲浠庡悗绔帴鍙h幏鍙�
-					{ id: 1, no: 'T22050338', name: 'm1.5鍚堥噾闀垮垁', upTime: '7-13 9:00', upCount: 15, downTime: '7-13 19:00', downCount: 3115, useCount: 3100, useLimit: 8888, lifePercent: '34.88%', lifeWarn: '90%', warnStatus: '姝e父' }
-				]
+				useLimitInput: '',
+				toolRecords: []
 			};
 		},
+		computed: {
+			totalPages() {
+				return Math.ceil(this.total / this.pageSize) || 1;
+			}
+		},
 		methods: {
-			searchTool() {
-				this.filteredTools = this.toolList.filter(t =>
-					t.no.includes(this.searchKey) || t.name.includes(this.searchKey)
-				);
+			async fetchTools(searchKey) {
+				const res = await this.$post({
+					url: '/MesCutterLedger/QueryTools',
+					data: JSON.stringify({
+						searchKey,
+						pageIndex: this.pageIndex,
+						pageSize: this.pageSize
+					}),
+					headers: { 'Content-Type': 'application/json' }
+				});
+				if (res.status === 0) {
+					this.filteredTools = res.data.tbBillList.map(t => ({
+						no: t.cutterId || t.no,
+						name: t.cutterName || t.name,
+						model: t.cutterModel || t.model
+					}));
+					this.total = res.data.total || 0; // 鍋囪鍚庣杩斿洖鎬绘暟
+				} else {
+					this.$showMessage(res.message || '鏌ヨ澶辫触');
+				}
+			},
+			//缈婚〉
+			async prevPage() {
+				if (this.pageIndex > 1) {
+					this.pageIndex--;
+					await this.fetchTools(this.searchKey);
+				}
+			},
+			async nextPage() {
+				if (this.pageIndex < this.totalPages) {
+					this.pageIndex++;
+					await this.fetchTools(this.searchKey);
+				}
+			},
+			async searchTool() {
+				this.pageIndex = 1; // 鎼滅储鏃堕噸缃埌绗竴椤�
+				await this.fetchTools(this.searchKey);
 			},
 			selectTool(tool) {
 				this.selectedToolNo = tool.no;
@@ -137,53 +172,180 @@
 			confirmTool() {
 				this.showToolDialog = false;
 			},
-			handleUpTool() {
-				// 涓婂垁鎻愪氦閫昏緫锛岃皟鐢ㄥ悗绔帴鍙�
-				this.$showMessage('涓婂垁鎻愪氦鎴愬姛锛堢ず渚嬶級');
-			},
-			handleDownTool() {
-				// 涓嬪垁鎻愪氦閫昏緫锛岃皟鐢ㄥ悗绔帴鍙�
-				this.$showMessage('涓嬪垁鎻愪氦鎴愬姛锛堢ず渚嬶級');
-			},
+			async handleUpTool() {
+                if (!this.workOrderNo) {
+                    this.$showMessage('宸ュ崟鍙蜂笉鑳戒负绌�');
+                    return;
+                }
+                if (!this.machineNo) {
+                    this.$showMessage('鏈哄彴鍙蜂笉鑳戒负绌�');
+                    return;
+                }
+                if (!this.selectedToolNo) {
+                    this.$showMessage('鍒�鍏风紪鍙蜂笉鑳戒负绌�');
+                    return;
+                }
+                if (!this.useLimitInput) {
+                    this.$showMessage('浣跨敤涓婇檺涓嶈兘涓虹┖');
+                    return;
+				}
+                const useLimit = Number(this.useLimitInput);
+                if (isNaN(useLimit) || useLimit <= 0) {
+                    this.$showMessage('璇疯緭鍏ユ湁鏁堢殑浣跨敤涓婇檺');
+                    return;
+                }
+                const payload = {
+                    workOrderNo: this.workOrderNo,   // 宸ュ崟鍙�
+                    machineNo: this.machineNo,       // 鏈哄彴缂栧彿
+                    toolNo: this.selectedToolNo,     // 鍒�鍏风紪鍙�
+                    type: '涓婂垁',                         // 涓婂垁
+                    useLimit: this.useLimitInput ? Number(this.useLimitInput) : null // 浣跨敤涓婇檺
+                };
+                const res = await this.$post({
+                    url: '/MesCutterLedger/SubmitToolAction',
+                    data: JSON.stringify(payload),
+                    headers: { 'Content-Type': 'application/json' }
+                });
+                if (res.status === 0) {
+                    this.$showMessage('涓婂垁鎻愪氦鎴愬姛');
+                } else {
+                    this.$showMessage(res.message || '涓婂垁鎻愪氦澶辫触');
+                }
+            },
+			async handleDownTool() {
+                if (!this.workOrderNo) {
+                    this.$showMessage('宸ュ崟鍙蜂笉鑳戒负绌�');
+                    return;
+                }
+                if (!this.machineNo) {
+                    this.$showMessage('鏈哄彴鍙蜂笉鑳戒负绌�');
+                    return;
+                }
+                if (!this.selectedToolNo) {
+                    this.$showMessage('鍒�鍏风紪鍙蜂笉鑳戒负绌�');
+                    return;
+                }
+                if (!this.useLimitInput) {
+                    this.$showMessage('浣跨敤涓婇檺涓嶈兘涓虹┖');
+                    return;
+				}
+                const useLimit = Number(this.useLimitInput);
+                if (isNaN(useLimit) || useLimit <= 0) {
+                    this.$showMessage('璇疯緭鍏ユ湁鏁堢殑浣跨敤涓婇檺');
+                    return;
+                }
+                const payload = {
+                    workOrderNo: this.workOrderNo,
+                    machineNo: this.machineNo,
+                    toolNo: this.selectedToolNo,
+                    type: '涓嬪垁', // 涓嬪垁
+                    useLimit: this.useLimitInput ? Number(this.useLimitInput) : null
+                };
+                const res = await this.$post({
+                    url: '/MesCutterLedger/SubmitToolAction',
+                    data: JSON.stringify(payload),
+                    headers: { 'Content-Type': 'application/json' }
+                });
+                if (res.status === 0) {
+                    this.$showMessage('涓嬪垁鎻愪氦鎴愬姛');
+                } else {
+                    this.$showMessage(res.message || '涓嬪垁鎻愪氦澶辫触');
+                }
+            },
 			cancel() {
 				this.selectedToolNo = '';
 				this.toolName = '';
 				this.toolModel = '';
-			}
+			},
+            async fetchFormData() {
+                if (!this.workOrderNo || !this.machineNo) {
+                    console.warn('宸ュ崟鍙锋垨鏈哄彴鍙蜂负绌猴紝璺宠繃鑾峰彇琛ㄥ崟鏁版嵁');
+                    return;
+                }
+
+                const payload = {
+                    workOrderNo: this.workOrderNo.trim(),
+                    machineNo: this.machineNo.trim()
+                };
+
+                try {
+                    console.log('璇锋眰鍙傛暟:', payload); // 娣诲姞璋冭瘯鏃ュ織
+
+                    const res = await this.$post({
+                        url: '/MesCutterLedger/GetFormData',
+                        data: JSON.stringify(payload),
+                        headers: { 'Content-Type': 'application/json' }
+                    });
+
+                    if (res.status === 0) {
+                        console.log('鑾峰彇鏁版嵁鎴愬姛:', res.data);
+                        // ... 澶勭悊鏁版嵁
+                    } else {
+                        this.$showMessage(res.message || '鑾峰彇琛ㄥ崟鏁版嵁澶辫触');
+                    }
+                } catch (error) {
+                    console.error('鑾峰彇琛ㄥ崟鏁版嵁閿欒:', error);
+                    this.$showMessage('鑾峰彇鏁版嵁澶辫触锛岃妫�鏌ョ綉缁滆繛鎺�');
+                }
+            }
+            //// 娣诲姞杈呭姪鏂规硶
+            //formatDateTime(dateTimeStr) {
+            //    if (!dateTimeStr) return '';
+            //    // 鏍规嵁鍚庣杩斿洖鐨勬椂闂存牸寮忚繘琛岃皟鏁�
+            //    const date = new Date(dateTimeStr);
+            //    return `${date.getMonth() + 1}-${date.getDate()} ${date.getHours()}:${date.getMinutes().toString().padStart(2, '0')}`;
+            //}
 		},
-		mounted() {
-			// 瀹為檯搴斾粠鍚庣鍔犺浇鍒�鍏风洰褰曞拰浣跨敤璁板綍
-			this.filteredTools = this.toolList;
-		}
+        mounted() {
+            this.fetchTools('');
+            this.machineNo = uni.getStorageSync('machineNo') || '';
+            this.workOrderNo = uni.getStorageSync('daa001') || '';
+
+            // 娣诲姞璋冭瘯淇℃伅
+            console.log('鏈哄彴鍙�:', this.machineNo);
+            console.log('宸ュ崟鍙�:', this.workOrderNo);
+
+            if (this.machineNo && this.workOrderNo) {
+                this.fetchFormData();
+            } else {
+                console.warn('鏈哄彴鍙锋垨宸ュ崟鍙蜂负绌猴紝鏃犳硶鑾峰彇琛ㄥ崟鏁版嵁');
+            }
+        }
 	};
 </script>
 
 <style scoped>
-	.page {
-		padding: 2vh;
+	.top-section-grid {
 		display: flex;
-		flex-direction: column;
-		box-sizing: border-box;
-	}
-
-	.top-section {
-		display: flex;
-		flex-wrap: wrap;
+		justify-content: center;
+		align-items: flex-end;
+		gap: 32px;
 		margin-bottom: 2vh;
 	}
 
-	.form-group {
+	.form-cell {
 		display: flex;
 		align-items: center;
-		margin-right: 2vw;
-		margin-bottom: 1.5vh;
+	}
+
+	.form-label {
+		width: 90px;
+		font-weight: bold;
 	}
 
 	.input {
 		padding: 1vh;
-		font-size: 1.5vw;
+		font-size: 1.1vw;
 		border: 1px solid #ccc;
-		width: 16vw;
+		width: 10vw;
+		margin-right: 8px;
+	}
+
+	.form-select {
+		width: 12vw;
+		padding: 1vh;
+		font-size: 1.1vw;
+		margin-right: 8px;
 	}
 
 	.btn-blue {
@@ -191,19 +353,32 @@
 		color: white;
 		border: none;
 		padding: 8px 18px;
-		margin-left: 10px;
+		margin-left: 8px;
 		border-radius: 5px;
 		cursor: pointer;
 	}
 
-	.btn-disabled {
-		background-color: #ccc;
+	.button-row {
+		display: flex;
+		justify-content: center;
+		gap: 32px;
+		margin: 2vh 0;
+	}
+
+	.save-btn, .cancel-btn {
+		width: 28%;
+		padding: 1.5vh;
+		background-color: #00A2E9;
 		color: white;
+		font-size: 1.2vw;
 		border: none;
-		padding: 8px 18px;
-		margin-left: 10px;
+		text-align: center;
 		border-radius: 5px;
-		cursor: not-allowed;
+	}
+
+	.cancel-btn {
+		background-color: #ccc;
+		color: #333;
 	}
 
 	.dialog-overlay {
@@ -230,16 +405,20 @@
 		display: flex;
 		flex-wrap: wrap;
 		margin: 1vh 0;
+		max-height: 40vh;
+		overflow-y: auto;
 	}
 
-	.tool-btn {
-		margin: 5px 10px 5px 0;
-		padding: 8px 16px;
-		background: #f5f5f5;
-		border: 1px solid #ccc;
-		border-radius: 4px;
-		cursor: pointer;
-	}
+    .tool-btn {
+        margin: 5px 10px 5px 0;
+        padding: 8px 16px;
+        background: #f5f5f5;
+        border: 1px solid #ccc;
+        border-radius: 4px;
+        cursor: pointer;
+        background: #e0e0e0;
+        color: #888;
+    }
 
 	.dialog-actions {
 		display: flex;
@@ -273,22 +452,6 @@
 		display: flex;
 		justify-content: space-around;
 		margin-top: 2vh;
-	}
-
-	.save-btn, .cancel-btn {
-		width: 28%;
-		padding: 1.5vh;
-		background-color: #00A2E9;
-		color: white;
-		font-size: 1.2vw;
-		border: none;
-		text-align: center;
-		border-radius: 5px;
-	}
-
-	.cancel-btn {
-		background-color: #ccc;
-		color: #333;
 	}
 
 	.tool-desc {

--
Gitblit v1.9.3