vxe-table的使用

以下代码包括的内容有,双击,单击事件,表格样式,翻页序号,复选框事件,表尾合计,划过显示Tooltip提示

<vxe-table
   :scroll-y="{ gt: 0, enabled: true, mode: 'wheel' }"  //虚拟滚动
   show-overflow
   :header-cell-style="{
              'text-align': 'center',
              color: '#000000',
              backgroundColor: '#f2f2f2',
              width: 'auto'
            }"
   min-height="48px"
   ref="tableRef"
   :cell-style="{ 'text-align': 'center', color: '#000000' }"
   :data="state.tableData"
   @checkbox-change="handleSelectionChange"
   @checkbox-all="selectAllCheckboxChange"
   @cell-dblclick="rowDblclick"
   @cell-click="rowClick"
   :seq-config="{ seqMethod }"
   style="width: 100%"
   border
   resizable
   stripe               
 >
    <vxe-column type="checkbox" width="55" fixed="left" />
    <vxe-column title="序号" type="seq" align="center" width="60" />
    <vxe-column title="名字" field="name" min-width="120" show-overflow>
       <template #default="scope">
          <div> {{ scope.row.name }} </div>
       </template>
    </vxe-column>
</vxe-table>

1.单击双击事件

//state.selection 为自定义字段

const rowDblclick = ({ row }) => {
  console.log(row)
}
//单点选中
const rowClick = ({ row, $table }) => {
  $table.toggleCheckboxRow(row)
  state.selection = $table.getCheckboxRecords()
}
//复选框事件
const handleSelectionChange = ({ row, checked, records }) => {
  state.selection = records
}
const selectAllCheckboxChange = (checked) => {
  state.selection = checked.records
}

2.翻页序号

//state.orderListQuery.page state.orderListQuery.siz 定义的页码

const seqMethod = ({ rowIndex }) => {
  return (state.orderListQuery.page - 1) * state.orderListQuery.size + rowIndex + 1
}

3.自定义表尾合计 参考

【vxe-table】表尾合计行,数据处理方法footer-method的使用_vxe-table footer-method-CSDN博客

4.列宽自适应参考

vue vxe-table自适应表格内容宽度_vxe-table 宽度自适应-CSDN博客

### vxe-pager 引入方法及使用示例 #### 1. 安装依赖 在项目中引入 `vxe-table` 和其相关组件之前,需先安装必要的依赖项。可以通过 npm 或 yarn 进行安装: ```bash npm install vxe-table --save ``` 或者 ```bash yarn add vxe-table ``` 完成安装后即可开始配置和使用--- #### 2. 配置 vxe-tablevxe-pager 组件 为了正确使用 `vxe-pager`,需要将其注册到 Vue 应用程序中。以下是具体的配置方式: ##### (1)全局引入并注册 如果希望在整个项目中都可以使用 `vxe-pager`,可以采用如下方式进行全局注册: ```javascript import Vue from 'vue'; import VXETable from 'vxe-table'; import 'vxe-table/lib/style.css'; // 引入样式文件 // 注册插件 Vue.use(VXETable); ``` 上述代码会自动将 `vxe-pager` 等常用组件注册至 Vue 实例中[^3]。 ##### (2)按需引入 对于某些场景下仅需局部使用的开发者来说,可以选择按需引入的方式减少打包体积: ```javascript import { Pager } from 'vxe-table'; import 'vxe-table/lib/pager-style.css'; // 单独引入分页组件的样式 export default { components: { 'vxe-pager': Pager, }, }; ``` 这种方式允许开发人员灵活控制哪些页面或模块需要用到该组件。 --- #### 3. 使用示例 下面是一个完整的 `vxe-pager` 使用案例,展示如何结合数据请求动态渲染分页控件。 ##### HTML 结构 ```html <template> <div class="example"> <!-- 数据列表 --> <vxe-grid :columns="tableColumns" :data="tableData"></vxe-grid> <!-- 分页控件 --> <vxe-pager :current-page.sync="pageInfo.currentPage" :page-size.sync="pageInfo.pageSize" :total="pageInfo.total" @page-change="handlePageChange" ></vxe-pager> </div> </template> ``` ##### JavaScript 逻辑 ```javascript <script> export default { data() { return { tableColumns: [ { field: 'name', title: '名称' }, { field: 'age', title: '年龄' }, { field: 'address', title: '地址' }, ], tableData: [], // 表格数据 pageInfo: { currentPage: 1, // 当前页码 pageSize: 10, // 每页显示条数 total: 0, // 总记录数 }, }; }, methods: { fetchData(page) { const params = { page: page.currentPage, limit: page.pageSize, }; this.$axios.get('/api/data', { params }).then((res) => { if (res.success) { this.tableData = res.data.list; this.pageInfo.total = res.data.total; // 更新总记录数 } }); }, handlePageChange({ currentPage, pageSize }) { this.fetchData({ currentPage, pageSize, }); }, }, created() { this.fetchData(this.pageInfo); // 初始化加载第一页数据 }, }; </script> ``` 此示例展示了如何通过绑定事件监听器 (`@page-change`) 动态更新当前页码以及每页大小,并触发服务端的数据拉取操作。 --- #### 4. 参数说明 | 属性名 | 类型 | 默认值 | 描述 | |----------------|----------|--------------|----------------------------------------------------------------------| | current-page | Number | 1 | 当前页码 | | page-size | Number | 10 | 每页显示的数量 | | total | Number | 0 | 数据总量 | | perfect-scroll | Boolean | false | 是否启用完美滚动 | 更多参数详情可查阅官方文档。 --- #### 5. 常见问题解决 - **Q:** 如果点击翻页按钮无响应怎么办? - A: 确认是否绑定了 `@page-change` 方法,并且内部实现了正确的分页逻辑处理。 - **Q:** 如何自定义分页按钮样式? - A: 利用 CSS 覆盖默认样式,或者借助 slot 提供的内容区域自行设计界面。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值