vue里使用elementUI里的el-table下拉樹(shù)表格莫矗,如何定義個(gè)性化的子表格飒硅?

最近項(xiàng)目寫(xiě)到一個(gè)業(yè)務(wù)砂缩,首先需要展示各類(lèi)分組的基本信息,然后需要點(diǎn)擊每個(gè)分組展示該分組下子的所有具體信息

一開(kāi)始我是打算用tab來(lái)展示就是首先父分組的名稱(chēng)就是各個(gè)不同的tab按鈕三娩,然后點(diǎn)擊按鈕再展示不同的子表格信息

but...產(chǎn)品說(shuō)不行庵芭,要一開(kāi)始就展示一個(gè)表格,然后每一行可以點(diǎn)擊下拉雀监,再展示一個(gè)子表格

然后我就在餓了么官網(wǎng)尋找有沒(méi)有對(duì)應(yīng)的組件双吆,當(dāng)我看見(jiàn)下面這個(gè)組件時(shí)很開(kāi)心以為可以直接用了


image

但是,當(dāng)我點(diǎn)開(kāi)始發(fā)現(xiàn)并不是我想要的那樣


image

這里的子表格并沒(méi)有表頭会前,而且和父表格的表頭內(nèi)容一樣好乐,并不是自定義的
然后又找了一個(gè),這里也只是展示了每行信息的詳情
image

這時(shí)候我們?cè)撛趺崔k呢瓦宜?自己重新寫(xiě)個(gè)組件蔚万?還是直接把el的源碼拿過(guò)來(lái)修改源碼樣式?寫(xiě)出來(lái)倒是不難临庇,但是時(shí)間不允許啊反璃,同時(shí)你還要考慮各種兼容性,以及樣式風(fēng)格

然后又看了一下上面這個(gè)代碼假夺,這里是個(gè)form表單淮蜈,那我可不可以把它換成一個(gè)個(gè)性化的表格呢


image

然后我在代碼里這樣寫(xiě)

<!-- 展開(kāi)子表格 -->
        <el-table-column type="expand"
          align="center">
          <template slot-scope="props">
            <el-table :data="props.row.dicts">
              <el-table-column prop="label"
                label="名稱(chēng)">
              </el-table-column>
              <el-table-column prop="value"
                label="值">
              </el-table-column>
              <el-table-column prop="sort"
                label="排序">
              </el-table-column>
              <el-table-column prop="remarks"
                show-overflow-tooltip
                label="備注">
              </el-table-column>
              <!-- 子表格操作列 -->
              <el-table-column header-align="center"
                align="center"
                width="160"
                label="操作">
                <template slot-scope="scope">
                  <el-button-group>
                    <el-button size="mini"
                      title="編輯"
                      type="primary"
                      circle
                      @click="handleEditDict(scope.row)">
                      <i class="fa fa-pencil"></i>
                    </el-button>
                    <el-button size="mini"
                      title="刪除"
                      type="danger"
                      circle
                      @click="handleDeleteDict(scope.row)">
                      <i class="fa fa-trash-o"></i>
                    </el-button>
                  </el-button-group>
                </template>
              </el-table-column>

然后運(yùn)行代碼↓perfect


image

下面就是子表格的數(shù)據(jù)該怎么渲染呢,這是個(gè)很關(guān)鍵的問(wèn)題已卷,而且我們還要實(shí)現(xiàn)那種懶加載梧田,點(diǎn)擊后才去請(qǐng)求后臺(tái)

看官網(wǎng)里表格里的事件方法


image

這時(shí)候給父表格加了這個(gè)事件

<!-- 數(shù)據(jù)表格 -->
      <el-table row-key="id"
        fit
        highlight-current-row
        :data="pageData.results"
        :header-row-class-name="'table-head-th'"
        @expand-change="handleExpendRow">

下面就在代碼里說(shuō)明如何進(jìn)行數(shù)據(jù)綁定

handleExpendRow(row, expandedRows) { //這里是點(diǎn)擊每一行會(huì)觸發(fā)的方法
      if (!row.dicts) { //這里做了一個(gè)判斷,首先判斷這一行的數(shù)據(jù)對(duì)象有沒(méi)有dicts這個(gè)屬性,如果沒(méi)說(shuō)明沒(méi)有數(shù)據(jù)我們需要請(qǐng)求后臺(tái)裁眯,相當(dāng)于懶加載
        this.queryDictData(row.id, row.labelType) //關(guān)鍵就是這個(gè)方法肖方,row.id是父分組的id需要傳給后臺(tái)查詢(xún)?cè)撟臃纸M的信息
      }
    },
queryDictData(id, labelType) {
      let self = this
      labelService.getLabels({ groupCode: labelType }).then(rspData => { //這里是我們項(xiàng)目里封裝的ajax請(qǐng)求方法,相當(dāng)于axios.post()
        console.log(rspData)
        const index = self.pageData.results.findIndex(data => data.id === id) //首先pageData.results綁定的是父表格的數(shù)據(jù)未状,那么我們要把子表格數(shù)據(jù)塞到對(duì)應(yīng)的父分組俯画,那我們要知道是哪一個(gè)分組,這里的findIndex就是通過(guò)id去查找對(duì)應(yīng)的父分組在數(shù)據(jù)數(shù)組里的下標(biāo)
        if (rspData.data && rspData.data.length) {
          rspData.data.forEach(item => { //這里我是給每個(gè)子分組信息里都加上父分組的id司草,以方便后面操作子表格每一行后艰垂,回調(diào)函數(shù)里刷新數(shù)據(jù)時(shí)需要用到,要知道他的父親是誰(shuí)埋虹,哈哈
            item.labelId = id
          })
        }
        self.$set(self.pageData.results[index], 'dicts', rspData.data) //這里就是給父表格數(shù)據(jù)數(shù)組self.pageData.results第index個(gè)對(duì)象加上dicts這個(gè)屬性猜憎,然后把rspData.data我們從后臺(tái)拿到的數(shù)據(jù)綁定到dicts這個(gè)key里
}) }

這時(shí)候我們刷新頁(yè)面就看到如下,成功完成下拉自定義個(gè)性自表格


image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末搔课,一起剝皮案震驚了整個(gè)濱河市胰柑,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌爬泥,老刑警劉巖柬讨,帶你破解...
    沈念sama閱讀 206,839評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異袍啡,居然都是意外死亡踩官,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)境输,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)蔗牡,“玉大人,你說(shuō)我怎么就攤上這事嗅剖”缭剑” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,116評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵信粮,是天一觀的道長(zhǎng)黔攒。 經(jīng)常有香客問(wèn)我,道長(zhǎng)蒋院,這世上最難降的妖魔是什么亏钩? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,371評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮欺旧,結(jié)果婚禮上姑丑,老公的妹妹穿的比我還像新娘。我一直安慰自己辞友,他們只是感情好栅哀,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布震肮。 她就那樣靜靜地躺著,像睡著了一般留拾。 火紅的嫁衣襯著肌膚如雪戳晌。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,111評(píng)論 1 285
  • 那天痴柔,我揣著相機(jī)與錄音沦偎,去河邊找鬼。 笑死咳蔚,一個(gè)胖子當(dāng)著我的面吹牛豪嚎,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播谈火,決...
    沈念sama閱讀 38,416評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼侈询,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了糯耍?” 一聲冷哼從身側(cè)響起扔字,我...
    開(kāi)封第一講書(shū)人閱讀 37,053評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎温技,沒(méi)想到半個(gè)月后革为,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,558評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡荒揣,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評(píng)論 2 325
  • 正文 我和宋清朗相戀三年篷角,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了焊刹。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片系任。...
    茶點(diǎn)故事閱讀 38,117評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖虐块,靈堂內(nèi)的尸體忽然破棺而出俩滥,到底是詐尸還是另有隱情,我是刑警寧澤贺奠,帶...
    沈念sama閱讀 33,756評(píng)論 4 324
  • 正文 年R本政府宣布霜旧,位于F島的核電站,受9級(jí)特大地震影響儡率,放射性物質(zhì)發(fā)生泄漏挂据。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評(píng)論 3 307
  • 文/蒙蒙 一儿普、第九天 我趴在偏房一處隱蔽的房頂上張望崎逃。 院中可真熱鬧,春花似錦眉孩、人聲如沸个绍。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,315評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)巴柿。三九已至凛虽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間广恢,已是汗流浹背凯旋。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,539評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留钉迷,地道東北人瓦阐。 一個(gè)月前我還...
    沈念sama閱讀 45,578評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像篷牌,于是被迫代替她去往敵國(guó)和親睡蟋。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 今天不得不說(shuō)的是凌晨四點(diǎn)鐘開(kāi)始的歐冠八分之一決賽尤文圖斯主場(chǎng)對(duì)陣馬德里競(jìng)技的比賽枷颊,因?yàn)橛任膱D斯在客場(chǎng)0:2落敗戳杀,要...
    文明發(fā)言閱讀 248評(píng)論 0 1
  • 忘了你,那曾經(jīng)熟悉的背影夭苗,逐漸變得迷離信卡,盡量不去想你,那熟悉的場(chǎng)景题造,恍如昨天傍菇,我在遠(yuǎn)處望著你,你的歡聲笑語(yǔ)界赔,甜美綻...
    書(shū)生愛(ài)寫(xiě)作閱讀 550評(píng)論 4 12
  • 在運(yùn)營(yíng)學(xué)院丢习,丹丹說(shuō),唯一能管理的就是我們自己淮悼。 壞情緒不僅影響學(xué)習(xí)效率咐低,影響工作效率,影響談判結(jié)果袜腥,影響你虧錢(qián)见擦,甚...
    邊小煦閱讀 270評(píng)論 0 0
  • 云海清溪走, 秋風(fēng)蕩月舟羹令。 青山閑夜曼鲤屡, 枝...
    半裸銀裝施粉黛閱讀 471評(píng)論 30 69