Merge branch 'dev_aliyun' of https://bdgit.educoder.net/Hjqreturn/educoder into dev_aliyun

dev_tj
杨树林 5 years ago
commit 69c9d9357a

@ -4,7 +4,7 @@
* @Github: * @Github:
* @Date: 2020-01-15 09:56:34 * @Date: 2020-01-15 09:56:34
* @LastEditors : tangjiang * @LastEditors : tangjiang
* @LastEditTime : 2020-01-18 09:54:54 * @LastEditTime : 2020-01-18 11:51:42
*/ */
import './index.scss'; import './index.scss';
import React, {useState, useEffect, useRef} from 'react'; import React, {useState, useEffect, useRef} from 'react';
@ -72,6 +72,7 @@ const App = (props) => {
const [isActive, setIsActive] = useState(-1); const [isActive, setIsActive] = useState(-1);
const [tip, setTip] = useState(''); const [tip, setTip] = useState('');
const [codes, setCodes] = useState(wxCode); const [codes, setCodes] = useState(wxCode);
// const [showInfo, setShowInfo] = useState(false);
// const [isVisible, setIsVisible] = useState(false); // const [isVisible, setIsVisible] = useState(false);
useEffect(() => { useEffect(() => {
@ -142,6 +143,8 @@ const App = (props) => {
} }
// 初始化 // 初始化
const handleResetCode = () => { const handleResetCode = () => {
clearInterval(timer);
timer = null;
const result = window.confirm('你在本文件中修改的内容将丢失, 是否确定重新加载初始代码?'); const result = window.confirm('你在本文件中修改的内容将丢失, 是否确定重新加载初始代码?');
if (result) { if (result) {
setTip('初始化中...'); setTip('初始化中...');
@ -180,7 +183,9 @@ const App = (props) => {
let resultTxt = (_val) ? '全部通过' : `${sets_error_count}组测试结果不匹配`; let resultTxt = (_val) ? '全部通过' : `${sets_error_count}组测试结果不匹配`;
const iclasses = _val ? 'iconfont icon-wancheng icon success' : 'iconfont icon-tishi1 icon fail'; const iclasses = _val ? 'iconfont icon-wancheng icon success' : 'iconfont icon-tishi1 icon fail';
const tclasses = _val ? 'result-txt success' : 'result-txt fail'; const tclasses = _val ? 'result-txt success' : 'result-txt fail';
const ulClasses = last_compile_output ? 'case-list hasResult' : 'case-list'; const ulClasses = !!last_compile_output ? 'case-list hasResult' : 'case-list';
const resultFlag = !!last_compile_output ? 'wxcode-test-result active' : 'wxcode-test-result';
// console.log('==========>>>>>>>> 评测结果样式', last_compile_output, resultFlag);
return ( return (
<div className="wx-code-area"> <div className="wx-code-area">
<div className="wx-code-flex"> <div className="wx-code-flex">
@ -221,7 +226,7 @@ const App = (props) => {
<span className="header-title">{testCase.length}个测试用例</span> <span className="header-title">{testCase.length}个测试用例</span>
<span className="header-close" onClick={handleCloseTestCase}>关闭</span> <span className="header-close" onClick={handleCloseTestCase}>关闭</span>
</div> </div>
<div className="wxcode-test-result" style={{ display: last_compile_output ? 'block' : 'none'}}> <div className={resultFlag}>
<i className={iclasses}></i> <i className={iclasses}></i>
<span className={tclasses}>{test_sets_count - sets_error_count}/{test_sets_count}</span> <span className={tclasses}>{test_sets_count - sets_error_count}/{test_sets_count}</span>
<span className={`${tclasses} result-txt-desc`}>{resultTxt}</span> <span className={`${tclasses} result-txt-desc`}>{resultTxt}</span>
@ -229,7 +234,7 @@ const App = (props) => {
<ul className={ulClasses}> <ul className={ulClasses}>
{ {
testCase.map((item, i) => { testCase.map((item, i) => {
const {input, output, actual_output, is_public, result} = item; const {input, output, actual_output, is_public, result, compile_success} = item;
const _classes = isActive === i ? 'case-item-desc active' : 'case-item-desc'; const _classes = isActive === i ? 'case-item-desc active' : 'case-item-desc';
const iconclasses = isActive === i ? 'iconfont icon-sanjiaoxing-down icon active' : 'iconfont icon-triangle icon'; const iconclasses = isActive === i ? 'iconfont icon-sanjiaoxing-down icon active' : 'iconfont icon-triangle icon';
const headerClasses = is_public ? 'item-header-desc active' : 'item-header-desc'; const headerClasses = is_public ? 'item-header-desc active' : 'item-header-desc';
@ -243,16 +248,22 @@ const App = (props) => {
</h2> </h2>
{ {
is_public is_public
? (last_compile_output ? ? compile_success > 0
(result ? <span className="iconfont icon-wancheng case_item_success"></span> ? result ? <span className="iconfont icon-wancheng case_item_success"></span>
: <span className="iconfont icon-jinggao1 case_item_fail"></span>) : '')
: (<span className="case-item-tips">
隐藏测试集暂不支持解锁和查看
{/* {result
? <span className="iconfont icon-wancheng case_item_success"></span>
: <span className="iconfont icon-jinggao1 case_item_fail"></span> : <span className="iconfont icon-jinggao1 case_item_fail"></span>
} */} : ''
</span>) :
<span className="case-item-tips">隐藏测试集暂不支持解锁和查看 </span>
// is_public
// ? result ? <span className="iconfont icon-wancheng case_item_success"></span>
// : <span className="iconfont icon-jinggao1 case_item_fail"></span>)
// : (
// 隐藏测试集,暂不支持解锁和查看
// {/* {result
// ? <span className="iconfont icon-wancheng case_item_success"></span>
// : <span className="iconfont icon-jinggao1 case_item_fail"></span>
// } */}
// </span>)
} }
</div> </div>

@ -116,7 +116,8 @@
} }
.wxcode-test-result{ .wxcode-test-result{
display: flex; // display: flex;
display: none;
height: 72px; height: 72px;
// background: gold; // background: gold;
align-items: center; align-items: center;
@ -130,7 +131,7 @@
.icon{ .icon{
font-size: 36px !important; font-size: 36px !important;
position: relative; position: relative;
top: -8px; // top: -8px;
margin-right: 10px; margin-right: 10px;
} }
.result-txt{ .result-txt{
@ -144,6 +145,9 @@
white-space: nowrap; white-space: nowrap;
margin: 20px; margin: 20px;
} }
&.active{
display: flex;;
}
} }
.case-list{ .case-list{

@ -4,7 +4,7 @@
* @Github: * @Github:
* @Date: 2020-01-15 15:41:10 * @Date: 2020-01-15 15:41:10
* @LastEditors : tangjiang * @LastEditors : tangjiang
* @LastEditTime : 2020-01-18 09:52:55 * @LastEditTime : 2020-01-18 11:43:43
*/ */
import types from './actionTypes.js'; import types from './actionTypes.js';
import { import {
@ -148,7 +148,7 @@ export const evaluateWxCode = (identifier, path) => {
console.log(finalTime, count, excuteTime); console.log(finalTime, count, excuteTime);
if ((excuteTime / 1000) > (finalTime + 1)) time_out = true; if ((excuteTime / 1000) > (finalTime + 1)) time_out = true;
fetchWxCodeGameStatus(identifier, {resubmit: _resubmit, time_out}).then(r => { fetchWxCodeGameStatus(identifier, {resubmit: _resubmit, time_out}).then(r => {
const { status, test_sets = [], gold, experience, next_game, sets_error_count } = r.data; const { status, test_sets = [], gold, experience, next_game, sets_error_count, test_sets_count, last_compile_output} = r.data;
if (+status > -1 || ((excuteTime / 1000) > (finalTime + 1))) { if (+status > -1 || ((excuteTime / 1000) > (finalTime + 1))) {
clearInterval(timer); clearInterval(timer);
timer = null; timer = null;

Loading…
Cancel
Save