当前位置: 首页 > news >正文

《微信小程序开发从入门到实战》学习二十八

3.4 开发参与投票页面

3.4.3 使用radio单项选择器组件

逻辑层的数据已经准备好,现在实现视图层的页面展示。

投票的标题、,描述、截止日期、是否匿名等信息通过view和text组件就可以展示。比较特别的是投票选项的展示,涉及到单选还是多选,现在使用radio实现单选的功能,radio组件结合radio-group组件一起使用,一个radio组件代表一个选项。现在了解radio和radio-group常用属性。

radio常用属性:

value                单个radio组件的值

checked            当前是否选中

disabled            是否禁用

color                 radio颜色

radio-group常用属性:

bindchange                内部radio选项改变时触发的事件处理函数,可以通过event.detail.value获取到选中的radio组件的值

现在在pages/vote/vote.wxml用radio组件实现单选投票的功能,代码如下:

<view class="container">

  <view class="title">{{voteTitle}}</view>

  <view class="desc">

    {{voteDesc}}

    <text class="multi-radio">[{{type === 'multiVote'?'多选':'单选'}}]</text>

    <text class="anonymouType">[{{isAnonymous?'匿名':'实名'}}]</text>

  </view>

  <radio-group class="option-list" bindchange="onPickOption">

    <view class="option" wx:for="{{optionList}}" wx:key="index">

      <radio value="{{index}}" disabled="{{isExpired}}">{{item}}</radio>

    </view>

  </radio-group>

  <view class="end-date">

    截止日期:{{endDate}}

    <text class="expired" hidden="{{!isExpired}}">[已过期]</text>

  </view>

  <button class="btn" type="primary" disabled="{{isExpired || pickedOption.length === 0}}" bind:tap="onTapValue"> 完成</button>

</view>

这里text使用了hidden属性,是所有组件都支持的一个属性,值为boolean类型,为true时组件会被隐藏。

radio组件的value使用了数组的角标,数组是有序集合,具有唯一性,且在传输投票数据和存储数据占用的数据量小很多。

在JS文件中增加radio组件改变时的事件处理函数和确认投票时的button组件点击时的事件处理函数,代码如下:

onPickOption(e){

    // 更新选择的项

    this.setData({

      pickedOption: [

        e.detail.value

      ]

    })

  },

  onTapValue(){

    console.log("onTapValue")

    const postData = {//需要提交的数据

      voteID: this.data.voteID,

      pickedOption: this.data.pickedOption

    }

    // TODO 将postData数据上传到服务器端

  }

表单数据的提交不一定是form组件和form-type属性指定的事件处理函数,在button的点击事件处理函数也可以向服务器端提交数据。

接下来在WXSS添加样式:

/* pages/vote/vote.wxss */

.container {

  padding:30rpx;

  box-sizing: border-box;

}

.title {

  columns:#333;

  font-weight: bold;

  font-size: 20pt;  

}

.desc{

  font-size: 14pt;

  margin-top: 40rpx;

}

.multi-radio{

  margin-left: 10rpx;

  color: #09BB07;

}

.anonymouType{

  margin-left: 10rpx;

  color:#ccc;

}

.option-list{

  margin-top: 40rpx;

}

.option{

  margin-top: 10rpx;

}

.end-date{

  margin-top: 40rpx;

  font-size: 12pt;

  color:#ccc;

}

.expired{

  margin-left: 10rpx;

  color: #CE3C39;

}

.btn{

  margin-top: 40rpx;

}

当投票未过期时,预览效果如下:

当投票过期时,预览效果如下:

调试器AppData修改isExpired值可以实现过期的预览效果

相关文章:

《微信小程序开发从入门到实战》学习二十八

3.4 开发参与投票页面 3.4.3 使用radio单项选择器组件 逻辑层的数据已经准备好&#xff0c;现在实现视图层的页面展示。 投票的标题、&#xff0c;描述、截止日期、是否匿名等信息通过view和text组件就可以展示。比较特别的是投票选项的展示&#xff0c;涉及到单选还是多选&…...

2824. 统计和小于目标的下标对数目 : 详解 “左找右“ “右找左“ 两种方式

题目描述 这是 LeetCode 上的 「2824. 统计和小于目标的下标对数目」 &#xff0c;难度为 「简单」。 Tag : 「排序」、「二分」、「双指针」 给你一个下标从 0 开始长度为 n 的整数数组 nums 和一个整数 target&#xff0c;请你返回满足 0 < i < j < n 且 nums[i] n…...

windows电脑定时开关机设置

设置流程 右击【此电脑】>【管理】 【任务计划程序】>【创建基本任务】 gina 命令 查看 已经添加的定时任务从哪看&#xff1f;这里&#xff1a; 往下滑啦&#xff0c;看你刚才添加的任务&#xff1a;...

微信小程序取消自定义默认标题

微信小程序取消自定义默认标题 在单独页面index.json中添加 "navigationStyle":"custom"即可 注&#xff1a;仅记录开发查找&#xff01;&#xff01;&#xff01;...

Vue3鼠标拖拽生成区域块并选中元素

Vue3鼠标拖拽生成区域块并选中元素&#xff0c;选中的元素则背景高亮(或者其它逻辑)。 <script setup> import { ref } from vue// 区域ref const regionRef ref(null)// 内容ref const itemRefs ref(null)// 是否开启绘画区域 const enable ref(false)// 鼠标开始位置…...

[深度理解] 重启 Splunk Search Head Cluster

1: 背景: 关于释放Splunk search head 的job 运行压力:splunk search head cluster 要重启的话,怎么办? 答案是:splunk rolling-restart shcluster-members Initiate a rolling restart from the command line Invoke the splunk rolling-restart command from any me…...

Python + Docker 还是 Rust + WebAssembly?

在不断发展的技术世界中&#xff0c;由大语言模型驱动的应用程序&#xff0c;通常被称为“LLM 应用”&#xff0c;已成为各种行业技术创新背后的驱动力。随着这些应用程序的普及&#xff0c;用户需求的大量涌入对底层基础设施的性能、安全性和可靠性提出了新的挑战。 Python 和…...

[汇编实操]DOSBox工具: unable to open input file: 文件名.asm问题解决

出错原因1 &#xff1a;将文件放在debug文件下&#xff0c;mount后发现并没有该文件 解决方案 &#xff1a;重启DOSBox&#xff0c;重新mount&#xff0c;直到dir后可以看到该asm文件 出错原因2&#xff1a;DOS系统不支持8位以上的文件名 解决方案 &#xff1a;将文件名改为8…...

Windows安装MongoDB

1、下载MongoDB的zip&#xff0c;解压 2、创建目录 mkdir D:\JavaSoftware\Database\MongoDB\mongodb-win32-x86_64-windows-5.0.8\data\db mkdir D:\JavaSoftware\Database\MongoDB\mongodb-win32-x86_64-windows-5.0.8\data\log 3、创建一个配置文件mongod.cfg&#xff0c…...

HandBrake 1.7 近日发布

导读HandBrake 1.7 近日发布&#xff0c;作为这个开源、免费和跨平台视频转码器应用程序的重大更新&#xff0c;适用于 GNU/Linux、macOS 和 Windows 系统。 在 HandBrake 1.6 发布近一年后&#xff0c;HandBrake 1.7 版本为 Linux 用户提供了许多好处&#xff0c;包括视频摘要…...

Vue3的watch使用介绍及场景

目录 一、watch的使用 1. 监听一个变量 2. 监听一个对象的属性 3. 监听一个函数的返回值 二、watch的使用场景 1. 监听表单的变化 2. 监听路由参数的变化 3. 监听Vuex中的数据变化 三、watch的效果图 四、watch的示例 以上就是Vue3的watch的介绍&#xff0c;watch是…...

Java设计原则和设计模式

目录 第一部分&#xff1a;设计原则 单一职责原则 (Single Responsibility Principle)开闭原则 (Open-Closed Principle)里氏替换原则 (Liskov Substitution Principle)接口隔离原则 (Interface Segregation Principle)依赖倒置原则 (Dependency Inversion Principle)合成/聚…...

webshell之基于框架免杀

thinkphp array_map_recursive函数 array_map_recursive函数分析 这里存在一个call_user_func命令执行函数 免杀效果 B函数 免杀效果 B函数分析 exec函数分析 在exec函数用存在有个类调用&#xff0c;且所有的参数都可控 smarty_php_tag函数 免杀效果 smarty_php_tag函数分析…...

QT QJsonObject 插入 QByteArray十六进制数据

场景描述 有一组十六进制数使用QByteArray进行存储&#xff1b;需要将其插入QJsonObject&#xff0c;然后通过网络发送出去&#xff1b;接收到后&#xff0c;再转换回QByteArray&#xff1b; 操作代码 1. QByteArray转换QString插入QJsonObject QString str ""; …...

概要设计文档案例分享

1引言 1.1编写目的 1.2项目背景 1.3参考资料 2系统总体设计 2.1整体架构 2.2整体功能架构 2.3整体技术架构 2.4运行环境设计 2.5设计目标 3系统功能模块设计 3.1个人办公 4性能设计 4.1响应时间 4.2并发用户数 5接口设计 5.1接口设计原则 5.2接口实现方式 6运行设计 6.1运行模块…...

微服务qiankun通信方式

qiankun&#xff1a; 是一种类似于微服务的架构&#xff0c;是将一个大型应用拆分成若干个更小、更简单&#xff0c;可以独立开发、测试和部署的子应用&#xff0c;然后由一个基座应用根据路由进行应用切换&#xff0c;主要是为了解决大型工程在变更、维护、扩展等方面的困难而…...

【Azure 架构师学习笔记】-Azure Storage Account(7)- 权限控制

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Storage Account】系列。 接上文 【Azure 架构师学习笔记】-Azure Storage Account&#xff08;6&#xff09;- File Layer 前言 存储帐户作为其中一个数据终端存储&#xff0c;对安全性的要求非常高&#xff0c;不管…...

听GPT 讲Rust源代码--src/tools(2)

题图来自AI生成 File: rust/src/tools/rust-installer/src/util.rs 在Rust源代码中&#xff0c;rust/src/tools/rust-installer/src/util.rs文件是安装程序的一个辅助文件&#xff0c;它提供了一些实用函数和结构体来处理安装过程中需要的一些操作。 这个文件中定义了几个结构体…...

【python学习】基础篇-常用模块-collections模块:数据结构,如列表、元组、字典和集合等

Python中的collections模块提供了一些有用的数据结构&#xff0c;如列表、元组、字典和集合等。 以下是collections模块中一些常用数据结构的用法&#xff1a; Counter类 Counter类是一个字典子类&#xff0c;用于计数可哈希对象。 它可以接受一个可迭代对象作为参数&#xff…...

【电路笔记】-电源电压

电源电压 文章目录 电源电压1、概述1.1 交流发电机1.2 电池1.3 理想电压源1.4 实际电压源1.5 连接规则 2、相关源2.1 压控电压源 (VCVS)2.2 电流控制电压源 (CCVS) 3、总结 在本文中&#xff0c;我们详细介绍了称为电源电压的重要电子元件的架构、功能和使用。 我们首先提出理想…...

我把 Go 服务的 GC 停顿从 200ms 降到 5ms:一次 GOGC + Ballast 调优实录

我把 Go 服务的 GC 停顿从 200ms 降到 5ms&#xff1a;一次 GOGC Ballast 调优实录 说实话&#xff0c;我一开始真没把 GC 当回事。 Go 的 GC 不是号称很牛吗&#xff1f;低延迟、并发标记、三色算法……直到上周凌晨 2 点&#xff0c;监控群里突然炸了&#xff1a;核心接口 P…...

终极指南:如何用WarcraftHelper让魔兽争霸III在现代电脑上焕发新生!

终极指南&#xff1a;如何用WarcraftHelper让魔兽争霸III在现代电脑上焕发新生&#xff01; 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为经典…...

SAM3效果惊艳展示:看AI如何仅凭文字描述,从复杂场景中分割目标

SAM3效果惊艳展示&#xff1a;看AI如何仅凭文字描述&#xff0c;从复杂场景中分割目标 1. 引言&#xff1a;当语言遇见视觉 想象一下&#xff0c;你正在浏览一张拥挤的街道照片&#xff0c;想要提取画面中所有的红色汽车。传统方法可能需要你手动绘制每个汽车的轮廓&#xff…...

INAV飞控实战指南:从零搭建智能导航无人机

INAV飞控实战指南&#xff1a;从零搭建智能导航无人机 【免费下载链接】inav INAV: Navigation-enabled flight control software 项目地址: https://gitcode.com/gh_mirrors/in/inav 想为你的无人机添加自动返航、定点悬停、航线飞行等智能导航功能吗&#xff1f;INAV&…...

5分钟掌握Dell G15开源散热控制神器:告别官方AWCC的臃肿与卡顿

5分钟掌握Dell G15开源散热控制神器&#xff1a;告别官方AWCC的臃肿与卡顿 【免费下载链接】tcc-g15 Thermal Control Center for Dell G15 - open source alternative to AWCC 项目地址: https://gitcode.com/gh_mirrors/tc/tcc-g15 还在为Dell G15笔记本的官方散热软件…...

Hypnos-i1-8B<font color =purple>效果展示:LaTeX公式+Python代码+Markdown混排输出

Hypnos-i1-8B效果展示&#xff1a;LaTeX公式Python代码Markdown混排输出 1. 模型概述 Hypnos-i1-8B是一款专注于强推理能力和思维链(CoT)的8B级开源大模型。该模型基于NousResearch/Hermes-3-Llama-3.1-8B微调而来&#xff0c;通过量子噪声注入训练技术&#xff0c;显著提升了在…...

DeepSeek-R1-Distill-Qwen-7B在工业质检中的创新应用

DeepSeek-R1-Distill-Qwen-7B在工业质检中的创新应用 1. 工业质检的痛点与AI解决方案 工业质检一直是制造业的核心环节&#xff0c;但传统方法面临诸多挑战。人工检测效率低、容易疲劳&#xff0c;视觉检测系统又难以处理复杂缺陷和变化场景。每个新缺陷类型都需要重新编程规…...

惊艳写实动漫角色展示:Real-Anime-Z 高精度人物肖像生成作品集

惊艳写实动漫角色展示&#xff1a;Real-Anime-Z 高精度人物肖像生成作品集 1. 开篇&#xff1a;当AI遇见二次元艺术 最近在AI绘画圈子里&#xff0c;Real-Anime-Z模型的热度居高不下。这个专门针对动漫角色优化的生成模型&#xff0c;在写实风格表现上达到了令人惊叹的水准。…...

AgentScope Runtime Java:智能体应用的安全部署与运行时管理实践

1. 项目概述&#xff1a;AgentScope Runtime Java 是什么&#xff1f;如果你正在用 Java 搞智能体&#xff08;Agent&#xff09;开发&#xff0c;尤其是想把你的智能体应用部署上线&#xff0c;那你大概率会遇到几个绕不开的“坑”&#xff1a;工具调用怎么保证安全&#xff1…...

专为AI智能体设计的浏览器自动化工具agent-browser深度解析

1. 项目概述&#xff1a;为AI智能体设计的浏览器自动化利器 如果你正在构建一个AI智能体&#xff0c;并且需要让它能够像真人一样操作网页——点击按钮、填写表单、抓取数据&#xff0c;那么你很可能已经听说过或者尝试过像Puppeteer、Playwright这样的工具。它们功能强大&…...