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