Commit 6e01f9ee by yuananting

fix:助学工具文件合并修改

parent 1ded60fc
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
import React, { Component } from "react"; import React, { Component } from "react";
import Breadcrumbs from "@/components/Breadcrumbs"; import Breadcrumbs from "@/components/Breadcrumbs";
import "./CourseCategoryManage.less"; import "./CourseCategoryManage.less";
import NewEditCourseCategoryModal from "../modal/NewEditCourseCategoryModal"; import OpearteCourseCategoryModal from "../modal/OpearteCourseCategoryModal";
import AidToolService from "@/domains/aid-tool-domain/AidToolService"; import AidToolService from "@/domains/aid-tool-domain/AidToolService";
import User from "@/common/js/user"; import User from "@/common/js/user";
import { import {
...@@ -30,7 +30,7 @@ class CourseCategoryManage extends Component { ...@@ -30,7 +30,7 @@ class CourseCategoryManage extends Component {
constructor(props) { constructor(props) {
super(props); super(props);
this.state = { this.state = {
newEditCourseCategoryModal: null, //新增或编辑分类模态框 operateCourseCategoryModal: null, //新增或编辑分类模态框
treeData: [], treeData: [],
originTreeData: [], originTreeData: [],
treeMap: {}, treeMap: {},
...@@ -297,7 +297,7 @@ class CourseCategoryManage extends Component { ...@@ -297,7 +297,7 @@ class CourseCategoryManage extends Component {
break; break;
} }
const m = ( const m = (
<NewEditCourseCategoryModal <OpearteCourseCategoryModal
node={node} node={node}
addLevelType={addLevelType} addLevelType={addLevelType}
type={type} type={type}
...@@ -306,12 +306,12 @@ class CourseCategoryManage extends Component { ...@@ -306,12 +306,12 @@ class CourseCategoryManage extends Component {
close={() => { close={() => {
this.queryCategoryTree("change", this.state.categoryName); this.queryCategoryTree("change", this.state.categoryName);
this.setState({ this.setState({
newEditCourseCategoryModal: null, operateCourseCategoryModal: null,
}); });
}} }}
/> />
); );
this.setState({ newEditCourseCategoryModal: m }); this.setState({ operateCourseCategoryModal: m });
}; };
// 删除分类 // 删除分类
...@@ -586,7 +586,7 @@ class CourseCategoryManage extends Component { ...@@ -586,7 +586,7 @@ class CourseCategoryManage extends Component {
expandedKeys, expandedKeys,
selectedKeys, selectedKeys,
autoExpandParent, autoExpandParent,
newEditCourseCategoryModal, operateCourseCategoryModal,
} = this.state; } = this.state;
return ( return (
<div className="page course-category-manage"> <div className="page course-category-manage">
...@@ -594,9 +594,7 @@ class CourseCategoryManage extends Component { ...@@ -594,9 +594,7 @@ class CourseCategoryManage extends Component {
<Breadcrumbs <Breadcrumbs
navList="课程分类" navList="课程分类"
goBack={() => goBack={() =>
window.RCHistory.push({ window.RCHistory.goBack()
pathname: "/question-bank-index",
})
} }
/> />
) : ( ) : (
...@@ -649,7 +647,7 @@ class CourseCategoryManage extends Component { ...@@ -649,7 +647,7 @@ class CourseCategoryManage extends Component {
></DirectoryTree> ></DirectoryTree>
</div> </div>
</div> </div>
{newEditCourseCategoryModal} {operateCourseCategoryModal}
</div> </div>
); );
} }
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* @Date: 2021-02-22 10:59:43 * @Date: 2021-02-22 10:59:43
* @LastEditors: yuananting * @LastEditors: yuananting
* @LastEditTime: 2021-04-01 14:15:23 * @LastEditTime: 2021-04-01 14:15:23
* @Description: 助学工具-课程分类侧边栏 * @Description: 助学工具-侧边课程分类树
* @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有 * @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/ */
import React, { Component } from "react"; import React, { Component } from "react";
......
import React, { useState, useRef, useEffect, useContext } from 'react' import React, { useState, useRef, useEffect, useContext } from 'react'
import { message, Modal } from 'antd'; import { message, Modal } from 'antd';
import { withRouter } from 'react-router-dom'; import { withRouter } from 'react-router-dom';
import ExaminationPaperContent from '../examination-paper/ExaminationPaperContent' import PaperContent from '../paper-manage/PaperContent'
import './AddExam.less'; import './AddExam.less';
import user from '@/common/js/user'; import user from '@/common/js/user';
...@@ -26,7 +26,7 @@ function SelectPaperModal(props: any) { ...@@ -26,7 +26,7 @@ function SelectPaperModal(props: any) {
} }
onCancel={() => { props.close() }} onCancel={() => { props.close() }}
> >
<ExaminationPaperContent paperId={item.paperId} onSelect={(item: any) => { setItem(item) }} type='modal-select'></ExaminationPaperContent> <PaperContent paperId={item.paperId} onSelect={(item: any) => { setItem(item) }} type='modal-select'></PaperContent>
</Modal > </Modal >
} }
......
...@@ -3,14 +3,13 @@ ...@@ -3,14 +3,13 @@
* @Date: 2021-03-27 14:55:14 * @Date: 2021-03-27 14:55:14
* @LastEditors: yuananting * @LastEditors: yuananting
* @LastEditTime: 2021-04-01 14:00:47 * @LastEditTime: 2021-04-01 14:00:47
* @Description: 助学工具-试卷主页面 * @Description: 助学工具-试卷
* @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有 * @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/ */
import React, { Component } from "react"; import React, { Component } from "react";
import "./ExaminationPaperIndex.less"; import PaperContent from "./PaperContent";
import ExaminationPaperContent from "./ExaminationPaperContent";
class ExaminationPaperIndex extends Component { class PaperIndex extends Component {
constructor(props) { constructor(props) {
super(props); super(props);
this.state = {}; this.state = {};
...@@ -19,14 +18,14 @@ class ExaminationPaperIndex extends Component { ...@@ -19,14 +18,14 @@ class ExaminationPaperIndex extends Component {
render() { render() {
return ( return (
<div className="examination-paper-index page"> <div className="paper-manage-index page">
<div className="content-header">试卷</div> <div className="content-header">试卷</div>
<div className="box content-body"> <div className="box content-body">
<ExaminationPaperContent type=''></ExaminationPaperContent> <PaperContent type=''></PaperContent>
</div> </div>
</div> </div>
); );
} }
} }
export default ExaminationPaperIndex; export default PaperIndex;
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* @Date: 2021-03-27 16:15:13 * @Date: 2021-03-27 16:15:13
* @LastEditors: yuananting * @LastEditors: yuananting
* @LastEditTime: 2021-04-02 17:23:23 * @LastEditTime: 2021-04-02 17:23:23
* @Description: 助学工具-新建试卷 * @Description: 助学工具-新建/复制/编辑试卷
* @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有 * @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/ */
import React, { Component } from "react"; import React, { Component } from "react";
...@@ -17,12 +17,14 @@ import { ...@@ -17,12 +17,14 @@ import {
Empty, Empty,
Tooltip, Tooltip,
message, message,
Modal,
} from "antd"; } from "antd";
import { PlusOutlined } from "@ant-design/icons"; import { PlusOutlined } from "@ant-design/icons";
import ShowTips from "@/components/ShowTips"; import ShowTips from "@/components/ShowTips";
import Breadcrumbs from "@/components/Breadcrumbs"; import Breadcrumbs from "@/components/Breadcrumbs";
import "./NewExaminationPaper.less"; import "./OperatePaper.less";
import SelectQuestionModal from "./modal/SelectQuestionModal"; import SelectQuestionModal from "./modal/SelectQuestionModal";
import PaperPreviewModal from "./modal/PreviewPaperModal";
import User from "@/common/js/user"; import User from "@/common/js/user";
import AidToolService from "@/domains/aid-tool-domain/AidToolService"; import AidToolService from "@/domains/aid-tool-domain/AidToolService";
...@@ -33,7 +35,7 @@ const questionTypeEnum = { ...@@ -33,7 +35,7 @@ const questionTypeEnum = {
GAP_FILLING: "填空题", GAP_FILLING: "填空题",
INDEFINITE_CHOICE: "不定项选择题", INDEFINITE_CHOICE: "不定项选择题",
}; };
class NewExaminationPaper extends Component { class OperatePaper extends Component {
formRef = React.createRef(); formRef = React.createRef();
constructor(props) { constructor(props) {
super(props); super(props);
...@@ -61,22 +63,49 @@ class NewExaminationPaper extends Component { ...@@ -61,22 +63,49 @@ class NewExaminationPaper extends Component {
userId: User.getStoreUserId(), userId: User.getStoreUserId(),
}, },
selectQuestionModal: null, selectQuestionModal: null,
paperPreviewModal: null,
selectQuestionList: [], selectQuestionList: [],
currentOperate: "",
currentNav: "",
currentCategoryPapers: [],
}; };
} }
componentDidMount() { componentDidMount() {
if (getParameterByName("paperId")) { this.queryCurrentCategoryPapers();
// 编辑 switch (getParameterByName("type")) {
this.setState({ currentOperate: "edit" }); case "new":
this.queryPaperDetail(); this.setState({ currentOperate: "new", currentNav: "新建试卷" });
} else { break;
this.setState({ currentOperate: "new" }); case "edit":
this.setState({ currentOperate: "edit", currentNav: "编辑试卷" }, () => this.queryPaperDetail());
break;
case "copy":
this.setState({ currentOperate: "copy", currentNav: "复制试卷" }, () => this.queryPaperDetail());
break;
} }
} }
// 编辑试卷时获取相应试卷详情 // 获取当前分类下的所有试卷
queryCurrentCategoryPapers = () => {
let params = {
current: 1,
size: 9999,
categoryId: getParameterByName("categoryId"), // 当前题库分类Id
paperName: null, // 试卷名称
source: 0,
tenantId: User.getStoreId(),
userId: User.getStoreUserId(),
}
AidToolService.queryPaperPageList(params).then((res) => {
const { records = [] } = res.result;
this.setState({ currentCategoryPapers: records })
});
};
// 编辑/复制试卷时获取相应试卷详情
queryPaperDetail = () => { queryPaperDetail = () => {
const { currentOperate, formData } = this.state;
let query = { let query = {
categoryId: getParameterByName("categoryId"), categoryId: getParameterByName("categoryId"),
paperId: getParameterByName("paperId"), paperId: getParameterByName("paperId"),
...@@ -88,21 +117,23 @@ class NewExaminationPaper extends Component { ...@@ -88,21 +117,23 @@ class NewExaminationPaper extends Component {
const { result } = res; const { result } = res;
const { paperName, passRate } = result; const { paperName, passRate } = result;
this.setState( this.setState(
{ selectQuestionList: result.questionList, formData: result }, {
selectQuestionList: result.questionList.sort((a, b) => b.updateTime - a.updateTime), formData: {
...result,
paperName: currentOperate === "copy" ? paperName + "(复制)" : paperName,
}
},
() => { () => {
this.formRef.current.setFieldsValue({ this.formRef.current.setFieldsValue({
paperName, paperName: this.state.formData.paperName,
passRate, passRate,
}); });
this.setFormData([]); this.setFormData(result.questionList);
} }
); );
}); });
}; };
// 校验试卷名称是否重名
checkExistPaperName = (paperName) => {};
// 自定义表格空状态 // 自定义表格空状态
customizeRenderEmpty = () => { customizeRenderEmpty = () => {
return ( return (
...@@ -111,15 +142,14 @@ class NewExaminationPaper extends Component { ...@@ -111,15 +142,14 @@ class NewExaminationPaper extends Component {
imageStyle={{ imageStyle={{
height: 100, height: 100,
}} }}
description={"请在右上角选择出题方式添加题"} description={"请在左上角添加题目"}
></Empty> ></Empty>
); );
}; };
setFormData = (list) => { setFormData = (list) => {
const { formData, selectQuestionList } = this.state; const { formData } = this.state;
const _selectQuestionList = [...new Set([...selectQuestionList, ...list])]; const _selectQuestionList = [...list];
console.log(_selectQuestionList)
// 各类型题目汇总 // 各类型题目汇总
const singleQuestion = _.filter( const singleQuestion = _.filter(
...@@ -191,7 +221,7 @@ class NewExaminationPaper extends Component { ...@@ -191,7 +221,7 @@ class NewExaminationPaper extends Component {
<SelectQuestionModal <SelectQuestionModal
getSelectedQuestion={this.state.selectQuestionList} getSelectedQuestion={this.state.selectQuestionList}
setSelectedQuestion={(list) => { setSelectedQuestion={(list) => {
this.setFormData(list); this.setFormData(list.sort((a, b) => b.updateTime - a.updateTime));
this.setState({ selectQuestionModal: null }); this.setState({ selectQuestionModal: null });
}} }}
close={() => { close={() => {
...@@ -210,7 +240,7 @@ class NewExaminationPaper extends Component { ...@@ -210,7 +240,7 @@ class NewExaminationPaper extends Component {
const item = selectQuestionList.splice(index + moveLength, 1); const item = selectQuestionList.splice(index + moveLength, 1);
selectQuestionList.splice(index, 0, item[0]); selectQuestionList.splice(index, 0, item[0]);
this.setState({ selectQuestionList }, () => this.setState({ selectQuestionList }, () =>
this.setFormData([]) this.setFormData(this.state.selectQuestionList)
); );
}; };
...@@ -223,12 +253,33 @@ class NewExaminationPaper extends Component { ...@@ -223,12 +253,33 @@ class NewExaminationPaper extends Component {
(item) => item.questionId !== delQuestionId (item) => item.questionId !== delQuestionId
), ),
}, },
() => this.setFormData([]) () => this.setFormData(this.state.selectQuestionList)
); );
}; };
// 保存题目 // 校验试卷名称是否存在
saveExaminationPaper = async () => { checkExist = (paperName) => {
const { currentCategoryPapers, currentOperate } = this.state;
var result = null;
currentCategoryPapers.forEach((item) => {
if (result != null) {
return result;
}
if (["new", "copy"].includes(currentOperate)) {
if (item.paperName === paperName) {
result = item;
}
} else if (currentOperate === "edit") {
if (item.paperName === paperName && item.paperId !== getParameterByName("paperId")) {
result = item;
}
}
});
return result;
}
// 保存试卷
savePaper = async () => {
try { try {
await this.formRef.current.validateFields(); await this.formRef.current.validateFields();
const { selectQuestionList, formData, currentOperate } = this.state; const { selectQuestionList, formData, currentOperate } = this.state;
...@@ -251,28 +302,24 @@ class NewExaminationPaper extends Component { ...@@ -251,28 +302,24 @@ class NewExaminationPaper extends Component {
}, },
}, },
() => { () => {
if (currentOperate === "edit") { if (["new", "copy"].includes(currentOperate)) {
AidToolService.editPaper({ AidToolService.createPaper(this.state.formData).then((res) => {
...this.state.formData,
paperId: getParameterByName("paperId"),
}).then((res) => {
if (res.success) { if (res.success) {
message.success("编辑成功"); message.success(currentOperate === "new" ? "新建成功" : "复制成功");
window.RCHistory.push({ window.RCHistory.push({
pathname: `/examination-paper-index?categoryId=${getParameterByName( pathname: `/paper-manage-index?categoryId=${getParameterByName("categoryId")}`,
"categoryId"
)}`,
}); });
} }
}); });
} else if (currentOperate === "new") { } else if (currentOperate === "edit") {
AidToolService.createPaper(this.state.formData).then((res) => { AidToolService.editPaper({
...this.state.formData,
paperId: getParameterByName("paperId"),
}).then((res) => {
if (res.success) { if (res.success) {
message.success("新建成功"); message.success("编辑成功");
window.RCHistory.push({ window.RCHistory.push({
pathname: `/examination-paper-index?categoryId=${getParameterByName( pathname: `/paper-manage-index?categoryId=${getParameterByName("categoryId")}`,
"categoryId"
)}`,
}); });
} }
}); });
...@@ -284,6 +331,45 @@ class NewExaminationPaper extends Component { ...@@ -284,6 +331,45 @@ class NewExaminationPaper extends Component {
} }
}; };
// 预览试卷
previewPaper = () => {
const { selectQuestionList, formData } = this.state;
selectQuestionList.map((item, index) => {
item.sort = index
return item
})
const m = (
<PaperPreviewModal
previewPage="paper-operate"
paperInfo={{ ...formData, questionList: selectQuestionList }}
close={() => {
this.setState({
paperPreviewModal: null,
});
}}
/>
);
this.setState({ paperPreviewModal: m });
}
// 取消/返回
handleGoBack = () => {
Modal.confirm({
title: "确定要返回吗?",
content: "返回后,本次编辑的内容将不被保存",
okText: "确认返回",
cancelText: "留在本页",
icon: (
<span className="icon iconfont default-confirm-icon">&#xe6f4;</span>
),
onOk: () => {
window.RCHistory.push({
pathname: `/paper-manage-index?categoryId=${getParameterByName("categoryId")}`,
});
},
});
};
// 表头设置 // 表头设置
parseColumns = () => { parseColumns = () => {
const { selectQuestionList } = this.state; const { selectQuestionList } = this.state;
...@@ -375,7 +461,7 @@ class NewExaminationPaper extends Component { ...@@ -375,7 +461,7 @@ class NewExaminationPaper extends Component {
: item : item
), ),
}, },
() => this.setFormData([]) () => this.setFormData(this.state.selectQuestionList)
); );
}} }}
/> />
...@@ -410,7 +496,7 @@ class NewExaminationPaper extends Component { ...@@ -410,7 +496,7 @@ class NewExaminationPaper extends Component {
: item : item
), ),
}, },
() => this.setFormData([]) () => this.setFormData(this.state.selectQuestionList)
); );
}} }}
/> />
...@@ -471,8 +557,7 @@ class NewExaminationPaper extends Component { ...@@ -471,8 +557,7 @@ class NewExaminationPaper extends Component {
labelCol: { span: 2 }, labelCol: { span: 2 },
wrapperCol: { span: 22 }, wrapperCol: { span: 22 },
}; };
const { selectQuestionModal, paperPreviewModal, selectQuestionList, currentNav, formData } = this.state;
const { selectQuestionModal, selectQuestionList, formData } = this.state;
const { const {
singleChoiceCnt, singleChoiceCnt,
multiChoiceCnt, multiChoiceCnt,
...@@ -490,10 +575,11 @@ class NewExaminationPaper extends Component { ...@@ -490,10 +575,11 @@ class NewExaminationPaper extends Component {
questionCnt, questionCnt,
totalScore, totalScore,
} = formData; } = formData;
const _that = this;
return ( return (
<div className="page new-examination-paper"> <div className="page operate-paper-page">
<Breadcrumbs navList={"新建试卷"} goBack={() => this.handleGoBack()} /> <Breadcrumbs navList={currentNav} goBack={() => this.handleGoBack()} />
<div className="box"> <div className="box">
<div className="show-tips"> <div className="show-tips">
<ShowTips message="请遵守国家相关规定,切勿上传低俗色情、暴力恐怖、谣言诈骗、侵权盗版等相关内容,小麦企培保有依据国家规定及平台规则进行处理的权利" /> <ShowTips message="请遵守国家相关规定,切勿上传低俗色情、暴力恐怖、谣言诈骗、侵权盗版等相关内容,小麦企培保有依据国家规定及平台规则进行处理的权利" />
...@@ -512,15 +598,15 @@ class NewExaminationPaper extends Component { ...@@ -512,15 +598,15 @@ class NewExaminationPaper extends Component {
required: true, required: true,
message: "请输入试卷名称", message: "请输入试卷名称",
}, },
// ({ getFieldValue }) => ({ ({ getFieldValue }) => ({
// validator(_, value) { validator(_, value) {
// if (_that.checkExistPaperName( value)) { if (_that.checkExist(value)) {
// return Promise.reject("该试卷名称已存在"); return Promise.reject("该试卷名称已存在");
// } else { } else {
// return Promise.resolve(); return Promise.resolve();
// } }
// }, },
// }), }),
]} ]}
> >
<Input <Input
...@@ -569,7 +655,7 @@ class NewExaminationPaper extends Component { ...@@ -569,7 +655,7 @@ class NewExaminationPaper extends Component {
passRate: value, passRate: value,
}, },
}, },
() => this.setFormData([]) () => this.setFormData(selectQuestionList)
); );
}} }}
/> />
...@@ -608,16 +694,17 @@ class NewExaminationPaper extends Component { ...@@ -608,16 +694,17 @@ class NewExaminationPaper extends Component {
</Form> </Form>
</div> </div>
<div className="footer"> <div className="footer">
<Button>取消</Button> <Button onClick={this.handleGoBack}>取消</Button>
<Button>预览</Button> <Button onClick={this.previewPaper}>预览</Button>
<Button type="primary" onClick={() => this.saveExaminationPaper()}> <Button type="primary" onClick={this.savePaper}>
保存 保存
</Button> </Button>
</div> </div>
{selectQuestionModal} {selectQuestionModal}
{paperPreviewModal}
</div> </div>
); );
} }
} }
export default NewExaminationPaper; export default OperatePaper;
/* .operate-paper-page {
* @Author: yuananting
* @Date: 2021-02-25 13:52:01
* @LastEditors: yuananting
* @LastEditTime: 2021-03-31 16:06:32
* @Description: 助学工具-新建试卷
* @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/
.new-examination-paper {
position: relative !important; position: relative !important;
.box { .box {
margin-bottom: 66px !important; margin-bottom: 66px !important;
......
...@@ -7,11 +7,11 @@ ...@@ -7,11 +7,11 @@
* @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有 * @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/ */
import React, { Component } from "react"; import React, { Component } from "react";
import "./ExaminationPaperIndex.less"; import "./PaperContent.less"
import CourseCategorySiderTree from "../components/CourseCategorySiderTree"; import CourseCategorySiderTree from "../components/CourseCategorySiderTree";
import ExaminationPaperContent from "./components/ExaminationPaperContent"; import PaperList from "./components/PaperList";
class ExaminationPaperIndex extends Component { class PaperContent extends Component {
constructor(props) { constructor(props) {
super(props); super(props);
this.state = {}; this.state = {};
...@@ -29,7 +29,7 @@ class ExaminationPaperIndex extends Component { ...@@ -29,7 +29,7 @@ class ExaminationPaperIndex extends Component {
render() { render() {
return ( return (
<div className='examination-paper-content'> <div className='paper-content-page'>
<div <div
style={{ borderRight: "0.5px solid #EEEEEE", paddingRight: "4px" }} style={{ borderRight: "0.5px solid #EEEEEE", paddingRight: "4px" }}
> >
...@@ -44,7 +44,7 @@ class ExaminationPaperIndex extends Component { ...@@ -44,7 +44,7 @@ class ExaminationPaperIndex extends Component {
</div> </div>
</div> </div>
<div className="content"> <div className="content">
<ExaminationPaperContent <PaperList
paperId={this.props.paperId} paperId={this.props.paperId}
onSelect={this.props.onSelect} onSelect={this.props.onSelect}
type={this.props.type} type={this.props.type}
...@@ -53,10 +53,8 @@ class ExaminationPaperIndex extends Component { ...@@ -53,10 +53,8 @@ class ExaminationPaperIndex extends Component {
/> />
</div> </div>
</div> </div>
); );
} }
} }
export default ExaminationPaperIndex; export default PaperContent;
.paper-content-page {
.examination-paper-content{
display: flex; display: flex;
.site-layout-background {
background: #fff;
}
.sider { .sider {
min-width: 244px; min-width: 244px;
} }
...@@ -12,4 +8,4 @@ ...@@ -12,4 +8,4 @@
margin-left: 24px; margin-left: 24px;
height: calc(100vh - 160px); height: calc(100vh - 160px);
} }
} }
\ No newline at end of file
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* @Date: 2021-02-25 11:23:47 * @Date: 2021-02-25 11:23:47
* @LastEditors: yuananting * @LastEditors: yuananting
* @LastEditTime: 2021-04-01 15:06:37 * @LastEditTime: 2021-04-01 15:06:37
* @Description: 助学工具-题库-题目管理主页面列表数据 * @Description: 助学工具-题库-试卷列表数据
* @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有 * @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/ */
import React, { Component } from "react"; import React, { Component } from "react";
...@@ -17,17 +17,19 @@ import { ...@@ -17,17 +17,19 @@ import {
Button, Button,
Modal, Modal,
message, message,
ConfigProvider,
Empty,
} from "antd"; } from "antd";
import { PageControl } from "@/components"; import { PageControl } from "@/components";
import "./ExaminationPaperContent.less"; import "./PaperList.less";
import User from "@/common/js/user"; import User from "@/common/js/user";
import AidToolService from "@/domains/aid-tool-domain/AidToolService"; import AidToolService from "@/domains/aid-tool-domain/AidToolService";
import _ from "underscore"; import _ from "underscore";
import PaperPreviewModal from "../modal/PaperPreviewModal"; import PaperPreviewModal from "../modal/PreviewPaperModal";
const { Search } = Input; const { Search } = Input;
class ExaminationPaperContent extends Component { class PaperList extends Component {
constructor(props) { constructor(props) {
super(props); super(props);
this.state = { this.state = {
...@@ -74,6 +76,7 @@ class ExaminationPaperContent extends Component { ...@@ -74,6 +76,7 @@ class ExaminationPaperContent extends Component {
previewPaper = (record) => { previewPaper = (record) => {
const m = ( const m = (
<PaperPreviewModal <PaperPreviewModal
previewPage="paper-list"
categoryId={this.state.query.categoryId} categoryId={this.state.query.categoryId}
paperId={record.paperId} paperId={record.paperId}
close={() => { close={() => {
...@@ -87,13 +90,18 @@ class ExaminationPaperContent extends Component { ...@@ -87,13 +90,18 @@ class ExaminationPaperContent extends Component {
}; };
// 复制试卷 // 复制试卷
copyPaper = (record) => { }; copyPaper = (record) => {
const { categoryId } = this.state.query;
window.RCHistory.push({
pathname: `/paper-operate-page?type=copy&paperId=${record.paperId}&categoryId=${categoryId}`,
});
};
// 编辑试卷 // 编辑试卷
editPaper = (record) => { editPaper = (record) => {
const { categoryId } = this.state.query; const { categoryId } = this.state.query;
window.RCHistory.push({ window.RCHistory.push({
pathname: `/new-examination-paper?paperId=${record.paperId}&categoryId=${categoryId}`, pathname: `/paper-operate-page/operate?type=edit&paperId=${record.paperId}&categoryId=${categoryId}`,
}); });
}; };
...@@ -133,6 +141,19 @@ class ExaminationPaperContent extends Component { ...@@ -133,6 +141,19 @@ class ExaminationPaperContent extends Component {
}); });
} }
// 自定义表格空状态
customizeRenderEmpty = () => {
return (
<Empty
image="https://image.xiaomaiketang.com/xm/emptyTable.png"
imageStyle={{
height: 100,
}}
description={"还没有试卷"}
></Empty>
);
};
// 表头设置 // 表头设置
parseColumns = () => { parseColumns = () => {
const columns = [ const columns = [
...@@ -207,9 +228,7 @@ class ExaminationPaperContent extends Component { ...@@ -207,9 +228,7 @@ class ExaminationPaperContent extends Component {
<span className="record-operate__item split"> | </span> <span className="record-operate__item split"> | </span>
<div <div
className="record-operate__item" className="record-operate__item"
onClick={() => onClick={() => this.copyPaper(record)}
this.toEditQuetion(record.id, record.questionTypeEnum)
}
> >
复制 复制
</div> </div>
...@@ -250,7 +269,6 @@ class ExaminationPaperContent extends Component { ...@@ -250,7 +269,6 @@ class ExaminationPaperContent extends Component {
}; };
onSelectChange = (selectedRowKeys, selectedRows) => { onSelectChange = (selectedRowKeys, selectedRows) => {
console.log(selectedRowKeys, selectedRows)
this.setState({ this.setState({
selectedRowKeys selectedRowKeys
}) })
...@@ -268,8 +286,8 @@ class ExaminationPaperContent extends Component { ...@@ -268,8 +286,8 @@ class ExaminationPaperContent extends Component {
}; };
return ( return (
<div className={"question-manage-content " + this.props.type}> <div className={"paper-list " + this.props.type}>
<div className="question-manage-filter"> <div className="paper-list-filter">
<Row type="flex" justify="space-between" align="top"> <Row type="flex" justify="space-between" align="top">
<div className="search-condition"> <div className="search-condition">
<div className="search-condition__item"> <div className="search-condition__item">
...@@ -301,7 +319,7 @@ class ExaminationPaperContent extends Component { ...@@ -301,7 +319,7 @@ class ExaminationPaperContent extends Component {
type="primary" type="primary"
onClick={() => { onClick={() => {
window.RCHistory.push({ window.RCHistory.push({
pathname: `/new-examination-paper?categoryId=${categoryId}`, pathname: `/paper-operate-page?type=new&categoryId=${categoryId}`,
}); });
}} }}
> >
...@@ -309,28 +327,30 @@ class ExaminationPaperContent extends Component { ...@@ -309,28 +327,30 @@ class ExaminationPaperContent extends Component {
</Button> </Button>
} }
<div className="question-manage-list"> <div className="paper-list-content">
{(this.props.type !== 'modal-select') ? < Table <ConfigProvider renderEmpty={this.customizeRenderEmpty}>
rowKey={(record) => record.id} {(this.props.type !== 'modal-select') ? < Table
dataSource={dataSource}
columns={this.parseColumns()}
pagination={false}
bordered
onChange={this.handleChangeTable}
/> :
<Table
rowKey={(record) => record.id} rowKey={(record) => record.id}
dataSource={dataSource} dataSource={dataSource}
rowKey={(item) => {
return item.paperId
}}
rowSelection={rowSelection}
columns={this.parseColumns()} columns={this.parseColumns()}
pagination={false} pagination={false}
bordered bordered
onChange={this.handleChangeTable} onChange={this.handleChangeTable}
/> /> :
} <Table
rowKey={(record) => record.id}
dataSource={dataSource}
rowKey={(item) => {
return item.paperId
}}
rowSelection={rowSelection}
columns={this.parseColumns()}
pagination={false}
bordered
onChange={this.handleChangeTable}
/>
}
</ConfigProvider>
{total > 0 && ( {total > 0 && (
<div className="box-footer"> <div className="box-footer">
...@@ -356,4 +376,4 @@ class ExaminationPaperContent extends Component { ...@@ -356,4 +376,4 @@ class ExaminationPaperContent extends Component {
} }
} }
export default ExaminationPaperContent; export default PaperList;
\ No newline at end of file
/* .paper-list {
* @Author: yuananting .paper-list-filter {
* @Date: 2021-02-25 11:26:28
* @LastEditors: yuananting
* @LastEditTime: 2021-03-25 14:32:01
* @Description: 助学工具-题库-题目管理右侧内容样式
* @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/
.question-manage-content {
.question-manage-filter {
position: relative; position: relative;
.search-condition { .search-condition {
...@@ -51,7 +42,7 @@ ...@@ -51,7 +42,7 @@
.data-icon { .data-icon {
cursor: pointer; cursor: pointer;
} }
.question-manage-list { .paper-list-content {
position: relative; position: relative;
margin-top: 16px; margin-top: 16px;
.empty-list-tip { .empty-list-tip {
......
...@@ -15,17 +15,13 @@ import { ...@@ -15,17 +15,13 @@ import {
Input, Input,
Select, Select,
Tooltip, Tooltip,
Space,
Button,
Modal,
message, message,
} from "antd"; } from "antd";
import { PageControl } from "@/components"; import { PageControl } from "@/components";
import "./SelectQuestionContent.less"; import "./SelectQuestionList.less";
import User from "@/common/js/user"; import User from "@/common/js/user";
import AidToolService from "@/domains/aid-tool-domain/AidToolService"; import AidToolService from "@/domains/aid-tool-domain/AidToolService";
import _ from "underscore"; import _ from "underscore";
import ShowTips from "@/components/ShowTips";
const { Search } = Input; const { Search } = Input;
...@@ -60,7 +56,7 @@ const questionTypeList = [ ...@@ -60,7 +56,7 @@ const questionTypeList = [
}, },
]; ];
class QuestionListContent extends Component { class SelectQuestionList extends Component {
constructor(props) { constructor(props) {
super(props); super(props);
this.state = { this.state = {
...@@ -104,12 +100,6 @@ class QuestionListContent extends Component { ...@@ -104,12 +100,6 @@ class QuestionListContent extends Component {
}); });
}; };
handleCreateQuestionBank = () => {
window.RCHistory.push({
pathname: `/create-new-question?categoryId=${this.state.query.categoryId}`,
});
};
// 清空搜索条件 // 清空搜索条件
handleReset = () => { handleReset = () => {
const _query = { const _query = {
...@@ -298,7 +288,7 @@ class QuestionListContent extends Component { ...@@ -298,7 +288,7 @@ class QuestionListContent extends Component {
(item) => item.questionTypeEnum === "INDEFINITE_CHOICE" (item) => item.questionTypeEnum === "INDEFINITE_CHOICE"
).length; ).length;
return ( return (
<div className="select-question-content"> <div className="select-question-list">
<div className="select-question-filter"> <div className="select-question-filter">
<Row type="flex" justify="space-between" align="top"> <Row type="flex" justify="space-between" align="top">
<div className="search-condition"> <div className="search-condition">
...@@ -380,7 +370,7 @@ class QuestionListContent extends Component { ...@@ -380,7 +370,7 @@ class QuestionListContent extends Component {
<span className="clear-btn" onClick={() => this.setState({selectQuestionKeys:[]})}>清空</span> <span className="clear-btn" onClick={() => this.setState({selectQuestionKeys:[]})}>清空</span>
)} )}
</div> </div>
<div className="question-manage-list"> <div className="select-question-content">
<ConfigProvider renderEmpty={this.customizeRenderEmpty}> <ConfigProvider renderEmpty={this.customizeRenderEmpty}>
<Table <Table
rowSelection={rowSelection} rowSelection={rowSelection}
...@@ -412,4 +402,4 @@ class QuestionListContent extends Component { ...@@ -412,4 +402,4 @@ class QuestionListContent extends Component {
} }
} }
export default QuestionListContent; export default SelectQuestionList;
/* .select-question-list {
* @Author: yuananting
* @Date: 2021-02-25 11:26:28
* @LastEditors: yuananting
* @LastEditTime: 2021-03-30 18:34:50
* @Description: 助学工具-题库-题目管理右侧内容样式
* @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/
.select-question-content {
.select-question-filter { .select-question-filter {
position: relative; position: relative;
.search-condition { .search-condition {
...@@ -49,7 +41,7 @@ ...@@ -49,7 +41,7 @@
.data-icon { .data-icon {
cursor: pointer; cursor: pointer;
} }
.question-manage-list { .select-question-content {
position: relative; position: relative;
margin-top: 16px; margin-top: 16px;
.empty-list-tip { .empty-list-tip {
......
...@@ -10,7 +10,7 @@ import React, { Component } from "react"; ...@@ -10,7 +10,7 @@ import React, { Component } from "react";
import { Modal } from "antd"; import { Modal } from "antd";
import User from "@/common/js/user"; import User from "@/common/js/user";
import AidToolService from "@/domains/aid-tool-domain/AidToolService"; import AidToolService from "@/domains/aid-tool-domain/AidToolService";
import "./PaperPreviewModal.less"; import "./PreviewPaperModal.less";
import ScanFileModal from "@/modules/resource-disk/modal/ScanFileModal"; import ScanFileModal from "@/modules/resource-disk/modal/ScanFileModal";
import _ from "underscore"; import _ from "underscore";
import XMAudio from "../../components/XMAudio"; import XMAudio from "../../components/XMAudio";
...@@ -23,20 +23,22 @@ const questionTypeList = { ...@@ -23,20 +23,22 @@ const questionTypeList = {
INDEFINITE_CHOICE: "不定项选择题", INDEFINITE_CHOICE: "不定项选择题",
}; };
class PaperPreviewModal extends Component { class PreviewPaperModal extends Component {
formRef = React.createRef(); formRef = React.createRef();
constructor(props) { constructor(props) {
super(props); super(props);
this.state = { this.state = {
paperInfo: { paperInfo: {},
paperName: null,
questionList: [],
},
}; };
} }
componentDidMount() { componentDidMount() {
this.queryPaperDetail(); const { previewPage, paperInfo } = this.props;
if (previewPage === "paper-list") {
this.queryPaperDetail();
} else if (previewPage === "paper-operate") {
this.setState({ paperInfo });
}
} }
// 题目预览 // 题目预览
...@@ -144,32 +146,30 @@ class PaperPreviewModal extends Component { ...@@ -144,32 +146,30 @@ class PaperPreviewModal extends Component {
renderAnswer = (optionList, gapFillingAnswerList, questionType) => { renderAnswer = (optionList, gapFillingAnswerList, questionType) => {
if (questionType === "GAP_FILLING") { if (questionType === "GAP_FILLING") {
{ {
_.map(gapFillingAnswerList, (gapItem, gapIndex) => { return (
const { correctAnswerList } = gapItem; <div className="answer-line__item">
return ( <span>正确答案</span>
<div> {_.map(gapFillingAnswerList, (gapItem, gapIndex) => {
<span>【填空{gapIndex + 1}</span> const { correctAnswerList } = gapItem;
{_.map(correctAnswerList, (answerItem) => { return (
return <span>{answerItem}</span>; <div className="gap-list">
})} <span>【填空{gapIndex + 1}</span>
</div> {_.map(correctAnswerList, (answerItem) => {
); return <span>{answerItem}</span>;
}); })}
</div>
);
})}
</div>
)
} }
} else { } else {
const correctAnswerOption = _.filter( const correctAnswerOption = _.filter(optionList, (item) => item.isCorrectAnswer === 1);
optionList, const correctOptionSort = correctAnswerOption.map((item) => { return NUM_TO_WORD_MAP[item.optionSort] });
(item) => item.isCorrectAnswer === 1
);
const correctOptionSort =
correctAnswerOption.length > 0 &&
correctAnswerOption.map((item) => {
return NUM_TO_WORD_MAP[item.optionSort];
});
return ( return (
<div className="answer-line__item"> <div className="answer-line__item">
<span>正确答案</span> <span>正确答案</span>
{/* <span>【{correctOptionSort.join("、")}】</span> */} <span>{correctOptionSort.length > 0 && correctOptionSort.join("、")}</span>
</div> </div>
); );
} }
...@@ -247,7 +247,7 @@ class PaperPreviewModal extends Component { ...@@ -247,7 +247,7 @@ class PaperPreviewModal extends Component {
> >
<h2 style={{ textAlign: "center" }}>{paperName}</h2> <h2 style={{ textAlign: "center" }}>{paperName}</h2>
<div className="question-list-box"> <div className="question-list-box">
{questionList.map((questionItem, questionIndex) => { {_.map(questionList, (questionItem, questionIndex) => {
const { const {
questionStemList, questionStemList,
optionList, optionList,
...@@ -255,7 +255,6 @@ class PaperPreviewModal extends Component { ...@@ -255,7 +255,6 @@ class PaperPreviewModal extends Component {
questionType, questionType,
score, score,
} = questionItem; } = questionItem;
console.log(optionList);
return ( return (
<div className="question-info-item"> <div className="question-info-item">
{this.renderStem( {this.renderStem(
...@@ -281,4 +280,4 @@ class PaperPreviewModal extends Component { ...@@ -281,4 +280,4 @@ class PaperPreviewModal extends Component {
); );
} }
} }
export default PaperPreviewModal; export default PreviewPaperModal;
...@@ -3,13 +3,13 @@ ...@@ -3,13 +3,13 @@
* @Date: 2021-03-29 10:52:26 * @Date: 2021-03-29 10:52:26
* @LastEditors: yuananting * @LastEditors: yuananting
* @LastEditTime: 2021-04-02 19:41:26 * @LastEditTime: 2021-04-02 19:41:26
* @Description: 助学工具-新建试卷-选择题目弹窗 * @Description: 助学工具-试卷-新建选择题目弹窗
* @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有 * @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/ */
import React, { Component } from "react"; import React, { Component } from "react";
import { Modal } from "antd"; import { Modal } from "antd";
import CourseCategorySiderTree from "../../components/CourseCategorySiderTree"; import CourseCategorySiderTree from "../../components/CourseCategorySiderTree";
import SelectQuestionContent from "../components/SelectQuestionContent"; import SelectQuestionList from "../components/SelectQuestionList";
import "./SelectQuestionModal.less"; import "./SelectQuestionModal.less";
class SelectQuestionModal extends Component { class SelectQuestionModal extends Component {
...@@ -76,7 +76,7 @@ class SelectQuestionModal extends Component { ...@@ -76,7 +76,7 @@ class SelectQuestionModal extends Component {
</div> </div>
</div> </div>
<div className="content"> <div className="content">
<SelectQuestionContent <SelectQuestionList
ref={this.listRef} ref={this.listRef}
selectedCategoryId={this.state.selectedCategoryId} selectedCategoryId={this.state.selectedCategoryId}
/> />
......
...@@ -3,15 +3,15 @@ ...@@ -3,15 +3,15 @@
* @Date: 2021-02-21 17:51:01 * @Date: 2021-02-21 17:51:01
* @LastEditors: yuananting * @LastEditors: yuananting
* @LastEditTime: 2021-04-01 14:10:41 * @LastEditTime: 2021-04-01 14:10:41
* @Description: 助学工具-题库-题库主页面 * @Description: 助学工具-题库
* @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有 * @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/ */
import React, { Component } from "react"; import React, { Component } from "react";
import "./QuestionBankIndex.less"; import "./Index.less";
import CourseCategorySiderTree from "../components/CourseCategorySiderTree"; import CourseCategorySiderTree from "../components/CourseCategorySiderTree";
import QuestionManageContent from "./components/QuestionManageContent"; import QuestionList from "./components/QuestionList";
class QuestionBankIndex extends Component { class QuestionIndex extends Component {
constructor(props) { constructor(props) {
super(props); super(props);
this.state = {}; this.state = {};
...@@ -29,7 +29,7 @@ class QuestionBankIndex extends Component { ...@@ -29,7 +29,7 @@ class QuestionBankIndex extends Component {
render() { render() {
return ( return (
<div className="question-bank-index page"> <div className="question-manage-index page">
<div className="content-header">题目</div> <div className="content-header">题目</div>
<div className="box content-body"> <div className="box content-body">
<div <div
...@@ -45,7 +45,7 @@ class QuestionBankIndex extends Component { ...@@ -45,7 +45,7 @@ class QuestionBankIndex extends Component {
</div> </div>
</div> </div>
<div className="content"> <div className="content">
<QuestionManageContent <QuestionList
updatedSiderTree={this.updatedSiderTreeFromList.bind(this)} updatedSiderTree={this.updatedSiderTreeFromList.bind(this)}
selectedCategoryId={this.state.selectedCategoryId} selectedCategoryId={this.state.selectedCategoryId}
/> />
...@@ -56,4 +56,4 @@ class QuestionBankIndex extends Component { ...@@ -56,4 +56,4 @@ class QuestionBankIndex extends Component {
} }
} }
export default QuestionBankIndex; export default QuestionIndex;
.question-bank-index { .question-manage-index {
.content-body { .content-body {
display: flex; display: flex;
.site-layout-background {
background: #fff;
}
.sider { .sider {
min-width: 244px; min-width: 244px;
} }
......
...@@ -3,15 +3,15 @@ ...@@ -3,15 +3,15 @@
* @Date: 2021-02-25 13:46:35 * @Date: 2021-02-25 13:46:35
* @LastEditors: yuananting * @LastEditors: yuananting
* @LastEditTime: 2021-03-29 20:24:01 * @LastEditTime: 2021-03-29 20:24:01
* @Description: 助学工具-题库-新建题目 * @Description: 助学工具-题库-新建/编辑题目
* @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有 * @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/ */
import React, { Component } from "react"; import React, { Component } from "react";
import { Tabs, Button, Tooltip, message, Modal } from "antd"; import { Tabs, Button, Tooltip, message, Modal } from "antd";
import Breadcrumbs from "@/components/Breadcrumbs"; import Breadcrumbs from "@/components/Breadcrumbs";
import ShowTips from "@/components/ShowTips"; import ShowTips from "@/components/ShowTips";
import "./AddNewQuestion.less"; import "./OperateQuestion.less";
import NewQuestionTab from "./components/NewQuestionTab"; import OperateQuestionTab from "./components/OperateQuestionTab";
import { import {
defineJudgeOptionInfo, defineJudgeOptionInfo,
defineOptionInfo, defineOptionInfo,
...@@ -21,7 +21,7 @@ import AidToolService from "@/domains/aid-tool-domain/AidToolService"; ...@@ -21,7 +21,7 @@ import AidToolService from "@/domains/aid-tool-domain/AidToolService";
import User from "@/common/js/user"; import User from "@/common/js/user";
const { TabPane } = Tabs; const { TabPane } = Tabs;
class AddNewQuestion extends Component { class OperateQuestion extends Component {
constructor(props) { constructor(props) {
super(props); super(props);
let activeKey = ""; let activeKey = "";
...@@ -161,7 +161,7 @@ class AddNewQuestion extends Component { ...@@ -161,7 +161,7 @@ class AddNewQuestion extends Component {
), ),
onOk: () => { onOk: () => {
window.RCHistory.push({ window.RCHistory.push({
pathname: `/question-bank-index?categoryId=${getParameterByName("categoryId")}`, pathname: `/question-manage-index?categoryId=${getParameterByName("categoryId")}`,
}); });
}, },
}); });
...@@ -246,7 +246,7 @@ class AddNewQuestion extends Component { ...@@ -246,7 +246,7 @@ class AddNewQuestion extends Component {
} }
if (next === "close") { if (next === "close") {
window.RCHistory.push({ window.RCHistory.push({
pathname: `/question-bank-index?categoryId=${categoryId}`, pathname: `/question-manage-index?categoryId=${categoryId}`,
}); });
} }
} }
...@@ -267,7 +267,7 @@ class AddNewQuestion extends Component { ...@@ -267,7 +267,7 @@ class AddNewQuestion extends Component {
} }
if (next === "close") { if (next === "close") {
window.RCHistory.push({ window.RCHistory.push({
pathname: `/question-bank-index?categoryId=${categoryId}`, pathname: `/question-manage-index?categoryId=${categoryId}`,
}); });
} }
} }
...@@ -291,7 +291,7 @@ class AddNewQuestion extends Component { ...@@ -291,7 +291,7 @@ class AddNewQuestion extends Component {
} = this.state; } = this.state;
const categoryId = getParameterByName("categoryId"); const categoryId = getParameterByName("categoryId");
return ( return (
<div className="page add-new-question"> <div className="page operate-question-page">
<Breadcrumbs <Breadcrumbs
navList={ navList={
getParameterByName("id") && this.state.currentOperate === "edit" getParameterByName("id") && this.state.currentOperate === "edit"
...@@ -328,7 +328,7 @@ class AddNewQuestion extends Component { ...@@ -328,7 +328,7 @@ class AddNewQuestion extends Component {
} }
key="SINGLE_CHOICE" key="SINGLE_CHOICE"
> >
<NewQuestionTab <OperateQuestionTab
questionTypeKey={activeKey} questionTypeKey={activeKey}
onRef={(ref) => { onRef={(ref) => {
this.singleChoiceRef = ref; this.singleChoiceRef = ref;
...@@ -357,7 +357,7 @@ class AddNewQuestion extends Component { ...@@ -357,7 +357,7 @@ class AddNewQuestion extends Component {
} }
key="MULTI_CHOICE" key="MULTI_CHOICE"
> >
<NewQuestionTab <OperateQuestionTab
questionTypeKey={activeKey} questionTypeKey={activeKey}
onRef={(ref) => { onRef={(ref) => {
this.multiChoiceRef = ref; this.multiChoiceRef = ref;
...@@ -385,7 +385,7 @@ class AddNewQuestion extends Component { ...@@ -385,7 +385,7 @@ class AddNewQuestion extends Component {
} }
key="JUDGE" key="JUDGE"
> >
<NewQuestionTab <OperateQuestionTab
questionTypeKey={activeKey} questionTypeKey={activeKey}
onRef={(ref) => { onRef={(ref) => {
this.judgeRef = ref; this.judgeRef = ref;
...@@ -413,7 +413,7 @@ class AddNewQuestion extends Component { ...@@ -413,7 +413,7 @@ class AddNewQuestion extends Component {
} }
key="GAP_FILLING" key="GAP_FILLING"
> >
<NewQuestionTab <OperateQuestionTab
questionTypeKey={activeKey} questionTypeKey={activeKey}
onRef={(ref) => { onRef={(ref) => {
this.gapRef = ref; this.gapRef = ref;
...@@ -451,7 +451,7 @@ class AddNewQuestion extends Component { ...@@ -451,7 +451,7 @@ class AddNewQuestion extends Component {
} }
key="INDEFINITE_CHOICE" key="INDEFINITE_CHOICE"
> >
<NewQuestionTab <OperateQuestionTab
questionTypeKey={activeKey} questionTypeKey={activeKey}
onRef={(ref) => { onRef={(ref) => {
this.indefiniteRef = ref; this.indefiniteRef = ref;
...@@ -496,4 +496,4 @@ class AddNewQuestion extends Component { ...@@ -496,4 +496,4 @@ class AddNewQuestion extends Component {
} }
} }
export default AddNewQuestion; export default OperateQuestion;
.add-new-question { .operate-question-page {
position: relative !important; position: relative !important;
.box { .box {
margin-bottom: 66px !important; margin-bottom: 66px !important;
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* @Date: 2021-02-25 14:34:29 * @Date: 2021-02-25 14:34:29
* @LastEditors: yuananting * @LastEditors: yuananting
* @LastEditTime: 2021-03-29 16:22:15 * @LastEditTime: 2021-03-29 16:22:15
* @Description: 助学工具-题库-新建题目Tab * @Description: 助学工具-题库-操作题目Tab
* @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有 * @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/ */
import React, { Component } from "react"; import React, { Component } from "react";
...@@ -17,7 +17,7 @@ import { ...@@ -17,7 +17,7 @@ import {
Input, Input,
Popover, Popover,
} from "antd"; } from "antd";
import "./NewQuestionTab.less"; import "./OperateQuestionTab.less";
import QuestionEditor from "./QuestionEditor"; import QuestionEditor from "./QuestionEditor";
import { PlusOutlined, CloseOutlined } from "@ant-design/icons"; import { PlusOutlined, CloseOutlined } from "@ant-design/icons";
import { import {
...@@ -34,7 +34,7 @@ import ScanFileModal from "@/modules/resource-disk/modal/ScanFileModal"; ...@@ -34,7 +34,7 @@ import ScanFileModal from "@/modules/resource-disk/modal/ScanFileModal";
import SelectPrepareFileModal from "@/modules/prepare-lesson/modal/SelectPrepareFileModal"; import SelectPrepareFileModal from "@/modules/prepare-lesson/modal/SelectPrepareFileModal";
import _ from "lodash"; import _ from "lodash";
class NewQuestionTab extends Component { class OperateQuestionTab extends Component {
constructor(props) { constructor(props) {
super(props); super(props);
const { questionInfo = {} } = props; const { questionInfo = {} } = props;
...@@ -1377,4 +1377,4 @@ class NewQuestionTab extends Component { ...@@ -1377,4 +1377,4 @@ class NewQuestionTab extends Component {
} }
} }
export default NewQuestionTab; export default OperateQuestionTab;
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* @Date: 2021-02-25 11:23:47 * @Date: 2021-02-25 11:23:47
* @LastEditors: yuananting * @LastEditors: yuananting
* @LastEditTime: 2021-04-01 13:47:54 * @LastEditTime: 2021-04-01 13:47:54
* @Description: 助学工具-题库-列表数据 * @Description: 助学工具-题库-题目列表数据
* @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有 * @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/ */
import React, { Component } from "react"; import React, { Component } from "react";
...@@ -21,11 +21,11 @@ import { ...@@ -21,11 +21,11 @@ import {
message, message,
} from "antd"; } from "antd";
import { PageControl } from "@/components"; import { PageControl } from "@/components";
import "./QuestionManageContent.less"; import "./QuestionList.less";
import User from "@/common/js/user"; import User from "@/common/js/user";
import AidToolService from "@/domains/aid-tool-domain/AidToolService"; import AidToolService from "@/domains/aid-tool-domain/AidToolService";
import _ from "underscore"; import _ from "underscore";
import QuestionPreviewModal from "../modal/QuestionPreviewModal"; import PreviewQuestionModal from "../modal/PreviewQuestionModal";
import BatchImportQuestionModal from "../modal/BatchImportQuestionModal"; import BatchImportQuestionModal from "../modal/BatchImportQuestionModal";
const { Search } = Input; const { Search } = Input;
...@@ -61,7 +61,7 @@ const questionTypeList = [ ...@@ -61,7 +61,7 @@ const questionTypeList = [
}, },
]; ];
class QuestionManageContent extends Component { class QuestionList extends Component {
constructor(props) { constructor(props) {
super(props); super(props);
this.state = { this.state = {
...@@ -77,7 +77,7 @@ class QuestionManageContent extends Component { ...@@ -77,7 +77,7 @@ class QuestionManageContent extends Component {
userId: User.getStoreUserId(), userId: User.getStoreUserId(),
}, },
dataSource: [], // 题库列表 dataSource: [], // 题库列表
questionPreviewModal: null, // 题目预览模态框 previewQuestionModal: null, // 题目预览模态框
batchImportQuestionModal: null, // 批量导入模态框 batchImportQuestionModal: null, // 批量导入模态框
}; };
} }
...@@ -156,7 +156,7 @@ class QuestionManageContent extends Component { ...@@ -156,7 +156,7 @@ class QuestionManageContent extends Component {
<span <span
className="empty-list-tip" className="empty-list-tip"
onClick={() => { onClick={() => {
this.handleCreateQuestionBank(); this.handleCreateQuestion();
}} }}
> >
新建一个 新建一个
...@@ -315,23 +315,23 @@ class QuestionManageContent extends Component { ...@@ -315,23 +315,23 @@ class QuestionManageContent extends Component {
// 预览题目 // 预览题目
previewQuestion = (id) => { previewQuestion = (id) => {
const m = ( const m = (
<QuestionPreviewModal <PreviewQuestionModal
id={id} id={id}
close={() => { close={() => {
this.setState({ this.setState({
questionPreviewModal: null, previewQuestionModal: null,
}); });
}} }}
/> />
); );
this.setState({ questionPreviewModal: m }); this.setState({ previewQuestionModal: m });
}; };
// 编辑题目 // 编辑题目
editQuestion = (id, type) => { editQuestion = (id, type) => {
const { categoryId } = this.state.query; const { categoryId } = this.state.query;
window.RCHistory.push({ window.RCHistory.push({
pathname: `/create-new-question?id=${id}&type=${type}&categoryId=${categoryId}`, pathname: `question-operate-page?id=${id}&type=${type}&categoryId=${categoryId}`,
}); });
}; };
...@@ -376,9 +376,9 @@ class QuestionManageContent extends Component { ...@@ -376,9 +376,9 @@ class QuestionManageContent extends Component {
}; };
// 创建题目-跳转新建页 // 创建题目-跳转新建页
handleCreateQuestionBank = () => { handleCreateQuestion = () => {
window.RCHistory.push({ window.RCHistory.push({
pathname: `/create-new-question?categoryId=${this.state.query.categoryId}`, pathname: `question-operate-page?categoryId=${this.state.query.categoryId}`,
}); });
}; };
...@@ -403,13 +403,13 @@ class QuestionManageContent extends Component { ...@@ -403,13 +403,13 @@ class QuestionManageContent extends Component {
dataSource = [], dataSource = [],
total, total,
query, query,
questionPreviewModal, previewQuestionModal,
batchImportQuestionModal, batchImportQuestionModal,
} = this.state; } = this.state;
const { current, size, categoryId, questionName, questionType } = query; const { current, size, categoryId, questionName, questionType } = query;
return ( return (
<div className="question-manage-content"> <div className="question-list">
<div className="question-manage-filter"> <div className="question-list-filter">
<Row type="flex" justify="space-between" align="top"> <Row type="flex" justify="space-between" align="top">
<div className="search-condition"> <div className="search-condition">
<div className="search-condition__item"> <div className="search-condition__item">
...@@ -475,13 +475,13 @@ class QuestionManageContent extends Component { ...@@ -475,13 +475,13 @@ class QuestionManageContent extends Component {
{["CloudManager", "StoreManager"].includes(User.getUserRole()) && {["CloudManager", "StoreManager"].includes(User.getUserRole()) &&
categoryId && ( categoryId && (
<Space size={16}> <Space size={16}>
<Button type="primary" onClick={this.handleCreateQuestionBank}> <Button type="primary" onClick={this.handleCreateQuestion}>
新建题目 新建题目
</Button> </Button>
<Button onClick={this.batchImportQuestion}>批量导入</Button> <Button onClick={this.batchImportQuestion}>批量导入</Button>
</Space> </Space>
)} )}
<div className="question-manage-list"> <div className="question-list-content">
<ConfigProvider renderEmpty={this.customizeRenderEmpty}> <ConfigProvider renderEmpty={this.customizeRenderEmpty}>
<Table <Table
rowKey={(record) => record.id} rowKey={(record) => record.id}
...@@ -509,7 +509,7 @@ class QuestionManageContent extends Component { ...@@ -509,7 +509,7 @@ class QuestionManageContent extends Component {
/> />
</div> </div>
)} )}
{questionPreviewModal} {previewQuestionModal}
{batchImportQuestionModal} {batchImportQuestionModal}
</div> </div>
</div> </div>
...@@ -517,4 +517,4 @@ class QuestionManageContent extends Component { ...@@ -517,4 +517,4 @@ class QuestionManageContent extends Component {
} }
} }
export default QuestionManageContent; export default QuestionList;
.question-manage-content { .question-list {
.question-manage-filter { .question-list-filter {
position: relative; position: relative;
.search-condition { .search-condition {
width: calc(100% - 80px); width: calc(100% - 80px);
...@@ -41,7 +41,7 @@ ...@@ -41,7 +41,7 @@
.data-icon { .data-icon {
cursor: pointer; cursor: pointer;
} }
.question-manage-list { .question-list-content {
position: relative; position: relative;
margin-top: 16px; margin-top: 16px;
.empty-list-tip { .empty-list-tip {
......
...@@ -10,7 +10,7 @@ import React, { Component } from "react"; ...@@ -10,7 +10,7 @@ import React, { Component } from "react";
import { Modal } from "antd"; import { Modal } from "antd";
import User from "@/common/js/user"; import User from "@/common/js/user";
import AidToolService from "@/domains/aid-tool-domain/AidToolService"; import AidToolService from "@/domains/aid-tool-domain/AidToolService";
import "./QuestionPreviewModal.less"; import "./PreviewQuestionModal.less";
import ScanFileModal from "@/modules/resource-disk/modal/ScanFileModal"; import ScanFileModal from "@/modules/resource-disk/modal/ScanFileModal";
import _ from "underscore"; import _ from "underscore";
import XMAudio from "../../components/XMAudio"; import XMAudio from "../../components/XMAudio";
...@@ -23,7 +23,7 @@ const questionTypeList = { ...@@ -23,7 +23,7 @@ const questionTypeList = {
INDEFINITE_CHOICE: "不定项选择题", INDEFINITE_CHOICE: "不定项选择题",
}; };
class QuestionPreviewModal extends Component { class PreviewQuestionModal extends Component {
formRef = React.createRef(); formRef = React.createRef();
constructor(props) { constructor(props) {
super(props); super(props);
...@@ -98,7 +98,7 @@ class QuestionPreviewModal extends Component { ...@@ -98,7 +98,7 @@ class QuestionPreviewModal extends Component {
return ( return (
<div> <div>
<Modal <Modal
className="question-preview-modal" className="preview-question-modal"
visible={true} visible={true}
title="题目预览" title="题目预览"
width={560} width={560}
...@@ -449,4 +449,4 @@ class QuestionPreviewModal extends Component { ...@@ -449,4 +449,4 @@ class QuestionPreviewModal extends Component {
); );
} }
} }
export default QuestionPreviewModal; export default PreviewQuestionModal;
...@@ -277,6 +277,6 @@ ...@@ -277,6 +277,6 @@
} }
} }
} }
.question-preview-modal.ant-modal { .preview-question-modal.ant-modal {
max-height: 60% !important; max-height: 60% !important;
} }
...@@ -26,11 +26,10 @@ import AddPlanPage from '@/modules/plan-manage/AddPlan'; ...@@ -26,11 +26,10 @@ import AddPlanPage from '@/modules/plan-manage/AddPlan';
import LearningDataPage from '@/modules/plan-manage/LearningData'; import LearningDataPage from '@/modules/plan-manage/LearningData';
import StoreInfoPage from '@/modules/store-manage/StoreInfo'; import StoreInfoPage from '@/modules/store-manage/StoreInfo';
import CourseCategoryManage from '@/modules/teach-tool/components/CourseCategoryManage'; import CourseCategoryManage from '@/modules/teach-tool/components/CourseCategoryManage';
import QuestionBankIndex from '@/modules/teach-tool/question-bank/QuestionBankIndex'; import QuestionManageIndex from '@/modules/teach-tool/question-manage/Index';
import AddNewQuestion from '@/modules/teach-tool/question-bank/AddNewQuestion'; import OperateQuestion from "@/modules/teach-tool/question-manage/OperateQuestion";
import ExaminationPaperIndex from '@/modules/teach-tool/examination-paper/ExaminationPaperIndex'; import PaperManageIndex from '@/modules/teach-tool/paper-manage/Index';
import NewExaminationPaper from '@/modules/teach-tool/examination-paper/NewExaminationPaper'; import OperatePaper from "@/modules/teach-tool/paper-manage/OperatePaper";
import ExaminationManagerIndex from '@/modules/teach-tool/examination-manager/Index'; import ExaminationManagerIndex from '@/modules/teach-tool/examination-manager/Index';
const mainRoutes = [ const mainRoutes = [
...@@ -100,33 +99,30 @@ const mainRoutes = [ ...@@ -100,33 +99,30 @@ const mainRoutes = [
name: '资料云盘' name: '资料云盘'
}, },
{ {
path: '/question-bank-index', path: '/question-manage-index',
component:QuestionBankIndex, component:QuestionManageIndex,
name: '题库' name: '题库'
}, },
{ {
path: '/create-new-question', path: '/question-operate-page',
component:AddNewQuestion, component:OperateQuestion,
name: '新增题目' name: '操作题目'
}, },
{ {
path: '/examination-paper-index', path: '/paper-manage-index',
component:ExaminationPaperIndex, component:PaperManageIndex,
name: '试卷' name: '试卷'
}, },
{ {
path: '/new-examination-paper', path: '/paper-operate-page',
component:NewExaminationPaper, component:OperatePaper,
name: '新建试卷' name: '操作试卷'
}, },
{ {
path: '/examination-manage-index', path: '/examination-manage-index',
component:ExaminationManagerIndex, component:ExaminationManagerIndex,
name: '考试' name: '考试'
}, },
{ {
path: '/course-category-manage', path: '/course-category-manage',
component:CourseCategoryManage, component:CourseCategoryManage,
......
...@@ -61,12 +61,12 @@ export const menuList: any = [ ...@@ -61,12 +61,12 @@ export const menuList: any = [
{ {
groupName: "题库", groupName: "题库",
groupCode: "QuestionBank", groupCode: "QuestionBank",
link: '/question-bank-index' link: '/question-manage-index'
}, },
{ {
groupName: "试卷", groupName: "试卷",
groupCode: "QuestionBank", groupCode: "QuestionBank",
link: '/examination-paper-index' link: '/paper-manage-index'
}, },
{ {
groupName: "考试", groupName: "考试",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment