@luck-design-biz/luckda 0.0.5 → 0.0.6

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.
Files changed (53) hide show
  1. package/es/components/Builder/index.js +133 -0
  2. package/es/components/LdAutoForm/index.js +128 -0
  3. package/es/components/LdCard/index.js +197 -0
  4. package/es/components/LdCard/model.js +32 -0
  5. package/es/components/LdCom/index.js +24 -0
  6. package/es/components/LdFormList/index.js +316 -0
  7. package/es/components/LdFormList/model.js +25 -0
  8. package/es/components/LdGrid/index.js +227 -0
  9. package/es/components/LdGrid/model.js +33 -0
  10. package/es/components/LdGridForm/index.js +172 -0
  11. package/es/components/LdGridForm/index.less +7 -0
  12. package/es/components/LdInfoPanel/index.js +116 -0
  13. package/es/components/LdPop/index.js +31 -0
  14. package/es/components/LdTree/index.js +246 -0
  15. package/es/components/LdTree/index.less +36 -0
  16. package/es/helper/FromItems.js +267 -0
  17. package/es/helper/action.js +136 -0
  18. package/es/helper/form.js +100 -0
  19. package/es/helper/ldBuilder.js +47 -0
  20. package/es/helper/ldComBuild.js +38 -0
  21. package/es/index.js +9 -0
  22. package/es/services.js +46 -0
  23. package/es/utils/action.js +33 -0
  24. package/es/utils/form.js +214 -0
  25. package/es/utils/grid.js +194 -0
  26. package/es/utils/index.js +3 -0
  27. package/lib/components/Builder/index.js +142 -0
  28. package/lib/components/LdAutoForm/index.js +137 -0
  29. package/lib/components/LdCard/index.js +206 -0
  30. package/lib/components/LdCard/model.js +39 -0
  31. package/lib/components/LdCom/index.js +35 -0
  32. package/lib/components/LdFormList/index.js +324 -0
  33. package/lib/components/LdFormList/model.js +32 -0
  34. package/lib/components/LdGrid/index.js +236 -0
  35. package/lib/components/LdGrid/model.js +40 -0
  36. package/lib/components/LdGridForm/index.js +181 -0
  37. package/lib/components/LdGridForm/index.less +7 -0
  38. package/lib/components/LdInfoPanel/index.js +125 -0
  39. package/lib/components/LdPop/index.js +40 -0
  40. package/lib/components/LdTree/index.js +255 -0
  41. package/lib/components/LdTree/index.less +36 -0
  42. package/lib/helper/FromItems.js +287 -0
  43. package/lib/helper/action.js +145 -0
  44. package/lib/helper/form.js +111 -0
  45. package/lib/helper/ldBuilder.js +56 -0
  46. package/lib/helper/ldComBuild.js +49 -0
  47. package/lib/index.js +84 -0
  48. package/lib/services.js +54 -0
  49. package/lib/utils/action.js +40 -0
  50. package/lib/utils/form.js +225 -0
  51. package/lib/utils/grid.js +203 -0
  52. package/lib/utils/index.js +38 -0
  53. package/package.json +5 -3
@@ -0,0 +1,324 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
14
+ var _react = _interopRequireWildcard(require("react"));
15
+ var _querystring = require("querystring");
16
+ var _umi = require("umi");
17
+ var _propTypes = _interopRequireDefault(require("prop-types"));
18
+ var _ahooks = require("ahooks");
19
+ var _luckDesign = require("luck-design");
20
+ var _utils = require("@luck-design-biz/base/utils");
21
+ var _FormList = require("@luck-design-biz/base/FormList");
22
+ var _LdAutoForm = _interopRequireDefault(require("../LdAutoForm"));
23
+ var _LdGridForm = _interopRequireDefault(require("../LdGridForm"));
24
+ var _base = require("@luck-design-biz/base");
25
+ var _Builder = require("../Builder");
26
+ var _LdPop = require("../LdPop");
27
+ var _model = _interopRequireDefault(require("./model"));
28
+ var _action = require("../../helper/action");
29
+ var _excluded = ["namespace", "formState", "formMode", "loading", "wrapperRef", "readOnly", "mainFormLdId", "renderFormList", "renderAffixLeft", "renderAffixRight", "beforeSubmit", "showSaveBtn", "saveBtnTitle", "affixLayout", "onValueChange", "afterSubmit", "renderFormExtra"],
30
+ _excluded2 = ["id", "header", "title", "readOnly", "extraConfig"],
31
+ _excluded3 = ["ldId", "initData", "overModel"];
32
+ // 组件
33
+ var LdFormList = function LdFormList(_ref) {
34
+ var _formList$find;
35
+ var namespace = _ref.namespace,
36
+ formState = _ref.formState,
37
+ formMode = _ref.formMode,
38
+ loading = _ref.loading,
39
+ wrapperRef = _ref.wrapperRef,
40
+ readOnly = _ref.readOnly,
41
+ mainFormLdId = _ref.mainFormLdId,
42
+ renderFormList = _ref.renderFormList,
43
+ renderAffixLeft = _ref.renderAffixLeft,
44
+ renderAffixRight = _ref.renderAffixRight,
45
+ beforeSubmit = _ref.beforeSubmit,
46
+ showSaveBtn = _ref.showSaveBtn,
47
+ saveBtnTitle = _ref.saveBtnTitle,
48
+ affixLayout = _ref.affixLayout,
49
+ _ref$onValueChange = _ref.onValueChange,
50
+ onValueChange = _ref$onValueChange === void 0 ? function () {} : _ref$onValueChange,
51
+ afterSubmit = _ref.afterSubmit,
52
+ _ref$renderFormExtra = _ref.renderFormExtra,
53
+ renderFormExtra = _ref$renderFormExtra === void 0 ? function () {
54
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
55
+ } : _ref$renderFormExtra,
56
+ props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
57
+ var _useState = (0, _react.useState)(false),
58
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
59
+ submitLoading = _useState2[0],
60
+ setSubmitLoading = _useState2[1];
61
+ var _ref2 = (0, _react.useContext)(_LdPop.LuckDaPopContext) || {},
62
+ defaultLayout = _ref2.affixLayout;
63
+ var _ref3 = (0, _react.useContext)(_base.FormWindowContext) || {},
64
+ formWindow = _ref3.formWindow;
65
+ var _ref4 = (0, _react.useContext)(_Builder.LuckDaContext) || {},
66
+ readFieldProps = _ref4.readFieldProps,
67
+ dataSets = _ref4.dataSets,
68
+ doAction = _ref4.doAction;
69
+ var formListRef = (0, _react.useRef)(null);
70
+ (0, _react.useImperativeHandle)(wrapperRef, function () {
71
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, formListRef.current), {}, {
72
+ onLdQuery: function onLdQuery() {
73
+ var _params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
74
+ if (props.formMode !== 'add') {
75
+ var _getDvaApp;
76
+ (_getDvaApp = (0, _umi.getDvaApp)()) === null || _getDvaApp === void 0 ? void 0 : _getDvaApp._store.dispatch({
77
+ type: "".concat(namespace, "/setTicketData"),
78
+ payload: {
79
+ ticketData: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props.ticketData), _params)
80
+ }
81
+ });
82
+ formListRef.current.doQuery();
83
+ }
84
+ }
85
+ });
86
+ });
87
+ var handleValueChange = (0, _ahooks.useMemoizedFn)(function (change) {
88
+ var _ref5 = formListRef.current || {},
89
+ formRefs = _ref5.formRefs;
90
+ var data = formRefs && Object.keys(formRefs).map(function (key) {
91
+ var _formRefs$key$current;
92
+ var getValue = formRefs[key].getData || ((_formRefs$key$current = formRefs[key].current) === null || _formRefs$key$current === void 0 ? void 0 : _formRefs$key$current.getFieldsValue);
93
+ return (0, _defineProperty2.default)({}, key, getValue());
94
+ });
95
+ onValueChange(change, data);
96
+ });
97
+ var renderExtra = (0, _ahooks.useMemoizedFn)(function (formId, extraConfig) {
98
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, window['g_sessionStore'].get(window.appConfig['matchPresetAdmin']) === '1' && RUNTIME === 'dev' && /*#__PURE__*/_react.default.createElement("a", {
99
+ onClick: function onClick() {
100
+ return readFieldProps(formId);
101
+ }
102
+ }, (0, _utils.formatMessage)({
103
+ id: 'app.luckda.button.readConfig',
104
+ label: '查看配置'
105
+ })), /*#__PURE__*/_react.default.createElement(_FormList.FormBtn, (0, _extends2.default)({
106
+ formId: formId
107
+ }, extraConfig)));
108
+ });
109
+ var handleBatchSubmit = function handleBatchSubmit(values, action) {
110
+ var _ref7 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
111
+ formCode = _ref7.formCode,
112
+ formKey = _ref7.formKey;
113
+ setSubmitLoading(true);
114
+ (0, _action.onBatchSubmitAction)({
115
+ values: values,
116
+ formList: formList,
117
+ dataSets: dataSets,
118
+ beforeSubmit: beforeSubmit,
119
+ doAction: doAction,
120
+ action: action,
121
+ formData: props.formData,
122
+ form_id: formKey,
123
+ effcode: formCode
124
+ }, function (success, indocno) {
125
+ setSubmitLoading(false);
126
+ if (success) {
127
+ if (afterSubmit) {
128
+ afterSubmit();
129
+ } else {
130
+ var _formListRef$current;
131
+ props.parentModelName && ((_formListRef$current = formListRef.current) === null || _formListRef$current === void 0 ? void 0 : _formListRef$current.doParentsQuery());
132
+ if (!formWindow && formMode === 'add' && window.__INJECTED_FLOAT_MICRO_APP_BY_QIANKUN) {
133
+ var _history$location = _umi.history.location,
134
+ pathname = _history$location.pathname,
135
+ query = _history$location.query;
136
+ var _pathname = pathname.replace(/\/0(?=[?]|[\/]$|$)/g, "/".concat(indocno, "?"));
137
+ window.openUrl("layer:".concat(_pathname).concat((0, _querystring.stringify)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, query), {}, {
138
+ title: window.__INJECTED_APP_NAME_BY_QIANKUN__
139
+ }))));
140
+ } else {
141
+ formListRef.current.onQuery(null, (0, _defineProperty2.default)({}, mainFormLdId, {
142
+ indocno: indocno
143
+ }), function () {
144
+ return formListRef.current.setFormMode('edit');
145
+ });
146
+ }
147
+ }
148
+ }
149
+ });
150
+ };
151
+ var formConfig = (0, _objectSpread2.default)((0, _objectSpread2.default)({
152
+ formState: formState,
153
+ formMode: formMode,
154
+ loading: loading || submitLoading
155
+ }, props), {}, {
156
+ namespace: namespace,
157
+ readOnly: readOnly,
158
+ mainFormLdId: mainFormLdId,
159
+ onValueChange: handleValueChange,
160
+ renderExtra: renderExtra
161
+ });
162
+ var formList = renderFormList(formConfig);
163
+ var mainDataSetKey = (_formList$find = formList.find(function (i) {
164
+ return i.id === mainFormLdId;
165
+ })) === null || _formList$find === void 0 ? void 0 : _formList$find.dataSetKey;
166
+ return /*#__PURE__*/_react.default.createElement(_FormList.FormList, (0, _extends2.default)({
167
+ editFlow: true,
168
+ formState: formState,
169
+ formMode: formMode,
170
+ loading: loading || submitLoading
171
+ }, props, {
172
+ modelName: namespace,
173
+ ref: formListRef,
174
+ onAdd: function onAdd(values, other) {
175
+ return handleBatchSubmit(values, 'add', other);
176
+ },
177
+ onBatchUpdate: function onBatchUpdate(values, other) {
178
+ return handleBatchSubmit(values, 'update', other);
179
+ }
180
+ }), /*#__PURE__*/_react.default.createElement(_FormList.FormListAffix, {
181
+ showSaveBtn: !readOnly && showSaveBtn,
182
+ renderLeft: renderAffixLeft,
183
+ renderRight: renderAffixRight,
184
+ title: saveBtnTitle,
185
+ layout: affixLayout || defaultLayout
186
+ }), formList.map(function (formProps) {
187
+ var _ref8 = formProps || {},
188
+ ldId = _ref8.id,
189
+ _ref8$header = _ref8.header,
190
+ header = _ref8$header === void 0 ? 'collapse' : _ref8$header,
191
+ title = _ref8.title,
192
+ _readOnly = _ref8.readOnly,
193
+ _ref8$extraConfig = _ref8.extraConfig,
194
+ extraConfig = _ref8$extraConfig === void 0 ? {} : _ref8$extraConfig,
195
+ _props = (0, _objectWithoutProperties2.default)(_ref8, _excluded2);
196
+ var _props$type = _props.type,
197
+ type = _props$type === void 0 ? 'auto' : _props$type;
198
+ var renderForm = type === 'auto' ? _LdAutoForm.default : _LdGridForm.default;
199
+ if (header === 'collapse') return /*#__PURE__*/_react.default.createElement(_base.Collapse, {
200
+ title: title || ldId,
201
+ extra: renderExtra(ldId, extraConfig),
202
+ id: ldId,
203
+ key: ldId,
204
+ mode: ldId !== mainFormLdId && 'tab'
205
+ }, renderForm((0, _objectSpread2.default)((0, _objectSpread2.default)({}, _props), {}, {
206
+ ldId: ldId,
207
+ mainFormLdId: mainFormLdId,
208
+ mainDataSetKey: mainDataSetKey,
209
+ readOnly: readOnly || _readOnly,
210
+ onValueChange: handleValueChange,
211
+ ticketData: props.ticketData
212
+ })));
213
+ return /*#__PURE__*/_react.default.createElement(_react.Fragment, {
214
+ key: ldId
215
+ }, header === 'divider' && /*#__PURE__*/_react.default.createElement(_luckDesign.BasicDivider, {
216
+ title: title || ldId,
217
+ id: ldId
218
+ }), /*#__PURE__*/_react.default.createElement("div", {
219
+ style: {
220
+ textAlign: 'right'
221
+ }
222
+ }, renderExtra(ldId, extraConfig)), renderForm((0, _objectSpread2.default)((0, _objectSpread2.default)({}, _props), {}, {
223
+ ldId: ldId,
224
+ mainFormLdId: mainFormLdId,
225
+ mainDataSetKey: mainDataSetKey,
226
+ readOnly: readOnly || _readOnly,
227
+ onValueChange: handleValueChange,
228
+ ticketData: props.ticketData
229
+ })));
230
+ }), _utils.ChildrenUtil.deepMap(renderFormExtra(formConfig), function (child) {
231
+ var _child$type;
232
+ return /*#__PURE__*/_react.default.cloneElement(child, ((_child$type = child.type) === null || _child$type === void 0 ? void 0 : _child$type.displayName) === 'Collapse' ? {
233
+ mode: child.props.mode || 'tab'
234
+ } : {});
235
+ }));
236
+ };
237
+
238
+ // 构建带有model的组件
239
+ var builder = function builder(WrappedComponent, namespace, initData) {
240
+ var _getDvaApp2;
241
+ (_getDvaApp2 = (0, _umi.getDvaApp)()) === null || _getDvaApp2 === void 0 ? void 0 : _getDvaApp2._store.dispatch({
242
+ type: "".concat(namespace, "/setFormInit"),
243
+ payload: (0, _objectSpread2.default)({
244
+ formMode: 'add'
245
+ }, initData)
246
+ });
247
+ return (0, _umi.connect)(function (_ref9) {
248
+ var modelName = _ref9[namespace],
249
+ loading = _ref9.loading;
250
+ return {
251
+ formData: modelName.formData,
252
+ formOperates: modelName.formOperates,
253
+ formState: modelName.formState,
254
+ formMode: modelName.formMode,
255
+ ticketData: modelName.ticketData,
256
+ loading: loading.models[namespace]
257
+ };
258
+ })(WrappedComponent);
259
+ };
260
+ var Index = function Index(_ref10) {
261
+ var namespace = _ref10.ldId,
262
+ initData = _ref10.initData,
263
+ overModel = _ref10.overModel,
264
+ props = (0, _objectWithoutProperties2.default)(_ref10, _excluded3);
265
+ var match = (0, _umi.useRouteMatch)();
266
+ var Component = (0, _ahooks.useCreation)(function () {
267
+ var _getDvaApp3, _getDvaApp4, _match$params;
268
+ (_getDvaApp3 = (0, _umi.getDvaApp)()) === null || _getDvaApp3 === void 0 ? void 0 : _getDvaApp3.unmodel(namespace);
269
+ if (!((_getDvaApp4 = (0, _umi.getDvaApp)()) === null || _getDvaApp4 === void 0 ? void 0 : _getDvaApp4._store.getState()[namespace])) {
270
+ var _getDvaApp5;
271
+ (_getDvaApp5 = (0, _umi.getDvaApp)()) === null || _getDvaApp5 === void 0 ? void 0 : _getDvaApp5.model((0, _model.default)(namespace, overModel));
272
+ }
273
+ return builder(LdFormList, namespace, (match === null || match === void 0 ? void 0 : (_match$params = match.params) === null || _match$params === void 0 ? void 0 : _match$params.isEdit) ? (0, _objectSpread2.default)((0, _objectSpread2.default)({}, initData), {}, {
274
+ formMode: 'edit'
275
+ }) : initData);
276
+ }, [namespace]);
277
+ return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
278
+ namespace: namespace
279
+ }, props));
280
+ };
281
+ Index.propTypes = {
282
+ ldId: _propTypes.default.string.isRequired,
283
+ // 唯一key
284
+ initData: _propTypes.default.object,
285
+ // 初始化数据
286
+ readOnly: _propTypes.default.bool,
287
+ // 是否只读
288
+ mainFormLdId: _propTypes.default.string,
289
+ // 主数据集Key
290
+ renderFormList: _propTypes.default.func,
291
+ renderAffixLeft: _propTypes.default.func,
292
+ // 左侧渲染
293
+ renderAffixRight: _propTypes.default.func,
294
+ // 右侧渲染
295
+ beforeSubmit: _propTypes.default.func,
296
+ // 点击提交前的事件
297
+ showSaveBtn: _propTypes.default.bool,
298
+ // 是否展示保存按钮
299
+ saveBtnTitle: _propTypes.default.element,
300
+ // 自定义保存按钮上的内容
301
+ affixLayout: _propTypes.default.oneOf(['top', 'bottom']),
302
+ onValueChange: _propTypes.default.func // 参数变化的事件
303
+ };
304
+
305
+ Index.defaultProps = {
306
+ initData: {},
307
+ readOnly: false,
308
+ renderFormList: function renderFormList() {
309
+ return [];
310
+ },
311
+ showSaveBtn: true,
312
+ beforeSubmit: function beforeSubmit(values) {
313
+ return new Promise(function (resolve) {
314
+ return resolve(values);
315
+ });
316
+ },
317
+ overModel: {}
318
+ };
319
+ var _default = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
320
+ return /*#__PURE__*/_react.default.createElement(Index, (0, _extends2.default)({
321
+ wrapperRef: ref
322
+ }, props));
323
+ });
324
+ exports.default = _default;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = _default;
8
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
+ var _modelHelper = require("@luck-design-biz/base/utils/modelHelper");
10
+ function _default(namespace) {
11
+ var modelProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
12
+ return (0, _modelHelper.createFormModel)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, modelProps), {}, {
13
+ namespace: namespace,
14
+ state: (0, _objectSpread2.default)({
15
+ ticketData: null
16
+ }, (modelProps === null || modelProps === void 0 ? void 0 : modelProps.state) || {}),
17
+ reducers: (0, _objectSpread2.default)({
18
+ setFormInit: function setFormInit(state, _ref) {
19
+ var payload = _ref.payload;
20
+ var formMode = payload.formMode,
21
+ ticketData = payload.ticketData;
22
+ state.formMode = formMode;
23
+ state.ticketData = ticketData;
24
+ },
25
+ setTicketData: function setTicketData(state, _ref2) {
26
+ var payload = _ref2.payload;
27
+ var ticketData = payload.ticketData;
28
+ state.ticketData = ticketData;
29
+ }
30
+ }, (modelProps === null || modelProps === void 0 ? void 0 : modelProps.reducers) || {})
31
+ }));
32
+ }
@@ -0,0 +1,236 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
12
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
+ var _react = _interopRequireWildcard(require("react"));
14
+ var _umi = require("umi");
15
+ var _lodash = require("lodash");
16
+ var _ahooks = require("ahooks");
17
+ var _propTypes = _interopRequireDefault(require("prop-types"));
18
+ var _Component = require("@luck-design-biz/base/Component");
19
+ var _List = require("@luck-design-biz/base/List");
20
+ var _ldBuilder = _interopRequireDefault(require("../../helper/ldBuilder"));
21
+ var _utils = require("../../utils");
22
+ var _model = _interopRequireDefault(require("./model"));
23
+ var _excluded = ["columns", "resources", "actions", "doAction", "afterInit", "namespace", "wrapperRef", "list", "detail", "params", "filters", "loading", "unclosableSet", "onQuery", "doQuery", "pageno", "pagesize", "totalCount", "columnsRewrite", "columnsReset", "batchOperations", "formatDataSource", "resultSet", "actionsColumn", "readFilter", "isFlow", "isTreeGrid"],
24
+ _excluded2 = ["ldId", "moduleCode", "suppressInit", "overModel", "afterQuery"];
25
+ var LdGrid = function LdGrid(_ref) {
26
+ var columns = _ref.columns,
27
+ resources = _ref.resources,
28
+ actions = _ref.actions,
29
+ doAction = _ref.doAction,
30
+ afterInit = _ref.afterInit,
31
+ namespace = _ref.namespace,
32
+ wrapperRef = _ref.wrapperRef,
33
+ list = _ref.list,
34
+ detail = _ref.detail,
35
+ params = _ref.params,
36
+ filters = _ref.filters,
37
+ loading = _ref.loading,
38
+ unclosableSet = _ref.unclosableSet,
39
+ onQuery = _ref.onQuery,
40
+ doQuery = _ref.doQuery,
41
+ current = _ref.pageno,
42
+ pageSize = _ref.pagesize,
43
+ total = _ref.totalCount,
44
+ columnsRewrite = _ref.columnsRewrite,
45
+ columnsReset = _ref.columnsReset,
46
+ batchOperations = _ref.batchOperations,
47
+ formatDataSource = _ref.formatDataSource,
48
+ resultSet = _ref.resultSet,
49
+ actionsColumn = _ref.actionsColumn,
50
+ readFilter = _ref.readFilter,
51
+ isFlow = _ref.isFlow,
52
+ isTreeGrid = _ref.isTreeGrid,
53
+ props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
54
+ var gridRef = (0, _react.useRef)(null);
55
+ var treeConfig = (0, _ahooks.useCreation)(function () {
56
+ if (isTreeGrid) {
57
+ return {
58
+ treeData: true,
59
+ isFlow: true,
60
+ renderIndex: false,
61
+ getDataPath: function getDataPath(data) {
62
+ var _data$sidcc;
63
+ return (_data$sidcc = data.sidcc) === null || _data$sidcc === void 0 ? void 0 : _data$sidcc.substring(1, data.sidcc.length - 1).split('/');
64
+ }
65
+ };
66
+ }
67
+ return {};
68
+ }, [isTreeGrid]);
69
+ (0, _react.useEffect)(function () {
70
+ readFilter && readFilter(params, filters);
71
+ }, [params, filters]);
72
+ (0, _react.useImperativeHandle)(wrapperRef, function () {
73
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, gridRef.current), {}, {
74
+ onLdQuery: function onLdQuery() {
75
+ var _params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
76
+ doQuery({
77
+ params: _params
78
+ });
79
+ }
80
+ });
81
+ });
82
+ var _batchOperations = (0, _ahooks.useCreation)(function () {
83
+ return batchOperations.map(function (i) {
84
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, i), {}, {
85
+ wanted: i.wanted || 'virtual'
86
+ });
87
+ });
88
+ }, [batchOperations]);
89
+
90
+ /**
91
+ * 优先级
92
+ * columnsReset 重置columns,不受模块管理限制,写什么展示什么
93
+ * columnsRewrite 覆盖模块管理配置,是否展示以模块管理配置为主,自己可以用hide来隐藏某字段
94
+ */
95
+ var _columns = (0, _ahooks.useCreation)(function () {
96
+ if (columnsReset) return columnsReset;
97
+ var defaultColumns = (0, _lodash.keyBy)(columns, 'field');
98
+ var customColumns = (0, _lodash.keyBy)(columnsRewrite, 'field');
99
+ var mergeFields = (0, _lodash.union)((0, _lodash.keys)(defaultColumns), (0, _lodash.keys)(customColumns));
100
+ return (0, _lodash.transform)(mergeFields, function (result, field) {
101
+ var _customColumns$field;
102
+ if ((_customColumns$field = customColumns[field]) === null || _customColumns$field === void 0 ? void 0 : _customColumns$field.hide) {
103
+ // 任何情况都不显示
104
+ } else if (!defaultColumns[field]) {
105
+ // 数据集中不存在的字段以自定义的形式展示
106
+ result.push(customColumns[field]);
107
+ } else if (defaultColumns[field].isShowInGrid)
108
+ // 数据集中存在的字段和自定义结合展示
109
+ result.push((0, _utils.getGridColumn)(defaultColumns[field], customColumns[field] || {}));
110
+ }, []);
111
+ }, [columns, columnsRewrite, columnsReset]);
112
+ var _actionsColumn = (0, _ahooks.useCreation)(function () {
113
+ return actionsColumn ? (0, _objectSpread2.default)((0, _objectSpread2.default)({}, actionsColumn), {}, {
114
+ getActions: function getActions(data, index, params) {
115
+ var gridActions = actionsColumn.getActions && actionsColumn.getActions(data, index, params) || [];
116
+ return (0, _lodash.transform)(gridActions, function (result, value) {
117
+ if (!value.resource || (0, _lodash.includes)(data['__infuse_serial__'] || resources, value.resource)) {
118
+ result.push((0, _objectSpread2.default)((0, _objectSpread2.default)({}, value), {}, {
119
+ wanted: value.resource || 'virtual'
120
+ }));
121
+ }
122
+ }, []);
123
+ }
124
+ }) : null;
125
+ }, [actionsColumn, resources]);
126
+ var _resultSet = (0, _objectSpread2.default)((0, _objectSpread2.default)({
127
+ set: {
128
+ params: params,
129
+ filters: filters
130
+ }
131
+ }, resultSet), {}, {
132
+ unclosableSet: unclosableSet,
133
+ onQuery: onQuery
134
+ });
135
+ return /*#__PURE__*/_react.default.createElement(_List.GridList, (0, _extends2.default)({
136
+ columns: _columns
137
+ // 资源串、行为配置
138
+ ,
139
+ actionsColumn: _actionsColumn,
140
+ batchOperations: _batchOperations,
141
+ loading: loading,
142
+ pagination: isFlow ? false : {
143
+ total: total,
144
+ current: current,
145
+ pageSize: pageSize
146
+ },
147
+ dataSource: formatDataSource(list, detail),
148
+ resultSet: _resultSet
149
+ }, treeConfig, props, {
150
+ modelName: namespace,
151
+ operates: [].concat((0, _toConsumableArray2.default)(resources), ['virtual']),
152
+ ref: gridRef
153
+ }));
154
+ };
155
+ var ForwardLdGrid = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
156
+ return /*#__PURE__*/_react.default.createElement(LdGrid, (0, _extends2.default)({
157
+ wrapperRef: ref
158
+ }, props));
159
+ });
160
+ var LdIndex = function LdIndex(_ref2) {
161
+ var namespace = _ref2.ldId,
162
+ moduleCode = _ref2.moduleCode,
163
+ suppressInit = _ref2.suppressInit,
164
+ overModel = _ref2.overModel,
165
+ afterQuery = _ref2.afterQuery,
166
+ props = (0, _objectWithoutProperties2.default)(_ref2, _excluded2);
167
+ var isTreeGrid = (0, _lodash.includes)(props.isTree, props.dataSetKey);
168
+ var Component = (0, _ahooks.useCreation)(function () {
169
+ var _getDvaApp, _getDvaApp2;
170
+ (_getDvaApp = (0, _umi.getDvaApp)()) === null || _getDvaApp === void 0 ? void 0 : _getDvaApp.unmodel(namespace);
171
+ if (!((_getDvaApp2 = (0, _umi.getDvaApp)()) === null || _getDvaApp2 === void 0 ? void 0 : _getDvaApp2._store.getState()[namespace])) {
172
+ var _getDvaApp3;
173
+ (_getDvaApp3 = (0, _umi.getDvaApp)()) === null || _getDvaApp3 === void 0 ? void 0 : _getDvaApp3.model((0, _model.default)(namespace, (0, _objectSpread2.default)((0, _objectSpread2.default)({
174
+ isFlow: isTreeGrid || !!props.isFlow
175
+ }, overModel), {}, {
176
+ dataSetKey: props.dataSetKey,
177
+ moduleCode: moduleCode,
178
+ behaviorKey: isTreeGrid ? 'readTree' : 'readGrid',
179
+ afterQuery: afterQuery
180
+ })));
181
+ }
182
+ return (0, _Component.build)(ForwardLdGrid, namespace, {
183
+ suppressInit: suppressInit,
184
+ afterInit: props.afterInit
185
+ });
186
+ }, [namespace]);
187
+ return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
188
+ isTreeGrid: isTreeGrid,
189
+ namespace: namespace
190
+ }, props));
191
+ };
192
+ var Index = (0, _ldBuilder.default)(LdIndex);
193
+ Index.propTypes = {
194
+ ldId: _propTypes.default.string.isRequired,
195
+ // 唯一key
196
+ dataSetKey: _propTypes.default.string.isRequired,
197
+ // 数据集key
198
+ readOnly: _propTypes.default.bool,
199
+ // 是否只读
200
+ columnsRewrite: _propTypes.default.arrayOf(
201
+ //
202
+ _propTypes.default.shape({
203
+ field: _propTypes.default.string.isRequired
204
+ })),
205
+ batchOperations: _propTypes.default.array,
206
+ // 批量操作元素
207
+ formatDataSource: _propTypes.default.func,
208
+ // 格式化数据源
209
+ resultSet: _propTypes.default.object,
210
+ actionsColumn: _propTypes.default.object,
211
+ // 行操作
212
+ suppressInit: _propTypes.default.bool,
213
+ // 抑制初始化
214
+ afterInit: _propTypes.default.func // 初始化后
215
+ };
216
+
217
+ Index.defaultProps = {
218
+ columnsRewrite: [],
219
+ columnsReset: null,
220
+ batchOperations: [],
221
+ formatDataSource: function formatDataSource(_list, _detail) {
222
+ return _list.map(function (indocno) {
223
+ return _detail[indocno];
224
+ });
225
+ },
226
+ resultSet: {},
227
+ suppressInit: false,
228
+ isFlow: false,
229
+ overModel: {}
230
+ };
231
+ var _default = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
232
+ return /*#__PURE__*/_react.default.createElement(Index, (0, _extends2.default)({
233
+ wrapperRef: ref
234
+ }, props));
235
+ });
236
+ exports.default = _default;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = _default;
8
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
+ var _modelHelper = require("@luck-design-biz/base/utils/modelHelper");
11
+ var _utils = require("../../utils");
12
+ var _excluded = ["readAll", "moduleCode", "dataSetKey", "behaviorKey", "afterQuery"];
13
+ function _default(namespace) {
14
+ var modelProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
15
+ var _readAll = modelProps.readAll,
16
+ moduleCode = modelProps.moduleCode,
17
+ dataSetKey = modelProps.dataSetKey,
18
+ behaviorKey = modelProps.behaviorKey,
19
+ afterQuery = modelProps.afterQuery,
20
+ _modelProps = (0, _objectWithoutProperties2.default)(modelProps, _excluded);
21
+ return (0, _modelHelper.createMainModel)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, _modelProps), {}, {
22
+ namespace: namespace,
23
+ readAll: function readAll() {
24
+ var get = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
25
+ var post = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
26
+ return new Promise(function (resolve) {
27
+ (_readAll || _utils.behaviorCall)((0, _objectSpread2.default)({
28
+ moduleCode: moduleCode,
29
+ datasetCode: dataSetKey,
30
+ behaviorKey: behaviorKey
31
+ }, get), {
32
+ _AutoFilter: post
33
+ }).then(function (res) {
34
+ afterQuery && afterQuery(res);
35
+ resolve(res);
36
+ });
37
+ });
38
+ }
39
+ }));
40
+ }