|
|
|
@ -88,7 +88,7 @@ function buildColumns(that, student_works, studentData) {
|
|
|
|
|
// width: '110px',
|
|
|
|
|
render: (text, record) => (
|
|
|
|
|
<div style={{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
overflow: 'hidden',
|
|
|
|
|
textOverflow: 'ellipsis',
|
|
|
|
|
whiteSpace: 'nowrap',
|
|
|
|
@ -97,7 +97,7 @@ function buildColumns(that, student_works, studentData) {
|
|
|
|
|
}} title={text && text.length > 5 ? text : ''}>
|
|
|
|
|
{/* <Tooltip placement="bottom" title={text}>
|
|
|
|
|
</Tooltip> */}
|
|
|
|
|
{record.is_leader ?
|
|
|
|
|
{record.is_leader ?
|
|
|
|
|
<div style={{ display: 'flex', 'flex-direction': 'column', 'align-items': 'center'}}>
|
|
|
|
|
<div >{text}</div>
|
|
|
|
|
<LeaderIcon></LeaderIcon>
|
|
|
|
@ -115,9 +115,9 @@ function buildColumns(that, student_works, studentData) {
|
|
|
|
|
sorter: true,
|
|
|
|
|
render: (text, record) => (
|
|
|
|
|
<span>
|
|
|
|
|
<a href="javascript:;"
|
|
|
|
|
title={text && text.length > 12 ? text : ''}
|
|
|
|
|
style={{color:'#9A9A9A', 'text-overflow': 'ellipsis', 'white-space': 'nowrap', 'width': '98px', display: 'block', overflow: 'hidden'
|
|
|
|
|
<a href="javascript:;"
|
|
|
|
|
title={text && text.length > 12 ? text : ''}
|
|
|
|
|
style={{color:'#9A9A9A', 'text-overflow': 'ellipsis', 'white-space': 'nowrap', 'width': '98px', display: 'block', overflow: 'hidden'
|
|
|
|
|
, margin: '0 auto', cursor: 'default'}}
|
|
|
|
|
>{record.student_id}</a>
|
|
|
|
|
</span>
|
|
|
|
@ -161,9 +161,10 @@ function buildColumns(that, student_works, studentData) {
|
|
|
|
|
|
|
|
|
|
render: (project_info, record) => (
|
|
|
|
|
<span>
|
|
|
|
|
{project_info && project_info.name && <a href={project_info.id == -1 ? 'javascript:void(0)' : `/projects/${project_info.id}`}
|
|
|
|
|
target={ project_info.id == -1 ? '' : "_blank" }
|
|
|
|
|
className="overflowHidden1" style={{color:'#4CACFF', width: that.state.anonymous_comment ? '80px' : '130px', margin: '0 auto', display: 'block'}} title={project_info.name}
|
|
|
|
|
{project_info && project_info.name &&
|
|
|
|
|
<a href={project_info.id == -1 ? 'javascript:void(0)' : `/projects/${project_info.id}`}
|
|
|
|
|
target={ project_info.id == -1 ? '' : "_blank" }
|
|
|
|
|
className="overflowHidden1" style={{color:'#4CACFF', width: that.state.anonymous_comment ? '80px' : '130px', margin: '0 auto', display: 'block'}} title={project_info.name}
|
|
|
|
|
>{project_info.name}</a>}
|
|
|
|
|
</span>
|
|
|
|
|
),
|
|
|
|
@ -201,12 +202,13 @@ function buildColumns(that, student_works, studentData) {
|
|
|
|
|
dataIndex: 'update_time',
|
|
|
|
|
key: 'update_time',
|
|
|
|
|
sorter: true,
|
|
|
|
|
defaultSortOrder: 'descend',
|
|
|
|
|
render: (update_time, record) => (
|
|
|
|
|
<span>
|
|
|
|
|
<a href="javascript:;" style={{color:'#989898', cursor: 'default'}}>{update_time ? moment(update_time).format('YYYY-MM-DD HH:mm') : '--'}</a>
|
|
|
|
|
</span>
|
|
|
|
|
),
|
|
|
|
|
}])
|
|
|
|
|
}])
|
|
|
|
|
if (!niPingAndIsStudent) {
|
|
|
|
|
columns.push({
|
|
|
|
|
width: 70,
|
|
|
|
@ -215,7 +217,7 @@ function buildColumns(that, student_works, studentData) {
|
|
|
|
|
dataIndex: 'teacher_score',
|
|
|
|
|
|
|
|
|
|
render: (teacher_score, record) => (
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<Tooltip title={ getScoreTip(teacher_score, teacher_score) }>
|
|
|
|
|
<span>
|
|
|
|
|
{ renderScore(teacher_score) }
|
|
|
|
@ -232,7 +234,7 @@ function buildColumns(that, student_works, studentData) {
|
|
|
|
|
/**
|
|
|
|
|
* 2名助教进行了评分
|
|
|
|
|
平均分:85.0分
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
render: (teaching_asistant_score, record) => (
|
|
|
|
|
<span>
|
|
|
|
@ -250,12 +252,11 @@ function buildColumns(that, student_works, studentData) {
|
|
|
|
|
),
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (that.state.anonymous_comment) {
|
|
|
|
|
/**
|
|
|
|
|
开启了匿评的才显示此列,悬浮TIP示例:
|
|
|
|
|
/**
|
|
|
|
|
开启了匿评的才显示此列,悬浮TIP示例:
|
|
|
|
|
3名学生进行了匿评
|
|
|
|
|
有效平均分:80.0分
|
|
|
|
|
*/
|
|
|
|
@ -265,7 +266,7 @@ function buildColumns(that, student_works, studentData) {
|
|
|
|
|
title: <div style={{color: 'rgba(0,0,0,.85)'}}>匿评评分</div>,
|
|
|
|
|
key: 'student_score',
|
|
|
|
|
dataIndex: 'student_score',
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
render: (student_score, record) => (
|
|
|
|
|
<span>
|
|
|
|
|
<Tooltip title={
|
|
|
|
@ -281,18 +282,18 @@ function buildColumns(that, student_works, studentData) {
|
|
|
|
|
</span>
|
|
|
|
|
),
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (that.state.anonymous_appeal) {
|
|
|
|
|
columns.push({
|
|
|
|
|
width: 70,
|
|
|
|
|
title: '匿评申诉',
|
|
|
|
|
key: 'appeal_all_count',
|
|
|
|
|
dataIndex: 'appeal_all_count',
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
render: (appeal_all_count, record) => (
|
|
|
|
|
<span>
|
|
|
|
|
{ !!appeal_all_count &&
|
|
|
|
|
{!!appeal_all_count &&
|
|
|
|
|
<Tooltip placement="bottom" title={`共有${appeal_all_count}条匿评申诉,${record.appeal_deal_count}条待处理`}>
|
|
|
|
|
<span style={{ minWidth: '30px', display: 'inline-block', textAlign: 'center' }}>
|
|
|
|
|
{`${record.appeal_deal_count}/${appeal_all_count}`}
|
|
|
|
@ -317,8 +318,8 @@ function buildColumns(that, student_works, studentData) {
|
|
|
|
|
getScoreTip(work_score,
|
|
|
|
|
<div>
|
|
|
|
|
<div>{`${record.user_name}(${record.user_login})`}</div>
|
|
|
|
|
{ record.ultimate_score ?
|
|
|
|
|
<div>最终调整成绩:{record.work_score}分</div> :
|
|
|
|
|
{record.ultimate_score ?
|
|
|
|
|
<div>最终调整成绩:{record.work_score}分</div> :
|
|
|
|
|
<div>
|
|
|
|
|
{ record.final_score && <div>作业评分:{record.final_score}分</div> }
|
|
|
|
|
{ record.late_penalty >= 0 && <div>迟交扣分:{record.late_penalty}分</div>}
|
|
|
|
@ -326,7 +327,7 @@ function buildColumns(that, student_works, studentData) {
|
|
|
|
|
{ record.appeal_penalty >= 0 && <div>违规匿评扣分:{record.appeal_penalty}分</div>}
|
|
|
|
|
<div>最终成绩:{record.work_score}分</div>
|
|
|
|
|
</div> }
|
|
|
|
|
</div>)
|
|
|
|
|
</div>)
|
|
|
|
|
}>
|
|
|
|
|
{ renderScore(work_score) }
|
|
|
|
|
</Tooltip>
|
|
|
|
@ -355,7 +356,7 @@ function buildColumns(that, student_works, studentData) {
|
|
|
|
|
{/* toWorkDetailPage */}
|
|
|
|
|
{/* /courses/"+courseId+"/common_homeworks/"+workId+ '/' + record.id +"/appraise */}
|
|
|
|
|
<a style={{color:'#4CACFF', marginLeft: '4px'}} href={"javascript:void(0)"} onClick={() => that.props.toWorkDetailPage(courseId, workId, record.id)} >{ isAdmin ? '评阅': '查看'}</a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
),
|
|
|
|
@ -388,7 +389,7 @@ class CommonWorkList extends Component{
|
|
|
|
|
task_status: [],
|
|
|
|
|
teacher_comment: [],
|
|
|
|
|
course_group_info: [],
|
|
|
|
|
arg_work_status: [],
|
|
|
|
|
arg_work_status: [],
|
|
|
|
|
arg_teacher_comment: [],
|
|
|
|
|
arg_course_group: [],
|
|
|
|
|
order: 'update_time',
|
|
|
|
@ -425,12 +426,12 @@ class CommonWorkList extends Component{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
componentWillUnmount() {
|
|
|
|
|
off('commonwork_fetch_all', this.fetchAllListener)
|
|
|
|
|
off('commonwork_fetch_all', this.fetchAllListener)
|
|
|
|
|
}
|
|
|
|
|
fetchAllListener = () => {
|
|
|
|
|
this.fetchList()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_getRequestParams() {
|
|
|
|
|
const {search, arg_work_status, arg_teacher_comment, arg_course_group, order, page, arg_member_work, b_order} = this.state
|
|
|
|
|
return {
|
|
|
|
@ -474,7 +475,6 @@ class CommonWorkList extends Component{
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
teacherCommentOptionChange = (values, isAllChecked) => {
|
|
|
|
|
this.setState({arg_teacher_comment: isAllChecked ? [] : values, page: 1}, () => {
|
|
|
|
@ -623,10 +623,10 @@ class CommonWorkList extends Component{
|
|
|
|
|
modulationModalVisible, work_statuses,
|
|
|
|
|
|
|
|
|
|
id, user_name, user_login, student_id, group_name, work_status, update_time, teacher_score, teaching_asistant_score, student_score,
|
|
|
|
|
ultimate_score, work_score, student_comment_count, appeal_all_count, appeal_deal_count,
|
|
|
|
|
ultimate_score, work_score, student_comment_count, appeal_all_count, appeal_deal_count,
|
|
|
|
|
late_penalty, absence_penalty, appeal_penalty
|
|
|
|
|
|
|
|
|
|
,end_immediately ,publish_immediately
|
|
|
|
|
, end_immediately, publish_immediately
|
|
|
|
|
, homework_id, visible, work_group, project_info, is_leader
|
|
|
|
|
} =this.state;
|
|
|
|
|
|
|
|
|
@ -706,7 +706,7 @@ class CommonWorkList extends Component{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const hasData = this.state.homework_status && this.state.homework_status.indexOf("未发布") == -1 // student_works && !!student_works.length && page == 1 &&
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// console.log(StudentData)
|
|
|
|
|
// console.log(student_works)
|
|
|
|
|
return(
|
|
|
|
@ -715,7 +715,7 @@ class CommonWorkList extends Component{
|
|
|
|
|
ref="checkCodeModal"
|
|
|
|
|
{...this.props}
|
|
|
|
|
></CheckCodeModal>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<AccessoryModal
|
|
|
|
|
{...this.props}
|
|
|
|
|
modalname={"补交附件"}
|
|
|
|
@ -737,9 +737,9 @@ class CommonWorkList extends Component{
|
|
|
|
|
Cancel={this.cancelModulationModel}
|
|
|
|
|
Saves={(value,num)=>this.saveModulationModal(value,num)}
|
|
|
|
|
/>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{/* 内容区 */}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{/* 内容区 */}
|
|
|
|
|
<style>{`
|
|
|
|
|
.ant-table-thead > tr > th, .ant-table-tbody > tr > td {
|
|
|
|
|
text-align: center;
|
|
|
|
@ -792,58 +792,12 @@ class CommonWorkList extends Component{
|
|
|
|
|
</React.Fragment>
|
|
|
|
|
}
|
|
|
|
|
</span>}
|
|
|
|
|
|
|
|
|
|
{/* { isAdminOrStudent && student_works && !!student_works.length && <div className="fr color-grey-6 edu-menu-panel">
|
|
|
|
|
<p style={{color: '#989898'}} className="color-grey-6"><a data-remote="true" className="font-12">
|
|
|
|
|
{order==="update_time"?"更新时间":order==="work_score"?"最终成绩":order==="student_id"?"学生学号":""}</a><i
|
|
|
|
|
className="iconfont icon-xiajiantou ml5 font-12 color-grey-6"></i></p>
|
|
|
|
|
<ul className="edu-menu-list" style={{ textAlign: 'center'}}>
|
|
|
|
|
<li onClick={(e)=>this.funorder("update_time")} ><a data-remote="true" className={order==="update_time"?"color-blue":""}>更新时间</a>
|
|
|
|
|
</li>
|
|
|
|
|
<li onClick={(e)=>this.funorder("work_score" )} ><a data-remote="true" className={order==="work_score"?"color-blue":""}>最终成绩</a>
|
|
|
|
|
</li>
|
|
|
|
|
<li onClick={(e)=>this.funorder("student_id" )} ><a data-remote="true" className={order==="student_id"?"color-blue":""}>学生学号</a>
|
|
|
|
|
</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</div> } */}
|
|
|
|
|
{/*{*/}
|
|
|
|
|
{/* isAdminOrStudent && student_works && !!student_works.length &&*/}
|
|
|
|
|
{/* <div className="fr">*/}
|
|
|
|
|
{/* <li className="drop_down">*/}
|
|
|
|
|
{/* <span className="color-grey-9 font-12">*/}
|
|
|
|
|
{/* {order==="update_time"?"更新时间":order==="work_score"?"最终成绩":order==="student_id"?"学生学号":""}*/}
|
|
|
|
|
{/* </span><i className="iconfont icon-xiajiantou font-12 ml2 color-grey-6"></i>*/}
|
|
|
|
|
{/* <ul className="drop_down_normal">*/}
|
|
|
|
|
{/* <li className={''} onClick={()=>this.funorder("update_time")}>更新时间</li>*/}
|
|
|
|
|
{/* <li className={''} onClick={()=>this.funorder("work_score")}>最终成绩</li>*/}
|
|
|
|
|
{/* <li className={''} onClick={()=>this.funorder("student_id")}>学生学号</li>*/}
|
|
|
|
|
{/* </ul>*/}
|
|
|
|
|
{/* </li>*/}
|
|
|
|
|
{/* </div>*/}
|
|
|
|
|
{/*}*/}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
</div> }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{/*
|
|
|
|
|
"commit_count": 10, //已交数(学生身份)
|
|
|
|
|
"uncommit_count": 12, //未交数(学生身份)
|
|
|
|
|
"left_time": { //学生身份剩余的时间和状态
|
|
|
|
|
"status": "剩余补交时间",
|
|
|
|
|
"time": "24 天 24分 23秒"
|
|
|
|
|
},
|
|
|
|
|
*/}
|
|
|
|
|
{/* { isStudent && <div id="graduation_work_list" style={{padding:'10px 30px 10px 40px'}}>
|
|
|
|
|
<div className="clearfix">
|
|
|
|
|
<span className="fl color-grey-6 font-12">
|
|
|
|
|
<span className="color-orange-tip">{commit_count}</span>已交 {uncommit_count}未交 剩余提交时间:
|
|
|
|
|
<span className="color-orange-tip">{left_time.time}</span>
|
|
|
|
|
</span>
|
|
|
|
|
</div>
|
|
|
|
|
</div> } */}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<style>{`
|
|
|
|
|
.workListContent .ant-table-thead > tr > th {
|
|
|
|
|
border-bottom: none;
|
|
|
|
@ -882,22 +836,15 @@ class CommonWorkList extends Component{
|
|
|
|
|
<Spin size="large" spinning={this.state.isSpin}>
|
|
|
|
|
<div id="forum_list" className="forum_table">
|
|
|
|
|
<div className="mh650 edu-back-white">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<NoneData></NoneData>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</Spin>
|
|
|
|
|
:
|
|
|
|
|
<React.Fragment>
|
|
|
|
|
{/* pagination={work_count > PAGE_SIZE ? { //分页
|
|
|
|
|
total: work_count, //数据总数量
|
|
|
|
|
pageSize: PAGE_SIZE, //显示几条一页
|
|
|
|
|
current: page,
|
|
|
|
|
} : false}
|
|
|
|
|
|
|
|
|
|
onChange={this.onTablePagination}
|
|
|
|
|
*/}
|
|
|
|
|
<Table
|
|
|
|
|
|
|
|
|
|
<Table
|
|
|
|
|
className="stageTable"
|
|
|
|
|
dataSource={student_works}
|
|
|
|
|
columns={columns}
|
|
|
|
@ -912,7 +859,7 @@ class CommonWorkList extends Component{
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
{work_count > PAGE_SIZE && <Pagination
|
|
|
|
|
{work_count > PAGE_SIZE && <Pagination
|
|
|
|
|
style={{ textAlign: 'center', marginBottom: '20px' }}
|
|
|
|
|
showQuickJumper pageSize={PAGE_SIZE} onChange={this.onTablePagination} current={page} total={work_count} />}
|
|
|
|
|
|
|
|
|
@ -925,4 +872,4 @@ class CommonWorkList extends Component{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const CommonWorkListForm = Form.create({ name: 'commonworkListForm' })(CommonWorkList);
|
|
|
|
|
export default CommonWorkListForm;
|
|
|
|
|
export default CommonWorkListForm;
|
|
|
|
|