首页 > 其他分享 >基于Vant实现弹出层多选功能

基于Vant实现弹出层多选功能

时间:2023-02-07 14:55:17浏览次数:35  
标签:checkbox const Vant basicDisease value 出层 van 多选

遇见一个弹出层多选的需求,翻了一遍Vant文档发现并不能直接支持该功能,那就自己实现一下吧!

首先,上效果图:

image


image


需要使用的Vant组件:van-field、van-popup、van-cell、van-checkbox-group和van-checkbox

详细代码如下:

// 基础疾病选项
const basicDiseaseColumns = ['慢性阻塞性肺疾病', '免疫功能缺陷', '慢性肾病', '糖尿病', '高血压', '脑卒中', '冠心病', '肿瘤', '其它', '无']
// 是否展示弹出层
const isBasicDiseaseShow = ref(false)
// 提交内容
const basicDisease = ref('')
// checkbox绑定的数组
const checkBox = ref([])
const handleBoxClick = () => {
  basicDisease.value = ''
  isBasicDiseaseShow.value = false
  checkBox.value.forEach((item) => {
    if (basicDisease.value === '')
      basicDisease.value = item
    else
      basicDisease.value += `、${item}`
  })
  console.log(checkBox.value)
}

    <van-field
      v-model="basicDisease" label-width="30%" label="基础病情况" placeholder="请选择" input-align="right"
      is-link readonly type="textarea" autosize rows="1" required @click="isBasicDiseaseShow = true"
    />
    <van-popup v-model:show="isBasicDiseaseShow" round position="bottom">
      <div class="py-4 h-60">
        <div class="flex justify-between">
          <span class="ml-4">取消</span><span>基础疾病</span><span class="mr-4" @click="handleBoxClick">确认</span>
        </div>
        <van-checkbox-group v-model="checkBox">
          <van-cell v-for="(item, index) in basicDiseaseColumns" :key="index" :title="`${item}`">
            <template #right-icon>
              <van-checkbox :name="item" />
            </template>
          </van-cell>
        </van-checkbox-group>
      </div>
    </van-popup>

标签:checkbox,const,Vant,basicDisease,value,出层,van,多选
From: https://www.cnblogs.com/hanjiangxue-/p/17098347.html

相关文章

  • Java实现多选批量删除功能(vue+Element)
    本文实例为大家分享了Java实现多选批量删除功能的具体代码,供大家参考,具体内容如下选择前效果图选中效果图前端Vue代码1、页面显示template使用方法@selection-chan......
  • 15-switch多选择结构
    packagecom.wang.struct;publicclassDemo04{publicstaticvoidmain(String[]args){chargrade='D';switch(grade){case......
  • vue封装带有全选的多选框
    ​ 基于element-ui的多选框组件(el-checkbox)进行二次封装,将全选的逻辑都封装到组件内部,使用v-model的方式进行数据的绑定,方便使用。依赖element-ui@2.15.11效果......
  • react-vant 使用
    react-vant是vantUI针对react的UI版本,可以帮助我们搭建react移动端页面安装:npminstallreact-vantlist组件使用import{List}from'react-vant';例子/*eslint-d......
  • vue3 el-cascader 实现 一级单选 ,二级多选,只能选择三个
    实现效果如下思路是1.选择一个时,取出一级选中值code,首先把一级中code不是选中code的置灰,实现一级单选2.当选择二级时,选中数组长度大于等于三,则把当前二级数据(不是选中......
  • 使用vant、promise封装回调、全局状态共享、分包
    应用的生命周期onLaunch:启动应用时调用onShow:显示时调用,可能调用多次onHide:隐藏时调用(进入到后台),可能调用多次onError:整个应用如果某个部分有报错就调用页面的......
  • 微信小程序使用vant组件样式不生效的问题
    下面提供几个解决方案方案一:官方文档有说明,将app.json中的"style":"v2"去除,小程序的新版基础组件强行加上了许多样式,难以覆盖,不关闭将造成部分组件样式混乱。方......
  • vant+vue3自定义主题
    很多系统都会有切换主题的功能,现在做的是一个vant的项目,特地记录一下这里面用到的css3的一个技术,也就是变量,css3的var()和自定义变量,具体使用可百度大题逻辑是这样 ......
  • 直播网站源码,vant中Dialog的使用,如何修改Message字号大小
    直播网站源码,vant中Dialog的使用,如何修改Message字号大小一、使用两种用法 1.函数调用 import{Dialog}from'vant'; Dialog({message:'提示'});​2.组件......
  • el-select组件改造成多选显示多个标签加数字标签的形式
    接到需求需要只在一行内显示多个标签,且标签超出输入框时超出的标签不显示,只显示统计数字的标签。效果图: 网上查资料,发现一篇大佬的文章跟该需求很类似,就借用了大佬的......