@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.
- package/es/components/Builder/index.js +133 -0
- package/es/components/LdAutoForm/index.js +128 -0
- package/es/components/LdCard/index.js +197 -0
- package/es/components/LdCard/model.js +32 -0
- package/es/components/LdCom/index.js +24 -0
- package/es/components/LdFormList/index.js +316 -0
- package/es/components/LdFormList/model.js +25 -0
- package/es/components/LdGrid/index.js +228 -0
- package/es/components/LdGrid/model.js +33 -0
- package/es/components/LdGridForm/index.js +172 -0
- package/es/components/LdGridForm/index.less +7 -0
- package/es/components/LdInfoPanel/index.js +116 -0
- package/es/components/LdPop/index.js +31 -0
- package/es/components/LdTree/index.js +246 -0
- package/es/components/LdTree/index.less +36 -0
- package/es/helper/FromItems.js +267 -0
- package/es/helper/action.js +136 -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/action.js +33 -0
- package/es/utils/form.js +214 -0
- package/es/utils/grid.js +194 -0
- package/es/utils/index.js +3 -0
- package/lib/components/Builder/index.js +142 -0
- package/lib/components/LdAutoForm/index.js +137 -0
- package/lib/components/LdCard/index.js +206 -0
- package/lib/components/LdCard/model.js +39 -0
- package/lib/components/LdCom/index.js +35 -0
- package/lib/components/LdFormList/index.js +324 -0
- package/lib/components/LdFormList/model.js +32 -0
- package/lib/components/LdGrid/index.js +237 -0
- package/lib/components/LdGrid/model.js +40 -0
- package/lib/components/LdGridForm/index.js +181 -0
- package/lib/components/LdGridForm/index.less +7 -0
- package/lib/components/LdInfoPanel/index.js +125 -0
- package/lib/components/LdPop/index.js +40 -0
- package/lib/components/LdTree/index.js +255 -0
- package/lib/components/LdTree/index.less +36 -0
- package/lib/helper/FromItems.js +287 -0
- package/lib/helper/action.js +145 -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/action.js +40 -0
- package/lib/utils/form.js +225 -0
- package/lib/utils/grid.js +203 -0
- package/lib/utils/index.js +38 -0
- 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
|
+
}
|