@vtx/components 2.3.4 → 2.5.0
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/CHANGELOG.md +110 -0
- package/lib/vtx-combogrid/index.js +0 -1
- package/lib/vtx-combogrid/index.js.map +1 -1
- package/lib/vtx-datagrid/Alert.js +45 -0
- package/lib/vtx-datagrid/Alert.js.map +1 -0
- package/lib/vtx-datagrid/index.js +70 -21
- package/lib/vtx-datagrid/index.js.map +1 -1
- package/lib/vtx-datagrid/style/css.js +4 -0
- package/lib/vtx-datagrid/style/css.js.map +1 -1
- package/lib/vtx-datagrid/style/index.css +22 -1
- package/lib/vtx-datagrid/style/index.js +4 -0
- package/lib/vtx-datagrid/style/index.js.map +1 -1
- package/lib/vtx-datagrid/style/index.less +25 -1
- package/lib/vtx-form-layout/Card.js +83 -0
- package/lib/vtx-form-layout/Card.js.map +1 -0
- package/lib/vtx-form-layout/Divider.js +22 -0
- package/lib/vtx-form-layout/Divider.js.map +1 -0
- package/lib/vtx-form-layout/FormItem.js +26 -12
- package/lib/vtx-form-layout/FormItem.js.map +1 -1
- package/lib/vtx-form-layout/Pane.js +34 -0
- package/lib/vtx-form-layout/Pane.js.map +1 -0
- package/lib/vtx-form-layout/Row.js +25 -0
- package/lib/vtx-form-layout/Row.js.map +1 -0
- package/lib/vtx-form-layout/demo/Modal.css +42 -0
- package/lib/vtx-form-layout/demo/Modal.less +41 -0
- package/lib/vtx-form-layout/index.js +30 -7
- package/lib/vtx-form-layout/index.js.map +1 -1
- package/lib/vtx-form-layout/style/css.js +4 -0
- package/lib/vtx-form-layout/style/css.js.map +1 -1
- package/lib/vtx-form-layout/style/index.css +116 -0
- package/lib/vtx-form-layout/style/index.js +4 -0
- package/lib/vtx-form-layout/style/index.js.map +1 -1
- package/lib/vtx-form-layout/style/index.less +133 -0
- package/lib/vtx-image/Preview.js +3 -0
- package/lib/vtx-image/Preview.js.map +1 -1
- package/lib/vtx-input/index.js +13 -2
- package/lib/vtx-input/index.js.map +1 -1
- package/lib/vtx-modal/Title.js +32 -0
- package/lib/vtx-modal/Title.js.map +1 -0
- package/lib/vtx-modal/index.js +10 -0
- package/lib/vtx-modal/index.js.map +1 -1
- package/lib/vtx-modal/style/index.css +11 -0
- package/lib/vtx-modal/style/index.less +16 -0
- package/lib/vtx-page-layout/Basic.js +0 -1
- package/lib/vtx-page-layout/Basic.js.map +1 -1
- package/lib/vtx-page-layout/Pane.js +50 -0
- package/lib/vtx-page-layout/Pane.js.map +1 -0
- package/lib/vtx-page-layout/TableLayout.js +165 -0
- package/lib/vtx-page-layout/TableLayout.js.map +1 -0
- package/lib/vtx-page-layout/index.js +6 -0
- package/lib/vtx-page-layout/index.js.map +1 -1
- package/lib/vtx-page-layout/style/index.css +50 -1
- package/lib/vtx-page-layout/style/index.less +55 -1
- package/lib/vtx-rps-frame/index.js +1 -1
- package/lib/vtx-rps-frame/index.js.map +1 -1
- package/lib/vtx-scrollable-row/index.js +227 -0
- package/lib/vtx-scrollable-row/index.js.map +1 -0
- package/lib/vtx-scrollable-row/style/css.js +6 -0
- package/lib/vtx-scrollable-row/style/css.js.map +1 -0
- package/lib/vtx-scrollable-row/style/index.css +111 -0
- package/lib/vtx-scrollable-row/style/index.js +6 -0
- package/lib/vtx-scrollable-row/style/index.js.map +1 -0
- package/lib/vtx-scrollable-row/style/index.less +111 -0
- package/lib/vtx-search/VtxCol.js +2 -2
- package/lib/vtx-search/VtxCol.js.map +1 -1
- package/lib/vtx-search/VtxRow.js +6 -3
- package/lib/vtx-search/VtxRow.js.map +1 -1
- package/lib/vtx-search/index.js +42 -38
- package/lib/vtx-search/index.js.map +1 -1
- package/lib/vtx-search/style/css.js +2 -0
- package/lib/vtx-search/style/css.js.map +1 -1
- package/lib/vtx-search/style/index.css +25 -24
- package/lib/vtx-search/style/index.js +2 -0
- package/lib/vtx-search/style/index.js.map +1 -1
- package/lib/vtx-search/style/index.less +27 -25
- package/lib/vtx-select/index.js +2 -1
- package/lib/vtx-select/index.js.map +1 -1
- package/lib/vtx-signature/index.js +124 -0
- package/lib/vtx-signature/index.js.map +1 -0
- package/lib/vtx-signature/style/css.js +8 -0
- package/lib/vtx-signature/style/css.js.map +1 -0
- package/lib/vtx-signature/style/index.css +35 -0
- package/lib/vtx-signature/style/index.js +8 -0
- package/lib/vtx-signature/style/index.js.map +1 -0
- package/lib/vtx-signature/style/index.less +32 -0
- package/lib/vtx-split-pane/SplitPane.js +1 -0
- package/lib/vtx-split-pane/SplitPane.js.map +1 -1
- package/lib/vtx-statistics-column/Back.js +29 -0
- package/lib/vtx-statistics-column/Back.js.map +1 -0
- package/lib/vtx-statistics-column/Item.js +68 -0
- package/lib/vtx-statistics-column/Item.js.map +1 -0
- package/lib/vtx-statistics-column/Total.js +68 -0
- package/lib/vtx-statistics-column/Total.js.map +1 -0
- package/lib/vtx-statistics-column/context.js +12 -0
- package/lib/vtx-statistics-column/context.js.map +1 -0
- package/lib/vtx-statistics-column/index.js +63 -0
- package/lib/vtx-statistics-column/index.js.map +1 -0
- package/lib/vtx-statistics-column/style/css.js +4 -0
- package/lib/vtx-statistics-column/style/css.js.map +1 -0
- package/lib/vtx-statistics-column/style/index.css +55 -0
- package/lib/vtx-statistics-column/style/index.js +4 -0
- package/lib/vtx-statistics-column/style/index.js.map +1 -0
- package/lib/vtx-statistics-column/style/index.less +61 -0
- package/lib/vtx-upload/index.js +3 -3
- package/lib/vtx-upload/index.js.map +1 -1
- package/lib/vtx-ztree/style/index.css +5 -5
- package/lib/vtx-ztree/style/index.less +5 -5
- package/lib/vtx-ztree-select/index.js +4 -8
- package/lib/vtx-ztree-select/index.js.map +1 -1
- package/lib/vtx-ztree-select/style/index.css +20 -1
- package/lib/vtx-ztree-select/style/index.less +28 -2
- package/package.json +2 -1
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
.vtx-search {
|
|
2
|
-
position:
|
|
3
|
-
top: 0;
|
|
4
|
-
right: 0;
|
|
5
|
-
left: 0;
|
|
2
|
+
position: relative;
|
|
6
3
|
z-index: 1000;
|
|
7
|
-
padding-top:
|
|
8
|
-
padding-right:
|
|
9
|
-
padding-bottom:
|
|
10
|
-
padding-left:
|
|
4
|
+
padding-top: 8px;
|
|
5
|
+
padding-right: 24px;
|
|
6
|
+
padding-bottom: 8px;
|
|
7
|
+
padding-left: 24px;
|
|
11
8
|
overflow: hidden;
|
|
12
9
|
background: #ffffff;
|
|
13
10
|
-webkit-transition-duration: 0.3s;
|
|
@@ -18,7 +15,7 @@
|
|
|
18
15
|
.vtx-search-label_h {
|
|
19
16
|
display: inline-block;
|
|
20
17
|
overflow: hidden;
|
|
21
|
-
line-height:
|
|
18
|
+
line-height: 48px;
|
|
22
19
|
white-space: nowrap;
|
|
23
20
|
text-overflow: ellipsis;
|
|
24
21
|
vertical-align: top;
|
|
@@ -28,13 +25,16 @@
|
|
|
28
25
|
display: inline-block;
|
|
29
26
|
-webkit-box-sizing: border-box;
|
|
30
27
|
box-sizing: border-box;
|
|
31
|
-
height:
|
|
32
|
-
padding-top:
|
|
33
|
-
padding-bottom:
|
|
34
|
-
padding-left:
|
|
35
|
-
line-height:
|
|
28
|
+
height: 48px;
|
|
29
|
+
padding-top: 8px;
|
|
30
|
+
padding-bottom: 8px;
|
|
31
|
+
padding-left: 12px;
|
|
32
|
+
line-height: 1.5;
|
|
36
33
|
vertical-align: top;
|
|
37
34
|
}
|
|
35
|
+
.vtx-search .vtx-search-item__v {
|
|
36
|
+
padding: 8px 0;
|
|
37
|
+
}
|
|
38
38
|
.vtx-search-label_v {
|
|
39
39
|
overflow: hidden;
|
|
40
40
|
line-height: 21px;
|
|
@@ -47,32 +47,33 @@
|
|
|
47
47
|
-webkit-box-sizing: border-box;
|
|
48
48
|
box-sizing: border-box;
|
|
49
49
|
height: 42px;
|
|
50
|
-
padding-top:
|
|
51
|
-
padding-bottom:
|
|
50
|
+
padding-top: 8px;
|
|
51
|
+
padding-bottom: 8px;
|
|
52
52
|
line-height: 32px;
|
|
53
53
|
vertical-align: top;
|
|
54
54
|
}
|
|
55
|
-
.vtx-search-colon {
|
|
56
|
-
position: absolute;
|
|
57
|
-
left: 0;
|
|
58
|
-
width: 15px;
|
|
59
|
-
}
|
|
60
55
|
.vtx-search-list {
|
|
61
56
|
width: 100%;
|
|
62
57
|
}
|
|
63
58
|
.vtx-search-element {
|
|
64
59
|
display: inline-block;
|
|
65
|
-
|
|
66
|
-
|
|
60
|
+
/* stylelint-disable */
|
|
61
|
+
width: calc(100% - 200px - 24px);
|
|
62
|
+
margin-right: 24px;
|
|
67
63
|
}
|
|
68
64
|
.vtx-search-buttons {
|
|
69
65
|
display: inline-block;
|
|
70
66
|
-webkit-box-sizing: border-box;
|
|
71
67
|
box-sizing: border-box;
|
|
72
|
-
width:
|
|
68
|
+
width: 200px;
|
|
73
69
|
height: 100%;
|
|
74
70
|
vertical-align: top;
|
|
75
71
|
}
|
|
72
|
+
.vtx-search .vtx-search-more {
|
|
73
|
+
height: 32px;
|
|
74
|
+
color: #1890ff;
|
|
75
|
+
line-height: 32px;
|
|
76
|
+
}
|
|
76
77
|
.vtx-row {
|
|
77
78
|
overflow: hidden;
|
|
78
79
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["vtx-search/style/index.js"],"names":[],"mappings":";;AAAA;;AACA;;AACA;;AACA;;AACA","sourcesContent":["import 'antd/es/row/style/css';\nimport 'antd/es/col/style/css';\nimport 'antd/es/tooltip/style/css';\nimport 'antd/es/button/style/css';\nimport './index.less';\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["vtx-search/style/index.js"],"names":[],"mappings":";;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA","sourcesContent":["import 'antd/es/row/style/css';\nimport 'antd/es/col/style/css';\nimport 'antd/es/tooltip/style/css';\nimport 'antd/es/button/style/css';\nimport 'antd/es/icon/style/css';\nimport './index.less';\n"],"file":"index.js"}
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
@toggleSpeed: 0.3s; // 展开速度
|
|
2
2
|
@prefix-cls: vtx-search;
|
|
3
3
|
|
|
4
|
+
@buttons-width: 200px;
|
|
5
|
+
|
|
4
6
|
.@{prefix-cls} {
|
|
5
|
-
position:
|
|
6
|
-
top: 0;
|
|
7
|
-
right: 0;
|
|
8
|
-
left: 0;
|
|
7
|
+
position: relative;
|
|
9
8
|
z-index: 1000;
|
|
10
|
-
padding-top:
|
|
11
|
-
padding-right:
|
|
12
|
-
padding-bottom:
|
|
13
|
-
padding-left:
|
|
9
|
+
padding-top: 8px;
|
|
10
|
+
padding-right: 24px;
|
|
11
|
+
padding-bottom: 8px;
|
|
12
|
+
padding-left: 24px;
|
|
14
13
|
overflow: hidden;
|
|
15
14
|
background: rgb(255, 255, 255);
|
|
16
15
|
transition-duration: @toggleSpeed;
|
|
@@ -18,7 +17,7 @@
|
|
|
18
17
|
&-label_h {
|
|
19
18
|
display: inline-block;
|
|
20
19
|
overflow: hidden;
|
|
21
|
-
line-height:
|
|
20
|
+
line-height: 48px;
|
|
22
21
|
white-space: nowrap;
|
|
23
22
|
text-overflow: ellipsis;
|
|
24
23
|
vertical-align: top;
|
|
@@ -27,14 +26,16 @@
|
|
|
27
26
|
position: relative;
|
|
28
27
|
display: inline-block;
|
|
29
28
|
box-sizing: border-box;
|
|
30
|
-
height:
|
|
31
|
-
padding-top:
|
|
32
|
-
padding-bottom:
|
|
33
|
-
padding-left:
|
|
34
|
-
line-height:
|
|
29
|
+
height: 48px;
|
|
30
|
+
padding-top: 8px;
|
|
31
|
+
padding-bottom: 8px;
|
|
32
|
+
padding-left: 12px;
|
|
33
|
+
line-height: 1.5;
|
|
35
34
|
vertical-align: top;
|
|
36
35
|
}
|
|
37
|
-
|
|
36
|
+
.vtx-search-item__v {
|
|
37
|
+
padding: 8px 0;
|
|
38
|
+
}
|
|
38
39
|
&-label_v {
|
|
39
40
|
overflow: hidden;
|
|
40
41
|
line-height: 21px;
|
|
@@ -46,31 +47,32 @@
|
|
|
46
47
|
position: relative;
|
|
47
48
|
box-sizing: border-box;
|
|
48
49
|
height: 42px;
|
|
49
|
-
padding-top:
|
|
50
|
-
padding-bottom:
|
|
50
|
+
padding-top: 8px;
|
|
51
|
+
padding-bottom: 8px;
|
|
51
52
|
line-height: 32px;
|
|
52
53
|
vertical-align: top;
|
|
53
54
|
}
|
|
54
|
-
&-colon {
|
|
55
|
-
position: absolute;
|
|
56
|
-
left: 0;
|
|
57
|
-
width: 15px;
|
|
58
|
-
}
|
|
59
55
|
&-list {
|
|
60
56
|
width: 100%;
|
|
61
57
|
}
|
|
62
58
|
&-element {
|
|
63
59
|
display: inline-block;
|
|
64
|
-
|
|
65
|
-
|
|
60
|
+
/* stylelint-disable */
|
|
61
|
+
width: calc(100% - @buttons-width - 24px);
|
|
62
|
+
margin-right: 24px;
|
|
66
63
|
}
|
|
67
64
|
&-buttons {
|
|
68
65
|
display: inline-block;
|
|
69
66
|
box-sizing: border-box;
|
|
70
|
-
width:
|
|
67
|
+
width: @buttons-width;
|
|
71
68
|
height: 100%;
|
|
72
69
|
vertical-align: top;
|
|
73
70
|
}
|
|
71
|
+
.vtx-search-more {
|
|
72
|
+
height: 32px;
|
|
73
|
+
color: #1890ff;
|
|
74
|
+
line-height: 32px;
|
|
75
|
+
}
|
|
74
76
|
}
|
|
75
77
|
|
|
76
78
|
.vtx-row {
|
package/lib/vtx-select/index.js
CHANGED
|
@@ -130,7 +130,8 @@ var VtxSelect = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
130
130
|
var newProps = _objectSpread({
|
|
131
131
|
showSearch: true,
|
|
132
132
|
optionFilterProp: 'children',
|
|
133
|
-
placeholder: '请选择'
|
|
133
|
+
placeholder: '请选择',
|
|
134
|
+
allowClear: true
|
|
134
135
|
}, props);
|
|
135
136
|
|
|
136
137
|
if (mode === 'multiple') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["vtx-select/index.jsx"],"names":["VtxSelect","props","ref","popWidth","setPopWidth","elRef","elId","Date","now","value","mode","size","onChange","maxTagCount","maxTagTextLength","maxTagPlaceholder","showAll","selectStyle","selectAll","defaultBindBodyToPopupContainer","current","clientWidth","newChildren","children","Array","isArray","getContent","length","map","item","index","name","getChildren","margin","e","preventDefault","valueClone","splice","options","filter","ite","includes","substring","Empty","PRESENTED_IMAGE_SIMPLE","newProps","showSearch","optionFilterProp","placeholder","dropdownRender","menu","valueLength","target","checked","keys","key","style","paddingRight","triggerNode","document","body","width","list","i","Option","Select","OptGroup","propTypes","PropTypes","oneOfType","string","array","number","object","func","bool","node"],"mappings":"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","sourcesContent":["import React, { useState, useLayoutEffect, useRef, forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport Select from 'antd/es/select';\nimport Tag from 'antd/es/tag';\nimport Button from 'antd/es/button';\nimport Empty from 'antd/es/empty';\nimport Popover from 'antd/es/popover';\nimport Tooltip from 'antd/es/tooltip';\nimport Checkbox from 'antd/es/checkbox';\nimport Divider from 'antd/es/divider';\n\nconst VtxSelect = forwardRef((props, ref) => {\n const [popWidth, setPopWidth] = useState(0);\n const elRef = useRef();\n const elId = useRef(`vtx-select-${Date.now()}`);\n\n const {\n value,\n mode,\n size = 'default', //同步button大小\n onChange,\n maxTagCount = 2,\n maxTagTextLength = 5,\n maxTagPlaceholder = '...',\n showAll = true, //是否显示全部选项\n selectStyle,\n selectAll = true,\n defaultBindBodyToPopupContainer = true,\n } = props;\n\n useLayoutEffect(() => {\n mode === 'multiple' && setPopWidth(elRef.current.clientWidth);\n }, [elRef.current?.clientWidth]);\n\n const newChildren = props.children\n ? Array.isArray(props.children)\n ? props.children\n : [props.children]\n : [];\n\n const getContent = () => (\n <div className=\"vtx-all-list\">\n {Array.isArray(value) && value.length ? (\n value.map((item, index) => {\n let name = getChildren(newChildren, item);\n return (\n <Tag\n style={{ margin: '4px' }}\n key={index}\n closable\n onClose={e => {\n e.preventDefault();\n let valueClone = [...value];\n valueClone.splice(index, 1);\n let options = newChildren.filter(ite =>\n valueClone.includes(ite.props.value),\n );\n onChange(valueClone, options);\n }}\n >\n <Tooltip title={name}>\n {name.length > maxTagTextLength\n ? `${name.substring(0, maxTagTextLength)}...`\n : name}\n </Tooltip>\n </Tag>\n );\n })\n ) : (\n <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} />\n )}\n </div>\n );\n\n let newProps = {\n showSearch: true,\n optionFilterProp: 'children',\n placeholder: '请选择',\n ...props,\n };\n\n if (mode === 'multiple') {\n newProps = {\n ...newProps,\n maxTagCount: maxTagCount,\n maxTagTextLength: maxTagTextLength,\n maxTagPlaceholder: maxTagPlaceholder,\n };\n if (selectAll) {\n newProps = {\n ...newProps,\n dropdownRender: menu => {\n const valueLength = Array.isArray(value) && value.length ? value.length : 0;\n return (\n <div>\n <div\n className=\"vtx-multi-select-all\"\n onMouseDown={e => e.preventDefault()}\n >\n <Checkbox\n indeterminate={valueLength && valueLength < newChildren.length}\n checked={valueLength && valueLength === newChildren.length}\n onChange={e => {\n if (e.target.checked) {\n const keys = newChildren.map(item => item.key);\n onChange && onChange(keys, newChildren);\n } else {\n onChange && onChange([], []);\n }\n }}\n >\n 全选\n </Checkbox>\n </div>\n <Divider style={{ margin: '4px 0' }} />\n {menu}\n </div>\n );\n },\n };\n }\n }\n\n return (\n <div\n className={classnames({\n 'vtx-select': mode !== 'multiple',\n 'vtx-multi-select': mode == 'multiple' || mode == 'tags',\n })}\n id={elId.current}\n ref={elRef}\n style={{\n ...props.style,\n paddingRight: (mode == 'multiple' || mode == 'tags') && showAll ? 32 : 0,\n }}\n >\n <Select\n ref={ref}\n getPopupContainer={triggerNode => {\n return defaultBindBodyToPopupContainer ? document.body : triggerNode;\n }}\n {...newProps}\n style={{ width: '100%', ...selectStyle }}\n >\n {props.children}\n </Select>\n {(mode == 'multiple' || mode == 'tags') && showAll ? (\n <Popover\n content={getContent()}\n placement=\"bottomRight\"\n trigger=\"click\"\n overlayStyle={{ width: popWidth }}\n >\n <Button className=\"vtx-select-count\" icon=\"more\" size={size} />\n </Popover>\n ) : null}\n </div>\n );\n});\n\nfunction getChildren(list = [], value) {\n let name = '';\n for (let i = 0; i < list.length; i++) {\n if (list[i].key === value) {\n name = list[i].props.children;\n break;\n }\n }\n return name;\n}\n\nVtxSelect.Option = Select.Option;\nVtxSelect.OptGroup = Select.OptGroup;\n\nVtxSelect.propTypes = {\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.array,\n PropTypes.number,\n PropTypes.object,\n ]),\n mode: PropTypes.string,\n size: PropTypes.string,\n style: PropTypes.object,\n selectStyle: PropTypes.object,\n onChange: PropTypes.func,\n defaultBindBodyToPopupContainer: PropTypes.bool,\n maxTagCount: PropTypes.number,\n maxTagTextLength: PropTypes.number,\n maxTagPlaceholder: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n showAll: PropTypes.bool,\n children: PropTypes.node,\n selectAll: PropTypes.bool,\n};\n\nexport default VtxSelect;\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["vtx-select/index.jsx"],"names":["VtxSelect","props","ref","popWidth","setPopWidth","elRef","elId","Date","now","value","mode","size","onChange","maxTagCount","maxTagTextLength","maxTagPlaceholder","showAll","selectStyle","selectAll","defaultBindBodyToPopupContainer","current","clientWidth","newChildren","children","Array","isArray","getContent","length","map","item","index","name","getChildren","margin","e","preventDefault","valueClone","splice","options","filter","ite","includes","substring","Empty","PRESENTED_IMAGE_SIMPLE","newProps","showSearch","optionFilterProp","placeholder","allowClear","dropdownRender","menu","valueLength","target","checked","keys","key","style","paddingRight","triggerNode","document","body","width","list","i","Option","Select","OptGroup","propTypes","PropTypes","oneOfType","string","array","number","object","func","bool","node"],"mappings":"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","sourcesContent":["import React, { useState, useLayoutEffect, useRef, forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport Select from 'antd/es/select';\nimport Tag from 'antd/es/tag';\nimport Button from 'antd/es/button';\nimport Empty from 'antd/es/empty';\nimport Popover from 'antd/es/popover';\nimport Tooltip from 'antd/es/tooltip';\nimport Checkbox from 'antd/es/checkbox';\nimport Divider from 'antd/es/divider';\n\nconst VtxSelect = forwardRef((props, ref) => {\n const [popWidth, setPopWidth] = useState(0);\n const elRef = useRef();\n const elId = useRef(`vtx-select-${Date.now()}`);\n\n const {\n value,\n mode,\n size = 'default', //同步button大小\n onChange,\n maxTagCount = 2,\n maxTagTextLength = 5,\n maxTagPlaceholder = '...',\n showAll = true, //是否显示全部选项\n selectStyle,\n selectAll = true,\n defaultBindBodyToPopupContainer = true,\n } = props;\n\n useLayoutEffect(() => {\n mode === 'multiple' && setPopWidth(elRef.current.clientWidth);\n }, [elRef.current?.clientWidth]);\n\n const newChildren = props.children\n ? Array.isArray(props.children)\n ? props.children\n : [props.children]\n : [];\n\n const getContent = () => (\n <div className=\"vtx-all-list\">\n {Array.isArray(value) && value.length ? (\n value.map((item, index) => {\n let name = getChildren(newChildren, item);\n return (\n <Tag\n style={{ margin: '4px' }}\n key={index}\n closable\n onClose={e => {\n e.preventDefault();\n let valueClone = [...value];\n valueClone.splice(index, 1);\n let options = newChildren.filter(ite =>\n valueClone.includes(ite.props.value),\n );\n onChange(valueClone, options);\n }}\n >\n <Tooltip title={name}>\n {name.length > maxTagTextLength\n ? `${name.substring(0, maxTagTextLength)}...`\n : name}\n </Tooltip>\n </Tag>\n );\n })\n ) : (\n <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} />\n )}\n </div>\n );\n\n let newProps = {\n showSearch: true,\n optionFilterProp: 'children',\n placeholder: '请选择',\n allowClear: true,\n ...props,\n };\n\n if (mode === 'multiple') {\n newProps = {\n ...newProps,\n maxTagCount: maxTagCount,\n maxTagTextLength: maxTagTextLength,\n maxTagPlaceholder: maxTagPlaceholder,\n };\n if (selectAll) {\n newProps = {\n ...newProps,\n dropdownRender: menu => {\n const valueLength = Array.isArray(value) && value.length ? value.length : 0;\n return (\n <div>\n <div\n className=\"vtx-multi-select-all\"\n onMouseDown={e => e.preventDefault()}\n >\n <Checkbox\n indeterminate={valueLength && valueLength < newChildren.length}\n checked={valueLength && valueLength === newChildren.length}\n onChange={e => {\n if (e.target.checked) {\n const keys = newChildren.map(item => item.key);\n onChange && onChange(keys, newChildren);\n } else {\n onChange && onChange([], []);\n }\n }}\n >\n 全选\n </Checkbox>\n </div>\n <Divider style={{ margin: '4px 0' }} />\n {menu}\n </div>\n );\n },\n };\n }\n }\n\n return (\n <div\n className={classnames({\n 'vtx-select': mode !== 'multiple',\n 'vtx-multi-select': mode == 'multiple' || mode == 'tags',\n })}\n id={elId.current}\n ref={elRef}\n style={{\n ...props.style,\n paddingRight: (mode == 'multiple' || mode == 'tags') && showAll ? 32 : 0,\n }}\n >\n <Select\n ref={ref}\n getPopupContainer={triggerNode => {\n return defaultBindBodyToPopupContainer ? document.body : triggerNode;\n }}\n {...newProps}\n style={{ width: '100%', ...selectStyle }}\n >\n {props.children}\n </Select>\n {(mode == 'multiple' || mode == 'tags') && showAll ? (\n <Popover\n content={getContent()}\n placement=\"bottomRight\"\n trigger=\"click\"\n overlayStyle={{ width: popWidth }}\n >\n <Button className=\"vtx-select-count\" icon=\"more\" size={size} />\n </Popover>\n ) : null}\n </div>\n );\n});\n\nfunction getChildren(list = [], value) {\n let name = '';\n for (let i = 0; i < list.length; i++) {\n if (list[i].key === value) {\n name = list[i].props.children;\n break;\n }\n }\n return name;\n}\n\nVtxSelect.Option = Select.Option;\nVtxSelect.OptGroup = Select.OptGroup;\n\nVtxSelect.propTypes = {\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.array,\n PropTypes.number,\n PropTypes.object,\n ]),\n mode: PropTypes.string,\n size: PropTypes.string,\n style: PropTypes.object,\n selectStyle: PropTypes.object,\n onChange: PropTypes.func,\n defaultBindBodyToPopupContainer: PropTypes.bool,\n maxTagCount: PropTypes.number,\n maxTagTextLength: PropTypes.number,\n maxTagPlaceholder: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n showAll: PropTypes.bool,\n children: PropTypes.node,\n selectAll: PropTypes.bool,\n};\n\nexport default VtxSelect;\n"],"file":"index.js"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
|
|
12
|
+
var _signature_pad = _interopRequireDefault(require("signature_pad"));
|
|
13
|
+
|
|
14
|
+
var _button = _interopRequireDefault(require("antd/es/button"));
|
|
15
|
+
|
|
16
|
+
var _lodash = _interopRequireDefault(require("lodash.debounce"));
|
|
17
|
+
|
|
18
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
19
|
+
|
|
20
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
21
|
+
|
|
22
|
+
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
|
|
23
|
+
|
|
24
|
+
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
25
|
+
|
|
26
|
+
var VtxSignature = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
27
|
+
var canvasRef = (0, _react.useRef)();
|
|
28
|
+
var signaturePad = (0, _react.useRef)();
|
|
29
|
+
var dotSize = props.dotSize,
|
|
30
|
+
minWidth = props.minWidth,
|
|
31
|
+
maxWidth = props.maxWidth,
|
|
32
|
+
throttle = props.throttle,
|
|
33
|
+
minDistance = props.minDistance,
|
|
34
|
+
backgroundColor = props.backgroundColor,
|
|
35
|
+
penColor = props.penColor,
|
|
36
|
+
velocityFilterWeight = props.velocityFilterWeight,
|
|
37
|
+
onBegin = props.onBegin,
|
|
38
|
+
_onEnd = props.onEnd,
|
|
39
|
+
onChange = props.onChange;
|
|
40
|
+
(0, _react.useEffect)(function () {
|
|
41
|
+
signaturePad.current = new _signature_pad["default"](canvasRef.current, {
|
|
42
|
+
dotSize: dotSize,
|
|
43
|
+
minWidth: minWidth,
|
|
44
|
+
maxWidth: maxWidth,
|
|
45
|
+
throttle: throttle,
|
|
46
|
+
minDistance: minDistance,
|
|
47
|
+
backgroundColor: backgroundColor,
|
|
48
|
+
penColor: penColor,
|
|
49
|
+
velocityFilterWeight: velocityFilterWeight,
|
|
50
|
+
onBegin: onBegin,
|
|
51
|
+
onEnd: function onEnd() {
|
|
52
|
+
var dataUri = signaturePad.current.toDataURL();
|
|
53
|
+
var encodedImage = dataUri.split(',')[1];
|
|
54
|
+
onChange && onChange(encodedImage);
|
|
55
|
+
_onEnd && _onEnd();
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
resizeCanvas();
|
|
59
|
+
window.addEventListener('resize', (0, _lodash["default"])(resizeCanvas, 150));
|
|
60
|
+
return function () {
|
|
61
|
+
window.removeEventListener('resize', (0, _lodash["default"])(resizeCanvas, 150));
|
|
62
|
+
};
|
|
63
|
+
}, []);
|
|
64
|
+
|
|
65
|
+
function resizeCanvas() {
|
|
66
|
+
var ratio = Math.max(window.devicePixelRatio || 1, 1);
|
|
67
|
+
var canvas = canvasRef.current;
|
|
68
|
+
|
|
69
|
+
if (canvas) {
|
|
70
|
+
canvas.width = canvas.offsetWidth * ratio;
|
|
71
|
+
canvas.height = canvas.offsetHeight * ratio;
|
|
72
|
+
canvas.getContext('2d').scale(ratio, ratio);
|
|
73
|
+
clear();
|
|
74
|
+
}
|
|
75
|
+
} // 清空
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
var clear = function clear() {
|
|
79
|
+
signaturePad.current.clear();
|
|
80
|
+
}; // 撤销
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
var undo = function undo() {
|
|
84
|
+
var data = signaturePad.current.toData();
|
|
85
|
+
|
|
86
|
+
if (data) {
|
|
87
|
+
data.pop();
|
|
88
|
+
signaturePad.current.fromData(data);
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
93
|
+
className: "vtx-signature",
|
|
94
|
+
ref: ref
|
|
95
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
96
|
+
className: "vtx-signature--body"
|
|
97
|
+
}, /*#__PURE__*/_react["default"].createElement("canvas", {
|
|
98
|
+
ref: canvasRef
|
|
99
|
+
})), /*#__PURE__*/_react["default"].createElement("div", {
|
|
100
|
+
className: "vtx-signature--footer"
|
|
101
|
+
}, /*#__PURE__*/_react["default"].createElement(_button["default"], {
|
|
102
|
+
size: "small",
|
|
103
|
+
onClick: clear
|
|
104
|
+
}, "\u6E05\u7A7A"), /*#__PURE__*/_react["default"].createElement(_button["default"], {
|
|
105
|
+
size: "small",
|
|
106
|
+
onClick: undo
|
|
107
|
+
}, "\u64A4\u9500")));
|
|
108
|
+
});
|
|
109
|
+
var _default = VtxSignature;
|
|
110
|
+
exports["default"] = _default;
|
|
111
|
+
VtxSignature.propTypes = {
|
|
112
|
+
dotSize: _propTypes["default"].oneOfType([_propTypes["default"].func, _propTypes["default"].number]),
|
|
113
|
+
minWidth: _propTypes["default"].number,
|
|
114
|
+
maxWidth: _propTypes["default"].number,
|
|
115
|
+
throttle: _propTypes["default"].number,
|
|
116
|
+
minDistance: _propTypes["default"].number,
|
|
117
|
+
backgroundColor: _propTypes["default"].string,
|
|
118
|
+
penColor: _propTypes["default"].string,
|
|
119
|
+
velocityFilterWeight: _propTypes["default"].number,
|
|
120
|
+
onBegin: _propTypes["default"].func,
|
|
121
|
+
onEnd: _propTypes["default"].func,
|
|
122
|
+
onChange: _propTypes["default"].func
|
|
123
|
+
};
|
|
124
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["vtx-signature/index.jsx"],"names":["VtxSignature","props","ref","canvasRef","signaturePad","dotSize","minWidth","maxWidth","throttle","minDistance","backgroundColor","penColor","velocityFilterWeight","onBegin","onEnd","onChange","current","SignaturePad","dataUri","toDataURL","encodedImage","split","resizeCanvas","window","addEventListener","removeEventListener","ratio","Math","max","devicePixelRatio","canvas","width","offsetWidth","height","offsetHeight","getContext","scale","clear","undo","data","toData","pop","fromData","propTypes","PropTypes","oneOfType","func","number","string"],"mappings":"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","sourcesContent":["import React, { forwardRef, useRef, useEffect } from 'react';\nimport SignaturePad from 'signature_pad';\nimport Button from 'antd/es/button';\nimport debounce from 'lodash.debounce';\nimport PropTypes from 'prop-types';\n\nconst VtxSignature = forwardRef((props, ref) => {\n const canvasRef = useRef();\n const signaturePad = useRef();\n const {\n dotSize,\n minWidth,\n maxWidth,\n throttle,\n minDistance,\n backgroundColor,\n penColor,\n velocityFilterWeight,\n onBegin,\n onEnd,\n onChange,\n } = props;\n\n useEffect(() => {\n signaturePad.current = new SignaturePad(canvasRef.current, {\n dotSize,\n minWidth,\n maxWidth,\n throttle,\n minDistance,\n backgroundColor,\n penColor,\n velocityFilterWeight,\n onBegin,\n onEnd() {\n const dataUri = signaturePad.current.toDataURL();\n const encodedImage = dataUri.split(',')[1];\n\n onChange && onChange(encodedImage);\n onEnd && onEnd();\n },\n });\n resizeCanvas();\n window.addEventListener('resize', debounce(resizeCanvas, 150));\n return () => {\n window.removeEventListener('resize', debounce(resizeCanvas, 150));\n };\n }, []);\n\n function resizeCanvas() {\n const ratio = Math.max(window.devicePixelRatio || 1, 1);\n const canvas = canvasRef.current;\n if (canvas) {\n canvas.width = canvas.offsetWidth * ratio;\n canvas.height = canvas.offsetHeight * ratio;\n canvas.getContext('2d').scale(ratio, ratio);\n clear();\n }\n }\n\n // 清空\n const clear = () => {\n signaturePad.current.clear();\n };\n\n // 撤销\n const undo = () => {\n const data = signaturePad.current.toData();\n if (data) {\n data.pop();\n signaturePad.current.fromData(data);\n }\n };\n\n return (\n <div className=\"vtx-signature\" ref={ref}>\n <div className=\"vtx-signature--body\">\n <canvas ref={canvasRef} />\n </div>\n <div className=\"vtx-signature--footer\">\n <Button size=\"small\" onClick={clear}>\n 清空\n </Button>\n <Button size=\"small\" onClick={undo}>\n 撤销\n </Button>\n </div>\n </div>\n );\n});\n\nexport default VtxSignature;\n\nVtxSignature.propTypes = {\n dotSize: PropTypes.oneOfType([PropTypes.func, PropTypes.number]),\n minWidth: PropTypes.number,\n maxWidth: PropTypes.number,\n throttle: PropTypes.number,\n minDistance: PropTypes.number,\n backgroundColor: PropTypes.string,\n penColor: PropTypes.string,\n velocityFilterWeight: PropTypes.number,\n onBegin: PropTypes.func,\n onEnd: PropTypes.func,\n onChange: PropTypes.func,\n};\n"],"file":"index.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["vtx-signature/style/index.js"],"names":[],"mappings":";;AAAA;;AACA;;AACA","sourcesContent":["import 'antd/es/button/style/css';\nimport 'antd/es/message/style/css';\nimport './index.less';\n"],"file":"css.js"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
.vtx-signature {
|
|
2
|
+
position: relative;
|
|
3
|
+
display: -webkit-box;
|
|
4
|
+
display: -ms-flexbox;
|
|
5
|
+
display: flex;
|
|
6
|
+
-webkit-box-orient: vertical;
|
|
7
|
+
-webkit-box-direction: normal;
|
|
8
|
+
-ms-flex-direction: column;
|
|
9
|
+
flex-direction: column;
|
|
10
|
+
height: 300px;
|
|
11
|
+
padding: 16px;
|
|
12
|
+
background-color: #fff;
|
|
13
|
+
border: 1px solid #f4f4f4;
|
|
14
|
+
border-radius: 4px;
|
|
15
|
+
}
|
|
16
|
+
.vtx-signature--body {
|
|
17
|
+
position: relative;
|
|
18
|
+
height: 100%;
|
|
19
|
+
border: 2px dotted #c1c1c1;
|
|
20
|
+
}
|
|
21
|
+
.vtx-signature--body canvas {
|
|
22
|
+
position: absolute;
|
|
23
|
+
top: 0;
|
|
24
|
+
left: 0;
|
|
25
|
+
width: 100%;
|
|
26
|
+
height: 100%;
|
|
27
|
+
border-radius: 4px;
|
|
28
|
+
}
|
|
29
|
+
.vtx-signature--footer {
|
|
30
|
+
margin-top: 8px;
|
|
31
|
+
line-height: 1;
|
|
32
|
+
}
|
|
33
|
+
.vtx-signature--footer button + button {
|
|
34
|
+
margin-left: 8px;
|
|
35
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["vtx-signature/style/index.js"],"names":[],"mappings":";;AAAA;;AACA;;AACA","sourcesContent":["import 'antd/es/button/style/css';\nimport 'antd/es/message/style/css';\nimport './index.less';\n"],"file":"index.js"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
@prefix-cls: vtx-signature;
|
|
2
|
+
|
|
3
|
+
.@{prefix-cls} {
|
|
4
|
+
position: relative;
|
|
5
|
+
display: flex;
|
|
6
|
+
flex-direction: column;
|
|
7
|
+
height: 300px;
|
|
8
|
+
padding: 16px;
|
|
9
|
+
background-color: #fff;
|
|
10
|
+
border: 1px solid #f4f4f4;
|
|
11
|
+
border-radius: 4px;
|
|
12
|
+
&--body {
|
|
13
|
+
position: relative;
|
|
14
|
+
height: 100%;
|
|
15
|
+
border: 2px dotted #c1c1c1;
|
|
16
|
+
canvas {
|
|
17
|
+
position: absolute;
|
|
18
|
+
top: 0;
|
|
19
|
+
left: 0;
|
|
20
|
+
width: 100%;
|
|
21
|
+
height: 100%;
|
|
22
|
+
border-radius: 4px;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
&--footer {
|
|
26
|
+
margin-top: 8px;
|
|
27
|
+
line-height: 1;
|
|
28
|
+
button + button {
|
|
29
|
+
margin-left: 8px;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -110,6 +110,7 @@ function VtxSplitPane(props) {
|
|
|
110
110
|
document.removeEventListener('mouseup', onMouseUp);
|
|
111
111
|
document.removeEventListener('mousemove', onMouseMove);
|
|
112
112
|
document.removeEventListener('touchmove', onTouchMove);
|
|
113
|
+
window.onresize = '';
|
|
113
114
|
};
|
|
114
115
|
}, [primary]);
|
|
115
116
|
(0, _react.useLayoutEffect)(function () {
|