diff --git a/public/react/src/App.js b/public/react/src/App.js index 2fa9e0765..0d24db7c2 100644 --- a/public/react/src/App.js +++ b/public/react/src/App.js @@ -358,7 +358,7 @@ class App extends Component { mydisplay:true, }) }; - + disableVideoContextMenu = () => { window.$( "body" ).on( "mousedown", "video", function(event) { if(event.which === 3) { @@ -577,14 +577,14 @@ class App extends Component { { - + return () } }> { + (props) => { return () } }> @@ -615,7 +615,7 @@ class App extends Component { - {/*列表页*/} + {/*列表页 实训项目列表*/} @@ -637,8 +637,8 @@ class App extends Component { () }/> - - () } @@ -671,7 +671,7 @@ class App extends Component { (props)=>() }/> - { return () @@ -679,11 +679,11 @@ class App extends Component { } /> () } /> - () } @@ -703,7 +703,7 @@ class App extends Component { (props)=>() } /> - + @@ -825,4 +825,4 @@ moment.defineLocale('zh-cn', { doy: 4 // The week that contains Jan 4th is the first week of the year. } }); -export default SnackbarHOC()(App) ; \ No newline at end of file +export default SnackbarHOC()(App) ; diff --git a/public/react/src/modules/courses/coursesPublic/NewShixunModel.js b/public/react/src/modules/courses/coursesPublic/NewShixunModel.js index a20f7733c..315f5ff99 100644 --- a/public/react/src/modules/courses/coursesPublic/NewShixunModel.js +++ b/public/react/src/modules/courses/coursesPublic/NewShixunModel.js @@ -539,6 +539,17 @@ class NewShixunModel extends Component{ className="fl task-hide edu-txt-left mt3" name="shixun_homework[]" > + { + this.props.type==='shixuns'? +
+

+ Jupyter +

+
+ :"" + } + + @@ -684,4 +695,4 @@ export default NewShixunModel; // {} // ) // })} -// } \ No newline at end of file +// } diff --git a/public/react/src/modules/courses/coursesPublic/Newshixunmodel.css b/public/react/src/modules/courses/coursesPublic/Newshixunmodel.css index 42595bf29..2bf7b363f 100644 --- a/public/react/src/modules/courses/coursesPublic/Newshixunmodel.css +++ b/public/react/src/modules/courses/coursesPublic/Newshixunmodel.css @@ -384,4 +384,23 @@ .newshixunmodels{ margin: 0 auto; -} \ No newline at end of file +} +.myysljupyter{ + width:48px; + height:22px; + background:#FF6802; + border-radius:2px 10px 10px 2px; +} +.myysljupytertest{ + width:39px; + height:16px; + font-size:12px; + color:#FFFFFF; + line-height:16px; +} +.intermediatecenter{ + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + } diff --git a/public/react/src/modules/tpm/TPMBanner.js b/public/react/src/modules/tpm/TPMBanner.js index b660001c6..d025443cf 100644 --- a/public/react/src/modules/tpm/TPMBanner.js +++ b/public/react/src/modules/tpm/TPMBanner.js @@ -55,8 +55,9 @@ class TPMBanner extends Component { isIE:false, Forkvisibletype: false, isSpin:false, - Senttothevcaluetype:false - } + Senttothevcaluetype:false, + jupyterbool:false, + } } // star_info:[0, 0, 0, 0, 0, 0], @@ -656,7 +657,7 @@ class TPMBanner extends Component { {/*{shixunsDetails.experience}*/} {/**/}
  • - 难度系数 + 难度级别 {shixunsDetails.diffcult}
  • diff --git a/public/react/src/modules/tpm/TPMChallenge.js b/public/react/src/modules/tpm/TPMChallenge.js index 847e8b965..630a233fd 100644 --- a/public/react/src/modules/tpm/TPMChallenge.js +++ b/public/react/src/modules/tpm/TPMChallenge.js @@ -1,54 +1,61 @@ -import React, { Component } from 'react'; -import { Redirect } from 'react-router'; - -import PropTypes from 'prop-types'; - -import { CircularProgress } from 'material-ui/Progress'; - -import './TPMShixunDiscuss.css' - -import Challenges from './shixunchild/Challenges/Challenges' - -import TPMRightSection from './component/TPMRightSection' - -import TPMNav from './component/TPMNav' - -class TPMChallenge extends Component { - constructor(props) { - super(props) - - } - - render() { - const { loadingContent, shixun, user, match - } = this.props; - return ( - -
    - -
    - - - -
    - -
    - -
    -
    -
    - - ); - } -} - -export default TPMChallenge; +import React, { Component } from 'react'; +import { Redirect } from 'react-router'; + +import PropTypes from 'prop-types'; + +import { CircularProgress } from 'material-ui/Progress'; + +import './TPMShixunDiscuss.css' + +import Challenges from './shixunchild/Challenges/Challenges' +import Challengesjupyter from './shixunchild/Challenges/Challengesjupyter' +import TPMRightSection from './component/TPMRightSection' + +import TPMNav from './component/TPMNav' + +class TPMChallenge extends Component { + constructor(props) { + super(props) + + } + + render() { + const { loadingContent, shixun, user, match,jupyterbool + } = this.props; + return ( + +
    + +
    + + { + jupyterbool===true? + + : + } + + +
    + +
    + +
    +
    +
    + + ); + } +} + +export default TPMChallenge; diff --git a/public/react/src/modules/tpm/TPMDataset.js b/public/react/src/modules/tpm/TPMDataset.js new file mode 100644 index 000000000..bf35744fe --- /dev/null +++ b/public/react/src/modules/tpm/TPMDataset.js @@ -0,0 +1,268 @@ +import React, {Component} from 'react'; +import {Redirect} from 'react-router'; +import {List, Typography, Tag, Modal, Radio, Checkbox, Table, Pagination} from 'antd'; +import { NoneData } from 'educoder' + +import TPMRightSection from './component/TPMRightSection'; +import TPMNav from './component/TPMNav'; +import axios from 'axios'; +import './tpmmodel/tpmmodel.css' + +class TPMDataset extends Component { + constructor(props) { + super(props) + this.state = { + datas: [0, 1, 2, 3, 4, 5], + value: undefined, + columns: [ + { + title: '文件', + dataIndex: 'number', + key: 'number', + align: 'left', + className: " font-14 wenjiantit", + width: '300px', + render: (text, record) => ( +
    + 文件名字 +
    + ) + }, + { + title: '最后修改时间', + dataIndex: 'number', + key: 'number', + align: 'center', + className: "edu-txt-center font-14 zuihoushijian", + width: '125px', + render: (text, record) => ( +
    + 2019-08-12 12:30 +
    + ) + }, + { + title: '最后修改人', + dataIndex: 'number', + key: 'number', + align: 'center', + className: "edu-txt-center font-14 ", + render: (text, record) => ( +
    + 张大大 +
    + ) + }, + { + title: '文件大小', + dataIndex: 'number', + key: 'number', + align: 'center', + className: "edu-txt-center font-14 ", + render: (text, record) => ( +
    + 1.88kb +
    + ) + }, + ], + page: 1, + limit: 5, + selectedRowKeys: [], + mylistansum:30, + } + } + + componentDidMount() { + this.getdatas() + + } + + mysonChange = (e) => { + console.log(`全选checked = ${e.target.checked}`); + if (e.target.checked === true) { + this.setState({ + selectedRowKeys: this.state.datas, + }) + } else { + this.setState({ + selectedRowKeys: [], + }) + } + } + + + getdatas = () => { + + + } + + showModal = (id, status) => { + + }; + + handleOk = (id, editid) => { + + }; + + handleCancel = (e) => { + + }; + paginationonChanges = (pageNumber) => { + // //console.log('Page: '); + this.setState({ + page: pageNumber, + }) + } + onSelectChange = (selectedRowKeys, selectedRows) => { + console.log(`selectedRowKeys: ${selectedRowKeys}`, 'selectedRows: ', selectedRows); + this.setState( + { + selectedRowKeys + } + ); + + } + rowClassName = (record, index) => { + let className = 'light-row'; + if (index % 2 === 1) className = 'dark-row'; + return className; + } + + render() { + const {tpmLoading, shixun, user, match} = this.props; + const {columns, datas, page, limit, selectedRowKeys,mylistansum} = this.state; + const rowSelection = { + selectedRowKeys, + onChange: this.onSelectChange, + }; + // getCheckboxProps: record => ({ + // disabled: record.name === 'Disabled User', // Column configuration not to be checked + // name: record.name, + // }), + return ( + +
    + +
    + + + +
    +
    +
    全选
    +
    +

    上传文件

    + { + mylistansum>0? +
    0 ? "deletebutomtextcode intermediatecenter mr21" : "deletebutom intermediatecenter mr21"}> +

    删除

    + :"" + } +
    +
    +
    + + {mylistansum===0? + + :"" + + } +
    + + + { + mylistansum>5? +
    + +
    + :"" + } + + { mylistansum===0? + :"" + } + + + + + + +
    + +
    + + + ); + } +} + +export default TPMDataset; diff --git a/public/react/src/modules/tpm/TPMIndex.js b/public/react/src/modules/tpm/TPMIndex.js index 7fd389197..9c82e987d 100644 --- a/public/react/src/modules/tpm/TPMIndex.js +++ b/public/react/src/modules/tpm/TPMIndex.js @@ -27,7 +27,7 @@ import TPMPropaedeuticsComponent from './TPMPropaedeuticsComponent'; import TPMRanking_listComponent from './TPMRanking_listContainer'; import TPMCollaboratorsComponent from './TPMCollaboratorsContainer'; import Audit_situationComponent from './Audit_situationComponent'; - +import TPMDataset from './TPMDataset'; import '../page/tpiPage.css' const $ = window.$ @@ -142,6 +142,7 @@ class TPMIndex extends Component { identity:undefined, TPMRightSectionData:undefined, PropaedeuticsList: undefined, + tpmindexjupyterbool:false, } } @@ -192,7 +193,7 @@ class TPMIndex extends Component { propaedeutics:response.data.propaedeutics, status: response.data.shixun_status, secret_repository: response.data.secret_repository, - + }); } }).catch((error) => { @@ -259,8 +260,8 @@ class TPMIndex extends Component { axios.interceptors.request.eject(this.tpmContentResponseInterceptor); this.tpmContentResponseInterceptor = null; } - - + + setLoadingContent = (isLoadingContent) => { this.setState({ loadingContent: isLoadingContent }) } @@ -270,20 +271,29 @@ class TPMIndex extends Component { // } render() { + let url = window.location.href; let flag = url.indexOf("add_file")>-1; return (
    + {/*头部*/} { - !flag && + !flag && } - + {/*筛选*/} + {/*{*/} + {/* tpmindexjupyterbool===false?*/} + + {/* :""*/} + {/*}*/} + {/* */} + - + () @@ -294,7 +304,7 @@ class TPMIndex extends Component { }> ( () }> @@ -311,7 +321,7 @@ class TPMIndex extends Component { (props) => () }> - + {/* */} ) }> - + {/* */} @@ -342,12 +352,17 @@ class TPMIndex extends Component { (props) => () }> - + {/*实训项目条目塞选*/} () }> + () + }> + () diff --git a/public/react/src/modules/tpm/component/TPMNav.js b/public/react/src/modules/tpm/component/TPMNav.js index ccc93546e..025b26223 100644 --- a/public/react/src/modules/tpm/component/TPMNav.js +++ b/public/react/src/modules/tpm/component/TPMNav.js @@ -36,6 +36,10 @@ class TPMNav extends Component { 合作者 + {/*jupyter*/} + 数据集 + 评论 diff --git a/public/react/src/modules/tpm/shixunchild/Challenges/Challengesjupyter.js b/public/react/src/modules/tpm/shixunchild/Challenges/Challengesjupyter.js new file mode 100644 index 000000000..3b7abf44b --- /dev/null +++ b/public/react/src/modules/tpm/shixunchild/Challenges/Challengesjupyter.js @@ -0,0 +1,354 @@ +import React, { Component } from 'react'; + +import { Redirect } from 'react-router'; + +import { BrowserRouter as Router, Route, Link, Switch } from "react-router-dom"; + +import PropTypes from 'prop-types'; + +import classNames from 'classnames'; + +import { getImageUrl ,markdownToHTML, configShareForCustom} from 'educoder' + +import { CircularProgress } from 'material-ui/Progress'; + +import { Modal, Spin, Tooltip ,message,Icon} from 'antd'; + +import 'antd/lib/pagination/style/index.css'; + +import '../shixunchildCss/Challenges.css' +import ReactDOM from 'react-dom'; +import axios from 'axios'; + +import AccountProfile from"../../../user/AccountProfile"; + +const $ = window.$; + + +class Challengesjupyter extends Component { + constructor(props) { + super(props) + this.state = { + ChallengesDataList: undefined, + operate: true, + startbtns: false, + iFrameHeight: '0px' + } + } + + ChallengesList = () => { + let id = this.props.match.params.shixunId; + let ChallengesURL = `/shixuns/` + id + `/challenges.json`; + + axios.get(ChallengesURL).then((response) => { + if (response.status === 200) { + if (response.data.status === 403||response.data.status === 401||response.data.status === 500) { + + }else{ + configShareForCustom(this.props.shixunsDetails.name, response.data.description) + this.setState({ + ChallengesDataList: response.data, + sumidtype: false, + }); + } + } + }).catch((error) => { + console.log(error) + }); + } + + componentDidMount() { + setTimeout(this.ChallengesList(), 1000); + // var iframe = + // document.getElementById('ifr1'); + // console.log("iframe||||||||"); + // console.log(iframe); + // if(iframe){ + // // var headertest=test.contentWindow.document.getElementById('header'); + // // console.log(headertest); + // var iwindow = iframe.contentWindow; + // var idoc = iwindow.document; + // console.log("window",iwindow);//获取iframe的window对象 + // console.log("windowwindow",iwindow.document.getElementById('header'));//获取iwindow.document对象 + // console.log("document",idoc); //获取iframe的document + // console.log("documentdocument",idoc.getElementById('header')); + // console.log("html",idoc.documentElement);//获取iframe的html + // console.log("head",idoc.head); //获取head + // console.log("body",idoc.body); //获取body + // } + + + } + + updatamakedown = (id) => { + + } + + // 关卡的上移下移操作 + operations = (sumid, type) => { + + } + delOperations = (sumid) => { + + } + + clonedelOperationss = () => { + + } + delOperationss = () => { + + } + + startgameid=(id)=>{ + + + + + } + + hidestartshixunsreplace=(url)=>{ + + + } + + //编辑实训题目选择题 + EditTraining=(type, ids, path)=>{ + + } + + //开始实战按钮 + startshixunCombat = (type, ids, id) => { + + + + + } + hidestartshixunCombattype=()=>{ + + } + + hideAccountProfile=()=>{ + + }; + + modifyjupyter=()=>{ + // var ifr =window.parent.frames["frame"].document; + // console.log(ifr); + + var ifr = window.document.getElementById("ifr1"); + console.log("modifyjupyter"); + console.log(ifr); + const iframe = window.document.getElementById('ifr1'); + console.log("modifyjupyter"); + const frameWindow = iframe.contentWindow; + console.log(frameWindow); + const frameDocument = frameWindow.document; + console.log(frameDocument); + + // window.addEventListener('load', () => { + // console.log('12313页面加载好了'); + // const iframe = document.getElementById('ifr1'); + // if (iframe && iframe.contentWindow && this.props.iframe_src) { + // console.log('32131231yes mounted'); + // console.log(iframe.contentWindow); + // } else { + // console.log('3242242not mounted') + // } + // }); + + // var editor; + // editor = document.getElementById("ifr1").contentWindow; + // console.log(editor); + + + + // window.onload = () => { + // var testwindow = + // document.getElementById('ifr1').contentWindow; + // + // } + + + + + // var iframe=window.frames["ifr1"]; + // // var title =${'ifr1'} + // console.log("iframe"); + // console.log(iframe); + // var frames = window.frames; // 或 // var frames = window.parent.frames; + // for (var i = 0; i < frames.length; i++) { + // // 在这对frames的一个frame做点什么 + // // frames[i].document.body.style.background = "red"; + // console.log(frames[i]); + // + // } + // var idoc = iframe.document; + // console.log(idoc); + // var iwindow = title.contentWindow; + // console.log("iwindow"); + // console.log(iwindow); + // var idoc = iwindow.document; + // console.log(idoc); + // window.addEventListener('message', receiveMessageFromParent, false); + // + // let messageButton = document.getElementById('message_button'); + // /* console.log('msg button', messageButton); annoataion cannot use \/\/ */ + // messageButton.addEventListener('click', function (e) { + // console.log('iframe send msg'); + // console.log('parent', window.parent); + // console.log('top container', window.top); + // window.parent.postMessage('This is child', '*'); + // }, false); + + + + + + + // var iframe = $('#ifr1'); + // console.log(iframe.context.find('#save-notbook')); + // console.log("iframe"); + // console.log(iframe) + // title.window.say(); //myFrame.say();也可 + // + // title.window.document.getElementById("button").value="保存并检查"; + //find button inside iframe + // let button = iframe.contents().find('#save-notbook'); + // //trigger button click + // button.trigger("click"); + // console.log("iframe||||||||"); + // if(iframe){ + // var iwindow = iframe.contentWindow; + // var idoc = iwindow.document; + // console.log("window",iwindow);//获取iframe的window对象 + // console.log("document",idoc); //获取iframe的document + // console.log("html",idoc.documentElement);//获取iframe的html + // console.log("head",idoc.head); //获取head + // console.log("body",idoc.body); //获取body + // } + // var test = + // document.getElementById('ifr1').contentWindow.document.getElementById('header'); + // test.style.background = "#333"; + + } + + render() { + let{ChallengesDataList}=this.state; + let id = this.props.match.params.shixunId; +// var deptObjs=document.getElementById("IFRAMEID").contentWindow.document.getElementById("TAGID"); +// //判断此元素是否存在 +// if(deptObjs!=null){ +// //设置该元素的样式或其他属性 +// deptObjs.setAttribute('style',' height: 20px !important;'); //!important用来提升指定样式条目的应用优先权 +// } +// var submitObj = document.getElementById('submit'); +// if(submitObj){ +// submitObj.style.color = 'green'; +// } +// const dom = document.getElementById('shutdown'); +// ReactDOM.unmountComponentAtNode(dom) +// // window.$('#picture_display').hide(); +// window.$('.data-tip-right').hide() +// window.onload=()=>{ +// debugger +// var _iframe = document.getElementById('header'); +// console.log(_iframe); +// // .contentWindow.document.getElementById('shutdown_widget') //get iframe下的id +// // _iframe.style.display= "none"; //修改样式 +// } + + + + + + return ( + +
    +

    + 简介 + + + + + + +

    + +
    +

    + {ChallengesDataList === undefined ? "" :ChallengesDataList&&ChallengesDataList.description===null?"": +

    + } +

    + + +
    +
    +

    任务详情

    示例

    +
    +
    this.modifyjupyter()}>

    保存

    +
    + +
    + {/*https://48888.jupyter.educoder.net/tree?*/} + +
    + +
    +
    +
    +
    + +
    + + ) + } +} + +export default Challengesjupyter; diff --git a/public/react/src/modules/tpm/shixunchild/Collaborators/Collaborators.css b/public/react/src/modules/tpm/shixunchild/Collaborators/Collaborators.css index 31917086f..4c45f581d 100644 --- a/public/react/src/modules/tpm/shixunchild/Collaborators/Collaborators.css +++ b/public/react/src/modules/tpm/shixunchild/Collaborators/Collaborators.css @@ -6,4 +6,126 @@ .line27{ line-height: 27px; vertical-align: 1px; -} \ No newline at end of file +} +/* 中间居中 */ +.intermediatecenter{ + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; +} +/* 简单居中 */ +.intermediatecenterysls{ + display: flex; + align-items: center; +} +.spacearound{ + display: flex; + justify-content: space-around; + +} +.spacebetween{ + display: flex; + justify-content: space-between; +} +/* 头顶部居中 */ +.topcenter{ + display: -webkit-flex; + flex-direction: column; + align-items: center; + +} + + +/* x轴正方向排序 */ +/* 一 二 三 四 五 六 七 八 */ +.sortinxdirection{ + display: flex; + flex-direction:row; + +} +/* x轴反方向排序 */ +/* 八 七 六 五 四 三 二 一 */ +.xaxisreverseorder{ + display: flex; + flex-direction:row-reverse; +} +/* 垂直布局 正方向*/ +/* 一 + 二 + 三 + 四 + 五 + 六 + 七 + 八 */ +.verticallayout{ + display: flex; + flex-direction:column; +} +/* 垂直布局 反方向*/ +.reversedirection{ + display: flex; + flex-direction:column-reverse; +} + +.yslwushiwidth{ + width: 50%; +} +.yslwushiwidth90{ + width: 90%; +} +.yslwushiwidth10{ + width: 10%; +} +.yslwushiwidthbuton{ + width: 110px; +} +.yslwushiwidthcolortest{ + color: #A8A8A8; + font-size:16px; +} +.yslusername{ + color: #000000; + font-size: 18px; +} +.yslusercjz{ + width:60px; + height:28px; + border-radius:3px; + border:1px solid #F38B03; +} +.yslusercjztest{ + width:60px; + height:28px; + font-size:16px; + color:#F38B03; + line-height:28px; + text-align: center; +} +.w18{ + width: 18px; +} + +.maxnamewidth150{ + width: 150px; + max-width: 150px; + overflow:hidden; + text-overflow:ellipsis; + white-space:nowrap; + cursor: default; +} +.fabushixunwidth{ + color: #000000; + font-size: 16px; +} +.fabushixunwidthcolor{ + color: #4CACFF; + font-size: 16px; +} +.divfontexdivs{ + border-left: 1px solid #eeeeee; + border-top: 1px solid #eeeeee; + border-right: 1px solid #eeeeee; + border-bottom: 1px solid #eeeeee; +} diff --git a/public/react/src/modules/tpm/shixunchild/Collaborators/Collaborators.js b/public/react/src/modules/tpm/shixunchild/Collaborators/Collaborators.js index d67599bf1..51e56a601 100644 --- a/public/react/src/modules/tpm/shixunchild/Collaborators/Collaborators.js +++ b/public/react/src/modules/tpm/shixunchild/Collaborators/Collaborators.js @@ -2,7 +2,7 @@ import React, { Component } from 'react'; import { Redirect } from 'react-router'; -import {Modal, Button, Radio, Input, Checkbox,message,Spin, Icon} 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"; @@ -48,7 +48,9 @@ class Collaborators extends Component { user_name:undefined, school_name:undefined, spinnings:false, - useristrue:false + useristrue:false, + mylistansum:6, + limit:20, } } componentDidMount() { @@ -434,7 +436,10 @@ class Collaborators extends Component { collaboratorListsumtype, user_name, school_name, - useristrue + useristrue, + mylistansum, + page, + limit } = this.state; let {loadingContent} = this.props; const radioStyle = { @@ -448,18 +453,26 @@ class Collaborators extends Component { console.log(Searchadmin) return ( -

    - this.showCollaboratorsvisible("cooperation")} - className="edu-default-btn edu-greenback-btn fr mr20 height40" - data-remote="true"> - + 添加合作者 - - this.showCollaboratorsvisible("admin")} - style={{display:this.props.identity===1?"block":"none"}} - data-remote="true" - className="edu-default-btn edu-greenback-btn fr mr20 height40">更换管理员 +

    +

    共12人

    +
    + + +

    职业 单位

    + +
    @@ -584,39 +599,58 @@ class Collaborators extends Component { onClick={() => this.submit_add_collaborators_form()}>确定
    :""} - +
    { collaboratorList===undefined?"":collaboratorList.map((item,key)=>{ if(key - - 用户头像 -
    -

    - {item.user.name} - - {item.user.shixun_manager === true ? "(管理员)" : ""} -

    +
    + + 用户头像 -

    {item.user.identity}{item.user.school_name}

    -

    - 发布  {item.user.user_shixuns_count} - {/*粉丝  */} - {/*{item.user.fans_count}*/} - {/**/} -

    +
    +

    + {item.user.name} - {/*

    {item.user.brief_introduction}

    */} +

    {item.user.shixun_manager === true ? "创建者" : ""}

    +

    +

    +

    +

    {item.user.identity}

    +

    {item.user.school_name}

    +

    发布实训项目  {item.user.user_shixuns_count}

    +

    +
    + {item.user.shixun_manager === true ? "" : + + this.collaborators_delete(item.user.user_id)}> + + } +
    +

    + {/*

    */} + {/* */} + {/* /!*粉丝  *!/*/} + {/* /!*{item.user.fans_count}*!/*/} + {/* /!**!/*/} + {/*

    */} + {/*

    {item.user.brief_introduction}

    */}
    - - {item.user.shixun_manager === true ? "" : this.collaborators_delete(item.user.user_id)}>删除} {/*取消关注*/}
    @@ -646,8 +680,19 @@ class Collaborators extends Component {
    10&&collaboratorListsumtype===true?"":"none"} style={{textAlign:'center',borderTop:'1px solid #eee'}}> - 加载更多 -
    + {/*加载更多*/} + { + mylistansum>5? +
    + +
    + :"" + } + +
    diff --git a/public/react/src/modules/tpm/shixunchild/shixunchildCss/Challenges.css b/public/react/src/modules/tpm/shixunchild/shixunchildCss/Challenges.css index 493a95301..1fe5bf652 100644 --- a/public/react/src/modules/tpm/shixunchild/shixunchildCss/Challenges.css +++ b/public/react/src/modules/tpm/shixunchild/shixunchildCss/Challenges.css @@ -25,4 +25,44 @@ .addshixuns{ height: 27px; line-height: 25px; -} \ No newline at end of file +} +.challenbaocun{ + width:80px; + height:30px; + background:#29BD8B; + border-radius:3px; +} +.challenbaocuntest{ + width:80px; + height:30px; + font-size:16px; + color:#FFFFFF; + text-align: center; + line-height:30px; +} +.renwuxiangqdiv{ + width:72px; + height:30px; + font-size:18px; + color:#000000; + line-height:30px; +} +.renwuxiangqdivtest{ + width:32px; + height:30px; + font-size:16px; + font-family:MicrosoftYaHei; + color:#4CACFF; + line-height:30px; +} + +.renwuxiangssi{ + width: 30%; +} +.renwuxiangssit{ + width: 70%; +} + +.pb47{ + padding-bottom: 47px; +} diff --git a/public/react/src/modules/tpm/shixuns/ShixunCard.js b/public/react/src/modules/tpm/shixuns/ShixunCard.js index 9f62ed6b7..19908d0dd 100644 --- a/public/react/src/modules/tpm/shixuns/ShixunCard.js +++ b/public/react/src/modules/tpm/shixuns/ShixunCard.js @@ -95,6 +95,33 @@ class ShixunCard extends Component { left: 10px; bottom: 125px; } + .tag-org{ + position: absolute; + left: 0px; + top: 20px; + } + .tag-org-name{ + width:66px; + height:28px; + background:#FF6802; + width:66px; + height:28px; + border-radius:0px 20px 20px 0px; + } + .tag-org-name-test{ + width:45px; + height:23px; + font-size:14px; + color:#FFFFFF; + line-height:19px; + margin-right: 6px; + } + .intermediatecenter{ + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + } ` } @@ -105,6 +132,10 @@ class ShixunCard extends Component { {/**/}
    } +
    +

    Jupyter

    + {/**/} +
    diff --git a/public/react/src/modules/tpm/shixuns/ShixunsIndex.js b/public/react/src/modules/tpm/shixuns/ShixunsIndex.js index 15579610d..581301766 100644 --- a/public/react/src/modules/tpm/shixuns/ShixunsIndex.js +++ b/public/react/src/modules/tpm/shixuns/ShixunsIndex.js @@ -404,7 +404,7 @@ class ShixunsIndex extends Component { {...this.state} OnSearchInput={this.OnSearchInput.bind(this)} /> - + {/*下方图片*/} { - // course 课堂, shixun 开发社区 subject 实践课程 memo 交流问答 + // course 2 课堂, shixun 0 实训项目 subject 1 实践课程 memo 3交流问答 let types =""; if(parseInt(e.key)===0){ @@ -106,7 +107,7 @@ class SearchPage extends Component{ } }).then((response) => { this.setState({ loading: false }) - + if(response === undefined){ return @@ -193,10 +194,23 @@ class SearchPage extends Component{
    {/*标题*/} - +
    + { + type==="shixun"? +

    Jupyter

    + :"" + } + +
    + {/*描述*/}
    + + + + {item.content.content === undefined || item.content.content===0?"": item.content.content.map((item4, key4) => { return ( {/*挑战名字*/} - - + + {item.content.challenge_names === undefined || item.content.challenge_names===0?"": item.content.challenge_names.map((item5, key5) => { return (
    @@ -269,13 +283,13 @@ class SearchPage extends Component{ {/* 主讲:{item.author_name} - {item.author_school_name} + {item.author_school_name} 任务: {item.challenges_count===undefined?0:item.challenges_count} - + 学习人数: @@ -287,7 +301,7 @@ class SearchPage extends Component{ {/* */} {item.author_name} {item.author_school_name} - + {!!item.challenges_count && {/* */} 任务: @@ -325,7 +339,7 @@ class SearchPage extends Component{ {/* */} 回复数:{item.all_replies_count} } - + {/* @@ -368,4 +382,4 @@ class SearchPage extends Component{ } } -export default SnackbarHOC() (TPMIndexHOC ( SearchPage )); \ No newline at end of file +export default SnackbarHOC() (TPMIndexHOC ( SearchPage )); diff --git a/public/react/src/search/searchc.css b/public/react/src/search/searchc.css index 15c34650b..f2fb9ce85 100644 --- a/public/react/src/search/searchc.css +++ b/public/react/src/search/searchc.css @@ -131,4 +131,45 @@ margin-top: 20px; display: flex; flex-direction:row; -} \ No newline at end of file +} +.jupytertext{ + width:54px; + height:24px; + background:#FF6802; + border-radius:2px 10px 10px 2px; + margin-top: 2px; + text-align: center; + +} +.jupytertextp{ + width:39px; + height:16px; + font-size:12px; + color:#FFFFFF; + line-height:16px; +} +/* x轴正方向排序 */ +/* 一 二 三 四 五 六 七 八 */ +.sortinxdirection{ + display: flex; + flex-direction:row; +} +/* x轴反方向排序 */ +/* 八 七 六 五 四 三 二 一 */ +.xaxisreverseorder{ + display: flex; + flex-direction:row-reverse; +} +.intermediatecenter{ + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; +} +.jupytertextheig{ + height: 32px; + line-height: 32px; +} +.ml9{ + margin-left: 9px; +}