zoukankan      html  css  js  c++  java
  • vue中使用computed搜索解决分页后进行搜索出现页数错误的现象(getSearchInfo)

    <template>
      <div>
        <!-- 基于el-table二次封装的一个table组件,功能包括:搜索、编辑、删除、分页 -->
        <el-table
          :data="
            getSearchInfo.slice(
              (currpage - 1) * Data.pageSize,
              currpage * Data.pageSize
            )
          "
          style=" 100%"
        >
          <template v-for="(item, index) in Data.tableTitle">
            <el-table-column
              :prop="item.prop"
              :label="item.label"
              align="center"
              :key="index"
              :formatter="formatData"
            >
            </el-table-column>
          </template>
          <el-table-column align="center" v-if="Data.showEditAndDelete">
            <template slot="header" slot-scope="scope">
              <el-input v-model="search" size="mini" placeholder="输入关键字搜索" />
            </template>
            <template slot-scope="scope">
              <el-button size="mini" @click="handleEdit(scope.$index, scope.row)"
                >编辑</el-button
              >
              <el-button
                size="mini"
                type="danger"
                @click="handleDelete(scope.$index, scope.row)"
                >删除</el-button
              >
            </template>
          </el-table-column>
        </el-table>
        <el-pagination
          background
          :current-page.sync="currentPage"
          :page-size="Data.pageSize"
          layout="total, prev, pager, next, jumper"
          :total="getSearchInfo.length"
          @current-change="handleCurrentChange"
        >
        </el-pagination>
      </div>
    </template>
    
    <script>
    export default {
      props: ["Data"],
      data() {
        return {
          search: "",
          currpage: 1,
          currentPage: null
        };
      },
      computed: {
        getSearchInfo() {
          //   搜索
          let search = this.search;
          if (search) {
            this.currpage = 1;
            this.currentPage = 1;
            return this.Data.tableData.filter(data => {
              return Object.keys(data).some(key => {
                return (
                  String(data[key])
                    .toLowerCase()
                    .indexOf(search) > -1
                );
              });
            });
          }
          return this.Data.tableData;
        }
      },
      methods: {
        formatData(row, column) {
          // 格式化数据
          if (row["date"] == "2016-05-02") {
            return (row["date"] = "这个是测试动态格式化");
          } else {
            return row[column.property];
          }
        },
        handleEdit(index, row) {
          // 编辑
          console.log(index, row);
        },
        handleDelete(index, row) {
          // 删除
          console.log(index, row);
        },
        handleCurrentChange(cpage) {
          // 点击页数
          this.currpage = cpage;
        }
      },
      mounted() {}
    };
    </script>
    
    <style scoped></style>

     父组件请看下一篇文章。

  • 相关阅读:
    Java(Android)线程池妙用
    Android Touch事件传递机制
    Spring Transaction属性之Propagation
    OpenSessionInViewFilter 的配置及作用(原文地址: http://blog.csdn.net/sunsea08/article/details/4545186)
    JAVA的Date类与Calendar类
    c3p0的几种使用方式(原文地址: https://my.oschina.net/liangtee/blog/101047)
    不知道是谁, 不过感觉好有道理的样子
    powerdesigenr设置主外键颜色
    sys系统用户长时间未登录导致密码过期
    easyui中自定义下拉框的使用
  • 原文地址:https://www.cnblogs.com/lyt520/p/14721229.html
Copyright © 2011-2022 走看看