sso
jingquan huang 5 years ago
commit 70231c120e

@ -93,6 +93,8 @@
"rsuite": "^4.0.1",
"sass-loader": "7.3.1",
"scroll-into-view": "^1.12.3",
"showdown": "^1.9.1",
"showdown-katex": "^0.6.0",
"store": "^2.0.12",
"style-loader": "0.19.0",
"styled-components": "^4.1.3",

@ -1,29 +1,16 @@
import '../katex.css';
import '../css/Courses.css';
import React,{Component} from "react";
import { Form, Select, Input, Button,Checkbox,Upload,Icon,message,Modal, Table, Divider, Tag,DatePicker,Radio,Tooltip} from "antd";
import {Link} from 'react-router-dom';
import locale from 'antd/lib/date-picker/locale/zh_CN';
import { WordsBtn, MarkdownToHtml, markdownToHTML, ImageLayer2 } from 'educoder';
import {markdownToHTML, ImageLayer2 } from 'educoder';
import axios from 'axios';
import Modals from '../../modals/Modals';
import CoursesListType from '../coursesPublic/CoursesListType';
import HomeworkModal from "../coursesPublic/HomeworkModal";
import CheckAllGroup from '../common/button/CheckAllGroup'
import moment from 'moment';
import CheckCodeModal from '../coursesPublic/modal/CheckCodeModal'
import '../css/Courses.css'
import WorkDetailPageHeader from './common/WorkDetailPageHeader'
import CommonWorkAppraiseReply from './reply/CommonWorkAppraiseReply'
import Example from './TestHooks'
import CommonWorkAppraiseReviseAttachments from './CommonWorkAppraiseReviseAttachments'
import LeaderIcon from './common/LeaderIcon'
const { Option} = Select;
const CheckboxGroup = Checkbox.Group;
const confirm = Modal.confirm;
const $ = window.$;
const Search = Input.Search;
const RadioGroup = Radio.Group;
import LeaderIcon from './common/LeaderIcon';
import showdown from 'showdown'
import showdownKatex from 'showdown-katex'
class CommonWorkAppraise extends Component{
constructor(props){
@ -56,22 +43,28 @@ class CommonWorkAppraise extends Component{
console.log(error)
})
}
getSupplyAttachments = () => {
let workId =this.props.match.params.workId;
let studentWorkId =this.props.match.params.studentWorkId;
const url = `/student_works/${studentWorkId}/supply_attachments.json`
axios.get(url).then((result)=> {
if (result.data.course_id) {
this.setState({
...result.data
})
}
}).catch((error)=>{
console.log(error)
})
exportMdtoHtml=(md)=> {
let newmd=md;
newmd=newmd.replace(/TOC/g, '');
newmd=newmd.replace(/\[|]/g,'');
newmd=newmd.replace(/`/g, '');
newmd=newmd.replace(/`/g, '');
newmd=newmd.replace(/"/g, '');
newmd=newmd.replace(/"/g, '');
newmd=newmd.replace(/"/g, '');
const converter = new showdown.Converter({
extensions: [
showdownKatex({
// maybe you want katex to throwOnError
throwOnError: true,
// disable displayMode
displayMode: false,
// change errorColor to blue
errorColor: '#1500ff',
}),
],
});
return converter.makeHtml(newmd);
}
getReviseAttachments = () => {
let studentWorkId =this.props.match.params.studentWorkId;
@ -99,22 +92,6 @@ class CommonWorkAppraise extends Component{
componentDidMount() {
this.getWork();
this.getReviseAttachments()
let workId =this.props.match.params.workId;
let studentWorkId =this.props.match.params.studentWorkId;
// const url = `/student_works/${studentWorkId}/comment_list.json`
// axios.get(url).then((result)=> {
// if (result.data.course_id) {
// this.setState({
// ...result.data
// })
// }
// }).catch((error)=>{
// console.log(error)
// })
}
onAttachmentRemove = (id) => {
@ -205,7 +182,7 @@ class CommonWorkAppraise extends Component{
<div className={"color-grey-6 mb15 font-16"}>
内容
</div>
<div className="markdown-body ml20" dangerouslySetInnerHTML={{__html: markdownToHTML(description)}}>
<div className="markdown-body ml20" dangerouslySetInnerHTML={{__html: this.exportMdtoHtml(description)}}>
</div>
{attachments.map((item,key)=>{

@ -1,9 +1,12 @@
import '../../katex.css';
import React,{ Component } from "react";
import { getImageUrl, markdownToHTML, WordsBtn, getUrl } from 'educoder';
import { Tooltip } from 'antd'
import TPMMDEditor from '../../../tpm/challengesnew/TPMMDEditor'
import axios from 'axios'
import moment from 'moment'
import { Tooltip } from 'antd';
import TPMMDEditor from '../../../tpm/challengesnew/TPMMDEditor';
import axios from 'axios';
import moment from 'moment';
import showdown from 'showdown';
import showdownKatex from 'showdown-katex';
const _origin = ''
/**
https://www.showdoc.cc/127895880302646?page_id=1962215317836957
@ -150,9 +153,35 @@ class CCommentItem extends Component{
}
})
}
parseCommentContent = (oldContent) => {
return markdownToHTML(oldContent);
}
exportMdtoHtml=(md)=> {
let newmd=md;
newmd=newmd.replace(/TOC/g, '');
newmd=newmd.replace(/\[|]/g,'');
newmd=newmd.replace(/`/g, '');
newmd=newmd.replace(/`/g, '');
newmd=newmd.replace(/"/g, '');
newmd=newmd.replace(/"/g, '');
newmd=newmd.replace(/"/g, '');
const converter = new showdown.Converter({
extensions: [
showdownKatex({
// maybe you want katex to throwOnError
throwOnError: true,
// disable displayMode
displayMode: false,
// change errorColor to blue
errorColor: '#1500ff',
}),
],
});
return converter.makeHtml(newmd);
}
renderChildenComments = (parent) => {
if (parent.journals.length == 0) {
return '';
@ -239,8 +268,8 @@ class CCommentItem extends Component{
<div className="comment_content clearfix" id={`reply_content_${item.id}`}>
<div className="color-grey-3" id={`reply_content_${item.id}`}>
<div className={"break_word_comments markdown-body"}
dangerouslySetInnerHTML={{__html: this.parseCommentContent(item.content)}}></div>
<div className={"markdown-body"}
dangerouslySetInnerHTML={{__html:this.exportMdtoHtml(item.content)}}></div>
<div className="cl"></div>
</div>
</div>
@ -256,7 +285,7 @@ class CCommentItem extends Component{
render(){
let { item, commentIndex, homework_status, is_author }=this.props;
let { show_reply, show_appeal }=this.state;
const _content = item.content ? this.parseCommentContent(item.content) : ''
const _content = item.content ? this.exportMdtoHtml(item.content) : ''
const isAnonymous = homework_status && homework_status.indexOf('匿评中') != -1
const isAppealing = homework_status && homework_status.indexOf('申诉中') != -1
const attachments = item.attachments;
@ -334,7 +363,7 @@ class CCommentItem extends Component{
{!!_content && _content !== 'null' && <div className="comment_content clearfix mt8" id={`reply_content_${item.id}`}>
<div className="color-grey-3" id={`reply_content_${item.id}`}>
<div className={"break_word_comments markdown-body"} dangerouslySetInnerHTML={{__html: _content}}></div>
<div className={"markdown-body"} dangerouslySetInnerHTML={{__html: _content}}></div>
<div className="cl"></div>
</div>
</div>}

@ -141,10 +141,24 @@ class OneSelfOrderModal extends Component{
//勾选实训
shixunhomeworkedit=(list)=>{
if(this.state.course_groups){
if(this.state.course_groups.length===list.length){
this.setState({
Checkboxtype:true,
group_ids:list
})
}else{
this.setState({
Checkboxtype:false,
group_ids:list
})
}
}else{
this.setState({
group_ids:list
})
}
this.props.getcourse_groupslist && this.props.getcourse_groupslist(list)
}

File diff suppressed because one or more lines are too long
Loading…
Cancel
Save