微搭低代码实现投票功能

news/2024/12/2 17:47:53/

经常有一类需求,就是投票的功能,需要限制每一个选项每个人只可以投一票,投完之后需要统计票数。本篇教程我们讲解一下如何利用微搭低代码工具来实现投票功能。

1 设计数据源

我们需要设计一个数据源来记录用户的投票,如何限制用户只能投一票呢?我们可以创建一个数组字段,里边放置用户的openid,这样用户在投票的时候我们就可以通过当前用户的openid和数据源存储的进行比较,来决定用户是否可以投票

在这里插入图片描述
点击数据源的管理数据,我们录入一下测试数据
在这里插入图片描述

2 创建自定义应用

登录控制台,点击新建自定义应用,创建我们的小程序
在这里插入图片描述
在这里插入图片描述

3 页面开发

我们投票的话需要先使用数据列表把我们的投票内容展示出来,往页面添加数据列表组件,然后选择我们创建的数据源
在这里插入图片描述
模板的话需要选择图文列表,默认是使用的向右的箭头图标,我们需要改成心形图标,并且需要显示一下点赞的数量
在这里插入图片描述
我们这里的逻辑是如果未点赞就显示空心的图标,如果是已点赞了就显示实心的图标。

如果要控制组件是一种互斥的关系,我们可以使用条件展示来判断。

空心图标的条件展示我们可以绑定如下的表达式
在这里插入图片描述

$w.item_listView1.dzjl==undefined||$w.item_listView1.dzjl.length==0||!$w.item_listView1.dzjl.includes($page.dataset.state.openid)

实心图标我们可以绑定如下的表达式
在这里插入图片描述

$w.item_listView1.dzjl.includes($page.dataset.state.openid)

在es6中,数组新增了一个includes方法,如果存在就返回true,不存在就返回false,我们正是用这个api来控制

条件展示设置完毕后,我们就要给不同的图标设置不同的事件。空心图标我们设置的事件使用自定义方法实现

export default async function ({ event, data }) {const toupiaoid = data.target._idconst openid =$page.dataset.state.openidlet dzs = data.target.dzslet dzjl = data.target.dzjlif(dzjl == undefined){dzjl = []}dzjl.push(openid)await app.cloud.callModel({name: 'tp_blzczle',methodName: 'wedaUpdate',params: {_id: toupiaoid,dzs: dzs + 1,dzjl:dzjl}})}

这里要注意的就是在调用方法的时候,需要把这行数据作为入参添加进去
在这里插入图片描述
实心图标我们增加一个提示信息的事件
在这里插入图片描述
最后就是实现一下统计的功能,统计功能我们使用统计卡片组件,设置对应的属性即可
在这里插入图片描述

总结

本篇我们带着大家实现了一个投票的功能,如果需要有一定的逻辑还是需要通过代码来实现,写代码的时候要熟悉javascript的语法才能够顺利的编制出来。


http://www.ppmy.cn/news/49468.html

相关文章

[5 种有效方法] 适用于 Android 的通用解锁图案/密码

在当今世界,保护您的密码对于您的文件和数据的安全至关重要,尤其是在第三方应用程序盛行的情况下。为这些应用程序注册帐户不是问题,就像记住它们一样。但是,如果您不知何故忘记了手机密码,您仍然可以在不丢失宝贵数据…

vsdcode更新includepath

vsdcode更新includepath $:gcc -v : g c c 8.3.0......... C O L L E C T L T O W R A P P E R / u s r / l i b / g c c / x 8 6 6 4 − l i n u x − g n u / 8 / l t o − w r a p p e r c d / u s r / l i b / g c c / x 8 6 6 4 − l i n u x − g n u / 8 , f i n d c…

Calico外宣ip

global peer 全局peer将所有的node对接到外部的bgp infra路由,需要infra支持 apiVersion: projectcalico.org/v3 kind: BGPPeer metadata:name: my-global-peer spec:peerIP: 192.20.30.40asNumber: 64567Configure a node to act as a route reflector 选择node…

【源码】Spring Cloud Gateway 是在哪里匹配路由的?

我们知道,经过网关的业务请求会被路由到后端真实的业务服务上去,假如我们使用的是Spring Cloud Gateway,那么你知道Spring Cloud Gateway是在哪一步去匹配路由的吗? 源码之下无秘密,让我们一起从源码中寻找答案。 入…

学习数据结构第6天(栈的基本概念)

栈的基本概念 栈的定义栈的基本操作栈的存储结构 栈的定义 栈(Stack)是一种基于先进后出(FILO)或者后进先出(LIFO)的数据结构,是一种只允许在一端进行插入和删除操作的特殊线性表。 栈按照先进后出的原则存储数据,先进入的数据被压入栈底,最…

04-waf绕过权限控制

WAF绕过-权限控制之代码混淆及行为造轮子 思维导图 后门工具介绍: 菜刀,蚁剑,冰蝎优缺点 菜刀:未更新状态,无插件,单向加密传输 蚁剑:更新状态,有插件,拓展性强,单向加…

Mysql 高可用部署实践

mysql主从是如何备份的? 在MySQL主从复制架构下,备份通常需要在主库和从库上分别进行。 主库备份: 在主库上进行备份时,可以使用mysqldump等命令生成SQL文件,并将其保存到本地或者远程服务器上。备份过程中需要注意以下几点&a…

【K8S专题】一、集群环境规划配置

生产环境不要使用一主多从,要使用多主多从。这里使用三台主机进行测试一台 Master(172.16.20.111),两台 Node(172.16.20.112 和 172.16.20.113) 1、设置主机名 CentOS7 安装完成之后,设置固定…