家政服务小程序实战开发教程017-我的页面未注册功能开发

news/2024/7/20 2:30:38 标签: 小程序, 前端, javascript, 低代码, 微搭

顾客在家政服务小程序可以在线提交预约信息,预约成功后可以查看订单的进度。我们本篇就来实现一下我的页面的功能。

1 新建页面

进入编辑器,在组件页面区域点击+号,创建我的页面
在这里插入图片描述
在这里插入图片描述

2 未登录页面开发

我的页面的逻辑是如果用户未注册,那么显示注册按钮,要求用户注册。如果用户已经注册,则显示我的预约菜单

往页面放入网格布局,修改列数量为2
在这里插入图片描述
选中第一列,修改列宽度为手动调节,我们让列宽占到4
在这里插入图片描述
然后往列里放入普通容器,普通容器里放入图片组件
在这里插入图片描述
在未登录之前,我们给图片一个默认的头像图片,从素材库选择一个默认登录的图片
在这里插入图片描述
设置图片的布局模式为裁剪填满,修改图片的宽和高
在这里插入图片描述
设置普通容器为居中对齐
在这里插入图片描述
设置15像素的内边距
在这里插入图片描述
第二列增加一个普通容器,里边放一个文本组件,修改文本内容为未注册
在这里插入图片描述
设置普通容器的宽和高为100%,布局为横向排列,左对齐,垂直居中对齐
在这里插入图片描述
网格布局下放置一个普通容器,设置为灰色的背景,高度为8Px
在这里插入图片描述
下边放置一个普通容器,里边放置一个按钮组件
在这里插入图片描述
设置按钮的宽度为90%
在这里插入图片描述
设置普通容器为居中对齐,外边距为100
在这里插入图片描述

3 控制未登录显示

页面搭建好之后,我们就需要判断什么状态下用户是未注册。我们先定义一个变量来表示用户信息
在这里插入图片描述
默认值我们自己初始化一下

javascript">{"_id":""}

当用户启动小程序的时候我们需要在生命周期函数里去加载一下信息,逻辑是根据当前用户的openid来去数据源查询,如果找到数据说明用户已经注册了,如果未找到数据说明用户未注册

如果需要存储信息,我们先需要新建一个数据源,字段包含三个,昵称、头像、openid

在控制台点击新建数据模型,将三个字段都建立好

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
数据源创建好之后,就在全局生命周期函数里加载用户信息

javascript">export default {
  async onAppLaunch(launchOpts) {
    //console.log('---------> LifeCycle onAppLaunch', launchOpts)
    //$app.auth.currentUser.openId = "o29js5TnCwiYJayG9AieKzkIlOBg"
    const userInfo  = await $app.auth.getUserInfo();

    console.log(userInfo)

    const result = await app.cloud.callModel({
      name:'yhxx_5wybupo',
      methodName:'wedaGetRecords',
      params:{
        pageNo:1,
        pageSize:1,
        where:[
          {
            key:"openid",
            rel:"eq",
            val:userInfo.openId
          }
        ]
      }
    })
    console.log(userInfo.openId)
    console.log(result)
    if(result.total>0){
      $app.dataset.state.user = result.records[0]
      /*app.navigateTo({
        pageId:"index",
        params:{}
      })*/
    }else{
      /*app.navigateTo({
        pageId:"u_jiao_se_xuan_ze",
        params:{}
      })*/
    }
  },
  onAppShow(appShowOpts) {
    //console.log('---------> LifeCycle onAppShow', appShowOpts)
  },
  onAppHide() {
    //console.log('---------> LifeCycle onAppHide')
  },
  onAppError(options) {
    //console.log('---------> LifeCycle onAppError', options)
  },
  onAppPageNotFound(options) {
    //console.log('---------> LifeCycle onAppPageNotFound', options)
  },
  onAppUnhandledRejection(options) {
    //console.log('---------> LifeCycle onAppUnhandledRejection', options)
  }
}

在这里插入图片描述
加载完了之后,我们就可以给容器做条件展示绑定了,我们的逻辑是看user对象的_id是否为空,如果为空就表示用户未注册

在这里插入图片描述

javascript">app.dataset.state.user._id==""

按钮那块也按照同样的方式进行绑定,然后给用户注册按钮绑定事件,跳转到我们的用户新增页面

在这里插入图片描述

总结

我们本篇主要讲解的是我的信息页面的功能开发,用户在未注册的时候我们需要引导用户注册信息,需要根据变量的值来显示对应的组件信息,需要了解微搭的相关概念,比如生命周期函数、前端API、数据源的API等。


http://www.niftyadmin.cn/n/226763.html

相关文章

VUE 学习笔记(一)开发环境搭建

1、Visual Studio Code安装及使用 下载地址官网:https://code.visualstudio.com/ 直接点击下载按钮即可,会根据系统自动下载合适的版本,无需自行选择。 2、VSCode 上安装:JavaScript Debugger 目前 Debugger for Chrome 已经处…

JVM的GC

GC 年轻代老年代参数SerialSerial Old-XX:UseSerialGCParallel ScavengeParallel Old-XX:UseParallelGC -XX:UseParallelOldGCParallel NewCMS-XX:UseParNewGC -XX:UseConcMarkSweepGCG1G1-XX:UseG1GCZGCZGC-XX:UseZGC GC串并行发作用位置算法特点场景Serial串行新生代复制算…

面向计算机视觉的深度学习:6~10

原文:Deep Learning for Computer Vision 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自【ApacheCN 深度学习 译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。 不要担心自己的形象,只关心如何实…

代码随想录算法训练营第五十八天| 739. 每日温度、496. 下一个更大元素 I。

739. 每日温度 题目链接:力扣 题目要求: 给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升…

【华为OD机试真题】对称字符串(javaC++python)

对称字符串 时间限制:1s空间限制:256MB限定语言:不限 题目描述: 对称就是最大的美学,现有一道关于对称字符串的美学。已知: 第1个字符串:R 第2个字符串:BR 第3个字符串:RBBR 第4个字符串:BRRBRBBR 第5个字符串:RBBRBRRBBRRBRBBR 相信你已经发现规律了,没错!就是…

如何使用Midjourney辅助建筑平面设计,常用的建筑平面效果图提示和使用效果展示(内附Midjourney提示词网站)

文章目录一、室内建筑平面设计1.AutoCAD图纸(别墅首层图)2.平面效果图3.三维平面透视图二、建筑室内设计1.现代简约2.波西米亚风格3.工业风格4.沿海风格5.法国风格6.现代风格7.提示增加颜色倾向8.提示中增加设计师9.其它一些尝试三、好用的Midjourney提示…

windows下编译log4cxx

环境:win7,vs2008/vs2010 1.介绍 log4cxx是开放源代码项目Apache Logging Service的子项目之一,是Java社区著名的log4j的c移植版,用于为C程序提供日志功能,以便开发者对目标程序进行调试和审计。有关log4c…

uniapp:mosowe-table高级表格组件

演示地址 下载地址 为偷懒而开发: 多级表头,默认子集占父级宽度50%,flex布局根据设置自动生成搜索区搜索区可设置默认展开/收起可以设置左右固定列,多选框及索引列默认左侧固定用户可自主设置展示列组件内部翻页、刷新及搜索事件…