Merge remote-tracking branch 'origin/topic_bank' into topic_bank

dev_aliyun_beta
杨树明 5 years ago
commit 6b938d222d

@ -5,9 +5,7 @@ import {
} from 'antd'; } from 'antd';
import TPMMDEditor from '../../../tpm/challengesnew/TPMMDEditor'; import TPMMDEditor from '../../../tpm/challengesnew/TPMMDEditor';
import axios from 'axios' import axios from 'axios'
import {getUrl} from 'educoder'; import { City , getUploadActionUrl , appendFileSizeToUploadFileAll } from 'educoder';
import { City } from 'educoder'
const NAME_COUNT=60; const NAME_COUNT=60;
class GraduateTopicNewForm extends Component{ class GraduateTopicNewForm extends Component{
@ -80,15 +78,21 @@ class GraduateTopicNewForm extends Component{
// 附件相关 START // 附件相关 START
handleChange = (info) => { handleChange = (info) => {
let fileList = info.fileList; if (info.file.status === 'done' || info.file.status === 'uploading') {
this.setState({ fileList }); let contentFileList = info.fileList;
// this.setState({ fileList: appendFileSizeToUploadFileAll(contentFileList)});
// let list = appendFileSizeToUploadFileAll(contentFileList);
// let arr = list.map(item=>{
// return ( item.response && item.response.id )
// })
this.setState({
fileList:contentFileList
});
}
} }
onAttachmentRemove = (file) => { onAttachmentRemove = (file) => {
confirm({ this.props.confirm({
title: '确定要删除这个附件吗?', content: '确定要删除这个附件吗?',
okText: '确定',
cancelText: '取消',
// content: 'Some descriptions',
onOk: () => { onOk: () => {
this.deleteAttachment(file) this.deleteAttachment(file)
}, },
@ -102,28 +106,26 @@ class GraduateTopicNewForm extends Component{
console.log(file); console.log(file);
let id=file.response ==undefined ? file.id : file.response.id let id=file.response ==undefined ? file.id : file.response.id
const url = `/attachments/${id}.json` const url = `/attachments/${id}.json`
axios.delete(url, { axios.delete(url).then((response) => {
}) if (response.data) {
.then((response) => { const { status } = response.data;
if (response.data) { if (status == 0) {
const { status } = response.data; console.log('--- success')
if (status == 0) {
console.log('--- success') this.setState((state) => {
const index = state.fileList.indexOf(file);
this.setState((state) => { const newFileList = state.fileList.slice();
const index = state.fileList.indexOf(file); newFileList.splice(index, 1);
const newFileList = state.fileList.slice(); return {
newFileList.splice(index, 1); fileList: newFileList,
return { };
fileList: newFileList, });
};
});
}
} }
}) }
.catch(function (error) { })
console.log(error); .catch(function (error) {
}); console.log(error);
});
} }
changeTopicName=(e)=>{ changeTopicName=(e)=>{
@ -205,20 +207,20 @@ class GraduateTopicNewForm extends Component{
width: 600, width: 600,
fileList, fileList,
multiple: true, multiple: true,
// https://github.com/ant-design/ant-design/issues/15505 action: `${getUploadActionUrl()}`,
// showUploadList={false},然后外部拿到 fileList 数组自行渲染列表。
// showUploadList: false,
action: `${getUrl()}/api/attachments.json`,
onChange: this.handleChange, onChange: this.handleChange,
onRemove: this.onAttachmentRemove, onRemove: this.onAttachmentRemove,
beforeUpload: (file) => { beforeUpload: (file) => {
console.log('beforeUpload', file.name);
const isLt150M = file.size / 1024 / 1024 < 150; const isLt150M = file.size / 1024 / 1024 < 150;
if (!isLt150M) { if (!isLt150M) {
message.error('文件大小必须小于150MB!'); //message.error('文件大小必须小于150MB!');
this.props.define({
title:'提示',
content:"该文件无法上传。超过文件大小限制(150MB),建议上传到百度云等其它共享工具里然后再txt文档里给出链接以及共享密码并上传"
})
return isLt150M;
} }
return isLt150M; }
},
}; };
let { topicId , teacherName }=this.props; let { topicId , teacherName }=this.props;
return( return(

@ -35,104 +35,102 @@ class PollDetailTabThird extends Component{
render(){ render(){
let {pollDetail}=this.state; let {pollDetail}=this.state;
return( return(
<div> <div className="edu-back-white">
{ {
pollDetail && pollDetail.poll.polls_description && pollDetail && pollDetail.poll.polls_description &&
<p style={{backgroundColor:"#F2F9FF",whiteSpace:"pre-wrap"}} className="color-blue pt15 pb15 pl30 pr30">{ pollDetail.poll.polls_description }</p> <p style={{whiteSpace:"pre-wrap"}} className="color-grey-9 padding20-30 edu-back-white">{ pollDetail.poll.polls_description }</p>
} }
<div className="edu-back-white"> <p className="padding20-30 clearfix edu-txt-left" style={{background:'#FAFAFA'}}>
<p className="padding20-30 clearfix bor-bottom-greyE edu-txt-left"> { pollDetail && pollDetail.question_types.q_counts===0 ? "" :
{ pollDetail && pollDetail.question_types.q_counts===0 ? "" : <span className="color-grey-3">
<span className="color-grey-3"> {
{ pollDetail && pollDetail.question_types.q_counts > 0 &&
pollDetail && pollDetail.question_types.q_counts > 0 && <span>合计{pollDetail.question_types.q_counts}</span>
<span>合计{pollDetail.question_types.q_counts}</span> }
} {
pollDetail && pollDetail.question_types.q_singles > 0 &&
<span className="mr15 color-grey-9">单选题{pollDetail.question_types.q_singles}</span>
}
{
pollDetail && pollDetail.question_types.q_doubles > 0 &&
<span className="mr15 color-grey-9">多选题{pollDetail.question_types.q_doubles}</span>
}
{
pollDetail && pollDetail.question_types.q_mains > 0 &&
<span className="color-grey-9">主观题{pollDetail.question_types.q_mains}</span>
}
</span>
}
</p>
{
pollDetail && pollDetail.questions.map((item,key)=>{
return(
<div className="previewList">
<p className="pl30 pr30 pt30 pb15 font-16 clearfix">
<span className="color-blue mr8 fl">{item.question.question_number}{map[item.question.question_type]}</span>
{ item.question.is_necessary==1 ? <span className="mustAnswer fl ml10 mr10">必答</span>:<span className="mustAnswer fl ml10 mr10"></span> }
{ item.question.question_type == 2 && item.question.min_choices && item.question.max_choices ?
<span className="color-grey-9 font-14 fl mt2">
{
item.question.min_choices == item.question.max_choices ? "可选"+item.question.max_choices+"项" :
"可选"+item.question.min_choices+"-"+item.question.max_choices+"项"
}
</span>:""
}
</p>
<li className="pl30 pr30 pb15">{item.question.question_title}</li>
{ {
pollDetail && pollDetail.question_types.q_singles > 0 && // 单选题
<span className="mr15 color-grey-9">单选题{pollDetail.question_types.q_singles}</span> item.question.question_type==1 &&
<Radio.Group className="answerList" disabled>
{
item.question.answers.map((index,k)=>{
return(
<li className="df">
<Radio className="fl" value={index.answer_id}></Radio>
<span className={index.answer_text=="其他"?"break-word":"break-word flex1"}>{index.answer_text}</span>
{
index.answer_text=="其他" ? <p className="textLine"></p>:""
}
</li>
)
})
}
</Radio.Group>
} }
{ {
pollDetail && pollDetail.question_types.q_doubles > 0 && // 多选题
<span className="mr15 color-grey-9">多选题{pollDetail.question_types.q_doubles}</span> item.question.question_type==2 &&
<Checkbox.Group className="answerList" disabled>
{
item.question.answers.map((index,k)=>{
return(
<li className="df" key={k}>
<Checkbox className="fl mr8" value={index.answer_id} key={index.answer_id}></Checkbox>
<span className={index.answer_text=="其他"?"break-word":"break-word flex1"}>{index.answer_text}</span>
{
index.answer_text=="其他" ? <p className="textLine"></p>:""
}
</li>
)
})
}
</Checkbox.Group>
} }
{ {
pollDetail && pollDetail.question_types.q_mains > 0 && // 主观题
<span className="color-grey-9">主观题{pollDetail.question_types.q_mains}</span> item.question.question_type == 3 &&
<div className="mt10 pl30 pr30 pb20">
<textarea placeholder="在此填入答案" readOnly className="winput-100-130"></textarea>
</div>
} }
</span>
} </div>
</p> )
})
{ }
pollDetail && pollDetail.questions.map((item,key)=>{
return(
<div className="previewList">
<p className="pl30 pr30 pt30 pb15 font-16 clearfix">
<span className="color-blue mr8 fl">{item.question.question_number}{map[item.question.question_type]}</span>
{ item.question.is_necessary==1 ? <span className="mustAnswer fl ml10 mr10">必答</span>:<span className="mustAnswer fl ml10 mr10"></span> }
{ item.question.question_type == 2 && item.question.min_choices && item.question.max_choices ?
<span className="color-grey-9 font-14 fl mt2">
{
item.question.min_choices == item.question.max_choices ? "可选"+item.question.max_choices+"项" :
"可选"+item.question.min_choices+"-"+item.question.max_choices+"项"
}
</span>:""
}
</p>
<li className="pl30 pr30 pb15">{item.question.question_title}</li>
{
// 单选题
item.question.question_type==1 &&
<Radio.Group className="answerList" disabled>
{
item.question.answers.map((index,k)=>{
return(
<li className="df">
<Radio className="fl" value={index.answer_id}></Radio>
<span className={index.answer_text=="其他"?"break-word":"break-word flex1"}>{index.answer_text}</span>
{
index.answer_text=="其他" ? <p className="textLine"></p>:""
}
</li>
)
})
}
</Radio.Group>
}
{
// 多选题
item.question.question_type==2 &&
<Checkbox.Group className="answerList" disabled>
{
item.question.answers.map((index,k)=>{
return(
<li className="df" key={k}>
<Checkbox className="fl mr8" value={index.answer_id} key={index.answer_id}></Checkbox>
<span className={index.answer_text=="其他"?"break-word":"break-word flex1"}>{index.answer_text}</span>
{
index.answer_text=="其他" ? <p className="textLine"></p>:""
}
</li>
)
})
}
</Checkbox.Group>
}
{
// 主观题
item.question.question_type == 3 &&
<div className="mt10 pl30 pr30 pb20">
<textarea placeholder="在此填入答案" readOnly className="winput-100-130"></textarea>
</div>
}
</div>
)
})
}
</div>
</div> </div>
) )
} }

@ -185,7 +185,7 @@
width: 100%; width: 100%;
} }
.answerList li:hover{ .answerList li:hover{
background: #F8F8F8; background: #F0F8FF;
} }
textarea:read-only{ textarea:read-only{
background: #f3f3f3; background: #f3f3f3;

Loading…
Cancel
Save