最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue+Elementui el-tree樹只能選擇子節(jié)點并且支持檢索功能

 更新時間:2024年12月03日 10:50:03   作者:沉默是金~  
這篇文章給大家介紹了Vue+Element UI el-tree樹只能選擇子節(jié)點并且支持檢索的文章,通過實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧

效果:

 只能選擇子節(jié)點 添加配置

添加檢索代碼

源碼:

<template>
  <div>
      <el-button  size="small" type="primary" clearable :disabled="disabled" @click="showSign">
        危險點評估
      </el-button>
    <!-- 規(guī)則綁定流程節(jié)點-->
    <el-dialog title="危險點評估" :visible.sync="show" v-if="show" width="700px" append-to-body>
      <el-form ref="formEvaluate" :model="formEvaluate"  label-width="80px">
        <el-form-item label="危險點">
          <el-input
            placeholder="輸入關鍵字進行檢索"
            clearable
            v-model="filterText">
          </el-input>
          <el-tree
            ref="Tree"
            :data="treeData"
            :show-checkbox="true"
            :check-strictly="true"
            node-key="id"
            default-expand-all
            :highlight-current="true"
            :expand-on-click-node="false"
            @node-click="nodeClick"
            :props="defaultProps"
            :check-on-click-node="true"
            @check="handleCheck"
            :filter-node-method="filterNode"
          >
              <span class="custom-tree-node" slot-scope="{ node, data }">
                <span>
                  <span class="custom-expand-icon" v-if="!data.children || data.children.length === 0">
                    <img src="@/assets/images/fl.png" class="icon" />
                  </span>
                  <span class="custom-expand-icon" v-else>
                    <img src="@/assets/images/home.png" class="icon" />
                  </span>
                  {{ data.treeName }}
                </span>
              </span>
          </el-tree>
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button @click="show = false">取 消</el-button>
        <el-button type="primary" @click="saveGz">確 定</el-button>
      </div>
    </el-dialog>
  </div>
</template>
<script>
import Treeselect from '@riophae/vue-treeselect';
import '@riophae/vue-treeselect/dist/vue-treeselect.css';
import { deptTreeSelect } from "@/api/system/user";
import { selectPcModelByTableZb } from '@/api/index-analysis/indicator-maintenance'
import { doubleTicketAppraise } from '@/api/flowable/definition'
export default {
  name: 'tsSelectTree',
  components: { Treeselect },
  props: {
    value: {
      default:''
    },
    conf: {
      type: Object
    },
    disabled: {}
  },
  data() {
    return {
      currentValue: undefined,
      filterText: '',
      options: [],
      list: [],
      loading: false,
      show:false,
      cache: [],
      input_val: this.value,
      object:this.conf,
      formEvaluate:{
        formName:null,
        formId:null,
        nodeId:null,
        nodeName:null,
        lcName:null,
        lcId:null,
        tableZbbmId:null,
        tableZbbmIds:[],
      },
      //規(guī)則數(shù)據(jù)
      treeData:[],
      //選中的數(shù)據(jù)json數(shù)組
      jsonData:[],
      evaluateArr:[],
      defaultProps: {
        children: "children",
        label: "label",
        disabled: function (data, node) {//帶子級的節(jié)點不能選中
          if (data.children && data.children.length > 0) {
            return true
          } else {
            return false
          }
        }
      },
    }
  },
  watch: {
    value: {
      handler(val) {
        if (val !== this.currentValue) {
          if (this.multiple) {
            if (Object.prototype.toString.call(val) === '[object String]') {
              try {
                this.currentValue = JSON.parse(val)
              } catch (e) {
                this.currentValue = val.split(',')
              }
            }
            if (Object.prototype.toString.call(val) === '[object Array]') {
              this.currentValue = val
            }
          } else {
            this.currentValue = val || undefined
          }
        }
      },
      immediate: true,
      deep: true
    },
    currentValue() {
      this.$emit('input', this.currentValue)
      this.$emit('change', this.currentValue)
    },
    filterText(val) {
      this.$refs.Tree.filter(val);
    }
  },
  created() {
    this.getDate()
    const object = this.object
    this.getTreeList()
  },
  methods: {
    filterNode(value, data) {
      if (!value) return true;
      return data.treeName.indexOf(value) !== -1;
    },
    handleCheck(data,node){
      this.evaluateArr = node.checkedNodes
    },
    // 點擊樹節(jié)點 多選邏輯todo
    nodeClick(data,node, indeterminate) {
      if(node.childNodes.length > 0){
        return
      }
    },
    cancel(){
      this.show = false
    },
    showSign() {
      this.show = true;
    },
    // 節(jié)點單擊事件
    handleNodeClick(data) {
      this.currentValue = data.label;
      sessionStorage.setItem('deptId',data.id)
      this.show = false
    },
    remoteMethod(query) {
      if (query !== '') {
        this.loading = true
        setTimeout(() => {
          this.getDate(query)
        }, 500)
      } else {
        this.options = this.cache
      }
    },
    getDate(query) {
      deptTreeSelect().then((response) => {
        // 獲取樹形的部門數(shù)據(jù)
        this.options = response.data;
        sessionStorage.setItem('deptInfo',this.options && JSON.stringify(this.options))
      });
    },
    getTreeList() {
      const params = {
        tableZb:'WXDPG'
      };
      selectPcModelByTableZb(params).then((response) => {
        this.treeData = response.data;
      });
    },
    saveGz(){
      this.formEvaluate.tableZbbmId = ''
      this.formEvaluate.tableZbbmIds = []
      const arr = this.evaluateArr
      if(this.evaluateArr.length ==0){
        this.$message.warning('請選擇一條危險點')
        return
      }
    },
  }
}
</script>

到此這篇關于Vue+Elementui el-tree樹只能選擇子節(jié)點并且支持檢索的文章就介紹到這了,更多相關Vue Elementui el-tree樹選擇子節(jié)點內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • vue仿淘寶滑動驗證碼功能(樣式模仿)

    vue仿淘寶滑動驗證碼功能(樣式模仿)

    淘寶大家都使用過,淘寶滑動驗證碼的目的是為了驗證到底是人還是機器,今天小編給大家分享的是模仿淘寶滑動驗證碼的樣式,感興趣的朋友跟隨小編一起看看吧
    2019-12-12
  • elementUI Vue 單個按鈕顯示和隱藏的變換功能(兩種方法)

    elementUI Vue 單個按鈕顯示和隱藏的變換功能(兩種方法)

    小編最近遇到這樣的需求,當點擊一個按鈕可以變換里面字的內(nèi)容,剛開始還真是一頭霧水,不知所措。仔細想想屢屢思緒,很容易的解決了。接下來通過本文給大家介紹elementUI Vue 單個按鈕顯示和隱藏的變換功能,需要的朋友可以參考下
    2018-09-09
  • vue頭部導航動態(tài)點擊處理方法

    vue頭部導航動態(tài)點擊處理方法

    這篇文章主要介紹了vue頭部導航動態(tài)點擊處理方法,文中通過一段示例代碼給大家介紹了vue實現(xiàn)動態(tài)頭部的方法,需要的朋友可以參考下
    2018-11-11
  • vue+watermark-dom實現(xiàn)頁面水印效果(示例代碼)

    vue+watermark-dom實現(xiàn)頁面水印效果(示例代碼)

    watermark.js 是基于 DOM 對象實現(xiàn)的 BS 系統(tǒng)的水印,確保系統(tǒng)保密性,安全性,降低數(shù)據(jù)泄密風險,簡單輕量,支持多屬性配置,本文將通過 vue 結合 watermark-dom 庫,教大家實現(xiàn)簡單而有效的頁面水印效果,感興趣的朋友跟隨小編一起看看吧
    2024-07-07
  • vue-router懶加載速度緩慢問題及解決方法

    vue-router懶加載速度緩慢問題及解決方法

    這篇文章主要介紹了vue-router懶加載速度緩慢問題及解決方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-11-11
  • vue2引入Three.js預覽3D文件的實現(xiàn)方法

    vue2引入Three.js預覽3D文件的實現(xiàn)方法

    three.js是一個基于WebGL的JavaScript庫,它允許開發(fā)者在網(wǎng)頁上創(chuàng)建和顯示3D圖形,這篇文章主要介紹了vue2引入Three.js預覽3D文件的實現(xiàn)方法,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-10-10
  • vue2.0 子組件改變props值,并向父組件傳值的方法

    vue2.0 子組件改變props值,并向父組件傳值的方法

    下面小編就為大家分享一篇vue2.0 子組件改變props值,并向父組件傳值的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • VUE解決 v-html不能觸發(fā)點擊事件的問題

    VUE解決 v-html不能觸發(fā)點擊事件的問題

    今天小編就為大家分享一篇VUE解決 v-html不能觸發(fā)點擊事件的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • 詳解vuex的簡單使用

    詳解vuex的簡單使用

    這篇文章主要介紹了詳解vuex的簡單使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • Vue.js實現(xiàn)多條件篩選、搜索、排序及分頁的表格功能

    Vue.js實現(xiàn)多條件篩選、搜索、排序及分頁的表格功能

    這篇文章主要為大家詳細介紹了Vue.js實現(xiàn)多條件篩選、搜索、排序及分頁的表格功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03

最新評論

邹城市| 榆中县| 长子县| 平利县| 纳雍县| 安福县| 蒙山县| 古丈县| 抚州市| 凭祥市| 平定县| 安义县| 开原市| 澄城县| 县级市| 梧州市| 万年县| 葵青区| SHOW| 驻马店市| 抚州市| 旬阳县| 庄河市| 汾阳市| 阳朔县| 香港 | 大化| 新巴尔虎左旗| 永城市| 延安市| 黄骅市| 嘉义市| 巩留县| 会宁县| 晋城| 海晏县| 定南县| 阳山县| 抚松县| 德安县| 曲周县|