@sooloer/pages 0.0.1
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.
- package/LICENSE +21 -0
- package/README.md +40 -0
- package/dist/button-group/demo/authcode.d.ts +3 -0
- package/dist/button-group/demo/authcode.js +78 -0
- package/dist/button-group/demo/basic.d.ts +3 -0
- package/dist/button-group/demo/basic.js +67 -0
- package/dist/button-group/demo/custom.d.ts +3 -0
- package/dist/button-group/demo/custom.js +50 -0
- package/dist/button-group/demo/link.d.ts +3 -0
- package/dist/button-group/demo/link.js +65 -0
- package/dist/button-group/index.d.ts +4 -0
- package/dist/button-group/index.js +59 -0
- package/dist/button-group/style.d.ts +5 -0
- package/dist/button-group/style.js +11 -0
- package/dist/button-group/typing.d.ts +35 -0
- package/dist/button-group/typing.js +1 -0
- package/dist/filter/components/checkbox/index.d.ts +3 -0
- package/dist/filter/components/checkbox/index.js +32 -0
- package/dist/filter/components/ellipsis-text/index.d.ts +6 -0
- package/dist/filter/components/ellipsis-text/index.js +78 -0
- package/dist/filter/components/field/index.d.ts +7 -0
- package/dist/filter/components/field/index.js +143 -0
- package/dist/filter/components/input-range/index.d.ts +4 -0
- package/dist/filter/components/input-range/index.js +44 -0
- package/dist/filter/components/input-range/type.d.ts +22 -0
- package/dist/filter/components/input-range/type.js +1 -0
- package/dist/filter/components/text-area/index.d.ts +3 -0
- package/dist/filter/components/text-area/index.js +72 -0
- package/dist/filter/components/text-area/index.less +0 -0
- package/dist/filter/demo/basic.d.ts +3 -0
- package/dist/filter/demo/basic.js +35 -0
- package/dist/filter/demo/change-label-width.d.ts +3 -0
- package/dist/filter/demo/change-label-width.js +59 -0
- package/dist/filter/demo/checkbox.d.ts +3 -0
- package/dist/filter/demo/checkbox.js +69 -0
- package/dist/filter/demo/col-span.d.ts +3 -0
- package/dist/filter/demo/col-span.js +52 -0
- package/dist/filter/demo/custom.d.ts +3 -0
- package/dist/filter/demo/custom.js +53 -0
- package/dist/filter/demo/datePicker.d.ts +3 -0
- package/dist/filter/demo/datePicker.js +72 -0
- package/dist/filter/demo/ellipsis.d.ts +3 -0
- package/dist/filter/demo/ellipsis.js +58 -0
- package/dist/filter/demo/expand.d.ts +3 -0
- package/dist/filter/demo/expand.js +79 -0
- package/dist/filter/demo/form-controlled.d.ts +3 -0
- package/dist/filter/demo/form-controlled.js +63 -0
- package/dist/filter/demo/grid-columns.d.ts +3 -0
- package/dist/filter/demo/grid-columns.js +59 -0
- package/dist/filter/demo/hide-action.d.ts +3 -0
- package/dist/filter/demo/hide-action.js +41 -0
- package/dist/filter/demo/initial-value.d.ts +3 -0
- package/dist/filter/demo/initial-value.js +56 -0
- package/dist/filter/demo/input-range.d.ts +3 -0
- package/dist/filter/demo/input-range.js +24 -0
- package/dist/filter/demo/mask.d.ts +3 -0
- package/dist/filter/demo/mask.js +77 -0
- package/dist/filter/demo/radio.d.ts +3 -0
- package/dist/filter/demo/radio.js +69 -0
- package/dist/filter/demo/rangePicker.d.ts +3 -0
- package/dist/filter/demo/rangePicker.js +80 -0
- package/dist/filter/demo/required.d.ts +3 -0
- package/dist/filter/demo/required.js +36 -0
- package/dist/filter/demo/search-advanced.d.ts +3 -0
- package/dist/filter/demo/search-advanced.js +45 -0
- package/dist/filter/demo/search.d.ts +3 -0
- package/dist/filter/demo/search.js +45 -0
- package/dist/filter/demo/set-field.d.ts +3 -0
- package/dist/filter/demo/set-field.js +64 -0
- package/dist/filter/demo/textarea.d.ts +3 -0
- package/dist/filter/demo/textarea.js +42 -0
- package/dist/filter/demo/tooltip.d.ts +3 -0
- package/dist/filter/demo/tooltip.js +36 -0
- package/dist/filter/index.d.ts +5 -0
- package/dist/filter/index.js +406 -0
- package/dist/filter/index.less +84 -0
- package/dist/filter/typing.d.ts +148 -0
- package/dist/filter/typing.js +1 -0
- package/dist/footer/demo/basic.d.ts +3 -0
- package/dist/footer/demo/basic.js +44 -0
- package/dist/footer/demo/right-render.d.ts +3 -0
- package/dist/footer/demo/right-render.js +8 -0
- package/dist/footer/index.d.ts +6 -0
- package/dist/footer/index.js +26 -0
- package/dist/footer/index.less +11 -0
- package/dist/footer/typing.d.ts +17 -0
- package/dist/footer/typing.js +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.js +9 -0
- package/dist/page/demo/basic.d.ts +3 -0
- package/dist/page/demo/basic.js +215 -0
- package/dist/page/demo/data.d.ts +16 -0
- package/dist/page/demo/data.js +121 -0
- package/dist/page/demo/renderTable.d.ts +3 -0
- package/dist/page/demo/renderTable.js +209 -0
- package/dist/page/demo/selection.d.ts +3 -0
- package/dist/page/demo/selection.js +229 -0
- package/dist/page/index.d.ts +5 -0
- package/dist/page/index.js +120 -0
- package/dist/page/index.less +35 -0
- package/dist/page/typing.d.ts +68 -0
- package/dist/page/typing.js +1 -0
- package/dist/search-condition/demo/basic.d.ts +3 -0
- package/dist/search-condition/demo/basic.js +35 -0
- package/dist/search-condition/demo/custom.d.ts +3 -0
- package/dist/search-condition/demo/custom.js +35 -0
- package/dist/search-condition/demo/ellipsis.d.ts +3 -0
- package/dist/search-condition/demo/ellipsis.js +30 -0
- package/dist/search-condition/demo/expand.d.ts +3 -0
- package/dist/search-condition/demo/expand.js +46 -0
- package/dist/search-condition/demo/removeable.d.ts +3 -0
- package/dist/search-condition/demo/removeable.js +39 -0
- package/dist/search-condition/index.d.ts +5 -0
- package/dist/search-condition/index.js +226 -0
- package/dist/search-condition/index.less +65 -0
- package/dist/search-condition/typing.d.ts +39 -0
- package/dist/search-condition/typing.js +1 -0
- package/dist/tab/demo/basic.d.ts +3 -0
- package/dist/tab/demo/basic.js +36 -0
- package/dist/tab/demo/count.d.ts +3 -0
- package/dist/tab/demo/count.js +63 -0
- package/dist/tab/demo/extra.d.ts +3 -0
- package/dist/tab/demo/extra.js +70 -0
- package/dist/tab/demo/icon.d.ts +3 -0
- package/dist/tab/demo/icon.js +36 -0
- package/dist/tab/demo/overflowCount.d.ts +3 -0
- package/dist/tab/demo/overflowCount.js +50 -0
- package/dist/tab/demo/settingRef.d.ts +3 -0
- package/dist/tab/demo/settingRef.js +77 -0
- package/dist/tab/demo/slide.d.ts +3 -0
- package/dist/tab/demo/slide.js +98 -0
- package/dist/tab/index.d.ts +5 -0
- package/dist/tab/index.js +51 -0
- package/dist/tab/index.less +11 -0
- package/dist/tab/typing.d.ts +51 -0
- package/dist/tab/typing.js +1 -0
- package/dist/table/demo/basic.d.ts +3 -0
- package/dist/table/demo/basic.js +65 -0
- package/dist/table/demo/checkbox.d.ts +3 -0
- package/dist/table/demo/checkbox.js +75 -0
- package/dist/table/demo/data.d.ts +16 -0
- package/dist/table/demo/data.js +120 -0
- package/dist/table/demo/global-checkbox.d.ts +3 -0
- package/dist/table/demo/global-checkbox.js +83 -0
- package/dist/table/demo/setting.d.ts +3 -0
- package/dist/table/demo/setting.js +78 -0
- package/dist/table/index.d.ts +4 -0
- package/dist/table/index.js +173 -0
- package/dist/table/setting/components/height.d.ts +8 -0
- package/dist/table/setting/components/height.js +45 -0
- package/dist/table/setting/components/reload.d.ts +7 -0
- package/dist/table/setting/components/reload.js +19 -0
- package/dist/table/setting/components/sort-group.d.ts +10 -0
- package/dist/table/setting/components/sort-group.js +103 -0
- package/dist/table/setting/components/sort-item.d.ts +3 -0
- package/dist/table/setting/components/sort-item.js +20 -0
- package/dist/table/setting/components/sort.d.ts +9 -0
- package/dist/table/setting/components/sort.js +105 -0
- package/dist/table/setting/index.d.ts +18 -0
- package/dist/table/setting/index.js +41 -0
- package/dist/table/setting/index.less +33 -0
- package/dist/table/table/index.d.ts +5 -0
- package/dist/table/table/index.js +170 -0
- package/dist/table/table/index.less +35 -0
- package/dist/table/typing.d.ts +92 -0
- package/dist/table/typing.js +1 -0
- package/dist/title/demo/basic.d.ts +3 -0
- package/dist/title/demo/basic.js +35 -0
- package/dist/title/demo/custom.d.ts +3 -0
- package/dist/title/demo/custom.js +15 -0
- package/dist/title/index.d.ts +5 -0
- package/dist/title/index.js +32 -0
- package/dist/title/index.less +39 -0
- package/dist/title/typing.d.ts +22 -0
- package/dist/title/typing.js +10 -0
- package/package.json +86 -0
|
@@ -0,0 +1,406 @@
|
|
|
1
|
+
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); }
|
|
2
|
+
var _excluded = ["fields", "maskable", "labelWidth", "resetText", "searchText", "resetButtonProps", "searchButtonProps", "initialValues", "gridColumns", "values", "wrappRef", "onReset", "onSearch", "onExpandChange", "onValuesChange"],
|
|
3
|
+
_excluded2 = ["disabled"];
|
|
4
|
+
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); }
|
|
5
|
+
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; }
|
|
6
|
+
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; }
|
|
7
|
+
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; }
|
|
8
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
9
|
+
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); }
|
|
10
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
11
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
12
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
13
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
14
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
15
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
16
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
17
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
18
|
+
import { DownOutlined } from '@ant-design/icons';
|
|
19
|
+
import { calculator, sum } from '@tmaito/utils';
|
|
20
|
+
import { Button, Col, Form, Row, Space, Tooltip } from 'antd';
|
|
21
|
+
import classnames from 'classnames';
|
|
22
|
+
import React, { forwardRef, useImperativeHandle, useMemo, useRef, useState } from 'react';
|
|
23
|
+
import AutoSize from 'react-virtualized-auto-sizer';
|
|
24
|
+
import Field from "./components/field";
|
|
25
|
+
import "./index.less";
|
|
26
|
+
var theme = {
|
|
27
|
+
button_group_space_size: 8
|
|
28
|
+
};
|
|
29
|
+
var Item = Form.Item;
|
|
30
|
+
var ProFilter = function ProFilter(props, ref) {
|
|
31
|
+
var _props$fields = props.fields,
|
|
32
|
+
fields = _props$fields === void 0 ? [] : _props$fields,
|
|
33
|
+
_props$maskable = props.maskable,
|
|
34
|
+
maskable = _props$maskable === void 0 ? true : _props$maskable,
|
|
35
|
+
_props$labelWidth = props.labelWidth,
|
|
36
|
+
labelWidth = _props$labelWidth === void 0 ? 98 : _props$labelWidth,
|
|
37
|
+
_props$resetText = props.resetText,
|
|
38
|
+
resetText = _props$resetText === void 0 ? '重置' : _props$resetText,
|
|
39
|
+
_props$searchText = props.searchText,
|
|
40
|
+
searchText = _props$searchText === void 0 ? '查询' : _props$searchText,
|
|
41
|
+
_props$resetButtonPro = props.resetButtonProps,
|
|
42
|
+
resetButtonProps = _props$resetButtonPro === void 0 ? {} : _props$resetButtonPro,
|
|
43
|
+
_props$searchButtonPr = props.searchButtonProps,
|
|
44
|
+
searchButtonProps = _props$searchButtonPr === void 0 ? {} : _props$searchButtonPr,
|
|
45
|
+
_props$initialValues = props.initialValues,
|
|
46
|
+
initialValues = _props$initialValues === void 0 ? {} : _props$initialValues,
|
|
47
|
+
gridColumns = props.gridColumns,
|
|
48
|
+
_props$values = props.values,
|
|
49
|
+
values = _props$values === void 0 ? {} : _props$values,
|
|
50
|
+
wrappRef = props.wrappRef,
|
|
51
|
+
onReset = props.onReset,
|
|
52
|
+
onSearch = props.onSearch,
|
|
53
|
+
onExpandChange = props.onExpandChange,
|
|
54
|
+
onValuesChange = props.onValuesChange,
|
|
55
|
+
args = _objectWithoutProperties(props, _excluded);
|
|
56
|
+
var normalFieldRef = useRef(null);
|
|
57
|
+
var _Form$useForm = Form.useForm(),
|
|
58
|
+
_Form$useForm2 = _slicedToArray(_Form$useForm, 1),
|
|
59
|
+
form = _Form$useForm2[0];
|
|
60
|
+
var _useState = useState(0),
|
|
61
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
62
|
+
clientHeight = _useState2[0],
|
|
63
|
+
setClientHeight = _useState2[1];
|
|
64
|
+
var _useState3 = useState(false),
|
|
65
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
66
|
+
isExpanded = _useState4[0],
|
|
67
|
+
setIsExpanded = _useState4[1];
|
|
68
|
+
// 筛选项展示列数
|
|
69
|
+
var _useState5 = useState(4),
|
|
70
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
71
|
+
span = _useState6[0],
|
|
72
|
+
setSpan = _useState6[1];
|
|
73
|
+
useImperativeHandle(ref, function () {
|
|
74
|
+
return {
|
|
75
|
+
form: form
|
|
76
|
+
};
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
// 计算需默认展示字段
|
|
80
|
+
var _useMemo = useMemo(function () {
|
|
81
|
+
var fixeds = [];
|
|
82
|
+
var mores = [];
|
|
83
|
+
fields.forEach(function (item) {
|
|
84
|
+
if (item !== null && item !== void 0 && item.collapsed) {
|
|
85
|
+
mores.push(item);
|
|
86
|
+
} else {
|
|
87
|
+
fixeds.push(item);
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
var firstRowFixed = [];
|
|
91
|
+
var otherRowFixed = [];
|
|
92
|
+
fixeds.reduce(function (total, item) {
|
|
93
|
+
var _item$colSpan = item.colSpan,
|
|
94
|
+
colSpan = _item$colSpan === void 0 ? 1 : _item$colSpan;
|
|
95
|
+
var val = colSpan + total;
|
|
96
|
+
if (val < span) {
|
|
97
|
+
firstRowFixed.push(item);
|
|
98
|
+
} else {
|
|
99
|
+
otherRowFixed.push(item);
|
|
100
|
+
}
|
|
101
|
+
return val;
|
|
102
|
+
}, 0);
|
|
103
|
+
var moreFixedFields = [];
|
|
104
|
+
var moreFields = [];
|
|
105
|
+
var otherRowFixedSpan = sum(otherRowFixed, 'colSpan', 1);
|
|
106
|
+
var remainder = span - otherRowFixedSpan % span;
|
|
107
|
+
mores.reduce(function (total, item) {
|
|
108
|
+
var _item$colSpan2 = item.colSpan,
|
|
109
|
+
colSpan = _item$colSpan2 === void 0 ? 1 : _item$colSpan2;
|
|
110
|
+
var val = colSpan + total;
|
|
111
|
+
if (val <= remainder && remainder < span) {
|
|
112
|
+
moreFixedFields.push(item);
|
|
113
|
+
} else {
|
|
114
|
+
moreFields.push(item);
|
|
115
|
+
}
|
|
116
|
+
return val;
|
|
117
|
+
}, 0);
|
|
118
|
+
return {
|
|
119
|
+
hasMoreFields: mores.length > 0,
|
|
120
|
+
moreFields: [].concat(moreFields),
|
|
121
|
+
moreFixedFields: [].concat(moreFixedFields),
|
|
122
|
+
fixedFirstRowFields: [].concat(firstRowFixed),
|
|
123
|
+
fixedOtherFields: [].concat(otherRowFixed)
|
|
124
|
+
};
|
|
125
|
+
}, [fields, span]),
|
|
126
|
+
moreFields = _useMemo.moreFields,
|
|
127
|
+
hasMoreFields = _useMemo.hasMoreFields,
|
|
128
|
+
moreFixedFields = _useMemo.moreFixedFields,
|
|
129
|
+
fixedFirstRowFields = _useMemo.fixedFirstRowFields,
|
|
130
|
+
fixedOtherFields = _useMemo.fixedOtherFields;
|
|
131
|
+
|
|
132
|
+
// 重置表单字段值
|
|
133
|
+
// 需对 values 字段做判断,如果传入该值,则触发更新,如果无该字段,则仅需内部控制表单字段
|
|
134
|
+
var resetFieldsValue = useMemo(function () {
|
|
135
|
+
if (props.hasOwnProperty('values')) {
|
|
136
|
+
return {
|
|
137
|
+
fields: (fields || []).map(function (item) {
|
|
138
|
+
return {
|
|
139
|
+
name: [item.name],
|
|
140
|
+
value: values[item.name]
|
|
141
|
+
};
|
|
142
|
+
})
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
return {};
|
|
146
|
+
}, [props, values, fields]);
|
|
147
|
+
var hasEmpty = function hasEmpty(value) {
|
|
148
|
+
return value === undefined || value === null;
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
// 通过类型判断字段值是否为空
|
|
152
|
+
// 'input' | 'select' | 'checkbox' | 'radio' | 'range' | 'digitRange' | 'date' | 'dateRange' | 'textarea'
|
|
153
|
+
var isEmptyField = function isEmptyField(value, fields) {
|
|
154
|
+
var _fields$type = fields.type,
|
|
155
|
+
type = _fields$type === void 0 ? 'input' : _fields$type;
|
|
156
|
+
if (['range', 'digitRange'].includes(type)) {
|
|
157
|
+
if (Array.isArray(value)) {
|
|
158
|
+
return hasEmpty(value[0]) && hasEmpty(value[1]);
|
|
159
|
+
}
|
|
160
|
+
return value === undefined;
|
|
161
|
+
}
|
|
162
|
+
return hasEmpty(value);
|
|
163
|
+
};
|
|
164
|
+
var handleIsExpanded = function handleIsExpanded(closeable) {
|
|
165
|
+
setIsExpanded(closeable);
|
|
166
|
+
onExpandChange === null || onExpandChange === void 0 || onExpandChange(closeable);
|
|
167
|
+
if (maskable && wrappRef !== null && wrappRef !== void 0 && wrappRef.current) {
|
|
168
|
+
wrappRef.current.style.position = closeable ? 'relative' : 'initial';
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
// 处理表单结果,input 类型表单结果需进行 - 首尾空格处理
|
|
173
|
+
var trimFieldsValue = function trimFieldsValue(val) {
|
|
174
|
+
var _loop = function _loop(key) {
|
|
175
|
+
var _ref = fields.find(function (item) {
|
|
176
|
+
return item.name === key;
|
|
177
|
+
}) || {},
|
|
178
|
+
_ref$type = _ref.type,
|
|
179
|
+
type = _ref$type === void 0 ? 'input' : _ref$type;
|
|
180
|
+
if (type === 'input') {
|
|
181
|
+
var _val$key;
|
|
182
|
+
val[key] = (_val$key = val[key]) === null || _val$key === void 0 ? void 0 : _val$key.trim();
|
|
183
|
+
}
|
|
184
|
+
};
|
|
185
|
+
for (var key in val) {
|
|
186
|
+
_loop(key);
|
|
187
|
+
}
|
|
188
|
+
return val;
|
|
189
|
+
};
|
|
190
|
+
var handleSearch = function handleSearch(values) {
|
|
191
|
+
onSearch === null || onSearch === void 0 || onSearch(trimFieldsValue(values));
|
|
192
|
+
handleIsExpanded(false);
|
|
193
|
+
};
|
|
194
|
+
var handleReset = function handleReset() {
|
|
195
|
+
form.resetFields();
|
|
196
|
+
handleIsExpanded(false);
|
|
197
|
+
onReset === null || onReset === void 0 || onReset(initialValues);
|
|
198
|
+
};
|
|
199
|
+
var handleValuesChange = function handleValuesChange(changedValues, allValues) {
|
|
200
|
+
if (normalFieldRef !== null && normalFieldRef !== void 0 && normalFieldRef.current) {
|
|
201
|
+
setTimeout(function () {
|
|
202
|
+
var _normalFieldRef$curre;
|
|
203
|
+
// @ts-ignore
|
|
204
|
+
setClientHeight(normalFieldRef === null || normalFieldRef === void 0 || (_normalFieldRef$curre = normalFieldRef.current) === null || _normalFieldRef$curre === void 0 ? void 0 : _normalFieldRef$curre.clientHeight);
|
|
205
|
+
}, 200);
|
|
206
|
+
}
|
|
207
|
+
onValuesChange === null || onValuesChange === void 0 || onValuesChange(trimFieldsValue(changedValues), trimFieldsValue(allValues));
|
|
208
|
+
};
|
|
209
|
+
var calcFieldSpan = function calcFieldSpan(field) {
|
|
210
|
+
var _field$colSpan = field.colSpan,
|
|
211
|
+
colSpan = _field$colSpan === void 0 ? 1 : _field$colSpan;
|
|
212
|
+
return "".concat(calculator.times(colSpan, 100, calculator.divide(1, span)), "%");
|
|
213
|
+
};
|
|
214
|
+
|
|
215
|
+
// 计算当前容器下可展示筛选项列数
|
|
216
|
+
var handleResize = function handleResize(props) {
|
|
217
|
+
var width = props.width;
|
|
218
|
+
var size = 3;
|
|
219
|
+
if (width < 1024) {
|
|
220
|
+
size = 3;
|
|
221
|
+
} else if (width < 1664) {
|
|
222
|
+
size = 4;
|
|
223
|
+
} else {
|
|
224
|
+
size = 5;
|
|
225
|
+
}
|
|
226
|
+
setSpan(gridColumns !== null && gridColumns !== void 0 ? gridColumns : size);
|
|
227
|
+
};
|
|
228
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", _extends({
|
|
229
|
+
className: "sooloer-filter"
|
|
230
|
+
}, args, {
|
|
231
|
+
style: {
|
|
232
|
+
zIndex: maskable && isExpanded ? 1 : 0
|
|
233
|
+
}
|
|
234
|
+
}), /*#__PURE__*/React.createElement(AutoSize, {
|
|
235
|
+
onResize: handleResize
|
|
236
|
+
}, function (props) {
|
|
237
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
238
|
+
style: _objectSpread(_objectSpread({}, props), {}, {
|
|
239
|
+
height: 0,
|
|
240
|
+
visibility: 'hidden'
|
|
241
|
+
})
|
|
242
|
+
});
|
|
243
|
+
}), /*#__PURE__*/React.createElement(Form, _extends({
|
|
244
|
+
form: form
|
|
245
|
+
}, resetFieldsValue, {
|
|
246
|
+
onFinish: handleSearch,
|
|
247
|
+
initialValues: initialValues,
|
|
248
|
+
onValuesChange: handleValuesChange
|
|
249
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
250
|
+
className: classnames('sooloer-filter-container', {
|
|
251
|
+
'is-hidden': !isExpanded
|
|
252
|
+
})
|
|
253
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
254
|
+
ref: normalFieldRef,
|
|
255
|
+
style: {
|
|
256
|
+
padding: '4px 0'
|
|
257
|
+
}
|
|
258
|
+
}, /*#__PURE__*/React.createElement(Row, {
|
|
259
|
+
gutter: 8
|
|
260
|
+
}, fixedFirstRowFields.map(function (item) {
|
|
261
|
+
return /*#__PURE__*/React.createElement(Col, {
|
|
262
|
+
key: item.name,
|
|
263
|
+
flex: calcFieldSpan(item),
|
|
264
|
+
style: {
|
|
265
|
+
maxWidth: calcFieldSpan(item)
|
|
266
|
+
}
|
|
267
|
+
}, /*#__PURE__*/React.createElement(Field, _extends({}, item, {
|
|
268
|
+
labelWidth: labelWidth
|
|
269
|
+
})));
|
|
270
|
+
}), /*#__PURE__*/React.createElement(Col, {
|
|
271
|
+
flex: "auto"
|
|
272
|
+
}, /*#__PURE__*/React.createElement(Item, {
|
|
273
|
+
colon: false,
|
|
274
|
+
shouldUpdate: true,
|
|
275
|
+
labelCol: {
|
|
276
|
+
flex: "".concat(labelWidth, "px")
|
|
277
|
+
},
|
|
278
|
+
className: "sooloer-filter-field-item"
|
|
279
|
+
}, function (_ref2) {
|
|
280
|
+
var getFieldsValue = _ref2.getFieldsValue;
|
|
281
|
+
// 收集所有必填项字段
|
|
282
|
+
var requiredFields = fields.filter(function (item) {
|
|
283
|
+
return item.hasOwnProperty('required') ? item.required : false;
|
|
284
|
+
});
|
|
285
|
+
var fieldsObj = {};
|
|
286
|
+
var fieldsName = [];
|
|
287
|
+
requiredFields.forEach(function (item) {
|
|
288
|
+
// @ts-ignore
|
|
289
|
+
fieldsObj[item.name] = item;
|
|
290
|
+
// @ts-ignore
|
|
291
|
+
fieldsName.push(item.name);
|
|
292
|
+
});
|
|
293
|
+
// const fieldsObj = Object.fromEntries(
|
|
294
|
+
// requiredFields.map((item) => [item.name, item])
|
|
295
|
+
// );
|
|
296
|
+
// 必填项是否未设值
|
|
297
|
+
var title = ''; // 必填提示文案
|
|
298
|
+
if (requiredFields.length) {
|
|
299
|
+
var _values = getFieldsValue(fieldsName);
|
|
300
|
+
// 未设值的字段
|
|
301
|
+
var unsetFields = Object.keys(_values).filter(function (key) {
|
|
302
|
+
return isEmptyField(_values[key], fieldsObj[key]);
|
|
303
|
+
});
|
|
304
|
+
var fieldsLabel = unsetFields.map(function (key) {
|
|
305
|
+
return fieldsObj[key].label;
|
|
306
|
+
});
|
|
307
|
+
title = "".concat(fieldsLabel.join('、')).concat(fieldsLabel.length > 1 ? '等' : '');
|
|
308
|
+
}
|
|
309
|
+
var disabled = searchButtonProps.disabled,
|
|
310
|
+
buttonProps = _objectWithoutProperties(searchButtonProps, _excluded2);
|
|
311
|
+
return /*#__PURE__*/React.createElement(Row, {
|
|
312
|
+
gutter: 8,
|
|
313
|
+
justify: "space-between"
|
|
314
|
+
}, /*#__PURE__*/React.createElement(Col, {
|
|
315
|
+
flex: "none"
|
|
316
|
+
}, hasMoreFields && /*#__PURE__*/React.createElement(Button, {
|
|
317
|
+
type: "link",
|
|
318
|
+
className: classnames('btn-expanded', {
|
|
319
|
+
'is-expanded': isExpanded
|
|
320
|
+
}),
|
|
321
|
+
onClick: function onClick() {
|
|
322
|
+
if (maskable) {
|
|
323
|
+
var _normalFieldRef$curre2;
|
|
324
|
+
// @ts-ignore
|
|
325
|
+
setClientHeight(normalFieldRef === null || normalFieldRef === void 0 || (_normalFieldRef$curre2 = normalFieldRef.current) === null || _normalFieldRef$curre2 === void 0 ? void 0 : _normalFieldRef$curre2.clientHeight);
|
|
326
|
+
}
|
|
327
|
+
setTimeout(function () {
|
|
328
|
+
handleIsExpanded(!isExpanded);
|
|
329
|
+
}, 200);
|
|
330
|
+
}
|
|
331
|
+
}, isExpanded ? '收起' : '更多', /*#__PURE__*/React.createElement(DownOutlined, null))), /*#__PURE__*/React.createElement(Col, {
|
|
332
|
+
flex: "none"
|
|
333
|
+
}, /*#__PURE__*/React.createElement(Space, {
|
|
334
|
+
size: theme === null || theme === void 0 ? void 0 : theme.button_group_space_size
|
|
335
|
+
}, /*#__PURE__*/React.createElement(Button, _extends({
|
|
336
|
+
onClick: handleReset
|
|
337
|
+
}, resetButtonProps), resetText), title ? /*#__PURE__*/React.createElement(Tooltip, {
|
|
338
|
+
title: "".concat(title, "\u5B57\u6BB5\u4E3A\u5FC5\u586B\u9879"),
|
|
339
|
+
className: "sooloer-filter-btn-tooltip"
|
|
340
|
+
}, /*#__PURE__*/React.createElement(Button, _extends({
|
|
341
|
+
type: "primary",
|
|
342
|
+
htmlType: "submit",
|
|
343
|
+
disabled: disabled || !!title
|
|
344
|
+
}, buttonProps), searchText)) : /*#__PURE__*/React.createElement(Button, _extends({
|
|
345
|
+
type: "primary",
|
|
346
|
+
htmlType: "submit",
|
|
347
|
+
disabled: disabled
|
|
348
|
+
}, buttonProps), searchText))));
|
|
349
|
+
}))), /*#__PURE__*/React.createElement(Row, {
|
|
350
|
+
gutter: 8
|
|
351
|
+
}, fixedOtherFields.map(function (item) {
|
|
352
|
+
return /*#__PURE__*/React.createElement(Col, {
|
|
353
|
+
key: item.name,
|
|
354
|
+
flex: calcFieldSpan(item),
|
|
355
|
+
style: {
|
|
356
|
+
maxWidth: calcFieldSpan(item)
|
|
357
|
+
}
|
|
358
|
+
}, /*#__PURE__*/React.createElement(Field, _extends({}, item, {
|
|
359
|
+
labelWidth: labelWidth
|
|
360
|
+
})));
|
|
361
|
+
}), moreFixedFields.map(function (item) {
|
|
362
|
+
return /*#__PURE__*/React.createElement(Col, {
|
|
363
|
+
className: classnames({
|
|
364
|
+
'sooloer-filter-field-hidden': !isExpanded
|
|
365
|
+
}),
|
|
366
|
+
key: item.name,
|
|
367
|
+
flex: calcFieldSpan(item),
|
|
368
|
+
style: {
|
|
369
|
+
maxWidth: calcFieldSpan(item)
|
|
370
|
+
}
|
|
371
|
+
}, /*#__PURE__*/React.createElement(Field, _extends({}, item, {
|
|
372
|
+
labelWidth: labelWidth
|
|
373
|
+
})));
|
|
374
|
+
}))), /*#__PURE__*/React.createElement("div", {
|
|
375
|
+
className: classnames('sooloer-filter-field-more', {
|
|
376
|
+
'is-mask': maskable,
|
|
377
|
+
'is-hidden': !isExpanded
|
|
378
|
+
}),
|
|
379
|
+
style: isExpanded && maskable ? {
|
|
380
|
+
top: clientHeight
|
|
381
|
+
} : {}
|
|
382
|
+
}, /*#__PURE__*/React.createElement(Row, {
|
|
383
|
+
gutter: 8
|
|
384
|
+
}, moreFields.map(function (item) {
|
|
385
|
+
return /*#__PURE__*/React.createElement(Col, {
|
|
386
|
+
key: item.name,
|
|
387
|
+
flex: calcFieldSpan(item),
|
|
388
|
+
style: {
|
|
389
|
+
maxWidth: calcFieldSpan(item)
|
|
390
|
+
}
|
|
391
|
+
}, /*#__PURE__*/React.createElement(Field, _extends({}, item, {
|
|
392
|
+
labelWidth: labelWidth
|
|
393
|
+
})));
|
|
394
|
+
})))))), maskable && (wrappRef === null || wrappRef === void 0 ? void 0 : wrappRef.current) && /*#__PURE__*/React.createElement("div", {
|
|
395
|
+
onClick: function onClick() {
|
|
396
|
+
console.log(1111);
|
|
397
|
+
handleIsExpanded(false);
|
|
398
|
+
},
|
|
399
|
+
className: classnames('sooloer-filter-mask', {
|
|
400
|
+
'is-hidden': !isExpanded
|
|
401
|
+
})
|
|
402
|
+
}));
|
|
403
|
+
};
|
|
404
|
+
|
|
405
|
+
// @ts-ignore
|
|
406
|
+
export default /*#__PURE__*/forwardRef(ProFilter);
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
.sooloer-filter {
|
|
2
|
+
position: relative;
|
|
3
|
+
padding: 0 12px;
|
|
4
|
+
|
|
5
|
+
.btn-expanded {
|
|
6
|
+
.anticon-down {
|
|
7
|
+
margin-left: 4px;
|
|
8
|
+
}
|
|
9
|
+
&.is-expanded {
|
|
10
|
+
.anticon-down {
|
|
11
|
+
transform: translateY(-2px) rotate(-180deg);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
.sooloer-filter-container {
|
|
16
|
+
position: relative;
|
|
17
|
+
transition: all 0.2s cubic-bezier(0.9, 0, 0.3, 0.7);
|
|
18
|
+
}
|
|
19
|
+
.sooloer-filter-field-item {
|
|
20
|
+
margin: 8px 0;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.sooloer-filter-field-more {
|
|
24
|
+
margin-right: -12px;
|
|
25
|
+
margin-left: -12px;
|
|
26
|
+
padding: 0 12px 6px;
|
|
27
|
+
overflow-x: hidden;
|
|
28
|
+
overflow-y: auto;
|
|
29
|
+
transform-origin: top;
|
|
30
|
+
transition: all 0.2s cubic-bezier(0.9, 0, 0.3, 0.7);
|
|
31
|
+
&.is-mask {
|
|
32
|
+
position: absolute;
|
|
33
|
+
right: 0;
|
|
34
|
+
left: 0;
|
|
35
|
+
z-index: 9;
|
|
36
|
+
max-height: 240px;
|
|
37
|
+
background-color: #fff;
|
|
38
|
+
box-shadow: 0 6px 6px -6px rgba(0, 0, 0, 0.1);
|
|
39
|
+
}
|
|
40
|
+
&.is-hidden {
|
|
41
|
+
max-height: 0;
|
|
42
|
+
transform: scaleY(0);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
.sooloer-filter-field-fixed {
|
|
46
|
+
position: relative;
|
|
47
|
+
z-index: 1;
|
|
48
|
+
background-color: #fff;
|
|
49
|
+
}
|
|
50
|
+
.sooloer-filter-field-expand {
|
|
51
|
+
position: absolute;
|
|
52
|
+
z-index: 1;
|
|
53
|
+
width: 100%;
|
|
54
|
+
max-height: 240px;
|
|
55
|
+
overflow-x: hidden;
|
|
56
|
+
overflow-y: auto;
|
|
57
|
+
background: #fff;
|
|
58
|
+
box-shadow: 0 8px 8px -8px rgba(0, 0, 0, 0.2);
|
|
59
|
+
opacity: 1;
|
|
60
|
+
&.is-hidden {
|
|
61
|
+
height: 0;
|
|
62
|
+
opacity: 0;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
.sooloer-filter-field-hidden {
|
|
66
|
+
display: none;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.sooloer-filter-btn-tooltip {
|
|
70
|
+
width: 100%;
|
|
71
|
+
}
|
|
72
|
+
&-mask {
|
|
73
|
+
position: absolute;
|
|
74
|
+
top: 0;
|
|
75
|
+
right: 0;
|
|
76
|
+
bottom: 0;
|
|
77
|
+
left: 0;
|
|
78
|
+
z-index: 0;
|
|
79
|
+
background-color: rgba(0, 0, 0, 0.45);
|
|
80
|
+
&.is-hidden {
|
|
81
|
+
display: none;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export type InternalNamePath = (string | number)[];
|
|
3
|
+
export type NamePath = string | number | InternalNamePath;
|
|
4
|
+
export interface Meta {
|
|
5
|
+
name: InternalNamePath;
|
|
6
|
+
}
|
|
7
|
+
export interface InternalFieldData extends Meta {
|
|
8
|
+
value: any;
|
|
9
|
+
}
|
|
10
|
+
export interface FieldData extends Partial<Omit<InternalFieldData, 'name'>> {
|
|
11
|
+
name: NamePath;
|
|
12
|
+
}
|
|
13
|
+
export interface Callbacks<Values = any> {
|
|
14
|
+
onSearch?: (values: Values) => void;
|
|
15
|
+
onReset?: (values: Values) => void;
|
|
16
|
+
onExpandChange?: (isMore: boolean) => void;
|
|
17
|
+
onValuesChange?: (changedFields: Record<string, unknown>, allFields: Record<string, unknown>) => void;
|
|
18
|
+
}
|
|
19
|
+
export interface OptionProps {
|
|
20
|
+
value?: string | number;
|
|
21
|
+
label?: string | React.ReactNode;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* 筛选项 props
|
|
25
|
+
*/
|
|
26
|
+
export interface ProFieldProps {
|
|
27
|
+
/**
|
|
28
|
+
* @description 标签文本
|
|
29
|
+
*/
|
|
30
|
+
label?: string;
|
|
31
|
+
/**
|
|
32
|
+
* @description 字段名,支持数组
|
|
33
|
+
*/
|
|
34
|
+
name?: string;
|
|
35
|
+
/**
|
|
36
|
+
* @description 筛选项所占列数
|
|
37
|
+
* @default 1
|
|
38
|
+
*/
|
|
39
|
+
colSpan?: number;
|
|
40
|
+
/**
|
|
41
|
+
* @description 筛选项类型,date、select、dateRange 等可通过扩展属性操作
|
|
42
|
+
* @default input
|
|
43
|
+
*/
|
|
44
|
+
type?: string;
|
|
45
|
+
/**
|
|
46
|
+
* @description 自定义筛选项
|
|
47
|
+
*/
|
|
48
|
+
fieldRender?: React.ReactNode;
|
|
49
|
+
/**
|
|
50
|
+
* @description 筛选项是否折叠
|
|
51
|
+
* @default false
|
|
52
|
+
*/
|
|
53
|
+
collapsed?: boolean;
|
|
54
|
+
/**
|
|
55
|
+
* @description 必填样式设置
|
|
56
|
+
* @default false
|
|
57
|
+
*/
|
|
58
|
+
required?: boolean;
|
|
59
|
+
/**
|
|
60
|
+
* @description 配置提示信息
|
|
61
|
+
*/
|
|
62
|
+
tooltip?: string | React.ReactNode;
|
|
63
|
+
/**
|
|
64
|
+
* @description 组件相关扩展属性
|
|
65
|
+
*/
|
|
66
|
+
widgetProps?: Record<string, any>;
|
|
67
|
+
[name: string]: any;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Filter 配置 props
|
|
71
|
+
*/
|
|
72
|
+
export interface ProFilterProps<Values = any> {
|
|
73
|
+
/**
|
|
74
|
+
* @description 标签的宽度
|
|
75
|
+
* @default 98
|
|
76
|
+
*/
|
|
77
|
+
labelWidth?: number;
|
|
78
|
+
/**
|
|
79
|
+
* @description 重置按钮的文本
|
|
80
|
+
* @default 重置
|
|
81
|
+
*/
|
|
82
|
+
resetText?: string;
|
|
83
|
+
/**
|
|
84
|
+
* @description 可设置搜索栏栅格分数
|
|
85
|
+
* @default 系统根据容器自动计算
|
|
86
|
+
*/
|
|
87
|
+
gridColumns?: number;
|
|
88
|
+
/**
|
|
89
|
+
* @description 查询按钮的文本
|
|
90
|
+
* @default 查询
|
|
91
|
+
*/
|
|
92
|
+
searchText?: string;
|
|
93
|
+
/**
|
|
94
|
+
* @description 查询按钮 props
|
|
95
|
+
*/
|
|
96
|
+
searchButtonProps?: any;
|
|
97
|
+
/**
|
|
98
|
+
* @description 是否展示查询、搜索按钮区域
|
|
99
|
+
* @default true
|
|
100
|
+
*/
|
|
101
|
+
searchable?: boolean;
|
|
102
|
+
/**
|
|
103
|
+
* @description 重置按钮 props
|
|
104
|
+
*/
|
|
105
|
+
resetButtonProps?: any;
|
|
106
|
+
/**
|
|
107
|
+
* @description 表单默认值,只有初始化以及重置时生效
|
|
108
|
+
*/
|
|
109
|
+
initialValues?: Record<string, unknown>;
|
|
110
|
+
/**
|
|
111
|
+
* @description 通过状态管理控制表单字段
|
|
112
|
+
*/
|
|
113
|
+
values?: Record<string, unknown>;
|
|
114
|
+
/**
|
|
115
|
+
* @description 更多筛选项时,展开形式, 默认遮盖,false 时占位
|
|
116
|
+
* @default true
|
|
117
|
+
*/
|
|
118
|
+
maskable?: boolean;
|
|
119
|
+
/**
|
|
120
|
+
* @description 初始化
|
|
121
|
+
* @default []
|
|
122
|
+
*/
|
|
123
|
+
fields?: ProFieldProps[];
|
|
124
|
+
/**
|
|
125
|
+
* @description 展开更多筛选项时,根据父节点展示蒙层
|
|
126
|
+
*/
|
|
127
|
+
wrappRef?: any;
|
|
128
|
+
/**
|
|
129
|
+
* @description 获取Form实例
|
|
130
|
+
*/
|
|
131
|
+
ref?: any;
|
|
132
|
+
/**
|
|
133
|
+
* @description 提交表单后回调事件
|
|
134
|
+
*/
|
|
135
|
+
onSearch?: Callbacks<Values>['onSearch'];
|
|
136
|
+
/**
|
|
137
|
+
* @description 重置表后回调事件
|
|
138
|
+
*/
|
|
139
|
+
onReset?: Callbacks<Values>['onReset'];
|
|
140
|
+
/**
|
|
141
|
+
* @description 字段更新时触发回调事件
|
|
142
|
+
*/
|
|
143
|
+
onValuesChange?: Callbacks<Values>['onValuesChange'];
|
|
144
|
+
/**
|
|
145
|
+
* @description 筛选项更多展开 or 收缩时触发
|
|
146
|
+
*/
|
|
147
|
+
onExpandChange?: Callbacks<Values>['onExpandChange'];
|
|
148
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { ProFooter } from "../..";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
export default (function () {
|
|
4
|
+
var buttonSource = [{
|
|
5
|
+
buttonProps: {
|
|
6
|
+
onClick: function onClick() {
|
|
7
|
+
console.log('上传');
|
|
8
|
+
}
|
|
9
|
+
},
|
|
10
|
+
fixed: true,
|
|
11
|
+
text: '上传'
|
|
12
|
+
}, {
|
|
13
|
+
buttonProps: {
|
|
14
|
+
type: 'primary',
|
|
15
|
+
onClick: function onClick() {
|
|
16
|
+
console.log('修改');
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
fixed: true,
|
|
20
|
+
text: '修改'
|
|
21
|
+
}, {
|
|
22
|
+
buttonProps: {
|
|
23
|
+
type: 'primary',
|
|
24
|
+
danger: true,
|
|
25
|
+
onClick: function onClick() {
|
|
26
|
+
console.log('删除');
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
fixed: true,
|
|
30
|
+
text: '删除'
|
|
31
|
+
}];
|
|
32
|
+
return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(ProFooter, {
|
|
33
|
+
leftRender: /*#__PURE__*/React.createElement(React.Fragment, null, "leftRender"),
|
|
34
|
+
toolbars: {
|
|
35
|
+
buttons: buttonSource
|
|
36
|
+
}
|
|
37
|
+
})), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(ProFooter, {
|
|
38
|
+
leftRender: /*#__PURE__*/React.createElement(React.Fragment, null, "leftRender")
|
|
39
|
+
})), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(ProFooter, {
|
|
40
|
+
toolbars: {
|
|
41
|
+
buttons: buttonSource
|
|
42
|
+
}
|
|
43
|
+
})));
|
|
44
|
+
});
|