elementUI vue tree input 懶載入 輸入下拉樹型示例

来源:https://www.cnblogs.com/yysbolg/archive/2018/10/29/9871068.html
-Advertisement-
Play Games

elementUI vue tree input 懶載入 輸入下拉樹型示例 ...




<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!-- import CSS -->
    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
    <style>
        .el-tree{
            position:absolute;
            cursor:default;
            background:#fff;
            color:#606266;
            z-index:100;
            border:1px solid #dcdfe6;
            border-radius:5px;
            width:100%;
        }
    </style>
</head>
<body>
<div id="app">
    <el-form ref="projectOrg" v-model="projectOrg" label-width="140px" size="mini">
        <el-form-item ref="treeParent" label="維護機構" prop="projectOrg">
            <el-input @click.native="projectOrgFun" v-model="searchOrgId" placeholder="請輸入維護機構" readonly></el-input>
            <el-tree
                    v-show="ishowTree"
                    show-checkbox
                    lazy
                    ref="tree"
                    highlight-current
                    @check-change="currentchange"
                    :load="getOrgList"
                    @node-click="handleNodeClick"
                    :props="defaultProps">
            </el-tree>
        </el-form-item>
    </el-form>
</div>
<!-- import Vue before Element -->
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<!-- import JavaScript -->
<script src="https://unpkg.com/element-ui/lib/index.js"></script>

<script>
    new Vue({
        el: '#app',
        data: function () {
            return {
                input: [],
                searchOrgId: '',
 

 

        //保存被選中的ID, 提交的時候按字元串提交:
        // var organCodesList=this.organCodes.join(","),
        // 後臺解析的時候使用:
        //String[] organCodes=organCodesList.split(",");
                organCodes: [],
                ishowTree: false,
                defaultProps: {
                    children: 'children',
                    label: 'label',
                },
                projectOrg: '',
            }
        },

        //載入完成時調用
        created: function () {
        },
        //方法
        methods: {
            //樹型點擊
            currentchange(data, ischeck) {
                console.log(data);
                if (!ischeck) {
                    var index = this.input.findIndex(d => d === data.label);
                    this.input.splice(index, 1);
                    this.organCodes.splice(index, 1);
                } else {
                    this.input.push(data.label);
                    this.organCodes.push(data.id);
                }
                console.log(this.organCodes);
                var that = this;
                that.$refs.tree.$el.onmouseleave = function () {
                    that.ishowTree = false;
                }
                that.searchOrgId = this.input.toString();
            },
            projectOrgFun() {
                if(this.ishowTree){
                    this.ishowTree = false;
                }else{
                    this.ishowTree = true;
                }
                var that = this;
                that.$refs.tree.$el.onmouseleave = function () {
                    that.ishowTree = false;
                }
                that.$refs.treeParent.$el.onmouseleave = function () {
                    that.ishowTree = false;
                }
            },
            projectOrgFalse(){
                this.ishowTree = false;
            },
            handleNodeClick(data) {
                console.log(data);
            },
            getOrgList(node, resolve) {
                let that = this;
                console.log(node);

                //等於0表示根節點
                if (node.level == 0) {
                    //請求數據
                    // that.getFirstRootNodeData(resolve);
                    //模擬數據
                    var FirstRootNodeData = [{
                        id: '1',
                        label: "初始根節點01"
                    }, {
                        id: '2',
                        label: "初始根節點02"
                    }];
                    resolve(FirstRootNodeData);
                    //直接返回
                    return;
                } else {
                    //請求數據(傳送要請求的根節點的id)
                    console.log(node.data.id);
                    // that.getLeafNodeData(node.data.id,resolve);
                    //模擬數據
                    var LeafNodeData = [{
                        id: '1',
                        label: "葉子節點01"
                    }, {
                        id: '2',
                        label: "葉子節點02"
                    }, {
                        id: '2',
                        label: "葉子節點02"
                    }];
                    resolve(LeafNodeData);
                    return;
                }
            }
        },
    })
</script>
</body>
</html>

 

 

顯示效果:


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • css3新單位vw、vh、vmin、vmax vh: 相對於視窗的高度, 視窗被均分為100單位的vh; vw: 相對於視窗的寬度, 視窗被均分為100單位的vw; vmax: 相對於視窗的寬度或高度中較大的那個。其中最大的那個被均分為100單位的vmax; vmin: 相對於視窗的寬度或高度中較小 ...
  • Arguments:其實是命令行輸入“lessc file.less file.css”後者指定路徑 Output Paths to refresh:刷新changed後.css文件 ...
  • 聲明 本系列文章內容全部梳理自以下四個來源: 《HTML5權威指南》 《JavaScript權威指南》 "MDN web docs" "Github:smyhvae/web" 作為一個前端小白,入門跟著這四個來源學習,感謝作者的分享,在其基礎上,通過自己的理解,梳理出的知識點,或許有遺漏,或許有些理 ...
  • Document ...
  • 聲明 本系列文章內容全部梳理自以下四個來源: 《HTML5權威指南》 《JavaScript權威指南》 "MDN web docs" "Github:smyhvae/web" 作為一個前端小白,入門跟著這四個來源學習,感謝作者的分享,在其基礎上,通過自己的理解,梳理出的知識點,或許有遺漏,或許有些理 ...
  • Document //js的對象的寫法 //函數一句 ...
  • Axios 中文:https://www.kancloud.cn/yunye/axios/234845 github:https://github.com/axios/axios 1.安裝 npm install axios 2.引入載入 import Axios from "axios" Vue. ...
  • 項目初始化 1.安裝vue cli npm install g vue cli 2.初始化項目 vue init webpack my project 3.進入項目 cd my project 4.安裝依賴 npm install 5.啟動項目 npm run dev 項目目錄結構 index.ht ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...