From 0b7bc50347ee1af032eb5e64c82e55fd43f1a93d Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期五, 14 十一月 2025 11:49:54 +0800
Subject: [PATCH] *

---
 src/main/webapp/views/orderCargoGrouping/orderCargoGroupingOperate.html |  301 ++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 245 insertions(+), 56 deletions(-)

diff --git a/src/main/webapp/views/orderCargoGrouping/orderCargoGroupingOperate.html b/src/main/webapp/views/orderCargoGrouping/orderCargoGroupingOperate.html
index 315fbe5..4138c62 100644
--- a/src/main/webapp/views/orderCargoGrouping/orderCargoGroupingOperate.html
+++ b/src/main/webapp/views/orderCargoGrouping/orderCargoGroupingOperate.html
@@ -121,16 +121,6 @@
 						@keyup.enter.native="handleSearch"
 				></el-input>
 			</div>
-<!--			<div class="search-item">-->
-<!--				<span class="search-label">璁㈠崟缂栧彿:</span>-->
-<!--				<el-input-->
-<!--						v-model="searchForm.orderNo"-->
-<!--						placeholder="璇疯緭鍏ヨ鍗曠紪鍙�"-->
-<!--						clearable-->
-<!--						style="width: 150px;"-->
-<!--						@keyup.enter.native="handleSearch"-->
-<!--				></el-input>-->
-<!--			</div>-->
 			<div class="search-item">
 				<span class="search-label">鐘舵��:</span>
 				<el-select
@@ -168,13 +158,12 @@
 				style="width: 100%"
 				v-loading="loading"
 				@sort-change="handleSortChange">
-			<el-table-column prop="itemName" label="缁勮揣鍗曞彿" width="120" align="center" sortable="custom"></el-table-column>
-<!--			<el-table-column prop="orderNo" label="璁㈠崟缂栧彿" min-width="140" align="center"></el-table-column>-->
-<!--			<el-table-column prop="memo" label="澶囨敞" min-width="120" align="center"></el-table-column>-->
+			<el-table-column prop="itemName" label="缁勮揣鍗曞彿" width="240" align="center" sortable="custom"></el-table-column>
 			<el-table-column prop="cstmrName" label="瀹㈡埛鍚嶇О" min-width="120" align="center"></el-table-column>
+			<el-table-column prop="orderCount" label="缁勮揣鍗曟暟" width="80" align="center"></el-table-column>
 			<el-table-column prop="settle" label="鐘舵��" min-width="100" align="center" :formatter="formatStatus"></el-table-column>
-<!--			<el-table-column prop="totalFee" label="鍚堣閲戦" min-width="100" align="center" :formatter="formatCurrency"></el-table-column>-->
-<!--			<el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="140" align="center" sortable="custom"></el-table-column>-->
+			<el-table-column prop="createTime" label="鏃ユ湡" min-width="100" align="center" :formatter="formatDateColumn"></el-table-column>
+			<el-table-column prop="updateTime" label="鏇存柊鏃ユ湡" min-width="100" align="center" :formatter="formatDateColumn"></el-table-column>
 			<el-table-column label="鎿嶄綔" width="150" align="center" fixed="right">
 				<template slot-scope="scope">
 					<div class="operation-cell">
@@ -213,7 +202,6 @@
 		<div v-if="currentRow">
 			<h3>缁勮揣鍗曚富琛� (缁勮揣鍗曞彿: {{ currentRow.itemName }})</h3>
 			<el-descriptions :column="2" border>
-<!--				<el-descriptions-item label="璁㈠崟缂栧彿">{{ currentRow.orderNo }}</el-descriptions-item>-->
 				<el-descriptions-item label="瀹㈡埛鍚嶇О">{{ currentRow.cstmrName }}</el-descriptions-item>
 				<el-descriptions-item label="鐘舵��">{{ formatStatus(currentRow)}}</el-descriptions-item>
 				<el-descriptions-item label="鍒涘缓鏃堕棿">{{ formatDate(currentRow.createTime) }}</el-descriptions-item>
@@ -233,7 +221,25 @@
 				<el-table-column prop="danger" label="寰呭垽" min-width="100" align="center"></el-table-column>
 				<el-table-column prop="memo" label="澶囨敞" min-width="100" align="center"></el-table-column>
 				<el-table-column prop="status" label="鐘舵��" min-width="100" align="center" :formatter="formatStatusB"></el-table-column>
-				<!-- 鍙牴鎹疄闄呴渶姹傛坊鍔犳洿澶氬瓙琛ㄥ垪 -->
+				<!-- 鏂板鎿嶄綔鍒楋紝鏍规嵁status鍊兼帶鍒舵樉绀� -->
+				<el-table-column label="鏄惁涓婃姤" width="120" align="center" fixed="right">
+					<template slot-scope="scope">
+						<div class="operation-cell">
+							<el-button v-if="scope.row.status === 2"
+									   type="primary"
+									   size="mini"
+									   @click="handleModifyN(scope.row)">
+								鍚�
+							</el-button>
+							<el-button v-if="scope.row.status === 1"
+									   type="primary"
+									   size="mini"
+									   @click="handleModifyY(scope.row)">
+								鏄�
+							</el-button>
+						</div>
+					</template>
+				</el-table-column>
 			</el-table>
 
 			<!-- 瀛愯〃鍒嗛〉 -->
@@ -255,7 +261,8 @@
 					class="confirm-report-btn"
 					@click="showConfirmDialog"
 					:loading="reportLoading">
-				纭涓婃姤
+				<!-- 鐩存帴鍦ㄦā鏉夸腑鍒ゆ柇 -->
+				{{ settleA === 17 ? '鍐嶆涓婃姤' :  '纭涓婃姤' }}
 			</el-button>
 			<el-button @click="closeDetailDialog">鍏抽棴</el-button>
 		</div>
@@ -289,6 +296,7 @@
 			currentRow: null,
 			// 瀛愯〃鍒嗛〉
 			detailCurrentPage: 1,
+			settleA: 1,
 			detailPageSize: 5,
 			detailTotal: 0,
 			// 鍔犺浇鐘舵��
@@ -343,7 +351,6 @@
 
 				$.ajax({
 					url: baseUrl + "/order/pakout/order/cargo/grouping/auth/v1",
-					// url: baseUrl + "/order/head/page/auth",
 					headers: {
 						'token': localStorage.getItem('token')
 					},
@@ -386,7 +393,6 @@
 				// 妯℃嫙API璋冪敤 - 鏍规嵁瀹為檯涓氬姟璋冩暣API鍦板潃
 				$.ajax({
 					url: baseUrl + "/order/pakout/orderDetl/cargo/grouping/auth",
-					// url: baseUrl + "/orderDetl/list/auth",
 					headers: {
 						'token': localStorage.getItem('token')
 					},
@@ -413,6 +419,108 @@
 				});
 			},
 
+			// 澶勭悊淇敼鎸夐挳鐐瑰嚮浜嬩欢
+			handleModifyY(row) {
+				if (!this.currentRow) {
+					this.$message.error('娌℃湁閫夋嫨涓昏〃鏁版嵁');
+					return;
+				}
+
+				const groupOrderNo = this.currentRow.itemName; // 缁勮揣鍗曞彿
+				const batch = row.batch; // 绠卞彿
+				const status = 2; // 绠卞彿
+
+				this.$confirm(
+						`纭畾灏嗙粍璐у崟鍙凤細 <strong style="color: #409EFF;">${groupOrderNo}</strong> 涓殑绠卞彿锛� <strong style="color: #409EFF;">${batch}</strong> 娣诲姞鍒颁笂鎶ュ垪鍚楋紵`,
+						'纭淇敼',
+						{
+							confirmButtonText: '纭淇敼',
+							cancelButtonText: '鍙栨秷',
+							type: 'warning',
+							dangerouslyUseHTMLString: true
+						}
+				).then(() => {
+					this.submitModify(groupOrderNo, batch, status);
+				}).catch(() => {
+					this.$message({
+						type: 'info',
+						message: '宸插彇娑堜慨鏀�'
+					});
+				});
+			},
+
+			// 澶勭悊淇敼鎸夐挳鐐瑰嚮浜嬩欢
+			handleModifyN(row) {
+				if (!this.currentRow) {
+					this.$message.error('娌℃湁閫夋嫨涓昏〃鏁版嵁');
+					return;
+				}
+
+				const groupOrderNo = this.currentRow.itemName; // 缁勮揣鍗曞彿
+				const batch = row.batch; // 绠卞彿
+				const status = 1; // 绠卞彿
+
+				this.$confirm(
+						`纭畾灏嗙粍璐у崟鍙凤細 <strong style="color: #409EFF;">${groupOrderNo}</strong> 銆佺鍙凤細 <strong style="color: #409EFF;">${batch}</strong> 娣诲姞鍒颁笂鎶ュ垪鍚楋紵`,
+						'纭淇敼',
+						{
+							confirmButtonText: '纭淇敼',
+							cancelButtonText: '鍙栨秷',
+							type: 'warning',
+							dangerouslyUseHTMLString: true
+						}
+				).then(() => {
+					this.submitModify(groupOrderNo, batch, status);
+				}).catch(() => {
+					this.$message({
+						type: 'info',
+						message: '宸插彇娑堜慨鏀�'
+					});
+				});
+			},
+
+			// 鎻愪氦淇敼鍒板悗鍙�
+			submitModify(groupOrderNo, batch, status) {
+				// 鏄剧ず鍔犺浇鐘舵��
+				const loadingInstance = this.$loading({
+					lock: true,
+					text: '鎻愪氦淇敼涓�...',
+					spinner: 'el-icon-loading',
+					background: 'rgba(0, 0, 0, 0.7)'
+				});
+
+				$.ajax({
+					url: baseUrl + "/order/pakout/orderDetl/batch/report/auth",
+					headers: {'token': localStorage.getItem('token')},
+					data: top.reObject({
+						item_name: groupOrderNo, // 缁勮揣鍗曞彿
+						batch: batch, // 绠卞彿
+						status: status // 绠卞彿
+					}),
+					method: 'POST',
+					success: (res) => {
+						loadingInstance.close();
+
+						if (res.code === 200 || res.success) {
+							this.$message({
+								message: `淇敼鎴愬姛锛佺粍璐у崟鍙�: ${groupOrderNo}, 绠卞彿: ${batch}`,
+								type: 'success',
+								duration: 3000
+							});
+
+							this.getTableDataB(groupOrderNo);
+						} else {
+							this.$message.error(res.message || '淇敼澶辫触');
+						}
+					},
+					error: (error) => {
+						loadingInstance.close();
+						console.error('淇敼澶辫触:', error);
+						this.$message.error('淇敼澶辫触锛岃妫�鏌ョ綉缁滆繛鎺�');
+					}
+				});
+			},
+
 			// 琛ㄦ牸鎺掑簭鍙樺寲
 			handleSortChange(column) {
 				if (column.prop) {
@@ -426,7 +534,6 @@
 				this.getTableDataA();
 			},
 
-			// 鏄剧ず浜屾纭瀵硅瘽妗�
 			showConfirmDialog() {
 				if (!this.currentRow) {
 					this.$message.error('娌℃湁閫夋嫨瑕佷笂鎶ョ殑鏁版嵁');
@@ -470,22 +577,17 @@
 
 				// 璋冪敤鍚庡彴API涓婃姤鏁版嵁
 				$.ajax({
-					url: baseUrl + "/api/report/confirm",
-					headers: {
-						'token': localStorage.getItem('token')
+					url: baseUrl + "/order/pakout/actual/shipment/order/report/auth",
+					headers: {'token': localStorage.getItem('token')},
+					data: {
+						itemName: groupOrderNo // 浼犻�掔粍璐у崟鍙�
 					},
-					data: JSON.stringify({
-						item_name: groupOrderNo // 浼犻�掔粍璐у崟鍙�
-					}),
-					dataType: 'json',
-					contentType: 'application/json;charset=UTF-8',
-					method: 'post',
+					method: 'POST',
 					success: (res) => {
 						this.reportLoading = false;
 						if (typeof done === 'function') {
 							done();
 						}
-
 						if (res.code === 200 || res.success) {
 							this.$message({
 								message: `缁勮揣鍗曞彿 ${groupOrderNo} 涓婃姤鎴愬姛`,
@@ -539,6 +641,7 @@
 				this.currentRow = row;
 				this.detailDialogVisible = true;
 				this.detailCurrentPage = 1;
+				this.settleA = row.settle;
 				this.getTableDataB(row.itemName);
 			},
 
@@ -610,7 +713,7 @@
 				if (row.status === 0) {
 					return '寮傚父';
 				} else if (row.status === 1) {
-					return '姝e父';
+					return '涓嶄笂鎶�';
 				} else if (row.status === 2) {
 					return '寰呬笂鎶�';
 				} else if (row.status === 3) {
@@ -628,47 +731,133 @@
 				return '楼0.00';
 			},
 
-			// 鏍煎紡鍖栨棩鏈熸樉绀�
-			formatDate(dateStr) {
-				if (!dateStr) return '';
-				// 绠�鍗曠殑鏃ユ湡鏍煎紡鍖栵紝鍙互鏍规嵁瀹為檯鏍煎紡璋冩暣
-				return dateStr;
-			},
-
 			// 妯℃嫙涓昏〃鏁版嵁 - 瀹為檯椤圭洰涓簲鍒犻櫎
 			mockTableAData() {
 				this.tableDataA = [
 					{
-						itemName: 'ZH1001',
+						itemName: 'zh20251110',
 						orderNo: 'ORDER2024001',
-						cstmrName: '绀轰緥瀹㈡埛A',
-						settle: 1,
+						cstmrName: 'zh20251110',
+						settle: 10,
 						totalFee: 1500.00,
-						createTime: '2024-01-15 10:30:00',
-						memo: '娴嬭瘯鏁版嵁'
-					},
-					{
-						itemName: 'ZH1002',
-						orderNo: 'ORDER2024002',
-						cstmrName: '绀轰緥瀹㈡埛B',
-						settle: 1,
-						totalFee: 2300.50,
-						createTime: '2024-01-16 14:20:00',
+						createTime: '2025-11-10T09:50:16.343+0000',
 						memo: '娴嬭瘯鏁版嵁'
 					}
 				];
-				this.total = 2;
+				this.total = 1;
 				this.loading = false;
 			},
 
 			// 妯℃嫙瀛愯〃鏁版嵁 - 瀹為檯椤圭洰涓簲鍒犻櫎
 			mockTableBData(itemName) {
 				this.tableDataB = [
-					{ productName: `浜у搧A-${itemName}`, quantity: 2, price: 500.00, totalPrice: 1000.00 },
-					{ productName: `浜у搧B-${itemName}`, quantity: 1, price: 300.50, totalPrice: 300.50 }
+					{
+						matnr: '6渭m脳436mm',
+						batch: 'L241034114',
+						model: '24092501D01A6',
+						origin: '1',
+						danger: '1',
+						memo: '',
+						status: 1 // 鐘舵�佷负1锛屼細鏄剧ず淇敼鎸夐挳
+					}
 				];
-				this.detailTotal = 2;
+				this.detailTotal = 1;
 				this.detailLoading = false;
+			},
+
+			// 涓鸿〃鏍煎垪娣诲姞鏍煎紡鍖栨柟娉�
+			formatDateColumn(row, column, cellValue) {
+				return this.formatDate(cellValue);
+			},
+
+
+
+			// // 鏍煎紡鍖栨棩鏈熸樉绀�
+			// formatDate(dateStr) {
+			// 	if (!dateStr) return '';
+			// 	// 绠�鍗曠殑鏃ユ湡鏍煎紡鍖栵紝鍙互鏍规嵁瀹為檯鏍煎紡璋冩暣
+			// 	return dateStr;
+			// },
+
+			// 鍦╒ue瀹炰緥鐨刴ethods涓坊鍔犳垨淇敼formatDate鏂规硶
+			formatDate(dateStr) {
+				if (!dateStr) return '';
+
+				try {
+					// 鍒涘缓Date瀵硅薄
+					const date = new Date(dateStr);
+
+					// 妫�鏌ユ棩鏈熸槸鍚︽湁鏁�
+					if (isNaN(date.getTime())) {
+						return dateStr; // 濡傛灉瑙f瀽澶辫触锛岃繑鍥炲師瀛楃涓�
+					}
+
+					// 鑾峰彇鍚勪釜鏃堕棿缁勪欢
+					const year = date.getFullYear();
+					const month = String(date.getMonth() + 1).padStart(2, '0');
+					const day = String(date.getDate()).padStart(2, '0');
+					const hours = String(date.getHours()).padStart(2, '0');
+					const minutes = String(date.getMinutes()).padStart(2, '0');
+					const seconds = String(date.getSeconds()).padStart(2, '0');
+
+					// 杩斿洖鏍煎紡鍖栧悗鐨勫瓧绗︿覆锛歒YYY-MM-DD HH:mm:ss
+					return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+				} catch (error) {
+					console.error('鏃ユ湡鏍煎紡鍖栭敊璇�:', error);
+					return dateStr; // 濡傛灉鍑洪敊锛岃繑鍥炲師瀛楃涓�
+				}
+			},
+
+//鏈湴鏃跺尯鐨勬椂闂�
+			formatDate2(dateStr) {
+				if (!dateStr) return '';
+
+				try {
+					const date = new Date(dateStr);
+
+					if (isNaN(date.getTime())) {
+						return dateStr;
+					}
+
+					// 浣跨敤鏈湴鏃跺尯
+					const year = date.getFullYear();
+					const month = String(date.getMonth() + 1).padStart(2, '0');
+					const day = String(date.getDate()).padStart(2, '0');
+					const hours = String(date.getHours()).padStart(2, '0');
+					const minutes = String(date.getMinutes()).padStart(2, '0');
+					const seconds = String(date.getSeconds()).padStart(2, '0');
+
+					return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+				} catch (error) {
+					console.error('鏃ユ湡鏍煎紡鍖栭敊璇�:', error);
+					return dateStr;
+				}
+			},
+			//淇濇寔UTC鏃堕棿浣嗚浆鎹负鏇存槗璇荤殑鏍煎紡
+			formatDate3(dateStr) {
+				if (!dateStr) return '';
+
+				try {
+					// 鐩存帴瑙f瀽瀛楃涓诧紝涓嶈浆鎹㈡椂鍖�
+					const date = new Date(dateStr);
+
+					if (isNaN(date.getTime())) {
+						return dateStr;
+					}
+
+					// 浣跨敤UTC鏃堕棿缁勪欢
+					const year = date.getUTCFullYear();
+					const month = String(date.getUTCMonth() + 1).padStart(2, '0');
+					const day = String(date.getUTCDate()).padStart(2, '0');
+					const hours = String(date.getUTCHours()).padStart(2, '0');
+					const minutes = String(date.getUTCMinutes()).padStart(2, '0');
+					const seconds = String(date.getUTCSeconds()).padStart(2, '0');
+
+					return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+				} catch (error) {
+					console.error('鏃ユ湡鏍煎紡鍖栭敊璇�:', error);
+					return dateStr;
+				}
 			}
 		}
 	});

--
Gitblit v1.9.1