avue.js表格添加搜索条件

1.创建表格,添加搜索条件

<avue-crud
      ref="indexDistributionTable"
      :data="pageData"
      :option="option"
      :page.sync="page"
      @selection-change="selectionChange"
      @size-change="sizeChange"
      @current-change="currentChange"
      @search-change="searchChange"
      @search-reset="searchReset"
    >
      <template slot="search">
        <el-form-item label="指标名称">
          <el-input v-model="searchForm.indexName" placeholder="请输入指标名称" size="small" />
        </el-form-item>
      </template>
    </avue-crud

表格的其他属性此前已经有对应的文章了(avue.js表格分页),不在重复说明,搜索在avue-crud标签中,添加了一个template的标签,solt属性为search,将搜索条件添加在这个标签中就可以了,这里我添加了一个输入框作为搜索条件

2.方法属性设置

@search-change用来表示搜索条件改变时触发的方法

@search-reset用来表示搜索条件重置(清空)时调用的方法

在data中添加属性

searchForm: {
        indexName: ''
      }

在method中添加@search-change和@search-reset绑定的方法

searchChange() {
      this.page.currentPage = 1
      this.getPageData()
    },
    searchReset() {
      this.page.currentPage = 1
      this.searchForm.indexName = ''
      this.getPageData()
    },

搜索条件改变的时候,将当前页码重置为1,并且调用分页方法

搜索条件重置的时候,将当前页码重置为1,搜索条件清空,调用分页方法

分页方法中查询的时候代入了查询条件indexName和分页参数

getPageData() {
      const params = {
        currentPage: this.page.currentPage,
        pageSize: this.page.pageSize,
        indexName: this.searchForm.indexName
      }
      getSelectedIndexPageData(params).then(response => {
        if (response.status !== 200) {
          this.$message({
            message: response.errorMessage,
            type: 'error'
          })
        } else {
          const data = response.data
          this.pageData = data.data
          this.page.total = parseInt(data.total)
        }
      })
    },

3.结果说明

添加搜索条件后,界面如图所示

image.png

搜索按钮绑定的就是@search-change事件,清空按钮绑定的就是@search-reset事件

4.自定义按钮

avue-crud标签中添加标签slot为searchMenu,内部添加按钮,并设置点击事件就可以实现自定义搜索条件了

<avue-crud
      ref="indexDistributionTable"
      :data="pageData"
      :option="option"
      :page.sync="page"
      @selection-change="selectionChange"
      @size-change="sizeChange"
      @current-change="currentChange"
      @search-change="searchChange"
      @search-reset="searchReset"
    >
      <template slot="search">
        <el-form-item label="指标名称">
          <el-input v-model="searchForm.indexName" placeholder="请输入指标名称" size="small" />
        </el-form-item>
      </template>
      <template slot="searchMenu">
        <el-button :size="size" @click="alert('自定义提交')">自定义提交</el-button>
      </template>
    </avue-crud>

image.png

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Avue提供了一个方便的方法,可以将前端表格转换为表单。首先,你需要在页面中引入Avuejs和css文件: ```html <link rel="stylesheet" href="https://unpkg.com/avue@2.2.2/packages/theme-chalk/index.css"> <script src="https://unpkg.com/avue@2.2.2/lib/index.js"></script> ``` 然后,你需要将你的表格代码包装在一个`<el-table>`标签内,并添加一个`ref`属性(例如`ref="myTable"`)。接下来,你需要在页面中添加一个按钮,当用户点击该按钮时,将会触发转换表格为表单的操作: ```html <template> <div> <el-table :data="tableData" style="width: 100%" ref="myTable"> <!-- 表格列定义 --> </el-table> <el-button @click="convertTableToForm">转换为表单</el-button> </div> </template> ``` 最后,在Vue组件的`methods`中定义`convertTableToForm`方法,该方法将获取表格数据并将其转换为表单数据。具体代码如下: ```js methods: { convertTableToForm() { const tableData = this.$refs.myTable.store.states.data const formFields = [] tableData.forEach((row) => { Object.keys(row).forEach((key) => { formFields.push({ label: key, prop: key, value: row[key] }) }) }) this.formFields = formFields } } ``` 在`convertTableToForm`方法中,我们首先获取表格数据,然后循环遍历每一行数据,将每个单元格的名称作为表单的`label`和`prop`,将单元格的值作为表单的`value`,最后将所有表单字段保存在`formFields`数组中。现在,你已经成功将前端表格转换为表单!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值