diff --git a/.gitignore b/.gitignore
index 77df2c1c5..ea08c700e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,68 +1,72 @@
-# See https://help.github.com/articles/ignoring-files for more about ignoring files.
-#
-# If you find yourself ignoring temporary files generated by your text editor
-# or operating system, you probably want to add a global ignore instead:
-# git config --global core.excludesfile '~/.gitignore_global'
-
-# Ignore bundler config.
-/.bundle
-
-# mac
-*.DS_Store
-
-# Ignore all logfiles and tempfiles.
-/log/*
-/tmp/*
-!/log/.keep
-!/tmp/.keep
-
-# Ignore uploaded files in development
-/storage/*
-
-/node_modules
-/yarn-error.log
-
-# /public/assets
-.byebug_history
-
-# Ignore master key for decrypting credentials and more.
-/config/master.key
-/config/database.yml
-/.idea/*
-
-# Ignore react node_modules
-/public/react/.cache
-/public/react/build
-/public/react/build/
-/public/react/node_modules/
-/public/react/config/stats.json
-/public/react/stats.json
-/public/react/.idea/*
-
-/public/npm-debug.log
-
-# avatars
-/public/images/avatars
-
-/config/secrets.yml
-/config/redis.yml
-/config/elasticsearch.yml
-/config/aliyun_vod.yml
-
-public/upload.html
-/config/configuration.yml
-/config/environments/production.rb
-/config/initializers/gitlab_config.rb
-/db/schema.rb
-.vscode/
-vendor/bundle/
-.ruby-version
-.ruby-gemset
-
-/Users
-/files
-/public/images/avatars
-/public/files
-/workspace
-/log
-/public/admin
\ No newline at end of file
+# See https://help.github.com/articles/ignoring-files for more about ignoring files.
+#
+# If you find yourself ignoring temporary files generated by your text editor
+# or operating system, you probably want to add a global ignore instead:
+# git config --global core.excludesfile '~/.gitignore_global'
+
+# Ignore bundler config.
+/.bundle
+
+# Ignore lock config file
+*.lock
+*.log
+
+# mac
+*.DS_Store
+
+# Ignore all logfiles and tempfiles.
+/log/*
+/tmp/*
+!/log/.keep
+!/tmp/.keep
+
+# Ignore uploaded files in development
+/storage/*
+
+/node_modules
+/yarn-error.log
+
+# /public/assets
+.byebug_history
+
+# Ignore master key for decrypting credentials and more.
+/config/master.key
+/config/database.yml
+/.idea/*
+
+# Ignore react node_modules
+/public/react/.cache
+/public/react/build
+/public/react/build/
+/public/react/node_modules/
+/public/react/config/stats.json
+/public/react/stats.json
+/public/react/.idea/*
+
+/public/npm-debug.log
+
+# avatars
+/public/images/avatars
+
+/config/secrets.yml
+/config/redis.yml
+/config/elasticsearch.yml
+/config/aliyun_vod.yml
+
+public/upload.html
+/config/configuration.yml
+/config/environments/production.rb
+/config/initializers/gitlab_config.rb
+/db/schema.rb
+.vscode/
+vendor/bundle/
+.ruby-version
+.ruby-gemset
+
+/Users
+/files
+/public/images/avatars
+/public/files
+/workspace
+/log
+/public/admin
diff --git a/public/react/src/modules/competitions/Competitioncommon/CompetitionCommon.js b/public/react/src/modules/competitions/Competitioncommon/CompetitionCommon.js
index ec77f7e97..ed129d8bd 100755
--- a/public/react/src/modules/competitions/Competitioncommon/CompetitionCommon.js
+++ b/public/react/src/modules/competitions/Competitioncommon/CompetitionCommon.js
@@ -235,13 +235,16 @@ class CompetitionCommon extends Component{
this.props.showProfileCompleteDialog()
return
}
+
if(url===undefined){
let {data,signupdata}=this.state;
- if(signupdata.enrolled===true){
- this.props.history.replace(`/courses/${data.course_id}`);
- }else{
+ // if(signupdata.enrolled===true){
+ // this.props.history.replace(`/courses/${data.course_id}`);
+ // }else{ }
+
if (data.member_of_course === true) {
- this.props.history.replace(`/courses/${data.course_id}`);
+ // this.props.history.replace(`/courses/${data.course_id}`);
+ window.open(`/courses/${data.course_id}`)
} else {
// 以学生身份调用加入课堂 进入课堂首页
let url = "/courses/apply_to_join_course.json"
@@ -251,15 +254,18 @@ class CompetitionCommon extends Component{
}
).then((response) => {
if (response.data.status === 0) {
- this.props.history.replace(`/courses/${data.course_id}`);
+ // this.props.history.replace();
+ this.Personalregistration(`/courses/${data.course_id}`)
}
})
+
}
- }
+
}else{
if (url === "personal") {
- this.Personalregistration()
+ let urls = `/competitions/${this.props.match.params.identifier}/enroll`;
+ this.Personalregistration(urls)
} else {
this.props.history.replace(url);
}
@@ -268,10 +274,10 @@ class CompetitionCommon extends Component{
}
- Personalregistration = () => {
+ Personalregistration = (urls) => {
let {signupdata} = this.state;
- let urls = `/competitions/${this.props.match.params.identifier}/enroll`;
+
if (signupdata.enroll_ended === true) {
//已截止
this.props.showNotification(`报名已截止`);
@@ -286,7 +292,8 @@ class CompetitionCommon extends Component{
if (response) {
if (response.data) {
this.props.showNotification(`报名成功,预祝您夺得桂冠!`);
- this.props.history.replace(urls);
+ // this.props.history.replace(urls);
+ window.open(urls)
}
}
}).catch((error) => {
diff --git a/public/react/src/modules/courses/busyWork/CommonWorkAnswer.js b/public/react/src/modules/courses/busyWork/CommonWorkAnswer.js
index ccaa3c04b..49ca5e1e4 100644
--- a/public/react/src/modules/courses/busyWork/CommonWorkAnswer.js
+++ b/public/react/src/modules/courses/busyWork/CommonWorkAnswer.js
@@ -1,113 +1,113 @@
-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, on, off } 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 NoneData from '../coursesPublic/NoneData'
-
-import '../css/Courses.css'
-import WorkDetailPageHeader from './common/WorkDetailPageHeader'
-import TabRightComponents from './common/TabRightComponents'
-
-const { Option} = Select;
-const CheckboxGroup = Checkbox.Group;
-const confirm = Modal.confirm;
-let GraduationTasksnewtype=true;
-const $ = window.$;
-const Search = Input.Search;
-const RadioGroup = Radio.Group;
-
-class CommonWorkAnswer extends Component{
-
- constructor(props){
- super(props)
- this.state={
- course_name:"",
- homework_name:"",
- search: ''
- }
- }
- fetchData = () => {
- let workId=this.props.match.params.workId;
- const url = `/homework_commons/${workId}/reference_answer.json`
-
- axios.get(url).then((result)=> {
- if (result.data.course_id) {
-
- this.setState({
- ...result.data
- }, () => {
- })
- this.props.initWorkDetailCommonState && this.props.initWorkDetailCommonState( Object.assign({...result.data}, {
- moduleName: '参考答案'
- }))
- }
-
- }).catch((error)=>{
- console.log(error)
- })
- }
- componentDidMount() {
- this.fetchData()
- try {
- this.props.triggerRef(this);
- }catch (e) {
-
- }
- on('commonwork_fetch_all', this.fetchAllListener)
- }
- componentWillUnmount() {
- off('commonwork_fetch_all', this.fetchAllListener)
- }
- fetchAllListener = () => {
- this.fetchData()
- }
-
-
- render(){
- const dateFormat = 'YYYY-MM-DD HH:mm';
-
- let {course_name, homework_name, search, page, loadingstate, homework_status, reference_answer,
- attachments
- } =this.state;
-
- let courseId=this.props.match.params.coursesId;
- let category_id=this.props.match.params.category_id;
- let workId=this.props.match.params.workId;
-
- const exportResultUrl = `/api/homework_commons/${workId}/works_list.xlsx`
-
- return(
-
- {/* 内容区 */}
-
- {reference_answer ?
:
- reference_answer === undefined ? '' : ((!attachments || attachments.length == 0) &&
)}
-
- { attachments && attachments.map((item) => {
- return (
)
- }) }
-
-
-
-
-
- )
- }
-}
-
-export default CommonWorkAnswer;
\ No newline at end of file
+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, on, off } 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 NoneData from '../coursesPublic/NoneData'
+
+import '../css/Courses.css'
+import WorkDetailPageHeader from './common/WorkDetailPageHeader'
+import TabRightComponents from './common/TabRightComponents'
+
+const { Option} = Select;
+const CheckboxGroup = Checkbox.Group;
+const confirm = Modal.confirm;
+let GraduationTasksnewtype=true;
+const $ = window.$;
+const Search = Input.Search;
+const RadioGroup = Radio.Group;
+
+class CommonWorkAnswer extends Component{
+
+ constructor(props){
+ super(props)
+ this.state={
+ course_name:"",
+ homework_name:"",
+ search: ''
+ }
+ }
+ fetchData = () => {
+ let workId=this.props.match.params.workId;
+ const url = `/homework_commons/${workId}/reference_answer.json`
+
+ axios.get(url).then((result)=> {
+ if (result.data.course_id) {
+
+ this.setState({
+ ...result.data
+ }, () => {
+ })
+ this.props.initWorkDetailCommonState && this.props.initWorkDetailCommonState( Object.assign({...result.data}, {
+ moduleName: '参考答案'
+ }))
+ }
+
+ }).catch((error)=>{
+ console.log(error)
+ })
+ }
+ componentDidMount() {
+ this.fetchData()
+ try {
+ this.props.triggerRef(this);
+ }catch (e) {
+
+ }
+ on('commonwork_fetch_all', this.fetchAllListener)
+ }
+ componentWillUnmount() {
+ off('commonwork_fetch_all', this.fetchAllListener)
+ }
+ fetchAllListener = () => {
+ this.fetchData()
+ }
+
+
+ render(){
+ const dateFormat = 'YYYY-MM-DD HH:mm';
+
+ let {course_name, homework_name, search, page, loadingstate, homework_status, reference_answer,
+ attachments
+ } =this.state;
+
+ let courseId=this.props.match.params.coursesId;
+ let category_id=this.props.match.params.category_id;
+ let workId=this.props.match.params.workId;
+
+ const exportResultUrl = `/api/homework_commons/${workId}/works_list.xlsx`
+
+ return(
+
+ {/* 内容区 */}
+
+ {reference_answer ?
:
+ reference_answer === undefined ? '' : ((!attachments || attachments.length == 0) &&
)}
+
+ { attachments && attachments.map((item) => {
+ return (
)
+ }) }
+
+
+
+
+
+ )
+ }
+}
+
+export default CommonWorkAnswer;
diff --git a/public/react/src/modules/courses/busyWork/CommonWorkAppraise.js b/public/react/src/modules/courses/busyWork/CommonWorkAppraise.js
index 61469c6bd..bfc653ae0 100644
--- a/public/react/src/modules/courses/busyWork/CommonWorkAppraise.js
+++ b/public/react/src/modules/courses/busyWork/CommonWorkAppraise.js
@@ -1,314 +1,314 @@
-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 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;
-
-class CommonWorkAppraise extends Component{
-
- constructor(props){
- super(props)
- this.state={
- course_name:"",
- homework_name:"",
- search: '',
-
-
- attachments: [],
- revise_attachments: [],
- }
- }
- getWork = () => {
- let workId =this.props.match.params.workId;
- let studentWorkId =this.props.match.params.studentWorkId;
-
- // https://www.showdoc.cc/127895880302646?page_id=1957586480118445
- const url = `/student_works/${studentWorkId}.json`
-
- axios.get(url).then((result)=> {
- if (result.data.course_id) {
-
- this.setState({
- ...result.data
- })
- }
- }).catch((error)=>{
- 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)
- })
- }
- getReviseAttachments = () => {
- let studentWorkId =this.props.match.params.studentWorkId;
- const url = `/student_works/${studentWorkId}/supply_attachments.json`;
- axios.get(url).then((result)=> {
- if (result.data.revise_attachments) {
-
- this.setState({
- ...result.data
- })
- }
-
- }).catch((error)=>{
- console.log(error)
- })
- }
- componentDidUpdate(prevProps, prevState) {
- if (this.props.match.params.studentWorkId != prevProps.match.params.studentWorkId) {
- this.getWork();
- this.getReviseAttachments()
- this.commonWorkAppraiseReply && this.commonWorkAppraiseReply.fetchAllComments()
- }
- }
-
- 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) => {
- this.setState({
- Modalstype:true,
- // Modalstopval:'确定要删除这个附件吗?',
- Modalstopval: '是否确认删除?',
-
- ModalSave: ()=>this.deleteAttachment(id),
- ModalCancel:this.cancelAttachment
- })
- }
- deleteAttachment = (id) => {
- const url = `/attachments/${id}.json`
- axios.delete(url, {
- })
- .then((response) => {
- if (response.data) {
- const { status } = response.data;
- if (status == 0) {
- this.getWork()
- this.getReviseAttachments();
- this.cancelAttachment();
- }
- }
- })
- .catch(function (error) {
- console.log(error);
- });
- }
- cancelAttachment=()=>{
- this.setState({
- Modalstype:false,
- Modalstopval:'',
- ModalSave:"",
- ModalCancel:""
- })
- }
- onReplySuccess = () => {
- this.getReviseAttachments();
- }
-
- render(){
- const dateFormat = 'YYYY-MM-DD HH:mm';
-
- let {course_name, homework_name, search, page, loadingstate, homework_status, reference_answer,
- attachments, homework_id, project_info, work_members, is_evaluation,
- description, update_user_name, commit_user_name, update_time, commit_time, author_name,
- revise_attachments, revise_reason, atta_update_user, atta_update_time, atta_update_user_login,
- Modalstype,Modalstopval,ModalCancel,ModalSave,loadtype, is_leader_work
- } =this.state;
-
- let courseId=this.props.match.params.coursesId;
- let category_id=this.props.match.params.category_id;
- let studentWorkId=this.props.match.params.studentWorkId;
- const isAdmin = this.props.isAdmin()
-
- document.title=course_name&&course_name;
- return(
-
- {/*提示*/}
-
- {/* 内容区 */}
- {/*
-
*/}
-
-
-
-
-
-
- {(description || (attachments && attachments.length != 0)) &&
-
- 内容
-
-
-
-
- {attachments.map((item,key)=>{
- return(
-
-
-
-
-
-
40 ? item.title : ''}`}>
- {item.title}
-
-
{item.filesize}
- {/*{item.delete===true?
this.onAttachmentRemove(item.id)}>:""}*/}
- {item.delete===true?
this.onAttachmentRemove(item.id)}>:""}
- {/* style={{display: 'none'}} */}
-
- )
- })}
-
-
-
- { update_time &&
-
- 更新
- {update_user_name}
-
- {moment(update_time).format('YYYY-MM-DD HH:mm')==="Invalid date"?"":moment(update_time).format('YYYY-MM-DD HH:mm')}
-
- }
-
- { commit_time &&
-
- 提交
- {commit_user_name}
-
- {moment(commit_time).format('YYYY-MM-DD HH:mm')==="Invalid date"?"":moment(commit_time).format('YYYY-MM-DD HH:mm')}
-
- }
-
-
-
}
-
-
-
- {is_evaluation != true && project_info && project_info.name &&
- }
-
- {is_evaluation != true && work_members && !!work_members.length &&
-
- 全部组员
-
-
-
- 当前组员:{author_name} {is_leader_work && }
-
-
- {isAdmin &&
- 温馨提示:
- 点击其他组员的姓名,可以快速评阅TA的作品
-
}
-
-
-
- }
-
-
-
- {/* task_type={datalist&&datalist.task_type} */}
-
{this.commonWorkAppraiseReply = ref}}
- >
-
-
-
-
-
- )
- }
-}
-
-export default CommonWorkAppraise;
\ No newline at end of file
+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 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;
+
+class CommonWorkAppraise extends Component{
+
+ constructor(props){
+ super(props)
+ this.state={
+ course_name:"",
+ homework_name:"",
+ search: '',
+
+
+ attachments: [],
+ revise_attachments: [],
+ }
+ }
+ getWork = () => {
+ let workId =this.props.match.params.workId;
+ let studentWorkId =this.props.match.params.studentWorkId;
+
+ // https://www.showdoc.cc/127895880302646?page_id=1957586480118445
+ const url = `/student_works/${studentWorkId}.json`
+
+ axios.get(url).then((result)=> {
+ if (result.data.course_id) {
+
+ this.setState({
+ ...result.data
+ })
+ }
+ }).catch((error)=>{
+ 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)
+ })
+ }
+ getReviseAttachments = () => {
+ let studentWorkId =this.props.match.params.studentWorkId;
+ const url = `/student_works/${studentWorkId}/supply_attachments.json`;
+ axios.get(url).then((result)=> {
+ if (result.data.revise_attachments) {
+
+ this.setState({
+ ...result.data
+ })
+ }
+
+ }).catch((error)=>{
+ console.log(error)
+ })
+ }
+ componentDidUpdate(prevProps, prevState) {
+ if (this.props.match.params.studentWorkId != prevProps.match.params.studentWorkId) {
+ this.getWork();
+ this.getReviseAttachments()
+ this.commonWorkAppraiseReply && this.commonWorkAppraiseReply.fetchAllComments()
+ }
+ }
+
+ 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) => {
+ this.setState({
+ Modalstype:true,
+ // Modalstopval:'确定要删除这个附件吗?',
+ Modalstopval: '是否确认删除?',
+
+ ModalSave: ()=>this.deleteAttachment(id),
+ ModalCancel:this.cancelAttachment
+ })
+ }
+ deleteAttachment = (id) => {
+ const url = `/attachments/${id}.json`
+ axios.delete(url, {
+ })
+ .then((response) => {
+ if (response.data) {
+ const { status } = response.data;
+ if (status == 0) {
+ this.getWork()
+ this.getReviseAttachments();
+ this.cancelAttachment();
+ }
+ }
+ })
+ .catch(function (error) {
+ console.log(error);
+ });
+ }
+ cancelAttachment=()=>{
+ this.setState({
+ Modalstype:false,
+ Modalstopval:'',
+ ModalSave:"",
+ ModalCancel:""
+ })
+ }
+ onReplySuccess = () => {
+ this.getReviseAttachments();
+ }
+
+ render(){
+ const dateFormat = 'YYYY-MM-DD HH:mm';
+
+ let {course_name, homework_name, search, page, loadingstate, homework_status, reference_answer,
+ attachments, homework_id, project_info, work_members, is_evaluation,
+ description, update_user_name, commit_user_name, update_time, commit_time, author_name,
+ revise_attachments, revise_reason, atta_update_user, atta_update_time, atta_update_user_login,
+ Modalstype,Modalstopval,ModalCancel,ModalSave,loadtype, is_leader_work
+ } =this.state;
+
+ let courseId=this.props.match.params.coursesId;
+ let category_id=this.props.match.params.category_id;
+ let studentWorkId=this.props.match.params.studentWorkId;
+ const isAdmin = this.props.isAdmin()
+
+ document.title=course_name&&course_name;
+ return(
+
+ {/*提示*/}
+
+ {/* 内容区 */}
+ {/*
+
*/}
+
+
+
+
+
+
+ {(description || (attachments && attachments.length != 0)) &&
+
+ 内容
+
+
+
+
+ {attachments.map((item,key)=>{
+ return(
+
+
+
+
+
+
40 ? item.title : ''}`}>
+ {item.title}
+
+
{item.filesize}
+ {/*{item.delete===true?
this.onAttachmentRemove(item.id)}>:""}*/}
+ {item.delete===true?
this.onAttachmentRemove(item.id)}>:""}
+ {/* style={{display: 'none'}} */}
+
+ )
+ })}
+
+
+
+ { update_time &&
+
+ 更新
+ {update_user_name}
+
+ {moment(update_time).format('YYYY-MM-DD HH:mm')==="Invalid date"?"":moment(update_time).format('YYYY-MM-DD HH:mm')}
+
+ }
+
+ { commit_time &&
+
+ 提交
+ {commit_user_name}
+
+ {moment(commit_time).format('YYYY-MM-DD HH:mm')==="Invalid date"?"":moment(commit_time).format('YYYY-MM-DD HH:mm')}
+
+ }
+
+
+
}
+
+
+
+ {is_evaluation != true && project_info && project_info.name &&
+ }
+
+ {is_evaluation != true && work_members && !!work_members.length &&
+
+ 全部组员
+
+
+
+ 当前组员:{author_name} {is_leader_work && }
+
+
+ {isAdmin &&
+ 温馨提示:
+ 点击其他组员的姓名,可以快速评阅TA的作品
+
}
+
+
+
+ }
+
+
+
+ {/* task_type={datalist&&datalist.task_type} */}
+
{this.commonWorkAppraiseReply = ref}}
+ >
+
+
+
+
+
+ )
+ }
+}
+
+export default CommonWorkAppraise;
diff --git a/public/react/src/modules/courses/busyWork/CommonWorkList.js b/public/react/src/modules/courses/busyWork/CommonWorkList.js
index e5046a9d5..213c9ceb1 100644
--- a/public/react/src/modules/courses/busyWork/CommonWorkList.js
+++ b/public/react/src/modules/courses/busyWork/CommonWorkList.js
@@ -1,4 +1,4 @@
-import React,{Component} from "React";
+import React,{Component} from "react";
import { Form, Select, Input, Button,Checkbox,Upload,Icon,message,Modal, Table, Divider, Tag,DatePicker,Radio,Tooltip,Spin, Pagination} from "antd";
import {Link} from 'react-router-dom';
import locale from 'antd/lib/date-picker/locale/zh_CN';
diff --git a/public/react/src/modules/courses/busyWork/CommonWorkListTemplate.js b/public/react/src/modules/courses/busyWork/CommonWorkListTemplate.js
index 94f6cc05e..863093b5b 100644
--- a/public/react/src/modules/courses/busyWork/CommonWorkListTemplate.js
+++ b/public/react/src/modules/courses/busyWork/CommonWorkListTemplate.js
@@ -1,4 +1,4 @@
-import React,{Component} from "React";
+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';
@@ -73,7 +73,7 @@ class CommonWorkSetting extends Component{
lineHeight: '30px',
};
-
+
return(
{
@@ -102,12 +102,12 @@ class CommonWorkSetting extends Component{
- 作品列表
作业描述
参考答案
- 设置
@@ -119,7 +119,7 @@ class CommonWorkSetting extends Component{
-
+
}
@@ -132,4 +132,4 @@ class CommonWorkSetting extends Component{
}
const CommonWorkSettingForm = Form.create({ name: 'commonworkSettingForm' })(CommonWorkSetting);
-export default CommonWorkSettingForm;
\ No newline at end of file
+export default CommonWorkSettingForm;
diff --git a/public/react/src/modules/courses/busyWork/CommonWorkPost.js b/public/react/src/modules/courses/busyWork/CommonWorkPost.js
index ce552fa50..9a8e47daa 100644
--- a/public/react/src/modules/courses/busyWork/CommonWorkPost.js
+++ b/public/react/src/modules/courses/busyWork/CommonWorkPost.js
@@ -1,4 +1,4 @@
-import React,{Component} from "React";
+import React,{Component} from "react";
import { Form, Select, Input, Button,Checkbox,Upload,Icon,message,Modal,Tooltip} from "antd";
import {Link} from 'react-router-dom';
import axios from 'axios';
@@ -36,7 +36,7 @@ class CommonWorkPost extends Component{
selectobjct:undefined,
Loadtype:false,
-
+
limit:20,
memberNumMin: 2,
memberNumMax: 5,
@@ -44,7 +44,7 @@ class CommonWorkPost extends Component{
}
componentDidMount(){
- const studentWorkId = this.props.match.params.studentWorkId
+ const studentWorkId = this.props.match.params.studentWorkId
this.isEdit = !!studentWorkId
window.location.pathname.indexOf('post_edit') != -1
let coursesId=this.props.match.params.coursesId;
@@ -59,7 +59,7 @@ class CommonWorkPost extends Component{
url = `/student_works/${studentWorkId}/edit.json`
axios.get(url).then((response)=>{
if(response.data.course_id){
-
+
// TODO
// response.data.attachments
const _fileList = response.data.attachments.map(item => {
@@ -83,14 +83,14 @@ class CommonWorkPost extends Component{
memberNumMin: response.data.min_num,
memberNumMax: response.data.max_num,
})
- this.mine = _memebers.length ? _memebers[0] : null
+ this.mine = _memebers.length ? _memebers[0] : null
// 分组
// this.setState({
// task_status:checkedValues,
// selectmemberslist:selects
// })
this.props.form.setFieldsValue({
- description: response.data.description,
+ description: response.data.description,
}, () => {});
this.mdRef.current.setValue(response.data.description)
}
@@ -105,7 +105,7 @@ class CommonWorkPost extends Component{
user_name: response.data.user_name,
student_id: response.data.user_student_id,
group_name: response.data.group_name,
-
+
}
this.mine = mine
// const _memebers = response.data.members.slice(0);
@@ -207,7 +207,7 @@ class CommonWorkPost extends Component{
-
+
}
});
@@ -403,7 +403,7 @@ class CommonWorkPost extends Component{
}
searchList=(search,page,limit)=>{
-
+
let id=this.props.match.params.workId;
let workId=this.props.match.params.workId;
// let url="/graduation_tasks/"+id+"/graduation_works/search_member_list.json";
@@ -451,7 +451,7 @@ class CommonWorkPost extends Component{
funtaskstatus=(checkedValues)=>{
/**
- 比较 checkedValues 和 this.state.selectmemberslist
+ 比较 checkedValues 和 this.state.selectmemberslist
checkedValues length > this.state.task_status.length 是新增; 反之是删除
比较找到不同的id
去除重复的,checkedValues留下的是新增,task_status留下的是删除
@@ -472,7 +472,7 @@ class CommonWorkPost extends Component{
_selectmemberslist.push( this.state.members.filter(item => item.user_id == _checkedValues[0])[0])
} else if (_task_status.length) { // 删除
_.remove(_selectmemberslist, (item)=> item.user_id == _task_status[0])
- }
+ }
// let{members}=this.state;
@@ -526,13 +526,13 @@ class CommonWorkPost extends Component{
if (item.user_id == id) {
deleteOldMemberIndex = index;
return true
- }
+ }
})
if (deleteOldMemberIndex == -1) {
this.doDelete(id)
return;
} else {
-
+
}
}
@@ -619,7 +619,7 @@ render(){
const moduleName = this.props.getModuleName()
const moduleCHName = this.props.getModuleName(true)
const isGroup = this.props.isGroup()
-
+
return(
@@ -644,7 +644,7 @@ render(){
{/*{workslist&&workslist.task_name}*/}
{/*>*/}
{/**/}
-
+
{`${current_user ? current_user.real_name : ''} ${ this.isEdit ? '编辑' : '提交'}作品` }
@@ -667,7 +667,7 @@ render(){
.ant-upload-list-item:hover .ant-upload-list-item-info{
background-color:#fff;
}
-
+
.upload_1 .ant-upload-list {
width: 350px;
}
@@ -793,7 +793,7 @@ render(){
{item.user_name}{ item.user_name.length <= 5 && _is_leader && }
-
+
9 ? item.group_name : ''}
>{item.group_name}
@@ -801,9 +801,9 @@ render(){
title={item.student_id && item.student_id.length > 12 ? item.student_id : ''}
>{item.student_id}
{item.user_id != this.props.current_user.user_id ?
- this.delecttask_status(item.user_id)}>
:""}
-
+
)
})}
@@ -842,4 +842,4 @@ render(){
}
}
const CommonWorkPostApp = Form.create({ name: 'coursesNew' })(CommonWorkPost);
-export default CommonWorkPostApp;
\ No newline at end of file
+export default CommonWorkPostApp;
diff --git a/public/react/src/modules/courses/busyWork/CommonWorkQuestion.js b/public/react/src/modules/courses/busyWork/CommonWorkQuestion.js
index 04ff2a066..9318d3c15 100644
--- a/public/react/src/modules/courses/busyWork/CommonWorkQuestion.js
+++ b/public/react/src/modules/courses/busyWork/CommonWorkQuestion.js
@@ -1,4 +1,4 @@
-import React,{Component} from "React";
+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';
@@ -63,7 +63,7 @@ class CommonWorkQuestion extends Component{
on('commonwork_fetch_all', this.fetchAllListener)
}
componentWillUnmount() {
- off('commonwork_fetch_all', this.fetchAllListener)
+ off('commonwork_fetch_all', this.fetchAllListener)
}
fetchAllListener = () => {
this.fetchData()
@@ -81,10 +81,10 @@ class CommonWorkQuestion extends Component{
let category_id=this.props.match.params.category_id;
let task_Id=this.props.match.params.task_Id;
const isGroup = this.props.isGroup()
-
+
return(
-
+
{/* 内容区 */}
@@ -110,8 +110,8 @@ class CommonWorkQuestion extends Component{
{/*
(各小组必须在educoder平台创建项目)
*/}
}
-
-
+
+
{ homework_id && item.publish_time).map(item => {
-
+
if (disable_unified_setting == false && moment(item.publish_time) < moment()) {
// 已经有规则发不过了,不能修改统一设置
disable_unified_setting = true
@@ -140,12 +140,12 @@ class CommonWorkSetting extends Component{
init_evaluation_start: result.data.evaluation_start,
init_evaluation_end: result.data.evaluation_end,
init_appeal_time: result.data.appeal_time,
-
+
rules,
ta_proportion: result.data.ta_proportion * 100,
te_proportion: result.data.te_proportion * 100,
st_proportion: result.data.st_proportion * 100,
-
+
})
this.props.initWorkDetailCommonState && this.props.initWorkDetailCommonState( Object.assign({...result.data}, {
moduleName: '设置'
@@ -174,7 +174,7 @@ class CommonWorkSetting extends Component{
}
}
componentWillUnmount() {
- off('commonwork_fetch_all', this.fetchAllListener)
+ off('commonwork_fetch_all', this.fetchAllListener)
}
fetchAllListener = () => {
this.fetchData()
@@ -233,7 +233,7 @@ class CommonWorkSetting extends Component{
}
-
+
onChangeTimepublish= (date, dateString) => {
// console.log('startValue', dateString);
@@ -264,7 +264,7 @@ class CommonWorkSetting extends Component{
}
onChangeTimelatetime=(date, dateString)=>{
-
+
this.setState({
late_time: handleDateString(dateString)
})
@@ -340,7 +340,7 @@ class CommonWorkSetting extends Component{
const anonymous_appeal = e.target.checked
let appeal_time, appeal_penalty = this.state.appeal_penalty
const currentEndTime = this._getCurrentEndTime()
-
+
if (anonymous_appeal) {
appeal_penalty = 2
if (this.state.allow_late && this.state.late_time) {
@@ -511,7 +511,7 @@ class CommonWorkSetting extends Component{
let max_un_unified_setting_end_time = null;
rules.map(item => {
if (!max_un_unified_setting_end_time || moment(item.end_time) > moment(max_un_unified_setting_end_time)) {
- max_un_unified_setting_end_time = item.end_time;
+ max_un_unified_setting_end_time = item.end_time;
}
})
return max_un_unified_setting_end_time
@@ -523,11 +523,11 @@ class CommonWorkSetting extends Component{
let {assigngroups,hascommit,minnums,max_nums}=this.state;
const {homework_status, homework_id, homework_name, homework_type, publish_immediately, end_immediately
- ,
- publish_time, end_time,
- allow_late, late_penalty, late_time, work_public, score_open, answer_public, group_settings,
- anonymous_comment, anonymous_appeal, evaluation_start, evaluation_end, evaluation_num, absence_penalty, appeal_time,
- appeal_penalty, ta_mode, final_mode, te_proportion, ta_proportion, st_proportion,
+ ,
+ publish_time, end_time,
+ allow_late, late_penalty, late_time, work_public, score_open, answer_public, group_settings,
+ anonymous_comment, anonymous_appeal, evaluation_start, evaluation_end, evaluation_num, absence_penalty, appeal_time,
+ appeal_penalty, ta_mode, final_mode, te_proportion, ta_proportion, st_proportion,
unified_setting,
publish_time_type, end_time_type
} = this.state;
@@ -544,7 +544,7 @@ class CommonWorkSetting extends Component{
}
group_settings_param = result.rules.map(item => {
if (!max_un_unified_setting_end_time || moment(item.end_time) > moment(max_un_unified_setting_end_time)) {
- max_un_unified_setting_end_time = item.end_time;
+ max_un_unified_setting_end_time = item.end_time;
}
return {
group_id: item.course_group_id,
@@ -568,8 +568,8 @@ class CommonWorkSetting extends Component{
scrollTo('.publicTimeTip')
return false
}
-
- let temp_publish_time
+
+ let temp_publish_time
let temp_end_time
if (unified_setting) {
temp_publish_time = publish_time
@@ -584,14 +584,14 @@ class CommonWorkSetting extends Component{
} else {
temp_end_time = max_un_unified_setting_end_time
}
-
+
// 已发布的不检查
const isUnPublish= homework_status.indexOf(STATUS_UN_PUBLISH) != -1
const isAdmin = this.props.isAdmin()
const current = moment();
const publish_time_editable = isUnPublish;
const end_time_editable = isAdmin || !end_time || moment(end_time) > current;
-
+
if (unified_setting) {
if (publish_time_editable && temp_publish_time && moment(temp_publish_time) < moment()) {
this.setState({
@@ -700,7 +700,7 @@ class CommonWorkSetting extends Component{
this.setState({ appeal_penalty_tip: '' })
}
-
+
}
@@ -712,14 +712,14 @@ class CommonWorkSetting extends Component{
return false
}
- /**
+ /**
"group_settings": [
{
"group_id": [820, 821],
"publish_time": "2018-04-18 10:00:00",
"end_time": "2018-04-20 10:00:00"
},
- * */
+ * */
// axios
let course_id=this.props.match.params.coursesId;
const url = `/homework_commons/${workId}/update_settings.json`
@@ -735,18 +735,18 @@ class CommonWorkSetting extends Component{
late_time: late_time ? new Date(late_time) : late_time, // 补交截止时间
anonymous_comment: anonymous_comment, // true: 启用匿评 false:未启用匿评
evaluation_start: evaluation_start ? new Date(evaluation_start) : evaluation_start, //匿评开始时间
- evaluation_end: evaluation_end ? new Date(evaluation_end) : evaluation_end,
+ evaluation_end: evaluation_end ? new Date(evaluation_end) : evaluation_end,
evaluation_num: evaluation_num, // 匿评数
absence_penalty: absence_penalty, // 匿评扣分
anonymous_appeal: anonymous_appeal, // true: 启用匿评申诉, false:未启用
appeal_time: appeal_time ? new Date(appeal_time) : appeal_time, // 申诉结束时间
- appeal_penalty: appeal_penalty, // 违规匿评扣分
+ appeal_penalty: appeal_penalty, // 违规匿评扣分
ta_mode: ta_mode, // 1:普通模式 0:复审模式
final_mode: final_mode, // true: 单项评分优先, false: 多项评分配比
te_proportion: te_proportion / 100,
ta_proportion: ta_proportion / 100,
st_proportion: st_proportion / 100,
- work_public: work_public, //公开作品
+ work_public: work_public, //公开作品
score_open: score_open, // 公开成绩
answer_public: answer_public,
@@ -920,15 +920,15 @@ class CommonWorkSetting extends Component{
commenttimevalue,
homework_status, homework_id, homework_name, homework_type, publish_immediately, end_immediately, unified_setting, publish_time,
- end_time, allow_late, late_penalty, late_time, work_public, score_open, answer_public, group_settings,
- anonymous_comment, anonymous_appeal, evaluation_start, evaluation_end, evaluation_num, absence_penalty, appeal_time,
+ end_time, allow_late, late_penalty, late_time, work_public, score_open, answer_public, group_settings,
+ anonymous_comment, anonymous_appeal, evaluation_start, evaluation_end, evaluation_num, absence_penalty, appeal_time,
appeal_penalty, ta_mode, final_mode, te_proportion, ta_proportion, st_proportion, anonymous_comment_time_tip, appeal_time_tip,
final_mode_false_tip,
startEditFlag,
publish_time_type, end_time_type, rules, disable_unified_setting,
work_statuses, work_id,
accessoryVisible,
-
+
init_late_time, init_evaluation_start, init_evaluation_end, init_appeal_time
} =this.state;
@@ -971,7 +971,7 @@ class CommonWorkSetting extends Component{
const exportResultUrl = `/api/homework_commons/${workId}/works_list.xlsx`
const noAuth = !isAdmin || !startEditFlag;
return(
-
+
@@ -1004,7 +1004,7 @@ class CommonWorkSetting extends Component{
onToPublishClick={this.onToPublishClick}
>
+ isPublish={false} doWhenSuccess={this.doWhenSuccess}>
:
+ :
adaptered_group_settings && !!adaptered_group_settings.length &&
}
-
- {/*
+
+ {/*
flagPageEdit={flagPageEdit}
*/}
@@ -1148,7 +1148,7 @@ class CommonWorkSetting extends Component{
-
补交设置
+
补交设置
(选中,则允许学生延时提交作品)
@@ -1164,7 +1164,7 @@ class CommonWorkSetting extends Component{
(延时提交作品时,学生成绩将被扣减的分值)
{latepenaltytype===true?
{latepenaltyvalue}
:""}
-
+
结束时间:
{/*
@@ -1185,15 +1185,15 @@ class CommonWorkSetting extends Component{
// || moment(init_late_time) < moment()
disabled={!allow_late || noAuth }
disabledDate={disabledDateFunc}
- // disabledDate={ (late_time) =>
- // {
+ // disabledDate={ (late_time) =>
+ // {
// const end_time = this.state.end_time
- // if (!end_time || !late_time) { return false; }
- // return late_time < moment(end_time, dateFormat).add(-1, 'days'); }
+ // if (!end_time || !late_time) { return false; }
+ // return late_time < moment(end_time, dateFormat).add(-1, 'days'); }
// }
/>
-
+
(学生“延时”提交作品的时间截点)
{{latetimetype}
}
@@ -1207,7 +1207,7 @@ class CommonWorkSetting extends Component{
匿评设置
-
+
- // {
+ // disabledDate={ (evaluation_start) =>
+ // {
// const end_time = this.state.end_time
- // if (!end_time || !evaluation_start) { return false; }
- // return evaluation_start.valueOf() < moment(end_time, dateFormat).valueOf(); }
+ // if (!end_time || !evaluation_start) { return false; }
+ // return evaluation_start.valueOf() < moment(end_time, dateFormat).valueOf(); }
// }
/>
@@ -1268,11 +1268,11 @@ class CommonWorkSetting extends Component{
disabled={(anonymous_comment && !noAuth ? false : true) || moment(init_evaluation_end) < moment()}
disabledDate={disabledDateFunc}
- // disabledDate={ (evaluation_end) =>
- // {
+ // disabledDate={ (evaluation_end) =>
+ // {
// const evaluation_start = this.state.evaluation_start
- // if (!evaluation_start || !evaluation_end) { return false; }
- // return evaluation_end.valueOf() < moment(evaluation_start, dateFormat).valueOf(); }
+ // if (!evaluation_start || !evaluation_end) { return false; }
+ // return evaluation_end.valueOf() < moment(evaluation_start, dateFormat).valueOf(); }
// }
/>
@@ -1314,8 +1314,8 @@ class CommonWorkSetting extends Component{
{this.state.absence_penalty_tip &&
{this.state.absence_penalty_tip}
}
-
- { anonymous_comment &&
+
+ { anonymous_comment &&
-
+
允许学生对自己作品的匿评评分进行申诉,由教师和助教处理申诉
-
+
1、接受学生的合理申诉:
被申诉的评分记录无效,不参与最终成绩的计算
@@ -1340,12 +1340,12 @@ class CommonWorkSetting extends Component{
2、拒绝学生的不合理申诉:
被申诉的评分记录有效,不允许学生对该评分记录进行二次申诉
被申诉的评阅人的作品成绩,不会扣除违规匿评分
-
+
{/* (提交作品少于2个时,匿评开启将失败;请在作品数量达标后,重新进行匿评设置) */}
- {/* 启用匿评申述 结束时间: */}
+ {/* 启用匿评申述 结束时间: */}
结束时间:
{/*
@@ -1369,7 +1369,7 @@ class CommonWorkSetting extends Component{
/>
-
+
(学生提交匿评申诉的时间截点)
@@ -1398,13 +1398,13 @@ class CommonWorkSetting extends Component{
助教评分
-
+
普通模式(选中,则取各助教最终评分的平均分)
-
+
复审模式(选中,则只取最新的助教评分)
@@ -1423,7 +1423,7 @@ class CommonWorkSetting extends Component{
计算说明:
-
+
教师评分 * 其百分比 + 助教评分 * 其百分比 + 学生匿评平均分 * 其百分比 - (
迟交扣分 + 缺评扣分 * 缺评数 + 违规匿评扣分 * 违规匿评数 )
注意
@@ -1431,30 +1431,30 @@ class CommonWorkSetting extends Component{
评分选项上。
例:教师评分40% + 助教评分35% + 学生匿评25%,学生A没有教师评分记
录,则其最终成绩按照助教评分55% + 学生匿评45%进行计算
-
+
-
+
教师评分:
-
%
助教评分:
-
- %
+ %
学生匿评:
-
%
@@ -1465,7 +1465,7 @@ class CommonWorkSetting extends Component{
计算说明:
-
+
优先顺序排前的非零评分 * 100% -
( 迟交扣分 + 缺评扣分 * 缺评数 + 违规匿评扣分 * 违规匿评数 )
例:有教师评分则教师评分100%,否则教辅评分100%,依次类推
@@ -1477,11 +1477,11 @@ class CommonWorkSetting extends Component{
非零百分比的评分选项,在没有评分记录的情况下,其百分比平摊到另外的评
分选项上。例如:教师评分40% + 助教评分35% + 学生匿评25%,学生A没
有得到教师评分,则最终成绩将按照助教评分55% + 学生匿评45%进行计算 */}
-
+
-
+
教师评分 → 教辅评分 → 学生匿评评分
@@ -1526,10 +1526,10 @@ class CommonWorkSetting extends Component{
>取消
:""}
-
+
)
}
}
const CommonWorkSettingForm = Form.create({ name: 'commonworkSettingForm' })(CommonWorkSetting);
-export default CommonWorkSettingForm;
\ No newline at end of file
+export default CommonWorkSettingForm;
diff --git a/public/react/src/modules/courses/busyWork/common/LeaderIcon.js b/public/react/src/modules/courses/busyWork/common/LeaderIcon.js
index 7d56d1b24..9c61af569 100644
--- a/public/react/src/modules/courses/busyWork/common/LeaderIcon.js
+++ b/public/react/src/modules/courses/busyWork/common/LeaderIcon.js
@@ -1,11 +1,11 @@
-import React,{Component} from "React";
+import React,{Component} from "react";
export default function LeaderIcon(props = {}) {
let icon = null;
const { className, style } = props;
const _className = `font-8 blueFull Actionbtn ${className}`
if (props.small) {
- icon =
组长
} else {
icon =
组长
-
+
}
return icon
-}
\ No newline at end of file
+}
diff --git a/public/react/src/modules/courses/busyWork/common/TabRightComponents.js b/public/react/src/modules/courses/busyWork/common/TabRightComponents.js
index 25ae55203..f3fd6aaaf 100644
--- a/public/react/src/modules/courses/busyWork/common/TabRightComponents.js
+++ b/public/react/src/modules/courses/busyWork/common/TabRightComponents.js
@@ -1,4 +1,4 @@
-import React,{Component} from "React";
+import React,{Component} from "react";
import { Form, Select, Input, Button,Checkbox,Icon,message,Modal, Table, Divider, Tag,DatePicker,Radio,Tooltip} from "antd";
import {Link} from 'react-router-dom';
import { WordsBtn, MarkdownToHtml } from 'educoder';
@@ -22,7 +22,7 @@ class TabRightComponents extends Component{
this.publishModal = React.createRef();
this.endModal = React.createRef();
-
+
this.state={
accessoryVisible: false,
DownloadType:false,
@@ -110,18 +110,18 @@ class TabRightComponents extends Component{
let exportUrl = `/api/homework_commons/${workId}/works_list.zip`
const exportResultUrl = `/api/homework_commons/${workId}/works_list.xlsx`
-
+
return(
- {isAdmin ?
+ {isAdmin ?
项目在线质量检测*/}
{isAdmin && this.props.toEditPage(this.props.match.params, workId)}>编辑作业}
- :
+ :
{work_statuses && work_statuses.indexOf('提交作品') != -1 && { this.props.toWorkPostPage(this.props.match.params)}}
@@ -171,7 +171,7 @@ class TabRightComponents extends Component{
{work_statuses && work_statuses.indexOf('修改作品') != -1 && { this.props.toWorkPostPage(this.props.match.params, null, true, work_id)}}
>修改作品}
- {work_statuses && work_statuses.indexOf('补交附件') != -1 &&
+ {work_statuses && work_statuses.indexOf('补交附件') != -1 &&
{
let workId=this.props.match.params.workId;
-
+
if ( window.location.pathname.indexOf('appraise') == -1) {
let category_id= this.props.category.category_id;
this.props.toListPage(this.props.match.params, category_id)
} else {
- this.props.toWorkListPage(this.props.match.params, workId)
+ this.props.toWorkListPage(this.props.match.params, workId)
// this.props.match.params.category_id
}
// this.props.history.goBack()
@@ -67,7 +67,7 @@ class WorkDetailPageHeader extends Component{
let courseId=this.props.match.params.coursesId;
let category_id= category && category.category_id;
let category_name= category && category.category_name;
-
+
let workId=this.props.match.params.workId;
const studentWorkId = this.props.match.params.studentWorkId
@@ -108,7 +108,7 @@ class WorkDetailPageHeader extends Component{
typelist={homework_status}
typesylename={"mt3"}
/>
-
+
{category && 返回}
@@ -135,13 +135,13 @@ class WorkDetailPageHeader extends Component{
{ noTab !== true &&
- 作品列表
- 作业描述
- {view_answer == true && 参考答案}
@@ -149,9 +149,9 @@ class WorkDetailPageHeader extends Component{
className={`${childModuleName == '设置' ? 'active' : '' } `}
style={{paddingLeft:this.props.isAdmin()?'38px':'20px'}}
to={`/courses/${courseId}/${moduleEngName}/${workId}/setting`}>{this.props.isAdmin()?"设置":"得分规则"}
-
- { this.props.tabRightComponents }
+
+ { this.props.tabRightComponents }
}
@@ -169,4 +169,4 @@ class WorkDetailPageHeader extends Component{
}
}
-export default WorkDetailPageHeader;
\ No newline at end of file
+export default WorkDetailPageHeader;
diff --git a/public/react/src/modules/courses/exercise/Ecercisemount.js b/public/react/src/modules/courses/exercise/Ecercisemount.js
index 13a6128de..94d29eec4 100644
--- a/public/react/src/modules/courses/exercise/Ecercisemount.js
+++ b/public/react/src/modules/courses/exercise/Ecercisemount.js
@@ -1,4 +1,4 @@
-import React,{Component} from "React";
+import React,{Component} from "react";
import { Form, Select, Input, Button,Checkbox,DatePicker} from "antd";
import locale from 'antd/lib/date-picker/locale/zh_CN';
@@ -244,4 +244,4 @@ class Ecercisemount extends Component{
}
}
const EcercisemountApp = Form.create({ name: 'coursesNew' })(Ecercisemount);
-export default EcercisemountApp;
\ No newline at end of file
+export default EcercisemountApp;
diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTasksSubmitedit.js b/public/react/src/modules/courses/graduation/tasks/GraduationTasksSubmitedit.js
index bf371baab..7ac909958 100644
--- a/public/react/src/modules/courses/graduation/tasks/GraduationTasksSubmitedit.js
+++ b/public/react/src/modules/courses/graduation/tasks/GraduationTasksSubmitedit.js
@@ -1,4 +1,4 @@
-import React,{Component} from "React";
+import React,{Component} from "react";
import { Form, Select, Input, Button,Checkbox,Upload,Icon,message,Modal,Spin,Tooltip} from "antd";
import {Link} from 'react-router-dom';
import TPMMDEditor from '../../../tpm/challengesnew/TPMMDEditor';
diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTasksSubmitnew.js b/public/react/src/modules/courses/graduation/tasks/GraduationTasksSubmitnew.js
index 140d743b9..d505ba15d 100644
--- a/public/react/src/modules/courses/graduation/tasks/GraduationTasksSubmitnew.js
+++ b/public/react/src/modules/courses/graduation/tasks/GraduationTasksSubmitnew.js
@@ -1,4 +1,5 @@
-import React,{Component} from "React";
+import React,{Component} from "react";
+
import { Form, Select, Input, Button,Checkbox,Upload,Icon,message,Modal,Tooltip,Spin} from "antd";
import {Link} from 'react-router-dom';
import TPMMDEditor from '../../../tpm/challengesnew/TPMMDEditor';
@@ -852,4 +853,4 @@ render(){
}
}
const GraduationTasksSubmitnewApp = Form.create({ name: 'coursesNew' })(GraduationTasksSubmitnew);
-export default GraduationTasksSubmitnewApp;
\ No newline at end of file
+export default GraduationTasksSubmitnewApp;
diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTasksappraise.js b/public/react/src/modules/courses/graduation/tasks/GraduationTasksappraise.js
index 2f9b28ef5..bc99acf0b 100644
--- a/public/react/src/modules/courses/graduation/tasks/GraduationTasksappraise.js
+++ b/public/react/src/modules/courses/graduation/tasks/GraduationTasksappraise.js
@@ -1,4 +1,4 @@
-import React,{Component} from "React";
+import React,{Component} from "react";
import { Form, Select, Input, Button,Checkbox,Upload,Icon,message,Modal, Table, Divider, Tag} from "antd";
import {Link} from 'react-router-dom';
import { WordsBtn,markdownToHTML } from 'educoder';
@@ -330,7 +330,7 @@ class GraduationTasksappraise extends Component{
}
-
+
@@ -346,4 +346,4 @@ class GraduationTasksappraise extends Component{
}
}
-export default GraduationTasksappraise;
\ No newline at end of file
+export default GraduationTasksappraise;
diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTasksedit.js b/public/react/src/modules/courses/graduation/tasks/GraduationTasksedit.js
index 7458d0089..b530a4de6 100644
--- a/public/react/src/modules/courses/graduation/tasks/GraduationTasksedit.js
+++ b/public/react/src/modules/courses/graduation/tasks/GraduationTasksedit.js
@@ -1,4 +1,4 @@
-import React,{Component} from "React";
+import React,{Component} from "react";
import { Form, Select, Input, Button,Checkbox,Upload,Icon,message,Modal} from "antd";
import {Link} from 'react-router-dom';
import TPMMDEditor from '../../../tpm/challengesnew/TPMMDEditor';
@@ -436,7 +436,7 @@ class GraduationTasksedit extends Component{
.upload_1 .ant-upload-list {
width: 350px;
}
-
+
`}
取消*/}
取消
:"":""}
-
+
:""}
@@ -1305,4 +1305,4 @@ debugger
}
const GraduationTaskssetting = Form.create({ name: 'coursesNew' })(GraduationTaskssettingapp);
-export default GraduationTaskssetting;
\ No newline at end of file
+export default GraduationTaskssetting;
diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettinglist.js b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettinglist.js
index 43bb9ba0b..2c5049a3a 100644
--- a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettinglist.js
+++ b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettinglist.js
@@ -1,4 +1,4 @@
-import React,{Component} from "React";
+import React,{Component} from "react";
import { Form, Select, Input, Button,Checkbox,Upload,Icon,message,Modal,Pagination, Table, Divider, Tag,Tooltip} from "antd";
import {Link} from 'react-router-dom';
import {getImageUrl, NoneData, sortDirections} from 'educoder';
diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettingquestions.js b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettingquestions.js
index f87b0a53d..05e8d497b 100644
--- a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettingquestions.js
+++ b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettingquestions.js
@@ -1,4 +1,4 @@
-import React,{Component} from "React";
+import React,{Component} from "react";
import { Form, Select, Input, Button,Checkbox,Upload,Icon,message,Modal, Table, Divider, Tag} from "antd";
import {Link} from 'react-router-dom';
import { WordsBtn,markdownToHTML,AttachmentList} from 'educoder';
@@ -39,7 +39,7 @@ class GraduationTasksquestions extends Component{
try{
this.props.triggerRef(this)
}catch(e){
-
+
}
}
@@ -372,7 +372,7 @@ class GraduationTasksquestions extends Component{
diff --git a/public/react/src/modules/courses/members/studentsList.js b/public/react/src/modules/courses/members/studentsList.js
index 646573163..983a5009d 100644
--- a/public/react/src/modules/courses/members/studentsList.js
+++ b/public/react/src/modules/courses/members/studentsList.js
@@ -26,7 +26,7 @@ const buildColumns = (that,isParent) => {
let showSorter = isParent==true
const courseId = that.props.match.params.coursesId
const columns=[{
- title: '序号1',
+ title: '序号',
dataIndex: 'id',
key: 'id',
align:'center',
diff --git a/public/react/src/modules/courses/new/CoursesNew.js b/public/react/src/modules/courses/new/CoursesNew.js
index f9cea2da2..26dd31e3f 100644
--- a/public/react/src/modules/courses/new/CoursesNew.js
+++ b/public/react/src/modules/courses/new/CoursesNew.js
@@ -1,4 +1,4 @@
-import React, {Component} from "React";
+import React, {Component} from "react";
import {Form, Select, Input, Button, Checkbox, DatePicker,Spin,Icon,AutoComplete,InputNumber,Breadcrumb} from "antd";
import ApplyForAddOrgModal from '../../user/modal/ApplyForAddOrgModal';
import axios from 'axios';
@@ -686,8 +686,8 @@ class CoursesNew extends Component {
width: 65px !important;
background-color: #fafafa!important;
}
-
-
+
+
`
}
@@ -740,7 +740,7 @@ class CoursesNew extends Component {
width: 655px !important;
}
-
+
.yslzxueshiskmc .ant-input-group{
width: 704px !important;
}
@@ -798,7 +798,7 @@ class CoursesNew extends Component {
}
.yslzxueshi .ant-input-group {
width: 280px !important;
-
+
}
.yslzxueshi .ant-input-group-addon{
width: 44px !important;
@@ -984,4 +984,4 @@ class CoursesNew extends Component {
}
const WrappedCoursesNewApp = Form.create({name: 'coursesNew'})(CoursesNew);
-export default WrappedCoursesNewApp;
\ No newline at end of file
+export default WrappedCoursesNewApp;
diff --git a/public/react/src/modules/courses/new/Goldsubject.js b/public/react/src/modules/courses/new/Goldsubject.js
index f04bf1f4b..006f3f44f 100644
--- a/public/react/src/modules/courses/new/Goldsubject.js
+++ b/public/react/src/modules/courses/new/Goldsubject.js
@@ -1,4 +1,4 @@
-import React, {Component} from "React";
+import React, {Component} from "react";
import {Form, Select, Input, Button, Checkbox, DatePicker,Spin,Icon,AutoComplete,InputNumber,Breadcrumb} from "antd";
import ApplyForAddOrgModal from '../../user/modal/ApplyForAddOrgModal';
import axios from 'axios';
diff --git a/public/react/src/modules/courses/studentWork/StudentHomework.js b/public/react/src/modules/courses/studentWork/StudentHomework.js
index d7fcb9157..6cd3edf31 100644
--- a/public/react/src/modules/courses/studentWork/StudentHomework.js
+++ b/public/react/src/modules/courses/studentWork/StudentHomework.js
@@ -1,4 +1,4 @@
-import React,{Component} from "React";
+import React,{Component} from "react";
import { Form, Select, Input, Button,Checkbox,DatePicker} from "antd";
import locale from 'antd/lib/date-picker/locale/zh_CN';
@@ -243,4 +243,4 @@ class StudentHomework extends Component{
}
}
const StudentHomeworkApp = Form.create({ name: 'coursesNew' })(StudentHomework);
-export default StudentHomeworkApp;
\ No newline at end of file
+export default StudentHomeworkApp;