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

Vxe UI vxe-form 实现折叠表单,当表单很多时实现自动收起与展开

Vxe UI vue vxe-form 实现折叠表单,当表单很多时实现自动收起与展开

代码

folding 用于将当前表单项设置为默认隐藏
collapse-node 设置折叠按钮,加上之后会自动在该表单项的右侧显示一个折叠按钮

<template><div><vxe-formtitle-colonref="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.valueif ($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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 独具魅力的 App UI 风格才能称之为优秀
  • 66. UE5 RPG 实现远程攻击武器配合角色攻击动画
  • 1. 面向对象的由来
  • MyBatis面试题系列三
  • 何为屎山代码?
  • Facebook海外户|如何制作出引人注目的Facebook广告素材?
  • lua vm 五: upvalue
  • django ORM model update常规用法
  • java面试题:java三大特性多态又是如何实现的
  • 作文笔记11 推荐一本书
  • 磁力狗ciligou,磁力链接使用步骤
  • Java--Math类和Random类
  • 【设计模式】面向对象与UML
  • uni-app加持下的Vue开发:效率与功能的双赢
  • requests库的常用方法
  • 《深入 React 技术栈》
  • 【mysql】环境安装、服务启动、密码设置
  • ES6核心特性
  • Java,console输出实时的转向GUI textbox
  • Linux链接文件
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • Vue官网教程学习过程中值得记录的一些事情
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 从setTimeout-setInterval看JS线程
  • 机器学习学习笔记一
  • 思维导图—你不知道的JavaScript中卷
  • 学习HTTP相关知识笔记
  • 学习使用ExpressJS 4.0中的新Router
  • ​2020 年大前端技术趋势解读
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • (2020)Java后端开发----(面试题和笔试题)
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (C语言)字符分类函数
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第6节 (嵌套的Finally代码块)
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (附源码)计算机毕业设计ssm电影分享网站
  • (回溯) LeetCode 46. 全排列
  • (译)计算距离、方位和更多经纬度之间的点
  • .net core webapi Startup 注入ConfigurePrimaryHttpMessageHandler
  • .NET MVC第三章、三种传值方式
  • .NET 设计模式—简单工厂(Simple Factory Pattern)
  • .Net的DataSet直接与SQL2005交互
  • .NET关于 跳过SSL中遇到的问题
  • .NET开发不可不知、不可不用的辅助类(一)
  • .NET使用存储过程实现对数据库的增删改查
  • @ModelAttribute 注解
  • @RequestMapping 和 @GetMapping等子注解的区别及其用法
  • @selector(..)警告提示
  • [Android] 240204批量生成联系人,短信,通话记录的APK
  • [BZOJ2208][Jsoi2010]连通数
  • [Bzoj4722]由乃(线段树好题)(倍增处理模数小快速幂)
  • [C#]C# winform部署yolov8目标检测的openvino模型