diff --git a/public/react/src/modules/wxcode/index.js b/public/react/src/modules/wxcode/index.js index 3040480f1..2fb871288 100644 --- a/public/react/src/modules/wxcode/index.js +++ b/public/react/src/modules/wxcode/index.js @@ -4,7 +4,7 @@ * @Github: * @Date: 2020-01-15 09:56:34 * @LastEditors : tangjiang - * @LastEditTime : 2020-01-17 11:48:21 + * @LastEditTime : 2020-01-17 15:34:40 */ import './index.scss'; import React, {useState, useEffect, useRef} from 'react'; @@ -12,7 +12,7 @@ import MonacoEditor from '@monaco-editor/react'; import { Input, Icon } from 'antd'; import { connect } from 'react-redux'; import actions from '../../redux/actions'; -import cookie from 'react-cookies' +import cookie from 'react-cookies'; const { TextArea } = Input; const App = (props) => { @@ -39,32 +39,43 @@ const App = (props) => { const {identifier} = props.match.params; // 获取路径参数 - const _params = window.location.search; - if (_params) { - let _search = _params.split('?')[1]; - _search.split('&').forEach(item => { - console.log(item); - const _arr = item.split('='); - cookie.save(_arr[0], _arr[1], { - path: '/', - domain: '.educoder.net' + + const setCookier = () => { + const _params = window.location.search; + if (_params) { + let _search = _params.split('?')[1]; + _search.split('&').forEach(item => { + // console.log(item); + const _arr = item.split('='); + cookie.remove(_arr[0], { + path: '/', + domain: '.educoder.net' + }); + cookie.save(_arr[0], _arr[1], { + path: '/', + domain: '.educoder.net' + }); }); - }); + } } + setCookier(); const [isActive, setIsActive] = useState(-1); // const [isVisible, setIsVisible] = useState(false); const editorRef = useRef(null); let timer = null; useEffect(() => { - // 加载代码块内容 - getWXCode(identifier); - // 加载测试集 - const params = { - path, - status: 0, - retry: 1 - }; - getWXCodeTestCase(identifier, params); + setTimeout(() => { + setCookier(); + // 加载代码块内容 + getWXCode(identifier, ); + // 加载测试集 + const params = { + path, + status: 0, + retry: 1 + }; + getWXCodeTestCase(identifier, params); + }, 0); }, []); // 关闭 const handleCloseTestCase = () => { diff --git a/public/react/src/services/wxcodeService.js b/public/react/src/services/wxcodeService.js index 4c44b259e..4ca2f5382 100644 --- a/public/react/src/services/wxcodeService.js +++ b/public/react/src/services/wxcodeService.js @@ -4,12 +4,34 @@ * @Github: * @Date: 2020-01-15 15:44:36 * @LastEditors : tangjiang - * @LastEditTime : 2020-01-17 10:06:45 + * @LastEditTime : 2020-01-17 15:33:56 */ import axios from 'axios'; +import cookie from 'react-cookies' +axios.defaults.withCredentials = true; + +const setCookier = () => { + const _params = window.location.search; + if (_params) { + let _search = _params.split('?')[1]; + _search.split('&').forEach(item => { + // console.log(item); + const _arr = item.split('='); + cookie.remove(_arr[0], { + path: '/', + domain: '.educoder.net' + }); + cookie.save(_arr[0], _arr[1], { + path: '/', + domain: '.educoder.net' + }); + }); + } +} // 获取代码块 export async function fetchWxCode (identifier, params) { + setCookier(); const url = `/tasks/${identifier}/rep_content.json`; params = Object.assign({}, params, {withCredentials: true}); return axios.get(url, {params}); @@ -17,6 +39,7 @@ export async function fetchWxCode (identifier, params) { // 获取测试值 export async function fetchWxCodeTextCase (identifier) { + setCookier(); const url = `/tasks/${identifier}.json`; const params = Object.assign({}, {withCredentials: true}); return axios.get(url, {params}); @@ -24,6 +47,7 @@ export async function fetchWxCodeTextCase (identifier) { // 更新代码块内容 export async function fetchUpdateWxCode (identifier, params) { + setCookier(); // /myshixuns/8etu3pilsa/update_file.json const url = `/myshixuns/${identifier}/update_file.json`; params = Object.assign({}, params, {withCredentials: true}); @@ -32,18 +56,21 @@ export async function fetchUpdateWxCode (identifier, params) { // 恢复初始化 export async function fetchRestoreWxCode (identifier, params) { + setCookier(); const url = `/tasks/${identifier}/reset_original_code.json`; params = Object.assign({}, params, {withCredentials: true}); return axios.get(url, {params}); } // 评测 export async function fetchWxCodeGameBuild (identifier, params) { + setCookier(); const url = `/tasks/${identifier}/game_build.json`; params = Object.assign({}, params, {withCredentials: true}); return axios.get(url, {params}); } export async function fetchWxCodeGameStatus (identifier) { + setCookier(); const url = `/tasks/${identifier}/game_status.json`; const params = Object.assign({}, {withCredentials: true}); return axios.get(url, {params});