@pointcloud/pcloud-components 1.0.5 → 1.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/README.md +157 -157
- package/dist/esm/AdvancedFilter/styles/index.less +143 -143
- package/dist/esm/AnimatedScrollList/styles/index.less +22 -22
- package/dist/esm/CRUD/index.d.ts +4 -1
- package/dist/esm/CRUD/index.js +18 -7
- package/dist/esm/CRUD/index.less +156 -156
- package/dist/esm/ColorPicker/index.js +4 -4
- package/dist/esm/ContextMenu/index.less +61 -61
- package/dist/esm/DCascader/index.d.ts +1 -1
- package/dist/esm/DForm/DItem/index.js +15 -3
- package/dist/esm/DForm/DItem/itemType.d.ts +3 -2
- package/dist/esm/DForm/DItem/itemsRender.d.ts +1 -1
- package/dist/esm/DForm/DItem/itemsRender.js +6 -6
- package/dist/esm/DForm/index.js +6 -6
- package/dist/esm/DForm/index.less +50 -50
- package/dist/esm/DInput/index.js +6 -6
- package/dist/esm/DModal/styles/index.less +33 -33
- package/dist/esm/DRangePicker/index.less +30 -30
- package/dist/esm/DSelect/index.d.ts +1 -1
- package/dist/esm/DTable/index.d.ts +5 -1
- package/dist/esm/DTable/index.js +50 -11
- package/dist/esm/DTable/index.less +61 -61
- package/dist/esm/DUpload/helper.js +47 -47
- package/dist/esm/DUpload/index.js +6 -6
- package/dist/esm/DynamicFormItem/index.less +28 -28
- package/dist/esm/IPAddress/index.less +75 -75
- package/dist/esm/InfiniteScrollList/styles/index.less +24 -24
- package/dist/esm/Loading/styles/index.less +37 -37
- package/dist/esm/ModalTable/index.d.ts +3 -0
- package/dist/esm/ModalTable/index.js +95 -0
- package/dist/esm/ModalTable/interface.d.ts +23 -0
- package/dist/esm/ModalTable/interface.js +1 -0
- package/dist/esm/OrgTree/index.less +15 -15
- package/dist/esm/RCropper/index.js +5 -5
- package/dist/esm/RCropper/styles/toolbar.less +25 -25
- package/dist/esm/SignaturePad/style/index.less +47 -47
- package/dist/esm/TypewriterText/index.less +29 -29
- package/dist/esm/index.d.ts +3 -1
- package/dist/esm/index.js +1 -0
- package/dist/umd/pcloud-components.min.js +1 -1
- package/package.json +2 -2
package/dist/esm/CRUD/index.js
CHANGED
|
@@ -9,8 +9,8 @@ var _excluded = ["immediate"],
|
|
|
9
9
|
_excluded2 = ["columns", "extraParams"];
|
|
10
10
|
import React, { useMemo, useState, useContext, useCallback, useRef, forwardRef, useImperativeHandle, useEffect } from 'react';
|
|
11
11
|
import classNames from 'classnames';
|
|
12
|
-
import { Button } from 'antd';
|
|
13
|
-
import { PlusOutlined, EditOutlined, DeleteOutlined, EyeOutlined } from '@ant-design/icons';
|
|
12
|
+
import { Button, Popover } from 'antd';
|
|
13
|
+
import { PlusOutlined, EditOutlined, DeleteOutlined, EyeOutlined, MoreOutlined } from '@ant-design/icons';
|
|
14
14
|
import { ConfigContext } from "../ConfigProvider";
|
|
15
15
|
import { SearchButtons } from "./config";
|
|
16
16
|
import DForm from "../DForm";
|
|
@@ -74,6 +74,7 @@ var forwardCRUD = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
74
74
|
viewButtonText = _props$viewButtonText === void 0 ? '查看' : _props$viewButtonText,
|
|
75
75
|
_props$batchDeleteBut = props.batchDeleteButtonText,
|
|
76
76
|
batchDeleteButtonText = _props$batchDeleteBut === void 0 ? '批量删除' : _props$batchDeleteBut,
|
|
77
|
+
moreActionColumn = props.moreActionColumn,
|
|
77
78
|
actionBar = props.actionBar,
|
|
78
79
|
onRefresh = props.onRefresh,
|
|
79
80
|
crudApi = props.crudApi,
|
|
@@ -193,7 +194,7 @@ var forwardCRUD = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
193
194
|
});
|
|
194
195
|
}, [deleteRefreshStrategy.keepSearchValues, deleteRefreshStrategy.keepPage]);
|
|
195
196
|
var mergedFormProps = useMemo(function () {
|
|
196
|
-
var _restSearchFormProps
|
|
197
|
+
var _restSearchFormProps$, _restSearchFormProps$2;
|
|
197
198
|
if (!searchFormProps) return {};
|
|
198
199
|
var immediate = searchFormProps.immediate,
|
|
199
200
|
restSearchFormProps = _objectWithoutProperties(searchFormProps, _excluded);
|
|
@@ -202,9 +203,10 @@ var forwardCRUD = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
202
203
|
});
|
|
203
204
|
var searchBtns = immediate || isExistFormButton ? [] : SearchButtons;
|
|
204
205
|
return _objectSpread(_objectSpread({}, restSearchFormProps), {}, {
|
|
206
|
+
layout: (_restSearchFormProps$2 = restSearchFormProps.layout) !== null && _restSearchFormProps$2 !== void 0 ? _restSearchFormProps$2 : 'inline',
|
|
205
207
|
items: [].concat(_toConsumableArray((searchFormProps === null || searchFormProps === void 0 ? void 0 : searchFormProps['items']) || []), _toConsumableArray(searchBtns))
|
|
206
208
|
});
|
|
207
|
-
}, [searchFormProps === null || searchFormProps === void 0 ? void 0 : searchFormProps.immediate, searchFormProps === null || searchFormProps === void 0 ? void 0 : searchFormProps.items, searchFormProps === null || searchFormProps === void 0 ? void 0 : searchFormProps.initialValues]);
|
|
209
|
+
}, [searchFormProps === null || searchFormProps === void 0 ? void 0 : searchFormProps.immediate, searchFormProps === null || searchFormProps === void 0 ? void 0 : searchFormProps.items, searchFormProps === null || searchFormProps === void 0 ? void 0 : searchFormProps.initialValues, searchFormProps === null || searchFormProps === void 0 ? void 0 : searchFormProps.layout]);
|
|
208
210
|
var isNeedRefreshToPage = useCallback(function () {
|
|
209
211
|
var _tableRef$current, _tableRef$current$get;
|
|
210
212
|
var deletedCount = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
|
|
@@ -503,7 +505,6 @@ var forwardCRUD = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
503
505
|
};
|
|
504
506
|
}(), [detailApi]);
|
|
505
507
|
var actionColumn = useMemo(function () {
|
|
506
|
-
// 捕获当前的API方法引用,避免闭包问题
|
|
507
508
|
var currentHandleEdit = handleEdit;
|
|
508
509
|
var currentHandleDelete = handleDelete;
|
|
509
510
|
var currentHandleView = handleView;
|
|
@@ -538,10 +539,20 @@ var forwardCRUD = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
538
539
|
size: "small"
|
|
539
540
|
}, viewButtonProps), {}, {
|
|
540
541
|
children: viewButtonText
|
|
541
|
-
}))
|
|
542
|
+
})), moreActionColumn && /*#__PURE__*/_jsx(Popover, {
|
|
543
|
+
trigger: "click",
|
|
544
|
+
placement: "bottomRight",
|
|
545
|
+
content: moreActionColumn(_text, record),
|
|
546
|
+
children: /*#__PURE__*/_jsx(Button, {
|
|
547
|
+
type: "link",
|
|
548
|
+
icon: /*#__PURE__*/_jsx(MoreOutlined, {}),
|
|
549
|
+
size: "small",
|
|
550
|
+
children: "\u66F4\u591A"
|
|
551
|
+
})
|
|
552
|
+
})]
|
|
542
553
|
});
|
|
543
554
|
};
|
|
544
|
-
}, [handleEdit, handleDelete, handleView, showEdit, showDelete, showView, editButtonText, deleteButtonText, viewButtonText]);
|
|
555
|
+
}, [handleEdit, handleDelete, handleView, showEdit, showDelete, showView, editButtonText, deleteButtonText, viewButtonText, moreActionColumn]);
|
|
545
556
|
var tablePropsWithSearch = useMemo(function () {
|
|
546
557
|
var _ref6 = tableProps || {},
|
|
547
558
|
_ref6$columns = _ref6.columns,
|
package/dist/esm/CRUD/index.less
CHANGED
|
@@ -1,156 +1,156 @@
|
|
|
1
|
-
@import '../commonStyle/index.less';
|
|
2
|
-
|
|
3
|
-
.@{prefix}-crud {
|
|
4
|
-
height: 100%;
|
|
5
|
-
display: flex;
|
|
6
|
-
flex-direction: column;
|
|
7
|
-
overflow: hidden;
|
|
8
|
-
|
|
9
|
-
&.fullscreen {
|
|
10
|
-
position: fixed;
|
|
11
|
-
inset: 0;
|
|
12
|
-
z-index: 10000;
|
|
13
|
-
padding: 10px;
|
|
14
|
-
background-color: #fff;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
&-action-tool-bar {
|
|
18
|
-
display: flex;
|
|
19
|
-
justify-content: space-between;
|
|
20
|
-
align-items: center;
|
|
21
|
-
margin-bottom: 10px;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
&-action-bar,
|
|
25
|
-
&-tool-bar {
|
|
26
|
-
display: flex;
|
|
27
|
-
justify-content: flex-start;
|
|
28
|
-
align-items: center;
|
|
29
|
-
gap: 8px;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
.tool-icon {
|
|
33
|
-
cursor: pointer;
|
|
34
|
-
padding: 5px;
|
|
35
|
-
border: 1px solid #e3e3e3;
|
|
36
|
-
border-radius: 50%;
|
|
37
|
-
font-size: 15px;
|
|
38
|
-
|
|
39
|
-
&:hover {
|
|
40
|
-
border-color: #2e4dd9;
|
|
41
|
-
color: #2e4dd9;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
&.rotating {
|
|
45
|
-
animation: rotating 0.5s linear;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
// column setting popup
|
|
50
|
-
.column-setting-popup {
|
|
51
|
-
.ant-popover-title {
|
|
52
|
-
padding-right: 10px;
|
|
53
|
-
padding-left: 10px;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
.ant-popover-inner-content {
|
|
57
|
-
width: 100%;
|
|
58
|
-
padding: 8px 0 4px;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
.column-setting-title {
|
|
62
|
-
display: flex;
|
|
63
|
-
justify-content: space-between;
|
|
64
|
-
align-items: center;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
.column-setting-list {
|
|
68
|
-
display: flex;
|
|
69
|
-
flex-direction: column;
|
|
70
|
-
max-height: 300px;
|
|
71
|
-
overflow-y: auto;
|
|
72
|
-
margin-bottom: 0;
|
|
73
|
-
padding-inline-start: 0;
|
|
74
|
-
list-style: none;
|
|
75
|
-
padding: 5px 0;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
.column-setting-list::-webkit-scrollbar {
|
|
79
|
-
width: 5px;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
.column-setting-list::-webkit-scrollbar-track {
|
|
83
|
-
border-radius: 3px;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
.column-setting-list::-webkit-scrollbar-thumb {
|
|
87
|
-
width: 5px;
|
|
88
|
-
border-radius: 3px;
|
|
89
|
-
background: #8b8b8b;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
.column-setting-item {
|
|
93
|
-
display: flex;
|
|
94
|
-
align-items: center;
|
|
95
|
-
padding: 8px 10px;
|
|
96
|
-
user-select: none;
|
|
97
|
-
border-radius: 4px;
|
|
98
|
-
margin-bottom: 2px;
|
|
99
|
-
min-height: 32px;
|
|
100
|
-
|
|
101
|
-
&:hover {
|
|
102
|
-
background-color: #f5f5f5;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
.column-drag-handle {
|
|
107
|
-
cursor: move;
|
|
108
|
-
margin-right: 8px;
|
|
109
|
-
display: flex;
|
|
110
|
-
align-items: center;
|
|
111
|
-
color: #666;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
.column-setting-footer {
|
|
115
|
-
display: flex;
|
|
116
|
-
justify-content: flex-end;
|
|
117
|
-
padding-top: 4px;
|
|
118
|
-
border-top: 1px solid #f0f0f0;
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
// form display
|
|
123
|
-
.@{prefix}-form {
|
|
124
|
-
transition: all 0.3s ease-in-out;
|
|
125
|
-
overflow: hidden;
|
|
126
|
-
|
|
127
|
-
&.visible {
|
|
128
|
-
max-height: 300px;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
&.hidden {
|
|
132
|
-
max-height: 0;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
&-table {
|
|
137
|
-
flex: 1;
|
|
138
|
-
overflow: hidden;
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
&-modalform-view {
|
|
142
|
-
.ant-form-item-label > label.ant-form-item-required:not(.ant-form-item-required-mark-optional)::before {
|
|
143
|
-
display: none;
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
@keyframes rotating {
|
|
148
|
-
from {
|
|
149
|
-
transform: rotate(0deg);
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
to {
|
|
153
|
-
transform: rotate(360deg);
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
}
|
|
1
|
+
@import '../commonStyle/index.less';
|
|
2
|
+
|
|
3
|
+
.@{prefix}-crud {
|
|
4
|
+
height: 100%;
|
|
5
|
+
display: flex;
|
|
6
|
+
flex-direction: column;
|
|
7
|
+
overflow: hidden;
|
|
8
|
+
|
|
9
|
+
&.fullscreen {
|
|
10
|
+
position: fixed;
|
|
11
|
+
inset: 0;
|
|
12
|
+
z-index: 10000;
|
|
13
|
+
padding: 10px;
|
|
14
|
+
background-color: #fff;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
&-action-tool-bar {
|
|
18
|
+
display: flex;
|
|
19
|
+
justify-content: space-between;
|
|
20
|
+
align-items: center;
|
|
21
|
+
margin-bottom: 10px;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
&-action-bar,
|
|
25
|
+
&-tool-bar {
|
|
26
|
+
display: flex;
|
|
27
|
+
justify-content: flex-start;
|
|
28
|
+
align-items: center;
|
|
29
|
+
gap: 8px;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.tool-icon {
|
|
33
|
+
cursor: pointer;
|
|
34
|
+
padding: 5px;
|
|
35
|
+
border: 1px solid #e3e3e3;
|
|
36
|
+
border-radius: 50%;
|
|
37
|
+
font-size: 15px;
|
|
38
|
+
|
|
39
|
+
&:hover {
|
|
40
|
+
border-color: #2e4dd9;
|
|
41
|
+
color: #2e4dd9;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
&.rotating {
|
|
45
|
+
animation: rotating 0.5s linear;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// column setting popup
|
|
50
|
+
.column-setting-popup {
|
|
51
|
+
.ant-popover-title {
|
|
52
|
+
padding-right: 10px;
|
|
53
|
+
padding-left: 10px;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.ant-popover-inner-content {
|
|
57
|
+
width: 100%;
|
|
58
|
+
padding: 8px 0 4px;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.column-setting-title {
|
|
62
|
+
display: flex;
|
|
63
|
+
justify-content: space-between;
|
|
64
|
+
align-items: center;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.column-setting-list {
|
|
68
|
+
display: flex;
|
|
69
|
+
flex-direction: column;
|
|
70
|
+
max-height: 300px;
|
|
71
|
+
overflow-y: auto;
|
|
72
|
+
margin-bottom: 0;
|
|
73
|
+
padding-inline-start: 0;
|
|
74
|
+
list-style: none;
|
|
75
|
+
padding: 5px 0;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.column-setting-list::-webkit-scrollbar {
|
|
79
|
+
width: 5px;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.column-setting-list::-webkit-scrollbar-track {
|
|
83
|
+
border-radius: 3px;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.column-setting-list::-webkit-scrollbar-thumb {
|
|
87
|
+
width: 5px;
|
|
88
|
+
border-radius: 3px;
|
|
89
|
+
background: #8b8b8b;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.column-setting-item {
|
|
93
|
+
display: flex;
|
|
94
|
+
align-items: center;
|
|
95
|
+
padding: 8px 10px;
|
|
96
|
+
user-select: none;
|
|
97
|
+
border-radius: 4px;
|
|
98
|
+
margin-bottom: 2px;
|
|
99
|
+
min-height: 32px;
|
|
100
|
+
|
|
101
|
+
&:hover {
|
|
102
|
+
background-color: #f5f5f5;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.column-drag-handle {
|
|
107
|
+
cursor: move;
|
|
108
|
+
margin-right: 8px;
|
|
109
|
+
display: flex;
|
|
110
|
+
align-items: center;
|
|
111
|
+
color: #666;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.column-setting-footer {
|
|
115
|
+
display: flex;
|
|
116
|
+
justify-content: flex-end;
|
|
117
|
+
padding-top: 4px;
|
|
118
|
+
border-top: 1px solid #f0f0f0;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
// form display
|
|
123
|
+
.@{prefix}-form {
|
|
124
|
+
transition: all 0.3s ease-in-out;
|
|
125
|
+
overflow: hidden;
|
|
126
|
+
|
|
127
|
+
&.visible {
|
|
128
|
+
max-height: 300px;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
&.hidden {
|
|
132
|
+
max-height: 0;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
&-table {
|
|
137
|
+
flex: 1;
|
|
138
|
+
overflow: hidden;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
&-modalform-view {
|
|
142
|
+
.ant-form-item-label > label.ant-form-item-required:not(.ant-form-item-required-mark-optional)::before {
|
|
143
|
+
display: none;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
@keyframes rotating {
|
|
148
|
+
from {
|
|
149
|
+
transform: rotate(0deg);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
to {
|
|
153
|
+
transform: rotate(360deg);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
2
2
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
3
3
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
4
|
-
/*
|
|
5
|
-
* @Author : frank
|
|
6
|
-
* @Date : 2023-11-21
|
|
7
|
-
* @Description : 多模式颜色选择器组件
|
|
4
|
+
/*
|
|
5
|
+
* @Author : frank
|
|
6
|
+
* @Date : 2023-11-21
|
|
7
|
+
* @Description : 多模式颜色选择器组件
|
|
8
8
|
*/
|
|
9
9
|
import { useState, useContext } from 'react';
|
|
10
10
|
import classNames from 'classnames';
|
|
@@ -1,61 +1,61 @@
|
|
|
1
|
-
@import '../commonStyle/index.less';
|
|
2
|
-
|
|
3
|
-
@context-menu-bg: #ffffff;
|
|
4
|
-
@context-menu-border-color: #f0f0f0;
|
|
5
|
-
@context-menu-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
|
|
6
|
-
@border-radius-base: 1px;
|
|
7
|
-
|
|
8
|
-
.@{prefix}-context-menu {
|
|
9
|
-
background: @context-menu-bg;
|
|
10
|
-
border-radius: @border-radius-base;
|
|
11
|
-
border: 1px solid @context-menu-border-color;
|
|
12
|
-
box-shadow: @context-menu-shadow;
|
|
13
|
-
padding: 4px 0;
|
|
14
|
-
min-width: 120px;
|
|
15
|
-
opacity: 0;
|
|
16
|
-
transform: scale(0.8);
|
|
17
|
-
transform-origin: top left;
|
|
18
|
-
animation: contextmenu-show 0.2s ease-out forwards;
|
|
19
|
-
|
|
20
|
-
&-item {
|
|
21
|
-
padding: 5px 12px;
|
|
22
|
-
cursor: pointer;
|
|
23
|
-
user-select: none;
|
|
24
|
-
transition: all 0.3s;
|
|
25
|
-
display: flex;
|
|
26
|
-
align-items: center;
|
|
27
|
-
gap: 8px;
|
|
28
|
-
color: rgba(0, 0, 0, 88%);
|
|
29
|
-
|
|
30
|
-
&:hover {
|
|
31
|
-
background: rgba(0, 0, 0, 4%);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
&-disabled {
|
|
35
|
-
color: rgba(0, 0, 0, 25%);
|
|
36
|
-
cursor: not-allowed;
|
|
37
|
-
|
|
38
|
-
&:hover {
|
|
39
|
-
background: none;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
&-divider {
|
|
44
|
-
height: 1px;
|
|
45
|
-
margin: 4px 0;
|
|
46
|
-
background: #f0f0f0;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
@keyframes contextmenu-show {
|
|
52
|
-
0% {
|
|
53
|
-
opacity: 0;
|
|
54
|
-
transform: scale(0.8);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
100% {
|
|
58
|
-
opacity: 1;
|
|
59
|
-
transform: scale(1);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
1
|
+
@import '../commonStyle/index.less';
|
|
2
|
+
|
|
3
|
+
@context-menu-bg: #ffffff;
|
|
4
|
+
@context-menu-border-color: #f0f0f0;
|
|
5
|
+
@context-menu-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
|
|
6
|
+
@border-radius-base: 1px;
|
|
7
|
+
|
|
8
|
+
.@{prefix}-context-menu {
|
|
9
|
+
background: @context-menu-bg;
|
|
10
|
+
border-radius: @border-radius-base;
|
|
11
|
+
border: 1px solid @context-menu-border-color;
|
|
12
|
+
box-shadow: @context-menu-shadow;
|
|
13
|
+
padding: 4px 0;
|
|
14
|
+
min-width: 120px;
|
|
15
|
+
opacity: 0;
|
|
16
|
+
transform: scale(0.8);
|
|
17
|
+
transform-origin: top left;
|
|
18
|
+
animation: contextmenu-show 0.2s ease-out forwards;
|
|
19
|
+
|
|
20
|
+
&-item {
|
|
21
|
+
padding: 5px 12px;
|
|
22
|
+
cursor: pointer;
|
|
23
|
+
user-select: none;
|
|
24
|
+
transition: all 0.3s;
|
|
25
|
+
display: flex;
|
|
26
|
+
align-items: center;
|
|
27
|
+
gap: 8px;
|
|
28
|
+
color: rgba(0, 0, 0, 88%);
|
|
29
|
+
|
|
30
|
+
&:hover {
|
|
31
|
+
background: rgba(0, 0, 0, 4%);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
&-disabled {
|
|
35
|
+
color: rgba(0, 0, 0, 25%);
|
|
36
|
+
cursor: not-allowed;
|
|
37
|
+
|
|
38
|
+
&:hover {
|
|
39
|
+
background: none;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
&-divider {
|
|
44
|
+
height: 1px;
|
|
45
|
+
margin: 4px 0;
|
|
46
|
+
background: #f0f0f0;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
@keyframes contextmenu-show {
|
|
52
|
+
0% {
|
|
53
|
+
opacity: 0;
|
|
54
|
+
transform: scale(0.8);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
100% {
|
|
58
|
+
opacity: 1;
|
|
59
|
+
transform: scale(1);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
@@ -11,7 +11,7 @@ export type DCascaderProps = Omit<CascaderProps<any>, 'options' | 'loadData' | '
|
|
|
11
11
|
/** antd的loading属性,是否显示加载中:传入数字表示延迟加载,单位毫秒,0等同于false */
|
|
12
12
|
loading?: boolean | number;
|
|
13
13
|
};
|
|
14
|
-
declare const DCascader: React.ForwardRefExoticComponent<Omit<CascaderProps<any>, "
|
|
14
|
+
declare const DCascader: React.ForwardRefExoticComponent<Omit<CascaderProps<any>, "loading" | "options" | "loadData"> & {
|
|
15
15
|
/** antd的options属性,同onSearch属性,可以是一个options数组,或一个返回等价options数组的promise */
|
|
16
16
|
options?: DefaultOptionType[] | ((value?: string, option?: DefaultOptionType, options?: DefaultOptionType[]) => Promise<DefaultOptionType[]>) | undefined;
|
|
17
17
|
/** antd的loadData属性,动态加载子级列表数据,默认使用options所提供的方法,如果传入null,则表示不进行动态加载,该方法要求返回一个options数组或与其等价的Promise */
|
|
@@ -2,16 +2,17 @@ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
3
3
|
var _excluded = ["formItemProps", "label", "name", "renderType", "render", "children"];
|
|
4
4
|
import React from 'react';
|
|
5
|
+
import { Form } from 'antd';
|
|
5
6
|
import itemsRender from "./itemsRender";
|
|
6
|
-
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
7
7
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
|
+
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
8
9
|
function DItem(props) {
|
|
9
|
-
// @ts-ignore
|
|
10
10
|
var formItemProps = props.formItemProps,
|
|
11
11
|
_props$label = props.label,
|
|
12
12
|
label = _props$label === void 0 ? '' : _props$label,
|
|
13
13
|
name = props.name,
|
|
14
|
-
renderType = props.renderType,
|
|
14
|
+
_props$renderType = props.renderType,
|
|
15
|
+
renderType = _props$renderType === void 0 ? '' : _props$renderType,
|
|
15
16
|
render = props.render,
|
|
16
17
|
children = props.children,
|
|
17
18
|
otherProps = _objectWithoutProperties(props, _excluded);
|
|
@@ -19,6 +20,17 @@ function DItem(props) {
|
|
|
19
20
|
label: label,
|
|
20
21
|
name: name
|
|
21
22
|
}, formItemProps);
|
|
23
|
+
var hasShouldUpdate = typeof (formItemProps === null || formItemProps === void 0 ? void 0 : formItemProps.shouldUpdate) !== 'undefined';
|
|
24
|
+
if (['custom', 'other'].includes(renderType) && hasShouldUpdate) {
|
|
25
|
+
return /*#__PURE__*/_jsx(Form.Item, {
|
|
26
|
+
noStyle: true,
|
|
27
|
+
shouldUpdate: formItemProps.shouldUpdate,
|
|
28
|
+
children: function children(form) {
|
|
29
|
+
var renderResult = render ? render(otherProps, _formItemProps, props, form) : null;
|
|
30
|
+
return renderResult;
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
}
|
|
22
34
|
if (renderType === 'custom') {
|
|
23
35
|
return render ? /*#__PURE__*/_jsx(_Fragment, {
|
|
24
36
|
children: render(otherProps, _formItemProps, props)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
-
import { InputProps, InputNumberProps, AutoCompleteProps, CascaderProps, SelectProps, TreeSelectProps, DatePickerProps, TimePickerProps, MentionProps, CheckboxProps, RadioProps, RateProps, SliderSingleProps, SwitchProps, TransferProps, UploadProps, ButtonProps, DividerProps, FormItemProps, RadioGroupProps, ColProps } from 'antd';
|
|
2
|
+
import { InputProps, InputNumberProps, AutoCompleteProps, CascaderProps, SelectProps, TreeSelectProps, DatePickerProps, TimePickerProps, MentionProps, CheckboxProps, RadioProps, RateProps, SliderSingleProps, SwitchProps, TransferProps, UploadProps, ButtonProps, DividerProps, FormItemProps, RadioGroupProps, ColProps, FormInstance } from 'antd';
|
|
3
3
|
import { PasswordProps, TextAreaProps } from 'antd/lib/input';
|
|
4
4
|
import { RangePickerProps } from 'antd/lib/date-picker';
|
|
5
5
|
import { CheckboxGroupProps } from 'antd/lib/checkbox';
|
|
@@ -112,6 +112,7 @@ export type DItemProps = {
|
|
|
112
112
|
grid?: Omit<ColProps, 'prefixCls'>;
|
|
113
113
|
};
|
|
114
114
|
children?: ReactNode;
|
|
115
|
-
render?: any;
|
|
115
|
+
render?: (_props: any, _formItemProps: FormItemProps, _allProps?: DItemProps, _form?: FormInstance) => ReactNode;
|
|
116
|
+
} & {
|
|
116
117
|
[key: string]: any;
|
|
117
118
|
};
|
|
@@ -39,7 +39,7 @@ declare const renderMap: {
|
|
|
39
39
|
switch: (props: SwitchProps, formItemProps: FormItemProps) => import("react/jsx-runtime").JSX.Element;
|
|
40
40
|
transfer: (props: TransferProps<any>, formItemProps: FormItemProps, label: DItemBaseProps['label'], render: TransferProps<any>['render']) => import("react/jsx-runtime").JSX.Element;
|
|
41
41
|
upload: (props: UploadProps, formItemProps: FormItemProps, label: DItemBaseProps['label'], render: () => void, children: UploadProps['children']) => import("react/jsx-runtime").JSX.Element;
|
|
42
|
-
dUpload: (props: DUploadProps, formItemProps: FormItemProps, render: (
|
|
42
|
+
dUpload: (props: DUploadProps, formItemProps: FormItemProps, render: (_props: any) => ReactNode, children: DUploadProps['children']) => import("react/jsx-runtime").JSX.Element;
|
|
43
43
|
button: (props: ButtonProps, formItemProps: FormItemProps, label: DItemBaseProps['label']) => import("react/jsx-runtime").JSX.Element;
|
|
44
44
|
divider: (props: DividerProps, formItemProps: FormItemProps, label: DItemBaseProps['label']) => import("react/jsx-runtime").JSX.Element;
|
|
45
45
|
other: (formItemProps: FormItemProps, children: ReactNode) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
2
|
-
/*
|
|
3
|
-
* @Author : wangfeihu
|
|
4
|
-
* @Date : 2023-06-12 17:35:10
|
|
5
|
-
* @LastEditors : frank
|
|
6
|
-
* @LastEditTime : 2023-12-20 15:40:13
|
|
7
|
-
* @Description : 根据renderType渲染对应的表单项组件
|
|
2
|
+
/*
|
|
3
|
+
* @Author : wangfeihu
|
|
4
|
+
* @Date : 2023-06-12 17:35:10
|
|
5
|
+
* @LastEditors : frank
|
|
6
|
+
* @LastEditTime : 2023-12-20 15:40:13
|
|
7
|
+
* @Description : 根据renderType渲染对应的表单项组件
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
import { AutoComplete, Button, Cascader, Checkbox, DatePicker, Divider, Form, Input, InputNumber, Mentions, Radio, Rate, Select, Slider, Switch, TimePicker, Transfer, TreeSelect, Upload } from 'antd';
|
package/dist/esm/DForm/index.js
CHANGED
|
@@ -2,12 +2,12 @@ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
3
3
|
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
4
4
|
var _excluded = ["className", "defaultItemProps", "items", "children", "layout", "autoComplete"];
|
|
5
|
-
/*
|
|
6
|
-
* @Author : wangfeihu
|
|
7
|
-
* @Date : 2023-06-02 09:29:11
|
|
8
|
-
* @LastEditors : wangfeihu
|
|
9
|
-
* @LastEditTime : 2023-08-16 17:44:33
|
|
10
|
-
* @Description : 基于antd的Form组件
|
|
5
|
+
/*
|
|
6
|
+
* @Author : wangfeihu
|
|
7
|
+
* @Date : 2023-06-02 09:29:11
|
|
8
|
+
* @LastEditors : wangfeihu
|
|
9
|
+
* @LastEditTime : 2023-08-16 17:44:33
|
|
10
|
+
* @Description : 基于antd的Form组件
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
13
|
import React, { forwardRef, useContext, useState, useMemo, useEffect, useImperativeHandle } from 'react';
|