diff --git a/src/core/helpers/protocol/popup.js b/src/core/helpers/protocol/popup.js
index c2b5ae6890f3fed816ac68448fecf0690c23a2a1..a2838be960df944eb30f54593fe63dfbc8bbb602 100644
--- a/src/core/helpers/protocol/popup.js
+++ b/src/core/helpers/protocol/popup.js
@@ -90,6 +90,10 @@ export const showLoading = {
visible: {
type: Boolean,
default: true
+ },
+ isShowLoading: {
+ type: Boolean,
+ default: true
}
}
diff --git a/src/core/service/api/popup.js b/src/core/service/api/popup.js
index 13db31a000d27f2793495c3d250e986bce1d4115..f07488fcc7347849aa29e19f0c3d927409ee9e1c 100644
--- a/src/core/service/api/popup.js
+++ b/src/core/service/api/popup.js
@@ -27,7 +27,7 @@ export function showLoading (args) {
}
export function hideLoading () {
- emit('onHideToast')
+ emit('onHideLoading')
return {}
}
diff --git a/src/platforms/h5/components/app/index.vue b/src/platforms/h5/components/app/index.vue
index 1718eeedfff1b2f5e54de470d1f325cd0ec471f5..9b1b17ac79e9c07c7241955afa7d1d3233692d70 100644
--- a/src/platforms/h5/components/app/index.vue
+++ b/src/platforms/h5/components/app/index.vue
@@ -11,8 +11,7 @@
v-show="showTabBar"
v-bind="tabBar" />
+ v-bind="showToast"/>
diff --git a/src/platforms/h5/components/app/popup/mixins/toast.js b/src/platforms/h5/components/app/popup/mixins/toast.js
index 4b193c60e50b1454f578395ca826474cf053d1bf..b27f9e4d23d9c9298f24126f80bba2e9dcfe9185 100644
--- a/src/platforms/h5/components/app/popup/mixins/toast.js
+++ b/src/platforms/h5/components/app/popup/mixins/toast.js
@@ -8,14 +8,30 @@ export default {
},
created () {
UniServiceJSBridge.on('onShowToast', args => {
- setTimeout(() => { // 延迟一下 show 可解决窗口打开前调用 showToast,showLoading 在 onHidePopup 之后触发
+ setTimeout(() => { // 延迟一下 show 可解决窗口打开前调用 showToast 在 onHidePopup 之后触发
this.showToast = args
}, 10)
})
- UniServiceJSBridge.on(['onHidePopup', 'onHideToast'], args => {
- setTimeout(() => { // 与 show 对应延迟10ms,避免快速调用 show,hide 导致无法关闭
- this.showToast.visible = false
- }, 10)
- })
+
+ const createOnHide = (type) => {
+ return () => {
+ let warnMsg = ''
+ if (type === 'onHideToast' && this.showToast.isShowLoading) {
+ warnMsg = '请注意 showToast 与 hideToast 必须配对使用'
+ } else if (type === 'onHideLoading' && !this.showToast.isShowLoading) {
+ warnMsg = '请注意 showLoading 与 hideLoading 必须配对使用'
+ }
+ if (warnMsg) {
+ return console.warn(warnMsg)
+ }
+ setTimeout(() => { // 与 show 对应延迟10ms,避免快速调用 show,hide 导致无法关闭
+ this.showToast.visible = false
+ }, 10)
+ }
+ }
+
+ UniServiceJSBridge.on('onHidePopup', createOnHide('onHidePopup'))
+ UniServiceJSBridge.on('onHideToast', createOnHide('onHideToast'))
+ UniServiceJSBridge.on('onHideLoading', createOnHide('onHideLoading'))
}
}