有没有大佬共享一下 Vue3 写的 SKU 组件后台部分代码学习学习。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
tlerbao
V2EX    程序员

有没有大佬共享一下 Vue3 写的 SKU 组件后台部分代码学习学习。

  •  
  •   tlerbao 2024-01-23 16:52:00 +08:00 2198 次点击
    这是一个创建于 627 天前的主题,其中的信息可能已经有所发展或是发生改变。

    网上的开源电商系统的代码写的真的是千奇百怪啊,有没有大佬共享一下,如题!

    13 条回复    2024-01-24 15:16:34 +08:00
    wednesdayco
        1
    wednesdayco  
       2024-01-23 18:17:58 +08:00
    这个没啥吧,蛮业务的。注意 sku 列表特别大的情况下的渲染
    renmu
        2
    renmu  
       2024-01-23 18:37:52 +08:00 via Android
    这个比我们后台的好多了
    samnya
        3
    samnya  
       2024-01-23 18:47:37 +08:00 via Android
    注册一个微店账号参考一下后台,还可以
    passion336699
        4
    passion336699  
       2024-01-23 18:50:12 +08:00
    SKU Table 渲染就是 求笛卡尔积,知道这个就可以完成 SKU 的组装,渲染这个 Table 。

    因为 SKU 组合会随着规格熟悉复选发生顺序上的变化,所以渲染 SKU Table 的时候,你还要单独判断下 SKU 组合是否改变了,如果改变了就将其他属性变成空,没改变,就把 preSkuItem 的其他属性赋值给 nextSkuItem 。

    例如,第一次,sku 组装出来是 ['红色', '128'] 设置了其他属性 商品价格:123

    后面做了些修改,sku 组装出来是 ['128', '红色'],其实 sku 没有变,你可以把原来的 123 赋值过去,

    这样就不用每次渲染 sku table 都清空之前的输入了,体验会好一点。

    可以用这个函数,判断两个 string[] 是否有 diff ,

    如果 diff === 0 ,俩数组就是相同的,例如:['红色', '128'] 和 ['128', '红色'],

    如果 diff > 0 ,俩数组就是不同的,你可以继续 push 到 skus 数组里面。

    const DIFFERENCE = (a: string[], b:string[]):string[] => {
    const s = new Set(b);
    return a.filter((x) => !s.has(x));
    };
    passion336699
        5
    passion336699  
       2024-01-23 18:54:55 +08:00
    最终的 RequestDTO 和 回显的 RequestDTO ,每个公司都不一样,你最后也是要组装值透传接口,或者拿到接口返回组装数据渲染。

    1. 求笛卡尔积组装数据渲染 SKU Table ;
    2. 再比对 SKU 组合是否发生改变来判断是否要清空或者回填 preSkuItem properties ;

    如果是编辑的话,还要回传 skuItem 的 id ,只要第 2 步没有 diff ,你的 id 也是要透传进来的。

    大概都是这么玩吧,个人拙见...
    ruoxie
        6
    ruoxie  
       2024-01-23 19:55:42 +08:00
    https://codepen.io/JayceWu/pen/dOxLex 很多年前写的了,vue2 的
    humbass
        7
    humbass  
       2024-01-23 21:16:26 +08:00
    刚做了一个电商项目,查了资料才知道是笛卡尔积算法;

    做是做出来了,sku 的名称有中文,不太满意,还没想好下一版本如何实现一个纯英文的
    TimPeake
        8
    TimPeake  
       2024-01-23 22:07:26 +08:00
    掘金搜 sku
    xaxb
        9
    xaxb  
       2024-01-23 22:53:11 +08:00 via iPhone
    https://smart-mall.g686.net/manage
    预定义规格,后在商品里引用就好了,需要哪个选哪个。大平台都是预定义好了规格对应到特定的类
    xaxb
        10
    xaxb  
       2024-01-23 22:56:43 +08:00 via iPhone
    tlerbao
        11
    tlerbao  
    OP
       2024-01-24 08:23:05 +08:00
    @alex8 #10 小哥你这个预定义规格的到是让我眼前一亮,有什么交流方式可以和你请教一下吗 wechat/QQ/电报都行
    summerLast
        12
    summerLast  
       2024-01-24 10:37:03 +08:00
    笛卡尔乘积,额
    shamogulang
        13
    shamogulang  
       2024-01-24 15:16:34 +08:00
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1012 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 18:37 PVG 02:37 LAX 11:37 JFK 14:37
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86