经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » HTML/CSS » CSS » 查看文章
Vue cli + Element plus的查询和删除
来源:cnblogs  作者:Sakura丫~  时间:2021/6/21 9:41:23  对本文有异议

编程工具

  1. SQL Server2019
  2. Visual Studio 2019
  3. Visual Studio Code

SQL Server数据

在这里插入图片描述
注:这边我循环添加了几百条测试数据

Visual Studio 2019

我用vs2019 创建了一个web api的项目用来做数据传递

在这里插入图片描述

Visual Studio Code

首先创建个vue cli项目

  1. 安装Element Puls包
  1. npm install element-plus --save
  1. 安装Axios包
  1. npm install axios

环境创建完成后进行配置

  1. 首先进入main.js,将这些加上
  1. import ElementPlus from 'element-plus';
  2. import 'element-plus/lib/theme-chalk/index.css';
  3. import locale from 'element-plus/lib/locale/lang/zh-cn'
  4. createApp(App).use(router).use(ElementPlus,{locale}).mount('#app')

注意 import locale from 'element-plus/lib/locale/lang/zh-cn' 这是解决之后用element plus分页组件显示英文的问题

  1. 进入views文件夹,创建一个PaperInquire.vue的文件
  1. <template>
  2. <div>
  3. <el-table :data="papersData.slice((currentPage - 1) * pagesize, currentPage * pagesize)" stripe border style="width: 100%">
  4. <el-table-column prop="PaperID" label="编号"> </el-table-column>
  5. <el-table-column prop="PaperName" label="试卷名"> </el-table-column>
  6. <el-table-column prop="PaperExplain" label="试卷描述"> </el-table-column>
  7. <el-table-column prop="PaperTime" label="考试时长"> </el-table-column>
  8. <el-table-column label="操作">
  9. <template #default="scope">
  10. <el-button
  11. type="danger"
  12. size="small"
  13. @click="findDelete(scope.$index, scope.row)">删除</el-button>
  14. </template>
  15. </el-table-column>
  16. </el-table>
  17. <div class="block">
  18. <el-pagination
  19. @size-change="handleSizeChange"
  20. @current-change="handleCurrentChange"
  21. :current-page="currentPage"
  22. :page-size="pagesize"
  23. layout="total, prev, pager, next, jumper"
  24. :total="papersData.length">
  25. </el-pagination>
  26. </div>
  27. </div>
  28. </template>
  29. <script>
  30. import axios from "axios";
  31. export default {
  32. name: "PaperInquire",
  33. data() {
  34. return {
  35. papersData: [],
  36. currentPage: 1, // 初始页
  37. pagesize: 10, // 每页数据
  38. };
  39. },
  40. methods: {
  41. // 分页
  42. handleSizeChange(val) {
  43. this.pagesize = val;
  44. console.log(`每页 ${val} 条`);
  45. },
  46. handleCurrentChange(val) {
  47. this.currentPage = val;
  48. console.log(`当前页: ${val}`);
  49. },
  50. // 查询
  51. findAll() {
  52. axios.get("http://localhost:8913/api/papers").then((res) => {
  53. this.papersData = res.data;
  54. });
  55. },
  56. // 删除
  57. findDelete(index, row) {
  58. this.$confirm("此操作将永久删除该数据, 是否继续?", "提示", {
  59. confirmButtonText: "确定",
  60. cancelButtonText: "取消",
  61. type: "warning",
  62. })
  63. .then(() => {
  64. axios
  65. .delete("http://localhost:8913/api/papers/" + row.PaperID)
  66. .then((res) => {
  67. this.$message.success("删除成功!");
  68. this.findAll();
  69. })
  70. .catch((res) => {
  71. this.$message.console.error("删除失败!");
  72. });
  73. })
  74. .catch(() => {
  75. this.$message.info("已取消操作!");
  76. });
  77. },
  78. },
  79. created() {
  80. this.findAll();
  81. },
  82. };
  83. </script>
  1. 进入router文件夹下的index.js,路由配置
  1. {
  2. path: '/PaperInquire',
  3. name: 'PaperInquire',
  4. component: () => import('../views/PaperInquire'),
  5. }
  1. 进入App.vue
  1. <template>
  2. <div id="nav">
  3. <router-link to="/">主页</router-link> |
  4. <router-link to="PaperInquire">查询</router-link> |
  5. </div>
  6. <router-view/>
  7. </template>
  1. 进入vs code控制台,跳转到项目文件夹下,输入下面的命令运行
  1. npm run serve
  1. 运行效果图如下
    运行后主页

在这里插入图片描述
点击查询按钮跳转到此界面

在这里插入图片描述
点击删除按钮,弹出确认提示框

在这里插入图片描述
点击取消

在这里插入图片描述
点击删除

在这里插入图片描述

至此,一个vue cli+element plus 的基础用法就完成了,冲冲冲!!!

原文链接:http://www.cnblogs.com/sakuraLi/p/14887279.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号