欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue使用zTree插件封裝樹組件操作示例

 更新時間:2019年04月25日 11:46:15   作者:guanguan0_0  
這篇文章主要介紹了Vue使用zTree插件封裝樹組件操作,結(jié)合實例形式分析了vue.js整合zTree插件實現(xiàn)樹組件與使用相關(guān)操作技巧,需要的朋友可以參考下

本文實例講述了Vue使用zTree插件封裝樹組件操作。分享給大家供大家參考,具體如下:

1.通過npm安裝jquery

npm install jquery --save-dev

2.在build/webpack.base.conf文件當中引入jquery

module.exports = {
  ...
  resolve: {
    extensions: ['.js', '.vue', '.json'],
    alias: {
      'vue$': 'vue/dist/vue.esm.js',
      '@': resolve('src'),
      'jquery': path.resolve(__dirname, '../node_modules/jquery/src/jquery')
    }
  },
  ...
}

3.在項目根目錄創(chuàng)建一個文件夾plugins,將zTree的js文件放進去

4.將zTree的樣式文件放在static文件夾下(放在別的地方大飽之后會出現(xiàn)圖片路徑找不到等問題,放在static下打包時會避免ztree樣式的壓縮)。在main.js中引入該樣式:

import '../static/zTreeStyle/zTreeStyle.css'

5.創(chuàng)建公共組件ztree>index.vue,下面為我的公共組件

html:

<template>
  <div class="ztree">
    <el-row>
      <el-col :span="12">
        <el-button icon="el-icon-plus" size="mini" type="text" @click="add">新增節(jié)點</el-button>
      </el-col>
      <el-col :span="12">
        <el-button icon="el-icon-delete" type="text" size="mini" @click="remove">刪除節(jié)點</el-button>
      </el-col>
    </el-row>
    <ul id="treeDemo" class="ztree"></ul>
    </div>
</template>

js:

<script>
import '../../../plugins/zTree/jquery-1.4.4.min'
import '../../../plugins/zTree/jquery.ztree.core'
import '../../../plugins/zTree/jquery.ztree.excheck'
import '../../../plugins/zTree/jquery.ztree.exedit'
export default {
  props: {
    zNodes: {
      type: Array
    },
    selectedNodeId: ""
  },
  data() {
    return {
      selectedNode: {},
      setting: {
        view: {
          showIcon: false
        },
        edit: {
          enable: true,
          showRemoveBtn: false,
          showRenameBtn: false
        },
        data: {
          keep: {
            parent: true,
            leaf: true
          },
          simpleData: {
            enable: true
          }
        },
        callback: {
          onClick: this.zTreeOnClick,
          onRename: this.zTreeOnRename
        }
      }
    };
  },
  methods: {
    // 初始化ztree
    init() {
      $.fn.zTree.init($("#treeDemo"), this.setting, this.zNodes);
    },
    // 樹節(jié)點點擊事件
    zTreeOnClick: function(event, treeId, treeNode) {
      this.selectedNode = treeNode;
      this.$emit("treeClick", treeNode);
    },
    // 樹節(jié)點編輯名稱回調(diào)
    zTreeOnRename(event, treeId, treeNode, isCancel) {
      this.$emit("addNode", treeNode);
    },
    // 點擊添加按鈕事件
    add() {
      let newCount = 1;
      let zTree = $.fn.zTree.getZTreeObj("treeDemo"),
      nodes = zTree.getSelectedNodes(),
      treeNode = nodes[0];
      if (treeNode) {
        if (treeNode.level === 2) {
          this.$message("分類不能超過三級");
          return;
        } else {
          treeNode = zTree.addNodes(treeNode, {
            id: 100 + newCount,
            isParent: true,
            pId: treeNode.id,
            name: "new node" + newCount++
          });
        }
      } else {
        treeNode = zTree.addNodes(null, {
          id: 100 + newCount,
          isParent: true,
          pId: 0,
          name: "new node" + newCount++
        });
       }
      zTree.editName(treeNode[0]);
    },
    // 點擊刪除按鈕事件
    remove() {
      let zTree = $.fn.zTree.getZTreeObj("treeDemo"),
      nodes = zTree.getSelectedNodes(),
      treeNode = nodes[0];
      if (nodes.length == 0) {
        this.$message("請先選擇一個節(jié)點");
        return;
      } else {
        this.$confirm("此操作將永久刪除該節(jié)點, 是否繼續(xù)?", "提示", {
          confirmButtonText: "確定",
          cancelButtonText: "取消",
          type: "warning"
        })
        .then(() => {
          this.$emit("removeNode", treeNode);
        })
        .catch(() => {});
      }
    }
  },
  watch: {
    // 監(jiān)聽樹節(jié)點的變化更新樹
    zNodes: function(val) {
      this.init();
    },
  },
  mounted() {
    this.init();
  }
};
</script>

希望本文所述對大家vue.js程序設(shè)計有所幫助。

相關(guān)文章

  • Vue3 列表界面數(shù)據(jù)展示詳情

    Vue3 列表界面數(shù)據(jù)展示詳情

    這篇文章主要介紹了Vue3 列表界面數(shù)據(jù)展示,文章主要詳介紹的內(nèi)容就是做的就是把打到頁面的數(shù)據(jù),帶樣式,也就是說好看點顯示,需要的朋友可以參考一下
    2021-11-11
  • vue 輸入框輸入任意內(nèi)容返回數(shù)字的實現(xiàn)

    vue 輸入框輸入任意內(nèi)容返回數(shù)字的實現(xiàn)

    本文主要介紹了vue 輸入框輸入任意內(nèi)容返回數(shù)字的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-03-03
  • 解決vue2.0路由跳轉(zhuǎn)未匹配相應(yīng)用路由避免出現(xiàn)空白頁面的問題

    解決vue2.0路由跳轉(zhuǎn)未匹配相應(yīng)用路由避免出現(xiàn)空白頁面的問題

    今天小編就為大家分享一篇解決vue2.0路由跳轉(zhuǎn)未匹配相應(yīng)用路由避免出現(xiàn)空白頁面的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • vue-router 前端路由之路由傳值的方式詳解

    vue-router 前端路由之路由傳值的方式詳解

    這篇文章主要介紹了vue-router 前端路由之路由傳值的方式,本文通過兩種方式給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-04-04
  • vue中v-bind與v-model的區(qū)別舉例詳解

    vue中v-bind與v-model的區(qū)別舉例詳解

    這篇文章主要給大家介紹了關(guān)于vue中v-bind與v-model區(qū)別的相關(guān)資料,v-model和v-bind是Vue.js框架中的兩個常用指令,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2023-09-09
  • Vue 中 a標簽上href無法跳轉(zhuǎn)的解決方式

    Vue 中 a標簽上href無法跳轉(zhuǎn)的解決方式

    今天小編大家分享一篇Vue 中 a標簽上href無法跳轉(zhuǎn)的解決方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • vue中關(guān)于router.beforeEach()的用法

    vue中關(guān)于router.beforeEach()的用法

    這篇文章主要介紹了vue中關(guān)于router.beforeEach()的用法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 基于vue2的canvas時鐘倒計時組件步驟解析

    基于vue2的canvas時鐘倒計時組件步驟解析

    今天給大家介紹一款基于vue2的canvas時鐘倒計時組件,這個時鐘倒計時組件采用canvas動畫的炫酷動畫效果形式,根據(jù)剩余時間的多少變換顏色和旋轉(zhuǎn)扇形的速度,適合搶購、拍賣、下注等業(yè)務(wù)場景,且對移動端友好,需要的朋友可以參考下
    2018-11-11
  • unplugin-vue-components解決命名沖突問題

    unplugin-vue-components解決命名沖突問題

    這篇文章主要介紹了unplugin-vue-components解決命名沖突問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Vue實現(xiàn)遞歸組件的思路與示例代碼

    Vue實現(xiàn)遞歸組件的思路與示例代碼

    以簡單的樹形組件為案例,實現(xiàn)在組件中遞歸組件,下面這篇文章主要給大家介紹了關(guān)于Vue實現(xiàn)遞歸組件的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-09-09

最新評論