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

vben-admin中渲染table表格時(shí)怎么處理不同的數(shù)據(jù)結(jié)構(gòu)

這篇具有很好參考價(jià)值的文章主要介紹了vben-admin中渲染table表格時(shí)怎么處理不同的數(shù)據(jù)結(jié)構(gòu)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

最近在用vben admin開(kāi)發(fā)后臺(tái)管理系統(tǒng),vben admin這個(gè)后管端框架封裝的非常細(xì),顆粒度非常細(xì),如果了解里面的組件或者api用法,那開(kāi)發(fā)起來(lái)非???。如果不了解,那就非常痛苦了,目前關(guān)于vben admin這塊的開(kāi)發(fā)問(wèn)題的博客很少,所以有的問(wèn)題很難查到。我經(jīng)歷了這樣的過(guò)程,于是就把在開(kāi)發(fā)中遇到的問(wèn)題總結(jié)下來(lái),希望讓能用到的同學(xué)少走一點(diǎn)彎路。

一、接口請(qǐng)求回來(lái)的數(shù)據(jù)結(jié)構(gòu)不匹配現(xiàn)在的表格組件怎么辦

首先我遇到的第一個(gè)問(wèn)題就是,后端返回了數(shù)據(jù),但是數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)名稱(chēng)都不是我想要的,因?yàn)閠able表格組件是封裝好的,其中的字段名也都是定好的,那如果后端返回的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)名不一樣怎么辦呢?

先看代碼

// 獲取頁(yè)面的列表數(shù)據(jù)
// getRuleList();
const [registerTable, { getRawDataSource, reload, updateTableDataRecord, getForm }] = useTable({
    api: getRuleList,
    columns,
    formConfig: {
        labelWidth: 120,
        schemas: searchFormSchema,
        autoSubmitOnEnter: true,
        showResetButton: false,
        showSubmitButton: false,
    },
    beforeFetch: (params) => {
        params.ruleId = query.ruleId;
        return params;
    },
    afterFetch: (data) => {
        console.log('-------------------請(qǐng)求之后的參數(shù)處理---------');
        // 獲取接口的原始數(shù)據(jù)
        getRawData();
        return data;
    },
    useSearchForm: true,
    bordered: true,
    showIndexColumn: false,
});

對(duì)于getRuleList這個(gè)接口,我希望返回的數(shù)據(jù)結(jié)構(gòu)是這樣的:

{
   code:2000
   message:null,
   data:{
          list: [....],
          last: 161,
          count: 1610,
          pageNo: 1,
          pageSize: 10,
   }
}

但是現(xiàn)在后端返回的數(shù)據(jù)結(jié)構(gòu)是這樣的:

{
   resultCode:2000
   resultMessage:null,
   resultData:{
          records: [....],
          pageCount: 161,
          totalCount: 1610,
          pageNum: 1,
          pageSize: 10,
   }
}

這個(gè)時(shí)候就需要在接口請(qǐng)求數(shù)據(jù)回來(lái)后做一層轉(zhuǎn)換了;

代碼如下:

//獲取客戶資料列表
export const getRuleList = (params: any) => {
  return new Promise((resolve, reject) => {
    defHttp
      .post<any>(
        {
          url: Api.GetRuleList,
          params,
        }
      )
      .then((res) => {
        console.log('-----------列表返回的數(shù)據(jù)------------');
        console.log(res);
        resolve({
        code:res.resultCode,
        message:res.message,
        data:{
          list: res.resultData.records,
          last: res.resultData.pageCount,
          count: res.resultData.totalCount,
          pageNo: res.resultData.pageNum,
          pageSize: res.resultData.pageSize,
        }
        });
      });
  });
};

做了一層轉(zhuǎn)換之后,現(xiàn)在的數(shù)據(jù)結(jié)構(gòu)滿足這個(gè)需求了;

這個(gè)問(wèn)題就解決了,表單數(shù)據(jù)渲染出來(lái)了。
但是又有新的數(shù)據(jù)來(lái)了,如果頁(yè)面帶有搜索表格,表格中的數(shù)據(jù)怎么反顯?

2、帶有表單和表格的頁(yè)面,表單數(shù)據(jù)怎么反顯?

這個(gè)問(wèn)題需要分兩步完成,第一步:拿到表單數(shù)據(jù);第二步:怎么賦值到表單中;

我遇到這個(gè)問(wèn)題是因?yàn)楸砀駭?shù)據(jù)可以反顯了,但是表單數(shù)據(jù)就拿不到了。

// 獲取頁(yè)面的列表數(shù)據(jù)
// getRuleList();
const [registerTable, { getRawDataSource, reload, updateTableDataRecord, getForm }] = useTable({
    api: getRuleList,
    columns,
    formConfig: {
        labelWidth: 120,
        schemas: searchFormSchema,
        autoSubmitOnEnter: true,
        showResetButton: false,
        showSubmitButton: false,
    },
    // 請(qǐng)求數(shù)據(jù)接口之前的處理函數(shù)
    beforeFetch: (params) => {
        params.ruleId = query.ruleId;
        return params;
    },
    // 請(qǐng)求接口數(shù)據(jù)之后的處理函數(shù)
    afterFetch: (data) => {
        console.log('-------------------請(qǐng)求之后的參數(shù)處理---------');
        // 獲取接口的原始數(shù)據(jù)并給表單賦值,使表單反顯
        getRawData();
        return data;
    },
    useSearchForm: true,
    bordered: true,
    showIndexColumn: false,
});
一、解決第一步的問(wèn)題:拿到表單數(shù)據(jù)

在afterFetch這個(gè)處理函數(shù)中打印請(qǐng)求回來(lái)時(shí),打印data,打印不出來(lái),這個(gè)時(shí)候,我們不知道data是什么數(shù)據(jù),不過(guò)從后面渲染的頁(yè)面數(shù)據(jù)來(lái)看,這個(gè)data應(yīng)該是res.data.list,list里面是不包含表單數(shù)據(jù),只包含表格數(shù)據(jù),那我怎么拿到原始的請(qǐng)求數(shù)據(jù)呢?

vben admin提供了一個(gè)方法 useTable中的 getRawDataSource (請(qǐng)看代碼中是如何引入的)可以拿到接口的原始數(shù)據(jù),這個(gè)時(shí)候就可以拿到表單數(shù)據(jù)了。

// 獲取接口的原始數(shù)據(jù)
// getRawData();
// 獲取接口的完整數(shù)據(jù)
function getRawData() {
    console.log('請(qǐng)?jiān)诳刂婆_(tái)查看!');
    console.log(getRawDataSource());
    // 獲取到請(qǐng)求回來(lái)的原始數(shù)據(jù),然后對(duì)原始數(shù)據(jù)賦值
    let getFormData = getRawDataSource();
    
    // 第一步 拿到表單數(shù)據(jù)
    fromData.name = getFormData.data.name;
    fromData.departmentName = getFormData.data.departmentName;
    fromData.field = getFormData.data.field;
    fromData.scenarioName = getFormData.data.scenarioName;
    fromData.applicableUserName = getFormData.data.applicableUserName;
    console.log('---------------form表單-----------------');
    console.log(fromData);
    
    // 第二步 對(duì)表單數(shù)據(jù)進(jìn)行賦值
    let form = getForm();
    console.log('---------------獲取到的form表單數(shù)據(jù)-----------------');
    console.log(form);
    getForm().setFieldsValue({
        datalistName: fromData.departmentName,
        department: fromData.departmentName,
        field: fromData.field,
        UsageScenario: fromData.scenarioName,
        applicableUser: fromData.applicableUserName,
    });
}
二、解決第二步的問(wèn)題:把拿到的數(shù)據(jù)賦值給表單

useTable中提供了getForm這個(gè)方法,getForm這個(gè)方法中包含了對(duì)表單處理的各種方法,其中對(duì)表單賦值的方法是setFieldsValue,設(shè)置表單數(shù)據(jù)的方法。(上面第一步的代碼也包含了第二步的代碼)

// 第二步 對(duì)表單數(shù)據(jù)進(jìn)行賦值
    let form = getForm();
    console.log('---------------獲取到的form表單數(shù)據(jù)-----------------');
    console.log(form);
    getForm().setFieldsValue({
        datalistName: fromData.departmentName,
        department: fromData.departmentName,
        field: fromData.field,
        UsageScenario: fromData.scenarioName,
        applicableUser: fromData.applicableUserName,
    });

第一步,第二步的問(wèn)題都解決了,我們還有一步要完成,就是什么時(shí)候調(diào)用getRawData去獲取數(shù)據(jù),去賦值。
這個(gè)時(shí)候我們就要用到了afterFetch,在afterFetch中調(diào)用getRawData,這樣就算徹底解決了我的問(wèn)題。

好了,就到這吧,后續(xù)還會(huì)發(fā)出新的總結(jié),希望能幫到大家。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-707323.html

到了這里,關(guān)于vben-admin中渲染table表格時(shí)怎么處理不同的數(shù)據(jù)結(jié)構(gòu)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • Vben Admin 的介紹以及使用

    Vben Admin 的介紹以及使用

    Vben Admin官方文檔地址 好像官網(wǎng)掛了 !! 嚶嚶嚶嚶嚶 因?yàn)樽罱鼧I(yè)務(wù)需要,項(xiàng)目使用 vben作為前端框架,開(kāi)始了解并學(xué)習(xí) vben 的使用,發(fā)現(xiàn)在網(wǎng)上很少能夠找到 vben 相關(guān)的教程以及視頻, 對(duì)于前端方面了解較少,以下內(nèi)容僅代表個(gè)人理解,如有錯(cuò)誤,歡迎評(píng)論指正 Vue-Vben-Admin 是一個(gè)基于

    2023年04月09日
    瀏覽(19)
  • vue+Element UI Table表格動(dòng)態(tài)渲染表頭內(nèi)容及操作按鈕

    循環(huán)表格頭信息數(shù)組 封裝操作組件并引入表格文件內(nèi) 配置表頭信息數(shù)組及添加操作事件

    2024年02月13日
    瀏覽(93)
  • 管理后臺(tái)UI框架vue-vben-admin運(yùn)行

    管理后臺(tái)UI框架vue-vben-admin運(yùn)行

    Vue Vben Admin 是一個(gè)免費(fèi)開(kāi)源的中后臺(tái)模版。使用了最新的vue3,vite2,TypeScript等主流技術(shù)開(kāi)發(fā),開(kāi)箱即用的中后臺(tái)前端解決方案,也可用于學(xué)習(xí)參考。 Github地址: https://github.com/anncwb/vue-vben-admin 文檔地址: https://vvbin.cn/doc-next/ Tailwind CSS Ant Design Vue 2.0 node 和 git -項(xiàng)目開(kāi)發(fā)環(huán)境 Vi

    2024年02月06日
    瀏覽(24)
  • yudao-ui-admin-vben管理后臺(tái):基于最新vben 框架的企業(yè)級(jí)管理后臺(tái)應(yīng)用解決方案

    yudao-ui-admin-vben管理后臺(tái):基于最新vben 框架的企業(yè)級(jí)管理后臺(tái)應(yīng)用解決方案

    摘要: 本文主要介紹了yudao-ui-admin-vben管理后臺(tái),一個(gè)基于最新vben 框架的企業(yè)級(jí)管理后臺(tái)應(yīng)用解決方案。文章首先概述了yudao-ui-admin-vben管理后臺(tái)的技術(shù)棧和功能特點(diǎn),然后深入探討了其架構(gòu)設(shè)計(jì)、核心模塊實(shí)現(xiàn)以及性能優(yōu)化等方面的技術(shù)細(xì)節(jié)。最后,文章總結(jié)了yudao-ui-admi

    2024年04月27日
    瀏覽(28)
  • vue vben admin 使用, (個(gè)人感覺(jué)這項(xiàng)目封裝的太深了!!!!)

    我們是不會(huì)被困難打敗的, 只會(huì)越戰(zhàn)越勇! 開(kāi)啟了表單搜索功能, demo 代碼是 formtable 組件, 個(gè)人還是比較喜歡 template 方式, 這樣的方式使用不了 getForm 這種方法 需要注意的是, 如果使用了組件表單搜索功能, 就是說(shuō)你需要提供一個(gè)獲取數(shù)據(jù)的api, 這里著重去看怎么適配表格需要的

    2024年02月06日
    瀏覽(20)
  • 【前端】vue3+ts+vite,el-table表格渲染記錄重復(fù)情況

    給自己一個(gè)目標(biāo),然后堅(jiān)持一段時(shí)間,總會(huì)有收獲和感悟! 在使用vue的過(guò)程中,總會(huì)遇到一些有疑問(wèn)的地方,總結(jié)就能夠加深印象,下次再出現(xiàn)的時(shí)候也有個(gè)參考的地方。 Element UI 的 el-table 組件是一個(gè)強(qiáng)大的表格組件,提供了許多常見(jiàn)的屬性來(lái)配置和定制表格的外觀和行為

    2024年02月04日
    瀏覽(32)
  • vue純前端導(dǎo)入excel,獲取excel的表格數(shù)據(jù)渲染el-table

    vue純前端導(dǎo)入excel,獲取excel的表格數(shù)據(jù)渲染el-table

    最近有個(gè)需求,最開(kāi)始列表數(shù)據(jù)是通過(guò)新增按鈕一條條添加的,但是部分?jǐn)?shù)據(jù)量可能上百條,客戶自己手選會(huì)很慢,所以產(chǎn)品經(jīng)理給了個(gè)需求要求可以通過(guò)上傳excle文件進(jìn)行導(dǎo)入。 經(jīng)過(guò)網(wǎng)上查詢(xún)及涉及自己項(xiàng)目,實(shí)現(xiàn)了此功能。 第一步:安裝插件,我安的是0.16.0;原因是默認(rèn)

    2024年02月16日
    瀏覽(30)
  • vue大數(shù)據(jù)表格上萬(wàn)條數(shù)據(jù),樹(shù)型表格,解決el-table表格數(shù)據(jù)量過(guò)大渲染卡死的問(wèn)題,使用umy-ui的大數(shù)據(jù)表格虛擬表格虛擬滾u-table解決。

    vue大數(shù)據(jù)表格上萬(wàn)條數(shù)據(jù),樹(shù)型表格,解決el-table表格數(shù)據(jù)量過(guò)大渲染卡死的問(wèn)題,使用umy-ui的大數(shù)據(jù)表格虛擬表格虛擬滾u-table解決。

    先看看效果吧,拿實(shí)例說(shuō)話,直接渲染四萬(wàn)多條數(shù)據(jù)不分頁(yè),樹(shù)形表格可以展開(kāi) 直接上代碼: 第一步:引入表格組件:自行按照官方文檔引入即可 第二步:具體頁(yè)面實(shí)現(xiàn)代碼: 這是HTMl代碼,多的不介紹,基本方法和el-atble沒(méi)什么區(qū)別,只是tl-table的基礎(chǔ)上加了幾個(gè)屬性,這

    2024年02月11日
    瀏覽(21)
  • vue3 組合式 ant.design組件Table嵌套表格,從后端獲取數(shù)據(jù)并動(dòng)態(tài)渲染

    在根據(jù)官方文檔使用ant.design中的嵌套表格時(shí),發(fā)現(xiàn)官方文檔很多地方都不夠詳細(xì)。在過(guò)程中踩了不少坑,例如: 子表如何獲取父表的數(shù)據(jù)? 如何獲取子表的行索引? 如何讓子表的數(shù)據(jù)源來(lái)自父表該行的數(shù)據(jù)? 總之,最后還是磕磕絆絆做完了功能,于是第一時(shí)間把代碼整理

    2024年02月15日
    瀏覽(22)
  • elementUi中的el-table表格的內(nèi)容根據(jù)后端返回的數(shù)據(jù)用不同的顏色展示

    elementUi中的el-table表格的內(nèi)容根據(jù)后端返回的數(shù)據(jù)用不同的顏色展示

    效果圖如下: 首先 首先:需要在表格行加入?template slot-scope=\\\"{ row }\\\"?/template標(biāo)簽 ?2.在methods里面加入這個(gè)方法: ?3.去設(shè)置自己喜歡的顏色: //還有另一種(這種后端返回的數(shù)據(jù)里面帶有背景色的字段) ? ?

    2024年02月10日
    瀏覽(28)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包