:-: **搜索的查询功能**
有时候我们需要查询数据的某一项或多项的数据,也就是进行数据的筛选。
这里我是基于vue的前端UI框架iview来写的。
HTML代码如下:
~~~
<Col span="24">
<Card>
<p slot="title" class="head-con">
<span class="p-title">
<Icon type="ios-list"></Icon>
答题人数统计
</span>
<span class="search-con">
<Input v-model="searchName" placeholder="请输入姓名、手机号、试卷名搜一搜..." clearable style="width: 250px" />
<Button type="primary" icon="search" @click="bindChange(searchName)">搜索</Button>
</span>
</p>
<Row>
<Table stripe :columns="columns1" :data="data1"></Table>
<Row class="page-right">
<Page :total="pageTotal" show-elevator show-total @on-change="pageChange"></Page>
</Row>
</Row>
</Card>
</Col>
~~~
**:columns**代表数据的表头,
**:data**这里存放我们渲染的数据
这里主要是提供了**两种方法**,方法一:js代码如下:
~~~
// 封装请求的方法
search (data, argumentObj) {
let res = data;
let dataClone = data;
for (let argu in argumentObj) {
if (argumentObj[argu].length > 0) {
res = dataClone.filter(d => {
return d[argu].indexOf(argumentObj[argu]) > -1;
});
dataClone = res;
}
}
return res;
},
// 搜索按钮事件
bindChange: function(e){
//基本的结构是这样:渲染数据 = (总数据,请求的参数)
// 匹配用户名
this.data1 = (this,allData, {userName: e})
}
~~~
方法二: (自己写的比较简单的方法,可以请求多类型的数据)
~~~
bindChange: function(e){
let res = this.allData;
let dataClone = [];
for(let obj in res){
// 匹配用户名
if(res[obj].userName == e){
dataClone.push(res[obj])
}
// 匹配手机号
else if(res[obj].phone == e){
dataClone.push(res[obj])
}
// 匹配试卷名
else if(res[obj].cname == e){
dataClone.push(res[obj])
}
}
this.data1 = dataClone;
this.pageTotal = this.data1.length;
}
~~~
- mui框架
- toast提示框的使用
- 星级评分
- 上拉刷新和下拉加载里超链接失效的原因
- confirm确认框的使用
- 取消下拉刷新和上拉加载的border
- 解决使用加载的方式捕捉不到dom
- css样式篇
- css3实现0.5像素的边框
- css3样式中的border-radius的圆角边框
- css面试篇之红色十字架
- css样式~~用图片模拟单选框radio的功能
- div设置绝对定位以后,文字实现居中
- 设置input里面字体颜色和大小
- js知识篇
- javascript篇~~九九乘法表
- js~跳转提示页面
- js~实现60秒倒计时
- 正则表达式之保留小数点后两位小数
- 数组操作方法篇
- Array.prototype.filter()的用法
- 使用正则去除空格
- jQuery知识篇
- jQuery~~模仿radio图片切换
- 下拉菜单的滑动效果
- jQuery点击切换字体颜色
- jQuery实现图片和字体图标颜色的切换
- 左侧菜单之当前点击菜单展开,其他菜单收缩
- jQuery全选或全部不选
- 实现子菜单的收缩和展开
- 小程序
- 小程序~调用豆瓣api数据的问题
- 实现毫秒级倒计时
- 条件渲染-wx:if语句
- 实现两个页面共存
- wxss样式问题
- 修改按钮默认的border-radius
- 移动端
- 安卓底部按钮浮上来的解决方法
- excel(xlsx) to json
- vue
- 事件
- 某个元素的点击事件
- 阻止子事件的冒泡
- excel文件的导入功能(解析成json数据)
- iview框架
- render函数
- iview不支持键盘事件的解决方法
- 路由传参
- 搜索框template的基本写法
- watch监听
- 路由发生变化,数据没有更新?
- 动态组件
- 刷新组件
- 前端小功能
- 搜索框
- axios
- axios公共请求方法
- cookie的简单使用
- 微信扫码登录功能
- pc端微信扫码登录-内嵌网页版
- MongoDB
- 安装与配置
- 布局
- js判断打开是PC端还是移动端
- 自适应布局方案-视口布局
- js实现加密和解密的公共方法
- js实现正则表达式匹配的文字加上标签
- python
- 解决pip升级不成功的原因
- Django
- runserver 失败的原因