shish 2 месяцев назад
Родитель
Сommit
a818fd264a

+ 24 - 10
hdApp/src/admin/billing/affirmGhs.vue

@@ -1145,10 +1145,16 @@ export default {
 				params.deliveryBracketContent = this.selectedDeliveryData.bracketContent // 配送平台括号里的内容
 			}
 			let self = this;
-			self.$util.confirmModal({content:'确认提交?'},() => {
+			self.$util.confirmModal({content:'确认提交?'}, async () => {
+				let pendingMsg = '';
 				uni.showLoading({title: '加载中',mask:true})
-				createOrder(params).then(res => {
-					uni.hideLoading()
+				try {
+					// hideError:避免 luch-request 在 showLoading 期间 showToast 被挡住
+					const res = await createOrder(params, { hideError: true })
+					if (!res || typeof res !== 'object') {
+						pendingMsg = '提交失败,请重试'
+						return
+					}
 					if(res.code == 1){
 						this.limitExceedProductId = ''
 						this.limitExceedLimitBuy = ''
@@ -1156,7 +1162,7 @@ export default {
 						if(res.data.hasLackError && res.data.hasLackError == 1){
 							this.lackList = res.data.lackList ? res.data.lackList : []
 							this.$refs.selectFlowerNumRef.open('center')
-							return true
+							return
 						}
 						const {orderSn,realPrice,id} = res.data
 						self.pageTo({url: '/pagesPurchase/wechatPay',query:{orderSn,realPrice,id}, type: 2})
@@ -1164,24 +1170,32 @@ export default {
 							self.removeMemory(self.ghsInfo.id)
 							self.resetLimitBuyInfoByType(self.pageType)
 						}, 600)
-						return true
+						return
 					}
 					if(res.code == -1 && res.data && String(res.data.productId || '') !== ''){
 						this.limitExceedProductId = res.data.productId ? String(res.data.productId) : ''
 						this.limitExceedLimitBuy = res.data.limitBuy ? String(res.data.limitBuy) : '0'
 						this.limitExceedNum = res.data.exceed ? String(res.data.exceed) : '0'
-						this.$msg(res.msg || '累计已超出限购数')
-						return false
+						pendingMsg = res.msg || '累计已超出限购数'
+						return
 					}
 					this.limitExceedProductId = ''
 					this.limitExceedLimitBuy = ''
 					this.limitExceedNum = ''
 					if(res.msg){
-						this.$msg(res.msg)
+						pendingMsg = res.msg
 					}
-				}).catch(() => {
+				} catch (err) {
+					pendingMsg = '提交失败,请重试'
+				} finally {
 					uni.hideLoading()
-				})            
+					if (pendingMsg) {
+						// 小程序 hideLoading 后立即 showToast 可能不显示,需短暂延迟
+						setTimeout(() => {
+							self.$msg(pendingMsg)
+						}, 100)
+					}
+				}
 			})
 		},
 		isLimitExceededItem(item){

+ 24 - 4
hdApp/src/admin/billing/affirmGhsBook.vue

@@ -545,18 +545,38 @@ export default {
 				book:1
 			}
 			let self = this;
-			self.$util.confirmModal({content:'确认提交?'},() => {
+			self.$util.confirmModal({content:'确认提交?'}, async () => {
+				let pendingMsg = '';
 				uni.showLoading({title: '加载中',mask:true})
-				createOrder(params).then(res => {
+				try {
+					const res = await createOrder(params, { hideError: true })
+					if (!res || typeof res !== 'object') {
+						pendingMsg = '提交失败,请重试'
+						return
+					}
 					if(res.code == 1){
-						uni.hideLoading()
 						const {orderSn,realPrice,id} = res.data
 						self.pageTo({url: '/pagesPurchase/wechatPay',query:{orderSn,realPrice,id}, type: 2})
 						setTimeout(() => {
 							self.removeMemory(self.ghsInfo.id)
 						}, 600)
+						return
 					}
-				});
+					if(res.msg){
+						pendingMsg = res.msg
+					} else {
+						pendingMsg = '提交失败,请重试'
+					}
+				} catch (err) {
+					pendingMsg = '提交失败,请重试'
+				} finally {
+					uni.hideLoading()
+					if (pendingMsg) {
+						setTimeout(() => {
+							self.$msg(pendingMsg)
+						}, 100)
+					}
+				}
 			})
 		},
 		numberAdd(arg1, arg2) {

+ 2 - 2
hdApp/src/api/purchase/index.js

@@ -136,8 +136,8 @@ export const freight = async data => {
 /** *
 	* 采购-下单  姜枫 2021.04.12
 	*/
-export const createOrder = data => {
-	return https.post("/purchase/create-order", data);
+export const createOrder = (data, config = {}) => {
+	return https.post("/purchase/create-order", data, {}, config);
 };
 
 //向虚拟供货商采购 

+ 1 - 1
hdApp/src/pagesPurchase/wechatPay.vue

@@ -40,7 +40,7 @@
 
           <button class="button-com" @click="useAliPay()" :class="[remainPayTime >0 ? 'ali-btn green':'default']" style="height:100upx;line-height:100upx;margin-top:50upx;margin-bottom:40upx;padding:0;display:flex;align-items:center;justify-content:center;width:70%;margin-left:auto;margin-right:auto;" :disabled="remainPayTime > 0 ? false : true">支付宝付款</button>
 
-          <view>
+          <view style="margin-top:50upx;">
             <image style="width:80vw;margin:0 auto;" :src="`${constant.imgUrl}/cg/hd_cg_route4.png`" mode="widthFix"></image>
           </view>