UNPKG

@uiw-admin/components

Version:
113 lines (110 loc) 2.62 kB
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator"; import _extends from "@babel/runtime/helpers/extends"; import { useState } from 'react'; var useTable = function useTable(key, params) { if (params === void 0) { params = {}; } var { formatData, query, mutationOptions, requestOptions } = params; // 表单组件实例 var [form, setForm] = useState(); var [state, setState] = useState({ // 当前页码 pageIndex: 1, // 总页数 total: 1, // 当前table数据源 data: [], // 表单值 searchValues: {}, // 加载状态 loading: false, // 选择框属性 setPageIndex: () => null, mutate: () => null, selection: { selected: [], noneSelected: false, allSelected: false, partiallySelected: false, setSelected: () => null, isSelected: () => null, select: () => null, unSelect: () => null, toggle: () => null, selectAll: () => null, unSelectAll: () => null, toggleAll: () => null } }); // 更新store var updateStore = datas => { setState(_extends({}, state, datas)); }; // 更新form var updateForm = form => { setForm(form); }; // 重置 var onReset = /*#__PURE__*/function () { var _ref = _asyncToGenerator(function* () { yield form == null ? void 0 : form.current.resetForm(); onSearch(); }); return function onReset() { return _ref.apply(this, arguments); }; }(); // 刷新当前页数据 var onRefersh = /*#__PURE__*/function () { var _ref2 = _asyncToGenerator(function* () { state.mutate(); }); return function onRefersh() { return _ref2.apply(this, arguments); }; }(); // 点击查询 var onSearch = /*#__PURE__*/function () { var _ref3 = _asyncToGenerator(function* () { // 需要表单存在 if (form) { yield form.current.onSubmit(); // @ts-ignore var isNoError = form.current.getError(); if (Object.keys(isNoError).length === 0) { yield state.setPageIndex(1); state.mutate(); } } else { yield state.setPageIndex(1); state.mutate(); } }); return function onSearch() { return _ref3.apply(this, arguments); }; }(); return _extends({ key, // 重置 onReset, // 刷新当前页数据 onRefersh, // 点击查询 onSearch, formatData, query, updateStore, mutationOptions, form, requestOptions, updateForm }, state); }; export default useTable;