调整合作者

chromesetting
杨树明 5 years ago
parent 984e38c55c
commit cb44790e9e

@ -32,7 +32,7 @@ module.exports = {
// See the discussion in https://github.com/facebookincubator/create-react-app/issues/343.s
// devtool: "cheap-module-eval-source-map",
// 开启调试
devtool: "source-map", // 开启调试
//devtool: "source-map", // 开启调试
// These are the "entry points" to our application.
// This means they will be the "root" imports that are included in JS bundle.
// The first two entry points enable "hot" CSS and auto-refreshes for JS.

@ -748,7 +748,7 @@ submittojoinclass=(value)=>{
return true
} else if (url.startsWith('/courses')&&match.path.startsWith('/courses')) {
return true
}else if (url.startsWith('/competitions')&&match.path.startsWith('/crowdsourcing')) {
}else if (url.startsWith('/competitions')&&match.path.startsWith('/competitions')) {
return true
}else if (url.startsWith('/crowdsourcing')&&match.path.startsWith('/crowdsourcing')) {
return true
@ -789,7 +789,7 @@ submittojoinclass=(value)=>{
let coursestype=false;
let activePackages=false;
let activeMoopCases=false;
let activeCompetitions=false;
if (match.path === '/forums') {
activeForums = true;
@ -803,6 +803,8 @@ submittojoinclass=(value)=>{
activePackages = true;
}else if(match.path.startsWith('/moop_cases')){
activeMoopCases = true;
}else if(match.path.startsWith('/competitions')){
activeCompetitions = true;
}else {
activeIndex = true;
}
@ -1097,7 +1099,7 @@ submittojoinclass=(value)=>{
</li>
{/*<li className=""><a href={"/libraries"}>教学案例</a></li>*/}
<li className="">
<li className={`${activeCompetitions === true ? 'pr active' : 'pr'}`}>
<a href={this.props.Headertop===undefined?"":this.props.Headertop.competitions_url}>在线竞赛</a>
{/*<img className="roundedRectangles"*/}
{/* src={require('./roundedRectangle.png')}*/}

@ -25,14 +25,14 @@ class TPMCollaborators extends Component {
<React.Fragment>
<div className="educontent clearfix mt30 mb80">
<div className="with65 fl edu-back-white" >
<TPMNav
match={match}
user={user}
shixun={shixun}
{...this.props}
is_jupyter={this.props.is_jupyter}
></TPMNav>
<div className={" with65 fl "}>
{/*<TPMNav*/}
{/* match={match}*/}
{/* user={user}*/}
{/* shixun={shixun}*/}
{/* {...this.props}*/}
{/* is_jupyter={this.props.is_jupyter}*/}
{/*></TPMNav>*/}
<Collaborators
{...this.props}
/>

@ -252,6 +252,9 @@ class TPMIndex extends Component {
//右侧数据
let shixunsDetailsURL=`/shixuns/`+id+`/show_right.json`;
axios.get(shixunsDetailsURL).then((response)=> {
if(response.data){
}
this.setState({
TPMRightSectionData: response.data
});

@ -1,14 +1,14 @@
import React, { Component } from 'react';
import React, {Component} from 'react';
import { BrowserRouter as Router, Route, Link } from "react-router-dom";
import {BrowserRouter as Router, Route, Link} from "react-router-dom";
import axios from 'axios';
import { getImageUrl,} from "educoder";
import {getImageUrl,} from "educoder";
import './TPMright.css';
import {Icon,Tooltip} from 'antd';
import {Icon, Tooltip} from 'antd';
// import "antd/dist/antd.css";
@ -17,8 +17,8 @@ class TPMRightSection extends Component {
super(props)
this.state = {
TPMRightSection:false,
clickNewsubscripttype:false
TPMRightSection: false,
clickNewsubscripttype: false
}
}
@ -41,40 +41,51 @@ class TPMRightSection extends Component {
// shouldComponentUpdate(nextProps, nextState) {
// return nextProps.TPMRightSectionData !== this.state.TPMRightSectionData
// }
clickNewsubscript=(val)=>{
if(val===0){
clickNewsubscript = (val) => {
if (val === 0) {
this.setState({
TPMRightSection:true,
clickNewsubscripttype:true
TPMRightSection: true,
clickNewsubscripttype: true
})
}else{
} else {
this.setState({
TPMRightSection:false,
clickNewsubscripttype:false
TPMRightSection: false,
clickNewsubscripttype: false
})
}
}
render() {
let {TPMRightSection,clickNewsubscripttype}=this.state;
let {TPMRightSectionData}=this.props
let {TPMRightSection, clickNewsubscripttype} = this.state;
let {TPMRightSectionData} = this.props
return (
<div>
{
TPMRightSectionData===undefined?"":
TPMRightSectionData === undefined ? "" :
<div>
<div className="edu-back-white padding40-20 mb10">
<div className="edu-back-white pd302020zuoze mb10">
<p className="font-16 mb20">创建者</p>
<div className="df">
<a href={TPMRightSectionData===undefined?"":TPMRightSectionData.creator===undefined?"":`/users/${TPMRightSectionData.creator.login}/courses`}>
<img alt="头像" className="radius mr10" height="80" src={getImageUrl(TPMRightSectionData===undefined?"":TPMRightSectionData.creator===undefined?"":'images/'+TPMRightSectionData.creator.image_url+"?1532489442")} width="80" />
<a
href={TPMRightSectionData === undefined ? "" : TPMRightSectionData.creator === undefined ? "" : `/users/${TPMRightSectionData.creator.login}/courses`}>
<img alt="头像" className="radius mr10" height="36"
src={getImageUrl(TPMRightSectionData === undefined ? "" : TPMRightSectionData.creator === undefined ? "" : 'images/' + TPMRightSectionData.creator.image_url + "?1532489442")}
width="36"/>
</a>
<div className="flex1">
<p className="mb20">{TPMRightSectionData===undefined?"":TPMRightSectionData.creator===undefined?"":TPMRightSectionData.creator.name}</p>
<div className="creatorname sortinxdirection space-between">
<div className={"creatornamelist"}>
{TPMRightSectionData === undefined ? "" : TPMRightSectionData.creator === undefined ? "" : TPMRightSectionData.creator.name}
</div>
<div className={"creatornamelist width80center"}>
{TPMRightSectionData.user_shixuns_count}
</div>
</div>
<div className="clearfix">
<span>发布 {TPMRightSectionData.user_shixuns_count}</span>
<span className={"fr color888hezuo"}>发布实训项目</span>
{/*<span className="ml20">粉丝 <span id="user_h_fan_count">{TPMRightSectionData.fans_count}</span></span>*/}
{/* <a href="/watchers/unwatch?className=fr+user_watch_btn+edu-default-btn+edu-focus-btn&amp;object_id=3039&amp;object_type=user&amp;shixun_id=61&amp;target_id=3039" className="fr edu-default-btn user_watch_btn edu-focus-btn" data-method="post" data-remote="true" id="cancel_watch" rel="nofollow">取消关注</a> */}
</div>
@ -83,33 +94,43 @@ class TPMRightSection extends Component {
</div>
</div>
{
TPMRightSectionData === undefined ? "" :TPMRightSectionData.tags===undefined?"": TPMRightSectionData.tags.length === 0 ? "" :
TPMRightSectionData === undefined ? "" : TPMRightSectionData.tags === undefined ? "" : TPMRightSectionData.tags.length === 0 ? "" :
<div className="edu-back-white padding40-20 mb10 relative">
<p className="font-16 mb20">技能标签 <span className="color-grey-c">{TPMRightSectionData.tags.length}</span></p>
<div className={TPMRightSection===false?"newedbox newedboxheight":"newedbox newminheight"}>
<p className="font-16 mb20">
<span>技能标签</span>
<span className={"sortinxdirection space-between fr"}>
<span className="color888hezuo font-12">已获得 {TPMRightSectionData&&TPMRightSectionData.user_tag_count} / {TPMRightSectionData&&TPMRightSectionData.tag_count} </span>
</span>
</p>
<div className={TPMRightSection === false ? "newedbox newedboxheight" : "newedbox newminheight"}>
<div className="clearfix" id="boxheight">
{ TPMRightSectionData.tags.map((item,key)=>{
return(
<span className={item.status===false?"newedu-filter-btn fl":"edu-filter-btn29BD8B fl"}
style={{display:item.tag_name===" "||item.tag_name===""?"none":""}}
{TPMRightSectionData.tags.map((item, key) => {
return (
<span className={item.status === false ? "newedu-filter-btn fl" : "edu-filter-btn29BD8B fl"}
style={{display: item.tag_name === " " || item.tag_name === "" ? "none" : ""}}
key={key}>{item.tag_name}</span>
)})
)
})
}
</div>
</div>
<div className={TPMRightSectionData.tags.length>15&&clickNewsubscripttype===false?"newsubscript mb9 color-grey-9":"newsubscript mb9 color-grey-9 none"}
<div
className={TPMRightSectionData.tags.length > 15 && clickNewsubscripttype === false ? "newsubscript mb9 color-grey-9" : "newsubscript mb9 color-grey-9 none"}
data-tip-down="显示全部"
onClick={()=>this.clickNewsubscript(0)}><span className="mr8">...</span><Icon type="caret-down" />
onClick={() => this.clickNewsubscript(0)}><span className="mr8">...</span><Icon
type="caret-down"/>
</div>
<div className={clickNewsubscripttype===false?"newsubscript mb9 color-grey-9 none":"newsubscript mb9 color-grey-9"}
<div
className={clickNewsubscripttype === false ? "newsubscript mb9 color-grey-9 none" : "newsubscript mb9 color-grey-9"}
data-tip-down="显示全部"
onClick={()=>this.clickNewsubscript(1)}><Icon type="caret-up" />
onClick={() => this.clickNewsubscript(1)}><Icon type="caret-up"/>
</div>
</div>
@ -119,27 +140,29 @@ class TPMRightSection extends Component {
<div className="padding20 edu-back-white mb10 mt10" style={{
display: TPMRightSectionData === undefined?"none":TPMRightSectionData.paths===undefined?"":TPMRightSectionData.paths.length === 0 ? "none" : "block"
display: TPMRightSectionData === undefined ? "none" : TPMRightSectionData.paths === undefined ? "" : TPMRightSectionData.paths.length === 0 ? "none" : "block"
}}>
<p className="mb20 font-16 clearfix">所属课程</p>
<div className="recommend-list" >
<div className="recommend-list">
{
TPMRightSectionData===undefined?"":TPMRightSectionData.paths===undefined?"":TPMRightSectionData.paths.map((i,k)=>{
TPMRightSectionData === undefined ? "" : TPMRightSectionData.paths === undefined ? "" : TPMRightSectionData.paths.map((i, k) => {
return(
return (
<div className="recomments clearfix df" key={k}>
<a href={"/paths/"+i.id} height="96" width="128" target="_blank">
<img alt="实训" height="96" src={"/"+i.image_url} width="128" />
<a href={"/paths/" + i.id} height="96" width="128" target="_blank">
<img alt="实训" height="96" src={"/" + i.image_url} width="128"/>
</a>
<div className="ml10 flex1">
<a href={"/paths/"+i.id} target="_blank" data-tip-down={i.name} className="color-grey-6 task-hide mb12 recomment-name">{i.name}</a>
<a href={"/paths/" + i.id} target="_blank" data-tip-down={i.name}
className="color-grey-6 task-hide mb12 recomment-name">{i.name}</a>
<p className="clearfix mt8 font-12 color-grey-B4">
<Tooltip placement="bottom" title={"章节"}>
<span className="mr10 fl squareIconSpan"><i className="iconfont icon-shixun fl mr3"></i>{i.stages_count}</span>
<span className="mr10 fl squareIconSpan"><i
className="iconfont icon-shixun fl mr3"></i>{i.stages_count}</span>
</Tooltip>
{/*<Tooltip placement="bottom" title={"经验值"}>*/}
@ -147,7 +170,8 @@ class TPMRightSection extends Component {
{/*</Tooltip>*/}
<Tooltip placement="bottom" title={"学习人数"}>
<span className="mr10 fl squareIconSpan"><i className="iconfont icon-chengyuan fl mr3"></i>{i.members_count}</span>
<span className="mr10 fl squareIconSpan"><i
className="iconfont icon-chengyuan fl mr3"></i>{i.members_count}</span>
</Tooltip>
</p>
@ -161,25 +185,26 @@ class TPMRightSection extends Component {
</div>
</div>
{TPMRightSectionData === undefined?"":TPMRightSectionData.paths===undefined?"":TPMRightSectionData.paths.length === 0 ? "" :
this.props.user&&this.props.user.main_site===true?<div className="padding20 edu-back-white"
{TPMRightSectionData === undefined ? "" : TPMRightSectionData.paths === undefined ? "" : TPMRightSectionData.paths.length === 0 ? "" :
this.props.user && this.props.user.main_site === true ? <div className="padding20 edu-back-white"
style={{
display:
TPMRightSectionData === undefined?"none":TPMRightSectionData.recommands===undefined?"none":TPMRightSectionData.recommands.length === 0 ? "none" : "block"
TPMRightSectionData === undefined ? "none" : TPMRightSectionData.recommands === undefined ? "none" : TPMRightSectionData.recommands.length === 0 ? "none" : "block"
}}
>
<p className="mb20 font-16 clearfix">推荐实训</p>
<div className="recommend-list">
{
TPMRightSectionData===undefined?"":TPMRightSectionData.recommands===undefined?"":TPMRightSectionData.recommands.map((item,key)=>{
return(
TPMRightSectionData === undefined ? "" : TPMRightSectionData.recommands === undefined ? "" : TPMRightSectionData.recommands.map((item, key) => {
return (
<div className="recomments clearfix df" key={key}>
<a href={"/shixuns/"+item.identifier+"/challenges"} target="_blank">
<img alt="69?1526971094" height="96" src={"/"+item.pic} width="128"/>
<a href={"/shixuns/" + item.identifier + "/challenges"} target="_blank">
<img alt="69?1526971094" height="96" src={"/" + item.pic} width="128"/>
</a>
<div className="ml10 flex1">
<Tooltip placement="bottom" title={item.name}>
<a href={"/shixuns/"+item.identifier+"/challenges"} target="_blank" className="color-grey-6 task-hide mb12 recomment-name">{item.name}</a>
<a href={"/shixuns/" + item.identifier + "/challenges"} target="_blank"
className="color-grey-6 task-hide mb12 recomment-name">{item.name}</a>
</Tooltip>
<p className="clearfix mt8 font-12 color-grey-B4">
{item.stu_num} 人学习
@ -191,7 +216,7 @@ class TPMRightSection extends Component {
})
}
</div>
</div>:""
</div> : ""
}
</div>
}

@ -1,5 +1,5 @@
/*bæ°æ ‡ç­¾*/
.newedu-filter-btn{
.newedu-filter-btn {
display: block;
float: left;
padding: 0 9px;
@ -11,24 +11,28 @@
margin-right: 10px;
margin-bottom: 9px;
}
.newedbox{
.newedbox {
/*flex-wrap: wrap;*/
/*display: -webkit-flex; !* Safari *!*/
/*display: flex;*/
width: 360px;
position:relative;
position: relative;
overflow: hidden;
}
.newsubscript{
.newsubscript {
position: absolute;
right: 23px;
bottom: 16px;
cursor: pointer;
}
.newsubscript:hover{
color:deepskyblue;
.newsubscript:hover {
color: deepskyblue;
}
.edu-filter-btn29BD8B{
.edu-filter-btn29BD8B {
display: block;
float: left;
padding: 0 9px;
@ -40,40 +44,71 @@
margin-right: 10px;
margin-bottom: 9px;
}
.relative{
position:relative;
.relative {
position: relative;
}
.newedboxheight{
.newedboxheight {
max-height: 177px;
overflow-y: hidden;
}
.newminheight{
.newminheight {
/*max-height: 670px;*/
max-height: 300px;
overflow-y: auto;
}
.delSubentry{
font-size:7px;
font-family:MicrosoftYaHei;
font-weight:400;
color:rgba(76,172,255,1);
line-height:9px;
.delSubentry {
font-size: 7px;
font-family: MicrosoftYaHei;
font-weight: 400;
color: rgba(76, 172, 255, 1);
line-height: 9px;
cursor: pointer;
}
.operationalter .delSubentry{
font-size:15px !important;
.operationalter .delSubentry {
font-size: 15px !important;
line-height: 25px;
}
/*临时的tpi关闭按é®æ ·å¼*/
.headerRight a {
color: #1a3f5f;
}
/*实训做成弹窗a标签样式调整*/
.-task-list-title a:link, .-task-list-title a:visited {color: #bcc6cd;}
.-task-list-title a:hover{
.-task-list-title a:link, .-task-list-title a:visited {
color: #bcc6cd;
}
.-task-list-title a:hover {
color: #459be5;
}
.headerLeft .-header-right{
.headerLeft .-header-right {
height: 32px;
}
.creatorname {
font-size: 16px;
color: rgba(51, 51, 51, 1);
}
.creatornamelist {
-o-text-overflow: ellipsis;
text-overflow: ellipsis;
white-space: nowrap;
cursor: default;
}
.width80center {
width: 80px;
text-align: center;
}
.pd302020zuoze {
padding: 30px 20px 20px;
}

@ -143,8 +143,8 @@
height:34px;
line-height: 34px;
}
.hezuozhe660{
width: 660px;
.hezuozhe630{
width: 630px;
}
.color333hezuo{
@ -154,3 +154,24 @@
.color888hezuo{
color:#888888;
}
.newyslusercjz{
display: inline-block;
position: absolute;
bottom: 0px;
left: -18px;
width: 44px;
height: 18px;
border-radius: 13px;
background: #F38B03;
color: #fff;
}
.newyslusercjztest{
width: 45px;
height: 29px;
font-size: 10px;
color: #fff;
line-height: 18px;
text-align: center;
}

@ -1,18 +1,8 @@
import React, { Component } from 'react';
import React, {Component} from 'react';
import { Redirect } from 'react-router';
import {Modal, Button, Radio, Input, Checkbox, message, Spin, Icon, Pagination} from 'antd';
import {Modal, Button, Radio, Input, Checkbox,message,Spin, Icon,Pagination} from 'antd';
import { BrowserRouter as Router, Route, Link, Switch } from "react-router-dom";
import PropTypes from 'prop-types';
import classNames from 'classnames';
import { CircularProgress } from 'material-ui/Progress';
import { getImageUrl, toPath } from 'educoder'
import {getImageUrl, toPath} from 'educoder'
import axios from 'axios';
@ -42,46 +32,49 @@ class Collaborators extends Component {
Collaboratorslisttype: false,
collaborators_deletetype: false,
collaborators_deletevalue: null,
onSearchcalue:"",
collaboratorListsum:10,
collaboratorListsumtype:true,
user_name:undefined,
school_name:undefined,
spinnings:false,
useristrue:false,
mylistansum:6,
limit:20,
onSearchcalue: "",
collaboratorListsum: 10,
collaboratorListsumtype: true,
user_name: undefined,
school_name: undefined,
spinnings: false,
useristrue: false,
mylistansum: 6,
limit: 20,
}
}
componentDidMount() {
let id=this.props.match.params.shixunId;
let id = this.props.match.params.shixunId;
let collaborators=`/shixuns/`+id+`/collaborators.json`;
axios.get(collaborators).then((response)=> {
if(response.status===200){
if (response.data.status === 403||response.data.status === 401||response.data.status === 500) {
let collaborators = `/shixuns/` + id + `/collaborators.json`;
axios.get(collaborators).then((response) => {
if (response.status === 200) {
if (response.data.status === 403 || response.data.status === 401 || response.data.status === 500) {
}else{
} else {
this.setState({
collaboratorList: response.data
});
}
}
}).catch((error)=>{
}).catch((error) => {
console.log(error)
});
}
updatacomponentDiddata = () => {
updatacomponentDiddata = (pageNumber) => {
let id = this.props.match.params.shixunId;
let collaborators = `/shixuns/` + id + `/collaborators.json`;
axios.get(collaborators).then((response) => {
axios.get((collaborators),{params:{
page:pageNumber?pageNumber:undefined
}}).then((response) => {
if (response.status === 200) {
if (response.data.status === 403||response.data.status === 401||response.data.status === 500) {
if (response.data.status === 403 || response.data.status === 401 || response.data.status === 500) {
}else{
} else {
this.setState({
collaboratorList: response.data
});
@ -96,14 +89,14 @@ class Collaborators extends Component {
if (type === "cooperation") {
this.setState({
Collaboratorsvisibleadmin: false,
Collaboratorslist:[],
Searchadmin:[]
Collaboratorslist: [],
Searchadmin: []
});
} else if (type === "admin") {
this.setState({
Collaboratorsvisible: false,
Collaboratorslist:[],
Searchadmin:[]
Collaboratorslist: [],
Searchadmin: []
});
} else if (type === "collaborators_deletetype") {
this.setState({
@ -116,11 +109,11 @@ class Collaborators extends Component {
this.setState({
Collaboratorslist: [],
Searchadmin:undefined,
onSearchcalue:""
Searchadmin: undefined,
onSearchcalue: ""
})
let admintype = this.props.identity;
if (admintype>4) {
if (admintype > 4) {
this.props.showSnackbar("您没有权限");
return
}
@ -136,9 +129,9 @@ class Collaborators extends Component {
// this.setState({
// Collaboratorsvisible: true
// })
if (response.data.status === 403||response.data.status === 401||response.data.status === 500) {
if (response.data.status === 403 || response.data.status === 401 || response.data.status === 500) {
}else{
} else {
this.setState({
Collaboratorsvisible: true,
Collaboratorslist: response.data
@ -157,17 +150,17 @@ class Collaborators extends Component {
value: e.target.value,
});
}
onSearchadmins=(e)=>{
onSearchadmins = (e) => {
this.setState({
onSearchcalue:e.target.value
onSearchcalue: e.target.value
})
}
onSearchadmin = (value) => {
let {collaboratorList,user_name,school_name} = this.state;
let {collaboratorList, user_name, school_name} = this.state;
this.setState({
// Searchadmin: undefined,
spinnings:true,
spinnings: true,
})
// if (value === "") {
// this.setState({
@ -179,15 +172,17 @@ class Collaborators extends Component {
// }
let id = this.props.match.params.shixunId;
let url = "/shixuns/" + id + "/add_collaborators.json";
axios.get(url,{params:{
user_name:user_name ,
school_name:school_name,
}}).then((response) => {
if (response.data.status === 403||response.data.status === 401||response.data.status === 500) {
axios.get(url, {
params: {
user_name: user_name,
school_name: school_name,
}
}).then((response) => {
if (response.data.status === 403 || response.data.status === 401 || response.data.status === 500) {
this.setState({
spinnings:false
spinnings: false
})
}else{
} else {
let newlist = response.data.users;
for (var i = 0; i < newlist.length; i++) {
newlist[i].checked = false
@ -195,7 +190,7 @@ class Collaborators extends Component {
this.setState({
Searchadmin: newlist,
collaboratorList: collaboratorList,
spinnings:false
spinnings: false
})
}
@ -226,16 +221,16 @@ class Collaborators extends Component {
alltype = false
}
if(newlist.length===0){
if (newlist.length === 0) {
this.setState({
Searchadmin: newlist,
allChangechecked: alltype,
})
}else{
} else {
this.setState({
Searchadmin: newlist,
allChangechecked: alltype,
useristrue:false
useristrue: false
})
}
@ -256,7 +251,7 @@ class Collaborators extends Component {
submit_add_collaborators_form = () => {
let id = this.props.match.params.shixunId;
let {Searchadmin,collaboratorList} = this.state;
let {Searchadmin, collaboratorList} = this.state;
let newlist = Searchadmin;
let user_ids = []
if (newlist.length === 0) {
@ -271,9 +266,9 @@ class Collaborators extends Component {
}
}
for(var i=0; i<user_ids.length;i++){
for(var j=0; j<collaboratorList.length;j++){
if(user_ids[i]===collaboratorList[j].user.user_id){
for (var i = 0; i < user_ids.length; i++) {
for (var j = 0; j < collaboratorList.length; j++) {
if (user_ids[i] === collaboratorList[j].user.user_id) {
message.error("添加失败,重复添加!");
return
@ -281,9 +276,9 @@ class Collaborators extends Component {
}
}
if(user_ids.length===0){
if (user_ids.length === 0) {
this.setState({
useristrue:true
useristrue: true
})
return
}
@ -295,8 +290,8 @@ class Collaborators extends Component {
this.props.showSnackbar(response.data.message);
this.setState({
Collaboratorsvisibleadmin: false,
Collaboratorslist:[],
Searchadmin:[]
Collaboratorslist: [],
Searchadmin: []
})
}).catch((error) => {
console.log(error)
@ -315,11 +310,11 @@ class Collaborators extends Component {
let id = this.props.match.params.shixunId;
let url = "/shixuns/" + id + "/change_manager.json";
if(addadminrediovalue===undefined){
if (addadminrediovalue === undefined) {
this.setState({
Collaboratorsvisible: false,
Collaboratorslist:[],
Searchadmin:[]
Collaboratorslist: [],
Searchadmin: []
});
this.props.showSnackbar("所选人员为空,没有更换成功");
this.CollaboratorsshowModal("admin")
@ -332,8 +327,8 @@ class Collaborators extends Component {
}).then((response) => {
this.setState({
Collaboratorsvisible: false,
Collaboratorslist:[],
Searchadmin:[]
Collaboratorslist: [],
Searchadmin: []
});
this.updatacomponentDiddata();
this.props.showSnackbar(response.data.message);
@ -371,35 +366,37 @@ class Collaborators extends Component {
});
}
loadMore=()=>{
let {collaboratorList}=this.state;
loadMore = () => {
let {collaboratorList} = this.state;
this.setState({
collaboratorListsum:collaboratorList.length,
collaboratorListsumtype:false
collaboratorListsum: collaboratorList.length,
collaboratorListsumtype: false
})
}
contentViewScrolledit=(e)=>{
contentViewScrolledit = (e) => {
//滑动到底判断
let newscrollTop=parseInt(e.currentTarget.scrollTop);
let allclientHeight=e.currentTarget.clientHeight+newscrollTop;
let newscrollTop = parseInt(e.currentTarget.scrollTop);
let allclientHeight = e.currentTarget.clientHeight + newscrollTop;
if(e.currentTarget.scrollHeight-allclientHeight===0||e.currentTarget.scrollHeight-allclientHeight===1||e.currentTarget.scrollHeight-allclientHeight===-1){
let {page,collaboratorList,user_name,school_name,Searchadmin} = this.state;
let newpage=page+1;
let newSearchadmin=Searchadmin
if (e.currentTarget.scrollHeight - allclientHeight === 0 || e.currentTarget.scrollHeight - allclientHeight === 1 || e.currentTarget.scrollHeight - allclientHeight === -1) {
let {page, collaboratorList, user_name, school_name, Searchadmin} = this.state;
let newpage = page + 1;
let newSearchadmin = Searchadmin
let id = this.props.match.params.shixunId;
let url = "/shixuns/" + id + "/add_collaborators.json";
axios.get(url,{params:{
user_name:user_name ,
school_name:school_name,
page:newpage
}}).then((response) => {
if (response.data.status === 403||response.data.status === 401||response.data.status === 500) {
axios.get(url, {
params: {
user_name: user_name,
school_name: school_name,
page: newpage
}
}).then((response) => {
if (response.data.status === 403 || response.data.status === 401 || response.data.status === 500) {
}else{
} else {
let newlist = response.data.users;
for (var i = 0; i < newlist.length; i++) {
newlist[i].checked = false
@ -409,7 +406,7 @@ class Collaborators extends Component {
this.setState({
Searchadmin: newSearchadmin,
collaboratorList: collaboratorList,
page:newpage
page: newpage
})
}
@ -420,6 +417,9 @@ class Collaborators extends Component {
}
}
onChangepageNumber=(pageNumber)=>{
this.updatacomponentDiddata(pageNumber);
}
render() {
let {
@ -448,9 +448,9 @@ class Collaborators extends Component {
lineHeight: '30px',
};
const antIcon = <Icon type="loading" style={{ fontSize: 24 }} spin />;
const antIcon = <Icon type="loading" style={{fontSize: 24}} spin/>;
// console.log(Searchadmin)
// console.log(collaboratorList)
return (
<React.Fragment>
<style>
@ -466,11 +466,13 @@ class Collaborators extends Component {
`
}
</style>
<div className={"edu-back-white"}>
<p className="sortinxdirection sortinxdirectionbox"
style={{display:this.props.identity<5?"flex":"none"}}
style={{display: this.props.identity < 5 ? "flex" : "none"}}
>
<div className="yslwushiwidth">
<p className="edu-default-btn edu-greenback-btn ml20 height28 mt25 color333hezuo">{collaboratorList&&collaboratorList.length}</p>
<p
className="edu-default-btn edu-greenback-btn ml20 height28 mt25 color333hezuo">{collaboratorList && collaboratorList.member_count}</p>
</div>
<div className="yslwushiwidth xaxisreverseorder pt25">
@ -494,7 +496,7 @@ class Collaborators extends Component {
className="edu-default-btn edu-greenback-btn mr20 heighthezuo34 yslwushiwidthbuton"
>添加合作者</Button>
<Button type="primary" ghost
style={{display:this.props.identity===1?"flex":"none"}}
style={{display: this.props.identity === 1 ? "flex" : "none"}}
onClick={() => this.showCollaboratorsvisible("admin")}
className="edu-default-btn mr20 heighthezuo34">
更换管理员
@ -545,7 +547,7 @@ class Collaborators extends Component {
</Modal>
{Collaboratorsvisibleadmin===true?<Modal
{Collaboratorsvisibleadmin === true ? <Modal
keyboard={false}
title="添加合作者"
visible={Collaboratorsvisibleadmin}
@ -562,17 +564,21 @@ class Collaborators extends Component {
{/*/>*/}
<span className="mr10">姓名或手机号:</span>
<Input placeholder="请输入姓名或手机号码搜索" value={user_name} onInput={(e) => {this.setState({user_name: e.target.value})}}
style={{ width: '215px'}}
<Input placeholder="请输入姓名或手机号码搜索" value={user_name} onInput={(e) => {
this.setState({user_name: e.target.value})
}}
style={{width: '215px'}}
></Input>
<span className="label ml10 " style={{ minWidth: '36px' }}>单位:</span>
<Input placeholder="请输入单位名称" className="ml10" value={school_name} onInput={(e) => {this.setState({school_name: e.target.value})}}
style={{ width: '215px'}}
<span className="label ml10 " style={{minWidth: '36px'}}>单位:</span>
<Input placeholder="请输入单位名称" className="ml10" value={school_name} onInput={(e) => {
this.setState({school_name: e.target.value})
}}
style={{width: '215px'}}
>
</Input>
<a className="task-btn task-btn-orange ml20" onClick={() => this.onSearchadmin()}
style={{ height: '30px', lineHeight: '30px', width: '70px'}}
style={{height: '30px', lineHeight: '30px', width: '70px'}}
>搜索</a>
<p className="clearfix pl35 mt20">
<span className="fl edu-txt-w100 task-hide font-bd ml10 edu-txt-left">姓名</span>
@ -584,10 +590,11 @@ class Collaborators extends Component {
<div className="mt5" style={{background: '#f7f9fd'}}>
<Spin indicator={antIcon} spinning={this.state.spinnings}>
<div className="clearfix">
<ul className="upload_select_box fl" id="search_not_teachers_list" onScroll={this.contentViewScrolledit}>
<ul className="upload_select_box fl" id="search_not_teachers_list"
onScroll={this.contentViewScrolledit}>
{Searchadmin === undefined ? <li style={{textAlign: 'center'}}>
<span>请试试搜索一下</span>
</li>:Searchadmin.length === 0 ?<NoneData/>: Searchadmin.map((item, key) => {
</li> : Searchadmin.length === 0 ? <NoneData/> : Searchadmin.map((item, key) => {
return (
<li key={key} style={{display: item.identify === "专业人士" ? "none" : "block"}}>
<Checkbox className="fl mr20" checked={item.checked}
@ -598,7 +605,7 @@ class Collaborators extends Component {
<span
title={item.school_name}
style={{width: '150px'}}
className="span3 color-grey fl edu-txt-w260 task-hide ml50 task-hide" >{item.school_name}</span>
className="span3 color-grey fl edu-txt-w260 task-hide ml50 task-hide">{item.school_name}</span>
</li>
)
})
@ -620,14 +627,14 @@ class Collaborators extends Component {
</div>
{useristrue===true?<span className={"color-red"}>请先选择用户</span>:""}
{useristrue === true ? <span className={"color-red"}>请先选择用户</span> : ""}
<div className="clearfix edu-txt-center mt20">
<a className="pop_close task-btn mb10 mr40 colorFFF"
onClick={() => this.CollaboratorsshowModal("cooperation")}>取消</a>
<a className="task-btn task-btn-orange"
onClick={() => this.submit_add_collaborators_form()}>确定</a>
</div>
</Modal>:""}
</Modal> : ""}
<style>
{
`
@ -640,36 +647,48 @@ class Collaborators extends Component {
</style>
<div className="pl20" id="collaborators_list_info">
{
collaboratorList===undefined?"":collaboratorList.map((item,key)=>{
if(key<collaboratorListsum){
return(
collaboratorList === undefined || collaboratorList.length === 0 ? "" : collaboratorList.members.map((item, key) => {
return (
<div className="collaborators-item clearfix sortinxdirection ysltithead" key={key}>
<a href={item.user.user_url} target="_blank" className="mr20 fl">
<img alt="用户头像" className="radius" height="80" src={getImageUrl("images/"+item.user.image_url)} width="80"/></a>
<a href={item.user.user_url} target="_blank" className="mr20 fl edu-position">
<img alt="用户头像" className="radius" height="48" src={getImageUrl("images/" + item.user.image_url)}
width="48"/>
<span className={item && item.user && item.user.shixun_manager === true ? "ml20 yslusercjz newyslusercjz" : "none "}
// style={{display: this.props.power === false ? "none" : "inline-block"}}
>
<p
className="yslusercjztest newyslusercjztest">{item.user.shixun_manager === true ? "创建者" : ""}</p></span>
</a>
<div className="fl collaborators-item-middles">
<p className="mb10 ">
<a href={item.user.user_url} target="_blank" className="yslusername">{item.user.name}</a>
<span className={item&&item.user&&item.user.shixun_manager === true?"ml20 yslusercjz ":"ml20"} style={{display:this.props.power===false?"none":"inline-block"}}><p className="yslusercjztest">{item.user.shixun_manager === true ? "创建者" : ""}</p></span>
{/*<span*/}
{/* className={item && item.user && item.user.shixun_manager === true ? "ml20 yslusercjz " : "ml20"}*/}
{/* style={{display: this.props.power === false ? "none" : "inline-block"}}><p*/}
{/* className="yslusercjztest">{item.user.shixun_manager === true ? "创建者" : ""}</p></span>*/}
</p>
<p className="color-grey-B2 font-12 mb10 sortinxdirection mt14">
<p className="hezuozhe660 sortinxdirection space-between">
<p className="hezuozhe630 sortinxdirection space-between">
{/*<p className={item.user.identity===null||item.user.identity===undefined||item.user.identity===""?" font-16 ":"mr20 font-16 w70"}>{item.user.identity}</p>*/}
<p className={item.user.school_name===null||item.user.school_name===""?"":"mr40 font-16 maxnamewidth150"}>{item.user.school_name}</p>
<p className="fabushixunwidth color888hezuo">发布实训项目&nbsp;&nbsp;<span className="ml2">{item.user.user_shixuns_count}</span></p>
<p
className={item.user.school_name === null || item.user.school_name === "" ? "" : "mr40 font-16 maxnamewidth150 color888hezuo"}>{item.user.school_name}</p>
<p className="fabushixunwidth color888hezuo">发布实训项目&nbsp;&nbsp;<span
className="ml2">{item.user.user_shixuns_count}</span></p>
</p>
<div className="xaxisreverseorder yslwushiwidth10">
{item.user.shixun_manager === true ? "" :
{/*删除n12.17*/}
{/*<div className="xaxisreverseorder yslwushiwidth10">*/}
{/* {item.user.shixun_manager === true ? "" :*/}
<i className="iconfont icon-shanchu newbianji1 color-grey-c font-16 w40"
style={{display: this.props.power === false ? "none" : "block"}}
onClick={() => this.collaborators_delete(item.user.user_id)}>
</i>
}
</div>
{/* <i className="iconfont icon-shanchu newbianji1 color-grey-c font-16 w40"*/}
{/* style={{display: this.props.power === false ? "none" : "block"}}*/}
{/* onClick={() => this.collaborators_delete(item.user.user_id)}>*/}
{/* </i>*/}
{/* }*/}
{/*</div>*/}
</p>
{/*<p className="mb10">*/}
@ -682,9 +701,7 @@ class Collaborators extends Component {
</div>
{/*<a href="/watchers/unwatch?object_id=3039&amp;object_type=user&amp;shixun_id=61&amp;target_id=3039" className="fr user_default_btn user_private_btn mt30 font-16 mr20" data-method="post" data-remote="true" rel="nofollow">取消关注</a>*/}
</div>
)
}
})
}
<Modal
@ -706,23 +723,28 @@ class Collaborators extends Component {
</Modal>
</div>
<div
className={collaboratorList.length>10&&collaboratorListsumtype===true?"":"none"}
style={{textAlign:'center',borderTop:'1px solid #eee'}}>
<a className="loadMore" onClick={this.loadMore}>加载更多</a>
{/*{*/}
{/* mylistansum>5?*/}
{/* <div className="edu-txt-center mt40 mb40">*/}
{/* <Pagination showQuickJumper current={page}*/}
{/* onChange={this.paginationonChanges} pageSize={limit}*/}
{/* total={mylistansum}*/}
{/* ></Pagination>*/}
{/* </div>*/}
{/* :""*/}
{/*}*/}
{/*<div*/}
{/* className={collaboratorList.length > 10 && collaboratorListsumtype === true ? "" : "none"}*/}
{/* style={{textAlign: 'center', borderTop: '1px solid #eee'}}>*/}
{/* <a className="loadMore" onClick={this.loadMore}>加载更多</a>*/}
{/* /!*{*!/*/}
{/* /!* mylistansum>5?*!/*/}
{/* /!* <div className="edu-txt-center mt40 mb40">*!/*/}
{/* /!* <Pagination showQuickJumper current={page}*!/*/}
{/* /!* onChange={this.paginationonChanges} pageSize={limit}*!/*/}
{/* /!* total={mylistansum}*!/*/}
{/* /!* ></Pagination>*!/*/}
{/* /!* </div>*!/*/}
{/* /!* :""*!/*/}
{/* /!*}*!/*/}
{/*</div>*/}
</div>
{collaboratorList && collaboratorList.member_count>10?<div className={"edu-txt-center mt30 "}>
<Pagination showQuickJumper defaultCurrent={1} total={collaboratorList && collaboratorList.member_count} onChange={this.onChangepageNumber} />
</div>:""}
</React.Fragment>
);

Loading…
Cancel
Save