Commit 56b67270 by yuananting

fix:拖拽时父级节点取值区分

parent 495240cf
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* @Author: yuananting * @Author: yuananting
* @Date: 2021-02-23 18:28:50 * @Date: 2021-02-23 18:28:50
* @LastEditors: fusanqiasng * @LastEditors: fusanqiasng
* @LastEditTime: 2021-06-15 14:10:53 * @LastEditTime: 2021-06-15 15:31:40
* @Description: 助学工具-课程分类 * @Description: 助学工具-课程分类
* @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有 * @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/ */
...@@ -379,13 +379,11 @@ class CourseCategoryManage extends Component { ...@@ -379,13 +379,11 @@ class CourseCategoryManage extends Component {
let targetParentId = info.dropToGap ? info.node.parentId : info.node.id; let targetParentId = info.dropToGap ? info.node.parentId : info.node.id;
let relatedNodes = this.getRelatedNodes(targetParentId); let relatedNodes = this.getRelatedNodes(targetParentId);
if (!((info.dropToGap && info.node.parentId === info.dragNode.parentId) || (!info.dropToGap && info.node.id === info.dragNode.parentId))) { if (!((info.dropToGap && info.node.parentId === info.dragNode.parentId) || (!info.dropToGap && info.node.id === info.dragNode.parentId))) {
console.log('this.state.treeMap[targetParentId].categoryLevel', this.state.treeMap[targetParentId].categoryLevel);
if (this.state.treeMap[targetParentId].categoryLevel >= 4) { if (this.state.treeMap[targetParentId].categoryLevel >= 4) {
return message.info('最多支持5级分类'); return message.info('最多支持5级分类');
} else { } else {
let nodesArr = this.getDragNodesLevel(this.state.treeMap[info.dragNode.id]); let nodesArr = this.getDragNodesLevel(this.state.treeMap[info.dragNode.id]);
let parentArr = this.getParentDragNodesLevel(this.state.treeMap[targetParentId]); let parentArr = this.getParentDragNodesLevel(this.state.treeMap[targetParentId]);
console.log(nodesArr.length, parentArr.length);
if (nodesArr.length + parentArr.length > 4) { if (nodesArr.length + parentArr.length > 4) {
return message.info('最多支持5级分类'); return message.info('最多支持5级分类');
} }
...@@ -466,7 +464,6 @@ class CourseCategoryManage extends Component { ...@@ -466,7 +464,6 @@ class CourseCategoryManage extends Component {
} else { } else {
ar.splice(i + 1, 0, dragObj); ar.splice(i + 1, 0, dragObj);
} }
console.log('ar:', ar);
} }
data.shift(); data.shift();
let newTreeData = this.renderTreeNodes(this.handleLoop(data, 0)); let newTreeData = this.renderTreeNodes(this.handleLoop(data, 0));
...@@ -486,9 +483,8 @@ class CourseCategoryManage extends Component { ...@@ -486,9 +483,8 @@ class CourseCategoryManage extends Component {
userId: User.getStoreUserId(), userId: User.getStoreUserId(),
}; };
let newTreeMap = this.getTreeMap(newTreeData, {}); let movedCategory = this.movedNodeFind(newTreeData, info.dragNode.id);
let movedCategory = _.filter(newTreeMap, (item) => item.id === info.dragNode.id)[0]; let parentCategory = movedCategory.parentId === '0' ? firstParentNode : this.movedNodeFind(newTreeData, targetParentId);
let parentCategory = info.dropToGap ? firstParentNode : _.filter(newTreeMap, (item) => item.id === info.node.id)[0];
let params = { let params = {
movedCategory, movedCategory,
parentCategory, parentCategory,
...@@ -502,6 +498,18 @@ class CourseCategoryManage extends Component { ...@@ -502,6 +498,18 @@ class CourseCategoryManage extends Component {
}); });
}; };
// 获取移动节点信息
movedNodeFind(categoryList, movedId) {
for (const item of categoryList) {
if (item.id === movedId) return item;
if (item.sonCategoryList && item.sonCategoryList.length > 0) {
const node = this.movedNodeFind(item.sonCategoryList, movedId);
if (node) return node;
}
}
return null;
}
handleLoop = (data, level) => { handleLoop = (data, level) => {
data.map((item, index) => { data.map((item, index) => {
item.sort = index; item.sort = index;
......
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