@luck-design-biz/luckda 0.0.5 → 0.0.7

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