环境准备与小程序首页的运行逻辑

2023-11-06

环境准备

上传云函数 getCustomerOpenid

上传云函数到云环境 xiongyuqingcloud ,调用云函数 Promise Cloud.callFunction(Object object) 返回一个 Promise 对象,所以不用考虑异步问题。获取用户的 openid 用于小程序唯一表示该用户。

获取 openid 两种方法文章链接

运行Java后台 ordermenu 工程

小程序项目入口文件 app.js

在这里插入图片描述

全局数据:定义数据结构和常量

定义取号模板,用户数据,用户 openid ,后台链接的根路径

  globalData: {
    tmplIds: {
      quhao: 'txbpCYdX_pjw0PXsOJrbCKixdHtJSUr4uyhQQEzAz_4', // 取号的模板,记得把这里换成你自己的
    },
    customerInfo: {},
    openid: null,
    baseUrl: 'http://localhost:8080/ordermenu' // 后台链接的根路径
    // baseUrl: 'http://192.168.209.141:8080/ordermenu' //真机调试时电脑的ip地址
  },

调用onLaunch 函数:

小程序初始化时触发,且只触发一次

在函数中初始化云开发环境,设置环境 id 为云函数所在的云环境 ID :env: 'xiongyuqingcloud-0fs6wvf36054bfa'

函数功能:

  • 调用云函数获取用户 openid

    通过 wx.cloud.callFunction 调用云函数获取用户 openid

  • 设置缓存 openidwx.setStorageSync('openid', openid)

  • 将获取到的 openid 保存到 globalData

  • 根据 openid 从后台获取用户信息:getCustomerInfoFromBack()

getCustomerInfoFromBack 函数

功能:

  • 从Java后台获取之前用户存储在后台数据库中的信息:wx.request
  • 并将其缓存到小程序内存中便于其他页面读取:wx.setStorageSync('customer', app.globalData.customerInfo)

请求地址:url: app.globalData.baseUrl + '/customer/getCustomerInfo'

上传的数据:openid: app.globalData.openid

首页页面index运行逻辑

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ypRg4Vh9-1620378319893)(C:\Users\RAINSUN\AppData\Roaming\Typora\typora-user-images\image-20210507170202471.png)]

小程序首页界面设计

在这里插入图片描述

页面数据

  • 初始数据:轮播图图片列表

    data:{
        picture: [],  // 轮播图图片
      }
    
  • 页面全局数据:

    const app = getApp()	// 获取到小程序全局唯一的 App 实例
    let search_key = null	// 搜索关键字
    
  • 页面显示前将搜索关键字设置为空

    onShow(){
        search_key = null
      }
    
  • 页面加载时请求轮播图数据

    onLoad() {
        this.getSwiperPicture(); //轮播图
    }
    

页面响应

getSwiperPicture

在这里插入图片描述

请求地址:url: app.globalData.baseUrl + '/wechatPicture/getAll'

请求成功后 setDatapicture 列表

代码:

wx.request({
      url: app.globalData.baseUrl + '/wechatPicture/getAll',
      success: function(res) {
        console.log("--------------java后台返回的轮播图数据-----------", res)
        if (res && res.data && res.data.data && res.data.data.length > 0) {
          let picture_list = res.data.data;
          console.log("java后台请求到的轮在这里插入图片描述

播图", picture_list)
          that.setData({
            picture: picture_list
          })
        } else {
          console.log("java后台请求到的轮播图为空,请到后台添加轮播图")
          that.setData({
            picture: []
          })
        }
      },
      fail(res){
        console.log("java后台请求轮播图失败,请检查后台是否运行")
      }
    })

页面跳转

  • 点击搜索按钮,跳转到菜单界面,注意要加上搜索关键词

    /**
    * 点击搜索按钮后跳转到搜索结果的菜单界面
    */
    wx.navigateTo({
          url: '../menu/menu?search_key=' + search_key
        })
    
  • 点击扫码点单

    • 调试程序时默认是一号餐位
    • 实际可以使用 wx.scanCode 根据二维码的扫描结果确定
      /**
       * @param {根据桌号点餐} table_num 
       */
      goToBuy(table_num) {
        // 缓存到内存中
        wx.setStorageSync("table_num", table_num)
        wx.navigateTo({
          url: '../menu/menu'
        })
      },
    
  • 点击查看菜单,这次的关键词为 null ,即后台会返回所有菜品

      /**
       * 查看菜单按钮
       */
      seeMenuButton: function(){
        console.log("去往菜单界面")
        wx.navigateTo({
          url: '../menu/menu'
        })
      }, 
    
  • 点击预约取号

      /**
       * 预约取号按钮
       */
      orderButton: function() {
        console.log("去往预约取号界面")
        wx.navigateTo({
          url: '../ordernum/ordernum',
        })
      },
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

环境准备与小程序首页的运行逻辑 的相关文章

  • postgresql客户名称脱敏

    脱敏规则 1个字符 不脱敏 2个字符 后一个字符脱敏 3个字符 中间一个字符脱敏 4个字符 中间两个字符脱敏 超过4个字符 认为是政企客户 不做脱敏处理 postgresql函数实现 CREATE OR REPLACE FUNCTION f
  • 决策树的初体验

    接下来是三种经典的决策树算法的学习过程 Step1 信息熵与信息增益 信息熵 information entropy 是度量样本集合纯度最常用的一种指标 假定当前样本集合D中第k类样本所占的比例为pk k 1 2 y 则D的信息熵定义为 E
  • 正则表达式验证邮箱格式

    需满足的验证逻辑 之前必须有内容且只能是字母 大小写 数字 下划线 减号 点 和最后一个点 之间必须有内容且只能是字母 大小写 数字 点 减号 且两个点不能挨着 最后一个点 之后必须有内容且内容只能是字母 大小写 数字且长度为大于等于2个字
  • 使用postman做接口测试实战

    一 准备 1 postman工具 2 搭建被测系统服务 3 fiddler抓包工具 说明 本此实战测试是在完成前台界面开发后进行的 接口是通过fiddler抓包获取的 如果没有完成系统前台开发 以项目组输入的接口为准进行测试也是一样的原理
  • 博世BMA400传感器API (中文说明)

    前言 最近项目中要使用BMA400 sensor 为了以后查找 这里只是对API进行翻译 有些地方翻译可能出错 请指出来一起探讨 谢谢各位看官 BMA 400数据手册 https download csdn net download qq
  • 五种方法,教你如何在Mac上查看文件完整路径

    在MacOS上 Finder显示文件默认是不带路径展示的 你进入某个文件夹只会显示文件夹的名称而已 如下图 那如何获取或者显示文件的完整路径呢 在MacOS中有五种方法可以显示文件完整路径 第一种 使用 终端 Terminal获取文件完整路
  • Numpy 索引

    整数索引 一般形式 arr frist dim index second dim index nth dim index x np array 1 2 3 4 5 6 7 8 print x 2 3 y np array 11 12 13
  • 安卓图片裁剪之Android-Image-Cropper简单使用

    图片裁剪是一个相对用的比较多的功能 正好近期用到了 于是在最新的ChatGPT上询问了一番 两次询问 得到的最优推荐依然是 Android Image Cropper 经过一番研究使用 确实简单好用 直接看代码 首先 你需要引入依赖 dep
  • 吊打面试官系列之:我这样回答 “如何更高效的进行接口测试“,面试官果然跪了。

    高效的进行接口测试 1 引言 2 什么是接口测试 3 为什么要做接口测试 4 接口测试的范围 5 接口测试的重点 6 接口测试原则 6 1 基本原则 6 2 关键原则 6 2 其他原则 6 2 1 系统角度 7 接口测试常用工具 8 总结
  • ECCV2016 paper list (完整版)

    摘自ECCV2016的会议论文 Oral Session 1A Detection Recognition Retrieval Tuesday October 11 09 00 10 00 Chairs Bernt Schiele MPI
  • 牛客网SQL刷题四-电商场景(某东商城)

    SQL13 计算商城中2021年每月的GMV 数据 DROP TABLE IF EXISTS tb order overall CREATE TABLE tb order overall id INT PRIMARY KEY AUTO IN
  • ByteTrack 多目标跟踪 测试笔记

    目录 多目标跟踪2022个人汇总知识 Results on MOT challenge test set ByteTrack 简介 转自知乎 1 Motivation 2 byte原理
  • minicom 没有tx 信号

    在minicom s 的配置中 Serial port setup 选择F Hardware Flow Control No默认是yes 但是没有tx信号输出 改为no 后使用正常
  • 配置Docker本地镜像仓库

    1 需要先创建一个registry ui目录 存放地址随意你自己记得就行 mkdir registry ui 2 在registry ui中创建一个docker compose yml文件 touch docker compose yml
  • 【PTA】谷歌的招聘

    2004 年 7 月 谷歌在硅谷的 101 号公路边竖立了一块巨大的广告牌 如下图 用于招聘 内容超级简单 就是一个以 com 结尾的网址 而前面的网址是一个 10 位素数 这个素数是自然常数 e 中最早出现的 10 位连续数字 能找出这个

随机推荐