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 = ( -
- -
- ); - // 上传封面图点击事件 - const uploadCover = { - listType:"picture-card", - className:"avatar-uploader", - showUploadList:false, - action:`${getUploadActionUrl()}`, - onChange:this.handleChange, - } - console.log('111'); - console.log(!caseID || (CaseDetail && CaseDetail.status == "pending")); - return( -
- -

- 教学案例 > { caseID ? "编辑" : "新建" } -

-

上传教学案例

-
-
- - {getFieldDecorator('caseTitle', { - rules: [{required: true, message: "案例标题不能为空"}], - })( - - )} - 简明扼要介绍文档/视频所包含的主要的内容 - -
- - {getFieldDecorator('userName', { - rules: [{required: true, message: "请输入作者姓名"}], - })( - - )} - - - {getFieldDecorator('userUnit', { - rules: [{required: true, message: "请输入作者单位名称"}], - })( - - )} - -
-
- 标签 -
    -
  • -1 ? "active" :"" } onClick={()=>this.changeType(1)}>获奖案例
  • -
  • -1 ? "active" :"" } onClick={()=>this.changeType(2)}>入库案例
  • -
- { - checkTag &&
请选择标签
- } -
- - {getFieldDecorator('description', { - rules: [{ - required: true, message: '请输入描述内容' - }], - })( - - )} - -
- -

上传附件

-

从我的电脑选择要上传的文档:按住CTRL可以上传多份文档。单个文件最大限制:150MB

-
- { - checkFile == true &&
请先上传附件
- } -
-

- 封面图(上传尺寸:120*90 px) -

-
- - { imageUrl ? - - avatar - - : - - {uploadButton} - - } - -
-
-
-
  • 审核说明
  • -
      -
    • 平台管理员将对每天新上传的文档进行审核,审核通过的文档将公开显示,否则将私有化或移除
    • -
    -
    -
    -
  • 温馨提示
  • -
      -
    • 1.请勿上传已设置加密口令的文档资源;
    • -
    • 2.可以上传符合教学案例标准的文档资料,如 - 案例入库标准、 - 案例使用说明书以及其他资料等,上传支持的文件最大容量:100MB;
    • -
    • 3.请确保上传内容无侵权或违反国家关于互联网政策的不良行为;
    • -
    • 4.请使用Chrome,Firefox,Safari,IE11(及以上版本)浏览器;
    • -
    -
    - -
    - { - (!caseID || (CaseDetail && CaseDetail.status == "pending" || CaseDetail && CaseDetail.status == "refused")) ? : "" - } - this.handleSubmit("save")}>保存 -
    -
    - -
    - ) - } -} -const WrappedCoursesNewApp = Form.create({name: 'CaseNew'})(CaseNew); +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) => { + if(file.response!=undefined){ + 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 = ( +
    + +
    + ); + // 上传封面图点击事件 + const uploadCover = { + listType:"picture-card", + className:"avatar-uploader", + showUploadList:false, + action:`${getUploadActionUrl()}`, + onChange:this.handleChange, + } + console.log('111'); + console.log(!caseID || (CaseDetail && CaseDetail.status == "pending")); + return( +
    + +

    + 教学案例 > { caseID ? "编辑" : "新建" } +

    +

    上传教学案例

    +
    +
    + + {getFieldDecorator('caseTitle', { + rules: [{required: true, message: "案例标题不能为空"}], + })( + + )} + 简明扼要介绍文档/视频所包含的主要的内容 + +
    + + {getFieldDecorator('userName', { + rules: [{required: true, message: "请输入作者姓名"}], + })( + + )} + + + {getFieldDecorator('userUnit', { + rules: [{required: true, message: "请输入作者单位名称"}], + })( + + )} + +
    +
    + 标签 +
      +
    • -1 ? "active" :"" } onClick={()=>this.changeType(1)}>获奖案例
    • +
    • -1 ? "active" :"" } onClick={()=>this.changeType(2)}>入库案例
    • +
    + { + checkTag &&
    请选择标签
    + } +
    + + {getFieldDecorator('description', { + rules: [{ + required: true, message: '请输入描述内容' + }], + })( + + )} + +
    + +

    上传附件

    +

    从我的电脑选择要上传的文档:按住CTRL可以上传多份文档。单个文件最大限制:150MB

    +
    + { + checkFile == true &&
    请先上传附件
    + } +
    +

    + 封面图(上传尺寸:120*90 px) +

    +
    + + { imageUrl ? + + avatar + + : + + {uploadButton} + + } + +
    +
    +
    +
  • 审核说明
  • +
      +
    • 平台管理员将对每天新上传的文档进行审核,审核通过的文档将公开显示,否则将私有化或移除
    • +
    +
    +
    +
  • 温馨提示
  • +
      +
    • 1.请勿上传已设置加密口令的文档资源;
    • +
    • 2.可以上传符合教学案例标准的文档资料,如 + 案例入库标准、 + 案例使用说明书以及其他资料等,上传支持的文件最大容量:100MB;
    • +
    • 3.请确保上传内容无侵权或违反国家关于互联网政策的不良行为;
    • +
    • 4.请使用Chrome,Firefox,Safari,IE11(及以上版本)浏览器;
    • +
    +
    + +
    + { + (!caseID || (CaseDetail && CaseDetail.status == "pending" || CaseDetail && CaseDetail.status == "refused")) ? : "" + } + this.handleSubmit("save")}>保存 +
    +
    + +
    + ) + } +} +const WrappedCoursesNewApp = Form.create({name: 'CaseNew'})(CaseNew); export default WrappedCoursesNewApp; \ No newline at end of file