赞
踩
Vxe UI vue vxe-form 实现折叠表单,当表单很多时实现自动收起与展开
folding 用于将当前表单项设置为默认隐藏
collapse-node 设置折叠按钮,加上之后会自动在该表单项的右侧显示一个折叠按钮
<template> <div> <vxe-form title-colon ref="formRef" title-width="100" title-align="right" :data="formData" @submit="submitEvent"> <vxe-form-item title="名称" field="name" span="12"> <template #default="params"> <vxe-input v-model="formData.name"></vxe-input> </template> </vxe-form-item> <vxe-form-item title="昵称" field="nickname" span="12"> <template #default="params"> <vxe-input v-model="formData.nickname"></vxe-input> </template> </vxe-form-item> <vxe-form-item title="角色" field="role" span="12" folding> <template #default="params"> <vxe-input v-model="formData.role"></vxe-input> </template> </vxe-form-item> <vxe-form-item title="性别" field="sex" span="12" folding> <template #default="params"> <vxe-input v-model="formData.sex"></vxe-input> </template> </vxe-form-item> <vxe-form-item title="年龄" field="age" span="12" folding> <template #default="params"> <vxe-input v-model="formData.age"></vxe-input> </template> </vxe-form-item> <vxe-form-item title="大小" field="num" span="12" folding> <template #default="params"> <vxe-input v-model="formData.num"></vxe-input> </template> </vxe-form-item> <vxe-form-item title="创建时间" field="createDate" span="12" folding> <template #default="params"> <vxe-input v-model="formData.createDate"></vxe-input> </template> </vxe-form-item> <vxe-form-item title="更新时间" field="updateDate" span="12" folding> <template #default="params"> <vxe-input v-model="formData.updateDate"></vxe-input> </template> </vxe-form-item> <vxe-form-item align="center" span="24" collapse-node> <template #default> <vxe-button type="submit" status="primary" content="搜索"></vxe-button> </template> </vxe-form-item> </vxe-form> </div> </template> <script setup> import { ref } from 'vue' import { VxeUI } from 'vxe-pc-ui' const formRef = ref() const formData = ref({ name: 'test1', role: '', nickname: 'Testing', sex: '', age: '', num: '', createDate: '', updateDate: '' }) const changeEvent = (params) => { const $form = formRef.value if ($form) { $form.updateStatus(params) } } const submitEvent = () => { VxeUI.modal.message({ content: '保存成功', status: 'success' }) } </script>
<template> <div> <vxe-form v-bind="formOptions" v-on="formEvents" ></vxe-form> </div> </template> <script setup> import { reactive } from 'vue' import { VxeUI } from 'vxe-pc-ui' const formOptions = reactive({ titleWidth: 100, titleColon: true, titleAlign: 'right', data: { name: 'test1', role: '', nickname: 'Testing', sex: '', age: '', num: '', createDate: '', updateDate: '' }, items: [ { field: 'name', title: '名称', span: 12, itemRender: { name: 'VxeInput' } }, { field: 'nickname', title: '昵称', span: 12, itemRender: { name: 'VxeInput' } }, { field: 'role', title: '角色', span: 12, folding: true, itemRender: { name: 'VxeInput' } }, { field: 'sex', title: '性别', span: 12, folding: true, itemRender: { name: 'VxeInput' } }, { field: 'age', title: '年龄', span: 12, folding: true, itemRender: { name: 'VxeInput' } }, { field: 'num', title: '大小', span: 12, folding: true, itemRender: { name: 'VxeInput' } }, { field: 'createDate', title: '创建时间', span: 12, folding: true, itemRender: { name: 'VxeInput' } }, { field: 'updateDate', title: '更新时间', span: 12, folding: true, itemRender: { name: 'VxeInput' } }, { align: 'center', span: 24, collapseNode: true, itemRender: { name: 'VxeButtonGroup', options: [ { type: 'submit', content: '搜索', status: 'primary' } ] } } ] }) const formEvents = { submit () { VxeUI.modal.message({ content: '点击搜索', status: 'success' }) } } </script>
<template> <div> <vxe-form v-bind="formOptions" > <template #active> <vxe-button status="primary" @click="searchEvent">搜索</vxe-button> </template> </vxe-form> </div> </template> <script setup> import { reactive } from 'vue' import { VxeUI } from 'vxe-pc-ui' const formOptions = reactive({ titleWidth: 100, titleColon: true, titleAlign: 'right', data: { name: 'test1', role: '', nickname: 'Testing', sex: '', age: '', num: '', createDate: '', updateDate: '' }, items: [ { field: 'name', title: '名称', span: 12, itemRender: { name: 'VxeInput' } }, { field: 'nickname', title: '昵称', span: 12, itemRender: { name: 'VxeInput' } }, { field: 'role', title: '角色', span: 12, folding: true, itemRender: { name: 'VxeInput' } }, { field: 'sex', title: '性别', span: 12, folding: true, itemRender: { name: 'VxeInput' } }, { field: 'age', title: '年龄', span: 12, folding: true, itemRender: { name: 'VxeInput' } }, { field: 'num', title: '大小', span: 12, folding: true, itemRender: { name: 'VxeInput' } }, { field: 'createDate', title: '创建时间', span: 12, folding: true, itemRender: { name: 'VxeInput' } }, { field: 'updateDate', title: '更新时间', span: 12, folding: true, itemRender: { name: 'VxeInput' } }, { align: 'center', span: 24, collapseNode: true, slots: { default: 'active' } } ] }) const searchEvent = () => { VxeUI.modal.message({ content: '搜索', status: 'success' }) } </script>
查看 https://github.com/x-extends/vxe-pc-ui
查看码云 https://gitee.com/x-extends/vxe-pc-ui
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。