IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 微搭医美小程序官方模板解析(一) -> 正文阅读

[移动开发]微搭医美小程序官方模板解析(一)

目录
01 全局变量
我们上一节解析了官方模板的全局变量,本节我们分析一下首页都需要哪些变量及页面级生命周期函数都做了什么工作。

首页变量

打开首页的变量还不少
在这里插入图片描述
我们就按照模板定义的变量复刻一下

category

页面变量定义的方法是鼠标移动到页面名称,点击+
在这里插入图片描述
输入变量的名称,选择变量的类型,并且设定好初始值

先创建第一个变量category
在这里插入图片描述
类型的话选择数组,初始值是空数组
在这里插入图片描述

shopInfo

该变量类型选择对象,初始值是空对象
在这里插入图片描述
在这里插入图片描述

imageList

该变量类型是数组,初始值如下:

[
  "https://main.qcloudimg.com/raw/aa3300b19fb3b03c9a4912780369158e.png"
]

在这里插入图片描述
在这里插入图片描述

footerInfo

该变量类型是数组,初始值为:

[
  {
    "logo": "https://main.qcloudimg.com/raw/6dbfcc53f65ab86dbc518017784b696b.png",
    "index": "",
    "title": "首页"
  },
  {
    "logo": "https://main.qcloudimg.com/raw/6dbfcc53f65ab86dbc518017784b696b.png",
    "index": "",
    "title": "服务"
  },
  {
    "logo": "https://main.qcloudimg.com/raw/6dbfcc53f65ab86dbc518017784b696b.png",
    "index": "",
    "title": "预约"
  },
  {
    "logo": "https://main.qcloudimg.com/raw/6dbfcc53f65ab86dbc518017784b696b.png",
    "index": "",
    "title": "我的"
  }
]

在这里插入图片描述
在这里插入图片描述

inputValue

该变量类型是字符串,默认值是空
在这里插入图片描述
在这里插入图片描述

testHotList

该变量类型是数组,默认值为:

[
  "1",
  "2",
  "3",
  "4"
]

在这里插入图片描述
在这里插入图片描述

employeeList

变量类型为数组,默认值是空数组
在这里插入图片描述
在这里插入图片描述

businessHours

字段类型是字符串,默认值为空
在这里插入图片描述
在这里插入图片描述

topServerList

变量类型是数组,默认值是空数组
在这里插入图片描述
在这里插入图片描述

生命周期函数

export default {
  async onPageLoad(query) {
    // 设置全局底部栏
    app.dataset.state.currentFooter = $page.dataset.state.footerInfo[0]
    const [employeeList, shopInfo, topServerList, category] = await Promise.all([getEmployList(), getShop(), getTopServerList(), getAllCategory()])
    $page.dataset.state.employeeList = employeeList
    $page.dataset.state.shopInfo = shopInfo
    $page.dataset.state.topServerList = topServerList
    app.dataset.state.shopInfo = shopInfo
  },
  onPageShow() {
    //console.log('---------> LifeCycle onPageShow')
  },
  onPageReady() {
    //console.log('---------> LifeCycle onPageReady')
  },
  onPageHide() {
    //console.log('---------> LifeCycle onPageHide')
  },
  onPageUnload() {
    //console.log('---------> LifeCycle onPageUnload')
  },
}
/**
 * 获取美容专员
 */
async function getEmployList() {
  const ret = await app.dataSources['businessBeauty'].fetchEmployeeList({ where: { status: 0 }, pageSize: 4 });
  if (ret.code != 0) {
    return app.showToast({
      title: "获取美容专员失败"
    })
  }
  return ret?.data?.list.slice(0, 4) || [];
}
/**
 * 获取店铺信息
 */
async function getShop() {
  const ret = await app.dataSources['businessBeauty'].getShop();
  if (ret.code != 0) {
    return app.showToast({
      title: "获取店铺信息失败"
    })
  }
  setWorkTime(ret.data?.workTime)
  return ret?.data
}
/**
 * 格式每周工作时间
 */
function setWorkTime(workTime) {
  try {
    let timeArr = { week1: '周一', week2: '周二', week3: "周三", week4: '周四', week5: '周五', week6: '周六', week7: "周日" }
    let start = timeArr[Object.keys(workTime)[0]]
    let end = timeArr[Object.keys(workTime)[Object.keys(workTime).length - 1]]
    let startTime = workTime[Object.keys(workTime)[0]]
    let endTime = workTime[Object.keys(workTime)[Object.keys(workTime).length - 1]]
    let businessHours = `${start}${end} ${startOrEndTimeInit(startTime.start)} - ${startOrEndTimeInit(endTime.end)}`
    $page.dataset.state.businessHours = businessHours
  } catch (err) {
    $page.dataset.state.businessHours = ''
  }

}
/**
 * 获取热门服务信息
 */
async function getTopServerList() {
  const ret = await app.dataSources['businessBeauty'].fetchTopServList({ size: 4 })
  if (ret.code != 0) {
    return app.showToast({
      title: "获取热门服务信息失败"
    })
  }
  return ret.data?.list || []
}
/**
 * 获取服务分类
 */
async function getAllCategory() {
  try {
    let ret = await app.dataSources['businessBeauty'].getAllServCategory()
    if (ret.code != 0) {
      return app.showToast({
        title: "获取服务分类失败"
      })
    }
    let currentCategory = []
    for (const arr of ret.data?.list) {
      if (arr.inHome && currentCategory.length <= 4) {
        currentCategory.push(arr)
      }
    }
    $page.dataset.state.category = currentCategory
    return ret
  } catch (err) {
    console.log(err)
  }
}

/**
 * 开始结束时间格式化
 * 返回结果/60 小于10点加0 
 */
function startOrEndTimeInit(time) {
  try {

    if (String(time).indexOf('.') > -1 && time / 60 < 10) {
      return `0${parseInt(time / 60)}:30`
    }
    if (String(time).indexOf('.') < 0 && time / 60 < 10) {
      return `0${parseInt(time / 60)}:00`
    }
    if (String(time).indexOf('.') > -1 && time / 60 > 10) {
      return `${parseInt(time / 60)}:30`
    }
    if (String(time).indexOf('.') < 0 && time / 60 > 10) {
      return `${parseInt(time / 60)}:00`
    }
  } catch (err) {
    return '-'
  }

}

看代码的意思是依次从数据库中获取首页需要展示的各类信息,我们自己写代码的时候也可以参考官方的这个思路,将不同的信息封装到不同的函数里,然后再给页面的变量赋值,这样你在页面上就可以直接使用了。

需要做的工作就是把官方的代码粘贴到我们自己的应用中
在这里插入图片描述
粘好了之后就需要来开发页面了,低代码主要是拖拽组件

布局分析

我们看一下官方模板,组件总体上是分成了三个部分,顶部的导航栏,中间的内容区域,和底部的导航栏
在这里插入图片描述
那我们就按照这个思路来添加一下组件

顶部导航栏

找到顶部导航栏组件,添加到编辑区中
在这里插入图片描述
导航标题需要自动获取,因此需要做一下数据绑定
在这里插入图片描述
这里使用的是表达式绑定

$page.dataset.state.shopInfo.name||'首页'

||叫短路运算符,表示或的意思,如果前边的变量为空或者未定义那么就返回首页
在这里插入图片描述
在这里插入图片描述

中间内容区

为了不致篇幅过长,中间部分的实现我们放到下一节讲解

底部导航栏

增加一个tab栏组件
在这里插入图片描述
tab栏组件主要是用来底部导航菜单的切换,同样我们需要做数据绑定,绑定为tabData
在这里插入图片描述
为了点击菜单可以进行切换,打开启动路由的配置
在这里插入图片描述
然后设置一下图标和文字的颜色
在这里插入图片描述
我们默认需要选中一个菜单,选中值设置为index
在这里插入图片描述

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-12-11 15:50:25  更:2021-12-11 15:50:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:15:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码