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 相关文章推荐
用jQuery扩展自写的 UI导航
Jan 13 Javascript
基于jQuery的让非HTML5浏览器支持placeholder属性的代码
May 24 Javascript
jQuery事件之键盘事件(ctrl+Enter回车键提交表单等)
May 11 Javascript
Node.js异步I/O学习笔记
Nov 04 Javascript
简易的投票系统以及js刷票思路和方法
Apr 07 Javascript
VsCode插件整理(小结)
Sep 14 Javascript
JS实现获取自定义属性data值的方法示例
Dec 19 Javascript
详解从0开始搭建微信小程序(前后端)的全过程
Apr 15 Javascript
使用 node.js 模仿 Apache 小部分功能
Jul 07 Javascript
vue实现在线预览pdf文件和下载(pdf.js)
Nov 26 Javascript
解决vue 给window添加和移除resize事件遇到的坑
Jul 21 Javascript
element-ui点击查看大图的方法示例
Dec 14 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
php学习笔记之基础知识
2014/11/08 PHP
php自动加载方式集合
2016/04/04 PHP
thinkPHP和onethink微信支付插件分享
2019/08/11 PHP
jquery中防刷IP流量软件影响统计的一点对策
2011/07/10 Javascript
关于onScroll事件在IE6下每次滚动触发三次bug说明
2011/09/21 Javascript
js动态创建表格,删除行列的小例子
2013/07/20 Javascript
100个不能错过的实用JS自定义函数
2014/03/05 Javascript
js判断横竖屏及禁止浏览器滑动条示例
2014/04/29 Javascript
Node.js开发之访问Redis数据库教程
2015/01/14 Javascript
jQuery实现的模拟弹出窗口功能示例
2016/11/24 Javascript
Web开发中客户端的跳转与服务器端的跳转的区别
2017/03/05 Javascript
深入理解angular2启动项目步骤
2017/07/15 Javascript
详解Node中导入模块require和import的区别
2017/08/11 Javascript
jQuery实现简单的回到顶部totop功能示例
2017/10/16 jQuery
jQuery-Citys省市区三级菜单联动插件使用详解
2019/07/26 jQuery
JS中如何轻松遍历对象属性的方式总结
2019/08/06 Javascript
基于JavaScript判断两个对象内容是否相等
2020/01/10 Javascript
jQuery实现鼠标移入显示蒙版效果
2020/01/11 jQuery
[03:45]Newbee战队出征西雅图 决战2016国际邀请赛
2016/08/02 DOTA
linux系统使用python获取cpu信息脚本分享
2014/01/15 Python
Python根据区号生成手机号码的方法
2015/07/08 Python
Python实现获取照片拍摄日期并重命名的方法
2017/09/30 Python
Python3用tkinter和PIL实现看图工具
2018/06/21 Python
在Pycharm中对代码进行注释和缩进的方法详解
2019/01/20 Python
Python 仅获取响应头, 不获取实体的实例
2019/08/21 Python
Python threading的使用方法解析
2019/08/28 Python
python常用排序算法的实现代码
2019/11/08 Python
新秀丽拉杆箱美国官方网站:Samsonite美国
2016/07/25 全球购物
伦敦剧院门票:London Theatre Direct
2018/11/21 全球购物
激光脱毛、蓝光和护肤:Tria Beauty
2019/03/28 全球购物
应届毕业生求职信范文
2013/12/18 职场文书
公司领导九九重阳节发言稿2014
2014/09/25 职场文书
个人借款协议书范本
2014/11/17 职场文书
复兴之路展览观后感
2015/06/02 职场文书
中学语文教学反思
2016/02/16 职场文书
python 学习GCN图卷积神经网络
2022/05/11 Python