Commit d1bc2377 by yuananting

Merge branch 'feature/yuananting/20210221/question-bank-tools' into dev

parents e0eb747d 69d82f3b
......@@ -2,7 +2,7 @@
* @Author: yuananting
* @Date: 2021-02-23 18:28:50
* @LastEditors: yuananting
* @LastEditTime: 2021-03-18 18:13:26
* @LastEditTime: 2021-03-19 14:15:00
* @Description: 助学工具-题库-主页面分类管理
* @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/
......@@ -34,6 +34,7 @@ class QuestionCategoryManage extends Component {
treeData: [],
treeMap: {},
selectedKeys: ["0"],
autoExpandParent: true,
};
}
......@@ -52,22 +53,45 @@ class QuestionCategoryManage extends Component {
QuestionBankService.queryCategoryTree(query).then((res) => {
const { result = [] } = res;
let str = "未分类";
if (categoryName && str.indexOf(categoryName) < 0) {
this.setState({ treeData: this.renderTreeNodes(result, categoryName) });
if (categoryName) {
this.setState({ autoExpandParent: true });
if (str.indexOf(categoryName) < 0) {
this.setState({
expandedKeys: this.getFirstLevelKeys(result),
treeData: this.renderTreeNodes(result, categoryName),
});
let nodeId = [];
Object.keys(this.state.treeMap).forEach((item) => {
nodeId.push(item);
});
this.setState({ expandedKeys: nodeId });
} else {
const defaultNode = {
id: "0",
categoryName: "未分类",
categoryCount: 0,
};
result.unshift(defaultNode);
this.setState({
treeData: this.renderTreeNodes(result, categoryName),
});
let nodeId = [];
Object.keys(this.state.treeMap).forEach((item) => {
nodeId.push(item);
});
this.setState({ expandedKeys: nodeId });
}
} else {
this.setState({ autoExpandParent: false });
const defaultNode = {
id: "0",
categoryName: "未分类",
categoryCount: 0,
};
result.unshift(defaultNode);
this.setState({ treeData: this.renderTreeNodes(result, categoryName) });
this.setState({
expandedKeys: this.getFirstLevelKeys(result),
treeData: this.renderTreeNodes(result, categoryName),
});
this.setState({ expandedKeys: [] });
}
});
};
......@@ -433,20 +457,19 @@ class QuestionCategoryManage extends Component {
return item;
});
// this.getFirstLevelKeys(newTreeData);
let map = {};
let getChildren = function (data) {
this.setState({ treeMap: this.getTreeMap(data, map) });
return newTreeData;
};
getTreeMap = (data, map) => {
data.forEach((item) => {
map[item.id] = item;
if (item.sonCategoryList && item.sonCategoryList.length > 0) {
getChildren(item.sonCategoryList);
this.getTreeMap(item.sonCategoryList, map);
}
});
};
getChildren(data);
this.setState({ treeMap: map });
return newTreeData;
return map;
};
/** 树状选中事件 */
......@@ -455,7 +478,13 @@ class QuestionCategoryManage extends Component {
};
render() {
const { treeData, expandedKeys, selectedKeys } = this.state;
const {
treeData,
expandedKeys,
selectedKeys,
autoExpandParent,
} = this.state;
console.log("autoExpandParent:", autoExpandParent);
return (
<div className="page question-category-manage">
<Breadcrumbs
......@@ -497,6 +526,7 @@ class QuestionCategoryManage extends Component {
<div className="course-category-tree">
<DirectoryTree
expandedKeys={expandedKeys}
autoExpandParent={autoExpandParent}
onExpand={this.onExpand}
selectedKeys={selectedKeys}
onSelect={this.onSelect}
......
......@@ -2,7 +2,7 @@
* @Author: yuananting
* @Date: 2021-02-22 10:59:43
* @LastEditors: yuananting
* @LastEditTime: 2021-03-18 18:16:16
* @LastEditTime: 2021-03-19 14:18:59
* @Description: 助学工具-题库-题库主页面侧边栏
* @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/
......@@ -26,6 +26,7 @@ class QuestionBankSider extends Component {
NewEditQuestionBankCategory: null, //新增或编辑分类模态框
ImportCourseCategory: null, // 引用课程分类模态框
treeData: this.props.treeData || [],
autoExpandParent: false
};
}
......@@ -80,15 +81,18 @@ class QuestionBankSider extends Component {
};
QuestionBankService.queryQuestionCategoryTree(query).then((res) => {
const { categoryList = [], noCategoryCnt = 0 } = res.result;
let str = "未分类";
if (categoryName && str.indexOf(categoryName) < 0) {
if (categoryName) {
this.setState({ autoExpandParent: true });
if (str.indexOf(categoryName) < 0) {
this.setState({
treeData: this.renderTreeNodes(categoryList, categoryName),
});
this.setState({
expandedKeys: this.getFirstLevelKeys(categoryList),
let nodeId = [];
Object.keys(this.state.treeMap).forEach((item) => {
nodeId.push(item);
});
this.setState({ expandedKeys: nodeId });
} else {
const defaultNode = {
id: "0",
......@@ -99,15 +103,40 @@ class QuestionBankSider extends Component {
this.setState({
treeData: this.renderTreeNodes(categoryList, categoryName),
});
let nodeId = [];
Object.keys(this.state.treeMap).forEach((item) => {
nodeId.push(item);
});
this.setState({ expandedKeys: nodeId });
}
} else {
this.setState({ autoExpandParent: false });
const defaultNode = {
id: "0",
categoryName: "未分类",
categoryCount: noCategoryCnt,
};
categoryList.unshift(defaultNode);
this.setState({
expandedKeys: this.getFirstLevelKeys(categoryList),
treeData: this.renderTreeNodes(categoryList, categoryName),
});
this.setState({ expandedKeys: [] });
}
});
};
getTreeMap = (data, map) => {
data.forEach((item) => {
map[item.id] = item;
if (item.sonCategoryList && item.sonCategoryList.length > 0) {
this.getTreeMap(item.sonCategoryList, map);
}
});
return map;
};
renderTreeNodes = (data, value) => {
return data.map((item) => {
let newTreeData = data.map((item) => {
item.title = item.categoryName;
item.key = item.id;
item.title =
......@@ -135,10 +164,13 @@ class QuestionBankSider extends Component {
}
return item;
});
let map = {};
this.setState({ treeMap: this.getTreeMap(data, map) });
return newTreeData;
};
render() {
const { treeData, expandedKeys, selectedKeys } = this.state;
const { treeData, expandedKeys, selectedKeys, autoExpandParent } = this.state;
return (
<div className="question-bank-sider">
<div className="sider-title">题目分类</div>
......@@ -164,6 +196,7 @@ class QuestionBankSider extends Component {
<div className="sider-tree">
<DirectoryTree
expandedKeys={expandedKeys}
autoExpandParent={autoExpandParent}
onExpand={this.onExpand}
selectedKeys={selectedKeys}
onSelect={this.onSelect}
......
......@@ -33,7 +33,7 @@ class BatchImportQuestionModal extends Component {
// 下载题目模板
handleDownTemplate = () => {
const a = document.createElement("a");
a.href = "https://image.xiaomaiketang.com/xm/question_template.xlsx";
a.href = "https://image.xiaomaiketang.com/xm/questionImport.xlsx";
a.click();
};
......
......@@ -2,7 +2,7 @@
* @Author: yuananting
* @Date: 2021-02-21 15:53:31
* @LastEditors: yuananting
* @LastEditTime: 2021-03-19 11:06:12
* @LastEditTime: 2021-03-19 15:31:56
* @Description: 描述一下咯
* @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/
......@@ -80,10 +80,15 @@ export const menuList: any = [
groupCode: "ShopUser",
link: '/user-manage'
},
// {
// groupName: "课程分类",
// groupCode: "CourseCategory",
// link: '/course-catalog'
// },
{
groupName: "课程分类",
groupCode: "CourseCategory",
link: '/course-catalog'
link: '/question-category-manage'
},
{
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