github原文連接: github.com/hql7/tree-t…vue
npm install el-tree-transfer --save
複製代碼
<!-- 使用樹形穿梭框組件 -->
<tree-transfer :from_data='fromData' :title='title' :to_data='toData'
:defaultProps="{label:'name'}" :pid='parentId'
@addBtn='add' @removeBtn='remove'
:mode='mode' height='340px' filter openAll
>
</tree-transfer>
複製代碼
import treeTransfer from 'el-tree-transfer' // 引入
複製代碼
//樹形穿梭框數據
mode: "transfer", // transfer addressList
parentId: 'parentId',
title: ['功能類別','功能權限'],
fromData:[],
toData:[],
複製代碼
//註冊組件
components: {
treeTransfer
},
複製代碼
/** 方法 start */
//獲取樹形數據
getPermissionTree() {
let param = {
roleId: '',
sysId: ''
}
permissionTree(param).then(res => {
if(res.code == 0){
console.log(res.data)
this.fromData = res.data.children;
}else{
this.$message({
message: res.msg,
type: 'warning'
})
}
})
},
// 切換模式 現有樹形穿梭框模式transfer 和通信錄模式addressList
changeMode() {
if (this.mode == "transfer") {
this.mode = "addressList";
} else {
this.mode = "transfer";
}
},
// 監聽穿梭框組件添加
add(fromData,toData,obj){
// 樹形穿梭框模式transfer時,返回參數爲左側樹移動後數據、右側樹移動後數據、移動的{keys,nodes,halfKeys,halfNodes}對象
// 通信錄模式addressList時,返回參數爲右側收件人列表、右側抄送人列表、右側密送人列表
console.log("fromData:", fromData);
console.log("toData:", toData);
console.log("obj:", obj);
//遞歸遍歷樹形結構
function getRoleId(obj){
for(var i in obj){
//輸出每一個節點id
console.log(obj[i].id)
if(obj[i].children){
//若是存在子樹,遞歸調用函數
getRoleId(obj[i].children)
}
}
}
getRoleId(toData)
},
// 監聽穿梭框組件移除
remove(fromData,toData,obj){
// 樹形穿梭框模式transfer時,返回參數爲左側樹移動後數據、右側樹移動後數據、移動的{keys,nodes,halfKeys,halfNodes}對象
// 通信錄模式addressList時,返回參數爲右側收件人列表、右側抄送人列表、右側密送人列表
console.log("fromData:", fromData);
console.log("toData:", toData);
console.log("obj:", obj);
}
/** 方法 end */
複製代碼
{
"code":"0",
"data":{
"children":[
{
"children":[
{
"collected":false,
"createTime":"2019-10-30 23:42:56",
"desc":"角色管理",
"icon":"http://192.168.3.20/group1/M00/00/37/wKgDFF2wPiiARsaJAAAu6pZE5A8893.png",
"id":219,
"modifyTime":"2019-10-30 23:44:25",
"name":"角色管理",
"parentId":1,
"permission":"role:page",
"sysId":1
}
],
"collected":false,
"createTime":"2019-10-15 18:02:01",
"desc":"用戶管理",
"icon":"http://192.168.3.20/group1/M00/00/37/wKgDFF2wPiiARsaJAAAu6pZE5A8893.png",
"id":1,
"modifyTime":"2019-10-26 01:25:25",
"name":"用戶管理",
"parentId":0,
"permission":"usermanagement:page",
"sysId":1,
"url":"/#/usermanagement"
},
{
"collected":false,
"createTime":"2019-10-18 01:50:16",
"desc":"發佈節目",
"icon":"http://192.168.3.20/group1/M00/00/38/wKgDFF2w_CeAR8BdAAAbGDTayng433.png",
"id":6,
"modifyTime":"2019-10-26 01:25:40",
"name":"發佈節目",
"parentId":0,
"permission":"releaseprogram:page",
"sysId":1,
"url":"/#/releaseprogram"
},
{
"children":[
{
"collected":false,
"createTime":"2019-10-18 01:53:24",
"desc":"學生信息",
"icon":"http://192.168.3.20/group1/M00/00/38/wKgDFF2w_DiAAxZHAAAhYmLGJZw271.png",
"id":8,
"modifyTime":"2019-10-26 01:25:46",
"name":"學生信息",
"parentId":7,
"permission":"students:page",
"sysId":1,
"url":"/#/customized/students"
},
{
"collected":false,
"createTime":"2019-10-18 01:53:29",
"desc":"班級信息",
"icon":"http://192.168.3.20/group1/M00/00/38/wKgDFF2w_EKAfXtGAAAivGUk2Ds368.png",
"id":9,
"modifyTime":"2019-10-26 01:26:26",
"name":"班級信息",
"parentId":7,
"permission":"classInfo:page",
"sysId":1,
"url":"/#/customized/classInfo"
},
{
"collected":false,
"createTime":"2019-10-18 01:53:29",
"desc":"班級榮譽",
"icon":"http://192.168.3.20/group1/M00/00/39/wKgDFF24FOiAJP01AAAye6tm83g117.png",
"id":10,
"modifyTime":"2019-10-30 02:31:05",
"name":"班級榮譽",
"parentId":7,
"permission":"classHonor:page",
"sysId":1,
"url":"/#/customized/classHonor"
},
{
"collected":false,
"createTime":"2019-10-18 01:53:30",
"desc":"學習標兵",
"icon":"http://192.168.3.20/group1/M00/00/39/wKgDFF24Ff2AQCRZAAAWXgURDWQ225.png",
"id":11,
"modifyTime":"2019-10-30 02:35:43",
"name":"學習標兵",
"parentId":7,
"permission":"modelStudents:page",
"sysId":1,
"url":"/#/customized/modelStudents"
},
{
"collected":false,
"createTime":"2019-10-18 01:56:37",
"desc":"班級相冊",
"icon":"http://192.168.3.20/group1/M00/00/39/wKgDFF24FWmAC1-cAAAuJ3YEngw503.png",
"id":12,
"modifyTime":"2019-10-30 02:33:14",
"name":"班級相冊",
"parentId":7,
"permission":"classAlbum:page",
"sysId":1,
"url":"/#/customized/classAlbum"
},
{
"collected":false,
"createTime":"2019-10-18 01:56:37",
"desc":"課程表",
"icon":"http://192.168.3.20/group1/M00/00/38/wKgDFF2w_JuAYESwAAAgKG6WwTo134.png",
"id":13,
"modifyTime":"2019-10-26 01:26:39",
"name":"課程表",
"parentId":7,
"permission":"schedule:page",
"sysId":1,
"url":"/#/customized/schedule"
},
{
"collected":false,
"createTime":"2019-10-18 01:56:37",
"desc":"值日表",
"icon":"http://192.168.3.20/group1/M00/00/38/wKgDFF2w_KKAZr-tAAAfswZJdEk487.png",
"id":14,
"modifyTime":"2019-10-26 01:26:41",
"name":"值日表",
"parentId":7,
"permission":"onduty:page",
"sysId":1,
"url":"/#/customized/onduty"
},
{
"collected":false,
"createTime":"2019-10-18 01:56:37",
"desc":"上課時間",
"icon":"http://192.168.3.20/group1/M00/00/38/wKgDFF2w_LCAYLOlAAAh6FW1LEI710.png",
"id":15,
"modifyTime":"2019-10-26 01:26:44",
"name":"上課時間",
"parentId":7,
"permission":"courseTime:page",
"sysId":1,
"url":"/#/customized/courseTime"
},
{
"collected":false,
"createTime":"2019-10-18 01:56:38",
"desc":"做業",
"icon":"http://192.168.3.20/group1/M00/00/38/wKgDFF2w_LaALlt6AAAgsUrKhcE570.png",
"id":16,
"modifyTime":"2019-10-26 01:26:46",
"name":"做業",
"parentId":7,
"permission":"homework:page",
"sysId":1,
"url":"/#/customized/homework"
},
{
"collected":false,
"createTime":"2019-10-18 01:56:38",
"desc":"公開課",
"icon":"http://192.168.3.20/group1/M00/00/38/wKgDFF2w_L-AE5A5AAAWBx3iYt4230.png",
"id":17,
"modifyTime":"2019-10-26 01:26:49",
"name":"公開課",
"parentId":7,
"permission":"openClass:page",
"sysId":1,
"url":"/#/customized/openClass"
},
{
"collected":false,
"createTime":"2019-10-18 01:57:20",
"desc":"考勤設置",
"icon":"http://192.168.3.20/group1/M00/00/38/wKgDFF24DrWAY1nyAAAcs65FGK0930.png",
"id":18,
"modifyTime":"2019-10-30 02:04:39",
"name":"考勤設置",
"parentId":7,
"permission":"attendanceTime:page",
"sysId":1,
"url":"/#/customized/attendanceTime"
},
{
"collected":false,
"createTime":"2019-10-18 01:57:20",
"desc":"考勤記錄",
"icon":"http://192.168.3.20/group1/M00/00/38/wKgDFF2w_MqAZeQ9AAAic2eGjZA744.png",
"id":19,
"modifyTime":"2019-10-26 01:26:52",
"name":"考勤記錄",
"parentId":7,
"permission":"attendance:page",
"sysId":1,
"url":"/#/customized/attendance"
},
{
"collected":false,
"createTime":"2019-10-18 01:57:21",
"desc":"通知公告",
"icon":"http://192.168.3.20/group1/M00/00/38/wKgDFF2w_M-ADNAhAAAb9mvlM4M088.png",
"id":20,
"modifyTime":"2019-10-26 01:26:55",
"name":"通知公告",
"parentId":7,
"permission":"notic:page",
"sysId":1,
"url":"/#/customized/notic"
},
{
"collected":false,
"createTime":"2019-10-18 01:57:21",
"desc":"社團活動",
"icon":"http://192.168.3.20/group1/M00/00/38/wKgDFF2w_NmAQ7c7AAAic2eGjZA896.png",
"id":21,
"modifyTime":"2019-10-26 01:26:58",
"name":"社團活動",
"parentId":7,
"permission":"societies:page",
"sysId":1,
"url":"/#/customized/societies"
},
{
"collected":false,
"createTime":"2019-10-18 01:57:22",
"desc":"校園動態",
"icon":"http://192.168.3.20/group1/M00/00/38/wKgDFF2w_aeAZZI3AAAVBmFjT3U586.png",
"id":22,
"modifyTime":"2019-10-26 01:27:01",
"name":"校園動態",
"parentId":7,
"permission":"schoolNews:page",
"sysId":1,
"url":"/#/customized/schoolNews"
},
{
"collected":false,
"createTime":"2019-10-18 01:57:23",
"desc":"考試",
"icon":"http://192.168.3.20/group1/M00/00/38/wKgDFF24D1eAb5RLAABLbCUaWPw133.png",
"id":25,
"modifyTime":"2019-10-30 02:07:21",
"name":"考試",
"parentId":7,
"permission":"exam:page",
"sysId":1,
"url":"/#/customized/exam"
},
{
"collected":false,
"createTime":"2019-10-18 01:57:24",
"desc":"食堂",
"icon":"http://192.168.3.20/group1/M00/00/38/wKgDFF2w_ZCAXaCdAAATiS3efmI140.png",
"id":26,
"modifyTime":"2019-10-26 01:27:06",
"name":"食堂",
"parentId":7,
"permission":"canteen:page",
"sysId":1,
"url":"/#/customized/canteen"
},
{
"collected":false,
"createTime":"2019-10-18 01:57:25",
"desc":"充值、激活",
"icon":"http://192.168.3.20/group1/M00/00/38/wKgDFF24EW-ALGJLAAA2lelzJ30355.png",
"id":27,
"modifyTime":"2019-10-30 02:17:16",
"name":"充值、激活",
"parentId":7,
"permission":"cards:page",
"sysId":1,
"url":"/#/customized/cards"
},
{
"collected":false,
"createTime":"2019-10-18 01:57:25",
"desc":"IP電話套餐",
"icon":"http://192.168.3.20/group1/M00/00/38/wKgDFF24EdmAQdeqAAAqa7yajNo327.png",
"id":28,
"modifyTime":"2019-10-30 02:18:03",
"name":"IP電話套餐",
"parentId":7,
"permission":"ipPackage:page",
"sysId":1,
"url":"/#/customized/ipPackage"
},
{
"collected":false,
"createTime":"2019-10-18 01:57:26",
"desc":"通話記錄",
"icon":"http://192.168.3.20/group1/M00/00/39/wKgDFF24EpOAJFY9AAB8cX3kVRo457.png",
"id":29,
"modifyTime":"2019-10-30 02:21:08",
"name":"通話記錄",
"parentId":7,
"permission":"callRecords:page",
"sysId":1,
"url":"/#/customized/callRecords"
},
{
"collected":false,
"createTime":"2019-10-18 01:57:42",
"desc":"帳單查詢",
"icon":"http://192.168.3.20/group1/M00/00/38/wKgDFF24EhGAYfzXAAC5S89Wkbk580.png",
"id":30,
"modifyTime":"2019-10-30 02:18:59",
"name":"帳單查詢",
"parentId":7,
"permission":"cardBill:page",
"sysId":1,
"url":"/#/customized/cardBill"
}
],
"collected":false,
"createTime":"2019-10-18 01:52:30",
"desc":"定製化頁面",
"icon":"http://192.168.3.20/group1/M00/00/38/wKgDFF2w_DCAMXJ8AAAcs65FGK0459.png",
"id":7,
"modifyTime":"2019-10-26 01:25:43",
"name":"定製化頁面",
"parentId":0,
"permission":"customized:page",
"sysId":1,
"url":"/#/"
},
],
"collected":false,
"id":0
},
"msg":"操做成功"
}
複製代碼