vant如何实现Collapse折叠面板标题自定义

 更新时间:2022年04月25日 11:01:09   作者:Zxiuping  
这篇文章主要介绍了vant如何实现Collapse折叠面板标题自定义,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

vant Collapse折叠面板标题自定义

vue-cli3+vant实现折叠面板上面标题自定义

代码如下:

<van-collapse v-model="activeNames">
    <van-collapse-item name="1">
        <template slot="title">
 
//以下内容根据需求填充
 
          <div class="title-box">
            <div class="title-box-top">
              <div>
                粤A2323
              </div>
              <div>¥23.32</div>
            </div>
            <div class="number">53454325432</div>
          </div>
        </template>
    </van-collapse-item>
</van-collapse>

使用vant折叠面板自定义内容

效果图:

Collapse 折叠面板

介绍

将一组内容放置在多个折叠面板中,点击面板的标题可以展开或收缩其内容。

引入

import Vue from 'vue';
import { Collapse, CollapseItem } from 'vant';
 
Vue.use(Collapse);
Vue.use(CollapseItem);

代码演示

基础用法

通过 v-model 控制展开的面板列表,activeNames 为数组格式。

<van-collapse v-model="activeNames">
  <van-collapse-item title="标题1" name="1">内容</van-collapse-item>
  <van-collapse-item title="标题2" name="2">内容</van-collapse-item>
  <van-collapse-item title="标题3" name="3">内容</van-collapse-item>
</van-collapse>
export default {
  data() {
    return {
      activeNames: ['1'],
    };
  },
};

在基础用法的基础上,因为页面太长,因此需要使用手风琴模式。

手风琴

通过 accordion 可以设置为手风琴模式,最多展开一个面板,此时 activeName 为字符串格式。

<van-collapse v-model="activeName" accordion>
  <van-collapse-item title="标题1" name="1">内容</van-collapse-item>
  <van-collapse-item title="标题2" name="2">内容</van-collapse-item>
  <van-collapse-item title="标题3" name="3">内容</van-collapse-item>
</van-collapse>
export default {
  data() {
    return {
      activeName: '1',
    };
  },
};

基于以上官方文档介绍,下面实现自己的代码逻辑。

 页面渲染:

<van-collapse v-model="activeNames" accordion>
                    <van-collapse-item :title="item.type" :name="item.type" v-for="        (item,index) in typelist" :key="index">
                        <van-form v-for="(ele,i) in item.data" :key="i">
                            <van-row gutter="20">
                                <van-col span="2">
                                    <van-field
                                        :name="i+1+''"
                                        :label="i+1"
                                    />
                                </van-col>
                                <van-col span="16">
                                    <van-field
                                        v-model="ele.name"
                                        label-width="16em"
                                        :name="ele.name"
                                        :label="ele.name"
                                    />
                                </van-col>
                                <van-col span="6">
                                    <van-field
                                        v-model="ele.unit"
                                        :name="ele.unit"
                                        :label="'单位:'+ele.unit"
                                    />
                                </van-col>
                                <van-field 
                                        type="digit"
                                        v-model="ele.xiaohao"
                                        name="消耗数量"
                                        label="消耗数量"
                                    />
                                    <van-field
                                        type="digit"
                                        v-model="ele.kucun"
                                        name="库存数量"
                                        label="库存数量"
                                    />
                                    <van-field 
                                        type="digit"
                                        v-model="ele.waigou"
                                        name="外部购"
                                        label="外部购(新增数量)"
                                    />
                                    <van-field 
                                        type="digit"
                                        v-model="ele.shangdiao"
                                        name="上面调"
                                        label="上面调(新增数量)"
                                    />
                                    <van-field 
                                        type="digit"
                                        v-model="ele.juan"
                                        name="各方捐"
                                        label="各方捐(新增数量)"
                                    />
                                    <van-field
                                        type="textarea"
                                        v-model="ele.beizhu"
                                        name="备注"
                                        label="备注"
                                    />
                            </van-row>
                        </van-form>
                    </van-collapse-item>
                </van-collapse>

数据准备:

typelist:[
    {
        type:"医疗设备",
        data:[
            {name: "手持式红外线测温仪",name_id: "21",type: "医疗设备",type_id: "104"},
            {name: "手持式红外线测温仪",name_id: "21",type: "医疗设备",type_id: "104"},
            {name: "手持式红外线测温仪",name_id: "21",type: "医疗设备",type_id: "104"},
            {name: "手持式红外线测温仪",name_id: "21",type: "医疗设备",type_id: "104"}
        ]
    },
    {
        type:"医疗设备1",
        data:[
            {name: "手持式红外线测温仪",name_id: "21",type: "医疗设备1",type_id: "105"},
            {name: "手持式红外线测温仪",name_id: "21",type: "医疗设备1",type_id: "105"}
        ]
    }   
]

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • vue项目中用cdn优化的方法

    vue项目中用cdn优化的方法

    本篇文章主要介绍了vue项目中用cdn优化的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • 用 Vue.js 递归组件实现可折叠的树形菜单(demo)

    用 Vue.js 递归组件实现可折叠的树形菜单(demo)

    通过本文给您演示一下如何有效地使用递归组件,我将通过建立一个可扩展/收缩的树形菜单的来一步步进行。下面通过本文给大家分享用 Vue.js 递归组件实现可折叠的树形菜单,需要的朋友参考下吧
    2017-12-12
  • vue-cli 首屏加载优化问题

    vue-cli 首屏加载优化问题

    这篇文章主要介绍了vue-cli 首屏加载优化问题,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-11-11
  • el-table表头使用el-dropdown出现两个下拉框的问题及解决方法

    el-table表头使用el-dropdown出现两个下拉框的问题及解决方法

    本文给大家分享el-table在固定右边列时,表头使用el-dropdown会出现两个下拉框的解决方法,感兴趣的朋友跟随小编一起看看吧
    2024-07-07
  • 深入理解vue中的slot与slot-scope

    深入理解vue中的slot与slot-scope

    这篇文章主要介绍了vue中的slot与slot-scope的相关知识,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-04-04
  • 详解vue中的computed的this指向问题

    详解vue中的computed的this指向问题

    这篇文章主要介绍了详解vue中的computed的this指向问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • vue2.x el-table二次封装实现编辑修改

    vue2.x el-table二次封装实现编辑修改

    本文主要介绍了vue2.x el-table二次封装实现编辑修改,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • vue跳转时根据url锚点(#xxx)实现页面内容定位的方法

    vue跳转时根据url锚点(#xxx)实现页面内容定位的方法

    本前端仔在做页面跳转的时候,被要求跳转到页面时候,把对应部分的内容自动滚动到顶部,我一开始想到的就是根据锚点<a href="#xxid">进行处理,但是发现不太好实现,于是便自己研究了一个比较取巧的方法,需要的朋友可以参考下
    2024-04-04
  • VSCode使用之Vue工程配置eslint

    VSCode使用之Vue工程配置eslint

    这篇文章主要介绍了VSCode使用之Vue工程配置eslint,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-04-04
  • vue实现ToDoList简单实例

    vue实现ToDoList简单实例

    这篇文章主要为大家详细介绍了vue实现ToDoList简单实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02

最新评论