Merge branch 'master' of https://bdgit.educoder.net/Hjqreturn/educoder
commit
b9e16f832b
File diff suppressed because it is too large
Load Diff
After Width: | Height: | Size: 154 KiB |
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,9 @@
|
||||
/*!
|
||||
* Cropper.js v1.5.2
|
||||
* https://fengyuanchen.github.io/cropperjs
|
||||
*
|
||||
* Copyright 2015-present Chen Fengyuan
|
||||
* Released under the MIT license
|
||||
*
|
||||
* Date: 2019-06-30T06:01:02.389Z
|
||||
*/.cropper-container{direction:ltr;font-size:0;line-height:0;position:relative;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.cropper-container img{display:block;height:100%;image-orientation:0deg;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;width:100%}.cropper-canvas,.cropper-crop-box,.cropper-drag-box,.cropper-modal,.cropper-wrap-box{bottom:0;left:0;position:absolute;right:0;top:0}.cropper-canvas,.cropper-wrap-box{overflow:hidden}.cropper-drag-box{background-color:#fff;opacity:0}.cropper-modal{background-color:#000;opacity:.5}.cropper-view-box{display:block;height:100%;outline:1px solid #39f;outline-color:rgba(51,153,255,.75);overflow:hidden;width:100%}.cropper-dashed{border:0 dashed #eee;display:block;opacity:.5;position:absolute}.cropper-dashed.dashed-h{border-bottom-width:1px;border-top-width:1px;height:33.33333%;left:0;top:33.33333%;width:100%}.cropper-dashed.dashed-v{border-left-width:1px;border-right-width:1px;height:100%;left:33.33333%;top:0;width:33.33333%}.cropper-center{display:block;height:0;left:50%;opacity:.75;position:absolute;top:50%;width:0}.cropper-center:after,.cropper-center:before{background-color:#eee;content:" ";display:block;position:absolute}.cropper-center:before{height:1px;left:-3px;top:0;width:7px}.cropper-center:after{height:7px;left:0;top:-3px;width:1px}.cropper-face,.cropper-line,.cropper-point{display:block;height:100%;opacity:.1;position:absolute;width:100%}.cropper-face{background-color:#fff;left:0;top:0}.cropper-line{background-color:#39f}.cropper-line.line-e{cursor:ew-resize;right:-3px;top:0;width:5px}.cropper-line.line-n{cursor:ns-resize;height:5px;left:0;top:-3px}.cropper-line.line-w{cursor:ew-resize;left:-3px;top:0;width:5px}.cropper-line.line-s{bottom:-3px;cursor:ns-resize;height:5px;left:0}.cropper-point{background-color:#39f;height:5px;opacity:.75;width:5px}.cropper-point.point-e{cursor:ew-resize;margin-top:-3px;right:-3px;top:50%}.cropper-point.point-n{cursor:ns-resize;left:50%;margin-left:-3px;top:-3px}.cropper-point.point-w{cursor:ew-resize;left:-3px;margin-top:-3px;top:50%}.cropper-point.point-s{bottom:-3px;cursor:s-resize;left:50%;margin-left:-3px}.cropper-point.point-ne{cursor:nesw-resize;right:-3px;top:-3px}.cropper-point.point-nw{cursor:nwse-resize;left:-3px;top:-3px}.cropper-point.point-sw{bottom:-3px;cursor:nesw-resize;left:-3px}.cropper-point.point-se{bottom:-3px;cursor:nwse-resize;height:20px;opacity:1;right:-3px;width:20px}@media (min-width:768px){.cropper-point.point-se{height:15px;width:15px}}@media (min-width:992px){.cropper-point.point-se{height:10px;width:10px}}@media (min-width:1200px){.cropper-point.point-se{height:5px;opacity:.75;width:5px}}.cropper-point.point-se:before{background-color:#39f;bottom:-50%;content:" ";display:block;height:200%;opacity:0;position:absolute;right:-50%;width:200%}.cropper-invisible{opacity:0}.cropper-bg{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC")}.cropper-hide{display:block;height:0;position:absolute;width:0}.cropper-hidden{display:none!important}.cropper-move{cursor:move}.cropper-crop{cursor:crosshair}.cropper-disabled .cropper-drag-box,.cropper-disabled .cropper-face,.cropper-disabled .cropper-line,.cropper-disabled .cropper-point{cursor:not-allowed}
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,6 +1,6 @@
|
||||
export function bytesToSize(bytes) {
|
||||
var sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];
|
||||
if (bytes == 0) return '0 Byte';
|
||||
var i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)));
|
||||
return Math.round(bytes / Math.pow(1024, i), 2) + ' ' + sizes[i];
|
||||
export function bytesToSize(bytes) {
|
||||
var sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];
|
||||
if (bytes == 0) return '0 Byte';
|
||||
var i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)));
|
||||
return parseFloat(bytes / Math.pow(1024, i), 2).toFixed(1) + ' ' + sizes[i];
|
||||
}
|
@ -1,75 +1,75 @@
|
||||
.slider-img-wrapper img {
|
||||
width: 100%;
|
||||
border-radius: 15px;
|
||||
height: 350px;
|
||||
}
|
||||
.next-slick-list{
|
||||
width: 100%;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
.user_navlist{
|
||||
margin-left: 40px;
|
||||
}
|
||||
.next-slick-list{
|
||||
margin-left: 12px;
|
||||
}
|
||||
|
||||
.black_nav_span{
|
||||
display: block;
|
||||
margin: 0px 20px;
|
||||
border-bottom: 1px solid #4B4B4B;
|
||||
padding-left: 8px;
|
||||
color: #FAFAFA;
|
||||
}
|
||||
|
||||
.user_navlist_white{
|
||||
z-index: 100 !important;
|
||||
}
|
||||
|
||||
.next-slick.next-slick-horizontal.next-slick-outer{
|
||||
height: 350px;
|
||||
}
|
||||
|
||||
.black_nav_list li span a{
|
||||
color:#fff;
|
||||
}
|
||||
.black_nav_list li span a:hover{
|
||||
color:#000;
|
||||
}
|
||||
.black_nav_list li:hover span a{
|
||||
color:#000;
|
||||
}
|
||||
.little-titles{
|
||||
height: 22px !important;
|
||||
}
|
||||
|
||||
.user_navlist_white a{
|
||||
color: #989898 !important;
|
||||
}
|
||||
.user_navlist_white .navlistpanel-line .little-titles a{
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.newnext-loading{
|
||||
display:block;
|
||||
}
|
||||
|
||||
.educontentSlider{
|
||||
width: 1282px !important;
|
||||
}
|
||||
.user_navlist_white{
|
||||
max-height:350px !important;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.iconfontzhangjie{
|
||||
font-size: 10px !important;
|
||||
line-height: 23px;
|
||||
}
|
||||
.iconfontshixundaibeijing{
|
||||
font-size: 18px !important;
|
||||
line-height: 24px;
|
||||
.slider-img-wrapper img {
|
||||
width: 100%;
|
||||
/*border-radius: 15px;*/
|
||||
height: 350px;
|
||||
}
|
||||
.next-slick-list{
|
||||
width: 100%;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
.user_navlist{
|
||||
margin-left: 40px;
|
||||
}
|
||||
.next-slick-list{
|
||||
margin-left: 12px;
|
||||
}
|
||||
|
||||
.black_nav_span{
|
||||
display: block;
|
||||
margin: 0px 20px;
|
||||
border-bottom: 1px solid #4B4B4B;
|
||||
padding-left: 8px;
|
||||
color: #FAFAFA;
|
||||
}
|
||||
|
||||
.user_navlist_white{
|
||||
z-index: 100 !important;
|
||||
}
|
||||
|
||||
.next-slick.next-slick-horizontal.next-slick-outer{
|
||||
height: 350px;
|
||||
}
|
||||
|
||||
.black_nav_list li span a{
|
||||
color:#fff;
|
||||
}
|
||||
.black_nav_list li span a:hover{
|
||||
color:#000;
|
||||
}
|
||||
.black_nav_list li:hover span a{
|
||||
color:#000;
|
||||
}
|
||||
.little-titles{
|
||||
height: 22px !important;
|
||||
}
|
||||
|
||||
.user_navlist_white a{
|
||||
color: #989898 !important;
|
||||
}
|
||||
.user_navlist_white .navlistpanel-line .little-titles a{
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.newnext-loading{
|
||||
display:block;
|
||||
}
|
||||
|
||||
.educontentSlider{
|
||||
width: 1282px !important;
|
||||
}
|
||||
.user_navlist_white{
|
||||
max-height:350px !important;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.iconfontzhangjie{
|
||||
font-size: 10px !important;
|
||||
line-height: 23px;
|
||||
}
|
||||
.iconfontshixundaibeijing{
|
||||
font-size: 18px !important;
|
||||
line-height: 24px;
|
||||
}
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,23 @@
|
||||
import React, { Component } from 'react';
|
||||
|
||||
import Cropper from '../../common/components/Cropper'
|
||||
|
||||
class TestCrop extends Component {
|
||||
state = {
|
||||
};
|
||||
|
||||
handleChange = (info) => {
|
||||
}
|
||||
|
||||
render() {
|
||||
|
||||
const props = this.props;
|
||||
return (
|
||||
<div>
|
||||
<Cropper></Cropper>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default (TestCrop);
|
@ -1,49 +1,49 @@
|
||||
import React, { Component } from 'react';
|
||||
import { Redirect } from 'react-router';
|
||||
import { getImageUrl, toPath } from 'educoder'
|
||||
import PropTypes from 'prop-types';
|
||||
|
||||
class NewFooter extends Component {
|
||||
constructor(props) {
|
||||
super(props)
|
||||
|
||||
}
|
||||
|
||||
componentWillReceiveProps(newProps, newContext) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
render() {
|
||||
return (
|
||||
<div className="newFooter edu-txt-center">
|
||||
<div className="inner-footer_con">
|
||||
<div className="footercon">
|
||||
<div className="inline mt40 mb5">
|
||||
<a href="/" className="fl" style={{height:'70px'}}>
|
||||
<img alt="高校智能化教学与实训平台" src={getImageUrl(`images/educoder/headNavLogo.png?1526520218`)} width="70px">
|
||||
</img>
|
||||
</a>
|
||||
<span className="fl color-grey-c cdefault font-28 ml22" style={{lineHeight:'74px'}}>EduCoder.net</span>
|
||||
</div>
|
||||
<ul className="clearfix inner-footernav">
|
||||
<li><a href="/" className="fl" target="_blank">网站首页</a></li>
|
||||
<li><a href={this.props.Footerdown===undefined?"":this.props.Footerdown.about_us} className="fl" target="_blank">关于我们</a></li>
|
||||
<li><a href={this.props.Footerdown===undefined?"":this.props.Footerdown.connect_us} className="fl" target="_blank">联系我们</a></li>
|
||||
<li><a href={this.props.Footerdown===undefined?"":this.props.Footerdown.cooperation_partner} className="fl" target="_blank">合作伙伴</a></li>
|
||||
<li><a href={this.props.Footerdown===undefined?"":this.props.Footerdown.service_agreement} className="fl" target="_blank">服务协议</a></li>
|
||||
<li><a href={this.props.Footerdown===undefined?"":this.props.Footerdown.help_center} className="fl" target="_blank">帮助中心</a></li>
|
||||
<li><a href={this.props.Footerdown===undefined?"":this.props.Footerdown.feedback} className="fl" target="_blank">意见反馈</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div>
|
||||
<p className="footer_con-p inline lineh-30 font-14"><span className="font-18 fl">©</span> 2019 EduCoder<span className="ml15 mr15">湘ICP备17009477号</span><a href="https://team.trustie.net" style={{"color":"#888"}} target="_blank">Trustie</a> & IntelliDE inside.</p>
|
||||
</div>
|
||||
<div className="cl"></div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default NewFooter;
|
||||
import React, { Component } from 'react';
|
||||
import { Redirect } from 'react-router';
|
||||
import { getImageUrl, toPath } from 'educoder'
|
||||
import PropTypes from 'prop-types';
|
||||
|
||||
class NewFooter extends Component {
|
||||
constructor(props) {
|
||||
super(props)
|
||||
|
||||
}
|
||||
|
||||
componentWillReceiveProps(newProps, newContext) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
render() {
|
||||
return (
|
||||
<div className="newFooter edu-txt-center newContainers">
|
||||
<div className="inner-footer_con">
|
||||
<div className="footercon">
|
||||
<div className="inline mt40 mb5">
|
||||
<a href="/" className="fl" style={{height:'70px'}}>
|
||||
<img alt="高校智能化教学与实训平台" src={getImageUrl(`images/educoder/headNavLogo.png?1526520218`)} width="70px">
|
||||
</img>
|
||||
</a>
|
||||
<span className="fl color-grey-c cdefault font-28 ml22" style={{lineHeight:'74px'}}>EduCoder.net</span>
|
||||
</div>
|
||||
<ul className="clearfix inner-footernav">
|
||||
<li><a href="/" className="fl" target="_blank">网站首页</a></li>
|
||||
<li><a href={this.props.Footerdown===undefined?"":this.props.Footerdown.about_us} className="fl" target="_blank">关于我们</a></li>
|
||||
<li><a href={this.props.Footerdown===undefined?"":this.props.Footerdown.connect_us} className="fl" target="_blank">联系我们</a></li>
|
||||
<li><a href={this.props.Footerdown===undefined?"":this.props.Footerdown.cooperation_partner} className="fl" target="_blank">合作伙伴</a></li>
|
||||
<li><a href={this.props.Footerdown===undefined?"":this.props.Footerdown.service_agreement} className="fl" target="_blank">服务协议</a></li>
|
||||
<li><a href={this.props.Footerdown===undefined?"":this.props.Footerdown.help_center} className="fl" target="_blank">帮助中心</a></li>
|
||||
<li><a href={this.props.Footerdown===undefined?"":this.props.Footerdown.feedback} className="fl" target="_blank">意见反馈</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div>
|
||||
<p className="footer_con-p inline lineh-30 font-14"><span className="font-18 fl">©</span> 2019 EduCoder<span className="ml15 mr15">湘ICP备17009477号</span><a href="https://team.trustie.net" style={{"color":"#888"}} target="_blank">Trustie</a> & IntelliDE inside.</p>
|
||||
</div>
|
||||
<div className="cl"></div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default NewFooter;
|
||||
|
@ -1,382 +1,382 @@
|
||||
import React, { Component } from 'react';
|
||||
|
||||
import { BrowserRouter as Router, Route, Link, Switch } from "react-router-dom";
|
||||
|
||||
import Loading from '../../Loading';
|
||||
|
||||
import Loadable from 'react-loadable';
|
||||
|
||||
import { TPMIndexHOC } from './TPMIndexHOC';
|
||||
|
||||
import { SnackbarHOC } from 'educoder';
|
||||
|
||||
import TPMBanner from './TPMBanner';
|
||||
|
||||
import axios from 'axios';
|
||||
|
||||
import TPMShixunDiscussContainer from './TPMShixunDiscussContainer';
|
||||
|
||||
import TPMRepositoryComponent from './TPMRepositoryComponent';
|
||||
|
||||
import TPMRepositoryCommits from './shixunchild/Repository/TPMRepositoryCommits';
|
||||
|
||||
import TPMsettings from './TPMsettings/TPMsettings';
|
||||
|
||||
import TPMChallengeComponent from './TPMChallengeContainer'
|
||||
import TPMPropaedeuticsComponent from './TPMPropaedeuticsComponent'
|
||||
import TPMRanking_listComponent from './TPMRanking_listContainer'
|
||||
import TPMCollaboratorsComponent from './TPMCollaboratorsContainer'
|
||||
|
||||
import '../page/tpiPage.css'
|
||||
//任务
|
||||
// const TPMChallengeComponent = Loadable({
|
||||
// loader: () => import('./TPMChallengeContainer'),
|
||||
// loading: Loading,
|
||||
// })
|
||||
|
||||
//背景知识
|
||||
// const TPMPropaedeuticsComponent = Loadable({
|
||||
// loader: () => import('./TPMPropaedeuticsComponent'),
|
||||
// loading: Loading,
|
||||
// })
|
||||
|
||||
//版本库
|
||||
// const TPMRepositoryComponent = Loadable({
|
||||
// loader: () => import('./TPMRepositoryComponent'),
|
||||
// loading: Loading,
|
||||
// })
|
||||
|
||||
// const TPMRepositoryComponent = Loadable({
|
||||
// loader: () => import('./TPMRepositoryComponent'),
|
||||
// loading: Loading,
|
||||
// })
|
||||
|
||||
//合作
|
||||
// const TPMCollaboratorsComponent = Loadable({
|
||||
// loader: () => import('./TPMCollaboratorsContainer'),
|
||||
// loading: Loading,
|
||||
// })
|
||||
|
||||
|
||||
//评论
|
||||
// const TPMShixunDiscussComponent = Loadable({
|
||||
// loader: () => import('./TPMShixunDiscussContainer'),
|
||||
// loading: Loading,
|
||||
// })
|
||||
|
||||
//排行版
|
||||
// const TPMRanking_listComponent = Loadable({
|
||||
// loader: () => import('./TPMRanking_listContainer'),
|
||||
// loading: Loading,
|
||||
// })
|
||||
|
||||
// //编辑实训
|
||||
// const TPMModifysettings = Loadable({
|
||||
// loader: () =>import('./modules/tpm/TPMsettings/TPMsettings'),
|
||||
// loading: Loading,
|
||||
// })
|
||||
|
||||
//新建实训
|
||||
const TPMchallengesnew = Loadable({
|
||||
loader: () => import('./challengesnew/TPMchallengesnew'),
|
||||
loading: Loading,
|
||||
})
|
||||
|
||||
//新建tab2
|
||||
const TPMevaluation = Loadable({
|
||||
loader: () => import('./challengesnew/TPMevaluation'),
|
||||
loading: Loading,
|
||||
})
|
||||
|
||||
//新建tab3答案
|
||||
// const TPManswer = Loadable({
|
||||
// loader: () => import('./challengesnew/TPManswer'),
|
||||
// loading: Loading,
|
||||
// })
|
||||
const TPManswer = Loadable({
|
||||
loader: () => import('./challengesnew/TPManswer2'),
|
||||
loading: Loading,
|
||||
})
|
||||
|
||||
//选择题
|
||||
const TPMquestion = Loadable({
|
||||
loader: () => import('./challengesnew/TPMquestion'),
|
||||
loading: Loading,
|
||||
})
|
||||
|
||||
//fork列表
|
||||
const TPMFork_listComponent = Loadable({
|
||||
loader: () => import('./TPMFork/TPMForklist'),
|
||||
loading: Loading,
|
||||
})
|
||||
//背景知识修改
|
||||
const TPMUpdatepropaede = Loadable({
|
||||
loader: () => import('./TPMUpdatepropaede/TPMUpdatepropaede'),
|
||||
loading: Loading,
|
||||
})
|
||||
|
||||
|
||||
const interceptorUrlArray = ['repository.json', 'commits.json', 'propaedeutics.json'
|
||||
, 'challenges.json', 'discusses.json', 'ranking_list.json', 'collaborators.json']
|
||||
const cacheInterceptorUrlMap = {}
|
||||
class TPMIndex extends Component {
|
||||
constructor(props) {
|
||||
super(props)
|
||||
this.state = {
|
||||
loadingContent: false,
|
||||
power: false,
|
||||
shixunsDetails: {},
|
||||
shixunId: undefined,
|
||||
star_info: [0, 0, 0, 0, 0, 0],
|
||||
star_infos: [0, 0, 0, 0, 0, 0],
|
||||
identity:undefined,
|
||||
TPMRightSectionData:undefined,
|
||||
PropaedeuticsList: undefined,
|
||||
}
|
||||
}
|
||||
|
||||
componentDidMount = () => {
|
||||
|
||||
let id = this.props.match.params.shixunId;
|
||||
|
||||
// let collaborators = `/shixuns/` + id + `/propaedeutics.json`;
|
||||
//
|
||||
// axios.get(collaborators).then((response) => {
|
||||
// if (response.status === 200) {
|
||||
// if (response.data.status === 403||response.data.status === 401||response.data.status === 500) {
|
||||
//
|
||||
// }else{
|
||||
// this.setState({
|
||||
// PropaedeuticsList: response.data,
|
||||
// shixunId: id
|
||||
// });
|
||||
// }
|
||||
//
|
||||
// }
|
||||
// }).catch((error) => {
|
||||
// console.log(error)
|
||||
// });
|
||||
|
||||
let Url = `/shixuns/` + id + `.json`;
|
||||
axios.get(Url).then((response) => {
|
||||
if (response.status === 200) {
|
||||
document.title=response.data.name;
|
||||
let newstar_info = [];
|
||||
// let start1=
|
||||
for (var i = 0; i < response.data.score_info.length; i++) {
|
||||
|
||||
if (i === 0) {
|
||||
newstar_info.push(response.data.score_info[i])
|
||||
} else {
|
||||
newstar_info.push((response.data.score_info[i] / 100) * 5)
|
||||
}
|
||||
}
|
||||
let newstar_infos = response.data.score_info;
|
||||
this.setState({
|
||||
shixunsDetails: response.data,
|
||||
shixunId: id,
|
||||
star_info: newstar_info,
|
||||
star_infos: newstar_infos,
|
||||
power: response.data.power,
|
||||
identity: response.data.identity,
|
||||
propaedeutics:response.data.propaedeutics,
|
||||
status: response.data.status,
|
||||
});
|
||||
}
|
||||
}).catch((error) => {
|
||||
this.setState({
|
||||
shixunsDetails: undefined,
|
||||
shixunId: undefined,
|
||||
star_info: undefined,
|
||||
star_infos: undefined,
|
||||
power: undefined,
|
||||
identity: undefined,
|
||||
status: undefined,
|
||||
propaedeutics:undefined
|
||||
});
|
||||
});
|
||||
|
||||
this.tpmContentRequestInterceptor = axios.interceptors.request.use((config) => {
|
||||
let url = config.url;
|
||||
// console.log('tpmContentRequestInterceptor:', url)
|
||||
for ( let i = 0; i < interceptorUrlArray.length; i++ ) {
|
||||
if (url.indexOf(interceptorUrlArray[i]) != -1) {
|
||||
url = url.split('?')[0]
|
||||
console.log('loadingContent, url:', url)
|
||||
|
||||
this.setState({ loadingContent: true })
|
||||
|
||||
cacheInterceptorUrlMap[url] = true
|
||||
}
|
||||
}
|
||||
return config;
|
||||
}, function (error) {
|
||||
return Promise.reject(error);
|
||||
});
|
||||
|
||||
// Add a response interceptor
|
||||
this.tpmContentResponseInterceptor = axios.interceptors.response.use((response) => {
|
||||
// console.log('loadingContent finished, url:', response.config.url)
|
||||
// TODO 依赖了api这个前缀
|
||||
let url = response.config.url.split('api')[1];
|
||||
url = url.split('?')[0]
|
||||
if (cacheInterceptorUrlMap[url]) {
|
||||
|
||||
this.setState({ loadingContent: false })
|
||||
delete cacheInterceptorUrlMap[response.url]
|
||||
}
|
||||
return response;
|
||||
}, function (error) {
|
||||
// Do something with response error
|
||||
return Promise.reject(error);
|
||||
});
|
||||
|
||||
|
||||
//右侧数据
|
||||
let shixunsDetailsURL=`/shixuns/`+id+`/show_right.json`;
|
||||
axios.get(shixunsDetailsURL).then((response)=> {
|
||||
this.setState({
|
||||
TPMRightSectionData: response.data
|
||||
});
|
||||
})
|
||||
|
||||
}
|
||||
componentWillUnmount = () => {
|
||||
axios.interceptors.request.eject(this.tpmContentRequestInterceptor);
|
||||
this.tpmContentRequestInterceptor = null;
|
||||
axios.interceptors.request.eject(this.tpmContentResponseInterceptor);
|
||||
this.tpmContentResponseInterceptor = null;
|
||||
}
|
||||
|
||||
|
||||
setLoadingContent = (isLoadingContent) => {
|
||||
this.setState({ loadingContent: isLoadingContent })
|
||||
}
|
||||
|
||||
// TpmTPMBannertype(type){
|
||||
//
|
||||
// }
|
||||
|
||||
render() {
|
||||
|
||||
return (
|
||||
<div className="newMain clearfix">
|
||||
|
||||
<TPMBanner
|
||||
{...this.props}
|
||||
{...this.state}
|
||||
></TPMBanner>
|
||||
|
||||
<Switch {...this.props}>
|
||||
|
||||
<Route path="/shixuns/:shixunId/repository/:repoId/commits" render={
|
||||
(props) => (<TPMRepositoryCommits {...this.props} {...this.state} {...props}
|
||||
/>)
|
||||
}></Route>
|
||||
|
||||
<Route exact path="/shixuns/:shixunId/challenges" render={
|
||||
(props) => (<TPMChallengeComponent {...this.props} {...this.state} {...props}
|
||||
/>)
|
||||
}></Route>
|
||||
|
||||
<Route path="/shixuns/:shixunId/repository" render={
|
||||
(props) => (<TPMRepositoryComponent {...this.props} {...this.state} {...props}
|
||||
/>)
|
||||
}></Route>
|
||||
{/* <Route exact path="/shixuns/:shixunId/propaedeutics" component={TPMPropaedeuticsComponent}></Route> */}
|
||||
|
||||
<Route exact path="/shixuns/:shixunId/propaedeutics" render={
|
||||
(props) => (<TPMPropaedeuticsComponent {...this.props} {...this.state} {...props}
|
||||
/>)
|
||||
}></Route>
|
||||
|
||||
|
||||
<Route exact path="/shixuns/:shixunId/collaborators" render={
|
||||
(props) => (<TPMCollaboratorsComponent {...this.props} {...this.state} {...props}
|
||||
/>)
|
||||
}></Route>
|
||||
|
||||
|
||||
{/* <Route exact path="/shixuns/:shixunId/repository/:shixunId/" component={TPMRepositoryComponent}></Route> */}
|
||||
|
||||
|
||||
<Route path="/shixuns/:shixunId/shixun_discuss" render={
|
||||
(props) => (<TPMShixunDiscussContainer {...this.props} {...this.state} {...props}
|
||||
initForumState={(data)=>this.initForumState(data)}
|
||||
setSearchValue={this.setSearchValue}
|
||||
setHotLabelIndex={this.setHotLabelIndex}
|
||||
/>)
|
||||
}></Route>
|
||||
|
||||
|
||||
<Route path="/shixuns/:shixunId/settings" render={
|
||||
(props) => (<TPMsettings {...this.props} {...this.state} {...props} />)
|
||||
}></Route>
|
||||
|
||||
|
||||
<Route exact path="/shixuns/:shixunId/ranking_list" render={
|
||||
(props) => (<TPMRanking_listComponent {...this.props} {...this.state} {...props}
|
||||
/>)
|
||||
}></Route>
|
||||
|
||||
<Route exact path="/shixuns/:shixunId/fork_list" render={
|
||||
(props) => (<TPMFork_listComponent {...this.props} {...props}
|
||||
/>)
|
||||
}></Route>
|
||||
|
||||
<Route exact path="/shixuns/:shixunId/update_propaedeutics" render={
|
||||
(props) => (<TPMUpdatepropaede {...this.props} {...props}
|
||||
/>)
|
||||
}></Route>
|
||||
|
||||
{/*评测设置*/}
|
||||
<Route path="/shixuns/:shixunId/challenges/:checkpointId/tab=2" render={
|
||||
(props) => (<TPMevaluation {...this.props} {...props} {...this.state}/>)
|
||||
}></Route>
|
||||
|
||||
|
||||
{/*参考答案*/}
|
||||
<Route path="/shixuns/:shixunId/challenges/:checkpointId/tab=3" render={
|
||||
(props) => (<TPManswer {...this.props} {...props} {...this.state}/>)
|
||||
}></Route>
|
||||
|
||||
{/*新建关卡*/}
|
||||
<Route path="/shixuns/:shixunId/challenges/new" render={
|
||||
(props) => (<TPMchallengesnew {...this.props} {...props} {...this.state}/>)
|
||||
}></Route>
|
||||
|
||||
{/*编辑关卡*/}
|
||||
<Route path="/shixuns/:shixunId/challenges/:checkpointId/editcheckpoint" render={
|
||||
(props) => (<TPMchallengesnew {...this.props} {...props} {...this.state} />)
|
||||
}></Route>
|
||||
|
||||
{/*新建选择题*/}
|
||||
<Route path="/shixuns/:shixunId/challenges/newquestion" render={
|
||||
(props) => (<TPMquestion {...this.props} {...props} {...this.state} />)
|
||||
}></Route>
|
||||
|
||||
{/*修改选择题*/}
|
||||
<Route path="/shixuns/:shixunId/challenges/:checkpointId/editquestion/:choose_id" render={
|
||||
(props) => (<TPMquestion {...this.props} {...props} {...this.state}/>)
|
||||
}></Route>
|
||||
|
||||
{/*修改选择题*/}
|
||||
<Route path="/shixuns/:shixunId/challenges/:checkpointId/editquestion" render={
|
||||
(props) => (<TPMquestion {...this.props} {...props} {...this.state}/>)
|
||||
}></Route>
|
||||
|
||||
<Route exact path="/shixuns/:shixunId" render={
|
||||
(props) => (<TPMChallengeComponent {...this.props} {...this.state} {...props}
|
||||
/>)
|
||||
}></Route>
|
||||
|
||||
|
||||
{/*<Route exact path="/shixuns/:shixunId" component={TPMChallengeComponent}></Route>*/}
|
||||
</Switch>
|
||||
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default SnackbarHOC() (TPMIndexHOC ( TPMIndex ));
|
||||
import React, { Component } from 'react';
|
||||
|
||||
import { BrowserRouter as Router, Route, Link, Switch } from "react-router-dom";
|
||||
|
||||
import Loading from '../../Loading';
|
||||
|
||||
import Loadable from 'react-loadable';
|
||||
|
||||
import { TPMIndexHOC } from './TPMIndexHOC';
|
||||
|
||||
import { SnackbarHOC } from 'educoder';
|
||||
|
||||
import TPMBanner from './TPMBanner';
|
||||
|
||||
import axios from 'axios';
|
||||
|
||||
import TPMShixunDiscussContainer from './TPMShixunDiscussContainer';
|
||||
|
||||
import TPMRepositoryComponent from './TPMRepositoryComponent';
|
||||
|
||||
import TPMRepositoryCommits from './shixunchild/Repository/TPMRepositoryCommits';
|
||||
|
||||
import TPMsettings from './TPMsettings/TPMsettings';
|
||||
|
||||
import TPMChallengeComponent from './TPMChallengeContainer'
|
||||
import TPMPropaedeuticsComponent from './TPMPropaedeuticsComponent'
|
||||
import TPMRanking_listComponent from './TPMRanking_listContainer'
|
||||
import TPMCollaboratorsComponent from './TPMCollaboratorsContainer'
|
||||
|
||||
import '../page/tpiPage.css'
|
||||
//任务
|
||||
// const TPMChallengeComponent = Loadable({
|
||||
// loader: () => import('./TPMChallengeContainer'),
|
||||
// loading: Loading,
|
||||
// })
|
||||
|
||||
//背景知识
|
||||
// const TPMPropaedeuticsComponent = Loadable({
|
||||
// loader: () => import('./TPMPropaedeuticsComponent'),
|
||||
// loading: Loading,
|
||||
// })
|
||||
|
||||
//版本库
|
||||
// const TPMRepositoryComponent = Loadable({
|
||||
// loader: () => import('./TPMRepositoryComponent'),
|
||||
// loading: Loading,
|
||||
// })
|
||||
|
||||
// const TPMRepositoryComponent = Loadable({
|
||||
// loader: () => import('./TPMRepositoryComponent'),
|
||||
// loading: Loading,
|
||||
// })
|
||||
|
||||
//合作
|
||||
// const TPMCollaboratorsComponent = Loadable({
|
||||
// loader: () => import('./TPMCollaboratorsContainer'),
|
||||
// loading: Loading,
|
||||
// })
|
||||
|
||||
|
||||
//评论
|
||||
// const TPMShixunDiscussComponent = Loadable({
|
||||
// loader: () => import('./TPMShixunDiscussContainer'),
|
||||
// loading: Loading,
|
||||
// })
|
||||
|
||||
//排行版
|
||||
// const TPMRanking_listComponent = Loadable({
|
||||
// loader: () => import('./TPMRanking_listContainer'),
|
||||
// loading: Loading,
|
||||
// })
|
||||
|
||||
// //编辑实训
|
||||
// const TPMModifysettings = Loadable({
|
||||
// loader: () =>import('./modules/tpm/TPMsettings/TPMsettings'),
|
||||
// loading: Loading,
|
||||
// })
|
||||
|
||||
//新建实训
|
||||
const TPMchallengesnew = Loadable({
|
||||
loader: () => import('./challengesnew/TPMchallengesnew'),
|
||||
loading: Loading,
|
||||
})
|
||||
|
||||
//新建tab2
|
||||
const TPMevaluation = Loadable({
|
||||
loader: () => import('./challengesnew/TPMevaluation'),
|
||||
loading: Loading,
|
||||
})
|
||||
|
||||
//新建tab3答案
|
||||
// const TPManswer = Loadable({
|
||||
// loader: () => import('./challengesnew/TPManswer'),
|
||||
// loading: Loading,
|
||||
// })
|
||||
const TPManswer = Loadable({
|
||||
loader: () => import('./challengesnew/TPManswer2'),
|
||||
loading: Loading,
|
||||
})
|
||||
|
||||
//选择题
|
||||
const TPMquestion = Loadable({
|
||||
loader: () => import('./challengesnew/TPMquestion'),
|
||||
loading: Loading,
|
||||
})
|
||||
|
||||
//fork列表
|
||||
const TPMFork_listComponent = Loadable({
|
||||
loader: () => import('./TPMFork/TPMForklist'),
|
||||
loading: Loading,
|
||||
})
|
||||
//背景知识修改
|
||||
const TPMUpdatepropaede = Loadable({
|
||||
loader: () => import('./TPMUpdatepropaede/TPMUpdatepropaede'),
|
||||
loading: Loading,
|
||||
})
|
||||
|
||||
|
||||
const interceptorUrlArray = ['repository.json', 'commits.json', 'propaedeutics.json'
|
||||
, 'challenges.json', 'discusses.json', 'ranking_list.json', 'collaborators.json']
|
||||
const cacheInterceptorUrlMap = {}
|
||||
class TPMIndex extends Component {
|
||||
constructor(props) {
|
||||
super(props)
|
||||
this.state = {
|
||||
loadingContent: false,
|
||||
power: false,
|
||||
shixunsDetails: {},
|
||||
shixunId: undefined,
|
||||
star_info: [0, 0, 0, 0, 0, 0],
|
||||
star_infos: [0, 0, 0, 0, 0, 0],
|
||||
identity:undefined,
|
||||
TPMRightSectionData:undefined,
|
||||
PropaedeuticsList: undefined,
|
||||
}
|
||||
}
|
||||
|
||||
componentDidMount = () => {
|
||||
|
||||
let id = this.props.match.params.shixunId;
|
||||
|
||||
// let collaborators = `/shixuns/` + id + `/propaedeutics.json`;
|
||||
//
|
||||
// axios.get(collaborators).then((response) => {
|
||||
// if (response.status === 200) {
|
||||
// if (response.data.status === 403||response.data.status === 401||response.data.status === 500) {
|
||||
//
|
||||
// }else{
|
||||
// this.setState({
|
||||
// PropaedeuticsList: response.data,
|
||||
// shixunId: id
|
||||
// });
|
||||
// }
|
||||
//
|
||||
// }
|
||||
// }).catch((error) => {
|
||||
// console.log(error)
|
||||
// });
|
||||
|
||||
let Url = `/shixuns/` + id + `.json`;
|
||||
axios.get(Url).then((response) => {
|
||||
if (response.status === 200) {
|
||||
document.title=response.data.name;
|
||||
let newstar_info = [];
|
||||
// let start1=
|
||||
for (var i = 0; i < response.data.score_info.length; i++) {
|
||||
|
||||
if (i === 0) {
|
||||
newstar_info.push(response.data.score_info[i])
|
||||
} else {
|
||||
newstar_info.push((response.data.score_info[i] / 100) * 5)
|
||||
}
|
||||
}
|
||||
let newstar_infos = response.data.score_info;
|
||||
this.setState({
|
||||
shixunsDetails: response.data,
|
||||
shixunId: id,
|
||||
star_info: newstar_info,
|
||||
star_infos: newstar_infos,
|
||||
power: response.data.power,
|
||||
identity: response.data.identity,
|
||||
propaedeutics:response.data.propaedeutics,
|
||||
status: response.data.shixun_status,
|
||||
});
|
||||
}
|
||||
}).catch((error) => {
|
||||
this.setState({
|
||||
shixunsDetails: undefined,
|
||||
shixunId: undefined,
|
||||
star_info: undefined,
|
||||
star_infos: undefined,
|
||||
power: undefined,
|
||||
identity: undefined,
|
||||
status: undefined,
|
||||
propaedeutics:undefined
|
||||
});
|
||||
});
|
||||
|
||||
this.tpmContentRequestInterceptor = axios.interceptors.request.use((config) => {
|
||||
let url = config.url;
|
||||
// console.log('tpmContentRequestInterceptor:', url)
|
||||
for ( let i = 0; i < interceptorUrlArray.length; i++ ) {
|
||||
if (url.indexOf(interceptorUrlArray[i]) != -1) {
|
||||
url = url.split('?')[0]
|
||||
console.log('loadingContent, url:', url)
|
||||
|
||||
this.setState({ loadingContent: true })
|
||||
|
||||
cacheInterceptorUrlMap[url] = true
|
||||
}
|
||||
}
|
||||
return config;
|
||||
}, function (error) {
|
||||
return Promise.reject(error);
|
||||
});
|
||||
|
||||
// Add a response interceptor
|
||||
this.tpmContentResponseInterceptor = axios.interceptors.response.use((response) => {
|
||||
// console.log('loadingContent finished, url:', response.config.url)
|
||||
// TODO 依赖了api这个前缀
|
||||
let url = response.config.url.split('api')[1];
|
||||
url = url.split('?')[0]
|
||||
if (cacheInterceptorUrlMap[url]) {
|
||||
|
||||
this.setState({ loadingContent: false })
|
||||
delete cacheInterceptorUrlMap[response.url]
|
||||
}
|
||||
return response;
|
||||
}, function (error) {
|
||||
// Do something with response error
|
||||
return Promise.reject(error);
|
||||
});
|
||||
|
||||
|
||||
//右侧数据
|
||||
let shixunsDetailsURL=`/shixuns/`+id+`/show_right.json`;
|
||||
axios.get(shixunsDetailsURL).then((response)=> {
|
||||
this.setState({
|
||||
TPMRightSectionData: response.data
|
||||
});
|
||||
})
|
||||
|
||||
}
|
||||
componentWillUnmount = () => {
|
||||
axios.interceptors.request.eject(this.tpmContentRequestInterceptor);
|
||||
this.tpmContentRequestInterceptor = null;
|
||||
axios.interceptors.request.eject(this.tpmContentResponseInterceptor);
|
||||
this.tpmContentResponseInterceptor = null;
|
||||
}
|
||||
|
||||
|
||||
setLoadingContent = (isLoadingContent) => {
|
||||
this.setState({ loadingContent: isLoadingContent })
|
||||
}
|
||||
|
||||
// TpmTPMBannertype(type){
|
||||
//
|
||||
// }
|
||||
|
||||
render() {
|
||||
|
||||
return (
|
||||
<div className="newMain clearfix">
|
||||
|
||||
<TPMBanner
|
||||
{...this.props}
|
||||
{...this.state}
|
||||
></TPMBanner>
|
||||
|
||||
<Switch {...this.props}>
|
||||
|
||||
<Route path="/shixuns/:shixunId/repository/:repoId/commits" render={
|
||||
(props) => (<TPMRepositoryCommits {...this.props} {...this.state} {...props}
|
||||
/>)
|
||||
}></Route>
|
||||
|
||||
<Route exact path="/shixuns/:shixunId/challenges" render={
|
||||
(props) => (<TPMChallengeComponent {...this.props} {...this.state} {...props}
|
||||
/>)
|
||||
}></Route>
|
||||
|
||||
<Route path="/shixuns/:shixunId/repository" render={
|
||||
(props) => (<TPMRepositoryComponent {...this.props} {...this.state} {...props}
|
||||
/>)
|
||||
}></Route>
|
||||
{/* <Route exact path="/shixuns/:shixunId/propaedeutics" component={TPMPropaedeuticsComponent}></Route> */}
|
||||
|
||||
<Route exact path="/shixuns/:shixunId/propaedeutics" render={
|
||||
(props) => (<TPMPropaedeuticsComponent {...this.props} {...this.state} {...props}
|
||||
/>)
|
||||
}></Route>
|
||||
|
||||
|
||||
<Route exact path="/shixuns/:shixunId/collaborators" render={
|
||||
(props) => (<TPMCollaboratorsComponent {...this.props} {...this.state} {...props}
|
||||
/>)
|
||||
}></Route>
|
||||
|
||||
|
||||
{/* <Route exact path="/shixuns/:shixunId/repository/:shixunId/" component={TPMRepositoryComponent}></Route> */}
|
||||
|
||||
|
||||
<Route path="/shixuns/:shixunId/shixun_discuss" render={
|
||||
(props) => (<TPMShixunDiscussContainer {...this.props} {...this.state} {...props}
|
||||
initForumState={(data)=>this.initForumState(data)}
|
||||
setSearchValue={this.setSearchValue}
|
||||
setHotLabelIndex={this.setHotLabelIndex}
|
||||
/>)
|
||||
}></Route>
|
||||
|
||||
|
||||
<Route path="/shixuns/:shixunId/settings" render={
|
||||
(props) => (<TPMsettings {...this.props} {...this.state} {...props} />)
|
||||
}></Route>
|
||||
|
||||
|
||||
<Route exact path="/shixuns/:shixunId/ranking_list" render={
|
||||
(props) => (<TPMRanking_listComponent {...this.props} {...this.state} {...props}
|
||||
/>)
|
||||
}></Route>
|
||||
|
||||
<Route exact path="/shixuns/:shixunId/fork_list" render={
|
||||
(props) => (<TPMFork_listComponent {...this.props} {...props}
|
||||
/>)
|
||||
}></Route>
|
||||
|
||||
<Route exact path="/shixuns/:shixunId/update_propaedeutics" render={
|
||||
(props) => (<TPMUpdatepropaede {...this.props} {...props}
|
||||
/>)
|
||||
}></Route>
|
||||
|
||||
{/*评测设置*/}
|
||||
<Route path="/shixuns/:shixunId/challenges/:checkpointId/tab=2" render={
|
||||
(props) => (<TPMevaluation {...this.props} {...props} {...this.state}/>)
|
||||
}></Route>
|
||||
|
||||
|
||||
{/*参考答案*/}
|
||||
<Route path="/shixuns/:shixunId/challenges/:checkpointId/tab=3" render={
|
||||
(props) => (<TPManswer {...this.props} {...props} {...this.state}/>)
|
||||
}></Route>
|
||||
|
||||
{/*新建关卡*/}
|
||||
<Route path="/shixuns/:shixunId/challenges/new" render={
|
||||
(props) => (<TPMchallengesnew {...this.props} {...props} {...this.state}/>)
|
||||
}></Route>
|
||||
|
||||
{/*编辑关卡*/}
|
||||
<Route path="/shixuns/:shixunId/challenges/:checkpointId/editcheckpoint" render={
|
||||
(props) => (<TPMchallengesnew {...this.props} {...props} {...this.state} />)
|
||||
}></Route>
|
||||
|
||||
{/*新建选择题*/}
|
||||
<Route path="/shixuns/:shixunId/challenges/newquestion" render={
|
||||
(props) => (<TPMquestion {...this.props} {...props} {...this.state} />)
|
||||
}></Route>
|
||||
|
||||
{/*修改选择题*/}
|
||||
<Route path="/shixuns/:shixunId/challenges/:checkpointId/editquestion/:choose_id" render={
|
||||
(props) => (<TPMquestion {...this.props} {...props} {...this.state}/>)
|
||||
}></Route>
|
||||
|
||||
{/*修改选择题*/}
|
||||
<Route path="/shixuns/:shixunId/challenges/:checkpointId/editquestion" render={
|
||||
(props) => (<TPMquestion {...this.props} {...props} {...this.state}/>)
|
||||
}></Route>
|
||||
|
||||
<Route exact path="/shixuns/:shixunId" render={
|
||||
(props) => (<TPMChallengeComponent {...this.props} {...this.state} {...props}
|
||||
/>)
|
||||
}></Route>
|
||||
|
||||
|
||||
{/*<Route exact path="/shixuns/:shixunId" component={TPMChallengeComponent}></Route>*/}
|
||||
</Switch>
|
||||
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default SnackbarHOC() (TPMIndexHOC ( TPMIndex ));
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,263 +1,269 @@
|
||||
.CodeMirror-scroll {
|
||||
overflow: auto !important;
|
||||
margin-bottom: -30px;
|
||||
margin-right: -30px;
|
||||
padding-bottom: 30px;
|
||||
height: 100%;
|
||||
outline: none;
|
||||
position: relative;
|
||||
}
|
||||
a.white-btn.orange-btn:hover {
|
||||
border: 1px solid #F06200;
|
||||
color: #FFF !important;
|
||||
}
|
||||
.flex1 a.white-btn.orange-btn:hover {
|
||||
border: 1px solid #F06200;
|
||||
color: #FFF !important;
|
||||
}
|
||||
|
||||
/*.challenge_nav li a{*/
|
||||
/*color:#000 !important;*/
|
||||
/*}*/
|
||||
|
||||
.questionli{
|
||||
width: 95%;
|
||||
margin-left: 37px;
|
||||
}
|
||||
#directory_file{
|
||||
height:200px;
|
||||
overflow-y:auto;
|
||||
background:#f5f5f5;
|
||||
padding:10px;
|
||||
}
|
||||
.directory_filepath{
|
||||
width:120px;
|
||||
text-align:left;
|
||||
}
|
||||
|
||||
a{
|
||||
text-decoration: none;
|
||||
color: #05101a;
|
||||
}
|
||||
.repository_url_tippostion{
|
||||
position: absolute;
|
||||
left: 22%;
|
||||
width: 500px;
|
||||
top: 100%;
|
||||
}
|
||||
|
||||
.top-black-trangleft {
|
||||
display: block;
|
||||
border-width: 8px;
|
||||
position: absolute;
|
||||
top: -16px;
|
||||
/* right: 4px; */
|
||||
border-style: dashed solid dashed dashed;
|
||||
border-color: transparent transparent rgba(5,16,26,0.6) transparent;
|
||||
font-size: 0;
|
||||
line-height: 0;
|
||||
}
|
||||
|
||||
#exercisememoMD .CodeMirror {
|
||||
margin-top: 31px !important;
|
||||
height: 700px !important;
|
||||
width: 579px !important;
|
||||
}
|
||||
|
||||
#exercisememoMD .editormd-preview {
|
||||
top: 40px !important;
|
||||
height: 700px !important;
|
||||
}
|
||||
#exercisememoMD{
|
||||
height: 700px !important;
|
||||
}
|
||||
#questioMD{
|
||||
/*width: 95% !important;*/
|
||||
height: 586px !important;
|
||||
margin-left: 0% !important;
|
||||
}
|
||||
|
||||
|
||||
#questioMD .CodeMirror {
|
||||
width: 550.5px !important;
|
||||
margin-top: 31px !important;
|
||||
height: 550px !important;
|
||||
}
|
||||
|
||||
#questioMD .editormd-preview {
|
||||
top: 40px !important;
|
||||
height: 550px !important;
|
||||
}
|
||||
|
||||
#newquestioMD .CodeMirror {
|
||||
width: 549px !important;
|
||||
margin-top: 31px !important;
|
||||
height: 364px !important;
|
||||
}
|
||||
|
||||
#newquestioMD .editormd-preview {
|
||||
top: 40px !important;
|
||||
height: 364px !important;
|
||||
}
|
||||
|
||||
#challenge_choose_answer .CodeMirror {
|
||||
margin-top: 31px !important;
|
||||
height: 364px !important;
|
||||
width: 578px !important;
|
||||
}
|
||||
|
||||
|
||||
#challenge_choose_answer .editormd-preview {
|
||||
top: 40px !important;
|
||||
height: 364px !important;
|
||||
}
|
||||
|
||||
#neweditanswer .CodeMirror {
|
||||
margin-top: 31px !important;
|
||||
height: 364px !important;
|
||||
width: 549.5px !important;
|
||||
}
|
||||
|
||||
#neweditanswer .editormd-preview {
|
||||
top: 40px !important;
|
||||
height: 364px !important;
|
||||
}
|
||||
|
||||
#repository_url_tip {
|
||||
top: 30px !important;
|
||||
left: 249px !important;
|
||||
width: 292px !important;
|
||||
}
|
||||
|
||||
#editanswers .CodeMirror{
|
||||
width: 548px !important;
|
||||
height: 358px !important;
|
||||
margin-top: 30px !important;
|
||||
}
|
||||
#editanswers .editormd-preview{
|
||||
width: 569px !important;
|
||||
height: 358px !important;
|
||||
}
|
||||
#newquestioMDs .CodeMirror{
|
||||
width: 510px !important;
|
||||
height: 358px !important;
|
||||
margin-top: 30px !important;
|
||||
}
|
||||
|
||||
#newquestioMDs .editormd-preview{
|
||||
width: 569px !important;
|
||||
height: 358px !important;
|
||||
}
|
||||
|
||||
.choose_names{
|
||||
width: 80px;
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
#answerMD .CodeMirror{
|
||||
width: 569px !important;
|
||||
height: 600px !important;
|
||||
margin-top: 30px !important;
|
||||
}
|
||||
|
||||
#answerMD .editormd-preview{
|
||||
width: 569px !important;
|
||||
height: 600px !important;
|
||||
}
|
||||
|
||||
#answerMD {
|
||||
height: 600px !important;
|
||||
}
|
||||
|
||||
.textareavalue{
|
||||
width: 100%;
|
||||
padding: 5px;
|
||||
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.greyInput{
|
||||
width: 107%;
|
||||
}
|
||||
.greyInpus{
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.pdr20{
|
||||
padding-right:20px;
|
||||
}
|
||||
|
||||
.winput-240-40s {
|
||||
background-color: #F5F5F5;
|
||||
}
|
||||
|
||||
|
||||
.winput-240-40s:focus{
|
||||
background-color: #fff;
|
||||
}
|
||||
.input-100-45{
|
||||
background-color: #F5F5F5;
|
||||
}
|
||||
.input-100-45:focus{
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.wind100{
|
||||
width:100% !important;
|
||||
}
|
||||
|
||||
.color-bule-tip {
|
||||
color: #5485f7 !important;
|
||||
}
|
||||
.martopf4{
|
||||
margin-top:-4px;
|
||||
}
|
||||
|
||||
.headdfgf{
|
||||
display: block;
|
||||
width: 100px;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.color979797{
|
||||
color: #979797 !important;
|
||||
}
|
||||
|
||||
.border-left{
|
||||
width: 0;
|
||||
height: 0;
|
||||
border-bottom: 6px solid transparent;
|
||||
border-right: 6px solid #cccbcb;
|
||||
border-top: 6px solid transparent;
|
||||
position: absolute;
|
||||
left: 30px;
|
||||
top: 12px;
|
||||
}
|
||||
.border-left span{
|
||||
display: block;
|
||||
width: 0;
|
||||
height: 0;
|
||||
border-bottom: 6px solid transparent;
|
||||
border-right: 6px solid #fff;
|
||||
border-top: 6px solid transparent;
|
||||
position: absolute;
|
||||
left: 1px;
|
||||
top: -6px;
|
||||
z-index: 10;
|
||||
}
|
||||
.fillTip{
|
||||
position: absolute;
|
||||
left: 36px;
|
||||
top: 2px;
|
||||
width: 125px;
|
||||
font-size: 12px;
|
||||
display: block;
|
||||
padding: 5px;
|
||||
border: 1px solid #eaeaea;
|
||||
border-radius: 5px;
|
||||
box-sizing: border-box;
|
||||
height: 32px;
|
||||
line-height: 20px;
|
||||
font-family: "微软雅黑","宋体";
|
||||
.CodeMirror-scroll {
|
||||
overflow: auto !important;
|
||||
margin-bottom: -30px;
|
||||
margin-right: -30px;
|
||||
padding-bottom: 30px;
|
||||
height: 100%;
|
||||
outline: none;
|
||||
position: relative;
|
||||
}
|
||||
a.white-btn.orange-btn:hover {
|
||||
border: 1px solid #F06200;
|
||||
color: #FFF !important;
|
||||
}
|
||||
.flex1 a.white-btn.orange-btn:hover {
|
||||
border: 1px solid #F06200;
|
||||
color: #FFF !important;
|
||||
}
|
||||
|
||||
/*.challenge_nav li a{*/
|
||||
/*color:#000 !important;*/
|
||||
/*}*/
|
||||
|
||||
.questionli{
|
||||
width: 95%;
|
||||
margin-left: 37px;
|
||||
}
|
||||
#directory_file{
|
||||
height:200px;
|
||||
overflow-y:auto;
|
||||
background:#f5f5f5;
|
||||
padding:10px;
|
||||
}
|
||||
.directory_filepath{
|
||||
width:120px;
|
||||
text-align:left;
|
||||
}
|
||||
|
||||
a{
|
||||
text-decoration: none;
|
||||
color: #05101a;
|
||||
}
|
||||
.repository_url_tippostion{
|
||||
position: absolute;
|
||||
left: 22%;
|
||||
width: 500px;
|
||||
top: 100%;
|
||||
}
|
||||
|
||||
.top-black-trangleft {
|
||||
display: block;
|
||||
border-width: 8px;
|
||||
position: absolute;
|
||||
top: -16px;
|
||||
/* right: 4px; */
|
||||
border-style: dashed solid dashed dashed;
|
||||
border-color: transparent transparent rgba(5,16,26,0.6) transparent;
|
||||
font-size: 0;
|
||||
line-height: 0;
|
||||
}
|
||||
|
||||
#exercisememoMD .CodeMirror {
|
||||
margin-top: 31px !important;
|
||||
height: 700px !important;
|
||||
/*width: 579px !important;*/
|
||||
}
|
||||
|
||||
#exercisememoMD .editormd-preview {
|
||||
top: 40px !important;
|
||||
height: 700px !important;
|
||||
width: 578px !important;
|
||||
}
|
||||
#exercisememoMD{
|
||||
height: 700px !important;
|
||||
}
|
||||
#questioMD{
|
||||
/*width: 95% !important;*/
|
||||
height: 586px !important;
|
||||
margin-left: 0% !important;
|
||||
}
|
||||
|
||||
|
||||
#questioMD .CodeMirror {
|
||||
/*width: 550.5px !important;*/
|
||||
margin-top: 31px !important;
|
||||
height: 550px !important;
|
||||
}
|
||||
|
||||
#questioMD .editormd-preview {
|
||||
top: 40px !important;
|
||||
height: 550px !important;
|
||||
width: 578px !important;
|
||||
}
|
||||
|
||||
#newquestioMD .CodeMirror {
|
||||
/*width: 549px !important;*/
|
||||
margin-top: 31px !important;
|
||||
height: 364px !important;
|
||||
}
|
||||
|
||||
#newquestioMD .editormd-preview {
|
||||
top: 40px !important;
|
||||
height: 364px !important;
|
||||
width: 578px !important;
|
||||
}
|
||||
|
||||
#challenge_choose_answer .CodeMirror {
|
||||
margin-top: 31px !important;
|
||||
height: 364px !important;
|
||||
/*width: 578px !important;*/
|
||||
}
|
||||
|
||||
|
||||
#challenge_choose_answer .editormd-preview {
|
||||
top: 40px !important;
|
||||
height: 364px !important;
|
||||
width: 578px !important;
|
||||
}
|
||||
|
||||
#neweditanswer .CodeMirror {
|
||||
margin-top: 31px !important;
|
||||
height: 364px !important;
|
||||
/*width: 549.5px !important;*/
|
||||
}
|
||||
|
||||
#neweditanswer .editormd-preview {
|
||||
top: 40px !important;
|
||||
height: 364px !important;
|
||||
width: 578px !important;
|
||||
}
|
||||
|
||||
#repository_url_tip {
|
||||
top: 30px !important;
|
||||
left: 249px !important;
|
||||
width: 292px !important;
|
||||
}
|
||||
|
||||
#editanswers .CodeMirror{
|
||||
/*width: 548px !important;*/
|
||||
height: 358px !important;
|
||||
margin-top: 30px !important;
|
||||
}
|
||||
#editanswers .editormd-preview{
|
||||
width: 578px !important;
|
||||
height: 358px !important;
|
||||
|
||||
}
|
||||
#newquestioMDs .CodeMirror{
|
||||
/*width: 510px !important;*/
|
||||
height: 358px !important;
|
||||
margin-top: 30px !important;
|
||||
}
|
||||
|
||||
#newquestioMDs .editormd-preview{
|
||||
width: 578px !important;
|
||||
height: 358px !important;
|
||||
}
|
||||
|
||||
.choose_names{
|
||||
width: 80px;
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
#answerMD .CodeMirror{
|
||||
/*width: 569px !important;*/
|
||||
height: 600px !important;
|
||||
margin-top: 30px !important;
|
||||
}
|
||||
|
||||
#answerMD .editormd-preview{
|
||||
width: 578px !important;
|
||||
height: 600px !important;
|
||||
}
|
||||
|
||||
#answerMD {
|
||||
height: 600px !important;
|
||||
}
|
||||
|
||||
.textareavalue{
|
||||
width: 100%;
|
||||
padding: 5px;
|
||||
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.greyInput{
|
||||
width: 107%;
|
||||
}
|
||||
.greyInpus{
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.pdr20{
|
||||
padding-right:20px;
|
||||
}
|
||||
|
||||
.winput-240-40s {
|
||||
background-color: #F5F5F5;
|
||||
}
|
||||
|
||||
|
||||
.winput-240-40s:focus{
|
||||
background-color: #fff;
|
||||
}
|
||||
.input-100-45{
|
||||
background-color: #F5F5F5;
|
||||
}
|
||||
.input-100-45:focus{
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.wind100{
|
||||
width:100% !important;
|
||||
}
|
||||
|
||||
.color-bule-tip {
|
||||
color: #5485f7 !important;
|
||||
}
|
||||
.martopf4{
|
||||
margin-top:-4px;
|
||||
}
|
||||
|
||||
.headdfgf{
|
||||
display: block;
|
||||
width: 100px;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.color979797{
|
||||
color: #979797 !important;
|
||||
}
|
||||
|
||||
.border-left{
|
||||
width: 0;
|
||||
height: 0;
|
||||
border-bottom: 6px solid transparent;
|
||||
border-right: 6px solid #cccbcb;
|
||||
border-top: 6px solid transparent;
|
||||
position: absolute;
|
||||
left: 30px;
|
||||
top: 12px;
|
||||
}
|
||||
.border-left span{
|
||||
display: block;
|
||||
width: 0;
|
||||
height: 0;
|
||||
border-bottom: 6px solid transparent;
|
||||
border-right: 6px solid #fff;
|
||||
border-top: 6px solid transparent;
|
||||
position: absolute;
|
||||
left: 1px;
|
||||
top: -6px;
|
||||
z-index: 10;
|
||||
}
|
||||
.fillTip{
|
||||
position: absolute;
|
||||
left: 36px;
|
||||
top: 2px;
|
||||
width: 125px;
|
||||
font-size: 12px;
|
||||
display: block;
|
||||
padding: 5px;
|
||||
border: 1px solid #eaeaea;
|
||||
border-radius: 5px;
|
||||
box-sizing: border-box;
|
||||
height: 32px;
|
||||
line-height: 20px;
|
||||
font-family: "微软雅黑","宋体";
|
||||
}
|
@ -1,379 +1,379 @@
|
||||
/* BASICS */
|
||||
|
||||
.CodeMirror {
|
||||
/* Set height, width, borders, and global font properties here */
|
||||
font-family: monospace;
|
||||
height: 300px;
|
||||
color: black;
|
||||
direction: ltr;
|
||||
}
|
||||
|
||||
/* PADDING */
|
||||
|
||||
.CodeMirror-lines {
|
||||
padding: 4px 0; /* Vertical padding around content */
|
||||
}
|
||||
.CodeMirror pre {
|
||||
padding: 0 4px; /* Horizontal padding of content */
|
||||
}
|
||||
|
||||
.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
|
||||
background-color: white; /* The little square between H and V scrollbars */
|
||||
}
|
||||
|
||||
/* GUTTER */
|
||||
|
||||
.CodeMirror-gutters {
|
||||
border-right: 1px solid #ddd;
|
||||
background-color: #f7f7f7;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.CodeMirror-linenumbers {}
|
||||
.CodeMirror-linenumber {
|
||||
padding: 0 3px 0 5px;
|
||||
min-width: 20px;
|
||||
text-align: right;
|
||||
color: #999;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.CodeMirror-guttermarker { color: black; }
|
||||
.CodeMirror-guttermarker-subtle { color: #999; }
|
||||
|
||||
/* CURSOR */
|
||||
|
||||
.CodeMirror-cursor {
|
||||
border-left: 1px solid black;
|
||||
border-right: none;
|
||||
width: 0;
|
||||
}
|
||||
/* Shown when moving in bi-directional text */
|
||||
.CodeMirror div.CodeMirror-secondarycursor {
|
||||
border-left: 1px solid silver;
|
||||
}
|
||||
.cm-fat-cursor .CodeMirror-cursor {
|
||||
width: auto;
|
||||
border: 0 !important;
|
||||
background: #7e7;
|
||||
}
|
||||
.cm-fat-cursor div.CodeMirror-cursors {
|
||||
z-index: 1;
|
||||
}
|
||||
.cm-fat-cursor-mark {
|
||||
background-color: rgba(20, 255, 20, 0.5);
|
||||
-webkit-animation: blink 1.06s steps(1) infinite;
|
||||
animation: blink 1.06s steps(1) infinite;
|
||||
}
|
||||
.cm-animate-fat-cursor {
|
||||
width: auto;
|
||||
border: 0;
|
||||
-webkit-animation: blink 1.06s steps(1) infinite;
|
||||
animation: blink 1.06s steps(1) infinite;
|
||||
background-color: #7e7;
|
||||
}
|
||||
@-webkit-keyframes blink {
|
||||
0% {}
|
||||
50% { background-color: transparent; }
|
||||
100% {}
|
||||
}
|
||||
@keyframes blink {
|
||||
0% {}
|
||||
50% { background-color: transparent; }
|
||||
100% {}
|
||||
}
|
||||
|
||||
/* Can style cursor different in overwrite (non-insert) mode */
|
||||
.CodeMirror-overwrite .CodeMirror-cursor {}
|
||||
|
||||
.cm-tab { display: inline-block; text-decoration: inherit; }
|
||||
|
||||
.CodeMirror-rulers {
|
||||
position: absolute;
|
||||
left: 0; right: 0; top: -50px; bottom: -20px;
|
||||
overflow: hidden;
|
||||
}
|
||||
.CodeMirror-ruler {
|
||||
border-left: 1px solid #ccc;
|
||||
top: 0; bottom: 0;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
/* DEFAULT THEME */
|
||||
|
||||
.cm-s-default .cm-header {color: blue;}
|
||||
.cm-s-default .cm-quote {color: #090;}
|
||||
.cm-negative {color: #d44;}
|
||||
.cm-positive {color: #292;}
|
||||
.cm-header, .cm-strong {font-weight: bold;}
|
||||
.cm-em {font-style: italic;}
|
||||
.cm-link {text-decoration: underline;}
|
||||
.cm-strikethrough {text-decoration: line-through;}
|
||||
|
||||
.cm-s-default .cm-keyword {color: #708;}
|
||||
.cm-s-default .cm-atom {color: #219;}
|
||||
.cm-s-default .cm-number {color: #164;}
|
||||
.cm-s-default .cm-def {color: #00f;}
|
||||
.cm-s-default .cm-variable,
|
||||
.cm-s-default .cm-punctuation,
|
||||
.cm-s-default .cm-property,
|
||||
.cm-s-default .cm-operator {}
|
||||
.cm-s-default .cm-variable-2 {color: #05a;}
|
||||
.cm-s-default .cm-variable-3, .cm-s-default .cm-type {color: #085;}
|
||||
.cm-s-default .cm-comment {color: #a50;}
|
||||
.cm-s-default .cm-string {color: #a11;}
|
||||
.cm-s-default .cm-string-2 {color: #f50;}
|
||||
.cm-s-default .cm-meta {color: #555;}
|
||||
.cm-s-default .cm-qualifier {color: #555;}
|
||||
.cm-s-default .cm-builtin {color: #30a;}
|
||||
.cm-s-default .cm-bracket {color: #997;}
|
||||
.cm-s-default .cm-tag {color: #170;}
|
||||
.cm-s-default .cm-attribute {color: #00c;}
|
||||
.cm-s-default .cm-hr {color: #999;}
|
||||
.cm-s-default .cm-link {color: #00c;}
|
||||
|
||||
.cm-s-default .cm-error {color: #f00;}
|
||||
.cm-invalidchar {color: #f00;}
|
||||
|
||||
.CodeMirror-composing { border-bottom: 2px solid; }
|
||||
|
||||
/* Default styles for common addons */
|
||||
|
||||
div.CodeMirror span.CodeMirror-matchingbracket {color: #0b0;}
|
||||
div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #a22;}
|
||||
.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); }
|
||||
.CodeMirror-activeline-background {background: #e8f2ff;}
|
||||
|
||||
/* STOP */
|
||||
|
||||
/* The rest of this file contains styles related to the mechanics of
|
||||
the editor. You probably shouldn't touch them. */
|
||||
|
||||
.CodeMirror {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
background: white;
|
||||
}
|
||||
|
||||
.CodeMirror-scroll {
|
||||
overflow: scroll !important; /* Things will break if this is overridden */
|
||||
/* 30px is the magic margin used to hide the element's real scrollbars */
|
||||
/* See overflow: hidden in .CodeMirror */
|
||||
margin-bottom: -30px; margin-right: -30px;
|
||||
padding-bottom: 30px;
|
||||
height: 100%;
|
||||
outline: none; /* Prevent dragging from highlighting the element */
|
||||
position: relative;
|
||||
}
|
||||
.CodeMirror-sizer {
|
||||
position: relative;
|
||||
border-right: 30px solid transparent;
|
||||
}
|
||||
|
||||
/* The fake, visible scrollbars. Used to force redraw during scrolling
|
||||
before actual scrolling happens, thus preventing shaking and
|
||||
flickering artifacts. */
|
||||
.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
|
||||
position: absolute;
|
||||
z-index: 6;
|
||||
display: none;
|
||||
}
|
||||
.CodeMirror-vscrollbar {
|
||||
right: 0; top: 0;
|
||||
overflow-x: hidden;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
.CodeMirror-hscrollbar {
|
||||
bottom: 0; left: 0;
|
||||
overflow-y: hidden;
|
||||
overflow-x: scroll;
|
||||
}
|
||||
.CodeMirror-scrollbar-filler {
|
||||
right: 0; bottom: 0;
|
||||
}
|
||||
.CodeMirror-gutter-filler {
|
||||
left: 0; bottom: 0;
|
||||
}
|
||||
|
||||
.CodeMirror-gutters {
|
||||
position: absolute; left: 0; top: 0;
|
||||
min-height: 100%;
|
||||
z-index: 3;
|
||||
}
|
||||
.CodeMirror-gutter {
|
||||
white-space: normal;
|
||||
height: 100%;
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
margin-bottom: -30px;
|
||||
}
|
||||
.CodeMirror-gutter-wrapper {
|
||||
position: absolute;
|
||||
z-index: 4;
|
||||
background: none !important;
|
||||
border: none !important;
|
||||
}
|
||||
.CodeMirror-gutter-background {
|
||||
position: absolute;
|
||||
top: 0; bottom: 0;
|
||||
z-index: 4;
|
||||
}
|
||||
.CodeMirror-gutter-elt {
|
||||
position: absolute;
|
||||
cursor: default;
|
||||
z-index: 4;
|
||||
}
|
||||
.CodeMirror-gutter-wrapper ::-moz-selection { background-color: transparent }
|
||||
.CodeMirror-gutter-wrapper ::selection { background-color: transparent }
|
||||
.CodeMirror-gutter-wrapper ::-moz-selection { background-color: transparent }
|
||||
|
||||
.CodeMirror-lines {
|
||||
cursor: text;
|
||||
min-height: 1px; /* prevents collapsing before first draw */
|
||||
}
|
||||
.CodeMirror pre {
|
||||
/* Reset some styles that the rest of the page might have set */ border-radius: 0;
|
||||
border-width: 0;
|
||||
background: transparent;
|
||||
font-family: inherit;
|
||||
font-size: inherit;
|
||||
margin: 0;
|
||||
white-space: pre;
|
||||
word-wrap: normal;
|
||||
line-height: inherit;
|
||||
color: inherit;
|
||||
z-index: 2;
|
||||
position: relative;
|
||||
overflow: visible;
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
-webkit-font-variant-ligatures: contextual;
|
||||
font-variant-ligatures: contextual;
|
||||
}
|
||||
.CodeMirror-wrap pre {
|
||||
word-wrap: break-word;
|
||||
white-space: pre-wrap;
|
||||
word-break: normal;
|
||||
}
|
||||
|
||||
.CodeMirror-linebackground {
|
||||
position: absolute;
|
||||
left: 0; right: 0; top: 0; bottom: 0;
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
.CodeMirror-linewidget {
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
padding: 0.1px; /* Force widget margins to stay inside of the container */
|
||||
}
|
||||
|
||||
.CodeMirror-widget {}
|
||||
|
||||
.CodeMirror-rtl pre { direction: rtl; }
|
||||
|
||||
.CodeMirror-code {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
/* Force content-box sizing for the elements where we expect it */
|
||||
.CodeMirror-scroll,
|
||||
.CodeMirror-sizer,
|
||||
.CodeMirror-gutter,
|
||||
.CodeMirror-gutters,
|
||||
.CodeMirror-linenumber {
|
||||
-webkit-box-sizing: content-box;
|
||||
box-sizing: content-box;
|
||||
}
|
||||
|
||||
.CodeMirror-measure {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 0;
|
||||
overflow: hidden;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.CodeMirror-cursor {
|
||||
position: absolute;
|
||||
pointer-events: none;
|
||||
}
|
||||
.CodeMirror-measure pre { position: static; }
|
||||
|
||||
div.CodeMirror-cursors {
|
||||
visibility: hidden;
|
||||
position: relative;
|
||||
z-index: 3;
|
||||
}
|
||||
div.CodeMirror-dragcursors {
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
.CodeMirror-focused div.CodeMirror-cursors {
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
.CodeMirror-selected { background: #d9d9d9; }
|
||||
.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; }
|
||||
.CodeMirror-crosshair { cursor: crosshair; }
|
||||
.CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; }
|
||||
.CodeMirror-line::selection, .CodeMirror-line > span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; }
|
||||
.CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; }
|
||||
|
||||
.cm-searching {
|
||||
background-color: #ffa;
|
||||
background-color: rgba(255, 255, 0, .4);
|
||||
}
|
||||
|
||||
/* Used to force a border model for a node */
|
||||
.cm-force-border { padding-right: .1px; }
|
||||
|
||||
@media print {
|
||||
/* Hide the cursor when printing */
|
||||
.CodeMirror div.CodeMirror-cursors {
|
||||
visibility: hidden;
|
||||
}
|
||||
}
|
||||
|
||||
/* See issue #2901 */
|
||||
.cm-tab-wrap-hack:after { content: ''; }
|
||||
|
||||
/* Help users use markselection to safely style text background */
|
||||
span.CodeMirror-selectedtext { background: none; }
|
||||
|
||||
|
||||
|
||||
|
||||
.radioStyle{
|
||||
display: block;
|
||||
height: 30px;
|
||||
}
|
||||
a.white-btn.use_scope-btn:hover{
|
||||
|
||||
}
|
||||
.shixunScopeInput{
|
||||
width:218px;
|
||||
height:33px;
|
||||
display:block;
|
||||
margin-bottom:15px;
|
||||
}
|
||||
|
||||
#memoMD .CodeMirror {
|
||||
width: 576px !important;
|
||||
margin-top: 31px !important;
|
||||
height: 364px !important;
|
||||
}
|
||||
|
||||
#memoMD .editormd-preview {
|
||||
width: 567px !important;
|
||||
top: 40px !important;
|
||||
height: 364px !important;
|
||||
}
|
||||
|
||||
.ml36{
|
||||
margin-left: 26px;
|
||||
}
|
||||
#person-unit a.white-btn.use_scope-btn:hover {
|
||||
border: 1px solid #F06200;
|
||||
color:#FFF !important;
|
||||
}
|
||||
|
||||
|
||||
/* BASICS */
|
||||
|
||||
.CodeMirror {
|
||||
/* Set height, width, borders, and global font properties here */
|
||||
font-family: monospace;
|
||||
height: 300px;
|
||||
color: black;
|
||||
direction: ltr;
|
||||
}
|
||||
|
||||
/* PADDING */
|
||||
|
||||
.CodeMirror-lines {
|
||||
padding: 4px 0; /* Vertical padding around content */
|
||||
}
|
||||
.CodeMirror pre {
|
||||
padding: 0 4px; /* Horizontal padding of content */
|
||||
}
|
||||
|
||||
.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
|
||||
background-color: white; /* The little square between H and V scrollbars */
|
||||
}
|
||||
|
||||
/* GUTTER */
|
||||
|
||||
.CodeMirror-gutters {
|
||||
border-right: 1px solid #ddd;
|
||||
background-color: #f7f7f7;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.CodeMirror-linenumbers {}
|
||||
.CodeMirror-linenumber {
|
||||
padding: 0 3px 0 5px;
|
||||
min-width: 20px;
|
||||
text-align: right;
|
||||
color: #999;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.CodeMirror-guttermarker { color: black; }
|
||||
.CodeMirror-guttermarker-subtle { color: #999; }
|
||||
|
||||
/* CURSOR */
|
||||
|
||||
.CodeMirror-cursor {
|
||||
border-left: 1px solid black;
|
||||
border-right: none;
|
||||
width: 0;
|
||||
}
|
||||
/* Shown when moving in bi-directional text */
|
||||
.CodeMirror div.CodeMirror-secondarycursor {
|
||||
border-left: 1px solid silver;
|
||||
}
|
||||
.cm-fat-cursor .CodeMirror-cursor {
|
||||
width: auto;
|
||||
border: 0 !important;
|
||||
background: #7e7;
|
||||
}
|
||||
.cm-fat-cursor div.CodeMirror-cursors {
|
||||
z-index: 1;
|
||||
}
|
||||
.cm-fat-cursor-mark {
|
||||
background-color: rgba(20, 255, 20, 0.5);
|
||||
-webkit-animation: blink 1.06s steps(1) infinite;
|
||||
animation: blink 1.06s steps(1) infinite;
|
||||
}
|
||||
.cm-animate-fat-cursor {
|
||||
width: auto;
|
||||
border: 0;
|
||||
-webkit-animation: blink 1.06s steps(1) infinite;
|
||||
animation: blink 1.06s steps(1) infinite;
|
||||
background-color: #7e7;
|
||||
}
|
||||
@-webkit-keyframes blink {
|
||||
0% {}
|
||||
50% { background-color: transparent; }
|
||||
100% {}
|
||||
}
|
||||
@keyframes blink {
|
||||
0% {}
|
||||
50% { background-color: transparent; }
|
||||
100% {}
|
||||
}
|
||||
|
||||
/* Can style cursor different in overwrite (non-insert) mode */
|
||||
.CodeMirror-overwrite .CodeMirror-cursor {}
|
||||
|
||||
.cm-tab { display: inline-block; text-decoration: inherit; }
|
||||
|
||||
.CodeMirror-rulers {
|
||||
position: absolute;
|
||||
left: 0; right: 0; top: -50px; bottom: -20px;
|
||||
overflow: hidden;
|
||||
}
|
||||
.CodeMirror-ruler {
|
||||
border-left: 1px solid #ccc;
|
||||
top: 0; bottom: 0;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
/* DEFAULT THEME */
|
||||
|
||||
.cm-s-default .cm-header {color: blue;}
|
||||
.cm-s-default .cm-quote {color: #090;}
|
||||
.cm-negative {color: #d44;}
|
||||
.cm-positive {color: #292;}
|
||||
.cm-header, .cm-strong {font-weight: bold;}
|
||||
.cm-em {font-style: italic;}
|
||||
.cm-link {text-decoration: underline;}
|
||||
.cm-strikethrough {text-decoration: line-through;}
|
||||
|
||||
.cm-s-default .cm-keyword {color: #708;}
|
||||
.cm-s-default .cm-atom {color: #219;}
|
||||
.cm-s-default .cm-number {color: #164;}
|
||||
.cm-s-default .cm-def {color: #00f;}
|
||||
.cm-s-default .cm-variable,
|
||||
.cm-s-default .cm-punctuation,
|
||||
.cm-s-default .cm-property,
|
||||
.cm-s-default .cm-operator {}
|
||||
.cm-s-default .cm-variable-2 {color: #05a;}
|
||||
.cm-s-default .cm-variable-3, .cm-s-default .cm-type {color: #085;}
|
||||
.cm-s-default .cm-comment {color: #a50;}
|
||||
.cm-s-default .cm-string {color: #a11;}
|
||||
.cm-s-default .cm-string-2 {color: #f50;}
|
||||
.cm-s-default .cm-meta {color: #555;}
|
||||
.cm-s-default .cm-qualifier {color: #555;}
|
||||
.cm-s-default .cm-builtin {color: #30a;}
|
||||
.cm-s-default .cm-bracket {color: #997;}
|
||||
.cm-s-default .cm-tag {color: #170;}
|
||||
.cm-s-default .cm-attribute {color: #00c;}
|
||||
.cm-s-default .cm-hr {color: #999;}
|
||||
.cm-s-default .cm-link {color: #00c;}
|
||||
|
||||
.cm-s-default .cm-error {color: #f00;}
|
||||
.cm-invalidchar {color: #f00;}
|
||||
|
||||
.CodeMirror-composing { border-bottom: 2px solid; }
|
||||
|
||||
/* Default styles for common addons */
|
||||
|
||||
div.CodeMirror span.CodeMirror-matchingbracket {color: #0b0;}
|
||||
div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #a22;}
|
||||
.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); }
|
||||
.CodeMirror-activeline-background {background: #e8f2ff;}
|
||||
|
||||
/* STOP */
|
||||
|
||||
/* The rest of this file contains styles related to the mechanics of
|
||||
the editor. You probably shouldn't touch them. */
|
||||
|
||||
.CodeMirror {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
background: white;
|
||||
}
|
||||
|
||||
.CodeMirror-scroll {
|
||||
overflow: scroll !important; /* Things will break if this is overridden */
|
||||
/* 30px is the magic margin used to hide the element's real scrollbars */
|
||||
/* See overflow: hidden in .CodeMirror */
|
||||
margin-bottom: -30px; margin-right: -30px;
|
||||
padding-bottom: 30px;
|
||||
height: 100%;
|
||||
outline: none; /* Prevent dragging from highlighting the element */
|
||||
position: relative;
|
||||
}
|
||||
.CodeMirror-sizer {
|
||||
position: relative;
|
||||
border-right: 30px solid transparent;
|
||||
}
|
||||
|
||||
/* The fake, visible scrollbars. Used to force redraw during scrolling
|
||||
before actual scrolling happens, thus preventing shaking and
|
||||
flickering artifacts. */
|
||||
.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
|
||||
position: absolute;
|
||||
z-index: 6;
|
||||
display: none;
|
||||
}
|
||||
.CodeMirror-vscrollbar {
|
||||
right: 0; top: 0;
|
||||
overflow-x: hidden;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
.CodeMirror-hscrollbar {
|
||||
bottom: 0; left: 0;
|
||||
overflow-y: hidden;
|
||||
overflow-x: scroll;
|
||||
}
|
||||
.CodeMirror-scrollbar-filler {
|
||||
right: 0; bottom: 0;
|
||||
}
|
||||
.CodeMirror-gutter-filler {
|
||||
left: 0; bottom: 0;
|
||||
}
|
||||
|
||||
.CodeMirror-gutters {
|
||||
position: absolute; left: 0; top: 0;
|
||||
min-height: 100%;
|
||||
z-index: 3;
|
||||
}
|
||||
.CodeMirror-gutter {
|
||||
white-space: normal;
|
||||
height: 100%;
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
margin-bottom: -30px;
|
||||
}
|
||||
.CodeMirror-gutter-wrapper {
|
||||
position: absolute;
|
||||
z-index: 4;
|
||||
background: none !important;
|
||||
border: none !important;
|
||||
}
|
||||
.CodeMirror-gutter-background {
|
||||
position: absolute;
|
||||
top: 0; bottom: 0;
|
||||
z-index: 4;
|
||||
}
|
||||
.CodeMirror-gutter-elt {
|
||||
position: absolute;
|
||||
cursor: default;
|
||||
z-index: 4;
|
||||
}
|
||||
.CodeMirror-gutter-wrapper ::-moz-selection { background-color: transparent }
|
||||
.CodeMirror-gutter-wrapper ::selection { background-color: transparent }
|
||||
.CodeMirror-gutter-wrapper ::-moz-selection { background-color: transparent }
|
||||
|
||||
.CodeMirror-lines {
|
||||
cursor: text;
|
||||
min-height: 1px; /* prevents collapsing before first draw */
|
||||
}
|
||||
.CodeMirror pre {
|
||||
/* Reset some styles that the rest of the page might have set */ border-radius: 0;
|
||||
border-width: 0;
|
||||
background: transparent;
|
||||
font-family: inherit;
|
||||
font-size: inherit;
|
||||
margin: 0;
|
||||
white-space: pre;
|
||||
word-wrap: normal;
|
||||
line-height: inherit;
|
||||
color: inherit;
|
||||
z-index: 2;
|
||||
position: relative;
|
||||
overflow: visible;
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
-webkit-font-variant-ligatures: contextual;
|
||||
font-variant-ligatures: contextual;
|
||||
}
|
||||
.CodeMirror-wrap pre {
|
||||
word-wrap: break-word;
|
||||
white-space: pre-wrap;
|
||||
word-break: normal;
|
||||
}
|
||||
|
||||
.CodeMirror-linebackground {
|
||||
position: absolute;
|
||||
left: 0; right: 0; top: 0; bottom: 0;
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
.CodeMirror-linewidget {
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
padding: 0.1px; /* Force widget margins to stay inside of the container */
|
||||
}
|
||||
|
||||
.CodeMirror-widget {}
|
||||
|
||||
.CodeMirror-rtl pre { direction: rtl; }
|
||||
|
||||
.CodeMirror-code {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
/* Force content-box sizing for the elements where we expect it */
|
||||
.CodeMirror-scroll,
|
||||
.CodeMirror-sizer,
|
||||
.CodeMirror-gutter,
|
||||
.CodeMirror-gutters,
|
||||
.CodeMirror-linenumber {
|
||||
-webkit-box-sizing: content-box;
|
||||
box-sizing: content-box;
|
||||
}
|
||||
|
||||
.CodeMirror-measure {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 0;
|
||||
overflow: hidden;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.CodeMirror-cursor {
|
||||
position: absolute;
|
||||
pointer-events: none;
|
||||
}
|
||||
.CodeMirror-measure pre { position: static; }
|
||||
|
||||
div.CodeMirror-cursors {
|
||||
visibility: hidden;
|
||||
position: relative;
|
||||
z-index: 3;
|
||||
}
|
||||
div.CodeMirror-dragcursors {
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
.CodeMirror-focused div.CodeMirror-cursors {
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
.CodeMirror-selected { background: #d9d9d9; }
|
||||
.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; }
|
||||
.CodeMirror-crosshair { cursor: crosshair; }
|
||||
.CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; }
|
||||
.CodeMirror-line::selection, .CodeMirror-line > span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; }
|
||||
.CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; }
|
||||
|
||||
.cm-searching {
|
||||
background-color: #ffa;
|
||||
background-color: rgba(255, 255, 0, .4);
|
||||
}
|
||||
|
||||
/* Used to force a border model for a node */
|
||||
.cm-force-border { padding-right: .1px; }
|
||||
|
||||
@media print {
|
||||
/* Hide the cursor when printing */
|
||||
.CodeMirror div.CodeMirror-cursors {
|
||||
visibility: hidden;
|
||||
}
|
||||
}
|
||||
|
||||
/* See issue #2901 */
|
||||
.cm-tab-wrap-hack:after { content: ''; }
|
||||
|
||||
/* Help users use markselection to safely style text background */
|
||||
span.CodeMirror-selectedtext { background: none; }
|
||||
|
||||
|
||||
|
||||
|
||||
.radioStyle{
|
||||
display: block;
|
||||
height: 30px;
|
||||
}
|
||||
a.white-btn.use_scope-btn:hover{
|
||||
|
||||
}
|
||||
.shixunScopeInput{
|
||||
width:218px;
|
||||
height:33px;
|
||||
display:block;
|
||||
margin-bottom:15px;
|
||||
}
|
||||
|
||||
#memoMD .CodeMirror {
|
||||
/*width: 576px !important;*/
|
||||
margin-top: 31px !important;
|
||||
height: 364px !important;
|
||||
}
|
||||
|
||||
#memoMD .editormd-preview {
|
||||
width: 578px !important;
|
||||
top: 40px !important;
|
||||
height: 364px !important;
|
||||
}
|
||||
|
||||
.ml36{
|
||||
margin-left: 26px;
|
||||
}
|
||||
#person-unit a.white-btn.use_scope-btn:hover {
|
||||
border: 1px solid #F06200;
|
||||
color:#FFF !important;
|
||||
}
|
||||
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue