({ closeHTMLReverseodal, submitHTMLReverse })
| 7 | submitHTMLReverse: Function; |
| 8 | } |
| 9 | const HtmlReverse: React.FC<Props> = ({ closeHTMLReverseodal, submitHTMLReverse }) => { |
| 10 | const [visible, setVisible] = useState<Boolean>(true); |
| 11 | const handleCancel = () => { |
| 12 | closeHTMLReverseodal() |
| 13 | setVisible(false) |
| 14 | }; |
| 15 | const onChange = (e: any) => { |
| 16 | const reader = new FileReader();// 新建一个FileReader |
| 17 | reader.readAsText(e.target.files[0], "UTF-8");// 读取文件 |
| 18 | reader.onload = evt => { // 读取完文件之后会回来这里 |
| 19 | // const fileString = evt.target.result.replace(/\ +/g, "").replace(/[\r\n]/g, ""); // 读取文件内容 去掉回车换行 |
| 20 | const fileString = evt?.target?.result.replace(/[\r\n]/g, "")// 读取文件内容 去掉回车换行 |
| 21 | const allTemplateListReg = /(?<=allTemplateList:).*?}}\]\]/; |
| 22 | const basicConfigReg = /(?<=basicConfig:).*?(?=, {16}loading: true)/ |
| 23 | //const basicConfigReg = /(?<=basicConfig:).*?(?=loading: true)/; |
| 24 | const result = { |
| 25 | templateList: [], |
| 26 | basicConfig: [] |
| 27 | } |
| 28 | try { |
| 29 | //console.log(fileString.match(allTemplateListReg)[0]) |
| 30 | result.templateList = JSON.parse(fileString.match(allTemplateListReg)[0]) |
| 31 | result.basicConfig = JSON.parse(fileString.match(basicConfigReg)[0]) |
| 32 | submitHTMLReverse(result) |
| 33 | handleCancel() |
| 34 | setVisible(false) |
| 35 | } catch (err) { |
| 36 | message.error('文件解析失败!请确保文件未经过任何手动修改'); |
| 37 | } |
| 38 | } |
| 39 | } |
| 40 | |
| 41 | return ( |
| 42 | <Modal |
| 43 | title='HTML逆向转换为可编辑组件' |
| 44 | visible={visible} |
| 45 | closable={false} |
| 46 | getContainer={document.getElementById('workspace')} |
| 47 | centered |
| 48 | onCancel={handleCancel} |
| 49 | footer={[ |
| 50 | <Button type="primary" onClick={handleCancel}> |
| 51 | 关闭 |
| 52 | </Button> |
| 53 | ]} |
| 54 | > |
| 55 | <div className="share-modal"> |
| 56 | <p>请上传已下载的HTML文件,即可逆向恢复为可拖拽编辑的工程!</p> |
| 57 | <input type="file" className="input-file" onChange={e => onChange(e)} /> |
| 58 | </div> |
| 59 | </Modal > |
| 60 | ) |
| 61 | } |
| 62 | |
| 63 | export default HtmlReverse; |
nothing calls this directly
no test coverage detected