|
@@ -110,106 +110,68 @@ export default {
|
|
|
dropOverHandle(b, a, i, e) {
|
|
|
// console.log(i, a);
|
|
|
// 被拖拽节点对应的 Node、结束拖拽时最后进入的节点、被拖拽节点的放置位置
|
|
|
- // 一/二/三级目录
|
|
|
- if ([1,2,3].includes(b.level)) this.handleMoveCatalogue(b, a, i, e);
|
|
|
-
|
|
|
- // 指标层
|
|
|
- if (b.level === 4) this.handleMoveSheet(b, a, i, e);
|
|
|
- },
|
|
|
-
|
|
|
- // 移动的为一/二/三级目录
|
|
|
- handleMoveCatalogue(b, a, i, e) {
|
|
|
- let list = a.parent.childNodes,
|
|
|
- targetIndex = 0,
|
|
|
- PrevClassifyId = 0,
|
|
|
- NextClassifyId = 0,
|
|
|
- ParentClassifyId = 0;
|
|
|
-
|
|
|
- list.forEach((item, index) => {
|
|
|
- if (item.data.ClassifyId === b.data.ClassifyId) {
|
|
|
- targetIndex = index;
|
|
|
- return;
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- if (targetIndex === 0) {
|
|
|
- PrevClassifyId = 0;
|
|
|
- NextClassifyId = list.length>1?list[targetIndex + 1].data.ClassifyId:0;
|
|
|
- } else if (targetIndex === list.length - 1) {
|
|
|
- PrevClassifyId = list[targetIndex - 1].data.ClassifyId;
|
|
|
- NextClassifyId = 0;
|
|
|
- } else {
|
|
|
- PrevClassifyId = list[targetIndex - 1].data.ClassifyId;
|
|
|
- NextClassifyId = list[targetIndex + 1].data.ClassifyId;
|
|
|
- }
|
|
|
-
|
|
|
- if(b.level===2||b.level===3){
|
|
|
- if(i==='inner'){
|
|
|
- ParentClassifyId=a.data.ClassifyId
|
|
|
- PrevClassifyId=0
|
|
|
- NextClassifyId=a.data.Children.length>1?a.data.Children[1].ClassifyId:0
|
|
|
- }else{
|
|
|
- ParentClassifyId=a.data.ParentId
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- preDictEdbInterface
|
|
|
- .classifyMove({
|
|
|
- ClassifyId: b.data.ClassifyId,
|
|
|
- ParentClassifyId: ParentClassifyId,
|
|
|
- PrevClassifyId: PrevClassifyId,
|
|
|
- NextClassifyId: NextClassifyId,
|
|
|
- })
|
|
|
- .then((res) => {
|
|
|
- if (res.Ret !== 200) return;
|
|
|
- this.$message.success("移动成功!");
|
|
|
- this.getTreeData();
|
|
|
- });
|
|
|
- },
|
|
|
-
|
|
|
- // 移动的为指标
|
|
|
- handleMoveSheet(b, a, i, e) {
|
|
|
- let PrevEdbInfoId = 0,
|
|
|
- NextEdbInfoId = 0,
|
|
|
- targetIndex = 0,
|
|
|
- list = a.parent.data.Children;
|
|
|
- if (i === "inner") {
|
|
|
- PrevEdbInfoId = 0;
|
|
|
- NextEdbInfoId =
|
|
|
- a.data.Children.length > 1 ? a.data.Children[1].EdbInfoId : 0;
|
|
|
- } else {
|
|
|
- list.forEach((item, index) => {
|
|
|
- if (item.EdbInfoId === b.data.EdbInfoId) {
|
|
|
- targetIndex = index;
|
|
|
- return;
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- if (targetIndex === 0) {
|
|
|
- PrevEdbInfoId = 0;
|
|
|
- NextEdbInfoId = list[targetIndex + 1].EdbInfoId;
|
|
|
- } else if (targetIndex === list.length - 1) {
|
|
|
- PrevEdbInfoId = list[targetIndex - 1].EdbInfoId;
|
|
|
- NextEdbInfoId = 0;
|
|
|
- } else {
|
|
|
- PrevEdbInfoId = list[targetIndex - 1].EdbInfoId;
|
|
|
- NextEdbInfoId = list[targetIndex + 1].EdbInfoId;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- preDictEdbInterface
|
|
|
- .ebdMove({
|
|
|
- ClassifyId: a.data.ClassifyId,
|
|
|
- EdbInfoId: b.data.EdbInfoId,
|
|
|
- PrevEdbInfoId,
|
|
|
- NextEdbInfoId,
|
|
|
- })
|
|
|
- .then((res) => {
|
|
|
- if (res.Ret !== 200) return;
|
|
|
- this.$message.success("移动成功!");
|
|
|
- this.getTreeData();
|
|
|
- });
|
|
|
-
|
|
|
+ const isEDB=b.data.EdbCode?true:false
|
|
|
+ let list=a.parent.childNodes;
|
|
|
+ let targetIndex=0,PrevClassifyId=0,NextClassifyId=0,ParentClassifyId=0;
|
|
|
+ let ClassifyId=0,EdbInfoId=0,PrevEdbInfoId=0,NextEdbInfoId=0;
|
|
|
+
|
|
|
+ ClassifyId=isEDB?0:b.data.ClassifyId
|
|
|
+ EdbInfoId=isEDB?b.data.EdbInfoId:0
|
|
|
+ ParentClassifyId=a.parent.data.ClassifyId||0
|
|
|
+
|
|
|
+ if(i!=='inner'){
|
|
|
+ list.forEach((item,index)=>{
|
|
|
+ if(isEDB){
|
|
|
+ if(item.data.EdbInfoId===b.data.EdbInfoId){
|
|
|
+ targetIndex=index
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ if(item.data.ClassifyId===b.data.ClassifyId){
|
|
|
+ targetIndex=index
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ })
|
|
|
+
|
|
|
+ console.log(targetIndex);
|
|
|
+
|
|
|
+
|
|
|
+ if(targetIndex===0){
|
|
|
+ const data=list[targetIndex+1].data
|
|
|
+ NextClassifyId=data.EdbCode?0:data.ClassifyId
|
|
|
+ NextEdbInfoId=data.EdbCode?data.EdbInfoId:0
|
|
|
+ }else if(targetIndex===list.length-1){
|
|
|
+ const data=list[targetIndex-1].data
|
|
|
+ PrevClassifyId=data.EdbCode?0:data.ClassifyId
|
|
|
+ PrevEdbInfoId=data.EdbCode?data.EdbInfoId:0
|
|
|
+ }else{
|
|
|
+ const pData=list[targetIndex-1].data
|
|
|
+ PrevClassifyId=pData.EdbCode?0:pData.ClassifyId
|
|
|
+
|
|
|
+ PrevEdbInfoId=pData.EdbCode?pData.EdbInfoId:0
|
|
|
+
|
|
|
+ const nData=list[targetIndex+1].data
|
|
|
+ NextClassifyId=nData.EdbCode?0:nData.ClassifyId
|
|
|
+ NextEdbInfoId=nData.EdbCode?nData.EdbInfoId:0
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ const params={
|
|
|
+ ClassifyId,
|
|
|
+ ParentClassifyId,
|
|
|
+ EdbInfoId,
|
|
|
+ PrevClassifyId,
|
|
|
+ NextClassifyId,
|
|
|
+ PrevEdbInfoId,
|
|
|
+ NextEdbInfoId
|
|
|
+ }
|
|
|
+ console.log(params);
|
|
|
+ preDictEdbInterface.classifyMoveSort(params).then(res=>{
|
|
|
+ if(res.Ret===200){
|
|
|
+ this.$message.success('移动成功!')
|
|
|
+ }
|
|
|
+ this.getTreeData()
|
|
|
+ })
|
|
|
},
|
|
|
|
|
|
/* 拖拽覆盖添加背景色 */
|
|
@@ -263,30 +225,18 @@ export default {
|
|
|
/* 判断节点是否能被拖入 */
|
|
|
canDropHandle(draggingNode, dropNode, type) {
|
|
|
let canDrop = false;
|
|
|
- // 移动的是一级目录
|
|
|
- if (draggingNode.level === 1 && dropNode.level === 1 &&type!=='inner') {
|
|
|
- canDrop = true;
|
|
|
- }
|
|
|
-
|
|
|
- // 二级目录
|
|
|
- if(draggingNode.level===2){
|
|
|
- if((dropNode.level===1&&type==='inner')||(dropNode.level===2&&type!=='inner')){
|
|
|
- canDrop=true
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- //三级目录
|
|
|
- if(draggingNode.level===3){
|
|
|
- if((dropNode.level===2&&type==='inner')||(dropNode.level===3&&type!=='inner')){
|
|
|
- canDrop=true
|
|
|
- }
|
|
|
- }
|
|
|
- //四级指标层
|
|
|
- if(draggingNode.level===4){
|
|
|
- if((dropNode.level===3&&type==='inner')||(dropNode.level===4&&type!=='inner')){
|
|
|
- canDrop=true
|
|
|
- }
|
|
|
- }
|
|
|
+ // 如果拖动的是指标
|
|
|
+ if(draggingNode.data.EdbCode){
|
|
|
+ if(!(dropNode.level===1&&type!=='inner')){
|
|
|
+ canDrop=true
|
|
|
+ }
|
|
|
+ }else{//拖动的是目录
|
|
|
+ // console.log(dropNode.level,draggingNode.level);
|
|
|
+ //目录只能拖动到层级比他大的里面去
|
|
|
+ if(dropNode.level<draggingNode.level||(dropNode.level===draggingNode.level&&type!=='inner')){
|
|
|
+ canDrop=true
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
return canDrop;
|
|
|
},
|