dev_cs
杨树林 5 years ago
parent 2988dd57ff
commit 745a9da710

@ -497,8 +497,7 @@ class EcCompletionCalculation extends Component {
</p>
{ Spintype===true?<Spin className="Spinlarge" indicator={<Icon type="loading" style={{ fontSize: 30 }} spin />}/>:"" }
{ target_list.length===0&&Spintype===false?
<li className={ "clearfix newtarget_scoreclass lipadding10im"}>
<span className="column-1 color-05101A">--</span>

@ -1,656 +0,0 @@
import React, { Component } from 'react';
import { BrowserRouter as Router, Route, Link, Switch } from "react-router-dom";
import classNames from 'classnames'
import axios from 'axios';
import { TPMIndexHOC } from '../../../tpm/TPMIndexHOC';
import { SnackbarHOC } from 'educoder'
import { Select,message,Modal,Input,Spin,Icon,Tooltip } from 'antd';
import EcTitleCourseEvaluations from '../../ecTitle/ecTitle'
import 'antd/dist/antd.css';
import '../../css/ecCourseSupports.css';
const $ = window.$;
class EcCourseSupports extends Component {
constructor(props) {
super(props)
this.state={
data:'',
ec_courses_list:[],
editcourse:[{"weigths": 0,
"ec_course_name":'',
"top_relation": false,
"ec_course_id":''
}],
editnum:0,
index:0,
ec_graduation_subitem_id:0,
ec_year_id:0,
schooldata:{},
spinning:true,
ecComponentState:'EcCourseSupports',
supportid:null,
Editkey:null,
titlemessage:"提示",
Supportstype:false,
Supportslist:'',
Supportssum:false,
Supportsclass:false
}
}
componentWillMount(){
this.setState({
ec_year_id:this.props.match.params.ec_year_id,
major_school_id:this.props.match.params.major_school_id
})
window.document.title = '课程体系 vs 毕业要求';
}
UpdateClassData=()=>{
let ec_year_id=this.props.match.params.ec_year_id;
this.setState({
ec_year_id:ec_year_id
})
const jol =`/ec_major_schools/get_navigation_data?ec_year_id=`+ec_year_id;
axios.get(jol, {
withCredentials: true,
})
.then((response) => {
if(response.status===200){
// if(response.data.allow_visit===false){
// window.location.href="/403"
// }
this.setState({
schooldata:response.data
})
}
})
.catch(function (error) {
console.log(error);
});
const url = `/ec_course_supports?ec_year_id=`+ec_year_id;
axios.get(url, {
withCredentials: true,
})
.then((response) => {
if(response.status===200){
this.setState({
data:response.data
})
}
if(response.data.course_support_data.length===0){
this.setState({
Supportstype:true,
Supportslist:'数据为空,请去毕业要求——>毕业要求指标点分解列表配置数据'
})
}
})
.catch(function (error) {
console.log(error);
});
// this.setState({
// data:{course_count: 14,
// course_support_data: [
// {course_data: [{
// name: "军事课堂",
// top_relation: true,
// weigths: 0.1
// }, {
// name: "大学生心理健康教育",
// top_relation: true,
// weigths: 0.2
// }],
// ec_graduation_subitem_id: 2,
// num_total: 2,
// sequence_num: "1-1",
// weights_total: 0.30000000000000004,
// },
// ],
// course_url: "/ec_major_schools/1/academic_years/1/ec_course_setting",
// ec_year_id: 1,
// max_support_count: 12,
// subitems_count: 7,
// subitems_url: "/ec_major_schools/1/academic_years/1/graduation_requirement"
// }
// })
}
componentDidMount(){
this.setState({
ec_year_id:this.props.match.params.ec_year_id,
major_school_id:this.props.match.params.major_school_id
})
this.UpdateClassData();
}
EditSupportCourse=(key,e)=>{
$('#school_major_list').scrollLeft(0);
let id=e.target.id;
id=parseInt(id);
let subindex =e.target.getAttribute("subindex");
const url = `/ec_course_supports/edit_require_vs_course?subitem_id=`+id
axios.get(url, {
withCredentials: true,
})
.then((response) => {
if(response.status===200){
var support_data;
if(response.data.edit_support_data.length>0){
support_data=response.data.edit_support_data;
}else if(response.data.edit_support_data.length===0){
support_data=[{weights: 0,top_relation: false,ec_course_name:'',ec_course_id:''}];
}
this.setState({
ec_courses_list:response.data.ec_courses_list,
editcourse:support_data,
index:subindex,
ec_graduation_subitem_id:id,
Supportssum:false,
Supportsclass:false,
})
let {editcourse} =this.state;
let neweditcourse=editcourse;
let newnum=0;
for(var j=0;j<neweditcourse.length;j++){
if(neweditcourse[j].weigths===undefined){
newnum=0
}else{
newnum=newnum+neweditcourse[j].weigths;
}
}
newnum= Math.round(newnum*100)/100;
this.setState({
editnum:newnum
})
}
})
.catch(function (error) {
console.log(error);
});
this.setState({
Editkey:key
})
// $("#school_ListTableLine").show();
// let offsettop=$("#school_ListTableLine").position().top||$("#school_ListTableLine").scrollTop || $("#school_ListTableLine").pageYOffset;
// window.scrollTo(0, offsettop)
}
Addcourse=(e)=>{
let {editcourse} =this.state;
let neweditcourse=editcourse;
let newadd = {weigths: 0,top_relation: false,ec_course_name:'',ec_course_id:''};
neweditcourse.push(newadd);
this.setState({
editcourse:neweditcourse
})
}
editcourse=(neweditcourse)=>{
this.setState({
editcourse:neweditcourse
})
}
Deletcourse=(e)=>{
// 删除
// let id =e.target.getAttribute("index");
let {editcourse} = this.state;
let neweditcourse=editcourse;
neweditcourse.splice(e,1);
let newnum=0;
for(var j=0;j<neweditcourse.length;j++){
if(neweditcourse[j].weigths===undefined){
newnum=0
}else{
newnum=newnum+neweditcourse[j].weigths;
}
}
newnum= Math.round(newnum*100)/100;
this.setState({
Supportstype:false,
supportid:null,
Supportslist:"",
editcourse:neweditcourse,
editnum:newnum
})
}
enterweight=(e)=>{
let {editcourse} = this.state;
let neweditcourse=editcourse;
var id=e.target.id;
var value=parseFloat(e.target.value);
if(isNaN(value)){
value=""
}
var x = String(value).indexOf('.') + 1;
var y = String(value).length - x;
if(y > 2){
this.setState({
// Supportstype:true,
Supportslist:'请精确到2位数',
Supportssum:true
})
return
}
const person = new Object ();
person.weigths=value;
person.ec_course_id= neweditcourse[id].ec_course_id;
person.ec_course_name=neweditcourse[id].ec_course_name;
person.top_relation=neweditcourse[id].top_relation;
neweditcourse[id]=person;
let newnum=0;
for(var j=0;j<neweditcourse.length;j++){
if(neweditcourse[j].weigths===undefined){
newnum=newnum+0;
}else if(neweditcourse[j].weigths===""){
newnum=newnum+0;
}else{
newnum=newnum+neweditcourse[j].weigths;
}
}
newnum= Math.round(newnum*100)/100;
this.setState({
editnum:newnum,
editcourse:neweditcourse
})
if(newnum>1){
this.setState({
// Supportstype:true,
Supportslist:'权重之和不能大于1',
Supportssum:true
})
}
}
handleChange=(e)=> {
let {editcourse} = this.state;
let value=`${e[0]}`;
value=parseInt(value)
let neweditcourse=editcourse;
let num=`${e[1]}`;
num=parseInt(num)
for(var z=0;z<editcourse.length;z++){
if(neweditcourse[z].ec_course_name===`${e[2]}`){
this.setState({
Supportstype:true,
Supportslist:"请勿选择重复的支持课程"
})
return
}
}
for(var i=0;i<1;i++){
neweditcourse[num].ec_course_id=value;
neweditcourse[num].ec_course_name=`${e[2]}`
}
this.editcourse(neweditcourse);
}
relevancetop=(e)=>{
let {editcourse} = this.state;
let neweditcourse=editcourse;
let id =e.target.getAttribute("itindex");
for(var i=0;i<1;i++){
neweditcourse[id].top_relation=false;
}
this.editcourse(neweditcourse);
}
relevancebottom=(e)=>{
let {editcourse} = this.state;
let neweditcourse=editcourse;
let id =e.target.getAttribute("itindex");
for(var i=0;i<1;i++){
neweditcourse[id].top_relation=true;
}
this.editcourse(neweditcourse);
}
focus() {
this.inputNumberRef.focus();
}
blur() {
this.inputNumberRef.blur();
}
CancelSupports=()=>{
this.setState({
Editkey:null,
Supportssum:false,
Supportsclass:false,
})
}
SubmitClassData=()=>{
let {editcourse,editnum,ec_graduation_subitem_id,ec_year_id} = this.state;
if(editcourse.length===0){
this.setState({
// Supportstype:true,
Supportslist:'保存失败,至少保留一个课程',
Supportssum:true
})
return
}
if(editnum>1||editnum===0){
this.setState({
// Supportstype:true,
Supportslist:'保存失败,权重大于1或为空',
Supportssum:true
})
return
}
for(var p=0; p<editcourse.length;p++){
if(editcourse[p].weigths===""){
editcourse[p].weigths=0;
}
if(editcourse[p].ec_course_id===""){
this.setState({
// Supportstype:true,
Supportslist:'保存失败,课程不能为空',
Supportsclass:true
})
return
}
}
var Url = '/ec_course_supports';
axios.post(Url, {
ec_year_id: ec_year_id,
ec_graduation_subitem_id:ec_graduation_subitem_id,
course: editcourse
},
{
withCredentials: true
}
).then((response) => {
if(response.data.status===0){
this.setState({
Editkey:null,
Supportslist:response.data.messsage,
Supportstype:true,
Supportssum:false,
Supportsclass:false,
})
this.UpdateClassData();
}else if(response.data.status===-1){
this.setState({
Supportslist:"参数错误",
Supportstype:true,
Supportssum:false,
Supportsclass:false,
})
}
}).catch((error) => {
console.log(error)
})
}
Deletcourses=(key)=>{
this.setState({
supportid:key,
Supportslist:"您确定要删除吗?",
Supportstype:true
})
}
hideSupports=()=>{
this.setState({
Supportstype:false,
supportid:null,
Supportslist:"",
})
}
render() {
const Option = Select.Option;
let {data,ec_courses_list,editcourse,editnum,index,ec_year_id,schooldata,ecComponentState,hidesupport,supportid,Editkey,titlemessage,Supportstype,Supportslist,Supportssum,Supportsclass,major_school_id} = this.state;
var list = (length) => {
var res = [];
for(var i = 0; i < length; i++) {
res.push( <span key={i} className="column-1 color-666">
<div style={{lineHeight: '20px'}}>支撑课程
<br/> 权值
</div>
</span>)
}
return res
}
return (
<div className="newMain clearfix">
<Modal
title={titlemessage}
// Supportstype
visible={Supportstype}
className={"ecmodeldelet"}
closable={false}
footer={null}
>
<div className="task-popup-content">
<div className="task-popup-text-center font-14">{Supportslist}</div>
</div>
<div className="task-popup-submit clearfix">
<a onClick={this.hideSupports} className="task-btn fl">取消</a>
{ supportid===null?<a className="task-btn task-btn-orange fr"
onClick={this.hideSupports}
>确定</a>:
<a className="task-btn task-btn-orange fr"
onClick={()=>this.Deletcourse(supportid)}
>确定</a>}
</div>
</Modal>
<div className="educontent mb290">
<EcTitleCourseEvaluations
{...this.props}
schooldata={schooldata}
ecComponentState={ecComponentState}
ecpath={"requirement_vs_courses"}
/>
<div className="edu-back-white eacourse">
<div className="clearfix padding20-30 bor-bottom-greyE" style={{position:'relative'}}>
<span className="font-18 courseSystem">课程体系对毕业要求的支撑</span>
{/* <a href="javascript:void(0)" className="fr white-btn edu-blueback-btn mt4">导出培养目标</a> */}
<span className={data.is_manager===false?"none":"Importclassroomdata"} style={{top: '29px'}}>
<a className="white-btn edu-blueback-btn fr mb10 mr10" target="_blank" href={'/ec_major_schools/'+major_school_id+'/academic_years/'+ec_year_id+'/export_course_requirements?format=xls'}>导出课程体系支撑矩阵</a>
</span>
<div className="color-grey-9 mr10">用矩阵图的形式说明本专业课程体系对毕业要求的支撑关系 <a className={"color-blue"} onClick={() => window.elasticLayer(3534)} >查看详情</a></div>
</div>
<div className="padding20-30" id="training_objective_contents">
<span className="fl SystemParameters" >毕业要求指标点<a href={data.subitems_url}><span className="Systemnum">{data.subitems_count}</span></a></span>
<span className="fl ml20 SystemParameters">课程体系<a href={data.course_url}><span className="Systemnum">{data.course_count}</span></a></span>
</div>
</div>
<div className="ListTableLine" id="school_major_list" style={{overflow:'auto'}}>
<p className="clearfix" style={{width: 120*data.max_support_count>1200? 140*data.max_support_count : 1200+"px"}}>
<span className="color-666 finishtarget">毕业要求指标点</span>
{list(data.max_support_count<5||data.max_support_count===undefined?5:data.max_support_count)}
<span className="column-1 operationright color-666"
style={{
paddingLeft: '28px'
}}
>合计</span>
</p>
<div className="paddingLF" style={{background:'#fff'}}>
{
data.course_support_data===undefined? <Spin delay={500} className="Spinlarge" indicator={<Icon type="loading" style={{ fontSize: 30 }} spin />}/>:data.course_support_data.map((item,key)=>{
return (
<li className={data.course_support_data.length===key+1?"clearfix mb10":"clearfix"} key={key} style={{width: 120*data.max_support_count > 1134 ? 136*data.max_support_count : 1134+"px",margin: '0px 0px'}}>
<Tooltip placement="bottom" title={item.sequence_title}>
<span className="column-1 columnlocation" style={{display:Editkey!=key?"block":'none',width: '95px', paddingLeft: '23px'}}>{item.sequence_num}</span>
</Tooltip>
{
item.course_data.map((t,kes)=>{
return(
<span key={kes} className="column-1"
style={{
display:Editkey!=key?"block":'none',
marginRight: '-1px'
}}>
<div data-tip-down={t.name} className={t.top_relation===true?"DDred columnbox":"columnbox"}
style={{textAlign: 'center'}}
>{t.name.length>12?t.name.substring(0, 10)+"...":t.name}</div>
<div className={t.top_relation===true?"DDred":""}
style={{textAlign: 'center'}}
>{t.weigths}</div>
</span>
)
})
}
<span className="column-1 operationright" style={{display:Editkey!=key?"block":'none',width:'75px'}}>
<div className="operationColumn">
<div className="left">
<div className="width20 columnbox">{item.num_total===0?" ":item.num_total}</div>
<div className="width20">{Math.round(item.weights_total*100)/100===0?" ":(Math.round(item.weights_total*100)/100)}</div>
</div>
<div className="left operationalter">
{data.is_manager===false?"":<a className="editSubentry" data-tip-down="编辑">
<i className="iconfont icon-bianjidaibeijing color-green" id={item.ec_graduation_subitem_id} subindex={item.sequence_num} onClick={this.EditSupportCourse.bind(this,key)}></i>
</a>}
</div>
</div>
</span>
<p className="ListTableLine" id="school_ListTableLine" style={{width: '1134px',display:Editkey===key?"block":'none'}} >
<p className="clearfix SystemModifythelist">
<span className="ml6" style={{width:'77px'}}>指标点 {index}</span>
<span className="column-4">支撑课程</span>
<span className="column-2 ml93">
<span> 权重(=1)</span>
<span className="Systempoint">精确到两位小数</span>
</span>
<span className="column-1 ml50">关联度最高</span>
</p>
<div className="clearfix editorModify">
{
editcourse.map((it,key)=>{
return(
<div className="mb15" key={key}>
<Select className={Supportsclass===true?"bor-red heightimportant":"heightimportant"} showSearch value={it.ec_course_name} onChange={this.handleChange}>
{
ec_courses_list.map((qva,qk)=>{
return(
<Option value={[qva.id,key,qva.name]} key={qk}>{qva.name}</Option>
)
})
}
</Select>
<Input
type="number"
size="large"
className={Supportssum===true?"inputWeight bor-red":"inputWeight"}
id={key}
value={it.weigths}
onInput={this.enterweight.bind(this)}
/>
<div className="SetTheAssociated">
<div className="SetTheAssociatedchild">
<i className="iconfont icon-gouxuan gouxuanbule" style={{display:it.top_relation===false?'none':'block'}} itindex={key} onClick={this.relevancetop.bind(this)}></i>
<i className="iconfont icon-gouxuan gouxuanwhite" style={{display:it.top_relation===false?'block':'none'}} itindex={key} onClick={this.relevancebottom.bind(this)}></i>
</div>
<div className="left operatebutton">
<a className="mr15 delSubentry" data-tip-down="删除">
<i className="iconfont icon-shanchu color-grey-c font-15" onClick={()=>this.Deletcourses(key)}></i>
</a>
<a className="newAddSubentry" data-tip-down="添加"
style={{display:key===editcourse.length-1?"inline-block":'none'}}
><i className="iconfont icon-tianjiafangda color-green" onClick={this.Addcourse}></i></a>
</div>
</div>
</div>
)
})
}
</div>
<span className="c_red none ml35" id="error_tip" style={{display:Supportssum===true||Supportsclass===true?'inline':'none'}}>{Supportslist}</span>
<div className="clearfix editorModify">
<span className="column-1"
style={{
width: '580px',
paddingLeft: '37px',
display: 'inline-block'
}}
>合计: <span>{editcourse.length}</span></span>
<span className="ml30">合计: <span>{editnum}</span></span>
</div>
<div className="right editglybuttonboxs">
<div className="defalutSubmitbtn fr" onClick={this.SubmitClassData}>保存</div>
<div className="defalutCancelbtn fr mr20" onClick={this.CancelSupports}>取消</div>
</div>
</p>
</li>
)
})
}
</div>
</div>
</div>
</div>
);
}
}
export default SnackbarHOC() ( TPMIndexHOC ( ecCourseSupports ) );

@ -0,0 +1,430 @@
import React, { Component } from 'react';
import axios from 'axios';
import { Spin } from 'antd';
import { TPMIndexHOC } from '../../../tpm/TPMIndexHOC';
import { SnackbarHOC } from 'educoder'
import { Pagination,Upload,Modal,Checkbox } from 'antd';
import EcTitleCourseEvaluations from '../../ecTitle/ecTitle'
import 'antd/dist/antd.css';
import './ecStudentList.css';
const $ = window.$;
class EcStudentList extends Component {
constructor(props) {
super(props)
this.state={
schooldata:{},
majorschoollist:undefined,
titlemessage:"提示",
ecComponentState:"ecStudentList",
visible:false,
Modallist:'',
Modallisttypes:0,
studentall:false,
student_id:undefined,
Modallisttypess:0,
ismanager:false,
isSpin:false
}
}
componentDidMount(){
window.document.title = '学生列表';
let major_id=this.props.match.params.major_id;
let year_id=this.props.match.params.year_id;
const jol =`/ec_major_schools/get_navigation_data?ec_year_id=`+year_id;
axios.get(jol, {
withCredentials: true,
}).then((response) => {
if(response.status===200){
// if(response.data.allow_visit===false){
// window.location.href="/403"
// }
this.setState({
schooldata:response.data
})
}
})
.catch(function (error) {
console.log(error);
});
const url ='/ec_major_schools/'+major_id+'/academic_years/'+year_id+'/student_lists_data';
axios.get(url, {
withCredentials: true,
}).then((response) => {
if(response.status===200){
this.setState({
majorschoollist:response.data,
ismanager:response.data.ismanager,
})
}
})
.catch(function (error) {
console.log(error);
});
// let majorschoollist={
// ec_students: [{index: 1, student_name: "同意", student_id: "s20111458"},
// {index: 1, student_name: "同意", student_id: "s20111458"},
// {index: 2, student_name: "涛哥", student_id: "2011554f4"},
// {index: 3, student_name: "例如", student_id: "20154787b"},
// {index: 4, student_name: "问问", student_id: "201548580014"},
// {index: 5, student_name: "嗯嗯", student_id: "2015748912321234"},
// {index: 6, student_name: "让人", student_id: "20157456"},
// {index: 7, student_name: "方法", student_id: "20159658"},
// {index: 8, student_name: "全球", student_id: "20159632"},
// {index: 9, student_name: "是说", student_id: "20154512"},
// {index: 10, student_name: "谷歌", student_id: "20157932"},
// {index: 11, student_name: "版本", student_id: "20159635"},
// {index: 12, student_name: "捏捏", student_id: "20153451"},
// ],
// import_url: "/ec_major_schools/3/academic_years/10/import_students",
// show_name: true,
// template_url: "/attachments/download/227528/01_学生列表导入模板.xls",
// total_page: 1
// }
// this.setState({
// majorschoollist:majorschoollist
// })
}
uploadcomponentDidMount(){
let major_id=this.props.match.params.major_id;
let year_id=this.props.match.params.year_id;
const url ='/ec_major_schools/'+major_id+'/academic_years/'+year_id+'/student_lists_data';
axios.get(url, {
withCredentials: true,
}).then((response) => {
if(response.status===200){
this.setState({
majorschoollist:response.data,
ismanager:response.data.ismanager,
})
}
})
.catch(function (error) {
console.log(error);
});
}
windowsgoblack=()=>{
window.history.go(-1)
}
uploadfile=(file)=>{
this.setState({isSpin:true})
let {majorschoollist}=this.state;
let Url =majorschoollist.import_url;
const form = new FormData();
form.append('file', file.file);
axios.post(Url,form
).then((response) => {
if(response.data.status===1){
// message.success('已成功导入'+response.data.count+"条数据!");
this.setState({
// titlemessage: response.data.message+"(支撑关系变更)",
Modallist: '已成功导入'+response.data.count+"条数据!",
Modallisttype:true,
Modallisttypes:1,
isSpin:false
})
}else if(response.data.status===0){
// message.warning(response.data.message);
this.setState({
// titlemessage: response.data.message+"(支撑关系变更)",
Modallist:response.data.message,
Modallisttype:true,
Modallisttypes:0,
isSpin:false
})
}
}).catch((error) => {
console.log(error)
})
}
hidemodeldelete=()=>{
let {Modallisttypes}=this.state;
this.setState({
Modallisttype:false,
Modallist:'',
Modallisttypess:0
})
if(Modallisttypes===1){
// window.location.reload();
this.uploadcomponentDidMount();
}
}
showecStudentList=(page)=>{
let major_id=this.props.match.params.major_id;
let year_id=this.props.match.params.year_id;
const url ='/ec_major_schools/'+major_id+'/academic_years/'+year_id+'/student_lists_data?page='+page;
axios.get(url, {
withCredentials: true,
}).then((response) => {
if(response.status===200){
this.setState({
majorschoollist:response.data,
ismanager:response.data.ismanager,
})
}
}).catch(function (error) {
console.log(error);
});
}
onChangestudentall=(e)=>{
let {majorschoollist}=this.state;
let mewmajorschoollist=majorschoollist
for(var i=0; i<mewmajorschoollist.ec_students.length; i++){
mewmajorschoollist.ec_students[i].istrue=e.target.checked
}
this.setState({
studentall:e.target.checked,
majorschoollist:mewmajorschoollist
})
}
onChangestudent=(e)=>{
let {majorschoollist,studentall}=this.state;
let mewmajorschoollist=majorschoollist;
let newstudentall=studentall;
if(e.target.checked===false){
newstudentall=false
}
for(var i=0; i<mewmajorschoollist.ec_students.length; i++){
if(i===e.target.index&&e.target.id===mewmajorschoollist.ec_students[i].student_id){
mewmajorschoollist.ec_students[i].istrue=e.target.checked
}
}
this.setState({
student_id:e.target.id,
majorschoollist:mewmajorschoollist,
studentall:newstudentall
})
}
deletelistbth=()=>{
let {majorschoollist,studentall} =this.state;
let studentalltype=0
for(var i=0; i<majorschoollist.ec_students.length; i++){
if(majorschoollist.ec_students[i].istrue===true){
studentalltype=1
}
}
if(studentall===true||studentalltype===1){
this.setState({
Modallist: '确定删除这些学生吗?',
Modallisttype:true,
Modallisttypess:1
})
}else{
this.setState({
Modallist: '请选择学生!',
Modallisttype:true
})
}
}
deletelistbthenters=()=>{
let {majorschoollist,studentall} =this.state;
let major_id=this.props.match.params.major_id;
let year_id=this.props.match.params.year_id;
let newstudent_id=[];
if(studentall===false){
for(var i=0; i<majorschoollist.ec_students.length; i++){
if(majorschoollist.ec_students[i].istrue===true){
newstudent_id.push(majorschoollist.ec_students[i].student_id)
}
}
}
let url ='/ec_major_schools/'+major_id+'/academic_years/'+year_id+'/destroy_students'
axios.delete(url,{data:{
all:studentall,
student_ids:newstudent_id,
}}).then((response) => {
if(response.data.status===1){
this.setState({
// Modallist: "删除成功!",
// Modallisttype:true,
Modallisttypes:1,
Modallisttypess:0
})
this.hidemodeldelete();
}
}).catch((error) => {
console.log(error)
})
}
render() {
let {schooldata,
majorschoollist,
Modallisttype,
titlemessage,
Modallist,
studentall,
student_id,
Modallisttypess,
ismanager
}=this.state;
// ec_students: []
// import_url: "/ec_major_schools/:1/academic_years/:1/import_students"
// template_url: "javascript:void(0);"
// total_page: 0
const uploadProps = {
name: 'file',
onPreview(file) {
// dispatch({ type: `${nameSpace}/updateState`, payload: { uploadPreviewVisible: true, uploadPreviewImage: file.url || file.thumbUrl } });
},
onChange(file) {
// dispatch({ type: `${nameSpace}/updateState`, payload: { fileList: fileList } });
},
onRemove(option) {
},
customRequest: file => {
this.uploadfile(file)
}
}
return (
<div className="newMain clearfix">
<Modal
title={titlemessage}
// visible={modeldelet===true&&listid===list.id?true:false}
visible={Modallisttype}
className={"ecmodeldelet"}
closable={false}
footer={null}
>
<div className="task-popup-content">
<div className="task-popup-text-center font-14">{Modallist}</div>
</div>
<div className="task-popup-submit clearfix">
<a onClick={this.hidemodeldelete} className="task-btn fl">取消</a>
{
Modallisttypess===0?<a className="task-btn task-btn-orange fr"
onClick={this.hidemodeldelete}
>确定</a>:<a className="task-btn task-btn-orange fr"
onClick={this.deletelistbthenters}
>确定</a>
}
</div>
</Modal>
<div className="educontent mb290">
<EcTitleCourseEvaluations
{...this.props}
schooldata={schooldata}
ecpath={this.state.ecComponentState}
/>
<div className="clearfix padding20-30 bor-bottom-greyE mb10 edu-back-white">
<span className="fl font-18 courseSystem ">学生列表</span>
<a className="fr font-15 courseSystem" onClick={this.windowsgoblack}>返回</a>
</div>
<div className="edu-back-white eacourse">
<div className="clearfix padding20-30 bor-bottom-greyE"><span
className=" font-18 courseSystem">学生列表
{majorschoollist===undefined?"":majorschoollist.total_student}
</span>
<div className="color-grey-9 mr10">提供模板支持导入学生信息(请先下载模板) <a className={"color-blue"} onClick={() => window.elasticLayer(3533)}>查看详情</a></div>
</div>
<div className="padding20-30 padbottom" id="training_objective_contents">
{ismanager===false?"":
<span className="mr30">请使用导入模板<a href={majorschoollist===undefined?"":majorschoollist.template_url} className="color-green"><i className="iconfont icon-fujian mr5 color-green font-16"></i></a>便</span>
}
<a className="white-btn edu-orangeback-btn fr mr10" >
{ismanager===false?"":<Upload
{...uploadProps}
showUploadList={false}
style={{color:'#fff'}}
>
导入
</Upload>}
</a>
</div>
<div id="training_objective_contents" className='deletelist' >
{ismanager===false?"":<div className="white-btn deletebth ml30 mr10" onClick={this.deletelistbth}>
删除
</div>}
</div>
<Spin spinning={this.state.isSpin}>
<div className="ListTableLine minH-560 edu-back-white mb80" id="listContent">
<p className="clearfix">
<span className="column-No column-2 relative">
<Checkbox
className={'mr20 changestudent'}
checked={studentall===true?true:false}
onChange={this.onChangestudentall}></Checkbox>
序号
</span>
<span className="column-2" style={{display:majorschoollist===undefined?"":majorschoollist.show_name===false?"none":'inline-block'}}>姓名</span>
<span className="column-2">学号</span>
</p>
<ul>
{
majorschoollist===undefined?
<div className="edu-txt-center color-grey-9 pt50">
<p className="mb20"><img className="edu-nodata-img mb20" src={require('./nodata.png')} /></p>
<p>学生数据为空请导入数据</p>
</div>
:majorschoollist.ec_students.length===0?
<div className="edu-txt-center color-grey-9 pt50">
<p className="mb20"><img className="edu-nodata-img mb20" src={require('./nodata.png')}/></p>
<p>学生数据为空请导入数据</p>
</div>:majorschoollist.ec_students.map((item,key)=>{
// console.log(item)
return(
<li className="clearfix" key={key}>
<span className="column-No column-2 relative">
<Checkbox
className={'mr20 changestudents'}
checked={item.istrue===true?true:false}
key={key}
index={key}
onChange={this.onChangestudent} id={item.student_id}></Checkbox>
{item.index}
</span>
<span className="column-2" style={{display:majorschoollist===undefined?"none":majorschoollist.show_name===false?"none":'inline-block'}}>{item.student_name}</span>
<span className="column-2">{item.student_id}</span>
</li>
)
})
}
</ul>
<div style={{width:'100%',position: 'relative'}}>
{
majorschoollist===undefined?"":majorschoollist.total_page===0||majorschoollist.total_student<51?"": <Pagination size="small" className={"pagelistStudentList mt30"} pageSize={50} showQuickJumper defaultCurrent={1} total={majorschoollist.total_student} onChange={this.showecStudentList} />
}
</div>
</div>
</Spin>
</div>
</div>
</div>
)
}
}
export default SnackbarHOC() ( TPMIndexHOC ( EcStudentList ) );

@ -0,0 +1,44 @@
.pagelistStudentList{
position: absolute;
padding-left: 40%;
}
.relative{
position: relative;
}
.changestudent{
position: absolute;
top: 13px;
left: 50px;
}
.changestudents{
position: absolute;
top: -1px;
left: 50px;
}
.padbottom{
padding-bottom: 0px;
}
.deletelist{
margin-top: 10px;
margin-bottom: 10px;
}
.deletelist:hover{
color:#afafaf !important;
}
.deletebth{
width:64px;
height:24px;
border:1px solid #afafaf;
border-radius:2px;
color:#afafaf;
background:#fff;
line-height:24px;
}
.mt60{
margin-top:60px;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Loading…
Cancel
Save