diff --git a/public/react/src/components/test-panel.jsx b/public/react/src/components/test-panel.jsx index 716be5e2f..4a542a71d 100644 --- a/public/react/src/components/test-panel.jsx +++ b/public/react/src/components/test-panel.jsx @@ -1,125 +1,9 @@ import React, { Fragment } from 'react'; -import { getUploadActionUrl, getUrl, setmiyah } from 'educoder'; import TPMMDEditor from '../modules/tpm/challengesnew/TPMMDEditor'; -import moment from 'moment' - -moment.defineLocale('zh-cn', { - months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'), - monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'), - weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), - weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'), - weekdaysMin: '日_一_二_三_四_五_六'.split('_'), - longDateFormat: { - LT: 'Ah点mm分', - LTS: 'Ah点m分s秒', - L: 'YYYY-MM-DD', - LL: 'YYYY年MMMD日', - LLL: 'YYYY年MMMD日Ah点mm分', - LLLL: 'YYYY年MMMD日ddddAh点mm分', - l: 'YYYY-MM-DD', - ll: 'YYYY年MMMD日', - lll: 'YYYY年MMMD日Ah点mm分', - llll: 'YYYY年MMMD日ddddAh点mm分' - }, - meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === '凌晨' || meridiem === '早上' || - meridiem === '上午') { - return hour; - } else if (meridiem === '下午' || meridiem === '晚上') { - return hour + 12; - } else { - // '中午' - return hour >= 11 ? hour : hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - var hm = hour * 100 + minute; - if (hm < 600) { - return '凌晨'; - } else if (hm < 900) { - return '早上'; - } else if (hm < 1130) { - return '上午'; - } else if (hm < 1230) { - return '中午'; - } else if (hm < 1800) { - return '下午'; - } else { - return '晚上'; - } - }, - calendar: { - sameDay: function () { - return this.minutes() === 0 ? '[今天]Ah[点整]' : '[今天]LT'; - }, - nextDay: function () { - return this.minutes() === 0 ? '[明天]Ah[点整]' : '[明天]LT'; - }, - lastDay: function () { - return this.minutes() === 0 ? '[昨天]Ah[点整]' : '[昨天]LT'; - }, - nextWeek: function () { - var startOfWeek, prefix; - startOfWeek = moment().startOf('week'); - prefix = this.unix() - startOfWeek.unix() >= 7 * 24 * 3600 ? '[下]' : '[本]'; - return this.minutes() === 0 ? prefix + 'dddAh点整' : prefix + 'dddAh点mm'; - }, - lastWeek: function () { - var startOfWeek, prefix; - startOfWeek = moment().startOf('week'); - prefix = this.unix() < startOfWeek.unix() ? '[上]' : '[本]'; - return this.minutes() === 0 ? prefix + 'dddAh点整' : prefix + 'dddAh点mm'; - }, - sameElse: 'LL' - }, - ordinalParse: /\d{1,2}(日|月|周)/, - ordinal: function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'DDD': - return number + '日'; - case 'M': - return number + '月'; - case 'w': - case 'W': - return number + '周'; - default: - return number; - } - }, - relativeTime: { - future: '%s内', - past: '%s前', - s: '几秒', - m: '1分钟', - mm: '%d分钟', - h: '1小时', - hh: '%d小时', - d: '1天', - dd: '%d天', - M: '1个月', - MM: '%d个月', - y: '1年', - yy: '%d年' - }, - week: { - // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效 - dow: 1, // Monday is the first day of the week. - doy: 4 // The week that contains Jan 4th is the first week of the year. - } -}); export default () => { return ( -

{getUrl()}

-

{setmiyah()}

-

{getUploadActionUrl()}

) diff --git a/public/react/src/index.js b/public/react/src/index.js index 18c11c03f..250d64642 100644 --- a/public/react/src/index.js +++ b/public/react/src/index.js @@ -1,7 +1,7 @@ import React from 'react' import ReactDOM from 'react-dom' import './index.css' -import App from './App' +import App from './components/test-panel' import * as serviceWorker from './serviceWorker' window.__useKindEditor = false; diff --git a/public/react/src/modules/tpm/challengesnew/TPMMDEditor.js b/public/react/src/modules/tpm/challengesnew/TPMMDEditor.js index 69a7d832f..e7014bee0 100644 --- a/public/react/src/modules/tpm/challengesnew/TPMMDEditor.js +++ b/public/react/src/modules/tpm/challengesnew/TPMMDEditor.js @@ -23,13 +23,10 @@ function md_clear_data(k, mdu, id) { } } 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); } } @@ -39,7 +36,6 @@ function md_elocalStorage(editor, mdu, id) { if (window.sessionStorage) { var oc = window.sessionStorage.getItem('content' + mdu); if (oc !== null && oc != editor.getValue()) { - console.log("#e_tips_" + id) $("#e_tips_" + id).data('editor', editor); var h = '您上次有已保存的数据,是否恢复 ? / 不恢复'; $("#e_tips_" + id).html(h); @@ -59,14 +55,12 @@ function md_elocalStorage(editor, mdu, 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); @@ -99,21 +93,35 @@ function create_editorMD(id, width, high, placeholder, imageUrl, callback, initV 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", "link", "|", "testIcon", "testIcon1", '|', "image", "table", '|', "watch", "clear"]; + const icons = ["bold", "italic", "|", "list-ul", "list-ol", "|", "code", "code-block", "link", "|", "testIcon", "testIcon1", '|', "image", "table", '|', "line-break", "watch", "clear"]; // 试卷处用到的填空题新增按钮 if (__that.props.showNullButton) { icons.push('nullBtton') } return icons }, + toolbarIconsClass: { + "line-break": "fa-minus" + }, + toolbarHandlers: { + /** + * @param {Object} cm CodeMirror对象 + * @param {Object} icon 图标按钮jQuery元素对象 + * @param {Object} cursor CodeMirror的光标对象,可获取光标所在行和位置 + * @param {String} selection 编辑器选中的文本 + */ + "line-break": function (cm, icon, cursor, selection) { + // 如果当前没有选中的文本,将光标移到要输入的位置 + if (selection === "") { + cm.setCursor(cursor.line, cursor.ch + 1) + } + cm.replaceSelection("
"); + } + }, toolbarCustomIcons: { testIcon: "
", testIcon1: "
", @@ -133,9 +141,6 @@ function create_editorMD(id, width, high, placeholder, imageUrl, callback, initV 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"); @@ -156,19 +161,12 @@ function create_editorMD(id, width, high, placeholder, imageUrl, callback, initV 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 { + if (!noStorage == true) { md_elocalStorage(_editorName, `MDEditor__${_id}`, _id); } @@ -186,16 +184,9 @@ export default class TPMMDEditor extends Component { 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; + const { mdID, initValue, placeholder } = this.props; let _id = `mdEditor_${mdID}` this.contentChanged = false; @@ -207,7 +198,7 @@ export default class TPMMDEditor extends Component { let react_id = `react_${_id}`; // 将实例存到了window window[react_id] = this - const answers_editormd = create_editorMD(_id, '100%', this.props.height, _placeholder, imageUrl, (_editorName) => { + create_editorMD(_id, '100%', this.props.height, _placeholder, imageUrl, (_editorName) => { const __editorName = _editorName; react_id = `react_${__editorName.id}`; const that = window[react_id] @@ -222,6 +213,7 @@ export default class TPMMDEditor extends Component { console.log('timeout', __editorName.id) __editorName.cm && __editorName.cm.refresh() }, that.props.refreshTimeout || 500) + if (this.props.noSetValueOnInit) { that.onEditorChange() } else { @@ -321,7 +313,6 @@ export default class TPMMDEditor extends Component {
{noStorage == true ? ' ' :
 
} - {/* {noStorage == true ? ' ' :

 

} */}
)