@uiw-admin/components
Version:
113 lines (110 loc) • 2.62 kB
JavaScript
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;