@vtx/components 3.1.134 → 3.1.136

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.
@@ -1,11 +1,13 @@
1
1
  "use strict";
2
2
 
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
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
6
8
  exports["default"] = void 0;
7
9
 
8
- var _react = _interopRequireDefault(require("react"));
10
+ var _react = _interopRequireWildcard(require("react"));
9
11
 
10
12
  var _modal = _interopRequireDefault(require("antd/lib/modal"));
11
13
 
@@ -21,8 +23,16 @@ var _result = _interopRequireDefault(require("./result"));
21
23
 
22
24
  var _getToken = _interopRequireDefault(require("../_util/getToken"));
23
25
 
26
+ var _md = _interopRequireDefault(require("md5"));
27
+
28
+ var _utils = require("@vtx/utils");
29
+
24
30
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
25
31
 
32
+ 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); }
33
+
34
+ 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; }
35
+
26
36
  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; }
27
37
 
28
38
  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; }
@@ -44,6 +54,8 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
44
54
  var token = (0, _getToken["default"])();
45
55
 
46
56
  function VtxImport(props) {
57
+ var indexRef = (0, _react.useRef)(0);
58
+
47
59
  var _useSet = (0, _useSet3["default"])({
48
60
  fileForm: null,
49
61
  // form表单
@@ -71,11 +83,174 @@ function VtxImport(props) {
71
83
  title: '错误说明',
72
84
  dataIndex: 'messages',
73
85
  key: 'messages'
74
- }]
86
+ }],
87
+ step: 1,
88
+ chunkSize: props.chunkSize || 10 * 1024 * 1024,
89
+ totalChunk: 0,
90
+ currentIndex: 0,
91
+ chunkId: '',
92
+ chunks: []
75
93
  }),
76
94
  _useSet2 = _slicedToArray(_useSet, 2),
77
95
  state = _useSet2[0],
78
- setState = _useSet2[1]; // 获取上传地址(拼接参数)
96
+ setState = _useSet2[1]; // 开始准备文件
97
+
98
+
99
+ function checkFile(file) {
100
+ if (file.size <= state.chunkSize) {
101
+ upload(file);
102
+ } else {
103
+ setState({
104
+ mode: 'spread'
105
+ });
106
+ var chunks = spreadFile(file);
107
+ setState({
108
+ chunks: chunks,
109
+ chunkId: (0, _md["default"])("".concat(new Date().valueOf()).concat(Math.random())),
110
+ totalChunk: chunks.length,
111
+ step: 2
112
+ });
113
+ }
114
+ } // 开始上传
115
+
116
+
117
+ function startUpload() {
118
+ var dataArr = [];
119
+ state.chunks.forEach(function (e, i) {
120
+ //创建formdata对象
121
+ var data = new FormData(); // data.append("totalNumber", state.chunks.length)
122
+
123
+ data.append('chunkSize', state.chunks.length);
124
+ data.append('chunkNo', i + 1);
125
+ data.append('chunkId', state.chunkId);
126
+ data.append('tenantId', (0, _utils.getVtxToken)('tenantId'));
127
+ data.append('file', new File([e], state.fileInput.files[0].name));
128
+ dataArr.push(data);
129
+ });
130
+ uploadAsync(dataArr);
131
+ } // 上传
132
+
133
+
134
+ function uploadAsync(list) {
135
+ if (indexRef.current < list.length) {
136
+ var xhr = new XMLHttpRequest();
137
+
138
+ xhr.onload = function () {
139
+ if (xhr.status === 200) {
140
+ setState({
141
+ currentIndex: indexRef.current + 1
142
+ });
143
+ indexRef.current += 1;
144
+ uploadAsync(list);
145
+ }
146
+ };
147
+
148
+ xhr.onerror = function () {
149
+ _message["default"].error('上传失败');
150
+ }; // 发送请求
151
+
152
+
153
+ xhr.open('POST', '/cloudFile/common/uploadChunk', true);
154
+ xhr.send(list[indexRef.current]);
155
+ } else {
156
+ mergeFile();
157
+ }
158
+ } // 合并分片
159
+
160
+
161
+ function mergeFile() {
162
+ var xhr = new XMLHttpRequest(); // 当上传完成时调用
163
+
164
+ xhr.onload = function () {
165
+ if (xhr.status === 200) {
166
+ var res = JSON.parse(xhr.responseText);
167
+
168
+ if ((res === null || res === void 0 ? void 0 : res.result) == 0) {
169
+ _message["default"].success('上传成功');
170
+
171
+ chunkUpload(res.data);
172
+ } else {
173
+ _message["default"].error((res === null || res === void 0 ? void 0 : res.msg) || '上传失败');
174
+ }
175
+ }
176
+ };
177
+
178
+ xhr.onerror = function () {
179
+ _message["default"].error('上传失败');
180
+ }; // 发送请求
181
+
182
+
183
+ xhr.open('POST', '/cloudFile/common/mergeChunk', true);
184
+ var data = new FormData();
185
+ data.append('chunkId', state.chunkId);
186
+ data.append('tenantId', (0, _utils.getVtxToken)('tenantId'));
187
+ data.append('chunkSize', state.chunks.length);
188
+ data.append('fileName', state.fileInput.files[0].name);
189
+ xhr.send(data);
190
+ } // 合并切片后上传
191
+
192
+
193
+ function chunkUpload(data) {
194
+ var postUrl = getPostURL();
195
+
196
+ if (state.useFormData) {
197
+ var request = new XMLHttpRequest(); // 发送请求
198
+
199
+ request.open('POST', postUrl);
200
+ request.setRequestHeader('Authorization', token ? "Bearer ".concat(token) : '');
201
+ request.setRequestHeader('access_token', token ? "".concat(token) : '');
202
+
203
+ request.onreadystatechange = function (e) {
204
+ if (e.target.readyState == 4) {
205
+ uploadSuccess(e.target.response);
206
+ }
207
+ }; //创建formdata对象
208
+
209
+
210
+ var fmd = new FormData();
211
+ fmd.append('tenantId', (0, _utils.getVtxToken)('tenantId'));
212
+ fmd.append('fileId', data[0].id);
213
+ request.send(fmd);
214
+ }
215
+ }
216
+
217
+ function upload() {
218
+ var postUrl = getPostURL();
219
+
220
+ if (state.useFormData) {
221
+ var request = new XMLHttpRequest(); // 发送请求
222
+
223
+ request.open('POST', postUrl);
224
+ request.setRequestHeader('Authorization', token ? "Bearer ".concat(token) : '');
225
+ request.setRequestHeader('access_token', token ? "".concat(token) : '');
226
+
227
+ request.onreadystatechange = function (e) {
228
+ if (e.target.readyState == 4) {
229
+ uploadSuccess(e.target.response);
230
+ }
231
+ }; //创建formdata对象
232
+
233
+
234
+ var fmd = new FormData();
235
+ fmd.append(state.fileKey, state.fileInput.files[0]);
236
+ request.send(fmd);
237
+ }
238
+ } // 切片文件
239
+
240
+
241
+ function spreadFile(file) {
242
+ var chunks = [];
243
+ var start = 0;
244
+ var end;
245
+
246
+ while (start < file.size) {
247
+ end = Math.min(start + state.chunkSize, file.size);
248
+ chunks.push(file.slice(start, end));
249
+ start = end;
250
+ }
251
+
252
+ return chunks;
253
+ } // 获取上传地址(拼接参数)
79
254
 
80
255
 
81
256
  var getPostURL = function getPostURL() {
@@ -139,7 +314,8 @@ function VtxImport(props) {
139
314
 
140
315
  var templateURL = props.templateURL,
141
316
  uploadURL = props.uploadURL,
142
- afterUpload = props.afterUpload;
317
+ afterUpload = props.afterUpload,
318
+ beforeUpload = props.beforeUpload;
143
319
  var modalProps = {
144
320
  className: 'vtx-import-modal',
145
321
  visible: state.visible,
@@ -158,29 +334,41 @@ function VtxImport(props) {
158
334
  type: "primary",
159
335
  loading: state.uploading,
160
336
  onClick: function onClick() {
161
- var postUrl = getPostURL();
337
+ if (typeof props.beforeUpload === 'function') {
338
+ var flag = beforeUpload(state.fileInput.files[0]);
339
+
340
+ if (!flag) {
341
+ state.fileInput.value = '';
342
+ setState({
343
+ fileInput: null
344
+ });
345
+ return;
346
+ }
347
+ }
162
348
 
163
349
  if (state.fileInput.value) {
164
350
  setState({
165
351
  uploading: true
166
- });
167
-
168
- if (state.useFormData) {
169
- var request = new XMLHttpRequest();
170
- request.open('POST', postUrl);
171
- request.setRequestHeader('Authorization', token ? "Bearer ".concat(token) : '');
172
- request.setRequestHeader('access_token', token ? "".concat(token) : '');
173
-
174
- request.onreadystatechange = function (e) {
175
- if (e.target.readyState == 4) {
176
- uploadSuccess(e.target.response);
177
- }
178
- };
179
-
180
- var fmd = new FormData();
181
- fmd.append(state.fileKey, state.fileInput.files[0]);
182
- request.send(fmd);
183
- }
352
+ }); // 上传文件
353
+
354
+ checkFile(state.fileInput.files[0]); // const postUrl = getPostURL();
355
+ // if (state.useFormData) {
356
+ // const request = new XMLHttpRequest();
357
+ // request.open('POST', postUrl);
358
+ // request.setRequestHeader(
359
+ // 'Authorization',
360
+ // token ? `Bearer ${token}` : '',
361
+ // );
362
+ // request.setRequestHeader('access_token', token ? `${token}` : '');
363
+ // request.onreadystatechange = e => {
364
+ // if (e.target.readyState == 4) {
365
+ // uploadSuccess(e.target.response);
366
+ // }
367
+ // };
368
+ // const fmd = new FormData();
369
+ // fmd.append(state.fileKey, state.fileInput.files[0]);
370
+ // request.send(fmd);
371
+ // }
184
372
  } else {
185
373
  _message["default"].info('请选择需要上传的文件');
186
374
  }
@@ -203,6 +391,11 @@ function VtxImport(props) {
203
391
  },
204
392
  modalWidth: state.modalWidth
205
393
  };
394
+ (0, _react.useEffect)(function () {
395
+ if (state.chunkId) {
396
+ startUpload();
397
+ }
398
+ }, [state.chunkId]);
206
399
  return /*#__PURE__*/_react["default"].createElement(_modal["default"], modalProps, props.children, /*#__PURE__*/_react["default"].createElement("form", {
207
400
  encType: "multipart/form-data",
208
401
  method: "post",
@@ -240,7 +433,9 @@ VtxImport.propTypes = {
240
433
  afterUpload: _propTypes["default"].func,
241
434
  modalWidth: _propTypes["default"].number,
242
435
  columns: _propTypes["default"].array,
243
- children: _propTypes["default"].object
436
+ children: _propTypes["default"].object,
437
+ beforeUpload: _propTypes["default"].func,
438
+ chunkSize: _propTypes["default"].number
244
439
  };
245
440
  var _default = VtxImport;
246
441
  exports["default"] = _default;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["token","getToken","VtxImport","props","useSet","fileForm","fileInput","iframe","useFormData","window","FormData","uploading","visible","fileKey","accept","resultVisible","resultData","modalWidth","columns","title","dataIndex","key","state","setState","getPostURL","postUrl","uploadURL","postData","postArray","k","undefined","push","encodeURIComponent","length","join","closeModal","value","close","uploadSuccess","data","afterUpload","parseData","JSON","parse","Array","isArray","map","item","index","messages","filter","result","message","error","msg","templateURL","modalProps","className","onCancel","maskClosable","footer","open","request","XMLHttpRequest","setRequestHeader","onreadystatechange","e","target","readyState","response","fmd","append","files","send","info","resultProps","dataSource","hideVisible","children","dom","display","propTypes","PropTypes","bool","string","object","func","number","array"],"sources":["vtx-import/index.jsx"],"sourcesContent":["import React from 'react';\r\nimport Modal from 'antd/lib/modal';\r\nimport Button from 'antd/lib/button';\r\nimport message from 'antd/lib/message';\r\nimport PropTypes from 'prop-types';\r\nimport useSet from '../_util/useSet';\r\nimport VtxImportResult from './result';\r\nimport getToken from '../_util/getToken';\r\nconst token = getToken();\r\nfunction VtxImport(props) {\r\n const [state, setState] = useSet({\r\n fileForm: null, // form表单\r\n fileInput: null, // 保存上传的文件\r\n iframe: null, // form表单提交之后跳转的\r\n useFormData: window.FormData ? true : false, // 是否查看\r\n uploading: false, // 表单提交的状态\r\n visible: props.visible || false,\r\n fileKey: props.fileKey || 'file',\r\n accept:\r\n props.accept ||\r\n 'application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,text/csv',\r\n resultVisible: false, // 导入结果查看弹窗\r\n resultData: [], // 导入结果查看\r\n modalWidth: props.modalWidth || 800,\r\n columns: props.columns || [\r\n {\r\n title: '行号',\r\n dataIndex: 'lineNum',\r\n key: 'lineNum',\r\n },\r\n {\r\n title: '错误说明',\r\n dataIndex: 'messages',\r\n key: 'messages',\r\n },\r\n ],\r\n });\r\n // 获取上传地址(拼接参数)\r\n const getPostURL = () => {\r\n const postUrl = props.uploadURL;\r\n const postData = props.postData || {};\r\n const postArray = [];\r\n for (const k in postData) {\r\n if (postData[k] !== undefined && postData[k] !== null && postData[k] !== '') {\r\n postArray.push(`${k}=${encodeURIComponent(postData[k])}`);\r\n }\r\n }\r\n return postArray.length > 0 ? `${postUrl}?${postArray.join('&')}` : postUrl;\r\n };\r\n const closeModal = () => {\r\n state.fileInput.value = '';\r\n if (typeof props.close === 'function') {\r\n props.close();\r\n } else {\r\n setState({\r\n visible: !state.visible,\r\n });\r\n }\r\n };\r\n // 上传之后的回调 - 展示报错信息\r\n const uploadSuccess = data => {\r\n state.fileInput.value = '';\r\n setState({\r\n uploading: false,\r\n });\r\n if (typeof props.afterUpload === 'function') {\r\n afterUpload(data);\r\n }\r\n const parseData = JSON.parse(data);\r\n if (Array.isArray(parseData?.data)) {\r\n setState({\r\n resultVisible: true,\r\n resultData: parseData.data\r\n .map((item, index) => ({\r\n ...item,\r\n key: index,\r\n messages: item.messages.join(','),\r\n }))\r\n .filter(item => item.messages.length !== 0),\r\n });\r\n } else {\r\n // 新增其他错误提示\r\n if (parseData.result !== 0) {\r\n message.error(parseData?.msg || '服务器异常');\r\n }\r\n }\r\n };\r\n const { templateURL, uploadURL, afterUpload } = props;\r\n const modalProps = {\r\n className: 'vtx-import-modal',\r\n visible: state.visible,\r\n title: '导入',\r\n onCancel: () => closeModal(),\r\n maskClosable: false,\r\n footer: [\r\n templateURL ? (\r\n <Button\r\n key=\"downloadTemple\"\r\n onClick={() => {\r\n window.open(templateURL);\r\n }}\r\n >\r\n 下载模板\r\n </Button>\r\n ) : null,\r\n <Button\r\n key=\"uploadSubmit\"\r\n type=\"primary\"\r\n loading={state.uploading}\r\n onClick={() => {\r\n const postUrl = getPostURL();\r\n if (state.fileInput.value) {\r\n setState({\r\n uploading: true,\r\n });\r\n if (state.useFormData) {\r\n const request = new XMLHttpRequest();\r\n request.open('POST', postUrl);\r\n request.setRequestHeader(\r\n 'Authorization',\r\n token ? `Bearer ${token}` : '',\r\n );\r\n request.setRequestHeader('access_token', token ? `${token}` : '');\r\n request.onreadystatechange = e => {\r\n if (e.target.readyState == 4) {\r\n uploadSuccess(e.target.response);\r\n }\r\n };\r\n const fmd = new FormData();\r\n fmd.append(state.fileKey, state.fileInput.files[0]);\r\n request.send(fmd);\r\n }\r\n } else {\r\n message.info('请选择需要上传的文件');\r\n }\r\n }}\r\n >\r\n 上传\r\n </Button>,\r\n <Button\r\n key=\"closeWindow\"\r\n onClick={() => {\r\n closeModal();\r\n }}\r\n >\r\n 关闭\r\n </Button>,\r\n ],\r\n };\r\n const resultProps = {\r\n visible: state.resultVisible,\r\n dataSource: state.resultData,\r\n columns: state.columns,\r\n hideVisible: () => {\r\n setState({\r\n resultVisible: false,\r\n });\r\n },\r\n modalWidth: state.modalWidth,\r\n };\r\n return (\r\n <Modal {...modalProps}>\r\n {props.children}\r\n <form\r\n encType=\"multipart/form-data\"\r\n method=\"post\"\r\n target=\"tmp\"\r\n action={uploadURL}\r\n ref={dom => {\r\n if (dom) state.fileForm = dom;\r\n }}\r\n >\r\n <input\r\n type=\"file\"\r\n name={state.fileKey}\r\n accept={state.accept}\r\n ref={dom => {\r\n if (dom) state.fileInput = dom;\r\n }}\r\n />\r\n </form>\r\n <iframe\r\n name=\"tmp\"\r\n style={{ display: 'none' }}\r\n ref={dom => {\r\n if (dom) state.iframe = dom;\r\n }}\r\n ></iframe>\r\n {state.resultVisible && <VtxImportResult {...resultProps} />}\r\n </Modal>\r\n );\r\n}\r\nVtxImport.propTypes = {\r\n visible: PropTypes.bool,\r\n templateURL: PropTypes.string,\r\n uploadURL: PropTypes.string,\r\n postData: PropTypes.object,\r\n fileKey: PropTypes.string,\r\n accept: PropTypes.string,\r\n close: PropTypes.func,\r\n afterUpload: PropTypes.func,\r\n modalWidth: PropTypes.number,\r\n columns: PropTypes.array,\r\n children: PropTypes.object,\r\n};\r\nexport default VtxImport;\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["token","getToken","VtxImport","props","indexRef","useRef","useSet","fileForm","fileInput","iframe","useFormData","window","FormData","uploading","visible","fileKey","accept","resultVisible","resultData","modalWidth","columns","title","dataIndex","key","step","chunkSize","totalChunk","currentIndex","chunkId","chunks","state","setState","checkFile","file","size","upload","mode","spreadFile","md5","Date","valueOf","Math","random","length","startUpload","dataArr","forEach","e","i","data","append","getVtxToken","File","files","name","push","uploadAsync","list","current","xhr","XMLHttpRequest","onload","status","onerror","message","error","open","send","mergeFile","res","JSON","parse","responseText","result","success","chunkUpload","msg","postUrl","getPostURL","request","setRequestHeader","onreadystatechange","target","readyState","uploadSuccess","response","fmd","id","start","end","min","slice","uploadURL","postData","postArray","k","undefined","encodeURIComponent","join","closeModal","value","close","afterUpload","parseData","Array","isArray","map","item","index","messages","filter","templateURL","beforeUpload","modalProps","className","onCancel","maskClosable","footer","flag","info","resultProps","dataSource","hideVisible","useEffect","children","dom","display","propTypes","PropTypes","bool","string","object","func","number","array"],"sources":["vtx-import/index.jsx"],"sourcesContent":["import React, { useRef, useEffect } from 'react';\r\nimport Modal from 'antd/lib/modal';\r\nimport Button from 'antd/lib/button';\r\nimport message from 'antd/lib/message';\r\nimport PropTypes from 'prop-types';\r\nimport useSet from '../_util/useSet';\r\nimport VtxImportResult from './result';\r\nimport getToken from '../_util/getToken';\r\nconst token = getToken();\r\nimport md5 from 'md5';\r\nimport { getVtxToken } from '@vtx/utils';\r\nfunction VtxImport(props) {\r\n const indexRef = useRef(0);\r\n const [state, setState] = useSet({\r\n fileForm: null, // form表单\r\n fileInput: null, // 保存上传的文件\r\n iframe: null, // form表单提交之后跳转的\r\n useFormData: window.FormData ? true : false, // 是否查看\r\n uploading: false, // 表单提交的状态\r\n visible: props.visible || false,\r\n fileKey: props.fileKey || 'file',\r\n accept:\r\n props.accept ||\r\n 'application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,text/csv',\r\n resultVisible: false, // 导入结果查看弹窗\r\n resultData: [], // 导入结果查看\r\n modalWidth: props.modalWidth || 800,\r\n columns: props.columns || [\r\n {\r\n title: '行号',\r\n dataIndex: 'lineNum',\r\n key: 'lineNum',\r\n },\r\n {\r\n title: '错误说明',\r\n dataIndex: 'messages',\r\n key: 'messages',\r\n },\r\n ],\r\n step: 1,\r\n chunkSize: props.chunkSize || 10 * 1024 * 1024,\r\n totalChunk: 0,\r\n currentIndex: 0,\r\n chunkId: '',\r\n chunks: [],\r\n });\r\n\r\n // 开始准备文件\r\n function checkFile(file) {\r\n if (file.size <= state.chunkSize) {\r\n upload(file);\r\n } else {\r\n setState({ mode: 'spread' });\r\n let chunks = spreadFile(file);\r\n setState({\r\n chunks,\r\n chunkId: md5(`${new Date().valueOf()}${Math.random()}`),\r\n totalChunk: chunks.length,\r\n step: 2,\r\n });\r\n }\r\n }\r\n\r\n // 开始上传\r\n function startUpload() {\r\n let dataArr = [];\r\n state.chunks.forEach((e, i) => {\r\n //创建formdata对象\r\n let data = new FormData();\r\n // data.append(\"totalNumber\", state.chunks.length)\r\n data.append('chunkSize', state.chunks.length);\r\n data.append('chunkNo', i + 1);\r\n data.append('chunkId', state.chunkId);\r\n data.append('tenantId', getVtxToken('tenantId'));\r\n data.append('file', new File([e], state.fileInput.files[0].name));\r\n dataArr.push(data);\r\n });\r\n uploadAsync(dataArr);\r\n }\r\n\r\n // 上传\r\n function uploadAsync(list) {\r\n if (indexRef.current < list.length) {\r\n let xhr = new XMLHttpRequest();\r\n xhr.onload = function() {\r\n if (xhr.status === 200) {\r\n setState({ currentIndex: indexRef.current + 1 });\r\n indexRef.current += 1;\r\n uploadAsync(list);\r\n }\r\n };\r\n xhr.onerror = function() {\r\n message.error('上传失败');\r\n };\r\n // 发送请求\r\n xhr.open('POST', '/cloudFile/common/uploadChunk', true);\r\n xhr.send(list[indexRef.current]);\r\n } else {\r\n mergeFile();\r\n }\r\n }\r\n\r\n // 合并分片\r\n function mergeFile() {\r\n let xhr = new XMLHttpRequest();\r\n // 当上传完成时调用\r\n xhr.onload = function() {\r\n if (xhr.status === 200) {\r\n let res = JSON.parse(xhr.responseText);\r\n if (res?.result == 0) {\r\n message.success('上传成功');\r\n chunkUpload(res.data);\r\n } else {\r\n message.error(res?.msg || '上传失败');\r\n }\r\n }\r\n };\r\n xhr.onerror = function() {\r\n message.error('上传失败');\r\n };\r\n // 发送请求\r\n xhr.open('POST', '/cloudFile/common/mergeChunk', true);\r\n let data = new FormData();\r\n data.append('chunkId', state.chunkId);\r\n data.append('tenantId', getVtxToken('tenantId'));\r\n data.append('chunkSize', state.chunks.length);\r\n data.append('fileName', state.fileInput.files[0].name);\r\n xhr.send(data);\r\n }\r\n\r\n // 合并切片后上传\r\n function chunkUpload(data) {\r\n const postUrl = getPostURL();\r\n if (state.useFormData) {\r\n const request = new XMLHttpRequest();\r\n // 发送请求\r\n request.open('POST', postUrl);\r\n request.setRequestHeader('Authorization', token ? `Bearer ${token}` : '');\r\n request.setRequestHeader('access_token', token ? `${token}` : '');\r\n request.onreadystatechange = e => {\r\n if (e.target.readyState == 4) {\r\n uploadSuccess(e.target.response);\r\n }\r\n };\r\n //创建formdata对象\r\n const fmd = new FormData();\r\n fmd.append('tenantId', getVtxToken('tenantId'));\r\n fmd.append('fileId', data[0].id);\r\n request.send(fmd);\r\n }\r\n }\r\n function upload() {\r\n const postUrl = getPostURL();\r\n if (state.useFormData) {\r\n const request = new XMLHttpRequest();\r\n // 发送请求\r\n request.open('POST', postUrl);\r\n request.setRequestHeader('Authorization', token ? `Bearer ${token}` : '');\r\n request.setRequestHeader('access_token', token ? `${token}` : '');\r\n request.onreadystatechange = e => {\r\n if (e.target.readyState == 4) {\r\n uploadSuccess(e.target.response);\r\n }\r\n };\r\n //创建formdata对象\r\n const fmd = new FormData();\r\n fmd.append(state.fileKey, state.fileInput.files[0]);\r\n request.send(fmd);\r\n }\r\n }\r\n\r\n // 切片文件\r\n function spreadFile(file) {\r\n const chunks = [];\r\n let start = 0;\r\n let end;\r\n while (start < file.size) {\r\n end = Math.min(start + state.chunkSize, file.size);\r\n chunks.push(file.slice(start, end));\r\n start = end;\r\n }\r\n return chunks;\r\n }\r\n\r\n // 获取上传地址(拼接参数)\r\n const getPostURL = () => {\r\n const postUrl = props.uploadURL;\r\n const postData = props.postData || {};\r\n const postArray = [];\r\n for (const k in postData) {\r\n if (postData[k] !== undefined && postData[k] !== null && postData[k] !== '') {\r\n postArray.push(`${k}=${encodeURIComponent(postData[k])}`);\r\n }\r\n }\r\n return postArray.length > 0 ? `${postUrl}?${postArray.join('&')}` : postUrl;\r\n };\r\n const closeModal = () => {\r\n state.fileInput.value = '';\r\n if (typeof props.close === 'function') {\r\n props.close();\r\n } else {\r\n setState({\r\n visible: !state.visible,\r\n });\r\n }\r\n };\r\n // 上传之后的回调 - 展示报错信息\r\n const uploadSuccess = data => {\r\n state.fileInput.value = '';\r\n setState({\r\n uploading: false,\r\n });\r\n\r\n if (typeof props.afterUpload === 'function') {\r\n afterUpload(data);\r\n }\r\n const parseData = JSON.parse(data);\r\n if (Array.isArray(parseData?.data)) {\r\n setState({\r\n resultVisible: true,\r\n resultData: parseData.data\r\n .map((item, index) => ({\r\n ...item,\r\n key: index,\r\n messages: item.messages.join(','),\r\n }))\r\n .filter(item => item.messages.length !== 0),\r\n });\r\n } else {\r\n // 新增其他错误提示\r\n if (parseData.result !== 0) {\r\n message.error(parseData?.msg || '服务器异常');\r\n }\r\n }\r\n };\r\n const { templateURL, uploadURL, afterUpload, beforeUpload } = props;\r\n\r\n const modalProps = {\r\n className: 'vtx-import-modal',\r\n visible: state.visible,\r\n title: '导入',\r\n onCancel: () => closeModal(),\r\n maskClosable: false,\r\n footer: [\r\n templateURL ? (\r\n <Button\r\n key=\"downloadTemple\"\r\n onClick={() => {\r\n window.open(templateURL);\r\n }}\r\n >\r\n 下载模板\r\n </Button>\r\n ) : null,\r\n <Button\r\n key=\"uploadSubmit\"\r\n type=\"primary\"\r\n loading={state.uploading}\r\n onClick={() => {\r\n if (typeof props.beforeUpload === 'function') {\r\n let flag = beforeUpload(state.fileInput.files[0]);\r\n if(!flag){\r\n state.fileInput.value = '';\r\n setState({fileInput: null});\r\n return;\r\n }\r\n }\r\n\r\n if (state.fileInput.value) {\r\n setState({\r\n uploading: true,\r\n });\r\n // 上传文件\r\n checkFile(state.fileInput.files[0]);\r\n // const postUrl = getPostURL();\r\n // if (state.useFormData) {\r\n // const request = new XMLHttpRequest();\r\n // request.open('POST', postUrl);\r\n // request.setRequestHeader(\r\n // 'Authorization',\r\n // token ? `Bearer ${token}` : '',\r\n // );\r\n // request.setRequestHeader('access_token', token ? `${token}` : '');\r\n // request.onreadystatechange = e => {\r\n // if (e.target.readyState == 4) {\r\n // uploadSuccess(e.target.response);\r\n // }\r\n // };\r\n // const fmd = new FormData();\r\n // fmd.append(state.fileKey, state.fileInput.files[0]);\r\n // request.send(fmd);\r\n // }\r\n } else {\r\n message.info('请选择需要上传的文件');\r\n }\r\n }}\r\n >\r\n 上传\r\n </Button>,\r\n <Button\r\n key=\"closeWindow\"\r\n onClick={() => {\r\n closeModal();\r\n }}\r\n >\r\n 关闭\r\n </Button>,\r\n ],\r\n };\r\n const resultProps = {\r\n visible: state.resultVisible,\r\n dataSource: state.resultData,\r\n columns: state.columns,\r\n hideVisible: () => {\r\n setState({\r\n resultVisible: false,\r\n });\r\n },\r\n modalWidth: state.modalWidth,\r\n };\r\n\r\n useEffect(() => {\r\n if (state.chunkId) {\r\n startUpload();\r\n }\r\n }, [state.chunkId]);\r\n\r\n return (\r\n <Modal {...modalProps}>\r\n {props.children}\r\n <form\r\n encType=\"multipart/form-data\"\r\n method=\"post\"\r\n target=\"tmp\"\r\n action={uploadURL}\r\n ref={dom => {\r\n if (dom) state.fileForm = dom;\r\n }}\r\n >\r\n <input\r\n type=\"file\"\r\n name={state.fileKey}\r\n accept={state.accept}\r\n ref={dom => {\r\n if (dom) state.fileInput = dom;\r\n }}\r\n />\r\n </form>\r\n <iframe\r\n name=\"tmp\"\r\n style={{ display: 'none' }}\r\n ref={dom => {\r\n if (dom) state.iframe = dom;\r\n }}\r\n ></iframe>\r\n {state.resultVisible && <VtxImportResult {...resultProps} />}\r\n </Modal>\r\n );\r\n}\r\nVtxImport.propTypes = {\r\n visible: PropTypes.bool,\r\n templateURL: PropTypes.string,\r\n uploadURL: PropTypes.string,\r\n postData: PropTypes.object,\r\n fileKey: PropTypes.string,\r\n accept: PropTypes.string,\r\n close: PropTypes.func,\r\n afterUpload: PropTypes.func,\r\n modalWidth: PropTypes.number,\r\n columns: PropTypes.array,\r\n children: PropTypes.object,\r\n beforeUpload: PropTypes.func,\r\n chunkSize: PropTypes.number,\r\n};\r\nexport default VtxImport;\r\n"],"mappings":"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"}
@@ -23,6 +23,12 @@ var _getToken = _interopRequireDefault(require("../_util/getToken"));
23
23
 
24
24
  var _getSignature = _interopRequireDefault(require("@vtx/utils/lib/getSignature"));
25
25
 
26
+ var _useSet3 = _interopRequireDefault(require("../_util/useSet"));
27
+
28
+ var _md = _interopRequireDefault(require("md5"));
29
+
30
+ var _utils = require("@vtx/utils");
31
+
26
32
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
27
33
 
28
34
  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); }
@@ -76,7 +82,8 @@ var VtxImport2 = function VtxImport2(props) {
76
82
  errorDownloadName = props.errorDownloadName,
77
83
  customText = props.customText,
78
84
  _props$customEnumText = props.customEnumText,
79
- customEnumText = _props$customEnumText === void 0 ? {} : _props$customEnumText;
85
+ customEnumText = _props$customEnumText === void 0 ? {} : _props$customEnumText,
86
+ beforeUpload = props.beforeUpload;
80
87
 
81
88
  var TextEnum = _objectSpread({
82
89
  headSubTitleText: '导入',
@@ -139,6 +146,20 @@ var VtxImport2 = function VtxImport2(props) {
139
146
 
140
147
  var fileInputRef = (0, _react.useRef)();
141
148
  var fileName = (0, _react.useRef)('');
149
+ var indexRef = (0, _react.useRef)(0);
150
+
151
+ var _useSet = (0, _useSet3["default"])({
152
+ step: 1,
153
+ chunkSize: props.chunkSize || 10 * 1024 * 1024,
154
+ totalChunk: 0,
155
+ currentIndex: 0,
156
+ chunkId: '',
157
+ chunks: []
158
+ }),
159
+ _useSet2 = _slicedToArray(_useSet, 2),
160
+ state = _useSet2[0],
161
+ setState = _useSet2[1];
162
+
142
163
  var token = (0, _getToken["default"])();
143
164
 
144
165
  if (!token) {
@@ -162,7 +183,165 @@ var VtxImport2 = function VtxImport2(props) {
162
183
  if (fileList.length !== 0) {
163
184
  fileName.current = getFileName(fileList[0].name);
164
185
  }
165
- }, [fileList]); // 获取上传地址(拼接参数)
186
+ }, [fileList]); // 开始准备文件
187
+
188
+ function checkFile(file) {
189
+ if (file.size <= state.chunkSize) {
190
+ upload(file);
191
+ } else {
192
+ setState({
193
+ mode: 'spread'
194
+ });
195
+ var chunks = spreadFile(file);
196
+ setState({
197
+ chunks: chunks,
198
+ chunkId: (0, _md["default"])("".concat(new Date().valueOf()).concat(Math.random())),
199
+ totalChunk: chunks.length,
200
+ step: 2
201
+ });
202
+ }
203
+ } // 开始上传
204
+
205
+
206
+ function startUpload() {
207
+ var dataArr = [];
208
+ state.chunks.forEach(function (e, i) {
209
+ //创建formdata对象
210
+ var data = new FormData(); // data.append("totalNumber", state.chunks.length)
211
+
212
+ data.append('chunkSize', state.chunks.length);
213
+ data.append('chunkNo', i + 1);
214
+ data.append('chunkId', state.chunkId);
215
+ data.append('tenantId', (0, _utils.getVtxToken)('tenantId'));
216
+ data.append('file', new File([e], fileList[0].name));
217
+ dataArr.push(data);
218
+ });
219
+ uploadAsync(dataArr);
220
+ } // 上传
221
+
222
+
223
+ function uploadAsync(list) {
224
+ if (indexRef.current < list.length) {
225
+ var xhr = new XMLHttpRequest();
226
+
227
+ xhr.onload = function () {
228
+ if (xhr.status === 200) {
229
+ setState({
230
+ currentIndex: indexRef.current + 1
231
+ });
232
+ indexRef.current += 1;
233
+ uploadAsync(list);
234
+ }
235
+ };
236
+
237
+ xhr.onerror = function () {
238
+ _antd.message.error('上传失败');
239
+ }; // 发送请求
240
+
241
+
242
+ xhr.open('POST', '/cloudFile/common/uploadChunk', true);
243
+ xhr.send(list[indexRef.current]);
244
+ } else {
245
+ mergeFile();
246
+ }
247
+ } // 合并分片
248
+
249
+
250
+ function mergeFile() {
251
+ var xhr = new XMLHttpRequest(); // 当上传完成时调用
252
+
253
+ xhr.onload = function () {
254
+ if (xhr.status === 200) {
255
+ var res = JSON.parse(xhr.responseText);
256
+
257
+ if ((res === null || res === void 0 ? void 0 : res.result) == 0) {
258
+ _antd.message.success('上传成功');
259
+
260
+ chunkUpload(res.data);
261
+ } else {
262
+ _antd.message.error((res === null || res === void 0 ? void 0 : res.msg) || '上传失败');
263
+ }
264
+ }
265
+ };
266
+
267
+ xhr.onerror = function () {
268
+ _antd.message.error('上传失败');
269
+ }; // 发送请求
270
+
271
+
272
+ xhr.open('POST', '/cloudFile/common/mergeChunk', true);
273
+ var data = new FormData();
274
+ data.append('chunkId', state.chunkId);
275
+ data.append('tenantId', (0, _utils.getVtxToken)('tenantId'));
276
+ data.append('chunkSize', state.chunks.length);
277
+ data.append('fileName', fileList[0].name);
278
+ xhr.send(data);
279
+ } // 合并切片后上传
280
+
281
+
282
+ function chunkUpload(data) {
283
+ var postUrl = getPostURL();
284
+ var fmd = new FormData();
285
+ fmd.append('fileId', data[0].id);
286
+ var request = new XMLHttpRequest();
287
+ request.open('POST', postUrl);
288
+ var signature = (0, _getSignature["default"])(postData);
289
+
290
+ for (var key in signature) {
291
+ request.setRequestHeader(key, signature[key]);
292
+ }
293
+
294
+ request.setRequestHeader('Authorization', token ? "Bearer ".concat(token) : '');
295
+ request.setRequestHeader('access_token', token ? "".concat(token) : '');
296
+
297
+ request.onreadystatechange = function (e) {
298
+ if (e.target.readyState == 4) {
299
+ dealResult(e.target.response);
300
+ }
301
+ };
302
+
303
+ request.send(fmd);
304
+ }
305
+
306
+ function upload(files) {
307
+ var postUrl = getPostURL();
308
+ var fmd = new FormData();
309
+ fmd.append(fileKey, files);
310
+ var request = new XMLHttpRequest();
311
+ request.open('POST', postUrl);
312
+ var signature = (0, _getSignature["default"])(postData);
313
+
314
+ for (var key in signature) {
315
+ request.setRequestHeader(key, signature[key]);
316
+ }
317
+
318
+ request.setRequestHeader('Authorization', token ? "Bearer ".concat(token) : '');
319
+ request.setRequestHeader('access_token', token ? "".concat(token) : '');
320
+
321
+ request.onreadystatechange = function (e) {
322
+ if (e.target.readyState == 4) {
323
+ dealResult(e.target.response);
324
+ }
325
+ };
326
+
327
+ request.send(fmd);
328
+ } // 切片文件
329
+
330
+
331
+ function spreadFile(file) {
332
+ var chunks = [];
333
+ var start = 0;
334
+ var end;
335
+
336
+ while (start < file.size) {
337
+ end = Math.min(start + state.chunkSize, file.size);
338
+ chunks.push(file.slice(start, end));
339
+ start = end;
340
+ }
341
+
342
+ return chunks;
343
+ } // 获取上传地址(拼接参数)
344
+
166
345
 
167
346
  var getPostURL = function getPostURL() {
168
347
  var postUrl = uploadURL;
@@ -207,32 +386,22 @@ var VtxImport2 = function VtxImport2(props) {
207
386
  var _ref$files = _ref.files,
208
387
  files = _ref$files === void 0 ? fileList : _ref$files;
209
388
 
210
- if (files.length === 0) {
211
- return _antd.message.info(TextEnum.msgUploadWarningText);
212
- }
389
+ if (typeof props.beforeUpload === 'function') {
390
+ var flag = beforeUpload(files[0]);
213
391
 
214
- setUploading(true);
215
- var postUrl = getPostURL();
216
- var fmd = new FormData();
217
- fmd.append(fileKey, files[0]);
218
- var request = new XMLHttpRequest();
219
- request.open('POST', postUrl);
220
- var signature = (0, _getSignature["default"])(postData);
221
-
222
- for (var key in signature) {
223
- request.setRequestHeader(key, signature[key]);
392
+ if (!flag) {
393
+ setFileList([]);
394
+ return;
395
+ }
224
396
  }
225
397
 
226
- request.setRequestHeader('Authorization', token ? "Bearer ".concat(token) : '');
227
- request.setRequestHeader('access_token', token ? "".concat(token) : '');
398
+ if (files.length === 0) {
399
+ return _antd.message.info(TextEnum.msgUploadWarningText);
400
+ }
228
401
 
229
- request.onreadystatechange = function (e) {
230
- if (e.target.readyState == 4) {
231
- dealResult(e.target.response);
232
- }
233
- };
402
+ setUploading(true); // 上传文件
234
403
 
235
- request.send(fmd);
404
+ checkFile(files[0]);
236
405
  };
237
406
 
238
407
  var againUpload = function againUpload() {
@@ -250,6 +419,11 @@ var VtxImport2 = function VtxImport2(props) {
250
419
  });
251
420
  };
252
421
 
422
+ (0, _react.useEffect)(function () {
423
+ if (state.chunkId) {
424
+ startUpload();
425
+ }
426
+ }, [state.chunkId]);
253
427
  var modelProps = {
254
428
  visible: visible,
255
429
  width: 392,
@@ -320,7 +494,9 @@ VtxImport2.propTypes = {
320
494
  afterUpload: _propTypes["default"].func,
321
495
  token: _propTypes["default"].string,
322
496
  customText: _propTypes["default"].string,
323
- customEnumText: _propTypes["default"].object
497
+ customEnumText: _propTypes["default"].object,
498
+ beforeUpload: _propTypes["default"].func,
499
+ chunkSize: _propTypes["default"].number
324
500
  };
325
501
  var _default = VtxImport2;
326
502
  exports["default"] = _default;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["getFileName","name","index","lastIndexOf","suffix","substring","VtxImport2","props","visible","close","title","accept","fileKey","uploadURL","postData","errorURL","templateURL","afterUpload","errorDownloadName","customText","customEnumText","TextEnum","headSubTitleText","btnCloseText","btnUploadText","btnReUploadText","btnImportText","msgUploadWarningText","normalTemplateInfoText","normalSelectFileInfoText","normalReChooseFileText","resultSuccessText","resultFailText","resultFailReasonDownText","resultInfoTotalText","resultInfoDataText","resultNetworkErrorText","useState","status","setStatus","result","setResult","countdown","setCountdown","fileList","setFileList","undefined","interval","setInterval","errorFile","setErrorFile","uploading","setUploading","count","setCount","fileInputRef","useRef","fileName","token","getToken","newErrorDownloadName","current","useInterval","useEffect","length","getPostURL","postUrl","postArray","k","push","encodeURIComponent","join","dealResult","response","parseData","JSON","parse","data","message","error","msg","onUpload","files","info","fmd","FormData","append","request","XMLHttpRequest","open","signature","getSignature","key","setRequestHeader","onreadystatechange","e","target","readyState","send","againUpload","click","onFileChange","modelProps","width","maskClosable","footer","onCancel","display","defaultProps","propTypes","PropTypes","bool","string","object","func"],"sources":["vtx-import2/index.jsx"],"sourcesContent":["import React, { useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Button, message, Modal } from 'antd';\r\nimport Content from './Content';\r\nimport { useState } from 'react';\r\nimport ImportResult from './ImportResult';\r\nimport { useInterval } from 'ahooks';\r\nimport { useEffect } from 'react';\r\nimport getToken from '../_util/getToken';\r\nimport getSignature from '@vtx/utils/lib/getSignature';\r\n\r\nfunction getFileName(name = '') {\r\n const index = name.lastIndexOf('.');\r\n const suffix = name.substring(index);\r\n return name.substring(0, index) + '(错误文件)' + suffix;\r\n}\r\n\r\nconst VtxImport2 = props => {\r\n const {\r\n visible,\r\n close,\r\n title,\r\n accept,\r\n fileKey,\r\n uploadURL,\r\n postData,\r\n errorURL,\r\n templateURL,\r\n afterUpload,\r\n errorDownloadName,\r\n customText,\r\n customEnumText = {},\r\n } = props;\r\n const TextEnum = {\r\n headSubTitleText: '导入',\r\n\r\n btnCloseText: '关闭',\r\n btnUploadText: '上传',\r\n btnReUploadText: '再次上传',\r\n btnImportText: '导入',\r\n\r\n msgUploadWarningText: '请选择需要上传的文件',\r\n\r\n normalTemplateInfoText: '没有模板?点击此处下载',\r\n normalSelectFileInfoText: '点击选择文件(支持excel格式)',\r\n normalReChooseFileText: '重新选择文件',\r\n\r\n resultSuccessText: '导入成功',\r\n resultFailText: '导入失败',\r\n resultFailReasonDownText: '下载文件,查看导入失败原因',\r\n resultInfoTotalText: '本次共计',\r\n resultInfoDataText: '条数据',\r\n resultNetworkErrorText: '服务器异常',\r\n\r\n ...customEnumText,\r\n };\r\n const [status, setStatus] = useState(0); // 0:首页,1:结果页\r\n const [result, setResult] = useState(false);\r\n const [countdown, setCountdown] = useState(5);\r\n const [fileList, setFileList] = useState([]);\r\n const [interval, setInterval] = useState(undefined);\r\n const [errorFile, setErrorFile] = useState('');\r\n const [uploading, setUploading] = useState(false);\r\n const [count, setCount] = useState(0);\r\n const fileInputRef = useRef();\r\n const fileName = useRef('');\r\n let token = getToken();\r\n if (!token) {\r\n token = props.token;\r\n }\r\n let newErrorDownloadName = errorDownloadName;\r\n if (!errorDownloadName) {\r\n newErrorDownloadName = fileName.current;\r\n }\r\n useInterval(() => {\r\n if (countdown === 0) {\r\n return close();\r\n }\r\n setCountdown(countdown - 1);\r\n }, interval);\r\n\r\n useEffect(() => {\r\n if (fileList.length !== 0) {\r\n fileName.current = getFileName(fileList[0].name);\r\n }\r\n }, [fileList]);\r\n\r\n // 获取上传地址(拼接参数)\r\n const getPostURL = () => {\r\n const postUrl = uploadURL;\r\n const postArray = [];\r\n for (const k in postData) {\r\n if (postData[k] !== undefined && postData[k] !== null && postData[k] !== '') {\r\n postArray.push(`${k}=${encodeURIComponent(postData[k])}`);\r\n }\r\n }\r\n return postArray.length > 0 ? `${postUrl}?${postArray.join('&')}` : postUrl;\r\n };\r\n\r\n const dealResult = response => {\r\n setUploading(false);\r\n const parseData = JSON.parse(response);\r\n setStatus(1);\r\n if (typeof props.afterUpload === 'function') {\r\n afterUpload(parseData);\r\n }\r\n if (parseData.result === 0) {\r\n setResult(true);\r\n setCountdown(5);\r\n setInterval(1000);\r\n setCount(parseData.data);\r\n } else if (parseData.result === 1) {\r\n setResult(false);\r\n setFileList([]);\r\n if (parseData.data) {\r\n setErrorFile(parseData.data);\r\n } else {\r\n message.error(parseData?.msg || TextEnum.resultNetworkErrorText);\r\n }\r\n }\r\n };\r\n\r\n const onUpload = ({ files = fileList }) => {\r\n if (files.length === 0) {\r\n return message.info(TextEnum.msgUploadWarningText);\r\n }\r\n setUploading(true);\r\n const postUrl = getPostURL();\r\n const fmd = new FormData();\r\n fmd.append(fileKey, files[0]);\r\n const request = new XMLHttpRequest();\r\n request.open('POST', postUrl);\r\n const signature = getSignature(postData);\r\n for(let key in signature){\r\n request.setRequestHeader(key, signature[key]);\r\n }\r\n request.setRequestHeader('Authorization', token ? `Bearer ${token}` : '');\r\n request.setRequestHeader('access_token', token ? `${token}` : '');\r\n request.onreadystatechange = e => {\r\n if (e.target.readyState == 4) {\r\n dealResult(e.target.response);\r\n }\r\n };\r\n\r\n request.send(fmd);\r\n };\r\n\r\n const againUpload = () => {\r\n setInterval(undefined);\r\n setFileList([]);\r\n fileInputRef.current && fileInputRef.current.click();\r\n };\r\n\r\n const onFileChange = () => {\r\n const fileList = [...fileInputRef.current.files];\r\n setFileList(fileList);\r\n onUpload({ files: fileList });\r\n };\r\n\r\n const modelProps = {\r\n visible,\r\n width: 392,\r\n maskClosable: false,\r\n footer: [\r\n <Button key=\"closeWindow\" onClick={close}>\r\n {`${TextEnum.btnCloseText}${status === 1 && result ? '(' + countdown + ')' : ''}`}\r\n </Button>,\r\n (status === 0 || (status === 1 && !result)) && (\r\n <Button\r\n key=\"uploadSubmit\"\r\n type=\"primary\"\r\n loading={uploading}\r\n onClick={status === 0 ? onUpload : againUpload}\r\n >\r\n {status === 0\r\n ? TextEnum.btnUploadText\r\n : result\r\n ? `${TextEnum.btnImportText}(${countdown})`\r\n : TextEnum.btnReUploadText}\r\n </Button>\r\n ),\r\n ],\r\n onCancel: close,\r\n title: (\r\n <div className=\"vtx-import2-modal-header-title\">\r\n <span className=\"vtx-import2-modal-header-text\">{title}</span>\r\n <span className=\"vtx-import2-modal-header-subtitle\">\r\n {TextEnum.headSubTitleText}\r\n </span>\r\n </div>\r\n ),\r\n };\r\n return (\r\n <Modal {...modelProps}>\r\n {status === 0 ? (\r\n <Content\r\n fileList={fileList}\r\n setFileList={setFileList}\r\n accept={accept}\r\n fileKey={fileKey}\r\n templateURL={templateURL}\r\n customText={customText}\r\n TextEnum={TextEnum}\r\n />\r\n ) : (\r\n <ImportResult\r\n result={result}\r\n count={count}\r\n errorFile={errorFile}\r\n errorURL={errorURL}\r\n token={token}\r\n errorDownloadName={newErrorDownloadName}\r\n TextEnum={TextEnum}\r\n />\r\n )}\r\n <input\r\n type=\"file\"\r\n name={fileKey}\r\n accept={accept}\r\n ref={fileInputRef}\r\n style={{ display: 'none' }}\r\n onChange={onFileChange}\r\n value={fileList.length === 0 ? '' : fileList[0].fileName}\r\n />\r\n </Modal>\r\n );\r\n};\r\n\r\nVtxImport2.defaultProps = {\r\n fileKey: 'file',\r\n accept:\r\n 'application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,text/csv',\r\n postData: {},\r\n};\r\n\r\nVtxImport2.propTypes = {\r\n visible: PropTypes.bool,\r\n templateURL: PropTypes.string,\r\n uploadURL: PropTypes.string,\r\n title: PropTypes.string,\r\n postData: PropTypes.object,\r\n fileKey: PropTypes.string,\r\n accept: PropTypes.string,\r\n close: PropTypes.func,\r\n errorURL: PropTypes.string,\r\n errorDownloadName: PropTypes.string,\r\n afterUpload: PropTypes.func,\r\n token: PropTypes.string,\r\n customText: PropTypes.string,\r\n customEnumText: PropTypes.object,\r\n};\r\n\r\nexport default VtxImport2;\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["getFileName","name","index","lastIndexOf","suffix","substring","VtxImport2","props","visible","close","title","accept","fileKey","uploadURL","postData","errorURL","templateURL","afterUpload","errorDownloadName","customText","customEnumText","beforeUpload","TextEnum","headSubTitleText","btnCloseText","btnUploadText","btnReUploadText","btnImportText","msgUploadWarningText","normalTemplateInfoText","normalSelectFileInfoText","normalReChooseFileText","resultSuccessText","resultFailText","resultFailReasonDownText","resultInfoTotalText","resultInfoDataText","resultNetworkErrorText","useState","status","setStatus","result","setResult","countdown","setCountdown","fileList","setFileList","undefined","interval","setInterval","errorFile","setErrorFile","uploading","setUploading","count","setCount","fileInputRef","useRef","fileName","indexRef","useSet","step","chunkSize","totalChunk","currentIndex","chunkId","chunks","state","setState","token","getToken","newErrorDownloadName","current","useInterval","useEffect","length","checkFile","file","size","upload","mode","spreadFile","md5","Date","valueOf","Math","random","startUpload","dataArr","forEach","e","i","data","FormData","append","getVtxToken","File","push","uploadAsync","list","xhr","XMLHttpRequest","onload","onerror","message","error","open","send","mergeFile","res","JSON","parse","responseText","success","chunkUpload","msg","postUrl","getPostURL","fmd","id","request","signature","getSignature","key","setRequestHeader","onreadystatechange","target","readyState","dealResult","response","files","start","end","min","slice","postArray","k","encodeURIComponent","join","parseData","onUpload","flag","info","againUpload","click","onFileChange","modelProps","width","maskClosable","footer","onCancel","display","defaultProps","propTypes","PropTypes","bool","string","object","func","number"],"sources":["vtx-import2/index.jsx"],"sourcesContent":["import React, { useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Button, message, Modal } from 'antd';\r\nimport Content from './Content';\r\nimport { useState } from 'react';\r\nimport ImportResult from './ImportResult';\r\nimport { useInterval } from 'ahooks';\r\nimport { useEffect } from 'react';\r\nimport getToken from '../_util/getToken';\r\nimport getSignature from '@vtx/utils/lib/getSignature';\r\nimport useSet from '../_util/useSet';\r\nimport md5 from 'md5';\r\nimport { getVtxToken } from '@vtx/utils';\r\n\r\nfunction getFileName(name = '') {\r\n const index = name.lastIndexOf('.');\r\n const suffix = name.substring(index);\r\n return name.substring(0, index) + '(错误文件)' + suffix;\r\n}\r\n\r\nconst VtxImport2 = props => {\r\n const {\r\n visible,\r\n close,\r\n title,\r\n accept,\r\n fileKey,\r\n uploadURL,\r\n postData,\r\n errorURL,\r\n templateURL,\r\n afterUpload,\r\n errorDownloadName,\r\n customText,\r\n customEnumText = {},\r\n beforeUpload,\r\n } = props;\r\n const TextEnum = {\r\n headSubTitleText: '导入',\r\n\r\n btnCloseText: '关闭',\r\n btnUploadText: '上传',\r\n btnReUploadText: '再次上传',\r\n btnImportText: '导入',\r\n\r\n msgUploadWarningText: '请选择需要上传的文件',\r\n\r\n normalTemplateInfoText: '没有模板?点击此处下载',\r\n normalSelectFileInfoText: '点击选择文件(支持excel格式)',\r\n normalReChooseFileText: '重新选择文件',\r\n\r\n resultSuccessText: '导入成功',\r\n resultFailText: '导入失败',\r\n resultFailReasonDownText: '下载文件,查看导入失败原因',\r\n resultInfoTotalText: '本次共计',\r\n resultInfoDataText: '条数据',\r\n resultNetworkErrorText: '服务器异常',\r\n\r\n ...customEnumText,\r\n };\r\n const [status, setStatus] = useState(0); // 0:首页,1:结果页\r\n const [result, setResult] = useState(false);\r\n const [countdown, setCountdown] = useState(5);\r\n const [fileList, setFileList] = useState([]);\r\n const [interval, setInterval] = useState(undefined);\r\n const [errorFile, setErrorFile] = useState('');\r\n const [uploading, setUploading] = useState(false);\r\n const [count, setCount] = useState(0);\r\n const fileInputRef = useRef();\r\n const fileName = useRef('');\r\n const indexRef = useRef(0);\r\n\r\n const [state, setState] = useSet({\r\n step: 1,\r\n chunkSize: props.chunkSize || 10 * 1024 * 1024,\r\n totalChunk: 0,\r\n currentIndex: 0,\r\n chunkId: '',\r\n chunks: [],\r\n });\r\n\r\n let token = getToken();\r\n if (!token) {\r\n token = props.token;\r\n }\r\n let newErrorDownloadName = errorDownloadName;\r\n if (!errorDownloadName) {\r\n newErrorDownloadName = fileName.current;\r\n }\r\n useInterval(() => {\r\n if (countdown === 0) {\r\n return close();\r\n }\r\n setCountdown(countdown - 1);\r\n }, interval);\r\n\r\n useEffect(() => {\r\n if (fileList.length !== 0) {\r\n fileName.current = getFileName(fileList[0].name);\r\n }\r\n }, [fileList]);\r\n\r\n // 开始准备文件\r\n function checkFile(file) {\r\n if (file.size <= state.chunkSize) {\r\n upload(file);\r\n } else {\r\n setState({ mode: 'spread' });\r\n let chunks = spreadFile(file);\r\n setState({\r\n chunks,\r\n chunkId: md5(`${new Date().valueOf()}${Math.random()}`),\r\n totalChunk: chunks.length,\r\n step: 2,\r\n });\r\n }\r\n }\r\n // 开始上传\r\n function startUpload() {\r\n let dataArr = [];\r\n state.chunks.forEach((e, i) => {\r\n //创建formdata对象\r\n let data = new FormData();\r\n // data.append(\"totalNumber\", state.chunks.length)\r\n data.append('chunkSize', state.chunks.length);\r\n data.append('chunkNo', i + 1);\r\n data.append('chunkId', state.chunkId);\r\n data.append('tenantId', getVtxToken('tenantId'));\r\n data.append('file', new File([e], fileList[0].name));\r\n dataArr.push(data);\r\n });\r\n uploadAsync(dataArr);\r\n }\r\n // 上传\r\n function uploadAsync(list) {\r\n if (indexRef.current < list.length) {\r\n let xhr = new XMLHttpRequest();\r\n xhr.onload = function() {\r\n if (xhr.status === 200) {\r\n setState({ currentIndex: indexRef.current + 1 });\r\n indexRef.current += 1;\r\n uploadAsync(list);\r\n }\r\n };\r\n xhr.onerror = function() {\r\n message.error('上传失败');\r\n };\r\n // 发送请求\r\n xhr.open('POST', '/cloudFile/common/uploadChunk', true);\r\n xhr.send(list[indexRef.current]);\r\n } else {\r\n mergeFile();\r\n }\r\n }\r\n // 合并分片\r\n function mergeFile() {\r\n let xhr = new XMLHttpRequest();\r\n // 当上传完成时调用\r\n xhr.onload = function() {\r\n if (xhr.status === 200) {\r\n let res = JSON.parse(xhr.responseText);\r\n if (res?.result == 0) {\r\n message.success('上传成功');\r\n chunkUpload(res.data);\r\n } else {\r\n message.error(res?.msg || '上传失败');\r\n }\r\n }\r\n };\r\n xhr.onerror = function() {\r\n message.error('上传失败');\r\n };\r\n // 发送请求\r\n xhr.open('POST', '/cloudFile/common/mergeChunk', true);\r\n let data = new FormData();\r\n data.append('chunkId', state.chunkId);\r\n data.append('tenantId', getVtxToken('tenantId'));\r\n data.append('chunkSize', state.chunks.length);\r\n data.append('fileName', fileList[0].name);\r\n xhr.send(data);\r\n }\r\n // 合并切片后上传\r\n function chunkUpload(data) {\r\n const postUrl = getPostURL();\r\n const fmd = new FormData();\r\n fmd.append('fileId', data[0].id);\r\n const request = new XMLHttpRequest();\r\n request.open('POST', postUrl);\r\n const signature = getSignature(postData);\r\n for (let key in signature) {\r\n request.setRequestHeader(key, signature[key]);\r\n }\r\n request.setRequestHeader('Authorization', token ? `Bearer ${token}` : '');\r\n request.setRequestHeader('access_token', token ? `${token}` : '');\r\n request.onreadystatechange = e => {\r\n if (e.target.readyState == 4) {\r\n dealResult(e.target.response);\r\n }\r\n };\r\n request.send(fmd);\r\n }\r\n function upload(files) {\r\n const postUrl = getPostURL();\r\n const fmd = new FormData();\r\n fmd.append(fileKey, files);\r\n const request = new XMLHttpRequest();\r\n request.open('POST', postUrl);\r\n const signature = getSignature(postData);\r\n for (let key in signature) {\r\n request.setRequestHeader(key, signature[key]);\r\n }\r\n request.setRequestHeader('Authorization', token ? `Bearer ${token}` : '');\r\n request.setRequestHeader('access_token', token ? `${token}` : '');\r\n request.onreadystatechange = e => {\r\n if (e.target.readyState == 4) {\r\n dealResult(e.target.response);\r\n }\r\n };\r\n request.send(fmd);\r\n }\r\n // 切片文件\r\n function spreadFile(file) {\r\n const chunks = [];\r\n let start = 0;\r\n let end;\r\n while (start < file.size) {\r\n end = Math.min(start + state.chunkSize, file.size);\r\n chunks.push(file.slice(start, end));\r\n start = end;\r\n }\r\n return chunks;\r\n }\r\n\r\n // 获取上传地址(拼接参数)\r\n const getPostURL = () => {\r\n const postUrl = uploadURL;\r\n const postArray = [];\r\n for (const k in postData) {\r\n if (postData[k] !== undefined && postData[k] !== null && postData[k] !== '') {\r\n postArray.push(`${k}=${encodeURIComponent(postData[k])}`);\r\n }\r\n }\r\n return postArray.length > 0 ? `${postUrl}?${postArray.join('&')}` : postUrl;\r\n };\r\n\r\n const dealResult = response => {\r\n setUploading(false);\r\n const parseData = JSON.parse(response);\r\n setStatus(1);\r\n if (typeof props.afterUpload === 'function') {\r\n afterUpload(parseData);\r\n }\r\n if (parseData.result === 0) {\r\n setResult(true);\r\n setCountdown(5);\r\n setInterval(1000);\r\n setCount(parseData.data);\r\n } else if (parseData.result === 1) {\r\n setResult(false);\r\n setFileList([]);\r\n if (parseData.data) {\r\n setErrorFile(parseData.data);\r\n } else {\r\n message.error(parseData?.msg || TextEnum.resultNetworkErrorText);\r\n }\r\n }\r\n };\r\n\r\n const onUpload = ({ files = fileList }) => {\r\n if (typeof props.beforeUpload === 'function') {\r\n let flag = beforeUpload(files[0]);\r\n if(!flag){\r\n setFileList([]);\r\n return;\r\n }\r\n }\r\n if (files.length === 0) {\r\n return message.info(TextEnum.msgUploadWarningText);\r\n }\r\n setUploading(true);\r\n // 上传文件\r\n checkFile(files[0]);\r\n };\r\n\r\n const againUpload = () => {\r\n setInterval(undefined);\r\n setFileList([]);\r\n fileInputRef.current && fileInputRef.current.click();\r\n };\r\n\r\n const onFileChange = () => {\r\n const fileList = [...fileInputRef.current.files];\r\n setFileList(fileList);\r\n onUpload({ files: fileList });\r\n };\r\n\r\n useEffect(() => {\r\n if (state.chunkId) {\r\n startUpload();\r\n }\r\n }, [state.chunkId]);\r\n\r\n const modelProps = {\r\n visible,\r\n width: 392,\r\n maskClosable: false,\r\n footer: [\r\n <Button key=\"closeWindow\" onClick={close}>\r\n {`${TextEnum.btnCloseText}${status === 1 && result ? '(' + countdown + ')' : ''}`}\r\n </Button>,\r\n (status === 0 || (status === 1 && !result)) && (\r\n <Button\r\n key=\"uploadSubmit\"\r\n type=\"primary\"\r\n loading={uploading}\r\n onClick={status === 0 ? onUpload : againUpload}\r\n >\r\n {status === 0\r\n ? TextEnum.btnUploadText\r\n : result\r\n ? `${TextEnum.btnImportText}(${countdown})`\r\n : TextEnum.btnReUploadText}\r\n </Button>\r\n ),\r\n ],\r\n onCancel: close,\r\n title: (\r\n <div className=\"vtx-import2-modal-header-title\">\r\n <span className=\"vtx-import2-modal-header-text\">{title}</span>\r\n <span className=\"vtx-import2-modal-header-subtitle\">\r\n {TextEnum.headSubTitleText}\r\n </span>\r\n </div>\r\n ),\r\n };\r\n return (\r\n <Modal {...modelProps}>\r\n {status === 0 ? (\r\n <Content\r\n fileList={fileList}\r\n setFileList={setFileList}\r\n accept={accept}\r\n fileKey={fileKey}\r\n templateURL={templateURL}\r\n customText={customText}\r\n TextEnum={TextEnum}\r\n />\r\n ) : (\r\n <ImportResult\r\n result={result}\r\n count={count}\r\n errorFile={errorFile}\r\n errorURL={errorURL}\r\n token={token}\r\n errorDownloadName={newErrorDownloadName}\r\n TextEnum={TextEnum}\r\n />\r\n )}\r\n <input\r\n type=\"file\"\r\n name={fileKey}\r\n accept={accept}\r\n ref={fileInputRef}\r\n style={{ display: 'none' }}\r\n onChange={onFileChange}\r\n value={fileList.length === 0 ? '' : fileList[0].fileName}\r\n />\r\n </Modal>\r\n );\r\n};\r\n\r\nVtxImport2.defaultProps = {\r\n fileKey: 'file',\r\n accept:\r\n 'application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,text/csv',\r\n postData: {},\r\n};\r\n\r\nVtxImport2.propTypes = {\r\n visible: PropTypes.bool,\r\n templateURL: PropTypes.string,\r\n uploadURL: PropTypes.string,\r\n title: PropTypes.string,\r\n postData: PropTypes.object,\r\n fileKey: PropTypes.string,\r\n accept: PropTypes.string,\r\n close: PropTypes.func,\r\n errorURL: PropTypes.string,\r\n errorDownloadName: PropTypes.string,\r\n afterUpload: PropTypes.func,\r\n token: PropTypes.string,\r\n customText: PropTypes.string,\r\n customEnumText: PropTypes.object,\r\n beforeUpload: PropTypes.func,\r\n chunkSize: PropTypes.number,\r\n};\r\n\r\nexport default VtxImport2;\r\n"],"mappings":"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"}
@@ -31,7 +31,8 @@ function Preview(props) {
31
31
  url = props.url,
32
32
  downloadUrl = props.downloadUrl,
33
33
  visible = props.visible,
34
- onCancel = props.onCancel;
34
+ onCancel = props.onCancel,
35
+ customDownload = props.customDownload;
35
36
  var player = null,
36
37
  timer = null;
37
38
  timer = setTimeout(function () {
@@ -64,7 +65,11 @@ function Preview(props) {
64
65
  key: "download",
65
66
  type: "primary",
66
67
  onClick: function onClick() {
67
- return createForm(downloadUrl);
68
+ if (customDownload instanceof Function) {
69
+ customDownload(downloadUrl);
70
+ } else {
71
+ createForm(downloadUrl);
72
+ }
68
73
  }
69
74
  }, "\u4E0B\u8F7D")]
70
75
  };
@@ -106,6 +111,7 @@ Preview.propTypes = {
106
111
  url: _propTypes["default"].string,
107
112
  visible: _propTypes["default"].bool,
108
113
  onCancel: _propTypes["default"].func,
114
+ customDownload: _propTypes["default"].func,
109
115
  downloadUrl: _propTypes["default"].string
110
116
  };
111
117
  var _default = Preview;
@@ -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/lib/modal';\nimport Button from 'antd/lib/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 const 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":"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"}
1
+ {"version":3,"file":"FilePreview.js","names":["Preview","props","type","name","url","downloadUrl","visible","onCancel","customDownload","player","timer","setTimeout","document","getElementById","Player","id","width","height","controlPlugins","volume","playbackRate","modalProps","title","cancel","footer","Function","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/lib/modal';\nimport Button from 'antd/lib/button';\n\nfunction Preview(props) {\n const { type, name, url, downloadUrl, visible, onCancel, customDownload } = 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={() => {\n if(customDownload instanceof Function){\n customDownload(downloadUrl);\n }else {\n createForm(downloadUrl)\n }\n }}>\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 customDownload: PropTypes.func,\n downloadUrl: PropTypes.string,\n};\n\nexport default Preview;\n\nconst createForm = function(reqURL) {\n const 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":"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"}
@@ -37,7 +37,7 @@ var _getToken = _interopRequireDefault(require("../_util/getToken"));
37
37
 
38
38
  var _antdImgCrop = _interopRequireDefault(require("antd-img-crop"));
39
39
 
40
- var _excluded = ["isDragger", "draggerConfig", "accept", "mode", "viewMode", "showUploadList", "customizedButton", "listType", "onSuccess", "onError", "onRemove", "maxFileSize", "beforeUpload", "maxNum", "flag", "crop"];
40
+ var _excluded = ["isDragger", "draggerConfig", "accept", "mode", "viewMode", "showUploadList", "customizedButton", "listType", "onSuccess", "onError", "onRemove", "maxFileSize", "beforeUpload", "maxNum", "flag", "crop", "customDownload"];
41
41
 
42
42
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
43
43
 
@@ -122,6 +122,7 @@ var VtxUpload = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
122
122
  maxNum = props.maxNum,
123
123
  flag = props.flag,
124
124
  crop = props.crop,
125
+ customDownload = props.customDownload,
125
126
  rest = _objectWithoutProperties(props, _excluded); // 是否使用缩略图
126
127
 
127
128
 
@@ -342,7 +343,8 @@ var VtxUpload = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
342
343
  name: file.name || '视频预览',
343
344
  url: downloadUrl + file.id,
344
345
  downloadUrl: downloadUrl + file.id,
345
- visible: true
346
+ visible: true,
347
+ customDownload: customDownload
346
348
  });
347
349
  } else {
348
350
  (0, _downloadFile["default"])(downloadUrl + file.id, {
@@ -502,6 +504,7 @@ VtxUpload.propTypes = {
502
504
  onError: _propTypes["default"].func,
503
505
  onRemove: _propTypes["default"].func,
504
506
  onPreview: _propTypes["default"].func,
507
+ customDownload: _propTypes["default"].func,
505
508
  maxFileSize: _propTypes["default"].number,
506
509
  beforeUpload: _propTypes["default"].func,
507
510
  maxNum: _propTypes["default"].number,
@@ -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","crop","rest","useThumbnail","undefined","useState","fileList","setFileList","imageViewer","setImageViewer","imageList","setImageList","imageCt","setImageCt","useSetState","vPrev","setVPrev","joinToken","str","indexOf","replace","getToken","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","onDownload","downloadFile","fileName","onPreview","handlePreview","showRemoveIcon","showDownloadIcon","imageIndex","update","view","processedFileList","index","console","isSupportThumbnail","upload","fontSize","color","comp","img","maxWidth","maxHeight","marginTop","marginBottom","mainText","subText","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/lib/upload';\r\nimport Button from 'antd/lib/button';\r\nimport InboxOutlined from '@ant-design/icons/InboxOutlined';\r\nimport PlusOutlined from '@ant-design/icons/PlusOutlined';\r\nimport UploadOutlined from '@ant-design/icons/UploadOutlined';\r\nimport message from 'antd/lib/message';\r\nimport downloadFile from '@vtx/utils/lib/downloadFile';\r\nimport debounce from 'lodash.debounce';\r\nimport Prev from './FilePreview';\r\nimport getToken from '../_util/getToken';\r\nimport ImgCrop from 'antd-img-crop';\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 crop, //是否打开裁剪\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 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=${getToken() || ''}&`);\r\n } else if (str.indexOf('?') === -1) {\r\n return str + `?token=${getToken() || ''}`;\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(\r\n window?.flsPrefix\r\n ? `${window.flsPrefix}${initUrl.thumbnailUrl}`\r\n : `${props.thumbnailUrl || initUrl.thumbnailUrl}`,\r\n ),\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 = getToken() || '';\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 onDownload: file=>{\r\n downloadFile(\r\n file.url,\r\n { fileName: file.name },\r\n 'blob',\r\n );\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, showDownloadIcon: true };\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 let url = item.url || downloadUrl + item.id,\r\n thumbUrl = useThumbnail ? item.thumbUrl || thumbnailUrl + item.id : undefined;\r\n if(!isSupportThumbnail(item.type)){\r\n thumbUrl = url;\r\n }\r\n return {\r\n ...item,\r\n uid: -1 - index,\r\n status: 'done',\r\n url,\r\n thumbUrl,\r\n };\r\n });\r\n return processedFileList;\r\n };\r\n\r\n const upload = (\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 <PlusOutlined style={{ fontSize: '28px', color: '#999' }} />\r\n <div className=\"ant-upload-text\">上传</div>\r\n </div>\r\n ) : (\r\n <Button>\r\n <UploadOutlined />\r\n 上传\r\n </Button>\r\n ))}\r\n </Upload>\r\n )\r\n const comp = (listType == 'picture-card'&&!!crop)?\r\n <ImgCrop rotationSlider>\r\n {upload}\r\n </ImgCrop>\r\n :upload;\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 <InboxOutlined />\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 comp\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 | PropTypes.object,\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 crop: PropTypes.bool,\r\n};\r\nexport default VtxUpload;\r\n\r\nfunction isSupportThumbnail(type){\r\n if(['image/webp'].includes(type)){\r\n return false;\r\n }\r\n return true;\r\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","crop","customDownload","rest","useThumbnail","undefined","useState","fileList","setFileList","imageViewer","setImageViewer","imageList","setImageList","imageCt","setImageCt","useSetState","vPrev","setVPrev","joinToken","str","indexOf","replace","getToken","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","onDownload","downloadFile","fileName","onPreview","handlePreview","showRemoveIcon","showDownloadIcon","imageIndex","update","view","processedFileList","index","console","isSupportThumbnail","upload","fontSize","color","comp","img","maxWidth","maxHeight","marginTop","marginBottom","mainText","subText","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/lib/upload';\r\nimport Button from 'antd/lib/button';\r\nimport InboxOutlined from '@ant-design/icons/InboxOutlined';\r\nimport PlusOutlined from '@ant-design/icons/PlusOutlined';\r\nimport UploadOutlined from '@ant-design/icons/UploadOutlined';\r\nimport message from 'antd/lib/message';\r\nimport downloadFile from '@vtx/utils/lib/downloadFile';\r\nimport debounce from 'lodash.debounce';\r\nimport Prev from './FilePreview';\r\nimport getToken from '../_util/getToken';\r\nimport ImgCrop from 'antd-img-crop';\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 crop, //是否打开裁剪\r\n customDownload,// 自定义下载文件\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 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=${getToken() || ''}&`);\r\n } else if (str.indexOf('?') === -1) {\r\n return str + `?token=${getToken() || ''}`;\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(\r\n window?.flsPrefix\r\n ? `${window.flsPrefix}${initUrl.thumbnailUrl}`\r\n : `${props.thumbnailUrl || initUrl.thumbnailUrl}`,\r\n ),\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 = getToken() || '';\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 onDownload: file=>{\r\n downloadFile(\r\n file.url,\r\n { fileName: file.name },\r\n 'blob',\r\n );\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 customDownload\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, showDownloadIcon: true };\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 let url = item.url || downloadUrl + item.id,\r\n thumbUrl = useThumbnail ? item.thumbUrl || thumbnailUrl + item.id : undefined;\r\n if(!isSupportThumbnail(item.type)){\r\n thumbUrl = url;\r\n }\r\n return {\r\n ...item,\r\n uid: -1 - index,\r\n status: 'done',\r\n url,\r\n thumbUrl,\r\n };\r\n });\r\n return processedFileList;\r\n };\r\n\r\n const upload = (\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 <PlusOutlined style={{ fontSize: '28px', color: '#999' }} />\r\n <div className=\"ant-upload-text\">上传</div>\r\n </div>\r\n ) : (\r\n <Button>\r\n <UploadOutlined />\r\n 上传\r\n </Button>\r\n ))}\r\n </Upload>\r\n )\r\n const comp = (listType == 'picture-card'&&!!crop)?\r\n <ImgCrop rotationSlider>\r\n {upload}\r\n </ImgCrop>\r\n :upload;\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 <InboxOutlined />\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 comp\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 | PropTypes.object,\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 customDownload: 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 crop: PropTypes.bool,\r\n};\r\nexport default VtxUpload;\r\n\r\nfunction isSupportThumbnail(type){\r\n if(['image/webp'].includes(type)){\r\n return false;\r\n }\r\n return true;\r\n}"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAMA,gBAAgB,GAAG,IAAAC,kBAAA,EAAS,UAAAC,GAAG,EAAI;EACrCC,mBAAA,CAAQC,KAAR,CAAcF,GAAd;AACH,CAFwB,EAEtB,GAFsB,CAAzB,C,CAIA;;AACA,IAAMG,SAAS,GAAG;EACdC,IAAI,EAAE,EADQ;EACJ;EACVC,IAAI,EAAE,EAFQ;EAGdC,GAAG,EAAE,EAHS;EAIdC,WAAW,EAAE,EAJC;EAKdC,OAAO,EAAE;AALK,CAAlB;AAQA,IAAMC,OAAO,GAAG;EACZC,MAAM,EAAE,8BADI;EAEZH,WAAW,EAAE,oCAFD;EAGZI,YAAY,EACR,kFAJQ,CAKZ;;AALY,CAAhB,C,CAOA;;AACA,IAAMC,WAAW,GAAG,CAAC,MAAD,EAAS,OAAT,EAAkB,MAAlB,EAA0B,MAA1B,EAAkC,MAAlC,EAA0C,MAA1C,EAAkD,MAAlD,EAA0D,MAA1D,EAAkE,MAAlE,CAApB;AAEA,IAAMC,OAAO,GAAGC,kBAAA,CAAOD,OAAvB;AACA,IAAME,SAAS,gBAAG,IAAAC,iBAAA,EAAW,UAACC,KAAD,EAAQC,GAAR,EAAgB;EAAA;;EACzC,uBAmBID,KAnBJ,CACIE,SADJ;EAAA,IACIA,SADJ,iCACgB,KADhB;EAAA,2BAmBIF,KAnBJ,CAEIG,aAFJ;EAAA,IAEIA,aAFJ,qCAEoB,EAFpB;EAAA,IAGIC,MAHJ,GAmBIJ,KAnBJ,CAGII,MAHJ;EAAA,kBAmBIJ,KAnBJ,CAIIK,IAJJ;EAAA,IAIIA,IAJJ,4BAIW,UAJX;EAAA,IAKIC,QALJ,GAmBIN,KAnBJ,CAKIM,QALJ;EAAA,IAMIC,cANJ,GAmBIP,KAnBJ,CAMIO,cANJ;EAAA,IAOIC,gBAPJ,GAmBIR,KAnBJ,CAOIQ,gBAPJ;EAAA,sBAmBIR,KAnBJ,CAQIS,QARJ;EAAA,IAQIA,QARJ,gCAQe,MARf;EAAA,IASIC,SATJ,GAmBIV,KAnBJ,CASIU,SATJ;EAAA,IAUIC,OAVJ,GAmBIX,KAnBJ,CAUIW,OAVJ;EAAA,IAWIC,SAXJ,GAmBIZ,KAnBJ,CAWIY,QAXJ;EAAA,yBAmBIZ,KAnBJ,CAYIa,WAZJ;EAAA,IAYIA,WAZJ,mCAYkB,IAAI,IAAJ,GAAW,IAZ7B;EAAA,IAaIC,aAbJ,GAmBId,KAnBJ,CAaIc,YAbJ;EAAA,IAcIC,MAdJ,GAmBIf,KAnBJ,CAcIe,MAdJ;EAAA,IAeIC,IAfJ,GAmBIhB,KAnBJ,CAeIgB,IAfJ;EAAA,IAgBIC,IAhBJ,GAmBIjB,KAnBJ,CAgBIiB,IAhBJ;EAAA,IAiBIC,cAjBJ,GAmBIlB,KAnBJ,CAiBIkB,cAjBJ;EAAA,IAkBOC,IAlBP,4BAmBInB,KAnBJ,aADyC,CAqBzC;;;EACA,IAAMoB,YAAY,GACd,CAACpB,KAAK,CAACoB,YAAN,KAAuBC,SAAvB,GAAmC,IAAnC,GAA0CrB,KAAK,CAACoB,YAAjD,MACCX,QAAQ,IAAI,SAAZ,IAAyBA,QAAQ,IAAI,cADtC,CADJ;;EAIA,gBAAgC,IAAAa,eAAA,EAAS,EAAT,CAAhC;EAAA;EAAA,IAAOC,QAAP;EAAA,IAAiBC,WAAjB,iBA1ByC,CA0BK;;;EAC9C,iBAAsC,IAAAF,eAAA,EAAS,IAAT,CAAtC;EAAA;EAAA,IAAOG,WAAP;EAAA,IAAoBC,cAApB,iBA3ByC,CA2Ba;;;EACtD,iBAAkC,IAAAJ,eAAA,EAAS,EAAT,CAAlC;EAAA;EAAA,IAAOK,SAAP;EAAA,IAAkBC,YAAlB;;EACA,iBAA8B,IAAAN,eAAA,EAAS,IAAT,CAA9B;EAAA;EAAA,IAAOO,OAAP;EAAA,IAAgBC,UAAhB;;EACA,mBAA0B,IAAAC,wBAAA,EAAY7C,SAAZ,CAA1B;EAAA;EAAA,IAAO8C,KAAP;EAAA,IAAcC,QAAd,oBA9ByC,CA8BS;EAElD;;;EACA,SAASC,SAAT,CAAmBC,GAAnB,EAAwB;IACpB,IAAIA,GAAG,CAACC,OAAJ,CAAY,QAAZ,MAA0B,CAAC,CAA3B,IAAgCD,GAAG,CAACC,OAAJ,CAAY,GAAZ,IAAmB,CAAC,CAAxD,EAA2D;MACvD,OAAOD,GAAG,CAACE,OAAJ,CAAY,GAAZ,mBAA2B,IAAAC,oBAAA,OAAc,EAAzC,OAAP;IACH,CAFD,MAEO,IAAIH,GAAG,CAACC,OAAJ,CAAY,GAAZ,MAAqB,CAAC,CAA1B,EAA6B;MAChC,OAAOD,GAAG,oBAAa,IAAAG,oBAAA,OAAc,EAA3B,CAAV;IACH;;IACD,OAAOH,GAAP;EACH;;EAED,IAAM9C,GAAG,GAAG;IACRI,MAAM,EAAEO,KAAK,CAACP,MAAN,IAAgBD,OAAO,CAACC,MADxB;IAERH,WAAW,EAAE4C,SAAS,CAAClC,KAAK,CAACV,WAAN,IAAqBE,OAAO,CAACF,WAA9B,CAFd;IAGRI,YAAY,EAAEwC,SAAS,CACnB,WAAAK,MAAM,UAAN,kCAAQC,SAAR,aACSD,MAAM,CAACC,SADhB,SAC4BhD,OAAO,CAACE,YADpC,cAESM,KAAK,CAACN,YAAN,IAAsBF,OAAO,CAACE,YAFvC,CADmB,CAHf,CAQR;;EARQ,CAAZ;EAUA,IAAQD,MAAR,GAA8CJ,GAA9C,CAAQI,MAAR;EAAA,IAAgBH,WAAhB,GAA8CD,GAA9C,CAAgBC,WAAhB;EAAA,IAA6BI,YAA7B,GAA8CL,GAA9C,CAA6BK,YAA7B;EAEA,IAAA+C,gBAAA,EAAU,YAAM;IACZjB,WAAW,CAACkB,cAAc,CAAC1C,KAAD,CAAd,IAAyB,EAA1B,CAAX;EACH,CAFD,EAEG,CAACgB,IAAD,CAFH;EAIA,IAAAyB,gBAAA,EAAU,YAAM;IACZ,IAAIE,KAAK,CAACC,OAAN,CAAcrB,QAAd,CAAJ,EAA6B;MACzB;MACA,IAAMsB,SAAS,GAAG,EAAlB,CAFyB,CAGzB;;MACAtB,QAAQ,CAACuB,GAAT,CAAa,UAAAC,IAAI,EAAI;QAAA;;QACjB,IAAI,eAAAA,IAAI,CAAC5D,IAAL,0DAAWiD,OAAX,CAAmB,OAAnB,KAA8B,CAAC,CAAnC,EAAsC;UAClCS,SAAS,CAACG,IAAV,CAAeD,IAAf;QACH;MACJ,CAJD;MAKAnB,YAAY,CAACiB,SAAD,CAAZ;IACH;EACJ,CAZD,EAYG,CAACtB,QAAD,CAZH;EAcA,IAAAkB,gBAAA,EAAU,YAAM;IACZ,IAAIZ,OAAJ,EAAa;MACTH,cAAc,CAAC,IAAIuB,oBAAJ,CAAWpB,OAAX,EAAoB,EAApB,CAAD,CAAd;IACH;EACJ,CAJD,EAIG,CAACA,OAAD,CAJH;;EAMA,IAAMqB,SAAS,GAAG,SAAZA,SAAY,GAAM;IACpB,IAAIC,KAAK,GAAG,IAAAb,oBAAA,OAAc,EAA1B;;IACA,IAAIc,MAAM,mCACHjC,IADG;MAENf,MAAM,EAANA,MAFM;MAGNX,MAAM,EAANA,MAHM;MAIN8B,QAAQ,EAAEA,QAJJ;MAKNd,QAAQ,EAARA,QALM;MAMNF,cAAc,EAAdA,cANM;MAON8C,OAAO;QACHC,aAAa,EAAEH,KAAK,oBAAaA,KAAb,IAAuB;MADxC,GAEAhC,IAAI,CAACkC,OAFL,CAPD;MAWNE,QAXM,oBAWGC,IAXH,EAWS;QACXhC,WAAW,CAACgC,IAAI,CAACjC,QAAN,CAAX;;QACA,IAAIiC,IAAI,CAACT,IAAL,CAAUU,QAAV,IAAsBD,IAAI,CAACT,IAAL,CAAUU,QAAV,CAAmBC,MAAnB,KAA8B,CAAxD,EAA2D;UACvD1E,mBAAA,CAAQC,KAAR,CAAcuE,IAAI,CAACT,IAAL,CAAUU,QAAV,CAAmBE,MAAnB,IAA6B,OAA3C;;UACA,IAAIC,GAAG,sBAAOrC,QAAP,CAAP;;UACAqC,GAAG,CAACC,GAAJ;UACArC,WAAW,CAACoC,GAAD,CAAX;UACA;QACH,CARU,CASX;;;QACA,IAAIJ,IAAI,CAACT,IAAL,CAAUe,MAAV,KAAqB,WAArB,IAAoCN,IAAI,CAACT,IAAL,CAAUe,MAAV,KAAqB,SAA7D,EAAwE;UACpE,IAAIC,KAAK,GACLP,IAAI,CAACT,IAAL,CAAUU,QAAV,IACAd,KAAK,CAACC,OAAN,CAAcY,IAAI,CAACT,IAAL,CAAUU,QAAV,CAAmBO,IAAjC,CADA,IAEAR,IAAI,CAACT,IAAL,CAAUU,QAAV,CAAmBO,IAAnB,CAAwBC,MAAxB,GAAiC,CAFjC,GAGMT,IAAI,CAACT,IAAL,CAAUU,QAAV,CAAmBO,IAAnB,CAAwB,CAAxB,EAA2BE,EAHjC,GAIM7C,SALV;UAMA,IAAI8C,WAAW,GAAGX,IAAI,CAACjC,QAAvB;UACA,IAAI6C,OAAO,GAAGL,KAAK,mCAENP,IAAI,CAACT,IAFC;YAGTmB,EAAE,EAAEH,KAHK;YAIT1E,GAAG,EAAEC,WAAW,GAAGyE,KAJV;YAKTM,QAAQ,EAAEjD,YAAY,GAAG1B,YAAY,GAAGqE,KAAlB,GAA0B1C;UALvC,uBAQNmC,IAAI,CAACT,IARC,CAAnB;UAUAoB,WAAW,GAAGX,IAAI,CAACjC,QAAL,CACT+C,MADS,CACF,UAAAC,IAAI,EAAI;YACZ;YACA,IAAIR,KAAK,IAAIQ,IAAI,CAACL,EAAlB,EAAsB,OAAO,IAAP;YACtB,OAAO,KAAP;UACH,CALS,EAMTpB,GANS,CAML,UAAAyB,IAAI,EAAI;YACT,IAAIA,IAAI,CAACC,GAAL,IAAYhB,IAAI,CAACT,IAAL,CAAUyB,GAA1B,EAA+B;cAC3B,uCACOD,IADP;gBAEIL,EAAE,EAAEH,KAFR;gBAGI1E,GAAG,EAAEC,WAAW,GAAGyE,KAHvB;gBAIIM,QAAQ,EAAEjD,YAAY,GAAG1B,YAAY,GAAGqE,KAAlB,GAA0B1C;cAJpD;YAMH;;YACD,OAAOkD,IAAP;UACH,CAhBS,CAAd;;UAkBA,IAAIlE,IAAI,IAAI,QAAZ,EAAsB;YAClBmB,WAAW,CAAC,CAAC4C,OAAD,CAAD,CAAX;UACH,CAFD,MAEO;YACH5C,WAAW,CAAC2C,WAAD,CAAX;UACH,CAxCmE,CAyCpE;UACA;UACA;UACA;UACA;UACA;UAEA;;;UACA,IAAIX,IAAI,CAACT,IAAL,CAAUe,MAAV,KAAqB,MAAzB,EAAiC;YAC7B,IAAI,OAAOpD,SAAP,IAAoB,UAAxB,EAAoC;cAChCA,SAAS,CAAC0D,OAAD,CAAT;YACH;UACJ,CAJD,MAIO,IAAIZ,IAAI,CAACT,IAAL,CAAUe,MAAV,KAAqB,OAAzB,EAAkC;YACrC,IAAI,OAAOnD,OAAP,IAAkB,UAAtB,EAAkC;cAC9BA,OAAO,CAAC6C,IAAI,CAACT,IAAN,CAAP;YACH;UACJ;QACJ;MACJ,CAhFK;MAiFNnC,QAjFM,oBAiFGmC,IAjFH,EAiFS;QACX,IAAI,OAAOnC,SAAP,IAAmB,UAAvB,EAAmC;UAC/B,OAAOA,SAAQ,CAACmC,IAAD,CAAf;QACH;MACJ,CArFK;MAsFNjC,YAtFM,wBAsFOiC,IAtFP,EAsFa0B,aAtFb,EAsF4B;QAC9B;QACA,IAAI5D,WAAW,IAAI,OAAOA,WAAP,KAAuB,QAA1C,EAAoD;UAChD,IAAM6D,KAAK,GAAG3B,IAAI,CAAC4B,IAAL,GAAY9D,WAA1B;;UACA,IAAI,CAAC6D,KAAL,EAAY;YACR1F,mBAAA,CAAQC,KAAR,6BAAoB4B,WAAW,GAAG,IAAd,GAAqB,IAAzC;;YACA,OAAO,KAAP;UACH;QACJ,CAR6B,CAS9B;;;QACA,IAAI+D,UAAU,GAAG7B,IAAI,CAAC3D,IAAL,GAAY2D,IAAI,CAAC3D,IAAL,CAAUyF,WAAV,CAAsB,GAAtB,CAAZ,GAAyC,CAAC,CAA3D;;QACA,IAAID,UAAU,GAAG,CAAC,CAAlB,EAAqB;UACjB,IAAIE,QAAQ,GAAG/B,IAAI,CAAC3D,IAAL,CAAU2F,SAAV,CAAoBH,UAApB,CAAf;;UACA,IAAIjF,WAAW,CAACqF,QAAZ,CAAqBF,QAArB,CAAJ,EAAoC;YAChC9F,mBAAA,CAAQC,KAAR,CAAc,UAAd;;YACA,OAAO,KAAP;UACH;QACJ,CAjB6B,CAkB9B;;;QACA,IAAI,OAAO8B,MAAP,KAAkB,QAAlB,IAA8B0D,aAAa,CAACR,MAAd,GAAuB1C,QAAQ,CAAC0C,MAAhC,GAAyClD,MAA3E,EAAmF;UAC/E;UACAlC,gBAAgB,mCAAQkC,MAAR,YAAhB;UACA,OAAO,KAAP;QACH;;QAED,IAAI,OAAOD,aAAP,KAAwB,UAA5B,EAAwC;UACpC,OAAOA,aAAY,CAACiC,IAAD,EAAO0B,aAAP,CAAnB;QACH;;QACD,OAAO,IAAP;MACH,CAnHK;MAoHNQ,UAAU,EAAE,oBAAAlC,IAAI,EAAE;QACd,IAAAmC,wBAAA,EACInC,IAAI,CAAC1D,GADT,EAEI;UAAE8F,QAAQ,EAAEpC,IAAI,CAAC3D;QAAjB,CAFJ,EAGI,MAHJ;MAKH;IA1HK,EAAV;;IA6HA,IAAIY,KAAK,CAACoF,SAAN,IAAmB,OAAOpF,KAAK,CAACoF,SAAb,KAA2B,UAAlD,EAA8D;MAC1DhC,MAAM,CAACgC,SAAP,GAAmBpF,KAAK,CAACoF,SAAzB;IACH,CAFD,MAEO;MACHhC,MAAM,CAACgC,SAAP,GAAmB,UAAArC,IAAI,EAAI;QAAA;;QACvB,IAAI,CAACA,IAAI,CAAC5D,IAAV,EAAgB;UACZ,IAAA+F,wBAAA,EAAa5F,WAAW,GAAGyD,IAAI,CAACmB,EAAhC,EAAoC;YAAEiB,QAAQ,EAAEpC,IAAI,CAAC3D;UAAjB,CAApC,EAA6D,MAA7D;QACH,CAFD,MAEO,IAAI,gBAAA2D,IAAI,CAAC5D,IAAL,4DAAWiD,OAAX,CAAmB,OAAnB,KAA8B,CAAC,CAAnC,EAAsC;UACzCiD,aAAa,CAACtC,IAAD,CAAb;QACH,CAFM,MAEA,IAAI,gBAAAA,IAAI,CAAC5D,IAAL,4DAAWiD,OAAX,CAAmB,OAAnB,KAA8B,CAAC,CAAnC,EAAsC;UACzC;UACAH,QAAQ,CAAC;YACL9C,IAAI,EAAE,OADD;YAELC,IAAI,EAAE2D,IAAI,CAAC3D,IAAL,IAAa,MAFd;YAGLC,GAAG,EAAEC,WAAW,GAAGyD,IAAI,CAACmB,EAHnB;YAIL5E,WAAW,EAAEA,WAAW,GAAGyD,IAAI,CAACmB,EAJ3B;YAKL3E,OAAO,EAAE,IALJ;YAML2B,cAAc,EAAdA;UANK,CAAD,CAAR;QAQH,CAVM,MAUA;UACH,IAAAgE,wBAAA,EAAa5F,WAAW,GAAGyD,IAAI,CAACmB,EAAhC,EAAoC;YAAEiB,QAAQ,EAAEpC,IAAI,CAAC3D;UAAjB,CAApC,EAA6D,MAA7D;QACH,CAjBsB,CAmBvB;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;MACH,CA9CD;IA+CH,CAjLmB,CAmLpB;;;IACA,IAAIkB,QAAJ,EAAc;MACV8C,MAAM,CAAC7C,cAAP,GAAwB;QAAE+E,cAAc,EAAE,KAAlB;QAAyBC,gBAAgB,EAAE;MAA3C,CAAxB;IACH;;IAED,OAAOnC,MAAP;EACH,CAzLD;;EA2LA,IAAMiC,aAAa,GAAG,SAAhBA,aAAgB,CAAAtC,IAAI,EAAI;IAC1B,IAAMyC,UAAU,GAAG7D,SAAS,CAACmB,GAAV,CAAc,UAAAyB,IAAI;MAAA,OAAIA,IAAI,CAACL,EAAT;IAAA,CAAlB,EAA+B9B,OAA/B,CAAuCW,IAAI,CAACmB,EAA5C,CAAnB;IACA,IAAIsB,UAAU,IAAI,CAAC,CAAnB,EAAsB;IACtB/D,WAAW,CAACgE,MAAZ;IACAhE,WAAW,CAACiE,IAAZ,CAAiBF,UAAjB;EACH,CALD;;EAOA,IAAM9C,cAAc,GAAG,SAAjBA,cAAiB,CAAA1C,KAAK,EAAI;IAC5B,IAAI2F,iBAAiB,GAAG3F,KAAK,CAACuB,QAAN,IAAkB,EAA1C,CAD4B,CAE5B;;IACA,IAAIvB,KAAK,CAACK,IAAN,IAAc,QAAd,IAA0BsF,iBAAiB,CAAC1B,MAAlB,GAA2B,CAAzD,EAA4D;MACxD0B,iBAAiB,GAAG,CAACA,iBAAiB,CAAC,CAAD,CAAlB,CAApB;IACH;;IACDA,iBAAiB,GAAGA,iBAAiB,CAAC7C,GAAlB,CAAsB,UAACyB,IAAD,EAAOqB,KAAP,EAAiB;MACvD;MACA,IAAIrB,IAAI,CAACnF,IAAL,KAAciC,SAAd,IAA2BkD,IAAI,CAACL,EAAL,KAAY7C,SAA3C,EAAsD;QAClD;QACAwE,OAAO,CAAC5G,KAAR,CAAc,oBAAd;MACH;;MACD,IAAII,GAAG,GAAGkF,IAAI,CAAClF,GAAL,IAAYC,WAAW,GAAGiF,IAAI,CAACL,EAAzC;MAAA,IACIG,QAAQ,GAAGjD,YAAY,GAAGmD,IAAI,CAACF,QAAL,IAAiB3E,YAAY,GAAG6E,IAAI,CAACL,EAAxC,GAA6C7C,SADxE;;MAEA,IAAG,CAACyE,kBAAkB,CAACvB,IAAI,CAACpF,IAAN,CAAtB,EAAkC;QAC9BkF,QAAQ,GAAGhF,GAAX;MACH;;MACD,uCACOkF,IADP;QAEIC,GAAG,EAAE,CAAC,CAAD,GAAKoB,KAFd;QAGI9B,MAAM,EAAE,MAHZ;QAIIzE,GAAG,EAAHA,GAJJ;QAKIgF,QAAQ,EAARA;MALJ;IAOH,CAlBmB,CAApB;IAmBA,OAAOsB,iBAAP;EACH,CA1BD;;EA4BA,IAAMI,MAAM,gBACR,gCAAC,kBAAD,eAAY7C,SAAS,EAArB;IAAyB,GAAG,EAAEjD;EAA9B,IACKK,QAAQ,IAAIiB,QAAQ,CAAC0C,MAAT,IAAmBlD,MAA/B,GACK,IADL,GAEKP,gBAAgB,KACbC,QAAQ,IAAI,cAAZ,gBACG,0DACI,gCAAC,wBAAD;IAAc,KAAK,EAAE;MAAEuF,QAAQ,EAAE,MAAZ;MAAoBC,KAAK,EAAE;IAA3B;EAArB,EADJ,eAEI;IAAK,SAAS,EAAC;EAAf,kBAFJ,CADH,gBAMG,gCAAC,kBAAD,qBACI,gCAAC,0BAAD,OADJ,iBAPU,CAH1B,CADJ;;EAkBA,IAAMC,IAAI,GAAIzF,QAAQ,IAAI,cAAZ,IAA4B,CAAC,CAACQ,IAA/B,gBACT,gCAAC,uBAAD;IAAS,cAAc;EAAvB,GACK8E,MADL,CADS,GAIRA,MAJL;EAMA,oBACI,kEACK7F,SAAS,gBACN,gCAAC,OAAD,eAAagD,SAAS,EAAtB;IAA0B,GAAG,EAAEjD;EAA/B,IACKE,aAAa,SAAb,IAAAA,aAAa,WAAb,IAAAA,aAAa,CAAEgG,GAAf,gBACG;IACI,GAAG,EAAEhG,aAAa,CAACgG,GADvB;IAEI,GAAG,EAAC,EAFR;IAGI,KAAK,EAAE;MACHC,QAAQ,EAAE,GADP;MAEHC,SAAS,EAAE,GAFR;MAGHC,SAAS,EAAE,IAHR;MAIHC,YAAY,EAAE;IAJX;EAHX,EADH,gBAYG;IAAG,SAAS,EAAC;EAAb,gBACI,gCAAC,yBAAD,OADJ,CAbR,eAiBI;IAAG,SAAS,EAAC;EAAb,GAAgC,CAAApG,aAAa,SAAb,IAAAA,aAAa,WAAb,YAAAA,aAAa,CAAEqG,QAAf,KAA2B,SAA3D,CAjBJ,eAkBI;IAAG,SAAS,EAAC;EAAb,GACK,CAAArG,aAAa,SAAb,IAAAA,aAAa,WAAb,YAAAA,aAAa,CAAEsG,OAAf,KAA0B,uBAD/B,CAlBJ,CADM,GAwBNP,IAzBR,eA2BI;IAAK,KAAK,EAAE;MAAEQ,OAAO,EAAE;IAAX;EAAZ,gBACI;IACI,GAAG,EAAE,aAAAC,GAAG,EAAI;MACR,IAAIA,GAAJ,EAAS7E,UAAU,CAAC6E,GAAD,CAAV;IACZ;EAHL,GAKKhF,SAAS,CACL2C,MADJ,CACW,UAAAC,IAAI;IAAA;;IAAA,OAAIA,IAAI,CAACpF,IAAL,IAAa,eAAAoF,IAAI,CAACpF,IAAL,0DAAWiD,OAAX,CAAmB,OAAnB,KAA8B,CAAC,CAAhD;EAAA,CADf,EAEIU,GAFJ,CAEQ,UAACyB,IAAD,EAAOqB,KAAP;IAAA,oBACD;MAAI,GAAG,EAAErB,IAAI,CAACC;IAAd,gBACI;MACI,GAAG,EAAED,IAAI,CAAClF,GAAL,IAAYC,WAAW,GAAGiF,IAAI,CAACL,EADxC;MAEI,GAAG,EAAEK,IAAI,CAACnF,IAAL,sBAAwBwG,KAAK,GAAG,CAAhC;IAFT,EADJ,CADC;EAAA,CAFR,CALL,CADJ,CA3BJ,eA8CI,gCAAC,uBAAD;IAAM,QAAQ,EAAE;MAAA,OAAM3D,QAAQ,CAAC/C,SAAD,CAAd;IAAA;EAAhB,GAA+C8C,KAA/C,EA9CJ,CADJ;AAkDH,CAtXiB,CAAlB;AAwXAlC,SAAS,CAAC8G,SAAV,GAAsB;EAClB1G,SAAS,EAAE2G,qBAAA,CAAUC,IADH;EAElB3G,aAAa,EAAE0G,qBAAA,CAAUE,MAFP;EAGlB3G,MAAM,EAAEyG,qBAAA,CAAUG,MAHA;EAIlB3G,IAAI,EAAEwG,qBAAA,CAAUG,MAJE;EAKlB1G,QAAQ,EAAEuG,qBAAA,CAAUC,IALF;EAMlBvG,cAAc,EAAEsG,qBAAA,CAAUC,IAAV,GAAiBD,qBAAA,CAAUE,MANzB;EAOlBvG,gBAAgB,EAAEqG,qBAAA,CAAUI,IAPV;EAQlBxG,QAAQ,EAAEoG,qBAAA,CAAUG,MARF;EASlBvH,MAAM,EAAEoH,qBAAA,CAAUG,MATA;EAUlB1H,WAAW,EAAEuH,qBAAA,CAAUG,MAVL;EAWlBtH,YAAY,EAAEmH,qBAAA,CAAUG,MAXN;EAYlBE,UAAU,EAAEL,qBAAA,CAAUG,MAZJ;EAalBtG,SAAS,EAAEmG,qBAAA,CAAUM,IAbH;EAclBxG,OAAO,EAAEkG,qBAAA,CAAUM,IAdD;EAelBvG,QAAQ,EAAEiG,qBAAA,CAAUM,IAfF;EAgBlB/B,SAAS,EAAEyB,qBAAA,CAAUM,IAhBH;EAiBlBjG,cAAc,EAAE2F,qBAAA,CAAUM,IAjBR;EAkBlBtG,WAAW,EAAEgG,qBAAA,CAAUO,MAlBL;EAmBlBtG,YAAY,EAAE+F,qBAAA,CAAUM,IAnBN;EAoBlBpG,MAAM,EAAE8F,qBAAA,CAAUO,MApBA;EAqBlB7F,QAAQ,EAAEsF,qBAAA,CAAUQ,KArBF;EAsBlBrG,IAAI,EAAE6F,qBAAA,CAAUO,MAtBE;EAuBlBhG,YAAY,EAAEyF,qBAAA,CAAUC,IAvBN;EAwBlB7F,IAAI,EAAE4F,qBAAA,CAAUC;AAxBE,CAAtB;eA0BehH,S;;;AAEf,SAASgG,kBAAT,CAA4B3G,IAA5B,EAAiC;EAC7B,IAAG,CAAC,YAAD,EAAe6F,QAAf,CAAwB7F,IAAxB,CAAH,EAAiC;IAC7B,OAAO,KAAP;EACH;;EACD,OAAO,IAAP;AACH"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vtx/components",
3
- "version": "3.1.134",
3
+ "version": "3.1.136",
4
4
  "description": "React components for Vortex",
5
5
  "keywords": [
6
6
  "react",