store.ts
1.99 KB
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import useInitail from '@/hooks/useInitail';
import usePagination from '@/hooks/usePagination';
import * as api from './api';
import { useState, useEffect } from 'react';
import { getStoragePage } from '@/pages/pms/storage/StorageManage/api';
let bodyEl = document.body;
let top = 0;
// 当蒙层出现,固定body,不让其跟着蒙层滚动,蒙层消失,恢复其原来的位置
function stopBodyScroll(isFixed: boolean) {
if (isFixed) {
top = window.scrollY;
bodyEl.style.position = 'fixed';
bodyEl.style.top = -top + 'px';
} else {
bodyEl.style.position = '';
bodyEl.style.top = '';
window.scrollTo(0, top);
}
}
export default function useStore() {
const pagination = usePagination<PmsStoragePartShop.Item>(api.getPartShopPageApi, { orderBy: 18, isAsc: false });
const { list: storages } = usePagination<PartStorageSpace.PageVO>(getStoragePage, {pageSize: 1000});
const { data: shops } = useInitail<PmsStoragePartShop.Option[], {}>(api.getShopApi, [], {});
const [visible, setVisible] = useState(false);
const [confirmLoading, setConfirmLoading] = useState(false);
const [importVisible, setImportVisible] = useState(false);
const [releaseVisible, setReleaseVisible] = useState(false);
const [override, setOverride] = useState(false);
const [item, setItem] = useState<PmsStoragePartShop.Item>({});
const [fw] = useState(location.href.includes('fw'));
const [fwS] = useState(location.href.includes('fwStock'));
const [isprice, setIsprice] = useState<boolean>(false);
const [isadd, setIsadd] = useState<boolean>(false);
useEffect(() => {
if (visible) stopBodyScroll(true);
else stopBodyScroll(false);
}, [visible]);
return {
...pagination,
shops,
visible,
setVisible,
releaseVisible,
setReleaseVisible,
confirmLoading,
setConfirmLoading,
item,
setItem,
importVisible,
setImportVisible,
storages,
override,
setOverride,
fw,
fwS,
isprice,
setIsprice,
isadd,
setIsadd
};
}