使用el-tree-transfer的方式


1.首先在組件中引入el-tree-transfer

2.然后在template中使用注冊后的組件

  1. 參數:title 說明:標題 類型:Array 必填:false 默認:["源列表", "目標列表"]
  2. 事件:left-check-change 說明:左側源數據勾選事件 回調參數:function(nodeObj, treeObj)見el-tree組件check事件返回值
  3. 事件:right-check-change 說明:右側目標數據勾選事件 回調參數:function(nodeObj, treeObj)見el-tree組件check事件返回值
  4. 參數:from_data 說明:源數據 類型:Array 必填:true 補充:數據格式同element-ui tree組件,但必須有id和pid
  5. 參數:to_data 說明:目標數據 類型:Array 必填:true 補充:數據格式同element-ui tree組件,但必須有id和pid
  6. 參數:defaultProps 說明:配置項-同el-tree中props 必填: false 補充:用法和el-tree的props一s樣
  7. 監聽穿梭組件的添加和移除
  8.  // 監聽穿梭框組件添加 addBth(fromData,toData,obj){ // 樹形穿梭框模式transfer時,返回參數為左側樹移動后數據、右側樹移動后數據、移動的 {keys,nodes,halfKeys,halfNodes}對象 // 通訊錄模式addressList時,返回參數為右側收件人列表、右側抄送人列表、右側密送人列表 console.log("fromData:", fromData); console.log("toData:", toData); console.log("obj:", obj); }, // 監聽穿梭框組件移除 removeBth(fromData,toData,obj){ // 樹形穿梭框模式transfer時,返回參數為左側樹移動后數據、右側樹移動后數據、移動的{keys,nodes,halfKeys,halfNodes}對象 // 通訊錄模式addressList時,返回參數為右側收件人列表、右側抄送人列表、右側密送人列表 console.log("fromData:", fromData); console.log("toData:", toData); console.log("obj:", obj); }
  9. 參數:mode 說明:設置模式,字段可選值為transfer|addressList 類型:String 必填:false 補充:mode默認為transfer模式,即樹形穿梭框模式,可配置字段為addressList改為通訊錄模式,通訊錄模式時按鈕不可自定義名字,如要自定義標題名在title數組傳入四個值即可,addressList模式時標題默認為通訊錄、收件人、抄送人、密送人
  10. 參數:filter 說明:是否開啟篩選功能 類型:Boolean 必填:false
  11. 參數:openAll 說明:是否默認展開全部 類型:Boolean 必填:false

 

這是我使用的幾個參數和方法,做一下介紹,具體觀看:https://segmentfault.com/a/1190000015553081

  3.接下來就需要使用props傳值啦,需要兩個參數一個是ismentrees2(組件的顯示隱藏)toData(回顯的數據)

4.初始化的時候,請求數據,判斷是否需要右側回顯數據

 

 

 依賴沒有回顯,so,在請求后數據后,先做一個判斷組件右側是否有數據,有的話,(_this.toData.length > 0)  做了一下去重,當左右側數據相等的時候(_this.toData == data),右側的數據為空,當沒有選中的數據時,左側的源數據正常顯示,

5.接下來是監聽添加和移除數據,然后保存到頁面中

這個tree組件就算完成,接下來就是在頁面中使用啦

   import tree from '@/components/subassembly/tree'; // 參與人員

 components:{
   tree
  }

     <tree @setmentree2="setmentree2" :toData="toData" @setmentdata2="setmentdata2" v-if="mentree2" ></tree>   

 // setmentree2 是tree組件的顯示隱藏

 // toData 是右側選中的數據 

// setmentdata2   處理組件返回的數據到頁面中

 由於給后台傳值傳的是字符串,前端需要一個數組來顯示,所以,做了一下數據處理   

 

 

最后效果圖一份

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM