x-next 1.13.0 → 1.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AI_CODING.md +6 -5
- package/AI_USAGE/catalog.md +106 -105
- package/AI_USAGE/components/alert-api.md +48 -0
- package/AI_USAGE/components/alert.md +222 -3
- package/AI_USAGE/components/bar-chart-api.md +177 -0
- package/AI_USAGE/components/bar-chart.md +297 -3
- package/AI_USAGE/components/boxicons.md +147 -0
- package/AI_USAGE/components/button-api.md +144 -0
- package/AI_USAGE/components/button.md +447 -3
- package/AI_USAGE/components/charts.md +81 -0
- package/AI_USAGE/components/checkbox-api.md +145 -0
- package/AI_USAGE/components/checkbox.md +365 -3
- package/AI_USAGE/components/color-picker-api.md +52 -0
- package/AI_USAGE/components/color-picker.md +211 -3
- package/AI_USAGE/components/config-provider-api.md +38 -0
- package/AI_USAGE/components/config-provider.md +250 -3
- package/AI_USAGE/components/date-picker-api.md +1114 -0
- package/AI_USAGE/components/date-picker.md +378 -3
- package/AI_USAGE/components/dialog-api.md +142 -0
- package/AI_USAGE/components/dialog.md +284 -3
- package/AI_USAGE/components/draggable-api.md +146 -0
- package/AI_USAGE/components/draggable.md +259 -0
- package/AI_USAGE/components/drawer-api.md +78 -0
- package/AI_USAGE/components/drawer.md +227 -0
- package/AI_USAGE/components/dropdown-api.md +529 -0
- package/AI_USAGE/components/dropdown.md +392 -3
- package/AI_USAGE/components/empty-api.md +36 -0
- package/AI_USAGE/components/empty.md +227 -3
- package/AI_USAGE/components/finicon.md +88 -0
- package/AI_USAGE/components/form-api.md +524 -0
- package/AI_USAGE/components/form.md +454 -0
- package/AI_USAGE/components/grid-api.md +527 -0
- package/AI_USAGE/components/grid.md +224 -0
- package/AI_USAGE/components/heatmap-api.md +122 -0
- package/AI_USAGE/components/heatmap.md +220 -0
- package/AI_USAGE/components/icon-api.md +4707 -0
- package/AI_USAGE/components/icon.md +257 -0
- package/AI_USAGE/components/image-api.md +440 -0
- package/AI_USAGE/components/image.md +465 -0
- package/AI_USAGE/components/input-api.md +184 -0
- package/AI_USAGE/components/input-number-api.md +66 -0
- package/AI_USAGE/components/input-number.md +294 -0
- package/AI_USAGE/components/input-tag-api.md +114 -0
- package/AI_USAGE/components/input-tag.md +482 -0
- package/AI_USAGE/components/input.md +293 -3
- package/AI_USAGE/components/layout-api.md +147 -0
- package/AI_USAGE/components/layout.md +230 -0
- package/AI_USAGE/components/line-chart-api.md +197 -0
- package/AI_USAGE/components/line-chart.md +279 -3
- package/AI_USAGE/components/link-api.md +42 -0
- package/AI_USAGE/components/link.md +197 -0
- package/AI_USAGE/components/menu-api.md +516 -0
- package/AI_USAGE/components/menu.md +268 -0
- package/AI_USAGE/components/message-api.md +215 -0
- package/AI_USAGE/components/message-box-api.md +108 -0
- package/AI_USAGE/components/message-box.md +268 -3
- package/AI_USAGE/components/message.md +231 -3
- package/AI_USAGE/components/network-api.md +91 -0
- package/AI_USAGE/components/network.md +378 -0
- package/AI_USAGE/components/notification-api.md +236 -0
- package/AI_USAGE/components/notification.md +275 -3
- package/AI_USAGE/components/pagination-api.md +62 -0
- package/AI_USAGE/components/pagination.md +380 -3
- package/AI_USAGE/components/pie-chart-api.md +109 -0
- package/AI_USAGE/components/pie-chart.md +245 -3
- package/AI_USAGE/components/popconfirm-api.md +75 -0
- package/AI_USAGE/components/popconfirm.md +231 -3
- package/AI_USAGE/components/popover-api.md +75 -0
- package/AI_USAGE/components/popover.md +208 -3
- package/AI_USAGE/components/popup-api.md +75 -0
- package/AI_USAGE/components/popup.md +52 -0
- package/AI_USAGE/components/progress-api.md +44 -0
- package/AI_USAGE/components/progress.md +248 -3
- package/AI_USAGE/components/radio-api.md +165 -0
- package/AI_USAGE/components/radio.md +259 -3
- package/AI_USAGE/components/rate-api.md +54 -0
- package/AI_USAGE/components/rate.md +233 -3
- package/AI_USAGE/components/resize-box-api.md +56 -0
- package/AI_USAGE/components/resize-box.md +231 -0
- package/AI_USAGE/components/scrollbar-api.md +77 -0
- package/AI_USAGE/components/scrollbar.md +218 -0
- package/AI_USAGE/components/select-api.md +758 -0
- package/AI_USAGE/components/select.md +640 -3
- package/AI_USAGE/components/skeleton-api.md +85 -0
- package/AI_USAGE/components/skeleton.md +150 -0
- package/AI_USAGE/components/slider-api.md +51 -0
- package/AI_USAGE/components/slider.md +233 -3
- package/AI_USAGE/components/space-api.md +38 -0
- package/AI_USAGE/components/space.md +145 -0
- package/AI_USAGE/components/spin-api.md +43 -0
- package/AI_USAGE/components/spin.md +205 -0
- package/AI_USAGE/components/steps-api.md +111 -0
- package/AI_USAGE/components/steps.md +201 -3
- package/AI_USAGE/components/switch-api.md +58 -0
- package/AI_USAGE/components/switch.md +290 -3
- package/AI_USAGE/components/table-api.md +2919 -0
- package/AI_USAGE/components/table.md +1414 -0
- package/AI_USAGE/components/tabs-api.md +135 -0
- package/AI_USAGE/components/tabs.md +308 -3
- package/AI_USAGE/components/tag-api.md +124 -0
- package/AI_USAGE/components/tag.md +292 -0
- package/AI_USAGE/components/textarea-api.md +55 -0
- package/AI_USAGE/components/textarea.md +326 -3
- package/AI_USAGE/components/time-picker-api.md +137 -0
- package/AI_USAGE/components/time-picker.md +271 -3
- package/AI_USAGE/components/time-range-selector-api.md +44 -0
- package/AI_USAGE/components/time-range-selector.md +355 -0
- package/AI_USAGE/components/timeline-api.md +93 -0
- package/AI_USAGE/components/timeline.md +312 -0
- package/AI_USAGE/components/tooltip-api.md +77 -0
- package/AI_USAGE/components/tooltip.md +182 -0
- package/AI_USAGE/components/trend-chart-api.md +119 -0
- package/AI_USAGE/components/trend-chart.md +335 -0
- package/AI_USAGE/components/trigger-api.md +124 -0
- package/AI_USAGE/components/trigger.md +185 -0
- package/AI_USAGE/components/upload-api.md +200 -0
- package/AI_USAGE/components/upload.md +711 -3
- package/AI_USAGE/components/watermark-api.md +87 -0
- package/AI_USAGE/components/watermark.md +200 -0
- package/AI_USAGE/core.md +1 -1
- package/AI_USAGE/index.md +35 -7
- package/AI_USAGE/recipes/form-on-demand.md +1 -1
- package/AI_USAGE.md +33651 -5
- package/CHANGELOG.md +18 -0
- package/dist/_utils/inherit-component-type.d.ts +11 -0
- package/dist/components/date-picker/index.d.ts +420 -5
- package/dist/components/form-input/index.d.ts +617 -2
- package/dist/components/layout/index.d.ts +689 -1
- package/dist/components/menu/index.d.ts +786 -1
- package/dist/es/_utils/inherit-component-type.js +6 -0
- package/dist/es/components/date-picker/index.js +18 -17
- package/dist/es/components/form-input/index.js +12 -11
- package/dist/es/components/layout/index.js +10 -9
- package/dist/es/components/menu/hooks/use-level.js +5 -5
- package/dist/es/components/menu/index.js +13 -10
- package/dist/index.cjs +3 -3
- package/dist/index.umd.js +3 -3
- package/package.json +10 -5
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
<!-- Generated by pnpm generate:ai-usage. Edit script/ai-usage/content.md and script/ai-usage/. -->
|
|
2
|
+
# Upload 完整公开 API
|
|
3
|
+
|
|
4
|
+
适用版本:x-next@1.14.0;来源指纹:`014984639d816a2c7e25eb22690c586b0b2e8efba6846bec8a4e424db41a09e9`。
|
|
5
|
+
|
|
6
|
+
从同版本构建的公开声明、运行时 props/emits 和显式 expose 生成。运行时导入始终使用 `x-next`,声明路径仅作定位。插槽类型未细化时,具体槽名与作用域见本地用法示例。
|
|
7
|
+
|
|
8
|
+
## Upload API
|
|
9
|
+
|
|
10
|
+
公开声明:`dist/components/upload/index.d.ts`。 类型中的 undefined 表示可省略;原始 prop 默认值不等于继承配置或服务默认值。
|
|
11
|
+
|
|
12
|
+
### Props
|
|
13
|
+
|
|
14
|
+
| 名称 | 用途 | 公开类型 | 必填 | 声明默认值 |
|
|
15
|
+
| --- | --- | --- | --- | --- |
|
|
16
|
+
| fileList | 文件列表,支持 v-model:file-list | undefined | UploadFile<unknown>[] | 否 | undefined |
|
|
17
|
+
| defaultFileList | 非受控模式下的初始文件列表 | undefined | UploadFile<unknown>[] | 否 | [] |
|
|
18
|
+
| action | 上传地址,传函数时按文件动态解析并支持异步 | undefined | string | (file: File) => string | Promise<string> | 否 | undefined |
|
|
19
|
+
| method | 请求方法 | undefined | "post" | "put" | "patch" | 否 | "post" |
|
|
20
|
+
| headers | 请求头 | undefined | { [x: string]: string; } | 否 | undefined |
|
|
21
|
+
| data | 附加表单字段,可传函数按文件解析 | undefined | { [x: string]: unknown; } | (file: UploadFile) => Record<string, unknown> | Promise<Record<string, unknown>> | 否 | undefined |
|
|
22
|
+
| name | FormData 文件字段名 | undefined | string | (file: UploadFile) => string | 否 | "file" |
|
|
23
|
+
| withCredentials | 是否携带 Cookie | undefined | false | true | 否 | false |
|
|
24
|
+
| timeout | 请求超时毫秒数,0 表示不超时 | undefined | number | 否 | 0 |
|
|
25
|
+
| customRequest | 自定义上传请求;返回 Promise 时自动接管状态与结果,返回 { abort } 时手动回调 | undefined | (option: UploadRequestOption) => UploadRequest | Promise<unknown> | void | 否 | undefined |
|
|
26
|
+
| accept | 接受的文件类型,同原生 accept | undefined | string | 否 | undefined |
|
|
27
|
+
| multiple | 是否允许选择多个文件 | undefined | false | true | 否 | false |
|
|
28
|
+
| directory | 是否支持选择文件夹(含拖拽递归) | undefined | false | true | 否 | false |
|
|
29
|
+
| capture | 移动端捕获来源,透传原生 input | undefined | false | true | "user" | "environment" | 否 | undefined |
|
|
30
|
+
| paste | 是否支持聚焦后粘贴文件 | undefined | false | true | 否 | false |
|
|
31
|
+
| draggable | 是否渲染为拖拽上传区域 | undefined | false | true | 否 | false |
|
|
32
|
+
| disabled | 是否禁用 | undefined | false | true | 否 | undefined |
|
|
33
|
+
| autoUpload | 是否选择后立即上传 | undefined | false | true | 否 | true |
|
|
34
|
+
| limit | 最大文件数量,0 表示不限 | undefined | number | 否 | 0 |
|
|
35
|
+
| beforeUpload | 上传前钩子,可拦截或替换文件 | undefined | (file: File, fileList: File[]) => UploadBeforeUploadResult | Promise<UploadBeforeUploadResult> | 否 | undefined |
|
|
36
|
+
| beforeRemove | 移除前钩子,返回 false 阻止移除 | undefined | (file: UploadFile) => boolean | void | Promise<boolean | void> | 否 | undefined |
|
|
37
|
+
| listType | 列表展示形态 | undefined | "text" | "picture" | "picture-card" | 否 | "text" |
|
|
38
|
+
| tip | 提示文案,拖拽区与图片卡入口显示 | undefined | string | 否 | undefined |
|
|
39
|
+
| showFileList | 是否展示文件列表 | undefined | false | true | 否 | true |
|
|
40
|
+
| showUploadButton | 是否展示上传入口,对象形式可配置达 limit 后仍显示 | undefined | false | true | UploadShowUploadButton | 否 | true |
|
|
41
|
+
| showRemoveButton | 是否展示移除按钮 | undefined | false | true | 否 | true |
|
|
42
|
+
| showRetryButton | 是否展示重试 / 开始上传按钮 | undefined | false | true | 否 | true |
|
|
43
|
+
| showCancelButton | 是否展示取消上传按钮 | undefined | false | true | 否 | true |
|
|
44
|
+
| showPreviewButton | 是否展示预览按钮 | undefined | false | true | 否 | true |
|
|
45
|
+
| showDownloadButton | 是否展示下载按钮 | undefined | false | true | 否 | false |
|
|
46
|
+
| download | 链接是否带 download 属性,点击直接下载 | undefined | false | true | 否 | false |
|
|
47
|
+
| showLink | 有地址时是否渲染为链接 | undefined | false | true | 否 | true |
|
|
48
|
+
| imagePreview | 是否用 ImagePreview 打开图片 | undefined | false | true | 否 | false |
|
|
49
|
+
| imageLoading | 缩略图原生 loading 策略 | undefined | "eager" | "lazy" | 否 | undefined |
|
|
50
|
+
| responseUrlKey | 从响应中提取 url 的字段名(支持 data.url 嵌套路径)或解析函数 | undefined | string | (file: UploadFile, response?: unknown) => string | undefined | 否 | undefined |
|
|
51
|
+
| ariaLabel | 上传入口的无障碍名称 | undefined | string | 否 | undefined |
|
|
52
|
+
|
|
53
|
+
### Events
|
|
54
|
+
|
|
55
|
+
| 事件 | 用途 | 监听器签名(即事件参数) |
|
|
56
|
+
| --- | --- | --- |
|
|
57
|
+
| update:fileList | 文件列表变化,配合 v-model:file-list 使用 | undefined | (_files: UploadFile<unknown>[]) => any |
|
|
58
|
+
| change | 文件加入、进度、成功、失败、移除时触发 | undefined | (_info: UploadChangeInfo) => any |
|
|
59
|
+
| progress | 上传进度变化时触发,percent 为 0 ~ 1 | undefined | (_info: UploadProgressInfo) => any |
|
|
60
|
+
| success | 单个文件上传成功 | undefined | (_file: UploadFile<unknown>) => any |
|
|
61
|
+
| error | 单个文件上传失败 | undefined | (_file: UploadFile<unknown>) => any |
|
|
62
|
+
| remove | 文件被移除 | undefined | (_file: UploadFile<unknown>) => any |
|
|
63
|
+
| exceed | 文件数量超出 limit,超出部分不进入列表 | undefined | (_info: UploadExceedInfo) => any |
|
|
64
|
+
| reject | 文件被拒绝,reason 为 accept / limit / beforeUpload / read | undefined | (_info: UploadRejectInfo) => any |
|
|
65
|
+
| preview | 点击文件名或预览按钮 | undefined | (_file: UploadFile<unknown>) => any |
|
|
66
|
+
| download | 点击下载按钮 | undefined | (_file: UploadFile<unknown>) => any |
|
|
67
|
+
|
|
68
|
+
### Slots
|
|
69
|
+
|
|
70
|
+
| 名称 | 用途 | 公开类型 |
|
|
71
|
+
| --- | --- | --- |
|
|
72
|
+
| default | 上传入口内容 | undefined | () => any |
|
|
73
|
+
| upload-button | 替换入口内容,保留组件交互 | undefined | () => any |
|
|
74
|
+
| upload-item | 替换整行列表项渲染 | undefined | (scope: { file: UploadFile; index: number; }) => any |
|
|
75
|
+
| file-icon | 自定义文本列表的文件图标 | undefined | (scope: { file: UploadFile; }) => any |
|
|
76
|
+
| file-name | 自定义文件名内容 | undefined | (scope: { file: UploadFile; }) => any |
|
|
77
|
+
| extra-button | 在操作区追加自定义操作 | undefined | (scope: { file: UploadFile; }) => any |
|
|
78
|
+
| image | 自定义图片 / 图片卡的缩略图 | undefined | (scope: { file: UploadFile; }) => any |
|
|
79
|
+
|
|
80
|
+
### 实例方法 / 暴露值
|
|
81
|
+
|
|
82
|
+
| 名称 | 公开类型 |
|
|
83
|
+
| --- | --- |
|
|
84
|
+
| submit | 公开声明未细化(用法和实现已显式暴露) |
|
|
85
|
+
| abort | 公开声明未细化(用法和实现已显式暴露) |
|
|
86
|
+
| retry | 公开声明未细化(用法和实现已显式暴露) |
|
|
87
|
+
| upload | 公开声明未细化(用法和实现已显式暴露) |
|
|
88
|
+
| updateFile | 公开声明未细化(用法和实现已显式暴露) |
|
|
89
|
+
| fileList | UploadFile<unknown>[] |
|
|
90
|
+
|
|
91
|
+
### 关联类型定义
|
|
92
|
+
|
|
93
|
+
以下摘自本组件族声明,供查阅嵌套配置;运行时和值类型均以根入口可导出项为准。
|
|
94
|
+
|
|
95
|
+
```typescript-reference
|
|
96
|
+
type UploadStatus = 'init' | 'uploading' | 'done' | 'error';
|
|
97
|
+
|
|
98
|
+
type UploadListType = 'text' | 'picture' | 'picture-card';
|
|
99
|
+
|
|
100
|
+
type UploadRequestMethod = 'post' | 'put' | 'patch';
|
|
101
|
+
|
|
102
|
+
type UploadRejectReason = 'accept' | 'limit' | 'beforeUpload' | 'read';
|
|
103
|
+
|
|
104
|
+
interface UploadFile<T = unknown> {
|
|
105
|
+
/** 文件唯一标识;外部列表未提供时组件会自动生成并保持稳定 */
|
|
106
|
+
uid: string;
|
|
107
|
+
name: string;
|
|
108
|
+
size?: number;
|
|
109
|
+
type?: string;
|
|
110
|
+
lastModified?: number;
|
|
111
|
+
/** 默认 done;上传中 uploading;失败 error;待上传 init */
|
|
112
|
+
status?: UploadStatus;
|
|
113
|
+
/** 上传进度,0 ~ 1(与 x-next Progress 组件一致) */
|
|
114
|
+
percent?: number;
|
|
115
|
+
/** 文件地址;上传成功后可由 responseUrlKey 从响应中提取 */
|
|
116
|
+
url?: string;
|
|
117
|
+
/** 缩略图地址;图片文件加入列表时自动生成本地预览地址 */
|
|
118
|
+
thumbUrl?: string;
|
|
119
|
+
/** 上传接口响应体 */
|
|
120
|
+
response?: T;
|
|
121
|
+
/** 上传失败的错误对象 */
|
|
122
|
+
error?: unknown;
|
|
123
|
+
/** 原始 File 对象;外部历史文件通常没有 */
|
|
124
|
+
file?: File;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
type UploadBeforeUploadResult = void | boolean | File | Blob | string;
|
|
128
|
+
|
|
129
|
+
type UploadBeforeUpload = (file: File, fileList: File[]) => UploadBeforeUploadResult | Promise<UploadBeforeUploadResult>;
|
|
130
|
+
|
|
131
|
+
type UploadBeforeRemove = (file: UploadFile) => boolean | void | Promise<boolean | void>;
|
|
132
|
+
|
|
133
|
+
type UploadAction = string | ((file: File) => string | Promise<string>);
|
|
134
|
+
|
|
135
|
+
type UploadData = Record<string, unknown> | ((file: UploadFile) => Record<string, unknown> | Promise<Record<string, unknown>>);
|
|
136
|
+
|
|
137
|
+
type UploadName = string | ((file: UploadFile) => string);
|
|
138
|
+
|
|
139
|
+
type UploadResponseUrlKey = string | ((file: UploadFile, response?: unknown) => string | undefined);
|
|
140
|
+
|
|
141
|
+
interface UploadRequestOption {
|
|
142
|
+
action: string;
|
|
143
|
+
method: UploadRequestMethod;
|
|
144
|
+
/** 文件字段名 */
|
|
145
|
+
name: string;
|
|
146
|
+
/** 原始文件对象 */
|
|
147
|
+
file: File;
|
|
148
|
+
/** 列表项,可读取 uid / 业务附加字段 */
|
|
149
|
+
fileItem: UploadFile;
|
|
150
|
+
data?: Record<string, unknown>;
|
|
151
|
+
headers?: Record<string, string>;
|
|
152
|
+
withCredentials: boolean;
|
|
153
|
+
/** 超时毫秒数,0 表示不超时 */
|
|
154
|
+
timeout: number;
|
|
155
|
+
/**
|
|
156
|
+
* 每次尝试独立的中止信号;取消上传、移除文件或组件卸载时触发 abort。
|
|
157
|
+
* 可直接透传给 fetch / axios 的 signal;环境不支持 AbortController 时为 undefined。
|
|
158
|
+
*/
|
|
159
|
+
signal?: AbortSignal;
|
|
160
|
+
/** 进度回调,percent 为 0 ~ 1 */
|
|
161
|
+
onProgress: (percent: number, event?: ProgressEvent) => void;
|
|
162
|
+
onSuccess: (response?: unknown) => void;
|
|
163
|
+
onError: (error?: unknown) => void;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
interface UploadRequest {
|
|
167
|
+
abort?: () => void;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
type UploadCustomRequest = (option: UploadRequestOption) => UploadRequest | Promise<unknown> | void;
|
|
171
|
+
|
|
172
|
+
interface UploadChangeInfo {
|
|
173
|
+
file: UploadFile;
|
|
174
|
+
fileList: UploadFile[];
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
interface UploadProgressInfo extends UploadChangeInfo {
|
|
178
|
+
percent: number;
|
|
179
|
+
event?: ProgressEvent;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
interface UploadExceedInfo {
|
|
183
|
+
/** 因超出 limit 被拒绝的文件 */
|
|
184
|
+
files: File[];
|
|
185
|
+
fileList: UploadFile[];
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
interface UploadRejectInfo {
|
|
189
|
+
files: File[];
|
|
190
|
+
reason: UploadRejectReason;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
interface UploadShowUploadButton {
|
|
194
|
+
/** 已达 limit 时仍显示上传入口,选中文件后触发 exceed 事件 */
|
|
195
|
+
showOnExceedLimit?: boolean;
|
|
196
|
+
}
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
返回 [Upload 用法](./upload.md)。
|