微页面设计开发指南

简介: 对于电商类的小程序,这种微页面有大量的需求,频繁的改动页面样式、结构和内容,以及发布内嵌的H5页面,后台做到灵活可配置。可免去频繁发布小程序的烦恼。

一、目标实现


[ZI)79X%EK)_KT9B4P8NIUA.png


左侧:为可用的组件列表,可拖动任一组件到中间的预览区域

中间:为页面预览效果页面,选中任一组件,可在右侧进行参数配置

右侧:为组件的参数配置(选中中间的组件时出现),页面配置(选中页面管理tab按钮时出现),组件管理(选中组件管理tab时出现),更改配置,中间的预览区域立即更新视图

对于电商类的小程序,这种微页面有大量的需求,频繁的改动页面样式、结构和内容,以及发布内嵌的H5页面,后台做到灵活可配置。可免去频繁发布小程序的烦恼。


二、开发设计规范


后台部分

管理后台文件目录结构

X_0FW4L@L6RKVT~AG56@)G9.png

image


1. 可将以上的页面进行模块拆分:

  1. components目录放一些常用的组件,leftComponentsPage.vue和rightConfigPage.vue分别为左侧和右侧的集成组件
  2. configComponents目录是右侧显示的对应组件和页面的配置相关的组件,每个组件对应一个配置,封装成对应的组件
  3. viewComponents目录放置组件对应的样式结构代码,每个组件封装成一个样式组件,名称和配置组件一一对应
  4. details.vue为整合页面,分别调用左侧的leftComponentsPage.vue组件和右侧的rightConfigPage.vue组件,以及中间预览遍历组件按需加载样式组件


2. 数据流方向

926D@VE]W}_T@K70G$9X%ZY.png


3. 组件数据格式

以图片组件为例:

{
  "image":{
    "showMethod":"YHYG", // 显示的排列方式,一行一个
    "borderWidth":0, 
    "pageMargin":0,
    "maxImageNum":10,
    "cornerType":"ZJ",
    "imageType":"normal",
    "showNum":6,
    "indicator":"style1",
    "items":[
      {
        "title":"",
        "imageUrl":"",
        "imageWidth":345,
        "imageHeight":241,
        "action":"webview",
        "maAppid":"",
        "maPagePath":"",
        "extLink":"",
        "actionArea":"hotArea",
        "hotAreas":{
            "width":100,
            "height":100,
            "xAxis":128,
            "yAxis":63
        }
      }
    ]
  }
}

下面为组件的属性,由云端接口直接返回,items下面的每一项对应单个图片属性,右侧配置区域可对每个属性进行配置,每上传一张图片,往items里增加一项


4.视图组件结构和对应样式

<template>
<!-- 组件1:图片组件 -->
<div class="component-wrapper image-component" :style="wrapperStyle">
<div class="image-list">
   <div :style="imgItemStyle" class="image-item" v-for="(img, imgIndex) in imgObject.items" :key="imgIndex">
    <img class="image" :src="img.imageUrl ? img.imageUrl : defaultImg">
<div :class="['hotarea', debugMode ? 'debug' : '' ]" :style="img.hotAreaStyle"
@click="redirectPageTo(img.action, img.extLink, img.maAppid, img.maPagePath)" v-if="img.action !== 'nothing'">
</div>
   </div>
</div>
</div>
</template>

类名为component-wrapper的图层为最外层,宽度为屏幕宽度100%(后台预览页面宽度定为375px),为这个图层设置左右padding值为组件传过来的pageMargin的大小

computed: {
  wrapperStyle() {
    return {
      padding-left: this.comData.image.pageMargin + 'px',
      padding-right: this.comData.image.pageMargin + 'px'
    }
  }
}

通过传入组件数据items数组数据,动态计算相关图层样式动态绑定到对应的元素上热区hot-area图层样式对象hotAreaStyle根据组件是否开启点击交互,是默认全区域还是选定区域计算而来




目录
相关文章
|
5月前
|
存储 小程序 JavaScript
基于微信小程序的移动学习平台的设计与实现_kaic
基于微信小程序的移动学习平台的设计与实现_kaic
|
5月前
|
开发框架 搜索推荐 安全
【Uniapp 专栏】基于 Uniapp 的电商应用开发案例解析
【5月更文挑战第12天】使用Uniapp跨平台框架开发电商应用,结合丰富的组件和API,实现首页、商品详情、购物车及订单等关键功能。注重界面设计和用户体验,处理商品逻辑、订单管理和支付接口集成。同时,适应多平台特性,加入个性化推荐、商品直播和社交分享等特色功能,以降低成本、提升竞争力,打造高效购物体验。此案例展示了Uniapp在电商领域的潜力和优势。
155 4
HarmonyOS学习路之开发基础——快速入门(实现页面跳转)
打开第一个页面的“MainAbilitySlice.java”文件,添加按钮的响应逻辑,实现点击按钮跳转到下一页
|
数据采集 JSON 小程序
《智能前端技术与实践》——第 2 章 前端开发基础 ——2.7 微信小程序开发——2.7.1 微信小程序框架结构分析
《智能前端技术与实践》——第 2 章 前端开发基础 ——2.7 微信小程序开发——2.7.1 微信小程序框架结构分析
152 0
|
存储 小程序 前端开发
【零基础微信小程序入门开发五】基础能力(一)
在学习小程序中,我们必须要接触小程序的一些基础能力,从而实现一些业务的开发,例如上传图片下载文件,或者是通过接口返回的数据进行渲染来完成一些事件的触发,基础能力包括:网络请求、文件读写、存储,以及渲染画布等,这里呢我们着重讲几个,其他的例如分包下载、按需注入等因为不满足这次的零基础开发,对于还没.........
123 0
【零基础微信小程序入门开发五】基础能力(一)
|
小程序 开发工具 开发者
实现一码两用:微信小程序配置公众号关注组件
实现一码两用:微信小程序配置公众号关注组件
实现一码两用:微信小程序配置公众号关注组件
|
存储 缓存 小程序
【零基础微信小程序入门开发六】基础能力(二)
同【服务器域名】配置一样在小程序界面配置即可,不过他是作为嵌入的、承载网页的容器。会自动铺满整个小程序页面,小游戏和个人类型的小程序暂不支持使用,我们可以在调试机上看一下效果,它的用法很简单 效果 我们滑动到最底部,可以看到他是铺满全屏的 可...
116 0
【零基础微信小程序入门开发六】基础能力(二)
|
文字识别 小程序 计算机视觉
微信小程序通用功能设计和实现(上)
微信小程序通用功能设计和实现(上)
552 1
微信小程序通用功能设计和实现(上)
|
文字识别 小程序 计算机视觉
微信小程序通用功能设计和实现(下)
微信小程序通用功能设计和实现(下)
281 0
微信小程序通用功能设计和实现(下)
|
小程序 开发者
微信小程序开发速览
微信小程序开发速览
微信小程序开发速览