@vtx/components 3.1.35 → 3.1.37
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.
|
@@ -40,7 +40,8 @@ var Content = function Content(_ref) {
|
|
|
40
40
|
fileKey = _ref.fileKey,
|
|
41
41
|
setFileList = _ref.setFileList,
|
|
42
42
|
fileList = _ref.fileList,
|
|
43
|
-
templateURL = _ref.templateURL
|
|
43
|
+
templateURL = _ref.templateURL,
|
|
44
|
+
customText = _ref.customText;
|
|
44
45
|
var fileInputRef = (0, _react.useRef)();
|
|
45
46
|
|
|
46
47
|
var onClick = function onClick() {
|
|
@@ -71,7 +72,7 @@ var Content = function Content(_ref) {
|
|
|
71
72
|
}, /*#__PURE__*/_react["default"].createElement("a", {
|
|
72
73
|
onClick: onClick,
|
|
73
74
|
className: "vtx-import2-text"
|
|
74
|
-
}, fileList.length === 0 ? '点击选择文件(支持excel格式)' : '重新选择文件'), _toConsumableArray(fileList).map(function (file) {
|
|
75
|
+
}, fileList.length === 0 ? customText || '点击选择文件(支持excel格式)' : '重新选择文件'), _toConsumableArray(fileList).map(function (file) {
|
|
75
76
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
76
77
|
key: file.name,
|
|
77
78
|
className: "vtx-import2-file-item"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Content.js","names":["Content","accept","fileKey","setFileList","fileList","templateURL","fileInputRef","useRef","onClick","current","click","onFileChange","files","onDeleteFileList","length","map","file","name","color","cursor","display","fileName","propTypes","PropTypes","string","any","func"],"sources":["vtx-import2/Content.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useRef } from 'react';\nimport CloseCircleFilled from '@ant-design/icons/CloseCircleFilled';\nimport UploadSvg from './UploadSvg';\nimport DownloadSvg from './DownloadSvg';\nconst Content = ({ accept, fileKey, setFileList, fileList, templateURL }) => {\n const fileInputRef = useRef();\n const onClick = () => {\n fileInputRef.current && fileInputRef.current.click();\n };\n\n const onFileChange = () => {\n setFileList(fileInputRef.current.files);\n };\n\n const onDeleteFileList = () => {\n setFileList([]);\n };\n\n return (\n <div>\n <div className=\"vtx-import2-content-box\">\n <span className=\"vtx-import2-content-mark\">1</span>\n <DownloadSvg />\n <a className=\"vtx-import2-download\" href={templateURL}>\n 没有模板?点击此处下载\n </a>\n </div>\n <div className=\"vtx-import2-content-box\">\n <span className=\"vtx-import2-content-mark\">2</span>\n <UploadSvg />\n <div className=\"vtx-import2-file-list\">\n <a onClick={onClick} className=\"vtx-import2-text\">\n {fileList.length === 0 ? '点击选择文件(支持excel格式)' : '重新选择文件'}\n </a>\n {[...fileList].map(file => (\n <div key={file.name} className=\"vtx-import2-file-item\">\n <span className=\"vtx-import2-file-name\">{file.name}</span>\n <CloseCircleFilled\n fill=\"#c0c0c0\"\n onClick={onDeleteFileList}\n style={{ color: '#c0c0c0', cursor: 'pointer' }}\n />\n </div>\n ))}\n </div>\n <input\n type=\"file\"\n name={fileKey}\n accept={accept}\n ref={fileInputRef}\n style={{ display: 'none' }}\n onChange={onFileChange}\n value={fileList.length === 0 ? '' : fileList[0].fileName}\n />\n </div>\n </div>\n );\n};\n\nContent.propTypes = {\n accept: PropTypes.string,\n fileKey: PropTypes.string,\n templateURL: PropTypes.string,\n fileList: PropTypes.any,\n setFileList: PropTypes.func,\n};\n\nexport default Content;\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;AACA,IAAMA,OAAO,GAAG,SAAVA,OAAU,
|
|
1
|
+
{"version":3,"file":"Content.js","names":["Content","accept","fileKey","setFileList","fileList","templateURL","customText","fileInputRef","useRef","onClick","current","click","onFileChange","files","onDeleteFileList","length","map","file","name","color","cursor","display","fileName","propTypes","PropTypes","string","any","func"],"sources":["vtx-import2/Content.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useRef } from 'react';\nimport CloseCircleFilled from '@ant-design/icons/CloseCircleFilled';\nimport UploadSvg from './UploadSvg';\nimport DownloadSvg from './DownloadSvg';\nconst Content = ({ accept, fileKey, setFileList, fileList, templateURL, customText }) => {\n const fileInputRef = useRef();\n const onClick = () => {\n fileInputRef.current && fileInputRef.current.click();\n };\n\n const onFileChange = () => {\n setFileList(fileInputRef.current.files);\n };\n\n const onDeleteFileList = () => {\n setFileList([]);\n };\n\n return (\n <div>\n <div className=\"vtx-import2-content-box\">\n <span className=\"vtx-import2-content-mark\">1</span>\n <DownloadSvg />\n <a className=\"vtx-import2-download\" href={templateURL}>\n 没有模板?点击此处下载\n </a>\n </div>\n <div className=\"vtx-import2-content-box\">\n <span className=\"vtx-import2-content-mark\">2</span>\n <UploadSvg />\n <div className=\"vtx-import2-file-list\">\n <a onClick={onClick} className=\"vtx-import2-text\">\n {fileList.length === 0 ? (customText||'点击选择文件(支持excel格式)') : '重新选择文件'}\n </a>\n {[...fileList].map(file => (\n <div key={file.name} className=\"vtx-import2-file-item\">\n <span className=\"vtx-import2-file-name\">{file.name}</span>\n <CloseCircleFilled\n fill=\"#c0c0c0\"\n onClick={onDeleteFileList}\n style={{ color: '#c0c0c0', cursor: 'pointer' }}\n />\n </div>\n ))}\n </div>\n <input\n type=\"file\"\n name={fileKey}\n accept={accept}\n ref={fileInputRef}\n style={{ display: 'none' }}\n onChange={onFileChange}\n value={fileList.length === 0 ? '' : fileList[0].fileName}\n />\n </div>\n </div>\n );\n};\n\nContent.propTypes = {\n accept: PropTypes.string,\n fileKey: PropTypes.string,\n templateURL: PropTypes.string,\n fileList: PropTypes.any,\n setFileList: PropTypes.func,\n};\n\nexport default Content;\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;AACA,IAAMA,OAAO,GAAG,SAAVA,OAAU,OAAyE;EAAA,IAAtEC,MAAsE,QAAtEA,MAAsE;EAAA,IAA9DC,OAA8D,QAA9DA,OAA8D;EAAA,IAArDC,WAAqD,QAArDA,WAAqD;EAAA,IAAxCC,QAAwC,QAAxCA,QAAwC;EAAA,IAA9BC,WAA8B,QAA9BA,WAA8B;EAAA,IAAjBC,UAAiB,QAAjBA,UAAiB;EACrF,IAAMC,YAAY,GAAG,IAAAC,aAAA,GAArB;;EACA,IAAMC,OAAO,GAAG,SAAVA,OAAU,GAAM;IAClBF,YAAY,CAACG,OAAb,IAAwBH,YAAY,CAACG,OAAb,CAAqBC,KAArB,EAAxB;EACH,CAFD;;EAIA,IAAMC,YAAY,GAAG,SAAfA,YAAe,GAAM;IACvBT,WAAW,CAACI,YAAY,CAACG,OAAb,CAAqBG,KAAtB,CAAX;EACH,CAFD;;EAIA,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,GAAM;IAC3BX,WAAW,CAAC,EAAD,CAAX;EACH,CAFD;;EAIA,oBACI,0DACI;IAAK,SAAS,EAAC;EAAf,gBACI;IAAM,SAAS,EAAC;EAAhB,OADJ,eAEI,gCAAC,uBAAD,OAFJ,eAGI;IAAG,SAAS,EAAC,sBAAb;IAAoC,IAAI,EAAEE;EAA1C,wEAHJ,CADJ,eAQI;IAAK,SAAS,EAAC;EAAf,gBACI;IAAM,SAAS,EAAC;EAAhB,OADJ,eAEI,gCAAC,qBAAD,OAFJ,eAGI;IAAK,SAAS,EAAC;EAAf,gBACI;IAAG,OAAO,EAAEI,OAAZ;IAAqB,SAAS,EAAC;EAA/B,GACKL,QAAQ,CAACW,MAAT,KAAoB,CAApB,GAAyBT,UAAU,IAAE,mBAArC,GAA4D,QADjE,CADJ,EAIK,mBAAIF,QAAJ,EAAcY,GAAd,CAAkB,UAAAC,IAAI;IAAA,oBACnB;MAAK,GAAG,EAAEA,IAAI,CAACC,IAAf;MAAqB,SAAS,EAAC;IAA/B,gBACI;MAAM,SAAS,EAAC;IAAhB,GAAyCD,IAAI,CAACC,IAA9C,CADJ,eAEI,gCAAC,6BAAD;MACI,IAAI,EAAC,SADT;MAEI,OAAO,EAAEJ,gBAFb;MAGI,KAAK,EAAE;QAAEK,KAAK,EAAE,SAAT;QAAoBC,MAAM,EAAE;MAA5B;IAHX,EAFJ,CADmB;EAAA,CAAtB,CAJL,CAHJ,eAkBI;IACI,IAAI,EAAC,MADT;IAEI,IAAI,EAAElB,OAFV;IAGI,MAAM,EAAED,MAHZ;IAII,GAAG,EAAEM,YAJT;IAKI,KAAK,EAAE;MAAEc,OAAO,EAAE;IAAX,CALX;IAMI,QAAQ,EAAET,YANd;IAOI,KAAK,EAAER,QAAQ,CAACW,MAAT,KAAoB,CAApB,GAAwB,EAAxB,GAA6BX,QAAQ,CAAC,CAAD,CAAR,CAAYkB;EAPpD,EAlBJ,CARJ,CADJ;AAuCH,CArDD;;AAuDAtB,OAAO,CAACuB,SAAR,GAAoB;EAChBtB,MAAM,EAAEuB,qBAAA,CAAUC,MADF;EAEhBvB,OAAO,EAAEsB,qBAAA,CAAUC,MAFH;EAGhBpB,WAAW,EAAEmB,qBAAA,CAAUC,MAHP;EAIhBrB,QAAQ,EAAEoB,qBAAA,CAAUE,GAJJ;EAKhBvB,WAAW,EAAEqB,qBAAA,CAAUG;AALP,CAApB;eAQe3B,O"}
|
package/lib/vtx-import2/index.js
CHANGED
|
@@ -65,7 +65,8 @@ var VtxImport2 = function VtxImport2(props) {
|
|
|
65
65
|
errorURL = props.errorURL,
|
|
66
66
|
templateURL = props.templateURL,
|
|
67
67
|
afterUpload = props.afterUpload,
|
|
68
|
-
errorDownloadName = props.errorDownloadName
|
|
68
|
+
errorDownloadName = props.errorDownloadName,
|
|
69
|
+
customText = props.customText;
|
|
69
70
|
|
|
70
71
|
var _useState = (0, _react.useState)(0),
|
|
71
72
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -244,7 +245,8 @@ var VtxImport2 = function VtxImport2(props) {
|
|
|
244
245
|
setFileList: setFileList,
|
|
245
246
|
accept: accept,
|
|
246
247
|
fileKey: fileKey,
|
|
247
|
-
templateURL: templateURL
|
|
248
|
+
templateURL: templateURL,
|
|
249
|
+
customText: customText
|
|
248
250
|
}) : /*#__PURE__*/_react["default"].createElement(_ImportResult["default"], {
|
|
249
251
|
result: result,
|
|
250
252
|
count: count,
|
|
@@ -282,7 +284,8 @@ VtxImport2.propTypes = {
|
|
|
282
284
|
errorURL: _propTypes["default"].string,
|
|
283
285
|
errorDownloadName: _propTypes["default"].string,
|
|
284
286
|
afterUpload: _propTypes["default"].func,
|
|
285
|
-
token: _propTypes["default"].string
|
|
287
|
+
token: _propTypes["default"].string,
|
|
288
|
+
customText: _propTypes["default"].string
|
|
286
289
|
};
|
|
287
290
|
var _default = VtxImport2;
|
|
288
291
|
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","useState","status","setStatus","result","setResult","countdown","setCountdown","fileList","setFileList","undefined","interval","setInterval","errorFile","setErrorFile","uploading","setUploading","count","setCount","fileInputRef","useRef","fileName","getUrlParam","token","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","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';\nimport PropTypes from 'prop-types';\nimport { Button, message, Modal } from 'antd';\nimport Content from './Content';\nimport { useState } from 'react';\nimport ImportResult from './ImportResult';\nimport { useInterval } from 'ahooks';\nimport { getUrlParam } from '@vtx/utils';\nimport { useEffect } from 'react';\n\nfunction getFileName(name = '') {\n const index = name.lastIndexOf('.');\n const suffix = name.substring(index);\n return name.substring(0, index) + '(错误文件)' + suffix;\n}\n\nconst VtxImport2 = props => {\n const {\n visible,\n close,\n title,\n accept,\n fileKey,\n uploadURL,\n postData,\n errorURL,\n templateURL,\n afterUpload,\n errorDownloadName,\n } = props;\n const [status, setStatus] = useState(0); // 0:首页,1:结果页\n const [result, setResult] = useState(false);\n const [countdown, setCountdown] = useState(5);\n const [fileList, setFileList] = useState([]);\n const [interval, setInterval] = useState(undefined);\n const [errorFile, setErrorFile] = useState('');\n const [uploading, setUploading] = useState(false);\n const [count, setCount] = useState(0);\n const fileInputRef = useRef();\n const fileName = useRef('');\n let { token } = getUrlParam();\n if (!token) {\n token = props.token;\n }\n let newErrorDownloadName = errorDownloadName;\n if (!errorDownloadName) {\n newErrorDownloadName = fileName.current;\n }\n useInterval(() => {\n if (countdown === 0) {\n return close();\n }\n setCountdown(countdown - 1);\n }, interval);\n\n useEffect(() => {\n if (fileList.length !== 0) {\n fileName.current = getFileName(fileList[0].name);\n }\n }, [fileList]);\n\n // 获取上传地址(拼接参数)\n const getPostURL = () => {\n const postUrl = uploadURL;\n const postArray = [];\n for (const k in postData) {\n if (postData[k] !== undefined && postData[k] !== null && postData[k] !== '') {\n postArray.push(`${k}=${encodeURIComponent(postData[k])}`);\n }\n }\n return postArray.length > 0 ? `${postUrl}?${postArray.join('&')}` : postUrl;\n };\n\n const dealResult = response => {\n setUploading(false);\n const parseData = JSON.parse(response);\n setStatus(1);\n if (typeof props.afterUpload === 'function') {\n afterUpload(parseData);\n }\n if (parseData.result === 0) {\n setResult(true);\n setCountdown(5);\n setInterval(1000);\n setCount(parseData.data);\n } else if (parseData.result === 1) {\n setResult(false);\n setFileList([]);\n if (parseData.data) {\n setErrorFile(parseData.data);\n } else {\n message.error(parseData?.msg || '服务器异常');\n }\n }\n };\n\n const onUpload = ({ files = fileList }) => {\n if (files.length === 0) {\n return message.info('请选择需要上传的文件');\n }\n setUploading(true);\n const postUrl = getPostURL();\n const fmd = new FormData();\n fmd.append(fileKey, files[0]);\n const request = new XMLHttpRequest();\n request.open('POST', postUrl);\n\n request.setRequestHeader('Authorization', token ? `Bear ${token}` : '');\n request.setRequestHeader('access_token', token ? `${token}` : '');\n request.onreadystatechange = e => {\n if (e.target.readyState == 4) {\n dealResult(e.target.response);\n }\n };\n\n request.send(fmd);\n };\n\n const againUpload = () => {\n setInterval(undefined);\n setFileList([]);\n fileInputRef.current && fileInputRef.current.click();\n };\n\n const onFileChange = () => {\n const fileList = [...fileInputRef.current.files];\n setFileList(fileList);\n onUpload({ files: fileList });\n };\n\n const modelProps = {\n visible,\n width: 392,\n maskClosable: false,\n footer: [\n <Button key=\"closeWindow\" onClick={close}>\n {`关闭${status === 1 && result ? '(' + countdown + ')' : ''}`}\n </Button>,\n (status === 0 || (status === 1 && !result)) && (\n <Button\n key=\"uploadSubmit\"\n type=\"primary\"\n loading={uploading}\n onClick={status === 0 ? onUpload : againUpload}\n >\n {status === 0 ? '上传' : result ? `导入(${countdown})` : '再次上传'}\n </Button>\n ),\n ],\n onCancel: close,\n title: (\n <div className=\"vtx-import2-modal-header-title\">\n <span className=\"vtx-import2-modal-header-text\">{title}</span>\n <span className=\"vtx-import2-modal-header-subtitle\">导入</span>\n </div>\n ),\n };\n return (\n <Modal {...modelProps}>\n {status === 0 ? (\n <Content\n fileList={fileList}\n setFileList={setFileList}\n accept={accept}\n fileKey={fileKey}\n templateURL={templateURL}\n />\n ) : (\n <ImportResult\n result={result}\n count={count}\n errorFile={errorFile}\n errorURL={errorURL}\n token={token}\n errorDownloadName={newErrorDownloadName}\n />\n )}\n <input\n type=\"file\"\n name={fileKey}\n accept={accept}\n ref={fileInputRef}\n style={{ display: 'none' }}\n onChange={onFileChange}\n value={fileList.length === 0 ? '' : fileList[0].fileName}\n />\n </Modal>\n );\n};\n\nVtxImport2.defaultProps = {\n fileKey: 'file',\n accept:\n 'application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,text/csv',\n postData: {},\n};\n\nVtxImport2.propTypes = {\n visible: PropTypes.bool,\n templateURL: PropTypes.string,\n uploadURL: PropTypes.string,\n title: PropTypes.string,\n postData: PropTypes.object,\n fileKey: PropTypes.string,\n accept: PropTypes.string,\n close: PropTypes.func,\n errorURL: PropTypes.string,\n errorDownloadName: PropTypes.string,\n afterUpload: PropTypes.func,\n token: PropTypes.string,\n};\n\nexport default VtxImport2;\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","useState","status","setStatus","result","setResult","countdown","setCountdown","fileList","setFileList","undefined","interval","setInterval","errorFile","setErrorFile","uploading","setUploading","count","setCount","fileInputRef","useRef","fileName","getUrlParam","token","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","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';\nimport PropTypes from 'prop-types';\nimport { Button, message, Modal } from 'antd';\nimport Content from './Content';\nimport { useState } from 'react';\nimport ImportResult from './ImportResult';\nimport { useInterval } from 'ahooks';\nimport { getUrlParam } from '@vtx/utils';\nimport { useEffect } from 'react';\n\nfunction getFileName(name = '') {\n const index = name.lastIndexOf('.');\n const suffix = name.substring(index);\n return name.substring(0, index) + '(错误文件)' + suffix;\n}\n\nconst VtxImport2 = props => {\n const {\n visible,\n close,\n title,\n accept,\n fileKey,\n uploadURL,\n postData,\n errorURL,\n templateURL,\n afterUpload,\n errorDownloadName,\n customText,\n } = props;\n const [status, setStatus] = useState(0); // 0:首页,1:结果页\n const [result, setResult] = useState(false);\n const [countdown, setCountdown] = useState(5);\n const [fileList, setFileList] = useState([]);\n const [interval, setInterval] = useState(undefined);\n const [errorFile, setErrorFile] = useState('');\n const [uploading, setUploading] = useState(false);\n const [count, setCount] = useState(0);\n const fileInputRef = useRef();\n const fileName = useRef('');\n let { token } = getUrlParam();\n if (!token) {\n token = props.token;\n }\n let newErrorDownloadName = errorDownloadName;\n if (!errorDownloadName) {\n newErrorDownloadName = fileName.current;\n }\n useInterval(() => {\n if (countdown === 0) {\n return close();\n }\n setCountdown(countdown - 1);\n }, interval);\n\n useEffect(() => {\n if (fileList.length !== 0) {\n fileName.current = getFileName(fileList[0].name);\n }\n }, [fileList]);\n\n // 获取上传地址(拼接参数)\n const getPostURL = () => {\n const postUrl = uploadURL;\n const postArray = [];\n for (const k in postData) {\n if (postData[k] !== undefined && postData[k] !== null && postData[k] !== '') {\n postArray.push(`${k}=${encodeURIComponent(postData[k])}`);\n }\n }\n return postArray.length > 0 ? `${postUrl}?${postArray.join('&')}` : postUrl;\n };\n\n const dealResult = response => {\n setUploading(false);\n const parseData = JSON.parse(response);\n setStatus(1);\n if (typeof props.afterUpload === 'function') {\n afterUpload(parseData);\n }\n if (parseData.result === 0) {\n setResult(true);\n setCountdown(5);\n setInterval(1000);\n setCount(parseData.data);\n } else if (parseData.result === 1) {\n setResult(false);\n setFileList([]);\n if (parseData.data) {\n setErrorFile(parseData.data);\n } else {\n message.error(parseData?.msg || '服务器异常');\n }\n }\n };\n\n const onUpload = ({ files = fileList }) => {\n if (files.length === 0) {\n return message.info('请选择需要上传的文件');\n }\n setUploading(true);\n const postUrl = getPostURL();\n const fmd = new FormData();\n fmd.append(fileKey, files[0]);\n const request = new XMLHttpRequest();\n request.open('POST', postUrl);\n\n request.setRequestHeader('Authorization', token ? `Bear ${token}` : '');\n request.setRequestHeader('access_token', token ? `${token}` : '');\n request.onreadystatechange = e => {\n if (e.target.readyState == 4) {\n dealResult(e.target.response);\n }\n };\n\n request.send(fmd);\n };\n\n const againUpload = () => {\n setInterval(undefined);\n setFileList([]);\n fileInputRef.current && fileInputRef.current.click();\n };\n\n const onFileChange = () => {\n const fileList = [...fileInputRef.current.files];\n setFileList(fileList);\n onUpload({ files: fileList });\n };\n\n const modelProps = {\n visible,\n width: 392,\n maskClosable: false,\n footer: [\n <Button key=\"closeWindow\" onClick={close}>\n {`关闭${status === 1 && result ? '(' + countdown + ')' : ''}`}\n </Button>,\n (status === 0 || (status === 1 && !result)) && (\n <Button\n key=\"uploadSubmit\"\n type=\"primary\"\n loading={uploading}\n onClick={status === 0 ? onUpload : againUpload}\n >\n {status === 0 ? '上传' : result ? `导入(${countdown})` : '再次上传'}\n </Button>\n ),\n ],\n onCancel: close,\n title: (\n <div className=\"vtx-import2-modal-header-title\">\n <span className=\"vtx-import2-modal-header-text\">{title}</span>\n <span className=\"vtx-import2-modal-header-subtitle\">导入</span>\n </div>\n ),\n };\n return (\n <Modal {...modelProps}>\n {status === 0 ? (\n <Content\n fileList={fileList}\n setFileList={setFileList}\n accept={accept}\n fileKey={fileKey}\n templateURL={templateURL}\n customText={customText}\n />\n ) : (\n <ImportResult\n result={result}\n count={count}\n errorFile={errorFile}\n errorURL={errorURL}\n token={token}\n errorDownloadName={newErrorDownloadName}\n />\n )}\n <input\n type=\"file\"\n name={fileKey}\n accept={accept}\n ref={fileInputRef}\n style={{ display: 'none' }}\n onChange={onFileChange}\n value={fileList.length === 0 ? '' : fileList[0].fileName}\n />\n </Modal>\n );\n};\n\nVtxImport2.defaultProps = {\n fileKey: 'file',\n accept:\n 'application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,text/csv',\n postData: {},\n};\n\nVtxImport2.propTypes = {\n visible: PropTypes.bool,\n templateURL: PropTypes.string,\n uploadURL: PropTypes.string,\n title: PropTypes.string,\n postData: PropTypes.object,\n fileKey: PropTypes.string,\n accept: PropTypes.string,\n close: PropTypes.func,\n errorURL: PropTypes.string,\n errorDownloadName: PropTypes.string,\n afterUpload: PropTypes.func,\n token: PropTypes.string,\n customText: PropTypes.string,\n};\n\nexport default VtxImport2;\n"],"mappings":"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"}
|