简单写一个Avue增删改查

news2024/11/19 0:22:26

今天练习了一下avue,真的好用,个人感觉相比于用element plus的组件还方便!

        简简单单的写了一个页面的增删改查,思路很简单。如果在写那种后台管理项目,基本上全是列表页,用这种方法写出来第一页,基本上只要是列表页、简单的增删改查,直接cv过去更改接口,没有比较棘手的功能单纯的写这些。基本上一个小时就可以拿下小项目

        例子中没写分页,只写了增删改查,基本上一百行代码。

这练习的项目框架是我在gitee随便找了一个

链接:avue-cli: 基于 vue3 + vite + element plus + avue3 + vue-router + vuex,适配手机、平板、pc 的后台开源免费模板,希望减少工作量,帮助大家实现快速开发。 (gitee.com)

效果:

element组件方式

element使用最基本的方法也就是差不多这样,输入框需要使用到v-model去作处理。添加以后还需要将弹出层已经添加过的数据做一个清空的处理等等...

 avue方式:

 

这是avue写法,只需要看form,没有input,没有v-model,直接就处理好了 

增删改查事件:

row-save新增数据后点击确定触发该事件row,done,loading
row-update更新数据后确定触发该事件row,index,done,loading
row-del行数据删除时触发该事件row,index
search-reset清空搜索回调方法-
search-change点击搜索后触发该事件(由于page分页信息和search搜索信息是sync修饰符,可以直接通过this.page和this.search拿到)form,done
参考: Crud属性文档 | Avue (avuejs.com)

 实例代码如下:

<template>
  <basic-container>
    <h3>表格例子</h3>
    <avue-crud :option="option" :data="data" @row-save="rowSave" @row-del="rowDel" @row-update="rowUpdate"
      @search-change="searchChange" @search-reset="resetChange"></avue-crud>
  </basic-container>
</template>
<script setup>
import { ref, reactive } from 'vue';
import axios from 'axios';
import qs from 'qs';
const option = ref({
  column: [
    {
      label: '序号',
      prop: 'id',
      row: true,
    }, {
      label: '姓名',
      prop: 'name',
      row: true,
      search: true,

    }, {
      label: "分类图片",
      prop: "img",
      span: 14,
      row: true,
      align: "center",
      listType: "picture-img",
      type: "upload",
      propsHttp: {
        home: "域名/url",
      },
      action: "上传接口", //上传接口

    }
  ]
})
const data = ref([]);
const datas = ref([]);
function list() {
  axios({
    method: "post",
    url: "列表接口",
    data: qs.stringify({
    })
  }).then((res) => {
    data.value = res.data.data.reverse();//将列表中数据颠倒过来,id从小到大排序
    datas.value = res.data.data;
    console.log(res);
  })
}
list();
//搜索
const searchChange = (params, done) => {
  data.value = datas.value.filter((item) => item.name.match(params.name));//搜索,过滤拿到name
  setTimeout(() => {
    done();
  }, 1500)
};
const resetChange = () => {
  setTimeout(() => {
    list();
  }, 10)
};
// 添加
const rowSave = (form, loading, done) => {
  axios({
    method: "post",
    url: "添加接口",
    data: qs.stringify({
      name: form.name,
      img: form.img,
    })
  }).then((res) => {
    console.log(res, '添加成功!!');
    list();
    setTimeout(() => {
      loading(form);
    }, 1000)
    setTimeout(() => {
      done(form);
    }, 2000)
  })
}
//删除
const rowDel = (form) => {
  axios({
    method: "post",
    url: "删除接口",
    data: qs.stringify({
      id: form.id,
    })
  }).then((res) => {
    console.log(res, '删除!!');
    list();
    setTimeout(() => {
      loading(form);
    }, 1000)
    setTimeout(() => {
      done(form);
    }, 2000)
  })
}
//更新/编辑
const rowUpdate = (form, loading, done) => {
  axios({
    method: "post",
    url: "编辑接口",
    data: qs.stringify({
      id: form.id,
      img: form.img,
      name: form.name,
    })
  }).then((res) => {
    console.log(res, '编辑成功!!');
    list();
    setTimeout(() => {
      loading(form);
    }, 10)
    setTimeout(() => {
      done(form);
    }, 100)
  })
}
</script>

<style></style>

 需要注意的是!!!

因为他的架构导致列表中的数据在新增的弹窗中都会出现!就比如说:你这个添加的功能不需要id这个数据,只需要添加姓名和年龄就ok,但是列表中你渲染的是有id那一选项的,那么在添加和编辑的弹窗中都会出现id的输入框,这个目前还没有研究怎样去给他删除掉,但是只要接口说明id不需要必填可以不填。

如图,只要是你定义在这个列表代码块中的数据他都会显示在新增/编辑的弹窗中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/419185.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

收入下滑,亏损扩大的人力资源管理公司罗科仕申请纳斯达克IPO上市

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 猛兽财经获悉&#xff0c;来自北京的人力资源管理公司罗科仕近期已向美国证券交易委员会&#xff08;SEC&#xff09;提交招股书&#xff0c;申请在纳斯达克IPO上市&#xff0c;股票代码为(LGCL) 。罗科仕计划通过此次纳斯…

算法训练第五十八天 | 739. 每日温度、496.下一个更大元素 I

单调栈part01739. 每日温度题目描述思路496.下一个更大元素 I题目描述思路739. 每日温度 题目链接&#xff1a;739. 每日温度 参考&#xff1a;https://programmercarl.com/0739.%E6%AF%8F%E6%97%A5%E6%B8%A9%E5%BA%A6.html 题目描述 请根据每日 气温 列表&#xff0c;重新生…

Android组件化开发

Android组件开发 一、背景 一个app随着业务增加&#xff0c;代码放在同一个模块中会越来越臃肿&#xff0c;同时也导致多人开发的一个难度。组件化可以把业务单独分出来&#xff0c;形成一个单独模块&#xff0c;可单独运行、测试等&#xff0c;相互之间不会影响。另外一个优…

鼎捷T100制造之工艺工单实战(其他工艺补充)

文章目录 一、网状工艺二、平行工艺三、替代工艺四、返工工艺五、无顺序工艺一、网状工艺 网状工艺类似一张网状结构。可以包含平行和线性工艺等于一体。 网状工艺: 产品结构 aeci004:建立作业 aecm200: 工艺路线维护

kubeasz搭建k8s集群-部署单节点集群(AllinOne部署)

1说明 kubeasz 致力于提供快速部署高可用k8s集群的工具, 同时也努力成为k8s实践、使用的参考书&#xff1b;基于二进制方式部署和利用ansible-playbook实现自动化&#xff1b;既提供一键安装脚本, 也可以根据安装指南分步执行安装各个组件。 kubeasz 从每一个单独部件组装到完…

太赫兹高速通信系统前端关键技术

摘要&#xff1a;对构成太赫兹无线系统的2 种关键电路&#xff08;分谐波混频器和二倍频器&#xff09;进行了深入研究。在关键电路研究取得突破的基础上&#xff0c;开展了太赫兹无线通信技术研究&#xff0c;构建了220 GHz 无线通信实验验证系统。220 GHz 实验验证系统在室外…

elasticsearch 其他字段类型详解和范例

本章主要内容 elasticsearch 中别名字段的详解和范例elasticsearch 中二进制类型的详解和范例elasticsearch 中的嵌套类型的详解和范例elasticsearch 中的范围类型的详解和范例elasticsearch 中的排名类型的详解和范例elasticsearch 中的ip类型的详解和范例elasticsearch 中的…

【网络应用开发】实验3——Web组件重用与JavaBeans

目录 Web组件重用与JavaBeans预习报告 一、实验目的 二、实验原理 三、实验预习内容 1. 静态include指令何时执行&#xff1f;主页面和被包含的子页面是否转换为一个转换单元&#xff1f; 2.动作指令何时执行&#xff1f;主页面和被包含的子页面是否转换为一个转换单元&a…

【Python游戏】坦克大战、推箱子小游戏怎么玩?学会这些让你秒变高高手—那些童年的游戏还记得吗?(附Pygame合集源码)

前言 下一个青年节快到了&#xff0c;想小编我也是过不了几年节日了呢&#xff01;&#xff01; 社交媒体上流传着一张照片——按照国家规定“14岁到28岁今天都应该放半天假&#xff01;”不得不说&#xff0c; 这个跨度着实有点儿大&#xff0c;如果按整自然年来算年龄&…

Spark 连接 Hive

目录 导包 修改配置文件 修改hive-site.xml文件 启动hadoop 启动hive 启动spark 测试 查看表 导包 spark连接hive需要六个关键的jar包&#xff0c;以及将hive的配置文件hive-site.xml拷贝到spark的conf目录下。如果你hive配置没问题的话&#xff0c;这些jar都在hive的目…

Spring Security实战(四)—— 会话管理

目录 一、理解会话 二、防御会话固定攻击 三、会话过期 四、会话并发控制 五、集群会话的缺陷 六、集群会话的解决方案 七、整合Spring Session解决集群会话问题 只需在两个浏览器中用同一个账号登录就会发现&#xff0c;系统并没有任何会话并发限制。一个账号可以多处同…

cuSPARSE官方程序示例

cuSPARSE Library 简介 这个文件演示了cuSPARSE通用API的用法 官方程序&#xff1a;后续会出解析&#xff08;20230410&#xff09; cuSPARSE Generic APIs Documentation cuSPARSE Samples 向量 - 向量 操作矩阵 - 向量 操作矩阵 - 矩阵操作转换Legacy APIs优化稀疏迭代…

阿里本地生活再出发:口碑入高德,备战美团、抖音

配图来自Canva可画 近日&#xff0c;有传言称高德地图将和阿里本地生活旗下的到店业务口碑正式合并&#xff0c;未来阿里旗下所有的本地生活到店业务都将统一整合在高德地图的入口中。3月22日&#xff0c;高德地图正式确认了此事&#xff0c;并表示高德地图作为“出门好生活开…

网络软件-管理网络设备和组件

网络软件是一个术语&#xff0c;表示帮助网络管理员轻松执行特定操作的任何网络软件。术语“网络软件”可以包括广泛的软件解决方案&#xff0c;每个解决方案都提供特定的功能&#xff0c;共同帮助网络管理员完全控制其IT基础架构。网络软件工具提供监控网络运行状况、测量性能…

一个简单的MUX-VLAN实验(华为eNSP模拟器)

MUX-VLAN产生背景及用途 在数据中心网络中&#xff0c;数据中心管理员希望数据中心内部所有服务器&#xff08;或终端&#xff09;都可以访问外部网络&#xff0c;同时部分服务器之间可以互相通信&#xff0c;部分服务器之间相互隔离。一般情况下&#xff0c;为了实现所有服…

python贪吃蛇代码

文末用python写好了贪吃蛇代码可直接复制使用&#xff01; 今天和大家分享一下贪吃蛇的代码&#xff0c;主要是贪吃蛇的一些基本知识&#xff0c;以及怎么去玩。 首先&#xff0c;我们先了解一下什么是贪吃蛇&#xff1f;它是一个具有多种功能的游戏&#xff0c;可以通过点击屏…

绿联dx4600砖机救援

由于在操作ssh过程不当&#xff0c;导致成为搬砖&#xff0c;记录一下救援过程 涉及到拆机&#xff0c;会导致损保&#xff0c;建议邮寄官方救援 变砖前因&#xff1a; 发现可以使用opkg&#xff0c;遂用opkg进行安装包的操作&#xff0c;最后更新busy-box&#xff0c;而进行b…

Vue源码解析(尚硅谷)

视频地址&#xff1a;Vue源码解析系列课程 一、Vue源码解析之mustache模板引擎 1. 什么是模板引擎 模板引擎是将数据要变为视图最优雅的解决方案 历史上曾经出现的数据变为视图的方法 2. mustache基本使用 mustache库简介 mustache库基本使用 3. mustache的底层核心机理…

3.7.2数据库系统-数据库控制技术:数据库的安全性、数据库备份与恢复技术、数据备份、数据库故障与恢复、数据库性能优化

3.7.2数据库系统-数据库控制技术&#xff1a;数据库的安全性、数据库备份与恢复技术、数据备份、数据库故障与恢复、数据库性能优化数据库的安全性数据库备份与恢复技术数据备份数据库故障与恢复数据库性能优化数据库的安全性 在做信息系统开发的过程当中&#xff0c;数据库是…

集合的线程安全解读

目录 集合操作 Demo Vector Collections CopyOnWriteArrayList(重点) “动态数组”机制 “线程安全”机制 集合操作 Demo NotSafeDemo public class NotSafeDemo {/*** 多个线程同时对集合进行修改* param args*/public static void main(String[] args) {List list ne…