效果图:
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"}
]
}
]