|
|
|
@ -0,0 +1,334 @@
|
|
|
|
|
import React, {Component} from "react";
|
|
|
|
|
import {Link, NavLink} from 'react-router-dom';
|
|
|
|
|
import {WordsBtn, ActionBtn, SnackbarHOC, getImageUrl} from 'educoder';
|
|
|
|
|
import axios from 'axios';
|
|
|
|
|
import {
|
|
|
|
|
notification,
|
|
|
|
|
Spin,
|
|
|
|
|
Table,
|
|
|
|
|
Pagination,
|
|
|
|
|
Drawer,
|
|
|
|
|
Input,
|
|
|
|
|
Button,
|
|
|
|
|
Breadcrumb
|
|
|
|
|
} from "antd";
|
|
|
|
|
import {TPMIndexHOC} from "../tpm/TPMIndexHOC";
|
|
|
|
|
import NoneData from './component/NoneData';
|
|
|
|
|
import './testioncss/testioncss.css';
|
|
|
|
|
import '../tpm/newshixuns/css/Newshixuns.css';
|
|
|
|
|
import Bottomsubmit from "../../modules/modals/Bottomsubmit";
|
|
|
|
|
import Seeoagertits from "./component/Seeoagertits";
|
|
|
|
|
import Paperlibraryseeid_item from './component/Paperlibraryseeid_item';
|
|
|
|
|
import Comthetestpaperst from '../question/comthetestpaper/Comthetestpaperst';
|
|
|
|
|
import Paperlibraryseeid_itemss from './component/Paperlibraryseeid_itemss';
|
|
|
|
|
import JudquestionEditor from "../question/component/JudquestionEditor";
|
|
|
|
|
import NewMyShixunModel from "../question/NewMyShixunModel";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//试卷编辑
|
|
|
|
|
class Intecomponents extends Component {
|
|
|
|
|
constructor(props) {
|
|
|
|
|
super(props);
|
|
|
|
|
this.Judquestio = React.createRef();
|
|
|
|
|
this.state = {
|
|
|
|
|
paperlibrartdata: [],
|
|
|
|
|
disciplinesdata: [],
|
|
|
|
|
knowledgepoints: [],
|
|
|
|
|
disciplmy: [],
|
|
|
|
|
item_banksedit: [],
|
|
|
|
|
newmyshixunmodelbool:false,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
getJudquestio = (Ref) => {
|
|
|
|
|
console.log("子组件对象");
|
|
|
|
|
console.log(Ref);
|
|
|
|
|
this.Judquestio = Ref;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//初始化
|
|
|
|
|
componentDidMount() {
|
|
|
|
|
this.getdata();
|
|
|
|
|
let urls = `/disciplines.json`;
|
|
|
|
|
axios.get(urls, {
|
|
|
|
|
params: {
|
|
|
|
|
source: "question"
|
|
|
|
|
}
|
|
|
|
|
}).then((response) => {
|
|
|
|
|
if (response) {
|
|
|
|
|
this.setState({
|
|
|
|
|
disciplinesdata: response.data.disciplines,
|
|
|
|
|
})
|
|
|
|
|
if (response.data) {
|
|
|
|
|
if (response.data.disciplines) {
|
|
|
|
|
|
|
|
|
|
const didata = response.data.disciplines;
|
|
|
|
|
|
|
|
|
|
for (var i = 0; i < didata.length; i++) {
|
|
|
|
|
const childern = [];
|
|
|
|
|
//方向
|
|
|
|
|
const fxdidata = didata[i].sub_disciplines;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (var j = 0; j < fxdidata.length; j++) {
|
|
|
|
|
//课程
|
|
|
|
|
const zsddata = fxdidata[j].tag_disciplines;
|
|
|
|
|
childern.push(
|
|
|
|
|
{
|
|
|
|
|
value: fxdidata[j].id,
|
|
|
|
|
label: fxdidata[j].name,
|
|
|
|
|
}
|
|
|
|
|
)
|
|
|
|
|
for (var k = 0; k < zsddata.length; k++) {
|
|
|
|
|
//知识点
|
|
|
|
|
this.state.knowledgepoints.push(zsddata[k]);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const datakec = {
|
|
|
|
|
value: didata[i].id,
|
|
|
|
|
label: didata[i].name,
|
|
|
|
|
children: childern,
|
|
|
|
|
}
|
|
|
|
|
this.state.disciplmy.push(datakec);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
this.setState({
|
|
|
|
|
knowledgepoints: this.state.knowledgepoints,
|
|
|
|
|
disciplmy: this.state.disciplmy,
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
componentDidUpdate(prevProps) {
|
|
|
|
|
if(prevProps.current_user !== this.props.current_user) {
|
|
|
|
|
debugger
|
|
|
|
|
const isysladmins=this.props&&this.props.current_user&&this.props.current_user.admin?this.props.current_user.admin:false;
|
|
|
|
|
const is_teacher=this.props&&this.props.current_user&&this.props.current_user.is_teacher?this.props.current_user.is_teacher:false;
|
|
|
|
|
const professional_certification=this.props&&this.props.current_user&&this.props.current_user.professional_certification?this.props.current_user.professional_certification:false;
|
|
|
|
|
let {defaultActiveKey} = this.props;
|
|
|
|
|
var defaultActiveKeys=defaultActiveKey;
|
|
|
|
|
if(isysladmins===true||(is_teacher===true&&professional_certification===true)){
|
|
|
|
|
defaultActiveKeys="0"
|
|
|
|
|
}else{
|
|
|
|
|
defaultActiveKeys="1"
|
|
|
|
|
}
|
|
|
|
|
this.props.callback(defaultActiveKeys);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
getdata = () => {
|
|
|
|
|
let urls = `/examination_banks/${this.props.match.params.id}.json`;
|
|
|
|
|
axios.get(urls).then((response) => {
|
|
|
|
|
if (response) {
|
|
|
|
|
this.setState({
|
|
|
|
|
paperlibrartdata: response.data,
|
|
|
|
|
item_banksedit: response.data.exam,
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//跳转道描点的地方
|
|
|
|
|
scrollToAnchor = (anchorName) => {
|
|
|
|
|
try {
|
|
|
|
|
if (anchorName) {
|
|
|
|
|
// 找到锚点
|
|
|
|
|
let anchorElement = document.getElementById(anchorName);
|
|
|
|
|
// 如果对应id的锚点存在,就跳转到锚点
|
|
|
|
|
if (anchorElement) {
|
|
|
|
|
anchorElement.scrollIntoView();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} catch (e) {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
preservation = () => {
|
|
|
|
|
//保存试卷
|
|
|
|
|
if (this.Judquestio.Getdatas().length === 0) {
|
|
|
|
|
this.scrollToAnchor("Itembankstopid");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
var myrbkc=[];
|
|
|
|
|
var Getdatasdatas=this.Judquestio.Getdatas()[2].rbzsd;
|
|
|
|
|
for(let myda of Getdatasdatas) {
|
|
|
|
|
myrbkc.push(myda.id);
|
|
|
|
|
}
|
|
|
|
|
const url = `/examination_banks/${this.props.match.params.id}.json`;
|
|
|
|
|
var data={
|
|
|
|
|
difficulty:this.Judquestio.Getdatas()[0].rbnd,
|
|
|
|
|
name:this.Judquestio.Getdatas()[4].classroom,
|
|
|
|
|
duration:this.Judquestio.Getdatas()[5].kssc,
|
|
|
|
|
discipline_id: this.Judquestio.Getdatas()[3].rbkc[0],
|
|
|
|
|
sub_discipline_id: this.Judquestio.Getdatas()[3].rbkc[1],
|
|
|
|
|
tag_discipline_id: myrbkc,
|
|
|
|
|
}
|
|
|
|
|
axios.put(url, data)
|
|
|
|
|
.then((result) => {
|
|
|
|
|
if (result.data.status === 0) {
|
|
|
|
|
// this.props.showNotification(`试卷更新成功`);
|
|
|
|
|
this.props.history.push('/paperlibrary');
|
|
|
|
|
}
|
|
|
|
|
}).catch((error) => {
|
|
|
|
|
console.log(error);
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
setitem_type = (item_type) => {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
setCohetepaperbool = (bool) => {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
getcontentMdRef = (Ref) => {
|
|
|
|
|
this.contentMdRef = Ref;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
setnewmyshixunmodelbool=(bool)=>{
|
|
|
|
|
if(bool===true){
|
|
|
|
|
let scrollToTop = window.setInterval(function() {
|
|
|
|
|
let pos = window.pageYOffset;
|
|
|
|
|
if ( pos > 0 ) {
|
|
|
|
|
window.scrollTo( 0, pos - 20 ); // how far to scroll on each step
|
|
|
|
|
} else {
|
|
|
|
|
window.clearInterval( scrollToTop );
|
|
|
|
|
}
|
|
|
|
|
}, 2);
|
|
|
|
|
}
|
|
|
|
|
this.setState({
|
|
|
|
|
newmyshixunmodelbool:bool
|
|
|
|
|
})
|
|
|
|
|
this.getdata();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
render() {
|
|
|
|
|
let {paperlibrartdata,newmyshixunmodelbool} = this.state;
|
|
|
|
|
const params = this.props && this.props.match && this.props.match.params;
|
|
|
|
|
// console.log("newmyshixunmodelbool");
|
|
|
|
|
// console.log(newmyshixunmodelbool);
|
|
|
|
|
return (
|
|
|
|
|
<div>
|
|
|
|
|
<div id={"Itembankstopid"} className="newMain clearfix intermediatecenter "
|
|
|
|
|
>
|
|
|
|
|
{
|
|
|
|
|
newmyshixunmodelbool===true?
|
|
|
|
|
<style>{
|
|
|
|
|
`
|
|
|
|
|
body{ overflow: hidden !important; }
|
|
|
|
|
`
|
|
|
|
|
}</style>
|
|
|
|
|
:""
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
newmyshixunmodelbool===true?
|
|
|
|
|
<div className="fangdatwo">
|
|
|
|
|
<NewMyShixunModel exam_id={this.props.match.params.id} setnewmyshixunmodelbool={(e)=>this.setnewmyshixunmodelbool(e)}></NewMyShixunModel>
|
|
|
|
|
</div>
|
|
|
|
|
:
|
|
|
|
|
""
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
<style>
|
|
|
|
|
{
|
|
|
|
|
`
|
|
|
|
|
|
|
|
|
|
.newFooter{
|
|
|
|
|
display: none;
|
|
|
|
|
}
|
|
|
|
|
`
|
|
|
|
|
}
|
|
|
|
|
</style>
|
|
|
|
|
<div className="w1200ms">
|
|
|
|
|
<div className="w100s mt30">
|
|
|
|
|
<Breadcrumb separator=">">
|
|
|
|
|
<Breadcrumb.Item href="/paperlibrary">试卷库</Breadcrumb.Item>
|
|
|
|
|
<Breadcrumb.Item className={"shubiao"}>公告试卷库</Breadcrumb.Item>
|
|
|
|
|
<Breadcrumb.Item className={"shubiao"}>试卷编辑</Breadcrumb.Item>
|
|
|
|
|
</Breadcrumb>
|
|
|
|
|
</div>
|
|
|
|
|
<Comthetestpaperst {...this.state} {...this.props}
|
|
|
|
|
item_banksedit={this.state.item_banksedit}
|
|
|
|
|
getJudquestio={(ref) => this.getJudquestio(ref)}
|
|
|
|
|
></Comthetestpaperst>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div className=" clearfix educontent Contentquestionbankstyle w100s w1200wuh mt19">
|
|
|
|
|
<style>
|
|
|
|
|
{
|
|
|
|
|
`
|
|
|
|
|
.seeoagertitscss .jixuxuanti{
|
|
|
|
|
background:#4CACFF;
|
|
|
|
|
}
|
|
|
|
|
`
|
|
|
|
|
}
|
|
|
|
|
</style>
|
|
|
|
|
<div className={"seeoagertitscss"}>
|
|
|
|
|
<Seeoagertits
|
|
|
|
|
setnewmyshixunmodelbool={(e)=>this.setnewmyshixunmodelbool(e)}
|
|
|
|
|
all_score={paperlibrartdata && paperlibrartdata.exam && paperlibrartdata.exam.all_questions_count}
|
|
|
|
|
all_questions_count={paperlibrartdata && paperlibrartdata.exam && paperlibrartdata.exam.all_score}
|
|
|
|
|
difficulty={paperlibrartdata && paperlibrartdata.exam && paperlibrartdata.exam.difficulty}
|
|
|
|
|
>
|
|
|
|
|
</Seeoagertits>
|
|
|
|
|
</div>
|
|
|
|
|
<Paperlibraryseeid_itemss
|
|
|
|
|
{...this.state}
|
|
|
|
|
{...this.props}
|
|
|
|
|
getdata={() => this.getdata()}
|
|
|
|
|
single_questions={paperlibrartdata && paperlibrartdata.single_questions && paperlibrartdata.single_questions.questions.length > 0 ? paperlibrartdata.single_questions : null}
|
|
|
|
|
multiple_questions={paperlibrartdata && paperlibrartdata.multiple_questions
|
|
|
|
|
&& paperlibrartdata.multiple_questions.questions.length > 0 ? paperlibrartdata.multiple_questions : null
|
|
|
|
|
}
|
|
|
|
|
judgement_questions={paperlibrartdata && paperlibrartdata.judgement_questions
|
|
|
|
|
&& paperlibrartdata.judgement_questions.questions.length > 0 ? paperlibrartdata.judgement_questions : null
|
|
|
|
|
}
|
|
|
|
|
program_questions={paperlibrartdata && paperlibrartdata.program_questions
|
|
|
|
|
&& paperlibrartdata.program_questions.questions.length > 0 ? paperlibrartdata.program_questions : null
|
|
|
|
|
}
|
|
|
|
|
></Paperlibraryseeid_itemss>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
{
|
|
|
|
|
newmyshixunmodelbool === true ? "" :
|
|
|
|
|
<Bottomsubmit {...this.props} {...this.state} bottomvalue={"保存"}
|
|
|
|
|
setCohetepaperbool={(bool) => this.setCohetepaperbool(bool)}
|
|
|
|
|
onSubmits={() => this.preservation()} url={'/paperlibrary'}></Bottomsubmit>
|
|
|
|
|
}
|
|
|
|
|
</div>
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export default SnackbarHOC()(TPMIndexHOC(Intecomponents));
|
|
|
|
|
|
|
|
|
|
|