@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.
Files changed (54) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +49 -0
  3. package/README.zh-CN.md +51 -0
  4. package/es/components/Builder/index.js +133 -0
  5. package/es/components/LdAutoForm/index.js +136 -0
  6. package/es/components/LdCard/index.js +198 -0
  7. package/es/components/LdCard/model.js +34 -0
  8. package/es/components/LdCom/index.js +24 -0
  9. package/es/components/LdFormList/index.js +293 -0
  10. package/es/components/LdFormList/model.js +24 -0
  11. package/es/components/LdGrid/index.js +214 -0
  12. package/es/components/LdGrid/model.js +36 -0
  13. package/es/components/LdGridForm/index.js +172 -0
  14. package/es/components/LdGridForm/index.less +7 -0
  15. package/es/components/LdInfoPanel/index.js +114 -0
  16. package/es/components/LdPop/index.js +31 -0
  17. package/es/components/LdTree/index.js +244 -0
  18. package/es/components/LdTree/index.less +36 -0
  19. package/es/helper/FromItems.js +267 -0
  20. package/es/helper/action.js +129 -0
  21. package/es/helper/form.js +100 -0
  22. package/es/helper/ldBuilder.js +47 -0
  23. package/es/helper/ldComBuild.js +38 -0
  24. package/es/index.js +9 -0
  25. package/es/services.js +46 -0
  26. package/es/utils/form.js +214 -0
  27. package/es/utils/grid.js +194 -0
  28. package/es/utils/index.js +2 -0
  29. package/lib/components/Builder/index.js +142 -0
  30. package/lib/components/LdAutoForm/index.js +145 -0
  31. package/lib/components/LdCard/index.js +207 -0
  32. package/lib/components/LdCard/model.js +41 -0
  33. package/lib/components/LdCom/index.js +35 -0
  34. package/lib/components/LdFormList/index.js +301 -0
  35. package/lib/components/LdFormList/model.js +30 -0
  36. package/lib/components/LdGrid/index.js +223 -0
  37. package/lib/components/LdGrid/model.js +43 -0
  38. package/lib/components/LdGridForm/index.js +181 -0
  39. package/lib/components/LdGridForm/index.less +7 -0
  40. package/lib/components/LdInfoPanel/index.js +123 -0
  41. package/lib/components/LdPop/index.js +40 -0
  42. package/lib/components/LdTree/index.js +253 -0
  43. package/lib/components/LdTree/index.less +36 -0
  44. package/lib/helper/FromItems.js +287 -0
  45. package/lib/helper/action.js +138 -0
  46. package/lib/helper/form.js +111 -0
  47. package/lib/helper/ldBuilder.js +56 -0
  48. package/lib/helper/ldComBuild.js +49 -0
  49. package/lib/index.js +84 -0
  50. package/lib/services.js +54 -0
  51. package/lib/utils/form.js +225 -0
  52. package/lib/utils/grid.js +203 -0
  53. package/lib/utils/index.js +27 -0
  54. package/package.json +92 -0
@@ -0,0 +1,181 @@
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 _objectSpread4 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
12
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
+ var _react = _interopRequireWildcard(require("react"));
14
+ var _ahooks = require("ahooks");
15
+ var _lodash = require("lodash");
16
+ var _classnames = _interopRequireDefault(require("classnames"));
17
+ var _ldBuilder = _interopRequireDefault(require("../../helper/ldBuilder"));
18
+ var _FormList = require("@luck-design-biz/base/FormList");
19
+ var _utils = require("../../utils");
20
+ var _form = require("../../helper/form");
21
+ var _Builder = require("../Builder");
22
+ var _services = require("../../services");
23
+ var _index = _interopRequireDefault(require("./index.less"));
24
+ var _excluded = ["columns", "resources", "actions", "doAction", "ldId", "dataSetKey", "columnsRewrite", "onQuery", "onAdd", "onUpdate", "onDelete", "mainFormLdId", "mainDataSetKey", "onValueChange", "type", "afterOperate", "moduleCode", "defaultDataSourceFormat", "ticketData", "className"];
25
+ var buildLdGridForm = function buildLdGridForm(_ref) {
26
+ var _ref$columns = _ref.columns,
27
+ columns = _ref$columns === void 0 ? [] : _ref$columns,
28
+ _ref$resources = _ref.resources,
29
+ resources = _ref$resources === void 0 ? [] : _ref$resources,
30
+ _ref$actions = _ref.actions,
31
+ actions = _ref$actions === void 0 ? {} : _ref$actions,
32
+ _ref$doAction = _ref.doAction,
33
+ doAction = _ref$doAction === void 0 ? function () {} : _ref$doAction,
34
+ ldId = _ref.ldId,
35
+ dataSetKey = _ref.dataSetKey,
36
+ _ref$columnsRewrite = _ref.columnsRewrite,
37
+ columnsRewrite = _ref$columnsRewrite === void 0 ? [] : _ref$columnsRewrite,
38
+ _ref$onQuery = _ref.onQuery,
39
+ onQuery = _ref$onQuery === void 0 ? {} : _ref$onQuery,
40
+ _ref$onAdd = _ref.onAdd,
41
+ onAdd = _ref$onAdd === void 0 ? {} : _ref$onAdd,
42
+ _ref$onUpdate = _ref.onUpdate,
43
+ onUpdate = _ref$onUpdate === void 0 ? {} : _ref$onUpdate,
44
+ _ref$onDelete = _ref.onDelete,
45
+ onDelete = _ref$onDelete === void 0 ? {} : _ref$onDelete,
46
+ mainFormLdId = _ref.mainFormLdId,
47
+ mainDataSetKey = _ref.mainDataSetKey,
48
+ _ref$onValueChange = _ref.onValueChange,
49
+ onValueChange = _ref$onValueChange === void 0 ? function () {} : _ref$onValueChange,
50
+ _ref$type = _ref.type,
51
+ type = _ref$type === void 0 ? 'grid' : _ref$type,
52
+ _afterOperate = _ref.afterOperate,
53
+ moduleCode = _ref.moduleCode,
54
+ _ref$defaultDataSourc = _ref.defaultDataSourceFormat,
55
+ defaultDataSourceFormat = _ref$defaultDataSourc === void 0 ? function () {
56
+ return {};
57
+ } : _ref$defaultDataSourc,
58
+ _ref$ticketData = _ref.ticketData,
59
+ ticketData = _ref$ticketData === void 0 ? {} : _ref$ticketData,
60
+ className = _ref.className,
61
+ props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
62
+ var _ref2 = (0, _react.useContext)(_Builder.LuckDaContext) || {},
63
+ setFieldProps = _ref2.setFieldProps;
64
+ var defaultValues = (0, _react.useRef)();
65
+ var isMain = ldId === mainFormLdId;
66
+ var gridColumns = columns.map(function (col) {
67
+ if ((col.comName || _form.defaultComName[col.property]) === 'radio') return (0, _objectSpread4.default)((0, _objectSpread4.default)({}, col), {}, {
68
+ comName: 'select'
69
+ });
70
+ return col;
71
+ });
72
+ var _columns = (0, _ahooks.useCreation)(function () {
73
+ var _defaultValues = {};
74
+ var _nodes = (0, _lodash.transform)(gridColumns, function (result, col) {
75
+ if (col.isShowInForm) {
76
+ var _objectSpread2;
77
+ var customColumn = columnsRewrite.find(function (column) {
78
+ return column.field === col.field;
79
+ }) || {};
80
+ if (col.isReadOnly) customColumn = (0, _objectSpread4.default)((0, _objectSpread4.default)({}, customColumn), {}, {
81
+ editable: false,
82
+ mode: 'grid'
83
+ });
84
+ _defaultValues = (0, _objectSpread4.default)((0, _objectSpread4.default)({}, _defaultValues), {}, (_objectSpread2 = {}, (0, _defineProperty2.default)(_objectSpread2, col.field, col['optDefaultValue']), (0, _defineProperty2.default)(_objectSpread2, "".concat(col.field, "_virtual"), col['optDefaultValueCvt']), _objectSpread2));
85
+ result.push((0, _utils.getFormColumn)(type, col, customColumn));
86
+ }
87
+ }, []);
88
+ defaultValues.current = _defaultValues;
89
+ setFieldProps((0, _defineProperty2.default)({}, ldId, _nodes.map(function (col) {
90
+ var node = col.renderBasicFormItem();
91
+ var renderBasicFormItem = node === null || node === void 0 ? void 0 : node.props;
92
+ return (0, _objectSpread4.default)((0, _objectSpread4.default)({}, col), {}, {
93
+ renderBasicFormItem: (0, _objectSpread4.default)({
94
+ component: node.type.comName || node.type.displayName
95
+ }, renderBasicFormItem)
96
+ });
97
+ })));
98
+ return _nodes;
99
+ }, [columns, columnsRewrite, isMain]);
100
+ var defaultDataSource = (0, _objectSpread4.default)((0, _objectSpread4.default)({}, (0, _utils.formItemDataFormat)(columns, defaultValues.current)), defaultDataSourceFormat(defaultValues.current));
101
+ var formConfig = {
102
+ formId: ldId,
103
+ columns: _columns,
104
+ isMain: isMain,
105
+ defaultDataSource: defaultDataSource,
106
+ newItemDefaultValue: defaultDataSource
107
+ };
108
+ var onOperate = (0, _ahooks.useMemoizedFn)(function () {
109
+ var _onOperate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
110
+ var behaviorKey = arguments.length > 1 ? arguments[1] : undefined;
111
+ return (0, _objectSpread4.default)((0, _objectSpread4.default)({
112
+ api: function api(get, post, formData) {
113
+ var _formData$mainFormLdI;
114
+ return (0, _services.readBehaviorCall)((0, _objectSpread4.default)((0, _objectSpread4.default)({}, get), {}, (0, _defineProperty2.default)({}, isMain ? 'indocno' : 'relationId', ((_formData$mainFormLdI = formData[mainFormLdId]) === null || _formData$mainFormLdI === void 0 ? void 0 : _formData$mainFormLdI.indocno) || ticketData.indocno)), post, formData);
115
+ },
116
+ get: function get() {
117
+ return {
118
+ moduleCode: moduleCode,
119
+ datasetCode: dataSetKey,
120
+ behaviorKey: behaviorKey
121
+ };
122
+ }
123
+ }, _onOperate), {}, {
124
+ post: function post(data) {
125
+ var _submitData = data.map(function (item) {
126
+ return (0, _utils.dataFormat)(gridColumns, item);
127
+ });
128
+ if (_onOperate === null || _onOperate === void 0 ? void 0 : _onOperate.post) return _onOperate.post(_submitData); // 以预设为主
129
+ return (0, _defineProperty2.default)({}, dataSetKey, (0, _defineProperty2.default)({}, "".concat(behaviorKey, "List"), _submitData));
130
+ }
131
+ });
132
+ });
133
+ return /*#__PURE__*/_react.default.createElement(_FormList.GridForm, (0, _extends2.default)({
134
+ noAddon: true,
135
+ operates: resources,
136
+ orderByAdd: "asc",
137
+ rowSelection: true,
138
+ type: type
139
+ }, props, {
140
+ onQuery: (0, _objectSpread4.default)((0, _objectSpread4.default)({
141
+ api: _services.readBehaviorCall,
142
+ get: function get(formData) {
143
+ var _formData$mainFormLdI2, _params2;
144
+ var _params = (_params2 = {}, (0, _defineProperty2.default)(_params2, isMain ? 'indocno' : 'relationId', ((_formData$mainFormLdI2 = formData[mainFormLdId]) === null || _formData$mainFormLdI2 === void 0 ? void 0 : _formData$mainFormLdI2.indocno) || ticketData.indocno), (0, _defineProperty2.default)(_params2, "moduleCode", moduleCode), (0, _defineProperty2.default)(_params2, "datasetCode", dataSetKey), (0, _defineProperty2.default)(_params2, "behaviorKey", 'readGrid'), _params2);
145
+ if (!isMain) _params.relationDs = mainDataSetKey;
146
+ return _params;
147
+ }
148
+ }, onQuery), {}, {
149
+ format: function format(data) {
150
+ var formItemData = data.map(function (item) {
151
+ return (0, _utils.formItemDataFormat)(gridColumns, item);
152
+ });
153
+ if (onQuery === null || onQuery === void 0 ? void 0 : onQuery.format) return onQuery.format(data, formItemData); // 以预设为主
154
+ return formItemData;
155
+ }
156
+ }),
157
+ onAdd: onOperate(onAdd, 'add'),
158
+ onUpdate: onOperate(onUpdate, 'update'),
159
+ onDelete: (0, _objectSpread4.default)((0, _objectSpread4.default)({}, onOperate(onDelete, 'delete')), {}, {
160
+ post: function post(data) {
161
+ var _submitData = data.map(function (item) {
162
+ return {
163
+ indocno: item.indocno
164
+ };
165
+ });
166
+ if (onDelete === null || onDelete === void 0 ? void 0 : onDelete.post) return onDelete.post(_submitData); // 以预设为主
167
+ return (0, _defineProperty2.default)({}, dataSetKey, {
168
+ deleteList: _submitData
169
+ });
170
+ }
171
+ })
172
+ }, formConfig, {
173
+ afterOperate: function afterOperate(dataList, operate) {
174
+ onValueChange((0, _defineProperty2.default)({}, ldId, (0, _defineProperty2.default)({}, operate, dataList)));
175
+ _afterOperate && _afterOperate(dataList, operate);
176
+ },
177
+ className: (0, _classnames.default)(_index.default.ldGridForm, (0, _defineProperty2.default)({}, className, !!className))
178
+ }));
179
+ };
180
+ var _default = (0, _ldBuilder.default)(buildLdGridForm);
181
+ exports.default = _default;
@@ -0,0 +1,7 @@
1
+ .ldGridForm {
2
+ :global {
3
+ .ag-layout-auto-height {
4
+ height: 100% !important;
5
+ }
6
+ }
7
+ }
@@ -0,0 +1,123 @@
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 _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
12
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
+ var _react = _interopRequireWildcard(require("react"));
14
+ var _propTypes = _interopRequireDefault(require("prop-types"));
15
+ var _ahooks = require("ahooks");
16
+ var _luckDesign = require("luck-design");
17
+ var _services = require("../../services");
18
+ var _lodash = require("lodash");
19
+ var _ldBuilder = _interopRequireDefault(require("../../helper/ldBuilder"));
20
+ var _excluded = ["columns", "resources", "actions", "doAction", "wrapperRef", "moduleCode", "dataSetKey", "defaultParmas", "suppressInit", "afterInit", "customColumns", "service"];
21
+ var formatInfoPanelData = function formatInfoPanelData(columns, data) {
22
+ return (0, _lodash.transform)(columns, function (result, col) {
23
+ result[col.dataIndex] = col.render && col.render(data[col.dataIndex], data) || data["".concat(col.dataIndex, "_virtual")] || data[col.dataIndex];
24
+ }, {});
25
+ };
26
+ var LdInfoPanel = function LdInfoPanel(_ref) {
27
+ var columns = _ref.columns,
28
+ resources = _ref.resources,
29
+ actions = _ref.actions,
30
+ doAction = _ref.doAction,
31
+ wrapperRef = _ref.wrapperRef,
32
+ moduleCode = _ref.moduleCode,
33
+ dataSetKey = _ref.dataSetKey,
34
+ _defaultParmas = _ref.defaultParmas,
35
+ suppressInit = _ref.suppressInit,
36
+ afterInit = _ref.afterInit,
37
+ customColumns = _ref.customColumns,
38
+ service = _ref.service,
39
+ props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
40
+ var infoPanelRef = (0, _react.useRef)(null);
41
+ var _useState = (0, _react.useState)({}),
42
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
43
+ dataSource = _useState2[0],
44
+ setDataSource = _useState2[1];
45
+ var defaultParams = (0, _ahooks.useCreation)(function () {
46
+ return [(0, _objectSpread2.default)({
47
+ moduleCode: moduleCode,
48
+ datasetCode: dataSetKey,
49
+ behaviorKey: 'readForm'
50
+ }, _defaultParmas)];
51
+ }, []);
52
+ (0, _react.useImperativeHandle)(wrapperRef, function () {
53
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, infoPanelRef.current), {}, {
54
+ onLdQuery: function onLdQuery() {
55
+ var _params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
56
+ run((0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, params[0]), defaultParams[0]), _params));
57
+ }
58
+ });
59
+ });
60
+ var _columns = (0, _ahooks.useCreation)(function () {
61
+ return customColumns ? customColumns.map(function (col) {
62
+ var xCol = columns.find(function (column) {
63
+ return column.field === col.dataIndex;
64
+ }) || {};
65
+ return (0, _objectSpread2.default)({
66
+ title: xCol.fieldName
67
+ }, col);
68
+ }) : customColumns.map(function (item) {
69
+ return {
70
+ title: item.fieldName,
71
+ dataIndex: item.field
72
+ };
73
+ });
74
+ }, [columns]);
75
+ var _useRequest = (0, _ahooks.useRequest)(service || _services.readBehaviorCall, {
76
+ // 获取树数据源
77
+ defaultParams: defaultParams,
78
+ manual: suppressInit,
79
+ onSuccess: function onSuccess(data) {
80
+ var code = data.code,
81
+ list = data.list,
82
+ detail = data.detail;
83
+ if (code === 1 && list[0]) {
84
+ var _data = detail[list[0]];
85
+ setDataSource(_data);
86
+ afterInit && afterInit(_data);
87
+ }
88
+ }
89
+ }),
90
+ loading = _useRequest.loading,
91
+ run = _useRequest.run,
92
+ params = _useRequest.params;
93
+ return /*#__PURE__*/_react.default.createElement(_luckDesign.InfoPanel, (0, _extends2.default)({
94
+ dataSource: formatInfoPanelData(_columns, dataSource),
95
+ columns: _columns,
96
+ mode: 'grid',
97
+ loading: loading
98
+ }, props, {
99
+ ref: infoPanelRef
100
+ }));
101
+ };
102
+ var Index = (0, _ldBuilder.default)(LdInfoPanel);
103
+ Index.propTypes = {
104
+ dataSetKey: _propTypes.default.string.isRequired,
105
+ // 数据集key
106
+ suppressInit: _propTypes.default.bool,
107
+ // 抑制初始化
108
+ afterInit: _propTypes.default.func,
109
+ // 初始化后
110
+ customColumns: _propTypes.default.array,
111
+ defaultParmas: _propTypes.default.object
112
+ };
113
+ Index.defaultProps = {
114
+ suppressInit: false,
115
+ customColumns: null,
116
+ defaultParmas: {}
117
+ };
118
+ var _default = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
119
+ return /*#__PURE__*/_react.default.createElement(Index, (0, _extends2.default)({
120
+ wrapperRef: ref
121
+ }, props));
122
+ });
123
+ exports.default = _default;
@@ -0,0 +1,40 @@
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 = exports.LuckDaPopContext = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
+ var _react = _interopRequireWildcard(require("react"));
12
+ var _lodash = require("lodash");
13
+ var _propTypes = _interopRequireDefault(require("prop-types"));
14
+ var _base = require("@luck-design-biz/base");
15
+ var _excluded = ["component", "size"];
16
+ var LuckDaPopContext = /*#__PURE__*/(0, _react.createContext)();
17
+ exports.LuckDaPopContext = LuckDaPopContext;
18
+ var LdPop = function LdPop() {
19
+ var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
20
+ ldId = _ref.ldId,
21
+ _ref$params = _ref.params,
22
+ params = _ref$params === void 0 ? {} : _ref$params;
23
+ var component = params.component,
24
+ size = params.size,
25
+ _params = (0, _objectWithoutProperties2.default)(params, _excluded);
26
+ return /*#__PURE__*/_react.default.createElement(_base.FormWindow, (0, _extends2.default)({
27
+ showBtn: false,
28
+ size: size,
29
+ id: ldId
30
+ }, _params), /*#__PURE__*/_react.default.createElement(LuckDaPopContext.Provider, {
31
+ value: {
32
+ affixLayout: (0, _lodash.includes)(['large', 'full'], size) ? 'top' : 'bottom'
33
+ } // 用于动态显示formList布局
34
+ }, component));
35
+ };
36
+ LdPop.propTypes = {
37
+ ldId: _propTypes.default.string.isRequired
38
+ };
39
+ var _default = LdPop;
40
+ exports.default = _default;
@@ -0,0 +1,253 @@
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 _lodash = require("lodash");
16
+ var _ahooks = require("ahooks");
17
+ var _propTypes = _interopRequireDefault(require("prop-types"));
18
+ var _classnames = _interopRequireDefault(require("classnames"));
19
+ var _antd = require("antd");
20
+ var _luckDesign = require("luck-design");
21
+ var _utils = require("@luck-design-biz/base/utils");
22
+ var _base = require("@luck-design-biz/base");
23
+ var _ldBuilder = _interopRequireDefault(require("../../helper/ldBuilder"));
24
+ var _services = require("../../services");
25
+ var _index = _interopRequireDefault(require("./index.less"));
26
+ var _excluded = ["columns", "resources", "actions", "doAction", "wrapperRef", "ldId", "dataSetKey", "defaultParmas", "moduleCode", "readOnly", "title", "rowKey", "treeNodeTitle", "unselectableNodes", "rightMenus", "defaultExpandDeep", "draggable", "onDrop", "className", "treeClassName", "rootAdd", "suppressInit", "afterInit", "isTree", "service"],
27
+ _excluded2 = ["onClick"];
28
+ var LdTree = function LdTree(_ref) {
29
+ var columns = _ref.columns,
30
+ resources = _ref.resources,
31
+ actions = _ref.actions,
32
+ doAction = _ref.doAction,
33
+ wrapperRef = _ref.wrapperRef,
34
+ ldId = _ref.ldId,
35
+ dataSetKey = _ref.dataSetKey,
36
+ _defaultParmas = _ref.defaultParmas,
37
+ moduleCode = _ref.moduleCode,
38
+ readOnly = _ref.readOnly,
39
+ title = _ref.title,
40
+ rowKey = _ref.rowKey,
41
+ treeNodeTitle = _ref.treeNodeTitle,
42
+ unselectableNodes = _ref.unselectableNodes,
43
+ rightMenus = _ref.rightMenus,
44
+ defaultExpandDeep = _ref.defaultExpandDeep,
45
+ draggable = _ref.draggable,
46
+ onDrop = _ref.onDrop,
47
+ className = _ref.className,
48
+ treeClassName = _ref.treeClassName,
49
+ rootAdd = _ref.rootAdd,
50
+ suppressInit = _ref.suppressInit,
51
+ afterInit = _ref.afterInit,
52
+ isTree = _ref.isTree,
53
+ service = _ref.service,
54
+ props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
55
+ if (!(0, _lodash.includes)(isTree, dataSetKey)) return (0, _utils.formatMessage)({
56
+ id: 'luckda.ldTree.notTres',
57
+ label: '此数据集非树形数据集,请选择树形数据集'
58
+ });
59
+ var _useState = (0, _react.useState)(null),
60
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
61
+ dataSource = _useState2[0],
62
+ setDataSource = _useState2[1];
63
+ var _useState3 = (0, _react.useState)({}),
64
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
65
+ defaultExpandedProps = _useState4[0],
66
+ setDefaultExpandedProps = _useState4[1];
67
+ var treeRef = (0, _react.useRef)(null);
68
+ var defaultParams = [(0, _objectSpread2.default)({
69
+ moduleCode: moduleCode,
70
+ datasetCode: dataSetKey,
71
+ behaviorKey: 'readTree'
72
+ }, _defaultParmas)];
73
+ var _useRequest = (0, _ahooks.useRequest)(service || _services.readBehaviorCall, {
74
+ // 获取树数据源
75
+ defaultParams: defaultParams,
76
+ manual: suppressInit,
77
+ onSuccess: function onSuccess(data) {
78
+ var code = data.code,
79
+ list = data.list,
80
+ detail = data.detail;
81
+ if (code === 1) {
82
+ var _data = list.map(function (i) {
83
+ return detail[i];
84
+ });
85
+ // 判断是否默认展开
86
+ if (defaultExpandDeep === 'all') setDefaultExpandedProps({
87
+ defaultExpandAll: true
88
+ });else if ((0, _lodash.isNumber)(defaultExpandDeep) && defaultExpandDeep > 0) {
89
+ var defaultExpanded = (0, _lodash.transform)(_data, function (result, n) {
90
+ if (n.sidcc.substring(1, n.sidcc.length - 1).split('/').length < defaultExpandDeep + 1) {
91
+ result.push("".concat(n[rowKey]));
92
+ }
93
+ }, []);
94
+ setDefaultExpandedProps({
95
+ defaultExpandedKeys: defaultExpanded
96
+ });
97
+ }
98
+ var treeData = (0, _utils.dataToTree)(_data);
99
+ setDataSource(treeData);
100
+ afterInit && afterInit(treeData);
101
+ }
102
+ }
103
+ }),
104
+ loading = _useRequest.loading,
105
+ run = _useRequest.run,
106
+ params = _useRequest.params;
107
+ (0, _react.useImperativeHandle)(wrapperRef, function () {
108
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, treeRef.current), {}, {
109
+ onLdQuery: function onLdQuery() {
110
+ var _params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
111
+ run((0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, params[0]), _params), defaultParams[0]));
112
+ }
113
+ });
114
+ });
115
+ var handleMenuClick = function handleMenuClick(menu, data) {
116
+ var onClick = menu.onClick,
117
+ other = (0, _objectWithoutProperties2.default)(menu, _excluded2);
118
+ onClick && onClick(other, data);
119
+ };
120
+ var renderRightMenus = function renderRightMenus(menus, data) {
121
+ return menus.map(function (menu) {
122
+ return /*#__PURE__*/_react.default.createElement("a", {
123
+ onClick: function onClick() {
124
+ return handleMenuClick(menu, data);
125
+ },
126
+ className: _index.default.rightMenu,
127
+ key: menu.key
128
+ }, menu.name || '');
129
+ });
130
+ };
131
+ var renderRight = function renderRight(data) {
132
+ var rightMenusResult = rightMenus(data);
133
+ var _rightMenusResult = (0, _lodash.cloneDeep)(rightMenusResult);
134
+ // 去除没有权限或者该模块下没有的行为
135
+ (0, _lodash.remove)(_rightMenusResult, function (n) {
136
+ return n.resource && !(0, _lodash.includes)(data['__infuse_serial__'] || resources, n.resource);
137
+ });
138
+ return _rightMenusResult.length > 0 && /*#__PURE__*/_react.default.createElement(_antd.Popover, {
139
+ overlayClassName: _index.default.classTreeOperates,
140
+ placement: "right",
141
+ title: null,
142
+ content: renderRightMenus(_rightMenusResult, data)
143
+ }, /*#__PURE__*/_react.default.createElement(_antd.Icon, {
144
+ type: "more"
145
+ }));
146
+ };
147
+ var renderTitleNode = function renderTitleNode(data, unSelectable) {
148
+ var nodeTitle = (0, _lodash.isFunction)(treeNodeTitle) ? treeNodeTitle(data) : data[treeNodeTitle];
149
+ return /*#__PURE__*/_react.default.createElement("div", {
150
+ className: _index.default.nodeTitle
151
+ }, /*#__PURE__*/_react.default.createElement("div", {
152
+ title: nodeTitle,
153
+ className: (0, _classnames.default)((0, _defineProperty2.default)({}, _index.default.nodeTitleDisabled, unSelectable))
154
+ }, nodeTitle), !readOnly && renderRight(data));
155
+ };
156
+ var renderTreeNodes = (0, _ahooks.useMemoizedFn)(function (data) {
157
+ return data.map(function (item) {
158
+ // 判断是否可选择
159
+ var unSelectable = (0, _lodash.isFunction)(unselectableNodes) ? unselectableNodes(item) : unselectableNodes.includes(item[rowKey]);
160
+ if (item.children) {
161
+ return /*#__PURE__*/_react.default.createElement(_luckDesign.LuckTree.TreeNode, {
162
+ isLeaf: false,
163
+ title: renderTitleNode(item, unSelectable),
164
+ key: item[rowKey],
165
+ dataRef: item,
166
+ selectable: !unSelectable
167
+ }, renderTreeNodes(item.children));
168
+ }
169
+ return /*#__PURE__*/_react.default.createElement(_luckDesign.LuckTree.TreeNode, {
170
+ title: renderTitleNode(item, unSelectable),
171
+ key: item[rowKey],
172
+ dataRef: item,
173
+ selectable: !unSelectable
174
+ });
175
+ });
176
+ });
177
+ var handleDrop = (0, _ahooks.useMemoizedFn)(function (info) {
178
+ var dragInfo = (0, _utils.dragTreeData)(info, dataSource);
179
+ onDrop && onDrop(info, dragInfo);
180
+ });
181
+ var onAdd = (0, _ahooks.useCreation)(function () {
182
+ return !(readOnly || !rootAdd || rootAdd.resource && !(0, _lodash.includes)(resources, rootAdd.resource)) ? function () {
183
+ return handleMenuClick(rootAdd);
184
+ } : null;
185
+ }, [readOnly, rootAdd, resources]);
186
+ return /*#__PURE__*/_react.default.createElement(_base.TreeBox, {
187
+ suppressTitle: !title,
188
+ title: title,
189
+ loading: loading,
190
+ id: ldId,
191
+ onAdd: onAdd,
192
+ className: className
193
+ }, dataSource && /*#__PURE__*/_react.default.createElement(_luckDesign.LuckTree, (0, _extends2.default)({
194
+ blockNode: true,
195
+ className: (0, _classnames.default)(_index.default.tree, (0, _defineProperty2.default)({}, className, !!treeClassName)),
196
+ draggable: !readOnly && draggable,
197
+ onDrop: handleDrop
198
+ }, defaultExpandedProps, props, {
199
+ ref: treeRef
200
+ }), renderTreeNodes(dataSource)));
201
+ };
202
+ var Index = (0, _ldBuilder.default)(LdTree);
203
+ Index.propTypes = {
204
+ ldId: _propTypes.default.string.isRequired,
205
+ // 唯一key
206
+ dataSetKey: _propTypes.default.string.isRequired,
207
+ // 数据集key
208
+ readOnly: _propTypes.default.bool,
209
+ // 是否只读
210
+ title: _propTypes.default.string,
211
+ // 树的标题
212
+ rowKey: _propTypes.default.string,
213
+ // 数据主键key
214
+ treeNodeTitle: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func]),
215
+ // 树节点名称
216
+ unselectableNodes: _propTypes.default.oneOfType([_propTypes.default.array, _propTypes.default.func]),
217
+ // 不可选择树节点
218
+ rightMenus: _propTypes.default.func,
219
+ // 自定义追加的操作
220
+ defaultExpandDeep: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.oneOf(['all'])]),
221
+ // 默认展开的节点深度
222
+ draggable: _propTypes.default.bool,
223
+ // 是否可拖拽排序
224
+ onDrop: _propTypes.default.func,
225
+ // 拖拽排序的事件,当draggable为true时使用
226
+ actions: _propTypes.default.object,
227
+ // 行为
228
+ suppressInit: _propTypes.default.bool,
229
+ // 抑制初始化
230
+ afterInit: _propTypes.default.func // 初始化后
231
+ };
232
+
233
+ Index.defaultProps = {
234
+ readOnly: false,
235
+ title: false,
236
+ rowKey: 'indocno',
237
+ treeNodeTitle: 'sname',
238
+ defaultExpandDeep: 0,
239
+ draggable: false,
240
+ unselectableNodes: [],
241
+ actions: {},
242
+ rightMenus: function rightMenus() {
243
+ return [];
244
+ },
245
+ suppressInit: false,
246
+ defaultParmas: {}
247
+ };
248
+ var _default = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
249
+ return /*#__PURE__*/_react.default.createElement(Index, (0, _extends2.default)({
250
+ wrapperRef: ref
251
+ }, props));
252
+ });
253
+ exports.default = _default;
@@ -0,0 +1,36 @@
1
+ .tree {
2
+ .nodeTitle {
3
+ display: flex;
4
+ align-items: center;
5
+ width: 100%;
6
+
7
+ div {
8
+ flex: 1;
9
+ overflow-x: hidden;
10
+ white-space: nowrap;
11
+ text-overflow: ellipsis;
12
+ }
13
+ div.nodeTitleDisabled {
14
+ color: var(--luck-text-color-disabled);
15
+ }
16
+ div.nodeTitleDisabled:hover {
17
+ cursor: not-allowed;
18
+ }
19
+ }
20
+
21
+ :global {
22
+ .ant-tree-title {
23
+ width: 100%;
24
+ }
25
+ }
26
+ }
27
+ .classTreeOperates {
28
+ :global(.ant-popover-inner-content) {
29
+ padding: 0;
30
+ }
31
+ .rightMenu {
32
+ display: block;
33
+ padding: 4px 8px;
34
+ color: var(--luck-text-color-);
35
+ }
36
+ }