From f1c0258676064f13a523266348610ac32e397566 Mon Sep 17 00:00:00 2001 From: Hooray <304327508@qq.com> Date: Thu, 4 Jun 2026 09:42:01 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=86=85=E5=BB=BA=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=E5=86=85=E7=9A=84=E5=9B=BA=E5=AE=9A=E4=B8=AD=E6=96=87=E6=96=87?= =?UTF-8?q?=E6=A1=88=EF=BC=8C=E6=94=B9=E4=B8=BA=E5=8F=AF=E6=9B=BF=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/basic/file-upload/README.md | 1 + .../src/basic/file-upload/index.vue | 4 ++- .../components/src/basic/pagination/README.md | 34 +++++++++++++++++++ .../components/src/basic/pagination/index.vue | 18 +++++++--- 4 files changed, 52 insertions(+), 5 deletions(-) diff --git a/packages/components/src/basic/file-upload/README.md b/packages/components/src/basic/file-upload/README.md index 25963f7f..b95daf09 100644 --- a/packages/components/src/basic/file-upload/README.md +++ b/packages/components/src/basic/file-upload/README.md @@ -27,6 +27,7 @@ | `max` | `number` | `0` | 最大上传数量,`0` 表示不限制 | | `directory` | `boolean` | `false` | 是否选择文件夹;启用后只能选择文件夹,文件夹内文件会扁平化上传 | | `disabled` | `boolean` | `false` | 是否禁用 | +| `description` | `string` | `拖放或点击上传` | 描述信息 | ```ts interface FileUploadRequestOptions { diff --git a/packages/components/src/basic/file-upload/index.vue b/packages/components/src/basic/file-upload/index.vue index cfc99578..ad99a986 100644 --- a/packages/components/src/basic/file-upload/index.vue +++ b/packages/components/src/basic/file-upload/index.vue @@ -23,6 +23,7 @@ const props = withDefaults(defineProps<{ max?: number directory?: boolean disabled?: boolean + description?: string }>(), { action: '', method: 'post', @@ -33,6 +34,7 @@ const props = withDefaults(defineProps<{ max: 0, directory: false, disabled: false, + description: '拖放或点击上传', }) const emits = defineEmits<{ @@ -263,7 +265,7 @@ function removeFile(idx: number) {
- 拖放或点击上传 + {{ props.description }}
, pager, jumper'` | 布局配置 | +| `textTemplates` | `object` | 见下方 | 文本模板配置,用于国际化 | | `page` | `number` | **必需** | 当前页码(支持 v-model) | | `size` | `number` | **必需** | 每页条数(支持 v-model) | @@ -54,6 +55,39 @@ ``` +### textTemplates 配置 + +`textTemplates` 属性用于自定义分页组件中的文本,支持国际化场景。 + +| 属性 | 类型 | 默认值 | 说明 | +|------|------|--------|------| +| `total` | `(total: number) => string` | `(total) => \`共 ${total} 条\`` | 总条数文本格式化函数 | +| `sizes` | `(size: number) => string` | `(size) => \`${size} 条/页\`` | 每页条数文本格式化函数 | +| `jumper` | `{ before: string, after: string }` | `{ before: '前往', after: '页' }` | 页码跳转前后文本 | + +#### 国际化示例 + +```vue + + + +``` + 1. **必需属性**:`total`、`page`、`size` 为必需属性 2. **双向绑定**:`page` 和 `size` 支持 `v-model` 双向绑定 3. **页码范围**:跳转页码会自动限制在有效范围内 diff --git a/packages/components/src/basic/pagination/index.vue b/packages/components/src/basic/pagination/index.vue index 4c568397..c78a8b04 100644 --- a/packages/components/src/basic/pagination/index.vue +++ b/packages/components/src/basic/pagination/index.vue @@ -21,9 +21,19 @@ const props = withDefaults(defineProps<{ total: number sizes?: number[] layout?: string + textTemplates?: { + total?: (total: number) => string + sizes?: (size: number) => string + jumper?: { before: string, after: string } + } }>(), { sizes: () => [10, 20, 30, 40, 50, 100], layout: 'total, sizes, ->, pager, jumper', + textTemplates: () => ({ + total: (total: number) => `共 ${total} 条`, + sizes: (size: number) => `${size} 条/页`, + jumper: { before: '前往', after: '页' }, + }), }) const emits = defineEmits<{ @@ -108,15 +118,15 @@ function handleJump() {
- 共 {{ props.total }} 条 + {{ props.textTemplates.total?.(props.total) }}
-
- 前往 + {{ props.textTemplates.jumper?.before }} - 页 + {{ props.textTemplates.jumper?.after }}