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 ...
随机推荐
- 小白开学Asp.Net Core 《七》
小白开学Asp.Net Core <七> — — 探究中间件(MiddleWare) 1.何为中间件? 中间件是组装到应用程序管道中以处理请求和响应的家伙,管道中的每个组件都要满足以下两个 ...
- .Net高级编程-自定义错误页 web.config中<customErrors>节点配置
错误页 1.当页面发生错误的时候,ASP.Net会将错误信息展示出来(Sqlconnection的错误就能暴露连接字符串),这样一来不好看,二来泄露网站的内部实现信息,给网站带来安全隐患,因此需要定制 ...
- Linux命令学习-ps命令
Linux中,ps命令的全称是process status,即进程状态的意思,主要作用是列出系统中当前正在运行的进程信息. ps命令的功能很强大,参数也非常多,下面只举几个简单的实例. 显示所有进程信 ...
- Appium+python自动化(十九)- 猴哥失散多年的混血弟弟还是妹妹- Monkey(猴子)参数(超详解)
简介 前边几篇介绍了Monkey以及Monkey的事件,今天就给小伙伴们介绍和分享一下Monkey的参数. 首先我们看一下这幅图来大致了解一下: 1.Monkey 命令 基本参数介绍 -p <允 ...
- idea下maven命令打包不同配置
1. 场景描述 不知道大家有没有遇到过?Idea集成的maven,在切换不同环境配置的时候,有时候反应很慢,还存在切换后打包还是原配置的情况. 2. 问题解决 通过在idea下执行maven命令进行切 ...
- Bzoj 2288 生日礼物题解
2288: [POJ Challenge]生日礼物 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 856 Solved: 260[Submit][S ...
- Java面试题汇总---基础版(附答案)
基于我个人对面试的认知和招聘经验,在此我总结一下Java开发者的基础知识掌握要求,及应聘者面试的需要准备的内容. 首先,Java基础是每个面试官都会问到的,可能只是针对工作经验的多少,对问题追踪深度有 ...
- EasyDL的哪种算法更适合你的图像分类应用
相信不少开发者已经或多或少对百度EasyDL有所耳闻或有所尝试,作为零算法基础实现图像分类和物体检测的”神器”,支持使用少量训练数据,使用通用算法训练,就能很快得到一个图像分类模型.最近百度EasyD ...
- [LeetCode] 107 Binary Tree Level Order Traversal II (easy)
原题 层序遍历,从自底向上按层输出. 左→右→中 解法一 : DFS,求出自顶向下的,最后返回时反转一下. class Solution { public: vector<vector<i ...
- jQuery甘特图/日程图/横道图/插件
基于JQ的一款灵活高效,支持自定义拓展的甘特图/日程图插件 支持月/周/小时等显示方式 支持拖动改变时间 展开与收起 添加/删除,刷新 节假日高亮 clicked,dblClicked,changed ...