@vtx/components 2.5.13 → 2.5.15
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 +842 -0
- package/lib/_util/filterSpecialCharacters.js +43 -54
- package/lib/_util/filterSpecialCharacters.js.map +1 -1
- package/lib/_util/getComponentProps.js +3 -0
- package/lib/_util/getComponentProps.js.map +1 -1
- package/lib/_util/getUrlParam.js +6 -0
- package/lib/_util/getUrlParam.js.map +1 -1
- package/lib/_util/isFunction.js +1 -0
- package/lib/_util/isFunction.js.map +1 -1
- package/lib/_util/isObject.js +1 -0
- package/lib/_util/isObject.js.map +1 -1
- package/lib/_util/useInterval.js +3 -0
- package/lib/_util/useInterval.js.map +1 -1
- package/lib/_util/useSet.js +32 -14
- package/lib/_util/useSet.js.map +1 -1
- package/lib/config.js.map +1 -1
- package/lib/index.js +22 -0
- package/lib/index.js.map +1 -1
- package/lib/vtx-color-picker/index.js +21 -5
- package/lib/vtx-color-picker/index.js.map +1 -1
- package/lib/vtx-color-picker/style/css.js +2 -0
- package/lib/vtx-color-picker/style/css.js.map +1 -1
- package/lib/vtx-color-picker/style/index.js +2 -0
- package/lib/vtx-color-picker/style/index.js.map +1 -1
- package/lib/vtx-combogrid/Combogrid.js +73 -33
- package/lib/vtx-combogrid/Combogrid.js.map +1 -1
- package/lib/vtx-combogrid/index.js +45 -20
- package/lib/vtx-combogrid/index.js.map +1 -1
- package/lib/vtx-combogrid/style/css.js +7 -0
- package/lib/vtx-combogrid/style/css.js.map +1 -1
- package/lib/vtx-combogrid/style/index.js +7 -0
- package/lib/vtx-combogrid/style/index.js.map +1 -1
- package/lib/vtx-combogrid/style/index.less +29 -29
- package/lib/vtx-datagrid/Alert.js +11 -3
- package/lib/vtx-datagrid/Alert.js.map +1 -1
- package/lib/vtx-datagrid/ColumnSetting.js +44 -19
- package/lib/vtx-datagrid/ColumnSetting.js.map +1 -1
- package/lib/vtx-datagrid/ResizeableTitle.js +13 -2
- package/lib/vtx-datagrid/ResizeableTitle.js.map +1 -1
- package/lib/vtx-datagrid/index.js +137 -77
- package/lib/vtx-datagrid/index.js.map +1 -1
- package/lib/vtx-datagrid/renderColumnButtons.js +35 -5
- package/lib/vtx-datagrid/renderColumnButtons.js.map +1 -1
- package/lib/vtx-datagrid/style/css.js +10 -0
- package/lib/vtx-datagrid/style/css.js.map +1 -1
- package/lib/vtx-datagrid/style/index.js +10 -0
- package/lib/vtx-datagrid/style/index.js.map +1 -1
- package/lib/vtx-datagrid/style/index.less +131 -131
- package/lib/vtx-date-picker/QdatePicker.js +46 -16
- package/lib/vtx-date-picker/QdatePicker.js.map +1 -1
- package/lib/vtx-date-picker/YearPicker.js +30 -7
- package/lib/vtx-date-picker/YearPicker.js.map +1 -1
- package/lib/vtx-date-picker/generatePicker.js +46 -5
- package/lib/vtx-date-picker/generatePicker.js.map +1 -1
- package/lib/vtx-date-picker/index.js +8 -2
- package/lib/vtx-date-picker/index.js.map +1 -1
- package/lib/vtx-date-picker/style/css.js +1 -0
- package/lib/vtx-date-picker/style/css.js.map +1 -1
- package/lib/vtx-date-picker/style/index.js +1 -0
- package/lib/vtx-date-picker/style/index.js.map +1 -1
- package/lib/vtx-date-picker/style/index.less +38 -38
- package/lib/vtx-editor/index.js +23 -5
- package/lib/vtx-editor/index.js.map +1 -1
- package/lib/vtx-editor/style/css.js +2 -0
- package/lib/vtx-editor/style/css.js.map +1 -1
- package/lib/vtx-editor/style/index.js +2 -0
- package/lib/vtx-editor/style/index.js.map +1 -1
- package/lib/vtx-editor/style/index.less +6 -6
- package/lib/vtx-export/index.js +55 -23
- package/lib/vtx-export/index.js.map +1 -1
- package/lib/vtx-export/style/css.js +6 -0
- package/lib/vtx-export/style/css.js.map +1 -1
- package/lib/vtx-export/style/index.js +6 -0
- package/lib/vtx-export/style/index.js.map +1 -1
- package/lib/vtx-form-layout/Card.js +26 -5
- package/lib/vtx-form-layout/Card.js.map +1 -1
- package/lib/vtx-form-layout/Divider.js +5 -0
- package/lib/vtx-form-layout/Divider.js.map +1 -1
- package/lib/vtx-form-layout/FormItem.js +34 -9
- package/lib/vtx-form-layout/FormItem.js.map +1 -1
- package/lib/vtx-form-layout/Pane.js +7 -2
- package/lib/vtx-form-layout/Pane.js.map +1 -1
- package/lib/vtx-form-layout/Row.js +6 -0
- package/lib/vtx-form-layout/Row.js.map +1 -1
- package/lib/vtx-form-layout/context.js +2 -0
- package/lib/vtx-form-layout/context.js.map +1 -1
- package/lib/vtx-form-layout/demo/Modal.less +41 -41
- package/lib/vtx-form-layout/index.js +22 -8
- package/lib/vtx-form-layout/index.js.map +1 -1
- package/lib/vtx-form-layout/style/css.js +8 -0
- package/lib/vtx-form-layout/style/css.js.map +1 -1
- package/lib/vtx-form-layout/style/index.js +8 -0
- package/lib/vtx-form-layout/style/index.js.map +1 -1
- package/lib/vtx-form-layout/style/index.less +148 -148
- package/lib/vtx-image/Image.js +92 -56
- package/lib/vtx-image/Image.js.map +1 -1
- package/lib/vtx-image/Preview.js +51 -20
- package/lib/vtx-image/Preview.js.map +1 -1
- package/lib/vtx-image/PreviewGroup.js +40 -11
- package/lib/vtx-image/PreviewGroup.js.map +1 -1
- package/lib/vtx-image/index.js +6 -0
- package/lib/vtx-image/index.js.map +1 -1
- package/lib/vtx-image/style/css.js +1 -0
- package/lib/vtx-image/style/css.js.map +1 -1
- package/lib/vtx-image/style/index.js +1 -0
- package/lib/vtx-image/style/index.js.map +1 -1
- package/lib/vtx-image/style/index.less +46 -46
- package/lib/vtx-import/index.js +72 -37
- package/lib/vtx-import/index.js.map +1 -1
- package/lib/vtx-import/result.js +24 -7
- package/lib/vtx-import/result.js.map +1 -1
- package/lib/vtx-import/style/css.js +2 -0
- package/lib/vtx-import/style/css.js.map +1 -1
- package/lib/vtx-import/style/index.js +2 -0
- package/lib/vtx-import/style/index.js.map +1 -1
- package/lib/vtx-input/TextArea.js +22 -6
- package/lib/vtx-input/TextArea.js.map +1 -1
- package/lib/vtx-input/index.js +37 -11
- package/lib/vtx-input/index.js.map +1 -1
- package/lib/vtx-input/style/css.js +1 -0
- package/lib/vtx-input/style/css.js.map +1 -1
- package/lib/vtx-input/style/index.js +1 -0
- package/lib/vtx-input/style/index.js.map +1 -1
- package/lib/vtx-input/style/index.less +20 -20
- package/lib/vtx-input/useLength.js +16 -4
- package/lib/vtx-input/useLength.js.map +1 -1
- package/lib/vtx-modal/Title.js +6 -1
- package/lib/vtx-modal/Title.js.map +1 -1
- package/lib/vtx-modal/index.js +70 -32
- package/lib/vtx-modal/index.js.map +1 -1
- package/lib/vtx-modal/style/css.js +2 -0
- package/lib/vtx-modal/style/css.js.map +1 -1
- package/lib/vtx-modal/style/index.js +2 -0
- package/lib/vtx-modal/style/index.js.map +1 -1
- package/lib/vtx-modal/style/index.less +83 -83
- package/lib/vtx-page-layout/Basic.js +6 -2
- package/lib/vtx-page-layout/Basic.js.map +1 -1
- package/lib/vtx-page-layout/Content.js +19 -7
- package/lib/vtx-page-layout/Content.js.map +1 -1
- package/lib/vtx-page-layout/Pane.js +10 -2
- package/lib/vtx-page-layout/Pane.js.map +1 -1
- package/lib/vtx-page-layout/TableLayout.js +52 -22
- package/lib/vtx-page-layout/TableLayout.js.map +1 -1
- package/lib/vtx-page-layout/TableWrap.js +15 -3
- package/lib/vtx-page-layout/TableWrap.js.map +1 -1
- package/lib/vtx-page-layout/container.js +34 -4
- package/lib/vtx-page-layout/container.js.map +1 -1
- package/lib/vtx-page-layout/index.js +8 -0
- package/lib/vtx-page-layout/index.js.map +1 -1
- package/lib/vtx-page-layout/style/index.less +139 -139
- package/lib/vtx-rps-frame/index.js +44 -21
- package/lib/vtx-rps-frame/index.js.map +1 -1
- package/lib/vtx-scrollable-row/index.js +55 -19
- package/lib/vtx-scrollable-row/index.js.map +1 -1
- package/lib/vtx-scrollable-row/style/css.js +1 -0
- package/lib/vtx-scrollable-row/style/css.js.map +1 -1
- package/lib/vtx-scrollable-row/style/index.js +1 -0
- package/lib/vtx-scrollable-row/style/index.js.map +1 -1
- package/lib/vtx-scrollable-row/style/index.less +111 -111
- package/lib/vtx-search/VtxCol.js +21 -0
- package/lib/vtx-search/VtxCol.js.map +1 -1
- package/lib/vtx-search/VtxRow.js +12 -6
- package/lib/vtx-search/VtxRow.js.map +1 -1
- package/lib/vtx-search/index.js +87 -36
- package/lib/vtx-search/index.js.map +1 -1
- package/lib/vtx-search/style/css.js +5 -0
- package/lib/vtx-search/style/css.js.map +1 -1
- package/lib/vtx-search/style/index.js +5 -0
- package/lib/vtx-search/style/index.js.map +1 -1
- package/lib/vtx-search/style/index.less +81 -81
- package/lib/vtx-search-map-input/index.js +68 -39
- package/lib/vtx-search-map-input/index.js.map +1 -1
- package/lib/vtx-search-map-input/style/css.js +2 -0
- package/lib/vtx-search-map-input/style/css.js.map +1 -1
- package/lib/vtx-search-map-input/style/index.js +2 -0
- package/lib/vtx-search-map-input/style/index.js.map +1 -1
- package/lib/vtx-select/index.js +64 -20
- package/lib/vtx-select/index.js.map +1 -1
- package/lib/vtx-select/style/css.js +8 -0
- package/lib/vtx-select/style/css.js.map +1 -1
- package/lib/vtx-select/style/index.js +8 -0
- package/lib/vtx-select/style/index.js.map +1 -1
- package/lib/vtx-select/style/index.less +66 -66
- package/lib/vtx-signature/index.js +28 -14
- package/lib/vtx-signature/index.js.map +1 -1
- package/lib/vtx-signature/style/css.js +2 -0
- package/lib/vtx-signature/style/css.js.map +1 -1
- package/lib/vtx-signature/style/index.js +2 -0
- package/lib/vtx-signature/style/index.js.map +1 -1
- package/lib/vtx-signature/style/index.less +32 -32
- package/lib/vtx-split-pane/Pane.js +14 -2
- package/lib/vtx-split-pane/Pane.js.map +1 -1
- package/lib/vtx-split-pane/Resizer.js +30 -10
- package/lib/vtx-split-pane/Resizer.js.map +1 -1
- package/lib/vtx-split-pane/SplitPane.js +104 -52
- package/lib/vtx-split-pane/SplitPane.js.map +1 -1
- package/lib/vtx-split-pane/index.js +4 -0
- package/lib/vtx-split-pane/index.js.map +1 -1
- package/lib/vtx-split-pane/style/css.js +3 -0
- package/lib/vtx-split-pane/style/css.js.map +1 -1
- package/lib/vtx-split-pane/style/index.js +3 -0
- package/lib/vtx-split-pane/style/index.js.map +1 -1
- package/lib/vtx-split-pane/style/index.less +59 -59
- package/lib/vtx-statistics-column/Back.js +7 -1
- package/lib/vtx-statistics-column/Back.js.map +1 -1
- package/lib/vtx-statistics-column/Item.js +22 -5
- package/lib/vtx-statistics-column/Item.js.map +1 -1
- package/lib/vtx-statistics-column/Total.js +22 -5
- package/lib/vtx-statistics-column/Total.js.map +1 -1
- package/lib/vtx-statistics-column/context.js +2 -0
- package/lib/vtx-statistics-column/context.js.map +1 -1
- package/lib/vtx-statistics-column/index.js +16 -0
- package/lib/vtx-statistics-column/index.js.map +1 -1
- package/lib/vtx-statistics-column/style/index.less +61 -61
- package/lib/vtx-time-picker/index.js +16 -3
- package/lib/vtx-time-picker/index.js.map +1 -1
- package/lib/vtx-time-picker/style/css.js.map +1 -1
- package/lib/vtx-time-picker/style/index.js.map +1 -1
- package/lib/vtx-upload/FilePreview.js +28 -9
- package/lib/vtx-upload/FilePreview.js.map +1 -1
- package/lib/vtx-upload/index.js +136 -67
- package/lib/vtx-upload/index.js.map +1 -1
- package/lib/vtx-upload/style/css.js +6 -0
- package/lib/vtx-upload/style/css.js.map +1 -1
- package/lib/vtx-upload/style/index.js +6 -0
- package/lib/vtx-upload/style/index.js.map +1 -1
- package/lib/vtx-upload/style/index.less +59 -59
- package/lib/vtx-ztree/index.js +103 -51
- package/lib/vtx-ztree/index.js.map +1 -1
- package/lib/vtx-ztree/style/css.js +1 -0
- package/lib/vtx-ztree/style/css.js.map +1 -1
- package/lib/vtx-ztree/style/index.js +1 -0
- package/lib/vtx-ztree/style/index.js.map +1 -1
- package/lib/vtx-ztree/style/index.less +30 -30
- package/lib/vtx-ztree-select/index.js +97 -38
- package/lib/vtx-ztree-select/index.js.map +1 -1
- package/lib/vtx-ztree-select/style/css.js +4 -0
- package/lib/vtx-ztree-select/style/css.js.map +1 -1
- package/lib/vtx-ztree-select/style/index.js +4 -0
- package/lib/vtx-ztree-select/style/index.js.map +1 -1
- package/lib/vtx-ztree-select/style/index.less +76 -76
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilePreview.js","names":["Preview","props","type","name","url","downloadUrl","visible","onCancel","player","timer","setTimeout","document","getElementById","Player","id","width","height","controlPlugins","volume","playbackRate","modalProps","title","cancel","footer","createForm","wrapClassName","destroy","clearTimeout","border","propTypes","PropTypes","string","bool","func","reqURL","formDom","createElement","method","action","style","body","appendChild","submit","remove"],"sources":["vtx-upload/FilePreview.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Player from 'xgplayer/dist/simple_player';\nimport { volume, playbackRate } from 'xgplayer/dist/controls';\nimport Modal from 'antd/es/modal';\nimport Button from 'antd/es/button';\n\nfunction Preview(props) {\n const { type, name, url, downloadUrl, visible, onCancel } = props;\n\n let player = null,\n timer = null;\n timer = setTimeout(() => {\n if (type == 'video' && document.getElementById('vs')) {\n player = new Player({\n id: 'vs',\n url: url,\n width: 600,\n height: 337.5,\n controlPlugins: [\n volume, //音量\n playbackRate, //播放倍速\n ],\n playbackRate: [0.5, 0.75, 1, 1.5, 2], //传入倍速可选数组\n });\n }\n }, 500);\n\n let modalProps = {\n title: name,\n visible,\n onCancel: () => cancel(),\n footer: [\n <Button key=\"close\" onClick={() => cancel()}>\n 关闭\n </Button>,\n <Button key=\"download\" type=\"primary\" onClick={() => createForm(downloadUrl)}>\n 下载\n </Button>,\n ],\n };\n if (type == 'file') {\n modalProps = {\n ...modalProps,\n wrapClassName: 'vtx-modal-maxClass',\n };\n }\n if (type == 'video') {\n modalProps = {\n ...modalProps,\n width: 648,\n };\n }\n\n const cancel = () => {\n //销毁播放器\n player && player.destroy();\n timer && clearTimeout(timer);\n onCancel();\n };\n\n return (\n <Modal {...modalProps}>\n {type == 'file' ? (\n <iframe\n src={url}\n style={{ height: '100%', width: '100%', border: 'none' }}\n ></iframe>\n ) : null}\n {type == 'video' ? <div id=\"vs\"></div> : null}\n </Modal>\n );\n}\n\nPreview.propTypes = {\n type: PropTypes.string,\n name: PropTypes.string,\n url: PropTypes.string,\n visible: PropTypes.bool,\n onCancel: PropTypes.func,\n downloadUrl: PropTypes.string,\n};\n\nexport default Preview;\n\nconst createForm = function(reqURL) {\n let formDom = document.createElement('form'); //定义一个form表单\n formDom.method = 'post';\n formDom.action = reqURL;\n formDom.style = 'display:none';\n document.body.appendChild(formDom); //将表单放置在web中\n formDom.submit(); //表单提交\n formDom.remove();\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"FilePreview.js","names":["Preview","props","type","name","url","downloadUrl","visible","onCancel","player","timer","setTimeout","document","getElementById","Player","id","width","height","controlPlugins","volume","playbackRate","modalProps","title","cancel","footer","createForm","wrapClassName","destroy","clearTimeout","border","propTypes","PropTypes","string","bool","func","reqURL","formDom","createElement","method","action","style","body","appendChild","submit","remove"],"sources":["vtx-upload/FilePreview.jsx"],"sourcesContent":["import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Player from 'xgplayer/dist/simple_player';\r\nimport { volume, playbackRate } from 'xgplayer/dist/controls';\r\nimport Modal from 'antd/es/modal';\r\nimport Button from 'antd/es/button';\r\n\r\nfunction Preview(props) {\r\n const { type, name, url, downloadUrl, visible, onCancel } = props;\r\n\r\n let player = null,\r\n timer = null;\r\n timer = setTimeout(() => {\r\n if (type == 'video' && document.getElementById('vs')) {\r\n player = new Player({\r\n id: 'vs',\r\n url: url,\r\n width: 600,\r\n height: 337.5,\r\n controlPlugins: [\r\n volume, //音量\r\n playbackRate, //播放倍速\r\n ],\r\n playbackRate: [0.5, 0.75, 1, 1.5, 2], //传入倍速可选数组\r\n });\r\n }\r\n }, 500);\r\n\r\n let modalProps = {\r\n title: name,\r\n visible,\r\n onCancel: () => cancel(),\r\n footer: [\r\n <Button key=\"close\" onClick={() => cancel()}>\r\n 关闭\r\n </Button>,\r\n <Button key=\"download\" type=\"primary\" onClick={() => createForm(downloadUrl)}>\r\n 下载\r\n </Button>,\r\n ],\r\n };\r\n if (type == 'file') {\r\n modalProps = {\r\n ...modalProps,\r\n wrapClassName: 'vtx-modal-maxClass',\r\n };\r\n }\r\n if (type == 'video') {\r\n modalProps = {\r\n ...modalProps,\r\n width: 648,\r\n };\r\n }\r\n\r\n const cancel = () => {\r\n //销毁播放器\r\n player && player.destroy();\r\n timer && clearTimeout(timer);\r\n onCancel();\r\n };\r\n\r\n return (\r\n <Modal {...modalProps}>\r\n {type == 'file' ? (\r\n <iframe\r\n src={url}\r\n style={{ height: '100%', width: '100%', border: 'none' }}\r\n ></iframe>\r\n ) : null}\r\n {type == 'video' ? <div id=\"vs\"></div> : null}\r\n </Modal>\r\n );\r\n}\r\n\r\nPreview.propTypes = {\r\n type: PropTypes.string,\r\n name: PropTypes.string,\r\n url: PropTypes.string,\r\n visible: PropTypes.bool,\r\n onCancel: PropTypes.func,\r\n downloadUrl: PropTypes.string,\r\n};\r\n\r\nexport default Preview;\r\n\r\nconst createForm = function(reqURL) {\r\n let formDom = document.createElement('form'); //定义一个form表单\r\n formDom.method = 'post';\r\n formDom.action = reqURL;\r\n formDom.style = 'display:none';\r\n document.body.appendChild(formDom); //将表单放置在web中\r\n formDom.submit(); //表单提交\r\n formDom.remove();\r\n};\r\n"],"mappings":"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"}
|
package/lib/vtx-upload/index.js
CHANGED
|
@@ -1,47 +1,80 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
+
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
7
8
|
exports["default"] = void 0;
|
|
9
|
+
|
|
8
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
|
|
9
12
|
var _useSetState3 = _interopRequireDefault(require("ahooks/es/useSetState"));
|
|
13
|
+
|
|
10
14
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
15
|
+
|
|
11
16
|
var _viewerjs = _interopRequireDefault(require("viewerjs"));
|
|
17
|
+
|
|
12
18
|
var _upload = _interopRequireDefault(require("antd/es/upload"));
|
|
19
|
+
|
|
13
20
|
var _button = _interopRequireDefault(require("antd/es/button"));
|
|
21
|
+
|
|
14
22
|
var _icon = _interopRequireDefault(require("antd/es/icon"));
|
|
23
|
+
|
|
15
24
|
var _message = _interopRequireDefault(require("antd/es/message"));
|
|
25
|
+
|
|
16
26
|
var _downloadFile = _interopRequireDefault(require("@vtx/utils/lib/downloadFile"));
|
|
27
|
+
|
|
17
28
|
var _lodash = _interopRequireDefault(require("lodash.debounce"));
|
|
29
|
+
|
|
18
30
|
var _FilePreview = _interopRequireDefault(require("./FilePreview"));
|
|
31
|
+
|
|
19
32
|
var _getUrlParam = _interopRequireDefault(require("../_util/getUrlParam"));
|
|
33
|
+
|
|
20
34
|
var _excluded = ["isDragger", "draggerConfig", "accept", "mode", "viewMode", "showUploadList", "customizedButton", "listType", "onSuccess", "onError", "onRemove", "maxFileSize", "beforeUpload", "maxNum", "flag"];
|
|
35
|
+
|
|
21
36
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
37
|
+
|
|
22
38
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
39
|
+
|
|
23
40
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && 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; }
|
|
41
|
+
|
|
24
42
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
43
|
+
|
|
25
44
|
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
45
|
+
|
|
26
46
|
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
47
|
+
|
|
27
48
|
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
49
|
+
|
|
28
50
|
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
51
|
+
|
|
29
52
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
53
|
+
|
|
30
54
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
55
|
+
|
|
31
56
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
57
|
+
|
|
32
58
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
59
|
+
|
|
33
60
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
61
|
+
|
|
34
62
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
63
|
+
|
|
35
64
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
65
|
+
|
|
36
66
|
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
67
|
+
|
|
37
68
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
69
|
+
|
|
38
70
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
71
|
+
|
|
39
72
|
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; }
|
|
73
|
+
|
|
40
74
|
var debouncedMessage = (0, _lodash["default"])(function (msg) {
|
|
41
75
|
_message["default"].error(msg);
|
|
42
|
-
}, 500);
|
|
76
|
+
}, 500); //文件预览
|
|
43
77
|
|
|
44
|
-
//文件预览
|
|
45
78
|
var initVPrev = {
|
|
46
79
|
type: '',
|
|
47
80
|
//video or file
|
|
@@ -53,87 +86,99 @@ var initVPrev = {
|
|
|
53
86
|
var initUrl = {
|
|
54
87
|
action: '/cloudFile/common/uploadFile',
|
|
55
88
|
downloadUrl: '/cloudFile/common/downloadFile?id=',
|
|
56
|
-
thumbnailUrl: '/vortex/rest/cloud/np/file/downloadFileThumbnail?outputQuality=0.5&scale=0.2&id='
|
|
57
|
-
|
|
58
|
-
};
|
|
59
|
-
|
|
89
|
+
thumbnailUrl: '/vortex/rest/cloud/np/file/downloadFileThumbnail?outputQuality=0.5&scale=0.2&id=' //previewUrl: '/onlinePreview',
|
|
90
|
+
|
|
91
|
+
}; //禁止上传的文件类型
|
|
92
|
+
|
|
60
93
|
var rejectTypes = ['.asp', '.aspx', '.jsp', '.exe', '.cgi', '.asa', '.cer', '.cdx', '.hta'];
|
|
61
94
|
var Dragger = _upload["default"].Dragger;
|
|
62
95
|
var VtxUpload = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
63
96
|
var _window;
|
|
97
|
+
|
|
64
98
|
var _props$isDragger = props.isDragger,
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
99
|
+
isDragger = _props$isDragger === void 0 ? false : _props$isDragger,
|
|
100
|
+
_props$draggerConfig = props.draggerConfig,
|
|
101
|
+
draggerConfig = _props$draggerConfig === void 0 ? {} : _props$draggerConfig,
|
|
102
|
+
accept = props.accept,
|
|
103
|
+
_props$mode = props.mode,
|
|
104
|
+
mode = _props$mode === void 0 ? 'multiple' : _props$mode,
|
|
105
|
+
viewMode = props.viewMode,
|
|
106
|
+
showUploadList = props.showUploadList,
|
|
107
|
+
customizedButton = props.customizedButton,
|
|
108
|
+
_props$listType = props.listType,
|
|
109
|
+
listType = _props$listType === void 0 ? 'text' : _props$listType,
|
|
110
|
+
onSuccess = props.onSuccess,
|
|
111
|
+
onError = props.onError,
|
|
112
|
+
_onRemove = props.onRemove,
|
|
113
|
+
_props$maxFileSize = props.maxFileSize,
|
|
114
|
+
maxFileSize = _props$maxFileSize === void 0 ? 5 * 1024 * 1024 : _props$maxFileSize,
|
|
115
|
+
_beforeUpload = props.beforeUpload,
|
|
116
|
+
maxNum = props.maxNum,
|
|
117
|
+
flag = props.flag,
|
|
118
|
+
rest = _objectWithoutProperties(props, _excluded); // 是否使用缩略图
|
|
119
|
+
|
|
120
|
+
|
|
86
121
|
var useThumbnail = (props.useThumbnail === undefined ? true : props.useThumbnail) && (listType == 'picture' || listType == 'picture-card');
|
|
122
|
+
|
|
87
123
|
var _useState = (0, _react.useState)([]),
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
124
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
125
|
+
fileList = _useState2[0],
|
|
126
|
+
setFileList = _useState2[1]; //初始化文件列表
|
|
127
|
+
|
|
128
|
+
|
|
91
129
|
var _useState3 = (0, _react.useState)(null),
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
130
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
131
|
+
imageViewer = _useState4[0],
|
|
132
|
+
setImageViewer = _useState4[1]; //图片预览
|
|
133
|
+
|
|
134
|
+
|
|
95
135
|
var _useState5 = (0, _react.useState)([]),
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
136
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
137
|
+
imageList = _useState6[0],
|
|
138
|
+
setImageList = _useState6[1];
|
|
139
|
+
|
|
99
140
|
var _useState7 = (0, _react.useState)(null),
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
var _useSetState = (0, _useSetState3["default"])(initVPrev),
|
|
104
|
-
_useSetState2 = _slicedToArray(_useSetState, 2),
|
|
105
|
-
vPrev = _useSetState2[0],
|
|
106
|
-
setVPrev = _useSetState2[1]; //文件预览相关
|
|
141
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
142
|
+
imageCt = _useState8[0],
|
|
143
|
+
setImageCt = _useState8[1];
|
|
107
144
|
|
|
145
|
+
var _useSetState = (0, _useSetState3["default"])(initVPrev),
|
|
146
|
+
_useSetState2 = _slicedToArray(_useSetState, 2),
|
|
147
|
+
vPrev = _useSetState2[0],
|
|
148
|
+
setVPrev = _useSetState2[1]; //文件预览相关
|
|
108
149
|
// 参数中拼接token
|
|
150
|
+
|
|
151
|
+
|
|
109
152
|
function joinToken(str) {
|
|
110
153
|
if (str.indexOf('token=') === -1 && str.indexOf('?') > -1) {
|
|
111
154
|
return str.replace('?', "?token=".concat((0, _getUrlParam["default"])('token') || '', "&"));
|
|
112
155
|
} else if (str.indexOf('?') === -1) {
|
|
113
156
|
return str + "?token=".concat((0, _getUrlParam["default"])('token') || '');
|
|
114
157
|
}
|
|
158
|
+
|
|
115
159
|
return str;
|
|
116
160
|
}
|
|
161
|
+
|
|
117
162
|
var url = {
|
|
118
163
|
action: props.action || initUrl.action,
|
|
119
164
|
downloadUrl: joinToken(props.downloadUrl || initUrl.downloadUrl),
|
|
120
|
-
thumbnailUrl: joinToken((_window = window) !== null && _window !== void 0 && _window.flsPrefix ? "".concat(window.flsPrefix).concat(initUrl.thumbnailUrl) : "".concat(props.thumbnailUrl || initUrl.thumbnailUrl))
|
|
121
|
-
//previewUrl: props.previewUrl || initUrl.previewUrl,
|
|
122
|
-
};
|
|
165
|
+
thumbnailUrl: joinToken((_window = window) !== null && _window !== void 0 && _window.flsPrefix ? "".concat(window.flsPrefix).concat(initUrl.thumbnailUrl) : "".concat(props.thumbnailUrl || initUrl.thumbnailUrl)) //previewUrl: props.previewUrl || initUrl.previewUrl,
|
|
123
166
|
|
|
167
|
+
};
|
|
124
168
|
var action = url.action,
|
|
125
|
-
|
|
126
|
-
|
|
169
|
+
downloadUrl = url.downloadUrl,
|
|
170
|
+
thumbnailUrl = url.thumbnailUrl;
|
|
127
171
|
(0, _react.useEffect)(function () {
|
|
128
172
|
setFileList(getSynFileList(props) || []);
|
|
129
173
|
}, [flag]);
|
|
130
174
|
(0, _react.useEffect)(function () {
|
|
131
175
|
if (Array.isArray(fileList)) {
|
|
132
176
|
// 只有图片的才可以预览,这边需要判断是否是图片
|
|
133
|
-
var imagelist = [];
|
|
134
|
-
|
|
177
|
+
var imagelist = []; // 只能通过后缀来判断
|
|
178
|
+
|
|
135
179
|
fileList.map(function (file) {
|
|
136
180
|
var _file$type;
|
|
181
|
+
|
|
137
182
|
if (((_file$type = file.type) === null || _file$type === void 0 ? void 0 : _file$type.indexOf('image')) > -1) {
|
|
138
183
|
imagelist.push(file);
|
|
139
184
|
}
|
|
@@ -146,8 +191,10 @@ var VtxUpload = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
146
191
|
setImageViewer(new _viewerjs["default"](imageCt, {}));
|
|
147
192
|
}
|
|
148
193
|
}, [imageCt]);
|
|
194
|
+
|
|
149
195
|
var getConfig = function getConfig() {
|
|
150
196
|
var token = (0, _getUrlParam["default"])('token') || '';
|
|
197
|
+
|
|
151
198
|
var config = _objectSpread(_objectSpread({}, rest), {}, {
|
|
152
199
|
accept: accept,
|
|
153
200
|
action: action,
|
|
@@ -159,14 +206,18 @@ var VtxUpload = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
159
206
|
}, rest.headers),
|
|
160
207
|
onChange: function onChange(info) {
|
|
161
208
|
setFileList(info.fileList);
|
|
209
|
+
|
|
162
210
|
if (info.file.response && info.file.response.result === 1) {
|
|
163
211
|
_message["default"].error(info.file.response.errMsg || '上传失败!');
|
|
212
|
+
|
|
164
213
|
var flt = _toConsumableArray(fileList);
|
|
214
|
+
|
|
165
215
|
flt.pop();
|
|
166
216
|
setFileList(flt);
|
|
167
217
|
return;
|
|
168
|
-
}
|
|
169
|
-
|
|
218
|
+
} // 此处根据后台返回的数据结构取得文件ID
|
|
219
|
+
|
|
220
|
+
|
|
170
221
|
if (info.file.status !== 'uploading' && info.file.status !== 'removed') {
|
|
171
222
|
var vtxId = info.file.response && Array.isArray(info.file.response.data) && info.file.response.data.length > 0 ? info.file.response.data[0].id : undefined;
|
|
172
223
|
var newFileList = info.fileList;
|
|
@@ -187,21 +238,23 @@ var VtxUpload = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
187
238
|
thumbUrl: useThumbnail ? thumbnailUrl + vtxId : undefined
|
|
188
239
|
});
|
|
189
240
|
}
|
|
241
|
+
|
|
190
242
|
return item;
|
|
191
243
|
});
|
|
244
|
+
|
|
192
245
|
if (mode == 'single') {
|
|
193
246
|
setFileList([newFile]);
|
|
194
247
|
} else {
|
|
195
248
|
setFileList(newFileList);
|
|
196
|
-
}
|
|
197
|
-
// 更新组件状态
|
|
249
|
+
} // 更新组件状态
|
|
198
250
|
// if (mode == 'single' && info.file.status === 'done') {
|
|
199
251
|
// setFileList([newFile]);
|
|
200
252
|
// } else {
|
|
201
253
|
// setFileList(newFileList);
|
|
202
254
|
// }
|
|
203
|
-
|
|
204
255
|
// 触发外部方法
|
|
256
|
+
|
|
257
|
+
|
|
205
258
|
if (info.file.status === 'done') {
|
|
206
259
|
if (typeof onSuccess == 'function') {
|
|
207
260
|
onSuccess(newFile);
|
|
@@ -222,37 +275,48 @@ var VtxUpload = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
222
275
|
//限制文件大小
|
|
223
276
|
if (maxFileSize && typeof maxFileSize === 'number') {
|
|
224
277
|
var limit = file.size < maxFileSize;
|
|
278
|
+
|
|
225
279
|
if (!limit) {
|
|
226
280
|
_message["default"].error("\u8BF7\u4E0A\u4F20".concat(maxFileSize / 1024 / 1024, "M\u4EE5\u5185\u7684\u6587\u4EF6"));
|
|
281
|
+
|
|
227
282
|
return false;
|
|
228
283
|
}
|
|
229
|
-
}
|
|
230
|
-
|
|
284
|
+
} //限制不允许上传的文件类型(通过文件名后缀)
|
|
285
|
+
|
|
286
|
+
|
|
231
287
|
var pointIndex = file.name ? file.name.lastIndexOf('.') : -1;
|
|
288
|
+
|
|
232
289
|
if (pointIndex > -1) {
|
|
233
290
|
var fileType = file.name.substring(pointIndex);
|
|
291
|
+
|
|
234
292
|
if (rejectTypes.includes(fileType)) {
|
|
235
293
|
_message["default"].error('不支持该文件类型');
|
|
294
|
+
|
|
236
295
|
return false;
|
|
237
296
|
}
|
|
238
|
-
}
|
|
239
|
-
|
|
297
|
+
} // 多选限制文件数量
|
|
298
|
+
|
|
299
|
+
|
|
240
300
|
if (typeof maxNum === 'number' && afterFileList.length + fileList.length > maxNum) {
|
|
241
301
|
// 减少提示错误次数, 思路,防抖 这边有个问题 就是防抖的这个方法 return fasle 不上传
|
|
242
302
|
debouncedMessage("\u6700\u591A\u4E0A\u4F20".concat(maxNum, "\u4E2A"));
|
|
243
303
|
return false;
|
|
244
304
|
}
|
|
305
|
+
|
|
245
306
|
if (typeof _beforeUpload === 'function') {
|
|
246
307
|
return _beforeUpload(file, afterFileList);
|
|
247
308
|
}
|
|
309
|
+
|
|
248
310
|
return true;
|
|
249
311
|
}
|
|
250
312
|
});
|
|
313
|
+
|
|
251
314
|
if (props.onPreview && typeof props.onPreview === 'function') {
|
|
252
315
|
config.onPreview = props.onPreview;
|
|
253
316
|
} else {
|
|
254
317
|
config.onPreview = function (file) {
|
|
255
318
|
var _file$type2, _file$type3;
|
|
319
|
+
|
|
256
320
|
if (!file.type) {
|
|
257
321
|
(0, _downloadFile["default"])(downloadUrl + file.id, {
|
|
258
322
|
fileName: file.name
|
|
@@ -272,9 +336,7 @@ var VtxUpload = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
272
336
|
(0, _downloadFile["default"])(downloadUrl + file.id, {
|
|
273
337
|
fileName: file.name
|
|
274
338
|
}, 'blob');
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
// TODO 暂无好的文件预览服务,等后续完善,只提供下载
|
|
339
|
+
} // TODO 暂无好的文件预览服务,等后续完善,只提供下载
|
|
278
340
|
// else if (
|
|
279
341
|
// file.type == 'application/PDF' ||
|
|
280
342
|
// file.type == 'application/vnd.ms-excel' ||
|
|
@@ -292,7 +354,6 @@ var VtxUpload = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
292
354
|
// '?id=' + file.id + '&fullfilename=' + file.name.replace(/\s*/g, ''),
|
|
293
355
|
// )}`;
|
|
294
356
|
// }
|
|
295
|
-
|
|
296
357
|
// setVPrev({
|
|
297
358
|
// type: 'file',
|
|
298
359
|
// name: file.name || '文件预览',
|
|
@@ -301,17 +362,20 @@ var VtxUpload = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
301
362
|
// visible: true,
|
|
302
363
|
// });
|
|
303
364
|
// }
|
|
365
|
+
|
|
304
366
|
};
|
|
305
|
-
}
|
|
367
|
+
} // viewMode
|
|
368
|
+
|
|
306
369
|
|
|
307
|
-
// viewMode
|
|
308
370
|
if (viewMode) {
|
|
309
371
|
config.showUploadList = {
|
|
310
372
|
showRemoveIcon: false
|
|
311
373
|
};
|
|
312
374
|
}
|
|
375
|
+
|
|
313
376
|
return config;
|
|
314
377
|
};
|
|
378
|
+
|
|
315
379
|
var handlePreview = function handlePreview(file) {
|
|
316
380
|
var imageIndex = imageList.map(function (item) {
|
|
317
381
|
return item.id;
|
|
@@ -320,18 +384,21 @@ var VtxUpload = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
320
384
|
imageViewer.update();
|
|
321
385
|
imageViewer.view(imageIndex);
|
|
322
386
|
};
|
|
387
|
+
|
|
323
388
|
var getSynFileList = function getSynFileList(props) {
|
|
324
|
-
var processedFileList = props.fileList || [];
|
|
325
|
-
|
|
389
|
+
var processedFileList = props.fileList || []; // 单文件模式只取第一个
|
|
390
|
+
|
|
326
391
|
if (props.mode == 'single' && processedFileList.length > 1) {
|
|
327
392
|
processedFileList = [processedFileList[0]];
|
|
328
393
|
}
|
|
394
|
+
|
|
329
395
|
processedFileList = processedFileList.map(function (item, index) {
|
|
330
396
|
// 将外部传入的简易文件数组处理成为组件需要的数组结构
|
|
331
397
|
if (item.name === undefined || item.id === undefined) {
|
|
332
398
|
// eslint-disable-next-line no-console
|
|
333
399
|
console.error('文件列表的name和id属性不能为空');
|
|
334
400
|
}
|
|
401
|
+
|
|
335
402
|
return _objectSpread(_objectSpread({}, item), {}, {
|
|
336
403
|
uid: -1 - index,
|
|
337
404
|
status: 'done',
|
|
@@ -341,6 +408,7 @@ var VtxUpload = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
341
408
|
});
|
|
342
409
|
return processedFileList;
|
|
343
410
|
};
|
|
411
|
+
|
|
344
412
|
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, isDragger ? /*#__PURE__*/_react["default"].createElement(Dragger, _extends({}, getConfig(), {
|
|
345
413
|
ref: ref
|
|
346
414
|
}), draggerConfig !== null && draggerConfig !== void 0 && draggerConfig.img ? /*#__PURE__*/_react["default"].createElement("img", {
|
|
@@ -382,6 +450,7 @@ var VtxUpload = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
382
450
|
}
|
|
383
451
|
}, imageList.filter(function (item) {
|
|
384
452
|
var _item$type;
|
|
453
|
+
|
|
385
454
|
return item.type && ((_item$type = item.type) === null || _item$type === void 0 ? void 0 : _item$type.indexOf('image')) > -1;
|
|
386
455
|
}).map(function (item, index) {
|
|
387
456
|
return /*#__PURE__*/_react["default"].createElement("li", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["debouncedMessage","debounce","msg","message","error","initVPrev","type","name","url","downloadUrl","visible","initUrl","action","thumbnailUrl","rejectTypes","Dragger","Upload","VtxUpload","forwardRef","props","ref","isDragger","draggerConfig","accept","mode","viewMode","showUploadList","customizedButton","listType","onSuccess","onError","onRemove","maxFileSize","beforeUpload","maxNum","flag","rest","useThumbnail","undefined","useState","fileList","setFileList","imageViewer","setImageViewer","imageList","setImageList","imageCt","setImageCt","useSetState","vPrev","setVPrev","joinToken","str","indexOf","replace","getUrlParam","window","flsPrefix","useEffect","getSynFileList","Array","isArray","imagelist","map","file","push","Viewer","getConfig","token","config","headers","Authorization","onChange","info","response","result","errMsg","flt","pop","status","vtxId","data","length","id","newFileList","newFile","thumbUrl","filter","item","uid","afterFileList","limit","size","pointIndex","lastIndexOf","fileType","substring","includes","onPreview","downloadFile","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"],"sources":["vtx-upload/index.jsx"],"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 === undefined ? true : props.useThumbnail) &&\n (listType == 'picture' || listType == 'picture-card');\n\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 // 参数中拼接token\n function joinToken(str) {\n if (str.indexOf('token=') === -1 && str.indexOf('?') > -1) {\n return str.replace('?', `?token=${getUrlParam('token') || ''}&`);\n } else if (str.indexOf('?') === -1) {\n return str + `?token=${getUrlParam('token') || ''}`;\n }\n return str;\n }\n\n const url = {\n action: props.action || initUrl.action,\n downloadUrl: joinToken(props.downloadUrl || initUrl.downloadUrl),\n thumbnailUrl: joinToken(window?.flsPrefix ? `${window.flsPrefix}${initUrl.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 return 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"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["debouncedMessage","debounce","msg","message","error","initVPrev","type","name","url","downloadUrl","visible","initUrl","action","thumbnailUrl","rejectTypes","Dragger","Upload","VtxUpload","forwardRef","props","ref","isDragger","draggerConfig","accept","mode","viewMode","showUploadList","customizedButton","listType","onSuccess","onError","onRemove","maxFileSize","beforeUpload","maxNum","flag","rest","useThumbnail","undefined","useState","fileList","setFileList","imageViewer","setImageViewer","imageList","setImageList","imageCt","setImageCt","useSetState","vPrev","setVPrev","joinToken","str","indexOf","replace","getUrlParam","window","flsPrefix","useEffect","getSynFileList","Array","isArray","imagelist","map","file","push","Viewer","getConfig","token","config","headers","Authorization","onChange","info","response","result","errMsg","flt","pop","status","vtxId","data","length","id","newFileList","newFile","thumbUrl","filter","item","uid","afterFileList","limit","size","pointIndex","lastIndexOf","fileType","substring","includes","onPreview","downloadFile","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"],"sources":["vtx-upload/index.jsx"],"sourcesContent":["import React, { useState, useEffect, forwardRef } from 'react';\r\nimport useSetState from 'ahooks/es/useSetState';\r\nimport PropTypes from 'prop-types';\r\nimport Viewer from 'viewerjs';\r\nimport Upload from 'antd/es/upload';\r\nimport Button from 'antd/es/button';\r\nimport Icon from 'antd/es/icon';\r\nimport message from 'antd/es/message';\r\nimport downloadFile from '@vtx/utils/lib/downloadFile';\r\nimport debounce from 'lodash.debounce';\r\nimport Prev from './FilePreview';\r\nimport getUrlParam from '../_util/getUrlParam';\r\n\r\nconst debouncedMessage = debounce(msg => {\r\n message.error(msg);\r\n}, 500);\r\n\r\n//文件预览\r\nconst initVPrev = {\r\n type: '', //video or file\r\n name: '',\r\n url: '',\r\n downloadUrl: '',\r\n visible: false,\r\n};\r\n\r\nconst initUrl = {\r\n action: '/cloudFile/common/uploadFile',\r\n downloadUrl: '/cloudFile/common/downloadFile?id=',\r\n thumbnailUrl:\r\n '/vortex/rest/cloud/np/file/downloadFileThumbnail?outputQuality=0.5&scale=0.2&id=',\r\n //previewUrl: '/onlinePreview',\r\n};\r\n//禁止上传的文件类型\r\nconst rejectTypes = ['.asp', '.aspx', '.jsp', '.exe', '.cgi', '.asa', '.cer', '.cdx', '.hta'];\r\n\r\nconst Dragger = Upload.Dragger;\r\nconst VtxUpload = forwardRef((props, ref) => {\r\n const {\r\n isDragger = false, //是否拖拽模式\r\n draggerConfig = {}, //拖动配置\r\n accept, //接受上传的文件类型\r\n mode = 'multiple', //单文件模式or多文件模式\r\n viewMode, //是否查看模式(隐藏上传按钮)\r\n showUploadList, //是否展示文件列表\r\n customizedButton, //自定义上传文字描述\r\n listType = 'text', //上传列表的样式\r\n onSuccess, //上传成功\r\n onError, //上传失败\r\n onRemove, //删除\r\n maxFileSize = 5 * 1024 * 1024, //文件大小限制,默认最大5M\r\n beforeUpload, //上传前回调\r\n maxNum, //最多上传的文件数量\r\n flag, //同步数据标记\r\n ...rest\r\n } = props;\r\n // 是否使用缩略图\r\n const useThumbnail =\r\n (props.useThumbnail === undefined ? true : props.useThumbnail) &&\r\n (listType == 'picture' || listType == 'picture-card');\r\n\r\n\r\n const [fileList, setFileList] = useState([]); //初始化文件列表\r\n const [imageViewer, setImageViewer] = useState(null); //图片预览\r\n const [imageList, setImageList] = useState([]);\r\n const [imageCt, setImageCt] = useState(null);\r\n const [vPrev, setVPrev] = useSetState(initVPrev); //文件预览相关\r\n\r\n // 参数中拼接token\r\n function joinToken(str) {\r\n if (str.indexOf('token=') === -1 && str.indexOf('?') > -1) {\r\n return str.replace('?', `?token=${getUrlParam('token') || ''}&`);\r\n } else if (str.indexOf('?') === -1) {\r\n return str + `?token=${getUrlParam('token') || ''}`;\r\n }\r\n return str;\r\n }\r\n\r\n const url = {\r\n action: props.action || initUrl.action,\r\n downloadUrl: joinToken(props.downloadUrl || initUrl.downloadUrl),\r\n thumbnailUrl: joinToken(window?.flsPrefix ? `${window.flsPrefix}${initUrl.thumbnailUrl}` : `${props.thumbnailUrl || initUrl.thumbnailUrl}`),\r\n //previewUrl: props.previewUrl || initUrl.previewUrl,\r\n };\r\n const { action, downloadUrl, thumbnailUrl } = url;\r\n\r\n useEffect(() => {\r\n setFileList(getSynFileList(props) || []);\r\n }, [flag]);\r\n\r\n useEffect(() => {\r\n if (Array.isArray(fileList)) {\r\n // 只有图片的才可以预览,这边需要判断是否是图片\r\n const imagelist = [];\r\n // 只能通过后缀来判断\r\n fileList.map(file => {\r\n if (file.type?.indexOf('image') > -1) {\r\n imagelist.push(file);\r\n }\r\n });\r\n setImageList(imagelist);\r\n }\r\n }, [fileList]);\r\n\r\n useEffect(() => {\r\n if (imageCt) {\r\n setImageViewer(new Viewer(imageCt, {}));\r\n }\r\n }, [imageCt]);\r\n\r\n const getConfig = () => {\r\n let token = getUrlParam('token') || '';\r\n let config = {\r\n ...rest,\r\n accept,\r\n action,\r\n fileList: fileList,\r\n listType,\r\n showUploadList,\r\n headers: {\r\n Authorization: token ? `Bearer ${token}` : '',\r\n ...rest.headers,\r\n },\r\n onChange(info) {\r\n setFileList(info.fileList);\r\n if (info.file.response && info.file.response.result === 1) {\r\n message.error(info.file.response.errMsg || '上传失败!');\r\n let flt = [...fileList];\r\n flt.pop();\r\n setFileList(flt);\r\n return;\r\n }\r\n // 此处根据后台返回的数据结构取得文件ID\r\n if (info.file.status !== 'uploading' && info.file.status !== 'removed') {\r\n let vtxId =\r\n info.file.response &&\r\n Array.isArray(info.file.response.data) &&\r\n info.file.response.data.length > 0\r\n ? info.file.response.data[0].id\r\n : undefined;\r\n let newFileList = info.fileList;\r\n let newFile = vtxId\r\n ? {\r\n ...info.file,\r\n id: vtxId,\r\n url: downloadUrl + vtxId,\r\n thumbUrl: useThumbnail ? thumbnailUrl + vtxId : undefined,\r\n }\r\n : {\r\n ...info.file,\r\n };\r\n newFileList = info.fileList\r\n .filter(item => {\r\n // 有vtxId代表上传成功,有item.id代表之前上传成功的\r\n if (vtxId || item.id) return true;\r\n return false;\r\n })\r\n .map(item => {\r\n if (item.uid == info.file.uid) {\r\n return {\r\n ...item,\r\n id: vtxId,\r\n url: downloadUrl + vtxId,\r\n thumbUrl: useThumbnail ? thumbnailUrl + vtxId : undefined,\r\n };\r\n }\r\n return item;\r\n });\r\n\r\n if (mode == 'single') {\r\n setFileList([newFile]);\r\n } else {\r\n setFileList(newFileList);\r\n }\r\n // 更新组件状态\r\n // if (mode == 'single' && info.file.status === 'done') {\r\n // setFileList([newFile]);\r\n // } else {\r\n // setFileList(newFileList);\r\n // }\r\n\r\n // 触发外部方法\r\n if (info.file.status === 'done') {\r\n if (typeof onSuccess == 'function') {\r\n onSuccess(newFile);\r\n }\r\n } else if (info.file.status === 'error') {\r\n if (typeof onError == 'function') {\r\n onError(info.file);\r\n }\r\n }\r\n }\r\n },\r\n onRemove(file) {\r\n if (typeof onRemove == 'function') {\r\n return onRemove(file);\r\n }\r\n },\r\n beforeUpload(file, afterFileList) {\r\n //限制文件大小\r\n if (maxFileSize && typeof maxFileSize === 'number') {\r\n const limit = file.size < maxFileSize;\r\n if (!limit) {\r\n message.error(`请上传${maxFileSize / 1024 / 1024}M以内的文件`);\r\n return false;\r\n }\r\n }\r\n //限制不允许上传的文件类型(通过文件名后缀)\r\n let pointIndex = file.name ? file.name.lastIndexOf('.') : -1;\r\n if (pointIndex > -1) {\r\n let fileType = file.name.substring(pointIndex);\r\n if (rejectTypes.includes(fileType)) {\r\n message.error('不支持该文件类型');\r\n return false;\r\n }\r\n }\r\n // 多选限制文件数量\r\n if (typeof maxNum === 'number' && afterFileList.length + fileList.length > maxNum) {\r\n // 减少提示错误次数, 思路,防抖 这边有个问题 就是防抖的这个方法 return fasle 不上传\r\n debouncedMessage(`最多上传${maxNum}个`);\r\n return false;\r\n }\r\n\r\n if (typeof beforeUpload === 'function') {\r\n return beforeUpload(file, afterFileList);\r\n }\r\n return true;\r\n },\r\n };\r\n\r\n if (props.onPreview && typeof props.onPreview === 'function') {\r\n config.onPreview = props.onPreview;\r\n } else {\r\n config.onPreview = file => {\r\n if (!file.type) {\r\n downloadFile(downloadUrl + file.id, { fileName: file.name }, 'blob');\r\n } else if (file.type?.indexOf('image') > -1) {\r\n handlePreview(file);\r\n } else if (file.type?.indexOf('video') > -1) {\r\n // 视频\r\n setVPrev({\r\n type: 'video',\r\n name: file.name || '视频预览',\r\n url: downloadUrl + file.id,\r\n downloadUrl: downloadUrl + file.id,\r\n visible: true,\r\n });\r\n } else {\r\n downloadFile(downloadUrl + file.id, { fileName: file.name }, 'blob');\r\n }\r\n\r\n // TODO 暂无好的文件预览服务,等后续完善,只提供下载\r\n // else if (\r\n // file.type == 'application/PDF' ||\r\n // file.type == 'application/vnd.ms-excel' ||\r\n // file.type ==\r\n // 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' ||\r\n // file.type == 'application/msword' ||\r\n // file.type ==\r\n // 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'\r\n // ) {\r\n // let url = '';\r\n // if (props.previewUrl) {\r\n // url = `${props.previewUrl}?id=${file.id}&fileName=${file.name}`;\r\n // } else {\r\n // url = `http://183.215.89.162:8012/onlinePreview?url=http://183.136.177.108:8003/cloudFile/common/downloadFile${encodeURIComponent(\r\n // '?id=' + file.id + '&fullfilename=' + file.name.replace(/\\s*/g, ''),\r\n // )}`;\r\n // }\r\n\r\n // setVPrev({\r\n // type: 'file',\r\n // name: file.name || '文件预览',\r\n // url: url,\r\n // downloadUrl: downloadUrl + file.id,\r\n // visible: true,\r\n // });\r\n // }\r\n };\r\n }\r\n\r\n // viewMode\r\n if (viewMode) {\r\n config.showUploadList = { showRemoveIcon: false };\r\n }\r\n\r\n return config;\r\n };\r\n\r\n const handlePreview = file => {\r\n const imageIndex = imageList.map(item => item.id).indexOf(file.id);\r\n if (imageIndex == -1) return;\r\n imageViewer.update();\r\n imageViewer.view(imageIndex);\r\n };\r\n\r\n const getSynFileList = props => {\r\n let processedFileList = props.fileList || [];\r\n // 单文件模式只取第一个\r\n if (props.mode == 'single' && processedFileList.length > 1) {\r\n processedFileList = [processedFileList[0]];\r\n }\r\n processedFileList = processedFileList.map((item, index) => {\r\n // 将外部传入的简易文件数组处理成为组件需要的数组结构\r\n if (item.name === undefined || item.id === undefined) {\r\n // eslint-disable-next-line no-console\r\n console.error('文件列表的name和id属性不能为空');\r\n }\r\n return {\r\n ...item,\r\n uid: -1 - index,\r\n status: 'done',\r\n url: item.url || downloadUrl + item.id,\r\n thumbUrl: useThumbnail ? item.thumbUrl || thumbnailUrl + item.id : undefined,\r\n };\r\n });\r\n return processedFileList;\r\n };\r\n return (\r\n <>\r\n {isDragger ? (\r\n <Dragger {...getConfig()} ref={ref}>\r\n {draggerConfig?.img ? (\r\n <img\r\n src={draggerConfig.img}\r\n alt=\"\"\r\n style={{\r\n maxWidth: 100,\r\n maxHeight: 100,\r\n marginTop: '3%',\r\n marginBottom: '5%',\r\n }}\r\n />\r\n ) : (\r\n <p className=\"ant-upload-drag-icon\">\r\n <Icon type=\"inbox\" />\r\n </p>\r\n )}\r\n <p className=\"ant-upload-text\">{draggerConfig?.mainText || '点击或拖拽上传'}</p>\r\n <p className=\"ant-upload-hint\">\r\n {draggerConfig?.subText || '支持上传word,excel,png...'}\r\n </p>\r\n </Dragger>\r\n ) : (\r\n <Upload {...getConfig()} ref={ref}>\r\n {viewMode || fileList.length >= maxNum\r\n ? null\r\n : customizedButton ||\r\n (listType == 'picture-card' ? (\r\n <div>\r\n <Icon type=\"plus\" style={{ fontSize: '28px', color: '#999' }} />\r\n <div className=\"ant-upload-text\">上传</div>\r\n </div>\r\n ) : (\r\n <Button>\r\n <Icon type=\"upload\" />\r\n 上传\r\n </Button>\r\n ))}\r\n </Upload>\r\n )}\r\n <div style={{ display: 'none' }}>\r\n <ul\r\n ref={ins => {\r\n if (ins) setImageCt(ins);\r\n }}\r\n >\r\n {imageList\r\n .filter(item => item.type && item.type?.indexOf('image') > -1)\r\n .map((item, index) => (\r\n <li key={item.uid}>\r\n <img\r\n src={item.url || downloadUrl + item.id}\r\n alt={item.name || `picture-${index + 1}`}\r\n />\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n {/* 视频预览 */}\r\n <Prev onCancel={() => setVPrev(initVPrev)} {...vPrev} />\r\n </>\r\n );\r\n});\r\n\r\nVtxUpload.propTypes = {\r\n isDragger: PropTypes.bool,\r\n draggerConfig: PropTypes.object,\r\n accept: PropTypes.string,\r\n mode: PropTypes.string,\r\n viewMode: PropTypes.bool,\r\n showUploadList: PropTypes.bool,\r\n customizedButton: PropTypes.node,\r\n listType: PropTypes.string,\r\n action: PropTypes.string,\r\n downloadUrl: PropTypes.string,\r\n thumbnailUrl: PropTypes.string,\r\n previewUrl: PropTypes.string,\r\n onSuccess: PropTypes.func,\r\n onError: PropTypes.func,\r\n onRemove: PropTypes.func,\r\n onPreview: PropTypes.func,\r\n maxFileSize: PropTypes.number,\r\n beforeUpload: PropTypes.func,\r\n maxNum: PropTypes.number,\r\n fileList: PropTypes.array,\r\n flag: PropTypes.number,\r\n useThumbnail: PropTypes.bool,\r\n};\r\nexport default VtxUpload;\r\n"],"mappings":"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"}
|