今天还是要完成商户平台的商品编辑的功能;
这里没有什么困难,就是有点繁琐;
基础功能有商品的基础属性如标题,副标题,商品价格(市场价,商城价,会员价,批发商价...);
比较复杂一点的是商品的sku设计;这个sku放在明天或后天完成;因为牵涉到用户体验问题,所以需要好好抽出几天设计;
先上图看下以及完成的功能,然后再针对一些细节调整;
这里我把商品标签设置为商户平台不可新增,统一由城市平台控制;这样标签不会乱套,而且 后期做活动时,只需要商户选择合适的标签,就会进入到对应的活动板块;
商品图片为什么抛弃所见即所得编辑框呢?
因为以下原因
1:在小程序中,不支持富文本展示;
2:一般的商品现在都是用图片做商品详情,这样做比好看;
3:图片压缩处理,这样比较节省空间;
商品缩略图默认第一个,点击其他缩略图后可以切换;
目前设计的数据库表结构已经放出到单独的一篇博客,可以参考下;
商品编辑是商城最复杂,最重要的一个点:在做过的项目中,遇到过几个这样的问题;
1.商品最小购买数量,以及最大购买数量问题(最小购买数量针对一些批发商商城用户来说,至关重要,他们不希望买一瓶或者一箱的商品订单,一般都是单商品5件或则xx件起送);
2.商品运费(第一个版本不考虑运费模板,只设计单商品是否包邮,单商品运费,订单总运费满减情况,运费这块也比较复杂,现在好多商城为了简单,都设计的是设计一个总的运费,满xx元免运费,或者满xx元运费xx元; 我这里也准备设计成 满xx元运费yy元;当yy=0时,即可实现包邮;因为商场都是卖给本地的一些微商或者本地供货商,他们宣传力度有限,只能在周边城市运营,所以他们也不想设计那么复杂的运费模板;他们只想简单点; 而淘宝的sku真的比较复杂,很想程序员干的事;以数据驱动,而不是用户体验驱动; 之前我记得淘宝还是一级规格,二级规格,三级规格,现在基本都是只有一级规格,例如 iphone7 + 64G,iphone6+32G,iphone7 +128G,iphone6+64G,,这就对了,用户简单看,后台简单操作.这是进化了:>)
3.商品积分抵现( 商品最大抵用金额);
这几个难点,我准备每个难点都单独写一篇文章; 慢慢的重构;从第0个版本一直往上重构; 前期要写好接口;
之前的系统设计时,我参考discuz插件,留一部分钩子;
这些钩子里面我会加入一些handler;
譬如订单处理这块.我会有 yunfeiHandler,jifenHandler,buyNumHandler,fenxiaoHandler(订单分销处理)...
这样我后期根据客户的需求,二次开发比较快;
//-----------------------------------------------------------------------------------
规格模板参考这篇(只是参考,我做商品基本上没有规格参数这些,只做sku这块.因为客户不关注这样,而且商家也不想写这些规格参数;
规格参数如果用来商品筛选的话比较有用,但是这篇文章的设计貌似用json存储规格参数,估计也就是仅仅用来展示,筛选可能没实现;
之前我的商城设计好像设计过一版可以筛选规格的,后期也单独写一篇文字吧)
https://blog.csdn.net/qq_1017097573/article/details/68501687
sku:再议;
vue技巧:
通过后台取出的data可能会有很多数据,这里我们需要过滤一下,然后在设置在vue的data中;我在util中写了个通用的函数;
export function setFormData(form,data){
if(form&&data){
for(var key in form){
if(data[key]){
form[key] = data[key];
}
}
}
return form;
}
后台取出的数据结构Data1
vue需要的数据Data2
Data1 相对于 Data2有太多无用的参数.所以后台取出的数据要根据vue的数据选择性赋值;
使用通用函数setFormData后:就会抛掉不必要的参数;
商品标签更新细节:
更新标签时要先判断下标签是否更改过,如果标签没有变化,则不需要操作标签商品表;如果更改过,则需要先删除掉所有该商品的标签商品表数据gid=$gid的记录,然后在insertAll;
如果判断标签是否更新过呢?这里要用到vue @change方法,再设置一个变量,tagsChanged默认为false;改变后赋值true; post传递到后台,后台根据truefalse进行tagsGoods表更新;