@kayak-sj/design 1.0.56 → 1.0.58
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/dist/assets/{componentRegistry-phw1HTVy.css → componentRegistry-CdMmVVcX.css} +1 -1
- package/dist/chunks/{Complex-CyaAEB_v.js → Complex-L-vj_4ya.js} +1 -1
- package/dist/chunks/{componentRegistry-6at2AsFD.js → componentRegistry-D5JgphAl.js} +190 -175
- package/dist/components/index.d.ts +1 -0
- package/dist/components/k-upload/KUpload.d.ts +3 -1
- package/dist/components/k-upload/types.d.ts +204 -6
- package/dist/index.js +2 -2
- package/package.json +1 -1
- package/src/styles/components/_k-form.scss +3 -1
- package/src/styles/tokens/_css-vars.scss +3 -2
- package/src/styles/tokens/_semantic.scss +5 -2
|
@@ -52,4 +52,5 @@ export declare const KColorPicker: import('vue').DefineComponent<{}, () => impor
|
|
|
52
52
|
}>, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
53
53
|
export { updateUploadConfig, getUploadConfig } from '../config/uploadConfig';
|
|
54
54
|
export type { KUploadFileItem, UploadConfig } from '../config/uploadConfig';
|
|
55
|
+
export type { KUploadBeforeRemove, KUploadBeforeUpload, KUploadCutterOption, KUploadListType, KUploadOnChange, KUploadOnError, KUploadOnExceed, KUploadOnPreview, KUploadOnProgress, KUploadOnRemove, KUploadOnSuccess, KUploadProps, KUploadTipType } from './k-upload/types';
|
|
55
56
|
export { createUploadFileItem, hasUploadSubmitFields, toUploadFiles, toUploadSubmitFields, type CreateUploadFileItemOptions, type ToUploadFilesOptions, type ToUploadSubmitFieldsOptions, type UploadSubmitFields } from './k-upload/utils/uploadFileValue';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { UploadFile, UploadInstance, UploadUserFile } from 'element-plus';
|
|
1
|
+
import { UploadFile, UploadInstance, UploadProgressEvent, UploadUserFile } from 'element-plus';
|
|
2
2
|
import { KUploadFileItem } from '../../config/uploadConfig';
|
|
3
3
|
import { KUploadListType, KUploadProps } from './types';
|
|
4
4
|
declare var __VLS_10: {}, __VLS_12: {}, __VLS_27: {}, __VLS_29: {}, __VLS_43: {
|
|
@@ -26,6 +26,7 @@ declare const __VLS_base: import('vue').DefineComponent<KUploadProps, {
|
|
|
26
26
|
clearFiles: () => void | undefined;
|
|
27
27
|
uploadRef: import('vue').Ref<UploadInstance | undefined, UploadInstance | undefined>;
|
|
28
28
|
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
29
|
+
progress: (evt: UploadProgressEvent, file: UploadFile) => any;
|
|
29
30
|
change: (file: UploadFile) => any;
|
|
30
31
|
error: (error: Error, file: UploadFile) => any;
|
|
31
32
|
success: (response: Record<string, unknown>, file: KUploadFileItem) => any;
|
|
@@ -34,6 +35,7 @@ declare const __VLS_base: import('vue').DefineComponent<KUploadProps, {
|
|
|
34
35
|
preview: (file: KUploadFileItem) => any;
|
|
35
36
|
exceed: (files: File[], uploadFiles: UploadUserFile[]) => any;
|
|
36
37
|
}, string, import('vue').PublicProps, Readonly<KUploadProps> & Readonly<{
|
|
38
|
+
onProgress?: ((evt: UploadProgressEvent, file: UploadFile) => any) | undefined;
|
|
37
39
|
onChange?: ((file: UploadFile) => any) | undefined;
|
|
38
40
|
onError?: ((error: Error, file: UploadFile) => any) | undefined;
|
|
39
41
|
onSuccess?: ((response: Record<string, unknown>, file: KUploadFileItem) => any) | undefined;
|
|
@@ -1,44 +1,242 @@
|
|
|
1
|
+
import { UploadFile, UploadFiles, UploadProgressEvent, UploadRawFile, UploadUserFile } from 'element-plus';
|
|
1
2
|
import { KUploadFileItem } from '../../config/uploadConfig';
|
|
2
3
|
/** KUpload 支持的列表展示类型(对齐 legacy listType) */
|
|
3
4
|
export type KUploadListType = 'text' | 'picture' | 'picture-card' | 'video' | 'audio' | 'lottie' | 'file';
|
|
4
5
|
/** 提示展示形式 */
|
|
5
6
|
export type KUploadTipType = 'tooltip' | 'text';
|
|
7
|
+
/**
|
|
8
|
+
* 上传前钩子(对齐 ElUpload `before-upload`)。
|
|
9
|
+
*
|
|
10
|
+
* @param rawFile - 用户选中的原始文件
|
|
11
|
+
* @returns `false` 拦截上传;返回 `File`/`Blob` 则替换实际上传文件(常用于压缩);其余视为放行
|
|
12
|
+
*/
|
|
13
|
+
export type KUploadBeforeUpload = (rawFile: UploadRawFile) => boolean | void | File | Blob | Promise<boolean | void | File | Blob>;
|
|
14
|
+
/**
|
|
15
|
+
* 删除前钩子(对齐 ElUpload `before-remove`)。
|
|
16
|
+
*
|
|
17
|
+
* @param uploadFile - 即将删除的文件项
|
|
18
|
+
* @param uploadFiles - 当前文件列表
|
|
19
|
+
* @returns `false` 取消删除;`true` 或 void 继续删除
|
|
20
|
+
*/
|
|
21
|
+
export type KUploadBeforeRemove = (uploadFile: UploadFile, uploadFiles: UploadFiles) => boolean | void | Promise<boolean | void>;
|
|
22
|
+
/**
|
|
23
|
+
* 文件状态变化钩子(对齐 ElUpload `on-change`)。
|
|
24
|
+
* 组件同时会 `emit('change', uploadFile)`。
|
|
25
|
+
*
|
|
26
|
+
* @param uploadFile - 变化的文件项
|
|
27
|
+
* @param uploadFiles - 当前文件列表
|
|
28
|
+
*/
|
|
29
|
+
export type KUploadOnChange = (uploadFile: UploadFile, uploadFiles: UploadUserFile[]) => void;
|
|
30
|
+
/**
|
|
31
|
+
* 上传成功钩子(对齐 ElUpload `on-success`)。
|
|
32
|
+
* 组件同时会 `emit('success', response, item)`(`item` 为规范化后的 {@link KUploadFileItem})。
|
|
33
|
+
*
|
|
34
|
+
* @param response - 上传接口原始响应
|
|
35
|
+
* @param uploadFile - Element Plus 文件项
|
|
36
|
+
* @param uploadFiles - 当前文件列表
|
|
37
|
+
*/
|
|
38
|
+
export type KUploadOnSuccess = (response: unknown, uploadFile: UploadFile, uploadFiles: UploadUserFile[]) => void;
|
|
39
|
+
/**
|
|
40
|
+
* 上传失败钩子(对齐 ElUpload `on-error`)。
|
|
41
|
+
* 组件同时会 `emit('error', error, uploadFile)`。
|
|
42
|
+
*
|
|
43
|
+
* @param error - 错误对象
|
|
44
|
+
* @param uploadFile - 失败的文件项
|
|
45
|
+
* @param uploadFiles - 当前文件列表
|
|
46
|
+
*/
|
|
47
|
+
export type KUploadOnError = (error: Error, uploadFile: UploadFile, uploadFiles: UploadUserFile[]) => void;
|
|
48
|
+
/**
|
|
49
|
+
* 删除完成钩子(对齐 ElUpload `on-remove`)。
|
|
50
|
+
* 组件同时会 `emit('remove', item)`(仅业务列表中存在的项)。
|
|
51
|
+
*
|
|
52
|
+
* @param uploadFile - 被删除的文件项
|
|
53
|
+
* @param uploadFiles - 删除后的文件列表
|
|
54
|
+
*/
|
|
55
|
+
export type KUploadOnRemove = (uploadFile: UploadFile, uploadFiles: UploadUserFile[]) => void;
|
|
56
|
+
/**
|
|
57
|
+
* 点击已上传文件钩子(对齐 ElUpload `on-preview`)。
|
|
58
|
+
* 组件同时会 `emit('preview', item)`,并默认预览图片或下载。
|
|
59
|
+
*
|
|
60
|
+
* @param uploadFile - 被点击的文件项
|
|
61
|
+
*/
|
|
62
|
+
export type KUploadOnPreview = (uploadFile: UploadFile) => void;
|
|
63
|
+
/**
|
|
64
|
+
* 超出数量限制钩子(对齐 ElUpload `on-exceed`)。
|
|
65
|
+
* 组件同时会 `emit('exceed', files, uploadFiles)`。
|
|
66
|
+
*
|
|
67
|
+
* @param files - 本次选中的超出文件
|
|
68
|
+
* @param uploadFiles - 当前已有文件列表
|
|
69
|
+
*/
|
|
70
|
+
export type KUploadOnExceed = (files: File[], uploadFiles: UploadUserFile[]) => void;
|
|
71
|
+
/**
|
|
72
|
+
* 上传进度钩子(对齐 ElUpload `on-progress`)。
|
|
73
|
+
* 组件同时会 `emit('progress', ...)`,模板侧优先用 `@progress`。
|
|
74
|
+
*
|
|
75
|
+
* @param evt - 进度事件(含 `percent`)
|
|
76
|
+
* @param uploadFile - 当前上传中的文件
|
|
77
|
+
* @param uploadFiles - 当前文件列表
|
|
78
|
+
*/
|
|
79
|
+
export type KUploadOnProgress = (evt: UploadProgressEvent, uploadFile: UploadFile, uploadFiles: UploadUserFile[]) => void;
|
|
6
80
|
/** 图片裁剪配置(透传 vue-img-cutter,仅列出常用项) */
|
|
7
81
|
export interface KUploadCutterOption {
|
|
8
|
-
/**
|
|
82
|
+
/** 裁剪框宽度(px) */
|
|
9
83
|
cutWidth?: number;
|
|
10
|
-
/**
|
|
84
|
+
/** 裁剪框高度(px) */
|
|
11
85
|
cutHeight?: number;
|
|
12
|
-
/**
|
|
86
|
+
/** 是否允许拖拽调整裁剪框大小 */
|
|
13
87
|
sizeChange?: boolean;
|
|
14
|
-
/**
|
|
88
|
+
/** 裁剪弹窗标题 */
|
|
15
89
|
modalTitle?: string;
|
|
16
90
|
/** 其余 vue-img-cutter 属性 */
|
|
17
91
|
[key: string]: unknown;
|
|
18
92
|
}
|
|
93
|
+
/**
|
|
94
|
+
* KUpload 组件 props。
|
|
95
|
+
*
|
|
96
|
+
* 生命周期钩子分两类:
|
|
97
|
+
* - **可拦截**:`beforeUpload` / `beforeRemove`(可返回 false 或替换文件)
|
|
98
|
+
* - **仅通知**:`onChange` / `onSuccess` / `onError` / `onRemove` / `onPreview` / `onProgress` / `onExceed`
|
|
99
|
+
* (与同名 `emit` 并行触发,便于 KForm `componentProps` 传入回调)
|
|
100
|
+
*/
|
|
19
101
|
export interface KUploadProps {
|
|
102
|
+
/**
|
|
103
|
+
* 已上传文件列表(受控)。
|
|
104
|
+
* @default []
|
|
105
|
+
*/
|
|
20
106
|
modelValue?: KUploadFileItem[];
|
|
107
|
+
/**
|
|
108
|
+
* 列表展示类型。
|
|
109
|
+
* @default 'picture'
|
|
110
|
+
*/
|
|
21
111
|
listType?: KUploadListType;
|
|
112
|
+
/**
|
|
113
|
+
* 自定义上传地址;空则按 `listType` 走全局 UploadConfig 默认图床/文件地址。
|
|
114
|
+
* @default ''
|
|
115
|
+
*/
|
|
22
116
|
action?: string;
|
|
117
|
+
/**
|
|
118
|
+
* 允许的文件后缀,逗号分隔(如 `.png,.jpg`);空则按 `listType` 使用内置字典。
|
|
119
|
+
* @default ''
|
|
120
|
+
*/
|
|
23
121
|
accept?: string;
|
|
122
|
+
/**
|
|
123
|
+
* 最大上传数量;`1` 时允许替换(不向 ElUpload 传 limit)。
|
|
124
|
+
*/
|
|
24
125
|
limit?: number;
|
|
126
|
+
/**
|
|
127
|
+
* 单文件大小上限(MB)。
|
|
128
|
+
* @default 2
|
|
129
|
+
*/
|
|
25
130
|
maxSize?: number;
|
|
131
|
+
/**
|
|
132
|
+
* 是否禁用(禁用时隐藏触发器,仅展示已上传列表)。
|
|
133
|
+
* @default false
|
|
134
|
+
*/
|
|
26
135
|
disabled?: boolean;
|
|
136
|
+
/**
|
|
137
|
+
* 上传按钮文案(非 picture-card / lottie 触发器)。
|
|
138
|
+
* @default '点击上传'
|
|
139
|
+
*/
|
|
27
140
|
btnText?: string;
|
|
141
|
+
/**
|
|
142
|
+
* 模板编码,用于模板下载与上传附加字段 `type_code`。
|
|
143
|
+
* @default ''
|
|
144
|
+
*/
|
|
28
145
|
templateCode?: string;
|
|
29
|
-
/**
|
|
146
|
+
/**
|
|
147
|
+
* 模板下载域:`app` 业务应用(默认),`base` cms-base。
|
|
148
|
+
* @default 'app'
|
|
149
|
+
*/
|
|
30
150
|
templateDomain?: 'base' | 'app';
|
|
151
|
+
/**
|
|
152
|
+
* 模板下载根路径;空则读全局 UploadConfig。
|
|
153
|
+
* @default ''
|
|
154
|
+
*/
|
|
31
155
|
templateDownloadUrl?: string;
|
|
156
|
+
/**
|
|
157
|
+
* 模板下载按钮文案。
|
|
158
|
+
* @default '模版下载'
|
|
159
|
+
*/
|
|
32
160
|
templateBtnText?: string;
|
|
161
|
+
/**
|
|
162
|
+
* 提示展示形式:`text` 下方文案,`tooltip` 问号气泡。
|
|
163
|
+
* @default 'text'
|
|
164
|
+
*/
|
|
33
165
|
tipType?: KUploadTipType;
|
|
166
|
+
/**
|
|
167
|
+
* 自定义提示文案;空则按 accept/maxSize 自动生成。
|
|
168
|
+
* @default ''
|
|
169
|
+
*/
|
|
34
170
|
fileTips?: string;
|
|
171
|
+
/**
|
|
172
|
+
* 上传成功后是否弹出成功 Toast。
|
|
173
|
+
* @default true
|
|
174
|
+
*/
|
|
35
175
|
showSuccMessage?: boolean;
|
|
176
|
+
/**
|
|
177
|
+
* 是否选完即传;开启 `openCutter` 时强制为 false。
|
|
178
|
+
* @default true
|
|
179
|
+
*/
|
|
36
180
|
autoUpload?: boolean;
|
|
37
|
-
/**
|
|
181
|
+
/**
|
|
182
|
+
* 开启图片前置裁剪(自动关闭 `autoUpload`)。
|
|
183
|
+
* @default false
|
|
184
|
+
*/
|
|
38
185
|
openCutter?: boolean;
|
|
186
|
+
/**
|
|
187
|
+
* 裁剪弹窗配置(透传 vue-img-cutter)。
|
|
188
|
+
* @default {}
|
|
189
|
+
*/
|
|
39
190
|
cutterOption?: KUploadCutterOption;
|
|
191
|
+
/**
|
|
192
|
+
* 上传前钩子:内置后缀/大小校验通过后调用。
|
|
193
|
+
* 返回 `File`/`Blob` 可替换上传文件(如 compressorjs 压缩结果)。
|
|
194
|
+
* @see {@link KUploadBeforeUpload}
|
|
195
|
+
*/
|
|
196
|
+
beforeUpload?: KUploadBeforeUpload;
|
|
197
|
+
/**
|
|
198
|
+
* 删除前钩子:返回 `false` 可取消删除。
|
|
199
|
+
* @see {@link KUploadBeforeRemove}
|
|
200
|
+
*/
|
|
201
|
+
beforeRemove?: KUploadBeforeRemove;
|
|
202
|
+
/**
|
|
203
|
+
* 文件状态变化(ready / uploading / success / fail)。
|
|
204
|
+
* @see {@link KUploadOnChange}
|
|
205
|
+
*/
|
|
206
|
+
onChange?: KUploadOnChange;
|
|
207
|
+
/**
|
|
208
|
+
* 上传成功(在写入 `modelValue`、成功 Toast 之后)。
|
|
209
|
+
* @see {@link KUploadOnSuccess}
|
|
210
|
+
*/
|
|
211
|
+
onSuccess?: KUploadOnSuccess;
|
|
212
|
+
/**
|
|
213
|
+
* 上传失败(在错误 Toast、从列表移除之后)。
|
|
214
|
+
* @see {@link KUploadOnError}
|
|
215
|
+
*/
|
|
216
|
+
onError?: KUploadOnError;
|
|
217
|
+
/**
|
|
218
|
+
* 删除完成(校验拦截产生的伪删除不会触发)。
|
|
219
|
+
* @see {@link KUploadOnRemove}
|
|
220
|
+
*/
|
|
221
|
+
onRemove?: KUploadOnRemove;
|
|
222
|
+
/**
|
|
223
|
+
* 点击已上传文件(在默认预览/下载之前触发,可用于覆盖默认行为时先感知)。
|
|
224
|
+
* @see {@link KUploadOnPreview}
|
|
225
|
+
*/
|
|
226
|
+
onPreview?: KUploadOnPreview;
|
|
227
|
+
/**
|
|
228
|
+
* 上传进度。
|
|
229
|
+
* @see {@link KUploadOnProgress}
|
|
230
|
+
*/
|
|
231
|
+
onProgress?: KUploadOnProgress;
|
|
232
|
+
/**
|
|
233
|
+
* 选中文件数超出 `limit`。
|
|
234
|
+
* @see {@link KUploadOnExceed}
|
|
235
|
+
*/
|
|
236
|
+
onExceed?: KUploadOnExceed;
|
|
40
237
|
}
|
|
41
238
|
/** #file / #preview 等作用域插槽参数 */
|
|
42
239
|
export interface KUploadFileSlotProps {
|
|
240
|
+
/** 当前文件项 */
|
|
43
241
|
file: KUploadFileItem;
|
|
44
242
|
}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { _ as e, a as t, c as n, d as r, f as i, g as a, h as o, i as s, l as c, m as l, n as u, o as d, p as f, r as p, s as m, t as h, u as g } from "./chunks/componentRegistry-
|
|
1
|
+
import { _ as e, a as t, c as n, d as r, f as i, g as a, h as o, i as s, l as c, m as l, n as u, o as d, p as f, r as p, s as m, t as h, u as g } from "./chunks/componentRegistry-D5JgphAl.js";
|
|
2
2
|
import { t as _ } from "./chunks/_plugin-vue_export-helper-B3ysoDQm.js";
|
|
3
3
|
import { a as v, d as y, i as ee, l as te, n as b, r as ne, u as re } from "./chunks/editorValue-DSKvW8ty.js";
|
|
4
4
|
import { Fragment as x, Transition as S, computed as C, createBlock as w, createCommentVNode as T, createElementBlock as E, createElementVNode as D, createSlots as O, createTextVNode as k, createVNode as A, defineComponent as j, guardReactiveProps as ie, h as M, inject as ae, mergeDefaults as oe, mergeProps as N, nextTick as P, normalizeClass as F, normalizeProps as I, normalizeStyle as se, onBeforeUnmount as ce, onMounted as le, openBlock as L, provide as ue, reactive as de, ref as R, renderList as z, renderSlot as B, resolveComponent as fe, resolveDirective as pe, resolveDynamicComponent as me, shallowRef as he, toDisplayString as V, toRef as H, toValue as U, unref as W, useAttrs as ge, useSlots as G, useTemplateRef as _e, watch as K, withCtx as q, withDirectives as ve, withModifiers as ye } from "vue";
|
|
@@ -464,7 +464,7 @@ var it = /* @__PURE__ */ j({
|
|
|
464
464
|
})), g = C(() => ({
|
|
465
465
|
"--k-form-cols": String(a.colLength),
|
|
466
466
|
"--k-form-label-width": m.value,
|
|
467
|
-
"--k-form-grid-min-col": "calc(var(--k-form-label-width) + var(--k-form-control-
|
|
467
|
+
"--k-form-grid-min-col": "calc(var(--k-form-label-width) + var(--k-form-control-min-width))",
|
|
468
468
|
"--k-form-min-width": "calc(var(--k-form-grid-min-col) + var(--k-form-padding-x) * 2)"
|
|
469
469
|
})), _ = C(() => a.modelValue !== void 0), v = et({
|
|
470
470
|
formConfigs: H(a, "formConfigs"),
|
package/package.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
flex-wrap: wrap;
|
|
8
8
|
|
|
9
9
|
/// 编辑/弹窗:Grid 多列 + 右对齐标签
|
|
10
|
-
/// auto-fit
|
|
10
|
+
/// auto-fit:列最小宽 = label + 控件 min(200);控件理想 300,可先缩到 200 再换列
|
|
11
11
|
&--grid-layout {
|
|
12
12
|
display: grid;
|
|
13
13
|
/* 面板再窄也不把控件压扁,由外层滚动条横向承载 */
|
|
@@ -99,6 +99,8 @@
|
|
|
99
99
|
.el-cascader,
|
|
100
100
|
.k-datePicker {
|
|
101
101
|
max-width: var(--k-form-control-max-width);
|
|
102
|
+
/* 与换行阈值一致:可从 300 压到 200,再窄则由 grid 折列 */
|
|
103
|
+
min-width: min(100%, var(--k-form-control-min-width));
|
|
102
104
|
}
|
|
103
105
|
|
|
104
106
|
.k-form-date-picker--datetimerange,
|
|
@@ -92,8 +92,9 @@
|
|
|
92
92
|
--k-form-control-border: var(--k-color-border);
|
|
93
93
|
--k-form-control-bg: var(--k-color-bg-surface);
|
|
94
94
|
--k-form-control-max-width: #{sem.$form-control-max-width};
|
|
95
|
-
|
|
96
|
-
|
|
95
|
+
--k-form-control-min-width: #{sem.$form-control-min-width};
|
|
96
|
+
/// 换行阈值 = label + 控件 min;空间够时控件仍可撑到 max。表单实例覆盖 --k-form-label-width 后自动重算
|
|
97
|
+
--k-form-grid-min-col: calc(var(--k-form-label-width) + var(--k-form-control-min-width));
|
|
97
98
|
--k-form-min-width: calc(var(--k-form-grid-min-col) + var(--k-form-padding-x) * 2);
|
|
98
99
|
--k-form-textarea-max-width: #{sem.$form-textarea-max-width};
|
|
99
100
|
|
|
@@ -29,9 +29,12 @@ $form-label-width: 110px !default;
|
|
|
29
29
|
$form-label-width-query: 120px !default;
|
|
30
30
|
$form-control-height: 32px !default;
|
|
31
31
|
$form-control-font-size: typo.$font-size-medium !default;
|
|
32
|
+
/** 控件理想宽度;空间充足时不超过此值 */
|
|
32
33
|
$form-control-max-width: 300px !default;
|
|
33
|
-
/**
|
|
34
|
-
$form-
|
|
34
|
+
/** 控件最小宽度;缩到此值后才换列,避免过早折行 */
|
|
35
|
+
$form-control-min-width: 200px !default;
|
|
36
|
+
/** grid 单列最小宽 = label + 控件 min;运行时随 --k-form-label-width 变化 */
|
|
37
|
+
$form-grid-min-col: calc(#{$form-label-width} + #{$form-control-min-width}) !default;
|
|
35
38
|
/** 编辑表单整体最小宽:单列 label+控件+左右 padding,再窄则横向撑开由容器滚动 */
|
|
36
39
|
$form-min-width: calc(#{$form-grid-min-col} + #{$form-padding-x} * 2) !default;
|
|
37
40
|
$form-textarea-max-width: 500px !default;
|