vue+element搭建后台管理界面(支持table条件搜索)
- 代码地址(如果有帮助,请点个Star)
- vue:https://github.com/wwt729/ElementUIAdmin-master.git
- springboot后端:https://github.com/wwt729/managemail.git
- 相关技术
- vue2:https://cn.vuejs.org/v2/guide/
- element :基于vuejs2.0的ui组件库
- axios:向后台发送请求,https://www.kancloud.cn/yunye/axios/234845
- moment:时间格式化组件
- 流程
- 安装node,参考https://www.cnblogs.com/729log/p/6244450.html
- 使用淘宝NPM镜像:$ npm install -g cnpm --registry=https://registry.npm.taobao.org
- 安装 vue-cli VUE的脚手架工具:cnpm install vue-cli -g
- idea安装vue插件,并新建vue项目:new ->project 选择Static Web 选择vue.js,取项目名,一路next,有些选项需要选择yes/no,请参考下图
5.下载依赖并启动:cnpm install 和 cnpm run serve
3.主要代码介绍
1.搜索条件,启用 flex 布局,justify(排版方式):start[居左]、center[居中]、end[居右]、space-between、space-around
- <el-row type="flex" class="row-bg" justify="end">
- <el-col :span="4">
- <el-select v-model="sendCount" clearable placeholder="请选择发送次数">
- <el-option
- v-for="item in sendCountList"
- :key="item.key"
- :label="item.label"
- :value="item.key">
- </el-option>
- </el-select>
- </el-col>
- <el-col :span="4">
- <el-select v-model="mailStatusSNMP" clearable placeholder="请选择发送状态">
- <el-option
- v-for="item in mailStatusList"
- :key="item.key"
- :label="item.label"
- :value="item.key">
- </el-option>
- </el-select>
- </el-col>
- <el-col :span="2">
- <el-button type="primary" icon="el-icon-search" @click="getmails()">搜索</el-button>
- </el-col>
- </el-row>
2.分页
- <el-pagination
- background
- @size-change="handleSizeChange"
- @current-change="handleCurrentChange"
- :current-page.sync="currentPage"
- :page-sizes="[10, 20, 30, 50]"
- :page-size="pageSize"
- layout="total, sizes, prev, pager, next, jumper"
- :total="total">
- </el-pagination>
3.请求方法,使用qs封装参数,使用moment格式化时间
- getmails () {
- let postData = this.$qs.stringify({
- page:this.currentPage,
- rows:this.pageSize,
- status: this.mailStatusSNMP,
- sendCount: this.sendCount
- });
- this.loading = true;
- this.$http({method:"post",url:'http://localhost:8086/mail/page',data:postData}).then((res) => {
- console.log(res.data);
- if (res.data == ''){
- this.mails= [];
- this.total=0;
- }else {
- let chan=res.data.items.length;
- for (let i = 0; i < chan; i++) {
- if (res.data.items[i].status==0){
- res.data.items[i].status="待发送";
- res.data.items[i].sendTime=moment(res.data.items[i].sendTime).format("YYYY-MM-DD HH:mm:ss")
- }else if (res.data.items[i].status==1){
- res.data.items[i].status="已发送";
- res.data.items[i].sendTime=moment(res.data.items[i].sendTime).format("YYYY-MM-DD HH:mm:ss")
- } else if (res.data.items[i].status==2) {
- res.data.items[i].status="发送失败";
- res.data.items[i].sendTime=moment(res.data.items[i].sendTime).format("YYYY-MM-DD HH:mm:ss")
- }
- }
- this.mails = res.data.items;
- this.total= res.data.total
- }
- }).catch((err) => {
- console.error(err)
- })
- },
4.后端接受请求controller
- @PostMapping("page")
- public ResponseEntity<PageResult<MailDTO>> querySpuPage(
- @RequestParam(defaultValue = "1") int page,//当前页
- @RequestParam(defaultValue = "10") int rows,//每页条数
- @RequestParam(value = "status",required = false)Integer status,//查询条件1
- @RequestParam(value = "sendCount",required = false)Integer sendCount //查询条件2 )
- {
- return ResponseEntity.ok(mailService.queryMailList(page,rows,status,sendCount));
- }
模板参考:https://www.cnblogs.com/similar/p/10240341.html
一群人急匆匆地赶路,突然,一个人停了下来。旁边的人很奇怪:为什么不走了?停下的人一笑:走得太快,灵魂落在了后面,我要等等它。
vue+element搭建后台管理界面(支持table条件搜索)的更多相关文章
- vue+elementui搭建后台管理界面(8 同步/异步获取数据渲染table)
elementui已经封装好了 el-table 组件,只需要指定 data 数据源即可,因此通常在 vue 实例生命周期的 created 阶段,从数据库获取数据,再将返回的数据绑定到 data 如 ...
- vue+elementui搭建后台管理界面(6登录和菜单权限控制)
不同的权限对应不同的路由(菜单),同时侧边栏也根据权限异步生成,实现登录和鉴权思路如下: 登录:点击登录,服务器验证通过后返回一个 token ,然后存到 cookie,再根据 token 拉取用户权 ...
- vue+elementui搭建后台管理界面(7 vuex和mockjs的使用)
将权限管理应用到系统,首先做好登录, 点击登录按钮后,触发以下动作 vuex 中的 login 动作,设置 cookie vuex 中的 getuserinfo , 获取权限.用户名.头像等 由于目前 ...
- vue+elementui搭建后台管理界面(2首页)
1 会话存储 使用html5的 sessionStorage 对象临时保存会话 // 保存会话 sessionStorage.setItem('user', username) // 删除会话 ses ...
- vue+elementui搭建后台管理界面
1 会话存储 使用html5的 sessionStorage 对象临时保存会话 // 保存会话 sessionStorage.setItem('user', username) // 删除会话 ses ...
- vue+elementui搭建后台管理界面(1登录)
1 node环境安装 从 node官网下载安装包 2 vue-cli npm install vue-cli -g 3 新建项目 vue init webpack vue-project 可保持默认, ...
- vue+elementui搭建后台管理界面(5递归生成侧栏路由)
有一个菜单树,顶层菜单下面有多个子菜单,子菜单下还有子菜单... 这时候就要用递归处理 1 定义多级菜单 修改 src/router/index.js 的 / 路由 { path: '/', redi ...
- vue+elementui搭建后台管理界面(3侧边栏菜单)
上一节搭好了主框架,但是标签页和侧边栏只是分别展示了各自的菜单,如何将二者联动起来? 定义路由规则:当有 children 属性时,从 children 里取出 path 填充到侧边栏,如: { pa ...
- vue+elementui搭建后台管理界面(6登录和菜单权限控制[二])
根据权限计算路由的代码 /** * 通过meta.role判断是否与当前用户权限匹配 * @param roles * @param route */ function hasRoles (roles ...
随机推荐
- C++中 =default,=delete用法
=default: 用于显式要求编译器提供合成版本的四大函数(构造.拷贝.析构.赋值) 例如: class A{ public: A() = default; A(const A& a) = ...
- webpack4基础入门操作(一)
基于webpack4实践:开始:打开控制面板,制定到创建Webpack的文件夹. 并创建初始配置文件package.json 输入命令:npm init -y,在文件夹中出现一个package.jso ...
- C语言学习推荐《C语言参考手册(原书第5版)》下载
- 不调用free会内存泄露吗?
内存泄露的概念大家可以自行百度下,本文不做阐述.本文要讲的是在程序中分配了内存,但是最后没有使用free()函数来释放这块内存,会导致内存泄露吗?比如有如下代码: #include <stdio ...
- MyBatis从入门到精通:第一章配置MyBatis
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC ...
- 快速掌握mongoDB(三)——mongoDB的索引详解
1 mongoDB索引的管理 本节介绍mongoDB中的索引,熟悉mysql/sqlserver等关系型数据库的小伙伴应该都知道索引对优化数据查询的重要性.我们先简单了解一下索引:索引的本质就是一个排 ...
- Linux文件权限设置教程
Linux的文件基本权限有9个,分别是owenr.group.others三种身份各自有自己的r.w和x,比如"rwxrwxrwx",就表示owener具有r.w.x权限,同样gr ...
- 网页判断浏览器是否安装flash
<script> //检验flash版本 以及falsh是否安装 function detectFlash() { try { if(navigator.mimeTypes.length& ...
- 使用SVG symbols建立图标系统完整指南
从最开始的使用img图片,到后来的使用css sprite来减少服务器请求,再到流行的图形字体化图标Iconfont.现在,一种全新的图标使用方式开始流行了起来--SVG symbols图标. 工作原 ...
- fiddle知识点六、如何使用fiddle进行模拟弱网
为什么要模拟弱网 随着互联网的快速发展,越来越多的应用核心功能需要网络进行实现.同一应用在2G.3G.4G和WiFi的不停网络下,响应各有不同.但是因为现在的网络普遍为4G网络,为了保证应用在不同的网 ...