|
|
|
@ -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 ) );
|
|
|
|
|
|