微商城装修逻辑稍显复杂,这里将部分逻辑整理成文档,以便以后查询修改。
相关文件
PC管理平台
模板列表页decoration_main.vm
decoration_main.js
模板预览模块mod_decorationMods.vm
mod_decorationMods.js
模板编辑页decoration_edit.vm
decoration_edit.js
模板编辑模块m_decoration.js
mod_decoration.vm
移动端
getStoreHomePage.vm
getStoreHomePage.js
模板类型
- 默认模板 :所有门店在没有设置模板的情况下使用默认模板
- 自定义装修:门店自己的装修模板,编辑门店自定义的装修模板,不会影响到其它门店,属于门店唯一
- 装修模板:商户可以新建模板,保存时都将保存为标准模板,标准模板可以供商户下所有门店或部分门店使用
每个商户有自己的模板仓库,可以添加/编辑/删除模板
业务逻辑
- 每个门店有一个商户提供的默认模板和一个自定义模板
- 门店只能编辑自定义模板或选择商户模板库中的装修模板
- 商户可批量设置门店的商城模板
- 商户可修改默认模板和装修模板
装修逻辑
所有模块
模板装修提交的数据内容
orderNumber
会在提交时,根据模块的位置自动生成version
在用户保存时,自增1,用于记录模板编辑次数,也可以视为模板版本
交互逻辑
创建新模块
|
|
取消编辑
|
|
点击编辑
|
|
删除
|
|
预览和发布
店铺预览和店铺实际的商城首页为同一个地址
预览时,地址中有template参数,界面所有链接不可点击
移动端界面渲染
文件位置
mall/getStoreHomePage.vm
js/mall/getStoreHomePage.js
模板数据加载
为了减少页面的加载时间,装修数据、门店信息、品牌、分类等初始数据由后端注入在模板页面中返回,由全局变量 PAGE_CONF
中获取
页面加载完成后,直接调用 renderConfig
方法渲染页面renderConfg
中判断如果有自定义配置则使用自定义配置,如果没有则使用默认配置 (默认配置在当前页面中)
模板渲染
循环配置数据,由模块ID,到模块配置 MODULES
中,查找到页面中的编辑模板,由artTemplate
渲染到页面。
商品列表渲染
- 已知数量的商品列表:直接根据选择的商品ID,异步加载渲染
- 未知数量的商品列表:将商品加载信息放入一个队列
PRO_LIST
加载触发
第一次渲染完成后,检测页面是否有滚动条,如果没有,则触发一次加载,如果有数据返回则停止加载,监听滚动事件,如果没有,则继续加载一下个请求,直到加载到数据。当最后队列中请求信息为空时,隐藏 loading
显示 查看所有商品
链接,刷新滚动组件。
需求修改示例
需求1:为商品列表模块添加一个按自定义分类展示的功能
- 到
mod_decoration.vm
中修改模板内容,添加编辑项,搜索m1004
找到商品模块编辑模板 m_decoration.js
中添加数据groupData
至模板m_decoration.js
中添加保存模块时的取值操作previewEv
- 查看保存数据,预览界面是否显示正常
- 查看编辑是否显示正常
- 修改移动端
getStoreHomePage.vm
&getStoreHomePage.js
js
的_render
方法、loadProList
方法、_creatProList
方法中添加对group
的判断- 查看数据返回是否正常
需求2:为商品选择框添加搜索条件,按类目和自定义分类搜索