亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

復(fù)雜表格設(shè)計(jì)數(shù)據(jù)格式

fancyLuo / 2070人閱讀

摘要:表頭設(shè)計(jì)原理和多叉樹的原理類似,參考了它的展示形式。大家一起交流成長(zhǎng)。

1. 表頭設(shè)計(jì)

原理:
和多叉樹的原理類似,參考了它的展示形式。

表頭說(shuō)明:
如果沒(méi)有孩子節(jié)點(diǎn)就只返回如下一個(gè)字段:

name :名字

如果有孩子節(jié)點(diǎn),就把數(shù)據(jù)加在children里面,層層嵌套,返回字段如下:

name :名字

children : 孩子節(jié)點(diǎn)

數(shù)據(jù)結(jié)構(gòu)格式,參考如下代碼:

headerData:[
            {
                name: "地區(qū)",
            },
            {
                name: "總數(shù)據(jù)",
                children: [
                    {
                        name: "數(shù)據(jù)1",
                        children: [
                            {
                                name: "數(shù)據(jù)11",
                                children: [
                                    {
                                        name: "數(shù)據(jù)111",
                                    },
                                    {
                                        name: "數(shù)據(jù)112",
                                    }
                                ]
                            },
                            {
                                name: "數(shù)據(jù)12",
                                children: [
                                    {
                                        name: "數(shù)據(jù)121",
                                    },
                                    {
                                        name: "數(shù)據(jù)122",
                                    }
                                ]
                            },
                            {
                                name: "數(shù)據(jù)13",
                                children: [
                                    {
                                        name: "數(shù)據(jù)131",
                                    },
                                    {
                                        name: "數(shù)據(jù)132",
                                    }
                                ]
                            },
                            {
                                name: "數(shù)據(jù)14",
                            },

                        ]
                    }
                ]
            }
        ];

表頭的寬高方面,前端計(jì)算,后端不用管,按照如下格式返回?cái)?shù)據(jù)即可。

2. 表格數(shù)據(jù)格式

每一項(xiàng)按照表頭展示的順序返回,通過(guò)數(shù)組的形式
返回一個(gè)參數(shù):

bodyData:總數(shù)據(jù)

數(shù)據(jù)結(jié)構(gòu)格式參考代碼如下:

bodyData:[
        ["地區(qū)最先","數(shù)據(jù)111","數(shù)據(jù)112","數(shù)據(jù)121","數(shù)據(jù)122","數(shù)據(jù)131","數(shù)據(jù)132","數(shù)據(jù)14"],
        ["地區(qū)","數(shù)據(jù)111","數(shù)據(jù)112","數(shù)據(jù)121","數(shù)據(jù)122","數(shù)據(jù)131","數(shù)據(jù)132","數(shù)據(jù)14"],
        ["地區(qū)","數(shù)據(jù)111","數(shù)據(jù)112","數(shù)據(jù)121","數(shù)據(jù)122","數(shù)據(jù)131","數(shù)據(jù)132","數(shù)據(jù)14"],
        ["地區(qū)","數(shù)據(jù)111","數(shù)據(jù)112","數(shù)據(jù)121","數(shù)據(jù)122","數(shù)據(jù)131","數(shù)據(jù)132","數(shù)據(jù)14"],
        ["地區(qū)","數(shù)據(jù)111","數(shù)據(jù)112","數(shù)據(jù)121","數(shù)據(jù)122","數(shù)據(jù)131","數(shù)據(jù)132","數(shù)據(jù)14"],
        ["地區(qū)","數(shù)據(jù)111","數(shù)據(jù)112","數(shù)據(jù)121","數(shù)據(jù)122","數(shù)據(jù)131","數(shù)據(jù)132","數(shù)據(jù)14"],
        ["地區(qū)","數(shù)據(jù)111","數(shù)據(jù)112","數(shù)據(jù)121","數(shù)據(jù)122","數(shù)據(jù)131","數(shù)據(jù)132","數(shù)據(jù)14"],
        ["地區(qū)","數(shù)據(jù)111","數(shù)據(jù)112","數(shù)據(jù)121","數(shù)據(jù)122","數(shù)據(jù)131","數(shù)據(jù)132","數(shù)據(jù)14"], 
        ["地區(qū)","數(shù)據(jù)111","數(shù)據(jù)112","數(shù)據(jù)121","數(shù)據(jù)122","數(shù)據(jù)131","數(shù)據(jù)132","數(shù)據(jù)14"], 
        ["地區(qū)最后","數(shù)據(jù)111","數(shù)據(jù)112","數(shù)據(jù)121","數(shù)據(jù)122","數(shù)據(jù)131","數(shù)據(jù)132","數(shù)據(jù)14"], 
    ]
3. 效果

如上表頭與表格數(shù)據(jù)代碼生成的效果如圖:

4. 代碼

語(yǔ)法高亮用到 codemirror 插件

/**
 * 遞歸遍歷 格式化數(shù)組
 * @param { Array } paramArr 目標(biāo)數(shù)組
 * @param { Number } level 層級(jí)
 */
export function formatArray(paramArr, level) {
  let levelFirst = Number(level)
  const arr = []
  let childArr = []
  for (let i = 0; i < paramArr.length; i++) {
      let obj = {}
      for (let j in paramArr[i]) {
          if (j != "children") {
              obj[j] = paramArr[i][j]
          }
          obj["level"] = levelFirst
          obj["width"] = getLeafCountTree(paramArr[i])
          if (!paramArr[i].children) {
              obj["childrenNumber"] = 0
              // LeafNode: 葉子節(jié)點(diǎn)就是樹中最底段的節(jié)點(diǎn)
              // obj["isLeafNode"] = true
          } else {
              // obj["isLeafNode"] = false
              obj["childrenNumber"] = paramArr[i].children.length
          }
      }
      arr.push(obj)
      if (paramArr[i].children) {
          let lev = Number(levelFirst) + 1
          childArr = childArr.concat(formatArray(paramArr[i].children, lev));
      }
  }
  let endArr = arr.concat(childArr)
  return endArr
}
/**
 * 獲取 節(jié)點(diǎn)的所有葉子節(jié)點(diǎn)個(gè)數(shù)
 * @param {Object} json Object對(duì)象
 */
export function getLeafCountTree(json) {
  if(!json.children){
      return 1;
  }else{
      var leafCount = 0;
      for(var i = 0 ; i < json.children.length ; i++){
          leafCount = leafCount + getLeafCountTree(json.children[i]);
      }
      return leafCount;
  }
}
// json對(duì)對(duì)象字符串的格式化,美化
export function  jsonFromat (text_value){
    if(text_value == ""){
       alert("不能為空");  
       return false;
    } else {
          var json=eval("(" + text_value + ")");
          text_value=JSON.stringify(json);
          var res="";
          for(var i=0,j=0,k=0,ii,ele;i




5. 效果鏈接:

效果鏈接如下:

復(fù)雜表格設(shè)計(jì)數(shù)據(jù)格式

動(dòng)態(tài)效果:

最后

對(duì) 全棧開發(fā) 有興趣的朋友可以掃下方二維碼關(guān)注我的公眾號(hào) —— 愛寫bugger的阿拉斯加

分享 web 開發(fā)相關(guān)的技術(shù)文章,熱點(diǎn)資源,全棧程序員的成長(zhǎng)之路。

大家一起交流成長(zhǎng)。

只要關(guān)注公眾號(hào)并回復(fù) 福利 便送你六套視頻資源: Python、Java、Linux、Go、vue、react、javaScript

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/96361.html

相關(guān)文章

  • 從零開始的 React 組件開發(fā)之路 (一):表格

    摘要:下的表格狂想曲前言歡迎大家閱讀從零開始的組件開發(fā)之路系列第一篇,表格篇。北京小李中的每一個(gè)元素是一列的配置,也是一個(gè)對(duì)象,至少應(yīng)該包括如下幾部分表頭該列使用行中的哪個(gè)進(jìn)行顯示易用性與通用性的平衡易用性與通用性互相制衡,但并不是絕對(duì)矛盾。 React 下的表格狂想曲 0. 前言 歡迎大家閱讀「從零開始的 React 組件開發(fā)之路」系列第一篇,表格篇。本系列的特色是從 需求分析、API 設(shè)...

    DesGemini 評(píng)論0 收藏0
  • 第6章:可維護(hù)性軟件構(gòu)建方法 6.3可維護(hù)性構(gòu)建技術(shù)

    摘要:遵循特定規(guī)則,利用操作符,終止節(jié)點(diǎn)和其他非終止節(jié)點(diǎn),構(gòu)造新的字符串非終結(jié)符是表示字符串的樹的內(nèi)部節(jié)點(diǎn)。語(yǔ)法中的生產(chǎn)具有這種形式非終結(jié)符終結(jié),非終結(jié)符和運(yùn)算符的表達(dá)式語(yǔ)法的非終結(jié)點(diǎn)之一被指定為根。 大綱 基于狀態(tài)的構(gòu)建 基于自動(dòng)機(jī)的編程 設(shè)計(jì)模式:Memento提供了將對(duì)象恢復(fù)到之前狀態(tài)的功能(撤消)。 設(shè)計(jì)模式:狀態(tài)允許對(duì)象在其內(nèi)部狀態(tài)改變時(shí)改變其行為。 表驅(qū)動(dòng)結(jié)構(gòu)* 基于語(yǔ)法的構(gòu)...

    young.li 評(píng)論0 收藏0
  • mysql數(shù)據(jù)庫(kù)引擎詳解

    摘要:是的擴(kuò)展格式和缺省的數(shù)據(jù)庫(kù)引擎。數(shù)據(jù)庫(kù)引擎都是造就靈活性的技術(shù)的直接產(chǎn)品,這項(xiàng)技術(shù)就是。估計(jì)這個(gè)插件式數(shù)據(jù)庫(kù)引擎的模型甚至能夠被用來(lái)為創(chuàng)建本地的提供器。能夠讓你在表格這一層指定數(shù)據(jù)庫(kù)引擎,所以它們有時(shí)候也指的是。 數(shù)據(jù)庫(kù)引擎介紹MySQL數(shù)據(jù)庫(kù)引擎取決于MySQL在安裝的時(shí)候是如何被編譯的。要添加一個(gè)新的引擎,就必須重新編譯MYSQL。在缺省情況下,MYSQL支持三個(gè)引擎:ISAM、M...

    孫吉亮 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<