import React,{ Component } from "react"; import {Checkbox,Input,Table, Pagination} from "antd"; import {WordsBtn, sortDirections} from 'educoder' import moment from 'moment'; import CheckAllGroup from '../common/button/CheckAllGroup' import NoneData from "../coursesPublic/NoneData" import '../css/members.css' import '../css/busyWork.css' import './pollStyle.css' import axios from 'axios' const Search=Input.Search; function formatDuring(mss){ var days = parseInt(mss / (1000 * 60 * 60 * 24)); var hours = parseInt((mss % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); var minutes = parseInt((mss % (1000 * 60 * 60)) / (1000 * 60)); try { days = Math.abs(days); } catch (e) { } try { hours = Math.abs(hours); } catch (e) { } try { minutes = Math.abs(minutes); } catch (e) { } return days + "天" + hours + "小时" + minutes + "分"; } class PollDetailTabFirst extends Component{ constructor(props){ super(props); this.state={ order:"end_at", search:undefined, commit_status:[], poll_group_id:[], page:1, limit:20, dataInfo:undefined, data:undefined, poll_types:undefined, course_groups:undefined, options_Class:[], poll_end_at: "", order_type: "desc" } } // 搜索框搜索 inputStudent=(e)=>{ this.setState({ search:e.target.value }) } searchInfo=()=>{ let {order, search, commit_status, poll_group_id, page, order_type} = this.state; this.setState({ page:1 }) this.getTableList(order, search, commit_status, poll_group_id, 1, order_type); } // 获取接口数据 getTableList = (order, search, commit_status, poll_group_id, page, order_type) => { let pollId=this.props.match.params.pollId; let courseid=this.props.match.params.coursesId; let url=`/polls/${pollId}/poll_lists.json`; axios.get((url),{ params:{ limit:this.state.limit, order:order, search:search, commit_status:commit_status, poll_group_id:poll_group_id, page: page, order_type: order_type } }).then((result)=>{ if(result){ let list=[]; let users=result.data.poll_users; let{page,limit}=this.state; if(users.length!=0){ for(var i=0;i 0 ? formatDuring(t) : "0"; } this.setState({ poll_end_at:endTime, dataInfo:result.data.poll_users, data:list, poll_types:result.data.poll_types, course_groups:result.data.course_groups, options_Class:classes }) } }).catch((error)=>{ console.log(error); }) } componentDidMount(){ let {order, search, commit_status, poll_group_id, page, order_type} = this.state; this.getTableList(order, search, commit_status, poll_group_id, page, order_type); try { this.props.getpollssubcomRef(this); } catch (e) { } } // 翻页 changePage=(pageNumber)=>{ this.setState({ page:pageNumber }) let {order, search, commit_status, poll_group_id, order_type} = this.state; this.getTableList(order, search, commit_status, poll_group_id, pageNumber, order_type); } //排序 changeOrder = (order, order_type) => { this.setState({ order:order }) let {search,commit_status,poll_group_id,page}=this.state; this.getTableList(order, search, commit_status, poll_group_id, page, order_type); } //选择分班情况 classOptionsChange = (values,all) => { let status= all == false ? values : []; this.setState({ poll_group_id:status }) let {order, search, commit_status, page, order_type} = this.state; this.getTableList(order, search, commit_status, status, page, order_type); } //选择提交状态 statusOptionChange=(values,all)=>{ let status= all == false ? values : []; this.setState({ commit_status:status }) let {order, search, poll_group_id, page, order_type} = this.state; this.getTableList(order, search, status, poll_group_id, page, order_type); } //问卷table 列表塞选数据 table1handleChange = (pagination, filters, sorter) => { //"ascend" 升序 //"descend" 降序 if (JSON.stringify(sorter) === "{}") { //没有选择 } else { try { //学生学号排序 if (sorter.columnKey === "StudentNo") { if (sorter.order === "ascend") { //升序 this.setState({ order_type: "asc", order: "student_id", loadingstate: true, }); this.changeOrder("student_id", "asc"); } else if (sorter.order === "descend") { //降序 this.setState({ order_type: "desc", order: "student_id", loadingstate: true, }) this.changeOrder("student_id", "desc"); } } } catch (e) { } try { //提交时间排序 if (sorter.columnKey === "time") { if (sorter.order === "ascend") { //升序 this.setState({ order_type: "asc", order: "end_at", loadingstate: true, }) this.changeOrder("end_at", "asc"); } else if (sorter.order === "descend") { //降序 this.setState({ order_type: "desc", order: "end_at", loadingstate: true, }) this.changeOrder("end_at", "desc"); } } } catch (e) { } } } render(){ let {order,search,data,page,limit,course_groups,poll_types,options_Class,dataInfo,poll_end_at}=this.state; const isAdmin =this.props.isAdmin(); const isStudent = this.props.isStudent(); //分班 const options_status = [ { label: `未提交(${poll_types && poll_types.unanswer_users})`, value: '0' }, { label: `按时提交(${poll_types && poll_types.answer_users})`, value: '1' } ]; // 表格 let columns = [{ title: '序号', dataIndex: 'No', key: 'No', className:"edu-txt-center", width:120 }, { title: '姓名', dataIndex: 'name', key: 'name', className:"edu-txt-center", width:170 }, { title: '学号', dataIndex: 'StudentNo', key: 'StudentNo', className:"edu-txt-center", sorter: true, sortDirections: sortDirections, render:(StudentNo,item,index)=>{ return( item.StudentNo ? {item.StudentNo} : "--" ) } }, { title: '分班', key: 'classes', dataIndex: 'classes', width:220, className:poll_types && poll_types.groups_count > 0 ? "edu-txt-center":"edu-txt-center none", render:(classes,item,index)=>{ return( item.classes ? {item.classes} : -- ) } }, { title: '提交状态', dataIndex: 'status', key: 'status', className:"edu-txt-center", width:170, render:(status,item,index)=>{ return( item.status == 1 ?按时提交:未提交 ) } }, { title: '提交时间', dataIndex: 'time', key: 'time', className:"edu-txt-center", width:170, sorter: true, defaultSortOrder: 'descend', sortDirections: sortDirections, render:(time,item,index)=>{ return( item.time == null ? -- : moment(item.time).format('YYYY-MM-DD HH:mm') ) } },{ title: '操作', dataIndex: 'operation', key: 'operation', className:"edu-txt-center", width:120, render:(operation,item,index)=>{ return( item.status == 1 ? 查看:-- ) } }]; // 非课堂成员不显示学号列 let isNotMember =this.props.isNotMember(); if(isNotMember){ columns.some((item,key)=> { if (item.title === "学号") { columns.splice(key, 1) return true } } ) } // un_anonymous true为实名问卷,显示操作列,否则隐藏 if(poll_types && (isNotMember || poll_types.un_anonymous == false)){ columns.some((item,key)=> { if (item.title === "操作") { columns.splice(key, 1) return true } } ) } console.log(this.props.pollDetail&&this.props.pollDetail.polls_status) return(
{ isAdmin ? this.props.pollDetail&&this.props.pollDetail.polls_status===undefined||this.props.pollDetail&&this.props.pollDetail.polls_status===1?"":

{ course_groups && course_groups.length > 1 ?
:"" }
:"" } {this.props.pollDetail&&this.props.pollDetail.polls_status===undefined||this.props.pollDetail&&this.props.pollDetail.polls_status===1?"":
{ isAdmin ? {poll_types && poll_types.total_users}个检索结果({poll_types && poll_types.poll_users_count} 学生) :"" } { isStudent ? {poll_types && poll_types.answer_users===undefined?"":{poll_types && poll_types.answer_users} 已交} {poll_types && poll_types.unanswer_users===undefined?"":{poll_types && poll_types.unanswer_users} 未交} { poll_end_at != "0" ? 剩余提交时间:{poll_end_at} : "" } : "" } {/*{*/} {/* isAdmin && */} {/*
*/} {/*
  • */} {/* {order=="end_at"?"提交时间":"学生学号"}*/} {/*
      */} {/*
    • this.changeOrder("end_at")}>提交时间
    • */} {/*
    • this.changeOrder("student_id")}>学生学号
    • */} {/*
    */} {/*
  • */} {/*
    */} {/*}*/}
    }
    { data && data.length > 0 ?
    : }
    { poll_types && poll_types.total_users && poll_types.total_users > limit ?
    :"" }
    ) } } export default PollDetailTabFirst;