会员管理系统实战开发教程04-会员开卡

news2024/12/28 3:37:40

我们已经用3篇篇幅介绍了会员管理的功能,接着就要开发会员的业务。通常我们开通会员之后需要给会员开通会员卡,一个会员可以有多张会员卡。

在数据源设计的时候,像这种一个会员有多张会员卡的,我们称之为一对多的关系,在微搭中可以通过维护数据源之间的关系来实现。

1 创建会员卡表

打开控制台,找到数据模型,点击新建
在这里插入图片描述
输入数据源名称
在这里插入图片描述
首先添加一个卡号字段,类型选择自动编号
在这里插入图片描述
再添加一个余额字段,类型选择数字
在这里插入图片描述
接着添加开卡日期字段,类型选择日期
在这里插入图片描述
接着添加所属会员字段,类型选择关联关系
在这里插入图片描述

2 修改模型应用

我们新添加数据源之后,要修改我们已经创建的数据模型应用,添加我们刚刚创建的数据源。打开应用,点击添加页面的图标
在这里插入图片描述
选择表格与表单页,选择我们的数据源
在这里插入图片描述
点击新建的时候会报一个错
在这里插入图片描述
我们找到创建的列表页面,重新设置一下新建的事件
在这里插入图片描述
选择会员卡编辑页面,formType输入create
在这里插入图片描述

3 修改操作列

因为我们的业务操作比较多,为了让操作列不那么拥挤,我们需要给一个更多的按钮,点击的时候弹出一个菜单,让用户去选择。

需要修改一下我们的操作列的结构,外层放置一个普通容器,内层再放置一个普通容器,结构如下
在这里插入图片描述
这里要讲一个定位的知识,像我们这种效果,点击的时候弹出一个层,要紧贴着按钮的,我们通常需要用定位来设置。定位有四种选择,静态、相对、绝对、固定。

这里相对和绝对的区别是,相对还保留原来的空间,而绝对不保留原来的空间。具体详细的内容需要查询一下MDN,看一看定位的具体介绍。

我们这里直接讲解设置,外层容器我们设置为相对定位
在这里插入图片描述
内层容器设置绝对定位
在这里插入图片描述
因为页面整体是白色,我们给内层容器设置一点阴影,层级的话点击上级,让弹出的层覆盖住我们的内容
在这里插入图片描述

4 设置弹出层的显示和影藏

样式设置好了之后,就需要考虑如果点击更多的按钮让内层的容器弹出。其实所谓的弹出无非就是让组件显示,再点击一下的时候我们就让组件影藏。

在表格里,我们操作列添加的这些按钮是一份还是多份,多份怎么知道是哪一个被点击呢?

表格因为是循环展示,肯定是多份了,多份会形成一个数组,我们通过组件的下标来区分哪个组件被点击。

思路梳理清楚之后,在代码区+号,创建一个JavaScript方法
在这里插入图片描述
在这里插入图片描述
然后输入如下代码

export default function({event, data}) {
  console.log(data.target)
  let index = data.target
  let display = $page.widgets.container2[index].style.display
  if(display =="none"){
$page.widgets.container2[index].style = {display:"block"}
  }else{
    $page.widgets.container2[index].style = {display:"none"}
  }
  
}

代码的意思,我们首先从data参数里通过target属性拿到所在行的索引,然后根据索引去组件数组里获取内层容器的显示状态,如果组件是影藏的我们就让他显示,如果是显示的我们就让他影藏

代码写好了之后,给更多图标设置点击事件,并且传入我们的索引
在这里插入图片描述
这里入参使用表达式设置,表达式如下

$w.table1.cell__custom__option.recordIndex

最终的效果

在这里插入图片描述

总结

本篇我们继续完善了我们的系统,创建了会员卡的数据源,并且根据数据源生成了功能。有时候组件的效果不是太全的,我们就需要根据基本组件再扩展一下,会涉及到一定逻辑的编写,但是代码量并不多,主要是思路要梳理正确才可以。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Sentinel流量控制与熔断降级

📝 学技术、更要掌握学习的方法,一起学习,让进步发生 👩🏻 作者:一只IT攻城狮 ,关注我,不迷路 。 💐学习建议:1、养成习惯,学习java的任何一个技术…

Levels - 场景参考:山脉景观(Landscape Mountains)

一些从前的笔记的归档,记录了一些UE4资产的相关信息; 山脉景观(Landscape Mountains): 项目的地形材质比较复杂,有几个比较重要的大效果功能,一个是沉积岩的效果: 沉积岩效果的功能…

聊聊NFC技术

目录 1.什么是NFC 2.NFC技术的原理 3.NFC技术的应用 4.NFC技术对生活的影响 1.什么是NFC NFC(Near Field Communication)是一种短距离无线通信技术,可在10厘米以内进行点对点的数据传输。它是基于RFID(Radio Frequency Identif…

基于OpenCV实战(基础知识二)

目录 简介 1.ROI区域 2.边界填充 3.数值计算 4.图像融合 简介 OpenCV是一个流行的开源计算机视觉库,由英特尔公司发起发展。它提供了超过2500个优化算法和许多工具包,可用于灰度、彩色、深度、基于特征和运动跟踪等的图像处理和计算机视觉应用。Ope…

IDEA 出现问题:.gitgnore忽略文件失效解决方案

❤️作者主页:小虚竹 ❤️作者简介:大家好,我是小虚竹。Java领域优质创作者🏆,CSDN博客专家🏆,华为云享专家🏆,掘金年度人气作者🏆 ❤️技术活,该赏 ❤️点赞…

光惯混合动作捕捉系统:开启空间定位全新时代

在当今的技术前沿,光惯混合动作捕捉系统正在崭露头角,成为定位技术的新标杆,更是一项生活中不可或缺的实用工具。它是一个集光学与惯性测量技术于一体的全新定位解决方案,巧妙地融合了光学与惯性测量的优势,以其突破性…

Mars3d的历史版本api文档下载地址

说明: 1.我们一直在进步迭代新功能升级产品打造服务,但是鉴于目前依然有很多老的项目无法升级,需要维护。现提供历史版本的api文档供大家学习参考 2.建议跟随官网同步升级新版本,新功能更多,更值得大家快速上手。 3…

【速成】蓝桥杯嵌入式省一教程:(十一)UART串口通信

与I2C、SPI一样,UART是一种通信协议,设备之间依靠Rx(Receive)与Tx(Transmit)两条线进行数据传输。一个单片机通常内置有多个UART,而这些UART通常都与单片机上的USB接口连接在一起,因此只需要将单片机通过数据线与电脑相连&#xf…

CK-GW06-E03与汇川PLC的EtherNet/IP通信

准备阶段: CK-GWO6-E03网关POE交换机网线汇川PLC编程软件汇川AC801-0221-U0R0型号PLC 1.打开汇川PLC编程软件lnoProShop(V1.6.2)SP2 新建工程,选择对应的PLC型号,编程语言选择为“结构化文本(ST)语言”,然…

数据库连接池druid 的jar包官网下载-最新版下载

进入官网Central Repository: com/alibaba/druid 往下滑 找到最新版点击进入 找到该jar包 点击即可下载

树状表格父节点选择 - 在Vue.js中实现仅选择父节点的树状表格功能

功能介绍 本文介绍了如何在Vue.js框架下实现一个树状表格,其中只支持选择父节点的复选框。通过这个功能,用户可以方便地选择表格中的父节点,而无需关心子节点的选择。代码示例和详细的实现步骤将展示如何使用Vue.js的相关特性和组件实现这个功…

WPF基础入门-Class3-WPF数据模板

WPF基础入门 Class3&#xff1a;WPF数据模板 1、先在cs文件中定义一些数据 public partial class Class_4 : Window{public Class_4(){InitializeComponent();List<Color> test new List<Color>();test.Add(new Color() { Code "Yellow", Name &qu…

Robotframework 的简介及其工作原理~

下面通过官网和网上资料来简单介绍下Robotframework及其工作原理。 官方说明&#xff1a; Robot Framework is a generic test automation framework for acceptance testing and acceptance test-driven development (ATDD). It has easy-to-use tabular test data syntax a…

Redis 执行 RDB 快照期间,主进程可以正常处理命令吗?

执行了 save 命令&#xff0c;会在主进程生成 RDB 文件&#xff0c;由于和执行操作命令在同一个线程&#xff0c;所以如果写入 RDB 文件的时间太长&#xff0c;会阻塞主进程。 执行 bgsave 过程中&#xff0c;由于是交给子进程来构建 RDB 文件&#xff0c;主进程还是可以继续工…

[SQLITE_ERROR] SQL error or missing database (near “=“: syntax error)【已解决】

这个报的错误是语法错误&#xff0c;但是我并没有看出来这行代码有什么错。 通过排除掉下边两个问题解决的 从增加记录方法复制的下来的代码&#xff0c;只删除了关闭自动提交事务&#xff0c;但是connection.commit忘记删除executeQuery和executeUpdate方法的用法忘记了&…

SQL视图

一、视图概念 1.为什么使用视图 简化复杂的查询&#xff1a;视图是一个虚拟表&#xff0c;它可以由一个或多个表的数据以某种特定的查询方式组合而来。通过创建视图&#xff0c;可以将复杂的查询逻辑抽象为一个简单的视图查询&#xff0c;使得查询更加直观和易于理解。 数据安…

u盘 pe系统;widnows cmd命令后台运行;c盘桌面文件默认路径保存到其他盘

1、u盘 pe系统 参考&#xff1a; https://www.wepe.com.cn/download.html https://m.52nxs.com/jiaocheng/soft/49535.html ##u盘 微pe工具箱步骤 u盘启动pe&#xff0c;开启狂按F10&#xff0c;选择u盘启动即可进入pe系统 2、widnows cmd命令后台运行 start ssh -CNR 99…

portainer初体验

官方文档 安装 docker 这里采用的的是国内汉化的一个镜像&#xff0c;版本号2.16.2。 地址 docker run -d --restartalways --name"portainer" -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock 6053537/portainer-ce体验 访问9000端口。 尝试&#x…

java八股文面试[JVM]——JVM调优

知识来源&#xff1a; 【2023年面试】JVM性能调优实战_哔哩哔哩_bilibili

Ubuntu20.04配置mysql配置主从复制

ubuntu20.04&#xff1a;mysql主库 sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf # 修改完毕重启 sudo service mysql stop sudo service mysql start主库mysqld.cnf配置 [mysqld] ... # bind-address>->--- 127.0.0.1 # 注释掉&#xff0c;允许外部连接 # mysqlx-b…