Tree 樹形控件自定義顯示樣式與hover事件綁定實現添加、刪除和修改

Element Tree 樹形控件自定義顯示樣式與hover事件綁定實現添加、刪除和修改

最近在搞erp項目對應後臺的管理功能,爲了加速開發使用了 vue-element-admin 開發,使用的是elementUi框架,在項目中使用element的樹形控件的時候遇到點問題,分享給大家。
首先先了解一下樹形控件: elementTree 樹形控件.

我的項目需求是實現鼠標hover上去的時候在對應的樹形結構後面顯示 添加 修改 和 刪除 並實現功能,查看了對應element文檔剛好有類似的功能,

在這裏插入圖片描述
這個自定義結點內容寫的也未免有點太唐突了點…要完成項目需求是遠遠不夠的,再往下找,沒有了


當我嘗試使用element的自定義結點,給對應的結點添加v-show="false"發現卻並沒有起作用,懷疑是自己寫法錯誤,找一個案例測了一下,不是我的問題,想起來曾經使用過iview腳手架,也做過類似的操作於是找了出來.修改一下完成了需求

   <--這是我的樹形控件--> 
    <el-tree :data="data4" show-checkbox node-key="value" default-expand-all :expand-on-click-node="false" :render-content="renderContent">
    </el-tree>


renderContent 是自定義顯示的回掉 綁定的data4是參照element但是我讓添加了一個is_show 字段,後來想想可以使用本地中間變量來判斷

renderContent(h, {
                node,
                data,
                store
            }) {
                return h('span', {
                    style: {
//                        color: "red",
                    },
                    //這裏添加hover事件
                    on: {
                        'mouseenter': () => {
                            data.is_show = true;
                        },
                        //鼠標離開
                        'mouseleave': () => {
                            data.is_show = false;
                        }
                    }
                }, [
                    h('span', {
                        //顯示名稱
                    }, node.label),
                    h('span', {
                        style: {
                            display: data.is_show ? '' : 'none',
                        },
                    }, [
                        //添加
                        h('el-button', {
                            props: {
                                type: 'text',
                                size: 'small',
                            },
                            style: {
                                marginLeft:"15px",
                            },
                            on: {
                                click: () => {
                                    this.append(data)
                                }
                            }
                        }, "添加"),
                        h('el-button', {
                            props: {
                                type: 'text',
                                size: 'small',
                            },
                            style: {

                            },
                            on: {
                                click: () => {
                                    this.amend(data)
                                }
                            }
                        }, "修改"),
                        h('el-button', {
                            props: {
                                type: 'text',
                                size: 'small',
                            },
                            style: {

                            },
                            on: {
                                click: () => {
                                    this.remove(node, data)
                                }
                            }
                        }, "刪除"),
                    ]),
                ]);
            }


這些工作做完了來看一下效果(數據僅爲模擬數據)

大功告成,添加,修改,和刪除就簡單了這裏就不貼出來了,
另外,在添加鼠標事件的時候還遇到一個問題,比如click事件這樣寫

on: {
                                click: () => {
                                    this.append(data)
                                }
                            }


但是鼠標事件就得添加"",

on: {
                        'mouseenter': () => {
                            data.is_show = true;
                        },
                        //鼠標離開
                        'mouseleave': () => {
                            data.is_show = false;
                        }
                    }


還是有點坑的…!
————————————————
轉載 : https://blog.csdn.net/wxfdpp/article/details/83624460

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章