vxe-grid 利用dayjs提供的方法来格式化, 计算二个日期之间的年数/年龄

1、安装dayjs

pnpm add dayjs

yarn add dayjs

npm install dayjs

2、导入

import dayjs from 'dayjs';

3、vxe-grid列:

export const UserColumns: VxeGridPropTypes.Columns = [
...
{
    title: '年龄',
    width: 70,
    field: 'old',
    showOverflow: 'tooltip',
    align: 'center',
    sortable: true,
    slots: {
      default: ({ row }) => {
        const birthday = dayjs(row.birthday);
        const today = dayjs(new Date());
        return today.diff(birthday, 'year') + '岁';
      },
    },
  },
]

4、格式化以下的效果如下:

vxe-table中,可以使用vxe-grid组件进行查询操作。具体步骤如下: 1. 在表格中添加vxe-grid组件,并设置其属性和事件。 ```html <vxe-grid ref="grid" :columns="columns" :data="tableData" @query-change="handleQueryChange"></vxe-grid> ``` 其中,columns为表格列的配置,tableData为表格数据,query-change为查询条件改变时的回调函数。 2. 在回调函数中获取查询条件,并根据条件过滤表格数据。 ```javascript methods: { handleQueryChange ({ column, cell, row, rowIndex, $rowIndex, columnIndex, $columnIndex, filters, form }) { const { $table } = this.$refs.grid const { visibleData } = $table const filterList = [] for (const key in filters) { const filter = filters[key] if (filter && filter.length) { filterList.push({ field: key, value: filter[0].value }) } } const filterMethod = ({ row }) => { return filterList.every(({ field, value }) => { return row[field] === value }) } $table.loadData(visibleData.filter(filterMethod)) } } ``` 其中,通过解构赋值获取查询条件,然后根据条件过滤表格数据,并重新加载数据。 3. 在表格中添加查询条件的输入框。 ```html <vxe-toolbar> <vxe-form ref="form" :model.sync="queryForm" :rules="queryRules" :inline="true"> <vxe-form-item label="名称" prop="name"> <vxe-input v-model="queryForm.name" clearable></vxe-input> </vxe-form-item> <vxe-form-item label="年龄" prop="age"> <vxe-input v-model="queryForm.age" clearable></vxe-input> </vxe-form-item> <vxe-form-item> <vxe-button type="primary" @click="$refs.grid.commitProxy('query')">查询</vxe-button> <vxe-button @click="$refs.grid.commitProxy('reset')">重置</vxe-button> </vxe-form-item> </vxe-form> </vxe-toolbar> ``` 其中,queryForm为查询条件的数据模型,queryRules为查询条件的校验规则,$refs.grid.commitProxy('query')为触发查询操作的方法,$refs.grid.commitProxy('reset')为触发重置操作的方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值