Files
cn-rdms-web/src/views/workbench/composables/use-workbench-refresh.ts

31 lines
973 B
TypeScript
Raw Normal View History

import { ref } from 'vue';
/**
* widget loading +
*
* - widget loader await
* - mock widget loader loading loader
*/
export function useWorkbenchRefresh(loader?: () => Promise<void> | void) {
const loading = ref(false);
async function refresh() {
if (loading.value) return;
loading.value = true;
try {
if (loader) {
await loader();
} else {
// 占位mock widget 无真实数据源,转一拍 loading接口接通后传入 loader 替代
await new Promise<void>(resolve => {
setTimeout(resolve, 400);
});
}
} finally {
loading.value = false;
}
}
return { loading, refresh };
}