ag-grid表格如何使用?

2023-11-02

1、自定义标题

// tableHeaderCustom.vue"
<template>
  <div class="clearfix" style="font-weight: 400">
    <span class="pull-left">{{ params.displayName }}</span>
    <Poptip trigger="hover" :transfer="true" :content="params.toolTipText">
      <i
        class="iconfont iconios-information-circle-outline color-primary mg-lf-3 pull-left font-size-14 cursor-pointer"></i>
    </Poptip>
    <!-- 排序按钮 -->
    <span class="height-32 flex  align-items-center  inline-block mg-lf-3 pull-left" v-if="params.sortFun"
          @click="sortFun()">
<!--      <span class="cursor-pointer ag-icon ag-icon-none "></span>-->
      <Icon class="cursor-pointer color-c5c8ce " :class="{'color-2d8cf0':params.sortType === 'asc'}"

            type="ios-arrow-round-down"/>
      <Icon class="cursor-pointer color-c5c8ce " :class="{'color-2d8cf0':params.sortType === 'desc'}"
            type="ios-arrow-round-up"
            style="transform: translateX(-9px);"/>
    </span>
  </div>
</template>

<script>

export default {
  name: "",

  data() {
    return {};
  },
  mounted() {
  },
  methods: {
    sortFun() {
      console.log(111, this.params)
      if (typeof this.params.sortFun === 'function') {
        if (this.params.sortType === '') {
          this.params.setSortTypeFun('desc', this.params.column.colId)
        } else if (this.params.sortType === 'desc') {
          this.params.setSortTypeFun('asc', this.params.column.colId)
        } else if (this.params.sortType === 'asc') {
          this.params.setSortTypeFun('', this.params.column.colId)
        }
        this.params.sortFun(this.params.sortType)
      }

    }
  }
};
</script>

<style scoped lang="less">

.color-c5c8ce {
  color: #c5c8ce;
}

.color-2d8cf0 {
  color: #2d8cf0;
}
</style>

// 项目引用的js文件
import tableHeaderCustom from "allpages/inventoryCenter/channelStockControl/tableHeaderCustom.vue";

{
	headerName: '差异数(>=)',
	field: 'qtyDifferences',
	tdAlign: 'left',
	isagfilter: true,
	headerComponentFramework: Vue.extend(tableHeaderCustom),
	headerComponentParams: {
		toolTipText: '店铺库存 - 平台库存', // 参数
	},
 }

2、 记住用户拖动列的顺序,并重新设置列排序顺序

 /**
     * 根据接口返回的顺顺序,重组列的顺序
     * @param val
     * @param th
     * @returns {[]}
     */
    setColumn(val, th) {
      let arr = val.split(',')
      let thArr = []
      arr.forEach((item) => {
        let head = th.find((i) => {
          return i.field === item
        })
        if (head) {
          thArr.push(head)
        }
      })
      return thArr
    },
    /**
     * 获取表格列的顺序
     */
    getUserConfigFun() {
      const formData = new FormData();
      formData.append('type', 'type'); 
      formData.append('id', '41460534');
      this.service.common.getUserConfig(formData).then((res) => { // 接口返回的顺序如:'index,age,name'
        if (res.data.code === 0) {
          this.agTableConfig.columnDefs = this.setColumn(res.data.data.colPosition, 				this.agTableConfig.columnDefs)
        }
      });
    },
    /**
     * 设置表格列的顺序
     */
    columnmovedFun(v) {
      const colposition = []
      const allGridColumnsArr = this.agTableConfig.columnApi.getAllGridColumns() || [] // 获取表格列的顺序
      allGridColumnsArr.forEach((item) => {
        colposition.push(item.colId)
      })
      console.log(999, colposition)
      this.debounceFun(() => {
        const formData = new FormData();
        formData.append('tableid', '41460534'); // V_SG_CHANNEL_PRO_INFO
        formData.append('colposition', colposition);
        this.service.common.setColPosition(formData).then((res) => {}); // 用接口存储起来
      })
    },

3、设置默认选中的表格行

/**
  * 设置默认选中的表格行
*/
    setCheckedRow() {
      const selectedIndex = []
      this.multipleSelection.forEach((item) => {
        selectedIndex.push(item.id)
      })
      this.agTableConfig.gridApi.forEachNode((node) => {
        if (selectedIndex.includes(node.data.id)) {
          this.agTableConfig.gridApi.selectNode(node, true);
        }
      });
    },

4、表格准备完毕

  /**
     * 表格准备完毕
     * @param params
     */
    onGridReady(params) {
      this.agTableConfig.gridApi = params.api;
      this.agTableConfig.columnApi = params.columnApi;
      this.getUserConfigFun()
      if (this.data1.length) {
        this.agTableConfig.gridApi.sizeColumnsToFit();
      }
    },

基础配置

  agTableConfig: {
        gridApi: {},
        columnApi: {},
        columnDefs: [
          {
            headerName: "序号",
            width: 90,
            field: "index",
            checkboxSelection: true,
            pinned: 'left',
            headerClass: '',
            thAlign: 'left',
            tdAlign: 'left',
            cellStyle: {color: 'rgb(15, 142, 233)'},
          },
          {
            headerName: '差异数(>=)',
            field: 'qtyDifferences',
            tdAlign: 'left',
            isagfilter: true,
            headerComponentFramework: Vue.extend(tableHeaderCustom),
            headerComponentParams: {
              toolTipText: '店铺库存 - 平台库存',            
            },
          },
        ], // 表头
        rowData: [],
        renderArr: {}, // 表格内处理
        renderParams: (cellData) => {       //render表格渲染
          if (cellData.field === 'index') { // 序号
            return {
              renderContainer: 'CellRenderByFunction',
              renderComponent: (h, params) => {
                return h('span', {}, (this.page1.current - 1) * this.page1.pageSize + params.rowIndex + 1)
              }
            }
          }
      },
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ag-grid表格如何使用? 的相关文章

随机推荐

  • IDEA的DEBUG

    先认识一下DEBUG面板 先讲讲右侧的几个功能 12 Show Execution Point Alt F10 跳转到程序正在执行的地方 当浏览其他地方的代码后忘记程序执行到哪了或找起来麻烦时相当实用 13 Step Over F8 下一步
  • 多个组件的生命周期执行顺序

    多个组件的生命周期顺序 1 单个组件生命周期执行顺序 从官方文档上我们可以看出单个组件的生命周期顺序 beforeCreate created beforeMount mounted 2 多个组件的生命周期顺序 1 父组件与子组件 验证步骤
  • Linux中在Eclipse中远行tomcat失败

    Could not load the Tomcat server configuration 现象 启动tomcat时提示 Could not load the Tomcat server configuration at Servers
  • React使用antd实现可编辑单元格

    import React useContext useState useEffect useRef from react import Input Form from antd import Table from com Table imp
  • Flutter中的方法回调备忘

    类似于Android中的Callback iOS中的block 大致思路是一样的 需要自定义一个函数或者使用官方自己的也行 直接上代码 先写一个按钮点击事件 然后监听点击事件 备忘 onPress 和 onPress 特别需要注意 在wid
  • mysqld: Can‘t read dir of ‘/etc/mysql/conf.d/‘ (Errcode: 13 - Permission denied)

    今天用docker去运行mysql的时候 一直existing 输入 docker logs 镜像ID的时候发现报了mysqld Can t read dir of etc mysql conf d Errcode 13 Permissio
  • X-CSRF-Token

    Odata服务HTTP测试总是出现烦人的 CSRF token validation failed for all modifying requests 忽略下图中的报文错误 怀疑是服务器参数的设置问题 临时应急的话可以先针对这个服务把CS
  • Tars- zipkin环境本地搭建

    该图片引用于它处 https blog csdn net u012394095 article details 94389644 1 下载opentracing cpp 客户端调用的代码 网址为 opentraceing cpp 注意要下稳
  • 离散数学期末复习

    第一章 命题逻辑 联结词 蕴涵的注意事项 公式的层次 单个命题公式为0公式 等值演算的公式 范式 1 简单合取式 简单析取式 2 极小项 由简单合取式构成 m0 极大项 由简单析取式 构成 M0 奎因 莫可拉斯基方法求最简展开式 1 找极小
  • C语言笔记(二)

    基础 1 进制问题 1 1 二进制 1 2 ASCII 1 3 k进制转换为十进制 1 4 十进制转换为k进制 2 输入输出 3 逻辑运算符 4 运算符优先级 5 switch分支语句 6 字符串查找strchr函数 1 进制问题 1 1
  • 工作和生活中,如何用项目管理思维解决复杂的事情?

    在工作和生活中 许多事情都可以采用项目思维方式来解决 当我们逐渐将工作和生活中的各种事务以项目的方式来处理和推进时 我们可能并没有意识到 实际上我们正在运用项目管理思维 项目管理思维能帮助我们在面对繁杂事务时 理清思路 考虑周全 明确行动
  • 《程序员的自我修养—链接、装载与库》

    程序员的自我修养 链接 装载与库 读书笔记 本文为记录笔记 大部分内容为书中的摘抄 作者微博 MTK 蛙蛙鱼 写作时间 2013年11月18日 更新时间 2014年02月18日 编译和链接 2 1 被隐藏了的过程 预编译 cpp or gc
  • 蓝桥BASIC-18 矩形面积交 思路分析

    问题描述 平面上有两个矩形 它们的边平行于直角坐标系的X轴或Y轴 对于每个矩形 我们给出它的一对相对顶点的坐标 请你编程算出两个矩形的交的面积 输入格式 输入仅包含两行 每行描述一个矩形 在每行中 给出矩形的一对相对顶点的坐标 每个点的坐标
  • Qt开发上位机软件建立经典蓝牙通讯

    Qt开发上位机软件建立经典蓝牙通讯 之前做了一个具有经典蓝牙通讯功能的Windows上位机软件 在网上学习了相关博客以及参考了官方经典蓝牙例程之后 总结出了使用Qt建立经典蓝牙通讯的步骤 附带相关源码 作为分享 开发环境 我使用的Qt版本是
  • ESP32 LVGL开发一 移植与例程

    简介 LVGL 轻量级和通用图形库 是一个免费和开源的图形库 提供UI通信元素的构建接口与较低资源实现的源码 适用于快速开发UI图形交互页面的应用 官方已经适配了ESP32硬件平台 库版本为v7 11 开箱即用 如有异议 欢迎留言指正 特性
  • java进制转换及算法

    本文主要讲各个进制转换的方法 进制转换 前言 一 说明 1 作用 2 本质 3 方法 4 场景 二 实例 1 字符串与16进制的互转 2 16进制字符串与byte数组互转 3 字符串与指定格式的byte数组互转 4 字符串与16进制互转 5
  • PC-Lint c/c++ 代码检查工具

    概述 PC Lint是GIMPEL SOFTWARE公司的一个产品 它是一个历史悠久 功能异常强劲的静态代码检测工具 它的使用历史可以追溯到计算机编程的远古时代 30多年以前 经过这么多年的发展 它不但能够监测出许多语法逻辑上的隐患 而且也
  • Linux - Ubuntu下安装node.js的方法

    1 Putty连接 安装Putty连接到Ubuntu 输入密码验证后进入Putty命令行控制台 1 1 查看Ubuntu版本 sudo uname m 如果显示i686 你安装了32位操作系统 如果显示 x86 64 你安装了64位操作系统
  • Redis的高级特性一览

    更多内容 欢迎关注微信公众号 全菜工程师小辉 公众号回复关键词 领取免费学习资料 应用场景 缓存系统 用于缓解数据库的高并发压力 计数器 使用Redis原子操作 用于社交网络的转发数 评论数 粉丝数 关注数等 排行榜 使用zset数据结构
  • ag-grid表格如何使用?

    1 自定义标题 tableHeaderCustom vue