|
@@ -395,10 +395,66 @@ export function useDepart(){
|
|
|
}
|
|
|
//树结构移动
|
|
|
function useTreeMove(){
|
|
|
- function checkAllowDrag(){}
|
|
|
- function checkAllowDrop(){}
|
|
|
- function handleDropOver(){}
|
|
|
+ //节点是否可拖拽:所有节点均可拖拽
|
|
|
+ function checkAllowDrag(){return true}
|
|
|
+ //节点是否可放入:仅支持同部门下,同级节点相互排序
|
|
|
+ function checkAllowDrop(draggingNode,dropNode,type){
|
|
|
+ if(type==='inner'){
|
|
|
+ /**
|
|
|
+ * 情况1
|
|
|
+ * draggingNode.level==2 dropNode.level==1
|
|
|
+ * draggingNode.TopId == dropNode.DepartmentId
|
|
|
+ * 情况2
|
|
|
+ * draggingNode.level==3 dropNode.level==2
|
|
|
+ * draggingNode.GroupId == dropNode.DepartmentId
|
|
|
+ */
|
|
|
+ const case_1 = draggingNode.level===2&&dropNode.level===1
|
|
|
+ && draggingNode.data.TopId === dropNode.data.DepartmentId
|
|
|
+ const case_2 = draggingNode.level===3&&dropNode.level===2
|
|
|
+ && draggingNode.data.GroupId == dropNode.data.DepartmentId
|
|
|
+ return case_1||case_2
|
|
|
+ }else if(draggingNode.level===dropNode.level){
|
|
|
+ /**
|
|
|
+ * 情况1
|
|
|
+ * draggingNode.level===dropNode.level===1
|
|
|
+ * 情况2
|
|
|
+ * draggingNode.level===dropNode.level
|
|
|
+ * draggingNode.TopId === dropNode.TopId||draggingNode.GroupId===dropNode.GroupId
|
|
|
+ */
|
|
|
+ const case_1 = dropNode.level===1
|
|
|
+ const case_2 = draggingNode.data.TopId&&dropNode.data.TopId&&draggingNode.data.TopId === dropNode.data.TopId
|
|
|
+ ||draggingNode.data.GroupId&&dropNode.data.GroupId&&draggingNode.data.GroupId===dropNode.data.GroupId
|
|
|
+ return case_1||case_2
|
|
|
+ }
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ //放入节点
|
|
|
+ let departTree = ref(null)
|
|
|
+ function handleDropOver(draggingNode,dropNode,type,e){
|
|
|
+ //获取当前移动节点的层级和id,parentId
|
|
|
+ //获取同层级的ids
|
|
|
+ const treeData = departTree.value.data||[]
|
|
|
+ const node = departTree.value.getNode(draggingNode.data.parentKey)||{data:{Child:[]}}
|
|
|
+ let params = {
|
|
|
+ DepartmentIds:[],
|
|
|
+ GroupIds:[],
|
|
|
+ TeamIds:[]
|
|
|
+ }
|
|
|
+ if(draggingNode.level===1){
|
|
|
+ params.DepartmentIds = treeData.map(i=>i.DepartmentId)
|
|
|
+ }else{
|
|
|
+ const ids = node.data.Child.map(i=>i.DepartmentId)
|
|
|
+ params.GroupIds = draggingNode.level===2?ids:[]
|
|
|
+ params.TeamIds =draggingNode.level===3?ids:[]
|
|
|
+ }
|
|
|
+ departInterence.sortDepart(params).then(res=>{
|
|
|
+ if(res.Ret!==200) return
|
|
|
+ ElMessage.success('移动排序成功')
|
|
|
+ getDepartArr()
|
|
|
+ })
|
|
|
+ }
|
|
|
return {
|
|
|
+ departTree,
|
|
|
checkAllowDrag,
|
|
|
checkAllowDrop,
|
|
|
handleDropOver
|