Sfoglia il codice sorgente

app权益信息-可用金额和剩余金额前端计算显示

@dongkboy 3 settimane fa
parent
commit
3e61b8fafc
2 ha cambiato i file con 23 aggiunte e 4 eliminazioni
  1. 16 2
      pages/reward/benefitSingleItem.vue
  2. 7 2
      pages/reward/customerBenefit.vue

+ 16 - 2
pages/reward/benefitSingleItem.vue

@@ -143,7 +143,7 @@
 			width="120" height="120">
 		</u-empty>
 		<!-- 底部样式 -->
-		<view class="footer dis a-c">
+		<view class="footer dis a-c ">
 			<!-- 图标 -->
 			<view class="icon-view dis f-c a-c ">
 				<view class="">
@@ -432,7 +432,16 @@
 				let pages = getCurrentPages(); //获取所有页面栈实例列表
 				let prevPage = pages[pages.length - 2]; //上一页页面实例
 				console.log(selectedItems);
-				prevPage.$vm.insOrderRightsList = selectedItems; //选中权益列表
+				// 回传选中权益列表与已使用金额到上一页
+				if (prevPage && prevPage.$vm) {
+					prevPage.$vm.insOrderRightsList = selectedItems; //选中权益列表
+					// insFeeOrders 可能因上游数据缺失而为 undefined,先初始化
+					if (!prevPage.$vm.insFeeOrders) {
+						prevPage.$vm.insFeeOrders = {};
+					}
+					// 用 $set 赋值 usedAmount,保证 Vue2 下新增属性是响应式的,返回上一页后能刷新显示
+					prevPage.$vm.$set(prevPage.$vm.insFeeOrders, 'usedAmount', this.totalPriceCount);
+				}
 				uni.navigateBack({ //uni.navigateTo跳转的返回,默认1为返回上一级
 					delta: 1
 				});
@@ -896,7 +905,12 @@
 			font-size: 36rpx;
 			color: #1F1F1F;
 			font-weight: bold;
+			// #ifdef H5
+			margin-right: 0;
+			// #endif
+			// #ifdef APP-PLUS
 			margin-left: auto;
+			// #endif
 		}
 	}
 

+ 7 - 2
pages/reward/customerBenefit.vue

@@ -285,7 +285,12 @@
 			}
 		},
 		onShow() {
-
+			// 从权益选择页返回时,重新计算剩余金额:剩余 = 可用 - 已使用(高精度)
+			if (this.insFeeOrders && this.insFeeOrders.availableAmount !== undefined) {
+				const available = new Decimal(this.insFeeOrders.availableAmount || 0);
+				const used = new Decimal(this.insFeeOrders.usedAmount || 0);
+				this.$set(this.insFeeOrders, 'remainingAmount', available.minus(used).toString());
+			}
 		},
 		computed: {
 			//选中套餐售价总和
@@ -327,7 +332,7 @@
 					}
 					let data = JSON.parse(options.info)
 					console.log(data);
-					this.insFeeOrders = data.insFeeOrders;
+					this.insFeeOrders = data.insFeeOrders || {}; //费用信息(防上游缺字段导致 undefined)
 					this.ordersNo = data.ordersNo;
 					this.insOrderRightsPackageList = data.insOrderRightsInfoVo.insOrderRightsPackageList;