diff --git a/public/react/src/modules/courses/boards/BoardsNew.js b/public/react/src/modules/courses/boards/BoardsNew.js index 0b27ea8b8..166bc6f57 100644 --- a/public/react/src/modules/courses/boards/BoardsNew.js +++ b/public/react/src/modules/courses/boards/BoardsNew.js @@ -186,23 +186,26 @@ class BoardsNew extends Component{ }); } onAttachmentRemove = (file) => { - confirm({ - // title: '确定要删除这个附件吗?', - title: '是否确认删除?', - - okText: '确定', - cancelText: '取消', - // content: 'Some descriptions', - onOk: () => { - this.deleteAttachment(file) - }, - onCancel() { - console.log('Cancel'); - }, - }); + if(file.response!=undefined){ + confirm({ + // title: '确定要删除这个附件吗?', + title: '是否确认删除?', + + okText: '确定', + cancelText: '取消', + // content: 'Some descriptions', + onOk: () => { + this.deleteAttachment(file) + }, + onCancel() { + console.log('Cancel'); + }, + }); + + + return false; + } - - return false; } deleteAttachment = (file) => { // 初次上传不能直接取uid diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTasksappraiseMainEditor.js b/public/react/src/modules/courses/graduation/tasks/GraduationTasksappraiseMainEditor.js index 24fdd75cf..c5ef52e76 100644 --- a/public/react/src/modules/courses/graduation/tasks/GraduationTasksappraiseMainEditor.js +++ b/public/react/src/modules/courses/graduation/tasks/GraduationTasksappraiseMainEditor.js @@ -88,21 +88,24 @@ class GraduationTasksappraiseMainEditor extends Component{ this.setState({ fileList }); } onAttachmentRemove = (file, stateName) => { - this.props.confirm({ - content: '确定要删除这个附件吗?', - okText: '确定', - cancelText: '取消', - // content: 'Some descriptions', - onOk: () => { - this.deleteAttachment(file, stateName) - }, - onCancel() { - console.log('Cancel'); - }, - }); + if(file.response!=undefined){ + this.props.confirm({ + content: '确定要删除这个附件吗?', + okText: '确定', + cancelText: '取消', + // content: 'Some descriptions', + onOk: () => { + this.deleteAttachment(file, stateName) + }, + onCancel() { + console.log('Cancel'); + }, + }); + + + return false; + } - - return false; } deleteAttachment = (file, stateName) => { // 初次上传不能直接取uid diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTasksedit.js b/public/react/src/modules/courses/graduation/tasks/GraduationTasksedit.js index 869295c59..6e801251d 100644 --- a/public/react/src/modules/courses/graduation/tasks/GraduationTasksedit.js +++ b/public/react/src/modules/courses/graduation/tasks/GraduationTasksedit.js @@ -148,39 +148,42 @@ class GraduationTasksedit extends Component{ } onAttachmentRemove = (file) => { - // debugger - this.cancelAttachment(); - const url = `/attachments/${file.response ? file.response.id : file.uid}.json` - // const url = `/attachments/${file}.json` - axios.delete(url, { - }) - .then((response) => { - if (response.data) { - - if ( response.data.status === 0) { - - this.setState({ - Modalstype:false, - Modalstopval:response.data.message, - ModalSave:this.cancelAttachment, - Loadtype:true, - }) - - this.setState((state) => { - - const index = state.fileList.indexOf(file); - const newFileList = state.fileList.slice(); - newFileList.splice(index, 1); - return { - fileList: newFileList, - }; - }); - } - } - }) - .catch(function (error) { - console.log(error); - }); + if(file.response!=undefined){ + // debugger + this.cancelAttachment(); + const url = `/attachments/${file.response ? file.response.id : file.uid}.json` + // const url = `/attachments/${file}.json` + axios.delete(url, { + }) + .then((response) => { + if (response.data) { + + if ( response.data.status === 0) { + + this.setState({ + Modalstype:false, + Modalstopval:response.data.message, + ModalSave:this.cancelAttachment, + Loadtype:true, + }) + + this.setState((state) => { + + const index = state.fileList.indexOf(file); + const newFileList = state.fileList.slice(); + newFileList.splice(index, 1); + return { + fileList: newFileList, + }; + }); + } + } + }) + .catch(function (error) { + console.log(error); + }); + } + } Commoninterface=(fileList)=>{ diff --git a/public/react/src/modules/courses/graduation/topics/GraduateTopicNew.js b/public/react/src/modules/courses/graduation/topics/GraduateTopicNew.js index 329cd169b..44df3011e 100644 --- a/public/react/src/modules/courses/graduation/topics/GraduateTopicNew.js +++ b/public/react/src/modules/courses/graduation/topics/GraduateTopicNew.js @@ -215,19 +215,23 @@ class GraduateTopicNew extends Component{ this.setState({ fileList }); } onAttachmentRemove = (file) => { - confirm({ - title: '确定要删除这个附件吗?', - okText: '确定', - cancelText: '取消', - // content: 'Some descriptions', - onOk: () => { - this.deleteAttachment(file) - }, - onCancel() { - console.log('Cancel'); - }, - }); - return false; + + if(file.response!=undefined){ + confirm({ + title: '确定要删除这个附件吗?', + okText: '确定', + cancelText: '取消', + // content: 'Some descriptions', + onOk: () => { + this.deleteAttachment(file) + }, + onCancel() { + console.log('Cancel'); + }, + }); + return false; + } + } deleteAttachment = (file) => { console.log(file); diff --git a/public/react/src/modules/courses/graduation/topics/GraduateTopicPostWorksNew.js b/public/react/src/modules/courses/graduation/topics/GraduateTopicPostWorksNew.js index 50551adae..afa3b449f 100644 --- a/public/react/src/modules/courses/graduation/topics/GraduateTopicPostWorksNew.js +++ b/public/react/src/modules/courses/graduation/topics/GraduateTopicPostWorksNew.js @@ -163,21 +163,25 @@ class GraduateTopicPostWorksNew extends Component{ this.setState({ fileList }); } onAttachmentRemove = (file) => { - confirm({ - title: '确定要删除这个附件吗?', - okText: '确定', - cancelText: '取消', - // content: 'Some descriptions', - onOk: () => { - this.deleteAttachment(file) - }, - onCancel() { - console.log('Cancel'); - }, - }); + if(file.response!=undefined){ + confirm({ + title: '确定要删除这个附件吗?', + okText: '确定', + cancelText: '取消', + // content: 'Some descriptions', + onOk: () => { + this.deleteAttachment(file) + }, + onCancel() { + console.log('Cancel'); + }, + }); + + + return false; + } + - - return false; } deleteAttachment = (file) => { const url = `/attachments/${file.id}.json` diff --git a/public/react/src/modules/forums/MemoNew.js b/public/react/src/modules/forums/MemoNew.js index 00a39b184..476d41a8a 100644 --- a/public/react/src/modules/forums/MemoNew.js +++ b/public/react/src/modules/forums/MemoNew.js @@ -561,21 +561,24 @@ class MemoNew extends Component { } } onAttachmentRemove = (file) => { - this.props.confirm({ - // title: '确定要删除这个附件吗?', - content: '是否确认删除?', - - okText: '确定', - cancelText: '取消', - // content: 'Some descriptions', - onOk: () => { - this.deleteAttachment(file) - }, - onCancel() { - console.log('Cancel'); - }, - }); - return false; + if(file.response!=undefined){ + this.props.confirm({ + // title: '确定要删除这个附件吗?', + content: '是否确认删除?', + + okText: '确定', + cancelText: '取消', + // content: 'Some descriptions', + onOk: () => { + this.deleteAttachment(file) + }, + onCancel() { + console.log('Cancel'); + }, + }); + return false; + } + } deleteAttachment = (file) => { // 初次上传不能直接取uid diff --git a/public/react/src/modules/moop_cases/CaseNew.js b/public/react/src/modules/moop_cases/CaseNew.js index 7d0cd735c..156b0d772 100644 --- a/public/react/src/modules/moop_cases/CaseNew.js +++ b/public/react/src/modules/moop_cases/CaseNew.js @@ -1,452 +1,455 @@ -import React,{ Component } from "react"; -import './css/moopCases.css' -import '../courses/css/Courses.css' -import { Form , Input , Upload , Button , Icon , message , Tooltip } from "antd"; - -import { getImageUrl , setImagesUrl , MarkdownToHtml , ActionBtn , appendFileSizeToUploadFile , appendFileSizeToUploadFileAll , getUrl , getUploadActionUrl } from 'educoder'; - -import Tags from './CaseTags' - -import axios from 'axios'; -import TPMMDEditor from '../tpm/challengesnew/TPMMDEditor'; -import _ from 'lodash' -const { Dragger } = Upload; -function beforeUpload(file) { - const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png'; - if (!isJpgOrPng) { - message.error('You can only upload JPG/PNG file!'); - } - const isLt2M = file.size / 1024 / 1024 < 2; - if (!isLt2M) { - message.error('Image must smaller than 2MB!'); - } - return isJpgOrPng && isLt2M; -} -function getBase64(img, callback) { - const reader = new FileReader(); - reader.addEventListener('load', () => callback(reader.result)); - reader.readAsDataURL(img); -} - const $ = window.$; -class CaseNew extends Component{ - constructor(props){ - super(props); - this.DescMdRef = React.createRef(); - - this.state={ - casesTags:[], - contentFileList:[], - filesID:[], - imageUrl:undefined, - loading: false, - checkTag:false, - checkFile:false, - coverID:undefined - } - } - - // 上传附件-删除确认框 - onAttachmentRemove = (file, stateName) => { - this.props.confirm({ - content: '是否确认删除?', - onOk: () => { - this.deleteAttachment(file, stateName) - }, - onCancel() { - console.log('Cancel'); - }, - }); - return false; - } - - // 上传附件-确认删除 - deleteAttachment = (file, stateName) => { - // 初次上传不能直接取uid - const url = `/attachments/${file.response ? file.response.id : file.uid}.json` - axios.delete(url, { - }).then((response) => { - if (response.data) { - const { status } = response.data; - if (status == 0) { - console.log('--- success') - - this.setState((state) => { - const index = state[stateName].indexOf(file); - const newFileList = state[stateName].slice(); - newFileList.splice(index, 1); - console.log("newFileList"); - console.log(newFileList.map(item =>{ return( item.id )})); - return { - [stateName]: newFileList, - filesID:newFileList.map(item =>{ return( item.id )}) - }; - }); - } - } - }) - .catch(function (error) { - console.log(error); - }); - } - // 上传附件-change - handleContentUploadChange = (info) => { - if (info.file.status === 'done' || info.file.status === 'uploading') { - let contentFileList = info.fileList; - this.setState({ contentFileList: appendFileSizeToUploadFileAll(contentFileList)}); - let list = appendFileSizeToUploadFileAll(contentFileList); - let arr = list.map(item=>{ - return ( item.response && item.response.id ) - }) - this.setState({ - filesID:arr, - checkFile:arr.length > 0 ? false : true - }) - } - } - - // 上传封面图-change - handleChange = (info) => { - if (info.file.status === 'uploading') { - this.setState({ loading: true }); - return; - } - if (info.file.status === 'done') { - // Get this url from response in real world. - getBase64(info.file.originFileObj, imageUrl => - this.setState({ - imageUrl, - loading: false - }), - ); - console.log(info.file); - this.setState({ - coverID:info.file.response && info.file.response.id - }) - } - }; - - // 编辑时加载数据 - componentDidMount=()=>{ - if(this.props.match.params.caseID){ - this.InitEditData(); - } - } - - componentDidUpdate=(prevState)=>{ - if(this.props.CaseDetail && prevState.CaseDetail != this.props.CaseDetail){ - this.props.form.setFieldsValue({ - caseTitle:this.props.CaseDetail.title, - userName:this.props.CaseDetail.author_name, - userUnit:this.props.CaseDetail.author_school_name, - }) - this.setState({ - contentFileList:this.props.attachments.map(item => { - return { - id: item.id, - uid: item.id, - name: appendFileSizeToUploadFile(item), - url: item.url, - filesize: item.filesize, - status: 'done' - } - }), - filesID:this.props.attachments.map(item => { - return ( item.id ) - }), - coverID:this.props.cover && this.props.cover.id, - imageUrl:this.props.CaseDetail.cover && setImagesUrl(this.props.CaseDetail.cover.url), - casesTags:this.props.tags.map(item=>{ - return (item.id); - }) - }) - console.log(this.props.attachments.map(item => { - return ( item.id ) - })) - } - } - - InitEditData=()=>{ - let caseID = this.props.match.params.caseID; - this.props.getDetail(caseID); - } - - // 申请提交和保存 - handleSubmit = (type) => { - let caseID = this.props.match.params.caseID; - console.log(type); - this.props.form.validateFieldsAndScroll((err, values) => { - let { casesTags , filesID } = this.state; - if(casesTags.length == 0){ - $("html").animate({ scrollTop: $("#tagFormItem").offset().top - 100 }); - this.setState({ - checkTag:true - }) - return; - } - if(filesID.length == 0){ - $("html").animate({ scrollTop: $("#fileFormItem").offset().top - 100 }); - this.setState({ - checkFile:true - }) - return; - } - - const mdContnet = this.DescMdRef.current.getValue().trim(); - console.log(mdContnet) - values.description = mdContnet; - - console.log(values); - let url = caseID ? `/libraries/${caseID}.json`: `/libraries.json`; - if(caseID){ - axios.put((url),{ - title:values.caseTitle, - author_name:values.userName, - author_school_name:values.userUnit, - content:values.description, - attachment_ids:this.state.contentFileList.map(item=>{ - return (item.response ? item.response.id : item.id ) - }), - tag_ids:this.state.casesTags, - cover_id:this.state.coverID, - publish:type == 'save' ? false : true - }).then((result)=>{ - if(result){ - this.props.showNotification(type == 'save' ? `案例保存成功!`: `提交成功!`); - this.props.history.push(type == 'save' ? `/moop_cases/${result.data.id}` : `/moop_cases/${result.data.id}/publish_success`); - } - }).catch((error)=>{ - console.log(error); - }) - }else{ - axios.post((url),{ - title:values.caseTitle, - author_name:values.userName, - author_school_name:values.userUnit, - content:values.description, - attachment_ids:this.state.filesID, - tag_ids:this.state.casesTags, - cover_id:this.state.coverID, - publish:type == 'save' ? false : true - }).then((result)=>{ - if(result){ - this.props.showNotification(type == 'save' ? `案例保存成功!`: `提交成功!`); - this.props.history.push(type == 'save' ? `/moop_cases/${result.data.id}` : `/moop_cases/${result.data.id}/publish_success`); - } - }).catch((error)=>{ - console.log(error); - }) - } - - }) - } - - // 选择标签 - changeType=(type)=>{ - let tags = []; - if(this.state.casesTags.indexOf(type) > -1){ - tags = this.state.casesTags.filter(item => item != type); - }else{ - tags = this.state.casesTags.concat(type); - } - const tagUniqed = _.uniq(tags); - this.setState({ - casesTags: tagUniqed, - checkTag:tags.length > 0 ? false : true - }) - } - - render(){ - let { caseID } = this.props.match.params; - let { CaseDetail } = this.props; - let { casesTags , contentFileList , imageUrl , checkTag , checkFile } = this.state; - const {getFieldDecorator} = this.props.form; - - - // 上传附件点击事件 - const uploadProps = { - width: 600, - multiple: true, - fileList:contentFileList, - action: `${getUploadActionUrl()}`, - onChange: this.handleContentUploadChange, - onRemove: (file) => this.onAttachmentRemove(file, 'contentFileList'), - beforeUpload: (file) => { - const isLt150M = file.size / 1024 / 1024 < 150; - if (!isLt150M) { - //message.error('文件大小必须小于150MB!'); - this.props.define({ - title:'提示', - content:"该文件无法上传。超过文件大小限制(150MB),建议上传到百度云等其它共享工具里,然后再txt文档里给出链接以及共享密码并上传" - }) - return isLt150M; - } - } - }; - // 上传封面图-html - const uploadButton = ( -
- 教学案例 > { caseID ? "编辑" : "新建" } -
-上传教学案例
-+ 教学案例 > { caseID ? "编辑" : "新建" } +
+上传教学案例
+