@vtx/components 3.1.18 → 3.1.20

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.
@@ -71,7 +71,7 @@ var Content = function Content(_ref) {
71
71
  }, /*#__PURE__*/_react["default"].createElement("a", {
72
72
  onClick: onClick,
73
73
  className: "vtx-import2-text"
74
- }, fileList.length === 0 ? '点击选择文件' : '重新选择文件'), _toConsumableArray(fileList).map(function (file) {
74
+ }, fileList.length === 0 ? '点击选择文件(支持excel格式)' : '重新选择文件'), _toConsumableArray(fileList).map(function (file) {
75
75
  return /*#__PURE__*/_react["default"].createElement("div", {
76
76
  key: file.name,
77
77
  className: "vtx-import2-file-item"
@@ -102,7 +102,7 @@ Content.propTypes = {
102
102
  accept: _propTypes["default"].string,
103
103
  fileKey: _propTypes["default"].string,
104
104
  templateURL: _propTypes["default"].string,
105
- fileList: _propTypes["default"].array,
105
+ fileList: _propTypes["default"].any,
106
106
  setFileList: _propTypes["default"].func
107
107
  };
108
108
  var _default = Content;
@@ -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","array","func"],"sources":["vtx-import2/Content.jsx"],"sourcesContent":["import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useRef } from 'react';\r\nimport CloseCircleFilled from '@ant-design/icons/CloseCircleFilled';\r\nimport UploadSvg from './UploadSvg';\r\nimport DownloadSvg from './DownloadSvg';\r\nconst Content = ({ accept, fileKey, setFileList, fileList, templateURL }) => {\r\n const fileInputRef = useRef();\r\n const onClick = () => {\r\n fileInputRef.current && fileInputRef.current.click();\r\n };\r\n\r\n const onFileChange = () => {\r\n setFileList(fileInputRef.current.files);\r\n };\r\n\r\n const onDeleteFileList = () => {\r\n setFileList([]);\r\n };\r\n\r\n return (\r\n <div>\r\n <div className=\"vtx-import2-content-box\">\r\n <span className=\"vtx-import2-content-mark\">1</span>\r\n <DownloadSvg />\r\n <a className=\"vtx-import2-download\" href={templateURL}>\r\n 没有模板?点击此处下载\r\n </a>\r\n </div>\r\n <div className=\"vtx-import2-content-box\">\r\n <span className=\"vtx-import2-content-mark\">2</span>\r\n <UploadSvg />\r\n <div className=\"vtx-import2-file-list\">\r\n <a onClick={onClick} className=\"vtx-import2-text\">\r\n {fileList.length === 0 ? '点击选择文件' : '重新选择文件'}\r\n </a>\r\n {[...fileList].map(file => (\r\n <div key={file.name} className=\"vtx-import2-file-item\">\r\n <span className=\"vtx-import2-file-name\">{file.name}</span>\r\n <CloseCircleFilled\r\n fill=\"#c0c0c0\"\r\n onClick={onDeleteFileList}\r\n style={{ color: '#c0c0c0', cursor: 'pointer' }}\r\n />\r\n </div>\r\n ))}\r\n </div>\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 </div>\r\n </div>\r\n );\r\n};\r\n\r\nContent.propTypes = {\r\n accept: PropTypes.string,\r\n fileKey: PropTypes.string,\r\n templateURL: PropTypes.string,\r\n fileList: PropTypes.array,\r\n setFileList: PropTypes.func,\r\n};\r\n\r\nexport default Content;\r\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;AACA,IAAMA,OAAO,GAAG,SAAVA,OAAU,OAA6D;EAAA,IAA1DC,MAA0D,QAA1DA,MAA0D;EAAA,IAAlDC,OAAkD,QAAlDA,OAAkD;EAAA,IAAzCC,WAAyC,QAAzCA,WAAyC;EAAA,IAA5BC,QAA4B,QAA5BA,QAA4B;EAAA,IAAlBC,WAAkB,QAAlBA,WAAkB;EACzE,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;IACvBR,WAAW,CAACG,YAAY,CAACG,OAAb,CAAqBG,KAAtB,CAAX;EACH,CAFD;;EAIA,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,GAAM;IAC3BV,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,EAAEG,OAAZ;IAAqB,SAAS,EAAC;EAA/B,GACKJ,QAAQ,CAACU,MAAT,KAAoB,CAApB,GAAwB,QAAxB,GAAmC,QADxC,CADJ,EAIK,mBAAIV,QAAJ,EAAcW,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,EAAEjB,OAFV;IAGI,MAAM,EAAED,MAHZ;IAII,GAAG,EAAEK,YAJT;IAKI,KAAK,EAAE;MAAEc,OAAO,EAAE;IAAX,CALX;IAMI,QAAQ,EAAET,YANd;IAOI,KAAK,EAAEP,QAAQ,CAACU,MAAT,KAAoB,CAApB,GAAwB,EAAxB,GAA6BV,QAAQ,CAAC,CAAD,CAAR,CAAYiB;EAPpD,EAlBJ,CARJ,CADJ;AAuCH,CArDD;;AAuDArB,OAAO,CAACsB,SAAR,GAAoB;EAChBrB,MAAM,EAAEsB,qBAAA,CAAUC,MADF;EAEhBtB,OAAO,EAAEqB,qBAAA,CAAUC,MAFH;EAGhBnB,WAAW,EAAEkB,qBAAA,CAAUC,MAHP;EAIhBpB,QAAQ,EAAEmB,qBAAA,CAAUE,KAJJ;EAKhBtB,WAAW,EAAEoB,qBAAA,CAAUG;AALP,CAApB;eAQe1B,O"}
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';\r\nimport PropTypes from 'prop-types';\r\nimport { useRef } from 'react';\r\nimport CloseCircleFilled from '@ant-design/icons/CloseCircleFilled';\r\nimport UploadSvg from './UploadSvg';\r\nimport DownloadSvg from './DownloadSvg';\r\nconst Content = ({ accept, fileKey, setFileList, fileList, templateURL }) => {\r\n const fileInputRef = useRef();\r\n const onClick = () => {\r\n fileInputRef.current && fileInputRef.current.click();\r\n };\r\n\r\n const onFileChange = () => {\r\n setFileList(fileInputRef.current.files);\r\n };\r\n\r\n const onDeleteFileList = () => {\r\n setFileList([]);\r\n };\r\n\r\n return (\r\n <div>\r\n <div className=\"vtx-import2-content-box\">\r\n <span className=\"vtx-import2-content-mark\">1</span>\r\n <DownloadSvg />\r\n <a className=\"vtx-import2-download\" href={templateURL}>\r\n 没有模板?点击此处下载\r\n </a>\r\n </div>\r\n <div className=\"vtx-import2-content-box\">\r\n <span className=\"vtx-import2-content-mark\">2</span>\r\n <UploadSvg />\r\n <div className=\"vtx-import2-file-list\">\r\n <a onClick={onClick} className=\"vtx-import2-text\">\r\n {fileList.length === 0 ? '点击选择文件(支持excel格式)' : '重新选择文件'}\r\n </a>\r\n {[...fileList].map(file => (\r\n <div key={file.name} className=\"vtx-import2-file-item\">\r\n <span className=\"vtx-import2-file-name\">{file.name}</span>\r\n <CloseCircleFilled\r\n fill=\"#c0c0c0\"\r\n onClick={onDeleteFileList}\r\n style={{ color: '#c0c0c0', cursor: 'pointer' }}\r\n />\r\n </div>\r\n ))}\r\n </div>\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 </div>\r\n </div>\r\n );\r\n};\r\n\r\nContent.propTypes = {\r\n accept: PropTypes.string,\r\n fileKey: PropTypes.string,\r\n templateURL: PropTypes.string,\r\n fileList: PropTypes.any,\r\n setFileList: PropTypes.func,\r\n};\r\n\r\nexport default Content;\r\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;AACA,IAAMA,OAAO,GAAG,SAAVA,OAAU,OAA6D;EAAA,IAA1DC,MAA0D,QAA1DA,MAA0D;EAAA,IAAlDC,OAAkD,QAAlDA,OAAkD;EAAA,IAAzCC,WAAyC,QAAzCA,WAAyC;EAAA,IAA5BC,QAA4B,QAA5BA,QAA4B;EAAA,IAAlBC,WAAkB,QAAlBA,WAAkB;EACzE,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;IACvBR,WAAW,CAACG,YAAY,CAACG,OAAb,CAAqBG,KAAtB,CAAX;EACH,CAFD;;EAIA,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,GAAM;IAC3BV,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,EAAEG,OAAZ;IAAqB,SAAS,EAAC;EAA/B,GACKJ,QAAQ,CAACU,MAAT,KAAoB,CAApB,GAAwB,mBAAxB,GAA8C,QADnD,CADJ,EAIK,mBAAIV,QAAJ,EAAcW,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,EAAEjB,OAFV;IAGI,MAAM,EAAED,MAHZ;IAII,GAAG,EAAEK,YAJT;IAKI,KAAK,EAAE;MAAEc,OAAO,EAAE;IAAX,CALX;IAMI,QAAQ,EAAET,YANd;IAOI,KAAK,EAAEP,QAAQ,CAACU,MAAT,KAAoB,CAApB,GAAwB,EAAxB,GAA6BV,QAAQ,CAAC,CAAD,CAAR,CAAYiB;EAPpD,EAlBJ,CARJ,CADJ;AAuCH,CArDD;;AAuDArB,OAAO,CAACsB,SAAR,GAAoB;EAChBrB,MAAM,EAAEsB,qBAAA,CAAUC,MADF;EAEhBtB,OAAO,EAAEqB,qBAAA,CAAUC,MAFH;EAGhBnB,WAAW,EAAEkB,qBAAA,CAAUC,MAHP;EAIhBpB,QAAQ,EAAEmB,qBAAA,CAAUE,GAJJ;EAKhBtB,WAAW,EAAEoB,qBAAA,CAAUG;AALP,CAApB;eAQe1B,O"}
@@ -17,7 +17,8 @@ var ImportResult = function ImportResult(_ref) {
17
17
  var result = _ref.result,
18
18
  errorFile = _ref.errorFile,
19
19
  errorURL = _ref.errorURL,
20
- errorDownloadName = _ref.errorDownloadName;
20
+ errorDownloadName = _ref.errorDownloadName,
21
+ count = _ref.count;
21
22
  var url = errorURL && errorFile && "".concat(errorURL, "?fileName=").concat(errorFile, "&downloadName=").concat(errorDownloadName || '');
22
23
  return /*#__PURE__*/_react["default"].createElement("div", {
23
24
  className: "vtx-import2-result-warp"
@@ -28,7 +29,9 @@ var ImportResult = function ImportResult(_ref) {
28
29
  }
29
30
  }), /*#__PURE__*/_react["default"].createElement("span", {
30
31
  className: "vtx-import2-result"
31
- }, "\u5BFC\u5165\u6210\u529F")) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_icons.CloseCircleFilled, {
32
+ }, "\u5BFC\u5165\u6210\u529F"), count !== null && /*#__PURE__*/_react["default"].createElement("span", {
33
+ className: "vtx-import2-result-success-tips"
34
+ }, "\u672C\u6B21\u5171\u8BA1", count, "\u6761\u6570\u636E")) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_icons.CloseCircleFilled, {
32
35
  style: {
33
36
  color: '#ff4d4f',
34
37
  fontSize: '80px'
@@ -45,7 +48,8 @@ ImportResult.propTypes = {
45
48
  result: _propTypes["default"].bool,
46
49
  errorURL: _propTypes["default"].string,
47
50
  errorFile: _propTypes["default"].string,
48
- errorDownloadName: _propTypes["default"].string
51
+ errorDownloadName: _propTypes["default"].string,
52
+ count: _propTypes["default"].any
49
53
  };
50
54
  var _default = ImportResult;
51
55
  exports["default"] = _default;
@@ -1 +1 @@
1
- {"version":3,"file":"ImportResult.js","names":["ImportResult","result","errorFile","errorURL","errorDownloadName","url","color","fontSize","propTypes","PropTypes","bool","string"],"sources":["vtx-import2/ImportResult.jsx"],"sourcesContent":["import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { CheckCircleFilled, CloseCircleFilled } from '@ant-design/icons';\r\n\r\nconst ImportResult = ({ result, errorFile, errorURL, errorDownloadName }) => {\r\n const url =\r\n errorURL &&\r\n errorFile &&\r\n `${errorURL}?fileName=${errorFile}&downloadName=${errorDownloadName || ''}`;\r\n return (\r\n <div className=\"vtx-import2-result-warp\">\r\n {result ? (\r\n <>\r\n <CheckCircleFilled style={{ color: '#52C41A', fontSize: '80px' }} />\r\n <span className=\"vtx-import2-result\">导入成功</span>\r\n </>\r\n ) : (\r\n <>\r\n <CloseCircleFilled style={{ color: '#ff4d4f', fontSize: '80px' }} />\r\n <span className=\"vtx-import2-result\">导入失败</span>\r\n {url && (\r\n <a className=\"vtx-import2-result-error-tips\" href={url}>\r\n 下载文件,查看导入失败原因\r\n </a>\r\n )}\r\n </>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nImportResult.propTypes = {\r\n result: PropTypes.bool,\r\n errorURL: PropTypes.string,\r\n errorFile: PropTypes.string,\r\n errorDownloadName: PropTypes.string,\r\n};\r\n\r\nexport default ImportResult;\r\n"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;AAEA,IAAMA,YAAY,GAAG,SAAfA,YAAe,OAAwD;EAAA,IAArDC,MAAqD,QAArDA,MAAqD;EAAA,IAA7CC,SAA6C,QAA7CA,SAA6C;EAAA,IAAlCC,QAAkC,QAAlCA,QAAkC;EAAA,IAAxBC,iBAAwB,QAAxBA,iBAAwB;EACzE,IAAMC,GAAG,GACLF,QAAQ,IACRD,SADA,cAEGC,QAFH,uBAEwBD,SAFxB,2BAEkDE,iBAAiB,IAAI,EAFvE,CADJ;EAIA,oBACI;IAAK,SAAS,EAAC;EAAf,GACKH,MAAM,gBACH,+EACI,gCAAC,wBAAD;IAAmB,KAAK,EAAE;MAAEK,KAAK,EAAE,SAAT;MAAoBC,QAAQ,EAAE;IAA9B;EAA1B,EADJ,eAEI;IAAM,SAAS,EAAC;EAAhB,8BAFJ,CADG,gBAMH,+EACI,gCAAC,wBAAD;IAAmB,KAAK,EAAE;MAAED,KAAK,EAAE,SAAT;MAAoBC,QAAQ,EAAE;IAA9B;EAA1B,EADJ,eAEI;IAAM,SAAS,EAAC;EAAhB,8BAFJ,EAGKF,GAAG,iBACA;IAAG,SAAS,EAAC,+BAAb;IAA6C,IAAI,EAAEA;EAAnD,oFAJR,CAPR,CADJ;AAoBH,CAzBD;;AA2BAL,YAAY,CAACQ,SAAb,GAAyB;EACrBP,MAAM,EAAEQ,qBAAA,CAAUC,IADG;EAErBP,QAAQ,EAAEM,qBAAA,CAAUE,MAFC;EAGrBT,SAAS,EAAEO,qBAAA,CAAUE,MAHA;EAIrBP,iBAAiB,EAAEK,qBAAA,CAAUE;AAJR,CAAzB;eAOeX,Y"}
1
+ {"version":3,"file":"ImportResult.js","names":["ImportResult","result","errorFile","errorURL","errorDownloadName","count","url","color","fontSize","propTypes","PropTypes","bool","string","any"],"sources":["vtx-import2/ImportResult.jsx"],"sourcesContent":["import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { CheckCircleFilled, CloseCircleFilled } from '@ant-design/icons';\r\n\r\nconst ImportResult = ({ result, errorFile, errorURL, errorDownloadName, count }) => {\r\n const url =\r\n errorURL &&\r\n errorFile &&\r\n `${errorURL}?fileName=${errorFile}&downloadName=${errorDownloadName || ''}`;\r\n return (\r\n <div className=\"vtx-import2-result-warp\">\r\n {result ? (\r\n <>\r\n <CheckCircleFilled style={{ color: '#52C41A', fontSize: '80px' }} />\r\n <span className=\"vtx-import2-result\">导入成功</span>\r\n {count !== null && (\r\n <span className=\"vtx-import2-result-success-tips\">\r\n 本次共计{count}条数据\r\n </span>\r\n )}\r\n </>\r\n ) : (\r\n <>\r\n <CloseCircleFilled style={{ color: '#ff4d4f', fontSize: '80px' }} />\r\n <span className=\"vtx-import2-result\">导入失败</span>\r\n {url && (\r\n <a className=\"vtx-import2-result-error-tips\" href={url}>\r\n 下载文件,查看导入失败原因\r\n </a>\r\n )}\r\n </>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nImportResult.propTypes = {\r\n result: PropTypes.bool,\r\n errorURL: PropTypes.string,\r\n errorFile: PropTypes.string,\r\n errorDownloadName: PropTypes.string,\r\n count: PropTypes.any,\r\n};\r\n\r\nexport default ImportResult;\r\n"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;AAEA,IAAMA,YAAY,GAAG,SAAfA,YAAe,OAA+D;EAAA,IAA5DC,MAA4D,QAA5DA,MAA4D;EAAA,IAApDC,SAAoD,QAApDA,SAAoD;EAAA,IAAzCC,QAAyC,QAAzCA,QAAyC;EAAA,IAA/BC,iBAA+B,QAA/BA,iBAA+B;EAAA,IAAZC,KAAY,QAAZA,KAAY;EAChF,IAAMC,GAAG,GACLH,QAAQ,IACRD,SADA,cAEGC,QAFH,uBAEwBD,SAFxB,2BAEkDE,iBAAiB,IAAI,EAFvE,CADJ;EAIA,oBACI;IAAK,SAAS,EAAC;EAAf,GACKH,MAAM,gBACH,+EACI,gCAAC,wBAAD;IAAmB,KAAK,EAAE;MAAEM,KAAK,EAAE,SAAT;MAAoBC,QAAQ,EAAE;IAA9B;EAA1B,EADJ,eAEI;IAAM,SAAS,EAAC;EAAhB,8BAFJ,EAGKH,KAAK,KAAK,IAAV,iBACG;IAAM,SAAS,EAAC;EAAhB,+BACSA,KADT,uBAJR,CADG,gBAWH,+EACI,gCAAC,wBAAD;IAAmB,KAAK,EAAE;MAAEE,KAAK,EAAE,SAAT;MAAoBC,QAAQ,EAAE;IAA9B;EAA1B,EADJ,eAEI;IAAM,SAAS,EAAC;EAAhB,8BAFJ,EAGKF,GAAG,iBACA;IAAG,SAAS,EAAC,+BAAb;IAA6C,IAAI,EAAEA;EAAnD,oFAJR,CAZR,CADJ;AAyBH,CA9BD;;AAgCAN,YAAY,CAACS,SAAb,GAAyB;EACrBR,MAAM,EAAES,qBAAA,CAAUC,IADG;EAErBR,QAAQ,EAAEO,qBAAA,CAAUE,MAFC;EAGrBV,SAAS,EAAEQ,qBAAA,CAAUE,MAHA;EAIrBR,iBAAiB,EAAEM,qBAAA,CAAUE,MAJR;EAKrBP,KAAK,EAAEK,qBAAA,CAAUG;AALI,CAAzB;eAQeb,Y"}
@@ -27,6 +27,14 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
27
27
 
28
28
  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; }
29
29
 
30
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
31
+
32
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
33
+
34
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
35
+
36
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
37
+
30
38
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
31
39
 
32
40
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -39,8 +47,12 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
39
47
 
40
48
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
41
49
 
42
- var _getUrlParam = (0, _utils.getUrlParam)(),
43
- token = _getUrlParam.token;
50
+ function getFileName() {
51
+ var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
52
+ var index = name.lastIndexOf('.');
53
+ var suffix = name.substring(index);
54
+ return name.substring(0, index) + '(错误文件)' + suffix;
55
+ }
44
56
 
45
57
  var VtxImport2 = function VtxImport2(props) {
46
58
  var visible = props.visible,
@@ -58,7 +70,8 @@ var VtxImport2 = function VtxImport2(props) {
58
70
  var _useState = (0, _react.useState)(0),
59
71
  _useState2 = _slicedToArray(_useState, 2),
60
72
  status = _useState2[0],
61
- setStatus = _useState2[1];
73
+ setStatus = _useState2[1]; // 0:首页,1:结果页
74
+
62
75
 
63
76
  var _useState3 = (0, _react.useState)(false),
64
77
  _useState4 = _slicedToArray(_useState3, 2),
@@ -90,13 +103,39 @@ var VtxImport2 = function VtxImport2(props) {
90
103
  uploading = _useState14[0],
91
104
  setUploading = _useState14[1];
92
105
 
106
+ var _useState15 = (0, _react.useState)(0),
107
+ _useState16 = _slicedToArray(_useState15, 2),
108
+ count = _useState16[0],
109
+ setCount = _useState16[1];
110
+
111
+ var fileInputRef = (0, _react.useRef)();
112
+ var fileName = (0, _react.useRef)('');
113
+
114
+ var _getUrlParam = (0, _utils.getUrlParam)(),
115
+ token = _getUrlParam.token;
116
+
117
+ if (!token) {
118
+ token = props.token;
119
+ }
120
+
121
+ var newErrorDownloadName = errorDownloadName;
122
+
123
+ if (!errorDownloadName) {
124
+ newErrorDownloadName = fileName.current;
125
+ }
126
+
93
127
  (0, _ahooks.useInterval)(function () {
94
128
  if (countdown === 0) {
95
129
  return close();
96
130
  }
97
131
 
98
132
  setCountdown(countdown - 1);
99
- }, interval); // 获取上传地址(拼接参数)
133
+ }, interval);
134
+ (0, _react.useEffect)(function () {
135
+ if (fileList.length !== 0) {
136
+ fileName.current = getFileName(fileList[0].name);
137
+ }
138
+ }, [fileList]); // 获取上传地址(拼接参数)
100
139
 
101
140
  var getPostURL = function getPostURL() {
102
141
  var postUrl = uploadURL;
@@ -124,8 +163,10 @@ var VtxImport2 = function VtxImport2(props) {
124
163
  setResult(true);
125
164
  setCountdown(5);
126
165
  setInterval(1000);
166
+ setCount(parseData.data);
127
167
  } else if (parseData.result === 1) {
128
168
  setResult(false);
169
+ setFileList([]);
129
170
 
130
171
  if (parseData.data) {
131
172
  setErrorFile(parseData.data);
@@ -135,15 +176,18 @@ var VtxImport2 = function VtxImport2(props) {
135
176
  }
136
177
  };
137
178
 
138
- var onUpload = function onUpload() {
139
- if (fileList.length === 0) {
179
+ var onUpload = function onUpload(_ref) {
180
+ var _ref$files = _ref.files,
181
+ files = _ref$files === void 0 ? fileList : _ref$files;
182
+
183
+ if (files.length === 0) {
140
184
  return _antd.message.info('请选择需要上传的文件');
141
185
  }
142
186
 
143
187
  setUploading(true);
144
188
  var postUrl = getPostURL();
145
189
  var fmd = new FormData();
146
- fmd.append(fileKey, fileList[0]);
190
+ fmd.append(fileKey, files[0]);
147
191
  var request = new XMLHttpRequest();
148
192
  request.open('POST', postUrl);
149
193
  request.setRequestHeader('Authorization', token ? "Bear ".concat(token) : '');
@@ -159,9 +203,18 @@ var VtxImport2 = function VtxImport2(props) {
159
203
  };
160
204
 
161
205
  var againUpload = function againUpload() {
162
- setStatus(0);
163
206
  setInterval(undefined);
164
207
  setFileList([]);
208
+ fileInputRef.current && fileInputRef.current.click();
209
+ };
210
+
211
+ var onFileChange = function onFileChange() {
212
+ var fileList = _toConsumableArray(fileInputRef.current.files);
213
+
214
+ setFileList(fileList);
215
+ onUpload({
216
+ files: fileList
217
+ });
165
218
  };
166
219
 
167
220
  var modelProps = {
@@ -194,9 +247,20 @@ var VtxImport2 = function VtxImport2(props) {
194
247
  templateURL: templateURL
195
248
  }) : /*#__PURE__*/_react["default"].createElement(_ImportResult["default"], {
196
249
  result: result,
250
+ count: count,
197
251
  errorFile: errorFile,
198
252
  errorURL: errorURL,
199
- errorDownloadName: errorDownloadName
253
+ errorDownloadName: newErrorDownloadName
254
+ }), /*#__PURE__*/_react["default"].createElement("input", {
255
+ type: "file",
256
+ name: fileKey,
257
+ accept: accept,
258
+ ref: fileInputRef,
259
+ style: {
260
+ display: 'none'
261
+ },
262
+ onChange: onFileChange,
263
+ value: fileList.length === 0 ? '' : fileList[0].fileName
200
264
  }));
201
265
  };
202
266
 
@@ -216,7 +280,8 @@ VtxImport2.propTypes = {
216
280
  close: _propTypes["default"].func,
217
281
  errorURL: _propTypes["default"].string,
218
282
  errorDownloadName: _propTypes["default"].string,
219
- afterUpload: _propTypes["default"].func
283
+ afterUpload: _propTypes["default"].func,
284
+ token: _propTypes["default"].string
220
285
  };
221
286
  var _default = VtxImport2;
222
287
  exports["default"] = _default;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["getUrlParam","token","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","useInterval","getPostURL","postUrl","postArray","k","push","encodeURIComponent","length","join","dealResult","response","parseData","JSON","parse","data","message","error","msg","onUpload","info","fmd","FormData","append","request","XMLHttpRequest","open","setRequestHeader","onreadystatechange","e","target","readyState","send","againUpload","modelProps","width","maskClosable","footer","onCancel","defaultProps","propTypes","PropTypes","bool","string","object","func"],"sources":["vtx-import2/index.jsx"],"sourcesContent":["import React 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 { getUrlParam } from '@vtx/utils';\r\n\r\nconst { token } = getUrlParam();\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 } = props;\r\n const [status, setStatus] = useState(0);\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 useInterval(() => {\r\n if (countdown === 0) {\r\n return close();\r\n }\r\n setCountdown(countdown - 1);\r\n }, interval);\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 } else if (parseData.result === 1) {\r\n setResult(false);\r\n if (parseData.data) {\r\n setErrorFile(parseData.data);\r\n } else {\r\n message.error(parseData?.msg || '服务器异常');\r\n }\r\n }\r\n };\r\n\r\n const onUpload = () => {\r\n if (fileList.length === 0) {\r\n return message.info('请选择需要上传的文件');\r\n }\r\n setUploading(true);\r\n const postUrl = getPostURL();\r\n const fmd = new FormData();\r\n fmd.append(fileKey, fileList[0]);\r\n const request = new XMLHttpRequest();\r\n request.open('POST', postUrl);\r\n\r\n request.setRequestHeader('Authorization', token ? `Bear ${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 setStatus(0);\r\n setInterval(undefined);\r\n setFileList([]);\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 {`关闭${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 ? '上传' : result ? `导入(${countdown})` : '再次上传'}\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\">导入</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 />\r\n ) : (\r\n <ImportResult\r\n result={result}\r\n errorFile={errorFile}\r\n errorURL={errorURL}\r\n errorDownloadName={errorDownloadName}\r\n />\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};\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","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';\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 { getUrlParam } from '@vtx/utils';\r\nimport { useEffect } from 'react';\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 } = props;\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 } = getUrlParam();\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 || '服务器异常');\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('请选择需要上传的文件');\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\r\n request.setRequestHeader('Authorization', token ? `Bear ${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 {`关闭${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 ? '上传' : result ? `导入(${countdown})` : '再次上传'}\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\">导入</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 />\r\n ) : (\r\n <ImportResult\r\n result={result}\r\n count={count}\r\n errorFile={errorFile}\r\n errorURL={errorURL}\r\n errorDownloadName={newErrorDownloadName}\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};\r\n\r\nexport default VtxImport2;\r\n"],"mappings":"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"}
@@ -21,7 +21,7 @@ var _editor = require("@wangeditor/editor");
21
21
 
22
22
  var _wangEditorUtil = require("./wangEditorUtil");
23
23
 
24
- var _excluded = ["value", "onChange", "downloadUrl", "uploadUrl", "thumbnailUrl", "placeholder", "height"];
24
+ var _excluded = ["value", "onChange", "downloadUrl", "uploadUrl", "placeholder", "height"];
25
25
 
26
26
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
27
27
 
@@ -29,6 +29,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
29
29
 
30
30
  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; }
31
31
 
32
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
33
+
32
34
  function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return generator._invoke = function (innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; }(innerFn, self, context), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; this._invoke = function (method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); }; } function maybeInvokeDelegate(delegate, context) { var method = delegate.iterator[context.method]; if (undefined === method) { if (context.delegate = null, "throw" === context.method) { if (delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method)) return ContinueSentinel; context.method = "throw", context.arg = new TypeError("The iterator does not provide a 'throw' method"); } return ContinueSentinel; } var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) { if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; } return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, "constructor", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (object) { var keys = []; for (var key in object) { keys.push(key); } return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) { "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); } }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
33
35
 
34
36
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
@@ -57,15 +59,13 @@ _editor.Boot.registerModule(_pluginUploadAttachment["default"]); // 注册插件
57
59
 
58
60
  _editor.Boot.registerPlugin(_wangEditorUtil.withEmptyHtml);
59
61
 
60
- var VtxWangeEditor = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
62
+ var VtxWangeEditor = /*#__PURE__*/(0, _react.forwardRef)(function (props) {
61
63
  var value = props.value,
62
64
  _onChange = props.onChange,
63
65
  _props$downloadUrl = props.downloadUrl,
64
66
  downloadUrl = _props$downloadUrl === void 0 ? '/cloudFile/common/downloadFile?id=' : _props$downloadUrl,
65
67
  _props$uploadUrl = props.uploadUrl,
66
68
  uploadUrl = _props$uploadUrl === void 0 ? '/cloudFile/common/uploadFile' : _props$uploadUrl,
67
- _props$thumbnailUrl = props.thumbnailUrl,
68
- thumbnailUrl = _props$thumbnailUrl === void 0 ? '/vortex/rest/cloud/np/file/downloadFileThumbnail?outputQuality=0.5&scale=0.2&id=' : _props$thumbnailUrl,
69
69
  _props$placeholder = props.placeholder,
70
70
  placeholder = _props$placeholder === void 0 ? '' : _props$placeholder,
71
71
  _props$height = props.height,
@@ -91,7 +91,7 @@ var VtxWangeEditor = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
91
91
  // 插入图片
92
92
  uploadImage: {
93
93
  server: uploadUrl,
94
- onSuccess: function onSuccess(file, res) {},
94
+ // onSuccess(file, res) {},
95
95
  customInsert: function customInsert(res, insertFn) {
96
96
  // res 即服务端的返回结果
97
97
  // 从 res 中找到 url alt href ,然后插入图片
@@ -107,7 +107,7 @@ var VtxWangeEditor = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
107
107
  // 插入视频
108
108
  uploadVideo: {
109
109
  server: uploadUrl,
110
- onSuccess: function onSuccess(file, res) {},
110
+ // onSuccess(file, res) {},
111
111
  // 上传成功后,用户自定义插入文件
112
112
  customInsert: function customInsert(res, insertFn) {
113
113
  if (res.result == 0) {
@@ -122,7 +122,7 @@ var VtxWangeEditor = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
122
122
  // 插入附件
123
123
  uploadAttachment: {
124
124
  server: uploadUrl,
125
- onSuccess: function onSuccess(file, res) {},
125
+ // onSuccess(file, res) {},
126
126
  // 上传成功后,用户自定义插入文件
127
127
  customInsert: function customInsert(res, file, insertFn) {
128
128
  if (res.result == 0) {
@@ -157,17 +157,18 @@ var VtxWangeEditor = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
157
157
  rtf = event.clipboardData.getData('text/rtf'); // 该条件分支即表示要自定义word粘贴
158
158
 
159
159
  if (!(html && rtf)) {
160
- _context.next = 14;
160
+ _context.next = 15;
161
161
  break;
162
162
  }
163
163
 
164
164
  // 列表缩进会超出边框,直接过滤掉
165
165
  html = html.replace(/text\-indent:\-(.*?)pt/gi, ''); // 从html内容中查找粘贴内容中是否有图片元素,并返回img标签的属性src值的集合
166
166
 
167
- imgSrcs = (0, _wangEditorUtil.findAllImgSrcsFromHtml)(html); // 如果有图片
167
+ imgSrcs = (0, _wangEditorUtil.findAllImgSrcsFromHtml)(html);
168
+ html = (0, _wangEditorUtil.replaceAllSpanFontSize)(html); // 如果有图片
168
169
 
169
170
  if (!(imgSrcs && Array.isArray(imgSrcs) && imgSrcs.length)) {
170
- _context.next = 12;
171
+ _context.next = 13;
171
172
  break;
172
173
  }
173
174
 
@@ -176,21 +177,21 @@ var VtxWangeEditor = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
176
177
  rtfImageData = (0, _wangEditorUtil.extractImageDataFromRtf)(rtf);
177
178
 
178
179
  if (!rtfImageData.length) {
179
- _context.next = 12;
180
+ _context.next = 13;
180
181
  break;
181
182
  }
182
183
 
183
- _context.next = 11;
184
+ _context.next = 12;
184
185
  return (0, _wangEditorUtil.replaceImagesFileSourceWithInlineRepresentation)(html, imgSrcs, rtfImageData, true, uploadUrl, downloadUrl);
185
186
 
186
- case 11:
187
+ case 12:
187
188
  html = _context.sent;
188
189
 
189
- case 12:
190
+ case 13:
190
191
  editor.dangerouslyInsertHtml(html);
191
192
  return _context.abrupt("return", false);
192
193
 
193
- case 14:
194
+ case 15:
194
195
  case "end":
195
196
  return _context.stop();
196
197
  }
@@ -220,7 +221,7 @@ var VtxWangeEditor = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
220
221
  editor: editor,
221
222
  defaultConfig: toolbarConfig,
222
223
  mode: "default"
223
- }), /*#__PURE__*/_react["default"].createElement(_editorForReact.Editor, {
224
+ }), /*#__PURE__*/_react["default"].createElement(_editorForReact.Editor, _extends({
224
225
  defaultConfig: editorConfig,
225
226
  value: value,
226
227
  onCreated: function onCreated(editor) {
@@ -234,12 +235,15 @@ var VtxWangeEditor = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
234
235
  style: {
235
236
  height: height
236
237
  }
237
- }));
238
+ }, rest)));
238
239
  });
239
240
  VtxWangeEditor.propTypes = {
240
241
  value: _propTypes["default"].string,
241
242
  onChange: _propTypes["default"].func,
242
- placeholder: _propTypes["default"].string
243
+ placeholder: _propTypes["default"].string,
244
+ downloadUrl: _propTypes["default"].string,
245
+ uploadUrl: _propTypes["default"].string,
246
+ height: _propTypes["default"].number
243
247
  };
244
248
  var _default = VtxWangeEditor;
245
249
  exports["default"] = _default;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Boot","registerModule","attachmentModule","registerPlugin","withEmptyHtml","VtxWangeEditor","forwardRef","props","ref","value","onChange","downloadUrl","uploadUrl","thumbnailUrl","placeholder","height","rest","useState","editor","setEditor","useEffect","destroy","editorConfig","MENU_CONF","uploadImage","server","onSuccess","file","res","customInsert","insertFn","result","data","map","item","id","fileName","Error","uploadVideo","uploadAttachment","hoverbarKeys","attachment","menuKeys","customPaste","event","preventDefault","html","clipboardData","getData","rtf","replace","imgSrcs","findAllImgSrcsFromHtml","Array","isArray","length","rtfImageData","extractImageDataFromRtf","replaceImagesFileSourceWithInlineRepresentation","dangerouslyInsertHtml","toolbarConfig","insertKeys","index","keys","getHtml","propTypes","PropTypes","string","func"],"sources":["vtx-wang-editor/index.jsx"],"sourcesContent":["import '@wangeditor/editor/dist/css/style.css';\r\nimport React, { forwardRef, useState, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Editor, Toolbar } from '@wangeditor/editor-for-react';\r\nimport attachmentModule from '@wangeditor/plugin-upload-attachment';\r\nimport { Boot } from '@wangeditor/editor';\r\nimport {\r\n withEmptyHtml,\r\n findAllImgSrcsFromHtml,\r\n extractImageDataFromRtf,\r\n replaceImagesFileSourceWithInlineRepresentation,\r\n} from './wangEditorUtil';\r\n\r\n// 注册插件 处理附件\r\nBoot.registerModule(attachmentModule);\r\n// 注册插件 处理为空的时候\r\nBoot.registerPlugin(withEmptyHtml);\r\n\r\nconst VtxWangeEditor = forwardRef((props, ref) => {\r\n const {\r\n value,\r\n onChange,\r\n downloadUrl = '/cloudFile/common/downloadFile?id=',\r\n uploadUrl = '/cloudFile/common/uploadFile',\r\n thumbnailUrl = '/vortex/rest/cloud/np/file/downloadFileThumbnail?outputQuality=0.5&scale=0.2&id=',\r\n placeholder = '',\r\n height = 350,\r\n ...rest\r\n } = props;\r\n const [editor, setEditor] = useState(null);\r\n\r\n // 及时销毁 editor ,重要!\r\n useEffect(() => {\r\n return () => {\r\n if (editor == null) return;\r\n editor.destroy();\r\n setEditor(null);\r\n };\r\n }, [editor]);\r\n // 编辑器配置\r\n const editorConfig = {\r\n MENU_CONF: {\r\n // 插入图片\r\n uploadImage: {\r\n server: uploadUrl,\r\n onSuccess(file, res) {},\r\n customInsert(res, insertFn) {\r\n // res 即服务端的返回结果\r\n // 从 res 中找到 url alt href ,然后插入图片\r\n if (res.result == 0) {\r\n res.data.map(item => {\r\n insertFn(`${downloadUrl}${item.id}`, item.fileName);\r\n });\r\n } else {\r\n throw new Error(`插入图片失败`);\r\n }\r\n },\r\n },\r\n // 插入视频\r\n uploadVideo: {\r\n server: uploadUrl,\r\n onSuccess(file, res) {},\r\n // 上传成功后,用户自定义插入文件\r\n customInsert(res, insertFn) {\r\n if (res.result == 0) {\r\n res.data.map(item => {\r\n insertFn(`${downloadUrl}${item.id}`, item.fileName);\r\n });\r\n } else {\r\n throw new Error(`插入视频失败`);\r\n }\r\n },\r\n },\r\n // 插入附件\r\n uploadAttachment: {\r\n server: uploadUrl,\r\n onSuccess(file, res) {},\r\n // 上传成功后,用户自定义插入文件\r\n customInsert(res, file, insertFn) {\r\n if (res.result == 0) {\r\n res.data.map(item => {\r\n insertFn(item.fileName, `${downloadUrl}${item.id}`);\r\n });\r\n } else {\r\n throw new Error(`插入附件失败`);\r\n }\r\n },\r\n },\r\n },\r\n placeholder,\r\n // 在编辑器中,点击选中“附件”节点时,要弹出的菜单\r\n hoverbarKeys: {\r\n attachment: {\r\n menuKeys: ['downloadAttachment'], // “下载附件”菜单\r\n },\r\n },\r\n customPaste: async (editor, event) => {\r\n event.preventDefault();\r\n // 获取粘贴的html部分(??没错粘贴word时候,一部分内容就是html),该部分包含了图片img标签\r\n let html = event.clipboardData.getData('text/html');\r\n // 获取rtf数据(从word、wps复制粘贴时有),复制粘贴过程中图片的数据就保存在rtf中\r\n const rtf = event.clipboardData.getData('text/rtf');\r\n // 该条件分支即表示要自定义word粘贴\r\n if (html && rtf) {\r\n // 列表缩进会超出边框,直接过滤掉\r\n html = html.replace(/text\\-indent:\\-(.*?)pt/gi, '');\r\n // 从html内容中查找粘贴内容中是否有图片元素,并返回img标签的属性src值的集合\r\n const imgSrcs = findAllImgSrcsFromHtml(html);\r\n // 如果有图片\r\n if (imgSrcs && Array.isArray(imgSrcs) && imgSrcs.length) {\r\n // 从rtf内容中查找图片数据\r\n\r\n // 从rtf内容中查找图片数据\r\n const rtfImageData = extractImageDataFromRtf(rtf);\r\n\r\n if (rtfImageData.length) {\r\n html = await replaceImagesFileSourceWithInlineRepresentation(\r\n html,\r\n imgSrcs,\r\n rtfImageData,\r\n true,\r\n uploadUrl,\r\n downloadUrl,\r\n );\r\n }\r\n }\r\n\r\n editor.dangerouslyInsertHtml(html);\r\n return false;\r\n }\r\n },\r\n };\r\n // 工具栏配置\r\n const toolbarConfig = {\r\n insertKeys: {\r\n // 自定义插入的位置\r\n index: 24,\r\n // “上传附件”菜单\r\n keys: ['uploadAttachment'],\r\n },\r\n };\r\n return (\r\n <div className=\"vtx-wang-editor\" >\r\n <Toolbar editor={editor} defaultConfig={toolbarConfig} mode=\"default\" />\r\n <Editor\r\n defaultConfig={editorConfig}\r\n value={value}\r\n onCreated={(editor)=>{\r\n setEditor(editor)\r\n }}\r\n onChange={editor => {\r\n onChange(editor.getHtml())\r\n }}\r\n mode=\"default\"\r\n className={'vtx-wang-editor-content'}\r\n style={{height}}\r\n />\r\n </div>\r\n );\r\n});\r\n\r\nVtxWangeEditor.propTypes = {\r\n value: PropTypes.string,\r\n onChange: PropTypes.func,\r\n placeholder: PropTypes.string,\r\n};\r\n\r\nexport default VtxWangeEditor;\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["Boot","registerModule","attachmentModule","registerPlugin","withEmptyHtml","VtxWangeEditor","forwardRef","props","value","onChange","downloadUrl","uploadUrl","placeholder","height","rest","useState","editor","setEditor","useEffect","destroy","editorConfig","MENU_CONF","uploadImage","server","customInsert","res","insertFn","result","data","map","item","id","fileName","Error","uploadVideo","uploadAttachment","file","hoverbarKeys","attachment","menuKeys","customPaste","event","preventDefault","html","clipboardData","getData","rtf","replace","imgSrcs","findAllImgSrcsFromHtml","replaceAllSpanFontSize","Array","isArray","length","rtfImageData","extractImageDataFromRtf","replaceImagesFileSourceWithInlineRepresentation","dangerouslyInsertHtml","toolbarConfig","insertKeys","index","keys","getHtml","propTypes","PropTypes","string","func","number"],"sources":["vtx-wang-editor/index.jsx"],"sourcesContent":["/*eslint-disable*/\r\nimport '@wangeditor/editor/dist/css/style.css';\r\nimport React, { forwardRef, useState, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Editor, Toolbar } from '@wangeditor/editor-for-react';\r\nimport attachmentModule from '@wangeditor/plugin-upload-attachment';\r\nimport { Boot } from '@wangeditor/editor';\r\nimport {\r\n withEmptyHtml,\r\n findAllImgSrcsFromHtml,\r\n extractImageDataFromRtf,\r\n replaceImagesFileSourceWithInlineRepresentation,\r\n replaceAllSpanFontSize,\r\n} from './wangEditorUtil';\r\n\r\n// 注册插件 处理附件\r\nBoot.registerModule(attachmentModule);\r\n// 注册插件 处理为空的时候\r\nBoot.registerPlugin(withEmptyHtml);\r\n\r\nconst VtxWangeEditor = forwardRef(props => {\r\n const {\r\n value,\r\n onChange,\r\n downloadUrl = '/cloudFile/common/downloadFile?id=',\r\n uploadUrl = '/cloudFile/common/uploadFile',\r\n // thumbnailUrl = '/vortex/rest/cloud/np/file/downloadFileThumbnail?outputQuality=0.5&scale=0.2&id=',\r\n placeholder = '',\r\n height = 350,\r\n ...rest\r\n } = props;\r\n const [editor, setEditor] = useState(null);\r\n\r\n // 及时销毁 editor ,重要!\r\n useEffect(() => {\r\n return () => {\r\n if (editor == null) return;\r\n editor.destroy();\r\n setEditor(null);\r\n };\r\n }, [editor]);\r\n // 编辑器配置\r\n const editorConfig = {\r\n MENU_CONF: {\r\n // 插入图片\r\n uploadImage: {\r\n server: uploadUrl,\r\n // onSuccess(file, res) {},\r\n customInsert(res, insertFn) {\r\n // res 即服务端的返回结果\r\n // 从 res 中找到 url alt href ,然后插入图片\r\n if (res.result == 0) {\r\n res.data.map(item => {\r\n insertFn(`${downloadUrl}${item.id}`, item.fileName);\r\n });\r\n } else {\r\n throw new Error(`插入图片失败`);\r\n }\r\n },\r\n },\r\n // 插入视频\r\n uploadVideo: {\r\n server: uploadUrl,\r\n // onSuccess(file, res) {},\r\n // 上传成功后,用户自定义插入文件\r\n customInsert(res, insertFn) {\r\n if (res.result == 0) {\r\n res.data.map(item => {\r\n insertFn(`${downloadUrl}${item.id}`, item.fileName);\r\n });\r\n } else {\r\n throw new Error(`插入视频失败`);\r\n }\r\n },\r\n },\r\n // 插入附件\r\n uploadAttachment: {\r\n server: uploadUrl,\r\n // onSuccess(file, res) {},\r\n // 上传成功后,用户自定义插入文件\r\n customInsert(res, file, insertFn) {\r\n if (res.result == 0) {\r\n res.data.map(item => {\r\n insertFn(item.fileName, `${downloadUrl}${item.id}`);\r\n });\r\n } else {\r\n throw new Error(`插入附件失败`);\r\n }\r\n },\r\n },\r\n },\r\n placeholder,\r\n // 在编辑器中,点击选中“附件”节点时,要弹出的菜单\r\n hoverbarKeys: {\r\n attachment: {\r\n menuKeys: ['downloadAttachment'], // “下载附件”菜单\r\n },\r\n },\r\n customPaste: async (editor, event) => {\r\n event.preventDefault();\r\n // 获取粘贴的html部分(??没错粘贴word时候,一部分内容就是html),该部分包含了图片img标签\r\n let html = event.clipboardData.getData('text/html');\r\n // 获取rtf数据(从word、wps复制粘贴时有),复制粘贴过程中图片的数据就保存在rtf中\r\n const rtf = event.clipboardData.getData('text/rtf');\r\n\r\n // 该条件分支即表示要自定义word粘贴\r\n if (html && rtf) {\r\n // 列表缩进会超出边框,直接过滤掉\r\n html = html.replace(/text\\-indent:\\-(.*?)pt/gi, '');\r\n\r\n // 从html内容中查找粘贴内容中是否有图片元素,并返回img标签的属性src值的集合\r\n const imgSrcs = findAllImgSrcsFromHtml(html);\r\n\r\n html = replaceAllSpanFontSize(html);\r\n\r\n // 如果有图片\r\n if (imgSrcs && Array.isArray(imgSrcs) && imgSrcs.length) {\r\n // 从rtf内容中查找图片数据\r\n\r\n // 从rtf内容中查找图片数据\r\n const rtfImageData = extractImageDataFromRtf(rtf);\r\n\r\n if (rtfImageData.length) {\r\n html = await replaceImagesFileSourceWithInlineRepresentation(\r\n html,\r\n imgSrcs,\r\n rtfImageData,\r\n true,\r\n uploadUrl,\r\n downloadUrl,\r\n );\r\n }\r\n }\r\n editor.dangerouslyInsertHtml(html);\r\n return false;\r\n }\r\n },\r\n };\r\n // 工具栏配置\r\n const toolbarConfig = {\r\n insertKeys: {\r\n // 自定义插入的位置\r\n index: 24,\r\n // “上传附件”菜单\r\n keys: ['uploadAttachment'],\r\n },\r\n };\r\n return (\r\n <div className=\"vtx-wang-editor\">\r\n <Toolbar editor={editor} defaultConfig={toolbarConfig} mode=\"default\" />\r\n <Editor\r\n defaultConfig={editorConfig}\r\n value={value}\r\n onCreated={editor => {\r\n setEditor(editor);\r\n }}\r\n onChange={editor => {\r\n onChange(editor.getHtml());\r\n }}\r\n mode=\"default\"\r\n className={'vtx-wang-editor-content'}\r\n style={{ height }}\r\n {...rest}\r\n />\r\n </div>\r\n );\r\n});\r\n\r\nVtxWangeEditor.propTypes = {\r\n value: PropTypes.string,\r\n onChange: PropTypes.func,\r\n placeholder: PropTypes.string,\r\n downloadUrl: PropTypes.string,\r\n uploadUrl: PropTypes.string,\r\n height: PropTypes.number,\r\n};\r\n\r\nexport default VtxWangeEditor;\r\n"],"mappings":"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"}
@@ -8,13 +8,3 @@
8
8
  height: 350px;
9
9
  border-top: 1px solid #d9d9d9;
10
10
  }
11
- .vtx-wang-editor-html table tr:first-child td {
12
- border-right-width: 3px;
13
- }
14
- .vtx-wang-editor-html table td {
15
- border: 1px solid var(--w-e-textarea-border-color);
16
- line-height: 1.5;
17
- min-width: 30px;
18
- padding: 3px 5px;
19
- text-align: left;
20
- }
@@ -9,16 +9,4 @@
9
9
  height: 350px;
10
10
  border-top: @border-width-base @border-style-base @border-color-base;
11
11
  }
12
- &-html {
13
- table tr:first-child td {
14
- border-right-width: 3px;
15
- }
16
- table td {
17
- border: 1px solid var(--w-e-textarea-border-color);
18
- line-height: 1.5;
19
- min-width: 30px;
20
- padding: 3px 5px;
21
- text-align: left;
22
- }
23
- }
24
12
  }
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.extractImageDataFromRtf = extractImageDataFromRtf;
9
9
  exports.findAllImgSrcsFromHtml = findAllImgSrcsFromHtml;
10
+ exports.replaceAllSpanFontSize = replaceAllSpanFontSize;
10
11
  exports.replaceImagesFileSourceWithInlineRepresentation = replaceImagesFileSourceWithInlineRepresentation;
11
12
  exports.withEmptyHtml = withEmptyHtml;
12
13
 
@@ -22,6 +23,74 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
22
23
 
23
24
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
24
25
 
26
+ function replaceAllSpanFontSize(htmlData) {
27
+ var spanReg = /\<span([\s\S]+?)\<\/span\>/g;
28
+ var fontReg = /\<font([\s\S]+?)\<\/font\>/g;
29
+ var fontSizeReg = /font-size:([\s\S]+?)\;/g;
30
+ var spanArr = htmlData.match(spanReg); // 筛选出所有的span
31
+
32
+ if (!spanArr || Array.isArray(spanArr) && !spanArr.length) {
33
+ return false;
34
+ }
35
+
36
+ var fontSizeReplaceList = {};
37
+
38
+ for (var i = 0; i < spanArr.length; i++) {
39
+ var fontArr = spanArr[i].match(fontReg);
40
+
41
+ if ((fontArr === null || fontArr === void 0 ? void 0 : fontArr.length) > 0) {
42
+ var fontSize = spanArr[i].match(fontSizeReg);
43
+
44
+ if ((fontSize === null || fontSize === void 0 ? void 0 : fontSize.length) > 0) {
45
+ var ptValue = fontSize[0].split(':')[1].replace(';', '');
46
+
47
+ if (ptValue.indexOf('pt') > -1) {
48
+ var value = toFontSize(parseInt(Number(ptValue.replace('pt', '')) / 0.75));
49
+ fontSizeReplaceList[fontSize[0]] = "font-size:".concat(value, "px;");
50
+ }
51
+ }
52
+ }
53
+ }
54
+
55
+ for (var _i in fontSizeReplaceList) {
56
+ htmlData = htmlData.replaceAll(_i, fontSizeReplaceList[_i]);
57
+ }
58
+
59
+ return htmlData;
60
+ } // 判断字体在这个范围之内,不在这个范围之内 则不显示字体大小
61
+
62
+
63
+ function toFontSize(size) {
64
+ var result = size;
65
+ var sizeArr = [12, 13, 14, 15, 16, 19, 22, 24, 29, 32, 40, 48];
66
+
67
+ if (sizeArr.includes(size)) {
68
+ return result;
69
+ }
70
+
71
+ if (size < sizeArr[0]) {
72
+ return sizeArr[0];
73
+ }
74
+
75
+ if (size > sizeArr[sizeArr.length - 1]) {
76
+ return sizeArr[sizeArr.length - 1];
77
+ }
78
+
79
+ for (var i = 1; i < sizeArr.length; i++) {
80
+ if (size >= sizeArr[i - 1] && size <= sizeArr[i]) {
81
+ if (size - sizeArr[i - 1] < sizeArr[i] - size) {
82
+ result = sizeArr[i - 1];
83
+ } else {
84
+ result = sizeArr[i];
85
+ }
86
+
87
+ break;
88
+ }
89
+ }
90
+
91
+ return result;
92
+ }
93
+
25
94
  function findAllImgSrcsFromHtml(htmlData) {
26
95
  var imgReg = /<img.*?(?:>|\/>)/gi; //匹配图片中的img标签
27
96
 
@@ -214,9 +283,9 @@ function convertBase64UrlToBlob(dataurl) {
214
283
  var _arr = arr[1].substring(0, arr[1].length - 2);
215
284
 
216
285
  var mime = arr[0].match(/:(.*?);/)[1],
217
- bstr = atob(_arr),
218
- n = bstr.length,
219
- u8arr = new Uint8Array(n);
286
+ bstr = atob(_arr);
287
+ var n = bstr.length;
288
+ var u8arr = new Uint8Array(n);
220
289
 
221
290
  while (n--) {
222
291
  u8arr[n] = bstr.charCodeAt(n);
@@ -1 +1 @@
1
- {"version":3,"file":"wangEditorUtil.js","names":["findAllImgSrcsFromHtml","htmlData","imgReg","srcReg","widthReg","heightReg","arr","match","Array","isArray","length","srcArr","i","src","width","height","push","url","img","withEmptyHtml","editor","getHtml","newEditor","isEmpty","extractImageDataFromRtf","rtfData","regexPictureHeader","regexPicture","RegExp","source","images","result","image","imageType","includes","hex","replace","type","replaceImagesFileSourceWithInlineRepresentation","imageSrcs","imagesHexSources","isBase64Data","uploadUrl","downloadUrl","newSrc","_convertHexToBase64","formData","FormData","blob","convertBase64UrlToBlob","imgName","split","slice","file","File","append","window","fetch","method","body","then","response","json","res","data","id","hexString","btoa","map","char","String","fromCharCode","parseInt","join","dataurl","_arr","substring","mime","bstr","atob","n","u8arr","Uint8Array","charCodeAt","Blob"],"sources":["vtx-wang-editor/wangEditorUtil.js"],"sourcesContent":["export function findAllImgSrcsFromHtml(htmlData) {\r\n let imgReg = /<img.*?(?:>|\\/>)/gi; //匹配图片中的img标签\r\n let srcReg = /src=[\\'\\\"]?([^\\'\\\"]*)[\\'\\\"]?/i; // 匹配图片中的src\r\n let widthReg = /width=[\\'\\\"]?([^\\'\\\"]*)[\\'\\\"]?/i; // 匹配图片中的width\r\n let heightReg = /height=[\\'\\\"]?([^\\'\\\"]*)[\\'\\\"]?/i; // 匹配图片中的height\r\n\r\n let arr = htmlData.match(imgReg); //筛选出所有的img\r\n if (!arr || (Array.isArray(arr) && !arr.length)) {\r\n return false;\r\n }\r\n\r\n let srcArr = [];\r\n for (let i = 0; i < arr.length; i++) {\r\n let src = arr[i].match(srcReg);\r\n let width = arr[i].match(widthReg);\r\n let height = arr[i].match(heightReg);\r\n // 获取图片地址\r\n srcArr.push({\r\n width: width[1],\r\n height: height[1],\r\n url: src[1],\r\n img: arr[i],\r\n });\r\n }\r\n\r\n return srcArr;\r\n}\r\n// 处理为空的时候\r\nexport function withEmptyHtml(editor) {\r\n const { getHtml } = editor;\r\n const newEditor = editor;\r\n newEditor.getHtml = () => {\r\n if (newEditor.isEmpty()) {\r\n return '';\r\n }\r\n return getHtml();\r\n };\r\n\r\n return newEditor;\r\n}\r\n\r\nexport function extractImageDataFromRtf(rtfData) {\r\n if (!rtfData) {\r\n return [];\r\n }\r\n\r\n const regexPictureHeader = /{\\\\pict[\\s\\S]+?({\\\\\\*\\\\blipuid\\s?[\\da-fA-F]+)[\\s}]*/;\r\n const regexPicture = new RegExp(\r\n '(?:(' + regexPictureHeader.source + '))([\\\\da-fA-F\\\\s]+)\\\\}',\r\n 'g',\r\n );\r\n const images = rtfData.match(regexPicture);\r\n const result = [];\r\n\r\n if (images) {\r\n for (const image of images) {\r\n let imageType = false;\r\n\r\n if (image.includes('\\\\pngblip')) {\r\n imageType = 'image/png';\r\n } else if (image.includes('\\\\jpegblip')) {\r\n imageType = 'image/jpeg';\r\n }\r\n\r\n if (imageType) {\r\n result.push({\r\n hex: image.replace(regexPictureHeader, '').replace(/[^\\da-fA-F]/g, ''),\r\n type: imageType,\r\n });\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n}\r\n\r\nexport async function replaceImagesFileSourceWithInlineRepresentation(\r\n htmlData,\r\n imageSrcs,\r\n imagesHexSources,\r\n isBase64Data = true,\r\n uploadUrl,\r\n downloadUrl,\r\n) {\r\n if (imageSrcs.length === imagesHexSources.length) {\r\n for (let i = 0; i < imageSrcs.length; i++) {\r\n const url = imageSrcs?.[i]?.url;\r\n const width = imageSrcs?.[i]?.width;\r\n const height = imageSrcs?.[i]?.height;\r\n const img = imageSrcs?.[i]?.img;\r\n const newSrc = isBase64Data\r\n ? `data:${imagesHexSources[i].type};base64,${_convertHexToBase64(\r\n imagesHexSources[i].hex,\r\n )}`\r\n : imagesHexSources[i];\r\n const formData = new FormData();\r\n let blob = convertBase64UrlToBlob(newSrc);\r\n let imgName = url.split('\\\\')?.slice(-1)?.[0] || 'image.jpg';\r\n let file = new File([blob], imgName);\r\n formData.append('file', file);\r\n const res = await window\r\n .fetch(uploadUrl, {\r\n method: 'POST',\r\n body: formData,\r\n })\r\n .then(function(response) {\r\n return response.json();\r\n });\r\n htmlData = htmlData.replace(\r\n img,\r\n `<img src=\"${downloadUrl}${res.data[0].id}\" style=\"width:${width}px;height:${height}px\"`,\r\n );\r\n }\r\n }\r\n return htmlData;\r\n}\r\n\r\nfunction _convertHexToBase64(hexString) {\r\n return btoa(\r\n hexString\r\n .match(/\\w{2}/g)\r\n .map(char => {\r\n return String.fromCharCode(parseInt(char, 16));\r\n })\r\n .join(''),\r\n );\r\n}\r\n\r\nfunction convertBase64UrlToBlob(dataurl) {\r\n var arr = dataurl.split(',');\r\n //注意base64的最后面中括号和引号是不转译的\r\n var _arr = arr[1].substring(0, arr[1].length - 2);\r\n var mime = arr[0].match(/:(.*?);/)[1],\r\n bstr = atob(_arr),\r\n n = bstr.length,\r\n u8arr = new Uint8Array(n);\r\n while (n--) {\r\n u8arr[n] = bstr.charCodeAt(n);\r\n }\r\n return new Blob([u8arr], {\r\n type: mime,\r\n });\r\n}\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"wangEditorUtil.js","names":["replaceAllSpanFontSize","htmlData","spanReg","fontReg","fontSizeReg","spanArr","match","Array","isArray","length","fontSizeReplaceList","i","fontArr","fontSize","ptValue","split","replace","indexOf","value","toFontSize","parseInt","Number","replaceAll","size","result","sizeArr","includes","findAllImgSrcsFromHtml","imgReg","srcReg","widthReg","heightReg","arr","srcArr","src","width","height","push","url","img","withEmptyHtml","editor","getHtml","newEditor","isEmpty","extractImageDataFromRtf","rtfData","regexPictureHeader","regexPicture","RegExp","source","images","image","imageType","hex","type","replaceImagesFileSourceWithInlineRepresentation","imageSrcs","imagesHexSources","isBase64Data","uploadUrl","downloadUrl","newSrc","_convertHexToBase64","formData","FormData","blob","convertBase64UrlToBlob","imgName","slice","file","File","append","window","fetch","method","body","then","response","json","res","data","id","hexString","btoa","map","char","String","fromCharCode","join","dataurl","_arr","substring","mime","bstr","atob","n","u8arr","Uint8Array","charCodeAt","Blob"],"sources":["vtx-wang-editor/wangEditorUtil.js"],"sourcesContent":["export function replaceAllSpanFontSize(htmlData) {\r\n const spanReg = /\\<span([\\s\\S]+?)\\<\\/span\\>/g;\r\n const fontReg = /\\<font([\\s\\S]+?)\\<\\/font\\>/g;\r\n const fontSizeReg = /font-size:([\\s\\S]+?)\\;/g;\r\n\r\n let spanArr = htmlData.match(spanReg); // 筛选出所有的span\r\n if (!spanArr || (Array.isArray(spanArr) && !spanArr.length)) {\r\n return false;\r\n }\r\n let fontSizeReplaceList = {};\r\n for (let i = 0; i < spanArr.length; i++) {\r\n const fontArr = spanArr[i].match(fontReg);\r\n if (fontArr?.length > 0) {\r\n const fontSize = spanArr[i].match(fontSizeReg);\r\n if (fontSize?.length > 0) {\r\n const ptValue = fontSize[0].split(':')[1].replace(';', '');\r\n\r\n if (ptValue.indexOf('pt') > -1) {\r\n const value = toFontSize(parseInt(Number(ptValue.replace('pt', '')) / 0.75));\r\n fontSizeReplaceList[fontSize[0]] = `font-size:${value}px;`;\r\n }\r\n }\r\n }\r\n }\r\n for (let i in fontSizeReplaceList) {\r\n htmlData = htmlData.replaceAll(i, fontSizeReplaceList[i]);\r\n }\r\n return htmlData;\r\n}\r\n// 判断字体在这个范围之内,不在这个范围之内 则不显示字体大小\r\nfunction toFontSize(size) {\r\n let result = size;\r\n const sizeArr = [12, 13, 14, 15, 16, 19, 22, 24, 29, 32, 40, 48];\r\n if (sizeArr.includes(size)) {\r\n return result;\r\n }\r\n if (size < sizeArr[0]) {\r\n return sizeArr[0];\r\n }\r\n if (size > sizeArr[sizeArr.length - 1]) {\r\n return sizeArr[sizeArr.length - 1];\r\n }\r\n\r\n for (let i = 1; i < sizeArr.length; i++) {\r\n if (size >= sizeArr[i - 1] && size <= sizeArr[i]) {\r\n if (size - sizeArr[i - 1] < sizeArr[i] - size) {\r\n result = sizeArr[i - 1];\r\n } else {\r\n result = sizeArr[i];\r\n }\r\n break;\r\n }\r\n }\r\n return result;\r\n}\r\n\r\nexport function findAllImgSrcsFromHtml(htmlData) {\r\n let imgReg = /<img.*?(?:>|\\/>)/gi; //匹配图片中的img标签\r\n let srcReg = /src=[\\'\\\"]?([^\\'\\\"]*)[\\'\\\"]?/i; // 匹配图片中的src\r\n let widthReg = /width=[\\'\\\"]?([^\\'\\\"]*)[\\'\\\"]?/i; // 匹配图片中的width\r\n let heightReg = /height=[\\'\\\"]?([^\\'\\\"]*)[\\'\\\"]?/i; // 匹配图片中的height\r\n\r\n let arr = htmlData.match(imgReg); //筛选出所有的img\r\n if (!arr || (Array.isArray(arr) && !arr.length)) {\r\n return false;\r\n }\r\n\r\n let srcArr = [];\r\n for (let i = 0; i < arr.length; i++) {\r\n let src = arr[i].match(srcReg);\r\n let width = arr[i].match(widthReg);\r\n let height = arr[i].match(heightReg);\r\n // 获取图片地址\r\n srcArr.push({\r\n width: width[1],\r\n height: height[1],\r\n url: src[1],\r\n img: arr[i],\r\n });\r\n }\r\n\r\n return srcArr;\r\n}\r\n// 处理为空的时候\r\nexport function withEmptyHtml(editor) {\r\n const { getHtml } = editor;\r\n const newEditor = editor;\r\n newEditor.getHtml = () => {\r\n if (newEditor.isEmpty()) {\r\n return '';\r\n }\r\n return getHtml();\r\n };\r\n\r\n return newEditor;\r\n}\r\n\r\nexport function extractImageDataFromRtf(rtfData) {\r\n if (!rtfData) {\r\n return [];\r\n }\r\n\r\n const regexPictureHeader = /{\\\\pict[\\s\\S]+?({\\\\\\*\\\\blipuid\\s?[\\da-fA-F]+)[\\s}]*/;\r\n const regexPicture = new RegExp(\r\n '(?:(' + regexPictureHeader.source + '))([\\\\da-fA-F\\\\s]+)\\\\}',\r\n 'g',\r\n );\r\n const images = rtfData.match(regexPicture);\r\n const result = [];\r\n\r\n if (images) {\r\n for (const image of images) {\r\n let imageType = false;\r\n\r\n if (image.includes('\\\\pngblip')) {\r\n imageType = 'image/png';\r\n } else if (image.includes('\\\\jpegblip')) {\r\n imageType = 'image/jpeg';\r\n }\r\n\r\n if (imageType) {\r\n result.push({\r\n hex: image.replace(regexPictureHeader, '').replace(/[^\\da-fA-F]/g, ''),\r\n type: imageType,\r\n });\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n}\r\n\r\nexport async function replaceImagesFileSourceWithInlineRepresentation(\r\n htmlData,\r\n imageSrcs,\r\n imagesHexSources,\r\n isBase64Data = true,\r\n uploadUrl,\r\n downloadUrl,\r\n) {\r\n if (imageSrcs.length === imagesHexSources.length) {\r\n for (let i = 0; i < imageSrcs.length; i++) {\r\n const url = imageSrcs?.[i]?.url;\r\n const width = imageSrcs?.[i]?.width;\r\n const height = imageSrcs?.[i]?.height;\r\n const img = imageSrcs?.[i]?.img;\r\n const newSrc = isBase64Data\r\n ? `data:${imagesHexSources[i].type};base64,${_convertHexToBase64(\r\n imagesHexSources[i].hex,\r\n )}`\r\n : imagesHexSources[i];\r\n const formData = new FormData();\r\n let blob = convertBase64UrlToBlob(newSrc);\r\n let imgName = url.split('\\\\')?.slice(-1)?.[0] || 'image.jpg';\r\n let file = new File([blob], imgName);\r\n formData.append('file', file);\r\n const res = await window\r\n .fetch(uploadUrl, {\r\n method: 'POST',\r\n body: formData,\r\n })\r\n .then(function (response) {\r\n return response.json();\r\n });\r\n htmlData = htmlData.replace(\r\n img,\r\n `<img src=\"${downloadUrl}${res.data[0].id}\" style=\"width:${width}px;height:${height}px\"`,\r\n );\r\n }\r\n }\r\n return htmlData;\r\n}\r\n\r\nfunction _convertHexToBase64(hexString) {\r\n return btoa(\r\n hexString\r\n .match(/\\w{2}/g)\r\n .map(char => {\r\n return String.fromCharCode(parseInt(char, 16));\r\n })\r\n .join(''),\r\n );\r\n}\r\n\r\nfunction convertBase64UrlToBlob(dataurl) {\r\n const arr = dataurl.split(',');\r\n //注意base64的最后面中括号和引号是不转译的\r\n const _arr = arr[1].substring(0, arr[1].length - 2);\r\n const mime = arr[0].match(/:(.*?);/)[1],\r\n bstr = atob(_arr);\r\n let n = bstr.length;\r\n const u8arr = new Uint8Array(n);\r\n while (n--) {\r\n u8arr[n] = bstr.charCodeAt(n);\r\n }\r\n return new Blob([u8arr], {\r\n type: mime,\r\n });\r\n}\r\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vtx/components",
3
- "version": "3.1.18",
3
+ "version": "3.1.20",
4
4
  "description": "React components for Vortex",
5
5
  "keywords": [
6
6
  "react",
@@ -53,7 +53,7 @@
53
53
  },
54
54
  "dependencies": {
55
55
  "@ant-design/icons": "4.7.0",
56
- "@vtx/map": "latest",
56
+ "@vtx/map": "1.1.20",
57
57
  "@vtx/utils": "latest",
58
58
  "@wangeditor/editor": "^5.1.21",
59
59
  "@wangeditor/editor-for-react": "^1.0.5",