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

使用table做成樹形結(jié)構(gòu)的table

 更新時間:2024年07月25日 10:20:42   作者:愛跳舞的程序員  
這篇文章主要介紹了使用table做成樹形結(jié)構(gòu)的table問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

table做成樹形結(jié)構(gòu)的table

<el-table
			:default-expand-all="false"
			:data="list"
			style="width: 100%; margin-bottom: 20px"
			row-key="listId"
			border
			:tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
			lazy
			:load="load"
		>
			<el-table-column prop="bppjName" label="部件名稱"> </el-table-column>
			<el-table-column prop="stkName" label="物資名稱"> </el-table-column>
			<el-table-column prop="stkCode1" label="物資編碼"> </el-table-column>
			<el-table-column prop="stkCode" label="型號規(guī)格"> </el-table-column>
			<el-table-column prop="metric" label="單位" width="80" align="center"> </el-table-column>
			<el-table-column prop="num" label="數(shù)量" width="80" align="center"> </el-table-column>
			<el-table-column prop="note" label="備注"> </el-table-column>
		</el-table>
        getList() {
            // 一開始獲取數(shù)據(jù)列表
			const obj = {
				listId: this.listId,
			};
			getList(obj).then((res) => {
				this.list = res.rows;
				this.list.forEach((item) => {
					// 必須要設(shè)置,不然沒有下級圖標顯示
					item.hasChildren = true;
					item.children = null;
				});
			});
		},
		load(tree, treeNode, resolve) {
            // 獲取下一個節(jié)點數(shù)據(jù) 手動添加上給當前的節(jié)點
			getUdmBppjDataList({ listId: tree.listId }).then((res) => {
				const childList = res.rows;
				childList.forEach((item) => {
                    // 必須要設(shè)置,不然沒有下級圖標顯示
					item.hasChildren = true, 
                    item.children = null;
				});
				setTimeout(() => {
					resolve(childList);
				}, 500);
			});
		},

table樹形結(jié)構(gòu),獲取一個節(jié)點的所有父節(jié)點

數(shù)據(jù)

   let tree = [
    {
        id:1,
      code: '1',
      fsecid:0,
      children: [
        {
          id:11,
          fsecid:1,
          code:'1.1',
          children: [
            {
                id:111,
                fsecid:11,
              code: '1.1.1',
            }
          ]
        },
        {
            id:12,
            fsecid:1,
          code: '1.2',

        }
      ]
    },
    {
      code: '2',
      id:2,
      fsecid:0,
      children: [
        {
            id:21,
            fsecid:2,
          code: '2.1',
        }
      ]
    }
  ]
  let result=scheduleAlgorithm(tree,11,'fsecid','children')
  console.log("result=====",result);
  //結(jié)果  result===== [ 1, 11 ]

標題函數(shù)實現(xiàn)

/**判斷葉子節(jié)點的所有父節(jié)點*/
function scheduleAlgorithm(
  array,//樹形數(shù)據(jù)
  value,//找到valueName屬性名 所等于這個值所有的父節(jié)點,2,3參數(shù)是關(guān)聯(lián)的
  valueName = "fsecid",//與上一節(jié)點相關(guān)聯(lián)的值的字段名,當前節(jié)點的父節(jié)點id
  childrenName = "children",//存放子節(jié)點數(shù)據(jù)的數(shù)組名稱
) {
  if (!value || !Array.isArray(array)) return [];
  const result = [];
  let valid = false;
  const seek = (array, value) => {
    let parentValue = "";
    const up = (array, value, lastValue) => {
      array.forEach(v => {
        const val = v[valueName];
        const child = v[childrenName];
        if (val === value) {
          valid = true;
          parentValue = lastValue;
          return;
        }
        if (child && child.length) up(child, value, val);
      });
    };
    up(array, value);
    if (parentValue) {
      result.unshift(parentValue);
      seek(array, parentValue);
    }
  };
  seek(array, value);
  return valid ? [...result, value] : [];
}

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue如何監(jiān)聽元素橫向滾動到最右側(cè)

    vue如何監(jiān)聽元素橫向滾動到最右側(cè)

    這篇文章主要介紹了vue如何監(jiān)聽元素橫向滾動到最右側(cè)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • Vue項目代碼之路由拆分、Vuex模塊拆分、element按需加載詳解

    Vue項目代碼之路由拆分、Vuex模塊拆分、element按需加載詳解

    這篇文章主要介紹了Vue項目代碼之路由拆分、Vuex模塊拆分、element按需加載,項目較大路由較多時,路由拆分是一個不錯的代碼優(yōu)化方案,按不同業(yè)務(wù)分為多個模塊,結(jié)構(gòu)清晰便于統(tǒng)一管理,本文通過示例給大家詳細講解,需要的朋友可以參考下
    2022-11-11
  • Vue實現(xiàn)選中文本彈出彈窗功能的完多種方法

    Vue實現(xiàn)選中文本彈出彈窗功能的完多種方法

    在現(xiàn)代 Web 應(yīng)用中,選中文本后顯示相關(guān)操作或信息是一種常見的交互模式,本文將詳細介紹如何在 Vue 中實現(xiàn)選中文本后彈出彈窗的功能,包括其工作原理、多種實現(xiàn)方式以及實際項目中的應(yīng)用示例,需要的朋友可以參考下
    2025-09-09
  • Vue中下載不同文件五種常用的方式

    Vue中下載不同文件五種常用的方式

    自己最近做項目的時候遇到需要下載文件的需求,索性這里給總結(jié)下,這篇文章主要給大家介紹了關(guān)于Vue中下載不同文件五種常用的方式,需要的朋友可以參考下
    2023-09-09
  • 解決vue中el-tab-pane切換的問題

    解決vue中el-tab-pane切換的問題

    這篇文章主要介紹了解決vue中el-tab-pane切換的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • Vue ECharts簡易實現(xiàn)雷達圖

    Vue ECharts簡易實現(xiàn)雷達圖

    這篇文章主要介紹了基于Vue ECharts簡易實現(xiàn)雷達圖,本文通過實例代碼圖文相結(jié)合給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-12-12
  • Vuex actions?異步操作方法詳解

    Vuex actions?異步操作方法詳解

    這篇文章主要介紹了Vuex actions?異步操作方法,需要的朋友可以參考下
    2023-10-10
  • Vue2.0+ElementUI實現(xiàn)查詢條件展開和收起功能組件(代碼示例)

    Vue2.0+ElementUI實現(xiàn)查詢條件展開和收起功能組件(代碼示例)

    文章介紹了如何將查詢條件表單封裝成一個通用組件,以提高開發(fā)效率,組件支持多條件的折疊和展開功能,并提供了使用示例,感興趣的朋友一起看看吧
    2025-01-01
  • vue2中引用及使用 better-scroll的方法詳解

    vue2中引用及使用 better-scroll的方法詳解

    這篇文章主要介紹了vue2中引用better-scroll和使用 better-scroll的方法,使用時有三個要點及注意事項在文中給大家詳細介紹 ,需要的朋友可以參考下
    2018-11-11
  • vue版日歷組件的實現(xiàn)方法

    vue版日歷組件的實現(xiàn)方法

    這篇文章主要為大家詳細介紹了vue版日歷組件的實現(xiàn)方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04

最新評論

海安县| 太谷县| 丰镇市| 兖州市| 杭州市| 麻城市| 奉节县| 盐城市| 宝应县| 清丰县| 日喀则市| 甘南县| 杭州市| 嘉荫县| 瓦房店市| 平定县| 彩票| 岳普湖县| 新建县| 土默特左旗| 务川| 巴南区| 始兴县| 东莞市| 嵊泗县| 黔东| 应城市| 永清县| 邛崃市| 拜泉县| 开江县| 襄垣县| 万盛区| 阿巴嘎旗| 淄博市| 三江| 晋宁县| 敖汉旗| 万安县| 西林县| 鞍山市|