diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index 94e95adbe..a102f92de 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -1297,7 +1297,7 @@ class CoursesController < ApplicationController @is_teacher = @user_course_identity < Course::ASSISTANT_PROFESSOR @course_modules = @course.course_modules.where(hidden: 0) @hidden_modules = @course.course_modules.where(hidden: 1) - @second_category_type = ["shixun_homework", "graduation", "attachment", "board", "course_group", "video"] + @second_category_type = ["shixun_homework", "graduation", "attachment", "board", "course_group", "video", "common_homework", "group_homework"] end def board_list diff --git a/app/controllers/homework_commons_controller.rb b/app/controllers/homework_commons_controller.rb index 4515e5482..0e3771e61 100644 --- a/app/controllers/homework_commons_controller.rb +++ b/app/controllers/homework_commons_controller.rb @@ -34,7 +34,7 @@ class HomeworkCommonsController < ApplicationController module_type = @homework_type == 4 ? "shixun_homework" : @homework_type == 1 ? "common_homework" : "group_homework" @homework_commons = @course.homework_commons.where(homework_type: @homework_type) @main_category = @course.course_modules.find_by(module_type: module_type) - if @homework_type == 4 && !params[:category].blank? + if !params[:category].blank? @category = @main_category.course_second_categories.find_by(id: params[:category]) tip_exception("子目录id有误") if !@category.present? @homework_commons = @homework_commons.where(course_second_category_id: params[:category]) diff --git a/app/helpers/courses_helper.rb b/app/helpers/courses_helper.rb index 0ee83e839..27444b3c9 100644 --- a/app/helpers/courses_helper.rb +++ b/app/helpers/courses_helper.rb @@ -89,6 +89,10 @@ module CoursesHelper case category.category_type when "shixun_homework" "/classrooms/#{course.id}/shixun_homework/#{category.id}" + when "common_homework" + "/classrooms/#{course.id}/common_homework/#{category.id}" + when "group_homework" + "/classrooms/#{course.id}/group_homework/#{category.id}" when "graduation" if category.name == "毕设选题" "/classrooms/#{course.id}/graduation_topics/#{category.course_module_id}" @@ -107,6 +111,10 @@ module CoursesHelper case category.category_type when "shixun_homework" get_homework_commons_count(course, 4, category.id) + when "common_homework" + get_homework_commons_count(course, 1, category.id) + when "group_homework" + get_homework_commons_count(course, 3, category.id) when "graduation" if category.name == "毕设选题" course.graduation_topics_count diff --git a/public/react/src/common/quillForEditor/ImageBlot.js b/public/react/src/common/quillForEditor/ImageBlot.js index 0a9bec733..6e585f31f 100644 --- a/public/react/src/common/quillForEditor/ImageBlot.js +++ b/public/react/src/common/quillForEditor/ImageBlot.js @@ -1,7 +1,7 @@ /* * @Description: 重写图片 * @Author: tangjiang - * @Github: + * @Github: * @Date: 2019-12-16 15:50:45 * @LastEditors : tangjiang * @LastEditTime : 2019-12-31 13:59:02 @@ -17,9 +17,14 @@ export default class ImageBlot extends BlockEmbed { const node = super.create(); node.setAttribute('alt', value.alt); node.setAttribute('src', value.url); + console.log('~~~~~~~~~~~', node, value); node.addEventListener('click', function () { - value.onclick(value.url); - }, false); + try { + value.onclick(value.url); + }catch (e) { + + } + }, false); if (value.width) { node.setAttribute('width', value.width); } @@ -35,6 +40,16 @@ export default class ImageBlot extends BlockEmbed { node.setAttribute('width', '100%'); } + // node.setAttribute('style', { cursor: 'pointer' }); + + // if (node.onclick) { + // console.log('image 有图片点击事件======》》》》》》'); + // // node.setAttribute('onclick', node.onCLick); + // } + // 给图片添加点击事件 + // node.onclick = () => { + // value.onClick && value.onClick(value.url); + // } return node; } @@ -54,4 +69,4 @@ export default class ImageBlot extends BlockEmbed { } ImageBlot.blotName = 'image'; -ImageBlot.tagName = 'img'; \ No newline at end of file +ImageBlot.tagName = 'img'; diff --git a/public/react/src/modules/courses/busyWork/CommonWorkList.js b/public/react/src/modules/courses/busyWork/CommonWorkList.js index e2b70aed5..549dd6ae3 100644 --- a/public/react/src/modules/courses/busyWork/CommonWorkList.js +++ b/public/react/src/modules/courses/busyWork/CommonWorkList.js @@ -378,7 +378,8 @@ function buildColumns(that, student_works, studentData) { {/* /classrooms/"+courseId+"/common_homeworks/"+workId+ '/' + record.id +"/appraise */} that.props.toWorkDetailPage2(e, courseId, workId, record.id)} - onClick={() => that.props.toWorkDetailPage(courseId, workId, record.id)}>{isAdmin ? '评阅' : '查看'} + // onClick={() => that.props.toWorkDetailPage(courseId, workId, record.id)} + >{isAdmin ? '评阅' : '查看'} diff --git a/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js b/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js index 3ebd4fab3..d83f51c0a 100644 --- a/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js +++ b/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js @@ -502,7 +502,8 @@ class Listofworksstudentone extends Component { this.Viewstudenttraininginformationtysl2(e, record)} - onClick={() => this.Viewstudenttraininginformation(record)}>{record.operating} + // onClick={() => this.Viewstudenttraininginformation(record)} + >{record.operating} } @@ -897,7 +898,8 @@ class Listofworksstudentone extends Component { this.Viewstudenttraininginformationtysl2(e, record)} - onClick={() => this.Viewstudenttraininginformation(record)}>{record.operating} + // onClick={() => this.Viewstudenttraininginformation(record)} + >{record.operating} } @@ -1295,11 +1297,13 @@ class Listofworksstudentone extends Component { record.submitstate === "未开启" ? this.Viewstudenttraininginformationtysl2(e, record)} - onClick={() => this.Viewstudenttraininginformationt(record)}>{record.has_comment===true?"详情":"评阅 "} : + // onClick={() => this.Viewstudenttraininginformationt(record)} + >{record.has_comment===true?"详情":"评阅 "} : this.Viewstudenttraininginformationtysl2(e, record)} - onClick={() => this.Viewstudenttraininginformationt(record)}>{record.has_comment===true?"详情":"评阅 "} + // onClick={() => this.Viewstudenttraininginformationt(record)} + >{record.has_comment===true?"详情":"评阅 "} ) }, @@ -1657,11 +1661,13 @@ class Listofworksstudentone extends Component { record.submitstate === "未开启" ? this.Viewstudenttraininginformationtysl2(e, record)} - onClick={() => this.Viewstudenttraininginformationt(record)}>{record.has_comment===true?"详情":"评阅"} : + // onClick={() => this.Viewstudenttraininginformationt(record)} + >{record.has_comment===true?"详情":"评阅"} : this.Viewstudenttraininginformationtysl2(e, record)} - onClick={() => this.Viewstudenttraininginformationt(record)}>{record.has_comment===true?"详情":"评阅"} + // onClick={() => this.Viewstudenttraininginformationt(record)} + >{record.has_comment===true?"详情":"评阅"} ) }, diff --git a/public/react/src/modules/paths/PathDetail/sendPanel.js b/public/react/src/modules/paths/PathDetail/sendPanel.js index a4c14f1ef..1491ea903 100644 --- a/public/react/src/modules/paths/PathDetail/sendPanel.js +++ b/public/react/src/modules/paths/PathDetail/sendPanel.js @@ -188,6 +188,7 @@ class sendPanel extends Component{ :'' } +
- :"" } - `}
diff --git a/public/react/src/modules/question/component/ChoquesEditor.js b/public/react/src/modules/question/component/ChoquesEditor.js index 512e6e373..640205d92 100644 --- a/public/react/src/modules/question/component/ChoquesEditor.js +++ b/public/react/src/modules/question/component/ChoquesEditor.js @@ -79,6 +79,8 @@ class ChoquesEditor extends Component{ question_titlesysl:this.props.question_titlesysl||'', question_titleysl:this.props.question_title || '', item_banksedit:[], + bindinginputs:null, + url:"", } } addOption = () => { @@ -175,7 +177,14 @@ class ChoquesEditor extends Component{ this.props.onEditorCancel() } + handleShowUploadImage = (url,i) => { + this.setState({ + url:url, + bindinginputs:i + }) + + } componentDidMount = () => { try { @@ -228,10 +237,22 @@ class ChoquesEditor extends Component{ } var texts; const _text = quill.getText(); + // console.log("onOptionContentChange"); + // console.log(value); + // console.log(value.ops.length); + // console.log(_text); const reg = /^[\s\S]*.*[^\s][\s\S]*$/; if (!reg.test(_text)) { // 处理编辑器内容为空 texts=""; + try { + if(value.ops.length>1){ + //单独图片的话 _text是为空的 + texts=JSON.stringify(value); + } + }catch (e) { + + } } else { if(_text.length>=500){ var result = _text.substring(0,450); @@ -288,40 +309,68 @@ class ChoquesEditor extends Component{ if (!reg.test(_text)) { // 处理编辑器内容为空 this.setState({ - question_titleysl:"" + question_titleysl:"", }) + try { + if(value.ops.length>1) { + this.setState({ + question_titleysl:JSON.stringify(value), + }) + } + }catch (e) { + + } } else { // 提交到后台的内容需要处理一下; try { let texts = JSON.stringify(value); this.setState({ - question_titleysl:texts + question_titleysl:texts, }) }catch (e) { this.setState({ - question_titleysl:"" + question_titleysl:"", }) } } } + bindinginputs=(i)=>{ + this.setState({ + bindinginputs:i + }) + + } + + onContentChanges=(value,quill)=>{ const _text = quill.getText(); const reg = /^[\s\S]*.*[^\s][\s\S]*$/; if (!reg.test(_text)) { // 处理编辑器内容为空 this.setState({ - question_titlesysl:"" + question_titlesysl:"", }) + try { + if(value.ops.length>1){ + //单独图片的话 _text是为空的 + this.setState({ + question_titlesysl:JSON.stringify(value), + }) + } + }catch (e) { + + } } else { // 提交到后台的内容需要处理一下; try { let texts = JSON.stringify(value); this.setState({ - question_titlesysl:texts + question_titlesysl:texts, + }) }catch (e) { this.setState({ - question_titlesysl:"" + question_titlesysl:"", }) } @@ -330,7 +379,7 @@ class ChoquesEditor extends Component{ render() { - let { question_title, question_score, question_type, question_choices, standard_answers,question_titles} = this.state; + let { question_title, question_score, question_type, question_choices, standard_answers,question_titles,bindinginputs} = this.state; let { question_id, index, exerciseIsPublish, // question_title, // question_type, @@ -382,6 +431,20 @@ class ChoquesEditor extends Component{ .signleEditor .quill_editor_for_react_area .ql-container .ql-editor p{ font-family: MicrosoftYaHei; } + + .content_editorMd_show{ + display: flex !important; + margin-top:0px !important; + border-radius:2px !important; + max-width: 1056px !important; + word-break:break-all !important; + border:1px solid rgba(221,221,221,1) !important; + } + .contestedtext{ + font-size:14px; + font-family:MicrosoftYaHei; + color:rgba(172,172,172,1); + } `}

{/* {!question_id ? '新建' : '编辑'} */} @@ -391,7 +454,7 @@ class ChoquesEditor extends Component{ {question_choices.map( (item, index) => { + // console.log("question_choices"); + // console.log(item); const bg = standard_answers[index] ? 'check-option-bg' : '' return

0?"df optionRow mt15": "df optionRow"} > {/* 点击设置答案 */} @@ -423,25 +488,51 @@ class ChoquesEditor extends Component{ { item===undefined||item===null||item===""? - this.onOptionContentChange(value,quill,index)} - /> +
+ { + bindinginputs===null||bindinginputs!==index? +
this.bindinginputs(index)}> + {/*

请您输入选项

*/} +
: + this.onOptionContentChange(value,quill,index)} + showUploadImage={(url)=>this.handleShowUploadImage(url,index)} + /> + + } +
: - this.onOptionContentChange(value,quill,index)} - /> +
+ { + bindinginputs===null||bindinginputs!==index? +
this.bindinginputs(index)}> + + this.handleShowUploadImage(url,index)} + /> +
+ : + this.onOptionContentChange(value,quill,index)} + showUploadImage={(url)=>this.handleShowUploadImage(url,index)} + /> + } + +
}
@@ -474,12 +565,13 @@ class ChoquesEditor extends Component{
diff --git a/public/react/src/modules/question/component/JudquestionEditor.js b/public/react/src/modules/question/component/JudquestionEditor.js index 868700c6b..ab7e930b1 100644 --- a/public/react/src/modules/question/component/JudquestionEditor.js +++ b/public/react/src/modules/question/component/JudquestionEditor.js @@ -310,7 +310,16 @@ class JudquestionEditor extends Component{ this.setState({ question_titleysl:"" }) - // console.log("空"); + try { + if(value.ops.length>1){ + //单独图片的话 _text是为空的 + this.setState({ + question_titleysl:JSON.stringify(value), + }) + } + }catch (e) { + + } } else { // 提交到后台的内容需要处理一下; try { @@ -334,6 +343,16 @@ class JudquestionEditor extends Component{ this.setState({ question_titlesysl:"" }) + try { + if(value.ops.length>1){ + //单独图片的话 _text是为空的 + this.setState({ + question_titlesysl:JSON.stringify(value), + }) + } + }catch (e) { + + } } else { // 提交到后台的内容需要处理一下; try { @@ -412,7 +431,7 @@ class JudquestionEditor extends Component{ { @@ -249,8 +251,23 @@ class SingleEditor extends Component{ // standard_answers[index] = !standard_answers[index]; this.setState({ standard_answers }) } + + handleShowUploadImage = (url,i) => { + + this.setState({ + url:url, + bindinginputs:i + }) + + } + bindinginputs=(i)=>{ + this.setState({ + bindinginputs:i + }) + + } + onOptionContentChange = (value,quill,index) => { - debugger if (index >= this.state.question_choices.length) { // TODO 新建,然后删除CD选项,再输入题干,会调用到这里,且index是3 return; @@ -261,6 +278,14 @@ class SingleEditor extends Component{ if (!reg.test(_text)) { // 处理编辑器内容为空 texts=""; + try { + if(value.ops.length>1){ + //单独图片的话 _text是为空的 + texts=JSON.stringify(value); + } + }catch (e) { + + } } else { if(_text.length>=500){ var result = _text.substring(0,450); @@ -318,6 +343,16 @@ class SingleEditor extends Component{ this.setState({ question_titleysl:"" }) + try { + if(value.ops.length>1){ + //单独图片的话 _text是为空的 + this.setState({ + question_titleysl:JSON.stringify(value), + }) + } + }catch (e) { + + } } else { try { let texts = JSON.stringify(value); @@ -341,6 +376,16 @@ class SingleEditor extends Component{ this.setState({ question_titlesysl:"" }) + try { + if(value.ops.length>1){ + //单独图片的话 _text是为空的 + this.setState({ + question_titlesysl:JSON.stringify(value), + }) + } + }catch (e) { + + } } else { try { let texts = JSON.stringify(value); @@ -363,7 +408,7 @@ class SingleEditor extends Component{ } render() { - let { question_title, question_score, question_type, question_choices, standard_answers,question_titles,question_titlesysl} = this.state; + let { question_title, question_score, question_type, question_choices, standard_answers,question_titles,question_titlesysl,bindinginputs} = this.state; let { question_id, index, exerciseIsPublish, // question_title, // question_type, @@ -417,6 +462,19 @@ class SingleEditor extends Component{ .signleEditor .quill_editor_for_react_area .ql-container .ql-editor p{ font-family: MicrosoftYaHei; } + .content_editorMd_show{ + display: flex !important; + margin-top:0px !important; + border-radius:2px !important; + max-width: 1056px !important; + word-break:break-all !important; + border:1px solid rgba(221,221,221,1) !important; + } + .contestedtext{ + font-size:14px; + font-family:MicrosoftYaHei; + color:rgba(172,172,172,1); + } `}

{/* {!question_id ? '新建' : '编辑'} */} @@ -426,7 +484,7 @@ class SingleEditor extends Component{ { item===undefined||item===null||item===""? - this.onOptionContentChange(value,quill,index)} - /> +

+ { + bindinginputs===null||bindinginputs!==index? +
this.bindinginputs(index)}> + {/*

请您输入选项

*/} +
: + this.onOptionContentChange(value,quill,index)} + showUploadImage={(url)=>this.handleShowUploadImage(url,index)} + /> + + } +
: - this.onOptionContentChange(value,quill,index)} - /> +
+ { + bindinginputs===null||bindinginputs!==index? +
this.bindinginputs(index)}> + + this.handleShowUploadImage(url,index)} + /> +
+ : + this.onOptionContentChange(value,quill,index)} + showUploadImage={(url)=>this.handleShowUploadImage(url,index)} + /> + } + +
} @@ -509,7 +593,7 @@ class SingleEditor extends Component{