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

【微搭低代码】小程序中利用弹窗组件实现城市切换选择

目录

  • 1 初始化城市变量
  • 2 循环展示城市名称
  • 3 点击城市切换背景色并回填城市名称
  • 总结

上一篇中,我们介绍了如何使用弹窗组件,以及如何通过变量来控制弹窗组件的显示和隐藏。光有个弹窗组件还是不够的,我们需要往弹窗组件里添加具体的选项,选项可以被选中,并且将选中的值回填到页面中。我们本篇就介绍一下具体的实现。

1 初始化城市变量

要想显示所有的城市,需要先创建一个变量,变量的类型可以选择数组
在这里插入图片描述
光赋值为空还是不行的,我们需要初始化一下数据,考虑在生命周期函数中进行初始化

export default {
  onPageLoad(query) {
    //console.log('---------> LifeCycle onPageLoad', query)
    $page.dataset.state.citys = [
      {
        isselect:false,
        name:"呼和浩特"
      },
      {
        isselect:false,
        name:"包头"
      },
      {
        isselect:false,
        name:"鄂尔多斯"
      },
      {
        isselect:false,
        name:"乌兰察布"
      },
      {
        isselect:false,
        name:"巴彦淖尔"
      },
      {
        isselect:false,
        name:"阿拉善"
      },
      {
        isselect:false,
        name:"锡林郭勒"
      },
      {
        isselect:false,
        name:"通辽"
      },
      {
        isselect:false,
        name:"呼伦贝尔"
      },
      {
        isselect:false,
        name:"兴安盟"
      },
      {
        isselect:false,
        name:"乌海"
      },
      {
        isselect:false,
        name:"赤峰"
      }
    ]
  },
  onPageShow() {
    //console.log('---------> LifeCycle onPageShow')
  },
  onPageReady() {
    //console.log('---------> LifeCycle onPageReady')
  },
  onPageHide() {
    //console.log('---------> LifeCycle onPageHide')
  },
  onPageUnload() {
    //console.log('---------> LifeCycle onPageUnload')
  },
}

每一个城市我们都设置了两个属性,当前城市是否被选中和城市的名称

2 循环展示城市名称

城市变量初始化好之后,需要循环展示,我们利用普通容器和文本组件来搭建
在这里插入图片描述
普通容器可以设置为flex布局,水平对齐,平均分布,正换行
在这里插入图片描述
文本组件的话需要先绑定循环展示,我们绑定我们的城市变量
在这里插入图片描述
在这里插入图片描述
文本内容,使用表达式绑定,显示城市的名称
在这里插入图片描述
在这里插入图片描述

$for.id8.name

然后可以设置一下文本的样式,直接复制我的样式即可

self {
    width: 200px;
    height: 70px;
    margin-bottom: 15px;
    display: inline-block;
    line-height: 70;
    text-align: center;
    border-radius: 15px
}

搭建好了之后,这里有个需求是选中的城市,背景色是深灰色,未选中是浅灰色,我们可以给绑定自定义样式
在这里插入图片描述
在这里插入图片描述

forItems.id8.isselect===true?{background:'#737373'}:{background:'#ededf0'}

3 点击城市切换背景色并回填城市名称

初始化好城市的背景色之后,我们需要添加一个自定义方法,在点击城市的时候切换背景色并回填城市名称

export default function({event, data}) {
  console.log(data)
  $page.dataset.state.citys.map((item,index)=>{
    if(item.name===data.target.name){
      item.isselect = true
    }else{
      item.isselect = false
    }
  })
  $app.dataset.state.area=data.target.name
}

调用的时候需要把循环对象传入
在这里插入图片描述
在这里插入图片描述
这样所有功能就都设置好了

总结

要想动态的改变组件的背景色,核心的点是通过自定义样式来实现,关键还是靠自己亲自练习掌握,如果觉得有用,感觉练起来吧。

作者有15年IT从业经历,目前专注于低码布道,如果你是零基础,希望自己做应用,联系我吧。文末有联系方式

相关文章:

  • 【数据挖掘】XGBoost面试题:与GBDT的区别?为什么使用泰勒二阶展开?为什么可以并行训练?为什么快?防止过拟合的方法?如何处理缺失值?
  • 【物理应用】基于相场法模拟金属镍的晶粒的长大过程附matlab完整代码
  • 这三个步骤让你知道WPS如何转换成WORD文档
  • sql优化最新干货---mysql存储过程、索引和锁
  • 摄像头测试软件汇总
  • 葡聚糖-NHS/N3/Alkyne/SH/Biotin/CHO/OPSS/OH/NH2/COOH/MAL各种活性基团
  • 【linux操作系统】基础指令(入门必备)
  • 【基础教程】Matlab实现等高线图
  • 零信任策略下K8s安全监控最佳实践(K+)
  • Git之本地分支和远程分支建立追踪关系的几种方式
  • vue 中 父子组件值交互怎么使用 this.$emit
  • Codeforces 1009F 长链剖分优化dp做法
  • 还记得这首是什么歌吗?
  • 【C#教程16/16】: 输入输出
  • 银行 IT 架构到底要不要云化?
  • 【EOS】Cleos基础
  • Angular Elements 及其运作原理
  • docker python 配置
  • Java精华积累:初学者都应该搞懂的问题
  • nginx 配置多 域名 + 多 https
  • node学习系列之简单文件上传
  • PHP的类修饰符与访问修饰符
  • SAP云平台里Global Account和Sub Account的关系
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • 电商搜索引擎的架构设计和性能优化
  • 分布式任务队列Celery
  • 服务器之间,相同帐号,实现免密钥登录
  • 前端技术周刊 2019-01-14:客户端存储
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 设计模式(12)迭代器模式(讲解+应用)
  • 新版博客前端前瞻
  • 移动端唤起键盘时取消position:fixed定位
  • 异步
  • 06-01 点餐小程序前台界面搭建
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • 回归生活:清理微信公众号
  • ​ubuntu下安装kvm虚拟机
  • # 数据结构
  • #Lua:Lua调用C++生成的DLL库
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (LeetCode C++)盛最多水的容器
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (三十五)大数据实战——Superset可视化平台搭建
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (五)c52学习之旅-静态数码管
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • .net 4.0发布后不能正常显示图片问题
  • .NET C#版本和.NET版本以及VS版本的对应关系
  • .NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库