import React, { Component } from "react"; import { Modal } from "antd"; import axios from 'axios' import ModalWrapper from "../../courses/common/ModalWrapper" import { Cropper } from 'educoder' const imageId = 'changeHeaderPic' const previewId = 'changeHeader_imagePreview' let uploadedImageType; let uploadedImageName; let uploadedImageURL; class ChangeHeaderPicModal extends Component{ constructor(props){ super(props); this.state={ } } init = () => { var inputImage = document.getElementById('inputImage'); const that = this; inputImage.onchange = function () { var files = this.files; var file; // cropper && if (files && files.length) { file = files[0]; if (/^image\/\w+/.test(file.type)) { uploadedImageType = file.type; uploadedImageName = file.name; if (uploadedImageURL) { URL.revokeObjectURL(uploadedImageURL); } const image = document.getElementById( imageId ); image.src = uploadedImageURL = URL.createObjectURL(file); that.refs['cropper'].renew(image) // cropper.destroy(); // cropper = new Cropper(image, options); inputImage.value = null; } else { this.props.showNotification && this.props.showNotification("请选择一个图片格式的文件") // window.alert('Please choose an image file.'); } } }; } componentDidMount() { } setVisible = (visible) => { this.refs['modalWrapper'].setVisible(visible) if (visible) { setTimeout(() => { this.init() }, 300) } } onSendOk = () => { } onOk = () => { var img_lg = document.getElementById(previewId); // 截图小的显示框内的内容 window.html2canvas(img_lg).then((canvas) => { var dataUrl = canvas.toDataURL("image/jpeg"); console.log(dataUrl) const url = `/users/accounts/${this.props.userLogin || 'kosasa'}/avatar.json` axios.put(url, { image: dataUrl }) .then((response) => { // {"status":0,"message":"success","avatar_url":"avatars/User/15739"} if (response.data.status == 0) { this.props.showNotification && this.props.showNotification("修改头像成功") this.setVisible(false) } }) .catch(function (error) { console.log(error); }); }); } render(){ const { course_lists } = this.state const { moduleName } = this.props return(
仅支持JPG、GIF、PNG,且文件小于2M
头像预览
) } } export default ChangeHeaderPicModal;