|
|
@ -75,10 +75,12 @@ class SingleEditor extends Component{
|
|
|
|
this.state = {
|
|
|
|
this.state = {
|
|
|
|
question_choices: _question_choices || ['', '', '', ''],
|
|
|
|
question_choices: _question_choices || ['', '', '', ''],
|
|
|
|
standard_answers: _standard_answers || [false, false, false, false],
|
|
|
|
standard_answers: _standard_answers || [false, false, false, false],
|
|
|
|
question_title: this.props.question_title || '',
|
|
|
|
question_title: this.props.question_title!==undefined?JSON.parse(this.props.question_title):"",
|
|
|
|
question_type: this.props.question_type || 0,
|
|
|
|
question_type: this.props.question_type || 0,
|
|
|
|
question_score: this.props.question_score || this.props.init_question_score,
|
|
|
|
question_score: this.props.question_score || this.props.init_question_score,
|
|
|
|
question_titles:this.props.question_titles||'',
|
|
|
|
question_titles: this.props.question_titles!==undefined?JSON.parse(this.props.question_titles):"",
|
|
|
|
|
|
|
|
question_titlesysl:this.props.question_titlesysl||'',
|
|
|
|
|
|
|
|
question_titleysl:this.props.question_title || '',
|
|
|
|
item_banksedit:[],
|
|
|
|
item_banksedit:[],
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -121,12 +123,21 @@ class SingleEditor extends Component{
|
|
|
|
}
|
|
|
|
}
|
|
|
|
onSave = () => {
|
|
|
|
onSave = () => {
|
|
|
|
var editordata=[];
|
|
|
|
var editordata=[];
|
|
|
|
const {question_title, question_score, question_type,question_titles, question_choices, standard_answers } = this.state;
|
|
|
|
const {question_title, question_titleysl,question_score, question_type,question_titles,question_titlesysl, question_choices, standard_answers } = this.state;
|
|
|
|
const { question_id_to_insert_after, question_id } = this.props
|
|
|
|
const { question_id_to_insert_after, question_id } = this.props
|
|
|
|
// TODO check
|
|
|
|
// TODO check
|
|
|
|
const answerArray = standard_answers.map((item, index) => { return item == true ? index+1 : -1 }).filter(item => item != -1);
|
|
|
|
const answerArray = standard_answers.map((item, index) => { return item == true ? index+1 : -1 }).filter(item => item != -1);
|
|
|
|
if(!question_title) {
|
|
|
|
|
|
|
|
this.refs['titleEditor'].showError()
|
|
|
|
// const _text = quill.getText();
|
|
|
|
|
|
|
|
// const reg = /^[\s\S]*.*[^\s][\s\S]*$/;
|
|
|
|
|
|
|
|
// if (!reg.test(_text)) {
|
|
|
|
|
|
|
|
// // 处理编辑器内容为空
|
|
|
|
|
|
|
|
// } else {
|
|
|
|
|
|
|
|
// // 提交到后台的内容需要处理一下;
|
|
|
|
|
|
|
|
// value = JSON.stringify(value)
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
if(!question_titleysl) {
|
|
|
|
|
|
|
|
// this.refs['titleEditor'].showError()
|
|
|
|
this.props.showNotification('请您输入题干');
|
|
|
|
this.props.showNotification('请您输入题干');
|
|
|
|
return editordata;
|
|
|
|
return editordata;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -139,14 +150,13 @@ class SingleEditor extends Component{
|
|
|
|
|
|
|
|
|
|
|
|
for(let i = 0; i < question_choices.length; i++) {
|
|
|
|
for(let i = 0; i < question_choices.length; i++) {
|
|
|
|
if (!question_choices[i]) {
|
|
|
|
if (!question_choices[i]) {
|
|
|
|
this.refs[`optionEditor${i}`].showError()
|
|
|
|
// this.refs[`optionEditor${i}`].showError()
|
|
|
|
this.props.showNotification(`请先输入 ${tagArray[i]} 选项的内容`);
|
|
|
|
this.props.showNotification(`请先输入 ${tagArray[i]} 选项的内容`);
|
|
|
|
return editordata;
|
|
|
|
return editordata;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if(!question_titles) {
|
|
|
|
if(!question_titlesysl) {
|
|
|
|
this.refs['titleEditor2'].showError()
|
|
|
|
|
|
|
|
this.props.showNotification('请您输入题目解析');
|
|
|
|
this.props.showNotification('请您输入题目解析');
|
|
|
|
return editordata;
|
|
|
|
return editordata;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -158,7 +168,7 @@ class SingleEditor extends Component{
|
|
|
|
"question_choices":["a答案","b答案","c答案","d答案"],
|
|
|
|
"question_choices":["a答案","b答案","c答案","d答案"],
|
|
|
|
"standard_answers":[1]
|
|
|
|
"standard_answers":[1]
|
|
|
|
}*/
|
|
|
|
}*/
|
|
|
|
editordata=[question_title,answerArray,question_choices,question_titles];
|
|
|
|
editordata=[question_titleysl,answerArray,question_choices,question_titlesysl];
|
|
|
|
// question_title,
|
|
|
|
// question_title,
|
|
|
|
// question_type: answerArray.length > 1 ? 1 : 0,
|
|
|
|
// question_type: answerArray.length > 1 ? 1 : 0,
|
|
|
|
// question_score,
|
|
|
|
// question_score,
|
|
|
@ -184,8 +194,10 @@ class SingleEditor extends Component{
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
this.setState({
|
|
|
|
this.setState({
|
|
|
|
item_banksedit:this.props.item_banksedit,
|
|
|
|
item_banksedit:this.props.item_banksedit,
|
|
|
|
question_title:this.props.item_banksedit.name,
|
|
|
|
question_title: this.props.item_banksedit.name!==undefined?JSON.parse(this.props.item_banksedit.name):"",
|
|
|
|
question_titles:this.props.item_banksedit.analysis,
|
|
|
|
question_titleysl:this.props.item_banksedit.name|| '',
|
|
|
|
|
|
|
|
question_titles: this.props.item_banksedit.analysis!==undefined?JSON.parse(this.props.item_banksedit.analysis):"",
|
|
|
|
|
|
|
|
question_titlesysl:this.props.item_banksedit.analysis||'',
|
|
|
|
mychoicess:this.props.item_banksedit.choices,
|
|
|
|
mychoicess:this.props.item_banksedit.choices,
|
|
|
|
|
|
|
|
|
|
|
|
})
|
|
|
|
})
|
|
|
@ -204,8 +216,10 @@ class SingleEditor extends Component{
|
|
|
|
if(prevProps.item_banksedit !== this.props.item_banksedit) {
|
|
|
|
if(prevProps.item_banksedit !== this.props.item_banksedit) {
|
|
|
|
this.setState({
|
|
|
|
this.setState({
|
|
|
|
item_banksedit: this.props.item_banksedit,
|
|
|
|
item_banksedit: this.props.item_banksedit,
|
|
|
|
question_title: this.props.item_banksedit.name,
|
|
|
|
question_title: this.props.item_banksedit.name!==undefined?JSON.parse(this.props.item_banksedit.name):"",
|
|
|
|
question_titles: this.props.item_banksedit.analysis,
|
|
|
|
question_titleysl:this.props.item_banksedit.name|| '',
|
|
|
|
|
|
|
|
question_titles: this.props.item_banksedit.analysis!==undefined?JSON.parse(this.props.item_banksedit.analysis):"",
|
|
|
|
|
|
|
|
question_titlesysl:this.props.item_banksedit.analysis||'',
|
|
|
|
mychoicess: this.props.item_banksedit.choices,
|
|
|
|
mychoicess: this.props.item_banksedit.choices,
|
|
|
|
|
|
|
|
|
|
|
|
})
|
|
|
|
})
|
|
|
@ -229,14 +243,31 @@ class SingleEditor extends Component{
|
|
|
|
// standard_answers[index] = !standard_answers[index];
|
|
|
|
// standard_answers[index] = !standard_answers[index];
|
|
|
|
this.setState({ standard_answers })
|
|
|
|
this.setState({ standard_answers })
|
|
|
|
}
|
|
|
|
}
|
|
|
|
onOptionContentChange = (value, index) => {
|
|
|
|
onOptionContentChange = (value,quill,index) => {
|
|
|
|
if (index >= this.state.question_choices.length) {
|
|
|
|
if (index >= this.state.question_choices.length) {
|
|
|
|
// TODO 新建,然后删除CD选项,再输入题干,会调用到这里,且index是3
|
|
|
|
// TODO 新建,然后删除CD选项,再输入题干,会调用到这里,且index是3
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
var texts;
|
|
|
|
|
|
|
|
const _text = quill.getText();
|
|
|
|
|
|
|
|
const reg = /^[\s\S]*.*[^\s][\s\S]*$/;
|
|
|
|
|
|
|
|
if (!reg.test(_text)) {
|
|
|
|
|
|
|
|
// 处理编辑器内容为空
|
|
|
|
|
|
|
|
texts="";
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
if(_text.length>=301){
|
|
|
|
|
|
|
|
var result = _text.substring(0,300);
|
|
|
|
|
|
|
|
texts={"ops":[{"insert":result}]};
|
|
|
|
|
|
|
|
texts=JSON.stringify(texts);
|
|
|
|
|
|
|
|
}else {
|
|
|
|
|
|
|
|
// 提交到后台的内容需要处理一下;
|
|
|
|
|
|
|
|
value = JSON.stringify(value)
|
|
|
|
|
|
|
|
texts=value;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
let question_choices = this.state.question_choices.slice(0);
|
|
|
|
let question_choices = this.state.question_choices.slice(0);
|
|
|
|
question_choices[index] = value;
|
|
|
|
question_choices[index] = texts;
|
|
|
|
this.setState({ question_choices })
|
|
|
|
this.setState({ question_choices });
|
|
|
|
}
|
|
|
|
}
|
|
|
|
on_question_score_change = (e) => {
|
|
|
|
on_question_score_change = (e) => {
|
|
|
|
this.setState({ question_score: e })
|
|
|
|
this.setState({ question_score: e })
|
|
|
@ -254,11 +285,61 @@ class SingleEditor extends Component{
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
onContentChange=(e)=>{
|
|
|
|
onContentChange=(value,quill)=>{
|
|
|
|
console.log(e);
|
|
|
|
const _text = quill.getText();
|
|
|
|
|
|
|
|
const reg = /^[\s\S]*.*[^\s][\s\S]*$/;
|
|
|
|
|
|
|
|
if (!reg.test(_text)) {
|
|
|
|
|
|
|
|
// 处理编辑器内容为空
|
|
|
|
|
|
|
|
this.setState({
|
|
|
|
|
|
|
|
question_titleysl:""
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
// 提交到后台的内容需要处理一下;
|
|
|
|
|
|
|
|
var texts="";
|
|
|
|
|
|
|
|
if(_text.length>=1001){
|
|
|
|
|
|
|
|
var result = _text.substring(0,1000);
|
|
|
|
|
|
|
|
texts={"ops":[{"insert":result}]};
|
|
|
|
|
|
|
|
texts=JSON.stringify(texts);
|
|
|
|
|
|
|
|
}else {
|
|
|
|
|
|
|
|
value = JSON.stringify(value)
|
|
|
|
|
|
|
|
texts=value;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
this.setState({
|
|
|
|
|
|
|
|
question_titleysl:texts
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
onContentChanges=(value,quill)=>{
|
|
|
|
|
|
|
|
const _text = quill.getText();
|
|
|
|
|
|
|
|
const reg = /^[\s\S]*.*[^\s][\s\S]*$/;
|
|
|
|
|
|
|
|
if (!reg.test(_text)) {
|
|
|
|
|
|
|
|
// 处理编辑器内容为空
|
|
|
|
|
|
|
|
this.setState({
|
|
|
|
|
|
|
|
question_titlesysl:""
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
var texts="";
|
|
|
|
|
|
|
|
if(_text.length>=1001){
|
|
|
|
|
|
|
|
var result = _text.substring(0,1000);
|
|
|
|
|
|
|
|
texts={"ops":[{"insert":result}]};
|
|
|
|
|
|
|
|
texts=JSON.stringify(texts);
|
|
|
|
|
|
|
|
}else {
|
|
|
|
|
|
|
|
value = JSON.stringify(value)
|
|
|
|
|
|
|
|
texts=value;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
this.setState({
|
|
|
|
|
|
|
|
question_titleysl:texts
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
handleShowImage = (url) => {
|
|
|
|
|
|
|
|
console.log("点击了图片放大");
|
|
|
|
|
|
|
|
console.log(url);
|
|
|
|
|
|
|
|
alert(url);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
render() {
|
|
|
|
render() {
|
|
|
|
let { question_title, question_score, question_type, question_choices, standard_answers,question_titles} = this.state;
|
|
|
|
let { question_title, question_score, question_type, question_choices, standard_answers,question_titles,question_titlesysl} = this.state;
|
|
|
|
let { question_id, index, exerciseIsPublish,
|
|
|
|
let { question_id, index, exerciseIsPublish,
|
|
|
|
// question_title,
|
|
|
|
// question_title,
|
|
|
|
// question_type,
|
|
|
|
// question_type,
|
|
|
@ -279,7 +360,6 @@ class SingleEditor extends Component{
|
|
|
|
// ////console.log("xuanzheshijuan");
|
|
|
|
// ////console.log("xuanzheshijuan");
|
|
|
|
// ////console.log(answerTagArray);
|
|
|
|
// ////console.log(answerTagArray);
|
|
|
|
// ////console.log(!exerciseIsPublish);
|
|
|
|
// ////console.log(!exerciseIsPublish);
|
|
|
|
|
|
|
|
|
|
|
|
return(
|
|
|
|
return(
|
|
|
|
<div className="padding20-30 signleEditor danxuano" id={qNumber}>
|
|
|
|
<div className="padding20-30 signleEditor danxuano" id={qNumber}>
|
|
|
|
<style>{`
|
|
|
|
<style>{`
|
|
|
@ -287,7 +367,7 @@ class SingleEditor extends Component{
|
|
|
|
flex:1
|
|
|
|
flex:1
|
|
|
|
}
|
|
|
|
}
|
|
|
|
.optionRow {
|
|
|
|
.optionRow {
|
|
|
|
margin:0px!important;
|
|
|
|
/* margin:0px!important; */
|
|
|
|
/* margin-bottom: 20px!important; */
|
|
|
|
/* margin-bottom: 20px!important; */
|
|
|
|
}
|
|
|
|
}
|
|
|
|
.signleEditor .content_editorMd_show{
|
|
|
|
.signleEditor .content_editorMd_show{
|
|
|
@ -307,21 +387,16 @@ class SingleEditor extends Component{
|
|
|
|
<span className="xingtigan fl">题干:</span>
|
|
|
|
<span className="xingtigan fl">题干:</span>
|
|
|
|
</p>
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
|
|
<TPMMDEditor mdID={qNumber} placeholder="请您输入题干" height={155} className=" mt10"
|
|
|
|
<QuillForEditor
|
|
|
|
initValue={question_title} onChange={(val) => this.setState({ question_title: val})}
|
|
|
|
style={{ height: '155px'}}
|
|
|
|
ref="titleEditor"
|
|
|
|
placeholder="请您输入题干"
|
|
|
|
|
|
|
|
options={['code-block', 'image', 'formula']}
|
|
|
|
></TPMMDEditor>
|
|
|
|
value={question_title}
|
|
|
|
|
|
|
|
onContentChange={this.onContentChange}
|
|
|
|
|
|
|
|
|
|
|
|
{/*<QuillForEditor*/}
|
|
|
|
/>
|
|
|
|
{/* style={{ height: '155px'}}*/}
|
|
|
|
|
|
|
|
{/* placeholder="请您输入题干"*/}
|
|
|
|
|
|
|
|
{/* value={question_title}*/}
|
|
|
|
|
|
|
|
{/* options={['code-block', 'image', 'formula']}*/}
|
|
|
|
|
|
|
|
{/* onContentChange={this.onContentChange}*/}
|
|
|
|
|
|
|
|
{/*/>*/}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div className="mb10 sortinxdirection">
|
|
|
|
<div className="mb10 mt10 sortinxdirection">
|
|
|
|
{/* {!question_id ? '新建' : '编辑'} */}
|
|
|
|
{/* {!question_id ? '新建' : '编辑'} */}
|
|
|
|
<span className="xingcolor font-16 fl mr4">*</span>
|
|
|
|
<span className="xingcolor font-16 fl mr4">*</span>
|
|
|
|
<span className="xingtigans fl"><span className="xingtigan">答案选项:</span>点击答案可设置正确答案</span>
|
|
|
|
<span className="xingtigans fl"><span className="xingtigan">答案选项:</span>点击答案可设置正确答案</span>
|
|
|
@ -329,11 +404,11 @@ class SingleEditor extends Component{
|
|
|
|
|
|
|
|
|
|
|
|
{question_choices.map( (item, index) => {
|
|
|
|
{question_choices.map( (item, index) => {
|
|
|
|
const bg = standard_answers[index] ? 'check-option-bg' : ''
|
|
|
|
const bg = standard_answers[index] ? 'check-option-bg' : ''
|
|
|
|
return <div className="df optionRow " >
|
|
|
|
return <div className={index>0?"df optionRow mt15": "df optionRow"} key={index} >
|
|
|
|
{/* 点击设置答案 */}
|
|
|
|
{/* 点击设置答案 */}
|
|
|
|
{/* TODO 加了tooltip后,会丢失掉span的class */}
|
|
|
|
{/* TODO 加了tooltip后,会丢失掉span的class */}
|
|
|
|
{/* <Tooltip title={standard_answers[index] ? '点击取消标准答案设置' : '点击设置为标准答案'}> */}
|
|
|
|
{/* <Tooltip title={standard_answers[index] ? '点击取消标准答案设置' : '点击设置为标准答案'}> */}
|
|
|
|
<span class={`option-item fr mr10 color-grey select-choice ${bg} `}
|
|
|
|
<span className={`option-item fr mr10 color-grey select-choice ${bg} `}
|
|
|
|
name="option_span" onClick={() => this.onOptionClick(index)} style={{flex: '0 0 38px'}}>
|
|
|
|
name="option_span" onClick={() => this.onOptionClick(index)} style={{flex: '0 0 38px'}}>
|
|
|
|
<ConditionToolTip title={standard_answers[index] ? '' : '点击设置为标准答案'} placement="left" condition={true}>
|
|
|
|
<ConditionToolTip title={standard_answers[index] ? '' : '点击设置为标准答案'} placement="left" condition={true}>
|
|
|
|
<div style={{width: '100%', height: '100%'}}>{tagArray[index]}</div>
|
|
|
|
<div style={{width: '100%', height: '100%'}}>{tagArray[index]}</div>
|
|
|
@ -341,13 +416,30 @@ class SingleEditor extends Component{
|
|
|
|
</span>
|
|
|
|
</span>
|
|
|
|
{/* </Tooltip> */}
|
|
|
|
{/* </Tooltip> */}
|
|
|
|
<div style={{ flex: '0 0 1038px'}}>
|
|
|
|
<div style={{ flex: '0 0 1038px'}}>
|
|
|
|
<DMDEditor
|
|
|
|
{
|
|
|
|
ref={`optionEditor${index}`}
|
|
|
|
item===undefined||item===null||item===""?
|
|
|
|
toMDMode={this.toMDMode} toShowMode={this.toShowMode}
|
|
|
|
<QuillForEditor
|
|
|
|
height={166} className={'optionMdEditor'} noStorage={true}
|
|
|
|
style={{ height: '166px'}}
|
|
|
|
mdID={qNumber + index} placeholder="" onChange={(value) => this.onOptionContentChange(value, index)}
|
|
|
|
placeholder="请您输入题干"
|
|
|
|
initValue={item}
|
|
|
|
options={['code-block', 'image', 'formula']}
|
|
|
|
></DMDEditor>
|
|
|
|
value={item}
|
|
|
|
|
|
|
|
onContentChange={(value,quill) => this.onOptionContentChange(value,quill,index)}
|
|
|
|
|
|
|
|
/>
|
|
|
|
|
|
|
|
:
|
|
|
|
|
|
|
|
<QuillForEditor
|
|
|
|
|
|
|
|
style={{ height: '166px'}}
|
|
|
|
|
|
|
|
placeholder="请您输入题干"
|
|
|
|
|
|
|
|
options={['code-block', 'image', 'formula']}
|
|
|
|
|
|
|
|
value={JSON.parse(item)}
|
|
|
|
|
|
|
|
onContentChange={(value,quill) => this.onOptionContentChange(value,quill,index)}
|
|
|
|
|
|
|
|
/>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
{exerciseIsPublish || index<=1?
|
|
|
|
{exerciseIsPublish || index<=1?
|
|
|
|
<i className=" font-18 ml15 mr20"></i>
|
|
|
|
<i className=" font-18 ml15 mr20"></i>
|
|
|
@ -366,36 +458,20 @@ class SingleEditor extends Component{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div>
|
|
|
|
<div className="mt10">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<p className="mb10 clearfix">
|
|
|
|
<p className="mb10 clearfix">
|
|
|
|
{/* {!question_id ? '新建' : '编辑'} */}
|
|
|
|
{/* {!question_id ? '新建' : '编辑'} */}
|
|
|
|
<span className="xingcolor font-16 fl mr4">*</span>
|
|
|
|
<span className="xingcolor font-16 fl mr4">*</span>
|
|
|
|
<span className="xingtigan fl">题目解析:</span>
|
|
|
|
<span className="xingtigan fl">题目解析:</span>
|
|
|
|
</p>
|
|
|
|
</p>
|
|
|
|
<style>{`
|
|
|
|
<div className="mt10"></div>
|
|
|
|
.optionMdEditor {
|
|
|
|
<QuillForEditor
|
|
|
|
flex:1
|
|
|
|
style={{height: '166px' }}
|
|
|
|
}
|
|
|
|
placeholder="请您输入题目解析"
|
|
|
|
.optionRow {
|
|
|
|
options={['code-block', 'image', 'formula']}
|
|
|
|
margin:0px!important;
|
|
|
|
value={question_titles}
|
|
|
|
/* margin-bottom: 20px!important; */
|
|
|
|
onContentChange={this.onContentChanges}
|
|
|
|
}
|
|
|
|
/>
|
|
|
|
.signleEditor .content_editorMd_show{
|
|
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
|
|
margin-top:0px!important;
|
|
|
|
|
|
|
|
border-radius:2px;
|
|
|
|
|
|
|
|
max-width: 1056px;
|
|
|
|
|
|
|
|
word-break:break-all;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
`}</style>
|
|
|
|
|
|
|
|
<TPMMDEditor mdID={qNumber+question_choices.length} placeholder="请您输入题目解析" height={155} className=" mt10"
|
|
|
|
|
|
|
|
initValue={question_titles} onChange={(val) => this.setState({ question_titles: val})}
|
|
|
|
|
|
|
|
ref="titleEditor2"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
></TPMMDEditor>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|