刘光辉
4 小时以前 cf11e63b659afcc9792ab3e395f1b45d844431a8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import type { OnlineUtilsLoadingOptions } from './formOnlineUtils';
 
export function createListScopedOnlineUtils(baseOnlineUtils: any, setLoading: (loading: boolean, tip?: string) => void) {
  let loadingCount = 0;
  const scopedOnlineUtils = {
    ...baseOnlineUtils,
    showLoading(tip?: string, options?: OnlineUtilsLoadingOptions) {
      if (options?.scope !== 'list') return baseOnlineUtils.showLoading?.(tip, options);
      loadingCount++;
      setLoading(true, tip);
    },
    hideLoading(options?: OnlineUtilsLoadingOptions) {
      if (options?.scope !== 'list') return baseOnlineUtils.hideLoading?.(options);
      if (!loadingCount) return;
      loadingCount--;
      if (!loadingCount) setLoading(false);
    },
  };
 
  return {
    onlineUtils: scopedOnlineUtils,
    resetLoading: () => {
      loadingCount = 0;
    },
  };
}