chromesetting
parent
c2fc6df352
commit
83e28112b2
@ -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) => (
|
||||||
|
<div>
|
||||||
|
文件名字
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '最后修改时间',
|
||||||
|
dataIndex: 'number',
|
||||||
|
key: 'number',
|
||||||
|
align: 'center',
|
||||||
|
className: "edu-txt-center font-14 zuihoushijian",
|
||||||
|
width: '125px',
|
||||||
|
render: (text, record) => (
|
||||||
|
<div>
|
||||||
|
2019-08-12 12:30
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '最后修改人',
|
||||||
|
dataIndex: 'number',
|
||||||
|
key: 'number',
|
||||||
|
align: 'center',
|
||||||
|
className: "edu-txt-center font-14 ",
|
||||||
|
render: (text, record) => (
|
||||||
|
<div>
|
||||||
|
张大大
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '文件大小',
|
||||||
|
dataIndex: 'number',
|
||||||
|
key: 'number',
|
||||||
|
align: 'center',
|
||||||
|
className: "edu-txt-center font-14 ",
|
||||||
|
render: (text, record) => (
|
||||||
|
<div>
|
||||||
|
1.88kb
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
},
|
||||||
|
],
|
||||||
|
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 (
|
||||||
|
<React.Fragment>
|
||||||
|
<div className="tpmComment educontent clearfix mt30 mb80">
|
||||||
|
|
||||||
|
<div className="with65 fl edu-back-white commentsDelegateParent">
|
||||||
|
|
||||||
|
<TPMNav
|
||||||
|
match={match}
|
||||||
|
user={user}
|
||||||
|
shixun={shixun}
|
||||||
|
{...this.props}
|
||||||
|
></TPMNav>
|
||||||
|
|
||||||
|
<div className="padding20 edu-back-white mt20 " style={{minHeight: '463px'}}>
|
||||||
|
<div className="sortinxdirection">
|
||||||
|
<div className="tpmwidth"><Checkbox onChange={this.mysonChange}>全选</Checkbox></div>
|
||||||
|
<div className="tpmwidth xaxisreverseorder">
|
||||||
|
<div className="deletebuttom intermediatecenter "><p className="deletebuttomtest">上传文件</p></div>
|
||||||
|
{
|
||||||
|
mylistansum>0?
|
||||||
|
<div
|
||||||
|
className={selectedRowKeys.length > 0 ? "deletebutomtextcode intermediatecenter mr21" : "deletebutom intermediatecenter mr21"}>
|
||||||
|
<p className="deletebutomtext">删除</p></div>
|
||||||
|
:""
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="mt24">
|
||||||
|
<style>{`
|
||||||
|
.ant-spin-nested-loading > div > .ant-spin .ant-spin-dot {
|
||||||
|
top: 72%;}
|
||||||
|
}
|
||||||
|
.edu-table .ant-table-tbody > tr > td {
|
||||||
|
height: 42px;
|
||||||
|
}
|
||||||
|
.edu-table .ant-table-thead > tr > th{
|
||||||
|
height: 42px;
|
||||||
|
}
|
||||||
|
.ysltableowss .ant-table-thead > tr > th{
|
||||||
|
height: 42px;
|
||||||
|
}
|
||||||
|
.ysltableowss .ant-table-tbody > tr > td{
|
||||||
|
height: 42px;
|
||||||
|
}
|
||||||
|
.ysltableowss .ant-table-thead > tr > th, .ant-table-tbody > tr > td {
|
||||||
|
padding: 9px;
|
||||||
|
}
|
||||||
|
.mysjysltable4 .ant-table-thead > tr > th, .ant-table-tbody > tr > td {
|
||||||
|
padding: 0px;
|
||||||
|
}
|
||||||
|
.ant-table-thead .ant-table-selection-column span{
|
||||||
|
visibility:hidden;
|
||||||
|
}
|
||||||
|
.ant-table-thead > tr > th {
|
||||||
|
background:#FFFFFF !important;
|
||||||
|
}
|
||||||
|
.ant-table table {
|
||||||
|
width: 100%;
|
||||||
|
text-align: left;
|
||||||
|
border-radius: 4px 4px 0 0;
|
||||||
|
border-collapse: separate;
|
||||||
|
border-spacing: 0;
|
||||||
|
border-left: 1px solid #eeeeee;
|
||||||
|
border-top: 1px solid #eeeeee;
|
||||||
|
border-right: 1px solid #eeeeee;
|
||||||
|
}
|
||||||
|
`}</style>
|
||||||
|
{mylistansum===0?
|
||||||
|
<style>
|
||||||
|
{
|
||||||
|
`
|
||||||
|
.ant-table-tbody{
|
||||||
|
display:none;
|
||||||
|
}
|
||||||
|
.ant-table table {
|
||||||
|
border-bottom: 1px solid #eeeeee !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
`
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
:""
|
||||||
|
|
||||||
|
}
|
||||||
|
<div className="edu-table edu-back-white ysltableowss">
|
||||||
|
<Table
|
||||||
|
dataSource={datas}
|
||||||
|
columns={columns}
|
||||||
|
pagination={false}
|
||||||
|
className="mysjysltable4"
|
||||||
|
rowSelection={rowSelection}
|
||||||
|
rowClassName={this.rowClassName}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
{
|
||||||
|
mylistansum>5?
|
||||||
|
<div className="edu-txt-center mt40 mb20">
|
||||||
|
<Pagination showQuickJumper current={page}
|
||||||
|
onChange={this.paginationonChanges} pageSize={limit}
|
||||||
|
total={mylistansum}
|
||||||
|
></Pagination>
|
||||||
|
</div>
|
||||||
|
:""
|
||||||
|
}
|
||||||
|
|
||||||
|
{ mylistansum===0?
|
||||||
|
<NoneData style={{width: '100%'}}></NoneData>:""
|
||||||
|
}
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="with35 fr pl20">
|
||||||
|
<TPMRightSection
|
||||||
|
{...this.props}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</React.Fragment>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default TPMDataset;
|
@ -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 (
|
||||||
|
<React.Fragment>
|
||||||
|
<div className="mt30 pl20 pr20" >
|
||||||
|
<p className="clearfix mb20">
|
||||||
|
<span className="font-16 fl">简介</span>
|
||||||
|
<Tooltip placement="bottom" title={"编辑"}>
|
||||||
|
<a style={{ display: this.props.identity < 5 && ChallengesDataList&&ChallengesDataList.shixun_status < 3 ? "block" : 'none' }}
|
||||||
|
href={"/shixuns/" + id + "/settings?edit=1"} className="ring-green fr">
|
||||||
|
<img src={getImageUrl("images/educoder/icon/edit.svg")} className="fl mt3 ml2" />
|
||||||
|
</a>
|
||||||
|
</Tooltip>
|
||||||
|
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div className="justify break_full_word new_li "
|
||||||
|
id="challenge_editorMd_description">
|
||||||
|
<p id="ReactMarkdown" style={{overflow:'hidden'}}>
|
||||||
|
{ChallengesDataList === undefined ? "" :ChallengesDataList&&ChallengesDataList.description===null?"":
|
||||||
|
<div className={"markdown-body"} dangerouslySetInnerHTML={{__html: markdownToHTML(ChallengesDataList.description).replace(/▁/g,"▁▁▁")}}></div>
|
||||||
|
}
|
||||||
|
</p>
|
||||||
|
<style>
|
||||||
|
{
|
||||||
|
`
|
||||||
|
.intermediatecenter{
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sortinxdirection{
|
||||||
|
display: flex;
|
||||||
|
flex-direction:row;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xaxisreverseorder{
|
||||||
|
display: flex;
|
||||||
|
flex-direction:row-reverse;
|
||||||
|
}
|
||||||
|
`
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<div className="sortinxdirection mt60">
|
||||||
|
<div className="renwuxiangssi sortinxdirection">
|
||||||
|
<div><p className="renwuxiangqdiv">任务详情</p></div> <div><p className="renwuxiangqdivtest ml24">示例</p></div>
|
||||||
|
</div>
|
||||||
|
<div className="renwuxiangssit xaxisreverseorder"><div className="challenbaocun" onClick={()=>this.modifyjupyter()}><p className="challenbaocuntest">保存</p></div></div>
|
||||||
|
</div>
|
||||||
|
<style>
|
||||||
|
{
|
||||||
|
`
|
||||||
|
iframe {
|
||||||
|
border-width: 0px;
|
||||||
|
border-style: inset;
|
||||||
|
border-color: initial;
|
||||||
|
border-image: initial;
|
||||||
|
}
|
||||||
|
iframe {
|
||||||
|
border-left: 1px solid #eeeeee;
|
||||||
|
border-top: 1px solid #eeeeee;
|
||||||
|
border-right: 1px solid #eeeeee;
|
||||||
|
border-bottom: 1px solid #eeeeee;
|
||||||
|
}
|
||||||
|
#header{
|
||||||
|
visibility:hidden;
|
||||||
|
}
|
||||||
|
`
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<div className="mt35">
|
||||||
|
{/*https://48888.jupyter.educoder.net/tree?*/}
|
||||||
|
|
||||||
|
<div className="pb47">
|
||||||
|
<iframe src="http://121.41.4.83:48888/tree?" scrolling="no" id="ifr1" name="frame" width="100%" height="700" frameborder="0"
|
||||||
|
|
||||||
|
|
||||||
|
></iframe>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</React.Fragment>
|
||||||
|
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default Challengesjupyter;
|
@ -0,0 +1,121 @@
|
|||||||
|
.tpmborder{
|
||||||
|
border: 1px solid;
|
||||||
|
}
|
||||||
|
/* 中间居中 */
|
||||||
|
.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;
|
||||||
|
}
|
||||||
|
.deletebutom{
|
||||||
|
width:85px;
|
||||||
|
height:30px;
|
||||||
|
background:#C4C4C4;
|
||||||
|
border-radius:3px;
|
||||||
|
}
|
||||||
|
.deletebutomtext{
|
||||||
|
width:28px;
|
||||||
|
height:19px;
|
||||||
|
font-size:14px;
|
||||||
|
color:#FFFFFF;
|
||||||
|
line-height:19px;
|
||||||
|
}
|
||||||
|
.deletebuttom{
|
||||||
|
width:85px;
|
||||||
|
height:30px;
|
||||||
|
background:#29BD8B;
|
||||||
|
border-radius:3px;
|
||||||
|
}
|
||||||
|
.deletebuttomtest{
|
||||||
|
width:56px;
|
||||||
|
height:19px;
|
||||||
|
font-size:14px;
|
||||||
|
color:#FFFFFF;
|
||||||
|
line-height:19px;
|
||||||
|
}
|
||||||
|
.tpmwidth{
|
||||||
|
width: 50%;
|
||||||
|
}
|
||||||
|
.mr21{
|
||||||
|
margin-right: 21px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wenjiantit{
|
||||||
|
width: 300px;
|
||||||
|
}
|
||||||
|
.zuihoushijian{
|
||||||
|
width: 125px;
|
||||||
|
}
|
||||||
|
.zuihouxiugairen{
|
||||||
|
width: 70px;
|
||||||
|
}
|
||||||
|
.wenjiandaxiao{
|
||||||
|
width: 56px;
|
||||||
|
}
|
||||||
|
.deletebutomtextcode{
|
||||||
|
width:85px;
|
||||||
|
height:30px;
|
||||||
|
background:#FF5555;
|
||||||
|
border-radius:3px;
|
||||||
|
}
|
||||||
|
.light-row{
|
||||||
|
background: #F7F7F8;
|
||||||
|
}
|
||||||
|
.dark-row{
|
||||||
|
background: #FFFFFF;
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in new issue