VUE+element开发后台管理的搜索功能

本文实例为大家分享了VUE element后台管理搜索功能的具体代码,供大家参考,具体内容如下

先看看样式图:

实现上面这种简单搜索简单的三步走:

1.页面样式:在页面中使用form表单的校验功能来实现输入搜索。给表单的数据放入搜索请求的data数组中,也就是searchParams这个大集合中。

备注:如果给每个输入框添加了搜索按钮的click方法,则会在输入完成后直接执行列表搜索。所以考虑自己使用的具体位置。

<div class="search">
    <el-form :inline="true" :model="searchParams" class="demo-form-inline">
        <el-form-item>
            <el-input v-model="searchParams.chanelName" style="width: 160px;" placeholder="请输入渠道名称" clearable></el-input>
        </el-form-item>
        <el-form-item>
            <el-input v-model="searchParams.remark" style="width: 180px;" placeholder="请输入备注内容关键词" clearable></el-input>
        </el-form-item>
        <el-form-item label="">
          <el-select style="width: 160px" v-model="searchParams.chanelType" clearable @change="channelChange" placeholder="请选择渠道类型">
            <el-option :label="item.name" :value="item.value" v-for="item in chanelList" :key="item.value"></el-option>
          </el-select>
        </el-form-item>
        <el-form-item>
            <el-button class="search-btn el-button--infoSearch" icon="el-icon-search" @click="submitSearch()"></el-button>
            <el-button class="search-btn el-button--infoSearch" @click="clearListSearch">清空</el-button>
        </el-form-item>
        <el-form-item class="rBtn">
          <el-button type="primary" @click="createItem('new')">新建</el-button>
        </el-form-item>
    </el-form>
    <div class="clearFix"></div>
</div>

清空功能则是清空搜索输入框的内容,实际上也是重置整个页面。区分是刷新页面还是不刷新。不刷新的话直接清空输入的内容,重置的话直接走一遍列表初始化加载。

2.JS配置内容:搜索和首次加载请求是一个接口,可以直接将参数合并起来,有搜索输入的内容就执行搜索,无内容则加载默认内容。清空搜索直接格式化表单。

data () {
            return {
                currentPage: 1,
                totalResult:0,
                chanelList: [
                  {
                    value: 0,
                    name: '线上'
                  },
                  {
                    value: 1,
                    name: '线下'
                  },
                  {
                    value: 2,
                    name: '集采'
                  }
                ],
                searchParams: {
                  remark: '',
                  chanelName: '',
                  chanelType: '',
                  pageSize: 10,
                  pageIndex: 0
                },
            }
        },
        created () {
          this.getList()
        },
        methods: {
            // 获取列表数据 num(下同):取的挪车的原型 1-默认请求类型三方ID
            // 网点名称 storeName ID cardId
            getList () {
                let method = 'GET'
                let url = `/etcMan/channelList`
                let dd = {
                        channelName: this.searchParams.chanelName || '',
                        channelType: this.searchParams.chanelType,
                        remarks: this.searchParams.remark || '',
                        pageIndex: this.searchParams.pageIndex || 0,
                        pageSize: this.searchParams.pageSize || 10
                    }
                this.axios({
                    url: url + devCode,
                    method: method,
                    baseURL: baseUrl,
                    params: dd
                })
                .then(res => {
                    res = res.data
                    this.tableData = res.data.pageListData ? res.data.pageListData : []
                    this.totalResult = res.data.totalResult
                })

            },
            // 搜索列表 num(下同)
            submitSearch () {
              this.searchParams.pageIndex = 0
              this.getList()
              this.currentPage = 1
            },
            // 格式化表单数据
            clearForm () {
                this.searchParams = {
                    chanelName: '',
                    remark: '',
                    chanelType: '',
                    pageIndex: 0,
                    pageSize: 10
                }
            },
            // 清除列表的搜索表单
            clearListSearch () {
                this.clearForm()
                this.getList()
            },

3.就是进行调测,对搜索输入的参数进行对应,在特定值的情况下 搜索0或者别的值会被直接传成空,所以这个时候就要考虑列表请求的参数不写空,直接填进行搜索的参数名字。这个参数有就传没有就不传,避免出现为0或者别的值直接传成空的了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • vue Element-ui input 远程搜索与修改建议显示模版的示例代码

    html: <template> <el-autocomplete popper-class="my-autocomplete" custom-item="my-remote" v-model="state" :fetch-suggestions="querySearch" placeholder="默认空" icon="close" :on-icon-click=&q

  • vue elementui 实现搜索栏公共组件封装的实例代码

    1.背景 vue后台管理系统,会有很多表格页面,表格上方会有一些搜索选项,表格直接使用el-table即可,而搜索栏区域每次写起来都很繁琐,而且多人开发情况下每个人写的样式都不相同,布局样式无法统一. 所以要考虑对搜索栏做一个封装,统一配置引用,提升开发维护效率和界面统一. 完成后的效果大概就是长这样: 2.分析 项目使用的是elementui框架,搜索栏这种表单提交,首先要使用el-form组件来封装,而复杂点就是表单项可能有很多种,例如input输入框.select选择框.日期时间选择框.日

  • Vue3+Element+Ts实现表单的基础搜索重置等功能

    从Vue2的写法转变为Vue3的格式之后,会有一些写法和代码结构的改变,这里对一些重点进行介绍. 代码结构: 写法一(推荐): <script setup lang="ts"> import { ref, reactive } from 'vue' import type { ElForm } from 'element-plus' const myform = ref<InstanceType<typeof ElForm>>() const for

  • vue+element实现下拉菜单并带本地搜索功能示例详解

    需求: 后台返回数组对像,前端组合成数组,根据name组合成一个个数组并把后台返回的值当成一个children推入数组,在数组中自定义属性备份数据防止搜索的时候改变原数组使得数组无法回退 这里是用的vuex存储,因为多个页面使用同一个接口;所以没必要重复请请求 src\store\module\metadata.js /* * @Author: your name * @Date: 2021-09-02 15:46:45 * @LastEditTime: 2021-09-16 17:39:53

  • vue+Element实现搜索关键字高亮功能

    最近做了一个日志搜索的需求,要在页面上实现海量日志的关键字搜索.为了搜索更清晰,我最终实现了多条件搜索,且搜索结果的记录中的关键字全部高亮. 一.实现思路 1 实时监控表格,实现关键字的定位: 2 点击搜索按钮以后,实现记录中关键字的样式变化(即高亮). 二.实现过程 1 搜索条件表单 了解了实现思路,就让我们一起来看一下实现过程(关键位置均给了注释) <el-form :inline="true" :model="formQuery" > <el

  • Vue Element 分组+多选+可搜索Select选择器实现示例

    最终效果(http://47.98.205.88:3000/mult_group_selection)见下图.实际就是将element三种官方select实例整合起来,同时实现分组+多选+可搜索,此外点击一级分组名可以实现全选/全不选.供有相关需求的开发者参考 准备工作: 除了vue脚手架.element等必要包之外.该项目还用到了linq.js(https://github.com/mihaifm/linq),该工具可以快速从数组中查找所需内容. npm install --save linq

  • 利用vue + element实现表格分页和前端搜索的方法

    前言 ElementUI是饿了么前端开源的一个基于Vue的前端框架,已经帮我们封装好了一系列功能性的组件,比如栅格系统.表格.表单.树形菜单.通知等.对于搞后台管理界面的项目,特别是不需要考虑兼容ie8.ie9以下的项目.ElementUI是一个不错的选择. 而且ElementUI的文档写得十分详尽,参照demo可以很快上手. 本文主要介绍了关于vue + element实现表格分页和前端搜索的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 实现思路 1.前端后台管理

  • vue+elementui实现下拉表格多选和搜索功能

    本文实例为大家分享了vue+elementui实现下拉表格多选和搜索的具体代码,供大家参考,具体内容如下 在elementui的基础上对下拉框和表格进行组合 template <el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="120px&q

  • VUE+element开发后台管理的搜索功能

    本文实例为大家分享了VUE element后台管理搜索功能的具体代码,供大家参考,具体内容如下 先看看样式图: 实现上面这种简单搜索简单的三步走: 1.页面样式:在页面中使用form表单的校验功能来实现输入搜索.给表单的数据放入搜索请求的data数组中,也就是searchParams这个大集合中. 备注:如果给每个输入框添加了搜索按钮的click方法,则会在输入完成后直接执行列表搜索.所以考虑自己使用的具体位置. <div class="search">     <e

  • vue+element开发一个谷歌插件的全过程

    简单功能:点击浏览器右上角插件icon弹出小弹窗,点击设置弹出设置页,并替换背景图或颜色. 开始 1.本地创建文件夹testPlugin并新建manifest.json文件 { "name": "testPlugin", "description": "这是一个测试用例", "version": "0.0.1", "manifest_version": 2 } 2.添

  • Vue 电商后台管理项目阶段性总结(推荐)

    一.阶段总结 该项目偏向前端更多一点,后端 API 服务是已经搭建好了的,我们只需要用既可以,(但是作为一个 全栈开发人员,它的数据库的表设计,Restful API 的设计是我们要着重学习的!!!) 这个vue 项目是从 2020 4月开始,一直开发直至 5月23日 部署上线,也算是我的第二个 vue 的实战项目(其实是熟悉 elementUI 的使用),在开发过程中使用 Vue cil4 脚手架进行开发,使用码云作为 Git 管理仓库, 目前已经基本开发完毕,在服务器上也能够正常运行 (ng

  • Vue+Element的后台管理框架的整合实践

    目录 Vue+ElementUI的后台管理框架 那什么是ElementUI? vue-element-admin 是一个后台前端解决方案 路由和配置左侧菜单 新开发的一个后台管理系统.在框架上,领导要用AdminLTE这套模板.这个其实很简单,把该引入的样式和js文件引入就可以了.这里就不多赘述了.可以参考官网:https://adminlte.io/ 效果图,如下: AdminLTE这个模板,还是很方便的.有兴趣的大家可以自行去琢磨.我只是把这个模板内嵌到新系统中去,也就没多去研究了. Adm

  • Vue element商品列表的增删改功能实现

    目录 介绍 基本信息 上传主图 商品信息vue富文本编辑器的配置 最后提交数据 介绍 整体和用户列表 类似 功能步骤有: 面包屑导航 外部是大的卡片组件 搜索商品 添加商品 表格渲染数据 作用域插槽用于 操作按钮 分页器组件的使用 不一样的点:之前编辑信息 新增信息是 弹出对话框编辑 但商品信息内容较多 我们跳转到一个组件.并且进行商品编辑的时候要进行路由传参 来渲染初始数据 点击添加商品按钮时跳转到新增商品组件对应路径: addGoods(){ this.$router.push('/good

  • Vue element实现权限管理业务流程详解

    目录 展开渲染标签编辑权限 对话框内树形组件编辑权限 展示所有权限 添加 编辑 删除 角色 都与上一篇 用户类似 只是接口不同 我们只关注其他不一样的: 展开渲染标签编辑权限 el-table-column type="expand"设置了expand则显示为一个可展开的按钮 显示图上的效果 使用了 三重for循环 按照 tree 数据结构 .children 取得下一级数据 <el-table-column type="expand"> <tem

  • 实例详解ztree在vue项目中使用并且带有搜索功能

    zTree 是一个依靠 jQuery 实现的多功能 "树插件".优异的性能.灵活的配置.多种功能的组合是 zTree 最大优点. 上篇文章给大家介绍了vue中如何使用ztree,大家可以点击查看. 之前博客介绍过怎么在vue里展示以及获取点击元素的内容,此文章之介绍搜索功能 html <el-form-item label="机构" class="ztree-par"> <i class="icon_org"

  • vue中添加与删除关键字搜索功能

    具体代码如下所示: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible

  • Vue+Element UI 实现视频上传功能

    一.前言 项目中需要提供一个视频介绍,使用户能够快速.方便的了解如何使用产品以及注意事项. 前台使用Vue+Element UI中的el-upload组件实现视频上传及进度条展示,后台提供视频上传API并返回URL. 二.具体实现 1.效果图展示 2.HTML代码 <div class="album albumvideo"> <div> <p class="type_title"> <span>视频介绍</spa

  • Vue下拉框加分页搜索功能的实现方法

    目录 方式一:使用elementui中的el-select和el-pagination实现分页 方式二:使用v-selectpage组件实现分页搜索 前言:开发任务中有这样一个需求,下拉框中需要展示超过5000条数据,甚至更多.这数据量直接整个页面卡死了,就想到在下拉框中加分页,实现方式有如下两种: 方式一:使用elementui中的el-select和el-pagination实现分页 HTML部分: <el-select v-model="value1" placeholde

随机推荐