ouyang 23 часов назад
Родитель
Сommit
856e58fc79
1 измененных файлов с 18 добавлено и 4 удалено
  1. 18 4
      mallApp/src/pages/pay/index.vue

+ 18 - 4
mallApp/src/pages/pay/index.vue

@@ -10,9 +10,10 @@
 			</div>
 			</div>
 			<div class="module-com pay-input-wrap">
 			<div class="module-com pay-input-wrap">
 				<pay-input-module :focus="inpFocus" :num="amount" @focusFn="focusFn" @blurFn="blurFn" @clickKey="clickKeyFn" />
 				<pay-input-module :focus="inpFocus" :num="amount" @focusFn="focusFn" @blurFn="blurFn" @clickKey="clickKeyFn" />
-				<div class="balance" v-if="!$util.isEmpty(shopUser) && shopUser.userAsset.balance && shopUser.userAsset.balance != '0.00'">
+				<!-- 扫码进店时 shopUser 可能已有对象但尚无 userAsset,须先判空再读 balance -->
+				<div class="balance" v-if="showBalanceInfo">
 					<span>账户余额 ¥</span>
 					<span>账户余额 ¥</span>
-					<span class="app-size-30">{{ shopUser.userAsset.balance }}</span>
+					<span class="app-size-30">{{ shopUserBalance }}</span>
 				</div>
 				</div>
 			</div>
 			</div>
 			
 			
@@ -29,7 +30,7 @@
 			</div>
 			</div>
 			
 			
 			<div class="btn-wrap">
 			<div class="btn-wrap">
-				<button v-if="!$util.isEmpty(shopUser) && shopUser.userAsset.balance && shopUser.userAsset.balance != '0.00'" class="button-com red" @click="balancePayFn">余额支付</button>
+				<button v-if="showBalanceInfo" class="button-com red" @click="balancePayFn">余额支付</button>
 				<button class="button-com green" @click="wexinPayFn">微信支付</button>
 				<button class="button-com green" @click="wexinPayFn">微信支付</button>
 			</div>
 			</div>
 		</div>
 		</div>
@@ -119,7 +120,20 @@
 		},
 		},
 		computed: {
 		computed: {
 			...mapGetters({ orderShop: 'getOrderShop' }),
 			...mapGetters({ orderShop: 'getOrderShop' }),
-			...mapGetters({ shopUser: 'getShopUser' })
+			...mapGetters({ shopUser: 'getShopUser' }),
+			/** 安全读取余额;扫码进店早期 shopUser.userAsset 可能为空 */
+			shopUserBalance() {
+				const asset = this.shopUser && this.shopUser.userAsset
+				if (!asset || asset.balance == null || asset.balance === '') {
+					return ''
+				}
+				return String(asset.balance)
+			},
+			/** 有可用余额才展示余额区与余额支付按钮 */
+			showBalanceInfo() {
+				const bal = this.shopUserBalance
+				return !!bal && bal !== '0.00'
+			}
 		},
 		},
 		onLoad(option) {
 		onLoad(option) {
             // #ifdef H5
             // #ifdef H5