From d7c772dbb13d8ca09c3c4b58264eaca4293094b3 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期日, 09 十一月 2025 18:26:42 +0800
Subject: [PATCH] *
---
src/main/webapp/views/orderCargoGrouping/orderCargoGroupingOperate.html | 315 +++++++++++++++++++++++++++-------------------------
1 files changed, 162 insertions(+), 153 deletions(-)
diff --git a/src/main/webapp/views/orderCargoGrouping/orderCargoGroupingOperate.html b/src/main/webapp/views/orderCargoGrouping/orderCargoGroupingOperate.html
index 6d20ada..da59c76 100644
--- a/src/main/webapp/views/orderCargoGrouping/orderCargoGroupingOperate.html
+++ b/src/main/webapp/views/orderCargoGrouping/orderCargoGroupingOperate.html
@@ -104,7 +104,7 @@
<div class="search-item">
<span class="search-label">缁勮揣鍗曞彿:</span>
<el-input
- v-model="searchForm.A1"
+ v-model="searchForm.uuid"
placeholder="璇疯緭鍏ョ粍璐у崟鍙�"
clearable
style="width: 150px;"
@@ -114,7 +114,7 @@
<div class="search-item">
<span class="search-label">瀹㈡埛鍚嶇О:</span>
<el-input
- v-model="searchForm.A2"
+ v-model="searchForm.cstmrName"
placeholder="璇疯緭鍏ュ鎴峰悕绉�"
clearable
style="width: 180px;"
@@ -123,19 +123,22 @@
</div>
<div class="search-item">
<span class="search-label">鐘舵��:</span>
- <el-input
- v-model="searchForm.A3"
- placeholder="璇疯緭鍏ョ姸鎬�"
+ <el-select
+ v-model="searchForm.settle"
+ placeholder="璇烽�夋嫨鐘舵��"
clearable
style="width: 150px;"
- @keyup.enter.native="handleSearch"
- ></el-input>
+ >
+ <el-option label="鍏ㄩ儴" value=""></el-option>
+ <el-option label="姝e父" value="1"></el-option>
+ <el-option label="绂佺敤" value="0"></el-option>
+ </el-select>
</div>
<div class="search-item">
- <span class="search-label">灞炴�4:</span>
+ <span class="search-label">璁㈠崟缂栧彿:</span>
<el-input
- v-model="searchForm.A4"
- placeholder="璇疯緭鍏ュ睘鎬4"
+ v-model="searchForm.orderNo"
+ placeholder="璇疯緭鍏ヨ鍗曠紪鍙�"
clearable
style="width: 150px;"
@keyup.enter.native="handleSearch"
@@ -156,11 +159,14 @@
:data="tableDataA"
highlight-current-row
style="width: 100%"
- v-loading="loading">
- <el-table-column prop="A1" label="缁勮揣鍗曞彿" width="100" align="center"></el-table-column>
- <el-table-column prop="A2" label="瀹㈡埛鍚嶇О" min-width="120" align="center"></el-table-column>
- <el-table-column prop="A3" label="鐘舵��" min-width="120" align="center"></el-table-column>
- <el-table-column prop="A4" label="灞炴�4" min-width="120" align="center"></el-table-column>
+ v-loading="loading"
+ @sort-change="handleSortChange">
+ <el-table-column prop="uuid" 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="cstmrName" label="瀹㈡埛鍚嶇О" min-width="120" 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 label="鎿嶄綔" width="150" align="center" fixed="right">
<template slot-scope="scope">
<div class="operation-cell">
@@ -197,11 +203,14 @@
class="detail-dialog"
@close="closeDetailDialog">
<div v-if="currentRow">
- <h3>缁勮揣鍗曚富琛� (缁勮揣鍗曞彿: {{ currentRow.A1 }})</h3>
+ <h3>缁勮揣鍗曚富琛� (缁勮揣鍗曞彿: {{ currentRow.uuid }})</h3>
<el-descriptions :column="2" border>
- <el-descriptions-item label="瀹㈡埛鍚嶇О">{{ currentRow.A2 }}</el-descriptions-item>
- <el-descriptions-item label="鐘舵��">{{ currentRow.A3 }}</el-descriptions-item>
- <el-descriptions-item label="灞炴�4">{{ currentRow.A4 }}</el-descriptions-item>
+ <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="鍚堣閲戦">{{ formatCurrency(currentRow) }}</el-descriptions-item>
+ <el-descriptions-item label="鍒涘缓鏃堕棿">{{ formatDate(currentRow.createTime) }}</el-descriptions-item>
+ <el-descriptions-item label="澶囨敞">{{ currentRow.memo || '鏃�' }}</el-descriptions-item>
</el-descriptions>
<h3 style="margin-top: 20px;">缁勮揣鍗曟槑缁�</h3>
@@ -210,9 +219,10 @@
:data="tableDataB"
style="width: 100%"
v-loading="detailLoading">
- <el-table-column prop="B2" label="瀹㈡埛鍚嶇О" min-width="120" align="center"></el-table-column>
- <el-table-column prop="B3" label="鐘舵��" min-width="120" align="center"></el-table-column>
- <el-table-column prop="B4" label="娴佹按鍙�" min-width="120" align="center"></el-table-column>
+ <el-table-column prop="productName" label="浜у搧鍚嶇О" min-width="120" align="center"></el-table-column>
+ <el-table-column prop="quantity" label="鏁伴噺" min-width="80" align="center"></el-table-column>
+ <el-table-column prop="price" label="鍗曚环" min-width="100" align="center" :formatter="formatCurrency"></el-table-column>
+ <el-table-column prop="totalPrice" label="閲戦" min-width="100" align="center" :formatter="formatCurrency"></el-table-column>
<!-- 鍙牴鎹疄闄呴渶姹傛坊鍔犳洿澶氬瓙琛ㄥ垪 -->
</el-table>
@@ -248,11 +258,14 @@
data: {
// 鎼滅储琛ㄥ崟
searchForm: {
- A1: '',
- A2: '',
- A3: '',
- A4: ''
+ uuid: '',
+ cstmrName: '',
+ settle: '',
+ orderNo: ''
},
+ // 鎺掑簭鐩稿叧
+ orderByField: '',
+ orderByType: 'asc',
// 涓昏〃A鏁版嵁
tableDataA: [],
// 瀛愯〃B鏁版嵁
@@ -271,9 +284,7 @@
// 鍔犺浇鐘舵��
loading: false,
detailLoading: false,
- reportLoading: false,
- // 鍘熷鏁版嵁澶囦唤锛堢敤浜庢悳绱級
- originalTableDataA: []
+ reportLoading: false
},
created() {
this.init();
@@ -282,56 +293,79 @@
init() {
this.getTableDataA();
+ // 姣�5绉掕嚜鍔ㄥ埛鏂版暟鎹�
setInterval(() => {
this.getTableDataA();
}, 5000);
},
- // 鑾峰彇涓昏〃A鏁版嵁
+ // 鑾峰彇涓昏〃A鏁版嵁 - 浣跨敤鏂扮殑API
getTableDataA() {
let that = this;
that.loading = true;
- // 妯℃嫙API璋冪敤 - 鏇挎崲涓哄疄闄匒PI
+ // 鏋勫缓璇锋眰鍙傛暟
+ let params = {
+ curr: that.currentPage,
+ limit: that.pageSize
+ };
+
+ // 娣诲姞鎺掑簭鍙傛暟
+ if (that.orderByField) {
+ params.orderByField = that.orderByField;
+ params.orderByType = that.orderByType;
+ }
+
+ // 娣诲姞鎼滅储鍙傛暟
+ Object.keys(that.searchForm).forEach(key => {
+ if (that.searchForm[key] !== '') {
+ params[key] = that.searchForm[key];
+ }
+ });
+
$.ajax({
- url: baseUrl + "/api/tableA/data",
+ // url: baseUrl + "/order/pakout/order/cargo/grouping/auth/v1",
+ url: baseUrl + "/order/head/page/auth",
headers: {
'token': localStorage.getItem('token')
},
- data: {
- page: that.currentPage,
- size: that.pageSize
- },
+ data: params,
dataType: 'json',
- contentType: 'application/json;charset=UTF-8',
- method: 'post',
+ method: 'get',
success: function (res) {
- that.tableDataA = res.data || [];
- that.originalTableDataA = JSON.parse(JSON.stringify(that.tableDataA)); // 澶囦唤鍘熷鏁版嵁
- that.total = res.total || 0;
+ if (res.code === 200 || res.success) {
+ that.tableDataA = res.data.records || [];
+ that.total = res.data.total || 0;
+ } else {
+ that.$message.error(res.message || '鑾峰彇鏁版嵁澶辫触');
+ that.tableDataA = [];
+ that.total = 0;
+ }
that.loading = false;
},
- error: function() {
+ error: function(xhr, status, error) {
that.loading = false;
- // 瀹為檯椤圭洰涓簲浣跨敤鐪熷疄API锛岃繖閲屼娇鐢ㄦā鎷熸暟鎹�
+ that.$message.error('缃戠粶璇锋眰澶辫触');
+ console.error('API璋冪敤澶辫触:', error);
+ // 妯℃嫙鏁版嵁锛堝疄闄呴」鐩腑搴斿垹闄わ級
that.mockTableAData();
}
});
},
- // 鑾峰彇瀛愯〃B鏁版嵁
- getTableDataB(A1) {
+ // 鑾峰彇瀛愯〃B鏁版嵁锛堟牴鎹疄闄呬笟鍔¤皟鏁达級
+ getTableDataB(uuid) {
let that = this;
that.detailLoading = true;
- // 妯℃嫙API璋冪敤 - 鏇挎崲涓哄疄闄匒PI
+ // 妯℃嫙API璋冪敤 - 鏍规嵁瀹為檯涓氬姟璋冩暣API鍦板潃
$.ajax({
- url: baseUrl + "/api/tableB/data",
+ url: baseUrl + "/api/order/detail/list",
headers: {
'token': localStorage.getItem('token')
},
data: {
- A1: A1,
+ uuid: uuid,
page: that.detailCurrentPage,
size: that.detailPageSize
},
@@ -346,9 +380,22 @@
error: function() {
that.detailLoading = false;
// 瀹為檯椤圭洰涓簲浣跨敤鐪熷疄API锛岃繖閲屼娇鐢ㄦā鎷熸暟鎹�
- that.mockTableBData(A1);
+ that.mockTableBData(uuid);
}
});
+ },
+
+ // 琛ㄦ牸鎺掑簭鍙樺寲
+ handleSortChange(column) {
+ if (column.prop) {
+ this.orderByField = column.prop;
+ this.orderByType = column.order === 'ascending' ? 'asc' : 'desc';
+ } else {
+ this.orderByField = '';
+ this.orderByType = 'asc';
+ }
+ this.currentPage = 1;
+ this.getTableDataA();
},
// 鏄剧ず浜屾纭瀵硅瘽妗�
@@ -358,7 +405,7 @@
return;
}
- const groupOrderNo = this.currentRow.A1;
+ const groupOrderNo = this.currentRow.uuid;
this.$confirm(
`鏄惁纭寮�濮嬩笂鎶ョ粍璐у崟鍙� <strong style="color: #F56C6C; font-size: 16px;">${groupOrderNo}</strong>?<br/><br/>灏嗙敓鎴愬疄闄呯粍璐у崟锛屽崟涓�缁勮揣鍗曞彿鍙兘鎿嶄綔涓�娆�!!!`,
@@ -400,7 +447,7 @@
'token': localStorage.getItem('token')
},
data: JSON.stringify({
- A1: groupOrderNo // 浼犻�掔粍璐у崟鍙�
+ uuid: groupOrderNo // 浼犻�掔粍璐у崟鍙�
}),
dataType: 'json',
contentType: 'application/json;charset=UTF-8',
@@ -417,9 +464,10 @@
type: 'success',
duration: 3000
});
- // 涓婃姤鎴愬姛鍚庡叧闂脊绐�
+ // 涓婃姤鎴愬姛鍚庡叧闂脊绐楀苟鍒锋柊鏁版嵁
setTimeout(() => {
this.closeDetailDialog();
+ this.getTableDataA(); // 鍒锋柊涓昏〃鏁版嵁
}, 1500);
} else {
this.$message.error(res.message || '涓婃姤澶辫触');
@@ -431,108 +479,31 @@
done();
}
console.error('涓婃姤澶辫触:', error);
- // 妯℃嫙涓婃姤鎴愬姛锛堝疄闄呴」鐩腑搴斿垹闄ゆ閮ㄥ垎锛�
- this.mockReportSuccess(groupOrderNo);
+ this.$message.error('涓婃姤澶辫触锛岃妫�鏌ョ綉缁滆繛鎺�');
}
});
- },
-
- // 妯℃嫙涓婃姤鎴愬姛锛堝疄闄呴」鐩腑搴斿垹闄わ級
- mockReportSuccess(groupOrderNo) {
- this.$message({
- message: `缁勮揣鍗曞彿 ${groupOrderNo} 涓婃姤鎴愬姛锛堟ā鎷燂級`,
- type: 'success',
- duration: 3000
- });
- // 涓婃姤鎴愬姛鍚庡叧闂脊绐�
- setTimeout(() => {
- this.closeDetailDialog();
- }, 1500);
},
// 鎼滅储澶勭悊
handleSearch() {
this.currentPage = 1;
- this.loading = true;
-
- // 濡傛灉鏈夊悗绔悳绱PI锛屽彲浠ヨ皟鐢ㄥ悗绔悳绱�
- // 杩欓噷浣跨敤鍓嶇杩囨护浣滀负绀轰緥
- if (this.isSearchFormEmpty()) {
- // 濡傛灉鎼滅储鏉′欢涓虹┖锛屾樉绀烘墍鏈夋暟鎹�
- this.getTableDataA();
- } else {
- // 浣跨敤鍓嶇杩囨护杩涜鎼滅储
- this.filterTableData();
- }
- },
-
- // 鍓嶇杩囨护琛ㄦ牸鏁版嵁
- filterTableData() {
- let that = this;
- // 妯℃嫙API璋冪敤 - 瀹為檯椤圭洰涓彲浠ヨ皟鐢ㄥ悗绔悳绱㈡帴鍙�
- $.ajax({
- url: baseUrl + "/api/tableA/search",
- headers: {
- 'token': localStorage.getItem('token')
- },
- data: {
- ...that.searchForm,
- page: that.currentPage,
- size: that.pageSize
- },
- dataType: 'json',
- contentType: 'application/json;charset=UTF-8',
- method: 'post',
- success: function (res) {
- that.tableDataA = res.data || [];
- that.total = res.total || 0;
- that.loading = false;
- },
- error: function() {
- that.loading = false;
- // 濡傛灉API璋冪敤澶辫触锛屼娇鐢ㄥ墠绔繃婊や綔涓哄閫夋柟妗�
- that.frontendFilter();
- }
- });
- },
-
- // 鍓嶇杩囨护澶囬�夋柟妗�
- frontendFilter() {
- const filteredData = this.originalTableDataA.filter(item => {
- // 妫�鏌ユ瘡涓悳绱㈡潯浠�
- const matchA1 = !this.searchForm.A1 ||
- (item.A1 && item.A1.toString().toLowerCase().includes(this.searchForm.A1.toLowerCase()));
- const matchA2 = !this.searchForm.A2 ||
- (item.A2 && item.A2.toString().toLowerCase().includes(this.searchForm.A2.toLowerCase()));
- const matchA3 = !this.searchForm.A3 ||
- (item.A3 && item.A3.toString().toLowerCase().includes(this.searchForm.A3.toLowerCase()));
- const matchA4 = !this.searchForm.A4 ||
- (item.A4 && item.A4.toString().toLowerCase().includes(this.searchForm.A4.toLowerCase()));
-
- return matchA1 && matchA2 && matchA3 && matchA4;
- });
-
- this.tableDataA = filteredData;
- this.total = filteredData.length;
- this.loading = false;
+ this.orderByField = '';
+ this.orderByType = 'asc';
+ this.getTableDataA();
},
// 閲嶇疆鎼滅储鏉′欢
handleReset() {
this.searchForm = {
- A1: '',
- A2: '',
- A3: '',
- A4: ''
+ uuid: '',
+ cstmrName: '',
+ settle: '',
+ orderNo: ''
};
+ this.orderByField = '';
+ this.orderByType = 'asc';
this.currentPage = 1;
this.getTableDataA();
- },
-
- // 妫�鏌ユ悳绱㈡潯浠舵槸鍚︿负绌�
- isSearchFormEmpty() {
- return !this.searchForm.A1 && !this.searchForm.A2 &&
- !this.searchForm.A3 && !this.searchForm.A4;
},
// 鏄剧ず璇︽儏寮圭獥
@@ -540,7 +511,7 @@
this.currentRow = row;
this.detailDialogVisible = true;
this.detailCurrentPage = 1;
- this.getTableDataB(row.A1);
+ this.getTableDataB(row.uuid);
},
// 鍏抽棴璇︽儏寮圭獥
@@ -569,7 +540,7 @@
this.detailPageSize = val;
this.detailCurrentPage = 1;
if (this.currentRow) {
- this.getTableDataB(this.currentRow.A1);
+ this.getTableDataB(this.currentRow.uuid);
}
},
@@ -577,31 +548,69 @@
handleDetailCurrentChange(val) {
this.detailCurrentPage = val;
if (this.currentRow) {
- this.getTableDataB(this.currentRow.A1);
+ this.getTableDataB(this.currentRow.uuid);
}
+ },
+
+ // 鏍煎紡鍖栫姸鎬佹樉绀�
+ formatStatus(row) {
+ if (row.settle === 1) {
+ return '姝e父';
+ } else if (row.settle === 0) {
+ return '绂佺敤';
+ } else {
+ return row.settle || '鏈煡';
+ }
+ },
+
+ // 鏍煎紡鍖栭噾棰濇樉绀�
+ formatCurrency(row) {
+ if (row.totalFee) {
+ return '楼' + parseFloat(row.totalFee).toFixed(2);
+ }
+ return '楼0.00';
+ },
+
+ // 鏍煎紡鍖栨棩鏈熸樉绀�
+ formatDate(dateStr) {
+ if (!dateStr) return '';
+ // 绠�鍗曠殑鏃ユ湡鏍煎紡鍖栵紝鍙互鏍规嵁瀹為檯鏍煎紡璋冩暣
+ return dateStr;
},
// 妯℃嫙涓昏〃鏁版嵁 - 瀹為檯椤圭洰涓簲鍒犻櫎
mockTableAData() {
this.tableDataA = [
- { A1: '1001', A2: '绀轰緥鏁版嵁A2-1', A3: '绀轰緥鏁版嵁A3-1', A4: '绀轰緥鏁版嵁A4-1' },
- { A1: '1002', A2: '绀轰緥鏁版嵁A2-2', A3: '绀轰緥鏁版嵁A3-2', A4: '绀轰緥鏁版嵁A4-2' },
- { A1: '1003', A2: '绀轰緥鏁版嵁A2-3', A3: '绀轰緥鏁版嵁A3-3', A4: '绀轰緥鏁版嵁A4-3' },
- { A1: '1004', A2: '绀轰緥鏁版嵁A2-4', A3: '绀轰緥鏁版嵁A3-4', A4: '绀轰緥鏁版嵁A4-4' }
+ {
+ uuid: 'ZH1001',
+ orderNo: 'ORDER2024001',
+ cstmrName: '绀轰緥瀹㈡埛A',
+ settle: 1,
+ totalFee: 1500.00,
+ createTime: '2024-01-15 10:30:00',
+ memo: '娴嬭瘯鏁版嵁'
+ },
+ {
+ uuid: 'ZH1002',
+ orderNo: 'ORDER2024002',
+ cstmrName: '绀轰緥瀹㈡埛B',
+ settle: 1,
+ totalFee: 2300.50,
+ createTime: '2024-01-16 14:20:00',
+ memo: '娴嬭瘯鏁版嵁'
+ }
];
- this.originalTableDataA = JSON.parse(JSON.stringify(this.tableDataA)); // 澶囦唤鍘熷鏁版嵁
- this.total = 4;
+ this.total = 2;
this.loading = false;
},
// 妯℃嫙瀛愯〃鏁版嵁 - 瀹為檯椤圭洰涓簲鍒犻櫎
- mockTableBData(A1) {
+ mockTableBData(uuid) {
this.tableDataB = [
- { B2: `瀛愯〃鏁版嵁B2-${A1}-1`, B3: `瀛愯〃鏁版嵁B3-${A1}-1`, B4: `瀛愯〃鏁版嵁B4-${A1}-1` },
- { B2: `瀛愯〃鏁版嵁B2-${A1}-2`, B3: `瀛愯〃鏁版嵁B3-${A1}-2`, B4: `瀛愯〃鏁版嵁B4-${A1}-2` },
- { B2: `瀛愯〃鏁版嵁B2-${A1}-3`, B3: `瀛愯〃鏁版嵁B3-${A1}-3`, B4: `瀛愯〃鏁版嵁B4-${A1}-3` }
+ { productName: `浜у搧A-${uuid}`, quantity: 2, price: 500.00, totalPrice: 1000.00 },
+ { productName: `浜у搧B-${uuid}`, quantity: 1, price: 300.50, totalPrice: 300.50 }
];
- this.detailTotal = 3;
+ this.detailTotal = 2;
this.detailLoading = false;
}
}
--
Gitblit v1.9.1