Vue單元格合并

前言

最近需要做一個(gè)表格類APP袁稽,但是原生貌似實(shí)現(xiàn)起來(lái)麻煩(哪位iOS大佬如果有好思路不勝感激,我還沒有研究,感覺是scrollView嵌套tableView披蕉,但總感覺不對(duì)梆暖,包括合并單元格肯定更麻煩伞访,還是h5吧,原生控件方便又快捷)轰驳,開會(huì)的時(shí)候不知哪位小伙伴冒了一句厚掷,h5好做,于是级解。冒黑。。

先看一下效果勤哗,暫時(shí)是本地mock數(shù)據(jù)抡爹,GitHub地址

two.gif

需求整理

  • 1.相鄰的相同值的行數(shù)據(jù)項(xiàng)進(jìn)行單元格合
  • 2.表格表頭固定
  • 3.側(cè)欄可固定
  • 4.單元格內(nèi)可嵌套自定義組件

作為vue沒學(xué)習(xí)多久的渣渣來(lái)說(shuō),其實(shí)也是兩眼蒙圈芒划,作為資深輪子搬運(yùn)工冬竟,于是開始找輪子,果然找到了國(guó)人寫的vue table組件民逼,功能非常棒泵殴,支持單元格合并、單元格編輯拼苍、多表頭固定笑诅、多列固定、列拖動(dòng)疮鲫、排序苟鸯、自定義列、分頁(yè)... vue-easytable 當(dāng)然還有其他優(yōu)秀輪子如vuetable-2棚点。

vue-easytable 就不多說(shuō)了早处,GitHub上有api詳細(xì)說(shuō)明,本次只說(shuō)遇到的問(wèn)題以及解決方法

問(wèn)題一 相鄰的相同值的行數(shù)據(jù)項(xiàng)進(jìn)行單元格合

show me code 其實(shí)就是遍歷所有數(shù)據(jù)瘫析,對(duì)比下一條數(shù)據(jù)是否相同砌梆,再累加

// 數(shù)據(jù)整理
formatData() {
      const KEY_ROWSPAN = "rowSpan";
      var k = 0;
      while (k < this.tableData.length) {
        this.tableData[k][KEY_ROWSPAN] = 1;
        for (var i = k + 1; i <= this.tableData.length - 1; i++) {
          if (
            this.tableData[k][KEY_NAME] === this.tableData[i][KEY_NAME] &&
            this.tableData[k][KEY_NAME] !== ""
          ) {
            this.tableData[k][KEY_ROWSPAN]++;
          } else {
            break;
          }
        }
        k = i;
      }
      this.resultData = this.tableData;
    },
// 數(shù)據(jù)合并方法
cellMerge(rowIndex, rowData, field) {
      if (field === KEY_NAME && rowData.rowSpan > 0) {
        // console.log(rowData.rowSpan);
        return {
          colSpan: 1,
          rowSpan: rowData.rowSpan,
          content: rowData[field],
          componentName: ""
        };
      }
}

問(wèn)題二默责、問(wèn)題三

查看api,只設(shè)置一個(gè)屬性即可解決咸包,在此不做復(fù)述桃序,可直接看demo

問(wèn)題四 單元格內(nèi)可嵌套自定義組件

1.首先封裝好你需要嵌套的組件并暴露easytable數(shù)據(jù)傳遞屬性rowData、field烂瘫、index
2.全局導(dǎo)入剛剛封裝好的組件
3.在cellMerge方法中處理

cellMerge(rowIndex, rowData, field) {
      if (field === "score") {
        return {
          colSpan: 1,
          rowSpan: 1,
          content: "",
          componentName: "bar"
        };
      }
}

以為這樣就大功告成了嗎媒熊,不沒有,后來(lái)發(fā)現(xiàn)文字無(wú)法換行居中坟比,GitHub上也很多人提了issue芦鳍,但就是沒有解決,這就很尷尬了葛账,本著社會(huì)主義接班人的精神柠衅,我看了一下

界面丑的沒有標(biāo)題.jpeg

我的解決方案

1.查看api哪里有暴露,于是看到columnCellClass方法
2.columnCellClass方法返回新樣式籍琳,覆蓋作者樣式

columnCellClass(rowIndex, columnName, rowData) {
      if (columnName === "name" || columnName === "category") {
        return "mine-custom-cell";
      }
    }
.mine-custom-cell {
  padding: 0;
}
.mine-custom-cell .v-table-body-cell {
  padding: 0;
  white-space: normal;
  line-height: normal !important;
  /* display: table-cell; */
  /* vertical-align: middle; */
  position: relative;
}
.mine-custom-cell .v-table-body-cell span {
  position: absolute;
  width: 100%;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}

總結(jié)

作為一個(gè)原生iOS開發(fā)為何越來(lái)越覺得h5好玩了菲宴,真的是無(wú)言以對(duì)了,這以后找工作問(wèn):會(huì)XX嗎趋急,深入過(guò)嗎喝峦?會(huì),沒有呜达,只會(huì)搬輪子谣蠢。直接gg,共勉闻丑。最后再次附上GitHub地址

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市勋颖,隨后出現(xiàn)的幾起案子嗦嗡,更是在濱河造成了極大的恐慌,老刑警劉巖饭玲,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件侥祭,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡茄厘,警方通過(guò)查閱死者的電腦和手機(jī)矮冬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)次哈,“玉大人胎署,你說(shuō)我怎么就攤上這事∫ぶ停” “怎么了琼牧?”我有些...
    開封第一講書人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵恢筝,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我巨坊,道長(zhǎng)撬槽,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任趾撵,我火速辦了婚禮侄柔,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘占调。我一直安慰自己暂题,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開白布妈候。 她就那樣靜靜地躺著敢靡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪苦银。 梳的紋絲不亂的頭發(fā)上啸胧,一...
    開封第一講書人閱讀 49,760評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音幔虏,去河邊找鬼纺念。 笑死,一個(gè)胖子當(dāng)著我的面吹牛想括,可吹牛的內(nèi)容都是我干的陷谱。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼瑟蜈,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼烟逊!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起铺根,我...
    開封第一講書人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤宪躯,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后位迂,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體访雪,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年掂林,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了臣缀。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡泻帮,死狀恐怖精置,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情锣杂,我是刑警寧澤氯窍,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布饲常,位于F島的核電站,受9級(jí)特大地震影響狼讨,放射性物質(zhì)發(fā)生泄漏贝淤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一政供、第九天 我趴在偏房一處隱蔽的房頂上張望播聪。 院中可真熱鬧,春花似錦布隔、人聲如沸离陶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)招刨。三九已至,卻和暖如春哀军,著一層夾襖步出監(jiān)牢的瞬間沉眶,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工杉适, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留谎倔,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓猿推,卻偏偏與公主長(zhǎng)得像片习,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蹬叭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348

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

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,743評(píng)論 25 707
  • 1藕咏、通過(guò)CocoaPods安裝項(xiàng)目名稱項(xiàng)目信息 AFNetworking網(wǎng)絡(luò)請(qǐng)求組件 FMDB本地?cái)?shù)據(jù)庫(kù)組件 SD...
    陽(yáng)明先生_X自主閱讀 15,969評(píng)論 3 119
  • 轉(zhuǎn)載: iOS-PingFangSC字體 字體下載地址 導(dǎo)入第三方字體流程 IOS開發(fā)中增加外部字體
    Z了個(gè)L閱讀 142評(píng)論 0 1
  • “穿過(guò)河流是海洋,穿過(guò)海洋是遠(yuǎn)方秽五,站在心的方向孽查,張開愛的翅膀......” 這是《海洋天堂》的插曲◇莶希《海洋天堂》卦碾,...
    1e01128ebff4閱讀 293評(píng)論 0 0