商城上傳商品sku線上項目任意層級!!!

線上項目示例GIF

spu sku如果不懂的話可以百度,這篇只教你如何實現,整體分為4個步驟,你可以根據自己的業務,靈活使用。

1. 獲取源數據

數據源的簡單模型(這里就不貼實際的數據結構,可以在源碼中查看)

let metaData=[[1],[2,3,4],[5,6],[7]]

2. 生成sku

sku數據的簡單模型

let sku=[[1,2,5,7],
         [1,2,6,7],
         [1,3,5,7],
         [1,3,6,7],
         [1,4,5,7],
         [1,4,6,7]]

可以看的出來最終生成了 1x3x2x1 = 6 條記錄

descartes(metaData) {
            return metaData.reduce((x, y) => {
                let arr = [];
                x.forEach(x => y.forEach(y => arr.push(x.concat([y]))))
                return arr;
            }, [[]])
        

3. 生成表格

生成表格就很簡單了,遍歷sku生成表格的行和列,并返回通過sku生成的列的下標數組用于表格合并的時候指定列,根據業務需求在** let tdAppend =**替換你自己的內容

generatorTable(skuData) {
            let mergeCellColumn=[]
            // 生成表格
            $("thead").html("")
            $("tbody").html("")

            if (skuData[0].length==0){
                return
            }
            skuData.forEach(function (item, index) {
                // 生成表頭
                if (index == 0) {
                    let tHeader = "<tr>"
                    item.forEach(function (sub, i) {
                        mergeCellColumn.push(++i);
                        tHeader += "<th>" + sub.specName + "</th>"
                    })
                    tHeader += "<th>價格</th><th>庫存</th></tr>"
                    $("thead").append(tHeader)
                }
                // 生成表格內容
                let tr = "<tr>"
                let td = ""
                item.forEach(function (sub) {
                    td += "<td>" + sub.specValueName + "</td>"
                })
                let tdAppend = "<td><input  type='number'  class='form-control'/></td><td><input type='number' class='form-control'/></td>"
                td = td + tdAppend
                tr = tr + td + "</tr>"
                $("tbody").append(tr)
            });
            return mergeCellColumn
        },

4. 合并單元格

通過第二步的數據我們可以得到一個6行4列的表格,將每列單獨提取出來

                                         
第一列 [1,1,1,1,1,1]   [1]   
第二列 [2,2,3,3,4,4]   [2,3,4]
第三列 [5,6,5,6,5,6]   [5,6,5,6,5,6]
第四列 [7,7,7,7,7,7]   [7]

合并單元其實就是解決數組相鄰去重問題,只不過在合并行使用 display:none 而不是真實刪除

mergeCell(table_id, columns) {
            columns.forEach(function (column) {
                let tds = $(table_id + " tr td:nth-child(" + column + ")"); // 獲取當前表格第幾列的所有td對象
                let rowSpanIndex=0
                let rowSpanNum = 1;
                for (let i = 0; i < tds.length; i++) {
                    if (i>=tds.length-1){
                        return
                    }
                    if ($(tds[i]).text()==$(tds[i+1]).text()){
                        $(tds[i+1]).hide();
                        $(tds[rowSpanIndex]).attr("rowSpan", ++rowSpanNum);
                    }else{
                        rowSpanIndex=i+1
                        rowSpanNum=1
                    }
                }

            })
        }

到這里一個電商sku生成就完成了。
源碼地址

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,283評論 6 530
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 97,947評論 3 413
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,094評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,485評論 1 308
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,268評論 6 405
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,817評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,906評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,039評論 0 285
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,551評論 1 331
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,502評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,662評論 1 366
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,188評論 5 356
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 43,907評論 3 345
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,304評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,563評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,255評論 3 389
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,637評論 2 370

推薦閱讀更多精彩內容