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

vue3:十三、分类管理-表格--编辑、新增、详情、刷新

一、效果

实现封装表格的新增、编辑、详情查看,表格刷新功能

实现表格组件中表单的封装

1、新增

如下图,新增页面显示空白的下拉,文本框,文本域,并实现提交功能

2、编辑

如下图,点击行数据,可将行数据展示到编辑弹窗,并实现提交功能

3、详情

如下图,点击行数据,可将行数据展示到详情页弹窗,弹窗数据只读不可编辑

二、初始页面定义、官网参考

1、官网参考

(1)表单组件

Form 表单 | Element Plus

(2)拟态框

Dialog 对话框 | Element Plus

2、初始工作

(1)定义新组件页面

在components中新建一个组件Form.vue

(2)定义新表单组件页面

在components中新建一个组件Table.vue

(3)定义分类数据获取接口页面

在api中新建一个专门获取分类数据的接口category.js

三、实现

1、分类主页面

路径:src/views/CategoryView.vue

(1)父页面定义表单组件项

在分类主页面中定义表格组件需要用到的项

引用vue方法

需要使用变量,即需要引入vue的方法reactive

定义表单项

这里定义一个数组变量formItems,这里展示了表单项的

  • 名称:label
  • 字段名称:field
  • 提示词:placeholder
  • 表单项的类型:type(例如文本框input,文本域textarea,下拉列表select等)
  • 规则:rules(表单项的规则)
  • 下拉的选项:options(包含label:字段名称,value:字段id)
//定义需要的表单数据
const formItems = reactive([{label: '父分类', field: 'pid', placeholder: '请选择父分类', type: 'select',rules: [{ required: true, message: '请选择父分类', trigger: 'change' },],options: [{ label: '无', value: 0 }]},{label: '分类名称', field: 'name', placeholder: '请输入分类名称', type: 'text',rules: [{ required: true, message: '请输入分类名称', trigger: 'blur' },{ min: 3, max: 5, message: '名称长度请在3-5字符之间', trigger: 'blur' },]},{ label: '分类描述', field: 'desc', type: 'textarea', placeholder: '请输入分类描述' },
])

(2)定义表单项中下拉数据

定义api

新建接口

新建期望

返回数据 

{"code": 1,"msg": "成功","data": [{"id": 1,"pid": 0,"name":"分类1","desc":"父分类1"},{"id": 2,"pid": 0,"name":"分类2","desc":"父分类2"},{"id": 3,"pid": 0,"name":"分类3","desc":"父分类3"},]
}
接口页面写入接口

在api/category.js中获取get请求,并且对父分类列表进行查询,并导出

import { get } from '@/utils/request'//查询分分类的信息
export function getCategoryPid() {return get('/category/pidlist')
}
方法引入

页面获取父分类列表

执行获取父分类列表的方法

成功的话,将获取的数组整合成我们需要的下拉列表的格式{label:xxx,value:xxx}

这里使用map对数组进行循环,然后对表单项的首项(这里的首项就是下拉列表)进行数据插入(也就是每一项提取出label和value然后将数据插入到首项的options中)

//定义父级分类
getCategoryPid().then(res => {if (res.code == 1) {res.data.map(item => {formItems[0].options.push({ label: item.name, value: item.id })})}
})

(3)表单项数组传入表格

将获取的表单数据项通过参数传入Tables组件中

 2、表格组件页面Table.vue

路径:src/components/Table.vue

(1)参数处理

将父页面传来的表单的数据,在表格组件中进行定义

(2)表单组件

引用方法
表单的使用

在视图层直接写入弹窗,将表单组件写入弹窗

  • 弹窗的v-model:dialogFromVisible控制弹窗是否显示,是一个布尔值 (true显示,false隐藏),
  • 标题为变量dialogFromTitle
  • 表单组件:
    • ref用于父组件调用子组件的方法,这里使用formComponentRef定义
    • 传递父组件获取的表单项formItems,
    • 写入组件提交所需要用到的路径submitUrl,
    • 写入表格传递给表单模式mode(新增/编辑/详情)
<!-- 弹窗 -->
<el-dialog v-model="dialog
http://www.dtcms.com/a/199823.html

相关文章:

  • Android framework 问题记录
  • 整合安全能力:观测云进一步强化数据价值
  • 【内测征集】LarkVR 播控系统上新:VR 应用一站式专业播控与管理工具
  • 避开封禁陷阱:动态IP在爬虫、跨境电商中的落地实践
  • 电脑A和电脑B都无法ping通电脑C网络,电脑C可以ping通电脑A和B,使用新系统测试正常,排除硬件问题。
  • PLC双人舞:profinet转ethernet ip网关奏响施耐德与AB的协奏曲
  • mongodb部署Shard Cluster
  • 【Spring Boot 整合 MongoDB 完整指南】
  • Icecream Video Editor:简单易用的视频编辑软件,轻松打造专业视频
  • 基于51单片机教室红外计数灯光控制—可蓝牙控制
  • npm 安装时 SSL 证书过期问题笔记
  • 2025最新Java基础八股文速记精简版(万字笔记)
  • 【Linux】系统指令与开发全栈(vim、ssh、gcc)
  • 项目中把webpack 打包改为vite 打包
  • c#将json字符串转换为对象数组
  • Electron使用WebAssembly实现CRC-8 ITU校验
  • Electron + Vue 实现系统消息通知与点击跳转页面
  • 如何实现从网页一键启动你的 Electron 桌面应用(zxjapp://)
  • 汽车零部件的EMI抗扰性测试
  • GStreamer (三)常⽤插件
  • word文档中如何在方框中打✔
  • 计算机视觉与深度学习 | Python实现ARIMA-WOA-CNN-LSTM时间序列预测(完整源码和数据
  • eMMC深度解析:嵌入式多媒体卡的硬件电路设计要点
  • 软考 系统架构设计师系列知识点之杂项集萃(63)
  • 大语言模型 13 - 从0开始训练GPT 0.25B参数量 MiniMind2 补充 训练开销 训练步骤 知识蒸馏 LoRA等
  • 核保核赔的集中管理方案
  • 三键标准、多键usb鼠标数据格式
  • 【工具】Windows|外接的显示器怎么用软件调亮度(Brightness Slider)
  • 应用服务器发生内存溢出怎么办
  • 大模型在股骨干骨折诊疗全流程中的应用研究报告