Files
xk-doctor-wx/subPackages/sub_business_shared/common/pullRefreshMixin.js
李琦 62ffb6fd31 feat: 工作台常用入口可批量编辑,简报改为横幅,列表补下拉刷新
各角色工作台支持批量保存常用入口和业务员看板;AI 简报改成单行横幅避免锁死滑动;仓库/提现/对账等列表统一下拉刷新,并补代付码弹窗。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-18 08:53:16 +08:00

63 lines
1.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* 列表/看板下拉刷新:自定义导航用 scroll-view refresher整页滚动用 onPullDownRefresh。
* 页面需实现 reload();请求结束务必调 finishRefresh(),否则转圈不收起。
* 最短转圈 400ms接口太快时微信 refresher 动画来不及展开,看起来像「下拉没反应」。
*/
const MIN_REFRESH_MS = 400
export default {
data() {
return {
isRefreshing: false,
}
},
methods: {
/**
* 统一走 reload();若返回 Promise 则在 finally 收起转圈
*/
runPullRefresh() {
this.isRefreshing = true
const started = Date.now()
const done = () => {
const wait = Math.max(0, MIN_REFRESH_MS - (Date.now() - started))
setTimeout(() => this.finishRefresh(), wait)
}
if (typeof this.reload !== 'function') {
done()
return
}
try {
const ret = this.reload()
if (ret && typeof ret.then === 'function') {
ret.finally(done)
} else {
this.$nextTick(done)
}
} catch (e) {
done()
}
},
/**
* scroll-view 下拉:先亮转圈再重拉当前列表
*/
onRefresherRefresh() {
this.runPullRefresh()
},
/**
* 整页原生下拉:重拉后必须 stop否则系统转圈卡住
*/
onPullDownRefresh() {
this.runPullRefresh()
},
/**
* 请求 finally 里关掉两种转圈
*/
finishRefresh() {
this.isRefreshing = false
try {
uni.stopPullDownRefresh()
} catch (e) { /* 未开启原生下拉时忽略 */ }
},
},
}