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