国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

naive UI tree組件實(shí)現(xiàn)增刪改功能

這篇具有很好參考價(jià)值的文章主要介紹了naive UI tree組件實(shí)現(xiàn)增刪改功能。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

1.tree組件

?2.實(shí)現(xiàn)思路

3.代碼實(shí)現(xiàn)

1. 頁面部分

2.js部分:

1.節(jié)點(diǎn)內(nèi)容渲染函數(shù)

2.節(jié)點(diǎn)后綴渲染函數(shù)

3.節(jié)點(diǎn)點(diǎn)擊事件


1.tree組件

? ? ?naive UI是Vue 3是組件庫,其中的tree組件可以生成樹形目錄結(jié)構(gòu),官網(wǎng)提供了很多功能演示,例如拖放節(jié)點(diǎn)等。但是并沒有提供增刪改功能的演示。

naive UI tree組件實(shí)現(xiàn)增刪改功能,javascript,前端,vue,typescript

?2.實(shí)現(xiàn)思路

? ? 參考element-ui tree結(jié)構(gòu)增刪改功能的實(shí)現(xiàn)思路,naive UI的tree組件實(shí)現(xiàn)思路可以概括為:

  1. 增加功能:點(diǎn)擊增加按鈕,增加一個(gè)節(jié)點(diǎn),前端實(shí)現(xiàn)輸入框,可以在輸入框中修改節(jié)點(diǎn)名稱。
  2. 修改功能:雙擊節(jié)點(diǎn),節(jié)點(diǎn)變?yōu)檩斎肟?,可以在輸入框中修改?jié)點(diǎn)名稱。
  3. 刪除功能:選中節(jié)點(diǎn),出現(xiàn)刪除按鈕,點(diǎn)擊刪除按鈕可以刪除節(jié)點(diǎn)。

3.代碼實(shí)現(xiàn)

? ? naive UI的tree組件提供了節(jié)點(diǎn)內(nèi)容渲染函數(shù),節(jié)點(diǎn)后綴渲染函數(shù),增刪改的功能可以結(jié)合節(jié)點(diǎn)點(diǎn)擊事件、節(jié)點(diǎn)內(nèi)容渲染函數(shù)和節(jié)點(diǎn)后綴渲染函數(shù)來實(shí)現(xiàn)。

naive UI tree組件實(shí)現(xiàn)增刪改功能,javascript,前端,vue,typescript

1. 頁面部分

<template>
  <div class="input-div">
    <n-space justify="center">
      <n-input
        v-model:value="pattern"
        size="small"
        class="input"
        placeholder="按名稱查詢"
      ></n-input>
    </n-space>
  </div>
  <div class="div-tree" >
    <n-tree
      class="tree"
      selectable
      :pattern="pattern"
      :data="datatree"
      :node-props="checkCamera"
      :render-switcher-icon="renderSwitcherIcon"
      default-expand-all
      block-line
      show-irrelevant-nodes
      :render-label="nodelabel"
      :render-suffix="nodesuffix"
    />
  </div>
</template>

2.js部分:

1.節(jié)點(diǎn)內(nèi)容渲染函數(shù)

根據(jù)option.isedit參數(shù)判斷節(jié)點(diǎn)渲染出來的是輸入框還是文本,props.isedit用來控制在使用該組件是否開啟編輯功能。

//節(jié)點(diǎn)內(nèi)容渲染函數(shù)
const inputRef = ref()
const nodelabel = ({ option }: { option: TreeOption }) => {
  //  console.log(option.key)
  return h(
    'div',
    { class: 'node', style: { height: '0.25rem', width: '1.8rem' } },
    option.isedit == true && props.isedit
      ? h(NInput, {
          autofocus: true,
          ref: inputRef,
          size: 'small',
          value: option.label,
          onUpdateValue: v => {
            option.label = v
          },
          onChange: () => {
            option.isedit = false
          },
          onBlur: () => {
            option.isedit = false
          }
        })
      : option.label
  )
}

2.節(jié)點(diǎn)后綴渲染函數(shù)

用option.children來判斷tree的層級,來確定渲染的后綴是刪除按鈕還是增加按鈕。?option.key == key.value用來判斷該節(jié)點(diǎn)是否被選中,選中增渲染出刪除按鈕。

//節(jié)點(diǎn)后綴渲染
const nodesuffix = ({ option }: { option: TreeOption }) => {
  if (
    !option.children &&
    option.key == key.value &&
    props.isdelect
  ) {
    return h(
      NButton,
      {
        text: true,
        type: 'info',
        color: '#00EAFF',
        size: 'tiny',
        onClick: e => {
          deltree(option.key), e.stopPropagation()//自定義節(jié)點(diǎn)刪除函數(shù)
        }
      },
      { default: () => '刪除' }
    )
  } else if ((option.children) && props.isadd) {
    return h(
      NButton,
      {
        type: 'info',
        color: '#007293',
        bordered: true,
        round: true,
        size: 'tiny',
        textcolor: '#CFFBFF',
        onClick: e => addnode(e, option.key)//自定義新增節(jié)點(diǎn)函數(shù)
      },
      { default: () => '+新增' }
    )
  }
}

3.節(jié)點(diǎn)點(diǎn)擊事件

單擊為選中節(jié)點(diǎn)事件,雙擊為編輯節(jié)點(diǎn)事件,雙擊節(jié)點(diǎn),?option.isedit = true,使得節(jié)點(diǎn)渲染函數(shù)渲染出輸入框,可以修改節(jié)點(diǎn)名稱。文章來源地址http://www.zghlxwxcb.cn/news/detail-528289.html

const key = ref()
//節(jié)點(diǎn)點(diǎn)擊事件
const checkCamera = ({ option }: { option: TreeOption }) => {
  return {
    onClick() {
      emits('optionlabel', option.label)
      //console.log(option.label)
      key.value = option.key
    },
    ondblclick() {
      //雙擊事件
      option.isedit = true
      nextTick(() => {
        inputRef.value.focus()
      })
    }
  }
}

到了這里,關(guān)于naive UI tree組件實(shí)現(xiàn)增刪改功能的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • element-ui的el-tree組件實(shí)現(xiàn)單選功能及選擇子節(jié)點(diǎn),獲取所有父級節(jié)點(diǎn)或選中所有父級節(jié)點(diǎn)

    element-ui的el-tree組件實(shí)現(xiàn)單選功能及選擇子節(jié)點(diǎn),獲取所有父級節(jié)點(diǎn)或選中所有父級節(jié)點(diǎn)

    el-tree是不支持單選的,可以通過選中事件進(jìn)行處理,實(shí)現(xiàn)單選

    2024年02月14日
    瀏覽(93)
  • Naive UI+Vue3來實(shí)現(xiàn)點(diǎn)擊按鈕一鍵切換明暗主題的功能

    Naive UI+Vue3來實(shí)現(xiàn)點(diǎn)擊按鈕一鍵切換明暗主題的功能

    記錄一下如何使用Naive UI+Vue3代碼來實(shí)現(xiàn)一鍵切換明暗主題的功能。 效果如下: 終端下輸入: 起好項(xiàng)目的名稱,然后一路回車即可。 至此Vue3的項(xiàng)目已經(jīng)搭建完畢,打開http://127.0.0.1:5173/就可以看到項(xiàng)目的默認(rèn)首頁了。 安裝Naive UI依賴庫 然后我們根據(jù)官方出的配置對項(xiàng)目進(jìn)行

    2024年02月12日
    瀏覽(75)
  • 小白都會(huì)的前端技能---修改element-ui里面的tree組件的icon圖標(biāo)

    小白都會(huì)的前端技能---修改element-ui里面的tree組件的icon圖標(biāo)

    在樹形組件中,我們渲染到頁面上通常來表示一個(gè)組織架構(gòu)的流程,但一般在做的時(shí)候會(huì)設(shè)置打開和關(guān)閉為兩個(gè)不同的字體圖標(biāo)并且在點(diǎn)擊的時(shí)候可以切換 如下效果圖: ? 打開之前是小加號圖標(biāo),打開之后是小減號圖標(biāo) 具體方法: 使用element-ui組件設(shè)置樣式: icon-class =\\\"圖標(biāo)類名\\\"可

    2023年04月18日
    瀏覽(27)
  • element UI tree 搜索功能實(shí)現(xiàn)

    最近需求想要一個(gè)樹狀結(jié)構(gòu)的帶搜索功能的目錄,要求目錄包含搜索文字的高亮,如果父級收起則父級高亮,如果跨級收起 則收起的級別高亮 不限制層級 例如:搜索文字為D,收起C則C高亮, 直接收起A則A高亮 A?? ????????B ????????????????C? ????????????

    2024年04月29日
    瀏覽(16)
  • Vue+Element-UI 實(shí)現(xiàn)前端分頁功能,利用el-table和el-pagination組件實(shí)現(xiàn)表格前端分頁

    Vue+Element-UI 實(shí)現(xiàn)前端分頁功能,利用el-table和el-pagination組件實(shí)現(xiàn)表格前端分頁

    Vue+Element-UI 實(shí)現(xiàn)前端分頁功能,利用el-table和el-pagination組件實(shí)現(xiàn)表格前端分頁: ????????當(dāng)table的數(shù)據(jù)量比較大的時(shí)候,一個(gè)屏幕展示不出全部的數(shù)據(jù),這個(gè)時(shí)候就需要分頁顯示。而多數(shù)情況下都是做的后端分頁,就是將分頁參數(shù)和查詢條件一并傳到后端,后端將當(dāng)前頁要

    2024年01月20日
    瀏覽(32)
  • 使用easyui的tree組件實(shí)現(xiàn)給角色快捷分配權(quán)限功能

    使用easyui的tree組件實(shí)現(xiàn)給角色快捷分配權(quán)限功能

    這篇文章主要介紹怎么實(shí)現(xiàn)角色權(quán)限的快捷分配功能,不需要像大多數(shù)項(xiàng)目的授權(quán)一樣,使用類似穿梭框的組件來授權(quán)。 具體實(shí)現(xiàn):通過菜單樹的勾選和取消勾選來給角色分配權(quán)限,在這之前,需要得到角色的菜單樹,角色已有的權(quán)限對應(yīng)樹節(jié)點(diǎn)的選中狀態(tài)為true,否則為f

    2024年02月14日
    瀏覽(19)
  • Element Ui Tree組件實(shí)現(xiàn)增、刪、改、查、拖拽節(jié)點(diǎn) 的樹形結(jié)構(gòu)

    Element Ui Tree組件實(shí)現(xiàn)增、刪、改、查、拖拽節(jié)點(diǎn) 的樹形結(jié)構(gòu)

    介紹:首先組件 | Element官網(wǎng)某些功能都具備了,這里我就把這些功能結(jié)合在一起更完美的使用,其次 編輯節(jié)點(diǎn) 官網(wǎng)是沒有實(shí)例,所以這里搞了一套較完整的功能,其次編輯和添加,這里直接使用了彈窗(顧及到多個(gè)參數(shù)設(shè)置),接下來效果圖展示! 效果圖如下: 1,其中點(diǎn)

    2024年02月13日
    瀏覽(88)
  • Naive UI 組件使用體驗(yàn)之-級聯(lián)選擇 Cascader

    Naive UI 組件使用體驗(yàn)之-級聯(lián)選擇 Cascader

    地址區(qū)域選擇 安裝依賴 npm install naive-ui -D 按需引入之-手動(dòng)引入 使用 這里我們是要對收貨地址進(jìn)行一個(gè)增加操作。 我們這里只針對 所在地址 進(jìn)行說明。 獲取region 這里需要通過接口提前請求

    2024年02月11日
    瀏覽(29)
  • Vue + Element UI 前端篇(七):功能組件封裝

    Vue + Element UI 前端篇(七):功能組件封裝

    為了避免組件代碼的臃腫,這里對主要的功能部件進(jìn)行封裝,保證代碼的模塊化和簡潔度。 組件結(jié)構(gòu) 組件封裝重構(gòu)后,試圖組件結(jié)構(gòu)如下圖所示 代碼一覽 Home組件被簡化,包含導(dǎo)航、頭部和主內(nèi)容三個(gè)組件。 Home.vue HeadBar.vue MenuBar.vue Main.vue 國際化語言切換也被封裝成為了組

    2024年02月09日
    瀏覽(27)
  • JavaEE-SSM-訂單管理-前端增刪改功能實(shí)現(xiàn)

    JavaEE-SSM-訂單管理-前端增刪改功能實(shí)現(xiàn)

    從列表頁面切換到添加頁面 編寫對應(yīng)添加頁面的路由 * 編寫添加功能 列表頁面跳轉(zhuǎn)到更新頁面,以參數(shù)的方式傳遞id 編寫路由 創(chuàng)建路由對應(yīng)的vue頁面 編寫修改功能:先通過id查詢詳情,并回顯到表單,修改內(nèi)容后,提交表單 點(diǎn)擊進(jìn)行刪除 刪除操作 列表頁面的完整代碼

    2024年01月24日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包