<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        vue基于Element構建自定義樹的示例代碼

        來源:懂視網 責編:小采 時間:2020-11-27 22:29:15
        文檔

        vue基于Element構建自定義樹的示例代碼

        vue基于Element構建自定義樹的示例代碼:說明 做項目的時候要使用到一個自定義的樹形控件來構建表格樹,在github上搜了一下沒有搜索到合適的(好看的)可以直接用的,查看Element的組件說明時發現它的Tree控件可以使用render來自定義節點樣式,于是基于它封裝了一個可以增、刪、改的樹形組件,現在
        推薦度:
        導讀vue基于Element構建自定義樹的示例代碼:說明 做項目的時候要使用到一個自定義的樹形控件來構建表格樹,在github上搜了一下沒有搜索到合適的(好看的)可以直接用的,查看Element的組件說明時發現它的Tree控件可以使用render來自定義節點樣式,于是基于它封裝了一個可以增、刪、改的樹形組件,現在

        說明

        做項目的時候要使用到一個自定義的樹形控件來構建表格樹,在github上搜了一下沒有搜索到合適的(好看的)可以直接用的,查看Element的組件說明時發現它的Tree控件可以使用render來自定義節點樣式,于是基于它封裝了一個可以增、刪、改的樹形組件,現在分享一下它的使用與實現。

        控件演示

        github上掛的gif可能會比較卡,有沒有大佬知道還有哪里可以掛靜態資源的,謝謝。!

        控件使用

        概要

      1. 基于element-ui樹形控件的二次封裝
      2. 提供編輯、刪除節點的接口
      3. 提供一個next鉤子,在業務處理失敗時可使用next(false)回滾操作
      4. 控件源碼見 github
      5. 文檔

        props

        屬性 說明 類型
        value 源數據,可使用v-model雙向綁定 Array

        events

        事件名 說明 參數
        SaveEdit 點擊編輯或者添加樹節點后的保存事件 (父節點數據、當前節點數據、next)
        DelNode 刪除節點事件 (父節點數據、當前節點數據、next)
        NodeClick 節點點擊事件 (當前節點數據)

        源數據描述

        屬性 說明
        value 樹節點的唯一標識
        label 樹節點的顯示名稱
        status (1:編輯狀態)(0:顯示狀態)(-1不可編輯狀態)
        children 子節點數據

        調用示例

         <m-tree
         v-model="tableTree"
         @SaveEdit="SaveEdit"
         @DelNode="DelNode"
         @NodeClick="handleNodeClick"></m-tree>
        
        SaveEdit(parentNode,data,next){
         var param = {
         parentNode:parentNode,
         node:data
         }
         this.$http.post(URL,param).then((response) => {
         if(response.status == 200){
         next(true,response.body.data.nodeId)
         }else{
         next(false)
         }
         })
        }
        
        

        實現方式

        構建子節點的模板

         <span class="span_item">
         <span @click="Expanded">
         <Input v-if="node.status == 1" style="width: 100px;" v-model="node.label" size="small" ></Input>
         <Icon v-if="node.status == 0" type="asterisk"></Icon>
         <Icon v-if="node.status == -1" type="ios-keypad-outline"></Icon>
         <span v-if="node.status != 1">{{node.label}}</span>
         </span>
         <span v-if="node.status == 1">
         <Button style="margin-left: 8px;" size="small" type="success" icon="checkmark-circled" @click="SaveEdit">確認</Button>
         <Button style="margin-left: 8px;" size="small" type="ghost" icon="checkmark-circled" @click="CancelEdit">取消</Button>
         </span>
         <span class="span_icon">
         <Icon v-if="node.status == 0" style="margin-left: 8px" color="gray" type="edit" size="16" @click.native="OpenEdit"></Icon>
         <Icon v-if="node.status == 0" style="margin-left: 8px" type="plus-round" color="gray" size="16" @click.native="Append"></Icon>
         <Icon v-if="node.status == 0&&node.children.length < 1" style="margin-left: 8px" type="ios-trash" color="red" size="18" @click.native="Delete"></Icon>
         </span>
         </span>
        

        子節點通過$emit通知父節點事件

        SaveEdit(){
         //保存節點事件
         this.$emit('SaveEdit',this.nodeData)
        },

        父節點核心實現,使用renderContent函數加載子節點模板,點擊保存節點時將業務參數保存在runParam中用于在業務操作失?。ňW絡請求失敗、服務端異常等情況)的數據回滾

         <el-tree
         class="filter-tree"
         style="overflow:auto;"
         :data="treeData"
         :filter-node-method="filterNode"
         @node-click="handleNodeClick"
         ref="tree"
         node-key="value"
         :expand-on-click-node="false"
         :render-content="renderContent"
         default-expand-all>
         </el-tree>
         //子節點模板
         renderContent(h, { node, data, store }) {
         return h(TreeItem,{
         props:{
         value:data,
         treeNode:node
         },
         on:{
         input:(node)=>{
         data = node
         },
         Append: () => {
         node.expanded = true
         data.children.push({ value: this.$utilHelper.generateUUID(), label: '請輸入模塊名稱', children: [],status:1,isAdd:true })
         },
         //保存節點
         SaveEdit:(nodeData)=> {
         //遞歸查找父節點
         var parentNode = this.$utilHelper.getNode(this.treeData,data.value).parentNode
         this.runParam.parentNode = parentNode
         this.runParam.data = data
         this.runParam.nodeData = nodeData
         this.$emit('SaveEdit',parentNode,data,this.CanSaveNext)
         }
         }
         })
         }

        操作結果鉤子,如果next函數傳入false則判定操作失敗,使用runParam中的參數進行回滾,該節點的編輯保存操作將無效

        源碼demo:calebman/vue-DBM

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        vue基于Element構建自定義樹的示例代碼

        vue基于Element構建自定義樹的示例代碼:說明 做項目的時候要使用到一個自定義的樹形控件來構建表格樹,在github上搜了一下沒有搜索到合適的(好看的)可以直接用的,查看Element的組件說明時發現它的Tree控件可以使用render來自定義節點樣式,于是基于它封裝了一個可以增、刪、改的樹形組件,現在
        推薦度:
        標簽: 使用 VUE 自定義
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 99re视频精品全部免费| 黄床大片免费30分钟国产精品| 免费无码VA一区二区三区| 2048亚洲精品国产| 国产成人无码免费看片软件| 亚洲国产成人a精品不卡在线| 婷婷国产偷v国产偷v亚洲| 四虎亚洲国产成人久久精品| 污视频网站免费观看| 久久精品亚洲乱码伦伦中文| 99re6在线视频精品免费| 亚洲第一AV网站| 欧洲一级毛片免费| 在线观看亚洲AV日韩AV| 午夜免费福利在线观看| 国产AV日韩A∨亚洲AV电影| 免费v片视频在线观看视频| 亚洲精品国产日韩无码AV永久免费网| 中文字幕专区在线亚洲| 男人j进入女人j内部免费网站| 99久久亚洲综合精品成人网| 可以免费看黄视频的网站| 亚洲综合激情五月丁香六月| 国产一级大片免费看| 精品免费久久久久国产一区 | 亚洲免费视频在线观看| 四虎成年永久免费网站| 亚洲精品综合在线影院| 久久久久亚洲精品男人的天堂| 国产一精品一AV一免费| 亚洲国产成人精品无码一区二区 | 免费涩涩在线视频网| 国产福利免费视频| 亚洲免费黄色网址| 亚洲美女高清一区二区三区 | 香港一级毛片免费看| 亚洲AV无码第一区二区三区 | 亚洲成a人片在线观看老师| 久久久久高潮毛片免费全部播放 | 亚洲精品你懂的在线观看| 毛片免费全部播放一级|