diff --git a/public/react/config/webpack.config.dev.js b/public/react/config/webpack.config.dev.js
index 80973be75..11cfc1962 100644
--- a/public/react/config/webpack.config.dev.js
+++ b/public/react/config/webpack.config.dev.js
@@ -29,7 +29,7 @@ const env = getClientEnvironment(publicUrl);
module.exports = {
// You may want 'eval' instead if you prefer to see the compiled output in DevTools.
// See the discussion in https://github.com/facebookincubator/create-react-app/issues/343.s
- devtool: "source-map", // 开启调试
+ // devtool: "source-map", // 开启调试
// These are the "entry points" to our application.
// This means they will be the "root" imports that are included in JS bundle.
// The first two entry points enable "hot" CSS and auto-refreshes for JS.
diff --git a/public/react/src/modules/tpm/challengesnew/TPMMDEditor.js b/public/react/src/modules/tpm/challengesnew/TPMMDEditor.js
index 445d7b759..93f50d704 100644
--- a/public/react/src/modules/tpm/challengesnew/TPMMDEditor.js
+++ b/public/react/src/modules/tpm/challengesnew/TPMMDEditor.js
@@ -1,338 +1,338 @@
-import React, {Component} from 'react';
-
-import {Input, Select, Radio, Checkbox, Popconfirm, message, Modal} from 'antd';
-
-import {BrowserRouter as Router, Route, Link, Switch} from "react-router-dom";
-
-// import "antd/dist/antd.css";
-
-import { getImageUrl, toPath, getUrl } from 'educoder';
-import '../../courses/css/Courses.css'
-
-import axios from 'axios';
-
-import './css/TPMchallengesnew.css';
-require('codemirror/lib/codemirror.css');
-
-let origin = getUrl();
-
-let path = getUrl("/editormd/lib/")
-
-const $ = window.$;
-
-let timeout;
-
-let currentValue;
-
-const Option = Select.Option;
-
-const RadioGroup = Radio.Group;
-
-
-
-// 保存数据
-function md_add_data(k,mdu,d){
- window.sessionStorage.setItem(k+mdu,d);
-}
-
-// 清空保存的数据
-function md_clear_data(k,mdu,id){
- window.sessionStorage.removeItem(k+mdu);
- var id1 = "#e_tip_"+id;
- var id2 = "#e_tips_"+id;
- if(k == 'content'){
- $(id2).html(" ");
- }else{
- $(id1).html(" ");
- }
-}
-window.md_clear_data = md_clear_data
-// editor 存在了jquery对象上,应用不需要自己写md_rec_data方法了
-function md_rec_data(k, mdu, id) {
- if (window.sessionStorage.getItem(k + mdu) !== null) {
- var editor = $("#e_tips_" + id).data('editor');
- editor.setValue(window.sessionStorage.getItem(k + mdu));
- // debugger;
- // /shixuns/b5hjq9zm/challenges/3977/tab=3 setValue可能导致editor样式问题
- md_clear_data(k, mdu, id);
- }
-}
-window.md_rec_data = md_rec_data;
-
-function md_elocalStorage(editor,mdu,id){
- if (window.sessionStorage){
- var oc = window.sessionStorage.getItem('content'+mdu);
- if(oc !== null ){
- console.log("#e_tips_"+id)
- $("#e_tips_"+id).data('editor', editor);
- var h = '您上次有已保存的数据,是否恢复 ? / 不恢复';
- $("#e_tips_"+id).html(h);
- }
- setInterval(function() {
- var d = new Date();
- var h = d.getHours();
- var m = d.getMinutes();
- var s = d.getSeconds();
- h = h < 10 ? '0' + h : h;
- m = m < 10 ? '0' + m : m;
- s = s < 10 ? '0' + s : s;
- if(editor.getValue().trim() != ""){
- md_add_data("content",mdu,editor.getValue());
- var id1 = "#e_tip_"+id;
- var id2 = "#e_tips_"+id;
-
- var textStart = " 数据已于 "
- var text = textStart + h + ':' + m + ':' + s +" 保存 ";
- // 占位符
- var oldHtml = $(id2).html();
- if (oldHtml && oldHtml != ' ' && oldHtml.startsWith(textStart) == false) {
- $(id2).html( oldHtml.split(' (')[0] + ` (${text})`);
- } else {
- $(id2).html(text);
- }
- // $(id2).html("");
- }
- },10000);
-
- }else{
- $("#e_tip_"+id).after('您的浏览器不支持localStorage.无法开启自动保存草稿服务,请升级浏览器!');
- }
-}
-
-
-function create_editorMD(id, width, high, placeholder, imageUrl, callback, initValue,
- onchange, watch, { noStorage, showNullButton }, that) {
- // 还是出现了setting只有一份,被共用的问题
-
- var editorName = window.editormd(id, {
- width: width,
- height: high===undefined?400:high,
- path: path, // "/editormd/lib/"
- markdown : initValue,
-
- dialogLockScreen: false,
- watch:watch===undefined?true:watch,
- syncScrolling: "single",
- tex: true,
- tocm: true,
- emoji: true,
- taskList: true,
- codeFold: true,
- searchReplace: true,
- htmlDecode: "style,script,iframe",
- sequenceDiagram: true,
- autoFocus: false,
-
- // mine
-
- toolbarIcons: function (mdEditor) {
- let react_id = `react_${mdEditor.id}`;
- const __that = window[react_id]
-
- // Or return editormd.toolbarModes[name]; // full, simple, mini
- // Using "||" set icons align right.
- const icons = ["bold", "italic", "|", "list-ul", "list-ol", "|", "code", "code-block", "|", "testIcon", "testIcon1", '|', "image", "table", '|', "watch", "clear"];
- if (__that.props.showNullButton) {
- icons.push('nullBtton')
- }
- return icons
- },
- toolbarCustomIcons: {
- testIcon: "",
- testIcon1: "",
- nullBtton: "
点击插入填空项",
- },
- //这个配置在simple.html中并没有,但是为了能够提交表单,使用这个配置可以让构造出来的HTML代码直接在第二个隐藏的textarea域中,方便post提交表单。
- saveHTMLToTextarea: true,
- // 用于增加自定义工具栏的功能,可以直接插入HTML标签,不使用默认的元素创建图标
- dialogMaskOpacity: 0.6,
- placeholder: placeholder,
- imageUpload: true,
- imageFormats: ["jpg", "jpeg", "gif", "png", "bmp", "webp", "JPG", "JPEG", "GIF", "PNG", "BMP", "WEBP"],
- imageUploadURL: imageUrl,//url
- onchange: onchange,
- onload: function() {
- let _id = this.id // 如果要使用this,这里不能使用箭头函数
- let _editorName = this;
- let react_id = `react_${_editorName.id}`;
- const __that = window[react_id]
-
- // this.previewing();
- // let _id = id;
- $("#" + _id + " [type=\"latex\"]").bind("click", function () {
- _editorName.cm.replaceSelection("```latex");
- _editorName.cm.replaceSelection("\n");
- _editorName.cm.replaceSelection("\n");
- _editorName.cm.replaceSelection("```");
- var __Cursor = _editorName.cm.getDoc().getCursor();
- _editorName.cm.setCursor(__Cursor.line - 1, 0);
- });
-
- $("#" + _id + " [type=\"inline\"]").bind("click", function () {
- _editorName.cm.replaceSelection("$$$$");
- var __Cursor = _editorName.cm.getDoc().getCursor();
- _editorName.cm.setCursor(__Cursor.line, __Cursor.ch - 2);
- _editorName.cm.focus();
- });
- $("[type=\"inline\"]").attr("title", "行内公式");
- $("[type=\"latex\"]").attr("title", "多行公式");
-
- if (__that.props.showNullButton) {
- const NULL_CH = '▁'
- // const NULL_CH = '〇'
- // const NULL_CH = '🈳'
-
- $("#" + _id + " [type=\"nullBtton\"]").bind("click", function () {
- _editorName.cm.replaceSelection(NULL_CH);
- // var __Cursor = _editorName.cm.getDoc().getCursor();
- // _editorName.cm.setCursor(__Cursor.line - 1, 0);
- });
- }
-
- if (noStorage == true) {
-
- } else {
- md_elocalStorage(_editorName, `MDEditor__${_id}`, _id);
- }
-
- callback && callback(_editorName)
- }
- });
- return editorName;
-}
-
-
-export default class TPMMDEditor extends Component {
- constructor(props) {
- super(props)
- this.state = {
- initValue: ''
- }
- }
- componentDidUpdate(prevProps, prevState) {
- // 不能加,影响了试卷填空题
- // if (this.props.initValue != prevProps.initValue) {
- // this.answers_editormd.setValue(this.props.initValue)
- // }
- }
-
- // react_mdEditor_
- componentDidMount = () => {
- const { mdID, initValue, placeholder, showNullButton} = this.props;
-
- let _id = `mdEditor_${mdID}`
- this.contentChanged = false;
- const _placeholder = placeholder || "";
- // amp;
- // 编辑时要传memoId
- const imageUrl = `/api/attachments.json`;
- // 创建editorMd
- let react_id = `react_${_id}`;
- window[react_id] = this
- const answers_editormd = create_editorMD(_id, '100%', this.props.height, _placeholder, imageUrl, (__editorName) => {
- react_id = `react_${__editorName.id}`;
- const that = window[react_id]
-
- setTimeout(() => {
- console.log('timeout', __editorName.id)
- __editorName.resize()
- __editorName.cm && __editorName.cm.refresh()
- }, that.props.refreshTimeout || 500)
- if (that.props.initValue != undefined && that.props.initValue != '') {
- __editorName.setValue(that.props.initValue)
- }
- if (that.state.initValue) {
- __editorName.setValue(that.state.initValue)
- }
- __editorName.cm.on("change", (_cm, changeObj) => {
- that.contentChanged = true;
- if (that.state.showError) {
- that.setState({showError: false})
- }
- that.onEditorChange()
- })
- that.props.onCMBlur && __editorName.cm.on('blur', () => {
- that.props.onCMBlur()
- })
- that.props.onCMBeforeChange && __editorName.cm.on('beforeChange', (cm,change) => {
- that.props.onCMBeforeChange(cm,change)
- })
- that.answers_editormd = __editorName;
- window[_id] = __editorName;
- }, initValue, this.onEditorChange,this.props.watch, {
- noStorage: this.props.noStorage,
- showNullButton: this.props.showNullButton
- }, this);
-
- }
- showError = () => {
- this.setState({showError: true})
- }
- onEditorChange = () => {
- if (!this.answers_editormd) return;
- const val = this.answers_editormd.getValue();
- try {
- this.props.onChange && this.props.onChange(val)
- } catch(e) {
- // http://localhost:3007/courses/1309/common_homeworks/6566/setting
- // 从这个页面,跳转到编辑页面,再在编辑页面点击返回的时候,这里会报错
- console.error('出错')
- console.error(e)
- }
- }
- resize = () => {
- if (!this.answers_editormd) { // 还未初始化
- return;
- }
- this.answers_editormd.resize()
- this.answers_editormd.cm && this.answers_editormd.cm.refresh()
- this.answers_editormd.cm.focus()
- }
-
- getValue = () => {
- try {
- return this.answers_editormd.getValue()
- } catch (e) {
- return ''
- }
- }
- setValue = (val) => {
- try {
- this.answers_editormd.setValue(val)
- } catch (e) {
- // TODO 这里多实例的时候,前一个实例的state会被后面这个覆盖 参考NewWork.js http://localhost:3007/courses/1309/homework/9300/edit/1
- // 未初始化
- this.setState({ initValue: val })
- }
- }
-
- render() {
-
- let {
- showError
- } = this.state;
- let { mdID, className, noStorage } = this.props;
- let _style = {}
- if (showError) {
- _style.border = '1px solid red'
- }
- return (
-
-
- {/* padding10-20 */}
-
-
-
- {noStorage == true ? ' ' :
}
- {/* {noStorage == true ? ' ' :
} */}
-
-
- )
- }
-}
-
-
+import React, {Component} from 'react';
+
+import {Input, Select, Radio, Checkbox, Popconfirm, message, Modal} from 'antd';
+
+import {BrowserRouter as Router, Route, Link, Switch} from "react-router-dom";
+
+// import "antd/dist/antd.css";
+
+import { getImageUrl, toPath, getUrl } from 'educoder';
+import '../../courses/css/Courses.css'
+
+import axios from 'axios';
+
+import './css/TPMchallengesnew.css';
+require('codemirror/lib/codemirror.css');
+
+let origin = getUrl();
+
+let path = getUrl("/editormd/lib/")
+
+const $ = window.$;
+
+let timeout;
+
+let currentValue;
+
+const Option = Select.Option;
+
+const RadioGroup = Radio.Group;
+
+
+
+// 保存数据
+function md_add_data(k,mdu,d){
+ window.sessionStorage.setItem(k+mdu,d);
+}
+
+// 清空保存的数据
+function md_clear_data(k,mdu,id){
+ window.sessionStorage.removeItem(k+mdu);
+ var id1 = "#e_tip_"+id;
+ var id2 = "#e_tips_"+id;
+ if(k == 'content'){
+ $(id2).html(" ");
+ }else{
+ $(id1).html(" ");
+ }
+}
+window.md_clear_data = md_clear_data
+// editor 存在了jquery对象上,应用不需要自己写md_rec_data方法了
+function md_rec_data(k, mdu, id) {
+ if (window.sessionStorage.getItem(k + mdu) !== null) {
+ var editor = $("#e_tips_" + id).data('editor');
+ editor.setValue(window.sessionStorage.getItem(k + mdu));
+ // debugger;
+ // /shixuns/b5hjq9zm/challenges/3977/tab=3 setValue可能导致editor样式问题
+ md_clear_data(k, mdu, id);
+ }
+}
+window.md_rec_data = md_rec_data;
+
+function md_elocalStorage(editor,mdu,id){
+ if (window.sessionStorage){
+ var oc = window.sessionStorage.getItem('content'+mdu);
+ if(oc !== null ){
+ console.log("#e_tips_"+id)
+ $("#e_tips_"+id).data('editor', editor);
+ var h = '您上次有已保存的数据,是否恢复 ? / 不恢复';
+ $("#e_tips_"+id).html(h);
+ }
+ setInterval(function() {
+ var d = new Date();
+ var h = d.getHours();
+ var m = d.getMinutes();
+ var s = d.getSeconds();
+ h = h < 10 ? '0' + h : h;
+ m = m < 10 ? '0' + m : m;
+ s = s < 10 ? '0' + s : s;
+ if(editor.getValue().trim() != ""){
+ md_add_data("content",mdu,editor.getValue());
+ var id1 = "#e_tip_"+id;
+ var id2 = "#e_tips_"+id;
+
+ var textStart = " 数据已于 "
+ var text = textStart + h + ':' + m + ':' + s +" 保存 ";
+ // 占位符
+ var oldHtml = $(id2).html();
+ if (oldHtml && oldHtml != ' ' && oldHtml.startsWith(textStart) == false) {
+ $(id2).html( oldHtml.split(' (')[0] + ` (${text})`);
+ } else {
+ $(id2).html(text);
+ }
+ // $(id2).html("");
+ }
+ },10000);
+
+ }else{
+ $("#e_tip_"+id).after('您的浏览器不支持localStorage.无法开启自动保存草稿服务,请升级浏览器!');
+ }
+}
+
+
+function create_editorMD(id, width, high, placeholder, imageUrl, callback, initValue,
+ onchange, watch, { noStorage, showNullButton }, that) {
+ // 还是出现了setting只有一份,被共用的问题
+
+ var editorName = window.editormd(id, {
+ width: width,
+ height: high===undefined?400:high,
+ path: path, // "/editormd/lib/"
+ markdown : initValue,
+
+ dialogLockScreen: false,
+ watch:watch===undefined?true:watch,
+ syncScrolling: "single",
+ tex: true,
+ tocm: true,
+ emoji: true,
+ taskList: true,
+ codeFold: true,
+ searchReplace: true,
+ htmlDecode: "style,script,iframe",
+ sequenceDiagram: true,
+ autoFocus: false,
+
+ // mine
+
+ toolbarIcons: function (mdEditor) {
+ let react_id = `react_${mdEditor.id}`;
+ const __that = window[react_id]
+
+ // Or return editormd.toolbarModes[name]; // full, simple, mini
+ // Using "||" set icons align right.
+ const icons = ["bold", "italic", "|", "list-ul", "list-ol", "|", "code", "code-block", "|", "testIcon", "testIcon1", '|', "image", "table", '|', "watch", "clear"];
+ if (__that.props.showNullButton) {
+ icons.push('nullBtton')
+ }
+ return icons
+ },
+ toolbarCustomIcons: {
+ testIcon: "",
+ testIcon1: "",
+ nullBtton: "
点击插入填空项",
+ },
+ //这个配置在simple.html中并没有,但是为了能够提交表单,使用这个配置可以让构造出来的HTML代码直接在第二个隐藏的textarea域中,方便post提交表单。
+ saveHTMLToTextarea: true,
+ // 用于增加自定义工具栏的功能,可以直接插入HTML标签,不使用默认的元素创建图标
+ dialogMaskOpacity: 0.6,
+ placeholder: placeholder,
+ imageUpload: true,
+ imageFormats: ["jpg", "jpeg", "gif", "png", "bmp", "webp", "JPG", "JPEG", "GIF", "PNG", "BMP", "WEBP"],
+ imageUploadURL: imageUrl,//url
+ onchange: onchange,
+ onload: function() {
+ let _id = this.id // 如果要使用this,这里不能使用箭头函数
+ let _editorName = this;
+ let react_id = `react_${_editorName.id}`;
+ const __that = window[react_id]
+
+ // this.previewing();
+ // let _id = id;
+ $("#" + _id + " [type=\"latex\"]").bind("click", function () {
+ _editorName.cm.replaceSelection("```latex");
+ _editorName.cm.replaceSelection("\n");
+ _editorName.cm.replaceSelection("\n");
+ _editorName.cm.replaceSelection("```");
+ var __Cursor = _editorName.cm.getDoc().getCursor();
+ _editorName.cm.setCursor(__Cursor.line - 1, 0);
+ });
+
+ $("#" + _id + " [type=\"inline\"]").bind("click", function () {
+ _editorName.cm.replaceSelection("$$$$");
+ var __Cursor = _editorName.cm.getDoc().getCursor();
+ _editorName.cm.setCursor(__Cursor.line, __Cursor.ch - 2);
+ _editorName.cm.focus();
+ });
+ $("[type=\"inline\"]").attr("title", "行内公式");
+ $("[type=\"latex\"]").attr("title", "多行公式");
+
+ if (__that.props.showNullButton) {
+ const NULL_CH = '▁'
+ // const NULL_CH = '〇'
+ // const NULL_CH = '🈳'
+
+ $("#" + _id + " [type=\"nullBtton\"]").bind("click", function () {
+ _editorName.cm.replaceSelection(NULL_CH);
+ // var __Cursor = _editorName.cm.getDoc().getCursor();
+ // _editorName.cm.setCursor(__Cursor.line - 1, 0);
+ });
+ }
+
+ if (noStorage == true) {
+
+ } else {
+ md_elocalStorage(_editorName, `MDEditor__${_id}`, _id);
+ }
+
+ callback && callback(_editorName)
+ }
+ });
+ return editorName;
+}
+
+
+export default class TPMMDEditor extends Component {
+ constructor(props) {
+ super(props)
+ this.state = {
+ initValue: ''
+ }
+ }
+ componentDidUpdate(prevProps, prevState) {
+ // 不能加,影响了试卷填空题
+ // if (this.props.initValue != prevProps.initValue) {
+ // this.answers_editormd.setValue(this.props.initValue)
+ // }
+ }
+
+ // react_mdEditor_
+ componentDidMount = () => {
+ const { mdID, initValue, placeholder, showNullButton} = this.props;
+
+ let _id = `mdEditor_${mdID}`
+ this.contentChanged = false;
+ const _placeholder = placeholder || "";
+ // amp;
+ // 编辑时要传memoId
+ const imageUrl = `/api/attachments.json`;
+ // 创建editorMd
+ let react_id = `react_${_id}`;
+ window[react_id] = this
+ const answers_editormd = create_editorMD(_id, '100%', this.props.height, _placeholder, imageUrl, (__editorName) => {
+ react_id = `react_${__editorName.id}`;
+ const that = window[react_id]
+
+ setTimeout(() => {
+ console.log('timeout', __editorName.id)
+ __editorName.resize()
+ __editorName.cm && __editorName.cm.refresh()
+ }, that.props.refreshTimeout || 500)
+ if (that.props.initValue != undefined && that.props.initValue != '') {
+ __editorName.setValue(that.props.initValue)
+ }
+ if (that.state.initValue) {
+ __editorName.setValue(that.state.initValue)
+ }
+ __editorName.cm.on("change", (_cm, changeObj) => {
+ that.contentChanged = true;
+ if (that.state.showError) {
+ that.setState({showError: false})
+ }
+ that.onEditorChange()
+ })
+ that.props.onCMBlur && __editorName.cm.on('blur', () => {
+ that.props.onCMBlur()
+ })
+ that.props.onCMBeforeChange && __editorName.cm.on('beforeChange', (cm,change) => {
+ that.props.onCMBeforeChange(cm,change)
+ })
+ that.answers_editormd = __editorName;
+ window[_id] = __editorName;
+ }, initValue, this.onEditorChange,this.props.watch, {
+ noStorage: this.props.noStorage,
+ showNullButton: this.props.showNullButton
+ }, this);
+
+ }
+ showError = () => {
+ this.setState({showError: true})
+ }
+ onEditorChange = () => {
+ if (!this.answers_editormd) return;
+ const val = this.answers_editormd.getValue();
+ try {
+ this.props.onChange && this.props.onChange(val)
+ } catch(e) {
+ // http://localhost:3007/courses/1309/common_homeworks/6566/setting
+ // 从这个页面,跳转到编辑页面,再在编辑页面点击返回的时候,这里会报错
+ console.error('出错')
+ console.error(e)
+ }
+ }
+ resize = () => {
+ if (!this.answers_editormd) { // 还未初始化
+ return;
+ }
+ this.answers_editormd.resize()
+ this.answers_editormd.cm && this.answers_editormd.cm.refresh()
+ this.answers_editormd.cm.focus()
+ }
+
+ getValue = () => {
+ try {
+ return this.answers_editormd.getValue()
+ } catch (e) {
+ return ''
+ }
+ }
+ setValue = (val) => {
+ try {
+ this.answers_editormd.setValue(val)
+ } catch (e) {
+ // TODO 这里多实例的时候,前一个实例的state会被后面这个覆盖 参考NewWork.js http://localhost:3007/courses/1309/homework/9300/edit/1
+ // 未初始化
+ this.setState({ initValue: val })
+ }
+ }
+
+ render() {
+
+ let {
+ showError
+ } = this.state;
+ let { mdID, className, noStorage } = this.props;
+ let _style = {}
+ if (showError) {
+ _style.border = '1px solid red'
+ }
+ return (
+
+
+ {/* padding10-20 */}
+
+
+
+ {noStorage == true ? ' ' :
}
+ {/* {noStorage == true ? ' ' :
} */}
+
+
+ )
+ }
+}
+
+
diff --git a/public/react/src/modules/tpm/challengesnew/TPMquestion.js b/public/react/src/modules/tpm/challengesnew/TPMquestion.js
index 60840b81f..86451e3ec 100644
--- a/public/react/src/modules/tpm/challengesnew/TPMquestion.js
+++ b/public/react/src/modules/tpm/challengesnew/TPMquestion.js
@@ -1,6 +1,6 @@
import React, {Component} from 'react';
-import {Input, Select, Radio, Checkbox, Popconfirm, message, Modal,Tooltip} from 'antd';
+import {Input, Select, Radio, Checkbox, Popconfirm, message, Modal,Tooltip,notification} from 'antd';
import {BrowserRouter as Router, Route, Link, Switch} from "react-router-dom";
@@ -184,7 +184,7 @@ export default class TPMquestion extends Component {
practice_url: newpractice_url,
go_back_url: newgo_back_url,
power:response.data.power,
- questioMD:response.data.task_pass,
+ // questioMD:response.data.task_pass,
answer:response.data.answer
})
@@ -192,7 +192,7 @@ export default class TPMquestion extends Component {
this.setState({
contentMdRefval:response.data.task_pass
})
- this.contentMdRef.current.setValue(response.data.task_pass || '')
+ // this.contentMdRef.current.setValue(response.data.task_pass || '')
if(response.data.chooses.length===0){
this.questionadd()
}
@@ -248,14 +248,14 @@ export default class TPMquestion extends Component {
practice_url: newpractice_url,
go_back_url: newgo_back_url,
power:response.data.power,
- questioMD:response.data.task_pass,
+ // questioMD:response.data.task_pass,
})
this.setState({
contentMdRefval:response.data.task_pass
})
- this.contentMdRef.current.setValue(response.data.task_pass || '')
+ // this.contentMdRef.current.setValue(response.data.task_pass || '')
if(response.data.chooses.length===0){
this.questionadd()
}
@@ -400,12 +400,14 @@ export default class TPMquestion extends Component {
}
questionall=()=>{
- this.setState({
- activetype:"first",
- newquestionaddtype:false,
- editquestionaddtype:false,
- questionaddtype:false
- })
+ // this.setState({
+ // activetype:"first",
+ // newquestionaddtype:false,
+ // editquestionaddtype:false,
+ // questionaddtype:false
+ // })
+
+ window.location.href = '/shixuns/'+this.props.match.params.shixunId+'/challenges/'+this.props.match.params.checkpointId+'/editquestion';
}
questionadd=()=>{
$('html').animate({
@@ -707,14 +709,22 @@ export default class TPMquestion extends Component {
// $('html').animate({
// scrollTop: 10
// }, 200);
- message.success("修改成功");
+ $('html').animate({
+ scrollTop: 10
+ }, 200);
+
+ notification.open({
+ message: '提示',
+ description:
+ '修改成功,请点击右侧加号继续添加',
+ });
this.setState({
questionaddtype:false,
newquestioMDvaluetype:false,
newquestioMDvaluetypes:false,
})
- setTimeout(window.location.href="/shixuns/"+this.props.match.params.shixunId+"/challenges/"+this.props.match.params.checkpointId+"/editquestion"+"/"+response.data.challenge_choose_id,1000)
+ // setTimeout(window.location.href="/shixuns/"+this.props.match.params.shixunId+"/challenges/"+this.props.match.params.checkpointId+"/editquestion"+"/"+response.data.challenge_choose_id,1000)
// this.gochooseid()
}).catch((error) => {
console.log(error)
@@ -761,12 +771,17 @@ export default class TPMquestion extends Component {
newquestioMDvaluetypes:false,
questionaddarray:questionaddarrays
})
- // $('html').animate({
- // scrollTop: 10
- // }, 200);
- message.success("新建成功");
+ $('html').animate({
+ scrollTop: 10
+ }, 200);
+
+ notification.open({
+ message: '提示',
+ description:
+ '新建成功,请点击右侧加号继续添加',
+ });
// this.getanswer_subitlist()
- this.gochooseid("/shixuns/"+this.props.match.params.shixunId+"/challenges/"+this.props.match.params.checkpointId+"/editquestion"+"/"+response.data.challenge_choose_id)
+ // this.gochooseid("/shixuns/"+this.props.match.params.shixunId+"/challenges/"+this.props.match.params.checkpointId+"/editquestion"+"/"+response.data.challenge_choose_id)
}).catch((error) => {
console.log(error)
});
@@ -869,7 +884,8 @@ export default class TPMquestion extends Component {
}
gochooseid=(url)=>{
- window.location.href =url
+ window.location.href =url
+ // window.location.Reload(url)
// this.props.history.replace( url );
// this.props.history.push( url );
// 返回
diff --git a/public/react/src/modules/tpm/challengesnew/TpmQuestionEdit.js b/public/react/src/modules/tpm/challengesnew/TpmQuestionEdit.js
index 7de8529d7..a037e62dc 100644
--- a/public/react/src/modules/tpm/challengesnew/TpmQuestionEdit.js
+++ b/public/react/src/modules/tpm/challengesnew/TpmQuestionEdit.js
@@ -24,7 +24,10 @@ export default class TpmQuestionEdit extends Component {
render() {
- console.log( this.props.questionlists)
+ console.log( this.props.neweditanswerRef)
+ console.log( this.props.neweditanswerRefval)
+ console.log( this.props.editanswersRef)
+ console.log( this.props.editanswersRefval)
return (
@@ -34,7 +37,7 @@ export default class TpmQuestionEdit extends Component {
*
-
diff --git a/public/react/src/modules/tpm/challengesnew/TpmQuestionNew.js b/public/react/src/modules/tpm/challengesnew/TpmQuestionNew.js
index 76a540e0c..58632b96b 100644
--- a/public/react/src/modules/tpm/challengesnew/TpmQuestionNew.js
+++ b/public/react/src/modules/tpm/challengesnew/TpmQuestionNew.js
@@ -24,7 +24,7 @@ export default class TpmQuestionNew extends Component {
render() {
- console.log( this.props.questionlists)
+ // console.log( this.props.questionlists)
return (
diff --git a/public/react/src/modules/tpm/shixunchild/Collaborators/Collaborators.css b/public/react/src/modules/tpm/shixunchild/Collaborators/Collaborators.css
index 102db226b..31917086f 100644
--- a/public/react/src/modules/tpm/shixunchild/Collaborators/Collaborators.css
+++ b/public/react/src/modules/tpm/shixunchild/Collaborators/Collaborators.css
@@ -1,4 +1,9 @@
-.height40 {
- height: 30px;
- line-height: 30px;
+.height40 {
+ height: 30px;
+ line-height: 30px;
+}
+
+.line27{
+ line-height: 27px;
+ vertical-align: 1px;
}
\ No newline at end of file
diff --git a/public/react/src/modules/tpm/shixunchild/Collaborators/Collaborators.js b/public/react/src/modules/tpm/shixunchild/Collaborators/Collaborators.js
index d629a1c5b..7811d12fd 100644
--- a/public/react/src/modules/tpm/shixunchild/Collaborators/Collaborators.js
+++ b/public/react/src/modules/tpm/shixunchild/Collaborators/Collaborators.js
@@ -2,7 +2,7 @@ import React, { Component } from 'react';
import { Redirect } from 'react-router';
-import {Modal, Button, Radio, Input, Checkbox,message} from 'antd';
+import {Modal, Button, Radio, Input, Checkbox,message,Spin, Icon} from 'antd';
import { BrowserRouter as Router, Route, Link, Switch } from "react-router-dom";
@@ -44,7 +44,8 @@ class Collaborators extends Component {
collaboratorListsum:10,
collaboratorListsumtype:true,
user_name:undefined,
- school_name:undefined
+ school_name:undefined,
+ spinnings:false
}
}
componentDidMount() {
@@ -155,9 +156,11 @@ class Collaborators extends Component {
})
}
onSearchadmin = (value) => {
+
let {collaboratorList,user_name,school_name} = this.state;
this.setState({
Searchadmin: [],
+ spinnings:true,
})
// if (value === "") {
// this.setState({
@@ -174,7 +177,9 @@ class Collaborators extends Component {
school_name:school_name,
}}).then((response) => {
if (response.data.status === 403||response.data.status === 401||response.data.status === 500) {
-
+ this.setState({
+ spinnings:false
+ })
}else{
let newlist = response.data.users;
for (var i = 0; i < newlist.length; i++) {
@@ -182,7 +187,8 @@ class Collaborators extends Component {
}
this.setState({
Searchadmin: newlist,
- collaboratorList: collaboratorList
+ collaboratorList: collaboratorList,
+ spinnings:false
})
}
@@ -404,7 +410,10 @@ class Collaborators extends Component {
lineHeight: '30px',
};
// console.log(collaboratorList)
- return (
+
+ const antIcon =
;
+
+ return (
this.showCollaboratorsvisible("cooperation")}
className="edu-default-btn edu-greenback-btn fr mr20 height40"
data-remote="true">
- + 添加合作者
+ + 添加合作者
this.showCollaboratorsvisible("admin")}
style={{display:this.props.identity===1?"block":"none"}}
@@ -467,6 +476,7 @@ class Collaborators extends Component {
visible={Collaboratorsvisibleadmin}
closable={false}
footer={null}
+ width={800}
>
{/**/}
- 姓名:
+ 姓名或手机号:
- {this.setState({user_name: e.target.value})}}
- style={{ width: '130px'}}
+ {this.setState({user_name: e.target.value})}}
+ style={{ width: '215px'}}
>
单位:
- {this.setState({school_name: e.target.value})}}
- style={{ width: '135px'}}>
+ {this.setState({school_name: e.target.value})}}
+ style={{ width: '215px'}}
+ >
- this.onSearchadmin()}
- style={{ height: '30px', lineHeight: '30px', marginLeft: '10px', width: '70px'}}
+ this.onSearchadmin()}
+ style={{ height: '30px', lineHeight: '30px', width: '70px'}}
>搜索
- 姓名
- 职业
- 单位
+ 姓名
+ 职业
+ 单位
-
-
-
- {Searchadmin.length === 0 ? -
- 请试试搜索一下
-
: Searchadmin.map((item, key) => {
- return (
- -
- this.selectChangenickname(e, key)}
- id={item.user_id}>
- {item.nickname}
- {item.identify}
- {item.school_name}
-
- )
- })
-
- }
-
-
+
+
+
+ {Searchadmin.length === 0 ? -
+ 请试试搜索一下
+
: Searchadmin.map((item, key) => {
+ return (
+ -
+ this.selectChangenickname(e, key)}
+ id={item.user_id}>
+ {item.nickname}
+ {item.identify}
+ {item.school_name}
+
+ )
+ })
+
+ }
+
+
+
-