From 745a9da7107104aabed2add2b458a5023293dc14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Thu, 19 Sep 2019 10:21:55 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EcCompletionCalculation.js | 3 +- .../ecCourseSupports/EcCourseSupports.js | 656 ------------------ .../subroute/ecStudentList/EcStudentList.js | 430 ++++++++++++ .../subroute/ecStudentList/ecStudentList.css | 44 ++ .../ecs/subroute/ecStudentList/nodata.png | Bin 0 -> 14616 bytes 5 files changed, 475 insertions(+), 658 deletions(-) delete mode 100644 public/react/src/modules/ecs/subroute/ecCourseSupports/EcCourseSupports.js create mode 100644 public/react/src/modules/ecs/subroute/ecStudentList/EcStudentList.js create mode 100644 public/react/src/modules/ecs/subroute/ecStudentList/ecStudentList.css create mode 100644 public/react/src/modules/ecs/subroute/ecStudentList/nodata.png diff --git a/public/react/src/modules/ecs/subroute/ecCompletion_calculation/EcCompletionCalculation.js b/public/react/src/modules/ecs/subroute/ecCompletion_calculation/EcCompletionCalculation.js index 14e104e05..7723278a3 100644 --- a/public/react/src/modules/ecs/subroute/ecCompletion_calculation/EcCompletionCalculation.js +++ b/public/react/src/modules/ecs/subroute/ecCompletion_calculation/EcCompletionCalculation.js @@ -497,8 +497,7 @@ class EcCompletionCalculation extends Component {

{ Spintype===true?}/>:"" } - - + { target_list.length===0&&Spintype===false?
  • -- diff --git a/public/react/src/modules/ecs/subroute/ecCourseSupports/EcCourseSupports.js b/public/react/src/modules/ecs/subroute/ecCourseSupports/EcCourseSupports.js deleted file mode 100644 index 0523e0e24..000000000 --- a/public/react/src/modules/ecs/subroute/ecCourseSupports/EcCourseSupports.js +++ /dev/null @@ -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{ - 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{ - 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;j1){ - 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{ - - 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 { - - 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( -
    支撑课程 -
    (权值) -
    -
    ) - } - return res - } - - return ( -
    - -
    -
    {Supportslist}
    -
    - -
    - - -
    - - - -
    - -
    - 课程体系对毕业要求的支撑 - {/* 导出培养目标 */} - - 导出课程体系支撑矩阵 - -
    用矩阵图的形式说明本专业课程体系对毕业要求的支撑关系 window.elasticLayer(3534)} >查看详情
    - -
    -
    - 毕业要求指标点({data.subitems_count} - 课程体系({data.course_count} -
    - -
    - -
    - -

    1200? 140*data.max_support_count : 1200+"px"}}> - 毕业要求指标点 - {list(data.max_support_count<5||data.max_support_count===undefined?5:data.max_support_count)} - 合计 -

    -
    - { - data.course_support_data===undefined? }/>:data.course_support_data.map((item,key)=>{ - - return ( -
  • 1134 ? 136*data.max_support_count : 1134+"px",margin: '0px 0px'}}> - - {item.sequence_num} - - - - { - item.course_data.map((t,kes)=>{ - return( - -
    {t.name.length>12?t.name.substring(0, 10)+"...":t.name}
    -
    ({t.weigths})
    -
    - ) - - }) - } - - -
    -
    -
    {item.num_total===0?" ":item.num_total}
    -
    {Math.round(item.weights_total*100)/100===0?" ":(Math.round(item.weights_total*100)/100)}
    -
    -
    - {data.is_manager===false?"": - - } -
    -
    - -
    - -

    - -

    - 指标点 {index} - 支撑课程 - - 权重(∑=1) - (精确到两位小数) - - 关联度最高 -

    - -
    - - { - editcourse.map((it,key)=>{ - - return( -
    - - - - -
    - -
    - - - - -
    - - - -
    - -
    - ) - }) - } - -
    - {Supportslist} -
    - 合计: {editcourse.length} - 合计: {editnum} -
    - -
    -
    保存
    -
    取消
    -
    - -

    - - -
  • - ) - }) - } - - - - - - ); - } -} - -export default SnackbarHOC() ( TPMIndexHOC ( ecCourseSupports ) ); - diff --git a/public/react/src/modules/ecs/subroute/ecStudentList/EcStudentList.js b/public/react/src/modules/ecs/subroute/ecStudentList/EcStudentList.js new file mode 100644 index 000000000..37dcb0b31 --- /dev/null +++ b/public/react/src/modules/ecs/subroute/ecStudentList/EcStudentList.js @@ -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{ + let {majorschoollist,studentall}=this.state; + let mewmajorschoollist=majorschoollist; + let newstudentall=studentall; + if(e.target.checked===false){ + newstudentall=false + } + for(var i=0; i{ + let {majorschoollist,studentall} =this.state; + let studentalltype=0 + for(var i=0; i{ + 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 { + 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 ( +
    + +
    +
    {Modallist}
    +
    +
    + 取消 + { + Modallisttypess===0?确定:确定 + } + +
    +
    +
    + + +
    + 学生列表 + 返回 +
    + +
    + +
    学生列表( + {majorschoollist===undefined?"":majorschoollist.total_student} + ) +
    提供模板支持导入学生信息(请先下载模板) window.elasticLayer(3533)}>查看详情
    +
    + +
    + {ismanager===false?"": + 请使用导入模板(点击下载),将本学年所有参与的学生导入系统,以便录入教学活动相关数据 + } + + {ismanager===false?"": + 导入 + } + +
    + +
    + {ismanager===false?"":
    + 删除 +
    } +
    + +
    +

    + + + 序号 + + 姓名 + 学号 +

    + + +
      + { + majorschoollist===undefined? +
      +

      +

      学生数据为空,请导入数据

      +
      + :majorschoollist.ec_students.length===0? +
      +

      +

      学生数据为空,请导入数据

      +
      :majorschoollist.ec_students.map((item,key)=>{ + // console.log(item) + return( +
    • + + + {item.index} + + {item.student_name} + {item.student_id} +
    • + ) + }) + } + +
    + +
    + { + majorschoollist===undefined?"":majorschoollist.total_page===0||majorschoollist.total_student<51?"": + } +
    +
    +
    +
    +
    + +
    + + ) + + } +} + +export default SnackbarHOC() ( TPMIndexHOC ( EcStudentList ) ); \ No newline at end of file diff --git a/public/react/src/modules/ecs/subroute/ecStudentList/ecStudentList.css b/public/react/src/modules/ecs/subroute/ecStudentList/ecStudentList.css new file mode 100644 index 000000000..0dfc22b99 --- /dev/null +++ b/public/react/src/modules/ecs/subroute/ecStudentList/ecStudentList.css @@ -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; +} \ No newline at end of file diff --git a/public/react/src/modules/ecs/subroute/ecStudentList/nodata.png b/public/react/src/modules/ecs/subroute/ecStudentList/nodata.png new file mode 100644 index 0000000000000000000000000000000000000000..15a9e522f8d405897fa7e8108b4274ad7ba784f6 GIT binary patch literal 14616 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 E0}_S}fB*mh literal 0 HcmV?d00001