@fle-ui/plus-table 1.0.7 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,214 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _proForm = require("@ant-design/pro-form");
8
+ var _proProvider = require("@ant-design/pro-provider");
9
+ var _antd = require("antd");
10
+ var _classnames = _interopRequireDefault(require("classnames"));
11
+ var _omit = _interopRequireDefault(require("omit.js"));
12
+ var _react = _interopRequireWildcard(require("react"));
13
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
14
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
15
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
17
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
18
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
19
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
20
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
21
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
22
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
23
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
24
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
25
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
26
+ function toLowerLine(str) {
27
+ var temp = str.replace(/[A-Z]/g, function (match) {
28
+ return "-".concat(match.toLowerCase());
29
+ });
30
+ if (temp.startsWith('-')) {
31
+ // 如果首字母是大写,执行replace时会多一个_,这里需要去掉
32
+ temp = temp.slice(1);
33
+ }
34
+ return temp;
35
+ }
36
+ /**
37
+ * 获取当前选择的 Form Layout 配置
38
+ *
39
+ * @param isForm
40
+ * @param searchConfig
41
+ * @returns LightFilter | QueryFilter | ProForm
42
+ */
43
+ var getFormCompetent = function getFormCompetent(isForm, searchConfig) {
44
+ if (!isForm && searchConfig !== false) {
45
+ if ((searchConfig === null || searchConfig === void 0 ? void 0 : searchConfig.filterType) === 'light') {
46
+ return 'LightFilter';
47
+ }
48
+ return 'QueryFilter';
49
+ }
50
+ return 'Form';
51
+ };
52
+ /**
53
+ * 获取需要传给相应表单的props
54
+ *
55
+ * @param searchConfig
56
+ * @param name
57
+ */
58
+ var getFromProps = function getFromProps(isForm, searchConfig, name) {
59
+ if (!isForm && name === 'LightFilter') {
60
+ // 传给 lightFilter 的问题
61
+ return (0, _omit.default)(_objectSpread({}, searchConfig), ['labelWidth', 'defaultCollapsed', 'filterType']);
62
+ }
63
+ if (!isForm) {
64
+ // 传给 QueryFilter 的配置
65
+ return (0, _omit.default)(_objectSpread({
66
+ labelWidth: searchConfig ? searchConfig === null || searchConfig === void 0 ? void 0 : searchConfig.labelWidth : undefined,
67
+ defaultCollapsed: true
68
+ }, searchConfig), ['filterType']);
69
+ }
70
+ return {};
71
+ };
72
+ /**
73
+ * 从formConfig中获取传给相应表单的配置
74
+ *
75
+ * @param isForm
76
+ * @param formConfig
77
+ */
78
+ var getFormConfigs = function getFormConfigs(isForm, formConfig) {
79
+ if (isForm) {
80
+ // 传给Form的配置
81
+ return (0, _omit.default)(formConfig, ['ignoreRules']);
82
+ }
83
+ // 传给Filter的配置
84
+ return _objectSpread({
85
+ ignoreRules: true
86
+ }, formConfig);
87
+ };
88
+ /**
89
+ * 这里会把 列配置转化为 form 表单
90
+ *
91
+ * @param param0
92
+ * @returns
93
+ */
94
+ var FormRender = function FormRender(_ref) {
95
+ var onSubmit = _ref.onSubmit,
96
+ formRef = _ref.formRef,
97
+ _ref$dateFormatter = _ref.dateFormatter,
98
+ dateFormatter = _ref$dateFormatter === void 0 ? 'string' : _ref$dateFormatter,
99
+ type = _ref.type,
100
+ columns = _ref.columns,
101
+ action = _ref.action,
102
+ ghost = _ref.ghost,
103
+ manualRequest = _ref.manualRequest,
104
+ _onReset = _ref.onReset,
105
+ submitButtonLoading = _ref.submitButtonLoading,
106
+ searchConfig = _ref.search,
107
+ formConfig = _ref.form,
108
+ bordered = _ref.bordered;
109
+ var _useContext = (0, _react.useContext)(_proProvider.ProProvider),
110
+ hashId = _useContext.hashId;
111
+ var isForm = type === 'form';
112
+ /** 提交表单,根据两种模式不同,方法不相同 */
113
+ var submit = /*#__PURE__*/function () {
114
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(values, firstLoad) {
115
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
116
+ while (1) switch (_context.prev = _context.next) {
117
+ case 0:
118
+ if (onSubmit) {
119
+ onSubmit(values, firstLoad);
120
+ }
121
+ case 1:
122
+ case "end":
123
+ return _context.stop();
124
+ }
125
+ }, _callee);
126
+ }));
127
+ return function submit(_x, _x2) {
128
+ return _ref2.apply(this, arguments);
129
+ };
130
+ }();
131
+ var _useContext2 = (0, _react.useContext)(_antd.ConfigProvider.ConfigContext),
132
+ getPrefixCls = _useContext2.getPrefixCls;
133
+ var columnsList = (0, _react.useMemo)(function () {
134
+ return columns.filter(function (item) {
135
+ if (item === _antd.Table.EXPAND_COLUMN || item === _antd.Table.SELECTION_COLUMN) {
136
+ return false;
137
+ }
138
+ if ((item.hideInSearch || item.search === false) && type !== 'form') {
139
+ return false;
140
+ }
141
+ if (type === 'form' && item.hideInForm) {
142
+ return false;
143
+ }
144
+ return true;
145
+ }).map(function (item) {
146
+ var _item$dataIndex;
147
+ var finalValueType = !item.valueType || ['textarea', 'jsonCode', 'code'].includes(item === null || item === void 0 ? void 0 : item.valueType) && type === 'table' ? 'text' : item === null || item === void 0 ? void 0 : item.valueType;
148
+ var columnKey = (item === null || item === void 0 ? void 0 : item.key) || (item === null || item === void 0 ? void 0 : (_item$dataIndex = item.dataIndex) === null || _item$dataIndex === void 0 ? void 0 : _item$dataIndex.toString());
149
+ return _objectSpread(_objectSpread(_objectSpread({}, item), {}, {
150
+ width: undefined
151
+ }, item.search ? item.search : {}), {}, {
152
+ valueType: finalValueType,
153
+ proFieldProps: _objectSpread(_objectSpread({}, item.proFieldProps), {}, {
154
+ proFieldKey: columnKey ? "table-field-".concat(columnKey) : undefined
155
+ })
156
+ });
157
+ });
158
+ }, [columns, type]);
159
+ var className = getPrefixCls('pro-table-search');
160
+ var formClassName = getPrefixCls('pro-table-form');
161
+ var competentName = (0, _react.useMemo)(function () {
162
+ return getFormCompetent(isForm, searchConfig);
163
+ }, [searchConfig, isForm]);
164
+ // 传给每个表单的配置,理论上大家都需要
165
+ var loadingProps = (0, _react.useMemo)(function () {
166
+ return {
167
+ submitter: {
168
+ submitButtonProps: {
169
+ loading: submitButtonLoading
170
+ }
171
+ }
172
+ };
173
+ }, [submitButtonLoading]);
174
+ return /*#__PURE__*/_react.default.createElement("div", {
175
+ className: (0, _classnames.default)(hashId, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, getPrefixCls('pro-card'), true), "".concat(getPrefixCls('pro-card'), "-border"), !!bordered), "".concat(getPrefixCls('pro-card'), "-bordered"), !!bordered), "".concat(getPrefixCls('pro-card'), "-ghost"), !!ghost), className, true), formClassName, isForm), getPrefixCls("pro-table-search-".concat(toLowerLine(competentName))), true), "".concat(className, "-ghost"), ghost), searchConfig === null || searchConfig === void 0 ? void 0 : searchConfig.className, searchConfig !== false && (searchConfig === null || searchConfig === void 0 ? void 0 : searchConfig.className)))
176
+ }, /*#__PURE__*/_react.default.createElement(_proForm.BetaSchemaForm, _extends({
177
+ layoutType: competentName,
178
+ columns: columnsList,
179
+ type: type
180
+ }, loadingProps, getFromProps(isForm, searchConfig, competentName), getFormConfigs(isForm, formConfig || {}), {
181
+ formRef: formRef,
182
+ action: action,
183
+ dateFormatter: dateFormatter,
184
+ onInit: function onInit(values, form) {
185
+ formRef.current = form;
186
+ // 触发一个 submit,之所以这里触发是为了保证 value 都被 format了
187
+ if (type !== 'form') {
188
+ var _action$current, _action$current2, _action$current2$setP;
189
+ // 修改 pageSize,变成从 url 中获取的
190
+ var pageInfo = (_action$current = action.current) === null || _action$current === void 0 ? void 0 : _action$current.pageInfo;
191
+ // 从 values 里获取是因为有时候要从 url中获取的 pageSize。
192
+ var _values$current = values.current,
193
+ current = _values$current === void 0 ? pageInfo === null || pageInfo === void 0 ? void 0 : pageInfo.current : _values$current,
194
+ _values$pageSize = values.pageSize,
195
+ pageSize = _values$pageSize === void 0 ? pageInfo === null || pageInfo === void 0 ? void 0 : pageInfo.pageSize : _values$pageSize;
196
+ (_action$current2 = action.current) === null || _action$current2 === void 0 ? void 0 : (_action$current2$setP = _action$current2.setPageInfo) === null || _action$current2$setP === void 0 ? void 0 : _action$current2$setP.call(_action$current2, _objectSpread(_objectSpread({}, pageInfo), {}, {
197
+ current: parseInt(current, 10),
198
+ pageSize: parseInt(pageSize, 10)
199
+ }));
200
+ /** 如果是手动模式不需要提交 */
201
+ if (manualRequest) return;
202
+ submit(values, true);
203
+ }
204
+ },
205
+ onReset: function onReset(values) {
206
+ _onReset === null || _onReset === void 0 ? void 0 : _onReset(values);
207
+ },
208
+ onFinish: function onFinish(values) {
209
+ submit(values, false);
210
+ },
211
+ initialValues: formConfig === null || formConfig === void 0 ? void 0 : formConfig.initialValues
212
+ })));
213
+ };
214
+ var _default = exports.default = FormRender;
@@ -0,0 +1,44 @@
1
+ import type { TablePaginationConfig } from 'antd';
2
+ import React from 'react';
3
+ import type { ActionType, ProTableProps } from '@ant-design/pro-components';
4
+ export type Bordered = boolean | {
5
+ search?: boolean;
6
+ table?: boolean;
7
+ };
8
+ type BaseFormProps<T, U> = {
9
+ pagination?: TablePaginationConfig | false;
10
+ beforeSearchSubmit?: (params: Partial<U>) => any;
11
+ action: React.MutableRefObject<ActionType | undefined>;
12
+ onSubmit?: (params: U) => void;
13
+ onReset?: () => void;
14
+ loading: boolean;
15
+ onFormSearchSubmit: (params: U) => void;
16
+ columns: ProTableProps<T, U, any>['columns'];
17
+ dateFormatter: ProTableProps<T, U, any>['dateFormatter'];
18
+ formRef: ProTableProps<T, U, any>['formRef'];
19
+ type: ProTableProps<T, U, any>['type'];
20
+ cardBordered: ProTableProps<T, U, any>['cardBordered'];
21
+ form: ProTableProps<T, U, any>['form'];
22
+ search: ProTableProps<T, U, any>['search'];
23
+ manualRequest: ProTableProps<T, U, any>['manualRequest'];
24
+ changeValue: Function;
25
+ };
26
+ declare class FormSearch<T, U> extends React.Component<BaseFormProps<T, U> & {
27
+ ghost?: boolean;
28
+ }> {
29
+ /** 查询表单相关的配置 */
30
+ onSubmit: (value: U, firstLoad: boolean) => void;
31
+ onReset: (value: Partial<U>) => void;
32
+ /**
33
+ * 只 Diff 需要用的 props,能减少 5 次左右的render
34
+ *
35
+ * @param next
36
+ * @see 因为 hooks 每次的 setFormSearch 都是新的,所以每次都触发 render
37
+ * @see action 也是同样的原因
38
+ * @returns
39
+ */
40
+ isEqual: (next: BaseFormProps<T, U>) => boolean;
41
+ shouldComponentUpdate: (next: BaseFormProps<T, U>) => boolean;
42
+ render: () => React.JSX.Element;
43
+ }
44
+ export default FormSearch;
@@ -0,0 +1,193 @@
1
+ "use strict";
2
+
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _proUtils = require("@ant-design/pro-utils");
9
+ var _omit = _interopRequireDefault(require("omit.js"));
10
+ var _react = _interopRequireDefault(require("react"));
11
+ var _FormRender = _interopRequireDefault(require("./FormRender"));
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
14
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
15
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
16
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
17
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
18
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
19
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
20
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
21
+ function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
22
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
23
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
24
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
25
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
26
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
27
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
28
+ var isBordered = function isBordered(borderType, border) {
29
+ if (border === undefined) {
30
+ return false;
31
+ }
32
+ if (typeof border === 'boolean') {
33
+ return border;
34
+ }
35
+ return border[borderType];
36
+ };
37
+ var FormSearch = /*#__PURE__*/function (_React$Component) {
38
+ _inherits(FormSearch, _React$Component);
39
+ function FormSearch() {
40
+ var _this;
41
+ _classCallCheck(this, FormSearch);
42
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
43
+ args[_key] = arguments[_key];
44
+ }
45
+ _this = _callSuper(this, FormSearch, [].concat(args));
46
+ /** 查询表单相关的配置 */
47
+ _this.onSubmit = function (value, firstLoad) {
48
+ var _this$props = _this.props,
49
+ pagination = _this$props.pagination,
50
+ _this$props$beforeSea = _this$props.beforeSearchSubmit,
51
+ beforeSearchSubmit = _this$props$beforeSea === void 0 ? function (searchParams) {
52
+ return searchParams;
53
+ } : _this$props$beforeSea,
54
+ action = _this$props.action,
55
+ onSubmit = _this$props.onSubmit,
56
+ onFormSearchSubmit = _this$props.onFormSearchSubmit;
57
+ // 只传入 pagination 中的 current 和 pageSize 参数
58
+ var pageInfo = pagination ? (0, _proUtils.omitUndefined)({
59
+ current: pagination.current,
60
+ pageSize: pagination.pageSize
61
+ }) : {};
62
+ var submitParams = _objectSpread(_objectSpread({}, value), {}, {
63
+ _timestamp: Date.now()
64
+ }, pageInfo);
65
+ var omitParams = (0, _omit.default)(beforeSearchSubmit(submitParams), Object.keys(pageInfo));
66
+ onFormSearchSubmit(omitParams);
67
+ if (!firstLoad) {
68
+ var _action$current, _action$current$setPa;
69
+ // back first page
70
+ (_action$current = action.current) === null || _action$current === void 0 ? void 0 : (_action$current$setPa = _action$current.setPageInfo) === null || _action$current$setPa === void 0 ? void 0 : _action$current$setPa.call(_action$current, {
71
+ current: 1
72
+ });
73
+ }
74
+ // 不是第一次提交就不触发,第一次提交是 js 触发的
75
+ // 为了解决 https://github.com/ant-design/pro-components/issues/579
76
+ if (onSubmit && !firstLoad) {
77
+ onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(value);
78
+ }
79
+ };
80
+ _this.onReset = function (value) {
81
+ var _action$current2, _action$current2$setP;
82
+ var _this$props2 = _this.props,
83
+ pagination = _this$props2.pagination,
84
+ _this$props2$beforeSe = _this$props2.beforeSearchSubmit,
85
+ beforeSearchSubmit = _this$props2$beforeSe === void 0 ? function (searchParams) {
86
+ return searchParams;
87
+ } : _this$props2$beforeSe,
88
+ action = _this$props2.action,
89
+ onFormSearchSubmit = _this$props2.onFormSearchSubmit,
90
+ onReset = _this$props2.onReset;
91
+ var pageInfo = pagination ? (0, _proUtils.omitUndefined)({
92
+ current: pagination.current,
93
+ pageSize: pagination.pageSize
94
+ }) : {};
95
+ var omitParams = (0, _omit.default)(beforeSearchSubmit(_objectSpread(_objectSpread({}, value), pageInfo)), Object.keys(pageInfo));
96
+ onFormSearchSubmit(omitParams);
97
+ // back first page
98
+ (_action$current2 = action.current) === null || _action$current2 === void 0 ? void 0 : (_action$current2$setP = _action$current2.setPageInfo) === null || _action$current2$setP === void 0 ? void 0 : _action$current2$setP.call(_action$current2, {
99
+ current: 1
100
+ });
101
+ onReset === null || onReset === void 0 ? void 0 : onReset();
102
+ };
103
+ /**
104
+ * 只 Diff 需要用的 props,能减少 5 次左右的render
105
+ *
106
+ * @param next
107
+ * @see 因为 hooks 每次的 setFormSearch 都是新的,所以每次都触发 render
108
+ * @see action 也是同样的原因
109
+ * @returns
110
+ */
111
+ _this.isEqual = function (next) {
112
+ var _this$props3 = _this.props,
113
+ columns = _this$props3.columns,
114
+ loading = _this$props3.loading,
115
+ formRef = _this$props3.formRef,
116
+ type = _this$props3.type,
117
+ cardBordered = _this$props3.cardBordered,
118
+ dateFormatter = _this$props3.dateFormatter,
119
+ form = _this$props3.form,
120
+ search = _this$props3.search,
121
+ manualRequest = _this$props3.manualRequest;
122
+ var diffProps = {
123
+ columns: columns,
124
+ loading: loading,
125
+ formRef: formRef,
126
+ type: type,
127
+ cardBordered: cardBordered,
128
+ dateFormatter: dateFormatter,
129
+ form: form,
130
+ search: search,
131
+ manualRequest: manualRequest
132
+ };
133
+ return !(0, _proUtils.isDeepEqualReact)(diffProps, {
134
+ columns: next.columns,
135
+ formRef: next.formRef,
136
+ loading: next.loading,
137
+ type: next.type,
138
+ cardBordered: next.cardBordered,
139
+ dateFormatter: next.dateFormatter,
140
+ form: next.form,
141
+ search: next.search,
142
+ manualRequest: next.manualRequest
143
+ });
144
+ };
145
+ _this.shouldComponentUpdate = function (next) {
146
+ return _this.isEqual(next);
147
+ };
148
+ _this.render = function () {
149
+ var _this$props4 = _this.props,
150
+ columns = _this$props4.columns,
151
+ loading = _this$props4.loading,
152
+ formRef = _this$props4.formRef,
153
+ type = _this$props4.type,
154
+ action = _this$props4.action,
155
+ cardBordered = _this$props4.cardBordered,
156
+ dateFormatter = _this$props4.dateFormatter,
157
+ form = _this$props4.form,
158
+ search = _this$props4.search,
159
+ pagination = _this$props4.pagination,
160
+ ghost = _this$props4.ghost,
161
+ manualRequest = _this$props4.manualRequest;
162
+ var pageInfo = pagination ? (0, _proUtils.omitUndefined)({
163
+ current: pagination.current,
164
+ pageSize: pagination.pageSize
165
+ }) : {};
166
+ return /*#__PURE__*/_react.default.createElement(_FormRender.default, {
167
+ submitButtonLoading: loading,
168
+ columns: columns,
169
+ type: type,
170
+ ghost: ghost,
171
+ formRef: formRef,
172
+ onSubmit: _this.onSubmit,
173
+ manualRequest: manualRequest,
174
+ onReset: _this.onReset,
175
+ dateFormatter: dateFormatter,
176
+ search: search,
177
+ form: _objectSpread(_objectSpread({
178
+ onValuesChange: function onValuesChange(changeValue, allValue) {
179
+ _this.props.changeValue(changeValue, allValue);
180
+ },
181
+ autoFocusFirstInput: false
182
+ }, form), {}, {
183
+ extraUrlParams: _objectSpread(_objectSpread({}, pageInfo), form === null || form === void 0 ? void 0 : form.extraUrlParams)
184
+ }),
185
+ action: action,
186
+ bordered: isBordered('search', cardBordered)
187
+ });
188
+ };
189
+ return _this;
190
+ }
191
+ return _createClass(FormSearch);
192
+ }(_react.default.Component);
193
+ var _default = exports.default = FormSearch;
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ declare const Icon: import("react").FC<import("@ant-design/icons/lib/components/IconFont").IconFontProps<string>>;
3
+ export default Icon;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _icons = require("@ant-design/icons");
8
+ /* 采用iconfont Symbol模式
9
+ 每次更新icon后,记得复制最新的地址哦~ */
10
+ var Icon = (0, _icons.createFromIconfontCN)({
11
+ scriptUrl: ['//at.alicdn.com/t/c/font_3161758_5bzjjx85uxv.js', '//at.alicdn.com/t/font_2562875_b3aduyabrj.js']
12
+ });
13
+ var _default = exports.default = Icon;
package/lib/index.d.ts ADDED
@@ -0,0 +1,44 @@
1
+ import React, { ReactElement } from 'react';
2
+ import type { ProColumns } from '@ant-design/pro-components';
3
+ import './FormSearch/index.less';
4
+ interface PlusColumns extends ProColumns {
5
+ baseSearch?: boolean;
6
+ }
7
+ export type { PlusColumns };
8
+ type settingsColumns = {
9
+ [key: string]: {
10
+ hideInTable?: boolean;
11
+ show?: boolean;
12
+ title: string;
13
+ field: string;
14
+ disabled?: boolean;
15
+ fixed?: 'left' | 'right';
16
+ sort?: number;
17
+ };
18
+ };
19
+ type PlusProps = {
20
+ mode?: 'normal' | 'drawsearch';
21
+ columns: PlusColumns[];
22
+ request?: any;
23
+ top?: number;
24
+ fetchSetting?: () => Promise<settingsColumns>;
25
+ updateSetting?: (params: any) => Promise<settingsColumns>;
26
+ defaultColumnsState?: {
27
+ [key: string]: {
28
+ show: boolean;
29
+ fixed: 'left' | 'right' | undefined;
30
+ };
31
+ };
32
+ headerTitle?: ReactElement;
33
+ hasShowFull?: boolean;
34
+ pagination?: {
35
+ pageSize?: number;
36
+ current?: number;
37
+ };
38
+ actionRef: any;
39
+ formRef?: any;
40
+ options?: any;
41
+ [key: string | symbol]: any;
42
+ };
43
+ declare const PlusTable: React.ForwardRefExoticComponent<Omit<PlusProps, "ref"> & React.RefAttributes<unknown>>;
44
+ export default PlusTable;