家校通小程序实战教程05教师登录

目录

  • 1 搭建角色选择页面
  • 2 设置登录方法
  • 3 创建加入班级页面
  • 4 创建教师主页页面
  • 5 完善登录方法
  • 总结

我们上一篇开发了教师管理的后台功能,后台一般是给管理员提供的。教师一般是使用小程序开展各类业务,本篇介绍一下教师如何通过小程序登录。

1 搭建角色选择页面

小程序我们是分为三个角色,分别是老师、学生家长、家委会成员。当用户登录小程序首页的时侯,需要先选择角色再进入到系统中。

打开我们的小程序,在首页添加普通容器,里边放三个按钮用来区分三种角色

在这里插入图片描述
选中普通容器,切换到样式,设置为纵向排列,居中对齐
在这里插入图片描述
修改一下按钮的内容,分别设置为我是老师、我是学生家长、我是家委会
在这里插入图片描述
调整一下按钮的宽度和外边距
在这里插入图片描述
增加一个文本组件,内容修改为请选择对应的角色进入系统,设置一定的外边距
在这里插入图片描述

2 设置登录方法

当用户点击我是老师按钮的时候,需要根据当前用户的openid去教师表里获取数据。如果获取到了说明已经注册过,如果未获取到就跳转到加入班级页面,输入口令加入班级

我们身份验证是要通过openid去查询,目前教师表还未增加对应的字段。切换到云数据库,选择教师表,切换到配置模型,点击编辑字段
在这里插入图片描述
点击添加字段
在这里插入图片描述
添加一个openid字段
在这里插入图片描述

字段添加好之后,点击可视化设计,在代码区,点击点击新建按钮,创建一个自定义方法
在这里插入图片描述
在这里插入图片描述
输入如下代码

export default async function ({ event, data }) {

  const openid = $w.auth.currentUser.openId
  const teacher = await $w.cloud.callDataSource({
    dataSourceName: "jsb",
    methodName: "wedaGetItemV2",
    params: {
      // 筛选内容,筛选内容推荐使用编辑器数据筛选器生成
      filter: {
        where: {
          $and: [
            {
              openid: {
                $eq: openid, // 获取单条时,推荐传入_id数据标识进行操作
              },
            },
          ],
        },
      },
      select: {
        $master: true, // 常见的配置,返回主表
      },
    },
  });
  if (Object.keys(teacher).length > 0) {
    $w.utils.navigateTo({
      pageId: 'index', // 页面 Id
      params: { key: 'value' },
    });
  }else{
     $w.utils.navigateTo({
      pageId: 'index', // 页面 Id
      params: { key: 'value' },
    });
  }
}

我们这里的逻辑是先获取当前用户的openid,然后调用数据模型的查询单条方法,查询条件是openid。根据返回的结果,如果有值说明已经注册了,就跳转到教师主页。如果没有值,就跳转到加入班级页面

3 创建加入班级页面

点击页面创建的图标,输入页面的名称加入班级

在这里插入图片描述
在这里插入图片描述
删掉默认的网格布局,添加普通容器
在这里插入图片描述
在普通容器里添加单行输入组件和按钮组件
在这里插入图片描述
单行输入的标题修改为输入口令,按钮的内容修改为加入班级

选则普通容器,调整样式,改为纵向排列,居中对齐

在这里插入图片描述
加入班级后也需要进行调整,我们就需要知道是什么角色点击进入的。选中页面组件,添加URL参数,增加role
在这里插入图片描述
在这里插入图片描述
后续我们在做用户注册的时候需要根据角色信息跳转到对应的页面

4 创建教师主页页面

点击创建页面的图标,创建教师主页
在这里插入图片描述
在这里插入图片描述
教师主页,我们现在保持空白,后续在具体业务里再进行搭建

5 完善登录方法

页面都有了之后,我们需要完善一下登录方法。在用前端API做页面跳转的时候,首先是要得到页面的id。点击页面列表,找到需要跳转的页面,点击三个点
在这里插入图片描述
选择复制页面ID
在这里插入图片描述
然后完善一下我们的登录方法

if (Object.keys(teacher).length > 0) {
    $w.utils.navigateTo({
      pageId: 'u_jiao_shi_zhu_ye', // 页面 Id
      params: { key: 'value' },
    });
  }else{
     $w.utils.navigateTo({
      pageId: 'u_jia_ru_ban_ji', // 页面 Id
      params: { role : 'teacher' },
    });
  }

这样我们就可以跳转到不同的页面,注意params这个是页面的入参。我们只有加入班级页面设置了URL参数,需要传入对应的角色信息

方法写好之后,选中按钮,设置点击事件,选择我们的登录方法
在这里插入图片描述

总结

本篇我们搭建了教师登录功能,区分了用户的角色,根据角色和登录信息将用户导航到不同的页面。权限设计是一个系统的基石,良好的权限设计一个是方便用户使用,另一方面也确保了只有拥有对应权限的人员才可以访问具体的页面。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/929275.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

yolov5 解决:export GIT_PYTHON_REFRESH=quiet

当我们在第一次运行YOLOv5中的train.py程序时:可能会出现以下报错: This initial warning can be silenced or aggravated in the future by setting the $GIT_PYTHON_REFRESH environment variable. Use one of the following values: - quiet|q|silen…

neo4j如何存储关于liquidity structure的层次和关联结构

在 Neo4j 中存储关于流动性结构(liquidity structure)的层次和关联结构非常适合,因为 Neo4j 是一个基于图的数据库,能够自然地建模和存储复杂的关系和层次结构。下面是如何在 Neo4j 中设计和实现这样的数据模型的详细步骤和示例。…

SpringBoot高级-底层原理

目录 1 SpringBoot自动化配置原理 01-SpringBoot2高级-starter依赖管理机制 02-SpringBoot2高级-自动化配置初体验 03-SpringBoot2高级-底层原理-Configuration配置注解 04-SpringBoot2高级-底层原理-Import注解使用1 05-SpringBoot2高级-底层原理-Import注解使用2 06-S…

C++模拟堆

模板题目 图片来源Acwing 堆的基础知识 代码实现 #include<iostream> #include<algorithm>using namespace std;const int N 1e5 10; int a[N]; int n, m;void down(int u) {int t u;if (2 * u < n && a[2 * u] < a[u]){t 2 * u;}if (2 * u …

RNACOS:用Rust实现的Nacos服务

RNACOS是一个使用Rust语言开发的Nacos服务实现&#xff0c;它继承了Nacos的所有核心功能&#xff0c;并在此基础上进行了优化和改进。作为一个轻量级、快速、稳定且高性能的服务&#xff0c;RNACOS不仅包含了注册中心、配置中心和Web管理控制台的功能&#xff0c;还支持单机和集…

Flink常见面试题

1、Flink 的四大特征&#xff08;基石&#xff09; 2、Flink 中都有哪些 Source&#xff0c;哪些 Sink&#xff0c;哪些算子&#xff08;方法&#xff09; 预定义Source 基于本地集合的source&#xff08;Collection-based-source&#xff09; 基于文件的source&#xff08;…

BERT和RoBERTa;双向表示与单向的简单理解

目录 BERT和RoBERTa大型预训练语言模型 BERT的原理 RoBERTa的原理 举例说明 双向表示与单向的简单理解 除了预训练语言模型,还有什么模型 一、模型类型与结构 二、训练方式与数据 三、应用场景与功能 四、技术特点与优势 BERT和RoBERTa大型预训练语言模型 BERT(Bi…

OpenAI 推出了 Canvas 和 SearchGPT

今天的故事从 ChatGPT 推出的 Canvas 和 SearchGPT 开始。 ©作者|Ninja Geek 来源|神州问学 ChatGPT 在最近推出了令人兴奋的 Canvas 功能&#xff0c;Canvas 不仅带来了 ChatGPT 界面上的变化&#xff0c;还完全改变了人们撰写文档和书写代码的体验&#xff01; Canvas…

CentOS 9 配置静态IP

文章目录 1_问题原因2_nmcli 配置静态IP3_使用配置文件固定IP4_重启后存在的问题5_nmcli 补充 1_问题原因 CentOS 7 于 2014年6月发布&#xff0c;基于 RHEL 7&#xff0c;并在 2024年6月30日 结束维护。 CentOS 9 作为目前的最新版本&#xff0c;今天闲来闲来无事下载下来后…

ProjectSend 身份认证绕过漏洞复现(CVE-2024-11680)

0x01 产品描述: ProjectSend 是一个开源文件共享网络应用程序,旨在促进服务器管理员和客户端之间的安全、私密文件传输。它是一款相当流行的应用程序,被更喜欢自托管解决方案而不是 Google Drive 和 Dropbox 等第三方服务的组织使用。0x02 漏洞描述: ProjectSend r1720 之前…

【Vulkan入门】01-列举物理设备

目录 先叨叨git信息主要逻辑VulkanEnvEnumeratePhysicalDevices()PrintPhysicalDevices() 编译并运行程序 先叨叨 上一篇已经创建了VkInstance&#xff0c;本篇我们问问VkInstance&#xff0c;在当前平台上有多少个支持Vulkan的物理设备。 git信息 repository: https://gite…

小家电出海,沃丰科技助力保障售后服务的及时性与高效性

随着全球化步伐的加快&#xff0c;小家电行业也逐渐迈向国际市场&#xff0c;面向全球消费者提供服务。然而&#xff0c;跨国界的销售和服务挑战也随之而来&#xff0c;尤其是售后服务的及时性与高效性成为了企业亟需解决的问题。沃丰科技凭借其全渠道在线客服、工单系统和视频…

AI RPA 影刀基础教程:开启自动化之旅

RPA 是什么 RPA 就是机器人流程自动化&#xff0c;就是将重复的工作交给机器人来执行。只要是标准化的、重复的、有逻辑行的操作&#xff0c;都可以用 RPA 提效 准备 安装并注册影刀 影刀RPA - 影刀官网 安装 Chrome 浏览器 下载链接&#xff1a;Google Chrome 网络浏览器 …

Qt 2D绘图之五:图形视图框架的结构、坐标系统和框架间的事件处理与传播

参考文章链接: Qt 2D绘图之五:图形视图框架的结构和坐标系统 Qt 2D绘图之六:图形视图框架的事件处理与传播 图形视图框架的结构 在前面讲的基本绘图中,我们可以自己绘制各种图形,并且控制它们。但是,如果需要同时绘制很多个相同或不同的图形,并且要控制它们的移动、…

JavaScript 键盘控制移动

如果你想通过 JavaScript 实现键盘控制对象&#xff08;比如一个方块&#xff09;的移动&#xff0c;下面是一个简单的示例&#xff0c;展示如何监听键盘事件并根据按下的键来移动一个元素。 HTML 和 CSS&#xff1a; <!DOCTYPE html> <html lang"en">…

【Web】0基础学Web—html基本骨架、语义化标签、非语义化标签、列表、表格、表单

0基础学Web—html基本骨架、语义化标签、非语义化标签、列表、表格、表单 html基本骨架语义化标签图片属性a链接 非语义化标签特殊符号标签 列表无序列表结果展示 有序列表结果展示 定义列表结果展示 表格table属性tr属性结果展示 表单单标签form属性input属性selecttextareabu…

find / -name ‘*.jar‘ 需要加上英文单引号 (shell 的通配符展开行为)

文章目录 1. Shell 通配符展开&#xff08;Glob Expansion&#xff09;2. 有引号时的行为&#xff08;推荐&#xff09;3. 无引号时的行为4. 总结原因5. 推荐实践 rootiZuf67xiyefycct0a9rdi3Z:~# find / -name *.jar find: paths must precede expression: o2o.jar Usage: fin…

一次奇妙的getshell之旅

1. 资产收集时发现一个网站&#xff1a; https://xxxxxxxxxx/ischool/publish_page/0/ 发现存在管理员登陆: 这里之前在该旁站找到一个SQL注入&#xff0c;然后找到的这个账户密码&#xff08;这里如何从SQL注入找到账户密码前借鉴前面的报告。&#xff09;&#xff1a; 账号&…

QT6_UI设计——设置控件背景

1、右击选择控件 2、选择背景 color 颜色 background-color 背景颜色 alternate-background-color 交替背景颜色 border-color 边框颜色 border-top-color 边框顶端 border-right-color 边框右边 border-bottom-color 边框底部 border-left-color 边框左边 gridline-color 网…

第十三章 Linux计划任务

注意&#xff1a;进公司和有公司成员离职&#xff0c;一定要问计划任务&#xff0c;防止别人搞破坏背锅 13.1 一次性计划任务(atd服务) 1 安装 atd 服务 yum install -y at systemctl enable atd systemctl start atd ## 启动atd服务 systemctl status atd ## 查看atd服务…