Vuex,iView UI面包屑导航使用扩展详解


Posted in Javascript onNovember 04, 2019

本案例是基于Vuex的公共数据库,你在了解本案例之前要了解Vuex的使用方法。

https://www.iviewui.com/components/breadcrumb

打开网址我们可以知道这个组件的面包屑导航是基于路由跳转的。但是我们项目中常常用到单页面查询面包屑导航。小生开始为这个纠结好久。然后和小伙伴一起研究出来一套单页面不用路由跳转的使用方法。

先看看效果图

1,首次进来

Vuex,iView UI面包屑导航使用扩展详解

2,查询结果

Vuex,iView UI面包屑导航使用扩展详解

3,再次点击面包屑导航

Vuex,iView UI面包屑导航使用扩展详解

4,查询结果

Vuex,iView UI面包屑导航使用扩展详解

基本的效果是这样的

下面看代码

<template>
 <div class="members">
     <Breadcrumb separator=">" >   //面面包屑导航组件,用“>”隔开
      <BreadcrumbItem  v-for="(item,index) in accountList"> // 用v-for遍历循环账号数组
        <span class="select_span" @click="queryAgentMember(item)"> //商品这里放置账号,调用查询函数实现点击账号查询
         <Icon v-if="index==0" type="ios-home-outline"></Icon> // v-if判断第一个账号的图标
         <Icon v-if="index>0" type="android-person"></Icon> // v-if判断不是第一个账号的图标
         <span>{{item}}</span> // 图标后面的账号
        </span>
      </BreadcrumbItem>
     </Breadcrumb>
  <Table class="table_a" :border="showBorder" :stripe="showStripe" :show-header="showHeader" :height="fixedHeader ? 250 : ''"
      :size="tableSize" :data="queryAgentMemberdataList" :columns="tableColumns3"></Table>
 </div>
</template>
<script>
 import { mapActions,mapState } from "vuex";
 export default {
  data () {
   return {
    Account:'', //定义一个账号变量
    accountList:[], //定义一个数组装账号
    queryAgentMemberdataList:[], //这是表格列表数据
 
   }
  },
  methods:{
   ...mapActions('account',
    [
     'queryAgentMemberInfo',
    ]
   ),
   //查询函数
   search(acc) {
    this.time();
    if(acc ){ //对函数参数进行判断,在有账号的情况下
      this.Account = acc; // 如果有就赋值给Account
    }else if(this.childAccount === ""){ //继续判断没有下级账号
     this.Account = this.userDetail.account; // 如果没有就等于后台返回的账号
     if(this.accountList.indexOf(this.userDetail.account)==-1){ // 再一次判断这个账号在不在账号数组里面,这里是不在的情况下
      this.accountList.push(this.userDetail.account) // 不在就push到账号数组
     }
 
    }else { //对函数参数进行判断,在没有账号的情况下
     this.Account = this.childAccount
    }
    let data = {
     'memberAccount':this.Account,
     'sort': '1',
     'type': '1'
    };
    this.queryAgentMemberInfo(data).then((res) => {
     this.queryAgentMemberdataList = this.queryAgentMemberInfoList;
    })
   },
   // 面包屑导航点击查询实时变更函数
   queryAgentMember(account){
    let end = this.accountList.indexOf(account); // 定义一个变量等于传入的账号的下标
    this.accountList = this.accountList.slice(0,end+1); // 利用这个下标对张海数组进行截取
    this.search(account) //调用查询函数更新表格数据
   },
  },
  computed: {
   ...mapState(['userDetail']),
   ...mapState( "account",['queryAgentMemberInfoList',]),
   tableColumns3 () {
    let columns = [];
    if (this.showCheckbox) {
     columns.push({
      type: 'selection',
      align: 'center'
     })
    }
    if (this.showIndex) {
     columns.push({
      type: 'index',
      align: 'center'
     })
    }
    columns.push({
     title: '会员账号',
     sortable: true,
     render: (h, params) => {
      if (params.row.account === this.Account) {
      }
      return h('Span',{
       props: {
        type: 'text'
       },
       style: {
        color: '#4ca5e9',
        cursor: 'pointer'
       },
       on: {  // 这里还要对表格账号点击查询进行判断
        click:()=>{
         //同样的先判断账号数组里面有没有当前查询的账号,这里也是在没有的额情况下
         if(this.accountList.indexOf(params.row.account)==-1){ 
          //没有就将当前查询的账号添加到账号数组
          this.accountList.push(params.row.account)
         }
         this.search(params.row.account); //查询函数
        }
       }
      },params.row.account)
     }
    });
    columns.push({
     title: '账号名称',
     key: 'name'
    });
    columns.push({
     title: '彩票钱包余额',
     key: 'accountBalance',
     sortable: true
    });
    columns.push({
     title: '团队人数',
     key: 'childCount'
    });
    columns.push({
     title: '注册时间',
     key: 'create_Time',
     sortable: true,
     width: 200
    });
    columns.push({
     title: '最后登录时间',
     key: 'last_LoginTime',
     sortable: true,
     width: 150
    });
    columns.push({
     title: '下级总额',
     key: 'childAmount'
    });
    return columns;
   },
  },
  watch:{
   userDetail(){
    this.search()
   }
  }
 }
</script>

这里的代码不可以直接使用,但是方法都在,希望读者可以看懂。

以上这篇Vuex,iView UI面包屑导航使用扩展详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
关于Javascript 的 prototype问题。
Jan 03 Javascript
为jquery.ui.dialog 增加“自动记住关闭时的位置”的功能
Nov 24 Javascript
js单向链表的具体实现实例
Jun 21 Javascript
鼠标滑过出现预览的大图提示效果
Feb 26 Javascript
JavaScript闭包详解
Feb 02 Javascript
javascript中动态函数用法实例分析
May 14 Javascript
JS实现的另类手风琴效果网页内容切换代码
Sep 08 Javascript
JavaScript事件详细讲解
Jun 27 Javascript
JavaScript中有关一个数组中最大值和最小值及它们的下表的输出的解决办法
Jul 01 Javascript
微信小程序左右滑动切换页面详解及实例代码
Feb 28 Javascript
ReactNative Image组件使用详解
Aug 07 Javascript
详解Vue项目引入CreateJS的方法(亲测可用)
May 30 Javascript
vue双向绑定数据限制长度的方法
Nov 04 #Javascript
使用p5.js临摹动态图片
Nov 04 #Javascript
p5.js绘制创意自画像
Nov 04 #Javascript
Vue图片浏览组件v-viewer用法分析【支持旋转、缩放、翻转等操作】
Nov 04 #Javascript
vue 指令和过滤器的基本使用(品牌管理案例)
Nov 04 #Javascript
vue中使用GraphQL的实例代码
Nov 04 #Javascript
Vue项目中Api的组织和返回数据处理的操作
Nov 04 #Javascript
You might like
我的群发邮件程序
2006/10/09 PHP
PHP开启gzip页面压缩实例代码
2010/03/11 PHP
php数组函数序列之array_values() 获取数组元素值的函数与方法
2011/10/30 PHP
php定义一个参数带有默认值的函数实例分析
2015/03/16 PHP
php使用标签替换的方式生成静态页面
2015/05/21 PHP
PHP中获取文件创建日期、修改日期、访问时间的方法
2016/11/05 PHP
JS解密入门之凭直觉解
2008/06/25 Javascript
小米公司JavaScript面试题
2014/12/29 Javascript
纯javascript制作日历控件
2015/07/17 Javascript
简单实现js选项卡切换效果
2016/02/03 Javascript
使用jQuery实现Web页面换肤功能的要点解析
2016/05/12 Javascript
Angular ng-repeat遍历渲染完页面后执行其他操作详细介绍
2016/12/13 Javascript
bootstrap制作jsp页面(根据值让table显示选中)
2017/01/05 Javascript
Angular2库初探
2017/03/01 Javascript
详解升级react-router 4 踩坑指南
2017/08/14 Javascript
Bootstrap 树控件使用经验分享(图文解说)
2017/11/06 Javascript
Vue2 配置 Axios api 接口调用文件的方法
2017/11/13 Javascript
解决eclipse中没有js代码提示的问题
2018/10/10 Javascript
vue props 单项数据流实例分享
2020/02/16 Javascript
python多重继承新算法C3介绍
2014/09/28 Python
Python常用模块介绍
2014/11/21 Python
python 系统调用的实例详解
2017/07/11 Python
使用python编写监听端
2018/04/12 Python
pytorch + visdom 处理简单分类问题的示例
2018/06/04 Python
python 实现数字字符串左侧补零的方法
2018/12/04 Python
Opencv+Python实现图像运动模糊和高斯模糊的示例
2019/04/11 Python
Python中的上下文管理器相关知识详解
2019/09/19 Python
python区分不同数据类型的方法
2019/10/14 Python
凌阳科技股份有限公司C++程序员面试题笔试题
2014/11/20 面试题
什么是静态路由,其特点是什么?什么是动态路由,其特点是什么?
2013/07/26 面试题
string = null 和string = ''的区别
2013/04/28 面试题
毕业生就业推荐信范文
2013/12/01 职场文书
党员自我剖析材料(群众路线)
2014/10/06 职场文书
道路交通事故赔偿协议书
2014/10/24 职场文书
比较几种Redis集群方案
2021/06/21 Redis
Python 键盘事件详解
2021/11/11 Python