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(api.getPartShopPageApi, { orderBy: 18, isAsc: false }); const { list: storages } = usePagination(getStoragePage, {pageSize: 1000}); const { data: shops } = useInitail(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({}); const [fw] = useState(location.href.includes('fw')); const [fwS] = useState(location.href.includes('fwStock')); const [isprice, setIsprice] = useState(false); const [isadd, setIsadd] = useState(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 }; }