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

詳解js如何優(yōu)雅處理后端返回的單元格數(shù)據(jù)

 更新時(shí)間:2023年10月31日 08:15:58   作者:ppkirt  
這篇文章主要為大家詳細(xì)介紹了JavaScript如何優(yōu)雅處理后端返回的單元格數(shù)據(jù),文中的示例代碼講解詳細(xì),有需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下

我們需要渲染一個(gè)4行3列的表格,我們只需要配置好columns:[{},{},{}],數(shù)據(jù)dataSource:[{},{},{},{}],當(dāng)我們columns中對(duì)象的屬性與dataSource中對(duì)象的屬性對(duì)應(yīng)時(shí),就可以正常渲染數(shù)據(jù)啦。但是當(dāng)我們的后端不是以每行數(shù)據(jù)進(jìn)行返回,而是將每個(gè)單元格的數(shù)據(jù)作為一個(gè)對(duì)象返回時(shí),我們就要自己按行處理數(shù)據(jù)了。接下來(lái)分享一下我的思路。

解題思路: 1、不管后端返回給我們多少條數(shù)據(jù),我們只需要明確我們需要的是幾行數(shù)據(jù),也就是需要定義包含幾個(gè)對(duì)象的數(shù)組。 2、根據(jù)后端返回每個(gè)單元格中的兩個(gè)字段唯一確定行和列。再根據(jù)行列取出對(duì)應(yīng)單元格數(shù)據(jù)添加到剛才創(chuàng)建的數(shù)組中,就可以成功渲染數(shù)據(jù)了。

具體實(shí)現(xiàn):

1.定義tableColumns:我這里的列和行相等,是動(dòng)態(tài)的數(shù)據(jù)根據(jù)num進(jìn)行遍歷渲染得到

  computed: {
    tableColumns() {
      this.list = []
      let columnsTemp = public_deepCopy(this.columns);
      for (let i = 0; i < this.num; i++) {
        this.list.push({
          title: i + 1,
          dataIndex: i + 1,
          key: i + 1,
          align: 'center',
          scopedSlots: {customRender: i + 1}
        });
      }
      columnsTemp.push(...this.list)
      return columnsTemp
    }
  }

2.定義一個(gè)函數(shù),用來(lái)初始化行,方便處理后端返回的數(shù)據(jù)

先來(lái)看一下后端返回?cái)?shù)據(jù)格式

 我這里的num和sort就可以唯一確定是哪個(gè)單元格,num代表行號(hào),sort代表列號(hào)

接下來(lái)我們開始定義函數(shù)初始化行數(shù)據(jù)

getArray(arr) {
  // 初始化行,這里根據(jù)num的值確定需要幾行,創(chuàng)建包含幾個(gè)對(duì)象的空數(shù)據(jù)
  const rows = Array.from({length: this.num}, () => ({}));
  // 根據(jù)num也就是行數(shù)-1,確定索引,我們可以知道像一行添加數(shù)據(jù),在將sort作為對(duì)象的屬性名,item作為屬性值將數(shù)據(jù)存儲(chǔ)到對(duì)應(yīng)的位置
  arr.forEach(item => {
    rows[item.num - 1][item.sort] = {
      ...item,
      score: item.numerator && item.denominator ? item.numerator + '/' + item.denominator : ''
    };
  });
  // 因?yàn)橛械膯卧駴]有數(shù)據(jù),所以進(jìn)行判斷將空位置填充為null
  rows.forEach(row => {
    for (let i = 1; i <= this.num; i++) {
      if (!row.hasOwnProperty(i)) {
        row[i] = null;
      }
    }
  });
  //最后將處理好的數(shù)據(jù)返回
  return rows;
},

調(diào)接口處理數(shù)據(jù)

async queryTemplate() {
  this.loading = true
  const res = await queryWorkAllocationModule({
    moduleId: this.moduleId
  });
  this.loading = false;
  if (res.state === 200) {
    this.dataSource = this.getArray(res.data);
  } else {
    this.$message.error(res.message)
  }
},

處理好的數(shù)據(jù)結(jié)構(gòu)就是這樣啦,這樣就可以跟我們上面定義的tableColumns數(shù)組包含的對(duì)象屬性進(jìn)行一一對(duì)應(yīng)了 

渲染數(shù)據(jù)

<a-table
    :columns="tableColumns"
    :data-source="dataSource"
    :loading="loading"
    :pagination="false"
    :rowKey="record => record.id"
    bordered
>
  <template slot="headerName">
    <div style="position:relative;width:100px;">
      <div style="text-align: right;">排名</div>
      <div style="text-align: left;">人數(shù)</div>
    </div>
  </template>
  <template slot="header" slot-scope="text, record, index">
    {{ index + 1 }}
  </template>
  <template v-for="item in num" :slot="item" slot-scope="text, record, index">
    <a-input v-if="record[item] && commenttype" :key="index"
             v-model="text.score" placeholder="請(qǐng)輸入" style="text-align: center;border: none"></a-input>
    <span v-if="record[item] && !commenttype">{{ text.score }}</span>
  </template>
</a-table>

最后放上最終效果圖展示

數(shù)據(jù)處理完成,表格可以正確的被渲染出來(lái)了。

到此這篇關(guān)于詳解js如何優(yōu)雅處理后端返回的單元格數(shù)據(jù)的文章就介紹到這了,更多相關(guān)js處理后端返回?cái)?shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于aotu.js實(shí)現(xiàn)微信自動(dòng)添加通訊錄中的聯(lián)系人功能

    基于aotu.js實(shí)現(xiàn)微信自動(dòng)添加通訊錄中的聯(lián)系人功能

    這篇文章主要介紹了利用aotu.js實(shí)現(xiàn)微信自動(dòng)添加通訊錄中的聯(lián)系人,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • jquery結(jié)合CSS使用validate實(shí)現(xiàn)漂亮的驗(yàn)證

    jquery結(jié)合CSS使用validate實(shí)現(xiàn)漂亮的驗(yàn)證

    這篇文章主要介紹了jquery結(jié)合CSS使用validate實(shí)現(xiàn)漂亮的驗(yàn)證,需要的朋友可以參考下
    2015-01-01
  • javascript與jquery動(dòng)態(tài)創(chuàng)建html元素示例

    javascript與jquery動(dòng)態(tài)創(chuàng)建html元素示例

    這篇文章主要介紹了javascript與jquery動(dòng)態(tài)創(chuàng)建html元素的方法,結(jié)合實(shí)例形式分析了javascript與jQuery動(dòng)態(tài)創(chuàng)建頁(yè)面元素的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2016-07-07
  • layui復(fù)選框限制選擇個(gè)數(shù)的方法

    layui復(fù)選框限制選擇個(gè)數(shù)的方法

    今天小編就為大家分享一篇layui復(fù)選框限制選擇個(gè)數(shù)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-09-09
  • JS實(shí)現(xiàn)微信彈出搜索框 多條件查詢功能

    JS實(shí)現(xiàn)微信彈出搜索框 多條件查詢功能

    這篇文章主要介紹了JS實(shí)現(xiàn)微信彈出搜索框 多條件查詢功能的實(shí)例代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-12-12
  • 徹底搞懂JavaScript中的apply和call方法(必看)

    徹底搞懂JavaScript中的apply和call方法(必看)

    下面小編就為大家?guī)?lái)一篇徹底搞懂JavaScript中的apply和call方法(必看)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-09-09
  • script的async屬性以非阻塞的模式加載腳本

    script的async屬性以非阻塞的模式加載腳本

    HTML5實(shí)現(xiàn)了script的async屬性,這個(gè)新的屬性可以讓js在瀏覽器中以非阻塞的模式加載,接下來(lái)介紹如何應(yīng)用此屬性,感興趣的朋友可以了解下
    2013-01-01
  • 使用JS-SDK開發(fā)公眾號(hào)微信網(wǎng)頁(yè)的完整步驟

    使用JS-SDK開發(fā)公眾號(hào)微信網(wǎng)頁(yè)的完整步驟

    微信JS-SDK是微信公眾平臺(tái) 面向網(wǎng)頁(yè)開發(fā)者提供的基于微信內(nèi)的網(wǎng)頁(yè)開發(fā)工具包,下面這篇文章主要介紹了使用JS-SDK開發(fā)公眾號(hào)微信網(wǎng)頁(yè)的完整步驟,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-04-04
  • 微信小程序全局變量改變監(jiān)聽的實(shí)現(xiàn)方法

    微信小程序全局變量改變監(jiān)聽的實(shí)現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于微信小程序全局變量改變監(jiān)聽的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用微信小程序具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • JavaScript提升性能的常用技巧總結(jié)【經(jīng)典】

    JavaScript提升性能的常用技巧總結(jié)【經(jīng)典】

    這篇文章主要介紹了JavaScript提升性能的常用技巧,結(jié)合實(shí)例形式總結(jié)分析了JavaScript編程中常見的性能提升優(yōu)化技巧,涉及作用域、循環(huán)、變量、DOM及函數(shù)節(jié)流等,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2016-06-06

最新評(píng)論

文化| 尼木县| 扶风县| 汝城县| 汉源县| 尉氏县| 宣汉县| 洪洞县| 成都市| 连云港市| 龙岩市| 元阳县| 咸宁市| 吉木乃县| 龙井市| 峨眉山市| 壶关县| 汕尾市| 雷山县| 贡山| 南部县| 崇信县| 蛟河市| 乐清市| 绿春县| 同心县| 泸定县| 耿马| 贡觉县| 白河县| 靖宇县| 双城市| 宁夏| 富蕴县| 南充市| 平原县| 焉耆| 西宁市| 蒙自县| 文登市| 多伦县|