vue el-tabs中的分页 每个互不影响

2023-11-04

tabs展示  重点看分页

 <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
          <el-tab-pane label="项目组成员" name="first">
            <el-table v-loading="loading" :data="getListByContract" @selection-change="handleSelectionChange">
              <el-table-column label="序号" type="index" :index="Nindex" align="center" prop="id"/>
              <el-table-column label="项目成员" align="center" prop="projectName"/>
              <el-table-column label="职位" align="center" prop="position"/>
              <el-table-column label="在职状态" align="center" prop="serviceStatus">
                <template slot-scope="scope">
                  <dict-tag :options="dict.type.service_status" :value="scope.row.serviceStatus"/>
                </template>
              </el-table-column>
              <el-table-column label="加入时间" align="center" prop="joinTime">
                <template slot-scope="scope">
                  <span>{{ parseTime(scope.row.joinTime, '{y}-{m}-{d}') }}</span>
                </template>
              </el-table-column>
              <el-table-column label="离开时间" align="center" prop="leaveTime">
                <template slot-scope="scope">
                  <span>{{ parseTime(scope.row.leaveTime, '{y}-{m}-{d}') }}</span>
                </template>
              </el-table-column>
            </el-table>
            <pagination
              v-show="member>0"
              :total="member"
              :page.sync="ByContract.pageNum"
              :limit.sync="ByContract.pageSize"
              :page-sizes="[ 5, 10, 15]"
              @pagination="pbSel(activeName)"
            />
          </el-tab-pane>
          <el-tab-pane label="项目进度" name="second">
            <el-table v-loading="loading" :data="progressList">
              <el-table-column label="序号" type="index" :index="Nindex" align="center" prop="id"/>
              <el-table-column label="任务名称" align="center" prop="missionName"/>
              <el-table-column label="完成情况" align="center" prop="completion"/>
              <el-table-column label="完成时间" align="center" prop="completionTime">
                <template slot-scope="scope">
                  <span>{{ parseTime(scope.row.completionTime, '{y}-{m}-{d}') }}</span>
                </template>
              </el-table-column>
              <el-table-column label="完成进度" align="center" prop="progress">
                <template slot-scope="scope">
                  <el-progress :text-inside="true" :stroke-width="15" :percentage="scope.row.progress" :format="format"
                               :status="getSattus(scope.row.progress) "></el-progress>
                </template>
              </el-table-column>
            </el-table>
            <pagination
              v-show="progress>0"
              :total="progress"
              :page.sync="getprogressList.pageNum"
              :limit.sync="getprogressList.pageSize"
              :page-sizes="[ 5, 10, 15]"
              @pagination="pbSel(activeName)"
            />
          </el-tab-pane>
          <el-tab-pane label="项目文件" name="third">
            <el-table v-loading="loading" :data="attachmentList">
              <el-table-column label="序号" type="index" :index="Nindex" align="center" prop="id"/>
              <el-table-column label="上传人" align="center" prop="createName"/>
              <el-table-column label="文件名称" align="center" prop="remark">
                <template slot-scope="scope">
                  <div @click="fileOpen(scope.row)" style="color: #00a2ff;cursor:pointer;">{{ scope.row.remark }}</div>
                </template>
              </el-table-column>
              <el-table-column label="上传时间" align="center" prop="createTime">
                <template slot-scope="scope">
                  <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
                </template>
              </el-table-column>
            </el-table>
            <pagination
              v-show="pagingFileTotal>0"
              :total="pagingFileTotal"
              :page-sizes="[ 5, 10, 15]"
              :page.sync="pagingFile.pageNum"
              :limit.sync="pagingFile.pageSize"
              @pagination="pbSel(activeName)"
            />
          </el-tab-pane>
        </el-tabs>

data中定义

// 项目组成员分页
      member: 0,
      ByContract: {
        pageNum: 1,
        pageSize: 5,
      },
      //项目进度分页
      progress: 0,
      getprogressList: {
        pageNum: 1,
        pageSize: 5,
      },
      //项目文件分页
      pagingFileTotal: 0,
      pagingFile: {
        pageNum: 1,
        pageSize: 5,
      },

tabs绑定值

activeName: 'first',

tabs的点击方法 获取分页信息

  handleClick(tab) {
      this.pbSel(tab.name)
    },

根据tabs的绑定值不同加不同的分页 最后方法是获取接口返回值

  pbSel(name) {
      let row = {};
      if (name =="first"){
        row = this.ByContract;
      }else if (name =="second"){
        row = this.getprogressList;
      }else if (name =="third"){
        row = this.pagingFile;
      }
      row.type = name;
      row.id = this.global
      this.checkDetails(row);
    },
 checkDetails(row) {
      if (row.type != "second" && row.type != "third") { // 默认选择第一个tabs页
        var params = {  // 传递的参数
          contractManageId:row.id,
          type:row.type,
          // 一共有多少条数据
          pageNum: row.pageNum,
          // 一页多少数据
          pageSize: row.pageSize,
        }
        getByContract(params).then(response => {
          this.getListByContract = response.rows;
          this.member = response.total;
        });
      } else if (row.type == "second") {
        var params = {
          contractManageId: row.id,
          type:row.type,
          // 一共有多少条数据
          pageNum: row.pageNum,
          // 一页多少数据
          pageSize: row.pageSize,
        }
        getListprogressList(params).then(response => {
          this.progressList = response.rows;
          this.progress = response.total;
        });
      } else if (row.type == "third") {
        var params = {
          contractManageId: row.id,
          type:row.type,
          // 一共有多少条数据
          pageNum: row.pageNum,
          // 一页多少数据
          pageSize: row.pageSize,
        }
        listAttachment(params).then(response => {
          this.attachmentList = response.rows;
          this.pagingFileTotal = response.total;
          for (var i = 0; i < this.attachmentList.length; i++) {
            var str = this.attachmentList[i].url
            var nstr = str.split('/')
            this.attachmentList[i].remark = nstr[nstr.length - 1] // 将分割好后的字符给到集合中的remark
          }
        });
      }
      this.global = row.id
      getManage(row.id).then(response => {  // tabs中上方form数据显示 不重要
        this.manageForm = response.data;
        this.dialogVisible = true;
      });
    },

参考地址:vue el-tabs动态生成 每一个tab包含分别的分页 分页展示互不影响_F-Fanger的博客-CSDN博客_vue中el-tabs

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue el-tabs中的分页 每个互不影响 的相关文章

  • 有没有办法在javascript中代理(拦截)一个类的所有方法?

    我希望能够在类本身的构造函数内代理类的所有方法 class Boy constructor proxy logic do something before each call of all methods inside class like
  • JavaScript 支持逐字字符串吗?

    在 C 中 您可以像这样使用逐字字符串 server share file txt JavaScript中有类似的东西吗 模板字符串支持换行 so you can do this if you want https developer mo
  • 如何动态删除嵌套的json键?

    这是示例 json search facets author language value nep count 3 value urd count 1 source value West Bengal State Council of Vo
  • 使用javascript滚动滚动条或鼠标滚轮后触发事件

    我想知道是否可以触发事件after使用滚动条或鼠标滚轮 或在触摸设备上滑动 时滚动页面 基本上 我想检测用户何时停止滚动 以便我可以进行 AJAX 加载 而不是在滚动时加载 看起来jQuery s scroll 每次用户滚动时都会触发 并且
  • 为什么 Promise `.then` 方法的回调是反模式

    我在 StackOverflow 上看到了答案 人们建议为 AngularJS 服务提供回调函数 app controller tokenCtrl function scope tokenService tokenService getTo
  • 从 puppeteer PDF 中删除分页符?

    我目前正在尝试查看是否有一种方法可以删除我的 puppeteer PDF 中的分页符 因为我当前的 PDF 设置中的一些分页符正在以一种奇怪的方式切断文本 我正在谈论的内容的屏幕截图 我的傀儡代码 app get companyId pdf
  • ASP.NET 验证控件和 Javascript 确认框

    我有一个使用 NET 服务器端输入验证控件的页面 此页面还有一个 javascript 确认框 在提交表单时会触发该确认框 当前 当选择 提交 按钮时 会出现 javascript 确认框 一旦确认 就会触发 ASP NET 服务器端验证控
  • 指定 HTML5 输入类型 = 日期的值输出?

    我想将本机日期选择器添加到我的应用程序中 该应用程序当前使用遗留的本地系统 日期输入支持尚未广泛普及 但如果我可以基于兼容性提供这两种实现 那就太理想了 有没有办法指定 HTML 日期选择器给出的值的输出 歌剧的默认设置是yyyy mm d
  • 修复 Raphaël 路径节点上 Tipsy 工具提示的位置

    这是一个非常具体且有些复杂的问题 所以我设置了一个最小测试用例 http reveal dk 8080 revealit dk tipsytest 在阅读本文的其余部分之前 您可能应该先了解一下 我的页面显示悬停时突出显示区域的图像Raph
  • 为什么Promise中的代码会同步执行? [复制]

    这个问题在这里已经有答案了 在我的项目中 我有一个很长时间运行的操作 所以我决定将其放入Promise因为我认为这样我就可以在里面的代码继续执行其他操作Promise正在跑步 调试的时候发现外面的代码Promise仅当里面的代码执行Prom
  • NodeJS - 将相对路径转换为绝对路径

    In my 文件系统我的工作目录在这里 C temp a b c d 在 b bb 下有文件 tmp txt C temp a b bb tmp txt 如果我想从工作目录转到该文件 我将使用以下路径 bb tmp txt 如果该文件不存在
  • 为什么浏览器允许onmousedown JS改变href?

    我很长时间以来都注意到 当您尝试复制链接位置或在 Facebook 上打开链接时 它会修改链接并将其传递给l php 例如 我可以被发送到 http www facebook com l php u http 3A 2F 2Fwww goo
  • 如何禁用网页中的萤火虫?

    如何使用 Javascript 禁用 firebug 我想这样做是为了向访问者隐藏我的网页的运作方式 有什么选择可以做到这一点吗 你不能 你能做的最好的事情就是混淆你的 JavaScript 实际上刮掉了 您能做的最好的事情就是将所有安全关
  • Firebase 身份验证和实时应用程序数据库如何保护自身安全?

    从一般开发的角度来看 我很好奇如何保护在线资源的访问 我们使用以下 Firebase 配置参数初始化 Web 应用程序 apikey authdomain projectid databaseurl messagesenderid 服务器如
  • 如何计算一行中Flexbox项目的数量?

    网格是使用 CSS flexbox 实现的 Example http jsbin com jumosicasi edit html css js output 本示例中的行数为 4 因为我出于演示目的固定了容器宽度 但是 实际上 它可以根据
  • 从json中获取所有子节点

    我有以下 json var source k 01 k 02 children k 05 k 06 children k ABC k PQR k 07 k 03 我希望能够指定 k 的值并取回所有孩子 以及孙
  • 使用严格模式编译指示时如何声明全局变量

    使用自调用函数来包装严格模式兼容代码 通常称为严格模式编译指示 被认为是一种很好的做法 function use strict Strict code here 我的问题是在这种情况下如何声明全局变量 我今天知道的三种替代方案 替代方案 1
  • HTML5 地理定位 - 在 iOS 上无法始终工作

    目前正在使用 HTML5 地理定位 我已经在所有网络浏览器上测试了它 它似乎工作正常 然而 当我在 iPad 上测试地理定位时 它在 iPad mini 上始终有效 但当我将其放在更大的 iPad iPad 2 上时 位置似乎并不总是有效
  • 如何强制下载图片?

    我的页面上有一个动态生成的图像 如下所示 img src 我不想告诉我的用户右键单击图像并点击保存 而是想公开一个下载链接 单击该链接将提示下载图像 如何实现这一目标 最初我在 js 中尝试这样做 var path my image att
  • 拉斐尔路径交叉点不起作用

    我对拉斐尔和 pathIntersection method JSFiddle 示例 http jsfiddle net t6gWt 2 您可以看到有两条线都与曲线相交 但当我使用 pathIntersection method 有一个未解

随机推荐