From 6a09cbeb7023ca872cfc6dd1cff9f33c434093e6 Mon Sep 17 00:00:00 2001 From: hr121 <568127468@qq.com> Date: Sat, 2 Aug 2025 11:56:29 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=BB=93=E7=AE=97=E5=8D=95?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/order/loadOrder/index.vue | 6 +- .../settlementOrder/generateOrder/index.vue | 106 +++++++++--------- src/views/order/settlementOrder/index.vue | 29 ++++- .../settlementOrder/orderDetail/index.vue | 65 +++++++---- .../orderDetail/settlementPdf.vue | 72 +++++++----- 5 files changed, 173 insertions(+), 105 deletions(-) diff --git a/src/views/order/loadOrder/index.vue b/src/views/order/loadOrder/index.vue index c0ffe51..c4480dd 100644 --- a/src/views/order/loadOrder/index.vue +++ b/src/views/order/loadOrder/index.vue @@ -63,9 +63,9 @@ align="center" > diff --git a/src/views/order/settlementOrder/generateOrder/index.vue b/src/views/order/settlementOrder/generateOrder/index.vue index 85e1970..9a58db0 100644 --- a/src/views/order/settlementOrder/generateOrder/index.vue +++ b/src/views/order/settlementOrder/generateOrder/index.vue @@ -58,9 +58,9 @@ @@ -108,23 +108,17 @@ :visible.sync="dialogVisible" width="50%" > - - - - - - - - - - - +
+ +
+

委托方:{{ getScenicName(item.attractionId) }}

+
+

重量:{{ item.cargoWeight }} kg

+

金额:{{ item.totalAmount }} 元

+
+
+
+
取消 确认生成 @@ -329,38 +323,13 @@ export default { return } - // 按景区分组并生成结算列表 - const ordersByScenic = {} - this.selection.forEach(order => { - if (!ordersByScenic[order.scenicArea]) { - ordersByScenic[order.scenicArea] = [] - } - ordersByScenic[order.scenicArea].push(order) - }) - - // 生成结算列表数据 - this.settlementList = Object.keys(ordersByScenic).map(scenicArea => ({ - scenicArea: scenicArea, - weight: '100kg', // 示例数据,实际应根据订单计算 - amount: '100元' // 示例数据,实际应根据订单计算 - })) - // 调用接口获取结算确认列表 getGenerateSettleOrderConfirmList(this.selection.map(order => order.id)) .then(response => { - if (response.success) { - // 成功获取结算确认列表 - this.settlementList = response.data || [] - // 获取的数据为attractionId,cargoWeight,totalAmount,需要转换 - // 通过attractionId获取景区名称 - this.settlementList = this.settlementList.map(item => { - const scenic = this.scenicAreaOptions.find(s => s.id === item.attractionId) - return { - scenicArea: scenic ? scenic.name : '未知景区', - weight: item.cargoWeight, - amount: item.totalAmount - } - }) + if (response) { + // 成功获取结算确认列表,直接使用API返回的数据 + + this.settlementList = response || [] // 如果没有数据,提示用户 if (this.settlementList.length === 0) { this.$message.warning('没有可生成结算单的订单') @@ -387,7 +356,7 @@ export default { this.selection.map(order => order.id) ) .then(response => { - if (response.success) { + if (response) { this.$message.success('结算单生成成功') this.dialogVisible = false this.$router.push('/order/orderDetail') @@ -404,6 +373,11 @@ export default { handleCancel() { this.dialogVisible = false + }, + + getScenicName(attractionId) { + const scenic = this.scenicAreaOptions.find(s => s.id === attractionId) + return scenic ? scenic.name : '未知景区' } } } @@ -486,4 +460,36 @@ export default { margin: 20px 0; padding: 20px 0; } + +.settlement-list { + padding: 10px; + display: flex; + flex-wrap: wrap; + gap: 10px; +} + +.settlement-card { + flex: 0 0 auto; + width: calc(33.33% - 7px); + min-width: 200px; + margin: 0; + + .settlement-item { + text-align: center; + + h3 { + margin: 0 0 8px 0; + color: #303133; + font-size: 14px; + } + + .settlement-info { + p { + margin: 4px 0; + color: #606266; + font-size: 14px; + } + } + } +} diff --git a/src/views/order/settlementOrder/index.vue b/src/views/order/settlementOrder/index.vue index 42658fa..ef93c99 100644 --- a/src/views/order/settlementOrder/index.vue +++ b/src/views/order/settlementOrder/index.vue @@ -1,5 +1,12 @@