forked from Gitlink/forgeplus-react
1280 lines
32 KiB
JavaScript
1280 lines
32 KiB
JavaScript
import React, { Component } from "react";
|
||
import { SnackbarHOC } from 'educoder';
|
||
import axios from 'axios';
|
||
import { Pagination, Drawer, } from "antd";
|
||
import Headplugselections from "./component/Headplugselections";
|
||
import QuestionModal from "./component/QuestionModal";
|
||
import QuestionModals from "./component/QuestionModals";
|
||
import Contentpart from "./component/Contentpart";
|
||
import { TPMIndexHOC } from "../tpm/TPMIndexHOC";
|
||
import NoneData from './component/NoneData';
|
||
import './questioncss/questioncom.css';
|
||
import SiderBars from "../question/component/SiderBars";
|
||
import QuestionModalys from "./component/QuestionModalys";
|
||
import Certifiedprofessional from "../modals/Certifiedprofessional";
|
||
import SiderBar from "../tpm/SiderBar";
|
||
|
||
var Undoclickable = true;
|
||
var myGrandtotal = false;
|
||
class Question extends Component {
|
||
constructor(props) {
|
||
super(props);
|
||
this.state = {
|
||
count: 50,
|
||
defaultActiveKey: "0",
|
||
Headertop: "",
|
||
Footerdown: "",
|
||
visible: false,
|
||
placement: 'right',
|
||
modalsType: false,
|
||
modalsTypeInaudit: false,
|
||
modalsTypes: false,
|
||
titilesm: "在平台审核后,所有成员均可使用试题",
|
||
titiless: "是否设置为公开?",
|
||
titilesms: "单选题",
|
||
titbool: false,
|
||
Contentdata: [],
|
||
difficulty: null,
|
||
visiblemys: false,
|
||
visiblemyss: false,
|
||
item_type: null,
|
||
keyword: null,
|
||
timuid: null,
|
||
items_count: 0,
|
||
basket_list: [],
|
||
completion_questions_count: 0,
|
||
judgement_questions_count: 0,
|
||
multiple_questions_count: 0,
|
||
practical_questions_count: 0,
|
||
program_questions_count: 0,
|
||
single_questions_count: 0,
|
||
subjective_questions_count: 0,
|
||
page: 1,
|
||
per_page: 10,
|
||
disciplinesdata: [],
|
||
discipline_id: null,
|
||
sub_discipline_id: null,
|
||
tag_discipline_id: null,
|
||
booljupyterurls: false,
|
||
disciplinesdatakc: 0,
|
||
disciplinesdatazsd: 0,
|
||
selectallquestionsonthispages: false,
|
||
oj_status: null,
|
||
isVisible: false,
|
||
selectionbools: false,
|
||
chakanjiexiboolindex: "无",
|
||
mydisplay: false,
|
||
occupation: 2,
|
||
myqyespull: true
|
||
}
|
||
|
||
}
|
||
|
||
chakanjiexibool = (index) => {
|
||
if (this.state.chakanjiexiboolindex === index) {
|
||
this.setState({
|
||
chakanjiexiboolindex: "无",
|
||
})
|
||
return
|
||
}
|
||
this.setState({
|
||
chakanjiexiboolindex: index,
|
||
})
|
||
}
|
||
setmychakanjiexibool = (str) => {
|
||
this.setState({
|
||
chakanjiexiboolindex: str,
|
||
})
|
||
}
|
||
setdiscipline_id = (discipline_id) => {
|
||
this.setState({
|
||
discipline_id: discipline_id,
|
||
sub_discipline_id: null,
|
||
tag_discipline_id: null,
|
||
keyword: "",
|
||
page: 1,
|
||
per_page: 10,
|
||
oj_status: null
|
||
})
|
||
var data = {
|
||
discipline_id: discipline_id,
|
||
sub_discipline_id: null,
|
||
tag_discipline_id: null,
|
||
public: this.state.defaultActiveKey,
|
||
difficulty: this.state.difficulty,
|
||
item_type: this.state.item_type,
|
||
keyword: null,
|
||
page: this.state.page,
|
||
per_page: 10,
|
||
oj_status: null
|
||
};
|
||
this.getdata(data);
|
||
|
||
}
|
||
|
||
setsub_discipline_id = (discipline_id, sub_discipline_id) => {
|
||
this.setState({
|
||
sub_discipline_id: sub_discipline_id,
|
||
discipline_id: discipline_id,
|
||
tag_discipline_id: null,
|
||
keyword: "",
|
||
page: 1,
|
||
per_page: 10,
|
||
oj_status: null
|
||
})
|
||
var data = {
|
||
discipline_id: discipline_id,
|
||
sub_discipline_id: sub_discipline_id,
|
||
tag_discipline_id: null,
|
||
public: this.state.defaultActiveKey,
|
||
difficulty: this.state.difficulty,
|
||
item_type: this.state.item_type,
|
||
keyword: null,
|
||
page: 1,
|
||
per_page: 10,
|
||
oj_status: null
|
||
};
|
||
this.getdata(data);
|
||
}
|
||
|
||
settag_discipline_id = (tag_discipline_id) => {
|
||
this.setState({
|
||
tag_discipline_id: tag_discipline_id,
|
||
keyword: "",
|
||
page: 1,
|
||
per_page: 10,
|
||
oj_status: null
|
||
})
|
||
var data = {
|
||
discipline_id: this.state.discipline_id,
|
||
sub_discipline_id: this.state.sub_discipline_id,
|
||
tag_discipline_id: tag_discipline_id,
|
||
public: this.state.defaultActiveKey,
|
||
difficulty: this.state.difficulty,
|
||
item_type: this.state.item_type,
|
||
keyword: null,
|
||
page: 1,
|
||
per_page: 10,
|
||
oj_status: null
|
||
};
|
||
this.getdata(data);
|
||
}
|
||
|
||
//初始化
|
||
componentDidMount() {
|
||
let url = `/users/get_navigation_info.json`;
|
||
axios.get(url, {}).then((response) => {
|
||
if (response != undefined) {
|
||
if (response.status === 200) {
|
||
this.setState({
|
||
Headertop: response.data.top,
|
||
Footerdown: response.data.down
|
||
})
|
||
}
|
||
}
|
||
});
|
||
this.getbasket_listdata();
|
||
//获取题库筛选资料
|
||
let urls = `/disciplines.json`;
|
||
axios.get(urls, {
|
||
params: {
|
||
source: "question"
|
||
}
|
||
}).then((response) => {
|
||
if (response) {
|
||
this.setState({
|
||
disciplinesdata: response.data.disciplines,
|
||
})
|
||
}
|
||
});
|
||
}
|
||
//公共和我的
|
||
callback = (key) => {
|
||
this.setState({
|
||
defaultActiveKey: key,
|
||
selectallquestionsonthispages: false,
|
||
difficulty: null,
|
||
page: 1,
|
||
oj_status: null
|
||
})
|
||
var data = {
|
||
discipline_id: this.state.discipline_id,
|
||
sub_discipline_id: this.state.sub_discipline_id,
|
||
tag_discipline_id: this.state.tag_discipline_id,
|
||
public: key,
|
||
item_type: this.state.item_type,
|
||
difficulty: null,
|
||
page: 1,
|
||
per_page: 10,
|
||
oj_status: null
|
||
};
|
||
this.getdata(data);
|
||
|
||
}
|
||
|
||
//刷新加载
|
||
getdata = (data, bool) => {
|
||
const url = `/item_banks.json`;
|
||
if (bool) {
|
||
this.setState({
|
||
selectionbools: false,
|
||
})
|
||
} else {
|
||
this.setState({
|
||
booljupyterurls: true,
|
||
selectionbools: false,
|
||
})
|
||
}
|
||
|
||
axios.get((url), { params: data }).then((response) => {
|
||
this.setState({
|
||
booljupyterurls: false,
|
||
})
|
||
if (response === null || response === undefined) {
|
||
|
||
return
|
||
}
|
||
if (response.data.status === 403 || response.data.status === 401 || response.data.status === 500) {
|
||
|
||
} else {
|
||
|
||
}
|
||
this.setState({
|
||
Contentdata: response.data,
|
||
items_count: response.data.items_count,
|
||
})
|
||
this.getdataslen(response.data.items);
|
||
}).catch((error) => {
|
||
this.setState({
|
||
booljupyterurls: false,
|
||
})
|
||
});
|
||
}
|
||
|
||
//不刷新加载
|
||
getdatasy = (data) => {
|
||
const url = `/item_banks.json`;
|
||
this.setState({
|
||
selectionbools: false,
|
||
})
|
||
axios.get((url), { params: data }).then((response) => {
|
||
if (response === null || response === undefined) {
|
||
return
|
||
}
|
||
this.setState({
|
||
Contentdata: response.data,
|
||
items_count: response.data.items_count,
|
||
})
|
||
|
||
this.getdataslen(response.data.items);
|
||
|
||
}).catch((error) => {
|
||
|
||
});
|
||
}
|
||
|
||
//计算
|
||
getdataslen = (arr) => {
|
||
myGrandtotal = false;
|
||
let contes = 0;
|
||
let Grandtotal = 0;
|
||
for (let data of arr) {
|
||
if (data.item_type === "PROGRAM") {
|
||
//编程题
|
||
if (data.choosed === true) {
|
||
|
||
} else {
|
||
//未选用
|
||
if (data.program_attr.status === 1) {
|
||
//已发布1 未发布0
|
||
contes = contes + 1;
|
||
} else {
|
||
Grandtotal = Grandtotal + 1;
|
||
}
|
||
}
|
||
|
||
} else {
|
||
//不是编程题
|
||
if (data.choosed === true) {
|
||
|
||
} else {
|
||
//未选用
|
||
contes = contes + 1;
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
if (contes > 0) {
|
||
this.setState({
|
||
selectionbools: false,
|
||
selectallquestionsonthispages: false,
|
||
})
|
||
} else {
|
||
try {
|
||
if (arr.length === Grandtotal) {
|
||
myGrandtotal = true;
|
||
this.setState({
|
||
selectionbools: false,
|
||
selectallquestionsonthispages: false,
|
||
})
|
||
} else {
|
||
this.setState({
|
||
selectionbools: true,
|
||
selectallquestionsonthispages: true,
|
||
})
|
||
}
|
||
} catch (e) {
|
||
this.setState({
|
||
selectionbools: true,
|
||
selectallquestionsonthispages: true,
|
||
})
|
||
}
|
||
|
||
}
|
||
}
|
||
|
||
paginationonChange = (pageNumber) => {
|
||
this.setState({
|
||
page: pageNumber,
|
||
})
|
||
var data = {
|
||
discipline_id: this.state.discipline_id,
|
||
sub_discipline_id: this.state.sub_discipline_id,
|
||
tag_discipline_id: this.state.tag_discipline_id,
|
||
public: this.state.defaultActiveKey,
|
||
difficulty: this.state.difficulty,
|
||
item_type: this.state.item_type,
|
||
keyword: this.state.keywords,
|
||
page: pageNumber,
|
||
per_page: 10,
|
||
oj_status: this.state.oj_status
|
||
};
|
||
this.getdata(data);
|
||
this.setmychakanjiexibool("无")
|
||
|
||
}
|
||
showDrawer = () => {
|
||
if (this.state.visible === true) {
|
||
this.setState({
|
||
visible: false,
|
||
});
|
||
} else {
|
||
this.setState({
|
||
visible: true,
|
||
});
|
||
this.getbasket_listdata();
|
||
}
|
||
};
|
||
|
||
onClose = () => {
|
||
this.setState({
|
||
visible: false,
|
||
});
|
||
};
|
||
|
||
onChange = e => {
|
||
this.setState({
|
||
placement: e.target.value,
|
||
});
|
||
};
|
||
|
||
getContainer = () => {
|
||
return this.container;
|
||
};
|
||
saveContainer = container => {
|
||
this.container = container;
|
||
};
|
||
|
||
showmodels = (id) => {
|
||
|
||
this.setState({
|
||
modalsType: true,
|
||
titilesm: "在平台审核后,所有成员均可使用试题",
|
||
titiless: "是否设置为公开?",
|
||
titbool: true,
|
||
timuid: id,
|
||
myqyespull: true
|
||
})
|
||
};
|
||
setasprivates = (id) => {
|
||
this.setState({
|
||
modalsType: true,
|
||
titilesm: "设为私有后,试题仅您自己可见",
|
||
titiless: "是否设置为私有?",
|
||
titbool: true,
|
||
timuid: id,
|
||
myqyespull: false
|
||
})
|
||
};
|
||
|
||
showmodelsInaudit = (e) => {
|
||
this.setState({
|
||
modalsTypeInaudit: true,
|
||
titilesm: "公开申请已提交,请等待管理员的审核",
|
||
titiless: "我们将在1-2个工作日内完成审核",
|
||
})
|
||
};
|
||
|
||
|
||
showmodelysl = (id) => {
|
||
this.setState({
|
||
modalsType: true,
|
||
titilesm: "确认删除后,无法撤销",
|
||
titiless: "是否确认删除?",
|
||
titbool: false,
|
||
timuid: id
|
||
})
|
||
};
|
||
modalsTypeInauditbool = () => {
|
||
this.setState({
|
||
modalsTypeInaudit: false,
|
||
})
|
||
}
|
||
|
||
modalCancel = () => {
|
||
this.setState({
|
||
modalsType: false
|
||
})
|
||
}
|
||
modalCancels = () => {
|
||
this.setState({
|
||
modalsTypes: false
|
||
})
|
||
}
|
||
showQuestionModals = (item_type) => {
|
||
this.setState({
|
||
modalsTypes: true,
|
||
titilesms: item_type,
|
||
})
|
||
|
||
}
|
||
setDownloads = (item_type) => {
|
||
this.Deletebigquestiontype(item_type);
|
||
this.setState({
|
||
modalsTypes: false
|
||
})
|
||
}
|
||
setDownload = () => {
|
||
//确认
|
||
if (this.state.titbool === true) {
|
||
//公开
|
||
if (this.state.myqyespull === true) {
|
||
this.publicopentimu(this.state.timuid);
|
||
} else {
|
||
this.Setasprivate(this.state.timuid);
|
||
}
|
||
} else {
|
||
// 删除
|
||
this.deletetimu(this.state.timuid);
|
||
}
|
||
this.setState({
|
||
modalsType: false
|
||
})
|
||
}
|
||
|
||
setdifficulty = (difficulty) => {
|
||
this.setState({
|
||
difficulty: difficulty,
|
||
visiblemys: false,
|
||
page: 1,
|
||
per_page: 10,
|
||
keyword: "",
|
||
oj_status: null
|
||
})
|
||
|
||
var data = {
|
||
discipline_id: this.state.discipline_id,
|
||
sub_discipline_id: this.state.sub_discipline_id,
|
||
tag_discipline_id: this.state.tag_discipline_id,
|
||
public: this.state.defaultActiveKey,
|
||
difficulty: difficulty,
|
||
item_type: this.state.item_type,
|
||
keyword: null,
|
||
page: 1,
|
||
per_page: 10,
|
||
oj_status: null
|
||
};
|
||
this.getdata(data);
|
||
}
|
||
setitem_types = (item_type) => {
|
||
this.setState({
|
||
item_type: item_type,
|
||
visiblemyss: false,
|
||
page: 1,
|
||
per_page: 10,
|
||
keyword: "",
|
||
oj_status: null
|
||
})
|
||
|
||
var data = {
|
||
discipline_id: this.state.discipline_id,
|
||
sub_discipline_id: this.state.sub_discipline_id,
|
||
tag_discipline_id: this.state.tag_discipline_id,
|
||
public: this.state.defaultActiveKey,
|
||
difficulty: this.state.difficulty,
|
||
item_type: item_type,
|
||
page: 1,
|
||
per_page: 10,
|
||
keyword: null,
|
||
oj_status: null
|
||
};
|
||
|
||
this.getdata(data);
|
||
}
|
||
|
||
handleVisibleChange = (boll) => {
|
||
if (this.state.visiblemyss === true) {
|
||
this.setState({
|
||
visiblemys: boll,
|
||
visiblemyss: false,
|
||
})
|
||
} else {
|
||
this.setState({
|
||
visiblemys: boll,
|
||
})
|
||
}
|
||
|
||
}
|
||
|
||
handleVisibleChanges = (boll) => {
|
||
if (this.state.visiblemys === true) {
|
||
this.setState({
|
||
visiblemyss: boll,
|
||
visiblemys: false,
|
||
})
|
||
} else {
|
||
this.setState({
|
||
visiblemyss: boll,
|
||
})
|
||
}
|
||
}
|
||
|
||
setdatafunsval = (e) => {
|
||
this.setState({
|
||
keyword: e.target.value
|
||
})
|
||
}
|
||
|
||
setdatafuns = (value) => {
|
||
|
||
this.setState({
|
||
keyword: value,
|
||
})
|
||
var data = {
|
||
discipline_id: this.state.discipline_id,
|
||
sub_discipline_id: this.state.sub_discipline_id,
|
||
tag_discipline_id: this.state.tag_discipline_id,
|
||
public: this.state.defaultActiveKey,
|
||
difficulty: this.state.difficulty,
|
||
item_type: this.state.item_type,
|
||
keyword: value,
|
||
page: 1,
|
||
per_page: 10,
|
||
oj_status: this.state.oj_status
|
||
};
|
||
|
||
this.getdata(data);
|
||
}
|
||
|
||
deletetimu = (id) => {
|
||
const url = `/item_banks/${id}.json`;
|
||
axios.delete(url)
|
||
.then((response) => {
|
||
if (response.data.status == 0) {
|
||
var data = {
|
||
discipline_id: this.state.discipline_id,
|
||
sub_discipline_id: this.state.sub_discipline_id,
|
||
tag_discipline_id: this.state.tag_discipline_id,
|
||
public: this.state.defaultActiveKey,
|
||
difficulty: this.state.difficulty,
|
||
item_type: this.state.item_type,
|
||
keyword: this.state.keywords,
|
||
page: this.state.page,
|
||
per_page: 10,
|
||
};
|
||
this.getdata(data, true);
|
||
}
|
||
})
|
||
.catch(function (error) {
|
||
});
|
||
}
|
||
//设为公开
|
||
publicopentimu = (id) => {
|
||
const url = `/item_banks/${id}/set_public.json`;
|
||
axios.post(url)
|
||
.then((result) => {
|
||
if (result.data.status == 0) {
|
||
var data = {
|
||
discipline_id: this.state.discipline_id,
|
||
sub_discipline_id: this.state.sub_discipline_id,
|
||
tag_discipline_id: this.state.tag_discipline_id,
|
||
public: this.state.defaultActiveKey,
|
||
difficulty: this.state.difficulty,
|
||
item_type: this.state.item_type,
|
||
keyword: this.state.keywords,
|
||
page: this.state.page,
|
||
per_page: 10,
|
||
};
|
||
this.getdata(data, true);
|
||
}
|
||
}).catch((error) => {
|
||
////console.log(error);
|
||
})
|
||
}
|
||
//设为私有
|
||
|
||
Setasprivate = (id) => {
|
||
const url = `/item_banks/${id}/set_private.json`;
|
||
axios.post(url)
|
||
.then((result) => {
|
||
if (result.data.status == 0) {
|
||
// this.props.showNotification(`设为私有成功`);
|
||
var data = {
|
||
discipline_id: this.state.discipline_id,
|
||
sub_discipline_id: this.state.sub_discipline_id,
|
||
tag_discipline_id: this.state.tag_discipline_id,
|
||
public: this.state.defaultActiveKey,
|
||
difficulty: this.state.difficulty,
|
||
item_type: this.state.item_type,
|
||
keyword: this.state.keywords,
|
||
page: this.state.page,
|
||
per_page: 10,
|
||
};
|
||
this.getdata(data, true);
|
||
|
||
}
|
||
}).catch((error) => {
|
||
////console.log(error);
|
||
})
|
||
}
|
||
|
||
//跳转道描点的地方
|
||
scrollToAnchor = (anchorName) => {
|
||
if (anchorName) {
|
||
// 找到锚点
|
||
let anchorElement = document.getElementById(anchorName);
|
||
// 如果对应id的锚点存在,就跳转到锚点
|
||
if (anchorElement) {
|
||
anchorElement.scrollIntoView();
|
||
}
|
||
}
|
||
}
|
||
|
||
getbasket_listdata = () => {
|
||
// 获取试题篮展开的数据
|
||
const url = "/item_baskets/basket_list.json";
|
||
axios.get(url)
|
||
.then((result) => {
|
||
this.setState({
|
||
completion_questions_count: result.data.completion_questions_count,
|
||
judgement_questions_count: result.data.judgement_questions_count,
|
||
multiple_questions_count: result.data.multiple_questions_count,
|
||
practical_questions_count: result.data.practical_questions_count,
|
||
program_questions_count: result.data.program_questions_count,
|
||
single_questions_count: result.data.single_questions_count,
|
||
subjective_questions_count: result.data.subjective_questions_count,
|
||
})
|
||
|
||
}).catch((error) => {
|
||
this.setState({
|
||
completion_questions_count: 0,
|
||
judgement_questions_count: 0,
|
||
multiple_questions_count: 0,
|
||
practical_questions_count: 0,
|
||
program_questions_count: 0,
|
||
single_questions_count: 0,
|
||
subjective_questions_count: 0,
|
||
})
|
||
})
|
||
|
||
}
|
||
// 不选用 NewMyShixunModel.js 页面也有个
|
||
NOgetitem_baskets = (data) => {
|
||
let url = "/examination_banks/cancel_items.json";
|
||
|
||
axios.post(url, data)
|
||
.then((result) => {
|
||
if (result.data.status == 0) {
|
||
// this.props.showNotification(`选用成功`);
|
||
var data = {
|
||
discipline_id: this.state.discipline_id,
|
||
sub_discipline_id: this.state.sub_discipline_id,
|
||
tag_discipline_id: this.state.tag_discipline_id,
|
||
public: this.state.defaultActiveKey,
|
||
difficulty: this.state.difficulty,
|
||
item_type: this.state.item_type,
|
||
keyword: this.state.keywords,
|
||
page: this.state.page,
|
||
per_page: 10,
|
||
};
|
||
this.getdatasy(data);
|
||
this.getbasket_listdata();
|
||
}
|
||
}).catch((error) => {
|
||
////console.log(error);
|
||
})
|
||
}
|
||
|
||
//选用 NewMyShixunModel.js 页面也有个
|
||
getitem_baskets = (data) => {
|
||
//选用题型可以上传单个 或者多个题型
|
||
let url = "/item_baskets.json";
|
||
|
||
axios.post(url, data)
|
||
.then((result) => {
|
||
if (result.data.status == 0) {
|
||
// this.props.showNotification(`选用成功`);
|
||
var data = {
|
||
discipline_id: this.state.discipline_id,
|
||
sub_discipline_id: this.state.sub_discipline_id,
|
||
tag_discipline_id: this.state.tag_discipline_id,
|
||
public: this.state.defaultActiveKey,
|
||
difficulty: this.state.difficulty,
|
||
item_type: this.state.item_type,
|
||
keyword: this.state.keywords,
|
||
page: this.state.page,
|
||
per_page: 10,
|
||
};
|
||
this.getdatasy(data);
|
||
this.getbasket_listdata();
|
||
// this.setState({
|
||
// visible:true
|
||
// })
|
||
}
|
||
}).catch((error) => {
|
||
////console.log(error);
|
||
})
|
||
}
|
||
// 撤销
|
||
getitem_basketss = (id) => {
|
||
if (Undoclickable === true) {
|
||
Undoclickable = false;
|
||
//选用题型可以上传单个 或者多个题型
|
||
let url = `/item_baskets/${id}.json`;
|
||
|
||
axios.delete(url)
|
||
.then((result) => {
|
||
if (result.data.status == 0) {
|
||
// this.props.showNotification(`撤销成功`);
|
||
var data = {
|
||
discipline_id: this.state.discipline_id,
|
||
sub_discipline_id: this.state.sub_discipline_id,
|
||
tag_discipline_id: this.state.tag_discipline_id,
|
||
public: this.state.defaultActiveKey,
|
||
difficulty: this.state.difficulty,
|
||
item_type: this.state.item_type,
|
||
keyword: this.state.keywords,
|
||
page: this.state.page,
|
||
per_page: 10,
|
||
};
|
||
this.getdatasy(data);
|
||
this.getbasket_listdata();
|
||
}
|
||
setTimeout(() => {
|
||
Undoclickable = true;
|
||
}, 1000);
|
||
}).catch((error) => {
|
||
////console.log(error);
|
||
setTimeout(() => {
|
||
Undoclickable = true;
|
||
}, 1000);
|
||
})
|
||
}
|
||
}
|
||
//全选试题库
|
||
selectallquestionsonthispage = (bool) => {
|
||
if (bool === true) {
|
||
//bool 是选中状态
|
||
let {
|
||
completion_questions_count, judgement_questions_count, multiple_questions_count, practical_questions_count,
|
||
program_questions_count, single_questions_count, subjective_questions_count,
|
||
} = this.state;
|
||
|
||
const Datacount = completion_questions_count + judgement_questions_count
|
||
+ multiple_questions_count + practical_questions_count
|
||
+ program_questions_count
|
||
+ single_questions_count
|
||
+ subjective_questions_count;
|
||
if (Datacount === 100) {
|
||
this.props.showNotification(`已选100个试题(不能在选用更多试题)`);
|
||
return;
|
||
}
|
||
}
|
||
if (myGrandtotal === true) {
|
||
this.props.showNotification(`本页全部试题未发布,不能选择`);
|
||
return
|
||
}
|
||
var item_idsdata = [];
|
||
var arr = this.state.Contentdata.items;
|
||
for (let data of arr) {
|
||
if (data.item_type === "PROGRAM") {
|
||
//编程题
|
||
if (data.choosed === true) {
|
||
if (data.program_attr.status === 1) {
|
||
//已发布
|
||
item_idsdata.push(data.id);
|
||
}
|
||
} else {
|
||
//未选用
|
||
if (data.program_attr.status === 1) {
|
||
//已发布
|
||
item_idsdata.push(data.id);
|
||
}
|
||
|
||
}
|
||
|
||
} else {
|
||
//不是编程题
|
||
if (data.choosed === true) {
|
||
item_idsdata.push(data.id);
|
||
} else {
|
||
//未选用
|
||
item_idsdata.push(data.id);
|
||
}
|
||
}
|
||
|
||
}
|
||
const data = {
|
||
item_ids: item_idsdata
|
||
}
|
||
if (bool === false) {
|
||
this.getitem_baskets(data);
|
||
this.setState({
|
||
selectallquestionsonthispages: true,
|
||
})
|
||
} else {
|
||
this.NOgetitem_baskets(data);
|
||
this.setState({
|
||
selectallquestionsonthispages: false,
|
||
})
|
||
}
|
||
|
||
}
|
||
//全选的状态
|
||
//删除大题型
|
||
Deletebigquestiontype = (item_type) => {
|
||
const url = `/item_baskets/delete_item_type.json`;
|
||
axios.delete((url), {
|
||
data: {
|
||
item_type: item_type
|
||
}
|
||
})
|
||
.then((response) => {
|
||
if (response.data.status == 0) {
|
||
// this.props.showNotification('删除成功');
|
||
var data = {
|
||
discipline_id: this.state.discipline_id,
|
||
sub_discipline_id: this.state.sub_discipline_id,
|
||
tag_discipline_id: this.state.tag_discipline_id,
|
||
public: this.state.defaultActiveKey,
|
||
difficulty: this.state.difficulty,
|
||
item_type: this.state.item_type,
|
||
keyword: this.state.keywords,
|
||
page: this.state.page,
|
||
per_page: 10,
|
||
};
|
||
this.getdata(data);
|
||
this.getbasket_listdata();
|
||
}
|
||
})
|
||
.catch(function (error) {
|
||
////console.log(error);
|
||
});
|
||
|
||
}
|
||
HideAddcoursestypess = (i) => {
|
||
console.log("调用了");
|
||
this.setState({
|
||
mydisplay: true,
|
||
occupation: i,
|
||
})
|
||
}
|
||
|
||
mydisplayHidedel = () => {
|
||
this.setState({
|
||
mydisplay: false,
|
||
})
|
||
}
|
||
|
||
//跳转
|
||
gotopaperreview = () => {
|
||
let isysladmins = false;
|
||
if (this.props) {
|
||
if (this.props.current_user) {
|
||
if (this.props.current_user.admin) {
|
||
isysladmins = true;
|
||
}
|
||
else if (this.props.current_user.business) {
|
||
isysladmins = true;
|
||
}
|
||
}
|
||
}
|
||
|
||
this.props.history.replace("/paperreview/artificial");
|
||
|
||
}
|
||
|
||
setoj_status = (oj_status) => {
|
||
//编程题发布未发布
|
||
this.setState({
|
||
selectallquestionsonthispages: false,
|
||
difficulty: null,
|
||
oj_status: oj_status
|
||
})
|
||
var data = {
|
||
discipline_id: this.state.discipline_id,
|
||
sub_discipline_id: this.state.sub_discipline_id,
|
||
tag_discipline_id: this.state.tag_discipline_id,
|
||
public: this.state.defaultActiveKey,
|
||
difficulty: this.state.difficulty,
|
||
item_type: this.state.item_type,
|
||
keyword: this.state.keywords,
|
||
page: this.state.page,
|
||
per_page: 10,
|
||
oj_status: oj_status
|
||
};
|
||
this.getdata(data);
|
||
}
|
||
|
||
render() {
|
||
let {
|
||
page, per_page, items_count, Headertop, visible, placement, modalsType, modalsTypes, basket_list,
|
||
completion_questions_count, judgement_questions_count, multiple_questions_count, practical_questions_count,
|
||
program_questions_count, single_questions_count, subjective_questions_count, selectionbools,
|
||
modalsTypeInaudit, mydisplay
|
||
} = this.state;
|
||
|
||
const Datacount = completion_questions_count + judgement_questions_count
|
||
+ multiple_questions_count + practical_questions_count
|
||
+ program_questions_count
|
||
+ single_questions_count
|
||
+ subjective_questions_count;
|
||
let isysladmins = 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;
|
||
try {
|
||
if (this.props) {
|
||
if (this.props.current_user) {
|
||
if (this.props.current_user.admin) {
|
||
isysladmins = true;
|
||
}
|
||
else if (this.props.current_user.business) {
|
||
isysladmins = true;
|
||
}
|
||
}
|
||
}
|
||
} catch (e) {
|
||
|
||
}
|
||
let Periofters = false;
|
||
if (this.props) {
|
||
if (this.props.current_user) {
|
||
if (this.props.current_user.admin) {
|
||
Periofters = true;
|
||
}
|
||
else if (this.props.current_user.business) {
|
||
Periofters = true;
|
||
}
|
||
else if (this.props.current_user.is_shixun_marker) {
|
||
Periofters = true;
|
||
}
|
||
else if (this.props.current_user.is_teacher) {
|
||
Periofters = true;
|
||
} else if (this.props.current_user.user_identity !== "学生") {
|
||
Periofters = true;
|
||
}
|
||
}
|
||
}
|
||
return (
|
||
<div className="newMain clearfix" ref={this.saveContainer}>
|
||
{
|
||
mydisplay === true ?
|
||
<Certifiedprofessional {...this.props} {...this.state} ModalCancelsy={this.mydisplayHidedel} />
|
||
|
||
: ""
|
||
}
|
||
{
|
||
mydisplay === true ?
|
||
<style>
|
||
{
|
||
`
|
||
body{
|
||
overflow:hidden!important;
|
||
}
|
||
|
||
`
|
||
}
|
||
</style>
|
||
|
||
: ""
|
||
}
|
||
{
|
||
visible === true ?
|
||
<style>
|
||
{
|
||
`
|
||
|
||
.ant-drawer {
|
||
z-index: 800 !important;
|
||
}
|
||
.ant-notification{
|
||
position: fixed;
|
||
z-index: 1500 !important;
|
||
}
|
||
|
||
`
|
||
}
|
||
</style>
|
||
: ""
|
||
}
|
||
|
||
<div
|
||
style={{
|
||
marginTop: "81px"
|
||
}}></div>
|
||
{
|
||
modalsTypes === true ?
|
||
<QuestionModals {...this.props}{...this.state} modalsTypes={modalsTypes} modalCancels={() => this.modalCancels()}
|
||
setDownloads={(e) => this.setDownloads(e)}></QuestionModals>
|
||
: ""
|
||
}
|
||
{
|
||
modalsType === true ?
|
||
<QuestionModal {...this.props}{...this.state} modalsType={modalsType} modalCancel={() => this.modalCancel()}
|
||
setDownload={() => this.setDownload()}></QuestionModal>
|
||
: ""
|
||
}
|
||
{
|
||
modalsTypeInaudit === true ?
|
||
<QuestionModalys {...this.props}{...this.state} modalsType={modalsTypeInaudit} modalCancel={() => this.modalsTypeInauditbool()}
|
||
setDownload={() => this.modalsTypeInauditbool()}></QuestionModalys>
|
||
: ""
|
||
}
|
||
|
||
<style>
|
||
{
|
||
`
|
||
.-task-sidebar{
|
||
height: 30%;
|
||
}
|
||
`
|
||
}
|
||
</style>
|
||
{
|
||
Periofters === false ?
|
||
<SiderBar
|
||
{...this.props}
|
||
{...this.state}
|
||
showDrawer={() => this.showDrawer()}
|
||
Headertop={Headertop} />
|
||
:
|
||
<SiderBars
|
||
Datacount={Datacount}
|
||
myvisible={visible}
|
||
{...this.props}
|
||
{...this.state}
|
||
showDrawer={() => this.showDrawer()}
|
||
Headertop={Headertop}
|
||
|
||
/>
|
||
}
|
||
{/*顶部*/}
|
||
<div id={"questionid"}></div>
|
||
|
||
<Headplugselections
|
||
disciplinesdata={this.state.disciplinesdata}
|
||
{...this.props}
|
||
{...this.state}
|
||
setdifficulty={(e) => this.setdifficulty(e)}
|
||
setitem_types={(e) => this.setitem_types(e)}
|
||
setdiscipline_id={(e) => this.setdiscipline_id(e)}
|
||
setsub_discipline_id={(e, id) => this.setsub_discipline_id(e, id)}
|
||
settag_discipline_id={(e) => this.settag_discipline_id(e)}
|
||
/>
|
||
{/*头部*/}
|
||
<Contentpart {...this.state} {...this.props}
|
||
pages={this.state.page}
|
||
Isitapopup={"false"}
|
||
Datacount={Datacount}
|
||
Datacountbool={true}
|
||
chakanjiexiboolindex={this.state.chakanjiexiboolindex}
|
||
chakanjiexibool={(e) => this.chakanjiexibool(e)}
|
||
getitem_basketss={(id) => this.getitem_basketss(id)}
|
||
selectallquestionsonthispage={(bool) => this.selectallquestionsonthispage(bool)}
|
||
getitem_baskets={(e) => this.getitem_baskets(e)}
|
||
setdatafuns={(e) => this.setdatafuns(e)}
|
||
setdatafunsval={(e) => this.setdatafunsval(e)}
|
||
handleVisibleChanges={(e) => this.handleVisibleChanges(e)}
|
||
handleVisibleChange={(e) => this.handleVisibleChange(e)}
|
||
showmodels={(e) => this.showmodels(e)}
|
||
showmodelysl={(e) => this.showmodelysl(e)}
|
||
callback={(e) => this.callback(e)}
|
||
setoj_status={(e) => this.setoj_status(e)}
|
||
showmodelsInaudit={(e) => this.showmodelsInaudit(e)}
|
||
setasprivates={(e) => this.setasprivates(e)}
|
||
></Contentpart>
|
||
|
||
{
|
||
items_count && items_count > 10 ?
|
||
<div className="mb60 clearfix educontent mt40 intermediatecenter">
|
||
<Pagination showQuickJumper current={page} onChange={this.paginationonChange}
|
||
pageSize={per_page}
|
||
total={items_count}></Pagination>
|
||
</div>
|
||
: <div className="h30 clearfix educontent mt40 intermediatecenter">
|
||
|
||
</div>
|
||
}
|
||
|
||
|
||
{/*抽屉效果*/}
|
||
<style>
|
||
{
|
||
`
|
||
.ant-drawer-content-wrapper{
|
||
width: 160px !important;
|
||
overflow:hidden;
|
||
margin-top: 62px;
|
||
}
|
||
.ant-drawer-body{
|
||
height: 100%;
|
||
background:rgba(234,234,234,1);
|
||
}
|
||
.ant-drawer-close{
|
||
height: 40px;
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
justify-content: center;
|
||
color:#ffffff;
|
||
|
||
}
|
||
.ant-drawer-close:hover{
|
||
color:#ffffff;
|
||
}
|
||
.ant-drawer-close:active{
|
||
color:#ffffff;
|
||
}
|
||
`
|
||
}
|
||
</style>
|
||
|
||
<Drawer
|
||
className="drawercontainer"
|
||
placement={placement}
|
||
closable={false}
|
||
onClose={() => this.onClose()}
|
||
visible={visible}
|
||
mask={false}
|
||
>
|
||
|
||
{Datacount && Datacount > 0 ?
|
||
<div>
|
||
<div className="shitilang">
|
||
试题篮
|
||
</div>
|
||
<div className="mt25 mb26">
|
||
</div>
|
||
{
|
||
single_questions_count === 0 ?
|
||
""
|
||
: <div className="sortinxdirection " >
|
||
<p
|
||
className="w80s intermediatecenterysls sortinxdirection font-14 xiaoshou xiaoshoums">单选题{'('}{single_questions_count}{')'}</p>
|
||
<p className="w20s intermediatecenterysls xaxisreverseorder"><i
|
||
className="iconfont icon-shanchu1 font-14 lg lh30 icondrawercolor " onClick={() => this.showQuestionModals("SINGLE")}></i></p>
|
||
</div>
|
||
}
|
||
{
|
||
multiple_questions_count === 0 ?
|
||
""
|
||
:
|
||
<div className="sortinxdirection" >
|
||
<p
|
||
className="w80s intermediatecenterysls sortinxdirection font-14 xiaoshou xiaoshoums">多选题{'('}{multiple_questions_count}{')'}</p>
|
||
<p className="w20s intermediatecenterysls xaxisreverseorder"><i
|
||
className="iconfont icon-shanchu1 font-14 lg lh30 icondrawercolor " onClick={() => this.showQuestionModals("MULTIPLE")}></i></p>
|
||
</div>
|
||
}
|
||
{
|
||
judgement_questions_count === 0 ?
|
||
""
|
||
:
|
||
<div className="sortinxdirection" >
|
||
<p
|
||
className="w80s intermediatecenterysls sortinxdirection font-14 xiaoshou xiaoshoums">判断题{'('}{judgement_questions_count}{')'}</p>
|
||
<p className="w20s intermediatecenterysls xaxisreverseorder"><i
|
||
className="iconfont icon-shanchu1 font-14 lg lh30 icondrawercolor " onClick={() => this.showQuestionModals("JUDGMENT")}></i></p>
|
||
</div>
|
||
}
|
||
{
|
||
completion_questions_count === 0 ?
|
||
""
|
||
:
|
||
<div className="sortinxdirection" >
|
||
<p
|
||
className="w80s intermediatecenterysls sortinxdirection font-14 xiaoshou xiaoshoums">填空题{'('}{completion_questions_count}{')'}</p>
|
||
<p className="w20s intermediatecenterysls xaxisreverseorder"><i
|
||
className="iconfont icon-shanchu1 font-14 lg lh30 icondrawercolor " onClick={() => this.showQuestionModals("COMPLETION")}></i></p>
|
||
</div>
|
||
}
|
||
{
|
||
subjective_questions_count === 0 ?
|
||
""
|
||
:
|
||
<div className="sortinxdirection" >
|
||
<p
|
||
className="w80s intermediatecenterysls sortinxdirection font-14 xiaoshou xiaoshoums">简答题{'('}{subjective_questions_count}{')'}</p>
|
||
<p className="w20s intermediatecenterysls xaxisreverseorder"><i
|
||
className="iconfont icon-shanchu1 font-14 lg lh30 icondrawercolor " onClick={() => this.showQuestionModals("SUBJECTIVE")}></i></p>
|
||
</div>
|
||
}
|
||
{
|
||
practical_questions_count === 0 ?
|
||
""
|
||
:
|
||
<div className="sortinxdirection">
|
||
<p
|
||
className="w80s intermediatecenterysls sortinxdirection font-14 xiaoshou xiaoshoums">实训题{'('}{practical_questions_count}{')'}</p>
|
||
<p className="w20s intermediatecenterysls xaxisreverseorder"><i
|
||
className="iconfont icon-shanchu1 font-14 lg lh30 icondrawercolor "></i></p>
|
||
</div>
|
||
}
|
||
{
|
||
program_questions_count === 0 ?
|
||
""
|
||
:
|
||
<div className="sortinxdirection" >
|
||
<p
|
||
className="w80s intermediatecenterysls sortinxdirection font-14 xiaoshou xiaoshoums">编程题{'('}{program_questions_count}{')'}</p>
|
||
<p className="w20s intermediatecenterysls xaxisreverseorder"><i
|
||
className="iconfont icon-shanchu1 font-14 lg lh30 icondrawercolor " onClick={() => this.showQuestionModals("PROGRAM")}></i></p>
|
||
</div>
|
||
}
|
||
|
||
<div className="intermediatecenter verticallayout mt42">
|
||
|
||
<div className="drawerbutton xiaoshou" onClick={() => this.gotopaperreview()}>
|
||
试卷预览
|
||
</div>
|
||
</div>
|
||
</div>
|
||
:
|
||
<div className="drawernonedatadiv intermediatecenter">
|
||
<NoneData></NoneData>
|
||
</div>
|
||
}
|
||
|
||
|
||
</Drawer>
|
||
</div>
|
||
)
|
||
|
||
}
|
||
|
||
|
||
}
|
||
|
||
export default SnackbarHOC()(TPMIndexHOC(Question));
|