@vtx/components 2.5.2 → 2.5.6
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 +87 -0
- package/lib/vtx-combogrid/Combogrid.js +5 -2
- package/lib/vtx-combogrid/Combogrid.js.map +1 -1
- package/lib/vtx-form-layout/index.js +17 -3
- package/lib/vtx-form-layout/index.js.map +1 -1
- package/lib/vtx-form-layout/style/css.js +2 -0
- package/lib/vtx-form-layout/style/css.js.map +1 -1
- package/lib/vtx-form-layout/style/index.js +2 -0
- package/lib/vtx-form-layout/style/index.js.map +1 -1
- package/lib/vtx-modal/style/index.css +0 -1
- package/lib/vtx-modal/style/index.less +0 -1
- package/lib/vtx-search/style/index.css +1 -0
- package/lib/vtx-search/style/index.less +1 -0
- package/lib/vtx-search-map-input/index.js +2 -2
- package/lib/vtx-search-map-input/index.js.map +1 -1
- package/lib/vtx-upload/index.js +83 -37
- package/lib/vtx-upload/index.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,93 @@
|
|
|
1
|
+
## [2.5.6](https://git.cloudhw.cn:3443/front-end/react-components/compare/2.5.5...2.5.6) (2021-12-31)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### 🐛 Bug Fixes
|
|
5
|
+
|
|
6
|
+
* 修复上传单选时,不能删除的问题 ([cd080e2](https://git.cloudhw.cn:3443/front-end/react-components/commit/cd080e2)) by: **xuzhengyun**
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## [2.5.5](https://git.cloudhw.cn:3443/front-end/react-components/compare/2.5.4...2.5.5) (2021-12-28)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### ✨ Features
|
|
14
|
+
|
|
15
|
+
* 数据表格下拉框VtxCombogrid查询参数支持自定义getFieldDecorator.options ([f583594](https://git.cloudhw.cn:3443/front-end/react-components/commit/f583594)) by: **gongjinhua**
|
|
16
|
+
* 表单布局VtxFormLayout内置骨架屏 ([6b4a1eb](https://git.cloudhw.cn:3443/front-end/react-components/commit/6b4a1eb)) by: **gongjinhua**
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
### 🎫 Chores
|
|
20
|
+
|
|
21
|
+
* release v2.5.5 ([a0be584](https://git.cloudhw.cn:3443/front-end/react-components/commit/a0be584)) by: **gongjinhua**
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
### 🐛 Bug Fixes
|
|
25
|
+
|
|
26
|
+
* 修复VtxUpload上传组件当fileList内值无type类型时报错问题 ([02b975e](https://git.cloudhw.cn:3443/front-end/react-components/commit/02b975e)) by: **gongjinhua**
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
### 📝 Documentation
|
|
30
|
+
|
|
31
|
+
* 报表容器VtxRpsFrame添加使用注意提醒 ([4690dd0](https://git.cloudhw.cn:3443/front-end/react-components/commit/4690dd0)) by: **gongjinhua**
|
|
32
|
+
* 文档版本号修改 ([f67e0eb](https://git.cloudhw.cn:3443/front-end/react-components/commit/f67e0eb)) by: **gongjinhua**
|
|
33
|
+
* 树选择VtxZtreeSelect添加父子节点选中状态不再关联示例 ([33082f4](https://git.cloudhw.cn:3443/front-end/react-components/commit/33082f4)) by: **gongjinhua**
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
## [2.5.4](https://git.cloudhw.cn:3443/front-end/react-components/compare/2.5.3...2.5.4) (2021-12-20)
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
### ✨ Features
|
|
41
|
+
|
|
42
|
+
* 上传超过限制数提示信息添加防抖 ([01e4bf0](https://git.cloudhw.cn:3443/front-end/react-components/commit/01e4bf0)) by: **gongjinhua**
|
|
43
|
+
* 查询布局展开设置悬浮pointer样式 ([0d9fb91](https://git.cloudhw.cn:3443/front-end/react-components/commit/0d9fb91)) by: **gongjinhua**
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
### 🎫 Chores
|
|
47
|
+
|
|
48
|
+
* release v2.5.4 ([548c39d](https://git.cloudhw.cn:3443/front-end/react-components/commit/548c39d)) by: **gongjinhua**
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
### 🐛 Bug Fixes
|
|
52
|
+
|
|
53
|
+
* 修复多选,上传文件多余限制数量问题,预览图片仅限图片类型 ([766d537](https://git.cloudhw.cn:3443/front-end/react-components/commit/766d537)) by: **xuzhengyun**
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
### 📝 Documentation
|
|
57
|
+
|
|
58
|
+
* 报表容器VtxRpsFrame修改参数data_param类型为object|array ([64ecec4](https://git.cloudhw.cn:3443/front-end/react-components/commit/64ecec4)) by: **gongjinhua**
|
|
59
|
+
* 颜色选择器添加placement说明 ([25a957b](https://git.cloudhw.cn:3443/front-end/react-components/commit/25a957b)) by: **gongjinhua**
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
## [2.5.3](https://git.cloudhw.cn:3443/front-end/react-components/compare/2.5.2...2.5.3) (2021-12-04)
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
### ✨ Features
|
|
67
|
+
|
|
68
|
+
* http请求入参字段改为data ([107e45e](https://git.cloudhw.cn:3443/front-end/react-components/commit/107e45e)) by: **gongjinhua**
|
|
69
|
+
* 模态框VtxModal内容区域背景色默认为#ffffff ([bb328c6](https://git.cloudhw.cn:3443/front-end/react-components/commit/bb328c6)) by: **gongjinhua**
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
### 🎫 Chores
|
|
73
|
+
|
|
74
|
+
* release v2.5.3 ([792f871](https://git.cloudhw.cn:3443/front-end/react-components/commit/792f871)) by: **gongjinhua**
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
### 📝 Documentation
|
|
78
|
+
|
|
79
|
+
* 去除无效代码 ([b54db82](https://git.cloudhw.cn:3443/front-end/react-components/commit/b54db82)) by: **gongjinhua**
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
|
|
1
83
|
## [2.5.2](https://git.cloudhw.cn:3443/front-end/react-components/compare/2.5.1...2.5.2) (2021-12-02)
|
|
2
84
|
|
|
3
85
|
|
|
86
|
+
### 🎫 Chores
|
|
87
|
+
|
|
88
|
+
* release v2.5.2 ([33a8ea1](https://git.cloudhw.cn:3443/front-end/react-components/commit/33a8ea1)) by: **gongjinhua**
|
|
89
|
+
|
|
90
|
+
|
|
4
91
|
### 🐛 Bug Fixes
|
|
5
92
|
|
|
6
93
|
* 修复VtxFormLayout表单布局Pane和Card高度问题 ([6776b9a](https://git.cloudhw.cn:3443/front-end/react-components/commit/6776b9a)) by: **gongjinhua**
|
|
@@ -99,6 +99,7 @@ function VtxCombogrid(props, ref) {
|
|
|
99
99
|
startIndex: (current - 1) * pageSize + 1,
|
|
100
100
|
size: 'small',
|
|
101
101
|
headFootHeight: 95,
|
|
102
|
+
claerRowSelection: clearSelectedRow,
|
|
102
103
|
pagination: _objectSpread(_objectSpread({}, pagination), {}, {
|
|
103
104
|
showSizeChanger: false,
|
|
104
105
|
onChange: function onChange() {
|
|
@@ -168,7 +169,9 @@ function VtxCombogrid(props, ref) {
|
|
|
168
169
|
var renderFormItem = function renderFormItem(field) {
|
|
169
170
|
var name = field.name,
|
|
170
171
|
label = field.label,
|
|
171
|
-
render = field.render
|
|
172
|
+
render = field.render,
|
|
173
|
+
_field$fieldDecorator = field.fieldDecoratorOptions,
|
|
174
|
+
fieldDecoratorOptions = _field$fieldDecorator === void 0 ? {} : _field$fieldDecorator;
|
|
172
175
|
return /*#__PURE__*/_react["default"].createElement(_col["default"], {
|
|
173
176
|
span: 12,
|
|
174
177
|
key: name
|
|
@@ -180,7 +183,7 @@ function VtxCombogrid(props, ref) {
|
|
|
180
183
|
wrapperCol: {
|
|
181
184
|
span: 16
|
|
182
185
|
}
|
|
183
|
-
}, getFieldDecorator(name)(render && render(form))));
|
|
186
|
+
}, getFieldDecorator(name, fieldDecoratorOptions)(render && render(form))));
|
|
184
187
|
};
|
|
185
188
|
|
|
186
189
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["vtx-combogrid/Combogrid.jsx"],"names":["VtxCombogrid","props","ref","more","setMore","prefixCls","setPopoverVisible","multiple","onChange","getTableData","columns","searchForms","form","selectedRowKeys","setSelectedRowKeys","spread","rest","getFieldDecorator","defaultPageSize","tableProps","search","submit","reset","pagination","current","pageSize","clearSelectedRow","newTableProps","startIndex","size","headFootHeight","showSizeChanger","onRow","record","onClick","rowSelection","selectedRows","query","length","clear","formLen","isMore","moreSearchForm","slice","renderFormItem","field","name","label","render","span","map","item","idx","Form","create","React","forwardRef","propTypes","PropTypes","string","func","isRequired","array","object","bool","defaultSelectedRowKeys"],"mappings":"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","sourcesContent":["import React, { useState, useImperativeHandle } from 'react';\nimport Form from 'antd/es/form';\nimport Row from 'antd/es/row';\nimport Col from 'antd/es/col';\nimport Button from 'antd/es/button';\nimport useAntdTable from 'ahooks/es/useAntdTable';\nimport PropTypes from 'prop-types';\nimport VtxDatagrid from '../vtx-datagrid';\n\nfunction VtxCombogrid(props, ref) {\n const [more, setMore] = useState(false);\n const {\n prefixCls,\n setPopoverVisible,\n multiple,\n onChange,\n getTableData,\n columns,\n searchForms = [],\n form,\n selectedRowKeys,\n setSelectedRowKeys,\n spread,\n ...rest\n } = props;\n const { getFieldDecorator } = form;\n\n const { tableProps, search } = useAntdTable(getTableData, {\n defaultPageSize: 10,\n form,\n });\n const { submit, reset } = search;\n\n // 表格\n const { pagination } = tableProps;\n const { current, pageSize } = pagination;\n\n const clearSelectedRow = () => {\n onChange && onChange([]);\n setSelectedRowKeys([]);\n };\n\n let newTableProps = {\n ...tableProps,\n columns,\n startIndex: (current - 1) * pageSize + 1,\n size: 'small',\n headFootHeight: 95,\n pagination: {\n ...pagination,\n showSizeChanger: false,\n onChange() {\n if (!spread) {\n clearSelectedRow();\n }\n },\n },\n onRow: record => {\n if (multiple) {\n return {};\n }\n return {\n onClick: () => {\n onChange && onChange([record]);\n setPopoverVisible(false);\n },\n };\n },\n };\n\n if (multiple) {\n newTableProps = {\n ...newTableProps,\n rowSelection: {\n selectedRowKeys,\n onChange(selectedRowKeys, selectedRows) {\n setSelectedRowKeys(selectedRowKeys);\n onChange && onChange(selectedRows);\n },\n },\n };\n }\n\n // 查询和清空会重置selectedRowKeys,因此也需清空文本中的value值\n const query = () => {\n submit();\n if (multiple && selectedRowKeys.length) {\n clearSelectedRow();\n }\n };\n const clear = () => {\n reset();\n if (multiple && selectedRowKeys.length) {\n clearSelectedRow();\n }\n };\n\n // 暴露给父组件使用\n useImperativeHandle(ref, () => ({\n clear,\n }));\n\n // 查询条件是否超过2个,超过2个默认隐藏\n const formLen = searchForms.length;\n const isMore = formLen > 2;\n let moreSearchForm = [];\n if (isMore) {\n moreSearchForm = searchForms.slice(2);\n }\n\n const renderFormItem = field => {\n const { name, label, render } = field;\n return (\n <Col span={12} key={name}>\n <Form.Item label={label} labelCol={{ span: 8 }} wrapperCol={{ span: 16 }}>\n {getFieldDecorator(name)(render && render(form))}\n </Form.Item>\n </Col>\n );\n };\n\n return (\n <div className={`${prefixCls}-popover`} ref={ref}>\n {formLen > 0 && (\n <Row gutter={8}>\n <Col span={18}>\n <Row>\n {searchForms.map((item, idx) => {\n if (idx < 2) {\n return renderFormItem(item);\n }\n })}\n </Row>\n {more && (\n <Row>\n {moreSearchForm.map(item => {\n return renderFormItem(item);\n })}\n </Row>\n )}\n </Col>\n <Col span={6} className={`${prefixCls}-btns`}>\n <Button onClick={query} type=\"primary\" size=\"small\">\n 查询\n </Button>\n <Button onClick={clear} size=\"small\">\n 清空\n </Button>\n {isMore && (\n <Button\n icon=\"more\"\n size=\"small\"\n title=\"更多\"\n onClick={() => setMore(!more)}\n />\n )}\n </Col>\n </Row>\n )}\n <div className={`${prefixCls}-main`}>\n <VtxDatagrid toolbar={false} {...newTableProps} {...rest} />\n </div>\n </div>\n );\n}\n\nexport default Form.create()(React.forwardRef(VtxCombogrid));\n\nVtxCombogrid.propTypes = {\n prefixCls: PropTypes.string,\n getTableData: PropTypes.func.isRequired,\n columns: PropTypes.array,\n searchForms: PropTypes.array,\n form: PropTypes.object,\n multiple: PropTypes.bool,\n onChange: PropTypes.func,\n setPopoverVisible: PropTypes.func,\n selectedRowKeys: PropTypes.array,\n setSelectedRowKeys: PropTypes.func,\n spread: PropTypes.bool,\n defaultSelectedRowKeys: PropTypes.array,\n};\n"],"file":"Combogrid.js"}
|
|
1
|
+
{"version":3,"sources":["vtx-combogrid/Combogrid.jsx"],"names":["VtxCombogrid","props","ref","more","setMore","prefixCls","setPopoverVisible","multiple","onChange","getTableData","columns","searchForms","form","selectedRowKeys","setSelectedRowKeys","spread","rest","getFieldDecorator","defaultPageSize","tableProps","search","submit","reset","pagination","current","pageSize","clearSelectedRow","newTableProps","startIndex","size","headFootHeight","claerRowSelection","showSizeChanger","onRow","record","onClick","rowSelection","selectedRows","query","length","clear","formLen","isMore","moreSearchForm","slice","renderFormItem","field","name","label","render","fieldDecoratorOptions","span","map","item","idx","Form","create","React","forwardRef","propTypes","PropTypes","string","func","isRequired","array","object","bool","defaultSelectedRowKeys"],"mappings":"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","sourcesContent":["import React, { useState, useImperativeHandle } from 'react';\nimport Form from 'antd/es/form';\nimport Row from 'antd/es/row';\nimport Col from 'antd/es/col';\nimport Button from 'antd/es/button';\nimport useAntdTable from 'ahooks/es/useAntdTable';\nimport PropTypes from 'prop-types';\nimport VtxDatagrid from '../vtx-datagrid';\n\nfunction VtxCombogrid(props, ref) {\n const [more, setMore] = useState(false);\n const {\n prefixCls,\n setPopoverVisible,\n multiple,\n onChange,\n getTableData,\n columns,\n searchForms = [],\n form,\n selectedRowKeys,\n setSelectedRowKeys,\n spread,\n ...rest\n } = props;\n const { getFieldDecorator } = form;\n\n const { tableProps, search } = useAntdTable(getTableData, {\n defaultPageSize: 10,\n form,\n });\n const { submit, reset } = search;\n\n // 表格\n const { pagination } = tableProps;\n const { current, pageSize } = pagination;\n\n const clearSelectedRow = () => {\n onChange && onChange([]);\n setSelectedRowKeys([]);\n };\n\n let newTableProps = {\n ...tableProps,\n columns,\n startIndex: (current - 1) * pageSize + 1,\n size: 'small',\n headFootHeight: 95,\n claerRowSelection: clearSelectedRow,\n pagination: {\n ...pagination,\n showSizeChanger: false,\n onChange() {\n if (!spread) {\n clearSelectedRow();\n }\n },\n },\n onRow: record => {\n if (multiple) {\n return {};\n }\n return {\n onClick: () => {\n onChange && onChange([record]);\n setPopoverVisible(false);\n },\n };\n },\n };\n\n if (multiple) {\n newTableProps = {\n ...newTableProps,\n rowSelection: {\n selectedRowKeys,\n onChange(selectedRowKeys, selectedRows) {\n setSelectedRowKeys(selectedRowKeys);\n onChange && onChange(selectedRows);\n },\n },\n };\n }\n\n // 查询和清空会重置selectedRowKeys,因此也需清空文本中的value值\n const query = () => {\n submit();\n if (multiple && selectedRowKeys.length) {\n clearSelectedRow();\n }\n };\n const clear = () => {\n reset();\n if (multiple && selectedRowKeys.length) {\n clearSelectedRow();\n }\n };\n\n // 暴露给父组件使用\n useImperativeHandle(ref, () => ({\n clear,\n }));\n\n // 查询条件是否超过2个,超过2个默认隐藏\n const formLen = searchForms.length;\n const isMore = formLen > 2;\n let moreSearchForm = [];\n if (isMore) {\n moreSearchForm = searchForms.slice(2);\n }\n\n const renderFormItem = field => {\n const { name, label, render, fieldDecoratorOptions = {} } = field;\n return (\n <Col span={12} key={name}>\n <Form.Item label={label} labelCol={{ span: 8 }} wrapperCol={{ span: 16 }}>\n {getFieldDecorator(name, fieldDecoratorOptions)(render && render(form))}\n </Form.Item>\n </Col>\n );\n };\n\n return (\n <div className={`${prefixCls}-popover`} ref={ref}>\n {formLen > 0 && (\n <Row gutter={8}>\n <Col span={18}>\n <Row>\n {searchForms.map((item, idx) => {\n if (idx < 2) {\n return renderFormItem(item);\n }\n })}\n </Row>\n {more && (\n <Row>\n {moreSearchForm.map(item => {\n return renderFormItem(item);\n })}\n </Row>\n )}\n </Col>\n <Col span={6} className={`${prefixCls}-btns`}>\n <Button onClick={query} type=\"primary\" size=\"small\">\n 查询\n </Button>\n <Button onClick={clear} size=\"small\">\n 清空\n </Button>\n {isMore && (\n <Button\n icon=\"more\"\n size=\"small\"\n title=\"更多\"\n onClick={() => setMore(!more)}\n />\n )}\n </Col>\n </Row>\n )}\n <div className={`${prefixCls}-main`}>\n <VtxDatagrid toolbar={false} {...newTableProps} {...rest} />\n </div>\n </div>\n );\n}\n\nexport default Form.create()(React.forwardRef(VtxCombogrid));\n\nVtxCombogrid.propTypes = {\n prefixCls: PropTypes.string,\n getTableData: PropTypes.func.isRequired,\n columns: PropTypes.array,\n searchForms: PropTypes.array,\n form: PropTypes.object,\n multiple: PropTypes.bool,\n onChange: PropTypes.func,\n setPopoverVisible: PropTypes.func,\n selectedRowKeys: PropTypes.array,\n setSelectedRowKeys: PropTypes.func,\n spread: PropTypes.bool,\n defaultSelectedRowKeys: PropTypes.array,\n};\n"],"file":"Combogrid.js"}
|
|
@@ -11,6 +11,10 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
11
11
|
|
|
12
12
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
13
13
|
|
|
14
|
+
var _lodash = _interopRequireDefault(require("lodash.merge"));
|
|
15
|
+
|
|
16
|
+
var _skeleton = _interopRequireDefault(require("antd/es/skeleton"));
|
|
17
|
+
|
|
14
18
|
var _Row = _interopRequireDefault(require("./Row"));
|
|
15
19
|
|
|
16
20
|
var _FormItem = _interopRequireDefault(require("./FormItem"));
|
|
@@ -33,13 +37,22 @@ function VtxFormLayout(props) {
|
|
|
33
37
|
mode = props.mode,
|
|
34
38
|
_props$layout = props.layout,
|
|
35
39
|
layout = _props$layout === void 0 ? 'vertical' : _props$layout,
|
|
36
|
-
card = props.card
|
|
40
|
+
card = props.card,
|
|
41
|
+
skeleton = props.skeleton;
|
|
37
42
|
var store = {
|
|
38
43
|
cols: cols,
|
|
39
44
|
labelColSpan: labelColSpan,
|
|
40
45
|
mode: mode,
|
|
41
46
|
layout: layout
|
|
42
47
|
};
|
|
48
|
+
var defaultSkeleton = {
|
|
49
|
+
loading: false,
|
|
50
|
+
title: false,
|
|
51
|
+
paragraph: {
|
|
52
|
+
width: '100%',
|
|
53
|
+
rows: 4
|
|
54
|
+
}
|
|
55
|
+
};
|
|
43
56
|
return /*#__PURE__*/_react["default"].createElement(_context.StoreCtx.Provider, {
|
|
44
57
|
value: store
|
|
45
58
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
@@ -48,7 +61,7 @@ function VtxFormLayout(props) {
|
|
|
48
61
|
'vtx-form-layout-view': mode === 'view',
|
|
49
62
|
'vtx-form-layout-has-card': card
|
|
50
63
|
})
|
|
51
|
-
}, props.children));
|
|
64
|
+
}, /*#__PURE__*/_react["default"].createElement(_skeleton["default"], (0, _lodash["default"])(defaultSkeleton, skeleton), props.children)));
|
|
52
65
|
}
|
|
53
66
|
|
|
54
67
|
VtxFormLayout.propTypes = {
|
|
@@ -57,7 +70,8 @@ VtxFormLayout.propTypes = {
|
|
|
57
70
|
mode: _propTypes["default"].oneOf(['view']),
|
|
58
71
|
layout: _propTypes["default"].oneOf(['horizontal', 'vertical']),
|
|
59
72
|
children: _propTypes["default"].node,
|
|
60
|
-
card: _propTypes["default"].bool
|
|
73
|
+
card: _propTypes["default"].bool,
|
|
74
|
+
skeleton: _propTypes["default"].object
|
|
61
75
|
};
|
|
62
76
|
VtxFormLayout.Row = _Row["default"];
|
|
63
77
|
VtxFormLayout.FormItem = _FormItem["default"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["vtx-form-layout/index.jsx"],"names":["VtxFormLayout","props","cols","labelColSpan","mode","layout","card","store","children","propTypes","PropTypes","number","oneOf","node","bool","Row","FormItem","Card","Pane","Divider"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAEA,SAASA,aAAT,CAAuBC,KAAvB,EAA8B;AAAA,
|
|
1
|
+
{"version":3,"sources":["vtx-form-layout/index.jsx"],"names":["VtxFormLayout","props","cols","labelColSpan","mode","layout","card","skeleton","store","defaultSkeleton","loading","title","paragraph","width","rows","children","propTypes","PropTypes","number","oneOf","node","bool","object","Row","FormItem","Card","Pane","Divider"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAEA,SAASA,aAAT,CAAuBC,KAAvB,EAA8B;AAAA,oBACwDA,KADxD,CAClBC,IADkB;AAAA,MAClBA,IADkB,4BACX,CADW;AAAA,4BACwDD,KADxD,CACRE,YADQ;AAAA,MACRA,YADQ,oCACO,CADP;AAAA,MACUC,IADV,GACwDH,KADxD,CACUG,IADV;AAAA,sBACwDH,KADxD,CACgBI,MADhB;AAAA,MACgBA,MADhB,8BACyB,UADzB;AAAA,MACqCC,IADrC,GACwDL,KADxD,CACqCK,IADrC;AAAA,MAC2CC,QAD3C,GACwDN,KADxD,CAC2CM,QAD3C;AAE1B,MAAMC,KAAK,GAAG;AACVN,IAAAA,IAAI,EAAJA,IADU;AAEVC,IAAAA,YAAY,EAAZA,YAFU;AAGVC,IAAAA,IAAI,EAAJA,IAHU;AAIVC,IAAAA,MAAM,EAANA;AAJU,GAAd;AAMA,MAAMI,eAAe,GAAG;AACpBC,IAAAA,OAAO,EAAE,KADW;AAEpBC,IAAAA,KAAK,EAAE,KAFa;AAGpBC,IAAAA,SAAS,EAAE;AACPC,MAAAA,KAAK,EAAE,MADA;AAEPC,MAAAA,IAAI,EAAE;AAFC;AAHS,GAAxB;AAQA,sBACI,gCAAC,iBAAD,CAAU,QAAV;AAAmB,IAAA,KAAK,EAAEN;AAA1B,kBACI;AACI,IAAA,SAAS,EAAE,4BAAW,iBAAX,EAA8B;AACrC,kCAA4BH,MAAM,KAAK,UAAX,IAAyBD,IAAI,KAAK,MADzB;AAErC,8BAAwBA,IAAI,KAAK,MAFI;AAGrC,kCAA4BE;AAHS,KAA9B;AADf,kBAOI,gCAAC,oBAAD,EAAc,wBAAMG,eAAN,EAAuBF,QAAvB,CAAd,EAAiDN,KAAK,CAACc,QAAvD,CAPJ,CADJ,CADJ;AAaH;;AAEDf,aAAa,CAACgB,SAAd,GAA0B;AACtBd,EAAAA,IAAI,EAAEe,sBAAUC,MADM;AAEtBf,EAAAA,YAAY,EAAEc,sBAAUC,MAFF;AAGtBd,EAAAA,IAAI,EAAEa,sBAAUE,KAAV,CAAgB,CAAC,MAAD,CAAhB,CAHgB;AAItBd,EAAAA,MAAM,EAAEY,sBAAUE,KAAV,CAAgB,CAAC,YAAD,EAAe,UAAf,CAAhB,CAJc;AAKtBJ,EAAAA,QAAQ,EAAEE,sBAAUG,IALE;AAMtBd,EAAAA,IAAI,EAAEW,sBAAUI,IANM;AAOtBd,EAAAA,QAAQ,EAAEU,sBAAUK;AAPE,CAA1B;AAUAtB,aAAa,CAACuB,GAAd,GAAoBA,eAApB;AACAvB,aAAa,CAACwB,QAAd,GAAyBA,oBAAzB;AACAxB,aAAa,CAACyB,IAAd,GAAqBA,gBAArB;AACAzB,aAAa,CAAC0B,IAAd,GAAqBA,gBAArB;AACA1B,aAAa,CAAC2B,OAAd,GAAwBA,mBAAxB;eAEe3B,a","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport merge from 'lodash.merge';\nimport Skeleton from 'antd/es/skeleton';\nimport Row from './Row';\nimport FormItem from './FormItem';\nimport Card from './Card';\nimport Pane from './Pane';\nimport Divider from './Divider';\nimport { StoreCtx } from './context';\n\nfunction VtxFormLayout(props) {\n const { cols = 2, labelColSpan = 8, mode, layout = 'vertical', card, skeleton } = props;\n const store = {\n cols,\n labelColSpan,\n mode,\n layout,\n };\n const defaultSkeleton = {\n loading: false,\n title: false,\n paragraph: {\n width: '100%',\n rows: 4,\n },\n };\n return (\n <StoreCtx.Provider value={store}>\n <div\n className={classnames('vtx-form-layout', {\n 'vtx-form-layout-vertical': layout === 'vertical' && mode !== 'view',\n 'vtx-form-layout-view': mode === 'view',\n 'vtx-form-layout-has-card': card,\n })}\n >\n <Skeleton {...merge(defaultSkeleton, skeleton)}>{props.children}</Skeleton>\n </div>\n </StoreCtx.Provider>\n );\n}\n\nVtxFormLayout.propTypes = {\n cols: PropTypes.number,\n labelColSpan: PropTypes.number,\n mode: PropTypes.oneOf(['view']),\n layout: PropTypes.oneOf(['horizontal', 'vertical']),\n children: PropTypes.node,\n card: PropTypes.bool,\n skeleton: PropTypes.object,\n};\n\nVtxFormLayout.Row = Row;\nVtxFormLayout.FormItem = FormItem;\nVtxFormLayout.Card = Card;\nVtxFormLayout.Pane = Pane;\nVtxFormLayout.Divider = Divider;\n\nexport default VtxFormLayout;\n"],"file":"index.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["vtx-form-layout/style/index.js"],"names":[],"mappings":";;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA","sourcesContent":["import 'antd/es/row/style/css';\nimport 'antd/es/col/style/css';\nimport 'antd/es/form/style/css';\nimport 'antd/es/icon/style/css';\nimport 'antd/es/tooltip/style/css';\nimport 'antd/es/card/style/css';\nimport 'antd/es/divider/style/css';\nimport './index.less';\n"],"file":"css.js"}
|
|
1
|
+
{"version":3,"sources":["vtx-form-layout/style/index.js"],"names":[],"mappings":";;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA","sourcesContent":["import 'antd/es/row/style/css';\nimport 'antd/es/col/style/css';\nimport 'antd/es/form/style/css';\nimport 'antd/es/icon/style/css';\nimport 'antd/es/tooltip/style/css';\nimport 'antd/es/card/style/css';\nimport 'antd/es/divider/style/css';\nimport 'antd/es/skeleton/style/css';\nimport './index.less';\n"],"file":"css.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["vtx-form-layout/style/index.js"],"names":[],"mappings":";;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA","sourcesContent":["import 'antd/es/row/style/css';\nimport 'antd/es/col/style/css';\nimport 'antd/es/form/style/css';\nimport 'antd/es/icon/style/css';\nimport 'antd/es/tooltip/style/css';\nimport 'antd/es/card/style/css';\nimport 'antd/es/divider/style/css';\nimport './index.less';\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["vtx-form-layout/style/index.js"],"names":[],"mappings":";;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA","sourcesContent":["import 'antd/es/row/style/css';\nimport 'antd/es/col/style/css';\nimport 'antd/es/form/style/css';\nimport 'antd/es/icon/style/css';\nimport 'antd/es/tooltip/style/css';\nimport 'antd/es/card/style/css';\nimport 'antd/es/divider/style/css';\nimport 'antd/es/skeleton/style/css';\nimport './index.less';\n"],"file":"index.js"}
|
|
@@ -91,7 +91,7 @@ var VtxSearchMapInput = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref
|
|
|
91
91
|
style = props.style;
|
|
92
92
|
(0, _react.useEffect)(function () {
|
|
93
93
|
_request["default"].get(getTenantByIdPath, {
|
|
94
|
-
|
|
94
|
+
data: {
|
|
95
95
|
parameters: JSON.stringify({
|
|
96
96
|
id: tenantId
|
|
97
97
|
})
|
|
@@ -122,7 +122,7 @@ var VtxSearchMapInput = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref
|
|
|
122
122
|
var onOk = function onOk(lglt) {
|
|
123
123
|
if (lglt) {
|
|
124
124
|
_request["default"].get(geoconvertPath, {
|
|
125
|
-
|
|
125
|
+
data: {
|
|
126
126
|
coordtype: mapInfo.coordinate,
|
|
127
127
|
location: lglt.join(',')
|
|
128
128
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["vtx-search-map-input/index.jsx"],"names":["DEFAULT_MAP_CENTER","GeoconvertPath","GetTenantByIdPath","TENANTID","VtxSearchMapInput","props","ref","visible","setVisible","mapType","mapCenter","coordinate","mapServer","mapInfo","setMapInfo","address","setAddress","lglt","setLglt","value","location","onChange","geoconvertPath","getTenantByIdPath","tenantId","disabled","placeholder","style","http","get","
|
|
1
|
+
{"version":3,"sources":["vtx-search-map-input/index.jsx"],"names":["DEFAULT_MAP_CENTER","GeoconvertPath","GetTenantByIdPath","TENANTID","VtxSearchMapInput","props","ref","visible","setVisible","mapType","mapCenter","coordinate","mapServer","mapInfo","setMapInfo","address","setAddress","lglt","setLglt","value","location","onChange","geoconvertPath","getTenantByIdPath","tenantId","disabled","placeholder","style","http","get","data","parameters","JSON","stringify","id","then","res","result","mapDefJson","longitudeDone","latitudeDone","Object","prototype","toString","call","mapJson","parse","map","item","defaultMap","onOk","coordtype","join","longitude","latitude","handleChange","e","target","propTypes","PropTypes","string","array","func","bool","object"],"mappings":"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","sourcesContent":["import React, { forwardRef, useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Input from 'antd/es/input';\nimport Tooltip from 'antd/es/tooltip';\nimport VtxSearchMap from '@vtx/map/lib/VtxSearchMap';\nimport http from '@vtx/utils/lib/request';\nimport getUrlParam from '@vtx/utils/lib/getUrlParam';\n\n// 默认经纬度\nconst DEFAULT_MAP_CENTER = [116.404, 39.915];\n// 通过经纬度获取地址信息\nconst GeoconvertPath = '/vortexapi/rest/lbs/geoconvert/v2';\n// 获取租户信息\nconst GetTenantByIdPath = '/cloud/management/rest/np/tenant/getTenantById';\n// 租户ID\nconst TENANTID = getUrlParam('tenantId');\n\nconst VtxSearchMapInput = forwardRef((props, ref) => {\n const [visible, setVisible] = useState(false);\n const [mapInfo, setMapInfo] = useState({\n mapType: '',\n mapCenter: DEFAULT_MAP_CENTER,\n coordinate: '',\n mapServer: '',\n });\n const [address, setAddress] = useState();\n const [lglt, setLglt] = useState([]);\n const {\n value,\n location = [],\n onChange,\n geoconvertPath = GeoconvertPath,\n getTenantByIdPath = GetTenantByIdPath,\n tenantId = TENANTID,\n disabled,\n placeholder = '请获取地址信息',\n style,\n } = props;\n\n useEffect(() => {\n http.get(getTenantByIdPath, {\n data: { parameters: JSON.stringify({ id: tenantId }) },\n }).then(res => {\n if (res?.result === 0) {\n const { mapDefJson, longitudeDone, latitudeDone } = res.data || {};\n if (Object.prototype.toString.call(mapDefJson) === '[object String]') {\n const mapJson = JSON.parse(mapDefJson);\n mapJson.map(item => {\n if (item.defaultMap) {\n setMapInfo({\n mapType: item.mapType,\n coordinate: item.coordinate,\n mapCenter:\n latitudeDone && longitudeDone\n ? [longitudeDone, latitudeDone]\n : [],\n });\n }\n });\n }\n }\n });\n }, []);\n\n const onOk = lglt => {\n if (lglt) {\n http.get(geoconvertPath, {\n data: {\n coordtype: mapInfo.coordinate,\n location: lglt.join(','),\n },\n }).then(res => {\n const address = res?.data?.address;\n onChange &&\n onChange(address, {\n lglt,\n longitude: lglt[0],\n latitude: lglt[1],\n });\n });\n } else {\n address && setAddress();\n }\n setLglt(lglt || []);\n setVisible(false);\n };\n\n const handleChange = e => {\n onChange &&\n onChange(e.target.value, {\n lglt,\n longitude: lglt[0],\n latitude: lglt[1],\n });\n };\n\n return (\n <>\n <Tooltip title={value}>\n <Input\n ref={ref}\n placeholder={placeholder}\n addonAfter={!disabled && <a onClick={() => setVisible(true)}>去地图</a>}\n value={value}\n disabled={disabled}\n style={style}\n onChange={handleChange}\n />\n </Tooltip>\n <VtxSearchMap\n {...mapInfo}\n mapCenter={location[0] ? location : mapInfo.mapCenter}\n modal1Visible={visible}\n graphicType=\"point\"\n callback={onOk}\n closeModal={() => setVisible(false)}\n class=\"vtx-search-map-model\"\n />\n </>\n );\n});\n\nVtxSearchMapInput.propTypes = {\n value: PropTypes.string,\n location: PropTypes.array,\n placeholder: PropTypes.string,\n onChange: PropTypes.func,\n geoconvertPath: PropTypes.string,\n getTenantByIdPath: PropTypes.string,\n tenantId: PropTypes.string,\n disabled: PropTypes.bool,\n style: PropTypes.object,\n};\n\nexport default VtxSearchMapInput;\n"],"file":"index.js"}
|
package/lib/vtx-upload/index.js
CHANGED
|
@@ -25,6 +25,8 @@ var _message = _interopRequireDefault(require("antd/es/message"));
|
|
|
25
25
|
|
|
26
26
|
var _downloadFile = _interopRequireDefault(require("@vtx/utils/lib/downloadFile"));
|
|
27
27
|
|
|
28
|
+
var _lodash = _interopRequireDefault(require("lodash.debounce"));
|
|
29
|
+
|
|
28
30
|
var _FilePreview = _interopRequireDefault(require("./FilePreview"));
|
|
29
31
|
|
|
30
32
|
var _getUrlParam = _interopRequireDefault(require("../_util/getUrlParam"));
|
|
@@ -67,7 +69,10 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
|
|
|
67
69
|
|
|
68
70
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
69
71
|
|
|
70
|
-
|
|
72
|
+
var debouncedMessage = (0, _lodash["default"])(function (msg) {
|
|
73
|
+
_message["default"].error(msg);
|
|
74
|
+
}, 500); //文件预览
|
|
75
|
+
|
|
71
76
|
var initVPrev = {
|
|
72
77
|
type: '',
|
|
73
78
|
//video or file
|
|
@@ -123,10 +128,15 @@ var VtxUpload = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
123
128
|
setImageViewer = _useState4[1]; //图片预览
|
|
124
129
|
|
|
125
130
|
|
|
126
|
-
var _useState5 = (0, _react.useState)(
|
|
131
|
+
var _useState5 = (0, _react.useState)([]),
|
|
127
132
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
128
|
-
|
|
129
|
-
|
|
133
|
+
imageList = _useState6[0],
|
|
134
|
+
setImageList = _useState6[1];
|
|
135
|
+
|
|
136
|
+
var _useState7 = (0, _react.useState)(null),
|
|
137
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
138
|
+
imageCt = _useState8[0],
|
|
139
|
+
setImageCt = _useState8[1];
|
|
130
140
|
|
|
131
141
|
var _useSetState = (0, _useSetState3["default"])(initVPrev),
|
|
132
142
|
_useSetState2 = _slicedToArray(_useSetState, 2),
|
|
@@ -146,6 +156,21 @@ var VtxUpload = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
146
156
|
(0, _react.useEffect)(function () {
|
|
147
157
|
setFileList(getSynFileList(props) || []);
|
|
148
158
|
}, [flag]);
|
|
159
|
+
(0, _react.useEffect)(function () {
|
|
160
|
+
if (Array.isArray(fileList)) {
|
|
161
|
+
// 只有图片的才可以预览,这边需要判断是否是图片
|
|
162
|
+
var imagelist = []; // 只能通过后缀来判断
|
|
163
|
+
|
|
164
|
+
fileList.map(function (file) {
|
|
165
|
+
var _file$type;
|
|
166
|
+
|
|
167
|
+
if (((_file$type = file.type) === null || _file$type === void 0 ? void 0 : _file$type.indexOf('image')) > -1) {
|
|
168
|
+
imagelist.push(file);
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
setImageList(imagelist);
|
|
172
|
+
}
|
|
173
|
+
}, [fileList]);
|
|
149
174
|
(0, _react.useEffect)(function () {
|
|
150
175
|
if (imageCt) {
|
|
151
176
|
setImageViewer(new _viewerjs["default"](imageCt, {}));
|
|
@@ -165,6 +190,8 @@ var VtxUpload = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
165
190
|
Authorization: token ? "Bearer ".concat(token) : ''
|
|
166
191
|
}, rest.headers),
|
|
167
192
|
onChange: function onChange(info) {
|
|
193
|
+
setFileList(info.fileList);
|
|
194
|
+
|
|
168
195
|
if (info.file.response && info.file.response.result === 1) {
|
|
169
196
|
_message["default"].error(info.file.response.errMsg || '上传失败!');
|
|
170
197
|
|
|
@@ -176,16 +203,19 @@ var VtxUpload = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
176
203
|
} // 此处根据后台返回的数据结构取得文件ID
|
|
177
204
|
|
|
178
205
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
206
|
+
if (info.file.status !== 'uploading' && info.file.status !== 'removed') {
|
|
207
|
+
var vtxId = info.file.response && Array.isArray(info.file.response.data) && info.file.response.data.length > 0 ? info.file.response.data[0].id : undefined;
|
|
208
|
+
var newFileList = info.fileList;
|
|
209
|
+
var newFile = vtxId ? _objectSpread(_objectSpread({}, info.file), {}, {
|
|
210
|
+
id: vtxId,
|
|
211
|
+
url: downloadUrl + vtxId,
|
|
212
|
+
thumbUrl: useThumbnail ? thumbnailUrl + vtxId : undefined
|
|
213
|
+
}) : _objectSpread({}, info.file);
|
|
214
|
+
newFileList = info.fileList.filter(function (item) {
|
|
215
|
+
// 有vtxId代表上传成功,有item.id代表之前上传成功的
|
|
216
|
+
if (vtxId || item.id) return true;
|
|
217
|
+
return false;
|
|
218
|
+
}).map(function (item) {
|
|
189
219
|
if (item.uid == info.file.uid) {
|
|
190
220
|
return _objectSpread(_objectSpread({}, item), {}, {
|
|
191
221
|
id: vtxId,
|
|
@@ -196,23 +226,28 @@ var VtxUpload = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
196
226
|
|
|
197
227
|
return item;
|
|
198
228
|
});
|
|
199
|
-
} // 更新组件状态
|
|
200
229
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
if (
|
|
215
|
-
|
|
230
|
+
if (mode == 'single') {
|
|
231
|
+
setFileList([newFile]);
|
|
232
|
+
} else {
|
|
233
|
+
setFileList(newFileList);
|
|
234
|
+
} // 更新组件状态
|
|
235
|
+
// if (mode == 'single' && info.file.status === 'done') {
|
|
236
|
+
// setFileList([newFile]);
|
|
237
|
+
// } else {
|
|
238
|
+
// setFileList(newFileList);
|
|
239
|
+
// }
|
|
240
|
+
// 触发外部方法
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
if (info.file.status === 'done') {
|
|
244
|
+
if (typeof onSuccess == 'function') {
|
|
245
|
+
onSuccess(newFile);
|
|
246
|
+
}
|
|
247
|
+
} else if (info.file.status === 'error') {
|
|
248
|
+
if (typeof onError == 'function') {
|
|
249
|
+
onError(info.file);
|
|
250
|
+
}
|
|
216
251
|
}
|
|
217
252
|
}
|
|
218
253
|
},
|
|
@@ -221,7 +256,7 @@ var VtxUpload = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
221
256
|
return _onRemove(file);
|
|
222
257
|
}
|
|
223
258
|
},
|
|
224
|
-
beforeUpload: function beforeUpload(file) {
|
|
259
|
+
beforeUpload: function beforeUpload(file, afterFileList) {
|
|
225
260
|
//限制文件大小
|
|
226
261
|
if (maxFileSize && typeof maxFileSize === 'number') {
|
|
227
262
|
var limit = file.size < maxFileSize;
|
|
@@ -244,10 +279,17 @@ var VtxUpload = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
244
279
|
|
|
245
280
|
return false;
|
|
246
281
|
}
|
|
282
|
+
} // 多选限制文件数量
|
|
283
|
+
|
|
284
|
+
|
|
285
|
+
if (typeof maxNum === 'number' && afterFileList.length + fileList.length > maxNum) {
|
|
286
|
+
// 减少提示错误次数, 思路,防抖 这边有个问题 就是防抖的这个方法 return fasle 不上传
|
|
287
|
+
debouncedMessage("\u6700\u591A\u4E0A\u4F20".concat(maxNum, "\u4E2A"));
|
|
288
|
+
return false;
|
|
247
289
|
}
|
|
248
290
|
|
|
249
291
|
if (typeof _beforeUpload === 'function') {
|
|
250
|
-
_beforeUpload(file);
|
|
292
|
+
_beforeUpload(file, afterFileList);
|
|
251
293
|
}
|
|
252
294
|
|
|
253
295
|
return true;
|
|
@@ -258,13 +300,15 @@ var VtxUpload = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
258
300
|
config.onPreview = props.onPreview;
|
|
259
301
|
} else {
|
|
260
302
|
config.onPreview = function (file) {
|
|
303
|
+
var _file$type2, _file$type3;
|
|
304
|
+
|
|
261
305
|
if (!file.type) {
|
|
262
306
|
(0, _downloadFile["default"])(downloadUrl + file.id, {
|
|
263
307
|
fileName: file.name
|
|
264
308
|
}, 'blob');
|
|
265
|
-
} else if (file.type.indexOf('image') > -1) {
|
|
309
|
+
} else if (((_file$type2 = file.type) === null || _file$type2 === void 0 ? void 0 : _file$type2.indexOf('image')) > -1) {
|
|
266
310
|
handlePreview(file);
|
|
267
|
-
} else if (file.type.indexOf('video') > -1) {
|
|
311
|
+
} else if (((_file$type3 = file.type) === null || _file$type3 === void 0 ? void 0 : _file$type3.indexOf('video')) > -1) {
|
|
268
312
|
// 视频
|
|
269
313
|
setVPrev({
|
|
270
314
|
type: 'video',
|
|
@@ -318,7 +362,7 @@ var VtxUpload = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
318
362
|
};
|
|
319
363
|
|
|
320
364
|
var handlePreview = function handlePreview(file) {
|
|
321
|
-
var imageIndex =
|
|
365
|
+
var imageIndex = imageList.map(function (item) {
|
|
322
366
|
return item.id;
|
|
323
367
|
}).indexOf(file.id);
|
|
324
368
|
if (imageIndex == -1) return;
|
|
@@ -389,8 +433,10 @@ var VtxUpload = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
389
433
|
ref: function ref(ins) {
|
|
390
434
|
if (ins) setImageCt(ins);
|
|
391
435
|
}
|
|
392
|
-
},
|
|
393
|
-
|
|
436
|
+
}, imageList.filter(function (item) {
|
|
437
|
+
var _item$type;
|
|
438
|
+
|
|
439
|
+
return item.type && ((_item$type = item.type) === null || _item$type === void 0 ? void 0 : _item$type.indexOf('image')) > -1;
|
|
394
440
|
}).map(function (item, index) {
|
|
395
441
|
return /*#__PURE__*/_react["default"].createElement("li", {
|
|
396
442
|
key: item.uid
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["vtx-upload/index.jsx"],"names":["initVPrev","type","name","url","downloadUrl","visible","initUrl","action","thumbnailUrl","rejectTypes","Dragger","Upload","VtxUpload","props","ref","isDragger","draggerConfig","accept","mode","viewMode","showUploadList","customizedButton","listType","onSuccess","onError","onRemove","maxFileSize","beforeUpload","maxNum","flag","rest","useThumbnail","fileList","setFileList","imageViewer","setImageViewer","imageCt","setImageCt","vPrev","setVPrev","getSynFileList","Viewer","getConfig","token","config","headers","Authorization","onChange","info","file","response","result","message","error","errMsg","flt","pop","vtxId","Array","isArray","data","length","id","undefined","newFileList","newFile","thumbUrl","status","map","item","uid","limit","size","pointIndex","lastIndexOf","fileType","substring","includes","onPreview","fileName","indexOf","handlePreview","showRemoveIcon","imageIndex","update","view","processedFileList","index","console","img","maxWidth","maxHeight","marginTop","marginBottom","mainText","subText","fontSize","color","display","ins","filter","propTypes","PropTypes","bool","object","string","node","previewUrl","func","number","array"],"mappings":"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","sourcesContent":["import React, { useState, useEffect, forwardRef } from 'react';\nimport useSetState from 'ahooks/es/useSetState';\nimport PropTypes from 'prop-types';\nimport Viewer from 'viewerjs';\nimport Upload from 'antd/es/upload';\nimport Button from 'antd/es/button';\nimport Icon from 'antd/es/icon';\nimport message from 'antd/es/message';\nimport downloadFile from '@vtx/utils/lib/downloadFile';\nimport Prev from './FilePreview';\nimport getUrlParam from '../_util/getUrlParam';\n\n//文件预览\nconst initVPrev = {\n type: '', //video or file\n name: '',\n url: '',\n downloadUrl: '',\n visible: false,\n};\n\nconst initUrl = {\n action: '/cloudFile/common/uploadFile',\n downloadUrl: '/cloudFile/common/downloadFile?id=',\n thumbnailUrl:\n '/vortex/rest/cloud/np/file/downloadFileThumbnail?outputQuality=0.5&scale=0.2&id=',\n //previewUrl: '/onlinePreview',\n};\n//禁止上传的文件类型\nconst rejectTypes = ['.asp', '.aspx', '.jsp', '.exe', '.cgi', '.asa', '.cer', '.cdx', '.hta'];\n\nconst Dragger = Upload.Dragger;\nconst VtxUpload = forwardRef((props, ref) => {\n const {\n isDragger = false, //是否拖拽模式\n draggerConfig = {}, //拖动配置\n accept, //接受上传的文件类型\n mode = 'multiple', //单文件模式or多文件模式\n viewMode, //是否查看模式(隐藏上传按钮)\n showUploadList, //是否展示文件列表\n customizedButton, //自定义上传文字描述\n listType = 'text', //上传列表的样式\n onSuccess, //上传成功\n onError, //上传失败\n onRemove, //删除\n maxFileSize = 5 * 1024 * 1024, //文件大小限制,默认最大5M\n beforeUpload, //上传前回调\n maxNum, //最多上传的文件数量\n flag, //同步数据标记\n ...rest\n } = props;\n // 是否使用缩略图\n const useThumbnail =\n props.useThumbnail && (listType == 'picture' || listType == 'picture-card');\n\n const [fileList, setFileList] = useState([]); //初始化文件列表\n const [imageViewer, setImageViewer] = useState(null); //图片预览\n const [imageCt, setImageCt] = useState(null);\n const [vPrev, setVPrev] = useSetState(initVPrev); //文件预览相关\n\n const url = {\n action: props.action || initUrl.action,\n downloadUrl: props.downloadUrl || initUrl.downloadUrl,\n thumbnailUrl: props.thumbnailUrl || initUrl.thumbnailUrl,\n //previewUrl: props.previewUrl || initUrl.previewUrl,\n };\n const { action, downloadUrl, thumbnailUrl } = url;\n\n useEffect(() => {\n setFileList(getSynFileList(props) || []);\n }, [flag]);\n\n useEffect(() => {\n if (imageCt) {\n setImageViewer(new Viewer(imageCt, {}));\n }\n }, [imageCt]);\n\n const getConfig = () => {\n let token = getUrlParam('token') || '';\n let config = {\n ...rest,\n accept,\n action,\n fileList: fileList,\n listType,\n showUploadList,\n headers: {\n Authorization: token ? `Bearer ${token}` : '',\n ...rest.headers,\n },\n onChange(info) {\n if (info.file.response && info.file.response.result === 1) {\n message.error(info.file.response.errMsg || '上传失败!');\n let flt = [...fileList];\n flt.pop();\n setFileList(flt);\n return;\n }\n // 此处根据后台返回的数据结构取得文件ID\n let vtxId =\n info.file.response &&\n Array.isArray(info.file.response.data) &&\n info.file.response.data.length > 0\n ? info.file.response.data[0].id\n : undefined;\n let newFileList = info.fileList;\n let newFile = vtxId\n ? {\n ...info.file,\n id: vtxId,\n url: downloadUrl + vtxId,\n thumbUrl: useThumbnail ? thumbnailUrl + vtxId : undefined,\n }\n : {\n ...info.file,\n };\n\n if (info.file.status === 'done' && vtxId) {\n newFileList = info.fileList.map(item => {\n if (item.uid == info.file.uid) {\n return {\n ...item,\n id: vtxId,\n url: downloadUrl + vtxId,\n thumbUrl: useThumbnail ? thumbnailUrl + vtxId : undefined,\n };\n }\n return item;\n });\n }\n\n // 更新组件状态\n if (mode == 'single' && info.file.status === 'done') {\n setFileList([newFile]);\n } else {\n setFileList(newFileList);\n }\n\n // 触发外部方法\n if (info.file.status === 'done') {\n if (typeof onSuccess == 'function') {\n onSuccess(newFile);\n }\n } else if (info.file.status === 'error') {\n if (typeof onError == 'function') {\n onError(info.file);\n }\n }\n },\n onRemove(file) {\n if (typeof onRemove == 'function') {\n return onRemove(file);\n }\n },\n beforeUpload(file) {\n //限制文件大小\n if (maxFileSize && typeof maxFileSize === 'number') {\n const limit = file.size < maxFileSize;\n if (!limit) {\n message.error(`请上传${maxFileSize / 1024 / 1024}M以内的文件`);\n return false;\n }\n }\n //限制不允许上传的文件类型(通过文件名后缀)\n let pointIndex = file.name ? file.name.lastIndexOf('.') : -1;\n if (pointIndex > -1) {\n let fileType = file.name.substring(pointIndex);\n if (rejectTypes.includes(fileType)) {\n message.error('不支持该文件类型');\n return false;\n }\n }\n\n if (typeof beforeUpload === 'function') {\n beforeUpload(file);\n }\n return true;\n },\n };\n\n if (props.onPreview && typeof props.onPreview === 'function') {\n config.onPreview = props.onPreview;\n } else {\n config.onPreview = file => {\n if (!file.type) {\n downloadFile(downloadUrl + file.id, { fileName: file.name }, 'blob');\n } else if (file.type.indexOf('image') > -1) {\n handlePreview(file);\n } else if (file.type.indexOf('video') > -1) {\n // 视频\n setVPrev({\n type: 'video',\n name: file.name || '视频预览',\n url: downloadUrl + file.id,\n downloadUrl: downloadUrl + file.id,\n visible: true,\n });\n } else {\n downloadFile(downloadUrl + file.id, { fileName: file.name }, 'blob');\n }\n\n // TODO 暂无好的文件预览服务,等后续完善,只提供下载\n // else if (\n // file.type == 'application/PDF' ||\n // file.type == 'application/vnd.ms-excel' ||\n // file.type ==\n // 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' ||\n // file.type == 'application/msword' ||\n // file.type ==\n // 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'\n // ) {\n // let url = '';\n // if (props.previewUrl) {\n // url = `${props.previewUrl}?id=${file.id}&fileName=${file.name}`;\n // } else {\n // url = `http://183.215.89.162:8012/onlinePreview?url=http://183.136.177.108:8003/cloudFile/common/downloadFile${encodeURIComponent(\n // '?id=' + file.id + '&fullfilename=' + file.name.replace(/\\s*/g, ''),\n // )}`;\n // }\n\n // setVPrev({\n // type: 'file',\n // name: file.name || '文件预览',\n // url: url,\n // downloadUrl: downloadUrl + file.id,\n // visible: true,\n // });\n // }\n };\n }\n\n // viewMode\n if (viewMode) {\n config.showUploadList = { showRemoveIcon: false };\n }\n\n return config;\n };\n\n const handlePreview = file => {\n const imageIndex = fileList.map(item => item.id).indexOf(file.id);\n if (imageIndex == -1) return;\n imageViewer.update();\n imageViewer.view(imageIndex);\n };\n\n const getSynFileList = props => {\n let processedFileList = props.fileList || [];\n // 单文件模式只取第一个\n if (props.mode == 'single' && processedFileList.length > 1) {\n processedFileList = [processedFileList[0]];\n }\n processedFileList = processedFileList.map((item, index) => {\n // 将外部传入的简易文件数组处理成为组件需要的数组结构\n if (item.name === undefined || item.id === undefined) {\n // eslint-disable-next-line no-console\n console.error('文件列表的name和id属性不能为空');\n }\n return {\n ...item,\n uid: -1 - index,\n status: 'done',\n url: item.url || downloadUrl + item.id,\n thumbUrl: useThumbnail ? item.thumbUrl || thumbnailUrl + item.id : undefined,\n };\n });\n return processedFileList;\n };\n return (\n <>\n {isDragger ? (\n <Dragger {...getConfig()} ref={ref}>\n {draggerConfig?.img ? (\n <img\n src={draggerConfig.img}\n alt=\"\"\n style={{\n maxWidth: 100,\n maxHeight: 100,\n marginTop: '3%',\n marginBottom: '5%',\n }}\n />\n ) : (\n <p className=\"ant-upload-drag-icon\">\n <Icon type=\"inbox\" />\n </p>\n )}\n <p className=\"ant-upload-text\">{draggerConfig?.mainText || '点击或拖拽上传'}</p>\n <p className=\"ant-upload-hint\">\n {draggerConfig?.subText || '支持上传word,excel,png...'}\n </p>\n </Dragger>\n ) : (\n <Upload {...getConfig()} ref={ref}>\n {viewMode || fileList.length >= maxNum\n ? null\n : customizedButton ||\n (listType == 'picture-card' ? (\n <div>\n <Icon type=\"plus\" style={{ fontSize: '28px', color: '#999' }} />\n <div className=\"ant-upload-text\">上传</div>\n </div>\n ) : (\n <Button>\n <Icon type=\"upload\" />\n 上传\n </Button>\n ))}\n </Upload>\n )}\n <div style={{ display: 'none' }}>\n <ul\n ref={ins => {\n if (ins) setImageCt(ins);\n }}\n >\n {fileList\n .filter(item => item.type && item.type.indexOf('image') > -1)\n .map((item, index) => (\n <li key={item.uid}>\n <img\n src={item.url || downloadUrl + item.id}\n alt={item.name || `picture-${index + 1}`}\n />\n </li>\n ))}\n </ul>\n </div>\n {/* 视频预览 */}\n <Prev onCancel={() => setVPrev(initVPrev)} {...vPrev} />\n </>\n );\n});\n\nVtxUpload.propTypes = {\n isDragger: PropTypes.bool,\n draggerConfig: PropTypes.object,\n accept: PropTypes.string,\n mode: PropTypes.string,\n viewMode: PropTypes.bool,\n showUploadList: PropTypes.bool,\n customizedButton: PropTypes.node,\n listType: PropTypes.string,\n action: PropTypes.string,\n downloadUrl: PropTypes.string,\n thumbnailUrl: PropTypes.string,\n previewUrl: PropTypes.string,\n onSuccess: PropTypes.func,\n onError: PropTypes.func,\n onRemove: PropTypes.func,\n onPreview: PropTypes.func,\n maxFileSize: PropTypes.number,\n beforeUpload: PropTypes.func,\n maxNum: PropTypes.number,\n fileList: PropTypes.array,\n flag: PropTypes.number,\n useThumbnail: PropTypes.bool,\n};\nexport default VtxUpload;\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["vtx-upload/index.jsx"],"names":["debouncedMessage","msg","message","error","initVPrev","type","name","url","downloadUrl","visible","initUrl","action","thumbnailUrl","rejectTypes","Dragger","Upload","VtxUpload","props","ref","isDragger","draggerConfig","accept","mode","viewMode","showUploadList","customizedButton","listType","onSuccess","onError","onRemove","maxFileSize","beforeUpload","maxNum","flag","rest","useThumbnail","fileList","setFileList","imageViewer","setImageViewer","imageList","setImageList","imageCt","setImageCt","vPrev","setVPrev","getSynFileList","Array","isArray","imagelist","map","file","indexOf","push","Viewer","getConfig","token","config","headers","Authorization","onChange","info","response","result","errMsg","flt","pop","status","vtxId","data","length","id","undefined","newFileList","newFile","thumbUrl","filter","item","uid","afterFileList","limit","size","pointIndex","lastIndexOf","fileType","substring","includes","onPreview","fileName","handlePreview","showRemoveIcon","imageIndex","update","view","processedFileList","index","console","img","maxWidth","maxHeight","marginTop","marginBottom","mainText","subText","fontSize","color","display","ins","propTypes","PropTypes","bool","object","string","node","previewUrl","func","number","array"],"mappings":"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","sourcesContent":["import React, { useState, useEffect, forwardRef } from 'react';\nimport useSetState from 'ahooks/es/useSetState';\nimport PropTypes from 'prop-types';\nimport Viewer from 'viewerjs';\nimport Upload from 'antd/es/upload';\nimport Button from 'antd/es/button';\nimport Icon from 'antd/es/icon';\nimport message from 'antd/es/message';\nimport downloadFile from '@vtx/utils/lib/downloadFile';\nimport debounce from 'lodash.debounce';\nimport Prev from './FilePreview';\nimport getUrlParam from '../_util/getUrlParam';\n\nconst debouncedMessage = debounce(msg => {\n message.error(msg);\n}, 500);\n\n//文件预览\nconst initVPrev = {\n type: '', //video or file\n name: '',\n url: '',\n downloadUrl: '',\n visible: false,\n};\n\nconst initUrl = {\n action: '/cloudFile/common/uploadFile',\n downloadUrl: '/cloudFile/common/downloadFile?id=',\n thumbnailUrl:\n '/vortex/rest/cloud/np/file/downloadFileThumbnail?outputQuality=0.5&scale=0.2&id=',\n //previewUrl: '/onlinePreview',\n};\n//禁止上传的文件类型\nconst rejectTypes = ['.asp', '.aspx', '.jsp', '.exe', '.cgi', '.asa', '.cer', '.cdx', '.hta'];\n\nconst Dragger = Upload.Dragger;\nconst VtxUpload = forwardRef((props, ref) => {\n const {\n isDragger = false, //是否拖拽模式\n draggerConfig = {}, //拖动配置\n accept, //接受上传的文件类型\n mode = 'multiple', //单文件模式or多文件模式\n viewMode, //是否查看模式(隐藏上传按钮)\n showUploadList, //是否展示文件列表\n customizedButton, //自定义上传文字描述\n listType = 'text', //上传列表的样式\n onSuccess, //上传成功\n onError, //上传失败\n onRemove, //删除\n maxFileSize = 5 * 1024 * 1024, //文件大小限制,默认最大5M\n beforeUpload, //上传前回调\n maxNum, //最多上传的文件数量\n flag, //同步数据标记\n ...rest\n } = props;\n // 是否使用缩略图\n const useThumbnail =\n props.useThumbnail && (listType == 'picture' || listType == 'picture-card');\n\n const [fileList, setFileList] = useState([]); //初始化文件列表\n const [imageViewer, setImageViewer] = useState(null); //图片预览\n const [imageList, setImageList] = useState([]);\n const [imageCt, setImageCt] = useState(null);\n const [vPrev, setVPrev] = useSetState(initVPrev); //文件预览相关\n\n const url = {\n action: props.action || initUrl.action,\n downloadUrl: props.downloadUrl || initUrl.downloadUrl,\n thumbnailUrl: props.thumbnailUrl || initUrl.thumbnailUrl,\n //previewUrl: props.previewUrl || initUrl.previewUrl,\n };\n const { action, downloadUrl, thumbnailUrl } = url;\n\n useEffect(() => {\n setFileList(getSynFileList(props) || []);\n }, [flag]);\n\n useEffect(() => {\n if (Array.isArray(fileList)) {\n // 只有图片的才可以预览,这边需要判断是否是图片\n const imagelist = [];\n // 只能通过后缀来判断\n fileList.map(file => {\n if (file.type?.indexOf('image') > -1) {\n imagelist.push(file);\n }\n });\n setImageList(imagelist);\n }\n }, [fileList]);\n\n useEffect(() => {\n if (imageCt) {\n setImageViewer(new Viewer(imageCt, {}));\n }\n }, [imageCt]);\n\n const getConfig = () => {\n let token = getUrlParam('token') || '';\n let config = {\n ...rest,\n accept,\n action,\n fileList: fileList,\n listType,\n showUploadList,\n headers: {\n Authorization: token ? `Bearer ${token}` : '',\n ...rest.headers,\n },\n onChange(info) {\n setFileList(info.fileList);\n if (info.file.response && info.file.response.result === 1) {\n message.error(info.file.response.errMsg || '上传失败!');\n let flt = [...fileList];\n flt.pop();\n setFileList(flt);\n return;\n }\n // 此处根据后台返回的数据结构取得文件ID\n if (info.file.status !== 'uploading' && info.file.status !== 'removed' ) {\n let vtxId =\n info.file.response &&\n Array.isArray(info.file.response.data) &&\n info.file.response.data.length > 0\n ? info.file.response.data[0].id\n : undefined;\n let newFileList = info.fileList;\n let newFile = vtxId\n ? {\n ...info.file,\n id: vtxId,\n url: downloadUrl + vtxId,\n thumbUrl: useThumbnail ? thumbnailUrl + vtxId : undefined,\n }\n : {\n ...info.file,\n };\n newFileList = info.fileList\n .filter(item => {\n // 有vtxId代表上传成功,有item.id代表之前上传成功的\n if (vtxId || item.id) return true;\n return false;\n })\n .map(item => {\n if (item.uid == info.file.uid) {\n return {\n ...item,\n id: vtxId,\n url: downloadUrl + vtxId,\n thumbUrl: useThumbnail ? thumbnailUrl + vtxId : undefined,\n };\n }\n return item;\n });\n\n if (mode == 'single') {\n setFileList([newFile]);\n } else {\n setFileList(newFileList);\n }\n // 更新组件状态\n // if (mode == 'single' && info.file.status === 'done') {\n // setFileList([newFile]);\n // } else {\n // setFileList(newFileList);\n // }\n\n // 触发外部方法\n if (info.file.status === 'done') {\n if (typeof onSuccess == 'function') {\n onSuccess(newFile);\n }\n } else if (info.file.status === 'error') {\n if (typeof onError == 'function') {\n onError(info.file);\n }\n }\n }\n },\n onRemove(file) {\n if (typeof onRemove == 'function') {\n return onRemove(file);\n }\n },\n beforeUpload(file, afterFileList) {\n //限制文件大小\n if (maxFileSize && typeof maxFileSize === 'number') {\n const limit = file.size < maxFileSize;\n if (!limit) {\n message.error(`请上传${maxFileSize / 1024 / 1024}M以内的文件`);\n return false;\n }\n }\n //限制不允许上传的文件类型(通过文件名后缀)\n let pointIndex = file.name ? file.name.lastIndexOf('.') : -1;\n if (pointIndex > -1) {\n let fileType = file.name.substring(pointIndex);\n if (rejectTypes.includes(fileType)) {\n message.error('不支持该文件类型');\n return false;\n }\n }\n // 多选限制文件数量\n if (typeof maxNum === 'number' && afterFileList.length + fileList.length > maxNum) {\n // 减少提示错误次数, 思路,防抖 这边有个问题 就是防抖的这个方法 return fasle 不上传\n debouncedMessage(`最多上传${maxNum}个`);\n return false;\n }\n\n if (typeof beforeUpload === 'function') {\n beforeUpload(file, afterFileList);\n }\n return true;\n },\n };\n\n if (props.onPreview && typeof props.onPreview === 'function') {\n config.onPreview = props.onPreview;\n } else {\n config.onPreview = file => {\n if (!file.type) {\n downloadFile(downloadUrl + file.id, { fileName: file.name }, 'blob');\n } else if (file.type?.indexOf('image') > -1) {\n handlePreview(file);\n } else if (file.type?.indexOf('video') > -1) {\n // 视频\n setVPrev({\n type: 'video',\n name: file.name || '视频预览',\n url: downloadUrl + file.id,\n downloadUrl: downloadUrl + file.id,\n visible: true,\n });\n } else {\n downloadFile(downloadUrl + file.id, { fileName: file.name }, 'blob');\n }\n\n // TODO 暂无好的文件预览服务,等后续完善,只提供下载\n // else if (\n // file.type == 'application/PDF' ||\n // file.type == 'application/vnd.ms-excel' ||\n // file.type ==\n // 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' ||\n // file.type == 'application/msword' ||\n // file.type ==\n // 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'\n // ) {\n // let url = '';\n // if (props.previewUrl) {\n // url = `${props.previewUrl}?id=${file.id}&fileName=${file.name}`;\n // } else {\n // url = `http://183.215.89.162:8012/onlinePreview?url=http://183.136.177.108:8003/cloudFile/common/downloadFile${encodeURIComponent(\n // '?id=' + file.id + '&fullfilename=' + file.name.replace(/\\s*/g, ''),\n // )}`;\n // }\n\n // setVPrev({\n // type: 'file',\n // name: file.name || '文件预览',\n // url: url,\n // downloadUrl: downloadUrl + file.id,\n // visible: true,\n // });\n // }\n };\n }\n\n // viewMode\n if (viewMode) {\n config.showUploadList = { showRemoveIcon: false };\n }\n\n return config;\n };\n\n const handlePreview = file => {\n const imageIndex = imageList.map(item => item.id).indexOf(file.id);\n if (imageIndex == -1) return;\n imageViewer.update();\n imageViewer.view(imageIndex);\n };\n\n const getSynFileList = props => {\n let processedFileList = props.fileList || [];\n // 单文件模式只取第一个\n if (props.mode == 'single' && processedFileList.length > 1) {\n processedFileList = [processedFileList[0]];\n }\n processedFileList = processedFileList.map((item, index) => {\n // 将外部传入的简易文件数组处理成为组件需要的数组结构\n if (item.name === undefined || item.id === undefined) {\n // eslint-disable-next-line no-console\n console.error('文件列表的name和id属性不能为空');\n }\n return {\n ...item,\n uid: -1 - index,\n status: 'done',\n url: item.url || downloadUrl + item.id,\n thumbUrl: useThumbnail ? item.thumbUrl || thumbnailUrl + item.id : undefined,\n };\n });\n return processedFileList;\n };\n return (\n <>\n {isDragger ? (\n <Dragger {...getConfig()} ref={ref}>\n {draggerConfig?.img ? (\n <img\n src={draggerConfig.img}\n alt=\"\"\n style={{\n maxWidth: 100,\n maxHeight: 100,\n marginTop: '3%',\n marginBottom: '5%',\n }}\n />\n ) : (\n <p className=\"ant-upload-drag-icon\">\n <Icon type=\"inbox\" />\n </p>\n )}\n <p className=\"ant-upload-text\">{draggerConfig?.mainText || '点击或拖拽上传'}</p>\n <p className=\"ant-upload-hint\">\n {draggerConfig?.subText || '支持上传word,excel,png...'}\n </p>\n </Dragger>\n ) : (\n <Upload {...getConfig()} ref={ref}>\n {viewMode || fileList.length >= maxNum\n ? null\n : customizedButton ||\n (listType == 'picture-card' ? (\n <div>\n <Icon type=\"plus\" style={{ fontSize: '28px', color: '#999' }} />\n <div className=\"ant-upload-text\">上传</div>\n </div>\n ) : (\n <Button>\n <Icon type=\"upload\" />\n 上传\n </Button>\n ))}\n </Upload>\n )}\n <div style={{ display: 'none' }}>\n <ul\n ref={ins => {\n if (ins) setImageCt(ins);\n }}\n >\n {imageList\n .filter(item => item.type && item.type?.indexOf('image') > -1)\n .map((item, index) => (\n <li key={item.uid}>\n <img\n src={item.url || downloadUrl + item.id}\n alt={item.name || `picture-${index + 1}`}\n />\n </li>\n ))}\n </ul>\n </div>\n {/* 视频预览 */}\n <Prev onCancel={() => setVPrev(initVPrev)} {...vPrev} />\n </>\n );\n});\n\nVtxUpload.propTypes = {\n isDragger: PropTypes.bool,\n draggerConfig: PropTypes.object,\n accept: PropTypes.string,\n mode: PropTypes.string,\n viewMode: PropTypes.bool,\n showUploadList: PropTypes.bool,\n customizedButton: PropTypes.node,\n listType: PropTypes.string,\n action: PropTypes.string,\n downloadUrl: PropTypes.string,\n thumbnailUrl: PropTypes.string,\n previewUrl: PropTypes.string,\n onSuccess: PropTypes.func,\n onError: PropTypes.func,\n onRemove: PropTypes.func,\n onPreview: PropTypes.func,\n maxFileSize: PropTypes.number,\n beforeUpload: PropTypes.func,\n maxNum: PropTypes.number,\n fileList: PropTypes.array,\n flag: PropTypes.number,\n useThumbnail: PropTypes.bool,\n};\nexport default VtxUpload;\n"],"file":"index.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vtx/components",
|
|
3
|
-
"version": "2.5.
|
|
3
|
+
"version": "2.5.6",
|
|
4
4
|
"description": "React components for Vortex",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"authorName": true
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
|
-
"@vtx/map": "
|
|
54
|
+
"@vtx/map": "latest",
|
|
55
55
|
"@vtx/utils": "latest",
|
|
56
56
|
"ahooks": "^2.9.6",
|
|
57
57
|
"antd": "3.26.19",
|