vxe-table/vxe-grid 国际化的使用、支持多语言

背景:在vxe-table中,会有些组件自身带的文案需要做成国际化,比如表格下的分页、日期插件等。
技术背景:vue3+TypeScript+vxe-table

一、首先安装vue-i18n插件
yarn add vue-i18n
二、配置翻译文件

在这里插入图片描述
1.在每种语言下引入vxe中的翻译并导出, 其他语言也同中文一致
文件目录:language/zh_CN/index.ts,
中文

import vxe from "vxe-table/lib/locale/lang/zh-CN"
const cn = {
  ...vxe
}
export default cn

英文
文件目录:language/zh_US/index.ts,

import vxe from "vxe-table/lib/locale/lang/en-US"
const en = {
  ...vxe
}

export default en

2.在index.ts中引入导出
文件目录:language/index.ts

import { createI18n } from "vue-i18n"
import zh_CN from "./zh_CN"
import zh_TW from "./zh_TW"
import en_US from "./en_US"
import ja_JP from "./Ja_JP"
import { mystorage } from "@/utils"
const i18n = createI18n({
  locale: mystorage.get("language") || "zh_CN",
  messages: {
    zh_CN: zh_CN,
    zh_TW: zh_TW,
    en_US: en_US,
    ja_JP: ja_JP
  }
})
export default i18n

三、在main.ts中配置

1.引入vxe-table和i18n
2.配置vxe-table

import VXETable from "vxe-table"
import i18n from "@/language"
const { t } = i18n.global
VXETable.setup({ i18n: (key, args) => t(key, args) })

配置完成之后,对应的语言就会显示对应的了

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
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')为触发重置操作的方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值